diff --git a/htdocs/fichinter/fiche.php b/htdocs/fichinter/fiche.php
index 302af31512d..11e7b9863f0 100644
--- a/htdocs/fichinter/fiche.php
+++ b/htdocs/fichinter/fiche.php
@@ -20,10 +20,11 @@
* $Source$
*/
-/** \file htdocs/fichinter/fiche.php
- \brief Fichier fiche intervention
- \ingroup ficheinter
- \version $Revision$
+/**
+ \file htdocs/fichinter/fiche.php
+ \brief Fichier fiche intervention
+ \ingroup ficheinter
+ \version $Revision$
*/
require("./pre.inc.php");
@@ -33,90 +34,90 @@ require("../project.class.php");
/*
* Sécurité accés client
*/
-if ($user->societe_id > 0)
+if ($user->societe_id > 0)
{
- $action = '';
- $socidp = $user->societe_id;
+ $action = '';
+ $socidp = $user->societe_id;
}
if ($_GET["socidp"])
{
- $sql = "SELECT s.nom, s.idp, s.prefix_comm FROM ".MAIN_DB_PREFIX."societe as s WHERE s.idp = ".$_GET["socidp"];
+ $sql = "SELECT s.nom, s.idp, s.prefix_comm FROM ".MAIN_DB_PREFIX."societe as s WHERE s.idp = ".$_GET["socidp"];
- $result = $db->query($sql);
- if ($result)
+ $result = $db->query($sql);
+ if ($result)
{
- if ( $db->num_rows() )
- {
- $objsoc = $db->fetch_object($result);
- }
- $db->free();
+ if ( $db->num_rows($result) )
+ {
+ $objsoc = $db->fetch_object($result);
+ }
+ $db->free($result);
+ }
+ else {
+ dolibarr_print_error($db);
}
- else {
- dolibarr_print_error($db);
- }
}
-llxHeader();
-
/*
* Traitements des actions
- *
- *
*/
if ($_GET["action"] == 'valid')
{
- $fichinter = new Fichinter($db);
- $fichinter->id = $_GET["id"];
- $fichinter->valid($user->id, $conf->fichinter->outputdir);
+ $fichinter = new Fichinter($db);
+ $fichinter->id = $_GET["id"];
+ $fichinter->valid($user->id, $conf->fichinter->outputdir);
}
if ($_POST["action"] == 'add')
{
- $fichinter = new Fichinter($db);
+ $fichinter = new Fichinter($db);
- $fichinter->date = $db->idate(mktime(12, 1 , 1, $_POST["pmonth"], $_POST["pday"], $_POST["pyear"]));
- $fichinter->socidp = $_POST["socidp"];
- $fichinter->duree = $_POST["duree"];
- $fichinter->projet_id = $_POST["projetidp"];
- $fichinter->author = $user->id;
- $fichinter->note = $_POST["note"];
- $fichinter->ref = $_POST["ref"];
+ $fichinter->date = $db->idate(mktime(12, 1 , 1, $_POST["pmonth"], $_POST["pday"], $_POST["pyear"]));
+ $fichinter->socidp = $_POST["socidp"];
+ $fichinter->duree = $_POST["duree"];
+ $fichinter->projet_id = $_POST["projetidp"];
+ $fichinter->author = $user->id;
+ $fichinter->note = $_POST["note"];
+ $fichinter->ref = $_POST["ref"];
- $id = $fichinter->create();
- $_GET["id"]=$id; // Force raffraichissement sur fiche venant d'etre créée
+ $id = $fichinter->create();
+ $_GET["id"]=$id; // Force raffraichissement sur fiche venant d'etre créée
}
if ($_POST["action"] == 'update')
{
- $fichinter = new Fichinter($db);
+ $fichinter = new Fichinter($db);
- $fichinter->date = $db->idate(mktime(12, 1 , 1, $_POST["remonth"], $_POST["reday"], $_POST["reyear"]));
- $fichinter->socidp = $_POST["socidp"];
- $fichinter->duree = $_POST["duree"];
- $fichinter->projet_id = $_POST["projetidp"];
- $fichinter->author = $user->id;
- $fichinter->note = $_POST["note"];
- $fichinter->ref = $_POST["ref"];
+ $fichinter->date = $db->idate(mktime(12, 1 , 1, $_POST["remonth"], $_POST["reday"], $_POST["reyear"]));
+ $fichinter->socidp = $_POST["socidp"];
+ $fichinter->duree = $_POST["duree"];
+ $fichinter->projet_id = $_POST["projetidp"];
+ $fichinter->author = $user->id;
+ $fichinter->note = $_POST["note"];
+ $fichinter->ref = $_POST["ref"];
- $fichinter->update($_POST["id"]);
- $_GET["id"]=$_POST["id"]; // Force raffraichissement sur fiche venant d'etre créée
+ $fichinter->update($_POST["id"]);
+ $_GET["id"]=$_POST["id"]; // Force raffraichissement sur fiche venant d'etre créée
}
-/*
- *
+/**
* Generation du pdf
- *
*/
if ($_GET["action"] == 'generate' && $_GET["id"])
{
- fichinter_pdf_create($db, $_GET["id"]);
- $mesg = "PDF généré";
+ fichinter_pdf_create($db, $_GET["id"]);
}
+
+llxHeader();
+
+
+$sel = new Form($db);
+
+
/*
*
* Mode creation
@@ -125,291 +126,247 @@ if ($_GET["action"] == 'generate' && $_GET["id"])
*/
if ($_GET["action"] == 'create')
{
- print_titre("Création d'une fiche d'intervention");
+ print_titre($langs->trans("AddIntervention"));
- if ( $objsoc->prefix_comm )
+ if ( $objsoc->prefix_comm )
{
- $numpr = "FI-" . $objsoc->prefix_comm . "-" . strftime("%y%m%d", time());
-
- $sql = "SELECT count(*) FROM ".MAIN_DB_PREFIX."propal WHERE ref like '$numpr%'";
-
- if ( $db->query($sql) )
- {
- $num = $db->result(0, 0);
- $db->free();
- if ($num > 0)
- {
- $numpr .= "." . ($num + 1);
- }
- }
+ $numpr = "FI-" . $objsoc->prefix_comm . "-" . strftime("%y%m%d", time());
- $fix = new Fichinter($db);
- $numpr = $fix->get_new_num($objsoc->prefix_comm);
-
- print "
';
-
}
- else
+ else
{
- print "Vous devez d'abord associer un prefixe commercial a cette societe" ;
+ print "Vous devez d'abord associer un prefixe commercial a cette societe" ;
}
}
-$sel = new Form($db);
/*
- *
- * Mode update
- * Mise a jour de la fiche d'intervention
- *
- */
+*
+* Mode update
+* Mise a jour de la fiche d'intervention
+*
+*/
if ($_GET["action"] == 'edit')
{
- $fichinter = new Fichinter($db);
- $fichinter->fetch($_GET["id"]);
+ $fichinter = new Fichinter($db);
+ $fichinter->fetch($_GET["id"]);
- /*
- * Initialisation de la liste des projets
- */
- $prj = new Project($db);
- $listeprj = $prj->liste_array($fichinter->societe_id);
-
+ /*
+ * Initialisation de la liste des projets
+ */
+ $prj = new Project($db);
+ $listeprj = $prj->liste_array($fichinter->societe_id);
- print_titre("Mettre à jour Fiche d'intervention");
- print "";
+ print_titre($langs->trans("EditIntervention"));
- print " ";
- print " ";
+ print " ";
- print '";
-
- print " ";
-
}
/*
- * Mode visu
- *
- */
+* Mode visu
+*
+*/
if ($_GET["id"] && $_GET["action"] != 'edit')
{
- print_fiche_titre("Fiche d'intervention",$mesg);
+ print_fiche_titre($langs->trans("Intervention"),$mesg);
- $fichinter = new Fichinter($db);
- if ($fichinter->fetch($_GET["id"]))
+ $fichinter = new Fichinter($db);
+ if ($fichinter->fetch($_GET["id"]))
{
- $fichinter->fetch_client();
+ $fichinter->fetch_client();
- print '';
- print ''.$langs->trans("Company").' '.$fichinter->client->nom.' ';
- print 'Date '.strftime("%A %d %B %Y",$fichinter->date).' ';
- print ''.$langs->trans("Ref").' '.$fichinter->ref.' ';
- print ''.$langs->trans("Duration").' '.$fichinter->duree.' ';
- if ($conf->projet->enabled) {
- $fichinter->fetch_projet();
- print ''.$langs->trans("Ref").' '.$fichinter->projet.' ';
- }
- print ''.$langs->trans("Description").' ';
- print '';
- print nl2br($fichinter->note);
- print ' ';
-
- print '';
- print "
";
+ print '';
+ print ''.$langs->trans("Company").' '.$fichinter->client->nom.' ';
+ print 'Date '.strftime("%A %d %B %Y",$fichinter->date).' ';
+ print ''.$langs->trans("Ref").' '.$fichinter->ref.' ';
+ print ''.$langs->trans("Duration").' '.$fichinter->duree.' ';
+ if ($conf->projet->enabled) {
+ $fichinter->fetch_projet();
+ print ''.$langs->trans("Ref").' '.$fichinter->projet.' ';
+ }
+ print ''.$langs->trans("Status").' '.$fichinter->statut.' ';
+ print ''.$langs->trans("Description").' ';
+ print '';
+ print nl2br($fichinter->note);
+ print ' ';
+
+ print '';
+ print "
";
- /*
- * Barre d'actions
- *
- */
- print ' ';
- print '';
+ /*
+ * Barre d'actions
+ *
+ */
+ print '
';
+ print '
';
- if ($user->societe_id == 0)
- {
-
- if ($fichinter->statut == 0)
- {
- print '
'.$langs->trans("Edit").' ';
- }
-
- $file = $conf->fichinter->dir_output . "/$fichinter->ref/$fichinter->ref.pdf";
- if ($fichinter->statut == 0 or !file_exists($file))
- {
- $langs->load("bills");
- print '
'.$langs->trans("BuildPDF").' ';
- }
-
- if ($fichinter->statut == 0)
- {
- print '
'.$langs->trans("Valid").' ';
- }
-
- }
- print '
';
-
- print '
';
-
- print '
';
- print_titre("Documents générés");
- print '';
-
- $file = $conf->fichinter->dir_output . "/$fichinter->ref/$fichinter->ref.pdf";
- $relativepath="$fichinter->ref/$fichinter->ref.pdf";
-
- $var=true;
+ if ($user->societe_id == 0)
+ {
+
+ if ($fichinter->statut == 0)
+ {
+ print ''.$langs->trans("Edit").' ';
+ }
+
+ if ($fichinter->statut == 0)
+ {
+ print ''.$langs->trans("Valid").' ';
+ }
+
+ $file = $conf->fichinter->dir_output."/".$fichinter->ref."/".$fichinter->ref.pdf;
+ if ($fichinter->statut == 0 or !file_exists($file))
+ {
+ $langs->load("bills");
+ print ''.$langs->trans("BuildPDF").' ';
+ }
+
+ }
+ print '';
+
+ print ' ';
+
+ print '';
+
+ print_titre($langs->trans("Documents"));
+ print '';
+
+ $file = $conf->fichinter->dir_output . "/$fichinter->ref/$fichinter->ref.pdf";
+ $relativepath="$fichinter->ref/$fichinter->ref.pdf";
+
+ $var=true;
+
+ if (file_exists($file))
+ {
+ print "Ficheinter PDF ";
+ print ''.$fichinter->ref.'.pdf ';
+ print ''.filesize($file). ' bytes ';
+ print ''.strftime("%d %b %Y %H:%M:%S",filemtime($file)).' ';
+ }
+
+ print "
\n";
- if (file_exists($file))
- {
- print "Ficheinter PDF ";
- print ''.$fichinter->ref.'.pdf ';
- print ''.filesize($file). ' bytes ';
- print ''.strftime("%d %b %Y %H:%M:%S",filemtime($file)).' ';
- }
-
- print "
\n";
-
}
- else
+ else
{
- print "Fiche inexistante";
+ print "Fiche inexistante";
}
}
diff --git a/htdocs/includes/modules/fichinter/modules_fichinter.php b/htdocs/includes/modules/fichinter/modules_fichinter.php
index bf9d2d9735e..64e6c5d759e 100644
--- a/htdocs/includes/modules/fichinter/modules_fichinter.php
+++ b/htdocs/includes/modules/fichinter/modules_fichinter.php
@@ -1,6 +1,6 @@
- * Copyright (C) 2004 Laurent Destailleur
+/* Copyright (C) 2003 Rodolphe Quiedeville
+ * Copyright (C) 2004-2005 Laurent Destailleur
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -22,7 +22,8 @@
*
*/
-/*! \file htdocs/includes/modules/fichinter/modules_fichinter.php
+/**
+ \file htdocs/includes/modules/fichinter/modules_fichinter.php
\ingroup ficheinter
\brief Fichier contenant la classe mère de generation des fiches interventions en PDF
et la classe mère de numérotation des fiches interventions
@@ -30,22 +31,23 @@
*/
-/*! \class ModelePDFFicheinter
- \brief Classe mère des modèles de fiche intervention
+/**
+ \class ModelePDFFicheinter
+ \brief Classe mère des modèles de fiche intervention
*/
class ModelePDFFicheinter extends FPDF
{
var $error='';
- /*! \brief Constructeur
+ /** \brief Constructeur
*/
function ModelePDFFicheinter()
{
}
- /*!
+ /**
\brief Renvoi le dernier message d'erreur de création de fiche intervention
*/
function pdferror()
@@ -56,7 +58,7 @@ class ModelePDFFicheinter extends FPDF
}
-/*! \class ModeleNumRefFicheinter
+/** \class ModeleNumRefFicheinter
\brief Classe mère des modèles de numérotation des références de fiches d'intervention
*/
@@ -64,7 +66,7 @@ class ModeleNumRefFicheinter
{
var $error='';
- /*! \brief Renvoi la description par defaut du modele de numérotation
+ /** \brief Renvoi la description par defaut du modele de numérotation
* \return string Texte descripif
*/
function info()
@@ -74,7 +76,7 @@ class ModeleNumRefFicheinter
return $langs->trans("NoDescription");
}
- /*! \brief Renvoi un exemple de numérotation
+ /** \brief Renvoi un exemple de numérotation
* \return string Example
*/
function getExample()
@@ -84,7 +86,7 @@ class ModeleNumRefFicheinter
return $langs->trans("NoExample");
}
- /*!
+ /**
\brief Renvoi le dernier message d'erreur de création de fiche intervention
*/
function numreferror()
@@ -95,10 +97,11 @@ class ModeleNumRefFicheinter
}
-/*!
+/**
\brief Crée une fiche intervention sur disque en fonction du modèle de FICHEINTER_ADDON_PDF
\param db objet base de donnée
\param facid id de la facture à créer
+ \return int 0 si KO, 1 si OK
*/
function fichinter_pdf_create($db, $facid)
{
diff --git a/htdocs/includes/modules/fichinter/pdf_soleil.modules.php b/htdocs/includes/modules/fichinter/pdf_soleil.modules.php
index c1ae3fca659..3e61743a875 100644
--- a/htdocs/includes/modules/fichinter/pdf_soleil.modules.php
+++ b/htdocs/includes/modules/fichinter/pdf_soleil.modules.php
@@ -1,5 +1,6 @@
+/* Copyright (C) 2003 Rodolphe Quiedeville
+ * Copyright (C) 2004-2005 Laurent Destailleur
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -21,138 +22,155 @@
*
*/
-/*! \file htdocs/includes/modules/fichinter/pdf_soleil.modules.php
- \ingroup ficheinter
- \brief Fichier de la classe permettant de générer les fiches d'intervention au modèle Soleil
- \version $Revision$
+/**
+ \file htdocs/includes/modules/fichinter/pdf_soleil.modules.php
+ \ingroup ficheinter
+ \brief Fichier de la classe permettant de générer les fiches d'intervention au modèle Soleil
+ \version $Revision$
*/
-/*! \class pdf_soleil
- \brief Classe permettant de générer les fiches d'intervention au modèle Soleil
+/**
+ \class pdf_soleil
+ \brief Classe permettant de générer les fiches d'intervention au modèle Soleil
*/
class pdf_soleil extends ModelePDFFicheinter
{
- /*! \brief Constructeur
- \param db handler accès base de donnée
+ /**
+ \brief Constructeur
+ \param db handler accès base de donnée
*/
- function pdf_soleil($db=0)
- {
- $this->db = $db;
- $this->description = "Modèle de fiche d'intervention stantdard";
+ function pdf_soleil($db=0)
+ {
+ $this->db = $db;
+ $this->description = "Modèle de fiche d'intervention stantdard";
}
- /*!
- \brief Fonction générant la fiche d'intervention sur le disque
- \param id id de la fiche intervention à générer
+ /**
+ \brief Fonction générant la fiche d'intervention sur le disque
+ \param id id de la fiche intervention à générer
+ \return int 1=ok, 0=ko
*/
- function write_pdf_file($id)
+ function write_pdf_file($id)
{
- global $conf;
+ global $user,$langs,$conf;
- $fich = new Fichinter($this->db,"",$id);
- if ($fich->fetch($id))
- {
- $dir = $conf->fichinter->dir_output . "/" . $fich->ref . "/" ;
- $file = $dir . $fich->ref . ".pdf";
-
- if (! file_exists($dir))
- {
- umask(0);
- mkdir($dir, 0755);
- }
-
- if (file_exists($dir))
- {
+ $fich = new Fichinter($this->db,"",$id);
+ if ($fich->fetch($id))
+ {
+ $forbidden_chars=array("/","\\",":","*","?","\"","<",">","|","[","]",",",";","=");
+ $fichref = str_replace($forbidden_chars,"_",$fich->ref);
- $pdf=new FPDF('P','mm','A4');
- $pdf->Open();
- $pdf->AddPage();
-
- $pdf->SetXY(10,5);
- if (defined("FAC_PDF_INTITULE"))
- {
- $pdf->SetTextColor(0,0,200);
- $pdf->SetFont('Arial','B',14);
- $pdf->MultiCell(60, 8, FAC_PDF_INTITULE, 0, 'L');
- }
-
- $pdf->SetTextColor(70,70,170);
- if (defined("FAC_PDF_ADRESSE"))
- {
- $pdf->SetFont('Arial','',12);
- $pdf->MultiCell(40, 5, FAC_PDF_ADRESSE);
- }
- if (defined("FAC_PDF_TEL"))
- {
- $pdf->SetFont('Arial','',10);
- $pdf->MultiCell(40, 5, "Tél : ".FAC_PDF_TEL);
- }
- if (defined("MAIN_INFO_SIREN"))
- {
- $pdf->SetFont('Arial','',10);
- $pdf->MultiCell(40, 5, "SIREN : ".MAIN_INFO_SIREN);
- }
-
- if (defined("FAC_PDF_INTITULE2"))
- {
- $pdf->SetXY(100,5);
- $pdf->SetFont('Arial','B',14);
- $pdf->SetTextColor(0,0,200);
- $pdf->MultiCell(100, 10, FAC_PDF_INTITULE2, '' , 'R');
- }
- /*
- * Adresse Client
- */
- $pdf->SetTextColor(0,0,0);
- $pdf->SetFont('Arial','B',12);
- $fich->fetch_client();
- $pdf->SetXY(102,42);
- $pdf->MultiCell(66,5, $fich->client->nom);
- $pdf->SetFont('Arial','B',11);
- $pdf->SetXY(102,47);
- $pdf->MultiCell(66,5, $fich->client->adresse . "\n" . $fich->client->cp . " " . $fich->client->ville);
- $pdf->rect(100, 40, 100, 40);
-
-
- $pdf->SetTextColor(200,0,0);
- $pdf->SetFont('Arial','B',14);
- $pdf->Text(11, 88, "Date : " . strftime("%d %b %Y", $fich->date));
- $pdf->Text(11, 94, "Fiche d'intervention : ".$fich->ref);
-
- /*
- */
+ $dir = $conf->fichinter->dir_output . "/" . $fichref;
+ $file = $dir . "/" . $fichref . ".pdf";
- /*
- */
- $pdf->SetFillColor(220,220,220);
- $pdf->SetTextColor(0,0,0);
- $pdf->SetFont('Arial','',12);
-
- $tab_top = 100;
- $tab_height = 110;
+ if (! file_exists($dir))
+ {
+ umask(0);
+ if (! mkdir($dir, 0755))
+ {
+ $this->error=$langs->trans("ErrorCanNotCreateDir",$dir);
+ return 0;
+ }
+ }
- $pdf->SetXY (10, $tab_top);
- $pdf->MultiCell(190,8,'Désignation',0,'L',0);
- $pdf->line(10, $tab_top + 8, 200, $tab_top + 8 );
-
- $pdf->Rect(10, $tab_top, 190, $tab_height);
- /*
- *
- */
- $pdf->SetFont('Arial','', 10);
+ if (file_exists($dir))
+ {
- $pdf->SetXY (10, $tab_top + 8 );
- $pdf->MultiCell(190, 5, $fich->note, 0, 'J', 0);
-
- /*
- *
- */
- $pdf->Output($file);
- }
- }
+ $pdf=new FPDF('P','mm','A4');
+ $pdf->Open();
+ $pdf->AddPage();
+
+ $pdf->SetXY(10,5);
+ if (defined("FAC_PDF_INTITULE"))
+ {
+ $pdf->SetTextColor(0,0,200);
+ $pdf->SetFont('Arial','B',14);
+ $pdf->MultiCell(60, 8, FAC_PDF_INTITULE, 0, 'L');
+ }
+
+ $pdf->SetTextColor(70,70,170);
+ if (defined("FAC_PDF_ADRESSE"))
+ {
+ $pdf->SetFont('Arial','',12);
+ $pdf->MultiCell(40, 5, FAC_PDF_ADRESSE);
+ }
+ if (defined("FAC_PDF_TEL"))
+ {
+ $pdf->SetFont('Arial','',10);
+ $pdf->MultiCell(40, 5, "Tél : ".FAC_PDF_TEL);
+ }
+ if (defined("MAIN_INFO_SIREN"))
+ {
+ $pdf->SetFont('Arial','',10);
+ $pdf->MultiCell(40, 5, "SIREN : ".MAIN_INFO_SIREN);
+ }
+
+ if (defined("FAC_PDF_INTITULE2"))
+ {
+ $pdf->SetXY(100,5);
+ $pdf->SetFont('Arial','B',14);
+ $pdf->SetTextColor(0,0,200);
+ $pdf->MultiCell(100, 10, FAC_PDF_INTITULE2, '' , 'R');
+ }
+ /*
+ * Adresse Client
+ */
+ $pdf->SetTextColor(0,0,0);
+ $pdf->SetFont('Arial','B',12);
+ $fich->fetch_client();
+ $pdf->SetXY(102,42);
+ $pdf->MultiCell(66,5, $fich->client->nom);
+ $pdf->SetFont('Arial','B',11);
+ $pdf->SetXY(102,47);
+ $pdf->MultiCell(66,5, $fich->client->adresse . "\n" . $fich->client->cp . " " . $fich->client->ville);
+ $pdf->rect(100, 40, 100, 40);
+
+
+ $pdf->SetTextColor(200,0,0);
+ $pdf->SetFont('Arial','B',14);
+ $pdf->Text(11, 88, "Date : " . strftime("%d %b %Y", $fich->date));
+ $pdf->Text(11, 94, "Fiche d'intervention : ".$fich->ref);
+
+ $pdf->SetFillColor(220,220,220);
+ $pdf->SetTextColor(0,0,0);
+ $pdf->SetFont('Arial','',12);
+
+ $tab_top = 100;
+ $tab_height = 110;
+
+ $pdf->SetXY (10, $tab_top);
+ $pdf->MultiCell(190,8,'Désignation',0,'L',0);
+ $pdf->line(10, $tab_top + 8, 200, $tab_top + 8 );
+
+ $pdf->Rect(10, $tab_top, 190, $tab_height);
+
+ $pdf->SetFont('Arial','', 10);
+
+ $pdf->SetXY (10, $tab_top + 8 );
+ $pdf->MultiCell(190, 5, $fich->note, 0, 'J', 0);
+
+ $pdf->Close();
+
+ $pdf->Output($file);
+
+ return 1;
+ }
+ else
+ {
+ $this->error=$langs->trans("ErrorCanNotCreateDir",$dir);
+ return 0;
+ }
+ }
+ else
+ {
+ $this->error=$langs->trans("ErrorConstantNotDefined","FICHINTER_OUTPUTDIR");
+ return 0;
+ }
+ $this->error=$langs->trans("ErrorUnknown");
+ return 0; // Erreur par defaut
}
}