public without sharing class summonsCreatController { /*****************検索用******************/ //经销商用户产品分类(ET、ENG) public String agencyProType {get;set;} public Consumable_order__c coc { get; set; } // 画view用, 可能是 出库指示单, 也有可能是到货单, 也有可能 空instance public User localuser { get; set; } public String category1 { get; set; } Public Integer noOfRecords{get; set;} //public String category_Goods {get ; set;} public Boolean cansee{get;set;} Public Integer size{get;set;} //经销商定价查看权限 public ApexPages.StandardSetController setCon { get; set; } public Boolean dealerPricesee {get;set;} /*****************画面初始化用********************************/ /******20160313_add**************/ public String IdCheck {get;set;} public Boolean editAble {get;set;} public String statusEdit {get;set;} public String alertMessage{set;get;} public String SearchDone {get;set;} List zaikuId = new List(); List orderzaikuId = new List(); //附件 public List attachmentRecoeds { get; set; } public Boolean getExistarrive() { return (coc.Arrive_Order__c != null); } //总价格计算结果 public Decimal sumPrice {get;set;} /******20160317_add**************/ public String SummonsFlag {get;set;} // 新規: hidden, 更新: visible public String category5 { get; set; } public String category4 { get; set; } public String category3 { get; set; } public List categoryOptionList{get;set;} public List category4OptionList{get;set;} public List category5OptionList{get;set;} /*****************画面表示Bean******************/ private List consumableorderdetailsSelectRecords = new List(); public List pageRecords { get; set; } //public List> consumableorderdetailsRecordsview { get; set; } public List consumableorderdetails2Records { get; set; } public List consumableInvoiceRecords { get; set; } private List consumableproductdetailsRecords = new List(); private List attachmentinfo = new List(); List product2Selected = new List(); //选择产品size public Integer consumableorderdetailsCount { get { return pageRecords == null ? 0 : pageRecords.size(); } } //消耗品明细2数量 public Integer consumableorderdetails2Count { get { return consumableorderdetails2Records == null ? 0 : consumableorderdetails2Records.size(); } } //订货单号 public String consumableorderId { get { return (coc.Arrive_Order__c); } } //选择框 public List provinceOpts { get; set; } public String SecondDealer {get;set;} //public List orderForHospitalOpts { get; set; } public String HospitalInfo {get;set;} public String HospitalName {get;set;} public Boolean EditDelCommitBtnDisabled {get; private set;} public Boolean saveBtnDisabled { get; private set; } public Boolean SorderBtnDisabled { get; private set; } // 保存后动作: 1.检索 2.排序 public String sortKey { get; set; } public String preSortKey { get; private set; } public Boolean sortOrderAsc { get; private set; } public String[] sortOrder { get; private set; } private String[] columus = new 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 String[] columus_no = new 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 List consumableorderdetailsSelected = new List(); //到货单明细2 private List consumablearriveproductdetailsSelected = new List(); //出库单明细2 private List consumableorderdetails2RecordsList = new List(); /*****************ソート時再検索条件(画面からの入力条件を無視するため)******************/ //private String cate1ForSort = null; private String accountid = null; private String accountName = null; // 产品 ID private String ESetId = ''; public String arriveorder {get;set;} private String userId = ''; //private String[] ProidListAll = new String[]{}; // 登录者工作地 private String userWorkLocation; //add by rentx 2021-01-29 public List outOutPatternOptionList{get;set;} public String outOutPattern {get;set;} public Boolean hasHos {get;set;} public Boolean hasHosPro {get;set;} private Map HosProMap = new Map(); //add by rentx 2021-01-29 public summonsCreatController() { 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(); pageRecords = new List(); consumableproductdetailsRecords = new List(); consumableorderdetailsSelectRecords = new List(); attachmentRecoeds = new List(); consumableorderdetails2Records = new List(); consumableInvoiceRecords = new List(); categoryOptionList = new List(); category4OptionList = new List(); category5OptionList = new List(); outOutPatternOptionList = new List(); outOutPatternOptionList.add(new SelectOption('','-无-')); outOutPatternOptionList.add(new SelectOption('ishos','医院特价产品')); outOutPatternOptionList.add(new SelectOption('nothos','非医院特价产品')); } private void initStandardController(String soql){ // init standard controller setCon = new ApexPages.StandardSetController(Database.getQueryLocator(soql)); // sets the number of records in each page set setCon.setPageSize(size); //因为现在有区分医院特价和非医院特价,所以产品数应该为展示的数据长度 // noOfRecords = setCon.getResultSize(); } public List product2s() { return (List) setCon.getRecords(); } //Changes the size of pagination public PageReference refreshPageSize() { setCon.setPageSize(size); product2Selected = product2s(); makepagerecords(); return null; } public List makepagerecords() { List reSet = new List(); Map selectedIdMap = new Map(); //取出选择的产品 for (ConsumableorderdetailsInfo ass : pageRecords) { //update by rentx 2021-2-26 // if(ass.check == true){ // selectedIdMap.put(ass.Prod.id,ass.Prod.id); // reSet.add(ass); // } 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); } //update by rentx 2021-2-26 } pageRecords = new List(); 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 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++; } // if(addNo >= size)break; } // for (Integer i = pagestartNo; i < consumableorderdetailsSelectRecords.size(); i++) { // Consumable_Orderdetails__c orderdetails1 = new Consumable_Orderdetails__c(); // if(selectedIdMap.containsKey(consumableorderdetailsSelectRecords[i].Prod.Id)){ // addNo++; // //continue; // }else{ // //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '-----')); // if(consumableorderdetailsSelectRecords[i].check == false){ // consumableorderdetailsSelectRecords[i].orderdetails1 = orderdetails1; // } // pageRecords.add(consumableorderdetailsSelectRecords[i]); // addNo++; // } // if(addNo >= size)break; // } //update by rentx 2021-2-26 end return pageRecords; } //add by rentx 2021-2-26 start public 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; } } //add by rentx 2021-2-26 end // 画面初始化 public void init() { this.sortKey = '1'; this.preSortKey = '1'; this.sortOrderAsc = false; this.sortOrder = new String[8]; this.sortOrder = new 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 Dealerelationship = new list(); Dealerelationship = [SELECT Dealer_subordinate__c,Dealer_subordinate__r.Name FROM Dealer_elationship__c WHERE Dealer_principal__c =:accountid ]; List AgencyHospitalLink = new List(); 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 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, ''); } hasHos = true; } //add by rentx 2021-3-1 end saveBtnDisabled = false; SorderBtnDisabled = false; String sqlagencyProType = '%' + agencyProType + '%'; coc = new Consumable_order__c(); consumableorderdetailsSelectRecords = new List(); Map MidMap = new Map(); //add by rentx 2021-01-29 Map MidMap2 = new Map(); //add by rentx 2021-01-29 List 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'))); } List 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); product2Selected = Database.query(msoql); //product2Selected = product2s(); if (String.isBlank(arriveorder)) { EditDelCommitBtnDisabled = true; 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); 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; } //Jstage.BoxPiece = CountDel[i].Box_Piece__c; MidMap.put(CountDel[i].Consumable_Product__c, Jstage); } }*/ 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); } } /*//然后循环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 ; 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; } //Jstage.BoxPiece = CountDel[i].Box_Piece__c; MidMap.put(CountDel[i].Consumable_Product__c+str, Jstage); }*/ } //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); //} } Integer ishosnum = 0; for(ConsumableorderdetailsInfo ass : consumableorderdetailsSelectRecords){ ass.sortBy = this.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 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); 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; } //Jstage.BoxPiece = CountDel[i].Box_Piece__c; MidMap.put(CountDel[i].Consumable_Product__c, Jstage); } }*/ for (Integer i = 0; i 0) { hasHosPro = true; }else{ hasHosPro = false; } consumableorderdetailsSelectRecords.sort(); //add by rentx noOfRecords = consumableorderdetailsSelectRecords.size(); //add by rentx 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 != '草案中']; 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 cocMap = new Map(); 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++){ //然后循环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 ; if(CountDel[i].Box_Piece__c == '盒'){ Jstage.Boxnumber = Jstage.Boxnumber + 1; }else if(CountDel[i].Box_Piece__c == '个'){ Jstage.Piecenumber = Jstage.Piecenumber + 1; } //Jstage.BoxPiece = CountDel[i].Box_Piece__c; MidMap.put(CountDel[i].Consumable_Product__c, Jstage); } }*/ 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(); //再把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 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 cocMap = new Map(); 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++){ //然后循环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 ; if(CountDel[i].Box_Piece__c == '盒'){ Jstage.Boxnumber = Jstage.Boxnumber + 1; }else if(CountDel[i].Box_Piece__c == '个'){ Jstage.Piecenumber = Jstage.Piecenumber + 1; } //Jstage.BoxPiece = CountDel[i].Box_Piece__c; MidMap.put(CountDel[i].Consumable_Product__c, Jstage); } } */ for (Integer i = 0; i0){ 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 = this.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 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('', '-无-')); for(Integer i = 0; i < Dealerelationship.size(); i++){ provinceOpts.add(new SelectOption(Dealerelationship[i].Dealer_subordinate__c, Dealerelationship[i].Dealer_subordinate__r.Name)); } }else{ provinceOpts.add(new SelectOption('', '-无-')); 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)); } } 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)); } } } /*if(HospitalInfo==null||HospitalInfo==''){ orderForHospitalOpts.add(new SelectOption('', '-无-')); for(Integer i = 0; i < AgencyHospitalLink.size(); i++){ orderForHospitalOpts.add(new SelectOption(AgencyHospitalLink[i].Hospital__c, AgencyHospitalLink[i].Hospital__r.Name)); } }else{ orderForHospitalOpts.add(new SelectOption('', '-无-')); for(Integer i = 0; i < AgencyHospitalLink.size(); i++){ if(AgencyHospitalLink[i].Hospital__c == HospitalInfo){ orderForHospitalOpts.add(new SelectOption(AgencyHospitalLink[i].Hospital__c, AgencyHospitalLink[i].Hospital__r.Name)); } } for(Integer i = 0; i < AgencyHospitalLink.size(); i++){ if(AgencyHospitalLink[i].Hospital__c != HospitalInfo){ orderForHospitalOpts.add(new SelectOption(AgencyHospitalLink[i].Hospital__c, AgencyHospitalLink[i].Hospital__r.Name)); } } }*/ //listCut(); 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(); categoryOptionList.add(new SelectOption('', '-无-')); for(AggregateResult category3Search : categoryList) { String deliverycnt = String.valueOf(category3Search.get('c3c')); categoryOptionList.add(new SelectOption(deliverycnt,deliverycnt)); } category4OptionList = new List(); category4OptionList.add(new SelectOption('', '-无-')); /*for(AggregateResult category4Search : category4List) { String deliverycnt4 = String.valueOf(category4Search.get('c4c')); category4OptionList.add(new SelectOption(deliverycnt4,deliverycnt4)); }*/ category5OptionList = new List(); category5OptionList.add(new SelectOption('', '-无-')); /*for(AggregateResult category5Search : category5List) { String deliverycnt5 = String.valueOf(category5Search.get('c5c')); category5OptionList.add(new SelectOption(deliverycnt5,deliverycnt5)); }*/ } public void categoryAllload() { 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(); category4OptionList.add(new SelectOption('', '-无-')); for(AggregateResult category4Search : category4List) { String deliverycnt4 = String.valueOf(category4Search.get('c4c')); category4OptionList.add(new SelectOption(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(); category5OptionList.add(new SelectOption('', '-无-')); for(AggregateResult category5Search : category5List) { String deliverycnt5 = String.valueOf(category5Search.get('c5c')); category5OptionList.add(new SelectOption(deliverycnt5,deliverycnt5)); } } public void categoryload() { 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(); category4OptionList.add(new SelectOption('', '-无-')); for(AggregateResult category4Search : category4List) { String deliverycnt4 = String.valueOf(category4Search.get('c4c')); category4OptionList.add(new SelectOption(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(); category5OptionList.add(new SelectOption('', '-无-')); for(AggregateResult category5Search : category5List) { String deliverycnt5 = String.valueOf(category5Search.get('c5c')); category5OptionList.add(new SelectOption(deliverycnt5,deliverycnt5)); } } //开票,保存出库单 /*public void upchangeorder(){ Consumable_order__c p = new Consumable_order__c(); if(coc.ConInvoice_Code__c != null){ p.ConInvoice_Code__c = coc.ConInvoice_Code__c; p.Onchange_order__c = true; update p; } }*/ //库存排序 /*public void SortStore(){ if (this.sortKey == this.preSortKey) { // 方向が変わるのみ this.sortOrderAsc = !this.sortOrderAsc; this.sortOrder[Integer.valueOf(this.sortKey)] = (this.sortOrderAsc == true ? '↑' : '↓'); } else { this.sortOrderAsc = true; this.sortOrder[Integer.valueOf(this.preSortKey)] = ' '; this.sortOrder[Integer.valueOf(this.sortKey)] = (this.sortOrderAsc == true ? '↑' : '↓'); } this.preSortKey = this.sortKey; //取出被选中的部分 List ConsumableorderdetailsChecked = new List(); List ConsumableorderdetailsUnChecked = new List(); for(ConsumableorderdetailsInfo Checked : consumableorderdetailsSelectRecords){ if(Checked.Check == true){ Checked.sortBy = this.sortOrderAsc; ConsumableorderdetailsChecked.add(Checked); }else{ Checked.sortBy = this.sortOrderAsc; ConsumableorderdetailsUnChecked.add(Checked); } } //已选择的明细 ConsumableorderdetailsChecked.sort(); //未选择的明细 ConsumableorderdetailsUnChecked.sort(); consumableorderdetailsSelectRecords = new List(); for(ConsumableorderdetailsInfo CheckedAdd : ConsumableorderdetailsChecked){ consumableorderdetailsSelectRecords.add(CheckedAdd); } for(ConsumableorderdetailsInfo UncheckedAdd : ConsumableorderdetailsUnChecked){ consumableorderdetailsSelectRecords.add(UncheckedAdd); } //makeMessage(); //listCut(); }*/ /** * 選択済み/未選択製品の置き換え */ /*public PageReference exchangeConsumableProduct() { List tmpChecked = new List(); List tmpUnChecked = new List(); for (ConsumableorderdetailsInfo ass : consumableorderdetailsSelectRecords) { if (ass.check) { tmpChecked.add(ass); } else { tmpUnChecked.add(ass); } } for (ConsumableorderdetailsInfo ass : consumableorderdetailsunSelectRecords) { if (ass.check) { tmpChecked.add(ass); } else { tmpUnChecked.add(ass); } } //选择明细 consumableorderdetailsSelectRecords = new List(); for (ConsumableorderdetailsInfo ass : tmpChecked) { consumableorderdetailsSelectRecords.add(ass); } //未选择明细 consumableorderdetailsunSelectRecords = new List(); consumableorderdetailsunSelectRecords.addAll(tmpUnChecked); listCut(); System.debug('exchangeConsumableProduct end'); return null; } */ //打印PDF public PageReference PraseToPDF(){ if(coc.SummonsStatus_c__c =='批准'){ Consumable_order__c P = new Consumable_order__c(); List cocinfo = New List(); // 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; } return UnabletoEdit(); } //限制性排序 public void SortLimited(){ List reSet = new List(); Map MidMap = new Map(); //add by rentx 2021-01-29 Map MidMap2 = new Map(); //add by rentx 2021-01-29 List 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 start hospitalSpecialOffer__c //add by rentx 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 Bar_Code__c !=null AND Isoverdue__c = 1 AND Arrive_Owner_Work_Location__c =: userWorkLocation //AND Consumable_order_minor__r.Dealer_Info__c = :accountid AND Dealer_Info_text__c = :accountName]; if (this.sortKey == this.preSortKey) { // 方向が変わるのみ this.sortOrderAsc = !this.sortOrderAsc; this.sortOrder[Integer.valueOf(this.sortKey)] = (this.sortOrderAsc == true ? '↑' : '↓'); } else { this.sortOrderAsc = true; this.sortOrder[Integer.valueOf(this.preSortKey)] = ''; this.sortOrder[Integer.valueOf(this.sortKey)] = (this.sortOrderAsc == true ? '↑' : '↓'); } this.preSortKey = this.sortKey; // 所有产品取得 if((EsetId==null||ESetId=='')||(EsetId!=null&&ESetId!=''&&statusEdit== 'Redirect'&&SearchDone=='SearchDone')){ if(!String.isEmpty(arriveorder)){ //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '00000')); //orderzaikuId.clear(); String strProd = null; for (ConsumableorderdetailsInfo ass : pageRecords) { //orderzaikuId.add(ass.prod.Id); if(strProd==null || strProd.length()==0){ strProd = '\'' + String.valueOf(ass.prod.Id) + '\''; } else{ strProd += ',\'' + String.valueOf(ass.prod.Id) + '\''; } } 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 Estimation_Entry_Possibility__c = \'○\''; soql += ' WHERE Id IN (' + strProd + ')'; soql += ' order by ' + this.columus_no[Integer.valueOf(this.sortKey)] + ' ' + (this.sortOrderAsc == true ? 'asc nulls first' : 'desc nulls last'); List product2List = Database.query(soql); for (Integer i = 0; i < product2List.size(); i++) { MidMap.put(product2List[i].Id, new ConsumableorderdetailsInfo(product2List[i])); } pageRecords= new List(); //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); 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; } MidMap.put(CountDel[i].Consumable_Product__c, Jstage); } }*/ for (Integer i = 0; i 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; pageRecords.add(bss); //} //} } List queryList = [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 = :consumableorderId AND Order_Owner_WorkLocal__c = : userWorkLocation order by Name ]; /*String SqlOrder = 'SELECT Id,Dealer_Custom_Price__c,Delivery_List_RMB__c,Consumable_Product__r.Name__c, Name, Consumable_order__c,'; SqlOrder += 'Consumable_Product__c,Consumable_Product__r.Name,Shipment_Count__c,Consumable_Product__r.Intra_Trade_List_RMB__c,'; SqlOrder += 'Consumable_Product__r.Category3__c,Consumable_Product__r.Category4__c,Consumable_Product__r.Category5__c,Unitprice_To_agency__c,'; SqlOrder += 'Consumable_Product__r.Asset_Model_No__c,Shipment_amount__c,Box_Piece__c,ProductPacking_list_manual__c,Consumable_Product__r.SFDA_Status__c,'; SqlOrder += 'Invoiced_Procount__c,RrturnPro_count__c,InvoiceProNot_count__c,Consumable_Product__r.Category5__c '; SqlOrder += ' FROM Consumable_orderdetails__c WHERE Consumable_order__c = \''+consumableorderId+'\''; List queryList = Database.query(SqlOrder); */ for(ConsumableorderdetailsInfo ass : pageRecords){ ass.sortBy = this.sortOrderAsc; for (Consumable_Orderdetails__c cdc1 : queryList) { cdc1.Shipment_Count__c = cdc1.Consumable_count__c; if(ass.prod.Id == cdc1.Consumable_Product__c){ ass.check = true; ass.orderdetails1 = cdc1; } } } }else{ //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '11111')); //当前页消耗品取得 /*String strProd = null; List product2Selected = setCon.getRecords(); for (Integer i = 0; i < product2Selected.size(); i++) { if(strProd==null || strProd.length()==0){ strProd = '\'' + String.valueOf(product2Selected[i].Id) + '\''; } else{ strProd += ',\'' + String.valueOf(product2Selected[i].Id) + '\''; } }*/ //orderzaikuId.clear(); String strProd = null; for (ConsumableorderdetailsInfo ass : pageRecords) { //orderzaikuId.add(ass.prod.Id); if(strProd==null || strProd.length()==0){ strProd = '\'' + String.valueOf(ass.prod.Id) + '\''; } else{ strProd += ',\'' + String.valueOf(ass.prod.Id) + '\''; } } 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 Estimation_Entry_Possibility__c = \'○\''; soql += ' WHERE Id IN (' + strProd + ')'; soql += ' order by ' + this.columus_no[Integer.valueOf(this.sortKey)] + ' ' + (this.sortOrderAsc == true ? 'asc nulls first' : 'desc nulls last'); List queryList = Database.query(soql); // 選択済みの明细を取得 Map selectedIdMap = new Map(); for (ConsumableorderdetailsInfo ass : pageRecords) { if(ass.check == true){ selectedIdMap.put(ass.Prod.id,ass.Prod.id); reSet.add(ass); } } for (Integer i = 0; i < queryList.size(); i++) { if (selectedIdMap.containsKey(queryList[i].Id)) { // 跳过已经选择的消耗品明细 continue; } else { // 未选择的消耗品明细 MidMap.put(queryList[i].Id, new ConsumableorderdetailsInfo(queryList[i])); } } pageRecords= new List(); pageRecords = reSet; //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); 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; } MidMap.put(CountDel[i].Consumable_Product__c, Jstage); } }*/ 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 //再把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(selectedIdMap.containsKey(bss.orderdetails1.id)){ continue; }else{ //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; pageRecords.add(bss); //} } } //listCut(); } }else if(SearchDone!='SearchDone'){ //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '22222')); String strProd = null; for (ConsumableorderdetailsInfo ass : pageRecords) { //orderzaikuId.add(ass.prod.Id); if(strProd==null || strProd.length()==0){ strProd = '\'' + String.valueOf(ass.prod.Id) + '\''; } else{ strProd += ',\'' + String.valueOf(ass.prod.Id) + '\''; } } String SqlOrder = 'SELECT Id, Name, Consumable_order__c, Consumable_Product__r.Name__c,Invoiced_Procount__c,RrturnPro_count__c,InvoiceProNot_count__c,'; SqlOrder += 'Consumable_Product__c,Consumable_Product__r.Name,Consumable_Product__r.Category3__c,Consumable_Product__r.Category4__c,Consumable_Product__r.Category5__c,'; SqlOrder += 'Shipment_Count__c,Consumable_Product__r.Intra_Trade_List_RMB__c,'; SqlOrder += 'Consumable_Product__r.Asset_Model_No__c,Shipment_amount__c,Dealer_Custom_Price__c,Delivery_List_RMB__c,Box_Piece__c,ProductPacking_list_manual__c,'; SqlOrder += 'Consumable_Product__r.SFDA_Status__c,Consumable_Product__r.Product2__r.Packing_list_manual__c,Consumable_Product__r.Product2__r.SFDA_Approbation_No__c,'; SqlOrder += 'Consumable_Product__r.Product2__r.SFDA_Expiration_Date__c '; SqlOrder += ' FROM Consumable_orderdetails__c WHERE Consumable_order__c = \''+ESetId+'\''; SqlOrder += ' AND Order_Owner_WorkLocal__c = \'' + userWorkLocation + '\''; SqlOrder += ' AND Consumable_Product__c IN (' + strProd + ')'; SqlOrder += ' order by ' + this.columus[Integer.valueOf(this.sortKey)] + ' ' + (this.sortOrderAsc == true ? 'asc nulls first' : 'desc nulls last'); List queryList = Database.query(SqlOrder); // 選択済みの明细を取得 for (Integer i = 0; i < queryList.size(); i++) { // 未选择的消耗品明细 MidMap.put(queryList[i].Consumable_Product__c, new ConsumableorderdetailsInfo(queryList[i])); } pageRecords = new List(); // 显示数据条数信息 //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); 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; } MidMap.put(CountDel[i].Consumable_Product__c, Jstage); } }*/ for (Integer i = 0; i 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; pageRecords.add(bss); //} } //listCut(); } } //上传附件 public PageReference FilesUpload(){ PageReference ref = new Pagereference('/p/attach/NoteAttach?pid='+ESetid+'&retURL=%2F' + '/summonsCreat?ESetid=' +ESetid); ref.setRedirect(true); return ref; } // 检索 public void searchConsumableorderdetails() { SearchDone = 'SearchDone'; Map selectedIdMap = new Map(); List reSet = new List(); Map MidMap = new Map(); //update by rentx 2021-01-29 Map MidMap2 = new Map(); /*List 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 start hospitalSpecialOffer__c //add by rentx 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 Bar_Code__c !=null AND Isoverdue__c = 1 AND Arrive_Owner_Work_Location__c = : userWorkLocation //AND Consumable_order_minor__r.Dealer_Info__c = :accountid AND Dealer_Info_text__c = :accountName];*/ 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'; } List CountDel = Database.query(countdelSoql); //update by rentx 2021-01-29 consumableorderdetailsSelectRecords = new List(); //consumableorderdetailsSelectRecords = reSet; String soql = this.makeSoql(category1,category3,category4,category5); size = Integer.valueOf(System.Label.orderdetLimitsize); initStandardController(soql); product2Selected = Database.query(soql); 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); 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; } //Jstage.BoxPiece = CountDel[i].Box_Piece__c; MidMap.put(CountDel[i].Consumable_Product__c, Jstage); } }*/ 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 //再把map里的值从新赋给ConsumableorderdetailsRecords //update by rentx 2021-01-29 // for(ConsumableorderdetailsInfo bss : MidMap.values()){ Integer ishosnum = 0; for(ConsumableorderdetailsInfo bss : MidMap2.values()){ //update by rentx 2021-01-29 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(); //add by rentx noOfRecords = consumableorderdetailsSelectRecords.size(); //add by rentx makepagerecords(); this.sortKey = '1'; this.preSortKey = '1'; this.sortOrderAsc = false; this.sortOrder = new String[8]; this.sortOrder = new String[]{' ',' ',' ',' ','↓','','',''}; //cate1ForSort = category1; // 显示数据条数信息 //makeMessage(); } // 编辑按钮 public PageReference seteditAble(){ statusEdit = 'Redirect'; PageReference ref = new Pagereference('/apex/summonsCreat?ESetid='+ESetid+'&KeyWords='+statusEdit); ref.setRedirect(true); return ref; } //删除按钮 public PageReference DelConsumable(){ List qs = New List(); List Dqs= New List(); 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; } PageReference ref = new Pagereference('/SaleAndDelivery'); ref.setRedirect(true); return ref; } //出货 public PageReference GoodsDelivery(){ if(coc.SummonsForDirction__c =='互相调货'){ List 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; } } if(coc.SummonsStatus_c__c =='批准'){ ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '请先打印指示单!')); return null; } for(ConsumableorderdetailsInfo ass : consumableorderdetailsSelectRecords){ 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; } } PageReference ref = new Pagereference('/apex/SaleOrder?ESetid='+ESetid); ref.setRedirect(true); return ref; } // 提交按钮 public void approval() { //判断库存 for(ConsumableorderdetailsInfo ass : consumableorderdetailsSelectRecords){ if(ass.orderdetails1.Box_Piece__c == '盒'){ if(ass.orderdetails1.Shipment_Count__c > ass.Boxnumber){ ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.orderdetails1.Consumable_Product__r.Name__c + '库存不足')); return; } }else if(ass.orderdetails1.Box_Piece__c == '个'){ if(ass.orderdetails1.Shipment_Count__c > ass.Piecenumber){ ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.orderdetails1.Consumable_Product__r.Name__c + '库存不足')); return; } } } Consumable_order__c P = new Consumable_order__c(); List cocinfo = New List(); //update start by vivek 2019-7-15 add “NoConfirmedPrice__c” in select cocinfo = [SELECT Id,Name,NoConfirmedPrice__c,SummonsStatus_c__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]; } system.debug(p.id); p.SummonsStatus_c__c = '出库单已打印'; p.Order_date__c = date.today(); update p; //update start by vivek 2019-7-15 add “NoConfirmedPrice__c” in select 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 FROM Consumable_order__c WHERE Id =:ESetId AND Order_type__c = '传票']; // update end by vivek 2019-7-15 } // 保存按钮 public PageReference save() { //订单信息确认 if(coc.SummonsForDirction__c ==''||coc.SummonsForDirction__c == null){ coc.SummonsForDirction__c.addError('请输入指示单目的。'); return null; } else if(coc.SummonsForDirction__c =='直接销售给医院'){ if(String.isBlank(HospitalInfo) || String.isBlank(HospitalName)){ coc.addError('请输入医院。'); return null; } if(String.isBlank(coc.Order_ForCustomerText__c)){ coc.Order_ForCustomerText__c.addError('请输入科室。'); return null; } else if(String.isNotBlank(SecondDealer) || String.isNotBlank(coc.Order_ForDealerText__c)){ coc.addError('不需要二级经销商和经销商(录入)信息。' ); return null; } }else if(coc.SummonsForDirction__c =='医院试用'){ if(String.isBlank(HospitalInfo) || String.isBlank(HospitalName)){ coc.addError('请输入医院。'); return null; } if(String.isBlank(coc.Order_ForCustomerText__c)){ coc.Order_ForCustomerText__c.addError('请输入科室。'); return null; } /*if(SecondDealer == null && coc.Order_ForDealerText__c ==null){ coc.addError('必须输入二级经销商或经销商(录入)。'); return null; } if(SecondDealer != null && coc.Order_ForDealerText__c !=null){ coc.addError('请输入二级经销商或经销商(录入)。'); return null; }*/ } else if(coc.SummonsForDirction__c =='销售给二级经销商'){ /* if(coc.Order_ForHospital__c!=null){ coc.Order_ForHospital__c.addError('不需要输入医院。'); return null; } if(coc.Order_ForCustomerText__c !=null){ coc.Order_ForCustomerText__c.addError('不需要输入科室。'); return null; } */ if(String.isBlank(SecondDealer) && String.isBlank(coc.Order_ForDealerText__c)){ coc.addError('必须输入二级经销商或经销商(录入)。'); return null; } if(String.isBlank(HospitalInfo) || String.isBlank(HospitalName)){ coc.addError('请输入医院。'); return null; } if(String.isBlank(coc.Order_ForCustomerText__c)){ coc.Order_ForCustomerText__c.addError('请输入科室。'); return null; } } else if(coc.SummonsForDirction__c =='互相调货'){ if(String.isNotBlank(HospitalInfo) || String.isNotBlank(HospitalName)){ coc.addError('不需要输入医院。'); return null; } if(String.isNotBlank(coc.Order_ForCustomerText__c)){ coc.Order_ForCustomerText__c.addError('不需要输入科室。'); return null; } if(String.isBlank(SecondDealer) && String.isBlank(coc.Order_ForDealerText__c)){ coc.addError('必须输入二级经销商或经销商(录入)。'); return null; } } Integer isHos = 0; Integer FLG = 0; Integer Count = 0; for(ConsumableorderdetailsInfo CheckCount : pageRecords) { 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; } // gzw 注释 判断提前 20210308 checkOutPattern(); // add by rentx 2021-3-10 start //特价医院出库非本医院维护的特价商品时,报错 非特价医院出库维护在医院特价关系表的产品时 报错 if(coc.SummonsForDirction__c !='互相调货'){ //非特价医院出库特价产品时 报错(当前经销商下没有特价医院除外) List hopList = [select id,hospital__c,product__c from hospitalprice__c where account__c = :accountid]; //经销商对应医院下的所有特价产品 Map proMap = new Map(); //经销商下的所有特价产品 Map allProMap = new Map(); 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(ConsumableorderdetailsInfo ass : pageRecords){ 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; } }//非医院特价产品可以出库给任意医院,所以不需要判断 } } } }else{ //如果是互相调货,判断 经销商(录入) 是否维护了 当前选中的特价产品 List hopList = [select id,hospital__c,product__c from hospitalprice__c where account__c = :coc.Order_ForDealerTextID__c]; Map proMap = new Map(); if (hopList != null && hopList.size() > 0) { for (hospitalprice__c hpc : hopList) { proMap.put(hpc.product__c, ''); } String proStr = ''; for(ConsumableorderdetailsInfo ass : pageRecords){ 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; } }else{ //add by rentx 20210623 start ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '经销商:'+coc.Order_ForDealerText__c +' 下没有特价医院,请重新选择后出库!')); return null; //add by rentx 20210623 end } } // add by rentx 2021-3-10 end //注释 by rentx at2021-3-10 /*//需要根据 出库医院特价产品,但出库的产品中包含非医院特价产品 if (coc.OutPattern__c == true) { //add by rentx 2020-12-02 start 是 并且该医院维护在医院特价 if (String.isNotBlank(HospitalInfo) && coc.SummonsForDirction__c !='互相调货') { //判断当前医院是否为特价医院 List hlist = [select id from hospitalprice__c where account__c = :accountid and hospital__c = :HospitalInfo]; // List hlist = [select id from hospitalprice__c where hospital__c = :HospitalInfo]; if (hlist.size() == 0) { ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '出库商品到特价医院时,请选择医院特价产品')); return null; }else{ if (FLG - Count > isHos && ishos != 0) { ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '出库商品到特价医院时,请选择医院特价产品')); return null; } } } } //add by rentx 2021-2-26 start //判断当前经销商下是否有特价医院 List hlist = [select id from hospitalprice__c where account__c = :accountid]; if (hlist == null || hlist.size() == 0) { }else { //add by rentx 2021-2-26 end if (coc.OutPattern__c == false) { if (isHos >0 ) { ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '出库商品到非特价医院时,请选择非医院特价产品')); return null; } } //add by rentx 2020-12-02 end }*/ // gzw 注释 判断提前 20210308 // checkOutPattern(); Consumable_order__c P = new Consumable_order__c(); List Ins = New List(); List InsProduct = New List(); 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(SecondDealer==null){ 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 ProductNewMap = new Map(); for(ConsumableorderdetailsInfo ass : pageRecords){ if(ass.check == true){ if(ass.orderdetails1.Delivery_List_RMB__c < 0){ ass.orderdetails1.Delivery_List_RMB__c.addError('请输入正确的出货单价 (元)。'); return null; } //if(ass.orderdetails1.Unitprice_To_agency__c < 0){ // ass.orderdetails1.Delivery_List_RMB__c.addError('请输入正确的二级经销商给客户单价。'); // return null; //} if(ass.orderdetails1.Delivery_List_RMB__c == null && coc.SummonsForDirction__c !='医院试用'){ ass.orderdetails1.Delivery_List_RMB__c.addError('请输入出货单价 (元)。'); return null; } if(ass.orderdetails1.Delivery_List_RMB__c == 0 && (coc.SummonsForDirction__c =='销售给二级经销商' || coc.SummonsForDirction__c =='直接销售给医院')){ ass.orderdetails1.Delivery_List_RMB__c.addError('请输入出货单价 (元)。'); return null; } //if(coc.SummonsForDirction__c =='互相调货' || coc.SummonsForDirction__c =='直接销售给医院' || coc.SummonsForDirction__c =='医院试用'){ // if(ass.orderdetails1.Unitprice_To_agency__c != null && ass.orderdetails1.Unitprice_To_agency__c != 0){ // ass.orderdetails1.Unitprice_To_agency__c.addError('不需要输入二级经销商给客户单价。'); // return null; // } //} //销售给二级经销商 时,可以录入 /*else if(coc.SummonsForDirction__c =='销售给二级经销商'){ if(ass.orderdetails1.Unitprice_To_agency__c == null || ass.orderdetails1.Unitprice_To_agency__c == 0){ ass.orderdetails1.Unitprice_To_agency__c.addError('必须输入二级经销商给客户单价。'); return null; } }*/ if(ass.orderdetails1.Shipment_Count__c == null ||ass.orderdetails1.Shipment_Count__c ==0){ ass.orderdetails1.Shipment_Count__c.addError('请输入出货数量。'); return null; } if(ass.orderdetails1.Box_Piece__c == null ||ass.orderdetails1.Box_Piece__c ==''){ ass.orderdetails1.Box_Piece__c.addError('请输入单位。'); return null; } 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 + '库存不足')); }else{ ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.orderdetails1.Consumable_Product__r.Name__c + '库存不足')); } return null; } }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 + '库存不足')); }else{ ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.orderdetails1.Consumable_Product__r.Name__c + '库存不足')); } return null; } } } } insert p; ESetId = p.id; List detailName = new List(); detailName = [SELECT id,Name FROM Consumable_order__c WHERE id =:ESetId]; Integer i = 1; for (ConsumableorderdetailsInfo ass : pageRecords) { 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); } } //修改之后 保存订单 else if(ESetId != null || ESetId.length() >0 ){ List cocinfo = New List(); // 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(SecondDealer == null){ p.Order_ForHospital__c = String.isNotBlank(HospitalInfo) ? HospitalInfo : null; p.Order_ForCustomerText__c = coc.Order_ForCustomerText__c; p.Order_ForDealer__c = SecondDealer; }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 ProductOldMap = new Map(); for (ConsumableorderdetailsInfo ass : pageRecords) { if(ass.check == true){ if(ass.orderdetails1.Delivery_List_RMB__c < 0){ ass.orderdetails1.Delivery_List_RMB__c.addError('请输入正确的出货单价 (元)。'); return null; } //if(ass.orderdetails1.Unitprice_To_agency__c < 0){ // ass.orderdetails1.Delivery_List_RMB__c.addError('请输入正确的二级经销商给客户单价。'); // return null; //} Consumable_orderdetails__c InsAfterDel = new Consumable_orderdetails__c(); if(ass.orderdetails1.Delivery_List_RMB__c == null && coc.SummonsForDirction__c !='医院试用'){ ass.orderdetails1.Delivery_List_RMB__c.addError('请输入出货单价 (元)。'); return null; } if(ass.orderdetails1.Delivery_List_RMB__c == 0 && (coc.SummonsForDirction__c =='销售给二级经销商' || coc.SummonsForDirction__c =='直接销售给医院')){ ass.orderdetails1.Delivery_List_RMB__c.addError('请输入出货单价 (元)。'); return null; } //if(coc.SummonsForDirction__c =='互相调货' || coc.SummonsForDirction__c =='直接销售给医院' || coc.SummonsForDirction__c =='医院试用'){ // if(ass.orderdetails1.Unitprice_To_agency__c != null && ass.orderdetails1.Unitprice_To_agency__c != 0){ // ass.orderdetails1.Unitprice_To_agency__c.addError('不需要输入二级经销商给客户单价。'); // return null; // } //} //销售给二级经销商 时,二级经销商给客户单价可以录入 /*else if(coc.SummonsForDirction__c =='销售给二级经销商'){ if(ass.orderdetails1.Unitprice_To_agency__c == null || ass.orderdetails1.Unitprice_To_agency__c == 0){ ass.orderdetails1.Unitprice_To_agency__c.addError('必须输入二级经销商给客户单价。'); return null; } }*/ if(ass.orderdetails1.Box_Piece__c == null ||ass.orderdetails1.Box_Piece__c ==''){ ass.orderdetails1.Box_Piece__c.addError('请输入单位。'); return null; } 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 + '库存不足')); }else{ ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.orderdetails1.Consumable_Product__r.Name__c + '库存不足')); } return null; } }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 + '库存不足')); }else{ ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.orderdetails1.Consumable_Product__r.Name__c + '库存不足')); } return null; } } if(ass.orderdetails1.Shipment_Count__c == null||ass.orderdetails1.Shipment_Count__c==0){ ass.orderdetails1.Shipment_Count__c.addError('请输入出货数量。'); return null; }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; 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 qs = New List(); 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 UnabletoEdit(); } // 返回不可编辑状态 public PageReference UnabletoEdit(){ PageReference ref = new Pagereference('/apex/summonsCreat?ESetid='+ESetId); ref.setRedirect(true); return ref; } // 做成检索SQL文 private String makeSoql(String CateName,String Category3,String Category4,String Category5){ //String sqlTail = '(\''; //for(Integer i = 0 ; i< orderzaikuId.size();i++){ // if(i 0){ // soql += ' AND Id not in' + sqlTail; //} //if(zaikuId.size() > 0){ //soql += ' AND Id in' + sqlTail1; //} //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'soql ++++++' + soql)); return soql; } private String makeSoqlinventory(){ String sqlTail = '(\''; for(Integer i = 0 ; i< zaikuId.size();i++){ if(i 0){ msoql += ' WHERE Id in' + sqlTail; //} return msoql; } private String makeSoqlorderdet(){ String sqlTail = '(\''; for(Integer i = 0 ; i< orderzaikuId.size();i++){ if(i 0){ msoql += ' WHERE Id in' + sqlTail; //} return msoql; } // 显示数据条数信息 private void makeMessage() { ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '库存共有' + consumableorderdetailsCount + '可出货件产品')); } // Data Bean class ConsumableorderdetailsInfo implements Comparable { public Boolean check { get; set; } public Boolean oldCheck { get; set; } public Consumable_Orderdetails__c orderdetails1 { get; set; } public Consumable_order_details2__c orderdetails2 { get; set; } public Product2__c Prod { get; set; } //盒的个数 public Decimal Boxnumber { get; set; } //个的个数 public Decimal Piecenumber { get; set; } public Decimal allnumber { get; set; } public Decimal oldConsumableCount { get; set; } public Boolean canSelect { get; set; } public Boolean sortBy { get; set; } public Integer packinglist { get; set; } public String approbation_No { get; set; } public Date expiration_Date { get; set; } public String boxorpiecein {get;set;} public List boxorpiece { get; set; } public Attachment concc { get; set; } public String BoxPiece { get; set; } //public String UnitpriceToagency { get; set; } //add by rentx public Boolean hospitalSpecialOffer {get;set;} public Boolean hosPro {get;set;} //add by rentx // 消耗品订货明细 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(); boxorpiece.add(new SelectOption('盒', '盒')); boxorpiece.add(new SelectOption('个', '个')); 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(); //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(); boxorpiece.add(new SelectOption('盒', '盒')); boxorpiece.add(new SelectOption('个', '个')); 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; } } } }