瀏覽代碼

MMIDocuments PDF filename

Mathieu Moulin 1 年之前
父節點
當前提交
27ae63b8a2

+ 29 - 0
htdocs/core/class/commonobject.class.php

@@ -10110,6 +10110,35 @@ abstract class CommonObject
 		return $mt;
 	}
 
+	/**
+	 * Get filename for PDF
+	 * @author MMI Mathieu Moulin iProspective
+	 *
+	 * @return string
+	 */
+	public function pdf_filename()
+	{
+		global $conf;
+		
+		if (empty($conf->global->MMIDOCUMENT_PDF_RENAME))
+			return;
+		
+		$thirdparty = $this->thirdparty;
+		$file_e = [];
+		$file_e[] = dol_sanitizeFileName($this->ref);
+		if (!empty($conf->global->MMIDOCUMENT_PDF_RENAME_MYSOC)) {
+			global $mysoc;
+			$file_e[] = $mysoc->name;
+		}
+		if (!empty($conf->global->MMIDOCUMENT_PDF_RENAME_THIRDPARTY)) {
+			$file_e[] = $thirdparty->name;
+		}
+		if (!empty($conf->global->MMIDOCUMENT_PDF_RENAME_REF_CUSTOMER) && !empty($this->ref_customer)) {
+			$file_e[] = $this->ref_customer;
+		}
+		return preg_replace('/[^A-Za-z0-9\-]/', '', str_replace(' ', '-', iconv('UTF-8','ASCII//TRANSLIT', implode('-', $file_e))));
+	}
+
 	/**
 	 * Get total amount already paid
 	 * @author MMI Mathieu Moulin iProspective

+ 7 - 1
htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php

@@ -308,7 +308,13 @@ class pdf_eratosthene extends ModelePDFCommandes
 			} else {
 				$objectref = dol_sanitizeFileName($object->ref);
 				$dir = $conf->commande->multidir_output[$object->entity]."/".$objectref;
-				$file = $dir."/".$objectref.".pdf";
+				// MMIDocument PDF rename
+				if (!empty($conf->global->MMIDOCUMENT_PDF_RENAME)) {
+					$filename = $object->pdf_filename();
+					$file = $dir."/".$filename.".pdf";
+				}
+				else
+					$file = $dir."/".$objectref.".pdf";
 			}
 
 			if (!file_exists($dir)) {

+ 7 - 1
htdocs/core/modules/facture/doc/pdf_sponge.modules.php

@@ -316,7 +316,13 @@ class pdf_sponge extends ModelePDFFactures
 			} else {
 				$objectref = dol_sanitizeFileName($object->ref);
 				$dir = $conf->facture->multidir_output[$object->entity]."/".$objectref;
-				$file = $dir."/".$objectref.".pdf";
+				// MMIDocument PDF rename
+				if (!empty($conf->global->MMIDOCUMENT_PDF_RENAME)) {
+					$filename = $object->pdf_filename();
+					$file = $dir."/".$filename.".pdf";
+				}
+				else
+					$file = $dir."/".$objectref.".pdf";
 			}
 			if (!file_exists($dir)) {
 				if (dol_mkdir($dir) < 0) {

+ 7 - 1
htdocs/core/modules/propale/doc/pdf_cyan.modules.php

@@ -306,7 +306,13 @@ class pdf_cyan extends ModelePDFPropales
 			} else {
 				$objectref = dol_sanitizeFileName($object->ref);
 				$dir = $conf->propal->multidir_output[$object->entity]."/".$objectref;
-				$file = $dir."/".$objectref.".pdf";
+				// MMIDocument PDF rename
+				if (!empty($conf->global->MMIDOCUMENT_PDF_RENAME)) {
+					$filename = $object->pdf_filename();
+					$file = $dir."/".$filename.".pdf";
+				}
+				else
+					$file = $dir."/".$objectref.".pdf";
 			}
 
 			if (!file_exists($dir)) {

+ 4 - 2
htdocs/core/tpl/card_presend.tpl.php

@@ -50,7 +50,8 @@ if ($action == 'presend') {
 		if ($object->element == 'invoice_supplier') {
 			$fileparams = dol_most_recent_file($diroutput.'/'.get_exdir($object->id, 2, 0, 0, $object, $object->element).$ref, preg_quote($ref, '/').'([^\-])+');
 		} else {
-			$fileparams = dol_most_recent_file($diroutput.'/'.$ref, preg_quote($ref, '/').'[^\-]+');
+			$filename = (!empty($conf->global->MMIDOCUMENT_PDF_RENAME)) ?$object->pdf_filename() :$ref;
+			$fileparams = dol_most_recent_file($diroutput.'/'.$ref, preg_quote($filename, '/').'[^\-]+');
 		}
 
 		$file = $fileparams['fullname'];
@@ -98,7 +99,8 @@ if ($action == 'presend') {
 			if ($object->element == 'invoice_supplier') {
 				$fileparams = dol_most_recent_file($diroutput.'/'.get_exdir($object->id, 2, 0, 0, $object, $object->element).$ref, preg_quote($ref, '/').'([^\-])+');
 			} else {
-				$fileparams = dol_most_recent_file($diroutput.'/'.$ref, preg_quote($ref, '/').'[^\-]+');
+				$filename = (!empty($conf->global->MMIDOCUMENT_PDF_RENAME)) ?$object->pdf_filename() :$ref;
+				$fileparams = dol_most_recent_file($diroutput.'/'.$ref, preg_quote($filename, '/').'[^\-]+');
 			}
 
 			$file = $fileparams['fullname'];

+ 1 - 1
htdocs/custom/mmidocuments

@@ -1 +1 @@
-Subproject commit 24927c794ee9c3bd590cd8858a41414bd1e1238d
+Subproject commit 2fc3082ed402823bf1d49ebbd750c3b0f5337722