|
|
@@ -24,6 +24,15 @@
|
|
|
$(cloneObj).find("input.priceTax").attr("name", "contractMaterialList[" + index + "].priceTax").val(row.priceTax || 0);
|
|
|
$(cloneObj).find("input.purchaseId").attr("name", "contractMaterialList[" + index + "].purchaseId").val(row.purchaseId);
|
|
|
$(cloneObj).find("input.purchaseNumber").attr("name", "contractMaterialList[" + index + "].purchaseNumber").val(row.purchaseNumber);
|
|
|
+
|
|
|
+ // 如果是销售合同(contract_type=1),隐藏采购申请单编号输入框,但保留删除图标
|
|
|
+ var contractType = $("#contract_type").val();
|
|
|
+ if (contractType == '1') {
|
|
|
+ $(cloneObj).find("input.purchaseNumber").hide();
|
|
|
+ } else {
|
|
|
+ $(cloneObj).find("input.purchaseNumber").show();
|
|
|
+ }
|
|
|
+
|
|
|
$("#firstPoint").before(cloneObj);
|
|
|
}
|
|
|
|
|
|
@@ -37,8 +46,61 @@
|
|
|
// 监听合同类型变化,动态调整需方和供方的显示
|
|
|
function initContractTypeListener() {
|
|
|
$("#contract_type").on('change', function() {
|
|
|
- var contractType = $(this).val();
|
|
|
- adjustPartyDisplay(contractType);
|
|
|
+ var oldContractType = $(this).data('last-value'); // 获取之前的合同类型
|
|
|
+ var newContractType = $(this).val();
|
|
|
+
|
|
|
+ // 如果合同类型发生变化,检查是否需要清理物料
|
|
|
+ if (oldContractType !== newContractType) {
|
|
|
+ // 切换到销售合同时,检查是否有来自采购申请单的物料
|
|
|
+ if (newContractType == '1') {
|
|
|
+ var invalidMaterials = [];
|
|
|
+ $(".startTr1").not(".hide").each(function(i, v) {
|
|
|
+ var purchaseId = $(v).find("input.purchaseId").val();
|
|
|
+ var purchaseNumber = $(v).find("input.purchaseNumber").val();
|
|
|
+ // 排除空值、null字符串、0等无效值
|
|
|
+ if ((purchaseId && purchaseId !== 'null' && purchaseId !== '0' && purchaseId !== 'undefined') ||
|
|
|
+ (purchaseNumber && purchaseNumber !== 'null' && purchaseNumber !== 'undefined')) {
|
|
|
+ invalidMaterials.push(v);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ if (invalidMaterials.length > 0) {
|
|
|
+ $.ligerDialog.confirm(
|
|
|
+ '检测到已选择的物料中有 ' + invalidMaterials.length + ' 条来自采购申请单的数据,销售合同不允许使用采购申请单物料,是否清除这些不符合要求的物料?',
|
|
|
+ function(yes) {
|
|
|
+ if (yes) {
|
|
|
+ // 只清除不符合要求的物料行
|
|
|
+ $(invalidMaterials).remove();
|
|
|
+ addMaterialIdAndName();
|
|
|
+ calculateTotalPrice();
|
|
|
+ updateContractMoneyState();
|
|
|
+ checkAndRemovePaymentInfo();
|
|
|
+ // 更新采购申请单编号的显示状态
|
|
|
+ updatePurchaseNumberVisibility(newContractType);
|
|
|
+ updateMaterialTableHeader(newContractType);
|
|
|
+ $.ligerDialog.success('已清除 ' + invalidMaterials.length + ' 条不符合要求的物料');
|
|
|
+ // 用户确认后,更新last-value为新值
|
|
|
+ $("#contract_type").data('last-value', newContractType);
|
|
|
+ } else {
|
|
|
+ // 用户取消,恢复原来的合同类型,不更新last-value
|
|
|
+ $("#contract_type").val(oldContractType || '');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ );
|
|
|
+ // 等待用户确认后再继续,先不执行后续操作
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 更新最后的合同类型值
|
|
|
+ $(this).data('last-value', newContractType);
|
|
|
+
|
|
|
+ adjustPartyDisplay(newContractType);
|
|
|
+ // 同时更新物料行中采购申请单编号的显示状态
|
|
|
+ updatePurchaseNumberVisibility(newContractType);
|
|
|
+ // 更新表头显示
|
|
|
+ updateMaterialTableHeader(newContractType);
|
|
|
});
|
|
|
}
|
|
|
|
|
|
@@ -85,6 +147,38 @@ function adjustPartyDisplay(contractType, preserveValues) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+// 更新物料行中采购申请单编号的显示状态
|
|
|
+function updatePurchaseNumberVisibility(contractType) {
|
|
|
+ $(".startTr1").not(".hide").each(function(i, v) {
|
|
|
+ if (contractType == '1') {
|
|
|
+ // 销售合同:隐藏采购申请单编号输入框
|
|
|
+ $(v).find("input.purchaseNumber").hide();
|
|
|
+ } else {
|
|
|
+ // 其他合同:显示采购申请单编号输入框
|
|
|
+ $(v).find("input.purchaseNumber").show();
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+// 更新物料表格表头显示
|
|
|
+function updateMaterialTableHeader(contractType) {
|
|
|
+ // 找到物品信息区域的表格表头
|
|
|
+ var materialTable = $("#firstDiv .l-table-edit-new");
|
|
|
+ if (materialTable.length > 0) {
|
|
|
+ var headerCells = materialTable.find("th");
|
|
|
+ // 采购申请单编号是第9列(索引8)
|
|
|
+ if (headerCells.length >= 9) {
|
|
|
+ if (contractType == '1') {
|
|
|
+ // 销售合同:清空采购申请单编号列的文字,但保留单元格占位
|
|
|
+ $(headerCells[8]).text("");
|
|
|
+ } else {
|
|
|
+ // 其他合同:恢复采购申请单编号列的文字
|
|
|
+ $(headerCells[8]).text("采购申请单编号");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
//为添加的行填充name及id
|
|
|
function addMaterialIdAndName() {
|
|
|
//物品信息tr
|
|
|
@@ -266,12 +360,14 @@ function material_search(){
|
|
|
$.ligerDialog.warn('请先选择供应商!');
|
|
|
return;
|
|
|
} */
|
|
|
+ // 获取合同类型
|
|
|
+ var contractType = $("#contract_type").val() || "";
|
|
|
var obj = window.top;
|
|
|
obj.$.ligerDialog.open({
|
|
|
title : '选择物料',
|
|
|
width : 1100,
|
|
|
height : 380,
|
|
|
- url : 'contractEntry.do?task=toSelectMaterialForContract&checkbox=true',
|
|
|
+ url : 'contractEntry.do?task=toSelectMaterialForContract&checkbox=true&contractType=' + contractType,
|
|
|
buttons : [ {
|
|
|
text : '确定',
|
|
|
onclick : f_importOKMaterial
|