From f5202459fa6771ebdfe0f63d3c92c06356738ae4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=98=89=E7=A5=A5=20=E8=A9=B9?= Date: Wed, 11 Sep 2024 00:46:23 +0800 Subject: [PATCH] updates --- Modals/DbTableClass.cs | 1 + .../assets/javascript/custom/projectlist.js | 210 +++++++++++++++++- 2 files changed, 203 insertions(+), 8 deletions(-) diff --git a/Modals/DbTableClass.cs b/Modals/DbTableClass.cs index a1b66116..9b36fd5f 100644 --- a/Modals/DbTableClass.cs +++ b/Modals/DbTableClass.cs @@ -158,6 +158,7 @@ public class DbTableClass public string quotation_isdel { get; set; } = ""; public string quotation_revoke { get; set; } = ""; public int quotation_version { get; set; } = 1; + public string quotation_log { get; set; } = ""; public DateTime quotation_createdate { get; set; } = DateTime.Now; public DateTime quotation_modifydate { get; set; } = DateTime.Now; public string quotation_create_uid { get; set; } = ""; diff --git a/wwwroot/assets/javascript/custom/projectlist.js b/wwwroot/assets/javascript/custom/projectlist.js index 309582bf..6e634855 100644 --- a/wwwroot/assets/javascript/custom/projectlist.js +++ b/wwwroot/assets/javascript/custom/projectlist.js @@ -148,8 +148,15 @@ $(document).ready(function () { }); }); + + //新增報價單 $('#QuotationListNewBtn').on('click', function () { - + + deledMainItems = []; + deledSubItems = []; + deledPayments = []; + deledInvoices = []; + quotation_total = 0; $('#quotation_sa').val(service_text()); @@ -659,8 +666,8 @@ $(document).ready(function () { htmlCode += ' \n'; htmlCode += ' ' + "開立品項: " + invoice_name + ' \n'; htmlCode += ' ' + "開立月份: " + invoice_date + ' \n'; - htmlCode += ' '; + htmlCode += ' ' + "金額(未稅): " + AppendComma(invoice_noTaxMoney) + ' \n'; + htmlCode += ' '; htmlCode += '
\n'; htmlCode += ' \n'; htmlCode += '
\n'; @@ -673,6 +680,8 @@ $(document).ready(function () { //報價單儲存 $('#modelQuotationDialogSaveBtn').on('click', function () { + updateGrandTotal(); + var quotation_method = $('#quotation_method').val(); var quotation_uid = $('#quotation_uid').val(); var quotation_version = $('#quotation_version').val(); @@ -688,7 +697,8 @@ $(document).ready(function () { var contactPerson_uid = $('#contactPerson_uid').val(); var contactPerson_uid_old = $('#contactPerson_uid_old').val(); var company_uid = $('#quotation_company_uid').val(); - var mainItems = []; + + var quotation_log = ''; if ($('#quotation_custom').prop('checked') == true) { quotation_prodMethod = 'custom'; @@ -698,12 +708,49 @@ $(document).ready(function () { quotation_prodMethod = 'template'; } + if (quotation_method == 'edit') { + if (quotation_date != quotation_date_old) { + quotation_log += '報價日期由 ' + quotation_date_old + ' 變更為 ' + quotation_date + '\n'; + } + + if (quotation_expStart != quotation_expStart_old || quotation_expEnd != quotation_expEnd_old) { + quotation_log += '報價有效期由 ' + quotation_expStart_old + '至' + quotation_expEnd_old + ' 變更為 ' + quotation_expStart + '至' + quotation_expEnd + '\n'; + } + + if (quotation_name != quotation_name_old) { + quotation_log += '報價單名稱由 ' + quotation_name_old + ' 變更為 ' + quotation_name + '\n'; + } + + if (contactPerson_uid != contactPerson_uid_old) { + quotation_log += '客戶窗口人選變更\n'; + } + + $.each(deledMainItems, function (index, value) { + quotation_log += value.mainItem_msg + '\n'; + }); + + $.each(deledSubItems, function (index, value) { + quotation_log += value.subItem_msg + '\n'; + }); + + $.each(deledPayments, function (index, value) { + quotation_log += value.message + '\n'; + }); + + $.each(deledInvoices, function (index, value) { + quotation_log += value.message + '\n'; + }); + } + + var mainItems = []; //報價單項目 $('#modelItem_div .card').each(function (index, obj) { - var data_type = $(obj).prop('data-type'); - var mainItem_uid = $(obj).prop('data-main-uid'); + + + var data_type = $(obj).attr('data-type'); + var mainItem_uid = $(obj).attr('data-main-uid'); var mainItem_uid_old = $(obj).find('[data-name="mainItem_uid_old"]').val(); - var quotationMainItem_uid = $(obj).prop('data-uid'); + var quotationMainItem_uid = $(obj).attr('data-uid'); var quotationMainItem_name = $(obj).find('[data-name="quotationMainItem_name"]').val(); var quotationMainItem_name_old = $(obj).find('[data-name="quotationMainItem_name_old"]').val(); var quotationMainItem_ac = $(obj).find('[data-name="quotationMainItem_ac"]').val(); @@ -711,8 +758,154 @@ $(document).ready(function () { var quotationMainItem_subTotal = $(obj).find('[data-name="quotationMainItem_subTotal"]').val(); var quotationMainItem_subTotal_old = $(obj).find('[data-name="quotationMainItem_subTotal_old"]').val(); + if (quotation_method == 'edit') { + if (data_type == 'add') { + quotation_log += '新增報價主項目 - ' + quotationMainItem_name + '\n'; + } + + if (data_type == 'edit') { + if (quotationMainItem_name != quotationMainItem_name_old) { + quotation_log += '報價主項目名稱由 [' + quotationMainItem_name_old + '] 更改為 [' + quotationMainItem_name + '] \n'; + } + + if (quotationMainItem_ac != quotationMainItem_ac_old) { + quotation_log += '報價主項目 [' + quotationMainItem_name + '] 的服務費比例由 [' + quotationMainItem_ac_old + '%] 更改為 [' + quotationMainItem_ac + '%] \n'; + } + } + } + + var subitems = []; + + $(obj).find('ol li').each(function (i, item) { + var data_method = $(item).attr('data-method'); + var quotationSubItem_uid = $(item).attr('data-model-subitem-uid'); + var subItem_uid = $(item).find('[data-name="subItem_uid"]').val(); + var quotationSubItem_name = $(item).find('[data-name="quotationSubItem_name"]').val(); + var quotationSubItem_price = $(item).find('[data-name="quotationSubItem_price"]').val(); + var quotationSubItem_hasAC = $(item).find('[data-name="quotationSubItem_hasAC"]').val(); + var quotationSubItem_unitType = $(item).find('[data-name="quotationSubItem_unitType"]').val(); + var quotationSubItem_number = $(item).find('[data-name="quotationSubItem_number"]').val(); + var quotationSubItem_subTotal = $(item).find('[data-name="quotationSubItem_subTotal"]').val(); + var quotationSubItem_descript = $(item).find('[data-name="quotationSubItem_descript"]').val(); + var subItem_uid_old = $(item).find('[data-name="subItem_uid_old"]').val(); + var quotationSubItem_name_old = $(item).find('[data-name="quotationSubItem_name_old"]').val(); + var quotationSubItem_price_old = $(item).find('[data-name="quotationSubItem_price_old"]').val(); + var quotationSubItem_hasAC_old = $(item).find('[data-name="quotationSubItem_hasAC_old"]').val(); + var quotationSubItem_unitType_old = $(item).find('[data-name="quotationSubItem_unitType_old"]').val(); + var quotationSubItem_number_old = $(item).find('[data-name="quotationSubItem_number_old"]').val(); + var quotationSubItem_subTotal_old = $(item).find('[data-name="quotationSubItem_subTotal_old"]').val(); + var quotationSubItem_descript_old = $(item).find('[data-name="quotationSubItem_descript_old"]').val(); + + var subItemFormData = { + quotationSubItem_uid: quotationSubItem_uid, + subItem_uid: subItem_uid, + quotationSubItem_name: quotationSubItem_name, + quotationSubItem_price: quotationSubItem_price, + quotationSubItem_unitType: quotationSubItem_unitType, + quotationSubItem_number: quotationSubItem_number, + quotationSubItem_hasAC: quotationSubItem_hasAC, + quotationSubItem_subTotal: quotationSubItem_subTotal, + quotationSubItem_descript: quotationSubItem_descript + } + + subitems.push(subItemFormData); + + if (data_method == 'edit') { + if (quotationSubItem_name != quotationSubItem_name_old) { + quotation_log += '報價主項目 [' + quotationMainItem_name + '] 的子項目名稱由 [' + quotationSubItem_name_old + '] 更改為 [' + quotationSubItem_name + '] \n'; + } + + if (quotationSubItem_price != quotationSubItem_price_old) { + quotation_log += '報價主項目 [' + quotationMainItem_name + '] 的子項目 [' + quotationSubItem_name + '] 的單價由 [' + AppendComma(quotationSubItem_price_old) + '] 更改為 [' + AppendComma(quotationSubItem_price) + '] \n'; + } + + if (quotationSubItem_unitType != quotationSubItem_unitType_old) { + quotation_log += '報價主項目 [' + quotationMainItem_name + '] 的子項目 [' + quotationSubItem_name + '] 的計價單位由 [' + quotationSubItem_unitType_old + '] 更改為 [' + quotationSubItem_unitType + '] \n'; + } + + if (quotationSubItem_number != quotationSubItem_number_old) { + quotation_log += '報價主項目 [' + quotationMainItem_name + '] 的子項目 [' + quotationSubItem_name + '] 的數量由 [' + AppendComma(quotationSubItem_number_old) + '] 更改為 [' + AppendComma(quotationSubItem_number) + '] \n'; + } + + if (quotationSubItem_subTotal != quotationSubItem_subTotal_old) { + quotation_log += '報價主項目 [' + quotationMainItem_name + '] 的子項目 [' + quotationSubItem_name + '] 的價格由 [' + AppendComma(quotationSubItem_subTotal_old) + '] 更改為 [' + AppendComma(quotationSubItem_subTotal) + '] \n'; + } + + if (quotationSubItem_descript != quotationSubItem_descript_old) { + quotation_log += '報價主項目 [' + quotationMainItem_name + '] 的子項目 [' + quotationSubItem_name + '] 的細項敘述有異動 \n'; + } + + if (quotationSubItem_hasAC != quotationSubItem_hasAC_old) { + quotation_log += '報價主項目 [' + quotationMainItem_name + '] 的子項目 [' + quotationSubItem_name + '] 的收取AC由 [' + quotationSubItem_hasAC_old + '] 改為 [' + quotationSubItem_hasAC + '] \n'; + } + } + + }); + + var mainItemFormData = { + mainItem_uid: mainItem_uid, + quotationMainItem_uid: quotationMainItem_uid, + quotationMainItem_name: quotationMainItem_name, + quotationMainItem_ac: quotationMainItem_ac, + quotationMainItem_subTotal: quotationMainItem_subTotal, + subitems: subitems + } + + mainItems.push(mainItemFormData); }); + var payments = []; + $('#payment_div').find('ol li').each(function (i, item) { + + var payment_method = $(item).find('[data-name="payment_method"]').val(); + var payment_methodname = $(item).find('[data-name="payment_methodname"]').val(); + var payment_descript = $(item).find('[data-name="payment_descript"]').val(); + + + var paymentFormData = { + payment_method: payment_method, + payment_methodname: payment_methodname, + payment_descript: payment_descript + } + + payments.push(paymentFormData); + }); + + var invoices = []; + $('#invoice_div').find('ol li').each(function (i, item) { + + var invoice_name = $(item).find('[data-name="invoice_name"]').val(); + var invoice_date = $(item).find('[data-name="invoice_date"]').val(); + var invoice_noTaxMoney = $(item).find('[data-name="invoice_noTaxMoney"]').val(); + + + var invoiceFormData = { + invoice_name: invoice_name, + invoice_date: invoice_date, + invoice_noTaxMoney: invoice_noTaxMoney + } + + invoices.push(invoiceFormData); + }); + + var formData = { + method: quotation_method, + quotation_uid: quotation_uid, + quotation_version: quotation_version, + quotation_prodMethod: quotation_prodMethod, + quotation_date: quotation_date, + quotation_expStart: quotation_expStart, + quotation_expEnd: quotation_expEnd, + quotation_name: quotation_name, + contactPerson_uid: contactPerson_uid, + company_uid: company_uid, + quotation_log: quotation_log, + mainItems: mainItems, + payments: payments, + invoices: invoices + } + + var testflag = 1; }); }); @@ -1412,7 +1605,8 @@ function noTaxCalcItemPrice() { } else { ac_string = quotationMainItem_ac + '%' } - + + $(obj).find('[data-name="quotationMainItem_subTotal"]').val(tmpTotal); $(obj).find('[data-span="quotationMainItem_subTotal"]').html('項目合計: ' + AppendComma(tmpTotal)); $(obj).find('[data-span="quotationMainItem_ac"]').html('AC: ' + ac_string + ' '); });