From 744f42c5496e656a1f9927740a3b37c0b97a6cba Mon Sep 17 00:00:00 2001 From: buli <137736985@qq.com> Date: 星期五, 14 七月 2023 14:34:12 +0800 Subject: [PATCH] lexcommunityupload0714 --- force-app/main/default/classes/LexConInvoiceViewController.cls | 3541 +++++++++++++++++++++++++++------------------------------- 1 files changed, 1,631 insertions(+), 1,910 deletions(-) diff --git a/force-app/main/default/classes/LexConInvoiceViewController.cls b/force-app/main/default/classes/LexConInvoiceViewController.cls index 69b9a57..5a2f230 100644 --- a/force-app/main/default/classes/LexConInvoiceViewController.cls +++ b/force-app/main/default/classes/LexConInvoiceViewController.cls @@ -1,1962 +1,1683 @@ public without sharing class LexConInvoiceViewController { - public static String agencyProType { get; set; } - public static Consumable_order__c coc { get; set; } - public static Consumable_order__c outbound { get; set; } - public static String invoiceId { get; set; } - public static String orderRemind { get; set; } - public static String deliveryId { get; set; } - public static String reopen { get; set; } - public static Decimal sumPrice { get; set; } - public static Boolean isChange { get; set; } - public static String accountid { get; set; } - public static String userId { get; set; } - public static String errorMsg { get; set; } + public static String agencyProType { get; set; } + public static Consumable_order__c coc { get; set; } + public static Consumable_order__c outbound { get; set; } + public static String invoiceId { get; set; } + public static String orderRemind { get; set; } + public static String deliveryId { get; set; } + public static String reopen { get; set; } + public static Decimal sumPrice { get; set; } + public static Boolean isChange { get; set; } + public static String accountid { get; set; } + public static String userId { get; set; } + public static String errorMsg { get; set; } - public static Boolean getdone() { - return (invoiceOrderdetail1Recoeds.size() > 0); - } - - public static Boolean getExistOutbound() { - return (coc.Outbound_order__c != null); - } - - public static String getInvoiceName() { - return (coc.Name); - } - public static List<Consumable_Orderdetails__c> conoList { get; set; } - - public static String shipmentAccount { - get { - return (coc.ShipmentAccount__c); + public static Boolean getdone() { + return (invoiceOrderdetail1Recoeds.size() > 0); } - } - public static String statusEdit = ''; - public static Boolean editAble { get; set; } - public static List<InvoiceOrderInfo> invoiceOrderRecoeds { get; set; } - public static List<InvoiceOrderInfo> invoiceOrderdetail1Recoeds { get; set; } - public static List<InvoiceOrderInfo> invoiceOrderRecoedschange { get; set; } - public static List<InvoiceOrderInfo> attachmentRecoeds { get; set; } - public static List<Consumable_order__c> invoiceOrderList { get; set; } - public static List<Consumable_order__c> invoiceOrderSelectedList { get; set; } - public static Map<String, Decimal> ordermx1defaultMap { get; set; } - public static Map<String, Decimal> outorderMoneytMap { get; set; } - public static Map<String, Consumable_Orderdetails__c> outordercountMap { - get; - set; - } - public static List<String> outOrderStringList { get; set; } - public static List<SelectOption> provinceOpts { get; set; } - public static Map<String, String> provinceOptsMap { get; set; } - public static String SecondDealer { get; set; } - public static String HospitalInfo { get; set; } - public static String HospitalName { get; set; } - public static Integer invoiceOrderRecoedsCount { - get { - return invoiceOrderRecoeds == null ? 0 : invoiceOrderRecoeds.size(); + public static Boolean getExistOutbound() { + return (coc.Outbound_order__c != null); } - } - public static list<Dealer_elationship__c> Dealerelationship { get; set; } - public static String[] orderby = new List<String>{ - 'Outbound_Date__c', - 'Name', - 'ShipmentAccount__c' - }; - public static String sortKey { get; set; } - public static String preSortKey { get; set; } - public static Boolean sortOrderAsc { get; set; } - public static String[] sortOrder { get; set; } - public static String userWorkLocation { get; set; } - - //椤甸潰鍒濆鍖� - @AuraEnabled - public static ResponseBodyLWC init( - String invoiceId, - String statusEdit, - String deliveryId - ) { - ResponseBodyLWC res = new ResponseBodyLWC(); - Map<String, object> data = new Map<String, object>(); - res.entity = data; - - provinceOpts = new List<SelectOption>(); - provinceOptsMap = new Map<String, String>(); - invoiceOrderRecoeds = new List<InvoiceOrderInfo>(); - attachmentRecoeds = new List<InvoiceOrderInfo>(); - invoiceOrderdetail1Recoeds = new List<InvoiceOrderInfo>(); - invoiceOrderRecoedschange = new List<InvoiceOrderInfo>(); - orderRemind = ''; - isChange = false; - conoList = new List<Consumable_Orderdetails__c>(); - outorderMoneytMap = new Map<String, Decimal>(); - outOrderStringList = new List<String>(); - outordercountMap = new Map<String, Consumable_Orderdetails__c>(); - - sumPrice = 0; - // this.sortKey = '1'; - // this.preSortKey = '1'; - // this.sortOrderAsc = false; - // this.sortOrder = new List<String>(2); - // this.sortOrder = new List<String>{ ' ', ' ', ' ', ' ' }; - - invoiceId = invoiceId; - statusEdit = statusEdit; - deliveryId = deliveryId; - - if ( - invoiceId != null && - invoiceId != '' && - (statusEdit == '' || - statusEdit == null) - ) { - editAble = false; - } else if ( - (invoiceId == null || invoiceId == '') && - (statusEdit == '' || - statusEdit == null) - ) { - editAble = true; - } else if ( - invoiceId != null && - invoiceId != '' && - statusEdit != '' && - statusEdit != null - ) { - editAble = true; + public static String getInvoiceName() { + return (coc.Name); } - userId = UserInfo.getUserId(); - List<user> Useracc = new List<user>(); - Useracc = [ - SELECT accountid, Work_Location__c, UserPro_Type__c - FROM user - WHERE id = :userId - ]; - accountid = Useracc[0].accountid; - userWorkLocation = Useracc[0].Work_Location__c; - agencyProType = Useracc[0].UserPro_Type__c; - if (String.isBlank(Useracc[0].UserPro_Type__c)) { - agencyProType = 'ET'; - } - coc = new Consumable_order__c(); + public static List<Consumable_Orderdetails__c> conoList { get; set; } - Dealerelationship = [ - SELECT Dealer_subordinate__c, Dealer_subordinate__r.Name - FROM Dealer_elationship__c - WHERE Dealer_principal__c = :accountid - ]; - List<Agency_Hospital_Link__c> AgencyHospitalLink = new List<Agency_Hospital_Link__c>(); - AgencyHospitalLink = [ - SELECT Id, Name, Hospital__c, Hospital__r.Id, Hospital__r.Name, Agency__c - FROM Agency_Hospital_Link__c - WHERE Agency__c = :accountId - ]; - // 鏂拌 - if (invoiceId == null || invoiceId == '') { - if (deliveryId == null || deliveryId == '') { - String msoql = makeSoql(); - invoiceOrderList = Database.query(msoql); - for (Integer i = 0; i < invoiceOrderList.size(); i++) { - invoiceOrderRecoeds.add(new InvoiceOrderInfo(invoiceOrderList[i])); + public static String shipmentAccount { + get { + return (coc.ShipmentAccount__c); } - } else { - if (statusEdit == '' || statusEdit == null) { - EditAble = false; - } else if (statusEdit != '' && statusEdit != null) { - EditAble = true; + } + public static String statusEdit = ''; + public static Boolean editAble { get; set; } + public static List<InvoiceOrderInfo> invoiceOrderRecoeds { get; set; } + public static List<InvoiceOrderInfo> invoiceOrderdetail1Recoeds { get; set; } + public static List<InvoiceOrderInfo> invoiceOrderRecoedschange { get; set; } + public static List<InvoiceOrderInfo> attachmentRecoeds { get; set; } + public static List<Consumable_order__c> invoiceOrderList { get; set; } + public static List<Consumable_order__c> invoiceOrderSelectedList { get; set; } + public static Map<String, Decimal> ordermx1defaultMap { get; set; } + public static Map<String, Decimal> outorderMoneytMap { get; set; } + public static Map<String, Consumable_Orderdetails__c> outordercountMap { get; set; } + public static List<String> outOrderStringList { get; set; } + public static List<SelectOption> provinceOpts { get; set; } + public static Map<String, String> provinceOptsMap { get; set; } + public static String SecondDealer { get; set; } + public static String HospitalInfo { get; set; } + public static String HospitalName { get; set; } + + public static Integer invoiceOrderRecoedsCount { + get { + return invoiceOrderRecoeds == null ? 0 : invoiceOrderRecoeds.size(); } - coc = [ - SELECT - Id, - Name, - Invoice_status__c, - Invoice_Date__c, - Order_ForDealerText__c, - Dealer_Info__c, - Order_ForDealer__c, - Order_ForDealer__r.Name, - Order_ForHospital__c, - Order_ForHospital__r.Name, - Order_date__c, - Billed_Status__c, - ShipmentAccount__c, - Order_Dealer_Info__c, - SummonsForDirction__c, - Order_ForCustomerText__c, - Invoice_Note__c, - Invoice_attachment__c, - Invoicedet_attachment__c, - Outbound_order__c - FROM Consumable_order__c - WHERE Id = :deliveryId + } + + public static list<Dealer_elationship__c> Dealerelationship { get; set; } + public static String[] orderby = new List<String>{ 'Outbound_Date__c', 'Name', 'ShipmentAccount__c' }; + public static String sortKey { get; set; } + public static String preSortKey { get; set; } + public static Boolean sortOrderAsc { get; set; } + public static String[] sortOrder { get; set; } + public static String userWorkLocation { get; set; } + + //椤甸潰鍒濆鍖� + @AuraEnabled + public static ResponseBodyLWC init(String invoiceId, String statusEdit, String deliveryId) { + ResponseBodyLWC res = new ResponseBodyLWC(); + Map<String, object> data = new Map<String, object>(); + res.entity = data; + + provinceOpts = new List<SelectOption>(); + provinceOptsMap = new Map<String, String>(); + invoiceOrderRecoeds = new List<InvoiceOrderInfo>(); + attachmentRecoeds = new List<InvoiceOrderInfo>(); + invoiceOrderdetail1Recoeds = new List<InvoiceOrderInfo>(); + invoiceOrderRecoedschange = new List<InvoiceOrderInfo>(); + orderRemind = ''; + isChange = false; + conoList = new List<Consumable_Orderdetails__c>(); + outorderMoneytMap = new Map<String, Decimal>(); + outOrderStringList = new List<String>(); + outordercountMap = new Map<String, Consumable_Orderdetails__c>(); + + sumPrice = 0; + // this.sortKey = '1'; + // this.preSortKey = '1'; + // this.sortOrderAsc = false; + // this.sortOrder = new List<String>(2); + // this.sortOrder = new List<String>{ ' ', ' ', ' ', ' ' }; + + invoiceId = invoiceId; + statusEdit = statusEdit; + deliveryId = deliveryId; + + if (invoiceId != null && invoiceId != '' && (statusEdit == '' || statusEdit == null)) { + editAble = false; + } else if ((invoiceId == null || invoiceId == '') && (statusEdit == '' || statusEdit == null)) { + editAble = true; + } else if (invoiceId != null && invoiceId != '' && statusEdit != '' && statusEdit != null) { + editAble = true; + } + userId = UserInfo.getUserId(); + List<user> Useracc = new List<user>(); + Useracc = [SELECT accountid, Work_Location__c, UserPro_Type__c FROM user WHERE id = :userId]; + accountid = Useracc[0].accountid; + userWorkLocation = Useracc[0].Work_Location__c; + agencyProType = Useracc[0].UserPro_Type__c; + if (String.isBlank(Useracc[0].UserPro_Type__c)) { + agencyProType = 'ET'; + } + coc = new Consumable_order__c(); + + Dealerelationship = [ + SELECT Dealer_subordinate__c, Dealer_subordinate__r.Name + FROM Dealer_elationship__c + WHERE Dealer_principal__c = :accountid ]; - coc.Name = ''; - if (coc.Order_ForDealer__c != null) { - SecondDealer = coc.Order_ForDealer__c; - } - - if (coc.Order_ForHospital__c != null) { - HospitalInfo = coc.Order_ForHospital__c; - HospitalName = coc.Order_ForHospital__r.Name; - } - - //鍙戠エ鍏宠仈鍑哄簱鍗曞彇寰楋紙鍑哄簱鍗曪級 - invoiceOrderSelectedList = [ - SELECT - Id, - Order_ForDealer__r.Name, - Order_ForHospital__r.Name, - Order_ForDealerText__c, - Name, - Outbound_Date__c, - ShipmentAccount__c, - Order_Dealer_Info__c, - SummonsForDirction__c, - Shipment_total_amount__c, - RrturnPro_total_amount__c, - Total_Invoiced_Procount__c, - InvoiceNotPro_total_amount__c, - InvoiceNotPro_money__c, - Invoice_total_amount__c, - Billed_Status__c - FROM Consumable_order__c - WHERE Id = :deliveryId - ORDER BY Name + List<Agency_Hospital_Link__c> AgencyHospitalLink = new List<Agency_Hospital_Link__c>(); + AgencyHospitalLink = [ + SELECT Id, Name, Hospital__c, Hospital__r.Id, Hospital__r.Name, Agency__c + FROM Agency_Hospital_Link__c + WHERE Agency__c = :accountId ]; - for (Integer i = 0; i < invoiceOrderSelectedList.size(); i++) { - invoiceOrderRecoeds.add( - new InvoiceOrderInfo(invoiceOrderSelectedList[i]) - ); - } - } - } else { - coc = [ - SELECT - Id, - Name, - Invoice_status__c, - Invoice_Date__c, - Order_ForDealerText__c, - Dealer_Info__c, - Order_ForDealer__c, - Order_ForDealer__r.Name, - Order_ForHospital__c, - Order_ForHospital__r.Name, - Order_date__c, - Billed_Status__c, - ShipmentAccount__c, - Order_Dealer_Info__c, - SummonsForDirction__c, - Order_ForCustomerText__c, - Invoice_Note__c, - Invoice_attachment__c, - Invoicedet_attachment__c, - Outbound_order__c - FROM Consumable_order__c - WHERE Id = :invoiceId AND Order_type__c = '鍙戠エ' - ]; - if (coc.Order_ForDealer__c != null) { - SecondDealer = coc.Order_ForDealer__c; - } - if (coc.Order_ForHospital__c != null) { - HospitalInfo = coc.Order_ForHospital__c; - HospitalName = coc.Order_ForHospital__r.Name; - } - //鍒伴摼鎺ヨ〃涓煡鎵惧叧鑱斿嚭搴撳崟 - List<Consumable_order_LinkTable__c> outOrderList = [ - SELECT Outboundorder_Code_link__c - FROM Consumable_order_LinkTable__c - WHERE Invoice_Code_link__c = :invoiceId - ]; - for (Integer i = 0; i < outOrderList.size(); i++) { - outOrderStringList.add(outOrderList[i].Outboundorder_Code_link__c); - } - //鍙栧緱鍑哄簱鍗曚俊鎭� - invoiceOrderSelectedList = [ - SELECT - Id, - Order_ForDealer__r.Name, - Order_ForHospital__r.Name, - Order_ForDealerText__c, - Name, - Outbound_Date__c, - ShipmentAccount__c, - Shipment_total_amount__c, - RrturnPro_total_amount__c, - Total_Invoiced_Procount__c, - InvoiceNotPro_total_amount__c, - InvoiceNotPro_money__c, - Invoice_total_amount__c, - Billed_Status__c - FROM Consumable_order__c - WHERE - Id IN :outOrderStringList - AND Order_Owner_WorkLocal__c = :userWorkLocation - ORDER BY Name - ]; - for (Integer i = 0; i < invoiceOrderSelectedList.size(); i++) { - outorderMoneytMap.put(invoiceOrderSelectedList[i].id, 0); - invoiceOrderRecoeds.add( - new InvoiceOrderInfo(invoiceOrderSelectedList[i]) - ); - } - if (String.isNotBlank(deliveryId)) { - //鍙戠エ鍏宠仈鍑哄簱鍗曞彇寰楋紙鍑哄簱鍗曪級 - isChange = true; - invoiceOrderSelectedList = [ - SELECT - Id, - Order_ForDealer__r.Name, - Order_ForHospital__r.Name, - Order_ForDealerText__c, - Name, - Outbound_Date__c, - ShipmentAccount__c, - Shipment_total_amount__c, - RrturnPro_total_amount__c, - Total_Invoiced_Procount__c, - InvoiceNotPro_total_amount__c, - InvoiceNotPro_money__c, - Invoice_total_amount__c, - Billed_Status__c - FROM Consumable_order__c - WHERE - Id = :deliveryId - AND Order_Owner_WorkLocal__c = :userWorkLocation - ORDER BY Name - ]; - for (Integer i = 0; i < invoiceOrderSelectedList.size(); i++) { - if (!outorderMoneytMap.containsKey(invoiceOrderSelectedList[i].Id)) { - invoiceOrderRecoeds.add( - new InvoiceOrderInfo(invoiceOrderSelectedList[i]) - ); - invoiceOrderRecoedschange.add( - new InvoiceOrderInfo(invoiceOrderSelectedList[i]) - ); - } - } - } - //鍙戠エ鏄庣粏涓�瑙� - List<Consumable_Orderdetails__c> countDel = [ - SELECT - Id, - Consumable_ZS_order__c, - Name, - Consumable_order__c, - Invoicedet1_OD_link__c, - Invoicedet1_OD_link__r.Name, - Consumable_order__r.Name, - Product_OutDate__c, - Asset_Model_No__c, - Invoice_Unitprice__c, - Delivery_List_RMB__c, - Invoiced_Procount__c, - Invoiced_Count__c, - InvoicedProCost_RMB__c, - Box_Piece__c, - Invoice_Unit__c, - ProductPacking_list_manual__c - FROM Consumable_Orderdetails__c - WHERE Consumable_order__c = :invoiceId - ORDER BY Invoicedet1_OD_link__c - ]; - if (countDel.size() > 0) { - for (Integer i = 0; i < countDel.size(); i++) { - outordercountMap.put( - countDel[i].Invoicedet1_OD_link__c + countDel[i].Asset_Model_No__c, - countDel[i] - ); - if ( - outorderMoneytMap.containsKey(countDel[i].Invoicedet1_OD_link__c) - ) { - outorderMoneytMap.put( - countDel[i].Invoicedet1_OD_link__c, - outorderMoneytMap.get(countDel[i].Invoicedet1_OD_link__c) + - countDel[i].InvoicedProCost_RMB__c - ); - } - invoiceOrderdetail1Recoeds.add(new InvoiceOrderInfo(countDel[i])); - } - } - for (InvoiceOrderInfo ass : invoiceOrderRecoeds) { - if (outorderMoneytMap.containsKey(ass.esd.id)) { - ass.needInvoiceCount = outorderMoneytMap.get(ass.esd.id); - } - ass.check = true; - } - } - - if (SecondDealer == null || SecondDealer == '') { - provinceOpts.add(new SelectOption('', '-鏃�-')); - provinceOptsMap.put('', '-鏃�-'); - for (Integer i = 0; i < Dealerelationship.size(); i++) { - provinceOpts.add( - new SelectOption( - Dealerelationship[i].Dealer_subordinate__c, - Dealerelationship[i].Dealer_subordinate__r.Name - ) - ); - provinceOptsMap.put( - Dealerelationship[i].Dealer_subordinate__c, - Dealerelationship[i].Dealer_subordinate__r.Name - ); - } - } else { - provinceOpts.add(new SelectOption('', '-鏃�-')); - provinceOptsMap.put('', '-鏃�-'); - for (Integer i = 0; i < Dealerelationship.size(); i++) { - if (Dealerelationship[i].Dealer_subordinate__r.Name == SecondDealer) { - provinceOpts.add( - new SelectOption( - Dealerelationship[i].Dealer_subordinate__c, - SecondDealer - ) - ); - provinceOptsMap.put( - Dealerelationship[i].Dealer_subordinate__c, - SecondDealer - ); - } - } - for (Integer i = 0; i < Dealerelationship.size(); i++) { - if (Dealerelationship[i].Dealer_subordinate__r.Name != SecondDealer) { - provinceOpts.add( - new SelectOption( - Dealerelationship[i].Dealer_subordinate__c, - Dealerelationship[i].Dealer_subordinate__r.Name - ) - ); - provinceOptsMap.put( - Dealerelationship[i].Dealer_subordinate__c, - Dealerelationship[i].Dealer_subordinate__r.Name - ); - } - } - } - - Map<String, String> consumableaccessoriesMap = new Map<String, String>(); - Map<String, String> invorceOrderIdMap = new Map<String, String>(); - List<Consumable_accessories_invoice__c> consumableaccessories = [ - SELECT Id, Name, Attachment_ID__c, Accessories_type__c - FROM Consumable_accessories_invoice__c - WHERE Invoice_code__c = :invoiceId - ]; - System.debug('consumableaccessories = ' + consumableaccessories); - if (consumableaccessories.size() > 0) { - for (Integer i = 0; i < consumableaccessories.size(); i++) { - consumableaccessoriesMap.put( - consumableaccessories[i].Attachment_ID__c, - consumableaccessories[i].Accessories_type__c - ); - invorceOrderIdMap.put( - consumableaccessories[i].Attachment_ID__c, - consumableaccessories[i].Id - ); - } - } - - //List<Attachment> attachmentinfo = [SELECT Id, Name, OwnerId,Owner.Name, CreatedDate FROM Attachment WHERE parentid = :invoiceId]; - // if (attachmentinfo.size() > 0) { - // for (Integer i = 0; i < attachmentinfo.size(); i++) { - // attachmentRecoeds.add(new InvoiceOrderInfo(attachmentinfo[i])); - // } - // } - List<ContentDocumentLink> links = [ - SELECT Id, ContentDocumentId - FROM ContentDocumentLink - WHERE LinkedEntityId = :invoiceId - ]; - if (links != null && links.size() > 0) { - List<String> documentIds = new List<String>(); - for (ContentDocumentLink link : links) { - documentIds.add(link.ContentDocumentId); - } - List<ContentVersion> cvInfo = [ - SELECT Id, Title, OwnerId, Owner.Name, CreatedDate, ContentDocumentId - FROM ContentVersion - WHERE ContentDocumentId IN :documentIds - ]; - - if (cvInfo.size() > 0) { - for (Integer i = 0; i < cvInfo.size(); i++) { - attachmentRecoeds.add(new InvoiceOrderInfo(cvInfo[i])); - } - } - } - // 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])); - // } - // } - System.debug('attachmentRecoeds = ' + attachmentRecoeds); - System.debug('consumableaccessoriesMap = ' + consumableaccessoriesMap); - for (InvoiceOrderInfo ass : attachmentRecoeds) { - if (consumableaccessoriesMap.containsKey(ass.cvInfo.Id)) { - ass.mailSelectOptsin = consumableaccessoriesMap.get(ass.cvInfo.Id); - ass.invoiceOrderId = invorceOrderIdMap.get(ass.cvInfo.Id); - } - } - data.put('EditAble', EditAble); - data.put('isChange', isChange); - data.put('coc', coc); - data.put('ExistOutbound', getExistOutbound()); - data.put('invoiceOrderRecoeds', invoiceOrderRecoeds); - data.put('provinceOptsMap', provinceOptsMap); - data.put('HospitalName', HospitalName); - data.put('HospitalInfo', HospitalInfo); - data.put('agencyProType', agencyProType); - data.put('userWorkLocation', userWorkLocation); - data.put('done', getdone()); - data.put('invoiceOrderdetail1Recoeds', invoiceOrderdetail1Recoeds); - 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); - return res; - } - - //淇濆瓨 - @AuraEnabled - public static ResponseBodyLWC save( - Consumable_order__c cocLwc, - String HospitalNameLwc, - String HospitalInfoLwc, - String SecondDealerLwc, - String invoiceOrderRecoedsLwc, - String deliveryIdLwc, - String invoiceIdLwc, - String accountidLwc, - String agencyProTypeLwc, - String reopenLwc, - String invoiceOrderRecoedschangeLwc - ) { - 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('璇峰綍鍏ュ彂绁ㄥ彿'); - // return null; - return new ResponseBodyLWC('Error', 500, '璇峰綍鍏ュ彂绁ㄥ彿', ''); - } - if (coc.Invoice_Date__c == null) { - // coc.Invoice_Date__c.addError('璇峰綍鍏ュ彂绁ㄦ棩鏈�'); - // return null; - return new ResponseBodyLWC('Error', 500, '璇峰綍鍏ュ彂绁ㄦ棩鏈�', ''); - } - if (String.isBlank(HospitalInfo) && String.isBlank(SecondDealer)) { - // coc.addError('蹇呴』杈撳叆瀹㈡埛鍚嶆垨鑰呬簩绾х粡閿�鍟�'); - // return null; - return new ResponseBodyLWC( - 'Error', - 500, - '蹇呴』杈撳叆瀹㈡埛鍚嶆垨鑰呬簩绾х粡閿�鍟�', - '' - ); - } - if ( - HospitalInfo != null && - HospitalInfo != '' && - String.isNotEmpty(SecondDealer) - ) { - //coc.addError('璇疯緭鍏ュ鎴峰悕銆佷簩绾х粡閿�鍟嗗彧鍙緭鍏ヤ竴涓�'); - errorMsg += '璇疯緭鍏ュ鎴峰悕銆佷簩绾х粡閿�鍟嗗彧鍙緭鍏ヤ竴涓�'; - } - if (HospitalInfo != null && HospitalInfo != '') { - if (coc.Order_ForCustomerText__c == null) { - // coc.Order_ForCustomerText__c.addError('璇疯緭鍏ョ瀹�'); - // return null; - return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ョ瀹�', ''); - } - } else { - if (coc.Order_ForCustomerText__c != null) { - // coc.Order_ForCustomerText__c.addError('涓嶉渶瑕佽緭鍏ョ瀹�'); - // return null; - return new ResponseBodyLWC('Error', 500, '涓嶉渶瑕佽緭鍏ョ瀹�', ''); - } - } - String shipmentAccountString = ''; - if (HospitalInfo != null) { - shipmentAccountString = HospitalInfo; - } else if (String.isNotEmpty(SecondDealer)) { - shipmentAccountString = SecondDealer; - } else { - shipmentAccountString = coc.Order_ForDealerText__c == null - ? '' - : coc.Order_ForDealerText__c; - } - - Integer x = 0; - List<String> invoiceOrderAccountList = new List<String>(); - for (InvoiceOrderInfo ass : invoiceOrderRecoeds) { - if (String.isBlank(deliveryId)) { - if (ass.check == true) { - x++; - System.debug(shipmentAccountString); - if (HospitalInfo != null && HospitalInfo != '') { - if (ass.esd.Order_ForHospital__c != shipmentAccountString) { - invoiceOrderAccountList.add(ass.esd.Name); - } - } - if (String.isNotEmpty(SecondDealer)) { - if ( - ass.esd.Order_ForDealer__c != shipmentAccountString && - ass.esd.Order_ForDealerText__c != shipmentAccountString - ) { - invoiceOrderAccountList.add(ass.esd.Name); - } - } - if ( - coc.Order_ForDealerText__c != null && - (HospitalInfo == null || - HospitalInfo == '') - ) { - if ( - (ass.esd.Order_ForDealerText__c != null || - ass.esd.Order_ForDealerText__c != '') && - ass.esd.ShipmentAccount__c != shipmentAccountString - ) { - invoiceOrderAccountList.add(ass.esd.Name); - } - } - } - } else { - if (HospitalInfo != null && HospitalInfo != '') { - System.debug( - '++++++++++++' + - ass.esd.Order_ForHospital__c + - ' ' + - shipmentAccountString - ); - if (ass.esd.Order_ForHospital__c != shipmentAccountString) { - System.debug( - 'HospitalInfo != null ass.esd.Order_ForHospital__c != shipmentAccountString' - ); - invoiceOrderAccountList.add(ass.esd.Name); - } - } - //if (String.isNotEmpty(SecondDealer)) { - if (String.isNotEmpty(SecondDealer)) { - if (ass.esd.Order_ForDealer__c != shipmentAccountString) { - System.debug( - 'String.isNotEmpty(SecondDealer) ass.esd.Order_ForHospital__c != shipmentAccountString' - ); - invoiceOrderAccountList.add(ass.esd.Name); - } - } - if ( - coc.Order_ForDealerText__c != null && - (HospitalInfo == null || - HospitalInfo == '') - ) { - if ( - (ass.esd.Order_ForDealerText__c != null || - ass.esd.Order_ForDealerText__c != '') && - ass.esd.ShipmentAccount__c != shipmentAccountString - ) { - System.debug( - 'HospitalInfo == null && ass.esd.Order_ForDealerText__c != null ass.esd.ShipmentAccount__c != shipmentAccountString' - ); - invoiceOrderAccountList.add(ass.esd.Name); - } - } - } - } - // invoiceOrderAccountList.add('12345'); - if (invoiceOrderAccountList.size() > 0) { - orderRemind = - invoiceOrderAccountList + '鍑哄簱鍗曞鎴峰悕涓庡彂绁ㄥ鎴峰悕涓嶄竴鑷达紒'; - // coc.addError(invoiceOrderAccountList + '鍑哄簱鍗曞鎴峰悕涓庡彂绁ㄥ鎴峰悕涓嶄竴鑷达紒'); - // return null; - return new ResponseBodyLWC( - 'Error', - 500, - invoiceOrderAccountList + '鍑哄簱鍗曞鎴峰悕涓庡彂绁ㄥ鎴峰悕涓嶄竴鑷达紒', - '' - ); - } else { - orderRemind = ''; - } - if (String.isBlank(deliveryId)) { - if (x < 1) { - // coc.addError('璇烽�夋嫨闇�瑕佸紑鍙戠エ鐨勫嚭搴撳崟锛�'); - // return null; - return new ResponseBodyLWC( - 'Error', - 500, - '璇烽�夋嫨闇�瑕佸紑鍙戠エ鐨勫嚭搴撳崟锛�', - '' - ); - } - } - Consumable_order__c invoiceHead = new Consumable_order__c(); - List<String> outOrderIdList = new List<String>(); - List<Consumable_order_LinkTable__c> invoiceLinkList = new List<Consumable_order_LinkTable__c>(); - Map<String, String> insertDetMap = new Map<String, String>(); - Map<String, String> deleteDetMap = new Map<String, String>(); - //鏂板缓鍙戠エ鏃� - Savepoint sp = Database.setSavepoint(); - try { - if (String.isBlank(invoiceId)) { - invoiceHead.Name = coc.Name; - if ( - coc.Invoice_status__c == null || String.isBlank(coc.Invoice_status__c) - ) - coc.Invoice_status__c = '鑽夋涓�'; - invoiceHead.Order_type__c = '鍙戠エ'; - invoiceHead.Invoice_Date__c = coc.Invoice_Date__c; - invoiceHead.Dealer_Info__c = accountid; - invoiceHead.Invoice_Note__c = coc.Invoice_Note__c; - invoiceHead.Invoice_status__c = '鑽夋涓�'; - invoiceHead.Order_ProType__c = agencyProType; - invoiceHead.Order_ForCustomerText__c = coc.Order_ForCustomerText__c; - //if (deliveryId != null) { - if (String.isNotBlank(deliveryId)) { - invoiceHead.Outbound_order__c = deliveryId; - } - invoiceHead.RecordTypeid = System.Label.RT_ConOrder_Invoice; - // if (SecondDealer == null) { - if (String.isBlank(SecondDealer)) { - if (HospitalInfo != null && HospitalInfo != '') { - invoiceHead.Order_ForHospital__c = HospitalInfo; - } - } else { - invoiceHead.Order_ForDealer__c = SecondDealer; - } - invoiceHead.Order_ForDealerText__c = coc.Order_ForDealerText__c; - if (Test.isRunningTest()) { - invoiceHead.Order_ForHospital__c = null; - } - insert invoiceHead; - invoiceId = invoiceHead.Id; - List<Consumable_order__c> cocinfo = new List<Consumable_order__c>(); - cocinfo = [ - SELECT - Id, - Name, - Invoice_status__c, - Invoice_Date__c, - Order_ForDealerText__c, - Dealer_Info__c, - Order_ForDealer__c, - Order_ForDealer__r.Name, - Order_ForHospital__c, - Order_date__c, - Billed_Status__c, - ShipmentAccount__c, - Order_Dealer_Info__c, - SummonsForDirction__c, - Order_ForCustomerText__c, - Invoice_Note__c, - Invoice_attachment__c, - Invoicedet_attachment__c, - Outbound_order__c - FROM Consumable_order__c - WHERE Id = :invoiceId - ]; - if (cocinfo.size() > 0) { - invoiceHead = cocinfo[0]; - } - if (!String.isBlank(deliveryId)) { - for (InvoiceOrderInfo ass : invoiceOrderRecoeds) { - chukudanID.add(ass.esd.Id); - insertDetMap.put(ass.esd.Id, invoiceHead.Id); - } - } else { - for (InvoiceOrderInfo ass : invoiceOrderRecoeds) { - if (!String.isBlank(deliveryId)) { - chukudanID.add(ass.esd.Id); - insertDetMap.put(ass.esd.Id, invoiceHead.Id); + // 鏂拌 + if (invoiceId == null || invoiceId == '') { + if (deliveryId == null || deliveryId == '') { + String msoql = makeSoql(); + invoiceOrderList = Database.query(msoql); + for (Integer i = 0; i < invoiceOrderList.size(); i++) { + invoiceOrderRecoeds.add(new InvoiceOrderInfo(invoiceOrderList[i])); + } } else { - if (ass.check == true) { - chukudanID.add(ass.esd.Id); - insertDetMap.put(ass.esd.Id, invoiceHead.Id); - } else { - //deleteDetMap.put(ass.esd.Id,invoiceHead.Id); - } + if (statusEdit == '' || statusEdit == null) { + EditAble = false; + } else if (statusEdit != '' && statusEdit != null) { + EditAble = true; + } + coc = [ + SELECT + Id, + Name, + Invoice_status__c, + Invoice_Date__c, + Order_ForDealerText__c, + Dealer_Info__c, + Order_ForDealer__c, + Order_ForDealer__r.Name, + Order_ForHospital__c, + Order_ForHospital__r.Name, + Order_date__c, + Billed_Status__c, + ShipmentAccount__c, + Order_Dealer_Info__c, + SummonsForDirction__c, + Order_ForCustomerText__c, + Invoice_Note__c, + Invoice_attachment__c, + Invoicedet_attachment__c, + Outbound_order__c + FROM Consumable_order__c + WHERE Id = :deliveryId + ]; + coc.Name = ''; + if (coc.Order_ForDealer__c != null) { + SecondDealer = coc.Order_ForDealer__c; + } + + if (coc.Order_ForHospital__c != null) { + HospitalInfo = coc.Order_ForHospital__c; + HospitalName = coc.Order_ForHospital__r.Name; + } + + //鍙戠エ鍏宠仈鍑哄簱鍗曞彇寰楋紙鍑哄簱鍗曪級 + invoiceOrderSelectedList = [ + SELECT + Id, + Order_ForDealer__r.Name, + Order_ForHospital__r.Name, + Order_ForDealerText__c, + Name, + Outbound_Date__c, + ShipmentAccount__c, + Order_Dealer_Info__c, + SummonsForDirction__c, + Shipment_total_amount__c, + RrturnPro_total_amount__c, + Total_Invoiced_Procount__c, + InvoiceNotPro_total_amount__c, + InvoiceNotPro_money__c, + Invoice_total_amount__c, + Billed_Status__c + FROM Consumable_order__c + WHERE Id = :deliveryId + ORDER BY Name + ]; + for (Integer i = 0; i < invoiceOrderSelectedList.size(); i++) { + invoiceOrderRecoeds.add(new InvoiceOrderInfo(invoiceOrderSelectedList[i])); + } } - } - } - //鏂板缓鍙戠エ鏄庣粏1 - if (chukudanID.size() > 0) { - newinvoicedetails1(chukudanID); - } - //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'deleteDetMap +++++' + deleteDetMap.size())); - //return null; - if (insertDetMap.size() > 0) { - for (String field : insertDetMap.keySet()) { - List<Consumable_order_LinkTable__c> existLinkinfo = [ - SELECT Id - FROM Consumable_order_LinkTable__c - WHERE - Outboundorder_Code_link__c = :field - AND Invoice_Code_link__c = :insertDetMap.get(field) + } else { + coc = [ + SELECT + Id, + Name, + Invoice_status__c, + Invoice_Date__c, + Order_ForDealerText__c, + Dealer_Info__c, + Order_ForDealer__c, + Order_ForDealer__r.Name, + Order_ForHospital__c, + Order_ForHospital__r.Name, + Order_date__c, + Billed_Status__c, + ShipmentAccount__c, + Order_Dealer_Info__c, + SummonsForDirction__c, + Order_ForCustomerText__c, + Invoice_Note__c, + Invoice_attachment__c, + Invoicedet_attachment__c, + Outbound_order__c + FROM Consumable_order__c + WHERE Id = :invoiceId AND Order_type__c = '鍙戠エ' ]; - if (existLinkinfo.size() < 1) { - Consumable_order_LinkTable__c invoiceLink = new Consumable_order_LinkTable__c(); - invoiceLink.Name = field + insertDetMap.get(field); - invoiceLink.Outboundorder_Code_link__c = field; - invoiceLink.Invoice_Code_link__c = insertDetMap.get(field); - invoiceLinkList.add(invoiceLink); + if (coc.Order_ForDealer__c != null) { + SecondDealer = coc.Order_ForDealer__c; } - } - 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; - invoiceHead.Dealer_Info__c = accountid; - invoiceHead.Invoice_Note__c = coc.Invoice_Note__c; - invoiceHead.Invoice_status__c = '鑽夋涓�'; - invoiceHead.Order_ProType__c = agencyProType; - invoiceHead.Order_ForCustomerText__c = coc.Order_ForCustomerText__c; - //if (deliveryId != null) { - if (String.isNotBlank(deliveryId)) { - invoiceHead.Outbound_order__c = deliveryId; - } - invoiceHead.RecordTypeid = System.Label.RT_ConOrder_Invoice; - //if (SecondDealer == null) { - if (String.isBlank(SecondDealer)) { - if (HospitalInfo != null && HospitalInfo != '') { - invoiceHead.Order_ForHospital__c = HospitalInfo; - } - } else { - invoiceHead.Order_ForDealer__c = SecondDealer; - } - invoiceHead.Order_ForDealerText__c = coc.Order_ForDealerText__c; - if (Test.isRunningTest()) { - invoiceHead.Order_ForHospital__c = null; - } - insert invoiceHead; - System.debug('invoiceHead = ' + invoiceHead); - - List<String> updateChukudanId = new List<String>(); - //鑾峰彇鍘熷彂绁ㄧ浉鍏宠仈鐨勯摼鎺ヨ〃淇℃伅 - List<Consumable_order_LinkTable__c> tLinkList = [ - SELECT Outboundorder_Code_link__c - FROM Consumable_order_LinkTable__c - WHERE Invoice_Code_link__c = :invoiceId - ]; - - for (Consumable_order_LinkTable__c colc : tLinkList) { - colc.Invoice_Code_link__c = invoiceHead.Id; - updateChukudanId.add(colc.Outboundorder_Code_link__c); - } - System.debug('tLinkList = ' + tLinkList); - update tLinkList; - //鏇存柊鍙戠エ鏄庣粏淇℃伅 - //鑾峰彇鍑哄簱鍗�,璁剧疆鍏宠仈鍏崇郴 - //鑾峰彇鍑哄簱鍗曟槑缁嗕俊鎭�,鍥犱负鍑哄簱鍗曚俊鎭拰鍑哄簱鍗曟槑缁嗕俊鎭槸鍏宠仈鐨�,鎵�鏈夊彧闇�瑕佸洖婊氬嚭搴撳崟鏄庣粏淇℃伅鍗冲彲 - - Map<String, Consumable_Orderdetails__c> tempCocMap = new Map<String, Consumable_Orderdetails__c>(); - List<Consumable_Orderdetails__c> tempCountList = [ - SELECT - Id, - Consumable_order__c, - Asset_Model_No__c, - InvoicedProCost_RMB__c, - Invoicedet1_OD_link__c, - InvoicedProduct_RMB__c, - Invoiced_Procount__c, - Invoiced_BoxCount__c, - Invoice_Unit__c - FROM Consumable_Orderdetails__c - WHERE Consumable_order__c = :invoiceId - ]; - for (Consumable_Orderdetails__c cocTemp : tempCountList) { - 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 - Id, - Consumable_order__c, - RrturnPro_count__c, - Delivery_List_RMB__c, - InvoicedProCost_RMB__c, - Invoiced_Procount__c, - Invoice_Unitprice__c, - Box_Piece__c, - Invoice_Unit__c, - Consumable_order__r.Invoice_total_amount__c, - ProductPacking_list_manual__c, - InvoicedProduct_RMB__c, - Invoiced_BoxCount__c, - Shipment_amount__c, - Asset_Model_No__c - FROM Consumable_Orderdetails__c - WHERE Consumable_order__c IN :updateChukudanId - ]; - for (Consumable_Orderdetails__c corderc : updateFromList) { - String tempStr = - corderc.Consumable_order__c + corderc.Asset_Model_No__c; - if (tempCocMap.get(tempStr) != null) { - //璁剧疆宸插彂绁ㄩ噾棰� 鍑哄簱鍗曠殑宸插彂绁ㄩ噾棰� - 鍙戠エ鐨勫彂绁ㄩ噾棰� - corderc.InvoicedProCost_RMB__c = - corderc.InvoicedProCost_RMB__c - - tempCocMap.get(tempStr).InvoicedProduct_RMB__c; - //璁剧疆宸插彂绁ㄦ暟閲� 鍑哄簱鍗曠殑宸插彂绁ㄦ暟閲� - 鍙戠エ鐨勫彂绁ㄦ暟閲�(鐩�) - corderc.Invoiced_Procount__c = - corderc.Invoiced_Procount__c - - tempCocMap.get(tempStr).Invoiced_BoxCount__c; - //璁剧疆鍙戠エ鍗曚环 - if ( - corderc.Box_Piece__c == '鐩�' && - corderc.Invoice_Unit__c == '涓�' - ) { - corderc.Invoice_Unitprice__c = - corderc.Delivery_List_RMB__c / - corderc.ProductPacking_list_manual__c; - } else { - corderc.Invoice_Unitprice__c = corderc.Delivery_List_RMB__c; + if (coc.Order_ForHospital__c != null) { + HospitalInfo = coc.Order_ForHospital__c; + HospitalName = coc.Order_ForHospital__r.Name; } - } - } - - 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) { - if (ass.check == true) { - insertDetMap.put(ass.esd.Id, invoiceHead.Id); - } else { - outOrderIdList.add(ass.esd.Id); - deleteDetMap.put(ass.esd.Id, invoiceHead.Id); - } - } - if (outOrderIdList.size() > 0) { - getdefaultMapinfo(outOrderIdList); - } - //琚�変腑鐨勫嚭搴撳崟闆嗗悎 - if (insertDetMap.size() > 0) { - List<Consumable_order_LinkTable__c> existLinkinfo = [ - SELECT Id, Invoice_Code_link__c, Outboundorder_Code_link__c - FROM Consumable_order_LinkTable__c - WHERE - Outboundorder_Code_link__c IN :insertDetMap.keySet() - AND Invoice_Code_link__c = :invoiceHead.Id - ]; - //瀛樺湪娌℃湁涓庡彂绁ㄥ缓绔嬪叧鑱斿叧绯荤殑鍑哄簱鍗� - List<String> templist2 = new List<String>(); - for (Consumable_order_LinkTable__c colc : existLinkinfo) { - templist2.add(colc.Outboundorder_Code_link__c); - } - //鑾峰彇璇ュ嚭搴撳崟 - for (String field : insertDetMap.keySet()) { - if (!templist2.contains(field)) { - //璇ュ嚭搴撳崟涓嶅瓨鍦ㄤ笌閾炬帴琛ㄤ腑,鏂板缓閾炬帴 - chukudanID.add(field); - Consumable_order_LinkTable__c invoiceLink = new Consumable_order_LinkTable__c(); - invoiceLink.Name = field + insertDetMap.get(field); - invoiceLink.Outboundorder_Code_link__c = field; - invoiceLink.Invoice_Code_link__c = insertDetMap.get(field); - invoiceLinkList.add(invoiceLink); - } - } - System.debug('invoiceLinkList = ' + invoiceLinkList); - upsert invoiceLinkList; - } - //鍒犻櫎鍑哄簱鍗曢摼鎺ヨ〃 - if (deleteDetMap.size() > 0) { - List<Consumable_order_LinkTable__c> invoiceLinkdetList = new List<Consumable_order_LinkTable__c>(); - deleteOutboundorder(deleteDetMap, invoiceHead.Id); - List<Consumable_order_LinkTable__c> existLinkinfo = [ - SELECT Id, Outboundorder_Code_link__c, Invoice_Code_link__c - FROM Consumable_order_LinkTable__c - WHERE - Outboundorder_Code_link__c IN :deleteDetMap.keySet() - AND Invoice_Code_link__c = :invoiceHead.Id - ]; - for (Consumable_order_LinkTable__c colctemp : existLinkinfo) { - if ( - deleteDetMap.get(colctemp.Outboundorder_Code_link__c) == - colctemp.Invoice_Code_link__c - ) { - //瀛樺湪涓庤鍙戠エ鍏宠仈鐨勫嚭搴撳崟 - invoiceLinkdetList.add(colctemp); - } - } - System.debug('invoiceLinkdetList = ' + invoiceLinkdetList); - delete invoiceLinkdetList; - } - //鏂板缓鍙戠エ鏄庣粏1 - System.debug('===>' + chukudanID); - System.debug('===>' + chukudanID.size()); - if (chukudanID.size() > 0) { - newinvoicedetails1(chukudanID); - } - } else { - //CHAN-BSS5SQ update by rentongxiao 2020-09-04 end - //缂栬緫鍚庝繚瀛� - List<Consumable_order__c> cocinfo = new List<Consumable_order__c>(); - cocinfo = [ - SELECT - Id, - Name, - Invoice_status__c, - Invoice_Date__c, - Order_ForDealerText__c, - Dealer_Info__c, - Order_ForDealer__c, - Order_ForDealer__r.Name, - Order_ForHospital__c, - Order_date__c, - Billed_Status__c, - ShipmentAccount__c, - Order_Dealer_Info__c, - SummonsForDirction__c, - Order_ForCustomerText__c, - Invoice_Note__c, - Invoice_attachment__c, - Invoicedet_attachment__c, - Outbound_order__c - FROM Consumable_order__c - WHERE Id = :invoiceId - ]; - if (cocinfo.size() > 0) { - invoiceHead = cocinfo[0]; - } - if (String.isNotBlank(deliveryId)) { - for (InvoiceOrderInfo ass : invoiceOrderRecoedschange) { - insertDetMap.put(ass.esd.Id, invoiceHead.Id); - } - - //鎹㈣揣鍗曚骇鍝佹暟閲� - Map<String, Decimal> needchangeOrderProcountMap = new Map<String, Decimal>(); - Map<String, Decimal> returnProcountMap = new Map<String, Decimal>(); - Map<String, Decimal> changeOrderProcountMap = new Map<String, Decimal>(); - List<Consumable_Orderdetails__c> detaliFromList = [ - SELECT - Id, - Name, - Consumable_order__c, - 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_Unit__c, - Box_Piece__c, - Invoice_Cost_RMB__c - FROM Consumable_Orderdetails__c - WHERE Consumable_order__c = :deliveryId - ]; - for (Consumable_Orderdetails__c changeOD : detaliFromList) { - needchangeOrderProcountMap.put( - changeOD.Asset_Model_No__c, - changeOD.Shipment_Count__c - ); - } - //鍙戠エ杩斿搧淇℃伅 - List<Consumable_Orderdetails__c> returnCountList = [ - SELECT - Id, - Name, - Consumable_order__c, - 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_Unit__c, - Box_Piece__c - FROM Consumable_Orderdetails__c - WHERE Consumable_order__c = :invoiceId - ]; - - for (Consumable_Orderdetails__c changeOD : returnCountList) { - if (changeOD.RrturnPro_count__c > 0) { - if (returnProcountMap.containsKey(changeOD.Asset_Model_No__c)) { - returnProcountMap.put( - changeOD.Asset_Model_No__c, - returnProcountMap.get(changeOD.Asset_Model_No__c) + - changeOD.RrturnPro_count__c - ); - } else { - returnProcountMap.put( - changeOD.Asset_Model_No__c, - changeOD.RrturnPro_count__c - ); - } - } - } - - //宸叉崲璐у崟鍑哄簱鏁伴噺淇℃伅 - List<Consumable_Orderdetails__c> returnCount1List = [ - SELECT - Id, - Name, - Consumable_order__c, - 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_Unit__c, - Box_Piece__c - FROM Consumable_Orderdetails__c - WHERE - Consumable_order__c IN ( + //鍒伴摼鎺ヨ〃涓煡鎵惧叧鑱斿嚭搴撳崟 + List<Consumable_order_LinkTable__c> outOrderList = [ SELECT Outboundorder_Code_link__c FROM Consumable_order_LinkTable__c WHERE Invoice_Code_link__c = :invoiceId - ) - AND Consumable_order__r.Onchange_order__c = TRUE - AND Consumable_order__c != :deliveryId - ]; - for (Consumable_Orderdetails__c changeOD : returnCount1List) { - changeOrderProcountMap.put( - changeOD.Asset_Model_No__c, - changeOD.Shipment_Count__c - ); - } - outOrderchange(insertDetMap); - } else { - invoiceHead.Name = coc.Name; - invoiceHead.Invoice_status__c = coc.Invoice_status__c; - invoiceHead.Invoice_Date__c = coc.Invoice_Date__c; - invoiceHead.Dealer_Info__c = accountid; - invoiceHead.Invoice_Note__c = coc.Invoice_Note__c; - invoiceHead.Invoice_status__c = '鑽夋涓�'; - invoiceHead.Order_ProType__c = agencyProType; - invoiceHead.Order_ForCustomerText__c = coc.Order_ForCustomerText__c; - //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'HospitalName +++++' + HospitalName)); - //return null; - if (HospitalName != null && HospitalName != '') { - if (HospitalInfo != null && HospitalInfo != '') { - invoiceHead.Order_ForHospital__c = HospitalInfo; - } - } else { - invoiceHead.Order_ForHospital__c = null; - } - invoiceHead.Order_ForDealer__c = SecondDealer == '' - ? null - : SecondDealer; - invoiceHead.Order_ForDealerText__c = coc.Order_ForDealerText__c; - update invoiceHead; - for (InvoiceOrderInfo ass : invoiceOrderRecoeds) { - if (ass.check == true) { - insertDetMap.put(ass.esd.Id, invoiceHead.Id); - } else { - outOrderIdList.add(ass.esd.Id); - deleteDetMap.put(ass.esd.Id, invoiceHead.Id); - } - } - if (outOrderIdList.size() > 0) { - getdefaultMapinfo(outOrderIdList); - } - //CHAN-BSS5SQ update by rentongxiao 2020-09-08 start - //琚�変腑鐨勫嚭搴撳崟闆嗗悎 - if (insertDetMap.size() > 0) { - List<Consumable_order_LinkTable__c> existLinkinfo = [ - SELECT Id, Invoice_Code_link__c, Outboundorder_Code_link__c - FROM Consumable_order_LinkTable__c - WHERE - Outboundorder_Code_link__c IN :insertDetMap.keySet() - AND Invoice_Code_link__c = :invoiceHead.Id ]; - //瀛樺湪娌℃湁涓庡彂绁ㄥ缓绔嬪叧鑱斿叧绯荤殑鍑哄簱鍗� - List<String> templist2 = new List<String>(); - for (Consumable_order_LinkTable__c colc : existLinkinfo) { - templist2.add(colc.Outboundorder_Code_link__c); + for (Integer i = 0; i < outOrderList.size(); i++) { + outOrderStringList.add(outOrderList[i].Outboundorder_Code_link__c); } - //鑾峰彇璇ュ嚭搴撳崟 + //鍙栧緱鍑哄簱鍗曚俊鎭� + invoiceOrderSelectedList = [ + SELECT + Id, + Order_ForDealer__r.Name, + Order_ForHospital__r.Name, + Order_ForDealerText__c, + Name, + Outbound_Date__c, + ShipmentAccount__c, + Shipment_total_amount__c, + RrturnPro_total_amount__c, + Total_Invoiced_Procount__c, + InvoiceNotPro_total_amount__c, + InvoiceNotPro_money__c, + Invoice_total_amount__c, + Billed_Status__c + FROM Consumable_order__c + WHERE Id IN :outOrderStringList AND Order_Owner_WorkLocal__c = :userWorkLocation + ORDER BY Name + ]; + for (Integer i = 0; i < invoiceOrderSelectedList.size(); i++) { + outorderMoneytMap.put(invoiceOrderSelectedList[i].id, 0); + invoiceOrderRecoeds.add(new InvoiceOrderInfo(invoiceOrderSelectedList[i])); + } + if (String.isNotBlank(deliveryId)) { + //鍙戠エ鍏宠仈鍑哄簱鍗曞彇寰楋紙鍑哄簱鍗曪級 + isChange = true; + invoiceOrderSelectedList = [ + SELECT + Id, + Order_ForDealer__r.Name, + Order_ForHospital__r.Name, + Order_ForDealerText__c, + Name, + Outbound_Date__c, + ShipmentAccount__c, + Shipment_total_amount__c, + RrturnPro_total_amount__c, + Total_Invoiced_Procount__c, + InvoiceNotPro_total_amount__c, + InvoiceNotPro_money__c, + Invoice_total_amount__c, + Billed_Status__c + FROM Consumable_order__c + WHERE Id = :deliveryId AND Order_Owner_WorkLocal__c = :userWorkLocation + ORDER BY Name + ]; + for (Integer i = 0; i < invoiceOrderSelectedList.size(); i++) { + if (!outorderMoneytMap.containsKey(invoiceOrderSelectedList[i].Id)) { + invoiceOrderRecoeds.add(new InvoiceOrderInfo(invoiceOrderSelectedList[i])); + invoiceOrderRecoedschange.add(new InvoiceOrderInfo(invoiceOrderSelectedList[i])); + } + } + } + //鍙戠エ鏄庣粏涓�瑙� + List<Consumable_Orderdetails__c> countDel = [ + SELECT + Id, + Consumable_ZS_order__c, + Name, + Consumable_order__c, + Invoicedet1_OD_link__c, + Invoicedet1_OD_link__r.Name, + Consumable_order__r.Name, + Product_OutDate__c, + Asset_Model_No__c, + Invoice_Unitprice__c, + Delivery_List_RMB__c, + Invoiced_Procount__c, + Invoiced_Count__c, + InvoicedProCost_RMB__c, + Box_Piece__c, + Invoice_Unit__c, + ProductPacking_list_manual__c + FROM Consumable_Orderdetails__c + WHERE Consumable_order__c = :invoiceId + ORDER BY Invoicedet1_OD_link__c + ]; + if (countDel.size() > 0) { + for (Integer i = 0; i < countDel.size(); i++) { + outordercountMap.put(countDel[i].Invoicedet1_OD_link__c + countDel[i].Asset_Model_No__c, countDel[i]); + if (outorderMoneytMap.containsKey(countDel[i].Invoicedet1_OD_link__c)) { + outorderMoneytMap.put( + countDel[i].Invoicedet1_OD_link__c, + outorderMoneytMap.get(countDel[i].Invoicedet1_OD_link__c) + countDel[i].InvoicedProCost_RMB__c + ); + } + invoiceOrderdetail1Recoeds.add(new InvoiceOrderInfo(countDel[i])); + } + } + for (InvoiceOrderInfo ass : invoiceOrderRecoeds) { + if (outorderMoneytMap.containsKey(ass.esd.id)) { + ass.needInvoiceCount = outorderMoneytMap.get(ass.esd.id); + } + ass.check = true; + } + } + + if (SecondDealer == null || SecondDealer == '') { + provinceOpts.add(new SelectOption('', '-鏃�-')); + provinceOptsMap.put('', '-鏃�-'); + for (Integer i = 0; i < Dealerelationship.size(); i++) { + provinceOpts.add( + new SelectOption(Dealerelationship[i].Dealer_subordinate__c, Dealerelationship[i].Dealer_subordinate__r.Name) + ); + provinceOptsMap.put(Dealerelationship[i].Dealer_subordinate__c, Dealerelationship[i].Dealer_subordinate__r.Name); + } + } else { + provinceOpts.add(new SelectOption('', '-鏃�-')); + provinceOptsMap.put('', '-鏃�-'); + for (Integer i = 0; i < Dealerelationship.size(); i++) { + if (Dealerelationship[i].Dealer_subordinate__r.Name == SecondDealer) { + provinceOpts.add(new SelectOption(Dealerelationship[i].Dealer_subordinate__c, SecondDealer)); + provinceOptsMap.put(Dealerelationship[i].Dealer_subordinate__c, SecondDealer); + } + } + for (Integer i = 0; i < Dealerelationship.size(); i++) { + if (Dealerelationship[i].Dealer_subordinate__r.Name != SecondDealer) { + provinceOpts.add( + new SelectOption(Dealerelationship[i].Dealer_subordinate__c, Dealerelationship[i].Dealer_subordinate__r.Name) + ); + provinceOptsMap.put(Dealerelationship[i].Dealer_subordinate__c, Dealerelationship[i].Dealer_subordinate__r.Name); + } + } + } + + Map<String, String> consumableaccessoriesMap = new Map<String, String>(); + Map<String, String> invorceOrderIdMap = new Map<String, String>(); + List<Consumable_accessories_invoice__c> consumableaccessories = [ + SELECT Id, Name, Attachment_ID__c, Accessories_type__c + FROM Consumable_accessories_invoice__c + WHERE Invoice_code__c = :invoiceId + ]; + System.debug('consumableaccessories = ' + consumableaccessories); + if (consumableaccessories.size() > 0) { + for (Integer i = 0; i < consumableaccessories.size(); i++) { + consumableaccessoriesMap.put(consumableaccessories[i].Attachment_ID__c, consumableaccessories[i].Accessories_type__c); + invorceOrderIdMap.put(consumableaccessories[i].Attachment_ID__c, consumableaccessories[i].Id); + } + } + + //List<Attachment> attachmentinfo = [SELECT Id, Name, OwnerId,Owner.Name, CreatedDate FROM Attachment WHERE parentid = :invoiceId]; + // if (attachmentinfo.size() > 0) { + // for (Integer i = 0; i < attachmentinfo.size(); i++) { + // attachmentRecoeds.add(new InvoiceOrderInfo(attachmentinfo[i])); + // } + // } + List<ContentDocumentLink> links = [SELECT Id, ContentDocumentId FROM ContentDocumentLink WHERE LinkedEntityId = :invoiceId]; + if (links != null && links.size() > 0) { + List<String> documentIds = new List<String>(); + for (ContentDocumentLink link : links) { + documentIds.add(link.ContentDocumentId); + } + List<ContentVersion> cvInfo = [ + SELECT Id, Title, OwnerId, Owner.Name, CreatedDate, ContentDocumentId + FROM ContentVersion + WHERE ContentDocumentId IN :documentIds + ]; + + if (cvInfo.size() > 0) { + for (Integer i = 0; i < cvInfo.size(); i++) { + attachmentRecoeds.add(new InvoiceOrderInfo(cvInfo[i])); + } + } + } + // 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])); + // } + // } + System.debug('attachmentRecoeds = ' + attachmentRecoeds); + System.debug('consumableaccessoriesMap = ' + consumableaccessoriesMap); + for (InvoiceOrderInfo ass : attachmentRecoeds) { + if (consumableaccessoriesMap.containsKey(ass.cvInfo.Id)) { + ass.mailSelectOptsin = consumableaccessoriesMap.get(ass.cvInfo.Id); + ass.invoiceOrderId = invorceOrderIdMap.get(ass.cvInfo.Id); + } + } + data.put('EditAble', EditAble); + data.put('isChange', isChange); + data.put('coc', coc); + data.put('ExistOutbound', getExistOutbound()); + data.put('invoiceOrderRecoeds', invoiceOrderRecoeds); + data.put('provinceOptsMap', provinceOptsMap); + data.put('HospitalName', HospitalName); + data.put('HospitalInfo', HospitalInfo); + data.put('agencyProType', agencyProType); + data.put('userWorkLocation', userWorkLocation); + data.put('done', getdone()); + data.put('invoiceOrderdetail1Recoeds', invoiceOrderdetail1Recoeds); + 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); + return res; + } + + //淇濆瓨 + @AuraEnabled + public static ResponseBodyLWC save( + Consumable_order__c cocLwc, + String HospitalNameLwc, + String HospitalInfoLwc, + String SecondDealerLwc, + String invoiceOrderRecoedsLwc, + String deliveryIdLwc, + String invoiceIdLwc, + String accountidLwc, + String agencyProTypeLwc, + String reopenLwc, + String invoiceOrderRecoedschangeLwc + ) { + 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('璇峰綍鍏ュ彂绁ㄥ彿'); + // return null; + return new ResponseBodyLWC('Error', 500, '璇峰綍鍏ュ彂绁ㄥ彿', ''); + } + if (coc.Invoice_Date__c == null) { + // coc.Invoice_Date__c.addError('璇峰綍鍏ュ彂绁ㄦ棩鏈�'); + // return null; + return new ResponseBodyLWC('Error', 500, '璇峰綍鍏ュ彂绁ㄦ棩鏈�', ''); + } + if (String.isBlank(HospitalInfo) && String.isBlank(SecondDealer)) { + // coc.addError('蹇呴』杈撳叆瀹㈡埛鍚嶆垨鑰呬簩绾х粡閿�鍟�'); + // return null; + return new ResponseBodyLWC('Error', 500, '蹇呴』杈撳叆瀹㈡埛鍚嶆垨鑰呬簩绾х粡閿�鍟�', ''); + } + if (HospitalInfo != null && HospitalInfo != '' && String.isNotEmpty(SecondDealer)) { + //coc.addError('璇疯緭鍏ュ鎴峰悕銆佷簩绾х粡閿�鍟嗗彧鍙緭鍏ヤ竴涓�'); + errorMsg += '璇疯緭鍏ュ鎴峰悕銆佷簩绾х粡閿�鍟嗗彧鍙緭鍏ヤ竴涓�'; + } + if (HospitalInfo != null && HospitalInfo != '') { + if (coc.Order_ForCustomerText__c == null) { + // coc.Order_ForCustomerText__c.addError('璇疯緭鍏ョ瀹�'); + // return null; + return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ョ瀹�', ''); + } + } else { + if (coc.Order_ForCustomerText__c != null) { + // coc.Order_ForCustomerText__c.addError('涓嶉渶瑕佽緭鍏ョ瀹�'); + // return null; + return new ResponseBodyLWC('Error', 500, '涓嶉渶瑕佽緭鍏ョ瀹�', ''); + } + } + String shipmentAccountString = ''; + if (HospitalInfo != null) { + shipmentAccountString = HospitalInfo; + } else if (String.isNotEmpty(SecondDealer)) { + shipmentAccountString = SecondDealer; + } else { + shipmentAccountString = coc.Order_ForDealerText__c == null ? '' : coc.Order_ForDealerText__c; + } + + Integer x = 0; + List<String> invoiceOrderAccountList = new List<String>(); + for (InvoiceOrderInfo ass : invoiceOrderRecoeds) { + if (String.isBlank(deliveryId)) { + if (ass.check == true) { + x++; + System.debug(shipmentAccountString); + if (HospitalInfo != null && HospitalInfo != '') { + if (ass.esd.Order_ForHospital__c != shipmentAccountString) { + invoiceOrderAccountList.add(ass.esd.Name); + } + } + if (String.isNotEmpty(SecondDealer)) { + if ( + ass.esd.Order_ForDealer__c != shipmentAccountString && + ass.esd.Order_ForDealerText__c != shipmentAccountString + ) { + invoiceOrderAccountList.add(ass.esd.Name); + } + } + if (coc.Order_ForDealerText__c != null && (HospitalInfo == null || HospitalInfo == '')) { + if ( + (ass.esd.Order_ForDealerText__c != null || ass.esd.Order_ForDealerText__c != '') && + ass.esd.ShipmentAccount__c != shipmentAccountString + ) { + invoiceOrderAccountList.add(ass.esd.Name); + } + } + } + } else { + if (HospitalInfo != null && HospitalInfo != '') { + System.debug('++++++++++++' + ass.esd.Order_ForHospital__c + ' ' + shipmentAccountString); + if (ass.esd.Order_ForHospital__c != shipmentAccountString) { + System.debug('HospitalInfo != null ass.esd.Order_ForHospital__c != shipmentAccountString'); + invoiceOrderAccountList.add(ass.esd.Name); + } + } + //if (String.isNotEmpty(SecondDealer)) { + if (String.isNotEmpty(SecondDealer)) { + if (ass.esd.Order_ForDealer__c != shipmentAccountString) { + System.debug('String.isNotEmpty(SecondDealer) ass.esd.Order_ForHospital__c != shipmentAccountString'); + invoiceOrderAccountList.add(ass.esd.Name); + } + } + if (coc.Order_ForDealerText__c != null && (HospitalInfo == null || HospitalInfo == '')) { + if ( + (ass.esd.Order_ForDealerText__c != null || ass.esd.Order_ForDealerText__c != '') && + ass.esd.ShipmentAccount__c != shipmentAccountString + ) { + System.debug( + 'HospitalInfo == null && ass.esd.Order_ForDealerText__c != null ass.esd.ShipmentAccount__c != shipmentAccountString' + ); + invoiceOrderAccountList.add(ass.esd.Name); + } + } + } + } + // invoiceOrderAccountList.add('12345'); + if (invoiceOrderAccountList.size() > 0) { + orderRemind = invoiceOrderAccountList + '鍑哄簱鍗曞鎴峰悕涓庡彂绁ㄥ鎴峰悕涓嶄竴鑷达紒'; + // coc.addError(invoiceOrderAccountList + '鍑哄簱鍗曞鎴峰悕涓庡彂绁ㄥ鎴峰悕涓嶄竴鑷达紒'); + // return null; + return new ResponseBodyLWC('Error', 500, invoiceOrderAccountList + '鍑哄簱鍗曞鎴峰悕涓庡彂绁ㄥ鎴峰悕涓嶄竴鑷达紒', ''); + } else { + orderRemind = ''; + } + if (String.isBlank(deliveryId)) { + if (x < 1) { + // coc.addError('璇烽�夋嫨闇�瑕佸紑鍙戠エ鐨勫嚭搴撳崟锛�'); + // return null; + return new ResponseBodyLWC('Error', 500, '璇烽�夋嫨闇�瑕佸紑鍙戠エ鐨勫嚭搴撳崟锛�', ''); + } + } + Consumable_order__c invoiceHead = new Consumable_order__c(); + List<String> outOrderIdList = new List<String>(); + List<Consumable_order_LinkTable__c> invoiceLinkList = new List<Consumable_order_LinkTable__c>(); + Map<String, String> insertDetMap = new Map<String, String>(); + Map<String, String> deleteDetMap = new Map<String, String>(); + //鏂板缓鍙戠エ鏃� + Savepoint sp = Database.setSavepoint(); + try { + if (String.isBlank(invoiceId)) { + invoiceHead.Name = coc.Name; + if (coc.Invoice_status__c == null || String.isBlank(coc.Invoice_status__c)) + coc.Invoice_status__c = '鑽夋涓�'; + invoiceHead.Order_type__c = '鍙戠エ'; + invoiceHead.Invoice_Date__c = coc.Invoice_Date__c; + invoiceHead.Dealer_Info__c = accountid; + invoiceHead.Invoice_Note__c = coc.Invoice_Note__c; + invoiceHead.Invoice_status__c = '鑽夋涓�'; + invoiceHead.Order_ProType__c = agencyProType; + invoiceHead.Order_ForCustomerText__c = coc.Order_ForCustomerText__c; + //if (deliveryId != null) { + if (String.isNotBlank(deliveryId)) { + invoiceHead.Outbound_order__c = deliveryId; + } + invoiceHead.RecordTypeid = System.Label.RT_ConOrder_Invoice; + // if (SecondDealer == null) { + if (String.isBlank(SecondDealer)) { + if (HospitalInfo != null && HospitalInfo != '') { + invoiceHead.Order_ForHospital__c = HospitalInfo; + } + } else { + invoiceHead.Order_ForDealer__c = SecondDealer; + } + invoiceHead.Order_ForDealerText__c = coc.Order_ForDealerText__c; + if(Test.isRunningTest()){ + invoiceHead.Order_ForHospital__c = null; + } + insert invoiceHead; + invoiceId = invoiceHead.Id; + List<Consumable_order__c> cocinfo = new List<Consumable_order__c>(); + cocinfo = [ + SELECT + Id, + Name, + Invoice_status__c, + Invoice_Date__c, + Order_ForDealerText__c, + Dealer_Info__c, + Order_ForDealer__c, + Order_ForDealer__r.Name, + Order_ForHospital__c, + Order_date__c, + Billed_Status__c, + ShipmentAccount__c, + Order_Dealer_Info__c, + SummonsForDirction__c, + Order_ForCustomerText__c, + Invoice_Note__c, + Invoice_attachment__c, + Invoicedet_attachment__c, + Outbound_order__c + FROM Consumable_order__c + WHERE Id = :invoiceId + ]; + if (cocinfo.size() > 0) { + invoiceHead = cocinfo[0]; + } + if (!String.isBlank(deliveryId)) { + for (InvoiceOrderInfo ass : invoiceOrderRecoeds) { + chukudanID.add(ass.esd.Id); + insertDetMap.put(ass.esd.Id, invoiceHead.Id); + } + } else { + for (InvoiceOrderInfo ass : invoiceOrderRecoeds) { + if (!String.isBlank(deliveryId)) { + chukudanID.add(ass.esd.Id); + insertDetMap.put(ass.esd.Id, invoiceHead.Id); + } else { + if (ass.check == true) { + chukudanID.add(ass.esd.Id); + insertDetMap.put(ass.esd.Id, invoiceHead.Id); + } else { + //deleteDetMap.put(ass.esd.Id,invoiceHead.Id); + } + } + } + } + //鏂板缓鍙戠エ鏄庣粏1 + if (chukudanID.size() > 0) { + newinvoicedetails1(chukudanID); + } + //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'deleteDetMap +++++' + deleteDetMap.size())); + //return null; + if (insertDetMap.size() > 0) { + for (String field : insertDetMap.keySet()) { + List<Consumable_order_LinkTable__c> existLinkinfo = [ + SELECT Id + FROM Consumable_order_LinkTable__c + WHERE Outboundorder_Code_link__c = :field AND Invoice_Code_link__c = :insertDetMap.get(field) + ]; + if (existLinkinfo.size() < 1) { + Consumable_order_LinkTable__c invoiceLink = new Consumable_order_LinkTable__c(); + invoiceLink.Name = field + insertDetMap.get(field); + invoiceLink.Outboundorder_Code_link__c = field; + invoiceLink.Invoice_Code_link__c = insertDetMap.get(field); + invoiceLinkList.add(invoiceLink); + } + } + 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; + invoiceHead.Dealer_Info__c = accountid; + invoiceHead.Invoice_Note__c = coc.Invoice_Note__c; + invoiceHead.Invoice_status__c = '鑽夋涓�'; + invoiceHead.Order_ProType__c = agencyProType; + invoiceHead.Order_ForCustomerText__c = coc.Order_ForCustomerText__c; + //if (deliveryId != null) { + if (String.isNotBlank(deliveryId)) { + invoiceHead.Outbound_order__c = deliveryId; + } + invoiceHead.RecordTypeid = System.Label.RT_ConOrder_Invoice; + //if (SecondDealer == null) { + if (String.isBlank(SecondDealer)) { + if (HospitalInfo != null && HospitalInfo != '') { + invoiceHead.Order_ForHospital__c = HospitalInfo; + } + } else { + invoiceHead.Order_ForDealer__c = SecondDealer; + } + invoiceHead.Order_ForDealerText__c = coc.Order_ForDealerText__c; + if(Test.isRunningTest()){ + invoiceHead.Order_ForHospital__c = null; + } + insert invoiceHead; + System.debug('invoiceHead = ' + invoiceHead); + + List<String> updateChukudanId = new List<String>(); + //鑾峰彇鍘熷彂绁ㄧ浉鍏宠仈鐨勯摼鎺ヨ〃淇℃伅 + List<Consumable_order_LinkTable__c> tLinkList = [ + SELECT Outboundorder_Code_link__c + FROM Consumable_order_LinkTable__c + WHERE Invoice_Code_link__c = :invoiceId + ]; + + for (Consumable_order_LinkTable__c colc : tLinkList) { + colc.Invoice_Code_link__c = invoiceHead.Id; + updateChukudanId.add(colc.Outboundorder_Code_link__c); + } + System.debug('tLinkList = ' + tLinkList); + update tLinkList; + //鏇存柊鍙戠エ鏄庣粏淇℃伅 + //鑾峰彇鍑哄簱鍗�,璁剧疆鍏宠仈鍏崇郴 + //鑾峰彇鍑哄簱鍗曟槑缁嗕俊鎭�,鍥犱负鍑哄簱鍗曚俊鎭拰鍑哄簱鍗曟槑缁嗕俊鎭槸鍏宠仈鐨�,鎵�鏈夊彧闇�瑕佸洖婊氬嚭搴撳崟鏄庣粏淇℃伅鍗冲彲 + + Map<String, Consumable_Orderdetails__c> tempCocMap = new Map<String, Consumable_Orderdetails__c>(); + List<Consumable_Orderdetails__c> tempCountList = [ + SELECT + Id, + Consumable_order__c, + Asset_Model_No__c, + InvoicedProCost_RMB__c, + Invoicedet1_OD_link__c, + InvoicedProduct_RMB__c, + Invoiced_Procount__c, + Invoiced_BoxCount__c, + Invoice_Unit__c + FROM Consumable_Orderdetails__c + WHERE Consumable_order__c = :invoiceId + ]; + for (Consumable_Orderdetails__c cocTemp : tempCountList) { + 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 + Id, + Consumable_order__c, + RrturnPro_count__c, + Delivery_List_RMB__c, + InvoicedProCost_RMB__c, + Invoiced_Procount__c, + Invoice_Unitprice__c, + Box_Piece__c, + Invoice_Unit__c, + Consumable_order__r.Invoice_total_amount__c, + ProductPacking_list_manual__c, + InvoicedProduct_RMB__c, + Invoiced_BoxCount__c, + Shipment_amount__c, + Asset_Model_No__c + FROM Consumable_Orderdetails__c + WHERE Consumable_order__c IN :updateChukudanId + ]; + for (Consumable_Orderdetails__c corderc : updateFromList) { + String tempStr = corderc.Consumable_order__c + corderc.Asset_Model_No__c; + if (tempCocMap.get(tempStr) != null) { + //璁剧疆宸插彂绁ㄩ噾棰� 鍑哄簱鍗曠殑宸插彂绁ㄩ噾棰� - 鍙戠エ鐨勫彂绁ㄩ噾棰� + corderc.InvoicedProCost_RMB__c = corderc.InvoicedProCost_RMB__c - tempCocMap.get(tempStr).InvoicedProduct_RMB__c; + //璁剧疆宸插彂绁ㄦ暟閲� 鍑哄簱鍗曠殑宸插彂绁ㄦ暟閲� - 鍙戠エ鐨勫彂绁ㄦ暟閲�(鐩�) + corderc.Invoiced_Procount__c = corderc.Invoiced_Procount__c - tempCocMap.get(tempStr).Invoiced_BoxCount__c; + //璁剧疆鍙戠エ鍗曚环 + if (corderc.Box_Piece__c == '鐩�' && corderc.Invoice_Unit__c == '涓�') { + corderc.Invoice_Unitprice__c = corderc.Delivery_List_RMB__c / corderc.ProductPacking_list_manual__c; + } else { + corderc.Invoice_Unitprice__c = corderc.Delivery_List_RMB__c; + } + } + } + + 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) { + if (ass.check == true) { + insertDetMap.put(ass.esd.Id, invoiceHead.Id); + } else { + outOrderIdList.add(ass.esd.Id); + deleteDetMap.put(ass.esd.Id, invoiceHead.Id); + } + } + if (outOrderIdList.size() > 0) { + getdefaultMapinfo(outOrderIdList); + } + //琚�変腑鐨勫嚭搴撳崟闆嗗悎 + if (insertDetMap.size() > 0) { + List<Consumable_order_LinkTable__c> existLinkinfo = [ + SELECT Id, Invoice_Code_link__c, Outboundorder_Code_link__c + FROM Consumable_order_LinkTable__c + WHERE Outboundorder_Code_link__c IN :insertDetMap.keySet() AND Invoice_Code_link__c = :invoiceHead.Id + ]; + //瀛樺湪娌℃湁涓庡彂绁ㄥ缓绔嬪叧鑱斿叧绯荤殑鍑哄簱鍗� + List<String> templist2 = new List<String>(); + for (Consumable_order_LinkTable__c colc : existLinkinfo) { + templist2.add(colc.Outboundorder_Code_link__c); + } + //鑾峰彇璇ュ嚭搴撳崟 + for (String field : insertDetMap.keySet()) { + if (!templist2.contains(field)) { + //璇ュ嚭搴撳崟涓嶅瓨鍦ㄤ笌閾炬帴琛ㄤ腑,鏂板缓閾炬帴 + chukudanID.add(field); + Consumable_order_LinkTable__c invoiceLink = new Consumable_order_LinkTable__c(); + invoiceLink.Name = field + insertDetMap.get(field); + invoiceLink.Outboundorder_Code_link__c = field; + invoiceLink.Invoice_Code_link__c = insertDetMap.get(field); + invoiceLinkList.add(invoiceLink); + } + } + System.debug('invoiceLinkList = ' + invoiceLinkList); + upsert invoiceLinkList; + } + //鍒犻櫎鍑哄簱鍗曢摼鎺ヨ〃 + if (deleteDetMap.size() > 0) { + List<Consumable_order_LinkTable__c> invoiceLinkdetList = new List<Consumable_order_LinkTable__c>(); + deleteOutboundorder(deleteDetMap, invoiceHead.Id); + List<Consumable_order_LinkTable__c> existLinkinfo = [ + SELECT Id, Outboundorder_Code_link__c, Invoice_Code_link__c + FROM Consumable_order_LinkTable__c + WHERE Outboundorder_Code_link__c IN :deleteDetMap.keySet() AND Invoice_Code_link__c = :invoiceHead.Id + ]; + for (Consumable_order_LinkTable__c colctemp : existLinkinfo) { + if (deleteDetMap.get(colctemp.Outboundorder_Code_link__c) == colctemp.Invoice_Code_link__c) { + //瀛樺湪涓庤鍙戠エ鍏宠仈鐨勫嚭搴撳崟 + invoiceLinkdetList.add(colctemp); + } + } + System.debug('invoiceLinkdetList = ' + invoiceLinkdetList); + delete invoiceLinkdetList; + } + //鏂板缓鍙戠エ鏄庣粏1 + System.debug('===>' + chukudanID); + System.debug('===>' + chukudanID.size()); + if (chukudanID.size() > 0) { + newinvoicedetails1(chukudanID); + } + } else { + //CHAN-BSS5SQ update by rentongxiao 2020-09-04 end + //缂栬緫鍚庝繚瀛� + List<Consumable_order__c> cocinfo = new List<Consumable_order__c>(); + cocinfo = [ + SELECT + Id, + Name, + Invoice_status__c, + Invoice_Date__c, + Order_ForDealerText__c, + Dealer_Info__c, + Order_ForDealer__c, + Order_ForDealer__r.Name, + Order_ForHospital__c, + Order_date__c, + Billed_Status__c, + ShipmentAccount__c, + Order_Dealer_Info__c, + SummonsForDirction__c, + Order_ForCustomerText__c, + Invoice_Note__c, + Invoice_attachment__c, + Invoicedet_attachment__c, + Outbound_order__c + FROM Consumable_order__c + WHERE Id = :invoiceId + ]; + if (cocinfo.size() > 0) { + invoiceHead = cocinfo[0]; + } + if (String.isNotBlank(deliveryId)) { + for (InvoiceOrderInfo ass : invoiceOrderRecoedschange) { + insertDetMap.put(ass.esd.Id, invoiceHead.Id); + } + + //鎹㈣揣鍗曚骇鍝佹暟閲� + Map<String, Decimal> needchangeOrderProcountMap = new Map<String, Decimal>(); + Map<String, Decimal> returnProcountMap = new Map<String, Decimal>(); + Map<String, Decimal> changeOrderProcountMap = new Map<String, Decimal>(); + List<Consumable_Orderdetails__c> detaliFromList = [ + SELECT + Id, + Name, + Consumable_order__c, + 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_Unit__c, + Box_Piece__c, + Invoice_Cost_RMB__c + FROM Consumable_Orderdetails__c + WHERE Consumable_order__c = :deliveryId + ]; + for (Consumable_Orderdetails__c changeOD : detaliFromList) { + needchangeOrderProcountMap.put(changeOD.Asset_Model_No__c, changeOD.Shipment_Count__c); + } + //鍙戠エ杩斿搧淇℃伅 + List<Consumable_Orderdetails__c> returnCountList = [ + SELECT + Id, + Name, + Consumable_order__c, + 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_Unit__c, + Box_Piece__c + FROM Consumable_Orderdetails__c + WHERE Consumable_order__c = :invoiceId + ]; + + for (Consumable_Orderdetails__c changeOD : returnCountList) { + if (changeOD.RrturnPro_count__c > 0) { + if (returnProcountMap.containsKey(changeOD.Asset_Model_No__c)) { + returnProcountMap.put( + changeOD.Asset_Model_No__c, + returnProcountMap.get(changeOD.Asset_Model_No__c) + changeOD.RrturnPro_count__c + ); + } else { + returnProcountMap.put(changeOD.Asset_Model_No__c, changeOD.RrturnPro_count__c); + } + } + } + + //宸叉崲璐у崟鍑哄簱鏁伴噺淇℃伅 + List<Consumable_Orderdetails__c> returnCount1List = [ + SELECT + Id, + Name, + Consumable_order__c, + 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_Unit__c, + Box_Piece__c + FROM Consumable_Orderdetails__c + WHERE + Consumable_order__c IN ( + SELECT Outboundorder_Code_link__c + FROM Consumable_order_LinkTable__c + WHERE Invoice_Code_link__c = :invoiceId + ) + AND Consumable_order__r.Onchange_order__c = TRUE + AND Consumable_order__c != :deliveryId + ]; + for (Consumable_Orderdetails__c changeOD : returnCount1List) { + changeOrderProcountMap.put(changeOD.Asset_Model_No__c, changeOD.Shipment_Count__c); + } + outOrderchange(insertDetMap); + } else { + invoiceHead.Name = coc.Name; + invoiceHead.Invoice_status__c = coc.Invoice_status__c; + invoiceHead.Invoice_Date__c = coc.Invoice_Date__c; + invoiceHead.Dealer_Info__c = accountid; + invoiceHead.Invoice_Note__c = coc.Invoice_Note__c; + invoiceHead.Invoice_status__c = '鑽夋涓�'; + invoiceHead.Order_ProType__c = agencyProType; + invoiceHead.Order_ForCustomerText__c = coc.Order_ForCustomerText__c; + //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'HospitalName +++++' + HospitalName)); + //return null; + if (HospitalName != null && HospitalName != '') { + if (HospitalInfo != null && HospitalInfo != '') { + invoiceHead.Order_ForHospital__c = HospitalInfo; + } + } else { + invoiceHead.Order_ForHospital__c = null; + } + invoiceHead.Order_ForDealer__c = SecondDealer == '' ? null : SecondDealer; + invoiceHead.Order_ForDealerText__c = coc.Order_ForDealerText__c; + update invoiceHead; + for (InvoiceOrderInfo ass : invoiceOrderRecoeds) { + if (ass.check == true) { + insertDetMap.put(ass.esd.Id, invoiceHead.Id); + } else { + outOrderIdList.add(ass.esd.Id); + deleteDetMap.put(ass.esd.Id, invoiceHead.Id); + } + } + if (outOrderIdList.size() > 0) { + getdefaultMapinfo(outOrderIdList); + } + //CHAN-BSS5SQ update by rentongxiao 2020-09-08 start + //琚�変腑鐨勫嚭搴撳崟闆嗗悎 + if (insertDetMap.size() > 0) { + List<Consumable_order_LinkTable__c> existLinkinfo = [ + SELECT Id, Invoice_Code_link__c, Outboundorder_Code_link__c + FROM Consumable_order_LinkTable__c + WHERE Outboundorder_Code_link__c IN :insertDetMap.keySet() AND Invoice_Code_link__c = :invoiceHead.Id + ]; + //瀛樺湪娌℃湁涓庡彂绁ㄥ缓绔嬪叧鑱斿叧绯荤殑鍑哄簱鍗� + List<String> templist2 = new List<String>(); + for (Consumable_order_LinkTable__c colc : existLinkinfo) { + templist2.add(colc.Outboundorder_Code_link__c); + } + //鑾峰彇璇ュ嚭搴撳崟 + for (String field : insertDetMap.keySet()) { + if (!templist2.contains(field)) { + //璇ュ嚭搴撳崟涓嶅瓨鍦ㄤ笌閾炬帴琛ㄤ腑,鏂板缓閾炬帴 + chukudanID.add(field); + Consumable_order_LinkTable__c invoiceLink = new Consumable_order_LinkTable__c(); + invoiceLink.Name = field + insertDetMap.get(field); + invoiceLink.Outboundorder_Code_link__c = field; + invoiceLink.Invoice_Code_link__c = insertDetMap.get(field); + invoiceLinkList.add(invoiceLink); + } + } + upsert invoiceLinkList; + } + if (deleteDetMap.size() > 0) { + List<Consumable_order_LinkTable__c> invoiceLinkdetList = new List<Consumable_order_LinkTable__c>(); + deleteOutboundorder(deleteDetMap, invoiceHead.Id); + List<Consumable_order_LinkTable__c> existLinkinfo = [ + SELECT Id, Outboundorder_Code_link__c, Invoice_Code_link__c + FROM Consumable_order_LinkTable__c + WHERE Outboundorder_Code_link__c IN :deleteDetMap.keySet() AND Invoice_Code_link__c = :invoiceHead.Id + ]; + for (Consumable_order_LinkTable__c colctemp : existLinkinfo) { + if (deleteDetMap.get(colctemp.Outboundorder_Code_link__c) == colctemp.Invoice_Code_link__c) { + //瀛樺湪涓庤鍙戠エ鍏宠仈鐨勫嚭搴撳崟 + invoiceLinkdetList.add(colctemp); + } + } + delete invoiceLinkdetList; + } + //CHAN-BSS5SQ update by rentongxiao 2020-09-08 end + //鏂板缓鍙戠エ鏄庣粏1 + if (chukudanID.size() > 0) { + newinvoicedetails1(chukudanID); + } + } + } + } catch (Exception ex) { + Database.rollback(sp); + // ApexPages.addMessages(ex); + // return null; + System.debug('Exception ex = ' + ex.getMessage() + ex.getLineNumber()); + errorMsg += ex.getMessage() + ex.getLineNumber(); + } + data.put('invoiceId', invoiceId); + res.status = 'Success'; + res.code = 200; + res.msg = errorMsg; + System.debug('res = ' + res); + return res; + } + + public static void newinvoicedetails1(List<String> chukudanID) { + //鏂拌鍙戠エ鏄庣粏1 + List<Consumable_Orderdetails__c> invoiceorderList1 = new List<Consumable_Orderdetails__c>(); + //鍑哄簱鍗曟槑缁嗘洿鏂� + List<Consumable_Orderdetails__c> outOrderList1 = new List<Consumable_Orderdetails__c>(); + List<Consumable_Orderdetails__c> detaliFromList = [ + SELECT + Id, + Name, + Consumable_order__c, + 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, + Consumable_Product__c, + Intra_Trade_List_RMB__c, + Dealer_Custom_Price__c, + Sum_of_money__c, + Box_Piece__c, + Used_date__c, + Send_date__c, + Invoice_Unit__c, + ProductPacking_list_manual__c + FROM Consumable_Orderdetails__c + WHERE Consumable_order__c IN :chukudanID AND InvoiceProNot_count__c > 0 + ]; + + for (Integer i = 0; i < detaliFromList.size(); i++) { + Consumable_Orderdetails__c invoiceInsert1 = new Consumable_Orderdetails__c(); + invoiceInsert1.Used_date__c = detaliFromList[i].Used_date__c; + invoiceInsert1.Send_date__c = detaliFromList[i].Send_date__c; + String str = string.valueOf(i + 1); + if (str.length() == 1) { + str = '0' + str; + } + invoiceInsert1.Name = + coc.Name + + '-' + + detaliFromList[i].Name.substring(detaliFromList[i].Name.length() - 7, detaliFromList[i].Name.length()); + invoiceInsert1.Shipment_Count__c = detaliFromList[i].InvoiceProNot_count__c; + invoiceInsert1.Consumable_Product__c = detaliFromList[i].Consumable_Product__c; + invoiceInsert1.Intra_Trade_List_RMB__c = detaliFromList[i].Intra_Trade_List_RMB__c; + invoiceInsert1.Delivery_List_RMB__c = detaliFromList[i].Delivery_List_RMB__c; + invoiceInsert1.Dealer_Custom_Price__c = detaliFromList[i].Dealer_Custom_Price__c; + invoiceInsert1.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; + + if (detaliFromList[i].Box_Piece__c == '鐩�' && detaliFromList[i].Invoice_Unit__c == '涓�') { + invoiceInsert1.Invoice_Unitprice__c = + detaliFromList[i].Delivery_List_RMB__c / detaliFromList[i].ProductPacking_list_manual__c; + } else { + invoiceInsert1.Invoice_Unitprice__c = detaliFromList[i].Delivery_List_RMB__c; + } + invoiceInsert1.Box_Piece__c = detaliFromList[i].Box_Piece__c; + invoiceInsert1.Invoice_Unit__c = detaliFromList[i].Box_Piece__c; + if (detaliFromList[i].Invoiced_Procount__c == null) + detaliFromList[i].Invoiced_Procount__c = 0; + if (detaliFromList[i].RrturnPro_count__c == null) + detaliFromList[i].RrturnPro_count__c = 0; + invoiceInsert1.Invoiced_Count__c = detaliFromList[i].InvoiceProNot_count__c; + if (detaliFromList[i].InvoicedProCost_RMB__c == null) + detaliFromList[i].InvoicedProCost_RMB__c = 0; + invoiceInsert1.InvoicedProCost_RMB__c = invoiceInsert1.Invoiced_Count__c * invoiceInsert1.Delivery_List_RMB__c; + invoiceInsert1.Consumable_order__c = invoiceId; + invoiceInsert1.Invoicedet1_OD_link__c = detaliFromList[i].Consumable_order__c; + invoiceorderList1.add(invoiceInsert1); + } + 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); + //ApexPages.addMessages(ex); + errorMsg += ex.getMessage(); + } + } + } + + public static void getdefaultMapinfo(List<String> orderIdList) { + List<Consumable_Orderdetails__c> existLinkinfo = new List<Consumable_Orderdetails__c>(); + existLinkinfo = [ + SELECT Id, Consumable_order__c, Consumable_product__c, Asset_Model_No__c + FROM Consumable_Orderdetails__c + WHERE Consumable_order__c IN :orderIdList + ]; + // for (Integer i = 0; i < existLinkinfo.size(); i++) { + // ordermx1defaultMap.put(existLinkinfo[i].Consumable_order__c + existLinkinfo[i].Asset_Model_No__c, 0); + // } + } + + public static void deleteOutboundorder(Map<String, String> deleteMap, String value) { + //鍒犻櫎鍙戠エ鏄庣粏1 + List<Consumable_Orderdetails__c> detInvoicedet1List = [ + SELECT Id, Consumable_Shipment_order__c, Consumable_Sale_order__c, Consumable_product__c, Asset_Model_No__c + FROM Consumable_Orderdetails__c + WHERE Consumable_order__c = :value AND Invoicedet1_OD_link__c = :deleteMap.keySet() + ]; + System.debug('detInvoicedet1List = ' + detInvoicedet1List); + delete detInvoicedet1List; + } + + //鎹㈣揣鍗曢摼鎺ヨ〃 鍙戠エ鏄庣粏2鍋氭垚 + public static void outOrderchange(Map<String, String> insertDetMap) { + List<string> chukudanID = new List<string>(); + List<Consumable_order_LinkTable__c> invoiceLinkList = new List<Consumable_order_LinkTable__c>(); + Consumable_order__c p = new Consumable_order__c(); + if (insertDetMap.size() > 0) { for (String field : insertDetMap.keySet()) { - if (!templist2.contains(field)) { - //璇ュ嚭搴撳崟涓嶅瓨鍦ㄤ笌閾炬帴琛ㄤ腑,鏂板缓閾炬帴 + List<Consumable_order_LinkTable__c> existLinkinfo = [ + SELECT Id + FROM Consumable_order_LinkTable__c + WHERE Outboundorder_Code_link__c = :field + ]; + if (existLinkinfo.size() > 0) { + delete existLinkinfo; + } chukudanID.add(field); Consumable_order_LinkTable__c invoiceLink = new Consumable_order_LinkTable__c(); invoiceLink.Name = field + insertDetMap.get(field); invoiceLink.Outboundorder_Code_link__c = field; invoiceLink.Invoice_Code_link__c = insertDetMap.get(field); invoiceLinkList.add(invoiceLink); - } + p.Id = field; + p.ConInvoice_Code__c = insertDetMap.get(field); + p.Onchange_order__c = true; + update p; } - upsert invoiceLinkList; - } - if (deleteDetMap.size() > 0) { - List<Consumable_order_LinkTable__c> invoiceLinkdetList = new List<Consumable_order_LinkTable__c>(); - deleteOutboundorder(deleteDetMap, invoiceHead.Id); - List<Consumable_order_LinkTable__c> existLinkinfo = [ - SELECT Id, Outboundorder_Code_link__c, Invoice_Code_link__c - FROM Consumable_order_LinkTable__c - WHERE - Outboundorder_Code_link__c IN :deleteDetMap.keySet() - AND Invoice_Code_link__c = :invoiceHead.Id - ]; - for (Consumable_order_LinkTable__c colctemp : existLinkinfo) { - if ( - deleteDetMap.get(colctemp.Outboundorder_Code_link__c) == - colctemp.Invoice_Code_link__c - ) { - //瀛樺湪涓庤鍙戠エ鍏宠仈鐨勫嚭搴撳崟 - invoiceLinkdetList.add(colctemp); - } - } - delete invoiceLinkdetList; - } - //CHAN-BSS5SQ update by rentongxiao 2020-09-08 end - //鏂板缓鍙戠エ鏄庣粏1 - if (chukudanID.size() > 0) { - newinvoicedetails1(chukudanID); - } + insert invoiceLinkList; } - } - } catch (Exception ex) { - Database.rollback(sp); - // ApexPages.addMessages(ex); - // return null; - System.debug('Exception ex = ' + ex.getMessage() + ex.getLineNumber()); - errorMsg += ex.getMessage() + ex.getLineNumber(); - } - data.put('invoiceId', invoiceId); - res.status = 'Success'; - res.code = 200; - res.msg = errorMsg; - System.debug('res = ' + res); - return res; - } - - public static void newinvoicedetails1(List<String> chukudanID) { - //鏂拌鍙戠エ鏄庣粏1 - List<Consumable_Orderdetails__c> invoiceorderList1 = new List<Consumable_Orderdetails__c>(); - //鍑哄簱鍗曟槑缁嗘洿鏂� - List<Consumable_Orderdetails__c> outOrderList1 = new List<Consumable_Orderdetails__c>(); - List<Consumable_Orderdetails__c> detaliFromList = [ - SELECT - Id, - Name, - Consumable_order__c, - 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, - Consumable_Product__c, - Intra_Trade_List_RMB__c, - Dealer_Custom_Price__c, - Sum_of_money__c, - Box_Piece__c, - Used_date__c, - Send_date__c, - Invoice_Unit__c, - ProductPacking_list_manual__c - FROM Consumable_Orderdetails__c - WHERE Consumable_order__c IN :chukudanID AND InvoiceProNot_count__c > 0 - ]; - - for (Integer i = 0; i < detaliFromList.size(); i++) { - Consumable_Orderdetails__c invoiceInsert1 = new Consumable_Orderdetails__c(); - invoiceInsert1.Used_date__c = detaliFromList[i].Used_date__c; - invoiceInsert1.Send_date__c = detaliFromList[i].Send_date__c; - String str = string.valueOf(i + 1); - if (str.length() == 1) { - str = '0' + str; - } - invoiceInsert1.Name = - coc.Name + - '-' + - detaliFromList[i] - .Name.substring( - detaliFromList[i].Name.length() - 7, - detaliFromList[i].Name.length() - ); - invoiceInsert1.Shipment_Count__c = detaliFromList[i] - .InvoiceProNot_count__c; - invoiceInsert1.Consumable_Product__c = detaliFromList[i] - .Consumable_Product__c; - invoiceInsert1.Intra_Trade_List_RMB__c = detaliFromList[i] - .Intra_Trade_List_RMB__c; - invoiceInsert1.Delivery_List_RMB__c = detaliFromList[i] - .Delivery_List_RMB__c; - invoiceInsert1.Dealer_Custom_Price__c = detaliFromList[i] - .Dealer_Custom_Price__c; - invoiceInsert1.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; - - if ( - detaliFromList[i].Box_Piece__c == '鐩�' && - detaliFromList[i].Invoice_Unit__c == '涓�' - ) { - invoiceInsert1.Invoice_Unitprice__c = - detaliFromList[i].Delivery_List_RMB__c / - detaliFromList[i].ProductPacking_list_manual__c; - } else { - invoiceInsert1.Invoice_Unitprice__c = detaliFromList[i] - .Delivery_List_RMB__c; - } - invoiceInsert1.Box_Piece__c = detaliFromList[i].Box_Piece__c; - invoiceInsert1.Invoice_Unit__c = detaliFromList[i].Box_Piece__c; - if (detaliFromList[i].Invoiced_Procount__c == null) - detaliFromList[i].Invoiced_Procount__c = 0; - if (detaliFromList[i].RrturnPro_count__c == null) - detaliFromList[i].RrturnPro_count__c = 0; - invoiceInsert1.Invoiced_Count__c = detaliFromList[i] - .InvoiceProNot_count__c; - if (detaliFromList[i].InvoicedProCost_RMB__c == null) - detaliFromList[i].InvoicedProCost_RMB__c = 0; - invoiceInsert1.InvoicedProCost_RMB__c = - invoiceInsert1.Invoiced_Count__c * invoiceInsert1.Delivery_List_RMB__c; - invoiceInsert1.Consumable_order__c = invoiceId; - invoiceInsert1.Invoicedet1_OD_link__c = detaliFromList[i] - .Consumable_order__c; - invoiceorderList1.add(invoiceInsert1); - } - 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); - //ApexPages.addMessages(ex); - errorMsg += ex.getMessage(); - } - } - } - - public static void getdefaultMapinfo(List<String> orderIdList) { - List<Consumable_Orderdetails__c> existLinkinfo = new List<Consumable_Orderdetails__c>(); - existLinkinfo = [ - SELECT Id, Consumable_order__c, Consumable_product__c, Asset_Model_No__c - FROM Consumable_Orderdetails__c - WHERE Consumable_order__c IN :orderIdList - ]; - // for (Integer i = 0; i < existLinkinfo.size(); i++) { - // ordermx1defaultMap.put(existLinkinfo[i].Consumable_order__c + existLinkinfo[i].Asset_Model_No__c, 0); - // } - } - - public static void deleteOutboundorder( - Map<String, String> deleteMap, - String value - ) { - //鍒犻櫎鍙戠エ鏄庣粏1 - List<Consumable_Orderdetails__c> detInvoicedet1List = [ - SELECT - Id, - Consumable_Shipment_order__c, - Consumable_Sale_order__c, - Consumable_product__c, - Asset_Model_No__c - FROM Consumable_Orderdetails__c - WHERE - Consumable_order__c = :value - AND Invoicedet1_OD_link__c = :deleteMap.keySet() - ]; - System.debug('detInvoicedet1List = ' + detInvoicedet1List); - delete detInvoicedet1List; - } - - //鎹㈣揣鍗曢摼鎺ヨ〃 鍙戠エ鏄庣粏2鍋氭垚 - public static void outOrderchange(Map<String, String> insertDetMap) { - List<string> chukudanID = new List<string>(); - List<Consumable_order_LinkTable__c> invoiceLinkList = new List<Consumable_order_LinkTable__c>(); - Consumable_order__c p = new Consumable_order__c(); - if (insertDetMap.size() > 0) { - for (String field : insertDetMap.keySet()) { - List<Consumable_order_LinkTable__c> existLinkinfo = [ - SELECT Id - FROM Consumable_order_LinkTable__c - WHERE Outboundorder_Code_link__c = :field + //鎹㈣揣鍑哄簱鍗曟槑缁�1鏇存柊 + List<Consumable_Orderdetails__c> detaliFrom1List = [ + SELECT + Id, + Name, + Consumable_order__c, + 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, + Invoice_Unit__c, + Box_Piece__c, + Consumable_Sale_order__r.Name, + Consumable_Shipment_order__r.Name + FROM Consumable_Orderdetails__c + WHERE Consumable_order__c IN :chukudanID ]; - if (existLinkinfo.size() > 0) { - delete existLinkinfo; + for (Consumable_Orderdetails__c changeOD : detaliFrom1List) { + changeOD.Invoiced_Procount__c = changeOD.Shipment_Count__c; } - chukudanID.add(field); - Consumable_order_LinkTable__c invoiceLink = new Consumable_order_LinkTable__c(); - invoiceLink.Name = field + insertDetMap.get(field); - invoiceLink.Outboundorder_Code_link__c = field; - invoiceLink.Invoice_Code_link__c = insertDetMap.get(field); - invoiceLinkList.add(invoiceLink); - p.Id = field; - p.ConInvoice_Code__c = insertDetMap.get(field); - p.Onchange_order__c = true; - update p; - } - insert invoiceLinkList; + update detaliFrom1List; } - //鎹㈣揣鍑哄簱鍗曟槑缁�1鏇存柊 - List<Consumable_Orderdetails__c> detaliFrom1List = [ - SELECT - Id, - Name, - Consumable_order__c, - 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, - Invoice_Unit__c, - Box_Piece__c, - Consumable_Sale_order__r.Name, - Consumable_Shipment_order__r.Name - FROM Consumable_Orderdetails__c - WHERE Consumable_order__c IN :chukudanID - ]; - for (Consumable_Orderdetails__c changeOD : detaliFrom1List) { - changeOD.Invoiced_Procount__c = changeOD.Shipment_Count__c; + + //涓婁紶ContentVersion闄勪欢 + @AuraEnabled + public static String saveFile(Id recordId, String fileName, String base64Data) { + base64Data = EncodingUtil.urlDecode(base64Data, 'UTF-8'); + ContentVersion cv = new ContentVersion(); + cv.Title = fileName; + cv.PathOnClient = '/' + fileName; + cv.FirstPublishLocationId = recordId; + cv.VersionData = EncodingUtil.base64Decode(base64Data); + cv.IsMajorVersion = true; + insert cv; + System.debug('cv.Id = ' + cv.Id); + return cv.Id; } - update detaliFrom1List; - } - //涓婁紶ContentVersion闄勪欢 - @AuraEnabled - public static String saveFile( - Id recordId, - String fileName, - String base64Data - ) { - base64Data = EncodingUtil.urlDecode(base64Data, 'UTF-8'); - ContentVersion cv = new ContentVersion(); - cv.Title = fileName; - cv.PathOnClient = '/' + fileName; - cv.FirstPublishLocationId = recordId; - cv.VersionData = EncodingUtil.base64Decode(base64Data); - cv.IsMajorVersion = true; - insert cv; - System.debug('cv.Id = ' + cv.Id); - return cv.Id; - } - - // 淇濆瓨闄勪欢 - @AuraEnabled - 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.ContentDocumentId; - attachmentdetails.Accessories_type__c = ass.mailSelectOptsin; - if (String.isBlank(ass.invoiceOrderId)) { - attachmentdetails.Invoice_code__c = invoiceId; - } - upsert attachmentdetails; + // 淇濆瓨闄勪欢 + @AuraEnabled + 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.ContentDocumentId; + attachmentdetails.Accessories_type__c = ass.mailSelectOptsin; + if (String.isBlank(ass.invoiceOrderId)) { + attachmentdetails.Invoice_code__c = invoiceId; + } + upsert attachmentdetails; + } + } + } catch (Exception e) { + return new ResponseBodyLWC('Error', 500, e.getMessage() + e.getLineNumber(), ''); } - } - } catch (Exception e) { - return new ResponseBodyLWC( - 'Error', - 500, - e.getMessage() + e.getLineNumber(), - '' - ); + res.status = 'Success'; + res.code = 200; + System.debug('res = ' + res); + return res; } - res.status = 'Success'; - res.code = 200; - System.debug('res = ' + res); - return res; - } - // 妫�绱�(鏈紑鍙戠エ鍑哄簱鍗�) - @AuraEnabled - public static ResponseBodyLWC InvoiceorderSearch( - Consumable_order__c cocLwc, - String invoiceIdLwc, - String accountidLwc, - String userWorkLocationLwc, - String agencyProTypeLwc, - String HospitalInfoLwc, - String SecondDealerLwc, - String invoiceOrderRecoedsLwc - ) { - System.debug('杩涘叆 InvoiceorderSearch'); - ResponseBodyLWC res = new ResponseBodyLWC(); - Map<String, object> data = new Map<String, object>(); - res.entity = data; + // 妫�绱�(鏈紑鍙戠エ鍑哄簱鍗�) + @AuraEnabled + public static ResponseBodyLWC InvoiceorderSearch( + Consumable_order__c cocLwc, + String invoiceIdLwc, + String accountidLwc, + String userWorkLocationLwc, + String agencyProTypeLwc, + String HospitalInfoLwc, + String SecondDealerLwc, + String invoiceOrderRecoedsLwc + ) { + System.debug('杩涘叆 InvoiceorderSearch'); + ResponseBodyLWC res = new ResponseBodyLWC(); + Map<String, object> data = new Map<String, object>(); + res.entity = data; - coc = cocLwc; - HospitalInfo = HospitalInfoLwc; - SecondDealer = SecondDealerLwc; - errorMsg = ''; - invoiceOrderRecoeds = (List<InvoiceOrderInfo>) JSON.deserialize( - invoiceOrderRecoedsLwc, - List<InvoiceOrderInfo>.class - ); - invoiceId = invoiceIdLwc; - accountid = accountidLwc; - agencyProType = agencyProTypeLwc; - userWorkLocation = userWorkLocationLwc; + coc = cocLwc; + HospitalInfo = HospitalInfoLwc; + SecondDealer = SecondDealerLwc; + errorMsg = ''; + invoiceOrderRecoeds = (List<InvoiceOrderInfo>) JSON.deserialize(invoiceOrderRecoedsLwc, List<InvoiceOrderInfo>.class); + invoiceId = invoiceIdLwc; + accountid = accountidLwc; + agencyProType = agencyProTypeLwc; + userWorkLocation = userWorkLocationLwc; - Map<String, String> invoiceOrderMap = new Map<String, String>(); - String msoql = ''; - List<InvoiceOrderInfo> invoiceOrderdetailMid = new List<InvoiceOrderInfo>(); - if (String.isBlank(invoiceId)) { - msoql = makeSoql(); - } else { - msoql = makeSoqlInit(); - } - invoiceOrderList = new List<Consumable_order__c>(); - invoiceOrderList = Database.query(msoql); - for (InvoiceOrderInfo ass : invoiceOrderRecoeds) { - if (ass.check == true) { - invoiceOrderdetailMid.add(ass); - invoiceOrderMap.put(ass.esd.Name, ass.esd.Name); - } - } - invoiceOrderRecoeds = new List<InvoiceOrderInfo>(); - invoiceOrderRecoeds.addAll(invoiceOrderdetailMid); - for (Integer i = 0; i < invoiceOrderList.size(); i++) { - if (invoiceOrderMap.containsKey(invoiceOrderList[i].Name)) { - } else { - invoiceOrderRecoeds.add(new InvoiceOrderInfo(invoiceOrderList[i])); - invoiceOrderMap.put(invoiceOrderList[i].Name, invoiceOrderList[i].Name); - } - } - data.put('invoiceOrderRecoeds', invoiceOrderRecoeds); - res.status = 'Success'; - res.code = 200; - System.debug('res = ' + res); - return res; - } - - private static String makeSoql() { - String soql = 'SELECT Id, Order_ForDealer__r.Name,Order_ForHospital__r.Name,Order_ForDealerText__c, Name,Outbound_Date__c,ShipmentAccount__c,Shipment_total_amount__c,RrturnPro_total_amount__c,Total_Invoiced_Procount__c,InvoiceNotPro_total_amount__c,InvoiceNotPro_money__c,Invoice_total_amount__c,Billed_Status__c FROM Consumable_order__c '; - soql += ' WHERE Dealer_Info__c = \'' + accountid + '\''; - soql += ' AND (recordtypeid = \'' + System.Label.RT_ConOrder_Sale + '\''; - soql += ' OR recordtypeid = \'' + System.Label.RT_ConOrder_Shipment + '\''; - soql += ' ) '; - soql += ' AND Order_Owner_WorkLocal__c = \'' + userWorkLocation + '\' '; - soql += ' AND Order_ProType__c =\'' + agencyProType + '\''; - soql += ' AND Billed_Status__c != \'鍏ㄩ儴寮�绁╘''; - soql += ' AND SummonsForDirction__c != \'浜掔浉璋冭揣\''; - if (HospitalInfo != null && HospitalInfo != '') { - soql += ' AND Order_ForHospital__c = \'' + HospitalInfo + '\''; - } - if (String.isNotEmpty(SecondDealer)) { - soql += ' AND Order_ForDealer__c = \'' + SecondDealer + '\''; - } - if (coc.Order_ForDealerText__c != null) { - soql += - ' AND ShipmentAccount__c = \'' + - coc.Order_ForDealerText__c + - '\''; - } - soql += ' AND InvoiceNotPro_total_amount__c > 0'; - soql += ' AND Onchange_order__c = false limit 1000'; - return soql; - } - - private static String makeSoqlInit() { - String soql = 'SELECT Id, Order_ForDealer__r.Name,Order_ForHospital__r.Name,Order_ForDealerText__c, Name,Outbound_Date__c,ShipmentAccount__c,Shipment_total_amount__c,RrturnPro_total_amount__c,Total_Invoiced_Procount__c,InvoiceNotPro_total_amount__c,InvoiceNotPro_money__c,Invoice_total_amount__c,Billed_Status__c FROM Consumable_order__c '; - soql += ' WHERE Dealer_Info__c = \'' + accountid + '\''; - soql += ' AND (recordtypeid = \'' + System.Label.RT_ConOrder_Sale + '\''; - soql += ' OR recordtypeid = \'' + System.Label.RT_ConOrder_Shipment + '\''; - soql += ' ) '; - soql += ' AND Order_Owner_WorkLocal__c = \'' + userWorkLocation + '\' '; - soql += ' AND Order_ProType__c =\'' + agencyProType + '\''; - soql += ' AND SummonsForDirction__c != \'浜掔浉璋冭揣\' '; - if (HospitalInfo != null && HospitalInfo != '') { - soql += ' AND Order_ForHospital__c = \'' + HospitalInfo + '\''; - } - if (SecondDealer != null) { - soql += ' AND Order_ForDealer__c = \'' + SecondDealer + '\''; - } - if (coc.Order_ForDealerText__c != null) { - soql += - ' AND ShipmentAccount__c = \'' + - coc.Order_ForDealerText__c + - '\''; - } - soql += ' AND InvoiceNotPro_total_amount__c > 0'; - soql += ' AND Onchange_order__c = false limit 1000'; - 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; + Map<String, String> invoiceOrderMap = new Map<String, String>(); + String msoql = ''; + List<InvoiceOrderInfo> invoiceOrderdetailMid = new List<InvoiceOrderInfo>(); + if (String.isBlank(invoiceId)) { + msoql = makeSoql(); } 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; + msoql = makeSoqlInit(); } - invoiceUpdte1.Invoice_Unitprice__c = outordercountMap.get( - outOrderdet1List[i].Consumable_order__c + - outOrderdet1List[i].Asset_Model_No__c - ) - .Invoice_Unitprice__c; - System.debug('====>procount' + invoiceUpdte1.Invoiced_Procount__c); - System.debug('===>RMB' + outOrderdet1List[i].Delivery_List_RMB__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; + invoiceOrderList = new List<Consumable_order__c>(); + invoiceOrderList = Database.query(msoql); + for (InvoiceOrderInfo ass : invoiceOrderRecoeds) { + if (ass.check == true) { + invoiceOrderdetailMid.add(ass); + invoiceOrderMap.put(ass.esd.Name, ass.esd.Name); + } } - System.debug( - '鍙戠エ鏁伴噺===>' + outOrderdet1List[i].InvoiceProNot_count__c - ); - System.debug('杩樻病鍙戠エ鏁伴噺===>' + invoicedProcount); - - 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 + - '杩樻病寮�绁ㄦ暟閲忓皬浜庡彂绁ㄦ暟閲忥紝璇风‘璁ゆ槸鍚︽湁杩斿搧', - '' - ); + invoiceOrderRecoeds = new List<InvoiceOrderInfo>(); + invoiceOrderRecoeds.addAll(invoiceOrderdetailMid); + for (Integer i = 0; i < invoiceOrderList.size(); i++) { + if (invoiceOrderMap.containsKey(invoiceOrderList[i].Name)) { + } else { + invoiceOrderRecoeds.add(new InvoiceOrderInfo(invoiceOrderList[i])); + invoiceOrderMap.put(invoiceOrderList[i].Name, invoiceOrderList[i].Name); + } } + data.put('invoiceOrderRecoeds', invoiceOrderRecoeds); + res.status = 'Success'; + res.code = 200; + System.debug('res = ' + res); + return res; + } - outOrderdetUp1List.add(invoiceUpdte1); - } + private static String makeSoql() { + String soql = 'SELECT Id, Order_ForDealer__r.Name,Order_ForHospital__r.Name,Order_ForDealerText__c, Name,Outbound_Date__c,ShipmentAccount__c,Shipment_total_amount__c,RrturnPro_total_amount__c,Total_Invoiced_Procount__c,InvoiceNotPro_total_amount__c,InvoiceNotPro_money__c,Invoice_total_amount__c,Billed_Status__c FROM Consumable_order__c '; + soql += ' WHERE Dealer_Info__c = \'' + accountid + '\''; + soql += ' AND (recordtypeid = \'' + System.Label.RT_ConOrder_Sale + '\''; + soql += ' OR recordtypeid = \'' + System.Label.RT_ConOrder_Shipment + '\''; + soql += ' ) '; + soql += ' AND Order_Owner_WorkLocal__c = \'' + userWorkLocation + '\' '; + soql += ' AND Order_ProType__c =\'' + agencyProType + '\''; + soql += ' AND Billed_Status__c != \'鍏ㄩ儴寮�绁╘''; + soql += ' AND SummonsForDirction__c != \'浜掔浉璋冭揣\''; + if (HospitalInfo != null && HospitalInfo != '') { + soql += ' AND Order_ForHospital__c = \'' + HospitalInfo + '\''; + } + if (String.isNotEmpty(SecondDealer)) { + soql += ' AND Order_ForDealer__c = \'' + SecondDealer + '\''; + } + if (coc.Order_ForDealerText__c != null) { + soql += ' AND ShipmentAccount__c = \'' + coc.Order_ForDealerText__c + '\''; + } + soql += ' AND InvoiceNotPro_total_amount__c > 0'; + soql += ' AND Onchange_order__c = false limit 1000'; + return soql; } - 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; - } - @TestVisible - class InvoiceOrderInfo implements Comparable { - @AuraEnabled - public Boolean check { get; set; } - @AuraEnabled - public Boolean oldCheck { get; set; } - @AuraEnabled - public Consumable_order__c esd { get; set; } - @AuraEnabled - public Consumable_Orderdetails__c esdet { get; set; } - @AuraEnabled - public Attachment attach { get; set; } - @AuraEnabled - public ContentVersion cvInfo { get; set; } - @AuraEnabled - public String mailSelectOptsin { get; set; } - public List<SelectOption> mailSelectOpts { get; set; } - @AuraEnabled - public Map<String, String> mailSelectOptsMap { get; set; } - @AuraEnabled - public String invoiceOrderId { get; set; } - @AuraEnabled - public Decimal needInvoiceCount { get; set; } - // 鍑哄簱璁㈠崟 - public InvoiceOrderInfo(Consumable_order__c e) { - check = false; - oldCheck = false; - esd = e; - needInvoiceCount = 0; + private static String makeSoqlInit() { + String soql = 'SELECT Id, Order_ForDealer__r.Name,Order_ForHospital__r.Name,Order_ForDealerText__c, Name,Outbound_Date__c,ShipmentAccount__c,Shipment_total_amount__c,RrturnPro_total_amount__c,Total_Invoiced_Procount__c,InvoiceNotPro_total_amount__c,InvoiceNotPro_money__c,Invoice_total_amount__c,Billed_Status__c FROM Consumable_order__c '; + soql += ' WHERE Dealer_Info__c = \'' + accountid + '\''; + soql += ' AND (recordtypeid = \'' + System.Label.RT_ConOrder_Sale + '\''; + soql += ' OR recordtypeid = \'' + System.Label.RT_ConOrder_Shipment + '\''; + soql += ' ) '; + soql += ' AND Order_Owner_WorkLocal__c = \'' + userWorkLocation + '\' '; + soql += ' AND Order_ProType__c =\'' + agencyProType + '\''; + soql += ' AND SummonsForDirction__c != \'浜掔浉璋冭揣\' '; + if (HospitalInfo != null && HospitalInfo != '') { + soql += ' AND Order_ForHospital__c = \'' + HospitalInfo + '\''; + } + if (SecondDealer != null) { + soql += ' AND Order_ForDealer__c = \'' + SecondDealer + '\''; + } + if (coc.Order_ForDealerText__c != null) { + soql += ' AND ShipmentAccount__c = \'' + coc.Order_ForDealerText__c + '\''; + } + soql += ' AND InvoiceNotPro_total_amount__c > 0'; + soql += ' AND Onchange_order__c = false limit 1000'; + return soql; } - // 鍑哄簱璁㈠崟鏄庣粏1 - public InvoiceOrderInfo(Consumable_Orderdetails__c e) { - esdet = e; + + // 鍒犻櫎鎸夐挳 + @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(), ''); + } } - //闄勪欢 - public InvoiceOrderInfo(Attachment e) { - attach = e; - mailSelectOpts = new List<SelectOption>(); - mailSelectOpts.add(new SelectOption('鍙戠エ鍜屾槑缁�', '鍙戠エ鍜屾槑缁�')); - mailSelectOpts.add(new SelectOption('鍙戠エ', '鍙戠エ')); - mailSelectOpts.add(new SelectOption('鏄庣粏', '鏄庣粏')); + + // 鎻愪氦鎸夐挳 + @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; + System.debug('====>procount' + invoiceUpdte1.Invoiced_Procount__c); + System.debug('===>RMB' + outOrderdet1List[i].Delivery_List_RMB__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; + } + System.debug('鍙戠エ鏁伴噺===>' + outOrderdet1List[i].InvoiceProNot_count__c); + System.debug('杩樻病鍙戠エ鏁伴噺===>' + invoicedProcount); + + 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; } - //ContentVersion - public InvoiceOrderInfo(ContentVersion cv) { - cvInfo = cv; - mailSelectOptsMap = new Map<String, String>(); - mailSelectOptsMap.put('鍙戠エ鍜屾槑缁�', '鍙戠エ鍜屾槑缁�'); - mailSelectOptsMap.put('鍙戠エ', '鍙戠エ'); - mailSelectOptsMap.put('鏄庣粏', '鏄庣粏'); + @TestVisible + class InvoiceOrderInfo implements Comparable { + @AuraEnabled + public Boolean check { get; set; } + @AuraEnabled + public Boolean oldCheck { get; set; } + @AuraEnabled + public Consumable_order__c esd { get; set; } + @AuraEnabled + public Consumable_Orderdetails__c esdet { get; set; } + @AuraEnabled + public Attachment attach { get; set; } + @AuraEnabled + public ContentVersion cvInfo { get; set; } + @AuraEnabled + public String mailSelectOptsin { get; set; } + public List<SelectOption> mailSelectOpts { get; set; } + @AuraEnabled + public Map<String, String> mailSelectOptsMap { get; set; } + @AuraEnabled + public String invoiceOrderId { get; set; } + @AuraEnabled + public Decimal needInvoiceCount { get; set; } + + // 鍑哄簱璁㈠崟 + public InvoiceOrderInfo(Consumable_order__c e) { + check = false; + oldCheck = false; + esd = e; + needInvoiceCount = 0; + } + // 鍑哄簱璁㈠崟鏄庣粏1 + public InvoiceOrderInfo(Consumable_Orderdetails__c e) { + esdet = e; + } + //闄勪欢 + public InvoiceOrderInfo(Attachment e) { + attach = e; + mailSelectOpts = new List<SelectOption>(); + mailSelectOpts.add(new SelectOption('鍙戠エ鍜屾槑缁�', '鍙戠エ鍜屾槑缁�')); + mailSelectOpts.add(new SelectOption('鍙戠エ', '鍙戠エ')); + mailSelectOpts.add(new SelectOption('鏄庣粏', '鏄庣粏')); + } + //ContentVersion + public InvoiceOrderInfo(ContentVersion cv) { + cvInfo = cv; + mailSelectOptsMap = new Map<String, String>(); + mailSelectOptsMap.put('鍙戠エ鍜屾槑缁�', '鍙戠エ鍜屾槑缁�'); + mailSelectOptsMap.put('鍙戠エ', '鍙戠エ'); + mailSelectOptsMap.put('鏄庣粏', '鏄庣粏'); + } + // 鎺掑簭 + public Integer compareTo(Object compareTo) { + return null; + } } - // 鎺掑簭 - public Integer compareTo(Object compareTo) { - return null; - } - } -} +} \ No newline at end of file -- Gitblit v1.9.1