diff --git a/ChangeLog b/ChangeLog index d5e30f09ddd..04878531985 100644 --- a/ChangeLog +++ b/ChangeLog @@ -51,6 +51,7 @@ For developers: WARNING: If you used external modules, some of them may need to be upgraded due to: - fields of classes were renamed to be normalized (nom, prenom, cp, ville, adresse were renamed into lastname, firstname, zip, town, address). + This may also be true for some fields into web services. - if module use hook pdf_writelinedesc, module may have to add return 1 at end of function to keep same behaviour. @@ -62,7 +63,7 @@ WARNING: If you used external modules, some of them may need to be upgraded due - Fix: Package for launchpad - Fix: [ bug #736 ] Missing column in llx_c_chargesociales - Fix: Localtax2 for Spain must be based into buyer - +- Fix: [ bug #762 ] Bad profit calculation in Reporting @@ -82,6 +83,7 @@ WARNING: If you used external modules, some of them may need to be upgraded due - Fix: Package for launchpad - Fix: [ bug #736 ] Missing column in llx_c_chargesociales - Fix: Localtax2 for Spain must be based into buyer +- Fix: [ bug #762 ] Bad profit calculation in Reporting diff --git a/README b/README index 05bf5b8b35f..ad883d9aa57 100644 --- a/README +++ b/README @@ -108,7 +108,7 @@ Other modules: - RSS Miscellanous: -- Mutli-user, with several permissions levels for each feature. +- Multi-user, with several permissions levels for each feature. - Serveral menu managers (can be used by internal users, as a back-office, with a particular menu, or by external users, as a front-office, with another menu and permissions). diff --git a/README-FR b/README-FR index e4dd3e09a90..6988f3f263d 100644 --- a/README-FR +++ b/README-FR @@ -122,7 +122,7 @@ V - CE QUE DOLIBARR NE PEUT PAS FAIRE (TACHES A FAIRE) Voici un liste de fonctionnalites pas encore gérées par Dolibarr: - Pas de compta analytique (uniquement gestion de trésorerie). - Dolibarr ne gère qu'une seule monnaie à la fois (mono-devise). -- Dolibarr ne gère en standard qu'une société/institution/association (mono-société). Pour en gérer plusieurs (comme vos filiales), il faut, soit faire plusieurs installations de Dolibarr, soit installer le module MutliCompany qui permet de gérer n société/institutions/associations dans une seule instance par une isolation logique des données. +- Dolibarr ne gère en standard qu'une société/institution/association (mono-société). Pour en gérer plusieurs (comme vos filiales), il faut, soit faire plusieurs installations de Dolibarr, soit installer le module MultiCompany qui permet de gérer n société/institutions/associations dans une seule instance par une isolation logique des données. - Ne gère pas la double tva (Fédérale / provinciale) du canada. - Dolibarr ne contient pas de module de Gestion de la paie. - Les taches du module de gestion de projets n'ont pas de dépendance entre elle. diff --git a/README.md b/README.md index 18f451da3a0..0a8be8fd8fa 100644 --- a/README.md +++ b/README.md @@ -105,7 +105,7 @@ See ChangeLog file found into package. ### Miscellanous: -- Mutli-user, with several permissions levels for each feature. +- Multi-user, with several permissions levels for each feature. - Serveral menu managers (can be used by internal users, as a back-office, with a particular menu, or by external users, as a front-office, with another menu and permissions). - Very user friendly and easy to use. - Optional WYSIWYG forms, optional Ajax forms. diff --git a/htdocs/compta/resultat/index.php b/htdocs/compta/resultat/index.php index ac6065bd78a..4279490d801 100644 --- a/htdocs/compta/resultat/index.php +++ b/htdocs/compta/resultat/index.php @@ -555,7 +555,7 @@ for ($annee = $year_start ; $annee <= $year_end ; $annee++) if (isset($totentrees[$annee]) || isset($totsorties[$annee])) { $in=(isset($totentrees[$annee])?price2num($totentrees[$annee], 'MT'):0); - $out=(isset($totsorties[$annee])?price2num($totsorties[$annee],' MT'):0); + $out=(isset($totsorties[$annee])?price2num($totsorties[$annee],'MT'):0); print price($in-$out).''; // print ' '; } diff --git a/htdocs/core/lib/sendings.lib.php b/htdocs/core/lib/sendings.lib.php index 5a0ce136ca3..78fd0b9f0e0 100644 --- a/htdocs/core/lib/sendings.lib.php +++ b/htdocs/core/lib/sendings.lib.php @@ -108,11 +108,14 @@ function delivery_prepare_head($object) // Show more tabs from modules // Entries must be declared in modules descriptor with line // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab - // $this->tabs = array('entity:-tabname); to remove a tab + // $this->tabs = array('entity:-tabname); to remove a tab + // complete_head_from_modules use $object->id for this link so we temporary change it + $tmpObjectId = $object->id; + $object->id = $object->origin_id; complete_head_from_modules($conf,$langs,$object,$head,$h,'delivery'); complete_head_from_modules($conf,$langs,$object,$head,$h,'delivery','remove'); - + $object->id = $tmpObjectId; return $head; } @@ -322,4 +325,4 @@ function show_list_sending_receive($origin,$origin_id,$filter='') return 1; } -?> \ No newline at end of file +?> diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index a4dd6bbab9c..d333e2cc6d7 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 97d20d54d48..b74511f1419 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 * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2007 Franky Van Liedekerke - * Copyright (C) 2010-2011 Juanjo Menent + * Copyright (C) 2010-2013 Juanjo Menent * Copyright (C) 2010-2012 Philippe Grand * Copyright (C) 2012 Marcos García * @@ -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 1afb3fddb00..4baa7ac50f5 100644 --- a/htdocs/fourn/commande/fiche.php +++ b/htdocs/fourn/commande/fiche.php @@ -3,7 +3,7 @@ * Copyright (C) 2004-2012 Laurent Destailleur * Copyright (C) 2005 Eric Seigne * Copyright (C) 2005-2012 Regis Houssin - * Copyright (C) 2010-2012 Juanjo Menent + * Copyright (C) 2010-2013 Juanjo Menent * Copyright (C) 2011 Philippe Grand * Copyright (C) 2012 Marcos García * @@ -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='
'.$langs->trans('ErrorFieldRequired',$langs->transnoentities('Supplier')).'
'; + $action='create'; + $error++; } if (! $error) { - if ($comclientid != '') + $db->begin(); + + // Creation commande + $object->ref_supplier = GETPOST('refsupplier'); + $object->socid = $socid; + $object->note = GETPOST('note'); + $object->note_public = GETPOST('note_public'); + + $id = $object->create($user); + if ($id < 0) + { + $error++; + } + + if ($error) { - $object->updateFromCommandeClient($user, $id, $comclientid); + $langs->load("errors"); + $db->rollback(); + $mesg='
'.$langs->trans($object->error).'
'; + $action='create'; + $_GET['socid']=$_POST['socid']; + } + else + { + $db->commit(); + header("Location: ".$_SERVER['PHP_SELF']."?id=".$id); + exit; } - - $ret=$object->fetch($id); // Reload to get new records - - $db->commit(); - } - else - { - $db->rollback(); } } @@ -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 '
'; + print ''; + print ''; + print ''; + + // Ref + print ''; + + // Third party + print ''; + print ''; + + // Ref supplier + print ''; + print ''; + + print ''; + + print ''; + print ''; + print ''; + + print ''; + print ''; + print ''; + + // 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 "
'.$langs->trans('Ref').''.$langs->trans('Draft').'
'.$langs->trans('Supplier').''; + + if ($socid > 0) + { + print $societe->getNomUrl(1); + print ''; + } + else + { + print $form->select_company((empty($socid)?'':$socid),'socid','s.fournisseur = 1',1); + } + print '
'.$langs->trans('RefSupplier').'
'.$langs->trans('Note').'
'.$langs->trans('NotePublic').'
\n"; + + print '
'; + + print "
\n"; +} +elseif (! empty($object->id)) { $author = new User($db); $author->fetch($object->user_author_id); diff --git a/htdocs/install/mysql/data/llx_00_c_pays.sql b/htdocs/install/mysql/data/llx_00_c_pays.sql index 7799ad1cf70..990aa15aa52 100644 --- a/htdocs/install/mysql/data/llx_00_c_pays.sql +++ b/htdocs/install/mysql/data/llx_00_c_pays.sql @@ -53,14 +53,14 @@ insert into llx_c_pays (rowid,code,libelle) values (18, 'HU', 'Hongrie' ) insert into llx_c_pays (rowid,code,libelle) values (19, 'RU', 'Russia' ); insert into llx_c_pays (rowid,code,libelle) values (20, 'SE', 'Sweden' ); insert into llx_c_pays (rowid,code,libelle) values (21, 'CI', 'Côte d''Ivoire' ); -insert into llx_c_pays (rowid,code,libelle) values (22, 'SN', 'Sénégal' ); +insert into llx_c_pays (rowid,code,libelle) values (22, 'SN', 'Senegal' ); insert into llx_c_pays (rowid,code,libelle) values (23, 'AR', 'Argentine' ); insert into llx_c_pays (rowid,code,libelle) values (24, 'CM', 'Cameroun' ); insert into llx_c_pays (rowid,code,libelle) values (25, 'PT', 'Portugal' ); -insert into llx_c_pays (rowid,code,libelle) values (26, 'SA', 'Arabie Saoudite'); +insert into llx_c_pays (rowid,code,libelle) values (26, 'SA', 'Saudi Arabia' ); insert into llx_c_pays (rowid,code,libelle) values (27, 'MC', 'Monaco' ); insert into llx_c_pays (rowid,code,libelle) values (28, 'AU', 'Australia' ); -insert into llx_c_pays (rowid,code,libelle) values (29, 'SG', 'Singapour' ); +insert into llx_c_pays (rowid,code,libelle) values (29, 'SG', 'Singapour' ); insert into llx_c_pays (rowid,code,libelle) values (30, 'AF', 'Afghanistan' ); insert into llx_c_pays (rowid,code,libelle) values (31, 'AX', 'Iles Aland' ); insert into llx_c_pays (rowid,code,libelle) values (32, 'AL', 'Albanie' ); diff --git a/htdocs/install/mysql/data/llx_c_tva.sql b/htdocs/install/mysql/data/llx_c_tva.sql index 4e301564db8..b5f578f579b 100644 --- a/htdocs/install/mysql/data/llx_c_tva.sql +++ b/htdocs/install/mysql/data/llx_c_tva.sql @@ -183,6 +183,9 @@ insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (18 insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1884,188, '5','0','VAT reduced rate',1); insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1883,188, '0','0','VAT Rate 0', 1); +-- SAUDI ARABIA (id country=26) +INSERT INTO llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) VALUES ( 261, 26, '0', '0', 'VAT Rate 0', 1); + -- SAN SALVADOR (id country=86) INSERT INTO llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) VALUES (861, 86, '13', '0', 'IVA 13', 1); INSERT INTO llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) VALUES (862, 86, '0', '0', 'SIN IVA', 1); diff --git a/htdocs/install/mysql/migration/3.2.0-3.3.0.sql b/htdocs/install/mysql/migration/3.2.0-3.3.0.sql index 7053bd6e4ef..b756659d987 100755 --- a/htdocs/install/mysql/migration/3.2.0-3.3.0.sql +++ b/htdocs/install/mysql/migration/3.2.0-3.3.0.sql @@ -925,3 +925,5 @@ UPDATE llx_c_action_trigger SET code='FICHINTER_VALIDATE' WHERE code='FICHEINTER UPDATE llx_c_departements SET ncc='ALAVA', nom='Álava' WHERE code_departement='01' AND fk_region=419; ALTER TABLE llx_product_fournisseur_price DROP FOREIGN KEY fk_product_fournisseur; + +UPDATE llx_const set name='PRODUIT_MULTI_PRICES' where name='PRODUIT_MUTLI_PRICES'; diff --git a/htdocs/langs/ar_SA/admin.lang b/htdocs/langs/ar_SA/admin.lang index b83575bc21d..1869540d58b 100644 --- a/htdocs/langs/ar_SA/admin.lang +++ b/htdocs/langs/ar_SA/admin.lang @@ -213,7 +213,7 @@ ModuleFamilyProducts=إدارة المنتجات ModuleFamilyHr=إدارة الموارد البشرية ModuleFamilyProjects=مشاريع / العمل التعاوني ModuleFamilyOther=أخرى -ModuleFamilyTechnic=Mutli بين وحدات وأدوات +ModuleFamilyTechnic=Multi بين وحدات وأدوات ModuleFamilyExperimental=نماذج تجريبية ModuleFamilyFinancial=الوحدات المالية (المحاسبة / الخزانة) ModuleFamilyECM=إدارة المحتوى في المؤسسة diff --git a/htdocs/langs/ca_ES/admin.lang b/htdocs/langs/ca_ES/admin.lang index adbce991781..70af2933354 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/da_DK/admin.lang b/htdocs/langs/da_DK/admin.lang index abfb3251cd5..a710c6cfda8 100644 --- a/htdocs/langs/da_DK/admin.lang +++ b/htdocs/langs/da_DK/admin.lang @@ -199,7 +199,7 @@ ModuleFamilyProducts=Produkter Management ModuleFamilyHr=Human Resource Management ModuleFamilyProjects=Projekter / samarbejde ModuleFamilyOther=Anden -ModuleFamilyTechnic=Mutli-moduler værktøjer +ModuleFamilyTechnic=Multi-moduler værktøjer ModuleFamilyExperimental=Eksperimentel moduler ModuleFamilyFinancial=Finansielle Modules (Regnskabsmæssig / Treasury) ModuleFamilyECM=ECM diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 382db000796..4c518583b3e 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -262,7 +262,7 @@ ModuleFamilyProducts=Products Management ModuleFamilyHr=Human Resource Management ModuleFamilyProjects=Projects/Collaborative work ModuleFamilyOther=Other -ModuleFamilyTechnic=Mutli-modules tools +ModuleFamilyTechnic=Multi-modules tools ModuleFamilyExperimental=Experimental modules ModuleFamilyFinancial=Financial Modules (Accounting/Treasury) ModuleFamilyECM=Electronic Content Management (ECM) @@ -1398,4 +1398,4 @@ ProjectsSetup=Project module setup ProjectsModelModule=Project reports document model ##### ECM (GED) ##### ECMSetup = GED Setup -ECMAutoTree = Automatic tree folder and document \ No newline at end of file +ECMAutoTree = Automatic tree folder and document diff --git a/htdocs/langs/es_ES/admin.lang b/htdocs/langs/es_ES/admin.lang index 587ba2d3679..42d01cae8d9 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 diff --git a/htdocs/langs/et_EE/admin.lang b/htdocs/langs/et_EE/admin.lang index 24054238d4f..763bc5b6eac 100644 --- a/htdocs/langs/et_EE/admin.lang +++ b/htdocs/langs/et_EE/admin.lang @@ -259,7 +259,7 @@ ModuleFamilyProducts=Tooted juhtimine ModuleFamilyHr=Human Resource Management ModuleFamilyProjects=Projektid / koostööprojektid töö ModuleFamilyOther=Teine -ModuleFamilyTechnic=Mutli-moodulid tööriistad +ModuleFamilyTechnic=Multi-moodulid tööriistad ModuleFamilyExperimental=Eksperimentaalse moodulid ModuleFamilyFinancial=Financial Modules (Raamatupidamine / Treasury) ModuleFamilyECM=Electronic sisuhaldus (ECM) diff --git a/htdocs/langs/fa_IR/admin.lang b/htdocs/langs/fa_IR/admin.lang index 515b6d2dc04..f3a038532d4 100644 --- a/htdocs/langs/fa_IR/admin.lang +++ b/htdocs/langs/fa_IR/admin.lang @@ -221,7 +221,7 @@ ModuleFamilyProducts= سیسیتم کالاها ModuleFamilyHr= سیستم استخدامی ModuleFamilyProjects= سیستم پروژه ها ModuleFamilyOther= دیگر سیستم ها -ModuleFamilyTechnic=Mutli بين وحدات وأدوات +ModuleFamilyTechnic=Multi بين وحدات وأدوات ModuleFamilyExperimental=نماذج تجريبية ModuleFamilyFinancial=الوحدات المالية (المحاسبة / الخزانة) ModuleFamilyECM=تولید محتوی الکترونیکی diff --git a/htdocs/langs/fi_FI/admin.lang b/htdocs/langs/fi_FI/admin.lang index b06d90b9675..06cd7ef8817 100644 --- a/htdocs/langs/fi_FI/admin.lang +++ b/htdocs/langs/fi_FI/admin.lang @@ -197,7 +197,7 @@ ModuleFamilyProducts=Tuotteet Management ModuleFamilyHr=Human Resource Management ModuleFamilyProjects=Projektit / Yhteistyöhankkeet työn ModuleFamilyOther=Muu -ModuleFamilyTechnic=Mutli-modules työkalut +ModuleFamilyTechnic=Multi-modules työkalut ModuleFamilyExperimental=Kokeellinen modules ModuleFamilyFinancial=Financial Modules (kirjanpidon / Treasury) ModuleFamilyECM=ECM diff --git a/htdocs/langs/he_IL/admin.lang b/htdocs/langs/he_IL/admin.lang index 2d262771b7e..c84af3ec434 100644 --- a/htdocs/langs/he_IL/admin.lang +++ b/htdocs/langs/he_IL/admin.lang @@ -259,7 +259,7 @@ ModuleFamilyProducts=מוצרי ניהול ModuleFamilyHr=ניהול משאבי אנוש ModuleFamilyProjects=פרויקטים / עבודה שיתופית ModuleFamilyOther=אחר -ModuleFamilyTechnic=Mutli מודולים כלים +ModuleFamilyTechnic=Multi מודולים כלים ModuleFamilyExperimental=הניסוי מודולים ModuleFamilyFinancial=מודולים פיננסיים (חשבונאות / משרד האוצר) ModuleFamilyECM=ניהול תוכן אלקטרוני (ECM) diff --git a/htdocs/langs/hu_HU/admin.lang b/htdocs/langs/hu_HU/admin.lang index ba14cfc58a2..0445f9fb8e9 100644 --- a/htdocs/langs/hu_HU/admin.lang +++ b/htdocs/langs/hu_HU/admin.lang @@ -259,7 +259,7 @@ ModuleFamilyProducts=Termékek kezelése ModuleFamilyHr=Az emberi erőforrás menedzsment ModuleFamilyProjects=Projektek / kollaboratív munkát ModuleFamilyOther=Más -ModuleFamilyTechnic=Mutli-modulok eszközök +ModuleFamilyTechnic=Multi-modulok eszközök ModuleFamilyExperimental=Kísérleti modulok ModuleFamilyFinancial=Pénzügyi modulok (Számviteli / Kincstár) ModuleFamilyECM=Elektronikus Content Management (ECM) diff --git a/htdocs/langs/is_IS/admin.lang b/htdocs/langs/is_IS/admin.lang index b6124f64739..3b4af098b57 100644 --- a/htdocs/langs/is_IS/admin.lang +++ b/htdocs/langs/is_IS/admin.lang @@ -234,7 +234,7 @@ ModuleFamilyProducts=Vörur Stjórn ModuleFamilyHr=Mannauðsstjórnun ModuleFamilyProjects=Verkefni / samvinna vinna ModuleFamilyOther=Önnur -ModuleFamilyTechnic=Mutli-einingar verkfæri +ModuleFamilyTechnic=Multi-einingar verkfæri ModuleFamilyExperimental=Experimental mát ModuleFamilyFinancial=Financial einingar (Bókhald / ríkissjóðs) ModuleFamilyECM=ECM diff --git a/htdocs/langs/ja_JP/admin.lang b/htdocs/langs/ja_JP/admin.lang index 9044b1657d5..6422a0c9634 100644 --- a/htdocs/langs/ja_JP/admin.lang +++ b/htdocs/langs/ja_JP/admin.lang @@ -259,7 +259,7 @@ ModuleFamilyProducts=製品の管理 ModuleFamilyHr=人的資源管理 ModuleFamilyProjects=プロジェクト/共同作業 ModuleFamilyOther=その他 -ModuleFamilyTechnic=Mutli-モジュールツール +ModuleFamilyTechnic=Multi-モジュールツール ModuleFamilyExperimental=実験的なモジュール ModuleFamilyFinancial=金融モジュール(会計/財務) ModuleFamilyECM=電子コンテンツ管理(ECM) diff --git a/htdocs/langs/pl_PL/admin.lang b/htdocs/langs/pl_PL/admin.lang index 61697021fea..3e98c2e19c8 100644 --- a/htdocs/langs/pl_PL/admin.lang +++ b/htdocs/langs/pl_PL/admin.lang @@ -200,7 +200,7 @@ ModuleFamilyProducts=Produkty Management ModuleFamilyHr=Zarządzanie zasobami ludzkimi ModuleFamilyProjects=Projekty / współpracy ModuleFamilyOther=Inny -ModuleFamilyTechnic=Mutli-modules narzędzia +ModuleFamilyTechnic=Multi-modules narzędzia ModuleFamilyExperimental=Eksperymentalne modules ModuleFamilyFinancial=Moduły finansowe (Księgowość / Skarbu) ModuleFamilyECM=ECM diff --git a/htdocs/langs/ro_RO/admin.lang b/htdocs/langs/ro_RO/admin.lang index ac210903a1a..907e7c10e7b 100644 --- a/htdocs/langs/ro_RO/admin.lang +++ b/htdocs/langs/ro_RO/admin.lang @@ -198,7 +198,7 @@ ModuleFamilyProducts=Produse de Management ModuleFamilyHr=Managementul resurselor umane ModuleFamilyProjects=Proiecte / Colaborativă munca ModuleFamilyOther=Alt -ModuleFamilyTechnic=Mutli-module de unelte +ModuleFamilyTechnic=Multi-module de unelte ModuleFamilyExperimental=Experimentale module ModuleFamilyFinancial=Module financiar (Contabilitate / Trezoreriei) ModuleFamilyECM=ECM diff --git a/htdocs/langs/ru_RU/admin.lang b/htdocs/langs/ru_RU/admin.lang index 14a0aa39d26..76591925e57 100644 --- a/htdocs/langs/ru_RU/admin.lang +++ b/htdocs/langs/ru_RU/admin.lang @@ -197,7 +197,7 @@ ModuleFamilyProducts=Продукты управления ModuleFamilyHr=Кадровый менеджмент ModuleFamilyProjects=Проекты / Совместная работа ModuleFamilyOther=Другой -ModuleFamilyTechnic=Mutli-модулей инструменты +ModuleFamilyTechnic=Multi-модулей инструменты ModuleFamilyExperimental=Экспериментальный модуль ModuleFamilyFinancial=Финансовые модули (Бухгалтерия / Казначейство) ModuleFamilyECM=ECM diff --git a/htdocs/product/stock/product.php b/htdocs/product/stock/product.php index 81786c2e482..6ac507b2070 100644 --- a/htdocs/product/stock/product.php +++ b/htdocs/product/stock/product.php @@ -539,11 +539,11 @@ if ($resql) print ''.(price2num($obj->pmp)?price(price2num($obj->pmp*$obj->reel,'MT')):'').''; // Ditto : Show PMP from movement or from product // Sell price print ''; - if (empty($conf->global->PRODUIT_MUTLI_PRICES)) print price(price2num($product->price,'MU')); + if (empty($conf->global->PRODUIT_MULTI_PRICES)) print price(price2num($product->price,'MU')); else print $langs->trans("Variable"); print ''; // Ditto : Show PMP from movement or from product print ''; - if (empty($conf->global->PRODUIT_MUTLI_PRICES)) print price(price2num($product->price*$obj->reel,'MT')).''; // Ditto : Show PMP from movement or from product + if (empty($conf->global->PRODUIT_MULTI_PRICES)) print price(price2num($product->price*$obj->reel,'MT')).''; // Ditto : Show PMP from movement or from product else print $langs->trans("Variable"); print ''; ; $total += $obj->reel; @@ -564,11 +564,11 @@ print ''; print price(price2num($totalvalue,'MT')); print ''; print ''; -if (empty($conf->global->PRODUIT_MUTLI_PRICES)) print ($total?price($totalvaluesell/$total):' '); +if (empty($conf->global->PRODUIT_MULTI_PRICES)) print ($total?price($totalvaluesell/$total):' '); else print $langs->trans("Variable"); print ''; print ''; -if (empty($conf->global->PRODUIT_MUTLI_PRICES)) print price(price2num($totalvaluesell,'MT')); +if (empty($conf->global->PRODUIT_MULTI_PRICES)) print price(price2num($totalvaluesell,'MT')); else print $langs->trans("Variable"); print ''; print ""; diff --git a/htdocs/user/home.php b/htdocs/user/home.php index ac18fe56c20..7dd9e44f800 100644 --- a/htdocs/user/home.php +++ b/htdocs/user/home.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2005-2013 Laurent Destailleur * Copyright (C) 2005-2012 Regis Houssin * * This program is free software; you can redistribute it and/or modify @@ -96,7 +96,7 @@ print ''; $max=10; $sql = "SELECT u.rowid, u.lastname, u.firstname, u.admin, u.login, u.fk_societe, u.datec, u.statut, u.entity, u.ldap_sid,"; -$sql.= " s.nom, s.canvas"; +$sql.= " s.nom as name, s.canvas"; $sql.= " FROM ".MAIN_DB_PREFIX."user as u"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON u.fk_societe = s.rowid"; if (! empty($conf->multicompany->enabled) && $conf->entity == 1 && ($conf->multicompany->transverse_mode || ($user->admin && ! $user->entity))) @@ -126,7 +126,7 @@ if ($resql) $var=!$var; print ""; - print ''.img_object($langs->trans("ShowUser"),"user").' '.$obj->firstname.' '.$obj->name.''; + print ''.img_object($langs->trans("ShowUser"),"user").' '.dolGetFirstLastname($obj->firstname,$obj->lastname).''; if (! empty($conf->multicompany->enabled) && $obj->admin && ! $obj->entity) { print img_picto($langs->trans("SuperAdministrator"),'redstar'); @@ -141,7 +141,7 @@ if ($resql) if ($obj->fk_societe) { $companystatic->id=$obj->fk_societe; - $companystatic->nom=$obj->nom; + $companystatic->name=$obj->name; $companystatic->canvas=$obj->canvas; print $companystatic->getNomUrl(1); } diff --git a/htdocs/webservices/server_invoice.php b/htdocs/webservices/server_invoice.php index 1005c6951ec..ef7384a11c7 100755 --- a/htdocs/webservices/server_invoice.php +++ b/htdocs/webservices/server_invoice.php @@ -67,7 +67,7 @@ $server->wsdl->addComplexType( 'sourceapplication' => array('name'=>'sourceapplication','type'=>'xsd:string'), 'login' => array('name'=>'login','type'=>'xsd:string'), 'password' => array('name'=>'password','type'=>'xsd:string'), - 'entity' => array('name'=>'entity','type'=>'xsd:string'), + 'entity' => array('name'=>'entity','type'=>'xsd:string') ) ); // Define WSDL Return object @@ -377,7 +377,10 @@ function getInvoicesForThirdParty($authentication,$idthirdparty) $errorcode='';$errorlabel=''; $error=0; $fuser=check_authentication($authentication,$error,$errorcode,$errorlabel); - // Check parameters + + if ($fuser->societe_id) $socid=$fuser->societe_id; + + // Check parameters if (! $error && empty($idthirdparty)) { $error++; @@ -394,9 +397,9 @@ function getInvoicesForThirdParty($authentication,$idthirdparty) //$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON pt.fk_product = p.rowid'; //$sql.=" WHERE f.fk_soc = s.rowid AND nom = '".$db->escape($idthirdparty)."'"; //$sql.=" WHERE f.fk_soc = s.rowid AND nom = '".$db->escape($idthirdparty)."'"; - $sql.=" WHERE f.fk_soc = ".$db->escape($idthirdparty); - $sql.=" AND f.entity = ".$conf->entity; - + $sql.=" WHERE f.entity = ".$conf->entity; + if ($idthirdparty != 'all' ) $sql.=" AND f.fk_soc = ".$db->escape($idthirdparty); + $resql=$db->query($sql); if ($resql) { @@ -410,6 +413,13 @@ function getInvoicesForThirdParty($authentication,$idthirdparty) $invoice=new Facture($db); $invoice->fetch($obj->facid); + // Sécurité pour utilisateur externe + if( $socid && ( $socid != $order->socid) ) + { + $error++; + $errorcode='PERMISSION_DENIED'; $errorlabel=$order->socid.' User does not have permission for this request'; + } + // Define lines of invoice $linesresp=array(); foreach($invoice->lines as $line) diff --git a/htdocs/webservices/server_order.php b/htdocs/webservices/server_order.php index 33993771102..6ba0fa2cd5e 100644 --- a/htdocs/webservices/server_order.php +++ b/htdocs/webservices/server_order.php @@ -35,6 +35,8 @@ require_once(DOL_DOCUMENT_ROOT."/commande/class/commande.class.php"); dol_syslog("Call Dolibarr webservices interfaces"); +$langs->load("main"); + // Enable and test if module web services is enabled if (empty($conf->global->MAIN_MODULE_WEBSERVICES)) { @@ -54,7 +56,7 @@ $server->configureWSDL('WebServicesDolibarrOrder',$ns); $server->wsdl->schemaTargetNamespace=$ns; -// Define WSDL content +// Define WSDL Authentication object $server->wsdl->addComplexType( 'authentication', 'complexType', @@ -69,7 +71,20 @@ $server->wsdl->addComplexType( 'entity' => array('name'=>'entity','type'=>'xsd:string') ) ); +// Define WSDL Return object +$server->wsdl->addComplexType( + 'result', + 'complexType', + 'struct', + 'all', + '', + array( + 'result_code' => array('name'=>'result_code','type'=>'xsd:string'), + 'result_label' => array('name'=>'result_label','type'=>'xsd:string'), + ) +); +// Define other specific objects $server->wsdl->addComplexType( 'line', 'complexType', @@ -78,34 +93,34 @@ $server->wsdl->addComplexType( '', array( 'id' => array('name'=>'id','type'=>'xsd:string'), + 'type' => array('name'=>'type','type'=>'xsd:int'), 'fk_commande' => array('name'=>'fk_commande','type'=>'xsd:int'), 'fk_parent_line' => array('name'=>'fk_parent_line','type'=>'xsd:int'), 'desc' => array('name'=>'desc','type'=>'xsd:string'), - 'qty' => array('name'=>'qty','type'=>'xsd:int'), + 'qty' => array('name'=>'qty','type'=>'xsd:double'), 'price' => array('name'=>'price','type'=>'xsd:double'), - 'subprice' => array('name'=>'subprice','type'=>'xsd:double'), - 'tva_tx' => array('name'=>'tva_tx','type'=>'xsd:double'), + 'unitprice' => array('name'=>'unitprice','type'=>'xsd:double'), + 'vat_rate' => array('name'=>'vat_rate','type'=>'xsd:double'), 'remise' => array('name'=>'remise','type'=>'xsd:double'), 'remise_percent' => array('name'=>'remise_percent','type'=>'xsd:double'), - 'fk_product' => array('name'=>'fk_product','type'=>'xsd:int'), - 'product_type' => array('name'=>'product_type','type'=>'xsd:int'), - 'total_ht' => array('name'=>'total_ht','type'=>'xsd:double'), - 'total_tva' => array('name'=>'totaltva','type'=>'xsd:double'), - 'total_ttc' => array('name'=>'total_ttc','type'=>'xsd:double'), + 'total_net' => array('name'=>'total_net','type'=>'xsd:double'), + 'total_vat' => array('name'=>'total_vat','type'=>'xsd:double'), + 'total' => array('name'=>'total','type'=>'xsd:double'), - 'date_start' => array('name'=>'date_start','type'=>'xsd:string'), - 'date_end' => array('name'=>'date_end','type'=>'xsd:string'), + 'date_start' => array('name'=>'date_start','type'=>'xsd:date'), + 'date_end' => array('name'=>'date_end','type'=>'xsd:date'), // From product + 'product_id' => array('name'=>'product_id','type'=>'xsd:int'), 'product_ref' => array('name'=>'product_ref','type'=>'xsd:string'), 'product_label' => array('name'=>'product_label','type'=>'xsd:string'), 'product_desc' => array('name'=>'product_desc','type'=>'xsd:string') ) ); -$server->wsdl->addComplexType( +/*$server->wsdl->addComplexType( 'LinesArray', 'complexType', 'array', @@ -119,8 +134,7 @@ $server->wsdl->addComplexType( ) ), 'tns:line' -); - +);*/ $server->wsdl->addComplexType( 'LinesArray2', 'complexType', @@ -149,23 +163,25 @@ $server->wsdl->addComplexType( 'ref_client' => array('name'=>'ref_client','type'=>'xsd:string'), 'ref_ext' => array('name'=>'ref_ext','type'=>'xsd:string'), 'ref_int' => array('name'=>'ref_int','type'=>'xsd:string'), - 'socid' => array('name'=>'socid','type'=>'xsd:int'), - 'statut' => array('name'=>'statut','type'=>'xsd:int'), + 'thirdparty_id' => array('name'=>'thirdparty_id','type'=>'xsd:int'), + 'status' => array('name'=>'status','type'=>'xsd:int'), 'facturee' => array('name'=>'facturee','type'=>'xsd:string'), - 'total_ht' => array('name'=>'total_ht','type'=>'xsd:double'), - 'total_tva' => array('name'=>'total_tva','type'=>'xsd:double'), + 'total_net' => array('name'=>'total_net','type'=>'xsd:double'), + 'total_vat' => array('name'=>'total_vat','type'=>'xsd:double'), 'total_localtax1' => array('name'=>'total_localtax1','type'=>'xsd:double'), 'total_localtax2' => array('name'=>'total_localtax2','type'=>'xsd:double'), - 'total_ttc' => array('name'=>'total_ttc','type'=>'xsd:double'), + 'total' => array('name'=>'total','type'=>'xsd:double'), 'date' => array('name'=>'date','type'=>'xsd:date'), - 'date_commande' => array('name'=>'date_commande','type'=>'xsd:date'), + 'date_creation' => array('name'=>'date_creation','type'=>'xsd:dateTime'), + 'date_validation' => array('name'=>'date_validation','type'=>'xsd:dateTime'), + 'date_modification' => array('name'=>'date_modification','type'=>'xsd:dateTime'), 'remise' => array('name'=>'remise','type'=>'xsd:string'), 'remise_percent' => array('name'=>'remise_percent','type'=>'xsd:string'), 'remise_absolue' => array('name'=>'remise_absolue','type'=>'xsd:string'), 'source' => array('name'=>'source','type'=>'xsd:string'), 'note' => array('name'=>'note','type'=>'xsd:string'), 'note_public' => array('name'=>'note_public','type'=>'xsd:string'), - 'fk_project' => array('name'=>'fk_project','type'=>'xsd:string'), + 'project_id' => array('name'=>'project_id','type'=>'xsd:string'), 'mode_reglement_id' => array('name'=>'mode_reglement_id','type'=>'xsd:string'), 'mode_reglement_code' => array('name'=>'mode_reglement_code','type'=>'xsd:string'), @@ -179,10 +195,10 @@ $server->wsdl->addComplexType( 'fk_delivery_address' => array('name'=>'fk_delivery_address','type'=>'xsd:int'), 'demand_reason_id' => array('name'=>'demand_reason_id','type'=>'xsd:string'), - 'lines' => array('name'=>'lines','type'=>'tns:LinesArray') + 'lines' => array('name'=>'lines','type'=>'tns:LinesArray2') ) ); - +/* $server->wsdl->addComplexType( 'OrdersArray', 'complexType', @@ -197,8 +213,7 @@ $server->wsdl->addComplexType( ) ), 'tns:order' -); - +);*/ $server->wsdl->addComplexType( 'OrdersArray2', 'complexType', @@ -207,32 +222,14 @@ $server->wsdl->addComplexType( '', array( 'order' => array( - 'name' => 'invoice', - 'type' => 'tns:invoice', + 'name' => 'order', + 'type' => 'tns:order', 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ) ); -$server->wsdl->addComplexType( - 'result', - 'complexType', - 'struct', - 'all', - '', - array( - 'result_code' => array( - 'name'=>'result_code', - 'type'=>'xsd:string' - ), - 'result_label' => array( - 'name'=>'result_label', - 'type'=>'xsd:string' - ), - ) -); - // 5 styles: RPC/encoded, RPC/literal, Document/encoded (not WS-I compliant), Document/literal, Document/literal wrapped @@ -268,7 +265,7 @@ $server->register( $server->register( 'createOrder', array('authentication'=>'tns:authentication','order'=>'tns:order'), // Entry values - array('result'=>'tns:result','id'=>'xsd:string'), // Exit values + array('result'=>'tns:result','id'=>'xsd:string','ref'=>'xsd:string'), // Exit values $ns, $ns.'#createOrder', $styledoc, @@ -355,14 +352,14 @@ function getOrder($authentication,$id='',$ref='',$ref_ext='') 'qty'=>$line->qty, 'price'=>$line->price, 'subprice'=>$line->subprice, - 'tva_tx'=>$line->tva_tx, + 'vat_rate'=>$line->tva_tx, 'remise'=>$line->remise, 'remise_percent'=>$line->remise_percent, 'fk_product'=>$line->fk_product, 'product_type'=>$line->product_type, - 'total_ht'=>$line->total_ht, - 'total_tva'=>$line->total_tva, - 'total_ttc'=>$line->total_ttc, + 'total_net'=>$line->total_ht, + 'total_vat'=>$line->total_tva, + 'total'=>$line->total_ttc, 'date_start'=>$line->date_start, 'date_end'=>$line->date_end, 'product_ref'=>$line->product_ref, @@ -381,19 +378,21 @@ function getOrder($authentication,$id='',$ref='',$ref_ext='') 'ref_client' => $order->ref_client, 'ref_ext' => $order->ref_ext, 'ref_int' => $order->ref_int, - 'socid' => $order->socid, - 'statut' => $order->statut, + 'thirdparty_id' => $order->socid, + 'status' => $order->statut, - 'total_ht' => $order->total_ht, - 'total_tva' => $order->total_tva, + 'total_net' => $order->total_ht, + 'total_vat' => $order->total_tva, 'total_localtax1' => $order->total_localtax1, 'total_localtax2' => $order->total_localtax2, - 'total_ttc' => $order->total_ttc, - 'fk_project' => $order->fk_project, - - 'date' => $order->date?dol_print_date($order->date,'dayrfc'):'', - 'date_commande' => $order->date_commande?dol_print_date($order->date_commande,'dayrfc'):'', + 'total' => $order->total_ttc, + 'project_id' => $order->fk_project, + 'date' => $order->date_commande?dol_print_date($order->date_commande,'dayrfc'):'', + 'date_creation' => $invoice->date_creation?dol_print_date($invoice->date_creation,'dayhourrfc'):'', + 'date_validation' => $invoice->date_validation?dol_print_date($invoice->date_creation,'dayhourrfc'):'', + 'date_modification' => $invoice->datem?dol_print_date($invoice->datem,'dayhourrfc'):'', + 'remise' => $order->remise, 'remise_percent' => $order->remise_percent, 'remise_absolue' => $order->remise_absolue, @@ -403,13 +402,12 @@ function getOrder($authentication,$id='',$ref='',$ref_ext='') 'note' => $order->note, 'note_public' => $order->note_public, 'cond_reglement_id' => $order->cond_reglement_id, - 'cond_reglement' => $order->cond_reglement, - 'cond_reglement_doc' => $order->cond_reglement_doc, 'cond_reglement_code' => $order->cond_reglement_code, + 'cond_reglement' => $order->cond_reglement, 'mode_reglement_id' => $order->mode_reglement_id, - 'mode_reglement' => $order->mode_reglement, 'mode_reglement_code' => $order->mode_reglement_code, - + 'mode_reglement' => $order->mode_reglement, + 'date_livraison' => $order->date_livraison, 'fk_delivery_address' => $order->fk_delivery_address, @@ -466,7 +464,7 @@ function getOrdersForThirdParty($authentication,$idthirdparty) if ($fuser->societe_id) $socid=$fuser->societe_id; // Check parameters - if (! $error && !$idthirdparty) + if (! $error && empty($idthirdparty)) { $error++; $errorcode='BAD_PARAMETERS'; $errorlabel='Parameter id is not provided'; @@ -499,7 +497,7 @@ function getOrdersForThirdParty($authentication,$idthirdparty) if( $socid && ( $socid != $order->socid) ) { $error++; - $errorcode='PERMISSION_DENIED'; $errorlabel=$order->socid.'User does not have permission for this request'; + $errorcode='PERMISSION_DENIED'; $errorlabel=$order->socid.' User does not have permission for this request'; } if(!$error) @@ -511,6 +509,7 @@ function getOrdersForThirdParty($authentication,$idthirdparty) { $linesresp[]=array( 'id'=>$line->rowid, + 'type'=>$line->product_type, 'fk_commande'=>$line->fk_commande, 'fk_parent_line'=>$line->fk_parent_line, 'desc'=>$line->desc, @@ -520,13 +519,12 @@ function getOrdersForThirdParty($authentication,$idthirdparty) 'tva_tx'=>$line->tva_tx, 'remise'=>$line->remise, 'remise_percent'=>$line->remise_percent, - 'fk_product'=>$line->fk_product, - 'product_type'=>$line->product_type, - 'total_ht'=>$line->total_ht, - 'total_tva'=>$line->total_tva, - 'total_ttc'=>$line->total_ttc, + 'total_net'=>$line->total_ht, + 'total_vat'=>$line->total_tva, + 'total'=>$line->total_ttc, 'date_start'=>$line->date_start, 'date_end'=>$line->date_end, + 'product_id'=>$line->fk_product, 'product_ref'=>$line->product_ref, 'product_label'=>$line->product_label, 'product_desc'=>$line->product_desc @@ -541,17 +539,16 @@ function getOrdersForThirdParty($authentication,$idthirdparty) 'ref_ext' => $order->ref_ext, 'ref_int' => $order->ref_int, 'socid' => $order->socid, - 'statut' => $order->statut, + 'status' => $order->statut, - 'total_ht' => $order->total_ht, - 'total_tva' => $order->total_tva, + 'total_net' => $order->total_ht, + 'total_vat' => $order->total_tva, 'total_localtax1' => $order->total_localtax1, 'total_localtax2' => $order->total_localtax2, - 'total_ttc' => $order->total_ttc, - 'fk_project' => $order->fk_project, + 'total' => $order->total_ttc, + 'project_id' => $order->fk_project, - 'date' => $order->date?dol_print_date($order->date,'dayrfc'):'', - 'date_commande' => $order->date_commande?dol_print_date($order->date_commande,'dayrfc'):'', + 'date' => $order->date_commande?dol_print_date($order->date_commande,'dayrfc'):'', 'remise' => $order->remise, 'remise_percent' => $order->remise_percent, @@ -570,7 +567,6 @@ function getOrdersForThirdParty($authentication,$idthirdparty) 'mode_reglement_code' => $order->mode_reglement_code, 'date_livraison' => $order->date_livraison, - 'fk_delivery_address' => $order->fk_delivery_address, 'demand_reason_id' => $order->demand_reason_id, 'demand_reason_code' => $order->demand_reason_code, @@ -618,11 +614,12 @@ function createOrder($authentication,$order) dol_syslog("Function: createOrder login=".$authentication['login']." socid :".$order['socid']); + if ($authentication['entity']) $conf->entity=$authentication['entity']; + // Init and check authentication $objectresp=array(); $errorcode='';$errorlabel=''; $error=0; - if ($authentication['entity']) $conf->entity=$authentication['entity']; $fuser=check_authentication($authentication,$error,$errorcode,$errorlabel); // Check parameters @@ -631,19 +628,19 @@ function createOrder($authentication,$order) if (! $error) { $newobject=new Commande($db); - $newobject->socid=$order['socid']; + $newobject->socid=$order['thirdparty_id']; $newobject->type=$order['type']; $newobject->ref_ext=$order['ref_ext']; - $newobject->date=$order['date']; - $newobject->date_lim_reglement=$order['date_due']; + $newobject->date=dol_stringtotime($order['date'],'dayrfc'); + $newobject->date_lim_reglement=dol_stringtotime($order['date_due'],'dayrfc'); $newobject->note=$order['note']; $newobject->note_public=$order['note_public']; - $newobject->statut=$order['statut']; + $newobject->statut=$order['status']; $newobject->facturee=$order['facturee']; $newobject->fk_project=$order['project_id']; $newobject->cond_reglement_id=$order['cond_reglement_id']; $newobject->demand_reason_id=$order['demand_reason_id']; - $newobject->date_commande=$now; + $newobject->date_creation=$now; // Trick because nusoap does not store data with same structure if there is one or several lines $arrayoflines=array(); @@ -670,17 +667,26 @@ function createOrder($authentication,$order) $db->begin(); - $object_id=$newobject->create($fuser,0,0); - if ($object_id < 0) + $result=$newobject->create($fuser,0,0); + if ($result < 0) { $error++; } + if ($newobject->statut == 1) // We want order validated + { + $result=$newobject->validate($fuser); + if ($result < 0) + { + $error++; + } + } + if (! $error) { $db->commit(); - $objectresp=array('result'=>array('result_code'=>'OK', 'result_label'=>''),'id'=>$object_id); + $objectresp=array('result'=>array('result_code'=>'OK', 'result_label'=>''),'id'=>$newobject->id,'ref'=>$newobject->ref); } else { @@ -689,6 +695,7 @@ function createOrder($authentication,$order) $errorcode='KO'; $errorlabel=$newobject->error; } + } if ($error) @@ -784,6 +791,6 @@ function validOrder($authentication,$id='') // Return the results. -$server->service($HTTP_RAW_POST_DATA); +$server->service((isset($HTTP_RAW_POST_DATA)?$HTTP_RAW_POST_DATA:'')); ?> diff --git a/htdocs/webservices/server_user.php b/htdocs/webservices/server_user.php index c74ea28af51..12840f7fd04 100644 --- a/htdocs/webservices/server_user.php +++ b/htdocs/webservices/server_user.php @@ -111,7 +111,7 @@ $server->wsdl->addComplexType( 'datec' => array('name'=>'datec','type'=>'xsd:dateTime'), 'datem' => array('name'=>'datem','type'=>'xsd:dateTime'), 'fk_thirdparty' => array('name'=>'fk_thirdparty','type'=>'xsd:string'), - 'fk_socpeople' => array('name'=>'fk_socpeople','type'=>'xsd:string'), + 'fk_contact' => array('name'=>'fk_contact','type'=>'xsd:string'), 'fk_member' => array('name'=>'fk_member','type'=>'xsd:string'), 'datelastlogin' => array('name'=>'datelastlogin','type'=>'xsd:dateTime'), 'datepreviouslogin' => array('name'=>'datepreviouslogin','type'=>'xsd:dateTime'), @@ -132,7 +132,7 @@ $server->wsdl->addComplexType( 'all', '', array( - 'nom' => array('name'=>'nom','type'=>'xsd:string'), + 'name' => array('name'=>'name','type'=>'xsd:string'), 'id' => array('name'=>'id','type'=>'xsd:string'), 'datec' => array('name'=>'datec','type'=>'xsd:string'), 'nb' => array('name'=>'nb','type'=>'xsd:string') @@ -264,26 +264,26 @@ $server->register( ); $server->register( - 'CreateUserFromThirdparty', + 'createUserFromThirdparty', // Entry values array('authentication'=>'tns:authentication','thirdpartywithuser'=>'tns:thirdpartywithuser'), // Exit values array('result'=>'tns:result','id'=>'xsd:string'), $ns, - $ns.'#CreateUserFromThirdparty', + $ns.'#createUserFromThirdparty', $styledoc, $styleuse, 'WS to create an external user with thirdparty and contact' ); $server->register( - 'SetUserPassword', + 'setUserPassword', // Entry values array('authentication'=>'tns:authentication','shortuser'=>'tns:shortuser'), // Exit values array('result'=>'tns:result','id'=>'xsd:string'), $ns, - $ns.'#SetUserPassword', + $ns.'#setUserPassword', $styledoc, $styleuse, 'WS to change password of an user' @@ -338,36 +338,36 @@ function getUser($authentication,$id,$ref='',$ref_ext='') $objectresp = array( 'result'=>array('result_code'=>'OK', 'result_label'=>''), 'user'=>array( -'id' => $user->id, -'lastname' => $user->lastname, -'firstname' => $user->firstname, -'note' => $user->note, -'email' => $user->email, -'signature' => $user->signature, -'office_phone' => $user->office_phone, -'office_fax' => $user->office_fax, -'user_mobile' => $user->user_mobile, -'admin' => $user->admin, -'login' => $user->login, -'entity' => $user->entity, -'pass_indatabase' => $user->pass_indatabase, -'pass_indatabase_crypted' => $user->pass_indatabase_crypted, -'datec' => dol_print_date($user->datec,'dayhourrfc'), -'datem' => dol_print_date($user->datem,'dayhourrfc'), -'fk_thirdparty' => $user->societe_id, -'fk_socpeople' => $user->contact_id, -'fk_member' => $user->fk_member, -'webcal_login' => $user->webcal_login, -'phenix_login' => $user->phenix_login, -'phenix_pass' => $user->phenix_pass, -'phenix_pass_crypted' => $user->phenix_pass_crypted, -'datelastlogin' => dol_print_date($user->datelastlogin,'dayhourrfc'), -'datepreviouslogin' => dol_print_date($user->datepreviouslogin,'dayhourrfc'), -'statut' => $user->statut, -'photo' => $user->photo, -'lang' => $user->lang, -//'rights' => $user->rights, -'canvas' => $user->canvas + 'id' => $user->id, + 'lastname' => $user->lastname, + 'firstname' => $user->firstname, + 'note' => $user->note, + 'email' => $user->email, + 'signature' => $user->signature, + 'office_phone' => $user->office_phone, + 'office_fax' => $user->office_fax, + 'user_mobile' => $user->user_mobile, + 'admin' => $user->admin, + 'login' => $user->login, + 'entity' => $user->entity, + 'pass_indatabase' => $user->pass_indatabase, + 'pass_indatabase_crypted' => $user->pass_indatabase_crypted, + 'datec' => dol_print_date($user->datec,'dayhourrfc'), + 'datem' => dol_print_date($user->datem,'dayhourrfc'), + 'fk_thirdparty' => $user->societe_id, + 'fk_contact' => $user->contact_id, + 'fk_member' => $user->fk_member, + 'webcal_login' => $user->webcal_login, + 'phenix_login' => $user->phenix_login, + 'phenix_pass' => $user->phenix_pass, + 'phenix_pass_crypted' => $user->phenix_pass_crypted, + 'datelastlogin' => dol_print_date($user->datelastlogin,'dayhourrfc'), + 'datepreviouslogin' => dol_print_date($user->datepreviouslogin,'dayhourrfc'), + 'statut' => $user->statut, + 'photo' => $user->photo, + 'lang' => $user->lang, + //'rights' => $user->rights, + 'canvas' => $user->canvas ) ); } @@ -418,7 +418,7 @@ function getListOfGroups($authentication) if (! $error) { - $sql = "SELECT g.rowid, g.nom, g.entity, g.datec, COUNT(DISTINCT ugu.fk_user) as nb"; + $sql = "SELECT g.rowid, g.nom as name, g.entity, g.datec, COUNT(DISTINCT ugu.fk_user) as nb"; $sql.= " FROM ".MAIN_DB_PREFIX."usergroup as g"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."usergroup_user as ugu ON ugu.fk_usergroup = g.rowid"; if (! empty($conf->multicompany->enabled) && $conf->entity == 1 && ($conf->multicompany->transverse_mode || ($user->admin && ! $user->entity))) @@ -439,7 +439,7 @@ function getListOfGroups($authentication) while ($i < $num) { $obj=$db->fetch_object($resql); - $arraygroups[]=array('id'=>$obj->rowid,'nom'=>$obj->nom,'datec'=>$obj->datec,'nb'=>$obj->nb); + $arraygroups[]=array('id'=>$obj->rowid,'name'=>$obj->name,'datec'=>$obj->datec,'nb'=>$obj->nb); $i++; } } @@ -477,11 +477,11 @@ function getListOfGroups($authentication) * @param array $thirdpartywithuser Datas * @return mixed */ -function CreateUserFromThirdparty($authentication,$thirdpartywithuser) +function createUserFromThirdparty($authentication,$thirdpartywithuser) { global $db,$conf,$langs; - dol_syslog("Function: CreateUserFromThirdparty login=".$authentication['login']." id=".$id." ref=".$ref." ref_ext=".$ref_ext); + dol_syslog("Function: createUserFromThirdparty login=".$authentication['login']." id=".$id." ref=".$ref." ref_ext=".$ref_ext); if ($authentication['entity']) $conf->entity=$authentication['entity']; @@ -518,7 +518,7 @@ function CreateUserFromThirdparty($authentication,$thirdpartywithuser) $resql = $db->query($sql); if ($resql) { - // If a company or socpeopel is found with the same email we return an error + // If a company or contact is found with the same email we return an error $row = $db->fetch_object($resql); if ($row) { @@ -665,11 +665,11 @@ function CreateUserFromThirdparty($authentication,$thirdpartywithuser) * @param array $shortuser Array of login/password info * @return mixed */ -function SetUserPassword($authentication,$shortuser) { +function setUserPassword($authentication,$shortuser) { global $db,$conf,$langs; - dol_syslog("Function: SetUserPassword login=".$authentication['login']." id=".$id." ref=".$ref." ref_ext=".$ref_ext); + dol_syslog("Function: setUserPassword login=".$authentication['login']." id=".$id." ref=".$ref." ref_ext=".$ref_ext); if ($authentication['entity']) $conf->entity=$authentication['entity'];