public without sharing class SaleAndDeliveryController { public Consumable_order__c coc { get; set; } /*****************検索用******************/ //经销商产品分类 public String agencyProType {get;set;} //指示单号码 public String category1 { get; set; } //客户名 public String category2 { get; set; } //订单开始、结束日期 private Date cate2 = Date.today(); private Date cate3 = Date.today(); // 显示数据条数限制 private Integer Select_Limit = 100; // 登录用户 ID private String userinfoId = ''; //经销商id private String accountid = null; // 订单 字段标签 public static List getTitle() { // 获得订单一览 Map fsMap = Schema.getGlobalDescribe().get('Consumable_order__c').getDescribe().fieldSets.getMap(); Schema.FieldSet fs = fsMap.get('SaleAndDelivery'); // 获得订单中的所有项目 List fsmList = fs.getFields(); // 获得字段标签和字段名 List title = new List(); for (FieldSetMember fsm : fsmList) { if ('Name' == fsm.getFieldPath()) { title.add('出库单号'); } else { title.add(fsm.getLabel()); } } return title; } //排序使用 private String[] orderby = new String[]{ 'Outbound_Date__c','Name','ShipmentAccount__c','SummonsStatus_c__c','Billed_Status__c','CreatedDate'}; //排序用 public String sortKey { get; set; } public String preSortKey { get; private set; } public Boolean sortOrderAsc { get; private set; } public String[] sortOrder { get; private set; } // 订单 字段名 public List column; public List> columns { get; private set; } // 画面显示数据 public List raesList { get; private set; } // 登录者工作地 private String userWorkLocation; public SaleAndDeliveryController() { } //========20160311======ADD_Start================================ // 将订单明细以字段SET 方式显示 //========20160311======ADD_Start================================ public void init1() { this.sortKey = '1'; this.preSortKey = '1'; this.sortOrderAsc = false; this.sortOrder = new String[4]; this.sortOrder = new String[]{' ',' ',' ',' ',' ',' '}; coc = new Consumable_order__c(); userinfoId = UserInfo.getUserId(); List Useracc = New List(); Useracc = [SELECT accountid, Work_Location__c,UserPro_Type__c FROM user WHERE id =:userinfoId]; accountid = Useracc[0].accountid; agencyProType = Useracc[0].UserPro_Type__c; if(String.isBlank(Useracc[0].UserPro_Type__c)){ agencyProType = 'ET'; } userWorkLocation = Useracc[0].Work_Location__c; //默认检索显示未完成的指示单 cleanUp(); } //========20160311======ADD_End================================ //新建出库指示 public PageReference neworderhead() { // 返回备品set PageReference ref = new Pagereference('/summonsCreat'); ref.setRedirect(true); return ref; } // 未完成出库单检索 public void searchConsumableorderdetails() { this.sortKey = '1'; this.preSortKey = '1'; this.sortOrderAsc = false; this.sortOrder = new String[4]; this.sortOrder = new String[]{' ',' ',' ',' ',' ',' '}; //coc = new Consumable_order__c(); cate2 = coc.Order_date__c; cate3 = coc.Deliver_date__c; // 获得订单一览 raesList = new List(); String soql = 'select Id, Name,ShipmentAccount__c,SummonsStatus_c__c,Billed_Status__c,CreatedDate,Outbound_Date__c,Order_ForCustomerText__c,InvoiceNotPro_total_amount__c,InvoiceNotPro_money__c from Consumable_order__c'; soql += ' WHERE Order_type__c = \'' + '传票' + '\' '; soql += ' and Dealer_Info__c =\'' + accountid +'\' '; soql += ' and Order_ProType__c =\'' + agencyProType +'\' '; soql += ' and Order_Owner_WorkLocal__c = \'' + userWorkLocation + '\' '; if (!String.isBlank(category1)) { soql += ' and Name like \'%' + String.escapeSingleQuotes(category1.replaceAll('%', '\\%')) + '%\' '; } if (!String.isBlank(category2)) { soql += ' and ShipmentAccount__c like \'%' + String.escapeSingleQuotes(category2.replaceAll('%', '\\%')) + '%\' '; } if(cate2 != null){ soql += ' and Order_date__c >= :cate2 '; } if(cate3 != null){ soql += ' and Order_date__c <= :cate3 '; } soql += 'and SummonsStatus_c__c != \'' + '已完成' + '\' '; soql += 'order by SummonsStatus_c__c'; System.debug('soql+++++' + soql); raesList = Database.query(soql); if(raesList.size()>0){ ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '共有' + raesList.size() + '个出库单')); }else{ ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '没有搜索到相关出库单。')); } } //排序 public void SortLimited(){ List orderIdList = new List(); for(Integer i = 0 ; i< raesList.size();i++){ orderIdList.add(raesList[i].Id); } 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; // 所有产品取得 String soql = 'select Id, Name,ShipmentAccount__c,SummonsStatus_c__c,Billed_Status__c,CreatedDate,Outbound_Date__c,Order_ForCustomerText__c,InvoiceNotPro_total_amount__c,InvoiceNotPro_money__c from Consumable_order__c'; soql += ' WHERE Id in :orderIdList'; //soql += ' order by Name'; soql += ' order by ' + this.orderby[Integer.valueOf(this.sortKey)]; soql += ' ' + (this.sortOrderAsc == true ? 'asc nulls first' : 'desc nulls last'); System.debug('soql+++++' + soql); List queryList = Database.query(soql); // 選択済みの明细を取得 //raesList = new List(); raesList = queryList; } // 已完成出库单检索 public void searchConsumableorFinish() { this.sortKey = '1'; this.preSortKey = '1'; this.sortOrderAsc = false; this.sortOrder = new String[4]; this.sortOrder = new String[]{' ',' ',' ',' ',' ',' '}; cate2 = coc.Order_date__c; cate3 = coc.Deliver_date__c; raesList = new List(); String soql = 'select Id, Name,ShipmentAccount__c,SummonsStatus_c__c,Billed_Status__c,CreatedDate,Outbound_Date__c,Order_ForCustomerText__c,InvoiceNotPro_total_amount__c,InvoiceNotPro_money__c from Consumable_order__c'; soql += ' WHERE Order_type__c = \'' + '传票' + '\' '; soql += ' and Dealer_Info__c =\'' + accountid +'\' '; soql += ' and Order_ProType__c =\'' + agencyProType +'\' '; soql += ' and Order_Owner_WorkLocal__c = \'' + userWorkLocation + '\' '; if (!String.isBlank(category1)) { soql += ' and Name like \'%' + String.escapeSingleQuotes(category1.replaceAll('%', '\\%')) + '%\' '; } if (!String.isBlank(category2)) { soql += ' and ShipmentAccount__c like \'%' + String.escapeSingleQuotes(category2.replaceAll('%', '\\%')) + '%\' '; } if(cate2 != null){ soql += ' and Outbound_Date__c >= :cate2 '; } if(cate3 != null){ soql += ' and Outbound_Date__c <= :cate3 '; } soql += 'and SummonsStatus_c__c = \'' + '已完成' + '\' '; soql += 'and Billed_Status__c = \'' + '全部开票' + '\' '; soql += 'order by CreatedDate desc limit ' + Select_Limit; raesList = Database.query(soql); if(raesList.size()>0){ ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '共有' + raesList.size() + '个出库单')); }else{ ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '没有搜索到相关出库单。')); } } // 未完成开票出库单检索 public void searchOrderInstatus() { this.sortKey = '1'; this.preSortKey = '1'; this.sortOrderAsc = false; this.sortOrder = new String[4]; this.sortOrder = new String[]{' ',' ',' ',' ',' ',' '}; cate2 = coc.Order_date__c; cate3 = coc.Deliver_date__c; // 获得订单一览 raesList = new List(); String soql = 'select Id, Name,ShipmentAccount__c,SummonsStatus_c__c,Billed_Status__c,CreatedDate,Outbound_Date__c,Order_ForCustomerText__c,InvoiceNotPro_total_amount__c,InvoiceNotPro_money__c from Consumable_order__c'; soql += ' WHERE Order_type__c = \'' + '传票' + '\' '; soql += ' and Dealer_Info__c =\'' + accountid +'\' '; soql += ' and Order_ProType__c =\'' + agencyProType +'\' '; soql += ' and Order_Owner_WorkLocal__c = \'' + userWorkLocation + '\' '; if (!String.isBlank(category1)) { soql += ' and Name like \'%' + String.escapeSingleQuotes(category1.replaceAll('%', '\\%')) + '%\' '; } if (!String.isBlank(category2)) { soql += ' and ShipmentAccount__c like \'%' + String.escapeSingleQuotes(category2.replaceAll('%', '\\%')) + '%\' '; } if(cate2 != null){ soql += ' and Outbound_Date__c >= :cate2 '; } if(cate3 != null){ soql += ' and Outbound_Date__c <= :cate3 '; } soql += 'and SummonsForDirction__c != \'' + '互相调货' + '\' '; soql += 'and SummonsStatus_c__c = \'' + '已完成' + '\' '; soql += 'and Billed_Status__c != \'' + '全部开票' + '\' '; soql += 'order by CreatedDate desc limit ' + Select_Limit; raesList = Database.query(soql); if(raesList.size()>0){ ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '共有' + raesList.size() + '个出库单')); }else{ ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '没有搜索到相关出库单。')); } } public void cleanUp() { this.sortKey = '1'; this.preSortKey = '1'; this.sortOrderAsc = false; this.sortOrder = new String[4]; this.sortOrder = new String[]{' ',' ',' ',' ',' ',' '}; //清空数据 coc.Order_date__c = null; coc.Deliver_date__c = null; this.category1 = ''; this.category2 = ''; // 获得显示数据 raesList = new List(); String soql = 'select Id, Name,ShipmentAccount__c,SummonsStatus_c__c,Billed_Status__c,CreatedDate,Outbound_Date__c,Order_ForCustomerText__c,InvoiceNotPro_total_amount__c,InvoiceNotPro_money__c from Consumable_order__c'; soql += ' WHERE Order_type__c = \'' + '传票' + '\' '; soql += ' and Order_ProType__c =\'' + agencyProType +'\' '; soql += 'and SummonsStatus_c__c != \'' + '已完成' + '\' and Dealer_Info__c =\'' + accountid +'\' '; soql += 'and Order_Owner_WorkLocal__c = \'' + userWorkLocation + '\' '; soql += 'order by SummonsStatus_c__c'; raesList = Database.query(soql); } }