Skip to content

Commit de6ed81

Browse files
committed
#730 [Admin] fix: handle linkback after backtopage
1 parent f7a3f17 commit de6ed81

File tree

1 file changed

+44
-16
lines changed

1 file changed

+44
-16
lines changed

admin/securityconf.php

Lines changed: 44 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -181,14 +181,24 @@
181181

182182
$labourdDoctorSociety = $allLinks['LabourDoctorSociety'];
183183

184-
// * Third party concerned - Tiers concerné *
184+
// * Third party concerned - Tiers concerné *
185185

186186
if ($labourdDoctorSociety->ref == 'LabourDoctorSociety') {
187187
$events = array();
188188
$events[] = array('method' => 'getContacts', 'url' => dol_buildpath('/core/ajax/contacts.php?showempty=1', 1), 'htmlname' => 'labourdoctor_contactid', 'params' => array('add-customer-contact' => 'disabled'));
189189
$societe->fetch($labourdDoctorSociety->id[0]);
190190

191-
print $form->select_company($labourdDoctorSociety->id[0], 'labourdoctor_socid', '', 'SelectThirdParty', 1, 0, $events, 0, 'minwidth300');
191+
if ($action == 'createdoctorcontact') {
192+
$lastDoctorContact = $societe->contact_array();
193+
$lastDoctorContactId = array_key_last($lastDoctorContact);
194+
}
195+
196+
if ($action == 'createdoctorsoc') {
197+
$lastSocieteCreated = saturne_fetch_all_object_type('societe', 'DESC', 'rowid', 1);
198+
$labourdDoctorSociety->id[0] = array_key_first($lastSocieteCreated);
199+
}
200+
201+
print $form->select_company($labourdDoctorSociety->id[0], 'labourdoctor_socid', '', 'SelectThirdParty', 1, 0, $events, 0, 'minwidth300');
192202
} else {
193203
$events = array();
194204
$events[] = array('method' => 'getContacts', 'url' => dol_buildpath('/core/ajax/contacts.php?showempty=1', 1), 'htmlname' => 'labourdoctor_contactid', 'params' => array('add-customer-contact' => 'disabled'));
@@ -201,27 +211,31 @@
201211
}
202212
}
203213
if (!GETPOSTISSET('backtopage')) {
204-
print ' <a href="' . DOL_URL_ROOT . '/societe/card.php?action=create&backtopage=' . urlencode($_SERVER["PHP_SELF"] . '?action=create') . '"><span class="fa fa-plus-circle valignmiddle paddingleft" title="' . $langs->trans("AddThirdParty") . '"></span></a>';
214+
print ' <a href="' . DOL_URL_ROOT . '/societe/card.php?action=create&backtopage=' . urlencode($_SERVER["PHP_SELF"] . '?action=createdoctorsoc') . '"><span class="fa fa-plus-circle valignmiddle paddingleft" title="' . $langs->trans("AddThirdParty") . '"></span></a>';
205215
}
206216
print '</td></tr>';
207217

208218
// * Related contacts - Contacts associés *
209219
print '<tr class="oddeven"><td class="nowrap">' . $langs->trans("ActionOnContact") . '</td><td>';
210220

211-
$labourdDoctorContact = $allLinks['LabourDoctorContact'];
212-
$labourDoctorPreselectedIds = $labourdDoctorContact->id;
221+
$labourdDoctorContact = $allLinks['LabourDoctorContact'];
222+
$labourDoctorPreselectedIds = $labourdDoctorContact->id ?: [];
223+
224+
if (!empty($labourdDoctorSociety)) {
225+
$labourDoctorPreselectedIds = array_merge($labourDoctorPreselectedIds, [$lastDoctorContactId]);
226+
}
213227

214-
if ($labourdDoctorContact->id) {
215-
print $form->selectcontacts(empty($labourdDoctorSociety->id[0]) ? -1 : $labourdDoctorSociety->id[0], $labourdDoctorContact->id, 'labourdoctor_contactid[]', 0, '', '', 0, 'minwidth500', false, 0, array(), false, 'multiple', 'labourdoctor_contactid');
228+
if ($labourdDoctorContact->id) {
229+
print $form->selectcontacts(empty($labourdDoctorSociety->id[0]) ? -1 : $labourdDoctorSociety->id[0], $labourDoctorPreselectedIds, 'labourdoctor_contactid[]', 0, '', '', 0, 'minwidth500', false, 0, array(), false, 'multiple', 'labourdoctor_contactid');
216230
} else {
217-
$labourDoctorPreselectedIds = GETPOST('labourdoctor_contactid', 'array');
231+
$labourDoctorPreselectedIds = array_merge($labourDoctorPreselectedIds, GETPOST('labourdoctor_contactid', 'array'));
218232
if (GETPOST('labourdoctor_contactid', 'array')) {
219233
$labourDoctorPreselectedIds[GETPOST('labourdoctor_contactid', 'array')] = GETPOST('labourdoctor_contactid', 'array');
220234
}
221-
print $form->selectcontacts(empty(GETPOST('labourdoctor_socid', 'int')) ? -1 : GETPOST('labourdoctor_socid', 'int'), $labourDoctorPreselectedIds, 'labourdoctor_contactid[]', 0, '', '', 0, 'minwidth500', false, 0, array(), false, 'multiple', 'labourdoctor_contactid');
235+
print $form->selectcontacts(empty(GETPOST('labourdoctor_socid', 'int')) ? $labourdDoctorSociety->id[0] : GETPOST('labourdoctor_socid', 'int'), $labourDoctorPreselectedIds, 'labourdoctor_contactid[]', 0, '', '', 0, 'minwidth500', false, 0, array(), false, 'multiple', 'labourdoctor_contactid');
222236
}
223237
if (!GETPOSTISSET('backtopage')) {
224-
print ' <a href="' . DOL_URL_ROOT . '/contact/card.php?action=create&socid='. $labourdDoctorSociety->id[0] .'&backtopage=' . urlencode($_SERVER["PHP_SELF"] . '?action=create') . '"><span class="fa fa-plus-circle valignmiddle paddingleft" title="' . $langs->trans("AddContact") . '"></span></a>';
238+
print ' <a href="' . DOL_URL_ROOT . '/contact/card.php?action=create&socid='. $labourdDoctorSociety->id[0] .'&backtopage=' . urlencode($_SERVER["PHP_SELF"] . '?action=createdoctorcontact') . '"><span class="fa fa-plus-circle valignmiddle paddingleft" title="' . $langs->trans("AddContact") . '"></span></a>';
225239
}
226240
print '</td></tr>';
227241

@@ -241,6 +255,16 @@
241255
$events[] = array('method' => 'getContacts', 'url' => dol_buildpath('/core/ajax/contacts.php?showempty=1', 1), 'htmlname' => 'labourinspector_contactid', 'params' => array('add-customer-contact' => 'disabled'));
242256
$societe->fetch($labourdInspectorSociete->id[0]);
243257

258+
if ($action == 'createinspectorcontact') {
259+
$lastInspectorContact = $societe->contact_array();
260+
$lastInspectorContactId = array_key_last($lastInspectorContact);
261+
}
262+
263+
if ($action == 'createinspectorsoc') {
264+
$lastSocieteCreated = saturne_fetch_all_object_type('societe', 'DESC', 'rowid', 1);
265+
$labourdInspectorSociete->id[0] = array_key_first($lastSocieteCreated);
266+
}
267+
244268
print $form->select_company($labourdInspectorSociete->id[0], 'labourinspector_socid', '', 0, 1, 0, $events, 0, 'minwidth300');
245269
} else {
246270
$events = array();
@@ -253,7 +277,7 @@
253277
}
254278
}
255279
if (!GETPOSTISSET('backtopage')) {
256-
print ' <a href="' . DOL_URL_ROOT . '/societe/card.php?action=create&backtopage=' . urlencode($_SERVER["PHP_SELF"] . '?action=create') . '"><span class="fa fa-plus-circle valignmiddle paddingleft" title="' . $langs->trans("AddThirdParty") . '"></span></a>';
280+
print ' <a href="' . DOL_URL_ROOT . '/societe/card.php?action=create&backtopage=' . urlencode($_SERVER["PHP_SELF"] . '?action=createinspectorsoc') . '"><span class="fa fa-plus-circle valignmiddle paddingleft" title="' . $langs->trans("AddThirdParty") . '"></span></a>';
257281
}
258282
print '</td></tr>';
259283

@@ -262,19 +286,23 @@
262286
print '<tr class="oddeven"><td class="nowrap">' . $langs->trans("ActionOnContact") . '</td><td>';
263287

264288
$labourInspectorContacts = $allLinks['LabourInspectorContact'];
265-
$labourInspectorPreselectedIds = $labourInspectorContacts->id;
289+
$labourInspectorPreselectedIds = $labourInspectorContacts->id ?: [];
290+
291+
if (!empty($labourdInspectorSociete)) {
292+
$labourInspectorPreselectedIds = array_merge($labourInspectorPreselectedIds, [$lastInspectorContactId]);
293+
}
266294

267295
if ($labourInspectorContacts->id) {
268-
print $form->selectcontacts(empty($labourdInspectorSociete->id[0]) ? -1 : $labourdInspectorSociete->id[0], $labourInspectorContacts->id, 'labourinspector_contactid[]', 0, '', '', 0, 'minwidth500', false, 0, array(), false, 'multiple', 'labourinspector_contactid');
296+
print $form->selectcontacts(empty($labourdInspectorSociete->id[0]) ? -1 : $labourdInspectorSociete->id[0], $labourInspectorPreselectedIds, 'labourinspector_contactid[]', 0, '', '', 0, 'minwidth500', false, 0, array(), false, 'multiple', 'labourinspector_contactid');
269297
} else {
270-
$labourInspectorPreselectedIds = GETPOST('labourinspector_contactid', 'array');
298+
$labourInspectorPreselectedIds = array_merge($labourInspectorPreselectedIds, GETPOST('labourinspector_contactid', 'array'));
271299
if (GETPOST('labourinspector_contactid', 'array')) {
272300
$labourInspectorPreselectedIds[GETPOST('labourinspector_contactid', 'array')] = GETPOST('labourinspector_contactid', 'array');
273301
}
274-
print $form->selectcontacts(empty(GETPOST('labourinspector_socid', 'int')) ? -1 : GETPOST('labourinspector_socid', 'int'), $labourInspectorPreselectedIds, 'labourinspector_contactid[]', 0, '', '', 0, 'minwidth500', false, 0, array(), false, 'multiple', 'labourinspector_contactid');
302+
print $form->selectcontacts(empty(GETPOST('labourinspector_socid', 'int')) ? $labourdInspectorSociete->id[0] : GETPOST('labourinspector_socid', 'int'), $labourInspectorPreselectedIds, 'labourinspector_contactid[]', 0, '', '', 0, 'minwidth500', false, 0, array(), false, 'multiple', 'labourinspector_contactid');
275303
}
276304
if (!GETPOSTISSET('backtopage')) {
277-
print ' <a href="' . DOL_URL_ROOT . '/contact/card.php?action=create&socid='. $labourdInspectorSociete->id[0] .'&backtopage=' . urlencode($_SERVER["PHP_SELF"] . '?action=create') . '"><span class="fa fa-plus-circle valignmiddle paddingleft" title="' . $langs->trans("AddContact") . '"></span></a>';
305+
print ' <a href="' . DOL_URL_ROOT . '/contact/card.php?action=create&socid='. $labourdInspectorSociete->id[0] .'&backtopage=' . urlencode($_SERVER["PHP_SELF"] . '?action=createinspectorcontact') . '"><span class="fa fa-plus-circle valignmiddle paddingleft" title="' . $langs->trans("AddContact") . '"></span></a>';
278306
}
279307
print '</td></tr>';
280308

0 commit comments

Comments
 (0)