diff --git a/ChangeLog b/ChangeLog index 66a740c15c4..267663801c3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -19,6 +19,7 @@ For users: - New: Upgrade FPDF to 1.6 - New: Added keywords in PDF - New: Add hidden option MAIN_DISABLE_PDF_COMPRESSION. +- New: Add attachments on intervention cards - Fix: Author, title and topic are correctly encoded i nPDF. - Fix: Now HTML output is always UTF8, this solve bad PDF encoding on old users. - Fix: Save new model when changed on interventions. diff --git a/htdocs/fichinter/document.php b/htdocs/fichinter/document.php new file mode 100644 index 00000000000..abd8f44c6fb --- /dev/null +++ b/htdocs/fichinter/document.php @@ -0,0 +1,173 @@ + + * Copyright (C) 2004-2009 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/contrat/document.php + \ingroup contrat + \brief Page des documents joints sur les contrats + \version $Id$ +*/ + +require('./pre.inc.php'); +require_once(DOL_DOCUMENT_ROOT."/fichinter/fichinter.class.php"); +require_once(DOL_DOCUMENT_ROOT."/lib/files.lib.php"); +require_once(DOL_DOCUMENT_ROOT."/lib/fichinter.lib.php"); +require_once(DOL_DOCUMENT_ROOT."/html.formfile.class.php"); + +$langs->load("other"); +$langs->load("fichinter"); +$langs->load("companies"); + +if (!$user->rights->ficheinter->lire) + accessforbidden(); + +// Security check +if ($user->societe_id > 0) +{ + unset($_GET["action"]); + $action=''; + $socid = $user->societe_id; +} + +// Get parameters +$page=$_GET["page"]; +$sortorder=$_GET["sortorder"]; +$sortfield=$_GET["sortfield"]; + +if (! $sortorder) $sortorder="ASC"; +if (! $sortfield) $sortfield="name"; +if ($page == -1) { $page = 0 ; } +$offset = $conf->liste_limit * $page ; +$pageprev = $page - 1; +$pagenext = $page + 1; + + +$object = new Fichinter($db); +$object->fetch($_GET["id"]); + +$upload_dir = $conf->fichinter->dir_output.'/'.sanitizeFileName($object->ref); +$modulepart='fichinter'; + + +/* + * Action envoie fichier + */ +if ($_POST["sendit"] && ! empty($conf->global->MAIN_UPLOAD_DOC)) +{ + /* + * Creation répertoire si n'existe pas + */ + if (! is_dir($upload_dir)) create_exdir($upload_dir); + + if (is_dir($upload_dir)) + { + if (dol_move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_dir . "/" . $_FILES['userfile']['name'],0) > 0) + { + $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("InterventionCard")); + + +if ($object->id) +{ + $object->fetch_client(); + + $soc = new Societe($db, $object->societe->id); + $soc->fetch($object->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=fichinter_prepare_head($object, $user); + + dolibarr_fiche_head($head, 'documents', $langs->trans("InterventionCard")); + + + // Construit liste des fichiers + $filearray=dol_dir_list($upload_dir,"files",0,'','\.meta$',$sortfield,(strtolower($sortorder)=='desc'?SORT_ASC:SORT_DESC),1); + $totalsize=0; + foreach($filearray as $key => $file) + { + $totalsize+=$file['size']; + } + + + print ''; + + // Ref + print ''; + + // Societe + print ""; + + print ''; + print ''; + print '
'.$langs->trans("Ref").''.$object->ref.'
".$langs->trans("Company")."".$object->client->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.'/fichinter/document.php?id='.$object->id); + + + // List of document + $param='&id='.$object->id; + $formfile->list_of_documents($filearray,$object,'fichinter',$param); + +} +else +{ + print $langs->trans("UnkownError"); +} + +$db->close(); + +llxFooter('$Date$ - $Revision$'); +?> diff --git a/htdocs/lib/fichinter.lib.php b/htdocs/lib/fichinter.lib.php index aa080d62c36..0fdbd460a4c 100644 --- a/htdocs/lib/fichinter.lib.php +++ b/htdocs/lib/fichinter.lib.php @@ -23,7 +23,7 @@ * \brief Ensemble de fonctions de base pour le module fichinter * \ingroup fichinter * \version $Id$ - * + * * Ensemble de fonctions de base de dolibarr sous forme d'include */ @@ -58,6 +58,11 @@ function fichinter_prepare_head($fichinter) $head[$h][2] = 'note'; $h++; + $head[$h][0] = DOL_URL_ROOT.'/fichinter/document.php?id='.$fichinter->id; + $head[$h][1] = $langs->trans("Documents"); + $head[$h][2] = 'documents'; + $h++; + $head[$h][0] = DOL_URL_ROOT.'/fichinter/info.php?id='.$fichinter->id; $head[$h][1] = $langs->trans('Info'); $head[$h][2] = 'info'; @@ -77,7 +82,7 @@ function fichinter_prepare_head($fichinter) $h++; } } - + return $head; }