Fix: Bad status of emailing when sent by web

This commit is contained in:
Laurent Destailleur 2008-08-03 23:45:53 +00:00
parent 062c4c55dd
commit cc6852058e

View File

@ -102,6 +102,9 @@ if ($_POST["action"] == 'sendallconfirmed')
} }
} }
// Warning, we must not use begin-commit transaction here
// because we want to save update for each mail sent.
$nbok=0; $nbko=0; $nbok=0; $nbko=0;
// On choisit les mails non déjà envoyés pour ce mailing (statut=0) // On choisit les mails non déjà envoyés pour ce mailing (statut=0)
@ -113,11 +116,12 @@ if ($_POST["action"] == 'sendallconfirmed')
$resql=$db->query($sql); $resql=$db->query($sql);
if ($resql) if ($resql)
{ {
$num = $db->num_rows($resql); $num = $db->num_rows($resql); // nb of possible recipients
if ($num) if ($num)
{ {
dolibarr_syslog("mailing-send: nb of targets = ".$num, LOG_DEBUG); dolibarr_syslog("mailing-send: nb of targets = ".$num, LOG_DEBUG);
// Positionne date debut envoi // Positionne date debut envoi
$sql="UPDATE ".MAIN_DB_PREFIX."mailing SET date_envoi=SYSDATE() WHERE rowid=".$id; $sql="UPDATE ".MAIN_DB_PREFIX."mailing SET date_envoi=SYSDATE() WHERE rowid=".$id;
$resql2=$db->query($sql); $resql2=$db->query($sql);
@ -210,8 +214,15 @@ if ($_POST["action"] == 'sendallconfirmed')
} }
// Loop finished, set global statut of mail // Loop finished, set global statut of mail
$statut=2; // By default status with error if ($nbko > 0)
if (! $nbko) $statut=3; {
$statut=2; // Status 'sent partially' (because at least one error)
}
else
{
if ($nbok >= $num) $statut=3; // Send to everybody
else $statut=2; // Status 'sent partially' (because not send to everybody)
}
$sql="UPDATE ".MAIN_DB_PREFIX."mailing SET statut=".$statut." WHERE rowid=".$id; $sql="UPDATE ".MAIN_DB_PREFIX."mailing SET statut=".$statut." WHERE rowid=".$id;
dolibarr_syslog("mailing-send: update global status sql=".$sql, LOG_DEBUG); dolibarr_syslog("mailing-send: update global status sql=".$sql, LOG_DEBUG);