|
|
@ -343,27 +343,83 @@ |
|
|
|
{ title: '对外售价',field: 'materialSole',editable: true}, |
|
|
|
{title: '国内税率',field: 'countTax',align: 'center',editable: {type: 'text',mode: 'inline',},}, |
|
|
|
{ title: '美元汇率',field: 'usdTax', align: 'center',editable: {type: 'text',mode: 'inline', }}, |
|
|
|
{field: 'materialNum',align: 'center',title: '物料的数量',editable: {type: 'text',mode: 'inline', }}, |
|
|
|
{ title: '物料的不含税单价(RMB)', field: 'materialNoRmb',align: 'center', |
|
|
|
{ title: '物料的不含税单价(RMB)', |
|
|
|
field: 'materialNoRmb', |
|
|
|
align: 'center', |
|
|
|
editable:{ |
|
|
|
type: 'text', mode: 'inline', // 同样设定为行内编辑模式 |
|
|
|
enabled: function() {return ($("#commonCurrency_add").val() === '1');}, |
|
|
|
options: {placeholder: '请输入USD单价...',maxlength: 10} |
|
|
|
type: 'text', // 使用'text'类型,因为我们需自定义验证小数 |
|
|
|
mode: 'inline', |
|
|
|
enabled: function() { |
|
|
|
return ($("#commonCurrency_add").val() === '1'); // 当货币类型为2时启用 |
|
|
|
}, |
|
|
|
title: '物料的不含税单价(RMB)', |
|
|
|
validate: function(value) { |
|
|
|
// 验证是否为空 |
|
|
|
if (!value) { |
|
|
|
return '金额不能为空'; |
|
|
|
} |
|
|
|
// 尝试转换为浮点数并检查是否成功 |
|
|
|
var num = parseFloat(value); |
|
|
|
if (isNaN(num)) { |
|
|
|
return '请输入有效的数字'; |
|
|
|
} |
|
|
|
// 检查小数点后是否有超过两位的数字 |
|
|
|
var decimalPart = num.toString().split('.')[1]; // 获取小数部分 |
|
|
|
if (decimalPart && decimalPart.length > 2) { |
|
|
|
return '请输入精确到小数点后两位的数字'; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
{title: '物料的不含税单价(美元)',field: 'materialNoUsd',align: 'center', |
|
|
|
{ title: '物料的含税单价(RMB)',field: 'materialRmb',align: 'center',}, |
|
|
|
{field: 'materialNum',align: 'center',title: '物料的数量', |
|
|
|
editable:{ |
|
|
|
type: 'text', mode: 'inline', // 同样设定为行内编辑模式 |
|
|
|
enabled: function() {return ($("#commonCurrency_add").val() === '2'); }, |
|
|
|
options: {placeholder: '请输入USD单价...', maxlength: 10} |
|
|
|
type : 'text', |
|
|
|
mode: 'inline', |
|
|
|
title : '物料的数量', |
|
|
|
validate : function(value) { |
|
|
|
if (!value) { |
|
|
|
return '用量不能为空'; |
|
|
|
} |
|
|
|
if (isNaN(value)) { |
|
|
|
return '用量必须为数字'; |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
{title: '物料的不含税总价(RMB)',field: 'materialNoRmbSum',align: 'center',}, |
|
|
|
{ title: '物料的含税总价(RMB)',field: 'materialRmbSum',align: 'center',}, |
|
|
|
{title: '物料的不含税单价(美元)', |
|
|
|
field: 'materialNoUsd', |
|
|
|
align: 'center', |
|
|
|
editable: { |
|
|
|
type: 'text', // 使用'text'类型,因为我们需自定义验证小数 |
|
|
|
mode: 'inline', |
|
|
|
enabled: function() { |
|
|
|
return ($("#commonCurrency_add").val() === '2'); // 当货币类型为2时启用 |
|
|
|
}, |
|
|
|
title: '物料的不含税单价(美元)', |
|
|
|
validate: function(value) { |
|
|
|
// 验证是否为空 |
|
|
|
if (!value) { |
|
|
|
return '金额不能为空'; |
|
|
|
} |
|
|
|
// 尝试转换为浮点数并检查是否成功 |
|
|
|
var num = parseFloat(value); |
|
|
|
if (isNaN(num)) { |
|
|
|
return '请输入有效的数字'; |
|
|
|
} |
|
|
|
// 检查小数点后是否有超过两位的数字 |
|
|
|
var decimalPart = num.toString().split('.')[1]; // 获取小数部分 |
|
|
|
if (decimalPart && decimalPart.length > 2) { |
|
|
|
return '请输入精确到小数点后两位的数字'; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
{ title: '物料的含税单价(美元)',field: 'materialUsd',align: 'center',}, |
|
|
|
{ title: '物料的含税总价(美元)',field: 'materialUsdSum', align: 'center',}, |
|
|
|
{ title: '物料的不含税总价(美元)',field: 'materialNoUsdSum',align: 'center',}, |
|
|
|
{ title: '物料的含税单价(RMB)',field: 'materialRmb',align: 'center',}, |
|
|
|
{ title: '物料的含税总价(RMB)',field: 'materialNoRmbSum', align: 'center',}, |
|
|
|
{title: '物料的不含税总价(RMB)',field: 'materialRmbSum',align: 'center',}, |
|
|
|
{ title: '计划交付时间',field: 'deliveryTime',align: 'center',editable: {type: 'date',title: '计划交付时间',} }, |
|
|
|
{title: '质保天数',align: 'center',field: 'expiryDay', |
|
|
|
editable: { |
|
|
@ -384,7 +440,7 @@ |
|
|
|
{title: '操作', align: 'center', |
|
|
|
formatter: function (value, row, index) { |
|
|
|
var actions = []; |
|
|
|
actions.push('<a class="btn btn-danger btn-xs" href="javascript:void(0)" onclick="removeRow(\'' + index + '\')"><i class="fa fa-remove"></i>删除</a> '); |
|
|
|
actions.push('<a class="btn btn-danger btn-xs" href="javascript:void(0)" onclick="removeRow(\'' + row.materialCode + '\')"><i class="fa fa-remove"></i>删除</a> '); |
|
|
|
return actions.join(''); |
|
|
|
} |
|
|
|
} |
|
|
@ -424,6 +480,24 @@ |
|
|
|
}, |
|
|
|
}; |
|
|
|
$.table.init(options); |
|
|
|
|
|
|
|
// 初始化表格 |
|
|
|
var bootstrapSubTableQuoteChild = $('#bootstrap-sub-table-order').bootstrapTable(options); |
|
|
|
// 添加编辑保存事件监听器 |
|
|
|
bootstrapSubTableQuoteChild.on('editable-save.bs.table', function(e, field, row, oldValue, $el) { |
|
|
|
var currencyVal = $("#commonCurrency_add").val(); |
|
|
|
var requiredField = (currencyVal === '1') ? 'materialNoRmb' : 'materialNoUsd'; |
|
|
|
|
|
|
|
// 检查是否尝试编辑除requiredField外的字段,且requiredField未填写 |
|
|
|
if (field !== requiredField && (!row[requiredField] || row[requiredField].trim() === '')) { |
|
|
|
$.modal.alertWarning((currencyVal === '1' ? "请首先填写物料的不含税单价(RMB)" : "请首先填写物料的不含税单价(美元)")); |
|
|
|
// 可以选择取消这次编辑操作,但Bootstrap Table默认不会提供直接的API来取消编辑后的保存,您可能需要手动恢复数据或采取其他策略。 |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
// 初始化时也需要根据当前的货币类型设置一次 |
|
|
|
$("#commonCurrency_add").trigger('change'); |
|
|
|
|
|
|
|
selectBuniesessMembers(); |
|
|
|
}); |
|
|
|
|
|
|
@ -602,7 +676,7 @@ |
|
|
|
countTax: $("#taxRate_add").val(), |
|
|
|
usdTax: $("#usdTax_add").val(), |
|
|
|
materialSole: "", |
|
|
|
materialNum: 1, |
|
|
|
materialNum: "", |
|
|
|
materialNoRmb: 0.00, |
|
|
|
materialNoUsd: 0.00, |
|
|
|
materialRmb: 0.00, |
|
|
@ -626,9 +700,15 @@ |
|
|
|
return; |
|
|
|
} |
|
|
|
if ($("#taxRate_add").val() == null || $("#taxRate_add").val() == '') { |
|
|
|
$.modal.alertWarning("请先选择输入国内的税率"); |
|
|
|
$.modal.alertWarning("请输入国内的税率"); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
if ($("#usdTax_add").val() == null || $("#usdTax_add").val() == '') { |
|
|
|
$.modal.alertWarning("请输入美元的汇率"); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
var url = ctx + "erp/material/select"; |
|
|
|
var options = { |
|
|
|
title: '选择料号', |
|
|
@ -638,14 +718,13 @@ |
|
|
|
$.modal.openOptions(options); |
|
|
|
} |
|
|
|
/* 删除指定表格行 */ |
|
|
|
function removeRow(rowIndex){ |
|
|
|
$('.delete-btn').click(function() { |
|
|
|
var rowId = $(this).data('id'); // 获取点击按钮的data-id值 |
|
|
|
$(this).closest('tr').remove(); |
|
|
|
$("#bootstrap-sub-table-editOrder1").bootstrapTable('remove', {index:rowIndex}); |
|
|
|
$("#bootstrap-sub-table-editOrder1").bootstrapTable('refresh'); |
|
|
|
}); |
|
|
|
function removeRow(materialCode){ |
|
|
|
$("#bootstrap-sub-table-order").bootstrapTable('remove', { |
|
|
|
field: 'materialCode', |
|
|
|
values: materialCode |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
function getTotalAmount(){ |
|
|
|
let getData = $("#bootstrap-sub-table-order").bootstrapTable('getData', true); |
|
|
|
var enterprise = 0; |
|
|
|