|
@ -261,31 +261,31 @@ |
|
|
<input class="col-sm-4" name="materialSum" |
|
|
<input class="col-sm-4" name="materialSum" |
|
|
th:field="*{materialSum}" id="enterprise_edit" type="number" readonly /> |
|
|
th:field="*{materialSum}" id="enterprise_edit" type="number" readonly /> |
|
|
<label class=" col-sm-2">数量合计:</label> |
|
|
<label class=" col-sm-2">数量合计:</label> |
|
|
<input class="col-sm-4" name="enterpriseSum" th:field="*{enterpriseSum}" id="enterpriseSum_edit" type="number" readonly /> |
|
|
<input class="col-sm-4" name="enterpriseSum" th:field="*{enterpriseSum}" type="number" readonly /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="col-xs-12 form-row"> |
|
|
<div class="col-xs-12 form-row"> |
|
|
<label class="col-sm-2"> 不含税单价:</label> |
|
|
<label class="col-sm-2"> 不含税单价:</label> |
|
|
<input placeholder="RMB" class="col-sm-4" name="noRmbPrice" th:field="*{noRmbPrice}" id="noRmb_edit" type="number" readonly /> |
|
|
<input placeholder="RMB" class="col-sm-4" name="noRmbPrice" th:field="*{noRmbPrice}" type="number" readonly /> |
|
|
<label class="col-sm-2"> 不含税总价:</label> |
|
|
<label class="col-sm-2"> 不含税总价:</label> |
|
|
<input placeholder="RMB" class="col-sm-4" name="noRmbSum" th:field="*{noRmbSum}" id="noRmbSum_edit" type="number" readonly/> |
|
|
<input placeholder="RMB" class="col-sm-4" name="noRmbSum" th:field="*{noRmbSum}" type="number" readonly/> |
|
|
</div> |
|
|
</div> |
|
|
<div class="col-xs-12 form-row"> |
|
|
<div class="col-xs-12 form-row"> |
|
|
<label class="col-sm-2"> 含税单价:</label> |
|
|
<label class="col-sm-2"> 含税单价:</label> |
|
|
<input placeholder="RMB" class="col-sm-4" name="rmbPrice" th:field="*{rmbPrice}" id="rmb_edit" type="number" readonly /> |
|
|
<input placeholder="RMB" class="col-sm-4" name="rmbPrice" th:field="*{rmbPrice}" type="number" readonly /> |
|
|
<label class="col-sm-2"> 含税总价:</label> |
|
|
<label class="col-sm-2"> 含税总价:</label> |
|
|
<input placeholder="RMB" class="col-sm-4" name="rmbTaxSum" th:field="*{rmbTaxSum}" id="rmbTax_edit" type="number" readonly /> |
|
|
<input placeholder="RMB" class="col-sm-4" name="rmbTaxSum" th:field="*{rmbTaxSum}" type="number" readonly /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="col-xs-12"> |
|
|
<div class="col-xs-12"> |
|
|
<label class="col-sm-2">不含税单价:</label> |
|
|
<label class="col-sm-2">不含税单价:</label> |
|
|
<input placeholder="美元" class="col-sm-4" name="noUsdPrice" th:field="*{noUsdPrice}" id="noUsd_edit" type="number" readonly /> |
|
|
<input placeholder="美元" class="col-sm-4" name="noUsdPrice" th:field="*{noUsdPrice}" type="number" readonly /> |
|
|
<label class="col-sm-2">不含税总价:</label> |
|
|
<label class="col-sm-2">不含税总价:</label> |
|
|
<input placeholder="美元" class="col-sm-4" name="noUsdSum" th:field="*{noUsdSum}" id="noUsdSum_edit" type="number" readonly /> |
|
|
<input placeholder="美元" class="col-sm-4" name="noUsdSum" th:field="*{noUsdSum}" type="number" readonly /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="col-xs-12 form-row"> |
|
|
<div class="col-xs-12 form-row"> |
|
|
<label class="col-sm-2">含税单价:</label> |
|
|
<label class="col-sm-2">含税单价:</label> |
|
|
<input placeholder="美元" class="col-sm-4" name="usdPrice" th:field="*{usdPrice}" id="usd_edit" type="number" readonly /> |
|
|
<input placeholder="美元" class="col-sm-4" name="usdPrice" th:field="*{usdPrice}" type="number" readonly /> |
|
|
<label class="col-sm-2">含税总价:</label> |
|
|
<label class="col-sm-2">含税总价:</label> |
|
|
<input placeholder="美元" class="col-sm-4" name="usdTaxSum" th:field="*{usdTaxSum}" id="usdSum_edit" type="number" readonly /> |
|
|
<input placeholder="美元" class="col-sm-4" name="usdTaxSum" th:field="*{usdTaxSum}" type="number" readonly /> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="container"> |
|
|
<div class="container"> |
|
@ -293,11 +293,6 @@ |
|
|
</div> |
|
|
</div> |
|
|
</form> |
|
|
</form> |
|
|
<div class="other-container"> |
|
|
<div class="other-container"> |
|
|
<div class="form-row"> |
|
|
|
|
|
<div class="btn-group-sm" id="toolbars" role="group"> |
|
|
|
|
|
<span>选择报价信息</span> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="row"> |
|
|
<div class="row"> |
|
|
<div class="col-sm-12 select-table table-striped"> |
|
|
<div class="col-sm-12 select-table table-striped"> |
|
|
<table id="bootstrap-sub-table-editOrder3"></table> |
|
|
<table id="bootstrap-sub-table-editOrder3"></table> |
|
@ -332,113 +327,48 @@ |
|
|
columns: [ |
|
|
columns: [ |
|
|
{checkbox: true}, |
|
|
{checkbox: true}, |
|
|
{field: 'index',align: 'center', title: "序号", |
|
|
{field: 'index',align: 'center', title: "序号", |
|
|
formatter: function (value, row, index) { |
|
|
formatter: function (value, row, index,column) { |
|
|
var columnIndex = $.common.sprintf("<input type='hidden' name='index' value='%s'>", $.table.serialNumber(index)); |
|
|
return $.table.serialNumber(index) - 1; |
|
|
return columnIndex + $.table.serialNumber(index); |
|
|
|
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
{title: '物料索引id',field: 'materialId',align: 'center',visible: false}, |
|
|
{title: '物料索引id',field: 'materialId',align: 'center',visible: false}, |
|
|
{title: '料号',field: 'materialCode',align: 'center'}, |
|
|
{title: '料号',field: 'materialCode',align: 'center'}, |
|
|
{title: '物料名称',field: 'materialName',align: 'center'}, |
|
|
{title: '物料名称',field: 'materialName',align: 'center'}, |
|
|
{title: '图片',field: 'photoUrl', |
|
|
{title: '图片',field: 'photoUrl',formatter: function(value, row, index) {return $.table.imageView(value);} }, |
|
|
formatter: function(value, row, index) { |
|
|
{title: '物料类型',field: 'materialType',align: 'center',formatter: function(value, row, index) {return $.table.selectCategoryLabel(materialTypeDatas, value);}}, |
|
|
return $.table.imageView(value); |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
{title: '物料类型',field: 'materialType',align: 'center', |
|
|
|
|
|
formatter: function(value, row, index) { |
|
|
|
|
|
return $.table.selectCategoryLabel(materialTypeDatas, value); |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
{ title: '描述',field: 'describe',align: 'center'}, |
|
|
{ title: '描述',field: 'describe',align: 'center'}, |
|
|
{title: '品牌',field: 'brand',align: 'center'}, |
|
|
{title: '品牌',field: 'brand',align: 'center'}, |
|
|
{ title: '单位',field: 'unit',align: 'center', |
|
|
{ title: '单位',field: 'unit',align: 'center', formatter: function(value, row, index) {return $.table.selectDictLabel(sysUnitClassDatas, value);}}, |
|
|
formatter: function(value, row, index) { |
|
|
{title: '半成品类型',field: 'processMethod',align: 'center',formatter: function(value, row, index) {return $.table.selectDictLabel(processMethodDatas, value);}}, |
|
|
return $.table.selectDictLabel(sysUnitClassDatas, value); |
|
|
{ title: '对外售价',field: 'materialSole'}, |
|
|
} |
|
|
{title: '国内税率',field: 'countTax',align: 'center'}, |
|
|
}, |
|
|
{ title: '美元汇率',field: 'usdTax', align: 'center'}, |
|
|
{title: '半成品类型',field: 'processMethod',align: 'center', |
|
|
|
|
|
formatter: function(value, row, index) { |
|
|
|
|
|
return $.table.selectDictLabel(processMethodDatas, value); |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
{ title: '对外售价',field: 'materialSole',editable: false}, |
|
|
|
|
|
{title: '国内税率',field: 'countTax',align: 'center',editable: false}, |
|
|
|
|
|
{ title: '美元汇率',field: 'usdTax', align: 'center',editable: false}, |
|
|
|
|
|
{title: '物料的数量',field: 'materialNum',align: 'center',editable: false}, |
|
|
|
|
|
{ title: '物料的不含税单价(RMB)', |
|
|
{ title: '物料的不含税单价(RMB)', |
|
|
field: 'materialNoRmb', |
|
|
field: 'materialNoRmb', |
|
|
align: 'center', |
|
|
align: 'center' |
|
|
editable: { |
|
|
|
|
|
type: 'text', mode: 'inline', // 同样设定为行内编辑模式 |
|
|
|
|
|
enabled: function() {return false; }, |
|
|
|
|
|
options: {placeholder: '请输入USD单价...', maxlength: 10} |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
}, |
|
|
|
|
|
{ title: '物料的含税单价(RMB)',field: 'materialRmb',align: 'center',}, |
|
|
|
|
|
{field: 'materialNum',align: 'center',title: '物料的数量', |
|
|
|
|
|
}, |
|
|
|
|
|
{title: '物料的不含税总价(RMB)',field: 'materialNoRmbSum',align: 'center',}, |
|
|
|
|
|
{ title: '物料的含税总价(RMB)',field: 'materialRmbSum',align: 'center',}, |
|
|
{title: '物料的不含税单价(美元)', |
|
|
{title: '物料的不含税单价(美元)', |
|
|
field: 'materialNoUsd', |
|
|
field: 'materialNoUsd', |
|
|
align: 'center', |
|
|
align: 'center', |
|
|
editable: { |
|
|
|
|
|
type: 'text', mode: 'inline', // 同样设定为行内编辑模式 |
|
|
|
|
|
enabled: function() {return false; }, |
|
|
|
|
|
options: {placeholder: '请输入USD单价...', maxlength: 10} |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
}, |
|
|
{ title: '物料的含税单价(美元)',field: 'materialUsd',align: 'center'}, |
|
|
{ title: '物料的含税单价(美元)',field: 'materialUsd',align: 'center',}, |
|
|
{ title: '物料的含税总价(美元)',field: 'materialUsdSum',align: 'center'}, |
|
|
{ title: '物料的含税总价(美元)',field: 'materialUsdSum', align: 'center',}, |
|
|
{ title: '物料的不含税总价(美元)',field: 'materialNoUsdSum',align: 'center'}, |
|
|
{ title: '物料的不含税总价(美元)',field: 'materialNoUsdSum',align: 'center',}, |
|
|
{ title: '物料的含税总价(RMB)',field: 'materialNoRmbSum', align: 'center'}, |
|
|
{ title: '计划交付时间',field: 'deliveryTime',align: 'center' }, |
|
|
{ title: '物料的不含税总价(RMB)',field: 'materialRmbSum',align: 'center'}, |
|
|
{title: '质保天数',align: 'center',field: 'expiryDay', |
|
|
{ title: '录入人',field: 'createBy',align: 'center',visible: false}, |
|
|
}, |
|
|
{ title: '录入时间',field: 'createTime',align: 'center',visible: false}, |
|
|
{field: 'remark',align: 'center',title: '备注',}, |
|
|
{ title: '更新人',field: 'updateBy',align: 'center',visible: false}, |
|
|
{field: 'auditStatus',align: 'center',title: '审核状态',visible: false, |
|
|
{ title: '上次更新时间',field: 'updateTime',align: 'center',visible: false}, |
|
|
|
|
|
{ title: '备注',field: 'remark',align: 'center', visible: false }, |
|
|
|
|
|
{ title: '审核状态',field: 'auditStatus',align: 'center',visible: false, |
|
|
|
|
|
formatter: function(value, row, index) { |
|
|
formatter: function(value, row, index) { |
|
|
return $.table.selectDictLabel(auditStatusDatas, value); |
|
|
return $.table.selectDictLabel(auditStatusDatas, value); |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
{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(\'' + row.index + '\')"><i class="fa fa-remove"></i>删除</a> '); |
|
|
|
|
|
return actions.join(''); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
], |
|
|
], |
|
|
onEditableSave:function(field, row, oldValue, $el){ |
|
|
|
|
|
var commonCurrency1 = $("#commonCurrency_edit option:selected").val(); |
|
|
|
|
|
var rmbRateInput = parseFloat($("#rmbTax_edit").val()) || 0; |
|
|
|
|
|
var rmbRate = rmbRateInput / 100; |
|
|
|
|
|
rmbRate = parseFloat(rmbRate.toFixed(2)); // 确保rmbRate转换为两位小数的浮点数 |
|
|
|
|
|
var usdRate = parseFloat($("#usdTax_edit").val()) || 0; |
|
|
|
|
|
var testMaterialNum = parseFloat(row.materialNum) || 0; |
|
|
|
|
|
if (commonCurrency1 === '1') { |
|
|
|
|
|
// RMB为基准货币 |
|
|
|
|
|
row.materialRmb = (parseFloat(row.materialNoRmb) * (1 + rmbRate)).toFixed(2); |
|
|
|
|
|
row.materialRmbSum = (parseFloat(row.materialRmb) * testMaterialNum).toFixed(2); |
|
|
|
|
|
row.materialNoRmbSum = (parseFloat(row.materialNoRmb) * testMaterialNum).toFixed(2); |
|
|
|
|
|
row.materialNoUsd = (parseFloat(row.materialNoRmb) / usdRate).toFixed(2); |
|
|
|
|
|
row.materialUsd = row.materialNoUsd; // 保持一致,除非有特别的计算逻辑 |
|
|
|
|
|
row.materialUsdSum = (parseFloat(row.materialUsd) * testMaterialNum).toFixed(2); |
|
|
|
|
|
row.materialNoUsdSum = (parseFloat(row.materialNoUsd) * testMaterialNum).toFixed(2); |
|
|
|
|
|
} else if (commonCurrency1 === '2') { |
|
|
|
|
|
// USD为基准货币 |
|
|
|
|
|
row.materialUsd = row.materialNoUsd |
|
|
|
|
|
row.materialUsdSum = (parseFloat(row.materialUsd) * testMaterialNum).toFixed(2); |
|
|
|
|
|
row.materialNoUsdSum = (parseFloat(row.materialNoUsd) * testMaterialNum).toFixed(2); |
|
|
|
|
|
row.materialNoRmb = (parseFloat(row.materialNoUsd) * usdRate).toFixed(2); |
|
|
|
|
|
row.materialRmb = (parseFloat(row.materialNoRmb) * (1 + rmbRate)).toFixed(2); |
|
|
|
|
|
row.materialNoRmbSum = (parseFloat(row.materialNoRmb) * testMaterialNum).toFixed(2); |
|
|
|
|
|
row.materialRmbSum = (parseFloat(row.materialRmb) * testMaterialNum).toFixed(2); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 确保getTotalAmount函数存在且正确引用 |
|
|
|
|
|
if (typeof getTotalAmount === 'function') { |
|
|
|
|
|
getTotalAmount(); |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
}; |
|
|
}; |
|
|
$.table.init(options); |
|
|
$.table.init(options); |
|
|
$.ajax({ |
|
|
$.ajax({ |
|
@ -629,44 +559,7 @@ |
|
|
minView: "month", |
|
|
minView: "month", |
|
|
autoclose: true |
|
|
autoclose: true |
|
|
}); |
|
|
}); |
|
|
//计算 |
|
|
|
|
|
function getTotalAmount(){ |
|
|
|
|
|
// $("#addFinishbomTable").bootstrapTable('refresh'); |
|
|
|
|
|
let getData = $("#bootstrap-sub-table-editOrder3").bootstrapTable('getData',true); |
|
|
|
|
|
let enterprise = 0;let enterpriseSum = 0; let noRmb = 0; |
|
|
|
|
|
let rmb = 0;let noRmbSum =0;let rmbSum = 0; |
|
|
|
|
|
let noUsd = 0;let usd = 0;let noUsdSum =0; let usdSum = 0; |
|
|
|
|
|
enterprise = getData.length; // 直接获取数据长度 |
|
|
|
|
|
enterpriseSum = getData.reduce((sum, item) => sum + (parseInt(item.materialNum) || 0), 0); |
|
|
|
|
|
for(var i=0;i<getData.length;i++){ |
|
|
|
|
|
noRmb += parseFloat(getData[i].materialNoRmb) || 0; |
|
|
|
|
|
rmb += parseFloat(getData[i].materialRmb) || 0; |
|
|
|
|
|
noRmbSum += parseFloat(getData[i].materialNoRmbSum) || 0; |
|
|
|
|
|
rmbSum += parseFloat(getData[i].materialRmbSum) || 0; |
|
|
|
|
|
noUsd += parseFloat(getData[i].materialNoUsd) || 0; |
|
|
|
|
|
usd += parseFloat(getData[i].materialUsd) || 0; |
|
|
|
|
|
noUsdSum += parseFloat(getData[i].materialNoUsdSum) || 0; |
|
|
|
|
|
usdSum += parseFloat(getData[i].materialUsdSum) || 0; |
|
|
|
|
|
} |
|
|
|
|
|
noRmb = noRmb.toFixed(2); |
|
|
|
|
|
rmb = rmb.toFixed(2); |
|
|
|
|
|
noRmbSum = noRmbSum.toFixed(2); |
|
|
|
|
|
rmbSum = rmbSum.toFixed(2); |
|
|
|
|
|
noUsd = noUsd.toFixed(2); |
|
|
|
|
|
usd = usd.toFixed(2); |
|
|
|
|
|
noUsdSum = noUsdSum.toFixed(2); |
|
|
|
|
|
usdSum = usdSum.toFixed(2); |
|
|
|
|
|
$("input[name='materialSum']").val(enterprise); |
|
|
|
|
|
$("input[name='enterpriseSum']").val(enterpriseSum); |
|
|
|
|
|
$("input[name='noRmbPrice']").val(noRmb); |
|
|
|
|
|
$("input[name='noRmbSum']").val(noRmbSum); |
|
|
|
|
|
$("input[name='rmbPrice']").val(rmb); |
|
|
|
|
|
$("input[name='rmbTaxSum']").val(rmbSum); |
|
|
|
|
|
$("input[name='noUsdPrice']").val(noUsd); |
|
|
|
|
|
$("input[name='noUsdSum']").val(noUsdSum); |
|
|
|
|
|
$("input[name='usdPrice']").val(usd); |
|
|
|
|
|
$("input[name='usdTaxSum']").val(usdSum); |
|
|
|
|
|
} |
|
|
|
|
|
function submitHandler() { |
|
|
function submitHandler() { |
|
|
if ($.validate.form()) { |
|
|
if ($.validate.form()) { |
|
|
if ($('textarea[name="comment"]').val()) { |
|
|
if ($('textarea[name="comment"]').val()) { |
|
|