From 3f53472c400235a8e98da40e3c2f844570713217 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 25 Feb 2008 00:40:57 +0000 Subject: [PATCH] New: Can attach documents on contracts --- htdocs/contrat/document.php | 214 ++++++++++++++++++++++++++++++++++ htdocs/langs/fr_FR/.cvsignore | 1 + 2 files changed, 215 insertions(+) create mode 100644 htdocs/contrat/document.php create mode 100644 htdocs/langs/fr_FR/.cvsignore diff --git a/htdocs/contrat/document.php b/htdocs/contrat/document.php new file mode 100644 index 00000000000..2d82b91fcb1 --- /dev/null +++ b/htdocs/contrat/document.php @@ -0,0 +1,214 @@ + + * Copyright (C) 2004-2008 Laurent Destailleur + * Copyright (C) 2005 Marc Barilley / Ocebo + * Copyright (C) 2005 Regis Houssin + * Copyright (C) 2005 Simon TOSSER + * + * 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. + */ + +/** + \file htdocs/product/document.php + \ingroup product + \brief Page des documents joints sur les produits + \version $Id$ +*/ + +require('./pre.inc.php'); +require_once(DOL_DOCUMENT_ROOT."/lib/contract.lib.php"); +require_once(DOL_DOCUMENT_ROOT."/contrat/contrat.class.php"); +require_once(DOL_DOCUMENT_ROOT."/html.formfile.class.php"); + +$langs->load("other"); +$langs->load("products"); + +if (!$user->rights->contrat->lire) + accessforbidden(); + + +$contrat = new Contrat($db); +$contrat->fetch($_GET["id"]); + +$contratref = sanitize_string($contrat->ref); +$upload_dir = $conf->contrat->dir_output.'/'.$contratref; +$modulepart='contract'; + + +/* + * Action envoie fichier + */ +if ($_POST["sendit"] && $conf->upload) +{ + /* + * Creation répertoire si n'existe pas + */ + 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); + } + } +} + + +/* + * + */ + +$html = new Form($db); + +llxHeader("","",$langs->trans("CardProduct".$product->type)); + + +if ($contrat->id) +{ + $soc = new Societe($db, $contrat->societe->id); + $soc->fetch($contrat->societe->id); + + if ( $error_msg ) + { + echo '
'.$error_msg.'

'; + } + + if ($_GET["action"] == 'delete') + { + $file = $upload_dir . '/' . urldecode($_GET['urlfile']); + $result=dol_delete_file($file); + //if ($result >= 0) $mesg=$langs->trans("FileWasRemoced"); + } + + $head=contract_prepare_head($contrat, $user); + + dolibarr_fiche_head($head, 'documents', $langs->trans("Contract")); + + + // 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 ''; + + // Reference + print ''; + + // Societe + print ''; + print ''; + + print ''; + print ''; + print '
'.$langs->trans('Ref').''.$contrat->ref.'
'.$langs->trans("Customer").''.$soc->getNomUrl(1).'
'.$langs->trans("NbOfAttachedFiles").''.sizeof($filearray).'
'.$langs->trans("TotalSizeOfAttachedFiles").''.$totalsize.' '.$langs->trans("bytes").'
'; + + print ''; + + + // Affiche formulaire upload + $formfile=new FormFile($db); + $formfile->form_attach_new_file(DOL_URL_ROOT.'/contrat/document.php?id='.$contrat->id); + + + $errorlevel=error_reporting(); + error_reporting(0); + $handle=opendir($upload_dir); + error_reporting($errorlevel); + + print ''; + + // Affiche liste des documents existant + print_titre($langs->trans("AttachedFiles")); + + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + $var=true; + + if ($handle) + { + 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); + } + print '
'.$langs->trans('Document').''.$langs->trans('Size').''.$langs->trans('Date').' 
'; + echo ''.$file.''; + print "'.filesize($upload_dir.'/'.$file). ' bytes'.dolibarr_print_date(filemtime($upload_dir.'/'.$file),'dayhour').''; + if ($file == $propref . '.pdf') + { + echo '-'; + } + else + { + echo ''.img_delete($langs->trans('Delete')).''; + } + print "
'; + +} +else +{ + print $langs->trans("UnkownError"); +} + +$db->close(); + +llxFooter('$Date$ - $Revision$'); +?> diff --git a/htdocs/langs/fr_FR/.cvsignore b/htdocs/langs/fr_FR/.cvsignore new file mode 100644 index 00000000000..63f874305ec --- /dev/null +++ b/htdocs/langs/fr_FR/.cvsignore @@ -0,0 +1 @@ +google.lang