static function getArrayByCompanyIDAndObjectTypeIDAndObjectID($company_id, $object_type_id, $object_id) { $cgmlf = new CompanyGenericMapListFactory(); $lf = $cgmlf->getByCompanyIDAndObjectTypeAndObjectID($company_id, $object_type_id, $object_id); return $cgmlf->getArrayByListFactory($lf); }
static function setMapIDs($company_id, $object_type_id, $object_id, $ids, $is_new = FALSE) { if ($company_id == '') { return FALSE; } if ($object_type_id == '') { return FALSE; } if ($object_id == '') { return FALSE; } if ($ids == '') { return FALSE; } if (!is_array($ids) and is_numeric($ids)) { $ids = array($ids); } Debug::Arr($ids, 'Object Type ID: ' . $object_type_id . ' Object ID: ' . $object_id . ' IDs: ', __FILE__, __LINE__, __METHOD__, 10); if (is_array($ids)) { if ($is_new == FALSE) { //If needed, delete mappings first. $cgmlf = new CompanyGenericMapListFactory(); $cgmlf->getByCompanyIDAndObjectTypeAndObjectID($company_id, $object_type_id, $object_id); $tmp_ids = array(); foreach ($cgmlf as $obj) { $id = $obj->getMapID(); Debug::text('Object Type ID: ' . $object_type_id . ' Object ID: ' . $obj->getObjectID() . ' ID: ' . $id, __FILE__, __LINE__, __METHOD__, 10); //Delete objects that are not selected. if (!in_array($id, $ids)) { Debug::text('Deleting: ' . $id, __FILE__, __LINE__, __METHOD__, 10); $obj->Delete(); } else { //Save ID's that need to be updated. Debug::text('NOT Deleting : ' . $id, __FILE__, __LINE__, __METHOD__, 10); $tmp_ids[] = $id; } } unset($id, $obj); } foreach ($ids as $id) { if (isset($ids) and !in_array($id, $tmp_ids)) { $cgmf = new CompanyGenericMapFactory(); $cgmf->setCompany($company_id); $cgmf->setObjectType($object_type_id); $cgmf->setObjectID($object_id); $cgmf->setMapId($id); $cgmf->Save(); } } return TRUE; } Debug::text('No objects to map.', __FILE__, __LINE__, __METHOD__, 10); return FALSE; }