Ejemplo n.º 1
0
<?php

/* $Id: $ */
/**
 * @package Mediboard
 * @subpackage sante400
 * @version $Revision: $
 * @author SARL OpenXtrem
 * @license GNU General Public License, see http://www.gnu.org/licenses/gpl.html 
 */
CCanDo::checkRead();
$canSante400 = CModule::getCanDo("dPsante400");
$idex = new CIdSante400();
$idex->load(CValue::get("idex_id"));
$idex->loadRefs();
// Chargement du filtre
$filter = new CIdSante400();
$filter->object_id = CValue::get("object_id");
$filter->object_class = CValue::get("object_class");
$filter->tag = CValue::get("tag");
$filter->id400 = CValue::get("id400");
$filter->nullifyEmptyFields();
$filter->last_update = CValue::first($idex->last_update, CMbDT::dateTime());
// Rester sur le même filtre en mode dialogue
$dialog = CValue::get("dialog");
if ($dialog && $idex->_id) {
    $filter->object_class = $idex->object_class;
    $filter->object_id = $idex->object_id;
}
// Récupération de la liste des classes disponibles
if ($filter->object_class && $filter->object_id) {
 /**
  * Trigger when merge failed
  *
  * @param CMbObject $mbObject Object
  *
  * @return bool
  */
 function onMergeFailure(CMbObject $mbObject)
 {
     if (!$this->isHandled($mbObject)) {
         return false;
     }
     // On va réatribuer les idexs en cas de problème dans la fusion
     foreach ($mbObject->_fusion as $group_id => $infos_fus) {
         if (!$infos_fus || !array_key_exists("idexs_changed", $infos_fus)) {
             return false;
         }
         foreach ($infos_fus["idexs_changed"] as $idex_id => $tag_name) {
             $idex = new CIdSante400();
             $idex->load($idex_id);
             if (!$idex->_id) {
                 continue;
             }
             // Réattribution sur l'objet non supprimé
             $sejour_elimine = $infos_fus["sejourElimine"];
             $idex->object_id = $sejour_elimine->_id;
             $idex->tag = $tag_name;
             $idex->last_update = CMbDT::dateTime();
             $idex->store();
         }
     }
 }
Ejemplo n.º 3
0
 * @package  Mediboard
 * @author   SARL OpenXtrem <*****@*****.**>
 * @license  GNU General Public License, see http://www.gnu.org/licenses/gpl.html 
 * @version  SVN: $Id:$ 
 * @link     http://www.mediboard.org
 */
CApp::setTimeLimit(240);
CApp::setMemoryLimit("512M");
CCanDo::checkAdmin();
$d1_id = CValue::request("domain_1_id");
$d2_id = CValue::request("domain_2_id");
$idex_ids = CValue::request("idex_ids", array());
/* Traitement prélable pour passer en "trash" les idexs en erreurs */
foreach ($idex_ids as $_idex => $idex_id) {
    $idex = new CIdSante400();
    $idex->load($idex_id);
    $idex->tag = "trash_{$idex->tag}";
    $idex->store();
}
/* checkMerge */
$domains_id = array($d1_id, $d2_id);
$domains = array();
$checkMerge = array();
if (count($domains_id) != 2) {
    $checkMerge[] = CAppUI::tr("mergeTooFewObjects");
}
foreach ($domains_id as $domain_id) {
    $domain = new CDomain();
    // the CMbObject is loaded
    if (!$domain->load($domain_id)) {
        CAppUI::setMsg("Chargement impossible de l'objet [{$domain_id}]", UI_MSG_ERROR);