| | |
| | | public without sharing class LexSummonsCreatController { |
| | | public static Map<String, Schema.SObjectType> schemaMap = Schema.getGlobalDescribe(); |
| | | public static Map<String, Schema.SObjectType> schemaMap = Schema.getGlobalDescribe(); |
| | | |
| | | /*****************検索用******************/ |
| | | //经销商用户产品分类(ET、ENG) |
| | | @AuraEnabled |
| | | public static String agencyProType { get; set; } |
| | | public static Consumable_order__c coc { get; set; } // 画view用, 可能是 出库指示单, 也有可能是到货单, 也有可能 空instance |
| | | public static User localuser { get; set; } |
| | | public static String category1 { get; set; } |
| | | public static Integer noOfRecords { get; set; } |
| | | //public String category_Goods {get ; set;} |
| | | public static Boolean cansee { get; set; } |
| | | public static Integer size { get; set; } |
| | | //经销商定价查看权限 |
| | | //public static ApexPages.StandardSetController setCon { get; set; } |
| | | public static Boolean dealerPricesee { get; set; } |
| | | /*****************画面初始化用********************************/ |
| | | /******20160313_add**************/ |
| | | public static String IdCheck { get; set; } |
| | | public static Boolean editAble { get; set; } |
| | | public static String statusEdit { get; set; } |
| | | public static String alertMessage { get; set; } |
| | | public static String SearchDone { get; set; } |
| | | public static List<String> zaikuId = new List<String>(); |
| | | public static List<String> orderzaikuId = new List<String>(); |
| | | //附件 |
| | | public static List<ConsumableorderdetailsInfo> attachmentRecoeds { get; set; } |
| | | public static Boolean getExistarrive() { |
| | | return (coc.Arrive_Order__c != null); |
| | | } |
| | | //总价格计算结果 |
| | | @AuraEnabled |
| | | public static Decimal sumPrice { get; set; } |
| | | /******20160317_add**************/ |
| | | public static String SummonsFlag { get; set; } // 新規: hidden, 更新: visible |
| | | public static String category5 { get; set; } |
| | | public static String category4 { get; set; } |
| | | public static String category3 { get; set; } |
| | | public static List<SelectOption> categoryOptionList { get; set; } |
| | | public static List<SelectOption> category4OptionList { get; set; } |
| | | public static List<SelectOption> category5OptionList { get; set; } |
| | | @AuraEnabled |
| | | public static Map<String, String> categoryOptionMap { get; set; } |
| | | @AuraEnabled |
| | | public static Map<String, String> category4OptionMap { get; set; } |
| | | @AuraEnabled |
| | | public static Map<String, String> category5OptionMap { get; set; } |
| | | /*****************画面表示Bean******************/ |
| | | private static List<ConsumableorderdetailsInfo> consumableorderdetailsSelectRecords = new List<ConsumableorderdetailsInfo>(); |
| | | //明细2 |
| | | @AuraEnabled |
| | | public static List<ConsumableorderdetailsInfo> consumableorderdetailsRecords { |
| | | get; |
| | | set; |
| | | } |
| | | //错误明细 |
| | | @AuraEnabled |
| | | public static List<ConsumableorderdetailsInfo> consumableorderdetailsRecordserror { |
| | | get; |
| | | set; |
| | | } |
| | | @AuraEnabled |
| | | public static List<ConsumableorderdetailsInfo> pageRecords { get; set; } |
| | | public static List<ConsumableorderdetailsInfoLwc> pageRecordsLwc { get; set; } |
| | | //public List<List<ConsumableorderdetailsInfo>> consumableorderdetailsRecordsview { get; set; } |
| | | public static List<ConsumableorderdetailsInfo> consumableorderdetails2Records { |
| | | get; |
| | | set; |
| | | } |
| | | public static List<Consumable_order__c> consumableInvoiceRecords { get; set; } |
| | | private static List<ConsumableorderdetailsInfo> consumableproductdetailsRecords = new List<ConsumableorderdetailsInfo>(); |
| | | private static List<Attachment> attachmentinfo = new List<Attachment>(); |
| | | public static List<Product2__c> product2Selected = new List<Product2__c>(); |
| | | @AuraEnabled |
| | | public static Map<String, String> orderpieceorboxMap { get; set; } |
| | | @AuraEnabled |
| | | public static List<Consumable_orderdetails__c> orderdetails { get; set; } |
| | | @AuraEnabled |
| | | public static Map<String, Decimal> orderagencypriceMap { get; set; } |
| | | @AuraEnabled |
| | | public static Map<String, Decimal> orderpriceMap { get; set; } |
| | | @AuraEnabled |
| | | public static Map<String, Decimal> orderdetCountMap { get; set; } |
| | | @AuraEnabled |
| | | public static Boolean hasSpecialHos { get; set; } |
| | | //选择产品size |
| | | public static Integer consumableorderdetailsCount { |
| | | get { |
| | | return pageRecords == null ? 0 : pageRecords.size(); |
| | | /*****************検索用******************/ |
| | | //经销商用户产品分类(ET、ENG) |
| | | @AuraEnabled |
| | | public static String agencyProType { get; set; } |
| | | public static Consumable_order__c coc { get; set; } // 画view用, 可能是 出库指示单, 也有可能是到货单, 也有可能 空instance |
| | | public static User localuser { get; set; } |
| | | public static String category1 { get; set; } |
| | | public static Integer noOfRecords { get; set; } |
| | | //public String category_Goods {get ; set;} |
| | | public static Boolean cansee { get; set; } |
| | | public static Integer size { get; set; } |
| | | //经销商定价查看权限 |
| | | //public static ApexPages.StandardSetController setCon { get; set; } |
| | | public static Boolean dealerPricesee { get; set; } |
| | | /*****************画面初始化用********************************/ |
| | | /******20160313_add**************/ |
| | | public static String IdCheck { get; set; } |
| | | public static Boolean editAble { get; set; } |
| | | public static String statusEdit { get; set; } |
| | | public static String alertMessage { get; set; } |
| | | public static String SearchDone { get; set; } |
| | | public static List<String> zaikuId = new List<String>(); |
| | | public static List<String> orderzaikuId = new List<String>(); |
| | | //附件 |
| | | public static List<ConsumableorderdetailsInfo> attachmentRecoeds { get; set; } |
| | | public static Boolean getExistarrive() { |
| | | return (coc.Arrive_Order__c != null); |
| | | } |
| | | } |
| | | //消耗品明细2数量 |
| | | public static Integer consumableorderdetails2Count { |
| | | get { |
| | | return consumableorderdetails2Records == null |
| | | ? 0 |
| | | : consumableorderdetails2Records.size(); |
| | | } |
| | | } |
| | | //订货单号 |
| | | public static String consumableorderId { |
| | | get { |
| | | return (coc.Arrive_Order__c); |
| | | } |
| | | } |
| | | //选择框 |
| | | public static List<SelectOption> provinceOpts { get; set; } |
| | | @AuraEnabled |
| | | public static Map<String, String> provinceOptsMap { get; set; } |
| | | public static String SecondDealer { get; set; } |
| | | //public List<SelectOption> orderForHospitalOpts { get; set; } |
| | | public static String HospitalInfo { get; set; } |
| | | public static String HospitalName { get; set; } |
| | | |
| | | public static Boolean EditDelCommitBtnDisabled { get; private set; } |
| | | public static Boolean saveBtnDisabled { get; private set; } |
| | | public static Boolean SorderBtnDisabled { get; private set; } |
| | | |
| | | // page |
| | | public static Integer pagesize { get; set; } |
| | | public static Integer pageToken { get; set; } |
| | | //public static String sortField { get; set; } |
| | | //public static String sortOrder { get; set; } |
| | | public static Integer totalcount { get; set; } |
| | | public static Integer addSize { get; set; } |
| | | //List<ConsumableorderdetailsInfoLwc> reSetLwc |
| | | public static List<ConsumableorderdetailsInfo> addData { get; set; } |
| | | public static Map<String, String> skipData { get; set; } |
| | | // 保存后动作: 1.检索 2.排序 |
| | | // public static String sortKey { get; set; } |
| | | // public static String preSortKey { get; private set; } |
| | | // public static Boolean sortOrderAsc { get; private set; } |
| | | // public static String[] sortOrder { get; private set; } |
| | | // private static String[] columus = new List<String>{ |
| | | // 'Consumable_Product__r.Name', |
| | | // 'Consumable_Product__r.Asset_Model_No__c', |
| | | // 'Consumable_Product__r.Intra_Trade_List_RMB__c', |
| | | // '', |
| | | // '', |
| | | // 'Consumable_Product__r.Category3__c', |
| | | // 'Consumable_Product__r.Category4__c', |
| | | // 'Consumable_Product__r.Category5__c' |
| | | // }; |
| | | // private static String[] columus_no = new List<String>{ |
| | | // 'Product2__c.Name', |
| | | // 'Product2__c.Asset_Model_No__c', |
| | | // 'Product2__c.Intra_Trade_List_RMB__c', |
| | | // '', |
| | | // '', |
| | | // 'Category3__c', |
| | | // 'Category4__c', |
| | | // 'Category5__c' |
| | | // }; |
| | | |
| | | //到货单明细1 |
| | | private static List<Consumable_Orderdetails__c> consumableorderdetailsSelected = new List<Consumable_Orderdetails__c>(); |
| | | //到货单明细2 |
| | | private static List<Consumable_order_details2__c> consumablearriveproductdetailsSelected = new List<Consumable_order_details2__c>(); |
| | | |
| | | //出库单明细2 |
| | | private static List<Consumable_order_details2__c> consumableorderdetails2RecordsList = new List<Consumable_order_details2__c>(); |
| | | /*****************ソート時再検索条件(画面からの入力条件を無視するため)******************/ |
| | | //private String cate1ForSort = null; |
| | | private static String accountid = null; |
| | | @AuraEnabled |
| | | public static String accountName { get; set; } |
| | | |
| | | // 产品 ID |
| | | private static String ESetId = ''; |
| | | @AuraEnabled |
| | | public static String arriveorder { get; set; } |
| | | private static String userId = ''; |
| | | //private String[] ProidListAll = new String[]{}; |
| | | |
| | | // 登录者工作地 |
| | | @AuraEnabled |
| | | public static String userWorkLocation { get; set; } |
| | | |
| | | //add by rentx 2021-01-29 |
| | | public static List<SelectOption> outOutPatternOptionList { get; set; } |
| | | @AuraEnabled |
| | | public static Map<String, String> outOutPatternOptionMap { get; set; } |
| | | public static String outOutPattern { get; set; } |
| | | public static Boolean hasHos { get; set; } |
| | | @AuraEnabled |
| | | public static Boolean hasHosPro { get; set; } |
| | | |
| | | private static Map<String, String> HosProMap = new Map<String, String>(); |
| | | //add by rentx 2021-01-29 |
| | | |
| | | public LexSummonsCreatController() { |
| | | System.debug('LexSummonsCreatController'); |
| | | size = Integer.valueOf(System.Label.orderdetLimitsize); |
| | | // ESetId = ApexPages.currentPage().getParameters().get('esetId'); |
| | | // arriveorder = ApexPages.currentPage().getParameters().get('arriveorder'); |
| | | // statusEdit = ApexPages.currentPage().getParameters().get('KeyWords'); |
| | | provinceOpts = new List<SelectOption>(); |
| | | provinceOptsMap = new Map<String, String>(); |
| | | pageRecords = new List<ConsumableorderdetailsInfo>(); |
| | | consumableproductdetailsRecords = new List<ConsumableorderdetailsInfo>(); |
| | | consumableorderdetailsSelectRecords = new List<ConsumableorderdetailsInfo>(); |
| | | attachmentRecoeds = new List<ConsumableorderdetailsInfo>(); |
| | | consumableorderdetails2Records = new List<ConsumableorderdetailsInfo>(); |
| | | consumableInvoiceRecords = new List<Consumable_order__c>(); |
| | | categoryOptionList = new List<SelectOption>(); |
| | | category4OptionList = new List<SelectOption>(); |
| | | category5OptionList = new List<SelectOption>(); |
| | | |
| | | categoryOptionMap = new Map<String, String>(); |
| | | category4OptionMap = new Map<String, String>(); |
| | | category5OptionMap = new Map<String, String>(); |
| | | |
| | | outOutPatternOptionMap = new Map<String, String>(); |
| | | outOutPatternOptionMap.put('', '-无-'); |
| | | outOutPatternOptionMap.put('ishos', '医院特价产品'); |
| | | outOutPatternOptionMap.put('nothos', '非医院特价产品'); |
| | | |
| | | outOutPatternOptionList.add(new SelectOption('', '-无-')); |
| | | outOutPatternOptionList.add(new SelectOption('ishos', '医院特价产品')); |
| | | outOutPatternOptionList.add(new SelectOption('nothos', '非医院特价产品')); |
| | | HospitalName = ''; |
| | | } |
| | | |
| | | public static void firstInit(String ESetidJs) { |
| | | System.debug('enter firstInit'); |
| | | ESetid = ESetidJs; |
| | | System.debug('ESetid = ' + ESetid); |
| | | size = Integer.valueOf(System.Label.orderdetLimitsize); |
| | | provinceOpts = new List<SelectOption>(); |
| | | provinceOptsMap = new Map<String, String>(); |
| | | pageRecords = new List<ConsumableorderdetailsInfo>(); |
| | | consumableproductdetailsRecords = new List<ConsumableorderdetailsInfo>(); |
| | | consumableorderdetailsSelectRecords = new List<ConsumableorderdetailsInfo>(); |
| | | attachmentRecoeds = new List<ConsumableorderdetailsInfo>(); |
| | | consumableorderdetails2Records = new List<ConsumableorderdetailsInfo>(); |
| | | consumableInvoiceRecords = new List<Consumable_order__c>(); |
| | | categoryOptionList = new List<SelectOption>(); |
| | | category4OptionList = new List<SelectOption>(); |
| | | category5OptionList = new List<SelectOption>(); |
| | | |
| | | categoryOptionMap = new Map<String, String>(); |
| | | category4OptionMap = new Map<String, String>(); |
| | | category5OptionMap = new Map<String, String>(); |
| | | |
| | | outOutPatternOptionMap = new Map<String, String>(); |
| | | outOutPatternOptionMap.put('', '-无-'); |
| | | outOutPatternOptionMap.put('ishos', '医院特价产品'); |
| | | outOutPatternOptionMap.put('nothos', '非医院特价产品'); |
| | | |
| | | // outOutPatternOptionList.add(new SelectOption('', '-无-')); |
| | | // outOutPatternOptionList.add(new SelectOption('ishos', '医院特价产品')); |
| | | // outOutPatternOptionList.add(new SelectOption('nothos', '非医院特价产品')); |
| | | HospitalName = ''; |
| | | } |
| | | |
| | | // 画面初始化 |
| | | @AuraEnabled |
| | | public static ResponseBodyLWC init( |
| | | String ESetidJs, |
| | | String statusEdit, |
| | | Integer pageSizeLWC, |
| | | Integer pageTokenLWC, |
| | | String arriveorderLWC |
| | | ) { |
| | | try { |
| | | firstInit(ESetidJs); |
| | | statusEdit = statusEdit; |
| | | arriveorder = arriveorderLWC; |
| | | HospitalName = ''; |
| | | provinceOpts = new List<SelectOption>(); |
| | | provinceOptsMap = new Map<String, String>(); |
| | | ResponseBodyLWC res = new ResponseBodyLWC(); |
| | | Map<String, object> data = new Map<String, object>(); |
| | | res.entity = data; |
| | | // public static Integer pagesize { get; set; } |
| | | // public static Integer pageToken { get; set; } |
| | | // public static String sortField { get; set; } |
| | | // public static String sortOrder { get; set; } |
| | | pagesize = pageSizeLWC; |
| | | pageToken = pageTokenLWC > 2000 ? 2000 : pageTokenLWC; |
| | | |
| | | // sortKey = '1'; |
| | | // preSortKey = '1'; |
| | | // sortOrderAsc = false; |
| | | // sortOrder = new List<String>(8); |
| | | // sortOrder = new List<String>{ ' ', ' ', ' ', ' ', '↓', '', '', '' }; |
| | | //cate1ForSort = ''; |
| | | sumPrice = 0; |
| | | IdCheck = EsetId; |
| | | if ( |
| | | ESetId != null && |
| | | ESetId != '' && |
| | | (statusEdit == '' || |
| | | statusEdit == null) |
| | | ) { |
| | | editAble = false; |
| | | } else if ( |
| | | (ESetId == null || ESetId == '') && |
| | | (statusEdit == '' || |
| | | statusEdit == null) |
| | | ) { |
| | | editAble = true; |
| | | } else if ( |
| | | ESetId != null && |
| | | ESetId != '' && |
| | | statusEdit != '' && |
| | | statusEdit != null |
| | | ) { |
| | | editAble = true; |
| | | } |
| | | userId = UserInfo.getUserId(); |
| | | localuser = [ |
| | | SELECT id, State_Hospital__c |
| | | FROM User |
| | | WHERE id = :UserInfo.getUserId() |
| | | ]; |
| | | //userId = '00510000005QO75'; |
| | | user Useracc = [ |
| | | SELECT accountid, Work_Location__c, UserPro_Type__c |
| | | FROM user |
| | | WHERE id = :userId |
| | | ]; |
| | | accountid = Useracc.accountid; |
| | | userWorkLocation = Useracc.Work_Location__c; |
| | | agencyProType = Useracc.UserPro_Type__c; |
| | | if (String.isBlank(Useracc.UserPro_Type__c)) { |
| | | agencyProType = 'ET'; |
| | | } |
| | | Account accountInfo = [SELECT Name FROM account WHERE id = :accountid]; |
| | | accountName = accountInfo.Name; |
| | | //coc.Order_date__c = Date.today(); |
| | | list<Dealer_elationship__c> Dealerelationship = new List<Dealer_elationship__c>(); |
| | | 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, Hospital__c, Hospital__r.Name |
| | | FROM Agency_Hospital_Link__c |
| | | WHERE Agency__c = :accountid |
| | | ]; |
| | | |
| | | //add by rentx 2021-3-1 start |
| | | //判断当前经销商下是否有特价医院 |
| | | List<hospitalprice__c> hlist = [ |
| | | SELECT id, product__c |
| | | FROM hospitalprice__c |
| | | WHERE account__c = :accountid |
| | | ]; |
| | | if (hlist == null || hlist.size() == 0) { |
| | | hasHos = false; |
| | | } else { |
| | | for (hospitalprice__c hp : hlist) { |
| | | HosProMap.put(hp.product__c, ''); |
| | | //总价格计算结果 |
| | | @AuraEnabled |
| | | public static Decimal sumPrice { get; set; } |
| | | /******20160317_add**************/ |
| | | public static String SummonsFlag { get; set; } // 新規: hidden, 更新: visible |
| | | public static String category5 { get; set; } |
| | | public static String category4 { get; set; } |
| | | public static String category3 { get; set; } |
| | | public static List<SelectOption> categoryOptionList { get; set; } |
| | | public static List<SelectOption> category4OptionList { get; set; } |
| | | public static List<SelectOption> category5OptionList { get; set; } |
| | | @AuraEnabled |
| | | public static Map<String, String> categoryOptionMap { get; set; } |
| | | @AuraEnabled |
| | | public static Map<String, String> category4OptionMap { get; set; } |
| | | @AuraEnabled |
| | | public static Map<String, String> category5OptionMap { get; set; } |
| | | /*****************画面表示Bean******************/ |
| | | private static List<ConsumableorderdetailsInfo> consumableorderdetailsSelectRecords = new List<ConsumableorderdetailsInfo>(); |
| | | //明细2 |
| | | @AuraEnabled |
| | | public static List<ConsumableorderdetailsInfo> consumableorderdetailsRecords { get; set; } |
| | | //错误明细 |
| | | @AuraEnabled |
| | | public static List<ConsumableorderdetailsInfo> consumableorderdetailsRecordserror { get; set; } |
| | | @AuraEnabled |
| | | public static List<ConsumableorderdetailsInfo> pageRecords { get; set; } |
| | | public static List<ConsumableorderdetailsInfoLwc> pageRecordsLwc { get; set; } |
| | | //public List<List<ConsumableorderdetailsInfo>> consumableorderdetailsRecordsview { get; set; } |
| | | public static List<ConsumableorderdetailsInfo> consumableorderdetails2Records { get; set; } |
| | | public static List<Consumable_order__c> consumableInvoiceRecords { get; set; } |
| | | private static List<ConsumableorderdetailsInfo> consumableproductdetailsRecords = new List<ConsumableorderdetailsInfo>(); |
| | | private static List<Attachment> attachmentinfo = new List<Attachment>(); |
| | | public static List<Product2__c> product2Selected = new List<Product2__c>(); |
| | | @AuraEnabled |
| | | public static Map<String, String> orderpieceorboxMap { get; set; } |
| | | @AuraEnabled |
| | | public static List<Consumable_orderdetails__c> orderdetails { get; set; } |
| | | @AuraEnabled |
| | | public static Map<String, Decimal> orderagencypriceMap { get; set; } |
| | | @AuraEnabled |
| | | public static Map<String, Decimal> orderpriceMap { get; set; } |
| | | @AuraEnabled |
| | | public static Map<String, Decimal> orderdetCountMap { get; set; } |
| | | @AuraEnabled |
| | | public static Boolean hasSpecialHos { get; set; } |
| | | //选择产品size |
| | | public static Integer consumableorderdetailsCount { |
| | | get { |
| | | return pageRecords == null ? 0 : pageRecords.size(); |
| | | } |
| | | hasHos = true; |
| | | } |
| | | //add by rentx 2021-3-1 end |
| | | } |
| | | //消耗品明细2数量 |
| | | public static Integer consumableorderdetails2Count { |
| | | get { |
| | | return consumableorderdetails2Records == null ? 0 : consumableorderdetails2Records.size(); |
| | | } |
| | | } |
| | | //订货单号 |
| | | public static String consumableorderId { |
| | | get { |
| | | return (coc.Arrive_Order__c); |
| | | } |
| | | } |
| | | //选择框 |
| | | public static List<SelectOption> provinceOpts { get; set; } |
| | | @AuraEnabled |
| | | public static Map<String, String> provinceOptsMap { get; set; } |
| | | public static String SecondDealer { get; set; } |
| | | //public List<SelectOption> orderForHospitalOpts { get; set; } |
| | | public static String HospitalInfo { get; set; } |
| | | public static String HospitalName { get; set; } |
| | | |
| | | saveBtnDisabled = false; |
| | | SorderBtnDisabled = false; |
| | | String sqlagencyProType = '%' + agencyProType + '%'; |
| | | coc = new Consumable_order__c(); |
| | | consumableorderdetailsSelectRecords = new List<ConsumableorderdetailsInfo>(); |
| | | Map<String, ConsumableorderdetailsInfo> MidMap = new Map<String, ConsumableorderdetailsInfo>(); |
| | | //add by rentx 2021-01-29 |
| | | Map<String, ConsumableorderdetailsInfo> MidMap2 = new Map<String, ConsumableorderdetailsInfo>(); |
| | | //add by rentx 2021-01-29 |
| | | public static Boolean EditDelCommitBtnDisabled { get; private set; } |
| | | public static Boolean saveBtnDisabled { get; private set; } |
| | | public static Boolean SorderBtnDisabled { get; private set; } |
| | | |
| | | List<AggregateResult> orderdetailCount = [ |
| | | SELECT count(id), Consumable_Product__c cpc, Box_Piece__c |
| | | FROM Consumable_order_details2__c |
| | | WHERE |
| | | Dealer_Arrive__c = TRUE |
| | | AND Dealer_Shipment__c = FALSE |
| | | AND Dealer_Saled__c = FALSE |
| | | AND Lose_Flag__c = FALSE |
| | | AND Cancellation_Flag__c = FALSE |
| | | AND Bar_Code__c != NULL |
| | | AND Isoverdue__c = 1 |
| | | AND Product_Type__c LIKE :sqlagencyProType |
| | | AND Dealer_Info_text__c = :accountName |
| | | AND Arrive_Owner_Work_Location__c = :userWorkLocation |
| | | GROUP BY Consumable_Product__c, Box_Piece__c |
| | | ]; |
| | | for (AggregateResult orderdetail : orderdetailCount) { |
| | | zaikuId.add(String.valueOf(orderdetail.get('cpc'))); |
| | | } |
| | | System.debug('sqlagencyProType = ' + sqlagencyProType); |
| | | System.debug('userWorkLocation = ' + userWorkLocation); |
| | | System.debug('accountName = ' + accountName); |
| | | List<Consumable_order_details2__c> CountDel = [ |
| | | SELECT |
| | | Id, |
| | | Bar_Code__c, |
| | | Name, |
| | | Inventory_date__c, |
| | | Consumable_Product__c, |
| | | Consumable_Product__r.Asset_Model_No__c, |
| | | Recordtypeid, |
| | | Box_Piece__c, |
| | | ProductPacking_list_manual__c, |
| | | //add by rentx 2020-11-27 start |
| | | hospitalSpecialOffer__c |
| | | //add by rentx 2020-11-27 end |
| | | FROM Consumable_order_details2__c |
| | | WHERE |
| | | Dealer_Arrive__c = TRUE |
| | | AND Dealer_Shipment__c = FALSE |
| | | AND Dealer_Saled__c = FALSE |
| | | AND Dealer_Returned__c = FALSE |
| | | AND Lose_Flag__c = FALSE |
| | | AND Cancellation_Flag__c = FALSE |
| | | AND Bar_Code__c != NULL |
| | | AND Isoverdue__c = 1 |
| | | AND Product_Type__c LIKE :sqlagencyProType |
| | | AND Arrive_Owner_Work_Location__c = :userWorkLocation |
| | | AND Dealer_Info_text__c = :accountName |
| | | ]; |
| | | // 新規 |
| | | if (ESetId == null || ESetId == '') { |
| | | SummonsFlag = 'hidden'; |
| | | String msoql = makeSoqlinventory(); |
| | | initStandardController(msoql); |
| | | System.debug('msoql = ' + msoql); |
| | | product2Selected = Database.query(msoql); |
| | | if (String.isBlank(arriveorder)) { |
| | | EditDelCommitBtnDisabled = true; |
| | | for (Integer i = 0; i < product2Selected.size(); i++) { |
| | | MidMap.put( |
| | | product2Selected[i].Id, |
| | | new ConsumableorderdetailsInfo(product2Selected[i]) |
| | | ); |
| | | } |
| | | for (Integer i = 0; i < CountDel.size(); i++) { |
| | | String str = ''; |
| | | if (CountDel[i].hospitalSpecialOffer__c) { |
| | | str = 'isHos'; |
| | | // page |
| | | public static Integer pagesize { get; set; } |
| | | public static Integer pageToken { get; set; } |
| | | //public static String sortField { get; set; } |
| | | //public static String sortOrder { get; set; } |
| | | public static Integer totalcount { get; set; } |
| | | public static Integer addSize { get; set; } |
| | | //List<ConsumableorderdetailsInfoLwc> reSetLwc |
| | | public static List<ConsumableorderdetailsInfo> addData { get; set; } |
| | | public static Map<String, String> skipData { get; set; } |
| | | // 保存后动作: 1.检索 2.排序 |
| | | // public static String sortKey { get; set; } |
| | | // public static String preSortKey { get; private set; } |
| | | // public static Boolean sortOrderAsc { get; private set; } |
| | | // public static String[] sortOrder { get; private set; } |
| | | // private static String[] columus = new List<String>{ |
| | | // 'Consumable_Product__r.Name', |
| | | // 'Consumable_Product__r.Asset_Model_No__c', |
| | | // 'Consumable_Product__r.Intra_Trade_List_RMB__c', |
| | | // '', |
| | | // '', |
| | | // 'Consumable_Product__r.Category3__c', |
| | | // 'Consumable_Product__r.Category4__c', |
| | | // 'Consumable_Product__r.Category5__c' |
| | | // }; |
| | | // private static String[] columus_no = new List<String>{ |
| | | // 'Product2__c.Name', |
| | | // 'Product2__c.Asset_Model_No__c', |
| | | // 'Product2__c.Intra_Trade_List_RMB__c', |
| | | // '', |
| | | // '', |
| | | // 'Category3__c', |
| | | // 'Category4__c', |
| | | // 'Category5__c' |
| | | // }; |
| | | |
| | | //到货单明细1 |
| | | private static List<Consumable_Orderdetails__c> consumableorderdetailsSelected = new List<Consumable_Orderdetails__c>(); |
| | | //到货单明细2 |
| | | private static List<Consumable_order_details2__c> consumablearriveproductdetailsSelected = new List<Consumable_order_details2__c>(); |
| | | |
| | | //出库单明细2 |
| | | private static List<Consumable_order_details2__c> consumableorderdetails2RecordsList = new List<Consumable_order_details2__c>(); |
| | | /*****************ソート時再検索条件(画面からの入力条件を無視するため)******************/ |
| | | //private String cate1ForSort = null; |
| | | private static String accountid = null; |
| | | @AuraEnabled |
| | | public static String accountName { get; set; } |
| | | |
| | | // 产品 ID |
| | | private static String ESetId = ''; |
| | | @AuraEnabled |
| | | public static String arriveorder { get; set; } |
| | | private static String userId = ''; |
| | | //private String[] ProidListAll = new String[]{}; |
| | | |
| | | // 登录者工作地 |
| | | @AuraEnabled |
| | | public static String userWorkLocation { get; set; } |
| | | |
| | | //add by rentx 2021-01-29 |
| | | public static List<SelectOption> outOutPatternOptionList { get; set; } |
| | | @AuraEnabled |
| | | public static Map<String, String> outOutPatternOptionMap { get; set; } |
| | | public static String outOutPattern { get; set; } |
| | | public static Boolean hasHos { get; set; } |
| | | @AuraEnabled |
| | | public static Boolean hasHosPro { get; set; } |
| | | |
| | | private static Map<String, String> HosProMap = new Map<String, String>(); |
| | | //add by rentx 2021-01-29 |
| | | |
| | | public LexSummonsCreatController() { |
| | | System.debug('LexSummonsCreatController'); |
| | | size = Integer.valueOf(System.Label.orderdetLimitsize); |
| | | // ESetId = ApexPages.currentPage().getParameters().get('esetId'); |
| | | // arriveorder = ApexPages.currentPage().getParameters().get('arriveorder'); |
| | | // statusEdit = ApexPages.currentPage().getParameters().get('KeyWords'); |
| | | provinceOpts = new List<SelectOption>(); |
| | | provinceOptsMap = new Map<String, String>(); |
| | | pageRecords = new List<ConsumableorderdetailsInfo>(); |
| | | consumableproductdetailsRecords = new List<ConsumableorderdetailsInfo>(); |
| | | consumableorderdetailsSelectRecords = new List<ConsumableorderdetailsInfo>(); |
| | | attachmentRecoeds = new List<ConsumableorderdetailsInfo>(); |
| | | consumableorderdetails2Records = new List<ConsumableorderdetailsInfo>(); |
| | | consumableInvoiceRecords = new List<Consumable_order__c>(); |
| | | categoryOptionList = new List<SelectOption>(); |
| | | category4OptionList = new List<SelectOption>(); |
| | | category5OptionList = new List<SelectOption>(); |
| | | |
| | | categoryOptionMap = new Map<String, String>(); |
| | | category4OptionMap = new Map<String, String>(); |
| | | category5OptionMap = new Map<String, String>(); |
| | | |
| | | outOutPatternOptionMap = new Map<String, String>(); |
| | | outOutPatternOptionMap.put('', '-无-'); |
| | | outOutPatternOptionMap.put('ishos', '医院特价产品'); |
| | | outOutPatternOptionMap.put('nothos', '非医院特价产品'); |
| | | |
| | | outOutPatternOptionList.add(new SelectOption('', '-无-')); |
| | | outOutPatternOptionList.add(new SelectOption('ishos', '医院特价产品')); |
| | | outOutPatternOptionList.add(new SelectOption('nothos', '非医院特价产品')); |
| | | HospitalName = ''; |
| | | } |
| | | |
| | | public static void firstInit(String ESetidJs) { |
| | | System.debug('enter firstInit'); |
| | | ESetid = ESetidJs; |
| | | System.debug('ESetid = ' + ESetid); |
| | | size = Integer.valueOf(System.Label.orderdetLimitsize); |
| | | provinceOpts = new List<SelectOption>(); |
| | | provinceOptsMap = new Map<String, String>(); |
| | | pageRecords = new List<ConsumableorderdetailsInfo>(); |
| | | consumableproductdetailsRecords = new List<ConsumableorderdetailsInfo>(); |
| | | consumableorderdetailsSelectRecords = new List<ConsumableorderdetailsInfo>(); |
| | | attachmentRecoeds = new List<ConsumableorderdetailsInfo>(); |
| | | consumableorderdetails2Records = new List<ConsumableorderdetailsInfo>(); |
| | | consumableInvoiceRecords = new List<Consumable_order__c>(); |
| | | categoryOptionList = new List<SelectOption>(); |
| | | category4OptionList = new List<SelectOption>(); |
| | | category5OptionList = new List<SelectOption>(); |
| | | |
| | | categoryOptionMap = new Map<String, String>(); |
| | | category4OptionMap = new Map<String, String>(); |
| | | category5OptionMap = new Map<String, String>(); |
| | | |
| | | outOutPatternOptionMap = new Map<String, String>(); |
| | | outOutPatternOptionMap.put('', '-无-'); |
| | | outOutPatternOptionMap.put('ishos', '医院特价产品'); |
| | | outOutPatternOptionMap.put('nothos', '非医院特价产品'); |
| | | |
| | | // outOutPatternOptionList.add(new SelectOption('', '-无-')); |
| | | // outOutPatternOptionList.add(new SelectOption('ishos', '医院特价产品')); |
| | | // outOutPatternOptionList.add(new SelectOption('nothos', '非医院特价产品')); |
| | | HospitalName = ''; |
| | | } |
| | | |
| | | // 画面初始化 |
| | | @AuraEnabled |
| | | public static ResponseBodyLWC init(String ESetidJs, String statusEdit, Integer pageSizeLWC, Integer pageTokenLWC,String arriveorderLWC) { |
| | | try { |
| | | firstInit(ESetidJs); |
| | | statusEdit = statusEdit; |
| | | arriveorder = arriveorderLWC; |
| | | HospitalName = ''; |
| | | provinceOpts = new List<SelectOption>(); |
| | | provinceOptsMap = new Map<String, String>(); |
| | | ResponseBodyLWC res = new ResponseBodyLWC(); |
| | | Map<String, object> data = new Map<String, object>(); |
| | | res.entity = data; |
| | | // public static Integer pagesize { get; set; } |
| | | // public static Integer pageToken { get; set; } |
| | | // public static String sortField { get; set; } |
| | | // public static String sortOrder { get; set; } |
| | | pagesize = pageSizeLWC; |
| | | pageToken = pageTokenLWC > 2000 ? 2000 : pageTokenLWC; |
| | | |
| | | // sortKey = '1'; |
| | | // preSortKey = '1'; |
| | | // sortOrderAsc = false; |
| | | // sortOrder = new List<String>(8); |
| | | // sortOrder = new List<String>{ ' ', ' ', ' ', ' ', '↓', '', '', '' }; |
| | | //cate1ForSort = ''; |
| | | sumPrice = 0; |
| | | IdCheck = EsetId; |
| | | if (ESetId != null && ESetId != '' && (statusEdit == '' || statusEdit == null)) { |
| | | editAble = false; |
| | | } else if ((ESetId == null || ESetId == '') && (statusEdit == '' || statusEdit == null)) { |
| | | editAble = true; |
| | | } else if (ESetId != null && ESetId != '' && statusEdit != '' && statusEdit != null) { |
| | | editAble = true; |
| | | } |
| | | userId = UserInfo.getUserId(); |
| | | localuser = [SELECT id, State_Hospital__c FROM User WHERE id = :UserInfo.getUserId()]; |
| | | //userId = '00510000005QO75'; |
| | | user Useracc = [SELECT accountid, Work_Location__c, UserPro_Type__c FROM user WHERE id = :userId]; |
| | | accountid = Useracc.accountid; |
| | | userWorkLocation = Useracc.Work_Location__c; |
| | | agencyProType = Useracc.UserPro_Type__c; |
| | | if (String.isBlank(Useracc.UserPro_Type__c)) { |
| | | agencyProType = 'ET'; |
| | | } |
| | | Account accountInfo = [SELECT Name FROM account WHERE id = :accountid]; |
| | | accountName = accountInfo.Name; |
| | | //coc.Order_date__c = Date.today(); |
| | | list<Dealer_elationship__c> Dealerelationship = new List<Dealer_elationship__c>(); |
| | | 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, Hospital__c, Hospital__r.Name FROM Agency_Hospital_Link__c WHERE Agency__c = :accountid]; |
| | | |
| | | //add by rentx 2021-3-1 start |
| | | //判断当前经销商下是否有特价医院 |
| | | List<hospitalprice__c> hlist = [SELECT id, product__c FROM hospitalprice__c WHERE account__c = :accountid]; |
| | | if (hlist == null || hlist.size() == 0) { |
| | | hasHos = false; |
| | | } else { |
| | | str = 'notHos'; |
| | | for (hospitalprice__c hp : hlist) { |
| | | HosProMap.put(hp.product__c, ''); |
| | | } |
| | | hasHos = true; |
| | | } |
| | | //明细2对应的产品存在于MidMap中 |
| | | if (MidMap.containsKey(CountDel[i].Consumable_Product__c)) { |
| | | //设置map中key的后缀 用于区分医院特价和非医院特价 |
| | | if ( |
| | | MidMap2.containsKey(CountDel[i].Consumable_Product__c + str) |
| | | ) { |
| | | ConsumableorderdetailsInfo Jstage = MidMap2.get( |
| | | CountDel[i].Consumable_Product__c + str |
| | | ); |
| | | Jstage.allnumber = Jstage.allnumber + 1; |
| | | if (CountDel[i].Box_Piece__c == '盒') { |
| | | Jstage.Boxnumber = Jstage.Boxnumber + 1; |
| | | } else if (CountDel[i].Box_Piece__c == '个') { |
| | | Jstage.Piecenumber = Jstage.Piecenumber + 1; |
| | | } |
| | | if (CountDel[i].hospitalSpecialOffer__c) { |
| | | Jstage.hospitalSpecialOffer = true; |
| | | } else { |
| | | Jstage.hospitalSpecialOffer = false; |
| | | } |
| | | if (HosProMap.containsKey(Jstage.Prod.Id)) { |
| | | Jstage.hosPro = true; |
| | | } |
| | | MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage); |
| | | } else { |
| | | //midmap2中没有对应的产品 |
| | | ConsumableorderdetailsInfo Jstage = MidMap.get( |
| | | CountDel[i].Consumable_Product__c |
| | | ) |
| | | .clone(); |
| | | Jstage.allnumber = Jstage.allnumber + 1; |
| | | if (CountDel[i].Box_Piece__c == '盒') { |
| | | Jstage.Boxnumber = Jstage.Boxnumber + 1; |
| | | } else if (CountDel[i].Box_Piece__c == '个') { |
| | | Jstage.Piecenumber = Jstage.Piecenumber + 1; |
| | | } |
| | | if (CountDel[i].hospitalSpecialOffer__c) { |
| | | Jstage.hospitalSpecialOffer = true; |
| | | } else { |
| | | Jstage.hospitalSpecialOffer = false; |
| | | } |
| | | if (HosProMap.containsKey(Jstage.Prod.Id)) { |
| | | Jstage.hosPro = true; |
| | | } |
| | | //Jstage.BoxPiece = CountDel[i].Box_Piece__c; |
| | | MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage); |
| | | } |
| | | //add by rentx 2021-3-1 end |
| | | |
| | | saveBtnDisabled = false; |
| | | SorderBtnDisabled = false; |
| | | String sqlagencyProType = '%' + agencyProType + '%'; |
| | | coc = new Consumable_order__c(); |
| | | consumableorderdetailsSelectRecords = new List<ConsumableorderdetailsInfo>(); |
| | | Map<String, ConsumableorderdetailsInfo> MidMap = new Map<String, ConsumableorderdetailsInfo>(); |
| | | //add by rentx 2021-01-29 |
| | | Map<String, ConsumableorderdetailsInfo> MidMap2 = new Map<String, ConsumableorderdetailsInfo>(); |
| | | //add by rentx 2021-01-29 |
| | | |
| | | List<AggregateResult> orderdetailCount = [ |
| | | SELECT count(id), Consumable_Product__c cpc, Box_Piece__c |
| | | FROM Consumable_order_details2__c |
| | | WHERE |
| | | Dealer_Arrive__c = TRUE |
| | | AND Dealer_Shipment__c = FALSE |
| | | AND Dealer_Saled__c = FALSE |
| | | AND Lose_Flag__c = FALSE |
| | | AND Cancellation_Flag__c = FALSE |
| | | AND Bar_Code__c != NULL |
| | | AND Isoverdue__c = 1 |
| | | AND Product_Type__c LIKE :sqlagencyProType |
| | | AND Dealer_Info_text__c = :accountName |
| | | AND Arrive_Owner_Work_Location__c = :userWorkLocation |
| | | GROUP BY Consumable_Product__c, Box_Piece__c |
| | | ]; |
| | | for (AggregateResult orderdetail : orderdetailCount) { |
| | | zaikuId.add(String.valueOf(orderdetail.get('cpc'))); |
| | | } |
| | | System.debug('MidMap2.size() = ' + MidMap2.size()); |
| | | /*//然后循环CountDel去修改map里的allnumber |
| | | System.debug('orderdetailCount = ' + orderdetailCount); |
| | | System.debug('sqlagencyProType = ' + sqlagencyProType); |
| | | System.debug('userWorkLocation = ' + userWorkLocation); |
| | | System.debug('accountName = ' + accountName); |
| | | List<Consumable_order_details2__c> CountDel = [ |
| | | SELECT |
| | | Id, |
| | | Bar_Code__c, |
| | | Name, |
| | | Inventory_date__c, |
| | | Consumable_Product__c, |
| | | Consumable_Product__r.Asset_Model_No__c, |
| | | Recordtypeid, |
| | | Box_Piece__c, |
| | | ProductPacking_list_manual__c, |
| | | //add by rentx 2020-11-27 start |
| | | hospitalSpecialOffer__c |
| | | //add by rentx 2020-11-27 end |
| | | FROM Consumable_order_details2__c |
| | | WHERE |
| | | Dealer_Arrive__c = TRUE |
| | | AND Dealer_Shipment__c = FALSE |
| | | AND Dealer_Saled__c = FALSE |
| | | AND Dealer_Returned__c = FALSE |
| | | AND Lose_Flag__c = FALSE |
| | | AND Cancellation_Flag__c = FALSE |
| | | AND Bar_Code__c != NULL |
| | | AND Isoverdue__c = 1 |
| | | AND Product_Type__c LIKE :sqlagencyProType |
| | | AND Arrive_Owner_Work_Location__c = :userWorkLocation |
| | | AND Dealer_Info_text__c = :accountName |
| | | ]; |
| | | // 新規 |
| | | if (ESetId == null || ESetId == '') { |
| | | SummonsFlag = 'hidden'; |
| | | String msoql = makeSoqlinventory(); |
| | | initStandardController(msoql); |
| | | System.debug('msoql = ' + msoql); |
| | | product2Selected = Database.query(msoql); |
| | | if (String.isBlank(arriveorder)) { |
| | | EditDelCommitBtnDisabled = true; |
| | | for (Integer i = 0; i < product2Selected.size(); i++) { |
| | | MidMap.put(product2Selected[i].Id, new ConsumableorderdetailsInfo(product2Selected[i])); |
| | | } |
| | | System.debug('MidMap = ' + MidMap); |
| | | for (Integer i = 0; i < CountDel.size(); i++) { |
| | | String str = ''; |
| | | if (CountDel[i].hospitalSpecialOffer__c) { |
| | | str = 'isHos'; |
| | | } else { |
| | | str = 'notHos'; |
| | | } |
| | | System.debug('CountDel[i].Consumable_Product__c= ' + CountDel[i].Consumable_Product__c); |
| | | System.debug('CountDel[i].Consumable_Product__c + str= ' + CountDel[i].Consumable_Product__c + str); |
| | | //明细2对应的产品存在于MidMap中 |
| | | if (MidMap.containsKey(CountDel[i].Consumable_Product__c)) { |
| | | //设置map中key的后缀 用于区分医院特价和非医院特价 |
| | | if (MidMap2.containsKey(CountDel[i].Consumable_Product__c + str)) { |
| | | ConsumableorderdetailsInfo Jstage = MidMap2.get(CountDel[i].Consumable_Product__c + str); |
| | | Jstage.allnumber = Jstage.allnumber + 1; |
| | | if (CountDel[i].Box_Piece__c == '盒') { |
| | | Jstage.Boxnumber = Jstage.Boxnumber + 1; |
| | | } else if (CountDel[i].Box_Piece__c == '个') { |
| | | Jstage.Piecenumber = Jstage.Piecenumber + 1; |
| | | } |
| | | if (CountDel[i].hospitalSpecialOffer__c) { |
| | | Jstage.hospitalSpecialOffer = true; |
| | | } else { |
| | | Jstage.hospitalSpecialOffer = false; |
| | | } |
| | | if (HosProMap.containsKey(Jstage.Prod.Id)) { |
| | | Jstage.hosPro = true; |
| | | } |
| | | MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage); |
| | | } else { |
| | | //midmap2中没有对应的产品 |
| | | ConsumableorderdetailsInfo Jstage = MidMap.get(CountDel[i].Consumable_Product__c).clone(); |
| | | Jstage.allnumber = Jstage.allnumber + 1; |
| | | if (CountDel[i].Box_Piece__c == '盒') { |
| | | Jstage.Boxnumber = Jstage.Boxnumber + 1; |
| | | } else if (CountDel[i].Box_Piece__c == '个') { |
| | | Jstage.Piecenumber = Jstage.Piecenumber + 1; |
| | | } |
| | | if (CountDel[i].hospitalSpecialOffer__c) { |
| | | Jstage.hospitalSpecialOffer = true; |
| | | } else { |
| | | Jstage.hospitalSpecialOffer = false; |
| | | } |
| | | if (HosProMap.containsKey(Jstage.Prod.Id)) { |
| | | Jstage.hosPro = true; |
| | | } |
| | | //Jstage.BoxPiece = CountDel[i].Box_Piece__c; |
| | | MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage); |
| | | } |
| | | } |
| | | System.debug('MidMap2.size() = ' + MidMap2.size()); |
| | | /*//然后循环CountDel去修改map里的allnumber |
| | | if(MidMap.containsKey(CountDel[i].Consumable_Product__c)){ |
| | | ConsumableorderdetailsInfo Jstage = MidMap.get(CountDel[i].Consumable_Product__c); |
| | | Jstage.allnumber = Jstage.allnumber+1 ; |
| | |
| | | //Jstage.BoxPiece = CountDel[i].Box_Piece__c; |
| | | MidMap.put(CountDel[i].Consumable_Product__c+str, Jstage); |
| | | }*/ |
| | | } |
| | | } |
| | | |
| | | //update by rentx 2021-01-29 end |
| | | //update by rentx 2021-01-29 end |
| | | |
| | | //再把map里的值从新赋给ConsumableorderdetailsRecords |
| | | //update by rentx 2021-01-29 |
| | | // for(ConsumableorderdetailsInfo bss : MidMap.values()){ |
| | | for (ConsumableorderdetailsInfo bss : MidMap2.values()) { |
| | | //update by rentx 2021-01-29 |
| | | //if(bss.allnumber>0){ |
| | | bss.packinglist = Integer.valueOf( |
| | | bss.Prod.Product2__r.Packing_list_manual__c |
| | | ); |
| | | bss.approbation_No = bss.Prod.Product2__r.SFDA_Approbation_No__c; |
| | | bss.expiration_Date = bss.Prod.Product2__r.SFDA_Expiration_Date__c; |
| | | consumableorderdetailsSelectRecords.add(bss); |
| | | //} |
| | | } |
| | | //再把map里的值从新赋给ConsumableorderdetailsRecords |
| | | //update by rentx 2021-01-29 |
| | | // for(ConsumableorderdetailsInfo bss : MidMap.values()){ |
| | | for (ConsumableorderdetailsInfo bss : MidMap2.values()) { |
| | | //update by rentx 2021-01-29 |
| | | //if(bss.allnumber>0){ |
| | | bss.packinglist = Integer.valueOf(bss.Prod.Product2__r.Packing_list_manual__c); |
| | | bss.approbation_No = bss.Prod.Product2__r.SFDA_Approbation_No__c; |
| | | bss.expiration_Date = bss.Prod.Product2__r.SFDA_Expiration_Date__c; |
| | | consumableorderdetailsSelectRecords.add(bss); |
| | | //} |
| | | } |
| | | |
| | | Integer ishosnum = 0; |
| | | for ( |
| | | ConsumableorderdetailsInfo ass : consumableorderdetailsSelectRecords |
| | | ) { |
| | | //ass.sortBy = sortOrderAsc; |
| | | //add by rentx 2021-3-10 |
| | | if (ass.hospitalSpecialOffer) { |
| | | ishosnum = ishosnum + 1; |
| | | } |
| | | } |
| | | if (ishosnum > 0) { |
| | | hasHosPro = true; |
| | | } else { |
| | | hasHosPro = false; |
| | | } |
| | | consumableorderdetailsSelectRecords.sort(); |
| | | //add by rentx |
| | | noOfRecords = consumableorderdetailsSelectRecords.size(); |
| | | //add by rentx |
| | | System.debug('makepagerecords1'); |
| | | makepagerecords(); |
| | | //listCut(); |
| | | } else { |
| | | if (statusEdit == '' || statusEdit == null) { |
| | | editAble = false; |
| | | } else if (statusEdit != '' && statusEdit != null) { |
| | | editAble = true; |
| | | } |
| | | // upadte start by vivek 2019-7-15 |
| | | // coc = [SELECT Id,Name,Summons_Order_type__c,SummonsStatus_c__c,Order_ForDealerText__c, |
| | | // Dealer_Info__c,Order_ForDealer__c,Order_ForDealer__r.Name,Order_ForDealerTextID__c, |
| | | // Order_ForHospital__c,SummonsForDirction__c,Order_date__c,Arrive_Order__c, |
| | | // Order_status__c,Shipment_total_amount__c,Offers_Price__c, |
| | | // Billed_Status__c,ShipmentAccount__c,Order_Dealer_Info__c,Order_ForCustomerText__c,ConInvoice_Code__c,Onchange_order__c |
| | | // FROM Consumable_order__c |
| | | // WHERE Id =:arriveorder AND Order_Owner_WorkLocal__c =: userWorkLocation |
| | | // AND recordtypeid = :System.Label.RT_ConOrder_Arrive]; |
| | | coc = [ |
| | | SELECT |
| | | Id, |
| | | Name, |
| | | Summons_Order_type__c, |
| | | NoConfirmedPrice__c, |
| | | SummonsStatus_c__c, |
| | | Order_ForDealerText__c, |
| | | Dealer_Info__c, |
| | | Order_ForDealer__c, |
| | | Order_ForDealer__r.Name, |
| | | Order_ForDealerTextID__c, |
| | | Order_ForHospital__c, |
| | | SummonsForDirction__c, |
| | | Order_date__c, |
| | | Arrive_Order__c, |
| | | Order_status__c, |
| | | Shipment_total_amount__c, |
| | | Offers_Price__c, |
| | | Billed_Status__c, |
| | | ShipmentAccount__c, |
| | | Order_Dealer_Info__c, |
| | | Order_ForCustomerText__c, |
| | | ConInvoice_Code__c, |
| | | Onchange_order__c, |
| | | OutPattern__c |
| | | FROM Consumable_order__c |
| | | WHERE |
| | | Id = :arriveorder |
| | | AND Order_Owner_WorkLocal__c = :userWorkLocation |
| | | AND recordtypeid = :System.Label.RT_ConOrder_Arrive |
| | | ]; |
| | | // update end by vivek 2019-7-15 |
| | | //明细1获取 |
| | | consumableorderdetailsSelected = [ |
| | | SELECT |
| | | Id, |
| | | Dealer_Custom_Price__c, |
| | | Delivery_List_RMB__c, |
| | | Consumable_Product__r.Name__c, |
| | | Name, |
| | | Consumable_order__c, |
| | | Consumable_Product__c, |
| | | Consumable_Product__r.Name, |
| | | Consumable_Product__r.Category3__c, |
| | | Consumable_Product__r.Category4__c, |
| | | Consumable_Product__r.Category5__c, |
| | | Shipment_Count__c, |
| | | Consumable_Product__r.Intra_Trade_List_RMB__c, |
| | | Consumable_Product__r.Asset_Model_No__c, |
| | | Sum_of_money__c, |
| | | Box_Piece__c, |
| | | ProductPacking_list_manual__c, |
| | | Consumable_Product__r.SFDA_Status__c, |
| | | Consumable_count__c, |
| | | Invoiced_Procount__c, |
| | | RrturnPro_count__c, |
| | | InvoiceProNot_count__c, |
| | | //Unitprice_To_agency__c, |
| | | Consumable_Product__r.Product2__r.SFDA_Approbation_No__c, |
| | | Consumable_Product__r.Product2__r.SFDA_Expiration_Date__c |
| | | FROM Consumable_Orderdetails__c |
| | | WHERE Consumable_order__c = :coc.Arrive_Order__c |
| | | ORDER BY Name |
| | | ]; |
| | | for ( |
| | | Consumable_Orderdetails__c cdc1 : consumableorderdetailsSelected |
| | | ) { |
| | | orderzaikuId.add(cdc1.Consumable_Product__c); |
| | | } |
| | | msoql = makeSoqlorderdet(); |
| | | product2Selected = Database.query(msoql); |
| | | size = product2Selected.size(); |
| | | initStandardController(msoql); |
| | | for (Integer i = 0; i < product2Selected.size(); i++) { |
| | | MidMap.put( |
| | | product2Selected[i].Id, |
| | | new ConsumableorderdetailsInfo(product2Selected[i]) |
| | | ); |
| | | } |
| | | //update by rentx 2021-01-29 |
| | | /*for(Integer i = 0 ; i< CountDel.size();i++){ |
| | | Integer ishosnum = 0; |
| | | for (ConsumableorderdetailsInfo ass : consumableorderdetailsSelectRecords) { |
| | | //ass.sortBy = sortOrderAsc; |
| | | //add by rentx 2021-3-10 |
| | | if (ass.hospitalSpecialOffer) { |
| | | ishosnum = ishosnum + 1; |
| | | } |
| | | } |
| | | if (ishosnum > 0) { |
| | | hasHosPro = true; |
| | | } else { |
| | | hasHosPro = false; |
| | | } |
| | | consumableorderdetailsSelectRecords.sort(); |
| | | //add by rentx |
| | | noOfRecords = consumableorderdetailsSelectRecords.size(); |
| | | //add by rentx |
| | | System.debug('makepagerecords1'); |
| | | makepagerecords(); |
| | | //listCut(); |
| | | } else { |
| | | if (statusEdit == '' || statusEdit == null) { |
| | | editAble = false; |
| | | } else if (statusEdit != '' && statusEdit != null) { |
| | | editAble = true; |
| | | } |
| | | // upadte start by vivek 2019-7-15 |
| | | // coc = [SELECT Id,Name,Summons_Order_type__c,SummonsStatus_c__c,Order_ForDealerText__c, |
| | | // Dealer_Info__c,Order_ForDealer__c,Order_ForDealer__r.Name,Order_ForDealerTextID__c, |
| | | // Order_ForHospital__c,SummonsForDirction__c,Order_date__c,Arrive_Order__c, |
| | | // Order_status__c,Shipment_total_amount__c,Offers_Price__c, |
| | | // Billed_Status__c,ShipmentAccount__c,Order_Dealer_Info__c,Order_ForCustomerText__c,ConInvoice_Code__c,Onchange_order__c |
| | | // FROM Consumable_order__c |
| | | // WHERE Id =:arriveorder AND Order_Owner_WorkLocal__c =: userWorkLocation |
| | | // AND recordtypeid = :System.Label.RT_ConOrder_Arrive]; |
| | | coc = [ |
| | | SELECT |
| | | Id, |
| | | Name, |
| | | Summons_Order_type__c, |
| | | NoConfirmedPrice__c, |
| | | SummonsStatus_c__c, |
| | | Order_ForDealerText__c, |
| | | Dealer_Info__c, |
| | | Order_ForDealer__c, |
| | | Order_ForDealer__r.Name, |
| | | Order_ForDealerTextID__c, |
| | | Order_ForHospital__c, |
| | | SummonsForDirction__c, |
| | | Order_date__c, |
| | | Arrive_Order__c, |
| | | Order_status__c, |
| | | Shipment_total_amount__c, |
| | | Offers_Price__c, |
| | | Billed_Status__c, |
| | | ShipmentAccount__c, |
| | | Order_Dealer_Info__c, |
| | | Order_ForCustomerText__c, |
| | | ConInvoice_Code__c, |
| | | Onchange_order__c, |
| | | OutPattern__c |
| | | FROM Consumable_order__c |
| | | WHERE |
| | | Id = :arriveorder |
| | | AND Order_Owner_WorkLocal__c = :userWorkLocation |
| | | AND recordtypeid = :System.Label.RT_ConOrder_Arrive |
| | | ]; |
| | | // update end by vivek 2019-7-15 |
| | | //明细1获取 |
| | | consumableorderdetailsSelected = [ |
| | | SELECT |
| | | Id, |
| | | Dealer_Custom_Price__c, |
| | | Delivery_List_RMB__c, |
| | | Consumable_Product__r.Name__c, |
| | | Name, |
| | | Consumable_order__c, |
| | | Consumable_Product__c, |
| | | Consumable_Product__r.Name, |
| | | Consumable_Product__r.Category3__c, |
| | | Consumable_Product__r.Category4__c, |
| | | Consumable_Product__r.Category5__c, |
| | | Shipment_Count__c, |
| | | Consumable_Product__r.Intra_Trade_List_RMB__c, |
| | | Consumable_Product__r.Asset_Model_No__c, |
| | | Sum_of_money__c, |
| | | Box_Piece__c, |
| | | ProductPacking_list_manual__c, |
| | | Consumable_Product__r.SFDA_Status__c, |
| | | Consumable_count__c, |
| | | Invoiced_Procount__c, |
| | | RrturnPro_count__c, |
| | | InvoiceProNot_count__c, |
| | | //Unitprice_To_agency__c, |
| | | Consumable_Product__r.Product2__r.SFDA_Approbation_No__c, |
| | | Consumable_Product__r.Product2__r.SFDA_Expiration_Date__c |
| | | FROM Consumable_Orderdetails__c |
| | | WHERE Consumable_order__c = :coc.Arrive_Order__c |
| | | ORDER BY Name |
| | | ]; |
| | | for (Consumable_Orderdetails__c cdc1 : consumableorderdetailsSelected) { |
| | | orderzaikuId.add(cdc1.Consumable_Product__c); |
| | | } |
| | | msoql = makeSoqlorderdet(); |
| | | product2Selected = Database.query(msoql); |
| | | size = product2Selected.size(); |
| | | initStandardController(msoql); |
| | | for (Integer i = 0; i < product2Selected.size(); i++) { |
| | | MidMap.put(product2Selected[i].Id, new ConsumableorderdetailsInfo(product2Selected[i])); |
| | | } |
| | | //update by rentx 2021-01-29 |
| | | /*for(Integer i = 0 ; i< CountDel.size();i++){ |
| | | //然后循环CountDel去修改map里的allnumber |
| | | if(MidMap.containsKey(CountDel[i].Consumable_Product__c)){ |
| | | ConsumableorderdetailsInfo Jstage = MidMap.get(CountDel[i].Consumable_Product__c); |
| | |
| | | } |
| | | |
| | | }*/ |
| | | for (Integer i = 0; i < CountDel.size(); i++) { |
| | | String str = ''; |
| | | if (CountDel[i].hospitalSpecialOffer__c) { |
| | | str = 'isHos'; |
| | | for (Integer i = 0; i < CountDel.size(); i++) { |
| | | String str = ''; |
| | | if (CountDel[i].hospitalSpecialOffer__c) { |
| | | str = 'isHos'; |
| | | } else { |
| | | str = 'notHos'; |
| | | } |
| | | //明细2对应的产品存在于MidMap中 |
| | | if (MidMap.containsKey(CountDel[i].Consumable_Product__c)) { |
| | | //设置map中key的后缀 用于区分医院特价和非医院特价 |
| | | if (MidMap2.containsKey(CountDel[i].Consumable_Product__c + str)) { |
| | | ConsumableorderdetailsInfo Jstage = MidMap2.get(CountDel[i].Consumable_Product__c + str); |
| | | Jstage.allnumber = Jstage.allnumber + 1; |
| | | if (CountDel[i].Box_Piece__c == '盒') { |
| | | Jstage.Boxnumber = Jstage.Boxnumber + 1; |
| | | } else if (CountDel[i].Box_Piece__c == '个') { |
| | | Jstage.Piecenumber = Jstage.Piecenumber + 1; |
| | | } |
| | | if (CountDel[i].hospitalSpecialOffer__c) { |
| | | Jstage.hospitalSpecialOffer = true; |
| | | } else { |
| | | Jstage.hospitalSpecialOffer = false; |
| | | } |
| | | |
| | | if (HosProMap.containsKey(Jstage.Prod.Id)) { |
| | | Jstage.hosPro = true; |
| | | } |
| | | MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage); |
| | | } else { |
| | | //midmap2中没有对应的产品 |
| | | ConsumableorderdetailsInfo Jstage = MidMap.get(CountDel[i].Consumable_Product__c).clone(); |
| | | Jstage.allnumber = Jstage.allnumber + 1; |
| | | if (CountDel[i].Box_Piece__c == '盒') { |
| | | Jstage.Boxnumber = Jstage.Boxnumber + 1; |
| | | } else if (CountDel[i].Box_Piece__c == '个') { |
| | | Jstage.Piecenumber = Jstage.Piecenumber + 1; |
| | | } |
| | | if (CountDel[i].hospitalSpecialOffer__c) { |
| | | Jstage.hospitalSpecialOffer = true; |
| | | } else { |
| | | Jstage.hospitalSpecialOffer = false; |
| | | } |
| | | |
| | | if (HosProMap.containsKey(Jstage.Prod.Id)) { |
| | | Jstage.hosPro = true; |
| | | } |
| | | //Jstage.BoxPiece = CountDel[i].Box_Piece__c; |
| | | MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //再把map里的值从新赋给ConsumableorderdetailsRecords |
| | | //update by rentx 2021-01-29 |
| | | // for(ConsumableorderdetailsInfo bss : MidMap.values()){ |
| | | for (ConsumableorderdetailsInfo bss : MidMap2.values()) { |
| | | //update by rentx 2021-01-29 |
| | | bss.packinglist = Integer.valueOf(bss.Prod.Product2__r.Packing_list_manual__c); |
| | | bss.approbation_No = bss.Prod.Product2__r.SFDA_Approbation_No__c; |
| | | bss.expiration_Date = bss.Prod.Product2__r.SFDA_Expiration_Date__c; |
| | | consumableorderdetailsSelectRecords.add(bss); |
| | | } |
| | | //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'test11111' + consumableorderdetailsSelected.size())); |
| | | //return; |
| | | |
| | | Integer ishosnum = 0; |
| | | for (ConsumableorderdetailsInfo ass : consumableorderdetailsSelectRecords) { |
| | | //ass.sortBy = sortOrderAsc; |
| | | for (Consumable_Orderdetails__c cdc1 : consumableorderdetailsSelected) { |
| | | cdc1.Shipment_Count__c = cdc1.Consumable_count__c; |
| | | if (ass.prod.Id == cdc1.Consumable_Product__c) { |
| | | ass.check = true; |
| | | ass.orderdetails1 = cdc1; |
| | | } |
| | | } |
| | | if (ass.hospitalSpecialOffer == true) { |
| | | ishosnum = ishosnum + 1; |
| | | } |
| | | } |
| | | if (ishosnum > 0) { |
| | | hasHosPro = true; |
| | | } else { |
| | | hasHosPro = false; |
| | | } |
| | | |
| | | consumableorderdetailsSelectRecords.sort(); |
| | | //add by rentx |
| | | noOfRecords = consumableorderdetailsSelectRecords.size(); |
| | | //add by rentx |
| | | System.debug('makepagerecords2'); |
| | | makepagerecords(); |
| | | consumablearriveproductdetailsSelected = [ |
| | | SELECT |
| | | Id, |
| | | Name, |
| | | Intra_Trade_List_RMB__c, |
| | | Asset_Model_No__c, |
| | | Consumable_Product__c, |
| | | Consumable_Product__r.Name, |
| | | Consumable_Product__r.Name__c, |
| | | Consumable_Product__r.Category3__c, |
| | | Consumable_Product__r.Category4__c, |
| | | Consumable_Product__r.Category5__c, |
| | | Sterilization_limit__c, |
| | | Deliver_date__c, |
| | | Bar_Code__c, |
| | | Arrive_date__c, |
| | | Send_Date__c, |
| | | Consumable_order_minor__r.Name, |
| | | Consumable_order_minor__c, |
| | | Dealer_Arrive__c, |
| | | Delivery_List_RMB__c, |
| | | Box_Piece__c, |
| | | ProductPacking_list_manual__c, |
| | | //add by rentx start |
| | | hospitalSpecialOffer__c |
| | | //add by rentx end |
| | | FROM Consumable_order_details2__c |
| | | WHERE |
| | | Consumable_order_minor__c = :coc.Arrive_Order__c |
| | | AND recordtypeid = :System.Label.RT_ConOrderDetail2_Delivery |
| | | AND Dealer_Arrive__c = TRUE |
| | | ORDER BY Name |
| | | ]; |
| | | for (Integer i = 0; i < consumablearriveproductdetailsSelected.size(); i++) { |
| | | if ( |
| | | consumablearriveproductdetailsSelected[i].hospitalSpecialOffer__c && |
| | | HosProMap.containsKey(consumablearriveproductdetailsSelected[i].Consumable_product__c) |
| | | ) { |
| | | coc.OutPattern__c = true; |
| | | } |
| | | consumableproductdetailsRecords.add(new ConsumableorderdetailsInfo(consumablearriveproductdetailsSelected[i])); |
| | | } |
| | | } |
| | | } else { |
| | | str = 'notHos'; |
| | | } |
| | | //明细2对应的产品存在于MidMap中 |
| | | if (MidMap.containsKey(CountDel[i].Consumable_Product__c)) { |
| | | //设置map中key的后缀 用于区分医院特价和非医院特价 |
| | | if ( |
| | | MidMap2.containsKey(CountDel[i].Consumable_Product__c + str) |
| | | ) { |
| | | ConsumableorderdetailsInfo Jstage = MidMap2.get( |
| | | CountDel[i].Consumable_Product__c + str |
| | | ); |
| | | Jstage.allnumber = Jstage.allnumber + 1; |
| | | if (CountDel[i].Box_Piece__c == '盒') { |
| | | Jstage.Boxnumber = Jstage.Boxnumber + 1; |
| | | } else if (CountDel[i].Box_Piece__c == '个') { |
| | | Jstage.Piecenumber = Jstage.Piecenumber + 1; |
| | | // 更新、 |
| | | SummonsFlag = 'visible'; |
| | | // update start by vivek 2019-7-15 add “NoConfirmedPrice__c” in select |
| | | consumableInvoiceRecords = [ |
| | | SELECT Id, Name, Invoice_Date__c, NoConfirmedPrice__c, Invoice_total_amount__c, Invoice_status__c |
| | | FROM Consumable_order__c |
| | | WHERE |
| | | Id IN (SELECT Invoice_Code_link__c FROM Consumable_order_LinkTable__c WHERE Outboundorder_Code_link__c = :ESetId) |
| | | AND Invoice_status__c != '草案中' |
| | | ]; |
| | | |
| | | System.debug('coc ESetId = ' + ESetId); |
| | | System.debug('coc userWorkLocation = ' + userWorkLocation); |
| | | coc = [ |
| | | SELECT |
| | | Id, |
| | | Name, |
| | | Summons_Order_type__c, |
| | | NoConfirmedPrice__c, |
| | | SummonsStatus_c__c, |
| | | Order_ForDealerText__c, |
| | | Dealer_Info__c, |
| | | Order_ForDealer__c, |
| | | Order_ForDealer__r.Name, |
| | | Order_ForDealerTextID__c, |
| | | Order_ForHospital__c, |
| | | SummonsForDirction__c, |
| | | Order_date__c, |
| | | Arrive_Order__c, |
| | | Order_status__c, |
| | | Shipment_total_amount__c, |
| | | Offers_Price__c, |
| | | Billed_Status__c, |
| | | ShipmentAccount__c, |
| | | Order_Dealer_Info__c, |
| | | Order_ForCustomerText__c, |
| | | ConInvoice_Code__c, |
| | | Onchange_order__c, |
| | | OutPattern__c |
| | | FROM Consumable_order__c |
| | | WHERE Id = :ESetId AND Order_Owner_WorkLocal__c = :userWorkLocation AND Order_type__c = '传票' |
| | | ]; |
| | | // update start by vivek 2019-7-15 |
| | | if (getExistarrive()) { |
| | | arriveorder = coc.Arrive_Order__c; |
| | | } |
| | | if (CountDel[i].hospitalSpecialOffer__c) { |
| | | Jstage.hospitalSpecialOffer = true; |
| | | } else { |
| | | Jstage.hospitalSpecialOffer = false; |
| | | } |
| | | // 到货订单来的时候 |
| | | if (getExistarrive()) { |
| | | if (editAble) { |
| | | alertMessage = '到货订单直接出库,出库单明细不可编辑'; |
| | | } |
| | | if (coc.SummonsStatus_c__c == '已提交' || coc.SummonsStatus_c__c == '批准') { |
| | | system.debug('coc.SummonsStatus_c__c : ' + coc.SummonsStatus_c__c); |
| | | saveBtnDisabled = true; |
| | | SorderBtnDisabled = true; |
| | | EditDelCommitBtnDisabled = false; |
| | | } |
| | | //医院二级经销商分类 |
| | | Integer io = 0; |
| | | while (io < Dealerelationship.size()) { |
| | | if (coc.Order_ForDealer__c == Dealerelationship[io].Dealer_subordinate__c) { |
| | | SecondDealer = Dealerelationship[io].Dealer_subordinate__c; |
| | | coc.Order_ForDealer__c = null; |
| | | io = io + Dealerelationship.size(); |
| | | } |
| | | io++; |
| | | } |
| | | |
| | | if (HosProMap.containsKey(Jstage.Prod.Id)) { |
| | | Jstage.hosPro = true; |
| | | } |
| | | MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage); |
| | | } else { |
| | | //midmap2中没有对应的产品 |
| | | ConsumableorderdetailsInfo Jstage = MidMap.get( |
| | | CountDel[i].Consumable_Product__c |
| | | ) |
| | | .clone(); |
| | | Jstage.allnumber = Jstage.allnumber + 1; |
| | | if (CountDel[i].Box_Piece__c == '盒') { |
| | | Jstage.Boxnumber = Jstage.Boxnumber + 1; |
| | | } else if (CountDel[i].Box_Piece__c == '个') { |
| | | Jstage.Piecenumber = Jstage.Piecenumber + 1; |
| | | } |
| | | if (CountDel[i].hospitalSpecialOffer__c) { |
| | | Jstage.hospitalSpecialOffer = true; |
| | | } else { |
| | | Jstage.hospitalSpecialOffer = false; |
| | | } |
| | | Integer ik = 0; |
| | | while (ik < AgencyHospitalLink.size()) { |
| | | if (coc.Order_ForHospital__c == AgencyHospitalLink[ik].Hospital__c) { |
| | | HospitalInfo = AgencyHospitalLink[ik].Hospital__c; |
| | | HospitalName = AgencyHospitalLink[ik].Hospital__r.Name; |
| | | coc.Order_ForHospital__c = null; |
| | | ik = ik + AgencyHospitalLink.size(); |
| | | } |
| | | ik++; |
| | | } |
| | | //出库单明细1取得 |
| | | consumableorderdetailsSelected = [ |
| | | SELECT |
| | | Id, |
| | | Dealer_Custom_Price__c, |
| | | Delivery_List_RMB__c, |
| | | Consumable_Product__r.Name__c, |
| | | Consumable_Product__r.SFDA_Status__c, |
| | | Name, |
| | | Consumable_order__c, |
| | | Consumable_Product__c, |
| | | Consumable_Product__r.Name, |
| | | Shipment_Count__c, |
| | | Consumable_Product__r.Intra_Trade_List_RMB__c, |
| | | Consumable_Product__r.Asset_Model_No__c, |
| | | Consumable_Product__r.Category3__c, |
| | | Consumable_Product__r.Category4__c, |
| | | Consumable_Product__r.Category5__c, |
| | | Shipment_amount__c, |
| | | //Unitprice_To_agency__c, |
| | | Box_Piece__c, |
| | | ProductPacking_list_manual__c, |
| | | Invoiced_Procount__c, |
| | | RrturnPro_count__c, |
| | | InvoiceProNot_count__c, |
| | | Consumable_Product__r.Product2__r.SFDA_Approbation_No__c, |
| | | Consumable_Product__r.Product2__r.SFDA_Expiration_Date__c, |
| | | isOutPattern__c |
| | | FROM Consumable_orderdetails__c |
| | | WHERE Consumable_order__c = :ESetId AND Consumable_order__r.Order_Owner_WorkLocal__c = :userWorkLocation |
| | | ORDER BY Name |
| | | ]; |
| | | Map<String, Consumable_Orderdetails__c> cocMap = new Map<String, Consumable_Orderdetails__c>(); |
| | | |
| | | if (HosProMap.containsKey(Jstage.Prod.Id)) { |
| | | Jstage.hosPro = true; |
| | | } |
| | | //Jstage.BoxPiece = CountDel[i].Box_Piece__c; |
| | | MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage); |
| | | } |
| | | } |
| | | } |
| | | for (Consumable_Orderdetails__c cdc1 : consumableorderdetailsSelected) { |
| | | sumPrice += cdc1.Shipment_amount__c; |
| | | orderzaikuId.add(cdc1.Consumable_Product__c); |
| | | //add by rentx 2021-2-26 |
| | | String tempId = cdc1.Consumable_product__c; |
| | | if (cdc1.isOutPattern__c) { |
| | | cocMap.put(tempId + 'ishos', cdc1); |
| | | } else { |
| | | cocMap.put(tempId + 'nothos', cdc1); |
| | | } |
| | | //add by rentx 2021-2-26 |
| | | } |
| | | String msoql = makeSoqlorderdet(); |
| | | product2Selected = Database.query(msoql); |
| | | size = product2Selected.size(); |
| | | initStandardController(msoql); |
| | | |
| | | //再把map里的值从新赋给ConsumableorderdetailsRecords |
| | | //update by rentx 2021-01-29 |
| | | // for(ConsumableorderdetailsInfo bss : MidMap.values()){ |
| | | for (ConsumableorderdetailsInfo bss : MidMap2.values()) { |
| | | //update by rentx 2021-01-29 |
| | | bss.packinglist = Integer.valueOf( |
| | | bss.Prod.Product2__r.Packing_list_manual__c |
| | | ); |
| | | bss.approbation_No = bss.Prod.Product2__r.SFDA_Approbation_No__c; |
| | | bss.expiration_Date = bss.Prod.Product2__r.SFDA_Expiration_Date__c; |
| | | consumableorderdetailsSelectRecords.add(bss); |
| | | } |
| | | //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'test11111' + consumableorderdetailsSelected.size())); |
| | | //return; |
| | | |
| | | Integer ishosnum = 0; |
| | | for ( |
| | | ConsumableorderdetailsInfo ass : consumableorderdetailsSelectRecords |
| | | ) { |
| | | //ass.sortBy = sortOrderAsc; |
| | | for ( |
| | | Consumable_Orderdetails__c cdc1 : consumableorderdetailsSelected |
| | | ) { |
| | | cdc1.Shipment_Count__c = cdc1.Consumable_count__c; |
| | | if (ass.prod.Id == cdc1.Consumable_Product__c) { |
| | | ass.check = true; |
| | | ass.orderdetails1 = cdc1; |
| | | } |
| | | } |
| | | if (ass.hospitalSpecialOffer == true) { |
| | | ishosnum = ishosnum + 1; |
| | | } |
| | | } |
| | | if (ishosnum > 0) { |
| | | hasHosPro = true; |
| | | } else { |
| | | hasHosPro = false; |
| | | } |
| | | |
| | | consumableorderdetailsSelectRecords.sort(); |
| | | //add by rentx |
| | | noOfRecords = consumableorderdetailsSelectRecords.size(); |
| | | //add by rentx |
| | | System.debug('makepagerecords2'); |
| | | makepagerecords(); |
| | | consumablearriveproductdetailsSelected = [ |
| | | SELECT |
| | | Id, |
| | | Name, |
| | | Intra_Trade_List_RMB__c, |
| | | Asset_Model_No__c, |
| | | Consumable_Product__c, |
| | | Consumable_Product__r.Name, |
| | | Consumable_Product__r.Name__c, |
| | | Consumable_Product__r.Category3__c, |
| | | Consumable_Product__r.Category4__c, |
| | | Consumable_Product__r.Category5__c, |
| | | Sterilization_limit__c, |
| | | Deliver_date__c, |
| | | Bar_Code__c, |
| | | Arrive_date__c, |
| | | Send_Date__c, |
| | | Consumable_order_minor__r.Name, |
| | | Consumable_order_minor__c, |
| | | Dealer_Arrive__c, |
| | | Delivery_List_RMB__c, |
| | | Box_Piece__c, |
| | | ProductPacking_list_manual__c, |
| | | //add by rentx start |
| | | hospitalSpecialOffer__c |
| | | //add by rentx end |
| | | FROM Consumable_order_details2__c |
| | | WHERE |
| | | Consumable_order_minor__c = :coc.Arrive_Order__c |
| | | AND recordtypeid = :System.Label.RT_ConOrderDetail2_Delivery |
| | | AND Dealer_Arrive__c = TRUE |
| | | ORDER BY Name |
| | | ]; |
| | | for ( |
| | | Integer i = 0; |
| | | i < consumablearriveproductdetailsSelected.size(); |
| | | i++ |
| | | ) { |
| | | if ( |
| | | consumablearriveproductdetailsSelected[i] |
| | | .hospitalSpecialOffer__c && |
| | | HosProMap.containsKey( |
| | | consumablearriveproductdetailsSelected[i].Consumable_product__c |
| | | ) |
| | | ) { |
| | | coc.OutPattern__c = true; |
| | | } |
| | | consumableproductdetailsRecords.add( |
| | | new ConsumableorderdetailsInfo( |
| | | consumablearriveproductdetailsSelected[i] |
| | | ) |
| | | ); |
| | | } |
| | | } |
| | | } else { |
| | | // 更新、 |
| | | SummonsFlag = 'visible'; |
| | | // update start by vivek 2019-7-15 add “NoConfirmedPrice__c” in select |
| | | consumableInvoiceRecords = [ |
| | | SELECT |
| | | Id, |
| | | Name, |
| | | Invoice_Date__c, |
| | | NoConfirmedPrice__c, |
| | | Invoice_total_amount__c, |
| | | Invoice_status__c |
| | | FROM Consumable_order__c |
| | | WHERE |
| | | Id IN ( |
| | | SELECT Invoice_Code_link__c |
| | | FROM Consumable_order_LinkTable__c |
| | | WHERE Outboundorder_Code_link__c = :ESetId |
| | | ) |
| | | AND Invoice_status__c != '草案中' |
| | | ]; |
| | | |
| | | System.debug('coc ESetId = ' + ESetId); |
| | | System.debug('coc userWorkLocation = ' + userWorkLocation); |
| | | coc = [ |
| | | SELECT |
| | | Id, |
| | | Name, |
| | | Summons_Order_type__c, |
| | | NoConfirmedPrice__c, |
| | | SummonsStatus_c__c, |
| | | Order_ForDealerText__c, |
| | | Dealer_Info__c, |
| | | Order_ForDealer__c, |
| | | Order_ForDealer__r.Name, |
| | | Order_ForDealerTextID__c, |
| | | Order_ForHospital__c, |
| | | SummonsForDirction__c, |
| | | Order_date__c, |
| | | Arrive_Order__c, |
| | | Order_status__c, |
| | | Shipment_total_amount__c, |
| | | Offers_Price__c, |
| | | Billed_Status__c, |
| | | ShipmentAccount__c, |
| | | Order_Dealer_Info__c, |
| | | Order_ForCustomerText__c, |
| | | ConInvoice_Code__c, |
| | | Onchange_order__c, |
| | | OutPattern__c |
| | | FROM Consumable_order__c |
| | | WHERE |
| | | Id = :ESetId |
| | | AND Order_Owner_WorkLocal__c = :userWorkLocation |
| | | AND Order_type__c = '传票' |
| | | ]; |
| | | // update start by vivek 2019-7-15 |
| | | if (getExistarrive()) { |
| | | arriveorder = coc.Arrive_Order__c; |
| | | } |
| | | // 到货订单来的时候 |
| | | if (getExistarrive()) { |
| | | if (editAble) { |
| | | alertMessage = '到货订单直接出库,出库单明细不可编辑'; |
| | | } |
| | | if ( |
| | | coc.SummonsStatus_c__c == '已提交' || |
| | | coc.SummonsStatus_c__c == '批准' |
| | | ) { |
| | | system.debug('coc.SummonsStatus_c__c : ' + coc.SummonsStatus_c__c); |
| | | saveBtnDisabled = true; |
| | | SorderBtnDisabled = true; |
| | | EditDelCommitBtnDisabled = false; |
| | | } |
| | | //医院二级经销商分类 |
| | | Integer io = 0; |
| | | while (io < Dealerelationship.size()) { |
| | | if ( |
| | | coc.Order_ForDealer__c == |
| | | Dealerelationship[io].Dealer_subordinate__c |
| | | ) { |
| | | SecondDealer = Dealerelationship[io].Dealer_subordinate__c; |
| | | coc.Order_ForDealer__c = null; |
| | | io = io + Dealerelationship.size(); |
| | | } |
| | | io++; |
| | | } |
| | | |
| | | Integer ik = 0; |
| | | while (ik < AgencyHospitalLink.size()) { |
| | | if ( |
| | | coc.Order_ForHospital__c == AgencyHospitalLink[ik].Hospital__c |
| | | ) { |
| | | HospitalInfo = AgencyHospitalLink[ik].Hospital__c; |
| | | HospitalName = AgencyHospitalLink[ik].Hospital__r.Name; |
| | | coc.Order_ForHospital__c = null; |
| | | ik = ik + AgencyHospitalLink.size(); |
| | | } |
| | | ik++; |
| | | } |
| | | //出库单明细1取得 |
| | | consumableorderdetailsSelected = [ |
| | | SELECT |
| | | Id, |
| | | Dealer_Custom_Price__c, |
| | | Delivery_List_RMB__c, |
| | | Consumable_Product__r.Name__c, |
| | | Consumable_Product__r.SFDA_Status__c, |
| | | Name, |
| | | Consumable_order__c, |
| | | Consumable_Product__c, |
| | | Consumable_Product__r.Name, |
| | | Shipment_Count__c, |
| | | Consumable_Product__r.Intra_Trade_List_RMB__c, |
| | | Consumable_Product__r.Asset_Model_No__c, |
| | | Consumable_Product__r.Category3__c, |
| | | Consumable_Product__r.Category4__c, |
| | | Consumable_Product__r.Category5__c, |
| | | Shipment_amount__c, |
| | | //Unitprice_To_agency__c, |
| | | Box_Piece__c, |
| | | ProductPacking_list_manual__c, |
| | | Invoiced_Procount__c, |
| | | RrturnPro_count__c, |
| | | InvoiceProNot_count__c, |
| | | Consumable_Product__r.Product2__r.SFDA_Approbation_No__c, |
| | | Consumable_Product__r.Product2__r.SFDA_Expiration_Date__c, |
| | | isOutPattern__c |
| | | FROM Consumable_orderdetails__c |
| | | WHERE |
| | | Consumable_order__c = :ESetId |
| | | AND Consumable_order__r.Order_Owner_WorkLocal__c = :userWorkLocation |
| | | ORDER BY Name |
| | | ]; |
| | | Map<String, Consumable_Orderdetails__c> cocMap = new Map<String, Consumable_Orderdetails__c>(); |
| | | |
| | | for ( |
| | | Consumable_Orderdetails__c cdc1 : consumableorderdetailsSelected |
| | | ) { |
| | | sumPrice += cdc1.Shipment_amount__c; |
| | | orderzaikuId.add(cdc1.Consumable_Product__c); |
| | | //add by rentx 2021-2-26 |
| | | String tempId = cdc1.Consumable_product__c; |
| | | if (cdc1.isOutPattern__c) { |
| | | cocMap.put(tempId + 'ishos', cdc1); |
| | | } else { |
| | | cocMap.put(tempId + 'nothos', cdc1); |
| | | } |
| | | //add by rentx 2021-2-26 |
| | | } |
| | | String msoql = makeSoqlorderdet(); |
| | | product2Selected = Database.query(msoql); |
| | | size = product2Selected.size(); |
| | | initStandardController(msoql); |
| | | |
| | | for (Integer i = 0; i < product2Selected.size(); i++) { |
| | | MidMap.put( |
| | | product2Selected[i].Id, |
| | | new ConsumableorderdetailsInfo(product2Selected[i]) |
| | | ); |
| | | } |
| | | //update by rentx 2021-01-29 |
| | | /*for(Integer i = 0 ; i< CountDel.size();i++){ |
| | | for (Integer i = 0; i < product2Selected.size(); i++) { |
| | | MidMap.put(product2Selected[i].Id, new ConsumableorderdetailsInfo(product2Selected[i])); |
| | | } |
| | | //update by rentx 2021-01-29 |
| | | /*for(Integer i = 0 ; i< CountDel.size();i++){ |
| | | //然后循环CountDel去修改map里的allnumber |
| | | if(MidMap.containsKey(CountDel[i].Consumable_Product__c)){ |
| | | ConsumableorderdetailsInfo Jstage = MidMap.get(CountDel[i].Consumable_Product__c); |
| | |
| | | } |
| | | }*/ |
| | | |
| | | for (Integer i = 0; i < CountDel.size(); i++) { |
| | | String str = ''; |
| | | if (CountDel[i].hospitalSpecialOffer__c) { |
| | | str = 'isHos'; |
| | | for (Integer i = 0; i < CountDel.size(); i++) { |
| | | String str = ''; |
| | | if (CountDel[i].hospitalSpecialOffer__c) { |
| | | str = 'isHos'; |
| | | } else { |
| | | str = 'notHos'; |
| | | } |
| | | //明细2对应的产品存在于MidMap中 |
| | | if (MidMap.containsKey(CountDel[i].Consumable_Product__c)) { |
| | | //设置map中key的后缀 用于区分医院特价和非医院特价 |
| | | if (MidMap2.containsKey(CountDel[i].Consumable_Product__c + str)) { |
| | | ConsumableorderdetailsInfo Jstage = MidMap2.get(CountDel[i].Consumable_Product__c + str); |
| | | Jstage.allnumber = Jstage.allnumber + 1; |
| | | if (CountDel[i].Box_Piece__c == '盒') { |
| | | Jstage.Boxnumber = Jstage.Boxnumber + 1; |
| | | } else if (CountDel[i].Box_Piece__c == '个') { |
| | | Jstage.Piecenumber = Jstage.Piecenumber + 1; |
| | | } |
| | | if (CountDel[i].hospitalSpecialOffer__c) { |
| | | Jstage.hospitalSpecialOffer = true; |
| | | } else { |
| | | Jstage.hospitalSpecialOffer = false; |
| | | } |
| | | |
| | | if (HosProMap.containsKey(Jstage.Prod.Id)) { |
| | | Jstage.hosPro = true; |
| | | } |
| | | MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage); |
| | | } else { |
| | | //midmap2中没有对应的产品 |
| | | ConsumableorderdetailsInfo Jstage = MidMap.get(CountDel[i].Consumable_Product__c).clone(); |
| | | Jstage.allnumber = Jstage.allnumber + 1; |
| | | if (CountDel[i].Box_Piece__c == '盒') { |
| | | Jstage.Boxnumber = Jstage.Boxnumber + 1; |
| | | } else if (CountDel[i].Box_Piece__c == '个') { |
| | | Jstage.Piecenumber = Jstage.Piecenumber + 1; |
| | | } |
| | | if (CountDel[i].hospitalSpecialOffer__c) { |
| | | Jstage.hospitalSpecialOffer = true; |
| | | } else { |
| | | Jstage.hospitalSpecialOffer = false; |
| | | } |
| | | if (HosProMap.containsKey(Jstage.Prod.Id)) { |
| | | Jstage.hosPro = true; |
| | | } |
| | | //Jstage.BoxPiece = CountDel[i].Box_Piece__c; |
| | | MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage); |
| | | } |
| | | } |
| | | } |
| | | //update by rentx 2021-01-29 |
| | | consumableorderdetailsSelectRecords = new List<ConsumableorderdetailsInfo>(); |
| | | //再把map里的值从新赋给ConsumableorderdetailsRecords |
| | | //update by rentx 2021-01-29 |
| | | // for(ConsumableorderdetailsInfo bss : MidMap.values()){ |
| | | for (ConsumableorderdetailsInfo bss : MidMap2.values()) { |
| | | //update by rentx 2021-01-29 |
| | | |
| | | //if(bss.allnumber > 0){ |
| | | //bss.UnitpriceToagency = bss.orderdetails1.Unitprice_To_agency__c == null || bss.orderdetails1.Unitprice_To_agency__c == 0 ? '' :bss.orderdetails1.Unitprice_To_agency__c.format(); |
| | | bss.packinglist = Integer.valueOf(bss.Prod.Product2__r.Packing_list_manual__c); |
| | | bss.approbation_No = bss.Prod.Product2__r.SFDA_Approbation_No__c; |
| | | bss.expiration_Date = bss.Prod.Product2__r.SFDA_Expiration_Date__c; |
| | | |
| | | //update by rentx 2021-2-26 start |
| | | if (cocMap.containsKey(bss.Prod.Id + 'ishos') && bss.hospitalSpecialOffer == true) { |
| | | consumableorderdetailsSelectRecords.add(bss); |
| | | } else if (cocMap.containsKey(bss.Prod.Id + 'nothos') && bss.hospitalSpecialOffer == false) { |
| | | consumableorderdetailsSelectRecords.add(bss); |
| | | } |
| | | //update by rentx 2021-2-26 end |
| | | // consumableorderdetailsSelectRecords.add(bss); |
| | | //} |
| | | } |
| | | Integer ishosnum = 0; |
| | | for (ConsumableorderdetailsInfo ass : consumableorderdetailsSelectRecords) { |
| | | for (Consumable_Orderdetails__c cdc1 : consumableorderdetailsSelected) { |
| | | //update by rentx 2012-3-1 start |
| | | // if(ass.prod.Id == cdc1.Consumable_Product__c){ |
| | | // ass.check = true; |
| | | // ass.orderdetails1 = cdc1; |
| | | // } |
| | | if (ass.Prod.Id == cdc1.Consumable_Product__c && ass.hospitalSpecialOffer == cdc1.isOutPattern__c) { |
| | | ass.check = true; |
| | | ass.orderdetails1 = cdc1; |
| | | } |
| | | //update by rentx 2012-3-1 end |
| | | } |
| | | if (ass.hospitalSpecialOffer == true) { |
| | | ishosnum = ishosnum + 1; |
| | | } |
| | | } |
| | | if (ishosnum > 0) { |
| | | hasHosPro = true; |
| | | } else { |
| | | hasHosPro = false; |
| | | } |
| | | |
| | | //add by rentx |
| | | noOfRecords = consumableorderdetailsSelectRecords.size(); |
| | | //add by rentx |
| | | System.debug('makepagerecords3'); |
| | | makepagerecords(); |
| | | //listCut(); |
| | | // 消耗品明细2を取得 |
| | | consumableorderdetails2RecordsList = [ |
| | | SELECT |
| | | Id, |
| | | Name, |
| | | SerialLotNo__c, |
| | | Consumable_Product__r.Name__c, |
| | | TracingCode__c, |
| | | Sterilization_limit__c, |
| | | Consumable_Product__c, |
| | | Consumable_Product__r.Name, |
| | | Consumable_Product__r.Category3__c, |
| | | Consumable_Product__r.Category4__c, |
| | | Consumable_Product__r.Category5__c, |
| | | Return_date__c, |
| | | Invoice_Date__c, |
| | | Box_Piece__c, |
| | | ProductPacking_list_manual__c, |
| | | //add by rentx start |
| | | hospitalSpecialOffer__c |
| | | //add by rentx end |
| | | FROM Consumable_order_details2__c |
| | | WHERE Consumable_ZS_order__c = :ESetId |
| | | ORDER BY Name |
| | | ]; |
| | | for (Integer i = 0; i < consumableorderdetails2RecordsList.size(); i++) { |
| | | consumableorderdetails2Records.add(new ConsumableorderdetailsInfo(consumableorderdetails2RecordsList[i])); |
| | | } |
| | | //产品明细取得 |
| | | consumablearriveproductdetailsSelected = [ |
| | | SELECT |
| | | Id, |
| | | Delivery_List_RMB__c, |
| | | Consumable_Product__r.Name__c, |
| | | Name, |
| | | Consumable_Product__r.SFDA_Status__c, |
| | | Consumable_Product__r.Category3__c, |
| | | Consumable_Product__r.Category4__c, |
| | | Consumable_Product__r.Category5__c, |
| | | Consumable_Product__c, |
| | | Consumable_Product__r.Name, |
| | | Sterilization_limit__c, |
| | | Consumable_Product__r.Intra_Trade_List_RMB__c, |
| | | Consumable_Product__r.Asset_Model_No__c, |
| | | Box_Piece__c, |
| | | ProductPacking_list_manual__c, |
| | | //add by rentx start |
| | | hospitalSpecialOffer__c |
| | | //add by rentx end |
| | | FROM Consumable_order_details2__c |
| | | WHERE Consumable_ZS_order__c = :ESetId |
| | | ORDER BY Name |
| | | ]; |
| | | for (Integer i = 0; i < consumablearriveproductdetailsSelected.size(); i++) { |
| | | consumableproductdetailsRecords.add(new ConsumableorderdetailsInfo(consumablearriveproductdetailsSelected[i])); |
| | | } |
| | | } else { |
| | | // 不是到货订单来的时候 |
| | | if (coc.SummonsStatus_c__c == '已提交' || coc.SummonsStatus_c__c == '批准') { |
| | | system.debug('coc.SummonsStatus_c__c : ' + coc.SummonsStatus_c__c); |
| | | saveBtnDisabled = true; |
| | | SorderBtnDisabled = true; |
| | | EditDelCommitBtnDisabled = false; |
| | | } |
| | | //医院二级经销商分类 |
| | | Integer io = 0; |
| | | while (io < Dealerelationship.size()) { |
| | | if (coc.Order_ForDealer__c == Dealerelationship[io].Dealer_subordinate__c) { |
| | | SecondDealer = Dealerelationship[io].Dealer_subordinate__c; |
| | | coc.Order_ForDealer__c = null; |
| | | io = io + Dealerelationship.size(); |
| | | } |
| | | io++; |
| | | } |
| | | Integer ik = 0; |
| | | while (ik < AgencyHospitalLink.size()) { |
| | | if (coc.Order_ForHospital__c == AgencyHospitalLink[ik].Hospital__c) { |
| | | HospitalInfo = AgencyHospitalLink[ik].Hospital__c; |
| | | HospitalName = AgencyHospitalLink[ik].Hospital__r.Name; |
| | | coc.Order_ForHospital__c = null; |
| | | ik = ik + AgencyHospitalLink.size(); |
| | | } |
| | | ik++; |
| | | } |
| | | // 消耗品明细1を取得 |
| | | consumableorderdetailsSelected = [ |
| | | SELECT |
| | | Id, |
| | | Dealer_Custom_Price__c, |
| | | Delivery_List_RMB__c, |
| | | Consumable_Product__r.Name__c, |
| | | Consumable_Product__r.SFDA_Status__c, |
| | | Name, |
| | | Consumable_order__c, |
| | | Consumable_Product__c, |
| | | Consumable_Product__r.Name, |
| | | Shipment_Count__c, |
| | | Consumable_Product__r.Intra_Trade_List_RMB__c, |
| | | Consumable_Product__r.Asset_Model_No__c, |
| | | Shipment_amount__c, |
| | | Box_Piece__c, |
| | | ProductPacking_list_manual__c, |
| | | Invoiced_Procount__c, |
| | | RrturnPro_count__c, |
| | | //Unitprice_To_agency__c, |
| | | InvoiceProNot_count__c, |
| | | Consumable_Product__r.Category3__c, |
| | | Consumable_Product__r.Category4__c, |
| | | Consumable_Product__r.Category5__c, |
| | | Consumable_Product__r.Product2__r.SFDA_Approbation_No__c, |
| | | Consumable_Product__r.Product2__r.SFDA_Expiration_Date__c, |
| | | isOutPattern__c |
| | | FROM Consumable_orderdetails__c |
| | | WHERE Consumable_order__c = :ESetId AND Consumable_order__r.Order_Owner_WorkLocal__c = :userWorkLocation |
| | | ORDER BY Name |
| | | ]; |
| | | //add by rentx 202-2-26 |
| | | Map<String, Consumable_Orderdetails__c> cocMap = new Map<String, Consumable_Orderdetails__c>(); |
| | | |
| | | for (Consumable_Orderdetails__c cdc1 : consumableorderdetailsSelected) { |
| | | sumPrice += cdc1.Shipment_amount__c; |
| | | orderzaikuId.add(cdc1.Consumable_Product__c); |
| | | //add by rentx 2021-2-26 |
| | | String tempId = cdc1.Consumable_product__c; |
| | | if (cdc1.isOutPattern__c) { |
| | | cocMap.put(tempId + 'ishos', cdc1); |
| | | } else { |
| | | cocMap.put(tempId + 'nothos', cdc1); |
| | | } |
| | | //add by rentx 2021-2-26 |
| | | } |
| | | |
| | | String msoql = makeSoqlorderdet(); |
| | | product2Selected = Database.query(msoql); |
| | | size = product2Selected.size(); |
| | | initStandardController(msoql); |
| | | for (Integer i = 0; i < product2Selected.size(); i++) { |
| | | MidMap.put(product2Selected[i].Id, new ConsumableorderdetailsInfo(product2Selected[i])); |
| | | } |
| | | |
| | | for (Integer i = 0; i < CountDel.size(); i++) { |
| | | String str = ''; |
| | | if (CountDel[i].hospitalSpecialOffer__c) { |
| | | str = 'isHos'; |
| | | } else { |
| | | str = 'notHos'; |
| | | } |
| | | //明细2对应的产品存在于MidMap中 |
| | | if (MidMap.containsKey(CountDel[i].Consumable_Product__c)) { |
| | | //设置map中key的后缀 用于区分医院特价和非医院特价 |
| | | if (MidMap2.containsKey(CountDel[i].Consumable_Product__c + str)) { |
| | | ConsumableorderdetailsInfo Jstage = MidMap2.get(CountDel[i].Consumable_Product__c + str); |
| | | Jstage.allnumber = Jstage.allnumber + 1; |
| | | if (CountDel[i].Box_Piece__c == '盒') { |
| | | Jstage.Boxnumber = Jstage.Boxnumber + 1; |
| | | } else if (CountDel[i].Box_Piece__c == '个') { |
| | | Jstage.Piecenumber = Jstage.Piecenumber + 1; |
| | | } |
| | | if (CountDel[i].hospitalSpecialOffer__c) { |
| | | Jstage.hospitalSpecialOffer = true; |
| | | } else { |
| | | Jstage.hospitalSpecialOffer = false; |
| | | } |
| | | if (HosProMap.containsKey(Jstage.Prod.Id)) { |
| | | Jstage.hosPro = true; |
| | | } |
| | | MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage); |
| | | } else { |
| | | //midmap2中没有对应的产品 |
| | | ConsumableorderdetailsInfo Jstage = MidMap.get(CountDel[i].Consumable_Product__c).clone(); |
| | | Jstage.allnumber = Jstage.allnumber + 1; |
| | | if (CountDel[i].Box_Piece__c == '盒') { |
| | | Jstage.Boxnumber = Jstage.Boxnumber + 1; |
| | | } else if (CountDel[i].Box_Piece__c == '个') { |
| | | Jstage.Piecenumber = Jstage.Piecenumber + 1; |
| | | } |
| | | |
| | | if (CountDel[i].hospitalSpecialOffer__c) { |
| | | Jstage.hospitalSpecialOffer = true; |
| | | } else { |
| | | Jstage.hospitalSpecialOffer = false; |
| | | } |
| | | if (HosProMap.containsKey(Jstage.Prod.Id)) { |
| | | Jstage.hosPro = true; |
| | | } |
| | | Jstage.BoxPiece = CountDel[i].Box_Piece__c; |
| | | MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //再把map里的值从新赋给ConsumableorderdetailsRecords |
| | | //update by rentx 2021-01-29 |
| | | // for(ConsumableorderdetailsInfo bss : MidMap.values()){ |
| | | for (ConsumableorderdetailsInfo bss : MidMap2.values()) { |
| | | //update by rentx 2021-01-29 |
| | | |
| | | //if(bss.allnumber>0){ |
| | | bss.packinglist = Integer.valueOf(bss.Prod.Product2__r.Packing_list_manual__c); |
| | | bss.approbation_No = bss.Prod.Product2__r.SFDA_Approbation_No__c; |
| | | bss.expiration_Date = bss.Prod.Product2__r.SFDA_Expiration_Date__c; |
| | | |
| | | //update by rentx 2021-2-26 start |
| | | if (cocMap.containsKey(bss.Prod.Id + 'ishos') && bss.hospitalSpecialOffer == true) { |
| | | consumableorderdetailsSelectRecords.add(bss); |
| | | } else if (cocMap.containsKey(bss.Prod.Id + 'nothos') && bss.hospitalSpecialOffer == false) { |
| | | consumableorderdetailsSelectRecords.add(bss); |
| | | } |
| | | // consumableorderdetailsSelectRecords.add(bss); |
| | | //} |
| | | } |
| | | // return null; |
| | | Integer ishosnum = 0; |
| | | for (ConsumableorderdetailsInfo ass : consumableorderdetailsSelectRecords) { |
| | | //ass.sortBy = sortOrderAsc; |
| | | for (Consumable_Orderdetails__c cdc1 : consumableorderdetailsSelected) { |
| | | //update by rentx 2012-3-1 start |
| | | // if(ass.prod.Id == cdc1.Consumable_Product__c){ |
| | | // ass.check = true; |
| | | // ass.orderdetails1 = cdc1; |
| | | // } |
| | | if (ass.Prod.Id == cdc1.Consumable_Product__c && ass.hospitalSpecialOffer == cdc1.isOutPattern__c) { |
| | | ass.check = true; |
| | | ass.orderdetails1 = cdc1; |
| | | } |
| | | //update by rentx 2012-3-1 end |
| | | } |
| | | |
| | | if (ass.hospitalSpecialOffer == true) { |
| | | ishosnum = ishosnum + 1; |
| | | } |
| | | } |
| | | |
| | | if (ishosnum > 0) { |
| | | hasHosPro = true; |
| | | } else { |
| | | hasHosPro = false; |
| | | } |
| | | |
| | | consumableorderdetailsSelectRecords.sort(); |
| | | //add by rentx |
| | | noOfRecords = consumableorderdetailsSelectRecords.size(); |
| | | //add by rentx |
| | | System.debug('makepagerecords4'); |
| | | makepagerecords(); |
| | | |
| | | // 消耗品明细2を取得 |
| | | consumableorderdetails2RecordsList = [ |
| | | SELECT |
| | | Id, |
| | | Name, |
| | | SerialLotNo__c, |
| | | Consumable_Product__r.Name__c, |
| | | TracingCode__c, |
| | | Sterilization_limit__c, |
| | | Consumable_Product__c, |
| | | Consumable_Product__r.Name, |
| | | Consumable_Product__r.Category3__c, |
| | | Consumable_Product__r.Category4__c, |
| | | Consumable_Product__r.Category5__c, |
| | | Return_date__c, |
| | | Invoice_Date__c, |
| | | Box_Piece__c, |
| | | ProductPacking_list_manual__c, |
| | | //add by rentx start |
| | | hospitalSpecialOffer__c |
| | | //add by rentx end |
| | | |
| | | FROM Consumable_order_details2__c |
| | | WHERE Consumable_ZS_order__c = :ESetId |
| | | ORDER BY Name |
| | | ]; |
| | | for (Integer i = 0; i < consumableorderdetails2RecordsList.size(); i++) { |
| | | consumableorderdetails2Records.add(new ConsumableorderdetailsInfo(consumableorderdetails2RecordsList[i])); |
| | | } |
| | | } |
| | | } |
| | | //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'test++++++' + SecondDealer)); |
| | | 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 { |
| | | str = 'notHos'; |
| | | } |
| | | //明细2对应的产品存在于MidMap中 |
| | | if (MidMap.containsKey(CountDel[i].Consumable_Product__c)) { |
| | | //设置map中key的后缀 用于区分医院特价和非医院特价 |
| | | if ( |
| | | MidMap2.containsKey(CountDel[i].Consumable_Product__c + str) |
| | | ) { |
| | | ConsumableorderdetailsInfo Jstage = MidMap2.get( |
| | | CountDel[i].Consumable_Product__c + str |
| | | ); |
| | | Jstage.allnumber = Jstage.allnumber + 1; |
| | | if (CountDel[i].Box_Piece__c == '盒') { |
| | | Jstage.Boxnumber = Jstage.Boxnumber + 1; |
| | | } else if (CountDel[i].Box_Piece__c == '个') { |
| | | Jstage.Piecenumber = Jstage.Piecenumber + 1; |
| | | provinceOpts.add(new SelectOption('', '-无-')); |
| | | provinceOptsMap.put('', '-无-'); |
| | | for (Integer i = 0; i < Dealerelationship.size(); i++) { |
| | | if (Dealerelationship[i].Dealer_subordinate__c == 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); |
| | | } |
| | | } |
| | | if (CountDel[i].hospitalSpecialOffer__c) { |
| | | Jstage.hospitalSpecialOffer = true; |
| | | } else { |
| | | Jstage.hospitalSpecialOffer = false; |
| | | for (Integer i = 0; i < Dealerelationship.size(); i++) { |
| | | if (Dealerelationship[i].Dealer_subordinate__c != 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); |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (HosProMap.containsKey(Jstage.Prod.Id)) { |
| | | Jstage.hosPro = true; |
| | | Schema.DescribeFieldResult dfr = Product2__c.Intra_Trade_List_RMB__c.getDescribe(); |
| | | cansee = dfr.isAccessible(); |
| | | Schema.DescribeFieldResult dealerPrice = Consumable_orderdetails__c.Dealer_Custom_Price__c.getDescribe(); |
| | | dealerPricesee = dealerPrice.isAccessible(); |
| | | // 显示数据条数信息 |
| | | // makeMessage(); |
| | | //附件 |
| | | attachmentinfo = [SELECT Id, Name, OwnerId FROM Attachment WHERE parentid = :ESetId]; |
| | | if (attachmentinfo.size() > 0) { |
| | | for (Integer i = 0; i < attachmentinfo.size(); i++) { |
| | | attachmentRecoeds.add(new ConsumableorderdetailsInfo(attachmentinfo[i])); |
| | | } |
| | | MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage); |
| | | } else { |
| | | //midmap2中没有对应的产品 |
| | | ConsumableorderdetailsInfo Jstage = MidMap.get( |
| | | CountDel[i].Consumable_Product__c |
| | | ) |
| | | .clone(); |
| | | Jstage.allnumber = Jstage.allnumber + 1; |
| | | if (CountDel[i].Box_Piece__c == '盒') { |
| | | Jstage.Boxnumber = Jstage.Boxnumber + 1; |
| | | } else if (CountDel[i].Box_Piece__c == '个') { |
| | | Jstage.Piecenumber = Jstage.Piecenumber + 1; |
| | | } |
| | | if (CountDel[i].hospitalSpecialOffer__c) { |
| | | Jstage.hospitalSpecialOffer = true; |
| | | } else { |
| | | Jstage.hospitalSpecialOffer = false; |
| | | } |
| | | if (HosProMap.containsKey(Jstage.Prod.Id)) { |
| | | Jstage.hosPro = true; |
| | | } |
| | | //Jstage.BoxPiece = CountDel[i].Box_Piece__c; |
| | | MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage); |
| | | } |
| | | } |
| | | } |
| | | //update by rentx 2021-01-29 |
| | | consumableorderdetailsSelectRecords = new List<ConsumableorderdetailsInfo>(); |
| | | //再把map里的值从新赋给ConsumableorderdetailsRecords |
| | | //update by rentx 2021-01-29 |
| | | // for(ConsumableorderdetailsInfo bss : MidMap.values()){ |
| | | for (ConsumableorderdetailsInfo bss : MidMap2.values()) { |
| | | //update by rentx 2021-01-29 |
| | | AggregateResult[] categoryList = [ |
| | | SELECT Count(id), Category3_text__c c3c |
| | | FROM Product2__c |
| | | WHERE Category3_text__c != NULL |
| | | GROUP BY Category3_text__c |
| | | ]; |
| | | |
| | | //if(bss.allnumber > 0){ |
| | | //bss.UnitpriceToagency = bss.orderdetails1.Unitprice_To_agency__c == null || bss.orderdetails1.Unitprice_To_agency__c == 0 ? '' :bss.orderdetails1.Unitprice_To_agency__c.format(); |
| | | bss.packinglist = Integer.valueOf( |
| | | bss.Prod.Product2__r.Packing_list_manual__c |
| | | ); |
| | | bss.approbation_No = bss.Prod.Product2__r.SFDA_Approbation_No__c; |
| | | bss.expiration_Date = bss.Prod.Product2__r.SFDA_Expiration_Date__c; |
| | | |
| | | //update by rentx 2021-2-26 start |
| | | if ( |
| | | cocMap.containsKey(bss.Prod.Id + 'ishos') && |
| | | bss.hospitalSpecialOffer == true |
| | | ) { |
| | | consumableorderdetailsSelectRecords.add(bss); |
| | | } else if ( |
| | | cocMap.containsKey(bss.Prod.Id + 'nothos') && |
| | | bss.hospitalSpecialOffer == false |
| | | ) { |
| | | consumableorderdetailsSelectRecords.add(bss); |
| | | } |
| | | //update by rentx 2021-2-26 end |
| | | // consumableorderdetailsSelectRecords.add(bss); |
| | | //} |
| | | } |
| | | Integer ishosnum = 0; |
| | | for ( |
| | | ConsumableorderdetailsInfo ass : consumableorderdetailsSelectRecords |
| | | ) { |
| | | for ( |
| | | Consumable_Orderdetails__c cdc1 : consumableorderdetailsSelected |
| | | ) { |
| | | //update by rentx 2012-3-1 start |
| | | // if(ass.prod.Id == cdc1.Consumable_Product__c){ |
| | | // ass.check = true; |
| | | // ass.orderdetails1 = cdc1; |
| | | // } |
| | | if ( |
| | | ass.Prod.Id == cdc1.Consumable_Product__c && |
| | | ass.hospitalSpecialOffer == cdc1.isOutPattern__c |
| | | ) { |
| | | ass.check = true; |
| | | ass.orderdetails1 = cdc1; |
| | | } |
| | | //update by rentx 2012-3-1 end |
| | | } |
| | | if (ass.hospitalSpecialOffer == true) { |
| | | ishosnum = ishosnum + 1; |
| | | } |
| | | } |
| | | if (ishosnum > 0) { |
| | | hasHosPro = true; |
| | | } else { |
| | | hasHosPro = false; |
| | | } |
| | | |
| | | //add by rentx |
| | | noOfRecords = consumableorderdetailsSelectRecords.size(); |
| | | //add by rentx |
| | | System.debug('makepagerecords3'); |
| | | makepagerecords(); |
| | | //listCut(); |
| | | // 消耗品明细2を取得 |
| | | consumableorderdetails2RecordsList = [ |
| | | SELECT |
| | | Id, |
| | | Name, |
| | | SerialLotNo__c, |
| | | Consumable_Product__r.Name__c, |
| | | TracingCode__c, |
| | | Sterilization_limit__c, |
| | | Consumable_Product__c, |
| | | Consumable_Product__r.Name, |
| | | Consumable_Product__r.Category3__c, |
| | | Consumable_Product__r.Category4__c, |
| | | Consumable_Product__r.Category5__c, |
| | | Return_date__c, |
| | | Invoice_Date__c, |
| | | Box_Piece__c, |
| | | ProductPacking_list_manual__c, |
| | | //add by rentx start |
| | | hospitalSpecialOffer__c |
| | | //add by rentx end |
| | | FROM Consumable_order_details2__c |
| | | WHERE Consumable_ZS_order__c = :ESetId |
| | | ORDER BY Name |
| | | ]; |
| | | for ( |
| | | Integer i = 0; i < consumableorderdetails2RecordsList.size(); i++ |
| | | ) { |
| | | consumableorderdetails2Records.add( |
| | | new ConsumableorderdetailsInfo( |
| | | consumableorderdetails2RecordsList[i] |
| | | ) |
| | | ); |
| | | } |
| | | //产品明细取得 |
| | | consumablearriveproductdetailsSelected = [ |
| | | SELECT |
| | | Id, |
| | | Delivery_List_RMB__c, |
| | | Consumable_Product__r.Name__c, |
| | | Name, |
| | | Consumable_Product__r.SFDA_Status__c, |
| | | Consumable_Product__r.Category3__c, |
| | | Consumable_Product__r.Category4__c, |
| | | Consumable_Product__r.Category5__c, |
| | | Consumable_Product__c, |
| | | Consumable_Product__r.Name, |
| | | Sterilization_limit__c, |
| | | Consumable_Product__r.Intra_Trade_List_RMB__c, |
| | | Consumable_Product__r.Asset_Model_No__c, |
| | | Box_Piece__c, |
| | | ProductPacking_list_manual__c, |
| | | //add by rentx start |
| | | hospitalSpecialOffer__c |
| | | //add by rentx end |
| | | FROM Consumable_order_details2__c |
| | | WHERE Consumable_ZS_order__c = :ESetId |
| | | ORDER BY Name |
| | | ]; |
| | | for ( |
| | | Integer i = 0; |
| | | i < consumablearriveproductdetailsSelected.size(); |
| | | i++ |
| | | ) { |
| | | consumableproductdetailsRecords.add( |
| | | new ConsumableorderdetailsInfo( |
| | | consumablearriveproductdetailsSelected[i] |
| | | ) |
| | | ); |
| | | } |
| | | } else { |
| | | // 不是到货订单来的时候 |
| | | if ( |
| | | coc.SummonsStatus_c__c == '已提交' || |
| | | coc.SummonsStatus_c__c == '批准' |
| | | ) { |
| | | system.debug('coc.SummonsStatus_c__c : ' + coc.SummonsStatus_c__c); |
| | | saveBtnDisabled = true; |
| | | SorderBtnDisabled = true; |
| | | EditDelCommitBtnDisabled = false; |
| | | } |
| | | //医院二级经销商分类 |
| | | Integer io = 0; |
| | | while (io < Dealerelationship.size()) { |
| | | if ( |
| | | coc.Order_ForDealer__c == |
| | | Dealerelationship[io].Dealer_subordinate__c |
| | | ) { |
| | | SecondDealer = Dealerelationship[io].Dealer_subordinate__c; |
| | | coc.Order_ForDealer__c = null; |
| | | io = io + Dealerelationship.size(); |
| | | } |
| | | io++; |
| | | } |
| | | Integer ik = 0; |
| | | while (ik < AgencyHospitalLink.size()) { |
| | | if ( |
| | | coc.Order_ForHospital__c == AgencyHospitalLink[ik].Hospital__c |
| | | ) { |
| | | HospitalInfo = AgencyHospitalLink[ik].Hospital__c; |
| | | HospitalName = AgencyHospitalLink[ik].Hospital__r.Name; |
| | | coc.Order_ForHospital__c = null; |
| | | ik = ik + AgencyHospitalLink.size(); |
| | | } |
| | | ik++; |
| | | } |
| | | // 消耗品明细1を取得 |
| | | consumableorderdetailsSelected = [ |
| | | SELECT |
| | | Id, |
| | | Dealer_Custom_Price__c, |
| | | Delivery_List_RMB__c, |
| | | Consumable_Product__r.Name__c, |
| | | Consumable_Product__r.SFDA_Status__c, |
| | | Name, |
| | | Consumable_order__c, |
| | | Consumable_Product__c, |
| | | Consumable_Product__r.Name, |
| | | Shipment_Count__c, |
| | | Consumable_Product__r.Intra_Trade_List_RMB__c, |
| | | Consumable_Product__r.Asset_Model_No__c, |
| | | Shipment_amount__c, |
| | | Box_Piece__c, |
| | | ProductPacking_list_manual__c, |
| | | Invoiced_Procount__c, |
| | | RrturnPro_count__c, |
| | | //Unitprice_To_agency__c, |
| | | InvoiceProNot_count__c, |
| | | Consumable_Product__r.Category3__c, |
| | | Consumable_Product__r.Category4__c, |
| | | Consumable_Product__r.Category5__c, |
| | | Consumable_Product__r.Product2__r.SFDA_Approbation_No__c, |
| | | Consumable_Product__r.Product2__r.SFDA_Expiration_Date__c, |
| | | isOutPattern__c |
| | | FROM Consumable_orderdetails__c |
| | | WHERE |
| | | Consumable_order__c = :ESetId |
| | | AND Consumable_order__r.Order_Owner_WorkLocal__c = :userWorkLocation |
| | | ORDER BY Name |
| | | ]; |
| | | //add by rentx 202-2-26 |
| | | Map<String, Consumable_Orderdetails__c> cocMap = new Map<String, Consumable_Orderdetails__c>(); |
| | | |
| | | for ( |
| | | Consumable_Orderdetails__c cdc1 : consumableorderdetailsSelected |
| | | ) { |
| | | sumPrice += cdc1.Shipment_amount__c; |
| | | orderzaikuId.add(cdc1.Consumable_Product__c); |
| | | //add by rentx 2021-2-26 |
| | | String tempId = cdc1.Consumable_product__c; |
| | | if (cdc1.isOutPattern__c) { |
| | | cocMap.put(tempId + 'ishos', cdc1); |
| | | } else { |
| | | cocMap.put(tempId + 'nothos', cdc1); |
| | | } |
| | | //add by rentx 2021-2-26 |
| | | } |
| | | |
| | | String msoql = makeSoqlorderdet(); |
| | | product2Selected = Database.query(msoql); |
| | | size = product2Selected.size(); |
| | | initStandardController(msoql); |
| | | for (Integer i = 0; i < product2Selected.size(); i++) { |
| | | MidMap.put( |
| | | product2Selected[i].Id, |
| | | new ConsumableorderdetailsInfo(product2Selected[i]) |
| | | ); |
| | | } |
| | | |
| | | for (Integer i = 0; i < CountDel.size(); i++) { |
| | | String str = ''; |
| | | if (CountDel[i].hospitalSpecialOffer__c) { |
| | | str = 'isHos'; |
| | | } else { |
| | | str = 'notHos'; |
| | | } |
| | | //明细2对应的产品存在于MidMap中 |
| | | if (MidMap.containsKey(CountDel[i].Consumable_Product__c)) { |
| | | //设置map中key的后缀 用于区分医院特价和非医院特价 |
| | | if ( |
| | | MidMap2.containsKey(CountDel[i].Consumable_Product__c + str) |
| | | ) { |
| | | ConsumableorderdetailsInfo Jstage = MidMap2.get( |
| | | CountDel[i].Consumable_Product__c + str |
| | | ); |
| | | Jstage.allnumber = Jstage.allnumber + 1; |
| | | if (CountDel[i].Box_Piece__c == '盒') { |
| | | Jstage.Boxnumber = Jstage.Boxnumber + 1; |
| | | } else if (CountDel[i].Box_Piece__c == '个') { |
| | | Jstage.Piecenumber = Jstage.Piecenumber + 1; |
| | | } |
| | | if (CountDel[i].hospitalSpecialOffer__c) { |
| | | Jstage.hospitalSpecialOffer = true; |
| | | } else { |
| | | Jstage.hospitalSpecialOffer = false; |
| | | } |
| | | if (HosProMap.containsKey(Jstage.Prod.Id)) { |
| | | Jstage.hosPro = true; |
| | | } |
| | | MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage); |
| | | } else { |
| | | //midmap2中没有对应的产品 |
| | | ConsumableorderdetailsInfo Jstage = MidMap.get( |
| | | CountDel[i].Consumable_Product__c |
| | | ) |
| | | .clone(); |
| | | Jstage.allnumber = Jstage.allnumber + 1; |
| | | if (CountDel[i].Box_Piece__c == '盒') { |
| | | Jstage.Boxnumber = Jstage.Boxnumber + 1; |
| | | } else if (CountDel[i].Box_Piece__c == '个') { |
| | | Jstage.Piecenumber = Jstage.Piecenumber + 1; |
| | | } |
| | | |
| | | if (CountDel[i].hospitalSpecialOffer__c) { |
| | | Jstage.hospitalSpecialOffer = true; |
| | | } else { |
| | | Jstage.hospitalSpecialOffer = false; |
| | | } |
| | | if (HosProMap.containsKey(Jstage.Prod.Id)) { |
| | | Jstage.hosPro = true; |
| | | } |
| | | Jstage.BoxPiece = CountDel[i].Box_Piece__c; |
| | | MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //再把map里的值从新赋给ConsumableorderdetailsRecords |
| | | //update by rentx 2021-01-29 |
| | | // for(ConsumableorderdetailsInfo bss : MidMap.values()){ |
| | | for (ConsumableorderdetailsInfo bss : MidMap2.values()) { |
| | | //update by rentx 2021-01-29 |
| | | |
| | | //if(bss.allnumber>0){ |
| | | bss.packinglist = Integer.valueOf( |
| | | bss.Prod.Product2__r.Packing_list_manual__c |
| | | ); |
| | | bss.approbation_No = bss.Prod.Product2__r.SFDA_Approbation_No__c; |
| | | bss.expiration_Date = bss.Prod.Product2__r.SFDA_Expiration_Date__c; |
| | | |
| | | //update by rentx 2021-2-26 start |
| | | if ( |
| | | cocMap.containsKey(bss.Prod.Id + 'ishos') && |
| | | bss.hospitalSpecialOffer == true |
| | | ) { |
| | | consumableorderdetailsSelectRecords.add(bss); |
| | | } else if ( |
| | | cocMap.containsKey(bss.Prod.Id + 'nothos') && |
| | | bss.hospitalSpecialOffer == false |
| | | ) { |
| | | consumableorderdetailsSelectRecords.add(bss); |
| | | } |
| | | // consumableorderdetailsSelectRecords.add(bss); |
| | | //} |
| | | } |
| | | // return null; |
| | | Integer ishosnum = 0; |
| | | for ( |
| | | ConsumableorderdetailsInfo ass : consumableorderdetailsSelectRecords |
| | | ) { |
| | | //ass.sortBy = sortOrderAsc; |
| | | for ( |
| | | Consumable_Orderdetails__c cdc1 : consumableorderdetailsSelected |
| | | ) { |
| | | //update by rentx 2012-3-1 start |
| | | // if(ass.prod.Id == cdc1.Consumable_Product__c){ |
| | | // ass.check = true; |
| | | // ass.orderdetails1 = cdc1; |
| | | // } |
| | | if ( |
| | | ass.Prod.Id == cdc1.Consumable_Product__c && |
| | | ass.hospitalSpecialOffer == cdc1.isOutPattern__c |
| | | ) { |
| | | ass.check = true; |
| | | ass.orderdetails1 = cdc1; |
| | | } |
| | | //update by rentx 2012-3-1 end |
| | | categoryOptionList = new List<SelectOption>(); |
| | | categoryOptionList.add(new SelectOption('', '-无-')); |
| | | categoryOptionMap = new Map<String, String>(); |
| | | categoryOptionMap.put('', '-无-'); |
| | | for (AggregateResult category3Search : categoryList) { |
| | | String deliverycnt = String.valueOf(category3Search.get('c3c')); |
| | | categoryOptionList.add(new SelectOption(deliverycnt, deliverycnt)); |
| | | categoryOptionMap.put(deliverycnt, deliverycnt); |
| | | } |
| | | |
| | | if (ass.hospitalSpecialOffer == true) { |
| | | ishosnum = ishosnum + 1; |
| | | } |
| | | } |
| | | |
| | | if (ishosnum > 0) { |
| | | hasHosPro = true; |
| | | } else { |
| | | hasHosPro = false; |
| | | } |
| | | |
| | | consumableorderdetailsSelectRecords.sort(); |
| | | //add by rentx |
| | | noOfRecords = consumableorderdetailsSelectRecords.size(); |
| | | //add by rentx |
| | | System.debug('makepagerecords4'); |
| | | makepagerecords(); |
| | | |
| | | // 消耗品明细2を取得 |
| | | consumableorderdetails2RecordsList = [ |
| | | SELECT |
| | | Id, |
| | | Name, |
| | | SerialLotNo__c, |
| | | Consumable_Product__r.Name__c, |
| | | TracingCode__c, |
| | | Sterilization_limit__c, |
| | | Consumable_Product__c, |
| | | Consumable_Product__r.Name, |
| | | Consumable_Product__r.Category3__c, |
| | | Consumable_Product__r.Category4__c, |
| | | Consumable_Product__r.Category5__c, |
| | | Return_date__c, |
| | | Invoice_Date__c, |
| | | Box_Piece__c, |
| | | ProductPacking_list_manual__c, |
| | | //add by rentx start |
| | | hospitalSpecialOffer__c |
| | | //add by rentx end |
| | | |
| | | FROM Consumable_order_details2__c |
| | | WHERE Consumable_ZS_order__c = :ESetId |
| | | ORDER BY Name |
| | | ]; |
| | | for ( |
| | | Integer i = 0; i < consumableorderdetails2RecordsList.size(); i++ |
| | | ) { |
| | | consumableorderdetails2Records.add( |
| | | new ConsumableorderdetailsInfo( |
| | | consumableorderdetails2RecordsList[i] |
| | | ) |
| | | ); |
| | | } |
| | | } |
| | | } |
| | | //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'test++++++' + SecondDealer)); |
| | | 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__c == 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 |
| | | ); |
| | | } |
| | | } |
| | | for (Integer i = 0; i < Dealerelationship.size(); i++) { |
| | | if (Dealerelationship[i].Dealer_subordinate__c != 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 |
| | | ); |
| | | } |
| | | } |
| | | } |
| | | |
| | | Schema.DescribeFieldResult dfr = Product2__c.Intra_Trade_List_RMB__c.getDescribe(); |
| | | cansee = dfr.isAccessible(); |
| | | Schema.DescribeFieldResult dealerPrice = Consumable_orderdetails__c.Dealer_Custom_Price__c.getDescribe(); |
| | | dealerPricesee = dealerPrice.isAccessible(); |
| | | // 显示数据条数信息 |
| | | // makeMessage(); |
| | | //附件 |
| | | attachmentinfo = [ |
| | | SELECT Id, Name, OwnerId |
| | | FROM Attachment |
| | | WHERE parentid = :ESetId |
| | | ]; |
| | | if (attachmentinfo.size() > 0) { |
| | | for (Integer i = 0; i < attachmentinfo.size(); i++) { |
| | | attachmentRecoeds.add( |
| | | new ConsumableorderdetailsInfo(attachmentinfo[i]) |
| | | ); |
| | | } |
| | | } |
| | | AggregateResult[] categoryList = [ |
| | | SELECT Count(id), Category3_text__c c3c |
| | | FROM Product2__c |
| | | WHERE Category3_text__c != NULL |
| | | GROUP BY Category3_text__c |
| | | ]; |
| | | |
| | | categoryOptionList = new List<SelectOption>(); |
| | | categoryOptionList.add(new SelectOption('', '-无-')); |
| | | categoryOptionMap = new Map<String, String>(); |
| | | categoryOptionMap.put('', '-无-'); |
| | | for (AggregateResult category3Search : categoryList) { |
| | | String deliverycnt = String.valueOf(category3Search.get('c3c')); |
| | | categoryOptionList.add(new SelectOption(deliverycnt, deliverycnt)); |
| | | categoryOptionMap.put(deliverycnt, deliverycnt); |
| | | } |
| | | |
| | | category4OptionList = new List<SelectOption>(); |
| | | category4OptionList.add(new SelectOption('', '-无-')); |
| | | category4OptionMap = new Map<String, String>(); |
| | | category4OptionMap.put('', '-无-'); |
| | | /*for(AggregateResult category4Search : category4List) { |
| | | category4OptionList = new List<SelectOption>(); |
| | | category4OptionList.add(new SelectOption('', '-无-')); |
| | | category4OptionMap = new Map<String, String>(); |
| | | category4OptionMap.put('', '-无-'); |
| | | /*for(AggregateResult category4Search : category4List) { |
| | | String deliverycnt4 = String.valueOf(category4Search.get('c4c')); |
| | | category4OptionList.add(new SelectOption(deliverycnt4,deliverycnt4)); |
| | | }*/ |
| | | |
| | | category5OptionList = new List<SelectOption>(); |
| | | category5OptionList.add(new SelectOption('', '-无-')); |
| | | category5OptionMap = new Map<String, String>(); |
| | | category5OptionMap.put('', '-无-'); |
| | | category5OptionList = new List<SelectOption>(); |
| | | category5OptionList.add(new SelectOption('', '-无-')); |
| | | category5OptionMap = new Map<String, String>(); |
| | | category5OptionMap.put('', '-无-'); |
| | | |
| | | //分页 |
| | | PaginatedAccounts paginatedAccounts = new PaginatedAccounts(); |
| | | totalCount = pageRecords.size(); |
| | | System.debug('pageToken = ' + pageToken); |
| | | System.debug('pageSize = ' + pageSize); |
| | | System.debug('totalCount = ' + totalCount); |
| | | paginatedAccounts.nextPageToken = (pageToken + pageSize < totalCount) |
| | | ? pageToken + pageSize |
| | | : null; |
| | | System.debug( |
| | | 'paginatedAccounts.nextPageToken = ' + paginatedAccounts.nextPageToken |
| | | ); |
| | | paginatedAccounts.recordStart = pageToken + 1; |
| | | paginatedAccounts.pageNumber = pageToken / pageSize + 1; |
| | | Integer recordEnd = pageSize * paginatedAccounts.pageNumber; |
| | | paginatedAccounts.recordEnd = totalCount >= recordEnd |
| | | ? recordEnd |
| | | : totalCount; |
| | | paginatedAccounts.totalRecords = totalCount; |
| | | //分页 |
| | | PaginatedAccounts paginatedAccounts = new PaginatedAccounts(); |
| | | totalCount = pageRecords.size(); |
| | | System.debug('pageToken = ' + pageToken); |
| | | System.debug('pageSize = ' + pageSize); |
| | | System.debug('totalCount = ' + totalCount); |
| | | paginatedAccounts.nextPageToken = (pageToken + pageSize < totalCount) ? pageToken + pageSize : null; |
| | | System.debug('paginatedAccounts.nextPageToken = ' + paginatedAccounts.nextPageToken); |
| | | paginatedAccounts.recordStart = pageToken + 1; |
| | | paginatedAccounts.pageNumber = pageToken / pageSize + 1; |
| | | Integer recordEnd = pageSize * paginatedAccounts.pageNumber; |
| | | paginatedAccounts.recordEnd = totalCount >= recordEnd ? recordEnd : totalCount; |
| | | paginatedAccounts.totalRecords = totalCount; |
| | | |
| | | Integer startIdx; |
| | | Integer endIdx; |
| | | startIdx = pageToken; |
| | | endIdx = pageToken + pageSize; |
| | | List<ConsumableorderdetailsInfo> pageRecordsTemp = new List<ConsumableorderdetailsInfo>(); |
| | | if (endIdx > pageRecords.size()) { |
| | | endIdx = pageRecords.size(); |
| | | } |
| | | for (Integer i = startIdx; i < endIdx; i++) { |
| | | pageRecordsTemp.add(pageRecords.get(i)); |
| | | } |
| | | |
| | | Boolean Existarrive = (coc.Arrive_Order__c != null); |
| | | String ConsumableOut_report = System.Label.ConsumableOut_report; |
| | | System.debug( |
| | | 'consumableproductdetailsRecords = ' + consumableproductdetailsRecords |
| | | ); |
| | | |
| | | data.put('paginatedAccounts', paginatedAccounts); |
| | | data.put('ConsumableOut_report', ConsumableOut_report); |
| | | data.put('accountid', accountid); |
| | | data.put( |
| | | 'consumableproductdetailsRecords', |
| | | consumableproductdetailsRecords |
| | | ); |
| | | data.put('agencyProType', agencyProType); |
| | | data.put('accountName', accountName); |
| | | data.put('userWorkLocation', userWorkLocation); |
| | | data.put('categoryOptionMap', categoryOptionMap); |
| | | data.put('category4OptionMap', category4OptionMap); |
| | | data.put('category5OptionMap', category5OptionMap); |
| | | data.put('outOutPatternOptionMap', outOutPatternOptionMap); |
| | | data.put('hasHosPro', hasHosPro); |
| | | data.put('Existarrive', Existarrive); |
| | | data.put('sumPrice', sumPrice); |
| | | data.put('HospitalName', HospitalName); |
| | | data.put('provinceOptsMap', provinceOptsMap); |
| | | data.put('SummonsFlag', SummonsFlag); |
| | | data.put('EditDelCommitBtnDisabled', EditDelCommitBtnDisabled); |
| | | data.put('EditAble', EditAble); |
| | | data.put('coc', coc); |
| | | data.put('pageRecords', pageRecordsTemp); |
| | | data.put('arriveorder', arriveorder); |
| | | data.put('consumableorderdetails2Count', consumableorderdetails2Count); |
| | | data.put( |
| | | 'consumableorderdetails2Records', |
| | | consumableorderdetails2Records |
| | | ); |
| | | data.put('HospitalInfo', HospitalInfo); |
| | | res.status = 'Success'; |
| | | res.code = 200; |
| | | System.debug('res = ' + res); |
| | | return res; |
| | | } catch (Exception e) { |
| | | return new ResponseBodyLWC( |
| | | 'Error', |
| | | 500, |
| | | e.getMessage() + e.getLineNumber(), |
| | | '' |
| | | ); |
| | | } |
| | | } |
| | | |
| | | @AuraEnabled |
| | | public static ResponseBodyLWC categoryAllload(String category3Lwc) { |
| | | ResponseBodyLWC res = new ResponseBodyLWC(); |
| | | Map<String, object> data = new Map<String, object>(); |
| | | res.entity = data; |
| | | |
| | | category3 = category3Lwc; |
| | | AggregateResult[] category4List = [ |
| | | SELECT Count(id), Category4_text__c c4c |
| | | FROM Product2__c |
| | | WHERE |
| | | Category3_text__c = :category3 |
| | | AND Category4_text__c != NULL |
| | | AND Category5_text__c != NULL |
| | | GROUP BY Category4_text__c |
| | | ]; |
| | | category4OptionList = new List<SelectOption>(); |
| | | category4OptionList.add(new SelectOption('', '-无-')); |
| | | category4OptionMap = new Map<String, String>(); |
| | | category4OptionMap.put('', '-无-'); |
| | | for (AggregateResult category4Search : category4List) { |
| | | String deliverycnt4 = String.valueOf(category4Search.get('c4c')); |
| | | category4OptionList.add(new SelectOption(deliverycnt4, deliverycnt4)); |
| | | category4OptionMap.put(deliverycnt4, deliverycnt4); |
| | | } |
| | | |
| | | AggregateResult[] category5List = [ |
| | | SELECT Count(id), Category5_text__c c5c |
| | | FROM Product2__c |
| | | WHERE |
| | | Category3_text__c = :category3 |
| | | AND Category4_text__c != NULL |
| | | AND Category5_text__c != NULL |
| | | GROUP BY Category5_text__c |
| | | ]; |
| | | |
| | | category5OptionList = new List<SelectOption>(); |
| | | category5OptionList.add(new SelectOption('', '-无-')); |
| | | category5OptionMap = new Map<String, String>(); |
| | | category5OptionMap.put('', '-无-'); |
| | | for (AggregateResult category5Search : category5List) { |
| | | String deliverycnt5 = String.valueOf(category5Search.get('c5c')); |
| | | category5OptionList.add(new SelectOption(deliverycnt5, deliverycnt5)); |
| | | category5OptionMap.put(deliverycnt5, deliverycnt5); |
| | | } |
| | | data.put('category4OptionMap', category4OptionMap); |
| | | data.put('category5OptionMap', category5OptionMap); |
| | | res.status = 'Success'; |
| | | res.code = 200; |
| | | System.debug('res = ' + res); |
| | | return res; |
| | | } |
| | | |
| | | @AuraEnabled |
| | | public static ResponseBodyLWC categoryload( |
| | | String category3Lwc, |
| | | String category4Lwc |
| | | ) { |
| | | ResponseBodyLWC res = new ResponseBodyLWC(); |
| | | Map<String, object> data = new Map<String, object>(); |
| | | res.entity = data; |
| | | |
| | | category3 = category3Lwc; |
| | | category4 = category4Lwc; |
| | | AggregateResult[] category4List = [ |
| | | SELECT Count(id), Category4_text__c c4c |
| | | FROM Product2__c |
| | | WHERE |
| | | Category3_text__c = :category3 |
| | | AND Category4_text__c != NULL |
| | | AND Category5_text__c != NULL |
| | | GROUP BY Category4_text__c |
| | | ]; |
| | | category4OptionList = new List<SelectOption>(); |
| | | category4OptionList.add(new SelectOption('', '-无-')); |
| | | category4OptionMap = new Map<String, String>(); |
| | | category4OptionMap.put('', '-无-'); |
| | | for (AggregateResult category4Search : category4List) { |
| | | String deliverycnt4 = String.valueOf(category4Search.get('c4c')); |
| | | category4OptionList.add(new SelectOption(deliverycnt4, deliverycnt4)); |
| | | category4OptionMap.put(deliverycnt4, deliverycnt4); |
| | | } |
| | | |
| | | AggregateResult[] category5List = [ |
| | | SELECT Count(id), Category5_text__c c5c |
| | | FROM Product2__c |
| | | WHERE |
| | | Category3_text__c = :category3 |
| | | AND Category4_text__c = :category4 |
| | | AND Category5_text__c != NULL |
| | | GROUP BY Category5_text__c |
| | | ]; |
| | | |
| | | category5OptionList = new List<SelectOption>(); |
| | | category5OptionList.add(new SelectOption('', '-无-')); |
| | | category5OptionMap = new Map<String, String>(); |
| | | category5OptionMap.put('', '-无-'); |
| | | for (AggregateResult category5Search : category5List) { |
| | | String deliverycnt5 = String.valueOf(category5Search.get('c5c')); |
| | | category5OptionList.add(new SelectOption(deliverycnt5, deliverycnt5)); |
| | | category5OptionMap.put(deliverycnt5, deliverycnt5); |
| | | } |
| | | data.put('category4OptionMap', category4OptionMap); |
| | | data.put('category5OptionMap', category5OptionMap); |
| | | res.status = 'Success'; |
| | | res.code = 200; |
| | | System.debug('res = ' + res); |
| | | return res; |
| | | } |
| | | |
| | | // 检索 |
| | | @AuraEnabled |
| | | public static ResponseBodyLWC searchConsumableorderdetails( |
| | | String agencyProTypeLwc, |
| | | String accountNameLwc, |
| | | String userWorkLocationLwc, |
| | | String outOutPattern, |
| | | String category1, |
| | | String category3, |
| | | String category4, |
| | | String category5, |
| | | Boolean editAbleLwc, |
| | | List<ConsumableorderdetailsInfoLwc> pageRecordsLwcLwc, |
| | | List<ConsumableorderdetailsInfo> consumableproductdetailsRecordsLwc, |
| | | String arriveorderLwc, |
| | | Integer pageSizeLWC, |
| | | Integer pageTokenLWC |
| | | ) { |
| | | consumableproductdetailsRecords = consumableproductdetailsRecordsLwc; |
| | | pageRecordsLwc = pageRecordsLwcLwc; |
| | | System.debug('pageRecordsLwc = ' + pageRecordsLwc); |
| | | arriveorder = arriveorderLwc; |
| | | accountName = accountNameLwc; |
| | | userWorkLocation = userWorkLocationLwc; |
| | | agencyProType = agencyProTypeLwc; |
| | | product2Selected = new List<Product2__c>(); |
| | | pagesize = pageSizeLWC; |
| | | pageToken = pageTokenLWC > 2000 ? 2000 : pageTokenLWC; |
| | | addSize = 0; |
| | | addData = new List<ConsumableorderdetailsInfo>(); |
| | | System.debug('start addData = ' + addData); |
| | | System.debug('accountName = ' + accountName); |
| | | System.debug('userWorkLocation = ' + userWorkLocation); |
| | | String sqlagencyProType = '%' + agencyProTypeLwc + '%'; |
| | | List<AggregateResult> orderdetailCount = [ |
| | | SELECT count(id), Consumable_Product__c cpc, Box_Piece__c |
| | | FROM Consumable_order_details2__c |
| | | WHERE |
| | | Dealer_Arrive__c = TRUE |
| | | AND Dealer_Shipment__c = FALSE |
| | | AND Dealer_Saled__c = FALSE |
| | | AND Lose_Flag__c = FALSE |
| | | AND Cancellation_Flag__c = FALSE |
| | | AND Bar_Code__c != NULL |
| | | AND Isoverdue__c = 1 |
| | | AND Product_Type__c LIKE :sqlagencyProType |
| | | AND Dealer_Info_text__c = :accountNameLwc |
| | | AND Arrive_Owner_Work_Location__c = :userWorkLocationLwc |
| | | GROUP BY Consumable_Product__c, Box_Piece__c |
| | | ]; |
| | | for (AggregateResult orderdetail : orderdetailCount) { |
| | | zaikuId.add(String.valueOf(orderdetail.get('cpc'))); |
| | | } |
| | | editAble = editAbleLwc; |
| | | ResponseBodyLWC res = new ResponseBodyLWC(); |
| | | Map<String, object> data = new Map<String, object>(); |
| | | res.entity = data; |
| | | SearchDone = 'SearchDone'; |
| | | Map<String, String> selectedIdMap = new Map<String, String>(); |
| | | List<ConsumableorderdetailsInfo> reSet = new List<ConsumableorderdetailsInfo>(); |
| | | Map<String, ConsumableorderdetailsInfo> MidMap = new Map<String, ConsumableorderdetailsInfo>(); |
| | | //update by rentx 2021-01-29 |
| | | Map<String, ConsumableorderdetailsInfo> MidMap2 = new Map<String, ConsumableorderdetailsInfo>(); |
| | | String countdelSoql = 'SELECT Id,Bar_Code__c,Name,Inventory_date__c,Consumable_Product__c,Consumable_Product__r.Asset_Model_No__c,Recordtypeid,Box_Piece__c,ProductPacking_list_manual__c,hospitalSpecialOffer__c FROM Consumable_order_details2__c WHERE Dealer_Arrive__c = true AND Dealer_Shipment__c = false AND Dealer_Saled__c = false AND Dealer_Returned__c = false AND Lose_Flag__c = false AND Bar_Code__c != null AND Isoverdue__c = 1 AND Arrive_Owner_Work_Location__c = :userWorkLocation AND Dealer_Info_text__c = :accountName '; |
| | | if (String.isNotBlank(outOutPattern) && outOutPattern.equals('ishos')) { |
| | | countdelSoql += ' AND hospitalSpecialOffer__c = true'; |
| | | } else if ( |
| | | String.isNotBlank(outOutPattern) && outOutPattern.equals('nothos') |
| | | ) { |
| | | countdelSoql += ' AND hospitalSpecialOffer__c = false'; |
| | | } |
| | | System.debug('countdelSoql = ' + countdelSoql); |
| | | List<Consumable_order_details2__c> CountDel = Database.query(countdelSoql); |
| | | System.debug('CountDel = ' + CountDel); |
| | | //update by rentx 2021-01-29 |
| | | |
| | | consumableorderdetailsSelectRecords = new List<ConsumableorderdetailsInfo>(); |
| | | //consumableorderdetailsSelectRecords = reSet; |
| | | String soql = makeSoql(category1, category3, category4, category5); |
| | | size = Integer.valueOf(System.Label.orderdetLimitsize); |
| | | initStandardController(soql); |
| | | System.debug('soql = ' + soql); |
| | | product2Selected = Database.query(soql); |
| | | for (Integer i = 0; i < product2Selected.size(); i++) { |
| | | MidMap.put( |
| | | product2Selected[i].Id, |
| | | new ConsumableorderdetailsInfo(product2Selected[i]) |
| | | ); |
| | | } |
| | | |
| | | for (Integer i = 0; i < CountDel.size(); i++) { |
| | | String str = ''; |
| | | if (CountDel[i].hospitalSpecialOffer__c) { |
| | | str = 'isHos'; |
| | | } else { |
| | | str = 'notHos'; |
| | | } |
| | | System.debug('MidMap = ' + MidMap); |
| | | //明细2对应的产品存在于MidMap中 |
| | | if (MidMap.containsKey(CountDel[i].Consumable_Product__c)) { |
| | | //设置map中key的后缀 用于区分医院特价和非医院特价 |
| | | if (MidMap2.containsKey(CountDel[i].Consumable_Product__c + str)) { |
| | | ConsumableorderdetailsInfo Jstage = MidMap2.get( |
| | | CountDel[i].Consumable_Product__c + str |
| | | ); |
| | | Jstage.allnumber = Jstage.allnumber + 1; |
| | | if (CountDel[i].Box_Piece__c == '盒') { |
| | | Jstage.Boxnumber = Jstage.Boxnumber + 1; |
| | | } else if (CountDel[i].Box_Piece__c == '个') { |
| | | Jstage.Piecenumber = Jstage.Piecenumber + 1; |
| | | } |
| | | if (CountDel[i].hospitalSpecialOffer__c) { |
| | | Jstage.hospitalSpecialOffer = true; |
| | | } else { |
| | | Jstage.hospitalSpecialOffer = false; |
| | | } |
| | | if (HosProMap.containsKey(Jstage.Prod.Id)) { |
| | | Jstage.hosPro = true; |
| | | } |
| | | MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage); |
| | | } else { |
| | | //midmap2中没有对应的产品 |
| | | ConsumableorderdetailsInfo Jstage = MidMap.get( |
| | | CountDel[i].Consumable_Product__c |
| | | ) |
| | | .clone(); |
| | | Jstage.allnumber = Jstage.allnumber + 1; |
| | | if (CountDel[i].Box_Piece__c == '盒') { |
| | | Jstage.Boxnumber = Jstage.Boxnumber + 1; |
| | | } else if (CountDel[i].Box_Piece__c == '个') { |
| | | Jstage.Piecenumber = Jstage.Piecenumber + 1; |
| | | } |
| | | if (CountDel[i].hospitalSpecialOffer__c) { |
| | | Jstage.hospitalSpecialOffer = true; |
| | | } else { |
| | | Jstage.hospitalSpecialOffer = false; |
| | | } |
| | | if (HosProMap.containsKey(Jstage.Prod.Id)) { |
| | | Jstage.hosPro = true; |
| | | } |
| | | //Jstage.BoxPiece = CountDel[i].Box_Piece__c; |
| | | MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage); |
| | | } |
| | | } |
| | | } |
| | | Integer ishosnum = 0; |
| | | System.debug('MidMap2 = ' + MidMap2); |
| | | for (ConsumableorderdetailsInfo bss : MidMap2.values()) { |
| | | if (selectedIdMap.containsKey(bss.Prod.id)) { |
| | | continue; |
| | | } else { |
| | | bss.sortBy = false; |
| | | bss.packinglist = Integer.valueOf( |
| | | bss.Prod.Product2__r.Packing_list_manual__c |
| | | ); |
| | | bss.approbation_No = bss.Prod.Product2__r.SFDA_Approbation_No__c; |
| | | bss.expiration_Date = bss.Prod.Product2__r.SFDA_Expiration_Date__c; |
| | | consumableorderdetailsSelectRecords.add(bss); |
| | | |
| | | if (bss.hospitalSpecialOffer == true) { |
| | | ishosnum = ishosnum + 1; |
| | | } |
| | | } |
| | | } |
| | | if (ishosnum > 0) { |
| | | hasHosPro = true; |
| | | } else { |
| | | hasHosPro = false; |
| | | } |
| | | |
| | | consumableorderdetailsSelectRecords.sort(); |
| | | makepagerecordsLwc(); |
| | | //分页 |
| | | PaginatedAccounts paginatedAccounts = new PaginatedAccounts(); |
| | | totalCount = pageRecords.size(); |
| | | paginatedAccounts.nextPageToken = (pageToken + pageSize < totalCount) |
| | | ? pageToken + pageSize |
| | | : null; |
| | | paginatedAccounts.recordStart = pageToken + 1; |
| | | paginatedAccounts.pageNumber = pageToken / pageSize + 1; |
| | | Integer recordEnd = pageSize * paginatedAccounts.pageNumber; |
| | | paginatedAccounts.recordEnd = totalCount >= recordEnd |
| | | ? recordEnd |
| | | : totalCount; |
| | | paginatedAccounts.totalRecords = totalCount; |
| | | |
| | | System.debug('addSize = ' + addSize); |
| | | Integer startIdx; |
| | | Integer endIdx; |
| | | startIdx = pageToken; |
| | | endIdx = pageToken + pageSize; |
| | | List<ConsumableorderdetailsInfo> pageRecordsTemp = new List<ConsumableorderdetailsInfo>(); |
| | | if (endIdx > pageRecords.size()) { |
| | | endIdx = pageRecords.size(); |
| | | } |
| | | |
| | | System.debug('addData.size() = ' + addData.size()); |
| | | for (ConsumableorderdetailsInfo ci : addData) { |
| | | pageRecordsTemp.add(ci); |
| | | } |
| | | System.debug('startIdx = ' + startIdx); |
| | | System.debug('endIdx = ' + endIdx); |
| | | System.debug('skipData = ' + skipData); |
| | | System.debug('pageRecords = ' + pageRecords.size()); |
| | | String hos = ''; |
| | | for (Integer i = startIdx; i < endIdx; i++) { |
| | | System.debug( |
| | | 'skipData.get(pageRecords.get(i).Prod.Id) = ' + |
| | | skipData.get(pageRecords.get(i).Prod.Id) |
| | | ); |
| | | if (pageRecords.get(i).hospitalSpecialOffer == true) { |
| | | hos = 'ishos'; |
| | | } else { |
| | | hos = 'nothos'; |
| | | } |
| | | if (skipData.get(pageRecords.get(i).Prod.Id + hos) == null) { |
| | | pageRecordsTemp.add(pageRecords.get(i)); |
| | | } |
| | | } |
| | | |
| | | System.debug('pageRecordsTemp = ' + pageRecordsTemp.size()); |
| | | data.put('paginatedAccounts', paginatedAccounts); |
| | | data.put('pageRecords', pageRecordsTemp); |
| | | data.put('SearchDone', SearchDone); |
| | | data.put('hasHosPro', hasHosPro); |
| | | res.status = 'Success'; |
| | | res.code = 200; |
| | | System.debug('res = ' + res); |
| | | return res; |
| | | } |
| | | |
| | | private static String makeSoql( |
| | | String CateName, |
| | | String Category3, |
| | | String Category4, |
| | | String Category5 |
| | | ) { |
| | | String sqlTail1 = '(\''; |
| | | for (Integer i = 0; i < zaikuId.size(); i++) { |
| | | if (zaikuId[i] != null) { |
| | | if (i < zaikuId.size() - 1) { |
| | | sqlTail1 += zaikuId[i] + '\',\''; |
| | | } else { |
| | | sqlTail1 += zaikuId[i]; |
| | | } |
| | | } |
| | | } |
| | | sqlTail1 += '\')'; |
| | | String soql = 'SELECT Id, Name,Name__c,Intra_Trade_List_RMB__c,Asset_Model_No__c,Product2__r.Packing_list_manual__c,SFDA_Status__c,Product2__r.SFDA_Approbation_No__c,Product2__r.SFDA_Expiration_Date__c,Category3__c,Category4__c,Category5__c FROM Product2__c '; |
| | | soql += ' WHERE Id in' + sqlTail1; |
| | | if (!String.isBlank(CateName)) { |
| | | soql += |
| | | ' AND (Name__c like \'%' + |
| | | String.escapeSingleQuotes(CateName.replaceAll('%', '\\%')) + |
| | | '%\' or Asset_Model_No__c like \'%' + |
| | | String.escapeSingleQuotes(CateName.replaceAll('%', '\\%')) + |
| | | '%\')'; |
| | | } |
| | | if (!String.isBlank(Category3)) { |
| | | soql += ' AND Category3__c = \'' + Category3 + '\''; |
| | | } |
| | | if (!String.isBlank(Category4)) { |
| | | soql += ' AND Category4__c = \'' + Category4 + '\''; |
| | | } |
| | | if (!String.isBlank(Category5)) { |
| | | soql += ' AND Category5__c = \'' + Category5 + '\''; |
| | | } |
| | | return soql; |
| | | } |
| | | |
| | | public static String makeSoqlorderdet() { |
| | | String sqlTail = '(\''; |
| | | for (Integer i = 0; i < orderzaikuId.size(); i++) { |
| | | if (i < orderzaikuId.size() - 1) { |
| | | sqlTail += orderzaikuId[i] + '\',\''; |
| | | } else { |
| | | sqlTail += orderzaikuId[i]; |
| | | } |
| | | } |
| | | sqlTail += '\')'; |
| | | String msoql = 'SELECT Id, Name,Name__c,Intra_Trade_List_RMB__c,Asset_Model_No__c,Product2__r.Packing_list_manual__c,SFDA_Status__c,Product2__r.SFDA_Approbation_No__c,Product2__r.SFDA_Expiration_Date__c,Category3__c,Category4__c,Category5__c FROM Product2__c '; |
| | | msoql += ' WHERE Id in' + sqlTail; |
| | | return msoql; |
| | | } |
| | | |
| | | public static String makeSoqlinventory() { |
| | | String sqlTail = '(\''; |
| | | for (Integer i = 0; i < zaikuId.size(); i++) { |
| | | if (zaikuId[i] != null) { |
| | | if (i < zaikuId.size() - 1) { |
| | | sqlTail += zaikuId[i] + '\',\''; |
| | | } else { |
| | | sqlTail += zaikuId[i]; |
| | | } |
| | | } |
| | | } |
| | | sqlTail += '\')'; |
| | | String msoql = 'SELECT Id, Name,Name__c,Intra_Trade_List_RMB__c,Asset_Model_No__c,Product2__r.Packing_list_manual__c,SFDA_Status__c,Product2__r.SFDA_Approbation_No__c,Product2__r.SFDA_Expiration_Date__c,Category3__c,Category4__c,Category5__c FROM Product2__c '; |
| | | msoql += ' WHERE Id in' + sqlTail; |
| | | return msoql; |
| | | } |
| | | |
| | | public static void initStandardController(String soql) { |
| | | // init standard controller |
| | | System.debug('soql =' + soql); |
| | | System.debug('initStandardController star'); |
| | | //setCon = new ApexPages.StandardSetController(Database.getQueryLocator(soql)); |
| | | // sets the number of records in each page set |
| | | //setCon.setPageSize(size); |
| | | System.debug('initStandardController end'); |
| | | } |
| | | |
| | | public static List<ConsumableorderdetailsInfo> makepagerecords() { |
| | | List<ConsumableorderdetailsInfo> reSet = new List<ConsumableorderdetailsInfo>(); |
| | | Map<String, String> selectedIdMap = new Map<String, String>(); |
| | | System.debug('zhj1'); |
| | | //取出选择的产品 |
| | | if (pageRecords != null) { |
| | | System.debug('zhj2'); |
| | | for (ConsumableorderdetailsInfo ass : pageRecords) { |
| | | if (ass.check == true) { |
| | | if (ass.hospitalSpecialOffer == true) { |
| | | selectedIdMap.put(ass.Prod.Id + 'ishos', ass.Prod.Id); |
| | | } else { |
| | | selectedIdMap.put(ass.Prod.Id + 'nothos', ass.Prod.Id); |
| | | } |
| | | reSet.add(ass); |
| | | } |
| | | } |
| | | } |
| | | System.debug('zhj3'); |
| | | pageRecords = new List<ConsumableorderdetailsInfo>(); |
| | | System.debug('reSet.size() = ' + reSet.size()); |
| | | if (editAble && String.isBlank(arriveorder)) { |
| | | pageRecords = reSet; |
| | | } |
| | | //Integer pagestartNo = (setCon.getPageNumber() * size)-size; |
| | | //Integer pageendNo = (setCon.getPageNumber() * size)>noOfRecords ? noOfRecords :(setCon.getPageNumber() * size-1); |
| | | Integer addNo = 0; |
| | | //update by rentx 2021-2-26 start |
| | | System.debug( |
| | | 'consumableorderdetailsSelectRecords.size() = ' + |
| | | consumableorderdetailsSelectRecords.size() |
| | | ); |
| | | for ( |
| | | ConsumableorderdetailsInfo info : consumableorderdetailsSelectRecords |
| | | ) { |
| | | Consumable_Orderdetails__c orderdetails1 = new Consumable_Orderdetails__c(); |
| | | if ( |
| | | (info.hospitalSpecialOffer && |
| | | selectedIdMap.containsKey(info.Prod.Id + 'ishos')) || |
| | | (info.hospitalSpecialOffer == false && |
| | | selectedIdMap.containsKey(info.Prod.Id + 'nothos')) |
| | | ) { |
| | | addNo++; |
| | | } else { |
| | | if (info.check == false) { |
| | | info.orderdetails1 = orderdetails1; |
| | | } |
| | | pageRecords.add(info); |
| | | addNo++; |
| | | } |
| | | } |
| | | System.debug('pageRecords 2 = ' + pageRecords); |
| | | System.debug('zhj5'); |
| | | System.debug('pageRecords = ' + pageRecords); |
| | | return pageRecords; |
| | | } |
| | | |
| | | public static List<ConsumableorderdetailsInfo> makepagerecordsLwc() { |
| | | List<ConsumableorderdetailsInfoLwc> reSetLwc = new List<ConsumableorderdetailsInfoLwc>(); |
| | | Map<String, String> selectedIdMap = new Map<String, String>(); |
| | | skipData = new Map<String, String>(); |
| | | System.debug('makepagerecordsLwc pageRecordsLwc = ' + pageRecordsLwc); |
| | | //取出选择的产品 |
| | | if (pageRecordsLwc != null) { |
| | | for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) { |
| | | System.debug('ass.check = ' + ass.check); |
| | | if (ass.check == true) { |
| | | if (ass.hospitalSpecialOffer == true) { |
| | | selectedIdMap.put(ass.Prod.Id + 'ishos', ass.Prod.Id); |
| | | skipData.put(ass.Prod.Id + 'ishos', ass.Prod.Id); |
| | | } else { |
| | | selectedIdMap.put(ass.Prod.Id + 'nothos', ass.Prod.Id); |
| | | skipData.put(ass.Prod.Id + 'nothos', ass.Prod.Id); |
| | | } |
| | | reSetLwc.add(ass); |
| | | } |
| | | } |
| | | } |
| | | System.debug('selectedIdMap = ' + selectedIdMap); |
| | | pageRecords = new List<ConsumableorderdetailsInfo>(); |
| | | if (editAble && String.isBlank(arriveorder)) { |
| | | List<ConsumableorderdetailsInfo> reSet = new List<ConsumableorderdetailsInfo>(); |
| | | System.debug('reSetLwc = ' + reSetLwc); |
| | | for (ConsumableorderdetailsInfoLwc assLwc : reSetLwc) { |
| | | ConsumableorderdetailsInfo ci = new ConsumableorderdetailsInfo(); |
| | | ci.check = assLwc.check; |
| | | ci.oldCheck = assLwc.oldCheck; |
| | | ci.orderdetails1 = assLwc.orderdetails1; |
| | | ci.orderdetails2 = assLwc.orderdetails2; |
| | | ci.Prod = assLwc.Prod; |
| | | ci.Boxnumber = assLwc.Boxnumber; |
| | | ci.Piecenumber = assLwc.Piecenumber; |
| | | ci.allnumber = assLwc.allnumber; |
| | | ci.oldConsumableCount = assLwc.oldConsumableCount; |
| | | ci.canSelect = assLwc.canSelect; |
| | | ci.sortBy = assLwc.sortBy; |
| | | ci.packinglist = assLwc.packinglist; |
| | | ci.approbation_No = assLwc.approbation_No; |
| | | ci.expiration_Date = assLwc.expiration_Date; |
| | | ci.boxorpiecein = assLwc.boxorpiecein; |
| | | ci.boxorpiece = assLwc.boxorpiece; |
| | | ci.boxorpieceMap = assLwc.boxorpieceMap; |
| | | ci.concc = assLwc.concc; |
| | | ci.BoxPiece = assLwc.BoxPiece; |
| | | ci.hospitalSpecialOffer = assLwc.hospitalSpecialOffer; |
| | | ci.hosPro = assLwc.hosPro; |
| | | reSet.add(ci); |
| | | } |
| | | pageRecords = reSet; |
| | | System.debug('reSet = ' + reSet); |
| | | addData = reSet.clone(); |
| | | System.debug('addData = reSet = ' + addData); |
| | | } |
| | | //Integer pagestartNo = (setCon.getPageNumber() * size)-size; |
| | | //Integer pageendNo = (setCon.getPageNumber() * size)>noOfRecords ? noOfRecords :(setCon.getPageNumber() * size-1); |
| | | Integer addNo = 0; |
| | | //update by rentx 2021-2-26 start |
| | | System.debug( |
| | | 'consumableorderdetailsSelectRecords.size() = ' + |
| | | consumableorderdetailsSelectRecords.size() |
| | | ); |
| | | for ( |
| | | ConsumableorderdetailsInfo info : consumableorderdetailsSelectRecords |
| | | ) { |
| | | Consumable_Orderdetails__c orderdetails1 = new Consumable_Orderdetails__c(); |
| | | if ( |
| | | (info.hospitalSpecialOffer && |
| | | selectedIdMap.containsKey(info.Prod.Id + 'ishos')) || |
| | | (info.hospitalSpecialOffer == false && |
| | | selectedIdMap.containsKey(info.Prod.Id + 'nothos')) |
| | | ) { |
| | | System.debug('去掉的id : ' + info.Prod.Id); |
| | | addNo++; |
| | | addSize++; |
| | | } else { |
| | | if (info.check == false) { |
| | | info.orderdetails1 = orderdetails1; |
| | | } |
| | | pageRecords.add(info); |
| | | addNo++; |
| | | } |
| | | } |
| | | System.debug('pageRecords.size() = ' + pageRecords.size()); |
| | | System.debug('end addData = ' + addData); |
| | | return pageRecords; |
| | | } |
| | | |
| | | // 保存按钮 |
| | | @AuraEnabled |
| | | public static ResponseBodyLWC save( |
| | | Consumable_order__c cocLwc, |
| | | String hospitalInfoLwc, |
| | | String hospitalNameLwc, |
| | | String secondaryDistributorLwc, |
| | | List<ConsumableorderdetailsInfoLwc> pageRecordsLwc, |
| | | String accountidLwc, |
| | | String ESetIdLwc, |
| | | List<ConsumableorderdetailsInfo> consumableproductdetailsRecordsLwc, |
| | | String agencyProTypeLwc, |
| | | String userWorkLocationLwc |
| | | ) { |
| | | coc = cocLwc; |
| | | HospitalInfo = hospitalInfoLwc; |
| | | HospitalName = hospitalNameLwc; |
| | | SecondDealer = secondaryDistributorLwc; |
| | | pageRecordsLwc = pageRecordsLwc; |
| | | accountid = accountidLwc; |
| | | consumableproductdetailsRecords = consumableproductdetailsRecordsLwc; |
| | | ESetId = ESetIdLwc; |
| | | agencyProType = agencyProTypeLwc; |
| | | userWorkLocation = userWorkLocationLwc; |
| | | |
| | | System.debug('coc = ' + coc); |
| | | System.debug('HospitalInfo = ' + HospitalInfo); |
| | | System.debug('HospitalName = ' + HospitalName); |
| | | System.debug('SecondDealer = ' + SecondDealer); |
| | | System.debug('pageRecordsLwc = ' + pageRecordsLwc); |
| | | System.debug('accountid = ' + accountid); |
| | | System.debug( |
| | | 'consumableproductdetailsRecords = ' + consumableproductdetailsRecords |
| | | ); |
| | | System.debug('ESetId = ' + ESetId); |
| | | ResponseBodyLWC res = new ResponseBodyLWC(); |
| | | Map<String, object> data = new Map<String, object>(); |
| | | res.entity = data; |
| | | //订单信息确认 |
| | | if (coc.SummonsForDirction__c == '' || coc.SummonsForDirction__c == null) { |
| | | // coc.SummonsForDirction__c.addError('请输入指示单目的'); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '请输入指示单目的', ''); |
| | | } else if (coc.SummonsForDirction__c == '直接销售给医院') { |
| | | if (String.isBlank(HospitalInfo) || String.isBlank(HospitalName)) { |
| | | // coc.addError('请输入医院'); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '请输入医院', ''); |
| | | } |
| | | if (String.isBlank(coc.Order_ForCustomerText__c)) { |
| | | // coc.Order_ForCustomerText__c.addError('请输入科室'); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '请输入科室', ''); |
| | | } else if ( |
| | | String.isNotBlank(SecondDealer) || |
| | | String.isNotBlank(coc.Order_ForDealerText__c) |
| | | ) { |
| | | // coc.addError('不需要二级经销商和经销商(录入)信息' ); |
| | | // return null; |
| | | return new ResponseBodyLWC( |
| | | 'Error', |
| | | 500, |
| | | '不需要二级经销商和经销商(录入)信息', |
| | | '' |
| | | ); |
| | | } |
| | | } else if (coc.SummonsForDirction__c == '医院试用') { |
| | | if (String.isBlank(HospitalInfo) || String.isBlank(HospitalName)) { |
| | | // coc.addError('请输入医院'); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '请输入医院', ''); |
| | | } |
| | | if (String.isBlank(coc.Order_ForCustomerText__c)) { |
| | | // coc.Order_ForCustomerText__c.addError('请输入科室'); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '请输入科室', ''); |
| | | } |
| | | } else if (coc.SummonsForDirction__c == '销售给二级经销商') { |
| | | if ( |
| | | String.isBlank(SecondDealer) && |
| | | String.isBlank(coc.Order_ForDealerText__c) |
| | | ) { |
| | | // coc.addError('必须输入二级经销商或经销商(录入)'); |
| | | // return null; |
| | | return new ResponseBodyLWC( |
| | | 'Error', |
| | | 500, |
| | | '必须输入二级经销商或经销商(录入)', |
| | | '' |
| | | ); |
| | | } |
| | | if (String.isBlank(HospitalInfo) || String.isBlank(HospitalName)) { |
| | | // coc.addError('请输入医院'); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '请输入医院', ''); |
| | | } |
| | | if (String.isBlank(coc.Order_ForCustomerText__c)) { |
| | | // coc.Order_ForCustomerText__c.addError('请输入科室'); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '请输入科室', ''); |
| | | } |
| | | } else if (coc.SummonsForDirction__c == '互相调货') { |
| | | if (String.isNotBlank(HospitalInfo) || String.isNotBlank(HospitalName)) { |
| | | // coc.addError('不需要输入医院'); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '不需要输入医院', ''); |
| | | } |
| | | if (String.isNotBlank(coc.Order_ForCustomerText__c)) { |
| | | // coc.Order_ForCustomerText__c.addError('不需要输入科室'); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '不需要输入科室', ''); |
| | | } |
| | | if ( |
| | | String.isBlank(SecondDealer) && |
| | | String.isBlank(coc.Order_ForDealerText__c) |
| | | ) { |
| | | // coc.addError('必须输入二级经销商或经销商(录入)'); |
| | | // return null; |
| | | return new ResponseBodyLWC( |
| | | 'Error', |
| | | 500, |
| | | '必须输入二级经销商或经销商(录入)', |
| | | '' |
| | | ); |
| | | } |
| | | } |
| | | |
| | | Integer isHos = 0; |
| | | |
| | | Integer FLG = 0; |
| | | Integer Count = 0; |
| | | for (ConsumableorderdetailsInfoLwc CheckCount : pageRecordsLwc) { |
| | | FLG = FLG + 1; |
| | | if (CheckCount.check == false) { |
| | | Count = Count + 1; |
| | | } else { |
| | | //add by rentx |
| | | if (CheckCount.hospitalSpecialOffer) { |
| | | isHos = isHos + 1; |
| | | } |
| | | //add by rentx |
| | | } |
| | | } |
| | | if (Count == FLG) { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '请选择所需消耗品')); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '请选择所需消耗品', ''); |
| | | } |
| | | // gzw 注释 判断提前 20210308 |
| | | //checkOutPattern(); |
| | | //根据用户选中的产品给 出库单上的是否医院特价出库字段赋值 |
| | | Integer isHosCheckOutPattern = 0; |
| | | for (ConsumableorderdetailsInfoLwc CheckCount : pageRecordsLwc) { |
| | | if (CheckCount.check == true && CheckCount.hospitalSpecialOffer == true) { |
| | | isHosCheckOutPattern = isHosCheckOutPattern + 1; |
| | | } |
| | | } |
| | | if (isHosCheckOutPattern > 0) { |
| | | coc.OutPattern__c = true; |
| | | } else { |
| | | coc.OutPattern__c = false; |
| | | } |
| | | |
| | | // add by rentx 2021-3-10 start |
| | | //特价医院出库非本医院维护的特价商品时,报错 非特价医院出库维护在医院特价关系表的产品时 报错 |
| | | if (coc.SummonsForDirction__c != '互相调货') { |
| | | //非特价医院出库特价产品时 报错(当前经销商下没有特价医院除外) |
| | | List<hospitalprice__c> hopList = [ |
| | | SELECT id, hospital__c, product__c |
| | | FROM hospitalprice__c |
| | | WHERE account__c = :accountid |
| | | ]; |
| | | //经销商对应医院下的所有特价产品 |
| | | Map<String, String> proMap = new Map<String, String>(); |
| | | //经销商下的所有特价产品 |
| | | Map<String, String> allProMap = new Map<String, String>(); |
| | | |
| | | if (hopList != null && hopList.size() > 0) { |
| | | Boolean flag = false; |
| | | if (HospitalInfo != null && HospitalInfo != '') { |
| | | for (hospitalprice__c hp : hopList) { |
| | | allProMap.put(hp.product__c, ''); |
| | | //如果当前 医院特价关系中的医院对应出库单上出库的医院,则放产品id到map |
| | | if (hp.hospital__c == HospitalInfo) { |
| | | flag = true; |
| | | proMap.put(hp.product__c, ''); |
| | | Integer startIdx; |
| | | Integer endIdx; |
| | | startIdx = pageToken; |
| | | endIdx = pageToken + pageSize; |
| | | List<ConsumableorderdetailsInfo> pageRecordsTemp = new List<ConsumableorderdetailsInfo>(); |
| | | if (endIdx > pageRecords.size()) { |
| | | endIdx = pageRecords.size(); |
| | | } |
| | | } |
| | | for (Integer i = startIdx; i < endIdx; i++) { |
| | | pageRecordsTemp.add(pageRecords.get(i)); |
| | | } |
| | | |
| | | Boolean Existarrive = (coc.Arrive_Order__c != null); |
| | | String ConsumableOut_report = System.Label.ConsumableOut_report; |
| | | System.debug('consumableproductdetailsRecords = ' + consumableproductdetailsRecords); |
| | | |
| | | data.put('paginatedAccounts', paginatedAccounts); |
| | | data.put('ConsumableOut_report', ConsumableOut_report); |
| | | data.put('accountid', accountid); |
| | | data.put('consumableproductdetailsRecords', consumableproductdetailsRecords); |
| | | data.put('agencyProType', agencyProType); |
| | | data.put('accountName', accountName); |
| | | data.put('userWorkLocation', userWorkLocation); |
| | | data.put('categoryOptionMap', categoryOptionMap); |
| | | data.put('category4OptionMap', category4OptionMap); |
| | | data.put('category5OptionMap', category5OptionMap); |
| | | data.put('outOutPatternOptionMap', outOutPatternOptionMap); |
| | | data.put('hasHosPro', hasHosPro); |
| | | data.put('Existarrive', Existarrive); |
| | | data.put('sumPrice', sumPrice); |
| | | data.put('HospitalName', HospitalName); |
| | | data.put('provinceOptsMap', provinceOptsMap); |
| | | data.put('SummonsFlag', SummonsFlag); |
| | | data.put('EditDelCommitBtnDisabled', EditDelCommitBtnDisabled); |
| | | data.put('EditAble', EditAble); |
| | | data.put('coc', coc); |
| | | data.put('pageRecords', pageRecordsTemp); |
| | | data.put('arriveorder', arriveorder); |
| | | data.put('consumableorderdetails2Count', consumableorderdetails2Count); |
| | | data.put('consumableorderdetails2Records', consumableorderdetails2Records); |
| | | data.put('HospitalInfo', HospitalInfo); |
| | | res.status = 'Success'; |
| | | res.code = 200; |
| | | System.debug('res = ' + res); |
| | | return res; |
| | | } catch (Exception e) { |
| | | return new ResponseBodyLWC('Error',500, e.getMessage() + e.getLineNumber(), ''); |
| | | } |
| | | for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) { |
| | | if (ass.check == true) { |
| | | //判断选中的医院特价产品 |
| | | if (ass.hospitalSpecialOffer == true) { |
| | | //用户选中了当前医院下的特价产品 |
| | | if (proMap.containsKey(ass.Prod.Id)) { |
| | | } |
| | | |
| | | @AuraEnabled |
| | | public static ResponseBodyLWC categoryAllload(String category3Lwc) { |
| | | ResponseBodyLWC res = new ResponseBodyLWC(); |
| | | Map<String, object> data = new Map<String, object>(); |
| | | res.entity = data; |
| | | |
| | | category3 = category3Lwc; |
| | | AggregateResult[] category4List = [ |
| | | SELECT Count(id), Category4_text__c c4c |
| | | FROM Product2__c |
| | | WHERE Category3_text__c = :category3 AND Category4_text__c != NULL AND Category5_text__c != NULL |
| | | GROUP BY Category4_text__c |
| | | ]; |
| | | System.debug('category4List ' + category4List); |
| | | category4OptionList = new List<SelectOption>(); |
| | | category4OptionList.add(new SelectOption('', '-无-')); |
| | | category4OptionMap = new Map<String, String>(); |
| | | category4OptionMap.put('', '-无-'); |
| | | for (AggregateResult category4Search : category4List) { |
| | | String deliverycnt4 = String.valueOf(category4Search.get('c4c')); |
| | | category4OptionList.add(new SelectOption(deliverycnt4, deliverycnt4)); |
| | | category4OptionMap.put(deliverycnt4, deliverycnt4); |
| | | } |
| | | |
| | | AggregateResult[] category5List = [ |
| | | SELECT Count(id), Category5_text__c c5c |
| | | FROM Product2__c |
| | | WHERE Category3_text__c = :category3 AND Category4_text__c != NULL AND Category5_text__c != NULL |
| | | GROUP BY Category5_text__c |
| | | ]; |
| | | |
| | | System.debug('category5List ' + category5List); |
| | | category5OptionList = new List<SelectOption>(); |
| | | category5OptionList.add(new SelectOption('', '-无-')); |
| | | category5OptionMap = new Map<String, String>(); |
| | | category5OptionMap.put('', '-无-'); |
| | | for (AggregateResult category5Search : category5List) { |
| | | String deliverycnt5 = String.valueOf(category5Search.get('c5c')); |
| | | category5OptionList.add(new SelectOption(deliverycnt5, deliverycnt5)); |
| | | category5OptionMap.put(deliverycnt5, deliverycnt5); |
| | | } |
| | | data.put('category4OptionMap', category4OptionMap); |
| | | data.put('category5OptionMap', category5OptionMap); |
| | | res.status = 'Success'; |
| | | res.code = 200; |
| | | System.debug('res = ' + res); |
| | | return res; |
| | | } |
| | | |
| | | @AuraEnabled |
| | | public static ResponseBodyLWC categoryload(String category3Lwc, String category4Lwc) { |
| | | ResponseBodyLWC res = new ResponseBodyLWC(); |
| | | Map<String, object> data = new Map<String, object>(); |
| | | res.entity = data; |
| | | |
| | | category3 = category3Lwc; |
| | | category4 = category4Lwc; |
| | | AggregateResult[] category4List = [ |
| | | SELECT Count(id), Category4_text__c c4c |
| | | FROM Product2__c |
| | | WHERE Category3_text__c = :category3 AND Category4_text__c != NULL AND Category5_text__c != NULL |
| | | GROUP BY Category4_text__c |
| | | ]; |
| | | System.debug('category4List ' + category4List); |
| | | category4OptionList = new List<SelectOption>(); |
| | | category4OptionList.add(new SelectOption('', '-无-')); |
| | | category4OptionMap = new Map<String, String>(); |
| | | category4OptionMap.put('', '-无-'); |
| | | for (AggregateResult category4Search : category4List) { |
| | | String deliverycnt4 = String.valueOf(category4Search.get('c4c')); |
| | | category4OptionList.add(new SelectOption(deliverycnt4, deliverycnt4)); |
| | | category4OptionMap.put(deliverycnt4, deliverycnt4); |
| | | } |
| | | |
| | | AggregateResult[] category5List = [ |
| | | SELECT Count(id), Category5_text__c c5c |
| | | FROM Product2__c |
| | | WHERE Category3_text__c = :category3 AND Category4_text__c = :category4 AND Category5_text__c != NULL |
| | | GROUP BY Category5_text__c |
| | | ]; |
| | | |
| | | System.debug('category5List ' + category5List); |
| | | category5OptionList = new List<SelectOption>(); |
| | | category5OptionList.add(new SelectOption('', '-无-')); |
| | | category5OptionMap = new Map<String, String>(); |
| | | category5OptionMap.put('', '-无-'); |
| | | for (AggregateResult category5Search : category5List) { |
| | | String deliverycnt5 = String.valueOf(category5Search.get('c5c')); |
| | | category5OptionList.add(new SelectOption(deliverycnt5, deliverycnt5)); |
| | | category5OptionMap.put(deliverycnt5, deliverycnt5); |
| | | } |
| | | data.put('category4OptionMap', category4OptionMap); |
| | | data.put('category5OptionMap', category5OptionMap); |
| | | res.status = 'Success'; |
| | | res.code = 200; |
| | | System.debug('res = ' + res); |
| | | return res; |
| | | } |
| | | |
| | | // 检索 |
| | | @AuraEnabled |
| | | public static ResponseBodyLWC searchConsumableorderdetails( |
| | | String agencyProTypeLwc, |
| | | String accountNameLwc, |
| | | String userWorkLocationLwc, |
| | | String outOutPattern, |
| | | String category1, |
| | | String category3, |
| | | String category4, |
| | | String category5, |
| | | Boolean editAbleLwc, |
| | | List<ConsumableorderdetailsInfoLwc> pageRecordsLwcLwc, |
| | | List<ConsumableorderdetailsInfo> consumableproductdetailsRecordsLwc, |
| | | String arriveorderLwc, |
| | | Integer pageSizeLWC, |
| | | Integer pageTokenLWC |
| | | ) { |
| | | consumableproductdetailsRecords = consumableproductdetailsRecordsLwc; |
| | | pageRecordsLwc = pageRecordsLwcLwc; |
| | | System.debug('pageRecordsLwc = ' + pageRecordsLwc); |
| | | arriveorder = arriveorderLwc; |
| | | accountName = accountNameLwc; |
| | | userWorkLocation = userWorkLocationLwc; |
| | | agencyProType = agencyProTypeLwc; |
| | | product2Selected = new List<Product2__c>(); |
| | | pagesize = pageSizeLWC; |
| | | pageToken = pageTokenLWC > 2000 ? 2000 : pageTokenLWC; |
| | | addSize = 0; |
| | | addData = new List<ConsumableorderdetailsInfo>(); |
| | | System.debug('start addData = ' + addData); |
| | | System.debug('accountName = ' + accountName); |
| | | System.debug('userWorkLocation = ' + userWorkLocation); |
| | | String sqlagencyProType = '%' + agencyProTypeLwc + '%'; |
| | | List<AggregateResult> orderdetailCount = [ |
| | | SELECT count(id), Consumable_Product__c cpc, Box_Piece__c |
| | | FROM Consumable_order_details2__c |
| | | WHERE |
| | | Dealer_Arrive__c = TRUE |
| | | AND Dealer_Shipment__c = FALSE |
| | | AND Dealer_Saled__c = FALSE |
| | | AND Lose_Flag__c = FALSE |
| | | AND Cancellation_Flag__c = FALSE |
| | | AND Bar_Code__c != NULL |
| | | AND Isoverdue__c = 1 |
| | | AND Product_Type__c LIKE :sqlagencyProType |
| | | AND Dealer_Info_text__c = :accountNameLwc |
| | | AND Arrive_Owner_Work_Location__c = :userWorkLocationLwc |
| | | GROUP BY Consumable_Product__c, Box_Piece__c |
| | | ]; |
| | | System.debug('orderdetailCount = ' + orderdetailCount); |
| | | |
| | | for (AggregateResult orderdetail : orderdetailCount) { |
| | | zaikuId.add(String.valueOf(orderdetail.get('cpc'))); |
| | | } |
| | | editAble = editAbleLwc; |
| | | ResponseBodyLWC res = new ResponseBodyLWC(); |
| | | Map<String, object> data = new Map<String, object>(); |
| | | res.entity = data; |
| | | SearchDone = 'SearchDone'; |
| | | Map<String, String> selectedIdMap = new Map<String, String>(); |
| | | List<ConsumableorderdetailsInfo> reSet = new List<ConsumableorderdetailsInfo>(); |
| | | Map<String, ConsumableorderdetailsInfo> MidMap = new Map<String, ConsumableorderdetailsInfo>(); |
| | | //update by rentx 2021-01-29 |
| | | Map<String, ConsumableorderdetailsInfo> MidMap2 = new Map<String, ConsumableorderdetailsInfo>(); |
| | | String countdelSoql = 'SELECT Id,Bar_Code__c,Name,Inventory_date__c,Consumable_Product__c,Consumable_Product__r.Asset_Model_No__c,Recordtypeid,Box_Piece__c,ProductPacking_list_manual__c,hospitalSpecialOffer__c FROM Consumable_order_details2__c WHERE Dealer_Arrive__c = true AND Dealer_Shipment__c = false AND Dealer_Saled__c = false AND Dealer_Returned__c = false AND Lose_Flag__c = false AND Bar_Code__c != null AND Isoverdue__c = 1 AND Arrive_Owner_Work_Location__c = :userWorkLocation AND Dealer_Info_text__c = :accountName '; |
| | | if (String.isNotBlank(outOutPattern) && outOutPattern.equals('ishos')) { |
| | | countdelSoql += ' AND hospitalSpecialOffer__c = true'; |
| | | } else if (String.isNotBlank(outOutPattern) && outOutPattern.equals('nothos')) { |
| | | countdelSoql += ' AND hospitalSpecialOffer__c = false'; |
| | | } |
| | | System.debug('countdelSoql = ' + countdelSoql); |
| | | List<Consumable_order_details2__c> CountDel = Database.query(countdelSoql); |
| | | System.debug('CountDel = ' + CountDel); |
| | | //update by rentx 2021-01-29 |
| | | |
| | | consumableorderdetailsSelectRecords = new List<ConsumableorderdetailsInfo>(); |
| | | //consumableorderdetailsSelectRecords = reSet; |
| | | String soql = makeSoql(category1, category3, category4, category5); |
| | | size = Integer.valueOf(System.Label.orderdetLimitsize); |
| | | initStandardController(soql); |
| | | System.debug('soql = ' + soql); |
| | | product2Selected = Database.query(soql); |
| | | for (Integer i = 0; i < product2Selected.size(); i++) { |
| | | MidMap.put(product2Selected[i].Id, new ConsumableorderdetailsInfo(product2Selected[i])); |
| | | } |
| | | |
| | | for (Integer i = 0; i < CountDel.size(); i++) { |
| | | String str = ''; |
| | | if (CountDel[i].hospitalSpecialOffer__c) { |
| | | str = 'isHos'; |
| | | } else { |
| | | str = 'notHos'; |
| | | } |
| | | System.debug('MidMap = ' + MidMap); |
| | | //明细2对应的产品存在于MidMap中 |
| | | if (MidMap.containsKey(CountDel[i].Consumable_Product__c)) { |
| | | //设置map中key的后缀 用于区分医院特价和非医院特价 |
| | | if (MidMap2.containsKey(CountDel[i].Consumable_Product__c + str)) { |
| | | ConsumableorderdetailsInfo Jstage = MidMap2.get(CountDel[i].Consumable_Product__c + str); |
| | | Jstage.allnumber = Jstage.allnumber + 1; |
| | | if (CountDel[i].Box_Piece__c == '盒') { |
| | | Jstage.Boxnumber = Jstage.Boxnumber + 1; |
| | | } else if (CountDel[i].Box_Piece__c == '个') { |
| | | Jstage.Piecenumber = Jstage.Piecenumber + 1; |
| | | } |
| | | if (CountDel[i].hospitalSpecialOffer__c) { |
| | | Jstage.hospitalSpecialOffer = true; |
| | | } else { |
| | | Jstage.hospitalSpecialOffer = false; |
| | | } |
| | | if (HosProMap.containsKey(Jstage.Prod.Id)) { |
| | | Jstage.hosPro = true; |
| | | } |
| | | MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage); |
| | | } else { |
| | | //midmap2中没有对应的产品 |
| | | ConsumableorderdetailsInfo Jstage = MidMap.get(CountDel[i].Consumable_Product__c).clone(); |
| | | Jstage.allnumber = Jstage.allnumber + 1; |
| | | if (CountDel[i].Box_Piece__c == '盒') { |
| | | Jstage.Boxnumber = Jstage.Boxnumber + 1; |
| | | } else if (CountDel[i].Box_Piece__c == '个') { |
| | | Jstage.Piecenumber = Jstage.Piecenumber + 1; |
| | | } |
| | | if (CountDel[i].hospitalSpecialOffer__c) { |
| | | Jstage.hospitalSpecialOffer = true; |
| | | } else { |
| | | Jstage.hospitalSpecialOffer = false; |
| | | } |
| | | if (HosProMap.containsKey(Jstage.Prod.Id)) { |
| | | Jstage.hosPro = true; |
| | | } |
| | | //Jstage.BoxPiece = CountDel[i].Box_Piece__c; |
| | | MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage); |
| | | } |
| | | } |
| | | } |
| | | Integer ishosnum = 0; |
| | | System.debug('MidMap2 = ' + MidMap2); |
| | | for (ConsumableorderdetailsInfo bss : MidMap2.values()) { |
| | | if (selectedIdMap.containsKey(bss.Prod.id)) { |
| | | continue; |
| | | //用户选中了没有维护特价医院的特价产品 |
| | | } else if (!allProMap.containsKey(ass.Prod.Id)) { |
| | | continue; |
| | | } else { |
| | | //用户选中非当前医院维护的特价产品 |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '当前医院没有维护 消耗品:'+ ass.Prod.Name__c +' 的特价')); |
| | | // return null; |
| | | return new ResponseBodyLWC( |
| | | 'Error', |
| | | 500, |
| | | '当前医院没有维护 消耗品:' + ass.Prod.Name__c + '的特价', |
| | | '' |
| | | ); |
| | | } |
| | | } //非医院特价产品可以出库给任意医院,所以不需要判断 |
| | | } |
| | | } else { |
| | | bss.sortBy = false; |
| | | bss.packinglist = Integer.valueOf(bss.Prod.Product2__r.Packing_list_manual__c); |
| | | bss.approbation_No = bss.Prod.Product2__r.SFDA_Approbation_No__c; |
| | | bss.expiration_Date = bss.Prod.Product2__r.SFDA_Expiration_Date__c; |
| | | consumableorderdetailsSelectRecords.add(bss); |
| | | |
| | | if (bss.hospitalSpecialOffer == true) { |
| | | ishosnum = ishosnum + 1; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } else { |
| | | //如果是互相调货,判断 经销商(录入) 是否维护了 当前选中的特价产品 |
| | | List<hospitalprice__c> hopList = [ |
| | | SELECT id, hospital__c, product__c |
| | | FROM hospitalprice__c |
| | | WHERE account__c = :coc.Order_ForDealerTextID__c |
| | | ]; |
| | | Map<Id, String> proMap = new Map<Id, String>(); |
| | | if (hopList != null && hopList.size() > 0) { |
| | | for (hospitalprice__c hpc : hopList) { |
| | | proMap.put(hpc.product__c, ''); |
| | | if (ishosnum > 0) { |
| | | hasHosPro = true; |
| | | } else { |
| | | hasHosPro = false; |
| | | } |
| | | |
| | | String proStr = ''; |
| | | for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) { |
| | | if (ass.check == true) { |
| | | if (ass.hospitalSpecialOffer == true) { |
| | | if (!proMap.containsKey(ass.Prod.Id)) { |
| | | proStr += ass.Prod.Name__c + ','; |
| | | } |
| | | consumableorderdetailsSelectRecords.sort(); |
| | | makepagerecordsLwc(); |
| | | //分页 |
| | | PaginatedAccounts paginatedAccounts = new PaginatedAccounts(); |
| | | totalCount = pageRecords.size(); |
| | | paginatedAccounts.nextPageToken = (pageToken + pageSize < totalCount) ? pageToken + pageSize : null; |
| | | paginatedAccounts.recordStart = pageToken + 1; |
| | | paginatedAccounts.pageNumber = pageToken / pageSize + 1; |
| | | Integer recordEnd = pageSize * paginatedAccounts.pageNumber; |
| | | paginatedAccounts.recordEnd = totalCount >= recordEnd ? recordEnd : totalCount; |
| | | paginatedAccounts.totalRecords = totalCount; |
| | | |
| | | System.debug('addSize = ' + addSize); |
| | | Integer startIdx; |
| | | Integer endIdx; |
| | | startIdx = pageToken; |
| | | endIdx = pageToken + pageSize; |
| | | List<ConsumableorderdetailsInfo> pageRecordsTemp = new List<ConsumableorderdetailsInfo>(); |
| | | if (endIdx > pageRecords.size()) { |
| | | endIdx = pageRecords.size(); |
| | | } |
| | | |
| | | System.debug('addData.size() = ' + addData.size()); |
| | | for (ConsumableorderdetailsInfo ci : addData) { |
| | | pageRecordsTemp.add(ci); |
| | | } |
| | | System.debug('startIdx = ' + startIdx); |
| | | System.debug('endIdx = ' + endIdx); |
| | | System.debug('skipData = ' + skipData); |
| | | System.debug('pageRecords = ' + pageRecords.size()); |
| | | String hos = ''; |
| | | for (Integer i = startIdx; i < endIdx; i++) { |
| | | System.debug('skipData.get(pageRecords.get(i).Prod.Id) = ' + skipData.get(pageRecords.get(i).Prod.Id)); |
| | | if (pageRecords.get(i).hospitalSpecialOffer == true) { |
| | | hos = 'ishos'; |
| | | } else { |
| | | hos = 'nothos'; |
| | | } |
| | | } |
| | | if (skipData.get(pageRecords.get(i).Prod.Id + hos) == null) { |
| | | pageRecordsTemp.add(pageRecords.get(i)); |
| | | } |
| | | } |
| | | if (proStr != '') { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '经销商:'+coc.Order_ForDealerText__c +' 没有消耗品:'+proStr.substring(0,proStr.length()-1) + ' 的特价')); |
| | | // return null; |
| | | return new ResponseBodyLWC( |
| | | 'Error', |
| | | 500, |
| | | '经销商:' + |
| | | coc.Order_ForDealerText__c + |
| | | ' 没有消耗品:' + |
| | | proStr.substring(0, proStr.length() - 1) + |
| | | ' 的特价', |
| | | '' |
| | | ); |
| | | } |
| | | } |
| | | |
| | | System.debug('pageRecordsTemp = ' + pageRecordsTemp.size()); |
| | | data.put('paginatedAccounts', paginatedAccounts); |
| | | data.put('pageRecords', pageRecordsTemp); |
| | | data.put('SearchDone', SearchDone); |
| | | data.put('hasHosPro', hasHosPro); |
| | | res.status = 'Success'; |
| | | res.code = 200; |
| | | System.debug('res = ' + res); |
| | | return res; |
| | | } |
| | | |
| | | // checkOutPattern(); |
| | | Consumable_order__c p = new Consumable_order__c(); |
| | | List<Consumable_orderdetails__c> Ins = new List<Consumable_orderdetails__c>(); |
| | | List<Consumable_order_details2__c> InsProduct = new List<Consumable_order_details2__c>(); |
| | | Savepoint sp = Database.setSavepoint(); |
| | | // try { |
| | | //新建订单时 |
| | | if (String.isEmpty(ESetId)) { |
| | | p.Name = '*'; |
| | | p.Order_type__c = '传票'; |
| | | p.Order_ProType__c = agencyProType; |
| | | if ( |
| | | coc.SummonsStatus_c__c == null || String.isBlank(coc.SummonsStatus_c__c) |
| | | ) |
| | | coc.SummonsStatus_c__c = '草案中'; |
| | | // update strat by vivek 2019-7-12 |
| | | p.NoConfirmedPrice__c = coc.NoConfirmedPrice__c; |
| | | // update end by vivek 2019-7-12 |
| | | p.SummonsStatus_c__c = coc.SummonsStatus_c__c; |
| | | if (coc.Arrive_Order__c != null) { |
| | | p.Arrive_Order__c = coc.Arrive_Order__c; |
| | | } |
| | | p.Offers_Price__c = coc.Offers_Price__c; |
| | | p.Dealer_Info__c = accountid; |
| | | if (String.isBlank(SecondDealer)) { |
| | | p.Order_ForHospital__c = String.isNotBlank(HospitalInfo) |
| | | ? HospitalInfo |
| | | : null; |
| | | p.Order_ForCustomerText__c = coc.Order_ForCustomerText__c; |
| | | } else { |
| | | p.Order_ForHospital__c = String.isNotBlank(HospitalInfo) |
| | | ? HospitalInfo |
| | | : null; |
| | | p.Order_ForCustomerText__c = coc.Order_ForCustomerText__c; |
| | | p.Order_ForDealer__c = SecondDealer; |
| | | } |
| | | P.Order_ForDealerText__c = coc.Order_ForDealerText__c; |
| | | P.Order_ForDealerTextID__c = coc.Order_ForDealerTextID__c; |
| | | p.Order_date__c = coc.Order_date__c; |
| | | p.SummonsForDirction__c = coc.SummonsForDirction__c; |
| | | p.RecordTypeid = System.Label.RT_ConOrder_Outboundorder; |
| | | // update start by vivek 2019-7-15 |
| | | p.NoConfirmedPrice__c = coc.NoConfirmedPrice__c; |
| | | // update end by vivek 2019-7-15 |
| | | //add by rentx |
| | | p.OutPattern__c = coc.OutPattern__c; |
| | | //add by rentx |
| | | //Map<String,String> ProductNewMap = new Map<String, String>(); |
| | | for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) { |
| | | if (ass.check == true) { |
| | | if (ass.orderdetails1.Delivery_List_RMB__c < 0) { |
| | | return new ResponseBodyLWC( |
| | | 'Error', |
| | | 500, |
| | | '请输入正确的出货单价 (元)', |
| | | '' |
| | | ); |
| | | } |
| | | if ( |
| | | ass.orderdetails1.Delivery_List_RMB__c == null && |
| | | coc.SummonsForDirction__c != '医院试用' |
| | | ) { |
| | | return new ResponseBodyLWC( |
| | | 'Error', |
| | | 500, |
| | | '请输入正确的出货单价 (元)', |
| | | '' |
| | | ); |
| | | } |
| | | if ( |
| | | (ass.orderdetails1.Delivery_List_RMB__c == null || |
| | | ass.orderdetails1.Delivery_List_RMB__c == 0) && |
| | | coc.SummonsForDirction__c != '医院试用' |
| | | ) { |
| | | return new ResponseBodyLWC('Error', 500, '请输入出货单价 (元)', ''); |
| | | } |
| | | if ( |
| | | ass.orderdetails1.Delivery_List_RMB__c == 0 && |
| | | (coc.SummonsForDirction__c == '销售给二级经销商' || |
| | | coc.SummonsForDirction__c == '直接销售给医院') |
| | | ) { |
| | | return new ResponseBodyLWC('Error', 500, '请输入出货单价 (元)', ''); |
| | | } |
| | | if ( |
| | | ass.orderdetails1.Shipment_Count__c == null || |
| | | ass.orderdetails1.Shipment_Count__c == 0 |
| | | ) { |
| | | // ass.orderdetails1.Shipment_Count__c.addError('请输入出货数量'); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '请输入出货数量', ''); |
| | | } |
| | | private static String makeSoql(String CateName, String Category3, String Category4, String Category5) { |
| | | String sqlTail1 = '(\''; |
| | | for (Integer i = 0; i < zaikuId.size(); i++) { |
| | | if (zaikuId[i] != null) { |
| | | if (i < zaikuId.size() - 1) { |
| | | sqlTail1 += zaikuId[i] + '\',\''; |
| | | } else { |
| | | sqlTail1 += zaikuId[i]; |
| | | } |
| | | } |
| | | } |
| | | sqlTail1 += '\')'; |
| | | String soql = 'SELECT Id, Name,Name__c,Intra_Trade_List_RMB__c,Asset_Model_No__c,Product2__r.Packing_list_manual__c,SFDA_Status__c,Product2__r.SFDA_Approbation_No__c,Product2__r.SFDA_Expiration_Date__c,Category3__c,Category4__c,Category5__c FROM Product2__c '; |
| | | soql += ' WHERE Id in' + sqlTail1; |
| | | if (!String.isBlank(CateName)) { |
| | | soql += |
| | | ' AND (Name__c like \'%' + |
| | | String.escapeSingleQuotes(CateName.replaceAll('%', '\\%')) + |
| | | '%\' or Asset_Model_No__c like \'%' + |
| | | String.escapeSingleQuotes(CateName.replaceAll('%', '\\%')) + |
| | | '%\')'; |
| | | } |
| | | if (!String.isBlank(Category3)) { |
| | | soql += ' AND Category3__c = \'' + Category3 + '\''; |
| | | } |
| | | if (!String.isBlank(Category4)) { |
| | | soql += ' AND Category4__c = \'' + Category4 + '\''; |
| | | } |
| | | if (!String.isBlank(Category5)) { |
| | | soql += ' AND Category5__c = \'' + Category5 + '\''; |
| | | } |
| | | return soql; |
| | | } |
| | | |
| | | if ( |
| | | ass.orderdetails1.Box_Piece__c == null || |
| | | ass.orderdetails1.Box_Piece__c == '' |
| | | ) { |
| | | // ass.orderdetails1.Box_Piece__c.addError('请输入单位'); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '请输入单位', ''); |
| | | } |
| | | if (ass.orderdetails1.Box_Piece__c == '盒') { |
| | | if (ass.orderdetails1.Shipment_Count__c > ass.Boxnumber) { |
| | | //ass.orderdetails1.Shipment_Count__c.addError('库存不足'); |
| | | if (ass.oldCheck == false) { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.Prod.Name__c + '库存不足')); |
| | | return new ResponseBodyLWC( |
| | | 'Error', |
| | | 500, |
| | | '消耗品' + ass.Prod.Name__c + '库存不足', |
| | | '' |
| | | ); |
| | | } else { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.orderdetails1.Consumable_Product__r.Name__c + '库存不足')); |
| | | return new ResponseBodyLWC( |
| | | 'Error', |
| | | 500, |
| | | '消耗品' + |
| | | ass.orderdetails1.Consumable_Product__r.Name__c + |
| | | '库存不足', |
| | | '' |
| | | ); |
| | | } |
| | | public static String makeSoqlorderdet() { |
| | | String sqlTail = '(\''; |
| | | for (Integer i = 0; i < orderzaikuId.size(); i++) { |
| | | if (i < orderzaikuId.size() - 1) { |
| | | sqlTail += orderzaikuId[i] + '\',\''; |
| | | } else { |
| | | sqlTail += orderzaikuId[i]; |
| | | } |
| | | } else if (ass.orderdetails1.Box_Piece__c == '个') { |
| | | if (ass.orderdetails1.Shipment_Count__c > ass.Piecenumber) { |
| | | //ass.orderdetails1.Shipment_Count__c.addError('库存不足'); |
| | | if (ass.oldCheck == false) { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.Prod.Name__c + '库存不足')); |
| | | return new ResponseBodyLWC( |
| | | 'Error', |
| | | 500, |
| | | '消耗品' + ass.Prod.Name__c + '库存不足', |
| | | '' |
| | | ); |
| | | } else { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.orderdetails1.Consumable_Product__r.Name__c + '库存不足')); |
| | | return new ResponseBodyLWC( |
| | | 'Error', |
| | | 500, |
| | | '消耗品' + |
| | | ass.orderdetails1.Consumable_Product__r.Name__c + |
| | | '库存不足', |
| | | '' |
| | | ); |
| | | } |
| | | } |
| | | sqlTail += '\')'; |
| | | String msoql = 'SELECT Id, Name,Name__c,Intra_Trade_List_RMB__c,Asset_Model_No__c,Product2__r.Packing_list_manual__c,SFDA_Status__c,Product2__r.SFDA_Approbation_No__c,Product2__r.SFDA_Expiration_Date__c,Category3__c,Category4__c,Category5__c FROM Product2__c '; |
| | | msoql += ' WHERE Id in' + sqlTail; |
| | | return msoql; |
| | | } |
| | | |
| | | public static String makeSoqlinventory() { |
| | | String sqlTail = '(\''; |
| | | for (Integer i = 0; i < zaikuId.size(); i++) { |
| | | if (zaikuId[i] != null) { |
| | | if (i < zaikuId.size() - 1) { |
| | | sqlTail += zaikuId[i] + '\',\''; |
| | | } else { |
| | | sqlTail += zaikuId[i]; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | insert p; |
| | | ESetId = p.id; |
| | | List<Consumable_order__c> detailName = new List<Consumable_order__c>(); |
| | | detailName = [ |
| | | SELECT id, Name |
| | | FROM Consumable_order__c |
| | | WHERE id = :ESetId |
| | | ]; |
| | | Integer i = 1; |
| | | for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) { |
| | | if (ass.check == true) { |
| | | Consumable_orderdetails__c InsAfterDel = new Consumable_orderdetails__c(); |
| | | String str = string.valueOf(i); |
| | | if (str.length() == 1) { |
| | | str = '0' + str; |
| | | } |
| | | InsAfterDel.Name = detailName[0].name + '-' + str; |
| | | InsAfterDel.Shipment_Count__c = ass.orderdetails1.Shipment_Count__c; |
| | | InsAfterDel.Consumable_order__c = p.id; |
| | | InsAfterDel.Consumable_Product__c = ass.Prod.id; |
| | | InsAfterDel.Intra_Trade_List_RMB__c = ass.Prod.Intra_Trade_List_RMB__c; |
| | | InsAfterDel.Delivery_List_RMB__c = ass.orderdetails1.Delivery_List_RMB__c; |
| | | // TODO 默认 盒 ,需要修正 |
| | | InsAfterDel.Box_Piece__c = ass.orderdetails1.Box_Piece__c; |
| | | InsAfterDel.Out_unit__c = ass.orderdetails1.Box_Piece__c; |
| | | //InsAfterDel.Unitprice_To_agency__c = ass.orderdetails1.Unitprice_To_agency__c; |
| | | InsAfterDel.Dealer_Custom_Price__c = ass.orderdetails1.Dealer_Custom_Price__c; |
| | | InsAfterDel.RecordTypeId = System.Label.RT_ConOrderDetail1_Order; |
| | | //add by rentx 2021-2-26 start |
| | | InsAfterDel.isOutPattern__c = ass.hospitalSpecialOffer; |
| | | //add by rentx 2021-2-26 end |
| | | i++; |
| | | Ins.add(InsAfterDel); |
| | | sqlTail += '\')'; |
| | | String msoql = 'SELECT Id, Name,Name__c,Intra_Trade_List_RMB__c,Asset_Model_No__c,Product2__r.Packing_list_manual__c,SFDA_Status__c,Product2__r.SFDA_Approbation_No__c,Product2__r.SFDA_Expiration_Date__c,Category3__c,Category4__c,Category5__c FROM Product2__c '; |
| | | msoql += ' WHERE Id in' + sqlTail; |
| | | return msoql; |
| | | } |
| | | |
| | | public static void initStandardController(String soql) { |
| | | // init standard controller |
| | | System.debug('soql =' + soql); |
| | | System.debug('initStandardController star'); |
| | | //setCon = new ApexPages.StandardSetController(Database.getQueryLocator(soql)); |
| | | // sets the number of records in each page set |
| | | //setCon.setPageSize(size); |
| | | System.debug('initStandardController end'); |
| | | } |
| | | |
| | | public static List<ConsumableorderdetailsInfo> makepagerecords() { |
| | | List<ConsumableorderdetailsInfo> reSet = new List<ConsumableorderdetailsInfo>(); |
| | | Map<String, String> selectedIdMap = new Map<String, String>(); |
| | | System.debug('zhj1'); |
| | | //取出选择的产品 |
| | | if (pageRecords != null) { |
| | | System.debug('zhj2'); |
| | | for (ConsumableorderdetailsInfo ass : pageRecords) { |
| | | if (ass.check == true) { |
| | | if (ass.hospitalSpecialOffer == true) { |
| | | selectedIdMap.put(ass.Prod.Id + 'ishos', ass.Prod.Id); |
| | | } else { |
| | | selectedIdMap.put(ass.Prod.Id + 'nothos', ass.Prod.Id); |
| | | } |
| | | reSet.add(ass); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | // 如果 出库单 和 OCM发货Header连 的话,发货的Detail2 Copy到 出库单的Detail2里 |
| | | if (getExistarrive()) { |
| | | for (ConsumableorderdetailsInfo ass : consumableproductdetailsRecords) { |
| | | //BlockForP; |
| | | Consumable_order_details2__c InsProductDet = new Consumable_order_details2__c(); |
| | | InsProductDet.Id = ass.orderdetails2.Id; |
| | | InsProductDet.Consumable_ZS_order__c = p.id; |
| | | i++; |
| | | InsProduct.add(InsProductDet); |
| | | System.debug('zhj3'); |
| | | pageRecords = new List<ConsumableorderdetailsInfo>(); |
| | | System.debug('reSet.size() = ' + reSet.size()); |
| | | if (editAble && String.isBlank(arriveorder)) { |
| | | pageRecords = reSet; |
| | | } |
| | | } |
| | | if (Ins.size() > 0) { |
| | | insert Ins; |
| | | } |
| | | if (InsProduct.size() > 0) { |
| | | //ControllerUtil.updateOrderDetailsSatus(InsProduct); |
| | | update InsProduct; |
| | | } |
| | | } else if (ESetId != null || ESetId.length() > 0) { |
| | | //修改之后 保存订单 |
| | | List<Consumable_order__c> cocinfo = new List<Consumable_order__c>(); |
| | | // update start by vivek 2019-7-15 add "NoConfirmedPrice__c" in select |
| | | cocinfo = [ |
| | | SELECT |
| | | Id, |
| | | Name, |
| | | SummonsStatus_c__c, |
| | | NoConfirmedPrice__c, |
| | | Dealer_Info__c, |
| | | Order_ForHospital__c, |
| | | SummonsForDirction__c |
| | | FROM Consumable_order__c |
| | | WHERE Id = :ESetId |
| | | ]; |
| | | // update end by vivek 2019-7-15 |
| | | if (cocinfo.size() > 0) { |
| | | p = cocinfo[0]; |
| | | } |
| | | p.Name = coc.Name; |
| | | p.Dealer_Info__c = accountid; |
| | | p.Order_ProType__c = agencyProType; |
| | | if (String.isEmpty(SecondDealer)) { |
| | | p.Order_ForHospital__c = String.isNotBlank(HospitalInfo) |
| | | ? HospitalInfo |
| | | : null; |
| | | p.Order_ForCustomerText__c = coc.Order_ForCustomerText__c; |
| | | //Integer pagestartNo = (setCon.getPageNumber() * size)-size; |
| | | //Integer pageendNo = (setCon.getPageNumber() * size)>noOfRecords ? noOfRecords :(setCon.getPageNumber() * size-1); |
| | | Integer addNo = 0; |
| | | //update by rentx 2021-2-26 start |
| | | System.debug('consumableorderdetailsSelectRecords.size() = ' + consumableorderdetailsSelectRecords.size()); |
| | | for (ConsumableorderdetailsInfo info : consumableorderdetailsSelectRecords) { |
| | | Consumable_Orderdetails__c orderdetails1 = new Consumable_Orderdetails__c(); |
| | | if ( |
| | | (info.hospitalSpecialOffer && selectedIdMap.containsKey(info.Prod.Id + 'ishos')) || |
| | | (info.hospitalSpecialOffer == false && selectedIdMap.containsKey(info.Prod.Id + 'nothos')) |
| | | ) { |
| | | addNo++; |
| | | } else { |
| | | if (info.check == false) { |
| | | info.orderdetails1 = orderdetails1; |
| | | } |
| | | pageRecords.add(info); |
| | | addNo++; |
| | | } |
| | | } |
| | | System.debug('pageRecords 2 = ' + pageRecords); |
| | | System.debug('zhj5'); |
| | | System.debug('pageRecords = ' + pageRecords); |
| | | return pageRecords; |
| | | } |
| | | |
| | | public static List<ConsumableorderdetailsInfo> makepagerecordsLwc() { |
| | | List<ConsumableorderdetailsInfoLwc> reSetLwc = new List<ConsumableorderdetailsInfoLwc>(); |
| | | Map<String, String> selectedIdMap = new Map<String, String>(); |
| | | skipData = new Map<String, String>(); |
| | | System.debug('makepagerecordsLwc pageRecordsLwc = ' + pageRecordsLwc); |
| | | //取出选择的产品 |
| | | if (pageRecordsLwc != null) { |
| | | for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) { |
| | | System.debug('ass.check = ' + ass.check); |
| | | if (ass.check == true) { |
| | | if (ass.hospitalSpecialOffer == true) { |
| | | selectedIdMap.put(ass.Prod.Id + 'ishos', ass.Prod.Id); |
| | | skipData.put(ass.Prod.Id + 'ishos', ass.Prod.Id); |
| | | } else { |
| | | selectedIdMap.put(ass.Prod.Id + 'nothos', ass.Prod.Id); |
| | | skipData.put(ass.Prod.Id + 'nothos', ass.Prod.Id); |
| | | } |
| | | reSetLwc.add(ass); |
| | | } |
| | | } |
| | | } |
| | | System.debug('selectedIdMap = ' + selectedIdMap); |
| | | pageRecords = new List<ConsumableorderdetailsInfo>(); |
| | | if (editAble && String.isBlank(arriveorder)) { |
| | | List<ConsumableorderdetailsInfo> reSet = new List<ConsumableorderdetailsInfo>(); |
| | | System.debug('reSetLwc = ' + reSetLwc); |
| | | for (ConsumableorderdetailsInfoLwc assLwc : reSetLwc) { |
| | | ConsumableorderdetailsInfo ci = new ConsumableorderdetailsInfo(); |
| | | ci.check = assLwc.check; |
| | | ci.oldCheck = assLwc.oldCheck; |
| | | ci.orderdetails1 = assLwc.orderdetails1; |
| | | ci.orderdetails2 = assLwc.orderdetails2; |
| | | ci.Prod = assLwc.Prod; |
| | | ci.Boxnumber = assLwc.Boxnumber; |
| | | ci.Piecenumber = assLwc.Piecenumber; |
| | | ci.allnumber = assLwc.allnumber; |
| | | ci.oldConsumableCount = assLwc.oldConsumableCount; |
| | | ci.canSelect = assLwc.canSelect; |
| | | ci.sortBy = assLwc.sortBy; |
| | | ci.packinglist = assLwc.packinglist; |
| | | ci.approbation_No = assLwc.approbation_No; |
| | | ci.expiration_Date = assLwc.expiration_Date; |
| | | ci.boxorpiecein = assLwc.boxorpiecein; |
| | | ci.boxorpiece = assLwc.boxorpiece; |
| | | ci.boxorpieceMap = assLwc.boxorpieceMap; |
| | | ci.concc = assLwc.concc; |
| | | ci.BoxPiece = assLwc.BoxPiece; |
| | | ci.hospitalSpecialOffer = assLwc.hospitalSpecialOffer; |
| | | ci.hosPro = assLwc.hosPro; |
| | | reSet.add(ci); |
| | | } |
| | | pageRecords = reSet; |
| | | System.debug('reSet = ' + reSet); |
| | | addData = reSet.clone(); |
| | | System.debug('addData = reSet = ' + addData); |
| | | } |
| | | //Integer pagestartNo = (setCon.getPageNumber() * size)-size; |
| | | //Integer pageendNo = (setCon.getPageNumber() * size)>noOfRecords ? noOfRecords :(setCon.getPageNumber() * size-1); |
| | | Integer addNo = 0; |
| | | //update by rentx 2021-2-26 start |
| | | System.debug('consumableorderdetailsSelectRecords.size() = ' + consumableorderdetailsSelectRecords.size()); |
| | | for (ConsumableorderdetailsInfo info : consumableorderdetailsSelectRecords) { |
| | | Consumable_Orderdetails__c orderdetails1 = new Consumable_Orderdetails__c(); |
| | | if ( |
| | | (info.hospitalSpecialOffer && selectedIdMap.containsKey(info.Prod.Id + 'ishos')) || |
| | | (info.hospitalSpecialOffer == false && selectedIdMap.containsKey(info.Prod.Id + 'nothos')) |
| | | ) { |
| | | System.debug('去掉的id : ' + info.Prod.Id); |
| | | addNo++; |
| | | addSize++; |
| | | } else { |
| | | if (info.check == false) { |
| | | info.orderdetails1 = orderdetails1; |
| | | } |
| | | pageRecords.add(info); |
| | | addNo++; |
| | | } |
| | | } |
| | | System.debug('pageRecords.size() = ' + pageRecords.size()); |
| | | System.debug('end addData = ' + addData); |
| | | return pageRecords; |
| | | } |
| | | |
| | | // 保存按钮 |
| | | @AuraEnabled |
| | | public static ResponseBodyLWC save( |
| | | Consumable_order__c cocLwc, |
| | | String hospitalInfoLwc, |
| | | String hospitalNameLwc, |
| | | String secondaryDistributorLwc, |
| | | List<ConsumableorderdetailsInfoLwc> pageRecordsLwc, |
| | | String accountidLwc, |
| | | String ESetIdLwc, |
| | | List<ConsumableorderdetailsInfo> consumableproductdetailsRecordsLwc, |
| | | String agencyProTypeLwc, |
| | | String userWorkLocationLwc |
| | | ) { |
| | | coc = cocLwc; |
| | | HospitalInfo = hospitalInfoLwc; |
| | | HospitalName = hospitalNameLwc; |
| | | SecondDealer = secondaryDistributorLwc; |
| | | pageRecordsLwc = pageRecordsLwc; |
| | | accountid = accountidLwc; |
| | | consumableproductdetailsRecords = consumableproductdetailsRecordsLwc; |
| | | ESetId = ESetIdLwc; |
| | | agencyProType = agencyProTypeLwc; |
| | | userWorkLocation = userWorkLocationLwc; |
| | | |
| | | System.debug('coc = ' + coc); |
| | | System.debug('HospitalInfo = ' + HospitalInfo); |
| | | System.debug('HospitalName = ' + HospitalName); |
| | | System.debug('SecondDealer = ' + SecondDealer); |
| | | p.Order_ForDealer__c = null; |
| | | } else { |
| | | p.Order_ForHospital__c = String.isNotBlank(HospitalInfo) |
| | | ? HospitalInfo |
| | | : null; |
| | | p.Order_ForCustomerText__c = coc.Order_ForCustomerText__c; |
| | | p.Order_ForDealer__c = SecondDealer; |
| | | } |
| | | P.Order_ForDealerText__c = coc.Order_ForDealerText__c; |
| | | P.Order_ForDealerTextID__c = coc.Order_ForDealerTextID__c; |
| | | p.Order_date__c = coc.Order_date__c; |
| | | p.SummonsForDirction__c = coc.SummonsForDirction__c; |
| | | //add by rentx |
| | | p.OutPattern__c = coc.OutPattern__c; |
| | | // update start by vivek 2019-7-15 |
| | | if (p.SummonsStatus_c__c == '价格未定') { |
| | | p.NoConfirmedPrice__c = false; |
| | | p.SummonsStatus_c__c = '已完成'; |
| | | } else { |
| | | p.SummonsStatus_c__c = '草案中'; |
| | | } |
| | | // p.SummonsStatus_c__c = '草案中'; |
| | | // update end by vivek 2019-7-15 |
| | | Integer i = 1; |
| | | //Map<String,String> ProductOldMap = new Map<String, String>(); |
| | | for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) { |
| | | if (ass.check == true) { |
| | | if (ass.orderdetails1.Delivery_List_RMB__c < 0) { |
| | | return new ResponseBodyLWC( |
| | | 'Error', |
| | | 500, |
| | | '请输入正确的出货单价 (元)', |
| | | '' |
| | | ); |
| | | } |
| | | Consumable_orderdetails__c InsAfterDel = new Consumable_orderdetails__c(); |
| | | if ( |
| | | (ass.orderdetails1.Delivery_List_RMB__c == null || |
| | | ass.orderdetails1.Delivery_List_RMB__c == 0) && |
| | | coc.SummonsForDirction__c != '医院试用' |
| | | ) { |
| | | return new ResponseBodyLWC('Error', 500, '请输入出货单价 (元)', ''); |
| | | } |
| | | if ( |
| | | ass.orderdetails1.Delivery_List_RMB__c == 0 && |
| | | (coc.SummonsForDirction__c == '销售给二级经销商' || |
| | | coc.SummonsForDirction__c == '直接销售给医院') |
| | | ) { |
| | | return new ResponseBodyLWC('Error', 500, '请输入出货单价 (元)', ''); |
| | | } |
| | | if ( |
| | | ass.orderdetails1.Box_Piece__c == null || |
| | | ass.orderdetails1.Box_Piece__c == '' |
| | | ) { |
| | | // ass.orderdetails1.Box_Piece__c.addError('请输入单位'); |
| | | System.debug('pageRecordsLwc = ' + pageRecordsLwc); |
| | | System.debug('accountid = ' + accountid); |
| | | System.debug('consumableproductdetailsRecords = ' + consumableproductdetailsRecords); |
| | | System.debug('ESetId = ' + ESetId); |
| | | ResponseBodyLWC res = new ResponseBodyLWC(); |
| | | Map<String, object> data = new Map<String, object>(); |
| | | res.entity = data; |
| | | //订单信息确认 |
| | | if (coc.SummonsForDirction__c == '' || coc.SummonsForDirction__c == null) { |
| | | // coc.SummonsForDirction__c.addError('请输入指示单目的'); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '请输入单位', ''); |
| | | } |
| | | if (ass.orderdetails1.Box_Piece__c == '盒') { |
| | | if (ass.orderdetails1.Shipment_Count__c > ass.Boxnumber) { |
| | | //ass.orderdetails1.Shipment_Count__c.addError('库存不足'); |
| | | if (ass.oldCheck == false) { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.Prod.Name__c + '库存不足')); |
| | | return new ResponseBodyLWC( |
| | | 'Error', |
| | | 500, |
| | | '消耗品' + ass.Prod.Name__c + '库存不足', |
| | | '' |
| | | ); |
| | | } else { |
| | | return new ResponseBodyLWC('Error', 500, '请输入指示单目的', ''); |
| | | } else if (coc.SummonsForDirction__c == '直接销售给医院') { |
| | | if (String.isBlank(HospitalInfo) || String.isBlank(HospitalName)) { |
| | | // coc.addError('请输入医院'); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '请输入医院', ''); |
| | | } |
| | | if (String.isBlank(coc.Order_ForCustomerText__c)) { |
| | | // coc.Order_ForCustomerText__c.addError('请输入科室'); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '请输入科室', ''); |
| | | } else if (String.isNotBlank(SecondDealer) || String.isNotBlank(coc.Order_ForDealerText__c)) { |
| | | // coc.addError('不需要二级经销商和经销商(录入)信息' ); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '不需要二级经销商和经销商(录入)信息', ''); |
| | | } |
| | | } else if (coc.SummonsForDirction__c == '医院试用') { |
| | | if (String.isBlank(HospitalInfo) || String.isBlank(HospitalName)) { |
| | | // coc.addError('请输入医院'); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '请输入医院', ''); |
| | | } |
| | | if (String.isBlank(coc.Order_ForCustomerText__c)) { |
| | | // coc.Order_ForCustomerText__c.addError('请输入科室'); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '请输入科室', ''); |
| | | } |
| | | } else if (coc.SummonsForDirction__c == '销售给二级经销商') { |
| | | if (String.isBlank(SecondDealer) && String.isBlank(coc.Order_ForDealerText__c)) { |
| | | // coc.addError('必须输入二级经销商或经销商(录入)'); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '必须输入二级经销商或经销商(录入)', ''); |
| | | } |
| | | if (String.isBlank(HospitalInfo) || String.isBlank(HospitalName)) { |
| | | // coc.addError('请输入医院'); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '请输入医院', ''); |
| | | } |
| | | if (String.isBlank(coc.Order_ForCustomerText__c)) { |
| | | // coc.Order_ForCustomerText__c.addError('请输入科室'); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '请输入科室', ''); |
| | | } |
| | | } else if (coc.SummonsForDirction__c == '互相调货') { |
| | | if (String.isNotBlank(HospitalInfo) || String.isNotBlank(HospitalName)) { |
| | | // coc.addError('不需要输入医院'); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '不需要输入医院', ''); |
| | | } |
| | | if (String.isNotBlank(coc.Order_ForCustomerText__c)) { |
| | | // coc.Order_ForCustomerText__c.addError('不需要输入科室'); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '不需要输入科室', ''); |
| | | } |
| | | if (String.isBlank(SecondDealer) && String.isBlank(coc.Order_ForDealerText__c)) { |
| | | // coc.addError('必须输入二级经销商或经销商(录入)'); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '必须输入二级经销商或经销商(录入)', ''); |
| | | } |
| | | } |
| | | |
| | | Integer isHos = 0; |
| | | |
| | | Integer FLG = 0; |
| | | Integer Count = 0; |
| | | for (ConsumableorderdetailsInfoLwc CheckCount : pageRecordsLwc) { |
| | | FLG = FLG + 1; |
| | | if (CheckCount.check == false) { |
| | | Count = Count + 1; |
| | | } else { |
| | | //add by rentx |
| | | if (CheckCount.hospitalSpecialOffer) { |
| | | isHos = isHos + 1; |
| | | } |
| | | //add by rentx |
| | | } |
| | | } |
| | | if (Count == FLG) { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '请选择所需消耗品')); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '请选择所需消耗品', ''); |
| | | } |
| | | // gzw 注释 判断提前 20210308 |
| | | //checkOutPattern(); |
| | | //根据用户选中的产品给 出库单上的是否医院特价出库字段赋值 |
| | | Integer isHosCheckOutPattern = 0; |
| | | for (ConsumableorderdetailsInfoLwc CheckCount : pageRecordsLwc) { |
| | | if (CheckCount.check == true && CheckCount.hospitalSpecialOffer == true) { |
| | | isHosCheckOutPattern = isHosCheckOutPattern + 1; |
| | | } |
| | | } |
| | | if (isHosCheckOutPattern > 0) { |
| | | coc.OutPattern__c = true; |
| | | } else { |
| | | coc.OutPattern__c = false; |
| | | } |
| | | |
| | | // add by rentx 2021-3-10 start |
| | | //特价医院出库非本医院维护的特价商品时,报错 非特价医院出库维护在医院特价关系表的产品时 报错 |
| | | if (coc.SummonsForDirction__c != '互相调货') { |
| | | //非特价医院出库特价产品时 报错(当前经销商下没有特价医院除外) |
| | | List<hospitalprice__c> hopList = [SELECT id, hospital__c, product__c FROM hospitalprice__c WHERE account__c = :accountid]; |
| | | //经销商对应医院下的所有特价产品 |
| | | Map<String, String> proMap = new Map<String, String>(); |
| | | //经销商下的所有特价产品 |
| | | Map<String, String> allProMap = new Map<String, String>(); |
| | | |
| | | if (hopList != null && hopList.size() > 0) { |
| | | Boolean flag = false; |
| | | if (HospitalInfo != null && HospitalInfo != '') { |
| | | for (hospitalprice__c hp : hopList) { |
| | | allProMap.put(hp.product__c, ''); |
| | | //如果当前 医院特价关系中的医院对应出库单上出库的医院,则放产品id到map |
| | | if (hp.hospital__c == HospitalInfo) { |
| | | flag = true; |
| | | proMap.put(hp.product__c, ''); |
| | | } |
| | | } |
| | | } |
| | | for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) { |
| | | if (ass.check == true) { |
| | | //判断选中的医院特价产品 |
| | | if (ass.hospitalSpecialOffer == true) { |
| | | //用户选中了当前医院下的特价产品 |
| | | if (proMap.containsKey(ass.Prod.Id)) { |
| | | continue; |
| | | //用户选中了没有维护特价医院的特价产品 |
| | | } else if (!allProMap.containsKey(ass.Prod.Id)) { |
| | | continue; |
| | | } else { |
| | | //用户选中非当前医院维护的特价产品 |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '当前医院没有维护 消耗品:'+ ass.Prod.Name__c +' 的特价')); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '当前医院没有维护 消耗品:' + ass.Prod.Name__c + '的特价', ''); |
| | | } |
| | | } //非医院特价产品可以出库给任意医院,所以不需要判断 |
| | | } |
| | | } |
| | | } |
| | | } else { |
| | | //如果是互相调货,判断 经销商(录入) 是否维护了 当前选中的特价产品 |
| | | List<hospitalprice__c> hopList = [ |
| | | SELECT id, hospital__c, product__c |
| | | FROM hospitalprice__c |
| | | WHERE account__c = :coc.Order_ForDealerTextID__c |
| | | ]; |
| | | Map<Id, String> proMap = new Map<Id, String>(); |
| | | if (hopList != null && hopList.size() > 0) { |
| | | for (hospitalprice__c hpc : hopList) { |
| | | proMap.put(hpc.product__c, ''); |
| | | } |
| | | |
| | | String proStr = ''; |
| | | for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) { |
| | | if (ass.check == true) { |
| | | if (ass.hospitalSpecialOffer == true) { |
| | | if (!proMap.containsKey(ass.Prod.Id)) { |
| | | proStr += ass.Prod.Name__c + ','; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if (proStr != '') { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '经销商:'+coc.Order_ForDealerText__c +' 没有消耗品:'+proStr.substring(0,proStr.length()-1) + ' 的特价')); |
| | | // return null; |
| | | return new ResponseBodyLWC( |
| | | 'Error', |
| | | 500, |
| | | '经销商:' + |
| | | coc.Order_ForDealerText__c + |
| | | ' 没有消耗品:' + |
| | | proStr.substring(0, proStr.length() - 1) + |
| | | ' 的特价', |
| | | '' |
| | | ); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // checkOutPattern(); |
| | | Consumable_order__c p = new Consumable_order__c(); |
| | | List<Consumable_orderdetails__c> Ins = new List<Consumable_orderdetails__c>(); |
| | | List<Consumable_order_details2__c> InsProduct = new List<Consumable_order_details2__c>(); |
| | | Savepoint sp = Database.setSavepoint(); |
| | | // try { |
| | | //新建订单时 |
| | | if (String.isEmpty(ESetId)) { |
| | | p.Name = '*'; |
| | | p.Order_type__c = '传票'; |
| | | p.Order_ProType__c = agencyProType; |
| | | if (coc.SummonsStatus_c__c == null || String.isBlank(coc.SummonsStatus_c__c)) |
| | | coc.SummonsStatus_c__c = '草案中'; |
| | | // update strat by vivek 2019-7-12 |
| | | p.NoConfirmedPrice__c = coc.NoConfirmedPrice__c; |
| | | // update end by vivek 2019-7-12 |
| | | p.SummonsStatus_c__c = coc.SummonsStatus_c__c; |
| | | if (coc.Arrive_Order__c != null) { |
| | | p.Arrive_Order__c = coc.Arrive_Order__c; |
| | | } |
| | | p.Offers_Price__c = coc.Offers_Price__c; |
| | | p.Dealer_Info__c = accountid; |
| | | if (String.isBlank(SecondDealer)) { |
| | | p.Order_ForHospital__c = String.isNotBlank(HospitalInfo) ? HospitalInfo : null; |
| | | p.Order_ForCustomerText__c = coc.Order_ForCustomerText__c; |
| | | } else { |
| | | p.Order_ForHospital__c = String.isNotBlank(HospitalInfo) ? HospitalInfo : null; |
| | | p.Order_ForCustomerText__c = coc.Order_ForCustomerText__c; |
| | | p.Order_ForDealer__c = SecondDealer; |
| | | } |
| | | P.Order_ForDealerText__c = coc.Order_ForDealerText__c; |
| | | P.Order_ForDealerTextID__c = coc.Order_ForDealerTextID__c; |
| | | p.Order_date__c = coc.Order_date__c; |
| | | p.SummonsForDirction__c = coc.SummonsForDirction__c; |
| | | p.RecordTypeid = System.Label.RT_ConOrder_Outboundorder; |
| | | // update start by vivek 2019-7-15 |
| | | p.NoConfirmedPrice__c = coc.NoConfirmedPrice__c; |
| | | // update end by vivek 2019-7-15 |
| | | //add by rentx |
| | | p.OutPattern__c = coc.OutPattern__c; |
| | | //add by rentx |
| | | //Map<String,String> ProductNewMap = new Map<String, String>(); |
| | | for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) { |
| | | if (ass.check == true) { |
| | | if (ass.orderdetails1.Delivery_List_RMB__c < 0) { |
| | | return new ResponseBodyLWC('Error', 500, '请输入正确的出货单价 (元)', ''); |
| | | } |
| | | if (ass.orderdetails1.Delivery_List_RMB__c == null && coc.SummonsForDirction__c != '医院试用') { |
| | | return new ResponseBodyLWC('Error', 500, '请输入正确的出货单价 (元)', ''); |
| | | } |
| | | if ((ass.orderdetails1.Delivery_List_RMB__c == null || ass.orderdetails1.Delivery_List_RMB__c == 0) && coc.SummonsForDirction__c != '医院试用') { |
| | | return new ResponseBodyLWC('Error', 500, '请输入出货单价 (元)', ''); |
| | | } |
| | | if ( |
| | | ass.orderdetails1.Delivery_List_RMB__c == 0 && |
| | | (coc.SummonsForDirction__c == '销售给二级经销商' || |
| | | coc.SummonsForDirction__c == '直接销售给医院') |
| | | ) { |
| | | return new ResponseBodyLWC('Error', 500, '请输入出货单价 (元)', ''); |
| | | } |
| | | if (ass.orderdetails1.Shipment_Count__c == null || ass.orderdetails1.Shipment_Count__c == 0) { |
| | | // ass.orderdetails1.Shipment_Count__c.addError('请输入出货数量'); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '请输入出货数量', ''); |
| | | } |
| | | |
| | | if (ass.orderdetails1.Box_Piece__c == null || ass.orderdetails1.Box_Piece__c == '') { |
| | | // ass.orderdetails1.Box_Piece__c.addError('请输入单位'); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '请输入单位', ''); |
| | | } |
| | | if (ass.orderdetails1.Box_Piece__c == '盒') { |
| | | if (ass.orderdetails1.Shipment_Count__c > ass.Boxnumber) { |
| | | //ass.orderdetails1.Shipment_Count__c.addError('库存不足'); |
| | | if (ass.oldCheck == false) { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.Prod.Name__c + '库存不足')); |
| | | return new ResponseBodyLWC('Error', 500, '消耗品' + ass.Prod.Name__c + '库存不足', ''); |
| | | } else { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.orderdetails1.Consumable_Product__r.Name__c + '库存不足')); |
| | | return new ResponseBodyLWC( |
| | | 'Error', |
| | | 500, |
| | | '消耗品' + |
| | | ass.orderdetails1.Consumable_Product__r.Name__c + |
| | | '库存不足', |
| | | '' |
| | | ); |
| | | } |
| | | } |
| | | } else if (ass.orderdetails1.Box_Piece__c == '个') { |
| | | if (ass.orderdetails1.Shipment_Count__c > ass.Piecenumber) { |
| | | //ass.orderdetails1.Shipment_Count__c.addError('库存不足'); |
| | | if (ass.oldCheck == false) { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.Prod.Name__c + '库存不足')); |
| | | return new ResponseBodyLWC('Error', 500, '消耗品' + ass.Prod.Name__c + '库存不足', ''); |
| | | } else { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.orderdetails1.Consumable_Product__r.Name__c + '库存不足')); |
| | | return new ResponseBodyLWC( |
| | | 'Error', |
| | | 500, |
| | | '消耗品' + |
| | | ass.orderdetails1.Consumable_Product__r.Name__c + |
| | | '库存不足', |
| | | '' |
| | | ); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | insert p; |
| | | ESetId = p.id; |
| | | List<Consumable_order__c> detailName = new List<Consumable_order__c>(); |
| | | detailName = [SELECT id, Name FROM Consumable_order__c WHERE id = :ESetId]; |
| | | Integer i = 1; |
| | | for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) { |
| | | if (ass.check == true) { |
| | | Consumable_orderdetails__c InsAfterDel = new Consumable_orderdetails__c(); |
| | | String str = string.valueOf(i); |
| | | if (str.length() == 1) { |
| | | str = '0' + str; |
| | | } |
| | | InsAfterDel.Name = detailName[0].name + '-' + str; |
| | | InsAfterDel.Shipment_Count__c = ass.orderdetails1.Shipment_Count__c; |
| | | InsAfterDel.Consumable_order__c = p.id; |
| | | InsAfterDel.Consumable_Product__c = ass.Prod.id; |
| | | InsAfterDel.Intra_Trade_List_RMB__c = ass.Prod.Intra_Trade_List_RMB__c; |
| | | InsAfterDel.Delivery_List_RMB__c = ass.orderdetails1.Delivery_List_RMB__c; |
| | | // TODO 默认 盒 ,需要修正 |
| | | InsAfterDel.Box_Piece__c = ass.orderdetails1.Box_Piece__c; |
| | | InsAfterDel.Out_unit__c = ass.orderdetails1.Box_Piece__c; |
| | | //InsAfterDel.Unitprice_To_agency__c = ass.orderdetails1.Unitprice_To_agency__c; |
| | | InsAfterDel.Dealer_Custom_Price__c = ass.orderdetails1.Dealer_Custom_Price__c; |
| | | InsAfterDel.RecordTypeId = System.Label.RT_ConOrderDetail1_Order; |
| | | //add by rentx 2021-2-26 start |
| | | InsAfterDel.isOutPattern__c = ass.hospitalSpecialOffer; |
| | | //add by rentx 2021-2-26 end |
| | | i++; |
| | | Ins.add(InsAfterDel); |
| | | } |
| | | } |
| | | // 如果 出库单 和 OCM发货Header连 的话,发货的Detail2 Copy到 出库单的Detail2里 |
| | | if (getExistarrive()) { |
| | | for (ConsumableorderdetailsInfo ass : consumableproductdetailsRecords) { |
| | | //BlockForP; |
| | | Consumable_order_details2__c InsProductDet = new Consumable_order_details2__c(); |
| | | InsProductDet.Id = ass.orderdetails2.Id; |
| | | InsProductDet.Consumable_ZS_order__c = p.id; |
| | | i++; |
| | | InsProduct.add(InsProductDet); |
| | | } |
| | | } |
| | | if (Ins.size() > 0) { |
| | | insert Ins; |
| | | } |
| | | if (InsProduct.size() > 0) { |
| | | //ControllerUtil.updateOrderDetailsSatus(InsProduct); |
| | | update InsProduct; |
| | | } |
| | | } else if (ESetId != null || ESetId.length() > 0) { |
| | | //修改之后 保存订单 |
| | | List<Consumable_order__c> cocinfo = new List<Consumable_order__c>(); |
| | | // update start by vivek 2019-7-15 add "NoConfirmedPrice__c" in select |
| | | cocinfo = [ |
| | | SELECT Id, Name, SummonsStatus_c__c, NoConfirmedPrice__c, Dealer_Info__c, Order_ForHospital__c, SummonsForDirction__c |
| | | FROM Consumable_order__c |
| | | WHERE Id = :ESetId |
| | | ]; |
| | | // update end by vivek 2019-7-15 |
| | | if (cocinfo.size() > 0) { |
| | | p = cocinfo[0]; |
| | | } |
| | | p.Name = coc.Name; |
| | | p.Dealer_Info__c = accountid; |
| | | p.Order_ProType__c = agencyProType; |
| | | if (String.isEmpty(SecondDealer)) { |
| | | p.Order_ForHospital__c = String.isNotBlank(HospitalInfo) ? HospitalInfo : null; |
| | | p.Order_ForCustomerText__c = coc.Order_ForCustomerText__c; |
| | | System.debug('SecondDealer = ' + SecondDealer); |
| | | p.Order_ForDealer__c = null; |
| | | } else { |
| | | p.Order_ForHospital__c = String.isNotBlank(HospitalInfo) ? HospitalInfo : null; |
| | | p.Order_ForCustomerText__c = coc.Order_ForCustomerText__c; |
| | | p.Order_ForDealer__c = SecondDealer; |
| | | } |
| | | P.Order_ForDealerText__c = coc.Order_ForDealerText__c; |
| | | P.Order_ForDealerTextID__c = coc.Order_ForDealerTextID__c; |
| | | p.Order_date__c = coc.Order_date__c; |
| | | p.SummonsForDirction__c = coc.SummonsForDirction__c; |
| | | //add by rentx |
| | | p.OutPattern__c = coc.OutPattern__c; |
| | | // update start by vivek 2019-7-15 |
| | | if (p.SummonsStatus_c__c == '价格未定') { |
| | | p.NoConfirmedPrice__c = false; |
| | | p.SummonsStatus_c__c = '已完成'; |
| | | } else { |
| | | p.SummonsStatus_c__c = '草案中'; |
| | | } |
| | | // p.SummonsStatus_c__c = '草案中'; |
| | | // update end by vivek 2019-7-15 |
| | | Integer i = 1; |
| | | //Map<String,String> ProductOldMap = new Map<String, String>(); |
| | | for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) { |
| | | if (ass.check == true) { |
| | | if (ass.orderdetails1.Delivery_List_RMB__c < 0) { |
| | | return new ResponseBodyLWC('Error', 500, '请输入正确的出货单价 (元)', ''); |
| | | } |
| | | Consumable_orderdetails__c InsAfterDel = new Consumable_orderdetails__c(); |
| | | if ((ass.orderdetails1.Delivery_List_RMB__c == null || ass.orderdetails1.Delivery_List_RMB__c == 0) && coc.SummonsForDirction__c != '医院试用') { |
| | | return new ResponseBodyLWC('Error', 500, '请输入出货单价 (元)', ''); |
| | | } |
| | | if ( |
| | | ass.orderdetails1.Delivery_List_RMB__c == 0 && |
| | | (coc.SummonsForDirction__c == '销售给二级经销商' || |
| | | coc.SummonsForDirction__c == '直接销售给医院') |
| | | ) { |
| | | return new ResponseBodyLWC('Error', 500, '请输入出货单价 (元)', ''); |
| | | } |
| | | if (ass.orderdetails1.Box_Piece__c == null || ass.orderdetails1.Box_Piece__c == '') { |
| | | // ass.orderdetails1.Box_Piece__c.addError('请输入单位'); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '请输入单位', ''); |
| | | } |
| | | if (ass.orderdetails1.Box_Piece__c == '盒') { |
| | | if (ass.orderdetails1.Shipment_Count__c > ass.Boxnumber) { |
| | | //ass.orderdetails1.Shipment_Count__c.addError('库存不足'); |
| | | if (ass.oldCheck == false) { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.Prod.Name__c + '库存不足')); |
| | | return new ResponseBodyLWC('Error', 500, '消耗品' + ass.Prod.Name__c + '库存不足', ''); |
| | | } else { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.orderdetails1.Consumable_Product__r.Name__c + '库存不足')); |
| | | return new ResponseBodyLWC( |
| | | 'Error', |
| | | 500, |
| | | '消耗品' + |
| | | ass.orderdetails1.Consumable_Product__r.Name__c + |
| | | '库存不足', |
| | | '' |
| | | ); |
| | | } |
| | | } |
| | | } else if (ass.orderdetails1.Box_Piece__c == '个') { |
| | | if (ass.orderdetails1.Shipment_Count__c > ass.Piecenumber) { |
| | | if (ass.oldCheck == false) { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.Prod.Name__c + '库存不足')); |
| | | return new ResponseBodyLWC('Error', 500, '消耗品' + ass.Prod.Name__c + '库存不足', ''); |
| | | } else { |
| | | //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.orderdetails1.Consumable_Product__r.Name__c + '库存不足')); |
| | | return new ResponseBodyLWC( |
| | | 'Error', |
| | | 500, |
| | | '消耗品' + |
| | | ass.orderdetails1.Consumable_Product__r.Name__c + |
| | | '库存不足', |
| | | '' |
| | | ); |
| | | } |
| | | } |
| | | } |
| | | if (ass.orderdetails1.Shipment_Count__c == null || ass.orderdetails1.Shipment_Count__c == 0) { |
| | | // ass.orderdetails1.Shipment_Count__c.addError('请输入出货数量'); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '请输入出货数量', ''); |
| | | } else { |
| | | String str = string.valueOf(i); |
| | | if (str.length() == 1) { |
| | | str = '0' + str; |
| | | } |
| | | InsAfterDel.Name = p.name + '-' + str; |
| | | InsAfterDel.Shipment_Count__c = ass.orderdetails1.Shipment_Count__c; |
| | | InsAfterDel.Consumable_order__c = ESetId; |
| | | System.debug('ass.Prod.id:' + ass.Prod.id); |
| | | InsAfterDel.Consumable_Product__c = ass.Prod.id; |
| | | InsAfterDel.Intra_Trade_List_RMB__c = ass.Prod.Intra_Trade_List_RMB__c; |
| | | InsAfterDel.Delivery_List_RMB__c = ass.orderdetails1.Delivery_List_RMB__c; |
| | | InsAfterDel.Box_Piece__c = ass.orderdetails1.Box_Piece__c; |
| | | InsAfterDel.Out_unit__c = ass.orderdetails1.Box_Piece__c; |
| | | //InsAfterDel.Unitprice_To_agency__c = ass.orderdetails1.Unitprice_To_agency__c; |
| | | InsAfterDel.Dealer_Custom_Price__c = ass.orderdetails1.Dealer_Custom_Price__c; |
| | | InsAfterDel.RecordTypeId = System.Label.RT_ConOrderDetail1_Order; |
| | | //add by rentx 2021-2-26 start |
| | | InsAfterDel.isOutPattern__c = ass.hospitalSpecialOffer; |
| | | //add by rentx 2021-2-26 end |
| | | i++; |
| | | Ins.add(InsAfterDel); |
| | | } |
| | | } |
| | | } |
| | | update p; |
| | | List<Consumable_orderdetails__c> qs = new List<Consumable_orderdetails__c>(); |
| | | qs = [SELECT Id FROM Consumable_orderdetails__c WHERE Consumable_order__c = :ESetId]; |
| | | if (qs.size() > 0) { |
| | | delete qs; |
| | | } |
| | | if (Ins.size() > 0) { |
| | | insert Ins; |
| | | } |
| | | } |
| | | // }catch (Exception ex) { |
| | | // Database.rollback(sp); |
| | | // // ApexPages.addMessages(ex); |
| | | // // return null; |
| | | // //return new ResponseBodyLWC('Error',500, ex.getMessage(), ''); |
| | | // return new ResponseBodyLWC('Error',500, JSON.serialize(ex), ''); |
| | | // } |
| | | data.put('ESetId', ESetId); |
| | | res.status = 'Success'; |
| | | res.code = 200; |
| | | System.debug('res = ' + res); |
| | | return res; |
| | | } |
| | | |
| | | public static void checkOutPattern() { |
| | | //根据用户选中的产品给 出库单上的是否医院特价出库字段赋值 |
| | | Integer isHos = 0; |
| | | for (ConsumableorderdetailsInfo CheckCount : pageRecords) { |
| | | if (CheckCount.check == true && CheckCount.hospitalSpecialOffer == true) { |
| | | ishos = ishos + 1; |
| | | } |
| | | } |
| | | if (isHos > 0) { |
| | | coc.OutPattern__c = true; |
| | | } else { |
| | | coc.OutPattern__c = false; |
| | | } |
| | | } |
| | | |
| | | //打印PDF |
| | | @AuraEnabled |
| | | public static ResponseBodyLWC PraseToPDF(Consumable_order__c cocLwc, String ESetId) { |
| | | System.debug('cocLwc = ' + cocLwc); |
| | | System.debug('ESetId = ' + ESetId); |
| | | coc = cocLwc; |
| | | ResponseBodyLWC res = new ResponseBodyLWC(); |
| | | Map<String, object> data = new Map<String, object>(); |
| | | res.entity = data; |
| | | |
| | | if (coc.SummonsStatus_c__c == '批准') { |
| | | Consumable_order__c P = new Consumable_order__c(); |
| | | List<Consumable_order__c> cocinfo = new List<Consumable_order__c>(); |
| | | // update start by vivek 2019-7-15 add “NoConfirmedPrice__c” in select |
| | | cocinfo = [ |
| | | SELECT |
| | | Id, |
| | | Name, |
| | | SummonsStatus_c__c, |
| | | NoConfirmedPrice__c, |
| | | Dealer_Info__c, |
| | | Order_ForHospital__c, |
| | | SummonsForDirction__c, |
| | | Billed_Status__c |
| | | FROM Consumable_order__c |
| | | WHERE Id = :ESetId |
| | | ]; |
| | | // update end by vivek 2019-7-15 |
| | | if (cocinfo.size() > 0) { |
| | | p = cocinfo[0]; |
| | | } |
| | | p.SummonsStatus_c__c = '出库单已打印'; |
| | | update p; |
| | | } |
| | | data.put('ESetId', ESetId); |
| | | res.status = 'Success'; |
| | | res.code = 200; |
| | | System.debug('res = ' + res); |
| | | return res; |
| | | } |
| | | |
| | | //查找经销商 |
| | | @AuraEnabled(cacheable=true scope='global') |
| | | public static List<LookupSearchResult> search(String searchTerm) { |
| | | System.debug('searchTerm = ' + searchTerm); |
| | | String nameCondition = ''; |
| | | nameCondition += '%' + String.escapeSingleQuotes(searchTerm.replaceAll('%', '\\%')) + '%'; |
| | | List<Account> accs = new List<Account>(); |
| | | System.debug('nameCondition = ' + nameCondition); |
| | | //查询条件修改 |
| | | //筛选判断条件:当前财年的4/1 ~ 第二年的6/30 & ET or ENG类型 & 当前用户类型 |
| | | //1 and 2 |
| | | //1. Integer year 2022/4/1 ~ 2023/6/30 |
| | | //开始日期 + 结束日期 |
| | | //Contract_Decide_Start_Date__c>=开始日期 and Contract_Decide_End_Date__c<结束日期 |
| | | //2. 添加经销商允销类型:ET经销商协议;ENG耗材经销商协议 |
| | | //取当前用户的类型,如果用户类型是ET,ET经销商协议 = true |
| | | // Date today = Date.today(); |
| | | // Integer thisYear = today.year(); |
| | | // Integer nextYear = today.year() + 1; |
| | | // Date thisDatetime = Date.newInstance(thisYear, 4, 1); |
| | | // Date nextDatetime = Date.newInstance(nextYear, 6, 30); |
| | | // System.debug('thisDatetime = ' + thisDatetime); |
| | | // System.debug('nextDatetime = ' + nextDatetime); |
| | | |
| | | // User UserProTypecTemp = [select UserPro_Type__c from User where id =: UserInfo.getUserId()]; |
| | | // System.debug('UserInfo.getUserId() = ' + UserInfo.getUserId()); |
| | | // System.debug('UserProTypecTemp = ' + UserProTypecTemp); |
| | | // System.debug('UserProTypecTemp.UserPro_Type__c = ' + UserProTypecTemp.UserPro_Type__c); |
| | | // if (UserProTypecTemp.UserPro_Type__c == 'ENG') { |
| | | // accs = [ |
| | | // SELECT Id, Name, Department_Class__c, Department_Class__r.Name, Hospital__c, Hospital__r.Name, BillingCity |
| | | // FROM Account |
| | | // WHERE |
| | | // // Name = '奥林巴斯(北京)销售服务有限公司' |
| | | // // AND |
| | | // Name LIKE :nameCondition |
| | | // AND RecordType.DeveloperName = 'AgencyContract' |
| | | // AND Contract_Decide_Start_Date__c >= :thisDatetime |
| | | // AND Contract_Decide_End_Date__c <= :nextDatetime |
| | | // AND ENG_Dealer__c = true |
| | | // ORDER BY Name |
| | | // LIMIT 49 |
| | | // ]; |
| | | // } |
| | | // if (UserProTypecTemp.UserPro_Type__c == 'ET') { |
| | | // accs = [ |
| | | // SELECT Id, Name, Department_Class__c, Department_Class__r.Name, Hospital__c, Hospital__r.Name, BillingCity |
| | | // FROM Account |
| | | // WHERE |
| | | // // Name = '奥林巴斯(北京)销售服务有限公司' |
| | | // // AND |
| | | // Name LIKE :nameCondition |
| | | // AND RecordType.DeveloperName = 'AgencyContract' |
| | | // AND Contract_Decide_Start_Date__c >= :thisDatetime |
| | | // AND Contract_Decide_End_Date__c <= :nextDatetime |
| | | // AND ET_SP_Dealer__c = true |
| | | // ORDER BY Name |
| | | // LIMIT 49 |
| | | // ]; |
| | | // } |
| | | |
| | | |
| | | Date today = Date.today(); |
| | | //Date today = Date.newInstance(2023, 3, 1); |
| | | Integer thisMonth = today.month(); |
| | | System.debug('thisMonth = ' + thisMonth); |
| | | |
| | | Integer lastYear = today.year() - 1; |
| | | Integer thisYear = today.year(); |
| | | Integer nextYear = today.year() + 1; |
| | | |
| | | Date lastDatetime = Date.newInstance(lastYear, 4, 1); |
| | | Date thisDatetime = Date.newInstance(thisYear, 4, 1); |
| | | Date thisDatetime2 = Date.newInstance(thisYear, 7, 1); |
| | | Date nextDatetime = Date.newInstance(nextYear, 7, 1); |
| | | System.debug('lastDatetime = ' + lastDatetime); |
| | | System.debug('thisDatetime = ' + thisDatetime); |
| | | System.debug('thisDatetime2 = ' + thisDatetime2); |
| | | System.debug('nextDatetime = ' + nextDatetime); |
| | | System.debug('UserInfo.getUserId() = ' + UserInfo.getUserId()); |
| | | User UserProTypecTemp = [select UserPro_Type__c from User where id =: UserInfo.getUserId()]; |
| | | |
| | | String sql = 'SELECT id, Parentid FROM Account WHERE Parent.Name LIKE :nameCondition '; |
| | | if(thisMonth < 4){ |
| | | sql += 'AND Contract_Decide_Start_Date__c >= :lastDatetime AND Contract_Decide_End_Date__c < :thisDatetime2 '; |
| | | }else if(thisMonth >= 4 && thisMonth <= 6){ |
| | | sql += 'AND Contract_Decide_Start_Date__c >= :lastDatetime AND Contract_Decide_End_Date__c < :nextDatetime '; |
| | | }else{ |
| | | sql += 'AND Contract_Decide_Start_Date__c >= :thisDatetime AND Contract_Decide_End_Date__c < :nextDatetime '; |
| | | } |
| | | if (UserProTypecTemp.UserPro_Type__c == 'ENG') { |
| | | sql += 'AND ENG_Dealer__c = true'; |
| | | } |
| | | if (UserProTypecTemp.UserPro_Type__c == 'ET') { |
| | | sql += 'AND ET_SP_Dealer__c = true'; |
| | | } |
| | | System.debug('sql = ' + sql); |
| | | accs = Database.query(sql); |
| | | // 用于保存特约经销商匹配到的其父类的id |
| | | Set<String> pids = new Set<String>(); |
| | | for (Account acc : accs) { |
| | | pids.add(acc.Parentid); |
| | | } |
| | | |
| | | accs = [ |
| | | SELECT Id, Name, Department_Class__c, Department_Class__r.Name, Hospital__c, Hospital__r.Name, BillingCity |
| | | FROM Account |
| | | WHERE |
| | | (Id IN :pids |
| | | OR (Name = '奥林巴斯(北京)销售服务有限公司' |
| | | AND Name LIKE :nameCondition)) |
| | | AND RecordType.DeveloperName = 'Agency' |
| | | ORDER BY Name |
| | | LIMIT 49 |
| | | ]; |
| | | |
| | | // accs = [ |
| | | // SELECT id, Parentid |
| | | // FROM Account |
| | | // WHERE |
| | | // Parent.Name LIKE :nameCondition |
| | | // AND Contract_Decide_Start_Date__c <= :Date.Today() |
| | | // AND Contract_Decide_End_Date__c >= :Date.Today() |
| | | // ]; |
| | | |
| | | // 用于保存特约经销商匹配到的其父类的id |
| | | // Set<String> pids = new Set<String>(); |
| | | // for (Account acc : accs) { |
| | | // pids.add(acc.Parentid); |
| | | // } |
| | | // accs = [ |
| | | // SELECT Id, Name, Department_Class__c, Department_Class__r.Name, Hospital__c, Hospital__r.Name, BillingCity |
| | | // FROM Account |
| | | // WHERE |
| | | // (Id IN :pids |
| | | // OR (Name = '奥林巴斯(北京)销售服务有限公司' |
| | | // AND Name LIKE :nameCondition)) |
| | | // AND RecordType.DeveloperName = 'Agency' |
| | | // AND Is_Active__c != '無効' |
| | | // ORDER BY Name |
| | | // LIMIT 5 |
| | | // ]; |
| | | System.debug('accs = ' + accs); |
| | | List<LookupSearchResult> results = new List<LookupSearchResult>(); |
| | | String accountIcon = 'standard:account'; |
| | | for (Account account : accs) { |
| | | String subtitle = account.BillingCity == null ? 'Account' : 'Account • ' + account.BillingCity; |
| | | results.add(new LookupSearchResult(account.Id, 'Account', accountIcon, account.Name, subtitle)); |
| | | } |
| | | results.sort(); |
| | | System.debug('results = ' + results); |
| | | return results; |
| | | } |
| | | |
| | | //保存附件 |
| | | @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; |
| | | return cv.Id; |
| | | } |
| | | |
| | | //获取附件 |
| | | @AuraEnabled |
| | | public static ResponseBodyLWC getFiles(Id recordId) { |
| | | System.debug('getFiles recordId = ' + recordId); |
| | | ResponseBodyLWC res = new ResponseBodyLWC(); |
| | | Map<String, object> data = new Map<String, object>(); |
| | | res.entity = data; |
| | | List<ContentVersion> cvList = new List<ContentVersion>(); |
| | | List<ContentDocumentLink> links = [SELECT Id, ContentDocumentId FROM ContentDocumentLink WHERE LinkedEntityId = :recordId]; |
| | | 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++) { |
| | | cvList.add(cvInfo[i]); |
| | | } |
| | | } |
| | | } |
| | | // List<ContentVersion> cvList = [ |
| | | // SELECT id, Title, CreatedBy.Name, PathOnClient, CreatedDate, ContentDocumentId |
| | | // FROM ContentVersion |
| | | // WHERE FirstPublishLocationId = :recordId |
| | | // ]; |
| | | data.put('cvList', cvList); |
| | | res.status = 'Success'; |
| | | res.code = 200; |
| | | System.debug('res = ' + res); |
| | | return res; |
| | | } |
| | | |
| | | //删除附件 |
| | | @AuraEnabled |
| | | public static ResponseBodyLWC deleteAtt(String contentVersionId){ |
| | | try { |
| | | ContentVersion conVersion = [SELECT ContentDocumentId FROM ContentVersion WHERE Id = :contentVersionId]; |
| | | String contentDocumentId = conVersion.ContentDocumentId; |
| | | ContentDocument conDocument = [SELECT Id FROM ContentDocument where Id = :contentDocumentId]; |
| | | delete conDocument; |
| | | return new ResponseBodyLWC('Success',200,'',''); |
| | | } catch (Exception e) { |
| | | return new ResponseBodyLWC('Error',500, e.getMessage() + e.getLineNumber(), ''); |
| | | } |
| | | } |
| | | |
| | | //跳转出货/销售 |
| | | @AuraEnabled |
| | | public static ResponseBodyLWC GoodsDelivery( |
| | | Consumable_order__c cocLwc, |
| | | String ESetId, |
| | | List<ConsumableorderdetailsInfoLwc> pageRecordsLwcLwc |
| | | ) { |
| | | ResponseBodyLWC res = new ResponseBodyLWC(); |
| | | Map<String, object> data = new Map<String, object>(); |
| | | res.entity = data; |
| | | coc = cocLwc; |
| | | ESetId = ESetId; |
| | | pageRecordsLwc = pageRecordsLwcLwc; |
| | | if (coc.SummonsForDirction__c == '互相调货') { |
| | | List<Account> accList = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE Name = :coc.Order_ForDealerText__c AND RecordType.DeveloperName = 'Agency' |
| | | ]; |
| | | if (accList.size() < 1) { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '请输入二级经销商全称!')); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '请输入二级经销商全称!', ''); |
| | | } |
| | | } |
| | | if (coc.SummonsStatus_c__c == '批准') { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '请先打印指示单!')); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '请先打印指示单!', ''); |
| | | } |
| | | for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) { |
| | | if (ass.orderdetails1.Shipment_Count__c > ass.allnumber) { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.orderdetails1.Consumable_Product__r.Name__c + '库存不足')); |
| | | return new ResponseBodyLWC( |
| | | 'Error', |
| | | 500, |
| | | '消耗品' + |
| | | ass.orderdetails1.Consumable_Product__r.Name__c + |
| | | '库存不足', |
| | | '' |
| | | ); |
| | | } |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '消耗品' + ass.orderdetails1.Consumable_Product__r.Name__c + '库存不足', ''); |
| | | } |
| | | } else if (ass.orderdetails1.Box_Piece__c == '个') { |
| | | if (ass.orderdetails1.Shipment_Count__c > ass.Piecenumber) { |
| | | if (ass.oldCheck == false) { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.Prod.Name__c + '库存不足')); |
| | | return new ResponseBodyLWC( |
| | | 'Error', |
| | | 500, |
| | | '消耗品' + ass.Prod.Name__c + '库存不足', |
| | | '' |
| | | ); |
| | | } else { |
| | | //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.orderdetails1.Consumable_Product__r.Name__c + '库存不足')); |
| | | return new ResponseBodyLWC( |
| | | 'Error', |
| | | 500, |
| | | '消耗品' + |
| | | ass.orderdetails1.Consumable_Product__r.Name__c + |
| | | '库存不足', |
| | | '' |
| | | ); |
| | | } |
| | | } |
| | | data.put('ESetid', ESetid); |
| | | res.status = 'Success'; |
| | | res.code = 200; |
| | | System.debug('res = ' + res); |
| | | return res; |
| | | } |
| | | |
| | | //删除按钮 |
| | | @AuraEnabled |
| | | public static ResponseBodyLWC DelConsumable(String ESetId) { |
| | | ResponseBodyLWC res = new ResponseBodyLWC(); |
| | | Map<String, object> data = new Map<String, object>(); |
| | | res.entity = data; |
| | | |
| | | ESetId = ESetId; |
| | | |
| | | Savepoint sp = Database.setSavepoint(); |
| | | try { |
| | | List<Consumable_order__c> qs = new List<Consumable_order__c>(); |
| | | List<Consumable_orderdetails__c> Dqs = new List<Consumable_orderdetails__c>(); |
| | | Dqs = [SELECT Id FROM Consumable_orderdetails__c WHERE Consumable_order__c = :ESetId]; |
| | | qs = [SELECT Id FROM Consumable_order__c WHERE Id = :ESetId]; |
| | | if (Dqs.size() > 0 || qs.size() > 0) { |
| | | delete Dqs; |
| | | delete qs; |
| | | } |
| | | } |
| | | if ( |
| | | ass.orderdetails1.Shipment_Count__c == null || |
| | | ass.orderdetails1.Shipment_Count__c == 0 |
| | | ) { |
| | | // ass.orderdetails1.Shipment_Count__c.addError('请输入出货数量'); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '请输入出货数量', ''); |
| | | } else { |
| | | String str = string.valueOf(i); |
| | | if (str.length() == 1) { |
| | | str = '0' + str; |
| | | } catch (Exception e) { |
| | | Database.rollback(sp); |
| | | System.debug(e.getMessage() + e.getLineNumber()); |
| | | return new ResponseBodyLWC('Error', 500, e.getMessage(), ''); |
| | | } |
| | | res.status = 'Success'; |
| | | res.code = 200; |
| | | System.debug('res = ' + res); |
| | | return res; |
| | | } |
| | | |
| | | // Data Bean |
| | | @TestVisible |
| | | class ConsumableorderdetailsInfo implements Comparable { |
| | | @AuraEnabled |
| | | public Boolean check { get; set; } |
| | | @AuraEnabled |
| | | public Boolean oldCheck { get; set; } |
| | | @AuraEnabled |
| | | public Consumable_Orderdetails__c orderdetails1 { get; set; } |
| | | @AuraEnabled |
| | | public Consumable_order_details2__c orderdetails2 { get; set; } |
| | | @AuraEnabled |
| | | public Product2__c Prod { get; set; } |
| | | @AuraEnabled |
| | | public Decimal Boxnumber { get; set; } |
| | | @AuraEnabled |
| | | public Decimal Piecenumber { get; set; } |
| | | @AuraEnabled |
| | | public Decimal allnumber { get; set; } |
| | | @AuraEnabled |
| | | public Decimal oldConsumableCount { get; set; } |
| | | @AuraEnabled |
| | | public Boolean canSelect { get; set; } |
| | | @AuraEnabled |
| | | public Boolean sortBy { get; set; } |
| | | @AuraEnabled |
| | | public Integer packinglist { get; set; } |
| | | @AuraEnabled |
| | | public String approbation_No { get; set; } |
| | | @AuraEnabled |
| | | public Date expiration_Date { get; set; } |
| | | @AuraEnabled |
| | | public String boxorpiecein { get; set; } |
| | | |
| | | public List<SelectOption> boxorpiece { get; set; } |
| | | @AuraEnabled |
| | | public Map<String, String> boxorpieceMap { get; set; } |
| | | @AuraEnabled |
| | | public Attachment concc { get; set; } |
| | | @AuraEnabled |
| | | public String BoxPiece { get; set; } |
| | | @AuraEnabled |
| | | public Boolean hospitalSpecialOffer { get; set; } |
| | | @AuraEnabled |
| | | public Boolean hosPro { get; set; } |
| | | |
| | | public ConsumableorderdetailsInfo() { |
| | | } |
| | | |
| | | public ConsumableorderdetailsInfo(Consumable_Orderdetails__c e) { |
| | | check = true; |
| | | oldCheck = true; |
| | | orderdetails1 = e; |
| | | orderdetails2 = new Consumable_order_details2__c(); |
| | | Prod = e.Consumable_Product__r; |
| | | oldConsumableCount = e.Shipment_Count__c; |
| | | canSelect = true; |
| | | allnumber = 0; |
| | | Boxnumber = 0; |
| | | Piecenumber = 0; |
| | | BoxPiece = e.Box_Piece__c; |
| | | boxorpiece = new List<SelectOption>(); |
| | | boxorpiece.add(new SelectOption('盒', '盒')); |
| | | boxorpiece.add(new SelectOption('个', '个')); |
| | | |
| | | boxorpieceMap = new Map<String, String>(); |
| | | boxorpieceMap.put('盒', '盒'); |
| | | boxorpieceMap.put('个', '个'); |
| | | hospitalSpecialOffer = false; |
| | | hosPro = false; |
| | | } |
| | | |
| | | // 消耗品发货明细 |
| | | public ConsumableorderdetailsInfo(Consumable_order_details2__c e) { |
| | | check = true; |
| | | oldCheck = true; |
| | | orderdetails1 = new Consumable_Orderdetails__c(); |
| | | orderdetails2 = e; |
| | | Prod = e.Consumable_Product__r; |
| | | canSelect = true; |
| | | allnumber = 0; |
| | | Boxnumber = 0; |
| | | Piecenumber = 0; |
| | | //boxorpiece = new List<SelectOption>(); |
| | | //boxorpiece.add(new SelectOption('盒', '盒')); |
| | | //boxorpiece.add(new SelectOption('个', '个')); |
| | | hospitalSpecialOffer = false; |
| | | hosPro = false; |
| | | } |
| | | |
| | | //附件 |
| | | @TestVisible |
| | | public ConsumableorderdetailsInfo(Attachment e) { |
| | | concc = e; |
| | | hospitalSpecialOffer = false; |
| | | hosPro = false; |
| | | } |
| | | |
| | | public ConsumableorderdetailsInfo(Product2__c e) { |
| | | check = false; |
| | | oldCheck = false; |
| | | orderdetails1 = new Consumable_Orderdetails__c(); |
| | | orderdetails2 = new Consumable_order_details2__c(); |
| | | Prod = e; |
| | | //oldConsumableCount = null; |
| | | canSelect = true; |
| | | allnumber = 0; |
| | | Boxnumber = 0; |
| | | Piecenumber = 0; |
| | | orderdetails1.Box_Piece__c = '盒'; |
| | | boxorpiece = new List<SelectOption>(); |
| | | boxorpiece.add(new SelectOption('盒', '盒')); |
| | | boxorpiece.add(new SelectOption('个', '个')); |
| | | |
| | | boxorpieceMap = new Map<String, String>(); |
| | | boxorpieceMap.put('盒', '盒'); |
| | | boxorpieceMap.put('个', '个'); |
| | | hospitalSpecialOffer = false; |
| | | hosPro = false; |
| | | } |
| | | |
| | | // 排序 |
| | | public Integer compareTo(Object compareTo) { |
| | | ConsumableorderdetailsInfo compareToorderdetails1 = (ConsumableorderdetailsInfo) compareTo; |
| | | Integer returnValue = 0; |
| | | if (sortBy == false) { |
| | | if (Boxnumber > compareToorderdetails1.Boxnumber) { |
| | | returnValue = -1; |
| | | } else if (Boxnumber < compareToorderdetails1.Boxnumber) { |
| | | returnValue = 1; |
| | | } |
| | | return returnValue; |
| | | } else { |
| | | if (Boxnumber > compareToorderdetails1.Boxnumber) { |
| | | returnValue = 1; |
| | | } else if (Boxnumber < compareToorderdetails1.Boxnumber) { |
| | | returnValue = -1; |
| | | } |
| | | return returnValue; |
| | | } |
| | | InsAfterDel.Name = p.name + '-' + str; |
| | | InsAfterDel.Shipment_Count__c = ass.orderdetails1.Shipment_Count__c; |
| | | InsAfterDel.Consumable_order__c = ESetId; |
| | | InsAfterDel.Consumable_Product__c = ass.Prod.id; |
| | | InsAfterDel.Intra_Trade_List_RMB__c = ass.Prod.Intra_Trade_List_RMB__c; |
| | | InsAfterDel.Delivery_List_RMB__c = ass.orderdetails1.Delivery_List_RMB__c; |
| | | InsAfterDel.Box_Piece__c = ass.orderdetails1.Box_Piece__c; |
| | | InsAfterDel.Out_unit__c = ass.orderdetails1.Box_Piece__c; |
| | | //InsAfterDel.Unitprice_To_agency__c = ass.orderdetails1.Unitprice_To_agency__c; |
| | | InsAfterDel.Dealer_Custom_Price__c = ass.orderdetails1.Dealer_Custom_Price__c; |
| | | InsAfterDel.RecordTypeId = System.Label.RT_ConOrderDetail1_Order; |
| | | //add by rentx 2021-2-26 start |
| | | InsAfterDel.isOutPattern__c = ass.hospitalSpecialOffer; |
| | | //add by rentx 2021-2-26 end |
| | | i++; |
| | | Ins.add(InsAfterDel); |
| | | } |
| | | } |
| | | } |
| | | update p; |
| | | List<Consumable_orderdetails__c> qs = new List<Consumable_orderdetails__c>(); |
| | | qs = [ |
| | | SELECT Id |
| | | FROM Consumable_orderdetails__c |
| | | WHERE Consumable_order__c = :ESetId |
| | | ]; |
| | | if (qs.size() > 0) { |
| | | delete qs; |
| | | } |
| | | if (Ins.size() > 0) { |
| | | insert Ins; |
| | | } |
| | | } |
| | | // }catch (Exception ex) { |
| | | // Database.rollback(sp); |
| | | // // ApexPages.addMessages(ex); |
| | | // // return null; |
| | | // //return new ResponseBodyLWC('Error',500, ex.getMessage(), ''); |
| | | // return new ResponseBodyLWC('Error',500, JSON.serialize(ex), ''); |
| | | // } |
| | | data.put('ESetId', ESetId); |
| | | res.status = 'Success'; |
| | | res.code = 200; |
| | | System.debug('res = ' + res); |
| | | return res; |
| | | } |
| | | |
| | | public static void checkOutPattern() { |
| | | //根据用户选中的产品给 出库单上的是否医院特价出库字段赋值 |
| | | Integer isHos = 0; |
| | | for (ConsumableorderdetailsInfo CheckCount : pageRecords) { |
| | | if (CheckCount.check == true && CheckCount.hospitalSpecialOffer == true) { |
| | | ishos = ishos + 1; |
| | | } |
| | | } |
| | | if (isHos > 0) { |
| | | coc.OutPattern__c = true; |
| | | } else { |
| | | coc.OutPattern__c = false; |
| | | } |
| | | } |
| | | |
| | | //打印PDF |
| | | @AuraEnabled |
| | | public static ResponseBodyLWC PraseToPDF( |
| | | Consumable_order__c cocLwc, |
| | | String ESetId |
| | | ) { |
| | | System.debug('cocLwc = ' + cocLwc); |
| | | System.debug('ESetId = ' + ESetId); |
| | | coc = cocLwc; |
| | | ResponseBodyLWC res = new ResponseBodyLWC(); |
| | | Map<String, object> data = new Map<String, object>(); |
| | | res.entity = data; |
| | | |
| | | if (coc.SummonsStatus_c__c == '批准') { |
| | | Consumable_order__c P = new Consumable_order__c(); |
| | | List<Consumable_order__c> cocinfo = new List<Consumable_order__c>(); |
| | | // update start by vivek 2019-7-15 add “NoConfirmedPrice__c” in select |
| | | cocinfo = [ |
| | | SELECT |
| | | Id, |
| | | Name, |
| | | SummonsStatus_c__c, |
| | | NoConfirmedPrice__c, |
| | | Dealer_Info__c, |
| | | Order_ForHospital__c, |
| | | SummonsForDirction__c, |
| | | Billed_Status__c |
| | | FROM Consumable_order__c |
| | | WHERE Id = :ESetId |
| | | ]; |
| | | // update end by vivek 2019-7-15 |
| | | if (cocinfo.size() > 0) { |
| | | p = cocinfo[0]; |
| | | } |
| | | p.SummonsStatus_c__c = '出库单已打印'; |
| | | update p; |
| | | } |
| | | data.put('ESetId', ESetId); |
| | | res.status = 'Success'; |
| | | res.code = 200; |
| | | System.debug('res = ' + res); |
| | | return res; |
| | | } |
| | | |
| | | //查找经销商 |
| | | @AuraEnabled(cacheable=true scope='global') |
| | | public static List<LookupSearchResult> search(String searchTerm) { |
| | | System.debug('searchTerm = ' + searchTerm); |
| | | String nameCondition = ''; |
| | | nameCondition += |
| | | '%' + |
| | | String.escapeSingleQuotes(searchTerm.replaceAll('%', '\\%')) + |
| | | '%'; |
| | | List<Account> accs = new List<Account>(); |
| | | System.debug('nameCondition = ' + nameCondition); |
| | | //查询条件修改 |
| | | //筛选判断条件:当前财年的4/1 ~ 第二年的6/30 & ET or ENG类型 & 当前用户类型 |
| | | //1 and 2 |
| | | //1. Integer year 2022/4/1 ~ 2023/6/30 |
| | | //开始日期 + 结束日期 |
| | | //Contract_Decide_Start_Date__c>=开始日期 and Contract_Decide_End_Date__c<结束日期 |
| | | //2. 添加经销商允销类型:ET经销商协议;ENG耗材经销商协议 |
| | | //取当前用户的类型,如果用户类型是ET,ET经销商协议 = true |
| | | // Date today = Date.today(); |
| | | // Integer thisYear = today.year(); |
| | | // Integer nextYear = today.year() + 1; |
| | | // Date thisDatetime = Date.newInstance(thisYear, 4, 1); |
| | | // Date nextDatetime = Date.newInstance(nextYear, 6, 30); |
| | | // System.debug('thisDatetime = ' + thisDatetime); |
| | | // System.debug('nextDatetime = ' + nextDatetime); |
| | | |
| | | // User UserProTypecTemp = [select UserPro_Type__c from User where id =: UserInfo.getUserId()]; |
| | | // System.debug('UserInfo.getUserId() = ' + UserInfo.getUserId()); |
| | | // System.debug('UserProTypecTemp = ' + UserProTypecTemp); |
| | | // System.debug('UserProTypecTemp.UserPro_Type__c = ' + UserProTypecTemp.UserPro_Type__c); |
| | | // if (UserProTypecTemp.UserPro_Type__c == 'ENG') { |
| | | // accs = [ |
| | | // SELECT Id, Name, Department_Class__c, Department_Class__r.Name, Hospital__c, Hospital__r.Name, BillingCity |
| | | // FROM Account |
| | | // WHERE |
| | | // // Name = '奥林巴斯(北京)销售服务有限公司' |
| | | // // AND |
| | | // Name LIKE :nameCondition |
| | | // AND RecordType.DeveloperName = 'AgencyContract' |
| | | // AND Contract_Decide_Start_Date__c >= :thisDatetime |
| | | // AND Contract_Decide_End_Date__c <= :nextDatetime |
| | | // AND ENG_Dealer__c = true |
| | | // ORDER BY Name |
| | | // LIMIT 49 |
| | | // ]; |
| | | // } |
| | | // if (UserProTypecTemp.UserPro_Type__c == 'ET') { |
| | | // accs = [ |
| | | // SELECT Id, Name, Department_Class__c, Department_Class__r.Name, Hospital__c, Hospital__r.Name, BillingCity |
| | | // FROM Account |
| | | // WHERE |
| | | // // Name = '奥林巴斯(北京)销售服务有限公司' |
| | | // // AND |
| | | // Name LIKE :nameCondition |
| | | // AND RecordType.DeveloperName = 'AgencyContract' |
| | | // AND Contract_Decide_Start_Date__c >= :thisDatetime |
| | | // AND Contract_Decide_End_Date__c <= :nextDatetime |
| | | // AND ET_SP_Dealer__c = true |
| | | // ORDER BY Name |
| | | // LIMIT 49 |
| | | // ]; |
| | | // } |
| | | |
| | | Date today = Date.today(); |
| | | //Date today = Date.newInstance(2023, 3, 1); |
| | | Integer thisMonth = today.month(); |
| | | System.debug('thisMonth = ' + thisMonth); |
| | | |
| | | Integer lastYear = today.year() - 1; |
| | | Integer thisYear = today.year(); |
| | | Integer nextYear = today.year() + 1; |
| | | |
| | | Date lastDatetime = Date.newInstance(lastYear, 4, 1); |
| | | Date thisDatetime = Date.newInstance(thisYear, 4, 1); |
| | | Date thisDatetime2 = Date.newInstance(thisYear, 7, 1); |
| | | Date nextDatetime = Date.newInstance(nextYear, 7, 1); |
| | | System.debug('lastDatetime = ' + lastDatetime); |
| | | System.debug('thisDatetime = ' + thisDatetime); |
| | | System.debug('thisDatetime2 = ' + thisDatetime2); |
| | | System.debug('nextDatetime = ' + nextDatetime); |
| | | System.debug('UserInfo.getUserId() = ' + UserInfo.getUserId()); |
| | | User UserProTypecTemp = [ |
| | | SELECT UserPro_Type__c |
| | | FROM User |
| | | WHERE id = :UserInfo.getUserId() |
| | | ]; |
| | | |
| | | String sql = 'SELECT id, Parentid FROM Account WHERE Parent.Name LIKE :nameCondition '; |
| | | if (thisMonth < 4) { |
| | | sql += 'AND Contract_Decide_Start_Date__c >= :lastDatetime AND Contract_Decide_End_Date__c < :thisDatetime2 '; |
| | | } else if (thisMonth >= 4 && thisMonth <= 6) { |
| | | sql += 'AND Contract_Decide_Start_Date__c >= :lastDatetime AND Contract_Decide_End_Date__c < :nextDatetime '; |
| | | } else { |
| | | sql += 'AND Contract_Decide_Start_Date__c >= :thisDatetime AND Contract_Decide_End_Date__c < :nextDatetime '; |
| | | } |
| | | if (UserProTypecTemp.UserPro_Type__c == 'ENG') { |
| | | sql += 'AND ENG_Dealer__c = true'; |
| | | } |
| | | if (UserProTypecTemp.UserPro_Type__c == 'ET') { |
| | | sql += 'AND ET_SP_Dealer__c = true'; |
| | | } |
| | | System.debug('sql = ' + sql); |
| | | accs = Database.query(sql); |
| | | // 用于保存特约经销商匹配到的其父类的id |
| | | Set<String> pids = new Set<String>(); |
| | | for (Account acc : accs) { |
| | | pids.add(acc.Parentid); |
| | | @TestVisible |
| | | class ConsumableorderdetailsInfoLwc { |
| | | @AuraEnabled |
| | | public Boolean check { get; set; } |
| | | @AuraEnabled |
| | | public Boolean oldCheck { get; set; } |
| | | @AuraEnabled |
| | | public Consumable_Orderdetails__c orderdetails1 { get; set; } |
| | | @AuraEnabled |
| | | public Consumable_order_details2__c orderdetails2 { get; set; } |
| | | @AuraEnabled |
| | | public Product2__c Prod { get; set; } |
| | | @AuraEnabled |
| | | public Decimal Boxnumber { get; set; } |
| | | @AuraEnabled |
| | | public Decimal Piecenumber { get; set; } |
| | | @AuraEnabled |
| | | public Decimal allnumber { get; set; } |
| | | @AuraEnabled |
| | | public Decimal oldConsumableCount { get; set; } |
| | | @AuraEnabled |
| | | public Boolean canSelect { get; set; } |
| | | @AuraEnabled |
| | | public Boolean sortBy { get; set; } |
| | | @AuraEnabled |
| | | public Integer packinglist { get; set; } |
| | | @AuraEnabled |
| | | public String approbation_No { get; set; } |
| | | @AuraEnabled |
| | | public Date expiration_Date { get; set; } |
| | | @AuraEnabled |
| | | public String boxorpiecein { get; set; } |
| | | public List<SelectOption> boxorpiece { get; set; } |
| | | @AuraEnabled |
| | | public Map<String, String> boxorpieceMap { get; set; } |
| | | @AuraEnabled |
| | | public Attachment concc { get; set; } |
| | | @AuraEnabled |
| | | public String BoxPiece { get; set; } |
| | | @AuraEnabled |
| | | public Boolean hospitalSpecialOffer { get; set; } |
| | | @AuraEnabled |
| | | public Boolean hosPro { get; set; } |
| | | @AuraEnabled |
| | | public List<Map<String, String>> unitOptions { get; set; } |
| | | @AuraEnabled |
| | | public String unitValue { get; set; } |
| | | @AuraEnabled |
| | | public Integer shipmentNumber { get; set; } |
| | | @AuraEnabled |
| | | public Decimal shippingUnitPrice { get; set; } |
| | | @AuraEnabled |
| | | public String recordId { get; set; } |
| | | @AuraEnabled |
| | | public String Id { get; set; } |
| | | @AuraEnabled |
| | | public String Name { get; set; } |
| | | @AuraEnabled |
| | | public String Category3 { get; set; } |
| | | @AuraEnabled |
| | | public String Category4 { get; set; } |
| | | @AuraEnabled |
| | | public String Category5 { get; set; } |
| | | } |
| | | |
| | | accs = [ |
| | | SELECT |
| | | Id, |
| | | Name, |
| | | Department_Class__c, |
| | | Department_Class__r.Name, |
| | | Hospital__c, |
| | | Hospital__r.Name, |
| | | BillingCity |
| | | FROM Account |
| | | WHERE |
| | | (Id IN :pids |
| | | OR (Name = '奥林巴斯(北京)销售服务有限公司' |
| | | AND Name LIKE :nameCondition)) |
| | | AND RecordType.DeveloperName = 'Agency' |
| | | ORDER BY Name |
| | | LIMIT 49 |
| | | ]; |
| | | |
| | | // accs = [ |
| | | // SELECT id, Parentid |
| | | // FROM Account |
| | | // WHERE |
| | | // Parent.Name LIKE :nameCondition |
| | | // AND Contract_Decide_Start_Date__c <= :Date.Today() |
| | | // AND Contract_Decide_End_Date__c >= :Date.Today() |
| | | // ]; |
| | | |
| | | // 用于保存特约经销商匹配到的其父类的id |
| | | // Set<String> pids = new Set<String>(); |
| | | // for (Account acc : accs) { |
| | | // pids.add(acc.Parentid); |
| | | // } |
| | | // accs = [ |
| | | // SELECT Id, Name, Department_Class__c, Department_Class__r.Name, Hospital__c, Hospital__r.Name, BillingCity |
| | | // FROM Account |
| | | // WHERE |
| | | // (Id IN :pids |
| | | // OR (Name = '奥林巴斯(北京)销售服务有限公司' |
| | | // AND Name LIKE :nameCondition)) |
| | | // AND RecordType.DeveloperName = 'Agency' |
| | | // AND Is_Active__c != '無効' |
| | | // ORDER BY Name |
| | | // LIMIT 5 |
| | | // ]; |
| | | System.debug('accs = ' + accs); |
| | | List<LookupSearchResult> results = new List<LookupSearchResult>(); |
| | | String accountIcon = 'standard:account'; |
| | | for (Account account : accs) { |
| | | String subtitle = account.BillingCity == null |
| | | ? 'Account' |
| | | : 'Account • ' + account.BillingCity; |
| | | results.add( |
| | | new LookupSearchResult( |
| | | account.Id, |
| | | 'Account', |
| | | accountIcon, |
| | | account.Name, |
| | | subtitle |
| | | ) |
| | | ); |
| | | //分页Bean |
| | | public class PaginatedAccounts { |
| | | @AuraEnabled |
| | | public Integer nextPageToken; |
| | | @AuraEnabled |
| | | public Integer pageNumber { get; set; } |
| | | @AuraEnabled |
| | | public Integer totalRecords { get; set; } |
| | | @AuraEnabled |
| | | public Integer recordStart { get; set; } |
| | | @AuraEnabled |
| | | public Integer recordEnd { get; set; } |
| | | } |
| | | results.sort(); |
| | | System.debug('results = ' + results); |
| | | return results; |
| | | } |
| | | |
| | | //保存附件 |
| | | @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; |
| | | return cv.Id; |
| | | } |
| | | |
| | | //获取附件 |
| | | @AuraEnabled |
| | | public static ResponseBodyLWC getFiles(Id recordId) { |
| | | System.debug('getFiles recordId = ' + recordId); |
| | | ResponseBodyLWC res = new ResponseBodyLWC(); |
| | | Map<String, object> data = new Map<String, object>(); |
| | | res.entity = data; |
| | | List<ContentVersion> cvList = [ |
| | | SELECT |
| | | id, |
| | | Title, |
| | | CreatedBy.Name, |
| | | PathOnClient, |
| | | CreatedDate, |
| | | ContentDocumentId |
| | | FROM ContentVersion |
| | | WHERE FirstPublishLocationId = :recordId |
| | | ]; |
| | | data.put('cvList', cvList); |
| | | res.status = 'Success'; |
| | | res.code = 200; |
| | | System.debug('res = ' + res); |
| | | return res; |
| | | } |
| | | |
| | | //删除附件 |
| | | @AuraEnabled |
| | | public static ResponseBodyLWC deleteAtt(String contentVersionId) { |
| | | try { |
| | | ContentVersion conVersion = [ |
| | | SELECT ContentDocumentId |
| | | FROM ContentVersion |
| | | WHERE Id = :contentVersionId |
| | | ]; |
| | | String contentDocumentId = conVersion.ContentDocumentId; |
| | | ContentDocument conDocument = [ |
| | | SELECT Id |
| | | FROM ContentDocument |
| | | WHERE Id = :contentDocumentId |
| | | ]; |
| | | delete conDocument; |
| | | return new ResponseBodyLWC('Success', 200, '', ''); |
| | | } catch (Exception e) { |
| | | return new ResponseBodyLWC( |
| | | 'Error', |
| | | 500, |
| | | e.getMessage() + e.getLineNumber(), |
| | | '' |
| | | ); |
| | | } |
| | | } |
| | | |
| | | //跳转出货/销售 |
| | | @AuraEnabled |
| | | public static ResponseBodyLWC GoodsDelivery( |
| | | Consumable_order__c cocLwc, |
| | | String ESetId, |
| | | List<ConsumableorderdetailsInfoLwc> pageRecordsLwcLwc |
| | | ) { |
| | | ResponseBodyLWC res = new ResponseBodyLWC(); |
| | | Map<String, object> data = new Map<String, object>(); |
| | | res.entity = data; |
| | | coc = cocLwc; |
| | | ESetId = ESetId; |
| | | pageRecordsLwc = pageRecordsLwcLwc; |
| | | if (coc.SummonsForDirction__c == '互相调货') { |
| | | List<Account> accList = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE |
| | | Name = :coc.Order_ForDealerText__c |
| | | AND RecordType.DeveloperName = 'Agency' |
| | | ]; |
| | | if (accList.size() < 1) { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '请输入二级经销商全称!')); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '请输入二级经销商全称!', ''); |
| | | } |
| | | } |
| | | if (coc.SummonsStatus_c__c == '批准') { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '请先打印指示单!')); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '请先打印指示单!', ''); |
| | | } |
| | | for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) { |
| | | if (ass.orderdetails1.Shipment_Count__c > ass.allnumber) { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.orderdetails1.Consumable_Product__r.Name__c + '库存不足')); |
| | | // return null; |
| | | return new ResponseBodyLWC( |
| | | 'Error', |
| | | 500, |
| | | '消耗品' + |
| | | ass.orderdetails1.Consumable_Product__r.Name__c + |
| | | '库存不足', |
| | | '' |
| | | ); |
| | | } |
| | | } |
| | | data.put('ESetid', ESetid); |
| | | res.status = 'Success'; |
| | | res.code = 200; |
| | | System.debug('res = ' + res); |
| | | return res; |
| | | } |
| | | |
| | | //删除按钮 |
| | | @AuraEnabled |
| | | public static ResponseBodyLWC DelConsumable(String ESetId) { |
| | | ResponseBodyLWC res = new ResponseBodyLWC(); |
| | | Map<String, object> data = new Map<String, object>(); |
| | | res.entity = data; |
| | | |
| | | ESetId = ESetId; |
| | | |
| | | Savepoint sp = Database.setSavepoint(); |
| | | try { |
| | | List<Consumable_order__c> qs = new List<Consumable_order__c>(); |
| | | List<Consumable_orderdetails__c> Dqs = new List<Consumable_orderdetails__c>(); |
| | | Dqs = [ |
| | | SELECT Id |
| | | FROM Consumable_orderdetails__c |
| | | WHERE Consumable_order__c = :ESetId |
| | | ]; |
| | | qs = [SELECT Id FROM Consumable_order__c WHERE Id = :ESetId]; |
| | | if (Dqs.size() > 0 || qs.size() > 0) { |
| | | delete Dqs; |
| | | delete qs; |
| | | } |
| | | } catch (Exception e) { |
| | | Database.rollback(sp); |
| | | System.debug(e.getMessage() + e.getLineNumber()); |
| | | return new ResponseBodyLWC('Error', 500, e.getMessage(), ''); |
| | | } |
| | | res.status = 'Success'; |
| | | res.code = 200; |
| | | System.debug('res = ' + res); |
| | | return res; |
| | | } |
| | | |
| | | // Data Bean |
| | | @TestVisible |
| | | class ConsumableorderdetailsInfo implements Comparable { |
| | | @AuraEnabled |
| | | public Boolean check { get; set; } |
| | | @AuraEnabled |
| | | public Boolean oldCheck { get; set; } |
| | | @AuraEnabled |
| | | public Consumable_Orderdetails__c orderdetails1 { get; set; } |
| | | @AuraEnabled |
| | | public Consumable_order_details2__c orderdetails2 { get; set; } |
| | | @AuraEnabled |
| | | public Product2__c Prod { get; set; } |
| | | @AuraEnabled |
| | | public Decimal Boxnumber { get; set; } |
| | | @AuraEnabled |
| | | public Decimal Piecenumber { get; set; } |
| | | @AuraEnabled |
| | | public Decimal allnumber { get; set; } |
| | | @AuraEnabled |
| | | public Decimal oldConsumableCount { get; set; } |
| | | @AuraEnabled |
| | | public Boolean canSelect { get; set; } |
| | | @AuraEnabled |
| | | public Boolean sortBy { get; set; } |
| | | @AuraEnabled |
| | | public Integer packinglist { get; set; } |
| | | @AuraEnabled |
| | | public String approbation_No { get; set; } |
| | | @AuraEnabled |
| | | public Date expiration_Date { get; set; } |
| | | @AuraEnabled |
| | | public String boxorpiecein { get; set; } |
| | | |
| | | public List<SelectOption> boxorpiece { get; set; } |
| | | @AuraEnabled |
| | | public Map<String, String> boxorpieceMap { get; set; } |
| | | @AuraEnabled |
| | | public Attachment concc { get; set; } |
| | | @AuraEnabled |
| | | public String BoxPiece { get; set; } |
| | | @AuraEnabled |
| | | public Boolean hospitalSpecialOffer { get; set; } |
| | | @AuraEnabled |
| | | public Boolean hosPro { get; set; } |
| | | |
| | | public ConsumableorderdetailsInfo() { |
| | | } |
| | | |
| | | public ConsumableorderdetailsInfo(Consumable_Orderdetails__c e) { |
| | | check = true; |
| | | oldCheck = true; |
| | | orderdetails1 = e; |
| | | orderdetails2 = new Consumable_order_details2__c(); |
| | | Prod = e.Consumable_Product__r; |
| | | oldConsumableCount = e.Shipment_Count__c; |
| | | canSelect = true; |
| | | allnumber = 0; |
| | | Boxnumber = 0; |
| | | Piecenumber = 0; |
| | | BoxPiece = e.Box_Piece__c; |
| | | boxorpiece = new List<SelectOption>(); |
| | | boxorpiece.add(new SelectOption('盒', '盒')); |
| | | boxorpiece.add(new SelectOption('个', '个')); |
| | | |
| | | boxorpieceMap = new Map<String, String>(); |
| | | boxorpieceMap.put('盒', '盒'); |
| | | boxorpieceMap.put('个', '个'); |
| | | hospitalSpecialOffer = false; |
| | | hosPro = false; |
| | | } |
| | | |
| | | // 消耗品发货明细 |
| | | public ConsumableorderdetailsInfo(Consumable_order_details2__c e) { |
| | | check = true; |
| | | oldCheck = true; |
| | | orderdetails1 = new Consumable_Orderdetails__c(); |
| | | orderdetails2 = e; |
| | | Prod = e.Consumable_Product__r; |
| | | canSelect = true; |
| | | allnumber = 0; |
| | | Boxnumber = 0; |
| | | Piecenumber = 0; |
| | | //boxorpiece = new List<SelectOption>(); |
| | | //boxorpiece.add(new SelectOption('盒', '盒')); |
| | | //boxorpiece.add(new SelectOption('个', '个')); |
| | | hospitalSpecialOffer = false; |
| | | hosPro = false; |
| | | } |
| | | |
| | | //附件 |
| | | public ConsumableorderdetailsInfo(Attachment e) { |
| | | concc = e; |
| | | hospitalSpecialOffer = false; |
| | | hosPro = false; |
| | | } |
| | | |
| | | public ConsumableorderdetailsInfo(Product2__c e) { |
| | | check = false; |
| | | oldCheck = false; |
| | | orderdetails1 = new Consumable_Orderdetails__c(); |
| | | orderdetails2 = new Consumable_order_details2__c(); |
| | | Prod = e; |
| | | //oldConsumableCount = null; |
| | | canSelect = true; |
| | | allnumber = 0; |
| | | Boxnumber = 0; |
| | | Piecenumber = 0; |
| | | orderdetails1.Box_Piece__c = '盒'; |
| | | boxorpiece = new List<SelectOption>(); |
| | | boxorpiece.add(new SelectOption('盒', '盒')); |
| | | boxorpiece.add(new SelectOption('个', '个')); |
| | | |
| | | boxorpieceMap = new Map<String, String>(); |
| | | boxorpieceMap.put('盒', '盒'); |
| | | boxorpieceMap.put('个', '个'); |
| | | hospitalSpecialOffer = false; |
| | | hosPro = false; |
| | | } |
| | | |
| | | // 排序 |
| | | public Integer compareTo(Object compareTo) { |
| | | ConsumableorderdetailsInfo compareToorderdetails1 = (ConsumableorderdetailsInfo) compareTo; |
| | | Integer returnValue = 0; |
| | | if (sortBy == false) { |
| | | if (Boxnumber > compareToorderdetails1.Boxnumber) { |
| | | returnValue = -1; |
| | | } else if (Boxnumber < compareToorderdetails1.Boxnumber) { |
| | | returnValue = 1; |
| | | } |
| | | return returnValue; |
| | | } else { |
| | | if (Boxnumber > compareToorderdetails1.Boxnumber) { |
| | | returnValue = 1; |
| | | } else if (Boxnumber < compareToorderdetails1.Boxnumber) { |
| | | returnValue = -1; |
| | | } |
| | | return returnValue; |
| | | } |
| | | } |
| | | } |
| | | @TestVisible |
| | | class ConsumableorderdetailsInfoLwc { |
| | | @AuraEnabled |
| | | public Boolean check { get; set; } |
| | | @AuraEnabled |
| | | public Boolean oldCheck { get; set; } |
| | | @AuraEnabled |
| | | public Consumable_Orderdetails__c orderdetails1 { get; set; } |
| | | @AuraEnabled |
| | | public Consumable_order_details2__c orderdetails2 { get; set; } |
| | | @AuraEnabled |
| | | public Product2__c Prod { get; set; } |
| | | @AuraEnabled |
| | | public Decimal Boxnumber { get; set; } |
| | | @AuraEnabled |
| | | public Decimal Piecenumber { get; set; } |
| | | @AuraEnabled |
| | | public Decimal allnumber { get; set; } |
| | | @AuraEnabled |
| | | public Decimal oldConsumableCount { get; set; } |
| | | @AuraEnabled |
| | | public Boolean canSelect { get; set; } |
| | | @AuraEnabled |
| | | public Boolean sortBy { get; set; } |
| | | @AuraEnabled |
| | | public Integer packinglist { get; set; } |
| | | @AuraEnabled |
| | | public String approbation_No { get; set; } |
| | | @AuraEnabled |
| | | public Date expiration_Date { get; set; } |
| | | @AuraEnabled |
| | | public String boxorpiecein { get; set; } |
| | | public List<SelectOption> boxorpiece { get; set; } |
| | | @AuraEnabled |
| | | public Map<String, String> boxorpieceMap { get; set; } |
| | | @AuraEnabled |
| | | public Attachment concc { get; set; } |
| | | @AuraEnabled |
| | | public String BoxPiece { get; set; } |
| | | @AuraEnabled |
| | | public Boolean hospitalSpecialOffer { get; set; } |
| | | @AuraEnabled |
| | | public Boolean hosPro { get; set; } |
| | | @AuraEnabled |
| | | public List<Map<String, String>> unitOptions { get; set; } |
| | | @AuraEnabled |
| | | public String unitValue { get; set; } |
| | | @AuraEnabled |
| | | public Integer shipmentNumber { get; set; } |
| | | @AuraEnabled |
| | | public Decimal shippingUnitPrice { get; set; } |
| | | @AuraEnabled |
| | | public String recordId { get; set; } |
| | | @AuraEnabled |
| | | public String Id { get; set; } |
| | | @AuraEnabled |
| | | public String Name { get; set; } |
| | | @AuraEnabled |
| | | public String Category3 { get; set; } |
| | | @AuraEnabled |
| | | public String Category4 { get; set; } |
| | | @AuraEnabled |
| | | public String Category5 { get; set; } |
| | | } |
| | | |
| | | //分页Bean |
| | | public class PaginatedAccounts { |
| | | @AuraEnabled |
| | | public Integer nextPageToken; |
| | | @AuraEnabled |
| | | public Integer pageNumber { get; set; } |
| | | @AuraEnabled |
| | | public Integer totalRecords { get; set; } |
| | | @AuraEnabled |
| | | public Integer recordStart { get; set; } |
| | | @AuraEnabled |
| | | public Integer recordEnd { get; set; } |
| | | } |
| | | } |
| | | } |