@isTest private class LexConInvoicedetailsControllerTest { @isTest static void all() { User myUser_test; Account myAccount1; Account myAccount2; User thisUser = [SELECT Id FROM User WHERE Id = :UserInfo.getUserId()]; System.runAs(thisUser) { Profile prof = [SELECT Id FROM Profile WHERE Name = '901_经销商社区普通权限_2重验证(ET)']; List rectCo = [SELECT Id FROM RecordType WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '販売店']; if (rectCo.size() == 0) { return; } List rectHos = [SELECT Id FROM RecordType WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '病院']; if (rectHos.size() == 0) { return; } myAccount1 = new Account(Name = 'testaccount001', Dealer_discount__c = 10, RecordTypeId = rectCo[0].Id); myAccount2 = new Account(Name = 'testaccount002', Dealer_discount__c = 20, RecordTypeId = rectHos[0].Id); insert myAccount1; insert myAccount2; Contact core = new Contact( email = 'jplumber@salesforce.com', firstname = 'Joe', lastname = 'Plumber', accountid = myAccount1.id ); insert core; myUser_test = new User( ContactId = core.id, Alias = 'newUser', Email = 'newuser@testorg.com', EmailEncodingKey = 'UTF-8', LastName = 'TestUser', LanguageLocaleKey = 'zh_CN', LocaleSidKey = 'zh_CN', ProfileId = prof.Id, TimeZoneSidKey = 'Asia/Shanghai', UserName = 'testUser@testorg.com', UserPro_Type__c = 'ENG', Work_Location__c = '北京' ); insert myUser_test; } System.runAs(myUser_test) { //产品信息 Product2 prod01 = new Product2( Name = 'Test01', ProductCode = 'Test01', Asset_Model_No__c = 'Test01', SFDA_Status__c = '有効', Dealer_special_Object__c = true, Packing_list_manual__c = 1, Manual_Entry__c = false ); Product2 prod02 = new Product2( Name = 'Test02', ProductCode = 'Test02', Asset_Model_No__c = 'Test02', SFDA_Status__c = '有効', Dealer_special_Object__c = true, Packing_list_manual__c = 1, Manual_Entry__c = false ); Product2 prod03 = new Product2( Name = 'Test03', ProductCode = 'Test03', Asset_Model_No__c = 'Test03', SFDA_Status__c = '有効', Dealer_special_Object__c = true, Packing_list_manual__c = 1, Manual_Entry__c = false ); Product2 prod04 = new Product2( Name = 'Test04', ProductCode = 'Test04', Asset_Model_No__c = 'Test04', SFDA_Status__c = '有効', Dealer_special_Object__c = true, Packing_list_manual__c = 2, Manual_Entry__c = false ); Product2 prod05 = new Product2( Name = 'Test05', ProductCode = 'Test05', Asset_Model_No__c = 'Test05', SFDA_Status__c = '有効', Dealer_special_Object__c = true, Packing_list_manual__c = 1, Manual_Entry__c = false ); Product2 prod06 = new Product2( Name = 'Test06', ProductCode = 'Test06', Asset_Model_No__c = 'Test06', SFDA_Status__c = '有効', Dealer_special_Object__c = true, Packing_list_manual__c = 1, Manual_Entry__c = false ); insert new List{ prod01, prod02, prod03, prod04, prod05, prod06 }; Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'Test001', Product2__c = prod01.Id); Product2__c pro2 = new Product2__c(Name = 'Pro002', OT_CODE_Text__c = 'Test002', Product2__c = prod02.Id); Product2__c pro3 = new Product2__c(Name = 'Pro004', OT_CODE_Text__c = 'Test004', Product2__c = prod03.Id); Product2__c pro4 = new Product2__c(Name = 'Pro005', OT_CODE_Text__c = 'Test005', Product2__c = prod04.Id); Product2__c pro5 = new Product2__c(Name = 'Pro003', OT_CODE_Text__c = 'Test003', Product2__c = prod05.Id); Product2__c pro6 = new Product2__c(Name = 'Pro006', OT_CODE_Text__c = 'Test006', Product2__c = prod06.Id); insert new List{ pro4, pro5, pro6, pro1, pro2, pro3 }; //发票 Consumable_order__c invoiceorder = new Consumable_order__c(); invoiceorder.Name = 'invoice02'; invoiceorder.Order_type__c = '发票'; invoiceorder.Invoice_status__c = '已完成'; invoiceorder.Invoice_Date__c = Date.today(); invoiceorder.RecordTypeid = System.Label.RT_ConOrder_Invoice; invoiceorder.Dealer_info__c = myAccount1.Id; // createId.Order_ForHospital__c = myAccount2.Id; invoiceorder.SummonsForDirction__c = '直接销售给医院'; invoiceorder.Order_status__c = '草案中'; insert invoiceorder; //出库单信息 //出库单 Consumable_order__c testList1 = new Consumable_order__c( Name = 'Test1', Summons_Sale_Status__c = '出货', SummonsStatus_c__c = '已完成', SummonsForDirction__c = '直接销售给医院', Order_status__c = '草案中', Order_type__c = '传票', Dealer_info__c = myAccount1.Id, ConInvoice_Code__c = invoiceorder.id ); Consumable_order__c testList2 = new Consumable_order__c( Name = 'Test2', Summons_Sale_Status__c = '出货', SummonsStatus_c__c = '已完成', SummonsForDirction__c = '直接销售给医院', Order_status__c = '已提交', Order_type__c = '传票', Dealer_info__c = myAccount1.Id, ConInvoice_Code__c = invoiceorder.id ); TestList1.Order_date__c = Date.today().addDays(2); TestList2.Order_date__c = Date.today().addDays(2); TestList1.Order_date__c = Date.today(); TestList2.Deliver_date__c = Date.today(); insert new List{ testList1, testList2 }; List invoiceList = new List(); //发票明细1 Consumable_orderdetails__c invoicedet1 = new Consumable_orderdetails__c(); invoicedet1.Name = 'invoicetest1_001001'; invoicedet1.Consumable_order__c = invoiceorder.id; invoicedet1.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; invoicedet1.Consumable_count__c = 1; invoicedet1.Consumable_product__c = pro1.Id; invoicedet1.Invoicedet1_OD_link__c = testList1.Id; invoicedet1.Box_Piece__c = '盒'; invoicedet1.Shipment_Count__c = 1; invoicedet1.Invoice_Unitprice__c = 1; invoicedet1.Delivery_List_RMB__c = 1; invoicedet1.InvoicedProCost_RMB__c = 1; invoicedet1.Invoice_Unit__c = '个'; invoicedet1.Invoiced_Procount__c = 3; invoicedet1.RrturnPro_count__c = 3; invoiceList.add(invoicedet1); Consumable_orderdetails__c invoicedet2 = new Consumable_orderdetails__c(); invoicedet2.Name = 'invoiceTest1_001002'; invoicedet2.Consumable_order__c = invoiceorder.Id; invoicedet2.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; invoicedet2.Consumable_count__c = 1; invoicedet2.Consumable_product__c = pro2.Id; invoicedet2.Invoicedet1_OD_link__c = testList2.Id; invoicedet2.Box_Piece__c = '盒'; invoicedet2.Shipment_Count__c = 1; invoicedet2.Invoice_Unitprice__c = 1; invoicedet2.Delivery_List_RMB__c = 1; invoicedet2.InvoicedProCost_RMB__c = 1; invoicedet2.Invoice_Unit__c = '个'; invoicedet2.Invoiced_Procount__c = 3; invoicedet2.RrturnPro_count__c = 3; invoiceList.add(invoicedet2); Consumable_orderdetails__c invoicedet3 = new Consumable_orderdetails__c(); invoicedet3.Name = 'invoiceTest1_001003'; invoicedet3.Consumable_order__c = invoiceorder.Id; invoicedet3.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; invoicedet3.Consumable_count__c = 1; invoicedet3.Consumable_product__c = pro2.Id; invoicedet3.Invoicedet1_OD_link__c = testList2.Id; invoicedet3.Box_Piece__c = '个'; invoicedet3.Shipment_Count__c = 1; invoicedet3.Invoice_Unit__c = '盒'; invoicedet3.Delivery_List_RMB__c = 2.0; invoicedet3.Invoice_Unitprice__c = 1; invoicedet3.InvoicedProCost_RMB__c = 1; invoicedet3.Invoiced_Procount__c = 3; invoicedet3.RrturnPro_count__c = 3; invoiceList.add(invoicedet3); insert invoiceList; List codList = new List(); //出库单明细1 Consumable_orderdetails__c orderdet1 = new Consumable_orderdetails__c(); orderdet1.Name = 'Test1_001001'; //orderdet1.Consumable_principal__c = testList1.Id; orderdet1.Consumable_order__c = testList1.Id; orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; orderdet1.Consumable_count__c = 1; orderdet1.Consumable_product__c = pro1.Id; orderdet1.Box_Piece__c = '盒'; orderdet1.Shipment_Count__c = 11; orderdet1.Delivery_List_RMB__c = 2.0; orderdet1.Invoice_Unitprice__c = 1; orderdet1.InvoicedProCost_RMB__c = 1; orderdet1.Invoiced_Procount__c = 3; orderdet1.RrturnPro_count__c = 3; orderdet1.Invoice_Unit__c = '个'; codList.add(orderdet1); Consumable_orderdetails__c orderdet2 = new Consumable_orderdetails__c(); orderdet2.Name = 'Test1_0010011'; orderdet2.Consumable_order__c = testList1.Id; orderdet2.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; orderdet2.Consumable_count__c = 1; orderdet2.Consumable_product__c = pro2.Id; orderdet2.Box_Piece__c = '个'; orderdet2.Shipment_Count__c = 11; orderdet2.Delivery_List_RMB__c = 2.0; orderdet2.Invoice_Unitprice__c = 1; orderdet2.InvoicedProCost_RMB__c = 1; orderdet2.Invoiced_Procount__c = 3; orderdet2.RrturnPro_count__c = 3; orderdet2.Invoice_Unit__c = '盒'; codList.add(orderdet2); Consumable_orderdetails__c orderdet3 = new Consumable_orderdetails__c(); orderdet3.Name = 'Test1_0010012'; orderdet3.Consumable_order__c = testList1.Id; orderdet3.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; orderdet3.Consumable_count__c = 1; orderdet3.Consumable_product__c = pro2.Id; orderdet3.Box_Piece__c = '盒'; orderdet3.Shipment_Count__c = 10; orderdet3.Delivery_List_RMB__c = 2.0; orderdet3.Invoice_Unitprice__c = 1; orderdet3.InvoicedProCost_RMB__c = 1; orderdet3.Invoiced_Procount__c = 3; orderdet3.RrturnPro_count__c = 3; orderdet3.Invoice_Unit__c = '个'; orderdet3.Invoiced_Count__c = 3; codList.add(orderdet3); Consumable_orderdetails__c orderdet4 = new Consumable_orderdetails__c(); orderdet4.Name = 'Test1_0010031'; orderdet4.Consumable_order__c = testList1.Id; orderdet4.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; orderdet4.Consumable_count__c = 1; orderdet4.Consumable_product__c = pro1.Id; orderdet4.Box_Piece__c = '个'; orderdet4.Shipment_Count__c = 10; orderdet4.Delivery_List_RMB__c = 2.0; orderdet4.Invoice_Unitprice__c = 1; orderdet4.InvoicedProCost_RMB__c = 1; orderdet4.Invoiced_Procount__c = 3; orderdet4.RrturnPro_count__c = 3; orderdet4.Invoice_Unit__c = '盒'; orderdet4.Invoiced_Count__c = 3; codList.add(orderdet4); Consumable_orderdetails__c orderdet5 = new Consumable_orderdetails__c(); orderdet5.Name = 'Test1_001002'; orderdet5.Consumable_order__c = testList1.Id; orderdet5.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; orderdet5.Consumable_count__c = 1; orderdet5.Box_Piece__c = '盒'; orderdet5.Consumable_product__c = pro2.Id; orderdet5.Invoice_Unit__c = '个'; orderdet5.Shipment_Count__c = 11; orderdet5.Delivery_List_RMB__c = 2.0; orderdet5.Invoiced_Procount__c = 3; orderdet5.RrturnPro_count__c = 3; orderdet5.Invoiced_Count__c = 3; codList.add(orderdet5); Consumable_orderdetails__c orderdet6 = new Consumable_orderdetails__c(); orderdet6.Name = 'Test1_001003'; orderdet6.Consumable_order__c = testList1.Id; orderdet6.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; orderdet6.Consumable_count__c = 1; orderdet6.Box_Piece__c = '盒'; orderdet6.Consumable_product__c = pro1.Id; orderdet6.Invoice_Unit__c = '盒'; orderdet6.Shipment_Count__c = 11; orderdet6.Delivery_List_RMB__c = 2.0; orderdet6.Invoiced_Procount__c = 3; orderdet6.RrturnPro_count__c = 3; orderdet6.Invoiced_Count__c = 3; codList.add(orderdet6); Consumable_orderdetails__c orderdet7 = new Consumable_orderdetails__c(); orderdet7.Name = 'Test1_001004'; //orderdet2.Consumable_principal__c = testList2.Id; orderdet7.Consumable_order__c = testList1.Id; orderdet7.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; orderdet7.Consumable_count__c = 1; orderdet7.Box_Piece__c = '盒'; orderdet7.Consumable_product__c = pro2.Id; orderdet7.Invoice_Unit__c = '个'; orderdet7.Shipment_Count__c = 11; orderdet7.Delivery_List_RMB__c = 2.0; orderdet7.Invoiced_Procount__c = 3; orderdet7.Invoiced_Count__c = 3; orderdet7.RrturnPro_count__c = 3; codList.add(orderdet7); insert codList; LexConInvoicedetailsController.init(testList1.Id, invoiceorder.Id); //序列化Json System.Test.startTest(); System.debug('===>数据' + LexConInvoicedetailsController.consumableorderdetails1Records); List inList = LexConInvoicedetailsController.consumableorderdetails1Records; LexConInvoicedetailsController.save( JSON.serialize(LexConInvoicedetailsController.consumableorderdetails1Records), invoiceorder.Id, testList1.Id ); List inList1 = new List(); for (LexConInvoicedetailsController.ConsumableorderdetailsInfo ass : inList) { ass.check = true; ass.invoiceCount = 1; ass.esd.Invoice_Unit__c = '个'; inList1.add(ass); } LexConInvoicedetailsController.save(JSON.serialize(inList1), invoiceorder.Id, testList1.Id); System.Test.stopTest(); } } }