diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index a4dd6bbab9c1b2d68958c0f597b964baa4b46e11..d333e2cc6d79602c96b91b91ad575030f93e43a9 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -650,7 +650,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu { $langs->load("orders"); $newmenu->add("/fourn/commande/index.php?leftmenu=orders_suppliers",$langs->trans("SuppliersOrders"), 0, $user->rights->fournisseur->commande->lire, '', $mainmenu, 'orders_suppliers'); - $newmenu->add("/societe/societe.php?leftmenu=orders_suppliers", $langs->trans("NewOrder"), 1, $user->rights->fournisseur->commande->creer); + $newmenu->add("/fourn/commande/fiche.php?action=create", $langs->trans("NewOrder"), 1, $user->rights->fournisseur->commande->creer); $newmenu->add("/fourn/commande/liste.php?leftmenu=orders_suppliers", $langs->trans("List"), 1, $user->rights->fournisseur->commande->lire); $newmenu->add("/commande/stats/index.php?leftmenu=orders_suppliers&mode=supplier", $langs->trans("Statistics"), 1, $user->rights->fournisseur->commande->lire); } diff --git a/htdocs/fourn/class/fournisseur.commande.class.php b/htdocs/fourn/class/fournisseur.commande.class.php index 97d20d54d48cf8462ba9ce9fd8ee3cd3492fe05c..b74511f141964a4f6407fabfd6bff69c415d5233 100644 --- a/htdocs/fourn/class/fournisseur.commande.class.php +++ b/htdocs/fourn/class/fournisseur.commande.class.php @@ -3,7 +3,7 @@ * Copyright (C) 2004-2012 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com> * Copyright (C) 2007 Franky Van Liedekerke <franky.van.liedekerke@telenet.be> - * Copyright (C) 2010-2011 Juanjo Menent <jmenent@2byte.es> + * Copyright (C) 2010-2013 Juanjo Menent <jmenent@2byte.es> * Copyright (C) 2010-2012 Philippe Grand <philippe.grand@atoo-net.com> * Copyright (C) 2012 Marcos García <marcosgdf@gmail.com> * @@ -926,6 +926,9 @@ class CommandeFournisseur extends CommonOrder $sql = "INSERT INTO ".MAIN_DB_PREFIX."commande_fournisseur ("; $sql.= "ref"; + $sql.= ", ref_supplier"; + $sql.= ", note"; + $sql.= ", note_public"; $sql.= ", entity"; $sql.= ", fk_soc"; $sql.= ", date_creation"; @@ -938,6 +941,9 @@ class CommandeFournisseur extends CommonOrder $sql.= ") "; $sql.= " VALUES ("; $sql.= "''"; + $sql.= ", '".$this->ref_supplier."'"; + $sql.= ", '".$this->note."'"; + $sql.= ", '".$this->note_public."'"; $sql.= ", ".$conf->entity; $sql.= ", ".$this->socid; $sql.= ", ".$this->db->idate($now); diff --git a/htdocs/fourn/commande/fiche.php b/htdocs/fourn/commande/fiche.php index 1afb3fddb00f91a8b0d8fecde8da5e0ab5915fb0..4baa7ac50f54ad8f7a3bcdabe2bfe446986d2ade 100644 --- a/htdocs/fourn/commande/fiche.php +++ b/htdocs/fourn/commande/fiche.php @@ -3,7 +3,7 @@ * Copyright (C) 2004-2012 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2005 Eric Seigne <eric.seigne@ryxeo.com> * Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com> - * Copyright (C) 2010-2012 Juanjo Menent <jmenent@2byte.es> + * Copyright (C) 2010-2013 Juanjo Menent <jmenent@2byte.es> * Copyright (C) 2011 Philippe Grand <philippe.grand@atoo-net.com> * Copyright (C) 2012 Marcos García <marcosgdf@gmail.com> * @@ -82,7 +82,7 @@ if ($id > 0 || ! empty($ref)) $ret = $object->fetch_thirdparty(); if ($ret < 0) dol_print_error($db,$object->error); } -else if (! empty($socid)) +else if (! empty($socid) && $socid > 0) { $fourn = new Fournisseur($db); $ret=$fourn->fetch($socid); @@ -657,33 +657,47 @@ else if ($action == 'remove_file' && $object->id > 0 && $user->rights->fournisse /* * Create an order */ -else if ($action == 'create' && ! empty($object->socid) && $user->rights->fournisseur->commande->creer) +else if ($action == 'add' && $user->rights->fournisseur->commande->creer) { - $error=0; + $error=0; - $db->begin(); - - $id=$object->create($user); - if (! $id > 0) + if ($socid <1) { - $error++; - setEventMessage($object->error, 'errors'); + $mesg='<div class="error">'.$langs->trans('ErrorFieldRequired',$langs->transnoentities('Supplier')).'</div>'; + $action='create'; + $error++; } if (! $error) { - if ($comclientid != '') - { - $object->updateFromCommandeClient($user, $id, $comclientid); - } + $db->begin(); - $ret=$object->fetch($id); // Reload to get new records + // Creation commande + $object->ref_supplier = GETPOST('refsupplier'); + $object->socid = $socid; + $object->note = GETPOST('note'); + $object->note_public = GETPOST('note_public'); - $db->commit(); - } - else - { - $db->rollback(); + $id = $object->create($user); + if ($id < 0) + { + $error++; + } + + if ($error) + { + $langs->load("errors"); + $db->rollback(); + $mesg='<div class="error">'.$langs->trans($object->error).'</div>'; + $action='create'; + $_GET['socid']=$_POST['socid']; + } + else + { + $db->commit(); + header("Location: ".$_SERVER['PHP_SELF']."?id=".$id); + exit; + } } } @@ -942,8 +956,68 @@ $productstatic = new Product($db); /* *************************************************************************** */ $now=dol_now(); - -if (! empty($object->id)) +if ($action=="create") +{ + print_fiche_titre($langs->trans('NewOrder')); + + dol_htmloutput_mesg($mesg); + + $societe=''; + if ($socid>0) + { + $societe=new Societe($db); + $societe->fetch($socid); + } + + print '<form name="add" action="'.$_SERVER["PHP_SELF"].'" method="post">'; + print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; + print '<input type="hidden" name="action" value="add">'; + print '<table class="border" width="100%">'; + + // Ref + print '<tr><td>'.$langs->trans('Ref').'</td><td>'.$langs->trans('Draft').'</td></tr>'; + + // Third party + print '<tr><td class="fieldrequired">'.$langs->trans('Supplier').'</td>'; + print '<td>'; + + if ($socid > 0) + { + print $societe->getNomUrl(1); + print '<input type="hidden" name="socid" value="'.$socid.'">'; + } + else + { + print $form->select_company((empty($socid)?'':$socid),'socid','s.fournisseur = 1',1); + } + print '</td>'; + + // Ref supplier + print '<tr><td>'.$langs->trans('RefSupplier').'</td><td><input name="refsupplier" type="text"></td>'; + print '</tr>'; + + print '</td></tr>'; + + print '<tr><td>'.$langs->trans('Note').'</td>'; + print '<td><textarea name="note" wrap="soft" cols="60" rows="'.ROWS_5.'"></textarea></td>'; + print '</tr>'; + + print '<tr><td>'.$langs->trans('NotePublic').'</td>'; + print '<td><textarea name="note_public" wrap="soft" cols="60" rows="'.ROWS_5.'"></textarea></td>'; + print '</tr>'; + + // Other options + $parameters=array(); + $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook + + // Bouton "Create Draft" + print "</table>\n"; + + print '<br><center><input type="submit" class="button" name="bouton" value="'.$langs->trans('CreateDraft').'"></center>'; + + print "</form>\n"; +} +elseif (! empty($object->id)) { $author = new User($db); $author->fetch($object->user_author_id); diff --git a/htdocs/langs/ca_ES/admin.lang b/htdocs/langs/ca_ES/admin.lang index adbce99178149108a2149a491ced41878c97699e..70af2933354fa6666521aeef543ff186b035d0db 100644 --- a/htdocs/langs/ca_ES/admin.lang +++ b/htdocs/langs/ca_ES/admin.lang @@ -937,6 +937,7 @@ ExtraFieldsThirdParties=Atributs adicionals (tercers) ExtraFieldsContacts=Atributs adicionals (contactes/adreçes) ExtraFieldsMember=Atributs complementaris (membres) ExtraFieldsMemberType=Atributs complementaris (tipus de membres) +ExtraFieldsCustomerInvoices=Atributs complementaris (factures a clients) ExtraFieldHasWrongValue=L'atribut %s te un valor incorrecte. AlphaNumOnlyCharsAndNoSpace=només carateres alfanumèrics sense espais SendingMailSetup=Configuració de l'enviament per mail diff --git a/htdocs/langs/es_ES/admin.lang b/htdocs/langs/es_ES/admin.lang index 587ba2d3679d0cc40b6c75f8ab180217a0d2c3c7..42d01cae8d9cce0a278b2215fde9779e2c6fa8e5 100644 --- a/htdocs/langs/es_ES/admin.lang +++ b/htdocs/langs/es_ES/admin.lang @@ -938,6 +938,7 @@ ExtraFieldsThirdParties=Atributos adicionales (terceros) ExtraFieldsContacts=Atributos adicionales (contactos/direcciones) ExtraFieldsMember=Atributos complementarios (miembros) ExtraFieldsMemberType=Atributos complementarios (tipos de miembros) +ExtraFieldsCustomerInvoices=Atributos complementarios (facturas a clientes) ExtraFieldHasWrongValue=El atributo %s tiene un valor incorrecto. AlphaNumOnlyCharsAndNoSpace=solamente caracteres alfanuméricos sin espacios SendingMailSetup=Configuración del envío por mail