@isTest
private class SSdetails2BatchTest {
	static testMethod void myUnitTest() {
		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 myAccount1 = new Account(name='Testaccount001',Dealer_discount__c =30,RecordTypeId = rectCo[0].Id,AgentCode_Ext__c = '9999900');
		insert myAccount1;

		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);
		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');
		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);
		Product2 prod02 = new Product2(Name='Test02',ProductCode='Test02',Asset_Model_No__c = 'Test02',SFDA_Status__c = '有効',JANCODE__c = '04953170200312',Dealer_special_Object__c = true);
		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.Total_num__c = 3;
        Order1.OrderNumber_arrived__c =1;
        Order1.Delivery_detail_count__c=1;
        Order1.Order_ProType__c = 'ET';
        insert  Order1;

        //订单明细
        //fahuo
        Consumable_orderdetails__c Orderdet = new Consumable_orderdetails__c();
        Orderdet.Name = 'OCM_01_00101';
        Orderdet.Consumable_order__c = Order1.Id;
        Orderdet.RecordTypeId = System.Label.RT_ConOrderDetail1_Order;
        Orderdet.Consumable_Product__c = pro1.Id;
        Orderdet.Consumable_count__c = 40;
        insert Orderdet;

        //发货明细
        //到货正确信息
        Date today = Date.today();
        Date tempDay = Date.newInstance(today.year(), today.month(), 1);

        Consumable_order_details2__c Orderdet1 = new Consumable_order_details2__c();
        Orderdet1.Name = 'OCM_01_001002';
        Orderdet1.Consumable_order_minor__c = Order1.Id;
        Orderdet1.Consumable_Product__c = pro1.Id;
        Orderdet1.Asset_Model_No__c = 'Test01';
        Orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery;
        Orderdet1.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRA';
        Orderdet1.Deliver_date__c = tempDay.addDays(-1);

        //取消产品
        Consumable_order_details2__c Orderdet2 = new Consumable_order_details2__c();
        Orderdet2.Name = 'OCM_01_001003';
        Orderdet2.Consumable_order_minor__c = Order1.Id;
        Orderdet2.Consumable_Product__c = pro1.Id;
        Orderdet2.Asset_Model_No__c = 'Test01';
        //Orderdet2.Consumable_Arrived_order__c = Order1.Id;
        Orderdet2.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery;
        Orderdet2.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRB';
        Orderdet2.Cancellation_Date__c= Date.today();
        Orderdet2.Deliver_date__c = tempDay.addDays(-1);

        //销售产品
        Consumable_order_details2__c Orderdet3 = new Consumable_order_details2__c();
        Orderdet3.Name = 'OCM_01_001004';
        Orderdet3.Consumable_order_minor__c = Order1.Id;
        Orderdet3.Consumable_Product__c = pro1.Id;
        Orderdet3.Asset_Model_No__c = 'Test01';
        Orderdet3.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery;
        Orderdet3.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRC';
        Orderdet3.Used_date__c = Date.today();
        Orderdet3.Arrive_date__c = Date.today();
        Orderdet3.Deliver_date__c = tempDay.addDays(-1);
       
        //出库产品
        Consumable_order_details2__c Orderdet4 = new Consumable_order_details2__c();
        Orderdet4.Name = 'OCM_01_001005';
        Orderdet4.Consumable_order_minor__c = Order1.Id;
        Orderdet4.Consumable_Product__c = pro1.Id;
        Orderdet4.Asset_Model_No__c = 'Test01';
        Orderdet4.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery;
        Orderdet4.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRD';
        Orderdet4.Send_Date__c =  Date.today();
        Orderdet4.Arrive_date__c = Date.today();
        Orderdet4.Deliver_date__c = tempDay.addDays(-1);

        //已到货产品
        Consumable_order_details2__c Orderdet5 = new Consumable_order_details2__c();
        Orderdet5.Name = 'OCM_01_001006';
        Orderdet5.Consumable_order_minor__c = Order1.Id;
        Orderdet5.Consumable_Product__c = pro1.Id;
        Orderdet5.Asset_Model_No__c = 'Test01';
        Orderdet5.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery;
        Orderdet5.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRE';
        Orderdet5.Arrive_date__c =  Date.today();
        Orderdet5.Deliver_date__c = tempDay.addDays(-1);

        //发货明细
        //管理编码包含数字
        Consumable_order_details2__c Orderdet6 = new Consumable_order_details2__c();
        Orderdet6.Name = 'OCM_01_001002';
        Orderdet6.Consumable_order_minor__c = Order1.Id;
        Orderdet6.Consumable_Product__c = pro1.Id;
        Orderdet6.Asset_Model_No__c = 'Test01';
        Orderdet6.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery;
        Orderdet6.Bar_Code__c = '01049531702003111115120017181000105ZK250BX123';
        Orderdet6.Deliver_date__c = tempDay.addDays(-1);

        //发错库 未到货
        Consumable_order_details2__c Orderdets8 = new Consumable_order_details2__c();
        Orderdets8.Name = 'OCM_01_001011';
        Orderdets8.Consumable_order_minor__c = Order1.Id;
        Orderdets8.Consumable_Product__c = pro1.Id;
        Orderdets8.Asset_Model_No__c = 'Test01';
        Orderdets8.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery;
        Orderdets8.Bar_Code__c = '01049531702003111115120017181000105ZK250BXsys';
        Orderdets8.Box_Piece__c = '盒';
        Orderdets8.Deliver_date__c = tempDay.addDays(-1);

        insert new Consumable_order_details2__c[] {Orderdet1, Orderdet2,Orderdet3,Orderdet4,Orderdet5,Orderdet6,Orderdets8};

        SS_Batch_Column_Mapping__c oppMapping = new SS_Batch_Column_Mapping__c(Name = 'Consumable_order_details2__c', SS_TableName__c = 'SSConsumable_order_details2__c');
        oppMapping.From_Column_001__c = 'Name';
        oppMapping.SS_Column_001__c = 'Name__c';
        insert oppMapping;

        System.Test.startTest();
        	Database.executeBatch(new SSdetails2Batch());
        System.Test.stopTest();
      	}
   }

}