@isTest(SeeAllData = false) private class NFM110RestTest { static Account company; static Account section1; // 呼吸科 static Account section2; // 消化科 static Account olympus; static Account olympus1; // 呼吸科 static Account olympus2; // 消化科 static Account depart1; static Account depart2; static void initHpData() { ControllerUtil.EscapeNFM001Trigger = true; ID rectCoID = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('HP').getRecordTypeId(); ID rectDpt1ID = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Department_BF').getRecordTypeId(); ID rectDpt2ID = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Department_GI').getRecordTypeId(); // テストデータ company = new Account(RecordTypeId = rectCoID, Name = 'NFM110TestCompany', FSE_SP_Main_Leader__c = UserInfo.getUserId(), FSE_GI_Main_Leader__c = UserInfo.getUserId()); olympus = new Account(RecordTypeId = rectCoID, AgentCode_Ext__c = '9999999', Name = 'olympus'); insert new Account[] {company, olympus}; company = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :company.Id]; section1 = [select Management_Code__c, Management_Code_Auto__c, Name, Id, Department_Class_Label__c from Account where ParentId = :company.Id and RecordType.name = '戦略科室分類 呼吸科']; section2 = [select Management_Code__c, Management_Code_Auto__c, Name, Id, Department_Class_Label__c from Account where ParentId = :company.Id and RecordType.name = '戦略科室分類 消化科']; olympus1 = [select Management_Code__c, Management_Code_Auto__c, Name, Id, Department_Class_Label__c from Account where ParentId = :olympus.Id and RecordType.name = '戦略科室分類 呼吸科']; olympus2 = [select Management_Code__c, Management_Code_Auto__c, Name, Id, Department_Class_Label__c from Account where ParentId = :olympus.Id and RecordType.name = '戦略科室分類 消化科']; System.debug('section1.Department_Class_Label__c=' + section1.Department_Class_Label__c); System.debug('section2.Department_Class_Label__c=' + section2.Department_Class_Label__c); depart1 = new Account(RecordTypeId = rectDpt1Id, Name = '*', ParentId = section1.Id, Department_Class__c = section1.Id, Hospital__c = company.Id, Department_Name__c = 'NFM110TestDepart1'); depart2 = new Account(RecordTypeId = rectDpt2Id, Name = '*', ParentId = section2.Id, Department_Class__c = section2.Id, Hospital__c = company.Id, Department_Name__c = 'NFM110TestDepart2'); Account ocm = new Account(RecordTypeId = rectDpt2Id, Name = '*', ParentId = section2.Id, Department_Class__c = section2.Id, Hospital__c = company.Id, AgentCode_Ext__c = '9999900', Department_Name__c = 'NFM110TestDepart3'); Account olympus_return = new Account(RecordTypeId = rectDpt2Id, Name = '*', ParentId = olympus2.Id, Department_Class__c = olympus2.Id, Hospital__c = olympus.Id, AgentCode_Ext__c = '9999901', Department_Name__c = 'olympus_return'); insert new Account[] {depart1, depart2, ocm, olympus_return}; depart1 = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :depart1.Id]; depart2 = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :depart2.Id]; } @isTest static void test_void() { initHpData(); Product2 prd = new Product2(Name = 'NFM110Prd1', ProductCode = 'NFM110Prd1', ProductCode_Ext__c = 'NFM110Prd1', Manual_Entry__c = false,Virtual_Contract__c = true); insert prd; Product2__c pro1 = new Product2__c(Name = 'NFM110Prd1', OT_CODE_Text__c = 'NFM110Prd1', Product2__c = prd.id); insert pro1; // null //NFM110WebService.NFM110(null); NFM110Rest.GeneralData generalData1 = new NFM110Rest.GeneralData(); NFM110Rest.ProductsDelivery ProductsDelivery = new NFM110Rest.ProductsDelivery(); // Monitoringをセットしない //NFM110WebService.NFM110(ProductsDelivery); Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); ProductsDelivery.Monitoring = new NFMUtil.Monitoring(); ProductsDelivery.Monitoring.MessageGroupNumber = nowStr + '01'; // GeneralDataをセットしない //NFM110WebService.NFM110(ProductsDelivery); ProductsDelivery.GeneralData = new NFM110Rest.GeneralData[] { generalData1 }; // generalData1.DeliveryNoteをセットしない ProductsDelivery.Monitoring.MessageGroupNumber = nowStr + '02'; BatchIF_Log__c rowData = NFMUtil.saveRowData(ProductsDelivery.Monitoring, 'NFM110', ProductsDelivery.GeneralData); if (String.isBlank(rowData.Log__c) == false) NFM110Rest.executefuture(rowData.Id); //NFM110WebService.NFM110(ProductsDelivery); generalData1.DeliveryNote = 'DeliveryNote'; // DnInformationをセットしない ProductsDelivery.Monitoring.MessageGroupNumber = nowStr + '03'; rowData = NFMUtil.saveRowData(ProductsDelivery.Monitoring, 'NFM110', ProductsDelivery.GeneralData); if (String.isBlank(rowData.Log__c) == false) NFM110Rest.executefuture(rowData.Id); //NFM110WebService.NFM110(ProductsDelivery); NFM110Rest.DnInformation dnInfo1 = new NFM110Rest.DnInformation(); generalData1.DnInformation = new NFM110Rest.DnInformation[] { dnInfo1 }; // 病院と診療科の管理コードをセットしない ProductsDelivery.Monitoring.MessageGroupNumber = nowStr + '04'; rowData = NFMUtil.saveRowData(ProductsDelivery.Monitoring, 'NFM110', ProductsDelivery.GeneralData); if (String.isBlank(rowData.Log__c) == false) NFM110Rest.executefuture(rowData.Id); //NFM110WebService.NFM110(ProductsDelivery); generalData1.EndUserNo = 'NFM110TestABCD'; generalData1.DepartmentNo = 'NFM110TestDCBA'; // 病院と診療科の管理コードが存在しない ProductsDelivery.Monitoring.MessageGroupNumber = nowStr + '05'; rowData = NFMUtil.saveRowData(ProductsDelivery.Monitoring, 'NFM110', ProductsDelivery.GeneralData); if (String.isBlank(rowData.Log__c) == false) NFM110Rest.executefuture(rowData.Id); //NFM110WebService.NFM110(ProductsDelivery); generalData1.EndUserNo = company.Management_Code_Auto__c; // 診療科の管理コードが存在しない ProductsDelivery.Monitoring.MessageGroupNumber = nowStr + '06'; rowData = NFMUtil.saveRowData(ProductsDelivery.Monitoring, 'NFM110', ProductsDelivery.GeneralData); if (String.isBlank(rowData.Log__c) == false) NFM110Rest.executefuture(rowData.Id); //NFM110WebService.NFM110(ProductsDelivery); generalData1.EndUserNo = company.Management_Code_Auto__c; generalData1.DepartmentNo = depart1.Management_Code_Auto__c; // DnInformationの必須項目をセットしない ProductsDelivery.Monitoring.MessageGroupNumber = nowStr + '07'; rowData = NFMUtil.saveRowData(ProductsDelivery.Monitoring, 'NFM110', ProductsDelivery.GeneralData); if (String.isBlank(rowData.Log__c) == false) NFM110Rest.executefuture(rowData.Id); //NFM110WebService.NFM110(ProductsDelivery); dnInfo1.SorLMark = 'S'; // DnInformationの必須項目をセットしない ProductsDelivery.Monitoring.MessageGroupNumber = nowStr + '08'; rowData = NFMUtil.saveRowData(ProductsDelivery.Monitoring, 'NFM110', ProductsDelivery.GeneralData); if (String.isBlank(rowData.Log__c) == false) NFM110Rest.executefuture(rowData.Id); //NFM110WebService.NFM110(ProductsDelivery); dnInfo1.OTCode = 'NFM110Prd1'; // DnInformationの必須項目をセットしない ProductsDelivery.Monitoring.MessageGroupNumber = nowStr + '09'; rowData = NFMUtil.saveRowData(ProductsDelivery.Monitoring, 'NFM110', ProductsDelivery.GeneralData); if (String.isBlank(rowData.Log__c) == false) NFM110Rest.executefuture(rowData.Id); //NFM110WebService.NFM110(ProductsDelivery); dnInfo1.OTCode = 'NFM110TstPrd1234'; dnInfo1.SerialNoorLotNo = '2577010001675'; // 商品コードが存在しない ProductsDelivery.Monitoring.MessageGroupNumber = nowStr + '10'; rowData = NFMUtil.saveRowData(ProductsDelivery.Monitoring, 'NFM110', ProductsDelivery.GeneralData); if (String.isBlank(rowData.Log__c) == false) NFM110Rest.executefuture(rowData.Id); //NFM110WebService.NFM110(ProductsDelivery); // NFM110Rest.execute(); Asset[] rslts = [select Id from Asset]; System.assertEquals(0, rslts.size()); } // tcm 3 // @isTest // static void test_insert() { // initHpData(); // Product2 prd = new Product2(Name = 'NFM110Prd1', ProductCode = 'NFM110Prd1', ProductCode_Ext__c = 'NFM110Prd1', Manual_Entry__c = false); // insert prd; // Product2__c pro1 = new Product2__c(Name = 'NFM110Prd1', OT_CODE_Text__c = 'NFM110Prd1', Product2__c = prd.id); // insert pro1; // NFM110Rest.GeneralData generalData1 = new NFM110Rest.GeneralData(); // NFM110Rest.ProductsDelivery ProductsDelivery = new NFM110Rest.ProductsDelivery(); // Datetime nowDT = Datetime.now(); // String nowStr = nowDT.format('yyyyMMddHHmm'); // ProductsDelivery.Monitoring = new NFMUtil.Monitoring(); // ProductsDelivery.Monitoring.MessageGroupNumber = nowStr + '01'; // ProductsDelivery.GeneralData = new NFM110Rest.GeneralData[] { generalData1 }; // generalData1.DeliveryNote = 'DeliveryNote'; // NFM110Rest.DnInformation dnInfo1 = new NFM110Rest.DnInformation(); // generalData1.DnInformation = new NFM110Rest.DnInformation[] { dnInfo1 }; // generalData1.EndUserNo = company.Management_Code_Auto__c; // generalData1.DepartmentNo = depart1.Management_Code_Auto__c; // dnInfo1.SorLMark = 'S'; // dnInfo1.OTCode = prd.ProductCode_Ext__c; // dnInfo1.SerialNoorLotNo = '2577010001675'; // dnInfo1.GuaranteePrice = '1'; // dnInfo1.MaintenancePrice = '1'; // dnInfo1.ServicePrice = '1'; // Test.startTest(); // BatchIF_Log__c rowData = NFMUtil.saveRowData(ProductsDelivery.Monitoring, 'NFM110', ProductsDelivery.GeneralData); // if (String.isBlank(rowData.Log__c) == false) // NFM110Rest.executefuture(rowData.Id); // //NFM110WebService.NFM110(ProductsDelivery); // Test.stopTest(); // Asset[] rslts = [select Id, Return_Flag__c, AccountId, Department_Class__c, Hospital__c, Product2Id, SerialNumber, SLMark__c, IF_Information_From__c, InstallDate from Asset]; // List rowbl = [Select Id, Log__c, ErrorLog__c from BatchIF_Log__c where RowDataFlg__c = false and Type__c = 'NFM110' order by CreatedDate desc]; // //System.assertEquals('1', rowbl[0].ErrorLog__c); // System.assertEquals(0, rslts.size()); // if (rslts.size() > 0) { // System.assertEquals(1, rslts.size()); // System.assertEquals(false, rslts[0].Return_Flag__c); // System.assertEquals(depart1.Id, rslts[0].AccountId); // System.assertEquals(section1.Id, rslts[0].Department_Class__c); // System.assertEquals(company.Id, rslts[0].Hospital__c); // System.assertEquals(prd.Id, rslts[0].Product2Id); // System.assertEquals(dnInfo1.SerialNoorLotNo, rslts[0]. SerialNumber); // System.assertEquals('Serial Number', rslts[0]. SLMark__c); // System.assertEquals(true, rslts[0]. IF_Information_From__c); // System.assertEquals(null, rslts[0]. InstallDate); // } // } // DepartmentNo = null @isTest static void test_insert_01() { initHpData(); Product2 prd = new Product2(Virtual_Contract__c = true,Name = 'NFM110Prd1', ProductCode = 'NFM110Prd1', ProductCode_Ext__c = 'NFM110Prd1', Manual_Entry__c = false); insert prd; Product2__c pro1 = new Product2__c(Name = 'NFM110Prd1', OT_CODE_Text__c = 'NFM110Prd1', Product2__c = prd.id); insert pro1; Opportunity opp = new Opportunity(Name = 'aiueo', StageName = '出荷', CloseDate = Date.today()); insert opp; Opportunity[] opps = [select Id, Name, Opportunity_No__c from Opportunity where Id = :opp.Id ]; Statu_Achievements__c sta = new Statu_Achievements__c( Name = 'test01', Opportunity__c = opp.Id, DeliveryStatus__c = 'test', PaymentRate__c = '1234', ContractAmount__c = 0, End_User_price__c = 0, AssignmentStatus__c = '全部分配', Last_week__c = '5 货齐,未付款,无用户合同', X2weeks_ago__c = '4 备货中', X3Weeks_ago__c = '3 已付款,无用户合同', X4weeks_ago__c = '2 待付款', X5weeks_ago__c = '1 全没有' ); insert sta; NFM110Rest.GeneralData generalData1 = new NFM110Rest.GeneralData(); NFM110Rest.ProductsDelivery ProductsDelivery = new NFM110Rest.ProductsDelivery(); Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); ProductsDelivery.Monitoring = new NFMUtil.Monitoring(); ProductsDelivery.Monitoring.MessageGroupNumber = nowStr + '01'; ProductsDelivery.GeneralData = new NFM110Rest.GeneralData[] { generalData1 }; generalData1.DeliveryNote = 'DeliveryNote'; NFM110Rest.DnInformation dnInfo1 = new NFM110Rest.DnInformation(); generalData1.DnInformation = new NFM110Rest.DnInformation[] { dnInfo1 }; generalData1.EndUserNo = company.Management_Code_Auto__c; generalData1.DepartmentNo = null; generalData1.SoNo = sta.Name; generalData1.InquiryNo = opps[0].Opportunity_No__c + ','; dnInfo1.SorLMark = 'S'; dnInfo1.OTCode = prd.ProductCode_Ext__c; dnInfo1.SerialNoorLotNo = '2577010001675'; dnInfo1.VALUE = '123'; dnInfo1.GuaranteePrice = '1'; dnInfo1.MaintenancePrice = '1'; dnInfo1.ServicePrice = '1'; System.Test.startTest(); BatchIF_Log__c rowData = NFMUtil.saveRowData(ProductsDelivery.Monitoring, 'NFM110', ProductsDelivery.GeneralData); if (String.isBlank(rowData.Log__c) == false) NFM110Rest.executefuture(rowData.Id); //NFM110WebService.NFM110(ProductsDelivery); System.Test.stopTest(); Asset[] rslts = [select Id, Hospital__c, AccountId, Product2Id, Backorder__c from Asset]; //System.assertEquals(1, rslts.size()); //System.assertEquals(company.Id, rslts[0].Hospital__c); //System.assertEquals(company.Id, rslts[0].AccountId); //System.assertEquals(prd.Id, rslts[0].Product2Id); //System.assertEquals(sta.Id, rslts[0].Backorder__c); } @isTest static void coc_test() { initHpData(); List conOrder_Order = [select Id from RecordType where IsActive = true and SobjectType = 'Consumable_order__c' and Name = '01 订单']; if (conOrder_Order.size() == 0) { return; } List conOrderDetail_Order = [select Id from RecordType where IsActive = true and SobjectType = 'Consumable_orderdetails__c' and Name = '订单']; if (conOrderDetail_Order.size() == 0) { return; } List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売店']; if (rectCo.size() == 0) { return; } List rectCotac = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '契約']; if (rectCotac.size() == 0) { return; } //测试经销商信息 Account myAccount2 = new Account(name = 'Testaccount002', Dealer_discount__c = 20, RecordTypeId = rectCo[0].Id, Product_Limit_Date__c = 'Test01|5|55,Test02|2|4'); insert myAccount2; //测试合同信息 Account contact = new Account(name = 'Testaccount002', RecordTypeId = rectCotac[0].Id, SpecialDealerName__c = 'Testaccount002', ParentId = myAccount2.Id, Agent_Ref__c = myAccount2.Id, Delete_Flag__c = false, Contract_Department_Class__c = 'ET', Contract_Decide_Start_Date__c = Date.today().addDays(-1), Contract_Decide_End_Date__c = Date.today().addDays(1), AgencyContract_Management_Code__c = '5555555'); insert contact; contact = [select Management_Code__c from Account where id = :contact.Id]; Product2 prd = new Product2(Virtual_Contract__c = true,Name = 'NFM110Prd1', ProductCode = 'NFM110Prd1', ProductCode_Ext__c = 'NFM110Prd1', Manual_Entry__c = false, Dealer_special_Object__c = true); insert prd; Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'NFM110Prd1', Product2__c = prd.id); insert pro1; Consumable_order__c coc = new Consumable_order__c(Name = 'Name001', Order_status__c = '批准', RecordTypeid = conOrder_Order[0].Id); insert coc; Consumable_orderdetails__c codc = new Consumable_orderdetails__c(Name = 'orderdetails001', Consumable_order__c = coc.id, Consumable_Product__c = pro1.id, RecordTypeId = conOrderDetail_Order[0].Id); insert codc; Opportunity opp = new Opportunity(Name = 'aiueo', StageName = '出荷',Opportunity_No__c = 'Name001',Trade__c= '内貿', CloseDate = Date.today()); insert opp; opp.Opportunity_No__c = 'Name001'; update opp; opp = [select id,Opportunity_No__c from Opportunity where id = :opp.Id]; System.assertEquals('Name001', opp.Opportunity_No__c); NFM110Rest.GeneralData generalData1 = new NFM110Rest.GeneralData(); NFM110Rest.ProductsDelivery ProductsDelivery = new NFM110Rest.ProductsDelivery(); Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); ProductsDelivery.Monitoring = new NFMUtil.Monitoring(); ProductsDelivery.Monitoring.MessageGroupNumber = nowStr + '01'; ProductsDelivery.GeneralData = new NFM110Rest.GeneralData[] { generalData1 }; generalData1.DeliveryNote = 'DeliveryNote'; NFM110Rest.DnInformation dnInfo1 = new NFM110Rest.DnInformation(); generalData1.DnInformation = new NFM110Rest.DnInformation[] { dnInfo1 }; generalData1.EndUserNo = contact.Management_Code__c; generalData1.DepartmentNo = contact.Management_Code__c; //generalData1.SoNo = coc.Name; generalData1.InquiryNo = coc.Name + ','; dnInfo1.SorLMark = 'S'; dnInfo1.OTCode = pro1.OT_CODE_Text__c; dnInfo1.SerialNoorLotNo = '2577010001675'; dnInfo1.VALUE = '123'; dnInfo1.GuaranteePrice = '1'; dnInfo1.MaintenancePrice = '1'; dnInfo1.ServicePrice = '1'; System.Test.startTest(); BatchIF_Log__c rowData = NFMUtil.saveRowData(ProductsDelivery.Monitoring, 'NFM110', ProductsDelivery.GeneralData); if (String.isBlank(rowData.Log__c) == false) NFM110Rest.executefuture(rowData.Id); //NFM110WebService.NFM110(ProductsDelivery); System.Test.stopTest(); Consumable_order__c[] coc1 = [select id, name from Consumable_order__c where id = :coc.id]; System.assertEquals(1, coc1.size()); } @isTest static void test_update() { User loginUser = [Select Id, Alias, Province__c from User where Id = : UserInfo.getUserId()]; loginUser.Batch_User__c = true; loginUser.responsibility__c = '华北营业一部'; loginUser.OCM_Management_Province__c = '北京'; update loginUser; initHpData(); Product2 prd = new Product2(Virtual_Contract__c = true,Name = 'NFM110Prd1', ProductCode = 'NFM110Prd1', ProductCode_Ext__c = 'NFM110Prd1', Manual_Entry__c = false, MDM_Model_No__c = 'NFM110Ast1'); insert prd; Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'NFM110Prd1', Product2__c = prd.Id); insert pro1; Asset ast = new Asset(Name = 'NFM110Ast1', AccountId = depart1.Id, Department_Class__c = section1.Id, Hospital__c = company.Id, Product2Id = prd.Id, SerialNumber = '2577010001675', Guarantee_period_for_products__c = Date.today() ); insert ast; Opportunity opp1 = new Opportunity(Name = 'aiueo1', StageName = '出荷', CurrencyIsoCode = 'CNY', CloseDate = Date.today()); insert opp1; Statu_Achievements__c sta11 = new Statu_Achievements__c(Name = 'SO0000001', Opportunity__c = opp1.Id, ContractNO__c = 'sta11', DeliveryStatus__c = '未交付', ContractAmount__c = 0); insert sta11; NFM110Rest.GeneralData generalData1 = new NFM110Rest.GeneralData(); NFM110Rest.ProductsDelivery ProductsDelivery = new NFM110Rest.ProductsDelivery(); Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); ProductsDelivery.Monitoring = new NFMUtil.Monitoring(); ProductsDelivery.Monitoring.MessageGroupNumber = nowStr + '01'; ProductsDelivery.GeneralData = new NFM110Rest.GeneralData[] { generalData1 }; generalData1.DeliveryNote = 'DeliveryNote'; NFM110Rest.DnInformation dnInfo1 = new NFM110Rest.DnInformation(); generalData1.DnInformation = new NFM110Rest.DnInformation[] { dnInfo1 }; generalData1.EndUserNo = company.Management_Code_Auto__c; generalData1.DepartmentNo = depart1.Management_Code_Auto__c; generalData1.SoNo = sta11.Name; generalData1.InquiryNo = sta11.Name + ','; dnInfo1.SorLMark = 'S'; dnInfo1.OTCode = prd.ProductCode_Ext__c; dnInfo1.Barcode = 'testbarcode001'; dnInfo1.SerialNoorLotNo = ast.SerialNumber; dnInfo1.VALUE = '123'; dnInfo1.ProvistonPeriod = '03'; dnInfo1.GuaranteePeriod = '05'; dnInfo1.GuaranteePrice = '1'; dnInfo1.MaintenancePrice = '1'; dnInfo1.ServicePrice = '1'; System.Test.startTest(); BatchIF_Log__c rowData = NFMUtil.saveRowData(ProductsDelivery.Monitoring, 'NFM110', ProductsDelivery.GeneralData); if (String.isBlank(rowData.Log__c) == false) NFM110Rest.executefuture(rowData.Id); //NFM110WebService.NFM110(ProductsDelivery); List prdList = [select Id, Name, ProductCode, ProductCode_Ext__c, MDM_Model_No__c from Product2 where ProductCode_Ext__c = :prd.ProductCode_Ext__c]; System.assertEquals(1, prdList.size()); Asset[] rslts = [select Id, Return_Flag__c from Asset where Id = :ast.Id]; System.assertEquals(1, rslts.size()); // retry_cnt__c がクリアされること List rowbl = [Select Id, Log__c, ErrorLog__c from BatchIF_Log__c where RowDataFlg__c = true and Type__c = 'NFM110' order by CreatedDate desc]; System.assertEquals(1, rowbl.size()); rowbl[0].retry_cnt__c = 1; update rowbl; NFM110Rest.main(rowbl[0].id); System.Test.stopTest(); List bl = [Select Id, Is_Error__c, Type__c, Log__c, ErrorLog__c, retry_cnt__c from BatchIF_Log__c where Id = :rowbl[0].id]; System.assertEquals(0, bl[0].retry_cnt__c); } @isTest static void test_update2() { User loginUser = [Select Id, Alias, Province__c from User where Id = : UserInfo.getUserId()]; loginUser.Batch_User__c = true; loginUser.responsibility__c = '华北营业一部'; loginUser.OCM_Management_Province__c = '北京'; update loginUser; initHpData(); Product2 prd = new Product2(Virtual_Contract__c = true,Name = 'NFM110Prd1', ProductCode = 'NFM110Prd1', ProductCode_Ext__c = 'NFM110Prd1', Manual_Entry__c = false, MDM_Model_No__c = 'NFM110Ast1'); insert prd; Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'NFM110Prd1', Product2__c = prd.Id); insert pro1; Asset ast = new Asset(Name = 'NFM110Ast1', AccountId = depart1.Id, Department_Class__c = section1.Id, Hospital__c = company.Id, Product2Id = prd.Id, SerialNumber = '2577010001675', Guarantee_period_for_products__c = Date.today() ,Return_Flag__c = true ); insert ast; Opportunity opp1 = new Opportunity(Name = 'aiueo1', StageName = '出荷', CurrencyIsoCode = 'CNY', Sales_Root__c = 'OCM直接販売', CloseDate = Date.today()); insert opp1; opp1 = [select Opportunity_No__c from Opportunity where id = :opp1.Id]; Statu_Achievements__c sta11 = new Statu_Achievements__c(Name = 'SO0000001', Opportunity__c = opp1.Id, ContractNO__c = 'sta11', DeliveryStatus__c = '未交付', ContractAmount__c = 0); insert sta11; NFM110Rest.GeneralData generalData1 = new NFM110Rest.GeneralData(); NFM110Rest.ProductsDelivery ProductsDelivery = new NFM110Rest.ProductsDelivery(); Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); ProductsDelivery.Monitoring = new NFMUtil.Monitoring(); ProductsDelivery.Monitoring.MessageGroupNumber = nowStr + '01'; ProductsDelivery.GeneralData = new NFM110Rest.GeneralData[] { generalData1 }; generalData1.DeliveryNote = 'DeliveryNote'; NFM110Rest.DnInformation dnInfo1 = new NFM110Rest.DnInformation(); generalData1.DnInformation = new NFM110Rest.DnInformation[] { dnInfo1 }; generalData1.EndUserNo = company.Management_Code_Auto__c; generalData1.DepartmentNo = depart1.Management_Code_Auto__c; generalData1.SoNo = sta11.Name; generalData1.InquiryNo = opp1.Opportunity_No__c + ','; dnInfo1.SorLMark = 'S'; dnInfo1.OTCode = prd.ProductCode_Ext__c; dnInfo1.Barcode = 'testbarcode001'; dnInfo1.SerialNoorLotNo = ast.SerialNumber; dnInfo1.VALUE = '123'; dnInfo1.ProvistonPeriod = '03'; dnInfo1.GuaranteePeriod = '05'; dnInfo1.GuaranteePrice = '1'; dnInfo1.MaintenancePrice = '1'; dnInfo1.ServicePrice = '1'; System.Test.startTest(); BatchIF_Log__c rowData = NFMUtil.saveRowData(ProductsDelivery.Monitoring, 'NFM110', ProductsDelivery.GeneralData); if (String.isBlank(rowData.Log__c) == false) NFM110Rest.executefuture(rowData.Id); //NFM110WebService.NFM110(ProductsDelivery); List prdList = [select Id, Name, ProductCode, ProductCode_Ext__c, MDM_Model_No__c from Product2 where ProductCode_Ext__c = :prd.ProductCode_Ext__c]; System.assertEquals(1, prdList.size()); Asset[] rslts = [select Id, Return_Flag__c from Asset where Id = :ast.Id]; System.assertEquals(1, rslts.size()); // retry_cnt__c がクリアされること List rowbl = [Select Id, Log__c, ErrorLog__c from BatchIF_Log__c where RowDataFlg__c = true and Type__c = 'NFM110' order by CreatedDate desc]; System.assertEquals(1, rowbl.size()); rowbl[0].retry_cnt__c = 1; update rowbl; NFM110Rest.main(rowbl[0].id); System.Test.stopTest(); List bl = [Select Id, Is_Error__c, Type__c, Log__c, ErrorLog__c, retry_cnt__c from BatchIF_Log__c where Id = :rowbl[0].id]; System.assertEquals(0, bl[0].retry_cnt__c); } @isTest static void test_delete() { User loginUser = [Select Id, Alias, Province__c from User where Id = : UserInfo.getUserId()]; loginUser.Batch_User__c = true; loginUser.responsibility__c = '华北营业一部'; loginUser.OCM_Management_Province__c = '北京'; update loginUser; initHpData(); Product2 prd = new Product2(Virtual_Contract__c = true,Name = 'NFM110Prd1', ProductCode = 'NFM110Prd1', ProductCode_Ext__c = 'NFM110Prd1', Manual_Entry__c = false); insert prd; Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'NFM110Prd1', Product2__c = prd.id); insert pro1; Asset ast = new Asset(Name = 'NFM110Ast1', AccountId = depart1.Id, Department_Class__c = section1.Id, Hospital__c = company.Id, Product2Id = prd.Id, SerialNumber = '2577010001675', Guarantee_period_for_products__c = Date.today() ); insert ast; Opportunity opp1 = new Opportunity(Name = 'aiueo1', StageName = '出荷', CurrencyIsoCode = 'CNY', CloseDate = Date.today()); insert opp1; opp1 = [select Opportunity_No__c from Opportunity where id = :opp1.Id]; Statu_Achievements__c sta11 = new Statu_Achievements__c(Name = 'SO0000001', Opportunity__c = opp1.Id, ContractNO__c = 'sta11', DeliveryStatus__c = '未交付', ContractAmount__c = 0); insert sta11; NFM110Rest.GeneralData generalData1 = new NFM110Rest.GeneralData(); NFM110Rest.ProductsDelivery ProductsDelivery = new NFM110Rest.ProductsDelivery(); Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); ProductsDelivery.Monitoring = new NFMUtil.Monitoring(); ProductsDelivery.Monitoring.MessageGroupNumber = nowStr + '01'; ProductsDelivery.GeneralData = new NFM110Rest.GeneralData[] { generalData1 }; generalData1.DeliveryNote = 'DeliveryNote'; NFM110Rest.DnInformation dnInfo1 = new NFM110Rest.DnInformation(); generalData1.DnInformation = new NFM110Rest.DnInformation[] { dnInfo1 }; generalData1.EndUserNo = company.Management_Code_Auto__c; generalData1.DepartmentNo = depart1.Management_Code_Auto__c; generalData1.SoNo = sta11.Name; generalData1.InquiryNo = opp1.Opportunity_No__c + ','; generalData1.ReturnMark = '1'; dnInfo1.SorLMark = 'S'; dnInfo1.OTCode = prd.ProductCode_Ext__c; dnInfo1.SerialNoorLotNo = ast.SerialNumber; dnInfo1.VALUE = '123'; dnInfo1.GuaranteePrice = '1'; dnInfo1.MaintenancePrice = '1'; dnInfo1.ServicePrice = '1'; System.Test.startTest(); BatchIF_Log__c rowData = NFMUtil.saveRowData(ProductsDelivery.Monitoring, 'NFM110', ProductsDelivery.GeneralData); if (String.isBlank(rowData.Log__c) == false) NFM110Rest.executefuture(rowData.Id); //NFM110WebService.NFM110(ProductsDelivery); System.Test.stopTest(); Asset[] rslts = [select Id, Return_Flag__c from Asset where Id = :ast.Id]; System.assertEquals(1, rslts.size()); //System.assertEquals(true, rslts[0].Return_Flag__c); } @isTest static void coc_send() { initHpData(); List conOrder_Order = [select Id from RecordType where IsActive = true and SobjectType = 'Consumable_order__c' and Name = '01 订单']; if (conOrder_Order.size() == 0) { return; } List conOrderDetail_Order = [select Id from RecordType where IsActive = true and SobjectType = 'Consumable_orderdetails__c' and Name = '订单']; if (conOrderDetail_Order.size() == 0) { return; } List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売店']; if (rectCo.size() == 0) { return; } List rectCotac = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '契約']; if (rectCotac.size() == 0) { return; } //测试经销商信息 Account myAccount2 = new Account(name = 'Testaccount002', Dealer_discount__c = 20, RecordTypeId = rectCo[0].Id, Product_Limit_Date__c = 'Test01|5|55,Test02|2|4'); insert myAccount2; //测试合同信息 Account contact = new Account(name = 'Testaccount002', RecordTypeId = rectCotac[0].Id, SpecialDealerName__c = 'Testaccount002', ParentId = myAccount2.Id, Agent_Ref__c = myAccount2.Id, Delete_Flag__c = false, Contract_Department_Class__c = 'ET', Contract_Decide_Start_Date__c = Date.today().addDays(-1), Contract_Decide_End_Date__c = Date.today().addDays(1), AgencyContract_Management_Code__c = '5555555'); insert contact; contact = [select Management_Code__c from Account where id = :contact.Id]; Product2 prd = new Product2(Virtual_Contract__c = true,Name = 'NFM110Prd1', ProductCode = 'NFM110Prd1', ProductCode_Ext__c = 'NFM110Prd1', Manual_Entry__c = false, Dealer_special_Object__c = true); insert prd; Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'NFM110Prd1', Product2__c = prd.id); insert pro1; Consumable_order__c coc = new Consumable_order__c(Name = 'Name001', Order_status__c = '批准', RecordTypeid = conOrder_Order[0].Id); insert coc; Consumable_orderdetails__c codc = new Consumable_orderdetails__c(Name = 'orderdetails001', Consumable_order__c = coc.id, Consumable_Product__c = pro1.id, RecordTypeId = conOrderDetail_Order[0].Id); insert codc; Opportunity opp = new Opportunity(Name = 'aiueo', StageName = '出荷',Opportunity_No__c = 'Name001',Trade__c= '内貿', CloseDate = Date.today()); insert opp; opp.Opportunity_No__c = 'Name001'; update opp; opp = [select id,Opportunity_No__c from Opportunity where id = :opp.Id]; System.assertEquals('Name001', opp.Opportunity_No__c); NFM110Rest.GeneralData generalData1 = new NFM110Rest.GeneralData(); NFM110Rest.ProductsDelivery ProductsDelivery = new NFM110Rest.ProductsDelivery(); Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); ProductsDelivery.Monitoring = new NFMUtil.Monitoring(); ProductsDelivery.Monitoring.MessageGroupNumber = nowStr + '01'; ProductsDelivery.GeneralData = new NFM110Rest.GeneralData[] { generalData1 }; generalData1.DeliveryNote = 'DeliveryNote'; NFM110Rest.DnInformation dnInfo1 = new NFM110Rest.DnInformation(); generalData1.DnInformation = new NFM110Rest.DnInformation[] { dnInfo1 }; generalData1.EndUserNo = contact.Management_Code__c; generalData1.DepartmentNo = contact.Management_Code__c; //generalData1.SoNo = coc.Name; generalData1.InquiryNo = 'Name001,'; dnInfo1.SorLMark = 'S'; dnInfo1.OTCode = pro1.OT_CODE_Text__c; dnInfo1.SerialNoorLotNo = '2577010001675'; dnInfo1.VALUE = '123'; dnInfo1.GuaranteePrice = '1'; dnInfo1.MaintenancePrice = '1'; dnInfo1.ServicePrice = '1'; System.Test.startTest(); BatchIF_Log__c rowData = NFMUtil.saveRowData(ProductsDelivery.Monitoring, 'NFM110', ProductsDelivery.GeneralData); if (String.isBlank(rowData.Log__c) == false) NFM110Rest.executefuture(rowData.Id); //NFM110WebService.NFM110(ProductsDelivery); System.Test.stopTest(); Consumable_order__c[] coc1 = [select id, name from Consumable_order__c where id = :coc.id]; System.assertEquals(1, coc1.size()); } @isTest static void coc_consumable() { initHpData(); List conOrder_Order = [select Id from RecordType where IsActive = true and SobjectType = 'Consumable_order__c' and Name = '01 订单']; if (conOrder_Order.size() == 0) { return; } List conOrderDetail_Order = [select Id from RecordType where IsActive = true and SobjectType = 'Consumable_orderdetails__c' and Name = '订单']; if (conOrderDetail_Order.size() == 0) { return; } List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売店']; if (rectCo.size() == 0) { return; } List rectCotac = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '契約']; if (rectCotac.size() == 0) { return; } //测试经销商信息 Account myAccount2 = new Account(name = 'Testaccount002', Dealer_discount__c = 20, RecordTypeId = rectCo[0].Id, Product_Limit_Date__c = 'Test01|5|55,Test02|2|4'); insert myAccount2; //测试合同信息 Account contact = new Account(name = 'Testaccount002', RecordTypeId = rectCotac[0].Id, SpecialDealerName__c = 'Testaccount002', ParentId = myAccount2.Id, Agent_Ref__c = myAccount2.Id, Delete_Flag__c = false, Contract_Department_Class__c = 'ET', Contract_Decide_Start_Date__c = Date.today().addDays(-1), Contract_Decide_End_Date__c = Date.today().addDays(1), AgencyContract_Management_Code__c = '5555555'); insert contact; contact = [select Management_Code__c from Account where id = :contact.Id]; Product2 prd = new Product2(Virtual_Contract__c = true,Name = 'NFM110Prd1', ProductCode = 'NFM110Prd1', ProductCode_Ext__c = 'NFM110Prd1', Manual_Entry__c = false, Dealer_special_Object__c = true); insert prd; Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'NFM110Prd1', Product2__c = prd.id); insert pro1; Consumable_order__c coc = new Consumable_order__c(Name = 'Name001', Order_status__c = '批准', RecordTypeid = conOrder_Order[0].Id); insert coc; Consumable_orderdetails__c codc = new Consumable_orderdetails__c(Name = 'orderdetails001', Consumable_order__c = coc.id, Consumable_Product__c = pro1.id, RecordTypeId = conOrderDetail_Order[0].Id, Consumable_count__c = 1); insert codc; Opportunity opp = new Opportunity(Name = 'aiueo', StageName = '出荷',Opportunity_No__c = 'Name001',Trade__c= '内貿', CloseDate = Date.today()); insert opp; opp.Opportunity_No__c = 'Name001'; update opp; opp = [select id,Opportunity_No__c from Opportunity where id = :opp.Id]; System.assertEquals('Name001', opp.Opportunity_No__c); NFM110Rest.GeneralData generalData1 = new NFM110Rest.GeneralData(); NFM110Rest.ProductsDelivery ProductsDelivery = new NFM110Rest.ProductsDelivery(); Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); ProductsDelivery.Monitoring = new NFMUtil.Monitoring(); ProductsDelivery.Monitoring.MessageGroupNumber = nowStr + '01'; ProductsDelivery.GeneralData = new NFM110Rest.GeneralData[] { generalData1 }; generalData1.DeliveryNote = 'DeliveryNote'; NFM110Rest.DnInformation dnInfo1 = new NFM110Rest.DnInformation(); generalData1.DnInformation = new NFM110Rest.DnInformation[] { dnInfo1 }; generalData1.EndUserNo = contact.Management_Code__c; generalData1.DepartmentNo = contact.Management_Code__c; //generalData1.SoNo = coc.Name; generalData1.InquiryNo = 'Name001,Name001'; dnInfo1.SorLMark = 'L'; dnInfo1.OTCode = pro1.OT_CODE_Text__c; dnInfo1.SerialNoorLotNo = '85K'; dnInfo1.Barcode = 'testbarcode001250AAAAA'; dnInfo1.TracingCode = 'AAAAA'; dnInfo1.VALUE = '123'; dnInfo1.GuaranteePrice = '1'; dnInfo1.MaintenancePrice = '1'; dnInfo1.ServicePrice = '1'; System.Test.startTest(); BatchIF_Log__c rowData = NFMUtil.saveRowData(ProductsDelivery.Monitoring, 'NFM110', ProductsDelivery.GeneralData); if (String.isBlank(rowData.Log__c) == false) NFM110Rest.main(rowData.Id); //NFM110WebService.NFM110(ProductsDelivery); System.Test.stopTest(); Consumable_order__c[] coc1 = [select id, name from Consumable_order__c where id = :coc.id]; System.assertEquals(1, coc1.size()); //List rowbl = [Select Id, Log__c, ErrorLog__c from BatchIF_Log__c where RowDataFlg__c = false and Type__c = 'NFM110' order by CreatedDate desc]; //System.assertEquals('1', rowbl[0].ErrorLog__c); Consumable_order_details2__c[] cod2 = [select id, name from Consumable_order_details2__c where Consumable_order_minor__c = :coc.id]; System.assertEquals(1, cod2.size()); } @isTest static void coc_consumable_InquiryNo() { initHpData(); List conOrder_Order = [select Id from RecordType where IsActive = true and SobjectType = 'Consumable_order__c' and Name = '01 订单']; if (conOrder_Order.size() == 0) { return; } List conOrderDetail_Order = [select Id from RecordType where IsActive = true and SobjectType = 'Consumable_orderdetails__c' and Name = '订单']; if (conOrderDetail_Order.size() == 0) { return; } List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売店']; if (rectCo.size() == 0) { return; } List rectCotac = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '契約']; if (rectCotac.size() == 0) { return; } //测试经销商信息 Account myAccount2 = new Account(name = 'Testaccount002', Dealer_discount__c = 20, RecordTypeId = rectCo[0].Id, Product_Limit_Date__c = 'Test01|5|55,Test02|2|4'); insert myAccount2; //测试合同信息 Account contact = new Account(name = 'Testaccount002', RecordTypeId = rectCotac[0].Id, SpecialDealerName__c = 'Testaccount002', ParentId = myAccount2.Id, Agent_Ref__c = myAccount2.Id, Delete_Flag__c = false, Contract_Department_Class__c = 'ET', Contract_Decide_Start_Date__c = Date.today().addDays(-1), Contract_Decide_End_Date__c = Date.today().addDays(1)); insert contact; contact = [select Management_Code__c from Account where id = :contact.Id]; //System.assertEquals('99999', contact.Management_Code__c); Product2 prd = new Product2(Virtual_Contract__c = true,Name = 'NFM110Prd1', ProductCode = 'NFM110Prd1', ProductCode_Ext__c = 'NFM110Prd1', Manual_Entry__c = false, Dealer_special_Object__c = true); insert prd; Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'NFM110Prd1', Product2__c = prd.id); insert pro1; Consumable_order__c coc = new Consumable_order__c(Name = 'Name002', Order_status__c = '批准', RecordTypeid = conOrder_Order[0].Id); insert coc; Consumable_orderdetails__c codc = new Consumable_orderdetails__c(Name = 'orderdetails001', Consumable_order__c = coc.id, Consumable_Product__c = pro1.id, RecordTypeId = conOrderDetail_Order[0].Id, Consumable_count__c = 1); insert codc; Opportunity opp = new Opportunity(Name = 'aiueo', StageName = '出荷',Opportunity_No__c = 'Name002',Trade__c= '内貿', CloseDate = Date.today()); insert opp; opp.Opportunity_No__c = 'Name002'; update opp; opp = [select id,Opportunity_No__c from Opportunity where id = :opp.Id]; System.assertEquals('Name002', opp.Opportunity_No__c); NFM110Rest.GeneralData generalData1 = new NFM110Rest.GeneralData(); NFM110Rest.ProductsDelivery ProductsDelivery = new NFM110Rest.ProductsDelivery(); Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); ProductsDelivery.Monitoring = new NFMUtil.Monitoring(); ProductsDelivery.Monitoring.MessageGroupNumber = nowStr + '01'; ProductsDelivery.GeneralData = new NFM110Rest.GeneralData[] { generalData1 }; generalData1.DeliveryNote = 'DeliveryNote'; NFM110Rest.DnInformation dnInfo1 = new NFM110Rest.DnInformation(); generalData1.DnInformation = new NFM110Rest.DnInformation[] { dnInfo1 }; generalData1.EndUserNo = '000' + contact.Management_Code__c; generalData1.DepartmentNo = '000' + contact.Management_Code__c; //generalData1.SoNo = coc.Name; generalData1.InquiryNo = 'Name002,Name002'; dnInfo1.SorLMark = 'L'; dnInfo1.OTCode = pro1.OT_CODE_Text__c; dnInfo1.SerialNoorLotNo = '85K'; dnInfo1.Barcode = 'testbarcode001250AAAAA'; dnInfo1.TracingCode = 'AAAAA'; dnInfo1.VALUE = '123'; dnInfo1.NetWorth = '1'; dnInfo1.GuaranteeType = '市场多年保修'; dnInfo1.GuaranteePrice = '1'; dnInfo1.MaintenancePrice = '1'; dnInfo1.ServicePrice = '1'; dnInfo1.GuaranteePeriod = '05'; System.Test.startTest(); BatchIF_Log__c rowData = NFMUtil.saveRowData(ProductsDelivery.Monitoring, 'NFM110', ProductsDelivery.GeneralData); if (String.isBlank(rowData.Log__c) == false) NFM110Rest.executefuture(rowData.Id); //NFM110WebService.NFM110(ProductsDelivery); System.Test.stopTest(); Consumable_order__c[] coc1 = [select id, name from Consumable_order__c where id = :coc.id]; System.assertEquals(1, coc1.size()); List rowbl = [Select Id, Log__c, ErrorLog__c from BatchIF_Log__c where RowDataFlg__c = false and Type__c = 'NFM110' order by CreatedDate desc]; //System.assertEquals('1', rowbl[0].ErrorLog__c); Consumable_order_details2__c[] cod2 = [select id, name from Consumable_order_details2__c]; System.assertEquals(1, cod2.size()); } @isTest //直接到货再入库对应 static void coc_doubleArrive() { initHpData(); StaticParameter.EscapeConsumableOrderDetail2Trigger = true; StaticParameter.EscapeNFM007Trigger = true; StaticParameter.EscapeOpportunityBefUpdTrigger = true; StaticParameter.EscapeOpportunityHpDeptUpdTrigger = true; StaticParameter.EscapeSyncOpportunityTrigger = true; StaticParameter.EscapeSyncProduct2Trigger = true; ID conOrder_OrderID = Schema.SObjectType.Consumable_order__c.getRecordTypeInfosByDeveloperName().get('Order').getRecordTypeId(); ID conOrderDetail_OrderID = Schema.SObjectType.Consumable_orderdetails__c.getRecordTypeInfosByDeveloperName().get('Detail1_Order').getRecordTypeId(); ID rectCoID = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); ID rectCotacID = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('AgencyContract').getRecordTypeId(); //测试经销商信息 Account myAccount2 = new Account(name = 'Testaccount002', Dealer_discount__c = 20, RecordTypeId = rectCoID, Product_Limit_Date__c = 'Test01|5|55,Test02|2|4'); insert myAccount2; //测试合同信息 Account contact = new Account(name = 'Testaccount002', RecordTypeId = rectCotacID, SpecialDealerName__c = 'Testaccount002', ParentId = myAccount2.Id, Agent_Ref__c = myAccount2.Id, Delete_Flag__c = false, Contract_Department_Class__c = 'ET', Contract_Decide_Start_Date__c = Date.today().addDays(-1), Contract_Decide_End_Date__c = Date.today().addDays(1)); insert contact; contact = [select Management_Code__c from Account where id = :contact.Id]; Product2 prd = new Product2(Virtual_Contract__c = true,Name = 'NFM110Prd1', ProductCode = 'NFM110Prd1', ProductCode_Ext__c = 'NFM110Prd1', Manual_Entry__c = false, Dealer_special_Object__c = true); insert prd; Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'NFM110Prd1', Product2__c = prd.id); insert pro1; Consumable_order__c coc = new Consumable_order__c(Name = 'Name001', Order_status__c = '批准', RecordTypeid = conOrder_OrderID); insert coc; Consumable_orderdetails__c codc = new Consumable_orderdetails__c(Name = 'orderdetails001', Consumable_order__c = coc.id, Consumable_Product__c = pro1.id, RecordTypeId = conOrderDetail_OrderID); insert codc; Consumable_order_details2__c codc2 = new Consumable_order_details2__c(Name = 'det2001', Consumable_order_minor__c = coc.id, Consumable_Product__c = pro1.id, RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery, Asset_Model_No__c = 'NFM110Prd1', Bar_Code__c = 'testbarcode0011085K250AAAAA', Arrive_date__c = Date.today(), Direct_Arrive_Product__c = true, TracingCode__c = 'AAAAA', SerialLotNo__c = '85K'); insert codc2; Opportunity opp = new Opportunity(Name = 'aiueo', StageName = '出荷',Opportunity_No__c = 'Name001',Trade__c= '内貿', CloseDate = Date.today()); insert opp; opp.Opportunity_No__c = 'Name001'; update opp; opp = [select id,Opportunity_No__c from Opportunity where id = :opp.Id]; System.assertEquals('Name001', opp.Opportunity_No__c); NFM110Rest.GeneralData generalData1 = new NFM110Rest.GeneralData(); NFM110Rest.ProductsDelivery ProductsDelivery = new NFM110Rest.ProductsDelivery(); Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); ProductsDelivery.Monitoring = new NFMUtil.Monitoring(); ProductsDelivery.Monitoring.MessageGroupNumber = nowStr + '01'; ProductsDelivery.GeneralData = new NFM110Rest.GeneralData[] { generalData1 }; generalData1.DeliveryNote = 'DeliveryNote'; NFM110Rest.DnInformation dnInfo1 = new NFM110Rest.DnInformation(); generalData1.DnInformation = new NFM110Rest.DnInformation[] { dnInfo1 }; generalData1.EndUserNo = contact.Management_Code__c; generalData1.DepartmentNo = contact.Management_Code__c; //generalData1.SoNo = coc.Name; generalData1.InquiryNo = 'Name001,Name001'; dnInfo1.SorLMark = 'L'; dnInfo1.OTCode = pro1.OT_CODE_Text__c; dnInfo1.SerialNoorLotNo = '85K'; dnInfo1.Barcode = 'testbarcode0011085K250AAAAA'; dnInfo1.TracingCode = 'AAAAA'; dnInfo1.VALUE = '123'; dnInfo1.GuaranteePrice = '1'; dnInfo1.MaintenancePrice = '1'; dnInfo1.ServicePrice = '1'; System.Test.startTest(); BatchIF_Log__c rowData = NFMUtil.saveRowData(ProductsDelivery.Monitoring, 'NFM110', ProductsDelivery.GeneralData); if (String.isBlank(rowData.Log__c) == false) NFM110Rest.main(rowData.Id); System.Test.stopTest(); } //促销产品 static testMethod void coc_romotionPro() { initHpData(); StaticParameter.EscapeConsumableOrderDetail2Trigger = true; StaticParameter.EscapeNFM007Trigger = true; StaticParameter.EscapeOpportunityBefUpdTrigger = true; StaticParameter.EscapeOpportunityHpDeptUpdTrigger = true; StaticParameter.EscapeSyncOpportunityTrigger = true; StaticParameter.EscapeSyncProduct2Trigger = true; List conOrder_Order = [select Id from RecordType where IsActive = true and SobjectType = 'Consumable_order__c' and Name = '01 订单']; if (conOrder_Order.size() == 0) { return; } List conOrderDetail_Order = [select Id from RecordType where IsActive = true and SobjectType = 'Consumable_orderdetails__c' and Name = '订单']; if (conOrderDetail_Order.size() == 0) { return; } List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売店']; if (rectCo.size() == 0) { return; } List rectContract = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '契約']; if (rectCo.size() == 0) { return; } Id pricebookId = ControllerUtil.getStandardPricebook().Id; // 产品 Product2 prd1 = new Product2( Virtual_Contract__c = true, Name = 'name01', IsActive = true, Asset_Model_No__c = 'NFM110Prd1', ProductCode = 'NFM110Prd1', ProductCode_Ext__c = 'NFM110Prd1', Manual_Entry__c = false, //SFDA_Status__c='有効', Intra_Trade_List_RMB_Date1__c = Date.today().addDays(-1), Intra_Trade_List_RMB_Date2__c = Date.today().addDays(-1), Intra_Trade_List_RMB_End_Date1__c = Date.today().addDays(1), Intra_Trade_List_RMB_End_Date2__c = Date.today().addDays(1), Intra_Trade_List_RMB_1__c = 100, Intra_Trade_List_RMB_2__c = 200, Intra_Trade_Cost_RMB_Date1__c = Date.today().addDays(-1), Intra_Trade_Cost_RMB_Date2__c = Date.today().addDays(-1), Intra_Trade_Cost_RMB_End_Date1__c = Date.today().addDays(1), Intra_Trade_Cost_RMB_End_Date2__c = Date.today().addDays(1), Intra_Trade_Cost_RMB_1__c = 10, Intra_Trade_Cost_RMB_2__c = 20, Dealer_special_Object__c = true, SFDA_Approbated_Status__c = '不要', Product_Status__c = '正常销售' ); insert new Product2[] {prd1}; // 価格表エントリを作成する PricebookEntry entry = new PricebookEntry( Pricebook2Id = pricebookId, Product2Id = prd1.Id); entry.UnitPrice = 0; entry.IsActive = true; entry.UseStandardPrice = false; entry.CurrencyIsoCode = 'CNY'; insert new PricebookEntry[] {entry}; //经销商、联系人、用户信息 Account myAccount1 = new Account(name = 'Testaccount001', Dealer_discount__c = 20, Ban_On_Use_Date__c = Date.today().addDays(1), Business_Paper_Expiration_Date__c = Date.today().addDays(1), Tax_Practice_Expiration_Date__c = Date.today().addDays(1), Medical_Equipment_Expiration_Date__c = Date.today().addDays(1), RecordTypeId = rectCo[0].Id); insert myAccount1; //医疗器械经营许可证 License_Information__c linc = new License_Information__c( name = 'Test20181204', LicenseType__c = '医疗器械经营许可证', BusinessLicense__c = '20180522', ValidFrom__c = date.newinstance(2018, 05, 22), ValidTo__c = date.newinstance(2088, 05, 22), Scope3__c = '6815;6822;6823;6825', LicenseAndAccount__c = myAccount1.Id ); insert linc; Product_Register__c prc = new Product_Register__c(Name = '国械注进20162220210', MedPrdClass__c = '3', ValidFrom__c = date.newinstance(2018, 07, 22), ValidTo__c = date.newinstance(2028, 07, 22), RegisterNoClass_Old__c = '6815', RegisterNoClass_New__c = '6815', RegisterNoStatus__c = '不要' ); insert prc; //新旧关系对照表 //Product_Register_contrast__c prcc = new Product_Register_contrast__c( // Name = 'Test20181204', // Register_new__c = '314', // Register_old__c = '36815' // ); //insert prcc; //产品-产品注册证关系 Product_Register_Link__c prlc = new Product_Register_Link__c( Product2__c = prd1.Id, Product_Register__c = prc.Id ); insert prlc; Account acc1 = [select Id, Name, Is_Active_Formula__c from Account where Id = : myAccount1.Id]; System.assertEquals('有效', acc1.Is_Active_Formula__c); //经销商有效合同 Account myAccount2 = new Account(name = 'Testaccount002', RecordTypeId = rectContract[0].Id, Contract_Decide_Start_Date__c = Date.today().addDays(-1), Contract_Decide_End_Date__c = Date.today().addDays(1), Contract_Start_Date__c = Date.today().addDays(-1), Contract_End_Date__c = Date.today().addDays(1), Agent_Ref__c = myAccount1.Id, ET_SP_Dealer__c = true, Business_Assistant__c = UserInfo.getUserId(), ParentId = myAccount1.Id); insert myAccount2; Account acc2 = [select Id, Name, Management_Code__c, Is_Active_Formula__c from Account where Id = : myAccount2.Id]; System.assertEquals('有效', acc2.Is_Active_Formula__c); Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'NFM110Prd1', Product2__c = prd1.id); //Product2__c pro2 = new Product2__c(Name='Pro002',OT_CODE_Text__c='NFM110Prd2',Product2__c=prd2.id); insert new Product2__c[] {pro1}; Consumable_order__c coc = new Consumable_order__c(Name = 'Name001', Dealer_Info__c = myAccount1.Id, Order_status__c = '批准', RecordTypeid = conOrder_Order[0].Id, Contract_application_decision__c = 'Name001' , SalesManager__c = UserInfo.getUserId(), Order_effective_contact__c = myAccount2.Id ); insert coc; Consumable_orderdetails__c codc = new Consumable_orderdetails__c(Name = 'orderdetails001', Consumable_order__c = coc.id, Consumable_Product__c = pro1.id, RecordTypeId = conOrderDetail_Order[0].Id, Consumable_count__c = 2, Intra_Trade_List_RMB__c = 100); insert codc; System.Test.startTest(); SendConsumableordertosap.sendSAP(coc.id); Opportunity[] coc12 = [select id, Name, Opportunity_No__c, SAP_Province__c from Opportunity]; System.assertEquals(1, coc12.size()); NFM110Rest.GeneralData generalData1 = new NFM110Rest.GeneralData(); NFM110Rest.ProductsDelivery ProductsDelivery = new NFM110Rest.ProductsDelivery(); Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); ProductsDelivery.Monitoring = new NFMUtil.Monitoring(); ProductsDelivery.Monitoring.MessageGroupNumber = nowStr + '01'; ProductsDelivery.GeneralData = new NFM110Rest.GeneralData[] { generalData1 }; generalData1.DeliveryNote = 'DeliveryNote'; NFM110Rest.DnInformation dnInfo1 = new NFM110Rest.DnInformation(); generalData1.DnInformation = new NFM110Rest.DnInformation[] { dnInfo1 }; generalData1.EndUserNo = acc2.Management_Code__c; generalData1.DepartmentNo = acc2.Management_Code__c; //generalData1.SoNo = coc.Name; generalData1.InquiryNo = coc12[0].Opportunity_No__c + ','; dnInfo1.SorLMark = 'L'; dnInfo1.OTCode = pro1.OT_CODE_Text__c; dnInfo1.SerialNoorLotNo = '85K'; dnInfo1.Barcode = 'testbarcode001250AAAAA'; dnInfo1.TracingCode = 'AAAAA'; dnInfo1.VALUE = '123'; dnInfo1.GuaranteePrice = '1'; dnInfo1.MaintenancePrice = '1'; dnInfo1.ServicePrice = '1'; //System.Test.startTest(); BatchIF_Log__c rowData = NFMUtil.saveRowData(ProductsDelivery.Monitoring, 'NFM110', ProductsDelivery.GeneralData); if (String.isBlank(rowData.Log__c) == false) NFM110Rest.executefuture(rowData.Id); //NFM110WebService.NFM110(ProductsDelivery); System.Test.stopTest(); Consumable_order_details2__c[] cod2 = [select id, name, Direct_Arrive_Product__c from Consumable_order_details2__c]; System.assertEquals(1, cod2.size()); System.assertEquals(false, cod2[0].Direct_Arrive_Product__c); //List rowbl = [Select Id, Log__c, ErrorLog__c from BatchIF_Log__c where RowDataFlg__c = false and Type__c = 'NFM110' order by CreatedDate desc]; //System.assertEquals('1', rowbl[0].ErrorLog__c); } @isTest //直销耗材信息 OCM直销 包括ET和非ET24小时 //直销产品发货 static void direct_sales() { initHpData(); Product2 prd = new Product2(Virtual_Contract__c = true,Name = 'NFM110Prd1', ProductCode = 'NFM110Prd1', ProductCode_Ext__c = 'NFM110Prd1', Manual_Entry__c = false, Dealer_special_Object__c = true); insert prd; Product2__c pro1 = new Product2__c(Name = 'NFM110Prd1', OT_CODE_Text__c = 'NFM110Prd1', Product2__c = prd.id); insert pro1; Opportunity opp = new Opportunity(Name = 'aiueo', StageName = '出荷', CloseDate = Date.today(), Opportunity_Category__c = 'ET', Sales_Root__c = 'OCM直接販売', Trade__c = '内貿'); insert opp; Opportunity opps = [select Id, Name, Opportunity_No__c, Sales_Root__c, Trade__c from Opportunity where Id = :opp.Id ]; System.assertEquals('内貿', opps.Trade__c); System.assertEquals('OCM直接販売', opps.Sales_Root__c); Statu_Achievements__c sta = new Statu_Achievements__c( Name = 'test01', Opportunity__c = opp.Id, DeliveryStatus__c = 'test', PaymentRate__c = '1234', ContractAmount__c = 0, UnshippedAmount__c = 0, End_User_price__c = 0, AssignmentStatus__c = '全部分配', Last_week__c = '5 货齐,未付款,无用户合同', X2weeks_ago__c = '4 备货中', X3Weeks_ago__c = '3 已付款,无用户合同', X4weeks_ago__c = '2 待付款', X5weeks_ago__c = '1 全没有', orderType__c = 'ZM16' ); insert sta; NFM110Rest.GeneralData generalData1 = new NFM110Rest.GeneralData(); NFM110Rest.ProductsDelivery ProductsDelivery = new NFM110Rest.ProductsDelivery(); Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); ProductsDelivery.Monitoring = new NFMUtil.Monitoring(); ProductsDelivery.Monitoring.MessageGroupNumber = nowStr + '01'; ProductsDelivery.GeneralData = new NFM110Rest.GeneralData[] { generalData1 }; generalData1.DeliveryNote = 'DeliveryNote'; NFM110Rest.DnInformation dnInfo1 = new NFM110Rest.DnInformation(); NFM110Rest.DnInformation dnInfo2 = new NFM110Rest.DnInformation(); generalData1.DnInformation = new NFM110Rest.DnInformation[] { dnInfo1, dnInfo2 }; generalData1.EndUserNo = company.Management_Code_Auto__c; generalData1.DepartmentNo = depart1.Management_Code_Auto__c; generalData1.SoNo = sta.Name; generalData1.InquiryNo = opps.Opportunity_No__c + ',test01'; generalData1.ReturnMark = '3'; dnInfo1.SorLMark = 'L'; dnInfo1.OTCode = prd.ProductCode_Ext__c; dnInfo1.SerialNoorLotNo = '2577010001675'; dnInfo1.Barcode = 'Barcodetest250AAAA'; dnInfo1.TracingCode = 'AAAAA'; dnInfo1.VALUE = '123'; dnInfo1.GuaranteePrice = '1'; dnInfo1.MaintenancePrice = '1'; dnInfo1.ServicePrice = '1'; dnInfo2.SorLMark = 'S'; dnInfo2.OTCode = prd.ProductCode_Ext__c; dnInfo2.Barcode = 'testbarcode001'; dnInfo2.SerialNoorLotNo = '2577010001675'; dnInfo2.VALUE = '123'; dnInfo2.ProvistonPeriod = '03'; dnInfo2.GuaranteePeriod = '05'; dnInfo2.GuaranteeType = '市场多年保修'; dnInfo2.GuaranteePrice = '1'; dnInfo2.MaintenancePrice = '1'; dnInfo2.ServicePrice = '1'; dnInfo2.GuaranteePeriod = '05'; System.Test.startTest(); BatchIF_Log__c rowData = NFMUtil.saveRowData(ProductsDelivery.Monitoring, 'NFM110', ProductsDelivery.GeneralData); if (String.isBlank(rowData.Log__c) == false) NFM110Rest.main(rowData.Id); //NFM110WebService.NFM110(ProductsDelivery); System.Test.stopTest(); Asset[] rslts = [select Id, Hospital__c, AccountId, Product2Id, Backorder__c from Asset]; System.assertEquals(2, rslts.size()); } @isTest //直销退货发货 static void direct_return() { initHpData(); Product2 prd = new Product2(Virtual_Contract__c = true,Name = 'NFM110Prd1', ProductCode = 'NFM110Prd1', ProductCode_Ext__c = 'NFM110Prd1', Manual_Entry__c = false, Dealer_special_Object__c = true, MDM_Model_No__c = 'NFM110Prd1'); insert prd; Product2__c pro1 = new Product2__c(Name = 'NFM110Prd1', OT_CODE_Text__c = 'NFM110Prd1', Product2__c = prd.id); insert pro1; Product2 prd2 = new Product2(Virtual_Contract__c = true,Name = 'NFM110Prd2', ProductCode = 'NFM110Prd2', ProductCode_Ext__c = 'NFM110Prd2', Manual_Entry__c = false, Dealer_special_Object__c = true, MDM_Model_No__c = 'NFM110Prd1'); insert prd2; Product2__c pro2 = new Product2__c(Name = 'NFM110Prd2', OT_CODE_Text__c = 'NFM110Prd2', Product2__c = prd2.id); insert pro2; Asset ast = new Asset(Name = 'NFM110Ast2', AccountId = depart1.Id, Department_Class__c = section1.Id, Hospital__c = company.Id, Product2Id = prd.Id, SerialNumber = '2577010001676(BBBBB)', Guarantee_period_for_products__c = Date.today() ); insert ast; Opportunity opp = new Opportunity(Name = 'aiueo', StageName = '出荷', CloseDate = Date.today(), Sales_Root__c = 'OCM直接販売'); insert opp; Opportunity opps = [select Id, Name, Opportunity_No__c, Sales_Root__c from Opportunity where Id = :opp.Id ]; System.assertEquals('OCM直接販売', opps.Sales_Root__c); Statu_Achievements__c sta = new Statu_Achievements__c( Name = 'test01', Opportunity__c = opp.Id, DeliveryStatus__c = 'test', PaymentRate__c = '1234', ContractAmount__c = 0, UnshippedAmount__c = 0, End_User_price__c = 0, AssignmentStatus__c = '全部分配', Last_week__c = '5 货齐,未付款,无用户合同', X2weeks_ago__c = '4 备货中', X3Weeks_ago__c = '3 已付款,无用户合同', X4weeks_ago__c = '2 待付款', X5weeks_ago__c = '1 全没有', orderType__c = 'ZM16' ); insert sta; NFM110Rest.GeneralData generalData1 = new NFM110Rest.GeneralData(); NFM110Rest.ProductsDelivery ProductsDelivery = new NFM110Rest.ProductsDelivery(); Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); ProductsDelivery.Monitoring = new NFMUtil.Monitoring(); ProductsDelivery.Monitoring.MessageGroupNumber = nowStr + '01'; ProductsDelivery.GeneralData = new NFM110Rest.GeneralData[] { generalData1 }; generalData1.DeliveryNote = 'DeliveryNote'; NFM110Rest.DnInformation dnInfo1 = new NFM110Rest.DnInformation(); NFM110Rest.DnInformation dnInfo2 = new NFM110Rest.DnInformation(); generalData1.DnInformation = new NFM110Rest.DnInformation[] { dnInfo1, dnInfo2 }; generalData1.EndUserNo = company.Management_Code_Auto__c; generalData1.DepartmentNo = depart1.Management_Code_Auto__c; generalData1.SoNo = sta.Name; generalData1.InquiryNo = opps.Opportunity_No__c + ',test01'; generalData1.ReturnMark = '1'; dnInfo1.SorLMark = 'L'; dnInfo1.OTCode = prd.ProductCode_Ext__c; dnInfo1.SerialNoorLotNo = '2577010001675'; dnInfo1.Barcode = 'Barcodetest250AAAA'; dnInfo1.TracingCode = 'AAAAA'; dnInfo1.VALUE = '1'; dnInfo1.NetWorth = '1'; dnInfo1.GuaranteePrice = '1'; dnInfo1.MaintenancePrice = '1'; dnInfo1.ServicePrice = '1'; dnInfo2.SorLMark = 'S'; dnInfo2.OTCode = prd2.ProductCode_Ext__c; dnInfo2.SerialNoorLotNo = '2577010001676'; dnInfo2.Barcode = 'Barcodetest250BBBBB'; dnInfo2.TracingCode = 'BBBBB'; dnInfo2.VALUE = '1'; dnInfo2.NetWorth = '1'; dnInfo2.GuaranteeType = '市场多年保修'; dnInfo2.GuaranteePrice = '1'; dnInfo2.MaintenancePrice = '1'; dnInfo2.ServicePrice = '1'; dnInfo2.GuaranteePeriod = '05'; System.Test.startTest(); BatchIF_Log__c rowData = NFMUtil.saveRowData(ProductsDelivery.Monitoring, 'NFM110', ProductsDelivery.GeneralData); if (String.isBlank(rowData.Log__c) == false) NFM110Rest.executefuture(rowData.Id); //NFM110WebService.NFM110(ProductsDelivery); System.Test.stopTest(); Asset[] rslts = [select Id, Hospital__c, AccountId, Product2Id, Backorder__c from Asset]; System.assertEquals(1, rslts.size()); // Consumable_order_details2__c[] cod2 = [select id,name,Direct_Arrive_Product__c from Consumable_order_details2__c]; // System.assertEquals(2, cod2.size()); } // 虚拟维修合同 @isTest static void VM_Maintenance_Contract() { initHpData(); StaticParameter.EscapeNFM007Trigger = true; Product2 prd = new Product2(Virtual_Contract__c = true,Name = 'NFM110Prd1', ProductCode = 'NFM110Prd1', ProductCode_Ext__c = 'NFM110Prd1', Manual_Entry__c = false); insert prd; Product2__c pro1 = new Product2__c(Name = 'NFM110Prd1', OT_CODE_Text__c = 'NFM110Prd1', Product2__c = prd.id); insert pro1; Opportunity opp = new Opportunity(Name = 'aiueo', StageName = '出荷', Trade__c = '内貿', CloseDate = Date.today(), AccountId = section1.Id); insert opp; Opportunity opps = [select Id, Name, Opportunity_No__c from Opportunity where Id = :opp.Id ]; // Statu_Achievements__c sta = new Statu_Achievements__c( // Name='test01', // Opportunity__c = opp.Id, // DeliveryStatus__c = 'test', // PaymentRate__c = '1234', // ContractAmount__c = 0, // End_User_price__c = 0, // AssignmentStatus__c = '全部分配', // Last_week__c = '5 货齐,未付款,无用户合同', // X2weeks_ago__c = '4 备货中', // X3Weeks_ago__c = '3 已付款,无用户合同', // X4weeks_ago__c = '2 待付款', // X5weeks_ago__c = '1 全没有' // ); // insert sta; NFM110Rest.GeneralData generalData1 = new NFM110Rest.GeneralData(); NFM110Rest.ProductsDelivery ProductsDelivery = new NFM110Rest.ProductsDelivery(); Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); ProductsDelivery.Monitoring = new NFMUtil.Monitoring(); ProductsDelivery.Monitoring.MessageGroupNumber = nowStr + '01'; ProductsDelivery.GeneralData = new NFM110Rest.GeneralData[] { generalData1 }; generalData1.DeliveryNote = 'DeliveryNote'; NFM110Rest.DnInformation dnInfo1 = new NFM110Rest.DnInformation(); generalData1.DnInformation = new NFM110Rest.DnInformation[] { dnInfo1 }; generalData1.EndUserNo = company.Management_Code_Auto__c; generalData1.DepartmentNo = depart1.Management_Code_Auto__c; generalData1.SoNo = '111111'; //generalData1.SoNo = sta.Name; generalData1.InquiryNo = opps.Opportunity_No__c + ','; dnInfo1.SorLMark = 'S'; dnInfo1.OTCode = prd.ProductCode_Ext__c; dnInfo1.SerialNoorLotNo = '2577010001675'; dnInfo1.GuaranteeType = '市场多年保修'; dnInfo1.ProvistonPeriod = '03'; dnInfo1.GuaranteePeriod = '05'; dnInfo1.VALUE = '123'; dnInfo1.GuaranteePrice = '1'; dnInfo1.MaintenancePrice = '1'; dnInfo1.ServicePrice = '1'; System.Test.startTest(); BatchIF_Log__c rowData = NFMUtil.saveRowData(ProductsDelivery.Monitoring, 'NFM110', ProductsDelivery.GeneralData); if (String.isBlank(rowData.Log__c) == false) NFM110Rest.executefuture(rowData.Id); //NFM110WebService.NFM110(ProductsDelivery); System.Test.stopTest(); Asset[] rslts = [select Id, Hospital__c, AccountId, Product2Id, Backorder__c from Asset]; System.assertEquals(1, rslts.size()); //System.assertEquals(company.Id, rslts[0].Hospital__c); //System.assertEquals(company.Id, rslts[0].AccountId); //System.assertEquals(prd.Id, rslts[0].Product2Id); //System.assertEquals(sta.Id, rslts[0].Backorder__c); } //异常 static testMethod void catehException() { initHpData(); StaticParameter.EscapeNFM007Trigger = true; Product2 prd = new Product2(Virtual_Contract__c = true,Name = 'NFM110Prd1', ProductCode = 'NFM110Prd1', ProductCode_Ext__c = 'NFM110Prd1', Manual_Entry__c = false); insert prd; Product2__c pro1 = new Product2__c(Name = 'NFM110Prd1', OT_CODE_Text__c = 'NFM110Prd1', Product2__c = prd.id); insert pro1; Opportunity opp = new Opportunity(Name = 'aiueo', StageName = '出荷', Trade__c = '内貿', CloseDate = Date.today(), AccountId = section1.Id); insert opp; Opportunity opps = [select Id, Name, Opportunity_No__c from Opportunity where Id = :opp.Id ]; // Statu_Achievements__c sta = new Statu_Achievements__c( // Name='test01', // Opportunity__c = opp.Id, // DeliveryStatus__c = 'test', // PaymentRate__c = '1234', // ContractAmount__c = 0, // End_User_price__c = 0, // AssignmentStatus__c = '全部分配', // Last_week__c = '5 货齐,未付款,无用户合同', // X2weeks_ago__c = '4 备货中', // X3Weeks_ago__c = '3 已付款,无用户合同', // X4weeks_ago__c = '2 待付款', // X5weeks_ago__c = '1 全没有' // ); // insert sta; NFM110Rest.GeneralData generalData1 = new NFM110Rest.GeneralData(); NFM110Rest.ProductsDelivery ProductsDelivery = new NFM110Rest.ProductsDelivery(); Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); ProductsDelivery.Monitoring = new NFMUtil.Monitoring(); ProductsDelivery.Monitoring.MessageGroupNumber = nowStr + '01'; ProductsDelivery.GeneralData = new NFM110Rest.GeneralData[] { generalData1 }; generalData1.DeliveryNote = 'DeliveryNote'; NFM110Rest.DnInformation dnInfo1 = new NFM110Rest.DnInformation(); generalData1.DnInformation = new NFM110Rest.DnInformation[] { dnInfo1 }; generalData1.EndUserNo = company.Management_Code_Auto__c; generalData1.DepartmentNo = null; generalData1.SoNo = '111111'; //generalData1.SoNo = sta.Name; generalData1.InquiryNo = opps.Opportunity_No__c + ','; dnInfo1.SorLMark = 'S'; dnInfo1.OTCode = prd.ProductCode_Ext__c; dnInfo1.SerialNoorLotNo = '2577010001675'; dnInfo1.GuaranteeType = '市场多年保修'; dnInfo1.ProvistonPeriod = '03'; dnInfo1.GuaranteePeriod = '05'; dnInfo1.VALUE = '123'; dnInfo1.GuaranteePrice = '1'; dnInfo1.MaintenancePrice = '1'; dnInfo1.ServicePrice = '1'; System.Test.startTest(); BatchIF_Log__c rowData = NFMUtil.saveRowData(ProductsDelivery.Monitoring, 'NFM110', ProductsDelivery.GeneralData); if (String.isBlank(rowData.Log__c) == false) NFM110Rest.executefuture(rowData.Id); //NFM110WebService.NFM110(ProductsDelivery); System.Test.stopTest(); } @isTest static void test_ET24() { // User loginUser = [Select Id, Alias, Province__c from User where Id =: UserInfo.getUserId()]; // loginUser.Batch_User__c = true; // loginUser.responsibility__c = '华北营业一部'; // loginUser.OCM_Management_Province__c = '北京'; // update loginUser; initHpData(); StaticParameter.EscapeConsumableOrderDetail2Trigger = true; StaticParameter.EscapeNFM007Trigger = true; StaticParameter.EscapeOpportunityBefUpdTrigger = true; StaticParameter.EscapeOpportunityHpDeptUpdTrigger = true; StaticParameter.EscapeSyncOpportunityTrigger = true; StaticParameter.EscapeSyncProduct2Trigger = true; StaticParameter.EscapeAccountTrigger = true; List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売店']; if (rectCo.size() == 0) { return; } List rectCotac = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '契約']; if (rectCotac.size() == 0) { return; } //测试经销商信息 Account myAccount = new Account(name = 'Testaccount002', Dealer_discount__c = 20, RecordTypeId = rectCo[0].Id, Product_Limit_Date__c = 'Test01|5|55,Test02|2|4'); insert myAccount; //测试合同信息 Account contact = new Account(name = 'Testaccount002', RecordTypeId = rectCotac[0].Id, SpecialDealerName__c = 'Testaccount002', ParentId = myAccount.Id, Agent_Ref__c = myAccount.Id, Delete_Flag__c = false, Contract_Department_Class__c = 'ET', Contract_Decide_Start_Date__c = Date.today().addDays(-1), Contract_Decide_End_Date__c = Date.today().addDays(1)); insert contact; contact = [select Management_Code__c from Account where id = :contact.Id]; Product2 prd = new Product2(Virtual_Contract__c = true,Name = 'NFM110Prd1', ProductCode = 'NFM110Prd1', ProductCode_Ext__c = 'NFM110Prd1', Manual_Entry__c = false, MDM_Model_No__c = 'NFM110Ast1', Dealer_special_Object__c = true); insert prd; Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'NFM110Prd1', Product2__c = prd.Id); insert pro1; // Asset ast = new Asset(Name='NFM110Ast1', AccountId=depart1.Id, Department_Class__c=section1.Id, Hospital__c=company.Id, Product2Id=prd.Id, // SerialNumber='2577010001675', Guarantee_period_for_products__c=Date.today() // ); // insert ast; Opportunity opp1 = new Opportunity(Name = 'aiueo1', StageName = '出荷', CurrencyIsoCode = 'CNY', CloseDate = Date.today(), Purchase_Type__c = 'ET24時間販売', Sales_Root__c = '販売店', AccountId = contact.Id); insert opp1; opp1 = [select Id, Opportunity_No__c from Opportunity where Id = :opp1.Id]; // Statu_Achievements__c sta11 = new Statu_Achievements__c(Name='SO0000001', Opportunity__c=opp1.Id, ContractNO__c='sta11', DeliveryStatus__c = '未交付',ContractAmount__c = 0); // insert sta11; NFM110Rest.GeneralData generalData1 = new NFM110Rest.GeneralData(); NFM110Rest.ProductsDelivery ProductsDelivery = new NFM110Rest.ProductsDelivery(); Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); ProductsDelivery.Monitoring = new NFMUtil.Monitoring(); ProductsDelivery.Monitoring.MessageGroupNumber = nowStr + '01'; ProductsDelivery.GeneralData = new NFM110Rest.GeneralData[] { generalData1 }; generalData1.DeliveryNote = 'DeliveryNote'; NFM110Rest.DnInformation dnInfo1 = new NFM110Rest.DnInformation(); generalData1.DnInformation = new NFM110Rest.DnInformation[] { dnInfo1 }; generalData1.EndUserNo = contact.Management_Code__c; generalData1.DepartmentNo = myAccount.Management_Code__c; generalData1.SoNo = '11111111111'; generalData1.InquiryNo = opp1.Opportunity_No__c + ','; dnInfo1.SorLMark = 'S'; dnInfo1.OTCode = prd.ProductCode_Ext__c; dnInfo1.Barcode = 'testbarcode001'; dnInfo1.SerialNoorLotNo = '2577010001675'; dnInfo1.VALUE = '123'; dnInfo1.ProvistonPeriod = '03'; dnInfo1.GuaranteePeriod = '05'; dnInfo1.GuaranteeType = '市场多年保修'; dnInfo1.GuaranteePrice = '1'; dnInfo1.MaintenancePrice = '1'; dnInfo1.ServicePrice = '1'; System.Test.startTest(); BatchIF_Log__c rowData = NFMUtil.saveRowData(ProductsDelivery.Monitoring, 'NFM110', ProductsDelivery.GeneralData); if (String.isBlank(rowData.Log__c) == false) NFM110Rest.main(rowData.Id); //NFM110WebService.NFM110(ProductsDelivery); // List prdList = [select Id, Name, ProductCode, ProductCode_Ext__c, MDM_Model_No__c // from Product2 // where ProductCode_Ext__c = :prd.ProductCode_Ext__c]; // System.assertEquals(1, prdList.size()); //Asset[] rslts = [select Id, Return_Flag__c from Asset where Id=:ast.Id]; //System.assertEquals(1, rslts.size()); // retry_cnt__c がクリアされること List rowbl = [Select Id, Log__c, ErrorLog__c, retry_cnt__c from BatchIF_Log__c where RowDataFlg__c = true and Type__c = 'NFM110' order by CreatedDate desc]; System.assertEquals(1, rowbl.size()); System.assertEquals(0, rowbl[0].retry_cnt__c); // rowbl[0].retry_cnt__c = 1; // update rowbl; // NFM110Rest.main(rowbl[0].id); System.Test.stopTest(); // List bl = [Select Id, Is_Error__c, // Type__c, Log__c, ErrorLog__c,retry_cnt__c // from BatchIF_Log__c // where Id = :rowbl[0].id]; // System.assertEquals(0, bl[0].retry_cnt__c); } @isTest //销售渠道=经销商 包含 ET和非ET24小时 static void test_agency() { initHpData(); StaticParameter.EscapeConsumableOrderDetail2Trigger = true; StaticParameter.EscapeNFM007Trigger = true; StaticParameter.EscapeOpportunityBefUpdTrigger = true; StaticParameter.EscapeOpportunityHpDeptUpdTrigger = true; StaticParameter.EscapeSyncOpportunityTrigger = true; StaticParameter.EscapeSyncProduct2Trigger = true; StaticParameter.EscapeAccountTrigger = true; List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売店']; if (rectCo.size() == 0) { return; } List rectCotac = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '契約']; if (rectCotac.size() == 0) { return; } Product2 prd = new Product2(Virtual_Contract__c = true,Name = 'NFM110Prd1', ProductCode = 'NFM110Prd1', ProductCode_Ext__c = 'NFM110Prd1', Manual_Entry__c = false, MDM_Model_No__c = 'NFM110Ast1', Dealer_special_Object__c = true); insert prd; Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'NFM110Prd1', Product2__c = prd.Id); insert pro1; // Asset ast = new Asset(Name='NFM110Ast1', AccountId=depart1.Id, Department_Class__c=section1.Id, Hospital__c=company.Id, Product2Id=prd.Id, // SerialNumber='2577010001675', Guarantee_period_for_products__c=Date.today() // ); // insert ast; Opportunity opp1 = new Opportunity(Name = 'aiueo1', StageName = '出荷', CurrencyIsoCode = 'CNY', CloseDate = Date.today(), Purchase_Type__c = 'ET24時間販売', Sales_Root__c = '販売店', AccountId = depart1.Id, Department_Class__c = section1.Id, Hospital__c = company.Id, Trade__c = '内貿'); insert opp1; opp1 = [select Id, Opportunity_No__c, Trade__c from Opportunity where Id = :opp1.Id]; System.assertEquals('内貿', opp1.Trade__c); // Statu_Achievements__c sta11 = new Statu_Achievements__c(Name='SO0000001', Opportunity__c=opp1.Id, ContractNO__c='sta11', DeliveryStatus__c = '未交付',ContractAmount__c = 0); // insert sta11; NFM110Rest.GeneralData generalData1 = new NFM110Rest.GeneralData(); NFM110Rest.ProductsDelivery ProductsDelivery = new NFM110Rest.ProductsDelivery(); Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); ProductsDelivery.Monitoring = new NFMUtil.Monitoring(); ProductsDelivery.Monitoring.MessageGroupNumber = nowStr + '01'; ProductsDelivery.GeneralData = new NFM110Rest.GeneralData[] { generalData1 }; generalData1.DeliveryNote = 'DeliveryNote'; NFM110Rest.DnInformation dnInfo1 = new NFM110Rest.DnInformation(); NFM110Rest.DnInformation dnInfo2 = new NFM110Rest.DnInformation(); generalData1.DnInformation = new NFM110Rest.DnInformation[] { dnInfo1, dnInfo2 }; generalData1.EndUserNo = company.Management_Code__c; generalData1.DepartmentNo = depart1.Management_Code__c; generalData1.SoNo = '11111111111'; generalData1.InquiryNo = opp1.Opportunity_No__c + ','; dnInfo1.SorLMark = 'L'; dnInfo1.OTCode = prd.ProductCode_Ext__c; dnInfo1.Barcode = 'testbarcode001'; dnInfo1.SerialNoorLotNo = '2577010001675'; dnInfo1.VALUE = '123'; dnInfo1.ProvistonPeriod = '03'; dnInfo1.GuaranteePeriod = '05'; dnInfo1.GuaranteePrice = '1'; dnInfo1.MaintenancePrice = '1'; dnInfo1.ServicePrice = '1'; dnInfo2.SorLMark = 'S'; dnInfo2.OTCode = prd.ProductCode_Ext__c; dnInfo2.Barcode = 'testbarcode001'; dnInfo2.SerialNoorLotNo = '2577010001675'; dnInfo2.VALUE = '123'; dnInfo2.ProvistonPeriod = '03'; dnInfo2.GuaranteePeriod = '05'; dnInfo2.GuaranteeType = '市场多年保修'; dnInfo2.GuaranteePrice = '1'; dnInfo2.MaintenancePrice = '1'; dnInfo2.ServicePrice = '1'; System.Test.startTest(); BatchIF_Log__c rowData = NFMUtil.saveRowData(ProductsDelivery.Monitoring, 'NFM110', ProductsDelivery.GeneralData); if (String.isBlank(rowData.Log__c) == false) NFM110Rest.main(rowData.Id); //NFM110WebService.NFM110(ProductsDelivery); // List prdList = [select Id, Name, ProductCode, ProductCode_Ext__c, MDM_Model_No__c // from Product2 // where ProductCode_Ext__c = :prd.ProductCode_Ext__c]; // System.assertEquals(1, prdList.size()); //Asset[] rslts = [select Id, Return_Flag__c from Asset where Id=:ast.Id]; //System.assertEquals(1, rslts.size()); // retry_cnt__c がクリアされること List rowbl = [Select Id, Log__c, ErrorLog__c, retry_cnt__c from BatchIF_Log__c where RowDataFlg__c = true and Type__c = 'NFM110' order by CreatedDate desc]; System.assertEquals(1, rowbl.size()); System.assertEquals(0, rowbl[0].retry_cnt__c); // rowbl[0].retry_cnt__c = 1; // update rowbl; // NFM110Rest.main(rowbl[0].id); System.Test.stopTest(); // List bl = [Select Id, Is_Error__c, // Type__c, Log__c, ErrorLog__c,retry_cnt__c // from BatchIF_Log__c // where Id = :rowbl[0].id]; // System.assertEquals(0, bl[0].retry_cnt__c); } /* 测试调用execute方法 tcm 20211110 79-103 */ @isTest static void test_method_execute() { Test.startTest(); RestRequest req = new RestRequest(); RestResponse res = new RestResponse(); String JsonMsg = '{"ProductsDelivery":{"Monitoring":{"Tag":"MSGH","Sender":"SAP","Receiver":"SFDC","MessageType":"NFM110","MessageGroupNumber":"20210000004695","NumberOfRecord":"4","TransmissionDateTime":"2021-06-23","Text":""},"GeneralData":[]}}'; req.requestURI = 'services/apexrest/NFM110/execute'; req.httpMethod = 'POST'; req.requestBody = Blob.valueof(JsonMsg); RestContext.request = req; RestContext.response= res; NFM110Rest.execute(); Test.stopTest(); } @isTest //销售渠道=经销商 包含 ET和非ET24小时 tcm 2 static void duonianbao_return() { initHpData(); StaticParameter.EscapeConsumableOrderDetail2Trigger = true; StaticParameter.EscapeNFM007Trigger = true; StaticParameter.EscapeOpportunityBefUpdTrigger = true; StaticParameter.EscapeOpportunityHpDeptUpdTrigger = true; StaticParameter.EscapeSyncOpportunityTrigger = true; StaticParameter.EscapeSyncProduct2Trigger = true; StaticParameter.EscapeAccountTrigger = true; List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売店']; if (rectCo.size() == 0) { return; } List rectCotac = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '契約']; if (rectCotac.size() == 0) { return; } Product2 prd = new Product2(Name = 'NFM110Prd1', ProductCode = 'NFM110Prd1', ProductCode_Ext__c = 'NFM110Prd1', Manual_Entry__c = false, MDM_Model_No__c = 'NFM110Prd1', Dealer_special_Object__c = true); insert prd; Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'NFM110Prd1', Product2__c = prd.Id); insert pro1; Asset ast = new Asset(Name='NFM110Ast1', AccountId=depart1.Id, Department_Class__c=section1.Id, Hospital__c=company.Id, Product2Id=prd.Id, SerialNumber='2577010001675', Guarantee_period_for_products__c=Date.today() ); insert ast; Opportunity opp1 = new Opportunity(Name = 'aiueo1', StageName = '出荷', CurrencyIsoCode = 'CNY', CloseDate = Date.today(), Purchase_Type__c = 'ET24時間販売', Sales_Root__c = 'OCM直接販売', AccountId = depart1.Id, Department_Class__c = section1.Id, Hospital__c = company.Id, Trade__c = '内貿'); insert opp1; opp1 = [select Id, Opportunity_No__c, Trade__c from Opportunity where Id = :opp1.Id]; prd = [select Id, ProductCode_Ext__c from Product2 where Id = :prd.Id]; System.assertEquals('NFM110Prd1', prd.ProductCode_Ext__c); System.assertEquals('内貿', opp1.Trade__c); // 多年保合同 Maintenance_Contract__c contract = new Maintenance_Contract__c(); contract.Name = 'tect contract'; contract.status__c ='契約'; contract.Maintenance_Contract_No__c = 'DN-' + opp1.Opportunity_No__c; contract.Contract_Conclusion_Date__c = Date.today(); contract.Hospital__c = company.Id; contract.Department_Class__c = section1.Id; contract.Department__c = depart1.Id; contract.Contract_Start_Date__c = Date.today().addDays( -10); // 10日前 contract.Contract_End_Date__c = Date.today().addDays( 5); // 5日後 contract.SalesOfficeCode_selection__c = '北京RC'; contract.RecordTypeId = Schema.SObjectType.Maintenance_Contract__c.getRecordTypeInfosByDeveloperName().get('VM_Contract').getRecordTypeId(); contract.Opportunity__c = opp1.Id; insert contract; Maintenance_Contract_Asset__c middleTable = new Maintenance_Contract_Asset__c(); middleTable.Asset__c = ast.Id; middleTable.Maintenance_Contract__c = contract.id; middleTable.endDateGurantee_Text__c = Date.today().addDays(1); insert middleTable; // Statu_Achievements__c sta11 = new Statu_Achievements__c(Name='SO0000001', Opportunity__c=opp1.Id, ContractNO__c='sta11', DeliveryStatus__c = '未交付',ContractAmount__c = 0); // insert sta11; NFM110Rest.GeneralData generalData1 = new NFM110Rest.GeneralData(); NFM110Rest.ProductsDelivery ProductsDelivery = new NFM110Rest.ProductsDelivery(); Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); ProductsDelivery.Monitoring = new NFMUtil.Monitoring(); ProductsDelivery.Monitoring.MessageGroupNumber = nowStr + '01'; ProductsDelivery.GeneralData = new NFM110Rest.GeneralData[] { generalData1 }; generalData1.DeliveryNote = 'DeliveryNote'; NFM110Rest.DnInformation dnInfo1 = new NFM110Rest.DnInformation(); NFM110Rest.DnInformation dnInfo2 = new NFM110Rest.DnInformation(); generalData1.DnInformation = new NFM110Rest.DnInformation[] { dnInfo1, dnInfo2 }; generalData1.EndUserNo = company.Management_Code__c; generalData1.DepartmentNo = depart1.Management_Code__c; generalData1.SoNo = '11111111111'; generalData1.InquiryNo = opp1.Opportunity_No__c + ','; generalData1.ReturnMark = '1'; dnInfo1.SorLMark = 'L'; dnInfo1.OTCode = prd.ProductCode_Ext__c; dnInfo1.Barcode = 'testbarcode001'; dnInfo1.SerialNoorLotNo = '2577010001675'; dnInfo1.VALUE = '123'; dnInfo1.ProvistonPeriod = '03'; dnInfo1.GuaranteePeriod = '05'; dnInfo1.GuaranteePrice = '1'; dnInfo1.MaintenancePrice = '1'; dnInfo1.ServicePrice = '1'; dnInfo2.SorLMark = 'S'; dnInfo2.OTCode = prd.ProductCode_Ext__c; dnInfo2.Barcode = 'testbarcode001'; dnInfo2.SerialNoorLotNo = '2577010001675'; dnInfo2.VALUE = '123'; dnInfo2.ProvistonPeriod = '03'; dnInfo2.GuaranteePeriod = '05'; dnInfo2.GuaranteeType = '市场多年保修'; dnInfo2.GuaranteePrice = '1'; dnInfo2.MaintenancePrice = '1'; dnInfo2.ServicePrice = '1'; System.Test.startTest(); BatchIF_Log__c rowData = NFMUtil.saveRowData(ProductsDelivery.Monitoring, 'NFM110', ProductsDelivery.GeneralData); if (String.isBlank(rowData.Log__c) == false) NFM110Rest.main(rowData.Id); //NFM110WebService.NFM110(ProductsDelivery); // List prdList = [select Id, Name, ProductCode, ProductCode_Ext__c, MDM_Model_No__c // from Product2 // where ProductCode_Ext__c = :prd.ProductCode_Ext__c]; // System.assertEquals(1, prdList.size()); //Asset[] rslts = [select Id, Return_Flag__c from Asset where Id=:ast.Id]; //System.assertEquals(1, rslts.size()); // retry_cnt__c がクリアされること List rowbl = [Select Id, Log__c, ErrorLog__c, retry_cnt__c from BatchIF_Log__c where RowDataFlg__c = true and Type__c = 'NFM110' order by CreatedDate desc]; System.assertEquals(1, rowbl.size()); System.assertEquals(1, rowbl[0].retry_cnt__c); // rowbl[0].retry_cnt__c = 1; // update rowbl; // NFM110Rest.main(rowbl[0].id); System.Test.stopTest(); // List bl = [Select Id, Is_Error__c, // Type__c, Log__c, ErrorLog__c,retry_cnt__c // from BatchIF_Log__c // where Id = :rowbl[0].id]; // System.assertEquals(0, bl[0].retry_cnt__c); } // tcm 4 @isTest static void duonianbao2_return() { initHpData(); StaticParameter.EscapeConsumableOrderDetail2Trigger = true; StaticParameter.EscapeNFM007Trigger = true; StaticParameter.EscapeOpportunityBefUpdTrigger = true; StaticParameter.EscapeOpportunityHpDeptUpdTrigger = true; StaticParameter.EscapeSyncOpportunityTrigger = true; StaticParameter.EscapeSyncProduct2Trigger = true; StaticParameter.EscapeAccountTrigger = true; List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売店']; if (rectCo.size() == 0) { return; } List rectCotac = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '契約']; if (rectCotac.size() == 0) { return; } Product2 prd = new Product2(Name = 'NFM110Prd1', ProductCode = 'NFM110Prd1', ProductCode_Ext__c = 'NFM110Prd1', Manual_Entry__c = false, MDM_Model_No__c = 'NFM110Prd1', Dealer_special_Object__c = true); insert prd; Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'NFM110Prd1', Product2__c = prd.Id); insert pro1; Asset ast = new Asset(Name='NFM110Ast1', AccountId=depart1.Id, Department_Class__c=section1.Id, Hospital__c=company.Id, Product2Id=prd.Id, SerialNumber='2577010001675(ASDFG)', Guarantee_period_for_products__c=Date.today() ); insert ast; Opportunity opp1 = new Opportunity(Name = 'aiueo1', StageName = '出荷', CurrencyIsoCode = 'CNY', CloseDate = Date.today(), Purchase_Type__c = 'ET24時間販売', Sales_Root__c = 'OCM直接販売', AccountId = depart1.Id, Department_Class__c = section1.Id, Hospital__c = company.Id, Trade__c = '内貿'); insert opp1; opp1 = [select Id, Opportunity_No__c, Trade__c from Opportunity where Id = :opp1.Id]; prd = [select Id, ProductCode_Ext__c from Product2 where Id = :prd.Id]; System.assertEquals('NFM110Prd1', prd.ProductCode_Ext__c); System.assertEquals('内貿', opp1.Trade__c); // TODO QIS_Report__c qrc=new QIS_Report__c(nonyushohin__c=ast.Id,QIS_Status__c='完毕',QIS_result_follow__c='测试类'); insert qrc; List testqis=[select id, ReplaceDeliveryDate__c, OppNumberAndProductCode_Ext__c from QIS_Report__c where QIS_Status__c != '取消' and ReplaceDeliveryDate__c = null]; system.assertEquals(1,testqis.size()); // 多年保合同 Maintenance_Contract__c contract = new Maintenance_Contract__c(); contract.Name = 'tect contract'; contract.status__c ='契約'; contract.Maintenance_Contract_No__c = 'DN-' + opp1.Opportunity_No__c; contract.Contract_Conclusion_Date__c = Date.today(); contract.Hospital__c = company.Id; contract.Department_Class__c = section1.Id; contract.Department__c = depart1.Id; contract.Contract_Start_Date__c = Date.today().addDays( -10); // 10日前 contract.Contract_End_Date__c = Date.today().addDays( 5); // 5日後 contract.SalesOfficeCode_selection__c = '北京RC'; contract.RecordTypeId = Schema.SObjectType.Maintenance_Contract__c.getRecordTypeInfosByDeveloperName().get('VM_Contract').getRecordTypeId(); contract.Opportunity__c = opp1.Id; insert contract; Maintenance_Contract_Asset__c middleTable = new Maintenance_Contract_Asset__c(); middleTable.Asset__c = ast.Id; middleTable.Maintenance_Contract__c = contract.id; middleTable.endDateGurantee_Text__c = Date.today().addDays(1); insert middleTable; // Statu_Achievements__c sta11 = new Statu_Achievements__c(Name='SO0000001', Opportunity__c=opp1.Id, ContractNO__c='sta11', DeliveryStatus__c = '未交付',ContractAmount__c = 0); // insert sta11; NFM110Rest.GeneralData generalData1 = new NFM110Rest.GeneralData(); NFM110Rest.ProductsDelivery ProductsDelivery = new NFM110Rest.ProductsDelivery(); Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); ProductsDelivery.Monitoring = new NFMUtil.Monitoring(); ProductsDelivery.Monitoring.MessageGroupNumber = nowStr + '01'; ProductsDelivery.GeneralData = new NFM110Rest.GeneralData[] { generalData1 }; generalData1.DeliveryNote = 'DeliveryNote'; NFM110Rest.DnInformation dnInfo1 = new NFM110Rest.DnInformation(); NFM110Rest.DnInformation dnInfo2 = new NFM110Rest.DnInformation(); generalData1.DnInformation = new NFM110Rest.DnInformation[] { dnInfo1, dnInfo2 }; generalData1.EndUserNo = company.Management_Code__c; generalData1.DepartmentNo = depart1.Management_Code__c; generalData1.SoNo = '11111111111'; generalData1.InquiryNo = opp1.Opportunity_No__c + ','; generalData1.ReturnMark = '1'; dnInfo1.SorLMark = 'S'; dnInfo1.OTCode = prd.ProductCode_Ext__c; dnInfo1.Barcode = 'testbarcode001'; dnInfo1.SerialNoorLotNo = '2577010001675'; dnInfo1.VALUE = '123'; dnInfo1.ProvistonPeriod = '03'; dnInfo1.GuaranteePeriod = '05'; dnInfo1.GuaranteePrice = '1'; dnInfo1.MaintenancePrice = '1'; dnInfo1.ServicePrice = '1'; dnInfo2.SorLMark = 'L'; dnInfo2.OTCode = prd.ProductCode_Ext__c; dnInfo2.Barcode = 'testbarcode001'; dnInfo2.SerialNoorLotNo = '2577010001675'; dnInfo2.VALUE = '123'; dnInfo2.ProvistonPeriod = '03'; dnInfo2.TracingCode = 'ASDFG'; dnInfo2.GuaranteePeriod = '05'; // dnInfo2.GuaranteeType = '市场多年保修'; dnInfo2.GuaranteePrice = '1'; dnInfo2.MaintenancePrice = '1'; dnInfo2.ServicePrice = '1'; System.Test.startTest(); BatchIF_Log__c rowData = NFMUtil.saveRowData(ProductsDelivery.Monitoring, 'NFM110', ProductsDelivery.GeneralData); if (String.isBlank(rowData.Log__c) == false) NFM110Rest.main(rowData.Id); //NFM110WebService.NFM110(ProductsDelivery); // List prdList = [select Id, Name, ProductCode, ProductCode_Ext__c, MDM_Model_No__c // from Product2 // where ProductCode_Ext__c = :prd.ProductCode_Ext__c]; // System.assertEquals(1, prdList.size()); //Asset[] rslts = [select Id, Return_Flag__c from Asset where Id=:ast.Id]; //System.assertEquals(1, rslts.size()); // retry_cnt__c がクリアされること List rowbl = [Select Id, Log__c, ErrorLog__c, retry_cnt__c from BatchIF_Log__c where RowDataFlg__c = true and Type__c = 'NFM110' order by CreatedDate desc]; // System.assertEquals(1, rowbl.size()); // System.assertEquals(1, rowbl[0].retry_cnt__c); // rowbl[0].retry_cnt__c = 1; // update rowbl; // NFM110Rest.main(rowbl[0].id); System.Test.stopTest(); // List bl = [Select Id, Is_Error__c, // Type__c, Log__c, ErrorLog__c,retry_cnt__c // from BatchIF_Log__c // where Id = :rowbl[0].id]; // System.assertEquals(0, bl[0].retry_cnt__c); } @isTest static void duonianbao3_return() { initHpData(); StaticParameter.EscapeConsumableOrderDetail2Trigger = true; StaticParameter.EscapeNFM007Trigger = true; StaticParameter.EscapeOpportunityBefUpdTrigger = true; StaticParameter.EscapeOpportunityHpDeptUpdTrigger = true; StaticParameter.EscapeSyncOpportunityTrigger = true; StaticParameter.EscapeSyncProduct2Trigger = true; StaticParameter.EscapeAccountTrigger = true; List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売店']; if (rectCo.size() == 0) { return; } List rectCotac = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '契約']; if (rectCotac.size() == 0) { return; } Product2 prd = new Product2(Name = 'NFM110Prd1', ProductCode = 'NFM110Prd1', ProductCode_Ext__c = 'NFM110Prd1', Manual_Entry__c = false, MDM_Model_No__c = 'NFM110Prd1', Dealer_special_Object__c = true); insert prd; Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'NFM110Prd1', Product2__c = prd.Id); insert pro1; Opportunity opp1 = new Opportunity(Name = 'aiueo1', StageName = '出荷', CurrencyIsoCode = 'CNY', CloseDate = Date.today(), Purchase_Type__c = 'ET24時間販売', Sales_Root__c = 'OCM直接販売', AccountId = depart1.Id, Department_Class__c = section1.Id, Hospital__c = company.Id, Trade__c = '内貿',Opportunity_No__c='BJ--0784113'); insert opp1; Statu_Achievements__c sta11 = new Statu_Achievements__c(Name='SO0000001', Opportunity__c=opp1.Id, ContractNO__c='sta11', DeliveryStatus__c = '未交付',ContractAmount__c = 0); insert sta11; Asset ast = new Asset(Name='NFM110Ast1', AccountId=depart1.Id, Department_Class__c=section1.Id, Hospital__c=company.Id, Product2Id=prd.Id, SerialNumber='2577010001675(ASDFG)', Guarantee_period_for_products__c=Date.today(),Backorder__c=sta11.Id ); insert ast; opp1 = [select Id, Opportunity_No__c, Trade__c from Opportunity where Id = :opp1.Id]; prd = [select Id, ProductCode_Ext__c from Product2 where Id = :prd.Id]; System.assertEquals('NFM110Prd1', prd.ProductCode_Ext__c); System.assertEquals('内貿', opp1.Trade__c); // TODO QIS_Report__c qrc=new QIS_Report__c(nonyushohin__c=ast.Id,QIS_Status__c='完毕',QIS_result_follow__c='测试类'); insert qrc; List testqis=[select id, ReplaceDeliveryDate__c, OppNumberAndProductCode_Ext__c from QIS_Report__c where QIS_Status__c != '取消' and ReplaceDeliveryDate__c = null]; system.assertEquals(1,testqis.size()); // 多年保合同 Maintenance_Contract__c contract = new Maintenance_Contract__c(); contract.Name = 'tect contract'; contract.status__c ='契約'; contract.Maintenance_Contract_No__c = 'DN-' + opp1.Opportunity_No__c; contract.Contract_Conclusion_Date__c = Date.today(); contract.Hospital__c = company.Id; contract.Department_Class__c = section1.Id; contract.Department__c = depart1.Id; contract.Contract_Start_Date__c = Date.today().addDays( -10); // 10日前 contract.Contract_End_Date__c = Date.today().addDays( 5); // 5日後 contract.SalesOfficeCode_selection__c = '北京RC'; contract.RecordTypeId = Schema.SObjectType.Maintenance_Contract__c.getRecordTypeInfosByDeveloperName().get('VM_Contract').getRecordTypeId(); contract.Opportunity__c = opp1.Id; insert contract; Maintenance_Contract_Asset__c middleTable = new Maintenance_Contract_Asset__c(); middleTable.Asset__c = ast.Id; middleTable.Maintenance_Contract__c = contract.id; middleTable.endDateGurantee_Text__c = Date.today().addDays(1); insert middleTable; NFM110Rest.GeneralData generalData1 = new NFM110Rest.GeneralData(); NFM110Rest.ProductsDelivery ProductsDelivery = new NFM110Rest.ProductsDelivery(); Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); ProductsDelivery.Monitoring = new NFMUtil.Monitoring(); ProductsDelivery.Monitoring.MessageGroupNumber = nowStr + '01'; ProductsDelivery.GeneralData = new NFM110Rest.GeneralData[] { generalData1 }; generalData1.DeliveryNote = 'DeliveryNote'; NFM110Rest.DnInformation dnInfo1 = new NFM110Rest.DnInformation(); NFM110Rest.DnInformation dnInfo2 = new NFM110Rest.DnInformation(); generalData1.DnInformation = new NFM110Rest.DnInformation[] { dnInfo1, dnInfo2 }; generalData1.EndUserNo = company.Management_Code__c; generalData1.DepartmentNo = depart1.Management_Code__c; generalData1.SoNo = '11111111111'; generalData1.InquiryNo = opp1.Opportunity_No__c + ','; generalData1.ReturnMark = '3'; dnInfo1.SorLMark = 'S'; dnInfo1.OTCode = prd.ProductCode_Ext__c; dnInfo1.Barcode = 'testbarcode001'; dnInfo1.SerialNoorLotNo = '2577010001675'; dnInfo1.VALUE = '123'; dnInfo1.ProvistonPeriod = '03'; dnInfo1.GuaranteePeriod = '05'; dnInfo1.GuaranteePrice = '1'; dnInfo1.MaintenancePrice = '1'; dnInfo1.ServicePrice = '1'; dnInfo2.SorLMark = 'L'; dnInfo2.OTCode = prd.ProductCode_Ext__c; dnInfo2.Barcode = 'testbarcode001'; dnInfo2.SerialNoorLotNo = '2577010001675'; dnInfo2.VALUE = '123'; dnInfo2.ProvistonPeriod = '03'; dnInfo2.TracingCode = 'ASDFG'; dnInfo2.GuaranteePeriod = '05'; // dnInfo2.GuaranteeType = '市场多年保修'; dnInfo2.GuaranteePrice = '1'; dnInfo2.MaintenancePrice = '1'; dnInfo2.ServicePrice = '1'; System.Test.startTest(); BatchIF_Log__c rowData = NFMUtil.saveRowData(ProductsDelivery.Monitoring, 'NFM110', ProductsDelivery.GeneralData); if (String.isBlank(rowData.Log__c) == false) NFM110Rest.main(rowData.Id); List rowbl = [Select Id, Log__c, ErrorLog__c, retry_cnt__c from BatchIF_Log__c where RowDataFlg__c = true and Type__c = 'NFM110' order by CreatedDate desc]; System.Test.stopTest(); } }