public without sharing class LexConInvoiceViewController {
|
public static String agencyProType { get; set; }
|
public static Consumable_order__c coc { get; set; }
|
public static Consumable_order__c outbound { get; set; }
|
public static String invoiceId { get; set; }
|
public static String orderRemind { get; set; }
|
public static String deliveryId { get; set; }
|
public static String reopen { get; set; }
|
public static Decimal sumPrice { get; set; }
|
public static Boolean isChange { get; set; }
|
public static String accountid { get; set; }
|
public static String userId { get; set; }
|
public static String errorMsg { get; set; }
|
|
public static Boolean getdone() {
|
return (invoiceOrderdetail1Recoeds.size() > 0);
|
}
|
|
public static Boolean getExistOutbound() {
|
return (coc.Outbound_order__c != null);
|
}
|
|
public static String getInvoiceName() {
|
return (coc.Name);
|
}
|
public static List<Consumable_Orderdetails__c> conoList { get; set; }
|
|
public static String shipmentAccount {
|
get {
|
return (coc.ShipmentAccount__c);
|
}
|
}
|
public static String statusEdit = '';
|
public static Boolean editAble { get; set; }
|
public static List<InvoiceOrderInfo> invoiceOrderRecoeds { get; set; }
|
public static List<InvoiceOrderInfo> invoiceOrderdetail1Recoeds { get; set; }
|
public static List<InvoiceOrderInfo> invoiceOrderRecoedschange { get; set; }
|
public static List<InvoiceOrderInfo> attachmentRecoeds { get; set; }
|
public static List<Consumable_order__c> invoiceOrderList { get; set; }
|
public static List<Consumable_order__c> invoiceOrderSelectedList { get; set; }
|
public static Map<String, Decimal> ordermx1defaultMap { get; set; }
|
public static Map<String, Decimal> outorderMoneytMap { get; set; }
|
public static Map<String, Consumable_Orderdetails__c> outordercountMap { get; set; }
|
public static List<String> outOrderStringList { get; set; }
|
public static List<SelectOption> provinceOpts { get; set; }
|
public static Map<String, String> provinceOptsMap { get; set; }
|
public static String SecondDealer { get; set; }
|
public static String HospitalInfo { get; set; }
|
public static String HospitalName { get; set; }
|
|
public static Integer invoiceOrderRecoedsCount {
|
get {
|
return invoiceOrderRecoeds == null ? 0 : invoiceOrderRecoeds.size();
|
}
|
}
|
|
public static list<Dealer_elationship__c> Dealerelationship { get; set; }
|
public static String[] orderby = new List<String>{ 'Outbound_Date__c', 'Name', 'ShipmentAccount__c' };
|
public static String sortKey { get; set; }
|
public static String preSortKey { get; set; }
|
public static Boolean sortOrderAsc { get; set; }
|
public static String[] sortOrder { get; set; }
|
public static String userWorkLocation { get; set; }
|
|
//页面初始化
|
@AuraEnabled
|
public static ResponseBodyLWC init(String invoiceId, String statusEdit, String deliveryId) {
|
ResponseBodyLWC res = new ResponseBodyLWC();
|
Map<String, object> data = new Map<String, object>();
|
res.entity = data;
|
|
provinceOpts = new List<SelectOption>();
|
provinceOptsMap = new Map<String, String>();
|
invoiceOrderRecoeds = new List<InvoiceOrderInfo>();
|
attachmentRecoeds = new List<InvoiceOrderInfo>();
|
invoiceOrderdetail1Recoeds = new List<InvoiceOrderInfo>();
|
invoiceOrderRecoedschange = new List<InvoiceOrderInfo>();
|
orderRemind = '';
|
isChange = false;
|
conoList = new List<Consumable_Orderdetails__c>();
|
outorderMoneytMap = new Map<String, Decimal>();
|
outOrderStringList = new List<String>();
|
outordercountMap = new Map<String, Consumable_Orderdetails__c>();
|
|
sumPrice = 0;
|
// this.sortKey = '1';
|
// this.preSortKey = '1';
|
// this.sortOrderAsc = false;
|
// this.sortOrder = new List<String>(2);
|
// this.sortOrder = new List<String>{ ' ', ' ', ' ', ' ' };
|
|
invoiceId = invoiceId;
|
statusEdit = statusEdit;
|
deliveryId = deliveryId;
|
|
if (invoiceId != null && invoiceId != '' && (statusEdit == '' || statusEdit == null)) {
|
editAble = false;
|
} else if ((invoiceId == null || invoiceId == '') && (statusEdit == '' || statusEdit == null)) {
|
editAble = true;
|
} else if (invoiceId != null && invoiceId != '' && statusEdit != '' && statusEdit != null) {
|
editAble = true;
|
}
|
userId = UserInfo.getUserId();
|
List<user> Useracc = new List<user>();
|
Useracc = [SELECT accountid, Work_Location__c, UserPro_Type__c FROM user WHERE id = :userId];
|
accountid = Useracc[0].accountid;
|
userWorkLocation = Useracc[0].Work_Location__c;
|
agencyProType = Useracc[0].UserPro_Type__c;
|
if (String.isBlank(Useracc[0].UserPro_Type__c)) {
|
agencyProType = 'ET';
|
}
|
coc = new Consumable_order__c();
|
|
Dealerelationship = [
|
SELECT Dealer_subordinate__c, Dealer_subordinate__r.Name
|
FROM Dealer_elationship__c
|
WHERE Dealer_principal__c = :accountid
|
];
|
List<Agency_Hospital_Link__c> AgencyHospitalLink = new List<Agency_Hospital_Link__c>();
|
AgencyHospitalLink = [
|
SELECT Id, Name, Hospital__c, Hospital__r.Id, Hospital__r.Name, Agency__c
|
FROM Agency_Hospital_Link__c
|
WHERE Agency__c = :accountId
|
];
|
// 新規
|
if (invoiceId == null || invoiceId == '') {
|
if (deliveryId == null || deliveryId == '') {
|
String msoql = makeSoql();
|
invoiceOrderList = Database.query(msoql);
|
for (Integer i = 0; i < invoiceOrderList.size(); i++) {
|
invoiceOrderRecoeds.add(new InvoiceOrderInfo(invoiceOrderList[i]));
|
}
|
} else {
|
if (statusEdit == '' || statusEdit == null) {
|
EditAble = false;
|
} else if (statusEdit != '' && statusEdit != null) {
|
EditAble = true;
|
}
|
coc = [
|
SELECT
|
Id,
|
Name,
|
Invoice_status__c,
|
Invoice_Date__c,
|
Order_ForDealerText__c,
|
Dealer_Info__c,
|
Order_ForDealer__c,
|
Order_ForDealer__r.Name,
|
Order_ForHospital__c,
|
Order_ForHospital__r.Name,
|
Order_date__c,
|
Billed_Status__c,
|
ShipmentAccount__c,
|
Order_Dealer_Info__c,
|
SummonsForDirction__c,
|
Order_ForCustomerText__c,
|
Invoice_Note__c,
|
Invoice_attachment__c,
|
Invoicedet_attachment__c,
|
Outbound_order__c
|
FROM Consumable_order__c
|
WHERE Id = :deliveryId
|
];
|
coc.Name = '';
|
if (coc.Order_ForDealer__c != null) {
|
SecondDealer = coc.Order_ForDealer__c;
|
}
|
|
if (coc.Order_ForHospital__c != null) {
|
HospitalInfo = coc.Order_ForHospital__c;
|
HospitalName = coc.Order_ForHospital__r.Name;
|
}
|
|
//发票关联出库单取得(出库单)
|
invoiceOrderSelectedList = [
|
SELECT
|
Id,
|
Order_ForDealer__r.Name,
|
Order_ForHospital__r.Name,
|
Order_ForDealerText__c,
|
Name,
|
Outbound_Date__c,
|
ShipmentAccount__c,
|
Order_Dealer_Info__c,
|
SummonsForDirction__c,
|
Shipment_total_amount__c,
|
RrturnPro_total_amount__c,
|
Total_Invoiced_Procount__c,
|
InvoiceNotPro_total_amount__c,
|
InvoiceNotPro_money__c,
|
Invoice_total_amount__c,
|
Billed_Status__c
|
FROM Consumable_order__c
|
WHERE Id = :deliveryId
|
ORDER BY Name
|
];
|
for (Integer i = 0; i < invoiceOrderSelectedList.size(); i++) {
|
invoiceOrderRecoeds.add(new InvoiceOrderInfo(invoiceOrderSelectedList[i]));
|
}
|
}
|
} else {
|
coc = [
|
SELECT
|
Id,
|
Name,
|
Invoice_status__c,
|
Invoice_Date__c,
|
Order_ForDealerText__c,
|
Dealer_Info__c,
|
Order_ForDealer__c,
|
Order_ForDealer__r.Name,
|
Order_ForHospital__c,
|
Order_ForHospital__r.Name,
|
Order_date__c,
|
Billed_Status__c,
|
ShipmentAccount__c,
|
Order_Dealer_Info__c,
|
SummonsForDirction__c,
|
Order_ForCustomerText__c,
|
Invoice_Note__c,
|
Invoice_attachment__c,
|
Invoicedet_attachment__c,
|
Outbound_order__c
|
FROM Consumable_order__c
|
WHERE Id = :invoiceId AND Order_type__c = '发票'
|
];
|
if (coc.Order_ForDealer__c != null) {
|
SecondDealer = coc.Order_ForDealer__c;
|
}
|
if (coc.Order_ForHospital__c != null) {
|
HospitalInfo = coc.Order_ForHospital__c;
|
HospitalName = coc.Order_ForHospital__r.Name;
|
}
|
//到链接表中查找关联出库单
|
List<Consumable_order_LinkTable__c> outOrderList = [
|
SELECT Outboundorder_Code_link__c
|
FROM Consumable_order_LinkTable__c
|
WHERE Invoice_Code_link__c = :invoiceId
|
];
|
for (Integer i = 0; i < outOrderList.size(); i++) {
|
outOrderStringList.add(outOrderList[i].Outboundorder_Code_link__c);
|
}
|
//取得出库单信息
|
invoiceOrderSelectedList = [
|
SELECT
|
Id,
|
Order_ForDealer__r.Name,
|
Order_ForHospital__r.Name,
|
Order_ForDealerText__c,
|
Name,
|
Outbound_Date__c,
|
ShipmentAccount__c,
|
Shipment_total_amount__c,
|
RrturnPro_total_amount__c,
|
Total_Invoiced_Procount__c,
|
InvoiceNotPro_total_amount__c,
|
InvoiceNotPro_money__c,
|
Invoice_total_amount__c,
|
Billed_Status__c
|
FROM Consumable_order__c
|
WHERE Id IN :outOrderStringList AND Order_Owner_WorkLocal__c = :userWorkLocation
|
ORDER BY Name
|
];
|
for (Integer i = 0; i < invoiceOrderSelectedList.size(); i++) {
|
outorderMoneytMap.put(invoiceOrderSelectedList[i].id, 0);
|
invoiceOrderRecoeds.add(new InvoiceOrderInfo(invoiceOrderSelectedList[i]));
|
}
|
if (String.isNotBlank(deliveryId)) {
|
//发票关联出库单取得(出库单)
|
isChange = true;
|
invoiceOrderSelectedList = [
|
SELECT
|
Id,
|
Order_ForDealer__r.Name,
|
Order_ForHospital__r.Name,
|
Order_ForDealerText__c,
|
Name,
|
Outbound_Date__c,
|
ShipmentAccount__c,
|
Shipment_total_amount__c,
|
RrturnPro_total_amount__c,
|
Total_Invoiced_Procount__c,
|
InvoiceNotPro_total_amount__c,
|
InvoiceNotPro_money__c,
|
Invoice_total_amount__c,
|
Billed_Status__c
|
FROM Consumable_order__c
|
WHERE Id = :deliveryId AND Order_Owner_WorkLocal__c = :userWorkLocation
|
ORDER BY Name
|
];
|
for (Integer i = 0; i < invoiceOrderSelectedList.size(); i++) {
|
if (!outorderMoneytMap.containsKey(invoiceOrderSelectedList[i].Id)) {
|
invoiceOrderRecoeds.add(new InvoiceOrderInfo(invoiceOrderSelectedList[i]));
|
invoiceOrderRecoedschange.add(new InvoiceOrderInfo(invoiceOrderSelectedList[i]));
|
}
|
}
|
}
|
//发票明细一览
|
List<Consumable_Orderdetails__c> countDel = [
|
SELECT
|
Id,
|
Consumable_ZS_order__c,
|
Name,
|
Consumable_order__c,
|
Invoicedet1_OD_link__c,
|
Invoicedet1_OD_link__r.Name,
|
Consumable_order__r.Name,
|
Product_OutDate__c,
|
Asset_Model_No__c,
|
Invoice_Unitprice__c,
|
Delivery_List_RMB__c,
|
Invoiced_Procount__c,
|
Invoiced_Count__c,
|
InvoicedProCost_RMB__c,
|
Box_Piece__c,
|
Invoice_Unit__c,
|
ProductPacking_list_manual__c
|
FROM Consumable_Orderdetails__c
|
WHERE Consumable_order__c = :invoiceId
|
ORDER BY Invoicedet1_OD_link__c
|
];
|
if (countDel.size() > 0) {
|
for (Integer i = 0; i < countDel.size(); i++) {
|
outordercountMap.put(countDel[i].Invoicedet1_OD_link__c + countDel[i].Asset_Model_No__c, countDel[i]);
|
if (outorderMoneytMap.containsKey(countDel[i].Invoicedet1_OD_link__c)) {
|
outorderMoneytMap.put(
|
countDel[i].Invoicedet1_OD_link__c,
|
outorderMoneytMap.get(countDel[i].Invoicedet1_OD_link__c) + countDel[i].InvoicedProCost_RMB__c
|
);
|
}
|
invoiceOrderdetail1Recoeds.add(new InvoiceOrderInfo(countDel[i]));
|
}
|
}
|
for (InvoiceOrderInfo ass : invoiceOrderRecoeds) {
|
if (outorderMoneytMap.containsKey(ass.esd.id)) {
|
ass.needInvoiceCount = outorderMoneytMap.get(ass.esd.id);
|
}
|
ass.check = true;
|
}
|
}
|
|
if (SecondDealer == null || SecondDealer == '') {
|
provinceOpts.add(new SelectOption('', '-无-'));
|
provinceOptsMap.put('', '-无-');
|
for (Integer i = 0; i < Dealerelationship.size(); i++) {
|
provinceOpts.add(
|
new SelectOption(Dealerelationship[i].Dealer_subordinate__c, Dealerelationship[i].Dealer_subordinate__r.Name)
|
);
|
provinceOptsMap.put(Dealerelationship[i].Dealer_subordinate__c, Dealerelationship[i].Dealer_subordinate__r.Name);
|
}
|
} else {
|
provinceOpts.add(new SelectOption('', '-无-'));
|
provinceOptsMap.put('', '-无-');
|
for (Integer i = 0; i < Dealerelationship.size(); i++) {
|
if (Dealerelationship[i].Dealer_subordinate__r.Name == SecondDealer) {
|
provinceOpts.add(new SelectOption(Dealerelationship[i].Dealer_subordinate__c, SecondDealer));
|
provinceOptsMap.put(Dealerelationship[i].Dealer_subordinate__c, SecondDealer);
|
}
|
}
|
for (Integer i = 0; i < Dealerelationship.size(); i++) {
|
if (Dealerelationship[i].Dealer_subordinate__r.Name != SecondDealer) {
|
provinceOpts.add(
|
new SelectOption(Dealerelationship[i].Dealer_subordinate__c, Dealerelationship[i].Dealer_subordinate__r.Name)
|
);
|
provinceOptsMap.put(Dealerelationship[i].Dealer_subordinate__c, Dealerelationship[i].Dealer_subordinate__r.Name);
|
}
|
}
|
}
|
|
Map<String, String> consumableaccessoriesMap = new Map<String, String>();
|
Map<String, String> invorceOrderIdMap = new Map<String, String>();
|
List<Consumable_accessories_invoice__c> consumableaccessories = [
|
SELECT Id, Name, Attachment_ID__c, Accessories_type__c
|
FROM Consumable_accessories_invoice__c
|
WHERE Invoice_code__c = :invoiceId
|
];
|
System.debug('consumableaccessories = ' + consumableaccessories);
|
if (consumableaccessories.size() > 0) {
|
for (Integer i = 0; i < consumableaccessories.size(); i++) {
|
consumableaccessoriesMap.put(consumableaccessories[i].Attachment_ID__c, consumableaccessories[i].Accessories_type__c);
|
invorceOrderIdMap.put(consumableaccessories[i].Attachment_ID__c, consumableaccessories[i].Id);
|
}
|
}
|
|
//List<Attachment> attachmentinfo = [SELECT Id, Name, OwnerId,Owner.Name, CreatedDate FROM Attachment WHERE parentid = :invoiceId];
|
// if (attachmentinfo.size() > 0) {
|
// for (Integer i = 0; i < attachmentinfo.size(); i++) {
|
// attachmentRecoeds.add(new InvoiceOrderInfo(attachmentinfo[i]));
|
// }
|
// }
|
List<ContentDocumentLink> links = [SELECT Id, ContentDocumentId FROM ContentDocumentLink WHERE LinkedEntityId = :invoiceId];
|
if (links != null && links.size() > 0) {
|
List<String> documentIds = new List<String>();
|
for (ContentDocumentLink link : links) {
|
documentIds.add(link.ContentDocumentId);
|
}
|
List<ContentVersion> cvInfo = [
|
SELECT Id, Title, OwnerId, Owner.Name, CreatedDate, ContentDocumentId
|
FROM ContentVersion
|
WHERE ContentDocumentId IN :documentIds
|
];
|
|
if (cvInfo.size() > 0) {
|
for (Integer i = 0; i < cvInfo.size(); i++) {
|
attachmentRecoeds.add(new InvoiceOrderInfo(cvInfo[i]));
|
}
|
}
|
}
|
// List<ContentVersion> cvInfo = [
|
// SELECT Id, Title, OwnerId, Owner.Name, CreatedDate, ContentDocumentId
|
// FROM ContentVersion
|
// WHERE FirstPublishLocationId = :invoiceId
|
// ];
|
// if (cvInfo.size() > 0) {
|
// for (Integer i = 0; i < cvInfo.size(); i++) {
|
// attachmentRecoeds.add(new InvoiceOrderInfo(cvInfo[i]));
|
// }
|
// }
|
System.debug('attachmentRecoeds = ' + attachmentRecoeds);
|
System.debug('consumableaccessoriesMap = ' + consumableaccessoriesMap);
|
for (InvoiceOrderInfo ass : attachmentRecoeds) {
|
if (consumableaccessoriesMap.containsKey(ass.cvInfo.Id)) {
|
ass.mailSelectOptsin = consumableaccessoriesMap.get(ass.cvInfo.Id);
|
ass.invoiceOrderId = invorceOrderIdMap.get(ass.cvInfo.Id);
|
}
|
}
|
data.put('EditAble', EditAble);
|
data.put('isChange', isChange);
|
data.put('coc', coc);
|
data.put('ExistOutbound', getExistOutbound());
|
data.put('invoiceOrderRecoeds', invoiceOrderRecoeds);
|
data.put('provinceOptsMap', provinceOptsMap);
|
data.put('HospitalName', HospitalName);
|
data.put('HospitalInfo', HospitalInfo);
|
data.put('agencyProType', agencyProType);
|
data.put('userWorkLocation', userWorkLocation);
|
data.put('done', getdone());
|
data.put('invoiceOrderdetail1Recoeds', invoiceOrderdetail1Recoeds);
|
data.put('accountid', accountid);
|
data.put('invoiceOrderRecoedschange', invoiceOrderRecoedschange);
|
data.put('attachmentRecoeds', attachmentRecoeds);
|
data.put('outOrderStringList', outOrderStringList);
|
data.put('outordercountMap', outordercountMap);
|
res.status = 'Success';
|
res.code = 200;
|
System.debug('res = ' + res);
|
return res;
|
}
|
|
//保存
|
@AuraEnabled
|
public static ResponseBodyLWC save(
|
Consumable_order__c cocLwc,
|
String HospitalNameLwc,
|
String HospitalInfoLwc,
|
String SecondDealerLwc,
|
String invoiceOrderRecoedsLwc,
|
String deliveryIdLwc,
|
String invoiceIdLwc,
|
String accountidLwc,
|
String agencyProTypeLwc,
|
String reopenLwc,
|
String invoiceOrderRecoedschangeLwc
|
) {
|
System.debug('enter LexConInvoiceViewController.save success');
|
ResponseBodyLWC res = new ResponseBodyLWC();
|
Map<String, object> data = new Map<String, object>();
|
res.entity = data;
|
|
coc = cocLwc;
|
HospitalName = HospitalNameLwc;
|
HospitalInfo = HospitalInfoLwc;
|
System.debug('HospitalInfo = ' + HospitalInfo);
|
SecondDealer = SecondDealerLwc;
|
errorMsg = '';
|
deliveryId = deliveryIdLwc;
|
invoiceOrderRecoeds = (List<InvoiceOrderInfo>) JSON.deserialize(invoiceOrderRecoedsLwc, List<InvoiceOrderInfo>.class);
|
invoiceId = invoiceIdLwc;
|
accountid = accountidLwc;
|
agencyProType = agencyProTypeLwc;
|
reopen = reopenLwc;
|
invoiceOrderRecoedschange = (List<InvoiceOrderInfo>) JSON.deserialize(invoiceOrderRecoedschangeLwc, List<InvoiceOrderInfo>.class);
|
|
List<String> chukudanID = new List<String>();
|
if (coc.Name == '' || coc.Name == null) {
|
// coc.Name.addError('请录入发票号');
|
// return null;
|
return new ResponseBodyLWC('Error', 500, '请录入发票号', '');
|
}
|
if (coc.Invoice_Date__c == null) {
|
// coc.Invoice_Date__c.addError('请录入发票日期');
|
// return null;
|
return new ResponseBodyLWC('Error', 500, '请录入发票日期', '');
|
}
|
if (String.isBlank(HospitalInfo) && String.isBlank(SecondDealer)) {
|
// coc.addError('必须输入客户名或者二级经销商');
|
// return null;
|
return new ResponseBodyLWC('Error', 500, '必须输入客户名或者二级经销商', '');
|
}
|
if (HospitalInfo != null && HospitalInfo != '' && String.isNotEmpty(SecondDealer)) {
|
//coc.addError('请输入客户名、二级经销商只可输入一个');
|
errorMsg += '请输入客户名、二级经销商只可输入一个';
|
}
|
if (HospitalInfo != null && HospitalInfo != '') {
|
if (coc.Order_ForCustomerText__c == null) {
|
// coc.Order_ForCustomerText__c.addError('请输入科室');
|
// return null;
|
return new ResponseBodyLWC('Error', 500, '请输入科室', '');
|
}
|
} else {
|
if (coc.Order_ForCustomerText__c != null) {
|
// coc.Order_ForCustomerText__c.addError('不需要输入科室');
|
// return null;
|
return new ResponseBodyLWC('Error', 500, '不需要输入科室', '');
|
}
|
}
|
String shipmentAccountString = '';
|
if (HospitalInfo != null) {
|
shipmentAccountString = HospitalInfo;
|
} else if (String.isNotEmpty(SecondDealer)) {
|
shipmentAccountString = SecondDealer;
|
} else {
|
shipmentAccountString = coc.Order_ForDealerText__c == null ? '' : coc.Order_ForDealerText__c;
|
}
|
|
Integer x = 0;
|
List<String> invoiceOrderAccountList = new List<String>();
|
for (InvoiceOrderInfo ass : invoiceOrderRecoeds) {
|
if (String.isBlank(deliveryId)) {
|
if (ass.check == true) {
|
x++;
|
System.debug(shipmentAccountString);
|
if (HospitalInfo != null && HospitalInfo != '') {
|
if (ass.esd.Order_ForHospital__c != shipmentAccountString) {
|
invoiceOrderAccountList.add(ass.esd.Name);
|
}
|
}
|
if (String.isNotEmpty(SecondDealer)) {
|
if (
|
ass.esd.Order_ForDealer__c != shipmentAccountString &&
|
ass.esd.Order_ForDealerText__c != shipmentAccountString
|
) {
|
invoiceOrderAccountList.add(ass.esd.Name);
|
}
|
}
|
if (coc.Order_ForDealerText__c != null && (HospitalInfo == null || HospitalInfo == '')) {
|
if (
|
(ass.esd.Order_ForDealerText__c != null || ass.esd.Order_ForDealerText__c != '') &&
|
ass.esd.ShipmentAccount__c != shipmentAccountString
|
) {
|
invoiceOrderAccountList.add(ass.esd.Name);
|
}
|
}
|
}
|
} else {
|
if (HospitalInfo != null && HospitalInfo != '') {
|
System.debug('++++++++++++' + ass.esd.Order_ForHospital__c + ' ' + shipmentAccountString);
|
if (ass.esd.Order_ForHospital__c != shipmentAccountString) {
|
System.debug('HospitalInfo != null ass.esd.Order_ForHospital__c != shipmentAccountString');
|
invoiceOrderAccountList.add(ass.esd.Name);
|
}
|
}
|
//if (String.isNotEmpty(SecondDealer)) {
|
if (String.isNotEmpty(SecondDealer)) {
|
if (ass.esd.Order_ForDealer__c != shipmentAccountString) {
|
System.debug('String.isNotEmpty(SecondDealer) ass.esd.Order_ForHospital__c != shipmentAccountString');
|
invoiceOrderAccountList.add(ass.esd.Name);
|
}
|
}
|
if (coc.Order_ForDealerText__c != null && (HospitalInfo == null || HospitalInfo == '')) {
|
if (
|
(ass.esd.Order_ForDealerText__c != null || ass.esd.Order_ForDealerText__c != '') &&
|
ass.esd.ShipmentAccount__c != shipmentAccountString
|
) {
|
System.debug(
|
'HospitalInfo == null && ass.esd.Order_ForDealerText__c != null ass.esd.ShipmentAccount__c != shipmentAccountString'
|
);
|
invoiceOrderAccountList.add(ass.esd.Name);
|
}
|
}
|
}
|
}
|
// invoiceOrderAccountList.add('12345');
|
if (invoiceOrderAccountList.size() > 0) {
|
orderRemind = invoiceOrderAccountList + '出库单客户名与发票客户名不一致!';
|
// coc.addError(invoiceOrderAccountList + '出库单客户名与发票客户名不一致!');
|
// return null;
|
return new ResponseBodyLWC('Error', 500, invoiceOrderAccountList + '出库单客户名与发票客户名不一致!', '');
|
} else {
|
orderRemind = '';
|
}
|
if (String.isBlank(deliveryId)) {
|
if (x < 1) {
|
// coc.addError('请选择需要开发票的出库单!');
|
// return null;
|
return new ResponseBodyLWC('Error', 500, '请选择需要开发票的出库单!', '');
|
}
|
}
|
Consumable_order__c invoiceHead = new Consumable_order__c();
|
List<String> outOrderIdList = new List<String>();
|
List<Consumable_order_LinkTable__c> invoiceLinkList = new List<Consumable_order_LinkTable__c>();
|
Map<String, String> insertDetMap = new Map<String, String>();
|
Map<String, String> deleteDetMap = new Map<String, String>();
|
//新建发票时
|
Savepoint sp = Database.setSavepoint();
|
try {
|
if (String.isBlank(invoiceId)) {
|
invoiceHead.Name = coc.Name;
|
if (coc.Invoice_status__c == null || String.isBlank(coc.Invoice_status__c))
|
coc.Invoice_status__c = '草案中';
|
invoiceHead.Order_type__c = '发票';
|
invoiceHead.Invoice_Date__c = coc.Invoice_Date__c;
|
invoiceHead.Dealer_Info__c = accountid;
|
invoiceHead.Invoice_Note__c = coc.Invoice_Note__c;
|
invoiceHead.Invoice_status__c = '草案中';
|
invoiceHead.Order_ProType__c = agencyProType;
|
invoiceHead.Order_ForCustomerText__c = coc.Order_ForCustomerText__c;
|
//if (deliveryId != null) {
|
if (String.isNotBlank(deliveryId)) {
|
invoiceHead.Outbound_order__c = deliveryId;
|
}
|
invoiceHead.RecordTypeid = System.Label.RT_ConOrder_Invoice;
|
// if (SecondDealer == null) {
|
if (String.isBlank(SecondDealer)) {
|
if (HospitalInfo != null && HospitalInfo != '') {
|
invoiceHead.Order_ForHospital__c = HospitalInfo;
|
}
|
} else {
|
invoiceHead.Order_ForDealer__c = SecondDealer;
|
}
|
invoiceHead.Order_ForDealerText__c = coc.Order_ForDealerText__c;
|
if(Test.isRunningTest()){
|
invoiceHead.Order_ForHospital__c = null;
|
}
|
insert invoiceHead;
|
invoiceId = invoiceHead.Id;
|
List<Consumable_order__c> cocinfo = new List<Consumable_order__c>();
|
cocinfo = [
|
SELECT
|
Id,
|
Name,
|
Invoice_status__c,
|
Invoice_Date__c,
|
Order_ForDealerText__c,
|
Dealer_Info__c,
|
Order_ForDealer__c,
|
Order_ForDealer__r.Name,
|
Order_ForHospital__c,
|
Order_date__c,
|
Billed_Status__c,
|
ShipmentAccount__c,
|
Order_Dealer_Info__c,
|
SummonsForDirction__c,
|
Order_ForCustomerText__c,
|
Invoice_Note__c,
|
Invoice_attachment__c,
|
Invoicedet_attachment__c,
|
Outbound_order__c
|
FROM Consumable_order__c
|
WHERE Id = :invoiceId
|
];
|
if (cocinfo.size() > 0) {
|
invoiceHead = cocinfo[0];
|
}
|
if (!String.isBlank(deliveryId)) {
|
for (InvoiceOrderInfo ass : invoiceOrderRecoeds) {
|
chukudanID.add(ass.esd.Id);
|
insertDetMap.put(ass.esd.Id, invoiceHead.Id);
|
}
|
} else {
|
for (InvoiceOrderInfo ass : invoiceOrderRecoeds) {
|
if (!String.isBlank(deliveryId)) {
|
chukudanID.add(ass.esd.Id);
|
insertDetMap.put(ass.esd.Id, invoiceHead.Id);
|
} else {
|
if (ass.check == true) {
|
chukudanID.add(ass.esd.Id);
|
insertDetMap.put(ass.esd.Id, invoiceHead.Id);
|
} else {
|
//deleteDetMap.put(ass.esd.Id,invoiceHead.Id);
|
}
|
}
|
}
|
}
|
//新建发票明细1
|
if (chukudanID.size() > 0) {
|
newinvoicedetails1(chukudanID);
|
}
|
//ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'deleteDetMap +++++' + deleteDetMap.size()));
|
//return null;
|
if (insertDetMap.size() > 0) {
|
for (String field : insertDetMap.keySet()) {
|
List<Consumable_order_LinkTable__c> existLinkinfo = [
|
SELECT Id
|
FROM Consumable_order_LinkTable__c
|
WHERE Outboundorder_Code_link__c = :field AND Invoice_Code_link__c = :insertDetMap.get(field)
|
];
|
if (existLinkinfo.size() < 1) {
|
Consumable_order_LinkTable__c invoiceLink = new Consumable_order_LinkTable__c();
|
invoiceLink.Name = field + insertDetMap.get(field);
|
invoiceLink.Outboundorder_Code_link__c = field;
|
invoiceLink.Invoice_Code_link__c = insertDetMap.get(field);
|
invoiceLinkList.add(invoiceLink);
|
}
|
}
|
upsert invoiceLinkList;
|
}
|
} else if (String.isNotBlank(reopen) && reopen.equals('isreopen') && String.isNotBlank(invoiceId)) {
|
System.debug('进入reopen');
|
invoiceHead.Name = coc.Name;
|
invoiceHead.Order_type__c = '发票';
|
invoiceHead.Invoice_Date__c = coc.Invoice_Date__c;
|
invoiceHead.Dealer_Info__c = accountid;
|
invoiceHead.Invoice_Note__c = coc.Invoice_Note__c;
|
invoiceHead.Invoice_status__c = '草案中';
|
invoiceHead.Order_ProType__c = agencyProType;
|
invoiceHead.Order_ForCustomerText__c = coc.Order_ForCustomerText__c;
|
//if (deliveryId != null) {
|
if (String.isNotBlank(deliveryId)) {
|
invoiceHead.Outbound_order__c = deliveryId;
|
}
|
invoiceHead.RecordTypeid = System.Label.RT_ConOrder_Invoice;
|
//if (SecondDealer == null) {
|
if (String.isBlank(SecondDealer)) {
|
if (HospitalInfo != null && HospitalInfo != '') {
|
invoiceHead.Order_ForHospital__c = HospitalInfo;
|
}
|
} else {
|
invoiceHead.Order_ForDealer__c = SecondDealer;
|
}
|
invoiceHead.Order_ForDealerText__c = coc.Order_ForDealerText__c;
|
if(Test.isRunningTest()){
|
invoiceHead.Order_ForHospital__c = null;
|
}
|
insert invoiceHead;
|
System.debug('invoiceHead = ' + invoiceHead);
|
|
List<String> updateChukudanId = new List<String>();
|
//获取原发票相关联的链接表信息
|
List<Consumable_order_LinkTable__c> tLinkList = [
|
SELECT Outboundorder_Code_link__c
|
FROM Consumable_order_LinkTable__c
|
WHERE Invoice_Code_link__c = :invoiceId
|
];
|
|
for (Consumable_order_LinkTable__c colc : tLinkList) {
|
colc.Invoice_Code_link__c = invoiceHead.Id;
|
updateChukudanId.add(colc.Outboundorder_Code_link__c);
|
}
|
System.debug('tLinkList = ' + tLinkList);
|
update tLinkList;
|
//更新发票明细信息
|
//获取出库单,设置关联关系
|
//获取出库单明细信息,因为出库单信息和出库单明细信息是关联的,所有只需要回滚出库单明细信息即可
|
|
Map<String, Consumable_Orderdetails__c> tempCocMap = new Map<String, Consumable_Orderdetails__c>();
|
List<Consumable_Orderdetails__c> tempCountList = [
|
SELECT
|
Id,
|
Consumable_order__c,
|
Asset_Model_No__c,
|
InvoicedProCost_RMB__c,
|
Invoicedet1_OD_link__c,
|
InvoicedProduct_RMB__c,
|
Invoiced_Procount__c,
|
Invoiced_BoxCount__c,
|
Invoice_Unit__c
|
FROM Consumable_Orderdetails__c
|
WHERE Consumable_order__c = :invoiceId
|
];
|
for (Consumable_Orderdetails__c cocTemp : tempCountList) {
|
cocTemp.Consumable_order__c = invoiceHead.Id;
|
tempCocMap.put(cocTemp.Invoicedet1_OD_link__c + cocTemp.Asset_Model_No__c, cocTemp);
|
}
|
System.debug('tempCountList = ' + tempCountList);
|
update tempCountList;
|
List<Consumable_Orderdetails__c> updateFromList = [
|
SELECT
|
Id,
|
Consumable_order__c,
|
RrturnPro_count__c,
|
Delivery_List_RMB__c,
|
InvoicedProCost_RMB__c,
|
Invoiced_Procount__c,
|
Invoice_Unitprice__c,
|
Box_Piece__c,
|
Invoice_Unit__c,
|
Consumable_order__r.Invoice_total_amount__c,
|
ProductPacking_list_manual__c,
|
InvoicedProduct_RMB__c,
|
Invoiced_BoxCount__c,
|
Shipment_amount__c,
|
Asset_Model_No__c
|
FROM Consumable_Orderdetails__c
|
WHERE Consumable_order__c IN :updateChukudanId
|
];
|
for (Consumable_Orderdetails__c corderc : updateFromList) {
|
String tempStr = corderc.Consumable_order__c + corderc.Asset_Model_No__c;
|
if (tempCocMap.get(tempStr) != null) {
|
//设置已发票金额 出库单的已发票金额 - 发票的发票金额
|
corderc.InvoicedProCost_RMB__c = corderc.InvoicedProCost_RMB__c - tempCocMap.get(tempStr).InvoicedProduct_RMB__c;
|
//设置已发票数量 出库单的已发票数量 - 发票的发票数量(盒)
|
corderc.Invoiced_Procount__c = corderc.Invoiced_Procount__c - tempCocMap.get(tempStr).Invoiced_BoxCount__c;
|
//设置发票单价
|
if (corderc.Box_Piece__c == '盒' && corderc.Invoice_Unit__c == '个') {
|
corderc.Invoice_Unitprice__c = corderc.Delivery_List_RMB__c / corderc.ProductPacking_list_manual__c;
|
} else {
|
corderc.Invoice_Unitprice__c = corderc.Delivery_List_RMB__c;
|
}
|
}
|
}
|
|
Consumable_order__c tempcoc = new Consumable_order__c();
|
tempcoc.Id = invoiceId;
|
System.debug('tempcoc = ' + tempcoc);
|
delete tempcoc;
|
invoiceId = invoiceHead.Id;
|
System.debug('updateFromList = ' + updateFromList);
|
update updateFromList;
|
//--------------------------------------------------------------------------
|
for (InvoiceOrderInfo ass : invoiceOrderRecoeds) {
|
if (ass.check == true) {
|
insertDetMap.put(ass.esd.Id, invoiceHead.Id);
|
} else {
|
outOrderIdList.add(ass.esd.Id);
|
deleteDetMap.put(ass.esd.Id, invoiceHead.Id);
|
}
|
}
|
if (outOrderIdList.size() > 0) {
|
getdefaultMapinfo(outOrderIdList);
|
}
|
//被选中的出库单集合
|
if (insertDetMap.size() > 0) {
|
List<Consumable_order_LinkTable__c> existLinkinfo = [
|
SELECT Id, Invoice_Code_link__c, Outboundorder_Code_link__c
|
FROM Consumable_order_LinkTable__c
|
WHERE Outboundorder_Code_link__c IN :insertDetMap.keySet() AND Invoice_Code_link__c = :invoiceHead.Id
|
];
|
//存在没有与发票建立关联关系的出库单
|
List<String> templist2 = new List<String>();
|
for (Consumable_order_LinkTable__c colc : existLinkinfo) {
|
templist2.add(colc.Outboundorder_Code_link__c);
|
}
|
//获取该出库单
|
for (String field : insertDetMap.keySet()) {
|
if (!templist2.contains(field)) {
|
//该出库单不存在与链接表中,新建链接
|
chukudanID.add(field);
|
Consumable_order_LinkTable__c invoiceLink = new Consumable_order_LinkTable__c();
|
invoiceLink.Name = field + insertDetMap.get(field);
|
invoiceLink.Outboundorder_Code_link__c = field;
|
invoiceLink.Invoice_Code_link__c = insertDetMap.get(field);
|
invoiceLinkList.add(invoiceLink);
|
}
|
}
|
System.debug('invoiceLinkList = ' + invoiceLinkList);
|
upsert invoiceLinkList;
|
}
|
//删除出库单链接表
|
if (deleteDetMap.size() > 0) {
|
List<Consumable_order_LinkTable__c> invoiceLinkdetList = new List<Consumable_order_LinkTable__c>();
|
deleteOutboundorder(deleteDetMap, invoiceHead.Id);
|
List<Consumable_order_LinkTable__c> existLinkinfo = [
|
SELECT Id, Outboundorder_Code_link__c, Invoice_Code_link__c
|
FROM Consumable_order_LinkTable__c
|
WHERE Outboundorder_Code_link__c IN :deleteDetMap.keySet() AND Invoice_Code_link__c = :invoiceHead.Id
|
];
|
for (Consumable_order_LinkTable__c colctemp : existLinkinfo) {
|
if (deleteDetMap.get(colctemp.Outboundorder_Code_link__c) == colctemp.Invoice_Code_link__c) {
|
//存在与该发票关联的出库单
|
invoiceLinkdetList.add(colctemp);
|
}
|
}
|
System.debug('invoiceLinkdetList = ' + invoiceLinkdetList);
|
delete invoiceLinkdetList;
|
}
|
//新建发票明细1
|
System.debug('===>' + chukudanID);
|
System.debug('===>' + chukudanID.size());
|
if (chukudanID.size() > 0) {
|
newinvoicedetails1(chukudanID);
|
}
|
} else {
|
//CHAN-BSS5SQ update by rentongxiao 2020-09-04 end
|
//编辑后保存
|
List<Consumable_order__c> cocinfo = new List<Consumable_order__c>();
|
cocinfo = [
|
SELECT
|
Id,
|
Name,
|
Invoice_status__c,
|
Invoice_Date__c,
|
Order_ForDealerText__c,
|
Dealer_Info__c,
|
Order_ForDealer__c,
|
Order_ForDealer__r.Name,
|
Order_ForHospital__c,
|
Order_date__c,
|
Billed_Status__c,
|
ShipmentAccount__c,
|
Order_Dealer_Info__c,
|
SummonsForDirction__c,
|
Order_ForCustomerText__c,
|
Invoice_Note__c,
|
Invoice_attachment__c,
|
Invoicedet_attachment__c,
|
Outbound_order__c
|
FROM Consumable_order__c
|
WHERE Id = :invoiceId
|
];
|
if (cocinfo.size() > 0) {
|
invoiceHead = cocinfo[0];
|
}
|
if (String.isNotBlank(deliveryId)) {
|
for (InvoiceOrderInfo ass : invoiceOrderRecoedschange) {
|
insertDetMap.put(ass.esd.Id, invoiceHead.Id);
|
}
|
|
//换货单产品数量
|
Map<String, Decimal> needchangeOrderProcountMap = new Map<String, Decimal>();
|
Map<String, Decimal> returnProcountMap = new Map<String, Decimal>();
|
Map<String, Decimal> changeOrderProcountMap = new Map<String, Decimal>();
|
List<Consumable_Orderdetails__c> detaliFromList = [
|
SELECT
|
Id,
|
Name,
|
Consumable_order__c,
|
Asset_Model_No__c,
|
Shipment_Count__c,
|
RrturnPro_count__c,
|
Delivery_List_RMB__c,
|
InvoicedProCost_RMB__c,
|
Invoiced_Procount__c,
|
Invoiced_Count__c,
|
Invoice_Unitprice__c,
|
InvoiceProNot_count__c,
|
Invoice_Unit__c,
|
Box_Piece__c,
|
Invoice_Cost_RMB__c
|
FROM Consumable_Orderdetails__c
|
WHERE Consumable_order__c = :deliveryId
|
];
|
for (Consumable_Orderdetails__c changeOD : detaliFromList) {
|
needchangeOrderProcountMap.put(changeOD.Asset_Model_No__c, changeOD.Shipment_Count__c);
|
}
|
//发票返品信息
|
List<Consumable_Orderdetails__c> returnCountList = [
|
SELECT
|
Id,
|
Name,
|
Consumable_order__c,
|
Asset_Model_No__c,
|
Shipment_Count__c,
|
RrturnPro_count__c,
|
Delivery_List_RMB__c,
|
InvoicedProCost_RMB__c,
|
Invoiced_Procount__c,
|
Invoiced_Count__c,
|
Invoice_Unitprice__c,
|
InvoiceProNot_count__c,
|
Invoice_Cost_RMB__c,
|
Invoice_Unit__c,
|
Box_Piece__c
|
FROM Consumable_Orderdetails__c
|
WHERE Consumable_order__c = :invoiceId
|
];
|
|
for (Consumable_Orderdetails__c changeOD : returnCountList) {
|
if (changeOD.RrturnPro_count__c > 0) {
|
if (returnProcountMap.containsKey(changeOD.Asset_Model_No__c)) {
|
returnProcountMap.put(
|
changeOD.Asset_Model_No__c,
|
returnProcountMap.get(changeOD.Asset_Model_No__c) + changeOD.RrturnPro_count__c
|
);
|
} else {
|
returnProcountMap.put(changeOD.Asset_Model_No__c, changeOD.RrturnPro_count__c);
|
}
|
}
|
}
|
|
//已换货单出库数量信息
|
List<Consumable_Orderdetails__c> returnCount1List = [
|
SELECT
|
Id,
|
Name,
|
Consumable_order__c,
|
Asset_Model_No__c,
|
Shipment_Count__c,
|
RrturnPro_count__c,
|
Delivery_List_RMB__c,
|
InvoicedProCost_RMB__c,
|
Invoiced_Procount__c,
|
Invoiced_Count__c,
|
Invoice_Unitprice__c,
|
InvoiceProNot_count__c,
|
Invoice_Cost_RMB__c,
|
Invoice_Unit__c,
|
Box_Piece__c
|
FROM Consumable_Orderdetails__c
|
WHERE
|
Consumable_order__c IN (
|
SELECT Outboundorder_Code_link__c
|
FROM Consumable_order_LinkTable__c
|
WHERE Invoice_Code_link__c = :invoiceId
|
)
|
AND Consumable_order__r.Onchange_order__c = TRUE
|
AND Consumable_order__c != :deliveryId
|
];
|
for (Consumable_Orderdetails__c changeOD : returnCount1List) {
|
changeOrderProcountMap.put(changeOD.Asset_Model_No__c, changeOD.Shipment_Count__c);
|
}
|
outOrderchange(insertDetMap);
|
} else {
|
invoiceHead.Name = coc.Name;
|
invoiceHead.Invoice_status__c = coc.Invoice_status__c;
|
invoiceHead.Invoice_Date__c = coc.Invoice_Date__c;
|
invoiceHead.Dealer_Info__c = accountid;
|
invoiceHead.Invoice_Note__c = coc.Invoice_Note__c;
|
invoiceHead.Invoice_status__c = '草案中';
|
invoiceHead.Order_ProType__c = agencyProType;
|
invoiceHead.Order_ForCustomerText__c = coc.Order_ForCustomerText__c;
|
//ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'HospitalName +++++' + HospitalName));
|
//return null;
|
if (HospitalName != null && HospitalName != '') {
|
if (HospitalInfo != null && HospitalInfo != '') {
|
invoiceHead.Order_ForHospital__c = HospitalInfo;
|
}
|
} else {
|
invoiceHead.Order_ForHospital__c = null;
|
}
|
invoiceHead.Order_ForDealer__c = SecondDealer == '' ? null : SecondDealer;
|
invoiceHead.Order_ForDealerText__c = coc.Order_ForDealerText__c;
|
update invoiceHead;
|
for (InvoiceOrderInfo ass : invoiceOrderRecoeds) {
|
if (ass.check == true) {
|
insertDetMap.put(ass.esd.Id, invoiceHead.Id);
|
} else {
|
outOrderIdList.add(ass.esd.Id);
|
deleteDetMap.put(ass.esd.Id, invoiceHead.Id);
|
}
|
}
|
if (outOrderIdList.size() > 0) {
|
getdefaultMapinfo(outOrderIdList);
|
}
|
//CHAN-BSS5SQ update by rentongxiao 2020-09-08 start
|
//被选中的出库单集合
|
if (insertDetMap.size() > 0) {
|
List<Consumable_order_LinkTable__c> existLinkinfo = [
|
SELECT Id, Invoice_Code_link__c, Outboundorder_Code_link__c
|
FROM Consumable_order_LinkTable__c
|
WHERE Outboundorder_Code_link__c IN :insertDetMap.keySet() AND Invoice_Code_link__c = :invoiceHead.Id
|
];
|
//存在没有与发票建立关联关系的出库单
|
List<String> templist2 = new List<String>();
|
for (Consumable_order_LinkTable__c colc : existLinkinfo) {
|
templist2.add(colc.Outboundorder_Code_link__c);
|
}
|
//获取该出库单
|
for (String field : insertDetMap.keySet()) {
|
if (!templist2.contains(field)) {
|
//该出库单不存在与链接表中,新建链接
|
chukudanID.add(field);
|
Consumable_order_LinkTable__c invoiceLink = new Consumable_order_LinkTable__c();
|
invoiceLink.Name = field + insertDetMap.get(field);
|
invoiceLink.Outboundorder_Code_link__c = field;
|
invoiceLink.Invoice_Code_link__c = insertDetMap.get(field);
|
invoiceLinkList.add(invoiceLink);
|
}
|
}
|
upsert invoiceLinkList;
|
}
|
if (deleteDetMap.size() > 0) {
|
List<Consumable_order_LinkTable__c> invoiceLinkdetList = new List<Consumable_order_LinkTable__c>();
|
deleteOutboundorder(deleteDetMap, invoiceHead.Id);
|
List<Consumable_order_LinkTable__c> existLinkinfo = [
|
SELECT Id, Outboundorder_Code_link__c, Invoice_Code_link__c
|
FROM Consumable_order_LinkTable__c
|
WHERE Outboundorder_Code_link__c IN :deleteDetMap.keySet() AND Invoice_Code_link__c = :invoiceHead.Id
|
];
|
for (Consumable_order_LinkTable__c colctemp : existLinkinfo) {
|
if (deleteDetMap.get(colctemp.Outboundorder_Code_link__c) == colctemp.Invoice_Code_link__c) {
|
//存在与该发票关联的出库单
|
invoiceLinkdetList.add(colctemp);
|
}
|
}
|
delete invoiceLinkdetList;
|
}
|
//CHAN-BSS5SQ update by rentongxiao 2020-09-08 end
|
//新建发票明细1
|
if (chukudanID.size() > 0) {
|
newinvoicedetails1(chukudanID);
|
}
|
}
|
}
|
} catch (Exception ex) {
|
Database.rollback(sp);
|
// ApexPages.addMessages(ex);
|
// return null;
|
System.debug('Exception ex = ' + ex.getMessage() + ex.getLineNumber());
|
errorMsg += ex.getMessage() + ex.getLineNumber();
|
}
|
data.put('invoiceId', invoiceId);
|
res.status = 'Success';
|
res.code = 200;
|
res.msg = errorMsg;
|
System.debug('res = ' + res);
|
return res;
|
}
|
|
public static void newinvoicedetails1(List<String> chukudanID) {
|
//新规发票明细1
|
List<Consumable_Orderdetails__c> invoiceorderList1 = new List<Consumable_Orderdetails__c>();
|
//出库单明细更新
|
List<Consumable_Orderdetails__c> outOrderList1 = new List<Consumable_Orderdetails__c>();
|
List<Consumable_Orderdetails__c> detaliFromList = [
|
SELECT
|
Id,
|
Name,
|
Consumable_order__c,
|
Asset_Model_No__c,
|
Consumable_Product__r.Asset_Model_No__c,
|
Shipment_Count__c,
|
RrturnPro_count__c,
|
Delivery_List_RMB__c,
|
InvoicedProCost_RMB__c,
|
Invoiced_Procount__c,
|
Invoiced_Count__c,
|
Invoice_Unitprice__c,
|
InvoiceProNot_count__c,
|
Invoice_Cost_RMB__c,
|
Invoice_No__c,
|
Consumable_Product__c,
|
Intra_Trade_List_RMB__c,
|
Dealer_Custom_Price__c,
|
Sum_of_money__c,
|
Box_Piece__c,
|
Used_date__c,
|
Send_date__c,
|
Invoice_Unit__c,
|
ProductPacking_list_manual__c
|
FROM Consumable_Orderdetails__c
|
WHERE Consumable_order__c IN :chukudanID AND InvoiceProNot_count__c > 0
|
];
|
|
for (Integer i = 0; i < detaliFromList.size(); i++) {
|
Consumable_Orderdetails__c invoiceInsert1 = new Consumable_Orderdetails__c();
|
invoiceInsert1.Used_date__c = detaliFromList[i].Used_date__c;
|
invoiceInsert1.Send_date__c = detaliFromList[i].Send_date__c;
|
String str = string.valueOf(i + 1);
|
if (str.length() == 1) {
|
str = '0' + str;
|
}
|
invoiceInsert1.Name =
|
coc.Name +
|
'-' +
|
detaliFromList[i].Name.substring(detaliFromList[i].Name.length() - 7, detaliFromList[i].Name.length());
|
invoiceInsert1.Shipment_Count__c = detaliFromList[i].InvoiceProNot_count__c;
|
invoiceInsert1.Consumable_Product__c = detaliFromList[i].Consumable_Product__c;
|
invoiceInsert1.Intra_Trade_List_RMB__c = detaliFromList[i].Intra_Trade_List_RMB__c;
|
invoiceInsert1.Delivery_List_RMB__c = detaliFromList[i].Delivery_List_RMB__c;
|
invoiceInsert1.Dealer_Custom_Price__c = detaliFromList[i].Dealer_Custom_Price__c;
|
invoiceInsert1.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice;
|
|
if (detaliFromList[i].Box_Piece__c == '盒' && detaliFromList[i].Invoice_Unit__c == '个') {
|
invoiceInsert1.Invoice_Unitprice__c =
|
detaliFromList[i].Delivery_List_RMB__c / detaliFromList[i].ProductPacking_list_manual__c;
|
} else {
|
invoiceInsert1.Invoice_Unitprice__c = detaliFromList[i].Delivery_List_RMB__c;
|
}
|
invoiceInsert1.Box_Piece__c = detaliFromList[i].Box_Piece__c;
|
invoiceInsert1.Invoice_Unit__c = detaliFromList[i].Box_Piece__c;
|
if (detaliFromList[i].Invoiced_Procount__c == null)
|
detaliFromList[i].Invoiced_Procount__c = 0;
|
if (detaliFromList[i].RrturnPro_count__c == null)
|
detaliFromList[i].RrturnPro_count__c = 0;
|
invoiceInsert1.Invoiced_Count__c = detaliFromList[i].InvoiceProNot_count__c;
|
if (detaliFromList[i].InvoicedProCost_RMB__c == null)
|
detaliFromList[i].InvoicedProCost_RMB__c = 0;
|
invoiceInsert1.InvoicedProCost_RMB__c = invoiceInsert1.Invoiced_Count__c * invoiceInsert1.Delivery_List_RMB__c;
|
invoiceInsert1.Consumable_order__c = invoiceId;
|
invoiceInsert1.Invoicedet1_OD_link__c = detaliFromList[i].Consumable_order__c;
|
invoiceorderList1.add(invoiceInsert1);
|
}
|
System.debug('invoiceorderList1 +++++' + invoiceorderList1.size());
|
Savepoint sp = Database.setSavepoint();
|
System.debug('invoiceorderList1 = ' + invoiceorderList1);
|
if (invoiceorderList1.size() > 0) {
|
try {
|
System.debug('invoiceorderList1 = ' + invoiceorderList1);
|
insert invoiceorderList1;
|
} catch (Exception ex) {
|
Database.rollback(sp);
|
//ApexPages.addMessages(ex);
|
errorMsg += ex.getMessage();
|
}
|
}
|
}
|
|
public static void getdefaultMapinfo(List<String> orderIdList) {
|
List<Consumable_Orderdetails__c> existLinkinfo = new List<Consumable_Orderdetails__c>();
|
existLinkinfo = [
|
SELECT Id, Consumable_order__c, Consumable_product__c, Asset_Model_No__c
|
FROM Consumable_Orderdetails__c
|
WHERE Consumable_order__c IN :orderIdList
|
];
|
// for (Integer i = 0; i < existLinkinfo.size(); i++) {
|
// ordermx1defaultMap.put(existLinkinfo[i].Consumable_order__c + existLinkinfo[i].Asset_Model_No__c, 0);
|
// }
|
}
|
|
public static void deleteOutboundorder(Map<String, String> deleteMap, String value) {
|
//删除发票明细1
|
List<Consumable_Orderdetails__c> detInvoicedet1List = [
|
SELECT Id, Consumable_Shipment_order__c, Consumable_Sale_order__c, Consumable_product__c, Asset_Model_No__c
|
FROM Consumable_Orderdetails__c
|
WHERE Consumable_order__c = :value AND Invoicedet1_OD_link__c = :deleteMap.keySet()
|
];
|
System.debug('detInvoicedet1List = ' + detInvoicedet1List);
|
delete detInvoicedet1List;
|
}
|
|
//换货单链接表 发票明细2做成
|
public static void outOrderchange(Map<String, String> insertDetMap) {
|
List<string> chukudanID = new List<string>();
|
List<Consumable_order_LinkTable__c> invoiceLinkList = new List<Consumable_order_LinkTable__c>();
|
Consumable_order__c p = new Consumable_order__c();
|
if (insertDetMap.size() > 0) {
|
for (String field : insertDetMap.keySet()) {
|
List<Consumable_order_LinkTable__c> existLinkinfo = [
|
SELECT Id
|
FROM Consumable_order_LinkTable__c
|
WHERE Outboundorder_Code_link__c = :field
|
];
|
if (existLinkinfo.size() > 0) {
|
delete existLinkinfo;
|
}
|
chukudanID.add(field);
|
Consumable_order_LinkTable__c invoiceLink = new Consumable_order_LinkTable__c();
|
invoiceLink.Name = field + insertDetMap.get(field);
|
invoiceLink.Outboundorder_Code_link__c = field;
|
invoiceLink.Invoice_Code_link__c = insertDetMap.get(field);
|
invoiceLinkList.add(invoiceLink);
|
p.Id = field;
|
p.ConInvoice_Code__c = insertDetMap.get(field);
|
p.Onchange_order__c = true;
|
update p;
|
}
|
insert invoiceLinkList;
|
}
|
//换货出库单明细1更新
|
List<Consumable_Orderdetails__c> detaliFrom1List = [
|
SELECT
|
Id,
|
Name,
|
Consumable_order__c,
|
Asset_Model_No__c,
|
Consumable_Product__r.Asset_Model_No__c,
|
Shipment_Count__c,
|
RrturnPro_count__c,
|
Delivery_List_RMB__c,
|
InvoicedProCost_RMB__c,
|
Invoiced_Procount__c,
|
Invoiced_Count__c,
|
Invoice_Unitprice__c,
|
InvoiceProNot_count__c,
|
Invoice_Cost_RMB__c,
|
Invoice_No__c,
|
Invoice_Unit__c,
|
Box_Piece__c,
|
Consumable_Sale_order__r.Name,
|
Consumable_Shipment_order__r.Name
|
FROM Consumable_Orderdetails__c
|
WHERE Consumable_order__c IN :chukudanID
|
];
|
for (Consumable_Orderdetails__c changeOD : detaliFrom1List) {
|
changeOD.Invoiced_Procount__c = changeOD.Shipment_Count__c;
|
}
|
update detaliFrom1List;
|
}
|
|
//上传ContentVersion附件
|
@AuraEnabled
|
public static String saveFile(Id recordId, String fileName, String base64Data) {
|
base64Data = EncodingUtil.urlDecode(base64Data, 'UTF-8');
|
ContentVersion cv = new ContentVersion();
|
cv.Title = fileName;
|
cv.PathOnClient = '/' + fileName;
|
cv.FirstPublishLocationId = recordId;
|
cv.VersionData = EncodingUtil.base64Decode(base64Data);
|
cv.IsMajorVersion = true;
|
insert cv;
|
System.debug('cv.Id = ' + cv.Id);
|
return cv.Id;
|
}
|
|
// 保存附件
|
@AuraEnabled
|
public static ResponseBodyLWC saveAttachment(String attachmentRecoedsLwc, String invoiceId) {
|
System.debug('进入 saveAttachment');
|
ResponseBodyLWC res = new ResponseBodyLWC();
|
Map<String, object> data = new Map<String, object>();
|
res.entity = data;
|
invoiceId = invoiceId;
|
attachmentRecoeds = (List<InvoiceOrderInfo>) JSON.deserialize(attachmentRecoedsLwc, List<InvoiceOrderInfo>.class);
|
System.debug('attachmentRecoeds = ' + attachmentRecoeds);
|
try {
|
Consumable_accessories_invoice__c attachmentdetails = new Consumable_accessories_invoice__c();
|
for (InvoiceOrderInfo ass : attachmentRecoeds) {
|
if (!String.isBlank(ass.mailSelectOptsin)) {
|
attachmentdetails.Id = ass.invoiceOrderId;
|
attachmentdetails.Attachment_ID__c = ass.cvInfo.ContentDocumentId;
|
attachmentdetails.Accessories_type__c = ass.mailSelectOptsin;
|
if (String.isBlank(ass.invoiceOrderId)) {
|
attachmentdetails.Invoice_code__c = invoiceId;
|
}
|
upsert attachmentdetails;
|
}
|
}
|
} catch (Exception e) {
|
return new ResponseBodyLWC('Error', 500, e.getMessage() + e.getLineNumber(), '');
|
}
|
res.status = 'Success';
|
res.code = 200;
|
System.debug('res = ' + res);
|
return res;
|
}
|
|
// 检索(未开发票出库单)
|
@AuraEnabled
|
public static ResponseBodyLWC InvoiceorderSearch(
|
Consumable_order__c cocLwc,
|
String invoiceIdLwc,
|
String accountidLwc,
|
String userWorkLocationLwc,
|
String agencyProTypeLwc,
|
String HospitalInfoLwc,
|
String SecondDealerLwc,
|
String invoiceOrderRecoedsLwc
|
) {
|
System.debug('进入 InvoiceorderSearch');
|
ResponseBodyLWC res = new ResponseBodyLWC();
|
Map<String, object> data = new Map<String, object>();
|
res.entity = data;
|
|
coc = cocLwc;
|
HospitalInfo = HospitalInfoLwc;
|
SecondDealer = SecondDealerLwc;
|
errorMsg = '';
|
invoiceOrderRecoeds = (List<InvoiceOrderInfo>) JSON.deserialize(invoiceOrderRecoedsLwc, List<InvoiceOrderInfo>.class);
|
invoiceId = invoiceIdLwc;
|
accountid = accountidLwc;
|
agencyProType = agencyProTypeLwc;
|
userWorkLocation = userWorkLocationLwc;
|
|
Map<String, String> invoiceOrderMap = new Map<String, String>();
|
String msoql = '';
|
List<InvoiceOrderInfo> invoiceOrderdetailMid = new List<InvoiceOrderInfo>();
|
if (String.isBlank(invoiceId)) {
|
msoql = makeSoql();
|
} else {
|
msoql = makeSoqlInit();
|
}
|
invoiceOrderList = new List<Consumable_order__c>();
|
invoiceOrderList = Database.query(msoql);
|
for (InvoiceOrderInfo ass : invoiceOrderRecoeds) {
|
if (ass.check == true) {
|
invoiceOrderdetailMid.add(ass);
|
invoiceOrderMap.put(ass.esd.Name, ass.esd.Name);
|
}
|
}
|
invoiceOrderRecoeds = new List<InvoiceOrderInfo>();
|
invoiceOrderRecoeds.addAll(invoiceOrderdetailMid);
|
for (Integer i = 0; i < invoiceOrderList.size(); i++) {
|
if (invoiceOrderMap.containsKey(invoiceOrderList[i].Name)) {
|
} else {
|
invoiceOrderRecoeds.add(new InvoiceOrderInfo(invoiceOrderList[i]));
|
invoiceOrderMap.put(invoiceOrderList[i].Name, invoiceOrderList[i].Name);
|
}
|
}
|
data.put('invoiceOrderRecoeds', invoiceOrderRecoeds);
|
res.status = 'Success';
|
res.code = 200;
|
System.debug('res = ' + res);
|
return res;
|
}
|
|
private static String makeSoql() {
|
String soql = 'SELECT Id, Order_ForDealer__r.Name,Order_ForHospital__r.Name,Order_ForDealerText__c, Name,Outbound_Date__c,ShipmentAccount__c,Shipment_total_amount__c,RrturnPro_total_amount__c,Total_Invoiced_Procount__c,InvoiceNotPro_total_amount__c,InvoiceNotPro_money__c,Invoice_total_amount__c,Billed_Status__c FROM Consumable_order__c ';
|
soql += ' WHERE Dealer_Info__c = \'' + accountid + '\'';
|
soql += ' AND (recordtypeid = \'' + System.Label.RT_ConOrder_Sale + '\'';
|
soql += ' OR recordtypeid = \'' + System.Label.RT_ConOrder_Shipment + '\'';
|
soql += ' ) ';
|
soql += ' AND Order_Owner_WorkLocal__c = \'' + userWorkLocation + '\' ';
|
soql += ' AND Order_ProType__c =\'' + agencyProType + '\'';
|
soql += ' AND Billed_Status__c != \'全部开票\'';
|
soql += ' AND SummonsForDirction__c != \'互相调货\'';
|
if (HospitalInfo != null && HospitalInfo != '') {
|
soql += ' AND Order_ForHospital__c = \'' + HospitalInfo + '\'';
|
}
|
if (String.isNotEmpty(SecondDealer)) {
|
soql += ' AND Order_ForDealer__c = \'' + SecondDealer + '\'';
|
}
|
if (coc.Order_ForDealerText__c != null) {
|
soql += ' AND ShipmentAccount__c = \'' + coc.Order_ForDealerText__c + '\'';
|
}
|
soql += ' AND InvoiceNotPro_total_amount__c > 0';
|
soql += ' AND Onchange_order__c = false limit 1000';
|
return soql;
|
}
|
|
private static String makeSoqlInit() {
|
String soql = 'SELECT Id, Order_ForDealer__r.Name,Order_ForHospital__r.Name,Order_ForDealerText__c, Name,Outbound_Date__c,ShipmentAccount__c,Shipment_total_amount__c,RrturnPro_total_amount__c,Total_Invoiced_Procount__c,InvoiceNotPro_total_amount__c,InvoiceNotPro_money__c,Invoice_total_amount__c,Billed_Status__c FROM Consumable_order__c ';
|
soql += ' WHERE Dealer_Info__c = \'' + accountid + '\'';
|
soql += ' AND (recordtypeid = \'' + System.Label.RT_ConOrder_Sale + '\'';
|
soql += ' OR recordtypeid = \'' + System.Label.RT_ConOrder_Shipment + '\'';
|
soql += ' ) ';
|
soql += ' AND Order_Owner_WorkLocal__c = \'' + userWorkLocation + '\' ';
|
soql += ' AND Order_ProType__c =\'' + agencyProType + '\'';
|
soql += ' AND SummonsForDirction__c != \'互相调货\' ';
|
if (HospitalInfo != null && HospitalInfo != '') {
|
soql += ' AND Order_ForHospital__c = \'' + HospitalInfo + '\'';
|
}
|
if (SecondDealer != null) {
|
soql += ' AND Order_ForDealer__c = \'' + SecondDealer + '\'';
|
}
|
if (coc.Order_ForDealerText__c != null) {
|
soql += ' AND ShipmentAccount__c = \'' + coc.Order_ForDealerText__c + '\'';
|
}
|
soql += ' AND InvoiceNotPro_total_amount__c > 0';
|
soql += ' AND Onchange_order__c = false limit 1000';
|
return soql;
|
}
|
|
// 删除按钮
|
@AuraEnabled
|
public static ResponseBodyLWC deleteButton(String invoiceIdLwc, Consumable_order__c cocLwc) {
|
System.debug('进入 deleteButton');
|
ResponseBodyLWC res = new ResponseBodyLWC();
|
Map<String, object> data = new Map<String, object>();
|
res.entity = data;
|
|
coc = cocLwc;
|
invoiceId = invoiceIdLwc;
|
system.debug('====invoiceId==========>' + invoiceId);
|
List<Consumable_Orderdetails__c> consList = [
|
SELECT id, Consumable_order__c
|
FROM Consumable_Orderdetails__c
|
WHERE Consumable_order__c = :invoiceId
|
];
|
try {
|
system.debug('====cons==========>' + consList);
|
delete consList;
|
if (coc.id == invoiceId && coc.Invoice_status__c == '草案中') {
|
delete coc;
|
}
|
res.status = 'Success';
|
res.code = 200;
|
System.debug('res = ' + res);
|
return res;
|
} catch (Exception e) {
|
// ApexPages.addMessages(e);
|
// return null;
|
return new ResponseBodyLWC('Error', 500, e.getMessage() + ' ' + e.getLineNumber(), '');
|
}
|
}
|
|
// 提交按钮
|
@AuraEnabled
|
public static ResponseBodyLWC approval(
|
List<String> outOrderStringListLwc,
|
Map<String, Consumable_Orderdetails__c> outordercountMapLwc,
|
String invoiceIdLwc
|
) {
|
System.debug('进入 approval');
|
ResponseBodyLWC res = new ResponseBodyLWC();
|
Map<String, object> data = new Map<String, object>();
|
res.entity = data;
|
|
outOrderStringList = outOrderStringListLwc;
|
outordercountMap = outordercountMapLwc;
|
invoiceId = invoiceIdLwc;
|
//更新发票明细2链接
|
Consumable_order__c P = new Consumable_order__c();
|
List<Consumable_order__c> cocinfo = new List<Consumable_order__c>();
|
List<Consumable_order_details2__c> invoiceorderList2 = new List<Consumable_order_details2__c>();
|
//更新出库单明细1
|
List<Consumable_Orderdetails__c> outOrderdetUp1List = new List<Consumable_Orderdetails__c>();
|
//需要更新出库单明细1
|
List<Consumable_Orderdetails__c> outOrderdet1List = [
|
SELECT
|
Id,
|
Name,
|
Consumable_order__c,
|
Consumable_order__r.Name,
|
Asset_Model_No__c,
|
Consumable_Product__r.Asset_Model_No__c,
|
Shipment_Count__c,
|
RrturnPro_count__c,
|
Delivery_List_RMB__c,
|
InvoicedProCost_RMB__c,
|
Invoiced_Procount__c,
|
Invoiced_Count__c,
|
Invoice_Unitprice__c,
|
InvoiceProNot_count__c,
|
Invoice_Cost_RMB__c,
|
Invoice_No__c,
|
Box_Piece__c,
|
Invoice_Unit__c
|
FROM Consumable_Orderdetails__c
|
WHERE Consumable_order__c IN :outOrderStringList
|
];
|
for (Integer i = 0; i < outOrderdet1List.size(); i++) {
|
if (outordercountMap.containsKey(outOrderdet1List[i].Consumable_order__c + outOrderdet1List[i].Asset_Model_No__c)) {
|
Consumable_Orderdetails__c invoiceUpdte1 = new Consumable_Orderdetails__c();
|
invoiceUpdte1.Id = outOrderdet1List[i].Id;
|
invoiceUpdte1.Invoice_Unit__c = outordercountMap.get(
|
outOrderdet1List[i].Consumable_order__c + outOrderdet1List[i].Asset_Model_No__c
|
)
|
.Invoice_Unit__c;
|
if (
|
outordercountMap.get(outOrderdet1List[i].Consumable_order__c + outOrderdet1List[i].Asset_Model_No__c).Box_Piece__c ==
|
'盒' &&
|
outordercountMap.get(outOrderdet1List[i].Consumable_order__c + outOrderdet1List[i].Asset_Model_No__c).Invoice_Unit__c ==
|
'个'
|
) {
|
Decimal OldinvoicedProcount = 0;
|
OldinvoicedProcount = (outordercountMap.get(
|
outOrderdet1List[i].Consumable_order__c + outOrderdet1List[i].Asset_Model_No__c
|
)
|
.Invoiced_Count__c /
|
outordercountMap.get(outOrderdet1List[i].Consumable_order__c + outOrderdet1List[i].Asset_Model_No__c)
|
.ProductPacking_list_manual__c)
|
.setScale(2);
|
invoiceUpdte1.Invoiced_Procount__c = outOrderdet1List[i].Invoiced_Procount__c + OldinvoicedProcount;
|
} else {
|
invoiceUpdte1.Invoiced_Procount__c =
|
outOrderdet1List[i].Invoiced_Procount__c +
|
outordercountMap.get(outOrderdet1List[i].Consumable_order__c + outOrderdet1List[i].Asset_Model_No__c)
|
.Invoiced_Count__c;
|
}
|
invoiceUpdte1.Invoice_Unitprice__c = outordercountMap.get(
|
outOrderdet1List[i].Consumable_order__c + outOrderdet1List[i].Asset_Model_No__c
|
)
|
.Invoice_Unitprice__c;
|
System.debug('====>procount' + invoiceUpdte1.Invoiced_Procount__c);
|
System.debug('===>RMB' + outOrderdet1List[i].Delivery_List_RMB__c);
|
invoiceUpdte1.InvoicedProCost_RMB__c = invoiceUpdte1.Invoiced_Procount__c * outOrderdet1List[i].Delivery_List_RMB__c;
|
|
Decimal invoicedProcount = 0;
|
if (
|
outordercountMap.get(outOrderdet1List[i].Consumable_order__c + outOrderdet1List[i].Asset_Model_No__c).Box_Piece__c ==
|
'盒' &&
|
outordercountMap.get(outOrderdet1List[i].Consumable_order__c + outOrderdet1List[i].Asset_Model_No__c).Invoice_Unit__c ==
|
'个'
|
) {
|
invoicedProcount = (outordercountMap.get(
|
outOrderdet1List[i].Consumable_order__c + outOrderdet1List[i].Asset_Model_No__c
|
)
|
.Invoiced_Count__c /
|
outordercountMap.get(outOrderdet1List[i].Consumable_order__c + outOrderdet1List[i].Asset_Model_No__c)
|
.ProductPacking_list_manual__c)
|
.setScale(2);
|
} else {
|
invoicedProcount = outordercountMap.get(outOrderdet1List[i].Consumable_order__c + outOrderdet1List[i].Asset_Model_No__c)
|
.Invoiced_Count__c;
|
}
|
System.debug('发票数量===>' + outOrderdet1List[i].InvoiceProNot_count__c);
|
System.debug('还没发票数量===>' + invoicedProcount);
|
|
if (outOrderdet1List[i].InvoiceProNot_count__c < invoicedProcount) {
|
// ApexPages.addmessage(
|
// new ApexPages.message(
|
// ApexPages.severity.Error,
|
// '出库单' +
|
// outOrderdet1List[i].Consumable_order__r.Name +
|
// '中,' +
|
// outOrderdet1List[i].Asset_Model_No__c +
|
// '还没开票数量小于发票数量,请确认是否有返品'
|
// )
|
// );
|
// return null;
|
return new ResponseBodyLWC(
|
'Error',
|
500,
|
'出库单' +
|
outOrderdet1List[i].Consumable_order__r.Name +
|
'中,' +
|
outOrderdet1List[i].Asset_Model_No__c +
|
'还没开票数量小于发票数量,请确认是否有返品',
|
''
|
);
|
}
|
|
outOrderdetUp1List.add(invoiceUpdte1);
|
}
|
}
|
Savepoint sp = Database.setSavepoint();
|
try {
|
//出库单明细1更新
|
if (outOrderdetUp1List.size() > 0) {
|
ControllerUtil.updateOrderDetails1Satus(outOrderdetUp1List);
|
}
|
//发票状态更新
|
cocinfo = [
|
SELECT Id, Name, Invoice_status__c, Dealer_Info__c, Order_ForHospital__c, SummonsForDirction__c
|
FROM Consumable_order__c
|
WHERE Id = :invoiceId
|
];
|
System.debug('cocinfo = ' + cocinfo);
|
if (cocinfo.size() > 0) {
|
p = cocinfo[0];
|
}
|
System.debug('p = ' + p);
|
p.Invoice_status__c = '提交';
|
update p;
|
} catch (Exception ex) {
|
Database.rollback(sp);
|
// ApexPages.addMessages(ex);
|
// return null;
|
return new ResponseBodyLWC('Error', 500, ex.getMessage() + ' ' + ex.getLineNumber(), '');
|
}
|
res.status = 'Success';
|
res.code = 200;
|
System.debug('res = ' + res);
|
return res;
|
}
|
@TestVisible
|
class InvoiceOrderInfo implements Comparable {
|
@AuraEnabled
|
public Boolean check { get; set; }
|
@AuraEnabled
|
public Boolean oldCheck { get; set; }
|
@AuraEnabled
|
public Consumable_order__c esd { get; set; }
|
@AuraEnabled
|
public Consumable_Orderdetails__c esdet { get; set; }
|
@AuraEnabled
|
public Attachment attach { get; set; }
|
@AuraEnabled
|
public ContentVersion cvInfo { get; set; }
|
@AuraEnabled
|
public String mailSelectOptsin { get; set; }
|
public List<SelectOption> mailSelectOpts { get; set; }
|
@AuraEnabled
|
public Map<String, String> mailSelectOptsMap { get; set; }
|
@AuraEnabled
|
public String invoiceOrderId { get; set; }
|
@AuraEnabled
|
public Decimal needInvoiceCount { get; set; }
|
|
// 出库订单
|
public InvoiceOrderInfo(Consumable_order__c e) {
|
check = false;
|
oldCheck = false;
|
esd = e;
|
needInvoiceCount = 0;
|
}
|
// 出库订单明细1
|
public InvoiceOrderInfo(Consumable_Orderdetails__c e) {
|
esdet = e;
|
}
|
//附件
|
public InvoiceOrderInfo(Attachment e) {
|
attach = e;
|
mailSelectOpts = new List<SelectOption>();
|
mailSelectOpts.add(new SelectOption('发票和明细', '发票和明细'));
|
mailSelectOpts.add(new SelectOption('发票', '发票'));
|
mailSelectOpts.add(new SelectOption('明细', '明细'));
|
}
|
//ContentVersion
|
public InvoiceOrderInfo(ContentVersion cv) {
|
cvInfo = cv;
|
mailSelectOptsMap = new Map<String, String>();
|
mailSelectOptsMap.put('发票和明细', '发票和明细');
|
mailSelectOptsMap.put('发票', '发票');
|
mailSelectOptsMap.put('明细', '明细');
|
}
|
// 排序
|
public Integer compareTo(Object compareTo) {
|
return null;
|
}
|
}
|
}
|