20,6 → 20,8 |
private $recapitulatifAdmin = []; |
private $messageRecapitulatif = null; |
|
private $dateRenvoi = null; |
|
private $observations_concernees = array(); |
private $messageHtml = null; |
private $messageTxt = null; |
32,6 → 34,7 |
public function executer() { |
try { |
$this->verifierModeUtilisation(); |
$this->verifierDateRenvoi(); |
$observations = $this->chargerObsADeterminer(); |
if (!empty($observations)) { |
$this->formaterObservations($observations); |
55,8 → 58,21 |
} |
} |
|
private function verifierDateRenvoi() { |
$dateRenvoi = $this->conteneur->getParametre('d'); |
if ($dateRenvoi) { |
if (preg_match('/^[0-9]{4}-[0-1][0-9]-[0-3][0-9]$/', $dateRenvoi)) { |
$this->dateRenvoi = $dateRenvoi; |
} else { |
$msg = "Veuillez indiquer une date au format yyyy-mm-dd valide à la suite du paramètre «-d»."; |
new Exception($msg); |
} |
} |
} |
|
protected function chargerObsADeterminer() { |
//TODO: optimiser la requête si beaucoup de mails sont envoyés |
$date = ($this->dateRenvoi == null) ? 'CURDATE()' : "'$this->dateRenvoi'"; |
$requete = "SELECT * ". |
"FROM del_obs_image AS doi ". |
" INNER JOIN del_observation AS do ON doi.id_observation = do.id_observation ". |
65,9 → 81,9 |
' OR nom_sel IS NULL OR nom_sel = "" '. |
' OR nom_ret IS NULL OR nom_ret = "") '. |
' AND ('. |
' do.date_transmission > DATE_SUB(CURDATE(), INTERVAL 1 DAY) '. |
' OR do.date_creation > DATE_SUB(CURDATE(), INTERVAL 1 DAY) '. |
' OR do.date_modification > DATE_SUB(CURDATE(), INTERVAL 1 DAY) '. |
" TO_DAYS($date) - TO_DAYS(do.date_transmission) IN (0, 1) ". |
" OR TO_DAYS($date) - TO_DAYS(do.date_creation) IN (0, 1) ". |
" OR TO_DAYS($date) - TO_DAYS(do.date_modification) IN (0, 1) ". |
' ) '. |
"ORDER BY do.id_observation "; |
$obs = $this->conteneur->getBdd()->recupererTous($requete); |
162,8 → 178,8 |
|
private function envoyerMessageAuxUtilisateurs() { |
$utilisateurs = $this->obtenirDestinatairesMailsRecapitulatif(); |
foreach ($utilisateurs as $utilisateur) { |
$this->envoyerMessage($utilisateur['id_utilisateur']); |
foreach ($utilisateurs as $idUtilisateur) { |
$this->envoyerMessage($idUtilisateur); |
} |
} |
|
191,10 → 207,13 |
*/ |
private function envoyerMessage($id_destinataire) { |
$url = sprintf($this->conteneur->getParametre('url_service_messagerie'), $id_destinataire); |
$dateFmt = $this->formaterDateCourante(); |
$sujet = sprintf($this->conteneur->getParametre('titre_message_recapitulatif_obs'), $dateFmt); |
|
$donnees = array( |
'utilisateur_courriel' => $this->conteneur->getParametre('adresse_expediteur_recapitulatif'), |
'format' => 'html', |
'sujet' => $this->conteneur->getParametre('titre_message_recapitulatif_obs'), |
'sujet' => $sujet, |
'message' => $this->messageHtml, |
'message_txt' => $this->messageTxt |
); |
203,6 → 222,12 |
$clientRest->modifier($url, $donnees); |
} |
|
private function formaterDateCourante() { |
$date = ($this->dateRenvoi == null) ? time() : strtotime($this->dateRenvoi); |
$dateFmt = date('d-m-Y', $date); |
return $dateFmt; |
} |
|
/** La liste détermination n'étant pas un membre de tela botanica, |
* on lui envoie un message directement |
* @return boolean true ou false suivant le succès ou non de l'envoi |
209,7 → 234,8 |
*/ |
private function envoyerMessageListeDetermination() { |
$destinataires = $this->conteneur->getParametre('adresse_destinataire_recapitulatif_determination'); |
$sujet = $this->conteneur->getParametre('titre_message_recapitulatif_obs'); |
$dateFmt = $this->formaterDateCourante(); |
$sujet = sprintf($this->conteneur->getParametre('titre_message_recapitulatif_obs'), $dateFmt); |
|
$messagerie = $this->conteneur->getMessagerie(); |
$envoieStatut = $messagerie->envoyerHtml($destinataires, $sujet, $this->messageHtml, $this->messageTxt); |
218,7 → 244,8 |
|
private function envoyerMessageRecap() { |
$msgRecap = $this->obtenirMessageRecap(); |
$sujet = "IdentiPlante : récapitulatif envoies alertes à déterminer"; |
$dateFmt = $this->formaterDateCourante(); |
$sujet = "IdentiPlante : récapitulatif envoies alertes à déterminer du $dateFmt"; |
$messagerie = $this->conteneur->getMessagerie(); |
$destinataire = $this->conteneur->getParametre('email_recap'); |
$messagerie->envoyerTxt($destinataire, $sujet, $msgRecap); |
275,15 → 302,16 |
private function envoyerMessageTesteur() { |
if ($this->testeurCourriel != null) { |
$messagerie = $this->conteneur->getMessagerie(); |
$dateFmt = $this->formaterDateCourante(); |
|
$sujet = "TESTEUR : récapitulatif envoies alertes à déterminer"; |
$sujet = "TESTEUR : récapitulatif envoies alertes à déterminer - $dateFmt"; |
$msgRecap = $this->obtenirMessageRecap(); |
$messagerie->envoyerTxt($this->testeurCourriel, $sujet, $msgRecap); |
|
$sujet = "TESTEUR : exemple message HTML - alerte à déterminer"; |
$sujet = "TESTEUR : exemple message HTML - alerte à déterminer - $dateFmt"; |
$messagerie->envoyerHtml($this->testeurCourriel, $sujet, $this->messageHtml, $this->messageTxt); |
|
$sujet = "TESTEUR : exemple message TXT - alerte à déterminer"; |
$sujet = "TESTEUR : exemple message TXT - alerte à déterminer - $dateFmt"; |
$messagerie->envoyerTxt($this->testeurCourriel, $sujet, $this->messageTxt); |
} |
} |