@isTest
private class LexConInvoicedetailsControllerTest {
  @isTest
  static void itShould() {
    user myUser_test;
    Account myAccount1;
    Account myAccount2;
    Product2__c pro2;
    Product2__c pro1;
    Product2 prod01;
    Product2 prod02;
    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<RecordType> rectCo = [
        SELECT Id
        FROM RecordType
        WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '販売店'
      ];
      if (rectCo.size() == 0) {
        return;
      }
      List<RecordType> rectHos = [
        SELECT Id
        FROM RecordType
        WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '病院'
      ];
      if (rectHos.size() == 0) {
        return;
      }
      //产品信息
      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
      );
      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<Product2>{
        prod01,
        prod02,
        prod03,
        prod04,
        prod05,
        prod06
      };

      pro1 = new Product2__c(
        Name = 'Pro001',
        OT_CODE_Text__c = 'Test001',
        Product2__c = prod01.Id
      );
      pro2 = new Product2__c(
        Name = 'Pro002',
        OT_CODE_Text__c = 'Test002',
        Product2__c = prod02.Id
      );
      Product2__c pro5 = new Product2__c(
        Name = 'Pro003',
        OT_CODE_Text__c = 'Test003',
        Product2__c = prod03.Id
      );
      Product2__c pro3 = new Product2__c(
        Name = 'Pro004',
        OT_CODE_Text__c = 'Test004',
        Product2__c = prod04.Id
      );
      Product2__c pro4 = new Product2__c(
        Name = 'Pro005',
        OT_CODE_Text__c = 'Test005',
        Product2__c = prod05.Id
      );
      Product2__c pro6 = new Product2__c(
        Name = 'Pro006',
        OT_CODE_Text__c = 'Test006',
        Product2__c = prod06.Id
      );
      insert new List<Product2__c>{ pro4, pro5, pro6, pro1, pro2, pro3 };

      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'
      );
      insert myUser_test;
    }
    System.runAs(myUser_test) {
      //发票信息
      Consumable_order__c invoiceorder = new Consumable_order__c(
        Name = 'invoice01',
        Order_type__c = '发票',
        Invoice_status__c = '已完成',
        Invoice_Date__c = Date.today(),
        RecordTypeid = System.Label.RT_ConOrder_Invoice,
        Order_ForHospital__c = myAccount2.Id,
        SummonsForDirction__c = '直接销售给医院',
        Order_status__c = '草案中',
        Dealer_info__c = myAccount1.Id
      );
      insert invoiceorder;

      //出库单
      Consumable_order__c testList1 = new Consumable_order__c(
        Name = 'Test1',
        Summons_Sale_Status__c = '出货',
        SummonsStatus_c__c = '已完成',
        Order_ForHospital__c = myAccount2.Id,
        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 = '已完成',
        Order_ForHospital__c = myAccount2.Id,
        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<Consumable_order__c>{ testList1, testList2 };

      Consumable_order_LinkTable__c order_LinkTable1 = new Consumable_order_LinkTable__c(
        Name = 'order_LinkTable1',
        Outboundorder_Code_link__c = testList1.Id,
        Invoice_Code_link__c = invoiceorder.Id
      );
      insert order_LinkTable1;
      Consumable_order_LinkTable__c order_LinkTable2 = new Consumable_order_LinkTable__c(
        Name = 'order_LinkTable2',
        Outboundorder_Code_link__c = testList2.Id,
        Invoice_Code_link__c = invoiceorder.Id
      );
      insert order_LinkTable2;

      //发票明细1
      Consumable_orderdetails__c invoicedet1 = new Consumable_orderdetails__c();
      invoicedet1.Name = 'invoicetest1_001001';
      //orderdet1.Consumable_principal__c = testList1.Id;
      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;
      Consumable_orderdetails__c invoicedet2 = new Consumable_orderdetails__c();
      invoicedet2.Name = 'invoiceTest1_001002';
      //orderdet2.Consumable_principal__c = testList2.Id;
      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;
      Consumable_orderdetails__c invoicedet3 = new Consumable_orderdetails__c();
      invoicedet3.Name = 'invoiceTest1_001003';
      //orderdet2.Consumable_principal__c = testList2.Id;
      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;
      insert new List<Consumable_orderdetails__c>{
        invoicedet1,
        invoicedet2,
        invoicedet3
      };

      //出库单明细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 = '个';
      orderdet1 = new Consumable_orderdetails__c();
      orderdet1.Name = 'Test1_0010011';
      //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 = pro2.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 = '盒';
      Consumable_orderdetails__c orderdet2 = new Consumable_orderdetails__c();
      orderdet2.Name = 'Test1_0010012';
      //orderdet2.Consumable_principal__c = testList2.Id;
      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 = 10;
      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 = '个';
      orderdet2.Invoiced_Count__c = 3;
      orderdet2 = new Consumable_orderdetails__c();
      orderdet2.Name = 'Test1_0010031';
      //orderdet2.Consumable_principal__c = testList2.Id;
      orderdet2.Consumable_order__c = testList1.Id;
      orderdet2.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice;
      orderdet2.Consumable_count__c = 1;
      orderdet2.Consumable_product__c = pro1.Id;
      orderdet2.Box_Piece__c = '个';
      orderdet2.Shipment_Count__c = 10;
      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 = '盒';
      orderdet2.Invoiced_Count__c = 3;

      Consumable_orderdetails__c orderdet3 = new Consumable_orderdetails__c();
      orderdet3.Name = 'Test1_001002';
      //orderdet2.Consumable_principal__c = testList2.Id;
      orderdet3.Consumable_order__c = testList1.Id;
      orderdet3.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice;
      orderdet3.Consumable_count__c = 1;
      orderdet3.Box_Piece__c = '盒';
      orderdet3.Consumable_product__c = pro2.Id;
      orderdet3.Invoice_Unit__c = '个';
      orderdet3.Shipment_Count__c = 11;
      orderdet3.Delivery_List_RMB__c = 2.0;
      orderdet3.Invoiced_Procount__c = 3;
      orderdet3.RrturnPro_count__c = 3;
      orderdet3.Invoiced_Count__c = 3;
      orderdet3 = new Consumable_orderdetails__c();
      orderdet3.Name = 'Test1_001003';
      //orderdet2.Consumable_principal__c = testList2.Id;
      orderdet3.Consumable_order__c = testList1.Id;
      orderdet3.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice;
      orderdet3.Consumable_count__c = 1;
      orderdet3.Box_Piece__c = '盒';
      orderdet3.Consumable_product__c = pro1.Id;
      orderdet3.Invoice_Unit__c = '盒';
      orderdet3.Shipment_Count__c = 11;
      orderdet3.Delivery_List_RMB__c = 2.0;
      orderdet3.Invoiced_Procount__c = 3;
      orderdet3.RrturnPro_count__c = 3;
      orderdet3.Invoiced_Count__c = 3;

      Consumable_orderdetails__c orderdet4 = new Consumable_orderdetails__c();
      orderdet4.Name = 'Test1_001004';
      //orderdet2.Consumable_principal__c = testList2.Id;
      orderdet4.Consumable_order__c = testList1.Id;
      orderdet4.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice;
      orderdet4.Consumable_count__c = 1;
      orderdet4.Box_Piece__c = '盒';
      orderdet4.Consumable_product__c = pro2.Id;
      orderdet4.Invoice_Unit__c = '个';
      orderdet4.Shipment_Count__c = 11;
      orderdet4.Delivery_List_RMB__c = 2.0;
      orderdet4.Invoiced_Procount__c = 3;
      orderdet4.Invoiced_Count__c = 3;
      orderdet4.RrturnPro_count__c = 3;
      insert new List<Consumable_orderdetails__c>{
        orderdet1,
        orderdet2,
        orderdet3,
        orderdet4
      };

      // PageReference page = new PageReference('/apex/ConInvoicedetails?orderId=' + testList1.Id + '&invoiceId=' + invoiceorder.id);
      // page.setRedirect(true);
      // System.Test.setCurrentPage(page);
      //   page = new Pagereference('/ConInvoiceView?invoiceId='+invoiceorder.id);
      //  page.setRedirect(true);

      LexConInvoicedetailsController.init('', '');
      // System.assertEquals(4, conTest.consumableorderdetails1Records.size());
      // conTest.consumableorderdetails1Records[0].check= true;
      // conTest.consumableorderdetails1Records[0].invoiceCount= 1;
      // conTest.consumableorderdetails1Records[0].esd.Invoice_Unit__c = '个';
      // conTest.consumableorderdetails1Records[1].check= true;
      // conTest.consumableorderdetails1Records[1].invoiceCount= 2;
      // conTest.consumableorderdetails1Records[1].esd.Invoice_Unit__c = '个';
      //     conTest.save();
      //     conTest.returnToinvoice();
      //     Consumable_orderdetails__c testInvoice = [select id,Name,Invoiced_Count__c,Invoice_Unit__c,Invoice_Unitprice__c from Consumable_orderdetails__c where id=:invoicedet1.Id];
      //    System.assertEquals(4, conTest.invoiceOrderRecoedsCount);
      // System.assertEquals('个', testInvoice.Invoice_Unit__c);
    }
  }
  @isTest
  static void all() {
    User myUser_test;
    Account myAccount1;
    Account myAccount2;
    Product2__c pro2;
    Product2__c pro1;
    Product2 prod01;
    Product2 prod02;
    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<RecordType> rectCo = [
        SELECT Id
        FROM RecordType
        WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '販売店'
      ];
      if (rectCo.size() == 0) {
        return;
      }
      List<RecordType> rectHos = [
        SELECT Id
        FROM RecordType
        WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '病院'
      ];
      if (rectHos.size() == 0) {
        return;
      }
      //产品信息
      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
      );
      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<Product2>{
        prod01,
        prod02,
        prod03,
        prod04,
        prod05,
        prod06
      };
      pro1 = new Product2__c(
        Name = 'Pro001',
        OT_CODE_Text__c = 'Test001',
        Product2__c = prod01.Id
      );
      pro2 = new Product2__c(
        Name = 'Pro002',
        OT_CODE_Text__c = 'Test002',
        Product2__c = prod02.Id
      );
      Product2__c pro5 = new Product2__c(
        Name = 'Pro003',
        OT_CODE_Text__c = 'Test003',
        Product2__c = prod03.Id
      );
      Product2__c pro3 = new Product2__c(
        Name = 'Pro004',
        OT_CODE_Text__c = 'Test004',
        Product2__c = prod04.Id
      );
      Product2__c pro4 = new Product2__c(
        Name = 'Pro005',
        OT_CODE_Text__c = 'Test005',
        Product2__c = prod05.Id
      );
      Product2__c pro6 = new Product2__c(
        Name = 'Pro006',
        OT_CODE_Text__c = 'Test006',
        Product2__c = prod06.Id
      );
      insert new List<Product2__c>{ pro4, pro5, pro6, pro1, pro2, pro3 };
      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) {
      //发票
      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<Consumable_order__c>{ testList1, testList2 };

      //发票明细1
      Consumable_orderdetails__c invoicedet1 = new Consumable_orderdetails__c();
      invoicedet1.Name = 'invoicetest1_001001';
      //orderdet1.Consumable_principal__c = testList1.Id;
      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;
      Consumable_orderdetails__c invoicedet2 = new Consumable_orderdetails__c();
      invoicedet2.Name = 'invoiceTest1_001002';
      //orderdet2.Consumable_principal__c = testList2.Id;
      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;
      Consumable_orderdetails__c invoicedet3 = new Consumable_orderdetails__c();
      invoicedet3.Name = 'invoiceTest1_001003';
      //orderdet2.Consumable_principal__c = testList2.Id;
      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;
      insert new List<Consumable_orderdetails__c>{
        invoicedet1,
        invoicedet2,
        invoicedet3
      };

      //出库单明细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 = '个';
      orderdet1 = new Consumable_orderdetails__c();
      orderdet1.Name = 'Test1_0010011';
      //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 = pro2.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 = '盒';
      Consumable_orderdetails__c orderdet2 = new Consumable_orderdetails__c();
      orderdet2.Name = 'Test1_0010012';
      //orderdet2.Consumable_principal__c = testList2.Id;
      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 = 10;
      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 = '个';
      orderdet2.Invoiced_Count__c = 3;
      orderdet2 = new Consumable_orderdetails__c();
      orderdet2.Name = 'Test1_0010031';
      //orderdet2.Consumable_principal__c = testList2.Id;
      orderdet2.Consumable_order__c = testList1.Id;
      orderdet2.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice;
      orderdet2.Consumable_count__c = 1;
      orderdet2.Consumable_product__c = pro1.Id;
      orderdet2.Box_Piece__c = '个';
      orderdet2.Shipment_Count__c = 10;
      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 = '盒';
      orderdet2.Invoiced_Count__c = 3;

      Consumable_orderdetails__c orderdet3 = new Consumable_orderdetails__c();
      orderdet3.Name = 'Test1_001002';
      //orderdet2.Consumable_principal__c = testList2.Id;
      orderdet3.Consumable_order__c = testList1.Id;
      orderdet3.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice;
      orderdet3.Consumable_count__c = 1;
      orderdet3.Box_Piece__c = '盒';
      orderdet3.Consumable_product__c = pro2.Id;
      orderdet3.Invoice_Unit__c = '个';
      orderdet3.Shipment_Count__c = 11;
      orderdet3.Delivery_List_RMB__c = 2.0;
      orderdet3.Invoiced_Procount__c = 3;
      orderdet3.RrturnPro_count__c = 3;
      orderdet3.Invoiced_Count__c = 3;
      orderdet3 = new Consumable_orderdetails__c();
      orderdet3.Name = 'Test1_001003';
      //orderdet2.Consumable_principal__c = testList2.Id;
      orderdet3.Consumable_order__c = testList1.Id;
      orderdet3.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice;
      orderdet3.Consumable_count__c = 1;
      orderdet3.Box_Piece__c = '盒';
      orderdet3.Consumable_product__c = pro1.Id;
      orderdet3.Invoice_Unit__c = '盒';
      orderdet3.Shipment_Count__c = 11;
      orderdet3.Delivery_List_RMB__c = 2.0;
      orderdet3.Invoiced_Procount__c = 3;
      orderdet3.RrturnPro_count__c = 3;
      orderdet3.Invoiced_Count__c = 3;

      Consumable_orderdetails__c orderdet4 = new Consumable_orderdetails__c();
      orderdet4.Name = 'Test1_001004';
      //orderdet2.Consumable_principal__c = testList2.Id;
      orderdet4.Consumable_order__c = testList1.Id;
      orderdet4.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice;
      orderdet4.Consumable_count__c = 1;
      orderdet4.Box_Piece__c = '盒';
      orderdet4.Consumable_product__c = pro2.Id;
      orderdet4.Invoice_Unit__c = '个';
      orderdet4.Shipment_Count__c = 11;
      orderdet4.Delivery_List_RMB__c = 2.0;
      orderdet4.Invoiced_Procount__c = 3;
      orderdet4.Invoiced_Count__c = 3;
      orderdet4.RrturnPro_count__c = 3;
      insert new List<Consumable_orderdetails__c>{
        orderdet1,
        orderdet2,
        orderdet3,
        orderdet4
      };

      LexConInvoicedetailsController.init(testList1.Id, invoiceorder.Id);
      System.debug(
        '===>数据' +
        LexConInvoicedetailsController.consumableorderdetails1Records
      );

      List<LexConInvoicedetailsController.ConsumableorderdetailsInfo> test = LexConInvoicedetailsController.consumableorderdetails1Records;

      LexConInvoicedetailsController.save(
        JSON.serialize(test),
        invoiceorder.Id,
        testList1.Id
      );
    }
  }
}
