Skip to content
Snippets Groups Projects
Commit 3a5d8fab authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Ajout de copie

parent 8b5ac852
No related branches found
No related tags found
No related merge requests found
Pipeline #26716 passed
......@@ -5,6 +5,7 @@ date_envoi timestamp not null,
status_envoi varchar(256) not null,
destinataires text not null,
destinataires_initials text,
copies text,
sujet text,
corps text,
mots_clefs text,
......
......@@ -110,12 +110,13 @@ Tables pour les données du modules
**unicaen_mail_mail** : table stockant les mails
| Column | Type | Obligatoire | Unique | Description |
|---|---|---|---|---|
|------------------------|---|---|---|-----------------------------------------------------------------------------------------------------------------------------|
| id | int | true | true | identifiant numerique du mail |
| date_envoi | timestamp| true | false | date de l'envoi du mail |
| status_envoi | varchar(256) | true | false | statut "indicatif" de l'envoi : FAILED, SUCCESS, PENDING |
| destinataires | text | true | false | chaîne de caractères concaténant les adresses des destinataires |
| destinataires_initials | text | false | false | Null si le mail n'as pas été redirigé. Sinon chaînes de caractères concaténant les adresse des destinataires initiaux du mail|
| destinataires_initials | text | false | false | Null si le mail n'a pas été redirigé. Sinon chaînes de caractères concaténant les adresse des destinataires initiaux du mail |
| copies | text | false | false | Null si le mail n'a pas de destinataire en copie |
| sujet | text | false | false | sujet du mail |
| corps | text | false | false | corps du mail |
| mots_clefs | text | false | false | champ libre permettant d'associer des mots clefs aux mails (ie. id d'une entité, mots clés de recherche ...) |
......
......@@ -14,6 +14,7 @@ class Mail {
private ?int $id = null;
private ?string $destinataires = null;
private ?string $destinatairesInitials = null;
private ?string $copies = null;
/** Contenu *******************************************************************************************************/
......@@ -72,6 +73,16 @@ class Mail {
$this->destinatairesInitials = $destinatairesInitials;
}
public function getCopies(): ?string
{
return $this->copies;
}
public function setCopies(?string $copies): void
{
$this->copies = $copies;
}
public function isRedirection() : bool
{
return $this->destinatairesInitials !== null;
......
......@@ -10,6 +10,7 @@
<field name="statusEnvoi" type="string" length="256" column="status_envoi" nullable="false" />
<field name="destinataires" type="string" length="256" column="destinataires" nullable="false" />
<field name="destinatairesInitials" type="string" length="256" column="destinataires_initials" nullable="true" />
<field name="copies" type="text" column="copies" nullable="true" />
<field name="sujet" type="string" length="9999" column="sujet" nullable="true" />
<field name="corps" type="string" length="9999" column="corps" nullable="true" />
<field name="motsClefs" type="string" length="9999" column="mots_clefs" nullable="true" />
......
......@@ -161,7 +161,7 @@ class MailService {
return $value;
}
public function sendMail($to, $subject, $texte, ?string $module = null, $attachement_path = null) : ?Mail
public function sendMail($to, $subject, $texte, ?string $module = null, $attachement_path = null, $copie = null) : ?Mail
{
try {
$fromEmail = $this->fetchValueFromConfig('from_email', $module);
......@@ -182,6 +182,9 @@ class MailService {
if (is_string($to)) $to=explode(',', $to);
if (!is_array($to)) $to = [$to];
if (is_string($copie)) $copie=explode(',', $copie);
if (!is_array($copie)) $copie = [$copie];
/** @var Mail $mail */
$mail = $this->createMailEntity();
$mail->setDateEnvoi(new DateTime());
......@@ -193,6 +196,7 @@ class MailService {
} else {
$mail->setDestinataires(implode(",",$to));
}
$mail->setCopies(implode(",", $copie));
$mail->setSujet($subject);
......@@ -208,6 +212,7 @@ class MailService {
foreach ($redirectTo as $e) $message->addTo($e);
} else {
foreach ($to as $e) $message->addTo($e);
foreach ($copie as $e) $message->addCc($e);
}
$message->setSubject($sujet);
$texte = "<p><i>Ce courrier électronique vous a été adressé <strong>automatiquement</strong> par l'application ".$subjectPrefix.". </i></p>" . $texte;
......@@ -220,6 +225,12 @@ class MailService {
$texte .= "<ul>";
foreach (explode(",",$mail->getDestinatairesInitials()) as $t) $texte .= "<li>" . $t . "</li>";
$texte .= "</ul>";
if ($copie !== null && !empty($copie)) {
$texte .= "Copie à :";
$texte .= "<ul>";
foreach ($copie as $e) $texte .= "<li>".$e."</li>";
$texte .= "</ul>";
}
}
$parts = [];
......
......@@ -43,6 +43,17 @@ use UnicaenMail\Entity\Db\Mail;
<br/><span class="badge redir">Intialement : <?php echo $mail->getDestinatairesInitials(); ?></span>
<?php endif; ?>
</dd>
<dt> Copies </dt>
<dd>
<?php if ($mail->getCopies()) : ?>
<?php foreach (explode(',', $mail->getCopies()) as $m) : ?>
<?php if ($mail->isRedirection()) : ?>
<span class="badge redir">Intialement :
<?php endif; ?>
<?php echo $m; ?><br/>
<?php endforeach; ?>
<?php endif; ?>
</dd>
<dt> Mots clefs </dt>
<dd>
<?php if ($mail->getMotsClefs() !== null) : ?>
......
......@@ -60,6 +60,21 @@ if (!isset($options['droits']) OR !isset($options['droits']['supprimer'])) {
<?php endforeach; ?>
</ul>
<?php endif; ?>
<?php if ($mail->getCopies() !== null and !empty($mail->getCopies())) : ?>
<ul>
<?php foreach (explode(',', $mail->getCopies()) as $c) : ?>
<li>
<span class="badge copie">copie </span>
<?php if ($mail->isRedirection()) : ?>
<span class="badge redir">Initialement : <?php echo $c; ?></span>
<?php else : ?>
<?php echo $c; ?>
<?php endif; ?>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</td>
<td data-order="<?php echo $mail->getDateEnvoi()->getTimestamp(); ?>"> <?php echo $mail->getDateEnvoi()->format('d/m/Y <br/> H:i'); ?> </td>
<td>
......@@ -109,3 +124,8 @@ if (!isset($options['droits']) OR !isset($options['droits']['supprimer'])) {
</tbody>
</table>
<style>
span.copie {
background: #1b6d85;
}
</style>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment