Qual: Mise en commun dans la methode html->show_documents du code des zones d'affichages des documents PDF générés.

(Afin de préparer la génération des PDF incluant le choix du model à la volée).
This commit is contained in:
Laurent Destailleur 2005-08-23 19:31:25 +00:00
parent 58caa5e242
commit bbb6fc162c
12 changed files with 222 additions and 235 deletions

View File

@ -29,7 +29,6 @@
*/ */
require("./pre.inc.php"); require("./pre.inc.php");
require("./propal_model_pdf.class.php");
$langs->load("propal"); $langs->load("propal");
$langs->load("projects"); $langs->load("projects");
@ -197,9 +196,10 @@ if ($_GET["action"] == 'create')
print '<td>Modèle</td>'; print '<td>Modèle</td>';
print '<td>'; print '<td>';
$html = new Form($db); include_once(DOL_DOCUMENT_ROOT.'/includes/modules/propale/modules_propale.php');
$modelpdf = new Propal_Model_pdf($db); $model=new ModelePDFPropales();
$html->select_array("modelpdf",$modelpdf->liste_array(),PROPALE_ADDON_PDF); $liste=$model->liste_modeles($this->db);
$html->select_array("modelpdf",$liste,PROPALE_ADDON_PDF);
print "</td></tr></table>"; print "</td></tr></table>";
print '<br>'; print '<br>';

View File

@ -42,7 +42,6 @@ $langs->load('bills');
if ($conf->projet->enabled) require_once(DOL_DOCUMENT_ROOT.'/project.class.php'); if ($conf->projet->enabled) require_once(DOL_DOCUMENT_ROOT.'/project.class.php');
if ($conf->commande->enabled) require_once(DOL_DOCUMENT_ROOT.'/commande/commande.class.php'); if ($conf->commande->enabled) require_once(DOL_DOCUMENT_ROOT.'/commande/commande.class.php');
require_once('./propal_model_pdf.class.php');
require_once('../propal.class.php'); require_once('../propal.class.php');
require_once('../actioncomm.class.php'); require_once('../actioncomm.class.php');
require_once(DOL_DOCUMENT_ROOT.'/lib/CMailFile.class.php'); require_once(DOL_DOCUMENT_ROOT.'/lib/CMailFile.class.php');
@ -886,48 +885,22 @@ if ($_GET['propalid'] > 0)
print '<table width="100%"><tr><td width="50%" valign="top">'; print '<table width="100%"><tr><td width="50%" valign="top">';
/*
* Documents
*/
if ($propal->brouillon == 1)
{
print '<form action="propal.php?propalid='.$propal->id.'" method="post">';
print '<input type="hidden" name="action" value="setpdfmodel">';
}
print_titre($langs->trans('Documents'));
print '<table class="border" width="100%">'; /*
$propref = sanitize_string($propal->ref); * Documents générés
$file = $conf->propal->dir_output . '/'.$propref.'/'.$propref.'.pdf'; */
$relativepath = $propref.'/'.$propref.'.pdf'; $filename=sanitize_string($propal->ref);
$filedir=$conf->propal->dir_output . "/" . sanitize_string($propal->ref);
$urlsource=$_SERVER["PHP_SELF"]."?propalid=".$propal->id;
$genallowed=$user->rights->propale->creer;
$delallowed=$user->rights->propale->supprimer;
$var=true; $var=true;
if (file_exists($file)) print "<br>\n";
{ $form->show_documents('propal',$filename,$filedir,$urlsource,$genallowed,$delallowed,$propal->modelpdf);
print '<tr '.$bc[$var].'><td>'.$langs->trans('Propal').' PDF</td>';
print '<td><a href="'.DOL_URL_ROOT . '/document.php?modulepart=propal&file='.urlencode($relativepath).'">'.$propal->ref.'.pdf</a></td>';
print '<td align="right">'.filesize($file). ' bytes</td>';
print '<td align="right">'.strftime('%d %B %Y %H:%M:%S',filemtime($file)).'</td></tr>';
}
if ($propal->brouillon == 1 && $user->rights->propale->creer)
{
print '<tr '.$bc[$var].'><td>Modèle</td><td align="right">';
$html = new Form($db);
$modelpdf = new Propal_Model_pdf($db);
$html->select_array('modelpdf',$modelpdf->liste_array(),$propal->modelpdf);
print '</td><td colspan="2"><input type="submit" value="'.$langs->trans('Save').'">';
print '</td></tr>';
}
print "</table>\n";
if ($propal->brouillon == 1)
{
print '</form>';
}
/* /*

View File

@ -1,67 +0,0 @@
<?php
/* Copyright (C) 2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
*
* $Id$
* $Source$
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
*/
class Propal_Model_Pdf {
var $nom;
function Propal_Model_Pdf($DB)
{
$this->db = $DB ;
}
/*
*
*
*
*/
function liste_array()
{
$projets = array();
$sql = "SELECT nom FROM ".MAIN_DB_PREFIX."propal_model_pdf";
if ($this->db->query($sql) )
{
$nump = $this->db->num_rows();
if ($nump)
{
$i = 0;
while ($i < $nump)
{
$obj = $this->db->fetch_object();
$projets[$obj->nom] = $obj->nom;
$i++;
}
}
return $projets;
}
else
{
print $this->db->error();
}
}
}
?>

View File

@ -1389,48 +1389,19 @@ else
/* /*
* Documents générés * Documents générés
* Le fichier de facture détaillée est de la forme
* REFFACTURE-XXXXXX-detail.pdf ou XXXXX est une forme diverse
*/ */
$filename=sanitize_string($fac->ref);
$facref = sanitize_string($fac->ref); $filedir=$conf->facture->dir_output . "/" . sanitize_string($fac->ref);
$file = $conf->facture->dir_output . "/" . $facref . "/" . $facref . ".pdf"; $urlsource=$_SERVER["PHP_SELF"]."?facid=".$fac->id;
$relativepath = "${facref}/${facref}.pdf"; // $genallowed=($fac->statut == 1 && ($fac->paye == 0 || $user->admin) && $user->rights->facture->creer);
// $delallowed=$user->rights->facture->supprimer;
$genallowed=0;
$delallowed=0;
$var=true; $var=true;
if (file_exists($file)) print "<br>\n";
{ $html->show_documents('facture',$filename,$filedir,$urlsource,$genallowed,$delallowed);
print "<br>\n";
print_titre("Documents");
print '<table class="border" width="100%">';
print "<tr $bc[$var]><td>".$langs->trans("Bill")." PDF</td>";
print '<td><a href="'.DOL_URL_ROOT . '/document.php?modulepart=facture&file='.urlencode($relativepath).'">'.$fac->ref.'.pdf</a></td>';
print '<td align="right">'.filesize($file). ' bytes</td>';
print '<td align="right">'.strftime("%d %b %Y %H:%M:%S",filemtime($file)).'</td>';
print '</tr>';
$dir = $conf->facture->dir_output . "/" . $facref . "/";
$handle=opendir($dir);
while (($file = readdir($handle))!==false)
{
if (is_readable($dir.$file) && substr($file, -10) == 'detail.pdf')
{
print "<tr $bc[$var]><td>Facture détaillée</td>";
$relativepathdetail = "${facref}/$file";
print '<td><a href="'.DOL_URL_ROOT . '/document.php?modulepart=facture&file='.urlencode($relativepathdetail).'">'.$file.'</a></td>';
print '<td align="right">'.filesize($dir.$file). ' bytes</td>';
print '<td align="right">'.strftime("%d %b %Y %H:%M:%S",filemtime($dir.$file)).'</td>';
print '</tr>';
}
}
print "</table>\n";
}
/* /*

View File

@ -453,28 +453,19 @@ if ($_GET["propalid"])
print '<table width="100%"><tr><td width="50%" valign="top">'; print '<table width="100%"><tr><td width="50%" valign="top">';
/* /*
* Documents * Documents générés
*/ */
$filename=sanitize_string($propal->ref);
$filedir=$conf->propal->dir_output . "/" . sanitize_string($propal->ref);
$urlsource=$_SERVER["PHP_SELF"]."?propalid=".$propal->id;
$genallowed=0;
$delallowed=0;
print_titre($langs->trans('Documents')); $var=true;
print '<table class="border" width="100%">'; print "<br>\n";
$propref = sanitize_string($propal->ref); $form->show_documents('propal',$filename,$filedir,$urlsource,$genallowed,$delallowed);
$file = $conf->propal->dir_output . '/'.$propref.'/'.$propref.'.pdf';
$relativepath = $propref.'/'.$propref.'.pdf';
$var=true;
if (file_exists($file))
{
print '<tr '.$bc[$var].'><td>'.$langs->trans('Propal').' PDF</td>';
print '<td><a href="'.DOL_URL_ROOT . '/document.php?modulepart=propal&file='.urlencode($relativepath).'">'.$propal->ref.'.pdf</a></td>';
print '<td align="right">'.filesize($file). ' bytes</td>';
print '<td align="right">'.strftime('%d %B %Y %H:%M:%S',filemtime($file)).'</td></tr>';
}
print "</table>\n";
/* /*

View File

@ -104,11 +104,12 @@ if ($_GET["id"] > 0)
$h++; $h++;
} }
dolibarr_fiche_head($head, $hselected, $soc->nom." / ".$langs->trans("Order")." : $commande->ref"); dolibarr_fiche_head($head, $hselected, $langs->trans("Order").": $commande->ref");
/* /*
* Confirmation de la validation * Confirmation de la validation
* *
*/ */
if ($_GET["action"] == 'cloture') if ($_GET["action"] == 'cloture')
{ {
$html->form_confirm("commande.php?id=".$_GET["id"],"Clôturer la commande","Etes-vous sûr de vouloir clôturer cette commande ?","confirm_cloture"); $html->form_confirm("commande.php?id=".$_GET["id"],"Clôturer la commande","Etes-vous sûr de vouloir clôturer cette commande ?","confirm_cloture");
@ -143,13 +144,14 @@ if ($_GET["id"] > 0)
print '<tr><td colspan="3">'.nl2br($commande->note)."</td></tr>"; print '<tr><td colspan="3">'.nl2br($commande->note)."</td></tr>";
} }
print '</table><br />'; print '</table>';
/* /*
* Lignes de commandes * Lignes de commandes
* *
*/ */
echo '<table class="liste" width="100%">'; echo '<br><table class="liste" width="100%">';
$sql = "SELECT l.fk_product, l.description, l.price, l.qty, l.rowid, l.tva_tx, l.remise_percent, l.subprice"; $sql = "SELECT l.fk_product, l.description, l.price, l.qty, l.rowid, l.tva_tx, l.remise_percent, l.subprice";
$sql.= " FROM ".MAIN_DB_PREFIX."commandedet as l "; $sql.= " FROM ".MAIN_DB_PREFIX."commandedet as l ";
@ -233,7 +235,6 @@ if ($_GET["id"] > 0)
if (! $num) if (! $num)
{ {
print $langs->trans("None").'<br>'; print $langs->trans("None").'<br>';
print '<br>';
} }
} }
@ -248,7 +249,6 @@ if ($_GET["id"] > 0)
*/ */
if ($reste_a_livrer_total > 0 && $commande->brouillon == 0) if ($reste_a_livrer_total > 0 && $commande->brouillon == 0)
{ {
print '<form method="post" action="fiche.php">'; print '<form method="post" action="fiche.php">';
print '<input type="hidden" name="action" value="create">'; print '<input type="hidden" name="action" value="create">';
print '<input type="hidden" name="commande_id" value="'.$commande->id.'">'; print '<input type="hidden" name="commande_id" value="'.$commande->id.'">';

View File

@ -31,6 +31,7 @@
require("./pre.inc.php"); require("./pre.inc.php");
$langs->load("bills");
if (!$user->rights->expedition->lire) if (!$user->rights->expedition->lire)
accessforbidden(); accessforbidden();
@ -444,28 +445,10 @@ else
dolibarr_print_error($db); dolibarr_print_error($db);
} }
print "</table><br>\n"; print "</table>\n";
print "\n</div>\n"; print "\n</div>\n";
/*
*
*/
$file = $expedition->pdf_filename;
if (file_exists($file))
{
print_titre($langs->trans("Documents"));
print '<table class="border" width="50%">';
print "<tr $bc[$var]><td>".$langs->trans("Sending")." PDF</td>";
$b = ereg_replace($conf->expedition->dir_output."/","",$file);
print '<td><a href="'.DOL_URL_ROOT . '/document.php?modulepart=expedition&file='.urlencode($b).'">'.basename($file).'</a></td>';
print '<td align="right">'.filesize($file). ' bytes</td>';
print '<td align="right">'.dolibarr_print_date(filemtime($file),"%d %B %Y %H:%M:%S").'</td></tr>';
print "</table>";
}
/* /*
* *
@ -489,10 +472,27 @@ else
print '</div>'; print '</div>';
} }
/*
* Documents générés
*/
$filename=sanitize_string($expedition->id);
$filedir=$conf->expedition->dir_output . "/" .get_exdir($expedition->id);
$urlsource=$_SERVER["PHP_SELF"]."?id=".$expedition->id;
//$genallowed=$user->rights->expedition->creer;
//$delallowed=$user->rights->expedition->supprimer;
$genallowed=0;
$delallowed=0;
$var=true;
print "<br>\n";
$html->show_documents('expedition',$filename,$filedir,$urlsource,$genallowed,$delallowed,$propal->modelpdf);
/* /*
* Déjà livré * Déjà livré
* *
*
*/ */
$sql = "SELECT cd.fk_product, cd.description, cd.rowid, cd.qty as qty_commande"; $sql = "SELECT cd.fk_product, cd.description, cd.rowid, cd.qty as qty_commande";
$sql .= " , ed.qty as qty_livre, e.ref"; $sql .= " , ed.qty as qty_livre, e.ref";

View File

@ -1386,11 +1386,15 @@ class Form
$liste=array(); $liste=array();
if ($modulepart == 'propal') if ($modulepart == 'propal')
{ {
$liste=$this->select("ee","select nom as id, nom as lib from ".MAIN_DB_PREFIX."propal_model_pdf"); include_once(DOL_DOCUMENT_ROOT.'/includes/modules/propale/modules_propale.php');
$model=new ModelePDFPropales();
$liste=$model->liste_modeles($this->db);
} }
elseif ($modulepart == 'facture') elseif ($modulepart == 'facture')
{ {
$liste=$this->select(""); include_once(DOL_DOCUMENT_ROOT.'/includes/modules/facture/modules_facture.php');
$model=new ModelePDFFactures();
$liste=$model->liste_modeles($this->db);
} }
else else
{ {

View File

@ -1,6 +1,6 @@
<?php <?php
/* Copyright (C) 2003-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2003-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2005 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com> * Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
@ -23,7 +23,8 @@
* *
*/ */
/** \file htdocs/includes/modules/commande/modules_commande.php /**
\file htdocs/includes/modules/commande/modules_commande.php
\ingroup commande \ingroup commande
\brief Fichier contenant la classe mère de generation des commandes en PDF \brief Fichier contenant la classe mère de generation des commandes en PDF
et la classe mère de numérotation des commandes et la classe mère de numérotation des commandes
@ -32,8 +33,9 @@
/** \class ModelePDFCommandes /**
\brief Classe mère des modèles de commandes \class ModelePDFCommandes
\brief Classe mère des modèles de commandes
*/ */
class ModelePDFCommandes extends FPDF class ModelePDFCommandes extends FPDF
@ -48,12 +50,40 @@ class ModelePDFCommandes extends FPDF
return $this->error; return $this->error;
} }
/**
* \brief Renvoi la liste des modèles actifs
*/
function liste_modeles($db)
{
$liste=array();
$sql ="";
$resql = $db->query($sql);
if ($resql)
{
$num = $db->num_rows($resql);
$i = 0;
while ($i < $num)
{
$row = $db->fetch_row($resql);
$liste[$row[0]]=$row[1];
$i++;
}
}
else
{
return -1;
}
return $liste;
}
} }
/** \class ModeleNumRefCommandes /**
\brief Classe mère des modèles de numérotation des références de commandes \class ModeleNumRefCommandes
\brief Classe mère des modèles de numérotation des références de commandes
*/ */
class ModeleNumRefCommandes class ModeleNumRefCommandes

View File

@ -36,8 +36,9 @@ require_once(DOL_DOCUMENT_ROOT."/compta/bank/account.class.php"); // Requis ca
/** \class ModelePDFFactures /**
\brief Classe mère des modèles de facture \class ModelePDFFactures
\brief Classe mère des modèles de facture
*/ */
class ModelePDFFactures extends FPDF class ModelePDFFactures extends FPDF
@ -45,13 +46,40 @@ class ModelePDFFactures extends FPDF
var $error=''; var $error='';
/** /**
\brief Renvoi le dernier message d'erreur de création de facture * \brief Renvoi le dernier message d'erreur de création de facture
*/ */
function pdferror() function pdferror()
{ {
return $this->error; return $this->error;
} }
/**
* \brief Renvoi la liste des modèles actifs
*/
function liste_modeles($db)
{
$liste=array();
$sql ="";
$resql = $db->query($sql);
if ($resql)
{
$num = $db->num_rows($resql);
$i = 0;
while ($i < $num)
{
$row = $db->fetch_row($resql);
$liste[$row[0]]=$row[1];
$i++;
}
}
else
{
return -1;
}
return $liste;
}
} }

View File

@ -40,26 +40,55 @@ class ModelePDFFicheinter extends FPDF
{ {
var $error=''; var $error='';
/** \brief Constructeur /**
\brief Constructeur
*/ */
function ModelePDFFicheinter() function ModelePDFFicheinter()
{ {
} }
/** /**
\brief Renvoi le dernier message d'erreur de création de fiche intervention \brief Renvoi le dernier message d'erreur de création de fiche intervention
*/ */
function pdferror() function pdferror()
{ {
return $this->error; return $this->error;
} }
/**
* \brief Renvoi la liste des modèles actifs
*/
function liste_modeles($db)
{
$liste=array();
$sql ="";
$resql = $db->query($sql);
if ($resql)
{
$num = $db->num_rows($resql);
$i = 0;
while ($i < $num)
{
$row = $db->fetch_row($resql);
$liste[$row[0]]=$row[1];
$i++;
}
}
else
{
return -1;
}
return $liste;
}
} }
/** \class ModeleNumRefFicheinter /**
\brief Classe mère des modèles de numérotation des références de fiches d'intervention \class ModeleNumRefFicheinter
\brief Classe mère des modèles de numérotation des références de fiches d'intervention
*/ */
class ModeleNumRefFicheinter class ModeleNumRefFicheinter

View File

@ -38,21 +38,49 @@
class ModelePDFPropales extends FPDF class ModelePDFPropales extends FPDF
{ {
var $error=''; var $error='';
/** /**
\brief Renvoi le dernier message d'erreur de création de propale * \brief Renvoi le dernier message d'erreur de création de propale
*/ */
function pdferror() function pdferror()
{ {
return $this->error; return $this->error;
} }
/**
* \brief Renvoi la liste des modèles actifs
*/
function liste_modeles($db)
{
$liste=array();
$sql ="SELECT nom as id, nom as lib";
$sql.=" FROM ".MAIN_DB_PREFIX."propal_model_pdf";
$resql = $db->query($sql);
if ($resql)
{
$num = $db->num_rows($resql);
$i = 0;
while ($i < $num)
{
$row = $db->fetch_row($resql);
$liste[$row[0]]=$row[1];
$i++;
}
}
else
{
return -1;
}
return $liste;
}
} }
/**\class ModeleNumRefPropales /**
\brief Classe mère des modèles de numérotation des références de propales \class ModeleNumRefPropales
\brief Classe mère des modèles de numérotation des références de propales
*/ */
class ModeleNumRefPropales class ModeleNumRefPropales