diff --git a/htdocs/bom/ajax/ajax.php b/htdocs/bom/ajax/ajax.php
new file mode 100644
index 00000000000..d8ea9650b09
--- /dev/null
+++ b/htdocs/bom/ajax/ajax.php
@@ -0,0 +1,79 @@
+
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+/**
+ * \file htdocs/public/ticket/ajax/ajax.php
+ * \brief Ajax component for Ticket.
+ */
+
+if (!defined('NOTOKENRENEWAL')) {
+ define('NOTOKENRENEWAL', '1'); // Disables token renewal
+}
+if (!defined('NOREQUIREHTML')) {
+ define('NOREQUIREHTML', '1');
+}
+if (!defined('NOREQUIREAJAX')) {
+ define('NOREQUIREAJAX', '1');
+}
+if (!defined('NOREQUIRESOC')) {
+ define('NOREQUIRESOC', '1');
+}
+if (!defined('NOCSRFCHECK')) {
+ define('NOCSRFCHECK', '1');
+}
+// Do not check anti CSRF attack test
+if (!defined('NOREQUIREMENU')) {
+ define('NOREQUIREMENU', '1');
+}
+// If there is no need to load and show top and left menu
+if (!defined("NOLOGIN")) {
+ define("NOLOGIN", '1');
+}
+if (!defined('NOIPCHECK')) {
+ define('NOIPCHECK', '1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip
+}
+if (!defined('NOBROWSERNOTIF')) {
+ define('NOBROWSERNOTIF', '1');
+}
+
+include_once '../../main.inc.php'; // Load $user and permissions
+require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
+
+
+$action = GETPOST('action', 'aZ09');
+$idproduct = GETPOST('idproduct', 'int');
+
+
+/*
+ * View
+ */
+
+top_httphead();
+
+if ($action == 'getDurationUnitByProduct') {
+
+ $product = new Product($db);
+ $res = $product->fetch($idproduct);
+
+ if($res > 0){
+ $return = $product->duration_unit;
+ }
+
+ echo json_encode($return);
+ exit();
+}
diff --git a/htdocs/bom/class/bom.class.php b/htdocs/bom/class/bom.class.php
index ae75c518990..9638778db43 100644
--- a/htdocs/bom/class/bom.class.php
+++ b/htdocs/bom/class/bom.class.php
@@ -1140,17 +1140,17 @@ class BOM extends CommonObject
}
}
} else {
- if(!($conf->workstation->enabled)) {
- $line->total_cost = price2num($line->qty * $tmpproduct->cost_price, 'MT');
- } else {
-
- if($tmpproduct->fk_default_workstation){
+ if($conf->workstation->enabled){
+ if($tmpproduct->fk_default_workstation) {
$workstation = new Workstation($this->db);
$workstation->fetch($tmpproduct->fk_default_workstation);
$line->total_cost = price2num($line->qty * $workstation->thm_operator_estimated, 'MT');
}
+ } else {
+ $line->total_cost = price2num($line->qty * $tmpproduct->cost_price, 'MT');
}
+
$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 4a0fe79e4a1..7a022c1172c 100644
--- a/htdocs/bom/tpl/objectline_create.tpl.php
+++ b/htdocs/bom/tpl/objectline_create.tpl.php
@@ -210,7 +210,26 @@ jQuery(document).ready(function() {
if (editor) { editor.focus(); }
}
}
+
});
+
+ $('#idprod:nth-child(2)').change(function(){
+ var idproduct = $(this).val();
+
+ console.log(idproduct);
+ $.ajax({
+ url : ""
+ ,type: 'POST'
+ ,data: {
+ 'action': 'getDurationUnitByProduct'
+ ,'idproduct' : idproduct
+ }
+ }).done(function(data) {
+ var data = JSON.parse(data);
+ $('#duration_unit').val(data).change();;
+ });
+ });
+
});
diff --git a/htdocs/bom/tpl/objectline_view.tpl.php b/htdocs/bom/tpl/objectline_view.tpl.php
index c16360e429d..540146b14fa 100644
--- a/htdocs/bom/tpl/objectline_view.tpl.php
+++ b/htdocs/bom/tpl/objectline_view.tpl.php
@@ -136,9 +136,9 @@ if($filtertype != 1) {
print '
';
$coldisplay++;
if ($line->qty > 1) {
- $dur = array("i"=>$langs->trans("Minute"), "h"=>$langs->trans("Hours"), "d"=>$langs->trans("Days"), "w"=>$langs->trans("Weeks"), "m"=>$langs->trans("Months"), "y"=>$langs->trans("Years"));
+ $dur = array("s"=>$langs->trans("Seconds"), "i"=>$langs->trans("Minutes"), "h"=>$langs->trans("Hours"), "d"=>$langs->trans("Days"), "w"=>$langs->trans("Weeks"), "m"=>$langs->trans("Months"), "y"=>$langs->trans("Years"));
} elseif ($product->duration_value > 0) {
- $dur = array("i"=>$langs->trans("Minute"), "h"=>$langs->trans("Hour"), "d"=>$langs->trans("Day"), "w"=>$langs->trans("Week"), "m"=>$langs->trans("Month"), "y"=>$langs->trans("Year"));
+ $dur = array("s"=>$langs->trans("Second"), "i"=>$langs->trans("Minute"), "h"=>$langs->trans("Hour"), "d"=>$langs->trans("Day"), "w"=>$langs->trans("Week"), "m"=>$langs->trans("Month"), "y"=>$langs->trans("Year"));
}
if(!empty($line->duration_unit)){
print (isset($dur[$line->duration_unit]) ? " ".$langs->trans($dur[$line->duration_unit])." " : '');
|