diff --git a/ChangeLog b/ChangeLog index 3a04104b128..ba614a9cf9a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,9 @@ -------------------------------------------------------------- English Dolibarr ChangeLog -------------------------------------------------------------- +***** ChangeLog for 3.4.2 compared to 3.4.1 ***** +Fix: Bad rounding on margin calculations and display. +Fix: Option drpo table into backup was broken. ***** ChangeLog for 3.5 compared to 3.4.* ***** For users: diff --git a/build/debian/changelog b/build/debian/changelog index 1bc72629f66..af586b8cee3 100644 --- a/build/debian/changelog +++ b/build/debian/changelog @@ -1,4 +1,18 @@ -dolibarr (3.5.0) unstable; urgency=low +dolibarr (3.5.0-1) unstable; urgency=low + + [ Laurent Destailleur (eldy) ] + * New upstream release. + + -- Laurent Destailleur (eldy) Mon, 22 Apr 2013 12:00:00 +0100 + +dolibarr (3.4.1-3) unstable; urgency=low + + [ Laurent Destailleur (eldy) ] + * Maintenance release. + + -- Laurent Destailleur (eldy) Mon, 22 Apr 2013 12:00:00 +0100 + +dolibarr (3.4.0-3) unstable; urgency=low [ Laurent Destailleur (eldy) ] * New upstream release. diff --git a/htdocs/admin/tools/dolibarr_export.php b/htdocs/admin/tools/dolibarr_export.php index 062f1aaec73..31a11f260f9 100644 --- a/htdocs/admin/tools/dolibarr_export.php +++ b/htdocs/admin/tools/dolibarr_export.php @@ -219,7 +219,7 @@ print $langs->trans("BackupDescY").'

';
@@ -274,7 +274,7 @@ print $langs->trans("BackupDescY").'

';
trans('ExportStructure') ?>
@@ -433,4 +433,4 @@ print '
'; llxFooter(); $db->close(); -?> \ No newline at end of file +?> diff --git a/htdocs/admin/tools/export.php b/htdocs/admin/tools/export.php index 31d4ec7ef66..8dbd7a1912e 100644 --- a/htdocs/admin/tools/export.php +++ b/htdocs/admin/tools/export.php @@ -134,7 +134,8 @@ if ($what == 'mysql') if (GETPOST("drop_database")) $param.=" --add-drop-database"; if (GETPOST("sql_structure")) { - if (GETPOST("drop")) $param.=" --add-drop-table"; + if (GETPOST("drop")) $param.=" --add-drop-table=TRUE"; + else $param.=" --add-drop-table=FALSE"; } else { diff --git a/htdocs/compta/sociales/charges.php b/htdocs/compta/sociales/charges.php index 2ec6539db9e..adc5fb8ae74 100644 --- a/htdocs/compta/sociales/charges.php +++ b/htdocs/compta/sociales/charges.php @@ -297,20 +297,7 @@ if ($id > 0) } // Type - print "".$langs->trans("Type")."".$object->type_libelle."".$langs->trans("Payments").""; - - // Period end date - print "".$langs->trans("PeriodEndDate").""; - print ""; - if ($action == 'edit') - { - print $form->select_date($object->periode, 'period', 0, 0, 0, 'charge', 1); - } - else - { - print dol_print_date($object->periode,"day"); - } - print ""; + print "".$langs->trans("Type")."".$object->type_libelle.""; $rowspan=5; print ''; @@ -337,8 +324,8 @@ if ($id > 0) $i = 0; $total = 0; echo ''; print ''; - print ''; - print ''; + print ''; + print ''; $var=True; while ($i < $num) @@ -349,12 +336,12 @@ if ($id > 0) print ''.img_object($langs->trans("Payment"),"payment").' '; print dol_print_date($db->jdate($objp->dp),'day')."\n"; print "\n"; - print '\n"; + print '\n"; print ""; $totalpaye += $objp->amount; $i++; } - + if ($object->paye == 0) { print "\n"; @@ -376,6 +363,19 @@ if ($id > 0) print ""; + // Period end date + print ""; + print ""; + // Due date if ($action == 'edit') { @@ -393,8 +393,6 @@ if ($id > 0) // Status print ''; - print ''; - print '
'.$langs->trans("Date").''.$langs->trans("Type").''.$langs->trans("Amount").' 
'.$langs->trans("Payments").''.$langs->trans("Type").''.$langs->trans("Amount").' 
".$objp->paiement_type.' '.$objp->num_paiement."'.price($objp->amount)." ".$langs->trans("Currency".$conf->currency)."'.price($objp->amount)." ".$langs->trans("Currency".$conf->currency)."
".$langs->trans("AlreadyPaid")." :".price($totalpaye)." ".$langs->trans("Currency".$conf->currency)."
".$langs->trans("PeriodEndDate").""; + if ($action == 'edit') + { + print $form->select_date($object->periode, 'period', 0, 0, 0, 'charge', 1); + } + else + { + print dol_print_date($object->periode,"day"); + } + print "
'.$langs->trans("Status").''.$object->getLibStatut(4).'
 
'; if ($action == 'edit') diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 692a340b6ca..86f4904be68 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -1,8 +1,13 @@ * Copyright (C) 2005-2013 Regis Houssin +<<<<<<< HEAD * Copyright (C) 2010-2013 Juanjo Menent * Copyright (C) 2012 Christophe Battarel +======= + * Copyright (C) 2010-2011 Juanjo Menent + * Copyright (C) 2012-2013 Christophe Battarel +>>>>>>> refs/remotes/origin/3.4 * Copyright (C) 2011-2012 Philippe Grand * Copyright (C) 2012 Marcos García * @@ -3194,14 +3199,14 @@ abstract class CommonObject } } if ($marginInfos['pa_products'] > 0) - $marginInfos['margin_rate_products'] = 100 * round($marginInfos['margin_on_products'] / $marginInfos['pa_products'],5); + $marginInfos['margin_rate_products'] = 100 * $marginInfos['margin_on_products'] / $marginInfos['pa_products']; if ($marginInfos['pv_products'] > 0) - $marginInfos['mark_rate_products'] = 100 * round($marginInfos['margin_on_products'] / $marginInfos['pv_products'],5); + $marginInfos['mark_rate_products'] = 100 * $marginInfos['margin_on_products'] / $marginInfos['pv_products']; if ($marginInfos['pa_services'] > 0) - $marginInfos['margin_rate_services'] = 100 * round($marginInfos['margin_on_services'] / $marginInfos['pa_services'],5); + $marginInfos['margin_rate_services'] = 100 * $marginInfos['margin_on_services'] / $marginInfos['pa_services']; if ($marginInfos['pv_services'] > 0) - $marginInfos['mark_rate_services'] = 100 * round($marginInfos['margin_on_services'] / $marginInfos['pv_services'],5); + $marginInfos['mark_rate_services'] = 100 * $marginInfos['margin_on_services'] / $marginInfos['pv_services']; // if credit note, margin = -1 * (abs(selling_price) - buying_price) if ($marginInfos['pv_total'] < 0) @@ -3209,9 +3214,9 @@ abstract class CommonObject else $marginInfos['total_margin'] = $marginInfos['pv_total'] - $marginInfos['pa_total']; if ($marginInfos['pa_total'] > 0) - $marginInfos['total_margin_rate'] = 100 * round($marginInfos['total_margin'] / $marginInfos['pa_total'],5); + $marginInfos['total_margin_rate'] = 100 * $marginInfos['total_margin'] / $marginInfos['pa_total']; if ($marginInfos['pv_total'] > 0) - $marginInfos['total_mark_rate'] = 100 * round($marginInfos['total_margin'] / $marginInfos['pv_total'],5); + $marginInfos['total_mark_rate'] = 100 * $marginInfos['total_margin'] / $marginInfos['pv_total']; return $marginInfos; } @@ -3230,6 +3235,8 @@ abstract class CommonObject if (! $user->rights->margins->liretous) return; + $rounding = min($conf->global->MAIN_MAX_DECIMALS_UNIT,$conf->global->MAIN_MAX_DECIMALS_TOT); + $marginInfo = $this->getMarginInfos($force_price); print ''; @@ -3249,34 +3256,34 @@ abstract class CommonObject //if ($marginInfo['margin_on_products'] != 0 && $marginInfo['margin_on_services'] != 0) { print ''; print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; if (! empty($conf->global->DISPLAY_MARGIN_RATES)) - print ''; + print ''; if (! empty($conf->global->DISPLAY_MARK_RATES)) - print ''; + print ''; print ''; print ''; print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; if (! empty($conf->global->DISPLAY_MARGIN_RATES)) - print ''; + print ''; if (! empty($conf->global->DISPLAY_MARK_RATES)) - print ''; + print ''; print ''; //} print ''; print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; if (! empty($conf->global->DISPLAY_MARGIN_RATES)) - print ''; + print ''; if (! empty($conf->global->DISPLAY_MARK_RATES)) - print ''; + print ''; print ''; print '
'.$langs->trans('MarginOnProducts').''.price($marginInfo['pv_products']).''.price($marginInfo['pa_products']).''.price($marginInfo['margin_on_products']).''.price($marginInfo['pv_products'], null, null, null, null, $rounding).''.price($marginInfo['pa_products'], null, null, null, null, $rounding).''.price($marginInfo['margin_on_products'], null, null, null, null, $rounding).''.(($marginInfo['margin_rate_products'] == '')?'n/a':price($marginInfo['margin_rate_products']).'%').''.(($marginInfo['margin_rate_products'] == '')?'n/a':price($marginInfo['margin_rate_products'], null, null, null, null, $rounding).'%').''.(($marginInfo['mark_rate_products'] == '')?'n/a':price($marginInfo['mark_rate_products']).'%').''.(($marginInfo['mark_rate_products'] == '')?'n/a':price($marginInfo['mark_rate_products'], null, null, null, null, $rounding).'%').'
'.$langs->trans('MarginOnServices').''.price($marginInfo['pv_services']).''.price($marginInfo['pa_services']).''.price($marginInfo['margin_on_services']).''.price($marginInfo['pv_services'], null, null, null, null, $rounding).''.price($marginInfo['pa_services'], null, null, null, null, $rounding).''.price($marginInfo['margin_on_services'], null, null, null, null, $rounding).''.(($marginInfo['margin_rate_services'] == '')?'n/a':price($marginInfo['margin_rate_services']).'%').''.(($marginInfo['margin_rate_services'] == '')?'n/a':price($marginInfo['margin_rate_services'], null, null, null, null, $rounding).'%').''.(($marginInfo['mark_rate_services'] == '')?'n/a':price($marginInfo['mark_rate_services']).'%').''.(($marginInfo['mark_rate_services'] == '')?'n/a':price($marginInfo['mark_rate_services'], null, null, null, null, $rounding).'%').'
'.$langs->trans('TotalMargin').''.price($marginInfo['pv_total']).''.price($marginInfo['pa_total']).''.price($marginInfo['total_margin']).''.price($marginInfo['pv_total'], null, null, null, null, $rounding).''.price($marginInfo['pa_total'], null, null, null, null, $rounding).''.price($marginInfo['total_margin'], null, null, null, null, $rounding).''.(($marginInfo['total_margin_rate'] == '')?'n/a':price($marginInfo['total_margin_rate']).'%').''.(($marginInfo['total_margin_rate'] == '')?'n/a':price($marginInfo['total_margin_rate'], null, null, null, null, $rounding).'%').''.(($marginInfo['total_mark_rate'] == '')?'n/a':price($marginInfo['total_mark_rate']).'%').''.(($marginInfo['total_mark_rate'] == '')?'n/a':price($marginInfo['total_mark_rate'], null, null, null, null, $rounding).'%').'
'; } diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php index cb8dace1734..92120f1f8bb 100644 --- a/htdocs/core/class/html.formfile.class.php +++ b/htdocs/core/class/html.formfile.class.php @@ -138,17 +138,17 @@ class FormFile $out .= ' ('.$langs->trans("UploadDisabled").')'; } $out .= ""; - + if ($savingdocmask) { $out .= ''; if (! empty($options)) $out .= ''.$options.''; $out .= ''; - $out .= ' '.$langs->trans("SaveUploadedFileWithMask", preg_replace('/__file__/',$langs->transnoentitiesnoconv("OriginFileName"),$savingdocmask), $langs->transnoentitiesnoconv("OriginFileName")); + $out .= ' '.$langs->trans("SaveUploadedFileWithMask", preg_replace('/__file__/',$langs->transnoentitiesnoconv("OriginFileName"),$savingdocmask), $langs->transnoentitiesnoconv("OriginFileName")); $out .= ''; - $out .= ''; + $out .= ''; } - + $out .= ""; $out .= ''; @@ -663,12 +663,13 @@ class FormFile * @param int $permtodelete Permission to delete * @param int $useinecm Change output for use in ecm module * @param string $textifempty Text to show if filearray is empty ('NoFileFound' if not defined) - * @param int $maxlength Maximum length of file name shown + * @param int $maxlength Maximum length of file name shown * @param string $title Title before list * @param string $url Full url to use for click links ('' = autodetect) + * @param int $showrelpart 0=Show only filename (default), 1=Show first level 1 dir * @return int <0 if KO, nb of files shown if OK */ - function list_of_documents($filearray,$object,$modulepart,$param='',$forcedownload=0,$relativepath='',$permtodelete=1,$useinecm=0,$textifempty='',$maxlength=0,$title='',$url='') + function list_of_documents($filearray,$object,$modulepart,$param='',$forcedownload=0,$relativepath='',$permtodelete=1,$useinecm=0,$textifempty='',$maxlength=0,$title='',$url='', $showrelpart=0) { global $user, $conf, $langs, $hookmanager; global $bc; @@ -741,8 +742,7 @@ class FormFile print '&file='.$filepath.'">'; print img_mime($file['name'],$file['name'].' ('.dol_print_size($file['size'],0,0).')').' '; - if ($file['level1name'] <> $object->id) - print $file['level1name'].'/'; + if ($showrelpart == 1) print $file['level1name'].'/'; print dol_trunc($file['name'],$maxlength,'middle'); print ''; print "\n"; diff --git a/htdocs/core/tpl/objectline_view.tpl.php b/htdocs/core/tpl/objectline_view.tpl.php index 5ad9ddeab5d..948a61bae2c 100644 --- a/htdocs/core/tpl/objectline_view.tpl.php +++ b/htdocs/core/tpl/objectline_view.tpl.php @@ -1,7 +1,7 @@ * Copyright (C) 2010-2011 Laurent Destailleur - * Copyright (C) 2012 Christophe Battarel + * Copyright (C) 2012-2013 Christophe Battarel * Copyright (C) 2013 Florian Henry * * This program is free software; you can redistribute it and/or modify @@ -121,14 +121,15 @@ margin->enabled) && empty($user->societe_id)) { + $rounding = min($conf->global->MAIN_MAX_DECIMALS_UNIT,$conf->global->MAIN_MAX_DECIMALS_TOT); ?> pa_ht); ?> global->DISPLAY_MARGIN_RATES) && $user->rights->margins->liretous) {?> - pa_ht == 0)?'n/a':price($line->marge_tx).'%'); ?> + pa_ht == 0)?'n/a':price($line->marge_tx, null, null, null, null, $rounding).'%'); ?> global->DISPLAY_MARK_RATES) && $user->rights->margins->liretous) {?> - marque_tx).'%'; ?> + marque_tx, null, null, null, null, $rounding).'%'; ?> special_code == 3) { ?> diff --git a/htdocs/langs/nl_NL/margins.lang b/htdocs/langs/nl_NL/margins.lang index 876f9f1c410..6d74fe0b7db 100644 --- a/htdocs/langs/nl_NL/margins.lang +++ b/htdocs/langs/nl_NL/margins.lang @@ -1,51 +1,52 @@ # Dolibarr language file - Source file is en_US - marges +CHARSET=UTF-8 -# Margin=Margin -# Margins=Margins -# TotalMargin=Total Margin -# MarginOnProducts=Margin / Products -# MarginOnServices=Margin / Services -# MarginRate=Margin rate -# MarkRate=Mark rate -# DisplayMarginRates=Display margin rates -# DisplayMarkRates=Display mark rates -# InputPrice=Input price +Margin=Marge +Margins=Marges +TotalMargin=Marge Totaal +MarginOnProducts=Marge / Training +MarginOnServices=Marge / Dienst +MarginRate=Marge verhouding +MarkRate=Markerings verhouding +DisplayMarginRates=Toon Marge Verhouding +DisplayMarkRates=Toon Markeringsverhouding +InputPrice=Voer Prijs in -# margin=Profit margins management -# margesSetup=Profit margins management setup +margin=Winst marge management +margesSetup=Winst marge management setup -# MarginDetails=Margin details +MarginDetails=Marge details -# ProductMargins=Product margins -# CustomerMargins=Customer margins -# AgentMargins=Agent margins +ProductMargins=Product marge +CustomerMargins=Klant marges +AgentMargins=Acc. Manager marges -ProductService=Product of Dienst -# AllProducts=All products and services -# ChooseProduct/Service=Choose product or service -# CommercialAgent=Commercial agent +ProductService=Trainning of Dienst +AllProducts=Alle Trainingen en Diensten +ChooseProduct/Service=Kies Training of Dienst +CommercialAgent=Commerciel Agent -StartDate=Begindatum -EndDate=Einddatum +StartDate=Start datum +EndDate=Eind datum Launch=Start -# ForceBuyingPriceIfNull=Force buying price if null -# ForceBuyingPriceIfNullDetails=if "ON", margin will be zero on line (buying price = selling price), otherwise ("OFF"), marge will be equal to selling price (buying price = 0) -# MARGIN_METHODE_FOR_DISCOUNT=Margin method for global discounts -# UseDiscountAsProduct=As a product -# UseDiscountAsService=As a service -# UseDiscountOnTotal=On subtotal -# MARGIN_METHODE_FOR_DISCOUNT_DETAILS=Defines if a global discount is treated as a product, a service, or only on subtotal for margin calculation. +ForceBuyingPriceIfNull=Forceer een inkoopprijs indien null +ForceBuyingPriceIfNullDetails=indien "ON", marge wodt nul (inkoopprijs = verkoopprijs), anders("OFF"), marge is gelijk verkoopprijs (inkoopprijs = 0) +MARGIN_METHODE_FOR_DISCOUNT=Marge methode voor globale discounts +UseDiscountAsProduct=Als een training +UseDiscountAsService=Als een dienst +UseDiscountOnTotal=Op subtotaal +MARGIN_METHODE_FOR_DISCOUNT_DETAILS=Definieert als een globale discount wordt behandelt als een training, een dienst, of alleen een subtotaal voor marge berekening. -# MARGIN_TYPE=Margin type -# MargeBrute=Raw margin -# MargeNette=Net margin -# MARGIN_TYPE_DETAILS=Raw margin : Selling price - Buying price
Net margin : Selling price - Cost price +MARGIN_TYPE=Marge type +MargeBrute=Groffe marge +MargeNette=Netto marge +MARGIN_TYPE_DETAILS=Groffe marge : Verkoopprijs - Inkoopprijs
Netto marge : Verkoopprijs - Kostprijs -# CostPrice=Cost price -# BuyingCost=Cost price -# UnitCharges=Unit charges -# Charges=Charges +CostPrice=Kostprijs +BuyingCost=Kostprijs +UnitCharges=Unit toeslag +Charges=Toeslag -# AgentContactType=Contact type used for commissioning -# AgentContactTypeDetails=Défine what contact type (linked on invoices) will be associated with commercial agents +AgentContactType=Contact type used voor commissie +AgentContactTypeDetails=Definieer het contact type (gelinked op facturen) wordt geassocieerd met commercieel agent diff --git a/htdocs/margin/agentMargins.php b/htdocs/margin/agentMargins.php index 7125c5da976..811052f7a93 100644 --- a/htdocs/margin/agentMargins.php +++ b/htdocs/margin/agentMargins.php @@ -168,9 +168,6 @@ if ($result) print_liste_field_titre($langs->trans("MarkRate"),$_SERVER["PHP_SELF"],"","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); print "\n"; - $cumul_achat = 0; - $cumul_vente = 0; - $cumul_qty = 0; $rounding = min($conf->global->MAIN_MAX_DECIMALS_UNIT,$conf->global->MAIN_MAX_DECIMALS_TOT); if ($num > 0) @@ -187,13 +184,13 @@ if ($result) if ($marge < 0) { - $marginRate = ($pa != 0)?-1*(100 * round($marge / $pa, 5)):'' ; - $markRate = ($pv != 0)?-1*(100 * round($marge / $pv, 5)):'' ; + $marginRate = ($pa != 0)?-1*(100 * $marge / $pa):'' ; + $markRate = ($pv != 0)?-1*(100 * $marge / $pv):'' ; } else { - $marginRate = ($pa != 0)?(100 * round($marge / $pa, 5)):'' ; - $markRate = ($pv != 0)?(100 * round($marge / $pv, 5)):'' ; + $marginRate = ($pa != 0)?(100 * $marge / $pa):'' ; + $markRate = ($pv != 0)?(100 * $marge / $pv):'' ; } $var=!$var; @@ -210,18 +207,16 @@ if ($result) print "".$userstatic->getFullName($langs,0,0,0)."\n"; } - print "".price($pv)."\n"; - print "".price($pa)."\n"; - print "".price($marge)."\n"; + print "".price($pv, null, null, null, null, $rounding)."\n"; + print "".price($pa, null, null, null, null, $rounding)."\n"; + print "".price($marge, null, null, null, null, $rounding)."\n"; if (! empty($conf->global->DISPLAY_MARGIN_RATES)) - print "".(($marginRate === '')?'n/a':price($marginRate)."%")."\n"; + print "".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."\n"; if (! empty($conf->global->DISPLAY_MARK_RATES)) - print "".(($markRate === '')?'n/a':price($markRate)."%")."\n"; + print "".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."\n"; print "\n"; $i++; - $cumul_achat += round($objp->buying_price, $rounding); - $cumul_vente += round($objp->selling_price, $rounding); } } print ""; diff --git a/htdocs/margin/customerMargins.php b/htdocs/margin/customerMargins.php index d2e1879e51b..2f1ca0f953c 100644 --- a/htdocs/margin/customerMargins.php +++ b/htdocs/margin/customerMargins.php @@ -210,7 +210,7 @@ if ($result) $cumul_achat = 0; $cumul_vente = 0; - $cumul_qty = 0; + $rounding = min($conf->global->MAIN_MAX_DECIMALS_UNIT,$conf->global->MAIN_MAX_DECIMALS_TOT); if ($num > 0) @@ -227,13 +227,13 @@ if ($result) if ($marge < 0) { - $marginRate = ($pa != 0)?-1*(100 * round($marge / $pa, 5)):'' ; - $markRate = ($pv != 0)?-1*(100 * round($marge / $pv, 5)):'' ; + $marginRate = ($pa != 0)?-1*(100 * $marge / $pa):'' ; + $markRate = ($pv != 0)?-1*(100 * $marge / $pv):'' ; } else { - $marginRate = ($pa != 0)?(100 * round($marge / $pa, 5)):'' ; - $markRate = ($pv != 0)?(100 * round($marge / $pv, 5)):'' ; + $marginRate = ($pa != 0)?(100 * $marge / $pa):'' ; + $markRate = ($pv != 0)?(100 * $marge / $pv):'' ; } $var=!$var; @@ -255,18 +255,18 @@ if ($result) print "".$companystatic->getNomUrl(1,'customer')."\n"; } - print "".price($pv)."\n"; - print "".price($pa)."\n"; - print "".price($marge)."\n"; + print "".price($pv, null, null, null, null, $rounding)."\n"; + print "".price($pa, null, null, null, null, $rounding)."\n"; + print "".price($marge, null, null, null, null, $rounding)."\n"; if (! empty($conf->global->DISPLAY_MARGIN_RATES)) - print "".(($marginRate === '')?'n/a':price($marginRate)."%")."\n"; + print "".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."\n"; if (! empty($conf->global->DISPLAY_MARK_RATES)) - print "".(($markRate === '')?'n/a':price($markRate)."%")."\n"; + print "".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."\n"; print "\n"; $i++; - $cumul_achat += round($objp->buying_price, $rounding); - $cumul_vente += round($objp->selling_price, $rounding); + $cumul_achat += $objp->buying_price; + $cumul_vente += $objp->selling_price; } } @@ -275,13 +275,13 @@ if ($result) $totalMargin = $cumul_vente - $cumul_achat; if ($totalMargin < 0) { - $marginRate = ($cumul_achat != 0)?-1*(100 * round($totalMargin / $cumul_achat, 5)):''; - $markRate = ($cumul_vente != 0)?-1*(100 * round($totalMargin / $cumul_vente, 5)):''; + $marginRate = ($cumul_achat != 0)?-1*(100 * $totalMargin / $cumul_achat):''; + $markRate = ($cumul_vente != 0)?-1*(100 * $totalMargin / $cumul_vente):''; } else { - $marginRate = ($cumul_achat != 0)?(100 * round($totalMargin / $cumul_achat, 5)):''; - $markRate = ($cumul_vente != 0)?(100 * round($totalMargin / $cumul_vente, 5)):''; + $marginRate = ($cumul_achat != 0)?(100 * $totalMargin / $cumul_achat):''; + $markRate = ($cumul_vente != 0)?(100 * $totalMargin / $cumul_vente):''; } print ''; @@ -290,13 +290,13 @@ if ($result) else print ''; print $langs->trans('TotalMargin').""; - print "".price($cumul_vente)."\n"; - print "".price($cumul_achat)."\n"; - print "".price($totalMargin)."\n"; + print "".price($cumul_vente, null, null, null, null, $rounding)."\n"; + print "".price($cumul_achat, null, null, null, null, $rounding)."\n"; + print "".price($totalMargin, null, null, null, null, $rounding)."\n"; if (! empty($conf->global->DISPLAY_MARGIN_RATES)) - print "".(($marginRate === '')?'n/a':price($marginRate)."%")."\n"; + print "".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."\n"; if (! empty($conf->global->DISPLAY_MARK_RATES)) - print "".(($markRate === '')?'n/a':price($markRate)."%")."\n"; + print "".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."\n"; print "\n"; print ""; @@ -322,9 +322,9 @@ $(document).ready(function() { $("div.fiche form").submit(); }); - $("#totalMargin").html(""); - $("#marginRate").html(""); - $("#markRate").html(""); + $("#totalMargin").html(""); + $("#marginRate").html(""); + $("#markRate").html(""); }); diff --git a/htdocs/margin/lib/margins.lib.php b/htdocs/margin/lib/margins.lib.php index bfa5d530e29..6d1ded03419 100644 --- a/htdocs/margin/lib/margins.lib.php +++ b/htdocs/margin/lib/margins.lib.php @@ -125,10 +125,10 @@ function getMarginInfos($pvht, $remise_percent, $tva_tx, $localtax1_tx, $localta // calcul taux marge if ($paht_ret != 0) - $marge_tx_ret = round((100 * $marge) / $paht_ret, 3); + $marge_tx_ret = (100 * $marge) / $paht_ret; // calcul taux marque if ($pu_ht_remise != 0) - $marque_tx_ret = round((100 * $marge) / $pu_ht_remise, 3); + $marque_tx_ret = (100 * $marge) / $pu_ht_remise; return array($paht_ret, $marge_tx_ret, $marque_tx_ret); } diff --git a/htdocs/margin/productMargins.php b/htdocs/margin/productMargins.php index 7998db35efd..50d30a217f0 100644 --- a/htdocs/margin/productMargins.php +++ b/htdocs/margin/productMargins.php @@ -215,7 +215,6 @@ if ($result) $cumul_achat = 0; $cumul_vente = 0; - $cumul_qty = 0; $rounding = min($conf->global->MAIN_MAX_DECIMALS_UNIT,$conf->global->MAIN_MAX_DECIMALS_TOT); if ($num > 0) @@ -231,13 +230,13 @@ if ($result) if ($marge < 0) { - $marginRate = ($pa != 0)?-1*(100 * round($marge / $pa, 5)):'' ; - $markRate = ($pv != 0)?-1*(100 * round($marge / $pv, 5)):'' ; + $marginRate = ($pa != 0)?-1*(100 * $marge / $pa):'' ; + $markRate = ($pv != 0)?-1*(100 * $marge / $pv):'' ; } else { - $marginRate = ($pa != 0)?(100 * round($marge / $pa, 5)):'' ; - $markRate = ($pv != 0)?(100 * round($marge / $pv, 5)):'' ; + $marginRate = ($pa != 0)?(100 * $marge / $pa):'' ; + $markRate = ($pv != 0)?(100 * $marge / $pv):'' ; } $var=!$var; @@ -261,18 +260,18 @@ if ($result) $text.= ' - '.$objp->label; print "".$product_static->getNomUrl(1)."\n"; } - print "".price($pv)."\n"; - print "".price($pa)."\n"; - print "".price($marge)."\n"; + print "".price($pv, null, null, null, null, $rounding)."\n"; + print "".price($pa, null, null, null, null, $rounding)."\n"; + print "".price($marge, null, null, null, null, $rounding)."\n"; if (! empty($conf->global->DISPLAY_MARGIN_RATES)) - print "".(($marginRate === '')?'n/a':price($marginRate)."%")."\n"; + print "".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."\n"; if (! empty($conf->global->DISPLAY_MARK_RATES)) - print "".(($markRate === '')?'n/a':price($markRate)."%")."\n"; + print "".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."\n"; print "\n"; $i++; - $cumul_achat += round($objp->buying_price, $rounding); - $cumul_vente += round($objp->selling_price, $rounding); + $cumul_achat += $objp->buying_price; + $cumul_vente += $objp->selling_price; } } @@ -282,13 +281,13 @@ if ($result) $totalMargin = $cumul_vente - $cumul_achat; if ($totalMargin < 0) { - $marginRate = ($cumul_achat != 0)?-1*(100 * round($totalMargin / $cumul_achat, 5)):''; - $markRate = ($cumul_vente != 0)?-1*(100 * round($totalMargin / $cumul_vente, 5)):''; + $marginRate = ($cumul_achat != 0)?-1*(100 * $totalMargin / $cumul_achat):''; + $markRate = ($cumul_vente != 0)?-1*(100 * $totalMargin / $cumul_vente):''; } else { - $marginRate = ($cumul_achat != 0)?(100 * round($totalMargin / $cumul_achat, 5)):''; - $markRate = ($cumul_vente != 0)?(100 * round($totalMargin / $cumul_vente, 5)):''; + $marginRate = ($cumul_achat != 0)?(100 * $totalMargin / $cumul_achat):''; + $markRate = ($cumul_vente != 0)?(100 * $totalMargin / $cumul_vente):''; } print ''; if ($id > 0) @@ -296,13 +295,13 @@ if ($result) else print ''; print $langs->trans('TotalMargin').""; - print "".price($cumul_vente)."\n"; - print "".price($cumul_achat)."\n"; - print "".price($totalMargin)."\n"; + print "".price($cumul_vente, null, null, null, null, $rounding)."\n"; + print "".price($cumul_achat, null, null, null, null, $rounding)."\n"; + print "".price($totalMargin, null, null, null, null, $rounding)."\n"; if (! empty($conf->global->DISPLAY_MARGIN_RATES)) - print "".(($marginRate === '')?'n/a':price($marginRate)."%")."\n"; + print "".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."\n"; if (! empty($conf->global->DISPLAY_MARK_RATES)) - print "".(($markRate === '')?'n/a':price($markRate)."%")."\n"; + print "".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."\n"; print "\n"; print ""; @@ -330,9 +329,9 @@ $(document).ready(function() { $("div.fiche form").submit(); }); - $("#totalMargin").html(""); - $("#marginRate").html(""); - $("#markRate").html(""); + $("#totalMargin").html(""); + $("#marginRate").html(""); + $("#markRate").html(""); }); diff --git a/htdocs/margin/tabs/productMargins.php b/htdocs/margin/tabs/productMargins.php index 9b31514c7c9..214cf72b86a 100644 --- a/htdocs/margin/tabs/productMargins.php +++ b/htdocs/margin/tabs/productMargins.php @@ -196,13 +196,13 @@ if ($id > 0 || ! empty($ref)) if ($objp->marge < 0) { - $marginRate = ($objp->buying_price != 0)?-1*(100 * round($objp->marge / $objp->buying_price, 5)):'' ; - $markRate = ($objp->selling_price != 0)?-1*(100 * round($objp->marge / $objp->selling_price, 5)):'' ; + $marginRate = ($objp->buying_price != 0)?-1*(100 * $objp->marge / $objp->buying_price):'' ; + $markRate = ($objp->selling_price != 0)?-1*(100 * $objp->marge / $objp->selling_price):'' ; } else { - $marginRate = ($objp->buying_price != 0)?(100 * round($objp->marge / $objp->buying_price, 5)):'' ; - $markRate = ($objp->selling_price != 0)?(100 * round($objp->marge / $objp->selling_price, 5)):'' ; + $marginRate = ($objp->buying_price != 0)?(100 * $objp->marge / $objp->buying_price):'' ; + $markRate = ($objp->selling_price != 0)?(100 * $objp->marge / $objp->selling_price):'' ; } print ""; @@ -215,19 +215,19 @@ if ($id > 0 || ! empty($ref)) print "".$objp->code_client."\n"; print ""; print dol_print_date($db->jdate($objp->datef),'day').""; - print "".price($objp->selling_price)."\n"; - print "".price($objp->buying_price)."\n"; - print "".price($objp->qty)."\n"; - print "".price($objp->marge)."\n"; + print "".price($objp->selling_price, null, null, null, null, $rounding)."\n"; + print "".price($objp->buying_price, null, null, null, null, $rounding)."\n"; + print "".price($objp->qty, null, null, null, null, $rounding)."\n"; + print "".price($objp->marge, null, null, null, null, $rounding)."\n"; if (! empty($conf->global->DISPLAY_MARGIN_RATES)) - print "".(($marginRate === '')?'n/a':price($marginRate)."%")."\n"; + print "".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."\n"; if (! empty($conf->global->DISPLAY_MARK_RATES)) - print "".(($markRate === '')?'n/a':price($markRate)."%")."\n"; + print "".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."\n"; print ''.$invoicestatic->LibStatut($objp->paye,$objp->statut,5).''; print "\n"; $i++; - $cumul_achat += round($objp->buying_price, $rounding); - $cumul_vente += round($objp->selling_price, $rounding); + $cumul_achat += $objp->buying_price; + $cumul_vente += $objp->selling_price; $cumul_qty += $objp->qty; } } @@ -237,24 +237,24 @@ if ($id > 0 || ! empty($ref)) $totalMargin = $cumul_vente - $cumul_achat; if ($totalMargin < 0) { - $marginRate = ($cumul_achat != 0)?-1*(100 * round($totalMargin / $cumul_achat, 5)):''; - $markRate = ($cumul_vente != 0)?-1*(100 * round($totalMargin / $cumul_vente, 5)):''; + $marginRate = ($cumul_achat != 0)?-1*(100 * $totalMargin / $cumul_achat):''; + $markRate = ($cumul_vente != 0)?-1*(100 * $totalMargin / $cumul_vente):''; } else { - $marginRate = ($cumul_achat != 0)?(100 * round($totalMargin / $cumul_achat, 5)):''; - $markRate = ($cumul_vente != 0)?(100 * round($totalMargin / $cumul_vente, 5)):''; + $marginRate = ($cumul_achat != 0)?(100 * $totalMargin / $cumul_achat):''; + $markRate = ($cumul_vente != 0)?(100 * $totalMargin / $cumul_vente):''; } print ''; print ''.$langs->trans('TotalMargin').""; - print "".price($cumul_vente)."\n"; - print "".price($cumul_achat)."\n"; - print "".price($cumul_qty)."\n"; - print "".price($totalMargin)."\n"; + print "".price($cumul_vente, null, null, null, null, $rounding)."\n"; + print "".price($cumul_achat, null, null, null, null, $rounding)."\n"; + print "".price($cumul_qty, null, null, null, null, $rounding)."\n"; + print "".price($totalMargin, null, null, null, null, $rounding)."\n"; if (! empty($conf->global->DISPLAY_MARGIN_RATES)) - print "".(($marginRate === '')?'n/a':price($marginRate)."%")."\n"; + print "".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."\n"; if (! empty($conf->global->DISPLAY_MARK_RATES)) - print "".(($markRate === '')?'n/a':price($markRate)."%")."\n"; + print "".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."\n"; print ' '; print "\n"; } @@ -278,8 +278,8 @@ $db->close(); ?> diff --git a/htdocs/margin/tabs/thirdpartyMargins.php b/htdocs/margin/tabs/thirdpartyMargins.php index 832f145bfae..d33911f56e5 100644 --- a/htdocs/margin/tabs/thirdpartyMargins.php +++ b/htdocs/margin/tabs/thirdpartyMargins.php @@ -175,7 +175,7 @@ if ($socid > 0) $cumul_achat = 0; $cumul_vente = 0; - $cumul_qty = 0; + $rounding = min($conf->global->MAIN_MAX_DECIMALS_UNIT,$conf->global->MAIN_MAX_DECIMALS_TOT); if ($num > 0) @@ -187,13 +187,13 @@ if ($socid > 0) if ($objp->marge < 0) { - $marginRate = ($objp->buying_price != 0)?-1*(100 * round($objp->marge / $objp->buying_price, 5)):'' ; - $markRate = ($objp->selling_price != 0)?-1*(100 * round($objp->marge / $objp->selling_price, 5)):'' ; + $marginRate = ($objp->buying_price != 0)?-1*(100 * $objp->marge / $objp->buying_price):'' ; + $markRate = ($objp->selling_price != 0)?-1*(100 * $objp->marge / $objp->selling_price):'' ; } else { - $marginRate = ($objp->buying_price != 0)?(100 * round($objp->marge / $objp->buying_price, 5)):'' ; - $markRate = ($objp->selling_price != 0)?(100 * round($objp->marge / $objp->selling_price, 5)):'' ; + $marginRate = ($objp->buying_price != 0)?(100 * $objp->marge / $objp->buying_price):'' ; + $markRate = ($objp->selling_price != 0)?(100 * $objp->marge / $objp->selling_price):'' ; } $var=!$var; @@ -206,18 +206,18 @@ if ($socid > 0) print "\n"; print ""; print dol_print_date($db->jdate($objp->datef),'day').""; - print "".price($objp->selling_price)."\n"; - print "".price($objp->buying_price)."\n"; - print "".price($objp->marge)."\n"; + print "".price($objp->selling_price, null, null, null, null, $rounding)."\n"; + print "".price($objp->buying_price, null, null, null, null, $rounding)."\n"; + print "".price($objp->marge, null, null, null, null, $rounding)."\n"; if (! empty($conf->global->DISPLAY_MARGIN_RATES)) - print "".(($marginRate === '')?'n/a':price($marginRate)."%")."\n"; + print "".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."\n"; if (! empty($conf->global->DISPLAY_MARK_RATES)) - print "".(($markRate === '')?'n/a':price($markRate)."%")."\n"; + print "".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."\n"; print ''.$invoicestatic->LibStatut($objp->paye,$objp->statut,5).''; print "\n"; $i++; - $cumul_achat += round($objp->buying_price, $rounding); - $cumul_vente += round($objp->selling_price, $rounding); + $cumul_achat += $objp->buying_price; + $cumul_vente += $objp->selling_price; } } @@ -226,23 +226,23 @@ if ($socid > 0) $totalMargin = $cumul_vente - $cumul_achat; if ($totalMargin < 0) { - $marginRate = ($cumul_achat != 0)?-1*(100 * round($totalMargin / $cumul_achat, 5)):''; - $markRate = ($cumul_vente != 0)?-1*(100 * round($totalMargin / $cumul_vente, 5)):''; + $marginRate = ($cumul_achat != 0)?-1*(100 * $totalMargin / $cumul_achat):''; + $markRate = ($cumul_vente != 0)?-1*(100 * $totalMargin / $cumul_vente):''; } else { - $marginRate = ($cumul_achat != 0)?(100 * round($totalMargin / $cumul_achat, 5)):''; - $markRate = ($cumul_vente != 0)?(100 * round($totalMargin / $cumul_vente, 5)):''; + $marginRate = ($cumul_achat != 0)?(100 * $totalMargin / $cumul_achat):''; + $markRate = ($cumul_vente != 0)?(100 * $totalMargin / $cumul_vente):''; } print ''; print ''.$langs->trans('TotalMargin').""; - print "".price($cumul_vente)."\n"; - print "".price($cumul_achat)."\n"; - print "".price($totalMargin)."\n"; + print "".price($cumul_vente, null, null, null, null, $rounding)."\n"; + print "".price($cumul_achat, null, null, null, null, $rounding)."\n"; + print "".price($totalMargin, null, null, null, null, $rounding)."\n"; if (! empty($conf->global->DISPLAY_MARGIN_RATES)) - print "".(($marginRate === '')?'n/a':price($marginRate)."%")."\n"; + print "".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."\n"; if (! empty($conf->global->DISPLAY_MARK_RATES)) - print "".(($markRate === '')?'n/a':price($markRate)."%")."\n"; + print "".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."\n"; print ' '; print "\n"; }