From d7abad4566ee63b1879fdad75664320e0160ef8e Mon Sep 17 00:00:00 2001 From: florian HENRY Date: Mon, 29 Apr 2019 17:40:59 +0200 Subject: [PATCH 1/3] NEW : mass email action on invoice list use billing contact if exists --- htdocs/core/actions_massactions.inc.php | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/htdocs/core/actions_massactions.inc.php b/htdocs/core/actions_massactions.inc.php index 55dda5a5934..819683af55e 100644 --- a/htdocs/core/actions_massactions.inc.php +++ b/htdocs/core/actions_massactions.inc.php @@ -70,6 +70,7 @@ if (! $error && $massaction == 'confirm_presend') $listofobjectid=array(); $listofobjectthirdparties=array(); + $listofobjectcontacts = array(); $listofobjectref=array(); if (! $error) @@ -94,6 +95,16 @@ if (! $error && $massaction == 'confirm_presend') if ($objecttmp->element == 'holiday') $thirdpartyid=$objecttmp->fk_user; if (empty($thirdpartyid)) $thirdpartyid=0; + if ($objectclass == 'Facture') { + $tmparraycontact = array(); + $tmparraycontact = $objecttmp->liste_contact(-1, 'external', 0, 'BILLING'); + if (is_array($tmparraycontact) && count($tmparraycontact) > 0) { + foreach ($tmparraycontact as $data_email) { + $listofobjectcontacts[$toselectid][$data_email['id']] = $data_email['email']; + } + } + } + $listofobjectthirdparties[$thirdpartyid]=$thirdpartyid; $listofobjectref[$thirdpartyid][$toselectid]=$objecttmp; } @@ -216,7 +227,7 @@ if (! $error && $massaction == 'confirm_presend') $resaction.='
'.$langs->trans('ErrorOnlyProposalNotDraftCanBeSentInMassAction', $objectobj->ref).'

'; continue; // Payment done or started or canceled } - if ($objectclass == 'Commande' && $objectoj->statut == Commande::STATUS_DRAFT) + if ($objectclass == 'Commande' && $objectobj->statut == Commande::STATUS_DRAFT) { $langs->load("errors"); $nbignored++; @@ -245,6 +256,16 @@ if (! $error && $massaction == 'confirm_presend') $fuser = new User($db); $fuser->fetch($objectobj->fk_user); $sendto = $fuser->email; + } elseif ($objectobj->element == 'facture' && !empty($listofobjectcontacts[$objectid])) { + $emails_to_sends = array(); + $objectobj->fetch_thirdparty(); + foreach ($listofobjectcontacts[$objectid] as $contactemailid => $contactemailemail) { + + $emails_to_sends[] = $objectobj->thirdparty->contact_get_property((int)$contactemailid, 'email'); + } + if (count($emails_to_sends) > 0) { + $sendto = implode(',', $emails_to_sends); + } } else { From 8dc494890a8514ba5f988cf62bc9434ed07dcbbe Mon Sep 17 00:00:00 2001 From: florian HENRY Date: Fri, 3 May 2019 16:24:25 +0200 Subject: [PATCH 2/3] =?UTF-8?q?=09modifi=C3=A9=C2=A0:=20=20=20=20=20=20=20?= =?UTF-8?q?=20=20../core/actions=5Fmassactions.inc.php?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- htdocs/core/actions_massactions.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/actions_massactions.inc.php b/htdocs/core/actions_massactions.inc.php index ef76611359a..2a0795a60ed 100644 --- a/htdocs/core/actions_massactions.inc.php +++ b/htdocs/core/actions_massactions.inc.php @@ -261,7 +261,7 @@ if (! $error && $massaction == 'confirm_presend') $objectobj->fetch_thirdparty(); foreach ($listofobjectcontacts[$objectid] as $contactemailid => $contactemailemail) { - $emails_to_sends[] = $objectobj->thirdparty->contact_get_property((int)$contactemailid, 'email'); + $emails_to_sends[] = $objectobj->thirdparty->contact_get_property((int) $contactemailid, 'email'); } if (count($emails_to_sends) > 0) { $sendto = implode(',', $emails_to_sends); From 7af203e519b0fe7cd4b5963dcf914cd303326b8d Mon Sep 17 00:00:00 2001 From: florian HENRY Date: Fri, 3 May 2019 16:28:44 +0200 Subject: [PATCH 3/3] =?UTF-8?q?=09modifi=C3=A9=C2=A0:=20=20=20=20=20=20=20?= =?UTF-8?q?=20=20../core/actions=5Fmassactions.inc.php?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- htdocs/core/actions_massactions.inc.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/htdocs/core/actions_massactions.inc.php b/htdocs/core/actions_massactions.inc.php index 2a0795a60ed..26e168c3dc6 100644 --- a/htdocs/core/actions_massactions.inc.php +++ b/htdocs/core/actions_massactions.inc.php @@ -72,6 +72,7 @@ if (! $error && $massaction == 'confirm_presend') $listofobjectthirdparties=array(); $listofobjectcontacts = array(); $listofobjectref=array(); + $contactidtosend=array(); if (! $error) { @@ -259,9 +260,13 @@ if (! $error && $massaction == 'confirm_presend') } elseif ($objectobj->element == 'facture' && !empty($listofobjectcontacts[$objectid])) { $emails_to_sends = array(); $objectobj->fetch_thirdparty(); + $contactidtosend=array(); foreach ($listofobjectcontacts[$objectid] as $contactemailid => $contactemailemail) { - $emails_to_sends[] = $objectobj->thirdparty->contact_get_property((int) $contactemailid, 'email'); + $emails_to_sends[] = $objectobj->thirdparty->contact_get_property($contactemailid, 'email'); + if (!in_array($contactemailid, $contactidtosend)) { + $contactidtosend[] = $contactemailid; + } } if (count($emails_to_sends) > 0) { $sendto = implode(',', $emails_to_sends); @@ -480,7 +485,7 @@ if (! $error && $massaction == 'confirm_presend') $actionmsg2=''; // Initialisation donnees - $objectobj2->sendtoid = 0; + $objectobj2->sendtoid = (empty($contactidtosend)?0:$contactidtosend); $objectobj2->actionmsg = $actionmsg; // Long text $objectobj2->actionmsg2 = $actionmsg2; // Short text $objectobj2->fk_element = $objid2;