diff --git a/htdocs/fourn/facture/document.php b/htdocs/fourn/facture/document.php new file mode 100644 index 00000000000..14f384fec1c --- /dev/null +++ b/htdocs/fourn/facture/document.php @@ -0,0 +1,241 @@ + + * Copyright (C) 2004-2006 Laurent Destailleur + * Copyright (C) 2005 Marc Barilley / Ocebo + * Copyright (C) 2005 Regis Houssin + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * $Id$ + * $Source$ + */ + +/** + \file htdocs/fourn/facture/document.php + \ingroup facture, fournisseur + \brief Page de gestion des documents attachées à une facture fournisseur + \version $Revision$ +*/ + +require('./pre.inc.php'); +require_once(DOL_DOCUMENT_ROOT.'/fourn/fournisseur.facture.class.php'); +require_once(DOL_DOCUMENT_ROOT.'/lib/fourn.lib.php'); + +$langs->load('bills'); +$langs->load('other'); + +$user->getrights('fournisseur'); + +if (!$user->rights->fournisseur->facture->lire) + accessforbidden(); + +$facid=empty($_GET['facid']) ? 0 : intVal($_GET['facid']); +$action=empty($_GET['action']) ? (empty($_POST['action']) ? '' : $_POST['action']) : $_GET['action']; + + + +/* + * Actions + */ + +// Envoi fichier +if ($_POST['sendit'] && $conf->upload) +{ + $facture = new FactureFournisseur($db); + + if ($facture->fetch($facid)) + { + $ref = sanitize_string($facture->ref); + $upload_dir = $conf->fournisseur->facture->dir_output . '/' . $ref; + if (! is_dir($upload_dir)) create_exdir($upload_dir); + + if (is_dir($upload_dir)) + { + if (doliMoveFileUpload($_FILES['userfile']['tmp_name'], $upload_dir . '/' . $_FILES['userfile']['name'])) + { + $mesg = '
'.$langs->trans('FileTransferComplete').'
'; + //print_r($_FILES); + } + else + { + // Echec transfert (fichier dépassant la limite ?) + $mesg = '
'.$langs->trans('ErrorFileNotUploaded').'
'; + // print_r($_FILES); + } + } + } +} + +// Delete +if ($action=='delete') +{ + $facture = new FactureFournisseur($db); + + if ($facture->fetch($facid)) + { + $ref = sanitize_string($facture->ref); + $upload_dir = $conf->fournisseur->facture->dir_output . '/' . $ref; + $file = $upload_dir . '/' . urldecode($_GET['urlfile']); + dol_delete_file($file); + $mesg = '
'.$langs->trans('FileWasRemoved').'
'; + } +} + + +/* + * Affichage + */ + +llxHeader(); + +if ($facid > 0) +{ + $facture = new FactureFournisseur($db); + + if ($facture->fetch($facid)) + { + $facref = sanitize_string($facture->ref); + + $upload_dir = $conf->fournisseur->facture->dir_output.'/'.$facref; + + $societe = new Societe($db); + $societe->fetch($facture->socidp); + + $head = facturefourn_prepare_head($facture); + dolibarr_fiche_head($head, 'documents', $langs->trans('Invoice')); + + // Construit liste des fichiers + clearstatcache(); + + $totalsize=0; + $filearray=array(); + + $errorlevel=error_reporting(); + error_reporting(0); + $handle=opendir($upload_dir); + error_reporting($errorlevel); + if ($handle) + { + $i=0; + while (($file = readdir($handle))!==false) + { + if (!is_dir($dir.$file) && substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS') + { + $filearray[$i]=$file; + $totalsize+=filesize($upload_dir.'/'.$file); + $i++; + } + } + closedir($handle); + } + else + { +// print '
'.$langs->trans("ErrorCanNotReadDir",$upload_dir).'
'; + } + + + print ''; + // Ref + print ''; + // Société + print ''; + print ''; + print ''; + print '
'.$langs->trans('Ref').''.$facture->ref.'
'.$langs->trans('Company').''.$societe->getNomUrl(1).'
'.$langs->trans('NbOfAttachedFiles').''.sizeof($filearray).'
'.$langs->trans('TotalSizeOfAttachedFiles').''.$totalsize.' '.$langs->trans('bytes').'
'; +// print ''; + + if ($mesg) { print $mesg.'
'; } + + // Affiche formulaire upload + if ($conf->global->MAIN_UPLOAD_DOC) + { + print_titre($langs->trans('AttachANewFile')); + print '
'; + print ''; + print ''; + print '
'; + print ''; + print ''; + print '   '; + print ''; + print '
'; + print '
'; + print '
'; + } + + // Affiche liste des documents existant + print_titre($langs->trans('AttachedFiles')); + + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + + if (is_dir($upload_dir)) + { + $handle=opendir($upload_dir); + if ($handle) + { + $var=true; + while (($file = readdir($handle))!==false) + { + if (!is_dir($dir.$file) && substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS') + { + $var=!$var; + print ''; + print '\n"; + print ''; + print ''; + print '\n"; + } + } + closedir($handle); + } + else + { + print '
'.$langs->trans('ErrorCantOpenDir').' '.$upload_dir.'
'; + } + } + print '
'.$langs->trans('Document').''.$langs->trans('Size').''.$langs->trans('Date').' 
'; + echo ''.$file.''; + print "'.filesize($upload_dir.'/'.$file). ' bytes'.strftime('%d %b %Y %H:%M:%S',filemtime($upload_dir.'/'.$file)).''; + if ($file == $facref . '.pdf') + { + echo '-'; + } + else + { + echo ''.img_delete($langs->trans('Delete')).''; + } + print "
'; + } + else + { + print 'facid='.$facid.'
'; + dolibarr_print_error($db); + } +} +else +{ + print $langs->trans('UnkownError'); +} + +$db->close(); + +llxFooter('$Date$ - $Revision$'); +?> diff --git a/htdocs/fourn/facture/fiche.php b/htdocs/fourn/facture/fiche.php index 3cd535ec997..d0d820908cc 100644 --- a/htdocs/fourn/facture/fiche.php +++ b/htdocs/fourn/facture/fiche.php @@ -29,8 +29,10 @@ \version $Revision$ */ -require('./pre.inc.php'); -require('./paiementfourn.class.php'); +require_once('./pre.inc.php'); +require_once('./paiementfourn.class.php'); +require_once(DOL_DOCUMENT_ROOT.'/lib/fourn.lib.php'); + if (!$user->rights->fournisseur->facture->lire) accessforbidden(); @@ -572,19 +574,9 @@ else /* * */ - $h=0; - - $head[$h][0] = 'fiche.php?facid='.$fac->id; - $head[$h][1] = $langs->trans('Card'); - $hselected = $h; - $h++; - - $head[$h][0] = 'info.php?facid='.$fac->id; - $head[$h][1] = $langs->trans('Info'); - $h++; - + $head = facturefourn_prepare_head($fac); $titre=$langs->trans('SupplierInvoice'); - dolibarr_fiche_head($head, $hselected, $titre); + dolibarr_fiche_head($head, 'card', $titre); /* diff --git a/htdocs/fourn/facture/info.php b/htdocs/fourn/facture/info.php index 379e38411fb..6e4a9d56ca4 100644 --- a/htdocs/fourn/facture/info.php +++ b/htdocs/fourn/facture/info.php @@ -27,8 +27,8 @@ \version $Revision$ */ -require("./pre.inc.php"); -require_once(DOL_DOCUMENT_ROOT.'/lib/invoice.lib.php'); +require('./pre.inc.php'); +require_once(DOL_DOCUMENT_ROOT.'/lib/fourn.lib.php'); $langs->load("bills"); @@ -46,19 +46,9 @@ $fac->info($_GET["facid"]); $soc = new Societe($db, $fac->socidp); $soc->fetch($fac->socidp); -$h=0; - -$head[$h][0] = 'fiche.php?facid='.$fac->id; -$head[$h][1] = $langs->trans('Card'); -$h++; - -$head[$h][0] = 'info.php?facid='.$fac->id; -$head[$h][1] = $langs->trans('Info'); -$hselected = $h; -$h++; - -dolibarr_fiche_head($head, $hselected, $langs->trans("SupplierInvoice")); - +$head = facturefourn_prepare_head($fac); +$titre=$langs->trans('SupplierInvoice'); +dolibarr_fiche_head($head, 'info', $langs->trans('SupplierInvoice')); print '
'; dolibarr_print_object_info($fac); diff --git a/htdocs/fourn/fournisseur.facture.class.php b/htdocs/fourn/fournisseur.facture.class.php index f36b5bf39d5..3727e0e6c20 100644 --- a/htdocs/fourn/fournisseur.facture.class.php +++ b/htdocs/fourn/fournisseur.facture.class.php @@ -227,14 +227,29 @@ class FactureFournisseur extends Facture } else { + dolibarr_syslog('Erreur FactureFournisseur::Fetch rowid='.$rowid.', Erreur dans fetch des lignes'); + $this->error=$this->db->error(); dolibarr_print_error($this->db); + return -3; } } + else + { + dolibarr_syslog('Erreur FactureFournisseur::Fetch rowid='.$rowid.' numrows=0 sql='.$sql); + $this->error='Bill with id '.$rowid.' not found sql='.$sql; + dolibarr_print_error($this->db); + return -2; + } + $this->db->free($resql); } else { + dolibarr_syslog('Erreur FactureFournisseur::Fetch rowid='.$rowid.' Erreur dans fetch de la facture fournisseur'); + $this->error=$this->db->error(); dolibarr_print_error($this->db); + return -1; } + return 1; } /**