/
(2024.1) Inactive Service Locations Clean Up

(2024.1) Inactive Service Locations Clean Up



Inactive Locations Clean Up
<?php /** * IN201620553 - Created to clean up Inactive service locations and owners before aging occurs. * Event: Custom PHP Event * Frequency: Hourly * Time: * Listener Class: Core_Model_Event * Listener Method: eventCustom * Description: This event queries for Inactive services with billed charges (or no charges at all) * and triggers the service bulk update to remove the owner and location. */ PCR_Event::attachDb('services-bulk-update', ['Application_Model_Service_Service' => 'eventBulkUpdate']); $records = $this->query(<<<SQL SELECT DISTINCT S.RECID AS SERVICES_RECID, FROM SERVICES AS S JOIN LISTS AS L ON L.RECID = S.SERVICE_STATUS_LISTS_RECID LEFT JOIN SERVICES_CHARGES AS SC ON S.RECID = SC.SERVICES_RECID LEFT JOIN CHARGES AS C ON C.ORIG_TABLE_NAME = 'SERVICES_CHARGES' AND C.ORIG_TABLE_RECID = SC.RECID LEFT JOIN CHARGES_BILLED AS CB_MAX ON CB_MAX.CHARGES_RECID = C.RECID LEFT JOIN CHARGES_BILLED AS CB_MIN ON CB_MIN.CHARGES_RECID = C.RECID AND CB_MAX.RECID < CB_MIN.RECID LEFT JOIN BILLS AS B ON B.RECID = CB_MAX.BILLS_RECID WHERE L.CODE = 'INACTIVE' AND S.LOCATIONS_RECID IS NOT NULL AND ( CB_MAX.BILLING_COMPLETE = 1 OR SC.RECID IS NULL ) AND CB_MIN.RECID IS NULL GROUP BY S.RECID, SC.RECID LIMIT 400; SQL ); $eventParams = [ 'contact' => 101452, // PCR Admin contact 'users_recid' => 485, // pcradmin user ]; //$eventParams['contact_owner_enabled'] = '1'; //$eventParams['contact_owner'] = null; //$eventParams['dept_hier_owner_enabled'] = '1'; //$eventParams['dept_hier_owner'] = null; $eventParams['location_enabled'] = '1'; $eventParams['location'] = null; $eventParams['comment'] = 'Cleanup event to remove Locations from Inactive Services'; if(!empty($records)){ foreach ($records as $rec) { $eventParams['selectedServiceRecids'][] = $rec['SERVICES_RECID']; } PCR_Event::trigger('services-bulk-update', $eventParams); }



Related content

(v1) Inactive Service Locations Clean Up
(v1) Inactive Service Locations Clean Up
More like this
(v1) .Inactive Service Locations Clean Up v2021.3
(v1) .Inactive Service Locations Clean Up v2021.3
More like this
(v1) .Inactive Service Locations Clean Up v2022.2
(v1) .Inactive Service Locations Clean Up v2022.2
More like this
Inactive Service Locations Clean Up
Inactive Service Locations Clean Up
More like this
(2024.1) Nightly Service Location Update
(2024.1) Nightly Service Location Update
More like this