Ejemplo n.º 1
0
 /**
  * Create a new HRJobDetails based on array-data
  *
  * @param array $params key-value pairs
  * @return CRM_HRJob_DAO_HRJobDetails|NULL
  *
  */
 public static function create($params)
 {
     $hook = empty($params['id']) ? 'create' : 'edit';
     $previousDetailsRevisionId = null;
     if ($hook == 'create') {
         $previousRevisionResult = civicrm_api3('HRJobContractRevision', 'getcurrentrevision', array('sequential' => 1, 'jobcontract_id' => $params['jobcontract_id']));
         if (!empty($previousRevisionResult['values']['details_revision_id'])) {
             $previousDetailsRevisionId = $previousRevisionResult['values']['details_revision_id'];
         }
     }
     $instance = parent::create($params);
     // setting 'effective_date' if it's not set:
     $revision = civicrm_api3('HRJobContractRevision', 'get', array('sequential' => 1, 'jobcontract_id' => $params['jobcontract_id'], 'id' => $instance->jobcontract_revision_id));
     if (!empty($revision['values'][0])) {
         $revisionData = array_shift($revision['values']);
         if (!$revisionData['effective_date']) {
             civicrm_api3('HRJobContractRevision', 'create', array('id' => $revisionData['id'], 'effective_date' => $instance->period_start_date));
         }
     }
     $revisionResult = civicrm_api3('HRJobContractRevision', 'get', array('sequential' => 1, 'id' => $instance->jobcontract_revision_id));
     $revision = CRM_Utils_Array::first($revisionResult['values']);
     $duplicate = CRM_Utils_Array::value('action', $params, $hook);
     if ($hook == 'create' && empty($revision['role_revision_id']) && $duplicate != 'duplicate' && empty($params['import'])) {
         //civicrm_api3('HRJobRole', 'create', array('jobcontract_id' => $revision['jobcontract_id'],'title' => $instance->title, 'location'=> $instance->location, 'percent_pay_role' => 100, 'jobcontract_revision_id' => $instance->jobcontract_revision_id));
         CRM_Hrjobcontract_BAO_HRJobRole::create(array('jobcontract_id' => $revision['jobcontract_id'], 'title' => $instance->title, 'location' => $instance->location, 'percent_pay_role' => 100, 'jobcontract_revision_id' => $instance->jobcontract_revision_id));
     }
     if ($previousDetailsRevisionId) {
         CRM_Core_BAO_File::copyEntityFile('civicrm_hrjobcontract_details', $previousDetailsRevisionId, 'civicrm_hrjobcontract_details', $revision['details_revision_id']);
     }
     $contract = new CRM_Hrjobcontract_DAO_HRJobContract();
     $contract->id = $revision['jobcontract_id'];
     $contract->find(true);
     CRM_Hrjobcontract_JobContractDates::setDates($contract->contact_id, $revision['jobcontract_id'], $instance->period_start_date, $instance->period_end_date);
     return $instance;
 }
Ejemplo n.º 2
0
 /**
  * Create a new HRJobHour based on array-data
  *
  * @param array $params key-value pairs
  * @return CRM_HRJob_DAO_HRJobHour|NULL
  *
  */
 public static function create($params)
 {
     $hook = empty($params['id']) ? 'create' : 'edit';
     $instance = parent::create($params);
     $currentInstanceResult = civicrm_api3('HRJobHour', 'get', array('sequential' => 1, 'id' => $instance->id));
     $currentInstance = CRM_Utils_Array::first($currentInstanceResult['values']);
     $revisionResult = civicrm_api3('HRJobContractRevision', 'get', array('sequential' => 1, 'id' => $currentInstance['jobcontract_revision_id']));
     $revision = CRM_Utils_Array::first($revisionResult['values']);
     if ($hook == 'create' && empty($params['import'])) {
         $result = civicrm_api3('HRJobRole', 'get', array('sequential' => 1, 'jobcontract_revision_id' => $revision['role_revision_id'], 'options' => array('limit' => 1)));
         if (!empty($result['values'])) {
             $role = CRM_Utils_Array::first($result['values']);
             CRM_Hrjobcontract_BAO_HRJobRole::create(array('id' => $role['id'], 'hours' => $instance->hours_amount, 'role_hours_unit' => $instance->hours_unit));
         }
     }
     return $instance;
 }
Ejemplo n.º 3
0
 /**
  * Function get the import/export fields for hrjobcontract
  *
  * @return array self::$_hrjobFields  associative array of hrjobcontract fields
  * @static
  */
 function &getFields()
 {
     if (!self::$_hrjobFields) {
         self::$_hrjobFields = CRM_Hrjobcontract_BAO_HRJobDetails::export();
         self::$_hrjobFields['hrjobcontract_role_manager_contact'] = array('name' => 'manager_contact', 'title' => 'Job Manager', 'type' => CRM_Utils_Type::T_STRING, 'where' => 'civicrm_hrjobcontract_role_manager.display_name');
         self::$_hrjobFields = array_merge(self::$_hrjobFields, CRM_Hrjobcontract_BAO_HRJobHealth::export());
         self::$_hrjobFields = array_merge(self::$_hrjobFields, CRM_Hrjobcontract_BAO_HRJobHour::export());
         // special case to check for existence of health record entry
         /*self::$_hrjobFields['hrjobcontract_health_is_healthcare'] =
           array(
             'name'  => 'is_healthcare',
             'title' => 'Is health care',
             'type'  => CRM_Utils_Type::T_BOOLEAN,
             'where' => 'civicrm_hrjobcontract_health.id'
           );*/
         self::$_hrjobFields = array_merge(self::$_hrjobFields, CRM_Hrjobcontract_BAO_HRJobLeave::export());
         self::$_hrjobFields = array_merge(self::$_hrjobFields, CRM_Hrjobcontract_BAO_HRJobPay::export());
         self::$_hrjobFields = array_merge(self::$_hrjobFields, CRM_Hrjobcontract_BAO_HRJobPension::export());
         self::$_hrjobFields = array_merge(self::$_hrjobFields, CRM_Hrjobcontract_BAO_HRJobRole::export());
     }
     return self::$_hrjobFields;
 }