diff --git a/doc/images/dolibarr_logo.png b/doc/images/dolibarr_logo.png index 5e4d2f69b4e..d90c172c7d3 100755 Binary files a/doc/images/dolibarr_logo.png and b/doc/images/dolibarr_logo.png differ diff --git a/htdocs/core/class/commondocgenerator.class.php b/htdocs/core/class/commondocgenerator.class.php index a7e92bc463c..4dfdb636814 100644 --- a/htdocs/core/class/commondocgenerator.class.php +++ b/htdocs/core/class/commondocgenerator.class.php @@ -217,8 +217,8 @@ abstract class CommonDocGenerator return $array_other; } - - + + /** * Define array with couple substitution key => substitution value * @@ -245,7 +245,7 @@ abstract class CommonDocGenerator $array_key.'_payment_mode'=>($outputlangs->transnoentitiesnoconv('PaymentType'.$object->mode_reglement_code)!='PaymentType'.$object->mode_reglement_code?$outputlangs->transnoentitiesnoconv('PaymentType'.$object->mode_reglement_code):$object->mode_reglement), $array_key.'_payment_term_code'=>$object->cond_reglement_code, $array_key.'_payment_term'=>($outputlangs->transnoentitiesnoconv('PaymentCondition'.$object->cond_reglement_code)!='PaymentCondition'.$object->cond_reglement_code?$outputlangs->transnoentitiesnoconv('PaymentCondition'.$object->cond_reglement_code):$object->cond_reglement), - $array_key.'_total_ht'=>price($object->total_ht2), + $array_key.'_total_ht'=>price($object->total_ht), $array_key.'_total_vat'=>price($object->total_tva), $array_key.'_total_ttc'=>price($object->total_ttc), $array_key.'_total_discount_ht' => price($object->getTotalDiscount()), diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 49f038062ab..27df3ad5c74 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -2530,18 +2530,18 @@ abstract class CommonObject $classfile = strtolower($subelement); $classname = ucfirst($subelement); if ($objecttype == 'invoice_supplier') { - $classfile = 'fournisseur.facture'; + $classfile = 'fournisseur.facture'; $classname='FactureFournisseur'; $classpath = 'fourn/class'; $module='fournisseur'; } if ($objecttype == 'order_supplier') { - $classfile = 'fournisseur.commande'; + $classfile = 'fournisseur.commande'; $classname='CommandeFournisseur'; $classpath = 'fourn/class'; $module='fournisseur'; } - + if (! empty($conf->$module->enabled)) { $res=dol_include_once('/'.$classpath.'/'.$classfile.'.class.php'); @@ -3232,5 +3232,17 @@ abstract class CommonObject print ''; print ''; } + + function __clone() + { + // Force a copy of this->lines, otherwise it will point to same object. + if (isset($this->lines) && is_array($this->lines)) + { + for($i=0; $i < count($this->lines); $i++) + { + $this->lines[$i] = dol_clone($this->lines[$i]); + } + } + } } ?> diff --git a/htdocs/core/lib/files.lib.php b/htdocs/core/lib/files.lib.php index fa95b75e9a6..3c831f5ffcb 100644 --- a/htdocs/core/lib/files.lib.php +++ b/htdocs/core/lib/files.lib.php @@ -742,13 +742,18 @@ function dol_delete_file($file,$disableglob=0,$nophperrors=0,$nohook=0,$object=n { $globencoded=str_replace('[','\[',$file_osencoded); $globencoded=str_replace(']','\]',$globencoded); - foreach (glob($globencoded) as $filename) + $listofdir=glob($globencoded); + if (! empty($listofdir) && is_array($listofdir)) { - if ($nophperrors) $ok=@unlink($filename); // The unlink encapsulated by dolibarr - else $ok=unlink($filename); // The unlink encapsulated by dolibarr - if ($ok) dol_syslog("Removed file ".$filename, LOG_DEBUG); - else dol_syslog("Failed to remove file ".$filename, LOG_WARNING); + foreach ($listofdir as $filename) + { + if ($nophperrors) $ok=@unlink($filename); // The unlink encapsulated by dolibarr + else $ok=unlink($filename); // The unlink encapsulated by dolibarr + if ($ok) dol_syslog("Removed file ".$filename, LOG_DEBUG); + else dol_syslog("Failed to remove file ".$filename, LOG_WARNING); + } } + else dol_syslog("No files to delete found", LOG_WARNING); } else { diff --git a/htdocs/langs/fr_FR/compta.lang b/htdocs/langs/fr_FR/compta.lang index 227b6b734ad..bca34a344c9 100644 --- a/htdocs/langs/fr_FR/compta.lang +++ b/htdocs/langs/fr_FR/compta.lang @@ -113,8 +113,8 @@ RulesResultDue=- Il inclut les factures, charges et tva dues, qu'elles soient pa RulesResultInOut=- Il inclut les règlements effectivement réalisés pour les factures, les charges et la TVA.
- Il se base sur la date de règlement de ces factures, charges et TVA. RulesCADue=- Il inclut les factures clients dues, qu'elles soient payées ou non.
- Il se base sur la date de validation de ces factures.
RulesCAIn=- Il inclut les règlements effectivement reçus des factures clients.
- Il se base sur la date de règlement de ces factures
-DepositsAreNotIncluded=- Les factures d'accomptes ne sont pas incluses -DepositsAreIncluded=- Les factures d'accomptes sont incluses +DepositsAreNotIncluded=- Les factures d'acomptes ne sont pas incluses +DepositsAreIncluded=- Les factures d'acomptes sont incluses LT2ReportByCustomersInInputOutputModeES=Rapport par client des IRPF VATReportByCustomersInInputOutputMode=Rapport par client des TVA collectées et payées (TVA sur encaissement) VATReportByCustomersInDueDebtMode=Rapport par client des TVA collectées et payées (TVA sur débit) @@ -156,7 +156,7 @@ COMPTA_ACCOUNT_CUSTOMER=Compte comptable client par défaut (si non défini sur COMPTA_ACCOUNT_SUPPLIER=Compte comptable fournisseur par défaut (si non défini sur fiche tiers) AddRemind=Ventiler montant disponible RemainToDivide=Reste à répartir : -WarningDepositsNotIncluded=Les factures d'accomptes ne sont pas encore prises en compte dans cette version avec ce module de comptabilité. +WarningDepositsNotIncluded=Les factures d'acomptes ne sont pas encore prises en compte dans cette version avec ce module de comptabilité. DatePaymentTermCantBeLowerThanObjectDate=La date limite de règlement ne peut être inférieure à la date de l'object Pcg_version=Version du plan Pcg_type=Classe de compte