Change unit dynamic

This commit is contained in:
atm-lena 2022-07-06 16:17:22 +02:00
parent 6925dc2ae1
commit dadff083a4
4 changed files with 105 additions and 7 deletions

79
htdocs/bom/ajax/ajax.php Normal file
View File

@ -0,0 +1,79 @@
<?php
/**
* Copyright (C) 2020 Laurent Destailleur <eldy@users.sourceforge.net>
*
* 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 <https://www.gnu.org/licenses/>.
*/
/**
* \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();
}

View File

@ -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;
}
}

View File

@ -210,7 +210,26 @@ jQuery(document).ready(function() {
if (editor) { editor.focus(); }
}
}
});
<?php if($filtertype == 1) { ?>
$('#idprod:nth-child(2)').change(function(){
var idproduct = $(this).val();
console.log(idproduct);
$.ajax({
url : "<?php echo dol_buildpath('/bom/ajax/ajax.php',1); ?>"
,type: 'POST'
,data: {
'action': 'getDurationUnitByProduct'
,'idproduct' : idproduct
}
}).done(function(data) {
var data = JSON.parse(data);
$('#duration_unit').val(data).change();;
});
});
<?php } ?>
});
</script>

View File

@ -136,9 +136,9 @@ if($filtertype != 1) {
print '<td class="linecolunit nowrap right">';
$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]) ? "&nbsp;".$langs->trans($dur[$line->duration_unit])."&nbsp;" : '');