diff --git a/apps/maarch_entreprise/admin/contacts/contact_addresses/contact_addresses_del.php b/apps/maarch_entreprise/admin/contacts/contact_addresses/contact_addresses_del.php index 5dc75ccdf16dd84ff64786e14e1b7695c316bad5..018e7f4a4d1979501fda23e0720e115a71fa4426 100755 --- a/apps/maarch_entreprise/admin/contacts/contact_addresses/contact_addresses_del.php +++ b/apps/maarch_entreprise/admin/contacts/contact_addresses/contact_addresses_del.php @@ -44,10 +44,11 @@ if (!$return) { } if (!$return) { - $_SESSION['error'] = _SERVICE . ' ' . _UNKNOWN; - ?> - <script type="text/javascript">window.top.location.href='<?php echo $_SESSION['config']['businessappurl'];?>index.php';</script> - <?php + $_SESSION['error'] = _SERVICE . ' ' . _UNKNOWN; ?> +<script type="text/javascript"> + window.top.location.href = '<?php echo $_SESSION['config']['businessappurl']; ?>index.php'; +</script> +<?php exit(); } $core_tools->load_lang(); @@ -71,119 +72,107 @@ $pageId = "contact_addresses_del"; $core_tools->manage_location_bar($pagePath, $pageLabel, $pageId, $init, $level); /***********************************************************/ -if(isset($_GET['id'])){ - $id = addslashes(functions::wash($_GET['id'], "no", _THE_CONTACT_ADDRESS)); -} else{ - $id = ""; +if (isset($_GET['id'])) { + $id = addslashes(functions::wash($_GET['id'], "no", _THE_CONTACT_ADDRESS)); +} else { + $id = ""; } -if(isset($_GET['mycontact']) && $_GET['mycontact'] <> ''){ - $admin = false; +if (isset($_GET['mycontact']) && $_GET['mycontact'] <> '') { + $admin = false; } else { - $admin = true; + $admin = true; } if ($_REQUEST['valid']) { - $id = $_POST['id']; - - if ($_POST['new'] && $_POST['new_contact_id']){ - $newid = $_POST['new']; - $new_contact_id = $_POST['new_contact_id']; - - // delete contact types - $db->query("DELETE FROM ".$_SESSION['tablename']['contact_addresses']." WHERE id = ?", array($id)); - - $stmt = $db->query("SELECT res_id, exp_contact_id, dest_contact_id FROM mlb_coll_ext WHERE address_id = ?", array($id)); - - while($res = $stmt->fetchObject()){ - if ($res->exp_contact_id <> "") { - $db->query("UPDATE mlb_coll_ext SET exp_contact_id = ? WHERE res_id = ?", array($new_contact_id, $res->res_id)); - } else { - $db->query("UPDATE mlb_coll_ext SET dest_contact_id = ? WHERE res_id = ?", array($new_contact_id, $res->res_id)); - } - } - - $db->query("UPDATE mlb_coll_ext SET address_id = ? WHERE address_id = ?", array($newid, $id)); - $db->query("UPDATE contacts_res SET contact_id = ?, address_id = ? WHERE address_id = ?", array($new_contact_id, $newid, $id)); - - if($_SESSION['history']['contact_addresses_del'] == "true") - { - require_once("core".DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_history.php"); - $users = new history(); - $users->add($_SESSION['tablename']['contact_addresses'], $id,"DEL",'contact_addresses_del', _ADDRESS_DEL." ".strtolower(_NUM).$id."", $_SESSION['config']['databasetype']); - } - $_SESSION['info'] = _DELETED_ADDRESS; - unset($_SESSION['m_admin']); - ?> - <script type="text/javascript"> - window.location.href="<?php echo $_SESSION['config']['businessappurl'].'index.php?page=contacts_v2_up&order='.$_REQUEST['order'].'&order_field='.$_REQUEST['order_field'].'&start='.$_REQUEST['start'].'&what='.$_REQUEST['what'];?>"; - </script> - <?php - } else if (!$_POST['new_contact_id']) { - $_SESSION['error'] = _NEW_CONTACT.' '._IS_EMPTY.". ". _USE_AUTOCOMPLETION; - $contact->type_purpose_address_del($id, $admin, $_SESSION['tablename']['contact_addresses'], 'contact_address', _DELETED_ADDRESS, _WARNING_MESSAGE_DEL_CONTACT_ADDRESS, _ADDRESS_DEL, _CONTACT_ADDRESS_REAFFECT, _NEW_ADDRESS, _CHOOSE_CONTACT_ADDRESS, 'contacts_v2_up', 'contact_addresses_del', _CONTACT_ADDRESS); - } else if (!$_POST['new']) { - $_SESSION['error'] = _NEW_ADDRESS.' '._IS_EMPTY.". ". _USE_AUTOCOMPLETION; - $contact->type_purpose_address_del($id, $admin, $_SESSION['tablename']['contact_addresses'], 'contact_address', _DELETED_ADDRESS, _WARNING_MESSAGE_DEL_CONTACT_ADDRESS, _ADDRESS_DEL, _CONTACT_ADDRESS_REAFFECT, _NEW_ADDRESS, _CHOOSE_CONTACT_ADDRESS, 'contacts_v2_up', 'contact_addresses_del', _CONTACT_ADDRESS); - } -} else if($_REQUEST['move']) { - - $id = $_POST['id']; - - if ($_POST['new_contact_id_reaffect']) { - $db->query("UPDATE contact_addresses set contact_id = ? WHERE id = ?", array($_POST['new_contact_id_reaffect'], $id)); - $db->query("UPDATE contacts_res set contact_id = ? WHERE address_id = ?", array($_POST['new_contact_id_reaffect'], $id)); - - $stmt = $db->query("SELECT res_id, exp_contact_id, dest_contact_id FROM mlb_coll_ext WHERE address_id = ?", array($id)); - - while($res = $stmt->fetchObject()){ - if ($res->exp_contact_id <> "") { - $db->query("UPDATE mlb_coll_ext SET exp_contact_id = ? WHERE res_id = ?", array($_POST['new_contact_id_reaffect'], $res->res_id)); - } else { - $db->query("UPDATE mlb_coll_ext SET dest_contact_id = ? WHERE res_id = ?", array($_POST['new_contact_id_reaffect'], $res->res_id)); - } - } - - if($_SESSION['history']['contact_addresses_del'] == "true") - { - require_once("core".DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_history.php"); - $users = new history(); - $users->add($_SESSION['tablename']['contact_addresses'], $id,"DEL",'contact_addresses_del', _ADDRESS_MOVED." ".strtolower(_NUM).$id."", $_SESSION['config']['databasetype']); - } - $_SESSION['info'] = _ADDRESS_MOVED."."; - unset($_SESSION['m_admin']); - ?> - <script type="text/javascript"> - window.location.href="<?php echo $_SESSION['config']['businessappurl'].'index.php?page=contacts_v2_up&order='.$_REQUEST['order'].'&order_field='.$_REQUEST['order_field'].'&start='.$_REQUEST['start'].'&what='.$_REQUEST['what'];?>"; - </script> - <?php - - } else { - $_SESSION['error'] = _NEW_CONTACT.' '._IS_EMPTY.". ". _USE_AUTOCOMPLETION; - $contact->type_purpose_address_del($id, $admin, $_SESSION['tablename']['contact_addresses'], 'contact_address', _DELETED_ADDRESS, _WARNING_MESSAGE_DEL_CONTACT_ADDRESS, _ADDRESS_DEL, _CONTACT_ADDRESS_REAFFECT, _NEW_ADDRESS, _CHOOSE_CONTACT_ADDRESS, 'contacts_v2_up', 'contact_addresses_del', _CONTACT_ADDRESS); - } - - -} else if($_REQUEST['delete']) { - - $id = $_POST['id']; - $db->query("DELETE FROM contact_addresses WHERE id = ?", array($id)); - - if($_SESSION['history']['contact_addresses_del'] == "true") - { - require_once("core".DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_history.php"); - $users = new history(); - $users->add($_SESSION['tablename']['contact_addresses'], $id,"DEL",'contact_addresses_del', _ADDRESS_DEL." ".strtolower(_NUM).$id."", $_SESSION['config']['databasetype']); - } - $_SESSION['info'] = _DELETED_ADDRESS; - unset($_SESSION['m_admin']); - ?> - <script type="text/javascript"> - window.location.href="<?php echo $_SESSION['config']['businessappurl'].'index.php?page=contacts_v2_up&order='.$_REQUEST['order'].'&order_field='.$_REQUEST['order_field'].'&start='.$_REQUEST['start'].'&what='.$_REQUEST['what'];?>"; - </script> - <?php - + $id = $_POST['id']; + + if ($_POST['new'] && $_POST['new_contact_id']) { + $newid = $_POST['new']; + $new_contact_id = $_POST['new_contact_id']; + + // delete contact types + $db->query("DELETE FROM ".$_SESSION['tablename']['contact_addresses']." WHERE id = ?", array($id)); + + $stmt = $db->query("SELECT res_id, exp_contact_id, dest_contact_id FROM mlb_coll_ext WHERE address_id = ?", array($id)); + + while ($res = $stmt->fetchObject()) { + if ($res->exp_contact_id <> "") { + $db->query("UPDATE mlb_coll_ext SET exp_contact_id = ? WHERE res_id = ?", array($new_contact_id, $res->res_id)); + } else { + $db->query("UPDATE mlb_coll_ext SET dest_contact_id = ? WHERE res_id = ?", array($new_contact_id, $res->res_id)); + } + } + + $db->query("UPDATE mlb_coll_ext SET address_id = ? WHERE address_id = ?", array($newid, $id)); + $db->query("UPDATE contacts_res SET contact_id = ?, address_id = ? WHERE address_id = ?", array($new_contact_id, $newid, $id)); + $db->query("UPDATE resource_contacts SET item_id = ? WHERE item_id = ?", array($newid, $id)); + + if ($_SESSION['history']['contact_addresses_del'] == "true") { + require_once("core".DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_history.php"); + $users = new history(); + $users->add($_SESSION['tablename']['contact_addresses'], $id, "DEL", 'contact_addresses_del', _ADDRESS_DEL." ".strtolower(_NUM).$id."", $_SESSION['config']['databasetype']); + } + $_SESSION['info'] = _DELETED_ADDRESS; + unset($_SESSION['m_admin']); ?> +<script type="text/javascript"> + window.location.href = "<?php echo $_SESSION['config']['businessappurl'].'index.php?page=contacts_v2_up&order='.$_REQUEST['order'].'&order_field='.$_REQUEST['order_field'].'&start='.$_REQUEST['start'].'&what='.$_REQUEST['what']; ?>"; +</script> +<?php + } elseif (!$_POST['new_contact_id']) { + $_SESSION['error'] = _NEW_CONTACT.' '._IS_EMPTY.". ". _USE_AUTOCOMPLETION; + $contact->type_purpose_address_del($id, $admin, $_SESSION['tablename']['contact_addresses'], 'contact_address', _DELETED_ADDRESS, _WARNING_MESSAGE_DEL_CONTACT_ADDRESS, _ADDRESS_DEL, _CONTACT_ADDRESS_REAFFECT, _NEW_ADDRESS, _CHOOSE_CONTACT_ADDRESS, 'contacts_v2_up', 'contact_addresses_del', _CONTACT_ADDRESS); + } elseif (!$_POST['new']) { + $_SESSION['error'] = _NEW_ADDRESS.' '._IS_EMPTY.". ". _USE_AUTOCOMPLETION; + $contact->type_purpose_address_del($id, $admin, $_SESSION['tablename']['contact_addresses'], 'contact_address', _DELETED_ADDRESS, _WARNING_MESSAGE_DEL_CONTACT_ADDRESS, _ADDRESS_DEL, _CONTACT_ADDRESS_REAFFECT, _NEW_ADDRESS, _CHOOSE_CONTACT_ADDRESS, 'contacts_v2_up', 'contact_addresses_del', _CONTACT_ADDRESS); + } +} elseif ($_REQUEST['move']) { + $id = $_POST['id']; + + if ($_POST['new_contact_id_reaffect']) { + $db->query("UPDATE contact_addresses set contact_id = ? WHERE id = ?", array($_POST['new_contact_id_reaffect'], $id)); + $db->query("UPDATE contacts_res set contact_id = ? WHERE address_id = ?", array($_POST['new_contact_id_reaffect'], $id)); + + $stmt = $db->query("SELECT res_id, exp_contact_id, dest_contact_id FROM mlb_coll_ext WHERE address_id = ?", array($id)); + + while ($res = $stmt->fetchObject()) { + if ($res->exp_contact_id <> "") { + $db->query("UPDATE mlb_coll_ext SET exp_contact_id = ? WHERE res_id = ?", array($_POST['new_contact_id_reaffect'], $res->res_id)); + } else { + $db->query("UPDATE mlb_coll_ext SET dest_contact_id = ? WHERE res_id = ?", array($_POST['new_contact_id_reaffect'], $res->res_id)); + } + } + + if ($_SESSION['history']['contact_addresses_del'] == "true") { + require_once("core".DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_history.php"); + $users = new history(); + $users->add($_SESSION['tablename']['contact_addresses'], $id, "DEL", 'contact_addresses_del', _ADDRESS_MOVED." ".strtolower(_NUM).$id."", $_SESSION['config']['databasetype']); + } + $_SESSION['info'] = _ADDRESS_MOVED."."; + unset($_SESSION['m_admin']); ?> +<script type="text/javascript"> + window.location.href = "<?php echo $_SESSION['config']['businessappurl'].'index.php?page=contacts_v2_up&order='.$_REQUEST['order'].'&order_field='.$_REQUEST['order_field'].'&start='.$_REQUEST['start'].'&what='.$_REQUEST['what']; ?>"; +</script> +<?php + } else { + $_SESSION['error'] = _NEW_CONTACT.' '._IS_EMPTY.". ". _USE_AUTOCOMPLETION; + $contact->type_purpose_address_del($id, $admin, $_SESSION['tablename']['contact_addresses'], 'contact_address', _DELETED_ADDRESS, _WARNING_MESSAGE_DEL_CONTACT_ADDRESS, _ADDRESS_DEL, _CONTACT_ADDRESS_REAFFECT, _NEW_ADDRESS, _CHOOSE_CONTACT_ADDRESS, 'contacts_v2_up', 'contact_addresses_del', _CONTACT_ADDRESS); + } +} elseif ($_REQUEST['delete']) { + $id = $_POST['id']; + $db->query("DELETE FROM contact_addresses WHERE id = ?", array($id)); + + if ($_SESSION['history']['contact_addresses_del'] == "true") { + require_once("core".DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_history.php"); + $users = new history(); + $users->add($_SESSION['tablename']['contact_addresses'], $id, "DEL", 'contact_addresses_del', _ADDRESS_DEL." ".strtolower(_NUM).$id."", $_SESSION['config']['databasetype']); + } + $_SESSION['info'] = _DELETED_ADDRESS; + unset($_SESSION['m_admin']); ?> +<script type="text/javascript"> + window.location.href = "<?php echo $_SESSION['config']['businessappurl'].'index.php?page=contacts_v2_up&order='.$_REQUEST['order'].'&order_field='.$_REQUEST['order_field'].'&start='.$_REQUEST['start'].'&what='.$_REQUEST['what']; ?>"; +</script> +<?php } else { - $contact->type_purpose_address_del($id, $admin, $_SESSION['tablename']['contact_addresses'], 'contact_address', _DELETED_ADDRESS, _WARNING_MESSAGE_DEL_CONTACT_ADDRESS, _ADDRESS_DEL, _CONTACT_ADDRESS_REAFFECT, _NEW_ADDRESS, _CHOOSE_CONTACT_ADDRESS, 'contacts_v2_up', 'contact_addresses_del', _CONTACT_ADDRESS); -} -?> + $contact->type_purpose_address_del($id, $admin, $_SESSION['tablename']['contact_addresses'], 'contact_address', _DELETED_ADDRESS, _WARNING_MESSAGE_DEL_CONTACT_ADDRESS, _ADDRESS_DEL, _CONTACT_ADDRESS_REAFFECT, _NEW_ADDRESS, _CHOOSE_CONTACT_ADDRESS, 'contacts_v2_up', 'contact_addresses_del', _CONTACT_ADDRESS); + } diff --git a/apps/maarch_entreprise/admin/contacts/contacts_v2/contacts_v2_del.php b/apps/maarch_entreprise/admin/contacts/contacts_v2/contacts_v2_del.php index 51d2adeb275612410ae60ad72583a3860f1949d2..d6e66e65593babf759d3a8b93083fe9b2d56b357 100755 --- a/apps/maarch_entreprise/admin/contacts/contacts_v2/contacts_v2_del.php +++ b/apps/maarch_entreprise/admin/contacts/contacts_v2/contacts_v2_del.php @@ -77,6 +77,22 @@ if(isset($_REQUEST['valid'])) $db->query("UPDATE ".$_SESSION['collections'][$i]['extensions'][$i] . " SET dest_contact_id = ?, address_id = ? WHERE dest_contact_id = ?", array($new_contact, $new_address, $s_id)); $db->query("UPDATE contacts_res SET contact_id = ?, address_id = ? WHERE contact_id = ?", array($new_contact, $new_address, $s_id)); + + $aAddressesTmp = \SrcCore\models\DatabaseModel::select([ + 'select' => ['id'], + 'table' => ['contact_addresses'], + 'where' => ['contact_id = ?'], + 'data' => [$s_id], + ]); + + $aAddresses = []; + if (!empty($aAddressesTmp)) { + foreach ($aAddressesTmp as $value) { + $aAddresses[] = $value['id']; + } + $db->query("UPDATE resource_contacts SET item_id = ? WHERE item_id in (?)", array($new_address, $aAddresses)); + } + $db->query("DELETE FROM " . $_SESSION['tablename']['contacts_v2'] . " WHERE contact_id = ?", array($s_id)); $db->query("DELETE FROM " . $_SESSION['tablename']['contact_addresses'] @@ -94,11 +110,10 @@ if(isset($_REQUEST['valid'])) ."&what=".functions::xssafe($_REQUEST['what']);?>"; </script> <?php - - } elseif(empty($_REQUEST['contact'])) { + } elseif (empty($_REQUEST['contact'])) { $_SESSION['error'] = _NEW_CONTACT.' '._IS_EMPTY.". ". _USE_AUTOCOMPLETION; $contact->delcontact($s_id); - } elseif(empty($_REQUEST['address'])) { + } elseif (empty($_REQUEST['address'])) { $_SESSION['error'] = _NEW_ADDRESS.' '._IS_EMPTY.". ". _USE_AUTOCOMPLETION; $contact->delcontact($s_id); } diff --git a/apps/maarch_entreprise/class/class_contacts_v2_Abstract.php b/apps/maarch_entreprise/class/class_contacts_v2_Abstract.php index 3e2eaff9ca09bcd6f2a6002f75f35cc8abeb49be..a83974f3c4b9fe3ed70c5c341883011f270a3d3c 100755 --- a/apps/maarch_entreprise/class/class_contacts_v2_Abstract.php +++ b/apps/maarch_entreprise/class/class_contacts_v2_Abstract.php @@ -1137,6 +1137,24 @@ abstract class contacts_v2_Abstract extends Database $nb_docs = $nb_docs + $stmt->rowCount(); } + $aAddressesTmp = \SrcCore\models\DatabaseModel::select([ + 'select' => ['id'], + 'table' => ['contact_addresses'], + 'where' => ['contact_id = ?'], + 'data' => [$id], + ]); + + $aAddresses = []; + if (!empty($aAddressesTmp)) { + foreach ($aAddressesTmp as $value) { + $aAddresses[] = $value['id']; + } + $stmt = $db->query("SELECT DISTINCT rl.res_id FROM resource_contacts cr LEFT JOIN res_letterbox rl ON rl.res_id = cr.res_id WHERE rl.status <> 'DEL' AND cr.type = 'contact' AND cr.item_id IN (?)", array($aAddresses)); + if ($stmt->rowCount() > 0) { + $nb_docs = $nb_docs + $stmt->rowCount(); + } + } + if ($nb_docs == 0) { $query = 'SELECT contact_id FROM '.$_SESSION['tablename']['contacts_v2'].' WHERE contact_id = ? '; $arrayPDO = array($id); @@ -2644,19 +2662,27 @@ abstract class contacts_v2_Abstract extends Database } elseif ($mode == 'contact_purpose') { $stmt = $db->query('SELECT id FROM '.$_SESSION['tablename']['contact_addresses'] .' WHERE contact_purpose_id = ?', array($id)); - } elseif ($mode == 'contact_address') { - $stmt = $db->query("SELECT mlb.address_id FROM mlb_coll_ext mlb LEFT JOIN res_letterbox rl ON rl.res_id = mlb.res_id WHERE rl.status <> 'DEL' AND mlb.address_id = ?", array($id)); } - if ($stmt->rowCount() > 0) { + if (!empty($stmt) && $stmt->rowCount() > 0) { $nb_elements = $nb_elements + $stmt->rowCount(); } if ($mode == 'contact_address') { - $stmt = $db->query("SELECT DISTINCT cr.address_id FROM contacts_res cr LEFT JOIN res_letterbox rl ON rl.res_id = cr.res_id WHERE rl.status <> 'DEL' AND cr.address_id = ?", array($id)); - if ($stmt->rowCount() > 0) { - $nb_elements = $nb_elements + $stmt->rowCount(); + $aRes = []; + $stmt = $db->query("SELECT mlb.res_id FROM mlb_coll_ext mlb LEFT JOIN res_letterbox rl ON rl.res_id = mlb.res_id WHERE rl.status <> 'DEL' AND mlb.address_id = ?", array($id)); + while($object = $stmt->fetchObject()){ + $aRes[$object->res_id] = $object->res_id; + } + $stmt = $db->query("SELECT DISTINCT rl.res_id FROM contacts_res cr LEFT JOIN res_letterbox rl ON rl.res_id = cr.res_id WHERE rl.status <> 'DEL' AND cr.address_id = ?", array($id)); + while($object = $stmt->fetchObject()){ + $aRes[$object->res_id] = $object->res_id; + } + $stmt = $db->query("SELECT DISTINCT rl.res_id FROM resource_contacts cr LEFT JOIN res_letterbox rl ON rl.res_id = cr.res_id WHERE rl.status <> 'DEL' AND cr.type = 'contact' AND cr.item_id = ?", array($id)); + while($object = $stmt->fetchObject()){ + $aRes[$object->res_id] = $object->res_id; } + $nb_elements = count($aRes); } ?> <div class="error"> diff --git a/apps/maarch_entreprise/lang/fr.php b/apps/maarch_entreprise/lang/fr.php index a5133cdd4587c864dde3d9c92a31e02158f79551..9c1e74d959f02e05145fab68ea705dfb13cdffef 100755 --- a/apps/maarch_entreprise/lang/fr.php +++ b/apps/maarch_entreprise/lang/fr.php @@ -2493,7 +2493,7 @@ if (!defined('_YOU_MUST_SELECT_CONTACT')) { define('_YOU_MUST_SELECT_CONTACT', 'Vous devez sélectionner un contact '); } if (!defined('_DOC_SENDED_BY_CONTACT')) { - define('_DOC_SENDED_BY_CONTACT', '<b>Documents et/ou courriers envoyés par ce contact</b>'); + define('_DOC_SENDED_BY_CONTACT', '<b>Documents et/ou courriers liés à ce contact</b>'); } if (!defined('_CONTACT_INFO')) { define('_CONTACT_INFO', 'Fiche contact');