[Résolu]Mail expédition toutes les pièces jointes dans email

Bonjour à tous,

Merci encore pour le maintient et les maj réalisées par l’équipe de Dolibarr.

Existe t il un moyen de mettre en pièce jointes tous les documents du dossier où se trouve le pdf?

Je m’explique.

Lors de l’envoi d’une commande, j’ajoute automatiquement les pdf de certificat de conformité dans le répertoire de l’expédition.

J’avais fait une modification sur le fichier /exepedition/card.php pour attacher tous les documents dans le dossier. ( version 16.x)

/htdocs/expedition/card.php
	
		

	// Init list of files
		if (GETPOST("mode")=='init')
		{
			$formmail->clear_attached_files();
			$dossier=substr($file,0,-14);
			$liste=array();
			if ($handle = opendir($dossier))
			{
				$i=0;
				while (false !== ($entry = readdir($handle))) 
				{
					if(substr($entry,-4) == '.pdf'){
					$liste[$i]=$entry;
					$i++;}
				}
			}
			foreach($liste as $item){
				$formmail->add_attached_files($dossier.$item,basename($item),dol_mimetype($item));
				
			}	
			
		}

Ce n’était pas très propre mais cela fonctionnait très bien.

Je vois que sur la version 19, cela a changé.

Il y a t’il une manière de faire cela proprement ?

Bonjour
Voir modules sur le Dolistore

Cordialement
Eric

Bonjour,

Merci pour cette réponse rapide.

Pour le premier lien, sur la demo du logiciel, j’obtiens une erreur système.

Sur celui d’ATM, le module est sympa mais il oblige à aller chercher un par un les documents que l’on veut.
J’aimerais que tous les documents dans le répertoire soient mis d’office sur la pj.
Par exemple tout les documents dans /documents/expedition/sending/EA2403-105 pour l’expédition de référence EA2403-105.

Pour le dernier module, celui ci propose d’ajouter le même document (par exemple CGV) or pour ma part, chaque document est différent.
Sur certaine de mes expéditions, j’ai plus de 20 lots différents et donc 20 certificats d’analyses différents.
J’ai créer mon module personnalisé pour générer automatiquement et enregistrer dans le répertoire de l’expédition les différents certificats de conformité des lots envoyés.
Il faudrait « juste » que la pièce jointe dans les mails prennent tous les documents du répertoire et pas seulement le bon de livraison.

Merci en tout cas de cette première réponse.
Je continu mes recherches

Bonjour,
ton module met seulement les fichiers dans le dossier de l’expédition ou il les lie au document ?
si les fichiers son liés, le module de ATM fonctionne bien.

Merci pour ce retour.

Utilisez vous ce module ? Si oui, est il possible d’ajouter automatiquement les fichiers d’un dossier, ou faut il les ajouter un à un ?
Merci

il faut cocher les fichiers dans le liste des documents à joindre

Merci pour cette réponse.

Ce module n’est donc pas optimal pour moi car vraiment chronophage vue le nombre d’expédition et de CoA à ajouter à chaque expédition.

Voici ce que j’ai trouvé :

Modification de
/htdocs/core/class/html.formmail.class.php
à la ligne 444 environ
J’ai remplacer le

$this->add_attached_files(...)

par :

// DEBUT  ajout code pour envoi de tous les documents dans le dossier ////////////////////////////////////////////////////////////////////////
						$repertoire = '';
						$rep = explode('/',$path);
						for( $x=0 ; $x < count($rep)-1; $x++){
							$repertoire .= $rep[$x].'/';
						}
						if ($handle = opendir($repertoire))
						{
							while (false !== ($fichier = readdir($handle))) 
							{
								if($fichier != '.' && $fichier != '..'){
									$this->add_attached_files($repertoire.$fichier,basename($fichier),dol_mimetype($fichier));
								}
								
							}
						}
/// FIN ajout code pour envoi de tous les documents dans le dossier ////////////////////////////////////////////////////////////////////////////

Encore une fois ce n’est pas optimal de modifier en direct les fichiers core de dolibarr mais cela me permet de gagner un temps fou.

Peut etre est il possible d’inclure cette option dans les prochaines maj de dolibarr. Avec peut etre un paramètre à inscrire dans configuration/divers ?

Je laisse le soin à l’équipe de Dolibarr de voir si cela peut être intéressant pour Dolibarr.

Merci à tout ceux qui ont aider.
Encore merci à l’équipe Dolibarr pour leur superbe travail.
Et bonne journée