From 465a9b58e42529e7805b2f98aa137ae0952afb44 Mon Sep 17 00:00:00 2001 From: Philippe Grand Date: Thu, 5 May 2011 10:26:51 +0000 Subject: [PATCH] fix double paste --- htdocs/fourn/commande/fiche.php | 1557 ------------------------------- 1 file changed, 1557 deletions(-) diff --git a/htdocs/fourn/commande/fiche.php b/htdocs/fourn/commande/fiche.php index 6cfa0d30767..3b6f90ff8c6 100644 --- a/htdocs/fourn/commande/fiche.php +++ b/htdocs/fourn/commande/fiche.php @@ -1489,1563 +1489,6 @@ if ($id > 0 || ! empty($ref)) - /* - * Action presend - * - */ - if ($_GET['action'] == 'presend') - { - $ref = dol_sanitizeFileName($commande->ref); - $file = $conf->fournisseur->commande->dir_output . '/' . $ref . '/' . $ref . '.pdf'; - - print '
'; - print_titre($langs->trans('SendOrderByMail')); - - // Cree l'objet formulaire mail - include_once(DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php'); - $formmail = new FormMail($db); - $formmail->fromtype = 'user'; - $formmail->fromid = $user->id; - $formmail->fromname = $user->getFullName($langs); - $formmail->frommail = $user->email; - $formmail->withfrom=1; - $formmail->withto=empty($_POST["sendto"])?1:$_POST["sendto"]; - $formmail->withtosocid=$soc->id; - $formmail->withtocc=1; - $formmail->withtoccsocid=0; - $formmail->withtoccc=$conf->global->MAIN_EMAIL_USECCC; - $formmail->withtocccsocid=0; - $formmail->withtopic=$langs->trans('SendOrderRef','__ORDERREF__'); - $formmail->withfile=2; - $formmail->withbody=1; - $formmail->withdeliveryreceipt=1; - $formmail->withcancel=1; - // Tableau des substitutions - $formmail->substit['__ORDERREF__']=$commande->ref; - // Tableau des parametres complementaires - $formmail->param['action']='send'; - $formmail->param['models']='order_supplier_send'; - $formmail->param['orderid']=$commande->id; - $formmail->param['returnurl']=$_SERVER["PHP_SELF"].'?id='.$commande->id; - - // Init list of files - if (! empty($_REQUEST["mode"]) && $_REQUEST["mode"]=='init') - { - $formmail->clear_attached_files(); - $formmail->add_attached_files($file,dol_sanitizeFilename($ref.'.pdf'),'application/pdf'); - } - - // Show form - $formmail->show_form(); - - print '
'; - } - - print ''; - - } - else - { - // Commande non trouvee - dol_print_error($db); - } -} - -$db->close(); - -llxFooter('$Date$ - $Revision$'); -?> - - * Copyright (C) 2004-2010 Laurent Destailleur - * Copyright (C) 2005 Eric Seigne - * Copyright (C) 2005-2010 Regis Houssin - * Copyright (C) 2010 Juanjo Menent - * Copyright (C) 2011 Philippe Grand - * - * 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/fourn/commande/fiche.php - * \ingroup supplier, order - * \brief Card supplier order - * \version $Id$ - */ - -require("../../main.inc.php"); -require_once(DOL_DOCUMENT_ROOT."/core/class/html.formfile.class.php"); -require_once(DOL_DOCUMENT_ROOT."/core/class/html.formorder.class.php"); -require_once(DOL_DOCUMENT_ROOT.'/includes/modules/supplier_order/modules_commandefournisseur.php'); -require_once DOL_DOCUMENT_ROOT."/fourn/class/fournisseur.commande.class.php"; -require_once DOL_DOCUMENT_ROOT."/fourn/class/fournisseur.product.class.php"; -require_once DOL_DOCUMENT_ROOT."/product/class/product.class.php"; -require_once DOL_DOCUMENT_ROOT."/lib/fourn.lib.php"; -require_once(DOL_DOCUMENT_ROOT."/lib/functions2.lib.php"); -if ($conf->projet->enabled) require_once(DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'); - -$langs->load('orders'); -$langs->load('sendings'); -$langs->load('companies'); -$langs->load('bills'); -$langs->load('propal'); -$langs->load('deliveries'); -$langs->load('products'); -$langs->load('stocks'); - -$comclientid = GETPOST("comid"); -$socid = GETPOST("socid"); -$action = GETPOST('action'); - - -// Security check -$id = GETPOST("id"); -if ($user->societe_id) $socid=$user->societe_id; -$result = restrictedArea($user, 'commande_fournisseur', $id,''); - -// Recuperation de l'id de projet -$projectid = 0; -if ($_GET["projectid"]) $projectid = $_GET["projectid"]; - -$mesg=''; - - -/* - * Actions - */ - - // conditions de reglement -if ($action == 'setconditions' && $user->rights->fournisseur->commande->creer) -{ - $commande = new CommandeFournisseur($db); - $commande->fetch($id); - $result=$commande->cond_reglement($_POST['cond_reglement_id']); -} - -// Set project -if ($action == 'classin') -{ - $commande = new CommandeFournisseur($db); - $commande->fetch($id); - $commande->setProject($_POST["projectid"]); -} - -if ($action == 'setremisepercent' && $user->rights->fournisseur->commande->creer) -{ - $commande = new CommandeFournisseur($db); - $commande->fetch($id); - $result = $commande->set_remise($user, $_POST['remise_percent']); -} - -if ($action == 'reopen' && $user->rights->fournisseur->commande->approuver) -{ - $order = new CommandeFournisseur($db); - $result = $order->fetch($id); - if ($order->statut == 5 || $order->statut == 6 || $order->statut == 7 || $order->statut == 9) - { - if ($order->statut == 5) $newstatus=4; // Received->Received partially - if ($order->statut == 6) $newstatus=2; // Canceled->Approved - if ($order->statut == 7) $newstatus=3; // Canceled->Process running - if ($order->statut == 9) $newstatus=1; // Refused->Validated - - $result = $order->setStatus($user,$newstatus); - if ($result > 0) - { - Header('Location: '.$_SERVER["PHP_SELF"].'?id='.$_REQUEST['id']); - exit; - } - else - { - $mesg='
'.$order->error.'
'; - } - } -} - -/* - * Add a line into product - */ -if ($action == 'addline' && $user->rights->fournisseur->commande->creer) -{ - if (($_POST['qty'] || $_POST['pqty']) && (($_POST['pu'] && ($_POST['np_desc'] || $_POST['dp_desc'])) || $_POST['idprodfournprice'])) - { - $commande = new CommandeFournisseur($db); - $ret=$commande->fetch($id); - if ($ret < 0) - { - dol_print_error($db,$commande->error); - exit; - } - - // Ecrase $pu par celui du produit - // Ecrase $desc par celui du produit - // Ecrase $txtva par celui du produit - if ($_POST["idprodfournprice"]) // >0 or -1 - { - $qty = $_POST['qty'] ? $_POST['qty'] : $_POST['pqty']; - - $product = new ProductFournisseur($db); - $idprod=$product->get_buyprice($_POST['idprodfournprice'], $qty); - - //$societe=''; - if ($commande->socid) - { - $societe=new Societe($db); - $societe->fetch($commande->socid); - } - - if ($idprod > 0) - { - $res=$product->fetch($idprod); - - // cas special pour lequel on a les meme reference que le fournisseur - // $label = '['.$nv_prod->ref.'] - '. $nv_prod->libelle; - $label = $product->libelle; - - $desc = $product->description; - $desc.= $product->description && $_POST['np_desc'] ? "\n" : ""; - $desc.= $_POST['np_desc']; - - $remise_percent = $_POST["remise_percent"] ? $_POST["remise_percent"] : $_POST["p_remise_percent"]; - - $tva_tx = get_default_tva($societe,$mysoc,$product->id); - $type = $product->type; - - // Local Taxes - $localtax1_tx= get_localtax($tva_tx, 1, $societe); - $localtax2_tx= get_localtax($tva_tx, 2, $societe); - - $result=$commande->addline( - $desc, - $pu, - $qty, - $tva_tx, - $localtax1_tx, - $localtax2_tx, - $product->id, - $_POST['idprodfournprice'], - $product->fourn_ref, - $remise_percent, - 'HT', - $type - ); - } - if ($idprod == -1) - { - // Quantity too low - $langs->load("errors"); - $mesg='
'.$langs->trans("ErrorQtyTooLowForThisSupplier").'
'; - } - } - else - { - $type=$_POST["type"]; - $desc=$_POST['dp_desc']; - $tva_tx = price2num($_POST['tva_tx']); - - // Local Taxes - $localtax1_tx= get_localtax($tva_tx, 1, $societe); - $localtax2_tx= get_localtax($tva_tx, 2, $societe); - - if (! $_POST['dp_desc']) - { - $mesg='
'.$langs->trans("ErrorFieldRequired",$langs->transnoentities("Label")).'
'; - } - else - { - if (!empty($_POST['pu'])) - { - $price_base_type = 'HT'; - $ht = price2num($_POST['pu']); - $result=$commande->addline($desc, $ht, $_POST['qty'], $tva_tx, $localtax1_tx, $localtax2_tx, 0, 0, '', $_POST['remise_percent'], $price_base_type, 0, $type); - } - else - { - $ttc = price2num($_POST['amountttc']); - $ht = $ttc / (1 + ($tauxtva / 100)); - $price_base_type = 'HT'; - $result=$commande->addline($desc, $ht, $_POST['qty'], $tva_tx, $localtax1_tx, $localtax2_tx, 0, 0, '', $_POST['remise_percent'], $price_base_type, $ttc, $type); - } - } - } - - //print "xx".$tva_tx; exit; - if ($result > 0) - { - $outputlangs = $langs; - if (! empty($_REQUEST['lang_id'])) - { - $outputlangs = new Translate("",$conf); - $outputlangs->setDefaultLang($_REQUEST['lang_id']); - } - supplier_order_pdf_create($db, $commande, $commande->modelpdf, $outputlangs); - - unset($_POST['qty']); - unset($_POST['type']); - unset($_POST['idprodfournprice']); - unset($_POST['remmise_percent']); - unset($_POST['dp_desc']); - unset($_POST['np_desc']); - unset($_POST['pu']); - unset($_POST['tva_tx']); - unset($localtax1_tx); - unset($localtax2_tx); - } - else if (empty($mesg)) - { - $mesg='
'.$commande->error.'
'; - } - } -} - -/* - * Mise a jour d'une ligne dans la commande - */ -if ($action == 'updateligne' && $user->rights->fournisseur->commande->creer && $_POST['save'] == $langs->trans('Save')) -{ - $product=new Product($db); - if ($_POST["elrowid"]) - { - if ($product->fetch($_POST["elrowid"]) < 0) dol_print_error($db); - } - $commande = new CommandeFournisseur($db,"",$id); - if ($commande->fetch($id) < 0) dol_print_error($db); - - $societe=new Societe($db); - $societe->fetch($commande->socid); - - $localtax1_tx=get_localtax($_POST['tva_tx'],1,$societe); - $localtax2_tx=get_localtax($_POST['tva_tx'],2,$societe); - - $result = $commande->updateline($_POST['elrowid'], - $_POST['eldesc'], - $_POST['pu'], - $_POST['qty'], - $_POST['remise_percent'], - $_POST['tva_tx'], - $localtax1_tx, - $localtax2_tx, - 'HT', - 0, - isset($_POST["type"])?$_POST["type"]:$product->type - ); - - if ($result >= 0) - { - $outputlangs = $langs; - if (! empty($_REQUEST['lang_id'])) - { - $outputlangs = new Translate("",$conf); - $outputlangs->setDefaultLang($_REQUEST['lang_id']); - } - supplier_order_pdf_create($db, $commande, $commande->modelpdf, $outputlangs); - } - else - { - dol_print_error($db,$commande->error); - exit; - } -} - -if ($action == 'confirm_deleteproductline' && $_REQUEST['confirm'] == 'yes') -{ - if ($user->rights->fournisseur->commande->creer) - { - $commande = new CommandeFournisseur($db); - $commande->fetch($id); - $result = $commande->deleteline($_GET['lineid']); - - $outputlangs = $langs; - if (! empty($_REQUEST['lang_id'])) - { - $outputlangs = new Translate("",$conf); - $outputlangs->setDefaultLang($_REQUEST['lang_id']); - } - supplier_order_pdf_create($db, $commande, $commande->modelpdf, $outputlangs); - } -} - -if ($action == 'confirm_valid' && $_REQUEST['confirm'] == 'yes' && $user->rights->fournisseur->commande->valider) -{ - $commande = new CommandeFournisseur($db); - $commande->fetch($id); - - $commande->date_commande=dol_now(); - $result = $commande->valid($user); - if ($result >= 0) - { - $outputlangs = $langs; - if (! empty($_REQUEST['lang_id'])) - { - $outputlangs = new Translate("",$conf); - $outputlangs->setDefaultLang($_REQUEST['lang_id']); - } - supplier_order_pdf_create($db, $commande, $commande->modelpdf, $outputlangs); - } - else - { - $mesg=$commande->error; - } - - // If we have permission, we go directly on approved step - if ($user->rights->fournisseur->commande->approuver) - { - $action='confirm_approve'; - } -} - -if ($action == 'confirm_approve' && $_REQUEST["confirm"] == 'yes' && $user->rights->fournisseur->commande->approuver) -{ - $commande = new CommandeFournisseur($db); - $commande->fetch($id); - $result = $commande->approve($user); - if ($result > 0) - { - Header("Location: fiche.php?id=".$id); - exit; - } - else - { - $mesg=$commande->error; - } -} - -if ($action == 'confirm_refuse' && $_REQUEST['confirm'] == 'yes' && $user->rights->fournisseur->commande->approuver) -{ - $commande = new CommandeFournisseur($db); - $commande->fetch($id); - $result = $commande->refuse($user); - if ($result > 0) - { - Header("Location: fiche.php?id=".$id); - exit; - } - else - { - $mesg=$commande->error; - } -} - -if ($action == 'confirm_commande' && $_REQUEST['confirm'] == 'yes' && $user->rights->fournisseur->commande->commander) -{ - $commande = new CommandeFournisseur($db); - $commande->fetch($id); - $result = $commande->commande($user, $_REQUEST["datecommande"], $_REQUEST["methode"], $_REQUEST['comment']); - if ($result > 0) - { - Header("Location: fiche.php?id=".$id); - exit; - } - else - { - $mesg=$commande->error; - } -} - - -if ($action == 'confirm_delete' && $_REQUEST['confirm'] == 'yes' && $user->rights->fournisseur->commande->supprimer) -{ - $commande = new CommandeFournisseur($db); - $commande->fetch($id); - $result=$commande->delete($user); - if ($result > 0) - { - Header("Location: ".DOL_URL_ROOT.'/fourn/commande/liste.php'); - exit; - } - else - { - $mesg=$commande->error; - } -} - -// Receive -if ($_POST["action"] == 'livraison' && $user->rights->fournisseur->commande->receptionner) -{ - $commande = new CommandeFournisseur($db); - $commande->fetch($id); - - if ($_POST["type"]) - { - $date_liv = dol_mktime(0,0,0,$_POST["remonth"],$_POST["reday"],$_POST["reyear"]); - - $result = $commande->Livraison($user, $date_liv, $_POST["type"], $_POST["comment"]); - if ($result > 0) - { - Header("Location: fiche.php?id=".$id); - exit; - } - else if($result == -3) - { - $mesg='
'.$langs->trans("NotAuthorized").'
'; - } - else - { - dol_print_error($db,$commande->error); - exit; - } - } - else - { - $mesg='
'.$langs->trans("ErrorFieldRequired",$langs->transnoentities("Delivery")).'
'; - } -} - -if ($action == 'confirm_cancel' && $_REQUEST["confirm"] == 'yes' && $user->rights->fournisseur->commande->commander) -{ - $commande = new CommandeFournisseur($db); - $commande->fetch($id); - $result = $commande->cancel($user); - if ($result > 0) - { - Header("Location: fiche.php?id=".$id); - exit; - } - else - { - $mesg=$commande->error; - } -} - -// Line ordering - -if ($_GET['action'] == 'up' && $user->rights->fournisseur->commande->creer) -{ - $commande = new CommandeFournisseur($db,'',$id); - $commande->fetch($id); - $commande->line_up($_GET['rowid']); - - $outputlangs = $langs; - if (! empty($_REQUEST['lang_id'])) - { - $outputlangs = new Translate("",$conf); - $outputlangs->setDefaultLang($_REQUEST['lang_id']); - } - supplier_order_pdf_create($db, $commande, $commande->modelpdf, $outputlangs); - Header ('Location: '.$_SERVER["PHP_SELF"].'?id='.$id.(empty($conf->global->MAIN_JUMP_TAG)?'':'#'.$_GET['rowid'])); - exit; -} - -if ($_GET['action'] == 'down' && $user->rights->fournisseur->commande->creer) -{ - $commande = new CommandeFournisseur($db,'',$id); - $commande->fetch($id); - $commande->line_down($_GET['rowid']); - - $outputlangs = $langs; - if (! empty($_REQUEST['lang_id'])) - { - $outputlangs = new Translate("",$conf); - $outputlangs->setDefaultLang($_REQUEST['lang_id']); - } - supplier_order_pdf_create($db, $commande, $commande->modelpdf, $outputlangs); - Header ('Location: '.$_SERVER["PHP_SELF"].'?id='.$id.(empty($conf->global->MAIN_JUMP_TAG)?'':'#'.$_GET['rowid'])); - exit; -} - - -if ($action == 'builddoc') // En get ou en post -{ - // Build document - - // Sauvegarde le dernier module choisi pour generer un document - $commande = new CommandeFournisseur($db); - $commande->fetch($_REQUEST['id']); - if ($_REQUEST['model']) - { - $commande->setDocModel($user, $_REQUEST['model']); - } - - $outputlangs = $langs; - if (! empty($_REQUEST['lang_id'])) - { - $outputlangs = new Translate("",$conf); - $outputlangs->setDefaultLang($_REQUEST['lang_id']); - } - $result=supplier_order_pdf_create($db, $commande,$commande->modelpdf,$outputlangs); - if ($result <= 0) - { - dol_print_error($db,$result); - exit; - } - else - { - Header ('Location: '.$_SERVER["PHP_SELF"].'?id='.$commande->id.(empty($conf->global->MAIN_JUMP_TAG)?'':'#builddoc')); - exit; - } -} - -// Delete file in doc form -if ($action=='remove_file') -{ - require_once(DOL_DOCUMENT_ROOT."/lib/files.lib.php"); - $commande = new CommandeFournisseur($db); - - if ($commande->fetch($id)) - { - $upload_dir = $conf->fournisseur->commande->dir_output . "/"; - $file = $upload_dir . '/' . $_GET['file']; - dol_delete_file($file); - $mesg = '
'.$langs->trans("FileWasRemoved").'
'; - } -} - - -/* - * Create an order - */ -if ($action == 'create') -{ - $fourn = new Fournisseur($db); - $result=$fourn->fetch($socid); - - $db->begin(); - - $orderid=$fourn->create_commande($user); - - if ($orderid > 0) - { - $idc = $fourn->single_open_commande; - - if ($comclientid != '') - { - $fourn->updateFromCommandeClient($user,$idc,$comclientid); - - } - - $id=$orderid; - $_GET['id']=$id; - $_REQUEST['id']=$id; - $db->commit(); - } - else - { - $db->rollback(); - $mesg=$fourn->error; - } -} - -/* - * Add file in email form - */ -if ($_POST['addfile']) -{ - require_once(DOL_DOCUMENT_ROOT."/lib/files.lib.php"); - - // Set tmp user directory TODO Use a dedicated directory for temp mails files - $vardir=$conf->user->dir_output."/".$user->id; - $upload_dir = $vardir.'/temp/'; - - $mesg=dol_add_file_process($upload_dir,0,0); - - $_GET["action"]='presend'; - $_POST["action"]='presend'; -} - -/* - * Remove file in email form - */ -if (! empty($_POST['removedfile'])) -{ - require_once(DOL_DOCUMENT_ROOT."/lib/files.lib.php"); - - // Set tmp user directory - $vardir=$conf->user->dir_output."/".$user->id; - $upload_dir = $vardir.'/temp/'; - - $mesg=dol_remove_file_process($_POST['removedfile'],0); - - $_GET["action"]='presend'; - $_POST["action"]='presend'; -} - -/* - * Send mail - */ -if ($_POST['action'] == 'send' && ! $_POST['addfile'] && ! $_POST['removedfile'] && ! $_POST['cancel']) -{ - $langs->load('mails'); - - $commande= new CommandeFournisseur($db); - $result=$commande->fetch($_POST['orderid']); - $result=$commande->fetch_thirdparty(); - - if ($result > 0) - { - $ref = dol_sanitizeFileName($commande->ref); - $file = $conf->fournisseur->commande->dir_output . '/' . $ref . '/' . $ref . '.pdf'; - - if (is_readable($file)) - { - if ($_POST['sendto']) - { - // Le destinataire a ete fourni via le champ libre - $sendto = $_POST['sendto']; - $sendtoid = 0; - } - elseif ($_POST['receiver']) - { - // Le destinataire a ete fourni via la liste deroulante - if ($_POST['receiver'] < 0) // Id du tiers - { - $sendto = $commande->client->email; - $sendtoid = 0; - } - else // Id du contact - { - $sendto = $commande->client->contact_get_property($_POST['receiver'],'email'); - $sendtoid = $_POST['receiver']; - } - } - - if (dol_strlen($sendto)) - { - $langs->load("commercial"); - - $from = $_POST['fromname'] . ' <' . $_POST['frommail'] .'>'; - $replyto = $_POST['replytoname']. ' <' . $_POST['replytomail'].'>'; - $message = $_POST['message']; - $sendtocc = $_POST['sendtocc']; - $deliveryreceipt = $_POST['deliveryreceipt']; - - if ($_POST['action'] == 'send') - { - if (dol_strlen($_POST['subject'])) $subject=$_POST['subject']; - else $subject = $langs->transnoentities('CustomerOrder').' '.$commande->ref; - $actiontypecode='AC_SUP_ORD'; - $actionmsg = $langs->transnoentities('MailSentBy').' '.$from.' '.$langs->transnoentities('To').' '.$sendto.".\n"; - if ($message) - { - $actionmsg.=$langs->transnoentities('MailTopic').": ".$subject."\n"; - $actionmsg.=$langs->transnoentities('TextUsedInTheMessageBody').":\n"; - $actionmsg.=$message; - } - $actionmsg2=$langs->transnoentities('Action'.$actiontypecode); - } - - // Create form object - include_once(DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php'); - $formmail = new FormMail($db); - - $attachedfiles=$formmail->get_attached_files(); - $filepath = $attachedfiles['paths']; - $filename = $attachedfiles['names']; - $mimetype = $attachedfiles['mimes']; - - // Send mail - require_once(DOL_DOCUMENT_ROOT.'/lib/CMailFile.class.php'); - $mailfile = new CMailFile($subject,$sendto,$from,$message,$filepath,$mimetype,$filename,$sendtocc,'',$deliveryreceipt); - if ($mailfile->error) - { - $mesg='
'.$mailfile->error.'
'; - } - else - { - $result=$mailfile->sendfile(); - if ($result) - { - $mesg=$langs->trans('MailSuccessfulySent',$from,$sendto); // Must not contain " - - $error=0; - - // Initialisation donnees - $commande->sendtoid=$sendtoid; - $commande->actiontypecode=$actiontypecode; - $commande->actionmsg = $actionmsg; - $commande->actionmsg2= $actionmsg2; - $commande->supplierorderrowid=$commande->id; - - // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php"); - $interface=new Interfaces($db); - $result=$interface->run_triggers('ORDER_SUPPLIER_SENTBYMAIL',$commande,$user,$langs,$conf); - if ($result < 0) { $error++; $this->errors=$interface->errors; } - // Fin appel triggers - - if ($error) - { - dol_print_error($db); - } - else - { - // Redirect here - // This avoid sending mail twice if going out and then back to page - Header('Location: '.$_SERVER["PHP_SELF"].'?id='.$commande->id.'&mesg='.urlencode($mesg)); - exit; - } - } - else - { - $langs->load("other"); - $mesg='
'; - if ($mailfile->error) - { - $mesg.=$langs->trans('ErrorFailedToSendMail',$from,$sendto); - $mesg.='
'.$mailfile->error; - } - else - { - $mesg.='No mail sent. Feature is disabled by option MAIN_DISABLE_ALL_MAILS'; - } - $mesg.='
'; - } - } - } - else - { - $langs->load("other"); - $mesg='
'.$langs->trans('ErrorMailRecipientIsEmpty').' !
'; - $_GET["action"]='presend'; - dol_syslog('Recipient email is empty'); - } - } - else - { - $langs->load("other"); - $mesg='
'.$langs->trans('ErrorCantReadFile',$file).'
'; - dol_syslog('Failed to read file: '.$file); - } - } - else - { - $langs->load("other"); - $mesg='
'.$langs->trans('ErrorFailedToReadEntity',$langs->trans("Invoice")).'
'; - dol_syslog('Impossible de lire les donnees de la facture. Le fichier facture n\'a peut-etre pas ete genere.'); - } -} - - -/* - * View - */ - -llxHeader('',$langs->trans("OrderCard"),"CommandeFournisseur"); - -$html = new Form($db); -$formfile = new FormFile($db); -$formorder = new FormOrder($db); -$productstatic = new Product($db); - - -/* *************************************************************************** */ -/* */ -/* Mode vue et edition */ -/* */ -/* *************************************************************************** */ - -$now=dol_now(); - -$id = $_REQUEST['id']; -$ref= $_REQUEST['ref']; - -if ($id > 0 || ! empty($ref)) -{ - //if ($mesg) print $mesg.'
'; - - $commande = new CommandeFournisseur($db); - - $result=$commande->fetch($id,$ref); - if ($result >= 0) - { - $soc = new Societe($db); - $soc->fetch($commande->socid); - - $author = new User($db); - $author->fetch($commande->user_author_id); - - $head = ordersupplier_prepare_head($commande); - - $title=$langs->trans("SupplierOrder"); - dol_fiche_head($head, 'card', $title, 0, 'order'); - - /* - * Confirmation de la suppression de la commande - */ - if ($_GET['action'] == 'delete') - { - $ret=$html->form_confirm($_SERVER["PHP_SELF"].'?id='.$id, $langs->trans('DeleteOrder'), $langs->trans('ConfirmDeleteOrder'), 'confirm_delete', '', 0, 2); - if ($ret == 'html') print '
'; - } - - /* - * Confirmation de la validation - */ - if ($_GET['action'] == 'valid') - { - $commande->date_commande=gmmktime(); - - // We check if number is temporary number - if (preg_match('/^[\(]?PROV/i',$commande->ref)) $newref = $commande->getNextNumRef($soc); - else $newref = $commande->ref; - - $text=$langs->trans('ConfirmValidateOrder',$newref); - if ($conf->notification->enabled) - { - require_once(DOL_DOCUMENT_ROOT ."/core/class/notify.class.php"); - $notify=new Notify($db); - $text.='
'; - $text.=$notify->confirmMessage(3,$commande->socid); - } - - $ret=$html->form_confirm($_SERVER["PHP_SELF"].'?id='.$id, $langs->trans('ValidateOrder'), $text, 'confirm_valid', '', 0, 1); - if ($ret == 'html') print '
'; - } - /* - * Confirmation de l'approbation - */ - if ($_GET['action'] == 'approve') - { - $ret=$html->form_confirm("fiche.php?id=$commande->id",$langs->trans("ApproveThisOrder"),$langs->trans("ConfirmApproveThisOrder",$commande->ref),"confirm_approve", '', 1, 1); - if ($ret == 'html') print '
'; - } - /* - * Confirmation de la desapprobation - */ - if ($_GET['action'] == 'refuse') - { - $ret=$html->form_confirm("fiche.php?id=$commande->id",$langs->trans("DenyingThisOrder"),$langs->trans("ConfirmDenyingThisOrder",$commande->ref),"confirm_refuse", '', 0, 1); - if ($ret == 'html') print '
'; - } - /* - * Confirmation de l'annulation - */ - if ($_GET['action'] == 'cancel') - { - $ret=$html->form_confirm("fiche.php?id=$commande->id",$langs->trans("Cancel"),$langs->trans("ConfirmCancelThisOrder",$commande->ref),"confirm_cancel", '', 0, 1); - if ($ret == 'html') print '
'; - } - - /* - * Confirmation de l'envoi de la commande - */ - if ($_GET["action"] == 'commande') - { - $date_com = dol_mktime(0,0,0,$_POST["remonth"],$_POST["reday"],$_POST["reyear"]); - $ret=$html->form_confirm("fiche.php?id=".$commande->id."&datecommande=".$date_com."&methode=".$_POST["methodecommande"]."&comment=".urlencode($_POST["comment"]), - $langs->trans("MakeOrder"),$langs->trans("ConfirmMakeOrder",dol_print_date($date_com,'day')),"confirm_commande",'',0,2); - if ($ret == 'html') print '
'; - } - - /* - * Confirmation de la suppression d'une ligne produit - */ - if ($_GET['action'] == 'delete_product_line') - { - $ret=$html->form_confirm($_SERVER["PHP_SELF"].'?id='.$commande->id.'&lineid='.$_GET["lineid"], $langs->trans('DeleteProductLine'), $langs->trans('ConfirmDeleteProductLine'), 'confirm_deleteproductline','',0,2); - if ($ret == 'html') print '
'; - } - - /* - * Commande - */ - $nbrow=8; - if ($conf->projet->enabled) $nbrow++; - - //Local taxes - if ($mysoc->pays_code=='ES') - { - if($mysoc->localtax1_assuj=="1") $nbrow++; - if($mysoc->localtax2_assuj=="1") $nbrow++; - } - - print ''; - - // Ref - print ''; - print ''; - print ''; - - // Ref supplier -/* print '"; - print ''; - print ''; -*/ - // Fournisseur - print '"; - print ''; - print ''; - - // Statut - print ''; - print ''; - print '"; - - // Date - if ($commande->methode_commande_id > 0) - { - print '"; - - if ($commande->methode_commande) - { - print ''; - } - } - - // Author - print ''; - print ''; - print ''; - - // Conditions de reglement par defaut - $langs->load('bills'); - $html = new Form($db); - print '"; - print ''; - - // Project - if ($conf->projet->enabled) - { - $langs->load('projects'); - print ''; - print ''; - } - - // Ligne de 3 colonnes - print ''; - print ''; - print ''; - - print ''; - print ''; - - // Amount Local Taxes - if ($mysoc->pays_code=='ES') - { - if ($mysoc->localtax1_assuj=="1") //Localtax1 RE - { - print ''; - print ''; - print ''; - } - if ($mysoc->localtax2_assuj=="1") //Localtax2 IRPF - { - print ''; - print ''; - print ''; - } - } - print ''; - print ''; - - print "
'.$langs->trans("Ref").''; - print $html->showrefnav($commande,'ref','',1,'ref','ref'); - print '
'.$langs->trans("RefSupplier")."'.$commande->ref_supplier.'
'.$langs->trans("Supplier")."'.$soc->getNomUrl(1,'supplier').'
'.$langs->trans("Status").''; - print $commande->getLibStatut(4); - print "
'.$langs->trans("Date").''; - if ($commande->date_commande) - { - print dol_print_date($commande->date_commande,"dayhourtext")."\n"; - } - print "
'.$langs->trans("Method").''.$commande->methode_commande.'
'.$langs->trans("AuthorRequest").''.$author->getNomUrl(1).'
'; - print ''; - print '
'; - print $langs->trans('PaymentConditions'); - print ''; - if ($_GET['action'] != 'editconditions') print 'id.'">'.img_edit($langs->trans('SetConditions'),1).'
'; - print '
'; - if ($_GET['action'] == 'editconditions') - { - $html->form_conditions_reglement($_SERVER['PHP_SELF'].'?id='.$commande->id, $commande->cond_reglement_id,'cond_reglement_id'); - } - else - { - $html->form_conditions_reglement($_SERVER['PHP_SELF'].'?id='.$commande->id, $commande->cond_reglement_id,'none'); - } - print "
'; - print ''; - if ($_GET['action'] != 'classer') print ''; - print '
'; - print $langs->trans('Project'); - print ''.img_edit($langs->trans('SetProject')).'
'; - print '
'; - //print "$commande->id, $commande->socid, $commande->fk_project"; - if ($_GET['action'] == 'classer') - { - $html->form_project($_SERVER['PHP_SELF'].'?id='.$commande->id, $commande->socid, $commande->fk_project, 'projectid'); - } - else - { - $html->form_project($_SERVER['PHP_SELF'].'?id='.$commande->id, $commande->socid, $commande->fk_project, 'none'); - } - print '
'.$langs->trans("AmountHT").''.price($commande->total_ht).''.$langs->trans("Currency".$conf->monnaie).'
'.$langs->trans("AmountVAT").''.price($commande->total_tva).''.$langs->trans("Currency".$conf->monnaie).'
'.$langs->transcountry("AmountLT1",$mysoc->pays_code).''.price($commande->total_localtax1).''.$langs->trans("Currency".$conf->monnaie).'
'.$langs->transcountry("AmountLT2",$mysoc->pays_code).''.price($commande->total_localtax2).''.$langs->trans("Currency".$conf->monnaie).'
'.$langs->trans("AmountTTC").''.price($commande->total_ttc).''.$langs->trans("Currency".$conf->monnaie).'
"; - - if ($mesg) print $mesg; - else print '
'; - - /* - * Lines - */ - print ''; - - $num = sizeof($commande->lines); - $i = 0; $total = 0; - - if ($num) - { - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print "\n"; - } - $var=true; - while ($i < $num) - { - $line = $commande->lines[$i]; - $var=!$var; - - // Show product and description - $type=$line->product_type?$line->product_type:$line->fk_product_type; - // Try to enhance type detection using date_start and date_end for free lines where type - // was not saved. - if (! empty($line->date_start)) $type=1; - if (! empty($line->date_end)) $type=1; - - // Ligne en mode visu - if ($_GET['action'] != 'editline' || $_GET['rowid'] != $line->id) - { - print ''; - - // Show product and description - print ''; - - print ''; - - print '\n"; - - print ''; - - if ($line->remise_percent > 0) - { - print '\n"; - } - else - { - print ''; - } - - print ''; - if ($commande->statut == 0 && $user->rights->fournisseur->commande->creer) - { - print ''; - - $actiondelete='delete_product_line'; - print ''; - } - else - { - print ''; - } - print ""; - } - - // Ligne en mode update - if ($_GET["action"] == 'editline' && $user->rights->fournisseur->commande->creer && ($_GET["rowid"] == $line->id)) - { - print "\n"; - print 'id.'" method="post">'; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print '' . "\n"; - print "\n"; - } - $i++; - } - - /* - * Form to add new line - */ - if ($commande->statut == 0 && $user->rights->fournisseur->commande->creer && $_GET["action"] <> 'editline') - { - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - - // Add free products/services form - print ''; - print ''; - print ''; - print ''; - - $var=true; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - - print ''; - - // Ajout de produits/services predefinis - if ($conf->product->enabled || $conf->service->enabled) - { - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - - print ''; - print ''; - print ''; - print ''; - - $var=!$var; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - - print ''; - } - } - print '
'.$langs->trans('Label').''.$langs->trans('VAT').''.$langs->trans('PriceUHT').''.$langs->trans('Qty').''.$langs->trans('ReductionShort').''.$langs->trans('TotalHTShort').' 
'; - if ($line->fk_product > 0) - { - print ''; // ancre pour retourner sur la ligne - - $product_static=new ProductFournisseur($db); - $product_static->fetch($line->fk_product); - $text=$product_static->getNomUrl(1,'supplier'); - $text.= ' - '.$product_static->libelle; - $description=($conf->global->PRODUIT_DESC_IN_FORM?'':dol_htmlentitiesbr($line->description)); - print $html->textwithtooltip($text,$description,3,'','',$i); - - // Show range - print_date_range($line->date_start,$line->date_end); - - // Add description in form - if ($conf->global->PRODUIT_DESC_IN_FORM) print ($line->description && $line->description!=$product_static->libelle)?'
'.dol_htmlentitiesbr($line->description):''; - } - - // Description - Editor wysiwyg - if (! $line->fk_product) - { - if ($type==1) $text = img_object($langs->trans('Service'),'service'); - else $text = img_object($langs->trans('Product'),'product'); - print $text.' '.nl2br($line->description); - - // Show range - print_date_range($line->date_start,$line->date_end); - } - - print '
'.vatrate($line->tva_tx).'%'.price($line->subprice)."'.$line->qty.''.dol_print_reduction($line->remise_percent,$langs)." '.price($line->total_ht).'id.'#'.$line->id.'">'; - print img_edit(); - print ''; - print img_delete(); - print '  
'; - print ''; // ancre pour retourner sur la ligne - if (($conf->product->enabled || $conf->service->enabled) && $line->fk_product > 0) - { - $product_static=new ProductFournisseur($db); - $product_static->fetch($line->fk_product); - $text=$product_static->getNomUrl(1,'supplier'); - $text.= ' - '.$product_static->libelle; - $description=($conf->global->PRODUIT_DESC_IN_FORM?'':dol_htmlentitiesbr($line->description)); - print $html->textwithtooltip($text,$description,3,'','',$i); - - // Show range - print_date_range($line->date_start,$line->date_end); - print '
'; - } - else - { - print $html->select_type_of_lines($line->product_type,'type',1); - if ($conf->product->enabled && $conf->service->enabled) print '
'; - } - - // Description - Editor wysiwyg - require_once(DOL_DOCUMENT_ROOT."/lib/doleditor.class.php"); - $nbrows=ROWS_2; - if (! empty($conf->global->MAIN_INPUT_DESC_HEIGHT)) $nbrows=$conf->global->MAIN_INPUT_DESC_HEIGHT; - $doleditor=new DolEditor('eldesc',$line->description,'',200,'dolibarr_details','',false,true,$conf->fckeditor->enabled && $conf->global->FCKEDITOR_ENABLE_DETAILS,$nbrows,70); - $doleditor->Create(); - - print '
'; - $html->select_tva('tva_tx',$line->tva_tx); - print '%'; - print '
'; - print ''; // ancre - print $langs->trans('AddNewLine').' - '.$langs->trans("FreeZone").''.$langs->trans('VAT').''.$langs->trans('PriceUHT').''.$langs->trans('Qty').''.$langs->trans('ReductionShort').' 
'; - - $forceall=1; - print $html->select_type_of_lines(isset($_POST["type"])?$_POST["type"]:-1,'type',1,0,$forceall); - if ($forceall || ($conf->product->enabled && $conf->service->enabled) - || (empty($conf->product->enabled) && empty($conf->service->enabled))) print '
'; - - // Editor wysiwyg - require_once(DOL_DOCUMENT_ROOT."/lib/doleditor.class.php"); - $nbrows=ROWS_2; - if (! empty($conf->global->MAIN_INPUT_DESC_HEIGHT)) $nbrows=$conf->global->MAIN_INPUT_DESC_HEIGHT; - $doleditor=new DolEditor('dp_desc',$_POST["dp_desc"],'',100,'dolibarr_details','',false,true,$conf->fckeditor->enabled && $conf->global->FCKEDITOR_ENABLE_DETAILS,$nbrows,70); - $doleditor->Create(); - - print '
'; - //if($soc->tva_assuj == "0") - //print '0'; - //else - print $html->select_tva('tva_tx',($_POST["tva_tx"]?$_POST["tva_tx"]:$conf->defaulttx),$soc,$mysoc); - print 'remise_client).'">%
'; - print $langs->trans("AddNewLine").' - '; - if ($conf->service->enabled) - { - print $langs->trans('RecordedProductsAndServices'); - } - else - { - print $langs->trans('RecordedProducts'); - } - print ''.$langs->trans('Qty').''.$langs->trans('ReductionShort').' 
'; - $html->select_produits_fournisseurs($commande->fourn_id,'','idprodfournprice','',$filtre); - - if (! $conf->global->PRODUIT_USE_SEARCH_TO_SELECT) print '
'; - - // Editor wysiwyg - require_once(DOL_DOCUMENT_ROOT."/lib/doleditor.class.php"); - $nbrows=ROWS_2; - if (! empty($conf->global->MAIN_INPUT_DESC_HEIGHT)) $nbrows=$conf->global->MAIN_INPUT_DESC_HEIGHT; - $doleditor=new DolEditor('np_desc',$_POST["np_desc"],'',100,'dolibarr_details','',false,true,$conf->fckeditor->enabled && $conf->global->FCKEDITOR_ENABLE_DETAILS,$nbrows,70); - $doleditor->Create(); - - print '
remise_client).'">%
'; - print ''; - - - if ($_GET['action'] != 'presend') - { - - /** - * Boutons actions - */ - if ($user->societe_id == 0 && $_GET['action'] != 'editline' && $_GET['action'] != 'delete') - { - print '
'; - - // Validate - if ($commande->statut == 0 && $num > 0) - { - if ($user->rights->fournisseur->commande->valider) - { - print ''.$langs->trans('Validate').''; - } - } - - // Approve - if ($commande->statut == 1) - { - if ($user->rights->fournisseur->commande->approuver) - { - print ''.$langs->trans("ApproveOrder").''; - print ''.$langs->trans("RefuseOrder").''; - } - else - { - print ''.$langs->trans("ApproveOrder").''; - print ''.$langs->trans("RefuseOrder").''; - } - } - - // Send - if (in_array($commande->statut,array(2,3,4,5))) - { - if ($user->rights->fournisseur->commande->commander) - { - $comref = dol_sanitizeFileName($commande->ref); - $file = $conf->fournisseur->commande->dir_output . '/'.$comref.'/'.$comref.'.pdf'; - if (file_exists($file)) - { - print ''.$langs->trans('SendByMail').''; - } - } - } - - // Reopen - if ($commande->statut == 5 || $commande->statut == 6 || $commande->statut == 7 || $commande->statut == 9) - { - if ($user->rights->fournisseur->commande->commander) - { - print ''.$langs->trans("ReOpen").''; - } - } - - // Create bill - if ($conf->fournisseur->enabled && $commande->statut >= 2) // 2 means accepted - { - if ($user->rights->fournisseur->facture->creer) - { - print ''.$langs->trans("CreateBill").''; - } - - //if ($user->rights->fournisseur->commande->creer && $object->statut > 2) - //{ - // print ''.$langs->trans("ClassifyBilled").''; - //} - } - - // Cancel - if ($commande->statut == 2) - { - if ($user->rights->fournisseur->commande->commander) - { - print ''.$langs->trans("CancelOrder").''; - } - } - - // Delete - if ($user->rights->fournisseur->commande->supprimer) - { - print ''.$langs->trans("Delete").''; - } - - - print "
"; - } - - - print '
'; - print ''; // ancre - - /* - * Documents generes - */ - $comfournref = dol_sanitizeFileName($commande->ref); - $file = $conf->fournisseur->dir_output . '/commande/' . $comfournref . '/' . $comfournref . '.pdf'; - $relativepath = $comfournref.'/'.$comfournref.'.pdf'; - $filedir = $conf->fournisseur->dir_output . '/commande/' . $comfournref; - $urlsource=$_SERVER["PHP_SELF"]."?id=".$commande->id; - $genallowed=$user->rights->fournisseur->commande->creer; - $delallowed=$user->rights->fournisseur->commande->supprimer; - - $somethingshown=$formfile->show_documents('commande_fournisseur',$comfournref,$filedir,$urlsource,$genallowed,$delallowed,$commande->modelpdf); - - $object=$commande; - - /* - * Linked object block - */ - $object->load_object_linked($object->id,$object->element); - - foreach($object->linked_object as $linked_object => $linked_objectid) - { - $tmpmodule=$linked_object; - if ($linked_object == 'invoice_supplier') $tmpmodule='fournisseur'; - if ($linked_object == 'order_supplier') $tmpmodule='fournisseur'; - if($conf->$tmpmodule->enabled && $linked_object != $object->element) - { - $somethingshown=$object->showLinkedObjectBlock($linked_object,$linked_objectid,$somethingshown); - } - } - - - print ''; - - if ( $user->rights->fournisseur->commande->commander && $commande->statut == 2) - { - /** - * Commander (action=commande) - */ - print '
'; - print '
'; - print ''; - print ''; - print ''; - print ''; - print ''; - - print ''; - - print ''; - print ''; - print '
'.$langs->trans("ToOrder").'
'.$langs->trans("OrderDate").''; - $date_com = dol_mktime(0,0,0,$_POST["remonth"],$_POST["reday"],$_POST["reyear"]); - print $html->select_date($date_com,'','','','',"commande"); - print '
'.$langs->trans("OrderMode").''; - $formorder->select_methodes_commande($_POST["methodecommande"],"methodecommande",1); - print '
'.$langs->trans("Comment").'
'; - print '
'; - } - - if ( $user->rights->fournisseur->commande->receptionner && ($commande->statut == 3 ||$commande->statut == 4 )) - { - /** - * Receptionner (action=livraison) - */ - print '
'; - print '
'; - print ''; - print ''; - print ''; - print ''; - print '\n"; - - print "'; - print ''; - print ''; - print "
'.$langs->trans("Receive").'
'.$langs->trans("DeliveryDate").''; - print $html->select_date('','','','','',"commande"); - print "
".$langs->trans("Delivery")."\n"; - $liv = array(); - $liv[''] = ' '; - $liv['tot'] = $langs->trans("TotalWoman"); - $liv['par'] = $langs->trans("PartialWoman"); - $liv['nev'] = $langs->trans("NeverReceived"); - $liv['can'] = $langs->trans("Canceled"); - - print $html->selectarray("type",$liv); - - print '
'.$langs->trans("Comment").'
\n"; - print "
\n"; - } - - // List of actions on element - /* Hidden because" available into "Log" tab - print '
'; - include_once(DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php'); - $formactions=new FormActions($db); - $somethingshown=$formactions->showactions($commande,'order_supplier',$socid); - */ - - print '
'; - } - - - /* * Action presend *