Exemplo n.º 1
0
 /**
  * @see parent::merge()
  */
 function merge($objects = array(), $fast = false)
 {
     if ($this->_force_merge) {
         return parent::merge($objects, $fast);
     }
     return CAppUI::tr("CMediusers-merge-impossible");
 }
Exemplo n.º 2
0
 /**
  * Fusion de patients
  *
  * @param CPatient[] $objects Liste des patientsx
  * @param bool       $fast    Mode rapide
  *
  * @return string|null
  */
 function merge($objects = array(), $fast = false)
 {
     // Load the matching CDossierMedical objects
     if ($this->_id) {
         $merged_objects = array_merge($objects, array($this));
     } else {
         $merged_objects = $objects;
     }
     $where = array('object_class' => "='{$this->_class}'", 'object_id' => CSQLDataSource::prepareIn(CMbArray::pluck($merged_objects, 'patient_id')));
     $dossier_medical = new CDossierMedical();
     $list = $dossier_medical->loadList($where);
     foreach ($objects as $object) {
         $object->loadIPP();
     }
     if ($msg = parent::merge($objects, $fast)) {
         return $msg;
     }
     CPatientLink::deleteDoubloon();
     $this->store();
     // Merge them
     if (count($list) > 1) {
         $dossier_medical->mergePlainFields($list);
         $dossier_medical->object_class = $this->_class;
         $dossier_medical->object_id = $this->_id;
         return $dossier_medical->merge($list, $fast);
     }
     return null;
 }
Exemplo n.º 3
0
 /**
  * Merges an array of objects
  * @see parent
  *
  * @param CUser[] $objects An array of CMbObject to merge
  * @param bool    $fast    Tell wether to use SQL (fast) or PHP (slow but checked and logged) algorithm
  *
  * @return CUser
  */
 function merge($objects, $fast = false)
 {
     if (!$this->_id) {
         return "CUser-merge-alternative-mode-required";
     }
     // Fast merging obligatoire
     $fast = true;
     $mediusers = array();
     foreach ($objects as $object) {
         $object->loadRefMediuser();
         $mediusers[] = $object->_ref_mediuser;
         $object->removePerms();
     }
     $this->loadRefMediuser();
     $this->_ref_mediuser->_force_merge = true;
     $this->_ref_mediuser->merge($mediusers, $fast);
     return parent::merge($objects, $fast);
 }