Browse Source

[feat]采购管理:修改添加获取采购报价子表方法,修改采购报价子表子表供应商下拉框

dev
zhangsiqi 5 months ago
parent
commit
ad78373f86
  1. 9
      ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseQuoteChildService.java
  2. 10
      ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseQuoteService.java
  3. 123
      ruoyi-admin/src/main/resources/templates/system/salesOrder/add.html

9
ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseQuoteChildService.java

@ -2,6 +2,7 @@ package com.ruoyi.purchase.service;
import java.util.List;
import com.ruoyi.purchase.domain.PurchaseQuoteChild;
import org.springframework.transaction.annotation.Transactional;
/**
* 采购报价单物料信息Service接口
@ -59,6 +60,13 @@ public interface IPurchaseQuoteChildService
*/
public int deletePurchaseQuoteChildById(Long purchaseQuoteChildId);
/**
* 根据报价单号逻辑删除采购报价单物料信息
* @param quoteCode
* @return
*/
public int deletePurchaseQuoteChildByQuoteCode(String purchaseQuoteCode);
/**
* 作废采购报价单物料信息
* @param purchaseQuoteChildId 采购报价单物料信息ID
@ -72,4 +80,5 @@ public interface IPurchaseQuoteChildService
* @return
*/
int restorePurchaseQuoteChildById(Long purchaseQuoteChildId);
}

10
ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseQuoteService.java

@ -2,6 +2,7 @@ package com.ruoyi.purchase.service;
import java.util.List;
import com.ruoyi.purchase.domain.PurchaseQuote;
import org.springframework.transaction.annotation.Transactional;
/**
* 采购报价单Service接口
@ -33,6 +34,7 @@ public interface IPurchaseQuoteService
* @param purchaseQuote 采购报价单
* @return 结果
*/
@Transactional(rollbackFor = Exception.class)
public int insertPurchaseQuote(PurchaseQuote purchaseQuote);
/**
@ -41,6 +43,7 @@ public interface IPurchaseQuoteService
* @param purchaseQuote 采购报价单
* @return 结果
*/
@Transactional(rollbackFor = Exception.class)
public int updatePurchaseQuote(PurchaseQuote purchaseQuote);
/**
@ -72,4 +75,11 @@ public interface IPurchaseQuoteService
* @return
*/
int restorePurchaseQuoteById(Long purchaseQuoteId);
/**
* 生成采购报价单单号
* @param
* @return 结果
*/
Object getId();
}

123
ruoyi-admin/src/main/resources/templates/system/salesOrder/add.html

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

Loading…
Cancel
Save