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