@isTest
public  class LexInventoryViewControllerTest {
    static testMethod void testInnerClass(){
        List<LexInventoryViewController.ConsumableorderdetailsInfo> cro = new List<LexInventoryViewController.ConsumableorderdetailsInfo>();
        cro.sort();   
    }
	static testMethod void LexInventoryViewControllerTest(){
        user myUser_test;
        Account myAccount1;
        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;
            }
            
             myAccount1 = new Account(name='testaccount001',RecordTypeId = rectCo[0].Id,Product_Limit_Date__c = 'Test01|2|4,Test02|3|5' ,AgentCode_Ext__c = '9999900');
            insert myAccount1;
            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',Work_Location__c = '深圳');
            insert myUser_test;
        }
            System.runAs(myUser_test) {
                Product2 prod01 = new Product2(Name='3400PK:PK针 5mmx33cm',ProductCode='Test01',Asset_Model_No__c = '3400PK:PK针 5mmx33cm',SFDA_Status__c = '有効',Dealer_special_Object__c = true,SFDA_Approbation_No__c = 'Test001',Packing_list_manual__c = 1,SFDA_Expiration_Date__c= Date.today(),Category5__c = 'tset',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,SFDA_Approbation_No__c = 'Test002',Packing_list_manual__c = 12,SFDA_Expiration_Date__c= Date.today(),Category5__c = 'tset',Manual_Entry__c = false);
                insert new Product2[]{prod01,prod02};
                Product2__c pro1 = new Product2__c(Name='3400PK:PK针 5mmx33cm',OT_CODE_Text__c='Test001',Product2__c = prod01.Id,Category3_text__c = '腹腔镜手术',Category4_text__c = 'PK',Category5_text__c = 'G400');
                Product2__c pro2 = new Product2__c(Name='Pro002',OT_CODE_Text__c='Test002',Product2__c = prod02.Id,Category3_text__c = '腹腔镜手术',Category4_text__c = 'PK',Category5_text__c = 'G400');
                insert new Product2__c[] {pro1, pro2};
                System.debug('pro2===》'+pro2);
                System.debug('pro1===》'+pro1);

                Consumable_order__c Order1 = new Consumable_order__c();
                Order1.Name = 'OCM_01_001';
                Order1.Order_status__c = '批准';
                Order1.Order_type__c = '订单';
                Order1.Dealer_Info__c = myAccount1.Id;
                Order1.RecordTypeid = System.Label.RT_ConOrder_Inventory;
                Order1.Order_ProType__c = 'ET';
                insert Order1;

                Consumable_order__c Order2 = new Consumable_order__c();
                Order2.Name = 'OCM_01_001';
                Order2.Order_status__c = '批准';
                Order2.Order_type__c = '订单';
                Order2.Dealer_Info__c = myAccount1.Id;
                Order2.RecordTypeid = System.Label.RT_ConOrder_Inventory;
                Order2.Order_ProType__c = 'ENg';
                insert Order2;
    
                Consumable_order_details2__c Orderdet1 = new Consumable_order_details2__c();
                Orderdet1.Name = 'OCM_01_001001';
                //Orderdet1.Consumable_principal__c = Order1.Id;
                Orderdet1.Consumable_order_minor__c = Order1.Id;
                Orderdet1.Consumable_Product__c = pro1.Id;
                Orderdet1.Consumable_Arrived_order__c = Order1.Id;
                //Orderdet1.IsArrival__c = true;
                Orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery;
                Orderdet1.Bar_Code__c = '11111';
                Orderdet1.Arrive_date__c = Date.today().addDays(1);
                Orderdet1.Send_Date__c = null;
                Orderdet1.Used_date__c = null;
                Orderdet1.Lose_Flag__c = false;
                Orderdet1.Box_Piece__c = '盒';
    
                Consumable_order_details2__c Orderdet2 = new Consumable_order_details2__c();
                Orderdet2.Name = 'OCM_01_001002';
                //Orderdet2.Consumable_principal__c = Order1.Id;
                Orderdet2.Consumable_order_minor__c = Order1.Id;
                Orderdet2.Consumable_Product__c = pro1.Id;
                Orderdet2.Consumable_Arrived_order__c = Order1.Id;
                //Orderdet2.IsArrival__c = true;
                Orderdet2.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery;
                Orderdet2.Bar_Code__c = '22222';
                Orderdet2.Arrive_date__c = Date.today().addDays(1);
                Orderdet2.Send_Date__c = null;
                Orderdet2.Used_date__c = null;
                Orderdet2.Lose_Flag__c = false;
                Orderdet2.Box_Piece__c = '个';
                Orderdet2.Sterilization_limit__c= Date.today();
    
                Consumable_order_details2__c Orderdet3 = new Consumable_order_details2__c();
                Orderdet3.Name = 'OCM_01_001003';
                //Orderdet3.Consumable_principal__c = Order1.Id;
                Orderdet3.Consumable_order_minor__c = Order1.Id;
                Orderdet3.Consumable_Product__c = pro2.Id;
                Orderdet3.Consumable_Arrived_order__c = Order1.Id;
                //Orderdet3.IsArrival__c = true;
                Orderdet3.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery;
                Orderdet3.Bar_Code__c = '33333';
                Orderdet3.Arrive_date__c = Date.today().addDays(1);
                Orderdet3.Send_Date__c = null;
                Orderdet3.Used_date__c = null;
                Orderdet3.Lose_Flag__c = false;
                Orderdet3.Box_Piece__c = '个';
                Orderdet3.Sterilization_limit__c= Date.today();
    
                Consumable_order_details2__c Orderdet4 = new Consumable_order_details2__c();
                Orderdet4.Name = 'OCM_01_001004';
                //Orderdet4.Consumable_principal__c = Order1.Id;
                Orderdet4.Consumable_order_minor__c = Order1.Id;
                Orderdet4.Consumable_Product__c = pro1.Id;
                Orderdet4.Consumable_Arrived_order__c = Order1.Id;
                //Orderdet4.IsArrival__c = true;
                Orderdet4.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery;
                Orderdet4.Bar_Code__c = '44444';
                Orderdet4.Arrive_date__c = Date.today().addDays(1);
                Orderdet4.Send_Date__c = null;
                Orderdet4.Used_date__c = null;
                Orderdet4.Lose_Flag__c = false;
                Orderdet4.Box_Piece__c = '个';
    
                insert new Consumable_order_details2__c[] {Orderdet1, Orderdet2,Orderdet3,Orderdet4};

                //制作盘点履历
                List<Consumable_order__c> InsPDlist = new List<Consumable_order__c>();
                for(integer i = 1 ; i < 35 ;i++){
                    String str = string.valueOf(i);
                    if(str.length() == 1){
                        str = '0' + str;
                    }
                    Consumable_order__c PDlist = new Consumable_order__c(name='testPandianLVL_'+str);
                    //Date ThisDate = Date.newInstance(2016,4,20+i/5);
                    //PDlist.Inventory_date__c = ThisDate;
                    PDlist.Order_type__c = '盘点';
                    PDlist.RecordTypeid = System.Label.RT_ConOrder_Inventory;
                    PDlist.Inventory_date__c = Date.today().addDays(-i);
                    PDlist.Dealer_Info__c = myAccount1.Id;
                    InsPDlist.add(PDlist);
                }
                List<String> orderDetZaikuListLWC = new List<String>();           
                LexInventoryViewController controller = new LexInventoryViewController();
                Integer pageSizeLWC = 1;
                Integer pageTokenLWC = 0;
                String sortFieldLWC = '';
                String sortOrderLWC ='';
                String category1= '3400PK:PK针 5mm×33cm';
                String Category3 = '腹腔镜手术';
                String Category4 = 'PK';
                String Category5 = 'G400';
                String accountName = '捷尔医疗(海南）有限公司';
                string agencyProType = 'ENG';
                string userWorkLocation = '深圳';
                LexInventoryViewController.category1 = category1;
                LexInventoryViewController.Category3 = Category3;
                LexInventoryViewController.Category4 = Category4;
                LexInventoryViewController.Category5 = Category5;
                LexInventoryViewController.orderDetZaikuList = new List<String>();
                LexInventoryViewController.init(pageSizeLWC,pageTokenLWC,sortFieldLWC,sortOrderLWC);   
                system.debug('order detail:' + JSON.serialize(LexInventoryViewController.orderDetZaikuList));            
                orderDetZaikuListLWC = LexInventoryViewController.orderDetZaikuList;          
                System.debug('orderDetZaikuListLWC'+orderDetZaikuListLWC);
                Map<String, Date> productkucunLWC =   LexInventoryViewController.productkucun;          
                LexInventoryViewController.searchConsumableorderdetails(category1,'','','',orderDetZaikuListLWC,accountName,agencyProType,userWorkLocation,pageSizeLWC,pageTokenLWC,sortFieldLWC,sortOrderLWC,productkucunLWC);
                LexInventoryViewController.searchConsumableorderdetails(category1,Category3,Category4,Category5,orderDetZaikuListLWC,accountName,agencyProType,userWorkLocation,pageSizeLWC,pageTokenLWC,sortFieldLWC,sortOrderLWC,productkucunLWC);
            }
	}


	static testMethod void InventoryViewSearchTest(){
        user myUser_test;
        Account myAccount1;
        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;
        }
 		myAccount1 = new Account(name='testaccount001',RecordTypeId = rectCo[0].Id,Product_Limit_Date__c = 'Test01|2|4,Test02|3|5',AgentCode_Ext__c = '9999900');
        insert myAccount1;
        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){
			Product2 prod01 = new Product2(Name='Test01',ProductCode='Test01',Asset_Model_No__c = 'Test01',SFDA_Status__c = '有効',Dealer_special_Object__c = true
				,Category3__c = 'CDS',Category4__c = 'OER',Category5__c = '其它',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
	        	,Category3__c = 'ENT',Category4__c = 'Celon',Category5__c = 'Celon',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
	        	,Category3__c = 'US',Category4__c = 'ALOKA',Category5__c = '体外超声',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
	        	,Category3__c = 'OCS',Category4__c = '附属品',Category5__c = 'S45',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
	        	,Category3__c = '光源',Category4__c = '附属品',Category5__c = 'OCS',Manual_Entry__c = false);
	        insert new Product2[] {prod01, prod02, prod03, prod04, prod05};
			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);
			Product2__c pro4 = new Product2__c(Name='Pro004',OT_CODE_Text__c='Test004',Product2__c = prod04.Id);
			Product2__c pro5 = new Product2__c(Name='Pro005',OT_CODE_Text__c='Test005',Product2__c = prod05.Id);
			insert new Product2__c[] {pro1, pro2, pro3, pro4, pro5};

			Consumable_order__c Order1 = new Consumable_order__c();
        	Order1.Name = 'OCM_01_001';
        	Order1.Order_status__c = '批准';
        	Order1.Order_type__c = '订单';
        	Order1.Dealer_Info__c = myAccount1.Id;
        	Order1.RecordTypeid = System.Label.RT_ConOrder_Inventory;
        	Order1.Order_ProType__c = 'ET';
        	insert Order1;

        	Consumable_order_details2__c Orderdet1 = new Consumable_order_details2__c();
	        Orderdet1.Name = 'OCM_01_001001';
	        Orderdet1.Consumable_order_minor__c = Order1.Id;
	        Orderdet1.Consumable_Product__c = pro1.Id;
	        Orderdet1.Consumable_Arrived_order__c = Order1.Id;
	        Orderdet1.Sterilization_limit__c = Date.today();
	        Orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery;
	        Orderdet1.Bar_Code__c = '11111';
	        Orderdet1.Arrive_date__c = Date.today().addDays(1);
            Orderdet1.Send_Date__c = null;
            Orderdet1.Used_date__c = null;
            Orderdet1.Lose_Flag__c = false;

            Consumable_order_details2__c Orderdet2 = new Consumable_order_details2__c();
	        Orderdet2.Name = 'OCM_01_001002';
	        Orderdet2.Consumable_order_minor__c = Order1.Id;
	        Orderdet2.Consumable_Product__c = pro1.Id;
	        Orderdet2.Consumable_Arrived_order__c = Order1.Id;
	        Orderdet2.Sterilization_limit__c = Date.today();
	        Orderdet2.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery;
	        Orderdet2.Bar_Code__c = '22222';
	        Orderdet2.Arrive_date__c = Date.today().addDays(1);
            Orderdet2.Send_Date__c = null;
            Orderdet2.Used_date__c = null;
            Orderdet2.Lose_Flag__c = false;
            insert new Consumable_order_details2__c[] {Orderdet1,Orderdet2};
            Integer pageSizeLWC = 1;
            Integer pageTokenLWC = 0;
            String sortFieldLWC = '';
            String sortOrderLWC ='';
            String category3LWC = 'CDS';
            String agencyProTypeLWC = 'ENG';
            String category1= '3400PK:PK针 5mm×33cm';
            String Category3 = '腹腔镜手术';
            String Category4 = 'PK';
            String Category5 = 'G400';
            String accountName = '捷尔医疗(海南）有限公司';
            string agencyProType = 'ENG';
            string userWorkLocation = '深圳';
            List<String> orderDetZaikuListLWC = new  List<String>();
                

             LexInventoryViewController.init(pageSizeLWC,pageTokenLWC,sortFieldLWC,sortOrderLWC);
             LexInventoryViewController.categoryAllload(category3LWC,agencyProTypeLWC);
             LexInventoryViewController.categoryload();
            //  LexInventoryViewController.searchConsumableorderdetails(category1,category3,category4,category5,orderDetZaikuListLWC,accountName,agencyProType,userWorkLocation,pageSizeLWC,pageTokenLWC,sortFieldLWC,sortOrderLWC);
        
		}
	}

	//add by rentx 2020-12-25 start 查询非医院特价盒 /个
	static testMethod void InventoryViewTest2(){
        user myUser_test;
        Account myAccount2;
        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 = '販売店'];
            if (rectCo.size() == 0) {
                return;
            }
            //Profile prof = [select Id from Profile where Name ='901_经销商社区普通权限_2重验证'];
            Profile prof = [select Id from Profile where Name ='901_经销商社区普通权限_2重验证(ET)'];//20200916 ljh update
            
            myAccount2 = new Account(name='Testaccount002',Dealer_discount__c =20,RecordTypeId = rectCo[0].Id,Product_Limit_Date__c = 'Test01|5|55,Test02|2|4',AgentCode_Ext__c = '9999900');
            insert myAccount2;

            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='ET', Work_Location__c='北京');
            insert MyUser_Test;
        }
        system.runAs(MyUser_Test){
            System.Test.startTest();
            StaticParameter.EscapeConsumableOrderDetail2Trigger = true;
            Product2 prod01 = new Product2(Name='Test01',ProductCode='Test01',Asset_Model_No__c = 'Test01',SFDA_Status__c = '有効',Dealer_special_Object__c = true,SFDA_Approbation_No__c = '12124',Packing_list_manual__c = 1,SFDA_Expiration_Date__c= Date.today(),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,SFDA_Approbation_No__c = '12124',Packing_list_manual__c = 1,SFDA_Expiration_Date__c= Date.today(),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 createId = new Consumable_order__c();
            createId.Name = 'testMing';
            createId.Order_status__c = '批准';
            createId.Deliver_date__c = Date.today();
            createId.Dealer_Info__c = myAccount2.Id;
            createId.RecordTypeid = System.Label.RT_ConOrder_Delivery;
            createId.Order_type__c = '订单';
            createId.Order_ProType__c = 'ET';
            createId.Dealer_Info__c = myAccount2.Id;
            createId.Delivery_detail_count__c = 5;
            insert  createId;
            //pro1 盒 在库
            List<Consumable_order_details2__c> codListTemp = new List<Consumable_order_details2__c>();
            Consumable_order_details2__c createDetail2 = new Consumable_order_details2__c();
            createDetail2 = new Consumable_order_details2__c();
            createDetail2.Consumable_Product__c = pro1.id;
            createDetail2.Asset_Model_No__c     = 'Test01';
            createDetail2.Consumable_order_minor__c =  createId.id;
            createDetail2.Consumable_Arrived_order__c = createId.id;
            createDetail2.RecordTypeid = System.Label.RT_ConOrderDetail2_Delivery;
            createDetail2.Asset_Model_No__c = pro1.Asset_Model_No__c;
            createDetail2.Bar_Code__c = '123';
            createDetail2.Box_Piece__c ='盒';
            createDetail2.Arrive_date__c = Date.today();
            codListTemp.add(createDetail2);
            //insert createDetail2;
            Consumable_order_details2__c createDetailpro1 = new Consumable_order_details2__c();
            createDetailpro1.Consumable_Product__c = pro1.id;
            createDetailpro1.Asset_Model_No__c     = 'Test02';
            createDetailpro1.Consumable_order_minor__c =  createId.id;
            createDetailpro1.Consumable_Arrived_order__c = createId.id;
            createDetailpro1.RecordTypeid = System.Label.RT_ConOrderDetail2_Delivery;
            createDetailpro1.Asset_Model_No__c         = pro1.Asset_Model_No__c;
            createDetailpro1.Bar_Code__c = '12322';
            createDetailpro1.Box_Piece__c ='盒';
            createDetailpro1.Arrive_date__c            = Date.today();
            codListTemp.add(createDetailpro1);
            //insert createDetailpro1;
            //pro1 个 在库
            Consumable_order_details2__c createDetailPiece1 = new Consumable_order_details2__c();
            createDetailPiece1.Consumable_Product__c = pro1.id;
            createDetailPiece1.Asset_Model_No__c     = 'Test03';
            createDetailPiece1.Consumable_order_minor__c =  createId.id;
            createDetailPiece1.Consumable_Arrived_order__c = createId.id;
            createDetailPiece1.RecordTypeid = System.Label.RT_ConOrderDetail2_Delivery;
            createDetailPiece1.Asset_Model_No__c         = pro1.Asset_Model_No__c;
            createDetailPiece1.Bar_Code__c = '23456';
            createDetailPiece1.Box_Piece__c ='个';
            createDetailPiece1.Arrive_date__c            = Date.today();
            codListTemp.add(createDetailPiece1);
            //insert createDetailPiece1;
            Consumable_order_details2__c createDetailPiece2 = new Consumable_order_details2__c();
            createDetailPiece2.Consumable_Product__c = pro1.id;
            createDetailPiece2.Asset_Model_No__c     = 'Test04';
            createDetailPiece2.Consumable_order_minor__c =  createId.id;
            createDetailPiece2.Consumable_Arrived_order__c = createId.id;
            createDetailPiece2.RecordTypeid = System.Label.RT_ConOrderDetail2_Delivery;
            createDetailPiece2.Asset_Model_No__c         = pro1.Asset_Model_No__c;
            createDetailPiece2.Bar_Code__c = '122345';
            createDetailPiece2.Box_Piece__c ='个';
            createDetailPiece2.Arrive_date__c            = Date.today();
            codListTemp.add(createDetailPiece2);
            //insert createDetailPiece2;          

            //pro1 盒 在库 过期
            Consumable_order_details2__c createDetail21 = new Consumable_order_details2__c();
            createDetail21.Consumable_Product__c = pro1.id;
            createDetail21.Asset_Model_No__c     = 'Test01';
            createDetail21.Sterilization_limit__c = Date.today();
            createDetail21.RecordTypeid = System.Label.RT_ConOrderDetail2_Delivery;
            //createDetail.IsArrival__c = true;
            createDetail21.Asset_Model_No__c         = prod02.Asset_Model_No__c;
            createDetail21.Bar_Code__c = '1223';
            createDetail21.Box_Piece__c ='盒';
            createDetail21.Arrive_date__c  = Date.today();
            createDetail21.Deliver_date__c           =Date.today().addDays(-8);
            createDetail21.Sterilization_limit__c =Date.today().addDays(-8);
            codListTemp.add(createDetail21);
            //insert createDetail2;
            insert codListTemp;

            PageReference page = new PageReference('/apex/TopPage');
            System.Test.setCurrentPage(page);
            TopPageController lPCTest = new TopPageController();
            lPCTest.pagesize = 1;
            List<Consumable_Orderdetails__c> coListTest = new List<Consumable_Orderdetails__c>();
            Consumable_Orderdetails__c conOrderDetail1 = new Consumable_Orderdetails__c();
            conOrderDetail1.Consumable_count__c = 10;
            conOrderDetail1.Consumable_Arrivecount__c = 5;
            conOrderDetail1.Consumable_product__c = pro2.id;
            conOrderDetail1.Consumable_order__c = createId.Id;
            coListTest.add(conOrderDetail1);

            Consumable_Orderdetails__c conOrderDetail2 = new Consumable_Orderdetails__c();
            conOrderDetail2.Consumable_product__c = pro2.id;
            conOrderDetail2.Consumable_order__c = createId.Id;
            coListTest.add(conOrderDetail2);
            insert coListTest;

            Integer pageSizeLWC = 1;
            Integer pageTokenLWC = 0;
            String sortFieldLWC = '';
            String sortOrderLWC ='';
            String category3LWC = 'CDS';
            String agencyProTypeLWC = 'ENG';
            // LexInventoryViewController.init(pageSizeLWC,pageTokenLWC,sortFieldLWC,sortOrderLWC);
            LexInventoryViewController.categoryAllload('CDS','捷尔医疗(海南）有限公司');
            LexInventoryViewController.categoryload();
            LexInventoryViewController.categoryAllload('光源','捷尔医疗(海南）有限公司');
            LexInventoryViewController.categoryload();
            System.Test.stopTest();
		}
	}

	static testMethod void InventoryViewTest3(){
        user myUser_test;
        Account myAccount2;
        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 = '販売店'];
        if (rectCo.size() == 0) {
            return;
        }
        //Profile prof = [select Id from Profile where Name ='901_经销商社区普通权限_2重验证'];
        // Profile prof = [select Id from Profile where Name ='901_经销商社区普通权限_2重验证(Email)'];//20200916 ljh update
        Profile prof = [select Id from Profile where Name ='901_经销商社区普通权限_2重验证(ET Email)'];//20210329 RTX update
        
        myAccount2 = new Account(name='Testaccount002',Dealer_discount__c =20,RecordTypeId = rectCo[0].Id,Product_Limit_Date__c = 'Test01|5|55,Test02|2|4',AgentCode_Ext__c = '9999900');
        insert myAccount2;

        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='北京');
        insert MyUser_Test;

        }
		
        system.runAs(MyUser_Test){
            System.Test.startTest();
            StaticParameter.EscapeConsumableOrderDetail2Trigger = true;
            Product2 prod01 = new Product2(Name='Test01',ProductCode='Test01',Asset_Model_No__c = 'Test01',SFDA_Status__c = '有効',Dealer_special_Object__c = true,SFDA_Approbation_No__c = '12124',Packing_list_manual__c = 1,SFDA_Expiration_Date__c= Date.today(),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,SFDA_Approbation_No__c = '12124',Packing_list_manual__c = 1,SFDA_Expiration_Date__c= Date.today(),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 createId = new Consumable_order__c();
            createId.Name = 'testMing1';
            createId.Order_status__c = '批准';
            createId.Deliver_date__c = Date.today();
            createId.Dealer_Info__c = myAccount2.Id;
            createId.RecordTypeid = System.Label.RT_ConOrder_Delivery;
            createId.Order_type__c = '订单';
            createId.Order_ProType__c = 'ENG';
            createId.Dealer_Info__c = myAccount2.Id;
            createId.Delivery_detail_count__c = 5;
            createId.orderPattern__c = 'hospitalorder';
            insert  createId;
            //pro1 盒 在库
            Consumable_order_details2__c createDetail2 = new Consumable_order_details2__c();
            createDetail2.Consumable_Product__c = pro1.id;
            createDetail2.Asset_Model_No__c     = 'Test01';
            createDetail2.Consumable_order_minor__c =  createId.id;
            createDetail2.Consumable_Arrived_order__c = createId.id;
            createDetail2.RecordTypeid = System.Label.RT_ConOrderDetail2_Delivery;
            createDetail2.Asset_Model_No__c = pro1.Asset_Model_No__c;
            createDetail2.Bar_Code__c = '123';
            createDetail2.Box_Piece__c ='盒';
            createDetail2.Arrive_date__c = Date.today();
            insert createDetail2;
            List<Consumable_order_details2__c> codListTemp = new List<Consumable_order_details2__c>();
            Consumable_order_details2__c createDetailpro1 = new Consumable_order_details2__c();
            createDetailpro1.Consumable_Product__c = pro1.id;
            createDetailpro1.Asset_Model_No__c     = 'Test02';
            createDetailpro1.Consumable_order_minor__c =  createId.id;
            createDetailpro1.Consumable_Arrived_order__c = createId.id;
            createDetailpro1.RecordTypeid = System.Label.RT_ConOrderDetail2_Delivery;
            createDetailpro1.Asset_Model_No__c         = pro1.Asset_Model_No__c;
            createDetailpro1.Bar_Code__c = '12322';
            createDetailpro1.Box_Piece__c ='盒';
            createDetailpro1.Arrive_date__c            = Date.today();
            //insert createDetailpro1;
            codListTemp.add(createDetailpro1);
            //pro1 个 在库
            Consumable_order_details2__c createDetailPiece1 = new Consumable_order_details2__c();
            createDetailPiece1.Consumable_Product__c = pro1.id;
            createDetailPiece1.Asset_Model_No__c     = 'Test03';
            createDetailPiece1.Consumable_order_minor__c =  createId.id;
            createDetailPiece1.Consumable_Arrived_order__c = createId.id;
            createDetailPiece1.RecordTypeid = System.Label.RT_ConOrderDetail2_Delivery;
            createDetailPiece1.Asset_Model_No__c         = pro1.Asset_Model_No__c;
            createDetailPiece1.Bar_Code__c = '23456';
            createDetailPiece1.Box_Piece__c ='个';
            createDetailPiece1.Arrive_date__c            = Date.today();
            codListTemp.add(createDetailPiece1);
            //insert createDetailPiece1;
            Consumable_order_details2__c createDetailPiece2 = new Consumable_order_details2__c();
            createDetailPiece2.Consumable_Product__c = pro1.id;
            createDetailPiece2.Asset_Model_No__c     = 'Test04';
            createDetailPiece2.Consumable_order_minor__c =  createId.id;
            createDetailPiece2.Consumable_Arrived_order__c = createId.id;
            createDetailPiece2.RecordTypeid = System.Label.RT_ConOrderDetail2_Delivery;
            createDetailPiece2.Asset_Model_No__c         = pro1.Asset_Model_No__c;
            createDetailPiece2.Bar_Code__c = '122345';
            createDetailPiece2.Box_Piece__c ='个';
            createDetailPiece2.Arrive_date__c            = Date.today();
            codListTemp.add(createDetailPiece2);
            //insert createDetailPiece2;

            //pro1 盒 在库 过期
            Consumable_order_details2__c  createDetail21 = new Consumable_order_details2__c();
            createDetail21.Consumable_Product__c = pro1.id;
            createDetail21.Asset_Model_No__c     = 'Test01';
            createDetail21.Sterilization_limit__c = Date.today();
            createDetail21.RecordTypeid = System.Label.RT_ConOrderDetail2_Delivery;
            //createDetail.IsArrival__c = true;
            createDetail21.Asset_Model_No__c         = prod02.Asset_Model_No__c;
            createDetail21.Bar_Code__c = '1223';
            createDetail21.Box_Piece__c ='盒';
            createDetail21.Arrive_date__c  = Date.today();
            createDetail21.Deliver_date__c           =Date.today().addDays(-8);
            createDetail21.Sterilization_limit__c =Date.today().addDays(-8);
            codListTemp.add(createDetail21);
            //insert createDetail21;
            insert codListTemp;

            PageReference page = new PageReference('/apex/TopPage');
            System.Test.setCurrentPage(page);
            TopPageController lPCTest = new TopPageController();
            lPCTest.pagesize = 1;
            List<Consumable_Orderdetails__c> coListTest = new List<Consumable_Orderdetails__c>();
            Consumable_Orderdetails__c conOrderDetail1 = new Consumable_Orderdetails__c();
            conOrderDetail1.Consumable_count__c = 10;
            conOrderDetail1.Consumable_Arrivecount__c = 5;
            conOrderDetail1.Consumable_product__c = pro2.id;
            conOrderDetail1.Consumable_order__c = createId.Id;
            coListTest.add(conOrderDetail1);

            Consumable_Orderdetails__c conOrderDetail2 = new Consumable_Orderdetails__c();
            conOrderDetail2.Consumable_product__c = pro2.id;
            conOrderDetail2.Consumable_order__c = createId.Id;
            coListTest.add(conOrderDetail2);
            insert coListTest;

            Integer pageSizeLWC = 1;
            Integer pageTokenLWC = 0;
            String sortFieldLWC = '';
            String sortOrderLWC ='';
            String category1= '3400PK:PK针 5mm×33cm';
            String Category3 = '腹腔镜手术';
            String Category4 = 'PK';
            String Category5 = 'G400';
            List<String> orderDetZaikuListLWC = new List<String>();
            String accountName = '捷尔医疗(海南）有限公司';
            string agencyProType = 'ET';
            string userWorkLocation = '深圳';
            LexInventoryViewController.category1 = category1;
            LexInventoryViewController.Category3 = Category3;
            LexInventoryViewController.Category4 = Category4;
            LexInventoryViewController.Category5 = Category5;
            // LexInventoryViewController.init(pageSizeLWC,pageTokenLWC,sortFieldLWC,sortOrderLWC);
            // LexInventoryViewController.searchConsumableorderdetails(category1,category3,category4,category5,orderDetZaikuListLWC,accountName,agencyProType,userWorkLocation,pageSizeLWC,pageTokenLWC,sortFieldLWC,sortOrderLWC);
            LexInventoryViewController.categoryAllload('CDS','捷尔医疗(海南）有限公司');
            LexInventoryViewController.categoryload();
            LexInventoryViewController.categoryAllload('光源','捷尔医疗(海南）有限公司');
            LexInventoryViewController.categoryload();
		}
	}
    static testMethod void InventoryViewTest4(){
        user myUser_test;
        Account myAccount2;
        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 = '販売店'];
        if (rectCo.size() == 0) {
            return;
        }
        Profile prof = [select Id from Profile where Name ='901_经销商社区普通权限_2重验证(ET Email)'];//20210329 RTX update
        
        myAccount2 = new Account(name='Testaccount002',Dealer_discount__c =20,RecordTypeId = rectCo[0].Id,Product_Limit_Date__c = 'Test01|5|55,Test02|2|4',AgentCode_Ext__c = '9999900');
        insert myAccount2;

        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='ET', Work_Location__c='济南');
        insert MyUser_Test;

        }
        system.runAs(MyUser_Test){
            Integer pageSizeLWC = 1;
            Integer pageTokenLWC = 0;
            String sortFieldLWC = '';
            String sortOrderLWC ='';
            String category1= '3400PK:PK针 5mm×33cm';
            String Category3 = '腹腔镜手术';
            String Category4 = 'PK';
            String Category5 = 'G400';
            String accountName = 'Testaccount002';
            string agencyProType = 'ET';
            string userWorkLocation = '济南';
            List<String> orderDetZaikuListLWC  = new List<String>();
            List<String> productCodeList = new List<String>();

             Product2 prod01 = new Product2(Name='Test01',ProductCode='Test01',Asset_Model_No__c = 'Test01',SFDA_Status__c = '有効',Dealer_special_Object__c = true,SFDA_Approbation_No__c = '12124',Packing_list_manual__c = 1,SFDA_Expiration_Date__c= Date.today(),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,SFDA_Approbation_No__c = '12124',Packing_list_manual__c = 1,SFDA_Expiration_Date__c= Date.today(),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.Dealer_Info__c = myAccount2.Id;
             Order1.RecordTypeid = System.Label.RT_ConOrder_Delivery;
             Order1.Order_ProType__c = 'ENG';
             insert Order1;
             Consumable_order__c Order2 = new Consumable_order__c();
             Order2.Name = 'OCM_01_003';
             Order2.Order_status__c = '批准';
             Order2.Order_type__c = '订单';
             Order2.Dealer_Info__c = myAccount2.Id;
             Order2.RecordTypeid = System.Label.RT_ConOrder_Delivery;
             Order2.Order_ProType__c = 'ET';
             insert Order2;
             List<Consumable_order_details2__c> conList = new List<Consumable_order_details2__c>();
 
             Consumable_order_details2__c Orderdet2 = new Consumable_order_details2__c();
             Orderdet2.Name = 'OCM_01_001002';
             //Orderdet2.Consumable_principal__c = Order1.Id;
             Orderdet2.Consumable_order_minor__c = Order1.Id;
             Orderdet2.Consumable_Product__c = pro1.Id;
             Orderdet2.Consumable_Arrived_order__c = Order1.Id;
             //Orderdet2.IsArrival__c = true;
             Orderdet2.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery;
             Orderdet2.Bar_Code__c = '22222';
             Orderdet2.Arrive_date__c = Date.today().addDays(1);
             Orderdet2.Send_Date__c = null;
             Orderdet2.Used_date__c = Date.today();
             Orderdet2.Lose_Flag__c = false;
             Orderdet2.Box_Piece__c = '个';
             Orderdet2.Sterilization_limit__c= Date.today();
             Orderdet2.Return_date__c = Date.today();
             Orderdet2.Bar_Code__c = '1683272847250250WZIOF';
             Orderdet2.Cancellation_Flag__c = FALSE;
             conList.add(Orderdet2);

             Consumable_order_details2__c Orderdet3 = new Consumable_order_details2__c();
             Orderdet3.Arrive_date__c = Date.today();
             Orderdet3.Send_Date__c = null;
             Orderdet3.Used_date__c = null;
             Orderdet3.Return_date__c = null;
             Orderdet3.Lose_Flag__c = FALSE;
             Orderdet3.Cancellation_Flag__c = FALSE;
             Orderdet3.Bar_Code__c = '1234';
             Orderdet3.Consumable_order_minor__c = Order2.Id;
            Orderdet2.Consumable_Product__c = pro1.Id;
            Orderdet3.Consumable_Arrived_order__c = Order2.Id;
            Orderdet3.Recordtypeid = '01210000000kUDKAA2';
            Orderdet3.Sterilization_limit__c = Date.today().addDays(1); 
            conList.add(Orderdet3);
            insert conList;
            System.debug('conList==>'+conList);
      

            LexInventoryViewController.category1 = category1;
            LexInventoryViewController.Category3 = Category3;
            LexInventoryViewController.Category4 = Category4;
            LexInventoryViewController.Category5 = Category5;
            // LexInventoryViewController.init(pageSizeLWC,pageTokenLWC,sortFieldLWC,sortOrderLWC);
            Map<String, Date> productkucunLWC = LexInventoryViewController.productkucun; 
            LexInventoryViewController.searchConsumableorderdetails(category1,category3,category4,category5,orderDetZaikuListLWC ,accountName,agencyProType,userWorkLocation,pageSizeLWC,pageTokenLWC,sortFieldLWC,sortOrderLWC,productkucunLWC);
            LexInventoryViewController.categoryAllload('CDS','捷尔医疗(海南）有限公司');
            LexInventoryViewController.categoryload();
            LexInventoryViewController.categoryAllload('光源','捷尔医疗(海南）有限公司');
            LexInventoryViewController.categoryload();
            // LexInventoryViewController.searchConsumableorderdetails(category1,category3,category4,category5,orderDetZaikuListLWC ,accountName,agencyProType,
            // userWorkLocation,pageSizeLWC,pageTokenLWC,sortFieldLWC,sortOrderLWC);
        }

    }
    static testMethod void supplementTest(){
        user myUser_test;
        Account myAccount1;
        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;
            }
            
             myAccount1 = new Account(name='testaccount001',RecordTypeId = rectCo[0].Id,Product_Limit_Date__c = 'Test01|2|4,Test02|3|5' ,AgentCode_Ext__c = '9999900');
            insert myAccount1;
            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',Work_Location__c = '深圳');
            insert myUser_test;
        }
            System.runAs(myUser_test) {
                Product2 prod05 = new Product2(Name='3400PK:PK针 5mmx33cm',ProductCode='Test01',Asset_Model_No__c = '3400PK:PK针 5mmx33cm',SFDA_Status__c = '有効',Dealer_special_Object__c = true,SFDA_Approbation_No__c = 'Test001',Packing_list_manual__c = 1,SFDA_Expiration_Date__c= Date.today(),Manual_Entry__c = false);
                Product2 prod06 = new Product2(Name='Test02',ProductCode='Test02',Asset_Model_No__c = 'Test02',SFDA_Status__c = '有効',Dealer_special_Object__c = true,SFDA_Approbation_No__c = 'Test002',Packing_list_manual__c = 12,SFDA_Expiration_Date__c= Date.today(),Category5__c = 'tset',Manual_Entry__c = false);
                insert new Product2[]{prod05,prod06};
                Product2__c pro11 = new Product2__c(Name='Pro001',OT_CODE_Text__c='Test001',Product2__c = prod05.Id,Category3_text__c = '分类3');
                Product2__c pro22 = new Product2__c(Name='Pro002',OT_CODE_Text__c='Test002',Product2__c = prod06.Id);
                insert new Product2__c[] {pro11, pro22};
                System.debug('pro11===>'+pro11);

                List<Consumable_order__c> orderList = new List<Consumable_order__c>();
                //发货
                Consumable_order__c Order4 = new Consumable_order__c();
                Order4.Name = 'OCM_0122';
                Order4.Order_status__c = '批准';
                Order4.Order_type__c = '订单';
                Order4.Dealer_Info__c = myAccount1.Id;
                Order4.RecordTypeid = '01210000000c9drAAA';
                Order4.Order_ProType__c = 'ET';
                Order4.ContractNo__c = '';
                orderList.add(Order4);
                insert orderList;

                List<Consumable_order_details2__c> conList = new List<Consumable_order_details2__c>();
                //orderDetZaiku init
                Consumable_order_details2__c con1 = new Consumable_order_details2__c();
                con1.Arrive_date__c = Date.today();
                con1.Send_Date__c = null;
                con1.Used_date__c = null;
                con1.Return_date__c = null;
                con1.Lose_Flag__c = FALSE;
                con1.Cancellation_Flag__c = FALSE;
                con1.Bar_Code__c = '1234';
                // con1.Consumable_order_minor__c = Order2.Id;
                con1.Consumable_Product__c = pro11.Id;
                con1.Consumable_Arrived_order__c = Order4.Id;
                con1.Recordtypeid = '01210000000kUDKAA2';
                // con1.Sterilization_limit__c = Date.today().addDays(1);
                conList.add(con1);

                Consumable_order_details2__c con2 = new Consumable_order_details2__c();
                con2.Arrive_date__c = Date.today();
                con2.Send_Date__c = null;
                con2.Used_date__c = null;
                con2.Return_date__c = null;
                con2.Lose_Flag__c = FALSE;
                con2.Cancellation_Flag__c = FALSE;
                con2.Bar_Code__c = '1234';
                // con1.Consumable_order_minor__c = Order2.Id;
                con2.Consumable_Product__c = pro11.Id;
                con2.Consumable_Arrived_order__c = Order4.Id;
                con2.Recordtypeid = '01210000000kUDKAA2';
                con2.Box_Piece__c = '个';
                // con1.Sterilization_limit__c = Date.today().addDays(1);
                conList.add(con2);

                insert conList;

                LexInventoryViewController.ESetId = '1111';
                LexInventoryViewController.idCheck = '2222';
                List<String> orderDetZaikuListLWC = new List<String>();
                LexInventoryViewController.init(1,0,'','');
                orderDetZaikuListLWC =  LexInventoryViewController.orderDetZaikuList;
                LexInventoryViewController.categoryAllload('CDS','捷尔医疗(海南）有限公司');
                LexInventoryViewController.categoryload();
                LexInventoryViewController.categoryAllload('光源','捷尔医疗(海南）有限公司');
                LexInventoryViewController.categoryload();
                Map<String, Date> productkucunLWC = LexInventoryViewController.productkucun; 
                LexInventoryViewController.searchConsumableorderdetails('3400PK:PK针 5mmx33cm','','','',orderDetZaikuListLWC ,'testaccount001','ET','深圳',1,0,'','',productkucunLWC);
            }
        }
}