buli
2023-07-14 744f42c5496e656a1f9927740a3b37c0b97a6cba
force-app/main/default/classes/LexSaleOrderControllerTest.cls
@@ -14,112 +14,41 @@
    User userTest;
    User thisUser = [SELECT Id FROM User WHERE Id = :UserInfo.getUserId()];
    System.runAs(thisUser) {
      List<RecordType> rectCo = [
        SELECT Id
        FROM RecordType
        WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '販売店'
      ];
            List<RecordType> rectCo = [SELECT Id FROM RecordType WHERE IsActive = true AND SobjectType = 'Account' AND Name = '販売店'];
      if (rectCo.size() == 0) {
        return;
      }
      List<RecordType> rectHp = [
        SELECT Id
        FROM RecordType
        WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '病院'
      ];
            List<RecordType> rectHp = [SELECT Id FROM RecordType WHERE IsActive = true AND SobjectType = 'Account' AND Name = '病院'];
      if (rectHp.size() == 0) {
        return;
      }
      Profile prof = [
        SELECT Id
        FROM Profile
        WHERE Name = '901_经销商社区普通权限_2重验证(ET)'
      ];
      accountItem1 = new Account(
        Name = 'Testaccount001',
        RecordTypeId = rectCo[0].Id,
        AgentCode_Ext__c = '9999900'
      );
            Profile prof = [SELECT Id FROM Profile WHERE Name ='901_经销商社区普通权限_2重验证(ET)'];
            accountItem1 = new Account(Name='Testaccount001',RecordTypeId = rectCo[0].Id, AgentCode_Ext__c = '9999900');
      insert accountItem1;
      accountItem2 = new Account(
        Name = 'Testaccount002',
        RecordTypeId = rectHp[0].Id,
        AgentCode_Ext__c = '9999999'
      );
            accountItem2 = new Account(Name='Testaccount002',RecordTypeId = rectHp[0].Id, AgentCode_Ext__c = '9999999');
      insert accountItem2;
      Contact core = new Contact(
        email = 'jplumber@salesforce.com',
        firstname = 'Joe',
        lastname = 'Plumber',
        accountId = accountItem1.Id
      );
            Contact core = new Contact(email='jplumber@salesforce.com', firstname='Joe', lastname='Plumber', accountId = accountItem1.Id);
      insert core;
      userTest = 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 = '大连'
      );
            userTest = 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 userTest;
    }
    System.runAs(userTest) {
      String Id = UserInfo.getUserId();
      User thisUserInfo = [
        SELECT accountid, ContactId, Contact.AccountId, Work_Location__c
        FROM User
        WHERE id = :Id
      ];
            User thisUserInfo = [SELECT accountid,ContactId,Contact.AccountId, Work_Location__c FROM User WHERE id =:Id];
      String accountId = thisUserInfo.Contact.AccountId;
      String userWorkLocation = thisUserInfo.Work_Location__c;
      String accountName;
      Account[] accountInfo = [
        SELECT Name
        FROM account
        WHERE id = :accountId
        LIMIT 1
      ];
            Account[] accountInfo = [SELECT Name FROM account WHERE id = :accountId LIMIT 1];
      if (accountInfo.size() > 0) {
        accountName = accountInfo[0].Name;
      }
      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 = 12,
        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 = 12,
        Manual_Entry__c = false
      );
      insert new List<Product2>{ prod01, prod02 };
      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
      );
      insert new List<Product2__c>{ pro1, pro2 };
            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=12,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=12,Manual_Entry__c = false);
            insert new Product2[]{prod01,prod02};
            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);
            insert new Product2__c[] {pro1, pro2};
      Consumable_order__c Order1 = new Consumable_order__c();
      Order1.Name = 'OCM_01_001';
@@ -191,13 +120,7 @@
      Orderdet5.Consumable_Product__c = pro1.Id;
      Orderdet5.Arrive_date__c = Date.today();
      Orderdet5.TracingCode__c = 'EEEEE';
      insert new List<Consumable_order_details2__c>{
        Orderdet1,
        Orderdet2,
        Orderdet3,
        Orderdet4,
        Orderdet5
      };
            insert new Consumable_order_details2__c[] {Orderdet1,Orderdet2,Orderdet3,Orderdet4,Orderdet5};
      Consumable_order__c zsd01 = new Consumable_order__c();
      zsd01.Name = 'ZSD_01_001';
@@ -253,27 +176,12 @@
      orderdetCountMap = new Map<String, Decimal>();
      if (orderdetails.size() > 0) {
        for (Integer i = 0; i < orderdetails.size(); i++) {
          orderpieceorboxMap.put(
            orderdetails[i].Product_Pattern__c,
            orderdetails[i].Box_Piece__c
          );
          if (
            orderdetails[i].Unitprice_To_agency__c != null &&
            orderdetails[i].Unitprice_To_agency__c != 0
          ) {
            orderagencypriceMap.put(
              orderdetails[i].Product_Pattern__c,
              orderdetails[i].Unitprice_To_agency__c
            );
                    orderpieceorboxMap.put(orderdetails[i].Product_Pattern__c, orderdetails[i].Box_Piece__c);
                    if (orderdetails[i].Unitprice_To_agency__c != null && orderdetails[i].Unitprice_To_agency__c != 0) {
                        orderagencypriceMap.put(orderdetails[i].Product_Pattern__c, orderdetails[i].Unitprice_To_agency__c);
          }
          orderpriceMap.put(
            orderdetails[i].Product_Pattern__c,
            orderdetails[i].Delivery_List_RMB__c
          );
          orderdetCountMap.put(
            orderdetails[i].Product_Pattern__c,
            orderdetails[i].Shipment_Count__c
          );
                    orderpriceMap.put(orderdetails[i].Product_Pattern__c, orderdetails[i].Delivery_List_RMB__c);
                    orderdetCountMap.put(orderdetails[i].Product_Pattern__c, orderdetails[i].Shipment_Count__c);
        }
      }
      String ESetId = Order2.Id;
@@ -285,49 +193,14 @@
      Integer a = 0;
      List<LexSaleOrderController.ConsumableorderdetailsInfo> consumableorderdetailsRecords = new List<LexSaleOrderController.ConsumableorderdetailsInfo>();
      Map<String, Integer> msiMap = new Map<String, Integer>();
      LexSaleOrderController.SearchPro(
        Order1,
        barcode1,
        accountName,
        userWorkLocation,
        accountId,
        orderdetails,
        orderpieceorboxMap
      );
            LexSaleOrderController.SearchPro(Order1,barcode1,accountName,userWorkLocation,accountId,orderdetails,orderpieceorboxMap);
      String barcode = '11111250AAAAA\n22222250BBBBB\n33333250CCCCC\n44444250DDDDD\n55555250EEEEE\n666666\n777777\naaa';
      LexSaleOrderController.ParseBarCode(barcode);
      LexSaleOrderController.SearchPro(
        Order2,
        barcode,
        accountName,
        userWorkLocation,
        accountId,
        orderdetails,
        orderpieceorboxMap
      );
      LexSaleOrderController.ProdElivery(
        ESetId,
        Order2,
        barcode,
        accountName,
        userWorkLocation,
        JSON.serialize(consumableorderdetailsRecords),
        orderdetails,
        orderpriceMap,
        orderagencypriceMap
      );
      LexSaleOrderController.ProSale(
        ESetId,
        Order2,
        barcode,
        accountName,
        userWorkLocation,
        JSON.serialize(consumableorderdetailsRecords),
        orderdetails,
        orderpriceMap,
        orderagencypriceMap
      );
            LexSaleOrderController.SearchPro(Order2,barcode,accountName,userWorkLocation,accountId,orderdetails,orderpieceorboxMap);
            LexSaleOrderController.ProdElivery(ESetId,Order2,barcode,accountName,userWorkLocation,JSON.serialize(consumableorderdetailsRecords),orderdetails,orderpriceMap,orderagencypriceMap);
            LexSaleOrderController.ProSale(ESetId,Order2,barcode,accountName,userWorkLocation,JSON.serialize(consumableorderdetailsRecords),orderdetails,orderpriceMap,orderagencypriceMap);
      LexSaleOrderController.Getconsumableorderdetails2Nobox();
      List<LexSaleOrderController.ConsumableorderdetailsInfo> inList = LexSaleOrderController.consumableorderdetailsRecords;
      List<LexSaleOrderController.ConsumableorderdetailsInfo> inList1 = new List<LexSaleOrderController.ConsumableorderdetailsInfo>();
@@ -336,33 +209,28 @@
        inList1.add(ass);
      }
      String errorReason = 'success';
      LexSaleOrderController.ConsumableorderdetailsInfo c2 = new LexSaleOrderController.ConsumableorderdetailsInfo(
        Orderdet1,
        errorReason
      );
            LexSaleOrderController.ConsumableorderdetailsInfo c2 = new LexSaleOrderController.ConsumableorderdetailsInfo(Orderdet1,errorReason);
      c2.orderdetails1 = null;
      c2.orderdetails2 = Orderdet1;
      c2.Prod = Orderdet1.Consumable_product__r;
      c2.oldConsumableCount = Orderdet1.Name;
      c2.ErrorReason = errorReason;
      LexSaleOrderController.ConsumableorderdetailsInfo c1 = new LexSaleOrderController.ConsumableorderdetailsInfo(
        Orderdet2
      );
            LexSaleOrderController.ConsumableorderdetailsInfo c1 = new LexSaleOrderController.ConsumableorderdetailsInfo(Orderdet2);
      c1.orderdetails1 = null;
      c1.orderdetails2 = Orderdet2;
      c1.Prod = Orderdet2.Consumable_product__r;
      c1.oldConsumableCount = Orderdet2.Name;
      c1.compareTo(c2);
      LexSaleOrderController.ConsumableorderdetailsInfo c3 = new LexSaleOrderController.ConsumableorderdetailsInfo(
        Orderdet6
      );
            LexSaleOrderController.ConsumableorderdetailsInfo c3 = new LexSaleOrderController.ConsumableorderdetailsInfo(Orderdet6);
      c3.orderdetails1 = Orderdet6;
      c3.Prod = Orderdet6.Consumable_product__r;
      c3.outboundCount = Orderdet6.Shipment_Count__c;
      System.Test.stopTest();
    }
  }
@@ -374,108 +242,42 @@
    User MyUser_Test;
    User thisUser = [SELECT Id FROM User WHERE Id = :UserInfo.getUserId()];
    System.runAs(thisUser) {
      List<RecordType> rectCo = [
        SELECT Id
        FROM RecordType
        WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '販売店'
      ];
            List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売店'];
      if (rectCo.size() == 0) {
        return;
      }
      Profile prof = [
        SELECT Id
        FROM Profile
        WHERE Name = '901_经销商社区普通权限_2重验证(ET)'
      ];
      RecordType hosCo = [
        SELECT Id
        FROM RecordType
        WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '病院'
      ];
      olympus = new Account(
        RecordTypeId = hosCo.Id,
        AgentCode_Ext__c = '9999900',
        Name = 'olympus'
      );
            Profile prof = [select Id from Profile where Name ='901_经销商社区普通权限_2重验证(ET)'];
            RecordType hosCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院'];
            olympus = new Account(RecordTypeId = hosCo.Id, AgentCode_Ext__c = '9999900', Name = 'olympus');
      insert olympus;
      myAccount2 = new Account(
        Name = 'Testaccount002',
        Dealer_discount__c = 20,
        RecordTypeId = rectCo[0].Id
      );
            myAccount2 = new Account(Name='Testaccount002',Dealer_discount__c =20,RecordTypeId = rectCo[0].Id);
      insert myAccount2;
      Contact core = new Contact(
        email = 'jplumber@salesforce.com',
        firstname = 'Joe',
        lastname = 'Plumber',
        accountid = myAccount2.id
      );
            Contact core = new Contact(email='jplumber@salesforce.com', firstname='Joe',lastname='Plumber',accountid=myAccount2.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 = '大连'
      );
            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) {
        system.runAs(MyUser_Test){
      String Id = UserInfo.getUserId();
      User thisUserInfo = [
        SELECT accountid, ContactId, Contact.AccountId, Work_Location__c
        FROM User
        WHERE id = :Id
      ];
            User thisUserInfo = [SELECT accountid,ContactId,Contact.AccountId, Work_Location__c FROM User WHERE id =:Id];
      String accountId = thisUserInfo.Contact.AccountId;
      String userWorkLocation1 = thisUserInfo.Work_Location__c;
      String accountName = myAccount2.Name;
      System.debug('accountName = ' + accountName);
      System.debug('userWorkLocation1 = ' + userWorkLocation1);
      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 = 12,
        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 = 12,
        Manual_Entry__c = false
      );
      insert new List<Product2>{ prod01, prod02 };
      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
      );
      insert new List<Product2__c>{ pro1, pro2 };
            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=12,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=12,Manual_Entry__c = false);
            insert new Product2[]{prod01,prod02};
            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);
            insert new Product2__c[] {pro1, pro2};
      Consumable_order__c Order1 = new Consumable_order__c();
      Order1.Name = 'OCM_01_001';
      Order1.Order_status__c = '批准';
      Order1.Order_type__c = '订单';
      Order1.RecordTypeid = System.Label.RT_ConOrder_Order;
      Order1.IsShipment__c = true;
            Order1.IsShipment__c = True;
      Order1.OwnerId = MyUser_Test.Id;
      insert Order1;
@@ -485,7 +287,7 @@
      Order2.Order_type__c = '订单';
      Order2.RecordTypeid = System.Label.RT_ConOrder_Order;
      Order2.Dealer_Info__c = myAccount2.Id;
      Order2.IsShipment__c = true;
            Order2.IsShipment__c = True;
      insert Order2;
      Consumable_order__c Order3 = new Consumable_order__c();
@@ -496,7 +298,7 @@
      Order3.Arrive_Order__c = Order1.Id;
      Order3.Dealer_Info__c = myAccount2.Id;
      Order3.SummonsForDirction__c = '直接销售给医院';
      Order3.IsShipment__c = true;
            Order3.IsShipment__c = True;
      insert Order3;
      Consumable_order_details2__c Orderdet = new Consumable_order_details2__c();
@@ -515,7 +317,7 @@
      Orderdet.Box_Piece__c = '盒';
      Orderdet.Return_date__c = null;
      Orderdet.TracingCode__c = '';
      Orderdet.Cancellation_Flag__c = true;
            Orderdet.Cancellation_Flag__c = TRUE;
      Orderdet.Sterilization_limit__c = Date.today().addDays(-1);
      //发货
      Consumable_order_details2__c Orderdet1 = new Consumable_order_details2__c();
@@ -533,7 +335,7 @@
      Orderdet1.Delivery_List_RMB__c = 11.11;
      Orderdet1.Box_Piece__c = '个';
      Orderdet1.TracingCode__c = '';
      Orderdet1.Cancellation_Flag__c = true;
            Orderdet1.Cancellation_Flag__c = TRUE;
      Orderdet1.Sterilization_limit__c = Date.today().addDays(-1);
      //销售
      Consumable_order_details2__c Orderdet2 = new Consumable_order_details2__c();
@@ -549,13 +351,13 @@
      Orderdet2.Consumable_Product__c = pro1.Id;
      Orderdet2.Send_Date__c = null;
      Orderdet2.Used_date__c = null;
      Orderdet2.Lose_Flag__c = false;
            Orderdet2.Lose_Flag__c = FALSE;
      Orderdet2.Return_reason__c = null;
      Orderdet2.Return_date__c = null;
      Orderdet2.Delivery_List_RMB__c = 11;
      Orderdet2.Box_Piece__c = '盒';
      Orderdet2.TracingCode__c = null;
      Orderdet2.Cancellation_Flag__c = true;
            Orderdet2.Cancellation_Flag__c = TRUE;
      Orderdet2.Arrive_date__c = Date.today();
      Orderdet2.Sterilization_limit__c = Date.today().addDays(-1);
      //销售
@@ -582,7 +384,7 @@
      Orderdet3.Send_Date__c = Date.today();
      Orderdet3.Box_Piece__c = '盒';
      Orderdet3.Return_date__c = null;
      Orderdet3.Lose_Flag__c = true;
            Orderdet3.Lose_Flag__c = True;
      Orderdet3.TracingCode__c = 'EEEEE';
      //到货
@@ -633,21 +435,11 @@
      List<Consumable_order_details2__c> newdet2 = new List<Consumable_order_details2__c>();
      newdet2.add(Orderdet);
      insert newdet2;
      insert new List<Consumable_order_details2__c>{
        Orderdet1,
        Orderdet2,
        Orderdet3,
        Orderdet4,
        Orderdet5,
        Orderdet6,
        Orderdet9
      };
            insert new Consumable_order_details2__c[] {Orderdet1,Orderdet2,Orderdet3,Orderdet4,Orderdet5,Orderdet6,Orderdet9};
      List<Consumable_order_details2__c> cod2 = [
        SELECT Id, Arrive_Owner_Work_Location__c
            List<Consumable_order_details2__c> cod2 =  [SELECT Id,Arrive_Owner_Work_Location__c
        FROM Consumable_order_details2__c
        WHERE Id = :Orderdet.Id
      ];
                                                         WHERE Id =: Orderdet.Id];
      System.debug('cod2:' + cod2);
      String userWorkLocation = cod2[0].Arrive_Owner_Work_Location__c;
      System.debug('userWorkLocation:' + userWorkLocation);
@@ -660,89 +452,17 @@
      String key = '';
      orderpieceorboxMap = new Map<String, String>();
      List<Consumable_orderdetails__c> orderdetails = new List<Consumable_orderdetails__c>();
      LexSaleOrderController.SearchPro(
        Order1,
        barcode1,
        accountName,
        userWorkLocation,
        accountId,
        orderdetails,
        orderpieceorboxMap
      );
            LexSaleOrderController.SearchPro(Order1,barcode1,accountName,userWorkLocation,accountId,orderdetails,orderpieceorboxMap);
      String barcode = '1111111111250AAAAA\n2222222222250BBBBB\n3333333333250CCCCC\n4444444444250DDDDD\n5555555555250EEEEE\n6666666666250FFFFF\n7777777777250GGGGG\n8888888888250HHHHH';
      LexSaleOrderController.SearchPro(
        Order2,
        barcode,
        accountName,
        userWorkLocation,
        accountId,
        orderdetails,
        orderpieceorboxMap
      );
            LexSaleOrderController.SearchPro(Order2,barcode,accountName,userWorkLocation,accountId,orderdetails,orderpieceorboxMap);
      String barcode2 = '111111111250AAAAA';
      LexSaleOrderController.SearchPro(
        Order2,
        barcode2,
        accountName,
        userWorkLocation,
        accountId,
        orderdetails,
        orderpieceorboxMap
      );
      LexSaleOrderController.ProdElivery(
        ESetId,
        Order2,
        barcode2,
        accountName,
        userWorkLocation,
        JSON.serialize(LexSaleOrderController.consumableorderdetailsRecords),
        orderdetails,
        orderpriceMap,
        orderagencypriceMap
      );
      LexSaleOrderController.ProSale(
        ESetId,
        Order2,
        barcode2,
        accountName,
        userWorkLocation,
        JSON.serialize(LexSaleOrderController.consumableorderdetailsRecords),
        orderdetails,
        orderpriceMap,
        orderagencypriceMap
      );
            LexSaleOrderController.SearchPro(Order2,barcode2,accountName,userWorkLocation,accountId,orderdetails,orderpieceorboxMap);
            LexSaleOrderController.ProdElivery(ESetId,Order2,barcode2,accountName,userWorkLocation,JSON.serialize(LexSaleOrderController.consumableorderdetailsRecords),orderdetails,orderpriceMap,orderagencypriceMap);
            LexSaleOrderController.ProSale(ESetId,Order2,barcode2,accountName,userWorkLocation,JSON.serialize(LexSaleOrderController.consumableorderdetailsRecords),orderdetails,orderpriceMap,orderagencypriceMap);
      String barcode3 = '3333333333250CCCCC';
      LexSaleOrderController.SearchPro(
        Order3,
        barcode3,
        accountName,
        userWorkLocation,
        accountId,
        orderdetails,
        orderpieceorboxMap
      );
      LexSaleOrderController.ProdElivery(
        ESetId,
        Order3,
        barcode3,
        accountName,
        userWorkLocation,
        JSON.serialize(LexSaleOrderController.consumableorderdetailsRecords),
        orderdetails,
        orderpriceMap,
        orderagencypriceMap
      );
      LexSaleOrderController.ProSale(
        ESetId,
        Order3,
        barcode3,
        accountName,
        userWorkLocation,
        JSON.serialize(LexSaleOrderController.consumableorderdetailsRecords),
        orderdetails,
        orderpriceMap,
        orderagencypriceMap
      );
            LexSaleOrderController.SearchPro(Order3,barcode3,accountName,userWorkLocation,accountId,orderdetails,orderpieceorboxMap);
            LexSaleOrderController.ProdElivery(ESetId,Order3,barcode3,accountName,userWorkLocation,JSON.serialize(LexSaleOrderController.consumableorderdetailsRecords),orderdetails,orderpriceMap,orderagencypriceMap);
            LexSaleOrderController.ProSale(ESetId,Order3,barcode3,accountName,userWorkLocation,JSON.serialize(LexSaleOrderController.consumableorderdetailsRecords),orderdetails,orderpriceMap,orderagencypriceMap);
      LexSaleOrderController.Getconsumableorderdetails2Nobox();
      List<LexSaleOrderController.ConsumableorderdetailsInfo> inList = LexSaleOrderController.consumableorderdetailsRecords;
@@ -752,135 +472,61 @@
        inList1.add(ass);
      }
      String errorReason = 'success';
      LexSaleOrderController.ConsumableorderdetailsInfo c2 = new LexSaleOrderController.ConsumableorderdetailsInfo(
        Orderdet1,
        errorReason
      );
            LexSaleOrderController.ConsumableorderdetailsInfo c2 = new LexSaleOrderController.ConsumableorderdetailsInfo(Orderdet1,errorReason);
      c2.orderdetails1 = null;
      c2.orderdetails2 = Orderdet1;
      c2.Prod = Orderdet1.Consumable_product__r;
      c2.oldConsumableCount = Orderdet1.Name;
      c2.ErrorReason = errorReason;
      LexSaleOrderController.ConsumableorderdetailsInfo c1 = new LexSaleOrderController.ConsumableorderdetailsInfo(
        Orderdet2
      );
            LexSaleOrderController.ConsumableorderdetailsInfo c1 = new LexSaleOrderController.ConsumableorderdetailsInfo(Orderdet2);
      c1.orderdetails1 = null;
      c1.orderdetails2 = Orderdet2;
      c1.Prod = Orderdet2.Consumable_product__r;
      c1.oldConsumableCount = Orderdet2.Name;
      c1.compareTo(c2);
      System.Test.stopTest();
    }
  }
  @isTest
  static void testProSale() {
    StaticParameter.EscapeConsumableOrderDetail2Trigger = true;
    List<RecordType> rectCo = [
      SELECT Id
      FROM RecordType
      WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '販売店'
    ];
        List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売店'];
    if (rectCo.size() == 0) {
      return;
    }
    Profile prof = [
      SELECT Id
      FROM Profile
      WHERE Name = '901_经销商社区普通权限_2重验证(ET)'
    ];
    RecordType hosCo = [
      SELECT Id
      FROM RecordType
      WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '病院'
    ];
    Account olympus = new Account(
      RecordTypeId = hosCo.Id,
      AgentCode_Ext__c = '9999900',
      Name = 'olympus'
    );
        Profile prof = [select Id from Profile where Name ='901_经销商社区普通权限_2重验证(ET)'];
        RecordType hosCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院'];
        Account olympus = new Account(RecordTypeId = hosCo.Id, AgentCode_Ext__c = '9999900', Name = 'olympus');
    insert olympus;
    Account myAccount2 = new Account(
      name = 'Testaccount002',
      Dealer_discount__c = 20,
      RecordTypeId = rectCo[0].Id
    );
        Account myAccount2 = new Account(name='Testaccount002',Dealer_discount__c =20,RecordTypeId = rectCo[0].Id);
    insert myAccount2;
    Contact core = new Contact(
      email = 'jplumber@salesforce.com',
      firstname = 'Joe',
      lastname = 'Plumber',
      accountid = myAccount2.id
    );
        Contact core = new Contact(email='jplumber@salesforce.com', firstname='Joe',lastname='Plumber',accountid=myAccount2.id);
    insert core;
    user 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 = '大连'
    );
        user 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='大连');
    System.runAs(new User(Id = UserInfo.getUserId())) {
      insert MyUser_Test;
    }
    System.runAs(MyUser_Test) {
        system.runAs(MyUser_Test){
      String Id = UserInfo.getUserId();
      User thisUserInfo = [
        SELECT accountid, ContactId, Contact.AccountId, Work_Location__c
        FROM User
        WHERE id = :Id
      ];
            User thisUserInfo = [SELECT accountid,ContactId,Contact.AccountId, Work_Location__c FROM User WHERE id =:Id];
      String accountId = thisUserInfo.Contact.AccountId;
      String userWorkLocation = thisUserInfo.Work_Location__c;
      String accountName;
      Account[] accountInfo = [
        SELECT Name
        FROM account
        WHERE id = :accountId
        LIMIT 1
      ];
            Account[] accountInfo = [SELECT Name FROM account WHERE id = :accountId LIMIT 1];
      if (accountInfo.size() > 0) {
        accountName = accountInfo[0].Name;
      }
      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 = 12,
        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 = 12,
        Manual_Entry__c = false
      );
      insert new List<Product2>{ prod01, prod02 };
      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
      );
      insert new List<Product2__c>{ pro1, pro2 };
            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=12,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=12,Manual_Entry__c = false);
            insert new Product2[]{prod01,prod02};
            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);
            insert new Product2__c[] {pro1, pro2};
      Consumable_order__c Order1 = new Consumable_order__c();
      Order1.Name = 'OCM_01_001';
@@ -888,7 +534,7 @@
      Order1.Order_type__c = '订单';
      Order1.RecordTypeid = System.Label.RT_ConOrder_Order;
      Order1.Dealer_Info__c = myAccount2.Id;
      Order1.IsShipment__c = true;
            Order1.IsShipment__c = True;
      insert Order1;
      Consumable_order__c Order3 = new Consumable_order__c();
@@ -899,7 +545,7 @@
      Order3.Arrive_Order__c = Order1.Id;
      Order3.Dealer_Info__c = myAccount2.Id;
      Order3.SummonsForDirction__c = '直接销售给医院';
      Order3.IsShipment__c = true;
            Order3.IsShipment__c = True;
      insert Order3;
      List<Consumable_orderdetails__c> orderdetails = new List<Consumable_orderdetails__c>();
@@ -943,7 +589,7 @@
      Orderdet.Box_Piece__c = '盒';
      Orderdet.Return_date__c = null;
      Orderdet.TracingCode__c = '';
      Orderdet.Cancellation_Flag__c = true;
            Orderdet.Cancellation_Flag__c = TRUE;
      Orderdet.Sterilization_limit__c = Date.today().addDays(-1);
      //发货
@@ -962,7 +608,7 @@
      Orderdet1.Delivery_List_RMB__c = 11.11;
      Orderdet1.Box_Piece__c = '个';
      Orderdet1.TracingCode__c = '';
      Orderdet1.Cancellation_Flag__c = true;
            Orderdet1.Cancellation_Flag__c = TRUE;
      Orderdet1.Sterilization_limit__c = Date.today().addDays(-1);
      //销售
      Consumable_order_details2__c Orderdet2 = new Consumable_order_details2__c();
@@ -978,13 +624,13 @@
      Orderdet2.Consumable_Product__c = pro1.Id;
      Orderdet2.Send_Date__c = null;
      Orderdet2.Used_date__c = null;
      Orderdet2.Lose_Flag__c = false;
            Orderdet2.Lose_Flag__c = FALSE;
      Orderdet2.Return_reason__c = null;
      Orderdet2.Return_date__c = null;
      Orderdet2.Delivery_List_RMB__c = 11;
      Orderdet2.Box_Piece__c = '盒';
      Orderdet2.TracingCode__c = null;
      Orderdet2.Cancellation_Flag__c = true;
            Orderdet2.Cancellation_Flag__c = TRUE;
      Orderdet2.Arrive_date__c = Date.today();
      Orderdet2.Sterilization_limit__c = Date.today().addDays(-1);
      //销售
@@ -1012,18 +658,13 @@
      Orderdet3.Send_Date__c = Date.today();
      Orderdet3.Box_Piece__c = '盒';
      Orderdet3.Return_date__c = null;
      Orderdet3.Lose_Flag__c = true;
            Orderdet3.Lose_Flag__c = True;
      Orderdet3.TracingCode__c = 'EEEEE';
      List<Consumable_order_details2__c> newdet2 = new List<Consumable_order_details2__c>();
      newdet2.add(Orderdet);
      insert newdet2;
      insert new List<Consumable_order_details2__c>{
        Orderdet1,
        Orderdet2,
        Orderdet3,
        Orderdet9
      };
            insert new Consumable_order_details2__c[] {Orderdet1,Orderdet2,Orderdet3,Orderdet9};
      Map<String, object> data = new Map<String, object>();
      String ESetId = Order3.Id;
@@ -1034,47 +675,12 @@
      Integer i = 0;
      Decimal a = 0;
      orderpieceorboxMap = new Map<String, String>();
      LexSaleOrderController.SearchPro(
        Order1,
        barcode1,
        accountName,
        userWorkLocation,
        accountId,
        orderdetails,
        orderpieceorboxMap
      );
            LexSaleOrderController.SearchPro(Order1,barcode1,accountName,userWorkLocation,accountId,orderdetails,orderpieceorboxMap);
      String barcode = '1111111111250AAAAA\n2222222222250BBBBB\n3333333333250CCCCC\n4444444444250DDDDD\n5555555555250EEEEE';
      LexSaleOrderController.SearchPro(
        Order3,
        barcode,
        accountName,
        userWorkLocation,
        accountId,
        orderdetails,
        orderpieceorboxMap
      );
      LexSaleOrderController.ProdElivery(
        ESetId,
        Order3,
        barcode,
        accountName,
        userWorkLocation,
        JSON.serialize(LexSaleOrderController.consumableorderdetailsRecords),
        orderdetails,
        orderpriceMap,
        orderagencypriceMap
      );
      LexSaleOrderController.ProSale(
        ESetId,
        Order3,
        barcode,
        accountName,
        userWorkLocation,
        JSON.serialize(LexSaleOrderController.consumableorderdetailsRecords),
        orderdetails,
        orderpriceMap,
        orderagencypriceMap
      );
            LexSaleOrderController.SearchPro(Order3,barcode,accountName,userWorkLocation,accountId,orderdetails,orderpieceorboxMap);
            LexSaleOrderController.ProdElivery(ESetId,Order3,barcode,accountName,userWorkLocation,JSON.serialize(LexSaleOrderController.consumableorderdetailsRecords),orderdetails,orderpriceMap,orderagencypriceMap);
            LexSaleOrderController.ProSale(ESetId,Order3,barcode,accountName,userWorkLocation,JSON.serialize(LexSaleOrderController.consumableorderdetailsRecords),orderdetails,orderpriceMap,orderagencypriceMap);
      List<LexSaleOrderController.ConsumableorderdetailsInfo> inList = LexSaleOrderController.consumableorderdetailsRecords;
      List<LexSaleOrderController.ConsumableorderdetailsInfo> inList1 = new List<LexSaleOrderController.ConsumableorderdetailsInfo>();
@@ -1084,147 +690,61 @@
      }
      String errorReason = 'success';
      LexSaleOrderController.ConsumableorderdetailsInfo c2 = new LexSaleOrderController.ConsumableorderdetailsInfo(
        Orderdet1,
        errorReason
      );
            LexSaleOrderController.ConsumableorderdetailsInfo c2 = new LexSaleOrderController.ConsumableorderdetailsInfo(Orderdet1,errorReason);
      c2.orderdetails1 = null;
      c2.orderdetails2 = Orderdet1;
      c2.Prod = Orderdet1.Consumable_product__r;
      c2.oldConsumableCount = Orderdet1.Name;
      c2.ErrorReason = errorReason;
      LexSaleOrderController.ConsumableorderdetailsInfo c1 = new LexSaleOrderController.ConsumableorderdetailsInfo(
        Orderdet2
      );
            LexSaleOrderController.ConsumableorderdetailsInfo c1 = new LexSaleOrderController.ConsumableorderdetailsInfo(Orderdet2);
      c1.orderdetails1 = null;
      c1.orderdetails2 = Orderdet2;
      c1.Prod = Orderdet2.Consumable_product__r;
      c1.oldConsumableCount = Orderdet2.Name;
      c1.compareTo(c2);
      System.Test.stopTest();
    }
  }
  @isTest
  static void testProdError() {
    List<RecordType> rectCo = [
      SELECT Id
      FROM RecordType
      WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '販売店'
    ];
        List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売店'];
    if (rectCo.size() == 0) {
      return;
    }
    Profile prof = [
      SELECT Id
      FROM Profile
      WHERE Name = '901_经销商社区普通权限_2重验证(ET)'
    ];
    RecordType hosCo = [
      SELECT Id
      FROM RecordType
      WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '病院'
    ];
    Account olympus = new Account(
      RecordTypeId = hosCo.Id,
      AgentCode_Ext__c = '9999900',
      Name = 'olympus'
    );
        Profile prof = [select Id from Profile where Name ='901_经销商社区普通权限_2重验证(ET)'];
        RecordType hosCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院'];
        Account olympus = new Account(RecordTypeId = hosCo.Id, AgentCode_Ext__c = '9999900', Name = 'olympus');
    insert olympus;
    Account myAccount2 = new Account(
      name = 'Testaccount002',
      Dealer_discount__c = 20,
      RecordTypeId = rectCo[0].Id
    );
        Account myAccount2 = new Account(name='Testaccount002',Dealer_discount__c =20,RecordTypeId = rectCo[0].Id);
    insert myAccount2;
    Contact core = new Contact(
      email = 'jplumber@salesforce.com',
      firstname = 'Joe',
      lastname = 'Plumber',
      accountid = myAccount2.id
    );
        Contact core = new Contact(email='jplumber@salesforce.com', firstname='Joe',lastname='Plumber',accountid=myAccount2.id);
    insert core;
    user 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',
      Work_Location__c = '大连'
    );
        user 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', Work_Location__c='大连');
    System.runAs(new User(Id = UserInfo.getUserId())) {
      insert MyUser_Test;
    }
    //订单
    System.runAs(MyUser_Test) {
        system.runAs(MyUser_Test){
      String Id = UserInfo.getUserId();
      User thisUserInfo = [
        SELECT accountid, ContactId, Contact.AccountId, Work_Location__c
        FROM User
        WHERE id = :Id
      ];
            User thisUserInfo = [SELECT accountid,ContactId,Contact.AccountId, Work_Location__c FROM User WHERE id =:Id];
      String accountId = thisUserInfo.Contact.AccountId;
      String userWorkLocation = thisUserInfo.Work_Location__c;
      String accountName;
      Account[] accountInfo = [
        SELECT Name
        FROM account
        WHERE id = :accountId
        LIMIT 1
      ];
            Account[] accountInfo = [SELECT Name FROM account WHERE id = :accountId LIMIT 1];
      if (accountInfo.size() > 0) {
        accountName = accountInfo[0].Name;
      }
      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 = 12,
        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 = 12,
        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 = 12,
        Manual_Entry__c = false
      );
      insert new List<Product2>{ prod01, prod02, prod03 };
      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 = 'Pro003',
        OT_CODE_Text__c = 'Test003',
        Product2__c = prod03.Id
      );
      insert new List<Product2__c>{ pro1, pro2, pro3 };
            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=12,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=12,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=12,Manual_Entry__c = false);
            insert new Product2[]{prod01,prod02,prod03};
            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='Pro003',OT_CODE_Text__c='Test003',Product2__c = prod03.Id);
            insert new Product2__c[] {pro1, pro2,pro3};
      //出库单
      Consumable_order__c Order1 = new Consumable_order__c();
      Order1.Name = 'OCM_01_001';
@@ -1347,12 +867,7 @@
      List<Consumable_order_details2__c> newdet2 = new List<Consumable_order_details2__c>();
      newdet2.add(Orderdets1);
      insert newdet2;
      insert new List<Consumable_order_details2__c>{
        Orderdets2,
        Orderdets3,
        Orderdets4,
        Orderdets5
      };
            insert new Consumable_order_details2__c[] {Orderdets2,Orderdets3,Orderdets4,Orderdets5};
      List<String> barCodeListP = new List<String>();
      Map<String, object> data = new Map<String, object>();
@@ -1367,37 +882,9 @@
      String key = '';
      Integer idx = 0;
      orderpieceorboxMap = new Map<String, String>();
      LexSaleOrderController.SearchPro(
        Order1,
        barcode,
        accountName,
        userWorkLocation,
        accountId,
        orderdetails,
        orderpieceorboxMap
      );
      LexSaleOrderController.ProdElivery(
        ESetId,
        Order1,
        barcode,
        accountName,
        userWorkLocation,
        JSON.serialize(LexSaleOrderController.consumableorderdetailsRecords),
        orderdetails,
        orderpriceMap,
        orderagencypriceMap
      );
      LexSaleOrderController.ProSale(
        ESetId,
        Order1,
        barcode,
        accountName,
        userWorkLocation,
        JSON.serialize(LexSaleOrderController.consumableorderdetailsRecords),
        orderdetails,
        orderpriceMap,
        orderagencypriceMap
      );
            LexSaleOrderController.SearchPro(Order1,barcode,accountName,userWorkLocation,accountId,orderdetails,orderpieceorboxMap);
            LexSaleOrderController.ProdElivery(ESetId,Order1,barcode,accountName,userWorkLocation,JSON.serialize(LexSaleOrderController.consumableorderdetailsRecords),orderdetails,orderpriceMap,orderagencypriceMap);
            LexSaleOrderController.ProSale(ESetId,Order1,barcode,accountName,userWorkLocation,JSON.serialize(LexSaleOrderController.consumableorderdetailsRecords),orderdetails,orderpriceMap,orderagencypriceMap);
      System.Test.stopTest();
    }
@@ -1405,87 +892,28 @@
  @isTest
  static void searchTest1() {
    List<RecordType> rectCo = [
      SELECT Id
      FROM RecordType
      WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '販売店'
    ];
        List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売店'];
    if (rectCo.size() == 0) {
      return;
    }
    Profile prof = [
      SELECT Id
      FROM Profile
      WHERE Name = '901_经销商社区普通权限_2重验证(ET)'
    ];
    Account myAccount2 = new Account(
      name = 'Testaccount002',
      Dealer_discount__c = 20,
      RecordTypeId = rectCo[0].Id,
      AgentCode_Ext__c = '9999900'
    );
    Account myAccount1 = new Account(
      name = 'Testaccount001',
      Dealer_discount__c = 30,
      RecordTypeId = rectCo[0].Id
    );
    insert new List<account>{ myAccount1, myAccount2 };
    Contact core = new Contact(
      email = 'jplumber@salesforce.com',
      firstname = 'Joe',
      lastname = 'Plumber',
      accountid = myAccount1.id
    );
      Profile prof = [select Id from Profile where Name ='901_经销商社区普通权限_2重验证(ET)'];
      Account myAccount2 = new Account(name='Testaccount002',Dealer_discount__c =20,RecordTypeId = rectCo[0].Id,AgentCode_Ext__c = '9999900');
      Account myAccount1 = new Account(name='Testaccount001',Dealer_discount__c =30,RecordTypeId = rectCo[0].Id);
      insert new account[]{myAccount1,myAccount2};
      Contact core = new Contact(email='jplumber@salesforce.com', firstname='Joe',lastname='Plumber',accountid=myAccount1.id);
    insert core;
    user 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 = 'ET',
      Work_Location__c = '北京'
    );
      user 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 = 'ET',Work_Location__c='北京');
    System.runAs(new User(Id = UserInfo.getUserId())) {
      insert MyUser_Test;
    }
    System.runAs(MyUser_Test) {
      Product2 prod01 = new Product2(
        Name = 'Test01',
        ProductCode = 'Test01',
        Asset_Model_No__c = 'Test01',
        SFDA_Status__c = '有効',
        JANCODE__c = '04953170200311',
        Dealer_special_Object__c = true,
        Manual_Entry__c = false
      );
      Product2 prod02 = new Product2(
        Name = 'Test02',
        ProductCode = 'Test02',
        Asset_Model_No__c = 'Test02',
        SFDA_Status__c = '有効',
        JANCODE__c = '04953170200312',
        Dealer_special_Object__c = true,
        Manual_Entry__c = false
      );
      insert new List<Product2>{ prod01, prod02 };
      Product2__c pro1 = new Product2__c(
        Name = 'Pro001',
        OT_CODE_Text__c = 'N3047730',
        Product2__c = prod01.Id
      );
      Product2__c pro2 = new Product2__c(
        Name = 'Pro002',
        OT_CODE_Text__c = 'N3047731',
        Product2__c = prod02.Id
      );
      insert new List<Product2__c>{ pro1, pro2 };
            Product2 prod01 = new Product2(Name='Test01',ProductCode='Test01',Asset_Model_No__c = 'Test01',SFDA_Status__c = '有効',JANCODE__c = '04953170200311',Dealer_special_Object__c = true,Manual_Entry__c = false);
         Product2 prod02 = new Product2(Name='Test02',ProductCode='Test02',Asset_Model_No__c = 'Test02',SFDA_Status__c = '有効',JANCODE__c = '04953170200312',Dealer_special_Object__c = true,Manual_Entry__c = false);
         insert new Product2[] {prod01,prod02};
         Product2__c pro1 = new Product2__c(Name='Pro001',OT_CODE_Text__c='N3047730',Product2__c = prod01.Id);
         Product2__c pro2 = new Product2__c(Name='Pro002',OT_CODE_Text__c='N3047731',Product2__c = prod02.Id);
         insert new Product2__c[] {pro1, pro2};
      hospitalprice__c hp1 = new hospitalprice__c();
      hp1.hospital__c = myAccount1.Id;
@@ -1556,128 +984,39 @@
      List<Consumable_orderdetails__c> orderdetails = new List<Consumable_orderdetails__c>();
      orderdetails.add(Orderdet);
      LexSaleOrderController.GoodsDeliveryInit(Order1.Id);
      String condetailList = JSON.serialize(
        LexSaleOrderController.consumableorderdetailsRecords
      );
            String condetailList = JSON.serialize(LexSaleOrderController.consumableorderdetailsRecords);
      Order1.Arrive_Order__c = null;
      LexSaleOrderController.SearchPro(
        Order1,
        '01049531702003111115120017181000105ZK250BXJRF',
        myAccount1.Name,
        '',
        myAccount1.Id,
        LexSaleOrderController.orderdetails,
        LexSaleOrderController.orderpieceorboxMap
      );
      LexSaleOrderController.ProdElivery(
        Order1.Id,
        LexSaleOrderController.coc,
        '01049531702003111115120017181000105ZK250BXJRF',
        myAccount1.Name,
        '',
        condetailList,
        LexSaleOrderController.orderdetails,
        LexSaleOrderController.orderpriceMap,
        LexSaleOrderController.orderagencypriceMap
      );
      LexSaleOrderController.ProSale(
        Order1.Id,
        LexSaleOrderController.coc,
        '01049531702003111115120017181000105ZK250BXJRF',
        myAccount1.Name,
        '',
        condetailList,
        LexSaleOrderController.orderdetails,
        LexSaleOrderController.orderpriceMap,
        LexSaleOrderController.orderagencypriceMap
      );
         LexSaleOrderController.SearchPro(Order1, '01049531702003111115120017181000105ZK250BXJRF', myAccount1.Name, '', myAccount1.Id, LexSaleOrderController.orderdetails, LexSaleOrderController.orderpieceorboxMap);
         LexSaleOrderController.ProdElivery(Order1.Id, LexSaleOrderController.coc, '01049531702003111115120017181000105ZK250BXJRF', myAccount1.Name, '', condetailList, LexSaleOrderController.orderdetails, LexSaleOrderController.orderpriceMap, LexSaleOrderController.orderagencypriceMap);
            LexSaleOrderController.ProSale(Order1.Id, LexSaleOrderController.coc, '01049531702003111115120017181000105ZK250BXJRF', myAccount1.Name, '', condetailList, LexSaleOrderController.orderdetails, LexSaleOrderController.orderpriceMap, LexSaleOrderController.orderagencypriceMap);
      System.Test.stopTest();
    }
  }
  @isTest
  static void searchTest2() {
    List<RecordType> rectCo = [
      SELECT Id
      FROM RecordType
      WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '販売店'
    ];
        List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売店'];
    if (rectCo.size() == 0) {
      return;
    }
    Profile prof = [
      SELECT Id
      FROM Profile
      WHERE Name = '901_经销商社区普通权限_2重验证(ET)'
    ];
    Account myAccount2 = new Account(
      name = 'Testaccount002',
      Dealer_discount__c = 20,
      RecordTypeId = rectCo[0].Id,
      AgentCode_Ext__c = '9999900'
    );
    Account myAccount1 = new Account(
      name = 'Testaccount001',
      Dealer_discount__c = 30,
      RecordTypeId = rectCo[0].Id
    );
    insert new List<account>{ myAccount1, myAccount2 };
    Contact core = new Contact(
      email = 'jplumber@salesforce.com',
      firstname = 'Joe',
      lastname = 'Plumber',
      accountid = myAccount1.id
    );
      Profile prof = [select Id from Profile where Name ='901_经销商社区普通权限_2重验证(ET)'];
      Account myAccount2 = new Account(name='Testaccount002',Dealer_discount__c =20,RecordTypeId = rectCo[0].Id,AgentCode_Ext__c = '9999900');
      Account myAccount1 = new Account(name='Testaccount001',Dealer_discount__c =30,RecordTypeId = rectCo[0].Id);
      insert new account[]{myAccount1,myAccount2};
      Contact core = new Contact(email='jplumber@salesforce.com', firstname='Joe',lastname='Plumber',accountid=myAccount1.id);
    insert core;
    user 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 = 'ET',
      Work_Location__c = '北京'
    );
      user 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 = 'ET',Work_Location__c='北京');
    System.runAs(new User(Id = UserInfo.getUserId())) {
      insert MyUser_Test;
    }
    System.runAs(MyUser_Test) {
      Product2 prod01 = new Product2(
        Name = 'Test01',
        ProductCode = 'Test01',
        Asset_Model_No__c = 'Test01',
        SFDA_Status__c = '有効',
        JANCODE__c = '04953170200311',
        Dealer_special_Object__c = true,
        Manual_Entry__c = false
      );
      Product2 prod02 = new Product2(
        Name = 'Test02',
        ProductCode = 'Test02',
        Asset_Model_No__c = 'Test02',
        SFDA_Status__c = '有効',
        JANCODE__c = '04953170200312',
        Dealer_special_Object__c = true,
        Manual_Entry__c = false
      );
      insert new List<Product2>{ prod01, prod02 };
      Product2__c pro1 = new Product2__c(
        Name = 'Pro001',
        OT_CODE_Text__c = 'N3047730',
        Product2__c = prod01.Id
      );
      Product2__c pro2 = new Product2__c(
        Name = 'Pro002',
        OT_CODE_Text__c = 'N3047731',
        Product2__c = prod02.Id
      );
      insert new List<Product2__c>{ pro1, pro2 };
            Product2 prod01 = new Product2(Name='Test01',ProductCode='Test01',Asset_Model_No__c = 'Test01',SFDA_Status__c = '有効',JANCODE__c = '04953170200311',Dealer_special_Object__c = true,Manual_Entry__c = false);
         Product2 prod02 = new Product2(Name='Test02',ProductCode='Test02',Asset_Model_No__c = 'Test02',SFDA_Status__c = '有効',JANCODE__c = '04953170200312',Dealer_special_Object__c = true,Manual_Entry__c = false);
         insert new Product2[] {prod01,prod02};
         Product2__c pro1 = new Product2__c(Name='Pro001',OT_CODE_Text__c='N3047730',Product2__c = prod01.Id);
         Product2__c pro2 = new Product2__c(Name='Pro002',OT_CODE_Text__c='N3047731',Product2__c = prod02.Id);
         insert new Product2__c[] {pro1, pro2};
      hospitalprice__c hp1 = new hospitalprice__c();
      hp1.hospital__c = myAccount1.Id;
@@ -1737,20 +1076,8 @@
      orderdetails.add(Orderdet);
      LexSaleOrderController.GoodsDeliveryInit(Order1.Id);
      LexSaleOrderController.consumableorderdetailsRecords[0].outboundCount = 1;
      String condetailList = JSON.serialize(
        LexSaleOrderController.consumableorderdetailsRecords
      );
      LexSaleOrderController.ProdElivery(
        Order1.Id,
        LexSaleOrderController.coc,
        '01049531702003111115120017181000105ZK250BXJRF',
        myAccount1.Name,
        '',
        condetailList,
        LexSaleOrderController.orderdetails,
        LexSaleOrderController.orderpriceMap,
        LexSaleOrderController.orderagencypriceMap
      );
            String condetailList = JSON.serialize(LexSaleOrderController.consumableorderdetailsRecords);
            LexSaleOrderController.ProdElivery(Order1.Id, LexSaleOrderController.coc, '01049531702003111115120017181000105ZK250BXJRF', myAccount1.Name, '', condetailList, LexSaleOrderController.orderdetails, LexSaleOrderController.orderpriceMap, LexSaleOrderController.orderagencypriceMap);
      // LexSaleOrderController.ProSale(Order1.Id, LexSaleOrderController.coc, '01049531702003111115120017181000105ZK250BXJRF', myAccount1.Name, '', condetailList, LexSaleOrderController.orderdetails, LexSaleOrderController.orderpriceMap, LexSaleOrderController.orderagencypriceMap);
      System.Test.stopTest();
    }
@@ -1758,87 +1085,28 @@
  @isTest
  static void searchTest3() {
    List<RecordType> rectCo = [
      SELECT Id
      FROM RecordType
      WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '販売店'
    ];
        List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売店'];
    if (rectCo.size() == 0) {
      return;
    }
    Profile prof = [
      SELECT Id
      FROM Profile
      WHERE Name = '901_经销商社区普通权限_2重验证(ET)'
    ];
    Account myAccount2 = new Account(
      name = 'Testaccount002',
      Dealer_discount__c = 20,
      RecordTypeId = rectCo[0].Id,
      AgentCode_Ext__c = '9999900'
    );
    Account myAccount1 = new Account(
      name = 'Testaccount001',
      Dealer_discount__c = 30,
      RecordTypeId = rectCo[0].Id
    );
    insert new List<account>{ myAccount1, myAccount2 };
    Contact core = new Contact(
      email = 'jplumber@salesforce.com',
      firstname = 'Joe',
      lastname = 'Plumber',
      accountid = myAccount1.id
    );
      Profile prof = [select Id from Profile where Name ='901_经销商社区普通权限_2重验证(ET)'];
      Account myAccount2 = new Account(name='Testaccount002',Dealer_discount__c =20,RecordTypeId = rectCo[0].Id,AgentCode_Ext__c = '9999900');
      Account myAccount1 = new Account(name='Testaccount001',Dealer_discount__c =30,RecordTypeId = rectCo[0].Id);
      insert new account[]{myAccount1,myAccount2};
      Contact core = new Contact(email='jplumber@salesforce.com', firstname='Joe',lastname='Plumber',accountid=myAccount1.id);
    insert core;
    user 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 = 'ET',
      Work_Location__c = '北京'
    );
      user 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 = 'ET',Work_Location__c='北京');
    System.runAs(new User(Id = UserInfo.getUserId())) {
      insert MyUser_Test;
    }
    System.runAs(MyUser_Test) {
      Product2 prod01 = new Product2(
        Name = 'Test01',
        ProductCode = 'Test01',
        Asset_Model_No__c = 'Test01',
        SFDA_Status__c = '有効',
        JANCODE__c = '04953170200311',
        Dealer_special_Object__c = true,
        Manual_Entry__c = false
      );
      Product2 prod02 = new Product2(
        Name = 'Test02',
        ProductCode = 'Test02',
        Asset_Model_No__c = 'Test02',
        SFDA_Status__c = '有効',
        JANCODE__c = '04953170200312',
        Dealer_special_Object__c = true,
        Manual_Entry__c = false
      );
      insert new List<Product2>{ prod01, prod02 };
      Product2__c pro1 = new Product2__c(
        Name = 'Pro001',
        OT_CODE_Text__c = 'N3047730',
        Product2__c = prod01.Id
      );
      Product2__c pro2 = new Product2__c(
        Name = 'Pro002',
        OT_CODE_Text__c = 'N3047731',
        Product2__c = prod02.Id
      );
      insert new List<Product2__c>{ pro1, pro2 };
            Product2 prod01 = new Product2(Name='Test01',ProductCode='Test01',Asset_Model_No__c = 'Test01',SFDA_Status__c = '有効',JANCODE__c = '04953170200311',Dealer_special_Object__c = true,Manual_Entry__c = false);
         Product2 prod02 = new Product2(Name='Test02',ProductCode='Test02',Asset_Model_No__c = 'Test02',SFDA_Status__c = '有効',JANCODE__c = '04953170200312',Dealer_special_Object__c = true,Manual_Entry__c = false);
         insert new Product2[] {prod01,prod02};
         Product2__c pro1 = new Product2__c(Name='Pro001',OT_CODE_Text__c='N3047730',Product2__c = prod01.Id);
         Product2__c pro2 = new Product2__c(Name='Pro002',OT_CODE_Text__c='N3047731',Product2__c = prod02.Id);
         insert new Product2__c[] {pro1, pro2};
      hospitalprice__c hp1 = new hospitalprice__c();
      hp1.hospital__c = myAccount1.Id;
@@ -1898,21 +1166,9 @@
      orderdetails.add(Orderdet);
      LexSaleOrderController.GoodsDeliveryInit(Order1.Id);
      LexSaleOrderController.consumableorderdetailsRecords[0].outboundCount = 1;
      String condetailList = JSON.serialize(
        LexSaleOrderController.consumableorderdetailsRecords
      );
            String condetailList = JSON.serialize(LexSaleOrderController.consumableorderdetailsRecords);
      // LexSaleOrderController.ProdElivery(Order1.Id, LexSaleOrderController.coc, '01049531702003111115120017181000105ZK250BXJRF', myAccount1.Name, '', condetailList, LexSaleOrderController.orderdetails, LexSaleOrderController.orderpriceMap, LexSaleOrderController.orderagencypriceMap);
      LexSaleOrderController.ProSale(
        Order1.Id,
        LexSaleOrderController.coc,
        '01049531702003111115120017181000105ZK250BXJRF',
        myAccount1.Name,
        '',
        condetailList,
        LexSaleOrderController.orderdetails,
        LexSaleOrderController.orderpriceMap,
        LexSaleOrderController.orderagencypriceMap
      );
            LexSaleOrderController.ProSale(Order1.Id, LexSaleOrderController.coc, '01049531702003111115120017181000105ZK250BXJRF', myAccount1.Name, '', condetailList, LexSaleOrderController.orderdetails, LexSaleOrderController.orderpriceMap, LexSaleOrderController.orderagencypriceMap);
      System.Test.stopTest();
    }
  }