public with sharing class LexConInvoiceList {
|
public static Consumable_order__c coc { get; set; }
|
public static String agencyProType { get; set; }
|
public static String category1 { get; set; }
|
public static String category2 { get; set; }
|
//发票开始、结束日期
|
private static Date cate1 { get; set; }
|
private static Date cate2 { get; set; }
|
// 登录用户 ID
|
private static String userinfoId { get; set; }
|
private static String invoiceStatus { get; set; }
|
//经销商id
|
private static String accountid { get; set; }
|
// 画面显示数据
|
public static List<Consumable_order__c> raesList { get; private set; }
|
//排序使用
|
private static String[] orderby = new List<String>{ 'Invoice_Date__c', 'Name', 'ShipmentAccount__c' };
|
public static String sortKey { get; set; }
|
public static String preSortKey { get; private set; }
|
public static Boolean sortOrderAsc { get; private set; }
|
public static String[] sortOrder { get; private set; }
|
// 登录者工作地
|
private static String userWorkLocation { get; set; }
|
public static Map<String, String> statusMap { get; set; }
|
|
@AuraEnabled
|
public static ResponseBodyLWC init() {
|
ResponseBodyLWC res = new ResponseBodyLWC();
|
Map<String, object> data = new Map<String, object>();
|
res.entity = data;
|
|
statusMap = new Map<String, String>();
|
raesList = new List<Consumable_order__c>();
|
coc = new Consumable_order__c();
|
cate1 = coc.Order_date__c;
|
cate2 = coc.Deliver_date__c;
|
userinfoId = UserInfo.getUserId();
|
List<user> Useracc = new List<user>();
|
Useracc = [SELECT accountid, Work_Location__c, UserPro_Type__c FROM user WHERE id = :userinfoId];
|
accountid = Useracc[0].accountid;
|
userWorkLocation = Useracc[0].Work_Location__c;
|
agencyProType = Useracc[0].UserPro_Type__c;
|
if (String.isBlank(Useracc[0].UserPro_Type__c)) {
|
agencyProType = 'ET';
|
}
|
invoiceStatus = coc.Invoice_status__c;
|
String soql = makeSoql(category1, category2, invoiceStatus);
|
raesList = Database.query(soql);
|
|
statusMap = getPicklistValues('Consumable_order__c', 'Invoice_status__c');
|
|
data.put('userinfoId', userinfoId);
|
data.put('accountid', accountid);
|
data.put('userWorkLocation', userWorkLocation);
|
data.put('agencyProType', agencyProType);
|
data.put('raesList', raesList);
|
data.put('statusMap', statusMap);
|
res.status = 'Success';
|
res.code = 200;
|
System.debug('res = ' + res);
|
return res;
|
}
|
|
// 发票单检索
|
@AuraEnabled
|
public static ResponseBodyLWC invoiceCodeSearch(
|
Date orderDateLwc,
|
Date deliverDateLwc,
|
String invoiceStatusLwc,
|
String category1Lwc,
|
String category2Lwc,
|
String accountidLwc,
|
String userWorkLocationLwc,
|
String agencyProTypeLwc
|
) {
|
ResponseBodyLWC res = new ResponseBodyLWC();
|
Map<String, object> data = new Map<String, object>();
|
res.entity = data;
|
|
cate1 = orderDateLwc;
|
cate2 = deliverDateLwc;
|
invoiceStatus = invoiceStatusLwc;
|
category1 = category1Lwc;
|
category2 = category2Lwc;
|
accountid = accountidLwc;
|
userWorkLocation = userWorkLocationLwc;
|
agencyProType = agencyProTypeLwc;
|
// 获得发票一览
|
raesList = new List<Consumable_order__c>();
|
String soql = makeSoql(category1, category2, invoiceStatus);
|
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, '没有搜索到相关发票。'));
|
// }
|
data.put('raesList', raesList);
|
data.put('raesListSize', raesList.size());
|
res.status = 'Success';
|
res.code = 200;
|
System.debug('res = ' + res);
|
return res;
|
}
|
|
// 做成检索SQL文
|
private static String makeSoql(String invoiceCode, String accountName, String invoiceStatus) {
|
String soql = 'SELECT Id, Name,Invoice_Date__c,ShipmentAccount__c,Shipment_total_amount__c,RrturnPro_total_amount__c,Invoice_status__c, ';
|
soql += ' InvoicedPro_total_amount__c,InvoiceNotPro_total_amount__c,Invoice_total_amount__c,Invoice_attachment__c,Invoicedet_attachment__c FROM Consumable_order__c ';
|
soql += ' WHERE Dealer_Info__c = \'' + accountid + '\'';
|
soql += ' AND Order_Owner_WorkLocal__c = \'' + userWorkLocation + '\' ';
|
soql += ' and Order_ProType__c =\'' + agencyProType + '\' ';
|
soql += ' AND recordtypeid = \'' + System.Label.RT_ConOrder_Invoice + '\'';
|
if (cate1 != null) {
|
soql += ' AND Invoice_Date__c >= :cate1 ';
|
}
|
if (cate2 != null) {
|
soql += ' AND Invoice_Date__c <= :cate2 ';
|
}
|
if (!String.isBlank(invoiceCode)) {
|
soql += ' AND Name like \'%' + String.escapeSingleQuotes(invoiceCode.replaceAll('%', '\\%')) + '%\' ';
|
}
|
if (!String.isBlank(accountName)) {
|
soql += ' AND ShipmentAccount__c like \'%' + String.escapeSingleQuotes(accountName.replaceAll('%', '\\%')) + '%\' ';
|
}
|
if (!String.isBlank(invoiceStatus)) {
|
soql += ' AND Invoice_status__c =\'' + invoiceStatus + '\' ';
|
}
|
System.debug('soql+++++' + soql);
|
return soql;
|
}
|
|
/*
|
通过sObjectName和指定字段获取PickList的value值
|
*/
|
public static Map<String, String> getPicklistValues(String sObjectName, String sFieldName) {
|
Map<String, String> picValues = new Map<String, String>();
|
picValues.put('-无-', '');
|
Map<String, Schema.SObjectType> sObjectDescribeMap = Schema.getGlobalDescribe();
|
if (sObjectDescribeMap.containsKey(sObjectName)) {
|
Map<String, Schema.SobjectField> sObjectFieldsMap = sObjectDescribeMap.get(sObjectName).getDescribe().fields.getMap();
|
if (sObjectFieldsMap.containsKey(sFieldName)) {
|
Schema.DescribeFieldResult sObjectFieldDescribe = sObjectFieldsMap.get(sFieldName).getDescribe();
|
List<Schema.PicklistEntry> lPickEntryList = sObjectFieldDescribe.getPicklistValues();
|
//tPicklistEntry.isDefaultValue()
|
for (Schema.PicklistEntry tPicklistEntry : lPickEntryList) {
|
picValues.put(tPicklistEntry.getLabel(), tPicklistEntry.getValue());
|
}
|
} else {
|
//TODO 不存在此字段的执行
|
}
|
} else {
|
// TODO 不存在此sObject的执行
|
}
|
return picValues;
|
}
|
}
|