$medecin1 = new CMedecin();
$medecin1->load($_POST["medecin1_id"]);
$medecin2 = new CMedecin();
$medecin2->load($_POST["medecin2_id"]);
$do = new CDoObjectAddEdit("CMedecin", "medecin_id");
$do->doBind();
// Création du nouveau medecin
if (intval(CValue::post("del"))) {
    $do->doDelete();
} else {
    $do->doStore();
}
/** @var CMedecin $newMedecin */
$newMedecin =& $do->_obj;
// Transfert de toutes les backrefs
if ($msg = $newMedecin->transferBackRefsFrom($medecin1)) {
    $do->errorRedirect($msg);
}
if ($msg = $newMedecin->transferBackRefsFrom($medecin2)) {
    $do->errorRedirect($msg);
}
// Suppression des anciens objets
if ($msg = $medecin1->delete()) {
    $do->errorRedirect($msg);
}
if ($msg = $medecin2->delete()) {
    $do->errorRedirect($msg);
}
$medecin1->delete();
$medecin2->delete();
$do->doRedirect();
Exemplo n.º 2
0
$objects_class = CValue::post("_objects_class");
$base_object_id = CValue::post("_base_object_id");
$del = CValue::post("del");
$fast = CValue::post("fast");
CApp::setMemoryLimit("512M");
// If the class is valid
if (class_exists($objects_class)) {
    $objects = array();
    $do = new CDoObjectAddEdit($objects_class);
    // If alt mode, load the specified object
    if ($base_object_id) {
        $do->_obj->load($base_object_id);
    }
    // Création du nouvel objet
    if (intval($del)) {
        $do->errorRedirect("Fusion en mode suppression impossible");
    }
    // Unset the base_object from the list
    if ($do->_obj->_id) {
        foreach ($objects_id as $key => $object_id) {
            if ($do->_obj->_id == $object_id) {
                unset($objects_id[$key]);
                unset($_POST["_merging"][$base_object_id]);
            }
        }
        // Only one objet to merge
        $objects_id = array(reset($objects_id));
    }
    foreach ($objects_id as $object_id) {
        $object = new $objects_class();
        // the CMbObject is loaded