From eb8f89119f33c914a3f669ac3b15af2741a45c9e Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Sat, 10 Dec 2016 16:20:37 +0100 Subject: [PATCH 01/10] Dynamic select currency --- htdocs/core/class/html.form.class.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index a86a3b939a2..31ca42a576a 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -4231,6 +4231,10 @@ class Form } $out.= ''; + // Make select dynamic + include_once DOL_DOCUMENT_ROOT . '/core/lib/ajax.lib.php'; + $out.= ajax_combobox($htmlname); + return $out; } From b1d5f2689a59086d672e701e1d69a2715e537873 Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Sat, 10 Dec 2016 16:45:52 +0100 Subject: [PATCH 02/10] Fix colspan missing --- htdocs/core/tpl/objectline_edit.tpl.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/core/tpl/objectline_edit.tpl.php b/htdocs/core/tpl/objectline_edit.tpl.php index 8840879a805..ce019d58dea 100644 --- a/htdocs/core/tpl/objectline_edit.tpl.php +++ b/htdocs/core/tpl/objectline_edit.tpl.php @@ -122,6 +122,7 @@ $coldisplay=-1; // We remove first td print '>'; if (!empty($conf->multicurrency->enabled)) { + $colspan++; print ''; } From 6474591e25d8c0230d41418f213f896f4895cb41 Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Sat, 10 Dec 2016 19:54:16 +0100 Subject: [PATCH 03/10] Allow to enter price in currency --- htdocs/compta/facture.php | 9 ++++++--- htdocs/compta/facture/class/facture.class.php | 16 ++++++++++------ htdocs/core/lib/price.lib.php | 11 ++++++++++- 3 files changed, 26 insertions(+), 10 deletions(-) diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php index ab562584b0a..b1420656396 100644 --- a/htdocs/compta/facture.php +++ b/htdocs/compta/facture.php @@ -1314,6 +1314,7 @@ if (empty($reshook)) $predef=''; $product_desc=(GETPOST('dp_desc')?GETPOST('dp_desc'):''); $price_ht = GETPOST('price_ht'); + $price_ht_devise = GETPOST('multicurrency_price_ht'); if (GETPOST('prod_entry_mode') == 'free') { $idprod=0; @@ -1348,7 +1349,7 @@ if (empty($reshook)) setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('Type')), null, 'errors'); $error ++; } - if (GETPOST('prod_entry_mode') == 'free' && empty($idprod) && (! ($price_ht >= 0) || $price_ht == '')) // Unit price can be 0 but not '' + if (GETPOST('prod_entry_mode') == 'free' && empty($idprod) && (! ($price_ht >= 0) || $price_ht == '') && empty($price_ht_devise)) // Unit price can be 0 but not '' { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("UnitPriceHT")), null, 'errors'); $error ++; @@ -1505,6 +1506,7 @@ if (empty($reshook)) $desc = $product_desc; $type = GETPOST('type'); $fk_unit= GETPOST('units', 'alpha'); + $pu_ht_devise = price2num($price_ht_devise, 'MU'); } // Margin @@ -1524,7 +1526,7 @@ if (empty($reshook)) setEventMessages($mesg, null, 'errors'); } else { // Insert line - $result = $object->addline($desc, $pu_ht, $qty, $tva_tx, $localtax1_tx, $localtax2_tx, $idprod, $remise_percent, $date_start, $date_end, 0, $info_bits, '', $price_base_type, $pu_ttc, $type, - 1, $special_code, '', 0, GETPOST('fk_parent_line'), $fournprice, $buyingprice, $label, $array_options, $_POST['progress'], '', $fk_unit); + $result = $object->addline($desc, $pu_ht, $qty, $tva_tx, $localtax1_tx, $localtax2_tx, $idprod, $remise_percent, $date_start, $date_end, 0, $info_bits, '', $price_base_type, $pu_ttc, $type, - 1, $special_code, '', 0, GETPOST('fk_parent_line'), $fournprice, $buyingprice, $label, $array_options, $_POST['progress'], '', $fk_unit, $pu_ht_devise); if ($result > 0) { @@ -1604,6 +1606,7 @@ if (empty($reshook)) $pu_ht = GETPOST('price_ht'); $vat_rate = (GETPOST('tva_tx') ? GETPOST('tva_tx') : 0); $qty = GETPOST('qty'); + $pu_ht_devise = GETPOST('multicurrency_subprice'); // Define info_bits $info_bits = 0; @@ -1688,7 +1691,7 @@ if (empty($reshook)) $result = $object->updateline(GETPOST('lineid'), $description, $pu_ht, $qty, GETPOST('remise_percent'), $date_start, $date_end, $vat_rate, $localtax1_rate, $localtax2_rate, 'HT', $info_bits, $type, GETPOST('fk_parent_line'), 0, $fournprice, $buyingprice, $label, $special_code, $array_options, GETPOST('progress'), - $_POST['units']); + $_POST['units'],$pu_ht_devise); if ($result >= 0) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index 8e443e5f556..67f58ac9875 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -2411,9 +2411,10 @@ class Facture extends CommonInvoice * @param int $situation_percent Situation advance percentage * @param int $fk_prev_id Previous situation line id reference * @param string $fk_unit Code of the unit to use. Null to use the default one + * @param double $pu_ht_devise Unit price in currency * @return int <0 if KO, Id of line if OK */ - function addline($desc, $pu_ht, $qty, $txtva, $txlocaltax1=0, $txlocaltax2=0, $fk_product=0, $remise_percent=0, $date_start='', $date_end='', $ventil=0, $info_bits=0, $fk_remise_except='', $price_base_type='HT', $pu_ttc=0, $type=self::TYPE_STANDARD, $rang=-1, $special_code=0, $origin='', $origin_id=0, $fk_parent_line=0, $fk_fournprice=null, $pa_ht=0, $label='', $array_options=0, $situation_percent=100, $fk_prev_id='', $fk_unit = null) + function addline($desc, $pu_ht, $qty, $txtva, $txlocaltax1=0, $txlocaltax2=0, $fk_product=0, $remise_percent=0, $date_start='', $date_end='', $ventil=0, $info_bits=0, $fk_remise_except='', $price_base_type='HT', $pu_ttc=0, $type=self::TYPE_STANDARD, $rang=-1, $special_code=0, $origin='', $origin_id=0, $fk_parent_line=0, $fk_fournprice=null, $pa_ht=0, $label='', $array_options=0, $situation_percent=100, $fk_prev_id='', $fk_unit = null, $pu_ht_devise = 0) { // Deprecation warning if ($label) { @@ -2493,7 +2494,7 @@ class Facture extends CommonInvoice // TRES IMPORTANT: C'est au moment de l'insertion ligne qu'on doit stocker // la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva. - $tabprice = calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $product_type, $mysoc, $localtaxes_type, $situation_percent, $this->multicurrency_tx); + $tabprice = calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $product_type, $mysoc, $localtaxes_type, $situation_percent, $this->multicurrency_tx, $pu_ht_devise); $total_ht = $tabprice[0]; $total_tva = $tabprice[1]; @@ -2506,6 +2507,7 @@ class Facture extends CommonInvoice $multicurrency_total_ht = $tabprice[16]; $multicurrency_total_tva = $tabprice[17]; $multicurrency_total_ttc = $tabprice[18]; + $pu_ht_devise = $tabprice[19]; // Rank to use $rangtouse = $rang; @@ -2565,7 +2567,7 @@ class Facture extends CommonInvoice // Multicurrency $this->line->fk_multicurrency = $this->fk_multicurrency; $this->line->multicurrency_code = $this->multicurrency_code; - $this->line->multicurrency_subprice = price2num($this->line->subprice * $this->multicurrency_tx); + $this->line->multicurrency_subprice = $pu_ht_devise; $this->line->multicurrency_total_ht = $multicurrency_total_ht; $this->line->multicurrency_total_tva = $multicurrency_total_tva; $this->line->multicurrency_total_ttc = $multicurrency_total_ttc; @@ -2628,9 +2630,10 @@ class Facture extends CommonInvoice * @param array $array_options extrafields array * @param int $situation_percent Situation advance percentage * @param string $fk_unit Code of the unit to use. Null to use the default one + * @param double $pu_ht_devise Unit price in currency * @return int < 0 if KO, > 0 if OK */ - function updateline($rowid, $desc, $pu, $qty, $remise_percent, $date_start, $date_end, $txtva, $txlocaltax1=0, $txlocaltax2=0, $price_base_type='HT', $info_bits=0, $type= self::TYPE_STANDARD, $fk_parent_line=0, $skip_update_total=0, $fk_fournprice=null, $pa_ht=0, $label='', $special_code=0, $array_options=0, $situation_percent=0, $fk_unit = null) + function updateline($rowid, $desc, $pu, $qty, $remise_percent, $date_start, $date_end, $txtva, $txlocaltax1=0, $txlocaltax2=0, $price_base_type='HT', $info_bits=0, $type= self::TYPE_STANDARD, $fk_parent_line=0, $skip_update_total=0, $fk_fournprice=null, $pa_ht=0, $label='', $special_code=0, $array_options=0, $situation_percent=0, $fk_unit = null, $pu_ht_devise = 0) { global $conf,$user; // Deprecation warning @@ -2688,7 +2691,7 @@ class Facture extends CommonInvoice $txtva = preg_replace('/\s*\(.*\)/', '', $txtva); // Remove code into vatrate. } - $tabprice=calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $type, $mysoc, $localtaxes_type, $situation_percent, $this->multicurrency_tx); + $tabprice=calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $type, $mysoc, $localtaxes_type, $situation_percent, $this->multicurrency_tx, $pu_ht_devise); $total_ht = $tabprice[0]; $total_tva = $tabprice[1]; @@ -2703,6 +2706,7 @@ class Facture extends CommonInvoice $multicurrency_total_ht = $tabprice[16]; $multicurrency_total_tva = $tabprice[17]; $multicurrency_total_ttc = $tabprice[18]; + $pu_ht_devise = $tabprice[19]; // Old properties: $price, $remise (deprecated) $price = $pu; @@ -2778,7 +2782,7 @@ class Facture extends CommonInvoice $this->line->pa_ht = $pa_ht; // Multicurrency - $this->line->multicurrency_subprice = price2num($this->line->subprice * $this->multicurrency_tx); + $this->line->multicurrency_subprice = $pu_ht_devise; $this->line->multicurrency_total_ht = $multicurrency_total_ht; $this->line->multicurrency_total_tva = $multicurrency_total_tva; $this->line->multicurrency_total_ttc = $multicurrency_total_ttc; diff --git a/htdocs/core/lib/price.lib.php b/htdocs/core/lib/price.lib.php index 840687ba69a..6e3d7566a34 100644 --- a/htdocs/core/lib/price.lib.php +++ b/htdocs/core/lib/price.lib.php @@ -71,7 +71,7 @@ * 17=multicurrency_total_tva * 18=multicurrency_total_ttc */ -function calcul_price_total($qty, $pu, $remise_percent_ligne, $txtva, $uselocaltax1_rate, $uselocaltax2_rate, $remise_percent_global, $price_base_type, $info_bits, $type, $seller = '', $localtaxes_array='', $progress=100, $multicurrency_tx=1) +function calcul_price_total($qty, $pu, $remise_percent_ligne, $txtva, $uselocaltax1_rate, $uselocaltax2_rate, $remise_percent_global, $price_base_type, $info_bits, $type, $seller = '', $localtaxes_array='', $progress=100, $multicurrency_tx=1, $pu_ht_devise=0) { global $conf,$mysoc,$db; @@ -140,6 +140,14 @@ function calcul_price_total($qty, $pu, $remise_percent_ligne, $txtva, $uselocalt } else dol_print_error($db); } + + // pu calculation from pu_devise if pu empty + if(empty($pu) && !empty($pu_ht_devise)) { + $pu = $pu_ht_devise / $multicurrency_tx; + } else { + $pu_ht_devise = $pu * $multicurrency_tx; + } + // initialize total (may be HT or TTC depending on price_base_type) $tot_sans_remise = $pu * $qty * $progress / 100; $tot_avec_remise_ligne = $tot_sans_remise * (1 - ($remise_percent_ligne / 100)); @@ -332,6 +340,7 @@ function calcul_price_total($qty, $pu, $remise_percent_ligne, $txtva, $uselocalt $result[16] = price2num($result[0] * $multicurrency_tx, 'MT'); $result[17] = price2num($result[1] * $multicurrency_tx, 'MT'); $result[18] = price2num($result[2] * $multicurrency_tx, 'MT'); + $result[19] = price2num($pu_ht_devise, 'MU'); // initialize result array //for ($i=0; $i <= 18; $i++) $result[$i] = (float) $result[$i]; From 9f045eb996316a7bd4f0e3806bf5c54d3edd052d Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Sat, 10 Dec 2016 22:07:05 +0100 Subject: [PATCH 04/10] Missing comments --- htdocs/core/lib/price.lib.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/htdocs/core/lib/price.lib.php b/htdocs/core/lib/price.lib.php index 6e3d7566a34..e94c0c7dcfe 100644 --- a/htdocs/core/lib/price.lib.php +++ b/htdocs/core/lib/price.lib.php @@ -50,6 +50,7 @@ * @param array $localtaxes_array Array with localtaxes info array('0'=>type1,'1'=>rate1,'2'=>type2,'3'=>rate2) (loaded by getLocalTaxesFromRate(vatrate, 0, ...) function). * @param integer $progress Situation invoices progress (value from 0 to 100, 100 by default) * @param double $multicurrency_tx Currency rate (1 by default) + * @param double $pu_ht_devise Amount in currency * @return array [ * 0=total_ht, * 1=total_vat, (main vat only) @@ -70,6 +71,7 @@ * 16=multicurrency_total_ht * 17=multicurrency_total_tva * 18=multicurrency_total_ttc + * 19=multicurrency_pu_ht */ function calcul_price_total($qty, $pu, $remise_percent_ligne, $txtva, $uselocaltax1_rate, $uselocaltax2_rate, $remise_percent_global, $price_base_type, $info_bits, $type, $seller = '', $localtaxes_array='', $progress=100, $multicurrency_tx=1, $pu_ht_devise=0) { From 7c82b18da008f80ce8adae769d01f0b77b53b538 Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Sat, 10 Dec 2016 22:07:25 +0100 Subject: [PATCH 05/10] New : allow to actualize currency rate --- htdocs/compta/facture.php | 10 ++++++++-- htdocs/core/class/commonobject.class.php | 13 +++++++++---- htdocs/core/class/html.form.class.php | 6 +++++- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php index b1420656396..0228b6a2f1f 100644 --- a/htdocs/compta/facture.php +++ b/htdocs/compta/facture.php @@ -281,7 +281,7 @@ if (empty($reshook)) // Multicurrency rate else if ($action == 'setmulticurrencyrate' && $user->rights->facture->creer) { - $result = $object->setMulticurrencyRate(price2num(GETPOST('multicurrency_tx'))); + $result = $object->setMulticurrencyRate(price2num(GETPOST('multicurrency_tx')), GETPOST('calculation_mode', 'int')); } else if ($action == 'setinvoicedate' && $user->rights->facture->creer) @@ -3237,10 +3237,16 @@ else if ($id > 0 || ! empty($ref)) print 'id . '">' . img_edit($langs->transnoentitiesnoconv('SetMultiCurrencyCode'), 1) . ''; print ''; print ''; - if ($action == 'editmulticurrencyrate') { + if ($action == 'editmulticurrencyrate' || $action == 'actualizemulticurrencyrate') { + if($action == 'actualizemulticurrencyrate') { + list($object->fk_multicurrency, $object->multicurrency_tx) = MultiCurrency::getIdAndTxFromCode($object->db, $object->multicurrency_code); + } $form->form_multicurrency_rate($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->multicurrency_tx, 'multicurrency_tx', $object->multicurrency_code); } else { $form->form_multicurrency_rate($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->multicurrency_tx, 'none', $object->multicurrency_code); + print '
        '; + print ''.$langs->trans("ActualizeCurrency").''; + print '
'; } print ''; //} diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index e9a7607d011..c3b3d97d202 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -1491,9 +1491,10 @@ abstract class CommonObject * Change the multicurrency rate * * @param double $rate multicurrency rate + * @param int $mode mode 1 : amounts in company currency will be recalculated, mode 2 : amounts in foreign currency * @return int >0 if OK, <0 if KO */ - function setMulticurrencyRate($rate) + function setMulticurrencyRate($rate, $mode=1) { dol_syslog(get_class($this).'::setMulticurrencyRate('.$id.')'); if ($this->statut >= 0 || $this->element == 'societe') @@ -1513,6 +1514,10 @@ abstract class CommonObject { foreach ($this->lines as &$line) { + if($mode == 1) { + $line->subprice = 0; + } + switch ($this->element) { case 'propal': $this->updateline($line->id, $line->subprice, $line->qty, $line->remise_percent, $line->tva_tx, $line->localtax1_tx, $line->localtax2_tx, $line->desc, 'HT', $line->info_bits, $line->special_code, $line->fk_parent_line, $line->skip_update_total, $line->fk_fournprice, $line->pa_ht, $line->label, $line->product_type, $line->date_start, $line->date_end, $line->array_options, $line->fk_unit); @@ -1521,7 +1526,7 @@ abstract class CommonObject $this->updateline($line->id, $line->desc, $line->subprice, $line->qty, $line->remise_percent, $line->tva_tx, $line->localtax1_tx, $line->localtax2_tx, 'HT', $line->info_bits, $line->date_start, $line->date_end, $line->product_type, $line->fk_parent_line, $line->skip_update_total, $line->fk_fournprice, $line->pa_ht, $line->label, $line->special_code, $line->array_options, $line->fk_unit); break; case 'facture': - $this->updateline($line->id, $line->desc, $line->subprice, $line->qty, $line->remise_percent, $line->date_start, $line->date_end, $line->tva_tx, $line->localtax1_tx, $line->localtax2_tx, 'HT', $line->info_bits, $line->product_type, $line->fk_parent_line, $line->skip_update_total, $line->fk_fournprice, $line->pa_ht, $line->label, $line->special_code, $line->array_options, $line->situation_percent, $line->fk_unit); + $this->updateline($line->id, $line->desc, $line->subprice, $line->qty, $line->remise_percent, $line->date_start, $line->date_end, $line->tva_tx, $line->localtax1_tx, $line->localtax2_tx, 'HT', $line->info_bits, $line->product_type, $line->fk_parent_line, $line->skip_update_total, $line->fk_fournprice, $line->pa_ht, $line->label, $line->special_code, $line->array_options, $line->situation_percent, $line->fk_unit, $line->multicurrency_subprice); break; case 'supplier_proposal': $this->updateline($line->id, $line->subprice, $line->qty, $line->remise_percent, $line->tva_tx, $line->localtax1_tx, $line->localtax2_tx, $line->desc, 'HT', $line->info_bits, $line->special_code, $line->fk_parent_line, $line->skip_update_total, $line->fk_fournprice, $line->pa_ht, $line->label, $line->product_type, $line->array_options, $line->ref_fourn); @@ -3307,7 +3312,7 @@ abstract class CommonObject print ''.$langs->trans('PriceUHT').''; // Multicurrency - if (!empty($conf->multicurrency->enabled)) print ''.$langs->trans('PriceUHTCurrency').''; + if (!empty($conf->multicurrency->enabled)) print ''.$langs->trans('PriceUHTCurrency', $this->multicurrency_code).''; if ($inputalsopricewithtax) print ''.$langs->trans('PriceUTTC').''; @@ -3343,7 +3348,7 @@ abstract class CommonObject print ''.$langs->trans('TotalHTShort').''; // Multicurrency - if (!empty($conf->multicurrency->enabled)) print ''.$langs->trans('TotalHTShortCurrency').''; + if (!empty($conf->multicurrency->enabled)) print ''.$langs->trans('TotalHTShortCurrency', $this->multicurrency_code).''; if ($outputalsopricetotalwithtax) print ''.$langs->trans('TotalTTCShort').''; diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 012fbe8953a..3c54cd0a525 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -3956,7 +3956,11 @@ class Form print '
'; print ''; print ''; - print ''; + print ' '; + print ' '; print ''; print '
'; } From 85f532f0be60434e60dd2fed281a2c01e96a4f51 Mon Sep 17 00:00:00 2001 From: BENKE Charlie Date: Sat, 10 Dec 2016 22:12:41 +0100 Subject: [PATCH 06/10] bad rights on create order --- htdocs/contrat/card.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/contrat/card.php b/htdocs/contrat/card.php index 7ef9924ac00..f263763f7ab 100644 --- a/htdocs/contrat/card.php +++ b/htdocs/contrat/card.php @@ -1990,8 +1990,8 @@ else if (! empty($conf->commande->enabled) && $object->statut > 0 && $object->nbofservicesclosed < $nbofservices) { - $langs->load("bills"); - if ($user->rights->facture->creer) print ''; + $langs->load("orders"); + if ($user->rights->commande->creer) print ''; else print ''; } From 31fcf9aff942ab1760b1bb44f35d082cece331dd Mon Sep 17 00:00:00 2001 From: aspangaro Date: Sat, 10 Dec 2016 22:13:06 +0100 Subject: [PATCH 07/10] Fix warehouse presentation --- htdocs/core/lib/stock.lib.php | 2 +- htdocs/product/stock/card.php | 58 +++++++++++++++++------------------ 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/htdocs/core/lib/stock.lib.php b/htdocs/core/lib/stock.lib.php index 758b2e96582..ac59ab230c7 100644 --- a/htdocs/core/lib/stock.lib.php +++ b/htdocs/core/lib/stock.lib.php @@ -35,7 +35,7 @@ function stock_prepare_head($object) $head = array(); $head[$h][0] = DOL_URL_ROOT.'/product/stock/card.php?id='.$object->id; - $head[$h][1] = $langs->trans("WarehouseCard"); + $head[$h][1] = $langs->trans("Card"); $head[$h][2] = 'card'; $h++; diff --git a/htdocs/product/stock/card.php b/htdocs/product/stock/card.php index ad6ea9d6560..eb853539e01 100644 --- a/htdocs/product/stock/card.php +++ b/htdocs/product/stock/card.php @@ -193,7 +193,7 @@ if ($action == 'create') // Ref print ''.$langs->trans("Ref").''; - print ''.$langs->trans("LocationSummary").''; + print ''.$langs->trans("LocationSummary").''; // Parent entrepot print ''.$langs->trans("AddIn").''; @@ -289,30 +289,29 @@ else if (empty($reshook)) $formconfirm.=$hookmanager->resPrint; elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint; } - + // Print form confirm print $formconfirm; - + // Warehouse card $linkback = ''.$langs->trans("BackToList").''; - + $morehtmlref='
'; $morehtmlref.=$langs->trans("LocationSummary").' : '.$object->lieu; $morehtmlref.='
'; - + dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'libelle', $morehtmlref); - - + print '
'; print '
'; print '
'; - + print ''; // Parent entrepot $e = new Entrepot($db); if(!empty($object->fk_parent) && $e->fetch($object->fk_parent) > 0) { - + print ''; @@ -324,32 +323,32 @@ else $calcproductsunique=$object->nb_different_products(); $calcproducts=$object->nb_products(); - + // Total nb of different products print '"; - + // Nb of products print '"; - + print '
'.$langs->trans("ParentWarehouse").''; print $e->getNomUrl(3); print '
'.$langs->trans("NumberOfDifferentProducts").''; print empty($calcproductsunique['nb'])?'0':$calcproductsunique['nb']; print "
'.$langs->trans("NumberOfProducts").''; $valtoshow=price2num($calcproducts['nb'], 'MS'); print empty($valtoshow)?'0':$valtoshow; print "
'; - + print '
'; print '
'; print '
'; print '
'; - + print ''; - + // Value print '"; - + // Last movement $sql = "SELECT max(m.datem) as datem"; $sql .= " FROM ".MAIN_DB_PREFIX."stock_mouvement as m"; @@ -375,15 +374,15 @@ else print $langs->trans("None"); } print ""; - + print "
'.$langs->trans("EstimatedStockValueShort").''; print price((empty($calcproducts['value'])?'0':price2num($calcproducts['value'],'MT')), 0, $langs, 0, -1, -1, $conf->currency); print "
"; print '
'; print '
'; print '
'; - + print '
'; - + dol_fiche_end(); @@ -486,7 +485,7 @@ else $productstatic->entity=$objp->entity; print $productstatic->getNomUrl(1,'stock',16); print ''; - + // Label print ''.$objp->produit.''; @@ -498,7 +497,7 @@ else // Price buy PMP print ''.price(price2num($objp->ppmp,'MU')).''; - + // Total PMP print ''.price(price2num($objp->ppmp*$objp->value,'MT')).''; $totalvalue+=price2num($objp->ppmp*$objp->value,'MT'); @@ -580,41 +579,42 @@ else print ''; // Ref - print ''; + print ''; + + print ''; - print ''; - // Parent entrepot print ''; // Description - print ''; - print ''; // Zip / Town print ''; + print ''; // Country - print ''; - print ''; +$var=!$var; +print ''; +print ''; +print ''; +print ''; + foreach ($TCurrency as &$currency) { + if($currency->code == $conf->currency) continue; + $var=!$var; print ''; print ''; @@ -334,10 +343,12 @@ foreach ($TCurrency as &$currency) print ''; print ''; print ''; - print ' '; + print '1 '.$conf->currency.' = '; + print ' '.$currency->code.' '; print ' '; print ''; print ''; + print ''; } From 194639c30e0cd657fbec6ebf53797277350e58ff Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Sat, 10 Dec 2016 22:41:57 +0100 Subject: [PATCH 09/10] Missing lang in admin --- htdocs/admin/multicurrency.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/admin/multicurrency.php b/htdocs/admin/multicurrency.php index 7dba688c533..de3c2f3965a 100644 --- a/htdocs/admin/multicurrency.php +++ b/htdocs/admin/multicurrency.php @@ -33,6 +33,7 @@ require_once DOL_DOCUMENT_ROOT.'/multicurrency/class/multicurrency.class.php'; // Translations +$langs->load("admin"); $langs->load("multicurrency"); // Access control From d5128a1889a547da9ab4eacf15e5cbc0276b712b Mon Sep 17 00:00:00 2001 From: jfefe Date: Sat, 10 Dec 2016 23:12:03 +0100 Subject: [PATCH 10/10] FIX #6129 : correct test on database connection --- htdocs/install/step1.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/htdocs/install/step1.php b/htdocs/install/step1.php index ec437709487..4389cbf2c0d 100644 --- a/htdocs/install/step1.php +++ b/htdocs/install/step1.php @@ -243,13 +243,13 @@ if (! $error) { dol_syslog("databasefortest=" . $databasefortest . " connected=" . $db->connected . " database_selected=" . $db->database_selected, LOG_DEBUG); //print "databasefortest=".$databasefortest." connected=".$db->connected." database_selected=".$db->database_selected; - if (empty($db_create_database) && $db->connected && !$db->database_selected) { + if (empty($db_create_database) && $db->connected && !$db->database_selected) { print '
'.$langs->trans("ErrorConnectedButDatabaseNotFound",$db_name).'
'; print '
'; if (! $db->connected) print $langs->trans("IfDatabaseNotExistsGoBackAndUncheckCreate").'

'; print $langs->trans("ErrorGoBackAndCorrectParameters"); $error++; - } elseif ($db->error && (empty($db_create_database) && $db->connected)) { + } elseif ($db->error && ! (! empty($db_create_database) && $db->connected)) { // Note: you may experience error here with message "No such file or directory" when mysql was installed for the first time but not yet launched. if ($db->error == "No such file or directory") print '
'.$langs->trans("ErrorToConnectToMysqlCheckInstance").'
'; else print '
'.$db->error.'
'; @@ -991,4 +991,3 @@ function write_conf_file($conffile) return $error; } -
'.$langs->trans("Ref").'
'.$langs->trans("Ref").'
'.$langs->trans("LocationSummary").'
'.$langs->trans("LocationSummary").'
'.$langs->trans("AddIn").''; print $formproduct->selectWarehouses($object->fk_parent, 'fk_parent', '', 1); print '
'.$langs->trans("Description").''; + print '
'.$langs->trans("Description").''; // Editeur wysiwyg require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; $doleditor=new DolEditor('desc',$object->description,'',180,'dolibarr_notes','In',false,true,$conf->fckeditor->enabled,ROWS_5,'90%'); $doleditor->Create(); print '
'.$langs->trans('Address').'
'.$langs->trans('Zip').''; print $formcompany->select_ziptown($object->zip,'zipcode',array('town','selectcountry_id','state_id'),6); - print ''.$langs->trans('Town').''; + print '
'.$langs->trans('Town').''; print $formcompany->select_ziptown($object->town,'town',array('zipcode','selectcountry_id','state_id')); print '
'.$langs->trans('Country').''; + print '
'.$langs->trans('Country').''; print $form->select_country($object->country_id?$object->country_id:$mysoc->country_code,'country_id'); if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1); print '
'.$langs->trans("Status").''; + print '
'.$langs->trans("Status").''; print ''; print '
'.$conf->currency.$form->textwithpicto(' ', $langs->trans("BaseCurrency")).' 1'; +print '
'.$currency->code.' - '.$currency->name.'