@ -247,15 +247,26 @@
return $.table.selectDictLabel(processMethodDatas, value);
return $.table.selectDictLabel(processMethodDatas, value);
}
}
},
},
{ title: '对外售价',field: 'materialSole',editable: true},
{ title: '对外售价',field: 'materialSole',
{title: '国内税率',field: 'countTax',align: 'center',editable: true,
editable: {
},
type: 'number',
{ title: '美元汇率',field: 'usdTax', align: 'center',editable: true,
mode: 'inline',
title: '对外售价',
validate: function (value) {
if (!value) {
return '对外售价不能为空';
}
if (isNaN(value)) {
return '对外售价必须为数字';
}
}
}
},
},
{title: '国内税率',field: 'countTax',align: 'center',},
{ title: '美元汇率',field: 'usdTax', align: 'center',},
{field: 'materialNum',align: 'center',title: '物料的数量',
{field: 'materialNum',align: 'center',title: '物料的数量',
editable:{
editable:{
type : 'number',
type : 'text ',
mode: 'inline',
mode: 'inline',
title : '物料的数量',
title : '物料的数量',
validate : function(value) {
validate : function(value) {
@ -274,6 +285,9 @@
editable:{
editable:{
type: 'text', // 使用'text'类型,因为我们需自定义验证小数
type: 'text', // 使用'text'类型,因为我们需自定义验证小数
mode: 'inline',
mode: 'inline',
enabled: function() {
return ($("#commonCurrency_add").val() === '1'); // 当货币类型为2时启用
},
title: '物料的不含税单价(RMB)',
title: '物料的不含税单价(RMB)',
validate: function(value) {
validate: function(value) {
// 验证是否为空
// 验证是否为空
@ -299,7 +313,10 @@
editable: {
editable: {
type: 'text', // 使用'text'类型,因为我们需自定义验证小数
type: 'text', // 使用'text'类型,因为我们需自定义验证小数
mode: 'inline',
mode: 'inline',
title: '物料的不含税单价(RMB)',
enabled: function() {
return ($("#commonCurrency_add").val() === '2'); // 当货币类型为2时启用
},
title: '物料的不含税单价(美元)',
validate: function(value) {
validate: function(value) {
// 验证是否为空
// 验证是否为空
if (!value) {
if (!value) {
@ -318,64 +335,18 @@
}
}
}
}
},
},
{ title: '物料的含税单价(美元)',
{ title: '物料的含税单价(美元)',field: 'materialUsd',align: 'center',},
field: 'materialUsd',
{ title: '物料的含税总价(美元)',field: 'materialUsdSum', align: 'center',},
align: 'center',
{ title: '物料的不含税总价(美元)',field: 'materialNoUsdSum',align: 'center',},
},
{ title: '物料的含税总价(RMB)',field: 'materialNoRmbSum',align: 'center',},
{ title: '物料的含税总价(美元)',
{title: '物料的不含税总价(RMB)',field: 'materialRmbSum',align: 'center',},
field: 'materialUsdSum',
{field: 'createBy', align: 'center',title: '录入人',visible: false},
align: 'center',
{field: 'createTime',align: 'center',title: '录入时间',visible: false},
},
{field: 'updateBy',align: 'center',title: '更新人',visible: false},
{ title: '物料的不含税总价(美元)',
{field: 'updateTime',align: 'center',title: '上次更新时间',visible: false},
field: 'materialNoUsdSum',
{field: 'remark',align: 'center',title: '备注',visible: false},
align: 'center',
{field: 'auditStatus',align: 'center',title: '审核状态',visible: false,
},
formatter: function(value, row, index) {return $.table.selectDictLabel(auditStatusDatas, value);}
{ title: '物料的含税总价(RMB)',
field: 'materialNoRmbSum',
align: 'center',
},
{title: '物料的不含税总价(RMB)',
field: 'materialRmbSum',
align: 'center',
},
{
field: 'createBy',
align: 'center',
title: '录入人',
visible: false
},
{
field: 'createTime',
align: 'center',
title: '录入时间',
visible: false
},
{
field: 'updateBy',
align: 'center',
title: '更新人',
visible: false
},
{
field: 'updateTime',
align: 'center',
title: '上次更新时间',
visible: false
},
{
field: 'remark',
align: 'center',
title: '备注',
visible: false
},
{
field: 'auditStatus',
align: 'center',
title: '审核状态',
visible: false,
formatter: function(value, row, index) {
return $.table.selectDictLabel(auditStatusDatas, value);
}
},
},
{title: '操作', align: 'center',
{title: '操作', align: 'center',
@ -394,34 +365,34 @@
}else{
}else{
rmb1 = $("#rmbTax_add").val();
rmb1 = $("#rmbTax_add").val();
}
}
var rmb = Number(rmb1).toFixed(2) / 100 ;
var rmb = parseFloat(rmb1) ;
var usd = $("#usdTax_add").val();
var usd = $("#usdTax_add").val();
if (usd =='' || usd== null){
if (usd =='' || usd== null){
usd = 0;
usd = 0;
}else{
}else{
usd = Number(usd).toFixed(2 );
usd = parseFloat(usd );
}
}
console.log(commonCurrency1);
console.log(commonCurrency1);
if(commonCurrency1 == 1){
if(commonCurrency1 == 1){
row.materialNoRmb = Number (row.materialNoRmb).toFixed(2);
row.materialNoRmb = parseFloat (row.materialNoRmb).toFixed(2);
row.materialRmb = Number(row.materialNoRmb * Number(1 + rmb) );
row.materialRmb = parseFloat(row.materialNoRmb * parseFloat(1 + rmb)).toFixed(2 );
row.materialNoRmbSum = Number(row.materialNum * Number (row.materialNoRmb)).toFixed(2);
row.materialNoRmbSum = parseFloat(row.materialNum * parseFloat (row.materialNoRmb)).toFixed(2);
row.materialRmbSum = Number (row.materialRmb * row.materialNum).toFixed(2);
row.materialRmbSum = parseFloat (row.materialRmb * row.materialNum).toFixed(2);
row.materialNoUsd = Number (row.materialNoRmb / usd).toFixed(2);
row.materialNoUsd = parseFloat (row.materialNoRmb / usd).toFixed(2);
row.materialNoUsdSum = Number (row.materialNum * row.materialNoUsd).toFixed(2);
row.materialNoUsdSum = parseFloat (row.materialNum * row.materialNoUsd).toFixed(2);
row.materialUsd = Number(row.materialNoUsd).toFixed(2)
row.materialUsd = parseFloat(row.materialNoUsd).toFixed(2);
row.materialUsdSum = Number(row.materialNum * Number(row.materialUsd) ).toFixed(2);
row.materialUsdSum = parseFloat(row.materialNum * row.materialUsd ).toFixed(2);
}
}
else if( commonCurrency1 == 2){
else if( commonCurrency1 == 2){
row.materialNoUsd = Number (row.materialNoUsd).toFixed(2);
row.materialNoUsd = parseFloat (row.materialNoUsd).toFixed(2);
row.materialUsd = Number (row.materialNoUsd).toFixed(2);
row.materialUsd = parseFloat (row.materialNoUsd).toFixed(2);
row.materialUsdSum = Number (row.materialNum * row.materialUsd).toFixed(2);
row.materialUsdSum = parseFloat (row.materialNum * row.materialUsd).toFixed(2);
row.materialNoUsdSum = Number (row.materialNoUsd * row.materialNum).toFixed(2);
row.materialNoUsdSum = parseFloat (row.materialNoUsd * row.materialNum).toFixed(2);
row.materialNoRmb = Number (row.materialNoUsd * usd).toFixed(2);
row.materialNoRmb = parseFloat (row.materialNoUsd * usd).toFixed(2);
row.materialRmb = Number (row.materialNoRmb * (1 + rmb)).toFixed(2);
row.materialRmb = parseFloat (row.materialNoRmb * (1 + rmb)).toFixed(2);
row.materialNoRmbSum = Number (row.materialNoRmb * row.materialNum).toFixed(2);
row.materialNoRmbSum = parseFloat (row.materialNoRmb * row.materialNum).toFixed(2);
row.materialRmbSum = Number (row.materialRmb * row.materialNum).toFixed(2);
row.materialRmbSum = parseFloat (row.materialRmb * row.materialNum).toFixed(2);
}
}
getTotalAmount()
getTotalAmount()
},
},
@ -534,50 +505,66 @@
autoclose: true
autoclose: true
});
});
//计算金额
//计算金额
function getTotalAmount(){
function getTotalAmount() {
// $("#addFinishbomTable").bootstrapTable('refresh');
// 获取表格数据
let getData = $("#bootstrap-sub-table-quoteChild").bootstrapTable('getData', true);
const data = $("#bootstrap-sub-table-quoteChild").bootstrapTable('getData', true);
var enterprise = "";let enterpriseSum = 0; let noRmb = 0;
// 初始化汇总对象,减少代码重复并提高清晰度
let rmb = 0;let noRmbSum = 0;let rmbSum = 0;let noUsd = 0;
const sums = {
let usd = 0;let noUsdSum = 0; let usdSum = 0;
enterprise: "", // 用于拼接物料名称和数量
for(let i=0;i< getData.length ; i + + ) {
enterpriseSum: 0, // 物料总数量
enterprise += getData[i].materialName + ": 数量 :" + getData[i].materialNum +"; ";
currencies: {
enterpriseSum += Number(getData[i].materialNum);
noRmb: { total: 0, single: 0 }, // 非人民币数量与总金额
noRmb += Number(getData[i].materialNoRmb);
rmb: { total: 0, single: 0 }, // 人民币
rmb += Number(getData[i].materialRmb) ;
noUsd: { total: 0, single: 0 }, // 非美元
noRmbSum += Number(getData[i].materialNoRmbSum);
usd: { total: 0, single: 0 } // 美元
rmbSum += Number(getData[i].materialRmbSum);
}
noUsd += Number(getData[i].materialNoUsd) ;
};
usd += Number(getData[i].materialUsd) ;
// 遍历数据进行计算
noUsdSum += Number(getData[i].materialNoUsdSum);
for (let i = 0; i < data.length ; i + + ) {
usdSum += Number(getData[i].materialUsdSum);
const item = data[i];
// 拼接物料信息
sums.enterprise += "" + item.materialName + ": 数量 : " + item.materialNum;
sums.enterpriseSum += parseFloat(item.materialNum); // 累加物料数量
// 分别累加各货币的单个金额和总金额
['noRmb', 'rmb', 'noUsd', 'usd'].forEach(currency => {
sums.currencies[currency].single += parseFloat(item['material' + [currency] ]);
sums.currencies[currency].total += parseFloat(item['material' + [currency] + 'Sum']);
});
}
}
$("#enterprise_add").val(enterprise);
updateFormValues(sums);
$("#enterpriseSum_add").val(Number(enterpriseSum).toFixed(2));
$("#noRmb_add").val(Number(noRmb).toFixed(2));
$("#rmb_add").val(Number(rmb).toFixed(2));
$("#noRmbSum_add").val(Number(noRmbSum).toFixed(2));
$("#rmbSum_add").val(Number(rmbSum).toFixed(2));
$("#noUsd_add").val(Number(noUsd).toFixed(2));
$("#usd_add").val(Number(usd).toFixed(2));
$("#noUsdSum_add").val(Number(noUsdSum).toFixed(2));
$("#usdSum_add").val(Number(usdSum).toFixed(2));
}
}
function updateFormValues(sums) {
// 物料合计与数量合计没有在sums中直接给出,这里假设它们需要单独处理或已存在于页面其他部分
$("#enterprise_add").val(sums.enterprise);
$("#enterpriseSum_add").val(sums.enterpriseSum);
// 更新不含税单价和总价
$("#noRmb_add").val(sums.currencies.noRmb.single);
$("#noRmbSum_add").val(sums.currencies.noRmb.total);
$("#rmb_add").val(sums.currencies.rmb.single);
$("#rmbSum_add").val(sums.currencies.rmb.total);
$("#noUsd_add").val(sums.currencies.noUsd.single);
$("#noUsdSum_add").val(sums.currencies.noUsd.total);
$("#usd_add").val(sums.currencies.usd.single);
$("#usdSum_add").val(sums.currencies.usd.total);
}
$(document).ready(function() {
$(document).ready(function() {
// 监听货币选项变化
// 监听货币选项变化
$("#commonCurrency_add").on("change", function() {
$("#commonCurrency_add").on("change", function() {
var isEditable = $(this).val() === "1";
var isEditable = $(this).val() === "1";
var fieldName = "";
var fieldName = "";
if (isEditable) {
// if (isEditable) {
fieldName = "materialNoRmb";
// fieldName = "materialNoRmb";
$("#rmbTax_add").prop("disabled", false);
// $("#rmbTax_add").prop("disabled", false);
$("#usdTax_add").prop("disabled", false);
// $("#usdTax_add").prop("disabled", false);
} else {
// } else {
fieldName = "materialNoUsd";
// fieldName = "materialNoUsd";
$("#rmbTax_add").prop("disabled", true);
// $("#rmbTax_add").prop("disabled", true);
$("#usdTax_add").prop("disabled", true);
// $("#usdTax_add").prop("disabled", true);
}
// }
var materialColumnCells = $('#bootstrap-sub-table-quoteChild tbody tr td [field=" '+ fieldName+' "]');
var materialColumnCells = $('#bootstrap-sub-table-quoteChild tbody tr td [field=" '+ fieldName+' "]');
// 根据是否可编辑,添加或移除xEditable
// 根据是否可编辑,添加或移除xEditable