advtarget.tpl.php 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552
  1. <?php
  2. /*
  3. *
  4. * This program is free software; you can redistribute it and/or modify
  5. * it under the terms of the GNU General Public License as published by
  6. * the Free Software Foundation; either version 3 of the License, or
  7. * (at your option) any later version.
  8. *
  9. * This program is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. * GNU General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU General Public License
  15. * along with this program. If not, see <https://www.gnu.org/licenses/>.
  16. */
  17. if (isModEnabled('categorie') && $user->rights->categorie->lire) {
  18. require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
  19. }
  20. print '<script>
  21. $(document).ready(function() {
  22. // Click Function
  23. $(":button[name=addcontact]").click(function() {
  24. $(":hidden[name=action]").val("add");
  25. $("#find_customer").submit();
  26. });
  27. $(":button[name=loadfilter]").click(function() {
  28. $(":hidden[name=action]").val("loadfilter");
  29. $("#find_customer").submit();
  30. });
  31. $(":button[name=deletefilter]").click(function() {
  32. $(":hidden[name=action]").val("deletefilter");
  33. $("#find_customer").submit();
  34. });
  35. $(":button[name=savefilter]").click(function() {
  36. $(":hidden[name=action]").val("savefilter");
  37. $("#find_customer").submit();
  38. });
  39. $(":button[name=createfilter]").click(function() {
  40. $(":hidden[name=action]").val("createfilter");
  41. $("#find_customer").submit();
  42. });
  43. });
  44. </script>';
  45. print load_fiche_titre($langs->trans("AdvTgtTitle"));
  46. print '<div class="tabBar">'."\n";
  47. print '<form name="find_customer" id="find_customer" action="'.$_SERVER['PHP_SELF'].'?id='.$id.'" method="POST">'."\n";
  48. print '<input type="hidden" name="token" value="'.newToken().'">'."\n";
  49. print '<input type="hidden" name="action" value="">'."\n";
  50. print '<table class="border centpercent">'."\n";
  51. print '<tr>'."\n";
  52. print '<td colspan="3" class="right">'."\n";
  53. print '<input type="button" name="addcontact" id="addcontact" value="'.$langs->trans('AdvTgtAddContact').'" class="button"/>'."\n";
  54. print '</td>'."\n";
  55. print '</tr>'."\n";
  56. print '<tr><td>'.$langs->trans('AdvTgtNameTemplate').'</td><td class="valignmiddle">';
  57. if (!empty($template_id)) {
  58. $default_template = $template_id;
  59. } else {
  60. $default_template = $advTarget->id;
  61. }
  62. print $formadvtargetemaling->selectAdvtargetemailingTemplate('template_id', $default_template, 0, $advTarget->type_element, 'valignmiddle');
  63. print '<input type="button" name="loadfilter" id="loadfilter" value="'.$langs->trans('AdvTgtLoadFilter').'" class="button"/>';
  64. print '<input type="button" name="deletefilter" id="deletefilter" value="'.$langs->trans('AdvTgtDeleteFilter').'" class="button"/>';
  65. print '<input type="button" name="savefilter" id="savefilter" value="'.$langs->trans('AdvTgtSaveFilter').'" class="button"/>';
  66. print '</td><td>'."\n";
  67. print '</td></tr>'."\n";
  68. print '<tr><td>'.$langs->trans('AdvTgtOrCreateNewFilter').'</td><td>';
  69. print '<input type="text" name="template_name" id="template_name" value=""/>';
  70. print '<input type="button" name="createfilter" id="createfilter" value="'.$langs->trans('AdvTgtCreateFilter').'" class="button"/>';
  71. print '</td><td>'."\n";
  72. print '</td></tr>'."\n";
  73. print '<tr><td>'.$langs->trans('AdvTgtTypeOfIncude').'</td><td>';
  74. print $form->selectarray('type_of_target', $advTarget->select_target_type, $array_query['type_of_target']);
  75. print '</td><td>'."\n";
  76. print $form->textwithpicto('', $langs->trans("AdvTgtTypeOfIncudeHelp"), 1, 'help');
  77. print '</td></tr>'."\n";
  78. // Customer name
  79. print '<tr><td>'.$langs->trans('ThirdPartyName');
  80. if (!empty($array_query['cust_name'])) {
  81. print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
  82. }
  83. print '</td><td><input type="text" name="cust_name" value="'.$array_query['cust_name'].'"/></td><td>'."\n";
  84. print $form->textwithpicto('', $langs->trans("AdvTgtSearchTextHelp"), 1, 'help');
  85. print '</td></tr>'."\n";
  86. // Code Client
  87. print '<tr><td>'.$langs->trans('CustomerCode');
  88. if (!empty($array_query['cust_code'])) {
  89. print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
  90. }
  91. print '</td><td><input type="text" name="cust_code" value="'.$array_query['cust_code'].'"/></td><td>'."\n";
  92. print $form->textwithpicto('', $langs->trans("AdvTgtSearchTextHelp"), 1, 'help');
  93. print '</td></tr>'."\n";
  94. // Address Client
  95. print '<tr><td>'.$langs->trans('Address');
  96. if (!empty($array_query['cust_adress'])) {
  97. print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
  98. }
  99. print '</td><td><input type="text" name="cust_adress" value="'.$array_query['cust_adress'].'"/></td><td>'."\n";
  100. print $form->textwithpicto('', $langs->trans("AdvTgtSearchTextHelp"), 1, 'help');
  101. print '</td></tr>'."\n";
  102. // Zip Client
  103. print '<tr><td>'.$langs->trans('Zip');
  104. if (!empty($array_query['cust_zip'])) {
  105. print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
  106. }
  107. print '</td><td><input type="text" name="cust_zip" value="'.$array_query['cust_zip'].'"/></td><td>'."\n";
  108. print $form->textwithpicto('', $langs->trans("AdvTgtSearchTextHelp"), 1, 'help');
  109. print '</td></tr>'."\n";
  110. // City Client
  111. print '<tr><td>'.$langs->trans('Town');
  112. if (!empty($array_query['cust_city'])) {
  113. print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
  114. }
  115. print '</td><td><input type="text" name="cust_city" value="'.$array_query['cust_city'].'"/></td><td>'."\n";
  116. print $form->textwithpicto('', $langs->trans("AdvTgtSearchTextHelp"), 1, 'help');
  117. print '</td></tr>'."\n";
  118. // Customer Country
  119. print '<tr><td>'.$langs->trans("Country");
  120. if (!empty($array_query['cust_country'])) {
  121. print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
  122. }
  123. print '</td><td>'."\n";
  124. print $formadvtargetemaling->multiselectCountry('cust_country', $array_query['cust_country']);
  125. print '</td><td>'."\n";
  126. print '</td></tr>'."\n";
  127. // State Customer
  128. print '<tr><td>'.$langs->trans('Status').' '.$langs->trans('ThirdParty');
  129. if (!empty($array_query['cust_status'])) {
  130. print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
  131. }
  132. print '</td><td>';
  133. print $formadvtargetemaling->advMultiselectarray(
  134. 'cust_status',
  135. array(
  136. '0' => $langs->trans('ActivityCeased'),
  137. '1' => $langs->trans('InActivity')
  138. ),
  139. $array_query['cust_status']
  140. );
  141. print '</td><td>'."\n";
  142. print '</td></tr>'."\n";
  143. // Mother Company
  144. print '<tr><td>'.$langs->trans("Maison mère");
  145. if (!empty($array_query['cust_mothercompany'])) {
  146. print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
  147. }
  148. print '</td><td>'."\n";
  149. print '<input type="text" name="cust_mothercompany" value="'.$array_query['cust_mothercompany'].'"/>';
  150. print '</td><td>'."\n";
  151. print $form->textwithpicto('', $langs->trans("AdvTgtSearchTextHelp"), 1, 'help');
  152. print '</td></tr>'."\n";
  153. // Prospect/Customer
  154. $selected = $array_query['cust_typecust'];
  155. print '<tr><td>'.$langs->trans('ProspectCustomer').' '.$langs->trans('ThirdParty');
  156. if (!empty($array_query['cust_typecust'])) {
  157. print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
  158. }
  159. print '</td><td>';
  160. $options_array = array(
  161. 2 => $langs->trans('Prospect'),
  162. 3 => $langs->trans('ProspectCustomer'),
  163. 1 => $langs->trans('Customer'),
  164. 0 => $langs->trans('NorProspectNorCustomer')
  165. );
  166. print $formadvtargetemaling->advMultiselectarray('cust_typecust', $options_array, $array_query['cust_typecust']);
  167. print '</td><td>'."\n";
  168. print '</td></tr>'."\n";
  169. // Prospection status
  170. print '<tr><td>'.$langs->trans('ProspectLevel');
  171. if (!empty($array_query['cust_prospect_status'])) {
  172. print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
  173. }
  174. print '</td><td>';
  175. print $formadvtargetemaling->multiselectProspectionStatus($array_query['cust_prospect_status'], 'cust_prospect_status');
  176. print '</td><td>'."\n";
  177. print '</td></tr>'."\n";
  178. // Prospection comm status
  179. print '<tr><td>'.$langs->trans('StatusProsp');
  180. if (!empty($array_query['cust_comm_status'])) {
  181. print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
  182. }
  183. print '</td><td>';
  184. print $formadvtargetemaling->advMultiselectarray('cust_comm_status', $advTarget->type_statuscommprospect, $array_query['cust_comm_status']);
  185. print '</td><td>'."\n";
  186. print '</td></tr>'."\n";
  187. // Customer Type
  188. print '<tr><td>'.$langs->trans("ThirdPartyType");
  189. if (!empty($array_query['cust_typeent'])) {
  190. print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
  191. }
  192. print '</td><td>'."\n";
  193. print $formadvtargetemaling->advMultiselectarray('cust_typeent', $formcompany->typent_array(0, " AND id <> 0"), $array_query['cust_typeent']);
  194. print '</td><td>'."\n";
  195. print '</td></tr>'."\n";
  196. // Staff number
  197. print '<td>'.$langs->trans("Staff");
  198. if (!empty($array_query['cust_effectif_id'])) {
  199. print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
  200. }
  201. print '</td><td>';
  202. print $formadvtargetemaling->advMultiselectarray("cust_effectif_id", $formcompany->effectif_array(0, " AND id <> 0"), $array_query['cust_effectif_id']);
  203. print '</td><td>'."\n";
  204. print '</td></tr>'."\n";
  205. // Sales manager
  206. print '<tr><td>'.$langs->trans("SalesRepresentatives");
  207. if (!empty($array_query['cust_saleman'])) {
  208. print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
  209. }
  210. print '</td><td>'."\n";
  211. print $formadvtargetemaling->multiselectselectSalesRepresentatives('cust_saleman', $array_query['cust_saleman'], $user);
  212. print '</td><td>'."\n";
  213. print '</td></tr>'."\n";
  214. // Customer Default Langauge
  215. if (getDolGlobalInt('MAIN_MULTILANGS')) {
  216. print '<tr><td>'.$langs->trans("DefaultLang");
  217. if (!empty($array_query['cust_language'])) {
  218. print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
  219. }
  220. print '</td><td>'."\n";
  221. print $formadvtargetemaling->multiselectselectLanguage('cust_language', $array_query['cust_language']);
  222. print '</td><td>'."\n";
  223. print '</td></tr>'."\n";
  224. }
  225. if (isModEnabled('categorie') && $user->rights->categorie->lire) {
  226. // Customer Categories
  227. print '<tr><td>'.$langs->trans("CustomersCategoryShort");
  228. if (!empty($array_query['cust_categ'])) {
  229. print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
  230. }
  231. print '</td><td>'."\n";
  232. $cate_arbo = $form->select_all_categories(Categorie::TYPE_CUSTOMER, null, 'parent', null, null, 1);
  233. print $form->multiselectarray('cust_categ', $cate_arbo, GETPOST('cust_categ', 'array'), null, null, null, null, "90%");
  234. print '</td><td>'."\n";
  235. print '</td></tr>'."\n";
  236. }
  237. // Standard Extrafield feature
  238. if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) {
  239. $socstatic = new Societe($db);
  240. $elementtype = $socstatic->table_element;
  241. // fetch optionals attributes and labels
  242. dol_include_once('/core/class/extrafields.class.php');
  243. $extrafields = new ExtraFields($db);
  244. $extrafields->fetch_name_optionals_label($elementtype);
  245. foreach ($extrafields->attributes[$elementtype]['label'] as $key => $val) {
  246. if ($key != 'ts_nameextra' && $key != 'ts_payeur') {
  247. print '<tr><td>'.$extrafields->attributes[$elementtype]['label'][$key];
  248. if (!empty($array_query['options_'.$key]) || (is_array($array_query['options_'.$key]) && count($array_query['options_'.$key]) > 0)) {
  249. print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
  250. }
  251. print '</td><td>';
  252. if (($extrafields->attributes[$elementtype]['type'][$key] == 'varchar') || ($extrafields->attributes[$elementtype]['type'][$key] == 'text')) {
  253. print '<input type="text" name="options_'.$key.'"/></td><td>'."\n";
  254. print $form->textwithpicto('', $langs->trans("AdvTgtSearchTextHelp"), 1, 'help');
  255. } elseif (($extrafields->attributes[$elementtype]['type'][$key] == 'int') || ($extrafields->attributes[$elementtype]['type'][$key] == 'double')) {
  256. print $langs->trans("AdvTgtMinVal").'<input type="text" name="options'.$key.'_min"/>';
  257. print $langs->trans("AdvTgtMaxVal").'<input type="text" name="options'.$key.'_max"/>';
  258. print '</td><td>'."\n";
  259. print $form->textwithpicto('', $langs->trans("AdvTgtSearchIntHelp"), 1, 'help');
  260. } elseif (($extrafields->attributes[$elementtype]['type'][$key] == 'date') || ($extrafields->attributes[$elementtype]['type'][$key] == 'datetime')) {
  261. print '<table class="nobordernopadding"><tr>';
  262. print '<td>'.$langs->trans("AdvTgtStartDt").'</td><td>';
  263. print $form->selectDate('', 'options_'.$key.'_st_dt');
  264. print '</td><td>'.$langs->trans("AdvTgtEndDt").'</td><td>';
  265. print $form->selectDate('', 'options_'.$key.'_end_dt');
  266. print '</td></tr></table>';
  267. print '</td><td>'."\n";
  268. print $form->textwithpicto('', $langs->trans("AdvTgtSearchDtHelp"), 1, 'help');
  269. } elseif (($extrafields->attributes[$elementtype]['type'][$key] == 'boolean')) {
  270. print $form->selectarray(
  271. 'options_'.$key,
  272. array(
  273. '' => '',
  274. '1' => $langs->trans('Yes'),
  275. '0' => $langs->trans('No')
  276. ),
  277. $array_query['options_'.$key]
  278. );
  279. print '</td><td>'."\n";
  280. } elseif (($extrafields->attributes[$elementtype]['type'][$key] == 'select')) {
  281. print $formadvtargetemaling->advMultiselectarray('options_'.$key, $extrafields->attributes[$key]['param']['options'], $array_query['options_'.$key]);
  282. print '</td><td>'."\n";
  283. } elseif (($extrafields->attributes[$elementtype]['type'][$key] == 'sellist')) {
  284. print $formadvtargetemaling->advMultiselectarraySelllist('options_'.$key, $extrafields->attributes[$key]['param']['options'], $array_query['options_'.$key]);
  285. print '</td><td>'."\n";
  286. } else {
  287. print '<table class="nobordernopadding"><tr>';
  288. print '<td></td><td>';
  289. if (is_array($array_query['options_'.$key])) {
  290. print $extrafields->showInputField($key, implode(',', $array_query['options_'.$key]));
  291. } else {
  292. print $extrafields->showInputField($key, $array_query['options_'.$key]);
  293. }
  294. print '</td></tr></table>';
  295. print '</td><td>'."\n";
  296. }
  297. print '</td></tr>'."\n";
  298. }
  299. }
  300. } else {
  301. $std_soc = new Societe($db);
  302. $action_search = 'query';
  303. // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
  304. include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php';
  305. $hookmanager = new HookManager($db);
  306. $hookmanager->initHooks(array('thirdpartycard'));
  307. $parameters = array();
  308. if (!empty($advTarget->id)) {
  309. $parameters = array('array_query' => $advTarget->filtervalue);
  310. }
  311. // Other attributes
  312. $reshook = $hookmanager->executeHooks('formObjectOptions', $parameters, $std_soc, $action_search);
  313. print $hookmanager->resPrint;
  314. }
  315. // State Contact
  316. print '<tr><td>'.$langs->trans('Status').' '.$langs->trans('Contact');
  317. if (!empty($array_query['contact_status'])) {
  318. print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
  319. }
  320. print '</td><td>';
  321. print $formadvtargetemaling->advMultiselectarray(
  322. 'contact_status',
  323. array(
  324. '0' => $langs->trans('ActivityCeased'),
  325. '1' => $langs->trans('InActivity')
  326. ),
  327. $array_query['contact_status']
  328. );
  329. print '</td><td>'."\n";
  330. print $form->textwithpicto('', $langs->trans("AdvTgtContactHelp"), 1, 'help');
  331. print '</td></tr>'."\n";
  332. // Civility
  333. print '<tr><td width="15%">'.$langs->trans("UserTitle");
  334. if (!empty($array_query['contact_civility'])) {
  335. print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
  336. }
  337. print '</td><td>';
  338. print $formadvtargetemaling->multiselectCivility('contact_civility', $array_query['contact_civility']);
  339. print '</td></tr>';
  340. // contact name
  341. print '<tr><td>'.$langs->trans('Contact').' '.$langs->trans('Lastname');
  342. if (!empty($array_query['contact_lastname'])) {
  343. print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
  344. }
  345. print '</td><td><input type="text" name="contact_lastname" value="'.$array_query['contact_lastname'].'"/></td><td>'."\n";
  346. print $form->textwithpicto('', $langs->trans("AdvTgtSearchTextHelp"), 1, 'help');
  347. print '</td></tr>'."\n";
  348. print '<tr><td>'.$langs->trans('Contact').' '.$langs->trans('Firstname');
  349. if (!empty($array_query['contact_firstname'])) {
  350. print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
  351. }
  352. print '</td><td><input type="text" name="contact_firstname" value="'.$array_query['contact_firstname'].'"/></td><td>'."\n";
  353. print $form->textwithpicto('', $langs->trans("AdvTgtSearchTextHelp"), 1, 'help');
  354. print '</td></tr>'."\n";
  355. // Contact Country
  356. print '<tr><td>'.$langs->trans('Contact').' '.$langs->trans("Country");
  357. if (!empty($array_query['contact_country'])) {
  358. print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
  359. }
  360. print '</td><td>'."\n";
  361. print $formadvtargetemaling->multiselectCountry('contact_country', $array_query['contact_country']);
  362. print '</td><td>'."\n";
  363. print '</td></tr>'."\n";
  364. // Never send mass mailing
  365. print '<tr><td>'.$langs->trans('Contact').' '.$langs->trans("No_Email");
  366. if (!empty($array_query['contact_no_email'])) {
  367. print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
  368. }
  369. print '</td><td>'."\n";
  370. print $form->selectarray(
  371. 'contact_no_email',
  372. array(
  373. '' => '',
  374. '1' => $langs->trans('Yes'),
  375. '0' => $langs->trans('No')
  376. ),
  377. $array_query['contact_no_email']
  378. );
  379. print '</td><td>'."\n";
  380. print '</td></tr>'."\n";
  381. // Contact Date Create
  382. print '<tr><td>'.$langs->trans('Contact').' '.$langs->trans("DateCreation");
  383. if (!empty($array_query['contact_create_st_dt'])) {
  384. print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
  385. }
  386. print '</td><td>'."\n";
  387. print '<table class="nobordernopadding"><tr>';
  388. print '<td>'.$langs->trans("AdvTgtStartDt").'</td><td>';
  389. print $form->selectDate($array_query['contact_create_st_dt'], 'contact_create_st_dt', 0, 0, 1, 'find_customer', 1, 1);
  390. print '</td><td>'.$langs->trans("AdvTgtEndDt").'</td><td>';
  391. print $form->selectDate($array_query['contact_create_end_dt'], 'contact_create_end_dt', 0, 0, 1, 'find_customer', 1, 1);
  392. print '</td></tr></table>';
  393. print '</td><td>'."\n";
  394. print '</td></tr>'."\n";
  395. // Contact update Create
  396. print '<tr><td>'.$langs->trans('Contact').' '.$langs->trans("DateLastModification");
  397. if (!empty($array_query['contact_update_st_dt'])) {
  398. print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
  399. }
  400. print '</td><td>'."\n";
  401. print '<table class="nobordernopadding"><tr>';
  402. print '<td>'.$langs->trans("AdvTgtStartDt").'</td><td>';
  403. print $form->selectDate($array_query['contact_update_st_dt'], 'contact_update_st_dt', 0, 0, 1, 'find_customer', 1, 1);
  404. print '</td><td>'.$langs->trans("AdvTgtEndDt").'</td><td>';
  405. print $form->selectDate($array_query['contact_update_end_dt'], 'contact_update_end_dt', 0, 0, 1, 'find_customer', 1, 1);
  406. print '</td></tr></table>';
  407. print '</td><td>'."\n";
  408. print '</td></tr>'."\n";
  409. if (isModEnabled('categorie') && $user->rights->categorie->lire) {
  410. // Customer Categories
  411. print '<tr><td>'.$langs->trans("ContactCategoriesShort");
  412. if (!empty($array_query['contact_categ'])) {
  413. print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
  414. }
  415. print '</td><td>'."\n";
  416. $cate_arbo = $form->select_all_categories(Categorie::TYPE_CONTACT, null, 'parent', null, null, 1);
  417. print $form->multiselectarray('contact_categ', $cate_arbo, GETPOST('contact_categ', 'array'), null, null, null, null, "90%");
  418. print '</td><td>'."\n";
  419. print '</td></tr>'."\n";
  420. }
  421. // Standard Extrafield feature
  422. if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) {
  423. $contactstatic = new Contact($db);
  424. $elementype = $contactstatic->table_element;
  425. // fetch optionals attributes and labels
  426. dol_include_once('/core/class/extrafields.class.php');
  427. $extrafields = new ExtraFields($db);
  428. $extrafields->fetch_name_optionals_label($elementype);
  429. if (!empty($extrafields->attributes[$elementtype]['type'])) {
  430. foreach ($extrafields->attributes[$elementtype]['type'] as $key => &$value) {
  431. if ($value == 'radio') {
  432. $value = 'select';
  433. }
  434. }
  435. }
  436. if (!empty($extrafields->attributes[$elementtype]['label'])) {
  437. foreach ($extrafields->attributes[$elementtype]['label'] as $key => $val) {
  438. print '<tr><td>'.$extrafields->attributes[$elementtype]['label'][$key];
  439. if ($array_query['options_'.$key.'_cnct'] != '' || (is_array($array_query['options_'.$key.'_cnct']) && count($array_query['options_'.$key.'_cnct']) > 0)) {
  440. print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
  441. }
  442. print '</td><td>';
  443. if (($extrafields->attributes[$elementtype]['type'][$key] == 'varchar') || ($extrafields->attributes[$elementtype]['type'][$key] == 'text')) {
  444. print '<input type="text" name="options_'.$key.'_cnct"/></td><td>'."\n";
  445. print $form->textwithpicto('', $langs->trans("AdvTgtSearchTextHelp"), 1, 'help');
  446. } elseif (($extrafields->attributes[$elementtype]['type'][$key] == 'int') || ($extrafields->attributes[$elementtype]['type'][$key] == 'double')) {
  447. print $langs->trans("AdvTgtMinVal").'<input type="text" name="options_'.$key.'_min_cnct"/>';
  448. print $langs->trans("AdvTgtMaxVal").'<input type="text" name="options_'.$key.'_max_cnct"/>';
  449. print '</td><td>'."\n";
  450. print $form->textwithpicto('', $langs->trans("AdvTgtSearchIntHelp"), 1, 'help');
  451. } elseif (($extrafields->attributes[$elementtype]['type'][$key] == 'date') || ($extrafields->attributes[$elementtype]['type'][$key] == 'datetime')) {
  452. print '<table class="nobordernopadding"><tr>';
  453. print '<td>'.$langs->trans("AdvTgtStartDt").'</td><td>';
  454. print $form->selectDate('', 'options_'.$key.'_st_dt_cnct');
  455. print '</td><td>'.$langs->trans("AdvTgtEndDt").'</td><td>';
  456. print $form->selectDate('', 'options_'.$key.'_end_dt_cnct');
  457. print '</td></tr></table>';
  458. print '</td><td>'."\n";
  459. print $form->textwithpicto('', $langs->trans("AdvTgtSearchDtHelp"), 1, 'help');
  460. } elseif (($extrafields->attributes[$elementtype]['type'][$key] == 'boolean')) {
  461. print $form->selectarray(
  462. 'options_'.$key.'_cnct',
  463. array(
  464. '' => '',
  465. '1' => $langs->trans('Yes'),
  466. '0' => $langs->trans('No')
  467. ),
  468. $array_query['options_'.$key.'_cnct']
  469. );
  470. print '</td><td>'."\n";
  471. } elseif (($extrafields->attributes[$elementtype]['type'][$key] == 'select')) {
  472. print $formadvtargetemaling->advMultiselectarray('options_'.$key.'_cnct', $extrafields->attributes[$key]['param']['options'], $array_query['options_'.$key.'_cnct']);
  473. print '</td><td>'."\n";
  474. } elseif (($extrafields->attributes[$elementtype]['type'][$key] == 'sellist')) {
  475. print $formadvtargetemaling->advMultiselectarraySelllist('options_'.$key.'_cnct', $extrafields->attributes[$key]['param']['options'], $array_query['options_'.$key.'_cnct']);
  476. print '</td><td>'."\n";
  477. } else {
  478. if (is_array($array_query['options_'.$key.'_cnct'])) {
  479. print $extrafields->showInputField($key, implode(',', $array_query['options_'.$key.'_cnct']), '', '_cnct');
  480. } else {
  481. print $extrafields->showInputField($key, $array_query['options_'.$key.'_cnct'], '', '_cnct');
  482. }
  483. print '</td><td>'."\n";
  484. }
  485. print '</td></tr>'."\n";
  486. }
  487. }
  488. }
  489. print '<tr>'."\n";
  490. print '<td colspan="3" class="right">'."\n";
  491. print '<input type="button" name="addcontact" id="addcontact" value="'.$langs->trans('AdvTgtAddContact').'" class="butAction"/>'."\n";
  492. print '</td>'."\n";
  493. print '</tr>'."\n";
  494. print '</table>'."\n";
  495. print '</form>'."\n";
  496. print '</div>'."\n";
  497. print '<form action="'.$_SERVER['PHP_SELF'].'?action=clear&id='.$object->id.'" method="POST">';
  498. print '<input type="hidden" name="token" value="'.newToken().'">';
  499. print load_fiche_titre($langs->trans("ToClearAllRecipientsClickHere"));
  500. print '<table class="noborder centpercent">';
  501. print '<tr class="liste_titre">';
  502. print '<td class="liste_titre right"><input type="submit" class="button" value="'.$langs->trans("TargetsReset").'"></td>';
  503. print '</tr>';
  504. print '</table>';
  505. print '</form>';
  506. print '<br>';