diff --git a/ruoyi-admin/src/main/resources/templates/project/order/add.html b/ruoyi-admin/src/main/resources/templates/project/order/add.html index 7bd13bc1..58547a8f 100644 --- a/ruoyi-admin/src/main/resources/templates/project/order/add.html +++ b/ruoyi-admin/src/main/resources/templates/project/order/add.html @@ -305,6 +305,24 @@ + + 付款方式 + + + + 付款比例 + + + + + + 描述 + + + +
@@ -517,6 +535,86 @@ }) } + var descriptionTemplates = { + '1-2': '总代预付{ratio}%订单金额作为备货押金后开始备货生产,备货完成供货商发起付款通知后,总代需1个月内支付尾款完成提货,否则备货押金不予退还。', + '2-2': '进货商预付{ratio}%订单金额作为备货押金后开始备货生产,备货完成供货商发起付款通知后,进货商需3个工作日内付全部剩余款项,即可享受订单约定的现金折扣。', + '2-3': '进货商预付{ratio}%订单金额作为备货押金后开始备货生产,备货完成供货商发起付款通知后,供货商需在1个月内提交剩余款项额度的商业汇票完成提货,否则备货押金不予退还。' + }; + + function updateDescriptionText() { + var paymentMethod = $('#paymentMethod').val(); + var ratio = $('#paymentRatio').val(); + var descriptionTemplate = descriptionTemplates[paymentMethod]; + if (descriptionTemplate) { + $('#paymentDescription').val(descriptionTemplate.replace('{ratio}', ratio)); + } + } + + function changePaymentDescription() { + var paymentMethod = $('#paymentMethod').val(); + var description = ''; + var paymentRatio = 0; + var setRatio = false; + var isFullPayment = false; + + if (paymentMethod === '1-1') { + description = '备货完成供货商发起付款通知后,总代按照订单金额支付全款。'; + paymentRatio = 100; + setRatio = true; + isFullPayment = true; + } else if (paymentMethod === '1-2') { + description = descriptionTemplates['1-2']; + paymentRatio = 30; + setRatio = true; + } else if (paymentMethod === '2-1') { + description = '备货完成供货商发起付款通知后,进货商需3个工作日内付订单全部款项,即可享受订单约定的现金折扣。'; + paymentRatio = 100; + setRatio = true; + isFullPayment = true; + } else if (paymentMethod === '2-2') { + description = descriptionTemplates['2-2']; + paymentRatio = 30; + setRatio = true; + } else if (paymentMethod === '2-3') { + description = descriptionTemplates['2-3']; + paymentRatio = 30; + setRatio = true; + } + + $('#paymentDescription').val(description.replace('{ratio}', paymentRatio)); + + if (setRatio) { + $('#paymentRatio').val(paymentRatio); + } else { + $('#paymentRatio').val(''); + } + + if (isFullPayment) { + $('#paymentRatio').prop('readonly', true); + } else { + $('#paymentRatio').prop('readonly', false); + } + } + + function updatePaymentOptions() { + var orderChannel = $('[name="orderChannel"]').val(); + var $paymentMethodSelect = $('#paymentMethod'); + $paymentMethodSelect.empty(); + $paymentMethodSelect.append(''); + + if (orderChannel == '1') { // 总代 + $paymentMethodSelect.append(''); + $paymentMethodSelect.append(''); + } else if (orderChannel == '2') { // 直签 + $paymentMethodSelect.append(''); + $paymentMethodSelect.append(''); + $paymentMethodSelect.append(''); + } + // Clear description and ratio when channel changes + $('#paymentDescription').val(''); + $('#paymentRatio').val(''); + } + $(function () { initProductList() initProjcet() @@ -562,6 +660,7 @@ $("input[name='dutyPhone']").val(user.phonenumber) } + $('[name="orderChannel"]').on('change', updatePaymentOptions); }) function searchProject() { diff --git a/ruoyi-admin/src/main/resources/templates/project/order/approve.html b/ruoyi-admin/src/main/resources/templates/project/order/approve.html index 70b8c460..11db72c0 100644 --- a/ruoyi-admin/src/main/resources/templates/project/order/approve.html +++ b/ruoyi-admin/src/main/resources/templates/project/order/approve.html @@ -363,6 +363,34 @@ + + 付款方式 + + + + 付款比例 + + + + + + + 描述 + + + +
@@ -823,7 +851,7 @@ $("input[name='dutyPhone']").val(user.phonenumber) } } - $('#approve-detail').find('input,select').each(function () { + $('#approve-detail').find('input,select,textarea').each(function () { $(this).prop("disabled", true); }) let headerHtml=$(` @@ -852,6 +880,30 @@ `) $wrapper.after(footHtmlShow); + // Set payment method from database + var initialPaymentMethod = /*[[${projectOrderInfo.paymentMethod}]]*/ null; + if(initialPaymentMethod) { + $('#paymentMethod').val(initialPaymentMethod); + } + + var initialPaymentDescription = /*[[${projectOrderInfo.paymentDescription}]]*/ null; + if (initialPaymentDescription) { + $('#paymentDescription').val(initialPaymentDescription); + } else { + changePaymentDescription(); // Generate description only if it's empty + } + + // Set payment ratio from database, which might have been edited + var initialPaymentRatio = /*[[${projectOrderInfo.paymentRatio}]]*/ null; + if(initialPaymentRatio) { + $('#paymentRatio').val(initialPaymentRatio); + } + + // After setting initial values, check if the payment method is full payment and set readonly + var paymentMethod = $('#paymentMethod').val(); + if (paymentMethod === '1-1' || paymentMethod === '2-1') { + $('#paymentRatio').prop('readonly', true); + } }) function searchProject() { @@ -1231,6 +1283,64 @@ ${ } + const descriptionTemplates = { + '1-1': '备货完成供货商发起付款通知后,总代按照订单金额支付全款。', + '1-2': '总代预付{ratio}%订单金额作为备货押金后开始备货生产,备货完成供货商发起付款通知后,总代需1个月内支付尾款完成提货,否则备货押金不予退还。', + '2-1': '备货完成供货商发起付款通知后,进货商需3个工作日内付订单全部款项,即可享受订单约定的现金折扣。', + '2-2': '进货商预付{ratio}%订单金额作为备货押金后开始备货生产,备货完成供货商发起付款通知后,进货商需3个工作日内付全部剩余款项,即可享受订单约定的现金折扣。', + '2-3': '进货商预付{ratio}%订单金额作为备货押金后开始备货生产,备货完成供货商发起付款通知后,供货商需在1个月内提交剩余款项额度的商业汇票完成提货,否则备货押金不予退还。' + }; + + + + function changePaymentDescription() { + var paymentMethod = $('#paymentMethod').val(); + var description = ''; + var paymentRatio = 0; + var setRatio = false; + var isFullPayment = false; + description = descriptionTemplates[paymentMethod]; + if (paymentMethod === '1-1') { + + paymentRatio = 100; + setRatio = true; + isFullPayment = true; + } else if (paymentMethod === '1-2') { + + paymentRatio = 30; + setRatio = true; + } else if (paymentMethod === '2-1') { + + paymentRatio = 100; + setRatio = true; + isFullPayment = true; + } else if (paymentMethod === '2-2') { + + paymentRatio = 30; + setRatio = true; + } else if (paymentMethod === '2-3') { + + paymentRatio = 30; + setRatio = true; + } + + if(description){ + $('#paymentDescription').val(description.replace('{ratio}', paymentRatio)); + } + + if (setRatio) { + $('#paymentRatio').val(paymentRatio); + } else { + $('#paymentRatio').val(''); + } + + if (isFullPayment) { + $('#paymentRatio').prop('readonly', true); + } else { + $('#paymentRatio').prop('readonly', false); + } + } + diff --git a/ruoyi-admin/src/main/resources/templates/project/order/edit.html b/ruoyi-admin/src/main/resources/templates/project/order/edit.html index 1283c57a..298b7323 100644 --- a/ruoyi-admin/src/main/resources/templates/project/order/edit.html +++ b/ruoyi-admin/src/main/resources/templates/project/order/edit.html @@ -365,6 +365,27 @@ + + 付款方式 + + + + 付款比例 + + + + + + 描述 + + + +
@@ -886,6 +907,33 @@ $(this).prop("disabled", true); }) } + + $('[name="orderChannel"]').on('change', updatePaymentOptions); + updatePaymentOptions(); + // Set payment method from database + var initialPaymentMethod = /*[[${projectOrderInfo.paymentMethod}]]*/ null; + if(initialPaymentMethod) { + $('#paymentMethod').val(initialPaymentMethod); + } + + var initialPaymentDescription = /*[[${projectOrderInfo.paymentDescription}]]*/ null; + if (initialPaymentDescription) { + $('#paymentDescription').val(initialPaymentDescription); + } else { + changePaymentDescription(); // Generate description only if it's empty + } + + // Set payment ratio from database, which might have been edited + var initialPaymentRatio = /*[[${projectOrderInfo.paymentRatio}]]*/ null; + if(initialPaymentRatio) { + $('#paymentRatio').val(initialPaymentRatio); + } + + // After setting initial values, check if the payment method is full payment and set readonly + var paymentMethod = $('#paymentMethod').val(); + if (paymentMethod === '1-1' || paymentMethod === '2-1') { + $('#paymentRatio').prop('readonly', true); + } }) function searchProject() { @@ -1254,6 +1302,88 @@ } } + const descriptionTemplates = { + '1-1': '备货完成供货商发起付款通知后,总代按照订单金额支付全款。', + '1-2': '总代预付{ratio}%订单金额作为备货押金后开始备货生产,备货完成供货商发起付款通知后,总代需1个月内支付尾款完成提货,否则备货押金不予退还。', + '2-1': '备货完成供货商发起付款通知后,进货商需3个工作日内付订单全部款项,即可享受订单约定的现金折扣。', + '2-2': '进货商预付{ratio}%订单金额作为备货押金后开始备货生产,备货完成供货商发起付款通知后,进货商需3个工作日内付全部剩余款项,即可享受订单约定的现金折扣。', + '2-3': '进货商预付{ratio}%订单金额作为备货押金后开始备货生产,备货完成供货商发起付款通知后,供货商需在1个月内提交剩余款项额度的商业汇票完成提货,否则备货押金不予退还。' + }; + + function updateDescriptionText() { + var paymentMethod = $('#paymentMethod').val(); + var ratio = $('#paymentRatio').val(); + var descriptionTemplate = descriptionTemplates[paymentMethod]; + if (descriptionTemplate) { + $('#paymentDescription').val(descriptionTemplate.replace('{ratio}', ratio)); + } + } + + function changePaymentDescription() { + var paymentMethod = $('#paymentMethod').val(); + var description = ''; + var paymentRatio = 0; + var setRatio = false; + var isFullPayment = false; + description = descriptionTemplates[paymentMethod]; + if (paymentMethod === '1-1') { + paymentRatio = 100; + setRatio = true; + isFullPayment = true; + } else if (paymentMethod === '1-2') { + paymentRatio = 30; + setRatio = true; + } else if (paymentMethod === '2-1') { + paymentRatio = 100; + setRatio = true; + isFullPayment = true; + } else if (paymentMethod === '2-2') { + paymentRatio = 30; + setRatio = true; + } else if (paymentMethod === '2-3') { + paymentRatio = 30; + setRatio = true; + } + + if(description){ + $('#paymentDescription').val(description.replace('{ratio}', paymentRatio)); + } + + if (setRatio) { + $('#paymentRatio').val(paymentRatio); + } else { + $('#paymentRatio').val(''); + } + + if (isFullPayment) { + $('#paymentRatio').prop('readonly', true); + } else { + $('#paymentRatio').prop('readonly', false); + } + } + + + function updatePaymentOptions() { + var orderChannel = $('[name="orderChannel"]').val(); + var $paymentMethodSelect = $('#paymentMethod'); + var paymentMethod = /*[[${projectOrderInfo.paymentMethod}]]*/ null; + $paymentMethodSelect.empty(); + $paymentMethodSelect.append(''); + + if (orderChannel == '1') { // 总代 + $paymentMethodSelect.append(''); + $paymentMethodSelect.append(''); + } else if (orderChannel == '2') { // 直签 + $paymentMethodSelect.append(''); + $paymentMethodSelect.append(''); + $paymentMethodSelect.append(''); + } + + if (paymentMethod) { + $paymentMethodSelect.val(paymentMethod); + } + } + function initSaveDraft() { if (!canUpdate) { parent.$('.layui-layer-btn0').css('display', 'none') diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectOrderInfo.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectOrderInfo.java index e2545794..95d225e9 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectOrderInfo.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectOrderInfo.java @@ -248,6 +248,21 @@ public class ProjectOrderInfo extends BaseEntity { private String supplier; private String approve; + /** + * 付款方式 + */ + private String paymentMethod; + + /** + * 付款比例 + */ + private Integer paymentRatio; + + /** + * 付款描述 + */ + private String paymentDescription; + private List contractFileList; private List configFileList; private Map> contractTableData; diff --git a/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml b/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml index 09c46c0d..316e05fc 100644 --- a/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml +++ b/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml @@ -34,6 +34,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + @@ -41,7 +44,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" shipment_amount, actual_purchase_amount, order_end_time, delivery_time, company_delivery, notifier, notifier_email, notifier_phone, duty, duty_email, duty_phone, order_channel, partner_code, supplier,notifier_address, remark, order_status, create_by, create_time, update_by, update_time,version_code,process_type,process_template,discount_fold, - delivery_status,sign_status,outer_status,approve_time + delivery_status,sign_status,outer_status,approve_time,payment_method,payment_ratio,payment_description from project_order_info t1 @@ -51,7 +54,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" t1.notifier_email, t1.notifier_phone, t1.duty, t1.duty_email, t1.duty_phone, t1.order_channel, t1.partner_code, t1.supplier, t1.remark, t1.order_status, t1.create_by, t1.create_time, t1.update_by, t1.update_time,t1.partner_user_name,t1.partner_email ,t1.partner_phone,t1.version_code,t1.process_type,t1.process_template,t1.discount_fold,t1.notifier_address, - t1.delivery_status,t1.sign_status,t1.outer_status,t1.approve_time + t1.delivery_status,t1.sign_status,t1.outer_status,t1.approve_time,t1.payment_method,t1.payment_ratio,t1.payment_description ,t2.project_code,t2.project_name,t2.province,t2.customer_name,t2.customer_code,t2.industry_type,t2.bg_property,t2.agent_code,t2.estimated_order_time ,t2.customer_phone,t2.customer_user_name,t2.agent_code,t2.customer_code,t2.partner_name project_partner_name ,t3.partner_name,t3.level,t3.system_user_id @@ -307,6 +310,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" process_type, process_template, discount_fold, + payment_method, + payment_ratio, + payment_description, #{projectId}, @@ -345,6 +351,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{processType}, #{processTemplate}, #{discountFold}, + #{paymentMethod}, + #{paymentRatio}, + #{paymentDescription}, @@ -477,6 +486,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update_by = #{updateBy}, update_time = #{updateTime}, approve_time = #{approveTime}, + payment_method = #{paymentMethod}, + payment_ratio = #{paymentRatio}, + payment_description = #{paymentDescription}, where id = #{id} @@ -490,6 +502,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" business_email = #{businessEmail}, business_phone = #{businessPhone}, approve_time = #{approveTime}, + payment_method = #{paymentMethod}, + payment_ratio = #{paymentRatio}, + payment_description = #{paymentDescription},