From 1ae88e188d5a900e45af586e8d4416af08afa0e1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 7 Jun 2006 22:37:51 +0000 Subject: [PATCH] =?UTF-8?q?Ajout=20possibilit=E9=20de=20mettre=20des=20doc?= =?UTF-8?q?uments=20sur=20les=20factures?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- htdocs/compta/facture/document.php | 248 +++++++++++++++++++++++++++++ 1 file changed, 248 insertions(+) create mode 100644 htdocs/compta/facture/document.php diff --git a/htdocs/compta/facture/document.php b/htdocs/compta/facture/document.php new file mode 100644 index 00000000000..66c758ba862 --- /dev/null +++ b/htdocs/compta/facture/document.php @@ -0,0 +1,248 @@ + + * 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/compta/facture/document.php + \ingroup facture + \brief Page de gestion des documents attachées à une facture + \version $Revision$ +*/ + +require('./pre.inc.php'); +require_once(DOL_DOCUMENT_ROOT."/facture.class.php"); +require_once(DOL_DOCUMENT_ROOT."/lib/invoice.lib.php"); + +$langs->load('propal'); +$langs->load("bills"); +$langs->load('compta'); +$langs->load('other'); + +$user->getrights('facture'); + +if (!$user->rights->propale->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 Facture($db); + + if ($facture->fetch($facid)) + { + $upload_dir = $conf->facture->dir_output . "/" . $facture->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 Facture($db); + + if ($facture->fetch($facid)) + { + $upload_dir = $conf->facture->dir_output . "/" . $facture->ref; + $file = $upload_dir . '/' . urldecode($_GET['urlfile']); + dol_delete_file($file); + $mesg = '
'.$langs->trans("FileWasRemoved").'
'; + } +} + + +/* + * Affichage + */ + +llxHeader(); + +if ($facid > 0) +{ + $facture = new Facture($db); + + if ($facture->fetch($facid)) + { + $facref = sanitize_string($facture->ref); + + $upload_dir = $conf->facture->dir_output.'/'.$facref; + + $societe = new Societe($db); + $societe->fetch($facture->socidp); + + $head = facture_prepare_head($facture); + dolibarr_fiche_head($head, 'documents', $langs->trans('InvoiceCustomer')); + + // 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 ''; + + 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 + { + dolibarr_print_error($db); + } +} +else +{ + print $langs->trans("UnkownError"); +} + +$db->close(); + +llxFooter('$Date$ - $Revision$'); +?>