Fix: Uniformisation du rpertoire de gnration des factures. De plus la cration du fichier meta est inclus dans la cration de la facture.

This commit is contained in:
Laurent Destailleur 2004-12-23 18:28:58 +00:00
parent 0d9d363b51
commit 1b14067010
8 changed files with 94 additions and 66 deletions

View File

@ -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)

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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))
{

View File

@ -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);