From 1b140670104bdfa344c1db728f8b85241c74fea8 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@users.sourceforge.net>
Date: Thu, 23 Dec 2004 18:28:58 +0000
Subject: [PATCH] =?UTF-8?q?Fix:=20Uniformisation=20du=20r=E9pertoire=20de?=
 =?UTF-8?q?=20g=E9n=E9ration=20des=20factures.=20De=20plus=20la=20cr=E9ati?=
 =?UTF-8?q?on=20du=20fichier=20meta=20est=20inclus=20dans=20la=20cr=E9atio?=
 =?UTF-8?q?n=20de=20la=20facture.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 htdocs/compta/facture.php                     | 23 +++++------
 .../modules/facture/modules_facture.php       | 39 ++++++++++++-------
 .../modules/facture/pdf_adytek.modules.php    | 17 +++++---
 .../modules/facture/pdf_bernique.modules.php  | 15 ++++---
 .../modules/facture/pdf_bigorneau.modules.php | 16 +++++---
 .../modules/facture/pdf_bulot.modules.php     | 15 ++++---
 .../modules/facture/pdf_crabe.modules.php     | 19 +++++----
 .../modules/facture/pdf_tourteau.modules.php  | 16 +++++---
 8 files changed, 94 insertions(+), 66 deletions(-)

diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php
index 9fad32f9b66..53f3df239a8 100644
--- a/htdocs/compta/facture.php
+++ b/htdocs/compta/facture.php
@@ -343,7 +343,7 @@ if ($_POST["action"] == 'send' || $_POST["action"] == 'relance')
     {
 			$forbidden_chars=array("/","\\",":","*","?","\"","<",">","|","[","]",",",";","=");
 			$facref = str_replace($forbidden_chars,"_",$fac->ref);
-			$file = FAC_OUTPUTDIR . "/" . $facref . "/" . $facref . ".pdf";
+			$file = $conf->facture->dir_output . "/" . $facref . "/" . $facref . ".pdf";
       
       if (is_readable($file))
 	{
@@ -432,10 +432,8 @@ if ($_POST["action"] == 'send' || $_POST["action"] == 'relance')
 if ($_GET["action"] == 'pdf')
 {
   // Generation de la facture d�finie dans /includes/modules/facture/modules_facture.php
+  // G�n�re �galement le fichier meta dans le m$eme r�pertoire (pour faciliter les recherches et indexation)
   facture_pdf_create($db, $_GET["facid"]);
-  // Plus ajout des meta informations dans le m�me r�pertoire pour faciliter les
-  //recherches en texte plein (grep etc.)
-  facture_meta_create($db, $_GET["facid"]);
 } 
 
 
@@ -592,7 +590,7 @@ if ($_GET["action"] == 'create')
 		  dolibarr_print_error($db);
 		}
 	      	      
-	      print '<table class="noborder" cellspacing="0" cellpadding="2">';
+	      print '<table class="noborder">';
 	      print '<tr><td>Services/Produits pr�d�finis</td><td>'.$langs->trans("Qty").'</td><td>'.$langs->trans("Discount").'</td><td> &nbsp; &nbsp; </td>';
 	      if ($conf->service->enabled) {
 		print '<td>Si produit de type service � dur�e limit�e</td></tr>';
@@ -647,7 +645,7 @@ if ($_GET["action"] == 'create')
 		}
 	      else
 		{
-		  print "$sql";
+		  dolibarr_print_error($db);
 		}
 	    }
 	  /*
@@ -664,7 +662,7 @@ if ($_GET["action"] == 'create')
 	       */
 	      print_titre("Produits");
 	      
-	      print '<table class="noborder" width="100%" cellspacing="0" cellpadding="3">';
+	      print '<table class="noborder" width="100%">';
 	      print '<tr class="liste_titre"><td>'.$langs->trans("Ref").'</td><td>Produit</td>';
 	      print '<td align="right">'.$langs->trans("Price").'</td><td align="center">Remise</td><td align="center">Qt�.</td></tr>';
 	      
@@ -710,7 +708,7 @@ if ($_GET["action"] == 'create')
 		}
 	      else
 		{
-		  print $sql;
+		  dolibarr_print_error($db);
 		}
 
 	      print '</table>';
@@ -753,7 +751,7 @@ if ($_GET["action"] == 'create')
 		}
 	      else
 		{
-		  print $sql;
+		  dolibarr_print_error($db);
 		}
 
 	      print '</table>';
@@ -1068,7 +1066,6 @@ else
 		}
 	    
 	      $db->free();
-	      //	    print "</table>";
 	    } 
 	  else
 	    {
@@ -1148,7 +1145,7 @@ else
 			}		  	
 		    }
 		}
-	      print "  <a class=\"tabAction\" href=\"facture.php?facid=$fac->id&amp;action=pdf\">".$langs->trans("RebuildPDF")."</a>\n";
+
 	      // Supprimer
 	      if ($fac->statut == 0 && $user->rights->facture->supprimer && $_GET["action"] != 'delete')
 		{
@@ -1207,7 +1204,7 @@ else
 
 	  $forbidden_chars=array("/","\\",":","*","?","\"","<",">","|","[","]",",",";","=");
 	  $facref = str_replace($forbidden_chars,"_",$fac->ref);
-	  $file = FAC_OUTPUTDIR . "/" . $facref . "/" . $facref . ".pdf";
+	  $file = $conf->facture->dir_output . "/" . $facref . "/" . $facref . ".pdf";
        
 	  print "<table width=\"100%\" cellspacing=2><tr><td width=\"50%\" valign=\"top\">";
 
@@ -1226,7 +1223,7 @@ else
 	      print '</tr>';
 	     
 
-	      $dir = FAC_OUTPUTDIR . "/" . $facref . "/";
+	      $dir = $conf->facture->dir_output . "/" . $facref . "/";
 	      $handle=opendir($dir);
 
 	      while (($file = readdir($handle))!==false)
diff --git a/htdocs/includes/modules/facture/modules_facture.php b/htdocs/includes/modules/facture/modules_facture.php
index 373b3ede9fb..cbc5d1c154f 100644
--- a/htdocs/includes/modules/facture/modules_facture.php
+++ b/htdocs/includes/modules/facture/modules_facture.php
@@ -119,7 +119,9 @@ function facture_pdf_create($db, $facid, $message="")
 
       if ( $obj->write_pdf_file($facid) > 0)
 	{
-	  return 1;
+        // Succ�s de la cr�ation de la facture. On g�n�re le fichier meta
+        facture_meta_create($db, $_GET["facid"]);
+        return 1;
 	}
       else
 	{
@@ -135,28 +137,35 @@ function facture_pdf_create($db, $facid, $message="")
     }
 }
 
-/*!
-  \brief      Cr�� un meta fichier � c�t� de la facture sur le disque pour faciliter les recherches en texte plein. Pourquoi ? tout simplement parcequ'en fin d'exercice quand je suis avec mon comptable je n'ai pas de connexion internet "rapide" pour retrouver en 2 secondes une facture non pay�e ou compliqu�e � g�rer ... avec un rgrep c'est vite fait bien fait [eric seigne]
-  \param	    db  		objet base de donn�e
-  \param	    facid		id de la facture � cr�er
+/**
+        \brief      Cr�� un meta fichier � c�t� de la facture sur le disque pour faciliter les recherches en texte plein. Pourquoi ? tout simplement parcequ'en fin d'exercice quand je suis avec mon comptable je n'ai pas de connexion internet "rapide" pour retrouver en 2 secondes une facture non pay�e ou compliqu�e � g�rer ... avec un rgrep c'est vite fait bien fait [eric seigne]
+        \param	    db  		objet base de donn�e
+        \param	    facid		id de la facture � cr�er
+        \param      message     message
 */
 function facture_meta_create($db, $facid, $message="")
 {
+    global $langs,$conf;
+    
   $fac = new Facture($db,"",$facid);
   $fac->fetch($facid);  
   $fac->fetch_client();
-  if (defined("FAC_OUTPUTDIR"))
+
+  if ($conf->facture->dir_output)
     {
-      $dir = FAC_OUTPUTDIR . "/" . $fac->ref . "/" ;
-      $file = $dir . $fac->ref . ".meta";
+      $dir = $conf->facture->dir_output . "/" . $fac->ref ;
+      $file = $dir . "/" . $fac->ref . ".meta";
+
       if (! file_exists($dir))
-	{
-	  umask(0);
-	  if (! mkdir($dir, 0755))
-	    {
-	      print "Impossible de cr�er $dir !";
-	    }
-	}
+        {
+            umask(0);
+            if (! mkdir($dir, 0755))
+            {
+                $this->error=$langs->trans("ErrorCanNotCreateDir",$dir);
+                return 0;
+            }
+        }
+
       if (file_exists($dir))
 	{
 	  $nblignes = sizeof($fac->lignes);
diff --git a/htdocs/includes/modules/facture/pdf_adytek.modules.php b/htdocs/includes/modules/facture/pdf_adytek.modules.php
index 4b075d65f2d..40af9261257 100644
--- a/htdocs/includes/modules/facture/pdf_adytek.modules.php
+++ b/htdocs/includes/modules/facture/pdf_adytek.modules.php
@@ -45,15 +45,19 @@ class pdf_adytek extends ModelePDFFactures {
    function write_pdf_file($facid)
     {
       global $user;
+        global $langs;
+        $langs->load("main");
+        $langs->load("bills");
+        $langs->load("products");
+
       $fac = new Facture($this->db,"",$facid);
       $fac->fetch($facid);
-
-      if (defined("FAC_OUTPUTDIR"))
+        if ($conf->facture->dir_output)
 	{
 
 			$forbidden_chars=array("/","\\",":","*","?","\"","<",">","|","[","]",",",";","=");
 			$facref = str_replace($forbidden_chars,"_",$fac->ref);
-			$dir = FAC_OUTPUTDIR . "/" . $facref . "/" ;
+			$dir = $conf->facture->dir_output . "/" . $facref . "/" ;
 			$file = $dir . $facref . ".pdf";
 
 	  if (! file_exists($dir))
@@ -61,13 +65,14 @@ class pdf_adytek extends ModelePDFFactures {
 	      umask(0);
 	      if (! mkdir($dir, 0755))
 		{
-                    $this->error="Erreur: Le r�pertoire '$dir' n'existe pas et Dolibarr n'a pu le cr�er.";
+                    $this->error=$langs->trans("ErrorCanNotCreateDir",$dir);
                     return 0;
 		}
 	    }
 
 	  if (file_exists($dir))
 	    {
+                // Initialisation facture vierge
 	      $pdf=new FPDF('P','mm','A4');
 	      $pdf->Open();
 	      $pdf->AddPage();
@@ -75,8 +80,8 @@ class pdf_adytek extends ModelePDFFactures {
 	      $this->_pagehead($pdf, $fac);
 
 	      $pdf->SetTitle($fac->ref);
-	      $pdf->SetSubject("Facture");
-	      $pdf->SetCreator("ADYTEK Dolibarr ".DOL_VERSION);
+                $pdf->SetSubject($langs->trans("Bill"));
+                $pdf->SetCreator("ADYTEK Dolibarr ".DOL_VERSION);
 	      $pdf->SetAuthor($user->fullname);
               $pdf->SetMargins(10, 10, 10);
               $pdf->SetAutoPageBreak(1,0);
diff --git a/htdocs/includes/modules/facture/pdf_bernique.modules.php b/htdocs/includes/modules/facture/pdf_bernique.modules.php
index 574f99b3948..5d3d8127711 100644
--- a/htdocs/includes/modules/facture/pdf_bernique.modules.php
+++ b/htdocs/includes/modules/facture/pdf_bernique.modules.php
@@ -45,15 +45,19 @@ class pdf_bernique extends ModelePDFFactures  {
   function write_pdf_file($facid)
     {
       global $user;
+        global $langs;
+        $langs->load("main");
+        $langs->load("bills");
+        $langs->load("products");
+
       $fac = new Facture($this->db,"",$facid);
       $fac->fetch($facid);  
-
-      if (defined("FAC_OUTPUTDIR"))
+        if ($conf->facture->dir_output)
 	{
 
 			$forbidden_chars=array("/","\\",":","*","?","\"","<",">","|","[","]",",",";","=");
 			$facref = str_replace($forbidden_chars,"_",$fac->ref);
-			$dir = FAC_OUTPUTDIR . "/" . $facref . "/" ;
+			$dir = $conf->facture->dir_output . "/" . $facref . "/" ;
 			$file = $dir . $facref . ".pdf";
 	  
 	  if (! file_exists($dir))
@@ -61,13 +65,14 @@ class pdf_bernique extends ModelePDFFactures  {
 	      umask(0);
 	      if (! mkdir($dir, 0755))
 		{
-                    $this->error="Erreur: Le r�pertoire '$dir' n'existe pas et Dolibarr n'a pu le cr�er.";
+                    $this->error=$langs->trans("ErrorCanNotCreateDir",$dir);
                     return 0;
 		}
 	    }
 	  
 	  if (file_exists($dir))
 	    {
+                // Initialisation facture vierge
 	      $pdf=new FPDF('P','mm','A4');
 	      $pdf->Open();
 	      $pdf->AddPage();
@@ -75,7 +80,7 @@ class pdf_bernique extends ModelePDFFactures  {
 	      $this->_pagehead($pdf, $fac);
 
 	      $pdf->SetTitle($fac->ref);
-	      $pdf->SetSubject("Facture");
+                $pdf->SetSubject($langs->trans("Bill"));
 	      $pdf->SetCreator("Dolibarr ".DOL_VERSION);
 	      $pdf->SetAuthor($user->fullname);
 	      
diff --git a/htdocs/includes/modules/facture/pdf_bigorneau.modules.php b/htdocs/includes/modules/facture/pdf_bigorneau.modules.php
index 540342c40b4..3d47ac7e6a0 100644
--- a/htdocs/includes/modules/facture/pdf_bigorneau.modules.php
+++ b/htdocs/includes/modules/facture/pdf_bigorneau.modules.php
@@ -45,15 +45,19 @@ class pdf_bigorneau extends ModelePDFFactures {
   function write_pdf_file($facid)
     {
       global $user;
+        global $langs;
+        $langs->load("main");
+        $langs->load("bills");
+        $langs->load("products");
+
       $fac = new Facture($this->db,"",$facid);
       $fac->fetch($facid);  
-
-      if (defined("FAC_OUTPUTDIR"))
+        if ($conf->facture->dir_output)
 	{
 
 			$forbidden_chars=array("/","\\",":","*","?","\"","<",">","|","[","]",",",";","=");
 			$facref = str_replace($forbidden_chars,"_",$fac->ref);
-			$dir = FAC_OUTPUTDIR . "/" . $facref . "/" ;
+			$dir = $conf->facture->dir_output . "/" . $facref . "/" ;
 			$file = $dir . $facref . ".pdf";
 	  
 	  if (! file_exists($dir))
@@ -61,14 +65,14 @@ class pdf_bigorneau extends ModelePDFFactures {
 	      umask(0);
 	      if (! mkdir($dir, 0755))
 		{
-                    $this->error="Erreur: Le r�pertoire '$dir' n'existe pas et Dolibarr n'a pu le cr�er.";
+                    $this->error=$langs->trans("ErrorCanNotCreateDir",$dir);
                     return 0;
 		}
 	    }
 	  
 	  if (file_exists($dir))
 	    {
-
+                // Initialisation facture vierge
 	      $pdf=new FPDF('P','mm','A4');
 	      $pdf->Open();
 	      $pdf->AddPage();
@@ -76,7 +80,7 @@ class pdf_bigorneau extends ModelePDFFactures {
 	      $this->_pagehead($pdf, $fac);
 
 	      $pdf->SetTitle($fac->ref);
-	      $pdf->SetSubject("Facture");
+                $pdf->SetSubject($langs->trans("Bill"));
 	      $pdf->SetCreator("Dolibarr ".DOL_VERSION);
 	      $pdf->SetAuthor($user->fullname);
 	      
diff --git a/htdocs/includes/modules/facture/pdf_bulot.modules.php b/htdocs/includes/modules/facture/pdf_bulot.modules.php
index 57fb3c3cd8c..e6825598217 100644
--- a/htdocs/includes/modules/facture/pdf_bulot.modules.php
+++ b/htdocs/includes/modules/facture/pdf_bulot.modules.php
@@ -46,15 +46,19 @@ class pdf_bulot extends ModelePDFFactures {
   function write_pdf_file($facid)
     {
       global $user;
+        global $langs;
+        $langs->load("main");
+        $langs->load("bills");
+        $langs->load("products");
+
       $fac = new Facture($this->db,"",$facid);
       $fac->fetch($facid);  
-
-      if (defined("FAC_OUTPUTDIR"))
+        if ($conf->facture->dir_output)
 	{
 
 			$forbidden_chars=array("/","\\",":","*","?","\"","<",">","|","[","]",",",";","=");
 			$facref = str_replace($forbidden_chars,"_",$fac->ref);
-			$dir = FAC_OUTPUTDIR . "/" . $facref . "/" ;
+			$dir = $conf->facture->dir_output . "/" . $facref . "/" ;
 			$file = $dir . $facref . ".pdf";
 	  
 	  if (! file_exists($dir))
@@ -62,13 +66,14 @@ class pdf_bulot extends ModelePDFFactures {
 	      umask(0);
 	      if (! mkdir($dir, 0755))
 		{
-                    $this->error="Erreur: Le r�pertoire '$dir' n'existe pas et Dolibarr n'a pu le cr�er.";
+                    $this->error=$langs->trans("ErrorCanNotCreateDir",$dir);
                     return 0;
 		}
 	    }
 	  
 	  if (file_exists($dir))
 	    {
+                // Initialisation facture vierge
 	      $pdf=new FPDF('P','mm','A4');
 	      $pdf->Open();
 	      $pdf->AddPage();
@@ -76,7 +81,7 @@ class pdf_bulot extends ModelePDFFactures {
 	      $this->_pagehead($pdf, $fac);
 
 	      $pdf->SetTitle($fac->ref);
-	      $pdf->SetSubject("Facture");
+                $pdf->SetSubject($langs->trans("Bill"));
 	      $pdf->SetCreator("Dolibarr ".DOL_VERSION);
 	      $pdf->SetAuthor($user->fullname);
 	      
diff --git a/htdocs/includes/modules/facture/pdf_crabe.modules.php b/htdocs/includes/modules/facture/pdf_crabe.modules.php
index 4a3587e4880..a18e1403ee2 100644
--- a/htdocs/includes/modules/facture/pdf_crabe.modules.php
+++ b/htdocs/includes/modules/facture/pdf_crabe.modules.php
@@ -57,7 +57,6 @@ class pdf_crabe extends ModelePDFFactures
     		\param	    facid	id de la facture � g�n�rer
     		\return	    int     1=ok, 0=ko
             \remarks Variables utilis�es
-    		\remarks FAC_OUTPUTDIR
             \remarks FAC_PDF_LOGO
     		\remarks FACTURE_CODEPRODUITSERVICE
     		\remarks FACTURE_CHQ_NUMBER
@@ -75,21 +74,21 @@ class pdf_crabe extends ModelePDFFactures
     */
     function write_pdf_file($facid)
     {
-        global $user;
-        global $langs;
+        global $user,$langs,$conf;
+
         $langs->load("main");
         $langs->load("bills");
         $langs->load("products");
 
-        $fac = new Facture($this->db,"",$facid);
-        $fac->fetch($facid);
-        if (defined("FAC_OUTPUTDIR"))
+        if ($conf->facture->dir_output)
         {
+            $fac = new Facture($this->db,"",$facid);
+            $fac->fetch($facid);
 
-					$forbidden_chars=array("/","\\",":","*","?","\"","<",">","|","[","]",",",";","=");
-					$facref = str_replace($forbidden_chars,"_",$fac->ref);
-					$dir = FAC_OUTPUTDIR . "/" . $facref . "/" ;
-					$file = $dir . $facref . ".pdf";
+			$forbidden_chars=array("/","\\",":","*","?","\"","<",">","|","[","]",",",";","=");
+			$facref = str_replace($forbidden_chars,"_",$fac->ref);
+			$dir = $conf->facture->dir_output . "/" . $facref;
+			$file = $dir . "/" . $facref . ".pdf";
 
             if (! file_exists($dir))
             {
diff --git a/htdocs/includes/modules/facture/pdf_tourteau.modules.php b/htdocs/includes/modules/facture/pdf_tourteau.modules.php
index eaa5910e721..adc8f549979 100644
--- a/htdocs/includes/modules/facture/pdf_tourteau.modules.php
+++ b/htdocs/includes/modules/facture/pdf_tourteau.modules.php
@@ -45,15 +45,19 @@ class pdf_tourteau extends ModelePDFFactures {
   function write_pdf_file($facid)
     {
       global $user;
+        global $langs;
+        $langs->load("main");
+        $langs->load("bills");
+        $langs->load("products");
+
       $fac = new Facture($this->db,"",$facid);
       $fac->fetch($facid);  
-
-      if (defined("FAC_OUTPUTDIR"))
+        if ($conf->facture->dir_output)
 	{
 
 			$forbidden_chars=array("/","\\",":","*","?","\"","<",">","|","[","]",",",";","=");
 			$facref = str_replace($forbidden_chars,"_",$fac->ref);
-			$dir = FAC_OUTPUTDIR . "/" . $facref . "/" ;
+			$dir = $conf->facture->dir_output . "/" . $facref . "/" ;
 			$file = $dir . $facref . ".pdf";
 	  
 	  if (! file_exists($dir))
@@ -61,14 +65,14 @@ class pdf_tourteau extends ModelePDFFactures {
 	      umask(0);
 	      if (! mkdir($dir, 0755))
 		{
-                    $this->error="Erreur: Le r�pertoire '$dir' n'existe pas et Dolibarr n'a pu le cr�er.";
+                    $this->error=$langs->trans("ErrorCanNotCreateDir",$dir);
                     return 0;
 		}
 	    }
 	  
 	  if (file_exists($dir))
 	    {
-
+                // Initialisation facture vierge
 	      $pdf=new FPDF('P','mm','A4');
 	      $pdf->Open();
 	      $pdf->AddPage();
@@ -76,7 +80,7 @@ class pdf_tourteau extends ModelePDFFactures {
 	      $this->_pagehead($pdf, $fac);
 
 	      $pdf->SetTitle($fac->ref);
-	      $pdf->SetSubject("Facture");
+                $pdf->SetSubject($langs->trans("Bill"));
 	      $pdf->SetCreator("Dolibarr ".DOL_VERSION);
 	      $pdf->SetAuthor($user->fullname);
 	      
-- 
GitLab