From 3962c2bb0435484b60a3e408e4738d792e249a53 Mon Sep 17 00:00:00 2001
From: buli <137736985@qq.com>
Date: 星期一, 05 六月 2023 11:09:55 +0800
Subject: [PATCH] LEX CommunityNewCmp
---
force-app/main/default/classes/LexConInvoicedetailsController.cls | 392 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 392 insertions(+), 0 deletions(-)
diff --git a/force-app/main/default/classes/LexConInvoicedetailsController.cls b/force-app/main/default/classes/LexConInvoicedetailsController.cls
new file mode 100644
index 0000000..18a4fb5
--- /dev/null
+++ b/force-app/main/default/classes/LexConInvoicedetailsController.cls
@@ -0,0 +1,392 @@
+public with sharing class LexConInvoicedetailsController {
+ //鍑哄簱鍗曚娇鐢�
+ public static Consumable_order__c coc { get; set; }
+
+ //鍙戠エ浣跨敤
+ public static Consumable_order__c invoicecode { get; set; }
+
+ //浠锋牸璁$畻缁撴灉
+ public static Decimal sumPrice {get;set;}
+
+ //鍑哄簱鍗旾D
+ private static String orderId {get;set;}
+ //鍙戠エ鍗旾D
+ private static String invoiceId {get;set;}
+ //鍑哄簱鍗曟槑缁�1锛岀敾闈㈡樉绀轰娇鐢�
+ public static List<ConsumableorderdetailsInfo> consumableorderdetails1Records { get; set; }
+ //鏄庣粏鏁伴噺
+ public static Integer invoiceOrderRecoedsCount {
+ get {
+ return consumableorderdetails1Records == null ? 0 : consumableorderdetails1Records.size();
+ }
+ }
+
+ //椤甸潰鍒濆鍖�
+ @AuraEnabled
+ public static ResponseBodyLWC init(String orderIdLwc,String invoiceIdLwc) {
+ ResponseBodyLWC res = new ResponseBodyLWC();
+ Map<String, object> data = new Map<String, object>();
+ res.entity = data;
+
+ orderId = orderIdLwc;
+ invoiceId = invoiceIdLwc;
+ consumableorderdetails1Records = new List<ConsumableorderdetailsInfo>();
+ sumPrice = 0;
+ coc = new Consumable_order__c();
+ //鍑哄簱鍗曚俊鎭�
+ coc = [SELECT Id, Name, Outbound_Date__c, Order_ForDealerText__c, Dealer_Info__c FROM Consumable_order__c WHERE Id = :orderId];
+ //鍙戠エ淇℃伅
+ invoicecode = [
+ SELECT Id, Name, ShipmentAccount__c, Order_ForCustomerText__c, Order_ForDealerText__c, Dealer_Info__c
+ FROM Consumable_order__c
+ WHERE Id = :invoiceId
+ ];
+ //鍙戠エ鏄庣粏1
+ Map<String, Consumable_Orderdetails__c> invoiceorderdet1CountMap = new Map<String, Consumable_Orderdetails__c>();
+ List<Consumable_Orderdetails__c> invoiceorderdetails1 = [
+ SELECT
+ Id,
+ Name,
+ Consumable_order__c,
+ Asset_Model_No__c,
+ Consumable_Product__r.Asset_Model_No__c,
+ Consumable_Count__c,
+ Shipment_Count__c,
+ RrturnPro_count__c,
+ Delivery_List_RMB__c,
+ InvoicedProCost_RMB__c,
+ Invoiced_Procount__c,
+ Invoiced_Count__c,
+ Invoice_Unitprice__c,
+ InvoiceProNot_count__c,
+ Invoice_Cost_RMB__c,
+ Invoice_No__c,
+ Invoice_Unit__c,
+ Invoicedet1_OD_link__c
+ FROM Consumable_Orderdetails__c
+ WHERE Consumable_order__c = :invoiceId AND Invoicedet1_OD_link__c = :orderId
+ ];
+ for (Integer i = 0; i < invoiceorderdetails1.size(); i++) {
+ invoiceorderdet1CountMap.put(invoiceorderdetails1[i].Asset_Model_No__c, invoiceorderdetails1[i]);
+ }
+ //鍑哄簱鍗曟槑缁�1锛岀敾闈㈡樉绀轰娇鐢�
+ List<Consumable_Orderdetails__c> consumableorderdetails1 = [
+ SELECT
+ Id,
+ Name,
+ Consumable_order__c,
+ Asset_Model_No__c,
+ Consumable_Product__r.Asset_Model_No__c,
+ Consumable_Count__c,
+ Shipment_Count__c,
+ RrturnPro_count__c,
+ Delivery_List_RMB__c,
+ InvoicedProCost_RMB__c,
+ Invoiced_Procount__c,
+ Invoiced_Count__c,
+ Invoice_Unitprice__c,
+ InvoiceProNot_count__c,
+ Invoice_Cost_RMB__c,
+ Invoice_No__c,
+ Consumable_Product__c,
+ Intra_Trade_List_RMB__c,
+ Dealer_Custom_Price__c,
+ Sum_of_money__c,
+ Used_date__c,
+ Send_date__c,
+ Box_Piece__c,
+ Invoice_Unit__c,
+ Consumable_Product__r.Packing_list_manual__c,
+ ProductPacking_list_manual__c
+ FROM Consumable_Orderdetails__c
+ WHERE Consumable_order__c = :orderId
+ ];
+ for (Integer i = 0; i < consumableorderdetails1.size(); i++) {
+ consumableorderdetails1Records.add(new ConsumableorderdetailsInfo(consumableorderdetails1[i]));
+ }
+ for (ConsumableorderdetailsInfo ass : consumableorderdetails1Records) {
+ if (invoiceorderdet1CountMap.containsKey(ass.esd.Asset_Model_No__c)) {
+ ass.check = true;
+ if (
+ invoiceorderdet1CountMap.get(ass.esd.Asset_Model_No__c).Invoice_Unit__c == null ||
+ invoiceorderdet1CountMap.get(ass.esd.Asset_Model_No__c).Invoice_Unit__c == ''
+ ) {
+ ass.esd.Invoice_Unit__c = ass.esd.Box_Piece__c;
+ } else {
+ ass.esd.Invoice_Unit__c = invoiceorderdet1CountMap.get(ass.esd.Asset_Model_No__c).Invoice_Unit__c;
+ }
+ if (
+ invoiceorderdet1CountMap.get(ass.esd.Asset_Model_No__c).Invoiced_Count__c == null ||
+ invoiceorderdet1CountMap.get(ass.esd.Asset_Model_No__c).Invoiced_Count__c == 0
+ ) {
+ ass.invoiceCount = ass.esd.Invoiced_Count__c;
+ } else {
+ ass.invoiceCount = invoiceorderdet1CountMap.get(ass.esd.Asset_Model_No__c).Invoiced_Count__c;
+ }
+
+ if (ass.esd.Box_Piece__c == '鐩�' && ass.esd.Invoice_Unit__c == '涓�') {
+ ass.esd.Invoice_Unitprice__c = ass.esd.Delivery_List_RMB__c / ass.Packing_list_manual;
+ } else {
+ ass.esd.Invoice_Unitprice__c = ass.esd.Delivery_List_RMB__c;
+ }
+ Decimal invoiceAllprice = 0.00;
+ invoiceAllprice = (ass.invoiceCount * ass.esd.Invoice_Unitprice__c).setScale(2);
+ ass.invoiceAllprice = invoiceAllprice;
+ } else {
+ ass.invoiceCount = ass.esd.InvoiceProNot_count__c;
+ ass.esd.Invoice_Unit__c = ass.esd.Box_Piece__c;
+ ass.esd.Invoice_Unitprice__c = ass.esd.Delivery_List_RMB__c;
+ }
+ }
+ data.put('invoicecode',invoicecode);
+ data.put('coc',coc);
+ data.put('consumableorderdetails1Records',consumableorderdetails1Records);
+ res.status = 'Success';
+ res.code = 200;
+ System.debug('res = ' + res);
+ return res;
+ }
+
+ @AuraEnabled
+ public static ResponseBodyLWC save(String consumableorderdetails1RecordsLwc,String invoiceIdLwc,String orderIdLwc) {
+ ResponseBodyLWC res = new ResponseBodyLWC();
+ Map<String, object> data = new Map<String, object>();
+ res.entity = data;
+
+ consumableorderdetails1Records= (List<ConsumableorderdetailsInfo>)JSON.deserialize(consumableorderdetails1RecordsLwc, List<ConsumableorderdetailsInfo>.class);
+ invoiceId = invoiceIdLwc;
+ orderId = orderIdLwc;
+ System.debug('consumableorderdetails1Records = ' + consumableorderdetails1Records);
+ System.debug('invoiceId = ' + invoiceId);
+ System.debug('orderId = ' + orderId);
+
+ Savepoint sp = Database.setSavepoint();
+ //鏂拌鍙戠エ鏄庣粏1
+ List<Consumable_Orderdetails__c> invoiceorderList1 = new List<Consumable_Orderdetails__c>();
+ //鏇存柊鍙戠エ鏄庣粏1
+ List<Consumable_Orderdetails__c> invoiceorderUpList1 = new List<Consumable_Orderdetails__c>();
+ //鍒犻櫎鍙戠エ鏄庣粏1
+ List<Consumable_Orderdetails__c> invoiceorderDeList1 = new List<Consumable_Orderdetails__c>();
+
+ Map<String, Consumable_Orderdetails__c> invoiceordet1Map = new Map<String, Consumable_Orderdetails__c>();
+
+ List<String> consumableorderList = new List<String>();
+ List<String> consumableNameList = new List<String>();
+ try {
+ //鏇存柊鍑哄簱鍗曟槑缁�1
+ for (ConsumableorderdetailsInfo ass : consumableorderdetails1Records) {
+ consumableorderList.add(ass.esd.Asset_Model_No__c);
+ }
+
+ //鍙戠エ鏄庣粏1鑾峰彇
+ List<Consumable_Orderdetails__c> invoiceorderdetails1 = [
+ SELECT
+ Id,
+ Name,
+ Consumable_order__c,
+ Asset_Model_No__c,
+ Consumable_Product__r.Asset_Model_No__c,
+ Consumable_Count__c,
+ Shipment_Count__c,
+ RrturnPro_count__c,
+ Delivery_List_RMB__c,
+ InvoicedProCost_RMB__c,
+ Invoiced_Procount__c,
+ Invoiced_Count__c,
+ Invoice_Unitprice__c,
+ InvoiceProNot_count__c,
+ Invoice_Cost_RMB__c,
+ Invoice_No__c,
+ Invoice_Unit__c,
+ Box_Piece__c,
+ Invoicedet1_OD_link__c
+ FROM Consumable_Orderdetails__c
+ WHERE Consumable_order__c = :invoiceId AND Invoicedet1_OD_link__c = :orderId AND Asset_Model_No__c IN :consumableorderList
+ ];
+ for (Integer i = 0; i < invoiceorderdetails1.size(); i++) {
+ invoiceordet1Map.put(
+ invoiceorderdetails1[i].Invoicedet1_OD_link__c + invoiceorderdetails1[i].Asset_Model_No__c,
+ invoiceorderdetails1[i]
+ );
+ }
+ List<Consumable_Orderdetails__c> invoicedetails1count = [
+ SELECT
+ Id,
+ Name,
+ Consumable_order__c,
+ Invoicedet1_OD_link__c,
+ Asset_Model_No__c,
+ Consumable_Product__r.Asset_Model_No__c,
+ Consumable_Count__c,
+ Shipment_Count__c,
+ RrturnPro_count__c,
+ Delivery_List_RMB__c,
+ InvoicedProCost_RMB__c,
+ Invoiced_Procount__c,
+ Invoiced_Count__c,
+ Sum_of_money__c,
+ Invoice_Unitprice__c,
+ InvoiceProNot_count__c,
+ Invoice_Cost_RMB__c,
+ Invoice_Unit__c,
+ Invoice_No__c
+ FROM Consumable_Orderdetails__c
+ WHERE Consumable_order__c = :invoiceId
+ ];
+ Integer invoiceRecordscon = invoicedetails1count.size() + 1;
+
+ for (ConsumableorderdetailsInfo ass : consumableorderdetails1Records) {
+ if (ass.check == true && ass.invoiceCount > 0) {
+ if (String.isEmpty(String.valueOf(ass.invoiceCount))) {
+ // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '璇疯緭鍏ュ彂绁ㄦ暟閲忥紒'));
+ // return null;
+ return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ュ彂绁ㄦ暟閲忥紒', '');
+ }
+ if (ass.esd.Box_Piece__c == '鐩�' && ass.esd.Invoice_Unit__c == '涓�') {
+ if (ass.invoiceCount > (ass.esd.InvoiceProNot_count__c * ass.Packing_list_manual).setScale(0)) {
+ // ass.esd.InvoiceProNot_count__c.addError('鍙戠エ鏁伴噺涓嶈兘瓒呰繃杩樻病鍙戠エ鏁伴噺锛�');
+ // return null;
+ return new ResponseBodyLWC('Error', 500, '鍙戠エ鏁伴噺涓嶈兘瓒呰繃杩樻病鍙戠エ鏁伴噺锛�', '');
+ }
+ } else {
+ if (ass.invoiceCount > ass.esd.InvoiceProNot_count__c) {
+ // ass.esd.InvoiceProNot_count__c.addError('鍙戠エ鏁伴噺涓嶈兘瓒呰繃杩樻病鍙戠エ鏁伴噺锛�');
+ // return null;
+ return new ResponseBodyLWC('Error', 500, '鍙戠エ鏁伴噺涓嶈兘瓒呰繃杩樻病鍙戠エ鏁伴噺锛�', '');
+ }
+ }
+
+ //if(ass.esd.Invoice_Unit__c =='涓�'){
+ String invoiceCount = String.valueOf(ass.invoiceCount);
+ if (!Pattern.matches('^\\+{0,1}[1-9]\\d*', invoiceCount)) {
+ // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, '鍙戠エ鏁伴噺蹇呴』鏄暣鏁�'));
+ // return null;
+ return new ResponseBodyLWC('Error', 500, '鍙戠エ鏁伴噺蹇呴』鏄暣鏁�', '');
+ }
+ //}
+
+ if (invoiceordet1Map.containsKey(ass.esd.Consumable_order__c + ass.esd.Asset_Model_No__c)) {
+ invoiceordet1Map.get(ass.esd.Consumable_order__c + ass.esd.Asset_Model_No__c).Shipment_Count__c = ass.invoiceCount;
+ invoiceordet1Map.get(ass.esd.Consumable_order__c + ass.esd.Asset_Model_No__c).Invoiced_Count__c = ass.invoiceCount;
+ //invoiceordet1Map.get(ass.esd.Consumable_order__c + ass.esd.Asset_Model_No__c).InvoicedProCost_RMB__c = invoiceordet1Map.get(ass.esd.Consumable_order__c + ass.esd.Asset_Model_No__c).Delivery_List_RMB__c * ass.invoiceCount;
+ invoiceordet1Map.get(ass.esd.Consumable_order__c + ass.esd.Asset_Model_No__c)
+ .Invoice_Unit__c = ass.esd.Invoice_Unit__c;
+ invoiceordet1Map.get(ass.esd.Consumable_order__c + ass.esd.Asset_Model_No__c).Box_Piece__c = ass.esd.Box_Piece__c;
+ if (ass.esd.Box_Piece__c == '鐩�' && ass.esd.Invoice_Unit__c == '涓�') {
+ invoiceordet1Map.get(ass.esd.Consumable_order__c + ass.esd.Asset_Model_No__c).InvoicedProCost_RMB__c =
+ (ass.esd.Delivery_List_RMB__c / ass.Packing_list_manual) * ass.invoiceCount;
+ invoiceordet1Map.get(ass.esd.Consumable_order__c + ass.esd.Asset_Model_No__c).Invoice_Unitprice__c =
+ ass.esd.Delivery_List_RMB__c / ass.Packing_list_manual;
+ } else {
+ invoiceordet1Map.get(ass.esd.Consumable_order__c + ass.esd.Asset_Model_No__c).InvoicedProCost_RMB__c =
+ ass.esd.Delivery_List_RMB__c * ass.invoiceCount;
+ invoiceordet1Map.get(ass.esd.Consumable_order__c + ass.esd.Asset_Model_No__c)
+ .Invoice_Unitprice__c = ass.esd.Delivery_List_RMB__c;
+ }
+
+ invoiceorderUpList1.add(invoiceordet1Map.get(ass.esd.Consumable_order__c + ass.esd.Asset_Model_No__c));
+ invoiceRecordscon++;
+ } else {
+ String str = string.valueOf(invoiceRecordscon);
+ if (str.length() == 1) {
+ str = '0' + str;
+ }
+ Consumable_Orderdetails__c invoiceInsert1 = new Consumable_Orderdetails__c();
+ invoiceInsert1.Used_date__c = ass.esd.Used_date__c;
+ invoiceInsert1.Send_date__c = ass.esd.Send_date__c;
+ invoiceInsert1.Name =
+ invoicecode.Name +
+ '-' +
+ ass.esd.Name.substring(ass.esd.Name.length() - 7, ass.esd.Name.length());
+ invoiceInsert1.Shipment_Count__c = ass.invoiceCount;
+ invoiceInsert1.Consumable_Product__c = ass.esd.Consumable_Product__c;
+ invoiceInsert1.Intra_Trade_List_RMB__c = ass.esd.Intra_Trade_List_RMB__c;
+ invoiceInsert1.Delivery_List_RMB__c = ass.esd.Delivery_List_RMB__c;
+ invoiceInsert1.Dealer_Custom_Price__c = ass.esd.Dealer_Custom_Price__c;
+ invoiceInsert1.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice;
+ if (ass.esd.Box_Piece__c == '鐩�' && ass.esd.Invoice_Unit__c == '涓�') {
+ invoiceInsert1.Invoice_Unitprice__c = ass.esd.Delivery_List_RMB__c / ass.Packing_list_manual;
+ } else {
+ invoiceInsert1.Invoice_Unitprice__c = ass.esd.Delivery_List_RMB__c;
+ }
+ //invoiceInsert1.Invoice_Unitprice__c = ass.esd.Invoice_Unitprice__c;
+ invoiceInsert1.Invoice_Unit__c = ass.esd.Invoice_Unit__c;
+ invoiceInsert1.Box_Piece__c = ass.esd.Box_Piece__c;
+ if (ass.esd.Invoiced_Procount__c == null)
+ ass.esd.Invoiced_Procount__c = 0;
+ invoiceInsert1.Invoiced_Count__c = ass.invoiceCount;
+ if (ass.esd.InvoicedProCost_RMB__c == null)
+ ass.esd.InvoicedProCost_RMB__c = 0;
+ invoiceInsert1.InvoicedProCost_RMB__c = ass.invoiceCount * invoiceInsert1.Invoice_Unitprice__c;
+ invoiceInsert1.Consumable_order__c = invoiceId;
+ invoiceInsert1.Invoicedet1_OD_link__c = orderId;
+ invoiceRecordscon++;
+ invoiceorderList1.add(invoiceInsert1);
+ }
+ } else {
+ if (invoiceordet1Map.containsKey(ass.esd.Consumable_order__c + ass.esd.Asset_Model_No__c)) {
+ invoiceorderDeList1.add(invoiceordet1Map.get(ass.esd.Consumable_order__c + ass.esd.Asset_Model_No__c));
+ }
+ }
+ }
+
+ if (invoiceorderList1.size() > 0) {
+ insert invoiceorderList1;
+ }
+ if (invoiceorderUpList1.size() > 0) {
+ update invoiceorderUpList1;
+ }
+ if (invoiceorderDeList1.size() > 0) {
+ delete invoiceorderDeList1;
+ }
+ } catch (Exception e) {
+ ApexPages.addmessages(e);
+ // Database.rollback(sp);
+ // return null;
+ return new ResponseBodyLWC('Error', 500, e.getMessage() + ' ' + e.getLineNumber(), '');
+ }
+ res.status = 'Success';
+ res.code = 200;
+ System.debug('res = ' + res);
+ return res;
+ }
+
+ // Data Bean
+ class ConsumableorderdetailsInfo {
+ @AuraEnabled
+ public Boolean check { get; set; }
+ @AuraEnabled
+ public Boolean oldCheck { get; set; }
+ @AuraEnabled
+ public Consumable_Orderdetails__c esd { get; set; }
+ @AuraEnabled
+ public Product2__c Prod { get; set; }
+ @AuraEnabled
+ public Decimal invoiceCount { get; set; }
+ @AuraEnabled
+ public Decimal invoiceAllprice { get; set; }
+ @AuraEnabled
+ public Decimal Packing_list_manual { get; set; }
+ public List<SelectOption> Invoice_UnitOpts { get; set; }
+ @AuraEnabled
+ public Map<String,String> Invoice_UnitOptsMap { get; set; }
+ // 娑堣�楀搧浜у搧鏄庣粏
+ public ConsumableorderdetailsInfo(Consumable_Orderdetails__c e) {
+ check = false;
+ oldCheck = false;
+ esd = e;
+ Prod = e.Consumable_Product__r;
+ invoiceAllprice = 0;
+
+ Packing_list_manual = e.Consumable_Product__r.Packing_list_manual__c;
+
+ Invoice_UnitOpts = new List<SelectOption>();
+ Invoice_UnitOpts.add(new SelectOption('鐩�', '鐩�'));
+ Invoice_UnitOpts.add(new SelectOption('涓�', '涓�'));
+
+ Invoice_UnitOptsMap = new Map<String,String>();
+ Invoice_UnitOptsMap.put('鐩�', '鐩�');
+ Invoice_UnitOptsMap.put('涓�', '涓�');
+ }
+ }
+}
\ No newline at end of file
--
Gitblit v1.9.1