Add option to set mask on new files
This commit is contained in:
parent
1ca8c0975f
commit
6a259176a4
@ -19,11 +19,11 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\file htdocs/adherents/cartes/carte.php
|
\file htdocs/adherents/cartes/carte.php
|
||||||
\ingroup adherent
|
\ingroup adherent
|
||||||
\brief Page de creation d'une carte PDF
|
\brief Page de creation d'une carte PDF
|
||||||
\version $Id$
|
\version $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require("./pre.inc.php");
|
require("./pre.inc.php");
|
||||||
require_once(DOL_DOCUMENT_ROOT."/adherents/adherent.class.php");
|
require_once(DOL_DOCUMENT_ROOT."/adherents/adherent.class.php");
|
||||||
@ -32,29 +32,29 @@ require_once(DOL_DOCUMENT_ROOT."/adherents/cartes/PDF_card.class.php");
|
|||||||
|
|
||||||
// liste des patterns remplacable dans le texte a imprimer
|
// liste des patterns remplacable dans le texte a imprimer
|
||||||
$patterns = array (
|
$patterns = array (
|
||||||
'/%PRENOM%/',
|
'/%PRENOM%/',
|
||||||
'/%NOM%/',
|
'/%NOM%/',
|
||||||
'/%SERVEUR%/',
|
'/%SERVEUR%/',
|
||||||
'/%SOCIETE%/',
|
'/%SOCIETE%/',
|
||||||
'/%ADRESSE%/',
|
'/%ADRESSE%/',
|
||||||
'/%CP%/',
|
'/%CP%/',
|
||||||
'/%VILLE%/',
|
'/%VILLE%/',
|
||||||
'/%PAYS%/',
|
'/%PAYS%/',
|
||||||
'/%EMAIL%/',
|
'/%EMAIL%/',
|
||||||
'/%NAISS%/',
|
'/%NAISS%/',
|
||||||
'/%PHOTO%/',
|
'/%PHOTO%/',
|
||||||
'/%TYPE%/',
|
'/%TYPE%/',
|
||||||
'/%ID%/',
|
'/%ID%/',
|
||||||
'/%ANNEE%/'
|
'/%ANNEE%/'
|
||||||
);
|
);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*-------------------------------------------------
|
*-------------------------------------------------
|
||||||
* Pour créer l'objet on a 2 moyens :
|
* Pour cr<EFBFBD>er l'objet on a 2 moyens :
|
||||||
* Soit on donne les valeurs en les passant dans un tableau (sert pour un format personnel)
|
* Soit on donne les valeurs en les passant dans un tableau (sert pour un format personnel)
|
||||||
* Soit on donne le type d'étiquette au format AVERY
|
* Soit on donne le type d'<EFBFBD>tiquette au format AVERY
|
||||||
*-------------------------------------------------
|
*-------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//$pdf = new PDF_Label(array('name'=>'perso1', 'marginLeft'=>1, 'marginTop'=>1, 'NX'=>2, 'NY'=>7, 'SpaceX'=>0, 'SpaceY'=>0, 'width'=>99.1, 'height'=>'38.1', 'metric'=>'mm', 'font-size'=>14), 1, 2);
|
//$pdf = new PDF_Label(array('name'=>'perso1', 'marginLeft'=>1, 'marginTop'=>1, 'NX'=>2, 'NY'=>7, 'SpaceX'=>0, 'SpaceY'=>0, 'width'=>99.1, 'height'=>'38.1', 'metric'=>'mm', 'font-size'=>14), 1, 2);
|
||||||
$pdf = new PDF_card('CARD', 1, 1);
|
$pdf = new PDF_card('CARD', 1, 1);
|
||||||
@ -64,8 +64,8 @@ $pdf->AddPage();
|
|||||||
|
|
||||||
// Choix de l'annee d'impression ou annee courante.
|
// Choix de l'annee d'impression ou annee courante.
|
||||||
if (!isset($annee)){
|
if (!isset($annee)){
|
||||||
$now = getdate();
|
$now = getdate();
|
||||||
$annee=$now['year'];
|
$annee=$now['year'];
|
||||||
}
|
}
|
||||||
|
|
||||||
// requete en prenant que les adherents a jour de cotisation
|
// requete en prenant que les adherents a jour de cotisation
|
||||||
@ -81,39 +81,40 @@ $sql.= " ORDER BY d.rowid ASC";
|
|||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if ($result)
|
if ($result)
|
||||||
{
|
{
|
||||||
$num = $db->num_rows($result);
|
$num = $db->num_rows($result);
|
||||||
$i = 0;
|
$i = 0;
|
||||||
while ($i < $num)
|
while ($i < $num)
|
||||||
{
|
{
|
||||||
$objp = $db->fetch_object($result);
|
$objp = $db->fetch_object($result);
|
||||||
// attribut a remplacer
|
// attribut a remplacer
|
||||||
$replace = array (
|
$replace = array (
|
||||||
ucfirst(strtolower($objp->prenom)),
|
ucfirst(strtolower($objp->prenom)),
|
||||||
strtoupper($objp->nom),
|
strtoupper($objp->nom),
|
||||||
"http://".$_SERVER["SERVER_NAME"]."/",
|
"http://".$_SERVER["SERVER_NAME"]."/",
|
||||||
$objp->societe,
|
$objp->societe,
|
||||||
ucwords(strtolower($objp->adresse)),
|
ucwords(strtolower($objp->adresse)),
|
||||||
$objp->cp,
|
$objp->cp,
|
||||||
strtoupper($objp->ville),
|
strtoupper($objp->ville),
|
||||||
ucfirst(strtolower($objp->pays)),
|
ucfirst(strtolower($objp->pays)),
|
||||||
$objp->email,
|
$objp->email,
|
||||||
$objp->naiss,
|
$objp->naiss,
|
||||||
$objp->photo,
|
$objp->photo,
|
||||||
$objp->type,
|
$objp->type,
|
||||||
$objp->rowid,
|
$objp->rowid,
|
||||||
$annee
|
$annee
|
||||||
);
|
);
|
||||||
|
|
||||||
// imprime le texte specifique sur la carte
|
// imprime le texte specifique sur la carte
|
||||||
//$pdf->Add_PDF_card(sprintf("%s\n%s\n%s\n%s\n%s, %s\n%s", $objp->type." n° ".$objp->rowid,ucfirst(strtolower($objp->prenom))." ".strtoupper($objp->nom),"<".$objp->email.">", ucwords(strtolower($objp->adresse)), $objp->cp, strtoupper($objp->ville), ucfirst(strtolower($objp->pays))),$annee,"Association FreeLUG http://www.freelug.org/");
|
$pdf->Add_PDF_card(preg_replace ($patterns, $replace, $conf->global->ADHERENT_CARD_TEXT),
|
||||||
$pdf->Add_PDF_card(preg_replace ($patterns, $replace, $conf->global->ADHERENT_CARD_TEXT),
|
preg_replace ($patterns, $replace, $conf->global->ADHERENT_CARD_HEADER_TEXT),
|
||||||
preg_replace ($patterns, $replace, $conf->global->ADHERENT_CARD_HEADER_TEXT),
|
preg_replace ($patterns, $replace, $conf->global->ADHERENT_CARD_FOOTER_TEXT));
|
||||||
preg_replace ($patterns, $replace, $conf->global->ADHERENT_CARD_FOOTER_TEXT));
|
$i++;
|
||||||
$i++;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
$db->close();
|
$db->close();
|
||||||
$pdf->Output();
|
|
||||||
|
// Output to http strem
|
||||||
|
$pdf->Output();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -16,17 +16,14 @@
|
|||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program; if not, write to the Free Software
|
* along with this program; if not, write to the Free Software
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
* $Source$
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\file htdocs/adherents/cartes/etiquette.php
|
\file htdocs/adherents/cartes/etiquette.php
|
||||||
\ingroup adherent
|
\ingroup adherent
|
||||||
\brief Page de creation d'etiquettes
|
\brief Page de creation d'etiquettes
|
||||||
\version $Revision$
|
\version $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require("./pre.inc.php");
|
require("./pre.inc.php");
|
||||||
require_once(DOL_DOCUMENT_ROOT."/adherents/adherent.class.php");
|
require_once(DOL_DOCUMENT_ROOT."/adherents/adherent.class.php");
|
||||||
@ -35,18 +32,18 @@ require_once('PDF_card.class.php');
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
*-------------------------------------------------
|
*-------------------------------------------------
|
||||||
* Pour créer l'objet on a 2 moyens :
|
* Pour cr<EFBFBD>er l'objet on a 2 moyens :
|
||||||
* Soit on donne les valeurs en les passant dans un tableau (sert pour un format personnel)
|
* Soit on donne les valeurs en les passant dans un tableau (sert pour un format personnel)
|
||||||
* Soit on donne le type d'étiquette au format AVERY
|
* Soit on donne le type d'<EFBFBD>tiquette au format AVERY
|
||||||
*-------------------------------------------------
|
*-------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//$pdf = new PDF_Label(array('name'=>'perso1', 'marginLeft'=>1, 'marginTop'=>1, 'NX'=>2, 'NY'=>7, 'SpaceX'=>0, 'SpaceY'=>0, 'width'=>99.1, 'height'=>'38.1', 'metric'=>'mm', 'font-size'=>14), 1, 2);
|
//$pdf = new PDF_Label(array('name'=>'perso1', 'marginLeft'=>1, 'marginTop'=>1, 'NX'=>2, 'NY'=>7, 'SpaceX'=>0, 'SpaceY'=>0, 'width'=>99.1, 'height'=>'38.1', 'metric'=>'mm', 'font-size'=>14), 1, 2);
|
||||||
//$pdf = new PDF_card('CARD', 1, 1);
|
//$pdf = new PDF_card('CARD', 1, 1);
|
||||||
if (defined("ADHERENT_ETIQUETTE_TYPE") && ADHERENT_ETIQUETTE_TYPE !=''){
|
if (defined("ADHERENT_ETIQUETTE_TYPE") && ADHERENT_ETIQUETTE_TYPE !=''){
|
||||||
$pdf = new PDF_card(ADHERENT_ETIQUETTE_TYPE, 1, 1);
|
$pdf = new PDF_card(ADHERENT_ETIQUETTE_TYPE, 1, 1);
|
||||||
}else{
|
}else{
|
||||||
$pdf = new PDF_card('L7163', 1, 1);
|
$pdf = new PDF_card('L7163', 1, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
$pdf->Open();
|
$pdf->Open();
|
||||||
@ -54,8 +51,8 @@ $pdf->AddPage();
|
|||||||
|
|
||||||
// Choix de l'annee d'impression ou annee courante.
|
// Choix de l'annee d'impression ou annee courante.
|
||||||
if (!isset($annee)){
|
if (!isset($annee)){
|
||||||
$now = getdate();
|
$now = getdate();
|
||||||
$annee=$now['year'];
|
$annee=$now['year'];
|
||||||
}
|
}
|
||||||
|
|
||||||
// requete en prenant que les adherents a jour de cotisation
|
// requete en prenant que les adherents a jour de cotisation
|
||||||
@ -71,18 +68,20 @@ $sql.= " ORDER BY d.rowid ASC";
|
|||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if ($result)
|
if ($result)
|
||||||
{
|
{
|
||||||
$num = $db->num_rows();
|
$num = $db->num_rows();
|
||||||
$i = 0;
|
$i = 0;
|
||||||
while ($i < $num)
|
while ($i < $num)
|
||||||
{
|
{
|
||||||
$objp = $db->fetch_object($result);
|
$objp = $db->fetch_object($result);
|
||||||
// imprime le texte specifique sur la carte
|
// imprime le texte specifique sur la carte
|
||||||
$pdf->Add_PDF_card(sprintf("%s\n%s\n%s %s\n%s", ucfirst(strtolower($objp->prenom))." ".strtoupper($objp->nom), ucwords(strtolower($objp->adresse)), $objp->cp, strtoupper($objp->ville), ucfirst(strtolower($objp->pays))),'','');
|
$pdf->Add_PDF_card(sprintf("%s\n%s\n%s %s\n%s", ucfirst(strtolower($objp->prenom))." ".strtoupper($objp->nom), ucwords(strtolower($objp->adresse)), $objp->cp, strtoupper($objp->ville), ucfirst(strtolower($objp->pays))),'','');
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
$db->close();
|
$db->close();
|
||||||
$pdf->Output();
|
|
||||||
|
// Output to http strem
|
||||||
|
$pdf->Output();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -169,6 +169,9 @@ if ($what == 'mysql')
|
|||||||
if ($compression == 'none') fclose($handle);
|
if ($compression == 'none') fclose($handle);
|
||||||
if ($compression == 'gz') gzclose($handle);
|
if ($compression == 'gz') gzclose($handle);
|
||||||
if ($compression == 'bz') bzclose($handle);
|
if ($compression == 'bz') bzclose($handle);
|
||||||
|
|
||||||
|
if (! empty($conf->global->MAIN_UMASK))
|
||||||
|
@chmod($outputfile, octdec($conf->global->MAIN_UMASK));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -110,7 +110,7 @@ class CommActionRapport
|
|||||||
$pdf=new FPDI_Protection('P','mm',$this->format);
|
$pdf=new FPDI_Protection('P','mm',$this->format);
|
||||||
$pdfrights = array('print'); // Ne permet que l'impression du document
|
$pdfrights = array('print'); // Ne permet que l'impression du document
|
||||||
$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
|
$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
|
||||||
$pdfownerpass = NULL; // Mot de passe du propriétire, crée aléatoirement si pas défini
|
$pdfownerpass = NULL; // Mot de passe du propri<EFBFBD>tire, cr<63>e al<61>atoirement si pas d<>fini
|
||||||
$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
|
$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -138,6 +138,8 @@ class CommActionRapport
|
|||||||
$pdf->Close();
|
$pdf->Close();
|
||||||
|
|
||||||
$pdf->Output($file);
|
$pdf->Output($file);
|
||||||
|
if (! empty($conf->global->MAIN_UMASK))
|
||||||
|
@chmod($file, octdec($conf->global->MAIN_UMASK));
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -94,8 +94,17 @@ if ($_POST["action"] == "builddoc" && $user->rights->facture->lire)
|
|||||||
// enregistre le fichier pdf concatene
|
// enregistre le fichier pdf concatene
|
||||||
$filename=sanitize_string(strtolower($langs->transnoentities("Unpayed")));
|
$filename=sanitize_string(strtolower($langs->transnoentities("Unpayed")));
|
||||||
if ($option=='late') $filename.='_'.sanitize_string(strtolower($langs->transnoentities("Late")));
|
if ($option=='late') $filename.='_'.sanitize_string(strtolower($langs->transnoentities("Late")));
|
||||||
if ($pagecount) $pdf->Output($diroutputpdf.'/'.$filename.'_'.dolibarr_print_date(mktime(),'dayhourlog').'.pdf');
|
if ($pagecount)
|
||||||
else $mesg='<div class="error">'.$langs->trans('NoPDFAvailableForChecked').'</div>';
|
{
|
||||||
|
$file=$diroutputpdf.'/'.$filename.'_'.dolibarr_print_date(mktime(),'dayhourlog').'.pdf';
|
||||||
|
$pdf->Output($file);
|
||||||
|
if (! empty($conf->global->MAIN_UMASK))
|
||||||
|
@chmod($file, octdec($conf->global->MAIN_UMASK));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$mesg='<div class="error">'.$langs->trans('NoPDFAvailableForChecked').'</div>';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -21,47 +21,47 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\file htdocs/compta/paiement/cheque/pdf/pdf_blochet.class.php
|
\file htdocs/compta/paiement/cheque/pdf/pdf_blochet.class.php
|
||||||
\ingroup banque
|
\ingroup banque
|
||||||
\brief Fichier de la classe permettant de générer les bordereau de remise de cheque
|
\brief Fichier de la classe permettant de g<EFBFBD>n<EFBFBD>rer les bordereau de remise de cheque
|
||||||
\version $Revision$
|
\version $Revision$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\class BordereauChequeBlochet
|
\class BordereauChequeBlochet
|
||||||
\brief Classe permettant de générer les bordereau de remise de cheque
|
\brief Classe permettant de g<EFBFBD>n<EFBFBD>rer les bordereau de remise de cheque
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class BordereauChequeBlochet
|
class BordereauChequeBlochet
|
||||||
{
|
{
|
||||||
var $emetteur; // Objet societe qui emet
|
var $emetteur; // Objet societe qui emet
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Constructeur
|
\brief Constructeur
|
||||||
*/
|
*/
|
||||||
function BordereauChequeBlochet($db)
|
function BordereauChequeBlochet($db)
|
||||||
{
|
{
|
||||||
global $conf,$langs,$mysoc;
|
global $conf,$langs,$mysoc;
|
||||||
|
|
||||||
$langs->load("main");
|
$langs->load("main");
|
||||||
$langs->load("bills");
|
$langs->load("bills");
|
||||||
|
|
||||||
$this->db = $db;
|
$this->db = $db;
|
||||||
$this->name = "blochet";
|
$this->name = "blochet";
|
||||||
$this->description = $langs->transnoentities("CheckReceipt");
|
$this->description = $langs->transnoentities("CheckReceipt");
|
||||||
|
|
||||||
$this->tab_top = 60;
|
$this->tab_top = 60;
|
||||||
|
|
||||||
// Dimension page pour format A4
|
// Dimension page pour format A4
|
||||||
$this->type = 'pdf';
|
$this->type = 'pdf';
|
||||||
$this->page_largeur = 210;
|
$this->page_largeur = 210;
|
||||||
$this->page_hauteur = 297;
|
$this->page_hauteur = 297;
|
||||||
$this->format = array($this->page_largeur,$this->page_hauteur);
|
$this->format = array($this->page_largeur,$this->page_hauteur);
|
||||||
$this->marge_gauche=10;
|
$this->marge_gauche=10;
|
||||||
$this->marge_droite=20;
|
$this->marge_droite=20;
|
||||||
$this->marge_haute=10;
|
$this->marge_haute=10;
|
||||||
$this->marge_basse=10;
|
$this->marge_basse=10;
|
||||||
|
|
||||||
$this->line_height = 5;
|
$this->line_height = 5;
|
||||||
$this->line_per_page = 25;
|
$this->line_per_page = 25;
|
||||||
@ -74,7 +74,7 @@ class BordereauChequeBlochet
|
|||||||
\param pdf pdf object
|
\param pdf pdf object
|
||||||
\param page current page number
|
\param page current page number
|
||||||
\param pages number of pages
|
\param pages number of pages
|
||||||
*/
|
*/
|
||||||
function Header(&$pdf, $page, $pages)
|
function Header(&$pdf, $page, $pages)
|
||||||
{
|
{
|
||||||
global $langs;
|
global $langs;
|
||||||
@ -120,7 +120,7 @@ class BordereauChequeBlochet
|
|||||||
$pdf->line(170, 47, 170, 54);
|
$pdf->line(170, 47, 170, 54);
|
||||||
|
|
||||||
$pdf->SetFont('Arial','',10);
|
$pdf->SetFont('Arial','',10);
|
||||||
$pdf->Text(10, 52, "Nombre de chèque");
|
$pdf->Text(10, 52, "Nombre de ch<EFBFBD>que");
|
||||||
|
|
||||||
$pdf->SetFont('Arial','B',10);
|
$pdf->SetFont('Arial','B',10);
|
||||||
$pdf->Text(57, 52, $this->nbcheque);
|
$pdf->Text(57, 52, $this->nbcheque);
|
||||||
@ -192,11 +192,11 @@ class BordereauChequeBlochet
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
\brief Fonction générant le rapport sur le disque
|
\brief Fonction g<EFBFBD>n<EFBFBD>rant le rapport sur le disque
|
||||||
\param _dir repertoire
|
\param _dir repertoire
|
||||||
\param month mois du rapport
|
\param month mois du rapport
|
||||||
\param year annee du rapport
|
\param year annee du rapport
|
||||||
*/
|
*/
|
||||||
function write_file($_dir, $number)
|
function write_file($_dir, $number)
|
||||||
{
|
{
|
||||||
global $langs;
|
global $langs;
|
||||||
@ -216,23 +216,23 @@ class BordereauChequeBlochet
|
|||||||
|
|
||||||
$month = sprintf("%02d",$month);
|
$month = sprintf("%02d",$month);
|
||||||
$year = sprintf("%04d",$year);
|
$year = sprintf("%04d",$year);
|
||||||
$_file = $dir . "bordereau-00".$number.".pdf"; //Todo: réparation provisoire, ajout de 2 zero
|
$_file = $dir . "bordereau-00".$number.".pdf"; //Todo: r<EFBFBD>paration provisoire, ajout de 2 zero
|
||||||
|
|
||||||
// Protection et encryption du pdf
|
// Protection et encryption du pdf
|
||||||
if ($conf->global->PDF_SECURITY_ENCRYPTION)
|
if ($conf->global->PDF_SECURITY_ENCRYPTION)
|
||||||
{
|
{
|
||||||
require_once(FPDFI_PATH.'fpdi_protection.php');
|
require_once(FPDFI_PATH.'fpdi_protection.php');
|
||||||
$pdf = new FPDI_Protection('P','mm','A4');
|
$pdf = new FPDI_Protection('P','mm','A4');
|
||||||
$pdfrights = array('print'); // Ne permet que l'impression du document
|
$pdfrights = array('print'); // Ne permet que l'impression du document
|
||||||
$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
|
$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
|
||||||
$pdfownerpass = NULL; // Mot de passe du propriétaire, créé aléatoirement si pas défini
|
$pdfownerpass = NULL; // Mot de passe du propri<72>taire, cr<63><72> al<61>atoirement si pas d<>fini
|
||||||
$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
|
$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
require_once(FPDFI_PATH.'fpdi.php');
|
require_once(FPDFI_PATH.'fpdi.php');
|
||||||
$pdf=new FPDI('P','mm',$this->format);
|
$pdf=new FPDI('P','mm',$this->format);
|
||||||
}
|
}
|
||||||
|
|
||||||
$pdf->Open();
|
$pdf->Open();
|
||||||
|
|
||||||
@ -246,7 +246,7 @@ class BordereauChequeBlochet
|
|||||||
|
|
||||||
if ($pages == 0)
|
if ($pages == 0)
|
||||||
{
|
{
|
||||||
// force à générer au moins une page si le rapport ne contient aucune ligne
|
// force to build at least one page if report has no lines
|
||||||
$pages = 1;
|
$pages = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -257,6 +257,8 @@ class BordereauChequeBlochet
|
|||||||
$this->Body($pdf, 1);
|
$this->Body($pdf, 1);
|
||||||
|
|
||||||
$pdf->Output($_file);
|
$pdf->Output($_file);
|
||||||
|
if (! empty($conf->global->MAIN_UMASK))
|
||||||
|
@chmod($file, octdec($conf->global->MAIN_UMASK));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -22,7 +22,7 @@
|
|||||||
/**
|
/**
|
||||||
\file htdocs/bon-prelevement.class.php
|
\file htdocs/bon-prelevement.class.php
|
||||||
\ingroup prelevement
|
\ingroup prelevement
|
||||||
\brief Fichier de la classe des bons de prélévements
|
\brief Fichier de la classe des bons de pr<EFBFBD>l<EFBFBD>vements
|
||||||
\version $Revision$
|
\version $Revision$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -129,7 +129,7 @@ class BonPrelevement
|
|||||||
if ($concat == 1)
|
if ($concat == 1)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* On aggrège les lignes
|
* On aggr<EFBFBD>ge les lignes
|
||||||
*/
|
*/
|
||||||
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."prelevement_lignes";
|
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."prelevement_lignes";
|
||||||
$sql .= " WHERE fk_prelevement_bons".$this->id;
|
$sql .= " WHERE fk_prelevement_bons".$this->id;
|
||||||
@ -150,7 +150,7 @@ class BonPrelevement
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Pas de d'agrégation
|
* Pas de d'agr<EFBFBD>gation
|
||||||
*/
|
*/
|
||||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."prelevement_lignes (fk_prelevement_bons";
|
$sql = "INSERT INTO ".MAIN_DB_PREFIX."prelevement_lignes (fk_prelevement_bons";
|
||||||
$sql .= " , fk_soc , client_nom ";
|
$sql .= " , fk_soc , client_nom ";
|
||||||
@ -237,7 +237,7 @@ class BonPrelevement
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
dolibarr_syslog("BonPrelevement::Fetch Erreur aucune ligne retournée");
|
dolibarr_syslog("BonPrelevement::Fetch Erreur aucune ligne retourn<EFBFBD>e");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -279,7 +279,7 @@ class BonPrelevement
|
|||||||
|
|
||||||
for ($i = 0 ; $i < sizeof($facs) ; $i++)
|
for ($i = 0 ; $i < sizeof($facs) ; $i++)
|
||||||
{
|
{
|
||||||
/* Tag la facture comme impayée */
|
/* Tag la facture comme impay<EFBFBD>e */
|
||||||
dolibarr_syslog("BonPrelevement::set_credite set_payed fac ".$facs[$i]);
|
dolibarr_syslog("BonPrelevement::set_credite set_payed fac ".$facs[$i]);
|
||||||
$fac = new Facture($this->db);
|
$fac = new Facture($this->db);
|
||||||
$fac->fetch($facs[$i]);
|
$fac->fetch($facs[$i]);
|
||||||
@ -302,7 +302,7 @@ class BonPrelevement
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Fin de la procédure
|
* Fin de la proc<EFBFBD>dure
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
if ($error == 0)
|
if ($error == 0)
|
||||||
@ -352,10 +352,10 @@ class BonPrelevement
|
|||||||
|
|
||||||
if ($this->db->query($sql))
|
if ($this->db->query($sql))
|
||||||
{
|
{
|
||||||
$subject = "Crédit prélèvement ".$this->ref." à la banque";
|
$subject = "Cr<EFBFBD>dit pr<70>l<EFBFBD>vement ".$this->ref." <20> la banque";
|
||||||
$message = "Le bon de prélèvement ".$this->ref;
|
$message = "Le bon de pr<EFBFBD>l<EFBFBD>vement ".$this->ref;
|
||||||
$message .= " a été crédité par la banque.\n";
|
$message .= " a <EFBFBD>t<EFBFBD> cr<63>dit<69> par la banque.\n";
|
||||||
$message .= "Date crédit : ".dolibarr_print_date($date,'dayhour');
|
$message .= "Date cr<EFBFBD>dit : ".dolibarr_print_date($date,'dayhour');
|
||||||
|
|
||||||
$this->Notify($user, "cr", $subject, $message);
|
$this->Notify($user, "cr", $subject, $message);
|
||||||
}
|
}
|
||||||
@ -366,7 +366,7 @@ class BonPrelevement
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Fin de la procédure
|
* Fin de la proc<EFBFBD>dure
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
if ($error == 0)
|
if ($error == 0)
|
||||||
@ -421,12 +421,12 @@ class BonPrelevement
|
|||||||
{
|
{
|
||||||
$this->method_trans = $method;
|
$this->method_trans = $method;
|
||||||
|
|
||||||
$subject = "Transmission du prélèvement ".$this->ref." à la banque";
|
$subject = "Transmission du pr<EFBFBD>l<EFBFBD>vement ".$this->ref." <20> la banque";
|
||||||
$message = "Le bon de prélèvement ".$this->ref;
|
$message = "Le bon de pr<EFBFBD>l<EFBFBD>vement ".$this->ref;
|
||||||
$message .= " a été transmis à la banque par ".$user->prenom. " ".$user->nom;
|
$message .= " a <EFBFBD>t<EFBFBD> transmis <20> la banque par ".$user->prenom. " ".$user->nom;
|
||||||
$message .= "\n\n";
|
$message .= "\n\n";
|
||||||
$message .= "\nMontant : ".price($this->amount);
|
$message .= "\nMontant : ".price($this->amount);
|
||||||
$message .= "\nMéthode : ".$this->methodes_trans[$this->method_trans];
|
$message .= "\nM<EFBFBD>thode : ".$this->methodes_trans[$this->method_trans];
|
||||||
$message .= "\nDate : ".dolibarr_print_date($date,'day');
|
$message .= "\nDate : ".dolibarr_print_date($date,'day');
|
||||||
|
|
||||||
$this->Notify($user,"tr", $subject, $message, 1);
|
$this->Notify($user,"tr", $subject, $message, 1);
|
||||||
@ -439,7 +439,7 @@ class BonPrelevement
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Fin de la procédure
|
* Fin de la proc<EFBFBD>dure
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
if ($error == 0)
|
if ($error == 0)
|
||||||
@ -470,7 +470,7 @@ class BonPrelevement
|
|||||||
function Notify($user, $action, $subject, $message, $joinfile=0)
|
function Notify($user, $action, $subject, $message, $joinfile=0)
|
||||||
{
|
{
|
||||||
$message .= "\n\n--\n";
|
$message .= "\n\n--\n";
|
||||||
$message .= "Ceci est un message automatique envoyé par Dolibarr";
|
$message .= "Ceci est un message automatique envoy<EFBFBD> par Dolibarr";
|
||||||
|
|
||||||
$sql = "SELECT u.name, u.firstname, u.email";
|
$sql = "SELECT u.name, u.firstname, u.email";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."user as u";
|
$sql .= " FROM ".MAIN_DB_PREFIX."user as u";
|
||||||
@ -516,15 +516,15 @@ class BonPrelevement
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Recupére la liste des factures concernées
|
* \brief Recup<EFBFBD>re la liste des factures concern<EFBFBD>es
|
||||||
*/
|
*/
|
||||||
function _get_list_factures()
|
function _get_list_factures()
|
||||||
{
|
{
|
||||||
$arr = array();
|
$arr = array();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Renvoie toutes les factures présente
|
* Renvoie toutes les factures pr<EFBFBD>sente
|
||||||
* dans un bon de prélèvement
|
* dans un bon de pr<EFBFBD>l<EFBFBD>vement
|
||||||
*/
|
*/
|
||||||
$sql = "SELECT fk_facture";
|
$sql = "SELECT fk_facture";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."prelevement_bons as p";
|
$sql .= " FROM ".MAIN_DB_PREFIX."prelevement_bons as p";
|
||||||
@ -595,7 +595,7 @@ class BonPrelevement
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Renvoi nombre de factures a prélever
|
* \brief Renvoi nombre de factures a pr<EFBFBD>lever
|
||||||
* \param banque bank
|
* \param banque bank
|
||||||
* \param agence agence
|
* \param agence agence
|
||||||
* \return int <O si erreur, sinon nbre de factures
|
* \return int <O si erreur, sinon nbre de factures
|
||||||
@ -645,7 +645,7 @@ class BonPrelevement
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Cree prelevement
|
* \brief Cree prelevement
|
||||||
* \return int <0 si ko, nbre de facture prélevé sinon
|
* \return int <0 si ko, nbre de facture pr<EFBFBD>lev<EFBFBD> sinon
|
||||||
*/
|
*/
|
||||||
function Create($banque=0, $guichet=0)
|
function Create($banque=0, $guichet=0)
|
||||||
{
|
{
|
||||||
@ -693,7 +693,7 @@ class BonPrelevement
|
|||||||
$sql .= " AND f.paye = 0";
|
$sql .= " AND f.paye = 0";
|
||||||
$sql .= " AND pfd.traite = 0";
|
$sql .= " AND pfd.traite = 0";
|
||||||
$sql .= " AND f.total_ttc > 0";
|
$sql .= " AND f.total_ttc > 0";
|
||||||
$sql .= " AND f.fk_mode_reglement = 3"; // Mode prélèvement
|
$sql .= " AND f.fk_mode_reglement = 3"; // Mode pr<EFBFBD>l<EFBFBD>vement
|
||||||
|
|
||||||
if ($banque == 1)
|
if ($banque == 1)
|
||||||
{
|
{
|
||||||
@ -718,7 +718,7 @@ class BonPrelevement
|
|||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
$this->db->free($resql);
|
$this->db->free($resql);
|
||||||
dolibarr_syslog("$i factures à prélever");
|
dolibarr_syslog("$i factures <EFBFBD> pr<70>lever");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -737,11 +737,11 @@ class BonPrelevement
|
|||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Vérification des RIB
|
* V<EFBFBD>rification des RIB
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
$i = 0;
|
$i = 0;
|
||||||
dolibarr_syslog("Début vérification des RIB");
|
dolibarr_syslog("D<EFBFBD>but v<>rification des RIB");
|
||||||
|
|
||||||
if (sizeof($factures) > 0)
|
if (sizeof($factures) > 0)
|
||||||
{
|
{
|
||||||
@ -769,7 +769,7 @@ class BonPrelevement
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
dolibarr_syslog("Impossible de lire la société");
|
dolibarr_syslog("Impossible de lire la soci<EFBFBD>t<EFBFBD>");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -790,7 +790,7 @@ class BonPrelevement
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
dolibarr_syslog(sizeof($factures_prev)." factures seront prélevées");
|
dolibarr_syslog(sizeof($factures_prev)." factures seront pr<EFBFBD>lev<EFBFBD>es");
|
||||||
|
|
||||||
if (sizeof($factures_prev) > 0)
|
if (sizeof($factures_prev) > 0)
|
||||||
{
|
{
|
||||||
@ -855,7 +855,7 @@ class BonPrelevement
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
dolibarr_syslog("Erreur création du bon de prelevement");
|
dolibarr_syslog("Erreur cr<EFBFBD>ation du bon de prelevement");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -865,7 +865,7 @@ class BonPrelevement
|
|||||||
*/
|
*/
|
||||||
if (!$error)
|
if (!$error)
|
||||||
{
|
{
|
||||||
dolibarr_syslog("Début génération des paiements");
|
dolibarr_syslog("D<EFBFBD>but g<>n<EFBFBD>ration des paiements");
|
||||||
dolibarr_syslog("Nombre de factures ".sizeof($factures_prev));
|
dolibarr_syslog("Nombre de factures ".sizeof($factures_prev));
|
||||||
|
|
||||||
if (sizeof($factures_prev) > 0)
|
if (sizeof($factures_prev) > 0)
|
||||||
@ -880,7 +880,7 @@ class BonPrelevement
|
|||||||
$pai->amounts = array();
|
$pai->amounts = array();
|
||||||
$pai->amounts[$fac[0]] = $fact->total_ttc;
|
$pai->amounts[$fac[0]] = $fact->total_ttc;
|
||||||
$pai->datepaye = $this->db->idate($datetimeprev);
|
$pai->datepaye = $this->db->idate($datetimeprev);
|
||||||
$pai->paiementid = 3; // prélèvement
|
$pai->paiementid = 3; // pr<EFBFBD>l<EFBFBD>vement
|
||||||
$pai->num_paiement = $ref;
|
$pai->num_paiement = $ref;
|
||||||
|
|
||||||
if ($pai->create($user, 1) == -1) // on appelle en no_commit
|
if ($pai->create($user, 1) == -1) // on appelle en no_commit
|
||||||
@ -896,7 +896,7 @@ class BonPrelevement
|
|||||||
$pai->valide();
|
$pai->valide();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Ajout d'une ligne de prélèvement
|
* Ajout d'une ligne de pr<EFBFBD>l<EFBFBD>vement
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* $fac[3] : banque
|
* $fac[3] : banque
|
||||||
@ -916,7 +916,7 @@ class BonPrelevement
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Mise à jour des demandes
|
* Mise <EFBFBD> jour des demandes
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
$sql = "UPDATE ".MAIN_DB_PREFIX."prelevement_facture_demande";
|
$sql = "UPDATE ".MAIN_DB_PREFIX."prelevement_facture_demande";
|
||||||
@ -976,7 +976,7 @@ class BonPrelevement
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Mise à jour du total
|
* Mise <EFBFBD> jour du total
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -988,7 +988,7 @@ class BonPrelevement
|
|||||||
if (! $resql)
|
if (! $resql)
|
||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
dolibarr_syslog("Erreur mise à jour du total - $sql");
|
dolibarr_syslog("Erreur mise <EFBFBD> jour du total - $sql");
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1086,11 +1086,13 @@ class BonPrelevement
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Génération d'un bon de prélèvement
|
* G<EFBFBD>n<EFBFBD>ration d'un bon de pr<EFBFBD>l<EFBFBD>vement
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
function Generate()
|
function Generate()
|
||||||
{
|
{
|
||||||
|
global $conf;
|
||||||
|
|
||||||
$result = -1;
|
$result = -1;
|
||||||
|
|
||||||
$this->file = fopen ($this->filename,"w");
|
$this->file = fopen ($this->filename,"w");
|
||||||
@ -1160,6 +1162,8 @@ class BonPrelevement
|
|||||||
$this->EnregTotal($this->total);
|
$this->EnregTotal($this->total);
|
||||||
|
|
||||||
fclose($this->file);
|
fclose($this->file);
|
||||||
|
if (! empty($conf->global->MAIN_UMASK))
|
||||||
|
@chmod($this->file, octdec($conf->global->MAIN_UMASK));
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
@ -1173,13 +1177,13 @@ class BonPrelevement
|
|||||||
function EnregDestinataire($rowid, $client_nom, $rib_banque, $rib_guichet, $rib_number, $amount)
|
function EnregDestinataire($rowid, $client_nom, $rib_banque, $rib_guichet, $rib_number, $amount)
|
||||||
{
|
{
|
||||||
fputs ($this->file, "06");
|
fputs ($this->file, "06");
|
||||||
fputs ($this->file, "08"); // Prélèvement ordinaire
|
fputs ($this->file, "08"); // Pr<EFBFBD>l<EFBFBD>vement ordinaire
|
||||||
|
|
||||||
fputs ($this->file, " "); // Zone Réservée B2
|
fputs ($this->file, " "); // Zone R<EFBFBD>serv<EFBFBD>e B2
|
||||||
|
|
||||||
fputs ($this->file, $this->numero_national_emetteur); // Numéro National d'emmetteur B3
|
fputs ($this->file, $this->numero_national_emetteur); // Num<EFBFBD>ro National d'emmetteur B3
|
||||||
|
|
||||||
// Date d'échéance C1
|
// Date d'<EFBFBD>ch<EFBFBD>ance C1
|
||||||
|
|
||||||
fputs ($this->file, " ");
|
fputs ($this->file, " ");
|
||||||
fputs ($this->file, strftime("%d%m", $this->date_echeance));
|
fputs ($this->file, strftime("%d%m", $this->date_echeance));
|
||||||
@ -1193,7 +1197,7 @@ class BonPrelevement
|
|||||||
|
|
||||||
fputs ($this->file, substr(" ",0,24));
|
fputs ($this->file, substr(" ",0,24));
|
||||||
|
|
||||||
// Zone Réservée D2
|
// Zone R<EFBFBD>serv<EFBFBD>e D2
|
||||||
|
|
||||||
fputs ($this->file, substr(" ",0,8));
|
fputs ($this->file, substr(" ",0,8));
|
||||||
|
|
||||||
@ -1211,16 +1215,16 @@ class BonPrelevement
|
|||||||
|
|
||||||
fputs ($this->file, substr("000000000000000".$montant, -16));
|
fputs ($this->file, substr("000000000000000".$montant, -16));
|
||||||
|
|
||||||
// Libellé F
|
// Libell<EFBFBD> F
|
||||||
|
|
||||||
fputs ($this->file, substr("*".$this->ref.$rowid." ",0,13));
|
fputs ($this->file, substr("*".$this->ref.$rowid." ",0,13));
|
||||||
fputs ($this->file, substr(" ",0,18));
|
fputs ($this->file, substr(" ",0,18));
|
||||||
|
|
||||||
// Code établissement G1
|
// Code <EFBFBD>tablissement G1
|
||||||
|
|
||||||
fputs ($this->file, $rib_banque);
|
fputs ($this->file, $rib_banque);
|
||||||
|
|
||||||
// Zone Réservée G2
|
// Zone R<EFBFBD>serv<EFBFBD>e G2
|
||||||
|
|
||||||
fputs ($this->file, substr(" ",0,5));
|
fputs ($this->file, substr(" ",0,5));
|
||||||
|
|
||||||
@ -1236,13 +1240,13 @@ class BonPrelevement
|
|||||||
function EnregDestinataireVersion1($fac)
|
function EnregDestinataireVersion1($fac)
|
||||||
{
|
{
|
||||||
fputs ($this->file, "06");
|
fputs ($this->file, "06");
|
||||||
fputs ($this->file, "08"); // Prélèvement ordinaire
|
fputs ($this->file, "08"); // Pr<EFBFBD>l<EFBFBD>vement ordinaire
|
||||||
|
|
||||||
fputs ($this->file, " "); // Zone Réservée B2
|
fputs ($this->file, " "); // Zone R<EFBFBD>serv<EFBFBD>e B2
|
||||||
|
|
||||||
fputs ($this->file, $this->numero_national_emetteur); // Numéro National d'emmetteur B3
|
fputs ($this->file, $this->numero_national_emetteur); // Num<EFBFBD>ro National d'emmetteur B3
|
||||||
|
|
||||||
// Date d'échéance C1
|
// Date d'<EFBFBD>ch<EFBFBD>ance C1
|
||||||
|
|
||||||
fputs ($this->file, " ");
|
fputs ($this->file, " ");
|
||||||
fputs ($this->file, strftime("%d%m", $this->date_echeance));
|
fputs ($this->file, strftime("%d%m", $this->date_echeance));
|
||||||
@ -1252,11 +1256,11 @@ class BonPrelevement
|
|||||||
|
|
||||||
fputs ($this->file, substr($fac->client->nom. " ",0,24));
|
fputs ($this->file, substr($fac->client->nom. " ",0,24));
|
||||||
|
|
||||||
// Reference de la remise créancier D1
|
// Reference de la remise cr<EFBFBD>ancier D1
|
||||||
|
|
||||||
fputs ($this->file, substr(" ",0,24));
|
fputs ($this->file, substr(" ",0,24));
|
||||||
|
|
||||||
// Zone Réservée D2
|
// Zone R<EFBFBD>serv<EFBFBD>e D2
|
||||||
|
|
||||||
fputs ($this->file, substr(" ",0,8));
|
fputs ($this->file, substr(" ",0,8));
|
||||||
|
|
||||||
@ -1274,16 +1278,16 @@ class BonPrelevement
|
|||||||
|
|
||||||
fputs ($this->file, substr("000000000000000".$montant, -16));
|
fputs ($this->file, substr("000000000000000".$montant, -16));
|
||||||
|
|
||||||
// Libellé F
|
// Libell<EFBFBD> F
|
||||||
|
|
||||||
fputs ($this->file, substr("*".$fac->ref." ",0,13));
|
fputs ($this->file, substr("*".$fac->ref." ",0,13));
|
||||||
fputs ($this->file, substr(" ",0,18));
|
fputs ($this->file, substr(" ",0,18));
|
||||||
|
|
||||||
// Code établissement G1
|
// Code <EFBFBD>tablissement G1
|
||||||
|
|
||||||
fputs ($this->file, $fac->client->bank_account->code_banque);
|
fputs ($this->file, $fac->client->bank_account->code_banque);
|
||||||
|
|
||||||
// Zone Réservée G2
|
// Zone R<EFBFBD>serv<EFBFBD>e G2
|
||||||
|
|
||||||
fputs ($this->file, substr(" ",0,5));
|
fputs ($this->file, substr(" ",0,5));
|
||||||
|
|
||||||
@ -1297,13 +1301,13 @@ class BonPrelevement
|
|||||||
function EnregEmetteur()
|
function EnregEmetteur()
|
||||||
{
|
{
|
||||||
fputs ($this->file, "03");
|
fputs ($this->file, "03");
|
||||||
fputs ($this->file, "08"); // Prélèvement ordinaire
|
fputs ($this->file, "08"); // Pr<EFBFBD>l<EFBFBD>vement ordinaire
|
||||||
|
|
||||||
fputs ($this->file, " "); // Zone Réservée B2
|
fputs ($this->file, " "); // Zone R<EFBFBD>serv<EFBFBD>e B2
|
||||||
|
|
||||||
fputs ($this->file, $this->numero_national_emetteur); // Numéro National d'emmetteur B3
|
fputs ($this->file, $this->numero_national_emetteur); // Num<EFBFBD>ro National d'emmetteur B3
|
||||||
|
|
||||||
// Date d'échéance C1
|
// Date d'<EFBFBD>ch<EFBFBD>ance C1
|
||||||
|
|
||||||
fputs ($this->file, " ");
|
fputs ($this->file, " ");
|
||||||
fputs ($this->file, strftime("%d%m", $this->date_echeance));
|
fputs ($this->file, strftime("%d%m", $this->date_echeance));
|
||||||
@ -1313,15 +1317,15 @@ class BonPrelevement
|
|||||||
|
|
||||||
fputs ($this->file, substr($this->raison_sociale. " ",0,24));
|
fputs ($this->file, substr($this->raison_sociale. " ",0,24));
|
||||||
|
|
||||||
// Reference de la remise créancier D1 sur 7 caractéres
|
// Reference de la remise cr<EFBFBD>ancier D1 sur 7 caract<63>res
|
||||||
|
|
||||||
fputs ($this->file, substr($this->reference_remise. " ",0,7));
|
fputs ($this->file, substr($this->reference_remise. " ",0,7));
|
||||||
|
|
||||||
// Zone Réservée D1-2
|
// Zone R<EFBFBD>serv<EFBFBD>e D1-2
|
||||||
|
|
||||||
fputs ($this->file, substr(" ",0,17));
|
fputs ($this->file, substr(" ",0,17));
|
||||||
|
|
||||||
// Zone Réservée D2
|
// Zone R<EFBFBD>serv<EFBFBD>e D2
|
||||||
|
|
||||||
fputs ($this->file, substr(" ",0,2));
|
fputs ($this->file, substr(" ",0,2));
|
||||||
fputs ($this->file, "E");
|
fputs ($this->file, "E");
|
||||||
@ -1335,19 +1339,19 @@ class BonPrelevement
|
|||||||
|
|
||||||
fputs ($this->file, substr("000000000000000".$this->emetteur_numero_compte, -11));
|
fputs ($this->file, substr("000000000000000".$this->emetteur_numero_compte, -11));
|
||||||
|
|
||||||
// Zone Réservée E
|
// Zone R<EFBFBD>serv<EFBFBD>e E
|
||||||
|
|
||||||
fputs ($this->file, substr(" ",0,16));
|
fputs ($this->file, substr(" ",0,16));
|
||||||
|
|
||||||
// Zone Réservée F
|
// Zone R<EFBFBD>serv<EFBFBD>e F
|
||||||
|
|
||||||
fputs ($this->file, substr(" ",0,31));
|
fputs ($this->file, substr(" ",0,31));
|
||||||
|
|
||||||
// Code établissement
|
// Code <EFBFBD>tablissement
|
||||||
|
|
||||||
fputs ($this->file, $this->emetteur_code_etablissement);
|
fputs ($this->file, $this->emetteur_code_etablissement);
|
||||||
|
|
||||||
// Zone Réservée G
|
// Zone R<EFBFBD>serv<EFBFBD>e G
|
||||||
|
|
||||||
fputs ($this->file, substr(" ",0,5));
|
fputs ($this->file, substr(" ",0,5));
|
||||||
|
|
||||||
@ -1362,13 +1366,13 @@ class BonPrelevement
|
|||||||
function EnregTotal($total)
|
function EnregTotal($total)
|
||||||
{
|
{
|
||||||
fputs ($this->file, "08");
|
fputs ($this->file, "08");
|
||||||
fputs ($this->file, "08"); // Prélèvement ordinaire
|
fputs ($this->file, "08"); // Pr<EFBFBD>l<EFBFBD>vement ordinaire
|
||||||
|
|
||||||
fputs ($this->file, " "); // Zone Réservée B2
|
fputs ($this->file, " "); // Zone R<EFBFBD>serv<EFBFBD>e B2
|
||||||
|
|
||||||
fputs ($this->file, $this->numero_national_emetteur); // Numéro National d'emmetteur B3
|
fputs ($this->file, $this->numero_national_emetteur); // Num<EFBFBD>ro National d'emmetteur B3
|
||||||
|
|
||||||
// Réservé C1
|
// R<EFBFBD>serv<EFBFBD> C1
|
||||||
|
|
||||||
fputs ($this->file, substr(" ",0,12));
|
fputs ($this->file, substr(" ",0,12));
|
||||||
|
|
||||||
@ -1381,7 +1385,7 @@ class BonPrelevement
|
|||||||
|
|
||||||
fputs ($this->file, substr(" ",0,24));
|
fputs ($this->file, substr(" ",0,24));
|
||||||
|
|
||||||
// Zone Réservée D2
|
// Zone R<EFBFBD>serv<EFBFBD>e D2
|
||||||
|
|
||||||
fputs ($this->file, substr(" ",0,8));
|
fputs ($this->file, substr(" ",0,8));
|
||||||
|
|
||||||
@ -1399,15 +1403,15 @@ class BonPrelevement
|
|||||||
|
|
||||||
fputs ($this->file, substr("000000000000000".$montant, -16));
|
fputs ($this->file, substr("000000000000000".$montant, -16));
|
||||||
|
|
||||||
// Zone Réservée F
|
// Zone R<EFBFBD>serv<EFBFBD>e F
|
||||||
|
|
||||||
fputs ($this->file, substr(" ",0,31));
|
fputs ($this->file, substr(" ",0,31));
|
||||||
|
|
||||||
// Code établissement
|
// Code <EFBFBD>tablissement
|
||||||
|
|
||||||
fputs ($this->file, substr(" ",0,5));
|
fputs ($this->file, substr(" ",0,5));
|
||||||
|
|
||||||
// Zone Réservée F
|
// Zone R<EFBFBD>serv<EFBFBD>e F
|
||||||
|
|
||||||
fputs ($this->file, substr(" ",0,5));
|
fputs ($this->file, substr(" ",0,5));
|
||||||
|
|
||||||
|
|||||||
@ -238,6 +238,7 @@ class Conf
|
|||||||
// Module adherent
|
// Module adherent
|
||||||
$this->adherent->enabled=defined("MAIN_MODULE_ADHERENT")?MAIN_MODULE_ADHERENT:0;
|
$this->adherent->enabled=defined("MAIN_MODULE_ADHERENT")?MAIN_MODULE_ADHERENT:0;
|
||||||
$this->adherent->dir_output=DOL_DATA_ROOT."/adherent";
|
$this->adherent->dir_output=DOL_DATA_ROOT."/adherent";
|
||||||
|
$this->adherent->dir_tmp=DOL_DATA_ROOT."/adherent/temp";
|
||||||
// Module produit
|
// Module produit
|
||||||
$this->produit->enabled=defined("MAIN_MODULE_PRODUIT")?MAIN_MODULE_PRODUIT:0;
|
$this->produit->enabled=defined("MAIN_MODULE_PRODUIT")?MAIN_MODULE_PRODUIT:0;
|
||||||
$this->produit->dir_output=DOL_DATA_ROOT."/produit";
|
$this->produit->dir_output=DOL_DATA_ROOT."/produit";
|
||||||
|
|||||||
@ -17,355 +17,358 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\file docs/class/courrier-droit-editeur.class.php
|
\file docs/class/courrier-droit-editeur.class.php
|
||||||
\ingroup editeurs
|
\ingroup editeurs
|
||||||
\brief Classe de generation des courriers pour les editeurs
|
\brief Classe de generation des courriers pour les editeurs
|
||||||
\version $Id$
|
\version $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require_once(DOL_DOCUMENT_ROOT.'/includes/fpdf/fpdfi/fpdi_protection.php');
|
require_once(DOL_DOCUMENT_ROOT.'/includes/fpdf/fpdfi/fpdi_protection.php');
|
||||||
|
|
||||||
|
|
||||||
class pdf_courrier_droit_editeur
|
class pdf_courrier_droit_editeur
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
\brief Constructeur
|
\brief Constructeur
|
||||||
\param db Handler accès base de donnée
|
\param db Handler acc<EFBFBD>s base de donn<EFBFBD>e
|
||||||
*/
|
*/
|
||||||
function pdf_courrier_droit_editeur ($db)
|
function pdf_courrier_droit_editeur ($db)
|
||||||
{
|
|
||||||
$this->langs = $langs;
|
|
||||||
|
|
||||||
$this->db = $db;
|
|
||||||
|
|
||||||
// Dimension page pour format A4
|
|
||||||
$this->type = 'pdf';
|
|
||||||
$this->page_largeur = 210;
|
|
||||||
$this->page_hauteur = 297;
|
|
||||||
$this->format = array($this->page_largeur,$this->page_hauteur);
|
|
||||||
$this->marge_gauche=10;
|
|
||||||
$this->marge_droite=10;
|
|
||||||
$this->marge_haute=10;
|
|
||||||
$this->marge_basse=10;
|
|
||||||
|
|
||||||
$this->name = "Courrier des droits ".strftime("%Y", time());
|
|
||||||
$this->file = '1'.strftime("%Y", time()).'.pdf';
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Génère le document
|
|
||||||
\return int 0 = ok, <> 0 = ko
|
|
||||||
*/
|
|
||||||
function Generate($numero)
|
|
||||||
{
|
|
||||||
global $conf;
|
|
||||||
|
|
||||||
$this->file = $numero.strftime("%Y", time());
|
|
||||||
$this->extension = "pdf";
|
|
||||||
|
|
||||||
dolibarr_syslog("pdf_courrier_droit_editeur::Generate ", LOG_DEBUG );
|
|
||||||
|
|
||||||
require_once(FPDF_PATH.'fpdf.php');
|
|
||||||
require_once(DOL_DOCUMENT_ROOT."/product.class.php");
|
|
||||||
require_once(DOL_DOCUMENT_ROOT."/product/canvas/product.livre.class.php");
|
|
||||||
$error = 0;
|
|
||||||
$year = strftime("%Y", time());
|
|
||||||
|
|
||||||
//
|
|
||||||
$sql = "SELECT s.rowid,s.nom";
|
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."societe as s";
|
|
||||||
//$sql .= " , ".MAIN_DB_PREFIX."categorie_fournisseur as cf";
|
|
||||||
$sql .= " WHERE s.fournisseur = 1 ";
|
|
||||||
//$sql .= " AND s.rowid = cf.fk_societe";
|
|
||||||
//$sql .= " AND cf.fk_categorie = 2";
|
|
||||||
|
|
||||||
$resql=$this->db->query($sql);
|
|
||||||
|
|
||||||
if ($resql)
|
|
||||||
{
|
|
||||||
$fichref = "Droits-$year";
|
|
||||||
$dir_all = DOL_DATA_ROOT."/ged/" . get_exdir($numero);
|
|
||||||
$file_all = $dir_all . $numero . ".pdf";
|
|
||||||
|
|
||||||
// Initialisation document vierge
|
|
||||||
$pdf_all=new FPDI_Protection('P','mm',$this->format);
|
|
||||||
|
|
||||||
// Protection et encryption du pdf
|
|
||||||
if ($conf->global->PDF_SECURITY_ENCRYPTION)
|
|
||||||
{
|
|
||||||
$pdfrights = array('print'); // Ne permet que l'impression du document
|
|
||||||
$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
|
|
||||||
$pdfownerpass = NULL; // Mot de passe du propriétaire, créé aléatoirement si pas défini
|
|
||||||
$pdf_all->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
|
|
||||||
}
|
|
||||||
|
|
||||||
$pdf_all->Open();
|
|
||||||
|
|
||||||
|
|
||||||
while ($obj = $this->db->fetch_object($resql) )
|
|
||||||
{
|
|
||||||
$id = $obj->rowid;
|
|
||||||
|
|
||||||
dolibarr_syslog("droits-editeurs.php id:$id", LOG_DEBUG );
|
|
||||||
|
|
||||||
$coupdf = new pdf_courrier_droit_editeur($this->db, $langs);
|
|
||||||
|
|
||||||
$fichref = "Droits-$year";
|
|
||||||
$dir = DOL_DATA_ROOT."/societe/courrier/" . get_exdir($id);
|
|
||||||
$file = $dir . $fichref . ".pdf";
|
|
||||||
|
|
||||||
// Initialisation document vierge
|
|
||||||
$pdf=new FPDI_Protection('P','mm',$this->format);
|
|
||||||
|
|
||||||
// Protection et encryption du pdf
|
|
||||||
if ($conf->global->PDF_SECURITY_ENCRYPTION)
|
|
||||||
{
|
|
||||||
$pdfrights = array('print'); // Ne permet que l'impression du document
|
|
||||||
$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
|
|
||||||
$pdfownerpass = NULL; // Mot de passe du propriétaire, créé aléatoirement si pas défini
|
|
||||||
$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
|
|
||||||
}
|
|
||||||
|
|
||||||
$pdf->Open();
|
|
||||||
|
|
||||||
$coupdf->Write($id, $dir, $year, $pdf);
|
|
||||||
$coupdf->Write($id, $dir_all, $year, $pdf_all);
|
|
||||||
|
|
||||||
$pdf->Close();
|
|
||||||
$pdf->Output($file);
|
|
||||||
dolibarr_syslog("droits-editeurs.php write $file", LOG_DEBUG );
|
|
||||||
}
|
|
||||||
|
|
||||||
$pdf_all->Close();
|
|
||||||
$pdf_all->Output($file_all);
|
|
||||||
dolibarr_syslog("droits-editeurs.php write $fileall", LOG_DEBUG );
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dolibarr_syslog("pdf_courrier_droit_editeur::Generate ".$db->error(), LOG_ERR );
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Fonction générant le fichier
|
|
||||||
\param id id de la societe
|
|
||||||
\return int 1=ok, 0=ko
|
|
||||||
*/
|
|
||||||
function Write($id, $dir, $year, &$pdf)
|
|
||||||
{
|
|
||||||
dolibarr_syslog("pdf_courrier_droit_editeur::Write $id,$year ", LOG_DEBUG );
|
|
||||||
$soc = new Societe($this->db);
|
|
||||||
$soc->fetch($id);
|
|
||||||
|
|
||||||
if (! file_exists($dir))
|
|
||||||
{
|
|
||||||
if (create_exdir($dir) < 0)
|
|
||||||
{
|
|
||||||
$this->error=$this->langs->trans("ErrorCanNotCreateDir",$dir);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (file_exists($dir))
|
|
||||||
{
|
|
||||||
// Initialisation document vierge
|
|
||||||
|
|
||||||
|
|
||||||
$books = array();
|
|
||||||
$year_data = $year - 1;
|
|
||||||
|
|
||||||
// On récupère données du mail
|
|
||||||
$sql = "SELECT p.rowid,p.label, pc.taux, pc.quantite";
|
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."facture as f";
|
|
||||||
$sql .= " , ".MAIN_DB_PREFIX."facturedet as fd";
|
|
||||||
$sql .= " , ".MAIN_DB_PREFIX."product as p";
|
|
||||||
$sql .= " , ".MAIN_DB_PREFIX."product_cnv_livre as pl";
|
|
||||||
$sql .= " , ".MAIN_DB_PREFIX."product_cnv_livre_contrat as pc";
|
|
||||||
|
|
||||||
$sql .= " WHERE fd.fk_facture = f.rowid";
|
|
||||||
$sql .= " AND fd.fk_product = p.rowid";
|
|
||||||
$sql .= " AND p.canvas = 'livre'";
|
|
||||||
$sql .= " AND p.rowid = pl.rowid";
|
|
||||||
$sql .= " AND pl.fk_contrat = pc.rowid";
|
|
||||||
$sql .= " AND year (f.datef) <= ".($year_data);
|
|
||||||
$sql .= " GROUP BY p.rowid";
|
|
||||||
|
|
||||||
$resql=$this->db->query($sql);
|
|
||||||
if ($resql)
|
|
||||||
{
|
|
||||||
$i = 0;
|
|
||||||
while ($obj = $this->db->fetch_object($resql) )
|
|
||||||
{
|
|
||||||
$books[$i]['title'] = $obj->label;
|
|
||||||
$books[$i]['id'] = $obj->rowid;
|
|
||||||
$books[$i]['taux'] = $obj->taux;
|
|
||||||
$books[$i]['qty'] = $obj->quantite;
|
|
||||||
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
$this->db->free($resql);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
print $this->db->error();
|
|
||||||
print "$sql\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach($books as $ref => $value)
|
|
||||||
{
|
{
|
||||||
$livre = new ProductLivre($this->db);
|
$this->langs = $langs;
|
||||||
$livre->FetchCanvas($value['id']);
|
|
||||||
|
|
||||||
$pdf->AddPage();
|
$this->db = $db;
|
||||||
$qtycontrat = $value['qty'];
|
|
||||||
/*
|
|
||||||
* Adresse
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
// Client destinataire
|
|
||||||
$posy=42;
|
|
||||||
$pdf->SetTextColor(0,0,0);
|
|
||||||
$pdf->SetFont('Arial','',8);
|
|
||||||
$pdf->SetXY(102,$posy-5);
|
|
||||||
|
|
||||||
// Nom client
|
|
||||||
$pdf->SetXY(102,$posy+3);
|
|
||||||
$pdf->SetFont('Arial','B',11);
|
|
||||||
$pdf->MultiCell(106,4, $soc->nom, 0, 'L');
|
|
||||||
|
|
||||||
// Caractéristiques client
|
|
||||||
$carac_client=$soc->adresse;
|
|
||||||
$carac_client.="\n".$soc->cp . " " . $soc->ville."\n";
|
|
||||||
$carac_client.=$soc->pays."\n";
|
|
||||||
|
|
||||||
$pdf->SetFont('Arial','',9);
|
|
||||||
$pdf->SetXY(102,$posy+8);
|
|
||||||
$pdf->MultiCell(86,4, $carac_client);
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
$pdf->SetTextColor(0,0,0);
|
|
||||||
$pdf->SetFont('Arial','',10);
|
|
||||||
|
|
||||||
$pdf->SetXY(10,100);
|
|
||||||
|
|
||||||
$pdf->MultiCell(190,5,"Je vous prie de trouver ci-dessous le récapitulatif des ventes du titre cité pour la période du 1er janvier au 31 décembre $year_data.");
|
|
||||||
|
|
||||||
$pdf->SetXY(10,120);
|
|
||||||
$pdf->MultiCell(25,5,"Nom du titre : ");
|
|
||||||
$pdf->SetFont('Arial','B',10);
|
|
||||||
$pdf->SetXY(35,120);
|
|
||||||
$pdf->MultiCell(140,5,$value['title']);
|
|
||||||
|
|
||||||
$pdf->SetFont('Arial','',10);
|
|
||||||
$pdf->SetXY(10,140);
|
|
||||||
$pdf->MultiCell(46,5,"Quantité signée au contrat : ");
|
|
||||||
|
|
||||||
$pdf->SetFont('Arial','B',10);
|
|
||||||
$pdf->SetXY(56,140);
|
|
||||||
$pdf->MultiCell(14,5,$qtycontrat,0,'R');
|
|
||||||
|
|
||||||
$sql = "SELECT p.label, sum(fd.qty), date_format(f.datef,'%Y')";
|
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."facture as f";
|
|
||||||
$sql .= " , ".MAIN_DB_PREFIX."facturedet as fd";
|
|
||||||
$sql .= " , ".MAIN_DB_PREFIX."product as p";
|
|
||||||
$sql .= " WHERE fd.fk_facture = f.rowid";
|
|
||||||
$sql .= " AND p.rowid = '".$value['id']."'";
|
|
||||||
$sql .= " AND fd.fk_product = p.rowid";
|
|
||||||
$sql .= " AND p.canvas = 'livre'";
|
|
||||||
$sql .= " GROUP BY p.rowid, date_format(f.datef,'%Y') ORDER BY date_format(f.datef,'%Y') ASC";
|
|
||||||
|
|
||||||
$resql=$this->db->query($sql);
|
|
||||||
|
|
||||||
$qtysell = 0;
|
|
||||||
|
|
||||||
if ($resql)
|
|
||||||
{
|
|
||||||
$i = 0;
|
|
||||||
while ($row = $this->db->fetch_row($resql) )
|
|
||||||
{
|
|
||||||
$i++;
|
|
||||||
|
|
||||||
$pdf->SetFont('Arial','',10);
|
|
||||||
$pdf->SetXY(10,140 + ($i * 8) );
|
|
||||||
$pdf->MultiCell(44,5,"Quantité vendue en ".$row[2]." : ",0);
|
|
||||||
$pdf->SetFont('Arial','B',10);
|
|
||||||
$pdf->SetXY(54,140 + ($i * 8) );
|
|
||||||
$pdf->MultiCell(16,5,$row[1],0,'R');
|
|
||||||
|
|
||||||
$qtysell += $row[1];
|
|
||||||
|
|
||||||
}
|
|
||||||
$this->db->free($resql);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
print $this->db->error();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$pdf->SetFont('Arial','',10);
|
|
||||||
$pdf->SetXY(100,140 + ($i * 8) );
|
|
||||||
$pdf->MultiCell(15,5,"Solde : ",0);
|
|
||||||
$pdf->SetFont('Arial','B',10);
|
|
||||||
$pdf->SetXY(115,140 + ($i * 8) );
|
|
||||||
$pdf->MultiCell(16,5,($qtycontrat - $qtysell),0,'R');
|
|
||||||
|
|
||||||
$i++;
|
|
||||||
$pdf->SetFont('Arial','',10);
|
|
||||||
$pdf->SetXY(10,140 + ($i * 10) );
|
|
||||||
$pdf->MultiCell(50,5,"Taux des droits d'auteurs : ",0);
|
|
||||||
$pdf->SetFont('Arial','B',10);
|
|
||||||
$pdf->SetXY(60,140 + ($i * 10) );
|
|
||||||
$pdf->MultiCell(16,5, $value['taux']." %",0,'R');
|
|
||||||
|
|
||||||
$i++;
|
|
||||||
$pdf->SetFont('Arial','',10);
|
|
||||||
$pdf->SetXY(10,140 + ($i * 10) );
|
|
||||||
$pdf->MultiCell(50,5,"Prix de vente des livres HT : ",0);
|
|
||||||
$pdf->SetFont('Arial','B',10);
|
|
||||||
$pdf->SetXY(60,140 + ($i * 10) );
|
|
||||||
$pdf->MultiCell(16,5, sprintf("%.2f",$livre->price),0,'R');
|
|
||||||
|
|
||||||
$i++;
|
|
||||||
$pdf->SetFont('Arial','',10);
|
|
||||||
$pdf->SetXY(10,140 + ($i * 10) );
|
|
||||||
$pdf->MultiCell(50,5,"Prix de vente des livres TTC : ",0);
|
|
||||||
$pdf->SetFont('Arial','B',10);
|
|
||||||
$pdf->SetXY(60,140 + ($i * 10) );
|
|
||||||
$pdf->MultiCell(16,5, sprintf("%.2f",$livre->price_ttc),0,'R');
|
|
||||||
|
|
||||||
$i++;
|
|
||||||
$pdf->SetFont('Arial','',10);
|
|
||||||
$pdf->SetXY(10,150 + ($i * 10) );
|
|
||||||
$pdf->MultiCell(80,5,"Reste à devoir sur les droits pour l'année ".($year-1)." : ",0);
|
|
||||||
$pdf->SetFont('Arial','B',10);
|
|
||||||
$pdf->SetXY(90,140 + ($i * 10) );
|
|
||||||
$pdf->MultiCell(16,5, $pu_ttc,0,'R');
|
|
||||||
|
|
||||||
$i++;
|
|
||||||
$pdf->SetFont('Arial','',10);
|
|
||||||
$pdf->SetXY(10,150 + ($i * 10) + 20);
|
|
||||||
$pdf->MultiCell(190,5,"Nous restons à votre entière disposition pour de plus amples renseignements dont vous pouvez avoir besoin et vous remercions de la confiance que vous nous avez accordée.");
|
|
||||||
|
|
||||||
|
// Dimension page pour format A4
|
||||||
|
$this->type = 'pdf';
|
||||||
|
$this->page_largeur = 210;
|
||||||
|
$this->page_hauteur = 297;
|
||||||
|
$this->format = array($this->page_largeur,$this->page_hauteur);
|
||||||
|
$this->marge_gauche=10;
|
||||||
|
$this->marge_droite=10;
|
||||||
|
$this->marge_haute=10;
|
||||||
|
$this->marge_basse=10;
|
||||||
|
|
||||||
|
$this->name = "Courrier des droits ".strftime("%Y", time());
|
||||||
|
$this->file = '1'.strftime("%Y", time()).'.pdf';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
\brief G<EFBFBD>n<EFBFBD>re le document
|
||||||
|
\return int 0 = ok, <> 0 = ko
|
||||||
|
*/
|
||||||
|
function Generate($numero)
|
||||||
|
{
|
||||||
|
global $conf;
|
||||||
|
|
||||||
|
$this->file = $numero.strftime("%Y", time());
|
||||||
|
$this->extension = "pdf";
|
||||||
|
|
||||||
|
dolibarr_syslog("pdf_courrier_droit_editeur::Generate ", LOG_DEBUG );
|
||||||
|
|
||||||
|
require_once(FPDF_PATH.'fpdf.php');
|
||||||
|
require_once(DOL_DOCUMENT_ROOT."/product.class.php");
|
||||||
|
require_once(DOL_DOCUMENT_ROOT."/product/canvas/product.livre.class.php");
|
||||||
|
$error = 0;
|
||||||
|
$year = strftime("%Y", time());
|
||||||
|
|
||||||
|
//
|
||||||
|
$sql = "SELECT s.rowid,s.nom";
|
||||||
|
$sql .= " FROM ".MAIN_DB_PREFIX."societe as s";
|
||||||
|
//$sql .= " , ".MAIN_DB_PREFIX."categorie_fournisseur as cf";
|
||||||
|
$sql .= " WHERE s.fournisseur = 1 ";
|
||||||
|
//$sql .= " AND s.rowid = cf.fk_societe";
|
||||||
|
//$sql .= " AND cf.fk_categorie = 2";
|
||||||
|
|
||||||
|
$resql=$this->db->query($sql);
|
||||||
|
|
||||||
|
if ($resql)
|
||||||
|
{
|
||||||
|
$fichref = "Droits-$year";
|
||||||
|
$dir_all = DOL_DATA_ROOT."/ged/" . get_exdir($numero);
|
||||||
|
$file_all = $dir_all . $numero . ".pdf";
|
||||||
|
|
||||||
|
// Initialisation document vierge
|
||||||
|
$pdf_all=new FPDI_Protection('P','mm',$this->format);
|
||||||
|
|
||||||
|
// Protection et encryption du pdf
|
||||||
|
if ($conf->global->PDF_SECURITY_ENCRYPTION)
|
||||||
|
{
|
||||||
|
$pdfrights = array('print'); // Ne permet que l'impression du document
|
||||||
|
$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
|
||||||
|
$pdfownerpass = NULL; // Mot de passe du propri<72>taire, cr<63><72> al<61>atoirement si pas d<>fini
|
||||||
|
$pdf_all->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
|
||||||
|
}
|
||||||
|
|
||||||
|
$pdf_all->Open();
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
while ($obj = $this->db->fetch_object($resql) )
|
||||||
}
|
{
|
||||||
else
|
$id = $obj->rowid;
|
||||||
{
|
|
||||||
$this->error=$this->langs->trans("ErrorCanNotCreateDir",$dir);
|
dolibarr_syslog("droits-editeurs.php id:$id", LOG_DEBUG );
|
||||||
return -6;
|
|
||||||
}
|
$coupdf = new pdf_courrier_droit_editeur($this->db, $langs);
|
||||||
}
|
|
||||||
|
$fichref = "Droits-$year";
|
||||||
|
$dir = DOL_DATA_ROOT."/societe/courrier/" . get_exdir($id);
|
||||||
|
$file = $dir . $fichref . ".pdf";
|
||||||
|
|
||||||
|
// Initialisation document vierge
|
||||||
|
$pdf=new FPDI_Protection('P','mm',$this->format);
|
||||||
|
|
||||||
|
// Protection et encryption du pdf
|
||||||
|
if ($conf->global->PDF_SECURITY_ENCRYPTION)
|
||||||
|
{
|
||||||
|
$pdfrights = array('print'); // Ne permet que l'impression du document
|
||||||
|
$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
|
||||||
|
$pdfownerpass = NULL; // Mot de passe du propri<72>taire, cr<63><72> al<61>atoirement si pas d<>fini
|
||||||
|
$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
|
||||||
|
}
|
||||||
|
|
||||||
|
$pdf->Open();
|
||||||
|
|
||||||
|
$coupdf->Write($id, $dir, $year, $pdf);
|
||||||
|
$coupdf->Write($id, $dir_all, $year, $pdf_all);
|
||||||
|
|
||||||
|
$pdf->Close();
|
||||||
|
$pdf->Output($file);
|
||||||
|
if (! empty($conf->global->MAIN_UMASK))
|
||||||
|
@chmod($file, octdec($conf->global->MAIN_UMASK));
|
||||||
|
|
||||||
|
dolibarr_syslog("droits-editeurs.php write $file", LOG_DEBUG );
|
||||||
|
}
|
||||||
|
|
||||||
|
$pdf_all->Close();
|
||||||
|
$pdf_all->Output($file_all);
|
||||||
|
dolibarr_syslog("droits-editeurs.php write $fileall", LOG_DEBUG );
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dolibarr_syslog("pdf_courrier_droit_editeur::Generate ".$db->error(), LOG_ERR );
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
\brief Fonction g<EFBFBD>n<EFBFBD>rant le fichier
|
||||||
|
\param id id de la societe
|
||||||
|
\return int 1=ok, 0=ko
|
||||||
|
*/
|
||||||
|
function Write($id, $dir, $year, &$pdf)
|
||||||
|
{
|
||||||
|
dolibarr_syslog("pdf_courrier_droit_editeur::Write $id,$year ", LOG_DEBUG );
|
||||||
|
$soc = new Societe($this->db);
|
||||||
|
$soc->fetch($id);
|
||||||
|
|
||||||
|
if (! file_exists($dir))
|
||||||
|
{
|
||||||
|
if (create_exdir($dir) < 0)
|
||||||
|
{
|
||||||
|
$this->error=$this->langs->trans("ErrorCanNotCreateDir",$dir);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (file_exists($dir))
|
||||||
|
{
|
||||||
|
// Initialisation document vierge
|
||||||
|
|
||||||
|
|
||||||
|
$books = array();
|
||||||
|
$year_data = $year - 1;
|
||||||
|
|
||||||
|
// On r<>cup<75>re donn<6E>es du mail
|
||||||
|
$sql = "SELECT p.rowid,p.label, pc.taux, pc.quantite";
|
||||||
|
$sql .= " FROM ".MAIN_DB_PREFIX."facture as f";
|
||||||
|
$sql .= " , ".MAIN_DB_PREFIX."facturedet as fd";
|
||||||
|
$sql .= " , ".MAIN_DB_PREFIX."product as p";
|
||||||
|
$sql .= " , ".MAIN_DB_PREFIX."product_cnv_livre as pl";
|
||||||
|
$sql .= " , ".MAIN_DB_PREFIX."product_cnv_livre_contrat as pc";
|
||||||
|
|
||||||
|
$sql .= " WHERE fd.fk_facture = f.rowid";
|
||||||
|
$sql .= " AND fd.fk_product = p.rowid";
|
||||||
|
$sql .= " AND p.canvas = 'livre'";
|
||||||
|
$sql .= " AND p.rowid = pl.rowid";
|
||||||
|
$sql .= " AND pl.fk_contrat = pc.rowid";
|
||||||
|
$sql .= " AND year (f.datef) <= ".($year_data);
|
||||||
|
$sql .= " GROUP BY p.rowid";
|
||||||
|
|
||||||
|
$resql=$this->db->query($sql);
|
||||||
|
if ($resql)
|
||||||
|
{
|
||||||
|
$i = 0;
|
||||||
|
while ($obj = $this->db->fetch_object($resql) )
|
||||||
|
{
|
||||||
|
$books[$i]['title'] = $obj->label;
|
||||||
|
$books[$i]['id'] = $obj->rowid;
|
||||||
|
$books[$i]['taux'] = $obj->taux;
|
||||||
|
$books[$i]['qty'] = $obj->quantite;
|
||||||
|
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
$this->db->free($resql);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print $this->db->error();
|
||||||
|
print "$sql\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach($books as $ref => $value)
|
||||||
|
{
|
||||||
|
$livre = new ProductLivre($this->db);
|
||||||
|
$livre->FetchCanvas($value['id']);
|
||||||
|
|
||||||
|
$pdf->AddPage();
|
||||||
|
$qtycontrat = $value['qty'];
|
||||||
|
/*
|
||||||
|
* Adresse
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
// Client destinataire
|
||||||
|
$posy=42;
|
||||||
|
$pdf->SetTextColor(0,0,0);
|
||||||
|
$pdf->SetFont('Arial','',8);
|
||||||
|
$pdf->SetXY(102,$posy-5);
|
||||||
|
|
||||||
|
// Nom client
|
||||||
|
$pdf->SetXY(102,$posy+3);
|
||||||
|
$pdf->SetFont('Arial','B',11);
|
||||||
|
$pdf->MultiCell(106,4, $soc->nom, 0, 'L');
|
||||||
|
|
||||||
|
// Caract<63>ristiques client
|
||||||
|
$carac_client=$soc->adresse;
|
||||||
|
$carac_client.="\n".$soc->cp . " " . $soc->ville."\n";
|
||||||
|
$carac_client.=$soc->pays."\n";
|
||||||
|
|
||||||
|
$pdf->SetFont('Arial','',9);
|
||||||
|
$pdf->SetXY(102,$posy+8);
|
||||||
|
$pdf->MultiCell(86,4, $carac_client);
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
$pdf->SetTextColor(0,0,0);
|
||||||
|
$pdf->SetFont('Arial','',10);
|
||||||
|
|
||||||
|
$pdf->SetXY(10,100);
|
||||||
|
|
||||||
|
$pdf->MultiCell(190,5,"Je vous prie de trouver ci-dessous le r<>capitulatif des ventes du titre cit<69> pour la p<>riode du 1er janvier au 31 d<>cembre $year_data.");
|
||||||
|
|
||||||
|
$pdf->SetXY(10,120);
|
||||||
|
$pdf->MultiCell(25,5,"Nom du titre : ");
|
||||||
|
$pdf->SetFont('Arial','B',10);
|
||||||
|
$pdf->SetXY(35,120);
|
||||||
|
$pdf->MultiCell(140,5,$value['title']);
|
||||||
|
|
||||||
|
$pdf->SetFont('Arial','',10);
|
||||||
|
$pdf->SetXY(10,140);
|
||||||
|
$pdf->MultiCell(46,5,"Quantit<EFBFBD> sign<67>e au contrat : ");
|
||||||
|
|
||||||
|
$pdf->SetFont('Arial','B',10);
|
||||||
|
$pdf->SetXY(56,140);
|
||||||
|
$pdf->MultiCell(14,5,$qtycontrat,0,'R');
|
||||||
|
|
||||||
|
$sql = "SELECT p.label, sum(fd.qty), date_format(f.datef,'%Y')";
|
||||||
|
$sql .= " FROM ".MAIN_DB_PREFIX."facture as f";
|
||||||
|
$sql .= " , ".MAIN_DB_PREFIX."facturedet as fd";
|
||||||
|
$sql .= " , ".MAIN_DB_PREFIX."product as p";
|
||||||
|
$sql .= " WHERE fd.fk_facture = f.rowid";
|
||||||
|
$sql .= " AND p.rowid = '".$value['id']."'";
|
||||||
|
$sql .= " AND fd.fk_product = p.rowid";
|
||||||
|
$sql .= " AND p.canvas = 'livre'";
|
||||||
|
$sql .= " GROUP BY p.rowid, date_format(f.datef,'%Y') ORDER BY date_format(f.datef,'%Y') ASC";
|
||||||
|
|
||||||
|
$resql=$this->db->query($sql);
|
||||||
|
|
||||||
|
$qtysell = 0;
|
||||||
|
|
||||||
|
if ($resql)
|
||||||
|
{
|
||||||
|
$i = 0;
|
||||||
|
while ($row = $this->db->fetch_row($resql) )
|
||||||
|
{
|
||||||
|
$i++;
|
||||||
|
|
||||||
|
$pdf->SetFont('Arial','',10);
|
||||||
|
$pdf->SetXY(10,140 + ($i * 8) );
|
||||||
|
$pdf->MultiCell(44,5,"Quantit<EFBFBD> vendue en ".$row[2]." : ",0);
|
||||||
|
$pdf->SetFont('Arial','B',10);
|
||||||
|
$pdf->SetXY(54,140 + ($i * 8) );
|
||||||
|
$pdf->MultiCell(16,5,$row[1],0,'R');
|
||||||
|
|
||||||
|
$qtysell += $row[1];
|
||||||
|
|
||||||
|
}
|
||||||
|
$this->db->free($resql);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print $this->db->error();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$pdf->SetFont('Arial','',10);
|
||||||
|
$pdf->SetXY(100,140 + ($i * 8) );
|
||||||
|
$pdf->MultiCell(15,5,"Solde : ",0);
|
||||||
|
$pdf->SetFont('Arial','B',10);
|
||||||
|
$pdf->SetXY(115,140 + ($i * 8) );
|
||||||
|
$pdf->MultiCell(16,5,($qtycontrat - $qtysell),0,'R');
|
||||||
|
|
||||||
|
$i++;
|
||||||
|
$pdf->SetFont('Arial','',10);
|
||||||
|
$pdf->SetXY(10,140 + ($i * 10) );
|
||||||
|
$pdf->MultiCell(50,5,"Taux des droits d'auteurs : ",0);
|
||||||
|
$pdf->SetFont('Arial','B',10);
|
||||||
|
$pdf->SetXY(60,140 + ($i * 10) );
|
||||||
|
$pdf->MultiCell(16,5, $value['taux']." %",0,'R');
|
||||||
|
|
||||||
|
$i++;
|
||||||
|
$pdf->SetFont('Arial','',10);
|
||||||
|
$pdf->SetXY(10,140 + ($i * 10) );
|
||||||
|
$pdf->MultiCell(50,5,"Prix de vente des livres HT : ",0);
|
||||||
|
$pdf->SetFont('Arial','B',10);
|
||||||
|
$pdf->SetXY(60,140 + ($i * 10) );
|
||||||
|
$pdf->MultiCell(16,5, sprintf("%.2f",$livre->price),0,'R');
|
||||||
|
|
||||||
|
$i++;
|
||||||
|
$pdf->SetFont('Arial','',10);
|
||||||
|
$pdf->SetXY(10,140 + ($i * 10) );
|
||||||
|
$pdf->MultiCell(50,5,"Prix de vente des livres TTC : ",0);
|
||||||
|
$pdf->SetFont('Arial','B',10);
|
||||||
|
$pdf->SetXY(60,140 + ($i * 10) );
|
||||||
|
$pdf->MultiCell(16,5, sprintf("%.2f",$livre->price_ttc),0,'R');
|
||||||
|
|
||||||
|
$i++;
|
||||||
|
$pdf->SetFont('Arial','',10);
|
||||||
|
$pdf->SetXY(10,150 + ($i * 10) );
|
||||||
|
$pdf->MultiCell(80,5,"Reste <20> devoir sur les droits pour l'ann<6E>e ".($year-1)." : ",0);
|
||||||
|
$pdf->SetFont('Arial','B',10);
|
||||||
|
$pdf->SetXY(90,140 + ($i * 10) );
|
||||||
|
$pdf->MultiCell(16,5, $pu_ttc,0,'R');
|
||||||
|
|
||||||
|
$i++;
|
||||||
|
$pdf->SetFont('Arial','',10);
|
||||||
|
$pdf->SetXY(10,150 + ($i * 10) + 20);
|
||||||
|
$pdf->MultiCell(190,5,"Nous restons <20> votre enti<74>re disposition pour de plus amples renseignements dont vous pouvez avoir besoin et vous remercions de la confiance que vous nous avez accord<72>e.");
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->error=$this->langs->trans("ErrorCanNotCreateDir",$dir);
|
||||||
|
return -6;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -22,286 +22,289 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\file htdocs/expedition/mods/methode_expedition.modules.php
|
\file htdocs/expedition/mods/methode_expedition.modules.php
|
||||||
\ingroup expedition
|
\ingroup expedition
|
||||||
\brief Fichier contenant la classe mère de generation de bon de livraison en PDF
|
\brief Fichier contenant la classe m<EFBFBD>re de generation de bon de livraison en PDF
|
||||||
et la classe mère de numérotation des bons de livraisons
|
et la classe m<EFBFBD>re de num<EFBFBD>rotation des bons de livraisons
|
||||||
\version $Revision$
|
\version $Revision$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require_once(DOL_DOCUMENT_ROOT.'/includes/fpdf/fpdfi/fpdi_protection.php');
|
require_once(DOL_DOCUMENT_ROOT.'/includes/fpdf/fpdfi/fpdi_protection.php');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\class methode_expedition
|
\class methode_expedition
|
||||||
\brief Classe mère des methodes expeditions
|
\brief Classe m<EFBFBD>re des methodes expeditions
|
||||||
*/
|
*/
|
||||||
class methode_expedition
|
class methode_expedition
|
||||||
{
|
{
|
||||||
|
|
||||||
function methode_expedition($db=0)
|
function methode_expedition($db=0)
|
||||||
{
|
{
|
||||||
$this->db = $db;
|
$this->db = $db;
|
||||||
$this->name = "NON DEFINIT";
|
$this->name = "NON DEFINIT";
|
||||||
$this->description = "ERREUR DANS LA DEFINITION DU MODULE.";
|
$this->description = "ERREUR DANS LA DEFINITION DU MODULE.";
|
||||||
}
|
}
|
||||||
|
|
||||||
function Active($statut)
|
function Active($statut)
|
||||||
{
|
{
|
||||||
// Mise a jour du statut
|
// Mise a jour du statut
|
||||||
$sql = "UPDATE ".MAIN_DB_PREFIX."expedition_methode set statut = $statut ";
|
$sql = "UPDATE ".MAIN_DB_PREFIX."expedition_methode set statut = $statut ";
|
||||||
$sql.= " WHERE rowid = ".$this->id;
|
$sql.= " WHERE rowid = ".$this->id;
|
||||||
|
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
|
|
||||||
if ($resql)
|
if ($resql)
|
||||||
{
|
{
|
||||||
$af = $this->db->affected_rows($resql);
|
$af = $this->db->affected_rows($resql);
|
||||||
|
|
||||||
if ($af == 0 && $statut == 1)
|
if ($af == 0 && $statut == 1)
|
||||||
{
|
{
|
||||||
// On créé la méthode dans la base
|
// On cr<63><72> la m<>thode dans la base
|
||||||
|
|
||||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."expedition_methode";
|
$sql = "INSERT INTO ".MAIN_DB_PREFIX."expedition_methode";
|
||||||
$sql .= " (rowid, statut, code, libelle, description)";
|
$sql .= " (rowid, statut, code, libelle, description)";
|
||||||
$sql .= " VALUES (".$this->id.",1,'$this->code','$this->name','$this->description')";
|
$sql .= " VALUES (".$this->id.",1,'$this->code','$this->name','$this->description')";
|
||||||
|
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
|
|
||||||
if (! $resql)
|
if (! $resql)
|
||||||
{
|
{
|
||||||
dolibarr_syslog("methode_expedition::Active Erreur 2");
|
dolibarr_syslog("methode_expedition::Active Erreur 2");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
dolibarr_syslog("methode_expedition::Active Erreur 1");
|
dolibarr_syslog("methode_expedition::Active Erreur 1");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function write_file($id)
|
function write_file($id)
|
||||||
{
|
{
|
||||||
global $user;
|
global $conf, $user;
|
||||||
$propale = new Propal($this->db,"",$id);
|
|
||||||
if ($propale->fetch($id))
|
$propale = new Propal($this->db,"",$id);
|
||||||
{
|
if ($propale->fetch($id))
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
$file = $dir . "/" . $propale->ref . ".pdf";
|
$file = $dir . "/" . $propale->ref . ".pdf";
|
||||||
|
|
||||||
if (file_exists($dir))
|
if (file_exists($dir))
|
||||||
{
|
{
|
||||||
// Protection et encryption du pdf
|
// Protection et encryption du pdf
|
||||||
if ($conf->global->PDF_SECURITY_ENCRYPTION)
|
if ($conf->global->PDF_SECURITY_ENCRYPTION)
|
||||||
{
|
{
|
||||||
$pdf=new FPDI_Protection('P','mm','A4');
|
$pdf=new FPDI_Protection('P','mm','A4');
|
||||||
$pdfrights = array('print'); // Ne permet que l'impression du document
|
$pdfrights = array('print'); // Ne permet que l'impression du document
|
||||||
$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
|
$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
|
||||||
$pdfownerpass = NULL; // Mot de passe du propriétaire, créé aléatoirement si pas défini
|
$pdfownerpass = NULL; // Mot de passe du propri<EFBFBD>taire, cr<63><72> al<61>atoirement si pas d<>fini
|
||||||
$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
|
$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$pdf=new FPDI('P','mm',$this->format);
|
$pdf=new FPDI('P','mm',$this->format);
|
||||||
}
|
}
|
||||||
|
|
||||||
$pdf->Open();
|
$pdf->Open();
|
||||||
$pdf->AddPage();
|
$pdf->AddPage();
|
||||||
|
|
||||||
$pdf->SetTitle($propale->ref);
|
$pdf->SetTitle($propale->ref);
|
||||||
$pdf->SetSubject("Proposition commerciale");
|
$pdf->SetSubject("Proposition commerciale");
|
||||||
$pdf->SetCreator("Dolibarr ".DOL_VERSION);
|
$pdf->SetCreator("Dolibarr ".DOL_VERSION);
|
||||||
$pdf->SetAuthor($user->fullname);
|
$pdf->SetAuthor($user->fullname);
|
||||||
|
|
||||||
$this->_pagehead($pdf, $propale);
|
$this->_pagehead($pdf, $propale);
|
||||||
|
|
||||||
$tab_top = 100;
|
$tab_top = 100;
|
||||||
$tab_height = 150;
|
$tab_height = 150;
|
||||||
|
|
||||||
$pdf->SetFillColor(220,220,220);
|
$pdf->SetFillColor(220,220,220);
|
||||||
|
|
||||||
$pdf->SetTextColor(0,0,0);
|
$pdf->SetTextColor(0,0,0);
|
||||||
$pdf->SetFont('Arial','', 10);
|
$pdf->SetFont('Arial','', 10);
|
||||||
|
|
||||||
$pdf->SetXY (10, $tab_top + 10 );
|
$pdf->SetXY (10, $tab_top + 10 );
|
||||||
|
|
||||||
$iniY = $pdf->GetY();
|
$iniY = $pdf->GetY();
|
||||||
$curY = $pdf->GetY();
|
$curY = $pdf->GetY();
|
||||||
$nexY = $pdf->GetY();
|
$nexY = $pdf->GetY();
|
||||||
$nblignes = sizeof($propale->lignes);
|
$nblignes = sizeof($propale->lignes);
|
||||||
|
|
||||||
for ($i = 0 ; $i < $nblignes ; $i++)
|
for ($i = 0 ; $i < $nblignes ; $i++)
|
||||||
{
|
{
|
||||||
|
|
||||||
$curY = $nexY;
|
$curY = $nexY;
|
||||||
|
|
||||||
$pdf->SetXY (30, $curY );
|
$pdf->SetXY (30, $curY );
|
||||||
|
|
||||||
$pdf->MultiCell(100, 5, $propale->lignes[$i]->desc, 0, 'J', 0);
|
$pdf->MultiCell(100, 5, $propale->lignes[$i]->desc, 0, 'J', 0);
|
||||||
|
|
||||||
$nexY = $pdf->GetY();
|
$nexY = $pdf->GetY();
|
||||||
|
|
||||||
$pdf->SetXY (10, $curY );
|
$pdf->SetXY (10, $curY );
|
||||||
|
|
||||||
$pdf->MultiCell(20, 5, $propale->lignes[$i]->ref, 0, 'C');
|
$pdf->MultiCell(20, 5, $propale->lignes[$i]->ref, 0, 'C');
|
||||||
|
|
||||||
$pdf->SetXY (133, $curY );
|
$pdf->SetXY (133, $curY );
|
||||||
$pdf->MultiCell(10, 5, $propale->lignes[$i]->tva_tx, 0, 'C');
|
$pdf->MultiCell(10, 5, $propale->lignes[$i]->tva_tx, 0, 'C');
|
||||||
|
|
||||||
$pdf->SetXY (145, $curY );
|
$pdf->SetXY (145, $curY );
|
||||||
$pdf->MultiCell(10, 5, $propale->lignes[$i]->qty, 0, 'C');
|
$pdf->MultiCell(10, 5, $propale->lignes[$i]->qty, 0, 'C');
|
||||||
|
|
||||||
$pdf->SetXY (156, $curY );
|
$pdf->SetXY (156, $curY );
|
||||||
$pdf->MultiCell(18, 5, price($propale->lignes[$i]->price), 0, 'R', 0);
|
$pdf->MultiCell(18, 5, price($propale->lignes[$i]->price), 0, 'R', 0);
|
||||||
|
|
||||||
$pdf->SetXY (174, $curY );
|
$pdf->SetXY (174, $curY );
|
||||||
$total = price($propale->lignes[$i]->price * $propale->lignes[$i]->qty);
|
$total = price($propale->lignes[$i]->price * $propale->lignes[$i]->qty);
|
||||||
$pdf->MultiCell(26, 5, $total, 0, 'R', 0);
|
$pdf->MultiCell(26, 5, $total, 0, 'R', 0);
|
||||||
|
|
||||||
$pdf->line(10, $curY, 200, $curY );
|
$pdf->line(10, $curY, 200, $curY );
|
||||||
|
|
||||||
if ($nexY > 240 && $i < $nblignes - 1)
|
if ($nexY > 240 && $i < $nblignes - 1)
|
||||||
{
|
{
|
||||||
$this->_tableau($pdf, $tab_top, $tab_height, $nexY);
|
$this->_tableau($pdf, $tab_top, $tab_height, $nexY);
|
||||||
$pdf->AddPage();
|
$pdf->AddPage();
|
||||||
$nexY = $iniY;
|
$nexY = $iniY;
|
||||||
$this->_pagehead($pdf, $propale);
|
$this->_pagehead($pdf, $propale);
|
||||||
$pdf->SetTextColor(0,0,0);
|
$pdf->SetTextColor(0,0,0);
|
||||||
$pdf->SetFont('Arial','', 10);
|
$pdf->SetFont('Arial','', 10);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->_tableau($pdf, $tab_top, $tab_height, $nexY);
|
$this->_tableau($pdf, $tab_top, $tab_height, $nexY);
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
$tab2_top = 254;
|
$tab2_top = 254;
|
||||||
$tab2_lh = 7;
|
$tab2_lh = 7;
|
||||||
$tab2_height = $tab2_lh * 3;
|
$tab2_height = $tab2_lh * 3;
|
||||||
|
|
||||||
$pdf->SetFont('Arial','', 11);
|
$pdf->SetFont('Arial','', 11);
|
||||||
|
|
||||||
$pdf->Rect(132, $tab2_top, 68, $tab2_height);
|
$pdf->Rect(132, $tab2_top, 68, $tab2_height);
|
||||||
|
|
||||||
$pdf->line(132, $tab2_top + $tab2_height - ($tab2_lh*3), 200, $tab2_top + $tab2_height - ($tab2_lh*3) );
|
$pdf->line(132, $tab2_top + $tab2_height - ($tab2_lh*3), 200, $tab2_top + $tab2_height - ($tab2_lh*3) );
|
||||||
$pdf->line(132, $tab2_top + $tab2_height - ($tab2_lh*2), 200, $tab2_top + $tab2_height - ($tab2_lh*2) );
|
$pdf->line(132, $tab2_top + $tab2_height - ($tab2_lh*2), 200, $tab2_top + $tab2_height - ($tab2_lh*2) );
|
||||||
$pdf->line(132, $tab2_top + $tab2_height - $tab2_lh, 200, $tab2_top + $tab2_height - $tab2_lh );
|
$pdf->line(132, $tab2_top + $tab2_height - $tab2_lh, 200, $tab2_top + $tab2_height - $tab2_lh );
|
||||||
|
|
||||||
$pdf->line(174, $tab2_top, 174, $tab2_top + $tab2_height);
|
$pdf->line(174, $tab2_top, 174, $tab2_top + $tab2_height);
|
||||||
|
|
||||||
$pdf->SetXY (132, $tab2_top + 0);
|
$pdf->SetXY (132, $tab2_top + 0);
|
||||||
$pdf->MultiCell(42, $tab2_lh, "Total HT", 0, 'R', 0);
|
$pdf->MultiCell(42, $tab2_lh, "Total HT", 0, 'R', 0);
|
||||||
|
|
||||||
$pdf->SetXY (132, $tab2_top + $tab2_lh);
|
$pdf->SetXY (132, $tab2_top + $tab2_lh);
|
||||||
$pdf->MultiCell(42, $tab2_lh, "Total TVA", 0, 'R', 0);
|
$pdf->MultiCell(42, $tab2_lh, "Total TVA", 0, 'R', 0);
|
||||||
|
|
||||||
$pdf->SetXY (132, $tab2_top + ($tab2_lh*2));
|
$pdf->SetXY (132, $tab2_top + ($tab2_lh*2));
|
||||||
$pdf->MultiCell(42, $tab2_lh, "Total TTC", 1, 'R', 1);
|
$pdf->MultiCell(42, $tab2_lh, "Total TTC", 1, 'R', 1);
|
||||||
|
|
||||||
$pdf->SetXY (174, $tab2_top + 0);
|
$pdf->SetXY (174, $tab2_top + 0);
|
||||||
$pdf->MultiCell(26, $tab2_lh, price($propale->total_ht), 0, 'R', 0);
|
$pdf->MultiCell(26, $tab2_lh, price($propale->total_ht), 0, 'R', 0);
|
||||||
|
|
||||||
$pdf->SetXY (174, $tab2_top + $tab2_lh);
|
$pdf->SetXY (174, $tab2_top + $tab2_lh);
|
||||||
$pdf->MultiCell(26, $tab2_lh, price($propale->total_tva), 0, 'R', 0);
|
$pdf->MultiCell(26, $tab2_lh, price($propale->total_tva), 0, 'R', 0);
|
||||||
|
|
||||||
$pdf->SetXY (174, $tab2_top + ($tab2_lh*2));
|
$pdf->SetXY (174, $tab2_top + ($tab2_lh*2));
|
||||||
$pdf->MultiCell(26, $tab2_lh, price($propale->total_ttc), 1, 'R', 1);
|
$pdf->MultiCell(26, $tab2_lh, price($propale->total_ttc), 1, 'R', 1);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$pdf->Output($file);
|
$pdf->Output($file);
|
||||||
|
if (! empty($conf->global->MAIN_UMASK))
|
||||||
|
@chmod($file, octdec($conf->global->MAIN_UMASK));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function _tableau(&$pdf, $tab_top, $tab_height, $nexY)
|
function _tableau(&$pdf, $tab_top, $tab_height, $nexY)
|
||||||
{
|
{
|
||||||
|
|
||||||
$pdf->SetFont('Arial','',11);
|
$pdf->SetFont('Arial','',11);
|
||||||
|
|
||||||
$pdf->Text(30,$tab_top + 5,'Désignation');
|
$pdf->Text(30,$tab_top + 5,'D<EFBFBD>signation');
|
||||||
|
|
||||||
$pdf->line(132, $tab_top, 132, $tab_top + $tab_height);
|
$pdf->line(132, $tab_top, 132, $tab_top + $tab_height);
|
||||||
$pdf->Text(134,$tab_top + 5,'TVA');
|
$pdf->Text(134,$tab_top + 5,'TVA');
|
||||||
|
|
||||||
$pdf->line(144, $tab_top, 144, $tab_top + $tab_height);
|
$pdf->line(144, $tab_top, 144, $tab_top + $tab_height);
|
||||||
$pdf->Text(147,$tab_top + 5,'Qté');
|
$pdf->Text(147,$tab_top + 5,'Qt<EFBFBD>');
|
||||||
|
|
||||||
$pdf->line(156, $tab_top, 156, $tab_top + $tab_height);
|
$pdf->line(156, $tab_top, 156, $tab_top + $tab_height);
|
||||||
$pdf->Text(160,$tab_top + 5,'P.U.');
|
$pdf->Text(160,$tab_top + 5,'P.U.');
|
||||||
|
|
||||||
$pdf->line(174, $tab_top, 174, $tab_top + $tab_height);
|
$pdf->line(174, $tab_top, 174, $tab_top + $tab_height);
|
||||||
$pdf->Text(187,$tab_top + 5,'Total');
|
$pdf->Text(187,$tab_top + 5,'Total');
|
||||||
|
|
||||||
// $pdf->Rect(10, $tab_top, 190, $nexY - $tab_top);
|
// $pdf->Rect(10, $tab_top, 190, $nexY - $tab_top);
|
||||||
$pdf->Rect(10, $tab_top, 190, $tab_height);
|
$pdf->Rect(10, $tab_top, 190, $tab_height);
|
||||||
|
|
||||||
|
|
||||||
$pdf->SetTextColor(0,0,0);
|
$pdf->SetTextColor(0,0,0);
|
||||||
$pdf->SetFont('Arial','',10);
|
$pdf->SetFont('Arial','',10);
|
||||||
$titre = $langs->trans("AmountInCurrency",$langs->trans("Currency".$conf->monnaie));
|
$titre = $langs->trans("AmountInCurrency",$langs->trans("Currency".$conf->monnaie));
|
||||||
$pdf->Text(200 - $pdf->GetStringWidth($titre), 98, $titre);
|
$pdf->Text(200 - $pdf->GetStringWidth($titre), 98, $titre);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function _pagehead(&$pdf, $propale)
|
function _pagehead(&$pdf, $propale)
|
||||||
{
|
{
|
||||||
$pdf->SetXY(10,5);
|
$pdf->SetXY(10,5);
|
||||||
if (defined("FAC_PDF_INTITULE"))
|
if (defined("FAC_PDF_INTITULE"))
|
||||||
{
|
{
|
||||||
$pdf->SetTextColor(0,0,200);
|
$pdf->SetTextColor(0,0,200);
|
||||||
$pdf->SetFont('Times','B',14);
|
$pdf->SetFont('Times','B',14);
|
||||||
$pdf->MultiCell(76, 8, FAC_PDF_INTITULE, 0, 'L');
|
$pdf->MultiCell(76, 8, FAC_PDF_INTITULE, 0, 'L');
|
||||||
}
|
}
|
||||||
|
|
||||||
$pdf->SetTextColor(70,70,170);
|
$pdf->SetTextColor(70,70,170);
|
||||||
if (defined("FAC_PDF_ADRESSE"))
|
if (defined("FAC_PDF_ADRESSE"))
|
||||||
{
|
{
|
||||||
$pdf->SetFont('Times','',12);
|
$pdf->SetFont('Times','',12);
|
||||||
$pdf->MultiCell(76, 5, FAC_PDF_ADRESSE);
|
$pdf->MultiCell(76, 5, FAC_PDF_ADRESSE);
|
||||||
}
|
}
|
||||||
if (defined("FAC_PDF_TEL"))
|
if (defined("FAC_PDF_TEL"))
|
||||||
{
|
{
|
||||||
$pdf->SetFont('Times','',10);
|
$pdf->SetFont('Times','',10);
|
||||||
$pdf->MultiCell(76, 5, "Tél : ".FAC_PDF_TEL);
|
$pdf->MultiCell(76, 5, "T<EFBFBD>l : ".FAC_PDF_TEL);
|
||||||
}
|
}
|
||||||
if (defined("FAC_PDF_SIREN"))
|
if (defined("FAC_PDF_SIREN"))
|
||||||
{
|
{
|
||||||
$pdf->SetFont('Times','',10);
|
$pdf->SetFont('Times','',10);
|
||||||
$pdf->MultiCell(76, 5, "SIREN : ".FAC_PDF_SIREN);
|
$pdf->MultiCell(76, 5, "SIREN : ".FAC_PDF_SIREN);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (defined("FAC_PDF_INTITULE2"))
|
if (defined("FAC_PDF_INTITULE2"))
|
||||||
{
|
{
|
||||||
$pdf->SetXY(100,5);
|
$pdf->SetXY(100,5);
|
||||||
$pdf->SetFont('Times','B',14);
|
$pdf->SetFont('Times','B',14);
|
||||||
$pdf->SetTextColor(0,0,200);
|
$pdf->SetTextColor(0,0,200);
|
||||||
$pdf->MultiCell(100, 10, FAC_PDF_INTITULE2, '' , 'R');
|
$pdf->MultiCell(100, 10, FAC_PDF_INTITULE2, '' , 'R');
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* Adresse Client
|
* Adresse Client
|
||||||
*/
|
*/
|
||||||
$pdf->SetTextColor(0,0,0);
|
$pdf->SetTextColor(0,0,0);
|
||||||
$pdf->SetFont('Courier','B',12);
|
$pdf->SetFont('Courier','B',12);
|
||||||
$propale->fetch_client();
|
$propale->fetch_client();
|
||||||
$pdf->SetXY(102,42);
|
$pdf->SetXY(102,42);
|
||||||
$pdf->MultiCell(96,5, $propale->client->nom);
|
$pdf->MultiCell(96,5, $propale->client->nom);
|
||||||
$pdf->SetFont('Courier','B',11);
|
$pdf->SetFont('Courier','B',11);
|
||||||
$pdf->SetXY(102,47);
|
$pdf->SetXY(102,47);
|
||||||
$pdf->MultiCell(96,5, $propale->client->adresse . "\n" . $propale->client->cp . " " . $propale->client->ville);
|
$pdf->MultiCell(96,5, $propale->client->adresse . "\n" . $propale->client->cp . " " . $propale->client->ville);
|
||||||
$pdf->rect(100, 40, 100, 40);
|
$pdf->rect(100, 40, 100, 40);
|
||||||
|
|
||||||
|
|
||||||
$pdf->SetTextColor(200,0,0);
|
$pdf->SetTextColor(200,0,0);
|
||||||
$pdf->SetFont('Courier','B',12);
|
$pdf->SetFont('Courier','B',12);
|
||||||
$pdf->Text(11, 88, "Date : " . dolibarr_print_date($propale->date,'day'));
|
$pdf->Text(11, 88, "Date : " . dolibarr_print_date($propale->date,'day'));
|
||||||
$pdf->Text(11, 94, "Proposition commerciale : ".$propale->ref);
|
$pdf->Text(11, 94, "Proposition commerciale : ".$propale->ref);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -22,7 +22,7 @@
|
|||||||
/**
|
/**
|
||||||
* \file htdocs/fourn/commande/modules/pdf_muscadet.modules.php
|
* \file htdocs/fourn/commande/modules/pdf_muscadet.modules.php
|
||||||
* \ingroup fournisseur
|
* \ingroup fournisseur
|
||||||
* \brief Fichier de la classe permettant de générer les commandes fournisseurs au modèle Muscadet
|
* \brief Fichier de la classe permettant de g<EFBFBD>n<EFBFBD>rer les commandes fournisseurs au mod<EFBFBD>le Muscadet
|
||||||
* \author Regis Houssin
|
* \author Regis Houssin
|
||||||
* \version $Id$
|
* \version $Id$
|
||||||
*/
|
*/
|
||||||
@ -35,14 +35,14 @@ require_once(DOL_DOCUMENT_ROOT."/lib/company.lib.php");
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* \class pdf_muscadet
|
* \class pdf_muscadet
|
||||||
* \brief Classe permettant de générer les commandes fournisseurs au modèle Muscadet
|
* \brief Classe permettant de g<EFBFBD>n<EFBFBD>rer les commandes fournisseurs au mod<EFBFBD>le Muscadet
|
||||||
*/
|
*/
|
||||||
class pdf_muscadet extends ModelePDFSuppliersOrders
|
class pdf_muscadet extends ModelePDFSuppliersOrders
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Constructeur
|
* \brief Constructeur
|
||||||
* \param db Handler accès base de donnée
|
* \param db Handler acc<EFBFBD>s base de donn<EFBFBD>e
|
||||||
*/
|
*/
|
||||||
function pdf_muscadet($db)
|
function pdf_muscadet($db)
|
||||||
{
|
{
|
||||||
@ -53,7 +53,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
|||||||
|
|
||||||
$this->db = $db;
|
$this->db = $db;
|
||||||
$this->name = "muscadet";
|
$this->name = "muscadet";
|
||||||
$this->description = "Modèle de commandes fournisseur complet (logo...)";
|
$this->description = "Mod<EFBFBD>le de commandes fournisseur complet (logo...)";
|
||||||
|
|
||||||
// Dimension page pour format A4
|
// Dimension page pour format A4
|
||||||
$this->type = 'pdf';
|
$this->type = 'pdf';
|
||||||
@ -67,8 +67,8 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
|||||||
|
|
||||||
$this->option_logo = 1; // Affiche logo
|
$this->option_logo = 1; // Affiche logo
|
||||||
$this->option_tva = 1; // Gere option tva FACTURE_TVAOPTION
|
$this->option_tva = 1; // Gere option tva FACTURE_TVAOPTION
|
||||||
$this->option_modereg = 1; // Affiche mode règlement
|
$this->option_modereg = 1; // Affiche mode r<EFBFBD>glement
|
||||||
$this->option_condreg = 1; // Affiche conditions règlement
|
$this->option_condreg = 1; // Affiche conditions r<EFBFBD>glement
|
||||||
$this->option_codeproduitservice = 1; // Affiche code produit-service
|
$this->option_codeproduitservice = 1; // Affiche code produit-service
|
||||||
$this->option_multilang = 1; // Dispo en plusieurs langues
|
$this->option_multilang = 1; // Dispo en plusieurs langues
|
||||||
|
|
||||||
@ -77,7 +77,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
|||||||
|
|
||||||
// Recupere emmetteur
|
// Recupere emmetteur
|
||||||
$this->emetteur=$mysoc;
|
$this->emetteur=$mysoc;
|
||||||
if (! $this->emetteur->pays_code) $this->emetteur->pays_code=substr($langs->defaultlang,-2); // Par defaut, si n'était pas défini
|
if (! $this->emetteur->pays_code) $this->emetteur->pays_code=substr($langs->defaultlang,-2); // Par defaut, si n'<EFBFBD>tait pas d<>fini
|
||||||
|
|
||||||
// Defini position des colonnes
|
// Defini position des colonnes
|
||||||
$this->posxdesc=$this->marge_gauche+1;
|
$this->posxdesc=$this->marge_gauche+1;
|
||||||
@ -93,8 +93,8 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Renvoi dernière erreur
|
\brief Renvoi derni<EFBFBD>re erreur
|
||||||
\return string Dernière erreur
|
\return string Derni<EFBFBD>re erreur
|
||||||
*/
|
*/
|
||||||
function pdferror()
|
function pdferror()
|
||||||
{
|
{
|
||||||
@ -102,8 +102,8 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Fonction générant la commande sur le disque
|
\brief Fonction g<EFBFBD>n<EFBFBD>rant la commande sur le disque
|
||||||
\param id Id de la commande à générer
|
\param id Id de la commande <EFBFBD> g<EFBFBD>n<EFBFBD>rer
|
||||||
\return int 1=ok, 0=ko
|
\return int 1=ok, 0=ko
|
||||||
*/
|
*/
|
||||||
function write_file($com,$outputlangs='')
|
function write_file($com,$outputlangs='')
|
||||||
@ -125,7 +125,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
|||||||
|
|
||||||
if ($conf->fournisseur->commande->dir_output)
|
if ($conf->fournisseur->commande->dir_output)
|
||||||
{
|
{
|
||||||
// Définition de l'objet $com (pour compatibilite ascendante)
|
// D<EFBFBD>finition de l'objet $com (pour compatibilite ascendante)
|
||||||
if (! is_object($com))
|
if (! is_object($com))
|
||||||
{
|
{
|
||||||
$id = $com;
|
$id = $com;
|
||||||
@ -134,7 +134,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
|||||||
}
|
}
|
||||||
$deja_regle = "";
|
$deja_regle = "";
|
||||||
|
|
||||||
// Définition de $dir et $file
|
// D<EFBFBD>finition de $dir et $file
|
||||||
if ($com->specimen)
|
if ($com->specimen)
|
||||||
{
|
{
|
||||||
$dir = $conf->fournisseur->commande->dir_output;
|
$dir = $conf->fournisseur->commande->dir_output;
|
||||||
@ -167,7 +167,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
|||||||
$pdf=new FPDI_Protection('P','mm',$this->format);
|
$pdf=new FPDI_Protection('P','mm',$this->format);
|
||||||
$pdfrights = array('print'); // Ne permet que l'impression du document
|
$pdfrights = array('print'); // Ne permet que l'impression du document
|
||||||
$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
|
$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
|
||||||
$pdfownerpass = NULL; // Mot de passe du propriétaire, créé aléatoirement si pas défini
|
$pdfownerpass = NULL; // Mot de passe du propri<EFBFBD>taire, cr<63><72> al<61>atoirement si pas d<>fini
|
||||||
$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
|
$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -210,7 +210,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
|||||||
{
|
{
|
||||||
$tab_top = 88;
|
$tab_top = 88;
|
||||||
|
|
||||||
$pdf->SetFont('Arial','', 9); // Dans boucle pour gérer multi-page
|
$pdf->SetFont('Arial','', 9); // Dans boucle pour g<EFBFBD>rer multi-page
|
||||||
$pdf->SetXY ($this->posxdesc-1, $tab_top);
|
$pdf->SetXY ($this->posxdesc-1, $tab_top);
|
||||||
$pdf->MultiCell(190, 3, $com->note_public, 0, 'J');
|
$pdf->MultiCell(190, 3, $com->note_public, 0, 'J');
|
||||||
$nexY = $pdf->GetY();
|
$nexY = $pdf->GetY();
|
||||||
@ -244,22 +244,22 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
|||||||
if ($libelleproduitservice) $libelleproduitservice.="<br>";
|
if ($libelleproduitservice) $libelleproduitservice.="<br>";
|
||||||
$libelleproduitservice.=dol_htmlentitiesbr($com->lignes[$i]->desc,1);
|
$libelleproduitservice.=dol_htmlentitiesbr($com->lignes[$i]->desc,1);
|
||||||
}
|
}
|
||||||
// Si ligne associée à un code produit
|
// Si ligne associ<EFBFBD>e <20> un code produit
|
||||||
if ($com->lignes[$i]->fk_product)
|
if ($com->lignes[$i]->fk_product)
|
||||||
{
|
{
|
||||||
$libelleproduitservice=$outputlangs->transnoentities("Product")." ".$com->lignes[$i]->ref_fourn." - ".$libelleproduitservice;
|
$libelleproduitservice=$outputlangs->transnoentities("Product")." ".$com->lignes[$i]->ref_fourn." - ".$libelleproduitservice;
|
||||||
}
|
}
|
||||||
if ($com->lignes[$i]->date_start && $com->lignes[$i]->date_end)
|
if ($com->lignes[$i]->date_start && $com->lignes[$i]->date_end)
|
||||||
{
|
{
|
||||||
// Affichage durée si il y en a une
|
// Affichage dur<EFBFBD>e si il y en a une
|
||||||
$libelleproduitservice.="<br>".dol_htmlentitiesbr("(".$outputlangs->transnoentities("From")." ".dolibarr_print_date($com->lignes[$i]->date_start)." ".$outputlangs->transnoentities("to")." ".dolibarr_print_date($com->lignes[$i]->date_end).")",1);
|
$libelleproduitservice.="<br>".dol_htmlentitiesbr("(".$outputlangs->transnoentities("From")." ".dolibarr_print_date($com->lignes[$i]->date_start)." ".$outputlangs->transnoentities("to")." ".dolibarr_print_date($com->lignes[$i]->date_end).")",1);
|
||||||
}
|
}
|
||||||
|
|
||||||
$pdf->SetFont('Arial','', 9); // Dans boucle pour gérer multi-page
|
$pdf->SetFont('Arial','', 9); // Dans boucle pour g<EFBFBD>rer multi-page
|
||||||
|
|
||||||
$pdf->writeHTMLCell(108, 4, $this->posxdesc-1, $curY, $libelleproduitservice, 0, 1);
|
$pdf->writeHTMLCell(108, 4, $this->posxdesc-1, $curY, $libelleproduitservice, 0, 1);
|
||||||
|
|
||||||
$pdf->SetFont('Arial','', 9); // On repositionne la police par défaut
|
$pdf->SetFont('Arial','', 9); // On repositionne la police par d<EFBFBD>faut
|
||||||
|
|
||||||
$nexY = $pdf->GetY();
|
$nexY = $pdf->GetY();
|
||||||
|
|
||||||
@ -271,7 +271,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
|||||||
$pdf->SetXY ($this->posxup, $curY);
|
$pdf->SetXY ($this->posxup, $curY);
|
||||||
$pdf->MultiCell(18, 4, price($com->lignes[$i]->subprice), 0, 'R', 0);
|
$pdf->MultiCell(18, 4, price($com->lignes[$i]->subprice), 0, 'R', 0);
|
||||||
|
|
||||||
// Quantité
|
// Quantit<EFBFBD>
|
||||||
$pdf->SetXY ($this->posxqty, $curY);
|
$pdf->SetXY ($this->posxqty, $curY);
|
||||||
$pdf->MultiCell(10, 4, $com->lignes[$i]->qty, 0, 'R');
|
$pdf->MultiCell(10, 4, $com->lignes[$i]->qty, 0, 'R');
|
||||||
|
|
||||||
@ -333,7 +333,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Mode de règlement
|
* Mode de r<EFBFBD>glement
|
||||||
*/
|
*/
|
||||||
if ((! defined("FACTURE_CHQ_NUMBER") || ! FACTURE_CHQ_NUMBER) && (! defined("FACTURE_RIB_NUMBER") || ! FACTURE_RIB_NUMBER))
|
if ((! defined("FACTURE_CHQ_NUMBER") || ! FACTURE_CHQ_NUMBER) && (! defined("FACTURE_RIB_NUMBER") || ! FACTURE_RIB_NUMBER))
|
||||||
{
|
{
|
||||||
@ -346,7 +346,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Propose mode règlement par CHQ
|
* Propose mode r<EFBFBD>glement par CHQ
|
||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
if (defined("FACTURE_CHQ_NUMBER"))
|
if (defined("FACTURE_CHQ_NUMBER"))
|
||||||
@ -358,7 +358,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
|||||||
|
|
||||||
$pdf->SetXY ($this->marge_gauche, 227);
|
$pdf->SetXY ($this->marge_gauche, 227);
|
||||||
$pdf->SetFont('Arial','B',8);
|
$pdf->SetFont('Arial','B',8);
|
||||||
$pdf->MultiCell(90, 3, "Règlement par chèque à l'ordre de ".$account->proprio." envoyé à:",0,'L',0);
|
$pdf->MultiCell(90, 3, "R<EFBFBD>glement par ch<63>que <20> l'ordre de ".$account->proprio." envoy<EFBFBD> <20>:",0,'L',0);
|
||||||
$pdf->SetXY ($this->marge_gauche, 231);
|
$pdf->SetXY ($this->marge_gauche, 231);
|
||||||
$pdf->SetFont('Arial','',8);
|
$pdf->SetFont('Arial','',8);
|
||||||
$pdf->MultiCell(80, 3, $account->adresse_proprio, 0, 'L', 0);
|
$pdf->MultiCell(80, 3, $account->adresse_proprio, 0, 'L', 0);
|
||||||
@ -367,7 +367,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Propose mode règlement par RIB
|
* Propose mode r<EFBFBD>glement par RIB
|
||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
if (defined("FACTURE_RIB_NUMBER"))
|
if (defined("FACTURE_RIB_NUMBER"))
|
||||||
@ -382,7 +382,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
|||||||
$cury=242;
|
$cury=242;
|
||||||
$pdf->SetXY ($this->marges['g'], $cury);
|
$pdf->SetXY ($this->marges['g'], $cury);
|
||||||
$pdf->SetFont('Arial','B',8);
|
$pdf->SetFont('Arial','B',8);
|
||||||
$pdf->MultiCell(90, 3, "Règlement par virement sur le compte bancaire suivant:", 0, 'L', 0);
|
$pdf->MultiCell(90, 3, "R<EFBFBD>glement par virement sur le compte bancaire suivant:", 0, 'L', 0);
|
||||||
$cury+=4;
|
$cury+=4;
|
||||||
$pdf->SetFont('Arial','B',6);
|
$pdf->SetFont('Arial','B',6);
|
||||||
$pdf->line($this->marges['g']+1, $cury, $this->marges['g']+1, $cury+10 );
|
$pdf->line($this->marges['g']+1, $cury, $this->marges['g']+1, $cury+10 );
|
||||||
@ -393,10 +393,10 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
|||||||
$pdf->MultiCell(18, 3, "Code guichet", 0, 'C', 0);
|
$pdf->MultiCell(18, 3, "Code guichet", 0, 'C', 0);
|
||||||
$pdf->line($this->marges['g']+36, $cury, $this->marges['g']+36, $cury+10 );
|
$pdf->line($this->marges['g']+36, $cury, $this->marges['g']+36, $cury+10 );
|
||||||
$pdf->SetXY ($this->marges['g']+36, $cury);
|
$pdf->SetXY ($this->marges['g']+36, $cury);
|
||||||
$pdf->MultiCell(24, 3, "Numéro compte", 0, 'C', 0);
|
$pdf->MultiCell(24, 3, "Num<EFBFBD>ro compte", 0, 'C', 0);
|
||||||
$pdf->line($this->marges['g']+60, $cury, $this->marges['g']+60, $cury+10 );
|
$pdf->line($this->marges['g']+60, $cury, $this->marges['g']+60, $cury+10 );
|
||||||
$pdf->SetXY ($this->marges['g']+60, $cury);
|
$pdf->SetXY ($this->marges['g']+60, $cury);
|
||||||
$pdf->MultiCell(13, 3, "Clé RIB", 0, 'C', 0);
|
$pdf->MultiCell(13, 3, "Cl<EFBFBD> RIB", 0, 'C', 0);
|
||||||
$pdf->line($this->marges['g']+73, $cury, $this->marges['g']+73, $cury+10 );
|
$pdf->line($this->marges['g']+73, $cury, $this->marges['g']+73, $cury+10 );
|
||||||
|
|
||||||
$pdf->SetFont('Arial','',8);
|
$pdf->SetFont('Arial','',8);
|
||||||
@ -421,13 +421,13 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Conditions de règlements
|
* Conditions de r<EFBFBD>glements
|
||||||
*/
|
*/
|
||||||
/* Pour l'instant les conditions de règlement ne sont pas gérées sur les propales */
|
/* Pour l'instant les conditions de r<EFBFBD>glement ne sont pas g<>r<EFBFBD>es sur les propales */
|
||||||
/*
|
/*
|
||||||
$pdf->SetFont('Arial','B',10);
|
$pdf->SetFont('Arial','B',10);
|
||||||
$pdf->SetXY($this->marge_gauche, 217);
|
$pdf->SetXY($this->marge_gauche, 217);
|
||||||
$titre = "Conditions de réglement:";
|
$titre = "Conditions de r<EFBFBD>glement:";
|
||||||
$pdf->MultiCell(80, 5, $titre, 0, 'L');
|
$pdf->MultiCell(80, 5, $titre, 0, 'L');
|
||||||
$pdf->SetFont('Arial','',10);
|
$pdf->SetFont('Arial','',10);
|
||||||
$pdf->SetXY(54, 217);
|
$pdf->SetXY(54, 217);
|
||||||
@ -443,6 +443,8 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
|||||||
$pdf->Close();
|
$pdf->Close();
|
||||||
|
|
||||||
$pdf->Output($file);
|
$pdf->Output($file);
|
||||||
|
if (! empty($conf->global->MAIN_UMASK))
|
||||||
|
@chmod($file, octdec($conf->global->MAIN_UMASK));
|
||||||
|
|
||||||
return 1; // Pas d'erreur
|
return 1; // Pas d'erreur
|
||||||
}
|
}
|
||||||
@ -462,7 +464,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Affiche le total à payer
|
* \brief Affiche le total <EFBFBD> payer
|
||||||
* \param pdf Objet PDF
|
* \param pdf Objet PDF
|
||||||
* \param object Objet order
|
* \param object Objet order
|
||||||
* \param deja_regle Montant deja regle
|
* \param deja_regle Montant deja regle
|
||||||
@ -503,7 +505,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
|||||||
$pdf->MultiCell($largcol2, $tab2_hl, "-".$object->remise_percent."%", 0, 'R', 1);
|
$pdf->MultiCell($largcol2, $tab2_hl, "-".$object->remise_percent."%", 0, 'R', 1);
|
||||||
|
|
||||||
$pdf->SetXY ($col1x, $tab2_top + $tab2_hl * 2);
|
$pdf->SetXY ($col1x, $tab2_top + $tab2_hl * 2);
|
||||||
$pdf->MultiCell($col2x-$col1x, $tab2_hl, "Total HT après remise", 0, 'L', 1);
|
$pdf->MultiCell($col2x-$col1x, $tab2_hl, "Total HT apr<EFBFBD>s remise", 0, 'L', 1);
|
||||||
|
|
||||||
$pdf->SetXY ($col2x, $tab2_top + $tab2_hl * 2);
|
$pdf->SetXY ($col2x, $tab2_top + $tab2_hl * 2);
|
||||||
$pdf->MultiCell($largcol2, $tab2_hl, price($object->total_ht), 0, 'R', 0);
|
$pdf->MultiCell($largcol2, $tab2_hl, price($object->total_ht), 0, 'R', 0);
|
||||||
@ -515,7 +517,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
|||||||
$index = 0;
|
$index = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Affichage des totaux de TVA par taux (conformément à réglementation)
|
// Affichage des totaux de TVA par taux (conform<EFBFBD>ment <20> r<>glementation)
|
||||||
$pdf->SetFillColor(248,248,248);
|
$pdf->SetFillColor(248,248,248);
|
||||||
|
|
||||||
foreach( $this->tva as $tvakey => $tvaval )
|
foreach( $this->tva as $tvakey => $tvaval )
|
||||||
@ -599,7 +601,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
|||||||
{
|
{
|
||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
// Montants exprimés en (en tab_top - 1)
|
// Montants exprim<EFBFBD>s en (en tab_top - 1)
|
||||||
$pdf->SetTextColor(0,0,0);
|
$pdf->SetTextColor(0,0,0);
|
||||||
$pdf->SetFont('Arial','',8);
|
$pdf->SetFont('Arial','',8);
|
||||||
$titre = $outputlangs->transnoentities("AmountInCurrency",$outputlangs->transnoentities("Currency".$conf->monnaie));
|
$titre = $outputlangs->transnoentities("AmountInCurrency",$outputlangs->transnoentities("Currency".$conf->monnaie));
|
||||||
@ -724,7 +726,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
|||||||
if (defined("FAC_PDF_SOCIETE_NOM") && FAC_PDF_SOCIETE_NOM) $pdf->MultiCell(80, 4, FAC_PDF_SOCIETE_NOM, 0, 'L');
|
if (defined("FAC_PDF_SOCIETE_NOM") && FAC_PDF_SOCIETE_NOM) $pdf->MultiCell(80, 4, FAC_PDF_SOCIETE_NOM, 0, 'L');
|
||||||
else $pdf->MultiCell(80, 4, $mysoc->nom, 0, 'L');
|
else $pdf->MultiCell(80, 4, $mysoc->nom, 0, 'L');
|
||||||
|
|
||||||
// Caractéristiques emetteur
|
// Caract<EFBFBD>ristiques emetteur
|
||||||
$carac_emetteur = '';
|
$carac_emetteur = '';
|
||||||
if (defined("FAC_PDF_ADRESSE") && FAC_PDF_ADRESSE) $carac_emetteur .= ($carac_emetteur ? "\n" : '' ).FAC_PDF_ADRESSE;
|
if (defined("FAC_PDF_ADRESSE") && FAC_PDF_ADRESSE) $carac_emetteur .= ($carac_emetteur ? "\n" : '' ).FAC_PDF_ADRESSE;
|
||||||
else {
|
else {
|
||||||
@ -769,7 +771,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
|||||||
$pdf->SetFont('Arial','B',11);
|
$pdf->SetFont('Arial','B',11);
|
||||||
$pdf->MultiCell(106,4, $object->client->nom, 0, 'L');
|
$pdf->MultiCell(106,4, $object->client->nom, 0, 'L');
|
||||||
|
|
||||||
// Caractéristiques client
|
// Caract<EFBFBD>ristiques client
|
||||||
$carac_client=$object->client->adresse;
|
$carac_client=$object->client->adresse;
|
||||||
$carac_client.="\n".$object->client->cp . " " . $object->client->ville."\n";
|
$carac_client.="\n".$object->client->cp . " " . $object->client->ville."\n";
|
||||||
if ($object->client->tva_intra) $carac_client.="\n".$outputlangs->transnoentities("VATIntraShort").': '.$object->client->tva_intra;
|
if ($object->client->tva_intra) $carac_client.="\n".$outputlangs->transnoentities("VATIntraShort").': '.$object->client->tva_intra;
|
||||||
|
|||||||
@ -270,6 +270,9 @@ class pdf_edison extends ModelePDFCommandes
|
|||||||
$pdf->Close();
|
$pdf->Close();
|
||||||
|
|
||||||
$pdf->Output($file);
|
$pdf->Output($file);
|
||||||
|
if (! empty($conf->global->MAIN_UMASK))
|
||||||
|
@chmod($file, octdec($conf->global->MAIN_UMASK));
|
||||||
|
|
||||||
$langs->setPhpLang(); // On restaure langue session
|
$langs->setPhpLang(); // On restaure langue session
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -22,7 +22,7 @@
|
|||||||
/**
|
/**
|
||||||
\file htdocs/includes/modules/commande/pdf_einstein.modules.php
|
\file htdocs/includes/modules/commande/pdf_einstein.modules.php
|
||||||
\ingroup commande
|
\ingroup commande
|
||||||
\brief Fichier de la classe permettant de générer les commandes au modèle Einstein
|
\brief Fichier de la classe permettant de g<EFBFBD>n<EFBFBD>rer les commandes au mod<EFBFBD>le Einstein
|
||||||
\author Laurent Destailleur
|
\author Laurent Destailleur
|
||||||
\version $Id$
|
\version $Id$
|
||||||
*/
|
*/
|
||||||
@ -34,7 +34,7 @@ require_once(DOL_DOCUMENT_ROOT."/lib/company.lib.php");
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
\class pdf_einstein
|
\class pdf_einstein
|
||||||
\brief Classe permettant de générer les commandes au modèle Einstein
|
\brief Classe permettant de g<EFBFBD>n<EFBFBD>rer les commandes au mod<EFBFBD>le Einstein
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class pdf_einstein extends ModelePDFCommandes
|
class pdf_einstein extends ModelePDFCommandes
|
||||||
@ -44,7 +44,7 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Constructeur
|
\brief Constructeur
|
||||||
\param db Handler accès base de donnée
|
\param db Handler acc<EFBFBD>s base de donn<EFBFBD>e
|
||||||
*/
|
*/
|
||||||
function pdf_einstein($db)
|
function pdf_einstein($db)
|
||||||
{
|
{
|
||||||
@ -69,12 +69,12 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
|
|
||||||
$this->option_logo = 1; // Affiche logo
|
$this->option_logo = 1; // Affiche logo
|
||||||
$this->option_tva = 1; // Gere option tva FACTURE_TVAOPTION
|
$this->option_tva = 1; // Gere option tva FACTURE_TVAOPTION
|
||||||
$this->option_modereg = 1; // Affiche mode règlement
|
$this->option_modereg = 1; // Affiche mode r<EFBFBD>glement
|
||||||
$this->option_condreg = 1; // Affiche conditions règlement
|
$this->option_condreg = 1; // Affiche conditions r<EFBFBD>glement
|
||||||
$this->option_codeproduitservice = 1; // Affiche code produit-service
|
$this->option_codeproduitservice = 1; // Affiche code produit-service
|
||||||
$this->option_multilang = 1; // Dispo en plusieurs langues
|
$this->option_multilang = 1; // Dispo en plusieurs langues
|
||||||
$this->option_escompte = 1; // Affiche si il y a eu escompte
|
$this->option_escompte = 1; // Affiche si il y a eu escompte
|
||||||
$this->option_credit_note = 1; // Gère les avoirs
|
$this->option_credit_note = 1; // G<EFBFBD>re les avoirs
|
||||||
$this->option_freetext = 1; // Support add of a personalised text
|
$this->option_freetext = 1; // Support add of a personalised text
|
||||||
$this->option_draft_watermark = 1; //Support add of a watermark on drafts
|
$this->option_draft_watermark = 1; //Support add of a watermark on drafts
|
||||||
|
|
||||||
@ -83,7 +83,7 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
|
|
||||||
// Recupere emmetteur
|
// Recupere emmetteur
|
||||||
$this->emetteur=$mysoc;
|
$this->emetteur=$mysoc;
|
||||||
if (! $this->emetteur->pays_code) $this->emetteur->pays_code=substr($langs->defaultlang,-2); // Par defaut, si n'était pas défini
|
if (! $this->emetteur->pays_code) $this->emetteur->pays_code=substr($langs->defaultlang,-2); // Par defaut, si n'<EFBFBD>tait pas d<>fini
|
||||||
|
|
||||||
// Defini position des colonnes
|
// Defini position des colonnes
|
||||||
$this->posxdesc=$this->marge_gauche+1;
|
$this->posxdesc=$this->marge_gauche+1;
|
||||||
@ -99,8 +99,8 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Fonction générant la commande sur le disque
|
* \brief Fonction g<EFBFBD>n<EFBFBD>rant la commande sur le disque
|
||||||
* \param com Objet commande à générer
|
* \param com Objet commande <EFBFBD> g<EFBFBD>n<EFBFBD>rer
|
||||||
* \param outputlangs Lang object for output language
|
* \param outputlangs Lang object for output language
|
||||||
* \return int 1=ok, 0=ko
|
* \return int 1=ok, 0=ko
|
||||||
*/
|
*/
|
||||||
@ -123,7 +123,7 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
|
|
||||||
if ($conf->commande->dir_output)
|
if ($conf->commande->dir_output)
|
||||||
{
|
{
|
||||||
// Définition de l'objet $com (pour compatibilite ascendante)
|
// D<EFBFBD>finition de l'objet $com (pour compatibilite ascendante)
|
||||||
if (! is_object($com))
|
if (! is_object($com))
|
||||||
{
|
{
|
||||||
$id = $com;
|
$id = $com;
|
||||||
@ -132,7 +132,7 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
}
|
}
|
||||||
$deja_regle = "";
|
$deja_regle = "";
|
||||||
|
|
||||||
// Définition de $dir et $file
|
// D<EFBFBD>finition de $dir et $file
|
||||||
if ($com->specimen)
|
if ($com->specimen)
|
||||||
{
|
{
|
||||||
$dir = $conf->commande->dir_output;
|
$dir = $conf->commande->dir_output;
|
||||||
@ -164,7 +164,7 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
$pdf=new FPDI_Protection('P','mm',$this->format);
|
$pdf=new FPDI_Protection('P','mm',$this->format);
|
||||||
$pdfrights = array('print'); // Ne permet que l'impression du document
|
$pdfrights = array('print'); // Ne permet que l'impression du document
|
||||||
$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
|
$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
|
||||||
$pdfownerpass = NULL; // Mot de passe du propriétaire, créé aléatoirement si pas défini
|
$pdfownerpass = NULL; // Mot de passe du propri<EFBFBD>taire, cr<63><72> al<61>atoirement si pas d<>fini
|
||||||
$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
|
$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -208,7 +208,7 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
{
|
{
|
||||||
$tab_top = 88;
|
$tab_top = 88;
|
||||||
|
|
||||||
$pdf->SetFont('Arial','', 9); // Dans boucle pour gérer multi-page
|
$pdf->SetFont('Arial','', 9); // Dans boucle pour g<EFBFBD>rer multi-page
|
||||||
$pdf->SetXY ($this->posxdesc-1, $tab_top);
|
$pdf->SetXY ($this->posxdesc-1, $tab_top);
|
||||||
$pdf->MultiCell(190, 3, $com->note_public, 0, 'J');
|
$pdf->MultiCell(190, 3, $com->note_public, 0, 'J');
|
||||||
$nexY = $pdf->GetY();
|
$nexY = $pdf->GetY();
|
||||||
@ -251,7 +251,7 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
$libelleproduitservice.=dol_htmlentitiesbr($com->lignes[$i]->desc,1);
|
$libelleproduitservice.=dol_htmlentitiesbr($com->lignes[$i]->desc,1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Si ligne associée à un code produit
|
// Si ligne associ<EFBFBD>e <20> un code produit
|
||||||
if ($com->lignes[$i]->fk_product)
|
if ($com->lignes[$i]->fk_product)
|
||||||
{
|
{
|
||||||
$prodser = new Product($this->db);
|
$prodser = new Product($this->db);
|
||||||
@ -282,7 +282,7 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
// Description
|
// Description
|
||||||
$pdf->writeHTMLCell($this->posxtva-$this->posxdesc-1, 3, $this->posxdesc-1, $curY, $libelleproduitservice, 0, 1);
|
$pdf->writeHTMLCell($this->posxtva-$this->posxdesc-1, 3, $this->posxdesc-1, $curY, $libelleproduitservice, 0, 1);
|
||||||
|
|
||||||
$pdf->SetFont('Arial','', 9); // On repositionne la police par défaut
|
$pdf->SetFont('Arial','', 9); // On repositionne la police par d<EFBFBD>faut
|
||||||
|
|
||||||
$nexY = $pdf->GetY();
|
$nexY = $pdf->GetY();
|
||||||
|
|
||||||
@ -322,9 +322,9 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
// cherche nombre de lignes a venir pour savoir si place suffisante
|
// cherche nombre de lignes a venir pour savoir si place suffisante
|
||||||
if ($i < ($nblignes - 1)) // If it's not last line
|
if ($i < ($nblignes - 1)) // If it's not last line
|
||||||
{
|
{
|
||||||
//on récupère la description du produit suivant
|
//on r<EFBFBD>cup<EFBFBD>re la description du produit suivant
|
||||||
$follow_descproduitservice = $com->lignes[$i+1]->desc;
|
$follow_descproduitservice = $com->lignes[$i+1]->desc;
|
||||||
//on compte le nombre de ligne afin de vérifier la place disponible (largeur de ligne 52 caracteres)
|
//on compte le nombre de ligne afin de v<EFBFBD>rifier la place disponible (largeur de ligne 52 caracteres)
|
||||||
$nblineFollowDesc = (num_lines($follow_descproduitservice,52)*4);
|
$nblineFollowDesc = (num_lines($follow_descproduitservice,52)*4);
|
||||||
}
|
}
|
||||||
else // If it's last line
|
else // If it's last line
|
||||||
@ -388,6 +388,8 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
$pdf->Close();
|
$pdf->Close();
|
||||||
|
|
||||||
$pdf->Output($file);
|
$pdf->Output($file);
|
||||||
|
if (! empty($conf->global->MAIN_UMASK))
|
||||||
|
@chmod($file, octdec($conf->global->MAIN_UMASK));
|
||||||
|
|
||||||
$langs->setPhpLang(); // On restaure langue session
|
$langs->setPhpLang(); // On restaure langue session
|
||||||
return 1; // Pas d'erreur
|
return 1; // Pas d'erreur
|
||||||
@ -612,7 +614,7 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
|
|
||||||
$index = 0;
|
$index = 0;
|
||||||
|
|
||||||
// Affichage des totaux de TVA par taux (conformément à réglementation)
|
// Affichage des totaux de TVA par taux (conform<EFBFBD>ment <20> r<>glementation)
|
||||||
$pdf->SetFillColor(248,248,248);
|
$pdf->SetFillColor(248,248,248);
|
||||||
|
|
||||||
foreach( $this->tva as $tvakey => $tvaval )
|
foreach( $this->tva as $tvakey => $tvaval )
|
||||||
@ -699,7 +701,7 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
{
|
{
|
||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
// Montants exprimés en (en tab_top - 1)
|
// Montants exprim<EFBFBD>s en (en tab_top - 1)
|
||||||
$pdf->SetTextColor(0,0,0);
|
$pdf->SetTextColor(0,0,0);
|
||||||
$pdf->SetFont('Arial','',8);
|
$pdf->SetFont('Arial','',8);
|
||||||
$titre = $outputlangs->transnoentities("AmountInCurrency",$outputlangs->transnoentities("Currency".$conf->monnaie));
|
$titre = $outputlangs->transnoentities("AmountInCurrency",$outputlangs->transnoentities("Currency".$conf->monnaie));
|
||||||
@ -746,7 +748,7 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* \brief Affiche en-tête commande
|
* \brief Affiche en-t<EFBFBD>te commande
|
||||||
* \param pdf Objet PDF
|
* \param pdf Objet PDF
|
||||||
* \param com Objet commande
|
* \param com Objet commande
|
||||||
* \param showadress 0=non, 1=oui
|
* \param showadress 0=non, 1=oui
|
||||||
@ -853,7 +855,7 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
if (defined("FAC_PDF_SOCIETE_NOM") && FAC_PDF_SOCIETE_NOM) $pdf->MultiCell(80, 4, FAC_PDF_SOCIETE_NOM, 0, 'L');
|
if (defined("FAC_PDF_SOCIETE_NOM") && FAC_PDF_SOCIETE_NOM) $pdf->MultiCell(80, 4, FAC_PDF_SOCIETE_NOM, 0, 'L');
|
||||||
else $pdf->MultiCell(80, 4, $this->emetteur->nom, 0, 'L');
|
else $pdf->MultiCell(80, 4, $this->emetteur->nom, 0, 'L');
|
||||||
|
|
||||||
// Caractéristiques emetteur
|
// Caract<EFBFBD>ristiques emetteur
|
||||||
$carac_emetteur = '';
|
$carac_emetteur = '';
|
||||||
if (defined("FAC_PDF_ADRESSE") && FAC_PDF_ADRESSE) $carac_emetteur .= ($carac_emetteur ? "\n" : '' ).FAC_PDF_ADRESSE;
|
if (defined("FAC_PDF_ADRESSE") && FAC_PDF_ADRESSE) $carac_emetteur .= ($carac_emetteur ? "\n" : '' ).FAC_PDF_ADRESSE;
|
||||||
else {
|
else {
|
||||||
@ -915,7 +917,7 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
// Nom client
|
// Nom client
|
||||||
$carac_client = "\n".$object->contact->getFullName($outputlangs,1,1);
|
$carac_client = "\n".$object->contact->getFullName($outputlangs,1,1);
|
||||||
|
|
||||||
// Caractéristiques client
|
// Caract<EFBFBD>ristiques client
|
||||||
$carac_client.="\n".$object->contact->adresse;
|
$carac_client.="\n".$object->contact->adresse;
|
||||||
$carac_client.="\n".$object->contact->cp . " " . $object->contact->ville."\n";
|
$carac_client.="\n".$object->contact->cp . " " . $object->contact->ville."\n";
|
||||||
//Pays si different de l'emetteur
|
//Pays si different de l'emetteur
|
||||||
@ -931,19 +933,19 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
$pdf->SetFont('Arial','B',11);
|
$pdf->SetFont('Arial','B',11);
|
||||||
$pdf->MultiCell(96,4, $object->client->nom, 0, 'L');
|
$pdf->MultiCell(96,4, $object->client->nom, 0, 'L');
|
||||||
|
|
||||||
// Nom du contact suivi commande si c'est une société
|
// Nom du contact suivi commande si c'est une soci<EFBFBD>t<EFBFBD>
|
||||||
$arrayidcontact = $object->getIdContact('external','CUSTOMER');
|
$arrayidcontact = $object->getIdContact('external','CUSTOMER');
|
||||||
if (sizeof($arrayidcontact) > 0)
|
if (sizeof($arrayidcontact) > 0)
|
||||||
{
|
{
|
||||||
$object->fetch_contact($arrayidcontact[0]);
|
$object->fetch_contact($arrayidcontact[0]);
|
||||||
// On vérifie si c'est une société ou un particulier
|
// On v<EFBFBD>rifie si c'est une soci<63>t<EFBFBD> ou un particulier
|
||||||
if( !preg_match('#'.$object->contact->getFullName($outputlangs,1).'#isU',$object->client->nom) )
|
if( !preg_match('#'.$object->contact->getFullName($outputlangs,1).'#isU',$object->client->nom) )
|
||||||
{
|
{
|
||||||
$carac_client .= "\n".$object->contact->getFullName($outputlangs,1,1);
|
$carac_client .= "\n".$object->contact->getFullName($outputlangs,1,1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Caractéristiques client
|
// Caract<EFBFBD>ristiques client
|
||||||
$carac_client.="\n".$object->client->adresse;
|
$carac_client.="\n".$object->client->adresse;
|
||||||
$carac_client.="\n".$object->client->cp . " " . $object->client->ville."\n";
|
$carac_client.="\n".$object->client->cp . " " . $object->client->ville."\n";
|
||||||
|
|
||||||
@ -953,7 +955,7 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
$carac_client.=dol_entity_decode($object->client->pays)."\n";
|
$carac_client.=dol_entity_decode($object->client->pays)."\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Numéro TVA intracom
|
// Num<EFBFBD>ro TVA intracom
|
||||||
if ($object->client->tva_intra) $carac_client.="\n".$outputlangs->transnoentities("VATIntraShort").': '.$object->client->tva_intra;
|
if ($object->client->tva_intra) $carac_client.="\n".$outputlangs->transnoentities("VATIntraShort").': '.$object->client->tva_intra;
|
||||||
$pdf->SetFont('Arial','',9);
|
$pdf->SetFont('Arial','',9);
|
||||||
$posy=$pdf->GetY()-9; //Auto Y coord readjust for multiline name
|
$posy=$pdf->GetY()-9; //Auto Y coord readjust for multiline name
|
||||||
|
|||||||
@ -130,6 +130,8 @@ class html_cerfafr extends ModeleDon
|
|||||||
$handle=fopen($file,"w");
|
$handle=fopen($file,"w");
|
||||||
fwrite($handle,$html);
|
fwrite($handle,$html);
|
||||||
fclose($handle);
|
fclose($handle);
|
||||||
|
if (! empty($conf->global->MAIN_UMASK))
|
||||||
|
@chmod($file, octdec($conf->global->MAIN_UMASK));
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -21,30 +21,30 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\file htdocs/includes/modules/facture/modules_facture.php
|
\file htdocs/includes/modules/facture/modules_facture.php
|
||||||
\ingroup facture
|
\ingroup facture
|
||||||
\brief Fichier contenant la classe mère de generation des factures en PDF
|
\brief Fichier contenant la classe m<EFBFBD>re de generation des factures en PDF
|
||||||
et la classe mère de numérotation des factures
|
et la classe m<EFBFBD>re de num<EFBFBD>rotation des factures
|
||||||
\version $Id$
|
\version $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require_once(DOL_DOCUMENT_ROOT.'/lib/functions.lib.php');
|
require_once(DOL_DOCUMENT_ROOT.'/lib/functions.lib.php');
|
||||||
require_once(DOL_DOCUMENT_ROOT.'/includes/fpdf/fpdfi/fpdi_protection.php');
|
require_once(DOL_DOCUMENT_ROOT.'/includes/fpdf/fpdfi/fpdi_protection.php');
|
||||||
require_once(DOL_DOCUMENT_ROOT."/product.class.php");
|
require_once(DOL_DOCUMENT_ROOT."/product.class.php");
|
||||||
require_once(DOL_DOCUMENT_ROOT."/compta/bank/account.class.php"); // Requis car utilisé dans les classes qui héritent
|
require_once(DOL_DOCUMENT_ROOT."/compta/bank/account.class.php"); // Requis car utilis<EFBFBD> dans les classes qui h<>ritent
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\class ModelePDFFactures
|
\class ModelePDFFactures
|
||||||
\brief Classe mère des modèles de facture
|
\brief Classe m<EFBFBD>re des mod<EFBFBD>les de facture
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class ModelePDFFactures extends FPDF
|
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<EFBFBD>ation de facture
|
||||||
*/
|
*/
|
||||||
function pdferror()
|
function pdferror()
|
||||||
{
|
{
|
||||||
@ -52,16 +52,16 @@ class ModelePDFFactures extends FPDF
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Renvoi la liste des modèles actifs
|
* \brief Renvoi la liste des mod<EFBFBD>les actifs
|
||||||
* \param db Handler de base
|
* \param db Handler de base
|
||||||
*/
|
*/
|
||||||
function liste_modeles($db)
|
function liste_modeles($db)
|
||||||
{
|
{
|
||||||
$type='invoice';
|
$type='invoice';
|
||||||
$liste=array();
|
$liste=array();
|
||||||
$sql ="SELECT nom as id, nom as lib";
|
$sql ="SELECT nom as id, nom as lib";
|
||||||
$sql.=" FROM ".MAIN_DB_PREFIX."document_model";
|
$sql.=" FROM ".MAIN_DB_PREFIX."document_model";
|
||||||
$sql.=" WHERE type = '".$type."'";
|
$sql.=" WHERE type = '".$type."'";
|
||||||
|
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if ($resql)
|
if ($resql)
|
||||||
@ -86,24 +86,24 @@ class ModelePDFFactures extends FPDF
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\class ModeleNumRefFactures
|
\class ModeleNumRefFactures
|
||||||
\brief Classe mère des modèles de numérotation des références de facture
|
\brief Classe m<EFBFBD>re des mod<EFBFBD>les de num<EFBFBD>rotation des r<EFBFBD>f<EFBFBD>rences de factur
|
||||||
*/
|
*/
|
||||||
class ModeleNumRefFactures
|
class ModeleNumRefFactures
|
||||||
{
|
{
|
||||||
var $error='';
|
var $error='';
|
||||||
|
|
||||||
/** \brief Return if a module can be used or not
|
/** \brief Return if a module can be used or not
|
||||||
* \return boolean true if module can be used
|
* \return boolean true if module can be used
|
||||||
*/
|
*/
|
||||||
function isEnabled()
|
function isEnabled()
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** \brief Renvoi la description par defaut du modele de numérotation
|
/** \brief Renvoi la description par defaut du modele de num<EFBFBD>rotation
|
||||||
* \return string Texte descripif
|
* \return string Texte descripif
|
||||||
*/
|
*/
|
||||||
function info()
|
function info()
|
||||||
{
|
{
|
||||||
global $langs;
|
global $langs;
|
||||||
@ -111,9 +111,9 @@ class ModeleNumRefFactures
|
|||||||
return $langs->trans("NoDescription");
|
return $langs->trans("NoDescription");
|
||||||
}
|
}
|
||||||
|
|
||||||
/** \brief Renvoi un exemple de numérotation
|
/** \brief Renvoi un exemple de num<EFBFBD>rotation
|
||||||
* \return string Example
|
* \return string Example
|
||||||
*/
|
*/
|
||||||
function getExample()
|
function getExample()
|
||||||
{
|
{
|
||||||
global $langs;
|
global $langs;
|
||||||
@ -121,20 +121,20 @@ class ModeleNumRefFactures
|
|||||||
return $langs->trans("NoExample");
|
return $langs->trans("NoExample");
|
||||||
}
|
}
|
||||||
|
|
||||||
/** \brief Test si les numéros déjà en vigueur dans la base ne provoquent pas de
|
/** \brief Test si les num<EFBFBD>ros d<EFBFBD>j<EFBFBD> en vigueur dans la base ne provoquent pas d
|
||||||
* de conflits qui empechera cette numérotation de fonctionner.
|
* de conflits qui empechera cette num<EFBFBD>rotation de fonctionner.
|
||||||
* \return boolean false si conflit, true si ok
|
* \return boolean false si conflit, true si ok
|
||||||
*/
|
*/
|
||||||
function canBeActivated()
|
function canBeActivated()
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** \brief Renvoi prochaine valeur attribuée
|
/** \brief Renvoi prochaine valeur attribu<EFBFBD>e
|
||||||
* \param objsoc Objet societe
|
* \param objsoc Objet societe
|
||||||
* \param facture Objet facture
|
* \param facture Objet facture
|
||||||
* \return string Valeur
|
* \return string Valeur
|
||||||
*/
|
*/
|
||||||
function getNextValue($objsoc,$facture)
|
function getNextValue($objsoc,$facture)
|
||||||
{
|
{
|
||||||
global $langs;
|
global $langs;
|
||||||
@ -142,8 +142,8 @@ class ModeleNumRefFactures
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** \brief Renvoi version du module numerotation
|
/** \brief Renvoi version du module numerotation
|
||||||
* \return string Valeur
|
* \return string Valeur
|
||||||
*/
|
*/
|
||||||
function getVersion()
|
function getVersion()
|
||||||
{
|
{
|
||||||
global $langs;
|
global $langs;
|
||||||
@ -158,14 +158,14 @@ class ModeleNumRefFactures
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Crée un facture sur disque en fonction du modèle de FACTURE_ADDON_PDF
|
\brief Cree un facture sur disque en fonction du modele de FACTURE_ADDON_PDF
|
||||||
\param db objet base de donnée
|
\param db objet base de donnee
|
||||||
\param id id de la facture à créer
|
\param id id de la facture a creer
|
||||||
\param message message
|
\param message message
|
||||||
\param modele force le modele à utiliser ('' par defaut)
|
\param modele force le modele a utiliser ('' par defaut)
|
||||||
\param outputlangs objet lang a utiliser pour traduction
|
\param outputlangs objet lang a utiliser pour traduction
|
||||||
\return int <0 si KO, >0 si OK
|
\return int <0 si KO, >0 si OK
|
||||||
*/
|
*/
|
||||||
function facture_pdf_create($db, $id, $message='', $modele='', $outputlangs='')
|
function facture_pdf_create($db, $id, $message='', $modele='', $outputlangs='')
|
||||||
{
|
{
|
||||||
global $conf,$langs;
|
global $conf,$langs;
|
||||||
@ -173,7 +173,7 @@ function facture_pdf_create($db, $id, $message='', $modele='', $outputlangs='')
|
|||||||
|
|
||||||
$dir = DOL_DOCUMENT_ROOT . "/includes/modules/facture/";
|
$dir = DOL_DOCUMENT_ROOT . "/includes/modules/facture/";
|
||||||
|
|
||||||
// Positionne modele sur le nom du modele à utiliser
|
// Positionne modele sur le nom du modele a utiliser
|
||||||
if (! strlen($modele))
|
if (! strlen($modele))
|
||||||
{
|
{
|
||||||
if ($conf->global->FACTURE_ADDON_PDF)
|
if ($conf->global->FACTURE_ADDON_PDF)
|
||||||
@ -199,7 +199,7 @@ function facture_pdf_create($db, $id, $message='', $modele='', $outputlangs='')
|
|||||||
|
|
||||||
if ($obj->write_file($id, $outputlangs) > 0)
|
if ($obj->write_file($id, $outputlangs) > 0)
|
||||||
{
|
{
|
||||||
// Succès de la création de la facture. On génère le fichier meta
|
// Success in building document. We build meta file.
|
||||||
facture_meta_create($db, $id);
|
facture_meta_create($db, $id);
|
||||||
|
|
||||||
// et on supprime l'image correspondant au preview
|
// et on supprime l'image correspondant au preview
|
||||||
@ -216,17 +216,17 @@ function facture_pdf_create($db, $id, $message='', $modele='', $outputlangs='')
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
dolibarr_print_error('',$langs->trans("Error")." ".$langs->trans("ErrorFileDoesNotExists",$dir.$file));
|
dolibarr_print_error('',$langs->trans("Error")." ".$langs->trans("ErrorFileDoesNotExists",$dir.$file));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\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]
|
\brief Cr<EFBFBD><EFBFBD> un meta fichier <EFBFBD> c<EFBFBD>t<EFBFBD> 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<EFBFBD>e ou compliqu<71>e <20> g<>rer ... avec un rgrep c'est vite fait bien fait [eric seigne
|
||||||
\param db Objet base de donnée
|
\param db Objet base de donn<EFBFBD>e
|
||||||
\param facid Id de la facture à créer
|
\param facid Id de la facture <EFBFBD> cr<EFBFBD>er
|
||||||
\param message Message
|
\param message Message
|
||||||
*/
|
*/
|
||||||
function facture_meta_create($db, $facid, $message="")
|
function facture_meta_create($db, $facid, $message="")
|
||||||
{
|
{
|
||||||
global $langs,$conf;
|
global $langs,$conf;
|
||||||
@ -246,59 +246,63 @@ function facture_meta_create($db, $facid, $message="")
|
|||||||
create_exdir($dir);
|
create_exdir($dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_dir($dir))
|
if (is_dir($dir))
|
||||||
{
|
{
|
||||||
$nblignes = sizeof($fac->lignes);
|
$nblignes = sizeof($fac->lignes);
|
||||||
$client = $fac->client->nom . " " . $fac->client->adresse . " " . $fac->client->cp . " " . $fac->client->ville;
|
$client = $fac->client->nom . " " . $fac->client->adresse . " " . $fac->client->cp . " " . $fac->client->ville;
|
||||||
$meta = "REFERENCE=\"" . $fac->ref . "\"
|
$meta = "REFERENCE=\"" . $fac->ref . "\"
|
||||||
DATE=\"" . dolibarr_print_date($fac->date) . "\"
|
DATE=\"" . dolibarr_print_date($fac->date) . "\"
|
||||||
NB_ITEMS=\"" . $nblignes . "\"
|
NB_ITEMS=\"" . $nblignes . "\"
|
||||||
CLIENT=\"" . $client . "\"
|
CLIENT=\"" . $client . "\"
|
||||||
TOTAL_HT=\"" . $fac->total_ht . "\"
|
TOTAL_HT=\"" . $fac->total_ht . "\"
|
||||||
TOTAL_TTC=\"" . $fac->total_ttc . "\"\n";
|
TOTAL_TTC=\"" . $fac->total_ttc . "\"\n";
|
||||||
|
|
||||||
for ($i = 0 ; $i < $nblignes ; $i++) {
|
for ($i = 0 ; $i < $nblignes ; $i++)
|
||||||
//Pour les articles
|
{
|
||||||
$meta .= "ITEM_" . $i . "_QUANTITY=\"" . $fac->lignes[$i]->qty . "\"
|
//Pour les articles
|
||||||
|
$meta .= "ITEM_" . $i . "_QUANTITY=\"" . $fac->lignes[$i]->qty . "\"
|
||||||
ITEM_" . $i . "_UNIT_PRICE=\"" . $fac->lignes[$i]->price . "\"
|
ITEM_" . $i . "_UNIT_PRICE=\"" . $fac->lignes[$i]->price . "\"
|
||||||
ITEM_" . $i . "_TVA=\"" .$fac->lignes[$i]->tva_tx . "\"
|
ITEM_" . $i . "_TVA=\"" .$fac->lignes[$i]->tva_tx . "\"
|
||||||
ITEM_" . $i . "_DESCRIPTION=\"" . str_replace("\r\n","",nl2br($fac->lignes[$i]->desc)) . "\"
|
ITEM_" . $i . "_DESCRIPTION=\"" . str_replace("\r\n","",nl2br($fac->lignes[$i]->desc)) . "\"
|
||||||
";
|
";
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
$fp = fopen ($file,"w");
|
||||||
|
fputs($fp,$meta);
|
||||||
|
fclose($fp);
|
||||||
|
if (! empty($conf->global->MAIN_UMASK))
|
||||||
|
@chmod($file, octdec($conf->global->MAIN_UMASK));
|
||||||
|
|
||||||
}
|
}
|
||||||
$fp = fopen ($file,"w");
|
|
||||||
fputs($fp,$meta);
|
|
||||||
fclose($fp);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Supprime l'image de prévisualitation, pour le cas de régénération de facture
|
\brief Supprime l'image de pr<EFBFBD>visualitation, pour le cas de r<EFBFBD>g<EFBFBD>n<EFBFBD>ration de facture
|
||||||
\param db objet base de donnée
|
\param db objet base de donn<EFBFBD>e
|
||||||
\param facid id de la facture à créer
|
\param facid id de la facture <EFBFBD> cr<EFBFBD>er
|
||||||
*/
|
*/
|
||||||
function facture_delete_preview($db, $facid)
|
function facture_delete_preview($db, $facid)
|
||||||
{
|
{
|
||||||
global $langs,$conf;
|
global $langs,$conf;
|
||||||
|
|
||||||
$fac = new Facture($db,"",$facid);
|
$fac = new Facture($db,"",$facid);
|
||||||
$fac->fetch($facid);
|
$fac->fetch($facid);
|
||||||
|
|
||||||
if ($conf->facture->dir_output)
|
if ($conf->facture->dir_output)
|
||||||
{
|
|
||||||
$facref = sanitize_string($fac->ref);
|
|
||||||
$dir = $conf->facture->dir_output . "/" . $facref ;
|
|
||||||
$file = $dir . "/" . $facref . ".pdf.png";
|
|
||||||
|
|
||||||
if ( file_exists( $file ) && is_writable( $file ) )
|
|
||||||
{
|
{
|
||||||
|
$facref = sanitize_string($fac->ref);
|
||||||
|
$dir = $conf->facture->dir_output . "/" . $facref ;
|
||||||
|
$file = $dir . "/" . $facref . ".pdf.png";
|
||||||
|
|
||||||
|
if ( file_exists( $file ) && is_writable( $file ) )
|
||||||
|
{
|
||||||
if ( ! unlink($file) )
|
if ( ! unlink($file) )
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|||||||
@ -412,6 +412,8 @@ class pdf_crabe extends ModelePDFFactures
|
|||||||
$pdf->Close();
|
$pdf->Close();
|
||||||
|
|
||||||
$pdf->Output($file);
|
$pdf->Output($file);
|
||||||
|
if (! empty($conf->global->MAIN_UMASK))
|
||||||
|
@chmod($file, octdec($conf->global->MAIN_UMASK));
|
||||||
|
|
||||||
$langs->setPhpLang(); // On restaure langue session
|
$langs->setPhpLang(); // On restaure langue session
|
||||||
return 1; // Pas d'erreur
|
return 1; // Pas d'erreur
|
||||||
|
|||||||
@ -22,7 +22,7 @@
|
|||||||
/**
|
/**
|
||||||
\file htdocs/includes/modules/facture/pdf_huitre.modules.php
|
\file htdocs/includes/modules/facture/pdf_huitre.modules.php
|
||||||
\ingroup facture
|
\ingroup facture
|
||||||
\brief Fichier de la classe permettant de générer les factures au modèle Huitre
|
\brief Fichier de la classe permettant de g<EFBFBD>n<EFBFBD>rer les factures au mod<EFBFBD>le Huitre
|
||||||
\author Laurent Destailleur
|
\author Laurent Destailleur
|
||||||
\version $Id$
|
\version $Id$
|
||||||
*/
|
*/
|
||||||
@ -33,7 +33,7 @@ require_once(DOL_DOCUMENT_ROOT."/lib/company.lib.php");
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
\class pdf_huitre
|
\class pdf_huitre
|
||||||
\brief Classe permettant de générer les factures au modèle Huitre
|
\brief Classe permettant de g<EFBFBD>n<EFBFBD>rer les factures au mod<EFBFBD>le Huitre
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class pdf_huitre extends ModelePDFFactures
|
class pdf_huitre extends ModelePDFFactures
|
||||||
@ -42,7 +42,7 @@ class pdf_huitre extends ModelePDFFactures
|
|||||||
|
|
||||||
|
|
||||||
/** \brief Constructeur
|
/** \brief Constructeur
|
||||||
\param db handler accès base de donnée
|
\param db handler acc<EFBFBD>s base de donn<EFBFBD>e
|
||||||
*/
|
*/
|
||||||
function pdf_huitre($db)
|
function pdf_huitre($db)
|
||||||
{
|
{
|
||||||
@ -69,23 +69,23 @@ class pdf_huitre extends ModelePDFFactures
|
|||||||
|
|
||||||
$this->option_logo = 1; // Affiche logo FAC_PDF_LOGO
|
$this->option_logo = 1; // Affiche logo FAC_PDF_LOGO
|
||||||
$this->option_tva = 0; // Gere option tva FACTURE_TVAOPTION
|
$this->option_tva = 0; // Gere option tva FACTURE_TVAOPTION
|
||||||
$this->option_modereg = 0; // Gere choix mode règlement FACTURE_CHQ_NUMBER, FACTURE_RIB_NUMBER
|
$this->option_modereg = 0; // Gere choix mode r<EFBFBD>glement FACTURE_CHQ_NUMBER, FACTURE_RIB_NUMBER
|
||||||
$this->option_condreg = 1; // Affiche conditions règlement
|
$this->option_condreg = 1; // Affiche conditions r<EFBFBD>glement
|
||||||
$this->option_codeproduitservice = 0; // Affiche code produit-service
|
$this->option_codeproduitservice = 0; // Affiche code produit-service
|
||||||
$this->option_multilang = 1; // Dispo en plusieurs langues
|
$this->option_multilang = 1; // Dispo en plusieurs langues
|
||||||
$this->option_escompte = 0; // Affiche si il y a eu escompte
|
$this->option_escompte = 0; // Affiche si il y a eu escompte
|
||||||
$this->option_credit_note = 0; // Gère les avoirs
|
$this->option_credit_note = 0; // G<EFBFBD>re les avoirs
|
||||||
$this->option_draft_watermark = 1; //Support add of a watermark on drafts
|
$this->option_draft_watermark = 1; //Support add of a watermark on drafts
|
||||||
|
|
||||||
// Recupere emmetteur
|
// Recupere emmetteur
|
||||||
$this->emetteur=$mysoc;
|
$this->emetteur=$mysoc;
|
||||||
if (! $this->emetteur->pays_code) $this->emetteur->pays_code=substr($langs->defaultlang,-2); // Par defaut, si n'était pas défini
|
if (! $this->emetteur->pays_code) $this->emetteur->pays_code=substr($langs->defaultlang,-2); // Par defaut, si n'<EFBFBD>tait pas d<>fini
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Fonction générant la facture sur le disque
|
* \brief Fonction g<EFBFBD>n<EFBFBD>rant la facture sur le disque
|
||||||
* \param fac Objet facture à générer (ou id si ancienne methode)
|
* \param fac Objet facture <EFBFBD> g<EFBFBD>n<EFBFBD>rer (ou id si ancienne methode)
|
||||||
* \param outputlangs Lang object for output language
|
* \param outputlangs Lang object for output language
|
||||||
* \return int 1=ok, 0=ko
|
* \return int 1=ok, 0=ko
|
||||||
*/
|
*/
|
||||||
@ -106,7 +106,7 @@ class pdf_huitre extends ModelePDFFactures
|
|||||||
|
|
||||||
if ($conf->facture->dir_output)
|
if ($conf->facture->dir_output)
|
||||||
{
|
{
|
||||||
// Définition de l'objet $fac (pour compatibilite ascendante)
|
// D<EFBFBD>finition de l'objet $fac (pour compatibilite ascendante)
|
||||||
if (! is_object($fac))
|
if (! is_object($fac))
|
||||||
{
|
{
|
||||||
$id = $fac;
|
$id = $fac;
|
||||||
@ -114,7 +114,7 @@ class pdf_huitre extends ModelePDFFactures
|
|||||||
$ret=$fac->fetch($id);
|
$ret=$fac->fetch($id);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Définition de $dir et $file
|
// D<EFBFBD>finition de $dir et $file
|
||||||
if ($fac->specimen)
|
if ($fac->specimen)
|
||||||
{
|
{
|
||||||
$dir = $conf->facture->dir_output;
|
$dir = $conf->facture->dir_output;
|
||||||
@ -145,7 +145,7 @@ class pdf_huitre extends ModelePDFFactures
|
|||||||
$pdf=new FPDI_Protection('P','mm','A4');
|
$pdf=new FPDI_Protection('P','mm','A4');
|
||||||
$pdfrights = array('print'); // Ne permet que l'impression du document
|
$pdfrights = array('print'); // Ne permet que l'impression du document
|
||||||
$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
|
$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
|
||||||
$pdfownerpass = NULL; // Mot de passe du propriétaire, créé aléatoirement si pas défini
|
$pdfownerpass = NULL; // Mot de passe du propri<EFBFBD>taire, cr<63><72> al<61>atoirement si pas d<>fini
|
||||||
$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
|
$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -271,12 +271,11 @@ class pdf_huitre extends ModelePDFFactures
|
|||||||
$pdf->SetLineWidth(0.5);
|
$pdf->SetLineWidth(0.5);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$pdf->Close();
|
$pdf->Close();
|
||||||
|
|
||||||
$pdf->Output($file);
|
$pdf->Output($file);
|
||||||
|
if (! empty($conf->global->MAIN_UMASK))
|
||||||
|
@chmod($file, octdec($conf->global->MAIN_UMASK));
|
||||||
|
|
||||||
$langs->setPhpLang(); // On restaure langue session
|
$langs->setPhpLang(); // On restaure langue session
|
||||||
return 1; // Pas d'erreur
|
return 1; // Pas d'erreur
|
||||||
@ -373,7 +372,7 @@ class pdf_huitre extends ModelePDFFactures
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* \brief Affiche le total à payer
|
* \brief Affiche le total <EFBFBD> payer
|
||||||
* \param pdf objet PDF
|
* \param pdf objet PDF
|
||||||
* \param fac objet facture
|
* \param fac objet facture
|
||||||
*/
|
*/
|
||||||
@ -463,7 +462,7 @@ class pdf_huitre extends ModelePDFFactures
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* \brief Affiche en-tête facture
|
* \brief Affiche en-t<EFBFBD>te facture
|
||||||
* \param pdf objet PDF
|
* \param pdf objet PDF
|
||||||
* \param fac objet facture
|
* \param fac objet facture
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -23,8 +23,8 @@
|
|||||||
/**
|
/**
|
||||||
\file htdocs/includes/modules/facture/pdf_oursin.modules.php
|
\file htdocs/includes/modules/facture/pdf_oursin.modules.php
|
||||||
\ingroup facture
|
\ingroup facture
|
||||||
\brief Fichier de la classe permettant de générer les factures au modèle oursin
|
\brief Fichier de la classe permettant de g<EFBFBD>n<EFBFBD>rer les factures au mod<EFBFBD>le oursin
|
||||||
\author Sylvain SCATTOLINI basé sur un modèle de Laurent Destailleur
|
\author Sylvain SCATTOLINI bas<EFBFBD> sur un mod<EFBFBD>le de Laurent Destailleur
|
||||||
\version $Id$
|
\version $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -34,7 +34,7 @@ require_once(DOL_DOCUMENT_ROOT."/lib/company.lib.php");
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
\class pdf_oursin
|
\class pdf_oursin
|
||||||
\brief Classe permettant de générer les factures au modèle oursin
|
\brief Classe permettant de g<EFBFBD>n<EFBFBD>rer les factures au mod<EFBFBD>le oursin
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class pdf_oursin extends ModelePDFFactures
|
class pdf_oursin extends ModelePDFFactures
|
||||||
@ -44,7 +44,7 @@ class pdf_oursin extends ModelePDFFactures
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Constructeur
|
\brief Constructeur
|
||||||
\param db handler accès base de donnée
|
\param db handler acc<EFBFBD>s base de donn<EFBFBD>e
|
||||||
*/
|
*/
|
||||||
function pdf_oursin($db)
|
function pdf_oursin($db)
|
||||||
{
|
{
|
||||||
@ -70,12 +70,12 @@ class pdf_oursin extends ModelePDFFactures
|
|||||||
|
|
||||||
$this->option_logo = 1; // Affiche logo FAC_PDF_LOGO
|
$this->option_logo = 1; // Affiche logo FAC_PDF_LOGO
|
||||||
$this->option_tva = 1; // Gere option tva FACTURE_TVAOPTION
|
$this->option_tva = 1; // Gere option tva FACTURE_TVAOPTION
|
||||||
$this->option_modereg = 1; // Gere choix mode règlement FACTURE_CHQ_NUMBER, FACTURE_RIB_NUMBER
|
$this->option_modereg = 1; // Gere choix mode r<EFBFBD>glement FACTURE_CHQ_NUMBER, FACTURE_RIB_NUMBER
|
||||||
$this->option_condreg = 1; // Affiche conditions règlement
|
$this->option_condreg = 1; // Affiche conditions r<EFBFBD>glement
|
||||||
$this->option_codeproduitservice = 1; // Affiche code produit-service
|
$this->option_codeproduitservice = 1; // Affiche code produit-service
|
||||||
$this->option_multilang = 1; // Dispo en plusieurs langues
|
$this->option_multilang = 1; // Dispo en plusieurs langues
|
||||||
$this->option_escompte = 0; // Affiche si il y a eu escompte
|
$this->option_escompte = 0; // Affiche si il y a eu escompte
|
||||||
$this->option_credit_note = 1; // Gère les avoirs
|
$this->option_credit_note = 1; // G<EFBFBD>re les avoirs
|
||||||
$this->option_draft_watermark = 1; //Support add of a watermark on drafts
|
$this->option_draft_watermark = 1; //Support add of a watermark on drafts
|
||||||
|
|
||||||
if (defined("FACTURE_TVAOPTION") && FACTURE_TVAOPTION == 'franchise')
|
if (defined("FACTURE_TVAOPTION") && FACTURE_TVAOPTION == 'franchise')
|
||||||
@ -83,13 +83,13 @@ class pdf_oursin extends ModelePDFFactures
|
|||||||
|
|
||||||
// Recupere emmetteur
|
// Recupere emmetteur
|
||||||
$this->emetteur=$mysoc;
|
$this->emetteur=$mysoc;
|
||||||
if (! $this->emetteur->pays_code) $this->emetteur->pays_code=substr($langs->defaultlang,-2); // Par defaut, si n'était pas défini
|
if (! $this->emetteur->pays_code) $this->emetteur->pays_code=substr($langs->defaultlang,-2); // Par defaut, si n'<EFBFBD>tait pas d<>fini
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Fonction générant la facture sur le disque
|
* \brief Fonction g<EFBFBD>n<EFBFBD>rant la facture sur le disque
|
||||||
* \param fac Objet facture à générer (ou id si ancienne methode)
|
* \param fac Objet facture <EFBFBD> g<EFBFBD>n<EFBFBD>rer (ou id si ancienne methode)
|
||||||
* \param outputlangs Lang object for output language
|
* \param outputlangs Lang object for output language
|
||||||
* \return int 1=ok, 0=ko
|
* \return int 1=ok, 0=ko
|
||||||
*/
|
*/
|
||||||
@ -110,7 +110,7 @@ class pdf_oursin extends ModelePDFFactures
|
|||||||
|
|
||||||
if ($conf->facture->dir_output)
|
if ($conf->facture->dir_output)
|
||||||
{
|
{
|
||||||
// Définition de l'objet $fac (pour compatibilite ascendante)
|
// D<EFBFBD>finition de l'objet $fac (pour compatibilite ascendante)
|
||||||
if (! is_object($fac))
|
if (! is_object($fac))
|
||||||
{
|
{
|
||||||
$id = $fac;
|
$id = $fac;
|
||||||
@ -122,7 +122,7 @@ class pdf_oursin extends ModelePDFFactures
|
|||||||
$amount_credit_not_included = $fac->getSommeCreditNote();
|
$amount_credit_not_included = $fac->getSommeCreditNote();
|
||||||
|
|
||||||
|
|
||||||
// Définition de $dir et $file
|
// D<EFBFBD>finition de $dir et $file
|
||||||
if ($fac->specimen)
|
if ($fac->specimen)
|
||||||
{
|
{
|
||||||
$dir = $conf->facture->dir_output;
|
$dir = $conf->facture->dir_output;
|
||||||
@ -154,7 +154,7 @@ class pdf_oursin extends ModelePDFFactures
|
|||||||
$pdf=new FPDI_Protection('P','mm',$this->format);
|
$pdf=new FPDI_Protection('P','mm',$this->format);
|
||||||
$pdfrights = array('print'); // Ne permet que l'impression du document
|
$pdfrights = array('print'); // Ne permet que l'impression du document
|
||||||
$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
|
$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
|
||||||
$pdfownerpass = NULL; // Mot de passe du propriétaire, créé aléatoirement si pas défini
|
$pdfownerpass = NULL; // Mot de passe du propri<EFBFBD>taire, cr<63><72> al<61>atoirement si pas d<>fini
|
||||||
$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
|
$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -196,7 +196,7 @@ class pdf_oursin extends ModelePDFFactures
|
|||||||
$codeproduitservice="";
|
$codeproduitservice="";
|
||||||
$pdf->SetXY ($this->marges['g']+ 1, $curY );
|
$pdf->SetXY ($this->marges['g']+ 1, $curY );
|
||||||
if (defined("FACTURE_CODEPRODUITSERVICE") && FACTURE_CODEPRODUITSERVICE) {
|
if (defined("FACTURE_CODEPRODUITSERVICE") && FACTURE_CODEPRODUITSERVICE) {
|
||||||
// Affiche code produit si ligne associée à un code produit
|
// Affiche code produit si ligne associ<EFBFBD>e <20> un code produit
|
||||||
|
|
||||||
$prodser = new Product($this->db);
|
$prodser = new Product($this->db);
|
||||||
|
|
||||||
@ -206,7 +206,7 @@ class pdf_oursin extends ModelePDFFactures
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($fac->lignes[$i]->date_start && $fac->lignes[$i]->date_end) {
|
if ($fac->lignes[$i]->date_start && $fac->lignes[$i]->date_end) {
|
||||||
// Affichage durée si il y en a une
|
// Affichage dur<EFBFBD>e si il y en a une
|
||||||
$codeproduitservice.=" (".$outputlangs->transnoentities("From")." ".dolibarr_print_date($fac->lignes[$i]->date_start)." ".$langs->transnoentities("to")." ".dolibarr_print_date($fac->lignes[$i]->date_end).")";
|
$codeproduitservice.=" (".$outputlangs->transnoentities("From")." ".dolibarr_print_date($fac->lignes[$i]->date_start)." ".$langs->transnoentities("to")." ".dolibarr_print_date($fac->lignes[$i]->date_end).")";
|
||||||
}
|
}
|
||||||
$pdf->MultiCell(108, 5, $fac->lignes[$i]->desc."$codeproduitservice", 0, 'J');
|
$pdf->MultiCell(108, 5, $fac->lignes[$i]->desc."$codeproduitservice", 0, 'J');
|
||||||
@ -260,7 +260,7 @@ class pdf_oursin extends ModelePDFFactures
|
|||||||
$posy=$this->_tableau_versements($pdf, $fac, $posy, $outputlangs);
|
$posy=$this->_tableau_versements($pdf, $fac, $posy, $outputlangs);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mode de règlement
|
// Mode de r<EFBFBD>glement
|
||||||
if ((! defined("FACTURE_CHQ_NUMBER") || ! FACTURE_CHQ_NUMBER) && (! defined("FACTURE_RIB_NUMBER") || ! FACTURE_RIB_NUMBER)) {
|
if ((! defined("FACTURE_CHQ_NUMBER") || ! FACTURE_CHQ_NUMBER) && (! defined("FACTURE_RIB_NUMBER") || ! FACTURE_RIB_NUMBER)) {
|
||||||
$pdf->SetXY ($this->marges['g'], 228);
|
$pdf->SetXY ($this->marges['g'], 228);
|
||||||
$pdf->SetTextColor(200,0,0);
|
$pdf->SetTextColor(200,0,0);
|
||||||
@ -270,7 +270,7 @@ class pdf_oursin extends ModelePDFFactures
|
|||||||
$pdf->SetTextColor(0,0,0);
|
$pdf->SetTextColor(0,0,0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Propose mode règlement par CHQ
|
// Propose mode r<EFBFBD>glement par CHQ
|
||||||
if (defined("FACTURE_CHQ_NUMBER"))
|
if (defined("FACTURE_CHQ_NUMBER"))
|
||||||
{
|
{
|
||||||
if (FACTURE_CHQ_NUMBER > 0)
|
if (FACTURE_CHQ_NUMBER > 0)
|
||||||
@ -287,7 +287,7 @@ class pdf_oursin extends ModelePDFFactures
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Propose mode règlement par RIB
|
// Propose mode r<EFBFBD>glement par RIB
|
||||||
if (defined("FACTURE_RIB_NUMBER"))
|
if (defined("FACTURE_RIB_NUMBER"))
|
||||||
{
|
{
|
||||||
if (FACTURE_RIB_NUMBER > 0)
|
if (FACTURE_RIB_NUMBER > 0)
|
||||||
@ -334,7 +334,7 @@ class pdf_oursin extends ModelePDFFactures
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Conditions de règlements
|
// Conditions de r<EFBFBD>glements
|
||||||
if ($fac->cond_reglement_code)
|
if ($fac->cond_reglement_code)
|
||||||
{
|
{
|
||||||
$pdf->SetFont('Arial','B',10);
|
$pdf->SetFont('Arial','B',10);
|
||||||
@ -354,6 +354,8 @@ class pdf_oursin extends ModelePDFFactures
|
|||||||
$pdf->Close();
|
$pdf->Close();
|
||||||
|
|
||||||
$pdf->Output($file);
|
$pdf->Output($file);
|
||||||
|
if (! empty($conf->global->MAIN_UMASK))
|
||||||
|
@chmod($file, octdec($conf->global->MAIN_UMASK));
|
||||||
|
|
||||||
$langs->setPhpLang(); // On restaure langue session
|
$langs->setPhpLang(); // On restaure langue session
|
||||||
return 1; // Pas d'erreur
|
return 1; // Pas d'erreur
|
||||||
@ -512,7 +514,7 @@ class pdf_oursin extends ModelePDFFactures
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* \brief Affiche le total à payer
|
* \brief Affiche le total <EFBFBD> payer
|
||||||
* \param pdf objet PDF
|
* \param pdf objet PDF
|
||||||
* \param fac objet facture
|
* \param fac objet facture
|
||||||
* \param deja_regle montant deja regle
|
* \param deja_regle montant deja regle
|
||||||
@ -617,7 +619,7 @@ class pdf_oursin extends ModelePDFFactures
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* \brief Affiche en-tête facture
|
* \brief Affiche en-t<EFBFBD>te facture
|
||||||
* \param pdf objet PDF
|
* \param pdf objet PDF
|
||||||
* \param fac objet facture
|
* \param fac objet facture
|
||||||
*/
|
*/
|
||||||
@ -705,7 +707,7 @@ class pdf_oursin extends ModelePDFFactures
|
|||||||
$pdf->MultiCell(80, 4, MAIN_INFO_SOCIETE_NOM, 0, 'L');
|
$pdf->MultiCell(80, 4, MAIN_INFO_SOCIETE_NOM, 0, 'L');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Caractéristiques emetteur
|
// Caract<EFBFBD>ristiques emetteur
|
||||||
$pdf->SetFont('Arial','',9);
|
$pdf->SetFont('Arial','',9);
|
||||||
if (defined("FAC_PDF_ADRESSE"))
|
if (defined("FAC_PDF_ADRESSE"))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -315,6 +315,8 @@ class pdf_soleil extends ModelePDFFicheinter
|
|||||||
$pdf->Close();
|
$pdf->Close();
|
||||||
|
|
||||||
$pdf->Output($file);
|
$pdf->Output($file);
|
||||||
|
if (! empty($conf->global->MAIN_UMASK))
|
||||||
|
@chmod($file, octdec($conf->global->MAIN_UMASK));
|
||||||
|
|
||||||
$langs->setPhpLang(); // On restaure langue session
|
$langs->setPhpLang(); // On restaure langue session
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
@ -20,7 +20,7 @@
|
|||||||
/**
|
/**
|
||||||
\file htdocs/includes/modules/mailings/peche.modules.php
|
\file htdocs/includes/modules/mailings/peche.modules.php
|
||||||
\ingroup mailing
|
\ingroup mailing
|
||||||
\brief Fichier de la classe permettant de générer la liste de destinataires Peche
|
\brief Fichier de la classe permettant de g<EFBFBD>n<EFBFBD>rer la liste de destinataires Peche
|
||||||
\version $Id$
|
\version $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -29,13 +29,13 @@ include_once DOL_DOCUMENT_ROOT.'/includes/modules/mailings/modules_mailings.php'
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
\class mailing_pomme
|
\class mailing_pomme
|
||||||
\brief Classe permettant de générer la liste des destinataires Pomme
|
\brief Classe permettant de g<EFBFBD>n<EFBFBD>rer la liste des destinataires Pomme
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class mailing_peche extends MailingTargets
|
class mailing_peche extends MailingTargets
|
||||||
{
|
{
|
||||||
var $name='EmailsFromFile'; // Identifiant du module mailing
|
var $name='EmailsFromFile'; // Identifiant du module mailing
|
||||||
var $desc='EMails issus d\'un fichier'; // Libellé utilisé si aucune traduction pour MailingModuleDescXXX ou XXX=name trouvée
|
var $desc='EMails issus d\'un fichier'; // Libell<EFBFBD> utilis<69> si aucune traduction pour MailingModuleDescXXX ou XXX=name trouv<75>e
|
||||||
var $require_module=array(); // Module mailing actif si modules require_module actifs
|
var $require_module=array(); // Module mailing actif si modules require_module actifs
|
||||||
var $require_admin=1; // Module mailing actif pour user admin ou non
|
var $require_admin=1; // Module mailing actif pour user admin ou non
|
||||||
var $picto='generic';
|
var $picto='generic';
|
||||||
@ -99,7 +99,7 @@ class mailing_peche extends MailingTargets
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Ajoute destinataires dans table des cibles
|
* \brief Ajoute destinataires dans table des cibles
|
||||||
* \param mailing_id Id du mailing concerné
|
* \param mailing_id Id du mailing concern<EFBFBD>
|
||||||
* \param filterarray Requete sql de selection des destinataires
|
* \param filterarray Requete sql de selection des destinataires
|
||||||
* \return int < 0 si erreur, nb ajout si ok
|
* \return int < 0 si erreur, nb ajout si ok
|
||||||
*/
|
*/
|
||||||
@ -123,7 +123,8 @@ class mailing_peche extends MailingTargets
|
|||||||
|
|
||||||
//$mesg = '<div class="ok">'.$langs->trans("FileTransferComplete").'</div>';
|
//$mesg = '<div class="ok">'.$langs->trans("FileTransferComplete").'</div>';
|
||||||
//print_r($_FILES);
|
//print_r($_FILES);
|
||||||
$handle = @fopen($upload_dir . "/" . $_FILES['username']['name'], "r");
|
$file=$upload_dir . "/" . $_FILES['username']['name'];
|
||||||
|
$handle = @fopen($file, "r");
|
||||||
if ($handle)
|
if ($handle)
|
||||||
{
|
{
|
||||||
$i = 0;
|
$i = 0;
|
||||||
@ -165,6 +166,7 @@ class mailing_peche extends MailingTargets
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
fclose($handle);
|
fclose($handle);
|
||||||
|
|
||||||
if ($i > 0)
|
if ($i > 0)
|
||||||
{
|
{
|
||||||
return -$i;
|
return -$i;
|
||||||
|
|||||||
@ -340,6 +340,7 @@ class modTelephonie extends DolibarrModules
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
fclose($fp);
|
fclose($fp);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//print "<tr><td>Creation de la table $name/td>";
|
//print "<tr><td>Creation de la table $name/td>";
|
||||||
|
|||||||
@ -397,6 +397,8 @@ class pdf_propale_azur extends ModelePDFPropales
|
|||||||
$pdf->Close();
|
$pdf->Close();
|
||||||
|
|
||||||
$pdf->Output($file);
|
$pdf->Output($file);
|
||||||
|
if (! empty($conf->global->MAIN_UMASK))
|
||||||
|
@chmod($file, octdec($conf->global->MAIN_UMASK));
|
||||||
|
|
||||||
$langs->setPhpLang(); // On restaure langue session
|
$langs->setPhpLang(); // On restaure langue session
|
||||||
return 1; // Pas d'erreur
|
return 1; // Pas d'erreur
|
||||||
|
|||||||
@ -270,6 +270,8 @@ class pdf_propale_jaune extends ModelePDFPropales
|
|||||||
$pdf->Close();
|
$pdf->Close();
|
||||||
|
|
||||||
$pdf->Output($file);
|
$pdf->Output($file);
|
||||||
|
if (! empty($conf->global->MAIN_UMASK))
|
||||||
|
@chmod($file, octdec($conf->global->MAIN_UMASK));
|
||||||
|
|
||||||
$langs->setPhpLang(); // On restaure langue session
|
$langs->setPhpLang(); // On restaure langue session
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
@ -16,28 +16,26 @@
|
|||||||
* along with this program; if not, write to the Free Software
|
* along with this program; if not, write to the Free Software
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
* or see http://www.gnu.org/
|
* or see http://www.gnu.org/
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\file htdocs/includes/modules/rapport/pdf_paiement.class.php
|
\file htdocs/includes/modules/rapport/pdf_paiement.class.php
|
||||||
\ingroup banque
|
\ingroup banque
|
||||||
\brief Fichier de la classe permettant de générer les rapports de paiement
|
\brief Fichier de la classe permettant de g<EFBFBD>n<EFBFBD>rer les rapports de paiement
|
||||||
\version $Revision$
|
\version $Id$
|
||||||
*/
|
*/
|
||||||
require_once(DOL_DOCUMENT_ROOT.'/includes/fpdf/fpdfi/fpdi_protection.php');
|
require_once(DOL_DOCUMENT_ROOT.'/includes/fpdf/fpdfi/fpdi_protection.php');
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\class pdf_paiement
|
\class pdf_paiement
|
||||||
\brief Classe permettant de générer les rapports de paiement
|
\brief Classe permettant de g<EFBFBD>n<EFBFBD>rer les rapports de paiement
|
||||||
*/
|
*/
|
||||||
class pdf_paiement extends FPDF
|
class pdf_paiement extends FPDF
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
\brief Constructeur
|
\brief Constructeur
|
||||||
\param db handler accès base de donnée
|
\param db handler acc<EFBFBD>s base de donn<EFBFBD>e
|
||||||
*/
|
*/
|
||||||
function pdf_paiement($db)
|
function pdf_paiement($db)
|
||||||
{
|
{
|
||||||
@ -160,14 +158,20 @@ class pdf_paiement extends FPDF
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Fonction générant le rapport sur le disque
|
\brief Fonction generant le rapport sur le disque
|
||||||
\param _dir repertoire
|
\param _dir repertoire
|
||||||
\param month mois du rapport
|
\param month mois du rapport
|
||||||
\param year annee du rapport
|
\param year annee du rapport
|
||||||
*/
|
*/
|
||||||
function write_file($_dir, $month, $year)
|
function write_file($_dir, $month, $year, $outputlangs='')
|
||||||
{
|
{
|
||||||
global $langs;
|
global $user,$langs,$conf;
|
||||||
|
|
||||||
|
if (! is_object($outputlangs)) $outputlangs=$langs;
|
||||||
|
// Force output charset to ISO, because FPDF expect text to be encoded in ISO
|
||||||
|
$outputlangs->charset_output=$outputlangs->character_set_client='ISO-8859-1';
|
||||||
|
|
||||||
|
$outputlangs->setPhpLang();
|
||||||
|
|
||||||
$this->month=$month;
|
$this->month=$month;
|
||||||
$this->year=$year;
|
$this->year=$year;
|
||||||
@ -194,7 +198,7 @@ class pdf_paiement extends FPDF
|
|||||||
$pdf = new FPDI_Protection('P','mm','A4');
|
$pdf = new FPDI_Protection('P','mm','A4');
|
||||||
$pdfrights = array('print'); // Ne permet que l'impression du document
|
$pdfrights = array('print'); // Ne permet que l'impression du document
|
||||||
$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
|
$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
|
||||||
$pdfownerpass = NULL; // Mot de passe du propriétaire, créé aléatoirement si pas défini
|
$pdfownerpass = NULL; // Mot de passe du propri<EFBFBD>taire, cr<63><72> al<61>atoirement si pas d<>fini
|
||||||
$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
|
$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -256,7 +260,7 @@ class pdf_paiement extends FPDF
|
|||||||
|
|
||||||
if ($pages == 0)
|
if ($pages == 0)
|
||||||
{
|
{
|
||||||
// force à générer au moins une page si le rapport ne contient aucune ligne
|
// force to build at least one page if report has no line
|
||||||
$pages = 1;
|
$pages = 1;
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
@ -275,6 +279,11 @@ class pdf_paiement extends FPDF
|
|||||||
$this->Body($pdf, 1, $lines);
|
$this->Body($pdf, 1, $lines);
|
||||||
|
|
||||||
$pdf->Output($_file);
|
$pdf->Output($_file);
|
||||||
|
if (! empty($conf->global->MAIN_UMASK))
|
||||||
|
@chmod($file, octdec($conf->global->MAIN_UMASK));
|
||||||
|
|
||||||
|
$langs->setPhpLang(); // On restaure langue session
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -266,6 +266,9 @@ class CMailFile
|
|||||||
fputs($fp, $this->eol); // This eol is added by the mail function, so we add it in log
|
fputs($fp, $this->eol); // This eol is added by the mail function, so we add it in log
|
||||||
fputs($fp, $this->message);
|
fputs($fp, $this->message);
|
||||||
fclose($fp);
|
fclose($fp);
|
||||||
|
if (! empty($conf->global->MAIN_UMASK))
|
||||||
|
@chmod($outputfile, octdec($conf->global->MAIN_UMASK));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -82,22 +82,22 @@ function check_mail ($mail)
|
|||||||
function unaccent_isostring($str)
|
function unaccent_isostring($str)
|
||||||
{
|
{
|
||||||
$translation = array(
|
$translation = array(
|
||||||
"\xE0" => "a",
|
"\xE0" => "a",
|
||||||
"\xE1" => "a",
|
"\xE1" => "a",
|
||||||
"\xE2" => "a",
|
"\xE2" => "a",
|
||||||
"\xE8" => "e",
|
"\xE8" => "e",
|
||||||
"\xE9" => "e",
|
"\xE9" => "e",
|
||||||
"\xEA" => "e",
|
"\xEA" => "e",
|
||||||
"\xEB" => "e",
|
"\xEB" => "e",
|
||||||
"\xEE" => "i",
|
"\xEE" => "i",
|
||||||
"\xEF" => "i",
|
"\xEF" => "i",
|
||||||
"\xF4" => "o",
|
"\xF4" => "o",
|
||||||
"\xF6" => "o",
|
"\xF6" => "o",
|
||||||
"\xFB" => "u",
|
"\xFB" => "u",
|
||||||
"\xFC" => "u"
|
"\xFC" => "u"
|
||||||
);
|
);
|
||||||
|
|
||||||
return str_replace(array_keys($translation), array_values($translation), $str);
|
return str_replace(array_keys($translation), array_values($translation), $str);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -185,6 +185,7 @@ function dolibarr_syslog($message, $level=LOG_INFO)
|
|||||||
|
|
||||||
fwrite($file,$message."\n");
|
fwrite($file,$message."\n");
|
||||||
fclose($file);
|
fclose($file);
|
||||||
|
// This is for log file, we do not change permissions
|
||||||
|
|
||||||
// If enable html log tag enabled and url parameter log defined, we show output log on HTML comments
|
// If enable html log tag enabled and url parameter log defined, we show output log on HTML comments
|
||||||
if (! empty($conf->global->MAIN_ENABLE_LOG_HTML) && ! empty($_GET["log"]))
|
if (! empty($conf->global->MAIN_ENABLE_LOG_HTML) && ! empty($_GET["log"]))
|
||||||
@ -300,7 +301,7 @@ function dolibarr_set_user_page_param($db, &$user, $url='', $tab)
|
|||||||
|
|
||||||
$db->begin();
|
$db->begin();
|
||||||
|
|
||||||
// On efface anciens param<61>tres pour toutes les cl<63> dans $tab
|
// On efface anciens param<61>tres pour toutes les cl<63> dans $ta
|
||||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."user_param";
|
$sql = "DELETE FROM ".MAIN_DB_PREFIX."user_param";
|
||||||
$sql.= " WHERE fk_user = ".$user->id;
|
$sql.= " WHERE fk_user = ".$user->id;
|
||||||
if ($url) $sql.=" AND page='".$url."'";
|
if ($url) $sql.=" AND page='".$url."'";
|
||||||
@ -771,9 +772,9 @@ function dolibarr_trunc($string,$size=40,$trunc='right')
|
|||||||
//print $conf->character_set_client.'-'.mb_strlen($string).'-'.strlen($string);
|
//print $conf->character_set_client.'-'.mb_strlen($string).'-'.strlen($string);
|
||||||
//print 'ee'.$string.$size.mb_strcut($string,0,$size,'UTF-8').'rr';
|
//print 'ee'.$string.$size.mb_strcut($string,0,$size,'UTF-8').'rr';
|
||||||
if (strlen($string) > $size)
|
if (strlen($string) > $size)
|
||||||
return substr($string,0,$size).'...';
|
return substr($string,0,$size).'...';
|
||||||
else
|
else
|
||||||
return $string;
|
return $string;
|
||||||
}
|
}
|
||||||
if ($trunc == 'middle')
|
if ($trunc == 'middle')
|
||||||
{
|
{
|
||||||
@ -1384,12 +1385,12 @@ function restrictedArea($user, $feature='societe', $objectid=0, $dbtablename='',
|
|||||||
else if (! empty($feature2)) // This should be used for future changes
|
else if (! empty($feature2)) // This should be used for future changes
|
||||||
{
|
{
|
||||||
if (empty($user->rights->$feature->$feature2->lire)
|
if (empty($user->rights->$feature->$feature2->lire)
|
||||||
&& empty($user->rights->$feature->$feature2->read)) $readok=0;
|
&& empty($user->rights->$feature->$feature2->read)) $readok=0;
|
||||||
}
|
}
|
||||||
else if (! empty($feature)) // This is for old permissions
|
else if (! empty($feature)) // This is for old permissions
|
||||||
{
|
{
|
||||||
if (empty($user->rights->$feature->lire)
|
if (empty($user->rights->$feature->lire)
|
||||||
&& empty($user->rights->$feature->read)) $readok=0;
|
&& empty($user->rights->$feature->read)) $readok=0;
|
||||||
}
|
}
|
||||||
if (! $readok) accessforbidden();
|
if (! $readok) accessforbidden();
|
||||||
//print "Read access is ok";
|
//print "Read access is ok";
|
||||||
@ -1425,12 +1426,12 @@ function restrictedArea($user, $feature='societe', $objectid=0, $dbtablename='',
|
|||||||
else if (! empty($feature2)) // This should be used for future changes
|
else if (! empty($feature2)) // This should be used for future changes
|
||||||
{
|
{
|
||||||
if (empty($user->rights->$feature->$feature2->creer)
|
if (empty($user->rights->$feature->$feature2->creer)
|
||||||
&& empty($user->rights->$feature->$feature2->write)) $createok=0;
|
&& empty($user->rights->$feature->$feature2->write)) $createok=0;
|
||||||
}
|
}
|
||||||
else if (! empty($feature)) // This is for old permissions
|
else if (! empty($feature)) // This is for old permissions
|
||||||
{
|
{
|
||||||
if (empty($user->rights->$feature->creer)
|
if (empty($user->rights->$feature->creer)
|
||||||
&& empty($user->rights->$feature->write)) $createok=0;
|
&& empty($user->rights->$feature->write)) $createok=0;
|
||||||
}
|
}
|
||||||
if (! $createok) accessforbidden();
|
if (! $createok) accessforbidden();
|
||||||
//print "Write access is ok";
|
//print "Write access is ok";
|
||||||
@ -1685,7 +1686,7 @@ function dol_move_uploaded_file($src_file, $dest_file, $allowoverwrite)
|
|||||||
$return=move_uploaded_file($src_file, $file_name);
|
$return=move_uploaded_file($src_file, $file_name);
|
||||||
if ($return)
|
if ($return)
|
||||||
{
|
{
|
||||||
if (! empty($conf->global->MAIN_UMASK)) @chmod($file_name, $conf->global->MAIN_UMASK);
|
if (! empty($conf->global->MAIN_UMASK)) @chmod($file_name, octdec($conf->global->MAIN_UMASK));
|
||||||
dolibarr_syslog("Functions.lib::dol_move_uploaded_file Success to move ".$src_file." to ".$file_name." - Umask=".$conf->global->MAIN_UMASK, LOG_DEBUG);
|
dolibarr_syslog("Functions.lib::dol_move_uploaded_file Success to move ".$src_file." to ".$file_name." - Umask=".$conf->global->MAIN_UMASK, LOG_DEBUG);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -2001,7 +2002,7 @@ function print_fleche_navigation($page,$file,$options='',$nextpage,$betweenarrow
|
|||||||
* \param rate Rate value to format (19.6 19,6 19.6% 19,6%,...)
|
* \param rate Rate value to format (19.6 19,6 19.6% 19,6%,...)
|
||||||
* \param foundpercent Add a percent % sign in output
|
* \param foundpercent Add a percent % sign in output
|
||||||
* \param info_bits Miscellanous information on vat
|
* \param info_bits Miscellanous information on vat
|
||||||
* \return string Chaine avec montant format<EFBFBD> (19,6 ou 19,6% ou 8.5% *)
|
* \return string Chaine avec montant format<EFBFBD> (19,6 ou 19,6% ou 8.5% *
|
||||||
*/
|
*/
|
||||||
function vatrate($rate,$addpercent=false,$info_bits=0)
|
function vatrate($rate,$addpercent=false,$info_bits=0)
|
||||||
{
|
{
|
||||||
@ -2157,8 +2158,8 @@ function get_product_vat_for_country($idprod, $countrycode)
|
|||||||
\remarks Si vendeur non assujeti a TVA, TVA par d<EFBFBD>faut=0. Fin de r<EFBFBD>gle.
|
\remarks Si vendeur non assujeti a TVA, TVA par d<EFBFBD>faut=0. Fin de r<EFBFBD>gle.
|
||||||
Si le (pays vendeur = pays acheteur) alors TVA par d<EFBFBD>faut=TVA du produit vendu. Fin de r<EFBFBD>gle.
|
Si le (pays vendeur = pays acheteur) alors TVA par d<EFBFBD>faut=TVA du produit vendu. Fin de r<EFBFBD>gle.
|
||||||
Si (vendeur et acheteur dans Communaut<EFBFBD> europ<EFBFBD>enne) et (bien vendu = moyen de transports neuf comme auto, bateau, avion) alors TVA par d<EFBFBD>faut=0 (La TVA doit <EFBFBD>tre pay<EFBFBD> par acheteur au centre d'impots de son pays et non au vendeur). Fin de r<EFBFBD>gle.
|
Si (vendeur et acheteur dans Communaut<EFBFBD> europ<EFBFBD>enne) et (bien vendu = moyen de transports neuf comme auto, bateau, avion) alors TVA par d<EFBFBD>faut=0 (La TVA doit <EFBFBD>tre pay<EFBFBD> par acheteur au centre d'impots de son pays et non au vendeur). Fin de r<EFBFBD>gle.
|
||||||
Si (vendeur et acheteur dans Communaut<EFBFBD> europ<EFBFBD>enne) et (acheteur = particulier ou entreprise sans num TVA intra) alors TVA par d<EFBFBD>faut=TVA du produit vendu. Fin de r<EFBFBD>gle.
|
Si (vendeur et acheteur dans Communaut<EFBFBD> europ<EFBFBD>enne) et (acheteur = particulier ou entreprise sans num TVA intra) alors TVA par d<EFBFBD>faut=TVA du produit vendu. Fin de r<EFBFBD>gle
|
||||||
Si (vendeur et acheteur dans Communaut<EFBFBD> europ<EFBFBD>enne) et (acheteur = entreprise avec num TVA) intra alors TVA par d<EFBFBD>faut=0. Fin de r<EFBFBD>gle.
|
Si (vendeur et acheteur dans Communaut<EFBFBD> europ<EFBFBD>enne) et (acheteur = entreprise avec num TVA) intra alors TVA par d<EFBFBD>faut=0. Fin de r<EFBFBD>gle
|
||||||
Sinon TVA propos<EFBFBD>e par d<EFBFBD>faut=0. Fin de r<EFBFBD>gle.
|
Sinon TVA propos<EFBFBD>e par d<EFBFBD>faut=0. Fin de r<EFBFBD>gle.
|
||||||
\param societe_vendeuse Objet soci<EFBFBD>t<EFBFBD> vendeuse
|
\param societe_vendeuse Objet soci<EFBFBD>t<EFBFBD> vendeuse
|
||||||
\param societe_acheteuse Objet soci<EFBFBD>t<EFBFBD> acheteuse
|
\param societe_acheteuse Objet soci<EFBFBD>t<EFBFBD> acheteuse
|
||||||
@ -2190,7 +2191,7 @@ function get_default_tva($societe_vendeuse, $societe_acheteuse, $taux_produit, $
|
|||||||
// Si (vendeur et acheteur dans Communaut<75> europ<6F>enne) et (bien vendu = moyen de transports neuf comme auto, bateau, avion) alors TVA par d<>faut=0 (La TVA doit <20>tre pay<61> par l'acheteur au centre d'impots de son pays et non au vendeur). Fin de r<>gle.
|
// Si (vendeur et acheteur dans Communaut<75> europ<6F>enne) et (bien vendu = moyen de transports neuf comme auto, bateau, avion) alors TVA par d<>faut=0 (La TVA doit <20>tre pay<61> par l'acheteur au centre d'impots de son pays et non au vendeur). Fin de r<>gle.
|
||||||
// Non g<>r<EFBFBD>
|
// Non g<>r<EFBFBD>
|
||||||
|
|
||||||
// Si (vendeur et acheteur dans Communaut<75> europ<6F>enne) et (acheteur = particulier ou entreprise sans num TVA intra) alors TVA par d<>faut=TVA du produit vendu. Fin de r<>gle.
|
// Si (vendeur et acheteur dans Communaut<75> europ<6F>enne) et (acheteur = particulier ou entreprise sans num TVA intra) alors TVA par d<>faut=TVA du produit vendu. Fin de r<>gle
|
||||||
if (($societe_vendeuse->isInEEC() && $societe_acheteuse->isInEEC()) && ! $societe_acheteuse->tva_intra)
|
if (($societe_vendeuse->isInEEC() && $societe_acheteuse->isInEEC()) && ! $societe_acheteuse->tva_intra)
|
||||||
{
|
{
|
||||||
if ($idprod) return get_product_vat_for_country($idprod,$societe_vendeuse->pays_code);
|
if ($idprod) return get_product_vat_for_country($idprod,$societe_vendeuse->pays_code);
|
||||||
@ -2198,7 +2199,7 @@ function get_default_tva($societe_vendeuse, $societe_acheteuse, $taux_produit, $
|
|||||||
return $taux_produit;
|
return $taux_produit;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Si (vendeur et acheteur dans Communaut<75> europ<6F>enne) et (acheteur = entreprise avec num TVA intra) alors TVA par d<>faut=0. Fin de r<>gle.
|
// Si (vendeur et acheteur dans Communaut<75> europ<6F>enne) et (acheteur = entreprise avec num TVA intra) alors TVA par d<>faut=0. Fin de r<>gle
|
||||||
if (($societe_vendeuse->isInEEC() && $societe_acheteuse->isInEEC()) && $societe_acheteuse->tva_intra)
|
if (($societe_vendeuse->isInEEC() && $societe_acheteuse->isInEEC()) && $societe_acheteuse->tva_intra)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
@ -2215,8 +2216,8 @@ function get_default_tva($societe_vendeuse, $societe_acheteuse, $taux_produit, $
|
|||||||
\remarks Si vendeur non assujeti a TVA, TVA par d<EFBFBD>faut=0. Fin de r<EFBFBD>gle.
|
\remarks Si vendeur non assujeti a TVA, TVA par d<EFBFBD>faut=0. Fin de r<EFBFBD>gle.
|
||||||
Si le (pays vendeur = pays acheteur) alors TVA par d<EFBFBD>faut=TVA du produit vendu. Fin de r<EFBFBD>gle.
|
Si le (pays vendeur = pays acheteur) alors TVA par d<EFBFBD>faut=TVA du produit vendu. Fin de r<EFBFBD>gle.
|
||||||
Si (vendeur et acheteur dans Communaut<EFBFBD> europ<EFBFBD>enne) et (bien vendu = moyen de transports neuf comme auto, bateau, avion) alors TVA par d<EFBFBD>faut=0 (La TVA doit <EFBFBD>tre pay<EFBFBD> par acheteur au centre d'impots de son pays et non au vendeur). Fin de r<EFBFBD>gle.
|
Si (vendeur et acheteur dans Communaut<EFBFBD> europ<EFBFBD>enne) et (bien vendu = moyen de transports neuf comme auto, bateau, avion) alors TVA par d<EFBFBD>faut=0 (La TVA doit <EFBFBD>tre pay<EFBFBD> par acheteur au centre d'impots de son pays et non au vendeur). Fin de r<EFBFBD>gle.
|
||||||
Si (vendeur et acheteur dans Communaut<EFBFBD> europ<EFBFBD>enne) et (acheteur = particulier ou entreprise sans num TVA intra) alors TVA par d<EFBFBD>faut=TVA du produit vendu. Fin de r<EFBFBD>gle.
|
Si (vendeur et acheteur dans Communaut<EFBFBD> europ<EFBFBD>enne) et (acheteur = particulier ou entreprise sans num TVA intra) alors TVA par d<EFBFBD>faut=TVA du produit vendu. Fin de r<EFBFBD>gle
|
||||||
Si (vendeur et acheteur dans Communaut<EFBFBD> europ<EFBFBD>enne) et (acheteur = entreprise avec num TVA) intra alors TVA par d<EFBFBD>faut=0. Fin de r<EFBFBD>gle.
|
Si (vendeur et acheteur dans Communaut<EFBFBD> europ<EFBFBD>enne) et (acheteur = entreprise avec num TVA) intra alors TVA par d<EFBFBD>faut=0. Fin de r<EFBFBD>gle
|
||||||
Sinon TVA propos<EFBFBD>e par d<EFBFBD>faut=0. Fin de r<EFBFBD>gle.
|
Sinon TVA propos<EFBFBD>e par d<EFBFBD>faut=0. Fin de r<EFBFBD>gle.
|
||||||
\param societe_vendeuse Objet soci<EFBFBD>t<EFBFBD> vendeuse
|
\param societe_vendeuse Objet soci<EFBFBD>t<EFBFBD> vendeuse
|
||||||
\param societe_acheteuse Objet soci<EFBFBD>t<EFBFBD> acheteuse
|
\param societe_acheteuse Objet soci<EFBFBD>t<EFBFBD> acheteuse
|
||||||
@ -2289,7 +2290,7 @@ function departement_rowid($db,$code, $pays_id)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Renvoi un chemin de classement r<EFBFBD>pertoire en fonction d'un id
|
\brief Renvoi un chemin de classement r<EFBFBD>pertoire en fonction d'un i
|
||||||
\remarks Examples: 1->"0/0/1/", 15->"0/1/5/"
|
\remarks Examples: 1->"0/0/1/", 15->"0/1/5/"
|
||||||
\param $num Id a d<EFBFBD>composer
|
\param $num Id a d<EFBFBD>composer
|
||||||
\param $level Niveau de decoupage (1, 2 ou 3 niveaux)
|
\param $level Niveau de decoupage (1, 2 ou 3 niveaux)
|
||||||
@ -2311,6 +2312,8 @@ function get_exdir($num,$level=3)
|
|||||||
*/
|
*/
|
||||||
function create_exdir($dir)
|
function create_exdir($dir)
|
||||||
{
|
{
|
||||||
|
global $conf;
|
||||||
|
|
||||||
dolibarr_syslog("functions.lib::create_exdir: dir=".$dir,LOG_INFO);
|
dolibarr_syslog("functions.lib::create_exdir: dir=".$dir,LOG_INFO);
|
||||||
|
|
||||||
if (@is_dir($dir)) return 0;
|
if (@is_dir($dir)) return 0;
|
||||||
@ -2332,21 +2335,24 @@ function create_exdir($dir)
|
|||||||
{
|
{
|
||||||
if (! @is_dir($ccdir))
|
if (! @is_dir($ccdir))
|
||||||
{
|
{
|
||||||
dolibarr_syslog("functions.lib::create_exdir: Directory '".$ccdir."' does not exists or is outside open_basedir PHP setting.",LOG_DEBUG);
|
dolibarr_syslog("functions.lib::create_exdir: Directory '".$ccdir."' does not exists or is outside open_basedir PHP setting.",LOG_DEBUG);
|
||||||
|
|
||||||
umask(0);
|
umask(0);
|
||||||
if (! @mkdir($ccdir, 0755))
|
$dirmaskdec=octdec('0755');
|
||||||
{
|
if (! empty($conf->global->MAIN_UMASK)) $dirmaskdec=octdec($conf->global->MAIN_UMASK);
|
||||||
// Si le is_dir a renvoye une fausse info, alors on passe ici.
|
$dirmaskdec |= octdec('0110');
|
||||||
dolibarr_syslog("functions.lib::create_exdir: Fails to create directory '".$ccdir."' or directory already exists.",LOG_WARNING);
|
if (! @mkdir($ccdir, $dirmaskdec))
|
||||||
$nberr++;
|
{
|
||||||
}
|
// Si le is_dir a renvoye une fausse info, alors on passe ici.
|
||||||
else
|
dolibarr_syslog("functions.lib::create_exdir: Fails to create directory '".$ccdir."' or directory already exists.",LOG_WARNING);
|
||||||
{
|
$nberr++;
|
||||||
dolibarr_syslog("functions.lib::create_exdir: Directory '".$ccdir."' created",LOG_DEBUG);
|
}
|
||||||
$nberr=0; // On remet a zero car si on arrive ici, cela veut dire que les <20>checs pr<70>c<EFBFBD>dents peuvent etre ignor<6F>s
|
else
|
||||||
$nbcreated++;
|
{
|
||||||
}
|
dolibarr_syslog("functions.lib::create_exdir: Directory '".$ccdir."' created",LOG_DEBUG);
|
||||||
|
$nberr=0; // On remet a zero car si on arrive ici, cela veut dire que les <20>checs pr<70>c<EFBFBD>dents peuvent etre ignor<6F>s
|
||||||
|
$nbcreated++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -597,10 +597,8 @@ class Ldap
|
|||||||
{
|
{
|
||||||
fputs($fp, $content);
|
fputs($fp, $content);
|
||||||
fclose($fp);
|
fclose($fp);
|
||||||
// We change mod to allow file to be overwritten if dump is launched
|
if (! empty($conf->global->MAIN_UMASK))
|
||||||
// from command line or a web session.
|
@chmod($outputfile, octdec($conf->global->MAIN_UMASK));
|
||||||
// 0666 = rw-rw-rw-
|
|
||||||
if (! empty($conf->global->MAIN_UMASK)) @chmod($file, $conf->global->MAIN_UMASK);
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@ -38,7 +38,7 @@ function makesalt($type=CRYPT_SALT_LENGTH)
|
|||||||
{
|
{
|
||||||
case 12: // 8 + 4
|
case 12: // 8 + 4
|
||||||
$saltlen=8; $saltprefix='$1$'; $saltsuffix='$'; break;
|
$saltlen=8; $saltprefix='$1$'; $saltsuffix='$'; break;
|
||||||
case 8: // 8 + 4 (Pour compatibilite, ne devrait pas etre utilisé)
|
case 8: // 8 + 4 (Pour compatibilite, ne devrait pas etre utilis<EFBFBD>)
|
||||||
$saltlen=8; $saltprefix='$1$'; $saltsuffix='$'; break;
|
$saltlen=8; $saltprefix='$1$'; $saltsuffix='$'; break;
|
||||||
case 2: // 2
|
case 2: // 2
|
||||||
default: // by default, fall back on Standard DES (should work everywhere)
|
default: // by default, fall back on Standard DES (should work everywhere)
|
||||||
@ -89,10 +89,14 @@ function encodedecode_dbpassconf($level=0)
|
|||||||
}
|
}
|
||||||
fclose($fp);
|
fclose($fp);
|
||||||
|
|
||||||
if ($fp = @fopen(DOL_DOCUMENT_ROOT.'/conf/conf.php','w'))
|
$file=DOL_DOCUMENT_ROOT.'/conf/conf.php';
|
||||||
|
if ($fp = @fopen($file,'w'))
|
||||||
{
|
{
|
||||||
fputs($fp, $config, strlen($config));
|
fputs($fp, $config, strlen($config));
|
||||||
fclose($fp);
|
fclose($fp);
|
||||||
|
// It's config file, so we set permission for creator only
|
||||||
|
// @chmod($file, octdec('0600'));
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -109,9 +113,9 @@ function encodedecode_dbpassconf($level=0)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Encode une chaine de caractére
|
* \brief Encode une chaine de caract<EFBFBD>re
|
||||||
* \param chaine chaine de caractères a encoder
|
* \param chaine chaine de caract<EFBFBD>res a encoder
|
||||||
* \return string_coded chaine de caractères encodée
|
* \return string_coded chaine de caract<EFBFBD>res encod<EFBFBD>e
|
||||||
*/
|
*/
|
||||||
function dol_encode($chain)
|
function dol_encode($chain)
|
||||||
{
|
{
|
||||||
@ -125,9 +129,9 @@ function dol_encode($chain)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Decode une chaine de caractére
|
* \brief Decode une chaine de caract<EFBFBD>re
|
||||||
* \param chain chaine de caractéres a decoder
|
* \param chain chaine de caract<EFBFBD>res a decoder
|
||||||
* \return string_coded chaine de caractéres decodée
|
* \return string_coded chaine de caract<EFBFBD>res decod<EFBFBD>e
|
||||||
*/
|
*/
|
||||||
function dol_decode($chain)
|
function dol_decode($chain)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -201,6 +201,8 @@ function build_calfile($format='vcal',$title,$desc,$events_array,$outputfile,$fi
|
|||||||
fwrite($calfileh,"END:VCALENDAR");
|
fwrite($calfileh,"END:VCALENDAR");
|
||||||
|
|
||||||
fclose($calfileh);
|
fclose($calfileh);
|
||||||
|
if (! empty($conf->global->MAIN_UMASK))
|
||||||
|
@chmod($outputfile, octdec($conf->global->MAIN_UMASK));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -312,11 +314,8 @@ function build_rssfile($format='rss',$title,$desc,$events_array,$outputfile,$fil
|
|||||||
fwrite($fichier, '</rss>');
|
fwrite($fichier, '</rss>');
|
||||||
|
|
||||||
fclose($fichier);
|
fclose($fichier);
|
||||||
|
if (! empty($conf->global->MAIN_UMASK))
|
||||||
// We change mod to allow file to be overwritten if dump is launched
|
@chmod($outputfile, octdec($conf->global->MAIN_UMASK));
|
||||||
// from command line or a web session.
|
|
||||||
// 0666 = rw-rw-rw-
|
|
||||||
if (! empty($conf->global->MAIN_UMASK)) @chmod($fichier, $conf->global->MAIN_UMASK);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -50,7 +50,7 @@ class pdf_sirocco extends ModelePDFDeliveryOrder
|
|||||||
|
|
||||||
$this->db = $db;
|
$this->db = $db;
|
||||||
$this->name = "sirocco";
|
$this->name = "sirocco";
|
||||||
$this->description = "Modele de bon de réception livraison simple";
|
$this->description = "Modele de bon de r<EFBFBD>ception livraison simple";
|
||||||
|
|
||||||
// Dimension page pour format A4
|
// Dimension page pour format A4
|
||||||
$this->type = 'pdf';
|
$this->type = 'pdf';
|
||||||
@ -64,7 +64,7 @@ class pdf_sirocco extends ModelePDFDeliveryOrder
|
|||||||
|
|
||||||
// Recupere emmetteur
|
// Recupere emmetteur
|
||||||
$this->emetteur=$mysoc;
|
$this->emetteur=$mysoc;
|
||||||
if (! $this->emetteur->pays_code) $this->emetteur->pays_code=substr($langs->defaultlang,-2); // Par defaut, si n'était pas défini
|
if (! $this->emetteur->pays_code) $this->emetteur->pays_code=substr($langs->defaultlang,-2); // Par defaut, si n'<EFBFBD>tait pas d<>fini
|
||||||
|
|
||||||
$this->error = "";
|
$this->error = "";
|
||||||
}
|
}
|
||||||
@ -250,6 +250,9 @@ class pdf_sirocco extends ModelePDFDeliveryOrder
|
|||||||
$this->_tableau($pdf, $tab_top, $tab_height, $nexY, $outputlangs);
|
$this->_tableau($pdf, $tab_top, $tab_height, $nexY, $outputlangs);
|
||||||
|
|
||||||
$pdf->Output($file);
|
$pdf->Output($file);
|
||||||
|
if (! empty($conf->global->MAIN_UMASK))
|
||||||
|
@chmod($file, octdec($conf->global->MAIN_UMASK));
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -55,7 +55,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder
|
|||||||
|
|
||||||
$this->db = $db;
|
$this->db = $db;
|
||||||
$this->name = "typhon";
|
$this->name = "typhon";
|
||||||
$this->description = "Modele de bon de réception livraison complet (logo...)";
|
$this->description = "Modele de bon de r<EFBFBD>ception livraison complet (logo...)";
|
||||||
|
|
||||||
// Dimension page pour format A4
|
// Dimension page pour format A4
|
||||||
$this->type = 'pdf';
|
$this->type = 'pdf';
|
||||||
@ -76,7 +76,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder
|
|||||||
|
|
||||||
// Recupere emmetteur
|
// Recupere emmetteur
|
||||||
$this->emetteur=$mysoc;
|
$this->emetteur=$mysoc;
|
||||||
if (! $this->emetteur->pays_code) $this->emetteur->pays_code=substr($langs->defaultlang,-2); // Par defaut, si n'était pas défini
|
if (! $this->emetteur->pays_code) $this->emetteur->pays_code=substr($langs->defaultlang,-2); // Par defaut, si n'<EFBFBD>tait pas d<>fini
|
||||||
|
|
||||||
$this->tva=array();
|
$this->tva=array();
|
||||||
|
|
||||||
@ -321,6 +321,8 @@ class pdf_typhon extends ModelePDFDeliveryOrder
|
|||||||
$pdf->Close();
|
$pdf->Close();
|
||||||
|
|
||||||
$pdf->Output($file);
|
$pdf->Output($file);
|
||||||
|
if (! empty($conf->global->MAIN_UMASK))
|
||||||
|
@chmod($file, octdec($conf->global->MAIN_UMASK));
|
||||||
|
|
||||||
return 1; // Pas d'erreur
|
return 1; // Pas d'erreur
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user