From 9c7647a7aeb8778faa5361dbd97cc765476b03c8 Mon Sep 17 00:00:00 2001 From: astebert Date: Tue, 12 Aug 2014 11:45:11 +0200 Subject: [PATCH 01/34] Update bills.lang Ligne 252 : Changement grammatical - de "Paiements issue de l'acompte" - en "Paiement issu de l'acompte" --- htdocs/langs/fr_FR/bills.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/langs/fr_FR/bills.lang b/htdocs/langs/fr_FR/bills.lang index debbe4f4d33..9e9980f9091 100644 --- a/htdocs/langs/fr_FR/bills.lang +++ b/htdocs/langs/fr_FR/bills.lang @@ -249,7 +249,7 @@ AddCreditNote=Créer facture avoir Deposit=Acompte Deposits=Acomptes DiscountFromCreditNote=Remise issue de l'avoir %s -DiscountFromDeposit=Paiements issue de l'acompte %s +DiscountFromDeposit=Paiement issu de l'acompte %s AbsoluteDiscountUse=Ce type de crédit ne peut s'utiliser que sur une facture non validée CreditNoteDepositUse=La facture doit être validée pour pouvoir utiliser ce type de crédit NewGlobalDiscount=Nouvelle ligne de déduction From 104592b349bfe241907266a51361d48413b62f72 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Sun, 12 Oct 2014 19:08:34 +0200 Subject: [PATCH 02/34] Fix: wrong function name --- htdocs/core/class/translate.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/class/translate.class.php b/htdocs/core/class/translate.class.php index 7a855eb9325..394dd4fad82 100644 --- a/htdocs/core/class/translate.class.php +++ b/htdocs/core/class/translate.class.php @@ -703,7 +703,7 @@ class Translate */ function getCurrencyAmount($currency_code, $amount) { - $symbol=$this->getCurrencSymbol($currency_code); + $symbol=$this->getCurrencySymbol($currency_code); if (in_array($currency_code, array('USD'))) return $symbol.$amount; else return $amount.$symbol; From 756b1d31ad24a7908a875e180ebc7a759ef31311 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 16 Oct 2014 01:01:30 +0200 Subject: [PATCH 03/34] Add function dolEscapeXML --- htdocs/core/lib/functions.lib.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index b5bac3b0ab0..c7d1546e976 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -427,6 +427,18 @@ function dol_string_nospecial($str,$newstr='_',$badchars='') return str_replace($forbidden_chars_to_replace,$newstr,str_replace($forbidden_chars_to_remove,"",$str)); } + +/** + * Encode string for xml usage + * + * @param string $string String to encode + * @return string String encoded + */ +function dolEscapeXML($string) +{ + return strtr($string, array('\''=>''','"'=>'"','&'=>'&','<'=>'<','>'=>'>')); +} + /** * Returns text escaped for inclusion into javascript code * @@ -3468,6 +3480,7 @@ function dol_nl2br($stringtoencode,$nl2brmode=0,$forxml=false) } } + /** * This function is called to encode a string into a HTML string but differs from htmlentities because * all entities but &,<,> are converted. This permits to encode special chars to entities with no double From a94f7dc3ad0ca782941c5c9129828e2c32f9524d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 16 Oct 2014 01:21:33 +0200 Subject: [PATCH 04/34] Revert "Add function dolEscapeXML" This reverts commit 756b1d31ad24a7908a875e180ebc7a759ef31311. --- htdocs/core/lib/functions.lib.php | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index c7d1546e976..b5bac3b0ab0 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -427,18 +427,6 @@ function dol_string_nospecial($str,$newstr='_',$badchars='') return str_replace($forbidden_chars_to_replace,$newstr,str_replace($forbidden_chars_to_remove,"",$str)); } - -/** - * Encode string for xml usage - * - * @param string $string String to encode - * @return string String encoded - */ -function dolEscapeXML($string) -{ - return strtr($string, array('\''=>''','"'=>'"','&'=>'&','<'=>'<','>'=>'>')); -} - /** * Returns text escaped for inclusion into javascript code * @@ -3480,7 +3468,6 @@ function dol_nl2br($stringtoencode,$nl2brmode=0,$forxml=false) } } - /** * This function is called to encode a string into a HTML string but differs from htmlentities because * all entities but &,<,> are converted. This permits to encode special chars to entities with no double From 29db45c76330900046cb456de645357f17f6a107 Mon Sep 17 00:00:00 2001 From: jfefe Date: Thu, 23 Oct 2014 01:15:05 +0200 Subject: [PATCH 05/34] Avoid missing class error for fetch_thirdparty method --- htdocs/core/class/commonobject.class.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 6439e3e003e..e363eda6e4a 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -575,6 +575,9 @@ abstract class CommonObject global $conf; if (empty($this->socid)) return 0; + + if (!class_exists('Societe')) + require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; $thirdparty = new Societe($this->db); $result=$thirdparty->fetch($this->socid); From 1405c03f7d78dc6b65d8c1880dcfde2900cf0d6d Mon Sep 17 00:00:00 2001 From: aspangaro Date: Sun, 26 Oct 2014 06:48:08 +0100 Subject: [PATCH 06/34] Fix: Civility & birthdate wasn't save into adherent module --- ChangeLog | 11 ++++++----- htdocs/adherents/class/adherent.class.php | 13 +++++++------ htdocs/adherents/fiche.php | 5 +++-- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index a1ec979f287..cc1c3c0de2e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,17 +4,18 @@ English Dolibarr ChangeLog ***** ChangeLog for 3.6.2 compared to 3.6.1 ***** -- Fix: fix ErrorBadValueForParamNotAString error message in price customer multiprice -- Fix: bug 1588 : relative discount +- Fix: fix ErrorBadValueForParamNotAString error message in price customer multiprice. +- Fix: bug 1588 : relative discount. - Fix: label of input method not tranlated. - Fix: box of customer and propsects were not correctly disabled. -- Fix: right and error management #1961 -- Fix: Fix Error when trying to clone an Order #1943 +- Fix: right and error management #1961. +- Fix: Fix Error when trying to clone an Order #1943. +- Fix: Civility & birthdate wasn't save into adherent module. ***** ChangeLog for 3.6.1 compared to 3.6.* ***** For users: - Fix: Can upload files on services. -- Fix: sql errors on updat fichinter. +- Fix: sql errors on update fichinter. - Fix: debian script syntax error. - Fix: error "menu param is not inside list" into pos module. - Fix: Salary payments are not reflected on the reporting sheets. diff --git a/htdocs/adherents/class/adherent.class.php b/htdocs/adherents/class/adherent.class.php index 04056e0bbb0..0fa60a0d421 100644 --- a/htdocs/adherents/class/adherent.class.php +++ b/htdocs/adherents/class/adherent.class.php @@ -5,6 +5,7 @@ * Copyright (C) 2004 Sebastien Di Cintio * Copyright (C) 2004 Benoit Mortier * Copyright (C) 2009-2012 Regis Houssin + * Copyright (C) 2014 Alexandre Spangaro * * 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 @@ -124,7 +125,7 @@ class Adherent extends CommonObject /** - * Fonction envoyant un email a l'adherent avec le texte fourni en parametre. + * Function sending an email has the adherent with the text supplied in parameter. * * @param string $text Content of message (not html entities encoded) * @param string $subject Subject of message @@ -247,9 +248,9 @@ class Adherent extends CommonObject /** - * Renvoie le libelle traduit de la nature d'un adherent (physique ou morale) + * Return translated label by the nature of a adherent (physical or moral) * - * @param string $morphy Nature physique ou morale de l'adherent + * @param string $morphy Nature of the adherent (physical or moral) * @return string Label */ function getmorphylib($morphy='') @@ -348,12 +349,12 @@ class Adherent extends CommonObject if (! $notrigger) { - // Appel des triggers + // Call triggers include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; $interface=new Interfaces($this->db); $result=$interface->run_triggers('MEMBER_CREATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } - // Fin appel triggers + // End call triggers } if (count($this->errors)) @@ -1101,7 +1102,7 @@ class Adherent extends CommonObject $this->ref = $obj->rowid; $this->id = $obj->rowid; $this->ref_ext = $obj->ref_ext; - $this->civility_id = $obj->civility; + $this->civility_id = $obj->civility_id; $this->firstname = $obj->firstname; $this->lastname = $obj->lastname; $this->login = $obj->login; diff --git a/htdocs/adherents/fiche.php b/htdocs/adherents/fiche.php index cd398c75859..ef04edeeb53 100644 --- a/htdocs/adherents/fiche.php +++ b/htdocs/adherents/fiche.php @@ -5,6 +5,7 @@ * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2012 Marcos García * Copyright (C) 2012-2013 Philippe Grand + * Copyright (C) 2014 Alexandre Spangaro * * 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 @@ -707,7 +708,7 @@ else { /* ************************************************************************** */ /* */ - /* Fiche creation */ + /* Creation card */ /* */ /* ************************************************************************** */ $object->canvas=$canvas; @@ -870,7 +871,7 @@ else // Birthday print "".$langs->trans("Birthday")."\n"; - $form->select_date(($object->naiss ? $object->naiss : -1),'naiss','','',1,'formsoc'); + $form->select_date(($object->birth ? $object->birth : -1),'birth','','',1,'formsoc'); print "\n"; // Profil public From d846dd24316acf8f9fc6fce9680b700a013a7de5 Mon Sep 17 00:00:00 2001 From: Florian HENRY Date: Mon, 27 Oct 2014 19:38:27 +0100 Subject: [PATCH 07/34] Fix extrafield from list feature where filter is provided --- htdocs/core/class/extrafields.class.php | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index c9e5d937a18..16583c0703c 100644 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -743,15 +743,17 @@ class ExtraFields if (strpos($InfoFieldList[4], 'extra')!==false) { $sql.= ' as main, '.MAIN_DB_PREFIX .$InfoFieldList[0].'_extrafields as extra'; - $sqlwhere.= ' AND extra.fk_object=main.'.$InfoFieldList[2]. ' AND '.$InfoFieldList[4]; + $sqlwhere.= ' WHERE extra.fk_object=main.'.$InfoFieldList[2]. ' AND '.$InfoFieldList[4]; } else { - $sqlwhere.= ' AND '.$InfoFieldList[4]; + $sqlwhere.= ' WHERE '.$InfoFieldList[4]; } + }else { + $sqlwhere.= ' WHERE 1'; } if (in_array($InfoFieldList[0],array('tablewithentity'))) $sqlwhere.= ' AND entity = '.$conf->entity; // Some tables may have field, some other not. For the moment we disable it. - $sql.=preg_replace('/^ AND /','',$sqlwhere); + //$sql.=preg_replace('/^ AND /','',$sqlwhere); //print $sql; dol_syslog(get_class($this).'::showInputField type=sellist sql='.$sql); @@ -979,7 +981,10 @@ class ExtraFields { foreach ($fields_label as $field_toshow) { - $translabel=$langs->trans($obj->$field_toshow); + $translabel=''; + if (!empty($obj->$field_toshow)) { + $translabel=$langs->trans($obj->$field_toshow); + } if ($translabel!=$field_toshow) { $value.=dol_trunc($translabel,18).' '; }else { @@ -989,7 +994,10 @@ class ExtraFields } else { - $translabel=$langs->trans($obj->$InfoFieldList[1]); + $translabel=''; + if (!empty($obj->$InfoFieldList[1])) { + $translabel=$langs->trans($obj->$InfoFieldList[1]); + } if ($translabel!=$obj->$InfoFieldList[1]) { $value=dol_trunc($translabel,18); }else { From 834a6dc2af74a4fc482171a8e3c352acb7a54e10 Mon Sep 17 00:00:00 2001 From: Florian HENRY Date: Tue, 28 Oct 2014 16:50:44 +0100 Subject: [PATCH 08/34] webservice Thirdparty parameter lastname for invidual creation is now lastname and not ref --- ChangeLog | 1 + htdocs/webservices/server_thirdparty.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index c2ad4b7ecf1..b75afb18be0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -11,6 +11,7 @@ English Dolibarr ChangeLog - Fix: right and error management #1961 - Fix: Fix Error when trying to clone an Order #1943 - Fix: [ bug #1618 ] PHP Error thrown when saving a barcode +- Fix: webservice Thirdparty parameter lastname for invidual creation is now lastname and not ref ***** ChangeLog for 3.6.1 compared to 3.6.* ***** For users: diff --git a/htdocs/webservices/server_thirdparty.php b/htdocs/webservices/server_thirdparty.php index c5ac0c8c686..4a295cd3bfa 100644 --- a/htdocs/webservices/server_thirdparty.php +++ b/htdocs/webservices/server_thirdparty.php @@ -460,7 +460,7 @@ function createThirdParty($authentication,$thirdparty) $result=$newobject->create($fuser); if ($newobject->particulier && $result > 0) { $newobject->firstname = $thirdparty['firstname']; - $newobject->name_bis = $thirdparty['ref']; + $newobject->name_bis = $thirdparty['lastname']; $result = $newobject->create_individual($fuser); } if ($result <= 0) From c5045a75d8884fe8ce871c3836137b57793be8d5 Mon Sep 17 00:00:00 2001 From: jfefe Date: Thu, 30 Oct 2014 01:16:37 +0100 Subject: [PATCH 09/34] Missing trans key into resource module --- htdocs/langs/en_US/resource.lang | 4 +++- htdocs/langs/fr_FR/resource.lang | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/htdocs/langs/en_US/resource.lang b/htdocs/langs/en_US/resource.lang index 502d328d7c3..b17cae82f29 100755 --- a/htdocs/langs/en_US/resource.lang +++ b/htdocs/langs/en_US/resource.lang @@ -32,4 +32,6 @@ ResourceLinkedWithSuccess=Resource linked with success TitleResourceCard=Resource card ConfirmDeleteResource=Confirm to delete this resource RessourceSuccessfullyDeleted=Resource successfully deleted -DictionaryResourceType=Type of resources \ No newline at end of file +DictionaryResourceType=Type of resources + +SelectResource=Select resource diff --git a/htdocs/langs/fr_FR/resource.lang b/htdocs/langs/fr_FR/resource.lang index e4c8a6ade87..5059d628092 100755 --- a/htdocs/langs/fr_FR/resource.lang +++ b/htdocs/langs/fr_FR/resource.lang @@ -32,4 +32,6 @@ ResourceLinkedWithSuccess=Ressource liée avec succès TitleResourceCard=Fiche ressource ConfirmDeleteResource=Confirmer la suppression de cette ressource? RessourceSuccessfullyDeleted=Ressource effacée avec succès -DictionaryResourceType=Type de ressources \ No newline at end of file +DictionaryResourceType=Type de ressources + +SelectResource=Sélectionner la ressource From e370ffb2d44cdd453fde42e48e9955908f073330 Mon Sep 17 00:00:00 2001 From: jfefe Date: Thu, 30 Oct 2014 01:33:39 +0100 Subject: [PATCH 10/34] Bad function call --- htdocs/resource/class/resource.class.php | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/htdocs/resource/class/resource.class.php b/htdocs/resource/class/resource.class.php index 9cf6a83ef1d..d9ad13f83b1 100644 --- a/htdocs/resource/class/resource.class.php +++ b/htdocs/resource/class/resource.class.php @@ -23,8 +23,8 @@ */ // Put here all includes required by your class file -require_once(DOL_DOCUMENT_ROOT."/core/class/commonobject.class.php"); - +require_once DOL_DOCUMENT_ROOT."/core/class/commonobject.class.php"; +require_once DOL_DOCUMENT_ROOT."/core/lib/functions2.lib.php"; /** * DAO Resource object @@ -330,12 +330,12 @@ class Resource extends CommonObject function delete($rowid, $notrigger=0) { global $user,$langs,$conf; - + $error=0; - + $sql = "DELETE FROM ".MAIN_DB_PREFIX."resource"; $sql.= " WHERE rowid =".$rowid; - + dol_syslog(get_class($this)."::delete sql=".$sql); if ($this->db->query($sql)) { @@ -355,7 +355,7 @@ class Resource extends CommonObject } // End call triggers } - + return 1; } else { @@ -371,7 +371,7 @@ class Resource extends CommonObject return -1; } } - + /** * Load resource objects into $this->lines * @@ -507,9 +507,9 @@ class Resource extends CommonObject $line->fk_user_create = $obj->fk_user_create; if($obj->resource_id && $obj->resource_type) - $line->objresource = $this->fetchObjectByElement($obj->resource_id,$obj->resource_type); + $line->objresource = fetchObjectByElement($obj->resource_id,$obj->resource_type); if($obj->element_id && $obj->element_type) - $line->objelement = $this->fetchObjectByElement($obj->element_id,$obj->element_type); + $line->objelement = fetchObjectByElement($obj->element_id,$obj->element_type); $this->lines[$i] = $line; $i++; @@ -591,7 +591,7 @@ class Resource extends CommonObject $line->mandatory = $obj->mandatory; $line->fk_user_create = $obj->fk_user_create; - $this->lines[$i] = $this->fetchObjectByElement($obj->resource_id,$obj->resource_type); + $this->lines[$i] = fetchObjectByElement($obj->resource_id,$obj->resource_type); $i++; } @@ -814,7 +814,7 @@ class Resource extends CommonObject $i=0; foreach($resources as $nb => $resource) { - $this->lines[$i] = $this->fetchObjectByElement($resource['resource_id'],$resource['resource_type']); + $this->lines[$i] = fetchObjectByElement($resource['resource_id'],$resource['resource_type']); $i++; } return $i; From e3041f45ee9f61dccfdfed370acbd97ce9364656 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 30 Oct 2014 18:08:42 +0100 Subject: [PATCH 11/34] Update changelog --- ChangeLog | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ChangeLog b/ChangeLog index cc36bf92412..bab2b804a5c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,10 @@ English Dolibarr ChangeLog -------------------------------------------------------------- + +***** ChangeLog for 3.5.6 compared to 3.5.5 ***** +Fix: Avoid missing class error for fetch_thirdparty method #1973 + ***** ChangeLog for 3.5.5 compared to 3.5.4 ***** Fix: Holiday module was broken. Initializaion of amount of holidays failed. Fix: [ bug #1523 ] suite bug #1334 : filtre et ordre de tri conjoints ne s'appliquent pas. From 57f49ec5d4ddcd4b30c24255eb8ac822aa110aad Mon Sep 17 00:00:00 2001 From: aspangaro Date: Thu, 30 Oct 2014 20:41:08 +0100 Subject: [PATCH 12/34] GPLv3 --- .../admin/adherent_type_extrafields.php | 3 +- htdocs/core/class/html.formcron.class.php | 3 +- htdocs/core/lib/invoice2.lib.php | 27 ++++++++-------- htdocs/install/mssql/functions/functions.sql | Bin 5088 -> 5010 bytes .../class/html.formresource.class.php | 29 +++++++++--------- 5 files changed, 33 insertions(+), 29 deletions(-) diff --git a/htdocs/adherents/admin/adherent_type_extrafields.php b/htdocs/adherents/admin/adherent_type_extrafields.php index dca8796b681..aa5e8cfa8d9 100644 --- a/htdocs/adherents/admin/adherent_type_extrafields.php +++ b/htdocs/adherents/admin/adherent_type_extrafields.php @@ -7,7 +7,7 @@ * * 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 + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, @@ -17,6 +17,7 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see . + * or see http://www.gnu.org/ */ /** diff --git a/htdocs/core/class/html.formcron.class.php b/htdocs/core/class/html.formcron.class.php index bce8d9f041e..4de88a7bfc9 100644 --- a/htdocs/core/class/html.formcron.class.php +++ b/htdocs/core/class/html.formcron.class.php @@ -4,7 +4,7 @@ * * 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 + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, @@ -14,6 +14,7 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see . + * or see http://www.gnu.org/ */ /** diff --git a/htdocs/core/lib/invoice2.lib.php b/htdocs/core/lib/invoice2.lib.php index 9309d083187..fb9d8f90f70 100644 --- a/htdocs/core/lib/invoice2.lib.php +++ b/htdocs/core/lib/invoice2.lib.php @@ -2,19 +2,20 @@ /* * Copyright (C) 2009-2013 Laurent Destailleur * -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program. If not, see . -*/ + * 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 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * or see http://www.gnu.org/ + */ /** * \file htdocs/core/lib/invoice2.lib.php diff --git a/htdocs/install/mssql/functions/functions.sql b/htdocs/install/mssql/functions/functions.sql index 93766a224064a3dc68cab3dc0878f1477af69f1d..1c2c76996dc312cc2440a2329d46530adb815d7c 100644 GIT binary patch delta 170 zcmaE$K1qE87c-;rW^QI(=6XE_1qM%sG$5JBkk3%UpaWzTGo%8c0)q`h22iAgp@6}P zK_3Xq!BCGO9jLaHK@X_D2*}oF$YIE2NCxW21M4gXir4{VxfpbTPywt8VJ4c1V%Uw` JEX{tD2LNb29=HGi delta 197 zcmbQF{y=>L7c-;LW^QI(W@T#z1%^z9G$5JBkk3%UpaW!;GZX>EN*Gds>=K6j$!nQZ zS-BW=8FVLKWD>6jsqh4H -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program. If not, see . -*/ + * + * 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 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * or see http://www.gnu.org/ + */ /** * \file place/class/html.place.class.php From e43de8b815f46a690c62cc0284120cc34623be35 Mon Sep 17 00:00:00 2001 From: aspangaro Date: Fri, 31 Oct 2014 07:37:59 +0100 Subject: [PATCH 13/34] Update module accounting --- htdocs/accountancy/admin/account.php | 60 ++++++++++++++------- htdocs/accountancy/admin/card.php | 5 -- htdocs/core/menus/standard/eldy.lib.php | 2 +- htdocs/core/modules/modAccounting.class.php | 8 +++ 4 files changed, 49 insertions(+), 26 deletions(-) diff --git a/htdocs/accountancy/admin/account.php b/htdocs/accountancy/admin/account.php index 60ff4b125c3..fbb8cf84baa 100644 --- a/htdocs/accountancy/admin/account.php +++ b/htdocs/accountancy/admin/account.php @@ -37,6 +37,12 @@ $mesg = ''; $action = GETPOST('action'); $id = GETPOST('id', 'int'); $rowid = GETPOST('rowid', 'int'); +$search= GETPOST("search"); +$search_account = GETPOST("search_account"); +$search_label = GETPOST("search_label"); +$search_accountparent = GETPOST("search_accountparent"); +$search_pcgtype = GETPOST("search_pcgtype"); +$search_pcgsubtype = GETPOST("search_pcgsubtype"); // Security check if (!$user->admin) @@ -83,6 +89,16 @@ if ($action == 'disable') { } } +if (GETPOST("button_removefilter")) +{ + $search=""; + $search_account=""; + $search_label=""; + $search_accountparent=""; + $search_pcgtype=""; + $search_pcgsubtype=""; +} + /* * View * @@ -96,20 +112,20 @@ $sql .= " FROM " . MAIN_DB_PREFIX . "accountingaccount as aa, " . MAIN_DB_PREFIX $sql .= " WHERE aa.fk_pcg_version = asy.pcg_version"; $sql .= " AND asy.rowid = " . $pcgver; -if (strlen(trim($_GET["search_account"]))) { - $sql .= " AND aa.account_number like '%" . $_GET["search_account"] . "%'"; +if (strlen(trim($search_account))) { + $sql .= " AND aa.account_number like '%" . $search_account . "%'"; } -if (strlen(trim($_GET["search_label"]))) { - $sql .= " AND aa.label like '%" . $_GET["search_label"] . "%'"; +if (strlen(trim($search_label))) { + $sql .= " AND aa.label like '%" . $search_label . "%'"; } -if (strlen(trim($_GET["search_accountparent"]))) { - $sql .= " AND aa.account_parent like '%" . $_GET["search_accountparent"] . "%'"; +if (strlen(trim($search_accountparent))) { + $sql .= " AND aa.account_parent like '%" . $search_accountparent . "%'"; } -if (strlen(trim($_GET["search_pcgtype"]))) { - $sql .= " AND aa.pcg_type like '%" . $_GET["search_pcgtype"] . "%'"; +if (strlen(trim($search_pcgtype))) { + $sql .= " AND aa.pcg_type like '%" . $search_pcgtype . "%'"; } -if (strlen(trim($_GET["search_pcgsubtype"]))) { - $sql .= " AND aa.pcg_subtype like '%" . $_GET["search_pcgsubtype"] . "%'"; +if (strlen(trim($search_pcgsubtype))) { + $sql .= " AND aa.pcg_subtype like '%" . $search_pcgsubtype . "%'"; } $sql .= $db->order($sortfield, $sortorder); @@ -141,18 +157,20 @@ if ($result) { print_liste_field_titre($langs->trans("Pcgtype"), $_SERVER["PHP_SELF"], "aa.pcg_type", "", $param, "", $sortfield, $sortorder); print_liste_field_titre($langs->trans("Pcgsubtype"), $_SERVER["PHP_SELF"], "aa.pcg_subtype", "", $param, "", $sortfield, $sortorder); print_liste_field_titre($langs->trans("Active"), $_SERVER["PHP_SELF"], "aa.active", "", $param, "", $sortfield, $sortorder); - print_liste_field_titre(" "); + print_liste_field_titre($langs->trans("Action"),$_SERVER["PHP_SELF"],"",$param,"",'width="60" align="center"',$sortfield,$sortorder); print ''; print ''; - print ''; - print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; + print ''; + print ''; print ' '; - print ''; - print ''; + print ''; + print ''; + print '  '; + print ''; print ''; print ''; @@ -180,11 +198,13 @@ if ($result) { } print ''; - print ''; + // Action + print ''; if ($user->admin) { print ''; print img_edit(); - print ' '; + print ''; + print ' '; print ''; print img_delete(); print ''; diff --git a/htdocs/accountancy/admin/card.php b/htdocs/accountancy/admin/card.php index 9ebdea5fefc..ad6ca01b6ca 100644 --- a/htdocs/accountancy/admin/card.php +++ b/htdocs/accountancy/admin/card.php @@ -181,11 +181,6 @@ else if ($id) if ($action == 'update') { - // WYSIWYG Editor - $htmlacc = new FormVentilation($db); - - require_once DOL_DOCUMENT_ROOT . '/core/class/doleditor.class.php'; - $soc = new Societe($db); if ($object->socid) { $soc->fetch($object->socid); diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index 1d6e12b1357..71b6d29ea42 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -952,7 +952,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu if (! empty($conf->accounting->enabled)) { $newmenu->add("/accountancy/admin/fiscalyear.php?mainmenu=accountancy", $langs->trans("Fiscalyear"),0,$user->rights->accounting->fiscalyear, '', $mainmenu, 'fiscalyear'); - $newmenu->add("/accountancy/admin/account.php?mainmenu=home", $langs->trans("Chartofaccounts"),0,$user->rights->accounting->fiscalyear, '', $mainmenu, 'fiscalyear'); + $newmenu->add("/accountancy/admin/account.php?mainmenu=accountancy", $langs->trans("Chartofaccounts"),0,$user->rights->accounting->chartofaccount, '', $mainmenu, 'chartofaccount'); } } diff --git a/htdocs/core/modules/modAccounting.class.php b/htdocs/core/modules/modAccounting.class.php index 9a544b1ece0..e074bfe82f1 100644 --- a/htdocs/core/modules/modAccounting.class.php +++ b/htdocs/core/modules/modAccounting.class.php @@ -229,6 +229,14 @@ class modAccounting extends DolibarrModules $this->rights[$r][4] = 'fiscalyear'; $this->rights[$r][5] = ''; $r++; + + $this->rights[$r][0] = 50440; + $this->rights[$r][1] = 'Manage chart of accounts'; + $this->rights[$r][2] = 'r'; + $this->rights[$r][3] = 1; + $this->rights[$r][4] = 'chartofaccount'; + $this->rights[$r][5] = ''; + $r++; // Main menu entries $this->menus = array(); From ccddf0d1bee301e91b65128ff757dfbe997683ae Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Fri, 31 Oct 2014 16:56:14 +0100 Subject: [PATCH 14/34] Fix : actioncomme report was not filtering by entity... --- htdocs/core/modules/action/rapport.pdf.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/core/modules/action/rapport.pdf.php b/htdocs/core/modules/action/rapport.pdf.php index d595dfe5579..ea92973101f 100644 --- a/htdocs/core/modules/action/rapport.pdf.php +++ b/htdocs/core/modules/action/rapport.pdf.php @@ -182,6 +182,7 @@ class CommActionRapport $sql.= " WHERE c.id=a.fk_action AND a.fk_user_author = u.rowid"; $sql.= " AND a.datep BETWEEN '".$this->db->idate(dol_get_first_day($this->year,$this->month,false))."'"; $sql.= " AND '".$this->db->idate(dol_get_last_day($this->year,$this->month,false))."'"; + $sql.= " AND a.entity = ".$conf->entity; $sql.= " ORDER BY a.datep DESC"; dol_syslog(get_class($this)."::_page sql=".$sql); From 4951feeb8f05cdbb21e8b4f5e30d91dd57f985a4 Mon Sep 17 00:00:00 2001 From: aspangaro Date: Sat, 1 Nov 2014 07:59:52 +0100 Subject: [PATCH 15/34] Correct rights & presentation --- htdocs/accountancy/admin/account.php | 4 +- htdocs/accountancy/bookkeeping/card.php | 38 +++++----- htdocs/accountancy/bookkeeping/list.php | 70 ++++++++++++------- htdocs/accountancy/customer/card.php | 6 +- htdocs/accountancy/customer/index.php | 8 +-- htdocs/accountancy/journal/bankjournal.php | 2 - htdocs/accountancy/journal/cashjournal.php | 2 - htdocs/accountancy/journal/index.php | 2 - .../accountancy/journal/purchasesjournal.php | 2 - htdocs/accountancy/journal/sellsjournal.php | 2 - htdocs/accountancy/supplier/card.php | 7 +- htdocs/accountancy/supplier/index.php | 6 +- 12 files changed, 73 insertions(+), 76 deletions(-) diff --git a/htdocs/accountancy/admin/account.php b/htdocs/accountancy/admin/account.php index fbb8cf84baa..36739254d06 100644 --- a/htdocs/accountancy/admin/account.php +++ b/htdocs/accountancy/admin/account.php @@ -37,7 +37,6 @@ $mesg = ''; $action = GETPOST('action'); $id = GETPOST('id', 'int'); $rowid = GETPOST('rowid', 'int'); -$search= GETPOST("search"); $search_account = GETPOST("search_account"); $search_label = GETPOST("search_label"); $search_accountparent = GETPOST("search_accountparent"); @@ -91,7 +90,6 @@ if ($action == 'disable') { if (GETPOST("button_removefilter")) { - $search=""; $search_account=""; $search_label=""; $search_accountparent=""; @@ -169,7 +167,7 @@ if ($result) { print ' '; print ''; print ''; - print '  '; + print ' '; print ''; print ''; print ''; diff --git a/htdocs/accountancy/bookkeeping/card.php b/htdocs/accountancy/bookkeeping/card.php index 9e109c7feeb..608c62cf1d0 100644 --- a/htdocs/accountancy/bookkeeping/card.php +++ b/htdocs/accountancy/bookkeeping/card.php @@ -35,8 +35,6 @@ $langs->load("accounting"); $id = GETPOST('id', 'int'); if ($user->societe_id > 0) accessforbidden(); -if (! $user->rights->accounting->access) - accessforbidden(); $action = GETPOST('action'); $piece_num = GETPOST("piece_num"); @@ -238,7 +236,9 @@ if ($action == 'create') { print ''; print ''; -} else { +} +else +{ $book = new BookKeeping($db); $result = $book->fetch_per_mvt($piece_num); if ($result < 0) { @@ -309,14 +309,12 @@ if ($action == 'create') { print ''; print '' . $line->montant . ''; print '' . $line->sens . ''; - print ''; - if ($user->rights->accounting->access) { - print ''; - } + print ''; print ''; print ''; - } else { + } + else { print '' . $line->numero_compte . ''; print '' . $line->code_tiers . ''; print '' . $line->label_compte . ''; @@ -324,16 +322,15 @@ if ($action == 'create') { print '' . $line->credit . ''; print '' . $line->montant . ''; print '' . $line->sens . ''; - + print ''; - if ($user->rights->accouting->access) { - print ''; - print img_edit(); - print ' '; - print ''; - print img_delete(); - print ''; - } + print ''; + print img_edit(); + print ' '; + print ''; + print img_delete(); + print ''; + print ''; } print "\n"; @@ -342,7 +339,7 @@ if ($action == 'create') { if ($action == "" || $action == 'add') { $var = ! $var; print ""; - + print '
'; print '' . "\n"; print '' . "\n"; @@ -359,14 +356,13 @@ if ($action == 'create') { print ''; print ''; print ''; - print ''; } - print ""; } } - } else { + } + else { print_fiche_titre($langs->trans("NoRecords")); } } diff --git a/htdocs/accountancy/bookkeeping/list.php b/htdocs/accountancy/bookkeeping/list.php index b0e5096699b..21da5bacbb9 100644 --- a/htdocs/accountancy/bookkeeping/list.php +++ b/htdocs/accountancy/bookkeeping/list.php @@ -36,6 +36,11 @@ $page = GETPOST("page"); $sortorder = GETPOST("sortorder"); $sortfield = GETPOST("sortfield"); $action = GETPOST('action', 'alpha'); +$search_doc_type = GETPOST("search_doc_type"); +$search_doc_ref = GETPOST("search_doc_ref"); +$search_account = GETPOST("search_account"); +$search_thirdparty = GETPOST("search_thirdparty"); +$search_journal = GETPOST("search_journal"); if ($sortorder == "") $sortorder = "ASC"; @@ -46,6 +51,15 @@ $offset = $conf->liste_limit * $page; $formventilation = new FormVentilation($db); +if (GETPOST("button_removefilter")) +{ + $search_doc_type=""; + $search_doc_ref=""; + $search_account=""; + $search_thirdparty=""; + $search_journal=""; +} + /* * Action */ @@ -100,25 +114,25 @@ else { $sql = "SELECT bk.rowid, bk.doc_date, bk.doc_type, bk.doc_ref, bk.code_tiers, bk.numero_compte , bk.label_compte, bk.debit , bk.credit, bk.montant , bk.sens , bk.code_journal , bk.piece_num "; $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk"; - if (dol_strlen(trim(GETPOST("search_doc_type")))) { + if (dol_strlen(trim($search_doc_type))) { - $sql .= " WHERE bk.doc_type LIKE '%" . GETPOST("search_doc_type") . "%'"; + $sql .= " WHERE bk.doc_type LIKE '%" . $search_doc_type . "%'"; - if (dol_strlen(trim(GETPOST("search_doc_ref")))) { - $sql .= " AND bk.doc_ref LIKE '%" . GETPOST("search_doc_ref") . "%'"; + if (dol_strlen(trim($search_doc_ref))) { + $sql .= " AND bk.doc_ref LIKE '%" . $search_doc_ref . "%'"; } } - if (dol_strlen(trim(GETPOST("search_doc_ref")))) { - $sql .= " WHERE bk.doc_ref LIKE '%" . GETPOST("search_doc_ref") . "%'"; + if (dol_strlen(trim($search_doc_ref))) { + $sql .= " WHERE bk.doc_ref LIKE '%" . $search_doc_ref . "%'"; } - if (dol_strlen(trim(GETPOST("search_compte")))) { - $sql .= " WHERE bk.numero_compte LIKE '%" . GETPOST("search_compte") . "%'"; + if (dol_strlen(trim($search_account))) { + $sql .= " WHERE bk.numero_compte LIKE '%" . $search_account . "%'"; } - if (dol_strlen(trim(GETPOST("search_tiers")))) { - $sql .= " WHERE bk.code_tiers LIKE '%" . GETPOST("search_tiers") . "%'"; + if (dol_strlen(trim($search_thirdparty))) { + $sql .= " WHERE bk.code_tiers LIKE '%" . $search_thirdparty . "%'"; } - if (dol_strlen(trim(GETPOST("search_journal")))) { - $sql .= " WHERE bk.code_journal LIKE '%" . GETPOST("search_journal") . "%'"; + if (dol_strlen(trim($search_journal))) { + $sql .= " WHERE bk.code_journal LIKE '%" . $search_journal . "%'"; } $sql .= " ORDER BY $sortfield $sortorder " . $db->plimit($conf->liste_limit + 1, $offset); @@ -149,7 +163,7 @@ else { print ''; print '
'; - print ""; + print '
'; print ''; print_liste_field_titre($langs->trans("Doctype"), $_SERVER['PHP_SELF'], "bk.doc_type", "", "", "", $sortfield, $sortorder); print_liste_field_titre($langs->trans("Docdate"), $_SERVER['PHP_SELF'], "bk.doc_date", "", "", "", $sortfield, $sortorder); @@ -157,29 +171,31 @@ else { print_liste_field_titre($langs->trans("Numerocompte"), $_SERVER['PHP_SELF'], "bk.numero_compte", "", "", "", $sortfield, $sortorder); print_liste_field_titre($langs->trans("Code_tiers"), $_SERVER['PHP_SELF'], "bk.code_tiers", "", "", "", $sortfield, $sortorder); print_liste_field_titre($langs->trans("Labelcompte"), $_SERVER['PHP_SELF'], "bk_label_compte", "", "", "", $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Debit"), $_SERVER['PHP_SELF'], "bk.debit", "", "", "", $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Credit"), $_SERVER['PHP_SELF'], "bk.credit", "", "", "", $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Amount"), $_SERVER['PHP_SELF'], "bk.montant", "", "", "", $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Sens"), $_SERVER['PHP_SELF'], "bk.sens", "", "", "", $sortfield, $sortorder); + print_liste_field_titre($langs->trans("Debit"), $_SERVER['PHP_SELF'], "bk.debit", "", "", 'align="center"', $sortfield, $sortorder); + print_liste_field_titre($langs->trans("Credit"), $_SERVER['PHP_SELF'], "bk.credit", "", "", 'align="center"', $sortfield, $sortorder); + print_liste_field_titre($langs->trans("Amount"), $_SERVER['PHP_SELF'], "bk.montant", "", "", 'align="center"', $sortfield, $sortorder); + print_liste_field_titre($langs->trans("Sens"), $_SERVER['PHP_SELF'], "bk.sens", "", "", 'align="center"', $sortfield, $sortorder); print_liste_field_titre($langs->trans("Codejournal"), $_SERVER['PHP_SELF'], "bk.code_journal", "", "", "", $sortfield, $sortorder); - print_liste_field_titre(" "); + print_liste_field_titre($langs->trans("Action"),$_SERVER["PHP_SELF"],"",$param,"",'width="60" align="center"',$sortfield,$sortorder); print "\n"; print ''; print ''; - print ''; + print ''; print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; print ''; print ''; print ''; print ''; print ''; - print ''; - print ''; + print ''; print ''; print ''; @@ -201,9 +217,9 @@ else { print ''; print ''; print ''; - print ''; + print ''; print ''; - print ''; + print ''; print "\n"; $i ++; } diff --git a/htdocs/accountancy/customer/card.php b/htdocs/accountancy/customer/card.php index 91a0eb5df8b..28d3d0c1f79 100644 --- a/htdocs/accountancy/customer/card.php +++ b/htdocs/accountancy/customer/card.php @@ -40,14 +40,12 @@ $id = GETPOST('id'); // Security check if ($user->societe_id > 0) accessforbidden(); -if (! $user->rights->accounting->access) - accessforbidden(); /* * Actions */ -if ($action == 'ventil' && $user->rights->accounting->access) +if ($action == 'ventil' && $user->rights->accounting->ventilation->dispatch) { if (! GETPOST('cancel', 'alpha')) { @@ -109,7 +107,7 @@ if (! empty($id)) { print ''; $linkback=''.$langs->trans("Back").''; - print_fiche_titre($langs->trans('AccountingVentilationCustomer'),$linkback,'setup'); + print_fiche_titre($langs->trans('CustomersVentilation'),$linkback,'setup'); print '
      '; - print ''; + print ''; + print ''; + print ' '; + print ''; print '
' . price($obj->debit) . '' . price($obj->credit) . '' . price($obj->montant) . '' . $obj->sens . '' . $obj->sens . '' . $obj->code_journal . '' . img_edit() . '' . img_edit() . '
'; diff --git a/htdocs/accountancy/customer/index.php b/htdocs/accountancy/customer/index.php index 9ae070c25e0..cb40b7b361b 100644 --- a/htdocs/accountancy/customer/index.php +++ b/htdocs/accountancy/customer/index.php @@ -93,8 +93,8 @@ if ($action == 'validatehistory') { */ llxHeader('', $langs->trans("CustomersVentilation")); -$textprevyear = "" . img_previous() . ""; -$textnextyear = " " . img_next() . ""; +$textprevyear = '' . img_previous() . ''; +$textnextyear = ' ' . img_next() . ''; print_fiche_titre($langs->trans("CustomersVentilation") . " " . $textprevyear . " " . $langs->trans("Year") . " " . $year_start . " " . $textnextyear); @@ -197,7 +197,7 @@ print "
\n"; print "
\n"; print ''; -print ''; +print ''; print ''; print ''; print ''; @@ -212,7 +212,7 @@ print ''; print ''; print ''; -$sql = "SELECT '" . $langs->trans("Vide") . "' AS 'Total',"; +$sql = "SELECT '" . $langs->trans("TotalVente") . "' AS 'Total',"; $sql .= " ROUND(SUM(IF(MONTH(f.datef)=1,fd.total_ht,0)),2) AS 'Janvier',"; $sql .= " ROUND(SUM(IF(MONTH(f.datef)=2,fd.total_ht,0)),2) AS 'Fevrier',"; $sql .= " ROUND(SUM(IF(MONTH(f.datef)=3,fd.total_ht,0)),2) AS 'Mars',"; diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php index dcd8fca4d41..1f9b0549121 100644 --- a/htdocs/accountancy/journal/bankjournal.php +++ b/htdocs/accountancy/journal/bankjournal.php @@ -68,8 +68,6 @@ $action = GETPOST('action'); // Security check if ($user->societe_id > 0) accessforbidden(); -if (! $user->rights->accounting->access) - accessforbidden(); /* * View diff --git a/htdocs/accountancy/journal/cashjournal.php b/htdocs/accountancy/journal/cashjournal.php index 8af84a9ed58..fb5a15a513c 100644 --- a/htdocs/accountancy/journal/cashjournal.php +++ b/htdocs/accountancy/journal/cashjournal.php @@ -62,8 +62,6 @@ $date_endyear = GETPOST('date_endyear'); // Security check if ($user->societe_id > 0) accessforbidden(); -if (! $user->rights->accounting->access) - accessforbidden(); $action = GETPOST('action'); diff --git a/htdocs/accountancy/journal/index.php b/htdocs/accountancy/journal/index.php index 272d76fa20f..36286ce265e 100644 --- a/htdocs/accountancy/journal/index.php +++ b/htdocs/accountancy/journal/index.php @@ -36,8 +36,6 @@ $langs->load("accountancy"); // Security check if ($user->societe_id > 0) accessforbidden(); -if (! $user->rights->accounting->access) - accessforbidden(); llxHeader('', 'Journaux', ''); diff --git a/htdocs/accountancy/journal/purchasesjournal.php b/htdocs/accountancy/journal/purchasesjournal.php index 789aa1111af..97d52124c01 100644 --- a/htdocs/accountancy/journal/purchasesjournal.php +++ b/htdocs/accountancy/journal/purchasesjournal.php @@ -55,8 +55,6 @@ $date_endyear = GETPOST('date_endyear'); // Security check if ($user->societe_id > 0) accessforbidden(); -if (! $user->rights->accounting->access) - accessforbidden(); $action = GETPOST('action'); diff --git a/htdocs/accountancy/journal/sellsjournal.php b/htdocs/accountancy/journal/sellsjournal.php index a7c0266998f..5bb1f989a92 100644 --- a/htdocs/accountancy/journal/sellsjournal.php +++ b/htdocs/accountancy/journal/sellsjournal.php @@ -56,8 +56,6 @@ $date_endyear = GETPOST('date_endyear'); // Security check if ($user->societe_id > 0) accessforbidden(); -if (! $user->rights->accounting->access) - accessforbidden(); $action = GETPOST('action'); diff --git a/htdocs/accountancy/supplier/card.php b/htdocs/accountancy/supplier/card.php index b0078839b55..45c8de9b165 100644 --- a/htdocs/accountancy/supplier/card.php +++ b/htdocs/accountancy/supplier/card.php @@ -46,10 +46,9 @@ $codeventil = GETPOST('codeventil'); // Security check if ($user->societe_id > 0) accessforbidden(); -if (! $user->rights->accounting->ventilation->dispatch) - accessforbidden(); -if ($action == 'ventil' && $user->rights->accounting->access) { +if ($action == 'ventil' && $user->rights->accounting->ventilation->dispatch) +{ $sql = " UPDATE " . MAIN_DB_PREFIX . "facture_fourn_det"; $sql .= " SET fk_code_ventilation = " . $codeventil; $sql .= " WHERE rowid = " . $id; @@ -103,7 +102,7 @@ if ($_GET["id"]) { print ''; print ''; - print_fiche_titre($langs->trans("Ventilation")); + print_fiche_titre($langs->trans("SuppliersVentilation")); print '
' . $langs->trans("TotalVente") . '
' . $langs->trans("Total") . '' . $langs->trans("JanuaryMin") . '' . $langs->trans("FebruaryMin") . '' . $langs->trans("MarchMin") . '' . $langs->trans("NovemberMin") . '' . $langs->trans("DecemberMin") . '' . $langs->trans("Total") . '
'; diff --git a/htdocs/accountancy/supplier/index.php b/htdocs/accountancy/supplier/index.php index 7d633c575f1..edebcfd9d46 100644 --- a/htdocs/accountancy/supplier/index.php +++ b/htdocs/accountancy/supplier/index.php @@ -92,10 +92,10 @@ if ($action == 'validatehistory') { llxHeader('', $langs->trans("SuppliersVentilation")); -$textprevyear = "" . img_previous() . ""; -$textnextyear = " " . img_next() . ""; +$textprevyear = '' . img_previous() . ''; +$textnextyear = ' ' . img_next() . ''; -print_fiche_titre($langs->trans("AccountingVentilationSupplier") . " " . $textprevyear . " " . $langs->trans("Year") . " " . $year_start . " " . $textnextyear); +print_fiche_titre($langs->trans("SuppliersVentilation") . " " . $textprevyear . " " . $langs->trans("Year") . " " . $year_start . " " . $textnextyear); print '' . $langs->trans("DescVentilSupplier") . ''; print ''; From 53dfda1413069c1e8f4979a171be5a72053030fa Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 1 Nov 2014 19:34:20 +0100 Subject: [PATCH 16/34] Fix: Chars - is no more allowed into value for code for extra fields. --- ChangeLog | 3 ++- htdocs/core/class/extrafields.class.php | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index abbe486707f..28d86310494 100644 --- a/ChangeLog +++ b/ChangeLog @@ -10,7 +10,8 @@ English Dolibarr ChangeLog - Fix: box of customer and propsects were not correctly disabled. - Fix: [ bug #1618 ] PHP Error thrown when saving a barcode - Fix: Civility & birthdate wasn't save into adherent module. -- Fix: webservice Thirdparty parameter lastname for invidual creation is now lastname and not ref +- Fix: webservice Thirdparty parameter lastname for invidual creation is now lastname and not ref +- Fix: Chars - is no more allowed into value for code for extra fields. ***** ChangeLog for 3.6.1 compared to 3.6.* ***** For users: diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index 16583c0703c..8ce0a1b3b45 100644 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -154,7 +154,7 @@ class ExtraFields { $table=$elementtype.'_extrafields'; - if (! empty($attrname) && preg_match("/^\w[a-zA-Z0-9-_]*$/",$attrname) && ! is_numeric($attrname)) + if (! empty($attrname) && preg_match("/^\w[a-zA-Z0-9_]*$/",$attrname) && ! is_numeric($attrname)) { if ($type=='boolean') { $typedb='int'; From 627f5694f0a71b0b7fdb6a82188d732c54d029b6 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 2 Nov 2014 21:16:31 +0100 Subject: [PATCH 17/34] Fix: Infinite loop --- htdocs/core/lib/date.lib.php | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/htdocs/core/lib/date.lib.php b/htdocs/core/lib/date.lib.php index 48ccec88cf1..6a5024c1c80 100644 --- a/htdocs/core/lib/date.lib.php +++ b/htdocs/core/lib/date.lib.php @@ -563,9 +563,10 @@ function num_public_holiday($timestampStart, $timestampEnd, $countrycode='FR') $nbFerie = 0; // Check to ensure we use correct parameters - if ((($timestampEnd - $timestampStart) % 86400) != 0) return 'ErrorDates must use same hour and be GMT dates'; + if ((($timestampEnd - $timestampStart) % 86400) != 0) return 'ErrorDates must use same hours and must be GMT dates'; - while ($timestampStart < $timestampEnd) // Loop end when equals + $i=0; + while ($timestampStart < $timestampEnd && ($i < 50000)) // Loop end when equals (Test on i is a security loop to avoid infinite loop) { $ferie=false; $countryfound=0; @@ -573,7 +574,6 @@ function num_public_holiday($timestampStart, $timestampEnd, $countrycode='FR') $jour = date("d", $timestampStart); $mois = date("m", $timestampStart); $annee = date("Y", $timestampStart); - if ($countrycode == 'FR') { $countryfound=1; @@ -676,8 +676,10 @@ function num_public_holiday($timestampStart, $timestampEnd, $countrycode='FR') if ($ferie) $nbFerie++; // Increase number of days (on go up into loop) - $jour++; - $timestampStart=dol_mktime(0,0,0,$mois,$jour,$annee,1); // Generate GMT date for next day + $timestampStart=dol_time_plus_duree($timestampStart, 1, 'd'); + //var_dump($jour.' '.$mois.' '.$annee.' '.$timestampStart); + + $i++; } return $nbFerie; @@ -718,13 +720,16 @@ function num_between_day($timestampStart, $timestampEnd, $lastday=0) * @param int $inhour 0: return number of days, 1: return number of hours * @param int $lastday We include last day, 0: no, 1:yes * @param int $halfday Tag to define half day when holiday start and end + * @param string $countrycode Country code (company country code if not defined) * @return int Number of days or hours */ -function num_open_day($timestampStart, $timestampEnd, $inhour=0, $lastday=0, $halfday=0) +function num_open_day($timestampStart, $timestampEnd, $inhour=0, $lastday=0, $halfday=0, $country_code='') { - global $langs; + global $langs,$mysoc; - dol_syslog('num_open_day timestampStart='.$timestampStart.' timestampEnd='.$timestampEnd.' bit='.$lastday); + if (empty($country_code)) $country_code=$mysoc->country_code; + + dol_syslog('num_open_day timestampStart='.$timestampStart.' timestampEnd='.$timestampEnd.' bit='.$lastday.' country_code='.$country_code); // Check parameters if (! is_int($timestampStart) && ! is_float($timestampStart)) return 'ErrorBadParameter_num_open_day'; @@ -733,7 +738,9 @@ function num_open_day($timestampStart, $timestampEnd, $inhour=0, $lastday=0, $ha //print 'num_open_day timestampStart='.$timestampStart.' timestampEnd='.$timestampEnd.' bit='.$lastday; if ($timestampStart < $timestampEnd) { - $nbOpenDay = num_between_day($timestampStart, $timestampEnd, $lastday) - num_public_holiday($timestampStart, $timestampEnd, $lastday); + $numdays = num_between_day($timestampStart, $timestampEnd, $lastday); + $numholidays = num_public_holiday($timestampStart, $timestampEnd, $country_code); + $nbOpenDay = $numdays - $numholidays; $nbOpenDay.= " " . $langs->trans("Days"); if ($inhour == 1 && $nbOpenDay <= 3) $nbOpenDay = $nbOpenDay*24 . $langs->trans("HourShort"); return $nbOpenDay - (($inhour == 1 ? 12 : 0.5) * abs($halfday)); From ca69bf9d7eb7b611bc09f8b32faaf69531df4edb Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 2 Nov 2014 21:20:24 +0100 Subject: [PATCH 18/34] Fix: Infinite loop --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index 28d86310494..25d8c7d638d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -12,6 +12,7 @@ English Dolibarr ChangeLog - Fix: Civility & birthdate wasn't save into adherent module. - Fix: webservice Thirdparty parameter lastname for invidual creation is now lastname and not ref - Fix: Chars - is no more allowed into value for code for extra fields. +( Fix: [ bug #1622 ] Requesting holiday than spans across two years cause high CPU usage by Apache ***** ChangeLog for 3.6.1 compared to 3.6.* ***** For users: From d177a2fbb4b0eebb2586cc8fd562391a68ff5872 Mon Sep 17 00:00:00 2001 From: Alexis Algoud Date: Tue, 4 Nov 2014 16:13:51 +0100 Subject: [PATCH 19/34] fix bug on thm --- htdocs/projet/class/task.class.php | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/htdocs/projet/class/task.class.php b/htdocs/projet/class/task.class.php index c97b51e53a4..642441a27b6 100644 --- a/htdocs/projet/class/task.class.php +++ b/htdocs/projet/class/task.class.php @@ -769,7 +769,7 @@ class Task extends CommonObject if ($this->db->query($sql) ) { $tasktime_id = $this->db->last_insert_id(MAIN_DB_PREFIX."projet_task_time"); - $ret = $tasktme_id; + $ret = $tasktime_id; if (! $notrigger) { @@ -801,10 +801,7 @@ class Task extends CommonObject dol_syslog(get_class($this)."::addTimeSpent error -2 ".$this->error, LOG_ERR); $ret = -2; } - } - - if ($ret >= 0) - { + $sql = "UPDATE ".MAIN_DB_PREFIX."projet_task_time"; $sql.= " SET thm = (SELECT thm FROM ".MAIN_DB_PREFIX."user WHERE rowid = ".$this->timespent_fk_user.")"; $sql.= " WHERE rowid = ".$tasktime_id; From 0d62556fa08967e9dfd09d4b3c93ed1fc1b34104 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 5 Nov 2014 11:01:53 +0100 Subject: [PATCH 20/34] Maj doc --- htdocs/install/mysql/migration/repair.sql | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/htdocs/install/mysql/migration/repair.sql b/htdocs/install/mysql/migration/repair.sql index 8c334f9966d..4083ba2f7b9 100644 --- a/htdocs/install/mysql/migration/repair.sql +++ b/htdocs/install/mysql/migration/repair.sql @@ -189,9 +189,12 @@ UPDATE llx_projet_task_time set task_datehour = task_date where task_datehour IS -- update llx_facture set tva = total_ttc - total where tva = 0; -- To insert elements into a category --- Search idcategory: select rowid from llx_categorie where type=0 and label like '%xxx%' --- Select all products to include: select * from llx_product where label like '%xxx%' --- If ok, insert: insert into llx_categorie_product(fk_categorie, fk_product) select idcategory, rowid from llx_product where label like '%xxx%' +-- Search idcategory: select rowid from llx_categorie where type=0 and ref like '%xxx%' +-- Select all products to include: select * from llx_product where ref like '%xxx%' +-- If ok, insert: insert into llx_categorie_product(fk_categorie, fk_product) select idcategory, rowid from llx_product where ref like '%xxx%' +-- List of product with a category xxx: select distinct cp.fk_product from llx_categorie_product as cp, llx_categorie as c where cp.fk_categorie = c.rowid and c.label like 'xxx-%' order by fk_product; +-- List of product into 2 categories xxx: select cp.fk_product, count(cp.fk_product) as nb from llx_categorie_product as cp, llx_categorie as c where cp.fk_categorie = c.rowid and c.label like 'xxx-%' group by fk_product having nb > 1; +-- List of product with no category xxx yet: select rowid, ref from llx_product where rowid not in (select distinct cp.fk_product from llx_categorie_product as cp, llx_categorie as c where cp.fk_categorie = c.rowid and c.label like 'xxx-%' order by fk_product); -- Replace xxx with your IP Address -- bind-address = xxx.xxx.xxx.xxx From 5742e42689a8090fa92818022689e9c30a34621e Mon Sep 17 00:00:00 2001 From: Andrelec1 Date: Wed, 5 Nov 2014 14:24:02 +0100 Subject: [PATCH 21/34] Fix require FormOther ! If agenda module is desable --- htdocs/user/card.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/user/card.php b/htdocs/user/card.php index 4760f73f855..9c2290cc629 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -36,7 +36,8 @@ require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/usergroups.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; -if (! empty($conf->agenda->enabled))require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; +//if (! empty($conf->agenda->enabled))require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; if (! empty($conf->ldap->enabled)) require_once DOL_DOCUMENT_ROOT.'/core/class/ldap.class.php'; if (! empty($conf->adherent->enabled)) require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; if (! empty($conf->multicompany->enabled)) dol_include_once('/multicompany/class/actions_multicompany.class.php'); From 90fb05805c46e2ab0e25804ed3a9b44624c51d6e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 5 Nov 2014 16:21:17 +0100 Subject: [PATCH 22/34] Fix: Missing translation --- htdocs/compta/prelevement/factures.php | 3 ++- htdocs/langs/en_US/main.lang | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/htdocs/compta/prelevement/factures.php b/htdocs/compta/prelevement/factures.php index bf3e428cd0e..d11fefbb6cb 100644 --- a/htdocs/compta/prelevement/factures.php +++ b/htdocs/compta/prelevement/factures.php @@ -213,6 +213,7 @@ else dol_print_error($db); } -$db->close(); llxFooter(); + +$db->close(); diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index a18522be5f8..cbc4deb40d7 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -367,6 +367,7 @@ ActionsOnCompany=Events about this third party ActionsOnMember=Events about this member NActions=%s events NActionsLate=%s late +RequestAlreadyDone=Request already recorded Filter=Filter RemoveFilter=Remove filter ChartGenerated=Chart generated From f7e71d88480ff1daf782836e8c1832dfe5772d1e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 5 Nov 2014 16:23:10 +0100 Subject: [PATCH 23/34] Fix: checkstyle --- .../generate/modGeneratePassPerso.class.php | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/htdocs/core/modules/security/generate/modGeneratePassPerso.class.php b/htdocs/core/modules/security/generate/modGeneratePassPerso.class.php index aedc870560f..7440a357ea8 100644 --- a/htdocs/core/modules/security/generate/modGeneratePassPerso.class.php +++ b/htdocs/core/modules/security/generate/modGeneratePassPerso.class.php @@ -90,11 +90,12 @@ class modGeneratePassPerso extends ModeleGenPassword $this->NbRepeat = $tabConf[4]; $this->WithoutAmbi = $tabConf[5]; - if($this->WithoutAmbi){ - $this->Maj = str_replace($this->Ambi,"",$this->Maj ); - $this->Min = str_replace($this->Ambi,"",$this->Min ); - $this->Nb = str_replace($this->Ambi,"",$this->Nb ); - $this->Spe = str_replace($this->Ambi,"",$this->Spe ); + if ($this->WithoutAmbi) + { + $this->Maj = str_replace($this->Ambi,"",$this->Maj); + $this->Min = str_replace($this->Ambi,"",$this->Min); + $this->Nb = str_replace($this->Ambi,"",$this->Nb); + $this->Spe = str_replace($this->Ambi,"",$this->Spe); } $this->All = str_shuffle($this->Maj. $this->Min. $this->Nb. $this->Spe); @@ -148,11 +149,13 @@ class modGeneratePassPerso extends ModeleGenPassword $pass .= $this->All[rand(0,strlen($this->All) -1)]; } - $pass = str_shuffle($pass) ; + $pass = str_shuffle($pass); - if($this->validatePassword($pass)) { + if ($this->validatePassword($pass)) + { return $pass; } + return $this->getNewGeneratedPassword(); } From 31c38cedbc4119965d02bb2d9b844791e6f90f30 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 5 Nov 2014 16:26:11 +0100 Subject: [PATCH 24/34] Fix: checkstyle --- htdocs/core/lib/date.lib.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/lib/date.lib.php b/htdocs/core/lib/date.lib.php index 6a5024c1c80..924d3da2259 100644 --- a/htdocs/core/lib/date.lib.php +++ b/htdocs/core/lib/date.lib.php @@ -524,7 +524,7 @@ function dol_get_first_day_week($day,$month,$year,$gm=false) } $tmpmonth = $prev_month; $tmpyear = $prev_year; - + //Get first day of next week $tmptime=dol_mktime(12,0,0,$month,$tmpday,$year,1,0); $tmptime-=24*60*60*7; @@ -720,7 +720,7 @@ function num_between_day($timestampStart, $timestampEnd, $lastday=0) * @param int $inhour 0: return number of days, 1: return number of hours * @param int $lastday We include last day, 0: no, 1:yes * @param int $halfday Tag to define half day when holiday start and end - * @param string $countrycode Country code (company country code if not defined) + * @param string $country_code Country code (company country code if not defined) * @return int Number of days or hours */ function num_open_day($timestampStart, $timestampEnd, $inhour=0, $lastday=0, $halfday=0, $country_code='') From 60ca5aa02664706751a3645dbd294a7e39382024 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 5 Nov 2014 17:32:42 +0100 Subject: [PATCH 25/34] Debug of module withdraw. --- htdocs/compta/prelevement/bon.php | 103 ------------------ .../class/bonprelevement.class.php | 19 ++-- .../class/rejetprelevement.class.php | 5 +- htdocs/compta/prelevement/demandes.php | 2 +- htdocs/compta/prelevement/ligne.php | 31 ++++-- htdocs/core/lib/prelevement.lib.php | 8 -- htdocs/langs/en_US/withdrawals.lang | 3 +- 7 files changed, 38 insertions(+), 133 deletions(-) delete mode 100644 htdocs/compta/prelevement/bon.php diff --git a/htdocs/compta/prelevement/bon.php b/htdocs/compta/prelevement/bon.php deleted file mode 100644 index 20d60c3a55b..00000000000 --- a/htdocs/compta/prelevement/bon.php +++ /dev/null @@ -1,103 +0,0 @@ - - * Copyright (C) 2005 Laurent Destailleur - * Copyright (C) 2010-2012 Juanjo Menent - * - * 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 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -/** - * \file htdocs/compta/prelevement/bon.php - * \ingroup prelevement - * \brief Fiche apercu du bon de prelevement - */ - -require('../../main.inc.php'); -require_once DOL_DOCUMENT_ROOT.'/core/lib/prelevement.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/bonprelevement.class.php'; -require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; - -$langs->load("banks"); -$langs->load("categories"); -$langs->load("bills"); -$langs->load("categories"); - -// Security check -$socid=0; -$id = GETPOST('id','int'); -$ref = GETPOST('ref','alpha'); -if ($user->societe_id) $socid=$user->societe_id; -$result = restrictedArea($user, 'prelevement', $id); - - -llxHeader('','Bon de prelevement'); - -$form = new Form($db); - -if ($id > 0 || ! empty($ref)) -{ - $object = new BonPrelevement($db,""); - - if ($object->fetch($id) == 0) - { - $head = prelevement_prepare_head($object); - dol_fiche_head($head, 'preview', 'Prelevement : '. $object->ref); - - print '
'; - - print ''; - print ''; - print ''; - print '
'.$langs->trans("Ref").''.$object->ref.'
'.$langs->trans("Amount").''.price($object->amount).'
'.$langs->trans("File").''; - - $relativepath = 'bon/'.$object->ref; - - print ''.$object->ref.''; - - print '

'; - - $fileimage = $conf->prelevement->dir_output.'/receipts/'.$object->ref.'.ps.png.0'; - $fileps = $conf->prelevement->dir_output.'/receipts/'.$object->ref.'.ps'; - - // Conversion du PDF en image png si fichier png non existant - if (!file_exists($fileimage)) - { - if (class_exists("Imagick")) - { - $ret = dol_convert_file($file,'png',$fileimage); - if ($ret < 0) $error++; - } - else - { - $langs->load("errors"); - print ''.$langs->trans("ErrorNoImagickReadimage").''; - } - } - - if (file_exists($fileimage)) - { - print ''; - - } - - dol_fiche_end(); - } - else - { - dol_print_error($db); - } -} - -llxFooter(); diff --git a/htdocs/compta/prelevement/class/bonprelevement.class.php b/htdocs/compta/prelevement/class/bonprelevement.class.php index 87bab387344..66a1c81e8e9 100644 --- a/htdocs/compta/prelevement/class/bonprelevement.class.php +++ b/htdocs/compta/prelevement/class/bonprelevement.class.php @@ -821,7 +821,9 @@ class BonPrelevement extends CommonObject { $bac = new CompanyBankAccount($this->db); $bac->fetch(0,$soc->id); + if ($bac->verif() >= 1) + //if (true) { $factures_prev[$i] = $fac; /* second tableau necessaire pour BonPrelevement */ @@ -1226,26 +1228,24 @@ class BonPrelevement extends CommonObject * @return int 0 if OK, <0 if KO */ //TODO: Optimize code to read lines in a single function - function Generate() + function generate() { global $conf,$langs,$mysoc; $result = 0; - dol_syslog(get_class($this)."::Generate build file ".$this->filename); + dol_syslog(get_class($this)."::generate build file ".$this->filename); $this->file = fopen($this->filename,"w"); $found=0; // Build file for European countries - if (! $mysoc->isInEEC()) + if ($mysoc->isInEEC()) { $found++; /** - * SECTION CREATION FICHIER SEPA - * SECTION CREATION FICHIER SEPA * SECTION CREATION FICHIER SEPA */ // SEPA Initialisation @@ -1308,8 +1308,6 @@ class BonPrelevement extends CommonObject } /** - * SECTION CREATION FICHIER SEPA - * SECTION CREATION FICHIER SEPA * SECTION CREATION FICHIER SEPA */ // SEPA File Header @@ -1401,11 +1399,14 @@ class BonPrelevement extends CommonObject } } else - { + { $result = -2; } + $langs->load('withdrawals'); - fputs($this->file, $langs->trans('WithdrawalFileNotCapable')); + + // TODO Add here code to generate a generic file + fputs($this->file, $langs->trans('WithdrawalFileNotCapable', $mysoc->country_code)); } fclose($this->file); diff --git a/htdocs/compta/prelevement/class/rejetprelevement.class.php b/htdocs/compta/prelevement/class/rejetprelevement.class.php index 27ae87ca3b4..d0b467f294b 100644 --- a/htdocs/compta/prelevement/class/rejetprelevement.class.php +++ b/htdocs/compta/prelevement/class/rejetprelevement.class.php @@ -173,7 +173,8 @@ class RejetPrelevement } //Tag invoice as unpaid dol_syslog("RejetPrelevement::Create set_unpaid fac ".$fac->ref); - $fac->set_unpaid($fac->id, $user); + + $fac->set_unpaid($user); //TODO: Must be managed by notifications module // Send email to sender of the standing order request @@ -194,7 +195,7 @@ class RejetPrelevement } /** - * Envoi mail + * Send email to all users that has asked the withdraw request * * @param Facture $fac Invoice object * @return void diff --git a/htdocs/compta/prelevement/demandes.php b/htdocs/compta/prelevement/demandes.php index c99744f7430..364e073676b 100644 --- a/htdocs/compta/prelevement/demandes.php +++ b/htdocs/compta/prelevement/demandes.php @@ -32,7 +32,7 @@ require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; $langs->load("banks"); $langs->load("categories"); -$langs->load("widthdrawals"); +$langs->load("withdrawals"); $langs->load("companies"); // Security check diff --git a/htdocs/compta/prelevement/ligne.php b/htdocs/compta/prelevement/ligne.php index b3f9acb3570..f1617979645 100644 --- a/htdocs/compta/prelevement/ligne.php +++ b/htdocs/compta/prelevement/ligne.php @@ -105,10 +105,13 @@ if ($action == 'confirm_rejet') } } + /* * View */ +$invoicestatic=new Facture($db); + llxHeader('',$langs->trans("StandingOrder")); $h = 0; @@ -134,9 +137,7 @@ if ($id) print ''.$lipre->bon_ref.''; print ''.$langs->trans("Date").''.dol_print_date($bon->datec,'day').''; print ''.$langs->trans("Amount").''.price($lipre->amount).''; - print ''.$langs->trans("Status").''; - - print $lipre->LibStatut($lipre->statut,1).''; + print ''.$langs->trans("Status").''.$lipre->LibStatut($lipre->statut,1).''; if ($lipre->statut == 3) { @@ -215,7 +216,7 @@ if ($id) print '
'; //Confirm Button - print '
'; + print '
'; print ''; } @@ -229,13 +230,20 @@ if ($id) if ($action == '') { - if ($bon->statut == 2 && $lipre->statut == 2 && $user->rights->prelevement->bons->credit) + if ($bon->statut == 2 && $lipre->statut == 2) { - print "id\">".$langs->trans("StandingOrderReject").""; + if ($user->rights->prelevement->bons->credit) + { + print "id\">".$langs->trans("StandingOrderReject").""; + } + else + { + print "trans("NotAllowed")."\">".$langs->trans("StandingOrderReject").""; + } } else { - print "".$langs->trans("StandingOrderReject").""; + print "trans("NotPossibleForThisStatusOfWithdrawReceiptORLine")."\">".$langs->trans("StandingOrderReject").""; } } @@ -256,7 +264,7 @@ if ($id) * Liste des factures */ $sql = "SELECT pf.rowid"; - $sql.= " ,f.rowid as facid, f.facnumber as ref, f.total_ttc"; + $sql.= " ,f.rowid as facid, f.facnumber as ref, f.total_ttc, f.paye, f.fk_statut"; $sql.= " , s.rowid as socid, s.nom as name"; $sql.= " FROM ".MAIN_DB_PREFIX."prelevement_bons as p"; $sql.= " , ".MAIN_DB_PREFIX."prelevement_lignes as pl"; @@ -287,7 +295,7 @@ if ($id) print"\n\n"; print ''; print ''; - print ''; + print ''; print ''; $var=True; @@ -312,6 +320,11 @@ if ($id) print '\n"; + print '\n"; + print "\n"; $i++; diff --git a/htdocs/core/lib/prelevement.lib.php b/htdocs/core/lib/prelevement.lib.php index 257f13558ee..53f54d66f70 100644 --- a/htdocs/core/lib/prelevement.lib.php +++ b/htdocs/core/lib/prelevement.lib.php @@ -44,14 +44,6 @@ function prelevement_prepare_head($object) $head[$h][2] = 'prelevement'; $h++; - if (! empty($conf->global->MAIN_USE_PREVIEW_TABS)) - { - $head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/bon.php?id='.$object->id; - $head[$h][1] = $langs->trans("Preview"); - $head[$h][2] = 'preview'; - $h++; - } - $head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/lignes.php?id='.$object->id; $head[$h][1] = $langs->trans("Lines"); $head[$h][2] = 'lines'; diff --git a/htdocs/langs/en_US/withdrawals.lang b/htdocs/langs/en_US/withdrawals.lang index dccee9d0c8e..35cfa23d9e2 100644 --- a/htdocs/langs/en_US/withdrawals.lang +++ b/htdocs/langs/en_US/withdrawals.lang @@ -16,6 +16,7 @@ WithdrawedBills=Withdrawn invoices WithdrawalsLines=Withdrawal lines RequestStandingOrderToTreat=Request for standing orders to process RequestStandingOrderTreated=Request for standing orders processed +NotPossibleForThisStatusOfWithdrawReceiptORLine=Not yet possible. Withdraw status must be set to 'credited' before declaring reject on specific lines. CustomersStandingOrders=Customer standing orders CustomerStandingOrder=Customer standing order NbOfInvoiceToWithdraw=Nb. of invoice with withdraw request @@ -76,7 +77,7 @@ WithBankUsingRIB=For bank accounts using RIB WithBankUsingBANBIC=For bank accounts using IBAN/BIC/SWIFT BankToReceiveWithdraw=Bank account to receive withdraws CreditDate=Credit on -WithdrawalFileNotCapable=Unable to generate withdrawal receipt file for your country +WithdrawalFileNotCapable=Unable to generate withdrawal receipt file for your country %s (Your country is not supported) ShowWithdraw=Show Withdraw IfInvoiceNeedOnWithdrawPaymentWontBeClosed=However, if invoice has at least one withdrawal payment not yet processed, it won't be set as paid to allow prior withdrawal management. DoStandingOrdersBeforePayments=This tab allows you to request a standing order. Once it is complete, you can type the payment to close the invoice. From eadb10e71e6b6b9b0479e0926b21a2eb6a08ea6c Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Wed, 5 Nov 2014 22:31:23 +0100 Subject: [PATCH 26/34] Trad: update es_ES from transifex --- htdocs/langs/es_ES/admin.lang | 24 ++++++++++++--------- htdocs/langs/es_ES/agenda.lang | 14 ++++++------- htdocs/langs/es_ES/bills.lang | 30 +++++++++++++-------------- htdocs/langs/es_ES/boxes.lang | 25 +++++++++++++--------- htdocs/langs/es_ES/companies.lang | 2 +- htdocs/langs/es_ES/deliveries.lang | 2 ++ htdocs/langs/es_ES/donations.lang | 2 +- htdocs/langs/es_ES/errors.lang | 3 ++- htdocs/langs/es_ES/holiday.lang | 10 ++++----- htdocs/langs/es_ES/interventions.lang | 1 + htdocs/langs/es_ES/mails.lang | 4 ++-- htdocs/langs/es_ES/main.lang | 5 +++-- htdocs/langs/es_ES/margins.lang | 4 +++- htdocs/langs/es_ES/members.lang | 4 ++-- htdocs/langs/es_ES/other.lang | 2 +- htdocs/langs/es_ES/products.lang | 10 ++++----- htdocs/langs/es_ES/projects.lang | 2 +- htdocs/langs/es_ES/propal.lang | 2 -- htdocs/langs/es_ES/suppliers.lang | 2 +- htdocs/langs/es_ES/users.lang | 1 + htdocs/langs/es_ES/withdrawals.lang | 4 ++-- 21 files changed, 84 insertions(+), 69 deletions(-) diff --git a/htdocs/langs/es_ES/admin.lang b/htdocs/langs/es_ES/admin.lang index 8dfcbfc080f..5e90bd39931 100644 --- a/htdocs/langs/es_ES/admin.lang +++ b/htdocs/langs/es_ES/admin.lang @@ -484,7 +484,7 @@ Module500Desc=Gestión de los gastos especiales como impuestos, gastos sociales, Module510Name=Salarios Module510Desc=Gestión de salarios y pagos Module600Name=Notificaciones -Module600Desc=Envío de notificaciones (por correo electrónico) sobre los eventos de trabajo Dolibarr +Module600Desc=Envío de notificaciones por e-mail en algunos eventos de negocio de Dolibarr a contactos de terceros (configurado en cada tercero) Module700Name=Donaciones Module700Desc=Gestión de donaciones Module1200Name=Mantis @@ -514,7 +514,7 @@ Module5000Name=Multi-empresa Module5000Desc=Permite gestionar varias empresas Module6000Name=Flujo de trabajo Module6000Desc=Gestión del flujo de trabajo -Module20000Name=Días libres +Module20000Name=Quitar gestión de vacaciones Module20000Desc=Gestión de los días libres de los empleados Module39000Name=Lotes de productos Module39000Desc=Gestión de lotes y fechas de caducidad y venta de los productos @@ -522,8 +522,8 @@ Module50000Name=PayBox Module50000Desc=Módulo para proporcionar un pago en línea con tarjeta de crédito mediante Paybox Module50100Name=TPV Module50100Desc=Terminal Punto de Venta para la venta en mostrador -Module50200Name= Paypal -Module50200Desc= Módulo para proporcionar un pago en línea con tarjeta de crédito mediante Paypal +Module50200Name=Paypal +Module50200Desc=Módulo para proporcionar un pago en línea con tarjeta de crédito mediante Paypal Module50400Name=Contabilidad (avanzada) Module50400Desc=Gestión contable (doble partida) Module54000Name=PrintIPP @@ -611,10 +611,11 @@ Permission162=Crear/modificar contratos de servicio Permission163=Activar los servicios de un contrato Permission164=Desactivar los servicios de un contrato Permission165=Eliminar contratos -Permission171=Leer los desplazamientos -Permission172=Crear/modificar los desplazamientos -Permission173=Eliminar desplazamientos -Permission178=Exportar desplazamientos +Permission171=Leer honorarios (propios y de sus subordinados) +Permission172=Crear/modificar honorarios +Permission173=Eliminar honorarios +Permission174=Leer todos los honorarios +Permission178=Exportar honorarios Permission180=Consultar proveedores Permission181=Consultar pedidos a proveedores Permission182=Crear/modificar pedidos a proveedores @@ -1074,7 +1075,7 @@ ModuleCompanyCodeAquarium=Devuelve un código contable compuesto de
%s seguid ModuleCompanyCodePanicum=Devuelve un código contable vacío. ModuleCompanyCodeDigitaria=Devuelve un código contable compuesto siguiendo el código de tercero. El código está formado por carácter ' C ' en primera posición seguido de los 5 primeros caracteres del código tercero. UseNotifications=Usar notificaciones -NotificationsDesc=La función de las notificaciones permite enviar automáticamente un correo electrónico para un determinado evento Dolibarr en las empresas configuradas para ello +NotificationsDesc=La función de las notificaciones permite enviar automáticamente un e-mail para algunos eventos de Dolibarr. Los destinatarios de las notificaciones pueden definirse:
* por contactos de terceros (clientes o proveedores), un tercero a la vez.
* o configurando un destinatario global en la configuración del módulo. ModelModules=Modelos de documentos DocumentModelOdt=Generación desde los documentos OpenDocument (Archivo .ODT OpenOffice, KOffice, TextEdit,...) WatermarkOnDraft=Marca de agua en los documentos borrador @@ -1146,6 +1147,7 @@ HideTreadedOrders=Ocultar del listado los pedidos tratados o cancelados ValidOrderAfterPropalClosed=Validar el pedido después del cierre del presupuesto, permite no pasar por el pedido provisional FreeLegalTextOnOrders=Texto libre en pedidos WatermarkOnDraftOrders=Marca de agua en pedidos borrador (en caso de estar vacío) +ShippableOrderIconInList=Añadir un icono en el listado de pedidos que indica si el pedido es enviable ##### Clicktodial ##### ClickToDialSetup=Configuración del módulo Click To Dial ClickToDialUrlDesc=URL de llamada haciendo click en el icono teléfono.
La URL completa de llamada será: URL?login=...&password=...&caller=...&called=telellamada @@ -1384,7 +1386,8 @@ MailingEMailError=E-Mail de respuesta (Errors-to) para las respuestas acerca de ##### Notification ##### NotificationSetup=Configuración del módulo notificaciones NotificationEMailFrom=E-Mail emisor (From) de los correos enviados a través de notificaciones -ListOfAvailableNotifications=Listado de notificaciones disponibles (depende de los módulos activados) +ListOfAvailableNotifications=Listado de eventos que se pueden configurar para notificar para cada tercero (entrar a la ficha del tercero para configurar) o configurando un e-mail fijo (El listado depende de los módulos activados) +FixedEmailTarget=Destinatario fijo ##### Sendings ##### SendingsSetup=Configuración del módulo Expediciones SendingsReceiptModel=Modelo de notas de entrega @@ -1535,6 +1538,7 @@ DeleteFiscalYear=Eliminar año fiscal ConfirmDeleteFiscalYear=¿Está seguro de querer eliminar este año fiscal? Opened=Abierto Closed=Cerrado +AlwaysEditable=Puede editarse siempre Format=Formatear TypePaymentDesc=0:Pago cliente,1:Pago proveedor,2:Tanto pago de cliente como de proveedor diff --git a/htdocs/langs/es_ES/agenda.lang b/htdocs/langs/es_ES/agenda.lang index 839bbbdceba..c357756f95a 100644 --- a/htdocs/langs/es_ES/agenda.lang +++ b/htdocs/langs/es_ES/agenda.lang @@ -7,10 +7,10 @@ Agendas=Agendas Calendar=Calendario Calendars=Calendarios LocalAgenda=Calendario interno -ActionsOwnedBy=Evento asignado a +ActionsOwnedBy=Acontecimiento asignado a AffectedTo=Asignada a DoneBy=Realizado por -Event=Evento +Event=Acontecimiento Events=Eventos EventsNb=Número de eventos MyEvents=Mis eventos @@ -23,12 +23,12 @@ MenuToDoActions=Eventos incompletos MenuDoneActions=Eventos terminados MenuToDoMyActions=Mis eventos incompletos MenuDoneMyActions=Mis eventos terminados -ListOfEvents=Listado de eventos (calendario interno) +ListOfEvents=lista de acontecimientos (calendario interno) ActionsAskedBy=Eventos registrados por ActionsToDoBy=Eventos asignados a ActionsDoneBy=Eventos realizados por -ActionsForUser=Eventos del usuario -ActionsForUsersGroup=Eventos de todos los usuarios del grupo +ActionsForUser=Acontecimientos del usuario +ActionsForUsersGroup=Acontecimientos de todos los usuarios del grupo AllMyActions= Todos mis eventos/tareas AllActions= Todos los eventos/tareas ViewList=Vista listado @@ -72,7 +72,7 @@ AgendaUrlOptions1=Puede también añadir estos parámetros al filtro de salida: AgendaUrlOptions2=login=%s para restringir inserciones a acciones creadas , que afecten o realizadas por el usuario %s. AgendaUrlOptions3=logina=%s para restringir inserciones a acciones creadas por el usuario %s. AgendaUrlOptions4=logint=%s para restringir inserciones a acciones que afecten al usuario %s. -AgendaUrlOptions5=logind=%s para restringir inserciones a acciones realizadas por el usuario %s. +AgendaUrlOptionsProject=project=PROJECT_ID para restringir inserciones a acciones asociadas al proyecto PROJECT_ID. AgendaShowBirthdayEvents=Mostrar cumpleaños de los contactos AgendaHideBirthdayEvents=Ocultar cumpleaños de los contactos Busy=Ocupado @@ -89,5 +89,5 @@ ExtSiteUrlAgenda=Url de acceso al archivo .ical ExtSiteNoLabel=Sin descripción WorkingTimeRange=Rango temporal WorkingDaysRange=Rango diario -AddEvent=Añadir evento +AddEvent=Crear evento MyAvailability=Mi disponibilidad diff --git a/htdocs/langs/es_ES/bills.lang b/htdocs/langs/es_ES/bills.lang index f9d7f316b04..e5f939a753f 100644 --- a/htdocs/langs/es_ES/bills.lang +++ b/htdocs/langs/es_ES/bills.lang @@ -28,8 +28,8 @@ InvoiceAvoir=Abono InvoiceAvoirAsk=Abono para corregir la factura InvoiceAvoirDesc=El abono es una factura negativa destinada a compensar un importe de factura que difiere del importe realmente pagado (por haber pagado de más o por devolución de productos, por ejemplo). invoiceAvoirWithLines=Crear abono con las líneas de la factura original -invoiceAvoirWithPaymentRestAmount=Crear abono con el importe pendiente de la factura origen -invoiceAvoirLineWithPaymentRestAmount=Abono del importe pendiente de la factura +invoiceAvoirWithPaymentRestAmount=Crear abono con el resto a cobrar de la factura origen +invoiceAvoirLineWithPaymentRestAmount=Abono del resto por cobrar ReplaceInvoice=Rectificar la factura %s ReplacementInvoice=Rectificación factura ReplacedByInvoice=Rectificada por la factura %s @@ -156,9 +156,9 @@ ConfirmCancelBill=¿Está seguro de querer anular la factura %s ? ConfirmCancelBillQuestion=¿Por qué razón quiere abandonar la factura? ConfirmClassifyPaidPartially=¿Está seguro de querer clasificar la factura %s como pagada? ConfirmClassifyPaidPartiallyQuestion=Esta factura no ha sido totalmente pagada. ¿Por qué quiere clasificarla como pagada? -ConfirmClassifyPaidPartiallyReasonAvoir=El resto a pagar (%s %s) se ha regularizado (ya que artículo se ha devuelto, olvidado entregar, descuento no definido...) mediante un abono -ConfirmClassifyPaidPartiallyReasonDiscountNoVat=El resto a pagar (%s %s) es un descuento acordado después de la factura. Acepto perder el IVA de este descuento -ConfirmClassifyPaidPartiallyReasonDiscountVat=El resto a pagar(%s %s) es un descuento +ConfirmClassifyPaidPartiallyReasonAvoir=El resto a pagar (%s %s) es un descuento otorgado por pronto pago. Regularizaré el IVA con un abono. +ConfirmClassifyPaidPartiallyReasonDiscountNoVat=El resto a pagar (%s %s) es un descuento otorgado por pronto pago. Acepto perder el IVA en este descuento. +ConfirmClassifyPaidPartiallyReasonDiscountVat=El resto a pagar (%s %s) es un descuento otorgado por pronto pago. Recuperaré el IVA sin usar un abono. ConfirmClassifyPaidPartiallyReasonBadCustomer=Cliente moroso ConfirmClassifyPaidPartiallyReasonProductReturned=Productos devueltos en parte ConfirmClassifyPaidPartiallyReasonOther=Por otra razón @@ -191,9 +191,9 @@ AlreadyPaid=Ya pagado AlreadyPaidBack=Ya reembolsado AlreadyPaidNoCreditNotesNoDeposits=Ya pagado (excluidos los abonos y anticipos) Abandoned=Abandonada -RemainderToPay=Queda por pagar -RemainderToTake=Queda por cobrar -RemainderToPayBack=Queda por reembolsar +RemainderToPay=Resta por pagar +RemainderToTake=Resta por cobrar +RemainderToPayBack=Resta por reembolsar Rest=Pendiente AmountExpected=Importe reclamado ExcessReceived=Recibido en exceso @@ -225,13 +225,13 @@ NonPercuRecuperable=No percibido recuperable SetConditions=Definir condiciones de pago SetMode=Definir modo de pago Billed=Facturado -RepeatableInvoice=Factura recurrente -RepeatableInvoices=Facturas recurrentes -Repeatable=Recurrente -Repeatables=Recurrentes -ChangeIntoRepeatableInvoice=Convertir en recurrente -CreateRepeatableInvoice=Crear factura recurrente -CreateFromRepeatableInvoice=Crear desde factura recurrente +RepeatableInvoice=Plantilla de factura +RepeatableInvoices=Plantilla de facturas +Repeatable=Plantilla +Repeatables=Plantillas +ChangeIntoRepeatableInvoice=Convertir en plantilla +CreateRepeatableInvoice=Crear plantilla de factura +CreateFromRepeatableInvoice=Crear desde plantilla de factura CustomersInvoicesAndInvoiceLines=Facturas a clientes y líneas de facturas CustomersInvoicesAndPayments=Facturas a clientes y pagos ExportDataset_invoice_1=Facturas a clientes y líneas de factura diff --git a/htdocs/langs/es_ES/boxes.lang b/htdocs/langs/es_ES/boxes.lang index 5038f138113..56353b2006e 100644 --- a/htdocs/langs/es_ES/boxes.lang +++ b/htdocs/langs/es_ES/boxes.lang @@ -12,6 +12,7 @@ BoxLastProspects=Últimos clientes potenciales modificados BoxLastCustomers=Últimos clientes modificados BoxLastSuppliers=Últimos proveedores modificados BoxLastCustomerOrders=Últimos pedidos +BoxLastValidatedCustomerOrders=Últimos pedidos de clientes validados BoxLastBooks=Últimos books BoxLastActions=Últimos eventos BoxLastContracts=Últimos contratos @@ -27,26 +28,29 @@ BoxTitleNbOfCustomers=Número de clientes BoxTitleLastRssInfos=Las %s últimas infos de %s BoxTitleLastProducts=Los %s últimos productos/servicios registrados BoxTitleProductsAlertStock=Productos en alerta de stock -BoxTitleLastCustomerOrders=Los %s últimos pedidos de clientes modificados +BoxTitleLastCustomerOrders=Últimos %s pedidos de clientes +BoxTitleLastModifiedCustomerOrders=Últimos %s pedidos de clientes modificados BoxTitleLastSuppliers=Los %s últimos proveedores registrados BoxTitleLastCustomers=Los %s últimos clientes registrados BoxTitleLastModifiedSuppliers=Los %s últimos proveedores modificados BoxTitleLastModifiedCustomers=Los %s últimos clientes modificados -BoxTitleLastCustomersOrProspects=Los %s últimos clientes o clientes potenciales registrados -BoxTitleLastPropals=Los %s últimos presupuestos registrados +BoxTitleLastCustomersOrProspects=Últimos %s clientes o clientes potenciales +BoxTitleLastPropals=Últimos %s presupuestos +BoxTitleLastModifiedPropals=Últimos %s presupuestos modificados BoxTitleLastCustomerBills=Las %s últimas facturas a clientes modificadas +BoxTitleLastModifiedCustomerBills=Últimas %s facturas a clientes modificadas BoxTitleLastSupplierBills=Las %s últimas facturas de proveedores modificadas -BoxTitleLastProspects=Los %s últimos clientes potenciales registrados +BoxTitleLastModifiedSupplierBills=Últimas %s facturas de proveedores modificadas BoxTitleLastModifiedProspects=Los %s últimos clientes potenciales modificados BoxTitleLastProductsInContract=Los %s últimos productos/servicios contratados -BoxTitleLastModifiedMembers=Los %s últimos miembros modificados +BoxTitleLastModifiedMembers=Últimos %s miembros BoxTitleLastFicheInter=Las %s últimas intervenciones modificadas -BoxTitleOldestUnpaidCustomerBills=Las %s facturas más antiguas a clientes pendientes de cobro -BoxTitleOldestUnpaidSupplierBills=Las %s facturas más antiguas de proveedores pendientes de pago +BoxTitleOldestUnpaidCustomerBills=%s facturas a clientes más antiguras pendientes de cobro +BoxTitleOldestUnpaidSupplierBills=%s facturas de proveedores más antiguas pendientes de pago BoxTitleCurrentAccounts=Balances de cuentas abiertas BoxTitleSalesTurnover=Volumen de ventas realizado -BoxTitleTotalUnpaidCustomerBills=Pendiente de clientes -BoxTitleTotalUnpaidSuppliersBills=Pendiente a proveedores +BoxTitleTotalUnpaidCustomerBills=Facturas a clientes pendientes de cobro +BoxTitleTotalUnpaidSuppliersBills=Facturas de proveedores pendientes de pago BoxTitleLastModifiedContacts=Los %s últimos contactos/direcciones modificadas BoxMyLastBookmarks=Mis %s últimos marcadores BoxOldestExpiredServices=Servicios antiguos expirados @@ -76,7 +80,8 @@ NoContractedProducts=Sin productos/servicios contratados NoRecordedContracts=Sin contratos registrados NoRecordedInterventions=Sin intervenciones guardadas BoxLatestSupplierOrders=Últimos pedidos a proveedores -BoxTitleLatestSupplierOrders=Los %s últimos pedidos a proveedores +BoxTitleLatestSupplierOrders=Últimos %s pedidos a proveedores +BoxTitleLatestModifiedSupplierOrders=Últimos %s pedidos a proveedores modificados NoSupplierOrder=Sin pedidos a proveedores BoxCustomersInvoicesPerMonth=Facturas a clientes por mes BoxSuppliersInvoicesPerMonth=Facturas de proveedores por mes diff --git a/htdocs/langs/es_ES/companies.lang b/htdocs/langs/es_ES/companies.lang index 9fa3e27be18..f86ea312ac3 100644 --- a/htdocs/langs/es_ES/companies.lang +++ b/htdocs/langs/es_ES/companies.lang @@ -379,7 +379,7 @@ DeliveryAddressLabel=Etiqueta de envío DeleteDeliveryAddress=Eliminar una dirección de envío ConfirmDeleteDeliveryAddress=¿Está seguro de querer eliminar esta dirección de envío? NewDeliveryAddress=Nueva dirección de envío -AddDeliveryAddress=Añadir la dirección +AddDeliveryAddress=Crear dirección AddAddress=Crear dirección NoOtherDeliveryAddress=No hay direcciones alternativas definidas SupplierCategory=Categoría de proveedor diff --git a/htdocs/langs/es_ES/deliveries.lang b/htdocs/langs/es_ES/deliveries.lang index 4cfe6c90065..6dbcd26544c 100644 --- a/htdocs/langs/es_ES/deliveries.lang +++ b/htdocs/langs/es_ES/deliveries.lang @@ -24,3 +24,5 @@ Deliverer=Destinatario : Sender=Origen Recipient=Destinatario ErrorStockIsNotEnough=No hay suficiente stock +Shippable=Enviable +NonShippable=No enviable diff --git a/htdocs/langs/es_ES/donations.lang b/htdocs/langs/es_ES/donations.lang index 31c89f77209..064e6587789 100644 --- a/htdocs/langs/es_ES/donations.lang +++ b/htdocs/langs/es_ES/donations.lang @@ -4,7 +4,7 @@ Donations=Donaciones DonationRef=Ref. donación Donor=Donante Donors=Donantes -AddDonation=Añadir donación +AddDonation=Crear una donación NewDonation=Nueva donación ShowDonation=Mostrar donación DonationPromise=Promesa de donación diff --git a/htdocs/langs/es_ES/errors.lang b/htdocs/langs/es_ES/errors.lang index bccee64bcfc..7ac24f97c46 100644 --- a/htdocs/langs/es_ES/errors.lang +++ b/htdocs/langs/es_ES/errors.lang @@ -37,7 +37,7 @@ ErrorSupplierCodeRequired=Código proveedor obligatorio ErrorSupplierCodeAlreadyUsed=Código de proveedor ya utilizado ErrorBadParameters=Parámetros incorrectos ErrorBadValueForParameter=Valor '%s' incorrecto para el parámetro '%s' -ErrorBadImageFormat=La imagen no tiene un formato reconocido +ErrorBadImageFormat=El archivo de imagen es de un formato no soportado (Su PHP no soporta las funciones de conversión de este formato de imagen) ErrorBadDateFormat=El valor '%s' tiene un formato de fecha no reconocido ErrorWrongDate=¡La fecha no es correcta! ErrorFailedToWriteInDir=Imposible escribir en el directorio %s @@ -114,6 +114,7 @@ ErrorLoginDoesNotExists=La cuenta de usuario de %s no se ha encontrado. ErrorLoginHasNoEmail=Este usuario no tiene e-mail. Imposible continuar. ErrorBadValueForCode=Valor incorrecto para el código. Vuelva a intentar con un nuevo valor... ErrorBothFieldCantBeNegative=Los campos %s y %s no pueden ser negativos +ErrorQtyForCustomerInvoiceCantBeNegative=Las cantidades en las líneas de facturas a clientes no pueden ser negativas ErrorWebServerUserHasNotPermission=La cuenta de ejecución del servidor web %s no dispone de los permisos para esto ErrorNoActivatedBarcode=No hay activado ningún tipo de código de barras ErrUnzipFails=No se ha podido descomprimir el archivo %s con ZipArchive diff --git a/htdocs/langs/es_ES/holiday.lang b/htdocs/langs/es_ES/holiday.lang index 60e8fc0327f..78cd612783e 100644 --- a/htdocs/langs/es_ES/holiday.lang +++ b/htdocs/langs/es_ES/holiday.lang @@ -53,7 +53,7 @@ CantUpdate=No puede actualizar esta petición de vacaciones. NoDateDebut=Debe indicar una fecha de inicio. NoDateFin=Debe indicar una fecha de fin. ErrorDureeCP=Su petición de vacaciones no contiene ningún día hábil. -TitleValidCP=Validar la petición de vacaciones +TitleValidCP=Aprobar la petición de vacaciones ConfirmValidCP=¿Está seguro de querer validar esta petición de vacaciones? DateValidCP=Fecha de validación TitleToValidCP=Enviar la petición de vacaciones @@ -61,7 +61,7 @@ ConfirmToValidCP=¿Está seguro de querer enviar la petición de vacaciones? TitleRefuseCP=Rechazar la petición de vacaciones ConfirmRefuseCP=¿Está seguro de querer rechazar la petición de vacaciones? NoMotifRefuseCP=Debe seleccionar un motivo para rechazar esta petición. -TitleCancelCP=Anular la petición de vacaciones +TitleCancelCP=Cancelar la petición de vacaciones ConfirmCancelCP=¿Está seguro de querer anular la petición de vacaciones? DetailRefusCP=Motivo del rechazo DateRefusCP=Fecha del rechazo @@ -88,7 +88,7 @@ ManualUpdate=Actualización manual HolidaysCancelation=Anulación vacaciones ## Configuration du Module ## -ConfCP=Configuración del módulo Vacaciones +ConfCP=Configuración del módulo de vacaciones DescOptionCP=Descripción de la opción ValueOptionCP=Valor GroupToValidateCP=Grupo con posibilidad de aprobar las vacaciones @@ -97,13 +97,13 @@ LastUpdateCP=Última actualización automática de vacaciones UpdateConfCPOK=Actualización efectuada correctamente. ErrorUpdateConfCP=Se ha producido un error durante la actualización, vuélvalo a intentar. AddCPforUsers=Añada los saldos de vacaciones de los usuarios haciendo clic aquí. -DelayForSubmitCP=Antelación mínima para solicitar vacaciones +DelayForSubmitCP=Fecha límite para realizar peticiones de vacaciones AlertapprobatortorDelayCP=Advertir al validador si la petición no corresponde a la fecha límite AlertValidatorDelayCP=Advertir al usuario validador si la petición no respeta el límite previsto AlertValidorSoldeCP=Advertir al usuario validador si el usuario pide vacaciones superiores a su saldo nbUserCP=Número de usuarios tomados en cuenta en el módulo vacaciones nbHolidayDeductedCP=Número de días retribuídos a deducir por día de vacaciones -nbHolidayEveryMonthCP=Número de días de vacaciones añadidos por mes +nbHolidayEveryMonthCP=Número de vacaciones añadidas por mes Module27130Name= Gestion de las vacaciones Module27130Desc= Gestión de días libres TitleOptionMainCP=Ajustes principales de vacaciones diff --git a/htdocs/langs/es_ES/interventions.lang b/htdocs/langs/es_ES/interventions.lang index 4f838816de2..f973ac56e78 100644 --- a/htdocs/langs/es_ES/interventions.lang +++ b/htdocs/langs/es_ES/interventions.lang @@ -30,6 +30,7 @@ StatusInterInvoiced=Facturado RelatedInterventions=Intervenciones adjuntas ShowIntervention=Mostrar intervención SendInterventionRef=Envío de la intervención %s +SendInterventionByMail=Enviar intervención por e-mail ##### Types de contacts ##### TypeContact_fichinter_internal_INTERREPFOLL=Responsable seguimiento de la intervención TypeContact_fichinter_internal_INTERVENING=Interventor diff --git a/htdocs/langs/es_ES/mails.lang b/htdocs/langs/es_ES/mails.lang index 9c2dd9f8d4e..233ad054aa1 100644 --- a/htdocs/langs/es_ES/mails.lang +++ b/htdocs/langs/es_ES/mails.lang @@ -133,6 +133,6 @@ Notifications=Notificaciones NoNotificationsWillBeSent=Ninguna notificación por e-mail está prevista para este evento y empresa ANotificationsWillBeSent=1 notificación va a ser enviada por e-mail SomeNotificationsWillBeSent=%s notificaciones van a ser enviadas por e-mail -AddNewNotification=Activar una nueva solicitud de notificación -ListOfActiveNotifications=Lista de las solicitudes de notificaciones activas +AddNewNotification=Activar un nuevo objetivo de notificación +ListOfActiveNotifications=Listado de todos los objetivos de notificación ListOfNotificationsDone=Lista de notificaciones de e-mails enviadas diff --git a/htdocs/langs/es_ES/main.lang b/htdocs/langs/es_ES/main.lang index a9f20e07d72..862ed1a9495 100644 --- a/htdocs/langs/es_ES/main.lang +++ b/htdocs/langs/es_ES/main.lang @@ -58,12 +58,12 @@ ErrorCantLoadUserFromDolibarrDatabase=Imposible encontrar el usuario %s e ErrorNoVATRateDefinedForSellerCountry=Error, ningún tipo de IVA definido para el país '%s'. ErrorNoSocialContributionForSellerCountry=Error, ningún tipo de carga social definida para el país '%s'. ErrorFailedToSaveFile=Error, el registro del archivo falló. -ErrorOnlyPngJpgSupported=Error, solamente se soportan los formatos de imagen jpg y png. -ErrorImageFormatNotSupported=Su PHP no soporta las funciones de conversión de este formato de imagen. SetDate=Fijar fecha SelectDate=Seleccione una fecha SeeAlso=Ver también %s BackgroundColorByDefault=Color de fondo +FileNotUploaded=No se ha subido el archivo +FileUploaded=El archivo se ha subido correctamente FileWasNotUploaded=Un archivo ha sido seleccionado para adjuntarlo, pero aún no se ha subido. Haga clic en "Adjuntar este archivo" para ello. NbOfEntries=Nº de entradas GoToWikiHelpPage=Consultar la ayuda (puede requerir acceso a Internet) @@ -341,6 +341,7 @@ FullList=Listado completo Statistics=Estadísticas OtherStatistics=Otras estadísticas Status=Estado +Favorite=Favorito ShortInfo=Info. Ref=Ref. RefSupplier=Ref. proveedor diff --git a/htdocs/langs/es_ES/margins.lang b/htdocs/langs/es_ES/margins.lang index 23b8e9acd90..f1c356ab871 100644 --- a/htdocs/langs/es_ES/margins.lang +++ b/htdocs/langs/es_ES/margins.lang @@ -38,4 +38,6 @@ BuyingCost=Costos UnitCharges=Carga unitaria Charges=Cargas AgentContactType=Tipo de contacto comisionado -AgentContactTypeDetails=Indica el tipo de contacto enlazado a las facturas que serán asociados a los agentes comerciales +AgentContactTypeDetails=Indique qué tipo de contacto (enlazado a las facturas) será el utilizado para el informe de márgenes de agentes comerciales +rateMustBeNumeric=El margen debe ser un valor numérico +markRateShouldBeLesserThan100=El margen tiene que ser menor que 100 diff --git a/htdocs/langs/es_ES/members.lang b/htdocs/langs/es_ES/members.lang index ebccec6be14..dd1989dbb48 100644 --- a/htdocs/langs/es_ES/members.lang +++ b/htdocs/langs/es_ES/members.lang @@ -85,7 +85,7 @@ SubscriptionLateShort=En retraso SubscriptionNotReceivedShort=No recibida ListOfSubscriptions=Listado de afiliaciones SendCardByMail=Enviar ficha por e-mail -AddMember=Añadir miembro +AddMember=Crear miembro NoTypeDefinedGoToSetup=Ningún tipo de miembro definido. Vaya a Configuración -> Tipos de miembros NewMemberType=Nuevo tipo de miembro WelcomeEMail=E-mail @@ -125,7 +125,7 @@ Date=Fecha DateAndTime=Fecha y hora PublicMemberCard=Ficha pública miembro MemberNotOrNoMoreExpectedToSubscribe=No sometida a cotización -AddSubscription=Añadir afiliación +AddSubscription=Crear afiliación ShowSubscription=Mostrar afiliación MemberModifiedInDolibarr=Miembro modificado en Dolibarr SendAnEMailToMember=Enviar e-mail de información al miembro (E-mail: %s) diff --git a/htdocs/langs/es_ES/other.lang b/htdocs/langs/es_ES/other.lang index 107c47e0cf8..9de70d01f95 100644 --- a/htdocs/langs/es_ES/other.lang +++ b/htdocs/langs/es_ES/other.lang @@ -1,7 +1,6 @@ # Dolibarr language file - Source file is en_US - other SecurityCode=Código seguridad Calendar=Calendario -AddTrip=Crear honorario Tools=Utilidades ToolsDesc=Esta área está dedicada al reagrupamiento de diversas utilidades no disponibles en las otras entradas de menú.

La lista de estas utilidades es accesible mediante el menú de al lado. Birthday=Aniversario @@ -48,6 +47,7 @@ Notify_PROJECT_CREATE=Creación de proyecto Notify_TASK_CREATE=Tarea creada Notify_TASK_MODIFY=Tarea modificada Notify_TASK_DELETE=Tarea eliminada +SeeModuleSetup=Consulte la configuración del módulo NbOfAttachedFiles=Número archivos/documentos adjuntos TotalSizeOfAttachedFiles=Tamaño total de los archivos/documentos adjuntos MaxSize=Tamaño máximo diff --git a/htdocs/langs/es_ES/products.lang b/htdocs/langs/es_ES/products.lang index c07cb7c7485..1a4726afcc2 100644 --- a/htdocs/langs/es_ES/products.lang +++ b/htdocs/langs/es_ES/products.lang @@ -117,12 +117,12 @@ ServiceLimitedDuration=Si el servicio es de duración limitada : MultiPricesAbility=Varios niveles de precio por producto/servicio MultiPricesNumPrices=Nº de precios MultiPriceLevelsName=Categoría de precios -AssociatedProductsAbility=Activar productos compuestos -AssociatedProducts=Productos compuestos +AssociatedProductsAbility=Activar la funcionalidad de productos compuestos +AssociatedProducts=Producto compuesto AssociatedProductsNumber=Nº de productos que componen este producto ParentProductsNumber=Nº de productos que este producto compone -IfZeroItIsNotAVirtualProduct=Si 0, este producto no es un producto virtual -IfZeroItIsNotUsedByVirtualProduct=Si 0, este producto no está siendo utilizado por ningún producto virtual +IfZeroItIsNotAVirtualProduct=Si 0, este producto no es un producto compuesto +IfZeroItIsNotUsedByVirtualProduct=Si 0, este producto no puede ser usado por ningún producto compuesto EditAssociate=Componer Translation=Traducción KeywordFilter=Filtro por clave @@ -179,7 +179,7 @@ CloneProduct=Clonar producto/servicio ConfirmCloneProduct=¿Está seguro de querer clonar el producto o servicio %s? CloneContentProduct=Clonar solamente la información general del producto/servicio ClonePricesProduct=Clonar la información general y los precios -CloneCompositionProduct=Clonar producto/servicio virtual +CloneCompositionProduct=Clonar productos/servicios compuestos ProductIsUsed=Este producto es utilizado NewRefForClone=Ref. del nuevo producto/servicio CustomerPrices=Precios clientes diff --git a/htdocs/langs/es_ES/projects.lang b/htdocs/langs/es_ES/projects.lang index 6a1cf66ddd0..da5a65ceb96 100644 --- a/htdocs/langs/es_ES/projects.lang +++ b/htdocs/langs/es_ES/projects.lang @@ -45,7 +45,7 @@ TaskDateStart=Fecha inicio TaskDateEnd=Fecha finalización TaskDescription=Descripción tarea NewTask=Nueva tarea -AddTask=Añadir tarea +AddTask=Crear tarea AddDuration=Indicar duración Activity=Actividad Activities=Tareas/actividades diff --git a/htdocs/langs/es_ES/propal.lang b/htdocs/langs/es_ES/propal.lang index b90258f5049..7ae23c89413 100644 --- a/htdocs/langs/es_ES/propal.lang +++ b/htdocs/langs/es_ES/propal.lang @@ -55,8 +55,6 @@ NoOpenedPropals=Sin presupuestos abiertos NoOtherOpenedPropals=Ningún otro presupuesto abierto RefProposal=Ref. presupuesto SendPropalByMail=Enviar presupuesto por e-mail -FileNotUploaded=No se ha subido el archivo -FileUploaded=El archivo se ha subido correctamente AssociatedDocuments=Documentos asociados al presupuesto: ErrorCantOpenDir=Imposible abrir el directorio DatePropal=Fecha presupuesto diff --git a/htdocs/langs/es_ES/suppliers.lang b/htdocs/langs/es_ES/suppliers.lang index 1998f61ac0c..06079f22874 100644 --- a/htdocs/langs/es_ES/suppliers.lang +++ b/htdocs/langs/es_ES/suppliers.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - suppliers Suppliers=Proveedores Supplier=Proveedor -AddSupplier=Añadir proveedor +AddSupplier=Crear un proveedor SupplierRemoved=Proveedor eliminado SuppliersInvoice=Factura proveedor NewSupplier=Nuevo proveedor diff --git a/htdocs/langs/es_ES/users.lang b/htdocs/langs/es_ES/users.lang index 65b6d8ed0a0..e27f8b111e5 100644 --- a/htdocs/langs/es_ES/users.lang +++ b/htdocs/langs/es_ES/users.lang @@ -120,3 +120,4 @@ UseTypeFieldToChange=Modificar el campo Tipo para cambiar OpenIDURL=Dirección OpenID LoginUsingOpenID=Usar OpenID para iniciar sesión WeeklyHours=Horas semanales +ColorUser=Color para el usuario diff --git a/htdocs/langs/es_ES/withdrawals.lang b/htdocs/langs/es_ES/withdrawals.lang index 6e12cbccf47..5c241d76553 100644 --- a/htdocs/langs/es_ES/withdrawals.lang +++ b/htdocs/langs/es_ES/withdrawals.lang @@ -14,8 +14,8 @@ WithdrawalReceiptShort=Orden LastWithdrawalReceipts=Las %s últimas órdenes de domiciliación WithdrawedBills=Facturas domiciliadas WithdrawalsLines=Lineas de domiciliación -RequestStandingOrderToTreat=Pedidos de domiciliaciones a tratar -RequestStandingOrderTreated=Pedidos de domiciliaciones procesados +RequestStandingOrderToTreat=Peticiones de domiciliaciones a procesar +RequestStandingOrderTreated=Peticiones de domiciliaciones procesadas CustomersStandingOrders=Domiciliaciones de clientes CustomerStandingOrder=Domiciliación cliente NbOfInvoiceToWithdraw=Nº de facturas pendientes de domiciliación From 6f9d283ddc6c3a170088abb3fc063d1449916e0f Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Thu, 6 Nov 2014 11:20:47 +0100 Subject: [PATCH 27/34] Fix: Module notifications DB Error "unknown field type" into third tab notifications --- htdocs/core/class/notify.class.php | 11 ++++++----- htdocs/install/mysql/migration/3.6.0-3.7.0.sql | 1 + htdocs/install/mysql/tables/llx_notify.sql | 2 ++ htdocs/societe/notify/card.php | 4 ++-- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/htdocs/core/class/notify.class.php b/htdocs/core/class/notify.class.php index 26506360e66..db88671f7ff 100644 --- a/htdocs/core/class/notify.class.php +++ b/htdocs/core/class/notify.class.php @@ -1,6 +1,7 @@ * Copyright (C) 2004-2011 Laurent Destailleur + * Copyright (C) 2014 Juanjo Menent * * 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 @@ -173,7 +174,7 @@ class Notify // Check notification per third party $sql = "SELECT s.nom, c.email, c.rowid as cid, c.lastname, c.firstname, c.default_lang,"; - $sql.= " a.rowid as adid, a.label, a.code, n.rowid"; + $sql.= " a.rowid as adid, a.label, a.code, n.rowid, n.type"; $sql.= " FROM ".MAIN_DB_PREFIX."socpeople as c,"; $sql.= " ".MAIN_DB_PREFIX."c_action_trigger as a,"; $sql.= " ".MAIN_DB_PREFIX."notify_def as n,"; @@ -292,8 +293,8 @@ class Notify if ($mailfile->sendfile()) { - $sql = "INSERT INTO ".MAIN_DB_PREFIX."notify (daten, fk_action, fk_soc, fk_contact, objet_type, objet_id, email)"; - $sql.= " VALUES ('".$this->db->idate(dol_now())."', ".$actiondefid.", ".$object->socid.", ".$obj->cid.", '".$object_type."', ".$object->id.", '".$this->db->escape($obj->email)."')"; + $sql = "INSERT INTO ".MAIN_DB_PREFIX."notify (daten, fk_action, fk_soc, fk_contact, type, objet_type, objet_id, email)"; + $sql.= " VALUES ('".$this->db->idate(dol_now())."', ".$actiondefid.", ".$object->socid.", ".$obj->cid.", '".$obj->type."', '".$object_type."', ".$object->id.", '".$this->db->escape($obj->email)."')"; if (! $this->db->query($sql)) { dol_print_error($this->db); @@ -421,8 +422,8 @@ class Notify if ($mailfile->sendfile()) { - $sql = "INSERT INTO ".MAIN_DB_PREFIX."notify (daten, fk_action, fk_soc, fk_contact, objet_type, objet_id, email)"; - $sql.= " VALUES ('".$this->db->idate(dol_now())."', ".$actiondefid.", ".$object->socid.", null, '".$object_type."', ".$object->id.", '".$this->db->escape($conf->global->$param)."')"; + $sql = "INSERT INTO ".MAIN_DB_PREFIX."notify (daten, fk_action, fk_soc, fk_contact, type, objet_type, objet_id, email)"; + $sql.= " VALUES ('".$this->db->idate(dol_now())."', ".$actiondefid.", ".$object->socid.", null, '".$obj->type."', '".$object_type."', ".$object->id.", '".$this->db->escape($conf->global->$param)."')"; if (! $this->db->query($sql)) { dol_print_error($this->db); diff --git a/htdocs/install/mysql/migration/3.6.0-3.7.0.sql b/htdocs/install/mysql/migration/3.6.0-3.7.0.sql index 4c31bef8055..5e1119ed4b4 100644 --- a/htdocs/install/mysql/migration/3.6.0-3.7.0.sql +++ b/htdocs/install/mysql/migration/3.6.0-3.7.0.sql @@ -28,6 +28,7 @@ insert into llx_c_action_trigger (code,label,description,elementtype,rang) value insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_CLASSIFY_BILLED','Customer proposal set billed','Executed when a customer proposal is set to billed','propal',2); ALTER TABLE llx_notify ADD COLUMN fk_soc integer NULL after fk_action; +ALTER TABLE llx_notify ADD COLUMN type varchar(16) DEFAULT 'email' after fk_soc; ALTER TABLE llx_bank_account ADD COLUMN fk_user_author integer; diff --git a/htdocs/install/mysql/tables/llx_notify.sql b/htdocs/install/mysql/tables/llx_notify.sql index 21a7b833dec..1dcfe6af8e6 100644 --- a/htdocs/install/mysql/tables/llx_notify.sql +++ b/htdocs/install/mysql/tables/llx_notify.sql @@ -1,6 +1,7 @@ -- =================================================================== -- Copyright (C) 2003 Rodolphe Quiedeville -- Copyright (C) 2009 Laurent Destailleur +-- Copyright (C) 2014 Juanjo Menent -- -- 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 @@ -26,6 +27,7 @@ create table llx_notify fk_soc integer NULL, fk_contact integer NULL, fk_user integer NULL, + type varchar(16) DEFAULT 'email', objet_type varchar(24) NOT NULL, objet_id integer NOT NULL, email varchar(255) diff --git a/htdocs/societe/notify/card.php b/htdocs/societe/notify/card.php index 542a2066e93..1845669dcfc 100644 --- a/htdocs/societe/notify/card.php +++ b/htdocs/societe/notify/card.php @@ -1,7 +1,7 @@ * Copyright (C) 2004-2014 Laurent Destailleur - * Copyright (C) 2010-2012 Juanjo Menent + * Copyright (C) 2010-2014 Juanjo Menent * * 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 @@ -376,7 +376,7 @@ if ($result > 0) print ''; // List - $sql = "SELECT n.rowid, n.daten, n.email, n.objet_type, n.objet_id as object_id, n.type,"; + $sql = "SELECT n.rowid, n.daten, n.email, n.objet_type as object_type, n.objet_id as object_id, n.type,"; $sql.= " c.rowid as id, c.lastname, c.firstname, c.email as contactemail,"; $sql.= " a.code, a.label"; $sql.= " FROM ".MAIN_DB_PREFIX."c_action_trigger as a,"; From c422024cb94145d95e1f08ca153e6f557fd3592a Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Thu, 6 Nov 2014 11:55:26 +0100 Subject: [PATCH 28/34] Trad: More accurate trad of notifications. Update form transifex --- htdocs/langs/es_ES/admin.lang | 2 +- htdocs/langs/es_ES/mails.lang | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/langs/es_ES/admin.lang b/htdocs/langs/es_ES/admin.lang index 5e90bd39931..7973d578e24 100644 --- a/htdocs/langs/es_ES/admin.lang +++ b/htdocs/langs/es_ES/admin.lang @@ -1440,7 +1440,7 @@ DetailEnabled=Condición de mostrar o no DetailRight=Condición de visualización completa o restringida DetailLangs=Archivo .lang para la traducción del título DetailUser=Interno / Externo / Todos -Target=Objetivo +Target=Destinatario DetailTarget=Comportamiento del enlace (_blank para abrir una nueva ventana) DetailLevel=Nivel (-1:menú superior, 0:principal, >0 menú y submenú) ModifMenu=Modificación del menú diff --git a/htdocs/langs/es_ES/mails.lang b/htdocs/langs/es_ES/mails.lang index 233ad054aa1..531f4ce42d5 100644 --- a/htdocs/langs/es_ES/mails.lang +++ b/htdocs/langs/es_ES/mails.lang @@ -133,6 +133,6 @@ Notifications=Notificaciones NoNotificationsWillBeSent=Ninguna notificación por e-mail está prevista para este evento y empresa ANotificationsWillBeSent=1 notificación va a ser enviada por e-mail SomeNotificationsWillBeSent=%s notificaciones van a ser enviadas por e-mail -AddNewNotification=Activar un nuevo objetivo de notificación -ListOfActiveNotifications=Listado de todos los objetivos de notificación -ListOfNotificationsDone=Lista de notificaciones de e-mails enviadas +AddNewNotification=Activar un nuevo destinatario de notificaciones +ListOfActiveNotifications=Listado de todos los destinatarios de notificaciones +ListOfNotificationsDone=Listado de notificaciones enviadas From 0f22ebb7b548646ca3801aa540d3f749c6cc4064 Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Thu, 6 Nov 2014 12:26:15 +0100 Subject: [PATCH 29/34] Trad: More accurate trad es_ES of after order. Update form transifex --- htdocs/langs/es_ES/propal.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/langs/es_ES/propal.lang b/htdocs/langs/es_ES/propal.lang index 7ae23c89413..2dc18972359 100644 --- a/htdocs/langs/es_ES/propal.lang +++ b/htdocs/langs/es_ES/propal.lang @@ -81,7 +81,7 @@ ProposalsAndProposalsLines=Presupuestos a clientes y líneas de presupuestos ProposalLine=Línea de presupuesto AvailabilityPeriod=Tiempo de entrega SetAvailability=Definir el tiempo de entrega -AfterOrder=despues del pedido +AfterOrder=desde la firma ##### Availability ##### AvailabilityTypeAV_NOW=Inmediata AvailabilityTypeAV_1W=1 semana From b68bfac593a7f33edfe72f390ea4d557ef0580a2 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 6 Nov 2014 13:46:12 +0100 Subject: [PATCH 30/34] Fix: Usage of migration scripts from command line --- .../install/mysql/migration/3.5.0-3.6.0.sql | 0 .../install/mysql/migration/3.6.0-3.7.0.sql | 0 htdocs/install/mysql/migration/repair.sql | 0 htdocs/install/upgrade.php | 23 ++++++++++++++----- htdocs/install/upgrade2.php | 15 ++++++++++++ 5 files changed, 32 insertions(+), 6 deletions(-) mode change 100644 => 100755 htdocs/install/mysql/migration/3.5.0-3.6.0.sql mode change 100644 => 100755 htdocs/install/mysql/migration/3.6.0-3.7.0.sql mode change 100644 => 100755 htdocs/install/mysql/migration/repair.sql mode change 100644 => 100755 htdocs/install/upgrade.php mode change 100644 => 100755 htdocs/install/upgrade2.php diff --git a/htdocs/install/mysql/migration/3.5.0-3.6.0.sql b/htdocs/install/mysql/migration/3.5.0-3.6.0.sql old mode 100644 new mode 100755 diff --git a/htdocs/install/mysql/migration/3.6.0-3.7.0.sql b/htdocs/install/mysql/migration/3.6.0-3.7.0.sql old mode 100644 new mode 100755 diff --git a/htdocs/install/mysql/migration/repair.sql b/htdocs/install/mysql/migration/repair.sql old mode 100644 new mode 100755 diff --git a/htdocs/install/upgrade.php b/htdocs/install/upgrade.php old mode 100644 new mode 100755 index d89596e25e6..396c9f96b01 --- a/htdocs/install/upgrade.php +++ b/htdocs/install/upgrade.php @@ -50,6 +50,7 @@ error_reporting(0); @set_time_limit(120); error_reporting($err); + $setuplang=GETPOST("selectlang",'',3)?GETPOST("selectlang",'',3):'auto'; $langs->setDefaultLang($setuplang); $versionfrom=GETPOST("versionfrom",'',3)?GETPOST("versionfrom",'',3):(empty($argv[1])?'':$argv[1]); @@ -74,6 +75,22 @@ if (! is_object($conf)) dolibarr_install_syslog("upgrade2: conf file not initial * View */ +if (! $versionfrom && ! $versionto) +{ + print 'Error: Parameter versionfrom or versionto missing.'."\n"; + print 'Upgrade must be ran from cmmand line with parameters or called from page install/index.php (like a first install) instead of page install/upgrade.php'."\n"; + // Test if batch mode + $sapi_type = php_sapi_name(); + $script_file = basename(__FILE__); + $path=dirname(__FILE__).'/'; + if (substr($sapi_type, 0, 3) == 'cli') + { + print 'Syntax from command line: '.$script_file." x.y.z a.b.c\n"; + } + exit; +} + + pHeader('',"upgrade2",GETPOST('action'),'versionfrom='.$versionfrom.'&versionto='.$versionto); $actiondone=0; @@ -85,12 +102,6 @@ if (! GETPOST("action") || preg_match('/upgrade/i',GETPOST('action'))) print '

'.$langs->trans("DatabaseMigration").'

'; - if (! $versionfrom && ! $versionto) - { - print '
Parameter versionfrom or versionto missing. Upgrade is launched from page install/index.php (like a first install) instead of install/upgrade.php
'; - exit; - } - print '
'.$langs->trans("Invoice").''.$langs->trans("ThirdParty").''.$langs->trans("Amount").''.$langs->trans("Invoice").''.$langs->trans("ThirdParty").''.$langs->trans("Amount").''.$langs->trans("Status").'
'.price($obj->total_ttc)."'; + $invoicestatic->fetch($obj->facid); + print $invoicestatic->getLibStatut(5); + print "
'; $error=0; diff --git a/htdocs/install/upgrade2.php b/htdocs/install/upgrade2.php old mode 100644 new mode 100755 index 0bf76c7d729..3a02a78f9e8 --- a/htdocs/install/upgrade2.php +++ b/htdocs/install/upgrade2.php @@ -83,6 +83,21 @@ if (! is_object($conf)) dolibarr_install_syslog("upgrade2: conf file not initial * View */ +if (! $versionfrom && ! $versionto) +{ + print 'Error: Parameter versionfrom or versionto missing.'."\n"; + print 'Upgrade must be ran from cmmand line with parameters or called from page install/index.php (like a first install) instead of page install/upgrade.php'."\n"; + // Test if batch mode + $sapi_type = php_sapi_name(); + $script_file = basename(__FILE__); + $path=dirname(__FILE__).'/'; + if (substr($sapi_type, 0, 3) == 'cli') + { + print 'Syntax from command line: '.$script_file." x.y.z a.b.c\n"; + } + exit; +} + pHeader('','etape5',GETPOST("action")?GETPOST("action"):'upgrade','versionfrom='.$versionfrom.'&versionto='.$versionto); From 9ec71e18fcfbacacd3bf5c89a7d2f1ba2e4fb760 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 6 Nov 2014 13:47:15 +0100 Subject: [PATCH 31/34] Try to track travis pb --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 548a8c53380..69f43183cfc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -92,8 +92,8 @@ script: - php upgrade2.php 3.4.0 3.5.0 > upgrade2.log - php upgrade.php 3.5.0 3.6.0 >> upgrade.log - php upgrade2.php 3.5.0 3.6.0 >> upgrade2.log - - php upgrade.php 3.6.0 3.7.0 >> upgrade.log -# - cat upgrade.log + - php upgrade.php 3.6.0 3.7.0 >> upgrade360370.log + - cat upgrade360370.log - php upgrade2.php 3.6.0 3.7.0 >> upgrade2.log # - cat upgrade2.log - cd ../.. From e421741fc4eed0aff731a6e50ee5384e05daf5a0 Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Thu, 6 Nov 2014 17:33:05 +0100 Subject: [PATCH 32/34] Trad: More accurate trad of holidays. Update form transifex --- htdocs/langs/es_ES/admin.lang | 4 +- htdocs/langs/es_ES/holiday.lang | 136 ++++++++++++++++---------------- 2 files changed, 70 insertions(+), 70 deletions(-) diff --git a/htdocs/langs/es_ES/admin.lang b/htdocs/langs/es_ES/admin.lang index 7973d578e24..79935d143ca 100644 --- a/htdocs/langs/es_ES/admin.lang +++ b/htdocs/langs/es_ES/admin.lang @@ -514,8 +514,8 @@ Module5000Name=Multi-empresa Module5000Desc=Permite gestionar varias empresas Module6000Name=Flujo de trabajo Module6000Desc=Gestión del flujo de trabajo -Module20000Name=Quitar gestión de vacaciones -Module20000Desc=Gestión de los días libres de los empleados +Module20000Name=Gestión de días libres retribuidos +Module20000Desc=Gestión de los días libres retribuidos de los empleados Module39000Name=Lotes de productos Module39000Desc=Gestión de lotes y fechas de caducidad y venta de los productos Module50000Name=PayBox diff --git a/htdocs/langs/es_ES/holiday.lang b/htdocs/langs/es_ES/holiday.lang index 78cd612783e..99c55188b5a 100644 --- a/htdocs/langs/es_ES/holiday.lang +++ b/htdocs/langs/es_ES/holiday.lang @@ -1,13 +1,13 @@ # Dolibarr language file - Source file is en_US - holiday HRM=RRHH -Holidays=Vacaciones -CPTitreMenu=Vacaciones +Holidays=Días libres +CPTitreMenu=Días libres MenuReportMonth=Estado mensual -MenuAddCP=Realizar una petición de vacaciones -NotActiveModCP=Debe activar el módulo Vacaciones para ver esta página -NotConfigModCP=Debe configurar el módulo Vacaciones para ver esta página. Para configurarlo, haga clic aquí. -NoCPforUser=No tiene peticiones de vacaciones. -AddCP=Realizar una petición de vacaciones +MenuAddCP=Realizar una petición de días libres +NotActiveModCP=Debe activar el módulo Días libres retribuidos para ver esta página +NotConfigModCP=Debe configurar el módulo Días libres retribuidos para ver esta página. Para configurarlo, haga clic aquí. +NoCPforUser=No tiene peticiones de días libres. +AddCP=Realizar una petición de días libres Employe=Empleado DateDebCP=Fecha inicio DateFinCP=Fecha fin @@ -18,24 +18,24 @@ ApprovedCP=Aprobada CancelCP=Anulada RefuseCP=Rechazada ValidatorCP=Validador -ListeCP=Listado de vacaciones +ListeCP=Listado de días libres ReviewedByCP=Será revisada por DescCP=Descripción -SendRequestCP=Enviar la petición de vacaciones -DelayToRequestCP=Las peticiones de vacaciones deben realizarse al menos %s días antes. -MenuConfCP=Definir las vacaciones -UpdateAllCP=Actualizar las vacaciones -SoldeCPUser=Su saldo de vacaciones es de %s días. +SendRequestCP=Enviar la petición de días libres +DelayToRequestCP=Las peticiones de días libres deben realizarse al menos %s días antes. +MenuConfCP=Definir los días libres +UpdateAllCP=Actualizar los días libres +SoldeCPUser=Su saldo de días libres es de %s días. ErrorEndDateCP=Debe indicar una fecha de fin superior a la fecha de inicio. ErrorSQLCreateCP=Se ha producido un error de SQL durante la creación : -ErrorIDFicheCP=Se produjo un error, esta solicitud de vacaciones no existe. +ErrorIDFicheCP=Se produjo un error, esta solicitud de días libres no existe. ReturnCP=Volver a la página anterior -ErrorUserViewCP=No está autorizado a leer esta petición de vacaciones. -InfosCP=Información de la petición de vacaciones +ErrorUserViewCP=No está autorizado a leer esta petición de días libres. +InfosCP=Información de la petición de días libres InfosWorkflowCP=Información del workflow RequestByCP=Pedido por -TitreRequestCP=Ficha vacaciones -NbUseDaysCP=Número de días de vacaciones consumidos +TitreRequestCP=Ficha días libres +NbUseDaysCP=Número de días libres consumidos EditCP=Modificar DeleteCP=Eliminar ActionValidCP=Validar @@ -43,26 +43,26 @@ ActionRefuseCP=Rechazar ActionCancelCP=Anular StatutCP=Estado SendToValidationCP=Enviar validación -TitleDeleteCP=Eliminar la petición de vacaciones -ConfirmDeleteCP=¿Está seguro de querer eliminar esta petición de vacaciones? -ErrorCantDeleteCP=Error, no tiene permisos para eliminar esta petición de vacaciones. -CantCreateCP=No tiene permisos para realizar peticiones de vacaciones. -InvalidValidatorCP=Debe indicar un validador para su petición de vacaciones. +TitleDeleteCP=Eliminar la petición de días libres +ConfirmDeleteCP=¿Está seguro de querer eliminar esta petición de días libres? +ErrorCantDeleteCP=Error, no tiene permisos para eliminar esta petición de días libres. +CantCreateCP=No tiene permisos para realizar peticiones de días libres. +InvalidValidatorCP=Debe indicar un validador para su petición de días libres. UpdateButtonCP=Actualizar -CantUpdate=No puede actualizar esta petición de vacaciones. +CantUpdate=No puede actualizar esta petición de días libres. NoDateDebut=Debe indicar una fecha de inicio. NoDateFin=Debe indicar una fecha de fin. -ErrorDureeCP=Su petición de vacaciones no contiene ningún día hábil. -TitleValidCP=Aprobar la petición de vacaciones -ConfirmValidCP=¿Está seguro de querer validar esta petición de vacaciones? +ErrorDureeCP=Su petición de días libres no contiene ningún día hábil. +TitleValidCP=Aprobar la petición de días libres +ConfirmValidCP=¿Está seguro de querer validar esta petición de días libres? DateValidCP=Fecha de validación -TitleToValidCP=Enviar la petición de vacaciones -ConfirmToValidCP=¿Está seguro de querer enviar la petición de vacaciones? -TitleRefuseCP=Rechazar la petición de vacaciones -ConfirmRefuseCP=¿Está seguro de querer rechazar la petición de vacaciones? +TitleToValidCP=Enviar la petición de días libres +ConfirmToValidCP=¿Está seguro de querer enviar la petición de días libres? +TitleRefuseCP=Rechazar la petición de días libres +ConfirmRefuseCP=¿Está seguro de querer rechazar la petición de días libres? NoMotifRefuseCP=Debe seleccionar un motivo para rechazar esta petición. -TitleCancelCP=Cancelar la petición de vacaciones -ConfirmCancelCP=¿Está seguro de querer anular la petición de vacaciones? +TitleCancelCP=Cancelar la petición de días libres +ConfirmCancelCP=¿Está seguro de querer anular la petición de días libres? DetailRefusCP=Motivo del rechazo DateRefusCP=Fecha del rechazo DateCancelCP=Fecha de la anulación @@ -72,42 +72,42 @@ MotifCP=Motivo UserCP=Usuario ErrorAddEventToUserCP=Se ha producido un error en la asignación del permiso excepcional. AddEventToUserOkCP=Se ha añadido el permiso excepcional. -MenuLogCP=Ver los logs de vacaciones -LogCP=Logs de actualizaciones de vacaciones +MenuLogCP=Ver el historial de días libres +LogCP=Historial de actualizaciones de días libres ActionByCP=Realizado por UserUpdateCP=Para el usuario PrevSoldeCP=Saldo anterior NewSoldeCP=Nuevo saldo -alreadyCPexist=Ya se ha efectuado una petición de vacaciones para este periodo. +alreadyCPexist=Ya se ha efectuado una petición de días libres para este periodo. UserName=Nombre Apellidos Employee=Empleado FirstDayOfHoliday=Primer día libre LastDayOfHoliday=Último día libre HolidaysMonthlyUpdate=Actualización mensual ManualUpdate=Actualización manual -HolidaysCancelation=Anulación vacaciones +HolidaysCancelation=Anulación días libres ## Configuration du Module ## -ConfCP=Configuración del módulo de vacaciones +ConfCP=Configuración del módulo de días libres retribuidos DescOptionCP=Descripción de la opción ValueOptionCP=Valor -GroupToValidateCP=Grupo con posibilidad de aprobar las vacaciones +GroupToValidateCP=Grupo con posibilidad de aprobar los días libres ConfirmConfigCP=Validar la configuración -LastUpdateCP=Última actualización automática de vacaciones +LastUpdateCP=Última actualización automática de días libres UpdateConfCPOK=Actualización efectuada correctamente. ErrorUpdateConfCP=Se ha producido un error durante la actualización, vuélvalo a intentar. -AddCPforUsers=Añada los saldos de vacaciones de los usuarios haciendo clic aquí. -DelayForSubmitCP=Fecha límite para realizar peticiones de vacaciones +AddCPforUsers=Añada los saldos de días libres de los usuarios haciendo clic aquí. +DelayForSubmitCP=Fecha límite para realizar peticiones de días libres AlertapprobatortorDelayCP=Advertir al validador si la petición no corresponde a la fecha límite AlertValidatorDelayCP=Advertir al usuario validador si la petición no respeta el límite previsto -AlertValidorSoldeCP=Advertir al usuario validador si el usuario pide vacaciones superiores a su saldo -nbUserCP=Número de usuarios tomados en cuenta en el módulo vacaciones -nbHolidayDeductedCP=Número de días retribuídos a deducir por día de vacaciones -nbHolidayEveryMonthCP=Número de vacaciones añadidas por mes -Module27130Name= Gestion de las vacaciones +AlertValidorSoldeCP=Advertir al usuario validador si el usuario pide días libres superiores a su saldo +nbUserCP=Número de usuarios tomados en cuenta en el módulo días libres retribuidos +nbHolidayDeductedCP=Número de días retribuídos a deducir por día líbre +nbHolidayEveryMonthCP=Número de días libres añadidos por mes +Module27130Name= Gestión de los días libres Module27130Desc= Gestión de días libres -TitleOptionMainCP=Ajustes principales de vacaciones -TitleOptionEventCP=Ajustes de vacaciones enlazados a eventos +TitleOptionMainCP=Ajustes principales de días libres +TitleOptionEventCP=Ajustes de días libres enlazados a eventos ValidEventCP=Validar UpdateEventCP=Actualizar los eventos CreateEventCP=Crear @@ -125,25 +125,25 @@ TitleUpdateEventCP=Modificar o eliminar un permiso excepcional DeleteEventOptionCP=Eliminar UpdateEventOptionCP=Actualizar ErrorMailNotSend=Se ha producido un error en el envío del e-mail : -NoCPforMonth=Sin vacaciones este mes. +NoCPforMonth=Sin días libres este mes. nbJours=Número de días -TitleAdminCP=Configuración de las vacaciones +TitleAdminCP=Configuración de los días libres retribuidos #Messages Hello=Hola -HolidaysToValidate=Días retribuidos a validar -HolidaysToValidateBody=A continuación encontrará una solicitud de días retribuidos para validar -HolidaysToValidateDelay=Esta solicitud de días retribuidos tendrá lugar en un plazo de menos de %s días. -HolidaysToValidateAlertSolde=El usuario que ha realizado la solicitud de días retribuidos no dispone de suficientes días disponibles. -HolidaysValidated=Días retribuidos validados -HolidaysValidatedBody=Su solicitud de días retribuidos desde el %s al %s ha sido validada. -HolidaysRefused=Días retribuidos denegados -HolidaysRefusedBody=Su solicitud de días retribuidos desde el %s al %s ha sido denegada por el siguiente motivo : -HolidaysCanceled=Días retribuidos cancelados -HolidaysCanceledBody=Su solicitud de días retribuidos desde el %s al %s ha sido cancelada. -Permission20000=Leer sus propios días retribuidos -Permission20001=Crear/modificar sus días retribuidos -Permission20002=Crear/modificar días retribuidos para todos -Permission20003=Eliminar peticiones de días retribuidos -Permission20004=Configurar días retribuidos de usuarios -Permission20005=Consultar el historial de modificaciones de permisos retribuídos -Permission20006=Leer informe mensual de días retribuidos +HolidaysToValidate=Días libres retribuidos a validar +HolidaysToValidateBody=A continuación encontrará una solicitud de días libres retribuidos para validar +HolidaysToValidateDelay=Esta solicitud de días libres retribuidos tendrá lugar en un plazo de menos de %s días. +HolidaysToValidateAlertSolde=El usuario que ha realizado la solicitud de días libres retribuidos no dispone de suficientes días disponibles. +HolidaysValidated=Días libres retribuidos validados +HolidaysValidatedBody=Su solicitud de días libres retribuidos desde el %s al %s ha sido validada. +HolidaysRefused=Días libres retribuidos denegados +HolidaysRefusedBody=Su solicitud de días libres retribuidos desde el %s al %s ha sido denegada por el siguiente motivo : +HolidaysCanceled=Días libres retribuidos cancelados +HolidaysCanceledBody=Su solicitud de días libres retribuidos desde el %s al %s ha sido cancelada. +Permission20000=Leer sus propios días libres retribuidos +Permission20001=Crear/modificar sus días libres retribuidos +Permission20002=Crear/modificar días libres retribuidos para todos +Permission20003=Eliminar peticiones de días libres retribuidos +Permission20004=Configurar días libres retribuidos de usuarios +Permission20005=Consultar el historial de modificaciones de días libres retribuídos +Permission20006=Leer informe mensual de días libres retribuidos From 2f30e769f6616cd528284062c81d5fbcc04465bd Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Thu, 6 Nov 2014 22:16:27 +0100 Subject: [PATCH 33/34] Fix: [ bug #1535 ] Supplier invoice Extrafields are not shown --- ChangeLog | 1 + htdocs/core/tpl/extrafields_view.tpl.php | 10 +++++++--- .../fourn/class/fournisseur.facture.class.php | 10 ++++++++++ htdocs/fourn/facture/card.php | 19 ++++++++++++++++++- 4 files changed, 36 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5182a84cd33..9f1ae0857a2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -99,6 +99,7 @@ For users: - Fix: [ bug #1506, #1507 ] ECM trigger error problem - Fix: [ bug #1469 ] Triggers CONTACT_MODIFY and CONTACT_DELETE duplicates error message - Fix: [ bug #1537 ] Difference between societe.nom and adherent.societe. +- Fix: [ bug #1535 ] Supplier invoice Extrafields are not shown For users, new experimental module (need to set feature level of instance to experimental to see them): - New: Module Accounting Expert to manage accountancy diff --git a/htdocs/core/tpl/extrafields_view.tpl.php b/htdocs/core/tpl/extrafields_view.tpl.php index d344ef5eb82..ee2a8695f3a 100644 --- a/htdocs/core/tpl/extrafields_view.tpl.php +++ b/htdocs/core/tpl/extrafields_view.tpl.php @@ -1,5 +1,6 @@ + * Copyright (C) 2014 Juanjo Menent * * 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 @@ -48,7 +49,9 @@ if (empty($reshook) && ! empty($extrafields->attribute_label)) print '
attribute_required [$key])) print ' class="fieldrequired"'; print '>' . $label . ''; - if (($object->statut == 0 || $extrafields->attribute_alwayseditable[$key]) && $user->rights->{$object->element}->creer && ($action != 'edit_extras' || GETPOST('attribute') != $key)) + + //TODO Improve element and rights detection + if (($object->statut == 0 || $extrafields->attribute_alwayseditable[$key]) && ($object->element=='order_supplier'?$user->rights->fournisseur>commande:($object->element=='invoice_supplier'?$user->rights->fournisseur>facture:$user->rights->{$object->element}->creer)) && ($action != 'edit_extras' || GETPOST('attribute') != $key)) print ''; print '
' . img_edit().'
'; @@ -58,8 +61,9 @@ if (empty($reshook) && ! empty($extrafields->attribute_label)) if (in_array($extrafields->attribute_type [$key], array('date','datetime'))) { $value = isset($_POST ["options_" . $key]) ? dol_mktime($_POST ["options_" . $key . "hour"], $_POST ["options_" . $key . "min"], 0, $_POST ["options_" . $key . "month"], $_POST ["options_" . $key . "day"], $_POST ["options_" . $key . "year"]) : $db->jdate($object->array_options ['options_' . $key]); } - - if ($action == 'edit_extras' && $user->rights->{$object->element}->creer && GETPOST('attribute') == $key) + + //TODO Improve element and rights detection + if ($action == 'edit_extras' && ($object->element=='order_supplier'?$user->rights->fournisseur>commande:($object->element=='invoice_supplier'?$user->rights->fournisseur>facture:$user->rights->{$object->element}->creer)) && GETPOST('attribute') == $key) { print '
'; print ''; diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index bd786cfdf4c..ec74b836e1c 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -255,6 +255,16 @@ class FactureFournisseur extends CommonInvoice $result=$this->update_price(); if ($result > 0) { + + if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used + { + $result=$this->insertExtraFields(); + if ($result < 0) + { + $error++; + } + } + // Call trigger $result=$this->call_trigger('BILL_SUPPLIER_CREATE',$user); if ($result < 0) $error++; diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php index b88fd582400..4f1583f6b61 100644 --- a/htdocs/fourn/facture/card.php +++ b/htdocs/fourn/facture/card.php @@ -300,10 +300,16 @@ elseif ($action == 'add' && $user->rights->fournisseur->facture->creer) $_GET['socid']=$_POST['socid']; $error++; } - + + // Fill array 'array_options' with data from add form + if (! $error) { $db->begin(); + + $extralabels = $extrafields->fetch_name_optionals_label($object->table_element); + $ret = $extrafields->setOptionalsFromPost($extralabels, $object); + if ($ret < 0) $error ++; $tmpproject = GETPOST('projectid', 'int'); @@ -1179,6 +1185,9 @@ llxHeader('','',''); // Mode creation if ($action == 'create') { + $facturestatic = new FactureFournisseur($db); + $extralabels = $extrafields->fetch_name_optionals_label($facturestatic->table_element); + print_fiche_titre($langs->trans('NewBill')); dol_htmloutput_events(); @@ -1419,6 +1428,11 @@ if ($action == 'create') print ''; // print ''; print ''; + + if (empty($reshook) && ! empty($extrafields->attribute_label)) + { + print $object->showOptionals($extrafields, 'edit'); + } if (is_object($objectsrc)) { @@ -1530,6 +1544,9 @@ else $societe = new Fournisseur($db); $result=$societe->fetch($object->socid); if ($result < 0) dol_print_error($db); + + // fetch optionals attributes and labels + $extralabels = $extrafields->fetch_name_optionals_label($object->table_element); /* * View card From 38800139400f00ac574f8d43d31c8f1500e794ad Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Thu, 6 Nov 2014 23:10:21 +0100 Subject: [PATCH 34/34] Fix hooks from supplierorder to supplierinvoice --- .../fourn/class/fournisseur.facture.class.php | 19 +++++++++++++------ htdocs/fourn/facture/card.php | 2 +- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index ec74b836e1c..0d6bebada72 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -255,16 +255,23 @@ class FactureFournisseur extends CommonInvoice $result=$this->update_price(); if ($result > 0) { - - if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used + // Actions on extra fields (by external module or standard code) + // FIXME le hook fait double emploi avec le trigger !! + $hookmanager->initHooks(array('supplierinvoicedao')); + $parameters=array('socid'=>$this->id); + $reshook=$hookmanager->executeHooks('insertExtraFields',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks + if (empty($reshook)) { - $result=$this->insertExtraFields(); - if ($result < 0) + if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used { - $error++; + $result=$this->insertExtraFields(); + if ($result < 0) + { + $error++; + } } } - + else if ($reshook < 0) $error++; // Call trigger $result=$this->call_trigger('BILL_SUPPLIER_CREATE',$user); if ($result < 0) $error++; diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php index 4f1583f6b61..38a0f79a6ea 100644 --- a/htdocs/fourn/facture/card.php +++ b/htdocs/fourn/facture/card.php @@ -1083,7 +1083,7 @@ elseif ($action == 'update_extras') { // Actions on extra fields (by external module or standard code) // FIXME le hook fait double emploi avec le trigger !! - $hookmanager->initHooks(array('supplierorderdao')); + $hookmanager->initHooks(array('supplierinvoicedao')); $parameters=array('id'=>$object->id); $reshook=$hookmanager->executeHooks('insertExtraFields',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks