Document toolboxDocument toolbox

(2024.1) Move Available Services to Parent

Move Available Services to their Parent Category

Move Available Services to Parent
<?php // >>>> COPY START !!! <<<< // /** * This looks for any Phone Services which, after aging are changed from 'Inactive' to 'Available', and which * are in any of the child Categories of 'Telephones & Voicemail'. It then creates a Bulk Update Event to * move those Services to the parent. * * Note: The child Catalog Type must be 'Phone'. * * Event: Custom PHP Event * Frequency: Daily * Time: * Listener Class: Core_Model_Event * Listener Method: eventCustom */ PCR_Event::attachDb('services-bulk-update', ['Application_Model_Service_Service' => 'eventBulkUpdate']); $parentCatalogRecidSql = <<<SQL SELECT RECID FROM SERV_CATALOG WHERE SERVICE_NAME = 'Telephones & Voicemail' SQL; $listsRecidSql = <<<SQL SELECT LISTS.RECID FROM LISTS LEFT JOIN LIST_TYPES ON LISTS.LIST_TYPES_RECID = LIST_TYPES.RECID WHERE LIST_TYPES.TYPE = 'SERVICE_TYPE' AND LISTS.CODE = 'PHONE'; SQL; if (($parentCatalogRecid = $this->query($parentCatalogRecidSql)) && ($listsRecid = $this->query($listsRecidSql)) ) { $parentCatalogRecid = (int) $parentCatalogRecid[0]['RECID']; $listsRecid = (int) $listsRecid[0]['RECID']; $servicesToMoveSql = <<<SQL SELECT SERVICES.RECID FROM SERVICES LEFT JOIN LISTS ON SERVICES.SERVICE_STATUS_LISTS_RECID = LISTS.RECID LEFT JOIN LIST_TYPES ON LISTS.LIST_TYPES_RECID = LIST_TYPES.RECID WHERE LISTS.CODE = 'AVAILABLE' AND LIST_TYPES.TYPE = 'SERVICE_STATUS' AND SERVICES.SERV_CATALOG_RECID IN ( SELECT SERV_CATALOG_FULLPATH.SERV_CATALOG_RECID FROM SERV_CATALOG_FULLPATH LEFT JOIN SERV_CATALOG ON SERV_CATALOG_FULLPATH.SERV_CATALOG_RECID = SERV_CATALOG.RECID LEFT JOIN LISTS ON SERV_CATALOG.SERVICE_TYPE_LISTS_RECID = LISTS.RECID LEFT JOIN LIST_TYPES ON LISTS.LIST_TYPES_RECID = LIST_TYPES.RECID WHERE PATH_SERV_CATALOG_RECID = {$parentCatalogRecid} AND SERV_CATALOG_RECID <> {$parentCatalogRecid} AND LISTS.CODE = 'PHONE' AND LIST_TYPES.TYPE = 'SERVICE_TYPE' ) SQL; $userSql = <<<SQL SELECT RECID, CONTACTS_RECID FROM USERS WHERE USERID = 'pcr' SQL; if (($servicesToMove = $this->query($servicesToMoveSql)) && ($user = $this->query($userSql)) ) { $eventParams = [ 'service_type_enabled' => 1, 'location_enabled' => 0, 'status_enabled' => 0, 'service_host_enabled' => 0, 'sla_enabled' => 0, 'contact_owner_enabled' => 0, 'dept_hier_owner_enabled' => 0, 'gla_enabled' => 0, 'pools_enabled' => 0, 'billable_enabled' => 0, 'directory_enabled' => 0, 'essential_enabled' => 0, 'report_911_enabled' => 0, 'isLocationRequired' => 0, 'isServiceHostRequired' => 0, 'contact' => (int) $user[0]['CONTACTS_RECID'], 'users_recid' => (int) $user[0]['RECID'], 'service_type' => $parentCatalogRecid, 'selectedServiceTypeListRecid' => $listsRecid, 'comment' => 'Custom Event: Move all "Available" Services to parent Catalog.' ]; foreach ($servicesToMove as $service) { $eventParams['selectedServiceRecids'][] = (int) $service['RECID']; } PCR_Event::trigger('services-bulk-update', $eventParams); } } // >>>> COPY STOP !!! <<<< // ?>