5,957 文件已重命名
1 文件已复制
274个文件已添加
259个文件已删除
| New file |
| | |
| | | **/lwc/**/*.css |
| | | **/lwc/**/*.html |
| | | **/lwc/**/*.json |
| | | **/lwc/**/*.svg |
| | | **/lwc/**/*.xml |
| | | **/aura/**/*.auradoc |
| | | **/aura/**/*.cmp |
| | | **/aura/**/*.css |
| | | **/aura/**/*.design |
| | | **/aura/**/*.evt |
| | | **/aura/**/*.json |
| | | **/aura/**/*.svg |
| | | **/aura/**/*.tokens |
| | | **/aura/**/*.xml |
| | | **/aura/**/*.app |
| | | .sfdx |
| New file |
| | |
| | | # List files or directories below to ignore them when running force:source:push, force:source:pull, and force:source:status |
| | | # More information: https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_exclude_source.htm |
| | | # |
| | | |
| | | package.xml |
| | | |
| | | # LWC configuration files |
| | | **/jsconfig.json |
| | | **/.eslintrc.json |
| | | |
| | | # LWC Jest |
| | | **/__tests__/** |
| New file |
| | |
| | | # This file is used for Git repositories to specify intentionally untracked files that Git should ignore. |
| | | # If you are not using git, you can delete this file. For more information see: https://git-scm.com/docs/gitignore |
| | | # For useful gitignore templates see: https://github.com/github/gitignore |
| | | |
| | | # Salesforce cache |
| | | .sfdx/ |
| | | .localdevserver/ |
| | | |
| | | # LWC VSCode autocomplete |
| | | **/lwc/jsconfig.json |
| | | |
| | | # LWC Jest coverage reports |
| | | coverage/ |
| | | |
| | | # Logs |
| | | logs |
| | | *.log |
| | | npm-debug.log* |
| | | yarn-debug.log* |
| | | yarn-error.log* |
| | | |
| | | # Dependency directories |
| | | node_modules/ |
| | | |
| | | # Eslint cache |
| | | .eslintcache |
| | | |
| | | # MacOS system files |
| | | .DS_Store |
| | | |
| | | # Windows system files |
| | | Thumbs.db |
| | | ehthumbs.db |
| | | [Dd]esktop.ini |
| | | $RECYCLE.BIN/ |
| | | |
| | | # Local environment variables |
| | | .env |
| New file |
| | |
| | | # List files or directories below to ignore them when running prettier |
| | | # More information: https://prettier.io/docs/en/ignore.html |
| | | # |
| | | |
| | | **/staticresources/** |
| | | .localdevserver |
| | | .sfdx |
| | | .vscode |
| | | |
| | | coverage/ |
| New file |
| | |
| | | { |
| | | "trailingComma": "none", |
| | | "overrides": [ |
| | | { |
| | | "files": "**/lwc/**/*.html", |
| | | "options": { "parser": "lwc" } |
| | | }, |
| | | { |
| | | "files": "*.{cmp,page,component}", |
| | | "options": { "parser": "html" } |
| | | } |
| | | ] |
| | | } |
| New file |
| | |
| | | { |
| | | "recommendations": [ |
| | | "salesforce.salesforcedx-vscode", |
| | | "redhat.vscode-xml", |
| | | "dbaeumer.vscode-eslint", |
| | | "esbenp.prettier-vscode", |
| | | "financialforce.lana" |
| | | ] |
| | | } |
| New file |
| | |
| | | { |
| | | // Use IntelliSense to learn about possible attributes. |
| | | // Hover to view descriptions of existing attributes. |
| | | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 |
| | | "version": "0.2.0", |
| | | "configurations": [ |
| | | { |
| | | "name": "Launch Apex Replay Debugger", |
| | | "type": "apex-replay", |
| | | "request": "launch", |
| | | "logFile": "${command:AskForLogFileName}", |
| | | "stopOnEntry": true, |
| | | "trace": true |
| | | } |
| | | ] |
| | | } |
| New file |
| | |
| | | { |
| | | "search.exclude": { |
| | | "**/node_modules": true, |
| | | "**/bower_components": true, |
| | | "**/.sfdx": true |
| | | }, |
| | | "salesforcedx-vscode-core.show-cli-success-msg": false, |
| | | "open-in-browser.default": "{\"opn-in-browser.default\":\"Microsoft Edge\"}" |
| | | } |
| New file |
| | |
| | | # Salesforce DX Project: Next Steps |
| | | |
| | | Now that youâve created a Salesforce DX project, whatâs next? Here are some documentation resources to get you started. |
| | | |
| | | ## How Do You Plan to Deploy Your Changes? |
| | | |
| | | Do you want to deploy a set of changes, or create a self-contained application? Choose a [development model](https://developer.salesforce.com/tools/vscode/en/user-guide/development-models). |
| | | |
| | | ## Configure Your Salesforce DX Project |
| | | |
| | | The `sfdx-project.json` file contains useful configuration information for your project. See [Salesforce DX Project Configuration](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_ws_config.htm) in the _Salesforce DX Developer Guide_ for details about this file. |
| | | |
| | | ## Read All About It |
| | | |
| | | - [Salesforce Extensions Documentation](https://developer.salesforce.com/tools/vscode/) |
| | | - [Salesforce CLI Setup Guide](https://developer.salesforce.com/docs/atlas.en-us.sfdx_setup.meta/sfdx_setup/sfdx_setup_intro.htm) |
| | | - [Salesforce DX Developer Guide](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_intro.htm) |
| | | - [Salesforce CLI Command Reference](https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference.htm) |
| New file |
| | |
| | | { |
| | | "orgName": "Demo company", |
| | | "edition": "Developer", |
| | | "features": [] |
| | | } |
| New file |
| | |
| | | <aura:component controller="AgencyPersonCmp" implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,forceCommunity:availableForAllPageTypes,force:hasRecordId" access="global"> |
| | | <aura:handler name="init" value="{!this}" action="{!c.doInit}"/> |
| | | <!-- <aura:handler event="c:strike_evt" action="{!c.createAopp}" name="strike_evt_addNewRecord"/> --> |
| | | <!-- <aura:attribute name="contacts" type="List"/> --> |
| | | <aura:attribute name="allselectlist" type="Map"/> |
| | | <aura:attribute name="selected_agency_person" type="String"/> |
| | | <aura:attribute name="recordId" type="Id" /> |
| | | <div class="slds-grid slds-wrap"> |
| | | <div class="tr mt5 slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-12 slds-large-size--1-of-12"> |
| | | é宿
å½ |
| | | </div> |
| | | <div class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--3-of-12 slds-large-size--3-of-12"> |
| | | <ui:inputSelect aura:id="select_agency_person" class="slds-select agency_person_select" change="{!c.select_agency_change}"/> |
| | | </div> |
| | | <div class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--2-of-12 slds-large-size--2-of-12"> |
| | | <ui:button aura:id="save_button" label="ä¿å" press="{!c.save_record}"/> |
| | | </div> |
| | | </div> |
| | | </aura:component> |
| New file |
| | |
| | | @isTest |
| | | private class ArriveGsDetailsControllerTest { |
| | | static testMethod void creat() { |
| | | 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)']; |
| | | Product2 prod01 = new Product2(Name='Test01',ProductCode='Test01',Asset_Model_No__c = 'Test01',SFDA_Status__c = 'æå¹',Dealer_special_Object__c = true); |
| | | Product2 prod02 = new Product2(Name='Test02',ProductCode='Test02',Asset_Model_No__c = 'Test02',SFDA_Status__c = 'æå¹',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}; |
| | | |
| | | |
| | | 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; |
| | | } |
| | | static testMethod void initTest() { |
| | | // TO DO: implement unit test |
| | | |
| | | 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)']; |
| | | Product2 prod01 = new Product2(Name='Test01',ProductCode='Test01',Asset_Model_No__c = 'Test01',SFDA_Status__c = 'æå¹',Dealer_special_Object__c = true); |
| | | Product2 prod02 = new Product2(Name='Test02',ProductCode='Test02',Asset_Model_No__c = 'Test02',SFDA_Status__c = 'æå¹',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}; |
| | | |
| | | |
| | | 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){ |
| | | StaticParameter.ConsumableAssetHanderTrigger = true; |
| | | 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_Arrive; |
| | | insert order1; |
| | | |
| | | Consumable_order__c olyorder = new Consumable_order__c(); |
| | | olyorder.Name = 'OCM_01_001'; |
| | | olyorder.Order_status__c = 'æ¹å'; |
| | | olyorder.Order_type__c = '订å'; |
| | | olyorder.Dealer_Info__c = myAccount2.Id; |
| | | olyorder.RecordTypeid = System.Label.RT_ConOrder_Delivery; |
| | | insert olyorder; |
| | | |
| | | //订åæç» |
| | | Consumable_order_details2__c Orderdet1 = new Consumable_order_details2__c(); |
| | | Orderdet1.Name = 'OCM_01_001001'; |
| | | Orderdet1.Consumable_order_minor__c = olyorder.Id; |
| | | Orderdet1.Consumable_Arrived_order__c = order1.Id; |
| | | //Orderdet1.IsArrival__c = true; |
| | | Orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdet1.Bar_Code__c = '11111'; |
| | | Consumable_order_details2__c Orderdet2 = new Consumable_order_details2__c(); |
| | | Orderdet2.Name = 'OCM_01_001002'; |
| | | Orderdet2.Consumable_order_minor__c = olyorder.Id; |
| | | Orderdet2.Consumable_Arrived_order__c = order1.Id; |
| | | //Orderdet2.IsArrival__c = true; |
| | | Orderdet2.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdet2.Bar_Code__c = '22222'; |
| | | |
| | | insert new Consumable_order_details2__c[] {Orderdet1, Orderdet2}; |
| | | |
| | | PageReference page = new PageReference('/apex/ArriveGsDetails?Esetid=' + order1.Id); |
| | | System.Test.setCurrentPage(page); |
| | | ArriveGsDetailsController controller = new ArriveGsDetailsController(); |
| | | //åå§åæµè¯ |
| | | controller.init(); |
| | | System.assertEquals('OCM_01_001001', controller.consumableorderdetailsRecords[0].esd.Name); |
| | | System.assertEquals('OCM_01_001002', controller.consumableorderdetailsRecords[1].esd.Name); |
| | | } |
| | | } |
| | | static testMethod void SortLimitedTest() { |
| | | 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)']; |
| | | Product2 prod01 = new Product2(Name='Test01',ProductCode='Test01',Asset_Model_No__c = 'Test01',SFDA_Status__c = 'æå¹',Dealer_special_Object__c = true); |
| | | Product2 prod02 = new Product2(Name='Test02',ProductCode='Test02',Asset_Model_No__c = 'Test02',SFDA_Status__c = 'æå¹',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}; |
| | | |
| | | |
| | | 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){ |
| | | StaticParameter.ConsumableAssetHanderTrigger = true; |
| | | //订å |
| | | Consumable_order__c order1 = new Consumable_order__c(); |
| | | order1.Name = 'OCM_01_001'; |
| | | order1.Order_status__c = 'æ¹å'; |
| | | order1.Order_type__c = '订å'; |
| | | order1.RecordTypeid = System.Label.RT_ConOrder_Arrive; |
| | | order1.IsShipment__c = true; |
| | | insert order1; |
| | | |
| | | Consumable_order__c olyorder = new Consumable_order__c(); |
| | | olyorder.Name = 'OCM_01_001'; |
| | | olyorder.Order_status__c = 'æ¹å'; |
| | | olyorder.Order_type__c = '订å'; |
| | | olyorder.Dealer_Info__c = myAccount2.Id; |
| | | olyorder.RecordTypeid = System.Label.RT_ConOrder_Delivery; |
| | | olyorder.IsShipment__c = true; |
| | | insert olyorder; |
| | | |
| | | |
| | | //订åæç» |
| | | Consumable_order_details2__c Orderdet1 = new Consumable_order_details2__c(); |
| | | Orderdet1.Name = 'OCM_01_001001'; |
| | | Orderdet1.Consumable_order_minor__c = olyorder.Id; |
| | | Orderdet1.Consumable_Arrived_order__c = order1.Id; |
| | | //Orderdet1.IsArrival__c = true; |
| | | Orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdet1.Bar_Code__c = '11111'; |
| | | Consumable_order_details2__c Orderdet2 = new Consumable_order_details2__c(); |
| | | Orderdet2.Name = 'OCM_01_001002'; |
| | | Orderdet2.Consumable_order_minor__c = olyorder.Id; |
| | | Orderdet2.Consumable_Arrived_order__c = order1.Id; |
| | | //Orderdet2.IsArrival__c = true; |
| | | Orderdet2.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdet2.Bar_Code__c = '22222'; |
| | | |
| | | insert new Consumable_order_details2__c[] {Orderdet1, Orderdet2}; |
| | | |
| | | PageReference page = new PageReference('/apex/ArriveGsDetails?Esetid=' + order1.Id); |
| | | System.Test.setCurrentPage(page); |
| | | ArriveGsDetailsController controller = new ArriveGsDetailsController(); |
| | | //åå§åæµè¯ |
| | | controller.init(); |
| | | controller.ProSale(); |
| | | controller.ProS(); |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | @isTest |
| | | private class AssetMaintainManualBatchTest { |
| | | private static void setupData() { |
| | | // OLY_OCM-643 追å EscapeNFM001Trigger |
| | | ControllerUtil.EscapeNFM001Trigger = true; |
| | | // ç |
| | | Address_Level__c al = new Address_Level__c(); |
| | | al.Name = 'æ±äº¬'; |
| | | al.Level1_Code__c = 'CN-99'; |
| | | al.Level1_Sys_No__c = '999999'; |
| | | insert al; |
| | | // å¸ |
| | | Address_Level2__c al2 = new Address_Level2__c(); |
| | | al2.Level1_Code__c = 'CN-99'; |
| | | al2.Level1_Sys_No__c = '999999'; |
| | | al2.Level1_Name__c = 'æ±äº¬'; |
| | | al2.Name = 'æ¸è°·åº'; |
| | | al2.Level2_Code__c = 'CN-9999'; |
| | | al2.Level2_Sys_No__c = '9999999'; |
| | | al2.Address_Level__c = al.id; |
| | | insert al2; |
| | | // ç
é¢ |
| | | Account hospital = new Account(); |
| | | hospital.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'HP'].id; |
| | | hospital.Name = 'test hospital'; |
| | | hospital.Is_Active__c = 'æå¹'; |
| | | hospital.Attribute_Type__c = 'å«çé¨'; |
| | | hospital.Speciality_Type__c = '综åå»é¢'; |
| | | hospital.Grade__c = 'ä¸çº§'; |
| | | hospital.OCM_Category__c = 'SLTV'; |
| | | hospital.Is_Medical__c = 'å»çæºæ'; |
| | | hospital.State_Master__c = al.id; |
| | | hospital.City_Master__c = al2.id; |
| | | hospital.Town__c = 'ä¸äº¬'; |
| | | insert hospital; |
| | | // æ¦ç¥ç§å®¤ãå¾ã |
| | | Account[] strategicDep = [SELECT ID, Name FROM Account WHERE parentId = :hospital.Id AND recordType.DeveloperName = 'Department_Class_OTH']; |
| | | // 診çç§ãä½ã |
| | | Account dep = new Account(); |
| | | dep.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'Department_OTH'].id; |
| | | dep.Name = 'test dep'; |
| | | dep.AgentCode_Ext__c = '9999998'; |
| | | dep.ParentId = strategicDep[0].Id; |
| | | dep.Department_Class__c = strategicDep[0].Id; |
| | | dep.Hospital__c = hospital.Id; |
| | | insert dep; |
| | | // ç»éå |
| | | Contact contact2 = new Contact(); |
| | | contact2.AccountId = dep.Id; |
| | | contact2.FirstName = '責任è
'; |
| | | contact2.LastName = 'test1ç»éå'; |
| | | insert contact2; |
| | | // 产å |
| | | Product2 pro1 = new Product2(Name='name01',IsActive=true,Family='GI', |
| | | Fixture_Model_No__c='n01',Serial_Lot_No__c='S/N tracing', |
| | | Fixture_Model_No_T__c = 'n01', Asset_Model_No__c = 'Pro1', |
| | | ProductCode_Ext__c='pc01',Manual_Entry__c=false); |
| | | Product2 pro2 = new Product2(Name='name02',IsActive=true,Family='GI', |
| | | Fixture_Model_No__c='n02',Serial_Lot_No__c='Lot tracing', |
| | | Fixture_Model_No_T__c = 'n02', Asset_Model_No__c = 'Pro2', |
| | | ProductCode_Ext__c='pc02',Manual_Entry__c=false); |
| | | Product2 pro3 = new Product2(Name='name03',IsActive=true,Family='GI', |
| | | Fixture_Model_No__c='n03',Serial_Lot_No__c='Lot tracing', |
| | | Fixture_Model_No_T__c = 'n03', Asset_Model_No__c = 'Pro3', |
| | | ProductCode_Ext__c='pc03',Manual_Entry__c=false); |
| | | insert new Product2[] {pro1, pro2, pro3}; |
| | | // ä¿æè®¾å¤1 (主ä½) 主ä½åªè½æ¯ä¸ªä½ç®¡ç |
| | | List<Asset> assetTestList = new List<Asset>(); |
| | | Asset asset1 = new Asset(); |
| | | asset1.RecordTypeId = System.Label.Asset_RecordType; |
| | | asset1.Asset_Owner__c = 'Olympus'; |
| | | asset1.SerialNumber = 'asset1'; |
| | | asset1.Name = 'asset1'; |
| | | asset1.AccountId = dep.Id; |
| | | asset1.Department_Class__c = strategicDep[0].Id; |
| | | asset1.Hospital__c = hospital.Id; |
| | | asset1.Product2Id = pro1.Id; |
| | | asset1.Quantity = 1; |
| | | asset1.Status = '使ç¨ä¸'; |
| | | asset1.Manage_type__c = '个ä½ç®¡ç'; |
| | | asset1.Loaner_accsessary__c = false; |
| | | asset1.Delete_Flag__c = false; |
| | | asset1.AssetManageConfirm__c = true; |
| | | asset1.Freeze_sign__c = false; |
| | | asset1.Out_of_wh__c = 0; |
| | | asset1.Salesdepartment__c = '9.MAæ¬é¨'; |
| | | asset1.Internal_asset_location__c = 'å京 å¤åä¸å¿'; |
| | | asset1.Product_category__c = 'GI'; |
| | | asset1.Equipment_Type__c = '产åè¯ç¨'; |
| | | asset1.SalesProvince__c = 'å京'; |
| | | asset1.CompanyOfEquipment__c = 'å京'; |
| | | asset1.Internal_Asset_number__c = '0001'; |
| | | asset1.WH_location__c = 'è´§æ¶å·1'; |
| | | assetTestList.add(asset1); |
| | | // ä¿æè®¾å¤2 (éå±å æ°é管ç) |
| | | Asset asset2 = new Asset(); |
| | | asset2.RecordTypeId = System.Label.Asset_RecordType; |
| | | asset2.Asset_Owner__c = 'Olympus'; |
| | | asset2.SerialNumber = 'asset2'; |
| | | asset2.Name = 'asset2'; |
| | | asset2.AccountId = dep.Id; |
| | | asset2.Department_Class__c = strategicDep[0].Id; |
| | | asset2.Hospital__c = hospital.Id; |
| | | asset2.Product2Id = pro2.Id; |
| | | asset2.Quantity = 10; |
| | | asset2.Status = '使ç¨ä¸'; |
| | | asset2.Manage_type__c = 'æ°é管ç'; |
| | | asset2.Loaner_accsessary__c = true; |
| | | asset2.Delete_Flag__c = false; |
| | | asset2.AssetManageConfirm__c = true; |
| | | asset2.Freeze_sign__c = false; |
| | | asset2.Out_of_wh__c = 0; |
| | | asset2.Frozen_Quantity__c = 0; |
| | | asset2.Salesdepartment__c = '1.ååè¥ä¸æ¬é¨'; |
| | | asset2.Internal_asset_location__c = 'å京 å¤åä¸å¿'; |
| | | asset2.Product_category__c = 'GI'; |
| | | asset2.Equipment_Type__c = '产åè¯ç¨'; |
| | | asset2.SalesProvince__c = 'å京'; |
| | | asset2.CompanyOfEquipment__c = 'å京'; |
| | | asset2.Internal_Asset_number__c = '0002'; |
| | | asset2.WH_location__c = 'è´§æ¶å·2'; |
| | | assetTestList.add(asset2); |
| | | |
| | | // ä¿æè®¾å¤3 (éå±å 个ä½ç®¡ç) |
| | | Asset asset3 = new Asset(); |
| | | asset3.RecordTypeId = System.Label.Asset_RecordType; |
| | | asset3.Asset_Owner__c = 'Olympus'; |
| | | asset3.SerialNumber = 'asset3'; |
| | | asset3.Name = 'asset3'; |
| | | asset3.AccountId = dep.Id; |
| | | asset3.Department_Class__c = strategicDep[0].Id; |
| | | asset3.Hospital__c = hospital.Id; |
| | | asset3.Product2Id = pro3.Id; |
| | | asset3.Quantity = 1; |
| | | asset3.Status = '使ç¨ä¸'; |
| | | asset3.Manage_type__c = '个ä½ç®¡ç'; |
| | | asset3.Loaner_accsessary__c = true; |
| | | asset3.Delete_Flag__c = false; |
| | | asset3.AssetManageConfirm__c = true; |
| | | asset3.Freeze_sign__c = false; |
| | | asset3.Out_of_wh__c = 0; |
| | | asset3.Frozen_Quantity__c = 0; |
| | | asset3.Salesdepartment__c = '1.ååè¥ä¸æ¬é¨'; |
| | | asset3.Internal_asset_location__c = 'å京 å¤åä¸å¿'; |
| | | asset3.Product_category__c = 'GI'; |
| | | asset3.Equipment_Type__c = '产åè¯ç¨'; |
| | | asset3.SalesProvince__c = 'å京'; |
| | | asset3.CompanyOfEquipment__c = 'å京'; |
| | | asset3.Internal_Asset_number__c = '0003'; |
| | | asset3.WH_location__c = 'è´§æ¶å·3'; |
| | | assetTestList.add(asset3); |
| | | insert assetTestList; |
| | | List<Asset> assetList = [SELECT Id, Asset_Owner__c FROM Asset |
| | | WHERE Asset_Owner__c = 'Olympus' |
| | | AND Delete_Flag__c = false |
| | | AND AssetManageConfirm__c = true |
| | | ORDER BY Id asc nulls first |
| | | ]; |
| | | System.assertEquals(3, assetList.size()); |
| | | System.assertEquals('Olympus', assetList[0].Asset_Owner__c); |
| | | |
| | | Fixture_OneToOne_Link__c link1 = new Fixture_OneToOne_Link__c(); |
| | | link1.Main_Asset__c = asset1.Id; |
| | | link1.Accessory_Asset__c = asset2.Id; |
| | | link1.Quantity__c = 10; |
| | | |
| | | Fixture_OneToOne_Link__c link2 = new Fixture_OneToOne_Link__c(); |
| | | link2.Main_Asset__c = asset1.Id; |
| | | link2.Accessory_Asset__c = asset3.Id; |
| | | link2.Quantity__c = 1; |
| | | |
| | | insert new Fixture_OneToOne_Link__c[] {link1,link2}; |
| | | |
| | | } |
| | | |
| | | @istest |
| | | // æå¿µåæ¶ |
| | | static void testDuanNianQuXiao() { |
| | | setupData(); |
| | | Asset ass = [SELECT Id, Abandoned_Inventory__c FROM Asset WHERE Name='asset1' LIMIT 1]; |
| | | ass.Abandoned_Inventory__c = 1; |
| | | ass.Internal_Asset_number__c = null; |
| | | update ass; |
| | | |
| | | AssetMaintainHeader__c amHeader = new AssetMaintainHeader__c(); |
| | | amHeader.MaintainType__c = 'æå¿µæ¾å(æå¿µåæ¶)'; |
| | | amHeader.Date__c = System.today(); |
| | | insert amHeader; |
| | | |
| | | AssetMaintainDetail__c amd = new AssetMaintainDetail__c(); |
| | | amd.MaintainType__c = 'æå¿µæ¾å(æå¿µåæ¶)'; |
| | | amd.AssetMaintainHeader__c = amHeader.Id; |
| | | amd.MaintainCount__c = 1; |
| | | amd.Asset__c = ass.Id; |
| | | amd.OrderNumber__c = 1; |
| | | insert amd; |
| | | |
| | | Test.startTest(); |
| | | List<String> errList = AssetMaintainManualBatch.checkAllDetailAndAsset(amHeader.Id, AssetMaintainManualBatch.Operation.PROCESS).errorList; |
| | | System.assertEquals(0, errList.size()); |
| | | |
| | | ass.MaintainCount_For_Processing__c = 1; |
| | | update ass; |
| | | |
| | | AssetMaintainManualBatch amBatch = new AssetMaintainManualBatch(amHeader.Id, false); |
| | | Database.executeBatch(amBatch); |
| | | Test.stopTest(); |
| | | |
| | | ass = [SELECT Id, Abandoned_Inventory__c FROM Asset WHERE Name='asset1' LIMIT 1]; |
| | | System.assertEquals(0, ass.Abandoned_Inventory__c); |
| | | amd = [SELECT Id, Batch_Status__c FROM AssetMaintainDetail__c LIMIT 1]; |
| | | System.assertEquals('宿', amd.Batch_Status__c); |
| | | } |
| | | |
| | | @istest |
| | | // æå¿µæ¾å |
| | | static void testChongXinDengLu() { |
| | | setupData(); |
| | | Asset ass = [SELECT Id FROM Asset WHERE Name='asset1' LIMIT 1]; |
| | | ass.Quantity = 0; |
| | | ass.Internal_Asset_number__c = null; |
| | | ass.ChangeQuantityReason__c = 'åºå¼'; |
| | | update ass; |
| | | |
| | | AssetMaintainHeader__c amHeader = new AssetMaintainHeader__c(); |
| | | amHeader.MaintainType__c = 'æå¿µæ¾å(éæ°ç»å½)'; |
| | | amHeader.Date__c = System.today(); |
| | | insert amHeader; |
| | | |
| | | AssetMaintainDetail__c amd = new AssetMaintainDetail__c(); |
| | | amd.MaintainType__c = 'æå¿µæ¾å(éæ°ç»å½)'; |
| | | amd.AssetMaintainHeader__c = amHeader.Id; |
| | | amd.MaintainCount__c = 1; |
| | | amd.Asset__c = ass.Id; |
| | | amd.OrderNumber__c = 1; |
| | | insert amd; |
| | | |
| | | Test.startTest(); |
| | | List<String> errList = AssetMaintainManualBatch.checkAllDetailAndAsset(amHeader.Id, AssetMaintainManualBatch.Operation.PROCESS).errorList; |
| | | System.assertEquals(0, errList.size()); |
| | | |
| | | ass.MaintainCount_For_Processing__c = 1; |
| | | update ass; |
| | | |
| | | AssetMaintainManualBatch amBatch = new AssetMaintainManualBatch(amHeader.Id, false); |
| | | Database.executeBatch(amBatch); |
| | | Test.stopTest(); |
| | | |
| | | ass = [SELECT Id, Quantity FROM Asset WHERE Name='asset1' LIMIT 1]; |
| | | System.assertEquals(1, ass.Quantity); |
| | | amd = [SELECT Id, Batch_Status__c FROM AssetMaintainDetail__c LIMIT 1]; |
| | | System.assertEquals('宿', amd.Batch_Status__c); |
| | | } |
| | | @istest |
| | | // è§£å» |
| | | static void testJieDong() { |
| | | setupData(); |
| | | Asset ass = [SELECT Id FROM Asset WHERE Name='asset1' LIMIT 1]; |
| | | ass.Frozen_Quantity__c = 1; |
| | | ass.Freeze_sign__c = true; |
| | | update ass; |
| | | |
| | | AssetMaintainHeader__c amHeader = new AssetMaintainHeader__c(); |
| | | amHeader.MaintainType__c = 'è§£å»'; |
| | | amHeader.Date__c = System.today(); |
| | | insert amHeader; |
| | | |
| | | AssetMaintainDetail__c amd = new AssetMaintainDetail__c(); |
| | | amd.MaintainType__c = 'è§£å»'; |
| | | amd.AssetMaintainHeader__c = amHeader.Id; |
| | | amd.MaintainCount__c = 1; |
| | | amd.Asset__c = ass.Id; |
| | | amd.OrderNumber__c = 1; |
| | | insert amd; |
| | | |
| | | Test.startTest(); |
| | | List<String> errList = AssetMaintainManualBatch.checkAllDetailAndAsset(amHeader.Id, AssetMaintainManualBatch.Operation.FROZEN).errorList; |
| | | System.assertEquals(0, errList.size()); |
| | | |
| | | ass.MaintainCount_For_Processing__c = 1; |
| | | update ass; |
| | | |
| | | AssetMaintainManualBatch amBatch = new AssetMaintainManualBatch(amHeader.Id, false); |
| | | Database.executeBatch(amBatch); |
| | | Test.stopTest(); |
| | | |
| | | ass = [SELECT Id, Frozen_Quantity__c, Freeze_sign__c FROM Asset WHERE Name='asset1' LIMIT 1]; |
| | | System.assertEquals(0, ass.Frozen_Quantity__c); |
| | | System.assertEquals(false, ass.Freeze_sign__c); |
| | | |
| | | amd = [SELECT Id, Batch_Status__c FROM AssetMaintainDetail__c LIMIT 1]; |
| | | System.assertEquals('宿', amd.Batch_Status__c); |
| | | } |
| | | @istest |
| | | // å»ç»ä¸»ä½ |
| | | static void testDongjieMain() { |
| | | setupData(); |
| | | Asset ass = [SELECT Id, Frozen_Quantity__c, Freeze_sign__c FROM Asset WHERE Name='asset1' LIMIT 1]; |
| | | System.assertEquals(null, ass.Frozen_Quantity__c); |
| | | System.assertEquals(false, ass.Freeze_sign__c); |
| | | update ass; |
| | | |
| | | AssetMaintainHeader__c amHeader = new AssetMaintainHeader__c(); |
| | | amHeader.MaintainType__c = 'å»ç»'; |
| | | amHeader.Date__c = System.today(); |
| | | insert amHeader; |
| | | |
| | | AssetMaintainDetail__c amd = new AssetMaintainDetail__c(); |
| | | amd.MaintainType__c = 'å»ç»'; |
| | | amd.AssetMaintainHeader__c = amHeader.Id; |
| | | amd.MaintainCount__c = 1; |
| | | amd.Asset__c = ass.Id; |
| | | amd.OrderNumber__c = 1; |
| | | insert amd; |
| | | |
| | | Test.startTest(); |
| | | List<String> errList = AssetMaintainManualBatch.checkAllDetailAndAsset(amHeader.Id, AssetMaintainManualBatch.Operation.PROCESS).errorList; |
| | | System.assertEquals(0, errList.size()); |
| | | |
| | | ass.MaintainCount_For_Processing__c = 1; |
| | | update ass; |
| | | |
| | | AssetMaintainManualBatch amBatch = new AssetMaintainManualBatch(amHeader.Id, false); |
| | | Database.executeBatch(amBatch); |
| | | Test.stopTest(); |
| | | |
| | | ass = [SELECT Id, Frozen_Quantity__c, Freeze_sign__c FROM Asset WHERE Name='asset1' LIMIT 1]; |
| | | System.assertEquals(1, ass.Frozen_Quantity__c); |
| | | System.assertEquals(true, ass.Freeze_sign__c); |
| | | |
| | | amd = [SELECT Id, Batch_Status__c FROM AssetMaintainDetail__c LIMIT 1]; |
| | | System.assertEquals('宿', amd.Batch_Status__c); |
| | | |
| | | List<Fixture_OneToOne_Link__c> links = [SELECT Id FROM Fixture_OneToOne_Link__c]; |
| | | System.assertEquals(0, links.size()); |
| | | } |
| | | @istest |
| | | // å»ç»ä¸å¯¹ä¸æ°ééå±å |
| | | static void testDongjieAccessory() { |
| | | setupData(); |
| | | Asset ass2 = [SELECT Id, Frozen_Quantity__c, Freeze_sign__c FROM Asset WHERE Name='asset2' LIMIT 1]; |
| | | System.assertEquals(0, intValueOf(ass2.Frozen_Quantity__c)); |
| | | System.assertEquals(false, ass2.Freeze_sign__c); |
| | | update ass2; |
| | | |
| | | AssetMaintainHeader__c amHeader = new AssetMaintainHeader__c(); |
| | | amHeader.MaintainType__c = 'å»ç»'; |
| | | amHeader.Date__c = System.today(); |
| | | insert amHeader; |
| | | |
| | | AssetMaintainDetail__c amd = new AssetMaintainDetail__c(); |
| | | amd.MaintainType__c = 'å»ç»'; |
| | | amd.AssetMaintainHeader__c = amHeader.Id; |
| | | amd.MaintainCount__c = 10; |
| | | amd.Asset__c = ass2.Id; |
| | | amd.OrderNumber__c = 1; |
| | | amd.OnetoOne_Main__c = [SELECT Id FROM Asset WHERE Name='asset1' LIMIT 1].Id; |
| | | amd.DisconnectCount__c = 10; |
| | | insert amd; |
| | | |
| | | Test.startTest(); |
| | | List<String> errList = AssetMaintainManualBatch.checkAllDetailAndAsset(amHeader.Id, AssetMaintainManualBatch.Operation.PROCESS).errorList; |
| | | System.assertEquals(0, errList.size()); |
| | | |
| | | ass2.MaintainCount_For_Processing__c = 10; |
| | | update ass2; |
| | | |
| | | AssetMaintainManualBatch amBatch = new AssetMaintainManualBatch(amHeader.Id, false); |
| | | Database.executeBatch(amBatch); |
| | | Test.stopTest(); |
| | | |
| | | ass2 = [SELECT Id, Frozen_Quantity__c, Freeze_sign__c FROM Asset WHERE Name='asset2' LIMIT 1]; |
| | | System.assertEquals(10, ass2.Frozen_Quantity__c); |
| | | System.assertEquals(true, ass2.Freeze_sign__c); |
| | | |
| | | amd = [SELECT Id, Batch_Status__c FROM AssetMaintainDetail__c LIMIT 1]; |
| | | System.assertEquals('宿', amd.Batch_Status__c); |
| | | |
| | | List<Fixture_OneToOne_Link__c> links = [SELECT Id FROM Fixture_OneToOne_Link__c WHERE Accessory_Asset__c =: ass2.Id]; |
| | | System.assertEquals(0, links.size()); |
| | | } |
| | | @istest |
| | | // å®ç©æ¥åº æäº¤æ¶æ£æ¥æ°é |
| | | static void testBaoFeiDongJie() { |
| | | setupData(); |
| | | Asset ass = [SELECT Id, MaintainCount_For_Processing__c FROM Asset WHERE Name='asset1' LIMIT 1]; |
| | | System.assertEquals(0, intValueOf(ass.MaintainCount_For_Processing__c)); |
| | | |
| | | AssetMaintainHeader__c amHeader = new AssetMaintainHeader__c(); |
| | | amHeader.MaintainType__c = 'å®ç©æ¥åº'; |
| | | amHeader.Date__c = System.today(); |
| | | insert amHeader; |
| | | |
| | | AssetMaintainDetail__c amd = new AssetMaintainDetail__c(); |
| | | amd.MaintainType__c = 'å®ç©æ¥åº'; |
| | | amd.AssetMaintainHeader__c = amHeader.Id; |
| | | amd.MaintainCount__c = 1; |
| | | amd.Asset__c = ass.Id; |
| | | amd.OrderNumber__c = 1; |
| | | amd.Batch_Status__c = 'æªå¤ç'; |
| | | insert amd; |
| | | |
| | | Test.startTest(); |
| | | List<String> errList = AssetMaintainManualBatch.checkAllDetailAndAsset(amHeader.Id, AssetMaintainManualBatch.Operation.FROZEN).errorList; |
| | | Test.stopTest(); |
| | | |
| | | System.assertEquals(0, errList.size()); |
| | | |
| | | } |
| | | @istest |
| | | // å®ç©æ¥åº åæ¶æ¶è§£å» |
| | | static void testBaoFeiJieDong() { |
| | | setupData(); |
| | | Asset ass = [SELECT Id, MaintainCount_For_Processing__c FROM Asset WHERE Name='asset1' LIMIT 1]; |
| | | ass.MaintainCount_For_Processing__c = 1; |
| | | update ass; |
| | | |
| | | AssetMaintainHeader__c amHeader = new AssetMaintainHeader__c(); |
| | | amHeader.MaintainType__c = 'å®ç©æ¥åº'; |
| | | amHeader.Date__c = System.today(); |
| | | amHeader.Batch_Processing__c = true; |
| | | insert amHeader; |
| | | |
| | | AssetMaintainDetail__c amd = new AssetMaintainDetail__c(); |
| | | amd.MaintainType__c = 'å®ç©æ¥åº'; |
| | | amd.AssetMaintainHeader__c = amHeader.Id; |
| | | amd.MaintainCount__c = 1; |
| | | amd.Asset__c = ass.Id; |
| | | amd.OrderNumber__c = 1; |
| | | amd.Batch_Status__c = 'æªå¤ç'; |
| | | insert amd; |
| | | |
| | | Test.startTest(); |
| | | AssetMaintainManualBatch amBatch = new AssetMaintainManualBatch(amHeader.Id, true, AssetMaintainManualBatch.Operation.UNFROZEN); |
| | | Database.executeBatch(amBatch); |
| | | Test.stopTest(); |
| | | |
| | | ass = [SELECT Id, MaintainCount_For_Processing__c FROM Asset WHERE Name='asset1' LIMIT 1]; |
| | | System.assertEquals(0, intValueOf(ass.MaintainCount_For_Processing__c)); |
| | | |
| | | amHeader = [SELECT Id, Batch_Processing__c FROM AssetMaintainHeader__c LIMIT 1]; |
| | | System.assertEquals(false, amHeader.Batch_Processing__c); |
| | | } |
| | | @istest |
| | | // å®ç©æ¥åº æ¹å |
| | | static void testBaoFeiPiZhun() { |
| | | setupData(); |
| | | Asset ass = [SELECT Id, MaintainCount_For_Processing__c FROM Asset WHERE Name='asset1' LIMIT 1]; |
| | | ass.MaintainCount_For_Processing__c = 1; |
| | | update ass; |
| | | |
| | | AssetMaintainHeader__c amHeader = new AssetMaintainHeader__c(); |
| | | amHeader.MaintainType__c = 'å®ç©æ¥åº'; |
| | | amHeader.Date__c = System.today(); |
| | | amHeader.Batch_Processing__c = true; |
| | | insert amHeader; |
| | | |
| | | AssetMaintainDetail__c amd = new AssetMaintainDetail__c(); |
| | | amd.MaintainType__c = 'å®ç©æ¥åº'; |
| | | amd.AssetMaintainHeader__c = amHeader.Id; |
| | | amd.MaintainCount__c = 1; |
| | | amd.Asset__c = ass.Id; |
| | | amd.OrderNumber__c = 1; |
| | | amd.Batch_Status__c = 'æªå¤ç'; |
| | | insert amd; |
| | | |
| | | Test.startTest(); |
| | | AssetMaintainManualBatch amBatch = new AssetMaintainManualBatch(amHeader.Id, true); |
| | | Database.executeBatch(amBatch); |
| | | Test.stopTest(); |
| | | |
| | | ass = [SELECT Id, MaintainCount_For_Processing__c, Abandoned_RealThing__c, Status FROM Asset WHERE Name='asset1' LIMIT 1]; |
| | | System.assertEquals(0, intValueOf(ass.MaintainCount_For_Processing__c)); |
| | | System.assertEquals(1, intValueOf(ass.Abandoned_RealThing__c)); |
| | | System.assertEquals('å¾
æ¥åº', ass.Status); |
| | | |
| | | List<Fixture_OneToOne_Link__c> links = [SELECT Id FROM Fixture_OneToOne_Link__c]; |
| | | System.assertEquals(0, links.size()); |
| | | |
| | | amHeader = [SELECT Id, Batch_Processing__c FROM AssetMaintainHeader__c LIMIT 1]; |
| | | System.assertEquals(false, amHeader.Batch_Processing__c); |
| | | } |
| | | @istest |
| | | // å®ç©æ¥åº åºå¼ |
| | | static void testBaoFeiFeiQi() { |
| | | setupData(); |
| | | Asset ass = [SELECT Id, Abandoned_RealThing__c FROM Asset WHERE Name='asset1' LIMIT 1]; |
| | | ass.Abandoned_RealThing__c = 1; |
| | | update ass; |
| | | |
| | | AssetMaintainHeader__c amHeader = new AssetMaintainHeader__c(); |
| | | amHeader.MaintainType__c = 'å®ç©æ¥åº'; |
| | | amHeader.Date__c = System.today(); |
| | | amHeader.Batch_Processing__c = true; |
| | | insert amHeader; |
| | | |
| | | AssetMaintainDetail__c amd = new AssetMaintainDetail__c(); |
| | | amd.MaintainType__c = 'å®ç©æ¥åº'; |
| | | amd.AssetMaintainHeader__c = amHeader.Id; |
| | | amd.MaintainCount__c = 1; |
| | | amd.AbandonCount__c = 1; |
| | | amd.Asset__c = ass.Id; |
| | | amd.OrderNumber__c = 1; |
| | | amd.Batch_Status__c = 'å¤çä¸'; |
| | | insert amd; |
| | | |
| | | Test.startTest(); |
| | | AssetMaintainManualBatch amBatch = new AssetMaintainManualBatch(amHeader.Id, true, AssetMaintainManualBatch.Operation.ABANDON); |
| | | amBatch.errorList.add('error'); |
| | | Database.executeBatch(amBatch); |
| | | Test.stopTest(); |
| | | |
| | | ass = [SELECT Id, Abandoned_RealThing__c, Status FROM Asset WHERE Name='asset1' LIMIT 1]; |
| | | System.assertEquals(0, intValueOf(ass.Abandoned_RealThing__c)); |
| | | System.assertEquals(FixtureUtil.assetStatusMap.get(FixtureUtil.AssetStatus.Fei_Qi.ordinal()), ass.Status); |
| | | |
| | | amd = [SELECT Id, Batch_Status__c FROM AssetMaintainDetail__c LIMIT 1]; |
| | | System.assertEquals('宿', amd.Batch_Status__c); |
| | | |
| | | amHeader = [SELECT Id, Status__c, Batch_Processing__c FROM AssetMaintainHeader__c LIMIT 1]; |
| | | System.assertEquals('已宿', amHeader.Status__c); |
| | | System.assertEquals(false, amHeader.Batch_Processing__c); |
| | | } |
| | | private static Integer intValueOf(Decimal d) { |
| | | if(d == null || d < 0) { |
| | | return 0; |
| | | } |
| | | return Integer.valueOf(d); |
| | | } |
| | | } |
| New file |
| | |
| | | @isTest |
| | | private class AssetUpdateLastContractScheduleTest { |
| | | static testMethod void testMethod1() { |
| | | String CRON_EXP = '0 0 0 3 9 ? 2022'; |
| | | |
| | | System.Test.startTest(); |
| | | String jobId = system.schedule('AssetUpdateLastContractSchedule', CRON_EXP, new AssetUpdateLastContractSchedule()); |
| | | System.Test.StopTest(); |
| | | } |
| | | } |
| New file |
| | |
| | | @isTest |
| | | private class ConsumInventoryDetailHandlerTest { |
| | | |
| | | // å建Assetæ°æ® |
| | | static void setupTestData() { |
| | | // ç
é¢ãä½ã |
| | | Account hospital = new Account(); |
| | | hospital.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'HP'].id; |
| | | hospital.Name = 'test hospital'; |
| | | hospital.Is_Active__c = 'æå¹'; |
| | | hospital.Attribute_Type__c = 'å«çé¨'; |
| | | hospital.Speciality_Type__c = '综åå»é¢'; |
| | | hospital.Grade__c = 'ä¸çº§'; |
| | | hospital.OCM_Category__c = 'SLTV'; |
| | | hospital.Is_Medical__c = 'å»çæºæ'; |
| | | hospital.Town__c = 'ä¸äº¬'; |
| | | insert hospital; |
| | | |
| | | // æ¦ç¥ç§å®¤ãå¾ã |
| | | Account[] strategicDep = [SELECT ID, Name FROM Account WHERE parentId = :hospital.Id AND recordType.DeveloperName = 'Department_Class_OTH']; |
| | | // 診çç§ãä½ã |
| | | Account dep = new Account(); |
| | | dep.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'Department_OTH'].id; |
| | | dep.Name = 'test dep'; |
| | | dep.AgentCode_Ext__c = '9999998'; |
| | | dep.ParentId = strategicDep[0].Id; |
| | | dep.Department_Class__c = strategicDep[0].Id; |
| | | dep.Hospital__c = hospital.Id; |
| | | insert dep; |
| | | |
| | | Contact contact2 = new Contact(); |
| | | contact2.AccountId = dep.Id; |
| | | contact2.FirstName = '責任è
'; |
| | | contact2.LastName = 'test1ç»éå'; |
| | | insert contact2; |
| | | |
| | | // 产å |
| | | Product2 pro1 = new Product2(Name='name01',IsActive=true,Family='GI', |
| | | Fixture_Model_No__c='n01',Serial_Lot_No__c='S/N tracing', |
| | | Fixture_Model_No_T__c = 'n01', |
| | | ProductCode_Ext__c='pc01',Manual_Entry__c=false); |
| | | Product2 pro2 = new Product2(Name='name02',IsActive=true,Family='GI', |
| | | Fixture_Model_No__c='n02',Serial_Lot_No__c='Lot tracing', |
| | | ProductCode_Ext__c='pc02',Manual_Entry__c=false); |
| | | Product2 pro3 = new Product2(Name='name03',IsActive=true,Family='GI', |
| | | Fixture_Model_No__c='n03',Serial_Lot_No__c='Lot tracing', |
| | | ProductCode_Ext__c='pc03',Manual_Entry__c=false); |
| | | insert new Product2[] {pro1, pro2, pro3}; |
| | | |
| | | //---------------------------ä¸»ä½ ä¸¤ä¸ªéå±å(个ä½ç®¡ç æ°é管ç) |
| | | // ä¿æè®¾å¤A (主ä½) |
| | | Asset assetA1 = new Asset(Asset_Owner__c = 'Olympus'); |
| | | assetA1.RecordTypeId = System.Label.Asset_RecordType; |
| | | assetA1.SerialNumber = 'ass01'; |
| | | assetA1.Name = 'ass01'; |
| | | assetA1.AccountId = dep.Id; |
| | | assetA1.Department_Class__c = strategicDep[0].Id; |
| | | assetA1.Hospital__c = hospital.Id; |
| | | assetA1.Product2Id = pro1.Id; |
| | | assetA1.Quantity = 1; |
| | | assetA1.Status = 'æåºå'; |
| | | assetA1.Manage_type__c = '个ä½ç®¡ç'; |
| | | assetA1.Loaner_accsessary__c = false; |
| | | assetA1.Product_category__c = 'GI'; |
| | | assetA1.Delete_Flag__c = false; |
| | | assetA1.Freeze_sign__c = false; |
| | | assetA1.Out_of_wh__c = 0; |
| | | assetA1.Salesdepartment__c = '1.ååè¥ä¸æ¬é¨'; |
| | | assetA1.Internal_asset_location__c = 'å京 å¤åä¸å¿'; |
| | | assetA1.Product_category__c = 'GI'; |
| | | assetA1.Equipment_Type__c = '产åè¯ç¨'; |
| | | assetA1.SalesProvince__c = 'å京'; |
| | | assetA1.WH_location__c = 'è´§æ¶å·1'; |
| | | assetA1.AssetManageConfirm__c = true; |
| | | // ä¿æè®¾å¤A (éå±å æ°é管ç) |
| | | Asset assetA2 = new Asset(Asset_Owner__c = 'Olympus'); |
| | | assetA2.RecordTypeId = System.Label.Asset_RecordType; |
| | | assetA2.SerialNumber = 'ass02'; |
| | | assetA2.Name = 'ass02'; |
| | | assetA2.AccountId = dep.Id; |
| | | assetA2.Department_Class__c = strategicDep[0].Id; |
| | | assetA2.Hospital__c = hospital.Id; |
| | | assetA2.Product2Id = pro2.Id; |
| | | assetA2.Quantity = 10; |
| | | assetA2.Status = 'æåºå'; |
| | | assetA2.Manage_type__c = 'æ°é管ç'; |
| | | assetA2.Loaner_accsessary__c = true; |
| | | assetA2.Product_category__c = 'GI'; |
| | | assetA2.Delete_Flag__c = false; |
| | | assetA2.Freeze_sign__c = false; |
| | | assetA2.Out_of_wh__c = 3; |
| | | assetA2.Frozen_Quantity__c = 2; |
| | | assetA2.Salesdepartment__c = '1.ååè¥ä¸æ¬é¨'; |
| | | assetA2.Internal_asset_location__c = 'å京 å¤åä¸å¿'; |
| | | assetA2.Product_category__c = 'GI'; |
| | | assetA2.Equipment_Type__c = '产åè¯ç¨'; |
| | | assetA2.SalesProvince__c = 'å京'; |
| | | assetA2.WH_location__c = 'è´§æ¶å·2'; |
| | | assetA2.AssetManageConfirm__c = true; |
| | | // ä¿æè®¾å¤A (éå±å 个ä½ç®¡ç) |
| | | Asset assetA3 = new Asset(Asset_Owner__c = 'Olympus'); |
| | | assetA3.RecordTypeId = System.Label.Asset_RecordType; |
| | | assetA3.SerialNumber = 'ass03'; |
| | | assetA3.Name = 'ass03'; |
| | | assetA3.AccountId = dep.Id; |
| | | assetA3.Department_Class__c = strategicDep[0].Id; |
| | | assetA3.Hospital__c = hospital.Id; |
| | | assetA3.Product2Id = pro3.Id; |
| | | assetA3.Quantity = 10; |
| | | assetA3.Status = 'æåºå'; |
| | | assetA3.Manage_type__c = 'æ°é管ç'; |
| | | assetA3.Loaner_accsessary__c = true; |
| | | assetA3.Product_category__c = 'GI'; |
| | | assetA3.Delete_Flag__c = false; |
| | | assetA3.Freeze_sign__c = false; |
| | | assetA3.Out_of_wh__c = 3; |
| | | assetA3.Salesdepartment__c = '1.ååè¥ä¸æ¬é¨'; |
| | | assetA3.Internal_asset_location__c = 'å京 å¤åä¸å¿'; |
| | | assetA3.Product_category__c = 'GI'; |
| | | assetA3.Equipment_Type__c = '产åè¯ç¨'; |
| | | assetA3.SalesProvince__c = 'å京'; |
| | | assetA3.WH_location__c = 'è´§æ¶å·3'; |
| | | assetA3.Abandoned_Inventory__c = 1; |
| | | assetA3.AssetManageConfirm__c = true; |
| | | insert new Asset[] {assetA1, assetA2, assetA3}; |
| | | |
| | | Repair__c repair = new Repair__c(); |
| | | repair.Service_Repair_No__c = 'repair'; |
| | | repair.Status__c = 'èæ¡ä¸'; |
| | | repair.Hospital__c = hospital.Id; |
| | | repair.Account__c = dep.Id; |
| | | repair.Department_Class__c = strategicDep[0].id; |
| | | repair.Delivered_Product__c = assetA2.Id; |
| | | insert repair; |
| | | |
| | | String cunFangDi = 'å京 å¤åä¸å¿'; |
| | | Inventory_Header__c header = new Inventory_Header__c(); |
| | | header.Inventory_Start_Date__c = Date.toDay(); |
| | | header.UniqueKey__c = 'IH-0000'; |
| | | header.Inventory_Status__c = 'çç¹ä¸'; |
| | | header.Internal_asset_location__c = cunFangDi; |
| | | insert header; |
| | | |
| | | //Fixture_OneToOne_Link__c oto = new Fixture_OneToOne_Link__c(); |
| | | //oto.Main_Asset__c = assetA1.Id; |
| | | //oto.Accessory_Asset__c = assetA3.Id; |
| | | //oto.Quantity__c = 2; |
| | | //insert oto; |
| | | |
| | | Consum_Inventory_Detail__c id7 = new Consum_Inventory_Detail__c(); |
| | | id7.Asset__c = assetA3.Id; |
| | | id7.Amount__c = 2; |
| | | id7.WH_Location__c = assetA1.WH_location__c; |
| | | //id7.OneToOne_Body__c = false; |
| | | //id7.OneToOne_Accsessary__c = true; |
| | | id7.Asset_Status__c = 'å¨åº'; |
| | | id7.Manage_type__c = 'æ°é管ç'; |
| | | id7.Sync_Asset_Record_Flag__c = false; |
| | | id7.UniqueKey__c = header.Id+':'+pro3.Fixture_Model_No__c+':å¨åº:'+assetA1.Id+':'+assetA3.Id; |
| | | id7.Fixture_Model_No__c = pro3.Fixture_Model_No__c; |
| | | id7.Internal_asset_location__c = cunFangDi; |
| | | id7.Inventory_Time__c = Date.toDay(); |
| | | id7.Inventory_Header__c = header.Id; |
| | | //id7.Fixture_OneToOne_Link__c = oto.Id; |
| | | |
| | | Consum_Inventory_Detail__c id1 = new Consum_Inventory_Detail__c(); |
| | | id1.Asset__c = assetA1.Id; |
| | | id1.Amount__c = assetA1.Quantity; |
| | | id1.WH_Location__c = assetA1.WH_location__c; |
| | | //id1.OneToOne_Body__c = true; |
| | | //id1.OneToOne_Accsessary__c = false; |
| | | id1.Asset_Status__c = 'å¨åº'; |
| | | id1.Sync_Asset_Record_Flag__c = true; |
| | | id1.UniqueKey__c = header.Id+':'+pro1.Fixture_Model_No__c+':å¨åº:'+null+':'+assetA1.Id; |
| | | id1.Fixture_Model_No__c = pro1.Fixture_Model_No__c; |
| | | id1.Internal_asset_location__c = cunFangDi; |
| | | id1.Inventory_Time__c = Date.toDay(); |
| | | id1.Inventory_Header__c = header.Id; |
| | | |
| | | Consum_Inventory_Detail__c id2 = new Consum_Inventory_Detail__c(); |
| | | id2.Asset__c = assetA2.Id; |
| | | id2.Amount__c = 1; |
| | | id2.WH_Location__c = assetA2.WH_location__c; |
| | | //id2.OneToOne_Body__c = false; |
| | | //id2.OneToOne_Accsessary__c = false; |
| | | //id2.Asset_Status__c = 'ç»´ä¿®ä¸'; |
| | | id2.Sync_Asset_Record_Flag__c = false; |
| | | id2.UniqueKey__c = header.Id+':'+pro2.Fixture_Model_No__c+':'+null+':'+assetA2.Id+':'+repair.Id; |
| | | id2.Fixture_Model_No__c = pro2.Fixture_Model_No__c; |
| | | id2.Internal_asset_location__c = cunFangDi; |
| | | id2.Inventory_Time__c = Date.toDay(); |
| | | id2.Inventory_Header__c = header.Id; |
| | | |
| | | Consum_Inventory_Detail__c id3 = new Consum_Inventory_Detail__c(); |
| | | id3.Asset__c = assetA3.Id; |
| | | id3.Amount__c = 7; |
| | | id3.WH_Location__c = assetA3.WH_location__c; |
| | | ////id3.OneToOne_Body__c = false; |
| | | //id3.OneToOne_Accsessary__c = false; |
| | | id3.Asset_Status__c = 'å¨åº'; |
| | | id3.Sync_Asset_Record_Flag__c = true; |
| | | id3.UniqueKey__c = header.Id+':'+pro3.Fixture_Model_No__c+':å¨åº:'+null+':'+assetA3.Id; |
| | | id3.Fixture_Model_No__c = pro3.Fixture_Model_No__c; |
| | | id3.Internal_asset_location__c = cunFangDi; |
| | | id3.Inventory_Time__c = Date.toDay(); |
| | | id3.Inventory_Header__c = header.Id; |
| | | |
| | | Consum_Inventory_Detail__c id4 = new Consum_Inventory_Detail__c(); |
| | | id4.Asset__c = assetA3.Id; |
| | | id4.Amount__c = 1; |
| | | id4.WH_Location__c = assetA3.WH_location__c; |
| | | //id4.OneToOne_Body__c = false; |
| | | //id4.OneToOne_Accsessary__c = false; |
| | | id4.Asset_Status__c = 'åºåä¸'; |
| | | id4.Sync_Asset_Record_Flag__c = false; |
| | | id4.UniqueKey__c = header.Id+':'+pro3.Fixture_Model_No__c+':åºåä¸:'+null+':'+assetA3.Id; |
| | | id4.Fixture_Model_No__c = pro3.Fixture_Model_No__c; |
| | | id4.Internal_asset_location__c = cunFangDi; |
| | | id4.Inventory_Time__c = Date.toDay(); |
| | | id4.Inventory_Header__c = header.Id; |
| | | |
| | | Consum_Inventory_Detail__c id5 = new Consum_Inventory_Detail__c(); |
| | | id5.Asset__c = assetA2.Id; |
| | | id5.Amount__c = 7; |
| | | id5.WH_Location__c = assetA2.WH_location__c; |
| | | //id5.OneToOne_Body__c = false; |
| | | //id5.OneToOne_Accsessary__c = false; |
| | | id5.Asset_Status__c = 'å¨åº'; |
| | | id5.Sync_Asset_Record_Flag__c = true; |
| | | id5.UniqueKey__c = header.Id+':'+pro2.Fixture_Model_No__c+':å¨åº:'+null+':'+assetA2.Id; |
| | | id5.Fixture_Model_No__c = pro2.Fixture_Model_No__c; |
| | | id5.Internal_asset_location__c = cunFangDi; |
| | | //id5.Inventory_Time__c = Date.toDay(); |
| | | id5.Inventory_Header__c = header.Id; |
| | | |
| | | Consum_Inventory_Detail__c id6 = new Consum_Inventory_Detail__c(); |
| | | id6.Asset__c = assetA2.Id; |
| | | id6.Amount__c = 2; |
| | | id6.WH_Location__c = assetA2.WH_location__c; |
| | | //id6.OneToOne_Body__c = false; |
| | | //id6.OneToOne_Accsessary__c = false; |
| | | id6.Asset_Status__c = 'å»ç»'; |
| | | id6.Sync_Asset_Record_Flag__c = false; |
| | | id6.UniqueKey__c = header.Id+':'+pro2.Fixture_Model_No__c+':'+null+':'+assetA2.Id; |
| | | id6.Fixture_Model_No__c = pro2.Fixture_Model_No__c; |
| | | id6.Internal_asset_location__c = cunFangDi; |
| | | //id6.Inventory_Time__c = Date.toDay(); |
| | | id6.Inventory_Header__c = header.Id; |
| | | |
| | | insert new Consum_Inventory_Detail__c[] {id1, id2, id3, id4, id5, id6, id7}; |
| | | } |
| | | |
| | | static testMethod void testMethod1() { |
| | | setupTestData(); |
| | | |
| | | List<Consum_Inventory_Detail__c> headerList = [select Asset__c, Amount__c, Id, Inventory_Time__c, Inventory_Count__c from Consum_Inventory_Detail__c where Asset_Status__c = 'å¨åº' ]; |
| | | |
| | | headerList[0].Inventory_Count__c = 1; |
| | | update headerList[0]; |
| | | //Fixture_OneToOne_Link__c oto = [select Id,Inventory_Frozen_Quantity__c from Fixture_OneToOne_Link__c limit 1]; |
| | | //System.assertEquals(1, oto.Inventory_Frozen_Quantity__c); |
| | | |
| | | headerList[0].Inventory_Count__c = 5; |
| | | update headerList[0]; |
| | | //oto = [select Id,Inventory_Frozen_Quantity__c from Fixture_OneToOne_Link__c limit 1]; |
| | | //System.assertEquals(0, oto.Inventory_Frozen_Quantity__c); |
| | | |
| | | headerList[0].Inventory_Count__c = 0; |
| | | update headerList[0]; |
| | | //oto = [select Id,Inventory_Frozen_Quantity__c from Fixture_OneToOne_Link__c limit 1]; |
| | | //System.assertEquals(2, oto.Inventory_Frozen_Quantity__c); |
| | | |
| | | //headerList[0].Auto_Lost_item_giveup__c = true; |
| | | //update headerList[0]; |
| | | } |
| | | |
| | | static testMethod void testMethod2() { |
| | | setupTestData(); |
| | | |
| | | Consum_Inventory_Detail__c idl1 = [select Asset_Inventory_Flg__c, Asset__c, Amount__c, Id, Inventory_Time__c, Inventory_Count__c from Consum_Inventory_Detail__c where Asset_Status__c = 'å»ç»']; |
| | | Consum_Inventory_Detail__c idlMain = [select Asset_Inventory_Flg__c, Asset__c, Amount__c, Id, Inventory_Time__c, Inventory_Count__c from Consum_Inventory_Detail__c where Asset__c = :idl1.Asset__c and Sync_Asset_Record_Flag__c = true]; |
| | | //System.assertEquals(false, idl1.Asset_Inventory_Flg__c); |
| | | System.assertEquals(false, idlMain.Asset_Inventory_Flg__c); |
| | | |
| | | idl1.Inventory_Count__c = 2; |
| | | idl1.Inventory_Time__c = Date.today(); |
| | | update idl1; |
| | | idl1 = [select Asset_Inventory_Flg__c, Asset__c, Amount__c, Id, Inventory_Time__c, Inventory_Count__c from Consum_Inventory_Detail__c where Asset_Status__c = 'å»ç»']; |
| | | idlMain = [select Asset_Inventory_Flg__c, Asset__c, Amount__c, Id, Inventory_Time__c, Inventory_Count__c from Consum_Inventory_Detail__c where Asset__c = :idl1.Asset__c and Sync_Asset_Record_Flag__c = true]; |
| | | //System.assertEquals(false, idl1.Asset_Inventory_Flg__c); |
| | | System.assertEquals(false, idlMain.Asset_Inventory_Flg__c); |
| | | |
| | | idlMain.Inventory_Count__c = 7; |
| | | idlMain.Inventory_Time__c = Date.today(); |
| | | update idlMain; |
| | | idl1 = [select Asset_Inventory_Flg__c, Asset__c, Amount__c, Id, Inventory_Time__c, Inventory_Count__c from Consum_Inventory_Detail__c where Asset_Status__c = 'å»ç»']; |
| | | idlMain = [select Asset_Inventory_Flg__c, Asset__c, Amount__c, Id, Inventory_Time__c, Inventory_Count__c from Consum_Inventory_Detail__c where Asset__c = :idl1.Asset__c and Sync_Asset_Record_Flag__c = true]; |
| | | System.assertEquals(false, idl1.Asset_Inventory_Flg__c); |
| | | System.assertEquals(true, idlMain.Asset_Inventory_Flg__c); |
| | | } |
| | | |
| | | static testMethod void testMethod3() { |
| | | setupTestData(); |
| | | |
| | | Consum_Inventory_Detail__c idl1 = [select Asset_Inventory_Flg__c, Asset__c, Amount__c, Id, Inventory_Time__c, Inventory_Count__c from Consum_Inventory_Detail__c where Asset_Status__c = 'å»ç»']; |
| | | Consum_Inventory_Detail__c idlMain = [select Asset_Inventory_Flg__c, Asset__c, Amount__c, Id, Inventory_Time__c, Inventory_Count__c from Consum_Inventory_Detail__c where Asset__c = :idl1.Asset__c and Sync_Asset_Record_Flag__c = true]; |
| | | System.assertEquals(false, idl1.Asset_Inventory_Flg__c); |
| | | System.assertEquals(false, idlMain.Asset_Inventory_Flg__c); |
| | | |
| | | idlMain.Amount__c = 0; |
| | | update idlMain; |
| | | idl1.Inventory_Count__c = 2; |
| | | idl1.Inventory_Time__c = Date.today(); |
| | | update idl1; |
| | | |
| | | idl1 = [select Asset_Inventory_Flg__c, Asset__c, Amount__c, Id, Inventory_Time__c, Inventory_Count__c from Consum_Inventory_Detail__c where Asset_Status__c = 'å»ç»']; |
| | | idlMain = [select Asset_Inventory_Flg__c, Asset__c, Amount__c, Id, Inventory_Time__c, Inventory_Count__c from Consum_Inventory_Detail__c where Asset__c = :idl1.Asset__c and Sync_Asset_Record_Flag__c = true]; |
| | | System.assertEquals(false, idl1.Asset_Inventory_Flg__c); |
| | | System.assertEquals(true, idlMain.Asset_Inventory_Flg__c); |
| | | } |
| | | } |
| New file |
| | |
| | | @isTest |
| | | private class ConsumInventoryRepDtlArcRaesdBatchTest { |
| | | |
| | | // å建Assetæ°æ® |
| | | static void setupTestData() { |
| | | // ç
é¢ãä½ã |
| | | Account hospital = new Account(); |
| | | hospital.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'HP'].id; |
| | | hospital.Name = 'test hospital'; |
| | | hospital.Is_Active__c = 'æå¹'; |
| | | hospital.Attribute_Type__c = 'å«çé¨'; |
| | | hospital.Speciality_Type__c = '综åå»é¢'; |
| | | hospital.Grade__c = 'ä¸çº§'; |
| | | hospital.OCM_Category__c = 'SLTV'; |
| | | hospital.Is_Medical__c = 'å»çæºæ'; |
| | | hospital.Town__c = 'ä¸äº¬'; |
| | | insert hospital; |
| | | |
| | | // æ¦ç¥ç§å®¤ãå¾ã |
| | | Account[] strategicDep = [SELECT ID, Name FROM Account WHERE parentId = :hospital.Id AND recordType.DeveloperName = 'Department_Class_OTH']; |
| | | // 診çç§ãä½ã |
| | | Account dep = new Account(); |
| | | dep.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'Department_OTH'].id; |
| | | dep.Name = 'test dep'; |
| | | dep.AgentCode_Ext__c = '9999998'; |
| | | dep.ParentId = strategicDep[0].Id; |
| | | dep.Department_Class__c = strategicDep[0].Id; |
| | | dep.Hospital__c = hospital.Id; |
| | | insert dep; |
| | | |
| | | Contact contact2 = new Contact(); |
| | | contact2.AccountId = dep.Id; |
| | | contact2.FirstName = '責任è
'; |
| | | contact2.LastName = 'test1ç»éå'; |
| | | insert contact2; |
| | | |
| | | // 产å |
| | | Product2 pro1 = new Product2(Name='name01',IsActive=true,Family='GI', |
| | | Fixture_Model_No__c='n01',Serial_Lot_No__c='S/N tracing', |
| | | Fixture_Model_No_T__c = 'n01', |
| | | ProductCode_Ext__c='pc01',Manual_Entry__c=false); |
| | | Product2 pro2 = new Product2(Name='name02',IsActive=true,Family='GI', |
| | | Fixture_Model_No__c='n02',Serial_Lot_No__c='Lot tracing', |
| | | ProductCode_Ext__c='pc02',Manual_Entry__c=false); |
| | | Product2 pro3 = new Product2(Name='name03',IsActive=true,Family='GI', |
| | | Fixture_Model_No__c='n03',Serial_Lot_No__c='Lot tracing', |
| | | ProductCode_Ext__c='pc03',Manual_Entry__c=false); |
| | | insert new Product2[] {pro1, pro2, pro3}; |
| | | |
| | | //---------------------------ä¸»ä½ ä¸¤ä¸ªéå±å(个ä½ç®¡ç æ°é管ç) |
| | | // ä¿æè®¾å¤A (主ä½) |
| | | Asset assetA1 = new Asset(Asset_Owner__c = 'Olympus'); |
| | | assetA1.RecordTypeId = System.Label.Asset_RecordType; |
| | | assetA1.SerialNumber = 'ass01'; |
| | | assetA1.Name = 'ass01'; |
| | | assetA1.AccountId = dep.Id; |
| | | assetA1.Department_Class__c = strategicDep[0].Id; |
| | | assetA1.Hospital__c = hospital.Id; |
| | | assetA1.Product2Id = pro1.Id; |
| | | assetA1.Quantity = 1; |
| | | assetA1.Status = 'æåºå'; |
| | | assetA1.Manage_type__c = '个ä½ç®¡ç'; |
| | | assetA1.Loaner_accsessary__c = false; |
| | | assetA1.Product_category__c = 'GI'; |
| | | assetA1.Delete_Flag__c = false; |
| | | assetA1.Freeze_sign__c = false; |
| | | assetA1.Out_of_wh__c = 0; |
| | | assetA1.Salesdepartment__c = '0.å¤åä¸å¿'; |
| | | assetA1.Internal_asset_location__c = '䏿µ· å¤åä¸å¿'; |
| | | assetA1.Product_category__c = 'GI'; |
| | | assetA1.Equipment_Type__c = '产åè¯ç¨'; |
| | | assetA1.SalesProvince__c = '䏿µ·'; |
| | | assetA1.WH_location__c = 'è´§æ¶å·1'; |
| | | assetA1.AssetManageConfirm__c = true; |
| | | // ä¿æè®¾å¤A (éå±å æ°é管ç) |
| | | Asset assetA2 = new Asset(Asset_Owner__c = 'Olympus'); |
| | | assetA2.RecordTypeId = System.Label.Asset_RecordType; |
| | | assetA2.SerialNumber = 'ass02'; |
| | | assetA2.Name = 'ass02'; |
| | | assetA2.AccountId = dep.Id; |
| | | assetA2.Department_Class__c = strategicDep[0].Id; |
| | | assetA2.Hospital__c = hospital.Id; |
| | | assetA2.Product2Id = pro2.Id; |
| | | assetA2.Quantity = 10; |
| | | assetA2.Status = 'æåºå'; |
| | | assetA2.Manage_type__c = 'æ°é管ç'; |
| | | assetA2.Loaner_accsessary__c = true; |
| | | assetA2.Product_category__c = 'GI'; |
| | | assetA2.Delete_Flag__c = false; |
| | | assetA2.Freeze_sign__c = false; |
| | | assetA2.Out_of_wh__c = 3; |
| | | assetA2.Frozen_Quantity__c = 2; |
| | | assetA2.Salesdepartment__c = '0.å¤åä¸å¿'; |
| | | assetA2.Internal_asset_location__c = '䏿µ· å¤åä¸å¿'; |
| | | assetA2.Product_category__c = 'GI'; |
| | | assetA2.Equipment_Type__c = '产åè¯ç¨'; |
| | | assetA2.SalesProvince__c = '䏿µ·'; |
| | | assetA2.WH_location__c = 'è´§æ¶å·2'; |
| | | assetA2.AssetManageConfirm__c = true; |
| | | |
| | | // èæ |
| | | Asset assetC1 = new Asset(Asset_Owner__c = 'Olympus'); |
| | | assetC1.RecordTypeId = System.Label.Asset_RecordType; |
| | | assetC1.SerialNumber = 'ass03'; |
| | | assetC1.Name = 'ass03'; |
| | | assetC1.AccountId = dep.Id; |
| | | assetC1.Department_Class__c = strategicDep[0].Id; |
| | | assetC1.Hospital__c = hospital.Id; |
| | | assetC1.Product2Id = pro2.Id; |
| | | assetC1.Quantity = 10; |
| | | assetC1.Status = 'æåºå'; |
| | | assetC1.Manage_type__c = 'æ°é管ç'; |
| | | assetC1.Loaner_accsessary__c = true; |
| | | assetC1.Asset_loaner_category__c = 'èæ'; |
| | | assetC1.AssetMark__c = 'èæ'; |
| | | assetC1.Product_category__c = 'GI'; |
| | | assetC1.Delete_Flag__c = false; |
| | | assetC1.Freeze_sign__c = false; |
| | | assetC1.Out_of_wh__c = 3; |
| | | assetC1.Frozen_Quantity__c = 2; |
| | | assetC1.Salesdepartment__c = '0.å¤åä¸å¿'; |
| | | assetC1.Internal_asset_location__c = '䏿µ· å¤åä¸å¿'; |
| | | assetC1.Product_category__c = 'GI'; |
| | | assetC1.Equipment_Type__c = '产åè¯ç¨'; |
| | | assetC1.SalesProvince__c = '䏿µ·'; |
| | | assetC1.WH_location__c = 'è´§æ¶å·2'; |
| | | assetC1.AssetManageConfirm__c = true; |
| | | insert new Asset[] {assetA1, assetA2, assetC1}; |
| | | |
| | | //Repair__c repair = new Repair__c(); |
| | | //repair.Service_Repair_No__c = 'repair'; |
| | | //repair.Status__c = 'èæ¡ä¸'; |
| | | //repair.Hospital__c = hospital.Id; |
| | | //repair.Account__c = dep.Id; |
| | | //repair.Department_Class__c = strategicDep[0].id; |
| | | //repair.Delivered_Product__c = assetA2.Id; |
| | | //insert repair; |
| | | |
| | | String cunFangDi = '䏿µ· å¤åä¸å¿'; |
| | | Inventory_Header__c header = new Inventory_Header__c(); |
| | | header.Inventory_Start_Date__c = Date.toDay(); |
| | | header.UniqueKey__c = 'IH-0000'; |
| | | header.Inventory_Status__c = 'çç¹ä¸'; |
| | | header.Internal_asset_location__c = cunFangDi; |
| | | insert header; |
| | | |
| | | Consum_Inventory_Detail__c id1 = new Consum_Inventory_Detail__c(); |
| | | id1.Asset__c = assetA1.Id; |
| | | id1.Amount__c = 1; |
| | | id1.WH_Location__c = assetA1.WH_location__c; |
| | | //id1.OneToOne_Body__c = false; |
| | | //id1.OneToOne_Accsessary__c = false; |
| | | id1.Asset_Status__c = 'å¨åº'; |
| | | id1.Sync_Asset_Record_Flag__c = true; |
| | | id1.UniqueKey__c = header.Id+':'+pro1.Fixture_Model_No__c+':å¨åº:'+null+':'+assetA1.Id; |
| | | id1.Fixture_Model_No__c = pro1.Fixture_Model_No__c; |
| | | id1.Internal_asset_location__c = cunFangDi; |
| | | id1.Inventory_Time__c = Date.toDay(); |
| | | id1.Inventory_Header__c = header.Id; |
| | | id1.Exported__c = false; |
| | | |
| | | Consum_Inventory_Detail__c id2 = new Consum_Inventory_Detail__c(); |
| | | id2.Asset__c = assetA1.Id; |
| | | id2.Amount__c = 1; |
| | | id2.WH_Location__c = assetA1.WH_location__c; |
| | | //id2.OneToOne_Body__c = false; |
| | | //id2.OneToOne_Accsessary__c = false; |
| | | id2.Asset_Status__c = 'åºåä¸'; |
| | | id2.Sync_Asset_Record_Flag__c = false; |
| | | id2.UniqueKey__c = header.Id+':'+pro1.Fixture_Model_No__c+':åºåä¸:'+null+':'+assetA1.Id; |
| | | id2.Fixture_Model_No__c = pro1.Fixture_Model_No__c; |
| | | id2.Internal_asset_location__c = cunFangDi; |
| | | id2.Inventory_Time__c = Date.toDay(); |
| | | id2.Inventory_Header__c = header.Id; |
| | | id2.Exported__c = false; |
| | | |
| | | Consum_Inventory_Detail__c id3 = new Consum_Inventory_Detail__c(); |
| | | id3.Asset__c = assetA2.Id; |
| | | id3.Amount__c = 2; |
| | | id3.WH_Location__c = assetA2.WH_location__c; |
| | | //id3.OneToOne_Body__c = false; |
| | | //id3.OneToOne_Accsessary__c = false; |
| | | id3.Asset_Status__c = 'å¨åº'; |
| | | id3.Sync_Asset_Record_Flag__c = true; |
| | | id3.UniqueKey__c = header.Id+':'+pro2.Fixture_Model_No__c+':å¨åº:'+null+':'+assetA2.Id; |
| | | id3.Fixture_Model_No__c = pro2.Fixture_Model_No__c; |
| | | id3.Internal_asset_location__c = cunFangDi; |
| | | id3.Inventory_Time__c = Date.toDay(); |
| | | id3.Inventory_Header__c = header.Id; |
| | | id3.Exported__c = false; |
| | | |
| | | Consum_Inventory_Detail__c id4 = new Consum_Inventory_Detail__c(); |
| | | id4.Asset__c = assetA2.Id; |
| | | id4.Amount__c = 2; |
| | | id4.WH_Location__c = assetA2.WH_location__c; |
| | | //id4.OneToOne_Body__c = false; |
| | | //id4.OneToOne_Accsessary__c = false; |
| | | id4.Asset_Status__c = 'åºåä¸'; |
| | | id4.Sync_Asset_Record_Flag__c = false; |
| | | id4.UniqueKey__c = header.Id+':'+pro2.Fixture_Model_No__c+':åºåä¸:'+null+':'+assetA2.Id; |
| | | id4.Fixture_Model_No__c = pro2.Fixture_Model_No__c; |
| | | id4.Internal_asset_location__c = cunFangDi; |
| | | id4.Inventory_Time__c = Date.toDay(); |
| | | id4.Inventory_Header__c = header.Id; |
| | | id4.Exported__c = false; |
| | | |
| | | insert new Consum_Inventory_Detail__c[] {id1, id2, id3, id4}; |
| | | } |
| | | /** |
| | | * after update Inventory_Header__c |
| | | * triggerè°ç¨InventoryReportDtlArcRaesdBatch => approvalIHD() |
| | | * çç¹è¡¨å¤´ çç¹ç¶æä¸ºå·²æ¹å |
| | | * oObj.Inventory_Status__c != 'å·²æ¹å' |
| | | * nObj.Inventory_Status__c == 'å·²æ¹å' |
| | | */ |
| | | static testMethod void testMethod1() { |
| | | bp3_Setting__c conf = bp3_Setting__c.getOrgDefaults(); |
| | | conf.BJ_Start_Inventory_User__c = UserInfo.getUserId(); |
| | | conf.InventoryDetailArchiveFolder__c = UserInfo.getUserId(); |
| | | insert conf; |
| | | |
| | | setupTestData(); |
| | | |
| | | //çç¹è¡¨å¤´ |
| | | List<Inventory_Header__c> headerList = [select UniqueKey__c,Inventory_Start_Date__c,Internal_asset_location__c,Id from Inventory_Header__c]; |
| | | System.assertEquals(1, headerList.size()); |
| | | |
| | | System.Test.StartTest(); |
| | | Integer fileNo = 0; |
| | | Integer totalCount = 0; |
| | | Integer totalCountDone = 0; |
| | | Database.executeBatch(new ConsumInventoryReportDtlArcRaesdBatch(headerList[0], fileNo, totalCount, totalCountDone)); |
| | | System.Test.StopTest(); |
| | | |
| | | List<Document> retList = [SELECT Id |
| | | , Name |
| | | , FolderId |
| | | , Body |
| | | FROM Document |
| | | WHERE FolderId = :UserInfo.getUserId()]; |
| | | |
| | | System.assertEquals(1, retList.size()); |
| | | } |
| | | } |
| New file |
| | |
| | | @isTest |
| | | private class ConsumInventoryReportDetailArcBatchTest { |
| | | |
| | | // å建Assetæ°æ® |
| | | static void setupTestData() { |
| | | // ç
é¢ãä½ã |
| | | Account hospital = new Account(); |
| | | hospital.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'HP'].id; |
| | | hospital.Name = 'test hospital'; |
| | | hospital.Is_Active__c = 'æå¹'; |
| | | hospital.Attribute_Type__c = 'å«çé¨'; |
| | | hospital.Speciality_Type__c = '综åå»é¢'; |
| | | hospital.Grade__c = 'ä¸çº§'; |
| | | hospital.OCM_Category__c = 'SLTV'; |
| | | hospital.Is_Medical__c = 'å»çæºæ'; |
| | | hospital.Town__c = 'ä¸äº¬'; |
| | | insert hospital; |
| | | |
| | | // æ¦ç¥ç§å®¤ãå¾ã |
| | | Account[] strategicDep = [SELECT ID, Name FROM Account WHERE parentId = :hospital.Id AND recordType.DeveloperName = 'Department_Class_OTH']; |
| | | // 診çç§ãä½ã |
| | | Account dep = new Account(); |
| | | dep.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'Department_OTH'].id; |
| | | dep.Name = 'test dep'; |
| | | dep.AgentCode_Ext__c = '9999998'; |
| | | dep.ParentId = strategicDep[0].Id; |
| | | dep.Department_Class__c = strategicDep[0].Id; |
| | | dep.Hospital__c = hospital.Id; |
| | | insert dep; |
| | | |
| | | Contact contact2 = new Contact(); |
| | | contact2.AccountId = dep.Id; |
| | | contact2.FirstName = '責任è
'; |
| | | contact2.LastName = 'test1ç»éå'; |
| | | insert contact2; |
| | | |
| | | // 产å |
| | | Product2 pro1 = new Product2(Name='name01',IsActive=true,Family='GI', |
| | | Fixture_Model_No__c='n01',Serial_Lot_No__c='S/N tracing', |
| | | Fixture_Model_No_T__c = 'n01', |
| | | ProductCode_Ext__c='pc01',Manual_Entry__c=false); |
| | | Product2 pro2 = new Product2(Name='name02',IsActive=true,Family='GI', |
| | | Fixture_Model_No__c='n02',Serial_Lot_No__c='Lot tracing', |
| | | ProductCode_Ext__c='pc02',Manual_Entry__c=false); |
| | | Product2 pro3 = new Product2(Name='name03',IsActive=true,Family='GI', |
| | | Fixture_Model_No__c='n03',Serial_Lot_No__c='Lot tracing', |
| | | ProductCode_Ext__c='pc03',Manual_Entry__c=false); |
| | | insert new Product2[] {pro1, pro2, pro3}; |
| | | |
| | | //---------------------------ä¸»ä½ ä¸¤ä¸ªéå±å(个ä½ç®¡ç æ°é管ç) |
| | | // ä¿æè®¾å¤A (主ä½) |
| | | Asset assetA1 = new Asset(Asset_Owner__c = 'Olympus'); |
| | | assetA1.RecordTypeId = System.Label.Asset_RecordType; |
| | | assetA1.SerialNumber = 'ass01'; |
| | | assetA1.Name = 'ass01'; |
| | | assetA1.AccountId = dep.Id; |
| | | assetA1.Department_Class__c = strategicDep[0].Id; |
| | | assetA1.Hospital__c = hospital.Id; |
| | | assetA1.Product2Id = pro1.Id; |
| | | assetA1.Quantity = 1; |
| | | assetA1.Status = 'æåºå'; |
| | | assetA1.Manage_type__c = '个ä½ç®¡ç'; |
| | | assetA1.Loaner_accsessary__c = false; |
| | | assetA1.Product_category__c = 'GI'; |
| | | assetA1.Delete_Flag__c = false; |
| | | assetA1.Freeze_sign__c = false; |
| | | assetA1.Out_of_wh__c = 0; |
| | | assetA1.Salesdepartment__c = '0.å¤åä¸å¿'; |
| | | assetA1.Internal_asset_location__c = '䏿µ· å¤åä¸å¿'; |
| | | assetA1.Product_category__c = 'GI'; |
| | | assetA1.Equipment_Type__c = '产åè¯ç¨'; |
| | | assetA1.SalesProvince__c = '䏿µ·'; |
| | | assetA1.WH_location__c = 'è´§æ¶å·1'; |
| | | assetA1.AssetManageConfirm__c = true; |
| | | // ä¿æè®¾å¤A (éå±å æ°é管ç) |
| | | Asset assetA2 = new Asset(Asset_Owner__c = 'Olympus'); |
| | | assetA2.RecordTypeId = System.Label.Asset_RecordType; |
| | | assetA2.SerialNumber = 'ass02'; |
| | | assetA2.Name = 'ass02'; |
| | | assetA2.AccountId = dep.Id; |
| | | assetA2.Department_Class__c = strategicDep[0].Id; |
| | | assetA2.Hospital__c = hospital.Id; |
| | | assetA2.Product2Id = pro2.Id; |
| | | assetA2.Quantity = 10; |
| | | assetA2.Status = 'æåºå'; |
| | | assetA2.Manage_type__c = 'æ°é管ç'; |
| | | assetA2.Loaner_accsessary__c = true; |
| | | assetA2.Product_category__c = 'GI'; |
| | | assetA2.Delete_Flag__c = false; |
| | | assetA2.Freeze_sign__c = false; |
| | | assetA2.Out_of_wh__c = 3; |
| | | assetA2.Frozen_Quantity__c = 2; |
| | | assetA2.Salesdepartment__c = '0.å¤åä¸å¿'; |
| | | assetA2.Internal_asset_location__c = '䏿µ· å¤åä¸å¿'; |
| | | assetA2.Product_category__c = 'GI'; |
| | | assetA2.Equipment_Type__c = '产åè¯ç¨'; |
| | | assetA2.SalesProvince__c = '䏿µ·'; |
| | | assetA2.WH_location__c = 'è´§æ¶å·2'; |
| | | assetA2.AssetManageConfirm__c = true; |
| | | // ä¿æè®¾å¤A (éå±å 个ä½ç®¡ç) |
| | | Asset assetA3 = new Asset(Asset_Owner__c = 'Olympus'); |
| | | assetA3.RecordTypeId = System.Label.Asset_RecordType; |
| | | assetA3.SerialNumber = 'ass03'; |
| | | assetA3.Name = 'ass03'; |
| | | assetA3.AccountId = dep.Id; |
| | | assetA3.Department_Class__c = strategicDep[0].Id; |
| | | assetA3.Hospital__c = hospital.Id; |
| | | assetA3.Product2Id = pro3.Id; |
| | | assetA3.Quantity = 10; |
| | | assetA3.Status = 'æåºå'; |
| | | assetA3.Manage_type__c = 'æ°é管ç'; |
| | | assetA3.Loaner_accsessary__c = true; |
| | | assetA3.Product_category__c = 'GI'; |
| | | assetA3.Delete_Flag__c = false; |
| | | assetA3.Freeze_sign__c = false; |
| | | assetA3.Out_of_wh__c = 3; |
| | | assetA3.Salesdepartment__c = '0.å¤åä¸å¿'; |
| | | assetA3.Internal_asset_location__c = '䏿µ· å¤åä¸å¿'; |
| | | assetA3.Product_category__c = 'GI'; |
| | | assetA3.Equipment_Type__c = '产åè¯ç¨'; |
| | | assetA3.SalesProvince__c = '䏿µ·'; |
| | | assetA3.WH_location__c = 'è´§æ¶å·3'; |
| | | assetA3.Abandoned_Inventory__c = 1; |
| | | assetA3.AssetManageConfirm__c = true; |
| | | |
| | | // èæ |
| | | Asset assetC1 = new Asset(Asset_Owner__c = 'Olympus'); |
| | | assetC1.RecordTypeId = System.Label.Asset_RecordType; |
| | | assetC1.SerialNumber = 'ass04'; |
| | | assetC1.Name = 'ass04'; |
| | | assetC1.AccountId = dep.Id; |
| | | assetC1.Department_Class__c = strategicDep[0].Id; |
| | | assetC1.Hospital__c = hospital.Id; |
| | | assetC1.Product2Id = pro3.Id; |
| | | assetC1.Quantity = 10; |
| | | assetC1.Status = 'æåºå'; |
| | | assetC1.Manage_type__c = 'æ°é管ç'; |
| | | assetC1.Loaner_accsessary__c = true; |
| | | assetC1.Product_category__c = 'GI'; |
| | | assetC1.Delete_Flag__c = false; |
| | | assetC1.Freeze_sign__c = false; |
| | | assetC1.Out_of_wh__c = 3; |
| | | assetC1.Asset_loaner_category__c = 'èæ'; |
| | | assetC1.AssetMark__c = 'èæ'; |
| | | assetC1.Salesdepartment__c = '0.å¤åä¸å¿'; |
| | | assetC1.Internal_asset_location__c = '䏿µ· å¤åä¸å¿'; |
| | | assetC1.Product_category__c = 'GI'; |
| | | assetC1.Equipment_Type__c = '产åè¯ç¨'; |
| | | assetC1.SalesProvince__c = '䏿µ·'; |
| | | assetC1.WH_location__c = 'è´§æ¶å·4'; |
| | | assetC1.Abandoned_Inventory__c = 1; |
| | | assetC1.AssetManageConfirm__c = true; |
| | | insert new Asset[] {assetA1, assetA2, assetA3, assetC1}; |
| | | //Repair__c repair = new Repair__c(); |
| | | //repair.Service_Repair_No__c = 'repair'; |
| | | //repair.Status__c = 'èæ¡ä¸'; |
| | | //repair.Hospital__c = hospital.Id; |
| | | //repair.Account__c = dep.Id; |
| | | //repair.Department_Class__c = strategicDep[0].id; |
| | | //repair.Delivered_Product__c = assetA2.Id; |
| | | //insert repair; |
| | | |
| | | String cunFangDi = '䏿µ· å¤åä¸å¿'; |
| | | Inventory_Header__c header = new Inventory_Header__c(); |
| | | header.Inventory_Start_Date__c = Date.toDay(); |
| | | header.UniqueKey__c = 'IH-0000'; |
| | | header.Inventory_Status__c = 'çç¹ä¸'; |
| | | header.Internal_asset_location__c = cunFangDi; |
| | | insert header; |
| | | |
| | | Consum_Inventory_Detail__c id1 = new Consum_Inventory_Detail__c(); |
| | | id1.Asset__c = assetA1.Id; |
| | | id1.Amount__c = assetA1.Quantity; |
| | | id1.WH_Location__c = assetA1.WH_location__c; |
| | | //id1.OneToOne_Body__c = false; |
| | | //id1.OneToOne_Accsessary__c = false; |
| | | id1.Asset_Status__c = 'å¨åº'; |
| | | id1.Sync_Asset_Record_Flag__c = true; |
| | | id1.UniqueKey__c = header.Id+':'+pro1.Fixture_Model_No__c+':å¨åº:'+null+':'+assetA1.Id; |
| | | id1.Fixture_Model_No__c = pro1.Fixture_Model_No__c; |
| | | id1.Internal_asset_location__c = cunFangDi; |
| | | id1.Inventory_Time__c = Date.toDay(); |
| | | id1.Inventory_Header__c = header.Id; |
| | | |
| | | Consum_Inventory_Detail__c id2 = new Consum_Inventory_Detail__c(); |
| | | id2.Asset__c = assetA2.Id; |
| | | id2.Amount__c = 1; |
| | | id2.WH_Location__c = assetA2.WH_location__c; |
| | | //id2.OneToOne_Body__c = false; |
| | | //id2.OneToOne_Accsessary__c = false; |
| | | //id2.Asset_Status__c = 'ç»´ä¿®ä¸'; |
| | | id2.Sync_Asset_Record_Flag__c = false; |
| | | id2.UniqueKey__c = header.Id+':'+pro2.Fixture_Model_No__c+':'+null+':'+assetA2.Id; |
| | | id2.Fixture_Model_No__c = pro2.Fixture_Model_No__c; |
| | | id2.Internal_asset_location__c = cunFangDi; |
| | | id2.Inventory_Time__c = Date.toDay(); |
| | | id2.Inventory_Header__c = header.Id; |
| | | |
| | | Consum_Inventory_Detail__c id3 = new Consum_Inventory_Detail__c(); |
| | | id3.Asset__c = assetA3.Id; |
| | | id3.Amount__c = 9; |
| | | id3.WH_Location__c = assetA3.WH_location__c; |
| | | //id3.OneToOne_Body__c = false; |
| | | //id3.OneToOne_Accsessary__c = false; |
| | | id3.Asset_Status__c = 'å¨åº'; |
| | | id3.Sync_Asset_Record_Flag__c = true; |
| | | id3.UniqueKey__c = header.Id+':'+pro3.Fixture_Model_No__c+':å¨åº:'+null+':'+assetA3.Id; |
| | | id3.Fixture_Model_No__c = pro3.Fixture_Model_No__c; |
| | | id3.Internal_asset_location__c = cunFangDi; |
| | | id3.Inventory_Time__c = Date.toDay(); |
| | | id3.Inventory_Header__c = header.Id; |
| | | |
| | | Consum_Inventory_Detail__c id4 = new Consum_Inventory_Detail__c(); |
| | | id4.Asset__c = assetA3.Id; |
| | | id4.Amount__c = 1; |
| | | id4.WH_Location__c = assetA3.WH_location__c; |
| | | //id4.OneToOne_Body__c = false; |
| | | //id4.OneToOne_Accsessary__c = false; |
| | | id4.Asset_Status__c = 'åºåä¸'; |
| | | id4.Sync_Asset_Record_Flag__c = false; |
| | | id4.UniqueKey__c = header.Id+':'+pro3.Fixture_Model_No__c+':åºåä¸:'+null+':'+assetA3.Id; |
| | | id4.Fixture_Model_No__c = pro3.Fixture_Model_No__c; |
| | | id4.Internal_asset_location__c = cunFangDi; |
| | | id4.Inventory_Time__c = Date.toDay(); |
| | | id4.Inventory_Header__c = header.Id; |
| | | |
| | | Consum_Inventory_Detail__c id5 = new Consum_Inventory_Detail__c(); |
| | | id5.Asset__c = assetA2.Id; |
| | | id5.Amount__c = 7; |
| | | id5.WH_Location__c = assetA2.WH_location__c; |
| | | //id5.OneToOne_Body__c = false; |
| | | //id5.OneToOne_Accsessary__c = false; |
| | | id5.Asset_Status__c = 'å¨åº'; |
| | | id5.Sync_Asset_Record_Flag__c = true; |
| | | id5.UniqueKey__c = header.Id+':'+pro2.Fixture_Model_No__c+':å¨åº:'+null+':'+assetA2.Id; |
| | | id5.Fixture_Model_No__c = pro2.Fixture_Model_No__c; |
| | | id5.Internal_asset_location__c = cunFangDi; |
| | | id5.Inventory_Time__c = Date.toDay(); |
| | | id5.Inventory_Header__c = header.Id; |
| | | |
| | | Consum_Inventory_Detail__c id6 = new Consum_Inventory_Detail__c(); |
| | | id6.Asset__c = assetA2.Id; |
| | | id6.Amount__c = 2; |
| | | id6.WH_Location__c = assetA2.WH_location__c; |
| | | //id6.OneToOne_Body__c = false; |
| | | //id6.OneToOne_Accsessary__c = false; |
| | | id6.Asset_Status__c = 'å»ç»'; |
| | | id6.Sync_Asset_Record_Flag__c = false; |
| | | id6.UniqueKey__c = header.Id+':'+pro2.Fixture_Model_No__c+':å»ç»:'+null+':'+assetA2.Id; |
| | | id6.Fixture_Model_No__c = pro2.Fixture_Model_No__c; |
| | | id6.Internal_asset_location__c = cunFangDi; |
| | | id6.Inventory_Time__c = Date.toDay(); |
| | | id6.Inventory_Header__c = header.Id; |
| | | |
| | | insert new Consum_Inventory_Detail__c[] {id1, id2, id3, id4, id5, id6}; |
| | | } |
| | | /** |
| | | * after update Inventory_Header__c |
| | | * triggerè°ç¨InventoryReportDetailArchiveBatch => approvalIHD() |
| | | * çç¹è¡¨å¤´ çç¹ç¶æä¸ºå·²æ¹å |
| | | * oObj.Inventory_Status__c != 'å·²æ¹å' |
| | | * nObj.Inventory_Status__c == 'å·²æ¹å' |
| | | */ |
| | | static testMethod void testMethod1() { |
| | | bp3_Setting__c conf = bp3_Setting__c.getOrgDefaults(); |
| | | conf.BJ_Start_Inventory_User__c = UserInfo.getUserId(); |
| | | conf.InventoryDetailArchiveFolder__c = UserInfo.getUserId(); |
| | | insert conf; |
| | | |
| | | setupTestData(); |
| | | |
| | | //çç¹è¡¨å¤´ |
| | | List<Inventory_Header__c> headerList = [select UniqueKey__c,Inventory_Start_Date__c,Internal_asset_location__c,Id from Inventory_Header__c]; |
| | | System.assertEquals(1, headerList.size()); |
| | | |
| | | System.Test.StartTest(); |
| | | Database.executeBatch(new ConsumInventoryReportDetailArchiveBatch(headerList[0])); |
| | | System.Test.StopTest(); |
| | | |
| | | List<Document> retList = [SELECT Id |
| | | , Name |
| | | , FolderId |
| | | , Body |
| | | FROM Document |
| | | WHERE FolderId = :UserInfo.getUserId()]; |
| | | |
| | | System.assertEquals(1, retList.size()); |
| | | } |
| | | } |
| New file |
| | |
| | | global class ConsumInventoryReportDetailArchiveBatch implements Database.Batchable<sObject>, Database.Stateful { |
| | | private Inventory_Header__c ih_new = new Inventory_Header__c(); |
| | | private String docBodyAsset = ''; // TODO 5M 㨠batch heap size åé¡ |
| | | // private String docBodyRaesd = ''; // TODO 5M 㨠batch heap size åé¡ |
| | | private String docBodyDiushi = ''; // TODO 5M 㨠batch heap size åé¡ |
| | | //private String docBodyRepair = ''; // TODO 5M 㨠batch heap size åé¡ |
| | | |
| | | private Set<String> defaultAssetField; |
| | | private Set<String> defaultRaesdField; |
| | | //private Set<String> defaultRepairField; |
| | | private List<String> cListAssetField = new List<String>(); |
| | | private List<String> cListConsumedField = new List<String>(); |
| | | private List<String> cListRaesdField = new List<String>(); |
| | | //private List<String> cListRepairField = new List<String>(); |
| | | private Map<String, String> fieldAPIName = new Map<String, String>(); |
| | | |
| | | global List<String> emailMessages; |
| | | global Integer totalCount = 0; // æ»ä»¶æ° (Consum_Inventory_Detail__c (Sync_Asset_Record_Flag__c = true)) |
| | | global Integer failedCount = 0; |
| | | |
| | | @TestVisible |
| | | private static List<String> messagesForTest; |
| | | |
| | | /** |
| | | * æ¹åå, Trigger 伿¥è° |
| | | */ |
| | | global ConsumInventoryReportDetailArchiveBatch(Inventory_Header__c ih_new) { |
| | | this.emailMessages = new List<String>(); |
| | | this.ih_new = ih_new; |
| | | } |
| | | |
| | | global Database.QueryLocator start(Database.BatchableContext bc) { |
| | | bp3_Setting__c conf = bp3_Setting__c.getOrgDefaults(); |
| | | if (String.isBlank(conf.InventoryDetailArchiveFolder__c)) { |
| | | this.emailMessages.add('æªè®¾ç½®CSVä¿åæä»¶å¤¹ï¼ä¸è½å¼å§Batch'); |
| | | failedCount = 0; |
| | | return Database.getQueryLocator([SELECT Id FROM Consum_Inventory_Detail__c LIMIT 0]); |
| | | } |
| | | |
| | | Inventory_Batch_Mapping__mdt columns; |
| | | List<String> keyList; |
| | | |
| | | defaultAssetField = new Set<String>(); |
| | | defaultRaesdField = new Set<String>(); |
| | | //defaultRepairField = new Set<String>(); |
| | | |
| | | columns = [select From_Columns__c, Inventory_Columns__c from Inventory_Batch_Mapping__mdt where DeveloperName = 'ConsumAsset']; |
| | | keyList = columns.Inventory_Columns__c.split(','); |
| | | keyList.addAll(new List<String> { |
| | | 'Inventory_Zaiku_Count_Jia__c', |
| | | 'Inventory_Shipan_Count_Jia__c', |
| | | //'Inventory_Weixiu_Count_Jia__c', |
| | | 'Inventory_Chujie_Count_Jia__c', |
| | | //'Inventory_Daibaofei_Diushi_Count_Jia__c', |
| | | 'Inventory_Quantity_Jia__c', |
| | | 'Inventory_Profit_Quantity__c', |
| | | 'Inventory_Loss_Quantity__c', |
| | | 'Inventory_Deviation_Jia__c', |
| | | 'Barcode__c', |
| | | 'Consumed_Count__c', |
| | | 'Inventory_Remarks__c', |
| | | 'Remarks_Person__r.Name' |
| | | }); |
| | | |
| | | String cListAssetFieldStr = 'Asset__c,Internal_asset_location__c,Salesdepartment__c,Fixture_Model_No__c,Asset_Name__c,SerialNumber__c,Equipment_Type__c,Consumable_Guaranteen_end__c,Manage_type__c,Loaner_accsessary__c,AssetManageConfirm__c,Fixture_QRCode__c,WH_location__c,Fixture_Status__c,Inventory_Zaiku_Count_Jia__c,Inventory_Shipan_Count_Jia__c,Inventory_Chujie_Count_Jia__c,Inventory_Quantity_Jia__c,Inventory_Profit_Quantity__c,Inventory_Loss_Quantity__c,Inventory_Deviation_Jia__c,Inventory_Remarks__c,Barcode__c,Consumed_Count__c,Remarks_Person__r.Name'; |
| | | cListAssetField = cListAssetFieldStr.split(','); |
| | | for (Integer i = 0; i < keyList.size(); i++) { |
| | | defaultAssetField.add(keyList[i]); |
| | | } |
| | | |
| | | String cListConsumedFieldStr = 'Consum_Apply_Name__c,Account__c,RA_Status__c,Salesdept__c,WorkPlace__c,Person_In_Charge_New__c,Person_In_Charge__c,demo_purpose2__c,RAES_No__c,RAES_Status__c,RAESD_Name__c,RAESD_Status__c,Fixture_Model_No__c,SerialNumber__c,Internal_asset_location__c,Equipment_Type__c,Salesdepartment__c,WH_location__c,Consum_Start_Date__c,Show_demonstration__c,Operation_Type__c,Case_OR_animal_organ__c,Trial_User__c,Follower_User__r.Name,Spare__c,Request_approval_time__c,Select_Time__c,Request_shipping_day__c,Shipment_request_time2__c,Shippment_loaner_time__c,Loaner_received_time__c,Consum_Received_Day__c,Asset_Center_Confirm_Time__c,Lost_item_check_time__c,Lost_item_check_time_Final__c,AssetManageConfirmYN__c,RAESD__c,Consum_Apply__c,Consum_Apply_Equipment_Set__c,Asset__c'; |
| | | cListConsumedField = cListConsumedFieldStr.split(','); |
| | | String cListRaesdFieldStr = 'Consum_Apply_Name__c,Account__c,RA_Status__c,Salesdept__c,WorkPlace__c,Person_In_Charge_New__c,Person_In_Charge__c,demo_purpose2__c,RAES_No__c,RAES_Status__c,RAESD_Name__c,RAESD_Status__c,Fixture_Model_No__c,SerialNumber_F__c,Internal_asset_location__c,Equipment_Type__c,Salesdepartment__c,WH_location__c,Consum_Start_Date__c,Show_demonstration__c,Operation_Type__c,Case_OR_animal_organ__c,Trial_User__c,Follower_User__r.Name,Spare__c,Request_approval_time__c,Select_Time__c,Request_shipping_day__c,Shipment_request_time2__c,Shippment_loaner_time__c,Loaner_received_time__c,Asset_return_time__c,Consum_Received_Day__c,Asset_Center_Confirm_Time__c,AssetManageConfirmYN__c,RAESD__c,Consum_Apply__c,Consum_Apply_Equipment_Set__c,Asset__c'; |
| | | cListRaesdField = cListRaesdFieldStr.split(cListRaesdFieldStr); |
| | | columns = [select From_Columns__c, Inventory_Columns__c from Inventory_Batch_Mapping__mdt where DeveloperName = 'CAESD']; |
| | | keyList = columns.Inventory_Columns__c.split(','); |
| | | for (Integer i = 0; i < keyList.size(); i++) { |
| | | defaultRaesdField.add(keyList[i]); |
| | | } |
| | | |
| | | //è·ålabel |
| | | String objectType ='Consum_Inventory_Detail__c'; |
| | | Map<String, Schema.SObjectType> schemaMap = Schema.getGlobalDescribe(); |
| | | Schema.SObjectType leadSchema = schemaMap.get(objectType); |
| | | Map<String, Schema.SObjectField> fieldMap = leadSchema.getDescribe().fields.getMap(); |
| | | |
| | | for(String fieldName : fieldMap.keySet()){ |
| | | fieldAPIName.put(fieldName, fieldMap.get(fieldName).getDescribe().getLabel()); |
| | | } |
| | | |
| | | Id ih_new_Id = ih_new.Id; |
| | | String querysql = 'select ' + String.join(new List<String>(defaultAssetField), ', ') |
| | | + ' from Consum_Inventory_Detail__c ' |
| | | + 'where Sync_Asset_Record_Flag__c = true' |
| | | + ' and Inventory_Header__c = :ih_new_Id'; |
| | | return Database.getQueryLocator(querysql); |
| | | } |
| | | |
| | | global void execute(Database.BatchableContext BC, List<Consum_Inventory_Detail__c> syncAssetList) { |
| | | totalCount += syncAssetList.size(); |
| | | try { |
| | | |
| | | String executeBodyAsset = ''; // TODO 5M 㨠batch heap size åé¡ |
| | | // String executeBodyRaesd = ''; // TODO 5M 㨠batch heap size åé¡ |
| | | String executeBodyDiushi = ''; // TODO 5M 㨠batch heap size åé¡ |
| | | //String executeBodyRepair = ''; // TODO 5M 㨠batch heap size åé¡ |
| | | String querysql; |
| | | List<Id> assetIds = new List<Id>(); |
| | | for (Consum_Inventory_Detail__c idc : syncAssetList) { |
| | | assetIds.add(idc.Asset__c); |
| | | } |
| | | Id ih_new_Id = ih_new.Id; |
| | | List<AggregateResult> statusArList = [ |
| | | SELECT Asset_Status__c status, sum(Amount__c) quantity |
| | | , sum(Inventory_Count__c) invShipanCount, Asset__c assetId |
| | | , sum(Inventory_Deviation__c) deviaCount |
| | | , sum(Sync_Asset_Frozen_Quantity__c) lossCount |
| | | , sum(Sync_Asset_Profit_Quantity__c) profitCount |
| | | , sum(Asset__r.Abandoned_Inventory__c) abCount |
| | | FROM Consum_Inventory_Detail__c |
| | | WHERE Asset__c in :assetIds |
| | | AND Inventory_Header__c = :ih_new_Id |
| | | AND Asset_Status__c != 'å·²æ¶èæç»' |
| | | GROUP BY Asset_Status__c, Asset__c]; |
| | | system.debug(statusArList); |
| | | Map<Id, InventoryReportDetailController.StatusCount> assetCountMap |
| | | = new Map<Id, InventoryReportDetailController.StatusCount>(); |
| | | for (AggregateResult ar : statusArList) { |
| | | InventoryReportDetailController.StatusCount statusCount = new InventoryReportDetailController.StatusCount(0); |
| | | Integer amount = (Integer.valueOf(ar.get('quantity')) == null) ? 0 : Integer.valueOf(ar.get('quantity')); // åºçæ° |
| | | Integer acAmount = (Integer.valueOf(ar.get('invShipanCount')) == null) ? 0 : Integer.valueOf(ar.get('invShipanCount')); // å®çæ° |
| | | Integer wuchaAmount = (Integer.valueOf(ar.get('deviaCount')) == null) ? 0 : Integer.valueOf(ar.get('deviaCount')); // çç¹è¯¯å·®(çç/çäº) |
| | | Integer lossAmount = (Integer.valueOf(ar.get('lossCount')) == null) ? 0 : Integer.valueOf(ar.get('lossCount')); // çç¹è¯¯å·®(çç/çäº) |
| | | Integer profitAmount = (Integer.valueOf(ar.get('profitCount')) == null) ? 0 : Integer.valueOf(ar.get('profitCount')); // çç¹è¯¯å·®(çç/çäº) |
| | | Integer abAmount = (Integer.valueOf(ar.get('abCount')) == null) ? 0 : Integer.valueOf(ar.get('abCount')); |
| | | Id assId = String.valueof(ar.get('assetId')); |
| | | |
| | | if (assetCountMap.containsKey(assId)) { |
| | | statusCount = assetCountMap.get(assId); |
| | | } |
| | | |
| | | if (ar.get('status') == 'å¨åº') { |
| | | statusCount.zaikuNum += amount; |
| | | statusCount.quantity += abAmount; |
| | | } |
| | | //else if (ar.get('status') == 'ç»´ä¿®ä¸') { |
| | | // statusCount.weixiuNum += amount; // åºçç»´ä¿®ä¸ |
| | | //} |
| | | else if (ar.get('status') == 'åºåä¸') { |
| | | statusCount.chujieNum += amount; // åºçåºåä¸ |
| | | statusCount.quantity += amount; // åºçæ°é |
| | | } |
| | | else if (ar.get('status') == 'å·²æ¶è') { |
| | | statusCount.diushiNum += amount; // åºçå·²æ¶è |
| | | } |
| | | else if (ar.get('status') == 'å»ç»') { |
| | | statusCount.zaikuNum += amount; // çç¹å¨åºæ°='å¨åº'åºçæ°+'å»ç»'åºçæ° |
| | | } |
| | | if(ar.get('status') == 'å¨åº' || ar.get('status') == 'å»ç»'){ |
| | | statusCount.quantity += amount; // åºçæ°é |
| | | statusCount.shipanNum += acAmount; // å®ç |
| | | statusCount.wuchaNum += wuchaAmount; // çç¹è¯¯å·®(çç/çäº) |
| | | statusCount.panyinNum += profitAmount; |
| | | statusCount.pankuiNum += lossAmount; |
| | | } |
| | | |
| | | assetCountMap.put(assId, statusCount); |
| | | } |
| | | for (Consum_Inventory_Detail__c idc : syncAssetList) { |
| | | InventoryReportDetailController.StatusCount eachSCount = assetCountMap.get(idc.Asset__c); |
| | | if (eachSCount != null) { |
| | | idc.Inventory_Zaiku_Count_Jia__c = eachSCount.zaikuNum; |
| | | idc.Inventory_Shipan_Count_Jia__c = eachSCount.shipanNum; |
| | | //idc.Inventory_Weixiu_Count_Jia__c = eachSCount.weixiuNum; |
| | | idc.Inventory_Chujie_Count_Jia__c = eachSCount.chujieNum; |
| | | //idc.Inventory_Daibaofei_Diushi_Count_Jia__c = eachSCount.diushiNum; |
| | | idc.Consumed_Count__c = eachSCount.diushiNum; |
| | | idc.Inventory_Quantity_Jia__c = eachSCount.quantity; |
| | | idc.Inventory_Deviation_Jia__c = eachSCount.wuchaNum; |
| | | idc.Inventory_Profit_Quantity__c = eachSCount.panyinNum; |
| | | idc.Inventory_Loss_Quantity__c = eachSCount.pankuiNum; |
| | | executeBodyAsset += setDocBodyObject(idc, 'Asset', false); |
| | | } |
| | | } |
| | | |
| | | |
| | | //ååºæç» |
| | | // querysql = 'select ' + String.join(new List<String>(defaultRaesdField), ', ') |
| | | // + ' from Inventory_Detail__c where Asset__c IN :assetIds and Asset_Status__c = \'åºåä¸\''; |
| | | // for (Inventory_Detail__c dl : Database.query(querysql)) { |
| | | // executeBodyRaesd += setDocBodyObject(dl, 'Raesd', false); |
| | | // } |
| | | |
| | | // å·²æ¶èæç»(å丢失ååºæç») |
| | | querysql = 'select ' + String.join(new List<String>(cListConsumedField), ', ') |
| | | + ' from Consum_Inventory_Detail__c where Asset__c IN :assetIds and Inventory_Header__c = :ih_new_Id and Asset_Status__c = \'å·²æ¶èæç»\''; |
| | | for (Consum_Inventory_Detail__c dl : Database.query(querysql)) { |
| | | executeBodyDiushi += setDocBodyObject(dl, 'Lost', false); |
| | | } |
| | | |
| | | //ä¿®çid |
| | | //querysql = 'select ' + String.join(new List<String>(defaultRepairField), ', ') |
| | | // + ' from Consum_Inventory_Detail__c where Asset__c IN :assetIds and Inventory_Header__c = :ih_new_Id and Asset_Status__c = \'ç»´ä¿®ä¸\''; |
| | | //for (Consum_Inventory_Detail__c rp : Database.query(querysql)) { |
| | | // executeBodyRepair += setDocBodyObject(rp, 'Repair', false); |
| | | //} |
| | | docBodyAsset += executeBodyAsset; |
| | | // docBodyRaesd += executeBodyRaesd; |
| | | docBodyDiushi += executeBodyDiushi; |
| | | //docBodyRepair += executeBodyRepair; |
| | | } catch (Exception e) { |
| | | failedCount += syncAssetList.size(); |
| | | System.debug(LoggingLevel.ERROR, e.getMessage() + '\n' + e.getStackTraceString()); |
| | | this.emailMessages.add(e.getMessage() + '\n' + e.getStackTraceString()); |
| | | } |
| | | } |
| | | |
| | | private String setDocBodyObject(sObject obj, String typeStr, boolean label) { |
| | | List<String> toCol; |
| | | if (typeStr == 'Asset') { |
| | | toCol = cListAssetField; |
| | | //} else if (typeStr == 'Repair') { |
| | | // toCol = cListRepairField; |
| | | } |
| | | else if(typeStr == 'Lost'){ |
| | | toCol = cListConsumedField; |
| | | } |
| | | else { |
| | | toCol = cListRaesdField; |
| | | } |
| | | Schema.SObjectType targetType = Consum_Inventory_Detail__c.sObjectType; |
| | | Schema.DescribeSObjectResult sobjResult = targetType.getDescribe(); |
| | | Map<string, Schema.SObjectField> m = sobjResult.fields.getMap(); |
| | | |
| | | String docBody = ''; |
| | | for (Integer i = 0; i < toCol.size(); i++) { |
| | | List<String> cols = toCol[i].split('\\.'); |
| | | if (obj == null) { |
| | | if (label) { |
| | | docBody += fieldAPIName.get(toCol[i].toLowerCase().replace('__r.name','__c')).escapeCsv(); |
| | | } else { |
| | | docBody += toCol[i].escapeCsv(); |
| | | } |
| | | } |
| | | else { |
| | | Object val = CreateRelationListPagingCmpCtrl.getObjectValue(obj, cols); |
| | | if (val != null) { |
| | | Schema.DescribeFieldResult descField = m.get(toCol[i].toLowerCase().replace('__r.name','__c')).getDescribe(); |
| | | if(descField.getType() == DisplayType.DATETIME && String.isNotBlank('' + val)){ |
| | | docBody += (''+((Datetime) val).addHours(8)).escapeCsv(); |
| | | } |
| | | else{ |
| | | docBody += ('' + val).escapeCsv(); |
| | | } |
| | | } |
| | | } |
| | | // å , å è¡æ« çæ¢è¡ |
| | | if (i < toCol.size() - 1) { |
| | | docBody += ','; |
| | | } else { |
| | | docBody += '\r\n'; |
| | | } |
| | | } |
| | | return docBody; |
| | | } |
| | | |
| | | public Document getArchiveFilenameForUpsert(String typeStr, Inventory_Header__c ih_new) { |
| | | bp3_Setting__c conf = bp3_Setting__c.getOrgDefaults(); |
| | | Id folderId = conf.InventoryDetailArchiveFolder__c; |
| | | String filename = ih_new.Inventory_Start_Date__c.year() + ('' + ih_new.Inventory_Start_Date__c.month()).leftPad(2, '0') |
| | | + '_' + ih_new.Internal_asset_location__c + '_'; |
| | | if(typeStr == 'Asset'){ |
| | | filename += 'èæèµäº§.csv'; |
| | | } |
| | | else if(typeStr == 'Lost') { |
| | | filename += 'èæå·²æ¶èè®°å½.csv'; |
| | | } |
| | | else{ |
| | | filename += 'èæ' + typeStr + '.csv'; |
| | | } |
| | | |
| | | Document ret = null; |
| | | List<Document> retList = [SELECT Id |
| | | , Name |
| | | , FolderId |
| | | , Body |
| | | FROM Document |
| | | WHERE FolderId = :folderId |
| | | AND Name =:filename]; |
| | | if (retList.size() > 0) { |
| | | ret = retList[0]; |
| | | } |
| | | if (ret == null) { |
| | | ret = new Document(); |
| | | ret.Name = filename; |
| | | ret.FolderId = folderId; |
| | | ret.Type = 'csv'; |
| | | insert ret; |
| | | } |
| | | String docBody = setDocBodyObject(null, typeStr, false); |
| | | docBody += setDocBodyObject(null, typeStr, true); |
| | | ret.Body = Blob.valueOf(docBody); |
| | | |
| | | return ret; |
| | | } |
| | | |
| | | global void finish(Database.BatchableContext BC) { |
| | | Integer csvCount = 2; // æ»ä»¶æ° (CSV) |
| | | Integer failedCsvCount = 0; |
| | | |
| | | if (docBodyAsset == '') { |
| | | failedCsvCount++; |
| | | this.emailMessages.add('èæèµäº§æ°æ®ä¸åå¨'); |
| | | } else { |
| | | Document assetDoc = getArchiveFilenameForUpsert('Asset', ih_new); |
| | | assetDoc.Body = Blob.valueOf(assetDoc.Body.toString() + docBodyAsset); |
| | | Database.SaveResult saveResult = Database.update(assetDoc, false); |
| | | if (!saveResult.isSuccess()) failedCsvCount++; |
| | | this.emailMessages = FixtureUtil.setSaveError(new List<Database.SaveResult>{saveResult}, Document.sObjectType, new List<Document>{assetDoc}, this.emailMessages); |
| | | } |
| | | |
| | | //if (docBodyRepair == '') { |
| | | // failedCsvCount++; |
| | | // this.emailMessages.add('Repairæ°æ®ä¸åå¨'); |
| | | //} else { |
| | | // Document repairDoc = getArchiveFilenameForUpsert('Repair', ih_new); |
| | | // repairDoc.Body = Blob.valueOf(repairDoc.Body.toString() + docBodyRepair); |
| | | // Database.SaveResult saveResult = Database.update(repairDoc, false); |
| | | // if (!saveResult.isSuccess()) failedCsvCount++; |
| | | // this.emailMessages = FixtureUtil.setSaveError(new List<Database.SaveResult>{saveResult}, Document.sObjectType, new List<Document>{repairDoc}, this.emailMessages); |
| | | //} |
| | | |
| | | // if (docBodyRaesd == '') { |
| | | // failedCsvCount++; |
| | | // this.emailMessages.add('Raesdæ°æ®ä¸åå¨'); |
| | | // } else { |
| | | // Document raesdDoc = getArchiveFilenameForUpsert('Raesd', ih_new); |
| | | // raesdDoc.Body = Blob.valueOf(raesdDoc.Body.toString() + docBodyRaesd); |
| | | // Database.SaveResult saveResult = Database.update(raesdDoc, false); |
| | | // if (!saveResult.isSuccess()) failedCsvCount++; |
| | | // this.emailMessages = FixtureUtil.setSaveError(new List<Database.SaveResult>{saveResult}, Document.sObjectType, new List<Document>{raesdDoc}, this.emailMessages); |
| | | // } |
| | | |
| | | if (docBodyDiushi == '') { |
| | | failedCsvCount++; |
| | | this.emailMessages.add('å·²æ¶èæ°æ®ä¸åå¨'); |
| | | } else { |
| | | Document lostDoc = getArchiveFilenameForUpsert('Lost', ih_new); |
| | | lostDoc.Body = Blob.valueOf(lostDoc.Body.toString() + docBodyDiushi); |
| | | Database.SaveResult saveResult = Database.update(lostDoc, false); |
| | | if (!saveResult.isSuccess()) failedCsvCount++; |
| | | this.emailMessages = FixtureUtil.setSaveError(new List<Database.SaveResult>{saveResult}, Document.sObjectType, new List<Document>{lostDoc}, this.emailMessages); |
| | | } |
| | | |
| | | // TODO wwf email |
| | | ConsumInventoryReportDetailArchiveBatch.messagesForTest = this.emailMessages; |
| | | // å mail |
| | | BatchEmailUtil be = new BatchEmailUtil(); |
| | | String[] toList = new String[]{}; |
| | | String title = 'åæ¡£èæçç¹CSVæ°æ®(ä¿æè®¾å¤åå·²æ¶èæç»)'; |
| | | String[] ccList = new String[]{}; |
| | | |
| | | Inventory_Header__c iheader = [select Id, Inventory_Status__c, Name, Internal_asset_location__c, Inventory_Start_Date__c from Inventory_Header__c where Id = :ih_new.Id]; |
| | | String text = 'èæçç¹æ¥å书ç¼å·ï¼' + iheader.Name + ' çç¹å°ç¹ï¼' + iheader.Internal_asset_location__c + ' çç¹å¼å§æ¥ï¼' + iheader.Inventory_Start_Date__c; |
| | | text += '\nå¤ç对象'+totalCount + 'ä»¶ ä¿æè®¾å¤(åæç èæçç¹æç»)'; |
| | | text += '\nå¤ç失败'+failedCount + 'ä»¶ ä¿æè®¾å¤(åæç èæçç¹æç»)'; |
| | | |
| | | if(this.emailMessages.size() == 0){ |
| | | toList.add(UserInfo.getUserEmail()); |
| | | be.successMail(toList,ccList, title, csvCount, text); |
| | | }else{ |
| | | String emailLabel = 'BatchNotify'; |
| | | for (OrgWideEmailAddress tmpEmailObj : [SELECT Id, Address, DisplayName |
| | | FROM OrgWideEmailAddress |
| | | WHERE DisplayName like :emailLabel]) { |
| | | ccList.add(tmpEmailObj.Address); |
| | | } |
| | | for(String email : System.Label.Inventory_Result_Email.split(',')){ |
| | | ccList.add(email); |
| | | } |
| | | be.failedMail(toList, ccList, title, |
| | | String.join(this.emailMessages, '\n'), |
| | | csvCount, csvCount - failedCsvCount, failedCsvCount); |
| | | } |
| | | be.send(); |
| | | } |
| | | } |
| New file |
| | |
| | | global class ConsumInventoryReportDtlArcRaesdBatch implements Database.Batchable<sObject>, Database.Stateful { |
| | | private Inventory_Header__c ih_new = new Inventory_Header__c(); |
| | | private String docBodyRaesd = ''; |
| | | private Integer docBodyRaesdBlobSize = 0; |
| | | |
| | | private Set<String> defaultAssetField; |
| | | private Set<String> defaultRaesdField; |
| | | private List<String> cListAssetField = new List<String>(); |
| | | private List<String> cListRaesdField = new List<String>(); |
| | | private Map<String, String> fieldAPIName = new Map<String, String>(); |
| | | |
| | | global List<String> emailMessages; |
| | | global Integer totalCount = 0; // è·¨Batch æ»ä»¶æ° |
| | | global Integer totalCountDone = 0; // è·¨Batch æåä»¶æ° |
| | | global Integer executeCount = 0; // batchå
ç æ»ä»¶æ° |
| | | global Integer executeCountDone = 0; // batchå
ç æåä»¶æ° |
| | | global Integer failedCount = 0; // batchå
ç å¤±è´¥ä»¶æ° |
| | | global Integer fileNo; // çæå¤ä¸ªæä»¶æ¶ï¼æä»¶åå°¾é¨è¿½å åºå· |
| | | private boolean overSizeFlg = false; // å½executeæ¯å¦æ§è¡flag(falseæ§è¡ï¼true䏿§è¡) |
| | | |
| | | @TestVisible |
| | | private static List<String> messagesForTest; |
| | | |
| | | /** |
| | | * æ¹åå, Trigger 伿¥è° |
| | | */ |
| | | global ConsumInventoryReportDtlArcRaesdBatch(Inventory_Header__c ih_new ,Integer fileNo, Integer totalCount, Integer totalCountDone) { |
| | | this.emailMessages = new List<String>(); |
| | | this.ih_new = ih_new; |
| | | this.fileNo = fileNo; |
| | | this.totalCount = totalCount; |
| | | this.totalCountDone = totalCountDone; |
| | | } |
| | | |
| | | global Database.QueryLocator start(Database.BatchableContext bc) { |
| | | bp3_Setting__c conf = bp3_Setting__c.getOrgDefaults(); |
| | | if (String.isBlank(conf.InventoryDetailArchiveFolder__c)) { |
| | | this.emailMessages.add('æªè®¾ç½®CSVä¿åæä»¶å¤¹ï¼ä¸è½å¼å§Batch'); |
| | | failedCount = 0; |
| | | return Database.getQueryLocator([SELECT Id FROM Consum_Inventory_Detail__c LIMIT 0]); |
| | | } |
| | | |
| | | Inventory_Batch_Mapping__mdt columns; |
| | | List<String> keyList; |
| | | |
| | | defaultAssetField = new Set<String>(); |
| | | defaultRaesdField = new Set<String>(); |
| | | |
| | | columns = [select From_Columns__c, Inventory_Columns__c from Inventory_Batch_Mapping__mdt where DeveloperName = 'ConsumAsset']; |
| | | keyList = columns.Inventory_Columns__c.split(','); |
| | | keyList.addAll(new List<String> { |
| | | 'Inventory_Zaiku_Count_Jia__c', |
| | | 'Inventory_Shipan_Count_Jia__c', |
| | | //'Inventory_Weixiu_Count_Jia__c', |
| | | 'Inventory_Chujie_Count_Jia__c', |
| | | //'Inventory_Daibaofei_Diushi_Count_Jia__c', |
| | | 'Inventory_Quantity_Jia__c', |
| | | 'Inventory_Profit_Quantity__c', |
| | | 'Inventory_Loss_Quantity__c', |
| | | 'Inventory_Deviation_Jia__c', |
| | | 'Inventory_Remarks__c', |
| | | 'Barcode__c', |
| | | 'Consumed_Count__c' |
| | | }); |
| | | for (Integer i = 0; i < keyList.size(); i++) { |
| | | if (!defaultAssetField.contains(keyList[i])) { |
| | | cListAssetField.add(keyList[i]); |
| | | } |
| | | defaultAssetField.add(keyList[i]); |
| | | } |
| | | |
| | | String cListRaesdFieldStr = 'Consum_Apply_Name__c,Account__c,RA_Status__c,Salesdept__c,WorkPlace__c,Person_In_Charge_New__c,Person_In_Charge__c,demo_purpose2__c,RAES_No__c,RAES_Status__c,RAESD_Name__c,RAESD_Status__c,Fixture_Model_No__c,SerialNumber__c,Internal_asset_location__c,Equipment_Type__c,Salesdepartment__c,WH_location__c,Consum_Start_Date__c,Show_demonstration__c,Operation_Type__c,Case_OR_animal_organ__c,Trial_User__c,Follower_User__r.Name,Spare__c,Request_approval_time__c,Select_Time__c,Request_shipping_day__c,Shipment_request_time2__c,Shippment_loaner_time__c,Loaner_received_time__c,Asset_return_time__c,Consum_Received_Day__c,Asset_Center_Confirm_Time__c,AssetManageConfirmYN__c,RAESD__c,Consum_Apply__c,Consum_Apply_Equipment_Set__c,Asset__c'; |
| | | cListRaesdField = cListRaesdFieldStr.split(','); |
| | | |
| | | //è·ålabel |
| | | String objectType ='Consum_Inventory_Detail__c'; |
| | | Map<String, Schema.SObjectType> schemaMap = Schema.getGlobalDescribe(); |
| | | Schema.SObjectType leadSchema = schemaMap.get(objectType); |
| | | Map<String, Schema.SObjectField> fieldMap = leadSchema.getDescribe().fields.getMap(); |
| | | |
| | | for(String fieldName : fieldMap.keySet()){ |
| | | fieldAPIName.put(fieldName, fieldMap.get(fieldName).getDescribe().getLabel()); |
| | | } |
| | | |
| | | Id ih_new_Id = ih_new.Id; |
| | | List<Id> assetIds = new List<Id>(); |
| | | |
| | | String idcQuerysql = 'select ' + String.join(new List<String>(defaultAssetField), ', ') |
| | | + ' from Consum_Inventory_Detail__c' |
| | | + ' where Sync_Asset_Record_Flag__c = true' |
| | | + ' and Inventory_Header__c = :ih_new_Id'; |
| | | |
| | | for (Consum_Inventory_Detail__c idc : Database.query(idcQuerysql)) { |
| | | assetIds.add(idc.Asset__c); |
| | | } |
| | | |
| | | String querysql = 'select ' + String.join(new List<String>(cListRaesdField), ', ') + ', Exported__c' |
| | | + ' from Consum_Inventory_Detail__c where Asset__c IN :assetIds and Inventory_Header__c = :ih_new_Id and Asset_Status__c = \'åºåä¸\'' |
| | | + ' and Exported__c = false'; |
| | | |
| | | return Database.getQueryLocator(querysql); |
| | | } |
| | | |
| | | global void execute(Database.BatchableContext BC, List<Consum_Inventory_Detail__c> raesdList) { |
| | | // flag为trueæ¶ï¼è·³è¿executeå¤ç |
| | | if (true == overSizeFlg) { |
| | | //System.abortJob(BC.getJobId()); |
| | | return; |
| | | } |
| | | |
| | | executeCount += raesdList.size(); |
| | | |
| | | Integer DOC_MAX_SIZE = Integer.valueOf(System.Label.DocumentFileSize_KB.replaceAll(',', '')) * 1000; // 1024 ? 1000 ? ææ¶ç¨ 1000 äº |
| | | Savepoint sp = Database.setSavepoint(); |
| | | try { |
| | | List<Consum_Inventory_Detail__c> inventoryLst = new List<Consum_Inventory_Detail__c>(); |
| | | String executeBodyRaesd = ''; |
| | | // ååºæç» |
| | | for (Integer i = 0; i < raesdList.size(); i++) { |
| | | Consum_Inventory_Detail__c dl = raesdList[i]; |
| | | String dummyRaesd = setDocBodyObject(dl, 'Caesd', false); |
| | | Integer dummyRaesdSize = Blob.valueOf(dummyRaesd).size(); |
| | | // å½ååç¬¦ä¸²å¤§å°æªè¶
è¿ DOC_MAX_SIZE |
| | | if (dummyRaesdSize <= DOC_MAX_SIZE - docBodyRaesdBlobSize) { |
| | | executeCountDone++; |
| | | executeBodyRaesd += dummyRaesd; |
| | | docBodyRaesdBlobSize += dummyRaesdSize; |
| | | // å¤ç宿¯å¯¹è±¡Exportedåæ®µç½®true |
| | | dl.Exported__c = true; |
| | | inventoryLst.add(dl); |
| | | } |
| | | // å½åå符串大å°è¶
è¿ DOC_MAX_SIZE |
| | | else { |
| | | overSizeFlg = true; |
| | | if (0 == fileNo) { |
| | | fileNo++; |
| | | } |
| | | executeCount = executeCount - raesdList.size(); |
| | | executeCount = executeCount + i; |
| | | break; |
| | | } |
| | | } |
| | | docBodyRaesd += executeBodyRaesd; |
| | | system.debug('###executeCount : ' + executeCount); |
| | | system.debug('###executeCountDone : ' + executeCountDone); |
| | | // å¤ç宿¯å¯¹è±¡update |
| | | update inventoryLst; |
| | | } catch (Exception e) { |
| | | Database.rollback(sp); |
| | | failedCount += raesdList.size(); |
| | | System.debug(LoggingLevel.ERROR, e.getMessage() + '\n' + e.getStackTraceString()); |
| | | this.emailMessages.add(e.getMessage() + '\n' + e.getStackTraceString()); |
| | | } |
| | | } |
| | | |
| | | private String setDocBodyObject(sObject obj, String typeStr, boolean label) { |
| | | List<String> toCol; |
| | | if (typeStr == 'Caesd') { |
| | | toCol = cListRaesdField; |
| | | } |
| | | Schema.SObjectType targetType = Consum_Inventory_Detail__c.sObjectType; |
| | | Schema.DescribeSObjectResult sobjResult = targetType.getDescribe(); |
| | | Map<string, Schema.SObjectField> m = sobjResult.fields.getMap(); |
| | | String docBody = ''; |
| | | for (Integer i = 0; i < toCol.size(); i++) { |
| | | List<String> cols = toCol[i].split('\\.'); |
| | | if (obj == null) { |
| | | if (label) { |
| | | docBody += fieldAPIName.get(toCol[i].toLowerCase().replace('__r.name','__c')).escapeCsv(); |
| | | } else { |
| | | docBody += toCol[i].escapeCsv(); |
| | | } |
| | | } |
| | | else { |
| | | Object val = CreateRelationListPagingCmpCtrl.getObjectValue(obj, cols); |
| | | if (val != null) { |
| | | Schema.DescribeFieldResult descField = m.get(toCol[i].toLowerCase().replace('__r.name','__c')).getDescribe(); |
| | | if(descField.getType() == DisplayType.DATETIME && String.isNotBlank('' + val)){ |
| | | docBody += (''+((Datetime) val).addHours(8)).escapeCsv(); |
| | | } |
| | | else{ |
| | | docBody += ('' + val).escapeCsv(); |
| | | } |
| | | } |
| | | } |
| | | // å , å è¡æ« çæ¢è¡ |
| | | if (i < toCol.size() - 1) { |
| | | docBody += ','; |
| | | } else { |
| | | docBody += '\r\n'; |
| | | } |
| | | } |
| | | return docBody; |
| | | } |
| | | |
| | | public Document getArchiveFilenameForInsert(String typeStr, Inventory_Header__c ih_new, Integer fileNo) { |
| | | bp3_Setting__c conf = bp3_Setting__c.getOrgDefaults(); |
| | | Id folderId = conf.InventoryDetailArchiveFolder__c; |
| | | String fileNoStr = ''; |
| | | if (fileNo != 0) { |
| | | fileNoStr = '_' + String.valueOf(fileNo); |
| | | } |
| | | String filename = ih_new.Inventory_Start_Date__c.year() + ('' + ih_new.Inventory_Start_Date__c.month()).leftPad(2, '0') |
| | | + '_' + ih_new.Internal_asset_location__c + '_èæååºæç»' + fileNoStr + '.csv'; |
| | | Document ret = new Document(); |
| | | ret.Name = filename; |
| | | ret.FolderId = folderId; |
| | | ret.Type = 'csv'; |
| | | insert ret; |
| | | |
| | | String docBody = setDocBodyObject(null, typeStr, false); |
| | | docBody += setDocBodyObject(null, typeStr, true); |
| | | ret.Body = Blob.valueOf(docBody); |
| | | |
| | | return ret; |
| | | } |
| | | |
| | | global void finish(Database.BatchableContext BC) { |
| | | if (docBodyRaesd == '') { |
| | | this.emailMessages.add('èææç»æ°æ®ä¸åå¨'); |
| | | } else { |
| | | if (this.emailMessages.size() == 0 && executeCount == executeCountDone) { |
| | | Document raesdDoc = getArchiveFilenameForInsert('Caesd', ih_new, fileNo); |
| | | raesdDoc.Body = Blob.valueOf(raesdDoc.Body.toString() + docBodyRaesd); |
| | | Database.SaveResult saveResult = Database.update(raesdDoc, false); |
| | | if (!saveResult.isSuccess()) { |
| | | failedCount = executeCountDone; // Docuemnt é½ç®æ fail |
| | | this.emailMessages = FixtureUtil.setSaveError(new List<Database.SaveResult>{saveResult}, Document.sObjectType, new List<Document>{raesdDoc}, this.emailMessages); |
| | | } |
| | | } |
| | | totalCount += executeCount; |
| | | totalCountDone += executeCountDone; |
| | | // flag为trueï¼å符串大å°è¶
è¿9.9Mï¼ï¼ä¸æªåçé误æ¶å次æ§è¡batch |
| | | if (true == overSizeFlg && this.emailMessages.size() == 0 && executeCount == executeCountDone) { |
| | | fileNo++; |
| | | ConsumInventoryReportDtlArcRaesdBatch raesdBatch = new ConsumInventoryReportDtlArcRaesdBatch(ih_new, fileNo, totalCount, totalCountDone); |
| | | Database.executeBatch(raesdBatch); |
| | | } else { |
| | | // TODO wwf email |
| | | ConsumInventoryReportDtlArcRaesdBatch.messagesForTest = this.emailMessages; |
| | | // å mail |
| | | BatchEmailUtil be = new BatchEmailUtil(); |
| | | String[] toList = new String[]{}; |
| | | String title = 'åæ¡£çç¹CSV èæçç¹æç»(ååºä¸) #' + fileNo + ' '; |
| | | if (false == overSizeFlg) { |
| | | title += 'æå '; |
| | | } |
| | | String[] ccList = new String[]{}; |
| | | |
| | | Inventory_Header__c iheader = [select Id, Inventory_Status__c, Name, Internal_asset_location__c, Inventory_Start_Date__c from Inventory_Header__c where Id = :ih_new.Id]; |
| | | String text = 'èæçç¹æ¥å书ç¼å·ï¼' + iheader.Name + ' çç¹å°ç¹ï¼' + iheader.Internal_asset_location__c + ' çç¹å¼å§æ¥ï¼' + iheader.Inventory_Start_Date__c; |
| | | |
| | | if(this.emailMessages.size() == 0 && totalCount == totalCountDone) { |
| | | toList.add(UserInfo.getUserEmail()); |
| | | be.successMail(toList, ccList, title, totalCountDone, text); |
| | | } else { |
| | | String emailLabel = 'BatchNotify'; |
| | | for (OrgWideEmailAddress tmpEmailObj : [SELECT Id, Address, DisplayName |
| | | FROM OrgWideEmailAddress |
| | | WHERE DisplayName like :emailLabel]) { |
| | | ccList.add(tmpEmailObj.Address); |
| | | } |
| | | for(String email : System.Label.Inventory_Result_Email.split(',')){ |
| | | ccList.add(email); |
| | | } |
| | | be.failedMail(toList, ccList, title, |
| | | String.join(this.emailMessages, '\n'), |
| | | totalCount, totalCountDone, failedCount, text); |
| | | } |
| | | be.send(); |
| | | } |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | @isTest |
| | | private class Consum_ApplyUtilTest { |
| | | @isTest |
| | | static void getWD_addday_Test() { |
| | | // Base is FRI |
| | | Date baseDate = Date.newInstance(2020, 1, 10); |
| | | System.assertEquals(Date.newInstance(2020, 1, 10), Consum_ApplyUtil.getWD_addday(baseDate, 0)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 13), Consum_ApplyUtil.getWD_addday(baseDate, 1)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 14), Consum_ApplyUtil.getWD_addday(baseDate, 2)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 15), Consum_ApplyUtil.getWD_addday(baseDate, 3)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 16), Consum_ApplyUtil.getWD_addday(baseDate, 4)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 17), Consum_ApplyUtil.getWD_addday(baseDate, 5)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 20), Consum_ApplyUtil.getWD_addday(baseDate, 6)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 21), Consum_ApplyUtil.getWD_addday(baseDate, 7)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 22), Consum_ApplyUtil.getWD_addday(baseDate, 8)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 23), Consum_ApplyUtil.getWD_addday(baseDate, 9)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 24), Consum_ApplyUtil.getWD_addday(baseDate, 10)); |
| | | |
| | | System.assertEquals(Date.newInstance(2020, 1, 9), Consum_ApplyUtil.getWD_addday(baseDate, -1)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 8), Consum_ApplyUtil.getWD_addday(baseDate, -2)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 7), Consum_ApplyUtil.getWD_addday(baseDate, -3)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 6), Consum_ApplyUtil.getWD_addday(baseDate, -4)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 3), Consum_ApplyUtil.getWD_addday(baseDate, -5)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 2), Consum_ApplyUtil.getWD_addday(baseDate, -6)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 1), Consum_ApplyUtil.getWD_addday(baseDate, -7)); |
| | | System.assertEquals(Date.newInstance(2019,12,31), Consum_ApplyUtil.getWD_addday(baseDate, -8)); |
| | | System.assertEquals(Date.newInstance(2019,12,30), Consum_ApplyUtil.getWD_addday(baseDate, -9)); |
| | | System.assertEquals(Date.newInstance(2019,12,27), Consum_ApplyUtil.getWD_addday(baseDate, -10)); |
| | | |
| | | // Base is SAT |
| | | baseDate = Date.newInstance(2020, 1, 11); |
| | | System.assertEquals(Date.newInstance(2020, 1, 10), Consum_ApplyUtil.getWD_addday(baseDate, 0)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 13), Consum_ApplyUtil.getWD_addday(baseDate, 1)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 14), Consum_ApplyUtil.getWD_addday(baseDate, 2)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 15), Consum_ApplyUtil.getWD_addday(baseDate, 3)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 16), Consum_ApplyUtil.getWD_addday(baseDate, 4)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 17), Consum_ApplyUtil.getWD_addday(baseDate, 5)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 20), Consum_ApplyUtil.getWD_addday(baseDate, 6)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 21), Consum_ApplyUtil.getWD_addday(baseDate, 7)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 22), Consum_ApplyUtil.getWD_addday(baseDate, 8)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 23), Consum_ApplyUtil.getWD_addday(baseDate, 9)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 24), Consum_ApplyUtil.getWD_addday(baseDate, 10)); |
| | | |
| | | System.assertEquals(Date.newInstance(2020, 1,10), Consum_ApplyUtil.getWD_addday(baseDate, -1)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 9), Consum_ApplyUtil.getWD_addday(baseDate, -2)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 8), Consum_ApplyUtil.getWD_addday(baseDate, -3)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 7), Consum_ApplyUtil.getWD_addday(baseDate, -4)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 6), Consum_ApplyUtil.getWD_addday(baseDate, -5)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 3), Consum_ApplyUtil.getWD_addday(baseDate, -6)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 2), Consum_ApplyUtil.getWD_addday(baseDate, -7)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 1), Consum_ApplyUtil.getWD_addday(baseDate, -8)); |
| | | System.assertEquals(Date.newInstance(2019,12,31), Consum_ApplyUtil.getWD_addday(baseDate, -9)); |
| | | System.assertEquals(Date.newInstance(2019,12,30), Consum_ApplyUtil.getWD_addday(baseDate, -10)); |
| | | System.assertEquals(Date.newInstance(2019,12,27), Consum_ApplyUtil.getWD_addday(baseDate, -11)); |
| | | |
| | | // Base is SUN |
| | | baseDate = Date.newInstance(2020, 1, 12); |
| | | System.assertEquals(Date.newInstance(2020, 1, 10), Consum_ApplyUtil.getWD_addday(baseDate, 0)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 13), Consum_ApplyUtil.getWD_addday(baseDate, 1)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 14), Consum_ApplyUtil.getWD_addday(baseDate, 2)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 15), Consum_ApplyUtil.getWD_addday(baseDate, 3)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 16), Consum_ApplyUtil.getWD_addday(baseDate, 4)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 17), Consum_ApplyUtil.getWD_addday(baseDate, 5)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 20), Consum_ApplyUtil.getWD_addday(baseDate, 6)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 21), Consum_ApplyUtil.getWD_addday(baseDate, 7)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 22), Consum_ApplyUtil.getWD_addday(baseDate, 8)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 23), Consum_ApplyUtil.getWD_addday(baseDate, 9)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 24), Consum_ApplyUtil.getWD_addday(baseDate, 10)); |
| | | |
| | | System.assertEquals(Date.newInstance(2020, 1,10), Consum_ApplyUtil.getWD_addday(baseDate, -1)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 9), Consum_ApplyUtil.getWD_addday(baseDate, -2)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 8), Consum_ApplyUtil.getWD_addday(baseDate, -3)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 7), Consum_ApplyUtil.getWD_addday(baseDate, -4)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 6), Consum_ApplyUtil.getWD_addday(baseDate, -5)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 3), Consum_ApplyUtil.getWD_addday(baseDate, -6)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 2), Consum_ApplyUtil.getWD_addday(baseDate, -7)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 1), Consum_ApplyUtil.getWD_addday(baseDate, -8)); |
| | | System.assertEquals(Date.newInstance(2019,12,31), Consum_ApplyUtil.getWD_addday(baseDate, -9)); |
| | | System.assertEquals(Date.newInstance(2019,12,30), Consum_ApplyUtil.getWD_addday(baseDate, -10)); |
| | | System.assertEquals(Date.newInstance(2019,12,27), Consum_ApplyUtil.getWD_addday(baseDate, -11)); |
| | | |
| | | // Base is MON |
| | | baseDate = Date.newInstance(2020, 1, 13); |
| | | System.assertEquals(Date.newInstance(2020, 1, 13), Consum_ApplyUtil.getWD_addday(baseDate, 0)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 14), Consum_ApplyUtil.getWD_addday(baseDate, 1)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 15), Consum_ApplyUtil.getWD_addday(baseDate, 2)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 16), Consum_ApplyUtil.getWD_addday(baseDate, 3)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 17), Consum_ApplyUtil.getWD_addday(baseDate, 4)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 20), Consum_ApplyUtil.getWD_addday(baseDate, 5)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 21), Consum_ApplyUtil.getWD_addday(baseDate, 6)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 22), Consum_ApplyUtil.getWD_addday(baseDate, 7)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 23), Consum_ApplyUtil.getWD_addday(baseDate, 8)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 24), Consum_ApplyUtil.getWD_addday(baseDate, 9)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 27), Consum_ApplyUtil.getWD_addday(baseDate, 10)); |
| | | |
| | | System.assertEquals(Date.newInstance(2020, 1,10), Consum_ApplyUtil.getWD_addday(baseDate, -1)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 9), Consum_ApplyUtil.getWD_addday(baseDate, -2)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 8), Consum_ApplyUtil.getWD_addday(baseDate, -3)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 7), Consum_ApplyUtil.getWD_addday(baseDate, -4)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 6), Consum_ApplyUtil.getWD_addday(baseDate, -5)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 3), Consum_ApplyUtil.getWD_addday(baseDate, -6)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 2), Consum_ApplyUtil.getWD_addday(baseDate, -7)); |
| | | System.assertEquals(Date.newInstance(2020, 1, 1), Consum_ApplyUtil.getWD_addday(baseDate, -8)); |
| | | System.assertEquals(Date.newInstance(2019,12,31), Consum_ApplyUtil.getWD_addday(baseDate, -9)); |
| | | System.assertEquals(Date.newInstance(2019,12,30), Consum_ApplyUtil.getWD_addday(baseDate, -10)); |
| | | System.assertEquals(Date.newInstance(2019,12,27), Consum_ApplyUtil.getWD_addday(baseDate, -11)); |
| | | } |
| | | } |
| New file |
| | |
| | | public without sharing class ConsumptionListController { |
| | | /*****************æ¤ç´¢ç¨******************/ |
| | | //public Consumable_order__c coc { get; set; } |
| | | /*****************ç»é¢åå§åç¨********************************/ |
| | | /******20160313_add**************/ |
| | | //public String IdCheck{get;set;} |
| | | //æç¨20160323 |
| | | /*****************ç»é¢è¡¨ç¤ºBean******************/ |
| | | /*public List<ConsumableorderdetailsInfo> consumableorderdetailsRecords { get; set; } |
| | | public String baseUrl {get;private set;} |
| | | public String sortKey { get; set; } |
| | | public String preSortKey { get; private set; } |
| | | public Boolean sortOrderAsc { get; private set; } |
| | | public String[] sortOrder { get; private set; } |
| | | |
| | | private String[] columus = new String[]{ 'Name'}; |
| | | |
| | | // 已鿩å¤åsetæç» |
| | | private List<Consumable_order_details__c> consumableorderdetailsSelected = new List<Consumable_order_details__c>(); |
| | | private List<Product2__c> product2Selected = new List<Product2__c>(); |
| | | |
| | | // 产å ID |
| | | private String ESetId = '';*/ |
| | | |
| | | public ConsumptionListController() { |
| | | //Apexpages.currentPage().getHeaders().put('X-UA-Compatible', 'IE=8'); |
| | | //baseUrl = URL.getSalesforceBaseUrl().toExternalForm(); |
| | | //ESetId = ApexPages.currentPage().getParameters().get('esetId'); |
| | | //consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>(); |
| | | } |
| | | // ç»é¢åå§å |
| | | /*public void init() { |
| | | IdCheck = EsetId; |
| | | consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>(); |
| | | if(ESetId== NULL || ESetId==''){ |
| | | |
| | | }else{ |
| | | List<Consumable_order__c> qs = New List<Consumable_order__c>(); |
| | | qs = [select Id,ShipmentAccount__c,Order_Indication__c, Name,Consumable_pdf_insert_day__c,Inventory_date__c,Consume_date__c,Order_ForDealerText__c,Arrive_Order__c From Consumable_order__c Where Id =:ESetId]; |
| | | if (qs.size()>0){ |
| | | coc = qs[0]; |
| | | } |
| | | // 鏿æ¸ã¿ã®æç»ãåå¾ |
| | | consumableorderdetailsSelected = [select Id, |
| | | Name, |
| | | Consumable_order__c, |
| | | Consumable_Product__c, |
| | | Consumable_Product__r.Name, |
| | | Consumable_Product__r.Name__c, |
| | | Sterilization_limit__c, |
| | | Consumable_Count__c, |
| | | Deliver_date__c,Intra_Trade_List_RMB__c, |
| | | Asset_Model_No__c, |
| | | Sum_of_money__c, |
| | | ProductPacking_list_manual__c, |
| | | Box_Piece__c, |
| | | Guarantee_period_for_products__c, |
| | | Order_details_Piece__c |
| | | from Consumable_order_details__c |
| | | where Consumable_Sale_order__c = :ESetId |
| | | order by Name ]; |
| | | //è¾åº |
| | | for (Integer i = 0; i < consumableorderdetailsSelected.size(); i++) { |
| | | consumableorderdetailsRecords.add(new ConsumableorderdetailsInfo(consumableorderdetailsSelected[i])); |
| | | } |
| | | } |
| | | // æåº |
| | | this.sortKey = '1'; |
| | | this.preSortKey = '1'; |
| | | this.sortOrderAsc = false; |
| | | this.sortOrder = new String[1]; |
| | | this.sortOrder = new String[]{'', 'â'}; |
| | | } |
| | | |
| | | //ä¸ä¼ 纳å书 |
| | | public PageReference FilesUpload(){ |
| | | PageReference ref = new Pagereference('/p/attach/NoteAttach?pid='+ESetid+'&retURL=%2F' + '/ConsumptionList?ESetid=' +ESetid); |
| | | ref.setRedirect(true); |
| | | return ref; |
| | | } |
| | | //éå¶æ§æåº |
| | | /* public void SortLimited(){ |
| | | List<ConsumableorderdetailsInfo> reSet = new List<ConsumableorderdetailsInfo>(); |
| | | if (this.sortKey == this.preSortKey) { |
| | | // æ¹åãå¤ããã®ã¿ |
| | | this.sortOrderAsc = !this.sortOrderAsc; |
| | | this.sortOrder[Integer.valueOf(this.sortKey)] = (this.sortOrderAsc == true ? 'â' : 'â'); |
| | | } else { |
| | | this.sortOrderAsc = true; |
| | | this.sortOrder[Integer.valueOf(this.preSortKey)] = 'ã'; |
| | | this.sortOrder[Integer.valueOf(this.sortKey)] = (this.sortOrderAsc == true ? 'â' : 'â'); |
| | | } |
| | | this.preSortKey = this.sortKey; |
| | | if(EsetId==null||ESetId==''){ |
| | | }else{ |
| | | // ææäº§ååå¾ |
| | | String soql = 'select Id, Name, Consumable_order__c, Consumable_Product__c,Consumable_Product__r.Name, Sterilization_limit__c,Consumable_Count__c,Deliver_date__c,Intra_Trade_List_RMB__c,Asset_Model_No__c,Sum_of_money__c from Consumable_order_details__c where Consumable_Sale_order__c = \''+ESetId+'\''; |
| | | soql += ' order by ' + this.columus[Integer.valueOf(this.sortKey)] + ' ' + (this.sortOrderAsc == true ? 'asc nulls first' : 'desc nulls last'); |
| | | List<Consumable_order_details__c> queryList = Database.query(soql); |
| | | // 鏿æ¸ã¿ã®æç»ãåå¾ |
| | | Map<String, String> selectedIdMap = new Map<String, String>(); |
| | | for (Integer i = 0; i < queryList.size(); i++) { |
| | | // æªéæ©çæ¶èåæç» |
| | | reSet.add(new ConsumableorderdetailsInfo(queryList[i])); |
| | | } |
| | | consumableorderdetailsRecords = reSet; |
| | | // æ¾ç¤ºæ°æ®æ¡æ°ä¿¡æ¯ |
| | | } |
| | | } */ |
| | | |
| | | // æ¤ééè¯¯æ°æ® |
| | | /*public PageReference ConsumableorderDel() { |
| | | if(coc.Consume_date__c <> date.today()){ |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'åªå
许æ¤éå½å¤©çéå®è®°å½')); |
| | | return null; |
| | | } |
| | | List<Consumable_order__c> qs = New List<Consumable_order__c>(); |
| | | List<Consumable_order_details__c> Dqs= New List<Consumable_order_details__c>(); |
| | | Consumable_order__c Consumable_order= New Consumable_order__c(); |
| | | List<Consumable_order_details__c> orderDetails= New List<Consumable_order_details__c>(); |
| | | qs = [select Id From Consumable_order__c Where Id =:ESetId]; |
| | | System.debug('+++++Order_Indication__c' + coc.Order_Indication__c); |
| | | List<ConsumableorderdetailsInfo> ConsumableorderdetailsRecordsdummy = new List<ConsumableorderdetailsInfo>(); |
| | | if (qs.size()>0){ |
| | | try { |
| | | if(coc.Order_Indication__c ==null || coc.Order_Indication__c ==''){ |
| | | orderDetails = [select Id, Name, Consumable_order__c, |
| | | Consumable_Product__c,Consumable_Product__r.Name, |
| | | Consumable_Product__r.Name__c, Sterilization_limit__c, |
| | | Consumable_Count__c,Deliver_date__c, |
| | | Intra_Trade_List_RMB__c,Asset_Model_No__c,Sum_of_money__c |
| | | from Consumable_order_details__c |
| | | where Consumable_principal__c =:coc.Arrive_Order__c]; |
| | | for (Integer i = 0; i < consumableorderdetailsSelected.size(); i++) { |
| | | ConsumableorderdetailsRecordsdummy.add(new ConsumableorderdetailsInfo(orderDetails[i])); |
| | | } |
| | | for (ConsumableorderdetailsInfo ass : ConsumableorderdetailsRecordsdummy) { |
| | | Consumable_order_details__c Updet = new Consumable_order_details__c(); |
| | | Updet.Id = ass.esd.Id; |
| | | Updet.Consumable_Sale_order__c = null; |
| | | Dqs.add(Updet); |
| | | } |
| | | delete qs; |
| | | update Dqs; |
| | | }else{ |
| | | Consumable_order.Id = coc.Order_Indication__c; |
| | | Consumable_order.SummonsStatus_c__c = 'åºåºåå·²æå°'; |
| | | update Consumable_order; |
| | | delete qs; |
| | | } |
| | | } |
| | | catch (Exception e) { |
| | | ApexPages.addMessages(e); |
| | | return null; |
| | | } |
| | | } |
| | | if(coc.Order_Indication__c =='' || coc.Order_Indication__c == null){ |
| | | PageReference ref = new Pagereference('/SaleAndDelivery'); |
| | | ref.setRedirect(true); |
| | | return ref; |
| | | }else{ |
| | | PageReference ref = new Pagereference('/summonsCreat?ESetid=' + coc.Order_Indication__c); |
| | | ref.setRedirect(true); |
| | | return ref; |
| | | } |
| | | } |
| | | // Data Bean |
| | | class ConsumableorderdetailsInfo implements Comparable { |
| | | public Boolean check { get; set; } |
| | | public Boolean oldCheck { get; set; } |
| | | public Consumable_order_details__c esd { get; set; } |
| | | public Product2__c Prod { get; set; } |
| | | public Boolean canSelect { get; set; } |
| | | // å·²åå¨å¤åsetæç»ç¨ |
| | | public ConsumableorderdetailsInfo(Consumable_order_details__c e) { |
| | | check = true; |
| | | oldCheck = true; |
| | | esd = e; |
| | | //Prod = e.Consumable_Product__r; |
| | | //oldConsumableCount = e.Consumable_Count__c; |
| | | canSelect = true; |
| | | } |
| | | // æåº |
| | | public Integer compareTo(Object compareTo) { |
| | | return null; |
| | | } |
| | | }*/ |
| | | } |
| New file |
| | |
| | | @isTest |
| | | private class ConsumptionListControllerTest { |
| | | static testMethod void myUnitTest() { |
| | | ConsumptionListController Controller = new ConsumptionListController(); |
| | | } |
| | | } |
| New file |
| | |
| | | public with sharing class ConsumptionPDFController { |
| | | /*****************æ¤ç´¢ç¨******************/ |
| | | //public Consumable_order__c coc { get; set; } |
| | | /*****************ç»é¢åå§åç¨********************************/ |
| | | /******20160313_add**************/ |
| | | /*public String IdCheck{get;set;} |
| | | public Boolean EditAble{get;set;} |
| | | public String yuanP{get;set;} |
| | | //æç¨20160323 |
| | | public Decimal disCount{get;set;} |
| | | //å¢å âå
¶ä»â夿 |
| | | public String OthersStatus{get;set;} |
| | | //å»é¢ç»éåå离 |
| | | public String SecondDealer{get;set;}*/ |
| | | /*****************ç»é¢è¡¨ç¤ºBean******************/ |
| | | /*public List<ConsumableorderdetailsInfo> ConsumableorderdetailsRecords { get; set; } |
| | | public Integer ConsumableorderdetailsCount { get; set; }*/ |
| | | |
| | | /*****************ã½ã¼ãæåæ¤ç´¢æ¡ä»¶ï¼ç»é¢ããã®å
¥åæ¡ä»¶ãç¡è¦ããããï¼******************/ |
| | | /*private String cate1ForSort = null; |
| | | // 产å ID |
| | | private String ESetId = ''; |
| | | private String[] ProidListAll = new String[]{}; |
| | | public String baseUrl {get;private set;} |
| | | */ |
| | | public ConsumptionPDFController() { |
| | | //Apexpages.currentPage().getHeaders().put('X-UA-Compatible', 'IE=8'); |
| | | //baseUrl = URL.getSalesforceBaseUrl().toExternalForm(); |
| | | //ESetId = ApexPages.currentPage().getParameters().get('esetId'); |
| | | //ConsumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>(); |
| | | } |
| | | /* |
| | | //订åç¼ç èªå¨çæ |
| | | |
| | | // ç»é¢åå§å |
| | | public void init() { |
| | | |
| | | //coc.Order_date__c = Date.today(); |
| | | List<Consumable_order_details__c> ConsumableorderdetailsSelected = new List<Consumable_order_details__c>(); |
| | | |
| | | coc = new Consumable_order__c(); |
| | | ConsumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>(); |
| | | |
| | | if(ESetId== NULL || ESetId==''){ |
| | | }else{ |
| | | List<Consumable_order__c> qs = New List<Consumable_order__c>(); |
| | | qs = [select Name, |
| | | ShipmentAccount__c, |
| | | Dealer_Customer__c, |
| | | Order_ForHospital__c, |
| | | Order_ForDealerText__c, |
| | | Consumable_pdf_insert_day__c |
| | | From Consumable_order__c |
| | | Where Id =:ESetId]; |
| | | if (qs.size()>0){ |
| | | coc = qs[0]; |
| | | } |
| | | // 鏿æ¸ã¿ã®æç»ãåå¾ |
| | | ConsumableorderdetailsSelected = [select Id, |
| | | Name, |
| | | Consumable_order__c, |
| | | Consumable_Product__c, |
| | | Consumable_Product__r.Name, |
| | | Consumable_Product__r.Name__c, |
| | | Sterilization_limit__c,Consumable_count__c, |
| | | Deliver_date__c, |
| | | Bar_Code__c, |
| | | Intra_Trade_List_RMB__c, |
| | | Asset_Model_No__c, |
| | | Sum_of_money__c, |
| | | Order_details_Piece__c, |
| | | Box_Piece__c, |
| | | Guarantee_period_for_products__c |
| | | from Consumable_order_details__c |
| | | where Consumable_Sale_order__c = :ESetId |
| | | order by Name ]; |
| | | for (Integer i = 0; i < ConsumableorderdetailsSelected.size(); i++) { |
| | | ConsumableorderdetailsRecords.add(new ConsumableorderdetailsInfo(ConsumableorderdetailsSelected[i])); |
| | | } |
| | | } |
| | | }*/ |
| | | |
| | | // Data Bean |
| | | /*class ConsumableorderdetailsInfo implements Comparable { |
| | | public Consumable_order_details__c esd { get; set; } |
| | | public Product2__c Prod { get; set; } |
| | | |
| | | // å·²å产åæç» |
| | | public ConsumableorderdetailsInfo(Consumable_order_details__c e) { |
| | | esd = e; |
| | | Prod = e.Consumable_Product__r; |
| | | } |
| | | // æåº |
| | | public Integer compareTo(Object compareTo) { |
| | | return null; |
| | | } |
| | | }*/ |
| | | } |
| New file |
| | |
| | | // xudan 20160106 Arrival_wh_time__c -> Arrival_wh_time2__cï¼ååºã¯Setåä½ãªã®ã§ãç©ã¿ä¸ãé
ç®ä½¿ããï¼ |
| | | //RentalFixtureManage5Test |
| | | public without sharing class EquipmentSetShippmentReceived1Controller { |
| | | public Rental_Apply_Equipment_Set__c es { get; set; } |
| | | public List<EsdInfo> esdList { get; set; } |
| | | |
| | | public Boolean saveBtnDisabled { get; private set; } |
| | | public boolean ReturnRefuse {get;private set;} |
| | | public String ErrorMessage {get; set;} |
| | | public String CDSFinished {get;set;} |
| | | public boolean LostFlg {get;set;} |
| | | public String SR_status { get; private set; } |
| | | public String Step_status { get; private set; } |
| | | public Boolean needCDS { get; private set; } |
| | | public String open_type { get; private set; } |
| | | public Boolean done_flg { get; set; } |
| | | public String Raid {get;set;} |
| | | private String Id; |
| | | |
| | | public Integer getEsdListSize() { |
| | | return esdList.size(); |
| | | } |
| | | |
| | | public EquipmentSetShippmentReceived1Controller() { |
| | | // Apexpages.currentPage().getHeaders().put('X-UA-Compatible', 'IE=8'); |
| | | Id = ApexPages.currentPage().getParameters().get('id'); |
| | | if (SR_status == null) { |
| | | SR_status = ApexPages.currentPage().getParameters().get('type'); |
| | | } |
| | | if (Step_status == null) { |
| | | Step_status = ApexPages.currentPage().getParameters().get('step'); |
| | | } |
| | | if (open_type == null) { |
| | | open_type = ApexPages.currentPage().getParameters().get('open'); |
| | | } |
| | | } |
| | | |
| | | // ç»é¢åå§å |
| | | public PageReference init() { |
| | | es = new Rental_Apply_Equipment_Set__c(); |
| | | esdList = new List<EsdInfo>(); |
| | | done_flg = false; |
| | | Set<Id> esIds = new Set<Id>(); |
| | | saveBtnDisabled = false; |
| | | ReturnRefuse = true; |
| | | ErrorMessage = ''; |
| | | if (Id != null) { |
| | | //ä¸è§idåå² |
| | | List<String> ids = Id.split(','); |
| | | // å½åUser |
| | | String userid = Userinfo.getUserId(); |
| | | User user = [select Id,Name from User where Id = :userid]; |
| | | // å¤åset |
| | | List<Rental_Apply_Equipment_Set__c> esList = [select Yi_StockDown__c, Cancel_Select__c, Rental_Apply__c, Id, RAES_Status__c, Name, Shippment_loaner_time2__c |
| | | from Rental_Apply_Equipment_Set__c |
| | | where (Rental_Apply__r.Name in :ids or Id in :Ids) |
| | | //AND Cancel_Select__c = False |
| | | ]; |
| | | |
| | | //List<Fixture_Set__c> esList = [select Id, Name, CDS_staff__c, Shippment_loaner_time__c, Received_loaner_time__c, |
| | | // delivery_company__c, Return_to_wh_staff__c, Return_to_wh_staff__r.Name, Fedex_number__c, Distributor_method__c, |
| | | // Return_delivery_company__c,Return_wh_chenk_staff__c, Received_confirmation_staff__c, Received_confirmation_staff__r.Name, Return_Fedex_number__c, Return_Distributor_method__c, |
| | | // Arrival_wh_time2__c, Asset_return_time__c, |
| | | // CDS_complete__c, Arrival_in_wh__c, StockDown__c, |
| | | // Lost_item_check_time__c,Last_Reserve_Rental_Apply_Fixture_Set__c, |
| | | // StockDown_time__c |
| | | // from Fixture_Set__c where Name = :Id]; |
| | | if (esList.size() > 0) { |
| | | //es = esList[0]; |
| | | for (Rental_Apply_Equipment_Set__c raes : esList) { |
| | | if (raes.Yi_StockDown__c > 0 || raes.Cancel_Select__c == false) { |
| | | esIds.add(raes.Id); |
| | | Raid = raes.Rental_Apply__c; |
| | | } |
| | | } |
| | | } else { |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'å¤åä¸åå¨')); |
| | | saveBtnDisabled = true; |
| | | return null; |
| | | } |
| | | //æ£æ¥éªè¯è§åä¿®çæç»æ£æµæ¥ |
| | | /* todo |
| | | List<Rental_Apply_Equipment_Set__c> CheckRAES = [select id,Name,RAES_Status__c,Rental_Apply__c,Rental_Apply__r.Repair__c,Cancel_Date__c,Fixture_Set__c |
| | | from Rental_Apply_Equipment_Set__c where id=:es.Last_Reserve_Rental_Apply_Equipment_Set__c]; |
| | | Rental_Apply_Equipment_Set__c Ra_c = new Rental_Apply_Equipment_Set__c(); |
| | | Rental_Apply__c Rac = new Rental_Apply__c(); |
| | | if(CheckRAES.size()>0){ |
| | | Ra_c = CheckRAES[0]; |
| | | Raid = Ra_c.Rental_Apply__c; |
| | | } |
| | | system.debug(Ra_c.Rental_Apply__r.Repair__c ); |
| | | List<Rental_Apply__c> CheckError = new List<Rental_Apply__c>(); |
| | | CheckError = [Select id,name,repair__c,repair__r.Return_Without_Repair_Date__c,repair__r.Repair_Final_Inspection_Date__c,repair__r.Repair_Shipped_Date__c, |
| | | Campaign__c,Campaign__r.Status |
| | | from Rental_Apply__c where id=:Ra_c.Rental_Apply__c |
| | | and RA_Status__c !='åæ¶' |
| | | and RA_Status__c !='å é¤']; |
| | | if(CheckError.size()>0){ |
| | | Rac = CheckError[0]; |
| | | } |
| | | */ |
| | | |
| | | //system.debug('All::::'+Rac.repair__r.Repair_Final_Inspection_Date__c); |
| | | // system.debug('All::::'+Rac.repair__c); |
| | | // system.debug('All::::'+Ra_c.RAES_Status__c); |
| | | // æ¬çªæä¸ä¸çº¿è¯¥åè½ï¼å¯ç¨åä¸è½å
¥åºæä½æè§ä¸å¯¹ |
| | | |
| | | } |
| | | |
| | | // å¤åsetæç» |
| | | List<Rental_Apply_Equipment_Set_Detail__c> eList = [ |
| | | select SerialNumber_F__c, FSD_Is_OneToOne__c, OneToOne_Flag__c, Is_Body__c, FSD_OneToOneAccessory_Cnt__c, Pre_After_Inspection_elapsed_days__c, Asset__r.WH_location__c, Shipment_request_time2__c, Fixture_Name_F__c, Rental_Apply_Equipment_Set__r.Fixture_Set__r.Name, Fixture_QRCode_F__c, Rental_Apply_Equipment_Set__r.Name, Pre_inspection_time__c, StockDown__c, StockDown_time__c, Id, Name, Asset__c, Asset__r.Name, Asset__r.SerialNumber, Asset__r.Product_Serial_No__c, |
| | | Asset__r.Remark__c, Asset__r.ImageAsset__c, Asset__r.ImageSerial__c, Asset__r.ImageAssetUploadedTime__c, Asset__r.ImageSerialUploadedTime__c, |
| | | Loaner_CDS_Info__c, Inspection_result__c, Check_lost_Item__c, Pre_disinfection__c, Water_leacage_check__c, Inspection_result_after__c, Arrival_in_wh__c, |
| | | Asset__r.Pre_Reserve_RAES_Detail__c, Asset__r.Pre_Reserve_RAES_Detail__r.After_Inspection_time__c, |
| | | Inspection_result_after_ng__c, Inspection_result_ng__c, Lost_item_giveup__c, CDS_complete__c, Loaner_accsessary__c |
| | | from Rental_Apply_Equipment_Set_Detail__c |
| | | where Rental_Apply_Equipment_Set__c in :esIds |
| | | AND Cancel_Select__c = False |
| | | order by Rental_Apply_Equipment_Set__r.Name, Rental_Apply_Equipment_Set__c, Name |
| | | ]; |
| | | |
| | | for (Rental_Apply_Equipment_Set_Detail__c esd : eList) { |
| | | EsdInfo ei = new EsdInfo(esd); |
| | | if (esd.Inspection_result__c == null && esd.Shipment_request_time2__c != null) ei.editable = true; |
| | | esdList.add(ei); |
| | | if (SR_status == 'Received') { |
| | | if (esd.Loaner_CDS_Info__c == 'éè¦æ¸
æ´') { |
| | | needCDS = true; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | //两个sqlææ£ç´¢çè¯ï¼é¡ºåºä¼ä¹± |
| | | /* |
| | | List<Rental_Apply_Equipment_Set_Detail__c> eList2 = [ |
| | | select Rental_Apply_Equipment_Set__r.Fixture_Set__r.Name, Fixture_QRCode_F__c, Rental_Apply_Equipment_Set__r.Name, Pre_inspection_time__c, StockDown__c, StockDown_time__c, Id, Name, Asset__c, Asset__r.Name, Asset__r.SerialNumber, Asset__r.Product_Serial_No__c, |
| | | Asset__r.Remark__c, Asset__r.ImageAsset__c, Asset__r.ImageSerial__c, Asset__r.ImageAssetUploadedTime__c, Asset__r.ImageSerialUploadedTime__c, |
| | | Loaner_CDS_Info__c, Inspection_result__c, Check_lost_Item__c, Pre_disinfection__c, Water_leacage_check__c, Inspection_result_after__c, Arrival_in_wh__c, |
| | | Asset__r.Pre_Reserve_RAES_Detail__c, Asset__r.Pre_Reserve_RAES_Detail__r.After_Inspection_time__c, |
| | | Inspection_result_after_ng__c, Inspection_result_ng__c, Lost_item_giveup__c, CDS_complete__c, Loaner_accsessary__c |
| | | from Rental_Apply_Equipment_Set_Detail__c |
| | | where Rental_Apply_Equipment_Set__c in :esIds and Shipment_request_time2__c <> null and Id not in :esdIds |
| | | order by Rental_Apply_Equipment_Set__c, Name |
| | | ]; |
| | | for (Rental_Apply_Equipment_Set_Detail__c esd : eList2) { |
| | | esdIds.add(esd.Id); |
| | | EsdInfo esi = new EsdInfo(esd); |
| | | esi.editable = false; |
| | | esdList.add(esi); |
| | | } |
| | | */ |
| | | |
| | | Step_status = '䏿¶'; |
| | | if (esdList.size() <= 0) { |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '没æå¤åsetæç»')); |
| | | saveBtnDisabled = true; |
| | | return null; |
| | | } |
| | | system.debug('=====' + Step_status); |
| | | system.debug('=====' + open_type); |
| | | |
| | | return null; |
| | | } |
| | | |
| | | // Step åãæ¿ããã¿ã³ãåè´§å-æ£æµ |
| | | public PageReference Shippment1() { |
| | | Step_status = 'åè´§å'; |
| | | return new PageReference('/apex/EquipmentSetShippmentReceived2?id=' + this.Id + '&type=' + this.SR_status + '&step=' + this.Step_status + '&open=' + this.open_type); |
| | | } |
| | | |
| | | // ä¿åæé® |
| | | public PageReference save() { |
| | | |
| | | //æ£æ¥æ¯å¦å¯ä»¥ç»§ç» |
| | | Rental_Apply__c RaTar = [select Campaign__c,Repair__c,next_action__c,QIS_number__r.ReplaceDeliveryDate__c,demo_purpose2__c,Follow_UP_Opp__r.Shipping_Finished_Day_Func__c, |
| | | Campaign__r.Status,repair__r.Return_Without_Repair_Date__c,Repair__r.Repair_Final_Inspection_Date__c,Repair__r.Repair_Shipped_Date__c |
| | | from Rental_Apply__c |
| | | where id=:Raid]; |
| | | |
| | | if( RaTar.Campaign__r.Status == 'åæ¶'){ |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'å¦ä¼å·²åæ¶ï¼ä¸è½ç»§ç»æä½äº')); |
| | | return null; |
| | | |
| | | }else if( RaTar.Repair__r.Repair_Final_Inspection_Date__c!=null){ |
| | | |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'åå¨ä¿®çæç»æ£æµæ¥ï¼ä¸è½ç»§ç»äº')); |
| | | return null; |
| | | }else if( RaTar.repair__r.Return_Without_Repair_Date__c!=null&&RaTar.repair__c!=null ){ |
| | | |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'æªä¿®çå½è¿æ¥ä¸ä¸ºç©ºï¼ä¸è½åºåº')); |
| | | return null; |
| | | }else if( RaTar.Repair__r.Repair_Shipped_Date__c!=null){ |
| | | |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'åå¨RCä¿®çè¿éæ¥ï¼ä¸è½ç»§ç»äº')); |
| | | return null; |
| | | } |
| | | //1822 yc 20211025 start |
| | | else if(RaTar.demo_purpose2__c=='å·²è´å¾
è´§' && RaTar.Follow_UP_Opp__r.Shipping_Finished_Day_Func__c!= null){ |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'å·²è´å¾
è´§ç®çï¼æ°åå·²æåè´§æ¥ï¼ä¸è½ç»§ç»äº')); |
| | | return null; |
| | | }else if(RaTar.demo_purpose2__c=='ç´¢èµQIS' && RaTar.next_action__c=='æ å¿æ´æ¢' && RaTar.QIS_number__r.ReplaceDeliveryDate__c!= null){ |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'ç´¢èµQISç®çï¼QISå·²ææ°ååè´§æ¥ï¼ä¸è½ç»§ç»äº')); |
| | | return null; |
| | | } |
| | | //1822 yc 20211025 end |
| | | |
| | | String userid = Userinfo.getUserId(); |
| | | List<Rental_Apply_Equipment_Set_Detail__c> eList = new List<Rental_Apply_Equipment_Set_Detail__c>(); |
| | | Map<Id, Boolean> stockDownMap = new Map<Id, Boolean>(); |
| | | for (EsdInfo esdInfo : esdList) { |
| | | if (!esdInfo.editable) continue; |
| | | Rental_Apply_Equipment_Set_Detail__c esd = esdInfo.rec; |
| | | eList.add(esd); |
| | | stockDownMap.put(esd.Id, esd.StockDown__c); |
| | | } |
| | | Boolean needSaveSet = false; |
| | | Boolean needSaveDetail = false; |
| | | |
| | | List<Rental_Apply_Equipment_Set_Detail__c> updateList = [select Id, Shipment_request_time2__c from Rental_Apply_Equipment_Set_Detail__c where Id in :eList for update]; |
| | | for (Rental_Apply_Equipment_Set_Detail__c upd : updateList) { |
| | | if (upd.Shipment_request_time2__c == null && stockDownMap.get(upd.Id)) { |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'åºåºæç¤ºæ¶é´ä¸ºç©ºï¼ä¸è½ä¸æ¶')); |
| | | break; |
| | | } |
| | | } |
| | | if (ApexPages.hasMessages(ApexPages.severity.Error)) { |
| | | done_flg = false; |
| | | return null; |
| | | } |
| | | |
| | | // TODO 没ååä¸å |
| | | Map<Id,Id> otoMap = new Map<Id,Id>(); |
| | | List<Rental_Apply_Equipment_Set_Detail__c> upsertList = new List<Rental_Apply_Equipment_Set_Detail__c>(); |
| | | if (Step_status == '䏿¶') { |
| | | for (Rental_Apply_Equipment_Set_Detail__c esd : eList) { |
| | | //if (esd.FSD_OneToOneAccessory_Cnt__c > 0 && esd.Is_Body__c && esd.StockDown__c) { |
| | | if (esd.Is_Body__c && esd.StockDown__c) { |
| | | if (String.isNotBlank(esd.Asset__c)) { |
| | | // Asset__c 念ã®ããã®ç¢ºèª |
| | | otoMap.put(esd.Rental_Apply_Equipment_Set__c, esd.Asset__c); |
| | | } |
| | | } |
| | | if (esd.StockDown__c == true && esd.StockDown_time__c == null) { |
| | | upsertList.add(new Rental_Apply_Equipment_Set_Detail__c(id = esd.id, StockDown__c = true, StockDown_time__c = System.now(), StockDown_staff__c = userid )); |
| | | //esd.StockDown_time__c = System.now(); |
| | | //esd.StockDown_staff__c = userid; |
| | | } |
| | | if (esd.StockDown__c == false) { |
| | | upsertList.add(new Rental_Apply_Equipment_Set_Detail__c(id = esd.id, StockDown__c = false, StockDown_time__c = null, StockDown_staff__c = null )); |
| | | //esd.StockDown_time__c = null; |
| | | //esd.StockDown_staff__c = null; |
| | | } |
| | | } |
| | | needSaveDetail = true; |
| | | } |
| | | // otoMap ã使ããããä¸è¨ã®ãã¸ãã¯ãããªããªãã¾ã |
| | | //List<Fixture_OneToOne_Link__c> otolinkList = new List<Fixture_OneToOne_Link__c>(); |
| | | //if (otoMap.size() > 0) { |
| | | // List<AggregateResult> otoList = [ select Rental_Apply_Equipment_Set__c, Asset__c, COUNT(Id) cnt |
| | | // from Rental_Apply_Equipment_Set_Detail__c |
| | | // where Rental_Apply_Equipment_Set__c in :otoMap.keySet() |
| | | // and FSD_Is_OneToOne__c = true and OneToOne_Flag__c = true and Asset__c != null |
| | | // group by Rental_Apply_Equipment_Set__c, Asset__c ]; |
| | | // for (AggregateResult oto : otoList) { |
| | | // String key = String.valueOf(oto.get('Rental_Apply_Equipment_Set__c')); |
| | | // Id otoMainId = otoMap.get(key); |
| | | // String otoAssId = String.valueOf(oto.get('Asset__c')); |
| | | // Integer cnt = Integer.valueOf(oto.get('cnt')); |
| | | |
| | | // Fixture_OneToOne_Link__c otolink = new Fixture_OneToOne_Link__c(); |
| | | // otolink.Main_Asset__c = otoMainId; |
| | | // otolink.Accessory_Asset__c = otoAssId; |
| | | // otolink.Quantity__c = cnt; |
| | | // otolinkList.add(otolink); |
| | | // } |
| | | //} |
| | | |
| | | Savepoint sp = Database.setSavepoint(); |
| | | try { |
| | | //if (needSaveSet) ControllerUtil.upRAdEquipmentSet(es); |
| | | //if (needSaveDetail) ControllerUtil.updRAEquipmentSetDetail(eList); |
| | | if (needSaveDetail) FixtureUtil.withoutUpsertObjects(upsertList); |
| | | |
| | | // otoMap ã使ããããä¸è¨ã®ãã¸ãã¯ãããªããªãã¾ã |
| | | //if (otolinkList.size() > 0) { |
| | | // Set<Id> mainIds = new Set<Id>(); |
| | | // for (Fixture_OneToOne_Link__c oto : otolinkList) { |
| | | // if (String.isBlank(oto.Main_Asset__c) == false) { |
| | | // mainIds.add(oto.Main_Asset__c); |
| | | // } |
| | | // } |
| | | // //ControllerUtil.delOtOLinkData(mainIds); |
| | | // //ControllerUtil.updOtOLinkData(otolinkList); |
| | | // FixtureUtil.delOtOLinkData(mainIds); |
| | | // //FixtureUtil.withOutInsert(otolinkList); |
| | | //} |
| | | if (!otoMap.isEmpty()) { |
| | | Oly_TriggerHandler.bypass(AssetHandlerCheck.class.getName()); |
| | | FixtureUtil.delOtOLinkData(otoMap.values()); |
| | | Oly_TriggerHandler.clearBypass(AssetHandlerCheck.class.getName()); |
| | | } |
| | | |
| | | //PageReference ref = new Pagereference('/apex/EquipmentSetShippmentReceived1?id=' + Id + '&type=' + SR_status + '&step=' + this.Step_status + '&open=' + this.open_type); |
| | | //ref.setRedirect(true); |
| | | //return ref; |
| | | done_flg = true; |
| | | return null; |
| | | } catch (Exception ex) { |
| | | system.debug('=====' + ex.getMessage()); |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, ex.getMessage()+'( '+Step_status+' )')); |
| | | Database.rollback(sp); |
| | | done_flg = false; |
| | | return null; |
| | | } |
| | | |
| | | return null; |
| | | } |
| | | |
| | | // Step åãæ¿ããã¿ã³ãåè´§-åè´§è¿è¾åå· ç |
| | | public PageReference Shippment2() { |
| | | return new PageReference('/apex/EquipmentSetShippmentReceived2?id=' + this.Id); |
| | | } |
| | | |
| | | public class EsdInfo { |
| | | public Rental_apply_equipment_Set_Detail__c rec { get; set; } |
| | | public String imageAssetUploadedTime { get; set; } |
| | | public String imageSerialUploadedTime { get; set; } |
| | | // ååºã¯Setåä½ã§ãæç´°ä¸ã¤ä¸ã¤ã®quickCheckè¦ããªã |
| | | public boolean quickCheck { get; set; } |
| | | public boolean editable { get; set; } |
| | | |
| | | public EsdInfo(Rental_apply_equipment_Set_Detail__c rec) { |
| | | this.rec = rec; |
| | | this.editable = false; |
| | | |
| | | if (rec.Asset__r.Pre_Reserve_RAES_Detail__c != null && rec.Asset__r.Pre_Reserve_RAES_Detail__r.After_Inspection_time__c != null) { |
| | | this.quickCheck = Datetime.now() < rec.Asset__r.Pre_Reserve_RAES_Detail__r.After_Inspection_time__c + 30 ? true : false; |
| | | } else { |
| | | this.quickCheck = false; |
| | | } |
| | | |
| | | if (rec.Asset__r.ImageAssetUploadedTime__c != null) { |
| | | imageAssetUploadedTime = rec.Asset__r.ImageAssetUploadedTime__c.format('yyyy/MM/dd HH:mm'); |
| | | } |
| | | if (rec.Asset__r.ImageSerialUploadedTime__c != null) { |
| | | imageSerialUploadedTime = rec.Asset__r.ImageSerialUploadedTime__c.format('yyyy/MM/dd HH:mm'); |
| | | } |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | // xudan 20160106 Arrival_wh_time__c -> Arrival_wh_time2__cï¼ååºã¯Setåä½ãªã®ã§ãç©ã¿ä¸ãé
ç®ä½¿ããï¼ |
| | | // RentalFixtureManage11Test |
| | | // RentalFixtureManage12Test |
| | | public without sharing class EquipmentSetShippmentReceived6Controller { |
| | | public Rental_Apply_Equipment_Set__c es { get; set; } |
| | | public List<EsdInfo> esdList { get; set; } |
| | | public String crossRegion {get;set;} |
| | | private Map<String, String> roleRegionMap {get;set;} |
| | | |
| | | public Boolean saveBtnDisabled { get; private set; } |
| | | public boolean ReturnRefuse {get;private set;} |
| | | public String ErrorMessage {get; set;} |
| | | public String CDSFinished {get;set;} |
| | | public boolean LostFlg {get;set;} |
| | | public boolean done_flg {get;set;} |
| | | public String SR_status { get; private set; } |
| | | public String Step_status { get; private set; } |
| | | public Boolean needCDS { get; private set; } |
| | | public String open_type { get; private set; } |
| | | public Boolean forceSave { get; set; } |
| | | public String Raid {get;set;} |
| | | public String AccessoryId {get;set;} |
| | | public String AccessorySetId {get;set;} |
| | | public String UnCheckedId {get;set;} |
| | | private String Id; |
| | | |
| | | public Integer getEsdListSize() { |
| | | return esdList.size(); |
| | | } |
| | | |
| | | public EquipmentSetShippmentReceived6Controller() { |
| | | // Apexpages.currentPage().getHeaders().put('X-UA-Compatible', 'IE=8'); |
| | | Id = ApexPages.currentPage().getParameters().get('id'); |
| | | if (SR_status == null) { |
| | | SR_status = ApexPages.currentPage().getParameters().get('type'); |
| | | } |
| | | if (Step_status == null) { |
| | | Step_status = ApexPages.currentPage().getParameters().get('step'); |
| | | } |
| | | if (open_type == null) { |
| | | open_type = ApexPages.currentPage().getParameters().get('open'); |
| | | } |
| | | roleRegionMap = new Map<String, String> { |
| | | 'å¤åä¸å¿åæ¹ç®¡çæå' => 'å京 å¤åä¸å¿', |
| | | 'å¤åä¸å¿åä¸ç®¡çæå' => '䏿µ· å¤åä¸å¿', |
| | | 'å¤åä¸å¿åæ¹ç®¡çæå' => 'å¹¿å· å¤åä¸å¿' |
| | | }; |
| | | } |
| | | |
| | | // ç»é¢åå§å |
| | | public PageReference init() { |
| | | forceSave = false; |
| | | done_flg = false; |
| | | es = new Rental_Apply_Equipment_Set__c(); |
| | | esdList = new List<EsdInfo>(); |
| | | Set<Id> esIds = new Set<Id>(); |
| | | saveBtnDisabled = false; |
| | | ReturnRefuse = true; |
| | | ErrorMessage = ''; |
| | | crossRegion = ''; |
| | | if (Id != null) { |
| | | List<String> ids = Id.split(','); |
| | | // å½åUser |
| | | String userid = Userinfo.getUserId(); |
| | | User user = [select Id,Name,UserRole.Name from User where Id = :userid]; |
| | | // å¤åset |
| | | List<Rental_Apply_Equipment_Set__c> esList = [select Rental_Apply__c, Id, RAES_Status__c, Name, Shippment_loaner_time2__c |
| | | , Rental_Apply__r.Cross_Region_Assign__c |
| | | from Rental_Apply_Equipment_Set__c |
| | | where (Rental_Apply__r.Name in :ids or Id in :ids) |
| | | ]; |
| | | |
| | | //List<Fixture_Set__c> esList = [select Id, Name, CDS_staff__c, Shippment_loaner_time__c, Received_loaner_time__c, |
| | | // delivery_company__c, Return_to_wh_staff__c, Return_to_wh_staff__r.Name, Fedex_number__c, Distributor_method__c, |
| | | // Return_delivery_company__c,Return_wh_chenk_staff__c, Received_confirmation_staff__c, Received_confirmation_staff__r.Name, Return_Fedex_number__c, Return_Distributor_method__c, |
| | | // Arrival_wh_time2__c, Asset_return_time__c, |
| | | // CDS_complete__c, Arrival_in_wh__c, StockDown__c, |
| | | // Lost_item_check_time__c,Last_Reserve_Rental_Apply_Fixture_Set__c, |
| | | // StockDown_time__c |
| | | // from Fixture_Set__c where Name = :Id]; |
| | | if (esList.size() > 0) { |
| | | //es = esList[0]; |
| | | for (Rental_Apply_Equipment_Set__c raes : esList) { |
| | | esIds.add(raes.Id); |
| | | Raid = raes.Rental_Apply__c; |
| | | if(String.isNotBlank(raes.Rental_Apply__r.Cross_Region_Assign__c)){ |
| | | crossRegion = raes.Rental_Apply__r.Cross_Region_Assign__c; |
| | | if(roleRegionMap.containsKey(user.UserRole.Name) |
| | | && roleRegionMap.get(user.UserRole.Name) == raes.Rental_Apply__r.Cross_Region_Assign__c) { |
| | | crossRegion = ''; |
| | | } |
| | | } |
| | | } |
| | | } else { |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'å¤åä¸åå¨')); |
| | | saveBtnDisabled = true; |
| | | return null; |
| | | } |
| | | //æ£æ¥éªè¯è§åä¿®çæç»æ£æµæ¥ |
| | | /* todo |
| | | List<Rental_Apply_Equipment_Set__c> CheckRAES = [select id,Name,RAES_Status__c,Rental_Apply__c,Rental_Apply__r.Repair__c,Cancel_Date__c,Fixture_Set__c |
| | | from Rental_Apply_Equipment_Set__c where id=:es.Last_Reserve_Rental_Apply_Equipment_Set__c]; |
| | | Rental_Apply_Equipment_Set__c Ra_c = new Rental_Apply_Equipment_Set__c(); |
| | | Rental_Apply__c Rac = new Rental_Apply__c(); |
| | | if(CheckRAES.size()>0){ |
| | | Ra_c = CheckRAES[0]; |
| | | Raid = Ra_c.Rental_Apply__c; |
| | | } |
| | | system.debug(Ra_c.Rental_Apply__r.Repair__c ); |
| | | List<Rental_Apply__c> CheckError = new List<Rental_Apply__c>(); |
| | | CheckError = [Select id,name,repair__c,repair__r.Return_Without_Repair_Date__c,repair__r.Repair_Final_Inspection_Date__c,repair__r.Repair_Shipped_Date__c, |
| | | Campaign__c,Campaign__r.Status |
| | | from Rental_Apply__c where id=:Ra_c.Rental_Apply__c |
| | | and RA_Status__c !='åæ¶' |
| | | and RA_Status__c !='å é¤']; |
| | | if(CheckError.size()>0){ |
| | | Rac = CheckError[0]; |
| | | } |
| | | */ |
| | | |
| | | //system.debug('All::::'+Rac.repair__r.Repair_Final_Inspection_Date__c); |
| | | // system.debug('All::::'+Rac.repair__c); |
| | | // system.debug('All::::'+Ra_c.RAES_Status__c); |
| | | // æ¬çªæä¸ä¸çº¿è¯¥åè½ï¼å¯ç¨åä¸è½å
¥åºæä½æè§ä¸å¯¹ |
| | | |
| | | } |
| | | |
| | | // å¤åsetæç» |
| | | //154p 1414 20211014 you åé¢å æ¥è¯¢ |
| | | List<Rental_Apply_Equipment_Set_Detail__c> eList = [ |
| | | select Substitute_flag__c, Cancel_Select__c, Rental_Apply_Equipment_Set__c, AssetName__c, Asset__r.Product2Id, Canceled_Id__c, SerialNumber_F__c, Arrival_wh_Flag_F__c, Arrival_wh_Abandoned_Flag_F__c, OnStock_By_Cancel__c, Fixture_Set_Detail__r.Is_OneToOne__c, Is_Body__c, |
| | | Rental_Apply_Equipment_Set__r.Fixture_Set__r.Name, Fixture_Set_Detail__c, FSD_OneToOneAccessory_Cnt_F__c, Asset__r.WH_location__c, OneToOne_Flag__c,Fixture_QRCode_F__c, |
| | | Rental_Apply_Equipment_Set__r.Name, Pre_inspection_time__c, StockDown__c, StockDown_time__c, Id, Name, Asset__c, Asset__r.Name, Asset__r.SerialNumber, Asset__r.Product_Serial_No__c, |
| | | Asset__r.Remark__c, Asset__r.ImageAsset__c, Asset__r.ImageSerial__c, Asset__r.ImageAssetUploadedTime__c, Asset__r.ImageSerialUploadedTime__c, |
| | | Loaner_CDS_Info__c, Inspection_result__c, Check_lost_Item__c, Pre_disinfection__c, Water_leacage_check__c, Inspection_result_after_F__c, Arrival_in_wh__c, |
| | | Asset__r.Pre_Reserve_RAES_Detail__c, Asset__r.Pre_Reserve_RAES_Detail__r.After_Inspection_time__c, |
| | | Inspection_result_after_ng_F__c, Inspection_result_ng__c, Lost_item_giveup__c, CDS_complete__c, Loaner_accsessary__c, |
| | | BoxInconsistent__c, Fixture_Model_No_text__c,Equipment_Type_text__c,Rental_Apply__r.RecordTypeId |
| | | from Rental_Apply_Equipment_Set_Detail__c |
| | | where Rental_Apply_Equipment_Set__c in :esIds and ((Shipment_request_time2__c <> null and Cancel_Select__c = False ) or Arrival_wh_Flag_F__c = true or Arrival_wh_Abandoned_Flag_F__c = true) |
| | | order by Rental_Apply_Equipment_Set__r.Name, Rental_Apply_Equipment_Set__c, Name |
| | | ]; |
| | | //String assid = ''; |
| | | Map<Id,List<Rental_Apply_Equipment_Set_Detail__c>> raesMap = new Map<Id,List<Rental_Apply_Equipment_Set_Detail__c>>(); |
| | | for (Rental_Apply_Equipment_Set_Detail__c esd : eList) { |
| | | List<Rental_Apply_Equipment_Set_Detail__c> raesdList; |
| | | if (raesMap.containsKey(esd.Rental_Apply_Equipment_Set__c)) { |
| | | raesdList = raesMap.get(esd.Rental_Apply_Equipment_Set__c); |
| | | } else { |
| | | raesdList = new List<Rental_Apply_Equipment_Set_Detail__c>(); |
| | | } |
| | | raesdList.add(esd); |
| | | raesMap.put(esd.Rental_Apply_Equipment_Set__c, raesdList); |
| | | } |
| | | Set<Id> otomainSet = new Set<Id>(); |
| | | for (Id raesId : raesMap.keySet()) { |
| | | //Set<Id> assetIds = new Set<Id>(); |
| | | for (Rental_Apply_Equipment_Set_Detail__c esd : raesMap.get(raesId)) { |
| | | EsdInfo ei = new EsdInfo(esd); |
| | | if (esd.Arrival_in_wh__c == false |
| | | && (esd.Arrival_wh_Flag_F__c || esd.Arrival_wh_Abandoned_Flag_F__c)) { |
| | | ei.editable = true; |
| | | if (esd.Arrival_wh_Abandoned_Flag_F__c) { |
| | | ei.discardFlg = true; |
| | | } else if (esd.FSD_OneToOneAccessory_Cnt_F__c > 0) { |
| | | if (esd.Is_Body__c) { |
| | | //ei.locChange = true; |
| | | //otomainSet.add(esd.Rental_Apply_Equipment_Set__c); |
| | | } else if (!esd.Fixture_Set_Detail__r.Is_OneToOne__c) { |
| | | // if (!assetIds.contains(esd.Asset__c)) { |
| | | // ei.locChange = true; |
| | | //assetIds.add(esd.Asset__c); |
| | | // } |
| | | } |
| | | } else { |
| | | // if (!assetIds.contains(esd.Asset__c)) { |
| | | // ei.locChange = true; |
| | | //assetIds.add(esd.Asset__c); |
| | | // } |
| | | } |
| | | } |
| | | //SFDC-C63DFK 䏿¶æ¶éç®±/å¨è½¬ç®±ä¸ç¬¦çæ è®°Â Â Â thh 2021-09-07 start |
| | | if(String.isNotBlank(esd.Fixture_Model_No_text__c) && esd.Fixture_Model_No_text__c == 'WA05990A' || esd.Fixture_Model_No_text__c.indexOf('éç®±') != -1 ) { |
| | | ei.isShow = true; |
| | | } |
| | | //SFDC-C63DFK 䏿¶æ¶éç®±/å¨è½¬ç®±ä¸ç¬¦çæ è®°Â Â Â thh 2021-09-07 end |
| | | ei.accessorySetId = esd.Rental_Apply_Equipment_Set__c; |
| | | esdList.add(ei); |
| | | } |
| | | } |
| | | //for (EsdInfo esd : esdList) { |
| | | // if (esd.rec.FSD_OneToOneAccessory_Cnt__c > 0 && esd.rec.FSD_Is_OneToOne__c && esd.rec.Inspection_result_after_F__c == 'OK') { |
| | | // esd.otoWithoutMain = !otomainSet.contains(esd.rec.Rental_Apply_Equipment_Set__c); |
| | | // } |
| | | //} |
| | | |
| | | |
| | | //for (Rental_Apply_Equipment_Set_Detail__c esd : eList) { |
| | | // EsdInfo ei = new EsdInfo(esd); |
| | | // if (esd.Arrival_in_wh__c == false |
| | | // && (esd.Inspection_result_after_F__c == 'OK' |
| | | // || (esd.Inspection_result_after_F__c == 'NG' && esd.Inspection_result_after_ng_F__c == 'åºå¼') || esd.OnStock_By_Cancel__c == true)) { |
| | | // ei.editable = true; |
| | | // if (esd.Inspection_result_after_ng_F__c == 'åºå¼' || (esd.Inspection_result_NG__c == 'åºå¼' && esd.OnStock_By_Cancel__c)) { |
| | | // ei.discardFlg = true; |
| | | // } else if (esd.FSD_OneToOneAccessory_Cnt__c > 0) { |
| | | // if (esd.Is_Body__c) { |
| | | // if (assid != (String)esd.Asset__c) { |
| | | // ei.locChange = true; |
| | | // assid = esd.Asset__c; |
| | | // } |
| | | // } else if (!esd.Fixture_Set_Detail__r.Is_OneToOne__c) { |
| | | // if (assid != (String)esd.Asset__c) { |
| | | // ei.locChange = true; |
| | | // assid = esd.Asset__c; |
| | | // } |
| | | // } |
| | | // } else { |
| | | // if (assid != (String)esd.Asset__c) { |
| | | // ei.locChange = true; |
| | | // assid = esd.Asset__c; |
| | | // } |
| | | // } |
| | | // } |
| | | |
| | | // esdList.add(ei); |
| | | //} |
| | | |
| | | if (esdList.size() <= 0) { |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '没æå¤åsetæç»')); |
| | | saveBtnDisabled = true; |
| | | return null; |
| | | } |
| | | Step_status = '䏿¶'; |
| | | SR_status = 'Shippment'; |
| | | system.debug('=====' + Step_status); |
| | | system.debug('=====' + open_type); |
| | | |
| | | return null; |
| | | } |
| | | |
| | | // Step åãæ¿ããã¿ã³ãåè´§å-æ£æµ |
| | | public PageReference Shippment1() { |
| | | Step_status = 'åè´§å'; |
| | | return new PageReference('/apex/EquipmentSetShippmentReceived2?id=' + this.Id + '&type=' + this.SR_status + '&step=' + this.Step_status + '&open=' + this.open_type); |
| | | } |
| | | |
| | | // Step åãæ¿ããã¿ã³ãåè´§-åè´§è¿è¾åå· ç |
| | | public PageReference Shippment2() { |
| | | Step_status = 'åè´§'; |
| | | return new PageReference('/apex/EquipmentSetShippmentReceived6?id=' + this.Id); |
| | | } |
| | | |
| | | // Step åãæ¿ããã¿ã³ãåå¯-åè´§è¿è¾åå· ç |
| | | public PageReference Received1() { |
| | | Step_status = 'åå¯'; |
| | | return new PageReference('/apex/EquipmentSetShippmentReceived2?id=' + this.Id + '&type=' + this.SR_status + '&step=' + this.Step_status + '&open=' + this.open_type); |
| | | } |
| | | |
| | | // Step åãæ¿ããã¿ã³ãCDS ç |
| | | public PageReference Received2() { |
| | | Step_status = 'CDS'; |
| | | return new PageReference('/apex/EquipmentSetShippmentReceived2?id=' + this.Id + '&type=' + this.SR_status + '&step=' + this.Step_status + '&open=' + this.open_type); |
| | | } |
| | | |
| | | // Step åãæ¿ããã¿ã³ãååºæ£æ¥ ç |
| | | public PageReference Received3() { |
| | | Step_status = 'ååºæ£æ¥'; |
| | | return new PageReference('/apex/EquipmentSetShippmentReceived2?id=' + this.Id + '&type=' + this.SR_status + '&step=' + this.Step_status + '&open=' + this.open_type); |
| | | } |
| | | |
| | | // Step åãæ¿ããã¿ã³ãååº ç |
| | | public PageReference Received4() { |
| | | Step_status = 'ååº'; |
| | | return new PageReference('/apex/EquipmentSetShippmentReceived2?id=' + this.Id + '&type=' + this.SR_status + '&step=' + this.Step_status + '&open=' + this.open_type); |
| | | } |
| | | |
| | | public PageReference deleteDetail() { |
| | | if (UnCheckedId != null) { |
| | | integer index = 0; |
| | | for (EsdInfo esd : esdList) { |
| | | if (esd.accessoryFlg && UnCheckedId == esd.rec2.Id) { |
| | | break; |
| | | } |
| | | index++; |
| | | } |
| | | esdList.remove(index); |
| | | } |
| | | UnCheckedId = null; |
| | | return null; |
| | | } |
| | | |
| | | public PageReference addAccessory() { |
| | | system.debug(AccessorySetId); |
| | | if (AccessoryId != null) { |
| | | List<Asset> assList = [select Id, Name, SerialNumber, Product2Id,WH_location__c from Asset |
| | | where Fixture_QRCode__c = :AccessoryId |
| | | and Ji_Zhong_Guan_Li_Ku_Cun__c > 0 |
| | | and Asset_loaner_category__c != 'èæ' |
| | | and RecordTypeId = '01210000000kOPR']; |
| | | system.debug(assList); |
| | | if (assList.size() > 0) { |
| | | //Rental_apply_equipment_Set_Detail__c raesd = new Rental_apply_equipment_Set_Detail__c(); |
| | | EsdInfo accInfo = new EsdInfo(); |
| | | accInfo.accessoryFlg = true; |
| | | accInfo.rec2=asslist[0]; |
| | | accInfo.accessorySetId = AccessorySetId; |
| | | |
| | | Integer index = 1; |
| | | Integer insert_index = 0; |
| | | for (EsdInfo esd : esdList) { |
| | | if (esd.rec.Rental_Apply_Equipment_Set__c == AccessorySetId) insert_index = index; |
| | | index++; |
| | | } |
| | | if (esdList.size() == insert_index) { |
| | | esdList.add(accInfo); |
| | | } else { |
| | | esdList.add(insert_index, accInfo); |
| | | } |
| | | } |
| | | } |
| | | AccessoryId = null; |
| | | return null; |
| | | } |
| | | // ä¿åæé® |
| | | public PageReference save() { |
| | | done_flg = false; |
| | | String userid = Userinfo.getUserId(); |
| | | List<Rental_Apply_Equipment_Set_Detail__c> eList = new List<Rental_Apply_Equipment_Set_Detail__c>(); |
| | | List<EsdInfo> otoCheckList_main = new List<EsdInfo>(); |
| | | //List<EsdInfo> otoCheckList = new List<EsdInfo>(); |
| | | List<EsdInfo> otoAccessoryList = new List<EsdInfo>(); |
| | | Map<Id, String> assetloc = new Map<Id, String>(); |
| | | Set<Id> assetlocAbandoned = new Set<Id>(); |
| | | Set<Id> assetForLock = new Set<Id>(); |
| | | //Map<Id, Integer> accessoryMap = new Map<Id, Integer>(); |
| | | //Set<Id> otomainSet = new Set<Id>(); |
| | | ////ä¸å¯¹ä¸ä¸»ä½ |
| | | //for (EsdInfo esdInfo : esdList) { |
| | | // if (!esdInfo.accessoryFlg && esdInfo.editable && esdInfo.rec.FSD_OneToOneAccessory_Cnt__c > 0) { |
| | | // if (esdInfo.rec.Arrival_in_wh__c && esdInfo.rec.Is_Body__c) { |
| | | // otomainSet.add(esdInfo.rec.Rental_Apply_Equipment_Set__c); |
| | | // } |
| | | // } |
| | | //} |
| | | |
| | | //for (EsdInfo esdInfo : esdList) { |
| | | // if (!esdInfo.accessoryFlg && esdInfo.editable && esdInfo.rec.FSD_OneToOneAccessory_Cnt__c > 0) { |
| | | // if (esdInfo.rec.FSD_Is_OneToOne__c && esdInfo.rec.Inspection_result_after_F__c == 'OK' && !esdInfo.otoWithoutMain) { |
| | | // esdInfo.rec.Arrival_in_wh__c = otomainSet.contains(esdInfo.rec.Rental_Apply_Equipment_Set__c); |
| | | // } |
| | | // } |
| | | //} |
| | | Set<Id> mainSet = new Set<Id>(); |
| | | for (EsdInfo esdInfo : esdList) { |
| | | esdInfo.errorInfo = null; |
| | | if (esdInfo.accessoryFlg) { |
| | | otoAccessoryList.add(esdInfo); |
| | | //accessoryMap.put(esdInfo.rec2.Product2Id, 0); |
| | | } else { |
| | | if (!esdInfo.editable) continue; |
| | | Rental_Apply_Equipment_Set_Detail__c esd = esdInfo.rec; |
| | | eList.add(esd); |
| | | //if (esd.Inspection_result_after_F__c == 'OK' && esd.FSD_OneToOneAccessory_Cnt__c > 0 && esd.FSD_Is_OneToOne__c) esd.Arrival_in_wh__c = true; |
| | | if (esd.Arrival_in_wh__c) { |
| | | if (esd.Arrival_wh_Abandoned_Flag_F__c) { |
| | | assetlocAbandoned.add(esd.Asset__c); |
| | | } |
| | | if (esd.FSD_OneToOneAccessory_Cnt_F__c > 0 && esd.Is_Body__c && (esd.Inspection_result_after_F__c == 'OK' || (!esd.Arrival_wh_Abandoned_Flag_F__c && esd.Arrival_wh_Flag_F__c))) { |
| | | otoCheckList_main.add(esdInfo); |
| | | mainSet.add(esd.Rental_Apply_Equipment_Set__c); |
| | | assetloc.put(esd.Asset__c, esd.Asset__r.WH_location__c); |
| | | } else if ((esd.Inspection_result_after_F__c == 'OK' || (!esd.Arrival_wh_Abandoned_Flag_F__c && esd.Arrival_wh_Flag_F__c)) && esd.FSD_OneToOneAccessory_Cnt_F__c > 0 && esd.Fixture_Set_Detail__r.Is_OneToOne__c) { |
| | | //if (String.isNotBlank(esd.Canceled_Id__c)) { |
| | | // otoAccessoryList.add(esdInfo); |
| | | //} else { |
| | | // otoCheckList.add(esdInfo); |
| | | //} |
| | | otoAccessoryList.add(esdInfo); |
| | | } else if (!assetloc.containsKey(esd.Asset__c)) { |
| | | assetloc.put(esd.Asset__c, esd.Asset__r.WH_location__c); |
| | | //assetIds.add(esd.Asset__c); |
| | | } |
| | | } |
| | | } |
| | | if (esdInfo.editable) { |
| | | assetForLock.add(esdInfo.rec.Asset__c); |
| | | } |
| | | |
| | | } |
| | | |
| | | //Map<Id,List<EsdInfo>> esdMap = new Map<Id,List<EsdInfo>>(); |
| | | for (EsdInfo esd : otoAccessoryList) { |
| | | //List<EsdInfo> raesdList; |
| | | //if (esdMap.containsKey(esd.rec.Rental_Apply_Equipment_Set__c)) { |
| | | // raesdList = esdMap.get(esd.rec.Rental_Apply_Equipment_Set__c); |
| | | //} else { |
| | | // raesdList = new List<EsdInfo>(); |
| | | //} |
| | | //raesdList.add(esd); |
| | | //esdMap.put(esd.rec.Rental_Apply_Equipment_Set__c, raesdList); |
| | | if (!esd.accessoryFlg && !mainSet.contains(esd.rec.Rental_Apply_Equipment_Set__c) && !assetloc.containsKey(esd.rec.Asset__c)) { |
| | | assetloc.put(esd.rec.Asset__c, esd.rec.Asset__r.WH_location__c); |
| | | } |
| | | } |
| | | |
| | | Map<String, Map<Id, List<Id>>> assProductCountMapAll = new Map<String, Map<Id, List<Id>>>(); |
| | | //Map<Id, List<Id>> assProductCountMap = new Map<Id, List<Id>>(); |
| | | for (EsdInfo ei : otoAccessoryList) { |
| | | Map<Id, List<Id>> assProductCountMap; |
| | | if (assProductCountMapAll.containsKey(ei.accessorySetId)) { |
| | | assProductCountMap = assProductCountMapAll.get(ei.accessorySetId); |
| | | } else { |
| | | assProductCountMap = new Map<Id, List<Id>>(); |
| | | } |
| | | Id recId; |
| | | Id product2Id; |
| | | if (ei.rec2 != null) { |
| | | recId = ei.rec2.Id; |
| | | product2Id = ei.rec2.Product2Id; |
| | | } else { |
| | | recId = ei.rec.Asset__c; |
| | | product2Id = ei.rec.Asset__r.Product2Id; |
| | | } |
| | | List<Id> count; |
| | | if (assProductCountMap.containsKey(product2Id)) { |
| | | count = assProductCountMap.get(product2Id); |
| | | } else { |
| | | count = new List<Id>(); |
| | | } |
| | | count.add(recId); |
| | | assProductCountMap.put(product2Id, count); |
| | | assProductCountMapAll.put(ei.accessorySetId, assProductCountMap); |
| | | } |
| | | |
| | | Boolean needSaveSet = false; |
| | | Boolean needSaveDetail = false; |
| | | Boolean needSaveAsset = false; |
| | | |
| | | List<Fixture_OneToOne_Link__c> otolinkList = new List<Fixture_OneToOne_Link__c>(); |
| | | List<Asset> updAsset = null; |
| | | List<Asset> updAssetAbandoned = null; |
| | | //if (!forceSave) { |
| | | boolean err = false; |
| | | Map<String, Integer> otoMap = new Map<String, Integer>(); |
| | | for (EsdInfo main : otoCheckList_main) { |
| | | //Fixture_Set_Detail__c m1 = [select Id, Fixture_Set__c from Fixture_Set_Detail__c where Id = :main.rec.Fixture_Set_Detail__c]; |
| | | //List<Fixture_Set_Detail__c> asslist = [select Product2__r.Name, Id,Product2__c,Is_Body__c, Quantity__c from Fixture_Set_Detail__c where Is_Body__c = false and Fixture_Set__c = :m1.Fixture_Set__c and Is_OneToOne__c = true]; |
| | | |
| | | //List<EsdInfo> raesdList = esdMap.get(main.rec.Rental_Apply_Equipment_Set__c); |
| | | List<Rental_Apply_Equipment_Set_Detail__c> asslist; |
| | | //没æcancelççææ°ä¸å¥æç»çfsdæ°é |
| | | //å·²ç»cancelççææ©ä¸å¥æç»çä¸å¯¹ä¸åé
æ°é |
| | | //ç论ä¸åºåºå䏿¶çæ°æ®ä¸ä¼æécancelçæ
åµï¼æä»¥ç´æ¥ç¨Cancel_Select__c夿 |
| | | system.debug(main.rec); |
| | | if (main.rec.Cancel_Select__c == false) { |
| | | asslist = [select Asset__r.Product2.Name, Asset__c, Asset__r.Product2Id , OneToOne_Flag__c |
| | | from Rental_Apply_Equipment_Set_Detail__c |
| | | where Rental_Apply_Equipment_Set__c = :main.rec.Rental_Apply_Equipment_Set__c |
| | | and Fixture_Set_Detail__r.Is_OneToOne__c = true |
| | | and Cancel_Select__c = false //æ¾ææ°çä¸å¥æç» |
| | | //and Canceled_Id__c = null //æ¾æåçä¸å¥æç» |
| | | and Asset__c <> null //è¿æ»¤æªåé
çæ°æ®ã |
| | | and Substitute_flag__c = false |
| | | // ä¸è§NGçæ
嵿·è´æ°çä¸è§ï¼ä¸å½±åä¸å¯¹ä¸æ°éCount |
| | | // and Rental_Apply_Equipment_Set__r.Canceled_Id__c = null |
| | | order by OneToOne_Flag__c desc]; |
| | | } else { |
| | | asslist = [select Asset__r.Product2.Name, Asset__c, Asset__r.Product2Id , OneToOne_Flag__c |
| | | from Rental_Apply_Equipment_Set_Detail__c |
| | | where Rental_Apply_Equipment_Set__c = :main.rec.Rental_Apply_Equipment_Set__c |
| | | and Fixture_Set_Detail__r.Is_OneToOne__c = true |
| | | and Substitute_flag__c = false |
| | | and Canceled_Id__c = null |
| | | and Asset__c <> null |
| | | order by OneToOne_Flag__c desc]; |
| | | } |
| | | system.debug(asslist); |
| | | Map<Id, List<Id>> assProductCountMap = new Map<Id, List<Id>>(); |
| | | if (assProductCountMapAll.containsKey(main.rec.Rental_Apply_Equipment_Set__c)) { |
| | | assProductCountMap = assProductCountMapAll.get(main.rec.Rental_Apply_Equipment_Set__c); |
| | | } |
| | | //Map<Id, List<EsdInfo>> assCountMap = new Map<Id, List<EsdInfo>>(); |
| | | //if (raesdList != null) { |
| | | // for (EsdInfo ei : raesdList) { |
| | | // List<EsdInfo> count; |
| | | // if (assCountMap.containsKey(ei.rec.Asset__c)) { |
| | | // count = assCountMap.get(ei.rec.Asset__c); |
| | | // } else { |
| | | // count = new List<EsdInfo>(); |
| | | // } |
| | | // count.add(ei); |
| | | // assCountMap.put(ei.rec.Asset__c, count); |
| | | // } |
| | | //} |
| | | |
| | | for (Rental_Apply_Equipment_Set_Detail__c ass : assList) { |
| | | //if (assCountMap.containsKey(ass.Asset__c) && assCountMap.get(ass.Asset__c).size() > 0) { |
| | | |
| | | // List<EsdInfo> count = assCountMap.get(ass.Asset__c); |
| | | // count.remove(0); |
| | | // assCountMap.put(ass.Asset__c, count); |
| | | |
| | | // String key = (String)main.rec.Asset__c + ':' + (String)ass.Asset__c; |
| | | // Integer otoCnt; |
| | | // if (otoMap.containsKey(key)) { |
| | | // otoCnt = otoMap.get(key); |
| | | // } else { |
| | | // otoCnt = 0; |
| | | // } |
| | | // otoMap.put(key, otoCnt + 1); |
| | | //} else |
| | | if (assProductCountMap.containsKey(ass.Asset__r.Product2Id) && assProductCountMap.get(ass.Asset__r.Product2Id).size() > 0) { |
| | | |
| | | List<Id> count = assProductCountMap.get(ass.Asset__r.Product2Id); |
| | | String assetId = (String)count[0]; |
| | | count.remove(0); |
| | | assProductCountMap.put(ass.Asset__r.Product2Id, count); |
| | | assProductCountMapAll.put(main.rec.Rental_Apply_Equipment_Set__c, assProductCountMap); |
| | | //accessoryMap.put(ass.Asset__r.Product2Id, accessoryMap.get(ass.Asset__r.Product2Id)+1); |
| | | |
| | | String key = (String)main.rec.Asset__c + ':' + assetId; |
| | | Integer otoCnt; |
| | | if (otoMap.containsKey(key)) { |
| | | otoCnt = otoMap.get(key); |
| | | } else { |
| | | otoCnt = 0; |
| | | } |
| | | otoMap.put(key, otoCnt + 1); |
| | | } else { |
| | | if (!forceSave && (main.rec.Cancel_Select__c == false || (main.rec.Cancel_Select__c == true && ass.OneToOne_Flag__c))) { |
| | | main.errorInfo = 'æªè¡¥å
¨éå±å(é¨å䏿¶è¯·å¾éå¤éæ¡):'+ass.Asset__r.Product2.Name; |
| | | err = true; |
| | | break; |
| | | } else { |
| | | continue; |
| | | } |
| | | //return null; |
| | | } |
| | | } |
| | | //æå¤ä½çéå±å |
| | | //for (Id count : assCountMap.keySet()) { |
| | | // if (assCountMap.get(count).size() > 0) { |
| | | // err = true; |
| | | // for (EsdInfo ei : assCountMap.get(count)) { |
| | | // ei.errorInfo = 'ä¸å¯¹ä¸éå±åæ 对åºä¸»ä½(æå䏿¶è¯·å¾éå¤éæ¡)'; |
| | | // } |
| | | // } |
| | | //} |
| | | } |
| | | |
| | | |
| | | if (err) return null; |
| | | |
| | | for (String oto : otoMap.keySet()) { |
| | | List<String> keys = oto.split(':'); |
| | | Fixture_OneToOne_Link__c otolink = new Fixture_OneToOne_Link__c(); |
| | | otolink.Main_Asset__c = keys[0]; |
| | | otolink.Accessory_Asset__c = keys[1]; |
| | | otolink.Quantity__c = otoMap.get(oto); |
| | | otolinkList.add(otolink); |
| | | } |
| | | |
| | | //} |
| | | //éå±ååä¸è§èµ°ï¼ä¸éè¦check |
| | | // system.debug(accessoryMap); |
| | | // for (String sKey : accessoryMap.keySet()) { |
| | | // if (accessoryMap.get(sKey) > 1) { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'æè¿½å éå±å对åºä¸å主ä½ï¼ä¸å¯æ´æ°( '+Step_status+' )')); |
| | | // return null; |
| | | // } |
| | | //} |
| | | |
| | | //return null; |
| | | // TODO 没ååä¸å |
| | | if (Step_status == '䏿¶') { |
| | | |
| | | for (Rental_Apply_Equipment_Set_Detail__c esd : eList) { |
| | | if (esd.Arrival_in_wh__c) { |
| | | esd.Arrival_wh_time__c = System.now(); |
| | | esd.Return_wh_chenk_staff__c = userid; |
| | | } else { |
| | | esd.Arrival_wh_time__c = null; |
| | | esd.Return_wh_chenk_staff__c = null; |
| | | } |
| | | } |
| | | needSaveDetail = true; |
| | | } |
| | | if (assetloc.keySet().size() > 0) { |
| | | updAsset = [select Id, WH_location__c from Asset |
| | | where Id in :assetloc.keySet() |
| | | and Asset_loaner_category__c != 'èæ' |
| | | and RecordTypeId = '01210000000kOPR']; |
| | | for (Asset upda : updAsset) { |
| | | upda.WH_location__c = assetloc.get(upda.Id); |
| | | } |
| | | needSaveAsset = true; |
| | | } |
| | | if (assetlocAbandoned.size() > 0) { |
| | | updAssetAbandoned = [select Id, WH_location__c from Asset |
| | | where Id in :assetlocAbandoned |
| | | and Asset_loaner_category__c != 'èæ' |
| | | and RecordTypeId = '01210000000kOPR' |
| | | and Manage_type__c = '个ä½ç®¡ç']; |
| | | for (Asset upda : updAssetAbandoned) { |
| | | upda.WH_location__c = 'åºå¼åº'; |
| | | } |
| | | needSaveAsset = true; |
| | | } |
| | | for (EsdInfo esdInfo : esdList) { |
| | | if (esdInfo.accessoryFlg) continue; |
| | | Rental_Apply_Equipment_Set_Detail__c esd = esdInfo.rec; |
| | | if (esd.Arrival_in_wh__c && esd.FSD_OneToOneAccessory_Cnt_F__c > 0 && esd.Is_Body__c && esd.Arrival_wh_Abandoned_Flag_F__c) { |
| | | otoCheckList_main.add(esdInfo); |
| | | } |
| | | } |
| | | List<Asset> astLock = [select Id from Asset |
| | | where Id in :assetForLock |
| | | for update]; |
| | | //return null; |
| | | Savepoint sp = Database.setSavepoint(); |
| | | try { |
| | | //if (needSaveSet) ControllerUtil.upRAdEquipmentSet(es); |
| | | if (otoCheckList_main.size() > 0) { |
| | | List<Id> mainIds = new List<Id>(); |
| | | for (EsdInfo oto : otoCheckList_main) { |
| | | if (String.isNotBlank(oto.rec.Asset__c)) { |
| | | // Asset__c 念ã®ããã®ç¢ºèª |
| | | mainIds.add(oto.rec.Asset__c); |
| | | } |
| | | } |
| | | //ControllerUtil.delOtOLinkData(mainIds); |
| | | FixtureUtil.delOtOLinkData(mainIds); |
| | | } |
| | | if (otolinkList.size() > 0) { |
| | | // Set<Id> mainIds = new Set<Id>(); |
| | | //for (Fixture_OneToOne_Link__c oto : otolinkList) { |
| | | // if (String.isBlank(oto.Main_Asset__c) == false) { |
| | | // mainIds.add(oto.Main_Asset__c); |
| | | // } |
| | | //} |
| | | // ControllerUtil.delOtOLinkData(mainIds); |
| | | if (needSaveDetail) { |
| | | //ControllerUtil.updRAEquipmentSetDetail(eList); |
| | | FixtureUtil.withoutUpsertObjects(eList); |
| | | needSaveDetail = false; |
| | | } |
| | | //ControllerUtil.updOtOLinkData(otolinkList); |
| | | Oly_TriggerHandler.clearBypass(AssetHandlerCheck.class.getName()); |
| | | FixtureUtil.withoutInsert(otolinkList); |
| | | Oly_TriggerHandler.bypass(AssetHandlerCheck.class.getName()); |
| | | } |
| | | //if (needSaveDetail) ControllerUtil.updRAEquipmentSetDetail(eList); |
| | | if (needSaveDetail) FixtureUtil.withoutUpsertObjects(eList); |
| | | //if (needSaveAsset) ControllerUtil.updAssetLocation(updAsset); |
| | | if (needSaveAsset && updAsset != null && updAsset.size() > 0) FixtureUtil.withoutUpdate(updAsset); |
| | | if (needSaveAsset && updAssetAbandoned != null && updAssetAbandoned.size() > 0) FixtureUtil.withoutUpdate(updAssetAbandoned); |
| | | |
| | | //PageReference ref = new Pagereference('/apex/EquipmentSetShippmentReceived6?id=' + Id); |
| | | //ref.setRedirect(true); |
| | | //return ref; |
| | | List<EsdInfo> esdL = new List<EsdInfo>(); |
| | | for (EsdInfo esd : esdList) { |
| | | if (!esd.accessoryFlg) { |
| | | esdL.add(esd); |
| | | } |
| | | } |
| | | //esdList = esdL; |
| | | init(); |
| | | done_flg = true; |
| | | return null; |
| | | } catch (Exception ex) { |
| | | system.debug('=====' + ex.getMessage()); |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, ex.getMessage()+'( '+Step_status+' )')); |
| | | Database.rollback(sp); |
| | | done_flg = false; |
| | | return null; |
| | | } |
| | | |
| | | return null; |
| | | } |
| | | |
| | | public class EsdInfo { |
| | | public Rental_Apply_Equipment_Set_Detail__c rec { get; set; } |
| | | public Asset rec2 { get; set; } |
| | | public String imageAssetUploadedTime { get; set; } |
| | | public String imageSerialUploadedTime { get; set; } |
| | | public String errorInfo { get; set; } |
| | | public boolean accessoryFlg { get; set; } |
| | | public String accessorySetId { get; set; } |
| | | public Boolean discardFlg { get; set; } |
| | | //public Boolean locChange { get; set; } |
| | | public boolean editable { get; set; } |
| | | //public boolean otoWithoutMain { get; set; } |
| | | // ååºã¯Setåä½ã§ãæç´°ä¸ã¤ä¸ã¤ã®quickCheckè¦ããªã |
| | | public boolean quickCheck { get; set; } |
| | | //夿éç®±/çèçä¸ç¬¦æ¯å¦æ¾ç¤º |
| | | public boolean isShow { get; set; } |
| | | |
| | | public EsdInfo() { |
| | | this.quickCheck = false; |
| | | //this.locChange = false; |
| | | this.discardFlg = false; |
| | | this.editable = false; |
| | | this.isShow = false; |
| | | //this.otoWithoutMain = false; |
| | | } |
| | | |
| | | public EsdInfo(Rental_apply_equipment_Set_Detail__c rec) { |
| | | this.rec = rec; |
| | | this.accessoryFlg = false; |
| | | //this.locChange = false; |
| | | this.discardFlg = false; |
| | | this.editable = false; |
| | | this.isShow = false; |
| | | //this.otoWithoutMain = false; |
| | | |
| | | if (rec.Asset__r.Pre_Reserve_RAES_Detail__c != null && rec.Asset__r.Pre_Reserve_RAES_Detail__r.After_Inspection_time__c != null) { |
| | | this.quickCheck = Datetime.now() < rec.Asset__r.Pre_Reserve_RAES_Detail__r.After_Inspection_time__c + 30 ? true : false; |
| | | } else { |
| | | this.quickCheck = false; |
| | | } |
| | | |
| | | if (rec.Asset__r.ImageAssetUploadedTime__c != null) { |
| | | imageAssetUploadedTime = rec.Asset__r.ImageAssetUploadedTime__c.format('yyyy/MM/dd HH:mm'); |
| | | } |
| | | if (rec.Asset__r.ImageSerialUploadedTime__c != null) { |
| | | imageSerialUploadedTime = rec.Asset__r.ImageSerialUploadedTime__c.format('yyyy/MM/dd HH:mm'); |
| | | } |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | public without sharing class FixtureOneToOneLinkHandler extends Oly_TriggerHandler { |
| | | |
| | | private Map<Id, Fixture_OneToOne_Link__c> newMap; |
| | | private Map<Id, Fixture_OneToOne_Link__c> oldMap; |
| | | private List<Fixture_OneToOne_Link__c> newList; |
| | | private List<Fixture_OneToOne_Link__c> oldList; |
| | | |
| | | private static Map<Id, Fixture_OneToOne_Link__c> assMap = new Map<Id, Fixture_OneToOne_Link__c>(); |
| | | private static Map<Id, Fixture_OneToOne_Link__c> assUpdMap = new Map<Id, Fixture_OneToOne_Link__c>(); |
| | | |
| | | public FixtureOneToOneLinkHandler() { |
| | | this.newMap = (Map<Id, Fixture_OneToOne_Link__c>) Trigger.newMap; |
| | | this.oldMap = (Map<Id, Fixture_OneToOne_Link__c>) Trigger.oldMap; |
| | | this.newList = (List<Fixture_OneToOne_Link__c>) Trigger.new; |
| | | this.oldList = (List<Fixture_OneToOne_Link__c>) Trigger.old; |
| | | } |
| | | |
| | | protected override void beforeInsert() { |
| | | beforeSetValue(); |
| | | } |
| | | |
| | | protected override void beforeUpdate() { |
| | | beforeSetValue(); |
| | | } |
| | | |
| | | protected override void afterInsert() { |
| | | setAssetOntToOne(); |
| | | } |
| | | |
| | | protected override void afterUpdate() { |
| | | setAssetOntToOne(); |
| | | } |
| | | |
| | | protected override void afterDelete() { |
| | | setAssetOntToOne(); |
| | | } |
| | | |
| | | private void beforeSetValue() { |
| | | for (Fixture_OneToOne_Link__c nObj : newList) { |
| | | nObj.In_wh_Fu_Shu_Pin_You_Xiao_Ku_Cun__c = nObj.In_wh_Fu_Shu_Pin_You_Xiao_Ku_Cun_F__c; |
| | | if (String.isNotBlank(nObj.Accessory_Asset__c) |
| | | && nObj.Manage_type__c == FixtureUtil.managetypeMap.get(FixtureUtil.Managetype.Ge_Ti_Guan_Li)) { |
| | | nObj.Ge_Ti_Fu_Shu_Pin_Key__c = nObj.Accessory_Asset__c; |
| | | } else { |
| | | nObj.Ge_Ti_Fu_Shu_Pin_Key__c = null; |
| | | } |
| | | } |
| | | } |
| | | |
| | | public void setAssetOntToOne() { |
| | | Map<Id, Asset> assetMap = new Map<Id, Asset>(); // TODO å°æ¥ Static ã«ãã |
| | | Map<Id, Asset> checkMainOneToOneMap = new Map<Id, Asset>(); // 主ä½checkç¨ |
| | | List<String> otoId = new List<String>(); |
| | | |
| | | List<Fixture_OneToOne_Link__c> fotos; |
| | | if(!Trigger.isDelete) { |
| | | fotos = newList; |
| | | } else { |
| | | fotos = oldList; |
| | | } |
| | | |
| | | for (Fixture_OneToOne_Link__c foto : fotos) { |
| | | if (Trigger.isInsert) { |
| | | Fixture_OneToOne_Link__c nObj = foto; |
| | | // 主ä½ç夿 |
| | | if (String.isNotBlank(nObj.Main_Asset__c)) { |
| | | assetMap.put(nObj.Main_Asset__c, new Asset( |
| | | Id = nObj.Main_Asset__c, |
| | | Main_OneToOne__c = true)); |
| | | } |
| | | // ä»å±åç夿 |
| | | if (String.isNotBlank(nObj.Accessory_Asset__c) |
| | | && nObj.Manage_type__c == FixtureUtil.managetypeMap.get(FixtureUtil.Managetype.Ge_Ti_Guan_Li)) { |
| | | assetMap.put(nObj.Accessory_Asset__c, new Asset( |
| | | Id = nObj.Accessory_Asset__c, |
| | | Fixture_OneToOne_Link__c = nObj.Id)); |
| | | } |
| | | } |
| | | else if (Trigger.isUpdate) { |
| | | Fixture_OneToOne_Link__c nObj = foto; |
| | | Fixture_OneToOne_Link__c oObj = oldMap.get(nObj.Id); |
| | | // 主ä½ç夿 |
| | | if (String.isNotBlank(nObj.Main_Asset__c) |
| | | && (oObj.Main_Asset__c != nObj.Main_Asset__c)) { |
| | | assetMap.put(nObj.Main_Asset__c, new Asset( |
| | | Id = nObj.Main_Asset__c, |
| | | Main_OneToOne__c = true)); |
| | | checkMainOneToOneMap.put(oObj.Main_Asset__c, new Asset( |
| | | Id = oObj.Main_Asset__c, |
| | | Main_OneToOne__c = false)); |
| | | } |
| | | // ä»å±åç夿 |
| | | if (String.isNotBlank(oObj.Accessory_Asset__c) |
| | | && oObj.Manage_type__c == FixtureUtil.managetypeMap.get(FixtureUtil.Managetype.Ge_Ti_Guan_Li) |
| | | && (oObj.Accessory_Asset__c != nObj.Accessory_Asset__c)) { |
| | | assetMap.put(nObj.Accessory_Asset__c, new Asset( |
| | | Id = nObj.Accessory_Asset__c, |
| | | Fixture_OneToOne_Link__c = nObj.Id)); |
| | | assetMap.put(oObj.Accessory_Asset__c, new Asset( |
| | | Id = oObj.Accessory_Asset__c, |
| | | Fixture_OneToOne_Link__c = null)); |
| | | } |
| | | } |
| | | else if (Trigger.isDelete) { |
| | | Fixture_OneToOne_Link__c oObj = foto; |
| | | // 主ä½ç夿 |
| | | if (String.isNotBlank(oObj.Main_Asset__c)) { |
| | | checkMainOneToOneMap.put(oObj.Main_Asset__c, new Asset( |
| | | Id = oObj.Main_Asset__c, |
| | | Main_OneToOne__c = false)); |
| | | } |
| | | // ä»å±åç夿 |
| | | if (String.isNotBlank(oObj.Accessory_Asset__c) |
| | | && oObj.Manage_type__c == FixtureUtil.managetypeMap.get(FixtureUtil.Managetype.Ge_Ti_Guan_Li)) { |
| | | assetMap.put(oObj.Accessory_Asset__c, new Asset( |
| | | Id = oObj.Accessory_Asset__c, |
| | | Fixture_OneToOne_Link__c = null)); |
| | | } |
| | | if (String.isNotBlank(oObj.Id)) { |
| | | otoId.add(oObj.Id); |
| | | } |
| | | } |
| | | } |
| | | System.debug(checkMainOneToOneMap); |
| | | // ä¸»ä½ checkMainOneToOneMap å夿 |
| | | if (!checkMainOneToOneMap.isEmpty()) { |
| | | Set<Id> aSetId = new Set<Id>(); |
| | | // åæ´ä¸å¯¹ä¸linkç䏻使å é¤ä¸å¯¹ä¸linkæ¶ï¼æ¥æ¾æ§ç䏻使¯å¦è¿åå¨ä¸å¯¹ä¸link |
| | | for (AggregateResult checkedMain : [ |
| | | SELECT Main_Asset__c, count(Id) cnt |
| | | FROM Fixture_OneToOne_Link__c |
| | | WHERE Main_Asset__c IN :checkMainOneToOneMap.keyset() |
| | | GROUP BY Main_Asset__c]) { |
| | | System.debug(checkedMain); |
| | | aSetId.add((Id) checkedMain.get('Main_Asset__c')); |
| | | } |
| | | |
| | | for (Id mId : checkMainOneToOneMap.keyset()) { |
| | | if (!aSetId.contains(mId)) assetMap.put(mId, checkMainOneToOneMap.get(mId)); |
| | | } |
| | | } |
| | | |
| | | if (Trigger.isDelete) { |
| | | if (otoId.size() > 0) { |
| | | List<Rental_Apply_Equipment_Set_Detail__c> raesdList = [ |
| | | select id, Fixture_OneToOne_Link_Id__c |
| | | from Rental_Apply_Equipment_Set_Detail__c |
| | | where Fixture_OneToOne_Link_Id__c in :otoId and StockDown__c = false]; |
| | | if (!raesdList.isEmpty()) { |
| | | for (Rental_Apply_Equipment_Set_Detail__c raesd : raesdList) { |
| | | raesd.Fixture_OneToOne_Link_Id__c = null; |
| | | } |
| | | update raesdList; |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (!assetMap.isEmpty()) { |
| | | update assetMap.values(); |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | global class FixtureSetDetailDailyUpdateSchedule implements Schedulable { |
| | | global void execute(SchedulableContext sc) { |
| | | Id execBTId = Database.executeBatch(new FixtureSetDetailDailyUpdateBatch(), 100); |
| | | } |
| | | } |
| New file |
| | |
| | | public without sharing class InventoryDetailHandler extends Oly_TriggerHandler { |
| | | private Map<Id, Inventory_Detail__c> newMap; |
| | | private Map<Id, Inventory_Detail__c> oldMap; |
| | | private List<Inventory_Detail__c> newList; |
| | | private List<Inventory_Detail__c> oldList; |
| | | |
| | | private static Set<Id> updatedAsset = new Set<Id>(); |
| | | private static Map<Id, Asset> needUpdateAsset = new Map<Id, Asset>(); |
| | | |
| | | public InventoryDetailHandler() { |
| | | this.newMap = (Map<Id, Inventory_Detail__c>) Trigger.newMap; |
| | | this.oldMap = (Map<Id, Inventory_Detail__c>) Trigger.oldMap; |
| | | this.newList = (List<Inventory_Detail__c>) Trigger.new; |
| | | this.oldList = (List<Inventory_Detail__c>) Trigger.old; |
| | | } |
| | | |
| | | protected override void beforeInsert() { |
| | | |
| | | } |
| | | |
| | | protected override void beforeUpdate() { |
| | | needUpdateAsset = new Map<Id, Asset>(); |
| | | beforeSetValue(); |
| | | } |
| | | |
| | | protected override void afterUpdate() { |
| | | setFrozenQuantity(); |
| | | CheckOnetoOneLink(); |
| | | setAsset(); |
| | | // OLY_OCM-663 æ±æ»åæç»ççç¹ç¶æå°ä¸»æç»ä¸ãæªæ¥å¦æçç¹è¡¨ç»é¢å¯è½éè¦æ´å¤è¿æ»¤æ¹å¼çè¯ï¼èèä¿®æ¹Batchå¨ä¸»æç»ä¸è¿½å Assetåä½çæ°éçåæ®µ |
| | | checkInventoryStatus(); |
| | | if (needUpdateAsset.isEmpty() == false) { |
| | | update needUpdateAsset.values(); |
| | | } |
| | | } |
| | | |
| | | private void beforeSetValue() { |
| | | for (Inventory_Detail__c nObj : newList) { |
| | | Inventory_Detail__c oObj; |
| | | if (Trigger.isUpdate) { |
| | | oObj = oldMap.get(nObj.Id); |
| | | } |
| | | if (oObj != null |
| | | && oObj.Auto_Lost_item_giveup__c == false |
| | | && nObj.Auto_Lost_item_giveup__c == true) { |
| | | nObj.Auto_Giveup_Time__c = Datetime.now(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | private void setFrozenQuantity() { |
| | | Map<Id, Decimal> assetCount = new Map<Id, Decimal>(); |
| | | Map<Id, Decimal> assetCount2 = new Map<Id, Decimal>(); |
| | | Map<String, Decimal> otoLinkCount = new Map<String, Decimal>(); |
| | | Set<Id> astSet = new Set<Id>(); |
| | | for (Inventory_Detail__c nObj : newList) { |
| | | Inventory_Detail__c oObj = oldMap.get(nObj.Id); |
| | | if (oObj.Inventory_Count__c == nObj.Inventory_Count__c) continue; |
| | | Decimal oldDeviation = oObj.Inventory_Count__c == null ? 0 :oObj.Inventory_Deviation__c; |
| | | Decimal newDeviation = nObj.Inventory_Count__c == null ? 0 :nObj.Inventory_Deviation__c; |
| | | |
| | | //çç¹çäºæ° |
| | | //å®çæ°ä¸è½å¤§äºåºçæ°ï¼ççä¸è½åæ å°å»ç»é |
| | | if (oldDeviation < 0 || newDeviation < 0) { |
| | | Decimal count; |
| | | Decimal oto_count; |
| | | if (oldDeviation >= 0) { |
| | | count = 0 - newDeviation; |
| | | } else if (newDeviation >= 0) { |
| | | count = oldDeviation; |
| | | } else { |
| | | count = oldDeviation - newDeviation; |
| | | } |
| | | oto_count = count; |
| | | if (assetCount.containsKey(nObj.Asset__c)) { |
| | | count += assetCount.get(nObj.Asset__c); |
| | | } |
| | | assetCount.put(nObj.Asset__c, count); |
| | | //ä¸å¯¹ä¸éå±åçäºå»ç»æ° |
| | | if (nObj.Fixture_OneToOne_Link__c != null) { |
| | | if (otoLinkCount.containsKey(nObj.Fixture_OneToOne_Link__c)) { |
| | | oto_count += otoLinkCount.get(nObj.Fixture_OneToOne_Link__c); |
| | | } |
| | | otoLinkCount.put(nObj.Fixture_OneToOne_Link__c, oto_count); |
| | | } |
| | | astSet.add(nObj.Asset__c); |
| | | } |
| | | |
| | | //çç¹ççæ° |
| | | //çäºä¸è½åæ å°ççæ°é |
| | | if (oldDeviation > 0 || newDeviation > 0) { |
| | | Decimal count; |
| | | if (oldDeviation <= 0) { |
| | | count = newDeviation; |
| | | } else if (newDeviation <= 0) { |
| | | count = 0 - oldDeviation; |
| | | } else { |
| | | count = newDeviation - oldDeviation; |
| | | } |
| | | if (assetCount2.containsKey(nObj.Asset__c)) { |
| | | count += assetCount2.get(nObj.Asset__c); |
| | | } |
| | | assetCount2.put(nObj.Asset__c, count); |
| | | astSet.add(nObj.Asset__c); |
| | | } |
| | | } |
| | | |
| | | //ä¸å¯¹ä¸éå±åçäºæ°å¤ç |
| | | if (otoLinkCount.isEmpty() == false) { |
| | | List<Fixture_OneToOne_Link__c> otoList = [select Id, Inventory_Frozen_Quantity__c from Fixture_OneToOne_Link__c where Id in :otoLinkCount.keySet()]; |
| | | for (Fixture_OneToOne_Link__c oto : otoList) { |
| | | if (oto.Inventory_Frozen_Quantity__c == null) oto.Inventory_Frozen_Quantity__c = 0; |
| | | oto.Inventory_Frozen_Quantity__c += otoLinkCount.get(oto.Id); |
| | | } |
| | | update otoList; |
| | | } |
| | | |
| | | List<Asset> updateList = new List<Asset>(); |
| | | List<Inventory_Detail__c> updateIdList = new List<Inventory_Detail__c>(); |
| | | if (astSet.isEmpty() == false) { |
| | | List<Asset> astList = [select Id, Inventory_Frozen_Quantity__c, Inventory_Profit_Quantity__c from asset where Id in :astSet]; |
| | | List<Inventory_Detail__c> idList = [select Id, Sync_Asset_Frozen_Quantity__c, Sync_Asset_Profit_Quantity__c, Asset__c from Inventory_Detail__c where Asset__c in :astSet and Sync_Asset_Record_Flag__c = true]; |
| | | for (Asset ast : astList) { |
| | | if (ast.Inventory_Frozen_Quantity__c == null) ast.Inventory_Frozen_Quantity__c = 0; |
| | | if (ast.Inventory_Profit_Quantity__c == null) ast.Inventory_Profit_Quantity__c = 0; |
| | | if (assetCount.containsKey(ast.Id)) { |
| | | ast.Inventory_Frozen_Quantity__c += assetCount.get(ast.Id); |
| | | } |
| | | if (assetCount2.containsKey(ast.Id)) { |
| | | ast.Inventory_Profit_Quantity__c += assetCount2.get(ast.Id); |
| | | } |
| | | |
| | | updateList.add(ast); |
| | | } |
| | | |
| | | for (Inventory_Detail__c idl : idList) { |
| | | if (idl.Sync_Asset_Frozen_Quantity__c == null) idl.Sync_Asset_Frozen_Quantity__c = 0; |
| | | if (idl.Sync_Asset_Profit_Quantity__c == null) idl.Sync_Asset_Profit_Quantity__c = 0; |
| | | if (assetCount.containsKey(idl.Asset__c)) { |
| | | idl.Sync_Asset_Frozen_Quantity__c += assetCount.get(idl.Asset__c); |
| | | } |
| | | if (assetCount2.containsKey(idl.Asset__c)) { |
| | | idl.Sync_Asset_Profit_Quantity__c += assetCount2.get(idl.Asset__c); |
| | | } |
| | | |
| | | updateIdList.add(idl); |
| | | } |
| | | update updateList; |
| | | update updateIdList; |
| | | } |
| | | } |
| | | |
| | | private void setAsset() { |
| | | for (Inventory_Detail__c nObj : newList) { |
| | | Inventory_Detail__c oObj = oldMap.get(nObj.Id); |
| | | if (oObj.Auto_Lost_item_giveup__c == false |
| | | && nObj.Auto_Lost_item_giveup__c == true |
| | | && !updatedAsset.contains(nObj.Asset__c)) { |
| | | Asset ass = new Asset(Id = nObj.Asset__c); |
| | | if (nObj.Appended_Inventory_Frozen_Quantity_F__c > 0) { |
| | | ass.Abandoned_Inventory__c = nObj.Abandoned_Inventory_F__c + nObj.Appended_Inventory_Frozen_Quantity_F__c; |
| | | } |
| | | updatedAsset.add(nObj.Asset__c); |
| | | ass.Appended_Inventory_Frozen_Quantity__c = 0; |
| | | needUpdateAsset.put(nObj.Asset__c, ass); |
| | | } |
| | | } |
| | | } |
| | | |
| | | private void CheckOnetoOneLink() { |
| | | Set<Id> otoIds = new Set<Id>(); |
| | | for (Inventory_Detail__c nObj : newList) { |
| | | Inventory_Detail__c oObj; |
| | | if (Trigger.isUpdate) { |
| | | oObj = oldMap.get(nObj.Id); |
| | | } |
| | | if (oObj != null |
| | | && nObj.Fixture_OneToOne_Link__c != null |
| | | && oObj.Auto_Lost_item_giveup__c == false |
| | | && nObj.Auto_Lost_item_giveup__c == true |
| | | && nObj.Manage_type__c == FixtureUtil.managetypeMap.get(FixtureUtil.Managetype.Shu_Liang_Guan_Li)) { |
| | | otoIds.add(nObj.Fixture_OneToOne_Link__c); |
| | | } |
| | | } |
| | | |
| | | if (otoIds.size() > 0) { |
| | | List<Fixture_OneToOne_Link__c> delList = new List<Fixture_OneToOne_Link__c>(); |
| | | List<Fixture_OneToOne_Link__c> updateList = new List<Fixture_OneToOne_Link__c>(); |
| | | List<Fixture_OneToOne_Link__c> otoList = [select Id, Inventory_Frozen_Quantity__c, Quantity__c from Fixture_OneToOne_Link__c where Id in :otoIds]; |
| | | for (Fixture_OneToOne_Link__c oto : otoList) { |
| | | if (oto.Inventory_Frozen_Quantity__c >= oto.Quantity__c) { |
| | | delList.add(oto); |
| | | } |
| | | else if(oto.Inventory_Frozen_Quantity__c > 0) { |
| | | oto.Quantity__c -= oto.Inventory_Frozen_Quantity__c; |
| | | oto.Inventory_Frozen_Quantity__c = 0; |
| | | updateList.add(oto); |
| | | } |
| | | } |
| | | if(!delList.isEmpty()) { |
| | | delete delList; |
| | | } |
| | | if(!updateList.isEmpty()) { |
| | | update updateList; |
| | | } |
| | | } |
| | | } |
| | | |
| | | private void checkInventoryStatus() { |
| | | Set<Id> assetIds = new Set<Id>(); |
| | | for (Inventory_Detail__c nObj : newList) { |
| | | Inventory_Detail__c oObj; |
| | | if (Trigger.isUpdate) { |
| | | oObj = oldMap.get(nObj.Id); |
| | | } |
| | | if (oObj != null |
| | | && oObj.Inventory_Time__c == null |
| | | && nObj.Inventory_Time__c != null) { |
| | | assetIds.add(nObj.Asset__c); |
| | | } |
| | | } |
| | | |
| | | if (assetIds.size() > 0) { |
| | | AggregateResult[] results = [select count(Id) cnt, Asset__c |
| | | from Inventory_Detail__c |
| | | where Asset__c in :assetIds and Asset_Status__c in ('å¨åº','å»ç»') and Amount__c <> 0 and Inventory_Time__c = null |
| | | AND Inventory_Header__r.Inventory_Status__c = 'çç¹ä¸' |
| | | group by Asset__c]; |
| | | for (AggregateResult ar : results) { |
| | | if(Integer.valueOf(ar.get('cnt')) > 0) { |
| | | assetIds.remove((Id)String.valueOf(ar.get('Asset__c'))); |
| | | } |
| | | } |
| | | |
| | | List<Inventory_Detail__c> updateDetails = [select Id, Asset_Inventory_Flg__c |
| | | from Inventory_Detail__c |
| | | where Asset__c in :assetIds and Sync_Asset_Record_Flag__c = true]; |
| | | if (updateDetails.size() > 0) { |
| | | for (Inventory_Detail__c upd : updateDetails) { |
| | | upd.Asset_Inventory_Flg__c = true; |
| | | } |
| | | |
| | | update updateDetails; |
| | | } |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | @isTest |
| | | private class InventoryDetailHandlerTest { |
| | | |
| | | // å建Assetæ°æ® |
| | | static void setupTestData() { |
| | | SS_Batch_Column_Mapping__c InventoryHeaderName = new SS_Batch_Column_Mapping__c(Name = 'Inventory_Header_Name', SS_TableName__c='Inventory_Header_Name'); |
| | | InventoryHeaderName.From_Column_001__c = 'å京 å¤åä¸å¿'; |
| | | InventoryHeaderName.SS_Column_001__c = 'BJ'; |
| | | InventoryHeaderName.From_Column_002__c = '䏿µ· å¤åä¸å¿'; |
| | | InventoryHeaderName.SS_Column_002__c = 'SH'; |
| | | InventoryHeaderName.From_Column_003__c = 'å¹¿å· å¤åä¸å¿'; |
| | | InventoryHeaderName.SS_Column_003__c = 'GZ'; |
| | | insert new SS_Batch_Column_Mapping__c[] {InventoryHeaderName}; |
| | | // ç
é¢ãä½ã |
| | | Account hospital = new Account(); |
| | | hospital.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'HP'].id; |
| | | hospital.Name = 'test hospital'; |
| | | hospital.Is_Active__c = 'æå¹'; |
| | | hospital.Attribute_Type__c = 'å«çé¨'; |
| | | hospital.Speciality_Type__c = '综åå»é¢'; |
| | | hospital.Grade__c = 'ä¸çº§'; |
| | | hospital.OCM_Category__c = 'SLTV'; |
| | | hospital.Is_Medical__c = 'å»çæºæ'; |
| | | hospital.Town__c = 'ä¸äº¬'; |
| | | insert hospital; |
| | | |
| | | // æ¦ç¥ç§å®¤ãå¾ã |
| | | Account[] strategicDep = [SELECT ID, Name FROM Account WHERE parentId = :hospital.Id AND recordType.DeveloperName = 'Department_Class_OTH']; |
| | | // 診çç§ãä½ã |
| | | Account dep = new Account(); |
| | | dep.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'Department_OTH'].id; |
| | | dep.Name = 'test dep'; |
| | | dep.AgentCode_Ext__c = '9999998'; |
| | | dep.ParentId = strategicDep[0].Id; |
| | | dep.Department_Class__c = strategicDep[0].Id; |
| | | dep.Hospital__c = hospital.Id; |
| | | insert dep; |
| | | |
| | | Contact contact2 = new Contact(); |
| | | contact2.AccountId = dep.Id; |
| | | contact2.FirstName = '責任è
'; |
| | | contact2.LastName = 'test1ç»éå'; |
| | | insert contact2; |
| | | |
| | | // 产å |
| | | Product2 pro1 = new Product2(Name='name01',IsActive=true,Family='GI', |
| | | Fixture_Model_No__c='n01',Serial_Lot_No__c='S/N tracing', |
| | | Fixture_Model_No_T__c = 'n01', |
| | | ProductCode_Ext__c='pc01',Manual_Entry__c=false); |
| | | Product2 pro2 = new Product2(Name='name02',IsActive=true,Family='GI', |
| | | Fixture_Model_No__c='n02',Serial_Lot_No__c='Lot tracing', |
| | | ProductCode_Ext__c='pc02',Manual_Entry__c=false); |
| | | Product2 pro3 = new Product2(Name='name03',IsActive=true,Family='GI', |
| | | Fixture_Model_No__c='n03',Serial_Lot_No__c='Lot tracing', |
| | | ProductCode_Ext__c='pc03',Manual_Entry__c=false); |
| | | insert new Product2[] {pro1, pro2, pro3}; |
| | | |
| | | //---------------------------ä¸»ä½ ä¸¤ä¸ªéå±å(个ä½ç®¡ç æ°é管ç) |
| | | // ä¿æè®¾å¤A (主ä½) |
| | | Asset assetA1 = new Asset(Asset_Owner__c = 'Olympus'); |
| | | assetA1.RecordTypeId = System.Label.Asset_RecordType; |
| | | assetA1.SerialNumber = 'ass01'; |
| | | assetA1.Name = 'ass01'; |
| | | assetA1.AccountId = dep.Id; |
| | | assetA1.Department_Class__c = strategicDep[0].Id; |
| | | assetA1.Hospital__c = hospital.Id; |
| | | assetA1.Product2Id = pro1.Id; |
| | | assetA1.Quantity = 1; |
| | | assetA1.Status = 'æåºå'; |
| | | assetA1.Manage_type__c = '个ä½ç®¡ç'; |
| | | assetA1.Loaner_accsessary__c = false; |
| | | assetA1.Product_category__c = 'GI'; |
| | | assetA1.Delete_Flag__c = false; |
| | | assetA1.Freeze_sign__c = false; |
| | | assetA1.Out_of_wh__c = 0; |
| | | assetA1.Salesdepartment__c = '1.ååè¥ä¸æ¬é¨'; |
| | | assetA1.Internal_asset_location__c = 'å京 å¤åä¸å¿'; |
| | | assetA1.Product_category__c = 'GI'; |
| | | assetA1.Equipment_Type__c = '产åè¯ç¨'; |
| | | assetA1.SalesProvince__c = 'å京'; |
| | | assetA1.WH_location__c = 'è´§æ¶å·1'; |
| | | assetA1.AssetManageConfirm__c = true; |
| | | // ä¿æè®¾å¤A (éå±å æ°é管ç) |
| | | Asset assetA2 = new Asset(Asset_Owner__c = 'Olympus'); |
| | | assetA2.RecordTypeId = System.Label.Asset_RecordType; |
| | | assetA2.SerialNumber = 'ass02'; |
| | | assetA2.Name = 'ass02'; |
| | | assetA2.AccountId = dep.Id; |
| | | assetA2.Department_Class__c = strategicDep[0].Id; |
| | | assetA2.Hospital__c = hospital.Id; |
| | | assetA2.Product2Id = pro2.Id; |
| | | assetA2.Quantity = 10; |
| | | assetA2.Status = 'æåºå'; |
| | | assetA2.Manage_type__c = 'æ°é管ç'; |
| | | assetA2.Loaner_accsessary__c = true; |
| | | assetA2.Product_category__c = 'GI'; |
| | | assetA2.Delete_Flag__c = false; |
| | | assetA2.Freeze_sign__c = false; |
| | | assetA2.Out_of_wh__c = 3; |
| | | assetA2.Frozen_Quantity__c = 2; |
| | | assetA2.Salesdepartment__c = '1.ååè¥ä¸æ¬é¨'; |
| | | assetA2.Internal_asset_location__c = 'å京 å¤åä¸å¿'; |
| | | assetA2.Product_category__c = 'GI'; |
| | | assetA2.Equipment_Type__c = '产åè¯ç¨'; |
| | | assetA2.SalesProvince__c = 'å京'; |
| | | assetA2.WH_location__c = 'è´§æ¶å·2'; |
| | | assetA2.AssetManageConfirm__c = true; |
| | | // ä¿æè®¾å¤A (éå±å 个ä½ç®¡ç) |
| | | Asset assetA3 = new Asset(Asset_Owner__c = 'Olympus'); |
| | | assetA3.RecordTypeId = System.Label.Asset_RecordType; |
| | | assetA3.SerialNumber = 'ass03'; |
| | | assetA3.Name = 'ass03'; |
| | | assetA3.AccountId = dep.Id; |
| | | assetA3.Department_Class__c = strategicDep[0].Id; |
| | | assetA3.Hospital__c = hospital.Id; |
| | | assetA3.Product2Id = pro3.Id; |
| | | assetA3.Quantity = 10; |
| | | assetA3.Status = 'æåºå'; |
| | | assetA3.Manage_type__c = 'æ°é管ç'; |
| | | assetA3.Loaner_accsessary__c = true; |
| | | assetA3.Product_category__c = 'GI'; |
| | | assetA3.Delete_Flag__c = false; |
| | | assetA3.Freeze_sign__c = false; |
| | | assetA3.Out_of_wh__c = 3; |
| | | assetA3.Salesdepartment__c = '1.ååè¥ä¸æ¬é¨'; |
| | | assetA3.Internal_asset_location__c = 'å京 å¤åä¸å¿'; |
| | | assetA3.Product_category__c = 'GI'; |
| | | assetA3.Equipment_Type__c = '产åè¯ç¨'; |
| | | assetA3.SalesProvince__c = 'å京'; |
| | | assetA3.WH_location__c = 'è´§æ¶å·3'; |
| | | assetA3.Abandoned_Inventory__c = 1; |
| | | assetA3.AssetManageConfirm__c = true; |
| | | insert new Asset[] {assetA1, assetA2, assetA3}; |
| | | |
| | | Repair__c repair = new Repair__c(); |
| | | repair.Service_Repair_No__c = 'repair'; |
| | | repair.Status__c = 'èæ¡ä¸'; |
| | | repair.Hospital__c = hospital.Id; |
| | | repair.Account__c = dep.Id; |
| | | repair.Department_Class__c = strategicDep[0].id; |
| | | repair.Delivered_Product__c = assetA2.Id; |
| | | insert repair; |
| | | |
| | | String cunFangDi = 'å京 å¤åä¸å¿'; |
| | | Inventory_Header__c header = new Inventory_Header__c(); |
| | | header.Inventory_Start_Date__c = Date.toDay(); |
| | | header.UniqueKey__c = 'IH-0000'; |
| | | header.Inventory_Status__c = 'çç¹ä¸'; |
| | | header.Internal_asset_location__c = cunFangDi; |
| | | insert header; |
| | | |
| | | Fixture_OneToOne_Link__c oto = new Fixture_OneToOne_Link__c(); |
| | | oto.Main_Asset__c = assetA1.Id; |
| | | oto.Accessory_Asset__c = assetA3.Id; |
| | | oto.Quantity__c = 2; |
| | | insert oto; |
| | | |
| | | Inventory_Detail__c id7 = new Inventory_Detail__c(); |
| | | id7.Asset__c = assetA3.Id; |
| | | id7.Amount__c = 2; |
| | | id7.WH_Location__c = assetA1.WH_location__c; |
| | | id7.OneToOne_Body__c = false; |
| | | id7.OneToOne_Accsessary__c = true; |
| | | id7.Asset_Status__c = 'å¨åº'; |
| | | id7.Manage_type__c = 'æ°é管ç'; |
| | | id7.Sync_Asset_Record_Flag__c = false; |
| | | id7.UniqueKey__c = header.Id+':'+pro3.Fixture_Model_No__c+':å¨åº:'+assetA1.Id+':'+assetA3.Id; |
| | | id7.Fixture_Model_No__c = pro3.Fixture_Model_No__c; |
| | | id7.Internal_asset_location__c = cunFangDi; |
| | | id7.Inventory_Time__c = Date.toDay(); |
| | | id7.Inventory_Header__c = header.Id; |
| | | id7.Fixture_OneToOne_Link__c = oto.Id; |
| | | |
| | | Inventory_Detail__c id1 = new Inventory_Detail__c(); |
| | | id1.Asset__c = assetA1.Id; |
| | | id1.Amount__c = assetA1.Quantity; |
| | | id1.WH_Location__c = assetA1.WH_location__c; |
| | | id1.OneToOne_Body__c = true; |
| | | id1.OneToOne_Accsessary__c = false; |
| | | id1.Asset_Status__c = 'å¨åº'; |
| | | id1.Sync_Asset_Record_Flag__c = true; |
| | | id1.UniqueKey__c = header.Id+':'+pro1.Fixture_Model_No__c+':å¨åº:'+null+':'+assetA1.Id; |
| | | id1.Fixture_Model_No__c = pro1.Fixture_Model_No__c; |
| | | id1.Internal_asset_location__c = cunFangDi; |
| | | id1.Inventory_Time__c = Date.toDay(); |
| | | id1.Inventory_Header__c = header.Id; |
| | | |
| | | Inventory_Detail__c id2 = new Inventory_Detail__c(); |
| | | id2.Asset__c = assetA2.Id; |
| | | id2.Amount__c = 1; |
| | | id2.WH_Location__c = assetA2.WH_location__c; |
| | | id2.OneToOne_Body__c = false; |
| | | id2.OneToOne_Accsessary__c = false; |
| | | id2.Asset_Status__c = 'ç»´ä¿®ä¸'; |
| | | id2.Sync_Asset_Record_Flag__c = false; |
| | | id2.UniqueKey__c = header.Id+':'+pro2.Fixture_Model_No__c+':ç»´ä¿®ä¸:'+null+':'+assetA2.Id+':'+repair.Id; |
| | | id2.Fixture_Model_No__c = pro2.Fixture_Model_No__c; |
| | | id2.Internal_asset_location__c = cunFangDi; |
| | | id2.Inventory_Time__c = Date.toDay(); |
| | | id2.Inventory_Header__c = header.Id; |
| | | |
| | | Inventory_Detail__c id3 = new Inventory_Detail__c(); |
| | | id3.Asset__c = assetA3.Id; |
| | | id3.Amount__c = 7; |
| | | id3.WH_Location__c = assetA3.WH_location__c; |
| | | id3.OneToOne_Body__c = false; |
| | | id3.OneToOne_Accsessary__c = false; |
| | | id3.Asset_Status__c = 'å¨åº'; |
| | | id3.Sync_Asset_Record_Flag__c = true; |
| | | id3.UniqueKey__c = header.Id+':'+pro3.Fixture_Model_No__c+':å¨åº:'+null+':'+assetA3.Id; |
| | | id3.Fixture_Model_No__c = pro3.Fixture_Model_No__c; |
| | | id3.Internal_asset_location__c = cunFangDi; |
| | | id3.Inventory_Time__c = Date.toDay(); |
| | | id3.Inventory_Header__c = header.Id; |
| | | |
| | | Inventory_Detail__c id4 = new Inventory_Detail__c(); |
| | | id4.Asset__c = assetA3.Id; |
| | | id4.Amount__c = 1; |
| | | id4.WH_Location__c = assetA3.WH_location__c; |
| | | id4.OneToOne_Body__c = false; |
| | | id4.OneToOne_Accsessary__c = false; |
| | | id4.Asset_Status__c = 'åºåä¸'; |
| | | id4.Sync_Asset_Record_Flag__c = false; |
| | | id4.UniqueKey__c = header.Id+':'+pro3.Fixture_Model_No__c+':åºåä¸:'+null+':'+assetA3.Id; |
| | | id4.Fixture_Model_No__c = pro3.Fixture_Model_No__c; |
| | | id4.Internal_asset_location__c = cunFangDi; |
| | | id4.Inventory_Time__c = Date.toDay(); |
| | | id4.Inventory_Header__c = header.Id; |
| | | |
| | | Inventory_Detail__c id5 = new Inventory_Detail__c(); |
| | | id5.Asset__c = assetA2.Id; |
| | | id5.Amount__c = 7; |
| | | id5.WH_Location__c = assetA2.WH_location__c; |
| | | id5.OneToOne_Body__c = false; |
| | | id5.OneToOne_Accsessary__c = false; |
| | | id5.Asset_Status__c = 'å¨åº'; |
| | | id5.Sync_Asset_Record_Flag__c = true; |
| | | id5.UniqueKey__c = header.Id+':'+pro2.Fixture_Model_No__c+':å¨åº:'+null+':'+assetA2.Id; |
| | | id5.Fixture_Model_No__c = pro2.Fixture_Model_No__c; |
| | | id5.Internal_asset_location__c = cunFangDi; |
| | | //id5.Inventory_Time__c = Date.toDay(); |
| | | id5.Inventory_Header__c = header.Id; |
| | | |
| | | Inventory_Detail__c id6 = new Inventory_Detail__c(); |
| | | id6.Asset__c = assetA2.Id; |
| | | id6.Amount__c = 2; |
| | | id6.WH_Location__c = assetA2.WH_location__c; |
| | | id6.OneToOne_Body__c = false; |
| | | id6.OneToOne_Accsessary__c = false; |
| | | id6.Asset_Status__c = 'å»ç»'; |
| | | id6.Sync_Asset_Record_Flag__c = false; |
| | | id6.UniqueKey__c = header.Id+':'+pro2.Fixture_Model_No__c+':å»ç»:'+null+':'+assetA2.Id; |
| | | id6.Fixture_Model_No__c = pro2.Fixture_Model_No__c; |
| | | id6.Internal_asset_location__c = cunFangDi; |
| | | //id6.Inventory_Time__c = Date.toDay(); |
| | | id6.Inventory_Header__c = header.Id; |
| | | |
| | | insert new Inventory_Detail__c[] {id1, id2, id3, id4, id5, id6, id7}; |
| | | } |
| | | |
| | | static testMethod void testMethod1() { |
| | | setupTestData(); |
| | | |
| | | List<Inventory_Detail__c> headerList = [select Asset__c, Amount__c, Id, Inventory_Time__c, Inventory_Count__c from Inventory_Detail__c where Asset_Status__c = 'å¨åº' and OneToOne_Accsessary__c = true]; |
| | | |
| | | headerList[0].Inventory_Count__c = 1; |
| | | update headerList[0]; |
| | | Fixture_OneToOne_Link__c oto = [select Id,Inventory_Frozen_Quantity__c from Fixture_OneToOne_Link__c limit 1]; |
| | | System.assertEquals(1, oto.Inventory_Frozen_Quantity__c); |
| | | |
| | | headerList[0].Inventory_Count__c = 5; |
| | | update headerList[0]; |
| | | oto = [select Id,Inventory_Frozen_Quantity__c from Fixture_OneToOne_Link__c limit 1]; |
| | | System.assertEquals(0, oto.Inventory_Frozen_Quantity__c); |
| | | |
| | | headerList[0].Inventory_Count__c = 0; |
| | | update headerList[0]; |
| | | oto = [select Id,Inventory_Frozen_Quantity__c from Fixture_OneToOne_Link__c limit 1]; |
| | | System.assertEquals(2, oto.Inventory_Frozen_Quantity__c); |
| | | |
| | | headerList[0].Auto_Lost_item_giveup__c = true; |
| | | update headerList[0]; |
| | | } |
| | | |
| | | static testMethod void testMethod2() { |
| | | setupTestData(); |
| | | |
| | | Inventory_Detail__c idl1 = [select Asset_Inventory_Flg__c, Asset__c, Amount__c, Id, Inventory_Time__c, Inventory_Count__c from Inventory_Detail__c where Asset_Status__c = 'å»ç»']; |
| | | Inventory_Detail__c idlMain = [select Asset_Inventory_Flg__c, Asset__c, Amount__c, Id, Inventory_Time__c, Inventory_Count__c from Inventory_Detail__c where Asset__c = :idl1.Asset__c and Sync_Asset_Record_Flag__c = true]; |
| | | System.assertEquals(false, idl1.Asset_Inventory_Flg__c); |
| | | System.assertEquals(false, idlMain.Asset_Inventory_Flg__c); |
| | | |
| | | idl1.Inventory_Count__c = 2; |
| | | idl1.Inventory_Time__c = Date.today(); |
| | | update idl1; |
| | | idl1 = [select Asset_Inventory_Flg__c, Asset__c, Amount__c, Id, Inventory_Time__c, Inventory_Count__c from Inventory_Detail__c where Asset_Status__c = 'å»ç»']; |
| | | idlMain = [select Asset_Inventory_Flg__c, Asset__c, Amount__c, Id, Inventory_Time__c, Inventory_Count__c from Inventory_Detail__c where Asset__c = :idl1.Asset__c and Sync_Asset_Record_Flag__c = true]; |
| | | System.assertEquals(false, idl1.Asset_Inventory_Flg__c); |
| | | System.assertEquals(false, idlMain.Asset_Inventory_Flg__c); |
| | | |
| | | idlMain.Inventory_Count__c = 7; |
| | | idlMain.Inventory_Time__c = Date.today(); |
| | | update idlMain; |
| | | idl1 = [select Asset_Inventory_Flg__c, Asset__c, Amount__c, Id, Inventory_Time__c, Inventory_Count__c from Inventory_Detail__c where Asset_Status__c = 'å»ç»']; |
| | | idlMain = [select Asset_Inventory_Flg__c, Asset__c, Amount__c, Id, Inventory_Time__c, Inventory_Count__c from Inventory_Detail__c where Asset__c = :idl1.Asset__c and Sync_Asset_Record_Flag__c = true]; |
| | | System.assertEquals(false, idl1.Asset_Inventory_Flg__c); |
| | | System.assertEquals(true, idlMain.Asset_Inventory_Flg__c); |
| | | } |
| | | |
| | | static testMethod void testMethod3() { |
| | | setupTestData(); |
| | | |
| | | Inventory_Detail__c idl1 = [select Asset_Inventory_Flg__c, Asset__c, Amount__c, Id, Inventory_Time__c, Inventory_Count__c from Inventory_Detail__c where Asset_Status__c = 'å»ç»']; |
| | | Inventory_Detail__c idlMain = [select Asset_Inventory_Flg__c, Asset__c, Amount__c, Id, Inventory_Time__c, Inventory_Count__c from Inventory_Detail__c where Asset__c = :idl1.Asset__c and Sync_Asset_Record_Flag__c = true]; |
| | | System.assertEquals(false, idl1.Asset_Inventory_Flg__c); |
| | | System.assertEquals(false, idlMain.Asset_Inventory_Flg__c); |
| | | |
| | | idlMain.Amount__c = 0; |
| | | update idlMain; |
| | | idl1.Inventory_Count__c = 2; |
| | | idl1.Inventory_Time__c = Date.today(); |
| | | update idl1; |
| | | |
| | | idl1 = [select Asset_Inventory_Flg__c, Asset__c, Amount__c, Id, Inventory_Time__c, Inventory_Count__c from Inventory_Detail__c where Asset_Status__c = 'å»ç»']; |
| | | idlMain = [select Asset_Inventory_Flg__c, Asset__c, Amount__c, Id, Inventory_Time__c, Inventory_Count__c from Inventory_Detail__c where Asset__c = :idl1.Asset__c and Sync_Asset_Record_Flag__c = true]; |
| | | System.assertEquals(false, idl1.Asset_Inventory_Flg__c); |
| | | System.assertEquals(true, idlMain.Asset_Inventory_Flg__c); |
| | | } |
| | | } |
| New file |
| | |
| | | public without sharing class InventoryListController { |
| | | /*****************æ¤ç´¢ç¨******************/ |
| | | public Consumable_order__c coc { get; set; } |
| | | public String baseUrl {get;private set;} |
| | | /*****************ç»é¢è¡¨ç¤ºBean******************/ |
| | | public List<ConsumableorderdetailsInfo> consumableorderdetailsRecords { get; set; } |
| | | public List<ConsumableorderdetailsInfo> consumableorderdetailsRecordsError { get; set; } |
| | | // çç¹æç»1 |
| | | private List<Consumable_orderdetails__c> consumableorderdetails1 = new List<Consumable_orderdetails__c>(); |
| | | // çç¹æç»2 |
| | | private List<Consumable_order_details2__c> consumableorderdetailsSelected = new List<Consumable_order_details2__c>(); |
| | | |
| | | // çç¹åå· ID |
| | | private String ESetId = ''; |
| | | public InventoryListController() { |
| | | //Apexpages.currentPage().getHeaders().put('X-UA-Compatible', 'IE=8'); |
| | | baseUrl = URL.getSalesforceBaseUrl().toExternalForm(); |
| | | ESetId = ApexPages.currentPage().getParameters().get('esetId'); |
| | | consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>(); |
| | | consumableorderdetailsRecordsError = new List<ConsumableorderdetailsInfo>(); |
| | | } |
| | | // ç»é¢åå§å |
| | | public void init() { |
| | | |
| | | coc = new Consumable_order__c(); |
| | | consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>(); |
| | | List<Consumable_order__c> qs = New List<Consumable_order__c>(); |
| | | qs = [select Name,Inventory_date__c,Order_date__c From Consumable_order__c Where Id =:ESetId]; |
| | | if (qs.size()>0){ |
| | | coc = qs[0]; |
| | | } |
| | | // 鏿æ¸ã¿ã®æç»ãåå¾ |
| | | consumableorderdetailsSelected = [ |
| | | select Id, Name, Consumable_Product__c, |
| | | Consumable_Product__r.Name, Sterilization_limit__c, |
| | | Deliver_date__c,Consumable_Product__r.Name__c, |
| | | Consumable_Product__r.Intra_Trade_List_RMB__c,Bar_Code__c, |
| | | Consumable_Product__r.Asset_Model_No__c,Lose_Flag__c, |
| | | recordtypeid,Lose_reason__c |
| | | from Consumable_order_details2__c |
| | | where Consumable_Inventory_order__c = :ESetId |
| | | order by Name ]; |
| | | |
| | | for (Integer i = 0; i < consumableorderdetailsSelected.size(); i++) { |
| | | consumableorderdetailsRecordsError.add(new ConsumableorderdetailsInfo(consumableorderdetailsSelected[i])); |
| | | } |
| | | consumableorderdetails1 = [ |
| | | select Id, Name,Diff__c,inventory_sum__c, |
| | | Count_Sum__c,Consumable_order__c, |
| | | Consumable_Product__c,Consumable_Product__r.Name,Consumable_Count__c, |
| | | Consumable_Product__r.Intra_Trade_List_RMB__c, |
| | | Consumable_Product__r.Asset_Model_No__c,Consumable_Product__r.Name__c, |
| | | Sum_of_money__c,recordtypeid,Lose_reason__c,Product_Refind__c |
| | | from Consumable_orderdetails__c |
| | | where Consumable_order__c = :ESetId |
| | | order by Name ]; |
| | | for (Integer i = 0; i < consumableorderdetails1.size(); i++) { |
| | | consumableorderdetailsRecords.add(new ConsumableorderdetailsInfo(consumableorderdetails1[i])); |
| | | } |
| | | } |
| | | |
| | | // Data Bean |
| | | class ConsumableorderdetailsInfo implements Comparable { |
| | | public Consumable_orderdetails__c orderdetails1 { get; set; } |
| | | public Consumable_order_details2__c orderdetails2 { get; set; } |
| | | public Product2__c Prod { get; set; } |
| | | // æç»1 |
| | | public ConsumableorderdetailsInfo(Consumable_orderdetails__c e) { |
| | | orderdetails1 = e; |
| | | Prod = e.Consumable_Product__r; |
| | | } |
| | | // æç»2 |
| | | public ConsumableorderdetailsInfo(Consumable_order_details2__c e) { |
| | | orderdetails2 = e; |
| | | Prod = e.Consumable_Product__r; |
| | | } |
| | | // æåº |
| | | public Integer compareTo(Object compareTo) { |
| | | return null; |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | @isTest |
| | | private class InventoryListControllerTest { |
| | | |
| | | static testMethod void myUnitTest() { |
| | | // TO DO: implement unit test |
| | | |
| | | 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ééªè¯']; |
| | | Product2 prod01 = new Product2(Name='Test01',ProductCode='Test01',Asset_Model_No__c = 'Test01',SFDA_Status__c = 'æå¹',Dealer_special_Object__c = true); |
| | | Product2 prod02 = new Product2(Name='Test02',ProductCode='Test02',Asset_Model_No__c = 'Test02',SFDA_Status__c = 'æå¹',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}; |
| | | |
| | | 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){ |
| | | Consumable_order__c Order1 = new Consumable_order__c(); |
| | | Order1.Name = 'OCM_01_001'; |
| | | Order1.Order_status__c = 'æ¹å'; |
| | | Order1.Order_type__c = 'çç¹'; |
| | | Order1.RecordTypeid = System.Label.RT_ConOrder_Inventory; |
| | | insert Order1; |
| | | |
| | | Consumable_order__c Order2 = new Consumable_order__c(); |
| | | Order2.Name = 'OCM_01_002'; |
| | | Order2.Order_status__c = 'æ¹å'; |
| | | Order2.Order_type__c = '订å'; |
| | | Order2.RecordTypeid = System.Label.RT_ConOrder_Order; |
| | | insert Order2; |
| | | |
| | | Consumable_orderdetails__c Orderdet1 = new Consumable_orderdetails__c(); |
| | | Orderdet1.Name = 'OCM_01_001001'; |
| | | Orderdet1.Consumable_order__c = Order1.Id; |
| | | Orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail1_Inventory ; |
| | | Consumable_orderdetails__c Orderdet2 = new Consumable_orderdetails__c(); |
| | | Orderdet2.Name = 'OCM_01_001002'; |
| | | Orderdet2.Consumable_order__c = Order1.Id; |
| | | Orderdet2.RecordTypeId = System.Label.RT_ConOrderDetail1_Inventory ; |
| | | |
| | | Consumable_order_details2__c Orderdet3 = new Consumable_order_details2__c(); |
| | | Orderdet3.Name = 'OCM_01_001003'; |
| | | Orderdet3.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet3.Consumable_Inventory_order__c = Order1.Id; |
| | | Orderdet3.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdet3.Bar_Code__c = '33333'; |
| | | insert Orderdet3; |
| | | |
| | | insert new Consumable_orderdetails__c[] {Orderdet1, Orderdet2}; |
| | | |
| | | PageReference page = new PageReference('/InventoryList?Esetid=' + Order1.Id); |
| | | System.Test.setCurrentPage(page); |
| | | InventoryListController Controller = new InventoryListController(); |
| | | //åå§åæµè¯ |
| | | Controller.init(); |
| | | System.assertEquals('OCM_01_001001', controller.ConsumableorderdetailsRecords[0].orderdetails1.Name); |
| | | System.assertEquals('OCM_01_001002', controller.ConsumableorderdetailsRecords[1].orderdetails1.Name); |
| | | System.assertEquals('OCM_01_001003', controller.ConsumableorderdetailsRecordsError[0].orderdetails2.Name); |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | global class LogAutoSendSchedule implements Schedulable { |
| | | |
| | | global void execute(SchedulableContext SC) { |
| | | Id execBTId = Database.executeBatch(new LogAutoSendBatch(), 1); |
| | | } |
| | | |
| | | public static void assignOneMinute() { |
| | | // delete å®è¡æ¸ã¿ |
| | | Datetime addOneM = System.now().addMinutes(2); |
| | | String CRON_EXP = '0 ' + addOneM.minute() + ' ' + addOneM.hour() + ' ' + addOneM.day() + ' ' + addOneM.month() + ' ? ' + addOneM.year(); |
| | | List<CronTrigger> oldcron = [select Id from CronTrigger where CronExpression = :CRON_EXP and CronJobDetail.Name like 'LogAutoSend%']; |
| | | if (oldcron.size() == 0) { |
| | | System.schedule('LogAutoSend' + CRON_EXP, CRON_EXP, new LogAutoSendSchedule()); |
| | | } |
| | | for (CronTrigger ct : |
| | | [SELECT Id FROM CronTrigger WHERE State = 'DELETED' and CronJobDetail.Name like 'LogAutoSend%']) { |
| | | System.abortJob(ct.id); |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | @isTest |
| | | private class LogAutoSendScheduleTest { |
| | | |
| | | static testMethod void testExecute() { |
| | | // This test runs a scheduled job at midnight Sept. 3rd. 2022 |
| | | String CRON_EXP = '0 0 0 3 9 ? 2022'; |
| | | |
| | | System.Test.startTest(); |
| | | // Schedule the test job |
| | | String jobId = system.schedule('LogAutoSendScheduleTest', CRON_EXP, new LogAutoSendSchedule()); |
| | | // Get the information from the CronTrigger API object |
| | | CronTrigger ct = [SELECT Id, CronExpression, TimesTriggered, NextFireTime FROM CronTrigger WHERE id = :jobId]; |
| | | // Verify the expressions are the same |
| | | System.assertEquals(CRON_EXP, ct.CronExpression); |
| | | // Verify the job has not run |
| | | System.assertEquals(0, ct.TimesTriggered); |
| | | // Verify the next time the job will run |
| | | System.assertEquals('2022-09-03 00:00:00', String.valueOf(ct.NextFireTime)); |
| | | System.Test.StopTest(); |
| | | } |
| | | } |
| New file |
| | |
| | | @isTest |
| | | private class MeetingDelayApplyTriggerTest { |
| | | |
| | | |
| | | static testMethod void testMethod1() { |
| | | RecordType rectCam = |
| | | [select Id from RecordType |
| | | where IsActive = true and SobjectType = 'Campaign' |
| | | and DeveloperName = 'ServiceEngineerTraining']; |
| | | |
| | | Campaign cam = new Campaign(); |
| | | cam.Name = 'camTest'; |
| | | cam.Name2__c = '1234Test'; |
| | | cam.RecordTypeId = rectCam.Id; |
| | | cam.StartDate = Date.today().addDays(-15); |
| | | cam.EndDate = Date.today().addDays(18); |
| | | cam.Mailflg_after45__c = true; |
| | | cam.Mailflg_cancel__c = true; |
| | | cam.Mailflg_before15__c = true; |
| | | cam.Mailflg_before7__c = true; |
| | | cam.Mailflg_after3__c = true; |
| | | cam.Status = 'ç³è¯·ä¸'; |
| | | insert cam; |
| | | |
| | | //éè¦ä¸ä¸ªmeetings ç对象éå |
| | | meeting_delay_apply__c m = new meeting_delay_apply__c(); |
| | | m.Meeting_Type__c = 'å
±å主åä¼'; |
| | | m.HostName__c = '䏻忹Test'; |
| | | m.cooperatorCompany__c = 'æ¿åæ¹Test'; |
| | | m.status__c = 'èæ¡ä¸'; |
| | | m.campaign__c = cam.Id; |
| | | insert m; |
| | | |
| | | |
| | | m.status__c = '审æ¹ä¸'; |
| | | update m; |
| | | |
| | | m.status__c = '已宿'; |
| | | update m; |
| | | |
| | | Campaign camp = [ |
| | | SELECT Id ,StartDate ,EndDate , |
| | | PlanBackData__c ,Meeting_Type__c ,HostName__c ,cooperatorCompany__c , |
| | | Meeting_Cooperate__c ,Meeting_Cooperate2__c ,Meeting_Cooperate3__c ,Meeting_Cooperate4__c |
| | | FROM Campaign WHERE Id = : m.campaign__c |
| | | ]; |
| | | System.debug('审æ¹èç¹èµ°å° `已宿` åcamçå¼: é¢è®¡: hostname= 䏻忹test,cooperatorCompany__c = æ¿åæ¹Test å®é
å¼ä¸º: '+camp); |
| | | |
| | | } |
| | | |
| | | static testMethod void testMethod2() { |
| | | |
| | | RecordType rectCam = |
| | | [select Id from RecordType |
| | | where IsActive = true and SobjectType = 'Campaign' |
| | | and DeveloperName = 'ServiceEngineerTraining']; |
| | | |
| | | Campaign cam = new Campaign(); |
| | | cam.Name = 'cam'; |
| | | cam.Name2__c = '1234'; |
| | | cam.RecordTypeId = rectCam.Id; |
| | | cam.StartDate = Date.today().addDays(-15); |
| | | cam.EndDate = Date.today().addDays(18); |
| | | cam.Mailflg_after45__c = true; |
| | | cam.Mailflg_cancel__c = true; |
| | | cam.Mailflg_before15__c = true; |
| | | cam.Mailflg_before7__c = true; |
| | | cam.Mailflg_after3__c = true; |
| | | cam.Status = 'å
¬å¼ä¸'; |
| | | insert cam; |
| | | |
| | | //éè¦ä¸ä¸ªmeetings ç对象éå |
| | | meeting_delay_apply__c m = new meeting_delay_apply__c(); |
| | | m.Meeting_Type__c = '主åä¼'; |
| | | m.HostName__c = '䏻忹3'; |
| | | m.cooperatorCompany__c = 'æ¿åæ¹3'; |
| | | m.status__c = 'èæ¡ä¸'; |
| | | m.campaign__c = cam.Id; |
| | | insert m; |
| | | |
| | | System.runAs(new User(Id = UserInfo.getUserId())){ |
| | | m.status__c = '审æ¹ä¸'; |
| | | update m; |
| | | |
| | | m.status__c = '已宿'; |
| | | update m; |
| | | } |
| | | |
| | | Campaign camp = [ |
| | | SELECT Id ,StartDate ,EndDate , |
| | | PlanBackData__c ,Meeting_Type__c ,HostName__c ,cooperatorCompany__c , |
| | | Meeting_Cooperate__c ,Meeting_Cooperate2__c ,Meeting_Cooperate3__c ,Meeting_Cooperate4__c |
| | | FROM Campaign WHERE Id = : m.campaign__c |
| | | ]; |
| | | System.debug('审æ¹èç¹èµ°å° `已宿` åcamçå¼: é¢è®¡: hostname= 䏻忹test,cooperatorCompany__c = æ¿åæ¹Test å®é
å¼ä¸º: '+camp); |
| | | |
| | | } |
| | | |
| | | static testMethod void testMethod3() { |
| | | RecordType rectCam = |
| | | [select Id from RecordType |
| | | where IsActive = true and SobjectType = 'Campaign' |
| | | and DeveloperName = 'ServiceEngineerTraining']; |
| | | |
| | | Campaign cam = new Campaign(); |
| | | cam.Name = 'cam'; |
| | | cam.Name2__c = '1234'; |
| | | cam.RecordTypeId = rectCam.Id; |
| | | cam.StartDate = Date.today().addDays(-15); |
| | | cam.EndDate = Date.today().addDays(18); |
| | | cam.Mailflg_after45__c = true; |
| | | cam.Mailflg_cancel__c = true; |
| | | cam.Mailflg_before15__c = true; |
| | | cam.Mailflg_before7__c = true; |
| | | cam.Mailflg_after3__c = true; |
| | | insert cam; |
| | | |
| | | //éè¦ä¸ä¸ªmeetings ç对象éå |
| | | meeting_delay_apply__c m = new meeting_delay_apply__c(); |
| | | m.Meeting_Type__c = 'èµå©ä¼'; |
| | | m.HostName__c = '䏻忹3'; |
| | | m.cooperatorCompany__c = 'æ¿åæ¹3'; |
| | | m.status__c = 'èæ¡ä¸'; |
| | | m.campaign__c = cam.Id; |
| | | insert m; |
| | | |
| | | |
| | | m.status__c = '审æ¹ä¸'; |
| | | update m; |
| | | |
| | | m.status__c = '驳å'; |
| | | update m; |
| | | |
| | | Campaign camp = [ |
| | | SELECT Id ,StartDate ,EndDate , |
| | | PlanBackData__c ,Meeting_Type__c ,HostName__c ,cooperatorCompany__c , |
| | | Meeting_Cooperate__c ,Meeting_Cooperate2__c ,Meeting_Cooperate3__c ,Meeting_Cooperate4__c |
| | | FROM Campaign WHERE Id = : m.campaign__c |
| | | ]; |
| | | |
| | | } |
| | | |
| | | } |
| New file |
| | |
| | | // RowDataãæ®ãããã@future execute ã«ãã¾ã |
| | | global class NFM002WebService { |
| | | // Integer batchsize = 200; èéããå¿
è¦ããªãã¨æãã¾ãã |
| | | global class Agent { |
| | | webservice NFMUtil.Monitoring Monitoring; |
| | | webservice NFM002WebService.CustomerGeneralData[] CustomerGeneralData; |
| | | } |
| | | global class CustomerGeneralData { |
| | | webservice String AgentCode; |
| | | webservice String AgentName; |
| | | webservice String Telephone; |
| | | webservice String Fax; |
| | | webservice String PostalCode; |
| | | webservice String Address; |
| | | webservice String RegionCode; // åä¿¡ããªã |
| | | webservice String VATRegistrationNumber; |
| | | webservice String VATRegistrationNOvalidTo; |
| | | webservice String MedicalProductionSalesLicenseNO; |
| | | webservice String MedicalProductionSalesLicenseNOvalidTo; |
| | | webservice String BusinessLicenseNO; |
| | | webservice String BusinessLicenseNOvalidTo; |
| | | webservice String ValidFrom; |
| | | webservice String ValidTo; |
| | | webservice String PurposeOfAdvice; |
| | | webservice String AgentCategory; |
| | | } |
| | | |
| | | // éåæãè¦ãããã常ã«return void |
| | | webservice static void NFM002(NFM002WebService.Agent Agent) { |
| | | if (Agent == null) { |
| | | return; |
| | | } |
| | | NFMUtil.Monitoring Monitoring = Agent.Monitoring; |
| | | if (Monitoring == null) { |
| | | return; |
| | | } |
| | | |
| | | BatchIF_Log__c rowData = NFMUtil.saveRowData(Monitoring, 'NFM002', Agent.CustomerGeneralData); |
| | | if (String.isBlank(rowData.Log__c) == false) executefuture(rowData.Id); |
| | | } |
| | | |
| | | @future |
| | | global static void executefuture(String rowData_Id) { |
| | | execute(rowData_Id); |
| | | } |
| | | global static void execute(String rowData_Id) { |
| | | Integer batch_retry_max_cnt = Integer.valueOf(System.Label.batch_retry_max_cnt); |
| | | BatchIF_Log__c rowData = [Select Id, Name, Log__c, ErrorLog__c, Log2__c, Log3__c, Log4__c, Log5__c, Log6__c, Log7__c, Log8__c, Log9__c, Log10__c, Log11__c, Log12__c, MessageGroupNumber__c,retry_cnt__c from BatchIF_Log__c where RowDataFlg__c = true and Id = :rowData_Id]; |
| | | String logstr = rowData.MessageGroupNumber__c + ' start\n'; |
| | | BatchIF_Log__c iflog = new BatchIF_Log__c(); |
| | | iflog.Type__c = 'NFM002'; |
| | | iflog.MessageGroupNumber__c = rowData.MessageGroupNumber__c; |
| | | iflog.Log__c = logstr; |
| | | iflog.ErrorLog__c = ''; |
| | | insert iflog; |
| | | |
| | | String rowDataStr = NFMUtil.getRowDataStr(rowData); |
| | | List<CustomerGeneralData> customerGeneralDataList = (List<CustomerGeneralData>) JSON.deserialize(rowDataStr, List<CustomerGeneralData>.class); |
| | | if (customerGeneralDataList == null || customerGeneralDataList.size() == 0) { |
| | | return; |
| | | } |
| | | |
| | | List<RecordType> rects = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売åº']; |
| | | if (rects.size() == 0) { |
| | | return; |
| | | } |
| | | |
| | | // BatchIF転é表 ãããã³ã¼ã夿ã®Mapã使 |
| | | Map<String, String> transferMap = new Map<String, String>(); |
| | | List<BatchIF_Transfer__c> transferList = [select Table__c, |
| | | Column__c, |
| | | External_value__c, |
| | | Internal_value__c |
| | | from BatchIF_Transfer__c |
| | | where Dropped_Flag__c = false |
| | | and Table__c = 'Account']; |
| | | for (BatchIF_Transfer__c t : transferList) { |
| | | transferMap.put(t.Column__c + t.External_value__c, t.Internal_value__c); |
| | | } |
| | | |
| | | Savepoint sp = Database.setSavepoint(); |
| | | try { |
| | | // æ´æ°å¯¾å¿é
åãã»ãã |
| | | List<Account> accList = new List<Account>(); |
| | | List<String> agentCodeList = new List<String>(); |
| | | Map<String, Account> accUpdateMap = new Map<String, Account>(); |
| | | List<Account> updateAccList; |
| | | Map<String,Account> updateAccMap = new Map<String,Account>(); |
| | | for (NFM002WebService.CustomerGeneralData CustomerGeneralData : customerGeneralDataList) { |
| | | if (CustomerGeneralData.AgentCode == null || CustomerGeneralData.AgentCode == '') { |
| | | continue; |
| | | } |
| | | agentCodeList.add(CustomerGeneralData.AgentCode); |
| | | } |
| | | |
| | | updateAccList = [select Id , Name ,AgentCode_Ext__c from Account where AgentCode_Ext__c In :agentCodeList]; |
| | | |
| | | for(Account acc: updateAccList){ |
| | | updateAccMap.put(acc.AgentCode_Ext__c, acc); |
| | | } |
| | | |
| | | for (NFM002WebService.CustomerGeneralData CustomerGeneralData : customerGeneralDataList) { |
| | | if (CustomerGeneralData.AgentCode == null || CustomerGeneralData.AgentCode == '') { |
| | | // å¿
é é
ç®ããªãå ´åãå¦çã¨é£ã°ã |
| | | iflog.ErrorLog__c += 'AgentCode is required\n'; |
| | | continue; |
| | | } |
| | | |
| | | // é
ç®è»¢éã®ã»ãã |
| | | Account acc = new Account(); |
| | | acc.AgentCode_Ext__c = CustomerGeneralData.AgentCode; |
| | | if (updateAccMap.get(acc.AgentCode_Ext__c) == null) { |
| | | accList.add(acc); |
| | | updateAccMap.put(acc.AgentCode_Ext__c, acc); |
| | | logstr += CustomerGeneralData.AgentCode + ' '; |
| | | } else { |
| | | acc = updateAccMap.get(acc.AgentCode_Ext__c); |
| | | if(updateAccMap.get(acc.AgentCode_Ext__c).Name != CustomerGeneralData.AgentName){ |
| | | //*************************Update 20180903 CHAN-B44AZ6 xinhonglu Start***************************// |
| | | acc.Sap2sfdcDealers_ModifycationLogo__c = '1'; |
| | | //*************************Update 20180903 CHAN-B44AZ6 xinhonglu End***************************// |
| | | } |
| | | accList.add(acc); |
| | | } |
| | | |
| | | acc.RecordTypeId = rects[0].Id; |
| | | if (CustomerGeneralData.PurposeOfAdvice == '1') { |
| | | // deleteã®å ´åãAgentNameå
é ã«ããå é¤:ããã¤ãã |
| | | acc.Delete_Flag__c = True; |
| | | //*************************Update 20180903 CHAN-B44AZ6 xinhonglu Start***************************// |
| | | acc.Name = 'å é¤:' + CustomerGeneralData.AgentName; |
| | | //*************************Update 20180903 CHAN-B44AZ6 xinhonglu End***************************// |
| | | acc.Sap2sfdcDealers_ModifycationLogo__c = '1'; |
| | | } else { |
| | | acc.Delete_Flag__c = False; |
| | | acc.Name = CustomerGeneralData.AgentName; |
| | | |
| | | } |
| | | acc.Phone = CustomerGeneralData.Telephone; |
| | | acc.Fax = CustomerGeneralData.Fax; |
| | | acc.Postal_Code__c = CustomerGeneralData.PostalCode; |
| | | acc.Address_Together__c = CustomerGeneralData.Address; |
| | | acc.Tax_Practice_No__c = CustomerGeneralData.VATRegistrationNumber; |
| | | acc.Tax_Practice_Expiration_Date__c = NFMUtil.parseStr2Date(CustomerGeneralData.VATRegistrationNOvalidTo); |
| | | //*************************Update 20160802 HHOA-ACEE9N è¶å¾³è³ Start*************************// |
| | | //*************************Update 20160817 HHOA-ACEE9N_SecondMatch è¶å¾³è³ Start*************************// |
| | | //acc.Business_Authorization_No__c = CustomerGeneralData.MedicalProductionSalesLicenseNO; |
| | | acc.Medical_Equipment_Num__c = CustomerGeneralData.MedicalProductionSalesLicenseNO; |
| | | acc.Medical_Equipment_Expiration_Date__c = NFMUtil.parseStr2Date(CustomerGeneralData.MedicalProductionSalesLicenseNOvalidTo); |
| | | //acc.Medical_Equipment_Num__c = CustomerGeneralData.BusinessLicenseNO; |
| | | acc.Business_Authorization_No__c = CustomerGeneralData.BusinessLicenseNO; |
| | | acc.Business_Paper_Expiration_Date__c = NFMUtil.parseStr2Date(CustomerGeneralData.BusinessLicenseNOvalidTo); |
| | | //*************************Update 20160817 HHOA-ACEE9N_SecondMatch è¶å¾³è³ End***************************// |
| | | //*************************Update 20160802 HHOA-ACEE9N è¶å¾³è³ End***************************// |
| | | acc.Registration_Day__c = NFMUtil.parseStr2Date(CustomerGeneralData.ValidFrom, false); |
| | | acc.Ban_On_Use_Date__c = NFMUtil.parseStr2Date(CustomerGeneralData.ValidTo); |
| | | acc.Sales_Shop_Class__c = NFMUtil.getMapValue(transferMap, 'Sales_Shop_Class__c', CustomerGeneralData.AgentCategory, iflog); |
| | | } |
| | | System.debug('accList' + accList); |
| | | if (accList.size() > 0) { |
| | | //*************************Update 20180903 CHAN-B44AZ6 xinhonglu Start***************************// |
| | | StaticParameter.EscapeNFM001AgencyContractTrigger2 = true; |
| | | //*************************Update 20180903 CHAN-B44AZ6 xinhonglu End***************************// |
| | | upsert accList AgentCode_Ext__c; |
| | | } |
| | | logstr += '\nend'; |
| | | rowData.retry_cnt__c=0; |
| | | } catch(Exception ex) { |
| | | // ã¨ã©ã¼ãçºçããå ´å |
| | | Database.rollback(sp); |
| | | System.debug(Logginglevel.ERROR, 'NFM002_' + rowData.MessageGroupNumber__c + ':' + ex.getMessage()); |
| | | System.debug(Logginglevel.ERROR, 'NFM002_' + rowData.MessageGroupNumber__c + ':' + ex.getStackTraceString()); |
| | | logstr += '\n' + ex.getMessage(); |
| | | iflog.ErrorLog__c = ex.getMessage() + '\n' + ex.getStackTraceString() + '\n' + iflog.ErrorLog__c; |
| | | if (rowData.retry_cnt__c == null) rowData.retry_cnt__c = 0; |
| | | if (rowData.retry_cnt__c < batch_retry_max_cnt){ |
| | | rowData.retry_cnt__c++; |
| | | LogAutoSendSchedule.assignOneMinute(); |
| | | } |
| | | if (rowData.retry_cnt__c >= batch_retry_max_cnt){ |
| | | rowData.ErrorLog__c = ex.getMessage() + '\n' + ex.getStackTraceString() + '\n' + rowData.ErrorLog__c+'é误次æ°å·²ç»è¶
è¿èªå¨æ¶ä¿¡è®¾å®çæå¤§æ¬¡æ°ï¼è¯·æå¨æ¶ä¿¡'; |
| | | } |
| | | } |
| | | update rowData; |
| | | iflog.Log__c = logstr; |
| | | if (iflog.Log__c.length() > 131072) { |
| | | iflog.Log__c = iflog.Log__c.subString(0, 131065) + ' ...'; |
| | | } |
| | | if (iflog.ErrorLog__c.length() > 32768) { |
| | | iflog.ErrorLog__c = iflog.ErrorLog__c.subString(0, 32760) + ' ...'; |
| | | } |
| | | update iflog; |
| | | } |
| | | } |
| New file |
| | |
| | | @isTest |
| | | private class NFM002WebServiceTest { |
| | | |
| | | |
| | | static testMethod void resend_test() { |
| | | // ãã¹ããã¼ã¿ |
| | | List<BatchIF_Transfer__c> transfers = new List<BatchIF_Transfer__c>(); |
| | | BatchIF_Transfer__c transfer = new BatchIF_Transfer__c(); |
| | | transfer.Table__c = 'Account'; |
| | | transfer.Column__c = 'Sales_Shop_Class__c'; |
| | | transfer.External_Value__c = '02'; |
| | | transfer.Internal_Value__c = '02Internal'; |
| | | transfers.add(transfer); |
| | | transfer = new BatchIF_Transfer__c(); |
| | | transfer.Table__c = 'Account'; |
| | | transfer.Column__c = 'Sales_Shop_Class__c'; |
| | | transfer.External_Value__c = '03'; |
| | | transfer.Internal_Value__c = '03Internal'; |
| | | transfers.add(transfer); |
| | | insert transfers; |
| | | |
| | | NFM002WebService.Agent Agent = new NFM002WebService.Agent(); |
| | | NFM002WebService.CustomerGeneralData CustomerGeneralData = new NFM002WebService.CustomerGeneralData(); |
| | | Agent.CustomerGeneralData = new NFM002WebService.CustomerGeneralData[] { CustomerGeneralData }; |
| | | |
| | | // Monitoringã®è¨å® |
| | | Datetime nowDT = Datetime.now(); |
| | | String nowStr = nowDT.format('yyyyMMddHHmm'); |
| | | Agent.Monitoring = new NFMUtil.Monitoring(); |
| | | Agent.Monitoring.MessageGroupNumber = nowStr + '21'; |
| | | |
| | | // update |
| | | CustomerGeneralData.AgentCode = 'NFM002Tst1'; |
| | | CustomerGeneralData.AgentName = 'AgentNamE'; |
| | | CustomerGeneralData.Telephone = '03-12345679'; |
| | | CustomerGeneralData.Fax = '03-87654322'; |
| | | CustomerGeneralData.PostalCode = '123-68'; |
| | | CustomerGeneralData.Address = '䏿µ·å¸åå¸åº1-3-6'; |
| | | CustomerGeneralData.RegionCode = 'Nil'; |
| | | CustomerGeneralData.VATRegistrationNumber = '11010667820981Y'; |
| | | CustomerGeneralData.VATRegistrationNOvalidTo = '20140331'; |
| | | CustomerGeneralData.MedicalProductionSalesLicenseNO = '京000001'; |
| | | CustomerGeneralData.MedicalProductionSalesLicenseNOvalidTo = '20131231'; |
| | | CustomerGeneralData.BusinessLicenseNO = '6101012411215-B'; |
| | | CustomerGeneralData.BusinessLicenseNOvalidTo = '20131130'; |
| | | CustomerGeneralData.ValidFrom = '20020101'; |
| | | CustomerGeneralData.ValidTo = String.valueOf(Date.today().addDays(2)); |
| | | CustomerGeneralData.PurposeOfAdvice = '3'; |
| | | CustomerGeneralData.AgentCategory = '03'; |
| | | System.Test.startTest(); |
| | | NFM002WebService.NFM002(Agent); |
| | | System.Test.stopTest(); |
| | | Account[] rslts = [select Management_Code__c, Delete_Flag__c, |
| | | Name, |
| | | Phone, |
| | | Fax, |
| | | Postal_Code__c, |
| | | Address_Together__c, |
| | | Tax_Practice_No__c, |
| | | Tax_Practice_Expiration_Date__c, |
| | | Business_Authorization_No__c, |
| | | Business_Paper_Expiration_Date__c, |
| | | Medical_Equipment_Num__c, |
| | | Medical_Equipment_Expiration_Date__c, |
| | | Registration_Day__c, |
| | | Ban_On_Use_Date__c, |
| | | Sales_Shop_Class__c |
| | | from Account where Management_Code__c = :CustomerGeneralData.AgentCode]; |
| | | System.assertEquals(1, rslts.size()); |
| | | if (rslts.size() == 1) { |
| | | System.assertEquals('NFM002Tst1', rslts[0].Management_Code__c); |
| | | System.assertEquals('AgentNamE', rslts[0].Name); |
| | | System.assertEquals(False, rslts[0].Delete_Flag__c); |
| | | } |
| | | |
| | | // retry_cnt__c ãã¯ãªã¢ãããã㨠|
| | | List<BatchIF_Log__c> rowbl = [Select Id, Log__c, ErrorLog__c from BatchIF_Log__c where RowDataFlg__c = true and Type__c = 'NFM002' order by CreatedDate desc]; |
| | | System.assertEquals(1, rowbl.size()); |
| | | rowbl[0].retry_cnt__c = 1; |
| | | update rowbl; |
| | | NFM002WebService.execute(rowbl[0].id); |
| | | List<BatchIF_Log__c> 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); |
| | | |
| | | |
| | | } |
| | | |
| | | static testMethod void testNFM002_void() { |
| | | // ãã¹ããã¼ã¿ |
| | | List<BatchIF_Transfer__c> transfers = new List<BatchIF_Transfer__c>(); |
| | | BatchIF_Transfer__c transfer = new BatchIF_Transfer__c(); |
| | | transfer.Table__c = 'Account'; |
| | | transfer.Column__c = 'Sales_Shop_Class__c'; |
| | | transfer.External_Value__c = '02'; |
| | | transfer.Internal_Value__c = '02Internal'; |
| | | transfers.add(transfer); |
| | | transfer = new BatchIF_Transfer__c(); |
| | | transfer.Table__c = 'Account'; |
| | | transfer.Column__c = 'Sales_Shop_Class__c'; |
| | | transfer.External_Value__c = '03'; |
| | | transfer.Internal_Value__c = '03Internal'; |
| | | transfers.add(transfer); |
| | | insert transfers; |
| | | // null |
| | | NFM002WebService.NFM002(null); |
| | | |
| | | NFM002WebService.CustomerGeneralData CustomerGeneralData = new NFM002WebService.CustomerGeneralData(); |
| | | NFM002WebService.Agent Agent = new NFM002WebService.Agent(); |
| | | Agent.CustomerGeneralData = new NFM002WebService.CustomerGeneralData[] { CustomerGeneralData }; |
| | | // Monitoringãã»ããããªã |
| | | NFM002WebService.NFM002(Agent); |
| | | |
| | | Datetime nowDT = Datetime.now(); |
| | | String nowStr = nowDT.format('yyyyMMddHHmm'); |
| | | Agent.Monitoring = new NFMUtil.Monitoring(); |
| | | Agent.Monitoring.MessageGroupNumber = nowStr + '01'; |
| | | // å¿
é é
ç®ãã»ããããªã |
| | | NFM002WebService.NFM002(Agent); |
| | | |
| | | Account[] rslts = [select Id from Account]; |
| | | System.assertEquals(0, rslts.size()); |
| | | } |
| | | |
| | | static testMethod void testNFM002_insert() { |
| | | |
| | | // ãã¹ããã¼ã¿ |
| | | List<BatchIF_Transfer__c> transfers = new List<BatchIF_Transfer__c>(); |
| | | BatchIF_Transfer__c transfer = new BatchIF_Transfer__c(); |
| | | transfer.Table__c = 'Account'; |
| | | transfer.Column__c = 'Sales_Shop_Class__c'; |
| | | transfer.External_Value__c = '02'; |
| | | transfer.Internal_Value__c = '02Internal'; |
| | | transfers.add(transfer); |
| | | transfer = new BatchIF_Transfer__c(); |
| | | transfer.Table__c = 'Account'; |
| | | transfer.Column__c = 'Sales_Shop_Class__c'; |
| | | transfer.External_Value__c = '03'; |
| | | transfer.Internal_Value__c = '03Internal'; |
| | | transfers.add(transfer); |
| | | insert transfers; |
| | | NFM002WebService.CustomerGeneralData CustomerGeneralData = new NFM002WebService.CustomerGeneralData(); |
| | | NFM002WebService.CustomerGeneralData CustomerGeneralData2 = new NFM002WebService.CustomerGeneralData(); |
| | | NFM002WebService.Agent Agent = new NFM002WebService.Agent(); |
| | | Agent.CustomerGeneralData = new NFM002WebService.CustomerGeneralData[] { CustomerGeneralData, CustomerGeneralData2 }; |
| | | |
| | | // Monitoringã®è¨å® |
| | | Datetime nowDT = Datetime.now(); |
| | | String nowStr = nowDT.format('yyyyMMddHHmm'); |
| | | Agent.Monitoring = new NFMUtil.Monitoring(); |
| | | Agent.Monitoring.MessageGroupNumber = nowStr + '11'; |
| | | |
| | | // insert |
| | | CustomerGeneralData.AgentCode = 'NFM002Tst1'; |
| | | CustomerGeneralData.AgentName = 'AgentName'; |
| | | CustomerGeneralData.Telephone = '03-12345678'; |
| | | CustomerGeneralData.Fax = '03-87654321'; |
| | | CustomerGeneralData.PostalCode = '123-67'; |
| | | CustomerGeneralData.Address = '䏿µ·å¸åå¸åº1-3-5'; |
| | | CustomerGeneralData.RegionCode = 'Nil'; |
| | | CustomerGeneralData.VATRegistrationNumber = '11010667820981X'; |
| | | CustomerGeneralData.VATRegistrationNOvalidTo = '20130331'; |
| | | CustomerGeneralData.MedicalProductionSalesLicenseNO = '京000000'; |
| | | CustomerGeneralData.MedicalProductionSalesLicenseNOvalidTo = '20121231'; |
| | | CustomerGeneralData.BusinessLicenseNO = '6101012411215-A'; |
| | | CustomerGeneralData.BusinessLicenseNOvalidTo = '20121130'; |
| | | CustomerGeneralData.ValidFrom = '20010101'; |
| | | CustomerGeneralData.ValidTo = String.valueOf(Date.today().addDays(2)); |
| | | CustomerGeneralData.PurposeOfAdvice = '2'; |
| | | CustomerGeneralData.AgentCategory = '02'; |
| | | |
| | | // insert2 |
| | | CustomerGeneralData2.AgentCode = 'NFM002Tst2'; |
| | | CustomerGeneralData2.AgentName = 'AgentName2'; |
| | | CustomerGeneralData2.Telephone = '23-12345678'; |
| | | CustomerGeneralData2.Fax = '23-87654321'; |
| | | CustomerGeneralData2.PostalCode = '223-67'; |
| | | CustomerGeneralData2.Address = '䏿µ·å¸åå¸åº2--3-5'; |
| | | CustomerGeneralData2.RegionCode = 'Nil'; |
| | | CustomerGeneralData2.VATRegistrationNumber = '21010667820981X'; |
| | | CustomerGeneralData2.VATRegistrationNOvalidTo = '20130332'; |
| | | CustomerGeneralData2.MedicalProductionSalesLicenseNO = '京000002'; |
| | | CustomerGeneralData2.MedicalProductionSalesLicenseNOvalidTo = '20121232'; |
| | | CustomerGeneralData2.BusinessLicenseNO = '6101012411215-B'; |
| | | CustomerGeneralData2.BusinessLicenseNOvalidTo = '20121132'; |
| | | CustomerGeneralData2.ValidFrom = '20010102'; |
| | | CustomerGeneralData2.ValidTo = String.valueOf(Date.today().addDays(2)); |
| | | CustomerGeneralData2.PurposeOfAdvice = '2'; |
| | | CustomerGeneralData2.AgentCategory = '02'; |
| | | System.Test.startTest(); |
| | | NFM002WebService.NFM002(Agent); |
| | | System.Test.stopTest(); |
| | | Account[] rslts = [select Management_Code__c, Delete_Flag__c, |
| | | Name, |
| | | Phone, |
| | | Fax, |
| | | Postal_Code__c, |
| | | Address_Together__c, |
| | | Tax_Practice_No__c, |
| | | Tax_Practice_Expiration_Date__c, |
| | | Business_Authorization_No__c, |
| | | Business_Paper_Expiration_Date__c, |
| | | Medical_Equipment_Num__c, |
| | | Medical_Equipment_Expiration_Date__c, |
| | | Registration_Day__c, |
| | | Ban_On_Use_Date__c, |
| | | Sales_Shop_Class__c |
| | | from Account where Management_Code__c = :CustomerGeneralData.AgentCode]; |
| | | System.assertEquals(1, rslts.size()); |
| | | if (rslts.size() == 1) { |
| | | System.assertEquals('NFM002Tst1', rslts[0].Management_Code__c); |
| | | System.assertEquals('AgentName', rslts[0].Name); |
| | | System.assertEquals(False, rslts[0].Delete_Flag__c); |
| | | // System.assertEquals('03-12345678', rslts[0].Phone); |
| | | // System.assertEquals('03-87654321', rslts[0].Fax); |
| | | // System.assertEquals(CustomerGeneralData.PostalCode, rslts[0].Postal_Code__c); |
| | | // System.assertEquals('䏿µ·å¸åå¸åº1-3-5', rslts[0].Address_Together__c); |
| | | // System.assertEquals('11010667820981X', rslts[0].Tax_Practice_No__c); |
| | | // System.assertEquals(date.newinstance(2013, 3, 31), rslts[0].Tax_Practice_Expiration_Date__c); |
| | | // System.assertEquals('京000000', rslts[0].Business_Authorization_No__c); |
| | | // System.assertEquals(date.newinstance(2012, 12, 31), rslts[0].Business_Paper_Expiration_Date__c); |
| | | // System.assertEquals('6101012411215-A', rslts[0].Medical_Equipment_Num__c); |
| | | // System.assertEquals(date.newinstance(2012, 11, 30), rslts[0].Medical_Equipment_Expiration_Date__c); |
| | | // System.assertEquals(date.newinstance(2001, 1, 1), rslts[0].Registration_Day__c); |
| | | // System.assertEquals(date.newinstance(2011, 12, 31), rslts[0].Ban_On_Use_Date__c); |
| | | // System.assertEquals('02Internal', rslts[0].Sales_Shop_Class__c); |
| | | } |
| | | NFM002WebService.NFM002(Agent); |
| | | rslts = [select Management_Code__c, |
| | | Name, |
| | | Phone, |
| | | Fax, |
| | | Postal_Code__c, |
| | | Address_Together__c, |
| | | Tax_Practice_No__c, |
| | | Tax_Practice_Expiration_Date__c, |
| | | Business_Authorization_No__c, |
| | | Business_Paper_Expiration_Date__c, |
| | | Medical_Equipment_Num__c, |
| | | Medical_Equipment_Expiration_Date__c, |
| | | Registration_Day__c, |
| | | Ban_On_Use_Date__c, |
| | | Sales_Shop_Class__c |
| | | from Account where Management_Code__c = :CustomerGeneralData2.AgentCode]; |
| | | System.assertEquals(1, rslts.size()); |
| | | } |
| | | |
| | | static testMethod void testNFM002_update() { |
| | | // ãã¹ããã¼ã¿ |
| | | List<BatchIF_Transfer__c> transfers = new List<BatchIF_Transfer__c>(); |
| | | BatchIF_Transfer__c transfer = new BatchIF_Transfer__c(); |
| | | transfer.Table__c = 'Account'; |
| | | transfer.Column__c = 'Sales_Shop_Class__c'; |
| | | transfer.External_Value__c = '02'; |
| | | transfer.Internal_Value__c = '02Internal'; |
| | | transfers.add(transfer); |
| | | transfer = new BatchIF_Transfer__c(); |
| | | transfer.Table__c = 'Account'; |
| | | transfer.Column__c = 'Sales_Shop_Class__c'; |
| | | transfer.External_Value__c = '03'; |
| | | transfer.Internal_Value__c = '03Internal'; |
| | | transfers.add(transfer); |
| | | insert transfers; |
| | | |
| | | NFM002WebService.Agent Agent = new NFM002WebService.Agent(); |
| | | NFM002WebService.CustomerGeneralData CustomerGeneralData = new NFM002WebService.CustomerGeneralData(); |
| | | Agent.CustomerGeneralData = new NFM002WebService.CustomerGeneralData[] { CustomerGeneralData }; |
| | | |
| | | // Monitoringã®è¨å® |
| | | Datetime nowDT = Datetime.now(); |
| | | String nowStr = nowDT.format('yyyyMMddHHmm'); |
| | | Agent.Monitoring = new NFMUtil.Monitoring(); |
| | | Agent.Monitoring.MessageGroupNumber = nowStr + '21'; |
| | | |
| | | // update |
| | | CustomerGeneralData.AgentCode = 'NFM002Tst1'; |
| | | CustomerGeneralData.AgentName = 'AgentNamE'; |
| | | CustomerGeneralData.Telephone = '03-12345679'; |
| | | CustomerGeneralData.Fax = '03-87654322'; |
| | | CustomerGeneralData.PostalCode = '123-68'; |
| | | CustomerGeneralData.Address = '䏿µ·å¸åå¸åº1-3-6'; |
| | | CustomerGeneralData.RegionCode = 'Nil'; |
| | | CustomerGeneralData.VATRegistrationNumber = '11010667820981Y'; |
| | | CustomerGeneralData.VATRegistrationNOvalidTo = '20140331'; |
| | | CustomerGeneralData.MedicalProductionSalesLicenseNO = '京000001'; |
| | | CustomerGeneralData.MedicalProductionSalesLicenseNOvalidTo = '20131231'; |
| | | CustomerGeneralData.BusinessLicenseNO = '6101012411215-B'; |
| | | CustomerGeneralData.BusinessLicenseNOvalidTo = '20131130'; |
| | | CustomerGeneralData.ValidFrom = '20020101'; |
| | | CustomerGeneralData.ValidTo = String.valueOf(Date.today().addDays(2)); |
| | | CustomerGeneralData.PurposeOfAdvice = '3'; |
| | | CustomerGeneralData.AgentCategory = '03'; |
| | | |
| | | System.Test.startTest(); |
| | | NFM002WebService.NFM002(Agent); |
| | | System.Test.stopTest(); |
| | | Account[] rslts = [select Management_Code__c, Delete_Flag__c, |
| | | Name, |
| | | Phone, |
| | | Fax, |
| | | Postal_Code__c, |
| | | Address_Together__c, |
| | | Tax_Practice_No__c, |
| | | Tax_Practice_Expiration_Date__c, |
| | | Business_Authorization_No__c, |
| | | Business_Paper_Expiration_Date__c, |
| | | Medical_Equipment_Num__c, |
| | | Medical_Equipment_Expiration_Date__c, |
| | | Registration_Day__c, |
| | | Ban_On_Use_Date__c, |
| | | Sales_Shop_Class__c |
| | | from Account where Management_Code__c = :CustomerGeneralData.AgentCode]; |
| | | System.assertEquals(1, rslts.size()); |
| | | if (rslts.size() == 1) { |
| | | System.assertEquals('NFM002Tst1', rslts[0].Management_Code__c); |
| | | System.assertEquals('AgentNamE', rslts[0].Name); |
| | | System.assertEquals(False, rslts[0].Delete_Flag__c); |
| | | } |
| | | |
| | | } |
| | | |
| | | static testMethod void testNFM002_delete() { |
| | | // ãã¹ããã¼ã¿ |
| | | List<BatchIF_Transfer__c> transfers = new List<BatchIF_Transfer__c>(); |
| | | BatchIF_Transfer__c transfer = new BatchIF_Transfer__c(); |
| | | transfer.Table__c = 'Account'; |
| | | transfer.Column__c = 'Sales_Shop_Class__c'; |
| | | transfer.External_Value__c = '02'; |
| | | transfer.Internal_Value__c = '02Internal'; |
| | | transfers.add(transfer); |
| | | transfer = new BatchIF_Transfer__c(); |
| | | transfer.Table__c = 'Account'; |
| | | transfer.Column__c = 'Sales_Shop_Class__c'; |
| | | transfer.External_Value__c = '03'; |
| | | transfer.Internal_Value__c = '03Internal'; |
| | | transfers.add(transfer); |
| | | insert transfers; |
| | | NFM002WebService.CustomerGeneralData CustomerGeneralData = new NFM002WebService.CustomerGeneralData(); |
| | | NFM002WebService.Agent Agent = new NFM002WebService.Agent(); |
| | | Agent.CustomerGeneralData = new NFM002WebService.CustomerGeneralData[] { CustomerGeneralData }; |
| | | |
| | | // Monitoringã®è¨å® |
| | | Datetime nowDT = Datetime.now(); |
| | | String nowStr = nowDT.format('yyyyMMddHHmm'); |
| | | Agent.Monitoring = new NFMUtil.Monitoring(); |
| | | Agent.Monitoring.MessageGroupNumber = nowStr + '31'; |
| | | |
| | | // delete |
| | | CustomerGeneralData.AgentCode = 'NFM002Tst1'; |
| | | CustomerGeneralData.AgentName = 'AgentNamF'; |
| | | CustomerGeneralData.Telephone = '03-12345670'; |
| | | CustomerGeneralData.Fax = '03-87654323'; |
| | | CustomerGeneralData.PostalCode = '123-69'; |
| | | CustomerGeneralData.Address = '䏿µ·å¸åå¸åº1-3-7'; |
| | | CustomerGeneralData.RegionCode = 'Nil'; |
| | | CustomerGeneralData.VATRegistrationNumber = '11010667820981Z'; |
| | | CustomerGeneralData.VATRegistrationNOvalidTo = '20120331'; |
| | | CustomerGeneralData.MedicalProductionSalesLicenseNO = '京000002'; |
| | | CustomerGeneralData.MedicalProductionSalesLicenseNOvalidTo = '20111231'; |
| | | CustomerGeneralData.BusinessLicenseNO = '6101012411215-C'; |
| | | CustomerGeneralData.BusinessLicenseNOvalidTo = '20111130'; |
| | | CustomerGeneralData.ValidFrom = '20000101'; |
| | | CustomerGeneralData.ValidTo = String.valueOf(Date.today().addDays(2)); |
| | | CustomerGeneralData.PurposeOfAdvice = '1'; |
| | | CustomerGeneralData.AgentCategory = '04'; |
| | | |
| | | System.Test.startTest(); |
| | | NFM002WebService.NFM002(Agent); |
| | | System.Test.stopTest(); |
| | | Account[] rslts = [select Id, Name, Delete_Flag__c |
| | | from Account where Management_Code__c = :CustomerGeneralData.AgentCode]; |
| | | // deleteã¯ç¡è¦ |
| | | //System.assertEquals(0, rslts.size()); |
| | | //System.assertEquals('å é¤:AgentNamF', rslts[0].Name); |
| | | //System.assertEquals(True, rslts[0].Delete_Flag__c); |
| | | } |
| | | } |
| New file |
| | |
| | | // RowDataãæ®ããbatch execute ã«ãã¾ã |
| | | // 20170209ã®å¤æ´è¨é² |
| | | /* |
| | | ç©æå·å颿·»å äºä¾åºå代ç ï¼ç¨éå·éå¼ï¼å¯¹åºç¸å
³åå¼ï¼éªè¯å·¥ä½ |
| | | */ |
| | | global class NFM004WebService implements Database.Batchable<sObject> { |
| | | private final Id rowData_Id; |
| | | private final Integer startIndex; |
| | | private final Integer dataLength; |
| | | private final Integer executeSize = 2000; |
| | | |
| | | // Integer batchsize = 200; èéããå¿
è¦ããªãã¨æãã¾ãã |
| | | global class PurchasePrices { |
| | | webservice NFMUtil.Monitoring Monitoring; |
| | | webservice NFM004WebService.PurchasePrice[] PurchasePrice; |
| | | } |
| | | global class PurchasePrice { |
| | | webservice String PriceType; |
| | | webservice String SuppliersItemCode; |
| | | webservice Decimal PurchasePrice; |
| | | webservice String Currency_x; |
| | | webservice String ReportedDateTime; // åä¿¡ããªã |
| | | webservice String EffectiveDateFrom; |
| | | webservice String EffectiveDateTo; |
| | | webservice String PurposeOfAdvice; |
| | | } |
| | | |
| | | // éåæãè¦ãããã常ã«return void |
| | | webservice static void NFM004(NFM004WebService.PurchasePrices PurchasePrices) { |
| | | if (PurchasePrices == null) { |
| | | return; |
| | | } |
| | | NFMUtil.Monitoring Monitoring = PurchasePrices.Monitoring; |
| | | if (Monitoring == null) { |
| | | return; |
| | | } |
| | | BatchIF_Log__c rowData = NFMUtil.saveRowData(Monitoring, 'NFM004', PurchasePrices.PurchasePrice); |
| | | if (PurchasePrices.PurchasePrice == null || PurchasePrices.PurchasePrice.size() == 0) { |
| | | return; |
| | | } |
| | | NFM004WebService u = new NFM004WebService(rowData.Id, 0, PurchasePrices.PurchasePrice.size()); |
| | | Database.executeBatch(u, 1); |
| | | } |
| | | |
| | | /** |
| | | * batchã³ã³ã¹ã¿ã³ãããã©ã¡ã¼ã¿ãåãåã |
| | | */ |
| | | global NFM004WebService(Id rowData_Id, Integer startIndex, Integer dataLength) { |
| | | this.rowData_Id = rowData_Id; |
| | | this.startIndex = startIndex; |
| | | this.dataLength = dataLength; |
| | | } |
| | | global Database.Querylocator start(Database.BatchableContext BC) { |
| | | return Database.getQuerylocator([ |
| | | Select Id, Name, Log__c, ErrorLog__c, Log2__c, Log3__c, Log4__c, Log5__c, Log6__c, Log7__c, Log8__c, Log9__c, Log10__c, Log11__c, Log12__c, MessageGroupNumber__c from BatchIF_Log__c where RowDataFlg__c = true and Id = :rowData_Id |
| | | ]); |
| | | } |
| | | global void execute(Database.BatchableContext BC, List<BatchIF_Log__c> scope) { |
| | | BatchIF_Log__c rowData = scope[0]; |
| | | String logstr = rowData.MessageGroupNumber__c + ' ' + startIndex + '/' + dataLength + ' start\n'; |
| | | BatchIF_Log__c iflog = new BatchIF_Log__c(); |
| | | iflog.Type__c = 'NFM004'; |
| | | iflog.MessageGroupNumber__c = rowData.MessageGroupNumber__c; |
| | | iflog.Log__c = logstr; |
| | | iflog.ErrorLog__c = ''; |
| | | insert iflog; |
| | | String rowDataStr = NFMUtil.getRowDataStr(rowData); |
| | | List<PurchasePrice> purchasePriceList2 = (List<PurchasePrice>) JSON.deserialize(rowDataStr, List<PurchasePrice>.class); |
| | | if (purchasePriceList2 == null || purchasePriceList2.size() == 0) { |
| | | return; |
| | | } |
| | | List<PurchasePrice> purchasePriceList = new List<PurchasePrice>(); |
| | | List<String> productCodeList = new List<String>(); |
| | | for (Integer i = startIndex; (i < startIndex + executeSize && i < purchasePriceList2.size()); i++) { |
| | | purchasePriceList.add(purchasePriceList2.get(i)); |
| | | List<String> slicList = new List<String>(); |
| | | String Cache = purchasePriceList2.get(i).SuppliersItemCode; |
| | | if(String.isBlank(Cache) == false){ |
| | | slicList = Cache.split(','); |
| | | } |
| | | if(slicList.size()>0){ |
| | | String Slice = slicList[0]; |
| | | if (String.isBlank(Slice) == false) { |
| | | productCodeList.add(Slice); |
| | | } |
| | | }else{ |
| | | if (String.isBlank(purchasePriceList2.get(i).SuppliersItemCode) == false) { |
| | | productCodeList.add(purchasePriceList2.get(i).SuppliersItemCode); |
| | | } |
| | | } |
| | | |
| | | } |
| | | logstr += 'Execute Record:' + purchasePriceList.size() + '\n'; |
| | | |
| | | Savepoint sp = Database.setSavepoint(); |
| | | try { |
| | | // æ´æ°å¯¾å¿é
åã¨Mapãªã©ãã»ãã |
| | | Map<String, Product2> prdsMap = new Map<String, Product2>(); |
| | | for (Product2 prd : [select Id, ProductCode, ProductCode_Ext__c, |
| | | Intra_Trade_Cost_RMB_1__c, |
| | | Intra_Trade_Cost_RMB_Date1__c, |
| | | Intra_Trade_Cost_RMB_End_Date1__c, |
| | | Intra_Trade_Cost_RMB_2__c, |
| | | Intra_Trade_Cost_RMB_Date2__c, |
| | | Intra_Trade_Cost_RMB_End_Date2__c, |
| | | Foreign_Trade_Cost_US_1__c, |
| | | Foreign_Trade_Cost_US_Date1__c, |
| | | Foreign_Trade_Cost_US_End_Date1__c, |
| | | Foreign_Trade_Cost_US_2__c, |
| | | Foreign_Trade_Cost_US_Date2__c, |
| | | Foreign_Trade_Cost_US_End_Date2__c, |
| | | Intra_Trade_Cost_US__c, |
| | | Intra_Trade_Cost_US_Date__c, |
| | | Intra_Trade_Cost_US_End_Date__c, |
| | | Foreign_Trade_Cost_RMB__c, |
| | | Foreign_Trade_Cost_RMB_Date__c, |
| | | VenderNumber__c, |
| | | Foreign_Trade_Cost_RMB_End_Date__c |
| | | from Product2 |
| | | where ProductCode_Ext__c in :productCodeList] |
| | | //ç»è°æ¥ï¼MDMæ¥å£è¿æ¥çæ°æ®ï¼æå¨ç»å½åºåæ¯falseï¼æ²¡ææ´æ°ä¸ºtrueçç¨åºï¼æä»¥ï¼æå¨ç»éåºååºè¯¥æ¯ |
| | | //æå¨å¯¼å
¥æ°æ®æ¶ï¼æå·¥å¾ä¸çã |
| | | //ç»ç¡®è®¤ï¼ä¸»æ°æ®æ é夿æ¯å¦æå¨ç»å½åºåï¼è¯·å°SFDC䏿å¨ç»å½åºåç夿廿ã |
| | | //and Manual_Entry__c = False] |
| | | ) { |
| | | prdsMap.put(prd.ProductCode_Ext__c, prd); |
| | | } |
| | | |
| | | // æ´æ°å¯¾å¿é
åãã»ãã |
| | | Map<String, Product2> prdUpdateMap = new Map<String, Product2>(); |
| | | for (NFM004WebService.PurchasePrice PurchasePrice : purchasePriceList) { |
| | | // deleteã®å ´åãæå¹æéæ¥ã«åæ¥ãã»ãã |
| | | if (PurchasePrice.PurposeOfAdvice == '1') { |
| | | PurchasePrice.EffectiveDateTo = NFMUtil.formatDate2Str(Date.today().addDays(-1)); |
| | | } |
| | | |
| | | // å¿
é é
ç®ããªãå ´åãå¦çã¨é£ã°ã |
| | | if (PurchasePrice.SuppliersItemCode == null || PurchasePrice.SuppliersItemCode == '') { |
| | | iflog.ErrorLog__c += 'SuppliersItemCode is required\n'; |
| | | continue; |
| | | } |
| | | /************************************************************************************/ |
| | | // æ·»å é对ä¾åºåç夿 Start |
| | | /************************************************************************************/ |
| | | String SuppliersIC = ''; |
| | | String VenderNumber = ''; |
| | | List<String> SuppliersItemCodeList = new List<String>(); |
| | | if(String.isBlank(PurchasePrice.SuppliersItemCode) == false){ |
| | | SuppliersItemCodeList = PurchasePrice.SuppliersItemCode.split(','); |
| | | } |
| | | //SuppliersIC = PurchasePrice.SuppliersItemCode; |
| | | |
| | | if(SuppliersItemCodeList.size()==2){ |
| | | if(SuppliersItemCodeList[0]=='' || SuppliersItemCodeList[0]==null){ |
| | | iflog.ErrorLog__c += 'inputString is lack of SuppliersItemCode \n'; |
| | | }else{ |
| | | SuppliersIC = SuppliersItemCodeList[0]; |
| | | } |
| | | if(SuppliersItemCodeList[1]=='' || SuppliersItemCodeList[1]==null){ |
| | | iflog.ErrorLog__c += 'inputString is lack of VenderNumber \n'; |
| | | }else{ |
| | | VenderNumber = SuppliersItemCodeList[1]; |
| | | } |
| | | }else{ |
| | | SuppliersIC = PurchasePrice.SuppliersItemCode; |
| | | iflog.ErrorLog__c += 'Version is unCorrect \n'; |
| | | //continue; |
| | | } |
| | | /************************************************************************************/ |
| | | // æ·»å é对ä¾åºåç夿 END |
| | | /************************************************************************************/ |
| | | /************************************************************************************/ |
| | | // å°SuppliersItemCodeæ¿æ¢æSuppliersIC Start |
| | | /************************************************************************************/ |
| | | |
| | | if (PurchasePrice.PriceType == null || PurchasePrice.PriceType == '') { |
| | | iflog.ErrorLog__c += '[' + SuppliersIC + ']PriceType is required\n'; |
| | | continue; |
| | | } |
| | | if (PurchasePrice.PurchasePrice == null) { |
| | | iflog.ErrorLog__c += '[' + SuppliersIC + ']PurchasePrice is required\n'; |
| | | continue; |
| | | } |
| | | if (PurchasePrice.Currency_x == null || PurchasePrice.Currency_x == '') { |
| | | iflog.ErrorLog__c += '[' + SuppliersIC + ']Currency is required\n'; |
| | | continue; |
| | | } |
| | | if (PurchasePrice.EffectiveDateFrom == null || PurchasePrice.EffectiveDateFrom == '') { |
| | | iflog.ErrorLog__c += '[' + SuppliersIC + ']EffectiveDateFrom is required\n'; |
| | | continue; |
| | | } |
| | | if (PurchasePrice.EffectiveDateTo == null || PurchasePrice.EffectiveDateTo == '') { |
| | | iflog.ErrorLog__c += '[' + SuppliersIC + ']EffectiveDateTo is required\n'; |
| | | continue; |
| | | } |
| | | |
| | | Product2 prd = prdsMap.get(SuppliersIC); |
| | | if (prd == null) { |
| | | // æ´æ°å¯¾è±¡ååããªãå ´å |
| | | iflog.ErrorLog__c += 'Product[' + SuppliersIC + ']NotExist\n'; |
| | | continue; |
| | | } |
| | | |
| | | // é
ç®è»¢éã®ã»ãã |
| | | prd.ProductCode = SuppliersIC; |
| | | prd.VenderNumber__c = VenderNumber; |
| | | if (prdUpdateMap.get(prd.ProductCode) == null) { |
| | | prdUpdateMap.put(prd.ProductCode, prd); |
| | | logstr += SuppliersIC + ' '; |
| | | } else { |
| | | prd = prdUpdateMap.get(prd.ProductCode); |
| | | } |
| | | /************************************************************************************/ |
| | | // å°SuppliersItemCodeæ¿æ¢æSuppliersIC END |
| | | /************************************************************************************/ |
| | | Date dateFrom = NFMUtil.parseStr2Date(PurchasePrice.EffectiveDateFrom, false); |
| | | Date dateTo = NFMUtil.parseStr2Date(PurchasePrice.EffectiveDateTo, true); |
| | | if (PurchasePrice.PriceType == 'OCM-001' && PurchasePrice.Currency_x == 'RMB') { |
| | | if (prd.Intra_Trade_Cost_RMB_1__c == null || prd.Intra_Trade_Cost_RMB_End_Date1__c < Date.today() || prd.Intra_Trade_Cost_RMB_Date1__c == dateFrom) { |
| | | prd.Intra_Trade_Cost_RMB_1__c = PurchasePrice.PurchasePrice; |
| | | prd.Intra_Trade_Cost_RMB_Date1__c = dateFrom; |
| | | prd.Intra_Trade_Cost_RMB_End_Date1__c = dateTo; |
| | | } else if (prd.Intra_Trade_Cost_RMB_2__c == null || prd.Intra_Trade_Cost_RMB_End_Date2__c < Date.today() || prd.Intra_Trade_Cost_RMB_Date2__c == dateFrom) { |
| | | prd.Intra_Trade_Cost_RMB_2__c = PurchasePrice.PurchasePrice; |
| | | prd.Intra_Trade_Cost_RMB_Date2__c = dateFrom; |
| | | prd.Intra_Trade_Cost_RMB_End_Date2__c = dateTo; |
| | | } else if (prd.Intra_Trade_Cost_RMB_Date1__c < prd.Intra_Trade_Cost_RMB_Date2__c) { |
| | | prd.Intra_Trade_Cost_RMB_1__c = PurchasePrice.PurchasePrice; |
| | | prd.Intra_Trade_Cost_RMB_Date1__c = dateFrom; |
| | | prd.Intra_Trade_Cost_RMB_End_Date1__c = dateTo; |
| | | } else { |
| | | prd.Intra_Trade_Cost_RMB_2__c = PurchasePrice.PurchasePrice; |
| | | prd.Intra_Trade_Cost_RMB_Date2__c = dateFrom; |
| | | prd.Intra_Trade_Cost_RMB_End_Date2__c = dateTo; |
| | | } |
| | | } else if (PurchasePrice.PriceType == 'OHC-001' && PurchasePrice.Currency_x == 'USD') { |
| | | if (prd.Foreign_Trade_Cost_US_1__c == null || prd.Foreign_Trade_Cost_US_End_Date1__c < Date.today() || prd.Foreign_Trade_Cost_US_Date1__c == dateFrom) { |
| | | prd.Foreign_Trade_Cost_US_1__c = PurchasePrice.PurchasePrice; |
| | | prd.Foreign_Trade_Cost_US_Date1__c = dateFrom; |
| | | prd.Foreign_Trade_Cost_US_End_Date1__c = dateTo; |
| | | } else if (prd.Foreign_Trade_Cost_US_2__c == null || prd.Foreign_Trade_Cost_US_End_Date2__c < Date.today() || prd.Foreign_Trade_Cost_US_Date2__c == dateFrom) { |
| | | prd.Foreign_Trade_Cost_US_2__c = PurchasePrice.PurchasePrice; |
| | | prd.Foreign_Trade_Cost_US_Date2__c = dateFrom; |
| | | prd.Foreign_Trade_Cost_US_End_Date2__c = dateTo; |
| | | } else if (prd.Foreign_Trade_Cost_US_Date1__c < prd.Foreign_Trade_Cost_US_Date2__c) { |
| | | prd.Foreign_Trade_Cost_US_1__c = PurchasePrice.PurchasePrice; |
| | | prd.Foreign_Trade_Cost_US_Date1__c = dateFrom; |
| | | prd.Foreign_Trade_Cost_US_End_Date1__c = dateTo; |
| | | } else { |
| | | prd.Foreign_Trade_Cost_US_2__c = PurchasePrice.PurchasePrice; |
| | | prd.Foreign_Trade_Cost_US_Date2__c = dateFrom; |
| | | prd.Foreign_Trade_Cost_US_End_Date2__c = dateTo; |
| | | } |
| | | } else if (PurchasePrice.PriceType == 'OCM-001' && PurchasePrice.Currency_x == 'USD') { |
| | | prd.Intra_Trade_Cost_US__c = PurchasePrice.PurchasePrice; |
| | | prd.Intra_Trade_Cost_US_Date__c = dateFrom; |
| | | prd.Intra_Trade_Cost_US_End_Date__c = dateTo; |
| | | } else if (PurchasePrice.PriceType == 'OHC-001' && PurchasePrice.Currency_x == 'RMB') { |
| | | prd.Foreign_Trade_Cost_RMB__c = PurchasePrice.PurchasePrice; |
| | | prd.Foreign_Trade_Cost_RMB_Date__c = dateFrom; |
| | | prd.Foreign_Trade_Cost_RMB_End_Date__c = dateTo; |
| | | } |
| | | } |
| | | List<Product2> prdList = prdUpdateMap.values(); |
| | | if (prdList.size() > 0) { |
| | | StaticParameter.EscapeSyncProduct2Trigger = true; |
| | | update prdList; |
| | | } |
| | | logstr += '\nend'; |
| | | } catch(Exception ex) { |
| | | // ã¨ã©ã¼ãçºçããå ´å |
| | | Database.rollback(sp); |
| | | System.debug(Logginglevel.ERROR, 'NFM004_' + rowData.MessageGroupNumber__c + ':' + ex.getMessage()); |
| | | System.debug(Logginglevel.ERROR, 'NFM004_' + rowData.MessageGroupNumber__c + ':' + ex.getStackTraceString()); |
| | | logstr += '\n' + ex.getMessage(); |
| | | iflog.ErrorLog__c = ex.getMessage() + '\n' + ex.getStackTraceString() + '\n' + iflog.ErrorLog__c; |
| | | } |
| | | iflog.Log__c = logstr; |
| | | if (iflog.Log__c.length() > 131072) { |
| | | iflog.Log__c = iflog.Log__c.subString(0, 131065) + ' ...'; |
| | | } |
| | | if (iflog.ErrorLog__c.length() > 32768) { |
| | | iflog.ErrorLog__c = iflog.ErrorLog__c.subString(0, 32760) + ' ...'; |
| | | } |
| | | update iflog; |
| | | } |
| | | |
| | | global void finish(Database.BatchableContext BC) { |
| | | if (startIndex + executeSize < dataLength) { |
| | | NFM004WebService u = new NFM004WebService(rowData_Id, startIndex + executeSize, dataLength); |
| | | Database.executeBatch(u, 1); |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | @isTest |
| | | private class NFM004WebServiceTest { |
| | | |
| | | static Product2 testNFM004Init() { |
| | | // ãã¹ããã¼ã¿ |
| | | Product2 prd = new Product2(); |
| | | prd.ProductCode_Ext__c = 'testNFM004'; |
| | | prd.ProductCode = 'testNFM004'; |
| | | prd.Name = 'testNFM004'; |
| | | prd.Manual_Entry__c = false; |
| | | insert prd; |
| | | return prd; |
| | | } |
| | | |
| | | // ãã®ã¾ã¾return |
| | | @isTest |
| | | static void testNFM004_void() { |
| | | testNFM004Init(); |
| | | // null |
| | | NFM004WebService.NFM004(null); |
| | | |
| | | NFM004WebService.PurchasePrice PurchasePrice = new NFM004WebService.PurchasePrice(); |
| | | NFM004WebService.PurchasePrices PurchasePrices = new NFM004WebService.PurchasePrices(); |
| | | PurchasePrices.PurchasePrice = new NFM004WebService.PurchasePrice[] { PurchasePrice }; |
| | | // Monitoringãã»ããããªã |
| | | NFM004WebService.NFM004(PurchasePrices); |
| | | |
| | | Datetime nowDT = Datetime.now(); |
| | | String nowStr = nowDT.format('yyyyMMddHHmm'); |
| | | PurchasePrices.Monitoring = new NFMUtil.Monitoring(); |
| | | PurchasePrices.Monitoring.MessageGroupNumber = nowStr + '01'; |
| | | // å¿
é é
ç®ãã»ããããªã |
| | | NFM004WebService.NFM004(PurchasePrices); |
| | | |
| | | // ååã³ã¼ããåå¨ããªã |
| | | PurchasePrices.Monitoring.MessageGroupNumber = nowStr + '02'; |
| | | PurchasePrice.SuppliersItemCode = 'testNFM004X'; |
| | | System.Test.startTest(); |
| | | NFM004WebService.NFM004(PurchasePrices); |
| | | System.Test.stopTest(); |
| | | |
| | | Product2[] rslts = [select Id from Product2 where ProductCode_Ext__c = :PurchasePrice.SuppliersItemCode]; |
| | | System.assertEquals(0, rslts.size()); |
| | | } |
| | | |
| | | @isTest |
| | | static void testNFM004_update_RMB_1() { |
| | | testNFM004Init(); |
| | | |
| | | NFM004WebService.PurchasePrice PurchasePrice = new NFM004WebService.PurchasePrice(); |
| | | NFM004WebService.PurchasePrices PurchasePrices = new NFM004WebService.PurchasePrices(); |
| | | |
| | | // Monitoringã®è¨å® |
| | | Datetime nowDT = Datetime.now(); |
| | | String nowStr = nowDT.format('yyyyMMddHHmm'); |
| | | PurchasePrices.Monitoring = new NFMUtil.Monitoring(); |
| | | |
| | | // update RMB å
貿 1åç® |
| | | PurchasePrices.PurchasePrice = new NFM004WebService.PurchasePrice[] { PurchasePrice }; |
| | | PurchasePrices.Monitoring.MessageGroupNumber = nowStr + '11'; |
| | | PurchasePrice.SuppliersItemCode = 'testNFM004'; |
| | | PurchasePrice.PriceType = 'OCM-001'; |
| | | PurchasePrice.Currency_x = 'RMB'; |
| | | PurchasePrice.PurchasePrice = 1.12; |
| | | PurchasePrice.EffectiveDateFrom = '20121101'; |
| | | PurchasePrice.EffectiveDateTo = '29121103'; |
| | | PurchasePrice.PurposeOfAdvice = '3'; |
| | | |
| | | System.Test.startTest(); |
| | | NFM004WebService.NFM004(PurchasePrices); |
| | | System.Test.stopTest(); |
| | | |
| | | List<Product2> rslts = [select Id, ProductCode, ProductCode_Ext__c, |
| | | Intra_Trade_Cost_RMB_1__c, |
| | | Intra_Trade_Cost_RMB_Date1__c, |
| | | Intra_Trade_Cost_RMB_End_Date1__c, |
| | | Intra_Trade_Cost_RMB_2__c, |
| | | Intra_Trade_Cost_RMB_Date2__c, |
| | | Intra_Trade_Cost_RMB_End_Date2__c, |
| | | Foreign_Trade_Cost_US_1__c, |
| | | Foreign_Trade_Cost_US_Date1__c, |
| | | Foreign_Trade_Cost_US_End_Date1__c, |
| | | Foreign_Trade_Cost_US_2__c, |
| | | Foreign_Trade_Cost_US_Date2__c, |
| | | Foreign_Trade_Cost_US_End_Date2__c, |
| | | Intra_Trade_Cost_US__c, |
| | | Intra_Trade_Cost_US_Date__c, |
| | | Intra_Trade_Cost_US_End_Date__c, |
| | | Foreign_Trade_Cost_RMB__c, |
| | | Foreign_Trade_Cost_RMB_Date__c, |
| | | Foreign_Trade_Cost_RMB_End_Date__c |
| | | from Product2 |
| | | where ProductCode_Ext__c = :PurchasePrice.SuppliersItemCode]; |
| | | System.assertEquals(1, rslts.size()); |
| | | if (rslts.size() == 1) { |
| | | System.assertEquals('testNFM004', rslts[0].ProductCode); |
| | | System.assertEquals(1.12, rslts[0].Intra_Trade_Cost_RMB_1__c); |
| | | System.assertEquals(date.newinstance(2012, 11, 1), rslts[0].Intra_Trade_Cost_RMB_Date1__c); |
| | | System.assertEquals(date.newinstance(2912, 11, 3), rslts[0].Intra_Trade_Cost_RMB_End_Date1__c); |
| | | System.assertEquals(null, rslts[0].Intra_Trade_Cost_RMB_2__c); |
| | | System.assertEquals(null, rslts[0].Intra_Trade_Cost_RMB_Date2__c); |
| | | System.assertEquals(null, rslts[0].Intra_Trade_Cost_RMB_End_Date2__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_US_1__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_US_Date1__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_US_End_Date1__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_US_2__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_US_Date2__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_US_End_Date2__c); |
| | | System.assertEquals(null, rslts[0].Intra_Trade_Cost_US__c); |
| | | System.assertEquals(null, rslts[0].Intra_Trade_Cost_US_Date__c); |
| | | System.assertEquals(null, rslts[0].Intra_Trade_Cost_US_End_Date__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_RMB__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_RMB_Date__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_RMB_End_Date__c); |
| | | } |
| | | } |
| | | |
| | | @isTest |
| | | static void testNFM004_update_RMB_2() { |
| | | Product2 prd = testNFM004Init(); |
| | | prd.Intra_Trade_Cost_RMB_1__c = 1.12; |
| | | prd.Intra_Trade_Cost_RMB_Date1__c = date.newinstance(2012, 11, 1); |
| | | prd.Intra_Trade_Cost_RMB_End_Date1__c = date.newinstance(2912, 11, 3); |
| | | update prd; |
| | | |
| | | NFM004WebService.PurchasePrice PurchasePrice = new NFM004WebService.PurchasePrice(); |
| | | NFM004WebService.PurchasePrices PurchasePrices = new NFM004WebService.PurchasePrices(); |
| | | |
| | | // Monitoringã®è¨å® |
| | | Datetime nowDT = Datetime.now(); |
| | | String nowStr = nowDT.format('yyyyMMddHHmm'); |
| | | PurchasePrices.Monitoring = new NFMUtil.Monitoring(); |
| | | |
| | | // update RMB å
貿 2åç® |
| | | PurchasePrices.PurchasePrice = new NFM004WebService.PurchasePrice[] { PurchasePrice }; |
| | | PurchasePrices.Monitoring.MessageGroupNumber = nowStr + '12'; |
| | | PurchasePrice.SuppliersItemCode = 'testNFM004'; |
| | | PurchasePrice.PriceType = 'OCM-001'; |
| | | PurchasePrice.Currency_x = 'RMB'; |
| | | PurchasePrice.PurchasePrice = 1.34; |
| | | PurchasePrice.EffectiveDateFrom = '20121111'; |
| | | PurchasePrice.EffectiveDateTo = '29121113'; |
| | | PurchasePrice.PurposeOfAdvice = '3'; |
| | | |
| | | System.Test.startTest(); |
| | | NFM004WebService.NFM004(PurchasePrices); |
| | | System.Test.stopTest(); |
| | | |
| | | List<Product2> rslts = [select Id, ProductCode, ProductCode_Ext__c, |
| | | Intra_Trade_Cost_RMB_1__c, |
| | | Intra_Trade_Cost_RMB_Date1__c, |
| | | Intra_Trade_Cost_RMB_End_Date1__c, |
| | | Intra_Trade_Cost_RMB_2__c, |
| | | Intra_Trade_Cost_RMB_Date2__c, |
| | | Intra_Trade_Cost_RMB_End_Date2__c, |
| | | Foreign_Trade_Cost_US_1__c, |
| | | Foreign_Trade_Cost_US_Date1__c, |
| | | Foreign_Trade_Cost_US_End_Date1__c, |
| | | Foreign_Trade_Cost_US_2__c, |
| | | Foreign_Trade_Cost_US_Date2__c, |
| | | Foreign_Trade_Cost_US_End_Date2__c, |
| | | Intra_Trade_Cost_US__c, |
| | | Intra_Trade_Cost_US_Date__c, |
| | | Intra_Trade_Cost_US_End_Date__c, |
| | | Foreign_Trade_Cost_RMB__c, |
| | | Foreign_Trade_Cost_RMB_Date__c, |
| | | Foreign_Trade_Cost_RMB_End_Date__c |
| | | from Product2 |
| | | where ProductCode_Ext__c = :PurchasePrice.SuppliersItemCode]; |
| | | System.assertEquals(1, rslts.size()); |
| | | if (rslts.size() == 1) { |
| | | System.assertEquals('testNFM004', rslts[0].ProductCode); |
| | | System.assertEquals(1.12, rslts[0].Intra_Trade_Cost_RMB_1__c); |
| | | System.assertEquals(date.newinstance(2012, 11, 1), rslts[0].Intra_Trade_Cost_RMB_Date1__c); |
| | | System.assertEquals(date.newinstance(2912, 11, 3), rslts[0].Intra_Trade_Cost_RMB_End_Date1__c); |
| | | System.assertEquals(1.34, rslts[0].Intra_Trade_Cost_RMB_2__c); |
| | | System.assertEquals(date.newinstance(2012, 11, 11), rslts[0].Intra_Trade_Cost_RMB_Date2__c); |
| | | System.assertEquals(date.newinstance(2912, 11, 13), rslts[0].Intra_Trade_Cost_RMB_End_Date2__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_US_1__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_US_Date1__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_US_End_Date1__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_US_2__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_US_Date2__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_US_End_Date2__c); |
| | | System.assertEquals(null, rslts[0].Intra_Trade_Cost_US__c); |
| | | System.assertEquals(null, rslts[0].Intra_Trade_Cost_US_Date__c); |
| | | System.assertEquals(null, rslts[0].Intra_Trade_Cost_US_End_Date__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_RMB__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_RMB_Date__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_RMB_End_Date__c); |
| | | } |
| | | } |
| | | |
| | | @isTest |
| | | static void testNFM004_update_RMB_3() { |
| | | Product2 prd = testNFM004Init(); |
| | | prd.Intra_Trade_Cost_RMB_1__c = 1.12; |
| | | prd.Intra_Trade_Cost_RMB_Date1__c = date.newinstance(2012, 11, 1); |
| | | prd.Intra_Trade_Cost_RMB_End_Date1__c = date.newinstance(2912, 11, 3); |
| | | prd.Intra_Trade_Cost_RMB_2__c = 1.34; |
| | | prd.Intra_Trade_Cost_RMB_Date2__c = date.newinstance(2012, 11, 11); |
| | | prd.Intra_Trade_Cost_RMB_End_Date2__c = date.newinstance(2912, 11, 13); |
| | | update prd; |
| | | |
| | | NFM004WebService.PurchasePrice PurchasePrice = new NFM004WebService.PurchasePrice(); |
| | | NFM004WebService.PurchasePrices PurchasePrices = new NFM004WebService.PurchasePrices(); |
| | | |
| | | // Monitoringã®è¨å® |
| | | Datetime nowDT = Datetime.now(); |
| | | String nowStr = nowDT.format('yyyyMMddHHmm'); |
| | | PurchasePrices.Monitoring = new NFMUtil.Monitoring(); |
| | | |
| | | // update RMB å
貿 3åç® |
| | | PurchasePrices.PurchasePrice = new NFM004WebService.PurchasePrice[] { PurchasePrice }; |
| | | PurchasePrices.Monitoring.MessageGroupNumber = nowStr + '13'; |
| | | PurchasePrice.SuppliersItemCode = 'testNFM004'; |
| | | PurchasePrice.PriceType = 'OCM-001'; |
| | | PurchasePrice.Currency_x = 'RMB'; |
| | | PurchasePrice.PurchasePrice = 1.56; |
| | | PurchasePrice.EffectiveDateFrom = '00000000'; |
| | | PurchasePrice.EffectiveDateTo = '29121123'; |
| | | PurchasePrice.PurposeOfAdvice = '3'; |
| | | |
| | | System.Test.startTest(); |
| | | NFM004WebService.NFM004(PurchasePrices); |
| | | System.Test.stopTest(); |
| | | |
| | | List<Product2> rslts = [select Id, ProductCode, ProductCode_Ext__c, |
| | | Intra_Trade_Cost_RMB_1__c, |
| | | Intra_Trade_Cost_RMB_Date1__c, |
| | | Intra_Trade_Cost_RMB_End_Date1__c, |
| | | Intra_Trade_Cost_RMB_2__c, |
| | | Intra_Trade_Cost_RMB_Date2__c, |
| | | Intra_Trade_Cost_RMB_End_Date2__c, |
| | | Foreign_Trade_Cost_US_1__c, |
| | | Foreign_Trade_Cost_US_Date1__c, |
| | | Foreign_Trade_Cost_US_End_Date1__c, |
| | | Foreign_Trade_Cost_US_2__c, |
| | | Foreign_Trade_Cost_US_Date2__c, |
| | | Foreign_Trade_Cost_US_End_Date2__c, |
| | | Intra_Trade_Cost_US__c, |
| | | Intra_Trade_Cost_US_Date__c, |
| | | Intra_Trade_Cost_US_End_Date__c, |
| | | Foreign_Trade_Cost_RMB__c, |
| | | Foreign_Trade_Cost_RMB_Date__c, |
| | | Foreign_Trade_Cost_RMB_End_Date__c |
| | | from Product2 |
| | | where ProductCode_Ext__c = :PurchasePrice.SuppliersItemCode]; |
| | | System.assertEquals(1, rslts.size()); |
| | | if (rslts.size() == 1) { |
| | | System.assertEquals('testNFM004', rslts[0].ProductCode); |
| | | System.assertEquals(1.56, rslts[0].Intra_Trade_Cost_RMB_1__c); |
| | | System.assertEquals(null, rslts[0].Intra_Trade_Cost_RMB_Date1__c); |
| | | System.assertEquals(date.newinstance(2912, 11, 23), rslts[0].Intra_Trade_Cost_RMB_End_Date1__c); |
| | | System.assertEquals(1.34, rslts[0].Intra_Trade_Cost_RMB_2__c); |
| | | System.assertEquals(date.newinstance(2012, 11, 11), rslts[0].Intra_Trade_Cost_RMB_Date2__c); |
| | | System.assertEquals(date.newinstance(2912, 11, 13), rslts[0].Intra_Trade_Cost_RMB_End_Date2__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_US_1__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_US_Date1__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_US_End_Date1__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_US_2__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_US_Date2__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_US_End_Date2__c); |
| | | System.assertEquals(null, rslts[0].Intra_Trade_Cost_US__c); |
| | | System.assertEquals(null, rslts[0].Intra_Trade_Cost_US_Date__c); |
| | | System.assertEquals(null, rslts[0].Intra_Trade_Cost_US_End_Date__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_RMB__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_RMB_Date__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_RMB_End_Date__c); |
| | | } |
| | | } |
| | | |
| | | @isTest |
| | | static void testNFM004_update_RMB_4() { |
| | | Product2 prd = testNFM004Init(); |
| | | prd.Intra_Trade_Cost_RMB_1__c = 1.56; |
| | | prd.Intra_Trade_Cost_RMB_Date1__c = date.newinstance(1900, 1, 1); |
| | | prd.Intra_Trade_Cost_RMB_End_Date1__c = date.newinstance(2912, 11, 23); |
| | | prd.Intra_Trade_Cost_RMB_2__c = 1.34; |
| | | prd.Intra_Trade_Cost_RMB_Date2__c = date.newinstance(2012, 11, 11); |
| | | prd.Intra_Trade_Cost_RMB_End_Date2__c = date.newinstance(2912, 11, 13); |
| | | update prd; |
| | | |
| | | NFM004WebService.PurchasePrice PurchasePrice = new NFM004WebService.PurchasePrice(); |
| | | NFM004WebService.PurchasePrice PurchasePrice2 = new NFM004WebService.PurchasePrice(); |
| | | NFM004WebService.PurchasePrices PurchasePrices = new NFM004WebService.PurchasePrices(); |
| | | |
| | | // Monitoringã®è¨å® |
| | | Datetime nowDT = Datetime.now(); |
| | | String nowStr = nowDT.format('yyyyMMddHHmm'); |
| | | PurchasePrices.Monitoring = new NFMUtil.Monitoring(); |
| | | |
| | | // update RMB å
貿 4åç®ãè¤æ° |
| | | PurchasePrices.PurchasePrice = new NFM004WebService.PurchasePrice[] { PurchasePrice, PurchasePrice2 }; |
| | | PurchasePrices.Monitoring.MessageGroupNumber = nowStr + '14'; |
| | | PurchasePrice.SuppliersItemCode = 'testNFM004'; |
| | | PurchasePrice.PriceType = 'OCM-001'; |
| | | PurchasePrice.Currency_x = 'RMB'; |
| | | PurchasePrice.PurchasePrice = 1.78; |
| | | PurchasePrice.EffectiveDateFrom = '20121201'; |
| | | PurchasePrice.EffectiveDateTo = '29121203'; |
| | | PurchasePrice.PurposeOfAdvice = '3'; |
| | | // update US å
貿 |
| | | PurchasePrice2.SuppliersItemCode = 'testNFM004'; |
| | | PurchasePrice2.PriceType = 'OCM-001'; |
| | | PurchasePrice2.Currency_x = 'USD'; |
| | | PurchasePrice2.PurchasePrice = 101.12; |
| | | PurchasePrice2.EffectiveDateFrom = '00000000'; |
| | | PurchasePrice2.EffectiveDateTo = '29121123'; |
| | | PurchasePrice2.PurposeOfAdvice = '3'; |
| | | |
| | | System.Test.startTest(); |
| | | NFM004WebService.NFM004(PurchasePrices); |
| | | System.Test.stopTest(); |
| | | |
| | | List<Product2> rslts = [select Id, ProductCode, ProductCode_Ext__c, |
| | | Intra_Trade_Cost_RMB_1__c, |
| | | Intra_Trade_Cost_RMB_Date1__c, |
| | | Intra_Trade_Cost_RMB_End_Date1__c, |
| | | Intra_Trade_Cost_RMB_2__c, |
| | | Intra_Trade_Cost_RMB_Date2__c, |
| | | Intra_Trade_Cost_RMB_End_Date2__c, |
| | | Foreign_Trade_Cost_US_1__c, |
| | | Foreign_Trade_Cost_US_Date1__c, |
| | | Foreign_Trade_Cost_US_End_Date1__c, |
| | | Foreign_Trade_Cost_US_2__c, |
| | | Foreign_Trade_Cost_US_Date2__c, |
| | | Foreign_Trade_Cost_US_End_Date2__c, |
| | | Intra_Trade_Cost_US__c, |
| | | Intra_Trade_Cost_US_Date__c, |
| | | Intra_Trade_Cost_US_End_Date__c, |
| | | Foreign_Trade_Cost_RMB__c, |
| | | Foreign_Trade_Cost_RMB_Date__c, |
| | | Foreign_Trade_Cost_RMB_End_Date__c |
| | | from Product2 |
| | | where ProductCode_Ext__c = :PurchasePrice.SuppliersItemCode]; |
| | | System.assertEquals(1, rslts.size()); |
| | | if (rslts.size() == 1) { |
| | | System.assertEquals('testNFM004', rslts[0].ProductCode); |
| | | System.assertEquals(1.78, rslts[0].Intra_Trade_Cost_RMB_1__c); |
| | | System.assertEquals(date.newinstance(2012, 12, 01), rslts[0].Intra_Trade_Cost_RMB_Date1__c); |
| | | System.assertEquals(date.newinstance(2912, 12, 03), rslts[0].Intra_Trade_Cost_RMB_End_Date1__c); |
| | | System.assertEquals(1.34, rslts[0].Intra_Trade_Cost_RMB_2__c); |
| | | System.assertEquals(date.newinstance(2012, 11, 11), rslts[0].Intra_Trade_Cost_RMB_Date2__c); |
| | | System.assertEquals(date.newinstance(2912, 11, 13), rslts[0].Intra_Trade_Cost_RMB_End_Date2__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_US_1__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_US_Date1__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_US_End_Date1__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_US_2__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_US_Date2__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_US_End_Date2__c); |
| | | System.assertEquals(101.12, rslts[0].Intra_Trade_Cost_US__c); |
| | | System.assertEquals(null, rslts[0].Intra_Trade_Cost_US_Date__c); |
| | | System.assertEquals(date.newinstance(2912, 11, 23), rslts[0].Intra_Trade_Cost_US_End_Date__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_RMB__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_RMB_Date__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_RMB_End_Date__c); |
| | | } |
| | | } |
| | | |
| | | @isTest |
| | | static void testNFM004_update_USD_1() { |
| | | Product2 prd = testNFM004Init(); |
| | | prd.Intra_Trade_Cost_RMB_1__c = 1.78; |
| | | prd.Intra_Trade_Cost_RMB_Date1__c = date.newinstance(2012, 12, 1); |
| | | prd.Intra_Trade_Cost_RMB_End_Date1__c = date.newinstance(2912, 12, 03); |
| | | prd.Intra_Trade_Cost_RMB_2__c = 1.34; |
| | | prd.Intra_Trade_Cost_RMB_Date2__c = date.newinstance(2012, 11, 11); |
| | | prd.Intra_Trade_Cost_RMB_End_Date2__c = date.newinstance(2912, 11, 13); |
| | | prd.Intra_Trade_Cost_US__c = 101.12; |
| | | prd.Intra_Trade_Cost_US_Date__c = date.newinstance(1900, 1, 1); |
| | | prd.Intra_Trade_Cost_US_End_Date__c = date.newinstance(2912, 11, 23); |
| | | update prd; |
| | | |
| | | NFM004WebService.PurchasePrice PurchasePrice = new NFM004WebService.PurchasePrice(); |
| | | NFM004WebService.PurchasePrices PurchasePrices = new NFM004WebService.PurchasePrices(); |
| | | |
| | | // Monitoringã®è¨å® |
| | | Datetime nowDT = Datetime.now(); |
| | | String nowStr = nowDT.format('yyyyMMddHHmm'); |
| | | PurchasePrices.Monitoring = new NFMUtil.Monitoring(); |
| | | |
| | | // update USD å¤è²¿ 1åç® |
| | | PurchasePrices.PurchasePrice = new NFM004WebService.PurchasePrice[] { PurchasePrice }; |
| | | PurchasePrices.Monitoring.MessageGroupNumber = nowStr + '21'; |
| | | PurchasePrice.SuppliersItemCode = 'testNFM004'; |
| | | PurchasePrice.PriceType = 'OHC-001'; |
| | | PurchasePrice.Currency_x = 'USD'; |
| | | PurchasePrice.PurchasePrice = 201.21; |
| | | PurchasePrice.EffectiveDateFrom = '20121102'; |
| | | PurchasePrice.EffectiveDateTo = '29121104'; |
| | | PurchasePrice.PurposeOfAdvice = '3'; |
| | | |
| | | System.Test.startTest(); |
| | | NFM004WebService.NFM004(PurchasePrices); |
| | | System.Test.stopTest(); |
| | | |
| | | List<Product2> rslts = [select Id, ProductCode, ProductCode_Ext__c, |
| | | Intra_Trade_Cost_RMB_1__c, |
| | | Intra_Trade_Cost_RMB_Date1__c, |
| | | Intra_Trade_Cost_RMB_End_Date1__c, |
| | | Intra_Trade_Cost_RMB_2__c, |
| | | Intra_Trade_Cost_RMB_Date2__c, |
| | | Intra_Trade_Cost_RMB_End_Date2__c, |
| | | Foreign_Trade_Cost_US_1__c, |
| | | Foreign_Trade_Cost_US_Date1__c, |
| | | Foreign_Trade_Cost_US_End_Date1__c, |
| | | Foreign_Trade_Cost_US_2__c, |
| | | Foreign_Trade_Cost_US_Date2__c, |
| | | Foreign_Trade_Cost_US_End_Date2__c, |
| | | Intra_Trade_Cost_US__c, |
| | | Intra_Trade_Cost_US_Date__c, |
| | | Intra_Trade_Cost_US_End_Date__c, |
| | | Foreign_Trade_Cost_RMB__c, |
| | | Foreign_Trade_Cost_RMB_Date__c, |
| | | Foreign_Trade_Cost_RMB_End_Date__c |
| | | from Product2 |
| | | where ProductCode_Ext__c = :PurchasePrice.SuppliersItemCode]; |
| | | System.assertEquals(1, rslts.size()); |
| | | if (rslts.size() == 1) { |
| | | System.assertEquals('testNFM004', rslts[0].ProductCode); |
| | | System.assertEquals(1.78, rslts[0].Intra_Trade_Cost_RMB_1__c); |
| | | System.assertEquals(date.newinstance(2012, 12, 01), rslts[0].Intra_Trade_Cost_RMB_Date1__c); |
| | | System.assertEquals(date.newinstance(2912, 12, 03), rslts[0].Intra_Trade_Cost_RMB_End_Date1__c); |
| | | System.assertEquals(1.34, rslts[0].Intra_Trade_Cost_RMB_2__c); |
| | | System.assertEquals(date.newinstance(2012, 11, 11), rslts[0].Intra_Trade_Cost_RMB_Date2__c); |
| | | System.assertEquals(date.newinstance(2912, 11, 13), rslts[0].Intra_Trade_Cost_RMB_End_Date2__c); |
| | | System.assertEquals(201.21, rslts[0].Foreign_Trade_Cost_US_1__c); |
| | | System.assertEquals(date.newinstance(2012, 11, 02), rslts[0].Foreign_Trade_Cost_US_Date1__c); |
| | | System.assertEquals(date.newinstance(2912, 11, 04), rslts[0].Foreign_Trade_Cost_US_End_Date1__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_US_2__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_US_Date2__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_US_End_Date2__c); |
| | | System.assertEquals(101.12, rslts[0].Intra_Trade_Cost_US__c); |
| | | System.assertEquals(date.newinstance(1900, 1, 1), rslts[0].Intra_Trade_Cost_US_Date__c); |
| | | System.assertEquals(date.newinstance(2912, 11, 23), rslts[0].Intra_Trade_Cost_US_End_Date__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_RMB__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_RMB_Date__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_RMB_End_Date__c); |
| | | } |
| | | } |
| | | |
| | | @isTest |
| | | static void testNFM004_update_USD_2() { |
| | | Product2 prd = testNFM004Init(); |
| | | prd.Intra_Trade_Cost_RMB_1__c = 1.78; |
| | | prd.Intra_Trade_Cost_RMB_Date1__c = date.newinstance(2012, 12, 1); |
| | | prd.Intra_Trade_Cost_RMB_End_Date1__c = date.newinstance(2912, 12, 03); |
| | | prd.Intra_Trade_Cost_RMB_2__c = 1.34; |
| | | prd.Intra_Trade_Cost_RMB_Date2__c = date.newinstance(2012, 11, 11); |
| | | prd.Intra_Trade_Cost_RMB_End_Date2__c = date.newinstance(2912, 11, 13); |
| | | prd.Intra_Trade_Cost_US__c = 101.12; |
| | | prd.Intra_Trade_Cost_US_Date__c = date.newinstance(1900, 1, 1); |
| | | prd.Intra_Trade_Cost_US_End_Date__c = date.newinstance(2912, 11, 23); |
| | | prd.Foreign_Trade_Cost_US_1__c = 201.21; |
| | | prd.Foreign_Trade_Cost_US_Date1__c = date.newinstance(2012, 11, 2); |
| | | prd.Foreign_Trade_Cost_US_End_Date1__c = date.newinstance(2912, 11, 4); |
| | | update prd; |
| | | |
| | | NFM004WebService.PurchasePrice PurchasePrice = new NFM004WebService.PurchasePrice(); |
| | | NFM004WebService.PurchasePrices PurchasePrices = new NFM004WebService.PurchasePrices(); |
| | | |
| | | // Monitoringã®è¨å® |
| | | Datetime nowDT = Datetime.now(); |
| | | String nowStr = nowDT.format('yyyyMMddHHmm'); |
| | | PurchasePrices.Monitoring = new NFMUtil.Monitoring(); |
| | | |
| | | // update USD å¤è²¿ 2åç® |
| | | PurchasePrices.PurchasePrice = new NFM004WebService.PurchasePrice[] { PurchasePrice }; |
| | | PurchasePrices.Monitoring.MessageGroupNumber = nowStr + '22'; |
| | | PurchasePrice.SuppliersItemCode = 'testNFM004'; |
| | | PurchasePrice.PriceType = 'OHC-001'; |
| | | PurchasePrice.Currency_x = 'USD'; |
| | | PurchasePrice.PurchasePrice = 201.43; |
| | | PurchasePrice.EffectiveDateFrom = '20121112'; |
| | | PurchasePrice.EffectiveDateTo = '29121114'; |
| | | PurchasePrice.PurposeOfAdvice = '3'; |
| | | |
| | | System.Test.startTest(); |
| | | NFM004WebService.NFM004(PurchasePrices); |
| | | System.Test.stopTest(); |
| | | |
| | | List<Product2> rslts = [select Id, ProductCode, ProductCode_Ext__c, |
| | | Intra_Trade_Cost_RMB_1__c, |
| | | Intra_Trade_Cost_RMB_Date1__c, |
| | | Intra_Trade_Cost_RMB_End_Date1__c, |
| | | Intra_Trade_Cost_RMB_2__c, |
| | | Intra_Trade_Cost_RMB_Date2__c, |
| | | Intra_Trade_Cost_RMB_End_Date2__c, |
| | | Foreign_Trade_Cost_US_1__c, |
| | | Foreign_Trade_Cost_US_Date1__c, |
| | | Foreign_Trade_Cost_US_End_Date1__c, |
| | | Foreign_Trade_Cost_US_2__c, |
| | | Foreign_Trade_Cost_US_Date2__c, |
| | | Foreign_Trade_Cost_US_End_Date2__c, |
| | | Intra_Trade_Cost_US__c, |
| | | Intra_Trade_Cost_US_Date__c, |
| | | Intra_Trade_Cost_US_End_Date__c, |
| | | Foreign_Trade_Cost_RMB__c, |
| | | Foreign_Trade_Cost_RMB_Date__c, |
| | | Foreign_Trade_Cost_RMB_End_Date__c |
| | | from Product2 |
| | | where ProductCode_Ext__c = :PurchasePrice.SuppliersItemCode]; |
| | | System.assertEquals(1, rslts.size()); |
| | | if (rslts.size() == 1) { |
| | | System.assertEquals('testNFM004', rslts[0].ProductCode); |
| | | System.assertEquals(1.78, rslts[0].Intra_Trade_Cost_RMB_1__c); |
| | | System.assertEquals(date.newinstance(2012, 12, 01), rslts[0].Intra_Trade_Cost_RMB_Date1__c); |
| | | System.assertEquals(date.newinstance(2912, 12, 03), rslts[0].Intra_Trade_Cost_RMB_End_Date1__c); |
| | | System.assertEquals(1.34, rslts[0].Intra_Trade_Cost_RMB_2__c); |
| | | System.assertEquals(date.newinstance(2012, 11, 11), rslts[0].Intra_Trade_Cost_RMB_Date2__c); |
| | | System.assertEquals(date.newinstance(2912, 11, 13), rslts[0].Intra_Trade_Cost_RMB_End_Date2__c); |
| | | System.assertEquals(201.21, rslts[0].Foreign_Trade_Cost_US_1__c); |
| | | System.assertEquals(date.newinstance(2012, 11, 02), rslts[0].Foreign_Trade_Cost_US_Date1__c); |
| | | System.assertEquals(date.newinstance(2912, 11, 04), rslts[0].Foreign_Trade_Cost_US_End_Date1__c); |
| | | System.assertEquals(201.43, rslts[0].Foreign_Trade_Cost_US_2__c); |
| | | System.assertEquals(date.newinstance(2012, 11, 12), rslts[0].Foreign_Trade_Cost_US_Date2__c); |
| | | System.assertEquals(date.newinstance(2912, 11, 14), rslts[0].Foreign_Trade_Cost_US_End_Date2__c); |
| | | System.assertEquals(101.12, rslts[0].Intra_Trade_Cost_US__c); |
| | | System.assertEquals(date.newinstance(1900, 1, 1), rslts[0].Intra_Trade_Cost_US_Date__c); |
| | | System.assertEquals(date.newinstance(2912, 11, 23), rslts[0].Intra_Trade_Cost_US_End_Date__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_RMB__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_RMB_Date__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_RMB_End_Date__c); |
| | | } |
| | | } |
| | | |
| | | @isTest |
| | | static void testNFM004_update_USD_3() { |
| | | Product2 prd = testNFM004Init(); |
| | | prd.Intra_Trade_Cost_RMB_1__c = 1.78; |
| | | prd.Intra_Trade_Cost_RMB_Date1__c = date.newinstance(2012, 12, 1); |
| | | prd.Intra_Trade_Cost_RMB_End_Date1__c = date.newinstance(2912, 12, 03); |
| | | prd.Intra_Trade_Cost_RMB_2__c = 1.34; |
| | | prd.Intra_Trade_Cost_RMB_Date2__c = date.newinstance(2012, 11, 11); |
| | | prd.Intra_Trade_Cost_RMB_End_Date2__c = date.newinstance(2912, 11, 13); |
| | | prd.Intra_Trade_Cost_US__c = 101.12; |
| | | prd.Intra_Trade_Cost_US_Date__c = date.newinstance(1900, 1, 1); |
| | | prd.Intra_Trade_Cost_US_End_Date__c = date.newinstance(2912, 11, 23); |
| | | prd.Foreign_Trade_Cost_US_1__c = 201.21; |
| | | prd.Foreign_Trade_Cost_US_Date1__c = date.newinstance(2012, 11, 2); |
| | | prd.Foreign_Trade_Cost_US_End_Date1__c = date.newinstance(2912, 11, 4); |
| | | prd.Foreign_Trade_Cost_US_2__c = 201.43; |
| | | prd.Foreign_Trade_Cost_US_Date2__c = date.newinstance(2012, 11, 12); |
| | | prd.Foreign_Trade_Cost_US_End_Date2__c = date.newinstance(2912, 11, 14); |
| | | update prd; |
| | | |
| | | NFM004WebService.PurchasePrice PurchasePrice = new NFM004WebService.PurchasePrice(); |
| | | NFM004WebService.PurchasePrices PurchasePrices = new NFM004WebService.PurchasePrices(); |
| | | |
| | | // Monitoringã®è¨å® |
| | | Datetime nowDT = Datetime.now(); |
| | | String nowStr = nowDT.format('yyyyMMddHHmm'); |
| | | PurchasePrices.Monitoring = new NFMUtil.Monitoring(); |
| | | |
| | | // update USD å¤è²¿ 3åç® |
| | | PurchasePrices.PurchasePrice = new NFM004WebService.PurchasePrice[] { PurchasePrice }; |
| | | PurchasePrices.Monitoring.MessageGroupNumber = nowStr + '23'; |
| | | PurchasePrice.SuppliersItemCode = 'testNFM004'; |
| | | PurchasePrice.PriceType = 'OHC-001'; |
| | | PurchasePrice.Currency_x = 'USD'; |
| | | PurchasePrice.PurchasePrice = 201.65; |
| | | PurchasePrice.EffectiveDateFrom = '20121122'; |
| | | PurchasePrice.EffectiveDateTo = '29121124'; |
| | | PurchasePrice.PurposeOfAdvice = '3'; |
| | | |
| | | System.Test.startTest(); |
| | | NFM004WebService.NFM004(PurchasePrices); |
| | | System.Test.stopTest(); |
| | | |
| | | List<Product2> rslts = [select Id, ProductCode, ProductCode_Ext__c, |
| | | Intra_Trade_Cost_RMB_1__c, |
| | | Intra_Trade_Cost_RMB_Date1__c, |
| | | Intra_Trade_Cost_RMB_End_Date1__c, |
| | | Intra_Trade_Cost_RMB_2__c, |
| | | Intra_Trade_Cost_RMB_Date2__c, |
| | | Intra_Trade_Cost_RMB_End_Date2__c, |
| | | Foreign_Trade_Cost_US_1__c, |
| | | Foreign_Trade_Cost_US_Date1__c, |
| | | Foreign_Trade_Cost_US_End_Date1__c, |
| | | Foreign_Trade_Cost_US_2__c, |
| | | Foreign_Trade_Cost_US_Date2__c, |
| | | Foreign_Trade_Cost_US_End_Date2__c, |
| | | Intra_Trade_Cost_US__c, |
| | | Intra_Trade_Cost_US_Date__c, |
| | | Intra_Trade_Cost_US_End_Date__c, |
| | | Foreign_Trade_Cost_RMB__c, |
| | | Foreign_Trade_Cost_RMB_Date__c, |
| | | Foreign_Trade_Cost_RMB_End_Date__c |
| | | from Product2 |
| | | where ProductCode_Ext__c = :PurchasePrice.SuppliersItemCode]; |
| | | System.assertEquals(1, rslts.size()); |
| | | if (rslts.size() == 1) { |
| | | System.assertEquals('testNFM004', rslts[0].ProductCode); |
| | | System.assertEquals(1.78, rslts[0].Intra_Trade_Cost_RMB_1__c); |
| | | System.assertEquals(date.newinstance(2012, 12, 01), rslts[0].Intra_Trade_Cost_RMB_Date1__c); |
| | | System.assertEquals(date.newinstance(2912, 12, 03), rslts[0].Intra_Trade_Cost_RMB_End_Date1__c); |
| | | System.assertEquals(1.34, rslts[0].Intra_Trade_Cost_RMB_2__c); |
| | | System.assertEquals(date.newinstance(2012, 11, 11), rslts[0].Intra_Trade_Cost_RMB_Date2__c); |
| | | System.assertEquals(date.newinstance(2912, 11, 13), rslts[0].Intra_Trade_Cost_RMB_End_Date2__c); |
| | | System.assertEquals(201.65, rslts[0].Foreign_Trade_Cost_US_1__c); |
| | | System.assertEquals(date.newinstance(2012, 11, 22), rslts[0].Foreign_Trade_Cost_US_Date1__c); |
| | | System.assertEquals(date.newinstance(2912, 11, 24), rslts[0].Foreign_Trade_Cost_US_End_Date1__c); |
| | | System.assertEquals(201.43, rslts[0].Foreign_Trade_Cost_US_2__c); |
| | | System.assertEquals(date.newinstance(2012, 11, 12), rslts[0].Foreign_Trade_Cost_US_Date2__c); |
| | | System.assertEquals(date.newinstance(2912, 11, 14), rslts[0].Foreign_Trade_Cost_US_End_Date2__c); |
| | | System.assertEquals(101.12, rslts[0].Intra_Trade_Cost_US__c); |
| | | System.assertEquals(date.newinstance(1900, 1, 1), rslts[0].Intra_Trade_Cost_US_Date__c); |
| | | System.assertEquals(date.newinstance(2912, 11, 23), rslts[0].Intra_Trade_Cost_US_End_Date__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_RMB__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_RMB_Date__c); |
| | | System.assertEquals(null, rslts[0].Foreign_Trade_Cost_RMB_End_Date__c); |
| | | } |
| | | } |
| | | |
| | | @isTest |
| | | static void testNFM004_update_USD_4() { |
| | | Product2 prd = testNFM004Init(); |
| | | prd.Intra_Trade_Cost_RMB_1__c = 1.78; |
| | | prd.Intra_Trade_Cost_RMB_Date1__c = date.newinstance(2012, 12, 1); |
| | | prd.Intra_Trade_Cost_RMB_End_Date1__c = date.newinstance(2912, 12, 03); |
| | | prd.Intra_Trade_Cost_RMB_2__c = 1.34; |
| | | prd.Intra_Trade_Cost_RMB_Date2__c = date.newinstance(2012, 11, 11); |
| | | prd.Intra_Trade_Cost_RMB_End_Date2__c = date.newinstance(2912, 11, 13); |
| | | prd.Intra_Trade_Cost_US__c = 101.12; |
| | | prd.Intra_Trade_Cost_US_Date__c = date.newinstance(1900, 1, 1); |
| | | prd.Intra_Trade_Cost_US_End_Date__c = date.newinstance(2912, 11, 23); |
| | | prd.Foreign_Trade_Cost_US_1__c = 201.65; |
| | | prd.Foreign_Trade_Cost_US_Date1__c = date.newinstance(2012, 11, 22); |
| | | prd.Foreign_Trade_Cost_US_End_Date1__c = date.newinstance(2912, 11, 24); |
| | | prd.Foreign_Trade_Cost_US_2__c = 201.43; |
| | | prd.Foreign_Trade_Cost_US_Date2__c = date.newinstance(2012, 11, 12); |
| | | prd.Foreign_Trade_Cost_US_End_Date2__c = date.newinstance(2912, 11, 14); |
| | | update prd; |
| | | |
| | | NFM004WebService.PurchasePrice PurchasePrice = new NFM004WebService.PurchasePrice(); |
| | | NFM004WebService.PurchasePrice PurchasePrice2 = new NFM004WebService.PurchasePrice(); |
| | | NFM004WebService.PurchasePrices PurchasePrices = new NFM004WebService.PurchasePrices(); |
| | | |
| | | // Monitoringã®è¨å® |
| | | Datetime nowDT = Datetime.now(); |
| | | String nowStr = nowDT.format('yyyyMMddHHmm'); |
| | | PurchasePrices.Monitoring = new NFMUtil.Monitoring(); |
| | | |
| | | // update USD å¤è²¿ 4åç® |
| | | PurchasePrices.PurchasePrice = new NFM004WebService.PurchasePrice[] { PurchasePrice, PurchasePrice2 }; |
| | | PurchasePrices.Monitoring.MessageGroupNumber = nowStr + '24'; |
| | | PurchasePrice.SuppliersItemCode = 'testNFM004'; |
| | | PurchasePrice.PriceType = 'OHC-001'; |
| | | PurchasePrice.Currency_x = 'USD'; |
| | | PurchasePrice.PurchasePrice = 201.87; |
| | | PurchasePrice.EffectiveDateFrom = '20121202'; |
| | | PurchasePrice.EffectiveDateTo = '29121204'; |
| | | PurchasePrice.PurposeOfAdvice = '3'; |
| | | // update RMB å¤è²¿ |
| | | PurchasePrice2.SuppliersItemCode = 'testNFM004'; |
| | | PurchasePrice2.PriceType = 'OHC-001'; |
| | | PurchasePrice2.Currency_x = 'RMB'; |
| | | PurchasePrice2.PurchasePrice = 222.12; |
| | | PurchasePrice2.EffectiveDateFrom = '20121212'; |
| | | PurchasePrice2.EffectiveDateTo = '29121214'; |
| | | PurchasePrice2.PurposeOfAdvice = '3'; |
| | | |
| | | System.Test.startTest(); |
| | | NFM004WebService.NFM004(PurchasePrices); |
| | | System.Test.stopTest(); |
| | | |
| | | List<Product2> rslts = [select Id, ProductCode, ProductCode_Ext__c, |
| | | Intra_Trade_Cost_RMB_1__c, |
| | | Intra_Trade_Cost_RMB_Date1__c, |
| | | Intra_Trade_Cost_RMB_End_Date1__c, |
| | | Intra_Trade_Cost_RMB_2__c, |
| | | Intra_Trade_Cost_RMB_Date2__c, |
| | | Intra_Trade_Cost_RMB_End_Date2__c, |
| | | Foreign_Trade_Cost_US_1__c, |
| | | Foreign_Trade_Cost_US_Date1__c, |
| | | Foreign_Trade_Cost_US_End_Date1__c, |
| | | Foreign_Trade_Cost_US_2__c, |
| | | Foreign_Trade_Cost_US_Date2__c, |
| | | Foreign_Trade_Cost_US_End_Date2__c, |
| | | Intra_Trade_Cost_US__c, |
| | | Intra_Trade_Cost_US_Date__c, |
| | | Intra_Trade_Cost_US_End_Date__c, |
| | | Foreign_Trade_Cost_RMB__c, |
| | | Foreign_Trade_Cost_RMB_Date__c, |
| | | Foreign_Trade_Cost_RMB_End_Date__c |
| | | from Product2 |
| | | where ProductCode_Ext__c = :PurchasePrice.SuppliersItemCode]; |
| | | System.assertEquals(1, rslts.size()); |
| | | if (rslts.size() == 1) { |
| | | System.assertEquals('testNFM004', rslts[0].ProductCode); |
| | | System.assertEquals(1.78, rslts[0].Intra_Trade_Cost_RMB_1__c); |
| | | System.assertEquals(date.newinstance(2012, 12, 01), rslts[0].Intra_Trade_Cost_RMB_Date1__c); |
| | | System.assertEquals(date.newinstance(2912, 12, 03), rslts[0].Intra_Trade_Cost_RMB_End_Date1__c); |
| | | System.assertEquals(1.34, rslts[0].Intra_Trade_Cost_RMB_2__c); |
| | | System.assertEquals(date.newinstance(2012, 11, 11), rslts[0].Intra_Trade_Cost_RMB_Date2__c); |
| | | System.assertEquals(date.newinstance(2912, 11, 13), rslts[0].Intra_Trade_Cost_RMB_End_Date2__c); |
| | | System.assertEquals(201.65, rslts[0].Foreign_Trade_Cost_US_1__c); |
| | | System.assertEquals(date.newinstance(2012, 11, 22), rslts[0].Foreign_Trade_Cost_US_Date1__c); |
| | | System.assertEquals(date.newinstance(2912, 11, 24), rslts[0].Foreign_Trade_Cost_US_End_Date1__c); |
| | | System.assertEquals(201.87, rslts[0].Foreign_Trade_Cost_US_2__c); |
| | | System.assertEquals(date.newinstance(2012, 12, 02), rslts[0].Foreign_Trade_Cost_US_Date2__c); |
| | | System.assertEquals(date.newinstance(2912, 12, 04), rslts[0].Foreign_Trade_Cost_US_End_Date2__c); |
| | | System.assertEquals(101.12, rslts[0].Intra_Trade_Cost_US__c); |
| | | System.assertEquals(date.newinstance(1900, 1, 1), rslts[0].Intra_Trade_Cost_US_Date__c); |
| | | System.assertEquals(date.newinstance(2912, 11, 23), rslts[0].Intra_Trade_Cost_US_End_Date__c); |
| | | System.assertEquals(222.12, rslts[0].Foreign_Trade_Cost_RMB__c); |
| | | System.assertEquals(date.newinstance(2012, 12, 12), rslts[0].Foreign_Trade_Cost_RMB_Date__c); |
| | | System.assertEquals(date.newinstance(2912, 12, 14), rslts[0].Foreign_Trade_Cost_RMB_End_Date__c); |
| | | } |
| | | } |
| | | |
| | | @isTest |
| | | static void testNFM004_delete_1() { |
| | | Product2 prd = testNFM004Init(); |
| | | prd.Intra_Trade_Cost_RMB_1__c = 1.78; |
| | | prd.Intra_Trade_Cost_RMB_Date1__c = date.newinstance(2012, 12, 1); |
| | | prd.Intra_Trade_Cost_RMB_End_Date1__c = date.newinstance(2912, 12, 03); |
| | | prd.Intra_Trade_Cost_RMB_2__c = 1.34; |
| | | prd.Intra_Trade_Cost_RMB_Date2__c = date.newinstance(2012, 11, 11); |
| | | prd.Intra_Trade_Cost_RMB_End_Date2__c = date.newinstance(2912, 11, 13); |
| | | prd.Intra_Trade_Cost_US__c = 101.12; |
| | | prd.Intra_Trade_Cost_US_Date__c = date.newinstance(1900, 1, 1); |
| | | prd.Intra_Trade_Cost_US_End_Date__c = date.newinstance(2912, 11, 23); |
| | | prd.Foreign_Trade_Cost_US_1__c = 201.65; |
| | | prd.Foreign_Trade_Cost_US_Date1__c = date.newinstance(2012, 11, 22); |
| | | prd.Foreign_Trade_Cost_US_End_Date1__c = date.newinstance(2912, 11, 24); |
| | | prd.Foreign_Trade_Cost_US_2__c = 201.87; |
| | | prd.Foreign_Trade_Cost_US_Date2__c = date.newinstance(2012, 12, 2); |
| | | prd.Foreign_Trade_Cost_US_End_Date2__c = date.newinstance(2912, 12, 4); |
| | | prd.Foreign_Trade_Cost_RMB__c = 222.12; |
| | | prd.Foreign_Trade_Cost_RMB_Date__c = date.newinstance(2012, 12, 12); |
| | | prd.Foreign_Trade_Cost_RMB_End_Date__c = date.newinstance(2912, 12, 14); |
| | | update prd; |
| | | |
| | | NFM004WebService.PurchasePrice PurchasePrice = new NFM004WebService.PurchasePrice(); |
| | | NFM004WebService.PurchasePrices PurchasePrices = new NFM004WebService.PurchasePrices(); |
| | | |
| | | // Monitoringã®è¨å® |
| | | Datetime nowDT = Datetime.now(); |
| | | String nowStr = nowDT.format('yyyyMMddHHmm'); |
| | | PurchasePrices.Monitoring = new NFMUtil.Monitoring(); |
| | | |
| | | // åé¤ãï¼ä¸ä»£ç®ã®éé¡ |
| | | PurchasePrices.PurchasePrice = new NFM004WebService.PurchasePrice[] { PurchasePrice }; |
| | | PurchasePrices.Monitoring.MessageGroupNumber = nowStr + '31'; |
| | | PurchasePrice.SuppliersItemCode = 'testNFM004'; |
| | | PurchasePrice.PriceType = 'OHC-001'; |
| | | PurchasePrice.Currency_x = 'USD'; |
| | | PurchasePrice.PurchasePrice = 201.87; |
| | | PurchasePrice.EffectiveDateFrom = '20121202'; |
| | | PurchasePrice.EffectiveDateTo = '29121204'; |
| | | PurchasePrice.PurposeOfAdvice = '1'; |
| | | |
| | | System.Test.startTest(); |
| | | NFM004WebService.NFM004(PurchasePrices); |
| | | System.Test.stopTest(); |
| | | |
| | | List<Product2> rslts = [select Id, ProductCode, ProductCode_Ext__c, |
| | | Intra_Trade_Cost_RMB_1__c, |
| | | Intra_Trade_Cost_RMB_Date1__c, |
| | | Intra_Trade_Cost_RMB_End_Date1__c, |
| | | Intra_Trade_Cost_RMB_2__c, |
| | | Intra_Trade_Cost_RMB_Date2__c, |
| | | Intra_Trade_Cost_RMB_End_Date2__c, |
| | | Foreign_Trade_Cost_US_1__c, |
| | | Foreign_Trade_Cost_US_Date1__c, |
| | | Foreign_Trade_Cost_US_End_Date1__c, |
| | | Foreign_Trade_Cost_US_2__c, |
| | | Foreign_Trade_Cost_US_Date2__c, |
| | | Foreign_Trade_Cost_US_End_Date2__c, |
| | | Intra_Trade_Cost_US__c, |
| | | Intra_Trade_Cost_US_Date__c, |
| | | Intra_Trade_Cost_US_End_Date__c, |
| | | Foreign_Trade_Cost_RMB__c, |
| | | Foreign_Trade_Cost_RMB_Date__c, |
| | | Foreign_Trade_Cost_RMB_End_Date__c |
| | | from Product2 |
| | | where ProductCode_Ext__c = :PurchasePrice.SuppliersItemCode]; |
| | | // deleteã®å ´åãEffectiveDateTo ã忥 |
| | | System.assertEquals(1, rslts.size()); |
| | | System.assertEquals(Date.today().addDays(-1), rslts[0].Foreign_Trade_Cost_US_End_Date2__c); |
| | | } |
| | | |
| | | @isTest |
| | | static void testNFM004_delete_2() { |
| | | Product2 prd = testNFM004Init(); |
| | | prd.Intra_Trade_Cost_RMB_1__c = 1.78; |
| | | prd.Intra_Trade_Cost_RMB_Date1__c = date.newinstance(2012, 12, 1); |
| | | prd.Intra_Trade_Cost_RMB_End_Date1__c = date.newinstance(2912, 12, 03); |
| | | prd.Intra_Trade_Cost_RMB_2__c = 1.34; |
| | | prd.Intra_Trade_Cost_RMB_Date2__c = date.newinstance(2012, 11, 11); |
| | | prd.Intra_Trade_Cost_RMB_End_Date2__c = date.newinstance(2912, 11, 13); |
| | | prd.Intra_Trade_Cost_US__c = 101.12; |
| | | prd.Intra_Trade_Cost_US_Date__c = date.newinstance(1900, 1, 1); |
| | | prd.Intra_Trade_Cost_US_End_Date__c = date.newinstance(2912, 11, 23); |
| | | prd.Foreign_Trade_Cost_US_1__c = 201.65; |
| | | prd.Foreign_Trade_Cost_US_Date1__c = date.newinstance(2012, 11, 22); |
| | | prd.Foreign_Trade_Cost_US_End_Date1__c = date.newinstance(2912, 11, 24); |
| | | prd.Foreign_Trade_Cost_US_2__c = 201.87; |
| | | prd.Foreign_Trade_Cost_US_Date2__c = date.newinstance(2012, 12, 2); |
| | | prd.Foreign_Trade_Cost_US_End_Date2__c = Date.today().addDays(-1); |
| | | prd.Foreign_Trade_Cost_RMB__c = 222.12; |
| | | prd.Foreign_Trade_Cost_RMB_Date__c = date.newinstance(2012, 12, 12); |
| | | prd.Foreign_Trade_Cost_RMB_End_Date__c = date.newinstance(2912, 12, 14); |
| | | update prd; |
| | | |
| | | NFM004WebService.PurchasePrice PurchasePrice = new NFM004WebService.PurchasePrice(); |
| | | NFM004WebService.PurchasePrices PurchasePrices = new NFM004WebService.PurchasePrices(); |
| | | |
| | | // Monitoringã®è¨å® |
| | | Datetime nowDT = Datetime.now(); |
| | | String nowStr = nowDT.format('yyyyMMddHHmm'); |
| | | PurchasePrices.Monitoring = new NFMUtil.Monitoring(); |
| | | |
| | | |
| | | // æéæ´æ°ãï¼ä¸ä»£ç®ã«åæ |
| | | PurchasePrices.PurchasePrice = new NFM004WebService.PurchasePrice[] { PurchasePrice }; |
| | | PurchasePrices.Monitoring.MessageGroupNumber = nowStr + '32'; |
| | | PurchasePrice.SuppliersItemCode = 'testNFM004'; |
| | | PurchasePrice.PriceType = 'OHC-001'; |
| | | PurchasePrice.Currency_x = 'USD'; |
| | | PurchasePrice.PurchasePrice = 201.87; |
| | | PurchasePrice.EffectiveDateFrom = '20121201'; |
| | | PurchasePrice.EffectiveDateTo = '29121204'; |
| | | PurchasePrice.PurposeOfAdvice = '2'; |
| | | |
| | | System.Test.startTest(); |
| | | NFM004WebService.NFM004(PurchasePrices); |
| | | System.Test.stopTest(); |
| | | |
| | | List<Product2> rslts = [select Id, ProductCode, ProductCode_Ext__c, |
| | | Intra_Trade_Cost_RMB_1__c, |
| | | Intra_Trade_Cost_RMB_Date1__c, |
| | | Intra_Trade_Cost_RMB_End_Date1__c, |
| | | Intra_Trade_Cost_RMB_2__c, |
| | | Intra_Trade_Cost_RMB_Date2__c, |
| | | Intra_Trade_Cost_RMB_End_Date2__c, |
| | | Foreign_Trade_Cost_US_1__c, |
| | | Foreign_Trade_Cost_US_Date1__c, |
| | | Foreign_Trade_Cost_US_End_Date1__c, |
| | | Foreign_Trade_Cost_US_2__c, |
| | | Foreign_Trade_Cost_US_Date2__c, |
| | | Foreign_Trade_Cost_US_End_Date2__c, |
| | | Intra_Trade_Cost_US__c, |
| | | Intra_Trade_Cost_US_Date__c, |
| | | Intra_Trade_Cost_US_End_Date__c, |
| | | Foreign_Trade_Cost_RMB__c, |
| | | Foreign_Trade_Cost_RMB_Date__c, |
| | | Foreign_Trade_Cost_RMB_End_Date__c |
| | | from Product2 |
| | | where ProductCode_Ext__c = :PurchasePrice.SuppliersItemCode]; |
| | | // deleteã®å ´åãEffectiveDateTo ã忥 |
| | | System.assertEquals(1, rslts.size()); |
| | | System.assertEquals(201.87, rslts[0].Foreign_Trade_Cost_US_2__c); |
| | | System.assertEquals(date.newinstance(2012, 12, 01), rslts[0].Foreign_Trade_Cost_US_Date2__c); |
| | | System.assertEquals(date.newinstance(2912, 12, 04), rslts[0].Foreign_Trade_Cost_US_End_Date2__c); |
| | | } |
| | | } |
| New file |
| | |
| | | // RowDataãæ®ãããã@future execute ã«ãã¾ã |
| | | global class NFM006WebService { |
| | | // Integer batchsize = 200; èéããå¿
è¦ããªãã¨æãã¾ãã |
| | | global class SFDAStatuses { |
| | | webservice NFMUtil.Monitoring Monitoring; |
| | | webservice NFM006WebService.SFDAStatus[] SFDAStatus; |
| | | } |
| | | global class SFDAStatus { |
| | | webservice String ItemCode; |
| | | webservice String Status; |
| | | webservice String SFDANo; |
| | | webservice String EffectiveDateFrom; |
| | | webservice String EffectiveDateTo; |
| | | webservice String PurposeOfAdvice; |
| | | } |
| | | |
| | | // éåæãè¦ãããã常ã«return void |
| | | webservice static void NFM006(NFM006WebService.SFDAStatuses SFDAStatuses) { |
| | | if (SFDAStatuses == null) { |
| | | return; |
| | | } |
| | | NFMUtil.Monitoring Monitoring = SFDAStatuses.Monitoring; |
| | | if (Monitoring == null) { |
| | | return; |
| | | } |
| | | BatchIF_Log__c rowData = NFMUtil.saveRowData(Monitoring, 'NFM006', SFDAStatuses.SFDAStatus); |
| | | if (String.isBlank(rowData.Log__c) == false) executefuture(rowData.Id); |
| | | } |
| | | |
| | | @future |
| | | global static void executefuture(String rowData_Id) { |
| | | execute(rowData_Id); |
| | | } |
| | | global static void execute(String rowData_Id) { |
| | | Integer batch_retry_max_cnt = Integer.valueOf(System.Label.batch_retry_max_cnt); |
| | | BatchIF_Log__c rowData = [Select Id, Name, Log__c, ErrorLog__c, Log2__c, Log3__c, Log4__c, Log5__c, Log6__c, Log7__c, Log8__c, Log9__c, Log10__c, Log11__c, Log12__c, MessageGroupNumber__c from BatchIF_Log__c where RowDataFlg__c = true and Id = :rowData_Id]; |
| | | String logstr = rowData.MessageGroupNumber__c + ' start\n'; |
| | | BatchIF_Log__c iflog = new BatchIF_Log__c(); |
| | | iflog.Type__c = 'NFM006'; |
| | | iflog.MessageGroupNumber__c = rowData.MessageGroupNumber__c; |
| | | iflog.Log__c = logstr; |
| | | iflog.ErrorLog__c = ''; |
| | | insert iflog; |
| | | |
| | | String rowDataStr = NFMUtil.getRowDataStr(rowData); |
| | | List<SFDAStatus> sFDAStatusList = (List<SFDAStatus>) JSON.deserialize(rowDataStr, List<SFDAStatus>.class); |
| | | |
| | | if (sFDAStatusList == null || sFDAStatusList.size() == 0) { |
| | | return; |
| | | } |
| | | |
| | | // BatchIF転é表 ãããã³ã¼ã夿ã®Mapã使 |
| | | Map<String, String> transferMap = new Map<String, String>(); |
| | | List<BatchIF_Transfer__c> transferList = [select Table__c, |
| | | Column__c, |
| | | External_value__c, |
| | | Internal_value__c |
| | | from BatchIF_Transfer__c |
| | | where Dropped_Flag__c = false |
| | | and Table__c = 'Product2']; |
| | | for (BatchIF_Transfer__c t : transferList) { |
| | | transferMap.put(t.Column__c + t.External_value__c, t.Internal_value__c); |
| | | } |
| | | |
| | | Savepoint sp = Database.setSavepoint(); |
| | | try { |
| | | // æ´æ°å¯¾å¿é
åã¨Mapãªã©ãã»ãã |
| | | List<String> productCodeList = new List<String>(); |
| | | for (NFM006WebService.SFDAStatus SFDAStatus : sFDAStatusList) { |
| | | if (SFDAStatus.PurposeOfAdvice == '1') { |
| | | // deleteãç¡è¦ |
| | | continue; |
| | | } |
| | | if (SFDAStatus.ItemCode == null || SFDAStatus.ItemCode == '' || |
| | | SFDAStatus.Status == null || SFDAStatus.Status == '' |
| | | ) { |
| | | // å¿
é é
ç®ããªãå ´åãå¦çã¨é£ã°ã |
| | | continue; |
| | | } |
| | | productCodeList.add(SFDAStatus.ItemCode); |
| | | } |
| | | List<Product2> prdList = [select Id, Name, ProductCode, ProductCode_Ext__c, |
| | | SFDA_Status__c, |
| | | SFDA_Approbation_No__c, |
| | | SFDA_Approbated_Date__c, |
| | | SFDA_Expiration_Date__c |
| | | from Product2 |
| | | where ProductCode_Ext__c in :productCodeList]; |
| | | Map<String, Product2> prdsMap = new Map<String, Product2>(); |
| | | for (Product2 prd : prdList) { |
| | | prdsMap.put(prd.ProductCode_Ext__c, prd); |
| | | } |
| | | |
| | | // æ´æ°å¯¾å¿é
åãã»ãã |
| | | prdList = new List<Product2>(); |
| | | Map<String, Product2> prdUpdateMap = new Map<String, Product2>(); |
| | | for (NFM006WebService.SFDAStatus SFDAStatus : sFDAStatusList) { |
| | | if (SFDAStatus.PurposeOfAdvice == '1') { |
| | | // deleteãç¡è¦ |
| | | logstr += 'PurposeOfAdvice==1 '; |
| | | continue; |
| | | } |
| | | if (SFDAStatus.ItemCode == null || SFDAStatus.ItemCode == '') { |
| | | // å¿
é é
ç®ããªãå ´åãå¦çã¨é£ã°ã |
| | | iflog.ErrorLog__c += 'ItemCode is required\n'; |
| | | continue; |
| | | } |
| | | if (SFDAStatus.Status == null || SFDAStatus.Status == '' || |
| | | NFMUtil.getMapValue(transferMap, 'SFDA_Status__c', SFDAStatus.Status, iflog) == SFDAStatus.Status |
| | | ) { |
| | | // å¿
é é
ç®ããªãå ´åãå¦çã¨é£ã°ã |
| | | iflog.ErrorLog__c += '[' + SFDAStatus.ItemCode + ']Status is required\n'; |
| | | continue; |
| | | } |
| | | Product2 prd = prdsMap.get(SFDAStatus.ItemCode); |
| | | if (prd == null) { |
| | | // æ´æ°å¯¾è±¡ååããªãå ´å |
| | | prd = new Product2(); |
| | | prd.Name = SFDAStatus.ItemCode; |
| | | } |
| | | |
| | | // é
ç®è»¢éã®ã»ãã |
| | | prd.ProductCode = SFDAStatus.ItemCode; |
| | | if (prdUpdateMap.get(prd.ProductCode) == null) { |
| | | prdList.add(prd); |
| | | prdUpdateMap.put(prd.ProductCode, prd); |
| | | logstr += SFDAStatus.ItemCode + '(' + SFDAStatus.Status + ') '; |
| | | } else { |
| | | prd = prdUpdateMap.get(prd.ProductCode); |
| | | logstr += SFDAStatus.ItemCode + '(' + SFDAStatus.Status + ') '; |
| | | } |
| | | prd.SFDA_Status__c = NFMUtil.getMapValue(transferMap, 'SFDA_Status__c', SFDAStatus.Status, iflog); |
| | | prd.SFDA_Approbation_No__c = SFDAStatus.SFDANo; |
| | | prd.SFDA_Approbated_Date__c = NFMUtil.parseStr2Date(SFDAStatus.EffectiveDateFrom, false); |
| | | prd.SFDA_Expiration_Date__c = NFMUtil.parseStr2Date(SFDAStatus.EffectiveDateTo); |
| | | } |
| | | if (prdList.size() > 0) { |
| | | upsert prdList; |
| | | } |
| | | logstr += '\nend'; |
| | | rowData.retry_cnt__c=0; |
| | | } catch(Exception ex) { |
| | | // ã¨ã©ã¼ãçºçããå ´å |
| | | Database.rollback(sp); |
| | | System.debug(Logginglevel.ERROR, 'NFM006_' + rowData.MessageGroupNumber__c + ':' + ex.getMessage()); |
| | | System.debug(Logginglevel.ERROR, 'NFM006_' + rowData.MessageGroupNumber__c + ':' + ex.getStackTraceString()); |
| | | logstr += '\n' + ex.getMessage(); |
| | | iflog.ErrorLog__c = ex.getMessage() + '\n' + ex.getStackTraceString() + '\n' + iflog.ErrorLog__c; |
| | | if (rowData.retry_cnt__c == null) rowData.retry_cnt__c = 0; |
| | | if (rowData.retry_cnt__c < batch_retry_max_cnt){ |
| | | rowData.retry_cnt__c++; |
| | | LogAutoSendSchedule.assignOneMinute(); |
| | | } |
| | | if (rowData.retry_cnt__c >= batch_retry_max_cnt){ |
| | | rowData.ErrorLog__c = ex.getMessage() + '\n' + ex.getStackTraceString() + '\n' + rowData.ErrorLog__c+'é误次æ°å·²ç»è¶
è¿èªå¨æ¶ä¿¡è®¾å®çæå¤§æ¬¡æ°ï¼è¯·æå¨æ¶ä¿¡'; |
| | | } |
| | | } |
| | | update rowData; |
| | | iflog.Log__c = logstr; |
| | | if (iflog.Log__c.length() > 131072) { |
| | | iflog.Log__c = iflog.Log__c.subString(0, 131065) + ' ...'; |
| | | } |
| | | if (iflog.ErrorLog__c.length() > 32768) { |
| | | iflog.ErrorLog__c = iflog.ErrorLog__c.subString(0, 32760) + ' ...'; |
| | | } |
| | | update iflog; |
| | | } |
| | | } |
| New file |
| | |
| | | @isTest |
| | | private class NFM006WebServiceTest { |
| | | |
| | | @isTest |
| | | static void testNFM006_void() { |
| | | // ãã¹ããã¼ã¿ |
| | | List<BatchIF_Transfer__c> transfers = new List<BatchIF_Transfer__c>(); |
| | | BatchIF_Transfer__c transfer = new BatchIF_Transfer__c(); |
| | | transfer.Table__c = 'Product2'; |
| | | transfer.Column__c = 'SFDA_Status__c'; |
| | | transfer.External_Value__c = '1541-01'; |
| | | transfer.Internal_Value__c = 'ä¸è¦'; |
| | | transfers.add(transfer); |
| | | transfer = new BatchIF_Transfer__c(); |
| | | transfer.Table__c = 'Product2'; |
| | | transfer.Column__c = 'SFDA_Status__c'; |
| | | transfer.External_Value__c = '1541-10'; |
| | | transfer.Internal_Value__c = 'æºåä¸'; |
| | | transfers.add(transfer); |
| | | insert transfers; |
| | | |
| | | // null |
| | | NFM006WebService.NFM006(null); |
| | | |
| | | NFM006WebService.SFDAStatus SFDAStatus = new NFM006WebService.SFDAStatus(); |
| | | NFM006WebService.SFDAStatuses SFDAStatuses = new NFM006WebService.SFDAStatuses(); |
| | | SFDAStatuses.SFDAStatus = new NFM006WebService.SFDAStatus[] { SFDAStatus }; |
| | | // Monitoringãã»ããããªã |
| | | NFM006WebService.NFM006(SFDAStatuses); |
| | | |
| | | Datetime nowDT = Datetime.now(); |
| | | String nowStr = nowDT.format('yyyyMMddHHmm'); |
| | | SFDAStatuses.Monitoring = new NFMUtil.Monitoring(); |
| | | SFDAStatuses.Monitoring.MessageGroupNumber = nowStr + '01'; |
| | | // å¿
é é
ç®ãã»ããããªã |
| | | NFM006WebService.NFM006(SFDAStatuses); |
| | | SFDAStatuses.Monitoring.MessageGroupNumber = nowStr + '02'; |
| | | SFDAStatus.ItemCode = 'NFM006Tst1'; |
| | | NFM006WebService.NFM006(SFDAStatuses); |
| | | |
| | | Product2[] rslts = [select Id from Product2]; |
| | | System.assertEquals(0, rslts.size()); |
| | | } |
| | | |
| | | @isTest |
| | | static void testNFM006_insert() { |
| | | // ãã¹ããã¼ã¿ |
| | | List<BatchIF_Transfer__c> transfers = new List<BatchIF_Transfer__c>(); |
| | | BatchIF_Transfer__c transfer = new BatchIF_Transfer__c(); |
| | | transfer.Table__c = 'Product2'; |
| | | transfer.Column__c = 'SFDA_Status__c'; |
| | | transfer.External_Value__c = '1541-01'; |
| | | transfer.Internal_Value__c = 'ä¸è¦'; |
| | | transfers.add(transfer); |
| | | transfer = new BatchIF_Transfer__c(); |
| | | transfer.Table__c = 'Product2'; |
| | | transfer.Column__c = 'SFDA_Status__c'; |
| | | transfer.External_Value__c = '1541-10'; |
| | | transfer.Internal_Value__c = 'æºåä¸'; |
| | | transfers.add(transfer); |
| | | insert transfers; |
| | | |
| | | NFM006WebService.SFDAStatus SFDAStatus = new NFM006WebService.SFDAStatus(); |
| | | NFM006WebService.SFDAStatus SFDAStatus2 = new NFM006WebService.SFDAStatus(); |
| | | NFM006WebService.SFDAStatuses SFDAStatuses = new NFM006WebService.SFDAStatuses(); |
| | | SFDAStatuses.SFDAStatus = new NFM006WebService.SFDAStatus[] { SFDAStatus, SFDAStatus2 }; |
| | | |
| | | // Monitoringã®è¨å® |
| | | Datetime nowDT = Datetime.now(); |
| | | String nowStr = nowDT.format('yyyyMMddHHmm'); |
| | | SFDAStatuses.Monitoring = new NFMUtil.Monitoring(); |
| | | SFDAStatuses.Monitoring.MessageGroupNumber = nowStr + '11'; |
| | | |
| | | // insert |
| | | SFDAStatus.ItemCode = 'NFM006Tst1'; |
| | | SFDAStatus.Status = '1541-01'; |
| | | SFDAStatus.SFDANo = 'SFDA(I)20053221287'; |
| | | SFDAStatus.EffectiveDateFrom = '20110502'; |
| | | SFDAStatus.EffectiveDateTo = '99991230'; |
| | | SFDAStatus.PurposeOfAdvice = '2'; |
| | | SFDAStatus2.ItemCode = 'NFM006Tst1'; |
| | | SFDAStatus2.Status = '1541-01'; |
| | | SFDAStatus2.SFDANo = 'SFDA(I)20053221287'; |
| | | SFDAStatus2.EffectiveDateFrom = '20110501'; |
| | | SFDAStatus2.EffectiveDateTo = '99991231'; |
| | | SFDAStatus2.PurposeOfAdvice = '2'; |
| | | |
| | | System.Test.startTest(); |
| | | NFM006WebService.NFM006(SFDAStatuses); |
| | | System.Test.stopTest(); |
| | | Product2[] rslts = [select Id, ProductCode, ProductCode_Ext__c, |
| | | SFDA_Status__c, |
| | | SFDA_Approbation_No__c, |
| | | SFDA_Approbated_Date__c, |
| | | SFDA_Expiration_Date__c |
| | | from Product2 |
| | | where ProductCode_Ext__c = :SFDAStatus.ItemCode]; |
| | | System.assertEquals(1, rslts.size()); |
| | | if (rslts.size() == 1) { |
| | | System.assertEquals('NFM006Tst1', rslts[0].ProductCode); |
| | | System.assertEquals('ä¸è¦', rslts[0].SFDA_Status__c); |
| | | System.assertEquals('SFDA(I)20053221287', rslts[0].SFDA_Approbation_No__c); |
| | | System.assertEquals(date.newinstance(2011, 5, 1), rslts[0].SFDA_Approbated_Date__c); |
| | | System.assertEquals(date.newinstance(4000, 12, 31), rslts[0].SFDA_Expiration_Date__c); |
| | | } |
| | | } |
| | | |
| | | @isTest |
| | | static void testNFM006_update() { |
| | | Product2 pro1 = new Product2(Name='NFM006Tst1',IsActive=true,Family='GI',Asset_Model_No__c='n01',Serial_Lot_No__c='S/N tracing',Manual_Entry__c=false); |
| | | Product2 pro2 = new Product2(Name='NFM006Tst2',IsActive=true,Family='GI',Asset_Model_No__c='n02',Serial_Lot_No__c='Lot tracing',Manual_Entry__c=false); |
| | | insert new Product2[] {pro1, pro2}; |
| | | pro1.ProductCode_Ext__c = 'NFM006Tst1'; |
| | | pro2.ProductCode_Ext__c = 'NFM006Tst2'; |
| | | update new Product2[] {pro1, pro2}; |
| | | Product2[] rslts = [select Id, ProductCode, ProductCode_Ext__c, |
| | | SFDA_Status__c, |
| | | SFDA_Approbation_No__c, |
| | | SFDA_Approbated_Date__c, |
| | | SFDA_Expiration_Date__c |
| | | from Product2 |
| | | where ProductCode_Ext__c = :pro2.ProductCode_Ext__c]; |
| | | System.assertEquals(1, rslts.size()); |
| | | |
| | | // ãã¹ããã¼ã¿ |
| | | List<BatchIF_Transfer__c> transfers = new List<BatchIF_Transfer__c>(); |
| | | BatchIF_Transfer__c transfer = new BatchIF_Transfer__c(); |
| | | transfer.Table__c = 'Product2'; |
| | | transfer.Column__c = 'SFDA_Status__c'; |
| | | transfer.External_Value__c = '1541-01'; |
| | | transfer.Internal_Value__c = 'ä¸è¦'; |
| | | transfers.add(transfer); |
| | | transfer = new BatchIF_Transfer__c(); |
| | | transfer.Table__c = 'Product2'; |
| | | transfer.Column__c = 'SFDA_Status__c'; |
| | | transfer.External_Value__c = '1541-10'; |
| | | transfer.Internal_Value__c = 'æºåä¸'; |
| | | transfers.add(transfer); |
| | | insert transfers; |
| | | |
| | | NFM006WebService.SFDAStatus SFDAStatus = new NFM006WebService.SFDAStatus(); |
| | | NFM006WebService.SFDAStatus SFDAStatus2 = new NFM006WebService.SFDAStatus(); |
| | | NFM006WebService.SFDAStatuses SFDAStatuses = new NFM006WebService.SFDAStatuses(); |
| | | SFDAStatuses.SFDAStatus = new NFM006WebService.SFDAStatus[] { SFDAStatus, SFDAStatus2 }; |
| | | |
| | | // Monitoringã®è¨å® |
| | | Datetime nowDT = Datetime.now(); |
| | | String nowStr = nowDT.format('yyyyMMddHHmm'); |
| | | SFDAStatuses.Monitoring = new NFMUtil.Monitoring(); |
| | | SFDAStatuses.Monitoring.MessageGroupNumber = nowStr + '21'; |
| | | |
| | | // update |
| | | SFDAStatus.ItemCode = 'NFM006Tst1'; |
| | | SFDAStatus.Status = '1541-10'; |
| | | SFDAStatus.SFDANo = 'SFDA(J)20053221287'; |
| | | SFDAStatus.EffectiveDateFrom = '20120501'; |
| | | SFDAStatus.EffectiveDateTo = '20131231'; |
| | | SFDAStatus.PurposeOfAdvice = '3'; |
| | | SFDAStatus2.ItemCode = 'NFM006Tst2'; |
| | | SFDAStatus2.Status = '1541-01'; |
| | | SFDAStatus2.SFDANo = 'SFDA(K)20053221287'; |
| | | SFDAStatus2.EffectiveDateFrom = '19000101'; |
| | | SFDAStatus2.EffectiveDateTo = '99991230'; |
| | | SFDAStatus2.PurposeOfAdvice = '2'; |
| | | |
| | | System.Test.startTest(); |
| | | NFM006WebService.NFM006(SFDAStatuses); |
| | | System.Test.stopTest(); |
| | | rslts = [select Id, ProductCode, ProductCode_Ext__c, |
| | | SFDA_Status__c, |
| | | SFDA_Approbation_No__c, |
| | | SFDA_Approbated_Date__c, |
| | | SFDA_Expiration_Date__c |
| | | from Product2 |
| | | where ProductCode_Ext__c = :SFDAStatus.ItemCode]; |
| | | System.assertEquals(1, rslts.size()); |
| | | if (rslts.size() == 1) { |
| | | System.assertEquals('NFM006Tst1', rslts[0].ProductCode); |
| | | System.assertEquals('æºåä¸', rslts[0].SFDA_Status__c); |
| | | System.assertEquals('SFDA(J)20053221287', rslts[0].SFDA_Approbation_No__c); |
| | | System.assertEquals(date.newinstance(2012, 5, 1), rslts[0].SFDA_Approbated_Date__c); |
| | | System.assertEquals(date.newinstance(2013, 12, 31), rslts[0].SFDA_Expiration_Date__c); |
| | | } |
| | | rslts = [select Id, ProductCode, ProductCode_Ext__c, |
| | | SFDA_Status__c, |
| | | SFDA_Approbation_No__c, |
| | | SFDA_Approbated_Date__c, |
| | | SFDA_Expiration_Date__c |
| | | from Product2 |
| | | where ProductCode_Ext__c = :SFDAStatus2.ItemCode]; |
| | | System.assertEquals(1, rslts.size()); |
| | | if (rslts.size() == 1) { |
| | | System.assertEquals('NFM006Tst2', rslts[0].ProductCode); |
| | | System.assertEquals('ä¸è¦', rslts[0].SFDA_Status__c); |
| | | System.assertEquals('SFDA(K)20053221287', rslts[0].SFDA_Approbation_No__c); |
| | | System.assertEquals(date.newinstance(1900, 1, 1), rslts[0].SFDA_Approbated_Date__c); |
| | | System.assertEquals(date.newinstance(4000, 12, 31), rslts[0].SFDA_Expiration_Date__c); |
| | | } |
| | | } |
| | | |
| | | @isTest |
| | | static void testNFM006_delete() { |
| | | Product2 pro1 = new Product2(Name='NFM006Tst1',IsActive=true,Family='GI',Asset_Model_No__c='n01',Serial_Lot_No__c='S/N tracing',Manual_Entry__c=false); |
| | | insert new Product2[] {pro1}; |
| | | pro1.ProductCode_Ext__c = 'NFM006Tst1'; |
| | | update new Product2[] {pro1}; |
| | | Product2[] rslts = [select Id, ProductCode, ProductCode_Ext__c, |
| | | SFDA_Status__c, |
| | | SFDA_Approbation_No__c, |
| | | SFDA_Approbated_Date__c, |
| | | SFDA_Expiration_Date__c |
| | | from Product2 |
| | | where ProductCode_Ext__c = :pro1.ProductCode_Ext__c]; |
| | | // deleteã¯ç¡è¦ |
| | | System.assertEquals(1, rslts.size()); |
| | | |
| | | // ãã¹ããã¼ã¿ |
| | | List<BatchIF_Transfer__c> transfers = new List<BatchIF_Transfer__c>(); |
| | | BatchIF_Transfer__c transfer = new BatchIF_Transfer__c(); |
| | | transfer.Table__c = 'Product2'; |
| | | transfer.Column__c = 'SFDA_Status__c'; |
| | | transfer.External_Value__c = '1541-01'; |
| | | transfer.Internal_Value__c = 'ä¸è¦'; |
| | | transfers.add(transfer); |
| | | transfer = new BatchIF_Transfer__c(); |
| | | transfer.Table__c = 'Product2'; |
| | | transfer.Column__c = 'SFDA_Status__c'; |
| | | transfer.External_Value__c = '1541-10'; |
| | | transfer.Internal_Value__c = 'æºåä¸'; |
| | | transfers.add(transfer); |
| | | insert transfers; |
| | | |
| | | NFM006WebService.SFDAStatus SFDAStatus = new NFM006WebService.SFDAStatus(); |
| | | NFM006WebService.SFDAStatuses SFDAStatuses = new NFM006WebService.SFDAStatuses(); |
| | | SFDAStatuses.SFDAStatus = new NFM006WebService.SFDAStatus[] { SFDAStatus }; |
| | | |
| | | // Monitoringã®è¨å® |
| | | Datetime nowDT = Datetime.now(); |
| | | String nowStr = nowDT.format('yyyyMMddHHmm'); |
| | | SFDAStatuses.Monitoring = new NFMUtil.Monitoring(); |
| | | SFDAStatuses.Monitoring.MessageGroupNumber = nowStr + '31'; |
| | | |
| | | // delete |
| | | SFDAStatus.ItemCode = 'NFM006Tst1'; |
| | | SFDAStatus.Status = '1541-10'; |
| | | SFDAStatus.SFDANo = 'SFDA(J)20053221287'; |
| | | SFDAStatus.EffectiveDateFrom = '20120501'; |
| | | SFDAStatus.EffectiveDateTo = '20131231'; |
| | | SFDAStatus.PurposeOfAdvice = '1'; |
| | | |
| | | System.Test.startTest(); |
| | | NFM006WebService.NFM006(SFDAStatuses); |
| | | System.Test.stopTest(); |
| | | rslts = [select Id, ProductCode, ProductCode_Ext__c, |
| | | SFDA_Status__c, |
| | | SFDA_Approbation_No__c, |
| | | SFDA_Approbated_Date__c, |
| | | SFDA_Expiration_Date__c |
| | | from Product2 |
| | | where ProductCode_Ext__c = :SFDAStatus.ItemCode]; |
| | | // deleteã¯ç¡è¦ |
| | | System.assertEquals(1, rslts.size()); |
| | | } |
| | | |
| | | //resend_test |
| | | static testMethod void resend_test() { |
| | | |
| | | // ãã¹ããã¼ã¿ |
| | | List<BatchIF_Transfer__c> transfers = new List<BatchIF_Transfer__c>(); |
| | | BatchIF_Transfer__c transfer = new BatchIF_Transfer__c(); |
| | | transfer.Table__c = 'Product2'; |
| | | transfer.Column__c = 'SFDA_Status__c'; |
| | | transfer.External_Value__c = '1541-01'; |
| | | transfer.Internal_Value__c = 'ä¸è¦'; |
| | | transfers.add(transfer); |
| | | transfer = new BatchIF_Transfer__c(); |
| | | transfer.Table__c = 'Product2'; |
| | | transfer.Column__c = 'SFDA_Status__c'; |
| | | transfer.External_Value__c = '1541-10'; |
| | | transfer.Internal_Value__c = 'æºåä¸'; |
| | | transfers.add(transfer); |
| | | insert transfers; |
| | | |
| | | NFM006WebService.SFDAStatus SFDAStatus = new NFM006WebService.SFDAStatus(); |
| | | NFM006WebService.SFDAStatus SFDAStatus2 = new NFM006WebService.SFDAStatus(); |
| | | NFM006WebService.SFDAStatuses SFDAStatuses = new NFM006WebService.SFDAStatuses(); |
| | | SFDAStatuses.SFDAStatus = new NFM006WebService.SFDAStatus[] { SFDAStatus, SFDAStatus2 }; |
| | | |
| | | // Monitoringã®è¨å® |
| | | Datetime nowDT = Datetime.now(); |
| | | String nowStr = nowDT.format('yyyyMMddHHmm'); |
| | | SFDAStatuses.Monitoring = new NFMUtil.Monitoring(); |
| | | SFDAStatuses.Monitoring.MessageGroupNumber = nowStr + '21'; |
| | | |
| | | // update |
| | | SFDAStatus.ItemCode = 'NFM006Tst1'; |
| | | SFDAStatus.Status = '1541-10'; |
| | | SFDAStatus.SFDANo = 'SFDA(J)20053221287'; |
| | | SFDAStatus.EffectiveDateFrom = '20120501'; |
| | | SFDAStatus.EffectiveDateTo = '20131231'; |
| | | SFDAStatus.PurposeOfAdvice = '3'; |
| | | SFDAStatus2.ItemCode = 'NFM006Tst2'; |
| | | SFDAStatus2.Status = '1541-01'; |
| | | SFDAStatus2.SFDANo = 'SFDA(K)20053221287'; |
| | | SFDAStatus2.EffectiveDateFrom = '19000101'; |
| | | SFDAStatus2.EffectiveDateTo = '99991230'; |
| | | SFDAStatus2.PurposeOfAdvice = '2'; |
| | | System.Test.startTest(); |
| | | NFM006WebService.NFM006(SFDAStatuses); |
| | | System.Test.stopTest(); |
| | | Product2[] rslts = [select Id, ProductCode, ProductCode_Ext__c, |
| | | SFDA_Status__c, |
| | | SFDA_Approbation_No__c, |
| | | SFDA_Approbated_Date__c, |
| | | SFDA_Expiration_Date__c |
| | | from Product2 |
| | | where ProductCode_Ext__c = :SFDAStatus.ItemCode]; |
| | | System.assertEquals(1, rslts.size()); |
| | | if (rslts.size() == 1) { |
| | | System.assertEquals('NFM006Tst1', rslts[0].ProductCode); |
| | | System.assertEquals('æºåä¸', rslts[0].SFDA_Status__c); |
| | | System.assertEquals('SFDA(J)20053221287', rslts[0].SFDA_Approbation_No__c); |
| | | System.assertEquals(date.newinstance(2012, 5, 1), rslts[0].SFDA_Approbated_Date__c); |
| | | System.assertEquals(date.newinstance(2013, 12, 31), rslts[0].SFDA_Expiration_Date__c); |
| | | } |
| | | rslts = [select Id, ProductCode, ProductCode_Ext__c, |
| | | SFDA_Status__c, |
| | | SFDA_Approbation_No__c, |
| | | SFDA_Approbated_Date__c, |
| | | SFDA_Expiration_Date__c |
| | | from Product2 |
| | | where ProductCode_Ext__c = :SFDAStatus2.ItemCode]; |
| | | System.assertEquals(1, rslts.size()); |
| | | if (rslts.size() == 1) { |
| | | System.assertEquals('NFM006Tst2', rslts[0].ProductCode); |
| | | System.assertEquals('ä¸è¦', rslts[0].SFDA_Status__c); |
| | | System.assertEquals('SFDA(K)20053221287', rslts[0].SFDA_Approbation_No__c); |
| | | System.assertEquals(date.newinstance(1900, 1, 1), rslts[0].SFDA_Approbated_Date__c); |
| | | System.assertEquals(date.newinstance(4000, 12, 31), rslts[0].SFDA_Expiration_Date__c); |
| | | } |
| | | |
| | | List<BatchIF_Log__c> rowbl = [Select Id, Log__c, |
| | | ErrorLog__c |
| | | from BatchIF_Log__c |
| | | where RowDataFlg__c = true |
| | | and Type__c = 'NFM006' |
| | | order by CreatedDate desc]; |
| | | System.assertEquals(1, rowbl.size()); |
| | | rowbl[0].retry_cnt__c = 1; |
| | | update rowbl; |
| | | |
| | | NFM006WebService.execute(rowbl[0].id); |
| | | |
| | | List<BatchIF_Log__c> 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(1, bl.size()); |
| | | System.assertEquals(0, bl[0].retry_cnt__c); |
| | | } |
| | | } |
| New file |
| | |
| | | // RowDataãæ®ãããã@future execute ã«ãã¾ã |
| | | global class NFM012WebService { |
| | | // Integer batchsize = 200; èéããå¿
è¦ããªãã¨æãã¾ãã |
| | | global class Deposit { |
| | | webservice NFMUtil.Monitoring Monitoring; |
| | | webservice NFM012WebService.GeneralData[] GeneralData; |
| | | } |
| | | global class GeneralData { |
| | | webservice String EndUserNo; // DealerNumber |
| | | webservice String UpdateDate; // æ´æ°æ¥æ |
| | | webservice Decimal DepositAmount; // ç»ä½éé¢ |
| | | } |
| | | |
| | | // éåæãè¦ãããã常ã«return void |
| | | webservice static void NFM012(NFM012WebService.Deposit Deposit) { |
| | | if (Deposit == null) { |
| | | return; |
| | | } |
| | | NFMUtil.Monitoring Monitoring = Deposit.Monitoring; |
| | | if (Monitoring == null) { |
| | | return; |
| | | } |
| | | BatchIF_Log__c rowData = NFMUtil.saveRowData(Monitoring, 'NFM012', Deposit.GeneralData); |
| | | System.debug('rowData123456:' + rowData); |
| | | if (String.isBlank(rowData.Log__c) == false) executefuture(rowData.Id); |
| | | } |
| | | |
| | | @future |
| | | global static void executefuture(String rowData_Id) { |
| | | execute(rowData_Id); |
| | | } |
| | | global static void execute(String rowData_Id) { |
| | | Integer batch_retry_max_cnt = Integer.valueOf(System.Label.batch_retry_max_cnt); |
| | | BatchIF_Log__c rowData = [Select Id, Name, Log__c, ErrorLog__c, Log2__c, Log3__c, Log4__c, Log5__c, Log6__c, Log7__c, Log8__c, Log9__c, Log10__c, Log11__c, Log12__c, MessageGroupNumber__c,retry_cnt__c from BatchIF_Log__c where RowDataFlg__c = true and Id = :rowData_Id]; |
| | | String logstr = rowData.MessageGroupNumber__c + ' start\n'; |
| | | BatchIF_Log__c iflog = new BatchIF_Log__c(); |
| | | iflog.Type__c = 'NFM012'; |
| | | iflog.MessageGroupNumber__c = rowData.MessageGroupNumber__c; |
| | | iflog.Log__c = logstr; |
| | | iflog.ErrorLog__c = ''; |
| | | insert iflog; |
| | | |
| | | String rowDataStr = NFMUtil.getRowDataStr(rowData); |
| | | List<GeneralData> generalDataList = (List<GeneralData>) JSON.deserialize(rowDataStr, List<GeneralData>.class); |
| | | if (generalDataList == null || generalDataList.size() == 0) { |
| | | return; |
| | | } |
| | | |
| | | Savepoint sp = Database.setSavepoint(); |
| | | try { |
| | | // æ´æ°å¯¾å¿é
åãã»ãã |
| | | List<Account> accList = new List<Account>(); |
| | | Map<String, Account> accUpdateMap = new Map<String, Account>(); |
| | | for (NFM012WebService.GeneralData GeneralData : generalDataList) { |
| | | if (GeneralData.EndUserNo == null || GeneralData.EndUserNo == '') { |
| | | // å¿
é é
ç®ããªãå ´åãå¦çã¨é£ã°ã |
| | | iflog.ErrorLog__c += 'EndUserNo is required\n'; |
| | | continue; |
| | | } |
| | | |
| | | // é
ç®è»¢éã®ã»ãã |
| | | Account acc = new Account(); |
| | | acc.AgentCode_Ext__c = GeneralData.EndUserNo; |
| | | if (accUpdateMap.get(acc.AgentCode_Ext__c) == null) { |
| | | accList.add(acc); |
| | | accUpdateMap.put(acc.AgentCode_Ext__c, acc); |
| | | logstr += GeneralData.EndUserNo + ' '; |
| | | } else { |
| | | acc = accUpdateMap.get(acc.AgentCode_Ext__c); |
| | | } |
| | | acc.Deposit_Receipt_Completion_Day__c = NFMUtil.parseStr2Date(GeneralData.UpdateDate); |
| | | acc.Deposit_Receipt_Finished__c = GeneralData.DepositAmount; |
| | | } |
| | | if (accList.size() > 0) { |
| | | Database.UpsertResult[] srList = Database.upsert(accList, Account.Fields.AgentCode_Ext__c, false); |
| | | // Iterate through each returned result |
| | | for (Integer i = 0; i < srList.size(); i++) { |
| | | Account acc = accList[i]; |
| | | Database.UpsertResult sr = srList[i]; |
| | | if (sr.isSuccess()) { |
| | | // Operation was successful, so get the ID of the record that was processed |
| | | System.debug('Successfully inserted account. Account ID: ' + sr.getId()); |
| | | } |
| | | else { |
| | | // Operation failed, so get all errors |
| | | for(Database.Error err : sr.getErrors()) { |
| | | //System.debug(err.getStatusCode() + ': ' + err.getMessage()); |
| | | iflog.ErrorLog__c += acc.AgentCode_Ext__c + ', ' + err.getStatusCode() + ': ' + err.getMessage() + '\n'; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | logstr += '\nend'; |
| | | rowData.retry_cnt__c=0; |
| | | } catch(Exception ex) { |
| | | // ã¨ã©ã¼ãçºçããå ´å |
| | | Database.rollback(sp); |
| | | System.debug(Logginglevel.ERROR, 'NFM012_' + rowData.MessageGroupNumber__c + ':' + ex.getMessage()); |
| | | System.debug(Logginglevel.ERROR, 'NFM012_' + rowData.MessageGroupNumber__c + ':' + ex.getStackTraceString()); |
| | | logstr += '\n' + ex.getMessage(); |
| | | iflog.ErrorLog__c = ex.getMessage() + '\n' + ex.getStackTraceString() + '\n' + iflog.ErrorLog__c; |
| | | if (rowData.retry_cnt__c == null) rowData.retry_cnt__c = 0; |
| | | if (rowData.retry_cnt__c < batch_retry_max_cnt){ |
| | | rowData.retry_cnt__c++; |
| | | LogAutoSendSchedule.assignOneMinute(); |
| | | } |
| | | if (rowData.retry_cnt__c >= batch_retry_max_cnt){ |
| | | rowData.ErrorLog__c = ex.getMessage() + '\n' + ex.getStackTraceString() + '\n' + rowData.ErrorLog__c+'é误次æ°å·²ç»è¶
è¿èªå¨æ¶ä¿¡è®¾å®çæå¤§æ¬¡æ°ï¼è¯·æå¨æ¶ä¿¡'; |
| | | } |
| | | } |
| | | update rowData; |
| | | iflog.Log__c = logstr; |
| | | if (iflog.Log__c.length() > 131072) { |
| | | iflog.Log__c = iflog.Log__c.subString(0, 131065) + ' ...'; |
| | | } |
| | | if (iflog.ErrorLog__c.length() > 32768) { |
| | | iflog.ErrorLog__c = iflog.ErrorLog__c.subString(0, 32760) + ' ...'; |
| | | } |
| | | update iflog; |
| | | } |
| | | } |
| New file |
| | |
| | | @isTest |
| | | private class NFM012WebServiceTest { |
| | | //resend_test |
| | | static testMethod void resend_test() { |
| | | // ãã¹ããã¼ã¿ |
| | | List<BatchIF_Transfer__c> transfers = new List<BatchIF_Transfer__c>(); |
| | | BatchIF_Transfer__c transfer = new BatchIF_Transfer__c(); |
| | | transfer.Table__c = 'Account'; |
| | | transfer.Column__c = 'Sales_Shop_Class__c'; |
| | | transfer.External_Value__c = '02'; |
| | | transfer.Internal_Value__c = '02Internal'; |
| | | transfers.add(transfer); |
| | | transfer = new BatchIF_Transfer__c(); |
| | | transfer.Table__c = 'Account'; |
| | | transfer.Column__c = 'Sales_Shop_Class__c'; |
| | | transfer.External_Value__c = '03'; |
| | | transfer.Internal_Value__c = '03Internal'; |
| | | transfers.add(transfer); |
| | | insert transfers; |
| | | |
| | | List<RecordType> rects = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売åº']; |
| | | if (rects.size() == 0) { |
| | | return; |
| | | } |
| | | Account myAccount2 = new Account(name='NFM012Tst1',AgentCode_Ext__c = 'NFM012Tst1',RecordTypeId = rects[0].Id); |
| | | insert myAccount2; |
| | | NFM012WebService.Deposit Deposit = new NFM012WebService.Deposit(); |
| | | NFM012WebService.GeneralData GeneralData = new NFM012WebService.GeneralData(); |
| | | Deposit.GeneralData = new NFM012WebService.GeneralData[] { GeneralData }; |
| | | |
| | | // Monitoringã®è¨å® |
| | | Datetime nowDT = Datetime.now(); |
| | | String nowStr = nowDT.format('yyyyMMddHHmm'); |
| | | Deposit.Monitoring = new NFMUtil.Monitoring(); |
| | | Deposit.Monitoring.MessageGroupNumber = nowStr + '21'; |
| | | |
| | | // insert |
| | | GeneralData.EndUserNo = 'NFM012Tst1'; |
| | | GeneralData.UpdateDate = String.valueOf(Date.today()); |
| | | GeneralData.DepositAmount = Decimal.valueOf('10000000'); |
| | | System.Test.startTest(); |
| | | NFM012WebService.NFM012(Deposit); |
| | | System.Test.stopTest(); |
| | | Account[] rslts = [select Management_Code__c, Delete_Flag__c, |
| | | Name, |
| | | Phone, |
| | | Fax, |
| | | Postal_Code__c, |
| | | Address_Together__c, |
| | | Tax_Practice_No__c, |
| | | Tax_Practice_Expiration_Date__c, |
| | | Business_Authorization_No__c, |
| | | Business_Paper_Expiration_Date__c, |
| | | Medical_Equipment_Num__c, |
| | | Medical_Equipment_Expiration_Date__c, |
| | | Registration_Day__c, |
| | | Ban_On_Use_Date__c, |
| | | Sales_Shop_Class__c |
| | | from Account where Deposit_Receipt_Finished__c = :GeneralData.DepositAmount]; |
| | | System.assertEquals(1, rslts.size()); |
| | | if (rslts.size() == 1) { |
| | | System.assertEquals('NFM012Tst1', rslts[0].Management_Code__c); |
| | | System.assertEquals('NFM012Tst1', rslts[0].Name); |
| | | System.assertEquals(False, rslts[0].Delete_Flag__c); |
| | | } |
| | | |
| | | List<BatchIF_Log__c> rowbl = [Select Id, Log__c, ErrorLog__c |
| | | from BatchIF_Log__c |
| | | where RowDataFlg__c = true |
| | | and Type__c = 'NFM012' |
| | | order by CreatedDate desc]; |
| | | System.assertEquals(1, rowbl.size()); |
| | | rowbl[0].retry_cnt__c = 1; |
| | | update rowbl; |
| | | NFM012WebService.execute(rowbl[0].id); |
| | | List<BatchIF_Log__c> 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); |
| | | } |
| | | static testMethod void testNFM012_void() { |
| | | List<BatchIF_Transfer__c> transfers = new List<BatchIF_Transfer__c>(); |
| | | BatchIF_Transfer__c transfer = new BatchIF_Transfer__c(); |
| | | transfer.Table__c = 'Account'; |
| | | transfer.Column__c = 'Sales_Shop_Class__c'; |
| | | transfer.External_Value__c = '02'; |
| | | transfer.Internal_Value__c = '02Internal'; |
| | | transfers.add(transfer); |
| | | transfer = new BatchIF_Transfer__c(); |
| | | transfer.Table__c = 'Account'; |
| | | transfer.Column__c = 'Sales_Shop_Class__c'; |
| | | transfer.External_Value__c = '03'; |
| | | transfer.Internal_Value__c = '03Internal'; |
| | | transfers.add(transfer); |
| | | insert transfers; |
| | | // null |
| | | NFM012WebService.NFM012(null); |
| | | |
| | | NFM012WebService.GeneralData GeneralData = new NFM012WebService.GeneralData(); |
| | | NFM012WebService.Deposit Deposit = new NFM012WebService.Deposit(); |
| | | Deposit.GeneralData = new NFM012WebService.GeneralData[] { GeneralData }; |
| | | // Monitoringãã»ããããªã |
| | | NFM012WebService.NFM012(Deposit); |
| | | |
| | | Datetime nowDT = Datetime.now(); |
| | | String nowStr = nowDT.format('yyyyMMddHHmm'); |
| | | Deposit.Monitoring = new NFMUtil.Monitoring(); |
| | | Deposit.Monitoring.MessageGroupNumber = nowStr + '01'; |
| | | // å¿
é é
ç®ãã»ããããªã |
| | | NFM012WebService.NFM012(Deposit); |
| | | |
| | | Account[] rslts = [select Id from Account]; |
| | | System.assertEquals(0, rslts.size()); |
| | | } |
| | | |
| | | static testMethod void testNFM012_insert(){ |
| | | |
| | | // ãã¹ããã¼ã¿ |
| | | List<BatchIF_Transfer__c> transfers = new List<BatchIF_Transfer__c>(); |
| | | BatchIF_Transfer__c transfer = new BatchIF_Transfer__c(); |
| | | transfer.Table__c = 'Account'; |
| | | transfer.Column__c = 'Sales_Shop_Class__c'; |
| | | transfer.External_Value__c = '02'; |
| | | transfer.Internal_Value__c = '02Internal'; |
| | | transfers.add(transfer); |
| | | transfer = new BatchIF_Transfer__c(); |
| | | transfer.Table__c = 'Account'; |
| | | transfer.Column__c = 'Sales_Shop_Class__c'; |
| | | transfer.External_Value__c = '03'; |
| | | transfer.Internal_Value__c = '03Internal'; |
| | | transfers.add(transfer); |
| | | insert transfers; |
| | | |
| | | NFM012WebService.GeneralData GeneralData = new NFM012WebService.GeneralData(); |
| | | NFM012WebService.GeneralData GeneralData2 = new NFM012WebService.GeneralData(); |
| | | NFM012WebService.Deposit Deposit = new NFM012WebService.Deposit(); |
| | | Deposit.GeneralData = new NFM012WebService.GeneralData[] { GeneralData, GeneralData2 }; |
| | | |
| | | // Monitoringã®è¨å® |
| | | Datetime nowDT = Datetime.now(); |
| | | String nowStr = nowDT.format('yyyyMMddHHmm'); |
| | | Deposit.Monitoring = new NFMUtil.Monitoring(); |
| | | Deposit.Monitoring.MessageGroupNumber = nowStr + '11'; |
| | | |
| | | // insert |
| | | GeneralData.EndUserNo = 'NFM012Tst1'; |
| | | GeneralData.UpdateDate = String.valueOf(Date.today()); |
| | | GeneralData.DepositAmount = Decimal.valueOf('12345678'); |
| | | |
| | | System.Test.startTest(); |
| | | NFM012WebService.NFM012(Deposit); |
| | | System.Test.stopTest(); |
| | | Account[] rslts = [select Management_Code__c, Delete_Flag__c, |
| | | Name, |
| | | Phone, |
| | | Fax, |
| | | Postal_Code__c, |
| | | Address_Together__c, |
| | | Tax_Practice_No__c, |
| | | Tax_Practice_Expiration_Date__c, |
| | | Business_Authorization_No__c, |
| | | Business_Paper_Expiration_Date__c, |
| | | Medical_Equipment_Num__c, |
| | | Medical_Equipment_Expiration_Date__c, |
| | | Registration_Day__c, |
| | | Ban_On_Use_Date__c, |
| | | Sales_Shop_Class__c |
| | | from Account where AgentCode_Ext__c = :GeneralData.EndUserNo]; |
| | | System.assertEquals(0, rslts.size()); |
| | | List<BatchIF_Log__c> bl = [Select Id, Is_Error__c, Type__c, Log__c, ErrorLog__c from BatchIF_Log__c where Type__c = 'NFM012' and RowDataFlg__c = False order by CreatedDate desc]; |
| | | System.assertEquals(true, bl[0].ErrorLog__c.indexOf('NFM012Tst1, FIELD_CUSTOM_VALIDATION_EXCEPTION') >= 0, bl[0].ErrorLog__c); |
| | | } |
| | | |
| | | static testMethod void testNFM012_update(){ |
| | | |
| | | List<BatchIF_Transfer__c> transfers = new List<BatchIF_Transfer__c>(); |
| | | BatchIF_Transfer__c transfer = new BatchIF_Transfer__c(); |
| | | transfer.Table__c = 'Account'; |
| | | transfer.Column__c = 'Sales_Shop_Class__c'; |
| | | transfer.External_Value__c = '02'; |
| | | transfer.Internal_Value__c = '02Internal'; |
| | | transfers.add(transfer); |
| | | transfer = new BatchIF_Transfer__c(); |
| | | transfer.Table__c = 'Account'; |
| | | transfer.Column__c = 'Sales_Shop_Class__c'; |
| | | transfer.External_Value__c = '03'; |
| | | transfer.Internal_Value__c = '03Internal'; |
| | | transfers.add(transfer); |
| | | insert transfers; |
| | | List<RecordType> rects = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売åº']; |
| | | if (rects.size() == 0) { |
| | | return; |
| | | } |
| | | Account myAccount2 = new Account(name='NFM012Tst1',AgentCode_Ext__c = 'NFM012Tst1',RecordTypeId = rects[0].Id); |
| | | insert myAccount2; |
| | | NFM012WebService.Deposit Deposit = new NFM012WebService.Deposit(); |
| | | NFM012WebService.GeneralData GeneralData = new NFM012WebService.GeneralData(); |
| | | Deposit.GeneralData = new NFM012WebService.GeneralData[] { GeneralData }; |
| | | |
| | | // Monitoringã®è¨å® |
| | | Datetime nowDT = Datetime.now(); |
| | | String nowStr = nowDT.format('yyyyMMddHHmm'); |
| | | Deposit.Monitoring = new NFMUtil.Monitoring(); |
| | | Deposit.Monitoring.MessageGroupNumber = nowStr + '21'; |
| | | |
| | | // insert |
| | | GeneralData.EndUserNo = 'NFM012Tst1'; |
| | | GeneralData.UpdateDate = String.valueOf(Date.today()); |
| | | GeneralData.DepositAmount = Decimal.valueOf('10000000'); |
| | | |
| | | System.Test.startTest(); |
| | | NFM012WebService.NFM012(Deposit); |
| | | System.Test.stopTest(); |
| | | Account[] rslts = [select Management_Code__c, Delete_Flag__c, |
| | | Name, |
| | | Phone, |
| | | Fax, |
| | | Postal_Code__c, |
| | | Address_Together__c, |
| | | Tax_Practice_No__c, |
| | | Tax_Practice_Expiration_Date__c, |
| | | Business_Authorization_No__c, |
| | | Business_Paper_Expiration_Date__c, |
| | | Medical_Equipment_Num__c, |
| | | Medical_Equipment_Expiration_Date__c, |
| | | Registration_Day__c, |
| | | Ban_On_Use_Date__c, |
| | | Sales_Shop_Class__c |
| | | from Account where Deposit_Receipt_Finished__c = :GeneralData.DepositAmount]; |
| | | System.assertEquals(1, rslts.size()); |
| | | if (rslts.size() == 1) { |
| | | System.assertEquals('NFM012Tst1', rslts[0].Management_Code__c); |
| | | System.assertEquals('NFM012Tst1', rslts[0].Name); |
| | | System.assertEquals(False, rslts[0].Delete_Flag__c); |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | @isTest //TODO resend unit test |
| | | private class NFM104WebServiceTest { |
| | | |
| | | public static Integer count = 0; |
| | | |
| | | // 使ç¨testSetupå®ä¹åå§å彿° |
| | | @testSetup |
| | | static void setup() { |
| | | List<RecordType> rects = [select Id, Name from RecordType where IsActive = true and SobjectType = 'Account']; |
| | | List<RecordType> rectCo = new List<RecordType>(); |
| | | List<RecordType> rectSct = new List<RecordType>(); |
| | | List<RecordType> rectDpt = new List<RecordType>(); |
| | | List<RecordType> rectAg = new List<RecordType>(); |
| | | for(RecordType rect : rects){ |
| | | if('ç
é¢'.equals(rect.Name)){ |
| | | rectCo.add(rect); |
| | | } |
| | | if('æ¦ç¥ç§å®¤åé¡ æ¶åç§'.equals(rect.Name)){ |
| | | rectSct.add(rect); |
| | | } |
| | | if('診çç§ æ¶åç§'.equals(rect.Name)){ |
| | | rectDpt.add(rect); |
| | | } |
| | | if('販売åº'.equals(rect.Name)){ |
| | | rectAg.add(rect); |
| | | } |
| | | } |
| | | if (rectCo.size() == 0) { |
| | | return; |
| | | } |
| | | if (rectSct.size() == 0) { |
| | | return; |
| | | } |
| | | if (rectDpt.size() == 0) { |
| | | return; |
| | | } |
| | | if (rectAg.size() == 0) { |
| | | return; |
| | | } |
| | | // ãã¹ããã¼ã¿ |
| | | Account company = new Account(); |
| | | company.RecordTypeId = rectCo[0].Id; |
| | | company.Name = 'NFM104TestCompany'; |
| | | upsert company; |
| | | |
| | | Account section = new Account(); |
| | | section.RecordTypeId = rectSct[0].Id; |
| | | section.Name = 'NFM104TestSection'; |
| | | section.ParentId = company.Id; |
| | | upsert section; |
| | | list<Account> sections = [Select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where ParentId = :company.Id and RecordTypeId = :rectSct[0].Id]; |
| | | section = sections[0]; |
| | | |
| | | Account depart = new Account(); |
| | | depart.RecordTypeId = rectDpt[0].Id; |
| | | depart.Name = '*'; |
| | | depart.Department_Name__c = 'NFM104TestDepart'; |
| | | depart.ParentId = section.Id; |
| | | depart.Department_Class__c = section.Id; |
| | | depart.Hospital__c = company.Id; |
| | | upsert depart; |
| | | Account agency1 = new Account(name='Testhosp001',AgentCode_Ext__c = '0000021598', Dealer_discount__c =10,RecordTypeId = rectCo[0].Id); |
| | | upsert agency1; |
| | | // ååå¾ |
| | | List<Account> accList = new List<Account>(); |
| | | company = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :company.Id]; |
| | | accList.add(company); |
| | | accList.add(section); |
| | | depart = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :depart.Id]; |
| | | accList.add(depart); |
| | | |
| | | List<Product2> prdList = new List<Product2>(); |
| | | Product2 prd1 = new Product2(); |
| | | prd1.ProductCode_Ext__c = 'NFM104Prd1'; |
| | | prd1.ProductCode = 'NFM104Prd1'; |
| | | prd1.Repair_Product_Code__c = 'NFM104Prd1_RP'; |
| | | prd1.Name = 'NFM104Prd1'; |
| | | prd1.Manual_Entry__c = false; |
| | | prdList.add(prd1); |
| | | Product2 prd2 = new Product2(); |
| | | prd2.ProductCode_Ext__c = 'NFM104Prd2'; |
| | | prd2.ProductCode = 'NFM104Prd2'; |
| | | prd2.Repair_Product_Code__c = 'NFM104Prd2_RP'; |
| | | prd2.Name = 'NFM104Prd2'; |
| | | prd2.Manual_Entry__c = false; |
| | | prdList.add(prd2); |
| | | insert prdList; |
| | | System.Test.startTest(); |
| | | Asset ast = new Asset(); |
| | | ast.Name = 'NFM104Ast1'; |
| | | ast.AccountId = depart.Id; |
| | | ast.Department_Class__c = section.Id; |
| | | ast.Hospital__c = company.Id; |
| | | ast.Product2Id = prd1.Id; |
| | | ast.SerialNumber = 'NFM104SerialNumber'; |
| | | ast.Guarantee_period_for_products__c = Date.today(); |
| | | ast.InstallDate = Date.today(); |
| | | insert ast; |
| | | /*ast = [select Id, Name, Product_Serial_No__c, AccountId, Department_Class__c, Department_Class__r.Management_Code_Auto__c, Hospital__c, Product2Id, Product2.ProductCode, Product2.Repair_Product_Code__c, SerialNumber |
| | | from Asset |
| | | where Id = :ast.Id]; |
| | | */ |
| | | Repair__c rpr = new Repair__c(); |
| | | rpr.SAPRepairNo__c = 'NFM104Rpr1'; |
| | | rpr.Account__c = depart.Id; |
| | | rpr.Department_Class__c = section.Id; |
| | | rpr.Hospital__c = company.Id; |
| | | rpr.Delivered_Product__c = ast.Id; |
| | | rpr.SalesOfficeCode_selection__c = 'å京'; |
| | | rpr.Status__c = '1.åç宿¯'; |
| | | rpr.Incharge_Staff__c = Userinfo.getUserId(); |
| | | rpr.Repair_Detail__c = 'test'; |
| | | insert rpr; |
| | | |
| | | System.Test.stopTest(); |
| | | } |
| | | |
| | | static testMethod void testNFM104() { |
| | | Repair__c rpr = [select Id, Name, Account__c,Department_Class__c, |
| | | Delivered_Product__c,Hospital__c,SalesOfficeCode_selection__c, |
| | | SAPRepairNo__c,Status__c,Incharge_Staff__c,Repair_Detail__c |
| | | from Repair__c]; |
| | | |
| | | Repair_Quotation__c rq = new Repair_Quotation__c(); |
| | | rq.Name = 'testNFM104'; |
| | | rq.Repair__c = rpr.Id; |
| | | rq.MessageGroupNumber__c = '1'; |
| | | insert rq; |
| | | // ãã®ã¾ã¾return |
| | | NFM104WebServiceTest.testNFM104_void(); |
| | | |
| | | System.Test.startTest(); |
| | | //TODO insert |
| | | NFM104WebServiceTest.testNFM104_insert(rpr); |
| | | //TODO upsert |
| | | //NFM104WebServiceTest.testNFM104_upsert(); |
| | | System.Test.stopTest(); |
| | | } |
| | | |
| | | static void testNFM104_void() { |
| | | // null |
| | | NFM104WebService.NFM104(null); |
| | | |
| | | NFM104WebService.RepairQuotation RepairQuotation = new NFM104WebService.RepairQuotation(); |
| | | NFM104WebService.QuotationHeaderInformation QuotationHeaderInformation = new NFM104WebService.QuotationHeaderInformation(); |
| | | NFM104WebService.DiscountInformation DiscountInformation = new NFM104WebService.DiscountInformation(); |
| | | NFM104WebService.InspectionResultInformation InspectionResultInformation = new NFM104WebService.InspectionResultInformation(); |
| | | NFM104WebService.FailureInformation FailureInformation = new NFM104WebService.FailureInformation(); |
| | | NFM104WebService.ActivityInformation ActivityInformation = new NFM104WebService.ActivityInformation(); |
| | | |
| | | QuotationHeaderInformation.DiscountInformation = new NFM104WebService.DiscountInformation[] { DiscountInformation }; |
| | | QuotationHeaderInformation.InspectionResultInformation = new NFM104WebService.InspectionResultInformation[] { InspectionResultInformation }; |
| | | QuotationHeaderInformation.FailureInformation = new NFM104WebService.FailureInformation[] { FailureInformation }; |
| | | QuotationHeaderInformation.ActivityInformation = new NFM104WebService.ActivityInformation[] { ActivityInformation }; |
| | | RepairQuotation.QuotationHeaderInformation = new NFM104WebService.QuotationHeaderInformation[] { QuotationHeaderInformation }; |
| | | |
| | | // Monitoringãã»ããããªã |
| | | NFM104WebService.NFM104(RepairQuotation); |
| | | |
| | | Datetime nowDT = Datetime.now(); |
| | | String nowStr = nowDT.format('yyyyMMddHHmm'); |
| | | RepairQuotation.Monitoring = new NFMUtil.Monitoring(); |
| | | RepairQuotation.Monitoring.MessageGroupNumber = nowStr + count + '1'; |
| | | // å¿
é é
ç®ãã»ããããªã |
| | | NFM104WebService.NFM104(RepairQuotation); |
| | | |
| | | // ååã³ã¼ããåå¨ããªã |
| | | RepairQuotation.Monitoring.MessageGroupNumber = nowStr + count + '2'; |
| | | count++; |
| | | QuotationHeaderInformation.SAPQuotationNo = 'NFM104X'; |
| | | NFM104WebService.NFM104(RepairQuotation); |
| | | |
| | | Repair_Quotation__c[] rslts = [select Id from Repair_Quotation__c where Name = :QuotationHeaderInformation.SAPQuotationNo]; |
| | | System.assertEquals(0, rslts.size()); |
| | | } |
| | | |
| | | static void testNFM104_insert(Repair__c rpr) { |
| | | NFM104WebService.RepairQuotation RepairQuotation = new NFM104WebService.RepairQuotation(); |
| | | NFM104WebService.QuotationHeaderInformation QuotationHeaderInformation = new NFM104WebService.QuotationHeaderInformation(); |
| | | NFM104WebService.DiscountInformation DiscountInformation = new NFM104WebService.DiscountInformation(); |
| | | NFM104WebService.InspectionResultInformation InspectionResultInformation = new NFM104WebService.InspectionResultInformation(); |
| | | NFM104WebService.FailureInformation FailureInformation = new NFM104WebService.FailureInformation(); |
| | | NFM104WebService.FailureInformation FailureInformation2 = new NFM104WebService.FailureInformation(); |
| | | NFM104WebService.ActivityInformation ActivityInformation = new NFM104WebService.ActivityInformation(); |
| | | |
| | | QuotationHeaderInformation.DiscountInformation = new NFM104WebService.DiscountInformation[] { DiscountInformation }; |
| | | QuotationHeaderInformation.InspectionResultInformation = new NFM104WebService.InspectionResultInformation[] { InspectionResultInformation }; |
| | | QuotationHeaderInformation.FailureInformation = new NFM104WebService.FailureInformation[] { FailureInformation }; |
| | | QuotationHeaderInformation.ActivityInformation = new NFM104WebService.ActivityInformation[] { ActivityInformation }; |
| | | RepairQuotation.QuotationHeaderInformation = new NFM104WebService.QuotationHeaderInformation[] { QuotationHeaderInformation }; |
| | | |
| | | // Monitoringã®è¨å® |
| | | Datetime nowDT = Datetime.now(); |
| | | String nowStr = nowDT.format('yyyyMMddHHmm'); |
| | | RepairQuotation.Monitoring = new NFMUtil.Monitoring(); |
| | | RepairQuotation.Monitoring.MessageGroupNumber = nowStr + count + '1'; |
| | | // insert |
| | | QuotationHeaderInformation.SFDCRepairNo = rpr.Name; |
| | | QuotationHeaderInformation.SAPRepairNo = rpr.SAPRepairNo__c; |
| | | QuotationHeaderInformation.SAPQuotationNo = 'NFM104I'; |
| | | QuotationHeaderInformation.FirstQuotationDate = '20140101'; |
| | | QuotationHeaderInformation.LatestQuotationDate = '20140101'; |
| | | QuotationHeaderInformation.TotalPrice = '64300.34'; |
| | | QuotationHeaderInformation.RepairRank = 'A'; |
| | | QuotationHeaderInformation.CafeteriaFlag = '0000021598'; |
| | | |
| | | DiscountInformation.DiscountType = '11'; |
| | | DiscountInformation.DiscountAmount = '32000.12'; |
| | | |
| | | InspectionResultInformation.InspectionResultFlag = '0000021598'; |
| | | InspectionResultInformation.InspectionComment = 'CCD线é¿åº¦: 248MM ææãSçè±æ¼ã磨æï¼æçº½åçï¼å¸å¼å£ãæ°´æ°å£ã1å·å¤ç®è½»ç£¨æã'; |
| | | InspectionResultInformation.FailureCause = 'å
端é¨éå±ç£¨æä¸¥éï¼æå
¥é¨åé»ç»æ¶ï¼è§åº¦ä¸è¶³ï¼é³åå£ç£¨æï¼2ã3å·å¤ç®åè²ï¼æ°´æ°ä¸ç
ï¼CCDç»ç缺æå¤§äº1/10ï¼æ¶è¶åæ é´å½±ãB级ä¸ä¿®çæ
éï¼CCDç»ç缺æå¤§äº1/10'; |
| | | |
| | | FailureInformation.LocationGroupName = 'å
éè¿æ¥åº§é¨'; |
| | | FailureInformation.LocationName = 'LG导å
æé¨'; |
| | | FailureInformation.PhenomenonName = 'IG导å
æå¼å¸¸ï¼çº¢è£ç¼ãææãå½©è¹æï¼'; |
| | | FailureInformation.CauseName = 'å£å, èå'; |
| | | FailureInformation.DescriptionName = 'ç±äºéæ°ï½¥éæ°´åççå®çå¯¼è´æ°åéæ°´éä¸è½è¾¾å°è§æ ¼å¼ã'; |
| | | |
| | | ActivityInformation.ActivityDescription = 'æå
¥é¨æ¤å¥æ´æ¢'; |
| | | |
| | | //NFM104WebService.NFM104(RepairQuotation); |
| | | BatchIF_Log__c rowData = NFMUtil.saveRowData(RepairQuotation.Monitoring, 'NFM104', RepairQuotation.QuotationHeaderInformation); |
| | | if (String.isBlank(rowData.Log__c) == false) |
| | | NFM104WebService.execute(rowData.Id); |
| | | rpr = [select Id, Name, Delivered_Product__c, Repair_Quotation_Id__c, SAPRepairNo__c from Repair__c]; |
| | | List<Repair_Quotation__c> quotationList = [select Id, Name, Repair_Rank__c, Repair__c |
| | | , InspectionComment__c, InspectionResultFlag__c |
| | | , InspectionFailureCause__c |
| | | , LatestQuotationDate__c |
| | | , FirstQuotationDate__c, TotalPrice__c |
| | | , sales_discount__c, maintenance_pj__c |
| | | , CafeteriaFlag__c, MessageGroupNumber__c |
| | | from Repair_Quotation__c |
| | | where MessageGroupNumber__c =: RepairQuotation.Monitoring.MessageGroupNumber |
| | | and Name = :QuotationHeaderInformation.SAPQuotationNo ]; |
| | | count++; |
| | | //System.assertEquals(0, quotationList.size()); |
| | | if (quotationList.size() == 1) { |
| | | System.assertEquals(QuotationHeaderInformation.SAPQuotationNo, quotationList[0].Name); |
| | | System.assertEquals(NFMUtil.parseStr2Date(QuotationHeaderInformation.FirstQuotationDate), quotationList[0].FirstQuotationDate__c); |
| | | System.assertEquals(NFMUtil.parseStr2Date(QuotationHeaderInformation.LatestQuotationDate),quotationList[0].LatestQuotationDate__c); |
| | | System.assertEquals(QuotationHeaderInformation.RepairRank, quotationList[0].Repair_Rank__c); |
| | | System.assertEquals(null, quotationList[0].maintenance_pj__c); |
| | | System.assertEquals(InspectionResultInformation.InspectionResultFlag == 'X' ? 'OK' : 'NG', quotationList[0].InspectionResultFlag__c); |
| | | System.assertEquals(InspectionResultInformation.InspectionComment, quotationList[0].InspectionComment__c); |
| | | System.assertEquals(InspectionResultInformation.FailureCause, quotationList[0].InspectionFailureCause__c); |
| | | System.assertEquals(RepairQuotation.Monitoring.MessageGroupNumber, quotationList[0].MessageGroupNumber__c); |
| | | System.assertEquals(rpr.Id, quotationList[0].Repair__c); |
| | | System.assertEquals(rpr.Repair_Quotation_Id__c, quotationList[0].Id); |
| | | System.assertEquals(rpr.SAPRepairNo__c, QuotationHeaderInformation.SAPRepairNo); |
| | | |
| | | List<Repair_quotation_reason__c> qrsnList = [select ActivityDescription__c, Repair_quotation__c, LocationGroupName__c, LocationName__c, PhenomenonName__c, CauseName__c, DescriptionName__c from Repair_quotation_reason__c]; |
| | | System.assertEquals(2, qrsnList.size()); |
| | | System.assertEquals(quotationList[0].Id, qrsnList[0].Repair_quotation__c); |
| | | System.assertEquals(ActivityInformation.ActivityDescription, qrsnList[0].ActivityDescription__c); |
| | | System.assertEquals(quotationList[0].Id, qrsnList[1].Repair_quotation__c); |
| | | //System.assertEquals(FailureInformation.LocationGroupName, qrsnList[1].LocationGroupName__c); |
| | | System.assertEquals(FailureInformation.LocationName, qrsnList[1].LocationName__c); |
| | | System.assertEquals(FailureInformation.PhenomenonName, qrsnList[1].PhenomenonName__c); |
| | | System.assertEquals(FailureInformation.CauseName, qrsnList[1].CauseName__c); |
| | | System.assertEquals(FailureInformation.DescriptionName, qrsnList[1].DescriptionName__c); |
| | | |
| | | List<Repair_reason__c> rrsnList = [select Repair__c, Repair_quotation__c, LocationGroupName__c, LocationName__c, PhenomenonName__c, CauseName__c, DescriptionName__c from Repair_reason__c]; |
| | | System.assertEquals(0, rrsnList.size()); |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| New file |
| | |
| | | // Repairåä½ãå·®åï¼ or å
¨é¨ï¼ |
| | | // SAPå´ã®éä¿¡ã¿ã¤ãã³ã°ï¼ GoldenTaxInvoiceNo ã Repairåä½ä¸æã§ããï¼ å¿
é ã§ããï¼ |
| | | global class NFM107WebService { |
| | | // Integer batchsize = 200; èéããå¿
è¦ããªãã¨æãã¾ãã |
| | | global class Invoice { |
| | | webservice NFMUtil.Monitoring Monitoring; |
| | | webservice NFM107WebService.GeneralData[] GeneralData; |
| | | } |
| | | global class GeneralData { |
| | | webservice String SFDCRepairNo; |
| | | webservice String InvoiceResource; |
| | | webservice String PayerNo; |
| | | webservice String BilltoPartyNo; |
| | | webservice String ReverseFlag; |
| | | webservice String InvoiceAmount; |
| | | webservice String AccuTotalCost; |
| | | webservice String AccuTotalInvoiceAmount; |
| | | webservice String GoldenTaxInvoiceNo; |
| | | webservice String GoldenTaxDate; |
| | | } |
| | | // éåæãè¦ãããã常ã«return void |
| | | webservice static void NFM107(NFM107WebService.Invoice Invoice) { |
| | | if (Invoice == null) { |
| | | return; |
| | | } |
| | | NFMUtil.Monitoring Monitoring = Invoice.Monitoring; |
| | | if (Monitoring == null) { |
| | | return; |
| | | } |
| | | BatchIF_Log__c rowData = NFMUtil.saveRowData(Monitoring, 'NFM107', Invoice.GeneralData); |
| | | if (String.isBlank(rowData.Log__c) == false) executefuture(rowData.Id); |
| | | } |
| | | |
| | | @future |
| | | global static void executefuture(String rowData_Id) { |
| | | execute(rowData_Id); |
| | | } |
| | | global static void execute(String rowData_Id) { |
| | | Integer batch_retry_max_cnt = Integer.valueOf(System.Label.batch_retry_max_cnt); |
| | | BatchIF_Log__c rowData = [Select Id, Name, Log__c, ErrorLog__c, Log2__c, Log3__c, Log4__c, Log5__c, Log6__c, Log7__c, Log8__c, Log9__c, Log10__c, Log11__c, Log12__c, MessageGroupNumber__c from BatchIF_Log__c where RowDataFlg__c = true and Id = :rowData_Id]; |
| | | String logstr = rowData.MessageGroupNumber__c + ' start\n'; |
| | | BatchIF_Log__c iflog = new BatchIF_Log__c(); |
| | | iflog.Type__c = 'NFM107'; |
| | | iflog.MessageGroupNumber__c = rowData.MessageGroupNumber__c; |
| | | iflog.Log__c = logstr; |
| | | iflog.ErrorLog__c = ''; |
| | | insert iflog; |
| | | String rowDataStr = NFMUtil.getRowDataStr(rowData); |
| | | List<GeneralData> generalDataList = (List<GeneralData>) JSON.deserialize(rowDataStr, List<GeneralData>.class); |
| | | if (generalDataList == null || generalDataList.size() == 0) { |
| | | return; |
| | | } |
| | | |
| | | Savepoint sp = Database.setSavepoint(); |
| | | try { |
| | | // æ´æ°å¯¾å¿é
åã¨Mapãªã©ãã»ãã |
| | | List<String> accManagementCodeList = new List<String>(); |
| | | List<String> receiptNoList = new List<String>(); |
| | | List<String> mcManagementCodeList = new List<String>(); |
| | | for (NFM107WebService.GeneralData iData : generalDataList) { |
| | | if (String.isBlank(iData.SFDCRepairNo) |
| | | || String.isBlank(iData.GoldenTaxInvoiceNo) |
| | | ) continue; |
| | | if (iData.InvoiceResource == 'ç»´ä¿®å') |
| | | receiptNoList.add(iData.SFDCRepairNo); |
| | | else if (iData.InvoiceResource == 'ç»´ä¿®åå') |
| | | mcManagementCodeList.add(iData.SFDCRepairNo); |
| | | else if (iData.InvoiceResource == 'ç»´ä¿®ææ¬') |
| | | receiptNoList.add(iData.SFDCRepairNo); |
| | | else continue; |
| | | |
| | | if (String.isBlank(iData.PayerNo) == false) { |
| | | accManagementCodeList.add(iData.PayerNo); |
| | | accManagementCodeList.add(NFMUtil.trimLeft(iData.PayerNo, '0')); |
| | | } |
| | | if (String.isBlank(iData.BilltoPartyNo) == false) { |
| | | accManagementCodeList.add(iData.BilltoPartyNo); |
| | | accManagementCodeList.add(NFMUtil.trimLeft(iData.BilltoPartyNo, '0')); |
| | | } |
| | | } |
| | | |
| | | Map<String, Repair__c> recptsMap = new Map<String, Repair__c>(); |
| | | Map<Id, Repair__c> recptsUpdMap = new Map<Id, Repair__c>(); |
| | | for (Repair__c recpt : [ |
| | | Select Id, Name, Billing_Amount__c, NFM107_MessageGroupNumber__c from Repair__c where Name IN :receiptNoList |
| | | ]) { |
| | | recptsMap.put(recpt.Name, recpt); |
| | | } |
| | | |
| | | Map<String, Maintenance_Contract__c> mcMap = new Map<String, Maintenance_Contract__c>(); |
| | | Map<Id, Maintenance_Contract__c> mcUpdMap = new Map<Id, Maintenance_Contract__c>(); |
| | | for (Maintenance_Contract__c mc : [ |
| | | Select Id, Maintenance_Contract_No__c, Invoice_amount__c, NFM107_MessageGroupNumber__c from Maintenance_Contract__c where Maintenance_Contract_No__c IN :mcManagementCodeList |
| | | ]) { |
| | | mcMap.put(mc.Maintenance_Contract_No__c, mc); |
| | | } |
| | | |
| | | // æ¤ç´¢ãã¦é¡§å®¢åãåå¾ |
| | | Map<String, Account> accManagementCodeMap = new Map<String, Account>(); |
| | | if (accManagementCodeList.size() > 0) { |
| | | for (Account acc : [select Id, Management_Code__c, Name from Account where Management_Code__c in :accManagementCodeList]) { |
| | | accManagementCodeMap.put(acc.Management_Code__c, acc); |
| | | } |
| | | } |
| | | |
| | | Map<String, Repair_receipt__c> receiptMap = new Map<String, Repair_receipt__c>(); |
| | | for (NFM107WebService.GeneralData iData : generalDataList) { |
| | | if (String.isBlank(iData.SFDCRepairNo) |
| | | || String.isBlank(iData.GoldenTaxInvoiceNo) |
| | | ) { |
| | | iflog.ErrorLog__c += 'GoldenTaxInvoiceNo[' + iData.GoldenTaxInvoiceNo + '], SFDCRepairNo[' + iData.SFDCRepairNo + ']Required\n'; |
| | | continue; |
| | | } |
| | | // ManagementCodeãã顧客åãåå¾ |
| | | String payerId = null; |
| | | String billtoPartyId = null; |
| | | if (String.isBlank(iData.PayerNo) == false) { |
| | | if (accManagementCodeMap.containsKey(iData.PayerNo)) { |
| | | payerId = accManagementCodeMap.get(iData.PayerNo).Id; |
| | | } else if (accManagementCodeMap.containsKey(NFMUtil.trimLeft(iData.PayerNo, '0'))) { |
| | | payerId = accManagementCodeMap.get(NFMUtil.trimLeft(iData.PayerNo, '0')).Id; |
| | | } else { |
| | | iflog.ErrorLog__c += iData.GoldenTaxInvoiceNo + ':PayerNo[' + iData.PayerNo + ']NotExist\n'; |
| | | } |
| | | } |
| | | if (String.isBlank(iData.BilltoPartyNo) == false) { |
| | | if (accManagementCodeMap.containsKey(iData.BilltoPartyNo)) { |
| | | billtoPartyId = accManagementCodeMap.get(iData.BilltoPartyNo).Id; |
| | | } else if (accManagementCodeMap.containsKey(NFMUtil.trimLeft(iData.BilltoPartyNo, '0'))) { |
| | | billtoPartyId = accManagementCodeMap.get(NFMUtil.trimLeft(iData.BilltoPartyNo, '0')).Id; |
| | | } else { |
| | | iflog.ErrorLog__c += iData.GoldenTaxInvoiceNo + ':BilltoPartyNo[' + iData.BilltoPartyNo + ']NotExist\n'; |
| | | } |
| | | } |
| | | |
| | | Decimal accuTotalInvoiceAmount = String.isBlank(iData.AccuTotalInvoiceAmount) ? null : Decimal.valueOf(iData.AccuTotalInvoiceAmount); |
| | | if (iData.InvoiceResource == 'ç»´ä¿®å') { |
| | | Repair__c rpr = recptsMap.get(iData.SFDCRepairNo); |
| | | if (rpr == null) { |
| | | iflog.ErrorLog__c += 'GoldenTaxInvoiceNo[' + iData.GoldenTaxInvoiceNo + '], ä¿®ç[' + iData.SFDCRepairNo + ']NotExist\n'; |
| | | continue; |
| | | } |
| | | logstr += iData.SFDCRepairNo + ':' + iData.GoldenTaxInvoiceNo + ' '; |
| | | if (rpr.Billing_Amount__c != accuTotalInvoiceAmount) { |
| | | if (String.isBlank(rpr.NFM107_MessageGroupNumber__c) |
| | | || Integer.valueOf(rpr.NFM107_MessageGroupNumber__c) <= Integer.valueOf(rowData.MessageGroupNumber__c)) { |
| | | rpr.Billing_Amount__c = accuTotalInvoiceAmount; |
| | | rpr.Invoice_Date__c = NFMUtil.parseStr2Date(iData.GoldenTaxDate); |
| | | recptsUpdMap.put(rpr.Id, rpr); |
| | | } |
| | | } |
| | | receiptMap.put(rpr.Id + ':' + iData.GoldenTaxInvoiceNo, |
| | | new Repair_receipt__c( |
| | | Name = iData.GoldenTaxInvoiceNo, |
| | | UniqueKey__c = rpr.Id + ':' + iData.GoldenTaxInvoiceNo, |
| | | Repair__c = rpr.Id, |
| | | Maintenance_Contract__c = System.Label.Olympus_Dummy_MC, |
| | | SFDCRepairNo__c = iData.SFDCRepairNo, |
| | | PayerNo__c = iData.PayerNo, |
| | | BilltoPartyNo__c = iData.BilltoPartyNo, |
| | | PayerNoAccount__c = payerId, |
| | | BilltoPartyNoAccount__c = billtoPartyId, |
| | | ReverseFlag__c = iData.ReverseFlag == 'X' ? true : false, |
| | | InvoiceAmount__c = String.isBlank(iData.InvoiceAmount) ? null : Decimal.valueOf(iData.InvoiceAmount), |
| | | AccuTotalCost__c = String.isBlank(iData.AccuTotalCost) ? null : Decimal.valueOf(iData.AccuTotalCost), |
| | | AccuTotalInvoiceAmount__c = accuTotalInvoiceAmount, |
| | | GoldenTaxDate__c = NFMUtil.parseStr2Date(iData.GoldenTaxDate), |
| | | MessageGroupNumber__c = rowData.MessageGroupNumber__c |
| | | ) |
| | | ); |
| | | } |
| | | else if (iData.InvoiceResource == 'ç»´ä¿®åå' || iData.InvoiceResource == ' ç»´ä¿®åå') { |
| | | Maintenance_Contract__c mc = mcMap.get(iData.SFDCRepairNo); |
| | | if (mc == null) { |
| | | iflog.ErrorLog__c += 'GoldenTaxInvoiceNo[' + iData.GoldenTaxInvoiceNo + '], ç»´ä¿®åå[' + iData.SFDCRepairNo + ']NotExist\n'; |
| | | continue; |
| | | } |
| | | logstr += iData.SFDCRepairNo + ':' + iData.GoldenTaxInvoiceNo + ' '; |
| | | if (mc.Invoice_amount__c != accuTotalInvoiceAmount) { |
| | | if (String.isBlank(mc.NFM107_MessageGroupNumber__c) |
| | | || Integer.valueOf(mc.NFM107_MessageGroupNumber__c) <= Integer.valueOf(rowData.MessageGroupNumber__c)) { |
| | | mc.Invoice_amount__c = accuTotalInvoiceAmount; |
| | | mc.Receipt_Date__c = NFMUtil.parseStr2Date(iData.GoldenTaxDate); |
| | | mcUpdMap.put(mc.Id, mc); |
| | | } |
| | | } |
| | | receiptMap.put(mc.Id + ':' + iData.GoldenTaxInvoiceNo, |
| | | new Repair_receipt__c( |
| | | Name = iData.GoldenTaxInvoiceNo, |
| | | UniqueKey__c = mc.Id + ':' + iData.GoldenTaxInvoiceNo, |
| | | Repair__c = System.Label.Olympus_Dummy_Repair, |
| | | Maintenance_Contract__c = mc.Id, |
| | | SFDCRepairNo__c = iData.SFDCRepairNo, |
| | | PayerNo__c = iData.PayerNo, |
| | | BilltoPartyNo__c = iData.BilltoPartyNo, |
| | | PayerNoAccount__c = payerId, |
| | | BilltoPartyNoAccount__c = billtoPartyId, |
| | | ReverseFlag__c = iData.ReverseFlag == 'X' ? true : false, |
| | | InvoiceAmount__c = String.isBlank(iData.InvoiceAmount) ? null : Decimal.valueOf(iData.InvoiceAmount), |
| | | AccuTotalCost__c = String.isBlank(iData.AccuTotalCost) ? null : Decimal.valueOf(iData.AccuTotalCost), |
| | | AccuTotalInvoiceAmount__c = accuTotalInvoiceAmount, |
| | | GoldenTaxDate__c = NFMUtil.parseStr2Date(iData.GoldenTaxDate), |
| | | MessageGroupNumber__c = rowData.MessageGroupNumber__c |
| | | ) |
| | | ); |
| | | } |
| | | else if (iData.InvoiceResource == 'ç»´ä¿®ææ¬') { |
| | | Repair__c rpr = recptsMap.get(iData.SFDCRepairNo); |
| | | if (rpr == null) { |
| | | iflog.ErrorLog__c += 'AccuTotalCost[' + iData.AccuTotalCost + ']GoldenTaxDate[' + iData.GoldenTaxDate + '], ä¿®ç[' + iData.SFDCRepairNo + ']NotExist\n'; |
| | | continue; |
| | | } |
| | | logstr += iData.SFDCRepairNo + ':' + iData.AccuTotalCost + ' ' + iData.GoldenTaxDate + ' '; |
| | | if (String.isBlank(rpr.NFM107_MessageGroupNumber__c) |
| | | || Integer.valueOf(rpr.NFM107_MessageGroupNumber__c) <= Integer.valueOf(rowData.MessageGroupNumber__c)) { |
| | | rpr.Repair_cost__c = String.isBlank(iData.AccuTotalCost) ? null : Decimal.valueOf(iData.AccuTotalCost); |
| | | rpr.Repair_cost_date__c = NFMUtil.parseStr2Date(iData.GoldenTaxDate); |
| | | recptsUpdMap.put(rpr.Id, rpr); |
| | | } |
| | | } |
| | | else { |
| | | iflog.ErrorLog__c += 'SFDCRepairNo[' + iData.SFDCRepairNo + ']' + iData.InvoiceResource + ':Undefined\n'; |
| | | continue; |
| | | } |
| | | } |
| | | if (receiptMap.size() > 0) { |
| | | upsert receiptMap.values() UniqueKey__c; |
| | | } |
| | | if (recptsUpdMap.size() > 0) { |
| | | update recptsUpdMap.values(); |
| | | } |
| | | if (mcUpdMap.size() > 0) { |
| | | update mcUpdMap.values(); |
| | | } |
| | | logstr += '\nend'; |
| | | rowData.retry_cnt__c=0; |
| | | } catch (Exception ex) { |
| | | // ã¨ã©ã¼ãçºçããå ´å |
| | | Database.rollback(sp); |
| | | System.debug(Logginglevel.ERROR, 'NFM107_' + rowData.MessageGroupNumber__c + ':' + ex.getMessage()); |
| | | System.debug(Logginglevel.ERROR, 'NFM107_' + rowData.MessageGroupNumber__c + ':' + ex.getStackTraceString()); |
| | | logstr += '\n' + ex.getMessage(); |
| | | iflog.ErrorLog__c = ex.getMessage() + '\n' + ex.getStackTraceString() + '\n' + iflog.ErrorLog__c; |
| | | if (rowData.retry_cnt__c == null) rowData.retry_cnt__c = 0; |
| | | if (rowData.retry_cnt__c < batch_retry_max_cnt){ |
| | | rowData.retry_cnt__c++; |
| | | LogAutoSendSchedule.assignOneMinute(); |
| | | } else { |
| | | rowData.ErrorLog__c = ex.getMessage() + '\n' + ex.getStackTraceString() + '\n' + rowData.ErrorLog__c+'é误次æ°å·²ç»è¶
è¿èªå¨é信设å®çæå¤§æ¬¡æ°ï¼è¯·æå¨åä¿¡'; |
| | | } |
| | | } |
| | | update rowData; |
| | | iflog.Log__c = logstr; |
| | | if (iflog.Log__c.length() > 131072) { |
| | | iflog.Log__c = iflog.Log__c.subString(0, 131065) + ' ...'; |
| | | } |
| | | if (iflog.ErrorLog__c.length() > 32768) { |
| | | iflog.ErrorLog__c = iflog.ErrorLog__c.subString(0, 32760) + ' ...'; |
| | | } |
| | | update iflog; |
| | | } |
| | | } |
| New file |
| | |
| | | @isTest |
| | | private class NFM107WebServiceTest { |
| | | @isTest static void testNFM107Repair() { |
| | | List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'ç
é¢']; |
| | | if (rectCo.size() == 0) { |
| | | return; |
| | | } |
| | | List<RecordType> rectSct = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'æ¦ç¥ç§å®¤åé¡ æ¶åç§']; |
| | | if (rectSct.size() == 0) { |
| | | return; |
| | | } |
| | | List<RecordType> rectDpt = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '診çç§ æ¶åç§']; |
| | | if (rectDpt.size() == 0) { |
| | | return; |
| | | } |
| | | // ãã¹ããã¼ã¿ |
| | | Account company = new Account(); |
| | | company.RecordTypeId = rectCo[0].Id; |
| | | company.Name = 'NFM107TestCompany'; |
| | | upsert company; |
| | | Account section = [Select Id, Name, Department_Class_Label__c, ParentId from Account where ParentId = :company.Id and RecordTypeId = :rectSct[0].Id]; |
| | | |
| | | Account depart = new Account(); |
| | | depart.RecordTypeId = rectDpt[0].Id; |
| | | depart.Name = '*'; |
| | | depart.Department_Name__c = 'NFM107TestDepart'; |
| | | depart.ParentId = section.Id; |
| | | depart.Department_Class__c = section.Id; |
| | | depart.Hospital__c = company.Id; |
| | | upsert depart; |
| | | |
| | | // ååå¾ |
| | | List<Account> accList = new List<Account>(); |
| | | company = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :company.Id]; |
| | | accList.add(company); |
| | | section = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :section.Id]; |
| | | accList.add(section); |
| | | depart = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :depart.Id]; |
| | | accList.add(depart); |
| | | |
| | | List<Product2> prdList = new List<Product2>(); |
| | | Product2 prd1 = new Product2(); |
| | | prd1.ProductCode_Ext__c = 'NFM107Prd1'; |
| | | prd1.ProductCode = 'NFM107Prd1'; |
| | | prd1.Repair_Product_Code__c = 'NFM107Prd1_RP'; |
| | | prd1.Name = 'NFM107Prd1'; |
| | | prd1.Manual_Entry__c = false; |
| | | prdList.add(prd1); |
| | | Product2 prd2 = new Product2(); |
| | | prd2.ProductCode_Ext__c = 'NFM107Prd2'; |
| | | prd2.ProductCode = 'NFM107Prd2'; |
| | | prd2.Repair_Product_Code__c = 'NFM107Prd2_RP'; |
| | | prd2.Name = 'NFM107Prd2'; |
| | | prd2.Manual_Entry__c = false; |
| | | prdList.add(prd2); |
| | | insert prdList; |
| | | |
| | | Asset ast = new Asset(); |
| | | ast.Name = 'NFM107Ast1'; |
| | | ast.AccountId = depart.Id; |
| | | ast.Department_Class__c = section.Id; |
| | | ast.Hospital__c = company.Id; |
| | | ast.Product2Id = prd1.Id; |
| | | ast.SerialNumber = 'NFM107SerialNumber'; |
| | | ast.Guarantee_period_for_products__c = Date.today(); |
| | | ast.InstallDate = Date.today(); |
| | | insert ast; |
| | | ast = [select Id, Name, Product_Serial_No__c, AccountId, Department_Class__c, Department_Class__r.Management_Code_Auto__c, Hospital__c, Product2Id, Product2.ProductCode, Product2.Repair_Product_Code__c, SerialNumber |
| | | from Asset |
| | | where Id = :ast.Id]; |
| | | |
| | | Repair__c rpr = new Repair__c(); |
| | | rpr.SAPRepairNo__c = 'NFM107Rpr1'; |
| | | rpr.Account__c = depart.Id; |
| | | rpr.Department_Class__c = section.Id; |
| | | rpr.Hospital__c = company.Id; |
| | | rpr.Delivered_Product__c = ast.Id; |
| | | rpr.SalesOfficeCode_selection__c = 'å京'; |
| | | insert rpr; |
| | | rpr = [select Id, Name, Delivered_Product__c, SAPRepairNo__c from Repair__c]; |
| | | |
| | | // ãã®ã¾ã¾return |
| | | // null |
| | | NFM107WebService.NFM107(null); |
| | | |
| | | NFM107WebService.Invoice Invoice = new NFM107WebService.Invoice(); |
| | | NFM107WebService.GeneralData GeneralData = new NFM107WebService.GeneralData(); |
| | | Invoice.GeneralData = new NFM107WebService.GeneralData[] { GeneralData }; |
| | | |
| | | // Monitoringãã»ããããªã |
| | | NFM107WebService.NFM107(Invoice); |
| | | |
| | | Datetime nowDT = Datetime.now(); |
| | | String nowStr = nowDT.format('yyyyMMddHHmm'); |
| | | Invoice.Monitoring = new NFMUtil.Monitoring(); |
| | | Invoice.Monitoring.MessageGroupNumber = nowStr + '01'; |
| | | // å¿
é é
ç®ãã»ããããªã |
| | | NFM107WebService.NFM107(Invoice); |
| | | |
| | | // PaymentSource Undefined |
| | | Invoice.Monitoring.MessageGroupNumber = nowStr + '02'; |
| | | GeneralData.SFDCRepairNo = 'ABC'; |
| | | NFM107WebService.NFM107(Invoice); |
| | | |
| | | List<BatchIF_Log__c> iflogList = [select Id, RowDataFlg__c, Log__c, ErrorLog__c from BatchIF_Log__c where MessageGroupNumber__c = :Invoice.Monitoring.MessageGroupNumber]; |
| | | System.assertEquals(1, iflogList.size()); |
| | | System.assertEquals(true, iflogList[0].RowDataFlg__c); |
| | | System.assertEquals('[{"SFDCRepairNo":"ABC","ReverseFlag":null,"PayerNo":null,"InvoiceResource":null,"InvoiceAmount":null,"GoldenTaxInvoiceNo":null,"GoldenTaxDate":null,"BilltoPartyNo":null,"AccuTotalInvoiceAmount":null,"AccuTotalCost":null}]', iflogList[0].Log__c); |
| | | |
| | | // PaymentSource Undefined |
| | | NFMUtil.MaxLogColumnLength = 2; |
| | | Invoice.Monitoring.MessageGroupNumber = nowStr + '03'; |
| | | GeneralData.SFDCRepairNo = 'ABC'; |
| | | NFM107WebService.NFM107(Invoice); |
| | | iflogList = [select Id, RowDataFlg__c, Log__c, ErrorLog__c, Log2__c, Log3__c, Log4__c, Log5__c, Log6__c, Log7__c, Log8__c, Log9__c, Log10__c, Log11__c, Log12__c from BatchIF_Log__c where MessageGroupNumber__c = :Invoice.Monitoring.MessageGroupNumber]; |
| | | System.debug('iflogList=' + iflogList); |
| | | System.assertEquals(1, iflogList.size()); |
| | | System.assertEquals(true, iflogList[0].RowDataFlg__c); |
| | | System.assertEquals('[{"SFDCRepairNo":"ABC","ReverseFlag":null,"PayerNo":null,"InvoiceResource":null,"InvoiceAmount":null,"GoldenTaxInvoiceNo":null,"GoldenTaxDate":null,"BilltoPartyNo":null,"AccuTotalInvoiceAmount":null,"AccuTotalCost":null}]', |
| | | iflogList[0].Log__c + iflogList[0].Log2__c + iflogList[0].Log3__c + iflogList[0].Log4__c + iflogList[0].Log5__c + iflogList[0].Log6__c + iflogList[0].Log7__c |
| | | + iflogList[0].Log8__c + iflogList[0].Log9__c + iflogList[0].Log10__c + iflogList[0].Log11__c + iflogList[0].Log12__c + iflogList[0].ErrorLog__c); |
| | | } |
| | | |
| | | // rawdata ãã upsert ãã¹ã |
| | | @isTest static void testExecute_upsert() { |
| | | List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'ç
é¢']; |
| | | if (rectCo.size() == 0) { |
| | | return; |
| | | } |
| | | List<RecordType> rectSct = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'æ¦ç¥ç§å®¤åé¡ æ¶åç§']; |
| | | if (rectSct.size() == 0) { |
| | | return; |
| | | } |
| | | List<RecordType> rectDpt = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '診çç§ æ¶åç§']; |
| | | if (rectDpt.size() == 0) { |
| | | return; |
| | | } |
| | | // ãã¹ããã¼ã¿ |
| | | Account company = new Account(); |
| | | company.RecordTypeId = rectCo[0].Id; |
| | | company.Name = 'NFM107TestCompany'; |
| | | upsert company; |
| | | company = [Select Id, Management_Code__c, Name from Account where Id = :company.Id]; |
| | | Account section = [Select Id, Name, Department_Class_Label__c, ParentId from Account where ParentId = :company.Id and RecordTypeId = :rectSct[0].Id]; |
| | | |
| | | Account depart = new Account(); |
| | | depart.RecordTypeId = rectDpt[0].Id; |
| | | depart.Name = '*'; |
| | | depart.Department_Name__c = 'NFM107TestDepart'; |
| | | depart.ParentId = section.Id; |
| | | depart.Department_Class__c = section.Id; |
| | | depart.Hospital__c = company.Id; |
| | | upsert depart; |
| | | depart = [Select Id, Management_Code__c, Name from Account where Id = :depart.Id]; |
| | | |
| | | // ååå¾ |
| | | List<Account> accList = new List<Account>(); |
| | | company = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :company.Id]; |
| | | accList.add(company); |
| | | section = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :section.Id]; |
| | | accList.add(section); |
| | | depart = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :depart.Id]; |
| | | accList.add(depart); |
| | | |
| | | List<Product2> prdList = new List<Product2>(); |
| | | Product2 prd1 = new Product2(); |
| | | prd1.ProductCode_Ext__c = 'NFM107Prd1'; |
| | | prd1.ProductCode = 'NFM107Prd1'; |
| | | prd1.Repair_Product_Code__c = 'NFM107Prd1_RP'; |
| | | prd1.Name = 'NFM107Prd1'; |
| | | prd1.Manual_Entry__c = false; |
| | | prdList.add(prd1); |
| | | Product2 prd2 = new Product2(); |
| | | prd2.ProductCode_Ext__c = 'NFM107Prd2'; |
| | | prd2.ProductCode = 'NFM107Prd2'; |
| | | prd2.Repair_Product_Code__c = 'NFM107Prd2_RP'; |
| | | prd2.Name = 'NFM107Prd2'; |
| | | prd2.Manual_Entry__c = false; |
| | | prdList.add(prd2); |
| | | insert prdList; |
| | | |
| | | Asset ast = new Asset(); |
| | | ast.Name = 'NFM107Ast1'; |
| | | ast.AccountId = depart.Id; |
| | | ast.Department_Class__c = section.Id; |
| | | ast.Hospital__c = company.Id; |
| | | ast.Product2Id = prd1.Id; |
| | | ast.SerialNumber = 'NFM107SerialNumber'; |
| | | ast.Guarantee_period_for_products__c = Date.today(); |
| | | ast.InstallDate = Date.today(); |
| | | insert ast; |
| | | ast = [select Id, Name, Product_Serial_No__c, AccountId, Department_Class__c, Department_Class__r.Management_Code_Auto__c, Hospital__c, Product2Id, Product2.ProductCode, Product2.Repair_Product_Code__c, SerialNumber |
| | | from Asset |
| | | where Id = :ast.Id]; |
| | | |
| | | Repair__c rpr = new Repair__c(); |
| | | rpr.SAPRepairNo__c = 'NFM107Rpr1'; |
| | | rpr.Account__c = depart.Id; |
| | | rpr.Department_Class__c = section.Id; |
| | | rpr.Hospital__c = company.Id; |
| | | rpr.Delivered_Product__c = ast.Id; |
| | | rpr.SalesOfficeCode_selection__c = 'å京'; |
| | | insert rpr; |
| | | rpr = [select Id, Name, Delivered_Product__c, SAPRepairNo__c from Repair__c where Id = :rpr.Id]; |
| | | String strUniqueKey = rpr.Id + ':GoldenTaxInvoiceNo1'; |
| | | // rawdata |
| | | BatchIF_Log__c rawData = new BatchIF_Log__c( |
| | | RowDataFlg__c = true, |
| | | MessageGroupNumber__c = 'MG_1234567890', |
| | | Log__c = '[{"SFDCRepairNo":"' + rpr.Name + '","ReverseFlag":null' |
| | | + ',"PayerNo":"' + depart.Management_Code__c + '"' |
| | | + ',"InvoiceResource":"ç»´ä¿®å","InvoiceAmount":null' |
| | | + ',"GoldenTaxInvoiceNo":"GoldenTaxInvoiceNo1"' |
| | | + ',"GoldenTaxDate":null' |
| | | + ',"BilltoPartyNo":"00' + company.Management_Code__c + '"' |
| | | + ',"AccuTotalInvoiceAmount":null,"AccuTotalCost":null}]' |
| | | ); |
| | | insert rawData; |
| | | |
| | | // Test & assert |
| | | Test.startTest(); |
| | | NFM107WebService.execute(rawData.Id); |
| | | Test.stopTest(); |
| | | List<BatchIF_Log__c> iflogList = [select Id, Log__c, ErrorLog__c from BatchIF_Log__c where MessageGroupNumber__c = 'MG_1234567890' and RowDataFlg__c = false]; |
| | | System.assertEquals(1, iflogList.size()); |
| | | System.assertEquals(null, iflogList[0].ErrorLog__c); |
| | | // System.assertEquals(null, iflogList[0].Log__c); |
| | | Repair_receipt__c rc_Res = [select Id, Name, PayerNo__c, PayerNoAccount__c, BilltoPartyNo__c, BilltoPartyNoAccount__c from Repair_receipt__c where UniqueKey__c = :strUniqueKey]; |
| | | System.assertEquals('GoldenTaxInvoiceNo1', rc_Res.Name); |
| | | System.assertEquals(depart.Management_Code__c, rc_Res.PayerNo__c); |
| | | System.assertEquals('00' + company.Management_Code__c, rc_Res.BilltoPartyNo__c); |
| | | System.assertEquals(depart.Id, rc_Res.PayerNoAccount__c); |
| | | System.assertEquals(company.Id, rc_Res.BilltoPartyNoAccount__c); |
| | | } |
| | | |
| | | // rawdata ãã upsert ãã¹ã |
| | | // PayerNo not exist |
| | | @isTest static void testExecute_upsert2() { |
| | | List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'ç
é¢']; |
| | | if (rectCo.size() == 0) { |
| | | return; |
| | | } |
| | | List<RecordType> rectSct = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'æ¦ç¥ç§å®¤åé¡ æ¶åç§']; |
| | | if (rectSct.size() == 0) { |
| | | return; |
| | | } |
| | | List<RecordType> rectDpt = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '診çç§ æ¶åç§']; |
| | | if (rectDpt.size() == 0) { |
| | | return; |
| | | } |
| | | // ãã¹ããã¼ã¿ |
| | | Account company = new Account(); |
| | | company.RecordTypeId = rectCo[0].Id; |
| | | company.Name = 'NFM107TestCompany'; |
| | | upsert company; |
| | | company = [Select Id, Management_Code__c, Name from Account where Id = :company.Id]; |
| | | Account section = [Select Id, Name, Department_Class_Label__c, ParentId from Account where ParentId = :company.Id and RecordTypeId = :rectSct[0].Id]; |
| | | |
| | | Account depart = new Account(); |
| | | depart.RecordTypeId = rectDpt[0].Id; |
| | | depart.Name = '*'; |
| | | depart.Department_Name__c = 'NFM107TestDepart'; |
| | | depart.ParentId = section.Id; |
| | | depart.Department_Class__c = section.Id; |
| | | depart.Hospital__c = company.Id; |
| | | upsert depart; |
| | | depart = [Select Id, Management_Code__c, Name from Account where Id = :depart.Id]; |
| | | |
| | | // ååå¾ |
| | | List<Account> accList = new List<Account>(); |
| | | company = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :company.Id]; |
| | | accList.add(company); |
| | | section = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :section.Id]; |
| | | accList.add(section); |
| | | depart = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :depart.Id]; |
| | | accList.add(depart); |
| | | |
| | | List<Product2> prdList = new List<Product2>(); |
| | | Product2 prd1 = new Product2(); |
| | | prd1.ProductCode_Ext__c = 'NFM107Prd1'; |
| | | prd1.ProductCode = 'NFM107Prd1'; |
| | | prd1.Repair_Product_Code__c = 'NFM107Prd1_RP'; |
| | | prd1.Name = 'NFM107Prd1'; |
| | | prd1.Manual_Entry__c = false; |
| | | prdList.add(prd1); |
| | | Product2 prd2 = new Product2(); |
| | | prd2.ProductCode_Ext__c = 'NFM107Prd2'; |
| | | prd2.ProductCode = 'NFM107Prd2'; |
| | | prd2.Repair_Product_Code__c = 'NFM107Prd2_RP'; |
| | | prd2.Name = 'NFM107Prd2'; |
| | | prd2.Manual_Entry__c = false; |
| | | prdList.add(prd2); |
| | | insert prdList; |
| | | |
| | | Asset ast = new Asset(); |
| | | ast.Name = 'NFM107Ast1'; |
| | | ast.AccountId = depart.Id; |
| | | ast.Department_Class__c = section.Id; |
| | | ast.Hospital__c = company.Id; |
| | | ast.Product2Id = prd1.Id; |
| | | ast.SerialNumber = 'NFM107SerialNumber'; |
| | | ast.Guarantee_period_for_products__c = Date.today(); |
| | | ast.InstallDate = Date.today(); |
| | | insert ast; |
| | | ast = [select Id, Name, Product_Serial_No__c, AccountId, Department_Class__c, Department_Class__r.Management_Code_Auto__c, Hospital__c, Product2Id, Product2.ProductCode, Product2.Repair_Product_Code__c, SerialNumber |
| | | from Asset |
| | | where Id = :ast.Id]; |
| | | |
| | | Repair__c rpr = new Repair__c(); |
| | | rpr.SAPRepairNo__c = 'NFM107Rpr1'; |
| | | rpr.Account__c = depart.Id; |
| | | rpr.Department_Class__c = section.Id; |
| | | rpr.Hospital__c = company.Id; |
| | | rpr.Delivered_Product__c = ast.Id; |
| | | rpr.SalesOfficeCode_selection__c = 'å京'; |
| | | insert rpr; |
| | | rpr = [select Id, Name, Delivered_Product__c, SAPRepairNo__c from Repair__c where Id = :rpr.Id]; |
| | | String strUniqueKey = rpr.Id + ':GoldenTaxInvoiceNo1'; |
| | | // rawdata |
| | | BatchIF_Log__c rawData = new BatchIF_Log__c( |
| | | RowDataFlg__c = true, |
| | | MessageGroupNumber__c = 'MG_1234567890', |
| | | Log__c = '[{"SFDCRepairNo":"' + rpr.Name + '","ReverseFlag":null' |
| | | + ',"PayerNo":"1' + depart.Management_Code__c + '"' |
| | | + ',"InvoiceResource":"ç»´ä¿®å","InvoiceAmount":null' |
| | | + ',"GoldenTaxInvoiceNo":"GoldenTaxInvoiceNo1"' |
| | | + ',"GoldenTaxDate":null' |
| | | + ',"BilltoPartyNo":"' + company.Management_Code__c + '"' |
| | | + ',"AccuTotalInvoiceAmount":null,"AccuTotalCost":null}]' |
| | | ); |
| | | insert rawData; |
| | | |
| | | // Test & assert |
| | | Test.startTest(); |
| | | NFM107WebService.execute(rawData.Id); |
| | | Test.stopTest(); |
| | | List<BatchIF_Log__c> iflogList = [select Id, Log__c, ErrorLog__c from BatchIF_Log__c where MessageGroupNumber__c = 'MG_1234567890' and RowDataFlg__c = false]; |
| | | System.assertEquals(1, iflogList.size()); |
| | | System.assert((iflogList[0].ErrorLog__c.indexOf('GoldenTaxInvoiceNo1:PayerNo[') >= 0), iflogList[0].ErrorLog__c); |
| | | // System.assertEquals(null, iflogList[0].Log__c); |
| | | Repair_receipt__c rc_Res = [select Id, Name, PayerNo__c, PayerNoAccount__c, BilltoPartyNo__c, BilltoPartyNoAccount__c from Repair_receipt__c where UniqueKey__c = :strUniqueKey]; |
| | | System.assertEquals('GoldenTaxInvoiceNo1', rc_Res.Name); |
| | | System.assertEquals('1' + depart.Management_Code__c, rc_Res.PayerNo__c); |
| | | System.assertEquals(company.Management_Code__c, rc_Res.BilltoPartyNo__c); |
| | | System.assertEquals(null, rc_Res.PayerNoAccount__c); |
| | | System.assertEquals(company.Id, rc_Res.BilltoPartyNoAccount__c); |
| | | } |
| | | |
| | | // rawdata ãã update ãã¹ã |
| | | @isTest static void testExecute_update() { |
| | | List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'ç
é¢']; |
| | | if (rectCo.size() == 0) { |
| | | return; |
| | | } |
| | | List<RecordType> rectSct = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'æ¦ç¥ç§å®¤åé¡ æ¶åç§']; |
| | | if (rectSct.size() == 0) { |
| | | return; |
| | | } |
| | | List<RecordType> rectDpt = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '診çç§ æ¶åç§']; |
| | | if (rectDpt.size() == 0) { |
| | | return; |
| | | } |
| | | // ãã¹ããã¼ã¿ |
| | | Account company = new Account(); |
| | | company.RecordTypeId = rectCo[0].Id; |
| | | company.Name = 'NFM107TestCompany'; |
| | | upsert company; |
| | | company = [Select Id, Management_Code__c, Name from Account where Id = :company.Id]; |
| | | Account section = [Select Id, Name, Department_Class_Label__c, ParentId from Account where ParentId = :company.Id and RecordTypeId = :rectSct[0].Id]; |
| | | |
| | | Account depart = new Account(); |
| | | depart.RecordTypeId = rectDpt[0].Id; |
| | | depart.Name = '*'; |
| | | depart.Department_Name__c = 'NFM107TestDepart'; |
| | | depart.ParentId = section.Id; |
| | | depart.Department_Class__c = section.Id; |
| | | depart.Hospital__c = company.Id; |
| | | upsert depart; |
| | | depart = [Select Id, Management_Code__c, Name from Account where Id = :depart.Id]; |
| | | |
| | | // ååå¾ |
| | | List<Account> accList = new List<Account>(); |
| | | company = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :company.Id]; |
| | | accList.add(company); |
| | | section = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :section.Id]; |
| | | accList.add(section); |
| | | depart = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :depart.Id]; |
| | | accList.add(depart); |
| | | |
| | | List<Product2> prdList = new List<Product2>(); |
| | | Product2 prd1 = new Product2(); |
| | | prd1.ProductCode_Ext__c = 'NFM107Prd1'; |
| | | prd1.ProductCode = 'NFM107Prd1'; |
| | | prd1.Repair_Product_Code__c = 'NFM107Prd1_RP'; |
| | | prd1.Name = 'NFM107Prd1'; |
| | | prd1.Manual_Entry__c = false; |
| | | prdList.add(prd1); |
| | | Product2 prd2 = new Product2(); |
| | | prd2.ProductCode_Ext__c = 'NFM107Prd2'; |
| | | prd2.ProductCode = 'NFM107Prd2'; |
| | | prd2.Repair_Product_Code__c = 'NFM107Prd2_RP'; |
| | | prd2.Name = 'NFM107Prd2'; |
| | | prd2.Manual_Entry__c = false; |
| | | prdList.add(prd2); |
| | | insert prdList; |
| | | |
| | | Asset ast = new Asset(); |
| | | ast.Name = 'NFM107Ast1'; |
| | | ast.AccountId = depart.Id; |
| | | ast.Department_Class__c = section.Id; |
| | | ast.Hospital__c = company.Id; |
| | | ast.Product2Id = prd1.Id; |
| | | ast.SerialNumber = 'NFM107SerialNumber'; |
| | | ast.Guarantee_period_for_products__c = Date.today(); |
| | | ast.InstallDate = Date.today(); |
| | | insert ast; |
| | | ast = [select Id, Name, Product_Serial_No__c, AccountId, Department_Class__c, Department_Class__r.Management_Code_Auto__c, Hospital__c, Product2Id, Product2.ProductCode, Product2.Repair_Product_Code__c, SerialNumber |
| | | from Asset |
| | | where Id = :ast.Id]; |
| | | |
| | | Repair__c rpr = new Repair__c(); |
| | | rpr.SAPRepairNo__c = 'NFM107Rpr1'; |
| | | rpr.Account__c = depart.Id; |
| | | rpr.Department_Class__c = section.Id; |
| | | rpr.Hospital__c = company.Id; |
| | | rpr.Delivered_Product__c = ast.Id; |
| | | rpr.SalesOfficeCode_selection__c = 'å京'; |
| | | insert rpr; |
| | | rpr = [select Id, Name, Delivered_Product__c, SAPRepairNo__c from Repair__c where Id = :rpr.Id]; |
| | | String strUniqueKey = rpr.Id + ':GoldenTaxInvoiceNo1'; |
| | | // rawdata |
| | | BatchIF_Log__c rawData = new BatchIF_Log__c( |
| | | RowDataFlg__c = true, |
| | | retry_cnt__c = 1, |
| | | MessageGroupNumber__c = 'MG_1234567890', |
| | | Log__c = '[{"SFDCRepairNo":"' + rpr.Name + '","ReverseFlag":null' |
| | | + ',"PayerNo":null' |
| | | + ',"InvoiceResource":"ç»´ä¿®ææ¬","InvoiceAmount":null' |
| | | + ',"GoldenTaxInvoiceNo":"GoldenTaxInvoiceNo1"' |
| | | + ',"GoldenTaxDate":"20160314"' |
| | | + ',"BilltoPartyNo":"00' + company.Management_Code__c + '"' |
| | | + ',"AccuTotalInvoiceAmount":null' |
| | | + ',"AccuTotalCost":"6000.00"}]' |
| | | ); |
| | | insert rawData; |
| | | |
| | | // Test & assert |
| | | Test.startTest(); |
| | | NFM107WebService.execute(rawData.Id); |
| | | Test.stopTest(); |
| | | List<BatchIF_Log__c> bl = [Select Id, Is_Error__c, |
| | | Type__c, Log__c, ErrorLog__c,retry_cnt__c |
| | | from BatchIF_Log__c |
| | | where Id = :rawData.id]; |
| | | System.assertEquals(0, bl[0].retry_cnt__c); |
| | | List<BatchIF_Log__c> iflogList = [select Id, Log__c, ErrorLog__c from BatchIF_Log__c where MessageGroupNumber__c = 'MG_1234567890' and RowDataFlg__c = false]; |
| | | System.assertEquals(1, iflogList.size()); |
| | | System.assertEquals(null, iflogList[0].ErrorLog__c); |
| | | // System.assertEquals(null, iflogList[0].Log__c); |
| | | Repair__c rc = [select Id, Name, Repair_cost__c, Repair_cost_date__c from Repair__c where Id = :rpr.Id]; |
| | | System.assertEquals(6000, rc.Repair_cost__c); |
| | | System.assertEquals(Date.newInstance(2016,3,14), rc.Repair_cost_date__c); |
| | | } |
| | | } |
| New file |
| | |
| | | // RowDataãæ®ãããã@future execute ã«ãã¾ã |
| | | global class NFM108WebService { |
| | | // Integer batchsize = 200; èéããå¿
è¦ããªãã¨æãã¾ãã |
| | | global class Payment { |
| | | webservice NFMUtil.Monitoring Monitoring; |
| | | webservice NFM108WebService.GeneralData[] GeneralData; |
| | | } |
| | | global class GeneralData { |
| | | webservice String SFDCRepairNo; |
| | | webservice String PaymentSource; |
| | | webservice String PaymentAmount; |
| | | webservice String PaymentDate; |
| | | webservice String AccumulativeTotalPaymentAmount; |
| | | webservice String ArrearsBasePaymentTerm; |
| | | webservice String ARAmountBasePaymentTerm; |
| | | webservice String ArrearsBaseInvoice; |
| | | webservice String ARAmountBaseInvoice; |
| | | webservice String ARAmountBaseAverage; |
| | | webservice String AccumulativeARAmountBaseAverage; |
| | | webservice String BaddebtsFlg; |
| | | } |
| | | private class ExtraData { |
| | | public GeneralData iData; |
| | | public String SFDCRepairNo; |
| | | public String PaymentVoucher; |
| | | public ExtraData(GeneralData gData) { |
| | | this.iData = gData; |
| | | this.SFDCRepairNo = gData.SFDCRepairNo; |
| | | if (!(gData.SFDCRepairNo == null || gData.SFDCRepairNo == '')) { |
| | | List<String> splitSFDCRepairNo = gData.SFDCRepairNo.split(':'); |
| | | this.SFDCRepairNo = splitSFDCRepairNo[0]; |
| | | if (splitSFDCRepairNo.size() > 1) { |
| | | this.PaymentVoucher = splitSFDCRepairNo[1]; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // éåæãè¦ãããã常ã«return void |
| | | webservice static void NFM108(NFM108WebService.Payment Payment) { |
| | | if (Payment == null) { |
| | | return; |
| | | } |
| | | NFMUtil.Monitoring Monitoring = Payment.Monitoring; |
| | | if (Monitoring == null) { |
| | | return; |
| | | } |
| | | BatchIF_Log__c rowData = NFMUtil.saveRowData(Monitoring, 'NFM108', Payment.GeneralData); |
| | | if (String.isBlank(rowData.Log__c) == false) executefuture(rowData.Id); |
| | | } |
| | | @future |
| | | global static void executefuture(String rowData_Id) { |
| | | execute(rowData_Id); |
| | | } |
| | | global static void execute(String rowData_Id) { |
| | | Integer batch_retry_max_cnt = Integer.valueOf(System.Label.batch_retry_max_cnt); |
| | | BatchIF_Log__c rowData = [Select Id, Name, Log__c, ErrorLog__c, Log2__c, Log3__c, Log4__c, Log5__c, Log6__c, Log7__c, Log8__c, Log9__c, Log10__c, Log11__c, Log12__c, MessageGroupNumber__c, TransmissionDateTime__c,retry_cnt__c from BatchIF_Log__c where RowDataFlg__c = true and Id = :rowData_Id]; |
| | | String logstr = rowData.MessageGroupNumber__c + ' start\n'; |
| | | BatchIF_Log__c iflog = new BatchIF_Log__c(); |
| | | iflog.Type__c = 'NFM108'; |
| | | iflog.MessageGroupNumber__c = rowData.MessageGroupNumber__c; |
| | | iflog.Log__c = logstr; |
| | | iflog.ErrorLog__c = ''; |
| | | insert iflog; |
| | | String rowDataStr = NFMUtil.getRowDataStr(rowData); |
| | | List<GeneralData> generalDataList = (List<GeneralData>) JSON.deserialize(rowDataStr, List<GeneralData>.class); |
| | | if (generalDataList == null || generalDataList.size() == 0) { |
| | | return; |
| | | } |
| | | Savepoint sp = Database.setSavepoint(); |
| | | try { |
| | | List<String> receiptNoList = new List<String>(); |
| | | List<String> mcManagementCodeList = new List<String>(); |
| | | List<ExtraData> gDataList = new List<ExtraData>(); |
| | | for (NFM108WebService.GeneralData iData : generalDataList) { |
| | | ExtraData gData = new ExtraData(iData); |
| | | gDataList.add(gData); |
| | | if (iData.SFDCRepairNo == null || iData.SFDCRepairNo == '') continue; |
| | | if (iData.PaymentSource == 'ç»´ä¿®å') |
| | | receiptNoList.add(gData.SFDCRepairNo); |
| | | else if (iData.PaymentSource == 'ç»´ä¿®åå') |
| | | mcManagementCodeList.add(gData.SFDCRepairNo); |
| | | else continue; |
| | | } |
| | | |
| | | Map<String, Repair__c> recptsMap = new Map<String, Repair__c>(); |
| | | for (Repair__c recpt : [ |
| | | Select Id, Name, NFM108_Receipt__r.MessageGroupNumber__c, Received_Date__c, BaddebtsDate__c from Repair__c where Name IN :receiptNoList |
| | | ]) { |
| | | recptsMap.put(recpt.Name, recpt); |
| | | } |
| | | |
| | | Map<String, Maintenance_Contract__c> mcMap = new Map<String, Maintenance_Contract__c>(); |
| | | for (Maintenance_Contract__c mc : [ |
| | | Select Id, Maintenance_Contract_No__c, NFM108_Receipt__r.MessageGroupNumber__c, Received_Date__c, BaddebtsDate__c from Maintenance_Contract__c where Maintenance_Contract_No__c IN :mcManagementCodeList |
| | | ]) { |
| | | mcMap.put(mc.Maintenance_Contract_No__c, mc); |
| | | } |
| | | |
| | | Map<String, Repair_receipt__c> receiptLastMap = new Map<String, Repair_receipt__c>(); |
| | | Map<String, Repair_receipt__c> receiptUniqueMap = new Map<String, Repair_receipt__c>(); |
| | | for (ExtraData gData : gDataList) { |
| | | if (gData.SFDCRepairNo == null || gData.SFDCRepairNo == '') { |
| | | iflog.ErrorLog__c += 'SFDCRepairNo[' + gData.SFDCRepairNo + ']Required\n'; |
| | | continue; |
| | | } |
| | | if (gData.iData.PaymentSource == 'ç»´ä¿®å') { |
| | | Repair__c rpr = recptsMap.get(gData.SFDCRepairNo); |
| | | if (rpr == null) { |
| | | iflog.ErrorLog__c += 'ä¿®ç[' + gData.SFDCRepairNo + ']NotExist\n'; |
| | | continue; |
| | | } |
| | | logstr += 'ä¿®ç:' + gData.SFDCRepairNo + ' '; |
| | | Repair_receipt__c rr = new Repair_receipt__c( |
| | | Name = gData.iData.SFDCRepairNo, |
| | | UniqueKey__c = gData.iData.SFDCRepairNo, |
| | | Repair__c = rpr.Id, |
| | | Maintenance_Contract__c = System.Label.Olympus_Dummy_MC, |
| | | SFDCRepairNo__c = gData.SFDCRepairNo, |
| | | PaymentVoucher__c = gData.PaymentVoucher, |
| | | AccumulativeTotalPaymentAmount__c = String.isBlank(gData.iData.AccumulativeTotalPaymentAmount) ? null : Decimal.valueOf(gData.iData.AccumulativeTotalPaymentAmount), |
| | | ArrearsBasePaymentTerm__c = String.isBlank(gData.iData.ArrearsBasePaymentTerm) ? null : Decimal.valueOf(gData.iData.ArrearsBasePaymentTerm), |
| | | ARAmountBasePaymentTerm__c = String.isBlank(gData.iData.ARAmountBasePaymentTerm) ? null : Decimal.valueOf(gData.iData.ARAmountBasePaymentTerm), |
| | | ArrearsBaseInvoice__c = String.isBlank(gData.iData.ArrearsBaseInvoice) ? null : Decimal.valueOf(gData.iData.ArrearsBaseInvoice), |
| | | ARAmountBaseInvoice__c = String.isBlank(gData.iData.ARAmountBaseInvoice) ? null : Decimal.valueOf(gData.iData.ARAmountBaseInvoice), |
| | | ARAmountBaseAverage__c = String.isBlank(gData.iData.ARAmountBaseAverage) ? null : Decimal.valueOf(gData.iData.ARAmountBaseAverage), |
| | | AccumulativeARAmountBaseAverage__c = String.isBlank(gData.iData.AccumulativeARAmountBaseAverage) ? null : Decimal.valueOf(gData.iData.AccumulativeARAmountBaseAverage), |
| | | BaddebtsFlg__c = gData.iData.BaddebtsFlg, |
| | | MessageGroupNumber__c = rowData.MessageGroupNumber__c |
| | | ); |
| | | if (gData.iData.BaddebtsFlg == 'X') { |
| | | rr.BaddebtsAmount__c = String.isBlank(gData.iData.PaymentAmount) ? null : Decimal.valueOf(gData.iData.PaymentAmount); |
| | | rr.BaddebtsDate__c = NFMUtil.parseStr2Date(gData.iData.PaymentDate); |
| | | } else { |
| | | rr.PaymentAmount__c = String.isBlank(gData.iData.PaymentAmount) ? null : Decimal.valueOf(gData.iData.PaymentAmount); |
| | | rr.PaymentDate__c = NFMUtil.parseStr2Date(gData.iData.PaymentDate); |
| | | } |
| | | receiptUniqueMap.put(gData.iData.SFDCRepairNo, rr); |
| | | receiptLastMap.put(rpr.Id, rr); |
| | | } |
| | | else if (gData.iData.PaymentSource == 'ç»´ä¿®åå' || gData.iData.PaymentSource == ' ç»´ä¿®åå') { |
| | | Maintenance_Contract__c mc = mcMap.get(gData.SFDCRepairNo); |
| | | if (mc == null) { |
| | | iflog.ErrorLog__c += 'ç»´ä¿®åå[' + gData.SFDCRepairNo + ']NotExist\n'; |
| | | continue; |
| | | } |
| | | logstr += 'ç»´ä¿®åå:' + gData.SFDCRepairNo + ' '; |
| | | Repair_receipt__c rr = new Repair_receipt__c( |
| | | Name = gData.iData.SFDCRepairNo, |
| | | UniqueKey__c = gData.iData.SFDCRepairNo, |
| | | Repair__c = System.Label.Olympus_Dummy_Repair, |
| | | Maintenance_Contract__c = mc.Id, |
| | | SFDCRepairNo__c = gData.SFDCRepairNo, |
| | | PaymentVoucher__c = gData.PaymentVoucher, |
| | | AccumulativeTotalPaymentAmount__c = String.isBlank(gData.iData.AccumulativeTotalPaymentAmount) ? null : Decimal.valueOf(gData.iData.AccumulativeTotalPaymentAmount), |
| | | ArrearsBasePaymentTerm__c = String.isBlank(gData.iData.ArrearsBasePaymentTerm) ? null : Decimal.valueOf(gData.iData.ArrearsBasePaymentTerm), |
| | | ARAmountBasePaymentTerm__c = String.isBlank(gData.iData.ARAmountBasePaymentTerm) ? null : Decimal.valueOf(gData.iData.ARAmountBasePaymentTerm), |
| | | ArrearsBaseInvoice__c = String.isBlank(gData.iData.ArrearsBaseInvoice) ? null : Decimal.valueOf(gData.iData.ArrearsBaseInvoice), |
| | | ARAmountBaseInvoice__c = String.isBlank(gData.iData.ARAmountBaseInvoice) ? null : Decimal.valueOf(gData.iData.ARAmountBaseInvoice), |
| | | ARAmountBaseAverage__c = String.isBlank(gData.iData.ARAmountBaseAverage) ? null : Decimal.valueOf(gData.iData.ARAmountBaseAverage), |
| | | AccumulativeARAmountBaseAverage__c = String.isBlank(gData.iData.AccumulativeARAmountBaseAverage) ? null : Decimal.valueOf(gData.iData.AccumulativeARAmountBaseAverage), |
| | | BaddebtsFlg__c = gData.iData.BaddebtsFlg, |
| | | MessageGroupNumber__c = rowData.MessageGroupNumber__c |
| | | ); |
| | | if (gData.iData.BaddebtsFlg == 'X') { |
| | | rr.BaddebtsAmount__c = String.isBlank(gData.iData.PaymentAmount) ? null : Decimal.valueOf(gData.iData.PaymentAmount); |
| | | rr.BaddebtsDate__c = NFMUtil.parseStr2Date(gData.iData.PaymentDate); |
| | | } else { |
| | | rr.PaymentAmount__c = String.isBlank(gData.iData.PaymentAmount) ? null : Decimal.valueOf(gData.iData.PaymentAmount); |
| | | rr.PaymentDate__c = NFMUtil.parseStr2Date(gData.iData.PaymentDate); |
| | | } |
| | | receiptUniqueMap.put(gData.iData.SFDCRepairNo, rr); |
| | | receiptLastMap.put(mc.Id, rr); |
| | | } |
| | | else { |
| | | iflog.ErrorLog__c += 'SFDCRepairNo[' + gData.SFDCRepairNo + ']' + gData.iData.PaymentSource + ':Undefined\n'; |
| | | continue; |
| | | } |
| | | } |
| | | if (receiptUniqueMap.size() > 0) { |
| | | upsert receiptUniqueMap.values() UniqueKey__c; |
| | | } |
| | | // è¦ªã®æ´æ° |
| | | List<Repair__c> rprList = new List<Repair__c>(); |
| | | List<Maintenance_Contract__c> mcList = new List<Maintenance_Contract__c>(); |
| | | for (Repair_receipt__c receipt : receiptLastMap.values()) { |
| | | Repair__c rpr = recptsMap.get(receipt.SFDCRepairNo__c); |
| | | Maintenance_Contract__c mc = mcMap.get(receipt.SFDCRepairNo__c); |
| | | if (rpr != null) { |
| | | if (String.isBlank(rpr.NFM108_Receipt__r.MessageGroupNumber__c) || Integer.valueOf(rpr.NFM108_Receipt__r.MessageGroupNumber__c) <= Integer.valueOf(rowData.MessageGroupNumber__c)) { |
| | | rpr.NFM108_Receipt__c = receipt.Id; |
| | | rpr.Paid_Amount__c = receipt.AccumulativeTotalPaymentAmount__c; |
| | | rpr.Unpaid_Amount_ESAS__c = receipt.ArrearsBaseInvoice__c; |
| | | rpr.Unpaid_amount_IF__c = receipt.ArrearsBasePaymentTerm__c; |
| | | } |
| | | if (receipt.ArrearsBasePaymentTerm__c == 0) { |
| | | //if (rpr.Received_Date__c == null) { |
| | | rpr.Received_Date__c = (receipt.PaymentDate__c == null) ? receipt.BaddebtsDate__c : receipt.PaymentDate__c; |
| | | //} |
| | | } else { |
| | | rpr.Received_Date__c = null; |
| | | } |
| | | if (rpr.BaddebtsDate__c == null && receipt.BaddebtsFlg__c == 'X') { |
| | | rpr.BaddebtsDate__c = receipt.BaddebtsDate__c; |
| | | } |
| | | rprList.add(rpr); |
| | | } |
| | | else if (mc != null) { |
| | | if (String.isBlank(mc.NFM108_Receipt__r.MessageGroupNumber__c) || Integer.valueOf(mc.NFM108_Receipt__r.MessageGroupNumber__c) <= Integer.valueOf(rowData.MessageGroupNumber__c)) { |
| | | mc.NFM108_Receipt__c = receipt.Id; |
| | | mc.Recoverable_Amount__c = receipt.AccumulativeTotalPaymentAmount__c; |
| | | mc.Not_collect_money__c = receipt.ArrearsBaseInvoice__c; |
| | | mc.Total_not_collect_amount__c = receipt.ArrearsBasePaymentTerm__c; |
| | | } |
| | | if (receipt.ArrearsBasePaymentTerm__c == 0) { |
| | | if (mc.Received_Date__c == null) { |
| | | mc.Received_Date__c = (receipt.PaymentDate__c == null) ? receipt.BaddebtsDate__c : receipt.PaymentDate__c; |
| | | } |
| | | } else { |
| | | mc.Received_Date__c = null; |
| | | } |
| | | if (mc.BaddebtsDate__c == null && receipt.BaddebtsFlg__c == 'X') { |
| | | mc.BaddebtsDate__c = receipt.BaddebtsDate__c; |
| | | } |
| | | mcList.add(mc); |
| | | } |
| | | } |
| | | if (rprList.size() > 0) update rprList; |
| | | if (mcList.size() > 0) update mcList; |
| | | logstr += '\nend'; |
| | | rowData.retry_cnt__c=0; |
| | | } catch (Exception ex) { |
| | | // ã¨ã©ã¼ãçºçããå ´å |
| | | Database.rollback(sp); |
| | | System.debug(Logginglevel.ERROR, 'NFM108_' + rowData.MessageGroupNumber__c + ':' + ex.getMessage()); |
| | | System.debug(Logginglevel.ERROR, 'NFM108_' + rowData.MessageGroupNumber__c + ':' + ex.getStackTraceString()); |
| | | logstr += '\n' + ex.getMessage(); |
| | | iflog.ErrorLog__c = ex.getMessage() + '\n' + ex.getStackTraceString() + '\n' + iflog.ErrorLog__c; |
| | | if (rowData.retry_cnt__c == null) rowData.retry_cnt__c = 0; |
| | | if (rowData.retry_cnt__c < batch_retry_max_cnt){ |
| | | rowData.retry_cnt__c++; |
| | | LogAutoSendSchedule.assignOneMinute(); |
| | | } |
| | | if (rowData.retry_cnt__c >= batch_retry_max_cnt){ |
| | | rowData.ErrorLog__c = ex.getMessage() + '\n' + ex.getStackTraceString() + '\n' + rowData.ErrorLog__c+'é误次æ°å·²ç»è¶
è¿èªå¨æ¶ä¿¡è®¾å®çæå¤§æ¬¡æ°ï¼è¯·æå¨æ¶ä¿¡'; |
| | | } |
| | | } |
| | | update rowData; |
| | | iflog.Log__c = logstr; |
| | | if (iflog.Log__c.length() > 131072) { |
| | | iflog.Log__c = iflog.Log__c.subString(0, 131065) + ' ...'; |
| | | } |
| | | if (iflog.ErrorLog__c.length() > 32768) { |
| | | iflog.ErrorLog__c = iflog.ErrorLog__c.subString(0, 32760) + ' ...'; |
| | | } |
| | | update iflog; |
| | | } |
| | | } |
| New file |
| | |
| | | // TODO ãµãã³ã³ã®ãã¹ã |
| | | @isTest |
| | | private class NFM108WebServiceTest { |
| | | |
| | | // ãã®ã¾ã¾return ã®ãã¿ã¼ã³ |
| | | // rawdataã®ç¢ºèª |
| | | static testMethod void testNFM108Repair_void() { |
| | | List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'ç
é¢']; |
| | | if (rectCo.size() == 0) { |
| | | throw new ControllerUtil.myException('not found ç
é¢ recodetype'); |
| | | } |
| | | List<RecordType> rectSct = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'æ¦ç¥ç§å®¤åé¡ æ¶åç§']; |
| | | if (rectSct.size() == 0) { |
| | | throw new ControllerUtil.myException('not found æ¦ç¥ç§å®¤åé¡ æ¶åç§ recodetype'); |
| | | } |
| | | List<RecordType> rectDpt = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '診çç§ æ¶åç§']; |
| | | if (rectDpt.size() == 0) { |
| | | throw new ControllerUtil.myException('not found 診çç§ æ¶åç§ recodetype'); |
| | | } |
| | | // ãã¹ããã¼ã¿ |
| | | Account company = new Account(); |
| | | company.RecordTypeId = rectCo[0].Id; |
| | | company.Name = 'NFM108TestCompany'; |
| | | upsert company; |
| | | Account section = [Select Id, Name, Department_Class_Label__c, ParentId from Account where ParentId = :company.Id and RecordTypeId = :rectSct[0].Id]; |
| | | |
| | | Account depart = new Account(); |
| | | depart.RecordTypeId = rectDpt[0].Id; |
| | | depart.Name = '*'; |
| | | depart.Department_Name__c = 'NFM108TestDepart'; |
| | | depart.ParentId = section.Id; |
| | | depart.Department_Class__c = section.Id; |
| | | depart.Hospital__c = company.Id; |
| | | upsert depart; |
| | | |
| | | // ååå¾ |
| | | List<Account> accList = new List<Account>(); |
| | | company = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :company.Id]; |
| | | accList.add(company); |
| | | section = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :section.Id]; |
| | | accList.add(section); |
| | | depart = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :depart.Id]; |
| | | accList.add(depart); |
| | | |
| | | List<Product2> prdList = new List<Product2>(); |
| | | Product2 prd1 = new Product2(); |
| | | prd1.ProductCode_Ext__c = 'NFM108Prd1'; |
| | | prd1.ProductCode = 'NFM108Prd1'; |
| | | prd1.Repair_Product_Code__c = 'NFM108Prd1_RP'; |
| | | prd1.Name = 'NFM108Prd1'; |
| | | prd1.Manual_Entry__c = false; |
| | | prdList.add(prd1); |
| | | Product2 prd2 = new Product2(); |
| | | prd2.ProductCode_Ext__c = 'NFM108Prd2'; |
| | | prd2.ProductCode = 'NFM108Prd2'; |
| | | prd2.Repair_Product_Code__c = 'NFM108Prd2_RP'; |
| | | prd2.Name = 'NFM108Prd2'; |
| | | prd2.Manual_Entry__c = false; |
| | | prdList.add(prd2); |
| | | insert prdList; |
| | | |
| | | Asset ast = new Asset(); |
| | | ast.Name = 'NFM108Ast1'; |
| | | ast.AccountId = depart.Id; |
| | | ast.Department_Class__c = section.Id; |
| | | ast.Hospital__c = company.Id; |
| | | ast.Product2Id = prd1.Id; |
| | | ast.SerialNumber = 'NFM108SerialNumber'; |
| | | ast.Guarantee_period_for_products__c = Date.today(); |
| | | ast.InstallDate = Date.today(); |
| | | insert ast; |
| | | ast = [select Id, Name, Product_Serial_No__c, AccountId, Department_Class__c, Department_Class__r.Management_Code_Auto__c, Hospital__c, Product2Id, Product2.ProductCode, Product2.Repair_Product_Code__c, SerialNumber |
| | | from Asset |
| | | where Id = :ast.Id]; |
| | | |
| | | Repair__c rpr = new Repair__c(); |
| | | rpr.SAPRepairNo__c = 'NFM108Rpr1'; |
| | | rpr.Account__c = depart.Id; |
| | | rpr.Department_Class__c = section.Id; |
| | | rpr.Hospital__c = company.Id; |
| | | rpr.Delivered_Product__c = ast.Id; |
| | | rpr.SalesOfficeCode_selection__c = 'å京'; |
| | | insert rpr; |
| | | rpr = [select Id, Name, Delivered_Product__c, SAPRepairNo__c from Repair__c where Id = :rpr.Id]; |
| | | |
| | | // ãã®ã¾ã¾return |
| | | // null |
| | | NFM108WebService.NFM108(null); |
| | | |
| | | NFM108WebService.Payment Payment = new NFM108WebService.Payment(); |
| | | NFM108WebService.GeneralData GeneralData = new NFM108WebService.GeneralData(); |
| | | Payment.GeneralData = new NFM108WebService.GeneralData[] { GeneralData }; |
| | | |
| | | // Monitoringãã»ããããªã |
| | | NFM108WebService.NFM108(Payment); |
| | | |
| | | Datetime nowDT = Datetime.now(); |
| | | String nowStr = nowDT.format('yyyyMMddHHmm'); |
| | | Payment.Monitoring = new NFMUtil.Monitoring(); |
| | | Payment.Monitoring.MessageGroupNumber = nowStr + '01'; |
| | | // å¿
é é
ç®ãã»ããããªã |
| | | NFM108WebService.NFM108(Payment); |
| | | |
| | | // PaymentSource Undefined |
| | | Payment.Monitoring.MessageGroupNumber = nowStr + '02'; |
| | | GeneralData.SFDCRepairNo = 'ABC'; |
| | | NFM108WebService.NFM108(Payment); |
| | | |
| | | List<BatchIF_Log__c> iflogList = [select Id, RowDataFlg__c, Log__c, ErrorLog__c from BatchIF_Log__c where MessageGroupNumber__c = :Payment.Monitoring.MessageGroupNumber]; |
| | | System.assertEquals(1, iflogList.size()); |
| | | System.assertEquals(true, iflogList[0].RowDataFlg__c); |
| | | System.assertEquals('[{"SFDCRepairNo":"ABC","PaymentSource":null,"PaymentDate":null,"PaymentAmount":null,"BaddebtsFlg":null,"ArrearsBasePaymentTerm":null,"ArrearsBaseInvoice":null,"ARAmountBasePaymentTerm":null,"ARAmountBaseInvoice":null,"ARAmountBaseAverage":null,"AccumulativeTotalPaymentAmount":null,"AccumulativeARAmountBaseAverage":null}]', iflogList[0].Log__c); |
| | | |
| | | // PaymentSource Undefined |
| | | NFMUtil.MaxLogColumnLength = 2; |
| | | Payment.Monitoring.MessageGroupNumber = nowStr + '03'; |
| | | GeneralData.SFDCRepairNo = 'ABC'; |
| | | NFM108WebService.NFM108(Payment); |
| | | iflogList = [select Id, RowDataFlg__c, Log__c, ErrorLog__c, Log2__c, Log3__c, Log4__c, Log5__c, Log6__c, Log7__c, Log8__c, Log9__c, Log10__c, Log11__c, Log12__c from BatchIF_Log__c where MessageGroupNumber__c = :Payment.Monitoring.MessageGroupNumber]; |
| | | System.debug('iflogList=' + iflogList); |
| | | System.assertEquals(1, iflogList.size()); |
| | | System.assertEquals(true, iflogList[0].RowDataFlg__c); |
| | | System.assertEquals('[{"SFDCRepairNo":"ABC","PaymentSource":null,"PaymentDate":null,"PaymentAmount":null,"BaddebtsFlg":null,"ArrearsBasePaymentTerm":null,"ArrearsBaseInvoice":null,"ARAmountBasePaymentTerm":null,"ARAmountBaseInvoice":null,"ARAmountBaseAverage":null,"AccumulativeTotalPaymentAmount":null,"AccumulativeARAmountBaseAverage":null}]', |
| | | iflogList[0].Log__c + iflogList[0].Log2__c + iflogList[0].Log3__c + iflogList[0].Log4__c + iflogList[0].Log5__c + iflogList[0].Log6__c + iflogList[0].Log7__c |
| | | + iflogList[0].Log8__c + iflogList[0].Log9__c + iflogList[0].Log10__c + iflogList[0].Log11__c + iflogList[0].Log12__c + iflogList[0].ErrorLog__c); |
| | | } |
| | | |
| | | // rawdata ãã Insert ãã¹ã |
| | | static testMethod void testExecute_insert() { |
| | | List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'ç
é¢']; |
| | | if (rectCo.size() == 0) { |
| | | throw new ControllerUtil.myException('not found ç
é¢ recodetype'); |
| | | } |
| | | List<RecordType> rectSct = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'æ¦ç¥ç§å®¤åé¡ æ¶åç§']; |
| | | if (rectSct.size() == 0) { |
| | | throw new ControllerUtil.myException('not found æ¦ç¥ç§å®¤åé¡ æ¶åç§ recodetype'); |
| | | } |
| | | List<RecordType> rectDpt = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '診çç§ æ¶åç§']; |
| | | if (rectDpt.size() == 0) { |
| | | throw new ControllerUtil.myException('not found 診çç§ æ¶åç§ recodetype'); |
| | | } |
| | | // ãã¹ããã¼ã¿ |
| | | Account company = new Account(); |
| | | company.RecordTypeId = rectCo[0].Id; |
| | | company.Name = 'NFM108TestCompany'; |
| | | upsert company; |
| | | Account section = [Select Id, Name, Department_Class_Label__c, ParentId from Account where ParentId = :company.Id and RecordTypeId = :rectSct[0].Id]; |
| | | |
| | | Account depart = new Account(); |
| | | depart.RecordTypeId = rectDpt[0].Id; |
| | | depart.Name = '*'; |
| | | depart.Department_Name__c = 'NFM108TestDepart'; |
| | | depart.ParentId = section.Id; |
| | | depart.Department_Class__c = section.Id; |
| | | depart.Hospital__c = company.Id; |
| | | upsert depart; |
| | | |
| | | // ååå¾ |
| | | List<Account> accList = new List<Account>(); |
| | | company = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :company.Id]; |
| | | accList.add(company); |
| | | section = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :section.Id]; |
| | | accList.add(section); |
| | | depart = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :depart.Id]; |
| | | accList.add(depart); |
| | | |
| | | List<Product2> prdList = new List<Product2>(); |
| | | Product2 prd1 = new Product2(); |
| | | prd1.ProductCode_Ext__c = 'NFM108Prd1'; |
| | | prd1.ProductCode = 'NFM108Prd1'; |
| | | prd1.Repair_Product_Code__c = 'NFM108Prd1_RP'; |
| | | prd1.Name = 'NFM108Prd1'; |
| | | prd1.Manual_Entry__c = false; |
| | | prdList.add(prd1); |
| | | Product2 prd2 = new Product2(); |
| | | prd2.ProductCode_Ext__c = 'NFM108Prd2'; |
| | | prd2.ProductCode = 'NFM108Prd2'; |
| | | prd2.Repair_Product_Code__c = 'NFM108Prd2_RP'; |
| | | prd2.Name = 'NFM108Prd2'; |
| | | prd2.Manual_Entry__c = false; |
| | | prdList.add(prd2); |
| | | insert prdList; |
| | | |
| | | Asset ast = new Asset(); |
| | | ast.Name = 'NFM108Ast1'; |
| | | ast.AccountId = depart.Id; |
| | | ast.Department_Class__c = section.Id; |
| | | ast.Hospital__c = company.Id; |
| | | ast.Product2Id = prd1.Id; |
| | | ast.SerialNumber = 'NFM108SerialNumber'; |
| | | ast.Guarantee_period_for_products__c = Date.today(); |
| | | ast.InstallDate = Date.today(); |
| | | insert ast; |
| | | ast = [select Id, Name, Product_Serial_No__c, AccountId, Department_Class__c, Department_Class__r.Management_Code_Auto__c, Hospital__c, Product2Id, Product2.ProductCode, Product2.Repair_Product_Code__c, SerialNumber |
| | | from Asset |
| | | where Id = :ast.Id]; |
| | | |
| | | Repair__c rpr = new Repair__c(); |
| | | rpr.SAPRepairNo__c = 'NFM108SAP'; |
| | | rpr.Account__c = depart.Id; |
| | | rpr.Department_Class__c = section.Id; |
| | | rpr.Hospital__c = company.Id; |
| | | rpr.Delivered_Product__c = ast.Id; |
| | | rpr.SalesOfficeCode_selection__c = 'å京'; |
| | | insert rpr; |
| | | rpr = [select Id, Name, Delivered_Product__c, SAPRepairNo__c from Repair__c where Id = :rpr.Id]; |
| | | String strSFDCRepairNo = rpr.Name + ':123'; |
| | | |
| | | // rawdata |
| | | BatchIF_Log__c rawData = new BatchIF_Log__c( |
| | | RowDataFlg__c = true, |
| | | MessageGroupNumber__c = 'MG_1234567890', |
| | | Log__c = '[{"SFDCRepairNo":"' + strSFDCRepairNo + '","PaymentSource":"ç»´ä¿®å","PaymentDate":20160101,"PaymentAmount":12345,"BaddebtsFlg":"X","ArrearsBasePaymentTerm":0,"ArrearsBaseInvoice":null,"ARAmountBasePaymentTerm":null,"ARAmountBaseInvoice":null,"ARAmountBaseAverage":null,"AccumulativeTotalPaymentAmount":null,"AccumulativeARAmountBaseAverage":null}]' |
| | | ); |
| | | insert rawData; |
| | | |
| | | // Test & assert |
| | | Test.startTest(); |
| | | NFM108WebService.execute(rawData.Id); |
| | | Test.stopTest(); |
| | | List<BatchIF_Log__c> iflogList = [select Id, Log__c, ErrorLog__c from BatchIF_Log__c where MessageGroupNumber__c = 'MG_1234567890' and RowDataFlg__c = false]; |
| | | System.assertEquals(1, iflogList.size()); |
| | | System.assertEquals(null, iflogList[0].ErrorLog__c); |
| | | // System.assertEquals(null, iflogList[0].Log__c); |
| | | Repair_receipt__c rc_Res = [select Id, Name, SFDCRepairNo__c, PaymentVoucher__c from Repair_receipt__c where UniqueKey__c = :strSFDCRepairNo]; |
| | | System.assertEquals(strSFDCRepairNo, rc_Res.Name); |
| | | System.assertEquals(rpr.Name, rc_Res.SFDCRepairNo__c); |
| | | System.assertEquals('123', rc_Res.PaymentVoucher__c); |
| | | rpr = [select Id, Name, Delivered_Product__c, SAPRepairNo__c, Received_Date__c, BaddebtsDate__c from Repair__c where Id = :rpr.Id]; |
| | | System.assertEquals(Date.newInstance(2016, 1, 1), rpr.Received_Date__c); |
| | | System.assertEquals(Date.newInstance(2016, 1, 1), rpr.BaddebtsDate__c); |
| | | } |
| | | |
| | | // rawdata ãã Resend ãã¹ã |
| | | static testMethod void testExecute_resend() { |
| | | List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'ç
é¢']; |
| | | if (rectCo.size() == 0) { |
| | | throw new ControllerUtil.myException('not found ç
é¢ recodetype'); |
| | | } |
| | | List<RecordType> rectSct = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'æ¦ç¥ç§å®¤åé¡ æ¶åç§']; |
| | | if (rectSct.size() == 0) { |
| | | throw new ControllerUtil.myException('not found æ¦ç¥ç§å®¤åé¡ æ¶åç§ recodetype'); |
| | | } |
| | | List<RecordType> rectDpt = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '診çç§ æ¶åç§']; |
| | | if (rectDpt.size() == 0) { |
| | | throw new ControllerUtil.myException('not found 診çç§ æ¶åç§ recodetype'); |
| | | } |
| | | // ãã¹ããã¼ã¿ |
| | | Account company = new Account(); |
| | | company.RecordTypeId = rectCo[0].Id; |
| | | company.Name = 'NFM108TestCompany'; |
| | | upsert company; |
| | | Account section = [Select Id, Name, Department_Class_Label__c, ParentId from Account where ParentId = :company.Id and RecordTypeId = :rectSct[0].Id]; |
| | | |
| | | Account depart = new Account(); |
| | | depart.RecordTypeId = rectDpt[0].Id; |
| | | depart.Name = '*'; |
| | | depart.Department_Name__c = 'NFM108TestDepart'; |
| | | depart.ParentId = section.Id; |
| | | depart.Department_Class__c = section.Id; |
| | | depart.Hospital__c = company.Id; |
| | | upsert depart; |
| | | |
| | | // ååå¾ |
| | | List<Account> accList = new List<Account>(); |
| | | company = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :company.Id]; |
| | | accList.add(company); |
| | | section = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :section.Id]; |
| | | accList.add(section); |
| | | depart = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :depart.Id]; |
| | | accList.add(depart); |
| | | |
| | | List<Product2> prdList = new List<Product2>(); |
| | | Product2 prd1 = new Product2(); |
| | | prd1.ProductCode_Ext__c = 'NFM108Prd1'; |
| | | prd1.ProductCode = 'NFM108Prd1'; |
| | | prd1.Repair_Product_Code__c = 'NFM108Prd1_RP'; |
| | | prd1.Name = 'NFM108Prd1'; |
| | | prd1.Manual_Entry__c = false; |
| | | prdList.add(prd1); |
| | | Product2 prd2 = new Product2(); |
| | | prd2.ProductCode_Ext__c = 'NFM108Prd2'; |
| | | prd2.ProductCode = 'NFM108Prd2'; |
| | | prd2.Repair_Product_Code__c = 'NFM108Prd2_RP'; |
| | | prd2.Name = 'NFM108Prd2'; |
| | | prd2.Manual_Entry__c = false; |
| | | prdList.add(prd2); |
| | | insert prdList; |
| | | |
| | | Asset ast = new Asset(); |
| | | ast.Name = 'NFM108Ast1'; |
| | | ast.AccountId = depart.Id; |
| | | ast.Department_Class__c = section.Id; |
| | | ast.Hospital__c = company.Id; |
| | | ast.Product2Id = prd1.Id; |
| | | ast.SerialNumber = 'NFM108SerialNumber'; |
| | | ast.Guarantee_period_for_products__c = Date.today(); |
| | | ast.InstallDate = Date.today(); |
| | | insert ast; |
| | | ast = [select Id, Name, Product_Serial_No__c, AccountId, Department_Class__c, Department_Class__r.Management_Code_Auto__c, Hospital__c, Product2Id, Product2.ProductCode, Product2.Repair_Product_Code__c, SerialNumber |
| | | from Asset |
| | | where Id = :ast.Id]; |
| | | |
| | | Repair__c rpr = new Repair__c(); |
| | | rpr.SAPRepairNo__c = 'NFM108SAP'; |
| | | rpr.Account__c = depart.Id; |
| | | rpr.Department_Class__c = section.Id; |
| | | rpr.Hospital__c = company.Id; |
| | | rpr.Delivered_Product__c = ast.Id; |
| | | rpr.SalesOfficeCode_selection__c = 'å京'; |
| | | insert rpr; |
| | | rpr = [select Id, Name, Delivered_Product__c, SAPRepairNo__c from Repair__c where Id = :rpr.Id]; |
| | | String strSFDCRepairNo = rpr.Name + ':123'; |
| | | |
| | | // rawdata |
| | | BatchIF_Log__c rawData = new BatchIF_Log__c( |
| | | RowDataFlg__c = true, |
| | | retry_cnt__c = 1, |
| | | MessageGroupNumber__c = 'MG_1234567890', |
| | | Log__c = '[{"SFDCRepairNo":"' + strSFDCRepairNo + '","PaymentSource":"ç»´ä¿®å","PaymentDate":20160101,"PaymentAmount":12345,"BaddebtsFlg":"X","ArrearsBasePaymentTerm":0,"ArrearsBaseInvoice":null,"ARAmountBasePaymentTerm":null,"ARAmountBaseInvoice":null,"ARAmountBaseAverage":null,"AccumulativeTotalPaymentAmount":null,"AccumulativeARAmountBaseAverage":null}]' |
| | | ); |
| | | insert rawData; |
| | | |
| | | // Test & assert |
| | | Test.startTest(); |
| | | NFM108WebService.execute(rawData.Id); |
| | | Test.stopTest(); |
| | | List<BatchIF_Log__c> bl = [Select Id, Is_Error__c, |
| | | Type__c, Log__c, ErrorLog__c,retry_cnt__c |
| | | from BatchIF_Log__c |
| | | where Id = :rawData.id]; |
| | | System.assertEquals(0, bl[0].retry_cnt__c); |
| | | List<BatchIF_Log__c> iflogList = [select Id, Log__c, ErrorLog__c from BatchIF_Log__c where MessageGroupNumber__c = 'MG_1234567890' and RowDataFlg__c = false]; |
| | | System.assertEquals(1, iflogList.size()); |
| | | System.assertEquals(null, iflogList[0].ErrorLog__c); |
| | | // System.assertEquals(null, iflogList[0].Log__c); |
| | | Repair_receipt__c rc_Res = [select Id, Name, SFDCRepairNo__c, PaymentVoucher__c from Repair_receipt__c where UniqueKey__c = :strSFDCRepairNo]; |
| | | System.assertEquals(strSFDCRepairNo, rc_Res.Name); |
| | | System.assertEquals(rpr.Name, rc_Res.SFDCRepairNo__c); |
| | | System.assertEquals('123', rc_Res.PaymentVoucher__c); |
| | | rpr = [select Id, Name, Delivered_Product__c, SAPRepairNo__c, Received_Date__c, BaddebtsDate__c from Repair__c where Id = :rpr.Id]; |
| | | System.assertEquals(Date.newInstance(2016, 1, 1), rpr.Received_Date__c); |
| | | System.assertEquals(Date.newInstance(2016, 1, 1), rpr.BaddebtsDate__c); |
| | | } |
| | | |
| | | static testMethod void testExecute2() { |
| | | List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'ç
é¢']; |
| | | if (rectCo.size() == 0) { |
| | | throw new ControllerUtil.myException('not found ç
é¢ recodetype'); |
| | | } |
| | | List<RecordType> rectSct = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'æ¦ç¥ç§å®¤åé¡ æ¶åç§']; |
| | | if (rectSct.size() == 0) { |
| | | throw new ControllerUtil.myException('not found æ¦ç¥ç§å®¤åé¡ æ¶åç§ recodetype'); |
| | | } |
| | | List<RecordType> rectDpt = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '診çç§ æ¶åç§']; |
| | | if (rectDpt.size() == 0) { |
| | | throw new ControllerUtil.myException('not found 診çç§ æ¶åç§ recodetype'); |
| | | } |
| | | // ãã¹ããã¼ã¿ |
| | | Account company = new Account(); |
| | | company.RecordTypeId = rectCo[0].Id; |
| | | company.Name = 'NFM108TestCompany'; |
| | | upsert company; |
| | | Account section = [Select Id, Name, Department_Class_Label__c, ParentId from Account where ParentId = :company.Id and RecordTypeId = :rectSct[0].Id]; |
| | | |
| | | Account depart = new Account(); |
| | | depart.RecordTypeId = rectDpt[0].Id; |
| | | depart.Name = '*'; |
| | | depart.Department_Name__c = 'NFM108TestDepart'; |
| | | depart.ParentId = section.Id; |
| | | depart.Department_Class__c = section.Id; |
| | | depart.Hospital__c = company.Id; |
| | | upsert depart; |
| | | |
| | | // ååå¾ |
| | | List<Account> accList = new List<Account>(); |
| | | company = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :company.Id]; |
| | | accList.add(company); |
| | | section = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :section.Id]; |
| | | accList.add(section); |
| | | depart = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :depart.Id]; |
| | | accList.add(depart); |
| | | |
| | | List<Product2> prdList = new List<Product2>(); |
| | | Product2 prd1 = new Product2(); |
| | | prd1.ProductCode_Ext__c = 'NFM108Prd1'; |
| | | prd1.ProductCode = 'NFM108Prd1'; |
| | | prd1.Repair_Product_Code__c = 'NFM108Prd1_RP'; |
| | | prd1.Name = 'NFM108Prd1'; |
| | | prd1.Manual_Entry__c = false; |
| | | prdList.add(prd1); |
| | | Product2 prd2 = new Product2(); |
| | | prd2.ProductCode_Ext__c = 'NFM108Prd2'; |
| | | prd2.ProductCode = 'NFM108Prd2'; |
| | | prd2.Repair_Product_Code__c = 'NFM108Prd2_RP'; |
| | | prd2.Name = 'NFM108Prd2'; |
| | | prd2.Manual_Entry__c = false; |
| | | prdList.add(prd2); |
| | | insert prdList; |
| | | |
| | | Asset ast = new Asset(); |
| | | ast.Name = 'NFM108Ast1'; |
| | | ast.AccountId = depart.Id; |
| | | ast.Department_Class__c = section.Id; |
| | | ast.Hospital__c = company.Id; |
| | | ast.Product2Id = prd1.Id; |
| | | ast.SerialNumber = 'NFM108SerialNumber'; |
| | | ast.Guarantee_period_for_products__c = Date.today(); |
| | | ast.InstallDate = Date.today(); |
| | | insert ast; |
| | | ast = [select Id, Name, Product_Serial_No__c, AccountId, Department_Class__c, Department_Class__r.Management_Code_Auto__c, Hospital__c, Product2Id, Product2.ProductCode, Product2.Repair_Product_Code__c, SerialNumber |
| | | from Asset |
| | | where Id = :ast.Id]; |
| | | |
| | | Repair__c rpr = new Repair__c(); |
| | | rpr.SAPRepairNo__c = 'NFM108SAP'; |
| | | rpr.Account__c = depart.Id; |
| | | rpr.Department_Class__c = section.Id; |
| | | rpr.Hospital__c = company.Id; |
| | | rpr.Delivered_Product__c = ast.Id; |
| | | rpr.SalesOfficeCode_selection__c = 'å京'; |
| | | insert rpr; |
| | | rpr = [select Id, Name, Delivered_Product__c, SAPRepairNo__c from Repair__c where Id = :rpr.Id]; |
| | | String strSFDCRepairNo = rpr.Name + ':123'; |
| | | |
| | | Maintenance_Contract__c mc1 = new Maintenance_Contract__c(); |
| | | mc1.Name = 'mc1'; |
| | | mc1.Past_update_contract__c = true; |
| | | mc1.RecordTypeId = '01210000000QjeFAAS'; |
| | | mc1.CurrencyIsoCode = 'CNY'; |
| | | mc1.Status__c = 'å¥ç´'; |
| | | mc1.Hospital__c = company.Id; |
| | | mc1.Department_Class__c = section.Id; |
| | | mc1.Department__c = depart.Id; |
| | | mc1.Maintenance_Contract_No__c = 'mc1'; |
| | | mc1.Contract_Conclusion_Date__c = Date.today(); |
| | | mc1.Contract_End_Date__c = Date.today().addDays(1); |
| | | mc1.SalesOfficeCode_selection__c = 'å京RC'; |
| | | insert mc1; |
| | | |
| | | // rawdata |
| | | BatchIF_Log__c rawData = new BatchIF_Log__c( |
| | | RowDataFlg__c = true, |
| | | MessageGroupNumber__c = 'MG_1234567890', |
| | | Log__c = '[{"SFDCRepairNo":"mc1","PaymentSource":"ç»´ä¿®åå","PaymentDate":20160101,"PaymentAmount":12345,"BaddebtsFlg":"X","ArrearsBasePaymentTerm":0,"ArrearsBaseInvoice":null,"ARAmountBasePaymentTerm":null,"ARAmountBaseInvoice":null,"ARAmountBaseAverage":null,"AccumulativeTotalPaymentAmount":null,"AccumulativeARAmountBaseAverage":null}]' |
| | | ); |
| | | insert rawData; |
| | | |
| | | // Test & assert |
| | | Test.startTest(); |
| | | NFM108WebService.execute(rawData.Id); |
| | | Test.stopTest(); |
| | | } |
| | | } |
| New file |
| | |
| | | global class NewQuoteEntrytheBatch implements Database.Batchable<sObject> { |
| | | public String query; |
| | | |
| | | global NewQuoteEntrytheBatch() { |
| | | this.query = query; |
| | | } |
| | | |
| | | global Database.QueryLocator start(Database.BatchableContext bc) { |
| | | |
| | | String quoteLN = '%01'; |
| | | query='select Id,Opportunity.Department_Class__c,CreatedDate,Category4__c from Quote where Bollow_Date__c like :quoteLN and CreatedDate=TODAY'; |
| | | return Database.getQueryLocator(query); |
| | | } |
| | | |
| | | global void execute(Database.BatchableContext BC, list<Quote> qu) { |
| | | Date createdDateStr; |
| | | //è·åå·²ç»çæç询价å |
| | | List<Opportunity> opplist = New List<Opportunity>(); |
| | | Opportunity o=new Opportunity(); |
| | | List<Opportunity> os=new List<Opportunity>(); |
| | | //é忝ä¸ä¸ªæ¥ä»·å |
| | | for(Quote oneQuote:qu){ |
| | | o=oneQuote.opportunity; |
| | | //è·åæ¥ä»·æ¶é´ |
| | | if (oneQuote.id != null && oneQuote.CreatedDate != null ) { |
| | | // createdDateStr = [select id,CreatedDate from Quote where id = :quoId][0].CreatedDate.date(); |
| | | createdDateStr = oneQuote.CreatedDate.date(); |
| | | } else { |
| | | createdDateStr = Date.today(); |
| | | } |
| | | // ä¸å¹´åçæ¥æ |
| | | Date createdDateYear = createdDateStr.addYears(-1); |
| | | //è·åæ¥ä»·è¡ä¿¡æ¯ |
| | | list<QuoteLineItem> qli=[select id,Product2Id from QuoteLineItem where QuoteId=:oneQuote.id]; |
| | | List<String> c4=new List<String>(); |
| | | for(QuoteLineItem quit:qli){ |
| | | c4.add(quit.Product2.Category4__c); |
| | | } |
| | | //è·åæç» |
| | | List<Rental_Apply_Equipment_Set_Detail__c> raesdList = [select id, product__c, Bollow_Date__c, Rental_Apply__r.Hospital__c from Rental_Apply_Equipment_Set_Detail__c |
| | | where Rental_Apply__r.Strategic_dept__c = : o.Department_Class__c and Key_product__c != null and Bollow_Date__c >= :createdDateYear |
| | | and Category4__c In :c4 and Rental_Apply__r.demo_purpose2__c='è¯ç¨ï¼æ 询价ï¼' |
| | | order by Bollow_Date__c]; |
| | | |
| | | Map<String, Date> ProOfDate = new Map<String, Date>(); |
| | | for (Rental_Apply_Equipment_Set_Detail__c raesd : raesdList) { |
| | | ProOfDate.put(raesd.product__c, raesd.Bollow_Date__c); |
| | | } |
| | | o.WhetherTrySpareParts_3m__c = false; |
| | | o.WhetherTrySpareParts_6m__c = false; |
| | | o.WhetherTrySpareParts_1y__c = false; |
| | | //è·å䏿¬¡è¯¢ä»·ä¸çæ¯ä¸ä¸ªç©åç询价 |
| | | list<OpportunityLineItem> ols=[select Id from OpportunityLineItem where OpportunityId =:o.id]; |
| | | for (OpportunityLineItem oppitem : ols) { |
| | | if (ProOfDate.containsKey(((String)oppitem.Id__c).substring(0, 15))) { |
| | | Date bollDate = ProOfDate.get(((String)oppitem.Id__c).substring(0, 15)); |
| | | if (bollDate != null && bollDate.addMonths(3) > createdDateStr) { |
| | | o.WhetherTrySpareParts_3m__c = true; |
| | | } |
| | | if (bollDate != null && bollDate.addMonths(6) > createdDateStr && bollDate.addMonths(3) < createdDateStr) { |
| | | o.WhetherTrySpareParts_6m__c = true; |
| | | } |
| | | if (bollDate != null && bollDate.addYears(1) > createdDateStr && bollDate.addMonths(6) < createdDateStr) { |
| | | o.WhetherTrySpareParts_1y__c = true; |
| | | } |
| | | |
| | | } |
| | | os.add(o); |
| | | } |
| | | if(os.size()>0){ |
| | | update os; |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | global void finish(Database.BatchableContext BC) { |
| | | |
| | | } |
| | | } |
| New file |
| | |
| | | public without sharing class ProductLimitEditController { |
| | | public String accountid { get; set; } |
| | | public String product_Limit { get; set; } |
| | | //--------AddStart-----XHL--------------20180929------------- |
| | | public String userPro_Type { get; set; } |
| | | public Boolean EngFlag = false; |
| | | public Boolean ETFlag = false; |
| | | //--------AddEnd-----XHL--------------20180929------------- |
| | | // ç»é¢åå§å |
| | | public ProductLimitEditController (){ |
| | | accountid= ApexPages.currentPage().getParameters().get('accountid'); |
| | | //--------AddStart-----XHL--------------20181008------------- |
| | | userPro_Type= ApexPages.currentPage().getParameters().get('userPro_Type'); |
| | | if(String.isBlank(userPro_Type)){ |
| | | userPro_Type = 'ET'; |
| | | } |
| | | if(userPro_Type == 'ENG'){ |
| | | EngFlag = true; |
| | | }else{ |
| | | ETFlag = true; |
| | | } |
| | | //--------AddEnd-----XHL--------------20181008------------- |
| | | } |
| | | public void init() { |
| | | List<Account> accinfo = New List<Account>(); |
| | | //--------UpdateStart-----XHL--------------20181008------------- |
| | | accinfo = [SELECT Product_Limit_Date__c,Product_Limit_DateENG__c |
| | | FROM Account |
| | | WHERE id =:accountid]; |
| | | if(accinfo.size() > 0){ |
| | | if(EngFlag){ |
| | | product_Limit = accinfo [0].Product_Limit_DateENG__c; |
| | | }else if(ETFlag){ |
| | | product_Limit = accinfo [0].Product_Limit_Date__c; |
| | | } |
| | | |
| | | } |
| | | //--------UpdateEnd-----XHL--------------20181008------------- |
| | | } |
| | | } |
| New file |
| | |
| | | @isTest |
| | | private class ProductLimitEditControllerTest |
| | | { |
| | | @isTest |
| | | static void unittest() |
| | | { |
| | | |
| | | 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ééªè¯']; |
| | | Product2 prod01 = new Product2(Name='Test01',ProductCode='Test01',Asset_Model_No__c = 'Test01',SFDA_Status__c = 'æå¹',Dealer_special_Object__c = true); |
| | | Product2 prod02 = new Product2(Name='Test02',ProductCode='Test02',Asset_Model_No__c = 'Test02',SFDA_Status__c = 'æå¹',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}; |
| | | |
| | | |
| | | 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; |
| | | // Given |
| | | PageReference page = new PageReference('/apex/ProductLimitEdit?accountid=' + myAccount2.id); |
| | | page.setRedirect(true); |
| | | System.Test.setCurrentPage(page); |
| | | ProductLimitEditController conTest = new ProductLimitEditController(); |
| | | conTest.init(); |
| | | System.assertEquals('Test01|5|55,Test02|2|4', conTest.product_Limit); |
| | | |
| | | // When |
| | | |
| | | |
| | | // Then |
| | | |
| | | } |
| | | } |
| New file |
| | |
| | | public without sharing class RentalAgencyReceivedController { |
| | | public List<EsdInfo> esdList { get; set; } |
| | | public String stepName {get;set;} |
| | | public String qrcode {get;set;} |
| | | public boolean done_flg {get;set;} |
| | | public String raId {get;set;} |
| | | public Boolean readOnly { get; set; } |
| | | public Boolean stockupActive{get;set;} |
| | | public String lostResult {get;set;} // æ£ç´¢ç¨ |
| | | public String cdsResult {get;set;} // æ£ç´¢ç¨ |
| | | private Rental_Apply__c parentObj; |
| | | private Boolean isSameCity; |
| | | |
| | | public String skipId{get;set;} |
| | | |
| | | |
| | | private static final Map<String,Schema.RecordTypeInfo> DEVELOPERNAMEMAP = Schema.SObjectType.Rental_Apply__c.getRecordTypeInfosByDeveloperName(); |
| | | public Boolean isAdvocateFollow{get;set;} |
| | | public Boolean isImportReceiptForm{get;set;} |
| | | |
| | | public RentalAgencyReceivedController() { |
| | | raId = ApexPages.currentPage().getParameters().get('id'); |
| | | stepName = ''; |
| | | lostResult = ''; |
| | | cdsResult = ''; |
| | | isImportReceiptForm = false; |
| | | isAdvocateFollow = false; |
| | | skipId = ''; |
| | | } |
| | | private List<Rental_Apply_Equipment_Set_Detail__c> getDetails() { |
| | | List<Rental_Apply_Equipment_Set_Detail__c> raesdList = [ |
| | | select Id |
| | | , Rental_Apply_Equipment_Set__c |
| | | , Asset__r.Product2Id |
| | | , Asset__r.CountForRepair__c |
| | | , Asset__r.Abandoned_RealThing__c |
| | | , Asset__r.You_Xiao_Ku_Cun__c |
| | | , Asset_return_time__c |
| | | , Fixture_Model_No__c |
| | | , SerialNumber_F__c |
| | | , Arrival_wh_Flag_F__c |
| | | , Arrival_wh_Abandoned_Flag_F__c |
| | | , Fixture_Set_Detail__r.Is_OneToOne__c |
| | | , Is_Body__c |
| | | , Rental_Apply_Equipment_Set__r.Fixture_Set__r.Name |
| | | , FSD_OneToOneAccessory_Cnt_F__c |
| | | , Asset__r.WH_location__c |
| | | , OneToOne_Flag__c |
| | | , Fixture_QRCode_F__c |
| | | , Rental_Apply_Equipment_Set__r.Name |
| | | , Name, Asset__c, Asset__r.Name, Asset__r.SerialNumber, Asset__r.Product_Serial_No__c |
| | | , Check_lost_Item__c |
| | | , Inspection_result_after_F__c |
| | | , Arrival_in_wh__c |
| | | , CDS_complete__c |
| | | , Arrival_wh_Result_Agency__c |
| | | , Check_lost_Item_Final__c |
| | | , Check_lost_Item_F__c |
| | | , Internal_Asset_number_c__c |
| | | , Return_DeliverySlip__c |
| | | , DeliverySlip__c |
| | | , Rental_Apply_Equipment_Set__r.Wei_Arrival_in_wh__c |
| | | , LastModifiedDate |
| | | , LastModifiedBy.Name |
| | | , Lost_item_giveup__c |
| | | , Internal_asset_location__c |
| | | , Arrival_wh_time__c |
| | | , Rental_Apply_Equipment_Set__r.First_RAESD__r.Asset__c |
| | | , Rental_Apply_Equipment_Set__r.First_RAESD__r.Arrival_wh_Result_Agency__c |
| | | , Rental_Apply_Equipment_Set__r.First_RAESD__r.Asset__r.You_Xiao_Ku_Cun__c |
| | | , CanAgencyChangeResult__c |
| | | , SeparateFromMain__c |
| | | , Arrival_wh_time_Agency_First__c |
| | | from Rental_Apply_Equipment_Set_Detail__c |
| | | where Rental_Apply__c =:raId and ((Shipment_request_time2__c <> null and Cancel_Select__c = False )) |
| | | order by Rental_Apply_Equipment_Set__r.Name, Rental_Apply_Equipment_Set__c, Is_Body__c DESC, Name |
| | | ]; |
| | | return raesdList; |
| | | } |
| | | private Map<Id, Rental_Apply_Equipment_Set_Detail__c> getDetailsMap() { |
| | | List<Rental_Apply_Equipment_Set_Detail__c> raesdList = getDetails(); |
| | | Map<Id, Rental_Apply_Equipment_Set_Detail__c> raesdMap = new Map<Id, Rental_Apply_Equipment_Set_Detail__c>(); |
| | | |
| | | for(Rental_Apply_Equipment_Set_Detail__c raesd:raesdList) { |
| | | raesdMap.put(raesd.Id, raesd); |
| | | } |
| | | return raesdMap; |
| | | } |
| | | |
| | | |
| | | // ç»é¢åå§å |
| | | public PageReference init() { |
| | | done_flg = false; |
| | | |
| | | if (raId != null) { |
| | | List<Rental_Apply__c> raList = [ |
| | | SELECT Id |
| | | , Name |
| | | , Yi_loaner_arranged__c |
| | | , demo_purpose2__c |
| | | , Asset_loaner_start_day__c |
| | | , Hope_Lonaer_date_Num__c |
| | | , Campaign_EndDate_F__c |
| | | , requestNoJoinStr2__c |
| | | , Root_Rental_Apply__c |
| | | , ToAgency__c |
| | | , StockDown_ng_num__c |
| | | , DeliverySlip__c |
| | | , Old_Rental_Apply__c |
| | | , Split_Apply_Reason__c |
| | | , HP_received_sign_rich__c |
| | | , Status__c |
| | | , Old_Rental_Apply__r.Asset_loaner_start_date__c |
| | | , Old_Rental_Apply__r.HP_received_sign_rich__c |
| | | , ShelfUp_ng_num__c |
| | | , RecordType.Name |
| | | , RecordType.Id |
| | | , OwnerId |
| | | FROM Rental_Apply__c |
| | | WHERE Id=:raId |
| | | LIMIT 1 |
| | | ]; |
| | | if(raList.isEmpty()) { |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'å¤åååºç³è¯·ä¸åå¨ï¼')); |
| | | return null; |
| | | } |
| | | parentObj = raList[0]; |
| | | List<User> owners = [SELECT OCM_man_province_Rental__c FROM User WHERE Id=:parentObj.OwnerId LIMIT 1]; |
| | | if(owners.isEmpty()) { |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'ç³è¯·è
ä¸åå¨ï¼')); |
| | | return null; |
| | | } |
| | | else { |
| | | isSameCity = owners[0].OCM_man_province_Rental__c == parentObj.ToAgency__c; |
| | | } |
| | | |
| | | //wangweipeng 2021/09/03 SFDC-C4H4BM start |
| | | //æ¥è¯¢æ¯å¦æ¯ä»å,å¹¶ä¸ä»åæ¯å¦æ²¡æä¸ä¼ ç¾æ¶å |
| | | if(raList != null && raList.size() > 0 && isSameCity){ |
| | | String ra_RecordTypeId = DEVELOPERNAMEMAP.get('AgencyRequest').getRecordTypeId();//è·åè®°å½ç±»å |
| | | ra_RecordTypeId = ra_RecordTypeId.substring(0,15); |
| | | |
| | | for(Rental_Apply__c rac : raList){ |
| | | //å¤åç¾æ¶åæ¯å¦ä¸ºç©º |
| | | if(String.isBlank(rac.HP_received_sign_rich__c)){ |
| | | isImportReceiptForm = true;//å½åç¾æ¶åæ¯å¦ä¸ä¼ ç¾æ¶å |
| | | |
| | | //夿æ¯å¦ä¸ºåäºå¤çååï¼å¦ææ¯ï¼é£ä¹æ¯ä»å |
| | | String recordTypeId = rac.RecordType.Id; |
| | | recordTypeId = recordTypeId.substring(0,15); |
| | | if(ra_RecordTypeId == recordTypeId){ |
| | | //夿忰æ®åæ¯å¦ä¸ºç©ºï¼ä¸ºç©ºåä¸ä¸ºç©ºçæç¤ºä¿¡æ¯ä¸ä¸æ · |
| | | if(String.isBlank(rac.Root_Rental_Apply__c)){ |
| | | isAdvocateFollow = true; |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | //wangweipeng 2021/09/03 SFDC-C4H4BM end |
| | | |
| | | readOnly = parentObj.ShelfUp_ng_num__c == 0; |
| | | esdList = getEsdInfos(); |
| | | this.stockupActive = checkCanChangeResult(esdList, esdList); |
| | | if (esdList.isEmpty()) { |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'å¤åååºæç»ä¸åå¨ï¼')); |
| | | return null; |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | //wangweipeng 2021/09/09 SFDC-C4H4BM start |
| | | //éå®åå° |
| | | public PageReference redirectPag(){ |
| | | PageReference ref = new Pagereference('/apex/WebToEquipmentSetShippmentReceived'); |
| | | ref.setRedirect(true); |
| | | return ref; |
| | | } |
| | | //wangweipeng 2021/09/09 SFDC-C4H4BM end |
| | | |
| | | /** |
| | | * @param locations åæ¾å° |
| | | * @return ææ°ççç¹æ¶é´ |
| | | */ |
| | | private Datetime getLatestInventoryTime(Set<String> locations) { |
| | | Datetime latestInventoryTime = System.now().addYears(-100); |
| | | List<Inventory_Header__c> headers = [ |
| | | SELECT Id, CreatedDate FROM Inventory_Header__c |
| | | WHERE Internal_asset_location__c IN:locations |
| | | // çç¹æ²¡æåéèåºç |
| | | ORDER BY CreatedDate DESC LIMIT 1 |
| | | ]; |
| | | if(!headers.isEmpty()) { |
| | | latestInventoryTime = headers[0].CreatedDate; |
| | | } |
| | | return latestInventoryTime; |
| | | } |
| | | |
| | | /** |
| | | * @description è·åè°æ¨ä¿¡æ¯ |
| | | * @param assetIdSet å
¨é¨ç设å¤Id |
| | | * @param earliestStockinTime ååºææ©çæ¶é´ |
| | | * @return {设å¤Id:{è°æ¨ç±»å:æ°é}} |
| | | */ |
| | | private Map<Id, Map<String, Integer>> getTransferCount(Set<Id> assetIdSet, Datetime earliestStockinTime) { |
| | | Map<Id, Map<String, Integer>> resultMap = new Map<Id, Map<String, Integer>>(); |
| | | AggregateResult[] aggs = [ |
| | | select Asset__c,TransferType__c , count(id) cnt |
| | | from TransferApplyDetail__c |
| | | where Cancel_Select__c = false |
| | | AND CreatedDate >=: earliestStockinTime // ååºå¼å§åçæææªåæ¶çè°æ¨é½è¦èè |
| | | AND Asset__c IN: assetIdSet |
| | | group by Asset__c,TransferType__c |
| | | ]; |
| | | for(AggregateResult agg:aggs) { |
| | | Id assetId = (Id) agg.get('Asset__c'); |
| | | String transferType = String.valueOf(agg.get('TransferType__c')); |
| | | Integer cnt = Integer.valueOf(agg.get('cnt')); |
| | | if(!resultMap.containsKey((assetId))) { |
| | | resultMap.put(assetId, new Map<String, Integer>()); |
| | | } |
| | | resultMap.get(assetId).put(transferType, cnt); |
| | | } |
| | | return resultMap; |
| | | } |
| | | private List<EsdInfo> getEsdInfos() { |
| | | List<EsdInfo> esdList1 = new List<EsdInfo>(); |
| | | // å¤åsetæç» |
| | | List<Rental_Apply_Equipment_Set_Detail__c> eList = getDetails(); |
| | | for (Rental_Apply_Equipment_Set_Detail__c esd : eList) { |
| | | EsdInfo ei = new EsdInfo(esd); |
| | | // ååçåè´§åå¯ç¼è¾ |
| | | if(isSameCity) { |
| | | ei.editable = esd.DeliverySlip__c != null && !esd.Lost_item_giveup__c; |
| | | } |
| | | // éåååå¯åå¯ç¼è¾ |
| | | else { |
| | | ei.editable = (esd.Return_DeliverySlip__c != null || String.isNotBlank(esd.Check_lost_Item_F__c)) |
| | | && !esd.Lost_item_giveup__c; |
| | | } |
| | | esdList1.add(ei); |
| | | } |
| | | return esdList1; |
| | | } |
| | | /** |
| | | * @description åºååè°æ¨æ
嵿£æ¥ |
| | | * @param esdBase æ°æ®åºéæç» |
| | | * @param esdPage ç»é¢ä¸çæç» |
| | | * @param transferCountMap {设å¤Id:{è°æ¨ç±»å:æ°é}}å设å¤çè°æ¨ç±»ååæ°é |
| | | * @param otherLinkCountMap {设å¤Id:{è°æ¨ç±»å:æ°é}}å设å¤çèæ¯linkæ°é |
| | | * @param linkChangeMap éå±åç论ä¸è¦å»ºçlink |
| | | * @param resultChangeMap {设å¤Id:{è°æ¨ç±»å:ä¿®æ¹çæ°é}}ç¨ä½è¿åå¼ï¼åå¨å设å¤çåæ´ç±»ååæ°é |
| | | * */ |
| | | private void checkCanChangeLinkByTransfer(EsdInfo esdBase, EsdInfo esdPage, |
| | | Map<Id, Map<String, Integer>> transferCountMap, |
| | | Map<Id, Map<String, Integer>> otherLinkCountMap, |
| | | Map<Id, Map<String, Integer>> linkChangeMap, |
| | | Map<Id, Map<String, Integer>> resultChangeMap |
| | | ) { |
| | | |
| | | String assetFieldApiAfter = ''; |
| | | String transferTypeAfter = ''; |
| | | String assetFieldApiBefore = ''; |
| | | String transferTypeBefore = ''; |
| | | // 建linkè¦ä»¥ç»é¢ä¸ºå |
| | | switch on esdPage.rec.Arrival_wh_Result_Agency__c { |
| | | when 'OK' { |
| | | assetFieldApiAfter = 'You_Xiao_Ku_Cun__c'; |
| | | transferTypeAfter = 'ææåºå'; |
| | | } |
| | | when 'ç§»è³æ¥åºåº' { |
| | | assetFieldApiAfter = 'Abandoned_RealThing__c'; |
| | | transferTypeAfter = 'å¾
åºå¼'; |
| | | } |
| | | when 'å¾
ä¿®ç' { |
| | | assetFieldApiAfter = 'CountForRepair__c'; |
| | | transferTypeAfter = 'å¾
ä¿®ç'; |
| | | } |
| | | } |
| | | switch on esdBase.rec.Arrival_wh_Result_Agency__c { |
| | | when 'OK' { |
| | | assetFieldApiBefore = 'You_Xiao_Ku_Cun__c'; |
| | | transferTypeBefore = 'ææåºå'; |
| | | } |
| | | when 'ç§»è³æ¥åºåº' { |
| | | assetFieldApiBefore = 'Abandoned_RealThing__c'; |
| | | transferTypeBefore = 'å¾
åºå¼'; |
| | | } |
| | | when 'å¾
ä¿®ç' { |
| | | assetFieldApiBefore = 'CountForRepair__c'; |
| | | transferTypeBefore = 'å¾
ä¿®ç'; |
| | | } |
| | | } |
| | | // 没æéååºç»æçæé¦æ¬¡ååºä¸ç¨å¤ |
| | | if(String.isBlank(assetFieldApiAfter)) { |
| | | return ; |
| | | } |
| | | if (esdBase.rec.OneToOne_Flag__c) { |
| | | esdPage.needLink = true; |
| | | String otoKey = esdBase.rec.Asset__c; |
| | | if(!linkChangeMap.containsKey(otoKey)) { |
| | | linkChangeMap.put(otoKey, new Map<String, Integer>{'ææåºå'=>0, 'å¾
åºå¼' => 0, 'å¾
ä¿®ç' => 0}); |
| | | } |
| | | Integer cnt = linkChangeMap.get(otoKey).get(transferTypeAfter) + 1; |
| | | linkChangeMap.get(otoKey).put(transferTypeAfter, cnt); |
| | | // å·²ååºæªååºæç»é½è¦æ£æ¥æ¯å¦å¯å建link |
| | | if(esdBase.rec.Rental_Apply_Equipment_Set__r.First_RAESD__r.Arrival_wh_Result_Agency__c == 'OK' |
| | | && esdBase.rec.Rental_Apply_Equipment_Set__r.First_RAESD__r.Asset__r.You_Xiao_Ku_Cun__c <= 0) { |
| | | esdPage.needLink = esdBase.rec.Arrival_in_wh__c && !esdBase.rec.SeparateFromMain__c; |
| | | } |
| | | else if(transferCountMap.containsKey(esdBase.rec.Rental_Apply_Equipment_Set__r.First_RAESD__r.Asset__c)) { |
| | | esdPage.needLink = esdBase.rec.Arrival_in_wh__c && !esdBase.rec.SeparateFromMain__c; |
| | | } |
| | | else if(transferCountMap.containsKey(esdBase.rec.Asset__c) |
| | | && transferCountMap.get(esdBase.rec.Asset__c).containsKey(transferTypeBefore) |
| | | ) { |
| | | Integer otherLinkCount = 0; |
| | | if (otherLinkCountMap.containsKey(esdBase.rec.Asset__c) && otherLinkCountMap.get(esdBase.rec.Asset__c).containsKey(transferTypeBefore)) { |
| | | otherLinkCount = otherLinkCountMap.get(esdBase.rec.Asset__c).get(transferTypeBefore); |
| | | } |
| | | Integer changeCount = 0; |
| | | if (resultChangeMap.containsKey(esdBase.rec.Asset__c) && resultChangeMap.get(esdBase.rec.Asset__c).containsKey(transferTypeBefore)) { |
| | | changeCount = resultChangeMap.get(esdBase.rec.Asset__c).get(transferTypeBefore); |
| | | } |
| | | if(esdBase.rec.Arrival_wh_Result_Agency__c == esdPage.rec.Arrival_wh_Result_Agency__c) { |
| | | // å
䏿¶5个åºå¼ï¼ç¶åè°æ¨2个åºå¼ï¼åä¿®æ¹ååºæ1个åºå¼æ¹æå
¶å®ï¼åè½å»ºlinkçæ3ä¸ªï¼ |
| | | esdPage.needLink = cnt <= Integer.valueOf(esdBase.rec.Asset__r.get(assetFieldApiBefore)) |
| | | - transferCountMap.get(esdBase.rec.Asset__c).get(transferTypeBefore) |
| | | - changeCount |
| | | - otherLinkCount ; |
| | | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * @description åºååè°æ¨æ
嵿£æ¥ |
| | | * @param esdBase æ°æ®åºéæç» |
| | | * @param esdPage ç»é¢ä¸çæç» |
| | | * @param transferCountMap {设å¤Id:{è°æ¨ç±»å:æ°é}}å设å¤çè°æ¨ç±»ååæ°é |
| | | * @param otherLinkCountMap {设å¤Id:{è°æ¨ç±»å:æ°é}}å设å¤çèæ¯linkæ°é |
| | | * @param resultChangeMap {设å¤Id:{è°æ¨ç±»å:ä¿®æ¹çæ°é}}ç¨ä½è¿åå¼ï¼åå¨å设å¤çåæ´ç±»ååæ°é |
| | | * */ |
| | | private void checkCanChangeResultByTransfer(EsdInfo esdBase, EsdInfo esdPage, |
| | | Map<Id, Map<String, Integer>> transferCountMap, |
| | | Map<Id, Map<String, Integer>> otherLinkCountMap, |
| | | Map<Id, Map<String, Integer>> resultChangeMap) { |
| | | String assetFieldApi = ''; |
| | | String transferType = ''; |
| | | // ä¿®æ¹ç»æè¦ä»¥æ°æ®åºéçç»æä¸ºå |
| | | switch on esdBase.rec.Arrival_wh_Result_Agency__c { |
| | | when 'OK' { |
| | | assetFieldApi = 'You_Xiao_Ku_Cun__c'; |
| | | transferType = 'ææåºå'; |
| | | } |
| | | when 'ç§»è³æ¥åºåº' { |
| | | assetFieldApi = 'Abandoned_RealThing__c'; |
| | | transferType = 'å¾
åºå¼'; |
| | | } |
| | | when 'å¾
ä¿®ç' { |
| | | assetFieldApi = 'CountForRepair__c'; |
| | | transferType = 'å¾
ä¿®ç'; |
| | | } |
| | | } |
| | | if(String.isBlank(assetFieldApi)) { |
| | | return ; |
| | | } |
| | | if(!resultChangeMap.containsKey(esdBase.rec.Asset__c)) { |
| | | resultChangeMap.put(esdBase.rec.Asset__c, new Map<String, Integer>()); |
| | | } |
| | | Integer cnt = 0; |
| | | if(resultChangeMap.get(esdBase.rec.Asset__c).containsKey(transferType)) { |
| | | cnt = resultChangeMap.get(esdBase.rec.Asset__c).get(transferType); |
| | | } |
| | | if(esdPage.rec.Arrival_wh_Result_Agency__c != esdBase.rec.Arrival_wh_Result_Agency__c) { |
| | | resultChangeMap.get(esdBase.rec.Asset__c).put(transferType, cnt + 1); |
| | | } |
| | | |
| | | if(esdBase.rec.Rental_Apply_Equipment_Set__r.First_RAESD__r.Arrival_wh_Result_Agency__c == 'OK' |
| | | && esdBase.rec.Rental_Apply_Equipment_Set__r.First_RAESD__r.Asset__r.You_Xiao_Ku_Cun__c <= 0 |
| | | && esdBase.rec.Arrival_in_wh__c && !esdBase.rec.SeparateFromMain__c) { |
| | | esdBase.canChangeResult = false; |
| | | esdPage.errorInfo = esdBase.rec.Fixture_Model_No__c + 'ï¼é
å¥å·²è¢«åé
ï¼ä¸å¯ä¿®æ¹ååºç»æ'; |
| | | } |
| | | else if(transferCountMap.containsKey(esdBase.rec.Rental_Apply_Equipment_Set__r.First_RAESD__r.Asset__c) |
| | | && esdBase.rec.Arrival_in_wh__c && !esdBase.rec.SeparateFromMain__c) { |
| | | esdBase.canChangeResult = false; |
| | | esdPage.errorInfo = esdBase.rec.Fixture_Model_No__c + 'ï¼é
å¥å·²è¢«è°æ¨ï¼ä¸å¯ä»¥ä¿®æ¹ååºç»æ'; |
| | | } |
| | | else if(Integer.valueOf(esdBase.rec.Asset__r.get(assetFieldApi)) <= 0) { |
| | | esdBase.canChangeResult = false; |
| | | esdPage.errorInfo = esdBase.rec.Fixture_Model_No__c + 'ï¼ä¿æè®¾å¤é'+ transferType +'æ°ä¸è¶³ï¼ä¸å¯ä¿®æ¹ååºç»æ'; |
| | | } |
| | | // ååæ°é ä¸ è°æ¨éçæ°é + èæ¯linkæ°é æ¯è¾ |
| | | else if(transferCountMap.containsKey(esdBase.rec.Asset__c) && transferCountMap.get(esdBase.rec.Asset__c).containsKey(transferType)) { |
| | | Integer available = Integer.valueOf(esdBase.rec.Asset__r.get(assetFieldApi)) - Integer.valueOf(transferCountMap.get(esdBase.rec.Asset__c).get(transferType)); |
| | | if (otherLinkCountMap.containsKey(esdBase.rec.Asset__c) && otherLinkCountMap.get(esdBase.rec.Asset__c).containsKey(transferType)) { |
| | | available -= otherLinkCountMap.get(esdBase.rec.Asset__c).get(transferType); |
| | | } |
| | | // ææææåºå/å¾
åºå¼æ°/å¾
ä¿®çæ°é½è¢«è°æ¨ |
| | | if(available <= 0) { |
| | | esdBase.canChangeResult = false; |
| | | esdPage.errorInfo = esdBase.rec.Fixture_Model_No__c + 'ï¼å·²è¢«è°æ¨ï¼ä¸å¯ä¿®æ¹ååºç»æ'; |
| | | } |
| | | // ææåºå/å¾
åºå¼æ°/å¾
ä¿®çæ°é¨åè°æ¨ï¼éè¦ä¿è¯ä¿®æ¹çæ°éä¸è½è¶
è¿åºåæ°åå»è°æ¨æ° |
| | | // ä¾å¦ææåºåæ5个ï¼è°æ¨æ3个ï¼è¿ä¸ªè®¾å¤å¨ååºç»é¢ä¸æ5æ¡ååºæç»ï¼ |
| | | // æ¾ç¤ºæ¶5æ¡é½æ¯å¯ç¼è¾çï¼ä½è³å¤æ¹å¨å
¶ä¸2æ¡ |
| | | else if(resultChangeMap.get(esdBase.rec.Asset__c).get(transferType) > available) { |
| | | esdPage.errorInfo = esdBase.rec.Fixture_Model_No__c + 'ï¼æè°æ¨æç»ï¼åªå¯ä»¥æ' + available + 'æ¡' |
| | | + 'ä»ã' + esdBase.rec.Arrival_wh_Result_Agency__c + 'ã' |
| | | + 'æ¹æå
¶å®é项'; |
| | | } |
| | | } |
| | | // éè¦ä¿è¯ä¿®æ¹çæ°éä¸è½è¶
è¿åºåæ° |
| | | // ä¾å¦ææåºåæ2个ï¼è¿ä¸ªè®¾å¤å¨ååºç»é¢ä¸æ5æ¡ååºæç»ï¼ |
| | | // æ¾ç¤ºæ¶5æ¡é½æ¯å¯ç¼è¾çï¼ä½è³å¤æ¹å¨å
¶ä¸2æ¡ |
| | | else if(Integer.valueOf(esdBase.rec.Asset__r.get(assetFieldApi)) < resultChangeMap.get(esdBase.rec.Asset__c).get(transferType)) { |
| | | esdPage.errorInfo = esdBase.rec.Fixture_Model_No__c + 'ï¼æå¤å¯ä»¥æ' |
| | | + Integer.valueOf(esdBase.rec.Asset__r.get(assetFieldApi)) + 'æ¡' |
| | | + 'ä»ã' + esdBase.rec.Arrival_wh_Result_Agency__c + 'ãæ¹æå
¶å®é项'; |
| | | } |
| | | } |
| | | /** |
| | | * @description å¯¹æ°æ®åºéæç»åæ£æ¥ï¼å¹¶å°æ£æ¥ç»æåæ å¨ç»é¢ä¸ |
| | | * @param esdListBase æ°æ®åºéç |
| | | * @param esdListPage ç»é¢ä¸ç |
| | | * @return ååºæé®æ¯å¦å¯ç¹å»ãåªè¦æå¯ä»¥ä¿®æ¹çï¼å°±è¿åtrue |
| | | * */ |
| | | private Boolean checkCanChangeResult(List<EsdInfo> esdListBase, List<EsdInfo> esdListPage) { |
| | | Boolean canChange = false; |
| | | Datetime now = System.now(); |
| | | Datetime earliestStockinTime = System.now(); |
| | | Set<String> locations = new Set<String> (); |
| | | Set<Id> assetIdSet = new Set<Id>(); // |
| | | Set<Id> assetIdSetChecked = new Set<Id>(); // å¾éé
å¥éç |
| | | Set<Id> updateRas = new Set<Id> (); |
| | | |
| | | Boolean allEmpty = true; |
| | | for(Integer i = 0; i < esdListBase.size(); i++ ) { |
| | | EsdInfo esdBase = esdListBase[i]; |
| | | EsdInfo esdPage = esdListPage[i]; |
| | | esdPage.errorInfo = ''; |
| | | if(esdBase.rec.Id != esdPage.rec.Id) { |
| | | esdPage.errorInfo = esdBase.rec.Fixture_Model_No__c + 'åå°æ°æ®ä¸åå¨ï¼è¯·å·æ°ç»é¢ï¼'; |
| | | } |
| | | if(esdBase.rec.LastModifiedDate != esdPage.rec.LastModifiedDate) { |
| | | esdPage.errorInfo = esdBase.rec.Fixture_Model_No__c + 'åå°æ°æ®è¢« ' + esdBase.rec.LastModifiedBy.Name + ' ä¿®æ¹ï¼è¯·å·æ°ç»é¢ï¼'; |
| | | } |
| | | locations.add(esdBase.rec.Internal_asset_location__c); |
| | | allEmpty = allEmpty && String.isBlank(esdBase.rec.Arrival_wh_Result_Agency__c); |
| | | assetIdSet.add(esdBase.rec.Asset__c); |
| | | if(esdPage.rec.Is_Body__c && esdPage.checked) { |
| | | updateRas.add(esdPage.rec.Rental_Apply_Equipment_Set__c); |
| | | } |
| | | if(updateRas.contains(esdPage.rec.Rental_Apply_Equipment_Set__c)) { |
| | | assetIdSetChecked.add(esdPage.rec.Asset__c); |
| | | } |
| | | if(esdBase.rec.Arrival_wh_time_Agency_First__c != null) { |
| | | if(esdBase.rec.Arrival_wh_time_Agency_First__c < earliestStockinTime) { |
| | | earliestStockinTime = esdBase.rec.Arrival_wh_time_Agency_First__c; |
| | | } |
| | | } |
| | | } |
| | | if(allEmpty) { |
| | | return true; |
| | | } |
| | | Datetime latestInventoryTime = getLatestInventoryTime(locations); |
| | | Map<Id, Map<String, Integer>> transferCountMap = getTransferCount(assetIdSet, earliestStockinTime); |
| | | Map<Id, Map<String, Integer>> resultChangeMap = new Map<Id, Map<String, Integer>>(); // è¦ä¿®æ¹çååºç»æ |
| | | Map<Id, Map<String, Integer>> otherLinkCountMap = getOtherLinkCount(assetIdSetChecked); |
| | | Map<Id, Map<String, Integer>> linkChangeMap = new Map<Id, Map<String, Integer>>(); // è¦æ´æ°çlink |
| | | for(Integer i = 0; i < esdListBase.size(); i++ ) { |
| | | EsdInfo esdBase = esdListBase[i]; |
| | | EsdInfo esdPage = esdListPage[i]; |
| | | // æ¯å¦ååºè¶
2天 |
| | | if(!esdBase.rec.CanAgencyChangeResult__c && esdBase.rec.Arrival_wh_time__c != null) { |
| | | esdBase.canChangeResult = false; |
| | | esdPage.errorInfo = 'å·²è¶
è¿ååºåä¸¤ä¸ªå·¥ä½æ¥ï¼ä¸å¯ä¿®æ¹ååºç»æ'; |
| | | } |
| | | // æ¯å¦æè¿çç¹ |
| | | if(String.isNotBlank(esdBase.rec.Arrival_wh_Result_Agency__c) |
| | | && latestInventoryTime >= esdBase.rec.Arrival_wh_time__c) { |
| | | esdBase.canChangeResult = false; |
| | | esdPage.errorInfo = 'å·²å¼å§æ°ççç¹ï¼ä¸å¯ä¿®æ¹ååºç»æ'; |
| | | } |
| | | checkCanChangeResultByTransfer(esdBase, esdPage, transferCountMap, otherLinkCountMap, resultChangeMap); |
| | | canChange = esdBase.canChangeResult || canChange; |
| | | } |
| | | // ååºç»æä¿®æ¹ä¼å½±åå°è®¾å¤éçåºå¼æ°ï¼å¿
é¡»çå
¨é¨çååæ
åµç»è®¡å®æåï¼å夿è¦ä¸è¦å»ºlink |
| | | for(Integer i = 0; i < esdListBase.size(); i++ ) { |
| | | EsdInfo esdBase = esdListBase[i]; |
| | | EsdInfo esdPage = esdListPage[i]; |
| | | // å·²ä¸è¿æ¶çéå±åé½æè¢«è°æ¨çå¯è½ï¼é½è¦éæ°å¤ä¸æ¬¡è¦ä¸è¦å»ºlink |
| | | if (updateRas.contains(esdBase.rec.Rental_Apply_Equipment_Set__c) && esdBase.rec.OneToOne_Flag__c) { |
| | | checkCanChangeLinkByTransfer(esdBase, esdPage, transferCountMap, otherLinkCountMap, linkChangeMap, resultChangeMap); |
| | | } |
| | | } |
| | | return canChange; |
| | | } |
| | | /** |
| | | * @description æ¥åºå¾éé
å¥ééå±åçåå°linkæ
åµï¼ä¸å
æ¬å½åé
å¥å·²çæçlinkï¼ |
| | | * @param assetIdSetChecked å¾éé
å¥éç设å¤Id |
| | | * @return {éå±åId:{ç±»å:æ°é}} |
| | | * */ |
| | | private Map<Id, Map<String, Integer>> getOtherLinkCount(Set<Id> assetIdSetChecked) { |
| | | List<Fixture_OneToOne_Link__c> links = [ |
| | | SELECT Id,Abandoned_RealThing__c,CountForRepair__c,Quantity__c, |
| | | Accessory_Asset__c |
| | | FROM Fixture_OneToOne_Link__c |
| | | WHERE Main_Asset__c NOT IN:assetIdSetChecked |
| | | AND Accessory_Asset__c IN:assetIdSetChecked |
| | | AND (Abandoned_RealThing__c > 0 OR CountForRepair__c > 0) |
| | | ]; |
| | | Map<Id, Map<String, Integer>> resultMap = new Map<Id, Map<String, Integer>>(); |
| | | for(Fixture_OneToOne_Link__c link : links) { |
| | | if(!resultMap.containsKey(link.Accessory_Asset__c)) { |
| | | resultMap.put(link.Accessory_Asset__c, new Map<String, Integer>{'ææåºå' => 0, 'å¾
åºå¼' => 0, 'å¾
ä¿®ç' => 0 }); |
| | | } |
| | | Integer fei = intValueOf(link.Abandoned_RealThing__c); |
| | | Integer xiu = intValueOf(link.CountForRepair__c); |
| | | Integer you = intValueOf(link.Quantity__c - fei - xiu); |
| | | resultMap.get(link.Accessory_Asset__c).put('ææåºå', fei + resultMap.get(link.Accessory_Asset__c).get('ææåºå')); |
| | | resultMap.get(link.Accessory_Asset__c).put('å¾
åºå¼', fei + resultMap.get(link.Accessory_Asset__c).get('å¾
åºå¼')); |
| | | resultMap.get(link.Accessory_Asset__c).put('å¾
ä¿®ç', xiu + resultMap.get(link.Accessory_Asset__c).get('å¾
ä¿®ç')); |
| | | } |
| | | return resultMap; |
| | | } |
| | | // æ£ç´¢æé® |
| | | public void filter() { |
| | | for(EsdInfo esd:esdList) { |
| | | if(stringEquals(esd.lostFinished, lostResult) && stringEquals(esd.cdsFinished, cdsResult)) { |
| | | esd.hidden = false; |
| | | } |
| | | else { |
| | | esd.hidden = true; |
| | | } |
| | | } |
| | | } |
| | | /** |
| | | @param s1 æç»åæ®µå¼ |
| | | @param s2 ç»é¢éæ©å¼ |
| | | @return 䏿 ·åè¿åtrue, nullå'' ä¹ä¸ºtrue |
| | | @description |
| | | */ |
| | | private Boolean stringEquals(String s1, String s2) { |
| | | // ç»é¢éæ©å¼ä¸ºç©ºæ¶ï¼ä¸ç¨ä½çéæ¡ä»¶ï¼æä¸ºtrue |
| | | if(String.isBlank(s2)) { |
| | | return true; |
| | | } |
| | | else{ |
| | | return s2.equals(s1); |
| | | } |
| | | } |
| | | // æ¸
é¤æé® |
| | | public void clearFilter() { |
| | | lostResult = ''; |
| | | cdsResult = ''; |
| | | for(EsdInfo esd:esdList) { |
| | | esd.hidden = false; |
| | | } |
| | | } |
| | | // ååºæé® |
| | | public void stockup() { |
| | | done_flg = false; |
| | | Datetime now = System.now(); |
| | | Id userId = Userinfo.getUserId(); |
| | | Boolean hasChecked = false; |
| | | Savepoint sp = Database.setSavepoint(); |
| | | try { |
| | | List<OlympusCalendar__c> dateList = [SELECT Date__c, After_2_WorkDay__c FROM OlympusCalendar__c WHERE Date__c=:now.date() LIMIT 1]; |
| | | if(dateList.isEmpty() || dateList[0].After_2_WorkDay__c == null) { |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'æ¥åæ°æ®ä¸åå¨ï¼')); |
| | | return; |
| | | } |
| | | Date afterTwoWorkday = dateList[0].After_2_WorkDay__c; |
| | | Map<Id, Rental_Apply_Equipment_Set_Detail__c> updateRaesdMap = new Map<Id, Rental_Apply_Equipment_Set_Detail__c>(); |
| | | //Map<Id, Rental_Apply_Equipment_Set_Detail__c> raesdMap = getDetailsMap(); // åææ°çæç»æ°æ® |
| | | List<EsdInfo> esdListBase = getEsdInfos(); // åææ°çæç»æ°æ®åæ£æ¥ |
| | | checkCanChangeResult(esdListBase, esdList); |
| | | |
| | | Map<Id, Rental_Apply_Equipment_Set_Detail__c> raesIdMainMap = new Map<Id, Rental_Apply_Equipment_Set_Detail__c> (); // ä¸è§Id->主ä½Id, ç¨äºæå»ºä¸è§å
çlink |
| | | Set<Id> assIdSet = new Set<Id>(); // æç»æè¿çassetï¼ç¨äºå é |
| | | Map<String, Fixture_OneToOne_Link__c> newLinkMap = new Map<String, Fixture_OneToOne_Link__c>(); // 主Id:éId->æ°link |
| | | |
| | | for(Integer i = 0; i < esdList.size();i++) { |
| | | EsdInfo esd = esdList[i]; |
| | | if((esd.checked || raesIdMainMap.containsKey(esd.rec.Rental_Apply_Equipment_Set__c)) && !esd.hidden) { |
| | | hasChecked = true; |
| | | |
| | | Rental_Apply_Equipment_Set_Detail__c raesd = esdListBase[i].rec; |
| | | assIdSet.add(raesd.Asset__c); |
| | | // ååºç¡®è®¤ |
| | | if(raesd.Arrival_wh_Result_Agency__c != esd.rec.Arrival_wh_Result_Agency__c) { |
| | | if(String.isBlank(raesd.Check_lost_Item_F__c) || !raesd.CDS_complete__c) { |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, raesd.Fixture_Model_No__c + 'æªå®ææ¬ å确认&CDSï¼ä¸å¯ååºï¼')); |
| | | return; |
| | | } |
| | | if(String.isBlank(esd.rec.Arrival_wh_Result_Agency__c)) { |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, raesd.Fixture_Model_No__c + 'ååºç»æä¸å¯ä¸ºç©ºï¼')); |
| | | return; |
| | | } |
| | | if(String.isNotBlank(esdList[i].errorInfo)) { |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, esdList[i].errorInfo)); |
| | | return; |
| | | } |
| | | raesd.Arrival_wh_Result_Agency__c = esd.rec.Arrival_wh_Result_Agency__c; |
| | | if(raesd.Arrival_wh_Result_Agency__c == 'OK') { |
| | | raesd.Inspection_result_after__c = 'OK'; |
| | | raesd.Inspection_result_after_NG__c = null; |
| | | raesd.After_Inspection_time__c = now; |
| | | raesd.Inspection_staff_After__c = userId; |
| | | } |
| | | else if(raesd.Arrival_wh_Result_Agency__c == 'ç§»è³æ¥åºåº') { |
| | | raesd.Inspection_result_after__c = 'NG'; |
| | | raesd.Inspection_result_after_NG__c = 'åºå¼'; |
| | | raesd.After_Inspection_time__c = now; |
| | | raesd.Inspection_staff_After__c = userId; |
| | | } |
| | | else if(raesd.Arrival_wh_Result_Agency__c == 'å¾
ä¿®ç') { |
| | | raesd.Inspection_result_after__c = 'NG'; |
| | | raesd.Inspection_result_after_NG__c = 'ç»´ä¿®'; |
| | | raesd.After_Inspection_time__c = now; |
| | | raesd.Inspection_staff_After__c = userId; |
| | | } |
| | | if(!raesd.Arrival_in_wh__c) { |
| | | raesd.Arrival_in_wh__c = true; |
| | | raesd.Arrival_wh_time_Agency_First__c = now; |
| | | raesd.Arrival_wh_After_2_Workday__c = afterTwoWorkday; |
| | | raesd.Return_wh_chenk_staff__c = userid; |
| | | } |
| | | raesd.Arrival_wh_time__c = now; |
| | | updateRaesdMap.put(raesd.Id, raesd); |
| | | } |
| | | if(raesd.OneToOne_Flag__c && raesd.SeparateFromMain__c == esd.needLink) { |
| | | raesd.SeparateFromMain__c = !esd.needLink; |
| | | updateRaesdMap.put(raesd.Id, raesd); |
| | | } |
| | | // éè¦å»ºlinkçä¸»ä½ |
| | | if(raesd.Is_Body__c){ |
| | | raesIdMainMap.put(esd.rec.Rental_Apply_Equipment_Set__c, raesd); |
| | | } |
| | | // æ¯æ¬¡ååºæ¶é½ä¼æ ¹æ®å½åååºæ
åµï¼éæ°å·ä¸é |
| | | if(raesd.OneToOne_Flag__c) { |
| | | // è·åä¸»ä½æç» |
| | | Rental_Apply_Equipment_Set_Detail__c mainRaesd = null; |
| | | if(raesIdMainMap.containsKey(raesd.Rental_Apply_Equipment_Set__c)) { |
| | | mainRaesd = raesIdMainMap.get(raesd.Rental_Apply_Equipment_Set__c); |
| | | } |
| | | if(mainRaesd != null) { |
| | | // 主ä½åéå±åé½cds宿ï¼ä½ä¸æ¶ä¸ä¸è´ï¼æ¥é |
| | | if(mainRaesd.CDS_complete__c && raesd.CDS_complete__c |
| | | && mainRaesd.Arrival_in_wh__c != raesd.Arrival_in_wh__c) { |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, mainRaesd.Fixture_Model_No__c + 'å¿
é¡»æ´å¥ä¸æ¶ï¼')); |
| | | return; |
| | | } |
| | | String key = mainRaesd.Asset__c + ':' + raesd.Asset__c; |
| | | Fixture_OneToOne_Link__c link; |
| | | if(newLinkMap.containsKey(key)) { |
| | | link = newLinkMap.get(key); |
| | | } |
| | | else { |
| | | link = new Fixture_OneToOne_Link__c(Quantity__c=0, CountForRepair__c=0, Abandoned_RealThing__c=0); |
| | | } |
| | | // 主ä½åºå¼æä¿®çï¼éå±ååªè¦ä¸æ¶å°±å»ºlink |
| | | if((mainRaesd.Arrival_wh_Result_Agency__c == 'ç§»è³æ¥åºåº' || mainRaesd.Arrival_wh_Result_Agency__c == 'å¾
ä¿®ç') |
| | | && !raesd.SeparateFromMain__c) { |
| | | link.Quantity__c += 1; |
| | | // éå±ä¸OKæ¶ï¼å ç¨linkçä¸å¯¹ä¸éå±åç®¡çæ°é |
| | | switch on raesd.Arrival_wh_Result_Agency__c { |
| | | when 'å¾
ä¿®ç' { |
| | | link.CountForRepair__c += 1; |
| | | } |
| | | when 'ç§»è³æ¥åºåº' { |
| | | link.Abandoned_RealThing__c += 1; |
| | | } |
| | | } |
| | | } |
| | | // 主ä½OKï¼éå±ååªæOKæå»ºlink |
| | | else if(mainRaesd.Arrival_wh_Result_Agency__c == 'OK' && raesd.Arrival_wh_Result_Agency__c == 'OK' |
| | | && !raesd.SeparateFromMain__c) { |
| | | link.Quantity__c += 1; |
| | | } |
| | | // 䏻使¬ å使²¡æ¾å¼ï¼éå±ååªæOKæå»ºlink |
| | | else if(mainRaesd.Check_lost_Item_F__c == 'æ¬ å' && !mainRaesd.Lost_item_giveup__c |
| | | && raesd.Arrival_wh_Result_Agency__c == 'OK' && !raesd.SeparateFromMain__c) { |
| | | link.Quantity__c += 1; |
| | | } |
| | | else { |
| | | raesd.SeparateFromMain__c = true; |
| | | updateRaesdMap.put(raesd.Id, raesd); |
| | | } |
| | | newLinkMap.put(key, link); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if(!hasChecked) { |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'æªéæ©æä½çä¸è§')); |
| | | return; |
| | | } |
| | | Oly_TriggerHandler.bypass(AssetHandlerCheck.class.getName()); |
| | | if(!updateRaesdMap.isEmpty()) { |
| | | List<Asset> assList = [SELECT Id FROM Asset WHERE Id IN:assIdSet FOR UPDATE]; |
| | | FixtureUtil.withoutUpdate(updateRaesdMap.values()); |
| | | //print('æ´æ°æç»',updateRaesdMap); |
| | | done_flg = true; |
| | | } |
| | | if(!newLinkMap.isEmpty()) { |
| | | createLinks(newLinkMap); |
| | | done_flg = true; |
| | | } |
| | | Oly_TriggerHandler.clearBypass(AssetHandlerCheck.class.getName()); |
| | | |
| | | if(done_flg) { |
| | | init(); |
| | | done_flg = true; |
| | | } |
| | | //print('æ´æ°åAsset',[SELECT Id |
| | | // , Name |
| | | // , You_Xiao_Ku_Cun__c |
| | | // , Abandoned_RealThing__c |
| | | // , CountForRepair__c |
| | | // , In_wh_Fu_Shu_Pin_You_Xiao_Ku_Cun_Sum__c |
| | | // , Ji_Zhong_Guan_Li_Ku_Cun__c |
| | | // , Rental_Count__c |
| | | // FROM Asset WHERE Id IN:assIdSet]); |
| | | //print('æ´æ°ålink',[ |
| | | // SELECT Id |
| | | // , Quantity__c |
| | | // , In_wh_Fu_Shu_Pin_You_Xiao_Ku_Cun_F__c |
| | | // , Accessory_Asset__r.Name |
| | | // , Abandoned_RealThing__c |
| | | // , CountForRepair__c |
| | | // , Select_Accessory_Asset_Cnt__c |
| | | // FROM Fixture_OneToOne_Link__c |
| | | // WHERE Main_Asset__c IN:assIdSet |
| | | // AND Accessory_Asset__c IN:assIdSet]); |
| | | //Database.rollback(sp); |
| | | } |
| | | catch (Exception ex) { |
| | | system.debug('=====' + ex.getMessage()); |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, ex.getMessage())); |
| | | Database.rollback(sp); |
| | | done_flg = false; |
| | | } |
| | | } |
| | | /** |
| | | @description æ°å»ºlinkæåå·²æçlinkå æ°é |
| | | @param newLinkMap 主Id:éId->å¾
æ°å»ºçlink |
| | | */ |
| | | private void createLinks(Map<String, Fixture_OneToOne_Link__c> newLinkMap) { |
| | | Set<Id> mainIdSet = new Set<Id>(); |
| | | // æ¶é主ä½Id |
| | | for(String otoKey:newLinkMap.keySet()) { |
| | | String mainId = otoKey.split(':')[0]; |
| | | mainIdSet.add(mainId); |
| | | } |
| | | Map<Id, Asset> assMap = new Map<Id, Asset>([ |
| | | SELECT Id |
| | | , You_Xiao_Ku_Cun__c |
| | | , Abandoned_RealThing__c |
| | | , CountForRepair__c |
| | | , Last_Reserve_RAES_Detail__r.Rental_Apply__c |
| | | FROM Asset |
| | | WHERE Id IN:mainIdSet |
| | | ]); |
| | | Set<String> uselessKey = new Set<String>(); |
| | | // æ£æ¥ä¸»ä½ä¿æè®¾å¤æ¯å¦å¯ä»¥å»ºlink |
| | | for(String otoKey:newLinkMap.keySet()) { |
| | | String mainId = otoKey.split(':')[0]; |
| | | if(!assMap.containsKey(mainId)) { |
| | | throw new ControllerUtil.myException(mainId + 'ä¿æè®¾å¤ä¸åå¨ï¼'); |
| | | } |
| | | else { |
| | | Asset ass = assMap.get(mainId); |
| | | // 主ä½ä¿æè®¾å¤æåºåæ¶æå»ºlink |
| | | if(ass.Last_Reserve_RAES_Detail__r.Rental_Apply__c != parentObj.Id |
| | | && intValueOf(ass.You_Xiao_Ku_Cun__c) + intValueOf(ass.Abandoned_RealThing__c) + intValueOf(ass.CountForRepair__c) == 0) { |
| | | uselessKey.add(otoKey); |
| | | } |
| | | } |
| | | } |
| | | // 䏻使²¡åºåæ¶ï¼ä¸æ¶åä¸ç¨å»ºlink |
| | | for(String otoKey: uselessKey) { |
| | | newLinkMap.remove(otoKey); |
| | | } |
| | | if(newLinkMap.isEmpty()) { |
| | | return; |
| | | } |
| | | Map<String, Fixture_OneToOne_Link__c> linkMap = new Map<String, Fixture_OneToOne_Link__c>(); // 主Id:éId->link对象 |
| | | Map<String, Fixture_OneToOne_Link__c> deleteLinkMap = new Map<String, Fixture_OneToOne_Link__c>(); // 主Id:éId->link对象 |
| | | String linkSql = 'SELECT Quantity__c, Abandoned_RealThing__c, CountForRepair__c, Main_Asset__c, Accessory_Asset__c FROM Fixture_OneToOne_Link__c WHERE '; |
| | | for(String otoKey:newLinkMap.keySet()) { |
| | | String mainId = otoKey.split(':')[0]; |
| | | String acceId = otoKey.split(':')[1]; |
| | | linkSql += '(Main_Asset__c = \'' + mainId + '\' AND Accessory_Asset__c = \''+acceId+'\') OR'; |
| | | } |
| | | linkSql = linkSql.removeEnd('OR'); |
| | | List<Fixture_OneToOne_Link__c> matchingLinks = Database.query(linkSql); |
| | | for(Fixture_OneToOne_Link__c link: matchingLinks) { |
| | | linkMap.put(link.Main_Asset__c + ':' + link.Accessory_Asset__c, link); |
| | | } |
| | | for(String otoKey: newLinkMap.keySet()) { |
| | | Fixture_OneToOne_Link__c link = new Fixture_OneToOne_Link__c(); |
| | | // ä¿®æ¹ç°ælinkéçæ°éï¼å¦ææ°éå®å
¨ä¸è´è·³è¿æ´æ° |
| | | if(linkMap.containsKey(otoKey)) { |
| | | link = linkMap.get(otoKey); |
| | | if(link.Quantity__c != newLinkMap.get(otoKey).Quantity__c |
| | | || link.Abandoned_RealThing__c != newLinkMap.get(otoKey).Abandoned_RealThing__c |
| | | || link.CountForRepair__c != newLinkMap.get(otoKey).CountForRepair__c) { |
| | | link.Quantity__c = newLinkMap.get(otoKey).Quantity__c; |
| | | link.Abandoned_RealThing__c = newLinkMap.get(otoKey).Abandoned_RealThing__c; |
| | | link.CountForRepair__c = newLinkMap.get(otoKey).CountForRepair__c; |
| | | } |
| | | else { |
| | | linkMap.remove(otoKey); |
| | | continue; |
| | | } |
| | | } |
| | | // æ°å»ºlink |
| | | else { |
| | | link.Main_Asset__c = otoKey.split(':')[0]; |
| | | link.Accessory_Asset__c = otoKey.split(':')[1]; |
| | | link.Quantity__c = newLinkMap.get(otoKey).Quantity__c; |
| | | link.Abandoned_RealThing__c = newLinkMap.get(otoKey).Abandoned_RealThing__c; |
| | | link.CountForRepair__c = newLinkMap.get(otoKey).CountForRepair__c; |
| | | } |
| | | if(link.Quantity__c == 0) { |
| | | if(link.Id != null) { |
| | | deleteLinkMap.put(otoKey, link); |
| | | } |
| | | linkMap.remove(otoKey); |
| | | } |
| | | else { |
| | | linkMap.put(otoKey, link); |
| | | } |
| | | } |
| | | if(!deleteLinkMap.isEmpty()) { |
| | | FixtureUtil.withoutDelete(deleteLinkMap.values()); |
| | | } |
| | | if(!linkMap.isEmpty()) { |
| | | //print('æ´æ°link',linkMap); |
| | | FixtureUtil.withoutUpsertObjects(linkMap.values()); |
| | | } |
| | | } |
| | | private Integer intValueOf(Decimal d) { |
| | | if(d == null) { |
| | | return 0; |
| | | } |
| | | return Integer.valueOf(d); |
| | | } |
| | | // æ¬ å确认&CDSæé® |
| | | public void lostAndCDS() { |
| | | done_flg = false; |
| | | Map<Id, Rental_Apply_Equipment_Set_Detail__c> updateRaesdMap = new Map<Id, Rental_Apply_Equipment_Set_Detail__c>(); |
| | | Map<Id, Rental_Apply_Equipment_Set_Detail__c> raesdMap = getDetailsMap(); // åææ°çæç»æ°æ® |
| | | Set<Id> raesIdSet = new Set<Id>(); |
| | | Boolean hasChecked = false; |
| | | Datetime now = System.now(); |
| | | for(EsdInfo esd:esdList) { |
| | | if((esd.checked || raesIdSet.contains(esd.rec.Rental_Apply_Equipment_Set__c)) && !esd.hidden) { |
| | | hasChecked = true; |
| | | if(!raesdMap.containsKey(esd.rec.Id)) { |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, esd.rec.Fixture_Model_No__c + 'åå°æ°æ®ä¸åå¨ï¼è¯·å·æ°ç»é¢ï¼')); |
| | | return; |
| | | } |
| | | raesIdSet.add(esd.rec.Rental_Apply_Equipment_Set__c); |
| | | Rental_Apply_Equipment_Set_Detail__c raesd = raesdMap.get(esd.rec.Id); |
| | | if(raesd.LastModifiedDate != esd.rec.LastModifiedDate) { |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, esd.rec.Fixture_Model_No__c + 'åå°æ°æ®è¢« ' + raesd.LastModifiedBy.Name + ' ä¿®æ¹ï¼è¯·å·æ°ç»é¢ï¼')); |
| | | return; |
| | | } |
| | | // æ¬ åæåæ¯ç©ºæOKæ¶ï¼ä¿®æ¹ç»æåå°æå |
| | | if(String.isBlank(raesd.Check_lost_Item__c) || raesd.Check_lost_Item__c == 'OK') { |
| | | if(esd.lostFinished != raesd.Check_lost_Item__c) { |
| | | raesd.Check_lost_Item__c = esd.lostFinished; |
| | | // åå馿¬¡æ¬ åæ¶ï¼è®°å
¥å坿¶é´ï¼ä½¿ç¶æåææ¬ åä¸ |
| | | if(isSameCity && raesd.Check_lost_Item__c == 'æ¬ å' && raesd.Asset_return_time__c == null) { |
| | | raesd.Asset_return_time__c = now; |
| | | } |
| | | } |
| | | } |
| | | // æ¬ åæåæ¯æ¬ åæ¶ï¼ä¿®æ¹ç»æåå°æç» |
| | | else if(esd.lostFinished != raesd.Check_lost_Item_F__c) { |
| | | if(esd.lostFinished == 'OK' && raesd.Return_DeliverySlip__c == null && !isSameCity) { |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, esd.rec.Fixture_Model_No__c + 'æªåå¯ï¼æ¬ å确认ä¸å¯éOK')); |
| | | return; |
| | | } |
| | | else { |
| | | raesd.Check_lost_Item_Final__c = esd.lostFinished; |
| | | } |
| | | } |
| | | // ç»é¢ä¸çCDSä¸åå°ä¸ä¸è´æ¶æ´æ° |
| | | if(!raesd.CDS_complete__c && esd.cdsFinished == 'OK' ) { |
| | | raesd.CDS_complete__c = true; |
| | | // äººåæ¶é´å¨triggeréèµå¼ |
| | | } |
| | | else if(raesd.CDS_complete__c && esd.cdsFinished != 'OK') { |
| | | raesd.CDS_complete__c = false; |
| | | raesd.CDS_complete_time__c = null; |
| | | raesd.CDS_staff__c = null; |
| | | } |
| | | if (String.isNotBlank(raesd.Check_lost_Item_Final__c)) { |
| | | if (raesd.Check_lost_Item_Final__c == 'æ¬ å' || raesd.Check_lost_Item_Final__c == 'æ¶è' ) { |
| | | raesd.Return_DeliverySlip__c = null; |
| | | raesd.CDS_complete__c = false; |
| | | if (raesd.Check_lost_Item_Final__c == 'æ¬ å') raesd.NoItemReturn__c = false; |
| | | } |
| | | } |
| | | else { |
| | | raesd.Lost_item_check_staff_Final__c = null; |
| | | raesd.Lost_item_check_time_Final__c = null; |
| | | if (raesd.Check_lost_Item__c == 'æ¬ å' || raesd.Check_lost_Item__c == 'æ¶è' ) { |
| | | raesd.Return_DeliverySlip__c = null; |
| | | raesd.CDS_complete__c = false; |
| | | if (raesd.Check_lost_Item__c == 'æ¬ å') raesd.NoItemReturn__c = false; |
| | | } |
| | | if (String.isBlank(raesd.Check_lost_Item__c)) { |
| | | raesd.Lost_item_check_staff__c = null; |
| | | raesd.Lost_item_check_time__c = null; |
| | | } |
| | | } |
| | | if (raesd.Lost_item_giveup__c && raesd.Check_lost_Item__c == null) { |
| | | raesd.Check_lost_Item__c = 'æ¬ å'; |
| | | raesd.Return_DeliverySlip__c = null; |
| | | } |
| | | updateRaesdMap.put(raesd.Id, raesd); |
| | | } |
| | | } |
| | | if(!hasChecked) { |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'æªéæ©æä½çä¸è§')); |
| | | return; |
| | | } |
| | | Savepoint sp = Database.setSavepoint(); |
| | | try { |
| | | if(!updateRaesdMap.isEmpty()) { |
| | | createReturnDelivery(updateRaesdMap); |
| | | FixtureUtil.withoutUpdate(updateRaesdMap.values()); |
| | | init(); |
| | | done_flg = true; |
| | | //Database.rollback(sp); |
| | | } |
| | | } |
| | | catch (Exception ex) { |
| | | system.debug('=====' + ex.getMessage()); |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, ex.getMessage())); |
| | | Database.rollback(sp); |
| | | } |
| | | } |
| | | /** |
| | | @description åå¯ååæ®µèµå¼ææ¸
空 |
| | | @param updateRaesdMap å¾
æ´æ°çæç» |
| | | */ |
| | | private void createReturnDelivery(Map<Id, Rental_Apply_Equipment_Set_Detail__c> updateRaesdMap) { |
| | | Boolean needDummy = false; |
| | | for(Id raesdId: updateRaesdMap.keySet()) { |
| | | Rental_Apply_Equipment_Set_Detail__c raesd = updateRaesdMap.get(raesdId); |
| | | String lost = ''; |
| | | if(String.isNotBlank(raesd.Check_lost_Item_Final__c)) { |
| | | lost = raesd.Check_lost_Item_Final__c; |
| | | } |
| | | else { |
| | | lost = raesd.Check_lost_Item__c; |
| | | } |
| | | if(lost == 'OK' && raesd.Return_DeliverySlip__c == null && (isSameCity || raesd.NoItemReturn__c)) { |
| | | needDummy = true; |
| | | break; |
| | | } |
| | | } |
| | | FixtureDeliverySlip__c slip; |
| | | Datetime now = System.now(); |
| | | if(needDummy) { |
| | | String slipNo = parentObj.Name + '_Dummy'; |
| | | List<FixtureDeliverySlip__c> slips = [ |
| | | SELECT Id |
| | | FROM FixtureDeliverySlip__c |
| | | WHERE Name =:slipNo |
| | | AND DeliveryType__c = 'åå¯' |
| | | LIMIT 1 |
| | | ]; |
| | | if(!slips.isEmpty()) { |
| | | slip = slips[0]; |
| | | } |
| | | else { |
| | | slip = new FixtureDeliverySlip__c(Name=slipNo |
| | | , DeliveryType__c = 'åå¯' |
| | | , Distributor_method__c = 'å
¶ä»' |
| | | , DeliveryCompany__c = 'å
¶ä»' |
| | | , Shippment_loaner_time__c = now |
| | | , Wh_Staff__c=Userinfo.getUserId()); |
| | | FixtureUtil.withoutInsert(new List<FixtureDeliverySlip__c> {slip}); |
| | | } |
| | | } |
| | | |
| | | for(Id raesdId: updateRaesdMap.keySet()) { |
| | | Rental_Apply_Equipment_Set_Detail__c raesd = updateRaesdMap.get(raesdId); |
| | | String lost = ''; |
| | | if(String.isNotBlank(raesd.Check_lost_Item_Final__c)) { |
| | | lost = raesd.Check_lost_Item_Final__c; |
| | | } |
| | | else { |
| | | lost = raesd.Check_lost_Item__c; |
| | | } |
| | | if(lost == 'OK' && raesd.Return_DeliverySlip__c == null && (isSameCity || raesd.NoItemReturn__c)) { |
| | | raesd.Return_DeliverySlip__c = slip.Id; |
| | | raesd.Asset_return_time__c = now; |
| | | updateRaesdMap.put(raesd.Id, raesd); |
| | | } |
| | | } |
| | | } |
| | | //// è°è¯ç¨ |
| | | //private void print(String title, Map<String, Object> m) { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Info, title)); |
| | | // for(String a:m.keyset()) { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Info, '' + m.get(a))); |
| | | // } |
| | | //} |
| | | //// è°è¯ç¨ |
| | | //private void print(String title, Map<Id, Object> m) { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Info, title)); |
| | | // for(Id a:m.keyset()) { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Info, '' + m.get(a))); |
| | | // } |
| | | //} |
| | | //// è°è¯ç¨ |
| | | //private void print(String title, List<Object> l) { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Info, title)); |
| | | // for(Object o:l) { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Info, '' + o)); |
| | | // } |
| | | //} |
| | | |
| | | public class EsdInfo { |
| | | public Rental_Apply_Equipment_Set_Detail__c rec { get; set; } |
| | | public Asset rec2 { get; set; } |
| | | public String errorInfo { get; set; } |
| | | public String accessorySetId { get; set; } |
| | | public boolean editable { get; set; } |
| | | public Boolean checked {get;set;} |
| | | //public Boolean needsetone { get; set; } |
| | | public String cdsFinished {get;set;} |
| | | public String lostFinished {get;set;} |
| | | public Boolean hidden {get;set;} |
| | | public Boolean canChangeResult{get;set;} // æ¯å¦å¯ä¿®æ¹ååºç»æ |
| | | public Boolean needLink{get;set;} // |
| | | |
| | | public EsdInfo(Rental_apply_equipment_Set_Detail__c rec) { |
| | | this.rec = rec; |
| | | this.editable = false; |
| | | this.checked = false; |
| | | this.lostFinished = rec.Check_lost_Item_F__c; |
| | | this.hidden = false; |
| | | this.cdsFinished = rec.CDS_complete__c ? 'OK' : ''; |
| | | this.canChangeResult = true; |
| | | this.needLink = !rec.Is_Body__c; |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | // TODO EquipmentSetDailyBatchSchedule.test |
| | | @isTest |
| | | private class RentalApplyDailyBatchTest { |
| | | |
| | | @isTest static void test_method_Three() { |
| | | // ã·ã¹ãã 管çè
|
| | | User user_admin = new User(Test_staff__c = true); |
| | | user_admin.LastName = '_ãµã³ããªãã¸'; |
| | | user_admin.FirstName = 'ã'; |
| | | user_admin.Alias = 'ã'; |
| | | user_admin.Email = 'olympusTest03@sunbridge.com'; |
| | | user_admin.Username = 'olympusTest03@sunbridge.com'; |
| | | user_admin.CommunityNickname = 'ã'; |
| | | user_admin.IsActive = true; |
| | | user_admin.EmailEncodingKey = 'ISO-2022-JP'; |
| | | user_admin.TimeZoneSidKey = 'Asia/Tokyo'; |
| | | user_admin.LocaleSidKey = 'ja_JP'; |
| | | user_admin.LanguageLocaleKey = 'ja'; |
| | | user_admin.ProfileId = System.Label.ProfileId_SystemAdmin; |
| | | user_admin.Province__c = 'å京'; |
| | | user_admin.Dept__c = 'å»çååè¥ä¸æ¬é¨'; |
| | | user_admin.Use_Start_Date__c = Date.today().addMonths(-6); |
| | | insert user_admin; |
| | | |
| | | System.runAs(user_admin) { |
| | | // ç
é¢ãä½ã |
| | | Account hospital = new Account(); |
| | | hospital.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'HP'].id; |
| | | hospital.Name = 'test hospital'; |
| | | insert hospital; |
| | | // 产å |
| | | Product2 pro1 = new Product2(Name='name01',IsActive=true,Family='GI',Asset_Model_No__c='n01',Serial_Lot_No__c='S/N tracing',ProductCode_Ext__c='pc01',Manual_Entry__c=false); |
| | | Product2 pro2 = new Product2(Name='name02',IsActive=true,Family='GI',Asset_Model_No__c='n02',Serial_Lot_No__c='Lot tracing',ProductCode_Ext__c='pc02',Manual_Entry__c=false); |
| | | Product2 pro3 = new Product2(Name='name03',IsActive=true,Family='GI',Asset_Model_No__c='n03',Serial_Lot_No__c='S/N tracing',ProductCode_Ext__c='pc03',Manual_Entry__c=false); |
| | | insert new Product2[] {pro1, pro2, pro3}; |
| | | // æ¦ç¥ç§å®¤ãå¾ã |
| | | Account[] strategicDep = [SELECT ID, Name FROM Account WHERE parentId = :hospital.Id AND recordType.DeveloperName = 'Department_Class_OTH']; |
| | | // 診çç§ãä½ã |
| | | Account dep = new Account(); |
| | | dep.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'Department_OTH'].id; |
| | | dep.Name = 'test dep'; |
| | | dep.AgentCode_Ext__c = '9999998'; |
| | | dep.ParentId = strategicDep[0].Id; |
| | | dep.Department_Class__c = strategicDep[0].Id; |
| | | dep.Hospital__c = hospital.Id; |
| | | insert dep; |
| | | |
| | | //æ°å»ºå¤åååºç³è¯·-æ®é |
| | | Rental_Apply__c raObj = new Rental_Apply__c(); |
| | | raObj.Name='*'; |
| | | raObj.Product_category__c = 'GI'; |
| | | raObj.Person_In_Charge__c = UserInfo.getUserId(); |
| | | raObj.applyUser__c = UserInfo.getUserId(); |
| | | raObj.Hospital__c = hospital.Id;//å»é¢ |
| | | raObj.Strategic_dept__c = strategicDep[0].id;//æç¥ç§å®¤ |
| | | raObj.Demo_purpose1__c = 'å
¶ä»'; |
| | | raObj.demo_purpose2__c = 'å
¶ä»'; |
| | | raObj.Demo_purpose_text__c ='æµè¯ç¨çå¤åååºç³è¯·'; |
| | | raObj.Request_shipping_day__c = Date.today() + 5; |
| | | raObj.Hope_Lonaer_date_Num__c = 16; |
| | | raObj.Loaner_received_staff__c = 'æµè¯ç¨æ·'; |
| | | raObj.Loaner_received_staff_phone__c = '13700008'; |
| | | raObj.direct_send__c = 'ä¸é¨èªæ'; |
| | | raObj.Account__c = dep.id;//ç§å®¤ |
| | | raObj.pickup_time__c = Datetime.now()+8; |
| | | raObj.direct_shippment_address__c = '233333çå°å'; |
| | | raObj.Phone_number__c = '1234567890'; |
| | | insert raObj; |
| | | raObj = [Select Salesdept_text_Update_F__c , Owner_Info_text_Update_F__c FROM Rental_Apply__c]; |
| | | System.assertEquals(false, raObj.Salesdept_text_Update_F__c); |
| | | System.assertEquals(false, raObj.Owner_Info_text_Update_F__c); |
| | | |
| | | // ä¿®æ¹ç³è¯·äººä¿¡æ¯ |
| | | user_admin.Dept__c = 'å»çåä¸è¥ä¸æ¬é¨'; |
| | | user_admin.Province__c = '䏿µ·'; |
| | | update user_admin; |
| | | //batchåï¼å
¬å¼åtextä¸ä¸è´ |
| | | raObj = [Select Salesdept_text_Update_F__c |
| | | , Salesdept_text__c |
| | | , Salesdept__c |
| | | , Owner_province_text__c |
| | | , Owner_province__c |
| | | , Owner_Info_text_Update_F__c |
| | | FROM Rental_Apply__c]; |
| | | System.assertNotEquals(raObj.Salesdept_text__c, raObj.Salesdept__c); |
| | | System.assertEquals(true, raObj.Salesdept_text_Update_F__c); |
| | | System.assertNotEquals(raObj.Owner_province_text__c, raObj.Owner_province__c); |
| | | System.assertEquals(true, raObj.Owner_Info_text_Update_F__c); |
| | | |
| | | Test.startTest(); |
| | | RentalApplyDailyBatch bat = new RentalApplyDailyBatch(); |
| | | bat.errorList.add('test'); |
| | | Database.executeBatch(bat, 20); |
| | | |
| | | bat = new RentalApplyDailyBatch(1); |
| | | bat.errorList.add('test'); |
| | | Database.executeBatch(bat, 20); |
| | | Test.stopTest(); |
| | | |
| | | // batchåï¼æ´æ°æä¸è´ |
| | | raObj = [Select Salesdept_text_Update_F__c |
| | | , Salesdept_text__c |
| | | , Salesdept__c |
| | | , Owner_province_text__c |
| | | , Owner_province__c |
| | | , Owner_Info_text_Update_F__c |
| | | FROM Rental_Apply__c]; |
| | | System.assertEquals(raObj.Salesdept_text__c, raObj.Salesdept__c); |
| | | System.assertEquals(false, raObj.Salesdept_text_Update_F__c); |
| | | System.assertEquals(raObj.Owner_province_text__c, raObj.Owner_province__c); |
| | | System.assertEquals(false, raObj.Owner_Info_text_Update_F__c); |
| | | |
| | | } |
| | | } |
| | | |
| | | } |
| New file |
| | |
| | | // ä»salesforceç³»ç»ç»é¢ä¸å 计åä½ä¸ï¼æ¯å¤©åæ¨3ç¹è· |
| | | global class RentalApplyDailySchedule implements Schedulable { |
| | | global void execute(SchedulableContext sc) { |
| | | Id execBTId = Database.executeBatch(new RentalApplyDailyBatch(), 100); |
| | | } |
| | | } |
| New file |
| | |
| | | @isTest |
| | | private class RentalApplyDailyScheduleTest { |
| | | static testMethod void testMethod1() { |
| | | // This test runs a scheduled job at midnight Sept. 3rd. 2022 |
| | | String CRON_EXP = '0 0 0 3 9 ? 2022'; |
| | | |
| | | System.Test.startTest(); |
| | | // Schedule the test job |
| | | String jobId = system.schedule('RentalApplyDailySchedule', CRON_EXP, new RentalApplyDailySchedule()); |
| | | System.assertNotEquals(null, jobId); |
| | | System.Test.stopTest(); |
| | | } |
| | | } |
| New file |
| | |
| | | @isTest |
| | | private class RentalQueueShippmentDate0BatchTest { |
| | | |
| | | |
| | | @testSetup |
| | | private static void setupTestData(){ |
| | | //åç½®æ°æ® |
| | | System.runAs(new User(Id = Userinfo.getUserId())) { |
| | | String flag='NG2'; |
| | | String d1='产åè¯ç¨'; |
| | | String dept='å»çååè¥ä¸æ¬é¨'; |
| | | User user = new User(Test_staff__c = true); |
| | | user.LastName = '_ãµã³ããªãã¸'; |
| | | user.FirstName = 'ã'; |
| | | user.Alias = 'ã'; |
| | | user.Email = 'olympusTest03@sunbridge.com'; |
| | | user.Username = 'olympusTest03@sunbridge.com'; |
| | | user.CommunityNickname = 'ã'; |
| | | user.IsActive = true; |
| | | user.EmailEncodingKey = 'ISO-2022-JP'; |
| | | user.TimeZoneSidKey = 'Asia/Tokyo'; |
| | | user.LocaleSidKey = 'ja_JP'; |
| | | user.LanguageLocaleKey = 'ja'; |
| | | user.ProfileId = System.Label.ProfileId_SystemAdmin; |
| | | user.Province__c = 'å京'; |
| | | user.Dept__c = dept; |
| | | user.Use_Start_Date__c = Date.today().addMonths(-6); |
| | | insert user; |
| | | // ç |
| | | Address_Level__c al = new Address_Level__c(); |
| | | al.Name = 'æ±äº¬'; |
| | | al.Level1_Code__c = 'CN-99'; |
| | | al.Level1_Sys_No__c = '999999'; |
| | | insert al; |
| | | // å¸ |
| | | Address_Level2__c al2 = new Address_Level2__c(); |
| | | al2.Level1_Code__c = 'CN-99'; |
| | | al2.Level1_Sys_No__c = '999999'; |
| | | al2.Level1_Name__c = 'æ±äº¬'; |
| | | al2.Name = 'æ¸è°·åº'; |
| | | al2.Level2_Code__c = 'CN-9999'; |
| | | al2.Level2_Sys_No__c = '9999999'; |
| | | al2.Address_Level__c = al.id; |
| | | insert al2; |
| | | // ç
é¢ãä½ã |
| | | Account hospital = new Account(); |
| | | hospital.recordtypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('HP').getRecordTypeId(); |
| | | hospital.Name = 'test hospital'; |
| | | hospital.Is_Active__c = 'æå¹'; |
| | | hospital.Attribute_Type__c = 'å«çé¨'; |
| | | hospital.Speciality_Type__c = '综åå»é¢'; |
| | | hospital.Grade__c = 'ä¸çº§'; |
| | | hospital.OCM_Category__c = 'SLTV'; |
| | | hospital.Is_Medical__c = 'å»çæºæ'; |
| | | hospital.State_Master__c = al.id; |
| | | hospital.City_Master__c = al2.id; |
| | | hospital.Town__c = 'ä¸äº¬'; |
| | | insert hospital; |
| | | Account[] strategicDep = [SELECT ID, Name FROM Account WHERE parentId = :hospital.Id AND recordType.DeveloperName = 'Department_Class_OTH']; |
| | | // 診çç§ãä½ã |
| | | Account dep = new Account(); |
| | | dep.recordtypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Department_OTH').getRecordTypeId(); |
| | | dep.Name = 'test dep1'; |
| | | dep.AgentCode_Ext__c = '9999999'; |
| | | dep.ParentId = strategicDep[0].Id; |
| | | dep.Department_Class__c = strategicDep[0].Id; |
| | | dep.Hospital__c = hospital.Id; |
| | | insert dep; |
| | | |
| | | Contact contact2 = new Contact(); |
| | | contact2.AccountId = dep.Id; |
| | | contact2.FirstName = '責任è
'; |
| | | contact2.LastName = 'test1ç»éå'; |
| | | insert contact2; |
| | | |
| | | Product2 pro1 = new Product2(Name='name01',IsActive=true,Family='GI', |
| | | Fixture_Model_No__c='n01',Serial_Lot_No__c='S/N tracing', |
| | | Fixture_Model_No_T__c = 'n01', Asset_Model_No__c = 'Pro1', |
| | | ProductCode_Ext__c='pc01',Manual_Entry__c=false); |
| | | Product2 pro2 = new Product2(Name='name02',IsActive=true,Family='GI', |
| | | Fixture_Model_No__c='n02',Serial_Lot_No__c='Lot tracing', |
| | | Fixture_Model_No_T__c = 'n02', Asset_Model_No__c = 'Pro2', |
| | | ProductCode_Ext__c='pc02',Manual_Entry__c=false); |
| | | Product2 pro3 = new Product2(Name='name03',IsActive=true,Family='GI', |
| | | Fixture_Model_No__c='n03',Serial_Lot_No__c='Lot tracing', |
| | | Fixture_Model_No_T__c = 'n03', Asset_Model_No__c = 'Pro3', |
| | | ProductCode_Ext__c='pc03',Manual_Entry__c=false); |
| | | Product2 pro4 = new Product2(Name='name04',IsActive=true,Family='GI', |
| | | Fixture_Model_No__c='n04',Serial_Lot_No__c='Lot tracing', |
| | | Fixture_Model_No_T__c = 'n04', Asset_Model_No__c = 'Pro4', |
| | | ProductCode_Ext__c='pc04',Manual_Entry__c=false); |
| | | insert new Product2[] {pro1, pro2, pro3, pro4}; |
| | | |
| | | |
| | | |
| | | //å¤åååºç³è¯· |
| | | Rental_Apply__c raObj = new Rental_Apply__c(); |
| | | raObj.QueueShippmentDate__c=Date.today(); |
| | | raObj.Name = 'testra'; |
| | | raObj.OwnerId = user.Id; |
| | | raObj.Product_category__c = 'GI'; |
| | | raObj.Demo_purpose1__c ='产åè¯ç¨'; |
| | | raObj.demo_purpose2__c = 'è¯ç¨(æ 询价)'; |
| | | raObj.direct_send__c = 'å»çæºæ'; |
| | | raObj.Loaner_received_staff__c = 'çäº'; |
| | | raObj.Loaner_received_staff_phone__c = '110'; |
| | | raObj.direct_shippment_address__c = 'å京å¸'; |
| | | raObj.Hospital__c = hospital.Id; |
| | | raObj.Strategic_dept__c = strategicDep[0].Id; |
| | | raObj.Account__c = dep.Id; |
| | | raObj.Request_shipping_day__c = Date.toDay(); |
| | | raObj.Hope_Lonaer_date_Num__c = 16; |
| | | //raObj.Request_return_day__c = Date.toDay(); |
| | | raObj.Phone_number__c = '1234567890'; |
| | | raObj.Request_approval_time__c = Datetime.newInstance(1970, 1, 1); |
| | | raObj.Loaner_medical_Staff__c = contact2.Id; |
| | | if ('åè®®åç¨' == d1) { |
| | | raObj.DB_loaner_request__c = '123'; |
| | | raObj.AgreementBorrowingExtensionDate__c = Date.today().addDays(10); |
| | | if (false) { |
| | | raObj.AgreementBorrowingExtensionDate__c = Date.today().addDays(-1); |
| | | } |
| | | } |
| | | insert raObj; |
| | | |
| | | OCM_Management_Province__c mp1 = new OCM_Management_Province__c(); |
| | | mp1.Name = 'å
¶ä»'; |
| | | mp1.Province__c = 'å京å¸'; |
| | | mp1.Window1__c = user.Id; |
| | | insert mp1; |
| | | |
| | | StaticParameter.EscapeCampain =false; |
| | | StaticParameter.shareToOSCMFlag = false; |
| | | Campaign cam = new Campaign(); |
| | | cam.Name = 'test campaign'; |
| | | cam.StartDate = Date.today().addDays(15); |
| | | cam.EndDate = Date.today().addDays(18); |
| | | cam.Name2__c = '1234'; |
| | | cam.Status = 'ç³è¯·ä¸'; |
| | | cam.Mailflg_after45__c = true; |
| | | cam.Mailflg_cancel__c = true; |
| | | cam.Mailflg_before15__c = true; |
| | | cam.Mailflg_before7__c = true; |
| | | cam.Mailflg_after3__c = true; |
| | | cam.HostName__c = '1'; |
| | | cam.cooperatorCompany__c = '1'; |
| | | cam.RecordTypeId = System.label.RecordType_CampaignService; |
| | | cam.OwnerId = user.Id; |
| | | insert cam; |
| | | |
| | | Rental_Apply__c raObj2= new Rental_Apply__c(); |
| | | raObj2.QueueShippmentDate__c=Date.today(); |
| | | raObj2.Name = 'fuckyou'; |
| | | raObj2.OwnerId = user.Id; |
| | | raObj2.Product_category__c = 'SP'; |
| | | raObj2.Demo_purpose1__c ='产åè¯ç¨'; |
| | | raObj2.demo_purpose2__c = 'å¦ä¼å±ä¼'; |
| | | raObj2.direct_send__c = 'å»çæºæ'; |
| | | raObj2.Loaner_received_staff__c = 'van'; |
| | | raObj2.Loaner_received_staff_phone__c = '110'; |
| | | raObj2.direct_shippment_address__c = 'ææå¸'; |
| | | raObj2.Hospital__c = hospital.Id; |
| | | raObj2.Strategic_dept__c = strategicDep[0].Id; |
| | | raObj2.Account__c = dep.Id; |
| | | raObj2.Request_shipping_day__c = Date.toDay(); |
| | | //raObj2.Hope_Lonaer_date_Num__c = 17; |
| | | //raObj.Request_return_day__c = Date.toDay(); |
| | | raObj2.Campaign__c=cam.id; |
| | | raObj2.Phone_number__c = '1234567880'; |
| | | raObj2.Request_approval_time__c = Datetime.newInstance(1970, 1, 1); |
| | | raObj2.Loaner_medical_Staff__c = contact2.Id; |
| | | if ('åè®®åç¨' == d1) { |
| | | raObj2.DB_loaner_request__c = '123'; |
| | | raObj2.AgreementBorrowingExtensionDate__c = Date.today().addDays(10); |
| | | if (false) { |
| | | raObj.AgreementBorrowingExtensionDate__c = Date.today().addDays(-1); |
| | | } |
| | | } |
| | | insert raObj2; |
| | | |
| | | // å¤åé
å¥ |
| | | Fixture_Set__c fsObj1 = new Fixture_Set__c(); |
| | | fsObj1.Name = 'set1'; |
| | | fsObj1.Fixture_Set_Body_Model_No__c = 'modelNo1'; |
| | | fsObj1.Loaner_name__c = 'name1'; |
| | | insert fsObj1; |
| | | |
| | | Fixture_Set__c fsObj2 = new Fixture_Set__c(); |
| | | fsObj2.Name = 'set2'; |
| | | fsObj2.Fixture_Set_Body_Model_No__c = 'modelNo2'; |
| | | fsObj2.Loaner_name__c = 'name'; |
| | | insert fsObj2; |
| | | |
| | | |
| | | Fixture_Set_Detail__c fsdObjA1 = new Fixture_Set_Detail__c(); |
| | | // å¤åé
å¥æç» |
| | | fsdObjA1.Name = 'å¤åé
奿ç»å1'; |
| | | fsdObjA1.Name_CHN_Created__c = '䏿åç§°1'; |
| | | fsdObjA1.Product2__c = pro1.Id; |
| | | fsdObjA1.Fixture_Set__c = fsObj1.Id; |
| | | fsdObjA1.Is_Body__c = true; |
| | | fsdObjA1.Is_Optional__c = false; |
| | | fsdObjA1.UniqueKey__c = fsObj1.Id + ':' + pro1.Id; |
| | | fsdObjA1.SortInt__c = 1; |
| | | fsdObjA1.Quantity__c = 1; |
| | | insert fsdObjA1; |
| | | |
| | | Fixture_Set_Detail__c fsdObjA2 = new Fixture_Set_Detail__c(); |
| | | fsdObjA2.Name = 'å¤åé
奿ç»å2'; |
| | | fsdObjA2.Name_CHN_Created__c = '䏿åç§°2'; |
| | | fsdObjA2.Product2__c = pro2.Id; |
| | | fsdObjA2.Fixture_Set__c = fsObj2.Id; |
| | | fsdObjA2.Is_Body__c = false; |
| | | fsdObjA2.Is_Optional__c = true; |
| | | fsdObjA2.UniqueKey__c = fsObj2.Id + ':' + pro2.Id; |
| | | fsdObjA2.SortInt__c = 2; |
| | | fsdObjA2.Quantity__c = 1; |
| | | fsdObjA2.Is_OneToOne__c = true; |
| | | insert fsdObjA2; |
| | | |
| | | |
| | | List<Rental_Apply_Equipment_Set__c> rael1=new List<Rental_Apply_Equipment_Set__c>(); |
| | | Rental_Apply_Equipment_Set__c raesObj = new Rental_Apply_Equipment_Set__c(); |
| | | // ååºå¤åé
å¥ä¸è§ |
| | | raesObj.Rental_Apply__c = raObj.Id; |
| | | raesObj.Fixture_Set__c = fsObj1.Id; |
| | | raesObj.Cancel_Select__c = false; |
| | | raesObj.Rental_Start_Date__c = Date.toDay(); |
| | | raesObj.Rental_End_Date__c = Date.toDay(); |
| | | raesObj.IndexFromUniqueKey__c = 1; |
| | | raesObj.UniqueKey__c = '1:'+ fsObj1.Id + ':1'; |
| | | rael1.add(raesObj); |
| | | |
| | | Rental_Apply_Equipment_Set__c raesObj2 = new Rental_Apply_Equipment_Set__c(); |
| | | // ååºå¤åé
å¥ä¸è§ |
| | | raesObj2.Rental_Apply__c = raObj2.Id; |
| | | raesObj2.Fixture_Set__c = fsObj1.Id; |
| | | raesObj2.Cancel_Select__c = false; |
| | | raesObj2.Rental_Start_Date__c = Date.toDay(); |
| | | raesObj2.Rental_End_Date__c = Date.toDay(); |
| | | raesObj2.IndexFromUniqueKey__c = 2; |
| | | raesObj2.UniqueKey__c = '2:'+ fsObj1.Id + ':2'; |
| | | rael1.add(raesObj2); |
| | | insert rael1; |
| | | |
| | | //çæå¯åºç³è¯·å |
| | | FixtureDeliverySlip__c fdsObjOut = new FixtureDeliverySlip__c(); |
| | | fdsObjOut.Name = '00001'; |
| | | fdsObjOut.DeliveryCompany__c = 'å©è®¯'; |
| | | fdsObjOut.Distributor_method__c = 'éè¿'; |
| | | fdsObjOut.DeliveryType__c = 'åè´§'; |
| | | fdsObjOut.Wh_Staff__c = Userinfo.getUserId(); |
| | | fdsObjOut.Shippment_loaner_time__c = System.now(); |
| | | insert fdsObjOut; |
| | | |
| | | List<Rental_Apply_Equipment_Set_Detail__c> raesLl=new List<Rental_Apply_Equipment_Set_Detail__c>(); |
| | | Rental_Apply_Equipment_Set_Detail__c raesdObj1 = new Rental_Apply_Equipment_Set_Detail__c(); |
| | | raesdObj1.Rental_Apply__c = raObj.Id; |
| | | raesdObj1.Fixture_Set_Detail__c = fsdObjA1.Id; |
| | | raesdObj1.Rental_Num__c = 1; |
| | | raesdObj1.Queue_Number__c = 14; |
| | | raesdObj1.Queue_Day__c=date.today(); |
| | | raesdObj1.Queue_Time__c=Time.newInstance(1,1,1,1); |
| | | raesdObj1.Is_Body__c = true; |
| | | raesdObj1.Rental_Apply_Equipment_Set__c = raesObj.Id; |
| | | raesdObj1.IndexFromUniqueKey__c = 1; |
| | | raesdObj1.UniqueKey__c = '1:'+ raesObj.Id + ':' + fsdObjA1.Id + ':1'; |
| | | raesdObj1.FSD_OneToOneAccessory_Cnt__c = 2; |
| | | raesdObj1.FSD_Is_Optional__c = false; |
| | | raesdObj1.FSD_Is_OneToOne__c = false; |
| | | raesdObj1.ApplyPersonAppended__c = false; |
| | | raesdObj1.FSD_Fixture_Model_No__c = 'n01'; |
| | | raesdObj1.Fixture_Model_No_text__c = 'n01'; |
| | | raesdObj1.Salesdepartment_before__c = '3.西åè¥ä¸æ¬é¨'; |
| | | raesdObj1.Internal_asset_location_before__c = 'å京 å¤åä¸å¿'; |
| | | raesdObj1.Product_category_text__c = 'GI'; |
| | | raesdObj1.Equipment_Type_text__c = '产åè¯ç¨'; |
| | | raesdObj1.Cancel_Select__c=false; |
| | | raesdObj1.IsAdjust__c=false; |
| | | raesdObj1.DeliverySlip__c=fdsObjOut.id; |
| | | raesdObj1.Arrival_in_wh__c=false; |
| | | raesdObj1.Inspection_result_after_Final__c='OK'; |
| | | raesdObj1.NextShippmentDate__c=Date.today(); |
| | | raesLl.add(raesdObj1); |
| | | |
| | | Rental_Apply_Equipment_Set_Detail__c raesdObj2 = new Rental_Apply_Equipment_Set_Detail__c(); |
| | | raesdObj2.Rental_Apply__c = raObj2.Id; |
| | | raesdObj2.Fixture_Set_Detail__c = fsdObjA1.Id; |
| | | raesdObj2.Rental_Num__c = 1; |
| | | raesdObj2.Queue_Number__c = 19; |
| | | raesdObj2.Queue_Day__c=date.today(); |
| | | raesdObj2.Queue_Time__c=Time.newInstance(1,1,1,1); |
| | | raesdObj2.Is_Body__c = true; |
| | | raesdObj2.Rental_Apply_Equipment_Set__c = raesObj2.Id; |
| | | raesdObj2.IndexFromUniqueKey__c = 2; |
| | | raesdObj2.UniqueKey__c = '2:'+ raesObj.Id + ':' + fsdObjA1.Id + ':2'; |
| | | raesdObj2.FSD_OneToOneAccessory_Cnt__c = 2; |
| | | raesdObj2.FSD_Is_Optional__c = false; |
| | | raesdObj2.FSD_Is_OneToOne__c = true; |
| | | raesdObj2.ApplyPersonAppended__c = false; |
| | | raesdObj2.FSD_Fixture_Model_No__c = 'n02'; |
| | | raesdObj2.Fixture_Model_No_text__c = 'n02'; |
| | | raesdObj2.Salesdepartment_before__c = '0.å¤åä¸å¿'; |
| | | raesdObj2.Internal_asset_location_before__c = '䏿µ· å¤åä¸å¿'; |
| | | raesdObj2.Product_category_text__c = 'GI'; |
| | | raesdObj2.Equipment_Type_text__c = '产åè¯ç¨'; |
| | | raesdObj2.Cancel_Select__c = false; |
| | | raesdObj2.IsAdjust__c=true; |
| | | raesdObj2.DeliverySlip__c=fdsObjOut.id; |
| | | raesdObj2.Arrival_in_wh__c=false; |
| | | raesdObj2.Inspection_result_after_Final__c='OK'; |
| | | raesdObj2.NextShippmentDate__c=Date.today(); |
| | | raesLl.add(raesdObj2); |
| | | |
| | | Rental_Apply_Equipment_Set_Detail__c raesdObj3 = new Rental_Apply_Equipment_Set_Detail__c(); |
| | | raesdObj3.Rental_Apply__c = raObj2.Id; |
| | | raesdObj3.Fixture_Set_Detail__c = fsdObjA1.Id; |
| | | raesdObj3.Rental_Num__c = 1; |
| | | raesdObj3.Queue_Number__c = 15; |
| | | raesdObj3.Queue_Day__c=date.today(); |
| | | raesdObj3.Queue_Time__c=Time.newInstance(1,1,1,1); |
| | | raesdObj3.Is_Body__c = true; |
| | | raesdObj3.Rental_Apply_Equipment_Set__c = raesObj2.Id; |
| | | raesdObj3.IndexFromUniqueKey__c = 3; |
| | | raesdObj3.UniqueKey__c = '3:'+ raesObj.Id + ':' + fsdObjA1.Id + ':3'; |
| | | raesdObj3.FSD_OneToOneAccessory_Cnt__c = 2; |
| | | raesdObj3.FSD_Is_Optional__c = false; |
| | | raesdObj3.FSD_Is_OneToOne__c = true; |
| | | raesdObj3.ApplyPersonAppended__c = false; |
| | | raesdObj3.FSD_Fixture_Model_No__c = 'n02'; |
| | | raesdObj3.Fixture_Model_No_text__c = 'n02'; |
| | | raesdObj3.Salesdepartment_before__c = '0.å¤åä¸å¿'; |
| | | raesdObj3.Internal_asset_location_before__c = '䏿µ· å¤åä¸å¿'; |
| | | raesdObj3.Product_category_text__c = 'GI'; |
| | | raesdObj3.Equipment_Type_text__c = '产åè¯ç¨'; |
| | | raesdObj3.Cancel_Select__c = false; |
| | | raesdObj3.IsAdjust__c=true; |
| | | raesdObj3.DeliverySlip__c=fdsObjOut.id; |
| | | raesdObj3.Arrival_in_wh__c=false; |
| | | raesdObj3.Inspection_result_after_Final__c='OK'; |
| | | raesdObj3.NextShippmentDate__c=Date.today(); |
| | | raesLl.add(raesdObj3); |
| | | |
| | | Rental_Apply_Equipment_Set_Detail__c raesdObj4 = new Rental_Apply_Equipment_Set_Detail__c(); |
| | | raesdObj4.Rental_Apply__c = raObj2.Id; |
| | | raesdObj4.Fixture_Set_Detail__c = fsdObjA2.Id; |
| | | raesdObj4.Rental_Num__c = 1; |
| | | raesdObj4.Queue_Number__c = 16; |
| | | raesdObj4.Queue_Day__c=date.today(); |
| | | raesdObj4.Queue_Time__c=Time.newInstance(1,1,1,1); |
| | | raesdObj4.Is_Body__c = true; |
| | | raesdObj4.Rental_Apply_Equipment_Set__c = raesObj2.Id; |
| | | raesdObj4.IndexFromUniqueKey__c = 4; |
| | | raesdObj4.UniqueKey__c = '4:'+ raesObj.Id + ':' + fsdObjA2.Id + ':4'; |
| | | raesdObj4.FSD_OneToOneAccessory_Cnt__c = 2; |
| | | raesdObj4.FSD_Is_Optional__c = false; |
| | | raesdObj4.FSD_Is_OneToOne__c = true; |
| | | raesdObj4.ApplyPersonAppended__c = false; |
| | | raesdObj4.FSD_Fixture_Model_No__c = 'n02'; |
| | | raesdObj4.Fixture_Model_No_text__c = 'n02'; |
| | | raesdObj4.Salesdepartment_before__c = '3.西åè¥ä¸æ¬é¨'; |
| | | raesdObj4.Internal_asset_location_before__c = 'å京 å¤åä¸å¿'; |
| | | raesdObj4.Product_category_text__c = 'SP'; |
| | | raesdObj4.Equipment_Type_text__c = '产åè¯ç¨'; |
| | | raesdObj4.Cancel_Select__c = false; |
| | | raesdObj4.IsAdjust__c=true; |
| | | raesdObj4.DeliverySlip__c=fdsObjOut.id; |
| | | raesdObj4.Arrival_in_wh__c=false; |
| | | raesdObj4.Inspection_result_after_Final__c='OK'; |
| | | raesdObj4.NextShippmentDate__c=Date.today(); |
| | | raesLl.add(raesdObj4); |
| | | |
| | | Rental_Apply_Equipment_Set_Detail__c raesdObj5 = new Rental_Apply_Equipment_Set_Detail__c(); |
| | | raesdObj5.Rental_Apply__c = raObj2.Id; |
| | | raesdObj5.Fixture_Set_Detail__c = fsdObjA2.Id; |
| | | raesdObj5.Rental_Num__c = 1; |
| | | raesdObj5.Queue_Number__c = 17; |
| | | raesdObj5.Queue_Day__c=date.today(); |
| | | raesdObj5.Queue_Time__c=Time.newInstance(2,2,2,2); |
| | | raesdObj5.Is_Body__c = true; |
| | | raesdObj5.Rental_Apply_Equipment_Set__c = raesObj2.Id; |
| | | raesdObj5.IndexFromUniqueKey__c = 5; |
| | | raesdObj5.UniqueKey__c = '5:'+ raesObj.Id + ':' + fsdObjA2.Id + ':5'; |
| | | raesdObj5.FSD_OneToOneAccessory_Cnt__c = 2; |
| | | raesdObj5.FSD_Is_Optional__c = false; |
| | | raesdObj5.FSD_Is_OneToOne__c = true; |
| | | raesdObj5.ApplyPersonAppended__c = false; |
| | | raesdObj5.FSD_Fixture_Model_No__c = 'n02'; |
| | | raesdObj5.Fixture_Model_No_text__c = 'n02'; |
| | | raesdObj5.Salesdepartment_before__c = '3.西åè¥ä¸æ¬é¨'; |
| | | raesdObj5.Internal_asset_location_before__c = 'å京 å¤åä¸å¿'; |
| | | raesdObj5.Product_category_text__c = 'SP'; |
| | | raesdObj5.Equipment_Type_text__c = '产åè¯ç¨'; |
| | | raesdObj5.Cancel_Select__c = false; |
| | | raesdObj5.IsAdjust__c=true; |
| | | raesdObj5.DeliverySlip__c=fdsObjOut.id; |
| | | raesdObj5.Arrival_in_wh__c=false; |
| | | raesdObj5.Inspection_result_after_Final__c='OK'; |
| | | raesdObj5.NextShippmentDate__c=Date.today(); |
| | | raesLl.add(raesdObj5); |
| | | insert raesLl; |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | @isTest |
| | | static void testMethod1() { |
| | | System.runAs(new User(Id = Userinfo.getUserId())){ |
| | | RentalQueueShippmentDate0Batch theBatch=new RentalQueueShippmentDate0Batch(); |
| | | test.startTest(); |
| | | DataBase.executeBatch(theBatch,200); |
| | | test.stopTest(); |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | public without sharing class SaleAndDeliveryController { |
| | | public Consumable_order__c coc { get; set; } |
| | | /*****************æ¤ç´¢ç¨******************/ |
| | | //ç»éå产ååç±» |
| | | public String agencyProType {get;set;} |
| | | //æç¤ºåå·ç |
| | | public String category1 { get; set; } |
| | | //客æ·å |
| | | public String category2 { get; set; } |
| | | //订åå¼å§ãç»ææ¥æ |
| | | private Date cate2 = Date.today(); |
| | | private Date cate3 = Date.today(); |
| | | // æ¾ç¤ºæ°æ®æ¡æ°éå¶ |
| | | private Integer Select_Limit = 100; |
| | | // ç»å½ç¨æ· ID |
| | | private String userinfoId = ''; |
| | | //ç»éåid |
| | | private String accountid = null; |
| | | // 订å åæ®µæ ç¾ |
| | | public static List<String> getTitle() { |
| | | // è·å¾è®¢åä¸è§ |
| | | Map<String, Schema.FieldSet> fsMap = Schema.getGlobalDescribe().get('Consumable_order__c').getDescribe().fieldSets.getMap(); |
| | | Schema.FieldSet fs = fsMap.get('SaleAndDelivery'); |
| | | // è·å¾è®¢åä¸çææé¡¹ç® |
| | | List<FieldSetMember> fsmList = fs.getFields(); |
| | | // è·å¾å段æ ç¾ååæ®µå |
| | | List<String> title = new List<String>(); |
| | | for (FieldSetMember fsm : fsmList) { |
| | | if ('Name' == fsm.getFieldPath()) { |
| | | title.add('åºåºåå·'); |
| | | } else { |
| | | title.add(fsm.getLabel()); |
| | | } |
| | | } |
| | | return title; |
| | | } |
| | | //æåºä½¿ç¨ |
| | | private String[] orderby = new String[]{ 'Outbound_Date__c','Name','ShipmentAccount__c','SummonsStatus_c__c','Billed_Status__c','CreatedDate'}; |
| | | //æåºç¨ |
| | | public String sortKey { get; set; } |
| | | public String preSortKey { get; private set; } |
| | | public Boolean sortOrderAsc { get; private set; } |
| | | public String[] sortOrder { get; private set; } |
| | | |
| | | // 订å åæ®µå |
| | | public List<String> column; |
| | | public List<List<String>> columns { get; private set; } |
| | | // ç»é¢æ¾ç¤ºæ°æ® |
| | | public List<Consumable_order__c> raesList { get; private set; } |
| | | |
| | | // ç»å½è
å·¥ä½å° |
| | | private String userWorkLocation; |
| | | |
| | | public SaleAndDeliveryController() { |
| | | } |
| | | //========20160311======ADD_Start================================ |
| | | // å°è®¢åæç»ä»¥å段SET æ¹å¼æ¾ç¤º |
| | | //========20160311======ADD_Start================================ |
| | | public void init1() { |
| | | this.sortKey = '1'; |
| | | this.preSortKey = '1'; |
| | | this.sortOrderAsc = false; |
| | | this.sortOrder = new String[4]; |
| | | this.sortOrder = new String[]{' ',' ',' ',' ',' ',' '}; |
| | | coc = new Consumable_order__c(); |
| | | userinfoId = UserInfo.getUserId(); |
| | | List<user> Useracc = New List<user>(); |
| | | Useracc = [SELECT |
| | | accountid, Work_Location__c,UserPro_Type__c |
| | | FROM user |
| | | WHERE id =:userinfoId]; |
| | | accountid = Useracc[0].accountid; |
| | | agencyProType = Useracc[0].UserPro_Type__c; |
| | | if(String.isBlank(Useracc[0].UserPro_Type__c)){ |
| | | agencyProType = 'ET'; |
| | | } |
| | | userWorkLocation = Useracc[0].Work_Location__c; |
| | | //é»è®¤æ£ç´¢æ¾ç¤ºæªå®æçæç¤ºå |
| | | cleanUp(); |
| | | } |
| | | //========20160311======ADD_End================================ |
| | | //æ°å»ºåºåºæç¤º |
| | | public PageReference neworderhead() { |
| | | // è¿åå¤åset |
| | | PageReference ref = new Pagereference('/summonsCreat'); |
| | | ref.setRedirect(true); |
| | | return ref; |
| | | } |
| | | // æªå®æåºåºåæ£ç´¢ |
| | | public void searchConsumableorderdetails() { |
| | | this.sortKey = '1'; |
| | | this.preSortKey = '1'; |
| | | this.sortOrderAsc = false; |
| | | this.sortOrder = new String[4]; |
| | | this.sortOrder = new String[]{' ',' ',' ',' ',' ',' '}; |
| | | //coc = new Consumable_order__c(); |
| | | cate2 = coc.Order_date__c; |
| | | cate3 = coc.Deliver_date__c; |
| | | // è·å¾è®¢åä¸è§ |
| | | raesList = new List<Consumable_order__c>(); |
| | | String soql = 'select Id, Name,ShipmentAccount__c,SummonsStatus_c__c,Billed_Status__c,CreatedDate,Outbound_Date__c,Order_ForCustomerText__c,InvoiceNotPro_total_amount__c,InvoiceNotPro_money__c from Consumable_order__c'; |
| | | soql += ' WHERE Order_type__c = \'' + 'ä¼ ç¥¨' + '\' '; |
| | | soql += ' and Dealer_Info__c =\'' + accountid +'\' '; |
| | | soql += ' and Order_ProType__c =\'' + agencyProType +'\' '; |
| | | soql += ' and Order_Owner_WorkLocal__c = \'' + userWorkLocation + '\' '; |
| | | if (!String.isBlank(category1)) { |
| | | soql += ' and Name like \'%' + String.escapeSingleQuotes(category1.replaceAll('%', '\\%')) + '%\' '; |
| | | } |
| | | if (!String.isBlank(category2)) { |
| | | soql += ' and ShipmentAccount__c like \'%' + String.escapeSingleQuotes(category2.replaceAll('%', '\\%')) + '%\' '; |
| | | } |
| | | if(cate2 != null){ |
| | | soql += ' and Order_date__c >= :cate2 '; |
| | | } |
| | | if(cate3 != null){ |
| | | soql += ' and Order_date__c <= :cate3 '; |
| | | } |
| | | soql += 'and SummonsStatus_c__c != \'' + '已宿' + '\' '; |
| | | soql += 'order by SummonsStatus_c__c'; |
| | | System.debug('soql+++++' + soql); |
| | | raesList = Database.query(soql); |
| | | if(raesList.size()>0){ |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, 'å
±æ' + raesList.size() + '个åºåºå')); |
| | | }else{ |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '没ææç´¢å°ç¸å
³åºåºåã')); |
| | | } |
| | | } |
| | | |
| | | |
| | | //æåº |
| | | public void SortLimited(){ |
| | | List<Id> orderIdList = new List<Id>(); |
| | | for(Integer i = 0 ; i< raesList.size();i++){ |
| | | orderIdList.add(raesList[i].Id); |
| | | } |
| | | if (this.sortKey == this.preSortKey) { |
| | | // æ¹åãå¤ããã®ã¿ |
| | | this.sortOrderAsc = !this.sortOrderAsc; |
| | | this.sortOrder[Integer.valueOf(this.sortKey)] = (this.sortOrderAsc == true ? 'â' : 'â'); |
| | | } else { |
| | | this.sortOrderAsc = true; |
| | | this.sortOrder[Integer.valueOf(this.preSortKey)] = ' '; |
| | | this.sortOrder[Integer.valueOf(this.sortKey)] = (this.sortOrderAsc == true ? 'â' : 'â'); |
| | | } |
| | | |
| | | this.preSortKey = this.sortKey; |
| | | // ææäº§ååå¾ |
| | | String soql = 'select Id, Name,ShipmentAccount__c,SummonsStatus_c__c,Billed_Status__c,CreatedDate,Outbound_Date__c,Order_ForCustomerText__c,InvoiceNotPro_total_amount__c,InvoiceNotPro_money__c from Consumable_order__c'; |
| | | soql += ' WHERE Id in :orderIdList'; |
| | | //soql += ' order by Name'; |
| | | soql += ' order by ' + this.orderby[Integer.valueOf(this.sortKey)]; |
| | | soql += ' ' + (this.sortOrderAsc == true ? 'asc nulls first' : 'desc nulls last'); |
| | | System.debug('soql+++++' + soql); |
| | | List<Consumable_order__c> queryList = Database.query(soql); |
| | | // 鏿æ¸ã¿ã®æç»ãåå¾ |
| | | //raesList = new List<Consumable_order__c>(); |
| | | raesList = queryList; |
| | | } |
| | | |
| | | // 已宿åºåºåæ£ç´¢ |
| | | public void searchConsumableorFinish() { |
| | | this.sortKey = '1'; |
| | | this.preSortKey = '1'; |
| | | this.sortOrderAsc = false; |
| | | this.sortOrder = new String[4]; |
| | | this.sortOrder = new String[]{' ',' ',' ',' ',' ',' '}; |
| | | cate2 = coc.Order_date__c; |
| | | cate3 = coc.Deliver_date__c; |
| | | raesList = new List<Consumable_order__c>(); |
| | | String soql = 'select Id, Name,ShipmentAccount__c,SummonsStatus_c__c,Billed_Status__c,CreatedDate,Outbound_Date__c,Order_ForCustomerText__c,InvoiceNotPro_total_amount__c,InvoiceNotPro_money__c from Consumable_order__c'; |
| | | soql += ' WHERE Order_type__c = \'' + 'ä¼ ç¥¨' + '\' '; |
| | | soql += ' and Dealer_Info__c =\'' + accountid +'\' '; |
| | | soql += ' and Order_ProType__c =\'' + agencyProType +'\' '; |
| | | soql += ' and Order_Owner_WorkLocal__c = \'' + userWorkLocation + '\' '; |
| | | if (!String.isBlank(category1)) { |
| | | soql += ' and Name like \'%' + String.escapeSingleQuotes(category1.replaceAll('%', '\\%')) + '%\' '; |
| | | } |
| | | if (!String.isBlank(category2)) { |
| | | soql += ' and ShipmentAccount__c like \'%' + String.escapeSingleQuotes(category2.replaceAll('%', '\\%')) + '%\' '; |
| | | } |
| | | if(cate2 != null){ |
| | | soql += ' and Outbound_Date__c >= :cate2 '; |
| | | } |
| | | if(cate3 != null){ |
| | | soql += ' and Outbound_Date__c <= :cate3 '; |
| | | } |
| | | soql += 'and SummonsStatus_c__c = \'' + '已宿' + '\' '; |
| | | soql += 'and Billed_Status__c = \'' + 'å
¨é¨å¼ç¥¨' + '\' '; |
| | | soql += 'order by CreatedDate desc limit ' + Select_Limit; |
| | | raesList = Database.query(soql); |
| | | if(raesList.size()>0){ |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, 'å
±æ' + raesList.size() + '个åºåºå')); |
| | | }else{ |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '没ææç´¢å°ç¸å
³åºåºåã')); |
| | | } |
| | | } |
| | | |
| | | // æªå®æå¼ç¥¨åºåºåæ£ç´¢ |
| | | public void searchOrderInstatus() { |
| | | this.sortKey = '1'; |
| | | this.preSortKey = '1'; |
| | | this.sortOrderAsc = false; |
| | | this.sortOrder = new String[4]; |
| | | this.sortOrder = new String[]{' ',' ',' ',' ',' ',' '}; |
| | | cate2 = coc.Order_date__c; |
| | | cate3 = coc.Deliver_date__c; |
| | | // è·å¾è®¢åä¸è§ |
| | | raesList = new List<Consumable_order__c>(); |
| | | String soql = 'select Id, Name,ShipmentAccount__c,SummonsStatus_c__c,Billed_Status__c,CreatedDate,Outbound_Date__c,Order_ForCustomerText__c,InvoiceNotPro_total_amount__c,InvoiceNotPro_money__c from Consumable_order__c'; |
| | | soql += ' WHERE Order_type__c = \'' + 'ä¼ ç¥¨' + '\' '; |
| | | soql += ' and Dealer_Info__c =\'' + accountid +'\' '; |
| | | soql += ' and Order_ProType__c =\'' + agencyProType +'\' '; |
| | | soql += ' and Order_Owner_WorkLocal__c = \'' + userWorkLocation + '\' '; |
| | | if (!String.isBlank(category1)) { |
| | | soql += ' and Name like \'%' + String.escapeSingleQuotes(category1.replaceAll('%', '\\%')) + '%\' '; |
| | | } |
| | | if (!String.isBlank(category2)) { |
| | | soql += ' and ShipmentAccount__c like \'%' + String.escapeSingleQuotes(category2.replaceAll('%', '\\%')) + '%\' '; |
| | | } |
| | | if(cate2 != null){ |
| | | soql += ' and Outbound_Date__c >= :cate2 '; |
| | | } |
| | | if(cate3 != null){ |
| | | soql += ' and Outbound_Date__c <= :cate3 '; |
| | | } |
| | | soql += 'and SummonsForDirction__c != \'' + 'äºç¸è°è´§' + '\' '; |
| | | soql += 'and SummonsStatus_c__c = \'' + '已宿' + '\' '; |
| | | soql += 'and Billed_Status__c != \'' + 'å
¨é¨å¼ç¥¨' + '\' '; |
| | | soql += 'order by CreatedDate desc limit ' + Select_Limit; |
| | | raesList = Database.query(soql); |
| | | if(raesList.size()>0){ |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, 'å
±æ' + raesList.size() + '个åºåºå')); |
| | | }else{ |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '没ææç´¢å°ç¸å
³åºåºåã')); |
| | | } |
| | | } |
| | | |
| | | public void cleanUp() { |
| | | this.sortKey = '1'; |
| | | this.preSortKey = '1'; |
| | | this.sortOrderAsc = false; |
| | | this.sortOrder = new String[4]; |
| | | this.sortOrder = new String[]{' ',' ',' ',' ',' ',' '}; |
| | | //æ¸
ç©ºæ°æ® |
| | | coc.Order_date__c = null; |
| | | coc.Deliver_date__c = null; |
| | | this.category1 = ''; |
| | | this.category2 = ''; |
| | | // è·å¾æ¾ç¤ºæ°æ® |
| | | raesList = new List<Consumable_order__c>(); |
| | | String soql = 'select Id, Name,ShipmentAccount__c,SummonsStatus_c__c,Billed_Status__c,CreatedDate,Outbound_Date__c,Order_ForCustomerText__c,InvoiceNotPro_total_amount__c,InvoiceNotPro_money__c from Consumable_order__c'; |
| | | soql += ' WHERE Order_type__c = \'' + 'ä¼ ç¥¨' + '\' '; |
| | | soql += ' and Order_ProType__c =\'' + agencyProType +'\' '; |
| | | soql += 'and SummonsStatus_c__c != \'' + '已宿' + '\' and Dealer_Info__c =\'' + accountid +'\' '; |
| | | soql += 'and Order_Owner_WorkLocal__c = \'' + userWorkLocation + '\' '; |
| | | soql += 'order by SummonsStatus_c__c'; |
| | | raesList = Database.query(soql); |
| | | } |
| | | } |
| New file |
| | |
| | | @isTest |
| | | public class SaleAndDeliveryControllerTest { |
| | | static testMethod void SaleAndDeliveryTestinit(){ |
| | | Profile prof = [select Id from Profile where Name ='901_ç»éåç¤¾åºæ®éæé_2ééªè¯']; |
| | | List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売åº']; |
| | | if (rectCo.size() == 0) { |
| | | return; |
| | | } |
| | | List<RecordType> rectHos = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'ç
é¢']; |
| | | if (rectHos.size() == 0) { |
| | | return; |
| | | } |
| | | Account myAccount1 = new Account(name='testaccount001',RecordTypeId = rectCo[0].Id ); |
| | | Account myAccount2 = new Account(name='testaccount002',RecordTypeId = rectHos[0].Id ); |
| | | insert myAccount1; |
| | | Contact core = new Contact(email='jplumber@salesforce.com', firstname='Joe',lastname='Plumber',accountid=myAccount1.id); |
| | | insert core; |
| | | user myUser_test = New User(ContactId = core.id,Alias = 'newUser',Email='newuser@testorg.com',EmailEncodingKey='UTF-8', LastName='testUser', LanguageLocaleKey='zh_CN',LocaleSidKey='zh_CN', ProfileId = prof.Id,TimeZoneSidKey='Asia/Shanghai', UserName='testUser@testorg.com',Work_Location__c = 'å京'); |
| | | insert myUser_test; |
| | | system.runAs(myUser_test){ |
| | | Consumable_order__c TestList5 = new Consumable_order__c(Name='Test5',Summons_Sale_Status__c='åºè´§',SummonsStatus_c__c='èæ¡ä¸',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='ç´æ¥éå®ç»å»é¢',Order_status__c='èæ¡ä¸',Order_type__c='ä¼ ç¥¨',Dealer_info__c=myAccount1.Id,Order_ProType__c = 'ET'); |
| | | Consumable_order__c TestList6 = new Consumable_order__c(Name='Test6',Summons_Sale_Status__c='åºè´§',SummonsStatus_c__c='èæ¡ä¸',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='ç´æ¥éå®ç»å»é¢',Order_status__c='å·²æäº¤',Order_type__c='ä¼ ç¥¨',Dealer_info__c=myAccount1.Id,Order_ProType__c = 'ET'); |
| | | Consumable_order__c TestList7 = new Consumable_order__c(Name='Test7',Summons_Sale_Status__c='åºè´§',SummonsStatus_c__c='èæ¡ä¸',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='ç´æ¥éå®ç»å»é¢',Order_status__c='å·²æäº¤',Order_type__c='ä¼ ç¥¨',Dealer_info__c=myAccount1.Id,Order_ProType__c = 'ET'); |
| | | Consumable_order__c TestList1 = new Consumable_order__c(Name='Test1',Summons_Sale_Status__c='åºè´§',SummonsStatus_c__c='èæ¡ä¸',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='ç´æ¥éå®ç»å»é¢',Order_status__c='èæ¡ä¸',Order_type__c='ä¼ ç¥¨',Dealer_info__c=myAccount1.Id,Order_ProType__c = 'ET'); |
| | | Consumable_order__c TestList2 = new Consumable_order__c(Name='Test2',Summons_Sale_Status__c='åºè´§',SummonsStatus_c__c='èæ¡ä¸',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='ç´æ¥éå®ç»å»é¢',Order_status__c='èæ¡ä¸',Order_type__c='ä¼ ç¥¨',Dealer_info__c=myAccount1.Id,Order_ProType__c = 'ET'); |
| | | Consumable_order__c TestList3 = new Consumable_order__c(Name='Test3',Summons_Sale_Status__c='åºè´§',SummonsStatus_c__c='èæ¡ä¸',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='ç´æ¥éå®ç»å»é¢',Order_status__c='èæ¡ä¸',Order_type__c='ä¼ ç¥¨',Dealer_info__c=myAccount1.Id,Order_ProType__c = 'ET'); |
| | | Consumable_order__c TestList4 = new Consumable_order__c(Name='Test4',Summons_Sale_Status__c='åºè´§',SummonsStatus_c__c='èæ¡ä¸',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='ç´æ¥éå®ç»å»é¢',Order_status__c='èæ¡ä¸',Order_type__c='ä¼ ç¥¨',Dealer_info__c=myAccount1.Id,Order_ProType__c = 'ET'); |
| | | TestList5.Order_date__c = Date.today().addDays(2); |
| | | TestList6.Order_date__c = Date.today().addDays(2); |
| | | TestList7.Order_date__c = Date.today().addDays(2); |
| | | TestList1.Order_date__c = Date.today().addDays(2); |
| | | TestList2.Order_date__c = Date.today().addDays(2); |
| | | TestList3.Order_date__c = Date.today().addDays(2); |
| | | TestList4.Order_date__c = Date.today(); |
| | | TestList5.Deliver_date__c=Date.today(); |
| | | TestList6.Deliver_date__c=Date.today(); |
| | | TestList7.Deliver_date__c=Date.today(); |
| | | TestList1.Deliver_date__c=Date.today(); |
| | | TestList2.Deliver_date__c=Date.today(); |
| | | TestList3.Deliver_date__c=Date.today(); |
| | | TestList4.Deliver_date__c=Date.today(); |
| | | insert new Consumable_order__c[]{TestList1,TestList2,TestList3,TestList4,TestList5,TestList6,TestList7}; |
| | | SaleAndDeliveryController CDC = new SaleAndDeliveryController(); |
| | | CDC.init1(); |
| | | CDC.SortLimited(); |
| | | System.assertEquals('Test1', CDC.raesList[0].name); |
| | | System.assertEquals('Test2', CDC.raesList[1].name); |
| | | System.assertEquals('Test3', CDC.raesList[2].name); |
| | | System.assertEquals('Test4', CDC.raesList[3].name); |
| | | System.assertEquals('Test5', CDC.raesList[4].name); |
| | | System.assertEquals('Test6', CDC.raesList[5].name); |
| | | System.assertEquals('Test7', CDC.raesList[6].name); |
| | | CDC.cleanUp(); |
| | | System.assertEquals('Test1', CDC.raesList[0].name); |
| | | System.assertEquals('Test2', CDC.raesList[1].name); |
| | | System.assertEquals('Test3', CDC.raesList[2].name); |
| | | System.assertEquals('Test4', CDC.raesList[3].name); |
| | | System.assertEquals('Test5', CDC.raesList[4].name); |
| | | System.assertEquals('Test6', CDC.raesList[5].name); |
| | | System.assertEquals('Test7', CDC.raesList[6].name); |
| | | } |
| | | } |
| | | static testMethod void SaleAndDeliveryTestOther(){ |
| | | Profile prof = [select Id from Profile where Name ='901_ç»éåç¤¾åºæ®éæé_2ééªè¯']; |
| | | List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売åº']; |
| | | if (rectCo.size() == 0) { |
| | | return; |
| | | } |
| | | List<RecordType> rectHos = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'ç
é¢']; |
| | | if (rectHos.size() == 0) { |
| | | return; |
| | | } |
| | | Account myAccount1 = new Account(name='testaccount001',RecordTypeId = rectCo[0].Id ); |
| | | Account myAccount2 = new Account(name='testaccount002',RecordTypeId = rectHos[0].Id ); |
| | | insert myAccount1; |
| | | Contact core = new Contact(email='jplumber@salesforce.com', firstname='Joe',lastname='Plumber',accountid=myAccount1.id); |
| | | insert core; |
| | | user myUser_test = New User(ContactId = core.id,Alias = 'newUser',Email='newuser@testorg.com',EmailEncodingKey='UTF-8', LastName='testUser', LanguageLocaleKey='zh_CN',LocaleSidKey='zh_CN', ProfileId = prof.Id,TimeZoneSidKey='Asia/Shanghai', UserName='testUser@testorg.com',Work_Location__c = 'å京'); |
| | | insert myUser_test; |
| | | |
| | | system.runAs(myUser_test){ |
| | | Consumable_order__c TestList5 = new Consumable_order__c(Name='Test5',Summons_Sale_Status__c='åºè´§',SummonsStatus_c__c='èæ¡ä¸',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='ç´æ¥éå®ç»å»é¢',Order_status__c='èæ¡ä¸',Order_type__c='ä¼ ç¥¨',Dealer_info__c=myAccount1.Id,Onchange_order__c = true); |
| | | Consumable_order__c TestList6 = new Consumable_order__c(Name='Test6',Summons_Sale_Status__c='åºè´§',SummonsStatus_c__c='èæ¡ä¸',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='ç´æ¥éå®ç»å»é¢',Order_status__c='å·²æäº¤',Order_type__c='ä¼ ç¥¨',Dealer_info__c=myAccount1.Id,Onchange_order__c = true); |
| | | Consumable_order__c TestList7 = new Consumable_order__c(Name='Test7',Summons_Sale_Status__c='åºè´§',SummonsStatus_c__c='èæ¡ä¸',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='ç´æ¥éå®ç»å»é¢',Order_status__c='å·²æäº¤',Order_type__c='ä¼ ç¥¨',Dealer_info__c=myAccount1.Id,Onchange_order__c = true); |
| | | Consumable_order__c TestList1 = new Consumable_order__c(Name='Test1',Summons_Sale_Status__c='åºè´§',SummonsStatus_c__c='èæ¡ä¸',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='ç´æ¥éå®ç»å»é¢',Order_status__c='èæ¡ä¸',Order_type__c='ä¼ ç¥¨',Dealer_info__c=myAccount1.Id,Onchange_order__c = true,Order_ProType__c = 'ET'); |
| | | Consumable_order__c TestList2 = new Consumable_order__c(Name='Test2',Summons_Sale_Status__c='åºè´§',SummonsStatus_c__c='èæ¡ä¸',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='ç´æ¥éå®ç»å»é¢',Order_status__c='èæ¡ä¸',Order_type__c='ä¼ ç¥¨',Dealer_info__c=myAccount1.Id,Onchange_order__c = true); |
| | | Consumable_order__c TestList3 = new Consumable_order__c(Name='Test3',Summons_Sale_Status__c='åºè´§',SummonsStatus_c__c='èæ¡ä¸',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='ç´æ¥éå®ç»å»é¢',Order_status__c='èæ¡ä¸',Order_type__c='ä¼ ç¥¨',Dealer_info__c=myAccount1.Id,Onchange_order__c = true); |
| | | Consumable_order__c TestList4 = new Consumable_order__c(Name='Test4',Summons_Sale_Status__c='åºè´§',SummonsStatus_c__c='èæ¡ä¸',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='ç´æ¥éå®ç»å»é¢',Order_status__c='èæ¡ä¸',Order_type__c='ä¼ ç¥¨',Dealer_info__c=myAccount1.Id,Onchange_order__c = true); |
| | | TestList5.Order_date__c = Date.today().addDays(2); |
| | | TestList6.Order_date__c = Date.today().addDays(2); |
| | | TestList7.Order_date__c = Date.today().addDays(2); |
| | | TestList1.Order_date__c = Date.today().addDays(2); |
| | | TestList2.Order_date__c = Date.today().addDays(2); |
| | | TestList3.Order_date__c = Date.today().addDays(2); |
| | | TestList4.Order_date__c = Date.today(); |
| | | TestList5.Deliver_date__c=Date.today(); |
| | | TestList6.Deliver_date__c=Date.today(); |
| | | TestList7.Deliver_date__c=Date.today(); |
| | | TestList1.Deliver_date__c=Date.today(); |
| | | TestList2.Deliver_date__c=Date.today(); |
| | | TestList3.Deliver_date__c=Date.today(); |
| | | TestList4.Deliver_date__c=Date.today(); |
| | | insert new Consumable_order__c[]{TestList1,TestList2,TestList3,TestList4,TestList5,TestList6,TestList7}; |
| | | SaleAndDeliveryController CDC = new SaleAndDeliveryController(); |
| | | CDC.init1(); |
| | | CDC.category1='1'; |
| | | CDC.searchConsumableorderdetails(); |
| | | System.assertEquals('Test1', CDC.raesList[0].name); |
| | | CDC.coc.Order_date__c = date.today(); |
| | | CDC.category1=null; |
| | | CDC.searchConsumableorderdetails(); |
| | | CDC.SortLimited(); |
| | | System.assertEquals('Test1', CDC.raesList[0].name); |
| | | CDC.neworderhead(); |
| | | SaleAndDeliveryController.getTitle(); |
| | | } |
| | | } |
| | | //已宿åºåºåæ£ç´¢ |
| | | static testMethod void SaleAndDeliveryTest_Finish(){ |
| | | Profile prof = [select Id from Profile where Name ='901_ç»éåç¤¾åºæ®éæé_2ééªè¯']; |
| | | List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売åº']; |
| | | if (rectCo.size() == 0) { |
| | | return; |
| | | } |
| | | List<RecordType> rectHos = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'ç
é¢']; |
| | | if (rectHos.size() == 0) { |
| | | return; |
| | | } |
| | | Account myAccount1 = new Account(name='testaccount001',RecordTypeId = rectCo[0].Id ); |
| | | Account myAccount2 = new Account(name='testaccount002',RecordTypeId = rectHos[0].Id ); |
| | | insert myAccount1; |
| | | Contact core = new Contact(email='jplumber@salesforce.com', firstname='Joe',lastname='Plumber',accountid=myAccount1.id); |
| | | insert core; |
| | | user myUser_test = New User(ContactId = core.id,Alias = 'newUser',Email='newuser@testorg.com',EmailEncodingKey='UTF-8', LastName='testUser', LanguageLocaleKey='zh_CN',LocaleSidKey='zh_CN', ProfileId = prof.Id,TimeZoneSidKey='Asia/Shanghai', UserName='testUser@testorg.com',Work_Location__c = 'å京'); |
| | | insert myUser_test; |
| | | |
| | | system.runAs(myUser_test){ |
| | | Consumable_order__c TestList5 = new Consumable_order__c(Name='Test5',Summons_Sale_Status__c='åºè´§',SummonsStatus_c__c='已宿',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='ç´æ¥éå®ç»å»é¢',Order_status__c='èæ¡ä¸',Order_type__c='ä¼ ç¥¨',Dealer_info__c=myAccount1.Id,Onchange_order__c = true,Order_ProType__c = 'ET'); |
| | | Consumable_order__c TestList6 = new Consumable_order__c(Name='Test6',Summons_Sale_Status__c='åºè´§',SummonsStatus_c__c='已宿',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='ç´æ¥éå®ç»å»é¢',Order_status__c='å·²æäº¤',Order_type__c='ä¼ ç¥¨',Dealer_info__c=myAccount1.Id,Onchange_order__c = true,Order_ProType__c = 'ET'); |
| | | Consumable_order__c TestList7 = new Consumable_order__c(Name='Test7',Summons_Sale_Status__c='åºè´§',SummonsStatus_c__c='已宿',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='ç´æ¥éå®ç»å»é¢',Order_status__c='å·²æäº¤',Order_type__c='ä¼ ç¥¨',Dealer_info__c=myAccount1.Id,Onchange_order__c = true,Order_ProType__c = 'ET'); |
| | | Consumable_order__c TestList1 = new Consumable_order__c(Name='Test1',Summons_Sale_Status__c='åºè´§',SummonsStatus_c__c='已宿',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='ç´æ¥éå®ç»å»é¢',Order_status__c='èæ¡ä¸',Order_type__c='ä¼ ç¥¨',Dealer_info__c=myAccount1.Id,Onchange_order__c = true,Order_ProType__c = 'ET'); |
| | | Consumable_order__c TestList2 = new Consumable_order__c(Name='Test2',Summons_Sale_Status__c='åºè´§',SummonsStatus_c__c='已宿',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='ç´æ¥éå®ç»å»é¢',Order_status__c='èæ¡ä¸',Order_type__c='ä¼ ç¥¨',Dealer_info__c=myAccount1.Id,Onchange_order__c = true,Order_ProType__c = 'ET'); |
| | | Consumable_order__c TestList3 = new Consumable_order__c(Name='Test3',Summons_Sale_Status__c='åºè´§',SummonsStatus_c__c='èæ¡ä¸',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='ç´æ¥éå®ç»å»é¢',Order_status__c='èæ¡ä¸',Order_type__c='ä¼ ç¥¨',Dealer_info__c=myAccount1.Id,Onchange_order__c = true,Order_ProType__c = 'ET'); |
| | | Consumable_order__c TestList4 = new Consumable_order__c(Name='Test4',Summons_Sale_Status__c='åºè´§',SummonsStatus_c__c='èæ¡ä¸',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='ç´æ¥éå®ç»å»é¢',Order_status__c='èæ¡ä¸',Order_type__c='ä¼ ç¥¨',Dealer_info__c=myAccount1.Id,Onchange_order__c = true,Order_ProType__c = 'ET'); |
| | | TestList5.Order_date__c = Date.today().addDays(2); |
| | | TestList6.Order_date__c = Date.today().addDays(2); |
| | | TestList7.Order_date__c = Date.today().addDays(2); |
| | | TestList1.Order_date__c = Date.today().addDays(2); |
| | | TestList2.Order_date__c = Date.today().addDays(2); |
| | | TestList3.Order_date__c = Date.today().addDays(2); |
| | | TestList4.Order_date__c = Date.today(); |
| | | TestList5.Deliver_date__c=Date.today(); |
| | | TestList6.Deliver_date__c=Date.today(); |
| | | TestList7.Deliver_date__c=Date.today(); |
| | | TestList1.Deliver_date__c=Date.today(); |
| | | TestList2.Deliver_date__c=Date.today(); |
| | | TestList3.Deliver_date__c=Date.today(); |
| | | TestList4.Deliver_date__c=Date.today(); |
| | | TestList5.Outbound_Date__c=Date.today().addDays(1); |
| | | TestList6.Outbound_Date__c=Date.today().addDays(1); |
| | | TestList7.Outbound_Date__c=Date.today().addDays(1); |
| | | TestList1.Outbound_Date__c=Date.today().addDays(1); |
| | | TestList2.Outbound_Date__c=Date.today().addDays(1); |
| | | TestList3.Outbound_Date__c=Date.today().addDays(1); |
| | | TestList4.Outbound_Date__c=Date.today().addDays(1); |
| | | insert new Consumable_order__c[]{TestList1,TestList2,TestList3,TestList4,TestList5,TestList6,TestList7}; |
| | | SaleAndDeliveryController CDC = new SaleAndDeliveryController(); |
| | | CDC.init1(); |
| | | CDC.category1='Test'; |
| | | CDC.searchConsumableorFinish(); |
| | | CDC.SortLimited(); |
| | | System.assertEquals(5, CDC.raesList.size()); |
| | | CDC.neworderhead(); |
| | | CDC.sortKey='5'; |
| | | CDC.category2='Test02'; |
| | | CDC.searchConsumableorFinish(); |
| | | CDC.SortLimited(); |
| | | |
| | | } |
| | | } |
| | | |
| | | //æªæåºåºåæ£ç´¢ |
| | | static testMethod void SaleAndDeliveryTest_Instatus(){ |
| | | Profile prof = [select Id from Profile where Name ='901_ç»éåç¤¾åºæ®éæé_2ééªè¯']; |
| | | List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売åº']; |
| | | if (rectCo.size() == 0) { |
| | | return; |
| | | } |
| | | List<RecordType> rectHos = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'ç
é¢']; |
| | | if (rectHos.size() == 0) { |
| | | return; |
| | | } |
| | | Account myAccount1 = new Account(name='testaccount001',RecordTypeId = rectCo[0].Id ); |
| | | Account myAccount2 = new Account(name='testaccount002',RecordTypeId = rectHos[0].Id ); |
| | | insert myAccount1; |
| | | Contact core = new Contact(email='jplumber@salesforce.com', firstname='Joe',lastname='Plumber',accountid=myAccount1.id); |
| | | insert core; |
| | | user myUser_test = New User(ContactId = core.id,Alias = 'newUser',Email='newuser@testorg.com',EmailEncodingKey='UTF-8', LastName='testUser', LanguageLocaleKey='zh_CN',LocaleSidKey='zh_CN', ProfileId = prof.Id,TimeZoneSidKey='Asia/Shanghai', UserName='testUser@testorg.com',Work_Location__c = 'å京'); |
| | | insert myUser_test; |
| | | |
| | | system.runAs(myUser_test){ |
| | | Consumable_order__c TestList5 = new Consumable_order__c(Name='Test5',Summons_Sale_Status__c='åºè´§',SummonsStatus_c__c='已宿',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='ç´æ¥éå®ç»å»é¢',Order_status__c='èæ¡ä¸',Order_type__c='ä¼ ç¥¨',Dealer_info__c=myAccount1.Id,Total_Invoiced_Procount__c =1,InvoiceNotPro_total_amount__c =1,Order_ProType__c = 'ET'); |
| | | Consumable_order__c TestList6 = new Consumable_order__c(Name='Test6',Summons_Sale_Status__c='åºè´§',SummonsStatus_c__c='已宿',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='ç´æ¥éå®ç»å»é¢',Order_status__c='å·²æäº¤',Order_type__c='ä¼ ç¥¨',Dealer_info__c=myAccount1.Id,Total_Invoiced_Procount__c =2,InvoiceNotPro_total_amount__c =1,Order_ProType__c = 'ET'); |
| | | Consumable_order__c TestList7 = new Consumable_order__c(Name='Test7',Summons_Sale_Status__c='åºè´§',SummonsStatus_c__c='已宿',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='ç´æ¥éå®ç»å»é¢',Order_status__c='å·²æäº¤',Order_type__c='ä¼ ç¥¨',Dealer_info__c=myAccount1.Id,Total_Invoiced_Procount__c =3,InvoiceNotPro_total_amount__c =1,Order_ProType__c = 'ET'); |
| | | Consumable_order__c TestList1 = new Consumable_order__c(Name='Test1',Summons_Sale_Status__c='åºè´§',SummonsStatus_c__c='已宿',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='ç´æ¥éå®ç»å»é¢',Order_status__c='èæ¡ä¸',Order_type__c='ä¼ ç¥¨',Dealer_info__c=myAccount1.Id,Total_Invoiced_Procount__c =4,InvoiceNotPro_total_amount__c =1,Order_ProType__c = 'ET'); |
| | | Consumable_order__c TestList2 = new Consumable_order__c(Name='Test2',Summons_Sale_Status__c='åºè´§',SummonsStatus_c__c='已宿',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='ç´æ¥éå®ç»å»é¢',Order_status__c='èæ¡ä¸',Order_type__c='ä¼ ç¥¨',Dealer_info__c=myAccount1.Id,Total_Invoiced_Procount__c =5,InvoiceNotPro_total_amount__c =1,Order_ProType__c = 'ET'); |
| | | Consumable_order__c TestList3 = new Consumable_order__c(Name='Test3',Summons_Sale_Status__c='åºè´§',SummonsStatus_c__c='èæ¡ä¸',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='ç´æ¥éå®ç»å»é¢',Order_status__c='èæ¡ä¸',Order_type__c='ä¼ ç¥¨',Dealer_info__c=myAccount1.Id,Total_Invoiced_Procount__c =6,InvoiceNotPro_total_amount__c =1,Order_ProType__c = 'ET'); |
| | | Consumable_order__c TestList4 = new Consumable_order__c(Name='Test4',Summons_Sale_Status__c='åºè´§',SummonsStatus_c__c='èæ¡ä¸',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='ç´æ¥éå®ç»å»é¢',Order_status__c='èæ¡ä¸',Order_type__c='ä¼ ç¥¨',Dealer_info__c=myAccount1.Id,Total_Invoiced_Procount__c =7,InvoiceNotPro_total_amount__c =1,Order_ProType__c = 'ET'); |
| | | TestList5.Deliver_date__c = Date.today().addDays(2); |
| | | TestList6.Deliver_date__c = Date.today().addDays(2); |
| | | TestList7.Deliver_date__c = Date.today().addDays(2); |
| | | TestList1.Deliver_date__c = Date.today().addDays(2); |
| | | TestList2.Deliver_date__c = Date.today().addDays(2); |
| | | TestList3.Deliver_date__c = Date.today().addDays(2); |
| | | TestList4.Deliver_date__c = Date.today().addDays(2); |
| | | TestList5.Order_date__c=Date.today(); |
| | | TestList6.Order_date__c=Date.today(); |
| | | TestList7.Order_date__c=Date.today(); |
| | | TestList1.Order_date__c=Date.today(); |
| | | TestList2.Order_date__c=Date.today(); |
| | | TestList3.Order_date__c=Date.today(); |
| | | TestList4.Order_date__c=Date.today(); |
| | | TestList5.Outbound_Date__c=Date.today().addDays(1); |
| | | TestList6.Outbound_Date__c=Date.today().addDays(1); |
| | | TestList7.Outbound_Date__c=Date.today().addDays(1); |
| | | TestList1.Outbound_Date__c=Date.today().addDays(1); |
| | | TestList2.Outbound_Date__c=Date.today().addDays(1); |
| | | TestList3.Outbound_Date__c=Date.today().addDays(1); |
| | | TestList4.Outbound_Date__c=Date.today().addDays(1); |
| | | insert new Consumable_order__c[]{TestList1,TestList2,TestList3,TestList4,TestList5,TestList6,TestList7}; |
| | | SaleAndDeliveryController CDC = new SaleAndDeliveryController(); |
| | | CDC.init1(); |
| | | CDC.category1='Test'; |
| | | CDC.searchOrderInstatus(); |
| | | System.assertEquals(5, CDC.raesList.size()); |
| | | CDC.SortLimited(); |
| | | CDC.neworderhead(); |
| | | CDC.category2='Test02'; |
| | | CDC.searchOrderInstatus(); |
| | | CDC.sortKey='5'; |
| | | CDC.SortLimited(); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| New file |
| | |
| | | /********************************************************** |
| | | * SetupCheck_DescribeController |
| | | * ãªãã¸ã§ã¯ãã®ä¸è¦§ã¨é
ç®ã®è¨å®å
容ä¸è¦§ãåå¾ãã |
| | | * versionï¼ 1.0 |
| | | * ä½æï¼ TDC Hokazono |
| | | ***********************************************************/ |
| | | public class SetupCheck_DescribeController { |
| | | //ãªãã¸ã§ã¯ãè¨å®æ ¼ç´ |
| | | private transient Map<String, Schema.DescribeSObjectResult> descSr; |
| | | |
| | | //ãã¼ã¿ã¿ã¤ãè¨å®æ ¼ç´ |
| | | private Map<String, List<String>> typelabel; |
| | | |
| | | //鏿ãªãã¸ã§ã¯ãæ ¼ç´ |
| | | public String SelectObj {get; set;} |
| | | |
| | | //ãªãã¸ã§ã¯ãåãã©ãã«æ ¼ç´ |
| | | public String SelectObjNm {get; set;} |
| | | public String SelectObjLb {get; set;} |
| | | |
| | | //表示åãã§ãã¯æ ¼ç´ |
| | | public Boolean checknum {get; set;} |
| | | public Boolean checklbl {get; set;} |
| | | public Boolean checknme {get; set;} |
| | | public Boolean checktyp {get; set;} |
| | | public Boolean checklgt {get; set;} |
| | | public Boolean checkplv {get; set;} |
| | | public Boolean checknul {get; set;} |
| | | public Boolean checkcst {get; set;} |
| | | public Boolean checkhlt {get; set;} |
| | | |
| | | //表示é
ç®ãã§ãã¯æ ¼ç´ |
| | | public String radiodspcol {get; set;} |
| | | |
| | | //ã½ã¼ããã©ã°æ ¼ç´ |
| | | public String sortitem {get; set;} |
| | | |
| | | //ã½ã¼ããã©ã°æ ¼ç´ |
| | | //ï¼Trueï¼æé ãFalseï¼éé ï¼ |
| | | private Boolean sortflg {get; set;} |
| | | |
| | | //ã³ã³ã¹ãã©ã¯ã¿ã¼ |
| | | public SetupCheck_DescribeController() { |
| | | System.debug('@@@@@@ãSetupCheck_DescribeControllerã@@@@@@'); |
| | | |
| | | //å
¨ãªãã¸ã§ã¯ãã®æ
å ±ãåå¾ |
| | | allObjectDescribeGet(); |
| | | |
| | | //ç»é¢åæè¨å® |
| | | checknum = true; |
| | | checklbl = true; |
| | | checknme = true; |
| | | checktyp = true; |
| | | checklgt = true; |
| | | checkplv = true; |
| | | checknul = true; |
| | | checkcst = true; |
| | | checkhlt = true; |
| | | |
| | | radiodspcol = 'BTH'; |
| | | |
| | | //ã½ã¼ããã©ã° |
| | | sortitem = ''; |
| | | sortflg = false; |
| | | |
| | | //ãã£ã¼ã«ãã¿ã¤ãã®ã©ãã«ãè¨å® |
| | | typeLabelSet(); |
| | | } |
| | | |
| | | //å
¨ãªãã¸ã§ã¯ãã®è¨å®æ
å ±ãåå¾ |
| | | public void allObjectDescribeGet() { |
| | | System.debug('@@@@@@ãallObjectDescribeGetã@@@@@@'); |
| | | //æ¢ã«å徿¸ã¿ã®å ´åçµäº |
| | | if (descSr != null) return; |
| | | |
| | | //ãã¼ãã«ã®è¨å®å
容ãåå¾ |
| | | Map<String, Schema.SObjectType> gd = Schema.getGlobalDescribe(); |
| | | |
| | | //è¨å®æ
å ±ãæ ¼ç´ |
| | | descSr = new Map<String, Schema.DescribeSObjectResult>(); |
| | | //ãªãã¸ã§ã¯ãã®è¨å®å
å®¹ãæ ¼ç´ |
| | | for (Schema.SObjectType st : gd.values()) { |
| | | Schema.DescribeSObjectResult r = st.getDescribe(); |
| | | descSr.put(r.getName(), r); |
| | | } |
| | | |
| | | return; |
| | | } |
| | | |
| | | //å
¨ãªãã¸ã§ã¯ãåãåå¾ã鏿ãªã¹ããè¨å® |
| | | public List<SelectOption> getObjAllName() { |
| | | System.debug('@@@@@@ãgetObjAllNameã@@@@@@'); |
| | | //ãªã¿ã¼ã³å¤ |
| | | List<SelectOption> options = new List<SelectOption>(); |
| | | |
| | | //å
¨ãªãã¸ã§ã¯ãã®æ
å ±ãåå¾ |
| | | allObjectDescribeGet(); |
| | | |
| | | //ã½ã¼ãç¨å¤æ° |
| | | Map<String, String> objmap = new Map<String, String>(); |
| | | List<String> KeyList = new List<String>(); |
| | | |
| | | //ãªãã¸ã§ã¯ããã½ã¼ãç¨å¤æ°ã«æ ¼ç´ |
| | | for (Schema.DescribeSObjectResult dsr : descSr.values()) { |
| | | //System.debug(dsr.getLabel() + '(' + dsr.getName() + ')'); |
| | | KeyList.add(dsr.getName()); |
| | | objmap.put(dsr.getName(), dsr.getLabel()); |
| | | |
| | | } |
| | | |
| | | //Nameã§ã½ã¼ã |
| | | KeyList.sort(); |
| | | |
| | | //鏿ãªã¹ãå¤ãè¨å® |
| | | options.add(new SelectOption('','-- 鏿ãã¦ãã ãã --')); |
| | | for (String key : KeyList) { |
| | | options.add(new SelectOption(key, objmap.get(key))); |
| | | } |
| | | |
| | | //å¦ççµäº |
| | | return options; |
| | | } |
| | | |
| | | //é
ç®ä¸è¦§ãè¨å® |
| | | public List<FieldValue> getTableVal() { |
| | | System.debug('@@@@@@ãgetTableValã@@@@@@'); |
| | | //ãªã¿ã¼ã³å¤ |
| | | List<FieldValue> retval = new List<FieldValue>(); |
| | | |
| | | //å
¨ãªãã¸ã§ã¯ãã®æ
å ±ãåå¾ |
| | | allObjectDescribeGet(); |
| | | |
| | | //ãªãã¸ã§ã¯ãåãæªé¸æã®å ´åå¦ççµäº |
| | | if (!execCheckObject()) return null; |
| | | |
| | | //ãªãã¸ã§ã¯ãåãã©ãã«ãåå¾ |
| | | objNameLabelGet(); |
| | | |
| | | //ãªãã¸ã§ã¯ãããé
ç®ãåå¾ |
| | | Map<String, Schema.SObjectField> fieldsmap = descSr.get(SelectObj).fields.getMap(); |
| | | |
| | | //é
ç®åã«ã¼ã |
| | | for (Schema.SObjectField field : fieldsmap.values()) { |
| | | //é
ç®ã®è¨å®å
容ãåå¾ |
| | | Schema.DescribeFieldResult fd = field.getDescribe(); |
| | | //夿°ã«æ ¼ç´Label_No |
| | | FieldValue fv = new FieldValue(); |
| | | |
| | | System.debug(' @@@ é
ç®åãï¼ã' + fd.getName()); |
| | | |
| | | //åé
ç®è¨å®ãåå¾ã»è¨å® |
| | | fv.Label_Label = fd.getLabel(); |
| | | fv.Label_Name = fd.getName(); |
| | | fv.Label_Type = fieldTypeGet(fd); |
| | | fv.Label_Length = fieldLengthGet(fd); |
| | | fv.Label_Nillable = fd.isNillable(); |
| | | fv.Label_Custom = fd.isCustom(); |
| | | fv.Label_HelpText = fieldHelpTextGet(fd); |
| | | |
| | | //ãã©ã°ãè¨å® |
| | | //ãã¼ã¿ã¿ã¤ãåå¾ |
| | | String ftype = fd.getType().name(); |
| | | //鏿ãªã¹ãã¿ã¤ããã§ã㯠|
| | | if (ftype != 'PICKLIST' && ftype != 'MULTIPICKLIST') { |
| | | fv.Label_PicklistValues_flg = false; |
| | | } else { |
| | | fv.Label_PicklistValues_flg = true; |
| | | } |
| | | //ãã«ãããã¹ãNULLãã§ã㯠|
| | | if (fv.Label_HelpText == null) { |
| | | fv.Label_HelpText_flg = false; |
| | | } else { |
| | | fv.Label_HelpText_flg = true; |
| | | } |
| | | |
| | | //ãªã¿ã¼ã³å¤ã«è¿½å |
| | | retval.add(fv); |
| | | } |
| | | |
| | | //ã½ã¼ããã©ã°ãããå ´åã½ã¼ãå®è¡ |
| | | if (sortitem != '') retval = listSortExec(retval); |
| | | |
| | | //é
ç®Noãã»ãã |
| | | //é
ç®çªå· |
| | | Integer item_no = 0; |
| | | for(FieldValue fv : retval) { |
| | | item_no++; |
| | | fv.Label_no = item_no; |
| | | } |
| | | |
| | | //å¦ççµäº |
| | | return retval; |
| | | } |
| | | |
| | | //é
ç®ãã¼ã¿åãåå¾ï¼æ¥æ¬èªåï¼ |
| | | private String fieldTypeGet(Schema.DescribeFieldResult fd) { |
| | | System.debug('@@@@@@ãfieldTypeGetã@@@@@@'); |
| | | //ãªã¿ã¼ã³å¤ |
| | | String retval = ''; |
| | | //ãã¼ã¿ã¿ã¤ãåå¾ |
| | | String typeval = fd.getType().name(); |
| | | |
| | | //ãã¼ã¿ã¿ã¤ããåå¾ |
| | | if (typelabel.containsKey(typeval)) { |
| | | //ã¿ã¤ããããã«ããå ´åæ¥æ¬èªåãæ ¼ç´ |
| | | retval = typelabel.get(typeval)[0]; |
| | | |
| | | } else { |
| | | //ã¿ã¤ããããã«ç¡ãå ´åãã®ã¾ã¾æ ¼ç´ |
| | | retval = typeval; |
| | | } |
| | | |
| | | //ã«ãã¯ã¢ããã®å ´åãªãã¸ã§ã¯ãåãåå¾ |
| | | if (typeval == 'REFERENCE') { |
| | | Boolean flg = false; |
| | | retval += 'ï¼'; |
| | | for (Schema.sObjectType sot : fd.getReferenceTo()) { |
| | | if (flg) retval += ','; |
| | | retval += sot.getDescribe().getLabel(); |
| | | flg = true; |
| | | } |
| | | retval += 'ï¼'; |
| | | |
| | | } |
| | | |
| | | //èªåæ¡çªé
ç®ãã§ã㯠|
| | | if (fd.isAutoNumber()) retval = 'èªåæ¡çª'; |
| | | |
| | | //æ°å¼é
ç®ãã§ã㯠|
| | | if (fd.isCalculated()) retval = 'æ°å¼ï¼' + retval + 'ï¼'; |
| | | |
| | | //å¤é¨IDé
ç®ãã§ã㯠|
| | | if (fd.isExternalID()) retval += 'ï¼å¤é¨ IDï¼'; |
| | | |
| | | //ã¦ãã¼ã¯ãã§ã㯠|
| | | if (fd.isUnique()) { |
| | | retval += 'ï¼ã¦ãã¼ã¯ã'; |
| | | //大æåã»å°æåå¤å¥ |
| | | if (fd.isCaseSensitive()) { |
| | | retval += '大æåã¨å°æåãåºå¥ãã'; |
| | | } else { |
| | | retval += '大æåã¨å°æåãåºå¥ããªã'; |
| | | } |
| | | retval += 'ï¼'; |
| | | } |
| | | |
| | | //å¦ççµäº |
| | | return retval; |
| | | } |
| | | |
| | | //é
ç®æåæ°ãåå¾ |
| | | private String fieldLengthGet(Schema.DescribeFieldResult fd) { |
| | | System.debug('@@@@@@ãfieldLengthGetã@@@@@@'); |
| | | //ãªã¿ã¼ã³å¤ |
| | | String retval = ''; |
| | | //æåæ°åå¾ã¿ã¤ãå¤å¥ç¨ |
| | | String lengthtype = ''; |
| | | //ãã¼ã¿ã¿ã¤ãåå¾ |
| | | String typeval = fd.getType().name(); |
| | | |
| | | //ãã¼ã¿ã¿ã¤ãåå¨ãã§ã㯠|
| | | if (typelabel.containsKey(typeval)) lengthtype = typelabel.get(typeval)[1]; |
| | | |
| | | //æåæ°åå¾ã¿ã¤ãããï¼ç©ºç½ï¼ã®å ´å |
| | | if (lengthtype == '') { |
| | | //ç´æ¥æåæ°æ ¼ç´ |
| | | retval = fd.getLength() + ''; |
| | | |
| | | //æåæ°åå¾ã¿ã¤ããNULLãã®å ´å |
| | | } else if (lengthtype == 'NULL') { |
| | | //ç©ºç½æ ¼ç´ |
| | | retval = ''; |
| | | |
| | | //æåæ°åå¾ã¿ã¤ããINTãã®å ´å |
| | | } else if (lengthtype == 'INT') { |
| | | //æ´æ°ã®æ¡æ°æ ¼ç´ |
| | | retval = fd.getDigits() + ',0'; |
| | | |
| | | //æåæ°åå¾ã¿ã¤ããDBLãã®å ´å |
| | | } else if (lengthtype == 'DBL') { |
| | | //å
¨ä½ã®æåæ°ã¨å°æ°ç¹ã®ä½ç½®ããæåæ°è¨å® |
| | | Integer precision = fd.getPrecision(); |
| | | Integer scale = fd.getScale(); |
| | | retval = (precision - scale) + ',' + scale; |
| | | |
| | | } |
| | | |
| | | //å¦ççµäº |
| | | return retval; |
| | | } |
| | | |
| | | //ãã«ãããã¹ãå¤ãé
åã«å¤æ |
| | | private String[] fieldHelpTextGet(Schema.DescribeFieldResult fd) { |
| | | System.debug('@@@@@@ãfieldHelpTextGetã@@@@@@'); |
| | | //ãªã¿ã¼ã³å¤ |
| | | List<String> retlist = new List<String>(); |
| | | //ãã«ãããã¹ãåå¾ |
| | | String htxt = fd.getInlineHelpText(); |
| | | |
| | | //å¤ãç¡ãå ´åNULLãè¿ãçµäº |
| | | if (htxt == '' || htxt == null) return null; |
| | | |
| | | //ããã¹ãå
ã®æ¹è¡ããé
åãçæ |
| | | retlist = htxt.split('\n', -1); |
| | | |
| | | //å¦ççµäº |
| | | return retlist; |
| | | } |
| | | |
| | | //ãã¼ã¿ã¿ã¤ããè¨å®ï¼æ¥æ¬èªã©ãã«ãæåæ°åå¾ã¿ã¤ãï¼ |
| | | private void typeLabelSet() { |
| | | System.debug('@@@@@@ãtypeLabelSetã@@@@@@'); |
| | | //ãã¼ã¿ã¿ã¤ãæ ¼ç´ç¨ |
| | | typelabel = new Map<String, List<String>>(); |
| | | |
| | | //æåæ°ããã®ã¾ã¾è¡¨ç¤º |
| | | typelabel.put('ID', new String[]{'ID', ''}); |
| | | typelabel.put('ANYTYPE', new String[]{'AnyType', ''}); |
| | | typelabel.put('BASE64', new String[]{'Base64', ''}); |
| | | typelabel.put('EMAIL', new String[]{'é»åã¡ã¼ã«', ''}); |
| | | typelabel.put('PHONE', new String[]{'é»è©±', ''}); |
| | | typelabel.put('COMBOBOX', new String[]{'ããã¹ãï¼ï¼é¸æãªã¹ãï¼', ''}); |
| | | typelabel.put('ENCRYPTEDSTRING', new String[]{'ãã¹ã¯ã¼ã', ''}); |
| | | typelabel.put('STRING', new String[]{'ããã¹ã', ''}); |
| | | typelabel.put('TEXTAREA', new String[]{'ããã¹ãã¨ãªã¢', ''}); |
| | | typelabel.put('URL', new String[]{'URL', ''}); |
| | | typelabel.put('TIME', new String[]{'æé', ''}); |
| | | |
| | | //æåæ°ãNULLï¼ç©ºç½ï¼ã§è¡¨ç¤º |
| | | typelabel.put('BOOLEAN', new String[]{'ãã§ãã¯ããã¯ã¹', 'NULL'}); |
| | | typelabel.put('DATE', new String[]{'æ¥ä»', 'NULL'}); |
| | | typelabel.put('DATETIME', new String[]{'æ¥ä»/æé', 'NULL'}); |
| | | typelabel.put('PICKLIST', new String[]{'鏿ãªã¹ã', 'NULL'}); |
| | | typelabel.put('MULTIPICKLIST', new String[]{'鏿ãªã¹ã(è¤æ°é¸æ)', 'NULL'}); |
| | | typelabel.put('REFERENCE', new String[]{'ã«ãã¯ã¢ãã', ''}); |
| | | |
| | | //æåæ°ãæ´æ°ã®ã¿è¡¨ç¤º |
| | | typelabel.put('INTEGER', new String[]{'æ°å¤', 'INT'}); |
| | | |
| | | //æåæ°ãæ´æ°ã¨å°æ°ç¹ä»¥ä¸ã§è¡¨ç¤º |
| | | typelabel.put('CURRENCY', new String[]{'é貨', 'DBL'}); |
| | | typelabel.put('DOUBLE', new String[]{'æ°å¤', 'DBL'}); |
| | | typelabel.put('PERCENT', new String[]{'ãã¼ã»ã³ã', 'DBL'}); |
| | | } |
| | | |
| | | //ãªãã¸ã§ã¯ãã®é¸æç¶æ³ãåå¨ç¢ºèª |
| | | private Boolean execCheckObject() { |
| | | System.debug('@@@@@@ãexecCheckObjectã@@@@@@'); |
| | | //ãªãã¸ã§ã¯ãåãæªé¸æã®å ´åFALSE |
| | | if (SelectObj == '' || SelectObj == null) return false; |
| | | //ãªãã¸ã§ã¯ããåå¨ããªãå ´åFALSE |
| | | if (!descSr.containsKey(SelectObj)) return false; |
| | | |
| | | //ãã®ä»ã®å ´åTRUE |
| | | return true; |
| | | } |
| | | |
| | | //ãªãã¸ã§ã¯ãåãã©ãã«åå¾ |
| | | private void objNameLabelGet() { |
| | | System.debug('@@@@@@ãobjNameLabelGetã@@@@@@'); |
| | | //ãªãã¸ã§ã¯ãåãæªé¸æã®å ´åå¦ççµäº |
| | | if(!execCheckObject()) return; |
| | | |
| | | //è¨å®å
容ãåå¾ |
| | | Schema.DescribeSObjectResult dsor = descSr.get(SelectObj); |
| | | //ãªãã¸ã§ã¯ãååå¾ |
| | | SelectObjNm = dsor.getName(); |
| | | //ãªãã¸ã§ã¯ãã©ãã«åå¾ |
| | | SelectObjLb = dsor.getLabel(); |
| | | } |
| | | |
| | | //表示é
ç®ã©ã¸ãªãã¿ã³ãè¨å® |
| | | public List<SelectOption> getDispType() { |
| | | System.debug('@@@@@@ãgetDispTypeã@@@@@@'); |
| | | //ãªã¿ã¼ã³å¤ |
| | | List<SelectOption> options = new List<SelectOption>(); |
| | | |
| | | options.add(new SelectOption('BTH', '両æ¹')); |
| | | options.add(new SelectOption('STD', 'æ¨æº')); |
| | | options.add(new SelectOption('CST', 'ã«ã¹ã¿ã ')); |
| | | |
| | | //å¦ççµäº |
| | | return options; |
| | | } |
| | | |
| | | //é
ç®è¨å®å
容ã®ã½ã¼ãå®è¡ |
| | | private List<FieldValue> listSortExec(List<FieldValue> fldval) { |
| | | //æ»ã夿 ¼ç´ |
| | | List<FieldValue> resultList = new List<FieldValue>(); |
| | | |
| | | //å¤ãæ ¼ç´ |
| | | Map<String, List<FieldValue>> fvMap = new Map<String, List<FieldValue>>(); |
| | | |
| | | //ãã©ã¡ã¼ã¿ãããªã¹ããçæ |
| | | for(FieldValue fv : fldval) { |
| | | //é
ç®æ ¼ç´ |
| | | String itemval = ''; |
| | | |
| | | //é
ç®ãåå¾ |
| | | //ã½ã¼ãé
ç®ã«ããåå² |
| | | if (sortitem == 'Label_Label') { |
| | | itemval = fv.Label_Label; |
| | | } else if (sortitem == 'Label_Name') { |
| | | itemval = fv.Label_Name; |
| | | } else if (sortitem == 'Label_Type') { |
| | | itemval = fv.Label_Type; |
| | | } else if (sortitem == 'Label_Length') { |
| | | itemval = fv.Label_Length; |
| | | } |
| | | |
| | | //åå¨ãã§ã㯠|
| | | if(fvMap.get(itemval) == null) { fvMap.put(itemval, new List<FieldValue>()); } |
| | | //å¤ã追å |
| | | fvMap.get(itemval).add(fv); |
| | | } |
| | | //ãªã¹ããããã¼ãåå¾ |
| | | List<String> keys = new List<String>(fvMap.keySet()); |
| | | |
| | | //ã½ã¼ããå®è¡ |
| | | keys.sort(); |
| | | |
| | | //ã½ã¼ããã©ã°ãFALSEã®å ´åéé |
| | | if (!sortflg) { |
| | | System.debug(' @@@ Sort Flag : FALSE'); |
| | | //夿 ¼ç´ |
| | | List<String> keys_desc = new List<String>(); |
| | | |
| | | //ãªã¹ãåã«ã¼ã |
| | | for (Integer i = 1; i <= keys.size(); i++) { |
| | | //ãã¼ãéé ã§è¿½å |
| | | keys_desc.add(keys[keys.size()-i]); |
| | | } |
| | | keys = keys_desc; |
| | | } |
| | | //ã½ã¼ãçµæãåå¾ |
| | | for(String key:keys) { resultList.addAll(fvMap.get(key)); } |
| | | |
| | | return resultList; |
| | | } |
| | | |
| | | //表示ãã¿ã³æ¼ä¸æã®å¦ç |
| | | public void viewPage() { |
| | | System.debug('@@@@@@ãviewPageã@@@@@@'); |
| | | |
| | | //å¦ççµäº |
| | | return; |
| | | } |
| | | |
| | | //表示ãã¿ã³æ¼ä¸æã®å¦ç |
| | | public void sortItems() { |
| | | System.debug('@@@@@@ãsortItemsã@@@@@@'); |
| | | |
| | | //ã½ã¼ããã©ã°ã夿 |
| | | sortflg = !sortflg; |
| | | System.debug(' @@@ Sort Flag : ' + sortflg); |
| | | System.debug(' @@@ Sort Item : ' + sortitem); |
| | | |
| | | //å¦ççµäº |
| | | return; |
| | | } |
| | | |
| | | //é
ç®ä¸è¦§è¡¨ç¤ºç¨ã¯ã©ã¹ |
| | | public class FieldValue { |
| | | public Integer Label_No { get { return Label_No; } set { Label_No = value; } } |
| | | public String Label_Label { get { return Label_Label; } set { Label_Label = value; } } |
| | | public String Label_Name { get { return Label_Name; } set { Label_Name = value; } } |
| | | public String Label_Type { get { return Label_Type; } set { Label_Type = value; } } |
| | | public String Label_Length { get { return Label_Length; } set { Label_Length = value; } } |
| | | public Boolean Label_PicklistValues_flg { get { return Label_PicklistValues_flg; } set { Label_PicklistValues_flg = value; } } |
| | | public Boolean Label_Nillable { get { return Label_Nillable; } set { Label_Nillable = value; } } |
| | | public Boolean Label_Custom { get { return Label_Custom; } set { Label_Custom = value; } } |
| | | public String[] Label_HelpText { get { return Label_HelpText; } set { Label_HelpText = value; } } |
| | | public Boolean Label_HelpText_flg { get { return Label_HelpText_flg; } set { Label_HelpText_flg = value; } } |
| | | } |
| | | |
| | | //ãã¹ãã¡ã½ãã |
| | | static testmethod void describeControllerTEST() { |
| | | SetupCheck_DescribeController dc = new SetupCheck_DescribeController(); |
| | | List<SelectOption> so_oan = dc.getObjAllName(); |
| | | List<SelectOption> so_dst = dc.getDispType(); |
| | | |
| | | dc.viewPage(); |
| | | dc.sortItems(); |
| | | |
| | | //ãªãã¸ã§ã¯ã鏿ç¡ã |
| | | dc.getTableVal(); |
| | | //ãªãã¸ã§ã¯ã鏿ãAccountãï¼ã½ã¼ãç¡ãï¼ |
| | | dc.SelectObj = 'Account'; |
| | | dc.getTableVal(); |
| | | //ãªãã¸ã§ã¯ã鏿ãEventãï¼ã½ã¼ãæãï¼ |
| | | dc.sortflg = false; |
| | | dc.sortitem = 'Label_Label'; |
| | | dc.SelectObj = 'Event'; |
| | | dc.getTableVal(); |
| | | } |
| | | } |
| New file |
| | |
| | | /********************************************************** |
| | | * SetupCheck_PicklistValuesGetController |
| | | * ãªãã¸ã§ã¯ãã®é¸æãªã¹ãå¤ãåå¾ãã |
| | | * versionï¼ 1.0 |
| | | * ä½æï¼ TDC Hokazono |
| | | ***********************************************************/ |
| | | public class SetupCheck_PicklistValuesGetController { |
| | | //鏿ãªã¹ã夿 ¼ç´ |
| | | public String[] val_PicklistValues { get; set; } |
| | | |
| | | //ã³ã³ã¹ãã©ã¯ã¿ã¼ |
| | | public SetupCheck_PicklistValuesGetController() { |
| | | System.debug('@@@@@@ãSetupCheck_PicklistValuesGetControllerã@@@@@@'); |
| | | |
| | | //URLãããã¼ãã«åã¨é
ç®åãåå¾ |
| | | String sobject_name = ApexPages.currentPage().getParameters().get('sobject_name'); |
| | | String field_name = ApexPages.currentPage().getParameters().get('field_name'); |
| | | |
| | | System.debug(' @@@ sobject_name : ' + sobject_name); |
| | | System.debug(' @@@ field_name : ' + field_name); |
| | | |
| | | //鏿ãªã¹ãå¤ãåå¾ |
| | | val_PicklistValues = fieldPicklistValuesGet(sobject_name, field_name); |
| | | } |
| | | |
| | | //é
ç®é¸æãªã¹ãå¤ãåå¾ |
| | | private String[] fieldPicklistValuesGet(String sname, String fname) { |
| | | System.debug('@@@@@@ãfieldPicklistValuesGetã@@@@@@'); |
| | | System.debug(' @@@ sname : ' + sname); |
| | | System.debug(' @@@ fname : ' + fname); |
| | | |
| | | //æ»ã夿 ¼ç´ |
| | | List<String> retlist = new List<String>(); |
| | | //ãªãã¸ã§ã¯ãé
ç®ã®è¨å®å
å®¹ãæ ¼ç´ |
| | | Map<String, Schema.SObjectField> sof; |
| | | |
| | | //SObjectãåå¾ï¼å¯å¤ã§ã®å徿¹æ³ã䏿ãªã®ã§ã¾ãã¯DynamicSOQLå©ç¨ï¼ |
| | | //new SObject('ãªãã¸ã§ã¯ãå');ãã§ããã®ãçæ³ã§ãã |
| | | List<SObject> so = Database.query('Select Id from ' + sname + ' limit 1'); |
| | | |
| | | //é
ç®ã®è¨å®æ
å ±åå¾ |
| | | if (so.size() > 0) { |
| | | System.debug(' @@@ so.size() > 0 '); |
| | | //åå¾ããæ¤ç´¢çµæã¬ã³ã¼ãããè¨å®æ
å ±ãåå¾ |
| | | sof = so[0].getSObjectType().getDescribe().fields.getMap(); |
| | | } else { |
| | | System.debug(' @@@ so.size() == 0 '); |
| | | //ã¬ã³ã¼ãã1ã¤ãç¡ãå ´åã¯æçµææ®µã§GlobalDescribeãå©ç¨ |
| | | //Describeèªä½ãéãããªå¦çãªã®ã§æçµææ®µ |
| | | sof = Schema.getGlobalDescribe().get(sname).newSObject().getSObjectType().getDescribe().fields.getMap(); |
| | | } |
| | | |
| | | //é
ç®ã®åå¨ç¢ºèª |
| | | if (!sof.containsKey(fname)) return null; |
| | | |
| | | //é
ç®ã®è¨å®å
容ãåå¾ |
| | | Schema.DescribeFieldResult dfr = sof.get(fname).getDescribe(); |
| | | |
| | | //ãã¼ã¿ã¿ã¤ãåå¾ |
| | | String ftype = dfr.getType().name(); |
| | | |
| | | System.debug(' @@@ Data Type : ' + ftype); |
| | | |
| | | //鏿ãªã¹ã以å¤NULLãè¿ãçµäº |
| | | if (ftype != 'PICKLIST' && ftype != 'MULTIPICKLIST') return null; |
| | | |
| | | //ãªã¹ãå¤ãåå¾ |
| | | for (Schema.PicklistEntry pe : dfr.getPicklistValues()) { |
| | | String val = ''; |
| | | //ã©ãã«å¤ãåå¾ |
| | | val = pe.getLabel(); |
| | | |
| | | //ããã©ã«ãå¤ãã§ã㯠|
| | | if (pe.isDefaultValue()) val += 'ï¼ããã©ã«ãï¼'; |
| | | |
| | | //ç¡å¹ãã§ã㯠|
| | | if (!pe.isActive()) val += 'ï¼ç¡å¹ï¼'; |
| | | |
| | | System.debug(' @@@ Value : ' + val); |
| | | |
| | | //ãªã¿ã¼ã³å¤ã«è¿½å |
| | | retlist.add(val); |
| | | } |
| | | |
| | | //å¦ççµäº |
| | | return retlist; |
| | | } |
| | | |
| | | //ãã¹ãã¡ã½ãã |
| | | static testmethod void picklistValuesGetControllerTEST() { |
| | | test.starttest(); |
| | | //鏿ãªã¹ãé
ç®ï¼åè«ï¼ãã§ã¼ãºï¼ |
| | | PageReference pageRef = new PageReference('/apex/SetupCheck_PicklistValuesGet?sobject_name=Opportunity&field_name=StageName'); |
| | | test.setCurrentPage(pageRef); |
| | | SetupCheck_PicklistValuesGetController pc = new SetupCheck_PicklistValuesGetController(); |
| | | //鏿ãªã¹ã以å¤ã®é
ç®ï¼åè«ï¼åè«åï¼ |
| | | pageRef = new PageReference('/apex/SetupCheck_PicklistValuesGet?sobject_name=Opportunity&field_name=Name'); |
| | | test.setCurrentPage(pageRef); |
| | | pc = new SetupCheck_PicklistValuesGetController(); |
| | | test.stopTest(); |
| | | } |
| | | } |
| New file |
| | |
| | | public without sharing class ShipmentController { |
| | | /*****************æ¤ç´¢ç¨******************/ |
| | | //public Consumable_order__c coc { get; set; } |
| | | /*****************ç»é¢è¡¨ç¤ºBean******************/ |
| | | /*public List<ConsumableorderdetailsInfo> ConsumableorderdetailsRecords { get; set; } |
| | | public String baseUrl {get;private set;} |
| | | //æåºç¨ |
| | | public String sortKey { get; set; } |
| | | public String preSortKey { get; private set; } |
| | | public Boolean sortOrderAsc { get; private set; } |
| | | public String[] sortOrder { get; private set; } |
| | | private String[] columus = new String[]{ 'Name'}; |
| | | // 已鿩å¤åsetæç» |
| | | private List<Consumable_order_details__c> ConsumableorderdetailsSelected = new List<Consumable_order_details__c>(); |
| | | |
| | | // 产å ID |
| | | private String ESetId = ''; |
| | | */ |
| | | public ShipmentController() { |
| | | //Apexpages.currentPage().getHeaders().put('X-UA-Compatible', 'IE=8'); |
| | | //baseUrl = URL.getSalesforceBaseUrl().toExternalForm(); |
| | | //ESetId = ApexPages.currentPage().getParameters().get('esetId'); |
| | | //ConsumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>(); |
| | | } |
| | | /* |
| | | // ç»é¢åå§å |
| | | public void init() { |
| | | String userId = UserInfo.getUserId(); |
| | | List<user> Useracc = New List<user>(); |
| | | Useracc = [select accountid from user where id =:userId]; |
| | | String accountid = Useracc[0].accountid; |
| | | |
| | | coc = new Consumable_order__c(); |
| | | list<Dealer_elationship__c> Dealerelationship = new list<Dealer_elationship__c>(); |
| | | Dealerelationship = [select Dealer_subordinate__c,Dealer_subordinate__r.Name |
| | | from Dealer_elationship__c |
| | | where Dealer_principal__c =:accountid ]; |
| | | |
| | | ConsumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>(); |
| | | List<Consumable_order_details__c> CountSet = new List<Consumable_order_details__c>(); |
| | | if(ESetId== NULL || ESetId==''){ |
| | | |
| | | }else{ |
| | | |
| | | List<Consumable_order__c> qs = New List<Consumable_order__c>(); |
| | | qs = [select id,name,Order_reason__c, |
| | | Arrive_Order__c, |
| | | recordtypeid, |
| | | Order_status__c, |
| | | Deliver_date__c, |
| | | Order_ForHospital__c, |
| | | Order_ForDealer__r.Name |
| | | from Consumable_order__c |
| | | where id =:ESetId]; |
| | | if (qs.size()>0){ |
| | | coc = qs[0]; |
| | | } |
| | | // 鏿æ¸ã¿ã®æç»ãåå¾ |
| | | ConsumableorderdetailsSelected = [select Id, |
| | | Name, |
| | | Consumable_order__c, |
| | | Consumable_Product__c, |
| | | Consumable_Product__r.Name, |
| | | Sterilization_limit__c, |
| | | Consumable_Count__c, |
| | | Deliver_date__c, |
| | | Intra_Trade_List_RMB__c, |
| | | Asset_Model_No__c, |
| | | Sum_of_money__c |
| | | from Consumable_order_details__c |
| | | where Consumable_Shipment_order__c = :ESetId |
| | | order by Name ]; |
| | | //è¾åºallnumber |
| | | |
| | | for (Integer i = 0; i < ConsumableorderdetailsSelected.size(); i++) { |
| | | ConsumableorderdetailsRecords.add(new ConsumableorderdetailsInfo(ConsumableorderdetailsSelected[i])); |
| | | } |
| | | } |
| | | // æ¾ç¤ºæ°æ®æ¡æ°ä¿¡æ¯ |
| | | //makeMessage(); |
| | | this.sortKey = '1'; |
| | | this.preSortKey = '1'; |
| | | this.sortOrderAsc = false; |
| | | this.sortOrder = new String[1]; |
| | | this.sortOrder = new String[]{'', 'â'}; |
| | | } |
| | | //éå¶æ§æåº |
| | | /* public void SortLimited(){ |
| | | List<ConsumableorderdetailsInfo> reSet = new List<ConsumableorderdetailsInfo>(); |
| | | if (this.sortKey == this.preSortKey) { |
| | | // æ¹åãå¤ããã®ã¿ |
| | | this.sortOrderAsc = !this.sortOrderAsc; |
| | | this.sortOrder[Integer.valueOf(this.sortKey)] = (this.sortOrderAsc == true ? 'â' : 'â'); |
| | | } else { |
| | | this.sortOrderAsc = true; |
| | | this.sortOrder[Integer.valueOf(this.preSortKey)] = ''; |
| | | this.sortOrder[Integer.valueOf(this.sortKey)] = (this.sortOrderAsc == true ? 'â' : 'â'); |
| | | } |
| | | this.preSortKey = this.sortKey; |
| | | if(EsetId==null||ESetId==''){ |
| | | }else{ |
| | | // åºåºäº§ååå¾ |
| | | String soql = 'select Id, Name, Consumable_order__c, Consumable_Product__c,Consumable_Product__r.Name, Sterilization_limit__c,Consumable_Count__c,Deliver_date__c,Intra_Trade_List_RMB__c,Asset_Model_No__c,Sum_of_money__c from Consumable_order_details__c where Consumable_Shipment_order__c = \''+ESetId+'\''; |
| | | soql += ' order by ' + this.columus[Integer.valueOf(this.sortKey)] + ' ' + (this.sortOrderAsc == true ? 'asc nulls first' : 'desc nulls last'); |
| | | List<Consumable_order_details__c> queryList = Database.query(soql); |
| | | // 鏿æ¸ã¿ã®æç»ãåå¾ |
| | | Map<String, String> selectedIdMap = new Map<String, String>(); |
| | | for (Integer i = 0; i < queryList.size(); i++) { |
| | | reSet.add(new ConsumableorderdetailsInfo(queryList[i])); |
| | | } |
| | | ConsumableorderdetailsRecords = reSet; |
| | | // æ¾ç¤ºæ°æ®æ¡æ°ä¿¡æ¯ |
| | | } |
| | | } |
| | | */ |
| | | // Data Bean |
| | | /*class ConsumableorderdetailsInfo implements Comparable { |
| | | public Boolean check { get; set; } |
| | | public Boolean oldCheck { get; set; } |
| | | public Consumable_order_details__c esd { get; set; } |
| | | public Product2__c Prod { get; set; } |
| | | public Decimal allmoney { get; set; } |
| | | public Decimal allnumber { get; set; } |
| | | public Decimal oldConsumableCount { get; set; } |
| | | public Boolean canSelect { get; set; } |
| | | |
| | | // å·²åå¨å¤åsetæç»ç¨ |
| | | public ConsumableorderdetailsInfo(Consumable_order_details__c e) { |
| | | check = true; |
| | | oldCheck = true; |
| | | esd = e; |
| | | Prod = e.Consumable_Product__r; |
| | | oldConsumableCount = e.Consumable_Count__c; |
| | | canSelect = true; |
| | | } |
| | | // æåº |
| | | public Integer compareTo(Object compareTo) { |
| | | return null; |
| | | } |
| | | }*/ |
| | | } |
| New file |
| | |
| | | @isTest |
| | | private class ShipmentControllerTest { |
| | | |
| | | static testMethod void myUnitTest() { |
| | | // TO DO: implement unit test |
| | | ShipmentController Controller = new ShipmentController(); |
| | | } |
| | | } |
| New file |
| | |
| | | global class UpAccountProLimit { |
| | | webservice static String upAccount(String accountId,String productLimit,String userPro_Type){ |
| | | //--------AddStart-----XHL--------------20180929------------- |
| | | Boolean EngFlag = false; |
| | | Boolean ETFlag = false; |
| | | String userPro_Typestr = null; |
| | | if(String.isBlank(userPro_Type)){ |
| | | userPro_Type = 'ET'; |
| | | } |
| | | if(userPro_Type == 'ENG'){ |
| | | EngFlag = true; |
| | | }else{ |
| | | ETFlag = true; |
| | | } |
| | | //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'userPro_Type:'+ userPro_Type)); |
| | | //ApexPages.message(ApexPages.severity.ERROR,'userPro_Type:'+ userPro_Type)); |
| | | userPro_Typestr = '%' + userPro_Type + '%'; |
| | | //--------AddEnd-----XHL--------------20180929------------- |
| | | system.debug('userPro_Type' + userPro_Type); |
| | | String checkResoultstr = checkResoult(productLimit); |
| | | if(String.isNotBlank(checkResoultstr)){ |
| | | return checkResoultstr; |
| | | } |
| | | //String[] proidList =new String[]{}; |
| | | String[] proList =new String[]{}; |
| | | String[] pro_List =new String[]{}; |
| | | List<Account> acc = [ |
| | | SELECT |
| | | Id, |
| | | Name, |
| | | Product_Limit_Date__c |
| | | FROM |
| | | Account |
| | | WHERE |
| | | Id = : accountId |
| | | FOR UPDATE |
| | | ]; |
| | | if(null == acc || acc.size() == 0) { |
| | | return '没æç»éåï¼' + accountId + 'çæ°æ®ã'; |
| | | } |
| | | //proidList = acc[0].view_product__c.split(','); |
| | | //--------UpdateStart-----XHL--------------20180929------------- |
| | | String sql = ''; |
| | | List<Product2__c> roduct2List = [SELECT Asset_Model_No__c |
| | | FROM Product2__c |
| | | WHERE Product_Type__c like :userPro_Typestr]; |
| | | //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'roduct2List:'+ roduct2List)); |
| | | //sql = 'SELECT Asset_Model_No__c ' |
| | | // + ' FROM Product2__c ' |
| | | // + ' WHERE Pro2_Dealer_Object__c = true'; |
| | | //if(EngFlag){ |
| | | // sql += ' AND Pro2_Dealer_ENG__c =' + EngFlag ; |
| | | //}else if(ETFlag){ |
| | | // sql += ' AND Pro2_Dealer_Object__c = ' + ETFlag; |
| | | //} |
| | | //system.debug('sqlZZZZZZ' + sql); |
| | | //List<Product2__c> roduct2List = Database.query(sql); |
| | | //--------UpdateEnd-----XHL--------------20180929------------- |
| | | Map<String, String> productMap = new Map<String, String>(); |
| | | proList = productLimit.split(','); |
| | | system.debug('productLimitDDDDD' + productLimit); |
| | | system.debug('proListFFFFF' + proList); |
| | | if(proList.size() > 0 && String.isNotEmpty(proList[0])){ |
| | | for(Integer i = 0; i < proList.size(); i++){ |
| | | pro_List.add(proList[i].subString(0,proList[i].indexOf( '|'))); |
| | | } |
| | | } |
| | | if(roduct2List.size() > 0){ |
| | | for(Product2__c pro2 :roduct2List){ |
| | | productMap.put(pro2.Asset_Model_No__c, pro2.Asset_Model_No__c); |
| | | } |
| | | } |
| | | for(Integer i = 0; i < pro_List.size(); i++){ |
| | | if(!productMap.containsKey(pro_List[i])){ |
| | | return 'ç»éåæ²¡æ ' + pro_List[i] + ' ç产åä¸éè®¾å®æéï¼æäº§åä¸åå¨ï¼'; |
| | | } |
| | | } |
| | | String productLimitDa = ''; |
| | | for(String str : productLimit.split(',')){ |
| | | |
| | | if(str != null && str != ''){ |
| | | productLimitDa += ',' + str; |
| | | } |
| | | } |
| | | Savepoint sp = Database.setSavepoint(); |
| | | try{ |
| | | Account accinfo = new Account(); |
| | | accinfo.Id = accountId; |
| | | if(EngFlag){ |
| | | accinfo.Product_Limit_DateENG__c = String.isBlank(productLimitDa) ? productLimitDa : productLimitDa.subString(1); |
| | | }else if(ETFlag){ |
| | | accinfo.Product_Limit_Date__c = String.isBlank(productLimitDa) ? productLimitDa : productLimitDa.subString(1); |
| | | } |
| | | |
| | | UPDATE accinfo; |
| | | return ''; |
| | | }catch(DmlException de){ |
| | | Database.rollback(sp); |
| | | throw de; |
| | | } catch (Exception e) { |
| | | Database.rollback(sp); |
| | | throw e; |
| | | } |
| | | } |
| | | |
| | | webservice static String checkResoult (String productLimit){ |
| | | String[] proLimit = productLimit.split(','); |
| | | String nowName = null, nowRightAsstModelNo = null; |
| | | List<String> asstModelNo = new List<String>(); |
| | | Map<String,String> asstModelNoMap = new Map<String,String>(); |
| | | List<String> asstModelNoCount = new List<String>(); |
| | | for(Integer i = 0; i < proLimit.size(); i++){ |
| | | nowName = proLimit[i]; |
| | | if( nowName.indexOf( '|') >= 0) { |
| | | nowRightAsstModelNo = nowName.subString( 0, nowName.indexOf( '|')); |
| | | } |
| | | asstModelNo.add(nowRightAsstModelNo); |
| | | } |
| | | |
| | | for(Integer i = 0; i < asstModelNo.size(); i++){ |
| | | if(asstModelNoMap.containsKey(asstModelNo[i])){ |
| | | asstModelNoCount.add(asstModelNo[i]); |
| | | }else{ |
| | | asstModelNoMap.put(asstModelNo[i], asstModelNo[i]); |
| | | } |
| | | } |
| | | if(asstModelNoCount.size() > 0){ |
| | | return '产åï¼' + asstModelNoCount + 'çæ°æ®éå¤ã'; |
| | | }else{ |
| | | return ''; |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | public with sharing class Xin_SearchVisitorPlace_Campaign { |
| | | public List<Campaign> results {get; private set;} |
| | | public Boolean getIsOverLimit() { |
| | | if (results != null && results.size() > 30) { |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | public Xin_SearchVisitorPlace_Campaign() { |
| | | this.results = new List<Campaign>(); |
| | | } |
| | | |
| | | public void search() { |
| | | // æ¤ç´¢æ¡ä»¶ãç¨æ |
| | | String query = System.currentPageReference().getParameters().get('q'); |
| | | String reporterState = System.currentPageReference().getParameters().get('r'); |
| | | String reportDate = System.currentPageReference().getParameters().get('d'); |
| | | if(query == null || query == '' || query.length() < 3) { |
| | | return; |
| | | } |
| | | this.search(query, reporterState, reportDate); |
| | | } |
| | | |
| | | //public void search(String query, String reporterState, String reportDate) { |
| | | // String nameCondition = '%' + String.escapeSingleQuotes(query.replaceAll('%', '')) + '%'; |
| | | // system.debug('cond=' + nameCondition); |
| | | |
| | | // æ¤ç´¢ |
| | | // this.results = [select Id, Name from Campaign where Name like :nameCondition order by Name limit 31]; |
| | | //} |
| | | |
| | | public void search(String query, String reporterState, String reportDate) { |
| | | List<String> qwords = new List<String>(); |
| | | List<String> qwordstmp = query.split(' '); |
| | | String nameCondition = ''; |
| | | for (String qword : qwordstmp) { |
| | | if (String.isBlank(qword) == false) { |
| | | qwords.add('%' + String.escapeSingleQuotes(qword.replaceAll('%', '')) + '%'); |
| | | nameCondition += ' and Name like \'' + qwords[qwords.size() - 1] + '\' '; |
| | | } |
| | | } |
| | | |
| | | system.debug('cond=' + nameCondition); |
| | | |
| | | String queryString = 'select Id, Name from Campaign where Id != null ' + nameCondition + 'order by Name limit 31'; |
| | | |
| | | system.debug('queryString=' + queryString); |
| | | |
| | | Map<Id, Campaign> accMap = new Map<Id, Campaign>((List<Campaign>) Database.query(queryString)); |
| | | |
| | | //String nameCondition = '%' + String.escapeSingleQuotes(query.replaceAll('%', '')) + '%'; |
| | | |
| | | this.results = accMap.values(); // values()ã®å ´åãé åºããããªãã§ã |
| | | this.results.sort(); |
| | | } |
| | | } |
| New file |
| | |
| | | public without sharing class summonsPDFController { |
| | | public Consumable_order__c coc { get; set; } |
| | | private String ESetId = ''; |
| | | private Map<String,Date> productkucun = new Map<String,Date>(); |
| | | //å»é¢ç»éåå离 |
| | | public List<ConsumableorderdetailsInfo> consumableorderdetailsRecords { get; set; } |
| | | private List<Consumable_orderdetails__c> consumableorderdetailsSelected = new List<Consumable_orderdetails__c>(); |
| | | private String userId = ''; |
| | | private String accountid = ''; |
| | | private String accountName = null; |
| | | public summonsPDFController() { |
| | | ESetId = ApexPages.currentPage().getParameters().get('esetId'); |
| | | coc = new Consumable_order__c(); |
| | | } |
| | | public void init() { |
| | | userId = UserInfo.getUserId(); |
| | | List<user> Useracc = New List<user>(); |
| | | Useracc = [select accountid from user where id =:userId]; |
| | | accountid = Useracc[0].accountid; |
| | | List<account> accountInfo = [SELECT Name FROM account WHERE id =:accountid]; |
| | | accountName = accountInfo[0].Name; |
| | | coc = [select Id,Name,SummonsStatus_c__c,Order_ForDealerText__c,ShipmentAccount__c, |
| | | Order_ForDealer__r.Name,Dealer_Info__r.Name,Order_Dealer_Info__c,Order_ForCustomerText__c, |
| | | Order_ForHospital__r.Name,SummonsForDirction__c, |
| | | Order_date__c,Order_status__c |
| | | From Consumable_order__c |
| | | Where Id =:ESetId |
| | | and Order_type__c = 'ä¼ ç¥¨']; |
| | | // 鏿æ¸ã¿ã®æç»ãåå¾ |
| | | consumableorderdetailsSelected = new List<Consumable_orderdetails__c>(); |
| | | consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>(); |
| | | if(ESetId==null||ESetId==''){ |
| | | }else{ |
| | | consumableorderdetailsSelected = [select Id, |
| | | Name, |
| | | Consumable_order__c, |
| | | Consumable_Product__c, |
| | | Consumable_Product__r.Name, |
| | | Shipment_Count__c, |
| | | Consumable_Product__r.Intra_Trade_List_RMB__c, |
| | | Consumable_Product__r.Asset_Model_No__c, |
| | | Sum_of_money__c, |
| | | Consumable_Product__r.Name__c, |
| | | Box_Piece__c |
| | | from Consumable_orderdetails__c |
| | | where Consumable_order__c = :ESetId |
| | | order by Name ]; |
| | | for (Integer i = 0; i < consumableorderdetailsSelected.size(); i++) { |
| | | consumableorderdetailsRecords.add(new ConsumableorderdetailsInfo(consumableorderdetailsSelected[i])); |
| | | } |
| | | datelimitSearch(); |
| | | for(ConsumableorderdetailsInfo bss : consumableorderdetailsRecords){ |
| | | if(productkucun.get(bss.Prod.Id) != null){ |
| | | bss.guaranteeperiod = productkucun.get(bss.Prod.Id); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | //æ¶è´¹æé |
| | | public void datelimitSearch(){ |
| | | List<Consumable_order_details2__c> orderkucun = [SELECT Id,Bar_Code__c, Name,Consumable_Product__c,Recordtypeid, |
| | | Guarantee_period_for_products__c,Sterilization_limit__c |
| | | FROM Consumable_order_details2__c |
| | | WHERE Dealer_Arrive__c = true |
| | | AND Dealer_Shipment__c = false |
| | | AND Dealer_Saled__c = false |
| | | AND Lose_Flag__c = false |
| | | AND Bar_Code__c !=null |
| | | AND Dealer_Info_text__c = :accountName |
| | | //AND Consumable_order_minor__r.Dealer_Info__c = :accountid |
| | | ORDER BY Consumable_Product__c, Sterilization_limit__c asc ]; |
| | | for(Integer i = 0 ; i< orderkucun.size();i++){ |
| | | if(productkucun.containsKey(orderkucun[i].Consumable_Product__c)){ |
| | | continue; |
| | | }else{ |
| | | productkucun.put(orderkucun[i].Consumable_Product__c, orderkucun[i].Sterilization_limit__c); |
| | | } |
| | | } |
| | | System.debug('productkucun ++++' + productkucun); |
| | | } |
| | | |
| | | class ConsumableorderdetailsInfo { |
| | | public Consumable_orderdetails__c esd { get; set; } |
| | | public Product2__c Prod { get; set; } |
| | | public Date guaranteeperiod { get; set; } |
| | | |
| | | // å·²åå¨å¤åsetæç»ç¨ |
| | | public ConsumableorderdetailsInfo(Consumable_orderdetails__c e) { |
| | | esd = e; |
| | | Prod = e.Consumable_Product__r; |
| | | } |
| | | // æåº |
| | | /*public Integer compareTo(Object compareTo) { |
| | | return null; |
| | | }*/ |
| | | } |
| | | } |
| New file |
| | |
| | | @isTest |
| | | public class summonsPDFControllerTest { |
| | | static testMethod void summonsPDFControllerTest(){ |
| | | Profile prof1 = [select Id from Profile where Name ='901_ç»éåç¤¾åºæ®éæé_2ééªè¯']; |
| | | List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売åº']; |
| | | if (rectCo.size() == 0) { |
| | | return; |
| | | } |
| | | Product2 prod01 = new Product2(Name='Test01',ProductCode='Test01',Asset_Model_No__c = 'Test01',SFDA_Status__c = 'æå¹',Dealer_special_Object__c = true); |
| | | Product2 prod02 = new Product2(Name='Test02',ProductCode='Test02',Asset_Model_No__c = 'Test02',SFDA_Status__c = 'æå¹',Dealer_special_Object__c = true); |
| | | Product2 prod03 = new Product2(Name='Test03',ProductCode='Test03',Asset_Model_No__c = 'Test03',SFDA_Status__c = 'æå¹',Dealer_special_Object__c = true); |
| | | Product2 prod04 = new Product2(Name='Test04',ProductCode='Test04',Asset_Model_No__c = 'Test04',SFDA_Status__c = 'æå¹',Dealer_special_Object__c = true); |
| | | Product2 prod05 = new Product2(Name='Test05',ProductCode='Test05',Asset_Model_No__c = 'Test05',SFDA_Status__c = 'æå¹',Dealer_special_Object__c = true); |
| | | Product2 prod06 = new Product2(Name='Test06',ProductCode='Test06',Asset_Model_No__c = 'Test06',SFDA_Status__c = 'æå¹',Dealer_special_Object__c = true); |
| | | insert new Product2[] {prod01,prod02,prod03,prod04,prod05,prod06}; |
| | | |
| | | Product2__c pro1 = new Product2__c(Name='Pro001',OT_CODE_Text__c='Test001',Product2__c = prod01.Id); |
| | | Product2__c pro2 = new Product2__c(Name='Pro002',OT_CODE_Text__c='Test002',Product2__c = prod02.Id); |
| | | Product2__c pro5 = new Product2__c(Name='Pro003',OT_CODE_Text__c='Test003',Product2__c = prod03.Id); |
| | | Product2__c pro3 = new Product2__c(Name='Pro004',OT_CODE_Text__c='Test004',Product2__c = prod04.Id); |
| | | Product2__c pro4 = new Product2__c(Name='Pro005',OT_CODE_Text__c='Test005',Product2__c = prod05.Id); |
| | | Product2__c pro6 = new Product2__c(Name='Pro006',OT_CODE_Text__c='Test006',Product2__c = prod06.Id); |
| | | insert new Product2__c[] {pro4, pro5,pro6,pro1, pro2, pro3}; |
| | | |
| | | Account myAccount1 = new Account(name='Testaccount001',Dealer_discount__c =10,RecordTypeId = rectCo[0].Id); |
| | | Account myAccount2 = new Account(name='Testaccount002',Dealer_discount__c =20,RecordTypeId = rectCo[0].Id); |
| | | insert myAccount1; |
| | | 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 = prof1.Id,TimeZoneSidKey='Asia/Shanghai', UserName='testUser@testorg.com'); |
| | | insert MyUser_Test; |
| | | system.runAs(MyUser_Test){ |
| | | |
| | | Consumable_order__c zsdTest = new Consumable_order__c(); |
| | | zsdTest.Name = 'testMing'; |
| | | zsdTest.Summons_Sale_Status__c= 'æ¹å'; |
| | | zsdTest.SummonsStatus_c__c = 'èæ¡ä¸'; |
| | | zsdTest.SummonsForDirction__c ='äºçº§ç»éåå¤è´§'; |
| | | zsdTest.Order_type__c = '订å'; |
| | | zsdTest.Dealer_Info__c = myAccount2.id; |
| | | zsdTest.RecordTypeid = System.Label.RT_ConOrder_Order; |
| | | zsdTest.Order_type__c = 'ä¼ ç¥¨'; |
| | | insert zsdTest; |
| | | Consumable_orderdetails__c Good = new Consumable_orderdetails__c(); |
| | | Good.recordtypeid= System.Label.RT_ConOrderDetail1_Order; |
| | | Good.Name = 'ZSD0001'; |
| | | Good.Consumable_Product__c = pro1.Id; |
| | | Good.Shipment_Count__c = 1; |
| | | Good.Consumable_order__c = zsdTest.id; |
| | | insert Good; |
| | | Consumable_order_details2__c Orderdet =new Consumable_order_details2__c(); |
| | | Orderdet.Name = 'OCM_01_001001'; |
| | | Orderdet.Consumable_order_minor__c = zsdTest.Id; |
| | | Orderdet.Bar_Code__c = '11111'; |
| | | Orderdet.Arrive_date__c = Date.today(); |
| | | Orderdet.Lose_Flag__c = false; |
| | | Orderdet.Send_Date__c = null; |
| | | Orderdet.Used_date__c =null; |
| | | insert Orderdet; |
| | | PageReference page = new PageReference('/apex/summonsPDF?ESetid='+zsdTest.id); |
| | | page.setRedirect(true); |
| | | System.Test.setCurrentPage(page); |
| | | summonsPDFController SDF = new summonsPDFController(); |
| | | SDF.init(); |
| | | system.assertEquals(1, SDF.consumableorderdetailsRecords.size()); |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <CustomObject xmlns="http://soap.sforce.com/2006/04/metadata"> |
| | | <actionOverrides> |
| | | <actionName>Accept</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>CancelEdit</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Clone</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Delete</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Edit</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>List</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>New</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>SaveEdit</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Tab</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>View</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <allowInChatterGroups>true</allowInChatterGroups> |
| | | <compactLayoutAssignment>SYSTEM</compactLayoutAssignment> |
| | | <deploymentStatus>Deployed</deploymentStatus> |
| | | <enableActivities>true</enableActivities> |
| | | <enableBulkApi>true</enableBulkApi> |
| | | <enableChangeDataCapture>false</enableChangeDataCapture> |
| | | <enableFeeds>false</enableFeeds> |
| | | <enableHistory>true</enableHistory> |
| | | <enableReports>true</enableReports> |
| | | <enableSearch>true</enableSearch> |
| | | <enableSharing>true</enableSharing> |
| | | <enableStreamingApi>true</enableStreamingApi> |
| | | <externalSharingModel>Private</externalSharingModel> |
| | | <fields> |
| | | <fullName>ASEActivityCode__c</fullName> |
| | | <caseSensitive>false</caseSensitive> |
| | | <externalId>false</externalId> |
| | | <label>æ´»å¨ID</label> |
| | | <length>100</length> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>true</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>ASEActivityDate__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æ´»å¨æ¥æ¥æ¥æ</label> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Date</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Account__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>å»é¢</label> |
| | | <referenceTo>Account</referenceTo> |
| | | <relationshipName>ASEAccount</relationshipName> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Activity_Purpose__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æè®¿ç®ç</label> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Picklist</type> |
| | | <valueSet> |
| | | <restricted>true</restricted> |
| | | <valueSetDefinition> |
| | | <sorted>false</sorted> |
| | | <value> |
| | | <fullName>æ°åè£
æº</fullName> |
| | | <default>false</default> |
| | | <label>æ°åè£
æº</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ
é对åº</fullName> |
| | | <default>false</default> |
| | | <label>æ
é对åº</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ç»´ä¿®è·è¿</fullName> |
| | | <default>false</default> |
| | | <label>ç»´ä¿®è·è¿</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å¤å对åº</fullName> |
| | | <default>false</default> |
| | | <label>å¤å对åº</label> |
| | | </value> |
| | | <value> |
| | | <fullName>é¢é²ä¿å
¨æ´»å¨</fullName> |
| | | <default>false</default> |
| | | <label>é¢é²ä¿å
¨æ´»å¨</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æå¡åå</fullName> |
| | | <default>false</default> |
| | | <label>æå¡åå</label> |
| | | </value> |
| | | <value> |
| | | <fullName>é宿¯æ</fullName> |
| | | <default>false</default> |
| | | <label>é宿¯æ</label> |
| | | </value> |
| | | </valueSetDefinition> |
| | | </valueSet> |
| | | </fields> |
| | | <fields> |
| | | <fullName>CustomerTel__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>å®¢æ·ææºå·ç </label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>DealerCompany__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>ReporterASE__r.Account.Name</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>ç»éåå
¬å¸</label> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Dep_Category__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>CASE(Department__r.Parent.RecordType.DeveloperName, |
| | | 'Department_Class_GI','GI', |
| | | 'Department_Class_BF','GI', |
| | | 'Department_Class_ET','GI', |
| | | 'Department_Class_GS','SP', |
| | | 'Department_Class_URO','SP', |
| | | 'Department_Class_GYN','SP', |
| | | 'Department_Class_ENT','SP', |
| | | 'Department_Class_OTH','å
¶ä»', |
| | | '' |
| | | )</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>å
å¤ç§åºå</label> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Department__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>ç§å®¤</label> |
| | | <referenceTo>Account</referenceTo> |
| | | <relationshipName>ASE1</relationshipName> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>DurationInMinutes__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æç»æ¶é´åé</label> |
| | | <precision>18</precision> |
| | | <required>false</required> |
| | | <scale>2</scale> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Number</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>LastTime__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>/* |
| | | (TIMEVALUE(activityEndTime__c) - TIMEVALUE(activityStartTime__c))/1000/60/60 |
| | | */ |
| | | DurationInMinutes__c/60</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>æç»æ¶é´</label> |
| | | <precision>18</precision> |
| | | <required>false</required> |
| | | <scale>2</scale> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Number</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>OlympusCalendar__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>Olympusæ¥å</label> |
| | | <referenceTo>OlympusCalendar__c</referenceTo> |
| | | <relationshipLabel>ASE工使´»å¨</relationshipLabel> |
| | | <relationshipName>ASE001</relationshipName> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Purpose_Type__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æ´»å¨åºå</label> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Picklist</type> |
| | | <valueSet> |
| | | <controllingField>Activity_Purpose__c</controllingField> |
| | | <restricted>true</restricted> |
| | | <valueSetDefinition> |
| | | <sorted>false</sorted> |
| | | <value> |
| | | <fullName>设å¤å®è£
</fullName> |
| | | <default>false</default> |
| | | <label>设å¤å®è£
</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ°åè£
æºå¹è®</fullName> |
| | | <default>false</default> |
| | | <label>æ°åè£
æºå¹è®</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ°åè£
æºè·å°</fullName> |
| | | <default>false</default> |
| | | <label>æ°åè£
æºè·å°</label> |
| | | </value> |
| | | <value> |
| | | <fullName>åæ¶ç¡®è®¤ä¹¦</fullName> |
| | | <default>false</default> |
| | | <label>åæ¶ç¡®è®¤ä¹¦</label> |
| | | </value> |
| | | <value> |
| | | <fullName>è¿ç¨å¯¹åº</fullName> |
| | | <default>false</default> |
| | | <label>è¿ç¨å¯¹åº</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ç°åºæ
éææ¥</fullName> |
| | | <default>false</default> |
| | | <label>ç°åºæ
éææ¥</label> |
| | | </value> |
| | | <value> |
| | | <fullName>åæ
é设å¤</fullName> |
| | | <default>false</default> |
| | | <label>åæ
é设å¤</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ¥ä»·è·è¿</fullName> |
| | | <default>false</default> |
| | | <label>æ¥ä»·è·è¿</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ä¿®ç宿åå½è¿</fullName> |
| | | <default>false</default> |
| | | <label>ä¿®ç宿åå½è¿</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ç»´ä¿®åæ¬¾</fullName> |
| | | <default>false</default> |
| | | <label>ç»´ä¿®åæ¬¾</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å¤åè£
æº</fullName> |
| | | <default>false</default> |
| | | <label>å¤åè£
æº</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å¤ååæ¶</fullName> |
| | | <default>false</default> |
| | | <label>å¤ååæ¶</label> |
| | | </value> |
| | | <value> |
| | | <fullName>设å¤ç¹æ£</fullName> |
| | | <default>false</default> |
| | | <label>设å¤ç¹æ£</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å®åè·å°</fullName> |
| | | <default>false</default> |
| | | <label>å®åè·å°</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ
éé¢é²å¹è®</fullName> |
| | | <default>false</default> |
| | | <label>æ
éé¢é²å¹è®</label> |
| | | </value> |
| | | <value> |
| | | <fullName>询价åè°</fullName> |
| | | <default>false</default> |
| | | <label>询价åè°</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ç¾çº¦åå¤</fullName> |
| | | <default>false</default> |
| | | <label>ç¾çº¦åå¤</label> |
| | | </value> |
| | | <value> |
| | | <fullName>åå忬¾</fullName> |
| | | <default>false</default> |
| | | <label>åå忬¾</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å®åå¨è¯¢æ¯æ</fullName> |
| | | <default>false</default> |
| | | <label>å®åå¨è¯¢æ¯æ</label> |
| | | </value> |
| | | <value> |
| | | <fullName>产åè¯ç¨æ¯æ</fullName> |
| | | <default>false</default> |
| | | <label>产åè¯ç¨æ¯æ</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ææ /åè°æ¯æ</fullName> |
| | | <default>false</default> |
| | | <label>ææ /åè°æ¯æ</label> |
| | | </value> |
| | | </valueSetDefinition> |
| | | <valueSettings> |
| | | <controllingFieldValue>æ°åè£
æº</controllingFieldValue> |
| | | <valueName>设å¤å®è£
</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>æ°åè£
æº</controllingFieldValue> |
| | | <valueName>æ°åè£
æºå¹è®</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>æ°åè£
æº</controllingFieldValue> |
| | | <valueName>æ°åè£
æºè·å°</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>æ°åè£
æº</controllingFieldValue> |
| | | <valueName>åæ¶ç¡®è®¤ä¹¦</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>æ
é对åº</controllingFieldValue> |
| | | <valueName>è¿ç¨å¯¹åº</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>æ
é对åº</controllingFieldValue> |
| | | <valueName>ç°åºæ
éææ¥</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç»´ä¿®è·è¿</controllingFieldValue> |
| | | <valueName>åæ
é设å¤</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç»´ä¿®è·è¿</controllingFieldValue> |
| | | <valueName>æ¥ä»·è·è¿</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç»´ä¿®è·è¿</controllingFieldValue> |
| | | <valueName>ä¿®ç宿åå½è¿</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç»´ä¿®è·è¿</controllingFieldValue> |
| | | <valueName>ç»´ä¿®åæ¬¾</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>å¤å对åº</controllingFieldValue> |
| | | <valueName>å¤åè£
æº</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>å¤å对åº</controllingFieldValue> |
| | | <valueName>å¤ååæ¶</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>é¢é²ä¿å
¨æ´»å¨</controllingFieldValue> |
| | | <valueName>设å¤ç¹æ£</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>é¢é²ä¿å
¨æ´»å¨</controllingFieldValue> |
| | | <valueName>å®åè·å°</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>é¢é²ä¿å
¨æ´»å¨</controllingFieldValue> |
| | | <valueName>æ
éé¢é²å¹è®</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>æå¡åå</controllingFieldValue> |
| | | <valueName>询价åè°</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>æå¡åå</controllingFieldValue> |
| | | <valueName>ç¾çº¦åå¤</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>æå¡åå</controllingFieldValue> |
| | | <valueName>åå忬¾</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>é宿¯æ</controllingFieldValue> |
| | | <valueName>å®åå¨è¯¢æ¯æ</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>é宿¯æ</controllingFieldValue> |
| | | <valueName>产åè¯ç¨æ¯æ</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>é宿¯æ</controllingFieldValue> |
| | | <valueName>ææ /åè°æ¯æ</valueName> |
| | | </valueSettings> |
| | | </valueSet> |
| | | </fields> |
| | | <fields> |
| | | <fullName>ReporterASE__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>æ¥åè
(è系人)</label> |
| | | <referenceTo>Contact</referenceTo> |
| | | <relationshipLabel>ASE工使´»å¨</relationshipLabel> |
| | | <relationshipName>ReporterASE</relationshipName> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Reporter_Name__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>/* |
| | | Reporter__r.Alias |
| | | Reporter__r.Name__c |
| | | */ |
| | | ReporterASE__r.FullName__c</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>æ¥åè
</label> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Reporter_Province__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>/* |
| | | TEXT(Reporter__r.Province__c) |
| | | */ |
| | | ReporterASE__r.Account.State_Master__r.Name</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>æ¥åè
ã»ç</label> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Reporter_Salesdepartment__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>/* |
| | | Reporter__r.Salesdepartment__c |
| | | */ |
| | | ReporterASE__r.Account.State_Master__r.Department__c</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>æ¥åè
ã»æ¬é¨</label> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Reporter__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>æ¥åè
</label> |
| | | <referenceTo>User</referenceTo> |
| | | <relationshipName>ASE</relationshipName> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>ServiceItem__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>ä»»å¡é¡¹ç®</label> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Picklist</type> |
| | | <valueSet> |
| | | <valueSetDefinition> |
| | | <sorted>false</sorted> |
| | | <value> |
| | | <fullName>ä¸é¨ä»»å¡</fullName> |
| | | <default>false</default> |
| | | <label>ä¸é¨ä»»å¡</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ¥ä»·ä»»å¡</fullName> |
| | | <default>false</default> |
| | | <label>æ¥ä»·ä»»å¡</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å½è¿ä»»å¡</fullName> |
| | | <default>false</default> |
| | | <label>å½è¿ä»»å¡</label> |
| | | </value> |
| | | <value> |
| | | <fullName>工使´»å¨</fullName> |
| | | <default>false</default> |
| | | <label>工使´»å¨</label> |
| | | </value> |
| | | </valueSetDefinition> |
| | | </valueSet> |
| | | </fields> |
| | | <fields> |
| | | <fullName>StrategicDepartment__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>æç¥ç§å®¤</label> |
| | | <referenceTo>Account</referenceTo> |
| | | <relationshipName>ASE</relationshipName> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>UserName__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>客æ·å§å</label> |
| | | <length>50</length> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>VisitDistinction__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æè®¿åºå</label> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Picklist</type> |
| | | <valueSet> |
| | | <restricted>true</restricted> |
| | | <valueSetDefinition> |
| | | <sorted>false</sorted> |
| | | <value> |
| | | <fullName>ç¨æ·æè®¿</fullName> |
| | | <default>false</default> |
| | | <label>ç¨æ·æè®¿</label> |
| | | </value> |
| | | </valueSetDefinition> |
| | | </valueSet> |
| | | </fields> |
| | | <fields> |
| | | <fullName>VisitStaff__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>访é®å¯¹è±¡</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>WorkDesc__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>å·¥ä½æè¿°</label> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>TextArea</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>WorkPlace__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>å·¥ä½åºæ</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Youbi__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>IF(OlympusCalendar__r.IsWorkDay__c = 1,"工使¥","")</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>æ¯å¦å·¥ä½æ¥</label> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>activityEndTime__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æ´»å¨ç»ææ¶é´</label> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>DateTime</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>activityStartTime__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æ´»å¨å¼å§æ¶é´</label> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>DateTime</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>visited_date_Monthly__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Case(text(month(ASEActivityDate__c)), |
| | | "10",mid(text(Year(ASEActivityDate__c)),3,2)&"å¹´"&text(month(ASEActivityDate__c))&"æ", |
| | | "11",mid(text(Year(ASEActivityDate__c)),3,2)&"å¹´"&text(month(ASEActivityDate__c))&"æ", |
| | | "12",mid(text(Year(ASEActivityDate__c)),3,2)&"å¹´"&text(month(ASEActivityDate__c))&"æ", |
| | | mid(text(Year(ASEActivityDate__c)),3,2)&"å¹´0"&text(month(ASEActivityDate__c))&"æ")</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>æ¥åæ</label> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <label>ASE工使´»å¨</label> |
| | | <listViews> |
| | | <fullName>All</fullName> |
| | | <columns>NAME</columns> |
| | | <columns>Activity_Purpose__c</columns> |
| | | <columns>Purpose_Type__c</columns> |
| | | <columns>Department__c</columns> |
| | | <columns>activityStartTime__c</columns> |
| | | <columns>activityEndTime__c</columns> |
| | | <filterScope>Everything</filterScope> |
| | | <label>å
¨é¨</label> |
| | | <language>zh_CN</language> |
| | | </listViews> |
| | | <nameField> |
| | | <displayFormat>{YYYY}{MM}-{00000000}</displayFormat> |
| | | <label>æ¥æ¥NO.</label> |
| | | <trackHistory>false</trackHistory> |
| | | <type>AutoNumber</type> |
| | | </nameField> |
| | | <searchLayouts/> |
| | | <sharingModel>ReadWrite</sharingModel> |
| | | <visibility>Public</visibility> |
| | | </CustomObject> |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <CustomObject xmlns="http://soap.sforce.com/2006/04/metadata"> |
| | | <actionOverrides> |
| | | <actionName>CancelEdit</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>ComposeGmail</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>LogCall</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>MailMerge</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>RequestUpdate</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>SaveEdit</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>SendEmail</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>ViewAll</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <enableFeeds>false</enableFeeds> |
| | | <fields> |
| | | <fullName>ActivityDateModifiedDate__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æ¥å䏿å¨å°å«ç天æ¶å¡«æä½æ¥/å¤é¨APIåææ¶å¡«åææ¥</label> |
| | | <required>false</required> |
| | | <type>Date</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Activity_PurposeEscFSE__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æè®¿ç®ç(FSEå¤)</label> |
| | | <required>false</required> |
| | | <type>Picklist</type> |
| | | <valueSet> |
| | | <controllingField>Activity_Type2__c</controllingField> |
| | | <restricted>true</restricted> |
| | | <valueSetDefinition> |
| | | <sorted>false</sorted> |
| | | <value> |
| | | <fullName>ä¼å</fullName> |
| | | <default>false</default> |
| | | <label>ä¼å</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ç§»å¨</fullName> |
| | | <default>false</default> |
| | | <label>ç§»å¨</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ä¼è®®</fullName> |
| | | <default>false</default> |
| | | <label>ä¼è®®</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å¹è®</fullName> |
| | | <default>false</default> |
| | | <label>å¹è®</label> |
| | | </value> |
| | | <value> |
| | | <fullName>äºå¡æ§å·¥ä½</fullName> |
| | | <default>false</default> |
| | | <label>äºå¡æ§å·¥ä½</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ä¼è®®å¯¹åº</fullName> |
| | | <default>false</default> |
| | | <label>ä¼è®®å¯¹åº</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ä¸å¡å¯¹åº</fullName> |
| | | <default>false</default> |
| | | <label>ä¸å¡å¯¹åº</label> |
| | | </value> |
| | | <value> |
| | | <fullName>åå·¥å¹è®</fullName> |
| | | <default>false</default> |
| | | <label>åå·¥å¹è®</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å
¶ä»</fullName> |
| | | <default>false</default> |
| | | <label>å
¶ä»</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ä¿¡æ¯æ¶é</fullName> |
| | | <default>false</default> |
| | | <label>ä¿¡æ¯æ¶é</label> |
| | | </value> |
| | | <value> |
| | | <fullName>询价ææ</fullName> |
| | | <default>false</default> |
| | | <label>询价ææ</label> |
| | | </value> |
| | | <value> |
| | | <fullName>询价æ¨è¿</fullName> |
| | | <default>false</default> |
| | | <label>询价æ¨è¿</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æå¡æ¯æ</fullName> |
| | | <default>false</default> |
| | | <label>æå¡æ¯æ</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ET APPæ´»å¨</fullName> |
| | | <default>false</default> |
| | | <label>ET APPæ´»å¨</label> |
| | | </value> |
| | | <value> |
| | | <fullName>宿æ¥å书忾</fullName> |
| | | <default>false</default> |
| | | <isActive>false</isActive> |
| | | <label>宿æ¥å书忾</label> |
| | | </value> |
| | | </valueSetDefinition> |
| | | <valueSettings> |
| | | <controllingFieldValue>社å
æ´»å</controllingFieldValue> |
| | | <valueName>ä¼è®®</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>社å
æ´»å</controllingFieldValue> |
| | | <valueName>å¹è®</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>社å
æ´»å</controllingFieldValue> |
| | | <valueName>äºå¡æ§å·¥ä½</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>社å¤ã¤ãã³ã</controllingFieldValue> |
| | | <valueName>ä¼è®®å¯¹åº</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç§»å</controllingFieldValue> |
| | | <valueName>ç§»å¨</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç
é¢</controllingFieldValue> |
| | | <valueName>ä¿¡æ¯æ¶é</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç
é¢</controllingFieldValue> |
| | | <valueName>询价ææ</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç
é¢</controllingFieldValue> |
| | | <valueName>询价æ¨è¿</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç
é¢</controllingFieldValue> |
| | | <valueName>æå¡æ¯æ</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç
é¢</controllingFieldValue> |
| | | <valueName>ET APPæ´»å¨</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>販売åº</controllingFieldValue> |
| | | <valueName>ä¸å¡å¯¹åº</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>販売åº</controllingFieldValue> |
| | | <valueName>åå·¥å¹è®</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>販売åº</controllingFieldValue> |
| | | <valueName>å
¶ä»</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>伿</controllingFieldValue> |
| | | <valueName>ä¼å</valueName> |
| | | </valueSettings> |
| | | </valueSet> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Activity_PurposeFSE__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æè®¿ç®ç(FSE)</label> |
| | | <required>false</required> |
| | | <type>Picklist</type> |
| | | <valueSet> |
| | | <controllingField>Activity_Type2__c</controllingField> |
| | | <restricted>true</restricted> |
| | | <valueSetDefinition> |
| | | <sorted>false</sorted> |
| | | <value> |
| | | <fullName>ä¼å</fullName> |
| | | <default>false</default> |
| | | <label>ä¼å</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ç§»å¨</fullName> |
| | | <default>false</default> |
| | | <label>ç§»å¨</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ä¼è®®</fullName> |
| | | <default>false</default> |
| | | <label>ä¼è®®</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å¹è®</fullName> |
| | | <default>false</default> |
| | | <label>å¹è®</label> |
| | | </value> |
| | | <value> |
| | | <fullName>äºå¡æ§å·¥ä½</fullName> |
| | | <default>false</default> |
| | | <label>äºå¡æ§å·¥ä½</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ
éå¤ç</fullName> |
| | | <default>false</default> |
| | | <label>æ
éå¤ç</label> |
| | | </value> |
| | | <value> |
| | | <fullName>è£
æº</fullName> |
| | | <default>false</default> |
| | | <label>è£
æº</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ç°åºæå¡</fullName> |
| | | <default>false</default> |
| | | <label>ç°åºæå¡</label> |
| | | </value> |
| | | <value> |
| | | <fullName>客æ·å¹è®</fullName> |
| | | <default>false</default> |
| | | <label>客æ·å¹è®</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ç»´ä¿®è·è¿</fullName> |
| | | <default>false</default> |
| | | <label>ç»´ä¿®è·è¿</label> |
| | | </value> |
| | | <value> |
| | | <fullName>é宿¯æ</fullName> |
| | | <default>false</default> |
| | | <label>é宿¯æ</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ååæ¨å¹¿</fullName> |
| | | <default>false</default> |
| | | <label>ååæ¨å¹¿</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ä¸å¡åè°</fullName> |
| | | <default>false</default> |
| | | <label>ä¸å¡åè°</label> |
| | | </value> |
| | | <value> |
| | | <fullName>åå·¥å¹å
»</fullName> |
| | | <default>false</default> |
| | | <label>åå·¥å¹å
»</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å
¶ä»</fullName> |
| | | <default>false</default> |
| | | <label>å
¶ä»</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ä¼è®®å¯¹åº</fullName> |
| | | <default>false</default> |
| | | <label>ä¼è®®å¯¹åº</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å
¬å¸å¹è®</fullName> |
| | | <default>false</default> |
| | | <label>å
¬å¸å¹è®</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ET APPæ´»å¨</fullName> |
| | | <default>false</default> |
| | | <label>ET APPæ´»å¨</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æå¡åå</fullName> |
| | | <default>false</default> |
| | | <label>æå¡åå</label> |
| | | </value> |
| | | <value> |
| | | <fullName>宿æ¥å书忾</fullName> |
| | | <default>false</default> |
| | | <isActive>false</isActive> |
| | | <label>宿æ¥å书忾</label> |
| | | </value> |
| | | </valueSetDefinition> |
| | | <valueSettings> |
| | | <controllingFieldValue>社å
æ´»å</controllingFieldValue> |
| | | <valueName>ä¼è®®</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>社å
æ´»å</controllingFieldValue> |
| | | <valueName>å¹è®</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>社å
æ´»å</controllingFieldValue> |
| | | <valueName>äºå¡æ§å·¥ä½</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>社å
æ´»å</controllingFieldValue> |
| | | <valueName>æ
éå¤ç</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>社å
æ´»å</controllingFieldValue> |
| | | <valueName>å
¬å¸å¹è®</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>社å¤ã¤ãã³ã</controllingFieldValue> |
| | | <valueName>ä¼è®®å¯¹åº</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç§»å</controllingFieldValue> |
| | | <valueName>ç§»å¨</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç
é¢</controllingFieldValue> |
| | | <valueName>è£
æº</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç
é¢</controllingFieldValue> |
| | | <valueName>ç°åºæå¡</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç
é¢</controllingFieldValue> |
| | | <valueName>客æ·å¹è®</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç
é¢</controllingFieldValue> |
| | | <valueName>ç»´ä¿®è·è¿</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç
é¢</controllingFieldValue> |
| | | <valueName>é宿¯æ</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç
é¢</controllingFieldValue> |
| | | <valueName>ååæ¨å¹¿</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç
é¢</controllingFieldValue> |
| | | <valueName>ET APPæ´»å¨</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç
é¢</controllingFieldValue> |
| | | <valueName>æå¡åå</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>販売åº</controllingFieldValue> |
| | | <valueName>ä¸å¡åè°</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>販売åº</controllingFieldValue> |
| | | <valueName>åå·¥å¹å
»</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>販売åº</controllingFieldValue> |
| | | <valueName>å
¶ä»</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>伿</controllingFieldValue> |
| | | <valueName>ä¼å</valueName> |
| | | </valueSettings> |
| | | </valueSet> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Activity_Purpose__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æè®¿ç®ç</label> |
| | | <required>false</required> |
| | | <type>Picklist</type> |
| | | <valueSet> |
| | | <restricted>true</restricted> |
| | | <valueSetDefinition> |
| | | <sorted>false</sorted> |
| | | <value> |
| | | <fullName>ä¼å</fullName> |
| | | <default>false</default> |
| | | <label>ä¼å</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ç§»å¨</fullName> |
| | | <default>false</default> |
| | | <label>ç§»å¨</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ä¼è®®</fullName> |
| | | <default>false</default> |
| | | <label>ä¼è®®</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å¹è®</fullName> |
| | | <default>false</default> |
| | | <label>å¹è®</label> |
| | | </value> |
| | | <value> |
| | | <fullName>äºå¡æ§å·¥ä½</fullName> |
| | | <default>false</default> |
| | | <label>äºå¡æ§å·¥ä½</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ
éå¤ç</fullName> |
| | | <default>false</default> |
| | | <label>æ
éå¤ç</label> |
| | | </value> |
| | | <value> |
| | | <fullName>è£
æº</fullName> |
| | | <default>false</default> |
| | | <label>è£
æº</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ç°åºæå¡</fullName> |
| | | <default>false</default> |
| | | <label>ç°åºæå¡</label> |
| | | </value> |
| | | <value> |
| | | <fullName>客æ·å¹è®</fullName> |
| | | <default>false</default> |
| | | <label>客æ·å¹è®</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ç»´ä¿®è·è¿</fullName> |
| | | <default>false</default> |
| | | <label>ç»´ä¿®è·è¿</label> |
| | | </value> |
| | | <value> |
| | | <fullName>é宿¯æ</fullName> |
| | | <default>false</default> |
| | | <label>é宿¯æ</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ååæ¨å¹¿</fullName> |
| | | <default>false</default> |
| | | <label>ååæ¨å¹¿</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ä¸å¡åè°</fullName> |
| | | <default>false</default> |
| | | <label>ä¸å¡åè°</label> |
| | | </value> |
| | | <value> |
| | | <fullName>åå·¥å¹å
»</fullName> |
| | | <default>false</default> |
| | | <label>åå·¥å¹å
»</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ä¼è®®å¯¹åº</fullName> |
| | | <default>false</default> |
| | | <label>ä¼è®®å¯¹åº</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ä¸å¡å¯¹åº</fullName> |
| | | <default>false</default> |
| | | <label>ä¸å¡å¯¹åº</label> |
| | | </value> |
| | | <value> |
| | | <fullName>åå·¥å¹è®</fullName> |
| | | <default>false</default> |
| | | <label>åå·¥å¹è®</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å
¶ä»</fullName> |
| | | <default>false</default> |
| | | <label>å
¶ä»</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ä¿¡æ¯æ¶é</fullName> |
| | | <default>false</default> |
| | | <label>ä¿¡æ¯æ¶é</label> |
| | | </value> |
| | | <value> |
| | | <fullName>询价ææ</fullName> |
| | | <default>false</default> |
| | | <label>询价ææ</label> |
| | | </value> |
| | | <value> |
| | | <fullName>询价æ¨è¿</fullName> |
| | | <default>false</default> |
| | | <label>询价æ¨è¿</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æå¡æ¯æ</fullName> |
| | | <default>false</default> |
| | | <label>æå¡æ¯æ</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å
¬å¸å¹è®</fullName> |
| | | <default>false</default> |
| | | <label>å
¬å¸å¹è®</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ET APPæ´»å¨</fullName> |
| | | <default>false</default> |
| | | <label>ET APPæ´»å¨</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æå¡åå</fullName> |
| | | <default>false</default> |
| | | <label>æå¡åå</label> |
| | | </value> |
| | | </valueSetDefinition> |
| | | </valueSet> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Activity_Type2__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>訪ååºå</label> |
| | | <required>false</required> |
| | | <type>Picklist</type> |
| | | <valueSet> |
| | | <valueSetDefinition> |
| | | <sorted>false</sorted> |
| | | <value> |
| | | <fullName>ç
é¢</fullName> |
| | | <default>false</default> |
| | | <label>ç
é¢</label> |
| | | </value> |
| | | <value> |
| | | <fullName>販売åº</fullName> |
| | | <default>false</default> |
| | | <label>販売åº</label> |
| | | </value> |
| | | <value> |
| | | <fullName>社å
æ´»å</fullName> |
| | | <default>false</default> |
| | | <label>社å
æ´»å</label> |
| | | </value> |
| | | <value> |
| | | <fullName>社å¤ã¤ãã³ã</fullName> |
| | | <default>false</default> |
| | | <label>社å¤ã¤ãã³ã</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ç§»å</fullName> |
| | | <default>false</default> |
| | | <label>ç§»å</label> |
| | | </value> |
| | | <value> |
| | | <fullName>伿</fullName> |
| | | <default>false</default> |
| | | <label>伿</label> |
| | | </value> |
| | | </valueSetDefinition> |
| | | </valueSet> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Alias__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Owner:User.Alias</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>Alias</label> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Answer__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>åçå
容</label> |
| | | <required>false</required> |
| | | <type>TextArea</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>AppCdId__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>AppCdId</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>BeforeActivityDate__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>BeforeActivityDate</label> |
| | | <required>false</required> |
| | | <type>Date</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>CreateEvent__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>HYPERLINK("/apex/OFSCalendar?wv=1&w=90&h=90", "â ")</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>+计å</label> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>CreatedDate__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>DATEVALUE(CreatedDate)</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>å建æ¥</label> |
| | | <required>false</required> |
| | | <type>Date</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Edit__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>HYPERLINK("/apex/OFSCommentpopup?id="+ Id +"&table=task&api=Request_staff__c,Alias__c,Subject,CreatedDate__c,ActivityDate,Description,Follow_up_situation__c,Task_link__c&rw=r,r,r,r,r,r,w,r&wv=1&md=1&w=70&h=70", "â ")</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>ç¼å¶</label> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>EndDateTime_org__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>EndDateTime_org</label> |
| | | <required>false</required> |
| | | <type>DateTime</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>EventC_ID__c</fullName> |
| | | <caseSensitive>true</caseSensitive> |
| | | <externalId>true</externalId> |
| | | <label>EventC_ID</label> |
| | | <length>18</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>true</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>EventC__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>æ¥åä¸è§</label> |
| | | <referenceTo>Event__c</referenceTo> |
| | | <relationshipLabel>æ´»å¨</relationshipLabel> |
| | | <relationshipName>Eventc</relationshipName> |
| | | <required>false</required> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>EventStatus__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>äºä»¶ç¶æ</label> |
| | | <required>false</required> |
| | | <type>Picklist</type> |
| | | <valueSet> |
| | | <restricted>true</restricted> |
| | | <valueSetDefinition> |
| | | <sorted>false</sorted> |
| | | <value> |
| | | <fullName>01 åé
</fullName> |
| | | <default>false</default> |
| | | <label>01 åé
</label> |
| | | </value> |
| | | <value> |
| | | <fullName>02 æ¥å</fullName> |
| | | <default>false</default> |
| | | <label>02 æ¥å</label> |
| | | </value> |
| | | <value> |
| | | <fullName>03 宿</fullName> |
| | | <default>false</default> |
| | | <label>03 宿</label> |
| | | </value> |
| | | <value> |
| | | <fullName>04 åæ¶</fullName> |
| | | <default>false</default> |
| | | <label>04 åæ¶</label> |
| | | </value> |
| | | <value> |
| | | <fullName>05 å»¶æ</fullName> |
| | | <default>false</default> |
| | | <label>05 å»¶æ</label> |
| | | </value> |
| | | <value> |
| | | <fullName>06 å
³é</fullName> |
| | | <default>false</default> |
| | | <label>06 å
³é</label> |
| | | </value> |
| | | <value> |
| | | <fullName>07 æªæ§è¡</fullName> |
| | | <default>false</default> |
| | | <label>07 æªæ§è¡</label> |
| | | </value> |
| | | </valueSetDefinition> |
| | | </valueSet> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Follow_up_situation__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>课é¢è·è¿æ
åµ</label> |
| | | <required>false</required> |
| | | <type>TextArea</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>HPArriveFlg__c</fullName> |
| | | <defaultValue>false</defaultValue> |
| | | <externalId>false</externalId> |
| | | <label>HPå°è¾¾flg</label> |
| | | <type>Checkbox</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>HPLeaveFlg__c</fullName> |
| | | <defaultValue>false</defaultValue> |
| | | <externalId>false</externalId> |
| | | <label>HP离å¼flg</label> |
| | | <type>Checkbox</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Impression__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>é話è
ã®æè§¦</label> |
| | | <required>false</required> |
| | | <type>Picklist</type> |
| | | <valueSet> |
| | | <valueSetDefinition> |
| | | <sorted>false</sorted> |
| | | <value> |
| | | <fullName>æè¬ããã</fullName> |
| | | <default>false</default> |
| | | <label>æè¬ããã</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ¯è¼ç好æè§¦</fullName> |
| | | <default>false</default> |
| | | <label>æ¯è¼ç好æè§¦</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ®é</fullName> |
| | | <default>false</default> |
| | | <label>æ®é</label> |
| | | </value> |
| | | <value> |
| | | <fullName>䏿º</fullName> |
| | | <default>false</default> |
| | | <label>䏿º</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ãæã</fullName> |
| | | <default>false</default> |
| | | <label>ãæã</label> |
| | | </value> |
| | | </valueSetDefinition> |
| | | </valueSet> |
| | | </fields> |
| | | <fields> |
| | | <fullName>IsScheduledCount__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>if ( isScheduled__c = true, 1, 0)</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>è®¡åæ°</label> |
| | | <precision>18</precision> |
| | | <required>false</required> |
| | | <scale>0</scale> |
| | | <type>Number</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Main_Visit_Location__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>主ãªè¨ªåå ´æ</label> |
| | | <required>false</required> |
| | | <type>Picklist</type> |
| | | <valueSet> |
| | | <valueSetDefinition> |
| | | <sorted>false</sorted> |
| | | <value> |
| | | <fullName>å
è¦é¡å®¤</fullName> |
| | | <default>false</default> |
| | | <label>å
è¦é¡å®¤</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æè¡å®¤</fullName> |
| | | <default>false</default> |
| | | <label>æè¡å®¤</label> |
| | | </value> |
| | | <value> |
| | | <fullName>X-Ray室</fullName> |
| | | <default>false</default> |
| | | <label>X-Ray室</label> |
| | | </value> |
| | | <value> |
| | | <fullName>è¨å課</fullName> |
| | | <default>false</default> |
| | | <label>è¨å課</label> |
| | | </value> |
| | | <value> |
| | | <fullName>夿¥</fullName> |
| | | <default>false</default> |
| | | <label>夿¥</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ç
æ£</fullName> |
| | | <default>false</default> |
| | | <label>ç
æ£</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ãã®ä»</fullName> |
| | | <default>false</default> |
| | | <label>ãã®ä»</label> |
| | | </value> |
| | | </valueSetDefinition> |
| | | </valueSet> |
| | | </fields> |
| | | <fields> |
| | | <fullName>NextEventC_ID__c</fullName> |
| | | <externalId>true</externalId> |
| | | <label>NextEventC_ID</label> |
| | | <length>18</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Notes_AllDay_Flg__c</fullName> |
| | | <defaultValue>false</defaultValue> |
| | | <externalId>false</externalId> |
| | | <label>Notes_AllDay_Flg</label> |
| | | <type>Checkbox</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>OPDPlan_Flag__c</fullName> |
| | | <defaultValue>false</defaultValue> |
| | | <externalId>false</externalId> |
| | | <label>OPD计å</label> |
| | | <type>Checkbox</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Opd_Plan_ImplementDate__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Opd_Plan__r.OPDPlan_ImplementDate__c</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>OPD计å宿½æ¥æ</label> |
| | | <required>false</required> |
| | | <type>Date</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Opd_Plan__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>OPD计å</label> |
| | | <referenceTo>OPDPlan__c</referenceTo> |
| | | <relationshipLabel>OPD计å</relationshipLabel> |
| | | <relationshipName>Opd_Plan</relationshipName> |
| | | <required>false</required> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>PdfDocumentId__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>PdfDocumentId</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>PersonalEvaluation_ID__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>个人è¯ä»·_ID</label> |
| | | <length>18</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>PlanProdDetail__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>计ååºåå¤åä¿¡æ¯</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Product_discription__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>RequestOpp__r.Product_discription__c</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>产åé
ç½®æè¿°</label> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Purpose_TypeEscFSE__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æ´»å¨åºåFSEå¤</label> |
| | | <required>false</required> |
| | | <type>Picklist</type> |
| | | <valueSet> |
| | | <controllingField>Activity_PurposeEscFSE__c</controllingField> |
| | | <restricted>true</restricted> |
| | | <valueSetDefinition> |
| | | <sorted>false</sorted> |
| | | <value> |
| | | <fullName>ä¼å</fullName> |
| | | <default>false</default> |
| | | <label>ä¼å</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ç§»å¨</fullName> |
| | | <default>false</default> |
| | | <label>ç§»å¨</label> |
| | | </value> |
| | | <value> |
| | | <fullName>äºå¡æ§å·¥ä½</fullName> |
| | | <default>false</default> |
| | | <label>äºå¡æ§å·¥ä½</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ææ å¯¹åº</fullName> |
| | | <default>false</default> |
| | | <label>ææ å¯¹åº</label> |
| | | </value> |
| | | <value> |
| | | <fullName>åºå确认</fullName> |
| | | <default>false</default> |
| | | <label>åºå确认</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ä¾ä¼</fullName> |
| | | <default>false</default> |
| | | <label>ä¾ä¼</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å¹è®</fullName> |
| | | <default>false</default> |
| | | <label>å¹è®</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å
¶ä»</fullName> |
| | | <default>false</default> |
| | | <label>å
¶ä»</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ¥å¸¸æè®¿,ä¿¡æ¯æ¶é</fullName> |
| | | <default>false</default> |
| | | <label>æ¥å¸¸æè®¿,ä¿¡æ¯æ¶é</label> |
| | | </value> |
| | | <value> |
| | | <fullName>OPD/SIS</fullName> |
| | | <default>false</default> |
| | | <label>OPD/SIS</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ä¼è®®å¯¹åº</fullName> |
| | | <default>false</default> |
| | | <label>ä¼è®®å¯¹åº</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ææ¡</fullName> |
| | | <default>false</default> |
| | | <label>ææ¡</label> |
| | | </value> |
| | | <value> |
| | | <fullName>åè§èå¯</fullName> |
| | | <default>false</default> |
| | | <label>åè§èå¯</label> |
| | | </value> |
| | | <value> |
| | | <fullName>询价è·è¿</fullName> |
| | | <default>false</default> |
| | | <label>询价è·è¿</label> |
| | | </value> |
| | | <value> |
| | | <fullName>åè°ç¾çº¦</fullName> |
| | | <default>false</default> |
| | | <label>åè°ç¾çº¦</label> |
| | | </value> |
| | | <value> |
| | | <fullName>åéèµææå¤å</fullName> |
| | | <default>false</default> |
| | | <label>åéèµææå¤å</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ
éæè¯å¯¹åº</fullName> |
| | | <default>false</default> |
| | | <label>æ
éæè¯å¯¹åº</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ET APPæ´»å¨</fullName> |
| | | <default>false</default> |
| | | <label>ET APPæ´»å¨</label> |
| | | </value> |
| | | <value> |
| | | <fullName>宿æ¥å书忾</fullName> |
| | | <default>false</default> |
| | | <isActive>false</isActive> |
| | | <label>宿æ¥å书忾</label> |
| | | </value> |
| | | </valueSetDefinition> |
| | | <valueSettings> |
| | | <controllingFieldValue>询价ææ</controllingFieldValue> |
| | | <controllingFieldValue>询价æ¨è¿</controllingFieldValue> |
| | | <valueName>OPD/SIS</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>询价ææ</controllingFieldValue> |
| | | <controllingFieldValue>询价æ¨è¿</controllingFieldValue> |
| | | <controllingFieldValue>ä¼è®®å¯¹åº</controllingFieldValue> |
| | | <valueName>ä¼è®®å¯¹åº</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>询价ææ</controllingFieldValue> |
| | | <valueName>ææ¡</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>询价æ¨è¿</controllingFieldValue> |
| | | <controllingFieldValue>ä¸å¡å¯¹åº</controllingFieldValue> |
| | | <valueName>ææ å¯¹åº</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>询价æ¨è¿</controllingFieldValue> |
| | | <valueName>åè§èå¯</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>询价æ¨è¿</controllingFieldValue> |
| | | <controllingFieldValue>ä¸å¡å¯¹åº</controllingFieldValue> |
| | | <valueName>询价è·è¿</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>询价æ¨è¿</controllingFieldValue> |
| | | <valueName>åè°ç¾çº¦</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>æå¡æ¯æ</controllingFieldValue> |
| | | <valueName>åéèµææå¤å</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>æå¡æ¯æ</controllingFieldValue> |
| | | <valueName>æ
éæè¯å¯¹åº</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ET APPæ´»å¨</controllingFieldValue> |
| | | <valueName>ET APPæ´»å¨</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ä¼å</controllingFieldValue> |
| | | <valueName>ä¼å</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç§»å¨</controllingFieldValue> |
| | | <valueName>ç§»å¨</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ä¼è®®</controllingFieldValue> |
| | | <controllingFieldValue>ä¸å¡å¯¹åº</controllingFieldValue> |
| | | <valueName>ä¾ä¼</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>å¹è®</controllingFieldValue> |
| | | <controllingFieldValue>åå·¥å¹è®</controllingFieldValue> |
| | | <valueName>å¹è®</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>äºå¡æ§å·¥ä½</controllingFieldValue> |
| | | <valueName>äºå¡æ§å·¥ä½</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ä¸å¡å¯¹åº</controllingFieldValue> |
| | | <valueName>åºå确认</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>å
¶ä»</controllingFieldValue> |
| | | <valueName>å
¶ä»</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ä¿¡æ¯æ¶é</controllingFieldValue> |
| | | <valueName>æ¥å¸¸æè®¿,ä¿¡æ¯æ¶é</valueName> |
| | | </valueSettings> |
| | | </valueSet> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Purpose_TypeFSE__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æ´»å¨åºåFSE</label> |
| | | <required>false</required> |
| | | <type>Picklist</type> |
| | | <valueSet> |
| | | <controllingField>Activity_PurposeFSE__c</controllingField> |
| | | <restricted>true</restricted> |
| | | <valueSetDefinition> |
| | | <sorted>false</sorted> |
| | | <value> |
| | | <fullName>ä¼å</fullName> |
| | | <default>false</default> |
| | | <label>ä¼å</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ç§»å¨</fullName> |
| | | <default>false</default> |
| | | <label>ç§»å¨</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ä¾ä¼</fullName> |
| | | <default>false</default> |
| | | <label>ä¾ä¼</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å¹è®</fullName> |
| | | <default>false</default> |
| | | <label>å¹è®</label> |
| | | </value> |
| | | <value> |
| | | <fullName>äºå¡æ§å·¥ä½</fullName> |
| | | <default>false</default> |
| | | <label>äºå¡æ§å·¥ä½</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ
鿣æµ</fullName> |
| | | <default>false</default> |
| | | <label>æ
鿣æµ</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ç»´æ¤ä¿å
»å°ä¿®</fullName> |
| | | <default>false</default> |
| | | <label>ç»´æ¤ä¿å
»å°ä¿®</label> |
| | | </value> |
| | | <value> |
| | | <fullName>è£
æå¤å</fullName> |
| | | <default>false</default> |
| | | <label>è£
æå¤å</label> |
| | | </value> |
| | | <value> |
| | | <fullName>è£
æº</fullName> |
| | | <default>false</default> |
| | | <label>è£
æº</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ°åè£
æºå¹è®</fullName> |
| | | <default>false</default> |
| | | <label>æ°åè£
æºå¹è®</label> |
| | | </value> |
| | | <value> |
| | | <fullName>åæ¶ç¡®è®¤ä¹¦</fullName> |
| | | <default>false</default> |
| | | <label>åæ¶ç¡®è®¤ä¹¦</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ä¿¡æ¯æ¶é,å·¡å</fullName> |
| | | <default>false</default> |
| | | <label>ä¿¡æ¯æ¶é,å·¡å</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ä¸é¨æå¡</fullName> |
| | | <default>false</default> |
| | | <label>ä¸é¨æå¡</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æè¯ç´¢èµå¯¹åº</fullName> |
| | | <default>false</default> |
| | | <label>æè¯ç´¢èµå¯¹åº</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å®åè·å°</fullName> |
| | | <default>false</default> |
| | | <label>å®åè·å°</label> |
| | | </value> |
| | | <value> |
| | | <fullName>TTCå¹è®</fullName> |
| | | <default>false</default> |
| | | <label>TTCå¹è®</label> |
| | | </value> |
| | | <value> |
| | | <fullName>NTCå¹è®</fullName> |
| | | <default>false</default> |
| | | <label>NTCå¹è®</label> |
| | | </value> |
| | | <value> |
| | | <fullName>åéèµæ/设å¤</fullName> |
| | | <default>false</default> |
| | | <label>åéèµæ/设å¤</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ¥ä»·è·è¿</fullName> |
| | | <default>false</default> |
| | | <label>æ¥ä»·è·è¿</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ¶æ¬¾</fullName> |
| | | <default>false</default> |
| | | <label>æ¶æ¬¾</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å¬åå对åº</fullName> |
| | | <default>false</default> |
| | | <label>å¬åå对åº</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ææ /åè°</fullName> |
| | | <default>false</default> |
| | | <label>ææ /åè°</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å¤åè£
æº/OPD</fullName> |
| | | <default>false</default> |
| | | <label>å¤åè£
æº/OPD</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ææ¡</fullName> |
| | | <default>false</default> |
| | | <label>ææ¡</label> |
| | | </value> |
| | | <value> |
| | | <fullName>询价è·è¿</fullName> |
| | | <default>false</default> |
| | | <label>询价è·è¿</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ææ å¯¹åº</fullName> |
| | | <default>false</default> |
| | | <label>ææ å¯¹åº</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ç¾çº¦</fullName> |
| | | <default>false</default> |
| | | <label>ç¾çº¦</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ç»´ä¿®ä¸å¡</fullName> |
| | | <default>false</default> |
| | | <label>ç»´ä¿®ä¸å¡</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å¸åºæå¡ä¸å¡</fullName> |
| | | <default>false</default> |
| | | <label>å¸åºæå¡ä¸å¡</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å
¶ä»</fullName> |
| | | <default>false</default> |
| | | <label>å
¶ä»</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ä¼è®®å¯¹åº</fullName> |
| | | <default>false</default> |
| | | <label>ä¼è®®å¯¹åº</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ¶åè´§/æ¶åä¼ çæ¥ä»·</fullName> |
| | | <default>false</default> |
| | | <label>æ¶åè´§/æ¶åä¼ çæ¥ä»·</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æå¡ä¼è®®</fullName> |
| | | <default>false</default> |
| | | <label>æå¡ä¼è®®</label> |
| | | </value> |
| | | <value> |
| | | <fullName>éå®ä¼è®®</fullName> |
| | | <default>false</default> |
| | | <label>éå®ä¼è®®</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ
é对åº</fullName> |
| | | <default>false</default> |
| | | <label>æ
é对åº</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ç¤¼èæ§æè®¿</fullName> |
| | | <default>false</default> |
| | | <label>ç¤¼èæ§æè®¿</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ET APPæ´»å¨</fullName> |
| | | <default>false</default> |
| | | <label>ET APPæ´»å¨</label> |
| | | </value> |
| | | <value> |
| | | <fullName>åå壿¥</fullName> |
| | | <default>false</default> |
| | | <label>åå壿¥</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ååç¹æ£</fullName> |
| | | <default>false</default> |
| | | <label>ååç¹æ£</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ç¹æ£</fullName> |
| | | <default>false</default> |
| | | <label>ç¹æ£</label> |
| | | </value> |
| | | <value> |
| | | <fullName>宿æ¥å书忾</fullName> |
| | | <default>false</default> |
| | | <isActive>false</isActive> |
| | | <label>宿æ¥å书忾</label> |
| | | </value> |
| | | </valueSetDefinition> |
| | | <valueSettings> |
| | | <controllingFieldValue>é宿¯æ</controllingFieldValue> |
| | | <valueName>ææ /åè°</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>é宿¯æ</controllingFieldValue> |
| | | <valueName>å¤åè£
æº/OPD</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ååæ¨å¹¿</controllingFieldValue> |
| | | <controllingFieldValue>ç»´ä¿®è·è¿</controllingFieldValue> |
| | | <valueName>æ¶æ¬¾</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ååæ¨å¹¿</controllingFieldValue> |
| | | <valueName>ææ¡</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ååæ¨å¹¿</controllingFieldValue> |
| | | <valueName>询价è·è¿</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ååæ¨å¹¿</controllingFieldValue> |
| | | <valueName>ææ å¯¹åº</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ååæ¨å¹¿</controllingFieldValue> |
| | | <valueName>ç¾çº¦</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ä¸å¡åè°</controllingFieldValue> |
| | | <valueName>ç»´ä¿®ä¸å¡</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ä¸å¡åè°</controllingFieldValue> |
| | | <valueName>å¸åºæå¡ä¸å¡</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>åå·¥å¹å
»</controllingFieldValue> |
| | | <controllingFieldValue>å
¬å¸å¹è®</controllingFieldValue> |
| | | <controllingFieldValue>å¹è®</controllingFieldValue> |
| | | <valueName>å¹è®</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>å
¶ä»</controllingFieldValue> |
| | | <valueName>å
¶ä»</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ä¼è®®å¯¹åº</controllingFieldValue> |
| | | <valueName>ä¼è®®å¯¹åº</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ä¼è®®å¯¹åº</controllingFieldValue> |
| | | <valueName>æå¡ä¼è®®</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ä¼è®®å¯¹åº</controllingFieldValue> |
| | | <valueName>éå®ä¼è®®</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ET APPæ´»å¨</controllingFieldValue> |
| | | <valueName>ET APPæ´»å¨</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>æå¡åå</controllingFieldValue> |
| | | <valueName>åå壿¥</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>æå¡åå</controllingFieldValue> |
| | | <valueName>ååç¹æ£</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ä¼å</controllingFieldValue> |
| | | <valueName>ä¼å</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç§»å¨</controllingFieldValue> |
| | | <valueName>ç§»å¨</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ä¼è®®</controllingFieldValue> |
| | | <valueName>ä¾ä¼</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>äºå¡æ§å·¥ä½</controllingFieldValue> |
| | | <valueName>äºå¡æ§å·¥ä½</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>äºå¡æ§å·¥ä½</controllingFieldValue> |
| | | <valueName>æ¶åè´§/æ¶åä¼ çæ¥ä»·</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>æ
éå¤ç</controllingFieldValue> |
| | | <valueName>æ
鿣æµ</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>æ
éå¤ç</controllingFieldValue> |
| | | <valueName>ç»´æ¤ä¿å
»å°ä¿®</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>è£
æº</controllingFieldValue> |
| | | <valueName>è£
æº</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>è£
æº</controllingFieldValue> |
| | | <valueName>æ°åè£
æºå¹è®</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>è£
æº</controllingFieldValue> |
| | | <valueName>åæ¶ç¡®è®¤ä¹¦</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç°åºæå¡</controllingFieldValue> |
| | | <valueName>è£
æå¤å</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç°åºæå¡</controllingFieldValue> |
| | | <valueName>ä¿¡æ¯æ¶é,å·¡å</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç°åºæå¡</controllingFieldValue> |
| | | <valueName>ä¸é¨æå¡</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç°åºæå¡</controllingFieldValue> |
| | | <valueName>æè¯ç´¢èµå¯¹åº</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç°åºæå¡</controllingFieldValue> |
| | | <valueName>å®åè·å°</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç°åºæå¡</controllingFieldValue> |
| | | <valueName>åéèµæ/设å¤</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç°åºæå¡</controllingFieldValue> |
| | | <valueName>å¬åå对åº</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç°åºæå¡</controllingFieldValue> |
| | | <valueName>æ
é对åº</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç°åºæå¡</controllingFieldValue> |
| | | <valueName>ç¤¼èæ§æè®¿</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç°åºæå¡</controllingFieldValue> |
| | | <valueName>ç¹æ£</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>客æ·å¹è®</controllingFieldValue> |
| | | <valueName>TTCå¹è®</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>客æ·å¹è®</controllingFieldValue> |
| | | <valueName>NTCå¹è®</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç»´ä¿®è·è¿</controllingFieldValue> |
| | | <valueName>æ¥ä»·è·è¿</valueName> |
| | | </valueSettings> |
| | | </valueSet> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Purpose_Type_New__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Case(Activity_Type2__c, |
| | | "ç
é¢", |
| | | Case(Purpose_Type__c, |
| | | "ON-CALL", "æ
éoræè¯å¯¹åº", |
| | | "OPD", "OPD/SIS", |
| | | "忬¾", "ä¿®çè·è¿", |
| | | "å¦ä¼orå±ä¼å¯¹åº", "ä¼è®®å¯¹åº", |
| | | "客æ·å¨è¯¢å¯¹åº", "æ¥å¸¸æè®¿,ä¿¡æ¯æ¶é", |
| | | "æ
éé¢é²æ´»å¨", "NTC/TTC", |
| | | "åååè°", "åååè°orç¾çº¦", |
| | | "ä¿®ç説æ", "ä¿®çè·è¿", |
| | | "å·¡å", "æ¥å¸¸æè®¿,ä¿¡æ¯æ¶é", |
| | | "ä¿¡æ¯æé", "æ¥å¸¸æè®¿,ä¿¡æ¯æ¶é", |
| | | "æ°åè£
æºä½¿ç¨ä¿å
»å¹è®", "æ°å使ç¨ä¿å
»å¹è®", |
| | | "éoråæä»¶ç±»èµæ", "åéèµæ/设å¤", |
| | | "éorå设å¤", "åéèµæ/设å¤", |
| | | "ç¹æ¤", "ç¹æ£", |
| | | "æè¯å¯¾å¿(å«QISï¼", "æ
éoræè¯å¯¹åº", |
| | | "ç´å(è£
æº)", "è£
æº", |
| | | "ç¤¼èæ§æè®¿", "æ¥å¸¸æè®¿,ä¿¡æ¯æ¶é", |
| | | "è·å°", "å®åè·å°", |
| | | "产åä»ç»oræ¨å¹¿", "ææorè·è¿è¯¢ä»·", |
| | | "ç¾è®¢åå", "åååè°orç¾çº¦", |
| | | "询价or维修询价è·è¿", "ææorè·è¿è¯¢ä»·", |
| | | "NotUpdate" |
| | | ), |
| | | "販売åº", |
| | | Case(Purpose_Type__c, |
| | | "ä¼è°åå ", "ä¾ä¼", |
| | | "å®åäºå®", "å
¶ä»äºå®", |
| | | "产åå¹è®", "å¹è®", |
| | | "åºå管ç", "åºå确认", |
| | | "ç»éååå©oræè®¿", "ææorè·è¿è¯¢ä»·", |
| | | "询价è¿è¡æ´»å¨", "ææorè·è¿è¯¢ä»·", |
| | | "NotUpdate" |
| | | ), |
| | | "社å
æ´»å", |
| | | Case(Purpose_Type__c, |
| | | "客æ·å¨è¯¢å¯¹åº", "çµè¯æè®¿", |
| | | "åå¤èµæ", "åå¤èµæoræ¥å", |
| | | "å°ä¿®ç对åº", "æ£æ¥orä¿®ç对åº", |
| | | "å¤åæ£æ¥", "æ£æ¥orä¿®ç对åº", |
| | | "å¼ä¼", "ä¾ä¼", |
| | | "NotUpdate" |
| | | ), |
| | | "社å¤ã¤ãã³ã", |
| | | Case(Purpose_Type__c, |
| | | "å¦ä¼orå±ä¼å¯¹åº", "ä¼è®®å¯¹åº", |
| | | "客æ·å¨è¯¢å¯¹åº", "ä¼è®®å¯¹åº", |
| | | "ä¿¡æ¯æé", "æ¥å¸¸æè®¿,ä¿¡æ¯æ¶é", |
| | | "ç¤¼èæ§æè®¿", "æ¥å¸¸æè®¿,ä¿¡æ¯æ¶é", |
| | | "è·å°", "å®åè·å°", |
| | | "产åä»ç»oræ¨å¹¿", "ææorè·è¿è¯¢ä»·", |
| | | "询价or维修询价è·è¿", "ææorè·è¿è¯¢ä»·", |
| | | "NotUpdate" |
| | | ), |
| | | "ç§»å", |
| | | Case(Purpose_Type__c, |
| | | "ç§»å", "ç§»å¨", |
| | | "NotUpdate" |
| | | ), |
| | | "伿", |
| | | Case(Purpose_Type__c, |
| | | "伿", "ä¼å", |
| | | "NotUpdate" |
| | | ), |
| | | "NotUpdate" |
| | | )</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>Purpose_Type_New</label> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Purpose_Type__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æ´»å¨åºå</label> |
| | | <required>false</required> |
| | | <type>Picklist</type> |
| | | <valueSet> |
| | | <controllingField>Activity_Type2__c</controllingField> |
| | | <valueSetDefinition> |
| | | <sorted>false</sorted> |
| | | <value> |
| | | <fullName>æ¥å¸¸æè®¿,ä¿¡æ¯æ¶é</fullName> |
| | | <default>false</default> |
| | | <label>æ¥å¸¸æè®¿,ä¿¡æ¯æ¶é</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ä¼è®®å¯¹åº</fullName> |
| | | <default>false</default> |
| | | <label>ä¼è®®å¯¹åº</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ææorè·è¿è¯¢ä»·</fullName> |
| | | <default>false</default> |
| | | <label>ææorè·è¿è¯¢ä»·</label> |
| | | </value> |
| | | <value> |
| | | <fullName>OPD/SIS</fullName> |
| | | <default>false</default> |
| | | <label>OPD/SIS</label> |
| | | </value> |
| | | <value> |
| | | <fullName>åå ææ </fullName> |
| | | <default>false</default> |
| | | <label>åå ææ </label> |
| | | </value> |
| | | <value> |
| | | <fullName>åååè°orç¾çº¦</fullName> |
| | | <default>false</default> |
| | | <label>åååè°orç¾çº¦</label> |
| | | </value> |
| | | <value> |
| | | <fullName>è£
æº</fullName> |
| | | <default>false</default> |
| | | <label>è£
æº</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ°å使ç¨ä¿å
»å¹è®</fullName> |
| | | <default>false</default> |
| | | <label>æ°å使ç¨ä¿å
»å¹è®</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å®åè·å°</fullName> |
| | | <default>false</default> |
| | | <label>å®åè·å°</label> |
| | | </value> |
| | | <value> |
| | | <fullName>NTC/TTC</fullName> |
| | | <default>false</default> |
| | | <label>NTC/TTC</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ç¹æ£</fullName> |
| | | <default>false</default> |
| | | <label>ç¹æ£</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ
éoræè¯å¯¹åº</fullName> |
| | | <default>false</default> |
| | | <label>æ
éoræè¯å¯¹åº</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ä¿®çè·è¿</fullName> |
| | | <default>false</default> |
| | | <label>ä¿®çè·è¿</label> |
| | | </value> |
| | | <value> |
| | | <fullName>åéèµæ/设å¤</fullName> |
| | | <default>false</default> |
| | | <label>åéèµæ/设å¤</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ä¾ä¼</fullName> |
| | | <default>false</default> |
| | | <label>ä¾ä¼</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å¹è®</fullName> |
| | | <default>false</default> |
| | | <label>å¹è®</label> |
| | | </value> |
| | | <value> |
| | | <fullName>åºå确认</fullName> |
| | | <default>false</default> |
| | | <label>åºå确认</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å
¶ä»äºå®</fullName> |
| | | <default>false</default> |
| | | <label>å
¶ä»äºå®</label> |
| | | </value> |
| | | <value> |
| | | <fullName>çµè¯æè®¿</fullName> |
| | | <default>false</default> |
| | | <label>çµè¯æè®¿</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ£æ¥orä¿®ç对åº</fullName> |
| | | <default>false</default> |
| | | <label>æ£æ¥orä¿®ç对åº</label> |
| | | </value> |
| | | <value> |
| | | <fullName>åå¤èµæoræ¥å</fullName> |
| | | <default>false</default> |
| | | <label>åå¤èµæoræ¥å</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ç§»å¨</fullName> |
| | | <default>false</default> |
| | | <label>ç§»å¨</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ä¼å</fullName> |
| | | <default>false</default> |
| | | <label>ä¼å</label> |
| | | </value> |
| | | <value> |
| | | <fullName>忬¾</fullName> |
| | | <default>false</default> |
| | | <label>忬¾</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ET APPæ´»å¨</fullName> |
| | | <default>false</default> |
| | | <label>ET APPæ´»å¨</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æå¡åå</fullName> |
| | | <default>false</default> |
| | | <label>æå¡åå</label> |
| | | </value> |
| | | </valueSetDefinition> |
| | | <valueSettings> |
| | | <controllingFieldValue>社å
æ´»å</controllingFieldValue> |
| | | <controllingFieldValue>販売åº</controllingFieldValue> |
| | | <valueName>ä¾ä¼</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>社å
æ´»å</controllingFieldValue> |
| | | <controllingFieldValue>販売åº</controllingFieldValue> |
| | | <valueName>å¹è®</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>社å
æ´»å</controllingFieldValue> |
| | | <valueName>çµè¯æè®¿</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>社å
æ´»å</controllingFieldValue> |
| | | <valueName>æ£æ¥orä¿®ç对åº</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>社å
æ´»å</controllingFieldValue> |
| | | <valueName>åå¤èµæoræ¥å</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>社å¤ã¤ãã³ã</controllingFieldValue> |
| | | <controllingFieldValue>ç
é¢</controllingFieldValue> |
| | | <valueName>æ¥å¸¸æè®¿,ä¿¡æ¯æ¶é</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>社å¤ã¤ãã³ã</controllingFieldValue> |
| | | <controllingFieldValue>ç
é¢</controllingFieldValue> |
| | | <valueName>ä¼è®®å¯¹åº</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç§»å</controllingFieldValue> |
| | | <valueName>ç§»å¨</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç
é¢</controllingFieldValue> |
| | | <controllingFieldValue>販売åº</controllingFieldValue> |
| | | <valueName>ææorè·è¿è¯¢ä»·</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç
é¢</controllingFieldValue> |
| | | <valueName>OPD/SIS</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç
é¢</controllingFieldValue> |
| | | <valueName>åå ææ </valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç
é¢</controllingFieldValue> |
| | | <valueName>åååè°orç¾çº¦</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç
é¢</controllingFieldValue> |
| | | <valueName>è£
æº</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç
é¢</controllingFieldValue> |
| | | <valueName>æ°å使ç¨ä¿å
»å¹è®</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç
é¢</controllingFieldValue> |
| | | <valueName>å®åè·å°</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç
é¢</controllingFieldValue> |
| | | <valueName>NTC/TTC</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç
é¢</controllingFieldValue> |
| | | <valueName>ç¹æ£</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç
é¢</controllingFieldValue> |
| | | <valueName>æ
éoræè¯å¯¹åº</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç
é¢</controllingFieldValue> |
| | | <valueName>ä¿®çè·è¿</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç
é¢</controllingFieldValue> |
| | | <valueName>åéèµæ/设å¤</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç
é¢</controllingFieldValue> |
| | | <valueName>忬¾</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç
é¢</controllingFieldValue> |
| | | <valueName>ET APPæ´»å¨</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>ç
é¢</controllingFieldValue> |
| | | <valueName>æå¡åå</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>販売åº</controllingFieldValue> |
| | | <valueName>åºå确认</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>販売åº</controllingFieldValue> |
| | | <valueName>å
¶ä»äºå®</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>伿</controllingFieldValue> |
| | | <valueName>ä¼å</valueName> |
| | | </valueSettings> |
| | | </valueSet> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Quotation_request_completed_time__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æ¥ä»·å§æå®æ¯æ¶é´</label> |
| | | <required>false</required> |
| | | <type>DateTime</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>QuoteIraiId__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æ¥ä»·ä¾èµID</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Related_Opportunity1_ID__c</fullName> |
| | | <externalId>true</externalId> |
| | | <label>è·è¿è¯¢ä»·çID1</label> |
| | | <length>18</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Related_Opportunity1__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>è·è¿è¯¢ä»·1</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Related_Opportunity2_ID__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>è·è¿è¯¢ä»·çID2</label> |
| | | <length>18</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Related_Opportunity2__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>è·è¿è¯¢ä»·2</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Related_Opportunity3_ID__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>è·è¿è¯¢ä»·çID3</label> |
| | | <length>18</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Related_Opportunity3__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>è·è¿è¯¢ä»·3</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Related_Opportunity4_ID__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>è·è¿è¯¢ä»·çID4</label> |
| | | <length>18</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Related_Opportunity4__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>è·è¿è¯¢ä»·4</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Related_Opportunity5_ID__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>è·è¿è¯¢ä»·çID5</label> |
| | | <length>18</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Related_Opportunity5__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>è·è¿è¯¢ä»·5</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Related_Service1_Code__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>è·è¿ç»´ä¿®ååç¼ç 1</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Related_Service1_ID__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>è·è¿ç»´ä¿®ååID1</label> |
| | | <length>18</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Related_Service1__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>è·è¿ç»´ä¿®åå1</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>ReportUrlText__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>ReportUrlText</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>ReportUrl__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>HYPERLINK(ReportUrlText__c, Subject, '_blank')</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>æ¥ä»·/ææå§æé¾æ¥</label> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>RequestOpp__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>ææç³è¯·</label> |
| | | <referenceTo>Request_tedner_doc__c</referenceTo> |
| | | <relationshipLabel>æ´»å¨</relationshipLabel> |
| | | <relationshipName>RequestOpp</relationshipName> |
| | | <required>false</required> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Request_completed_time__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>ææå§æå®ææ¶é´</label> |
| | | <required>false</required> |
| | | <type>DateTime</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Request_staff__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>CreatedBy.Alias__c</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>å§æäºº</label> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Request_staff_e_mail__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>CreatedBy.Email</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>å§æäººé®ç®±å°å</label> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>RescueDatetime__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>RescueDatetime</label> |
| | | <required>false</required> |
| | | <type>DateTime</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>StartDateTime_org__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>StartDateTime_org</label> |
| | | <required>false</required> |
| | | <type>DateTime</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>SyncCreatedDate__c</fullName> |
| | | <description>éè¿å¤é¨APIçåææ°å»ºæ°æ®æ¶ï¼ä¿åå¤é¨APIè¯¥æ°æ®ç使æ¥</description> |
| | | <externalId>false</externalId> |
| | | <label>SyncCreatedDate</label> |
| | | <required>false</required> |
| | | <type>DateTime</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>TaskClose__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>HYPERLINK("/OFSTaskFinish?closeFlg=1&Tid="+Id, "â ")</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>宿</label> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Task_ID__c</fullName> |
| | | <caseSensitive>true</caseSensitive> |
| | | <externalId>true</externalId> |
| | | <label>Task_ID</label> |
| | | <length>18</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>true</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Task_link__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>IF(AND(ISBLANK(WhatId),ISBLANK(WhoId)),"", |
| | | |
| | | IF(ISBLANK(WhatId), |
| | | HYPERLINK("/"+WhoId, "è¿æ¥") ,HYPERLINK("/"+WhatId, "è¿æ¥")))</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>课é¢è¿æ¥</label> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Tender_No__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>RequestOpp__r.Tender_No__c</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>ææ é¡¹ç®ç¼å·</label> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>UniversalId__c</fullName> |
| | | <description>NotesSyncç¨</description> |
| | | <externalId>false</externalId> |
| | | <label>UniversalId</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Visitor1_ID__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>访é®å¯¹è±¡ID1</label> |
| | | <length>18</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Visitor1__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>访é®å¯¹è±¡1</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Visitor2_ID__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>访é®å¯¹è±¡ID2</label> |
| | | <length>18</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Visitor2__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>访é®å¯¹è±¡2</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Visitor3_ID__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>访é®å¯¹è±¡ID3</label> |
| | | <length>18</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Visitor3__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>访é®å¯¹è±¡3</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Visitor4_ID__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>访é®å¯¹è±¡ID4</label> |
| | | <length>18</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Visitor4__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>访é®å¯¹è±¡4</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Visitor5_ID__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>访é®å¯¹è±¡ID5</label> |
| | | <length>18</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Visitor5__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>访é®å¯¹è±¡5</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>WS_flg__c</fullName> |
| | | <defaultValue>false</defaultValue> |
| | | <externalId>false</externalId> |
| | | <label>WS_flg</label> |
| | | <type>Checkbox</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>cancelDate__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>åæ¶æ¶é´</label> |
| | | <required>false</required> |
| | | <type>Date</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>cancelReasonOther__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>åæ¶çç±(å
¶ä»)</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>cancelReasonSelectFSE__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>åæ¶çç±(é项)FSE</label> |
| | | <required>false</required> |
| | | <type>Picklist</type> |
| | | <valueSet> |
| | | <restricted>true</restricted> |
| | | <valueSetDefinition> |
| | | <sorted>false</sorted> |
| | | <value> |
| | | <fullName>æ¶è´¹çé¢è¦- 30æ¥å
æè®¿å»é¢è¿è¡è¿æ
éé¢é²æå¯¼</fullName> |
| | | <default>false</default> |
| | | <label>æ¶è´¹çé¢è¦- 30æ¥å
æè®¿å»é¢è¿è¡è¿æ
éé¢é²æå¯¼</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ¶è´¹çé¢è¦- 䏿¬¡é¢è¦åæªåçæ°ä¿®ç</fullName> |
| | | <default>false</default> |
| | | <label>æ¶è´¹çé¢è¦- 䏿¬¡é¢è¦åæªåçæ°ä¿®ç</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ¶è´¹çé¢è¦- å»é¢è¯çç
便°å¤å¯¼è´ç»´ä¿®ï¼å·²åéå®å
±åæ¨è¿éè´</fullName> |
| | | <default>false</default> |
| | | <label>æ¶è´¹çé¢è¦- å»é¢è¯çç
便°å¤å¯¼è´ç»´ä¿®ï¼å·²åéå®å
±åæ¨è¿éè´</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ¶è´¹çé¢è¦ï¼å¤å¹´ä¿ï¼- å»é¢ä¸ºç¬¬ä¸æ¹ç¨æ·ï¼åç»ä¸è´ä¹°åå</fullName> |
| | | <default>false</default> |
| | | <label>æ¶è´¹çé¢è¦ï¼å¤å¹´ä¿ï¼- å»é¢ä¸ºç¬¬ä¸æ¹ç¨æ·ï¼åç»ä¸è´ä¹°åå</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å
¶ä»</fullName> |
| | | <default>false</default> |
| | | <label>å
¶ä»</label> |
| | | </value> |
| | | <value> |
| | | <fullName>è·ç¦»ä¸æ¬¡å忥å书é
åæªåçä¿®ç</fullName> |
| | | <default>false</default> |
| | | <isActive>false</isActive> |
| | | <label>è·ç¦»ä¸æ¬¡å忥å书é
åæªåçä¿®ç</label> |
| | | </value> |
| | | </valueSetDefinition> |
| | | </valueSet> |
| | | </fields> |
| | | <fields> |
| | | <fullName>cancelReasonSelect__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>åæ¶çç±(é项)</label> |
| | | <required>false</required> |
| | | <type>Picklist</type> |
| | | <valueSet> |
| | | <restricted>true</restricted> |
| | | <valueSetDefinition> |
| | | <sorted>false</sorted> |
| | | <value> |
| | | <fullName>客æ·äºä»¶åæ´æå²çª</fullName> |
| | | <default>false</default> |
| | | <label>å®¢æ·æ¶é´åæ´æå²çª</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ä¸å
¶ä»çªåäºä»¶å²çª</fullName> |
| | | <default>false</default> |
| | | <label>ä¸å
¶ä»çªåäºä»¶å²çª</label> |
| | | </value> |
| | | <value> |
| | | <fullName>é®é¢å·²ç»è§£å³æ éæè®¿</fullName> |
| | | <default>false</default> |
| | | <label>é®é¢å·²ç»è§£å³æ éæè®¿</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ åéç
ä¾ï¼éåç
便µå¤±ï¼OPDåæ¶</fullName> |
| | | <default>false</default> |
| | | <label>æ åéç
ä¾ï¼éåç
便µå¤±ï¼OPDåæ¶</label> |
| | | </value> |
| | | <value> |
| | | <fullName>é®é¢å·²è§£å³æ éOPD</fullName> |
| | | <default>false</default> |
| | | <label>é®é¢å·²è§£å³æ éOPD</label> |
| | | </value> |
| | | <value> |
| | | <fullName>客æ·å·²éè´ç«åï¼å¤±å</fullName> |
| | | <default>false</default> |
| | | <label>客æ·å·²éè´ç«åï¼å¤±å</label> |
| | | </value> |
| | | <value> |
| | | <fullName>客æ·åæ¶OPD</fullName> |
| | | <default>false</default> |
| | | <label>客æ·åæ¶OPD</label> |
| | | </value> |
| | | <value> |
| | | <fullName>计åéå¤</fullName> |
| | | <default>false</default> |
| | | <label>计åéå¤</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å
¶ä»</fullName> |
| | | <default>false</default> |
| | | <label>å
¶ä»</label> |
| | | </value> |
| | | <value> |
| | | <fullName>已失å</fullName> |
| | | <default>false</default> |
| | | <label>已失å</label> |
| | | </value> |
| | | <value> |
| | | <fullName>已订货</fullName> |
| | | <default>false</default> |
| | | <label>已订货</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ä¸å®¢æ·å®æå²çª</fullName> |
| | | <default>false</default> |
| | | <label>ä¸å®¢æ·å®æå²çª</label> |
| | | </value> |
| | | <value> |
| | | <fullName>䏿已è·è¿</fullName> |
| | | <default>false</default> |
| | | <label>䏿已è·è¿</label> |
| | | </value> |
| | | <value> |
| | | <fullName>é¡¹ç®æå</fullName> |
| | | <default>false</default> |
| | | <label>é¡¹ç®æå</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å»é¢å»ºè®¾ä¸</fullName> |
| | | <default>false</default> |
| | | <label>å»é¢å»ºè®¾ä¸</label> |
| | | </value> |
| | | <value> |
| | | <fullName>项ç®åæ¶</fullName> |
| | | <default>false</default> |
| | | <label>项ç®åæ¶</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ä»»å¡åé
ä¸å</fullName> |
| | | <default>false</default> |
| | | <label>ä»»å¡åé
ä¸å</label> |
| | | </value> |
| | | <value> |
| | | <fullName>订货æ¨è¿</fullName> |
| | | <default>false</default> |
| | | <label>订货æ¨è¿</label> |
| | | </value> |
| | | <value> |
| | | <fullName>é¡¹ç®æå/å»¶è¿</fullName> |
| | | <default>false</default> |
| | | <label>é¡¹ç®æå/å»¶è¿</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ä¿¡æ¯å¡«åé误</fullName> |
| | | <default>false</default> |
| | | <label>ä¿¡æ¯å¡«åé误</label> |
| | | </value> |
| | | </valueSetDefinition> |
| | | </valueSet> |
| | | </fields> |
| | | <fields> |
| | | <fullName>cancelReason__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>åæ¶çç±</label> |
| | | <required>false</required> |
| | | <type>Picklist</type> |
| | | <valueSet> |
| | | <valueSetDefinition> |
| | | <sorted>false</sorted> |
| | | <value> |
| | | <fullName>è¥ä¸åæ¶çç±1</fullName> |
| | | <default>false</default> |
| | | <label>è¥ä¸åæ¶çç±1</label> |
| | | </value> |
| | | <value> |
| | | <fullName>è¥ä¸åæ¶çç±2</fullName> |
| | | <default>false</default> |
| | | <label>è¥ä¸åæ¶çç±2</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æå¡åæ¶çç±1</fullName> |
| | | <default>false</default> |
| | | <label>æå¡åæ¶çç±1</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å
¶ä»</fullName> |
| | | <default>false</default> |
| | | <label>å
¶ä»</label> |
| | | </value> |
| | | </valueSetDefinition> |
| | | </valueSet> |
| | | </fields> |
| | | <fields> |
| | | <fullName>delayReasonOther__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>å»¶æçç±(å
¶ä»)</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>delayReasonSelectFSE__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>å»¶æçç±(é项) FSE</label> |
| | | <required>false</required> |
| | | <type>Picklist</type> |
| | | <valueSet> |
| | | <restricted>true</restricted> |
| | | <valueSetDefinition> |
| | | <sorted>false</sorted> |
| | | <value> |
| | | <fullName>å
±é- æªæ¥æå
¶ä»æè®¿è®¡åï¼åå¹¶å¤ç</fullName> |
| | | <default>false</default> |
| | | <label>å
±é- æªæ¥æå
¶ä»æè®¿è®¡åï¼åå¹¶å¤ç</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å
±é- å»é¢æ¶é´é®é¢</fullName> |
| | | <default>false</default> |
| | | <label>å
±é- å»é¢æ¶é´é®é¢</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å
±é- 临æ¶ä¼å/äºå</fullName> |
| | | <default>false</default> |
| | | <label>å
±é- 临æ¶ä¼å/äºå</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å
±é- åºå·®</fullName> |
| | | <default>false</default> |
| | | <label>å
±é- åºå·®</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å
±é- ä»»å¡ç»éæ°åé
åè·ç¦»æªæ¢æ¥ææ¶é´ç</fullName> |
| | | <default>false</default> |
| | | <label>å
±é- ä»»å¡ç»éæ°åé
åè·ç¦»æªæ¢æ¥ææ¶é´ç</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å
±é- å
¶ä»</fullName> |
| | | <default>false</default> |
| | | <label>å
±é- å
¶ä»</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ç³»ç»æ¥éæ æ³åºå
·æ
éåææç»´ä¿®æç»</fullName> |
| | | <default>false</default> |
| | | <isActive>false</isActive> |
| | | <label>ç³»ç»æ¥éæ æ³åºå
·æ
éåææç»´ä¿®æç»</label> |
| | | </value> |
| | | </valueSetDefinition> |
| | | </valueSet> |
| | | </fields> |
| | | <fields> |
| | | <fullName>delayReasonSelect__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>å»¶æçç±(é项)</label> |
| | | <required>false</required> |
| | | <type>Picklist</type> |
| | | <valueSet> |
| | | <restricted>true</restricted> |
| | | <valueSetDefinition> |
| | | <sorted>false</sorted> |
| | | <value> |
| | | <fullName>å®¢æ·æ¶é´åæ´æå²çª</fullName> |
| | | <default>false</default> |
| | | <label>å®¢æ·æ¶é´åæ´æå²çª</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ä¸å
¶ä»çªåäºä»¶å²çª</fullName> |
| | | <default>false</default> |
| | | <label>ä¸å
¶ä»çªåäºä»¶å²çª</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å¤åæªå°</fullName> |
| | | <default>false</default> |
| | | <label>å¤åæªå°</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ åéç
ä¾(éåç
便µå¤±)OPDå»¶æ</fullName> |
| | | <default>false</default> |
| | | <label>æ åéç
ä¾(éåç
便µå¤±)OPDå»¶æ</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ä¸å®¢æ·å®æå²çª</fullName> |
| | | <default>false</default> |
| | | <label>ä¸å®¢æ·å®æå²çª</label> |
| | | </value> |
| | | <value> |
| | | <fullName>çªåäºä»¶å»¶æ</fullName> |
| | | <default>false</default> |
| | | <label>çªåäºä»¶å»¶æ</label> |
| | | </value> |
| | | <value> |
| | | <fullName>䏿已è·è¿</fullName> |
| | | <default>false</default> |
| | | <label>䏿已è·è¿</label> |
| | | </value> |
| | | <value> |
| | | <fullName>é¡¹ç®æå</fullName> |
| | | <default>false</default> |
| | | <label>é¡¹ç®æå</label> |
| | | </value> |
| | | <value> |
| | | <fullName>订货æ¨è¿</fullName> |
| | | <default>false</default> |
| | | <label>订货æ¨è¿</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ¥æå¡«åé误</fullName> |
| | | <default>false</default> |
| | | <label>æ¥æå¡«åé误</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å»é¢è®¾å¤ä¸å°ä½</fullName> |
| | | <default>false</default> |
| | | <label>å»é¢è®¾å¤ä¸å°ä½</label> |
| | | </value> |
| | | <value> |
| | | <fullName>é¡¹ç®æå/æ¨è¿</fullName> |
| | | <default>false</default> |
| | | <label>é¡¹ç®æå/æ¨è¿</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å
¶ä»</fullName> |
| | | <default>false</default> |
| | | <label>å
¶ä»</label> |
| | | </value> |
| | | </valueSetDefinition> |
| | | </valueSet> |
| | | </fields> |
| | | <fields> |
| | | <fullName>delayReason__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>å»¶æçç±</label> |
| | | <required>false</required> |
| | | <type>Picklist</type> |
| | | <valueSet> |
| | | <valueSetDefinition> |
| | | <sorted>false</sorted> |
| | | <value> |
| | | <fullName>å»¶æçç±1</fullName> |
| | | <default>false</default> |
| | | <label>å»¶æçç±1</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å»¶æçç±2</fullName> |
| | | <default>false</default> |
| | | <label>å»¶æçç±2</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å
¶ä»</fullName> |
| | | <default>false</default> |
| | | <label>å
¶ä»</label> |
| | | </value> |
| | | </valueSetDefinition> |
| | | </valueSet> |
| | | </fields> |
| | | <fields> |
| | | <fullName>delayToDate__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>å»¶æè³æ¶é´</label> |
| | | <required>false</required> |
| | | <type>Date</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>isDelay__c</fullName> |
| | | <defaultValue>false</defaultValue> |
| | | <externalId>false</externalId> |
| | | <label>æ¯å¦å»¶æ</label> |
| | | <type>Checkbox</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>isScheduled__c</fullName> |
| | | <defaultValue>false</defaultValue> |
| | | <externalId>false</externalId> |
| | | <label>æ¯å¦è®¡å</label> |
| | | <type>Checkbox</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>isScheduled_document__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>if ( isScheduled__c = true, "计å", "æ 计å")</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>计å/æ 计å</label> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>noOpp_Reason__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æ 询价ç³è¯·çç±</label> |
| | | <required>false</required> |
| | | <type>Picklist</type> |
| | | <valueSet> |
| | | <restricted>true</restricted> |
| | | <valueSetDefinition> |
| | | <sorted>false</sorted> |
| | | <value> |
| | | <fullName>HCP对åº</fullName> |
| | | <default>false</default> |
| | | <label>HCP对åº</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ææè¯¢ä»·</fullName> |
| | | <default>false</default> |
| | | <label>ææè¯¢ä»·</label> |
| | | </value> |
| | | <value> |
| | | <fullName>åå å¹è®åè¯ç¨</fullName> |
| | | <default>false</default> |
| | | <label>åå å¹è®åè¯ç¨</label> |
| | | </value> |
| | | <value> |
| | | <fullName>çªåäºä»¶å¯¹åº</fullName> |
| | | <default>false</default> |
| | | <label>çªåäºä»¶å¯¹åº</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ 询价æ¥é
æé</fullName> |
| | | <default>false</default> |
| | | <label>æ 询价æ¥é
æé</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ä¼è®®è¿½å </fullName> |
| | | <default>false</default> |
| | | <label>ä¼è®®è¿½å </label> |
| | | </value> |
| | | <value> |
| | | <fullName>对åºä¿®çï¼ç»´ä¿®ååï¼</fullName> |
| | | <default>false</default> |
| | | <label>对åºä¿®çï¼ç»´ä¿®ååï¼</label> |
| | | </value> |
| | | <value> |
| | | <fullName>对åºä¿®çï¼ä¸è¬ä¿®çï¼</fullName> |
| | | <default>false</default> |
| | | <label>对åºä¿®çï¼ä¸è¬ä¿®çï¼</label> |
| | | </value> |
| | | <value> |
| | | <fullName>对åºä¿®ç</fullName> |
| | | <default>false</default> |
| | | <isActive>false</isActive> |
| | | <label>对åºä¿®ç</label> |
| | | </value> |
| | | </valueSetDefinition> |
| | | </valueSet> |
| | | </fields> |
| | | <fields> |
| | | <fullName>visitCount__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>1</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>æ¥åæ°</label> |
| | | <precision>18</precision> |
| | | <required>false</required> |
| | | <scale>0</scale> |
| | | <type>Number</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>whatid__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>whatid</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <listViews> |
| | | <fullName>Last_Month</fullName> |
| | | <columns>CORE.USERS.ALIAS</columns> |
| | | <columns>TASK.DUE_DATE</columns> |
| | | <columns>EVENT.LOCATION</columns> |
| | | <columns>Purpose_Type__c</columns> |
| | | <columns>Related_Opportunity1__c</columns> |
| | | <filterScope>Team</filterScope> |
| | | <filters> |
| | | <field>TASK.DUE_DATE</field> |
| | | <operation>equals</operation> |
| | | <value>LAST_MONTH</value> |
| | | </filters> |
| | | <filters> |
| | | <field>ACTIVITY.TASK</field> |
| | | <operation>equals</operation> |
| | | <value>0</value> |
| | | </filters> |
| | | <label>11. ä¸ä¸ªææ¥åä¸è§</label> |
| | | <language>ja</language> |
| | | </listViews> |
| | | <listViews> |
| | | <fullName>Last_Week</fullName> |
| | | <columns>CORE.USERS.ALIAS</columns> |
| | | <columns>TASK.DUE_DATE</columns> |
| | | <columns>EVENT.LOCATION</columns> |
| | | <columns>Purpose_Type__c</columns> |
| | | <columns>Related_Opportunity1__c</columns> |
| | | <filterScope>Team</filterScope> |
| | | <filters> |
| | | <field>TASK.DUE_DATE</field> |
| | | <operation>equals</operation> |
| | | <value>LAST_WEEK</value> |
| | | </filters> |
| | | <filters> |
| | | <field>ACTIVITY.TASK</field> |
| | | <operation>equals</operation> |
| | | <value>0</value> |
| | | </filters> |
| | | <label>02 ä¸æææ¥åä¸è§</label> |
| | | <language>ja</language> |
| | | </listViews> |
| | | <listViews> |
| | | <fullName>Last_monthandthismonth</fullName> |
| | | <columns>CORE.USERS.ALIAS</columns> |
| | | <columns>TASK.DUE_DATE</columns> |
| | | <columns>EVENT.LOCATION</columns> |
| | | <columns>Purpose_Type__c</columns> |
| | | <columns>Related_Opportunity1__c</columns> |
| | | <filterScope>Team</filterScope> |
| | | <filters> |
| | | <field>TASK.DUE_DATE</field> |
| | | <operation>equals</operation> |
| | | <value>LAST_MONTH,THIS_MONTH</value> |
| | | </filters> |
| | | <filters> |
| | | <field>ACTIVITY.TASK</field> |
| | | <operation>equals</operation> |
| | | <value>0</value> |
| | | </filters> |
| | | <filters> |
| | | <field>CORE.USERS.FULL_NAME</field> |
| | | <operation>equals</operation> |
| | | <value>æ æ¦</value> |
| | | </filters> |
| | | <label>20 æ
å½çæ¥æ¥ä¸è§æ¨¡çï¼è¿ä¸¤æï¼--AAA</label> |
| | | <language>ja</language> |
| | | </listViews> |
| | | <listViews> |
| | | <fullName>Manual_customer_registration</fullName> |
| | | <columns>TASK.SUBJECT</columns> |
| | | <columns>TASK.WHO_NAME</columns> |
| | | <columns>TASK.WHAT_NAME</columns> |
| | | <columns>TASK.DUE_DATE</columns> |
| | | <columns>CORE.USERS.ALIAS</columns> |
| | | <columns>TASK.LAST_UPDATE</columns> |
| | | <columns>UPDATEDBY_USER.ALIAS</columns> |
| | | <filterScope>Everything</filterScope> |
| | | <label>99.æå¨è¾å
¥ç¨æ·æ¥åä¸è§ éè¦éæ°ä¿®æ¹ç¨æ·å</label> |
| | | <language>ja</language> |
| | | </listViews> |
| | | <listViews> |
| | | <fullName>This_Month</fullName> |
| | | <columns>CORE.USERS.ALIAS</columns> |
| | | <columns>TASK.DUE_DATE</columns> |
| | | <columns>EVENT.LOCATION</columns> |
| | | <columns>Purpose_Type__c</columns> |
| | | <columns>Related_Opportunity1__c</columns> |
| | | <filterScope>Everything</filterScope> |
| | | <filters> |
| | | <field>TASK.DUE_DATE</field> |
| | | <operation>equals</operation> |
| | | <value>THIS_MONTH</value> |
| | | </filters> |
| | | <filters> |
| | | <field>ACTIVITY.TASK</field> |
| | | <operation>equals</operation> |
| | | <value>0</value> |
| | | </filters> |
| | | <label>10. æ¬ææ¥åä¸è§</label> |
| | | <language>ja</language> |
| | | </listViews> |
| | | <listViews> |
| | | <fullName>This_Week</fullName> |
| | | <columns>CORE.USERS.ALIAS</columns> |
| | | <columns>TASK.DUE_DATE</columns> |
| | | <columns>EVENT.LOCATION</columns> |
| | | <columns>Purpose_Type__c</columns> |
| | | <columns>Related_Opportunity1__c</columns> |
| | | <filterScope>Team</filterScope> |
| | | <filters> |
| | | <field>TASK.DUE_DATE</field> |
| | | <operation>equals</operation> |
| | | <value>THIS_WEEK</value> |
| | | </filters> |
| | | <filters> |
| | | <field>ACTIVITY.TASK</field> |
| | | <operation>equals</operation> |
| | | <value>0</value> |
| | | </filters> |
| | | <label>01. æ¬å¨æ¥åä¸è§</label> |
| | | <language>ja</language> |
| | | </listViews> |
| | | <searchLayouts> |
| | | <excludedStandardButtons>NewEvent</excludedStandardButtons> |
| | | <excludedStandardButtons>NewTask</excludedStandardButtons> |
| | | <searchResultsAdditionalFields>TASK.SUBJECT</searchResultsAdditionalFields> |
| | | <searchResultsAdditionalFields>TaskClose__c</searchResultsAdditionalFields> |
| | | <searchResultsAdditionalFields>TASK.WHO_NAME</searchResultsAdditionalFields> |
| | | <searchResultsAdditionalFields>CORE.USERS.ALIAS</searchResultsAdditionalFields> |
| | | <searchResultsAdditionalFields>TASK.CLOSED</searchResultsAdditionalFields> |
| | | </searchLayouts> |
| | | <sharingModel>ControlledByParent</sharingModel> |
| | | </CustomObject> |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <CustomObject xmlns="http://soap.sforce.com/2006/04/metadata"> |
| | | <actionOverrides> |
| | | <actionName>Accept</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>CancelEdit</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Clone</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Delete</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Edit</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>List</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>New</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>SaveEdit</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Tab</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>View</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <allowInChatterGroups>false</allowInChatterGroups> |
| | | <compactLayoutAssignment>SYSTEM</compactLayoutAssignment> |
| | | <deploymentStatus>Deployed</deploymentStatus> |
| | | <enableActivities>false</enableActivities> |
| | | <enableBulkApi>true</enableBulkApi> |
| | | <enableChangeDataCapture>false</enableChangeDataCapture> |
| | | <enableEnhancedLookup>false</enableEnhancedLookup> |
| | | <enableFeeds>false</enableFeeds> |
| | | <enableHistory>false</enableHistory> |
| | | <enableReports>true</enableReports> |
| | | <enableSearch>true</enableSearch> |
| | | <enableSharing>true</enableSharing> |
| | | <enableStreamingApi>true</enableStreamingApi> |
| | | <externalSharingModel>ControlledByParent</externalSharingModel> |
| | | <fields> |
| | | <fullName>Contact_Hospital__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Contact__r.Account.Hospital__r.Name</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>æ
å½è
çå»é¢</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Contact__c</fullName> |
| | | <deleteConstraint>Restrict</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>æ
å½è
</label> |
| | | <referenceTo>Contact</referenceTo> |
| | | <relationshipName>Activity_History_Contact</relationshipName> |
| | | <required>true</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Daily_Report__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æ¥æ¥ä¸è§</label> |
| | | <referenceTo>Daily_Report__c</referenceTo> |
| | | <relationshipName>Activity_History_Daily_Report</relationshipName> |
| | | <relationshipOrder>0</relationshipOrder> |
| | | <reparentableMasterDetail>false</reparentableMasterDetail> |
| | | <trackTrending>false</trackTrending> |
| | | <type>MasterDetail</type> |
| | | <writeRequiresMasterRead>false</writeRequiresMasterRead> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Date__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æ¥ä»</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Date</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Doctor_Division1__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>text(Contact__r.Doctor_Division1__c)</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>å»çåºå(èå¡)</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>End_Time__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>çµäºæé</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>DateTime</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>EventC_Account_IsMatch__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>IF(Contact__r.Account.Hospital__c = EventC_ID__r.Account_ID__r.Hospital__c, "1", "0")</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>åæ´»å¨CçAccountæ¯å¦æ´å</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>EventC_ID__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æ´»å¨C</label> |
| | | <referenceTo>Event__c</referenceTo> |
| | | <relationshipName>Activity_History_Daily_ReportX1</relationshipName> |
| | | <relationshipOrder>1</relationshipOrder> |
| | | <reparentableMasterDetail>false</reparentableMasterDetail> |
| | | <trackTrending>false</trackTrending> |
| | | <type>MasterDetail</type> |
| | | <writeRequiresMasterRead>false</writeRequiresMasterRead> |
| | | </fields> |
| | | <fields> |
| | | <fullName>EventC_Input_Seq__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>IF(Contact__c =EventC_ID__r.Visitor1_ID__c, 1, |
| | | IF(Contact__c =EventC_ID__r.Visitor2_ID__c, 2, |
| | | IF(Contact__c =EventC_ID__r.Visitor3_ID__c, 3, |
| | | IF(Contact__c =EventC_ID__r.Visitor4_ID__c, 4, |
| | | IF(Contact__c =EventC_ID__r.Visitor5_ID__c, 5, |
| | | 0 |
| | | )))))</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>EventC_Input_Seq</label> |
| | | <precision>18</precision> |
| | | <required>false</required> |
| | | <scale>0</scale> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Number</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>EventC_Report_Status__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>EventC_ID__r.Daily_Report__r.Status_With_Check__c</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>EventC_Report_Status</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Favorite_Equipment__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Contact__r.Favorite_Equipment__c</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>设å¤åç</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Go__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>HYPERLINK(("/"& EventC_ID__c), "â ")</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>å±é</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>MedicalStaff_Full_name__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Contact__r.MedicalStaff_Full_name__c</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>客æ·å§å</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Number_of_participant_for_TTC__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Contact__r.Number_of_participant_for_TTC__c</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>TTCåå æ¬¡æ°</label> |
| | | <precision>18</precision> |
| | | <required>false</required> |
| | | <scale>0</scale> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Number</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Phone_number__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Contact__r.Phone</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>çµè¯</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Place__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>å ´æ</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Sales_Division__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>販売æ¬é¨</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Start_Time__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>éå§æé</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>DateTime</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Subject__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>ä»¶å</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Supplement__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Contact__r.Supplement__c</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>客æ·äººåä¿¡æ¯å¤å¿</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Type__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>text( Contact__r.Type__c)</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>åç±»</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Unique__c</fullName> |
| | | <caseSensitive>true</caseSensitive> |
| | | <externalId>false</externalId> |
| | | <label>Unique</label> |
| | | <length>40</length> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>true</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>of_Visit_This_Year__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Contact__r.of_Visit_This_Year__c</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>å
¨å¹´æè®¿æ¬¡æ°</label> |
| | | <precision>18</precision> |
| | | <required>false</required> |
| | | <scale>0</scale> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Number</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <label>æ´»å¨1_客æ·äººå</label> |
| | | <nameField> |
| | | <displayFormat>{YYYY}{MM}{DD}-{000000}</displayFormat> |
| | | <label>No.</label> |
| | | <type>AutoNumber</type> |
| | | </nameField> |
| | | <searchLayouts/> |
| | | <sharingModel>ControlledByParent</sharingModel> |
| | | <visibility>Public</visibility> |
| | | </CustomObject> |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <CustomObject xmlns="http://soap.sforce.com/2006/04/metadata"> |
| | | <actionOverrides> |
| | | <actionName>Accept</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>CancelEdit</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Clone</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Delete</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Edit</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>List</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>New</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>SaveEdit</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Tab</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>View</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <allowInChatterGroups>false</allowInChatterGroups> |
| | | <compactLayoutAssignment>SYSTEM</compactLayoutAssignment> |
| | | <deploymentStatus>Deployed</deploymentStatus> |
| | | <enableActivities>false</enableActivities> |
| | | <enableBulkApi>true</enableBulkApi> |
| | | <enableChangeDataCapture>false</enableChangeDataCapture> |
| | | <enableEnhancedLookup>false</enableEnhancedLookup> |
| | | <enableFeeds>false</enableFeeds> |
| | | <enableHistory>false</enableHistory> |
| | | <enableReports>true</enableReports> |
| | | <enableSearch>true</enableSearch> |
| | | <enableSharing>true</enableSharing> |
| | | <enableStreamingApi>true</enableStreamingApi> |
| | | <externalSharingModel>Read</externalSharingModel> |
| | | <fields> |
| | | <fullName>Approve_Result_CC__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æ¹åè¿ç¨CC</label> |
| | | <length>5000</length> |
| | | <trackTrending>false</trackTrending> |
| | | <type>LongTextArea</type> |
| | | <visibleLines>3</visibleLines> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Assistant__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>è¡æ¿å©ç</label> |
| | | <referenceTo>User</referenceTo> |
| | | <relationshipName>X1_assistant</relationshipName> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>BF_Province_Target__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>BF_Province_Target</label> |
| | | <precision>18</precision> |
| | | <required>false</required> |
| | | <scale>2</scale> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Currency</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Department__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Case(Level1_Code__c, |
| | | "CN-01","1.åå", |
| | | "CN-02","1.åå", |
| | | "CN-03","3.西å", |
| | | "CN-04","1.åå", |
| | | "CN-05","3.西å", |
| | | "CN-06","1.åå", |
| | | "CN-07","1.åå", |
| | | "CN-08","3.西å", |
| | | "CN-09","3.西å", |
| | | "CN-10","3.西å", |
| | | "CN-11","3.西å", |
| | | "CN-12","3.西å", |
| | | "CN-13","2.ä¸å", |
| | | "CN-14","2.ä¸å", |
| | | "CN-15","2.ä¸å", |
| | | "CN-16","5.åä¸", |
| | | "CN-17","5.åä¸", |
| | | "CN-18","5.åä¸", |
| | | "CN-19","5.åä¸", |
| | | "CN-20","5.åä¸", |
| | | "CN-21","5.åä¸", |
| | | "CN-22","6.åå", |
| | | "CN-23","6.åå", |
| | | "CN-24","6.åå", |
| | | "CN-25","4.西å", |
| | | "CN-26","4.西å", |
| | | "CN-27","4.西å", |
| | | "CN-28","4.西å", |
| | | "CN-29","4.西å", |
| | | "CN-30","6.åå", |
| | | "CN-31","6.åå", |
| | | "å
¶ä»")</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>æ¬é¨</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>ENT_Province_Target__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>ENT_Province_Target</label> |
| | | <precision>18</precision> |
| | | <required>false</required> |
| | | <scale>2</scale> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Currency</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>ET_Province_Target__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>ET_Province_Target</label> |
| | | <precision>18</precision> |
| | | <required>false</required> |
| | | <scale>2</scale> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Currency</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Energy_Assistant__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <description>è½éå©ç</description> |
| | | <externalId>false</externalId> |
| | | <label>è½éå©ç</label> |
| | | <referenceTo>User</referenceTo> |
| | | <relationshipName>Energy_Assistant</relationshipName> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>GI_Province_Target__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>GI_Province_Target</label> |
| | | <precision>18</precision> |
| | | <required>false</required> |
| | | <scale>2</scale> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Currency</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>GS_Province_Target__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>GS_Province_Target</label> |
| | | <precision>18</precision> |
| | | <required>false</required> |
| | | <scale>2</scale> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Currency</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>GYN_Province_Target__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>GYN_Province_Target</label> |
| | | <precision>18</precision> |
| | | <required>false</required> |
| | | <scale>2</scale> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Currency</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Level1_Code__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>é層1 Code</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Level1_Sys_No__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>é層1 SysNo.</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>OCM_BC__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>OCSMé¨</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>OCM_Province__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Case(Level1_Code__c, |
| | | "CN-01","å京", |
| | | "CN-02","天津", |
| | | "CN-03","æ²³å", |
| | | "CN-04","æ²³å", |
| | | "CN-05","山西", |
| | | "CN-06","å
èå¤", |
| | | "CN-07","å±±ä¸", |
| | | "CN-08","é西", |
| | | "CN-09","éæµ·", |
| | | "CN-10","å®å¤", |
| | | "CN-11","çè", |
| | | "CN-12","æ°ç", |
| | | "CN-13","è¾½å®", |
| | | "CN-14","é»é¾æ±", |
| | | "CN-15","åæ", |
| | | "CN-16","䏿µ·", |
| | | "CN-17","æ±è", |
| | | "CN-18","æµæ±", |
| | | "CN-19","ç¦å»º", |
| | | "CN-20","å®å¾½", |
| | | "CN-21","æ±è¥¿", |
| | | "CN-22","广ä¸", |
| | | "CN-23","广西", |
| | | "CN-24","广ä¸", |
| | | "CN-25","åå·", |
| | | "CN-26","éåº", |
| | | "CN-27","äºå", |
| | | "CN-28","è´µå·", |
| | | "CN-29","åå·", |
| | | "CN-30","æ¹å", |
| | | "CN-31","æ¹å", |
| | | "")</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>OCSMç(å
¬å¼)</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>OCM__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Case(Level1_Code__c, |
| | | "CN-01","å京å¸", |
| | | "CN-02","天津å¸", |
| | | "CN-03","æ²³åç", |
| | | "CN-04","æ²³åç", |
| | | "CN-05","山西ç", |
| | | "CN-06","å
èå¤", |
| | | "CN-07","å±±ä¸ç", |
| | | "CN-08","é西ç", |
| | | "CN-09","éæµ·ç", |
| | | "CN-10","å®å¤èªæ²»åº", |
| | | "CN-11","çèç", |
| | | "CN-12","æ°çèªæ²»åº", |
| | | "CN-13","è¾½å®ç", |
| | | "CN-14","é»é¾æ±ç", |
| | | "CN-15","åæç", |
| | | "CN-16","䏿µ·å¸", |
| | | "CN-17","æ±èç", |
| | | "CN-18","æµæ±ç", |
| | | "CN-19","ç¦å»ºç", |
| | | "CN-20","å®å¾½ç", |
| | | "CN-21","æ±è¥¿ç", |
| | | "CN-22","广ä¸ç", |
| | | "CN-23","å¹¿è¥¿èªæ²»åº", |
| | | "CN-24","广ä¸ç", |
| | | "CN-25","åå·ç", |
| | | "CN-26","éåºå¸", |
| | | "CN-27","äºåç", |
| | | "CN-28","è´µå·ç", |
| | | "CN-29","åå·ç", |
| | | "CN-30","æ¹åç", |
| | | "CN-31","æ¹åç", |
| | | "")</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>OCSMç</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>OCM_province_text__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>OCSMç</label> |
| | | <length>250</length> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>OTH_Province_Target__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>OTH_Province_Target</label> |
| | | <precision>18</precision> |
| | | <required>false</required> |
| | | <scale>2</scale> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Currency</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Sales_assistant__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>询价å©ç</label> |
| | | <referenceTo>User</referenceTo> |
| | | <relationshipName>Sales_assistant</relationshipName> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>URO_Province_Target__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>URO_Province_Target</label> |
| | | <precision>18</precision> |
| | | <required>false</required> |
| | | <scale>2</scale> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Currency</type> |
| | | </fields> |
| | | <label>使é¶å±1</label> |
| | | <listViews> |
| | | <fullName>All</fullName> |
| | | <columns>NAME</columns> |
| | | <columns>OCM_Province__c</columns> |
| | | <columns>Level1_Code__c</columns> |
| | | <columns>OCM_province_text__c</columns> |
| | | <columns>Department__c</columns> |
| | | <columns>OCM_BC__c</columns> |
| | | <filterScope>Everything</filterScope> |
| | | <label>å
¨é¨</label> |
| | | <language>en_US</language> |
| | | </listViews> |
| | | <nameField> |
| | | <label>ç</label> |
| | | <type>Text</type> |
| | | </nameField> |
| | | <searchLayouts> |
| | | <customTabListAdditionalFields>Level1_Code__c</customTabListAdditionalFields> |
| | | <customTabListAdditionalFields>Level1_Sys_No__c</customTabListAdditionalFields> |
| | | <lookupDialogsAdditionalFields>Level1_Code__c</lookupDialogsAdditionalFields> |
| | | <lookupDialogsAdditionalFields>Level1_Sys_No__c</lookupDialogsAdditionalFields> |
| | | <lookupPhoneDialogsAdditionalFields>Level1_Code__c</lookupPhoneDialogsAdditionalFields> |
| | | <lookupPhoneDialogsAdditionalFields>Level1_Sys_No__c</lookupPhoneDialogsAdditionalFields> |
| | | <searchFilterFields>NAME</searchFilterFields> |
| | | <searchFilterFields>Level1_Code__c</searchFilterFields> |
| | | <searchFilterFields>Level1_Sys_No__c</searchFilterFields> |
| | | <searchResultsAdditionalFields>Level1_Code__c</searchResultsAdditionalFields> |
| | | <searchResultsAdditionalFields>Level1_Sys_No__c</searchResultsAdditionalFields> |
| | | </searchLayouts> |
| | | <sharingModel>Read</sharingModel> |
| | | <visibility>Public</visibility> |
| | | </CustomObject> |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <CustomObject xmlns="http://soap.sforce.com/2006/04/metadata"> |
| | | <actionOverrides> |
| | | <actionName>Accept</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>CancelEdit</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Clone</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Delete</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Edit</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>List</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>New</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>SaveEdit</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Tab</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>View</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <allowInChatterGroups>false</allowInChatterGroups> |
| | | <compactLayoutAssignment>SYSTEM</compactLayoutAssignment> |
| | | <deploymentStatus>Deployed</deploymentStatus> |
| | | <description>ãå
款æ è¯åæ´ãåãæåº¦åºæå
款æ è¯åæ´ãè®°å½ç±»å</description> |
| | | <enableActivities>false</enableActivities> |
| | | <enableBulkApi>true</enableBulkApi> |
| | | <enableChangeDataCapture>false</enableChangeDataCapture> |
| | | <enableFeeds>false</enableFeeds> |
| | | <enableHistory>false</enableHistory> |
| | | <enableReports>true</enableReports> |
| | | <enableSearch>true</enableSearch> |
| | | <enableSharing>true</enableSharing> |
| | | <enableStreamingApi>true</enableStreamingApi> |
| | | <externalSharingModel>Private</externalSharingModel> |
| | | <fields> |
| | | <fullName>Account__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>客æ·</label> |
| | | <referenceTo>Account</referenceTo> |
| | | <relationshipName>Account_Advance_Payment</relationshipName> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Business_Director__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <description>æ»ç(æ¹åç¨)</description> |
| | | <externalId>false</externalId> |
| | | <inlineHelpText>æ»ç(æ¹åç¨)</inlineHelpText> |
| | | <label>æ»ç</label> |
| | | <referenceTo>User</referenceTo> |
| | | <relationshipName>ZXzx</relationshipName> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Business_Director_ccadre__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>ç»çï¼æå¡ï¼</label> |
| | | <referenceTo>User</referenceTo> |
| | | <relationshipName>Business_Director_ccadre</relationshipName> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Month_Reason__c</fullName> |
| | | <description>a.æ3年以ä¸ç产åé宿æå¡åä½ |
| | | b.é对åå¨çè¶
ææ¬ 款ææç¡®ç仿¬¾è®¡åã</description> |
| | | <externalId>false</externalId> |
| | | <inlineHelpText>a.æ3年以ä¸ç产åé宿æå¡åä½ |
| | | b.é对åå¨çè¶
ææ¬ 款ææç¡®ç仿¬¾è®¡åã</inlineHelpText> |
| | | <label>æåº¦ç¹æ¹åå </label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>MonthlyPayment_del__c</fullName> |
| | | <defaultValue>false</defaultValue> |
| | | <externalId>false</externalId> |
| | | <label>æåº¦åºæå
款æ è¯</label> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Checkbox</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Service_Department__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>é¨é¿ï¼æå¡ï¼</label> |
| | | <referenceTo>User</referenceTo> |
| | | <relationshipName>Service_Department</relationshipName> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Status__c</fullName> |
| | | <defaultValue>"èæ¡ä¸"</defaultValue> |
| | | <externalId>false</externalId> |
| | | <label>åæ´å®¡æ ¸ç¶æ</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Picklist</type> |
| | | <valueSet> |
| | | <restricted>true</restricted> |
| | | <valueSetDefinition> |
| | | <sorted>false</sorted> |
| | | <value> |
| | | <fullName>èæ¡ä¸</fullName> |
| | | <default>false</default> |
| | | <label>èæ¡ä¸</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å·²æäº¤</fullName> |
| | | <default>false</default> |
| | | <label>å·²æäº¤</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ¹åä¸</fullName> |
| | | <default>false</default> |
| | | <label>æ¹åä¸</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å·²æ¹å</fullName> |
| | | <default>false</default> |
| | | <label>å·²æ¹å</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å·²æç»</fullName> |
| | | <default>false</default> |
| | | <label>å·²æç»</label> |
| | | </value> |
| | | <value> |
| | | <fullName>OSHå¡«å宿¯</fullName> |
| | | <default>false</default> |
| | | <isActive>false</isActive> |
| | | <label>OSHå¡«å宿¯</label> |
| | | </value> |
| | | </valueSetDefinition> |
| | | </valueSet> |
| | | </fields> |
| | | <fields> |
| | | <fullName>reason__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>å
æ¬¾ç¹æ¹åå </label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Picklist</type> |
| | | <valueSet> |
| | | <restricted>true</restricted> |
| | | <valueSetDefinition> |
| | | <sorted>false</sorted> |
| | | <value> |
| | | <fullName>å»é¢æå®ç»éå</fullName> |
| | | <default>false</default> |
| | | <label>å»é¢æå®ç»éå</label> |
| | | </value> |
| | | <value> |
| | | <fullName>éå¢å»é¢</fullName> |
| | | <default>false</default> |
| | | <label>éå¢å»é¢</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å»é¢ä¸çº§åä½</fullName> |
| | | <default>false</default> |
| | | <label>å»é¢ä¸çº§åä½</label> |
| | | </value> |
| | | </valueSetDefinition> |
| | | </valueSet> |
| | | </fields> |
| | | <label>å
æ¬¾åæ´</label> |
| | | <listViews> |
| | | <fullName>All</fullName> |
| | | <columns>NAME</columns> |
| | | <columns>RECORDTYPE</columns> |
| | | <columns>CREATEDBY_USER</columns> |
| | | <filterScope>Everything</filterScope> |
| | | <label>å
¨é¨</label> |
| | | <language>zh_CN</language> |
| | | </listViews> |
| | | <nameField> |
| | | <displayFormat>{YYYY}{MM}{DD}-{0000}</displayFormat> |
| | | <label>åºæå
款åç§°</label> |
| | | <type>AutoNumber</type> |
| | | </nameField> |
| | | <recordTypes> |
| | | <fullName>FirstParagraph_Change</fullName> |
| | | <active>true</active> |
| | | <description>å
款æ è¯åæ´</description> |
| | | <label>å
款æ è¯åæ´</label> |
| | | <picklistValues> |
| | | <picklist>Status__c</picklist> |
| | | <values> |
| | | <fullName>å·²æ¹å</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>å·²æç»</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>å·²æäº¤</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>æ¹åä¸</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>èæ¡ä¸</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | </picklistValues> |
| | | <picklistValues> |
| | | <picklist>reason__c</picklist> |
| | | <values> |
| | | <fullName>å»é¢ä¸çº§åä½</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>å»é¢æå®ç»éå</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>éå¢å»é¢</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | </picklistValues> |
| | | </recordTypes> |
| | | <recordTypes> |
| | | <fullName>MonthlyPayment_Change</fullName> |
| | | <active>true</active> |
| | | <description>æåº¦åºæå
款æ è¯åæ´</description> |
| | | <label>æåº¦åºæå
款æ è¯åæ´</label> |
| | | <picklistValues> |
| | | <picklist>Status__c</picklist> |
| | | <values> |
| | | <fullName>å·²æ¹å</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>å·²æç»</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>å·²æäº¤</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>æ¹åä¸</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>èæ¡ä¸</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | </picklistValues> |
| | | <picklistValues> |
| | | <picklist>reason__c</picklist> |
| | | <values> |
| | | <fullName>å»é¢ä¸çº§åä½</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>å»é¢æå®ç»éå</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>éå¢å»é¢</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | </picklistValues> |
| | | </recordTypes> |
| | | <searchLayouts/> |
| | | <sharingModel>ReadWrite</sharingModel> |
| | | <visibility>Public</visibility> |
| | | <webLinks> |
| | | <fullName>CustomLink1</fullName> |
| | | <availability>online</availability> |
| | | <displayType>button</displayType> |
| | | <linkType>javascript</linkType> |
| | | <masterLabel>æäº¤å¾
审æ¹</masterLabel> |
| | | <openType>onClickJavaScript</openType> |
| | | <protected>false</protected> |
| | | <url>{!RequireScript("/soap/ajax/51.0/connection.js")} |
| | | {!RequireScript("/soap/ajax/51.0/apex.js")} |
| | | {!RequireScript("/resource/CommonUtilJs")} |
| | | |
| | | // æé®åç° |
| | | var btns = document.getElementsByName("customlink1"); |
| | | for (var i=0; i<btns.length; i++) { |
| | | btns[i].disabled = true; |
| | | btns[i].className = 'btnDisabled'; |
| | | } |
| | | |
| | | function foo () { |
| | | var Status="{!Advance_Payment__c.Status__c}"; |
| | | if (Status!= "èæ¡ä¸"&&Status!= "å·²æç»") {alert("æ¨å·²ä¸è½å次æäº¤å®¡æ¹");return;}; |
| | | var type1="{!Advance_Payment__c.RecordType}"; |
| | | if (type1=="æåº¦åºæå
款æ è¯åæ´") {if (!confirm("è¯·ç¡®è®¤ä»¥ä¸æ¡ä»¶æ¯å¦ç¬¦åï¼\nA.æ3年以ä¸ç产åé宿æå¡åä½\nB.é对åå¨çè¶
ææ¬ 款ææç¡®ç仿¬¾è®¡å")) { return; }}; |
| | | var commiter="{!$User.Id}"; |
| | | var sql = "select id,JingliApprovalManager__c,BuchangApprovalManager__c,ZongjianApprovalManager__c from user where Id='"+commiter+"' limit 1"; |
| | | var userList = sforce.connection.query(sql); |
| | | var records = userList.getArray("records"); |
| | | var ap = new sforce.SObject("Advance_Payment__c"); |
| | | ap.Id = "{!Advance_Payment__c.Id}"; |
| | | ap.Business_Director_ccadre__c=records[0].JingliApprovalManager__c; |
| | | ap.Service_Department__c=records[0].BuchangApprovalManager__c; |
| | | ap.Business_Director__c=records[0].ZongjianApprovalManager__c; |
| | | ap.Status__c = "å·²æäº¤"; |
| | | try { |
| | | var result = sforce.connection.update([ap]); |
| | | var messages = getConnectDMLErrorMessages(result); |
| | | if (messages.length > 0) { |
| | | alert(messages.join("\n")); |
| | | return; |
| | | } |
| | | } catch (err) { |
| | | if (err.faultstring != undefined && err.faultstring.indexOf('INVALID_SESSION_ID') != -1) { |
| | | alert('å½åç½é¡µå·²ç»åºï¼è¯·æ¨éæ°ç»å½åå·æ°è¯¥ç½é¡µï¼'); |
| | | } else { |
| | | alert(err.faultstring); |
| | | } |
| | | return; |
| | | } |
| | | window.location.reload(); |
| | | } |
| | | |
| | | foo();</url> |
| | | </webLinks> |
| | | </CustomObject> |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <CustomObject xmlns="http://soap.sforce.com/2006/04/metadata"> |
| | | <actionOverrides> |
| | | <actionName>Accept</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>CancelEdit</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Clone</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Delete</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Edit</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>List</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>New</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>SaveEdit</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Tab</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>View</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <allowInChatterGroups>false</allowInChatterGroups> |
| | | <compactLayoutAssignment>SYSTEM</compactLayoutAssignment> |
| | | <deploymentStatus>Deployed</deploymentStatus> |
| | | <enableActivities>false</enableActivities> |
| | | <enableBulkApi>true</enableBulkApi> |
| | | <enableChangeDataCapture>false</enableChangeDataCapture> |
| | | <enableFeeds>false</enableFeeds> |
| | | <enableHistory>false</enableHistory> |
| | | <enableReports>true</enableReports> |
| | | <enableSearch>true</enableSearch> |
| | | <enableSharing>true</enableSharing> |
| | | <enableStreamingApi>true</enableStreamingApi> |
| | | <externalSharingModel>Private</externalSharingModel> |
| | | <fields> |
| | | <fullName>AgencyName__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Agency_Hospital__r.Agency__r.Name</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>ç»éåå</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Agency_Hospital__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>ç»éåå»é¢</label> |
| | | <referenceTo>Agency_Hospital_Link__c</referenceTo> |
| | | <relationshipLabel>.客æ·äººå</relationshipLabel> |
| | | <relationshipName>Agency_Contact</relationshipName> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Agency_ID_F__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Agency_Hospital__r.Agency_ID__c</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>Agency_ID_F</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Agency_ID__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>ç»éåID</label> |
| | | <length>15</length> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>ContactId18__c</fullName> |
| | | <caseSensitive>false</caseSensitive> |
| | | <externalId>true</externalId> |
| | | <label>ContactId18</label> |
| | | <length>18</length> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>true</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Contact__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>OCSM客æ·äººå</label> |
| | | <referenceTo>Contact</referenceTo> |
| | | <relationshipLabel>.客æ·äººå</relationshipLabel> |
| | | <relationshipName>Agency_Contact</relationshipName> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Department_Cateogy_F__c</fullName> |
| | | <description>Olympus客æ·äººåæä¼æå¼</description> |
| | | <externalId>false</externalId> |
| | | <formula>IF(IsBlank(Department_Class__c) |
| | | , '' |
| | | , Department_Class__r.Department_Class_Name_wave__c |
| | | )</formula> |
| | | <label>ç§å®¤åç±»</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Department_Class__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>æç¥ç§å®¤åç±»</label> |
| | | <referenceTo>Account</referenceTo> |
| | | <relationshipLabel>.客æ·äººå</relationshipLabel> |
| | | <relationshipName>Agency_Contact</relationshipName> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Doctor_Division1__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>å»çåºå(èå¡)</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Picklist</type> |
| | | <valueSet> |
| | | <controllingField>Type__c</controllingField> |
| | | <valueSetDefinition> |
| | | <sorted>false</sorted> |
| | | <value> |
| | | <fullName>é¢é¿</fullName> |
| | | <default>false</default> |
| | | <label>é¢é¿</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å¯é¢é¿</fullName> |
| | | <default>false</default> |
| | | <label>å¯é¢é¿</label> |
| | | </value> |
| | | <value> |
| | | <fullName>主任</fullName> |
| | | <default>false</default> |
| | | <label>主任</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å¯ä¸»ä»»</fullName> |
| | | <default>false</default> |
| | | <label>å¯ä¸»ä»»</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å»ç</fullName> |
| | | <default>false</default> |
| | | <label>å»ç</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å®ä¹ å»ç</fullName> |
| | | <default>false</default> |
| | | <label>å®ä¹ å»ç</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ¤çé¨ä¸»ä»»</fullName> |
| | | <default>false</default> |
| | | <label>æ¤çé¨ä¸»ä»»</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ¤å£«é¿</fullName> |
| | | <default>false</default> |
| | | <label>æ¤å£«é¿</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ¤å£«</fullName> |
| | | <default>false</default> |
| | | <label>æ¤å£«</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å®ä¹ æ¤å£«</fullName> |
| | | <default>false</default> |
| | | <label>å®ä¹ æ¤å£«</label> |
| | | </value> |
| | | <value> |
| | | <fullName>设å¤ç§é¿</fullName> |
| | | <default>false</default> |
| | | <label>设å¤ç§é¿</label> |
| | | </value> |
| | | <value> |
| | | <fullName>设å¤ç§</fullName> |
| | | <default>false</default> |
| | | <label>设å¤ç§</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æå¸</fullName> |
| | | <default>false</default> |
| | | <label>æå¸</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å·¥ç¨å¸</fullName> |
| | | <default>false</default> |
| | | <label>å·¥ç¨å¸</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ¶æ¯å</fullName> |
| | | <default>false</default> |
| | | <label>æ¶æ¯å</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ç§ä¹¦</fullName> |
| | | <default>false</default> |
| | | <label>ç§ä¹¦</label> |
| | | </value> |
| | | <value> |
| | | <fullName>书记</fullName> |
| | | <default>false</default> |
| | | <label>书记</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å¯ä¹¦è®°</fullName> |
| | | <default>false</default> |
| | | <label>å¯ä¹¦è®°</label> |
| | | </value> |
| | | </valueSetDefinition> |
| | | <valueSettings> |
| | | <controllingFieldValue>å»ç</controllingFieldValue> |
| | | <valueName>é¢é¿</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>å»ç</controllingFieldValue> |
| | | <valueName>å¯é¢é¿</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>å»ç</controllingFieldValue> |
| | | <valueName>主任</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>å»ç</controllingFieldValue> |
| | | <valueName>å¯ä¸»ä»»</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>å»ç</controllingFieldValue> |
| | | <valueName>å»ç</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>å»ç</controllingFieldValue> |
| | | <valueName>å®ä¹ å»ç</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>æ¤å£«</controllingFieldValue> |
| | | <valueName>æ¤çé¨ä¸»ä»»</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>æ¤å£«</controllingFieldValue> |
| | | <valueName>æ¤å£«é¿</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>æ¤å£«</controllingFieldValue> |
| | | <valueName>æ¤å£«</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>æ¤å£«</controllingFieldValue> |
| | | <valueName>å®ä¹ æ¤å£«</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>设å¤ç§</controllingFieldValue> |
| | | <valueName>设å¤ç§é¿</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>设å¤ç§</controllingFieldValue> |
| | | <valueName>设å¤ç§</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>å
¶ä»</controllingFieldValue> |
| | | <valueName>æå¸</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>å
¶ä»</controllingFieldValue> |
| | | <valueName>å·¥ç¨å¸</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>å
¶ä»</controllingFieldValue> |
| | | <valueName>æ¶æ¯å</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>å
¶ä»</controllingFieldValue> |
| | | <valueName>ç§ä¹¦</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>å
¶ä»</controllingFieldValue> |
| | | <valueName>书记</valueName> |
| | | </valueSettings> |
| | | <valueSettings> |
| | | <controllingFieldValue>å
¶ä»</controllingFieldValue> |
| | | <valueName>å¯ä¹¦è®°</valueName> |
| | | </valueSettings> |
| | | </valueSet> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Hospital_DC_Name__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>IF(IsBlank(Department_Class__c) |
| | | , Agency_Hospital__r.Name |
| | | , Department_Class__r.Parent.Name |
| | | ) + ' ' + Department_Cateogy_F__c</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>å»é¢ç§å®¤å</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Hospital_ID18__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>IF(IsBlank(Department_Class__c) |
| | | , CASESAFEID(Agency_Hospital__r.Hospital__c) |
| | | , CASESAFEID(Department_Class__r.ParentId) |
| | | )</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>OCSMå»é¢Id18</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Hospital_Name__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>IF(IsBlank(Department_Class__c) |
| | | , Agency_Hospital__r.Name |
| | | , Department_Class__r.Parent.Name |
| | | )</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>å»é¢å</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>IsOlympusContact__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>IsBlank(Department_Class__c) = False</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>åªè¯»</label> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Checkbox</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Old_Agency_Hospital__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>Old_Agency_Hospital</label> |
| | | <length>18</length> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Old_Agency_ID__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>Old_Agency_ID</label> |
| | | <length>18</length> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Old_OwnerId__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>Old_OwnerId</label> |
| | | <length>18</length> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Type__c</fullName> |
| | | <description>å»ç |
| | | æ¤å£« |
| | | 设å¤ç§ |
| | | å
¶ä»</description> |
| | | <externalId>false</externalId> |
| | | <label>åç±»</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Picklist</type> |
| | | <valueSet> |
| | | <valueSetDefinition> |
| | | <sorted>false</sorted> |
| | | <value> |
| | | <fullName>å»ç</fullName> |
| | | <default>false</default> |
| | | <label>å»ç</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ¤å£«</fullName> |
| | | <default>false</default> |
| | | <label>æ¤å£«</label> |
| | | </value> |
| | | <value> |
| | | <fullName>设å¤ç§</fullName> |
| | | <default>false</default> |
| | | <label>设å¤ç§</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å
¶ä»</fullName> |
| | | <default>false</default> |
| | | <label>å
¶ä»</label> |
| | | </value> |
| | | </valueSetDefinition> |
| | | </valueSet> |
| | | </fields> |
| | | <label>.客æ·äººå</label> |
| | | <listViews> |
| | | <fullName>All_Agency_Contact</fullName> |
| | | <columns>NAME</columns> |
| | | <columns>AgencyName__c</columns> |
| | | <columns>Hospital_Name__c</columns> |
| | | <columns>Department_Class__c</columns> |
| | | <columns>Hospital_DC_Name__c</columns> |
| | | <columns>Type__c</columns> |
| | | <columns>Doctor_Division1__c</columns> |
| | | <columns>IsOlympusContact__c</columns> |
| | | <columns>CREATEDBY_USER</columns> |
| | | <columns>CREATED_DATE</columns> |
| | | <filterScope>Everything</filterScope> |
| | | <filters> |
| | | <field>Department_Class__c</field> |
| | | <operation>equals</operation> |
| | | </filters> |
| | | <label>.客æ·äººå</label> |
| | | <language>ja</language> |
| | | </listViews> |
| | | <listViews> |
| | | <fullName>OCM</fullName> |
| | | <columns>NAME</columns> |
| | | <columns>AgencyName__c</columns> |
| | | <columns>Hospital_DC_Name__c</columns> |
| | | <columns>Type__c</columns> |
| | | <columns>Doctor_Division1__c</columns> |
| | | <columns>IsOlympusContact__c</columns> |
| | | <filterScope>Everything</filterScope> |
| | | <filters> |
| | | <field>Department_Class__c</field> |
| | | <operation>notEqual</operation> |
| | | </filters> |
| | | <label>OCM.客æ·äººå</label> |
| | | <language>ja</language> |
| | | <sharedTo> |
| | | <allInternalUsers></allInternalUsers> |
| | | </sharedTo> |
| | | </listViews> |
| | | <nameField> |
| | | <label>客æ·äººåå</label> |
| | | <type>Text</type> |
| | | </nameField> |
| | | <recordTypes> |
| | | <fullName>Agency</fullName> |
| | | <active>true</active> |
| | | <label>客æ·äººå</label> |
| | | <picklistValues> |
| | | <picklist>Doctor_Division1__c</picklist> |
| | | <values> |
| | | <fullName>主任</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>书记</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>å¯ä¸»ä»»</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>å¯ä¹¦è®°</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>å¯é¢é¿</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>å»ç</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>å®ä¹ å»ç</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>å®ä¹ æ¤å£«</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>å·¥ç¨å¸</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>æå¸</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>æ¤å£«</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>æ¤å£«é¿</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>æ¤çé¨ä¸»ä»»</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>æ¶æ¯å</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>ç§ä¹¦</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>设å¤ç§</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>设å¤ç§é¿</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>é¢é¿</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | </picklistValues> |
| | | <picklistValues> |
| | | <picklist>Type__c</picklist> |
| | | <values> |
| | | <fullName>å
¶ä»</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>å»ç</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>æ¤å£«</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>设å¤ç§</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | </picklistValues> |
| | | </recordTypes> |
| | | <searchLayouts> |
| | | <customTabListAdditionalFields>AgencyName__c</customTabListAdditionalFields> |
| | | <customTabListAdditionalFields>Hospital_DC_Name__c</customTabListAdditionalFields> |
| | | <customTabListAdditionalFields>Type__c</customTabListAdditionalFields> |
| | | <customTabListAdditionalFields>Doctor_Division1__c</customTabListAdditionalFields> |
| | | <customTabListAdditionalFields>IsOlympusContact__c</customTabListAdditionalFields> |
| | | <lookupDialogsAdditionalFields>AgencyName__c</lookupDialogsAdditionalFields> |
| | | <lookupDialogsAdditionalFields>Hospital_DC_Name__c</lookupDialogsAdditionalFields> |
| | | <lookupDialogsAdditionalFields>Type__c</lookupDialogsAdditionalFields> |
| | | <lookupDialogsAdditionalFields>Doctor_Division1__c</lookupDialogsAdditionalFields> |
| | | <lookupDialogsAdditionalFields>IsOlympusContact__c</lookupDialogsAdditionalFields> |
| | | <searchFilterFields>NAME</searchFilterFields> |
| | | <searchFilterFields>AgencyName__c</searchFilterFields> |
| | | <searchFilterFields>Hospital_DC_Name__c</searchFilterFields> |
| | | <searchFilterFields>Type__c</searchFilterFields> |
| | | <searchFilterFields>Doctor_Division1__c</searchFilterFields> |
| | | <searchFilterFields>IsOlympusContact__c</searchFilterFields> |
| | | <searchResultsAdditionalFields>AgencyName__c</searchResultsAdditionalFields> |
| | | <searchResultsAdditionalFields>Hospital_DC_Name__c</searchResultsAdditionalFields> |
| | | <searchResultsAdditionalFields>Type__c</searchResultsAdditionalFields> |
| | | <searchResultsAdditionalFields>Doctor_Division1__c</searchResultsAdditionalFields> |
| | | <searchResultsAdditionalFields>IsOlympusContact__c</searchResultsAdditionalFields> |
| | | </searchLayouts> |
| | | <sharingModel>Private</sharingModel> |
| | | <validationRules> |
| | | <fullName>Create_Agency_Contact_Name_Check</fullName> |
| | | <active>true</active> |
| | | <description>æ£æ¥.客æ·äººååååæ³æ§</description> |
| | | <errorConditionFormula>isnew()&& |
| | | $User.ProfileId <>'00e10000000Y3o5' |
| | | &&(isblank(Name)|| |
| | | isnull(Name)|| |
| | | RIGHT(Name, 2)='èå¸'|| |
| | | RIGHT(Name, 2)='å»ç'|| |
| | | RIGHT(Name, 2)='主任'|| |
| | | RIGHT(Name, 2)='é¢é¿'|| |
| | | RIGHT(Name, 2)='ç§é¿'|| |
| | | RIGHT(Name, 2)='课é¿'|| |
| | | RIGHT(Name, 2)='æ¤å£«'|| |
| | | RIGHT(Name, 3)='æ¤å£«é¿'|| |
| | | RIGHT(Name, 2)='å
ç'|| |
| | | RIGHT(Name, 2)='女士'|| |
| | | RIGHT(Name, 2)='çç'|| |
| | | RIGHT(Name, 1)='æ'|| |
| | | RIGHT(Name, 2)='ææ'|| |
| | | RIGHT(Name, 3)='æææ' |
| | | )</errorConditionFormula> |
| | | <errorDisplayField>Name</errorDisplayField> |
| | | <errorMessage>è¯·å¡«åæ£ç¡®çååï¼ä¸è½å¡«å诸å¦âå»çâï¼âèå¸âï¼âæ¤å£«âï¼âé¢é¿âï¼âææâç头è¡ä»£ç§°</errorMessage> |
| | | </validationRules> |
| | | <validationRules> |
| | | <fullName>NameCannotStart_Olympus</fullName> |
| | | <active>true</active> |
| | | <errorConditionFormula>IF(Isblank(Agency_Hospital__c) == false |
| | | , CONTAINS(Name, '(OLYMPUS)') |
| | | , False |
| | | )</errorConditionFormula> |
| | | <errorDisplayField>Name</errorDisplayField> |
| | | <errorMessage>客æ·äººååä¸è½å
å« ï¼OLYMPUSï¼</errorMessage> |
| | | </validationRules> |
| | | <visibility>Public</visibility> |
| | | <webLinks> |
| | | <fullName>Copy2AgencyContact</fullName> |
| | | <availability>online</availability> |
| | | <description>&common.udd.actions.ActionsUtilORIG_URI=%2Fa2QN0000000csrt%2Fe</description> |
| | | <displayType>button</displayType> |
| | | <linkType>javascript</linkType> |
| | | <masterLabel>å¤å¶</masterLabel> |
| | | <openType>onClickJavaScript</openType> |
| | | <protected>false</protected> |
| | | <url>{!REQUIRESCRIPT("/soap/ajax/51.0/connection.js")}; |
| | | {!REQUIRESCRIPT("/soap/ajax/51.0/apex.js")}; |
| | | //2021-10-21 gwy çæ¬æ´æ¹ä¸º51.0 |
| | | var doubleFlg = false; |
| | | if(!doubleFlg) { |
| | | doubleFlg = true; |
| | | var query = "Select EntityDefinition.KeyPrefix, DurableId From FieldDefinition WHERE EntityDefinition.QualifiedApiName = 'Agency_Contact__c' and QualifiedApiName= 'Agency_Hospital__c' "; |
| | | var records = sforce.connection.query(query).getArray('records'); |
| | | var fid = records[0].DurableId.toString().split('.')[1]; |
| | | window.open("/{!Agency_Contact__c.Id}/e?clone=1&retURL=%2F{!Agency_Contact__c.Id}&CF"+fid+"={!URLENCODE(Agency_Contact__c.Hospital_Name__c)}"); |
| | | }</url> |
| | | </webLinks> |
| | | </CustomObject> |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <CustomObject xmlns="http://soap.sforce.com/2006/04/metadata"> |
| | | <actionOverrides> |
| | | <actionName>Accept</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>CancelEdit</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Clone</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Delete</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Edit</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>List</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>New</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>SaveEdit</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Tab</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>View</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <allowInChatterGroups>false</allowInChatterGroups> |
| | | <compactLayoutAssignment>SYSTEM</compactLayoutAssignment> |
| | | <deploymentStatus>Deployed</deploymentStatus> |
| | | <description>Link表ï¼ç»éåå¯ä»¥çå°çOCMå»é¢</description> |
| | | <enableActivities>false</enableActivities> |
| | | <enableBulkApi>true</enableBulkApi> |
| | | <enableChangeDataCapture>false</enableChangeDataCapture> |
| | | <enableFeeds>true</enableFeeds> |
| | | <enableHistory>false</enableHistory> |
| | | <enableReports>true</enableReports> |
| | | <enableSearch>true</enableSearch> |
| | | <enableSharing>true</enableSharing> |
| | | <enableStreamingApi>true</enableStreamingApi> |
| | | <externalSharingModel>Private</externalSharingModel> |
| | | <fields> |
| | | <fullName>Address_readonly__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Hospital__r.Address__c</formula> |
| | | <label>å°å</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>AgencyHos_ENG__c</fullName> |
| | | <defaultValue>false</defaultValue> |
| | | <externalId>false</externalId> |
| | | <label>ENGç¹çº¦åºå¯¹è±¡</label> |
| | | <trackFeedHistory>false</trackFeedHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Checkbox</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>AgencyHos_ET__c</fullName> |
| | | <defaultValue>false</defaultValue> |
| | | <externalId>false</externalId> |
| | | <label>ETç¹çº¦åºå¯¹è±¡</label> |
| | | <trackFeedHistory>false</trackFeedHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Checkbox</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Agency_18id__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>CASESAFEID( Agency__c )</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>ç»éå18ä½id</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Agency_Campaign_Obj__c</fullName> |
| | | <defaultValue>false</defaultValue> |
| | | <externalId>false</externalId> |
| | | <label>ç»éåæ´»å¨å¯¹è±¡</label> |
| | | <trackFeedHistory>false</trackFeedHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Checkbox</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Agency_Hospital_Name__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Agency__r.Name+'::'+Name</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>ç»éåï¼ç»éåå»é¢</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Agency_ID__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>ç»éåID</label> |
| | | <length>15</length> |
| | | <required>false</required> |
| | | <trackFeedHistory>false</trackFeedHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Agency__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>ç»éå</label> |
| | | <lookupFilter> |
| | | <active>false</active> |
| | | <filterItems> |
| | | <field>Account.RecordTypeId</field> |
| | | <operation>equals</operation> |
| | | <value>販売åº</value> |
| | | </filterItems> |
| | | <isOptional>false</isOptional> |
| | | </lookupFilter> |
| | | <referenceTo>Account</referenceTo> |
| | | <relationshipLabel>ç»éåå»é¢ (ç»éå)</relationshipLabel> |
| | | <relationshipName>Agency_Hospital_Hospital</relationshipName> |
| | | <required>false</required> |
| | | <trackFeedHistory>false</trackFeedHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Attribute_Type_readonly__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>text(Hospital__r.Attribute_Type__c)</formula> |
| | | <label>å»é¢æå±æ§è´¨</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Delay_Days__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>IF( ISBLANK(MaxActivityDate__c), 999, TODAY() - MaxActivityDate__c)</formula> |
| | | <label>æªè®¿é®æ¥æ°</label> |
| | | <precision>18</precision> |
| | | <required>false</required> |
| | | <scale>0</scale> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Number</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Fax_readonly__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Hospital__r.Fax</formula> |
| | | <label>Fax</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Grade_readonly__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>text(Hospital__r.Grade__c)</formula> |
| | | <label>æ¿åºçç´</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Hospital_Active__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>text(Hospital__r.Is_Active__c)</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>ææ/æ æ</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Hospital_Category__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>TEXT( Hospital__r.OCM_Category__c )</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>OCSMåç±»(å»é¢)</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Hospital_Category_text__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>**OCSMåç±»(å»é¢)ææ¬</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <trackFeedHistory>false</trackFeedHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Hospital_City_Master__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Hospital__r.City_Master__r.Name</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>å¸</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Hospital_CreatedDate__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Hospital__r.CreatedDate</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>åå»ºæ¥æ</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Date</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Hospital_ID__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Hospital__c</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>å»é¢ID</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Hospital_Name_readonly__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Hospital__r.Name</formula> |
| | | <label>å»é¢å</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Hospital_Province__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Hospital__r.State_Master__r.Name</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>å»é¢ç</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Hospital_Recordtype__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Hospital__r.Acc_Record_Type__c</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>客æ·è®°å½ç±»å</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Hospital_Town__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Hospital__r.Town__c</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>å¿/åº</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Hospital__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>OCSMå»é¢</label> |
| | | <lookupFilter> |
| | | <active>true</active> |
| | | <filterItems> |
| | | <field>Account.RecordTypeId</field> |
| | | <operation>equals</operation> |
| | | <value>ç
é¢</value> |
| | | </filterItems> |
| | | <isOptional>false</isOptional> |
| | | </lookupFilter> |
| | | <referenceTo>Account</referenceTo> |
| | | <relationshipLabel>ç»éåå»é¢</relationshipLabel> |
| | | <relationshipName>Agency_Hospital_Agency</relationshipName> |
| | | <required>false</required> |
| | | <trackFeedHistory>false</trackFeedHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Hospital_link__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>HYPERLINK('apex/ConsumableAccountInfo?AccId='& Hospital__c , Hospital__r.Name)</formula> |
| | | <label>å»é¢åç§°</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Hosptial_Type__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>IF( AgencyHos_ET__c , 'ET', '') & IF( AgencyHos_ENG__c , 'ENG', '')</formula> |
| | | <label>å»é¢å
³ç³»åç±»</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Is_Medical_readonly__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>text(Hospital__r.Is_Medical__c )</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>å»çæºæåºå</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>MaxActivityDate__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æè¿å¨æ¥æ´æ°æ¥</label> |
| | | <required>false</required> |
| | | <trackFeedHistory>false</trackFeedHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Date</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Name1__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Hospital__r.Site</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>å»é¢å«å1</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>OCM_Province__c</fullName> |
| | | <description>å°å¼ç¨çå
¬å¼æ¹ä¸ºææ¬</description> |
| | | <externalId>false</externalId> |
| | | <formula>Hospital__r.OCM_man_province_txt__c</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>OCSMç</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Phone_readonly__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Hospital__r.Phone</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>çµè¯</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Postal_Code__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Hospital__r.Postal_Code__c</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>é®ç¼</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Salesdepartment_HP__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Hospital__r.Salesdepartment_HP__c</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>é宿¬é¨(å»é¢)</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Speciality_Type_readonly__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>text( Hospital__r.Speciality_Type__c)</formula> |
| | | <label>å»é¢ä¸ä¸åºå</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Uniquekey__c</fullName> |
| | | <caseSensitive>true</caseSensitive> |
| | | <externalId>true</externalId> |
| | | <label>Uniquekey</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <trackFeedHistory>false</trackFeedHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>true</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>has_report__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>IF (MaxActivityDate__c >= (TODAY() + ( 1 - MOD( TODAY() - DATE( 1900, 1, 7 ), 7 ) ) |
| | | + |
| | | IF( |
| | | MOD( TODAY() - DATE( 1900, 1, 7 ), 7 ) >= 1, |
| | | 0, |
| | | -7 |
| | | )), 'å·²æäº¤', 'æªæäº¤')</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>æ¬å¨æ´æ°å¨æ¥</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>isSame__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>IF(Hospital_Name_readonly__c=Name ,'1','0')</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>ç»éåä¸å®¢æ·å»é¢æ¯å¦ä¸è´</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <label>ç»éåå»é¢</label> |
| | | <listViews> |
| | | <fullName>All_Hos_Age</fullName> |
| | | <columns>NAME</columns> |
| | | <columns>Hospital_Province__c</columns> |
| | | <columns>Hospital_City_Master__c</columns> |
| | | <columns>Grade_readonly__c</columns> |
| | | <columns>Attribute_Type_readonly__c</columns> |
| | | <filterScope>Everything</filterScope> |
| | | <filters> |
| | | <field>Agency_Campaign_Obj__c</field> |
| | | <operation>equals</operation> |
| | | <value>1</value> |
| | | </filters> |
| | | <label>ç»éåå»é¢(All)</label> |
| | | <language>zh_CN</language> |
| | | </listViews> |
| | | <listViews> |
| | | <fullName>OCM_Hos</fullName> |
| | | <columns>Agency__c</columns> |
| | | <columns>NAME</columns> |
| | | <columns>Attribute_Type_readonly__c</columns> |
| | | <columns>Grade_readonly__c</columns> |
| | | <columns>CREATEDBY_USER</columns> |
| | | <columns>LAST_UPDATE</columns> |
| | | <filterScope>Everything</filterScope> |
| | | <label>OCSMç»éåå»é¢</label> |
| | | <language>ja</language> |
| | | <sharedTo> |
| | | <allInternalUsers></allInternalUsers> |
| | | </sharedTo> |
| | | </listViews> |
| | | <nameField> |
| | | <label>ç»éåå»é¢</label> |
| | | <trackFeedHistory>false</trackFeedHistory> |
| | | <type>Text</type> |
| | | </nameField> |
| | | <recordTypeTrackFeedHistory>false</recordTypeTrackFeedHistory> |
| | | <recordTypes> |
| | | <fullName>AHospital</fullName> |
| | | <active>true</active> |
| | | <label>ç»éåå»é¢</label> |
| | | </recordTypes> |
| | | <searchLayouts> |
| | | <customTabListAdditionalFields>Hospital__c</customTabListAdditionalFields> |
| | | <customTabListAdditionalFields>Grade_readonly__c</customTabListAdditionalFields> |
| | | <customTabListAdditionalFields>Attribute_Type_readonly__c</customTabListAdditionalFields> |
| | | <customTabListAdditionalFields>Agency__c</customTabListAdditionalFields> |
| | | <lookupDialogsAdditionalFields>Hospital__c</lookupDialogsAdditionalFields> |
| | | <lookupDialogsAdditionalFields>Grade_readonly__c</lookupDialogsAdditionalFields> |
| | | <lookupDialogsAdditionalFields>Attribute_Type_readonly__c</lookupDialogsAdditionalFields> |
| | | <lookupDialogsAdditionalFields>Agency__c</lookupDialogsAdditionalFields> |
| | | <searchResultsAdditionalFields>Hospital__c</searchResultsAdditionalFields> |
| | | <searchResultsAdditionalFields>Grade_readonly__c</searchResultsAdditionalFields> |
| | | <searchResultsAdditionalFields>Attribute_Type_readonly__c</searchResultsAdditionalFields> |
| | | <searchResultsAdditionalFields>Agency__c</searchResultsAdditionalFields> |
| | | </searchLayouts> |
| | | <sharingModel>Private</sharingModel> |
| | | <visibility>Public</visibility> |
| | | <webLinks> |
| | | <fullName>NewAgencyHospital</fullName> |
| | | <availability>online</availability> |
| | | <displayType>massActionButton</displayType> |
| | | <linkType>javascript</linkType> |
| | | <masterLabel>æ°å»ºç»éåå»é¢</masterLabel> |
| | | <openType>onClickJavaScript</openType> |
| | | <protected>false</protected> |
| | | <requireRowSelection>false</requireRowSelection> |
| | | <url>{!REQUIRESCRIPT("/soap/ajax/51.0/connection.js")}; |
| | | {!REQUIRESCRIPT("/soap/ajax/51.0/apex.js")}; |
| | | //2021-10-22 gwy çæ¬æ´æ¹ä¸º51.0 |
| | | var doubleFlg = false; |
| | | if(!doubleFlg) { |
| | | doubleFlg = true; |
| | | var query = "Select Id From RecordType Where DeveloperName = 'AHospital' And SobjectType = 'Agency_Hospital_Link__c'"; |
| | | var records = sforce.connection.query(query).getArray('records'); |
| | | var rtId = records[0].Id; |
| | | query = "Select EntityDefinition.KeyPrefix, DurableId From FieldDefinition WHERE EntityDefinition.QualifiedApiName = 'Agency_Hospital_Link__c' And QualifiedApiName = 'Agency__c'"; |
| | | records = sforce.connection.query(query).getArray('records'); |
| | | var prefix = records[0].EntityDefinition.KeyPrefix.toString(); |
| | | var fId_Agency__c = records[0].DurableId.toString().substr(16, 15); |
| | | var newUrl = "/" + prefix + "/e?retURL=%2F{!Account.Id}" + |
| | | "&Name=*" + |
| | | "&CF" + fId_Agency__c + "={!URLENCODE(Account.Name)}" + |
| | | "&CF" + fId_Agency__c + "_lkid={!Account.Id}"; |
| | | if (window.top == window.self) { |
| | | location.href = newUrl; |
| | | } else { |
| | | top.location.href = newUrl; |
| | | } |
| | | }</url> |
| | | </webLinks> |
| | | <webLinks> |
| | | <fullName>NewAgencyHospitalCon</fullName> |
| | | <availability>online</availability> |
| | | <description>ç»éåç¨</description> |
| | | <displayType>massActionButton</displayType> |
| | | <linkType>javascript</linkType> |
| | | <masterLabel>ç»éåå»é¢</masterLabel> |
| | | <openType>onClickJavaScript</openType> |
| | | <protected>false</protected> |
| | | <requireRowSelection>true</requireRowSelection> |
| | | <url>window.open("/apex/AgencyHospitalLink?userid={!URLENCODE(Account.Id)}");</url> |
| | | </webLinks> |
| | | </CustomObject> |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <CustomObject xmlns="http://soap.sforce.com/2006/04/metadata"> |
| | | <actionOverrides> |
| | | <actionName>Accept</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>CancelEdit</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Clone</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Delete</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Edit</actionName> |
| | | <content>AssessmentReport</content> |
| | | <skipRecordTypeSelect>false</skipRecordTypeSelect> |
| | | <type>Visualforce</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>List</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>New</actionName> |
| | | <content>AssessmentReport</content> |
| | | <skipRecordTypeSelect>false</skipRecordTypeSelect> |
| | | <type>Visualforce</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>SaveEdit</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Tab</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>View</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <allowInChatterGroups>false</allowInChatterGroups> |
| | | <compactLayoutAssignment>SYSTEM</compactLayoutAssignment> |
| | | <deploymentStatus>Deployed</deploymentStatus> |
| | | <enableActivities>false</enableActivities> |
| | | <enableBulkApi>true</enableBulkApi> |
| | | <enableChangeDataCapture>false</enableChangeDataCapture> |
| | | <enableFeeds>false</enableFeeds> |
| | | <enableHistory>false</enableHistory> |
| | | <enableReports>true</enableReports> |
| | | <enableSearch>true</enableSearch> |
| | | <enableSharing>true</enableSharing> |
| | | <enableStreamingApi>true</enableStreamingApi> |
| | | <externalSharingModel>ControlledByParent</externalSharingModel> |
| | | <fields> |
| | | <fullName>AllGrade__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æ»æç»©</label> |
| | | <summarizedField>AssessmentReportStaff__c.Grade__c</summarizedField> |
| | | <summaryFilterItems> |
| | | <field>AssessmentReportStaff__c.AttendStatus__c</field> |
| | | <operation>equals</operation> |
| | | <value>åºå¤, è¿å°</value> |
| | | </summaryFilterItems> |
| | | <summaryForeignKey>AssessmentReportStaff__c.AssessmentReport__c</summaryForeignKey> |
| | | <summaryOperation>sum</summaryOperation> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Summary</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>AllNumber__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>ææäººæ°</label> |
| | | <summaryForeignKey>AssessmentReportStaff__c.AssessmentReport__c</summaryForeignKey> |
| | | <summaryOperation>count</summaryOperation> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Summary</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>AssessNext__c</fullName> |
| | | <defaultValue>false</defaultValue> |
| | | <externalId>false</externalId> |
| | | <label>åæ¶ç³è¯·æç»èæ ¸</label> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Checkbox</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>AssessmentDate__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>TeachingDate__c</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>èæ ¸æ¥æ</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Date</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>AssessmentNumber__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>AttendNumber__c</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>èæ ¸äººæ°</label> |
| | | <precision>18</precision> |
| | | <required>false</required> |
| | | <scale>0</scale> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Number</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>AttendNumber__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>åºå¤äººæ°</label> |
| | | <summaryFilterItems> |
| | | <field>AssessmentReportStaff__c.AttendStatus__c</field> |
| | | <operation>equals</operation> |
| | | <value>åºå¤, è¿å°</value> |
| | | </summaryFilterItems> |
| | | <summaryForeignKey>AssessmentReportStaff__c.AssessmentReport__c</summaryForeignKey> |
| | | <summaryOperation>count</summaryOperation> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Summary</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>AttendRate__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>If(AllNumber__c=0,0,AttendNumber__c/AllNumber__c)</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>åºå¤ç</label> |
| | | <precision>18</precision> |
| | | <required>false</required> |
| | | <scale>2</scale> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Percent</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>AverageGrade__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>if(AttendNumber__c!=0,AllGrade__c/AttendNumber__c,0)</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>å¹³åå</label> |
| | | <precision>18</precision> |
| | | <required>false</required> |
| | | <scale>2</scale> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Number</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>BuchangApprovalManager__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>é¨é¿</label> |
| | | <referenceTo>User</referenceTo> |
| | | <relationshipName>BuchangApprovalManagertIsf</relationshipName> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Campaign__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>å¦ä¼ã»å¹è®</label> |
| | | <referenceTo>Campaign</referenceTo> |
| | | <relationshipLabel>æè¯¾/èæ ¸æ¥å</relationshipLabel> |
| | | <relationshipName>CompaignInassessReport</relationshipName> |
| | | <relationshipOrder>0</relationshipOrder> |
| | | <reparentableMasterDetail>false</reparentableMasterDetail> |
| | | <trackTrending>false</trackTrending> |
| | | <type>MasterDetail</type> |
| | | <writeRequiresMasterRead>true</writeRequiresMasterRead> |
| | | </fields> |
| | | <fields> |
| | | <fullName>GoodExample__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æ¬æ¬¡æ´»å¨å¥½çä¾å&éè¦æ¹åçå°æ¹</label> |
| | | <length>32768</length> |
| | | <trackTrending>false</trackTrending> |
| | | <type>LongTextArea</type> |
| | | <visibleLines>3</visibleLines> |
| | | </fields> |
| | | <fields> |
| | | <fullName>HomeworkFeedback__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>课åä½ä¸ãå¤ä¹ ç¸å
³æ
嵿±æ»</label> |
| | | <length>32768</length> |
| | | <trackTrending>false</trackTrending> |
| | | <type>LongTextArea</type> |
| | | <visibleLines>3</visibleLines> |
| | | </fields> |
| | | <fields> |
| | | <fullName>IsCompleteOnTime__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>If( ISBLANK(ReportDate__c), '', if(ReportDate__c - TeachingDate__c > 7 , 'å¦' , 'æ¯'))</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>æ¯å¦æéå
æ¥å</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>JingliApprovalManager__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>ç»ç</label> |
| | | <referenceTo>User</referenceTo> |
| | | <relationshipName>JingliApprovalManagertIsG</relationshipName> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>LectureFeedback__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>课件\课ç¨è®¾ç½®ç¸å
³åé¦å
容(ä¿®æ¹æè§ã亮ç¹çï¼</label> |
| | | <length>32768</length> |
| | | <trackTrending>false</trackTrending> |
| | | <type>LongTextArea</type> |
| | | <visibleLines>3</visibleLines> |
| | | </fields> |
| | | <fields> |
| | | <fullName>MailFlag_Approved__c</fullName> |
| | | <defaultValue>false</defaultValue> |
| | | <externalId>false</externalId> |
| | | <label>MailFlag审æ¹å®æ</label> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Checkbox</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>ReportDate__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æ¥åæ¶é´</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Date</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Report_Code__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æ¥åç¼ç </label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>ServiceDesignDep__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>æå¡ä¼åé¨çªå£</label> |
| | | <referenceTo>User</referenceTo> |
| | | <relationshipName>ServiceDesignDeptIs6</relationshipName> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Status__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>审æ¹ç¶æ</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Picklist</type> |
| | | <valueSet> |
| | | <restricted>true</restricted> |
| | | <valueSetDefinition> |
| | | <sorted>false</sorted> |
| | | <value> |
| | | <fullName>èæ¡ä¸</fullName> |
| | | <default>false</default> |
| | | <label>èæ¡ä¸</label> |
| | | </value> |
| | | <value> |
| | | <fullName>审æ¹ä¸</fullName> |
| | | <default>false</default> |
| | | <label>审æ¹ä¸</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æ¹å</fullName> |
| | | <default>false</default> |
| | | <label>æ¹å</label> |
| | | </value> |
| | | <value> |
| | | <fullName>䏿¹å</fullName> |
| | | <default>false</default> |
| | | <label>䏿¹å</label> |
| | | </value> |
| | | </valueSetDefinition> |
| | | </valueSet> |
| | | </fields> |
| | | <fields> |
| | | <fullName>TeacherFeedback__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>讲å¸å¯¹æ´»å¨ç»¼åæ¥å/ææ³</label> |
| | | <length>32768</length> |
| | | <trackTrending>false</trackTrending> |
| | | <type>LongTextArea</type> |
| | | <visibleLines>3</visibleLines> |
| | | </fields> |
| | | <fields> |
| | | <fullName>TeachingContent__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æè¯¾å
容</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>MultiselectPicklist</type> |
| | | <valueSet> |
| | | <restricted>true</restricted> |
| | | <valueSetDefinition> |
| | | <sorted>false</sorted> |
| | | <value> |
| | | <fullName>å
éåå¨è¾¹è®¾å¤ä»ç»</fullName> |
| | | <default>false</default> |
| | | <label>å
éåå¨è¾¹è®¾å¤ä»ç»</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å
éCDS</fullName> |
| | | <default>false</default> |
| | | <label>å
éCDS</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å
éæ
éåæ</fullName> |
| | | <default>false</default> |
| | | <label>å
éæ
éåæ</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å
éç¹æ£ãç¯æ³¡æ´æ¢</fullName> |
| | | <default>false</default> |
| | | <label>å
éç¹æ£ãç¯æ³¡æ´æ¢</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ç»´ä¿®æ¹å¼ä»ç»</fullName> |
| | | <default>false</default> |
| | | <label>ç»´ä¿®æ¹å¼ä»ç»</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å¨è¾¹è®¾å¤æ
éåæ</fullName> |
| | | <default>false</default> |
| | | <label>å¨è¾¹è®¾å¤æ
éåæ</label> |
| | | </value> |
| | | <value> |
| | | <fullName>é«é¢çµè®¾å¤æ
鿣æ¥ï¼æ ¹æ®å»é¢è®¾å¤éæ©æ§è®²è§£ï¼</fullName> |
| | | <default>false</default> |
| | | <label>é«é¢çµè®¾å¤æ
鿣æ¥ï¼æ ¹æ®å»é¢è®¾å¤éæ©æ§è®²è§£ï¼</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å¤ç§å¨æ¢°æ
éé¢é²</fullName> |
| | | <default>false</default> |
| | | <label>å¤ç§å¨æ¢°æ
éé¢é²</label> |
| | | </value> |
| | | </valueSetDefinition> |
| | | </valueSet> |
| | | <visibleLines>5</visibleLines> |
| | | </fields> |
| | | <fields> |
| | | <fullName>TeachingDate__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æè¯¾æ¥æ</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Date</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>TeachingHourOther__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æè¯¾è¯¾æ¶(å
¶ä»)</label> |
| | | <precision>18</precision> |
| | | <required>false</required> |
| | | <scale>1</scale> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Number</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>TeachingHourSelect__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æè¯¾è¯¾æ¶</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Picklist</type> |
| | | <valueSet> |
| | | <restricted>true</restricted> |
| | | <valueSetDefinition> |
| | | <sorted>false</sorted> |
| | | <value> |
| | | <fullName>4</fullName> |
| | | <default>false</default> |
| | | <label>4</label> |
| | | </value> |
| | | <value> |
| | | <fullName>8</fullName> |
| | | <default>false</default> |
| | | <label>8</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å
¶ä»</fullName> |
| | | <default>false</default> |
| | | <label>å
¶ä»</label> |
| | | </value> |
| | | </valueSetDefinition> |
| | | </valueSet> |
| | | </fields> |
| | | <fields> |
| | | <fullName>TeachingHour__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æè¯¾è¯¾æ¶</label> |
| | | <precision>18</precision> |
| | | <required>false</required> |
| | | <scale>0</scale> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Number</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>TrainedStaffFeedback__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>å¹è®äººååé¦ä¿¡æ¯æ±æ»</label> |
| | | <length>32768</length> |
| | | <trackTrending>false</trackTrending> |
| | | <type>LongTextArea</type> |
| | | <visibleLines>3</visibleLines> |
| | | </fields> |
| | | <fields> |
| | | <fullName>TrainingLecturer1__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>æè¯¾è®²å¸1</label> |
| | | <referenceTo>User</referenceTo> |
| | | <relationshipName>TrainingLecturer1inAssess</relationshipName> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>TrainingLecturer2__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>æè¯¾è®²å¸2</label> |
| | | <referenceTo>User</referenceTo> |
| | | <relationshipName>TrainingLecturer2inAssess</relationshipName> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>TrainingLecturer3__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>æè¯¾è®²å¸3</label> |
| | | <referenceTo>User</referenceTo> |
| | | <relationshipName>TrainingLecturer3inAssess</relationshipName> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>TrainingLecturer4__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>æè¯¾è®²å¸4</label> |
| | | <referenceTo>User</referenceTo> |
| | | <relationshipName>TrainingLecturer4inAssess</relationshipName> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>TrainingLecturer5__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>æè¯¾è®²å¸5</label> |
| | | <referenceTo>User</referenceTo> |
| | | <relationshipName>TrainingLecturer5inAssess</relationshipName> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Type__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>ç±»å«</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Picklist</type> |
| | | <valueSet> |
| | | <restricted>true</restricted> |
| | | <valueSetDefinition> |
| | | <sorted>false</sorted> |
| | | <value> |
| | | <fullName>æè¯¾</fullName> |
| | | <default>false</default> |
| | | <label>æè¯¾</label> |
| | | </value> |
| | | <value> |
| | | <fullName>èæ ¸</fullName> |
| | | <default>false</default> |
| | | <label>èæ ¸</label> |
| | | </value> |
| | | </valueSetDefinition> |
| | | </valueSet> |
| | | </fields> |
| | | <label>å
é临åºå·¥ç¨å¸æè¯¾/èæ ¸æ¥å</label> |
| | | <nameField> |
| | | <label>æè¯¾/èæ ¸æ¥ååç§°</label> |
| | | <type>Text</type> |
| | | </nameField> |
| | | <searchLayouts/> |
| | | <sharingModel>ControlledByParent</sharingModel> |
| | | <visibility>Public</visibility> |
| | | <webLinks> |
| | | <fullName>CreateAssessmentReport</fullName> |
| | | <availability>online</availability> |
| | | <displayType>massActionButton</displayType> |
| | | <linkType>javascript</linkType> |
| | | <masterLabel>æ°å»ºæè¯¾/èæ ¸æ¥å</masterLabel> |
| | | <openType>onClickJavaScript</openType> |
| | | <protected>false</protected> |
| | | <requireRowSelection>true</requireRowSelection> |
| | | <url>{!RequireScript("/soap/ajax/51.0/connection.js")} |
| | | {!RequireScript("/soap/ajax/51.0/apex.js")} |
| | | //2021-10-21 gwy çæ¬æ´æ¹ä¸º51.0 |
| | | var foo = function(){ |
| | | var status = "{!Campaign.Status}"; |
| | | if(status == 'å
¬å¼ä¸'){ |
| | | window.open( "/apex/AssessmentReport?camid={!URLENCODE(Campaign.Id)}", "_top"); |
| | | }else{ |
| | | alert("åªææ¹ååæè½å建æ¥å!"); |
| | | } |
| | | } |
| | | foo();</url> |
| | | </webLinks> |
| | | </CustomObject> |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <CustomObject xmlns="http://soap.sforce.com/2006/04/metadata"> |
| | | <actionOverrides> |
| | | <actionName>Accept</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>CancelEdit</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Clone</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Delete</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Edit</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>List</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>New</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>SaveEdit</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Tab</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>View</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <allowInChatterGroups>false</allowInChatterGroups> |
| | | <compactLayoutAssignment>SYSTEM</compactLayoutAssignment> |
| | | <deploymentStatus>Deployed</deploymentStatus> |
| | | <enableActivities>false</enableActivities> |
| | | <enableBulkApi>true</enableBulkApi> |
| | | <enableChangeDataCapture>false</enableChangeDataCapture> |
| | | <enableEnhancedLookup>false</enableEnhancedLookup> |
| | | <enableFeeds>false</enableFeeds> |
| | | <enableHistory>true</enableHistory> |
| | | <enableReports>true</enableReports> |
| | | <enableSearch>true</enableSearch> |
| | | <enableSharing>true</enableSharing> |
| | | <enableStreamingApi>true</enableStreamingApi> |
| | | <externalSharingModel>ControlledByParent</externalSharingModel> |
| | | <fields> |
| | | <fullName>Account__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>ç§å®¤</label> |
| | | <referenceTo>Account</referenceTo> |
| | | <relationshipLabel>ä¿æè®¾å¤å段åå²</relationshipLabel> |
| | | <relationshipName>Accountdi5I</relationshipName> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>AssetId__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>èµäº§</label> |
| | | <referenceTo>Asset</referenceTo> |
| | | <relationshipLabel>ä¿æè®¾å¤å段åå²</relationshipLabel> |
| | | <relationshipName>AssetId</relationshipName> |
| | | <relationshipOrder>0</relationshipOrder> |
| | | <reparentableMasterDetail>true</reparentableMasterDetail> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>MasterDetail</type> |
| | | <writeRequiresMasterRead>false</writeRequiresMasterRead> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Asset_Inspection_ExtID__c</fullName> |
| | | <description>Asset.Id_æ£æµåå·</description> |
| | | <externalId>true</externalId> |
| | | <label>æ£æµåå·(å¤é¨ID)</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Asset_Serial_number__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>AssetId__r.OwnershipMachine_No__c &" : " & AssetId__r.SerialNumber</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>设å¤+SN</label> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Caluculated_start_day__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>IF( |
| | | MONTH(Today())=12, |
| | | IF( |
| | | Examination_Date__c >= DATE(YEAR(today()),01,01), |
| | | 1, |
| | | 0 |
| | | ), |
| | | IF( Examination_Date__c >= DATE(YEAR(today())-1,MONTH(Today())+1,01), |
| | | 1, |
| | | 0 |
| | | ) |
| | | )</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>ç»è®¡å¼å§æ¥(1å¹´å)</label> |
| | | <precision>18</precision> |
| | | <required>false</required> |
| | | <scale>0</scale> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Number</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>CreateDateTime__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>CreatedDate</formula> |
| | | <label>æ¥æ</label> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>DateTime</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Examination_Date__c</fullName> |
| | | <description>æ£æµåå·ã«ãã1ã¬ã³ã¼ãã«ãã</description> |
| | | <externalId>false</externalId> |
| | | <label>ç¹æ£æ¥</label> |
| | | <required>false</required> |
| | | <trackHistory>true</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Date</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Field_Api_Name__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>åæ®µApi</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <trackHistory>true</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Field_Lable_Name__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>åæ®µå</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Inspection_Comment__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>ç¹æ£å¤æ³¨</label> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>TextArea</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Inspection_Count__c</fullName> |
| | | <description>ç¹æ¤çªå·ãæ°ãããªããã³ã«ã1ã¬ã³ã¼ããå¢ãã¾ãããã®ã¬ã³ã¼ãã®ä»ã®é
ç®ã®å¤ã1ã«ãªãã¾ãã</description> |
| | | <externalId>false</externalId> |
| | | <formula>IF(AND(Field_Api_Name__c = "Inspection_report_number__c", Isblank(NewValue__c) = False), 1,0)</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>ç¹æ£åæ°(æè®¾å¤)</label> |
| | | <precision>18</precision> |
| | | <required>false</required> |
| | | <scale>0</scale> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Number</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Inspection_Report__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>ç¹æ£æ¥å书</label> |
| | | <referenceTo>Inspection_Report__c</referenceTo> |
| | | <relationshipLabel>ä¿æè®¾å¤å段åå²</relationshipLabel> |
| | | <relationshipName>AssetHistory</relationshipName> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Inspection_Result_NG__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>IF(Inspection_Result__c="䏿£å¸¸",1,0)</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>ç¹æ£ç»æ-䏿£å¸¸æ¬¡æ°</label> |
| | | <precision>18</precision> |
| | | <required>false</required> |
| | | <scale>0</scale> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Number</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Inspection_Result_OK__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>IF(Inspection_Result__c = "æ£å¸¸",1,0)</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>ç¹æ£ç»æ-æ£å¸¸æ¬¡æ°</label> |
| | | <precision>18</precision> |
| | | <required>false</required> |
| | | <scale>0</scale> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Number</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Inspection_Result__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>ç¹æ£ç»æ</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <trackHistory>true</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Inspection_Staff_State__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>ç¹æ£äººçç</label> |
| | | <length>80</length> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Inspection_Times__c</fullName> |
| | | <defaultValue>0</defaultValue> |
| | | <externalId>false</externalId> |
| | | <label>ç¹æ£åæ°(æåæ®)</label> |
| | | <precision>18</precision> |
| | | <required>false</required> |
| | | <scale>0</scale> |
| | | <trackHistory>true</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Number</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Inspection_name__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>ç¹æ£äºº</label> |
| | | <referenceTo>User</referenceTo> |
| | | <relationshipName>Inspection_namer46H</relationshipName> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Inspection_reportID__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Inspection_name__r.Id</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>ç¹æ£äººID</label> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Inspection_report_number__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>IF ( Field_Api_Name__c = 'Inspection_report_number__c', |
| | | NewValue__c , |
| | | '' |
| | | )</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>æ£æµåå·</label> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Inspection_staff__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>ç¹æ£äºº(ææ¬)</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>NewValue__c</fullName> |
| | | <externalId>true</externalId> |
| | | <label>NewValue</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <trackHistory>true</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>OldValue__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>OldValue</label> |
| | | <length>255</length> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Operation__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>IF(UPPER(Field_Api_Name__c) = 'ID', |
| | | 'å·²å建ã', |
| | | IF(ISBLANK(OldValue__c), |
| | | 'ã' + Field_Lable_Name__c + 'ã æ´æ¹å° ã' + NewValue__c + 'ã', |
| | | IF(ISBLANK(NewValue__c), |
| | | 'å·²å é¤ ã' + Field_Lable_Name__c + 'ã ä¸ç ' + OldValue__c, |
| | | 'å° ã' + Field_Lable_Name__c + 'ã ä» ' + OldValue__c + ' æ´æ¹è³ ã' + NewValue__c + 'ã' |
| | | )))</formula> |
| | | <label>æä½</label> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Operator__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>ç¨æ·</label> |
| | | <referenceTo>User</referenceTo> |
| | | <relationshipName>Operator</relationshipName> |
| | | <required>false</required> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>ProductCount__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>1</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>è£½åæ°</label> |
| | | <precision>18</precision> |
| | | <required>false</required> |
| | | <scale>0</scale> |
| | | <trackHistory>false</trackHistory> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Number</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <label>ä¿æè®¾å¤å段åå²</label> |
| | | <nameField> |
| | | <displayFormat>AH{YYYY}{0000000000}</displayFormat> |
| | | <label>ä¿æè®¾å¤å段åå²</label> |
| | | <trackHistory>false</trackHistory> |
| | | <type>AutoNumber</type> |
| | | </nameField> |
| | | <searchLayouts/> |
| | | <sharingModel>ControlledByParent</sharingModel> |
| | | <validationRules> |
| | | <fullName>CanNotChangeAfter24H</fullName> |
| | | <active>false</active> |
| | | <description>æ¥æå士ã®å¼ãç®ã®å ´åãæ»ãå¤ã®åä½ã¯dayã§ãã</description> |
| | | <errorConditionFormula>NOT(ISNEW()) && (NOW() - CreatedDate > 1)</errorConditionFormula> |
| | | <errorMessage>ä¸è½æ´æ°è¶
è¿24å°æ¶çç¹æ£å±¥åï¼è¯·å
è¾å
¥æ°çæ£æµåå·</errorMessage> |
| | | </validationRules> |
| | | <visibility>Public</visibility> |
| | | </CustomObject> |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <CustomObject xmlns="http://soap.sforce.com/2006/04/metadata"> |
| | | <actionOverrides> |
| | | <actionName>Accept</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>CancelEdit</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Clone</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Delete</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Edit</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>List</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>New</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>SaveEdit</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>Tab</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <actionOverrides> |
| | | <actionName>View</actionName> |
| | | <type>Default</type> |
| | | </actionOverrides> |
| | | <allowInChatterGroups>false</allowInChatterGroups> |
| | | <compactLayoutAssignment>SYSTEM</compactLayoutAssignment> |
| | | <deploymentStatus>Deployed</deploymentStatus> |
| | | <enableActivities>true</enableActivities> |
| | | <enableBulkApi>true</enableBulkApi> |
| | | <enableChangeDataCapture>false</enableChangeDataCapture> |
| | | <enableFeeds>false</enableFeeds> |
| | | <enableHistory>false</enableHistory> |
| | | <enableReports>true</enableReports> |
| | | <enableSearch>true</enableSearch> |
| | | <enableSharing>true</enableSharing> |
| | | <enableStreamingApi>true</enableStreamingApi> |
| | | <externalSharingModel>Private</externalSharingModel> |
| | | <fields> |
| | | <fullName>Approved_Time__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>审æ¹å®ææ¶é´</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>DateTime</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>AutoNumber__c</fullName> |
| | | <displayFormat>{0000}</displayFormat> |
| | | <externalId>false</externalId> |
| | | <label>æµæ°´å·</label> |
| | | <trackTrending>false</trackTrending> |
| | | <type>AutoNumber</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Batch_Processing__c</fullName> |
| | | <defaultValue>false</defaultValue> |
| | | <externalId>false</externalId> |
| | | <label>Batchå¤çä¸</label> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Checkbox</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Branch_F__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>TEXT(Owner:User.Branch__c)</formula> |
| | | <label>é¨é¨/åå
¬å¸</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Buzhang_ID_F__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>$User.BuZhangEquipmentId__c</formula> |
| | | <label>é¨é¿ID</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Buzhang__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>é¨é¿</label> |
| | | <referenceTo>User</referenceTo> |
| | | <relationshipName>AssetMaintain_Buzhang</relationshipName> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Buzhang_eq_Zongjian__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Buzhang__c == Zongjian__c</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>é¨é¿=æ»ç</label> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Checkbox</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>CC_Email1__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>ç»´æ¤å审æ¹å
񄧮Email1</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Email</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>CC_Email2__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>ç»´æ¤å审æ¹å
񄧮Email2</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Email</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>CC_Email3__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>ç»´æ¤å审æ¹å
񄧮Email3</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Email</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>CC_User1__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>ç»´æ¤å审æ¹å
񄧮User1</label> |
| | | <referenceTo>User</referenceTo> |
| | | <relationshipName>AssetMaintain_CC_User1</relationshipName> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>CC_User2__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>ç»´æ¤å审æ¹å
񄧮User2</label> |
| | | <referenceTo>User</referenceTo> |
| | | <relationshipName>AssetMaintain_CC_User2</relationshipName> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>CC_User3__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>ç»´æ¤å审æ¹å
񄧮User3</label> |
| | | <referenceTo>User</referenceTo> |
| | | <relationshipName>AssetMaintain_CC_User3</relationshipName> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>CC_User4__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>ç»´æ¤å审æ¹å
񄧮User4</label> |
| | | <referenceTo>User</referenceTo> |
| | | <relationshipName>AssetMaintain_CC_User4</relationshipName> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>CC_User5__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>ç»´æ¤å审æ¹å
񄧮User5</label> |
| | | <referenceTo>User</referenceTo> |
| | | <relationshipName>AssetMaintain_CC_User5</relationshipName> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Date__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>ç»´æ¤æ¥æ</label> |
| | | <required>true</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Date</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>DetailCount__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æç»æ°é</label> |
| | | <summaryForeignKey>AssetMaintainDetail__c.AssetMaintainHeader__c</summaryForeignKey> |
| | | <summaryOperation>count</summaryOperation> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Summary</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>MaintainType_Abbr_F__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>CASE(TEXT(MaintainType__c), |
| | | 'æå¿µæ¾å(æå¿µåæ¶)', 'DNQX', |
| | | 'æå¿µæ¾å(éæ°ç»å½)', 'DNDL', |
| | | 'å»ç»','DJ', |
| | | 'è§£å»','JD', |
| | | 'å®ç©æ¥åº','BFSW', |
| | | 'åºå¼(丢失)','BFDS', |
| | | 'åºå¼(çäº)','BFPK', |
| | | 'çç(æ°é管ç)','PY', |
| | | 'èæå·²æ¶èæ°','XH', |
| | | '')</formula> |
| | | <label>ç»´æ¤ç±»å缩å</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>MaintainType__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>ç»´æ¤ç±»å</label> |
| | | <required>true</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Picklist</type> |
| | | <valueSet> |
| | | <restricted>true</restricted> |
| | | <valueSetDefinition> |
| | | <sorted>false</sorted> |
| | | <value> |
| | | <fullName>æå¿µæ¾å(æå¿µåæ¶)</fullName> |
| | | <default>false</default> |
| | | <label>æå¿µæ¾å(æå¿µåæ¶)</label> |
| | | </value> |
| | | <value> |
| | | <fullName>æå¿µæ¾å(éæ°ç»å½)</fullName> |
| | | <default>false</default> |
| | | <label>æå¿µæ¾å(éæ°ç»å½)</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å»ç»</fullName> |
| | | <default>false</default> |
| | | <label>å»ç»</label> |
| | | </value> |
| | | <value> |
| | | <fullName>è§£å»</fullName> |
| | | <default>false</default> |
| | | <label>è§£å»</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å®ç©æ¥åº</fullName> |
| | | <default>false</default> |
| | | <label>å®ç©æ¥åº</label> |
| | | </value> |
| | | <value> |
| | | <fullName>åºå¼(丢失)</fullName> |
| | | <default>false</default> |
| | | <label>åºå¼(丢失)</label> |
| | | </value> |
| | | <value> |
| | | <fullName>åºå¼(çäº)</fullName> |
| | | <default>false</default> |
| | | <label>åºå¼(çäº)</label> |
| | | </value> |
| | | <value> |
| | | <fullName>çç(æ°é管ç)</fullName> |
| | | <default>false</default> |
| | | <label>çç(æ°é管ç)</label> |
| | | </value> |
| | | <value> |
| | | <fullName>èæå·²æ¶èæ°</fullName> |
| | | <default>false</default> |
| | | <label>èæå·²æ¶èæ°</label> |
| | | </value> |
| | | </valueSetDefinition> |
| | | </valueSet> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Month_F__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>LPAD(TEXT(MONTH(DATEVALUE(CreatedDate))) , 2, '0')</formula> |
| | | <label>æä»½</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>OCSM_Period_New__c</fullName> |
| | | <description>IF(month(DATEVALUE(CreatedDate)) <= 3 && year(DATEVALUE(CreatedDate))<=2021, |
| | | if(MONTH(today()) <= 3,text(year(DATEVALUE(CreatedDate)) - 1- 1867)&"P", |
| | | text(year(DATEVALUE(CreatedDate)) - 1867)&"P"), |
| | | if(month(DATEVALUE(CreatedDate)) <= 3, "FY" & text(year(DATEVALUE(CreatedDate))) ,"FY" & text(year(DATEVALUE(CreatedDate+1)) |
| | | )& |
| | | IF(OR(month(DATEVALUE(CreatedDate)) <=3, month(DATEVALUE(CreatedDate)) >=10), " 2Hâ", " 1Hâ") |
| | | ))</description> |
| | | <externalId>false</externalId> |
| | | <formula>IF(YEAR(DATEVALUE(CreatedDate)) <= 2021 && month(DATEVALUE(CreatedDate)) <= 3, |
| | | text(YEAR(DATEVALUE(CreatedDate)) - 1- 1867) & "P" & |
| | | IF(OR(month(DATEVALUE(CreatedDate)) <=3, month(DATEVALUE(CreatedDate)) >=10), "B", "A"), |
| | | if(YEAR(DATEVALUE(CreatedDate)) < 2021 && month(DATEVALUE(CreatedDate)) > 3, |
| | | text(YEAR(DATEVALUE(CreatedDate))- 1867 ) & "P" & |
| | | IF(OR(month(DATEVALUE(CreatedDate)) <=3, month(DATEVALUE(CreatedDate)) >=10), "B", "A"), |
| | | (if(month(DATEVALUE(CreatedDate)) <= 3, |
| | | "FY" & text(YEAR(DATEVALUE(CreatedDate))) , "FY" & text(YEAR(DATEVALUE(CreatedDate))+1))& |
| | | IF(OR(month(DATEVALUE(CreatedDate)) <=3, month(DATEVALUE(CreatedDate)) >=10), " 2Hâ", " 1Hâ") |
| | | ) |
| | | ) |
| | | )</formula> |
| | | <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs> |
| | | <label>OCSMæ</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>OCSM_Period__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>Case((year(DATEVALUE(CreatedDate))+ |
| | | Case(month(DATEVALUE(CreatedDate)), |
| | | 1,-1, |
| | | 2,-1, |
| | | 3,-1,0)), |
| | | 2025,"158P", |
| | | 2024,"157P", |
| | | 2023,"156P", |
| | | 2022,"155P", |
| | | 2021,"154P", |
| | | 2020,"153P", |
| | | 2019,"152P", |
| | | 2018,"151P", |
| | | 2017,"150P", |
| | | 2016,"149P", |
| | | 2015,"148P", |
| | | 2014,"147P", |
| | | 2013,"146P", |
| | | 2012,"145P", |
| | | 2011,"144P", |
| | | 2010,"143P", |
| | | 2009,"142P", |
| | | 2008,"141P", |
| | | 2007,"140P", |
| | | 2006,"139P", |
| | | 2005,"138P", |
| | | 2004,"137P", |
| | | "ERROR") & |
| | | CASE(month(DATEVALUE(CreatedDate)) |
| | | ,4,"A",5,"A",6,"A",7,"A",8,"A",9,"A", |
| | | 10,"B",11,"B",12,"B",1,"B",2,"B",3,"B","")</formula> |
| | | <label>OCSMæï¼Oldï¼</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Status__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>ç»´æ¤åç¶æ</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Picklist</type> |
| | | <valueSet> |
| | | <restricted>true</restricted> |
| | | <valueSetDefinition> |
| | | <sorted>false</sorted> |
| | | <value> |
| | | <fullName>èæ¡ä¸</fullName> |
| | | <default>true</default> |
| | | <label>èæ¡ä¸</label> |
| | | </value> |
| | | <value> |
| | | <fullName>ç³è¯·ä¸</fullName> |
| | | <default>false</default> |
| | | <label>ç³è¯·ä¸</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å·²æ¹å</fullName> |
| | | <default>false</default> |
| | | <label>å·²æ¹å</label> |
| | | </value> |
| | | <value> |
| | | <fullName>已宿</fullName> |
| | | <default>false</default> |
| | | <label>已宿</label> |
| | | </value> |
| | | <value> |
| | | <fullName>å¡«å宿¯</fullName> |
| | | <default>false</default> |
| | | <label>å¡«å宿¯</label> |
| | | </value> |
| | | </valueSetDefinition> |
| | | </valueSet> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Submit_Person__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>æäº¤äººå</label> |
| | | <referenceTo>User</referenceTo> |
| | | <relationshipName>AssetMaintain_Submit_Person</relationshipName> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Submit_Time__c</fullName> |
| | | <externalId>false</externalId> |
| | | <label>æäº¤æ¶é´</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>DateTime</type> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Zongjian_ID_F__c</fullName> |
| | | <externalId>false</externalId> |
| | | <formula>$User.ZongjianId__c</formula> |
| | | <label>æ»çID</label> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Text</type> |
| | | <unique>false</unique> |
| | | </fields> |
| | | <fields> |
| | | <fullName>Zongjian__c</fullName> |
| | | <deleteConstraint>SetNull</deleteConstraint> |
| | | <externalId>false</externalId> |
| | | <label>æ»ç</label> |
| | | <referenceTo>User</referenceTo> |
| | | <relationshipName>AssetMaintain_Zongjian</relationshipName> |
| | | <required>false</required> |
| | | <trackTrending>false</trackTrending> |
| | | <type>Lookup</type> |
| | | </fields> |
| | | <label>æ°æ®ç»´æ¤å</label> |
| | | <listViews> |
| | | <fullName>All</fullName> |
| | | <columns>NAME</columns> |
| | | <columns>Status__c</columns> |
| | | <columns>Date__c</columns> |
| | | <columns>MaintainType__c</columns> |
| | | <columns>DetailCount__c</columns> |
| | | <filterScope>Everything</filterScope> |
| | | <label>å
¨é¨</label> |
| | | <language>en_US</language> |
| | | </listViews> |
| | | <nameField> |
| | | <label>ç»´æ¤åç¼å·</label> |
| | | <type>Text</type> |
| | | </nameField> |
| | | <recordTypes> |
| | | <fullName>AssetMaintain_NotScrapped</fullName> |
| | | <active>true</active> |
| | | <label>éå®ç©æ¥åº</label> |
| | | <picklistValues> |
| | | <picklist>MaintainType__c</picklist> |
| | | <values> |
| | | <fullName>å»ç»</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>åºå¼%28丢失%29</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>åºå¼%28çäº%29</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>æå¿µæ¾å%28æå¿µåæ¶%29</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>æå¿µæ¾å%28éæ°ç»å½%29</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>çç%28æ°é管ç%29</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>èæå·²æ¶èæ°</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>è§£å»</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | </picklistValues> |
| | | <picklistValues> |
| | | <picklist>Status__c</picklist> |
| | | <values> |
| | | <fullName>已宿</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>èæ¡ä¸</fullName> |
| | | <default>true</default> |
| | | </values> |
| | | </picklistValues> |
| | | </recordTypes> |
| | | <recordTypes> |
| | | <fullName>AssetMaintain_Scrapped</fullName> |
| | | <active>true</active> |
| | | <label>å®ç©æ¥åº</label> |
| | | <picklistValues> |
| | | <picklist>MaintainType__c</picklist> |
| | | <values> |
| | | <fullName>å®ç©æ¥åº</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | </picklistValues> |
| | | <picklistValues> |
| | | <picklist>Status__c</picklist> |
| | | <values> |
| | | <fullName>å¡«å宿¯</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>已宿</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>å·²æ¹å</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>ç³è¯·ä¸</fullName> |
| | | <default>false</default> |
| | | </values> |
| | | <values> |
| | | <fullName>èæ¡ä¸</fullName> |
| | | <default>true</default> |
| | | </values> |
| | | </picklistValues> |
| | | </recordTypes> |
| | | <searchLayouts> |
| | | <customTabListAdditionalFields>Date__c</customTabListAdditionalFields> |
| | | <customTabListAdditionalFields>MaintainType__c</customTabListAdditionalFields> |
| | | <customTabListAdditionalFields>Status__c</customTabListAdditionalFields> |
| | | <lookupDialogsAdditionalFields>Date__c</lookupDialogsAdditionalFields> |
| | | <lookupDialogsAdditionalFields>MaintainType__c</lookupDialogsAdditionalFields> |
| | | <lookupDialogsAdditionalFields>Status__c</lookupDialogsAdditionalFields> |
| | | <lookupPhoneDialogsAdditionalFields>Date__c</lookupPhoneDialogsAdditionalFields> |
| | | <lookupPhoneDialogsAdditionalFields>MaintainType__c</lookupPhoneDialogsAdditionalFields> |
| | | <lookupPhoneDialogsAdditionalFields>Status__c</lookupPhoneDialogsAdditionalFields> |
| | | <searchResultsAdditionalFields>Date__c</searchResultsAdditionalFields> |
| | | <searchResultsAdditionalFields>MaintainType__c</searchResultsAdditionalFields> |
| | | <searchResultsAdditionalFields>Status__c</searchResultsAdditionalFields> |
| | | </searchLayouts> |
| | | <sharingModel>ReadWrite</sharingModel> |
| | | <validationRules> |
| | | <fullName>Cannot_Change_Date</fullName> |
| | | <active>true</active> |
| | | <description>ç»´æ¤æ¥æä¸å¯ä¿®æ¹</description> |
| | | <errorConditionFormula>!ISNEW() && ISCHANGED(Date__c)</errorConditionFormula> |
| | | <errorMessage>ç»´æ¤æ¥æä¸å¯ä¿®æ¹</errorMessage> |
| | | </validationRules> |
| | | <validationRules> |
| | | <fullName>Cannot_Change_MaintainType</fullName> |
| | | <active>true</active> |
| | | <description>ç»´æ¤ç±»åä¸å¯ä¿®æ¹</description> |
| | | <errorConditionFormula>!ISNEW() && ISCHANGED( MaintainType__c)</errorConditionFormula> |
| | | <errorMessage>ç»´æ¤ç±»åä¸å¯ä¿®æ¹</errorMessage> |
| | | </validationRules> |
| | | <validationRules> |
| | | <fullName>Cannot_Change_Name</fullName> |
| | | <active>true</active> |
| | | <description>ç»´æ¤åç¼å·ä¸å¯ä¿®æ¹</description> |
| | | <errorConditionFormula>!ISNEW() && ISCHANGED(Name)</errorConditionFormula> |
| | | <errorMessage>ç»´æ¤åç¼å·ä¸å¯ä¿®æ¹</errorMessage> |
| | | </validationRules> |
| | | <validationRules> |
| | | <fullName>Cannot_Submit_Without_BuzhangZongjian</fullName> |
| | | <active>true</active> |
| | | <description>æ¤æ¹å请æ±éè¦ é¨é¿ æ æ»ç åæ®µç¡®å®çä¸ä¸ä¸ªå®¡æ¹äººãæ¤å¼ä¸ºç©ºãæå
³è¯¦æ
ï¼è¯·ä¸æ¨ç管çååå¾èç³»ã</description> |
| | | <errorConditionFormula>ISPICKVAL(Status__c, 'å¡«å宿¯') |
| | | && ISBLANK(Buzhang__c) |
| | | && ISBLANK(Zongjian__c)</errorConditionFormula> |
| | | <errorMessage>æ¤æ¹å请æ±éè¦ é¨é¿ æ æ»ç åæ®µç¡®å®çä¸ä¸ä¸ªå®¡æ¹äººãæ¤å¼ä¸ºç©ºãæå
³è¯¦æ
ï¼è¯·ä¸æ¨ç管çååå¾èç³»ã</errorMessage> |
| | | </validationRules> |
| | | <validationRules> |
| | | <fullName>Scrap_Only</fullName> |
| | | <active>true</active> |
| | | <description>åªæã2B3_å¤åä¸å¿ç®¡çè
(ç
§ç)ãç®æ¡£çç¨æ·å¯ä»¥åå®ç©æ¥åºä»¥å¤çç»´æ¤</description> |
| | | <errorConditionFormula>ISNEW() && !ISPICKVAL(MaintainType__c, 'å®ç©æ¥åº') |
| | | && !CONTAINS($Label.ProfileId_EquCenAdminPic, Owner:User.ProfileId) |
| | | && !CONTAINS($Label.ProfileId_SystemAdmin, Owner:User.ProfileId)</errorConditionFormula> |
| | | <errorMessage>åªæã2B3_å¤åä¸å¿ç®¡çè
(ç
§ç)ãç®æ¡£çç¨æ·å¯ä»¥åå®ç©æ¥åºä»¥å¤çç»´æ¤</errorMessage> |
| | | </validationRules> |
| | | <visibility>Public</visibility> |
| | | <webLinks> |
| | | <fullName>Abandon</fullName> |
| | | <availability>online</availability> |
| | | <displayType>button</displayType> |
| | | <linkType>javascript</linkType> |
| | | <masterLabel>åºå¼</masterLabel> |
| | | <openType>onClickJavaScript</openType> |
| | | <protected>false</protected> |
| | | <url>{!REQUIRESCRIPT('/soap/ajax/51.0/connection.js')} |
| | | {!REQUIRESCRIPT('/soap/ajax/51.0/apex.js')} |
| | | //2021-10-22 gwy çæ¬æ´æ¹ä¸º51.0 |
| | | var result = sforce.connection.describeSObject('AssetMaintainHeader__c'); |
| | | if (result.createable == 'false') { |
| | | alert('没ææä½åºå¼çæé'); |
| | | } |
| | | else{ |
| | | var rs = sforce.apex.execute("AssetMaintainHeaderWebService","abandon",{amhId:'{!AssetMaintainHeader__c.Id}'}); |
| | | if(rs == '1'){ |
| | | alert('å·²å¯å¨Batchï¼å®ææ¶ä¼æé®ä»¶æé'); |
| | | window.location.href = window.location; |
| | | } |
| | | else{ |
| | | alert(rs); |
| | | } |
| | | }</url> |
| | | </webLinks> |
| | | <webLinks> |
| | | <fullName>AssetMaintainDetail</fullName> |
| | | <availability>online</availability> |
| | | <displayType>button</displayType> |
| | | <linkType>javascript</linkType> |
| | | <masterLabel>ç»´æ¤åæç»</masterLabel> |
| | | <openType>onClickJavaScript</openType> |
| | | <protected>false</protected> |
| | | <url>window.open('/apex/AssetMaintainDetail?id={! AssetMaintainHeader__c.Id }');</url> |
| | | </webLinks> |
| | | <webLinks> |
| | | <fullName>AssetMaintainPage</fullName> |
| | | <availability>online</availability> |
| | | <displayType>button</displayType> |
| | | <linkType>javascript</linkType> |
| | | <masterLabel>æ°æ®ç»´æ¤ç»é¢</masterLabel> |
| | | <openType>onClickJavaScript</openType> |
| | | <protected>false</protected> |
| | | <url>{!RequireScript("/soap/ajax/51.0/connection.js")} |
| | | {!RequireScript("/soap/ajax/51.0/apex.js")} |
| | | {!RequireScript("/resource/CommonUtilJs")} |
| | | //2021-10-22 gwy çæ¬æ´æ¹ä¸º51.0 |
| | | var foo = function() { |
| | | window.open("/apex/AssetMaintain?Id={!URLENCODE(AssetMaintainHeader__c.Id)}"); |
| | | } |
| | | foo();</url> |
| | | </webLinks> |
| | | <webLinks> |
| | | <fullName>delete_apply</fullName> |
| | | <availability>online</availability> |
| | | <displayType>button</displayType> |
| | | <linkType>javascript</linkType> |
| | | <masterLabel>å é¤</masterLabel> |
| | | <openType>onClickJavaScript</openType> |
| | | <protected>false</protected> |
| | | <url>{!REQUIRESCRIPT('/soap/ajax/51.0/connection.js')} |
| | | {!REQUIRESCRIPT('/soap/ajax/51.0/apex.js')} |
| | | //2021-10-22 gwy çæ¬æ´æ¹ä¸º51.0 |
| | | var result = sforce.connection.describeSObject('AssetMaintainHeader__c'); |
| | | if (result.createable == 'false') { |
| | | alert('没æå é¤ç³è¯·çæé'); |
| | | } |
| | | else if(confirm("æ¯å¦ç¡®å®å é¤ï¼")){ |
| | | var rs = sforce.apex.execute("AssetMaintainHeaderWebService","deleteApply",{amhId:'{!AssetMaintainHeader__c.Id}'}); |
| | | if(rs == '1'){ |
| | | alert('å 餿å'); |
| | | window.location.href = window.location; |
| | | } |
| | | else{ |
| | | alert(rs); |
| | | } |
| | | }</url> |
| | | </webLinks> |
| | | <webLinks> |
| | | <fullName>submit_approval_process</fullName> |
| | | <availability>online</availability> |
| | | <displayType>button</displayType> |
| | | <linkType>javascript</linkType> |
| | | <masterLabel>æäº¤å¾
审æ¹</masterLabel> |
| | | <openType>onClickJavaScript</openType> |
| | | <protected>false</protected> |
| | | <url>{!REQUIRESCRIPT('/soap/ajax/51.0/connection.js')} |
| | | {!REQUIRESCRIPT('/soap/ajax/51.0/apex.js')} |
| | | //2021-10-22 gwy çæ¬æ´æ¹ä¸º51.0 |
| | | var result = sforce.connection.describeSObject('AssetMaintainHeader__c'); |
| | | if (result.createable == 'false') { |
| | | alert('没ææäº¤ç³è¯·çæé'); |
| | | } |
| | | else{ |
| | | if (confirm("䏿¦æäº¤æ¤è®°å½ä»¥å¾
æ¹åï¼æ ¹æ®æ¨ç设置æ¨å¯è½ä¸åè½å¤ç¼è¾æ¤è®°å½æå°ä»ä»æ¹åè¿ç¨ä¸è°åãæ¯å¦ç»§ç»ï¼")) { |
| | | var rs = sforce.apex.execute("AssetMaintainHeaderWebService","submitApply",{amhId:'{!AssetMaintainHeader__c.Id}'}); |
| | | if(rs == '1'){ |
| | | alert('æäº¤æå'); |
| | | window.location.href = window.location; |
| | | } |
| | | else{ |
| | | alert(rs); |
| | | } |
| | | } |
| | | |
| | | }</url> |
| | | </webLinks> |
| | | </CustomObject> |
| force-app/main/default/objects/AssetModifyBelongsChangeDetail__c.object
force-app/main/default/objects/AssetModifyBelongsChange__c.object
force-app/main/default/objects/AssetRelationship.object
force-app/main/default/objects/Asset_EquipmentSet_Managment_Code__c.object
force-app/main/default/objects/Asset_Service_Of_Target__c.object
force-app/main/default/objects/AssistantProgress.object
force-app/main/default/objects/AssociatedLocation.object
force-app/main/default/objects/AuthorizationForm.object
force-app/main/default/objects/AuthorizationFormConsent.object
force-app/main/default/objects/AuthorizationFormDataUse.object
force-app/main/default/objects/AuthorizationFormText.object
force-app/main/default/objects/BI_OpportunityLineItem__c.object
force-app/main/default/objects/BI_Opportunity__c.object
force-app/main/default/objects/BI_Product2__c.object
force-app/main/default/objects/BI_Statu_Achievements__c.object
force-app/main/default/objects/BMEFollowup__c.object
force-app/main/default/objects/BSS_Master__c.object
force-app/main/default/objects/BackOrderOpen__c.object
force-app/main/default/objects/BackOrder__c.object
force-app/main/default/objects/Backorder_Comment__c.object
force-app/main/default/objects/BatchIF_Log__c.object
force-app/main/default/objects/BatchIF_Transfer__c.object
force-app/main/default/objects/Bid_Announcement__c.object
force-app/main/default/objects/Bulletin_Board__c.object
force-app/main/default/objects/BusinessBrand.object
force-app/main/default/objects/CIC__c.object
force-app/main/default/objects/CIC_and_product_middle_table__c.object
force-app/main/default/objects/CIC_case_and_product_middle_table__c.object
force-app/main/default/objects/Campaign.object
force-app/main/default/objects/CampaignLable__c.object
force-app/main/default/objects/CampaignMember.object
force-app/main/default/objects/CampaignMember__c.object
force-app/main/default/objects/Campaign_Cost__c.object
force-app/main/default/objects/CancelPostponePlan__c.object
force-app/main/default/objects/Case.object
force-app/main/default/objects/CaseContactRole.object
force-app/main/default/objects/ChatterActivity.object
force-app/main/default/objects/CollaborationGroup.object
force-app/main/default/objects/CollaborationGroupMember.object
force-app/main/default/objects/CommSubscription.object
force-app/main/default/objects/CommSubscriptionChannelType.object
force-app/main/default/objects/CommSubscriptionConsent.object
force-app/main/default/objects/CommSubscriptionTiming.object
force-app/main/default/objects/Comment_Sequence__c.object
force-app/main/default/objects/Common_Sequence__c.object
force-app/main/default/objects/Competition_Company__c.object
force-app/main/default/objects/Complaint__c.object
force-app/main/default/objects/ConsumApplySafetyStockMiddleTable__c.object
force-app/main/default/objects/Consum_Apply_Equipment_Set_Detail__c.object
force-app/main/default/objects/Consum_Apply_Equipment_Set__c.object
force-app/main/default/objects/Consum_Apply_Meta__mdt.object
force-app/main/default/objects/Consum_Apply__c.object
force-app/main/default/objects/Consum_Inventory_Detail__c.object
force-app/main/default/objects/ConsumableSales__c.object
force-app/main/default/objects/ConsumableSampleLineItem__c.object
force-app/main/default/objects/ConsumableSample__c.object
force-app/main/default/objects/Consumable_ET__c.object
force-app/main/default/objects/Consumable_Orderdetails__c.object
force-app/main/default/objects/Consumable_Promotion__c.object
force-app/main/default/objects/Consumable_accessories_invoice__c.object
force-app/main/default/objects/Consumable_order_LinkTable__c.object
force-app/main/default/objects/Consumable_order__c.object
force-app/main/default/objects/Consumable_order_details2__c.object
force-app/main/default/objects/Contact.object
force-app/main/default/objects/ContactPointAddress.object
force-app/main/default/objects/ContactPointConsent.object
force-app/main/default/objects/ContactPointEmail.object
force-app/main/default/objects/ContactPointPhone.object
force-app/main/default/objects/ContactPointTypeConsent.object
force-app/main/default/objects/ContactRequest.object
force-app/main/default/objects/ContentVersion.object
force-app/main/default/objects/Contract.object
force-app/main/default/objects/ContractContactRole.object
force-app/main/default/objects/CustomObject123__c.object
force-app/main/default/objects/Customer.object
force-app/main/default/objects/Daily_Report__c.object
force-app/main/default/objects/DataUseLegalBasis.object
force-app/main/default/objects/DataUsePurpose.object
force-app/main/default/objects/Dealer_Product__c.object
force-app/main/default/objects/Dealer_Stock__c.object
force-app/main/default/objects/Dealer_elationship__c.object
force-app/main/default/objects/DelegatedAccount.object
force-app/main/default/objects/DiscountProductApplicationDetail__c.object
force-app/main/default/objects/DiscountProductApplication__c.object
force-app/main/default/objects/DuplicateRecordItem.object
force-app/main/default/objects/DuplicateRecordSet.object
force-app/main/default/objects/EffectProgress__c.object
force-app/main/default/objects/EmailMessage.object
force-app/main/default/objects/EngagementChannelType.object
force-app/main/default/objects/Enquiry_No_Bidding_Apply__c.object
force-app/main/default/objects/Equipment_Set_Detail__c.object
force-app/main/default/objects/Equipment_Set__c.object
force-app/main/default/objects/Event.object
force-app/main/default/objects/Event_Oppotunity__c.object
force-app/main/default/objects/Event_Service__c.object
force-app/main/default/objects/Event__c.object
force-app/main/default/objects/ExchangeUserMapping.object
force-app/main/default/objects/ExpressionFilter.object
force-app/main/default/objects/ExpressionFilterCriteria.object
force-app/main/default/objects/ExternalEventMapping.object
force-app/main/default/objects/FSE_Regional_Assistant_Account__mdt.object
force-app/main/default/objects/FSE_Regional_Assistant__mdt.object
force-app/main/default/objects/FeedItem.object
force-app/main/default/objects/FixtureDeliverySlip__c.object
force-app/main/default/objects/FixtureRemindSnapshot__c.object
force-app/main/default/objects/Fixture_OneToOne_Link__c.object
force-app/main/default/objects/Fixture_Set_Detail__c.object
force-app/main/default/objects/Fixture_Set__c.object
force-app/main/default/objects/GIRSolutionAreaNumber__c.object
force-app/main/default/objects/GuaranteePeriodAlterationApplication__c.object
force-app/main/default/objects/GuaranteePeriodAlterationDetail__c.object
force-app/main/default/objects/IS_Opportunity_Demand_Configuration__c.object
force-app/main/default/objects/IS_Opportunity_Demand_Demonstration__c.object
force-app/main/default/objects/IS_Opportunity_Demand_Operating__c.object
force-app/main/default/objects/IS_Opportunity_Demand__c.object
force-app/main/default/objects/Idea.object
force-app/main/default/objects/Image.object
force-app/main/default/objects/ImportantProductCategory__c.object
force-app/main/default/objects/Individual.object
force-app/main/default/objects/Inquiry_form__c.object
force-app/main/default/objects/Inspection_Item__c.object
force-app/main/default/objects/Inspection_Report__c.object
force-app/main/default/objects/Inspectup_Plan__c.object
force-app/main/default/objects/InstructStatusMonthly__c.object
force-app/main/default/objects/Instruct_report__c.object
force-app/main/default/objects/Instructed_staff__c.object
force-app/main/default/objects/Inventory_Batch_Mapping__mdt.object
force-app/main/default/objects/Inventory_Detail__c.object
force-app/main/default/objects/Inventory_Header_New__c.object
force-app/main/default/objects/Inventory_Header__c.object
force-app/main/default/objects/Inventory_User_Permission__mdt.object
force-app/main/default/objects/JF_scope_Training__c.object
force-app/main/default/objects/Key_Product_Goals__c.object
force-app/main/default/objects/LTV_6_SS__c.object
force-app/main/default/objects/LastbuyProduct__c.object
force-app/main/default/objects/Lead.object
force-app/main/default/objects/License_Information__c.object
force-app/main/default/objects/Loaner_check_disinfection__c.object
force-app/main/default/objects/Location.object
force-app/main/default/objects/LocationTrustMeasure.object
force-app/main/default/objects/LogisticsInformation__c.object
force-app/main/default/objects/LostReport_Detail__c.object
force-app/main/default/objects/LostReport__c.object
force-app/main/default/objects/Lost_Report__c.object
force-app/main/default/objects/Lost_cancel_report__c.object
force-app/main/default/objects/MB4S__MotionBoardProperty__c.object
force-app/main/default/objects/MB_Account__c.object
force-app/main/default/objects/MB_Asset__c.object
force-app/main/default/objects/MB_Daily_Report__c.object
force-app/main/default/objects/MB_Event__c.object
force-app/main/default/objects/MB_Maintenance_Contract__c.object
force-app/main/default/objects/MB_OpportunityLineItem__c.object
force-app/main/default/objects/MB_Opportunity__c.object
force-app/main/default/objects/MB_Repair__c.object
force-app/main/default/objects/MB_Report__c.object
force-app/main/default/objects/MB_Statu_Achievements__c.object
force-app/main/default/objects/MB_TargetLineItem__c.object
force-app/main/default/objects/MB_Target__c.object
force-app/main/default/objects/Macro.object
force-app/main/default/objects/MacroAction.object
force-app/main/default/objects/MacroInstruction.object
force-app/main/default/objects/MacroUsage.object
force-app/main/default/objects/Maintenance_Contract_Asset_Estimate__c.object
force-app/main/default/objects/Maintenance_Contract_Asset__c.object
force-app/main/default/objects/Maintenance_Contract_Estimate__c.object
force-app/main/default/objects/Maintenance_Contract__c.object
force-app/main/default/objects/Maintenance_Product_Data_Details__c.object
force-app/main/default/objects/Maintenance_Product_Data__c.object
force-app/main/default/objects/Maintenance_Task__c.object
force-app/main/default/objects/ManagedContentVersion.object
force-app/main/default/objects/Material_For__c.object
force-app/main/default/objects/Medical_expense_Province__c.object
force-app/main/default/objects/Medical_expense_Request__c.object
force-app/main/default/objects/Medical_expense__c.object
force-app/main/default/objects/Medical_expense_product_middle__c.object
force-app/main/default/objects/MeetingManagement__c.object
force-app/main/default/objects/ModelLendingProduct__c.object
force-app/main/default/objects/Monthly_Report__c.object
force-app/main/default/objects/NetworkMember.object
force-app/main/default/objects/NetworkMemberChunk.object
force-app/main/default/objects/NewMaintenanceReport_Task__c.object
force-app/main/default/objects/NotesEventHistory__c.object
force-app/main/default/objects/Num_Major_Product__c.object
force-app/main/default/objects/OCM_Management_Province__c.object
force-app/main/default/objects/ODS__c.object
force-app/main/default/objects/OFSHospitalLayout__c.object
force-app/main/default/objects/OFSInsReportLayout__c.object
force-app/main/default/objects/OFSSetting__c.object
force-app/main/default/objects/OPDPlan__c.object
force-app/main/default/objects/ObjectPrefix__c.object
force-app/main/default/objects/OlympusCalendar__c.object
force-app/main/default/objects/OnCall_detail__c.object
force-app/main/default/objects/On_Call__c.object
force-app/main/default/objects/On_Line_Survey__c.object
force-app/main/default/objects/OppComment__c.object
force-app/main/default/objects/Opponent_Bid_Information__c.object
force-app/main/default/objects/Opportunity.object
force-app/main/default/objects/Opportunity2__c.object
force-app/main/default/objects/OpportunityCompetitor.object
force-app/main/default/objects/OpportunityContactRole.object
force-app/main/default/objects/OpportunityFileOrder__c.object
force-app/main/default/objects/OpportunityLineItem.object
force-app/main/default/objects/OpportunitySpecialApply__c.object
force-app/main/default/objects/OpportunityTeamMember.object
force-app/main/default/objects/Opportunity_Budget_Actual__c.object
force-app/main/default/objects/Opportunity_File__c.object
force-app/main/default/objects/OrderOpen__c.object
force-app/main/default/objects/Order__c.object
force-app/main/default/objects/Order_history__c.object
force-app/main/default/objects/OrgMetricScanResult.object
force-app/main/default/objects/OrgMetricScanSummary.object
force-app/main/default/objects/PAE_DecisionRecordDetail__c.object
force-app/main/default/objects/PAE_DecisionRecord__c.object
force-app/main/default/objects/PBIAuthorization__c.object
force-app/main/default/objects/PCLLostBrand__c.object
force-app/main/default/objects/PCLLostProduct__c.object
force-app/main/default/objects/PI_Field_Policy__c.object
force-app/main/default/objects/PartnerRole.object
force-app/main/default/objects/PartyConsent.object
force-app/main/default/objects/Payment_Maintenance_Contract__c.object
force-app/main/default/objects/PersonalEvaluation__c.object
force-app/main/default/objects/Personal_Evaluation__c.object
force-app/main/default/objects/Plan_Rental_Equipment__c.object
force-app/main/default/objects/PowerBISyncDefine__c.object
force-app/main/default/objects/Pricebook2.object
force-app/main/default/objects/PricebookEntry.object
force-app/main/default/objects/ProcessException.object
force-app/main/default/objects/Product2.object
force-app/main/default/objects/Product2__c.object
force-app/main/default/objects/ProductMonthlySales__c.object
force-app/main/default/objects/ProductTypes__c.object
force-app/main/default/objects/ProductURF__c.object
force-app/main/default/objects/Product_CategoryPrice_Table__c.object
force-app/main/default/objects/Product_Documentation__c.object
force-app/main/default/objects/Product_Material__c.object
force-app/main/default/objects/Product_Register_Link__c.object
force-app/main/default/objects/Product_Register__c.object
force-app/main/default/objects/Product_Register_contrast__c.object
force-app/main/default/objects/Product_Score_Table_History__c.object
force-app/main/default/objects/Product_Score_Table__c.object
force-app/main/default/objects/Product_Set_Detail__c.object
force-app/main/default/objects/Product_Set__c.object
force-app/main/default/objects/Product_and_document_middle_table__c.object
force-app/main/default/objects/Product_document_Lead__c.object
force-app/main/default/objects/PromotionHead__c.object
force-app/main/default/objects/PromotionProduct__c.object
force-app/main/default/objects/PromotionSalesProducts__c.object
force-app/main/default/objects/PromotionSales__c.object
force-app/main/default/objects/PromptAction.object
force-app/main/default/objects/PromptError.object
force-app/main/default/objects/Province_Target_Table__c.object
force-app/main/default/objects/Provincial_Goal_Setting_Input__c.object
force-app/main/default/objects/QIS_M_BC__c.object
force-app/main/default/objects/QIS_Report__c.object
force-app/main/default/objects/QIS_SC_Report__c.object
force-app/main/default/objects/Questionnaire_Survey__c.object
force-app/main/default/objects/QuestionsAndAnswers__c.object
force-app/main/default/objects/QuickText.object
force-app/main/default/objects/QuickTextUsage.object
force-app/main/default/objects/Quote.object
force-app/main/default/objects/QuoteIraiLineItem__c.object
force-app/main/default/objects/QuoteIrai__c.object
force-app/main/default/objects/QuoteLineItem.object
force-app/main/default/objects/RSA_master_data__c.object
force-app/main/default/objects/ReceivingNoteDetail__c.object
force-app/main/default/objects/ReceivingNoteSummary__c.object
force-app/main/default/objects/ReceivingNote__c.object
force-app/main/default/objects/Recommendation.object
force-app/main/default/objects/RecordAction.object
force-app/main/default/objects/RecordMergeHistory.object
force-app/main/default/objects/RentalApply_Postpone__mdt.object
force-app/main/default/objects/Rental_Apply_App_CCEmail__mdt.object
force-app/main/default/objects/Rental_Apply_Equipment_Set_DetailPower_B__c.object
force-app/main/default/objects/Rental_Apply_Equipment_Set_Detail__c.object
force-app/main/default/objects/Rental_Apply_Equipment_Set_Power_BI__c.object
force-app/main/default/objects/Rental_Apply_Equipment_Set__c.object
force-app/main/default/objects/Rental_Apply_Power_BI__c.object
force-app/main/default/objects/Rental_Apply_Sequence__c.object
force-app/main/default/objects/Rental_Apply__c.object
force-app/main/default/objects/Rental_Equipment__c.object
force-app/main/default/objects/Rental_Queue_Info__c.object
force-app/main/default/objects/RepairAgainAn__c.object
force-app/main/default/objects/RepairComment__c.object
force-app/main/default/objects/RepairSubOrder__c.object
force-app/main/default/objects/Repair_Quotation__c.object
force-app/main/default/objects/Repair__c.object
force-app/main/default/objects/Repair_quotation_reason__c.object
force-app/main/default/objects/Repair_reason__c.object
force-app/main/default/objects/Repair_receipt__c.object
force-app/main/default/objects/ReportList__c.object
force-app/main/default/objects/ReportMemo__c.object
force-app/main/default/objects/Report__c.object
force-app/main/default/objects/Request_tedner_doc__c.object
force-app/main/default/objects/Result_for_Conference_Adjudication__c.object
force-app/main/default/objects/SAP_for_BackOrder__c.object
force-app/main/default/objects/SFDA__c.object
force-app/main/default/objects/SFDelete__c.object
force-app/main/default/objects/SI_Attachment__c.object
force-app/main/default/objects/SLAReportInfo__c.object
force-app/main/default/objects/SMARM__c.object
force-app/main/default/objects/SSConsumable_order_details2__c.object
force-app/main/default/objects/SS_BO_shipment_accurancy__c.object
force-app/main/default/objects/SS_BatchColumnMapping__c.object
force-app/main/default/objects/SS_Batch_Column_Mapping__c.object
force-app/main/default/objects/SS_Dinghuo_accurancy__c.object
force-app/main/default/objects/SS_HCP_vist_cover_monthly__c.object
force-app/main/default/objects/SS_LTV_Dept_monthly__c.object
force-app/main/default/objects/SS_LTV_HP_monthly__c.object
force-app/main/default/objects/SS_LastMonthCompleteaccuracy__c.object
force-app/main/default/objects/SS_OPDPlan__c.object
force-app/main/default/objects/SS_OPDQuarterPlan__c.object
force-app/main/default/objects/SS_OPD_SIS_Monthly_by_User__c.object
force-app/main/default/objects/SS_Prospect_5days_list__c.object
force-app/main/default/objects/SS_Prospect_Order_accurancy__c.object
force-app/main/default/objects/SS_Prospect_detail_product__c.object
force-app/main/default/objects/SS_Prospect_list__c.object
force-app/main/default/objects/SS_User_list__c.object
force-app/main/default/objects/SS_accompany_report_monthly__c.object
force-app/main/default/objects/SS_backorder_list__c.object
force-app/main/default/objects/SS_monthly_submit_daily_report__c.object
force-app/main/default/objects/SS_shipment_acurancy__c.object
force-app/main/default/objects/SS_update_this_month__c.object
force-app/main/default/objects/SS_user_visit_covager__c.object
force-app/main/default/objects/Sample_inventory_sheet__c.object
force-app/main/default/objects/Sample_order_list_DN__c.object
force-app/main/default/objects/Sample_order_list__c.object
force-app/main/default/objects/Sample_order_list_detail__c.object
force-app/main/default/objects/Sample_stock_log_sheet__c.object
force-app/main/default/objects/Scorecard.object
force-app/main/default/objects/ScorecardAssociation.object
force-app/main/default/objects/ScorecardMetric.object
force-app/main/default/objects/SelableProduct__c.object
force-app/main/default/objects/Seller.object
force-app/main/default/objects/Service_Category6__c.object
force-app/main/default/objects/Service_Category7__c.object
force-app/main/default/objects/Ship_History__c.object
force-app/main/default/objects/Ship_History_open__c.object
force-app/main/default/objects/Ship_Open__c.object
force-app/main/default/objects/Ship__c.object
force-app/main/default/objects/Shipment_address__c.object
force-app/main/default/objects/Site.object
force-app/main/default/objects/SocialPersona.object
force-app/main/default/objects/SocialPost.object
force-app/main/default/objects/Solution.object
force-app/main/default/objects/SolutionProjectRequirements__c.object
force-app/main/default/objects/Solution_Programme__c.object
force-app/main/default/objects/Statu_Achievements_DN__c.object
force-app/main/default/objects/Statu_Achievements_DN_details__c.object
force-app/main/default/objects/Statu_Achievements_Journal__c.object
force-app/main/default/objects/Statu_Achievements__c.object
force-app/main/default/objects/StreamActivityAccess.object
force-app/main/default/objects/StreamingChannel.object
force-app/main/default/objects/SubAuthorized__c.object
force-app/main/default/objects/SurveyQuestionResponse__c.object
force-app/main/default/objects/SurveyTaker__c.object
force-app/main/default/objects/Survey_Question__c.object
force-app/main/default/objects/Survey__c.object
force-app/main/default/objects/System_Request__c.object
force-app/main/default/objects/System_UserSetting__c.object
force-app/main/default/objects/Target_account_manage__c.object
force-app/main/default/objects/Task.object
force-app/main/default/objects/TaskEventReportOPD__c.object
force-app/main/default/objects/TemporaryFileBox__c.object
force-app/main/default/objects/Tender_Opportunity_Link__c.object
force-app/main/default/objects/Tender_information__c.object
force-app/main/default/objects/Tender_information_details__c.object
force-app/main/default/objects/Territory2.object
force-app/main/default/objects/Territory2Model.object
force-app/main/default/objects/ThreeMonthlyContact__c.object
force-app/main/default/objects/Topic.object
force-app/main/default/objects/TopicAssignment.object
force-app/main/default/objects/TracingCode__c.object
force-app/main/default/objects/Training_test_Result__c.object
force-app/main/default/objects/Transaction_Log__c.object
force-app/main/default/objects/TransferApplyDetail__c.object
force-app/main/default/objects/TransferApplySummary__c.object
force-app/main/default/objects/TransferApply__c.object
force-app/main/default/objects/User.object
force-app/main/default/objects/UserProvisioningRequest.object
force-app/main/default/objects/UserTerritory2Association.object
force-app/main/default/objects/VideoCall.object
force-app/main/default/objects/VideoCallParticipant.object
force-app/main/default/objects/VideoCallRecording.object
force-app/main/default/objects/Visit_Report__c.object
force-app/main/default/objects/WarlockClassification__c.object
force-app/main/default/objects/Weekly_OPP_Follow_record__c.object
force-app/main/default/objects/accompanying_report__c.object
force-app/main/default/objects/asset_Power_BI__c.object
force-app/main/default/objects/bidInfoFile__c.object
force-app/main/default/objects/bp3_Setting__c.object
force-app/main/default/objects/eSignFormEntry__c.object
force-app/main/default/objects/eSignFormLineItemEntry__c.object
force-app/main/default/objects/eSignFormLineItem__c.object
force-app/main/default/objects/eSignForm__c.object
force-app/main/default/objects/guar__GUAR_Setting__mdt.object
force-app/main/default/objects/hospitalprice__c.object
force-app/main/default/objects/meeting_delay_apply__c.object
force-app/main/default/objects/report_report__c.object
force-app/main/default/objects/solutionClosingAttachment__c.object
force-app/main/default/objects/task__c.object
force-app/main/default/package.xml
force-app/main/default/pages/AL_MobileApp_Index.page
force-app/main/default/pages/AL_MobileApp_Index.page-meta.xml
force-app/main/default/pages/AL_MobileApp_Land.page
force-app/main/default/pages/AL_MobileApp_Land.page-meta.xml
force-app/main/default/pages/AL_MobileApp_Menus.page
force-app/main/default/pages/AL_MobileApp_Menus.page-meta.xml
force-app/main/default/pages/AL_MobileApp_Photos.page
force-app/main/default/pages/AL_MobileApp_Photos.page-meta.xml
force-app/main/default/pages/AL_MobileApp_Send.page
force-app/main/default/pages/AL_MobileApp_Send.page-meta.xml
force-app/main/default/pages/AccessoryAdd.page
force-app/main/default/pages/AccessoryAdd.page-meta.xml
force-app/main/default/pages/AccessorySelect.page
force-app/main/default/pages/AccessorySelect.page-meta.xml
force-app/main/default/pages/AccountCaseHospital.page
force-app/main/default/pages/AccountCaseHospital.page-meta.xml
force-app/main/default/pages/AccountCaseTab.page
force-app/main/default/pages/AccountCaseTab.page-meta.xml
force-app/main/default/pages/AccountPCL.page
force-app/main/default/pages/AccountPCL.page-meta.xml
force-app/main/default/pages/AccountQualifyAlert.page
force-app/main/default/pages/AccountQualifyAlert.page-meta.xml
force-app/main/default/pages/AccountTargetHospital.page
force-app/main/default/pages/AccountTargetHospital.page-meta.xml
force-app/main/default/pages/AccountTargetTab.page
force-app/main/default/pages/AccountTargetTab.page-meta.xml
force-app/main/default/pages/AccountVisitCount.page
force-app/main/default/pages/AccountVisitCount.page-meta.xml
force-app/main/default/pages/AddAccIpadActivity.page
force-app/main/default/pages/AddAccIpadActivity.page-meta.xml
force-app/main/default/pages/AddCtIpadActivity.page
force-app/main/default/pages/AddCtIpadActivity.page-meta.xml
force-app/main/default/pages/AddMcIpadActivity.page
force-app/main/default/pages/AddMcIpadActivity.page-meta.xml
force-app/main/default/pages/AddOppIpadActivity.page
force-app/main/default/pages/AddOppIpadActivity.page-meta.xml
force-app/main/default/pages/AgencyCampaign.page
force-app/main/default/pages/AgencyCampaign.page-meta.xml
force-app/main/default/pages/AgencyConfirmPage.page
force-app/main/default/pages/AgencyConfirmPage.page-meta.xml
force-app/main/default/pages/AgencyHospitalLink.page
force-app/main/default/pages/AgencyHospitalLink.page-meta.xml
force-app/main/default/pages/AnswersHome.page
force-app/main/default/pages/AnswersHome.page-meta.xml
force-app/main/default/pages/ArriveGoods.page
force-app/main/default/pages/ArriveGoods.page-meta.xml
force-app/main/default/pages/ArriveGoodsMain.page
force-app/main/default/pages/ArriveGoodsMain.page-meta.xml
force-app/main/default/pages/ArriveGsDetails.page
force-app/main/default/pages/ArriveGsDetails.page-meta.xml
force-app/main/default/pages/AssessmentReport.page
force-app/main/default/pages/AssessmentReport.page-meta.xml
force-app/main/default/pages/AssetGuaranteePeriodAlteration.page
force-app/main/default/pages/AssetGuaranteePeriodAlteration.page-meta.xml
force-app/main/default/pages/AssetMaintain.page
force-app/main/default/pages/AssetMaintain.page-meta.xml
force-app/main/default/pages/AssetMaintainAbandonSummary.page
force-app/main/default/pages/AssetMaintainAbandonSummary.page-meta.xml
force-app/main/default/pages/AssetMaintainDetail.page
force-app/main/default/pages/AssetMaintainDetail.page-meta.xml
force-app/main/default/pages/AssetModifyBelongs.page
force-app/main/default/pages/AssetModifyBelongs.page-meta.xml
force-app/main/default/pages/AssetQR.page
force-app/main/default/pages/AssetQR.page-meta.xml
force-app/main/default/pages/AssetTable.page
force-app/main/default/pages/AssetTable.page-meta.xml
force-app/main/default/pages/Asset_Redirect.page
force-app/main/default/pages/Asset_Redirect.page-meta.xml
force-app/main/default/pages/AttachmentPreview.page
force-app/main/default/pages/AttachmentPreview.page-meta.xml
force-app/main/default/pages/BMEWorkPage.page
force-app/main/default/pages/BMEWorkPage.page-meta.xml
force-app/main/default/pages/BandwidthExceeded.page
force-app/main/default/pages/BandwidthExceeded.page-meta.xml
force-app/main/default/pages/BatchSelectRepairPage.page
force-app/main/default/pages/BatchSelectRepairPage.page-meta.xml
force-app/main/default/pages/BeforeOPDPDF.page
force-app/main/default/pages/BeforeOPDPDF.page-meta.xml
force-app/main/default/pages/BidAnnounceIframe.page
force-app/main/default/pages/BidAnnounceIframe.page-meta.xml
force-app/main/default/pages/Bidding.page
force-app/main/default/pages/Bidding.page-meta.xml
force-app/main/default/pages/CICReport.page
force-app/main/default/pages/CICReport.page-meta.xml
force-app/main/default/pages/CM_SearchContact.page
force-app/main/default/pages/CM_SearchContact.page-meta.xml
force-app/main/default/pages/CM_SearchContactService.page
force-app/main/default/pages/CM_SearchContactService.page-meta.xml
force-app/main/default/pages/CM_SearchDepartment.page
force-app/main/default/pages/CM_SearchDepartment.page-meta.xml
force-app/main/default/pages/CM_SearchDepartmentService.page
force-app/main/default/pages/CM_SearchDepartmentService.page-meta.xml
force-app/main/default/pages/CM_SearchOpportunity.page
force-app/main/default/pages/CM_SearchOpportunity.page-meta.xml
force-app/main/default/pages/CampaignBTPDF.page
force-app/main/default/pages/CampaignBTPDF.page-meta.xml
force-app/main/default/pages/CampaignCreate.page
force-app/main/default/pages/CampaignCreate.page-meta.xml
force-app/main/default/pages/CampaignMeetingcost.page
force-app/main/default/pages/CampaignMeetingcost.page-meta.xml
force-app/main/default/pages/CampaignMember.page
force-app/main/default/pages/CampaignMember.page-meta.xml
force-app/main/default/pages/CampaignMemberBMEEditAndDelete.page
force-app/main/default/pages/CampaignMemberBMEEditAndDelete.page-meta.xml
force-app/main/default/pages/CampaignMemberEditAndDelete.page
force-app/main/default/pages/CampaignMemberEditAndDelete.page-meta.xml
force-app/main/default/pages/CampaignMemberService.page
force-app/main/default/pages/CampaignMemberService.page-meta.xml
force-app/main/default/pages/CampaignPlanProd.page
force-app/main/default/pages/CampaignPlanProd.page-meta.xml
force-app/main/default/pages/CancelRemoveBox.page
force-app/main/default/pages/CancelRemoveBox.page-meta.xml
force-app/main/default/pages/ChangeDealerApproval.page
force-app/main/default/pages/ChangeDealerApproval.page-meta.xml
force-app/main/default/pages/ChangePassword.page
force-app/main/default/pages/ChangePassword.page-meta.xml
force-app/main/default/pages/CheckAllOlympusAsset.page
force-app/main/default/pages/CheckAllOlympusAsset.page-meta.xml
force-app/main/default/pages/CheckPlanDeleteButton.page
force-app/main/default/pages/CheckPlanDeleteButton.page-meta.xml
force-app/main/default/pages/ChoiceAsset.page
force-app/main/default/pages/ChoiceAsset.page-meta.xml
force-app/main/default/pages/CommunitiesLanding.page
force-app/main/default/pages/CommunitiesLanding.page-meta.xml
force-app/main/default/pages/CommunitiesLogin.page
force-app/main/default/pages/CommunitiesLogin.page-meta.xml
force-app/main/default/pages/CommunitiesSelfReg.page
force-app/main/default/pages/CommunitiesSelfReg.page-meta.xml
force-app/main/default/pages/CommunitiesSelfRegConfirm.page
force-app/main/default/pages/CommunitiesSelfRegConfirm.page-meta.xml
force-app/main/default/pages/CommunitiesTemplate.page
force-app/main/default/pages/CommunitiesTemplate.page-meta.xml
force-app/main/default/pages/ConInvoiceList.page
force-app/main/default/pages/ConInvoiceList.page-meta.xml
force-app/main/default/pages/ConInvoiceView.page
force-app/main/default/pages/ConInvoiceView.page-meta.xml
force-app/main/default/pages/ConInvoicedetails.page
force-app/main/default/pages/ConInvoicedetails.page-meta.xml
force-app/main/default/pages/ConSearchAgencyPlace.page
force-app/main/default/pages/ConSearchAgencyPlace.page-meta.xml
force-app/main/default/pages/ConsumApplyBR.page
force-app/main/default/pages/ConsumApplyBR.page-meta.xml
force-app/main/default/pages/ConsumApplyCancel.page
force-app/main/default/pages/ConsumApplyCancel.page-meta.xml
force-app/main/default/pages/ConsumApplyEquipmentSetSRList.page
force-app/main/default/pages/ConsumApplyEquipmentSetSRList.page-meta.xml
force-app/main/default/pages/ConsumApplyQR.page
force-app/main/default/pages/ConsumApplyQR.page-meta.xml
force-app/main/default/pages/ConsumApplySplit.page
force-app/main/default/pages/ConsumApplySplit.page-meta.xml
force-app/main/default/pages/ConsumAssignCancel.page
force-app/main/default/pages/ConsumAssignCancel.page-meta.xml
force-app/main/default/pages/ConsumDefaultSelect.page
force-app/main/default/pages/ConsumDefaultSelect.page-meta.xml
force-app/main/default/pages/ConsumEquipmentRentalResponse.page
force-app/main/default/pages/ConsumEquipmentRentalResponse.page-meta.xml
force-app/main/default/pages/ConsumEquipmentRentalResponsePopUp.page
force-app/main/default/pages/ConsumEquipmentRentalResponsePopUp.page-meta.xml
force-app/main/default/pages/ConsumEquipmentSetReceived.page
force-app/main/default/pages/ConsumEquipmentSetReceived.page-meta.xml
force-app/main/default/pages/ConsumEquipmentSetReturn.page
force-app/main/default/pages/ConsumEquipmentSetReturn.page-meta.xml
force-app/main/default/pages/ConsumEquipmentSetShipment.page
force-app/main/default/pages/ConsumEquipmentSetShipment.page-meta.xml
force-app/main/default/pages/ConsumFixtureSetSelect.page
force-app/main/default/pages/ConsumFixtureSetSelect.page-meta.xml
force-app/main/default/pages/ConsumInventoryReportDetail.page
force-app/main/default/pages/ConsumInventoryReportDetail.page-meta.xml
force-app/main/default/pages/ConsumReassign.page
force-app/main/default/pages/ConsumReassign.page-meta.xml
force-app/main/default/pages/ConsumSelect.page
force-app/main/default/pages/ConsumSelect.page-meta.xml
force-app/main/default/pages/ConsumTrial.page
force-app/main/default/pages/ConsumTrial.page-meta.xml
force-app/main/default/pages/ConsumTrialConfirm.page
force-app/main/default/pages/ConsumTrialConfirm.page-meta.xml
force-app/main/default/pages/ConsumTrialDis.page
force-app/main/default/pages/ConsumTrialDis.page-meta.xml
force-app/main/default/pages/ConsumTrialPDF.page
force-app/main/default/pages/ConsumTrialPDF.page-meta.xml
force-app/main/default/pages/ConsumTrialUpdate.page
force-app/main/default/pages/ConsumTrialUpdate.page-meta.xml
force-app/main/default/pages/ConsumUploadPicture.page
force-app/main/default/pages/ConsumUploadPicture.page-meta.xml
force-app/main/default/pages/Consumable.page
force-app/main/default/pages/Consumable.page-meta.xml
force-app/main/default/pages/ConsumableAccount.page
force-app/main/default/pages/ConsumableAccount.page-meta.xml
force-app/main/default/pages/ConsumableAccountInfo.page
force-app/main/default/pages/ConsumableAccountInfo.page-meta.xml
force-app/main/default/pages/ConsumableAccountInfoPrint.page
force-app/main/default/pages/ConsumableAccountInfoPrint.page-meta.xml
force-app/main/default/pages/ConsumableAllArrDet.page
force-app/main/default/pages/ConsumableAllArrDet.page-meta.xml
force-app/main/default/pages/ConsumableAllDet.page
force-app/main/default/pages/ConsumableAllDet.page-meta.xml
force-app/main/default/pages/ConsumableAllNotArrDet.page
force-app/main/default/pages/ConsumableAllNotArrDet.page-meta.xml
force-app/main/default/pages/ConsumableAllOtherDet.page
force-app/main/default/pages/ConsumableAllOtherDet.page-meta.xml
force-app/main/default/pages/ConsumableArrDet.page
force-app/main/default/pages/ConsumableArrDet.page-meta.xml
force-app/main/default/pages/ConsumableNotArrDet.page
force-app/main/default/pages/ConsumableNotArrDet.page-meta.xml
force-app/main/default/pages/ConsumableOrderManage.page
force-app/main/default/pages/ConsumableOrderManage.page-meta.xml
force-app/main/default/pages/ConsumableOtherArrDet.page
force-app/main/default/pages/ConsumableOtherArrDet.page-meta.xml
force-app/main/default/pages/ConsumableSampleApply.page
force-app/main/default/pages/ConsumableSampleApply.page-meta.xml
force-app/main/default/pages/Consumable_order_Alert.page
force-app/main/default/pages/Consumable_order_Alert.page-meta.xml
force-app/main/default/pages/ConsumptionList.page
force-app/main/default/pages/ConsumptionList.page-meta.xml
force-app/main/default/pages/ConsumptionPDF.page
force-app/main/default/pages/ConsumptionPDF.page-meta.xml
force-app/main/default/pages/ContentPreview.page
force-app/main/default/pages/ContentPreview.page-meta.xml
force-app/main/default/pages/ContractDetailPDF.page
force-app/main/default/pages/ContractDetailPDF.page-meta.xml
force-app/main/default/pages/Create_Opportunity_by_Agency_Opportunity.page
force-app/main/default/pages/Create_Opportunity_by_Agency_Opportunity.page-meta.xml
force-app/main/default/pages/CustomDeleteVF.page
force-app/main/default/pages/CustomDeleteVF.page-meta.xml
force-app/main/default/pages/DateModify.page
force-app/main/default/pages/DateModify.page-meta.xml
force-app/main/default/pages/DealerInquiryModifyState.page
force-app/main/default/pages/DealerInquiryModifyState.page-meta.xml
force-app/main/default/pages/Dealer_enquiry.page
force-app/main/default/pages/Dealer_enquiry.page-meta.xml
force-app/main/default/pages/DeleteEventEntry.page
force-app/main/default/pages/DeleteEventEntry.page-meta.xml
force-app/main/default/pages/DigCasesNumber.page
force-app/main/default/pages/DigCasesNumber.page-meta.xml
force-app/main/default/pages/DirectAssign.page
force-app/main/default/pages/DirectAssign.page-meta.xml
force-app/main/default/pages/DirectReturnToReceivingAddress.page
force-app/main/default/pages/DirectReturnToReceivingAddress.page-meta.xml
force-app/main/default/pages/DiscountProductApplication.page
force-app/main/default/pages/DiscountProductApplication.page-meta.xml
force-app/main/default/pages/DiscountProductChoosEditPage.page
force-app/main/default/pages/DiscountProductChoosEditPage.page-meta.xml
force-app/main/default/pages/Enquiry.page
force-app/main/default/pages/Enquiry.page-meta.xml
force-app/main/default/pages/EnquiryDetails.page
force-app/main/default/pages/EnquiryDetails.page-meta.xml
force-app/main/default/pages/EnquiryNoBiddingPage.page
force-app/main/default/pages/EnquiryNoBiddingPage.page-meta.xml
force-app/main/default/pages/EquipmentManage.page
force-app/main/default/pages/EquipmentManage.page-meta.xml
force-app/main/default/pages/EquipmentRentalCancel.page
force-app/main/default/pages/EquipmentRentalCancel.page-meta.xml
force-app/main/default/pages/EquipmentRentalExtend.page
force-app/main/default/pages/EquipmentRentalExtend.page-meta.xml
force-app/main/default/pages/EquipmentRentalLostReport.page
force-app/main/default/pages/EquipmentRentalLostReport.page-meta.xml
force-app/main/default/pages/EquipmentRentalResponse.page
force-app/main/default/pages/EquipmentRentalResponse.page-meta.xml
force-app/main/default/pages/EquipmentRentalResponsePopUp.page
force-app/main/default/pages/EquipmentRentalResponsePopUp.page-meta.xml
force-app/main/default/pages/EquipmentRentalUnassign.page
force-app/main/default/pages/EquipmentRentalUnassign.page-meta.xml
force-app/main/default/pages/EquipmentSetSRList2.page
force-app/main/default/pages/EquipmentSetSRList2.page-meta.xml
force-app/main/default/pages/EquipmentSetShippmentReceived1.page
force-app/main/default/pages/EquipmentSetShippmentReceived1.page-meta.xml
force-app/main/default/pages/EquipmentSetShippmentReceived2.page
force-app/main/default/pages/EquipmentSetShippmentReceived2.page-meta.xml
force-app/main/default/pages/EquipmentSetShippmentReceived3.page
force-app/main/default/pages/EquipmentSetShippmentReceived3.page-meta.xml
force-app/main/default/pages/EquipmentSetShippmentReceived4.page
force-app/main/default/pages/EquipmentSetShippmentReceived4.page-meta.xml
force-app/main/default/pages/EquipmentSetShippmentReceived5.page
force-app/main/default/pages/EquipmentSetShippmentReceived5.page-meta.xml
force-app/main/default/pages/EquipmentSetShippmentReceived6.page
force-app/main/default/pages/EquipmentSetShippmentReceived6.page-meta.xml
force-app/main/default/pages/EventComment.page
force-app/main/default/pages/EventComment.page-meta.xml
force-app/main/default/pages/EventHandle.page
force-app/main/default/pages/EventHandle.page-meta.xml
force-app/main/default/pages/Exception.page
force-app/main/default/pages/Exception.page-meta.xml
force-app/main/default/pages/ExportAllOlympusAsset.page
force-app/main/default/pages/ExportAllOlympusAsset.page-meta.xml
force-app/main/default/pages/FileNotFound.page
force-app/main/default/pages/FileNotFound.page-meta.xml
force-app/main/default/pages/FixtureRemind.page
force-app/main/default/pages/FixtureRemind.page-meta.xml
force-app/main/default/pages/FixtureRemindForAgencyRequest.page
force-app/main/default/pages/FixtureRemindForAgencyRequest.page-meta.xml
force-app/main/default/pages/FixtureRentalPDF.page
force-app/main/default/pages/FixtureRentalPDF.page-meta.xml
force-app/main/default/pages/FixtureRentalPicturePDF.page
force-app/main/default/pages/FixtureRentalPicturePDF.page-meta.xml
force-app/main/default/pages/FixtureSetManage.page
force-app/main/default/pages/FixtureSetManage.page-meta.xml
force-app/main/default/pages/ForgotPassword.page
force-app/main/default/pages/ForgotPassword.page-meta.xml
force-app/main/default/pages/ForgotPasswordConfirm.page
force-app/main/default/pages/ForgotPasswordConfirm.page-meta.xml
force-app/main/default/pages/GSurveys.page
force-app/main/default/pages/GSurveys.page-meta.xml
force-app/main/default/pages/Getting_Started_With_Survey_Force.page
force-app/main/default/pages/Getting_Started_With_Survey_Force.page-meta.xml
force-app/main/default/pages/HPConfirmPage.page
force-app/main/default/pages/HPConfirmPage.page-meta.xml
force-app/main/default/pages/HomeBulletinBoard.page
force-app/main/default/pages/HomeBulletinBoard.page-meta.xml
force-app/main/default/pages/HospitalApprovalResponse.page
force-app/main/default/pages/HospitalApprovalResponse.page-meta.xml
force-app/main/default/pages/HospitalApprovalResponsePopUp.page
force-app/main/default/pages/HospitalApprovalResponsePopUp.page-meta.xml
force-app/main/default/pages/HpDirectSalesConfirmPage.page
force-app/main/default/pages/HpDirectSalesConfirmPage.page-meta.xml
force-app/main/default/pages/ISO_DemandOAD_PDF.page
force-app/main/default/pages/ISO_DemandOAD_PDF.page-meta.xml
force-app/main/default/pages/ISO_DemandOperAndDemons.page
force-app/main/default/pages/ISO_DemandOperAndDemons.page-meta.xml
force-app/main/default/pages/ISO_DemandOperAndDemonsJump.page
force-app/main/default/pages/ISO_DemandOperAndDemonsJump.page-meta.xml
force-app/main/default/pages/ISO_DemandOperAndDemonsNew.page
force-app/main/default/pages/ISO_DemandOperAndDemonsNew.page-meta.xml
force-app/main/default/pages/ISO_NewDemandOAD_PDF.page
force-app/main/default/pages/ISO_NewDemandOAD_PDF.page-meta.xml
force-app/main/default/pages/IdeasHome.page
force-app/main/default/pages/IdeasHome.page-meta.xml
force-app/main/default/pages/InMaintenance.page
force-app/main/default/pages/InMaintenance.page-meta.xml
force-app/main/default/pages/InitCreateSolutionPage.page
force-app/main/default/pages/InitCreateSolutionPage.page-meta.xml
force-app/main/default/pages/InsReportPDF.page
force-app/main/default/pages/InsReportPDF.page-meta.xml
force-app/main/default/pages/InsReportPDFOuter.page
force-app/main/default/pages/InsReportPDFOuter.page-meta.xml
force-app/main/default/pages/InstructReport.page
force-app/main/default/pages/InstructReport.page-meta.xml
force-app/main/default/pages/Inventory.page
force-app/main/default/pages/Inventory.page-meta.xml
force-app/main/default/pages/InventoryCSV.page
force-app/main/default/pages/InventoryCSV.page-meta.xml
force-app/main/default/pages/InventoryList.page
force-app/main/default/pages/InventoryList.page-meta.xml
force-app/main/default/pages/InventoryLostReport.page
force-app/main/default/pages/InventoryLostReport.page-meta.xml
force-app/main/default/pages/InventoryReport.page
force-app/main/default/pages/InventoryReport.page-meta.xml
force-app/main/default/pages/InventoryReportDetail.page
force-app/main/default/pages/InventoryReportDetail.page-meta.xml
force-app/main/default/pages/InventoryResultRecord.page
force-app/main/default/pages/InventoryResultRecord.page-meta.xml
force-app/main/default/pages/InventoryView.page
force-app/main/default/pages/InventoryView.page-meta.xml
force-app/main/default/pages/LeadIntention.page
force-app/main/default/pages/LeadIntention.page-meta.xml
force-app/main/default/pages/ListAssetForHospital.page
force-app/main/default/pages/ListAssetForHospital.page-meta.xml
force-app/main/default/pages/ListShip.page
force-app/main/default/pages/ListShip.page-meta.xml
force-app/main/default/pages/LookupPage.page
force-app/main/default/pages/LookupPage.page-meta.xml
force-app/main/default/pages/LostCreatePage.page
force-app/main/default/pages/LostCreatePage.page-meta.xml
force-app/main/default/pages/LostCreatePage1.page
force-app/main/default/pages/LostCreatePage1.page-meta.xml
force-app/main/default/pages/LostEditPage.page
force-app/main/default/pages/LostEditPage.page-meta.xml
force-app/main/default/pages/LostEditPage1.page
force-app/main/default/pages/LostEditPage1.page-meta.xml
force-app/main/default/pages/LostReportEdit.page
force-app/main/default/pages/LostReportEdit.page-meta.xml
force-app/main/default/pages/LostReportEditAsset.page
force-app/main/default/pages/LostReportEditAsset.page-meta.xml
force-app/main/default/pages/LostReportPushObjNote.page
force-app/main/default/pages/LostReportPushObjNote.page-meta.xml
force-app/main/default/pages/LostViewPage.page
force-app/main/default/pages/LostViewPage.page-meta.xml
force-app/main/default/pages/LostViewPage1.page
force-app/main/default/pages/LostViewPage1.page-meta.xml
force-app/main/default/pages/Lost_Return_DeliverySlip.page
force-app/main/default/pages/Lost_Return_DeliverySlip.page-meta.xml
force-app/main/default/pages/MCAgentPDF.page
force-app/main/default/pages/MCAgentPDF.page-meta.xml
force-app/main/default/pages/MCHPDF.page
force-app/main/default/pages/MCHPDF.page-meta.xml
force-app/main/default/pages/MCLastMContract.page
force-app/main/default/pages/MCLastMContract.page-meta.xml
force-app/main/default/pages/MainFixtureSelect.page
force-app/main/default/pages/MainFixtureSelect.page-meta.xml
force-app/main/default/pages/Maintenance.page
force-app/main/default/pages/Maintenance.page-meta.xml
force-app/main/default/pages/MaintenanceCommissionPDF.page
force-app/main/default/pages/MaintenanceCommissionPDF.page-meta.xml
force-app/main/default/pages/MaintenanceContractEstimatePDF.page
force-app/main/default/pages/MaintenanceContractEstimatePDF.page-meta.xml
force-app/main/default/pages/MaintenanceContractEstimateVMPDF.page
force-app/main/default/pages/MaintenanceContractEstimateVMPDF.page-meta.xml
force-app/main/default/pages/MaintenanceContractPCL.page
force-app/main/default/pages/MaintenanceContractPCL.page-meta.xml
force-app/main/default/pages/MaintenanceDailyReport.page
force-app/main/default/pages/MaintenanceDailyReport.page-meta.xml
force-app/main/default/pages/MaintenanceProductData.page
force-app/main/default/pages/MaintenanceProductData.page-meta.xml
force-app/main/default/pages/MaintenanceProductDataManage.page
force-app/main/default/pages/MaintenanceProductDataManage.page-meta.xml
force-app/main/default/pages/MaintenanceTaskCSVExport.page
force-app/main/default/pages/MaintenanceTaskCSVExport.page-meta.xml
force-app/main/default/pages/MaxManagmentCode.page
force-app/main/default/pages/MaxManagmentCode.page-meta.xml
force-app/main/default/pages/MaxManagmentCodeTransfer.page
force-app/main/default/pages/MaxManagmentCodeTransfer.page-meta.xml
force-app/main/default/pages/MceConfigPDF.page
force-app/main/default/pages/MceConfigPDF.page-meta.xml
force-app/main/default/pages/MceContractAgentPDF.page
force-app/main/default/pages/MceContractAgentPDF.page-meta.xml
force-app/main/default/pages/MceContractHpPDF.page
force-app/main/default/pages/MceContractHpPDF.page-meta.xml
force-app/main/default/pages/MergeAgencyActivity.page
force-app/main/default/pages/MergeAgencyActivity.page-meta.xml
force-app/main/default/pages/MicrobatchSelfReg.page
force-app/main/default/pages/MicrobatchSelfReg.page-meta.xml
force-app/main/default/pages/MoreMaintenanceContract.page
force-app/main/default/pages/MoreMaintenanceContract.page-meta.xml
force-app/main/default/pages/MoreMaintenanceContractPop.page
force-app/main/default/pages/MoreMaintenanceContractPop.page-meta.xml
force-app/main/default/pages/Morethan7days.page
force-app/main/default/pages/Morethan7days.page-meta.xml
force-app/main/default/pages/Morethan7daysAll.page
force-app/main/default/pages/Morethan7daysAll.page-meta.xml
force-app/main/default/pages/MultiselectExample.page
force-app/main/default/pages/MultiselectExample.page-meta.xml
force-app/main/default/pages/MyProfilePage.page
force-app/main/default/pages/MyProfilePage.page-meta.xml
force-app/main/default/pages/NewAndEditLead.page
force-app/main/default/pages/NewAndEditLead.page-meta.xml
force-app/main/default/pages/NewMCAgentPDF.page
force-app/main/default/pages/NewMCAgentPDF.page-meta.xml
force-app/main/default/pages/NewMCHPDF.page
force-app/main/default/pages/NewMCHPDF.page-meta.xml
force-app/main/default/pages/NewMCHPDFLimit.page
force-app/main/default/pages/NewMCHPDFLimit.page-meta.xml
force-app/main/default/pages/NewPaymentPlanLoad.page
force-app/main/default/pages/NewPaymentPlanLoad.page-meta.xml
force-app/main/default/pages/NewQuoteEntry.page
force-app/main/default/pages/NewQuoteEntry.page-meta.xml
force-app/main/default/pages/NewQuoteIrai.page
force-app/main/default/pages/NewQuoteIrai.page-meta.xml
force-app/main/default/pages/NotReceivingNoteListFirst.page
force-app/main/default/pages/NotReceivingNoteListFirst.page-meta.xml
force-app/main/default/pages/NotReceivingNoteWaitingReceipt.page
force-app/main/default/pages/NotReceivingNoteWaitingReceipt.page-meta.xml
force-app/main/default/pages/OFSBulletinBoard.page
force-app/main/default/pages/OFSBulletinBoard.page-meta.xml
force-app/main/default/pages/OFSCalendar.page
force-app/main/default/pages/OFSCalendar.page-meta.xml
force-app/main/default/pages/OFSCommentPopup.page
force-app/main/default/pages/OFSCommentPopup.page-meta.xml
force-app/main/default/pages/OFSDailyReport.page
force-app/main/default/pages/OFSDailyReport.page-meta.xml
force-app/main/default/pages/OFSHospitalLayout.page
force-app/main/default/pages/OFSHospitalLayout.page-meta.xml
force-app/main/default/pages/OFSHoverView.page
force-app/main/default/pages/OFSHoverView.page-meta.xml
force-app/main/default/pages/OFSInsReportLayout.page
force-app/main/default/pages/OFSInsReportLayout.page-meta.xml
force-app/main/default/pages/OFSInsReportLayoutForVm.page
force-app/main/default/pages/OFSInsReportLayoutForVm.page-meta.xml
force-app/main/default/pages/OFSRepairConsignPDF.page
force-app/main/default/pages/OFSRepairConsignPDF.page-meta.xml
force-app/main/default/pages/OFSRepairConsignPDFOuter.page
force-app/main/default/pages/OFSRepairConsignPDFOuter.page-meta.xml
force-app/main/default/pages/OFSWindowClose.page
force-app/main/default/pages/OFSWindowClose.page-meta.xml
force-app/main/default/pages/OPDNoReportApplication.page
force-app/main/default/pages/OPDNoReportApplication.page-meta.xml
force-app/main/default/pages/OPDPlanProd.page
force-app/main/default/pages/OPDPlanProd.page-meta.xml
force-app/main/default/pages/OPDSortManage.page
force-app/main/default/pages/OPDSortManage.page-meta.xml
force-app/main/default/pages/Opportunity12Rating.page
force-app/main/default/pages/Opportunity12Rating.page-meta.xml
force-app/main/default/pages/OpportunityCheckSAPLink.page
force-app/main/default/pages/OpportunityCheckSAPLink.page-meta.xml
force-app/main/default/pages/OpportunityOpenAlert.page
force-app/main/default/pages/OpportunityOpenAlert.page-meta.xml
force-app/main/default/pages/OpportunityPCLNew.page
force-app/main/default/pages/OpportunityPCLNew.page-meta.xml
force-app/main/default/pages/OrderSearchProduct.page
force-app/main/default/pages/OrderSearchProduct.page-meta.xml
force-app/main/default/pages/Ordergoods.page
force-app/main/default/pages/Ordergoods.page-meta.xml
force-app/main/default/pages/OutboundorderImport.page
force-app/main/default/pages/OutboundorderImport.page-meta.xml
force-app/main/default/pages/OverdueStock.page
force-app/main/default/pages/OverdueStock.page-meta.xml
force-app/main/default/pages/PAEDecisionRecord.page
force-app/main/default/pages/PAEDecisionRecord.page-meta.xml
force-app/main/default/pages/PAEDecisionRecordjump.page
force-app/main/default/pages/PAEDecisionRecordjump.page-meta.xml
force-app/main/default/pages/PAEListjump.page
force-app/main/default/pages/PAEListjump.page-meta.xml
force-app/main/default/pages/PBIAuthorization.page
force-app/main/default/pages/PBIAuthorization.page-meta.xml
force-app/main/default/pages/PCLLostReportPage.page
force-app/main/default/pages/PCLLostReportPage.page-meta.xml
force-app/main/default/pages/PCLLostReportPageByTcm.page
force-app/main/default/pages/PCLLostReportPageByTcm.page-meta.xml
force-app/main/default/pages/PaymentPlanLoad.page
force-app/main/default/pages/PaymentPlanLoad.page-meta.xml
force-app/main/default/pages/PersonalCalendar.page
force-app/main/default/pages/PersonalCalendar.page-meta.xml
force-app/main/default/pages/PersonalEvaluation.page
force-app/main/default/pages/PersonalEvaluation.page-meta.xml
force-app/main/default/pages/PersonalEvaluation2.page
force-app/main/default/pages/PersonalEvaluation2.page-meta.xml
force-app/main/default/pages/PersonalEvaluationClipEdit.page
force-app/main/default/pages/PersonalEvaluationClipEdit.page-meta.xml
force-app/main/default/pages/PersonalEvaluationCommentImg.page
force-app/main/default/pages/PersonalEvaluationCommentImg.page-meta.xml
force-app/main/default/pages/PersonalEvaluationCommentList.page
force-app/main/default/pages/PersonalEvaluationCommentList.page-meta.xml
force-app/main/default/pages/PersonalEvaluationInTab.page
force-app/main/default/pages/PersonalEvaluationInTab.page-meta.xml
force-app/main/default/pages/PersonalEvaluationInTabBF.page
force-app/main/default/pages/PersonalEvaluationInTabBF.page-meta.xml
force-app/main/default/pages/PersonalEvaluationInTabBasic.page
force-app/main/default/pages/PersonalEvaluationInTabBasic.page-meta.xml
force-app/main/default/pages/PersonalEvaluationInTabENT.page
force-app/main/default/pages/PersonalEvaluationInTabENT.page-meta.xml
force-app/main/default/pages/PersonalEvaluationInTabGI.page
force-app/main/default/pages/PersonalEvaluationInTabGI.page-meta.xml
force-app/main/default/pages/PersonalEvaluationInTabGS.page
force-app/main/default/pages/PersonalEvaluationInTabGS.page-meta.xml
force-app/main/default/pages/PersonalEvaluationInTabGYN.page
force-app/main/default/pages/PersonalEvaluationInTabGYN.page-meta.xml
force-app/main/default/pages/PersonalEvaluationInTabHP.page
force-app/main/default/pages/PersonalEvaluationInTabHP.page-meta.xml
force-app/main/default/pages/PersonalEvaluationInTabHP_FSE.page
force-app/main/default/pages/PersonalEvaluationInTabHP_FSE.page-meta.xml
force-app/main/default/pages/PersonalEvaluationInTabNameJ.page
force-app/main/default/pages/PersonalEvaluationInTabNameJ.page-meta.xml
force-app/main/default/pages/PersonalEvaluationInTabURO.page
force-app/main/default/pages/PersonalEvaluationInTabURO.page-meta.xml
force-app/main/default/pages/PrintConsumblePDF.page
force-app/main/default/pages/PrintConsumblePDF.page-meta.xml
force-app/main/default/pages/PrintInspectupReport.page
force-app/main/default/pages/PrintInspectupReport.page-meta.xml
force-app/main/default/pages/PrintInspectupReportPDF.page
force-app/main/default/pages/PrintInspectupReportPDF.page-meta.xml
force-app/main/default/pages/ProcessInstance.page
force-app/main/default/pages/ProcessInstance.page-meta.xml
force-app/main/default/pages/ProductLimitEdit.page
force-app/main/default/pages/ProductLimitEdit.page-meta.xml
force-app/main/default/pages/ProductRepairQuote.page
force-app/main/default/pages/ProductRepairQuote.page-meta.xml
force-app/main/default/pages/ProductSetRollup.page
force-app/main/default/pages/ProductSetRollup.page-meta.xml
force-app/main/default/pages/Product_Documentation_E_Learning.page
force-app/main/default/pages/Product_Documentation_E_Learning.page-meta.xml
force-app/main/default/pages/ProvinceEvaluation.page
force-app/main/default/pages/ProvinceEvaluation.page-meta.xml
force-app/main/default/pages/ProvinceEvaluationInProvinceBasic.page
force-app/main/default/pages/ProvinceEvaluationInProvinceBasic.page-meta.xml
force-app/main/default/pages/ProvinceEvaluationInProvinceHP.page
force-app/main/default/pages/ProvinceEvaluationInProvinceHP.page-meta.xml
force-app/main/default/pages/ProvinceEvaluationInProvinceNameJ.page
force-app/main/default/pages/ProvinceEvaluationInProvinceNameJ.page-meta.xml
force-app/main/default/pages/QISPDF.page
force-app/main/default/pages/QISPDF.page-meta.xml
force-app/main/default/pages/QLMAttachmentPreview.page
force-app/main/default/pages/QLMAttachmentPreview.page-meta.xml
force-app/main/default/pages/QLMAttachmentPreview1.page
force-app/main/default/pages/QLMAttachmentPreview1.page-meta.xml
force-app/main/default/pages/QuestionnaireAllowance.page
force-app/main/default/pages/QuestionnaireAllowance.page-meta.xml
force-app/main/default/pages/QueuePageByAssetId.page
force-app/main/default/pages/QueuePageByAssetId.page-meta.xml
force-app/main/default/pages/QuoteExcelImport.page
force-app/main/default/pages/QuoteExcelImport.page-meta.xml
force-app/main/default/pages/QuotePDF.page
force-app/main/default/pages/QuotePDF.page-meta.xml
force-app/main/default/pages/QuoteTrial.page
force-app/main/default/pages/QuoteTrial.page-meta.xml
force-app/main/default/pages/ReantalApplySeriesNo.page
force-app/main/default/pages/ReantalApplySeriesNo.page-meta.xml
force-app/main/default/pages/ReceivingNoteAcceptance.page
force-app/main/default/pages/ReceivingNoteAcceptance.page-meta.xml
force-app/main/default/pages/ReceivingNoteDetailSelect.page
force-app/main/default/pages/ReceivingNoteDetailSelect.page-meta.xml
force-app/main/default/pages/ReceivingNoteExamination.page
force-app/main/default/pages/ReceivingNoteExamination.page-meta.xml
force-app/main/default/pages/ReceivingNoteList.page
force-app/main/default/pages/ReceivingNoteList.page-meta.xml
force-app/main/default/pages/ReceivingNoteListFirst.page
force-app/main/default/pages/ReceivingNoteListFirst.page-meta.xml
force-app/main/default/pages/ReceivingNotePDF.page
force-app/main/default/pages/ReceivingNotePDF.page-meta.xml
force-app/main/default/pages/ReceivingNoteQR.page
force-app/main/default/pages/ReceivingNoteQR.page-meta.xml
force-app/main/default/pages/ReceivingNoteQRScan.page
force-app/main/default/pages/ReceivingNoteQRScan.page-meta.xml
force-app/main/default/pages/ReceivingNoteStockIn.page
force-app/main/default/pages/ReceivingNoteStockIn.page-meta.xml
force-app/main/default/pages/ReceivingNoteStockInRequest.page
force-app/main/default/pages/ReceivingNoteStockInRequest.page-meta.xml
force-app/main/default/pages/ReceivingNoteSummarySelect.page
force-app/main/default/pages/ReceivingNoteSummarySelect.page-meta.xml
force-app/main/default/pages/ReceivingNoteWaitingReceipt.page
force-app/main/default/pages/ReceivingNoteWaitingReceipt.page-meta.xml
force-app/main/default/pages/Relevance.page
force-app/main/default/pages/Relevance.page-meta.xml
force-app/main/default/pages/RemoveBox.page
force-app/main/default/pages/RemoveBox.page-meta.xml
force-app/main/default/pages/RentalAgencyReceived.page
force-app/main/default/pages/RentalAgencyReceived.page-meta.xml
force-app/main/default/pages/RentalApplyBR.page
force-app/main/default/pages/RentalApplyBR.page-meta.xml
force-app/main/default/pages/RentalApplyCancel.page
force-app/main/default/pages/RentalApplyCancel.page-meta.xml
force-app/main/default/pages/RentalApplyExtensions.page
force-app/main/default/pages/RentalApplyExtensions.page-meta.xml
force-app/main/default/pages/RentalApplyJump.page
force-app/main/default/pages/RentalApplyJump.page-meta.xml
force-app/main/default/pages/RentalApplyMultiPostpone.page
force-app/main/default/pages/RentalApplyMultiPostpone.page-meta.xml
force-app/main/default/pages/RentalApplyQR.page
force-app/main/default/pages/RentalApplyQR.page-meta.xml
force-app/main/default/pages/RentalApplyQueue.page
force-app/main/default/pages/RentalApplyQueue.page-meta.xml
force-app/main/default/pages/RentalApplySequence.page
force-app/main/default/pages/RentalApplySequence.page-meta.xml
force-app/main/default/pages/RentalApplySplit.page
force-app/main/default/pages/RentalApplySplit.page-meta.xml
force-app/main/default/pages/RentalFixtureSetAssign.page
force-app/main/default/pages/RentalFixtureSetAssign.page-meta.xml
force-app/main/default/pages/RentalFixtureSetAssignAgency.page
force-app/main/default/pages/RentalFixtureSetAssignAgency.page-meta.xml
force-app/main/default/pages/RentalFixtureSetDetilSelect.page
force-app/main/default/pages/RentalFixtureSetDetilSelect.page-meta.xml
force-app/main/default/pages/RentalFixtureSetSelect.page
force-app/main/default/pages/RentalFixtureSetSelect.page-meta.xml
force-app/main/default/pages/RentalSequenceWatch.page
force-app/main/default/pages/RentalSequenceWatch.page-meta.xml
force-app/main/default/pages/Rental_Apply_Redirect.page
force-app/main/default/pages/Rental_Apply_Redirect.page-meta.xml
force-app/main/default/pages/RepPAEDecisionRecord.page
force-app/main/default/pages/RepPAEDecisionRecord.page-meta.xml
force-app/main/default/pages/RepairAgainAnPDF.page
force-app/main/default/pages/RepairAgainAnPDF.page-meta.xml
force-app/main/default/pages/RepairAndQISToPDF.page
force-app/main/default/pages/RepairAndQISToPDF.page-meta.xml
force-app/main/default/pages/RepairPCL.page
force-app/main/default/pages/RepairPCL.page-meta.xml
force-app/main/default/pages/Repair_Redirect.page
force-app/main/default/pages/Repair_Redirect.page-meta.xml
force-app/main/default/pages/ReportCAlertPage.page
force-app/main/default/pages/ReportCAlertPage.page-meta.xml
force-app/main/default/pages/ReportList.page
force-app/main/default/pages/ReportList.page-meta.xml
force-app/main/default/pages/RetrospectiveWeeklyReportPage.page
force-app/main/default/pages/RetrospectiveWeeklyReportPage.page-meta.xml
force-app/main/default/pages/SISearchSetProduct.page
force-app/main/default/pages/SISearchSetProduct.page-meta.xml
force-app/main/default/pages/SI_CsvModel.page
force-app/main/default/pages/SI_CsvModel.page-meta.xml
force-app/main/default/pages/SI_NewQuoteEntry.page
force-app/main/default/pages/SI_NewQuoteEntry.page-meta.xml
force-app/main/default/pages/SI_Opportunity_Response.page
force-app/main/default/pages/SI_Opportunity_Response.page-meta.xml
force-app/main/default/pages/SLAReportDetails.page
force-app/main/default/pages/SLAReportDetails.page-meta.xml
force-app/main/default/pages/SaleAndDelivery.page
force-app/main/default/pages/SaleAndDelivery.page-meta.xml
force-app/main/default/pages/SaleOrder.page
force-app/main/default/pages/SaleOrder.page-meta.xml
force-app/main/default/pages/SampleInventory.page
force-app/main/default/pages/SampleInventory.page-meta.xml
force-app/main/default/pages/SampleInventorySection.page
force-app/main/default/pages/SampleInventorySection.page-meta.xml
force-app/main/default/pages/SaveAssetByCopy.page
force-app/main/default/pages/SaveAssetByCopy.page-meta.xml
force-app/main/default/pages/SaveAssetFromReport.page
force-app/main/default/pages/SaveAssetFromReport.page-meta.xml
force-app/main/default/pages/SaveLeadFromReport.page
force-app/main/default/pages/SaveLeadFromReport.page-meta.xml
force-app/main/default/pages/SaveMContractFromReport.page
force-app/main/default/pages/SaveMContractFromReport.page-meta.xml
force-app/main/default/pages/SaveMaintenanceByCopy.page
force-app/main/default/pages/SaveMaintenanceByCopy.page-meta.xml
force-app/main/default/pages/SaveSolutionFromReport.page
force-app/main/default/pages/SaveSolutionFromReport.page-meta.xml
force-app/main/default/pages/SearchContract.page
force-app/main/default/pages/SearchContract.page-meta.xml
force-app/main/default/pages/SearchProduct.page
force-app/main/default/pages/SearchProduct.page-meta.xml
force-app/main/default/pages/SearchProductCS.page
force-app/main/default/pages/SearchProductCS.page-meta.xml
force-app/main/default/pages/SearchProductIrai.page
force-app/main/default/pages/SearchProductIrai.page-meta.xml
force-app/main/default/pages/SearchSetProduct.page
force-app/main/default/pages/SearchSetProduct.page-meta.xml
force-app/main/default/pages/SearchVisitor.page
force-app/main/default/pages/SearchVisitor.page-meta.xml
force-app/main/default/pages/SelectAsset.page
force-app/main/default/pages/SelectAsset.page-meta.xml
force-app/main/default/pages/SelectAssetEstimate.page
force-app/main/default/pages/SelectAssetEstimate.page-meta.xml
force-app/main/default/pages/SelectAssetEstimateJumpPage.page
force-app/main/default/pages/SelectAssetEstimateJumpPage.page-meta.xml
force-app/main/default/pages/SelectAssetEstimateJumpPage2.page
force-app/main/default/pages/SelectAssetEstimateJumpPage2.page-meta.xml
force-app/main/default/pages/SelectAssetEstimateURF.page
force-app/main/default/pages/SelectAssetEstimateURF.page-meta.xml
force-app/main/default/pages/SelectAssetEstimateVM.page
force-app/main/default/pages/SelectAssetEstimateVM.page-meta.xml
force-app/main/default/pages/SelectAssetEstimateVMTcm.page
force-app/main/default/pages/SelectAssetEstimateVMTcm.page-meta.xml
force-app/main/default/pages/SelectOption.page
force-app/main/default/pages/SelectOption.page-meta.xml
force-app/main/default/pages/SelectProduct2.page
force-app/main/default/pages/SelectProduct2.page-meta.xml
force-app/main/default/pages/SelectProduct2CIC.page
force-app/main/default/pages/SelectProduct2CIC.page-meta.xml
force-app/main/default/pages/SelectProduct2Doc.page
force-app/main/default/pages/SelectProduct2Doc.page-meta.xml
force-app/main/default/pages/ServiceMaintenanceAlert.page
force-app/main/default/pages/ServiceMaintenanceAlert.page-meta.xml
force-app/main/default/pages/ServiceMaintenanceTaskPage.page
force-app/main/default/pages/ServiceMaintenanceTaskPage.page-meta.xml
force-app/main/default/pages/SetPersonalProductTarget.page
force-app/main/default/pages/SetPersonalProductTarget.page-meta.xml
force-app/main/default/pages/SetPersonalProductTargetcvs.page
force-app/main/default/pages/SetPersonalProductTargetcvs.page-meta.xml
force-app/main/default/pages/SetPersonalTarget.page
force-app/main/default/pages/SetPersonalTarget.page-meta.xml
force-app/main/default/pages/SetPersonalTargetEng.page
force-app/main/default/pages/SetPersonalTargetEng.page-meta.xml
force-app/main/default/pages/SetPersonalTargetcsv.page
force-app/main/default/pages/SetPersonalTargetcsv.page-meta.xml
force-app/main/default/pages/SetProductTarget.page
force-app/main/default/pages/SetProductTarget.page-meta.xml
force-app/main/default/pages/SetProductTargetcvs.page
force-app/main/default/pages/SetProductTargetcvs.page-meta.xml
force-app/main/default/pages/SetProvinceTarget.page
force-app/main/default/pages/SetProvinceTarget.page-meta.xml
force-app/main/default/pages/SetProvinceTargetEng.page
force-app/main/default/pages/SetProvinceTargetEng.page-meta.xml
force-app/main/default/pages/SetProvinceTargetcsv.page
force-app/main/default/pages/SetProvinceTargetcsv.page-meta.xml
force-app/main/default/pages/SetupCheck.page
force-app/main/default/pages/SetupCheck.page-meta.xml
force-app/main/default/pages/SetupCheck_BlankPage.page
force-app/main/default/pages/SetupCheck_BlankPage.page-meta.xml
force-app/main/default/pages/SetupCheck_PicklistValuesGet.page
force-app/main/default/pages/SetupCheck_PicklistValuesGet.page-meta.xml
force-app/main/default/pages/Shipment.page
force-app/main/default/pages/Shipment.page-meta.xml
force-app/main/default/pages/SimpleEventRegister.page
force-app/main/default/pages/SimpleEventRegister.page-meta.xml
force-app/main/default/pages/SiteLogin.page
force-app/main/default/pages/SiteLogin.page-meta.xml
force-app/main/default/pages/SiteRegister.page
force-app/main/default/pages/SiteRegister.page-meta.xml
force-app/main/default/pages/SiteRegisterConfirm.page
force-app/main/default/pages/SiteRegisterConfirm.page-meta.xml
force-app/main/default/pages/SiteTemplate.page
force-app/main/default/pages/SiteTemplate.page-meta.xml
force-app/main/default/pages/SolApproval.page
force-app/main/default/pages/SolApproval.page-meta.xml
force-app/main/default/pages/Solution_ProgrammeClone.page
force-app/main/default/pages/Solution_ProgrammeClone.page-meta.xml
force-app/main/default/pages/Solution_ProgrammeDelete.page
force-app/main/default/pages/Solution_ProgrammeDelete.page-meta.xml
force-app/main/default/pages/Solution_ProgrammeEdit.page
force-app/main/default/pages/Solution_ProgrammeEdit.page-meta.xml
force-app/main/default/pages/SparesList.page
force-app/main/default/pages/SparesList.page-meta.xml
force-app/main/default/pages/SpecialDiscount.page
force-app/main/default/pages/SpecialDiscount.page-meta.xml
force-app/main/default/pages/SpecialPrice.page
force-app/main/default/pages/SpecialPrice.page-meta.xml
force-app/main/default/pages/StartTrading.page
force-app/main/default/pages/StartTrading.page-meta.xml
force-app/main/default/pages/StatuAchievementsPCL.page
force-app/main/default/pages/StatuAchievementsPCL.page-meta.xml
force-app/main/default/pages/StdExceptionTemplate.page
force-app/main/default/pages/StdExceptionTemplate.page-meta.xml
force-app/main/default/pages/StraightBackAddress.page
force-app/main/default/pages/StraightBackAddress.page-meta.xml
force-app/main/default/pages/SubAuthorizedCreate.page
force-app/main/default/pages/SubAuthorizedCreate.page-meta.xml
force-app/main/default/pages/SubmitForApprovalPage.page
force-app/main/default/pages/SubmitForApprovalPage.page-meta.xml
force-app/main/default/pages/SurveyManagerPage.page
force-app/main/default/pages/SurveyManagerPage.page-meta.xml
force-app/main/default/pages/SurveyPage.page
force-app/main/default/pages/SurveyPage.page-meta.xml
force-app/main/default/pages/TakeSurvey.page
force-app/main/default/pages/TakeSurvey.page-meta.xml
force-app/main/default/pages/TenderAttachment.page
force-app/main/default/pages/TenderAttachment.page-meta.xml
force-app/main/default/pages/TenderDeletePage.page
force-app/main/default/pages/TenderDeletePage.page-meta.xml
force-app/main/default/pages/TenderDeletePagelwc.page
force-app/main/default/pages/TenderDeletePagelwc.page-meta.xml
force-app/main/default/pages/Test0001.page
force-app/main/default/pages/Test0001.page-meta.xml
force-app/main/default/pages/TestSimpleEvent.page
force-app/main/default/pages/TestSimpleEvent.page-meta.xml
force-app/main/default/pages/TopPage.page
force-app/main/default/pages/TopPage.page-meta.xml
force-app/main/default/pages/TransferAgencyReceived.page
force-app/main/default/pages/TransferAgencyReceived.page-meta.xml
force-app/main/default/pages/TransferAgencyShipment.page
force-app/main/default/pages/TransferAgencyShipment.page-meta.xml
force-app/main/default/pages/TransferApplyNew.page
force-app/main/default/pages/TransferApplyNew.page-meta.xml
force-app/main/default/pages/TransferApplyPDF.page
force-app/main/default/pages/TransferApplyPDF.page-meta.xml
force-app/main/default/pages/TransferApplyQR.page
force-app/main/default/pages/TransferApplyQR.page-meta.xml
force-app/main/default/pages/TransferApplyResponse.page
force-app/main/default/pages/TransferApplyResponse.page-meta.xml
force-app/main/default/pages/TransferApplyResponsePopUp.page
force-app/main/default/pages/TransferApplyResponsePopUp.page-meta.xml
force-app/main/default/pages/TransferApplySelectDetail.page
force-app/main/default/pages/TransferApplySelectDetail.page-meta.xml
force-app/main/default/pages/TransferApplySelectDetailSub.page
force-app/main/default/pages/TransferApplySelectDetailSub.page-meta.xml
force-app/main/default/pages/TransferEquipmentSetSRList.page
force-app/main/default/pages/TransferEquipmentSetSRList.page-meta.xml
force-app/main/default/pages/TransferShippmentReceived1.page
force-app/main/default/pages/TransferShippmentReceived1.page-meta.xml
force-app/main/default/pages/TransferShippmentReceived2.page
force-app/main/default/pages/TransferShippmentReceived2.page-meta.xml
force-app/main/default/pages/TransferShippmentReceived3.page
force-app/main/default/pages/TransferShippmentReceived3.page-meta.xml
force-app/main/default/pages/TransferShippmentReceived4.page
force-app/main/default/pages/TransferShippmentReceived4.page-meta.xml
force-app/main/default/pages/TransferShippmentReceived5.page
force-app/main/default/pages/TransferShippmentReceived5.page-meta.xml
force-app/main/default/pages/TransferShippmentReceived6.page
force-app/main/default/pages/TransferShippmentReceived6.page-meta.xml
force-app/main/default/pages/Unauthorized.page
force-app/main/default/pages/Unauthorized.page-meta.xml
force-app/main/default/pages/UnderConstruct.page
force-app/main/default/pages/UnderConstruct.page-meta.xml
force-app/main/default/pages/UnderConstruction.page
force-app/main/default/pages/UnderConstruction.page-meta.xml
force-app/main/default/pages/UpdateRentalApplySignature.page
force-app/main/default/pages/UpdateRentalApplySignature.page-meta.xml
force-app/main/default/pages/User.page
force-app/main/default/pages/User.page-meta.xml
force-app/main/default/pages/UserInProcess.page
force-app/main/default/pages/UserInProcess.page-meta.xml
force-app/main/default/pages/VFClosePage.page
force-app/main/default/pages/VFClosePage.page-meta.xml
force-app/main/default/pages/VisitReportAlertPage.page
force-app/main/default/pages/VisitReportAlertPage.page-meta.xml
force-app/main/default/pages/WaveLabsApp.page
force-app/main/default/pages/WaveLabsApp.page-meta.xml
force-app/main/default/pages/WaveLabsHome.page
force-app/main/default/pages/WaveLabsHome.page-meta.xml
force-app/main/default/pages/WebToEquipmentSetShippmentReceived.page
force-app/main/default/pages/WebToEquipmentSetShippmentReceived.page-meta.xml
force-app/main/default/pages/WorkflowEditor.page
force-app/main/default/pages/WorkflowEditor.page-meta.xml
force-app/main/default/pages/XMDEditor.page
force-app/main/default/pages/XMDEditor.page-meta.xml
force-app/main/default/pages/XinDailyReport.page
force-app/main/default/pages/XinDailyReport.page-meta.xml
force-app/main/default/pages/Xin_SearchMaintenanceContract.page
force-app/main/default/pages/Xin_SearchMaintenanceContract.page-meta.xml
force-app/main/default/pages/Xin_SearchOpportunity.page
force-app/main/default/pages/Xin_SearchOpportunity.page-meta.xml
force-app/main/default/pages/Xin_SearchVisitorPlace.page
force-app/main/default/pages/Xin_SearchVisitorPlace.page-meta.xml
force-app/main/default/pages/Xin_SearchVisitorPlace_Campaign.page
force-app/main/default/pages/Xin_SearchVisitorPlace_Campaign.page-meta.xml
force-app/main/default/pages/Xin_SearchVisitorPlace_Sales.page
force-app/main/default/pages/Xin_SearchVisitorPlace_Sales.page-meta.xml
force-app/main/default/pages/Xin_SearchVisitorPlace_Training.page
force-app/main/default/pages/Xin_SearchVisitorPlace_Training.page-meta.xml
force-app/main/default/pages/YouCanDeleteRAES.page
force-app/main/default/pages/YouCanDeleteRAES.page-meta.xml
force-app/main/default/pages/YouCantDeleteEvent.page
force-app/main/default/pages/YouCantDeleteEvent.page-meta.xml
force-app/main/default/pages/YouCantDeleteEventC.page
force-app/main/default/pages/YouCantDeleteEventC.page-meta.xml
force-app/main/default/pages/YouCantDeleteQuote.page
force-app/main/default/pages/YouCantDeleteQuote.page-meta.xml
force-app/main/default/pages/contact_phone.page
force-app/main/default/pages/contact_phone.page-meta.xml
force-app/main/default/pages/eSignFormAttachment.page
force-app/main/default/pages/eSignFormAttachment.page-meta.xml
force-app/main/default/pages/eSignFormQR.page
force-app/main/default/pages/eSignFormQR.page-meta.xml
force-app/main/default/pages/genjinbaobiao.page
force-app/main/default/pages/genjinbaobiao.page-meta.xml
force-app/main/default/pages/jzTableTest.page
force-app/main/default/pages/jzTableTest.page-meta.xml
force-app/main/default/pages/labs_survey_css.page
force-app/main/default/pages/labs_survey_css.page-meta.xml
force-app/main/default/pages/maintenanceContractNotOpen.page
force-app/main/default/pages/maintenanceContractNotOpen.page-meta.xml
force-app/main/default/pages/maintenanceContractPage.page
force-app/main/default/pages/maintenanceContractPage.page-meta.xml
force-app/main/default/pages/productsh.page
force-app/main/default/pages/productsh.page-meta.xml
force-app/main/default/pages/searchAgencyHospital.page
force-app/main/default/pages/searchAgencyHospital.page-meta.xml
force-app/main/default/pages/searchAimsAccount.page
force-app/main/default/pages/searchAimsAccount.page-meta.xml
force-app/main/default/pages/searchHospital.page
force-app/main/default/pages/searchHospital.page-meta.xml
force-app/main/default/pages/summonsCreat.page
force-app/main/default/pages/summonsCreat.page-meta.xml
force-app/main/default/pages/summonsPDF.page
force-app/main/default/pages/summonsPDF.page-meta.xml
force-app/main/default/pages/taskAlert.page
force-app/main/default/pages/taskAlert.page-meta.xml
force-app/main/default/pages/taskFeedback.page
force-app/main/default/pages/taskFeedback.page-meta.xml
force-app/main/default/pages/taskManage.page
force-app/main/default/pages/taskManage.page-meta.xml
force-app/main/default/pages/test01.page
force-app/main/default/pages/test01.page-meta.xml
force-app/main/default/pages/test02.page
force-app/main/default/pages/test02.page-meta.xml
force-app/main/default/pages/testTable.page
force-app/main/default/pages/testTable.page-meta.xml
force-app/main/default/pages/testpage1.page
force-app/main/default/pages/testpage1.page-meta.xml
force-app/main/default/pages/yb.page
force-app/main/default/pages/yb.page-meta.xml
force-app/main/default/staticresources/AL_MobileApp_Lib.resource
force-app/main/default/staticresources/AL_MobileApp_Lib.resource-meta.xml
force-app/main/default/staticresources/AccessoryAddCss.resource
force-app/main/default/staticresources/AccessoryAddCss.resource-meta.xml
force-app/main/default/staticresources/AccessorySelectCss.resource
force-app/main/default/staticresources/AccessorySelectCss.resource-meta.xml
force-app/main/default/staticresources/AssetPCLJS.resource
force-app/main/default/staticresources/AssetPCLJS.resource-meta.xml
force-app/main/default/staticresources/BeforeOPDPDF.resource
force-app/main/default/staticresources/BeforeOPDPDF.resource-meta.xml
force-app/main/default/staticresources/BmeWorkJs.resource
force-app/main/default/staticresources/BmeWorkJs.resource-meta.xml
force-app/main/default/staticresources/CommonUtilJs.resource
force-app/main/default/staticresources/CommonUtilJs.resource-meta.xml
force-app/main/default/staticresources/ConsumTrialPageCss.resource
force-app/main/default/staticresources/ConsumTrialPageCss.resource-meta.xml
force-app/main/default/staticresources/ConsumableSampleApplyJS.resource
force-app/main/default/staticresources/ConsumableSampleApplyJS.resource-meta.xml
force-app/main/default/staticresources/Dealer_enquiryJs.resource
force-app/main/default/staticresources/Dealer_enquiryJs.resource-meta.xml
force-app/main/default/staticresources/Dealer_enquiryJs1.resource
force-app/main/default/staticresources/Dealer_enquiryJs1.resource-meta.xml
force-app/main/default/staticresources/DepartmentReport.resource
force-app/main/default/staticresources/DepartmentReport.resource-meta.xml
force-app/main/default/staticresources/EquipmentSetShippmentReceivedcss.resource
force-app/main/default/staticresources/EquipmentSetShippmentReceivedcss.resource-meta.xml
force-app/main/default/staticresources/EventCommentJs.resource
force-app/main/default/staticresources/EventCommentJs.resource-meta.xml
force-app/main/default/staticresources/FixtureSetManageCss.resource
force-app/main/default/staticresources/FixtureSetManageCss.resource-meta.xml
force-app/main/default/staticresources/HospitalReport.resource
force-app/main/default/staticresources/HospitalReport.resource-meta.xml
force-app/main/default/staticresources/IconResizeMinus_5.resource
force-app/main/default/staticresources/IconResizeMinus_5.resource-meta.xml
force-app/main/default/staticresources/IconResizePlus_5.resource
force-app/main/default/staticresources/IconResizePlus_5.resource-meta.xml
force-app/main/default/staticresources/MainFixtureSelectCss.resource
force-app/main/default/staticresources/MainFixtureSelectCss.resource-meta.xml
force-app/main/default/staticresources/NewQuoteEntryJS.resource
force-app/main/default/staticresources/NewQuoteEntryJS.resource-meta.xml
force-app/main/default/staticresources/NewQuoteIraiJS.resource
force-app/main/default/staticresources/NewQuoteIraiJS.resource-meta.xml
force-app/main/default/staticresources/OFSCalendarCss.resource
force-app/main/default/staticresources/OFSCalendarCss.resource-meta.xml
force-app/main/default/staticresources/OFSCalendarJs.resource
force-app/main/default/staticresources/OFSCalendarJs.resource-meta.xml
force-app/main/default/staticresources/OFSDashboard.resource
force-app/main/default/staticresources/OFSDashboard.resource-meta.xml
force-app/main/default/staticresources/OFSHospitalLayoutCss.resource
force-app/main/default/staticresources/OFSHospitalLayoutCss.resource-meta.xml
force-app/main/default/staticresources/OFSIcon.resource
force-app/main/default/staticresources/OFSIcon.resource-meta.xml
force-app/main/default/staticresources/Olumpus_WaterMark.resource
force-app/main/default/staticresources/Olumpus_WaterMark.resource-meta.xml
force-app/main/default/staticresources/OpportunityPCLJs.resource
force-app/main/default/staticresources/OpportunityPCLJs.resource-meta.xml
force-app/main/default/staticresources/PersonalCalendarJs.resource
force-app/main/default/staticresources/PersonalCalendarJs.resource-meta.xml
force-app/main/default/staticresources/PersonalEvaluationCss.resource
force-app/main/default/staticresources/PersonalEvaluationCss.resource-meta.xml
force-app/main/default/staticresources/PersonalEvaluationJs2.resource
force-app/main/default/staticresources/PersonalEvaluationJs2.resource-meta.xml
force-app/main/default/staticresources/PersonalEvaluationTabJs.resource
force-app/main/default/staticresources/PersonalEvaluationTabJs.resource-meta.xml
force-app/main/default/staticresources/PleaseWaitDialog.resource
force-app/main/default/staticresources/PleaseWaitDialog.resource-meta.xml
force-app/main/default/staticresources/QueuePageByAssetIdCss.resource
force-app/main/default/staticresources/QueuePageByAssetIdCss.resource-meta.xml
force-app/main/default/staticresources/ReceivingNotePageCss.resource
force-app/main/default/staticresources/ReceivingNotePageCss.resource-meta.xml
force-app/main/default/staticresources/ReceivingNotePageJS.resource
force-app/main/default/staticresources/ReceivingNotePageJS.resource-meta.xml
force-app/main/default/staticresources/RelationListPagingCmpCss.resource
force-app/main/default/staticresources/RelationListPagingCmpCss.resource-meta.xml
force-app/main/default/staticresources/RelationListPagingCmpJS.resource
force-app/main/default/staticresources/RelationListPagingCmpJS.resource-meta.xml
force-app/main/default/staticresources/RentalFixtureSetAssignCss.resource
force-app/main/default/staticresources/RentalFixtureSetAssignCss.resource-meta.xml
force-app/main/default/staticresources/RentalFixtureSetDetilSelectCss.resource
force-app/main/default/staticresources/RentalFixtureSetDetilSelectCss.resource-meta.xml
force-app/main/default/staticresources/RentalFixtureSetSelectCss.resource
force-app/main/default/staticresources/RentalFixtureSetSelectCss.resource-meta.xml
force-app/main/default/staticresources/S1_redirect.resource
force-app/main/default/staticresources/S1_redirect.resource-meta.xml
force-app/main/default/staticresources/S1app_js.resource
force-app/main/default/staticresources/S1app_js.resource-meta.xml
force-app/main/default/staticresources/SiteSamples.resource
force-app/main/default/staticresources/SiteSamples.resource-meta.xml
force-app/main/default/staticresources/SurveyForce.resource
force-app/main/default/staticresources/SurveyForce.resource-meta.xml
force-app/main/default/staticresources/TextareaToTable.resource
force-app/main/default/staticresources/TextareaToTable.resource-meta.xml
force-app/main/default/staticresources/TransferShippmentReceivedcss.resource
force-app/main/default/staticresources/TransferShippmentReceivedcss.resource-meta.xml
force-app/main/default/staticresources/UserGuide.resource
force-app/main/default/staticresources/UserGuide.resource-meta.xml
force-app/main/default/staticresources/VisualforceStyle.resource
force-app/main/default/staticresources/VisualforceStyle.resource-meta.xml
force-app/main/default/staticresources/XinDailyReportTuning2Js.resource
force-app/main/default/staticresources/XinDailyReportTuning2Js.resource-meta.xml
force-app/main/default/staticresources/apex20.resource
force-app/main/default/staticresources/apex20.resource-meta.xml
force-app/main/default/staticresources/blockUIcss.resource
force-app/main/default/staticresources/blockUIcss.resource-meta.xml
force-app/main/default/staticresources/blockUIcssOpp.resource
force-app/main/default/staticresources/blockUIcssOpp.resource-meta.xml
force-app/main/default/staticresources/clipImg.resource
force-app/main/default/staticresources/clipImg.resource-meta.xml
force-app/main/default/staticresources/clipboardminjs.resource
force-app/main/default/staticresources/clipboardminjs.resource-meta.xml
force-app/main/default/staticresources/connection20.resource
force-app/main/default/staticresources/connection20.resource-meta.xml
force-app/main/default/staticresources/contractdetailpdf.resource
force-app/main/default/staticresources/contractdetailpdf.resource-meta.xml
force-app/main/default/staticresources/curleft.resource
force-app/main/default/staticresources/curleft.resource-meta.xml
force-app/main/default/staticresources/curright.resource
force-app/main/default/staticresources/curright.resource-meta.xml
force-app/main/default/staticresources/downloadJs.resource
force-app/main/default/staticresources/downloadJs.resource-meta.xml
force-app/main/default/staticresources/esignimg01.resource
force-app/main/default/staticresources/esignimg01.resource-meta.xml
force-app/main/default/staticresources/esignimg02.resource
force-app/main/default/staticresources/esignimg02.resource-meta.xml
force-app/main/default/staticresources/esignimg03.resource
force-app/main/default/staticresources/esignimg03.resource-meta.xml
force-app/main/default/staticresources/esignimg04.resource
force-app/main/default/staticresources/esignimg04.resource-meta.xml
force-app/main/default/staticresources/esignimg05.resource
force-app/main/default/staticresources/esignimg05.resource-meta.xml
force-app/main/default/staticresources/esignimg06.resource
force-app/main/default/staticresources/esignimg06.resource-meta.xml
force-app/main/default/staticresources/forcetk.resource
force-app/main/default/staticresources/forcetk.resource-meta.xml
force-app/main/default/staticresources/framework7.resource
force-app/main/default/staticresources/framework7.resource-meta.xml
force-app/main/default/staticresources/fullcalendarCss.resource
force-app/main/default/staticresources/fullcalendarCss.resource-meta.xml
force-app/main/default/staticresources/html2canvasJs.resource
force-app/main/default/staticresources/html2canvasJs.resource-meta.xml
force-app/main/default/staticresources/instascan.resource
force-app/main/default/staticresources/instascan.resource-meta.xml
force-app/main/default/staticresources/jQueryMultiselect.resource
force-app/main/default/staticresources/jQueryMultiselect.resource-meta.xml
force-app/main/default/staticresources/jquery183minjs.resource
force-app/main/default/staticresources/jquery183minjs.resource-meta.xml
force-app/main/default/staticresources/jqueryBarcode.resource
force-app/main/default/staticresources/jqueryBarcode.resource-meta.xml
force-app/main/default/staticresources/jqueryTableFix.resource
force-app/main/default/staticresources/jqueryTableFix.resource-meta.xml
force-app/main/default/staticresources/jquery_confirm.resource
force-app/main/default/staticresources/jquery_confirm.resource-meta.xml
force-app/main/default/staticresources/jquery_jqplot.resource
force-app/main/default/staticresources/jquery_jqplot.resource-meta.xml
force-app/main/default/staticresources/jqueryblockUIjs.resource
force-app/main/default/staticresources/jqueryblockUIjs.resource-meta.xml
force-app/main/default/staticresources/jquerydoubletapjs.resource
force-app/main/default/staticresources/jquerydoubletapjs.resource-meta.xml
force-app/main/default/staticresources/jquerysuggestcss.resource
force-app/main/default/staticresources/jquerysuggestcss.resource-meta.xml
force-app/main/default/staticresources/jquerysuggestjs.resource
force-app/main/default/staticresources/jquerysuggestjs.resource-meta.xml
force-app/main/default/staticresources/multilineToastCSS.resource
force-app/main/default/staticresources/multilineToastCSS.resource-meta.xml
force-app/main/default/staticresources/pdfjs113.resource
force-app/main/default/staticresources/pdfjs113.resource-meta.xml
force-app/main/default/staticresources/plusicon.resource
force-app/main/default/staticresources/plusicon.resource-meta.xml
force-app/main/default/staticresources/qrcode.resource
force-app/main/default/staticresources/qrcode.resource-meta.xml
force-app/main/default/staticresources/quotepdf.resource
force-app/main/default/staticresources/quotepdf.resource-meta.xml
force-app/main/default/staticresources/signaturePadMinJs.resource
force-app/main/default/staticresources/signaturePadMinJs.resource-meta.xml
force-app/main/default/staticresources/smarmimg1.resource
force-app/main/default/staticresources/smarmimg1.resource-meta.xml
force-app/main/default/staticresources/smarmimg2.resource
force-app/main/default/staticresources/smarmimg2.resource-meta.xml
force-app/main/default/staticresources/smarmimg3.resource
force-app/main/default/staticresources/smarmimg3.resource-meta.xml
force-app/main/default/staticresources/smarmimg4.resource
force-app/main/default/staticresources/smarmimg4.resource-meta.xml
force-app/main/default/staticresources/summonsCreatJs.resource
force-app/main/default/staticresources/summonsCreatJs.resource-meta.xml
force-app/main/default/staticresources/testPlist.resource
force-app/main/default/staticresources/testPlist.resource-meta.xml
force-app/main/default/triggers/AccountBeforeDelete.trigger
force-app/main/default/triggers/AccountBeforeDelete.trigger-meta.xml
force-app/main/default/triggers/AccountTrigger.trigger
force-app/main/default/triggers/AccountTrigger.trigger-meta.xml
force-app/main/default/triggers/Advance_PaymentTrigger.trigger
force-app/main/default/triggers/Advance_PaymentTrigger.trigger-meta.xml
force-app/main/default/triggers/AfterCreateDepartment.trigger
force-app/main/default/triggers/AfterCreateDepartment.trigger-meta.xml
force-app/main/default/triggers/AfterCreateHospital.trigger
force-app/main/default/triggers/AfterCreateHospital.trigger-meta.xml
force-app/main/default/triggers/AfterUpdateAsset.trigger
force-app/main/default/triggers/AfterUpdateAsset.trigger-meta.xml
force-app/main/default/triggers/AfterUpdateReport.trigger
force-app/main/default/triggers/AfterUpdateReport.trigger-meta.xml
force-app/main/default/triggers/AgencyContactTrigger.trigger
force-app/main/default/triggers/AgencyContactTrigger.trigger-meta.xml
force-app/main/default/triggers/AgencyHospitalTrigger.trigger
force-app/main/default/triggers/AgencyHospitalTrigger.trigger-meta.xml
force-app/main/default/triggers/AgencyOppUpd.trigger
force-app/main/default/triggers/AgencyOppUpd.trigger-meta.xml
force-app/main/default/triggers/AgencyOpportunityTrigger.trigger
force-app/main/default/triggers/AgencyOpportunityTrigger.trigger-meta.xml
force-app/main/default/triggers/AgencyReportHeaderTrigger.trigger
force-app/main/default/triggers/AgencyReportHeaderTrigger.trigger-meta.xml
force-app/main/default/triggers/AgencyReportTrigger.trigger
force-app/main/default/triggers/AgencyReportTrigger.trigger-meta.xml
force-app/main/default/triggers/ApplicationForCATrigger.trigger
force-app/main/default/triggers/ApplicationForCATrigger.trigger-meta.xml
force-app/main/default/triggers/AssessmentReport.trigger
force-app/main/default/triggers/AssessmentReport.trigger-meta.xml
force-app/main/default/triggers/AssetGuaranteeTimeChange.trigger
force-app/main/default/triggers/AssetGuaranteeTimeChange.trigger-meta.xml
force-app/main/default/triggers/AssetHpDeptUpd.trigger
force-app/main/default/triggers/AssetHpDeptUpd.trigger-meta.xml
force-app/main/default/triggers/AssetImageBeforeTrigger.trigger
force-app/main/default/triggers/AssetImageBeforeTrigger.trigger-meta.xml
force-app/main/default/triggers/AssetMDMDupliChk.trigger
force-app/main/default/triggers/AssetMDMDupliChk.trigger-meta.xml
force-app/main/default/triggers/AssetMaintainDetailTrigger.trigger
force-app/main/default/triggers/AssetMaintainDetailTrigger.trigger-meta.xml
force-app/main/default/triggers/AssetMaintainHeaderTrigger.trigger
force-app/main/default/triggers/AssetMaintainHeaderTrigger.trigger-meta.xml
force-app/main/default/triggers/AssetModifyBelongsChange.trigger
force-app/main/default/triggers/AssetModifyBelongsChange.trigger-meta.xml
force-app/main/default/triggers/AssetRecordTypeUpd.trigger
force-app/main/default/triggers/AssetRecordTypeUpd.trigger-meta.xml
force-app/main/default/triggers/AssetTrigger.trigger
force-app/main/default/triggers/AssetTrigger.trigger-meta.xml
force-app/main/default/triggers/AttachmentTrigger.trigger
force-app/main/default/triggers/AttachmentTrigger.trigger-meta.xml
force-app/main/default/triggers/BidAnnounce.trigger
force-app/main/default/triggers/BidAnnounce.trigger-meta.xml
force-app/main/default/triggers/CampaignCost.trigger
force-app/main/default/triggers/CampaignCost.trigger-meta.xml
force-app/main/default/triggers/CampaignMember.trigger
force-app/main/default/triggers/CampaignMember.trigger-meta.xml
force-app/main/default/triggers/CampaignMemberTrigger.trigger
force-app/main/default/triggers/CampaignMemberTrigger.trigger-meta.xml
force-app/main/default/triggers/CampaignToOPDTrigger.trigger
force-app/main/default/triggers/CampaignToOPDTrigger.trigger-meta.xml
force-app/main/default/triggers/CampaignTriggerBefIns.trigger
force-app/main/default/triggers/CampaignTriggerBefIns.trigger-meta.xml
force-app/main/default/triggers/CancelPostponePlanTrigger.trigger
force-app/main/default/triggers/CancelPostponePlanTrigger.trigger-meta.xml
force-app/main/default/triggers/CaseHpDeptUpd.trigger
force-app/main/default/triggers/CaseHpDeptUpd.trigger-meta.xml
force-app/main/default/triggers/ChangedDepartmentOwner.trigger
force-app/main/default/triggers/ChangedDepartmentOwner.trigger-meta.xml
force-app/main/default/triggers/CheckChatterPosts.trigger
force-app/main/default/triggers/CheckChatterPosts.trigger-meta.xml
force-app/main/default/triggers/CheckEventTimeChange.trigger
force-app/main/default/triggers/CheckEventTimeChange.trigger-meta.xml
force-app/main/default/triggers/CheckInspectionSubmitUser.trigger
force-app/main/default/triggers/CheckInspectionSubmitUser.trigger-meta.xml
force-app/main/default/triggers/CicCaseProMidTblBefUpd.trigger
force-app/main/default/triggers/CicCaseProMidTblBefUpd.trigger-meta.xml
force-app/main/default/triggers/CicProMidTblBefUpd.trigger
force-app/main/default/triggers/CicProMidTblBefUpd.trigger-meta.xml
force-app/main/default/triggers/ConLostReportTrigger.trigger
force-app/main/default/triggers/ConLostReportTrigger.trigger-meta.xml
force-app/main/default/triggers/ConsumApplyEquipmentSetDetailTrigger.trigger
force-app/main/default/triggers/ConsumApplyEquipmentSetDetailTrigger.trigger-meta.xml
force-app/main/default/triggers/ConsumApplyEquipmentSetTrigger.trigger
force-app/main/default/triggers/ConsumApplyEquipmentSetTrigger.trigger-meta.xml
force-app/main/default/triggers/ConsumApplyTrigger.trigger
force-app/main/default/triggers/ConsumApplyTrigger.trigger-meta.xml
force-app/main/default/triggers/ConsumInventoryDetailTrigger.trigger
force-app/main/default/triggers/ConsumInventoryDetailTrigger.trigger-meta.xml
force-app/main/default/triggers/ConsumableAssetUp.trigger
force-app/main/default/triggers/ConsumableAssetUp.trigger-meta.xml
force-app/main/default/triggers/ConsumableOrderDetail1Trigger.trigger
force-app/main/default/triggers/ConsumableOrderDetail1Trigger.trigger-meta.xml
force-app/main/default/triggers/ConsumableOrderDetail2.trigger
force-app/main/default/triggers/ConsumableOrderDetail2.trigger-meta.xml
force-app/main/default/triggers/ConsumableOrderDetail2Trigger.trigger
force-app/main/default/triggers/ConsumableOrderDetail2Trigger.trigger-meta.xml
force-app/main/default/triggers/ConsumableOrderTrigger.trigger
force-app/main/default/triggers/ConsumableOrderTrigger.trigger-meta.xml
force-app/main/default/triggers/ConsumableOrdertosap.trigger
force-app/main/default/triggers/ConsumableOrdertosap.trigger-meta.xml
force-app/main/default/triggers/ContactBeforeDelete.trigger
force-app/main/default/triggers/ContactBeforeDelete.trigger-meta.xml
force-app/main/default/triggers/ContactHpDeptUpd.trigger
force-app/main/default/triggers/ContactHpDeptUpd.trigger-meta.xml
force-app/main/default/triggers/ContactToUser.trigger
force-app/main/default/triggers/ContactToUser.trigger-meta.xml
force-app/main/default/triggers/ContactTrigger.trigger
force-app/main/default/triggers/ContactTrigger.trigger-meta.xml
force-app/main/default/triggers/DailyReportLink2OlympusCalendar.trigger
force-app/main/default/triggers/DailyReportLink2OlympusCalendar.trigger-meta.xml
force-app/main/default/triggers/DailyReportSetHospitalCount.trigger
force-app/main/default/triggers/DailyReportSetHospitalCount.trigger-meta.xml
force-app/main/default/triggers/DiscountProductApplicationApprove.trigger
force-app/main/default/triggers/DiscountProductApplicationApprove.trigger-meta.xml
force-app/main/default/triggers/EventOpportunityPileUp.trigger
force-app/main/default/triggers/EventOpportunityPileUp.trigger-meta.xml
force-app/main/default/triggers/EventSetHospitalCount.trigger
force-app/main/default/triggers/EventSetHospitalCount.trigger-meta.xml
force-app/main/default/triggers/FixtureDeliverySlip.trigger
force-app/main/default/triggers/FixtureDeliverySlip.trigger-meta.xml
force-app/main/default/triggers/FixtureOneToOneLinkTrigger.trigger
force-app/main/default/triggers/FixtureOneToOneLinkTrigger.trigger-meta.xml
force-app/main/default/triggers/FixtureRemindSnapshotTrigger.trigger
force-app/main/default/triggers/FixtureRemindSnapshotTrigger.trigger-meta.xml
force-app/main/default/triggers/FixtureSetDetailTrigger.trigger
force-app/main/default/triggers/FixtureSetDetailTrigger.trigger-meta.xml
force-app/main/default/triggers/FixtureSetTrigger.trigger
force-app/main/default/triggers/FixtureSetTrigger.trigger-meta.xml
force-app/main/default/triggers/HospitalPriceTrigger.trigger
force-app/main/default/triggers/HospitalPriceTrigger.trigger-meta.xml
force-app/main/default/triggers/ISOppoDemand_Trigger.trigger
force-app/main/default/triggers/ISOppoDemand_Trigger.trigger-meta.xml
force-app/main/default/triggers/InquiryForm.trigger
force-app/main/default/triggers/InquiryForm.trigger-meta.xml
force-app/main/default/triggers/InspectionReportTrigger.trigger
force-app/main/default/triggers/InspectionReportTrigger.trigger-meta.xml
force-app/main/default/triggers/InventoryDetailTrigger.trigger
force-app/main/default/triggers/InventoryDetailTrigger.trigger-meta.xml
force-app/main/default/triggers/InventoryHeaderTrigger.trigger
force-app/main/default/triggers/InventoryHeaderTrigger.trigger-meta.xml
force-app/main/default/triggers/LastbuyProductTrigger.trigger
force-app/main/default/triggers/LastbuyProductTrigger.trigger-meta.xml
force-app/main/default/triggers/LeadTrigger.trigger
force-app/main/default/triggers/LeadTrigger.trigger-meta.xml
force-app/main/default/triggers/LicenseInfoTrigger.trigger
force-app/main/default/triggers/LicenseInfoTrigger.trigger-meta.xml
force-app/main/default/triggers/LostCancelReport2Asset.trigger
force-app/main/default/triggers/LostCancelReport2Asset.trigger-meta.xml
force-app/main/default/triggers/LostCancelReportTrigger.trigger
force-app/main/default/triggers/LostCancelReportTrigger.trigger-meta.xml
force-app/main/default/triggers/LostReportDetailTrigger.trigger
force-app/main/default/triggers/LostReportDetailTrigger.trigger-meta.xml
force-app/main/default/triggers/LostReportTrigger.trigger
force-app/main/default/triggers/LostReportTrigger.trigger-meta.xml
force-app/main/default/triggers/MCAETrigger.trigger
force-app/main/default/triggers/MCAETrigger.trigger-meta.xml
force-app/main/default/triggers/MCESTrigger.trigger
force-app/main/default/triggers/MCESTrigger.trigger-meta.xml
force-app/main/default/triggers/MaintenanceContractAfterUpdate.trigger
force-app/main/default/triggers/MaintenanceContractAfterUpdate.trigger-meta.xml
force-app/main/default/triggers/MaintenanceContractAssetTrigger.trigger
force-app/main/default/triggers/MaintenanceContractAssetTrigger.trigger-meta.xml
force-app/main/default/triggers/MaintenanceContractBeforeDelete.trigger
force-app/main/default/triggers/MaintenanceContractBeforeDelete.trigger-meta.xml
force-app/main/default/triggers/MaintenanceContractHpDeptUpd.trigger
force-app/main/default/triggers/MaintenanceContractHpDeptUpd.trigger-meta.xml
force-app/main/default/triggers/MaintenanceContractTrigger.trigger
force-app/main/default/triggers/MaintenanceContractTrigger.trigger-meta.xml
force-app/main/default/triggers/MaintenanceUpdateProduct.trigger
force-app/main/default/triggers/MaintenanceUpdateProduct.trigger-meta.xml
force-app/main/default/triggers/MakeAssetHistory.trigger
force-app/main/default/triggers/MakeAssetHistory.trigger-meta.xml
force-app/main/default/triggers/MeetingDelayApplyTrigger.trigger
force-app/main/default/triggers/MeetingDelayApplyTrigger.trigger-meta.xml
force-app/main/default/triggers/MonthlyReportTrigger.trigger
force-app/main/default/triggers/MonthlyReportTrigger.trigger-meta.xml
force-app/main/default/triggers/NFM001.trigger
force-app/main/default/triggers/NFM001.trigger-meta.xml
force-app/main/default/triggers/NFM001AgencyContract.trigger
force-app/main/default/triggers/NFM001AgencyContract.trigger-meta.xml
force-app/main/default/triggers/NFM007.trigger
force-app/main/default/triggers/NFM007.trigger-meta.xml
force-app/main/default/triggers/NFM010UpsertStatuAchievements.trigger
force-app/main/default/triggers/NFM010UpsertStatuAchievements.trigger-meta.xml
force-app/main/default/triggers/NFM202Opp.trigger
force-app/main/default/triggers/NFM202Opp.trigger-meta.xml
force-app/main/default/triggers/NFM207.trigger
force-app/main/default/triggers/NFM207.trigger-meta.xml
force-app/main/default/triggers/NFM701ControllerTrigger.trigger
force-app/main/default/triggers/NFM701ControllerTrigger.trigger-meta.xml
force-app/main/default/triggers/OCSMToUser.trigger
force-app/main/default/triggers/OCSMToUser.trigger-meta.xml
force-app/main/default/triggers/OPDPlanUp.trigger
force-app/main/default/triggers/OPDPlanUp.trigger-meta.xml
force-app/main/default/triggers/OdsTrigger.trigger
force-app/main/default/triggers/OdsTrigger.trigger-meta.xml
force-app/main/default/triggers/OnCallTrigger.trigger
force-app/main/default/triggers/OnCallTrigger.trigger-meta.xml
force-app/main/default/triggers/OpponentBidInformation2Asset.trigger
force-app/main/default/triggers/OpponentBidInformation2Asset.trigger-meta.xml
force-app/main/default/triggers/Opponent_Bid_InformationTrigger.trigger
force-app/main/default/triggers/Opponent_Bid_InformationTrigger.trigger-meta.xml
force-app/main/default/triggers/OpporFileAllEvent.trigger
force-app/main/default/triggers/OpporFileAllEvent.trigger-meta.xml
force-app/main/default/triggers/OpportunityBefUpd.trigger
force-app/main/default/triggers/OpportunityBefUpd.trigger-meta.xml
force-app/main/default/triggers/OpportunityBeforeDelete.trigger
force-app/main/default/triggers/OpportunityBeforeDelete.trigger-meta.xml
force-app/main/default/triggers/OpportunityBidding.trigger
force-app/main/default/triggers/OpportunityBidding.trigger-meta.xml
force-app/main/default/triggers/OpportunityFileOrderTrigger.trigger
force-app/main/default/triggers/OpportunityFileOrderTrigger.trigger-meta.xml
force-app/main/default/triggers/OpportunityFileTrigger.trigger
force-app/main/default/triggers/OpportunityFileTrigger.trigger-meta.xml
force-app/main/default/triggers/OpportunityHpDeptUpd.trigger
force-app/main/default/triggers/OpportunityHpDeptUpd.trigger-meta.xml
force-app/main/default/triggers/OpportunityLineItemTrigger.trigger
force-app/main/default/triggers/OpportunityLineItemTrigger.trigger-meta.xml
force-app/main/default/triggers/OpportunityMemberTrigger.trigger
force-app/main/default/triggers/OpportunityMemberTrigger.trigger-meta.xml
force-app/main/default/triggers/OpportunitySpecialApplyTrigger.trigger
force-app/main/default/triggers/OpportunitySpecialApplyTrigger.trigger-meta.xml
force-app/main/default/triggers/OpportunityTrigger.trigger
force-app/main/default/triggers/OpportunityTrigger.trigger-meta.xml
force-app/main/default/triggers/OrderListTrigger.trigger
force-app/main/default/triggers/OrderListTrigger.trigger-meta.xml
force-app/main/default/triggers/PAEDecisionRecordTrigger.trigger
force-app/main/default/triggers/PAEDecisionRecordTrigger.trigger-meta.xml
force-app/main/default/triggers/PCLLostProduct2Asset.trigger
force-app/main/default/triggers/PCLLostProduct2Asset.trigger-meta.xml
force-app/main/default/triggers/PaymentMaintenanceContractTrigger.trigger
force-app/main/default/triggers/PaymentMaintenanceContractTrigger.trigger-meta.xml
force-app/main/default/triggers/PowerBISyncOpportunity.trigger
force-app/main/default/triggers/PowerBISyncOpportunity.trigger-meta.xml
force-app/main/default/triggers/PowerBISyncOpportunityLineItem.trigger
force-app/main/default/triggers/PowerBISyncOpportunityLineItem.trigger-meta.xml
force-app/main/default/triggers/PowerBISyncProduct.trigger
force-app/main/default/triggers/PowerBISyncProduct.trigger-meta.xml
force-app/main/default/triggers/PowerBISyncStatuAchievements.trigger
force-app/main/default/triggers/PowerBISyncStatuAchievements.trigger-meta.xml
force-app/main/default/triggers/ProDocMidTblBefUpd.trigger
force-app/main/default/triggers/ProDocMidTblBefUpd.trigger-meta.xml
force-app/main/default/triggers/ProRegister.trigger
force-app/main/default/triggers/ProRegister.trigger-meta.xml
force-app/main/default/triggers/ProRegisterLink.trigger
force-app/main/default/triggers/ProRegisterLink.trigger-meta.xml
force-app/main/default/triggers/Product2Trigger.trigger
force-app/main/default/triggers/Product2Trigger.trigger-meta.xml
force-app/main/default/triggers/ProductScoreTableHistoryTrigger.trigger
force-app/main/default/triggers/ProductScoreTableHistoryTrigger.trigger-meta.xml
force-app/main/default/triggers/ProductSetTrigger.trigger
force-app/main/default/triggers/ProductSetTrigger.trigger-meta.xml
force-app/main/default/triggers/ProductTypesTrigger.trigger
force-app/main/default/triggers/ProductTypesTrigger.trigger-meta.xml
force-app/main/default/triggers/QISMBC.trigger
force-app/main/default/triggers/QISMBC.trigger-meta.xml
force-app/main/default/triggers/QISSCTrigger.trigger
force-app/main/default/triggers/QISSCTrigger.trigger-meta.xml
force-app/main/default/triggers/QISTrigger.trigger
force-app/main/default/triggers/QISTrigger.trigger-meta.xml
force-app/main/default/triggers/QuestionnaireSurvey.trigger
force-app/main/default/triggers/QuestionnaireSurvey.trigger-meta.xml
force-app/main/default/triggers/ReceivingNoteDetailTrigger.trigger
force-app/main/default/triggers/ReceivingNoteDetailTrigger.trigger-meta.xml
force-app/main/default/triggers/ReceivingNoteSummaryTrigger.trigger
force-app/main/default/triggers/ReceivingNoteSummaryTrigger.trigger-meta.xml
force-app/main/default/triggers/ReceivingNoteTrigger.trigger
force-app/main/default/triggers/ReceivingNoteTrigger.trigger-meta.xml
force-app/main/default/triggers/RentalApplyBeforeUpdate.trigger
force-app/main/default/triggers/RentalApplyBeforeUpdate.trigger-meta.xml
force-app/main/default/triggers/RentalApplyEquipmentSetCheck.trigger
force-app/main/default/triggers/RentalApplyEquipmentSetCheck.trigger-meta.xml
force-app/main/default/triggers/RentalApplyEquipmentSetDetailCheck.trigger
force-app/main/default/triggers/RentalApplyEquipmentSetDetailCheck.trigger-meta.xml
force-app/main/default/triggers/RentalApplyEquipmentSetDetailTrigger.trigger
force-app/main/default/triggers/RentalApplyEquipmentSetDetailTrigger.trigger-meta.xml
force-app/main/default/triggers/RentalApplyEquipmentSetTrigger.trigger
force-app/main/default/triggers/RentalApplyEquipmentSetTrigger.trigger-meta.xml
force-app/main/default/triggers/RentalApplyHpDeptUpd.trigger
force-app/main/default/triggers/RentalApplyHpDeptUpd.trigger-meta.xml
force-app/main/default/triggers/RentalApplyOtherTrigger.trigger
force-app/main/default/triggers/RentalApplyOtherTrigger.trigger-meta.xml
force-app/main/default/triggers/RentalApplySequenceTrigger.trigger
force-app/main/default/triggers/RentalApplySequenceTrigger.trigger-meta.xml
force-app/main/default/triggers/RentalApplyShare.trigger
force-app/main/default/triggers/RentalApplyShare.trigger-meta.xml
force-app/main/default/triggers/RentalApplyTrigger.trigger
force-app/main/default/triggers/RentalApplyTrigger.trigger-meta.xml
force-app/main/default/triggers/RentalHpDeptUpd.trigger
force-app/main/default/triggers/RentalHpDeptUpd.trigger-meta.xml
force-app/main/default/triggers/Repair.trigger
force-app/main/default/triggers/Repair.trigger-meta.xml
force-app/main/default/triggers/RepairAgainAnTrigger.trigger
force-app/main/default/triggers/RepairAgainAnTrigger.trigger-meta.xml
force-app/main/default/triggers/RepairHpDeptUpd.trigger
force-app/main/default/triggers/RepairHpDeptUpd.trigger-meta.xml
force-app/main/default/triggers/RepairQuoteTrigger.trigger
force-app/main/default/triggers/RepairQuoteTrigger.trigger-meta.xml
force-app/main/default/triggers/RepairReceiptTrigger.trigger
force-app/main/default/triggers/RepairReceiptTrigger.trigger-meta.xml
force-app/main/default/triggers/ReportCPileUp.trigger
force-app/main/default/triggers/ReportCPileUp.trigger-meta.xml
force-app/main/default/triggers/ReportHpDeptUpd.trigger
force-app/main/default/triggers/ReportHpDeptUpd.trigger-meta.xml
force-app/main/default/triggers/ReportTrigger.trigger
force-app/main/default/triggers/ReportTrigger.trigger-meta.xml
force-app/main/default/triggers/Report_BeforeFieldCopy.trigger
force-app/main/default/triggers/Report_BeforeFieldCopy.trigger-meta.xml
force-app/main/default/triggers/RequestTednerDoc.trigger
force-app/main/default/triggers/RequestTednerDoc.trigger-meta.xml
force-app/main/default/triggers/SIUploadFile.trigger
force-app/main/default/triggers/SIUploadFile.trigger-meta.xml
force-app/main/default/triggers/SetAttToDocForEmail.trigger
force-app/main/default/triggers/SetAttToDocForEmail.trigger-meta.xml
force-app/main/default/triggers/SetContractEstimatePrice.trigger
force-app/main/default/triggers/SetContractEstimatePrice.trigger-meta.xml
force-app/main/default/triggers/SmarmSetUserCount.trigger
force-app/main/default/triggers/SmarmSetUserCount.trigger-meta.xml
force-app/main/default/triggers/SolutionProjectRequirementsTrigger.trigger
force-app/main/default/triggers/SolutionProjectRequirementsTrigger.trigger-meta.xml
force-app/main/default/triggers/Solution_Programme.trigger
force-app/main/default/triggers/Solution_Programme.trigger-meta.xml
force-app/main/default/triggers/SubAuthorized.trigger
force-app/main/default/triggers/SubAuthorized.trigger-meta.xml
force-app/main/default/triggers/SyncMBAsset.trigger
force-app/main/default/triggers/SyncMBAsset.trigger-meta.xml
force-app/main/default/triggers/SyncMBDailyReport.trigger
force-app/main/default/triggers/SyncMBDailyReport.trigger-meta.xml
force-app/main/default/triggers/SyncMBEvent.trigger
force-app/main/default/triggers/SyncMBEvent.trigger-meta.xml
force-app/main/default/triggers/SyncMBMaintenanceContract.trigger
force-app/main/default/triggers/SyncMBMaintenanceContract.trigger-meta.xml
force-app/main/default/triggers/SyncMBOpportunity.trigger
force-app/main/default/triggers/SyncMBOpportunity.trigger-meta.xml
force-app/main/default/triggers/SyncMBOpportunityLineItem.trigger
force-app/main/default/triggers/SyncMBOpportunityLineItem.trigger-meta.xml
force-app/main/default/triggers/SyncMBRepair.trigger
force-app/main/default/triggers/SyncMBRepair.trigger-meta.xml
force-app/main/default/triggers/SyncMBReport.trigger
force-app/main/default/triggers/SyncMBReport.trigger-meta.xml
force-app/main/default/triggers/SyncMBStatuAchievements.trigger
force-app/main/default/triggers/SyncMBStatuAchievements.trigger-meta.xml
force-app/main/default/triggers/SyncOpportunity.trigger
force-app/main/default/triggers/SyncOpportunity.trigger-meta.xml
force-app/main/default/triggers/SyncProduct2.trigger
force-app/main/default/triggers/SyncProduct2.trigger-meta.xml
force-app/main/default/triggers/SyncRepairFromMCAETrigger.trigger
force-app/main/default/triggers/SyncRepairFromMCAETrigger.trigger-meta.xml
force-app/main/default/triggers/TargetCustomerTrigger.trigger
force-app/main/default/triggers/TargetCustomerTrigger.trigger-meta.xml
force-app/main/default/triggers/TaskAfterDelete.trigger
force-app/main/default/triggers/TaskAfterDelete.trigger-meta.xml
force-app/main/default/triggers/TemporaryFileBoxUpdate.trigger
force-app/main/default/triggers/TemporaryFileBoxUpdate.trigger-meta.xml
force-app/main/default/triggers/TenderInformationTrigger.trigger
force-app/main/default/triggers/TenderInformationTrigger.trigger-meta.xml
force-app/main/default/triggers/TenderOpportunityLinkTrigger.trigger
force-app/main/default/triggers/TenderOpportunityLinkTrigger.trigger-meta.xml
force-app/main/default/triggers/TrainingTestResultTrigger.trigger
force-app/main/default/triggers/TrainingTestResultTrigger.trigger-meta.xml
force-app/main/default/triggers/TransferApplyDetailTrigger.trigger
force-app/main/default/triggers/TransferApplyDetailTrigger.trigger-meta.xml
force-app/main/default/triggers/TransferApplySummaryTrigger.trigger
force-app/main/default/triggers/TransferApplySummaryTrigger.trigger-meta.xml
force-app/main/default/triggers/TransferApplyTrigger.trigger
force-app/main/default/triggers/TransferApplyTrigger.trigger-meta.xml
force-app/main/default/triggers/UpdateContractAimAmount.trigger
force-app/main/default/triggers/UpdateContractAimAmount.trigger-meta.xml
force-app/main/default/triggers/UpdateOppLineItemAgencySubtotal.trigger
force-app/main/default/triggers/UpdateOppLineItemAgencySubtotal.trigger-meta.xml
force-app/main/default/triggers/UserBefore.trigger
force-app/main/default/triggers/UserBefore.trigger-meta.xml
force-app/main/default/triggers/UserRoleChangeToLeaveStaff.trigger
force-app/main/default/triggers/UserRoleChangeToLeaveStaff.trigger-meta.xml
force-app/main/default/triggers/UserToContact.trigger
force-app/main/default/triggers/UserToContact.trigger-meta.xml
force-app/main/default/triggers/VisitReportHpDeptUpd.trigger
force-app/main/default/triggers/VisitReportHpDeptUpd.trigger-meta.xml
force-app/main/default/triggers/XinEventC2Event.trigger
force-app/main/default/triggers/XinEventC2Event.trigger-meta.xml
force-app/main/default/triggers/XinEventContactPileUp.trigger
force-app/main/default/triggers/XinEventContactPileUp.trigger-meta.xml
force-app/main/default/triggers/XinEventOppotunityPileUp.trigger
force-app/main/default/triggers/XinEventOppotunityPileUp.trigger-meta.xml
force-app/main/default/triggers/XinEventServicePileUp.trigger
force-app/main/default/triggers/XinEventServicePileUp.trigger-meta.xml
force-app/main/default/triggers/eSignForm.trigger
force-app/main/default/triggers/eSignForm.trigger-meta.xml
force-app/main/default/triggers/taskObjectTrigger.trigger
force-app/main/default/triggers/taskObjectTrigger.trigger-meta.xml
jest.config.js
manifest/package.xml
package.json
scripts/apex/hello.apex
scripts/soql/account.soql
sfdx-project.json
src/aura/AgencyPerson/AgencyPerson.cmp (deleted)
src/classes/ArriveGsDetailsControllerTest.cls (deleted)
src/classes/AssetMaintainManualBatchTest.cls (deleted)
src/classes/AssetUpdateLastContractScheduleTest.cls (deleted)
src/classes/ConsumInventoryDetailHandlerTest.cls (deleted)
src/classes/ConsumInventoryRepDtlArcRaesdBatchTest.cls (deleted)
src/classes/ConsumInventoryReportDetailArcBatchTest.cls (deleted)
src/classes/ConsumInventoryReportDetailArchiveBatch.cls (deleted)
src/classes/ConsumInventoryReportDtlArcRaesdBatch.cls (deleted)
src/classes/Consum_ApplyUtilTest.cls (deleted)
src/classes/ConsumptionListController.cls (deleted)
src/classes/ConsumptionListControllerTest.cls (deleted)
src/classes/ConsumptionPDFController.cls (deleted)
src/classes/EquipmentSetShippmentReceived1Controller.cls (deleted)
src/classes/EquipmentSetShippmentReceived6Controller.cls (deleted)
src/classes/FixtureOneToOneLinkHandler.cls (deleted)
src/classes/FixtureSetDetailDailyUpdateSchedule.cls (deleted)
src/classes/InventoryDetailHandler.cls (deleted)
src/classes/InventoryDetailHandlerTest.cls (deleted)
src/classes/InventoryListController.cls (deleted)
src/classes/InventoryListControllerTest.cls (deleted)
src/classes/LogAutoSendSchedule.cls (deleted)
src/classes/LogAutoSendScheduleTest.cls (deleted)
src/classes/MeetingDelayApplyTriggerTest.cls (deleted)
src/classes/NFM002WebService.cls (deleted)
src/classes/NFM002WebServiceTest.cls (deleted)
src/classes/NFM004WebService.cls (deleted)
src/classes/NFM004WebServiceTest.cls (deleted)
src/classes/NFM006WebService.cls (deleted)
src/classes/NFM006WebServiceTest.cls (deleted)
src/classes/NFM012WebService.cls (deleted)
src/classes/NFM012WebServiceTest.cls (deleted)
src/classes/NFM104WebServiceTest.cls (deleted)
src/classes/NFM107WebService.cls (deleted)
src/classes/NFM107WebServiceTest.cls (deleted)
src/classes/NFM108WebService.cls (deleted)
src/classes/NFM108WebServiceTest.cls (deleted)
src/classes/NewQuoteEntrytheBatch.cls (deleted)
src/classes/ProductLimitEditController.cls (deleted)
src/classes/ProductLimitEditControllerTest.cls (deleted)
src/classes/RentalAgencyReceivedController.cls (deleted)
src/classes/RentalApplyDailyBatchTest.cls (deleted)
src/classes/RentalApplyDailySchedule.cls (deleted)
src/classes/RentalApplyDailyScheduleTest.cls (deleted)
src/classes/RentalQueueShippmentDate0BatchTest.cls (deleted)
src/classes/SaleAndDeliveryController.cls (deleted)
src/classes/SaleAndDeliveryControllerTest.cls (deleted)
src/classes/SetupCheck_DescribeController.cls (deleted)
src/classes/SetupCheck_PicklistValuesGetController.cls (deleted)
src/classes/ShipmentController.cls (deleted)
src/classes/ShipmentControllerTest.cls (deleted)
src/classes/UpAccountProLimit.cls (deleted)
src/classes/Xin_SearchVisitorPlace_Campaign.cls (deleted)
src/classes/summonsPDFController.cls (deleted)
src/classes/summonsPDFControllerTest.cls (deleted)
src/objects/ASEActivity__c.object (deleted)
src/objects/Account.object (deleted)
src/objects/Account2__c.object (deleted)
src/objects/Account_Number_of_case__c.object (deleted)
src/objects/Account_Number_of_target__c.object (deleted)
src/objects/Activity.object (deleted)
src/objects/Activity_History_Daily_Report__c.object (deleted)
src/objects/Address_Level__c.object (deleted)
src/objects/Advance_Payment__c.object (deleted)
src/objects/Agency_Contact__c.object (deleted)
src/objects/Agency_Hospital_Link__c.object (deleted)
src/objects/Agency_Opportunity__c.object (deleted)
src/objects/AssessmentReport__c.object (deleted)
src/objects/Asset.object (deleted)
src/objects/AssetHistory__c.object (deleted)
src/objects/AssetMaintainHeader__c.object (deleted)
src/objects/AssetModifyBelongsChange__c.object (deleted)
src/objects/Asset_EquipmentSet_Managment_Code__c.object (deleted)
src/objects/BI_OpportunityLineItem__c.object (deleted)
src/objects/BackOrderOpen__c.object (deleted)
src/objects/BackOrder__c.object (deleted)
src/objects/Bid_Announcement__c.object (deleted)
src/objects/Campaign.object (deleted)
src/objects/CancelPostponePlan__c.object (deleted)
src/objects/Case.object (deleted)
src/objects/Consum_Apply_Equipment_Set_Detail__c.object (deleted)
src/objects/Consum_Apply_Equipment_Set__c.object (deleted)
src/objects/Consum_Apply__c.object (deleted)
src/objects/ConsumableSampleLineItem__c.object (deleted)
src/objects/Consumable_order__c.object (deleted)
src/objects/Consumable_order_details2__c.object (deleted)
src/objects/Contact.object (deleted)
src/objects/Daily_Report__c.object (deleted)
src/objects/Equipment_Set_Detail__c.object (deleted)
src/objects/Equipment_Set__c.object (deleted)
src/objects/Event.object (deleted)
src/objects/Event_Oppotunity__c.object (deleted)
src/objects/Event_Service__c.object (deleted)
src/objects/Event__c.object (deleted)
src/objects/Fixture_Set_Detail__c.object (deleted)
src/objects/IS_Opportunity_Demand__c.object (deleted)
src/objects/Inquiry_form__c.object (deleted)
src/objects/Inspection_Item__c.object (deleted)
src/objects/Inspection_Report__c.object (deleted)
src/objects/Inspectup_Plan__c.object (deleted)
src/objects/InstructStatusMonthly__c.object (deleted)
src/objects/Inventory_Header__c.object (deleted)
src/objects/JF_scope_Training__c.object (deleted)
src/objects/Lead.object (deleted)
src/objects/LostReport__c.object (deleted)
src/objects/Lost_cancel_report__c.object (deleted)
src/objects/MB_Account__c.object (deleted)
src/objects/MB_Asset__c.object (deleted)
src/objects/MB_Daily_Report__c.object (deleted)
src/objects/MB_Event__c.object (deleted)
src/objects/MB_OpportunityLineItem__c.object (deleted)
src/objects/MB_Opportunity__c.object (deleted)
src/objects/MB_Report__c.object (deleted)
src/objects/MB_Statu_Achievements__c.object (deleted)
src/objects/MB_TargetLineItem__c.object (deleted)
src/objects/MB_Target__c.object (deleted)
src/objects/Maintenance_Contract_Asset__c.object (deleted)
src/objects/Maintenance_Contract_Estimate__c.object (deleted)
src/objects/Maintenance_Contract__c.object (deleted)
src/objects/Maintenance_Task__c.object (deleted)
src/objects/Medical_expense_Request__c.object (deleted)
src/objects/MeetingManagement__c.object (deleted)
src/objects/Monthly_Report__c.object (deleted)
src/objects/NewMaintenanceReport_Task__c.object (deleted)
src/objects/OCM_Management_Province__c.object (deleted)
src/objects/OFSHospitalLayout__c.object (deleted)
src/objects/OPDPlan__c.object (deleted)
src/objects/On_Call__c.object (deleted)
src/objects/On_Line_Survey__c.object (deleted)
src/objects/Opponent_Bid_Information__c.object (deleted)
src/objects/Opportunity.object (deleted)
src/objects/Opportunity2__c.object (deleted)
src/objects/OpportunityFileOrder__c.object (deleted)
src/objects/OpportunityLineItem.object (deleted)
src/objects/OpportunitySpecialApply__c.object (deleted)
src/objects/Opportunity_File__c.object (deleted)
src/objects/OrderOpen__c.object (deleted)
src/objects/Order__c.object (deleted)
src/objects/Order_history__c.object (deleted)
src/objects/PAE_DecisionRecordDetail__c.object (deleted)
src/objects/PersonalEvaluation__c.object (deleted)
src/objects/PowerBISyncDefine__c.object (deleted)
src/objects/Product2.object (deleted)
src/objects/Product2__c.object (deleted)
src/objects/Product_Documentation__c.object (deleted)
src/objects/Product_Register_Link__c.object (deleted)
src/objects/Product_Register__c.object (deleted)
src/objects/Product_Score_Table_History__c.object (deleted)
src/objects/Product_Set_Detail__c.object (deleted)
src/objects/Product_Set__c.object (deleted)
src/objects/PromotionSalesProducts__c.object (deleted)
src/objects/QIS_M_BC__c.object (deleted)
src/objects/QIS_Report__c.object (deleted)
src/objects/QIS_SC_Report__c.object (deleted)
src/objects/Quote.object (deleted)
src/objects/QuoteIrai__c.object (deleted)
src/objects/QuoteLineItem.object (deleted)
src/objects/ReceivingNoteDetail__c.object (deleted)
src/objects/ReceivingNote__c.object (deleted)
src/objects/Rental_Apply_Equipment_Set_Detail__c.object (deleted)
src/objects/Rental_Apply_Equipment_Set__c.object (deleted)
src/objects/Rental_Apply__c.object (deleted)
src/objects/RepairAgainAn__c.object (deleted)
src/objects/Repair_Quotation__c.object (deleted)
src/objects/Repair__c.object (deleted)
src/objects/Repair_receipt__c.object (deleted)
src/objects/Report__c.object (deleted)
src/objects/Request_tedner_doc__c.object (deleted)
src/objects/SFDA__c.object (deleted)
src/objects/SI_Attachment__c.object (deleted)
src/objects/SLAReportInfo__c.object (deleted)
src/objects/SMARM__c.object (deleted)
src/objects/SSConsumable_order_details2__c.object (deleted)
src/objects/SS_BO_shipment_accurancy__c.object (deleted)
src/objects/SS_Dinghuo_accurancy__c.object (deleted)
src/objects/SS_LTV_Dept_monthly__c.object (deleted)
src/objects/SS_LTV_HP_monthly__c.object (deleted)
src/objects/SS_Prospect_5days_list__c.object (deleted)
src/objects/SS_Prospect_detail_product__c.object (deleted)
src/objects/SS_backorder_list__c.object (deleted)
src/objects/SS_monthly_submit_daily_report__c.object (deleted)
src/objects/SS_shipment_acurancy__c.object (deleted)
src/objects/SS_user_visit_covager__c.object (deleted)
src/objects/Sample_stock_log_sheet__c.object (deleted)
src/objects/Ship_History__c.object (deleted)
src/objects/Ship_History_open__c.object (deleted)
src/objects/Ship_Open__c.object (deleted)
src/objects/Ship__c.object (deleted)
src/objects/Solution.object (deleted)
src/objects/SolutionProjectRequirements__c.object (deleted)
src/objects/Solution_Programme__c.object (deleted)
src/objects/Statu_Achievements_DN__c.object (deleted)
src/objects/Statu_Achievements_Journal__c.object (deleted)
src/objects/Statu_Achievements__c.object (deleted)
src/objects/SubAuthorized__c.object (deleted)
src/objects/Task.object (deleted)
src/objects/TemporaryFileBox__c.object (deleted)
src/objects/Tender_information__c.object (deleted)
src/objects/ThreeMonthlyContact__c.object (deleted)
src/objects/Training_test_Result__c.object (deleted)
src/objects/TransferApplyDetail__c.object (deleted)
src/objects/TransferApplySummary__c.object (deleted)
src/objects/TransferApply__c.object (deleted)
src/objects/User.object (deleted)
src/objects/Visit_Report__c.object (deleted)
src/objects/eSignFormEntry__c.object (deleted)
src/objects/eSignForm__c.object (deleted)
src/objects/meeting_delay_apply__c.object (deleted)
src/objects/solutionClosingAttachment__c.object (deleted)
src/objects/task__c.object (deleted)
src/pages/ConsumInventoryReportDetail.page (deleted)
src/pages/ConsumableAllArrDet.page (deleted)
src/pages/ConsumableAllNotArrDet.page (deleted)
src/pages/ConsumableAllOtherDet.page (deleted)
src/pages/EventComment.page (deleted)
src/pages/FixtureRentalPicturePDF.page (deleted)
src/pages/Inventory.page (deleted)
src/pages/InventoryList.page (deleted)
src/pages/ProductLimitEdit.page (deleted)
src/pages/SaleAndDelivery.page (deleted)
src/pages/SetupCheck.page (deleted)
src/pages/SetupCheck_BlankPage.page (deleted)
src/pages/SetupCheck_PicklistValuesGet.page (deleted)
src/pages/Xin_SearchVisitorPlace.page (deleted)
src/pages/YouCantDeleteQuote.page (deleted)
src/pages/summonsPDF.page (deleted)
src/staticresources/AssetPCLJS.resource (deleted)
src/staticresources/BeforeOPDPDF.resource (deleted)
src/staticresources/BmeWorkJs.resource (deleted)
src/staticresources/CommonUtilJs.resource (deleted)
src/staticresources/Dealer_enquiryJs.resource (deleted)
src/staticresources/Dealer_enquiryJs1.resource (deleted)
src/staticresources/EquipmentSetShippmentReceivedcss.resource (deleted)
src/staticresources/EventCommentJs.resource (deleted)
src/staticresources/NewQuoteEntryJS.resource (deleted)
src/staticresources/NewQuoteIraiJS.resource (deleted)
src/staticresources/OFSCalendarCss.resource (deleted)
src/staticresources/OFSCalendarJs.resource (deleted)
src/staticresources/OFSHospitalLayoutCss.resource (deleted)
src/staticresources/OpportunityPCLJs.resource (deleted)
src/staticresources/PersonalEvaluationJs2.resource (deleted)
src/staticresources/PersonalEvaluationTabJs.resource (deleted)
src/staticresources/PleaseWaitDialog.resource (deleted)
src/staticresources/ReceivingNotePageJS.resource (deleted)
src/staticresources/RelationListPagingCmpJS.resource (deleted)
src/staticresources/TextareaToTable.resource (deleted)
src/staticresources/XinDailyReportTuning2Js.resource (deleted)
src/staticresources/apex20.resource (deleted)
src/staticresources/blockUIcss.resource (deleted)
src/staticresources/blockUIcssOpp.resource (deleted)
src/staticresources/connection20.resource (deleted)
src/staticresources/contractdetailpdf.resource (deleted)
src/staticresources/jquery183minjs.resource (deleted)
src/staticresources/jqueryTableFix.resource (deleted)
src/staticresources/multilineToastCSS.resource (deleted)
src/staticresources/quotepdf.resource (deleted)
src/staticresources/summonsCreatJs.resource (deleted)
src/triggers/AssetTrigger.trigger (deleted)
src/triggers/XinEventServicePileUp.trigger (deleted) |