From 07390e2fcb4adf27c928335bf27ae7939c5a80ad Mon Sep 17 00:00:00 2001
From: buli <137736985@qq.com>
Date: 星期二, 23 五月 2023 11:28:12 +0800
Subject: [PATCH] bakcup20230523

---
 force-app/main/default/classes/LexConInvoiceViewController.cls |  239 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 218 insertions(+), 21 deletions(-)

diff --git a/force-app/main/default/classes/LexConInvoiceViewController.cls b/force-app/main/default/classes/LexConInvoiceViewController.cls
index c2fe694..efaf00a 100644
--- a/force-app/main/default/classes/LexConInvoiceViewController.cls
+++ b/force-app/main/default/classes/LexConInvoiceViewController.cls
@@ -388,7 +388,7 @@
         //         attachmentRecoeds.add(new InvoiceOrderInfo(attachmentinfo[i]));
         //     }
         // }
-        List<ContentVersion> cvInfo = [SELECT Id, Title, OwnerId,Owner.Name, CreatedDate FROM ContentVersion WHERE FirstPublishLocationId = :invoiceId];
+        List<ContentVersion> cvInfo = [SELECT Id, Title, OwnerId,Owner.Name, CreatedDate,ContentDocumentId FROM ContentVersion WHERE FirstPublishLocationId = :invoiceId];
         if (cvInfo.size() > 0) {
             for (Integer i = 0; i < cvInfo.size(); i++) {
                 attachmentRecoeds.add(new InvoiceOrderInfo(cvInfo[i]));
@@ -417,6 +417,8 @@
         data.put('accountid', accountid);
         data.put('invoiceOrderRecoedschange',invoiceOrderRecoedschange);
         data.put('attachmentRecoeds',attachmentRecoeds);
+        data.put('outOrderStringList',outOrderStringList);
+        data.put('outordercountMap',outordercountMap);
         res.status = 'Success';
         res.code = 200;
         System.debug('res = ' + res);
@@ -428,6 +430,7 @@
     @AuraEnabled
     public static ResponseBodyLWC save(
         Consumable_order__c cocLwc,
+        String HospitalNameLwc,
         String HospitalInfoLwc,
         String SecondDealerLwc,
         String invoiceOrderRecoedsLwc,
@@ -438,52 +441,56 @@
         String reopenLwc,
         String invoiceOrderRecoedschangeLwc
     ) {
-        System.debug('enter LexConInvoiceViewController success');
+        System.debug('enter LexConInvoiceViewController.save success');
         ResponseBodyLWC res = new ResponseBodyLWC();
         Map<String, object> data = new Map<String, object>();
         res.entity = data;
 
         coc = cocLwc;
+        HospitalName = HospitalNameLwc;
         HospitalInfo = HospitalInfoLwc;
+        System.debug('HospitalInfo = ' + HospitalInfo);
         SecondDealer = SecondDealerLwc;
         errorMsg = '';
+        deliveryId = deliveryIdLwc;
         invoiceOrderRecoeds = (List<InvoiceOrderInfo>)JSON.deserialize(invoiceOrderRecoedsLwc, List<InvoiceOrderInfo>.class);
         invoiceId = invoiceIdLwc;
         accountid = accountidLwc;
         agencyProType = agencyProTypeLwc;
+        reopen = reopenLwc;
         invoiceOrderRecoedschange = (List<InvoiceOrderInfo>)JSON.deserialize(invoiceOrderRecoedschangeLwc, List<InvoiceOrderInfo>.class);
 
         List<String> chukudanID = new List<String>();
         if (coc.Name == '' || coc.Name == null) {
-            // coc.Name.addError('璇峰綍鍏ュ彂绁ㄥ彿銆�');
+            // coc.Name.addError('璇峰綍鍏ュ彂绁ㄥ彿');
             // return null;
-            return new ResponseBodyLWC('Error', 500, '璇峰綍鍏ュ彂绁ㄥ彿銆�', '');
+            return new ResponseBodyLWC('Error', 500, '璇峰綍鍏ュ彂绁ㄥ彿', '');
         }
         if (coc.Invoice_Date__c == null) {
-            // coc.Invoice_Date__c.addError('璇峰綍鍏ュ彂绁ㄦ棩鏈熴��');
+            // coc.Invoice_Date__c.addError('璇峰綍鍏ュ彂绁ㄦ棩鏈�');
             // return null;
-            return new ResponseBodyLWC('Error', 500, '璇峰綍鍏ュ彂绁ㄦ棩鏈熴��', '');
+            return new ResponseBodyLWC('Error', 500, '璇峰綍鍏ュ彂绁ㄦ棩鏈�', '');
         }
-        if (String.isBlank(HospitalInfo) && SecondDealer == null) {
-            // coc.addError('蹇呴』杈撳叆瀹㈡埛鍚嶆垨鑰呬簩绾х粡閿�鍟嗐��');
+        if (String.isBlank(HospitalInfo) && String.isBlank(SecondDealer)) {
+            // coc.addError('蹇呴』杈撳叆瀹㈡埛鍚嶆垨鑰呬簩绾х粡閿�鍟�');
             // return null;
-            return new ResponseBodyLWC('Error', 500, '蹇呴』杈撳叆瀹㈡埛鍚嶆垨鑰呬簩绾х粡閿�鍟嗐��', '');
+            return new ResponseBodyLWC('Error', 500, '蹇呴』杈撳叆瀹㈡埛鍚嶆垨鑰呬簩绾х粡閿�鍟�', '');
         }
         if (HospitalInfo != null && HospitalInfo != '' && String.isNotEmpty(SecondDealer)) {
-            //coc.addError('璇疯緭鍏ュ鎴峰悕銆佷簩绾х粡閿�鍟嗗彧鍙緭鍏ヤ竴涓��');
-            errorMsg += '璇疯緭鍏ュ鎴峰悕銆佷簩绾х粡閿�鍟嗗彧鍙緭鍏ヤ竴涓��';
+            //coc.addError('璇疯緭鍏ュ鎴峰悕銆佷簩绾х粡閿�鍟嗗彧鍙緭鍏ヤ竴涓�');
+            errorMsg += '璇疯緭鍏ュ鎴峰悕銆佷簩绾х粡閿�鍟嗗彧鍙緭鍏ヤ竴涓�';
         }
         if (HospitalInfo != null && HospitalInfo != '') {
             if (coc.Order_ForCustomerText__c == null) {
-                // coc.Order_ForCustomerText__c.addError('璇疯緭鍏ョ瀹ゃ��');
+                // coc.Order_ForCustomerText__c.addError('璇疯緭鍏ョ瀹�');
                 // return null;
-                return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ョ瀹ゃ��', '');
+                return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ョ瀹�', '');
             }
         } else {
             if (coc.Order_ForCustomerText__c != null) {
-                // coc.Order_ForCustomerText__c.addError('涓嶉渶瑕佽緭鍏ョ瀹ゃ��');
+                // coc.Order_ForCustomerText__c.addError('涓嶉渶瑕佽緭鍏ョ瀹�');
                 // return null;
-                return new ResponseBodyLWC('Error', 500, '涓嶉渶瑕佽緭鍏ョ瀹ゃ��', '');
+                return new ResponseBodyLWC('Error', 500, '涓嶉渶瑕佽緭鍏ョ瀹�', '');
             }
         }
         String shipmentAccountString = '';
@@ -676,6 +683,7 @@
                     upsert invoiceLinkList;
                 }
             } else if (String.isNotBlank(reopen) && reopen.equals('isreopen') && String.isNotBlank(invoiceId)) {
+                System.debug('杩涘叆reopen');
                 invoiceHead.Name = coc.Name;
                 invoiceHead.Order_type__c = '鍙戠エ';
                 invoiceHead.Invoice_Date__c = coc.Invoice_Date__c;
@@ -699,6 +707,7 @@
                 }
                 invoiceHead.Order_ForDealerText__c = coc.Order_ForDealerText__c;
                 insert invoiceHead;
+                System.debug('invoiceHead = ' + invoiceHead);
 
                 List<String> updateChukudanId = new List<String>();
                 //鑾峰彇鍘熷彂绁ㄧ浉鍏宠仈鐨勯摼鎺ヨ〃淇℃伅
@@ -712,6 +721,7 @@
                     colc.Invoice_Code_link__c = invoiceHead.Id;
                     updateChukudanId.add(colc.Outboundorder_Code_link__c);
                 }
+                System.debug('tLinkList = ' + tLinkList);
                 update tLinkList;
                 //鏇存柊鍙戠エ鏄庣粏淇℃伅
                 //鑾峰彇鍑哄簱鍗�,璁剧疆鍏宠仈鍏崇郴
@@ -736,6 +746,7 @@
                     cocTemp.Consumable_order__c = invoiceHead.Id;
                     tempCocMap.put(cocTemp.Invoicedet1_OD_link__c + cocTemp.Asset_Model_No__c, cocTemp);
                 }
+                System.debug('tempCountList = ' + tempCountList);
                 update tempCountList;
                 List<Consumable_Orderdetails__c> updateFromList = [
                     SELECT
@@ -775,8 +786,10 @@
 
                 Consumable_order__c tempcoc = new Consumable_order__c();
                 tempcoc.Id = invoiceId;
+                System.debug('tempcoc = ' + tempcoc);
                 delete tempcoc;
                 invoiceId = invoiceHead.Id;
+                System.debug('updateFromList = ' + updateFromList);
                 update updateFromList;
                 //--------------------------------------------------------------------------
                 for (InvoiceOrderInfo ass : invoiceOrderRecoeds) {
@@ -814,6 +827,7 @@
                             invoiceLinkList.add(invoiceLink);
                         }
                     }
+                    System.debug('invoiceLinkList = ' + invoiceLinkList);
                     upsert invoiceLinkList;
                 }
                 //鍒犻櫎鍑哄簱鍗曢摼鎺ヨ〃
@@ -831,6 +845,7 @@
                             invoiceLinkdetList.add(colctemp);
                         }
                     }
+                    System.debug('invoiceLinkdetList = ' + invoiceLinkdetList);
                     delete invoiceLinkdetList;
                 }
                 //鏂板缓鍙戠エ鏄庣粏1
@@ -868,7 +883,7 @@
                 if (cocinfo.size() > 0) {
                     invoiceHead = cocinfo[0];
                 }
-                if (String.isNotBlank(deliveryId)) {
+                if (String.isNotBlank(deliveryId)) { 
                     for (InvoiceOrderInfo ass : invoiceOrderRecoedschange) {
                         insertDetMap.put(ass.esd.Id, invoiceHead.Id);
                     }
@@ -985,7 +1000,7 @@
                     } else {
                         invoiceHead.Order_ForHospital__c = null;
                     }
-                    invoiceHead.Order_ForDealer__c = SecondDealer;
+                    invoiceHead.Order_ForDealer__c = SecondDealer == '' ? null : SecondDealer;
                     invoiceHead.Order_ForDealerText__c = coc.Order_ForDealerText__c;
                     update invoiceHead;
                     for (InvoiceOrderInfo ass : invoiceOrderRecoeds) {
@@ -1140,8 +1155,10 @@
         }
         System.debug('invoiceorderList1 +++++' + invoiceorderList1.size());
         Savepoint sp = Database.setSavepoint();
+        System.debug('invoiceorderList1 = ' + invoiceorderList1);
         if (invoiceorderList1.size() > 0) {
             try {
+                System.debug('invoiceorderList1 = ' + invoiceorderList1);
                 insert invoiceorderList1;
             } catch (Exception ex) {
                 Database.rollback(sp);
@@ -1170,6 +1187,7 @@
             FROM Consumable_Orderdetails__c
             WHERE Consumable_order__c = :value AND Invoicedet1_OD_link__c = :deleteMap.keySet()
         ];
+        System.debug('detInvoicedet1List = ' + detInvoicedet1List);
         delete detInvoicedet1List;
     }
 
@@ -1232,7 +1250,7 @@
         update detaliFrom1List;
     }
 
-    //淇濆瓨ContentVersion闄勪欢
+    //涓婁紶ContentVersion闄勪欢
     @AuraEnabled
     public static String saveFile(Id recordId, String fileName, String base64Data) {
         base64Data = EncodingUtil.urlDecode(base64Data, 'UTF-8');
@@ -1249,18 +1267,20 @@
 
     // 淇濆瓨闄勪欢
     @AuraEnabled
-    public static ResponseBodyLWC saveAttachment(String attachmentRecoedsLwc) {
+    public static ResponseBodyLWC saveAttachment(String attachmentRecoedsLwc,String invoiceId) {
         System.debug('杩涘叆 saveAttachment');
         ResponseBodyLWC res = new ResponseBodyLWC();
         Map<String, object> data = new Map<String, object>();
         res.entity = data;
+        invoiceId = invoiceId;
         attachmentRecoeds = (List<InvoiceOrderInfo>)JSON.deserialize(attachmentRecoedsLwc, List<InvoiceOrderInfo>.class);
+        System.debug('attachmentRecoeds = ' + attachmentRecoeds);
         try {
             Consumable_accessories_invoice__c attachmentdetails = new Consumable_accessories_invoice__c();
             for (InvoiceOrderInfo ass : attachmentRecoeds) {
                 if (!String.isBlank(ass.mailSelectOptsin)) {
                     attachmentdetails.Id = ass.invoiceOrderId;
-                    attachmentdetails.Attachment_ID__c = ass.cvInfo.Id;
+                    attachmentdetails.Attachment_ID__c = ass.cvInfo.ContentDocumentId;
                     attachmentdetails.Accessories_type__c = ass.mailSelectOptsin;
                     if (String.isBlank(ass.invoiceOrderId)) {
                         attachmentdetails.Invoice_code__c = invoiceId;
@@ -1269,7 +1289,7 @@
                 }
             }
         } catch (Exception e) {
-            return new ResponseBodyLWC('Error', 500, e.getMessage(), '');
+            return new ResponseBodyLWC('Error', 500, e.getMessage() + e.getLineNumber(), '');
         }
         res.status = 'Success';
         res.code = 200;
@@ -1374,6 +1394,183 @@
         return soql;
     }
 
+    // 鍒犻櫎鎸夐挳
+    @AuraEnabled
+    public static ResponseBodyLWC deleteButton(String invoiceIdLwc,Consumable_order__c cocLwc) {
+        System.debug('杩涘叆 deleteButton');
+        ResponseBodyLWC res = new ResponseBodyLWC();
+        Map<String, object> data = new Map<String, object>();
+        res.entity = data;
+
+        coc = cocLwc;
+        invoiceId = invoiceIdLwc;
+        system.debug('====invoiceId==========>' + invoiceId);
+        List<Consumable_Orderdetails__c> consList = [
+            SELECT id, Consumable_order__c
+            FROM Consumable_Orderdetails__c
+            WHERE Consumable_order__c = :invoiceId
+        ];
+        try {
+            system.debug('====cons==========>' + consList);
+            delete consList;
+            if (coc.id == invoiceId && coc.Invoice_status__c == '鑽夋涓�') {
+                delete coc;
+            }
+            res.status = 'Success';
+            res.code = 200;
+            System.debug('res = ' + res);
+            return res;
+        } catch (Exception e) {
+            // ApexPages.addMessages(e);
+            // return null;
+            return new ResponseBodyLWC('Error', 500, e.getMessage() + ' ' + e.getLineNumber(), '');
+        }
+    }
+
+    // 鎻愪氦鎸夐挳
+    @AuraEnabled
+    public static ResponseBodyLWC approval(List<String> outOrderStringListLwc,Map<String, Consumable_Orderdetails__c> outordercountMapLwc,String invoiceIdLwc) {
+        System.debug('杩涘叆 approval');
+        ResponseBodyLWC res = new ResponseBodyLWC();
+        Map<String, object> data = new Map<String, object>();
+        res.entity = data;
+
+        outOrderStringList = outOrderStringListLwc;
+        outordercountMap = outordercountMapLwc;
+        invoiceId= invoiceIdLwc;
+        //鏇存柊鍙戠エ鏄庣粏2閾炬帴
+        Consumable_order__c P = new Consumable_order__c();
+        List<Consumable_order__c> cocinfo = new List<Consumable_order__c>();
+        List<Consumable_order_details2__c> invoiceorderList2 = new List<Consumable_order_details2__c>();
+        //鏇存柊鍑哄簱鍗曟槑缁�1
+        List<Consumable_Orderdetails__c> outOrderdetUp1List = new List<Consumable_Orderdetails__c>();
+        //闇�瑕佹洿鏂板嚭搴撳崟鏄庣粏1
+        List<Consumable_Orderdetails__c> outOrderdet1List = [
+            SELECT
+                Id,
+                Name,
+                Consumable_order__c,
+                Consumable_order__r.Name,
+                Asset_Model_No__c,
+                Consumable_Product__r.Asset_Model_No__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,
+                Box_Piece__c,
+                Invoice_Unit__c
+            FROM Consumable_Orderdetails__c
+            WHERE Consumable_order__c IN :outOrderStringList
+        ];
+        for (Integer i = 0; i < outOrderdet1List.size(); i++) {
+            if (outordercountMap.containsKey(outOrderdet1List[i].Consumable_order__c + outOrderdet1List[i].Asset_Model_No__c)) {
+                Consumable_Orderdetails__c invoiceUpdte1 = new Consumable_Orderdetails__c();
+                invoiceUpdte1.Id = outOrderdet1List[i].Id;
+                invoiceUpdte1.Invoice_Unit__c = outordercountMap.get(
+                        outOrderdet1List[i].Consumable_order__c + outOrderdet1List[i].Asset_Model_No__c
+                    )
+                    .Invoice_Unit__c;
+                if (
+                    outordercountMap.get(outOrderdet1List[i].Consumable_order__c + outOrderdet1List[i].Asset_Model_No__c).Box_Piece__c ==
+                    '鐩�' &&
+                    outordercountMap.get(outOrderdet1List[i].Consumable_order__c + outOrderdet1List[i].Asset_Model_No__c).Invoice_Unit__c ==
+                    '涓�'
+                ) {
+                    Decimal OldinvoicedProcount = 0;
+                    OldinvoicedProcount = (outordercountMap.get(
+                                outOrderdet1List[i].Consumable_order__c + outOrderdet1List[i].Asset_Model_No__c
+                            )
+                            .Invoiced_Count__c /
+                        outordercountMap.get(outOrderdet1List[i].Consumable_order__c + outOrderdet1List[i].Asset_Model_No__c)
+                            .ProductPacking_list_manual__c)
+                        .setScale(2);
+                    invoiceUpdte1.Invoiced_Procount__c = outOrderdet1List[i].Invoiced_Procount__c + OldinvoicedProcount;
+                } else {
+                    invoiceUpdte1.Invoiced_Procount__c =
+                        outOrderdet1List[i].Invoiced_Procount__c +
+                        outordercountMap.get(outOrderdet1List[i].Consumable_order__c + outOrderdet1List[i].Asset_Model_No__c)
+                            .Invoiced_Count__c;
+                }
+                invoiceUpdte1.Invoice_Unitprice__c = outordercountMap.get(
+                        outOrderdet1List[i].Consumable_order__c + outOrderdet1List[i].Asset_Model_No__c
+                    )
+                    .Invoice_Unitprice__c;
+                invoiceUpdte1.InvoicedProCost_RMB__c = invoiceUpdte1.Invoiced_Procount__c * outOrderdet1List[i].Delivery_List_RMB__c;
+
+                Decimal invoicedProcount = 0;
+                if (
+                    outordercountMap.get(outOrderdet1List[i].Consumable_order__c + outOrderdet1List[i].Asset_Model_No__c).Box_Piece__c ==
+                    '鐩�' &&
+                    outordercountMap.get(outOrderdet1List[i].Consumable_order__c + outOrderdet1List[i].Asset_Model_No__c).Invoice_Unit__c ==
+                    '涓�'
+                ) {
+                    invoicedProcount = (outordercountMap.get(
+                                outOrderdet1List[i].Consumable_order__c + outOrderdet1List[i].Asset_Model_No__c
+                            )
+                            .Invoiced_Count__c /
+                        outordercountMap.get(outOrderdet1List[i].Consumable_order__c + outOrderdet1List[i].Asset_Model_No__c)
+                            .ProductPacking_list_manual__c)
+                        .setScale(2);
+                } else {
+                    invoicedProcount = outordercountMap.get(outOrderdet1List[i].Consumable_order__c + outOrderdet1List[i].Asset_Model_No__c)
+                        .Invoiced_Count__c;
+                }
+
+                if (outOrderdet1List[i].InvoiceProNot_count__c < invoicedProcount) {
+                    // ApexPages.addmessage(
+                    //     new ApexPages.message(
+                    //         ApexPages.severity.Error,
+                    //         '鍑哄簱鍗�' +
+                    //         outOrderdet1List[i].Consumable_order__r.Name +
+                    //         '涓紝' +
+                    //         outOrderdet1List[i].Asset_Model_No__c +
+                    //         '杩樻病寮�绁ㄦ暟閲忓皬浜庡彂绁ㄦ暟閲忥紝璇风‘璁ゆ槸鍚︽湁杩斿搧'
+                    //     )
+                    // );
+                    // return null;
+                    return new ResponseBodyLWC('Error', 500, '鍑哄簱鍗�' + outOrderdet1List[i].Consumable_order__r.Name + '涓紝' + outOrderdet1List[i].Asset_Model_No__c + '杩樻病寮�绁ㄦ暟閲忓皬浜庡彂绁ㄦ暟閲忥紝璇风‘璁ゆ槸鍚︽湁杩斿搧', '');
+                }
+
+                outOrderdetUp1List.add(invoiceUpdte1);
+            }
+        }
+        Savepoint sp = Database.setSavepoint();
+        try {
+            //鍑哄簱鍗曟槑缁�1鏇存柊
+            if (outOrderdetUp1List.size() > 0) {
+                ControllerUtil.updateOrderDetails1Satus(outOrderdetUp1List);
+            }
+            //鍙戠エ鐘舵�佹洿鏂�
+            cocinfo = [
+                SELECT Id, Name, Invoice_status__c, Dealer_Info__c, Order_ForHospital__c, SummonsForDirction__c
+                FROM Consumable_order__c
+                WHERE Id = :invoiceId
+            ];
+            System.debug('cocinfo = ' + cocinfo);
+            if (cocinfo.size() > 0) {
+                p = cocinfo[0];
+            }
+            System.debug('p = ' + p);
+            p.Invoice_status__c = '鎻愪氦';
+            update p;
+        } catch (Exception ex) {
+            Database.rollback(sp);
+            // ApexPages.addMessages(ex);
+            // return null;
+            return new ResponseBodyLWC('Error', 500, ex.getMessage() + ' ' + ex.getLineNumber(), '');
+        }
+        res.status = 'Success';
+        res.code = 200;
+        System.debug('res = ' + res);
+        return res;
+    }
+
     class InvoiceOrderInfo implements Comparable {
         @AuraEnabled
         public Boolean check { get; set; }

--
Gitblit v1.9.1