diff --git a/htdocs/bom/bom_card.php b/htdocs/bom/bom_card.php
index 81b5f858c9b..c4146660053 100644
--- a/htdocs/bom/bom_card.php
+++ b/htdocs/bom/bom_card.php
@@ -68,6 +68,7 @@ if (empty($action) && empty($id) && empty($ref)) $action = 'view';
// Load object
include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once.
+$object->calculateCosts();
// Security check - Protection if external user
//if ($user->socid > 0) accessforbidden();
@@ -523,6 +524,8 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
$keyforbreak = 'duration';
include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_view.tpl.php';
+ print '
Coût total | '.price($object->total_cost).' | ';
+
// Other attributes
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php';
diff --git a/htdocs/bom/class/bom.class.php b/htdocs/bom/class/bom.class.php
index b53e2a7bc88..5e25ef7fb14 100644
--- a/htdocs/bom/class/bom.class.php
+++ b/htdocs/bom/class/bom.class.php
@@ -912,6 +912,7 @@ class BOM extends CommonObject
else
{
$this->lines = $result;
+ $this->calculateCosts();
return $this->lines;
}
}
@@ -991,6 +992,19 @@ class BOM extends CommonObject
return $error;
}
+
+ public function calculateCosts() {
+ include_once DOL_DOCUMENT_ROOT . '/product/class/product.class.php';
+ $this->total_cost = 0;
+ foreach ($this->lines as &$line) {
+ $tmpproduct = new Product($this->db);
+ $tmpproduct->fetch($line->fk_product);
+
+ $line->unit_cost = $tmpproduct->cost_price; // TODO : add option to work with cost_price or pmp
+ $line->total_cost = price2num($line->qty * $line->unit_cost);
+ $this->total_cost += $line->total_cost;
+ }
+ }
}
diff --git a/htdocs/bom/tpl/objectline_create.tpl.php b/htdocs/bom/tpl/objectline_create.tpl.php
index 445466a27a1..66bcf0cece5 100644
--- a/htdocs/bom/tpl/objectline_create.tpl.php
+++ b/htdocs/bom/tpl/objectline_create.tpl.php
@@ -133,6 +133,11 @@ print '';
print '';
print ' | ';
+$coldisplay++;
+print '';
+print ' ';
+print ' | ';
+
$coldisplay += $colspan;
print '';
print '';
diff --git a/htdocs/bom/tpl/objectline_title.tpl.php b/htdocs/bom/tpl/objectline_title.tpl.php
index 138a0b9aa58..ce440dbaab6 100644
--- a/htdocs/bom/tpl/objectline_title.tpl.php
+++ b/htdocs/bom/tpl/objectline_title.tpl.php
@@ -60,13 +60,16 @@ if ($conf->global->PRODUCT_USE_UNITS)
}
// Qty frozen
-print ' | '.$form->textwithpicto($langs->trans('QtyFrozen'), $langs->trans("QuantityConsumedInvariable")).' | ';
+print ''.$form->textwithpicto($langs->trans('QtyFrozen'), $langs->trans("QuantityConsumedInvariable")).' | ';
// Disable stock change
-print ''.$form->textwithpicto($langs->trans('DisableStockChange'), $langs->trans('DisableStockChangeHelp')).' | ';
+print ''.$form->textwithpicto($langs->trans('DisableStockChange'), $langs->trans('DisableStockChangeHelp')).' | ';
// Efficiency
-print ''.$form->textwithpicto($langs->trans('ManufacturingEfficiency'), $langs->trans('ValueOfMeansLoss')).' | ';
+print ''.$form->textwithpicto($langs->trans('ManufacturingEfficiency'), $langs->trans('ValueOfMeansLoss')).' | ';
+
+// Cost
+print ''.$langs->trans('CostPrice').' | ';
print ' | '; // No width to allow autodim
diff --git a/htdocs/bom/tpl/objectline_view.tpl.php b/htdocs/bom/tpl/objectline_view.tpl.php
index 16aa5382f53..ad2c2d3e4c6 100644
--- a/htdocs/bom/tpl/objectline_view.tpl.php
+++ b/htdocs/bom/tpl/objectline_view.tpl.php
@@ -103,6 +103,11 @@ $coldisplay++;
echo $line->efficiency;
print '';
+print '';
+$coldisplay++;
+echo price($line->total_cost);
+print ' | ';
+
if ($this->status == 0 && ($object_rights->write) && $action != 'selectlines' ) {
print '';
$coldisplay++;
|