diff --git a/htdocs/commande/document.php b/htdocs/commande/document.php new file mode 100644 index 00000000000..601d486027a --- /dev/null +++ b/htdocs/commande/document.php @@ -0,0 +1,223 @@ + + * 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.'/lib/order.lib.php'); + +$user->getrights('commande'); +if (!$user->rights->commande->lire) + accessforbidden(); + +$langs->load('companies'); +//$langs->load("bills"); +$langs->load('other'); + +$id=empty($_GET['id']) ? 0 : intVal($_GET['id']); +$action=empty($_GET['action']) ? (empty($_POST['action']) ? '' : $_POST['action']) : $_GET['action']; + +// Securite acces +if ($user->societe_id > 0) +{ + unset($_GET["action"]); + $socid = $user->societe_id; +} + +$commande = new Commande($db); +if (!$commande->fetch($id)) { + dolibarr_print_error($db); +} + +/* + * Actions + */ + +// Envoi fichier +if ($_POST["sendit"] && $conf->upload) +{ + $upload_dir = $conf->commande->dir_output . "/" . $commande->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') +{ + $upload_dir = $conf->commande->dir_output . "/" . $commande->ref; + $file = $upload_dir . '/' . urldecode($_GET['urlfile']); + dol_delete_file($file); + $mesg = '
'.$langs->trans("FileWasRemoved").'
'; +} + + +/* + * Affichage + */ +if ($id > 0) +{ + llxHeader(); + + $commanderef = sanitize_string($commande->ref); + + $upload_dir = $conf->commande->dir_output.'/'.$commanderef; + + $societe = new Societe($db); + $societe->fetch($commande->socid); + + $head = commande_prepare_head($commande); + dolibarr_fiche_head($head, 'documents', $langs->trans('Order')); + + // 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) + && ! eregi('^\.',$file) + && ! eregi('^CVS',$file) + && ! eregi('\.meta$',$file)) + { + $filearray[$i]=$file; + $totalsize+=filesize($upload_dir."/".$file); + $i++; + } + } + closedir($handle); + } + else + { + // print '
'.$langs->trans("ErrorCanNotReadDir",$upload_dir).'
'; + } + + + print ''; + + // Ref + print ''; + + print ''; + print ''; + print ''; + print "
'.$langs->trans('Ref').''.$commande->ref.'
'.$langs->trans('Company').''.$societe->getNomUrl(1).'
'.$langs->trans("NbOfAttachedFiles").''.sizeof($filearray).'
'.$langs->trans("TotalSizeOfAttachedFiles").''.$totalsize.' '.$langs->trans("bytes").'
\n"; + print "\n"; + + if ($mesg) { print $mesg."
"; } + + // Affiche formulaire upload + $html=new Form($db); + $html->form_attach_new_file('document.php?id='.$commande->id); + + // 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) + && ! eregi('^\.',$file) + && ! eregi('^CVS',$file) + && ! eregi('\.meta$',$file)) + { + $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). ' '.$langs->trans("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 +{ + Header('Location: index.php'); +} + +$db->close(); + +llxFooter('$Date$ - $Revision$'); +?>