diff --git a/htdocs/fourn/facture/document.php b/htdocs/fourn/facture/document.php index e91bd47a35c..aed51380713 100644 --- a/htdocs/fourn/facture/document.php +++ b/htdocs/fourn/facture/document.php @@ -1,22 +1,22 @@ * Copyright (C) 2004-2009 Laurent Destailleur - * Copyright (C) 2005 Marc Barilley / Ocebo - * Copyright (C) 2005-2009 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, see . - */ +* Copyright (C) 2005 Marc Barilley / Ocebo +* Copyright (C) 2005-2009 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, see . +*/ /** * \file htdocs/fourn/facture/document.php @@ -35,7 +35,7 @@ $langs->load('bills'); $langs->load('other'); $langs->load("companies"); -$facid = isset($_GET["facid"])?$_GET["facid"]:''; +$facid = GETPOST("facid")?GETPOST("facid"):GETPOST("id"); $action=empty($_GET['action']) ? (empty($_POST['action']) ? '' : $_POST['action']) : $_GET['action']; // Security check @@ -46,13 +46,16 @@ $result = restrictedArea($user, 'fournisseur', $facid, 'facture_fourn', 'facture $sortfield = GETPOST("sortfield",'alpha'); $sortorder = GETPOST("sortorder",'alpha'); $page = GETPOST("page",'int'); -if ($page == -1) { $page = 0; } +if ($page == -1) { + $page = 0; +} $offset = $conf->liste_limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; if (! $sortorder) $sortorder="ASC"; if (! $sortfield) $sortfield="name"; +$object = new FactureFournisseur($db); /* @@ -62,61 +65,70 @@ if (! $sortfield) $sortfield="name"; // Envoi fichier if ($_POST['sendit'] && ! empty($conf->global->MAIN_UPLOAD_DOC)) { - require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php"); + require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php"); - $facture = new FactureFournisseur($db); - if ($facture->fetch($facid)) - { - $ref=dol_sanitizeFileName($facture->ref); - $upload_dir = $conf->fournisseur->facture->dir_output.'/'.get_exdir($facture->id,2).$ref; + $facture = new FactureFournisseur($db); + if ($facture->fetch($facid)) + { + $ref=dol_sanitizeFileName($facture->ref); + $upload_dir = $conf->fournisseur->facture->dir_output.'/'.get_exdir($facture->id,2).$ref; - if (create_exdir($upload_dir) >= 0) - { - $resupload=dol_move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_dir . "/" . $_FILES['userfile']['name'],0,0,$_FILES['userfile']['error']); - if (is_numeric($resupload) && $resupload > 0) - { - $mesg = '
'.$langs->trans("FileTransferComplete").'
'; - } - else - { - $langs->load("errors"); - if ($resupload < 0) // Unknown error - { - $mesg = '
'.$langs->trans("ErrorFileNotUploaded").'
'; - } - else if (preg_match('/ErrorFileIsInfectedWithAVirus/',$resupload)) // Files infected by a virus - { - $mesg = '
'.$langs->trans("ErrorFileIsInfectedWithAVirus").'
'; - } - else // Known error - { - $mesg = '
'.$langs->trans($resupload).'
'; - } - } - } - } + if (create_exdir($upload_dir) >= 0) + { + $resupload=dol_move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_dir . "/" . $_FILES['userfile']['name'],0,0,$_FILES['userfile']['error']); + if (is_numeric($resupload) && $resupload > 0) + { + $mesg = '
'.$langs->trans("FileTransferComplete").'
'; + } + else + { + $langs->load("errors"); + if ($resupload < 0) // Unknown error + { + $mesg = '
'.$langs->trans("ErrorFileNotUploaded").'
'; + } + else if (preg_match('/ErrorFileIsInfectedWithAVirus/',$resupload)) // Files infected by a virus + { + $mesg = '
'.$langs->trans("ErrorFileIsInfectedWithAVirus").'
'; + } + else // Known error + { + $mesg = '
'.$langs->trans($resupload).'
'; + } + } + } + } } // Delete if ($action=='delete') { - $facid=$_GET['id']; + $facid=$_GET['id']; - $facture = new FactureFournisseur($db); - if ($facture->fetch($facid)) - { + $facture = new FactureFournisseur($db); + if ($facture->fetch($facid)) + { $ref=dol_sanitizeFileName($facture->ref); $upload_dir = $conf->fournisseur->facture->dir_output.'/'.get_exdir($facture->id,2).$ref; - $file = $upload_dir . '/' . $_GET['urlfile']; // Do not use urldecode here ($_GET and $_REQUEST are already decoded by PHP). - dol_delete_file($file); - $mesg = '
'.$langs->trans('FileWasRemoved').'
'; - } + $file = $upload_dir . '/' . $_GET['urlfile']; // Do not use urldecode here ($_GET and $_REQUEST are already decoded by PHP). + dol_delete_file($file); + $mesg = '
'.$langs->trans('FileWasRemoved').'
'; + } +} + +// Set label +if ($action == 'setlabel' && $user->rights->fournisseur->facture->creer) +{ + $object->fetch($facid); + $object->label=$_POST['label']; + $result=$object->update($user); + if ($result < 0) dol_print_error($db); } /* - * Affichage + * View */ $form = new Form($db); @@ -125,71 +137,116 @@ llxHeader(); if ($facid > 0) { - $facture = new FactureFournisseur($db); - if ($facture->fetch($facid)) - { - $facture->fetch_thirdparty(); + if ($object->fetch($facid)) + { + $object->fetch_thirdparty(); - $ref=dol_sanitizeFileName($facture->ref); - $upload_dir = $conf->fournisseur->facture->dir_output.'/'.get_exdir($facture->id,2).$ref; + $ref=dol_sanitizeFileName($object->ref); + $upload_dir = $conf->fournisseur->facture->dir_output.'/'.get_exdir($object->id,2).$ref; - $head = facturefourn_prepare_head($facture); - dol_fiche_head($head, 'documents', $langs->trans('SupplierInvoice'), 0, 'bill'); + $head = facturefourn_prepare_head($object); + dol_fiche_head($head, 'documents', $langs->trans('SupplierInvoice'), 0, 'bill'); - // Construit liste des fichiers - $filearray=dol_dir_list($upload_dir,"files",0,'','\.meta$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1); - $totalsize=0; - foreach($filearray as $key => $file) - { - $totalsize+=$file['size']; - } + // Construit liste des fichiers + $filearray=dol_dir_list($upload_dir,"files",0,'','\.meta$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1); + $totalsize=0; + foreach($filearray as $key => $file) + { + $totalsize+=$file['size']; + } - print ''; + print '
'; - // Ref - print ''; - print "\n"; + // Ref + print ''; + print "\n"; - // Ref supplier - print ''; - print "\n"; + // Ref supplier + print ''; + print "\n"; - // Societe - print ''; + // Thirdparty + print ''; - print ''; + // Type + print ''; + $facidavoir=$object->getListIdAvoirFromInvoice(); + if (count($facidavoir) > 0) + { + print ' ('.$langs->transnoentities("InvoiceHasAvoir"); + $i=0; + foreach($facidavoir as $id) + { + if ($i==0) print ' '; + else print ','; + $facavoir=new FactureFournisseur($db); + $facavoir->fetch($id); + print $facavoir->getNomUrl(1); + } + print ')'; + } + if ($facidnext > 0) + { + $facthatreplace=new FactureFournisseur($db); + $facthatreplace->fetch($facidnext); + print ' ('.$langs->transnoentities("ReplacedByInvoice",$facthatreplace->getNomUrl(1)).')'; + } + print ''; - print '
'.$langs->trans("Ref").''; - print $form->showrefnav($facture,'facid','',1,'rowid','ref',$morehtmlref); - print '
'.$langs->trans("Ref").''; + print $form->showrefnav($object,'facid','',1,'rowid','ref',$morehtmlref); + print '
'.$langs->trans("RefSupplier").''.$facture->ref_supplier.'
'.$langs->trans("RefSupplier").''.$object->ref_supplier.'
'.$langs->trans('Supplier').''.$facture->thirdparty->getNomUrl(1).'
'.$langs->trans('Supplier').''.$object->thirdparty->getNomUrl(1).'
'.$langs->trans('NbOfAttachedFiles').''.count($filearray).'
'.$langs->trans('Type').''; + print $object->getLibType(); + if ($object->type == 1) + { + $facreplaced=new FactureFournisseur($db); + $facreplaced->fetch($object->fk_facture_source); + print ' ('.$langs->transnoentities("ReplaceInvoice",$facreplaced->getNomUrl(1)).')'; + } + if ($object->type == 2) + { + $facusing=new FactureFournisseur($db); + $facusing->fetch($object->fk_facture_source); + print ' ('.$langs->transnoentities("CorrectInvoice",$facusing->getNomUrl(1)).')'; + } - print '
'.$langs->trans('TotalSizeOfAttachedFiles').''.$totalsize.' '.$langs->trans('bytes').'
'; - print ''; + // Label + print ''.$form->editfieldkey("Label",'label',$object->label,$object,0).''; + print $form->editfieldval("Label",'label',$object->label,$object,0); + print ''; - if ($mesg) { print $mesg.'
'; } + // Nb of files + print ''.$langs->trans('NbOfAttachedFiles').''.count($filearray).''; + + print ''.$langs->trans('TotalSizeOfAttachedFiles').''.$totalsize.' '.$langs->trans('bytes').''; + + print ''; + print ''; - // Affiche formulaire upload - $formfile=new FormFile($db); - $formfile->form_attach_new_file(DOL_URL_ROOT.'/fourn/facture/document.php?facid='.$facture->id,'',0,0,$user->rights->fournisseur->facture->creer); + dol_htmloutput_mesg($mesg); - // List of document - $param='&facid='.$facture->id; - $formfile->list_of_documents($filearray,$facture,'facture_fournisseur',$param,0,get_exdir($facture->id,2,0).$facture->id.'/'); + // Affiche formulaire upload + $formfile=new FormFile($db); + $formfile->form_attach_new_file(DOL_URL_ROOT.'/fourn/facture/document.php?facid='.$object->id,'',0,0,$user->rights->fournisseur->facture->creer); - } - else - { - print 'facid='.$facid.'
'; - dol_print_error($db); - } + + // List of document + $param='&facid='.$object->id; + $formfile->list_of_documents($filearray,$object,'facture_fournisseur',$param,0,get_exdir($object->id,2,0).$object->id.'/'); + + } + else + { + print 'facid='.$facid.'
'; + dol_print_error($db); + } } else { - print $langs->trans('UnkownError'); + print $langs->trans('UnkownError'); } $db->close(); diff --git a/htdocs/fourn/facture/fiche.php b/htdocs/fourn/facture/fiche.php index 63bd5c55d2e..82cfa1bc8ed 100644 --- a/htdocs/fourn/facture/fiche.php +++ b/htdocs/fourn/facture/fiche.php @@ -149,7 +149,7 @@ if (($action == 'setref_supplier' || $action == 'set_ref_supplier') && $user->ri $result=$object->set_ref_supplier($user, $_POST['ref_supplier']); } -// Set supplier ref +// Set label if ($action == 'setlabel' && $user->rights->fournisseur->facture->creer) { $object->fetch($id); @@ -217,9 +217,8 @@ if ($action == 'update' && ! $_POST['cancel']) $result = $db->query($sql); } } -/* - * Action creation -*/ + +// Create if ($action == 'add' && $user->rights->fournisseur->facture->creer) { $error=0; @@ -640,9 +639,7 @@ if ($action == 'reopen' && $user->rights->fournisseur->facture->creer) } } -/* - * Add file in email form -*/ +// Add file in email form if ($_POST['addfile']) { require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php"); @@ -656,9 +653,7 @@ if ($_POST['addfile']) $action='presend'; } -/* - * Remove file in email form -*/ +// Remove file in email form if (! empty($_POST['removedfile'])) { require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php"); @@ -672,9 +667,7 @@ if (! empty($_POST['removedfile'])) $action='presend'; } -/* - * Send mail -*/ +// Send mail if ($action == 'send' && ! $_POST['addfile'] && ! $_POST['removedfile'] && ! $_POST['cancel']) { $langs->load('mails'); @@ -830,10 +823,7 @@ if ($action == 'send' && ! $_POST['addfile'] && ! $_POST['removedfile'] && ! $_P //$action = 'presend'; } -/* - * Build document -*/ - +// Build document if ($action == 'builddoc') { // Save modele used @@ -879,7 +869,7 @@ if ($action == 'remove_file') /* * View -*/ + */ $form = new Form($db); $formfile = new FormFile($db); @@ -1312,7 +1302,6 @@ else } print ''; - // Label print ''.$form->editfieldkey("Label",'label',$object->label,$object,($object->statut<2 && $user->rights->fournisseur->facture->creer)).''; print $form->editfieldval("Label",'label',$object->label,$object,($object->statut<2 && $user->rights->fournisseur->facture->creer)); diff --git a/htdocs/fourn/facture/note.php b/htdocs/fourn/facture/note.php index b8809771abc..98b73a767f6 100644 --- a/htdocs/fourn/facture/note.php +++ b/htdocs/fourn/facture/note.php @@ -1,21 +1,21 @@ - * Copyright (C) 2004-2009 Laurent Destailleur - * Copyright (C) 2005-2009 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, see . - */ + * Copyright (C) 2004-2011 Laurent Destailleur +* Copyright (C) 2005-2009 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, see . +*/ /** * \file htdocs/fourn/facture/note.php @@ -31,138 +31,191 @@ require_once(DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'); $langs->load('bills'); $langs->load("companies"); -$facid = isset($_GET["facid"])?$_GET["facid"]:''; -$action=empty($_GET['action']) ? (empty($_POST['action']) ? '' : $_POST['action']) : $_GET['action']; +$facid = GETPOST("facid")?GETPOST("facid"):GETPOST('id'); +$action = GETPOST('action'); // Security check if ($user->societe_id) $socid=$user->societe_id; $result = restrictedArea($user, 'fournisseur', $facid, 'facture_fourn', 'facture'); -$fac = new FactureFournisseur($db); -$fac->fetch($_GET["facid"]); +$object = new FactureFournisseur($db); +$object->fetch($facid); + /******************************************************************************/ /* Actions */ /******************************************************************************/ -if ($_POST["action"] == 'update_public' && $user->rights->facture->creer) +if ($action == 'update_public' && $user->rights->facture->creer) { - $db->begin(); + $db->begin(); - $res=$fac->update_note_public($_POST["note_public"],$user); - if ($res < 0) - { - $mesg='
'.$fac->error.'
'; - $db->rollback(); - } - else - { - $db->commit(); - } + $res=$object->update_note_public($_POST["note_public"],$user); + if ($res < 0) + { + $mesg='
'.$object->error.'
'; + $db->rollback(); + } + else + { + $db->commit(); + } } -if ($_POST["action"] == 'update' && $user->rights->fournisseur->facture->creer) +if ($action == 'update' && $user->rights->fournisseur->facture->creer) { - $db->begin(); + $db->begin(); - $res=$fac->update_note($_POST["note"],$user); - if ($res < 0) - { - $mesg='
'.$fac->error.'
'; - $db->rollback(); - } - else - { - $db->commit(); - } + $res=$object->update_note($_POST["note"],$user); + if ($res < 0) + { + $mesg='
'.$object->error.'
'; + $db->rollback(); + } + else + { + $db->commit(); + } } +// Set label +if ($action == 'setlabel' && $user->rights->fournisseur->facture->creer) +{ + $object->fetch($facid); + $object->label=$_POST['label']; + $result=$object->update($user); + if ($result < 0) dol_print_error($db); +} /* * View - */ +*/ $form = new Form($db); llxHeader(); -if ($_GET["facid"]) +if ($facid) { - $fac->fetch_thirdparty(); + $object->fetch_thirdparty(); - $head = facturefourn_prepare_head($fac); - $titre=$langs->trans('SupplierInvoice'); - dol_fiche_head($head, 'note', $titre, 0, 'bill'); + $head = facturefourn_prepare_head($object); + $titre=$langs->trans('SupplierInvoice'); + dol_fiche_head($head, 'note', $titre, 0, 'bill'); print ''; - // Ref - print ''; - print "\n"; + // Ref + print ''; + print "\n"; - // Ref supplier - print ''; - print "\n"; + // Ref supplier + print ''; + print "\n"; // Company - print ''; + print ''; - // Note publique + // Type + print ''; + + // Label + print ''; + + // Note public print ''; - print '"; + print ""; - // Note private - if (! $user->societe_id) - { - print ''; - print '"; - } + // Note private + if (! $user->societe_id) + { + print ''; + print '"; + } print "
'.$langs->trans("Ref").''; - print $form->showrefnav($fac,'facid','',1,'rowid','ref',$morehtmlref); - print '
'.$langs->trans("Ref").''; + print $form->showrefnav($object,'facid','',1,'rowid','ref',$morehtmlref); + print '
'.$langs->trans("RefSupplier").''.$fac->ref_supplier.'
'.$langs->trans("RefSupplier").''.$object->ref_supplier.'
'.$langs->trans('Supplier').''.$fac->thirdparty->getNomUrl(1).'
'.$langs->trans('Supplier').''.$object->thirdparty->getNomUrl(1).'
'.$langs->trans('Type').''; + print $object->getLibType(); + if ($object->type == 1) + { + $facreplaced=new FactureFournisseur($db); + $facreplaced->fetch($object->fk_facture_source); + print ' ('.$langs->transnoentities("ReplaceInvoice",$facreplaced->getNomUrl(1)).')'; + } + if ($object->type == 2) + { + $facusing=new FactureFournisseur($db); + $facusing->fetch($object->fk_facture_source); + print ' ('.$langs->transnoentities("CorrectInvoice",$facusing->getNomUrl(1)).')'; + } + + $facidavoir=$object->getListIdAvoirFromInvoice(); + if (count($facidavoir) > 0) + { + print ' ('.$langs->transnoentities("InvoiceHasAvoir"); + $i=0; + foreach($facidavoir as $id) + { + if ($i==0) print ' '; + else print ','; + $facavoir=new FactureFournisseur($db); + $facavoir->fetch($id); + print $facavoir->getNomUrl(1); + } + print ')'; + } + if ($facidnext > 0) + { + $facthatreplace=new FactureFournisseur($db); + $facthatreplace->fetch($facidnext); + print ' ('.$langs->transnoentities("ReplacedByInvoice",$facthatreplace->getNomUrl(1)).')'; + } + print '
'.$form->editfieldkey("Label",'label',$object->label,$object,0).''; + print $form->editfieldval("Label",'label',$object->label,$object,0); + print '
'.$langs->trans("NotePublic").' :'; + print ''; if ($_GET["action"] == 'edit') { - print '
'; + print ''; print ''; print ''; - print '
"; + print '
"; print ''; print '
'; } else { - print ($fac->note_public?nl2br($fac->note_public):" "); + print ($object->note_public?nl2br($object->note_public):" "); } - print "
'.$langs->trans("NotePrivate").' :'; - if ($_GET["action"] == 'edit') - { - print '
'; - print ''; - print ''; - print '
"; - print ''; - print '
'; - } - else - { - print ($fac->note?nl2br($fac->note):" "); - } - print "
'.$langs->trans("NotePrivate").' :'; + if ($_GET["action"] == 'edit') + { + print '
'; + print ''; + print ''; + print '
"; + print ''; + print '
'; + } + else + { + print ($object->note?nl2br($object->note):" "); + } + print "
"; dol_fiche_end(); /* - * Actions + * Buttons */ print '
'; if ($user->rights->fournisseur->facture->creer && $_GET["action"] <> 'edit') { - print "id&action=edit\">".$langs->trans('Modify').""; + print "id&action=edit\">".$langs->trans('Modify').""; } print "
";