Merge branch 'LEXCommunityLiJun' into LEXUpgrade2023-Deloitte
275个文件已修改
10个文件已删除
476个文件已添加
| | |
| | | # Local environment variables |
| | | .env |
| | | .vim-force.com/session.properties |
| | | .sf/config.json |
| New file |
| | |
| | | ref: refs/heads/main |
| New file |
| | |
| | | [core] |
| | | repositoryformatversion = 0 |
| | | filemode = false |
| | | bare = false |
| | | logallrefupdates = true |
| | | symlinks = false |
| | | ignorecase = true |
| New file |
| | |
| | | ref: refs/heads/main |
| New file |
| | |
| | | [core] |
| | | repositoryformatversion = 0 |
| | | filemode = false |
| | | bare = false |
| | | logallrefupdates = true |
| | | symlinks = false |
| | | ignorecase = true |
| New file |
| | |
| | | ref: refs/heads/main |
| New file |
| | |
| | | [core] |
| | | repositoryformatversion = 0 |
| | | filemode = false |
| | | bare = false |
| | | logallrefupdates = true |
| | | symlinks = false |
| | | ignorecase = true |
| | |
| | | "**/.sfdx": true |
| | | }, |
| | | "salesforcedx-vscode-core.show-cli-success-msg": false, |
| | | "open-in-browser.default": "{\"opn-in-browser.default\":\"Microsoft Edge\"}", |
| | | "salesforcedx-vscode-apex.java.home": "C:\\Users\\buli\\Documents\\Software\\JDK\\jdk19\\bin" |
| | | "salesforcedx-vscode-apex.java.home": "C:\\Users\\buli\\Documents\\Software\\JDK11\\", |
| | | "open-in-browser.default": "{\"opn-in-browser.default\":\"Microsoft Edge\"}" |
| | | } |
| | |
| | | <aura:component controller="CreateTargetCmp" implements="forceCommunity:availableForAllPageTypes,force:hasRecordId" access="global" > |
| | | <aura:handler name="init" value="{!this}" action="{!c.doInit}"/> |
| | | <aura:attribute name="recordId" type="Id" /> |
| | | <aura:attribute name="hospital" type="string" default=""/> |
| | | <aura:attribute name="test" type="string" default="1"/> |
| | | <aura:handler event="force:refreshView" action="{!c.isRefreshed}" /> |
| | | <aura:attribute name="hospitalId" type="string" default=""/> |
| | | <aura:attribute name="GIAmount" type="string" default="0.00"/> |
| | | <aura:attribute name="BFAmount" type="string" default="0.00"/> |
| | | <aura:attribute name="ETAmount" type="string" default="0.00"/> |
| | | <aura:attribute name="GSAmount" type="string" default="0.00"/> |
| | | <aura:attribute name="UROAmount" type="string" default="0.00"/> |
| | | <aura:attribute name="GYNAmount" type="string" default="0.00"/> |
| | | <aura:attribute name="ENTAmount" type="string" default="0.00"/> |
| | | <aura:attribute name="OTHAmount" type="string" default="0.00"/> |
| | | <aura:attribute name="OCMTerm" type="string" default=""/> |
| | | <aura:attribute name="button_text" type="string" default="新建"/> |
| | | <aura:handler name="change" value="{!v.record.Agency_Hospital__c}" action="{!c.hosChange}"/> |
| | | <aura:attribute name="hospitalList" type="sobject[]" /> |
| | | <aura:attribute name="record" type="Agency_Opportunity__c" default="{'sobjectType':'Agency_Opportunity__c'}"/> |
| | | <aura:handler name="change" value="{!v.recordET.Product_Category1__c}" action="{!c.productcategoryETChange1}"/> |
| | | <aura:handler name="change" value="{!v.recordET.Product_Category2__c}" action="{!c.productcategoryETChange2}"/> |
| | | <aura:handler name="change" value="{!v.recordET.Product_Category3__c}" action="{!c.productcategoryETChange3}"/> |
| | | |
| | | <aura:component |
| | | controller="CreateTargetCmp" |
| | | implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,force:lightningQuickAction,forceCommunity:availableForAllPageTypes" |
| | | access="global" |
| | | > |
| | | <aura:handler name="init" value="{!this}" action="{!c.doInit}" /> |
| | | <aura:attribute name="recordId" type="Id" /> |
| | | <aura:attribute name="hospital" type="string" default="" /> |
| | | <aura:attribute name="test" type="string" default="1" /> |
| | | <aura:handler event="force:refreshView" action="{!c.isRefreshed}" /> |
| | | <aura:attribute name="hospitalId" type="string" default="" /> |
| | | <aura:attribute name="GIAmount" type="string" default="0.00" /> |
| | | <aura:attribute name="BFAmount" type="string" default="0.00" /> |
| | | <aura:attribute name="ETAmount" type="string" default="0.00" /> |
| | | <aura:attribute name="GSAmount" type="string" default="0.00" /> |
| | | <aura:attribute name="UROAmount" type="string" default="0.00" /> |
| | | <aura:attribute name="GYNAmount" type="string" default="0.00" /> |
| | | <aura:attribute name="ENTAmount" type="string" default="0.00" /> |
| | | <aura:attribute name="OTHAmount" type="string" default="0.00" /> |
| | | <aura:attribute name="OCMTerm" type="string" default="" /> |
| | | <aura:attribute name="button_text" type="string" default="新建" /> |
| | | <aura:handler |
| | | name="change" |
| | | value="{!v.record.Agency_Hospital__c}" |
| | | action="{!c.hosChange}" |
| | | /> |
| | | <aura:attribute name="hospitalList" type="sobject[]" /> |
| | | <aura:attribute |
| | | name="record" |
| | | type="Agency_Opportunity__c" |
| | | default="{'sobjectType':'Agency_Opportunity__c'}" |
| | | /> |
| | | <aura:handler |
| | | name="change" |
| | | value="{!v.recordET.Product_Category1__c}" |
| | | action="{!c.productcategoryETChange1}" |
| | | /> |
| | | <aura:handler |
| | | name="change" |
| | | value="{!v.recordET.Product_Category2__c}" |
| | | action="{!c.productcategoryETChange2}" |
| | | /> |
| | | <aura:handler |
| | | name="change" |
| | | value="{!v.recordET.Product_Category3__c}" |
| | | action="{!c.productcategoryETChange3}" |
| | | /> |
| | | |
| | | <aura:handler name="change" value="{!v.recordBF.Product_Category1__c}" action="{!c.productcategoryBFChange1}"/> |
| | | <aura:handler name="change" value="{!v.recordBF.Product_Category2__c}" action="{!c.productcategoryBFChange2}"/> |
| | | <aura:handler name="change" value="{!v.recordBF.Product_Category3__c}" action="{!c.productcategoryBFChange3}"/> |
| | | <aura:handler name="change" value="{!v.recordGS.Product_Category1__c}" action="{!c.productcategoryGSChange1}"/> |
| | | <aura:handler name="change" value="{!v.recordGS.Product_Category2__c}" action="{!c.productcategoryGSChange2}"/> |
| | | <aura:handler name="change" value="{!v.recordGS.Product_Category3__c}" action="{!c.productcategoryGSChange3}"/> |
| | | <aura:handler name="change" value="{!v.recordURO.Product_Category1__c}" action="{!c.productcategoryUROChange1}"/> |
| | | <aura:handler name="change" value="{!v.recordURO.Product_Category2__c}" action="{!c.productcategoryUROChange2}"/> |
| | | <aura:handler name="change" value="{!v.recordURO.Product_Category3__c}" action="{!c.productcategoryUROChange3}"/> |
| | | <aura:handler name="change" value="{!v.recordGYN.Product_Category1__c}" action="{!c.productcategoryGYNChange1}"/> |
| | | <aura:handler name="change" value="{!v.recordGYN.Product_Category2__c}" action="{!c.productcategoryGYNChange2}"/> |
| | | <aura:handler name="change" value="{!v.recordGYN.Product_Category3__c}" action="{!c.productcategoryGYNChange3}"/> |
| | | <aura:handler name="change" value="{!v.recordENT.Product_Category1__c}" action="{!c.productcategoryENTChange1}"/> |
| | | <aura:handler name="change" value="{!v.recordENT.Product_Category2__c}" action="{!c.productcategoryENTChange2}"/> |
| | | <aura:handler name="change" value="{!v.recordENT.Product_Category3__c}" action="{!c.productcategoryENTChange3}"/> |
| | | <aura:handler name="change" value="{!v.recordOTH.Product_Category1__c}" action="{!c.productcategoryOTHChange1}"/> |
| | | <aura:handler name="change" value="{!v.recordOTH.Product_Category2__c}" action="{!c.productcategoryOTHChange2}"/> |
| | | <aura:handler name="change" value="{!v.recordOTH.Product_Category3__c}" action="{!c.productcategoryOTHChange3}"/> |
| | | <div class="button_area"> |
| | | <ui:button label="{!v.button_text}" press="{!c.toggle_report}"/> |
| | | <aura:handler |
| | | name="change" |
| | | value="{!v.recordBF.Product_Category1__c}" |
| | | action="{!c.productcategoryBFChange1}" |
| | | /> |
| | | <aura:handler |
| | | name="change" |
| | | value="{!v.recordBF.Product_Category2__c}" |
| | | action="{!c.productcategoryBFChange2}" |
| | | /> |
| | | <aura:handler |
| | | name="change" |
| | | value="{!v.recordBF.Product_Category3__c}" |
| | | action="{!c.productcategoryBFChange3}" |
| | | /> |
| | | <aura:handler |
| | | name="change" |
| | | value="{!v.recordGS.Product_Category1__c}" |
| | | action="{!c.productcategoryGSChange1}" |
| | | /> |
| | | <aura:handler |
| | | name="change" |
| | | value="{!v.recordGS.Product_Category2__c}" |
| | | action="{!c.productcategoryGSChange2}" |
| | | /> |
| | | <aura:handler |
| | | name="change" |
| | | value="{!v.recordGS.Product_Category3__c}" |
| | | action="{!c.productcategoryGSChange3}" |
| | | /> |
| | | <aura:handler |
| | | name="change" |
| | | value="{!v.recordURO.Product_Category1__c}" |
| | | action="{!c.productcategoryUROChange1}" |
| | | /> |
| | | <aura:handler |
| | | name="change" |
| | | value="{!v.recordURO.Product_Category2__c}" |
| | | action="{!c.productcategoryUROChange2}" |
| | | /> |
| | | <aura:handler |
| | | name="change" |
| | | value="{!v.recordURO.Product_Category3__c}" |
| | | action="{!c.productcategoryUROChange3}" |
| | | /> |
| | | <aura:handler |
| | | name="change" |
| | | value="{!v.recordGYN.Product_Category1__c}" |
| | | action="{!c.productcategoryGYNChange1}" |
| | | /> |
| | | <aura:handler |
| | | name="change" |
| | | value="{!v.recordGYN.Product_Category2__c}" |
| | | action="{!c.productcategoryGYNChange2}" |
| | | /> |
| | | <aura:handler |
| | | name="change" |
| | | value="{!v.recordGYN.Product_Category3__c}" |
| | | action="{!c.productcategoryGYNChange3}" |
| | | /> |
| | | <aura:handler |
| | | name="change" |
| | | value="{!v.recordENT.Product_Category1__c}" |
| | | action="{!c.productcategoryENTChange1}" |
| | | /> |
| | | <aura:handler |
| | | name="change" |
| | | value="{!v.recordENT.Product_Category2__c}" |
| | | action="{!c.productcategoryENTChange2}" |
| | | /> |
| | | <aura:handler |
| | | name="change" |
| | | value="{!v.recordENT.Product_Category3__c}" |
| | | action="{!c.productcategoryENTChange3}" |
| | | /> |
| | | <aura:handler |
| | | name="change" |
| | | value="{!v.recordOTH.Product_Category1__c}" |
| | | action="{!c.productcategoryOTHChange1}" |
| | | /> |
| | | <aura:handler |
| | | name="change" |
| | | value="{!v.recordOTH.Product_Category2__c}" |
| | | action="{!c.productcategoryOTHChange2}" |
| | | /> |
| | | <aura:handler |
| | | name="change" |
| | | value="{!v.recordOTH.Product_Category3__c}" |
| | | action="{!c.productcategoryOTHChange3}" |
| | | /> |
| | | <div class="button_area"> |
| | | <ui:button label="{!v.button_text}" press="{!c.toggle_report}" /> |
| | | </div> |
| | | <div aura:id="modal_window" role="dialog" tabindex="-1" class="disp_none slds-modal slds-fade-in-open slds-modal--large" aria-labelledby="headerTarget"> |
| | | <div class="slds-modal__container"> |
| | | <div class="slds-modal__header"> |
| | | <button class="slds-button slds-modal__close slds-button--icon-inverse" title="Close" onclick="{!c.toggle_report}"> |
| | | <lightning:icon class="close_icn" iconName="utility:close" size="medium" alternativeText="Indicates approval"/> |
| | | <span class="slds-assistive-text">Close</span> |
| | | </button> |
| | | <h2 id="headerTarget" class="slds-text-heading--medium">目标({!v.OCMTerm})</h2> |
| | | </div> |
| | | <div class="slds-modal__content slds-grow slds-p-around--medium"> |
| | | <div class="slds-box slds-theme--shade "> |
| | | <fieldset class="slds-form--compound"> |
| | | <div class="slds-form-element__group"> |
| | | <div class="slds-form-element__row"> |
| | | <div class="slds-form-element slds-size--1-of-2"> |
| | | <label class="slds-form-element__label" for="input-hos">医院</label> |
| | | <force:inputField value="{!v.record.Agency_Hospital__c}" aura:id="input-hos"/> |
| | | </div> |
| | | </div> |
| | | <!-- <h4 class="slds-section__title">访问目标</h4> |
| | | <div |
| | | aura:id="modal_window" |
| | | role="dialog" |
| | | tabindex="-1" |
| | | class="disp_none slds-modal slds-fade-in-open slds-modal--large" |
| | | aria-labelledby="headerTarget" |
| | | > |
| | | <div class="slds-modal__container"> |
| | | <div class="slds-modal__header"> |
| | | <button |
| | | class="slds-button slds-modal__close slds-button--icon-inverse" |
| | | title="Close" |
| | | onclick="{!c.toggle_report}" |
| | | > |
| | | <lightning:icon |
| | | iconName="utility:close" |
| | | size="medium" |
| | | alternative-text="close" |
| | | variant="inverse" |
| | | /> |
| | | <span class="slds-assistive-text">Close</span> |
| | | </button> |
| | | <h2 id="headerTarget" class="slds-text-heading--medium"> |
| | | 目标({!v.OCMTerm}) |
| | | </h2> |
| | | </div> |
| | | <div class="slds-modal__content slds-grow slds-p-around--medium"> |
| | | <div class="slds-box slds-theme--shade"> |
| | | <fieldset class="slds-form--compound"> |
| | | <div class="slds-form-element__group"> |
| | | <div class="slds-form-element__row"> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-2" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >医院</label |
| | | > |
| | | <!-- <force:inputField value="{!v.record.Agency_Hospital__c}" aura:id="input-hos"/> --> |
| | | <lightning:recordEditForm |
| | | objectApiName="Agency_Opportunity__c" |
| | | > |
| | | <lightning:inputField |
| | | variant="label-hidden" |
| | | fieldName="Agency_Hospital__c" |
| | | value="{!v.record.Agency_Hospital__c}" |
| | | aura:id="input-hos" |
| | | /> |
| | | </lightning:recordEditForm> |
| | | </div> |
| | | </div> |
| | | <!-- <h4 class="slds-section__title">访问目标</h4> |
| | | <div class="slds-form-element__row"> |
| | | <div class="slds-form-element slds-size-1-of-2"> |
| | | <label class="slds-form-element__label" for="input-target">目标医院</label> |
| | | <force:inputField value="{!v.record2.TargetHospital__c}" aura:id="input-target"/> |
| | | </div> |
| | | </div> --> |
| | | <h4 class="slds-section__title">产品目标</h4> |
| | | <div class="slds-form-element__row"> |
| | | <div class="slds-size--1-of-7 slds-grid--align-center"> |
| | | <div style="margin-top: 32px;">消化科</div> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">产品区分1</label> |
| | | <ui:inputSelect aura:id="select_GI1" class="slds-select" change="{!c.productcategoryGIChange1}"/> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">金额目标(不含税)</label> |
| | | <ui:inputText aura:id="select_GI4_1" class="slds-select"/> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">产品区分2</label> |
| | | <ui:inputSelect aura:id="select_GI2" class="slds-select" change="{!c.productcategoryGIChange2}"/> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">金额目标(不含税)</label> |
| | | <ui:inputText aura:id="select_GI4_2" class="slds-select" /> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">产品区分3</label> |
| | | <ui:inputSelect aura:id="select_GI3" class="slds-select" change="{!c.productcategoryGIChange3}"/> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">金额目标(不含税)</label> |
| | | <ui:inputText aura:id="select_GI4_3" class="slds-select"/> |
| | | </div> |
| | | </div> |
| | | <div class="slds-form-element__row"> |
| | | <div class="slds-size--1-of-7 slds-grid--align-center"> |
| | | <div style="margin-top: 32px;">ET耗材</div> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">产品区分1</label> |
| | | <ui:inputSelect aura:id="select_ET1" class="slds-select" change="{!c.productcategoryETChange1}"/> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">金额目标(不含税)</label> |
| | | <ui:inputText aura:id="select_ET4_1" class="slds-select"/> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">产品区分2</label> |
| | | <ui:inputSelect aura:id="select_ET2" class="slds-select" change="{!c.productcategoryETChange2}"/> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">金额目标(不含税)</label> |
| | | <ui:inputText aura:id="select_ET4_2" class="slds-select"/> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">产品区分3</label> |
| | | <ui:inputSelect aura:id="select_ET3" class="slds-select" change="{!c.productcategoryETChange3}"/> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">金额目标(不含税)</label> |
| | | <ui:inputText aura:id="select_ET4_3" class="slds-select" /> |
| | | </div> |
| | | </div> |
| | | <div class="slds-form-element__row"> |
| | | <div class="slds-size--1-of-7 slds-grid--align-center"> |
| | | <div style="margin-top: 32px;">呼吸科</div> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">产品区分1</label> |
| | | <ui:inputSelect aura:id="select_BF1" class="slds-select" change="{!c.productcategoryBFChange1}"/> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">金额目标(不含税)</label> |
| | | <ui:inputText aura:id="select_BF4_1" class="slds-select" /> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">产品区分2</label> |
| | | <ui:inputSelect aura:id="select_BF2" class="slds-select" change="{!c.productcategoryBFChange2}"/> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">金额目标(不含税)</label> |
| | | <ui:inputText aura:id="select_BF4_2" class="slds-select" /> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">产品区分3</label> |
| | | <ui:inputSelect aura:id="select_BF3" class="slds-select" change="{!c.productcategoryBFChange3}"/> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">金额目标(不含税)</label> |
| | | <ui:inputText aura:id="select_BF4_3" class="slds-select" /> |
| | | </div> |
| | | </div> |
| | | <div class="slds-form-element__row"> |
| | | <div class="slds-size--1-of-7 slds-grid--align-center"> |
| | | <div style="margin-top: 32px;">普外科</div> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">产品区分1</label> |
| | | <ui:inputSelect aura:id="select_GS1" class="slds-select" change="{!c.productcategoryGSChange1}"/> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">金额目标(不含税)</label> |
| | | <ui:inputText aura:id="select_GS4_1" class="slds-select" /> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">产品区分2</label> |
| | | <ui:inputSelect aura:id="select_GS2" class="slds-select" change="{!c.productcategoryGSChange2}"/> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">金额目标(不含税)</label> |
| | | <ui:inputText aura:id="select_GS4_2" class="slds-select" /> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">产品区分3</label> |
| | | <ui:inputSelect aura:id="select_GS3" class="slds-select" change="{!c.productcategoryGSChange3}"/> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">金额目标(不含税)</label> |
| | | <ui:inputText aura:id="select_GS4_3" class="slds-select" /> |
| | | </div> |
| | | </div> |
| | | <div class="slds-form-element__row"> |
| | | <div class="slds-size--1-of-7 slds-grid--align-center"> |
| | | <div style="margin-top: 32px;">泌尿科</div> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">产品区分1</label> |
| | | <ui:inputSelect aura:id="select_URO1" class="slds-select" change="{!c.productcategoryUROChange1}"/> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">金额目标(不含税)</label> |
| | | <ui:inputText aura:id="select_URO4_1" class="slds-select" /> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">产品区分2</label> |
| | | <ui:inputSelect aura:id="select_URO2" class="slds-select" change="{!c.productcategoryUROChange2}"/> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">金额目标(不含税)</label> |
| | | <ui:inputText aura:id="select_URO4_2" class="slds-select" /> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">产品区分3</label> |
| | | <ui:inputSelect aura:id="select_URO3" class="slds-select" change="{!c.productcategoryUROChange3}"/> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">金额目标(不含税)</label> |
| | | <ui:inputText aura:id="select_URO4_3" class="slds-select" /> |
| | | </div> |
| | | </div> |
| | | <div class="slds-form-element__row"> |
| | | <div class="slds-size--1-of-7 slds-grid--align-center"> |
| | | <div style="margin-top: 32px;">妇科</div> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">产品区分1</label> |
| | | <ui:inputSelect aura:id="select_GYN1" class="slds-select" change="{!c.productcategoryGYNChange1}"/> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">金额目标(不含税)</label> |
| | | <ui:inputText aura:id="select_GYN4_1" class="slds-select" /> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">产品区分2</label> |
| | | <ui:inputSelect aura:id="select_GYN2" class="slds-select" change="{!c.productcategoryGYNChange2}"/> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">金额目标(不含税)</label> |
| | | <ui:inputText aura:id="select_GYN4_2" class="slds-select" /> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">产品区分3</label> |
| | | <ui:inputSelect aura:id="select_GYN3" class="slds-select" change="{!c.productcategoryGYNChange3}"/> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">金额目标(不含税)</label> |
| | | <ui:inputText aura:id="select_GYN4_3" class="slds-select" /> |
| | | </div> |
| | | </div> |
| | | <div class="slds-form-element__row"> |
| | | <div class="slds-size--1-of-7 slds-grid--align-center"> |
| | | <div style="margin-top: 32px;">耳鼻喉科</div> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">产品区分1</label> |
| | | <ui:inputSelect aura:id="select_ENT1" class="slds-select" change="{!c.productcategoryENTChange1}"/> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">金额目标(不含税)</label> |
| | | <ui:inputText aura:id="select_ENT4_1" class="slds-select" /> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">产品区分2</label> |
| | | <ui:inputSelect aura:id="select_ENT2" class="slds-select" change="{!c.productcategoryENTChange2}"/> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">金额目标(不含税)</label> |
| | | <ui:inputText aura:id="select_ENT4_2" class="slds-select" /> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">产品区分3</label> |
| | | <ui:inputSelect aura:id="select_ENT3" class="slds-select" change="{!c.productcategoryENTChange3}"/> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">金额目标(不含税)</label> |
| | | <ui:inputText aura:id="select_ENT4_3" class="slds-select" /> |
| | | </div> |
| | | </div> |
| | | <div class="slds-form-element__row"> |
| | | <div class="slds-size--1-of-7 slds-grid--align-center"> |
| | | <div style="margin-top: 32px;">其他</div> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">产品区分1</label> |
| | | <ui:inputSelect aura:id="select_OTH1" class="slds-select" change="{!c.productcategoryOTHChange1}"/> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">金额目标(不含税)</label> |
| | | <ui:inputText aura:id="select_OTH4_1" class="slds-select" /> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">产品区分2</label> |
| | | <ui:inputSelect aura:id="select_OTH2" class="slds-select" change="{!c.productcategoryOTHChange2}"/> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">金额目标(不含税)</label> |
| | | <ui:inputText aura:id="select_OTH4_2" class="slds-select" /> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">产品区分3</label> |
| | | <ui:inputSelect aura:id="select_OTH3" class="slds-select" change="{!c.productcategoryOTHChange3}"/> |
| | | </div> |
| | | <div class="slds-form-element slds-size--1-of-7"> |
| | | <label class="slds-form-element__label" for="input-hos">金额目标(不含税)</label> |
| | | <ui:inputText aura:id="select_OTH4_3" class="slds-select" /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </fieldset> |
| | | </div> |
| | | </div> |
| | | <div class="slds-modal__footer slds-grid slds-grid--align-spread"> |
| | | <div class="slds-order--1" /> |
| | | <ui:button aura:id="save_button" label="保存" class="slds-button slds-button--brand slds-order--2" press="{!c.createTarget}"/> |
| | | <div class="slds-order--3" /> |
| | | </div> |
| | | </div> |
| | | <h4 class="slds-section__title">产品目标</h4> |
| | | <div class="slds-form-element__row"> |
| | | <div |
| | | class="slds-size--1-of-7 slds-grid--align-center" |
| | | > |
| | | <div style="margin-top: 32px">消化科</div> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >产品区分1</label |
| | | > |
| | | <ui:inputSelect |
| | | aura:id="select_GI1" |
| | | class="slds-select" |
| | | change="{!c.productcategoryGIChange1}" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >金额目标(不含税)</label |
| | | > |
| | | <ui:inputText |
| | | aura:id="select_GI4_1" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >产品区分2</label |
| | | > |
| | | <ui:inputSelect |
| | | aura:id="select_GI2" |
| | | class="slds-select" |
| | | change="{!c.productcategoryGIChange2}" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >金额目标(不含税)</label |
| | | > |
| | | <ui:inputText |
| | | aura:id="select_GI4_2" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >产品区分3</label |
| | | > |
| | | <ui:inputSelect |
| | | aura:id="select_GI3" |
| | | class="slds-select" |
| | | change="{!c.productcategoryGIChange3}" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >金额目标(不含税)</label |
| | | > |
| | | <ui:inputText |
| | | aura:id="select_GI4_3" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | </div> |
| | | <div class="slds-form-element__row"> |
| | | <div |
| | | class="slds-size--1-of-7 slds-grid--align-center" |
| | | > |
| | | <div style="margin-top: 32px">ET耗材</div> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >产品区分1</label |
| | | > |
| | | <ui:inputSelect |
| | | aura:id="select_ET1" |
| | | class="slds-select" |
| | | change="{!c.productcategoryETChange1}" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >金额目标(不含税)</label |
| | | > |
| | | <ui:inputText |
| | | aura:id="select_ET4_1" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >产品区分2</label |
| | | > |
| | | <ui:inputSelect |
| | | aura:id="select_ET2" |
| | | class="slds-select" |
| | | change="{!c.productcategoryETChange2}" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >金额目标(不含税)</label |
| | | > |
| | | <ui:inputText |
| | | aura:id="select_ET4_2" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >产品区分3</label |
| | | > |
| | | <ui:inputSelect |
| | | aura:id="select_ET3" |
| | | class="slds-select" |
| | | change="{!c.productcategoryETChange3}" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >金额目标(不含税)</label |
| | | > |
| | | <ui:inputText |
| | | aura:id="select_ET4_3" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | </div> |
| | | <div class="slds-form-element__row"> |
| | | <div |
| | | class="slds-size--1-of-7 slds-grid--align-center" |
| | | > |
| | | <div style="margin-top: 32px">呼吸科</div> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >产品区分1</label |
| | | > |
| | | <ui:inputSelect |
| | | aura:id="select_BF1" |
| | | class="slds-select" |
| | | change="{!c.productcategoryBFChange1}" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >金额目标(不含税)</label |
| | | > |
| | | <ui:inputText |
| | | aura:id="select_BF4_1" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >产品区分2</label |
| | | > |
| | | <ui:inputSelect |
| | | aura:id="select_BF2" |
| | | class="slds-select" |
| | | change="{!c.productcategoryBFChange2}" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >金额目标(不含税)</label |
| | | > |
| | | <ui:inputText |
| | | aura:id="select_BF4_2" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >产品区分3</label |
| | | > |
| | | <ui:inputSelect |
| | | aura:id="select_BF3" |
| | | class="slds-select" |
| | | change="{!c.productcategoryBFChange3}" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >金额目标(不含税)</label |
| | | > |
| | | <ui:inputText |
| | | aura:id="select_BF4_3" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | </div> |
| | | <div class="slds-form-element__row"> |
| | | <div |
| | | class="slds-size--1-of-7 slds-grid--align-center" |
| | | > |
| | | <div style="margin-top: 32px">普外科</div> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >产品区分1</label |
| | | > |
| | | <ui:inputSelect |
| | | aura:id="select_GS1" |
| | | class="slds-select" |
| | | change="{!c.productcategoryGSChange1}" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >金额目标(不含税)</label |
| | | > |
| | | <ui:inputText |
| | | aura:id="select_GS4_1" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >产品区分2</label |
| | | > |
| | | <ui:inputSelect |
| | | aura:id="select_GS2" |
| | | class="slds-select" |
| | | change="{!c.productcategoryGSChange2}" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >金额目标(不含税)</label |
| | | > |
| | | <ui:inputText |
| | | aura:id="select_GS4_2" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >产品区分3</label |
| | | > |
| | | <ui:inputSelect |
| | | aura:id="select_GS3" |
| | | class="slds-select" |
| | | change="{!c.productcategoryGSChange3}" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >金额目标(不含税)</label |
| | | > |
| | | <ui:inputText |
| | | aura:id="select_GS4_3" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | </div> |
| | | <div class="slds-form-element__row"> |
| | | <div |
| | | class="slds-size--1-of-7 slds-grid--align-center" |
| | | > |
| | | <div style="margin-top: 32px">泌尿科</div> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >产品区分1</label |
| | | > |
| | | <ui:inputSelect |
| | | aura:id="select_URO1" |
| | | class="slds-select" |
| | | change="{!c.productcategoryUROChange1}" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >金额目标(不含税)</label |
| | | > |
| | | <ui:inputText |
| | | aura:id="select_URO4_1" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >产品区分2</label |
| | | > |
| | | <ui:inputSelect |
| | | aura:id="select_URO2" |
| | | class="slds-select" |
| | | change="{!c.productcategoryUROChange2}" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >金额目标(不含税)</label |
| | | > |
| | | <ui:inputText |
| | | aura:id="select_URO4_2" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >产品区分3</label |
| | | > |
| | | <ui:inputSelect |
| | | aura:id="select_URO3" |
| | | class="slds-select" |
| | | change="{!c.productcategoryUROChange3}" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >金额目标(不含税)</label |
| | | > |
| | | <ui:inputText |
| | | aura:id="select_URO4_3" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | </div> |
| | | <div class="slds-form-element__row"> |
| | | <div |
| | | class="slds-size--1-of-7 slds-grid--align-center" |
| | | > |
| | | <div style="margin-top: 32px">妇科</div> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >产品区分1</label |
| | | > |
| | | <ui:inputSelect |
| | | aura:id="select_GYN1" |
| | | class="slds-select" |
| | | change="{!c.productcategoryGYNChange1}" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >金额目标(不含税)</label |
| | | > |
| | | <ui:inputText |
| | | aura:id="select_GYN4_1" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >产品区分2</label |
| | | > |
| | | <ui:inputSelect |
| | | aura:id="select_GYN2" |
| | | class="slds-select" |
| | | change="{!c.productcategoryGYNChange2}" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >金额目标(不含税)</label |
| | | > |
| | | <ui:inputText |
| | | aura:id="select_GYN4_2" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >产品区分3</label |
| | | > |
| | | <ui:inputSelect |
| | | aura:id="select_GYN3" |
| | | class="slds-select" |
| | | change="{!c.productcategoryGYNChange3}" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >金额目标(不含税)</label |
| | | > |
| | | <ui:inputText |
| | | aura:id="select_GYN4_3" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | </div> |
| | | <div class="slds-form-element__row"> |
| | | <div |
| | | class="slds-size--1-of-7 slds-grid--align-center" |
| | | > |
| | | <div style="margin-top: 32px">耳鼻喉科</div> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >产品区分1</label |
| | | > |
| | | <ui:inputSelect |
| | | aura:id="select_ENT1" |
| | | class="slds-select" |
| | | change="{!c.productcategoryENTChange1}" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >金额目标(不含税)</label |
| | | > |
| | | <ui:inputText |
| | | aura:id="select_ENT4_1" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >产品区分2</label |
| | | > |
| | | <ui:inputSelect |
| | | aura:id="select_ENT2" |
| | | class="slds-select" |
| | | change="{!c.productcategoryENTChange2}" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >金额目标(不含税)</label |
| | | > |
| | | <ui:inputText |
| | | aura:id="select_ENT4_2" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >产品区分3</label |
| | | > |
| | | <ui:inputSelect |
| | | aura:id="select_ENT3" |
| | | class="slds-select" |
| | | change="{!c.productcategoryENTChange3}" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >金额目标(不含税)</label |
| | | > |
| | | <ui:inputText |
| | | aura:id="select_ENT4_3" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | </div> |
| | | <div class="slds-form-element__row"> |
| | | <div |
| | | class="slds-size--1-of-7 slds-grid--align-center" |
| | | > |
| | | <div style="margin-top: 32px">其他</div> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >产品区分1</label |
| | | > |
| | | <ui:inputSelect |
| | | aura:id="select_OTH1" |
| | | class="slds-select" |
| | | change="{!c.productcategoryOTHChange1}" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >金额目标(不含税)</label |
| | | > |
| | | <ui:inputText |
| | | aura:id="select_OTH4_1" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >产品区分2</label |
| | | > |
| | | <ui:inputSelect |
| | | aura:id="select_OTH2" |
| | | class="slds-select" |
| | | change="{!c.productcategoryOTHChange2}" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >金额目标(不含税)</label |
| | | > |
| | | <ui:inputText |
| | | aura:id="select_OTH4_2" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >产品区分3</label |
| | | > |
| | | <ui:inputSelect |
| | | aura:id="select_OTH3" |
| | | class="slds-select" |
| | | change="{!c.productcategoryOTHChange3}" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-form-element slds-size--1-of-7" |
| | | > |
| | | <label |
| | | class="slds-form-element__label" |
| | | for="input-hos" |
| | | >金额目标(不含税)</label |
| | | > |
| | | <ui:inputText |
| | | aura:id="select_OTH4_3" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </fieldset> |
| | | </div> |
| | | </div> |
| | | <div class="slds-modal__footer slds-grid slds-grid--align-spread"> |
| | | <div class="slds-order--1" /> |
| | | <ui:button |
| | | aura:id="save_button" |
| | | label="保存" |
| | | class="slds-button slds-button--brand slds-order--2" |
| | | press="{!c.createTarget}" |
| | | /> |
| | | <div class="slds-order--3" /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div aura:id="modal_bg" class="disp_none slds-backdrop slds-backdrop--open"></div> |
| | | </aura:component> |
| | | <div |
| | | aura:id="modal_bg" |
| | | class="disp_none slds-backdrop slds-backdrop--open" |
| | | ></div> |
| | | </aura:component> |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <?xml version="1.0" encoding="UTF-8" ?> |
| | | <AuraDefinitionBundle xmlns="http://soap.sforce.com/2006/04/metadata"> |
| | | <apiVersion>39.0</apiVersion> |
| | | <apiVersion>42.0</apiVersion> |
| | | <description>A Lightning Component Bundle</description> |
| | | </AuraDefinitionBundle> |
| | |
| | | } |
| | | .THIS.disp_none { |
| | | display: none; |
| | | } |
| | | } |
| | | .THIS select { |
| | | --lwc-lineHeightButton: 36px; |
| | | --lwc-heightInput: 36px; |
| | | min-height: 0px !important; |
| | | height: 36px !important; |
| | | } |
| | |
| | | ({ |
| | | doinit : function(component, event, helper) { |
| | | component.set("v.OCMTerm", this.getOCMTerm()); |
| | | if (component.get("v.recordId")) { |
| | | component.set("v.button_text", "编辑"); |
| | | var recordId = component.get("v.recordId"); |
| | | var action = component.get("c.getHospital"); |
| | | action.setParams({"recordId": recordId}); |
| | | action.setCallback(this, function(response) { |
| | | var state = response.getState(); |
| | | if(state === "SUCCESS") { |
| | | doinit: function (component, event, helper) { |
| | | component.set('v.OCMTerm', this.getOCMTerm()); |
| | | if (component.get('v.recordId')) { |
| | | component.set('v.button_text', '编辑'); |
| | | var recordId = component.get('v.recordId'); |
| | | var action = component.get('c.getHospital'); |
| | | action.setParams({ recordId: recordId }); |
| | | action.setCallback(this, function (response) { |
| | | var state = response.getState(); |
| | | console.log('state1:' + state); |
| | | if (state === 'SUCCESS') { |
| | | var ah = response.getReturnValue(); |
| | | var select_ah = ah.Id; |
| | | var select_ah_name = ah.Name; |
| | | |
| | | component.set('v.record.Agency_Hospital__c', select_ah); |
| | | // component.set('v.record.Agency_Hospital__c', select_ah); |
| | | //add by Deloitte 2023-6-8 |
| | | let agency = component.get('v.record'); |
| | | agency.Agency_Hospital__c = select_ah; |
| | | // component.set("v.record", agency); |
| | | // alert(JSON.stringify(component.find('input-hos').get("v.body")[0].get('v.values'))); |
| | | if ($A.get("$Browser.formFactor") == 'DESKTOP') { |
| | | var values = [{ |
| | | type: 'Agency_Hospital_Link__c', |
| | | id: select_ah, |
| | | label: select_ah_name, |
| | | icon : { |
| | | url:'/img/icon/t4v35/custom/custom24_120.png', |
| | | backgroundColor:'dc71d1', |
| | | alt:'Agency_Hospital_Link__c' |
| | | if ($A.get('$Browser.formFactor') == 'DESKTOP') { |
| | | console.log('flag1'); |
| | | var values = [ |
| | | { |
| | | type: 'Agency_Hospital_Link__c', |
| | | id: select_ah, |
| | | label: select_ah_name, |
| | | icon: { |
| | | url: '/img/icon/t4v35/custom/custom24_120.png', |
| | | backgroundColor: 'dc71d1', |
| | | alt: 'Agency_Hospital_Link__c' |
| | | } |
| | | } |
| | | }]; |
| | | component.find('input-hos').get("v.body")[0].set('v.values', values); |
| | | ]; |
| | | // component.find('input-hos').get("v.body")[0].set('v.values', values); |
| | | //add by Deloitte 2023-6-8 |
| | | if ( |
| | | component.find('input-hos').get('v.body') && |
| | | component.find('input-hos').get('v.body').length > 0 |
| | | ) { |
| | | component |
| | | .find('input-hos') |
| | | .get('v.body')[0] |
| | | .set('v.values', values); |
| | | } |
| | | } else { |
| | | component.find('input-hos').get("v.body")[0].set('v.selectedLabel', select_ah_name); |
| | | // component.find('input-hos').get("v.body")[0].set('v.selectedLabel', select_ah_name); |
| | | //add by Deloitte 2023-6-8 |
| | | if ( |
| | | component.find('input-hos').get('v.body') && |
| | | component.find('input-hos').get('v.body').length > 0 |
| | | ) { |
| | | component |
| | | .find('input-hos') |
| | | .get('v.body')[0] |
| | | .set('v.selectedLabel', select_ah_name); |
| | | } |
| | | } |
| | | |
| | | } else if (state === "ERROR") { |
| | | } else if (state === 'ERROR') { |
| | | var errors = response.getError(); |
| | | var toastEvent = $A.get("e.force:showToast"); |
| | | var toastEvent = $A.get('e.force:showToast'); |
| | | toastEvent.setParams({ |
| | | "title": "错误", |
| | | "type":"error", |
| | | "message": errors[0].message |
| | | title: '错误', |
| | | type: 'error', |
| | | message: errors[0].message |
| | | }); |
| | | toastEvent.fire(); |
| | | |
| | | } |
| | | }); |
| | | $A.enqueueAction(action); |
| | | } |
| | | |
| | | var action = component.get("c.getProductList"); |
| | | action.setCallback(this, function(response) { |
| | | var action = component.get('c.getProductList'); |
| | | action.setCallback(this, function (response) { |
| | | var state = response.getState(); |
| | | if(state === "SUCCESS") { |
| | | console.log('state2:' + state); |
| | | if (state === 'SUCCESS') { |
| | | var opts = response.getReturnValue(); |
| | | // alert(JSON.stringify(opts["GI"])); |
| | | component.find("select_GI1").set("v.options", JSON.parse(JSON.stringify(opts["GI"]))); |
| | | component.find("select_GI2").set("v.options", JSON.parse(JSON.stringify(opts["GI"]))); |
| | | component.find("select_GI3").set("v.options", JSON.parse(JSON.stringify(opts["GI"]))); |
| | | component |
| | | .find('select_GI1') |
| | | .set('v.options', JSON.parse(JSON.stringify(opts['GI']))); |
| | | component |
| | | .find('select_GI2') |
| | | .set('v.options', JSON.parse(JSON.stringify(opts['GI']))); |
| | | component |
| | | .find('select_GI3') |
| | | .set('v.options', JSON.parse(JSON.stringify(opts['GI']))); |
| | | |
| | | component.find("select_GS1").set("v.options", JSON.parse(JSON.stringify(opts["GS"]))); |
| | | component.find("select_GS2").set("v.options", JSON.parse(JSON.stringify(opts["GS"]))); |
| | | component.find("select_GS3").set("v.options", JSON.parse(JSON.stringify(opts["GS"]))); |
| | | component |
| | | .find('select_GS1') |
| | | .set('v.options', JSON.parse(JSON.stringify(opts['GS']))); |
| | | component |
| | | .find('select_GS2') |
| | | .set('v.options', JSON.parse(JSON.stringify(opts['GS']))); |
| | | component |
| | | .find('select_GS3') |
| | | .set('v.options', JSON.parse(JSON.stringify(opts['GS']))); |
| | | |
| | | component.find("select_GYN1").set("v.options", JSON.parse(JSON.stringify(opts["GYN"]))); |
| | | component.find("select_GYN2").set("v.options", JSON.parse(JSON.stringify(opts["GYN"]))); |
| | | component.find("select_GYN3").set("v.options", JSON.parse(JSON.stringify(opts["GYN"]))); |
| | | component |
| | | .find('select_GYN1') |
| | | .set('v.options', JSON.parse(JSON.stringify(opts['GYN']))); |
| | | component |
| | | .find('select_GYN2') |
| | | .set('v.options', JSON.parse(JSON.stringify(opts['GYN']))); |
| | | component |
| | | .find('select_GYN3') |
| | | .set('v.options', JSON.parse(JSON.stringify(opts['GYN']))); |
| | | |
| | | component.find("select_URO1").set("v.options", JSON.parse(JSON.stringify(opts["URO"]))); |
| | | component.find("select_URO2").set("v.options", JSON.parse(JSON.stringify(opts["URO"]))); |
| | | component.find("select_URO3").set("v.options", JSON.parse(JSON.stringify(opts["URO"]))); |
| | | component |
| | | .find('select_URO1') |
| | | .set('v.options', JSON.parse(JSON.stringify(opts['URO']))); |
| | | component |
| | | .find('select_URO2') |
| | | .set('v.options', JSON.parse(JSON.stringify(opts['URO']))); |
| | | component |
| | | .find('select_URO3') |
| | | .set('v.options', JSON.parse(JSON.stringify(opts['URO']))); |
| | | |
| | | component.find("select_ENT1").set("v.options", JSON.parse(JSON.stringify(opts["ENT"]))); |
| | | component.find("select_ENT2").set("v.options", JSON.parse(JSON.stringify(opts["ENT"]))); |
| | | component.find("select_ENT3").set("v.options", JSON.parse(JSON.stringify(opts["ENT"]))); |
| | | component |
| | | .find('select_ENT1') |
| | | .set('v.options', JSON.parse(JSON.stringify(opts['ENT']))); |
| | | component |
| | | .find('select_ENT2') |
| | | .set('v.options', JSON.parse(JSON.stringify(opts['ENT']))); |
| | | component |
| | | .find('select_ENT3') |
| | | .set('v.options', JSON.parse(JSON.stringify(opts['ENT']))); |
| | | |
| | | component.find("select_OTH1").set("v.options", JSON.parse(JSON.stringify(opts["OTH"]))); |
| | | component.find("select_OTH2").set("v.options", JSON.parse(JSON.stringify(opts["OTH"]))); |
| | | component.find("select_OTH3").set("v.options", JSON.parse(JSON.stringify(opts["OTH"]))); |
| | | component |
| | | .find('select_OTH1') |
| | | .set('v.options', JSON.parse(JSON.stringify(opts['OTH']))); |
| | | component |
| | | .find('select_OTH2') |
| | | .set('v.options', JSON.parse(JSON.stringify(opts['OTH']))); |
| | | component |
| | | .find('select_OTH3') |
| | | .set('v.options', JSON.parse(JSON.stringify(opts['OTH']))); |
| | | |
| | | component.find("select_ET1").set("v.options", JSON.parse(JSON.stringify(opts["ET"]))); |
| | | component.find("select_ET2").set("v.options", JSON.parse(JSON.stringify(opts["ET"]))); |
| | | component.find("select_ET3").set("v.options", JSON.parse(JSON.stringify(opts["ET"]))); |
| | | component |
| | | .find('select_ET1') |
| | | .set('v.options', JSON.parse(JSON.stringify(opts['ET']))); |
| | | component |
| | | .find('select_ET2') |
| | | .set('v.options', JSON.parse(JSON.stringify(opts['ET']))); |
| | | component |
| | | .find('select_ET3') |
| | | .set('v.options', JSON.parse(JSON.stringify(opts['ET']))); |
| | | |
| | | component.find("select_BF1").set("v.options", JSON.parse(JSON.stringify(opts["BF"]))); |
| | | component.find("select_BF2").set("v.options", JSON.parse(JSON.stringify(opts["BF"]))); |
| | | component.find("select_BF3").set("v.options", JSON.parse(JSON.stringify(opts["BF"]))); |
| | | } else if (state === "ERROR") { |
| | | component |
| | | .find('select_BF1') |
| | | .set('v.options', JSON.parse(JSON.stringify(opts['BF']))); |
| | | component |
| | | .find('select_BF2') |
| | | .set('v.options', JSON.parse(JSON.stringify(opts['BF']))); |
| | | component |
| | | .find('select_BF3') |
| | | .set('v.options', JSON.parse(JSON.stringify(opts['BF']))); |
| | | } else if (state === 'ERROR') { |
| | | var errors = response.getError(); |
| | | var toastEvent = $A.get("e.force:showToast"); |
| | | var toastEvent = $A.get('e.force:showToast'); |
| | | toastEvent.setParams({ |
| | | "title": "错误", |
| | | "type":"error", |
| | | "message": errors[0].message |
| | | title: '错误', |
| | | type: 'error', |
| | | message: errors[0].message |
| | | }); |
| | | toastEvent.fire(); |
| | | |
| | | } |
| | | }); |
| | | $A.enqueueAction(action); |
| | | }, |
| | | |
| | | toggle_report : function(component, event, helper) { |
| | | toggle_report: function (component, event, helper) { |
| | | var modal_window = component.find('modal_window'); |
| | | var modal_bg = component.find('modal_bg'); |
| | | $A.util.toggleClass(modal_window, 'disp_none'); |
| | | $A.util.toggleClass(modal_bg, 'disp_none'); |
| | | |
| | | if ($A.util.hasClass(modal_window, 'disp_none') && !component.get("v.recordId")) { |
| | | if ( |
| | | $A.util.hasClass(modal_window, 'disp_none') && |
| | | !component.get('v.recordId') |
| | | ) { |
| | | $A.get('e.force:refreshView').fire(); |
| | | } |
| | | }, |
| | | |
| | | productcategoryChange : function(component, event, helper, dept, index) { |
| | | var cmpId = 'select_'+dept; |
| | | productcategoryChange: function (component, event, helper, dept, index) { |
| | | var cmpId = 'select_' + dept; |
| | | var myId; |
| | | var o1Id; |
| | | var o2Id; |
| | |
| | | myId = cmpId + '1'; |
| | | o1Id = cmpId + '2'; |
| | | o2Id = cmpId + '3'; |
| | | } else if (index == 2){ |
| | | } else if (index == 2) { |
| | | myId = cmpId + '2'; |
| | | o1Id = cmpId + '1'; |
| | | o2Id = cmpId + '3'; |
| | |
| | | var pcId2 = component.find(o2Id).get('v.value'); |
| | | var p1bool = pcId1 != '' && pcId1 != null && pcId1 != undefined; |
| | | var p2bool = pcId2 != '' && pcId2 != null && pcId2 != undefined; |
| | | var p0bool = product_category_id != '' && product_category_id != null && product_category_id != undefined; |
| | | if ((p1bool && p0bool && product_category_id == pcId1) || (p2bool && p0bool && product_category_id == pcId2)) { |
| | | var p0bool = |
| | | product_category_id != '' && |
| | | product_category_id != null && |
| | | product_category_id != undefined; |
| | | if ( |
| | | (p1bool && p0bool && product_category_id == pcId1) || |
| | | (p2bool && p0bool && product_category_id == pcId2) |
| | | ) { |
| | | this.warning('不能选择同样的产品区分'); |
| | | component.find(myId).set('v.value',''); |
| | | component.find(myId).set('v.value', ''); |
| | | } |
| | | }, |
| | | |
| | | selectHos : function(component, event, helper) { |
| | | |
| | | var accid = component.get("v.record.Agency_Hospital__c"); |
| | | var action = component.get("c.getDeptAmount"); |
| | | action.setParams({ "hospitalId" : accid }); |
| | | action.setCallback(this, function(response) { |
| | | var state = response.getState(); |
| | | if (state === "SUCCESS") { |
| | | var amountMap = response.getReturnValue(); |
| | | selectHos: function (component, event, helper) { |
| | | var accid = component.get('v.record.Agency_Hospital__c'); |
| | | var action = component.get('c.getDeptAmount'); |
| | | action.setParams({ hospitalId: accid }); |
| | | action.setCallback(this, function (response) { |
| | | var state = response.getState(); |
| | | if (state === 'SUCCESS') { |
| | | var amountMap = response.getReturnValue(); |
| | | var GIProduct_Category1 = ''; |
| | | var GIProduct_Category2 = ''; |
| | | var GIProduct_Category3 = ''; |
| | |
| | | if (amountMap.GI.length > 0) { |
| | | GIProduct_Category1 = amountMap.GI[0].Product_Category__c; |
| | | if (amountMap.GI.length > 1) { |
| | | GIProduct_Category2 = amountMap.GI[1].Product_Category__c; |
| | | GIProduct_Category2 = |
| | | amountMap.GI[1].Product_Category__c; |
| | | } |
| | | if (amountMap.GI.length > 2) { |
| | | GIProduct_Category3 = amountMap.GI[2].Product_Category__c; |
| | | GIProduct_Category3 = |
| | | amountMap.GI[2].Product_Category__c; |
| | | } |
| | | GIAim_Price__c1 = amountMap.GI[0].Aim_Price__c; |
| | | GIAim_Price__c2 = amountMap.GI[1].Aim_Price__c; |
| | | GIAim_Price__c3 = amountMap.GI[2].Aim_Price__c; |
| | | console.warn(GIAim_Price__c1+"-"+GIAim_Price__c2+"-"+GIAim_Price__c3); |
| | | |
| | | console.warn( |
| | | GIAim_Price__c1 + |
| | | '-' + |
| | | GIAim_Price__c2 + |
| | | '-' + |
| | | GIAim_Price__c3 |
| | | ); |
| | | } |
| | | component.find('select_GI1').set('v.value',GIProduct_Category1); |
| | | component.find('select_GI2').set('v.value',GIProduct_Category2); |
| | | component.find('select_GI3').set('v.value',GIProduct_Category3); |
| | | component.find('select_GI4_1').set('v.value',GIAim_Price__c1); |
| | | component.find('select_GI4_2').set('v.value',GIAim_Price__c2); |
| | | component.find('select_GI4_3').set('v.value',GIAim_Price__c3); |
| | | |
| | | component |
| | | .find('select_GI1') |
| | | .set('v.value', GIProduct_Category1); |
| | | component |
| | | .find('select_GI2') |
| | | .set('v.value', GIProduct_Category2); |
| | | component |
| | | .find('select_GI3') |
| | | .set('v.value', GIProduct_Category3); |
| | | component.find('select_GI4_1').set('v.value', GIAim_Price__c1); |
| | | component.find('select_GI4_2').set('v.value', GIAim_Price__c2); |
| | | component.find('select_GI4_3').set('v.value', GIAim_Price__c3); |
| | | |
| | | var ETProduct_Category1 = ''; |
| | | var ETProduct_Category2 = ''; |
| | |
| | | if (amountMap.ET.length > 0) { |
| | | ETProduct_Category1 = amountMap.ET[0].Product_Category__c; |
| | | if (amountMap.ET.length > 1) { |
| | | ETProduct_Category2 = amountMap.ET[1].Product_Category__c; |
| | | ETProduct_Category2 = |
| | | amountMap.ET[1].Product_Category__c; |
| | | } |
| | | if (amountMap.ET.length > 2) { |
| | | ETProduct_Category3 = amountMap.ET[2].Product_Category__c; |
| | | ETProduct_Category3 = |
| | | amountMap.ET[2].Product_Category__c; |
| | | } |
| | | ETAim_Price__c1 = amountMap.ET[0].Aim_Price__c; |
| | | ETAim_Price__c2 = amountMap.ET[1].Aim_Price__c; |
| | | ETAim_Price__c3 = amountMap.ET[2].Aim_Price__c; |
| | | } |
| | | component.find('select_ET1').set('v.value',ETProduct_Category1); |
| | | component.find('select_ET2').set('v.value',ETProduct_Category2); |
| | | component.find('select_ET3').set('v.value',ETProduct_Category3); |
| | | component.find('select_ET4_1').set('v.value',ETAim_Price__c1); |
| | | component.find('select_ET4_2').set('v.value',ETAim_Price__c2); |
| | | component.find('select_ET4_3').set('v.value',ETAim_Price__c3); |
| | | |
| | | } |
| | | component |
| | | .find('select_ET1') |
| | | .set('v.value', ETProduct_Category1); |
| | | component |
| | | .find('select_ET2') |
| | | .set('v.value', ETProduct_Category2); |
| | | component |
| | | .find('select_ET3') |
| | | .set('v.value', ETProduct_Category3); |
| | | component.find('select_ET4_1').set('v.value', ETAim_Price__c1); |
| | | component.find('select_ET4_2').set('v.value', ETAim_Price__c2); |
| | | component.find('select_ET4_3').set('v.value', ETAim_Price__c3); |
| | | |
| | | var BFProduct_Category1 = ''; |
| | | var BFProduct_Category2 = ''; |
| | |
| | | if (amountMap.BF.length > 0) { |
| | | BFProduct_Category1 = amountMap.BF[0].Product_Category__c; |
| | | if (amountMap.BF.length > 1) { |
| | | BFProduct_Category2 = amountMap.BF[1].Product_Category__c; |
| | | BFProduct_Category2 = |
| | | amountMap.BF[1].Product_Category__c; |
| | | } |
| | | if (amountMap.BF.length > 2) { |
| | | BFProduct_Category3 = amountMap.BF[2].Product_Category__c; |
| | | BFProduct_Category3 = |
| | | amountMap.BF[2].Product_Category__c; |
| | | } |
| | | BFAim_Price__c1 = amountMap.BF[0].Aim_Price__c; |
| | | BFAim_Price__c2 = amountMap.BF[1].Aim_Price__c; |
| | | BFAim_Price__c3 = amountMap.BF[2].Aim_Price__c; |
| | | } |
| | | component.find('select_BF1').set('v.value',BFProduct_Category1); |
| | | component.find('select_BF2').set('v.value',BFProduct_Category2); |
| | | component.find('select_BF3').set('v.value',BFProduct_Category3); |
| | | component.find('select_BF4_1').set('v.value',BFAim_Price__c1); |
| | | component.find('select_BF4_2').set('v.value',BFAim_Price__c2); |
| | | component.find('select_BF4_3').set('v.value',BFAim_Price__c3); |
| | | |
| | | } |
| | | component |
| | | .find('select_BF1') |
| | | .set('v.value', BFProduct_Category1); |
| | | component |
| | | .find('select_BF2') |
| | | .set('v.value', BFProduct_Category2); |
| | | component |
| | | .find('select_BF3') |
| | | .set('v.value', BFProduct_Category3); |
| | | component.find('select_BF4_1').set('v.value', BFAim_Price__c1); |
| | | component.find('select_BF4_2').set('v.value', BFAim_Price__c2); |
| | | component.find('select_BF4_3').set('v.value', BFAim_Price__c3); |
| | | |
| | | var OTHProduct_Category1 = ''; |
| | | var OTHProduct_Category2 = ''; |
| | |
| | | var OTHAim_Price__c2 = ''; |
| | | var OTHAim_Price__c3 = ''; |
| | | if (amountMap.OTH.length > 0) { |
| | | |
| | | OTHProduct_Category1 = amountMap.OTH[0].Product_Category__c; |
| | | if (amountMap.OTH.length > 1) { |
| | | OTHProduct_Category2 = amountMap.OTH[1].Product_Category__c; |
| | | OTHProduct_Category2 = |
| | | amountMap.OTH[1].Product_Category__c; |
| | | } |
| | | if (amountMap.OTH.length > 2) { |
| | | OTHProduct_Category3 = amountMap.OTH[2].Product_Category__c; |
| | | OTHProduct_Category3 = |
| | | amountMap.OTH[2].Product_Category__c; |
| | | } |
| | | OTHAim_Price__c1 = amountMap.OTH[0].Aim_Price__c; |
| | | OTHAim_Price__c2 = amountMap.OTH[1].Aim_Price__c; |
| | | OTHAim_Price__c3 = amountMap.OTH[2].Aim_Price__c; |
| | | } |
| | | component.find('select_OTH1').set('v.value',OTHProduct_Category1); |
| | | component.find('select_OTH2').set('v.value',OTHProduct_Category2); |
| | | component.find('select_OTH3').set('v.value',OTHProduct_Category3); |
| | | component.find('select_OTH4_1').set('v.value',OTHAim_Price__c1); |
| | | component.find('select_OTH4_2').set('v.value',OTHAim_Price__c2); |
| | | component.find('select_OTH4_3').set('v.value',OTHAim_Price__c3); |
| | | |
| | | } |
| | | component |
| | | .find('select_OTH1') |
| | | .set('v.value', OTHProduct_Category1); |
| | | component |
| | | .find('select_OTH2') |
| | | .set('v.value', OTHProduct_Category2); |
| | | component |
| | | .find('select_OTH3') |
| | | .set('v.value', OTHProduct_Category3); |
| | | component |
| | | .find('select_OTH4_1') |
| | | .set('v.value', OTHAim_Price__c1); |
| | | component |
| | | .find('select_OTH4_2') |
| | | .set('v.value', OTHAim_Price__c2); |
| | | component |
| | | .find('select_OTH4_3') |
| | | .set('v.value', OTHAim_Price__c3); |
| | | |
| | | var GSProduct_Category1 = ''; |
| | | var GSProduct_Category2 = ''; |
| | | var GSProduct_Category3 = ''; |
| | |
| | | if (amountMap.GS.length > 0) { |
| | | GSProduct_Category1 = amountMap.GS[0].Product_Category__c; |
| | | if (amountMap.GS.length > 1) { |
| | | GSProduct_Category2 = amountMap.GS[1].Product_Category__c; |
| | | GSProduct_Category2 = |
| | | amountMap.GS[1].Product_Category__c; |
| | | } |
| | | if (amountMap.GS.length > 2) { |
| | | GSProduct_Category3 = amountMap.GS[2].Product_Category__c; |
| | | GSProduct_Category3 = |
| | | amountMap.GS[2].Product_Category__c; |
| | | } |
| | | GSPAim_Price__c1 = amountMap.GS[0].Aim_Price__c; |
| | | GSPAim_Price__c2 = amountMap.GS[1].Aim_Price__c; |
| | | GSPAim_Price__c3= amountMap.GS[2].Aim_Price__c; |
| | | } |
| | | component.find('select_GS1').set('v.value',GSProduct_Category1); |
| | | component.find('select_GS2').set('v.value',GSProduct_Category2); |
| | | component.find('select_GS3').set('v.value',GSProduct_Category3); |
| | | component.find('select_GS4_1').set('v.value',GSPAim_Price__c1); |
| | | component.find('select_GS4_2').set('v.value',GSPAim_Price__c2); |
| | | component.find('select_GS4_3').set('v.value',GSPAim_Price__c3); |
| | | |
| | | GSPAim_Price__c3 = amountMap.GS[2].Aim_Price__c; |
| | | } |
| | | component |
| | | .find('select_GS1') |
| | | .set('v.value', GSProduct_Category1); |
| | | component |
| | | .find('select_GS2') |
| | | .set('v.value', GSProduct_Category2); |
| | | component |
| | | .find('select_GS3') |
| | | .set('v.value', GSProduct_Category3); |
| | | component.find('select_GS4_1').set('v.value', GSPAim_Price__c1); |
| | | component.find('select_GS4_2').set('v.value', GSPAim_Price__c2); |
| | | component.find('select_GS4_3').set('v.value', GSPAim_Price__c3); |
| | | |
| | | var UROProduct_Category1 = ''; |
| | | var UROProduct_Category2 = ''; |
| | | var UROProduct_Category3 = ''; |
| | |
| | | var UROAim_Price__c2 = ''; |
| | | var UROAim_Price__c3 = ''; |
| | | if (amountMap.URO.length > 0) { |
| | | |
| | | UROProduct_Category1 = amountMap.URO[0].Product_Category__c; |
| | | if (amountMap.URO.length > 1) { |
| | | UROProduct_Category2 = amountMap.URO[1].Product_Category__c; |
| | | UROProduct_Category2 = |
| | | amountMap.URO[1].Product_Category__c; |
| | | } |
| | | if (amountMap.URO.length > 2) { |
| | | UROProduct_Category3 = amountMap.URO[2].Product_Category__c; |
| | | UROProduct_Category3 = |
| | | amountMap.URO[2].Product_Category__c; |
| | | } |
| | | UROAim_Price__c1 = amountMap.URO[0].Aim_Price__c; |
| | | UROAim_Price__c2 = amountMap.URO[1].Aim_Price__c; |
| | | UROAim_Price__c3 = amountMap.URO[2].Aim_Price__c; |
| | | } |
| | | component.find('select_URO1').set('v.value',UROProduct_Category1); |
| | | component.find('select_URO2').set('v.value',UROProduct_Category2); |
| | | component.find('select_URO3').set('v.value',UROProduct_Category3); |
| | | component.find('select_URO4_1').set('v.value',UROAim_Price__c1); |
| | | component.find('select_URO4_2').set('v.value',UROAim_Price__c2); |
| | | component.find('select_URO4_3').set('v.value',UROAim_Price__c3); |
| | | } |
| | | component |
| | | .find('select_URO1') |
| | | .set('v.value', UROProduct_Category1); |
| | | component |
| | | .find('select_URO2') |
| | | .set('v.value', UROProduct_Category2); |
| | | component |
| | | .find('select_URO3') |
| | | .set('v.value', UROProduct_Category3); |
| | | component |
| | | .find('select_URO4_1') |
| | | .set('v.value', UROAim_Price__c1); |
| | | component |
| | | .find('select_URO4_2') |
| | | .set('v.value', UROAim_Price__c2); |
| | | component |
| | | .find('select_URO4_3') |
| | | .set('v.value', UROAim_Price__c3); |
| | | |
| | | |
| | | var GYNProduct_Category1 = ''; |
| | | var GYNProduct_Category2 = ''; |
| | | var GYNProduct_Category3 = ''; |
| | |
| | | var GYNAim_Price__c2 = ''; |
| | | var GYNAim_Price__c3 = ''; |
| | | if (amountMap.GYN.length > 0) { |
| | | |
| | | GYNProduct_Category1 = amountMap.GYN[0].Product_Category__c; |
| | | if (amountMap.GYN.length > 1) { |
| | | GYNProduct_Category2 = amountMap.GYN[1].Product_Category__c; |
| | | GYNProduct_Category2 = |
| | | amountMap.GYN[1].Product_Category__c; |
| | | } |
| | | if (amountMap.GYN.length > 2) { |
| | | GYNProduct_Category3 = amountMap.GYN[2].Product_Category__c; |
| | | GYNProduct_Category3 = |
| | | amountMap.GYN[2].Product_Category__c; |
| | | } |
| | | GYNAim_Price__c1= amountMap.GYN[0].Aim_Price__c; |
| | | GYNAim_Price__c1 = amountMap.GYN[0].Aim_Price__c; |
| | | GYNAim_Price__c2 = amountMap.GYN[1].Aim_Price__c; |
| | | GYNAim_Price__c3 = amountMap.GYN[2].Aim_Price__c; |
| | | } |
| | | component.find('select_GYN1').set('v.value',GYNProduct_Category1); |
| | | component.find('select_GYN2').set('v.value',GYNProduct_Category2); |
| | | component.find('select_GYN3').set('v.value',GYNProduct_Category3); |
| | | component.find('select_GYN4_1').set('v.value',GYNAim_Price__c1); |
| | | component.find('select_GYN4_2').set('v.value',GYNAim_Price__c2); |
| | | component.find('select_GYN4_3').set('v.value',GYNAim_Price__c3); |
| | | } |
| | | component |
| | | .find('select_GYN1') |
| | | .set('v.value', GYNProduct_Category1); |
| | | component |
| | | .find('select_GYN2') |
| | | .set('v.value', GYNProduct_Category2); |
| | | component |
| | | .find('select_GYN3') |
| | | .set('v.value', GYNProduct_Category3); |
| | | component |
| | | .find('select_GYN4_1') |
| | | .set('v.value', GYNAim_Price__c1); |
| | | component |
| | | .find('select_GYN4_2') |
| | | .set('v.value', GYNAim_Price__c2); |
| | | component |
| | | .find('select_GYN4_3') |
| | | .set('v.value', GYNAim_Price__c3); |
| | | |
| | | |
| | | var ENTProduct_Category1 = ''; |
| | | var ENTProduct_Category2 = ''; |
| | | var ENTProduct_Category3 = ''; |
| | |
| | | var ENTAim_Price__c2 = ''; |
| | | var ENTAim_Price__c3 = ''; |
| | | if (amountMap.ENT.length > 0) { |
| | | |
| | | ENTProduct_Category1 = amountMap.ENT[0].Product_Category__c; |
| | | if (amountMap.ENT.length > 1) { |
| | | ENTProduct_Category2 = amountMap.ENT[1].Product_Category__c; |
| | | ENTProduct_Category2 = |
| | | amountMap.ENT[1].Product_Category__c; |
| | | } |
| | | if (amountMap.ENT.length > 2) { |
| | | ENTProduct_Category3 = amountMap.ENT[2].Product_Category__c; |
| | | ENTProduct_Category3 = |
| | | amountMap.ENT[2].Product_Category__c; |
| | | } |
| | | ENTAim_Price__c1 = amountMap.ENT[0].Aim_Price__c; |
| | | ENTAim_Price__c2 = amountMap.ENT[1].Aim_Price__c; |
| | | ENTAim_Price__c3 = amountMap.ENT[2].Aim_Price__c; |
| | | } |
| | | component.find('select_ENT1').set('v.value',ENTProduct_Category1); |
| | | component.find('select_ENT2').set('v.value',ENTProduct_Category2); |
| | | component.find('select_ENT3').set('v.value',ENTProduct_Category3); |
| | | component.find('select_ENT4_1').set('v.value',ENTAim_Price__c1); |
| | | component.find('select_ENT4_2').set('v.value',ENTAim_Price__c2); |
| | | component.find('select_ENT4_3').set('v.value',ENTAim_Price__c3); |
| | | |
| | | } |
| | | }); |
| | | $A.enqueueAction(action); |
| | | console.log(JSON.stringify(component.find('input-hos').get("v.body")[0].get('v'))); |
| | | } |
| | | component |
| | | .find('select_ENT1') |
| | | .set('v.value', ENTProduct_Category1); |
| | | component |
| | | .find('select_ENT2') |
| | | .set('v.value', ENTProduct_Category2); |
| | | component |
| | | .find('select_ENT3') |
| | | .set('v.value', ENTProduct_Category3); |
| | | component |
| | | .find('select_ENT4_1') |
| | | .set('v.value', ENTAim_Price__c1); |
| | | component |
| | | .find('select_ENT4_2') |
| | | .set('v.value', ENTAim_Price__c2); |
| | | component |
| | | .find('select_ENT4_3') |
| | | .set('v.value', ENTAim_Price__c3); |
| | | } |
| | | }); |
| | | $A.enqueueAction(action); |
| | | console.log( |
| | | JSON.stringify( |
| | | component.find('input-hos').get('v.body')[0].get('v') |
| | | ) |
| | | ); |
| | | }, |
| | | |
| | | getOCMTerm : function() { |
| | | getOCMTerm: function () { |
| | | var today = new Date(); |
| | | var year = today.getFullYear(); |
| | | var month = today.getMonth(); |
| | |
| | | return thisYearOCMPeriod; |
| | | }, |
| | | |
| | | createTarget : function(component, event, helper) { |
| | | var action = component.get("c.createSFTarget"); |
| | | // alert(component.get("v.GIAmount")); |
| | | createTarget: function (component, event, helper) { |
| | | var action = component.get('c.createSFTarget'); |
| | | // alert(component.get("v.GIAmount")); |
| | | |
| | | var p1_1 = component.find('select_GI4_1').get('v.value'); |
| | | var p1_2 = component.find('select_GI4_2').get('v.value'); |
| | | var p1_3 = component.find('select_GI4_3').get('v.value'); |
| | | |
| | | |
| | | var p1_1 = component.find('select_GI4_1').get('v.value') ; |
| | | var p1_2 = component.find('select_GI4_2').get('v.value') ; |
| | | var p1_3 = component.find('select_GI4_3').get('v.value') ; |
| | | |
| | | if (p1_1 == undefined || p1_1 == "") { |
| | | if (p1_1 == undefined || p1_1 == '') { |
| | | p1_1 = 0; |
| | | } |
| | | if (p1_2 == undefined || p1_2 == "") { |
| | | if (p1_2 == undefined || p1_2 == '') { |
| | | p1_2 = 0; |
| | | } |
| | | if (p1_3 == undefined || p1_3 == "") { |
| | | if (p1_3 == undefined || p1_3 == '') { |
| | | p1_3 = 0; |
| | | } |
| | | console.warn(p1_1+"-"+p1_2+"-"+p1_3); |
| | | console.warn(p1_1 + '-' + p1_2 + '-' + p1_3); |
| | | |
| | | var p2_1 = component.find('select_ET4_1').get('v.value') ; |
| | | var p2_2 = component.find('select_ET4_2').get('v.value') ; |
| | | var p2_3 = component.find('select_ET4_3').get('v.value') ; |
| | | if (p2_1 == undefined || p2_1 == "") { |
| | | var p2_1 = component.find('select_ET4_1').get('v.value'); |
| | | var p2_2 = component.find('select_ET4_2').get('v.value'); |
| | | var p2_3 = component.find('select_ET4_3').get('v.value'); |
| | | if (p2_1 == undefined || p2_1 == '') { |
| | | p2_1 = 0; |
| | | } |
| | | if (p2_2 == undefined || p2_2 == "") { |
| | | if (p2_2 == undefined || p2_2 == '') { |
| | | p2_2 = 0; |
| | | } |
| | | if (p2_3 == undefined || p2_3 == "") { |
| | | if (p2_3 == undefined || p2_3 == '') { |
| | | p2_3 = 0; |
| | | } |
| | | |
| | | |
| | | var p3_1 = component.find('select_BF4_1').get('v.value') ; |
| | | var p3_2 = component.find('select_BF4_2').get('v.value') ; |
| | | var p3_3 = component.find('select_BF4_3').get('v.value') ; |
| | | if (p3_1 == undefined || p3_1 == "") { |
| | | var p3_1 = component.find('select_BF4_1').get('v.value'); |
| | | var p3_2 = component.find('select_BF4_2').get('v.value'); |
| | | var p3_3 = component.find('select_BF4_3').get('v.value'); |
| | | if (p3_1 == undefined || p3_1 == '') { |
| | | p3_1 = 0; |
| | | } |
| | | if (p3_2 == undefined || p3_2 == "") { |
| | | if (p3_2 == undefined || p3_2 == '') { |
| | | p3_2 = 0; |
| | | } |
| | | if (p3_3 == undefined || p3_3 == "") { |
| | | if (p3_3 == undefined || p3_3 == '') { |
| | | p3_3 = 0; |
| | | } |
| | | |
| | | |
| | | |
| | | var p4_1 = component.find('select_OTH4_1').get('v.value') ; |
| | | var p4_2 = component.find('select_OTH4_2').get('v.value') ; |
| | | var p4_3 = component.find('select_OTH4_3').get('v.value') ; |
| | | if (p4_1 == undefined || p4_1 == "") { |
| | | var p4_1 = component.find('select_OTH4_1').get('v.value'); |
| | | var p4_2 = component.find('select_OTH4_2').get('v.value'); |
| | | var p4_3 = component.find('select_OTH4_3').get('v.value'); |
| | | if (p4_1 == undefined || p4_1 == '') { |
| | | p4_1 = 0; |
| | | } |
| | | if (p4_2 == undefined || p4_2 == "") { |
| | | if (p4_2 == undefined || p4_2 == '') { |
| | | p4_2 = 0; |
| | | } |
| | | if (p4_3 == undefined || p4_3 == "") { |
| | | if (p4_3 == undefined || p4_3 == '') { |
| | | p4_3 = 0; |
| | | } |
| | | |
| | | |
| | | |
| | | var p5_1 = component.find('select_GS4_1').get('v.value') ; |
| | | var p5_2 = component.find('select_GS4_2').get('v.value') ; |
| | | var p5_3 = component.find('select_GS4_3').get('v.value') ; |
| | | if (p5_1 == undefined || p5_1 == "") { |
| | | var p5_1 = component.find('select_GS4_1').get('v.value'); |
| | | var p5_2 = component.find('select_GS4_2').get('v.value'); |
| | | var p5_3 = component.find('select_GS4_3').get('v.value'); |
| | | if (p5_1 == undefined || p5_1 == '') { |
| | | p5_1 = 0; |
| | | } |
| | | if (p5_2 == undefined || p5_2 == "") { |
| | | if (p5_2 == undefined || p5_2 == '') { |
| | | p5_2 = 0; |
| | | } |
| | | if (p5_3 == undefined || p5_3 == "") { |
| | | if (p5_3 == undefined || p5_3 == '') { |
| | | p5_3 = 0; |
| | | } |
| | | |
| | | |
| | | |
| | | var p6_1 = component.find('select_URO4_1').get('v.value') ; |
| | | var p6_2 = component.find('select_URO4_2').get('v.value') ; |
| | | var p6_3 = component.find('select_URO4_3').get('v.value') ; |
| | | if (p6_1 == undefined || p6_1 == "") { |
| | | var p6_1 = component.find('select_URO4_1').get('v.value'); |
| | | var p6_2 = component.find('select_URO4_2').get('v.value'); |
| | | var p6_3 = component.find('select_URO4_3').get('v.value'); |
| | | if (p6_1 == undefined || p6_1 == '') { |
| | | p6_1 = 0; |
| | | } |
| | | if (p6_2 == undefined || p6_2 == "") { |
| | | if (p6_2 == undefined || p6_2 == '') { |
| | | p6_2 = 0; |
| | | } |
| | | if (p6_3 == undefined || p6_3 == "") { |
| | | if (p6_3 == undefined || p6_3 == '') { |
| | | p6_3 = 0; |
| | | } |
| | | |
| | | var p7_1 = component.find('select_GYN4_1').get('v.value') ; |
| | | var p7_2 = component.find('select_GYN4_2').get('v.value') ; |
| | | var p7_3 = component.find('select_GYN4_3').get('v.value') ; |
| | | if (p7_1 == undefined || p7_1 == "") { |
| | | var p7_1 = component.find('select_GYN4_1').get('v.value'); |
| | | var p7_2 = component.find('select_GYN4_2').get('v.value'); |
| | | var p7_3 = component.find('select_GYN4_3').get('v.value'); |
| | | if (p7_1 == undefined || p7_1 == '') { |
| | | p7_1 = 0; |
| | | } |
| | | if (p7_2 == undefined || p7_2 == "") { |
| | | if (p7_2 == undefined || p7_2 == '') { |
| | | p7_2 = 0; |
| | | } |
| | | if (p7_3 == undefined || p7_3 == "") { |
| | | if (p7_3 == undefined || p7_3 == '') { |
| | | p7_3 = 0; |
| | | } |
| | | |
| | | |
| | | |
| | | var p8_1 = component.find('select_ENT4_1').get('v.value') ; |
| | | var p8_2 = component.find('select_ENT4_2').get('v.value') ; |
| | | var p8_3 = component.find('select_ENT4_3').get('v.value') ; |
| | | if (p8_1 == undefined || p8_1 == "") { |
| | | var p8_1 = component.find('select_ENT4_1').get('v.value'); |
| | | var p8_2 = component.find('select_ENT4_2').get('v.value'); |
| | | var p8_3 = component.find('select_ENT4_3').get('v.value'); |
| | | if (p8_1 == undefined || p8_1 == '') { |
| | | p8_1 = 0; |
| | | } |
| | | if (p8_2 == undefined || p8_2 == "") { |
| | | if (p8_2 == undefined || p8_2 == '') { |
| | | p8_2 = 0; |
| | | } |
| | | if (p8_3 == undefined || p8_3 == "") { |
| | | if (p8_3 == undefined || p8_3 == '') { |
| | | p8_3 = 0; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | action.setParams({ |
| | | "hospitalId" : component.get("v.record.Agency_Hospital__c"), |
| | | "GIProduct" : [component.find('select_GI1').get('v.value'),component.find('select_GI2').get('v.value'),component.find('select_GI3').get('v.value'),p1_1,p1_2,p1_3], |
| | | "ETProduct" : [component.find('select_ET1').get('v.value'),component.find('select_ET2').get('v.value'),component.find('select_ET3').get('v.value'),p2_1, p2_2,p2_3 ], |
| | | "BFProduct" : [component.find('select_BF1').get('v.value'),component.find('select_BF2').get('v.value'),component.find('select_BF3').get('v.value'),p3_1 ,p3_2 ,p3_3 ], |
| | | "OTHProduct" : [component.find('select_OTH1').get('v.value'),component.find('select_OTH2').get('v.value'),component.find('select_OTH3').get('v.value'),p4_1,p4_2 ,p4_3], |
| | | "GSProduct" : [component.find('select_GS1').get('v.value'),component.find('select_GS2').get('v.value'),component.find('select_GS3').get('v.value'),p5_1,p5_2,p5_3], |
| | | "UROProduct" : [component.find('select_URO1').get('v.value'),component.find('select_URO2').get('v.value'),component.find('select_URO3').get('v.value'),p6_1,p6_2 ,p6_2 ], |
| | | "GYNProduct" : [component.find('select_GYN1').get('v.value'),component.find('select_GYN2').get('v.value'),component.find('select_GYN3').get('v.value'),p7_1,p7_2 ,p7_3 ], |
| | | "ENTProduct" : [component.find('select_ENT1').get('v.value'),component.find('select_ENT2').get('v.value'),component.find('select_ENT3').get('v.value'),p8_1 ,p8_2 ,p8_3], |
| | | "OCMTerm" : component.get("v.OCMTerm") |
| | | }); |
| | | action.setCallback(this, function(response) { |
| | | action.setParams({ |
| | | hospitalId: component.get('v.record.Agency_Hospital__c'), |
| | | GIProduct: [ |
| | | component.find('select_GI1').get('v.value'), |
| | | component.find('select_GI2').get('v.value'), |
| | | component.find('select_GI3').get('v.value'), |
| | | p1_1, |
| | | p1_2, |
| | | p1_3 |
| | | ], |
| | | ETProduct: [ |
| | | component.find('select_ET1').get('v.value'), |
| | | component.find('select_ET2').get('v.value'), |
| | | component.find('select_ET3').get('v.value'), |
| | | p2_1, |
| | | p2_2, |
| | | p2_3 |
| | | ], |
| | | BFProduct: [ |
| | | component.find('select_BF1').get('v.value'), |
| | | component.find('select_BF2').get('v.value'), |
| | | component.find('select_BF3').get('v.value'), |
| | | p3_1, |
| | | p3_2, |
| | | p3_3 |
| | | ], |
| | | OTHProduct: [ |
| | | component.find('select_OTH1').get('v.value'), |
| | | component.find('select_OTH2').get('v.value'), |
| | | component.find('select_OTH3').get('v.value'), |
| | | p4_1, |
| | | p4_2, |
| | | p4_3 |
| | | ], |
| | | GSProduct: [ |
| | | component.find('select_GS1').get('v.value'), |
| | | component.find('select_GS2').get('v.value'), |
| | | component.find('select_GS3').get('v.value'), |
| | | p5_1, |
| | | p5_2, |
| | | p5_3 |
| | | ], |
| | | UROProduct: [ |
| | | component.find('select_URO1').get('v.value'), |
| | | component.find('select_URO2').get('v.value'), |
| | | component.find('select_URO3').get('v.value'), |
| | | p6_1, |
| | | p6_2, |
| | | p6_2 |
| | | ], |
| | | GYNProduct: [ |
| | | component.find('select_GYN1').get('v.value'), |
| | | component.find('select_GYN2').get('v.value'), |
| | | component.find('select_GYN3').get('v.value'), |
| | | p7_1, |
| | | p7_2, |
| | | p7_3 |
| | | ], |
| | | ENTProduct: [ |
| | | component.find('select_ENT1').get('v.value'), |
| | | component.find('select_ENT2').get('v.value'), |
| | | component.find('select_ENT3').get('v.value'), |
| | | p8_1, |
| | | p8_2, |
| | | p8_3 |
| | | ], |
| | | OCMTerm: component.get('v.OCMTerm') |
| | | }); |
| | | action.setCallback(this, function (response) { |
| | | console.warn(response); |
| | | var state = response.getState(); |
| | | if (state === "SUCCESS") { |
| | | var modal_window = component.find('modal_window'); |
| | | var modal_bg = component.find('modal_bg'); |
| | | $A.util.toggleClass(modal_window, 'disp_none'); |
| | | $A.util.toggleClass(modal_bg, 'disp_none'); |
| | | var state = response.getState(); |
| | | if (state === 'SUCCESS') { |
| | | var modal_window = component.find('modal_window'); |
| | | var modal_bg = component.find('modal_bg'); |
| | | $A.util.toggleClass(modal_window, 'disp_none'); |
| | | $A.util.toggleClass(modal_bg, 'disp_none'); |
| | | |
| | | var toastEvent = $A.get("e.force:showToast"); |
| | | var toastEvent = $A.get('e.force:showToast'); |
| | | toastEvent.setParams({ |
| | | "title": "成功", |
| | | "type":"success", |
| | | "message": "保存成功" |
| | | title: '成功', |
| | | type: 'success', |
| | | message: '保存成功' |
| | | }); |
| | | toastEvent.fire(); |
| | | |
| | | $A.get('e.force:refreshView').fire(); |
| | | } else if (state === "INCOMPLETE") { |
| | | var toastEvent = $A.get("e.force:showToast"); |
| | | } else if (state === 'INCOMPLETE') { |
| | | var toastEvent = $A.get('e.force:showToast'); |
| | | toastEvent.setParams({ |
| | | "title": "未完成!", |
| | | "type":"error", |
| | | "message": "未完成" |
| | | title: '未完成!', |
| | | type: 'error', |
| | | message: '未完成' |
| | | }); |
| | | toastEvent.fire(); |
| | | } else if (state === "ERROR") { |
| | | var errors = response.getError(); |
| | | var toastEvent = $A.get("e.force:showToast"); |
| | | } else if (state === 'ERROR') { |
| | | var errors = response.getError(); |
| | | var toastEvent = $A.get('e.force:showToast'); |
| | | toastEvent.setParams({ |
| | | "title": "错误", |
| | | "type":"error", |
| | | "message": errors[0].message |
| | | title: '错误', |
| | | type: 'error', |
| | | message: errors[0].message |
| | | }); |
| | | toastEvent.fire(); |
| | | |
| | | } |
| | | }); |
| | | $A.enqueueAction(action); |
| | | } |
| | | }); |
| | | $A.enqueueAction(action); |
| | | }, |
| | | |
| | | warning : function(message) { |
| | | var toastEvent = $A.get("e.force:showToast"); |
| | | warning: function (message) { |
| | | var toastEvent = $A.get('e.force:showToast'); |
| | | toastEvent.setParams({ |
| | | "title": "警告!", |
| | | "message": message, |
| | | "type":"warning", |
| | | "duration" : "10000" |
| | | }); |
| | | toastEvent.fire(); |
| | | }, |
| | | |
| | | error : function(message) { |
| | | var toastEvent = $A.get("e.force:showToast"); |
| | | toastEvent.setParams({ |
| | | "title": "错误!", |
| | | "message": message, |
| | | "type":"error", |
| | | "duration" : "10000" |
| | | title: '警告!', |
| | | message: message, |
| | | type: 'warning', |
| | | duration: '10000' |
| | | }); |
| | | toastEvent.fire(); |
| | | }, |
| | | |
| | | }) |
| | | error: function (message) { |
| | | var toastEvent = $A.get('e.force:showToast'); |
| | | toastEvent.setParams({ |
| | | title: '错误!', |
| | | message: message, |
| | | type: 'error', |
| | | duration: '10000' |
| | | }); |
| | | toastEvent.fire(); |
| | | } |
| | | }); |
| | |
| | | <!-- |
| | | * @Author: Thhto 997058689@qq.com |
| | | * @Date: 2022-07-08 10:47:25 |
| | | * @LastEditors: Thhto 997058689@qq.com |
| | | * @LastEditTime: 2023-02-03 15:25:46 |
| | | * @FilePath: \ceshihuanj\force-app\main\default\aura\DealerPersonnelInformationImport\DealerPersonnelInformationImport.cmp |
| | | * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE |
| | | --> |
| | | <aura:component controller="DealerPersonnelController" |
| | | implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,force:lightningQuickAction,forceCommunity:availableForAllPageTypes" |
| | | access="global"> |
| | | <!-- 批量添加周报 start--> |
| | | <!-- <aura:handler name="init" value="{!this}" action="{!c.doInit}" /> --> |
| | | <aura:attribute name="reports_date" type="List" /> |
| | | <aura:attribute name="errorMessage" type="String" /> |
| | | <aura:attribute name="TableContent" type="String" description=" Show the Result class" /> |
| | | <aura:attribute name="TableContent2" type="String" description=" Show the Result class" /> |
| | | <aura:attribute name="TargetFileName" type="String" description="Name of the file" /> |
| | | <aura:attribute name="tableheaders" type="Object[]" /> |
| | | <aura:attribute name="fileContentData" type="String" /> |
| | | <aura:attribute name="filename" type="String" /> |
| | | <aura:attribute name="NumOfRecords" type="Integer" default="1000" /> |
| | | <aura:attribute name="showMain" type="Boolean" default="true" /> |
| | | <aura:attribute name="IsEventDefault" type="Boolean" default="true" /> |
| | | <aura:attribute name="login" type="Boolean" default="false" /> |
| | | <aura:attribute name="successMessage" type="String" /> |
| | | <!-- 批量添加周报 end--> |
| | | <aura:renderIf isTrue="{!v.login}"> |
| | | <aura:component |
| | | controller="DealerPersonnelController" |
| | | implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,force:lightningQuickAction,forceCommunity:availableForAllPageTypes" |
| | | access="global" |
| | | > |
| | | <!-- 批量添加周报 start--> |
| | | <!-- <aura:handler name="init" value="{!this}" action="{!c.doInit}" /> --> |
| | | <aura:attribute name="reports_date" type="List" /> |
| | | <aura:attribute name="errorMessage" type="String" /> |
| | | <aura:attribute |
| | | name="TableContent" |
| | | type="String" |
| | | description=" Show the Result class" |
| | | /> |
| | | <aura:attribute |
| | | name="TableContent2" |
| | | type="String" |
| | | description=" Show the Result class" |
| | | /> |
| | | <aura:attribute |
| | | name="TargetFileName" |
| | | type="String" |
| | | description="Name of the file" |
| | | /> |
| | | <aura:attribute name="tableheaders" type="Object[]" /> |
| | | <aura:attribute name="fileContentData" type="String" /> |
| | | <aura:attribute name="filename" type="String" /> |
| | | <aura:attribute name="NumOfRecords" type="Integer" default="1000" /> |
| | | <aura:attribute name="showMain" type="Boolean" default="true" /> |
| | | <aura:attribute name="IsEventDefault" type="Boolean" default="true" /> |
| | | <aura:attribute name="login" type="Boolean" default="false" /> |
| | | <aura:attribute name="successMessage" type="String" /> |
| | | <!-- start DTT-zhj 增加错误信息table 2023-05-16--> |
| | | <aura:attribute name="errorData" type="Object" /> |
| | | <aura:attribute name="errorColumns" type="List" /> |
| | | <!-- show Error information --> |
| | | <aura:attribute name="showErrorInfo" type="Boolean" default="false" /> |
| | | <!-- end DTT-zhj 增加错误信息table 2023-05-16--> |
| | | |
| | | <!-- 批量添加周报 end--> |
| | | <aura:renderIf isTrue="{!v.login}"> |
| | | <div class="slds-spinner_container height100vh"> |
| | | <div class="slds-spinner--brand slds-spinner slds-spinner--medium" role="alert"> |
| | | <div |
| | | class="slds-spinner--brand slds-spinner slds-spinner--medium" |
| | | role="alert" |
| | | > |
| | | <span class="slds-assistive-text">Loading</span> |
| | | <div class="slds-spinner__dot-a"></div> |
| | | <div class="slds-spinner__dot-b"></div> |
| | | </div> |
| | | </div> |
| | | </aura:renderIf> |
| | | <!-- 批量添加周报 start--> |
| | | <div class="slds-modal slds-fade-in-open slds-hide" aura:id="errorDiv" style="z-index: 10001"> |
| | | <!-- <ui:inputText aura:id="articleURL" /> --> |
| | | <div class="demo-only" style="height: 8rem;"> |
| | | <div class="slds-notify_container slds-is-relative"> |
| | | <div class="slds-notify slds-notify_toast slds-theme_error" role="status"> |
| | | <div class=" slds-m-left_xx-large"> |
| | | <div |
| | | class="slds-notify__content slds-m-left_small slds-align_absolute-center slds-m-left_xx-large"> |
| | | <lightning:icon alternativeText="error" iconName="utility:error" size="small" |
| | | class="buttonColor slds-m-right_small" /> |
| | | <!-- DB202301262139 SFDC经销商人员导入功能改进 start --> |
| | | <!-- <h2 class="slds-text-heading_small ">{!v.errorMessage}</h2> --> |
| | | <pre class="slds-text-heading_small ">{!v.errorMessage}</pre> |
| | | <!-- DB202301262139 SFDC经销商人员导入功能改进 end --> |
| | | <!-- 批量添加周报 start--> |
| | | <div |
| | | class="slds-modal slds-fade-in-open slds-hide" |
| | | aura:id="errorDiv" |
| | | style="z-index: 10001" |
| | | > |
| | | <ui:inputText aura:id="articleURL" /> |
| | | <div class="demo-only" style="height: 8rem"> |
| | | <div class="slds-notify_container slds-is-relative"> |
| | | <div |
| | | class="slds-notify slds-notify_toast slds-theme_error" |
| | | role="status" |
| | | > |
| | | <div class="slds-m-left_xx-large"> |
| | | <div |
| | | class="slds-notify__content slds-m-left_small slds-align_absolute-center slds-m-left_xx-large" |
| | | > |
| | | <lightning:icon |
| | | alternativeText="error" |
| | | iconName="utility:error" |
| | | size="small" |
| | | class="buttonColor slds-m-right_small" |
| | | /> |
| | | <h2 class="slds-text-heading_small"> |
| | | {!v.errorMessage} |
| | | </h2> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="slds-modal slds-fade-in-open slds-hide" aura:id="successDiv01"> |
| | | <!-- <ui:inputText aura:id="articleURL" /> --> |
| | | <div class="demo-only" style="height: 8rem;"> |
| | | <div class="slds-notify_container slds-is-relative"> |
| | | <div class="slds-notify slds-notify_toast slds-theme_success" role="alert"> |
| | | <div class=" slds-m-left_xx-large"> |
| | | <div |
| | | class="slds-notify__content slds-m-left_small slds-align_absolute-center slds-m-left_xx-large"> |
| | | <lightning:icon alternativeText="Success" iconName="utility:success" size="small" |
| | | class="buttonColor slds-m-right_small" /> |
| | | <h2 class="slds-text-heading_small ">{!v.successMessage}</h2> |
| | | <div class="slds-modal slds-fade-in-open slds-hide" aura:id="successDiv01"> |
| | | <ui:inputText aura:id="articleURL" /> |
| | | <div class="demo-only" style="height: 8rem"> |
| | | <div class="slds-notify_container slds-is-relative"> |
| | | <div |
| | | class="slds-notify slds-notify_toast slds-theme_success" |
| | | role="alert" |
| | | > |
| | | <div class="slds-m-left_xx-large"> |
| | | <div |
| | | class="slds-notify__content slds-m-left_small slds-align_absolute-center slds-m-left_xx-large" |
| | | > |
| | | <lightning:icon |
| | | alternativeText="Success" |
| | | iconName="utility:success" |
| | | size="small" |
| | | class="buttonColor slds-m-right_small" |
| | | /> |
| | | <h2 class="slds-text-heading_small"> |
| | | {!v.successMessage} |
| | | </h2> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div > |
| | | <div class="slds-modal__header "> |
| | | <h4 id="headerTarget" class="slds-float--left"></h4> |
| | | <h2 id="headerTarget" class="slds-text-heading--medium">客户人员批量导入</h2> |
| | | </div> |
| | | <div class="slds-modal__content slds-scrollable slds-grow slds-p-around--medium "> |
| | | <aura:if isTrue="{!v.showMain}"> |
| | | <div> |
| | | <center> |
| | | <lightning:input type="file" class="file" uara:id="file" onchange="{!c.CreateRecord}" /> |
| | | </center> |
| | | </div> |
| | | <aura:set attribute="else"> |
| | | <ui:outputRichText class="uiOutputRichText slds-m--around-large" value="{!v.TableContent}" /> |
| | | <div class="slds-p-around--large slds-align--absolute-center"> |
| | | <lightning:button aura:id="save_con" label="保存" variant="brand" onclick="{!c.processFileContent}" disabled="false" /> |
| | | <lightning:button label="取消" variant="brand" onclick="{!c.cancel}" /> |
| | | <div> |
| | | <div class="slds-modal__header"> |
| | | <h4 id="headerTarget" class="slds-float--left"></h4> |
| | | <h2 id="headerTarget" class="slds-text-heading--medium"> |
| | | 客户人员批量导入 |
| | | </h2> |
| | | </div> |
| | | <div |
| | | class="slds-modal__content slds-scrollable slds-grow slds-p-around--medium" |
| | | > |
| | | <aura:if isTrue="{!v.showMain}"> |
| | | <div> |
| | | <center> |
| | | <lightning:input |
| | | type="file" |
| | | class="file" |
| | | uara:id="file" |
| | | onchange="{!c.CreateRecord}" |
| | | /> |
| | | </center> |
| | | </div> |
| | | |
| | | </aura:set> |
| | | </aura:if> |
| | | <aura:set attribute="else"> |
| | | <ui:outputRichText |
| | | class="uiOutputRichText slds-m--around-large" |
| | | value="{!v.TableContent}" |
| | | /> |
| | | <div |
| | | class="slds-p-around--large slds-align--absolute-center" |
| | | > |
| | | <lightning:button |
| | | label="保存" |
| | | variant="brand" |
| | | onclick="{!c.processFileContent}" |
| | | /> |
| | | <lightning:button |
| | | label="取消" |
| | | variant="brand" |
| | | onclick="{!c.cancel}" |
| | | /> |
| | | </div> |
| | | <aura:if isTrue="{!v.showErrorInfo}"> |
| | | <div |
| | | class="slds-p-around--large slds-align--absolute-center" |
| | | > |
| | | <lightning:button |
| | | label="导出错误信息" |
| | | variant="brand" |
| | | onclick="{!c.exportErrorInfo}" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-p-around--large slds-align--absolute-center" |
| | | > |
| | | <div style="height: 300px; overflow-x: scroll"> |
| | | <lightning:datatable |
| | | keyField="id" |
| | | data="{! v.errorData }" |
| | | columns="{! v.errorColumns }" |
| | | hideCheckboxColumn="true" |
| | | minColumnWidth="120" |
| | | /> |
| | | </div> |
| | | </div> |
| | | </aura:if> |
| | | </aura:set> |
| | | </aura:if> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | <!-- 批量添加周报 end--> |
| | | |
| | | </aura:component> |
| | | <!-- 批量添加周报 end--> |
| | | </aura:component> |
| | |
| | | ({ |
| | | CreateRecord : function(component, event, helper){ |
| | | var files = event.getSource().get("v.files"); |
| | | helper.readFile(component,helper,files[0]); |
| | | CreateRecord: function (component, event, helper) { |
| | | var files = event.getSource().get('v.files'); |
| | | helper.readFile(component, helper, files[0]); |
| | | }, |
| | | processFileContent : function(component,event,helper){ |
| | | helper.saveRecords(component,event,helper); |
| | | processFileContent: function (component, event, helper) { |
| | | component.set('v.showErrorInfo', false); |
| | | helper.saveRecords(component, event, helper); |
| | | }, |
| | | cancel : function(component,event,helper){ |
| | | component.set("v.showMain",true); |
| | | cancel: function (component, event, helper) { |
| | | component.set('v.showMain', true); |
| | | }, |
| | | exportErrorInfo: function (component, event, helper) { |
| | | console.log('enter exportErrorInfo'); |
| | | helper.exportErrorInfoHelper(component); |
| | | } |
| | | }) |
| | | }); |
| | |
| | | ({ |
| | | readFile: function (component, helper, file) { |
| | | debugger |
| | | if (!file) return; |
| | | if (!file.name.match(/\.(csv||CSV)$/)) { |
| | | return alert('only support csv files'); |
| | |
| | | break; // noop |
| | | default: |
| | | alert('An error occurred reading this file.'); |
| | | }; |
| | | } |
| | | } |
| | | }; |
| | | reader.onabort = function (e) { |
| | | alert('File read cancelled'); |
| | | }; |
| | | reader.onloadstart = function (e) { |
| | | var output = '<ui type=\"disc\"><li><strong>' + file.name + '</strong> (' + file.type + ')- ' + file.size + 'bytes, last modified: ' + file.lastModifiedDate.toLocaleDateString() + '</li></ui>'; |
| | | component.set("v.filename", file.name); |
| | | component.set("v.TargetFileName", output); |
| | | var output = |
| | | '<ui type="disc"><li><strong>' + |
| | | file.name + |
| | | '</strong> (' + |
| | | file.type + |
| | | ')- ' + |
| | | file.size + |
| | | 'bytes, last modified: ' + |
| | | file.lastModifiedDate.toLocaleDateString() + |
| | | '</li></ui>'; |
| | | component.set('v.filename', file.name); |
| | | component.set('v.TargetFileName', output); |
| | | }; |
| | | reader.onload = function (e) { |
| | | var data = e.target.result; |
| | | // data.replace(/\n/,"") |
| | | var allTextLines11 = data.split(/\r/); |
| | | var s = allTextLines11.toString(); |
| | | component.set("v.fileContentData", s); |
| | | console.log("file dataqqq" + JSON.stringify(s)); |
| | | component.set('v.fileContentData', s); |
| | | console.log('file dataqqq' + JSON.stringify(s)); |
| | | var allTextLines = data.split(/\r\n|\n/); |
| | | var dataRows = allTextLines.length - 1; |
| | | var headers = allTextLines[0].split(','); |
| | | var numOfRows = component.get("v.NumOfRecords"); |
| | | if (dataRows > numOfRows + 1 || dataRows == 1 || dataRows == 0) { |
| | | alert("File Rows between 1 to " + numOfRows + " ."); |
| | | component.set("v.showMain", true); |
| | | } |
| | | else { |
| | | var numOfRows = component.get('v.NumOfRecords'); |
| | | if ( |
| | | dataRows > numOfRows + 1 || |
| | | dataRows == 1 || |
| | | dataRows == 0 |
| | | ) { |
| | | alert('File Rows between 1 to ' + numOfRows + ' .'); |
| | | component.set('v.showMain', true); |
| | | } else { |
| | | var lines = []; |
| | | var filecontentdata; |
| | | var content = "<table class=\"table slds-table slds-table--bordered slds-table--cell-buffer\">"; |
| | | content += "<thead><tr class=\"slds-text-title--caps\">"; |
| | | content += '<th scope=\"col"\>' + '行号' + '</th>'; |
| | | var content = |
| | | '<table class="table slds-table slds-table--bordered slds-table--cell-buffer">'; |
| | | content += '<thead><tr class="slds-text-title--caps">'; |
| | | content += '<th scope="col">' + '行号' + '</th>'; |
| | | for (i = 0; i < headers.length; i++) { |
| | | content += '<th scope=\"col"\>' + headers[i] + '</th>'; |
| | | content += '<th scope="col">' + headers[i] + '</th>'; |
| | | } |
| | | content += "</tr></thead>"; |
| | | content += '</tr></thead>'; |
| | | for (var i = 1; i < allTextLines.length; i++) { |
| | | filecontentdata = allTextLines[i].split(','); |
| | | if (filecontentdata[0] != '') { |
| | | content += "<tr>"; |
| | | content += "<td>" + i + "</td>"; |
| | | content += '<tr>'; |
| | | content += '<td>' + i + '</td>'; |
| | | for (var j = 0; j < filecontentdata.length; j++) { |
| | | content += '<td>' + filecontentdata[j] + '</td>'; |
| | | content += |
| | | '<td>' + filecontentdata[j] + '</td>'; |
| | | } |
| | | content += "</tr>"; |
| | | content += '</tr>'; |
| | | } |
| | | } |
| | | content += "</table>"; |
| | | content += '</table>'; |
| | | console.log(content); |
| | | component.set("v.TableContent", content); |
| | | component.set("v.showMain", false); |
| | | component.set('v.TableContent', content); |
| | | component.set('v.showMain', false); |
| | | } |
| | | } |
| | | }; |
| | | reader.readAsText(file, 'gb2312'); |
| | | |
| | | } |
| | | var reader = new FileReader(); |
| | | reader.onloadend = function () { |
| | | }; |
| | | reader.onloadend = function () {}; |
| | | reader.readAsDataURL(file); |
| | | }, |
| | | saveRecords: function (component, event, helper) { |
| | | debugger |
| | | component.set('v.login', true); |
| | | var action = component.get("c.processData"); |
| | | var action = component.get('c.processData'); |
| | | var fieldsList = ['Name', 'Phone', 'AccountNumber']; //Please write your code dynamic fields |
| | | action.setParams({ |
| | | fileData: component.get("v.fileContentData"), |
| | | fileData: component.get('v.fileContentData'), |
| | | sobjectName: 'Account', //Any object |
| | | fields: fieldsList |
| | | }); |
| | | action.setCallback(this, function (response) { |
| | | var state = response.getState(); |
| | | if (state === "SUCCESS") { |
| | | if (state === 'SUCCESS') { |
| | | var res = response.getReturnValue(); |
| | | var res1 = ''; |
| | | debugger; |
| | | if (res != 'success') { |
| | | var ress = res.split('='); |
| | | console.log(ress); |
| | | let errorDatas = []; |
| | | let errorDataRow = []; |
| | | debugger; |
| | | for (var i = 0; i < ress.length; i++) { |
| | | res1 += ress[i].substr(7) + '\n'; |
| | | if (ress[i] != '') { |
| | | let errorData = {}; |
| | | let index = errorDataRow.indexOf( |
| | | ress[i].substr(7).substring(1, 2) |
| | | ); |
| | | if (index == -1) { |
| | | errorData.errorRow = ress[i] |
| | | .substr(7) |
| | | .substring(1, 2); |
| | | errorDataRow.push(errorData.errorRow); |
| | | errorData.errorInfo = ress[i] |
| | | .substr(7) |
| | | .substring(6); |
| | | errorDatas.push(errorData); |
| | | } else { |
| | | errorDatas[index].errorInfo += |
| | | '; ' + ress[i].substr(7).substring(6); |
| | | } |
| | | } |
| | | } |
| | | console.log("==" + res1); |
| | | var fileContentData = component |
| | | .get('v.fileContentData') |
| | | .split('\n'); |
| | | let errorColumns = [ |
| | | { |
| | | label: '错误行', |
| | | fieldName: 'errorRow', |
| | | type: 'text', |
| | | hideDefaultActions: true, |
| | | initialWidth: 50 |
| | | }, |
| | | { |
| | | label: '错误信息', |
| | | fieldName: 'errorInfo', |
| | | type: 'text', |
| | | hideDefaultActions: true, |
| | | initialWidth: 300, |
| | | wrapText: true |
| | | } |
| | | ]; |
| | | for ( |
| | | var i = 0; |
| | | i < fileContentData[0].split(',').length - 1; |
| | | i++ |
| | | ) { |
| | | errorColumns.push({ |
| | | label: fileContentData[0].split(',')[i], |
| | | fieldName: 'field' + i, |
| | | type: 'text', |
| | | hideDefaultActions: true, |
| | | wrapText: true |
| | | }); |
| | | } |
| | | |
| | | for (var i = 0; i < errorDatas.length; i++) { |
| | | let data = fileContentData[errorDatas[i].errorRow]; |
| | | console.log('data = ' + JSON.stringify(data)); |
| | | for (var j = 0; j < data.split(',').length; j++) { |
| | | let label = 'field' + j; |
| | | errorDatas[i][label] = data.split(',')[j]; |
| | | } |
| | | } |
| | | console.log('errorDatas = ' + JSON.stringify(errorDatas)); |
| | | |
| | | component.set('v.errorColumns', errorColumns); |
| | | component.set('v.errorData', errorDatas); |
| | | component.set('v.showErrorInfo', true); |
| | | |
| | | console.log('==' + res1); |
| | | // this.error( "请修改后重新上传"); |
| | | component.set('v.errorMessage', res1 + "请修改后重新上传"); |
| | | component.set('v.errorMessage', res1 + '请修改后重新上传'); |
| | | this.showErrorToast(component); |
| | | component.set('v.login', false); |
| | | component.find('save_con').set('v.disabled', true); |
| | | } else { |
| | | // this.success('导入成功'); |
| | | component.set('v.successMessage', '导入成功'); |
| | | this.showSuccessToast01(component); |
| | | component.set("v.showMain", true); |
| | | component.set('v.showMain', true); |
| | | component.set('v.login', false); |
| | | component.find('save_con').set('v.disabled', false); |
| | | } |
| | | } |
| | | else if (state === "INCOMPLETE") { |
| | | } else if (state === 'INCOMPLETE') { |
| | | component.set('v.login', false); |
| | | } |
| | | else if (state === "ERROR") { |
| | | } else if (state === 'ERROR') { |
| | | var errors = response.getError(); |
| | | if (errors) { |
| | | if (errors[0] && errors[0].message) { |
| | | console.log("Error message: " + |
| | | errors[0].message); |
| | | console.log('Error message: ' + errors[0].message); |
| | | let errorDatas = [ |
| | | { |
| | | errorRow: '1', |
| | | errorInfo: errors[0].message |
| | | } |
| | | ]; |
| | | let errorColumns = [ |
| | | { |
| | | label: '错误行', |
| | | fieldName: 'errorRow', |
| | | type: 'text', |
| | | hideDefaultActions: true, |
| | | initialWidth: 50 |
| | | }, |
| | | { |
| | | label: '错误信息', |
| | | fieldName: 'errorInfo', |
| | | type: 'text', |
| | | hideDefaultActions: true, |
| | | initialWidth: 300, |
| | | wrapText: true |
| | | } |
| | | ]; |
| | | component.set('v.errorData', errorDatas); |
| | | component.set('v.errorColumns', errorColumns); |
| | | component.set('v.showErrorInfo', true); |
| | | component.set('v.login', false); |
| | | } |
| | | } else { |
| | | console.log("Unknown error"); |
| | | console.log('Unknown error'); |
| | | component.set('v.login', false); |
| | | } |
| | | } |
| | | }); |
| | | $A.enqueueAction(action); |
| | | |
| | | }, |
| | | //弹出 成功提示 |
| | | showSuccessToast01: function (component) { |
| | | $A.util.removeClass(component.find('successDiv01'), 'slds-hide'); |
| | | window.setTimeout($A.getCallback(function () { |
| | | $A.util.addClass(component.find('successDiv01'), 'slds-hide'); |
| | | }), |
| | | window.setTimeout( |
| | | $A.getCallback(function () { |
| | | $A.util.addClass(component.find('successDiv01'), 'slds-hide'); |
| | | }), |
| | | 3000 |
| | | ); |
| | | }, |
| | | //弹出 错误提示 |
| | | showErrorToast: function (component) { |
| | | $A.util.removeClass(component.find('errorDiv'), 'slds-hide'); |
| | | window.setTimeout($A.getCallback(function () { |
| | | $A.util.addClass(component.find('errorDiv'), 'slds-hide'); |
| | | }), |
| | | 7000 |
| | | window.setTimeout( |
| | | $A.getCallback(function () { |
| | | $A.util.addClass(component.find('errorDiv'), 'slds-hide'); |
| | | }), |
| | | 4000 |
| | | ); |
| | | }, |
| | | success : function(message) { |
| | | var toastEvent = $A.get("e.force:showToast"); |
| | | success: function (message) { |
| | | var toastEvent = $A.get('e.force:showToast'); |
| | | toastEvent.setParams({ |
| | | "title" : "成功!", |
| | | "message" : message, |
| | | "duration" : "5000" |
| | | title: '成功!', |
| | | message: message, |
| | | duration: '5000' |
| | | }); |
| | | toastEvent.fire(); |
| | | }, |
| | | |
| | | warning : function(message) { |
| | | var toastEvent = $A.get("e.force:showToast"); |
| | | |
| | | warning: function (message) { |
| | | var toastEvent = $A.get('e.force:showToast'); |
| | | toastEvent.setParams({ |
| | | "title": "警告!", |
| | | "message": message, |
| | | "duration" : "10000" |
| | | title: '警告!', |
| | | message: message, |
| | | duration: '10000' |
| | | }); |
| | | toastEvent.fire(); |
| | | }, |
| | | |
| | | error : function(message) { |
| | | var toastEvent = $A.get("e.force:showToast"); |
| | | |
| | | error: function (message) { |
| | | var toastEvent = $A.get('e.force:showToast'); |
| | | toastEvent.setParams({ |
| | | "title": "错误!", |
| | | "message": message, |
| | | "duration" : "sticky" |
| | | title: '错误!', |
| | | message: message, |
| | | duration: 'sticky' |
| | | }); |
| | | toastEvent.fire(); |
| | | }, |
| | | }) |
| | | //zhj 导出错误信息 2023-05-16 start |
| | | exportErrorInfoHelper: function (component) { |
| | | var errorData = component.get('v.errorData'); |
| | | var errorColumns = component.get('v.errorColumns'); |
| | | |
| | | var datas = []; |
| | | let errorColumnsArray = []; |
| | | for (var i in errorColumns) { |
| | | errorColumnsArray.push(errorColumns[i].label); |
| | | } |
| | | datas.push(errorColumnsArray); |
| | | //datas.push(errorColumns); |
| | | |
| | | for (var i in errorData) { |
| | | let data = []; |
| | | data.push(errorData[i].errorRow); |
| | | data.push(errorData[i].errorInfo); |
| | | for (var j = 0; j < Object.keys(errorData[i]).length - 2; j++) { |
| | | data.push(errorData[i]['field' + j]); |
| | | } |
| | | datas.push(data); |
| | | } |
| | | |
| | | console.log('datas = ' + JSON.stringify(datas)); |
| | | var csv = this.convertToCSV(component, datas); |
| | | console.log('csv = ' + JSON.stringify(csv)); |
| | | this.downloadCSV(component, csv); |
| | | }, |
| | | |
| | | convertToCSV: function (component, data) { |
| | | console.log('enter convertToCSV'); |
| | | console.log('data = ' + data); |
| | | var csv = ''; |
| | | for (var i = 0; i < data.length; i++) { |
| | | var row = data[i]; |
| | | console.log('row = ' + JSON.stringify(row)); |
| | | for (var j = 0; j < row.length; j++) { |
| | | var val = ''; |
| | | val = row[j] === null ? '' : row[j].toString(); |
| | | console.log('val = ' + val); |
| | | if ( |
| | | val.indexOf(',') !== -1 || |
| | | val.indexOf('"') !== -1 || |
| | | val.indexOf('\n') !== -1 |
| | | ) { |
| | | //val = '"' + val.replace(/"/g,'""') + '"'; |
| | | } |
| | | if (j > 0) { |
| | | csv += ','; |
| | | } |
| | | csv += val; |
| | | } |
| | | csv += '\n'; |
| | | } |
| | | return csv; |
| | | }, |
| | | |
| | | downloadCSV: function (component, csv) { |
| | | var link = document.createElement('a'); |
| | | // 设置字符集和文件头 |
| | | let bom = '\uFEFF'; |
| | | link.href = |
| | | 'data:text/csv;charset=utf-8,' + encodeURIComponent(bom + csv); |
| | | link.download = 'data.csv'; |
| | | document.body.appendChild(link); |
| | | link.click(); |
| | | document.body.removeChild(link); |
| | | } |
| | | //zhj 导出错误信息 2023-05-16 end |
| | | }); |
| New file |
| | |
| | | <aura:documentation> |
| | | <aura:description>Documentation</aura:description> |
| | | <aura:example name="ExampleName" ref="exampleComponentName" label="Label"> |
| | | Example Description |
| | | </aura:example> |
| | | </aura:documentation> |
| New file |
| | |
| | | <aura:component |
| | | implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,forceCommunity:availableForAllPageTypes,force:lightningQuickActionWithoutHeader,lightning:actionOverride" |
| | | access="global" |
| | | > |
| | | |
| | | <aura:html tag="style"> |
| | | .slds-modal__container{ max-width: 65rem !important; |
| | | width:100% !important; } .cuf-content { |
| | | padding: 0 0rem !important; } .slds-p-around--medium { |
| | | padding: 0rem !important; } .slds-modal__content{ |
| | | overflow-y:auto !important; height:unset !important; |
| | | max-height:unset !important; min-height:8rem; } |
| | | .slds-tile_board{ padding:20px 40px; } |
| | | </aura:html> |
| | | |
| | | <c:lexNewAndEditContactPIPL |
| | | onclose="{!c.closeModal}" |
| | | onrefresh="{!c.refreshView}" |
| | | recordId="{!v.recordId}" |
| | | /> |
| | | </aura:component> |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8" ?> |
| | | <AuraDefinitionBundle xmlns="http://soap.sforce.com/2006/04/metadata"> |
| | | <apiVersion>57.0</apiVersion> |
| | | <description>A Lightning Component Bundle</description> |
| | | </AuraDefinitionBundle> |
| New file |
| | |
| | | <design:component > |
| | | |
| | | </design:component> |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8" standalone="no" ?> |
| | | <svg width="120px" height="120px" viewBox="0 0 120 120" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> |
| | | <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> |
| | | <path d="M120,108 C120,114.6 114.6,120 108,120 L12,120 C5.4,120 0,114.6 0,108 L0,12 C0,5.4 5.4,0 12,0 L108,0 C114.6,0 120,5.4 120,12 L120,108 L120,108 Z" id="Shape" fill="#2A739E" /> |
| | | <path d="M77.7383308,20 L61.1640113,20 L44.7300055,63.2000173 L56.0543288,63.2000173 L40,99.623291 L72.7458388,54.5871812 L60.907727,54.5871812 L77.7383308,20 Z" id="Path-1" fill="#FFFFFF" /> |
| | | </g> |
| | | </svg> |
| New file |
| | |
| | | ({ |
| | | closeModal: function (cmp, event, helper) { |
| | | $A.get('e.force:closeQuickAction').fire(); |
| | | }, |
| | | |
| | | refreshView: function (cmp, event, helper) { |
| | | $A.get('e.force:refreshView').fire(); |
| | | } |
| | | }); |
| New file |
| | |
| | | ({ |
| | | helperMethod: function () {} |
| | | }); |
| New file |
| | |
| | | ({ |
| | | // Your renderer method overrides go here |
| | | }); |
| New file |
| | |
| | | <aura:documentation> |
| | | <aura:description>Documentation</aura:description> |
| | | <aura:example name="ExampleName" ref="exampleComponentName" label="Label"> |
| | | Example Description |
| | | </aura:example> |
| | | </aura:documentation> |
| New file |
| | |
| | | <!-- |
| | | @description : |
| | | @author : ChangeMeIn@UserSettingsUnder.SFDoc |
| | | @group : |
| | | @last modified on : 07-08-2022 |
| | | @last modified by : ChangeMeIn@UserSettingsUnder.SFDoc |
| | | --> |
| | | <aura:component |
| | | implements="force:lightningQuickActionWithoutHeader,force:hasRecordId,lightning:actionOverride,lightning:isUrlAddressable" |
| | | access="global" |
| | | controller="NewAgencyOpportunityController" |
| | | > |
| | | <aura:attribute name="recordId" type="Id" default="" /> |
| | | <aura:attribute name="recordTypeId" type="Id" default="" /> |
| | | <aura:attribute name="ac_name" type="string" /> |
| | | <aura:attribute name="title" type="string" /> |
| | | <aura:handler name="init" value="{!this}" action="{!c.doInit}" /> |
| | | <aura:attribute name="layout" type="LayoutDescriberHelper.LayoutWrapper" /> |
| | | <aura:attribute name="record_data" type="Map" /> |
| | | <aura:attribute name="section_names" type="List" /> |
| | | <aura:attribute name="showSpinner" type="Boolean" default="False" /> |
| | | <aura:attribute name="showSpinner2" type="Boolean" default="False" /> |
| | | <aura:attribute name="staticResource" type="Map" /> |
| | | <aura:attribute name="pi_fields_map" type="Map" /> |
| | | <aura:attribute name="isClone" type="Boolean" default="False" /> |
| | | <ltng:require scripts="{! $Resource.AWSService+'/AWSService.js' }" /> |
| | | <ltng:require scripts="{! $Resource.jquery183minjs }" /> |
| | | <aura:attribute name="isModalOpen" type="boolean" default="false" /> |
| | | <aura:attribute name="searchKeyWord" type="string" default="" /> |
| | | <aura:attribute name="contactAWSIds" type="List" /> |
| | | <aura:attribute name="login" type="Boolean" default="false" /> |
| | | <aura:attribute name="show" type="Boolean" default="false" /> |
| | | <aura:attribute |
| | | name="showNewAgencyContact" |
| | | type="Boolean" |
| | | default="false" |
| | | /> |
| | | <aura:handler |
| | | name="NewAgencyContactEvent" |
| | | event="c:NewAgencyContactEvent" |
| | | action="{!c.closeAgencyContact}" |
| | | /> |
| | | |
| | | <div class="{! v.container_class}"> |
| | | <!-- header --> |
| | | <header class="slds-modal__header"> |
| | | <h2 id="modal-heading-01" class="slds-modal__title slds-hyphenate"> |
| | | {!v.title} |
| | | </h2> |
| | | </header> |
| | | |
| | | <div class="slds-modal__content slds-p-around_medium"> |
| | | <aura:if isTrue="{!v.showSpinner}"> |
| | | <lightning:spinner alternativeText="Loading" size="medium" /> |
| | | </aura:if> |
| | | <lightning:recordEditForm objectApiName="Agency_Opportunity__c"> |
| | | <lightning:accordion |
| | | activeSectionName="{! v.section_names }" |
| | | allowMultipleSectionsOpen="true" |
| | | class="greyyyy" |
| | | > |
| | | <aura:iteration items="{!v.layout}" var="section"> |
| | | <aura:if isTrue="{! section.editHeading }"> |
| | | <lightning:accordionSection |
| | | name="{! section.label }" |
| | | label="经销商询价信息" |
| | | > |
| | | <aura:iteration |
| | | items="{! section.layoutColumns}" |
| | | var="col" |
| | | > |
| | | <aura:iteration |
| | | items="{! col.layoutItems}" |
| | | var="field" |
| | | > |
| | | <aura:if |
| | | isTrue="{!and(field.behavior != 'Readonly', field.field != 'Agency_Contact__c')}" |
| | | > |
| | | <lightning:inputField |
| | | required="{! field.behavior == 'Required' }" |
| | | aura:id="field" |
| | | fieldName="{! field.field}" |
| | | value="{! field.value}" |
| | | /> |
| | | </aura:if> |
| | | <aura:if |
| | | isTrue="{!field.field == 'Agency_Contact__c' }" |
| | | > |
| | | <lightning:layout> |
| | | <lightning:layoutItem size="12"> |
| | | <lightning:input |
| | | required="{! field.behavior == 'Required' }" |
| | | label="客户人员" |
| | | value="{! field.value}" |
| | | variant="label-inline" |
| | | style=" |
| | | margin-left: 0cm; |
| | | display: none; |
| | | " |
| | | onclick="{! c.openModel }" |
| | | /> |
| | | <lightning:input |
| | | required="{! field.behavior == 'Required' }" |
| | | label="客户人员" |
| | | value="{! v.ac_name}" |
| | | variant="label-inline" |
| | | style="margin-left: 0cm" |
| | | onclick="{! c.openModel }" |
| | | /> |
| | | </lightning:layoutItem> |
| | | </lightning:layout> |
| | | </aura:if> |
| | | </aura:iteration> |
| | | </aura:iteration> |
| | | </lightning:accordionSection> |
| | | </aura:if> |
| | | </aura:iteration> |
| | | </lightning:accordion> |
| | | </lightning:recordEditForm> |
| | | |
| | | <div style="text-align: center; margin: 5px"> |
| | | <lightning:button |
| | | class="slds-button slds-button_neutral" |
| | | label="取消" |
| | | onclick="{! c.cancelClick }" |
| | | /> |
| | | <lightning:button |
| | | class="slds-button slds-button_brand" |
| | | variant="brand" |
| | | label="保存" |
| | | onclick="{! c.saveClick }" |
| | | /> |
| | | </div> |
| | | </div> |
| | | <aura:if isTrue="{!v.isModalOpen}"> |
| | | <!-- Modal/Popup Box starts here--> |
| | | <section |
| | | role="dialog" |
| | | tabindex="-1" |
| | | aria-labelledby="modal-heading-01" |
| | | aria-modal="true" |
| | | aria-describedby="modal-content-id-1" |
| | | class="slds-modal slds-fade-in-open" |
| | | > |
| | | <aura:renderIf isTrue="{!v.login}"> |
| | | <div class="slds-spinner_container height100vh"> |
| | | <div |
| | | class="slds-spinner--brand slds-spinner slds-spinner--medium" |
| | | role="alert" |
| | | > |
| | | <span id="aa" class="slds-assistive-text" |
| | | >Loading</span |
| | | > |
| | | <div class="slds-spinner__dot-a"></div> |
| | | <div class="slds-spinner__dot-b"></div> |
| | | </div> |
| | | </div> |
| | | </aura:renderIf> |
| | | |
| | | <div class="slds-modal__container"> |
| | | <!-- Modal/Popup Box Header Starts here--> |
| | | <header class="slds-modal__header"> |
| | | <lightning:buttonIcon |
| | | iconName="utility:close" |
| | | onclick="{! c.closeModel }" |
| | | alternativeText="close" |
| | | variant="bare-inverse" |
| | | class="slds-modal__close" |
| | | /> |
| | | <h2 |
| | | id="modal-heading-01" |
| | | class="slds-text-heading_medium slds-hyphenate" |
| | | > |
| | | 搜索客户人员 |
| | | </h2> |
| | | </header> |
| | | |
| | | <!--Modal Body Start here--> |
| | | <div |
| | | class="slds-modal__content slds-p-around_medium modal-body" |
| | | id="modal-content-id-1" |
| | | > |
| | | <lightning:layout> |
| | | <lightning:layoutItem size="7"> |
| | | <ui:inputText |
| | | label="请输入客户姓名" |
| | | class="field" |
| | | value="{!v.searchKeyWord}" |
| | | /> |
| | | </lightning:layoutItem> |
| | | <lightning:layoutItem size="2" class="searchButton"> |
| | | <ui:button |
| | | aura:id="button" |
| | | buttonTitle="Click to see agency contact" |
| | | class="button" |
| | | label="搜索" |
| | | press="{!c.searchAgencyContact}" |
| | | disabled="false" |
| | | /> |
| | | </lightning:layoutItem> |
| | | <lightning:layoutItem size="3" class="searchButton"> |
| | | <ui:button |
| | | aura:id="newAgencyContact" |
| | | buttonTitle="Click to see agency contact" |
| | | class="newAgencyContact" |
| | | label="新建.客户人员" |
| | | disabled="false" |
| | | press="{!c.showNewAgency}" |
| | | /> |
| | | </lightning:layoutItem> |
| | | </lightning:layout> |
| | | <div id="QueryResult" style="margin-top: 20px"></div> |
| | | </div> |
| | | |
| | | <aura:if isTrue="{!v.showNewAgencyContact}"> |
| | | <section |
| | | role="dialog" |
| | | tabindex="-1" |
| | | aria-modal="true" |
| | | aria-labelledby="modal-heading-01" |
| | | class="slds-modal slds-fade-in-open" |
| | | aura:id="NewAgencyContact" |
| | | id="NewAgencyContact" |
| | | > |
| | | <c:NewAgencyContact2 /> |
| | | </section> |
| | | </aura:if> |
| | | </div> |
| | | </section> |
| | | <div class="slds-backdrop slds-backdrop_open"></div> |
| | | </aura:if> |
| | | </div> |
| | | </aura:component> |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8" ?> |
| | | <AuraDefinitionBundle xmlns="http://soap.sforce.com/2006/04/metadata"> |
| | | <apiVersion>54.0</apiVersion> |
| | | <description>A Lightning Component Bundle</description> |
| | | </AuraDefinitionBundle> |
| New file |
| | |
| | | .THIS { |
| | | } |
| | | |
| | | .THIS .name { |
| | | margin-right: 0.5cm; |
| | | } |
| | | |
| | | .THIS .wh { |
| | | width: 670px; |
| | | height: 500px; |
| | | } |
| | | |
| | | .THIS .slds-modal__container { |
| | | max-width: 70rem !important; |
| | | width: 90% !important; |
| | | } |
| | | |
| | | .THIS .modal-body { |
| | | height: 500px !important; |
| | | max-height: 500px !important; |
| | | } |
| | | |
| | | .THIS table { |
| | | border-collapse: collapse; |
| | | border-spacing: 0; |
| | | width: 98%; |
| | | margin-left: 5px; |
| | | /* border: 1px solid #000000; */ |
| | | text-align: center; |
| | | } |
| | | .THIS tr { |
| | | /* border: 1px solid #000000; */ |
| | | text-align: center; |
| | | } |
| | | .THIS td { |
| | | /* border: 1px solid #000000; */ |
| | | text-align: center; |
| | | } |
| | | |
| | | .THIS th { |
| | | /* border: 1px solid #000000; */ |
| | | text-align: center; |
| | | } |
| | | |
| | | .THIS.backgroundInverse { |
| | | position: relative; |
| | | background-color: #16325c; |
| | | height: 80px; |
| | | } |
| | | |
| | | .THIS.exampleHolder { |
| | | position: relative; |
| | | display: inline-block; |
| | | margin-left: 15px; |
| | | width: 55px; |
| | | vertical-align: middle; |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | .THIS .searchButton { |
| | | margin-top: 20px; |
| | | margin-left: 20px; |
| | | } |
| | | |
| | | .THIS .slds-spinner_container { |
| | | position: revert; |
| | | } |
| New file |
| | |
| | | ({ |
| | | doInit: function (component, event, helper) { |
| | | let rid = component.get('v.recordId'); |
| | | let pid = null; |
| | | if (!rid) { |
| | | pid = window.location.href.replace('https://', '').split('/')[4]; |
| | | } |
| | | |
| | | let record_type_id = ''; |
| | | let pageref = component.get('v.pageReference'); |
| | | if (!record_type_id && pageref) { |
| | | record_type_id = pageref.state.recordTypeId |
| | | ? pageref.state.recordTypeId |
| | | : ''; |
| | | } |
| | | |
| | | let isClone = component.get('v.isClone'); |
| | | if (!rid || isClone) { |
| | | component.set('v.title', $A.get('$Label.c.New') + '经销商询价'); |
| | | component.set('v.recordTypeId', record_type_id); |
| | | } else { |
| | | component.set('v.title', $A.get('$Label.c.Edit') + '经销商询价'); |
| | | } |
| | | console.log('rid: ' + rid); |
| | | console.log('pid: ' + pid); |
| | | console.log('record_type_id: ' + record_type_id); |
| | | component.set('v.showSpinner', true); |
| | | helper.CallBackAction( |
| | | component, |
| | | 'Init', |
| | | { |
| | | rid: rid, |
| | | pid: pid, |
| | | //rid : component.get('v.recordId'), |
| | | record_type_id: record_type_id |
| | | }, |
| | | function (data) { |
| | | console.log('data: ' + data); |
| | | var rv = data.getReturnValue(); |
| | | console.log('rv:' + rv); |
| | | console.log('rv.Data:' + rv.Data); |
| | | console.log('rv.IsSuccess:' + rv.IsSuccess); |
| | | if (data.getState() == 'SUCCESS') { |
| | | if (rv.IsSuccess) { |
| | | debugger; |
| | | let layout = JSON.parse(rv.Data.layout); |
| | | debugger; |
| | | let fields = rv.Data.fields; |
| | | debugger; |
| | | let staticResource = JSON.parse(rv.Data.staticResource); |
| | | debugger; |
| | | let section_names = layout.map((s) => s.label); |
| | | debugger; |
| | | // let awsData = rv.Data.awsDataIds; |
| | | // section_names = layout.map(s=>s.label); |
| | | component.set('v.section_names', section_names); |
| | | component.set('v.layout', layout); |
| | | component.set('v.fields', fields); |
| | | component.set('v.staticResource', staticResource); |
| | | debugger; |
| | | let m = {}; |
| | | for (let f of staticResource.PIDetails) { |
| | | m[f.SF_Field_API_Name__c] = f; |
| | | } |
| | | component.set('v.pi_fields_map', m); |
| | | if (rv.Data && rv.Data.data) { |
| | | debugger; |
| | | console.log('rv.Data.data = ' + rv.Data.data); |
| | | for (let s of layout) { |
| | | for (let c of s.layoutColumns) { |
| | | for (let item of c.layoutItems) { |
| | | if ( |
| | | rv.Data.data.hasOwnProperty( |
| | | item.field |
| | | ) |
| | | ) { |
| | | item.value = |
| | | rv.Data.data[item.field]; |
| | | } |
| | | if (fields.hasOwnProperty(item.field)) { |
| | | item.fi = fields[item.field]; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | // component.set('v.layout',layout); |
| | | component.set('v.record_data', rv.Data.data); |
| | | if (rv.Data.data.Agency_Contact__r) { |
| | | if ( |
| | | rv.Data.data.Agency_Contact__r |
| | | .AWS_Data_Id__c |
| | | ) { |
| | | helper.AwsGet( |
| | | staticResource.queryUrl, |
| | | { |
| | | dataId: rv.Data.data |
| | | .Agency_Contact__r |
| | | .AWS_Data_Id__c |
| | | }, |
| | | function (data) { |
| | | console.log('data = ' + data); |
| | | if (data.object) { |
| | | component.set( |
| | | 'v.ac_name', |
| | | data.object.name |
| | | ); |
| | | } |
| | | }, |
| | | staticResource.token |
| | | ); |
| | | } |
| | | } |
| | | // }, staticResource.token); |
| | | } else { |
| | | debugger; |
| | | console.log('rv.Data.data = ' + rv.Data.data); |
| | | console.log('layout = ' + layout); |
| | | for (let s of layout) { |
| | | for (let c of s.layoutColumns) { |
| | | for (let item of c.layoutItems) { |
| | | if ( |
| | | rv.Data && |
| | | fields.hasOwnProperty(item.field) && |
| | | fields[item.field].References && |
| | | fields[item.field].References.map( |
| | | (m) => m.value |
| | | ).indexOf(rv.Data.pidType) > -1 |
| | | ) { |
| | | item.value = pid; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | debugger; |
| | | // component.set('v.layout',layout); |
| | | } |
| | | // component.set('v.fields',fields); |
| | | // component.set('v.staticResource',staticResource); |
| | | component.set('v.showSpinner', false); |
| | | } else { |
| | | component.set('v.showSpinner', false); |
| | | helper.ShowToast({ |
| | | message: rv.Message, |
| | | type: 'error' |
| | | }); |
| | | } |
| | | } else { |
| | | component.set('v.showSpinner', false); |
| | | helper.ShowToast({ |
| | | message: 'Init error', |
| | | type: 'error' |
| | | }); |
| | | } |
| | | } |
| | | ); |
| | | }, |
| | | saveClick: function (component, event, helper) { |
| | | let staticResource = component.get('v.staticResource'); |
| | | let record_id = component.get('v.recordId'); |
| | | let record_type_id = component.get('v.recordTypeId'); |
| | | |
| | | let isClone = component.get('v.isClone'); |
| | | let url = staticResource.newUrl; |
| | | let payloadPi = {}; |
| | | if (record_id && !isClone) { |
| | | url = staticResource.updateUrl; |
| | | payloadPi['dataId'] = component.get('v.record_data').AWS_Data_Id__c; |
| | | } |
| | | let layout = component.get('v.layout'); |
| | | |
| | | let pi_fields_map = component.get('v.pi_fields_map'); |
| | | |
| | | for (let s of layout) { |
| | | for (let c of s.layoutColumns) { |
| | | for (let item of c.layoutItems) { |
| | | if (pi_fields_map.hasOwnProperty(item.field)) { |
| | | payloadPi[pi_fields_map[item.field].AWS_Field_API__c] = |
| | | item.value; |
| | | } |
| | | |
| | | if (item.behavior == 'Required' && !item.value) { |
| | | let fs = component.find('field'); |
| | | for (let fi in fs) { |
| | | let f = fs[fi]; |
| | | if (!f.get('v.value')) { |
| | | f.reset(); |
| | | } |
| | | } |
| | | return; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | component.set('v.showSpinner', true); |
| | | debugger; |
| | | let data = {}; |
| | | if (record_id && !isClone) { |
| | | data.Id = record_id; |
| | | } |
| | | for (let s of layout) { |
| | | for (let c of s.layoutColumns) { |
| | | for (let item of c.layoutItems) { |
| | | if (item.field && item.behavior != 'Readonly') { |
| | | data[item.field] = item.value; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | let x = 1; |
| | | helper.CallBackAction( |
| | | component, |
| | | 'Save', |
| | | { |
| | | data: data, |
| | | transId: '1', |
| | | recordTypeId: record_type_id |
| | | }, |
| | | function (data) { |
| | | component.set('v.showSpinner', false); |
| | | if (data.getState() == 'SUCCESS') { |
| | | var rv = data.getReturnValue(); |
| | | console.log(rv); |
| | | var sfId = null; |
| | | if (rv.IsSuccess) { |
| | | sfId = rv.Data.recordId; |
| | | helper.ShowToast({ |
| | | message: '成功', |
| | | type: 'success' |
| | | }); |
| | | if (record_id) { |
| | | $A.get('e.force:closeQuickAction').fire(); |
| | | $A.get('e.force:refreshView').fire(); |
| | | } else { |
| | | var sObjectEvent = $A.get( |
| | | 'e.force:navigateToSObject' |
| | | ); |
| | | sObjectEvent.setParams({ |
| | | recordId: sfId |
| | | }); |
| | | sObjectEvent.fire(); |
| | | } |
| | | } else { |
| | | helper.ShowToast({ |
| | | message: rv.Message, |
| | | type: 'error' |
| | | }); |
| | | } |
| | | } else { |
| | | helper.ShowToast({ |
| | | message: 'Init error', |
| | | type: 'error' |
| | | }); |
| | | } |
| | | } |
| | | ); |
| | | }, |
| | | cancelClick: function (component, event, helper) { |
| | | $A.get('e.force:closeQuickAction').fire(); |
| | | //component.set("v.showNewAgencyContact", false); |
| | | }, |
| | | searchAgencyContact: function (component, event, helper) { |
| | | component.find('button').set('v.disabled', true); |
| | | helper.resetTable(); |
| | | helper.preparePayloadForSearchAgencyContact(component, event, helper); |
| | | }, |
| | | initContactTable: function (component, event, helper) { |
| | | let cols = ['Name', 'AgencyHospital', 'DoctorDivision1', 'Type']; |
| | | let contactInfoList = []; |
| | | let awsDataIds = []; |
| | | let data = component.get('v.result'); |
| | | if (data.object) { |
| | | for (var i = 0; i < data.object.length; i++) { |
| | | if (data.object[i].dataId) { |
| | | let contactInfo = new Object(); |
| | | //需要修改 |
| | | contactInfo.Name = data.object[i].name; |
| | | contactInfo.DoctorDivision1 = |
| | | data.object[i].doctorDivision1; |
| | | contactInfo.AWSDataId = data.object[i].dataId; |
| | | contactInfo.Type = data.object[i].type; |
| | | contactInfo.pi = true; |
| | | awsDataIds.push(contactInfo.AWSDataId); |
| | | contactInfo.sfRecordId = ''; |
| | | contactInfoList.push(contactInfo); |
| | | } |
| | | } |
| | | } |
| | | let AWSIdToSFIdMapValue = {}; |
| | | }, |
| | | openModel: function (component, event, helper) { |
| | | let layout = component.get('v.layout'); |
| | | for (let s of layout) { |
| | | for (let c of s.layoutColumns) { |
| | | for (let item of c.layoutItems) { |
| | | if (item.field == 'Agency_Hospital__c' && !item.value) { |
| | | console.log('item.value = ' + item.value); |
| | | helper.ShowToast({ |
| | | message: '请先选择经销商医院', |
| | | type: 'warning' |
| | | }); |
| | | return; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | // Set isModalOpen true |
| | | component.set('v.isModalOpen', true); |
| | | component.find('button').set('v.disabled', true); |
| | | helper.preparePayloadForSearchAgencyContact(component, event, helper); |
| | | }, |
| | | |
| | | closeModel: function (component, event, helper) { |
| | | // Set isModalOpen false |
| | | component.set('v.isModalOpen', false); |
| | | }, |
| | | |
| | | saveDetails: function (component, event, helper) { |
| | | //do something |
| | | component.set('v.isModalOpen', false); |
| | | }, |
| | | |
| | | showNewAgency: function (component, event, helper) { |
| | | //do something |
| | | component.set('v.showNewAgencyContact', true); |
| | | }, |
| | | closeAgencyContact: function (component, event, helper) { |
| | | var message = event.getParam('showNewAgencyContact'); |
| | | component.set('v.showNewAgencyContact', message); |
| | | component.find('button').set('v.disabled', true); |
| | | helper.resetTable(); |
| | | helper.preparePayloadForSearchAgencyContact(component, event, helper); |
| | | } |
| | | }); |
| New file |
| | |
| | | ({ |
| | | CallBackAction: function (component, action_name, para, callback) { |
| | | var action = component.get( |
| | | 'c.' + action_name.trimStart().replace('c.', '') |
| | | ); |
| | | if (para) { |
| | | action.setParams(para); |
| | | } |
| | | if (callback) { |
| | | action.setCallback(this, function (data) { |
| | | callback(data); |
| | | }); |
| | | } |
| | | |
| | | $A.enqueueAction(action); |
| | | }, |
| | | ShowToast: function (paras) { |
| | | var toastEvent = $A.get('e.force:showToast'); |
| | | toastEvent.setParams(paras); |
| | | toastEvent.fire(); |
| | | }, |
| | | AwsPost: function (postURL, data, callback, token) { |
| | | let payloadForNewPI = ''; |
| | | if (typeof data == 'string') { |
| | | payloadForNewPI = data; |
| | | } else { |
| | | payloadForNewPI = JSON.stringify(data); |
| | | } |
| | | |
| | | AWSService.post( |
| | | postURL, |
| | | payloadForNewPI, |
| | | function (result) { |
| | | //this.insertCalloutLog(this.insertModule,postURL,JSON.stringify(payloadForNewPI),JSON.stringify(result),this.successStatus); |
| | | if (callback) callback(result); |
| | | }, |
| | | token |
| | | ); |
| | | }, |
| | | AwsGet: function (url, data, callback, token) { |
| | | if (typeof data == 'string') { |
| | | url += data; |
| | | } else { |
| | | let i = 0; |
| | | for (let p in data) { |
| | | url += i++ ? '&' : '?'; |
| | | url += p + '=' + data[p]; |
| | | } |
| | | } |
| | | |
| | | AWSService.get( |
| | | url, |
| | | function (result) { |
| | | //this.insertCalloutLog(this.insertModule,postURL,JSON.stringify(payloadForNewPI),JSON.stringify(result),this.successStatus); |
| | | if (callback) callback(result); |
| | | }, |
| | | token |
| | | ); |
| | | }, |
| | | refreshTable: function ( |
| | | component, |
| | | event, |
| | | helper, |
| | | cols, |
| | | contactInfoList, |
| | | contactsInfo |
| | | ) { |
| | | let that = this; |
| | | let myTableDiv = document.getElementById('QueryResult'); |
| | | let table = document.createElement('TABLE'); |
| | | table.border = '1'; |
| | | table.id = 'table'; |
| | | table.setAttribute( |
| | | 'class', |
| | | 'slds-table slds-table_cell-buffer slds-table_bordered' |
| | | ); |
| | | let tableBody = document.createElement('TBODY'); |
| | | table.appendChild(tableBody); |
| | | let headerTR = document.createElement('TR'); |
| | | headerTR.setAttribute('class', 'slds-line-height_reset'); |
| | | let colsHeader = ['姓名', '医院', '医生区分(职务)', '分类']; |
| | | tableBody.appendChild(headerTR); |
| | | for (let i = 0; i < colsHeader.length; i++) { |
| | | let td = document.createElement('TH'); |
| | | td.width = '75'; |
| | | td.setAttribute('class', 'slds-truncate slds-border_right'); |
| | | td.appendChild(document.createTextNode(colsHeader[i])); |
| | | headerTR.appendChild(td); |
| | | } |
| | | //3. Init the AWS data |
| | | for (let i = 0; i < contactInfoList.length; i++) { |
| | | let tr = document.createElement('TR'); |
| | | tableBody.appendChild(tr); |
| | | let contactInfoTemp = contactInfoList[i]; |
| | | for (let j = 0; j < cols.length; j++) { |
| | | let td = document.createElement('TD'); |
| | | td.width = '75'; |
| | | if (contactInfoTemp.pi) { |
| | | if ( |
| | | !contactsInfo.hasOwnProperty(contactInfoTemp.AWSDataId) |
| | | ) { |
| | | continue; |
| | | } |
| | | if (j == 0 && contactsInfo[contactInfoTemp.AWSDataId]) { |
| | | td.id = contactsInfo[contactInfoTemp.AWSDataId].Id; |
| | | } |
| | | } else { |
| | | td.id = contactInfoTemp.sfRecordId; |
| | | } |
| | | td.appendChild( |
| | | document.createTextNode( |
| | | contactInfoTemp[cols[j]] != null |
| | | ? contactInfoTemp[cols[j]] |
| | | : '' |
| | | ) |
| | | ); |
| | | if (cols[j] == 'Name') { |
| | | td.addEventListener('click', function (obj) { |
| | | that.redirectToParentPage( |
| | | component, |
| | | event, |
| | | helper, |
| | | obj |
| | | ); |
| | | }); |
| | | } |
| | | tr.appendChild(td); |
| | | } |
| | | } |
| | | myTableDiv.appendChild(table); |
| | | component.find('button').set('v.disabled', false); |
| | | }, |
| | | redirectToParentPage: function (component, event, helper, obj) { |
| | | let agencyContactName = obj.currentTarget.innerText; |
| | | let id = obj.currentTarget.id; |
| | | component.set('v.ac_name', agencyContactName); |
| | | let layout = component.get('v.layout'); |
| | | for (let s of layout) { |
| | | for (let c of s.layoutColumns) { |
| | | for (let item of c.layoutItems) { |
| | | if (item.field == 'Agency_Contact__c') { |
| | | item.value = id; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | component.set('v.isModalOpen', false); |
| | | }, |
| | | resetTable: function () { |
| | | let queryResult = document.getElementById('QueryResult'); |
| | | let table = document.getElementsByTagName('table'); |
| | | debugger; |
| | | console.log('table:' + table); |
| | | debugger; |
| | | if (table.length > 1) { |
| | | for (var i = 1; i < table.length; i++) { |
| | | queryResult.removeChild(table[i]); |
| | | } |
| | | } |
| | | }, |
| | | preparePayloadForSearchAgencyContact: function (component, event, helper) { |
| | | let that = this; |
| | | let agencyHospitalId = ''; |
| | | let accountId = ''; |
| | | let layout = component.get('v.layout'); |
| | | for (let s of layout) { |
| | | for (let c of s.layoutColumns) { |
| | | for (let item of c.layoutItems) { |
| | | if (item.field == 'Agency_Hospital__c') { |
| | | agencyHospitalId = item.value; |
| | | } |
| | | if (item.field == 'Account_Opp__c') { |
| | | accountId = item.value; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | var action = component.get('c.getAWSDataIds'); |
| | | action.setParams({ |
| | | agencyHospitalId: agencyHospitalId, |
| | | accountId: accountId |
| | | }); |
| | | action.setCallback(this, function (response) { |
| | | var state = response.getState(); |
| | | if (state == 'SUCCESS') { |
| | | var rv = response.getReturnValue(); |
| | | if (rv.Data.length == 0) { |
| | | component.find('button').set('v.disabled', false); |
| | | helper.ShowToast({ |
| | | message: '该经销商医院下面没有客户人员', |
| | | type: 'warning' |
| | | }); |
| | | return; |
| | | } |
| | | let searchPayload = new Object(); |
| | | let searchAgencyContactName = component.get('v.searchKeyWord'); |
| | | searchPayload.dataIds = rv.Data; |
| | | searchPayload.name = searchAgencyContactName; |
| | | component.set('v.contactAWSIds', rv.Data); |
| | | let staticResource = component.get('v.staticResource'); |
| | | let url = staticResource.searchUrl; |
| | | let token = staticResource.token; |
| | | this.AwsPost( |
| | | url, |
| | | searchPayload, |
| | | function (data) { |
| | | if (data.success) { |
| | | let cols = [ |
| | | 'Name', |
| | | 'AgencyHospital', |
| | | 'DoctorDivision1', |
| | | 'Type' |
| | | ]; |
| | | let contactInfoList = []; |
| | | let awsDataIds = []; |
| | | if (data.object.length == 0) { |
| | | component |
| | | .find('button') |
| | | .set('v.disabled', false); |
| | | that.ShowToast({ |
| | | message: '没有查询到该客户人员', |
| | | type: 'warning' |
| | | }); |
| | | return; |
| | | } |
| | | for (var i = 0; i < data.object.length; i++) { |
| | | if (data.object[i].dataId) { |
| | | let contactInfo = new Object(); |
| | | //需要修改 |
| | | contactInfo.Name = data.object[i].name; |
| | | contactInfo.AgencyHospital = ''; |
| | | contactInfo.DoctorDivision1 = |
| | | data.object[i].doctorDivision1; |
| | | contactInfo.AWSDataId = |
| | | data.object[i].dataId; |
| | | contactInfo.Type = data.object[i].type; |
| | | contactInfo.pi = true; |
| | | awsDataIds.push(contactInfo.AWSDataId); |
| | | contactInfo.sfRecordId = ''; |
| | | contactInfoList.push(contactInfo); |
| | | } |
| | | } |
| | | //let AWSIdToSFIdMapValue = {}; |
| | | var searchAgencyContacts = component.get( |
| | | 'c.searchAgencyContacts' |
| | | ); |
| | | searchAgencyContacts.setParams({ |
| | | awsAgencyContactIds: JSON.stringify(awsDataIds), |
| | | agencyHospitalId: agencyHospitalId, |
| | | accountId: accountId |
| | | }); |
| | | searchAgencyContacts.setCallback( |
| | | this, |
| | | function (response) { |
| | | var state = response.getState(); |
| | | if (state == 'SUCCESS') { |
| | | var rv = response.getReturnValue(); |
| | | if (rv.IsSuccess) { |
| | | let contactsInfo = ''; |
| | | if (rv.Data) { |
| | | contactsInfo = JSON.parse( |
| | | rv.Data.replace( |
| | | /("\;)/g, |
| | | '"' |
| | | ) |
| | | ); |
| | | if ( |
| | | Object.keys(contactsInfo) |
| | | .length > 0 |
| | | ) { |
| | | for ( |
| | | let i = 0; |
| | | i < |
| | | contactInfoList.length; |
| | | i++ |
| | | ) { |
| | | let contactFromSF = |
| | | contactsInfo[ |
| | | contactInfoList[ |
| | | i |
| | | ]['AWSDataId'] |
| | | ]; |
| | | if (contactFromSF) { |
| | | contactInfoList[ |
| | | i |
| | | ].sfRecordId = |
| | | contactFromSF[ |
| | | 'Id' |
| | | ]; |
| | | if ( |
| | | contactFromSF[ |
| | | 'Agency_Hospital__r' |
| | | ] |
| | | ) { |
| | | contactInfoList[ |
| | | i |
| | | ].AgencyHospital = |
| | | contactFromSF[ |
| | | 'Agency_Hospital__r' |
| | | ]['Name']; |
| | | } |
| | | if ( |
| | | contactFromSF[ |
| | | 'Department_Class__r' |
| | | ] |
| | | ) { |
| | | contactInfoList[ |
| | | i |
| | | ].AgencyHospital = |
| | | contactFromSF[ |
| | | 'Department_Class__r' |
| | | ]['Parent'][ |
| | | 'Name' |
| | | ]; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | that.refreshTable( |
| | | component, |
| | | event, |
| | | helper, |
| | | cols, |
| | | contactInfoList, |
| | | contactsInfo |
| | | ); |
| | | } |
| | | } |
| | | } |
| | | ); |
| | | $A.enqueueAction(searchAgencyContacts); |
| | | } |
| | | }, |
| | | token |
| | | ); |
| | | } |
| | | }); |
| | | $A.enqueueAction(action); |
| | | } |
| | | }); |
| New file |
| | |
| | | ({ |
| | | // Your renderer method overrides go here |
| | | }); |
| | |
| | | <aura:component |
| | | controller="RetrospectiveWeeklyReportController" |
| | | implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,force:lightningQuickAction,forceCommunity:availableForAllPageTypes,lightning:availableForFlowScreens" |
| | | access="global" |
| | | controller="RetrospectiveWeeklyReportController" |
| | | implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,force:lightningQuickAction,forceCommunity:availableForAllPageTypes,lightning:availableForFlowScreens" |
| | | access="global" |
| | | > |
| | | <ltng:require styles="{!$Resource.multilineToastCSS}" /> |
| | | <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="data" |
| | | type="Agency_Report__c" |
| | | default="{sobjectType:'Agency_Report__c'}" |
| | | /> |
| | | <aura:attribute |
| | | name="oppdata" |
| | | type="Agency_Opportunity__c" |
| | | default="{sobjectType:'Agency_Opportunity__c'}" |
| | | /> |
| | | <aura:attribute |
| | | name="acondata" |
| | | type="Agency_Contact__c" |
| | | default="{sobjectType:'Ag |
| | | <ltng:require styles="{!$Resource.multilineToastCSS}" /> |
| | | <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="data" |
| | | type="Agency_Report__c" |
| | | default="{sobjectType:'Agency_Report__c'}" |
| | | /> |
| | | <aura:attribute |
| | | name="oppdata" |
| | | type="Agency_Opportunity__c" |
| | | default="{sobjectType:'Agency_Opportunity__c'}" |
| | | /> |
| | | <aura:attribute |
| | | name="acondata" |
| | | type="Agency_Contact__c" |
| | | default="{sobjectType:'Ag |
| | | ency_Contact__c'}" |
| | | /> |
| | | <aura:attribute name="successMessage" type="String" /> |
| | | <aura:attribute name="etEng" type="String" /> |
| | | <aura:attribute name="errorMessage" type="String" /> |
| | | <aura:attribute name="Close_Forecasted_Date__c_o" type="Date" /> |
| | | <aura:attribute name="Amount__c_o" type="String" /> |
| | | <aura:attribute name="OCMSale_Price__c_o" type="String" /> |
| | | <aura:attribute name="StageName__c_o" type="String" /> |
| | | <aura:attribute name="fieldsmap" type="Map" /> |
| | | <aura:attribute name="AgencyReportMap" type="Boolean" default="false" /> |
| | | <!-- 日报分类 --> |
| | | /> |
| | | <aura:attribute name="successMessage" type="String" /> |
| | | <aura:attribute name="etEng" type="String" /> |
| | | <aura:attribute name="errorMessage" type="String" /> |
| | | <aura:attribute name="Close_Forecasted_Date__c_o" type="Date" /> |
| | | <aura:attribute name="Amount__c_o" type="String" /> |
| | | <aura:attribute name="OCMSale_Price__c_o" type="String" /> |
| | | <aura:attribute name="StageName__c_o" type="String" /> |
| | | <aura:attribute name="fieldsmap" type="Map" /> |
| | | <aura:attribute name="AgencyReportMap" type="Boolean" default="false" /> |
| | | <!-- 日报分类 --> |
| | | |
| | | <aura:attribute name="alldata" type="List" /> |
| | | <aura:attribute name="setdoctorlisthos" type="Boolean" default="false" /> |
| | | <aura:attribute name="allselectlist" type="Map" /> |
| | | <aura:attribute name="doclist" type="List" /> |
| | | <aura:attribute name="docmap" type="Map" /> |
| | | <aura:attribute name="login" type="Boolean" default="false" /> |
| | | <aura:attribute name="loadOpp" type="Boolean" default="false" /> |
| | | <aura:attribute name="reportPageData" type="Map" /> |
| | | <aura:attribute name="selectbody" type="String" /> |
| | | <aura:attribute name="report_date_list" type="Map" /> |
| | | <aura:attribute name="selected_date" type="String" /> |
| | | <aura:attribute name="selected_agency_person" type="String" /> |
| | | <aura:attribute name="agency_report_header" type="String" /> |
| | | <aura:attribute name="agency_report_header_id" type="String" /> |
| | | <aura:attribute name="result" type="String" default="" /> |
| | | <!-- //医院 点选需要 --> |
| | | <aura:attribute name="hospital" type="string" default="" /> |
| | | <aura:attribute name="hospitalId" type="string" default="" /> |
| | | <aura:attribute name="hospitals" type="string" default="" /> |
| | | <aura:attribute name="hospitalLinkId" type="string" default="" /> |
| | | <aura:handler name="change" value="{!v.hospital}" action="{!c.hosChange}" /> |
| | | <aura:attribute name="hospitalList" type="Map" /> |
| | | <!-- 使用产品1(产品型号) --> |
| | | <aura:attribute name="UseProduct1" type="string" default="" /> |
| | | <aura:attribute name="UseProduct1s" type="string" default="" /> |
| | | <aura:handler |
| | | name="change" |
| | | value="{!v.UseProduct1}" |
| | | action="{!c.UseProduct1Change}" |
| | | /> |
| | | <aura:attribute name="UseProduct1List" type="Map" /> |
| | | <aura:attribute name="UseProduct1Id" type="string" default="" /> |
| | | <!-- 使用产品2 --> |
| | | <aura:attribute name="UseProduct2" type="string" default="" /> |
| | | <aura:attribute name="UseProduct2s" type="string" default="" /> |
| | | <aura:handler |
| | | name="change" |
| | | value="{!v.UseProduct2}" |
| | | action="{!c.UseProduct2Change}" |
| | | /> |
| | | <aura:attribute name="UseProduct2List" type="Map" /> |
| | | <aura:attribute name="UseProduct2Id" type="string" default="" /> |
| | | <!-- 使用产品3 --> |
| | | <aura:attribute name="UseProduct3" type="string" default="" /> |
| | | <aura:attribute name="UseProduct3s" type="string" default="" /> |
| | | <aura:handler |
| | | name="change" |
| | | value="{!v.UseProduct3}" |
| | | action="{!c.UseProduct3Change}" |
| | | /> |
| | | <aura:attribute name="UseProduct3List" type="Map" /> |
| | | <aura:attribute name="UseProduct3Id" type="string" default="" /> |
| | | <!--SWAG-CF58C3 fy start --> |
| | | <aura:attribute name="AWStoken" type="String" /> |
| | | <aura:attribute name="AWSsearch" type="String" /> |
| | | <aura:attribute name="AWSinsert" type="String" /> |
| | | <aura:attribute name="AWStransactionURL" type="String" /> |
| | | <aura:attribute name="AWSDoctor2Map" type="String" /> |
| | | <aura:attribute name="awsurl" type="Map" /> |
| | | <aura:attribute name="contactawsurl" type="Map" /> |
| | | <aura:attribute name="allselectlistAgencyPerson" type="Map" /> |
| | | <!--SWAG-CF58C3 fy end --> |
| | | <aura:attribute name="alldata" type="List" /> |
| | | <aura:attribute name="setdoctorlisthos" type="Boolean" default="false" /> |
| | | <aura:attribute name="allselectlist" type="Map" /> |
| | | <aura:attribute name="doclist" type="List" /> |
| | | <aura:attribute name="docmap" type="Map" /> |
| | | <aura:attribute name="login" type="Boolean" default="false" /> |
| | | <aura:attribute name="loginEdit" type="Boolean" default="false" /> |
| | | <aura:attribute |
| | | name="modal_import_spinner" |
| | | type="Boolean" |
| | | default="false" |
| | | /> |
| | | <aura:attribute name="loadOpp" type="Boolean" default="false" /> |
| | | <aura:attribute name="reportPageData" type="Map" /> |
| | | <aura:attribute name="selectbody" type="String" /> |
| | | <aura:attribute name="report_date_list" type="Map" /> |
| | | <aura:attribute name="selected_date" type="String" /> |
| | | <aura:attribute name="selected_agency_person" type="String" /> |
| | | <aura:attribute name="agency_report_header" type="String" /> |
| | | <aura:attribute name="agency_report_header_id" type="String" /> |
| | | <aura:attribute name="result" type="String" default="" /> |
| | | <!-- //医院 点选需要 --> |
| | | <aura:attribute name="hospital" type="string" default="" /> |
| | | <aura:attribute name="hospitalId" type="string" default="" /> |
| | | <aura:attribute name="hospitals" type="string" default="" /> |
| | | <aura:attribute name="hospitalLinkId" type="string" default="" /> |
| | | <aura:handler name="change" value="{!v.hospital}" action="{!c.hosChange}" /> |
| | | <aura:attribute name="hospitalList" type="Map" /> |
| | | <!-- 使用产品1(产品型号) --> |
| | | <aura:attribute name="UseProduct1" type="string" default="" /> |
| | | <aura:attribute name="UseProduct1s" type="string" default="" /> |
| | | <aura:handler |
| | | name="change" |
| | | value="{!v.UseProduct1}" |
| | | action="{!c.UseProduct1Change}" |
| | | /> |
| | | <aura:attribute name="UseProduct1List" type="Map" /> |
| | | <aura:attribute name="UseProduct1Id" type="string" default="" /> |
| | | <!-- 使用产品2 --> |
| | | <aura:attribute name="UseProduct2" type="string" default="" /> |
| | | <aura:attribute name="UseProduct2s" type="string" default="" /> |
| | | <aura:handler |
| | | name="change" |
| | | value="{!v.UseProduct2}" |
| | | action="{!c.UseProduct2Change}" |
| | | /> |
| | | <aura:attribute name="UseProduct2List" type="Map" /> |
| | | <aura:attribute name="UseProduct2Id" type="string" default="" /> |
| | | <!-- 使用产品3 --> |
| | | <aura:attribute name="UseProduct3" type="string" default="" /> |
| | | <aura:attribute name="UseProduct3s" type="string" default="" /> |
| | | <aura:handler |
| | | name="change" |
| | | value="{!v.UseProduct3}" |
| | | action="{!c.UseProduct3Change}" |
| | | /> |
| | | <aura:attribute name="UseProduct3List" type="Map" /> |
| | | <aura:attribute name="UseProduct3Id" type="string" default="" /> |
| | | <!--SWAG-CF58C3 fy start --> |
| | | <aura:attribute name="AWStoken" type="String" /> |
| | | <aura:attribute name="AWSsearch" type="String" /> |
| | | <aura:attribute name="AWSinsert" type="String" /> |
| | | <aura:attribute name="AWStransactionURL" type="String" /> |
| | | <aura:attribute name="AWSDoctor2Map" type="String" /> |
| | | <aura:attribute name="awsurl" type="Map" /> |
| | | <aura:attribute name="contactawsurl" type="Map" /> |
| | | <aura:attribute name="allselectlistAgencyPerson" type="Map" /> |
| | | <!--SWAG-CF58C3 fy end --> |
| | | |
| | | <aura:attribute name="doctor_list" type="Map" /> |
| | | <!-- <aura:attribute name="doctor_title" type="String" /> --> |
| | | <aura:attribute name="opportunity_list" type="Map" /> |
| | | <aura:attribute name="edit_copy_select_report_id" type="String" /> |
| | | <aura:attribute name="create_agency_report_id" type="String" /> |
| | | <aura:attribute name="reports" type="List" /> |
| | | <aura:attribute name="reports_now" type="List" /> |
| | | <aura:attribute name="reports_now_count" type="Integer" /> |
| | | <aura:attribute name="mode" type="String" /> |
| | | <aura:attribute name="select_report_data" type="Map" /> |
| | | <aura:attribute name="select_report_data_radio" type="Map" /> |
| | | <aura:attribute name="default_select_doctor_id" type="String" /> |
| | | <aura:attribute name="default_select_doctor_id2" type="String" /> |
| | | <aura:attribute name="default_select_opportunity_id" type="String" /> |
| | | <aura:attribute name="report_count" type="Integer" /> |
| | | <aura:attribute name="dialog_type" type="String" /> |
| | | <aura:attribute name="truthy" type="Boolean" default="false" /> |
| | | <aura:attribute name="list_message" type="String" default="搜索" /> |
| | | <aura:attribute name="confirm_status" type="Integer" default="0" /> |
| | | <aura:attribute name="modal_confirm_title" type="String" /> |
| | | <aura:attribute name="modal_confirm_text" type="String" /> |
| | | <!-- <aura:attribute name="new_falg" type="String" /> --> |
| | | <!-- fy --> |
| | | <aura:attribute name="UserProType" type="String" /> |
| | | <!-- 科室 --> |
| | | <aura:attribute name="opportunity_cfilter" type="String" /> |
| | | <aura:attribute |
| | | name="update_select_report_data_id" |
| | | type="String" |
| | | default="" |
| | | /> |
| | | <!-- 批量添加日报 start--> |
| | | <aura:attribute name="reports_date" type="List" /> |
| | | <aura:attribute |
| | | name="TableContent" |
| | | type="String" |
| | | description=" Show the Result class" |
| | | /> |
| | | <aura:attribute |
| | | name="TableContent2" |
| | | type="String" |
| | | description=" Show the Result class" |
| | | /> |
| | | <aura:attribute |
| | | name="TargetFileName" |
| | | type="String" |
| | | description="Name of the file" |
| | | /> |
| | | <aura:attribute name="tableheaders" type="Object[]" /> |
| | | <aura:attribute name="fileContentData" type="String" /> |
| | | <aura:attribute name="filename" type="String" /> |
| | | <aura:attribute name="NumOfRecords" type="Integer" default="1000" /> |
| | | <aura:attribute name="showMain" type="Boolean" default="true" /> |
| | | <aura:attribute name="IsEventDefault" type="Boolean" default="true" /> |
| | | <!-- start DTT-zhj 增加错误信息table 2023-05-16--> |
| | | <!-- Imports --> |
| | | <!-- <aura:import library="lightningcomponentdemo:mockdataFaker" property="mockdataLibrary"/> --> |
| | | <!-- attributes --> |
| | | <aura:attribute name="errorData" type="Object" /> |
| | | <aura:attribute name="errorColumns" type="List" /> |
| | | <!-- show Error information --> |
| | | <aura:attribute name="showErrorInfo" type="Boolean" default="false" /> |
| | | <!-- end DTT-zhj 增加错误信息table 2023-05-16--> |
| | | <aura:attribute name="doctor_list" type="Map" /> |
| | | <!-- <aura:attribute name="doctor_title" type="String" /> --> |
| | | <aura:attribute name="opportunity_list" type="Map" /> |
| | | <aura:attribute name="edit_copy_select_report_id" type="String" /> |
| | | <aura:attribute name="create_agency_report_id" type="String" /> |
| | | <aura:attribute name="reports" type="List" /> |
| | | <aura:attribute name="reports_now" type="List" /> |
| | | <aura:attribute name="reports_now_count" type="Integer" /> |
| | | <aura:attribute name="mode" type="String" /> |
| | | <aura:attribute name="select_report_data" type="Map" /> |
| | | <aura:attribute name="select_report_data_radio" type="Map" /> |
| | | <aura:attribute name="default_select_doctor_id" type="String" /> |
| | | <aura:attribute name="default_select_doctor_id2" type="String" /> |
| | | <aura:attribute name="default_select_opportunity_id" type="String" /> |
| | | <aura:attribute name="report_count" type="Integer" /> |
| | | <aura:attribute name="dialog_type" type="String" /> |
| | | <aura:attribute name="truthy" type="Boolean" default="false" /> |
| | | <aura:attribute name="list_message" type="String" default="搜索" /> |
| | | <aura:attribute name="confirm_status" type="Integer" default="0" /> |
| | | <aura:attribute name="modal_confirm_title" type="String" /> |
| | | <aura:attribute name="modal_confirm_text" type="String" /> |
| | | <!-- <aura:attribute name="new_falg" type="String" /> --> |
| | | <!-- fy --> |
| | | <aura:attribute name="UserProType" type="String" /> |
| | | <!-- 科室 --> |
| | | <aura:attribute name="opportunity_cfilter" type="String" /> |
| | | <aura:attribute |
| | | name="update_select_report_data_id" |
| | | type="String" |
| | | default="" |
| | | /> |
| | | <!-- 批量添加日报 start--> |
| | | <aura:attribute name="reports_date" type="List" /> |
| | | <aura:attribute |
| | | name="TableContent" |
| | | type="String" |
| | | description=" Show the Result class" |
| | | /> |
| | | <aura:attribute |
| | | name="TableContent2" |
| | | type="String" |
| | | description=" Show the Result class" |
| | | /> |
| | | <aura:attribute |
| | | name="TargetFileName" |
| | | type="String" |
| | | description="Name of the file" |
| | | /> |
| | | <aura:attribute name="tableheaders" type="Object[]" /> |
| | | <aura:attribute name="fileContentData" type="String" /> |
| | | <aura:attribute name="filename" type="String" /> |
| | | <aura:attribute name="NumOfRecords" type="Integer" default="1000" /> |
| | | <aura:attribute name="showMain" type="Boolean" default="true" /> |
| | | <aura:attribute name="IsEventDefault" type="Boolean" default="true" /> |
| | | <!-- start DTT-zhj 增加错误信息table 2023-05-16--> |
| | | <aura:attribute name="errorData" type="Object" /> |
| | | <aura:attribute name="errorColumns" type="List" /> |
| | | <!-- show Error information --> |
| | | <aura:attribute name="showErrorInfo" type="Boolean" default="false" /> |
| | | <!-- end DTT-zhj 增加错误信息table 2023-05-16--> |
| | | |
| | | <aura:attribute name="PIConfig" type="Map" /> |
| | | <aura:attribute name="PIConfig" type="Map" /> |
| | | |
| | | <ltng:require scripts="{! $Resource.AWSService+'/AWSService.js' }" /> |
| | | <ltng:require scripts="{! $Resource.jquery183minjs }" /> |
| | | <ltng:require scripts="{! $Resource.AWSService+'/AWSService.js' }" /> |
| | | <ltng:require scripts="{! $Resource.jquery183minjs }" /> |
| | | |
| | | <!-- 批量添加日报 end--> |
| | | <!--ロード中...--> |
| | | <aura:renderIf isTrue="{!v.login}"> |
| | | <div class="slds-spinner_container height100vh"> |
| | | <div |
| | | class="slds-spinner--brand slds-spinner slds-spinner--medium" |
| | | role="alert" |
| | | > |
| | | <span class="slds-assistive-text">Loading</span> |
| | | <div class="slds-spinner__dot-a"></div> |
| | | <div class="slds-spinner__dot-b"></div> |
| | | </div> |
| | | </div> |
| | | </aura:renderIf> |
| | | <div aura:id="report" id="report" class="contents_wrapper"> |
| | | <div class="slds-grid slds-wrap slds-grid--pull-padded"> |
| | | <div style="width: 200px"></div> |
| | | <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_date" |
| | | class="slds-select" |
| | | change="{!c.select_date_change}" |
| | | /> |
| | | </div> |
| | | <!-- 代理店担当者 --> |
| | | <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" |
| | | style="display: none" |
| | | > |
| | | {!v.fieldsmap.Person_In_Charge2__c} |
| | | </div> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--3-of-12 slds-large-size--3-of-12" |
| | | style="display: none" |
| | | > |
| | | <ui:inputSelect |
| | | aura:id="select_agency_person" |
| | | class="slds-select agency_person_select" |
| | | change="{!c.select_agency_change}" |
| | | /> |
| | | </div> |
| | | <div style="width: 100px"></div> |
| | | <div |
| | | class="tr slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--2-of-12 slds-large-size--2-of-12" |
| | | style="display: contents" |
| | | > |
| | | <ui:button aura:id="new_button" label="新建" press="{!c.new_report}" /> |
| | | </div> |
| | | <div |
| | | style="width: 350px" |
| | | 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="copy_button" |
| | | label="复制" |
| | | press="{!c.copy_button}" |
| | | disabled="true" |
| | | /> |
| | | <ui:button |
| | | aura:id="delete_button" |
| | | label="删除" |
| | | press="{!c.delete_button}" |
| | | disabled="true" |
| | | /> |
| | | <ui:button aura:id="import" label="导入" press="{!c.import}" /> |
| | | <ui:button |
| | | aura:id="export" |
| | | label="导出" |
| | | press="{!c.export_condition}" |
| | | /> |
| | | <ui:button |
| | | aura:id="returnbutton" |
| | | label="返回" |
| | | press="{!c.return_main_page}" |
| | | /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div aura:id="report_list" class="report_list_area"> |
| | | <div |
| | | class="slds-table--edit_container slds-is-relative" |
| | | style="padding-left: 50px" |
| | | > |
| | | <table |
| | | class="slds-table slds-table--edit slds-table--bordered slds-table--fixed-layout slds-no-cell-focus" |
| | | role="grid" |
| | | style="width: 66.75rem" |
| | | > |
| | | <thead> |
| | | <tr class="slds-line-height--reset"> |
| | | <th |
| | | class="table_header slds-text-title--caps" |
| | | style="width: 250px" |
| | | ></th> |
| | | <th class="table_header slds-text-title--caps"> |
| | | <span class="slds-truncate" title="Name" |
| | | >{!v.fieldsmap.Person_In_Charge2__c}</span |
| | | > |
| | | <!-- {!v.fieldsmap.Person_In_Charge2__c} 担当--> |
| | | </th> |
| | | <th class="table_header slds-text-title--caps" style="width: 250px"> |
| | | <span class="slds-truncate" title="Name">医院</span> |
| | | </th> |
| | | <th class="table_header slds-text-title--caps"> |
| | | <span class="slds-truncate" title="Name" |
| | | >{!v.fieldsmap.Department_Cateogy__c}</span |
| | | > |
| | | <!-- {!v.fieldsmap.Department_Cateogy__c} 科室--> |
| | | </th> |
| | | <th class="table_header slds-text-title--caps"> |
| | | <span class="slds-truncate" title="Name">拜访人</span> |
| | | <!-- {!v.fieldsmap.doctor2__c} 拜访人 --> |
| | | </th> |
| | | <th class="table_header slds-text-title--caps"> |
| | | <span class="slds-truncate" title="Name" |
| | | >{!v.fieldsmap.DealerPersonnel__c}</span |
| | | > |
| | | <!-- {!v.fieldsmap.visitor_title__c} 职位--> |
| | | </th> |
| | | <th class="table_header slds-text-title--caps"> |
| | | <span class="slds-truncate" title="Name" |
| | | >{!v.fieldsmap.WorkMark__c}</span |
| | | > |
| | | <!-- {!v.fieldsmap.visitor_title__c} 职位--> |
| | | </th> |
| | | </tr> |
| | | </thead> |
| | | <tbody> |
| | | <aura:iteration items="{!v.reports}" var="item" indexVar="index"> |
| | | <tr class="slds-hint-parent"> |
| | | <td role="gridcell" class="slds-cell-edit"> |
| | | <ui:inputRadio |
| | | class="report_radio" |
| | | name="report_radio" |
| | | label="{!item.Name}" |
| | | change="{!c.change_report_radio}" |
| | | /> |
| | | <lightning:buttonIcon |
| | | class="edit_button" |
| | | iconName="utility:edit" |
| | | size="small" |
| | | alternativeText="edit" |
| | | value="{!index}" |
| | | onclick="{!c.edit_button}" |
| | | /> |
| | | </td> |
| | | <td role="gridcell" class="slds-cell-edit"> |
| | | <span class="slds-grid slds-grid--align-spread"> |
| | | <span |
| | | class="slds-truncate" |
| | | title="{!item.Person_In_Charge2__r.Name}" |
| | | >{!item.Person_In_Charge2__r.Name}</span |
| | | > |
| | | </span> |
| | | </td> |
| | | <th scope="row" tabindex="0" class="slds-cell-edit"> |
| | | <span class="slds-grid slds-grid--align-spread"> |
| | | {!item.Agency_Hospital__r.Name} |
| | | </span> |
| | | </th> |
| | | <td role="gridcell" class="slds-cell-edit"> |
| | | <span class="slds-grid slds-grid--align-spread"> |
| | | <span |
| | | class="slds-truncate" |
| | | title="{!item.Department_Cateogy_text__c}" |
| | | >{!item.Department_Cateogy_text__c}</span |
| | | > |
| | | </span> |
| | | </td> |
| | | <td role="gridcell" class="slds-cell-edit"> |
| | | <span class="slds-grid slds-grid--align-spread"> |
| | | <span class="slds-truncate" title="{!item.doctor2__r.Name}"> |
| | | <span class="encrypt">{!item.doctor2__r.Name}</span> |
| | | <span class="decrypt">{!item.doctor2__r.awsdata.name}</span> |
| | | </span> |
| | | </span> |
| | | </td> |
| | | <td role="gridcell" class="slds-cell-edit"> |
| | | <span class="slds-grid slds-grid--align-spread"> |
| | | <span |
| | | class="slds-truncate" |
| | | title="{!item.DealerPersonnel__r.Name}" |
| | | >{!item.DealerPersonnel__r.Name}</span |
| | | > |
| | | </span> |
| | | </td> |
| | | <td role="gridcell" class="slds-cell-edit"> |
| | | <span class="slds-grid slds-grid--align-spread"> |
| | | <span class="slds-truncate" title="{!item.WorkMark__c}"> |
| | | <lightning:input |
| | | type="checkbox" |
| | | checked="{!item.WorkMark__c}" |
| | | disabled="true" |
| | | /> |
| | | </span> |
| | | </span> |
| | | </td> |
| | | </tr> |
| | | </aura:iteration> |
| | | </tbody> |
| | | </table> |
| | | </div> |
| | | <aura:renderIf isTrue="{!v.report_count > 0}"> |
| | | <aura:set attribute="else"> |
| | | <div class="no_data_area">{!v.list_message}</div> |
| | | </aura:set> |
| | | <!-- 批量添加日报 end--> |
| | | <!--ロード中...--> |
| | | <aura:renderIf isTrue="{!v.login}"> |
| | | <aura:renderIf isTrue="{!!v.loginEdit}"> |
| | | <!-- <div class="slds-spinner_container"> |
| | | <div role="status" class="slds-spinner slds-spinner_medium slds-spinner_brand"> |
| | | <span class="slds-assistive-text">Loading</span> |
| | | <div class="slds-spinner__dot-a"></div> |
| | | <div class="slds-spinner__dot-b"></div> |
| | | </div> |
| | | </div> --> |
| | | <div |
| | | class="slds-spinner_container" |
| | | id="spinner" |
| | | style="position: fixed; top: 123px" |
| | | > |
| | | <div |
| | | role="status" |
| | | class="slds-spinner slds-spinner_medium slds-spinner_brand" |
| | | > |
| | | <span class="slds-assistive-text">Loading</span> |
| | | <div class="slds-spinner__dot-a"></div> |
| | | <div class="slds-spinner__dot-b"></div> |
| | | </div> |
| | | </div> |
| | | </aura:renderIf> |
| | | </aura:renderIf> |
| | | </div> |
| | | <!-- 批量添加日报 start--> |
| | | <div |
| | | aura:id="modal_import" |
| | | role="dialog" |
| | | tabindex="-1" |
| | | class="disp_none slds-modal slds-fade-in-open slds-modal--large" |
| | | aria-labelledby="headerTarget" |
| | | > |
| | | <div class="slds-modal slds-fade-in-open slds-hide" aura:id="successDiv01"> |
| | | <!-- <ui:inputText aura:id="articleURL" /> --> |
| | | <div class="demo-only" style="height: 8rem"> |
| | | <div class="slds-notify_container slds-is-relative"> |
| | | <div |
| | | class="slds-notify slds-notify_toast slds-theme_success" |
| | | role="alert" |
| | | > |
| | | <div class="slds-m-left_xx-large"> |
| | | <div |
| | | class="slds-notify__content slds-m-left_small slds-align_absolute-center slds-m-left_xx-large" |
| | | > |
| | | <lightning:icon |
| | | alternativeText="Success" |
| | | iconName="utility:success" |
| | | size="small" |
| | | class="buttonColor slds-m-right_small" |
| | | <div aura:id="report" id="report"> |
| | | <div class="slds-grid slds-wrap slds-grid--pull-padded"> |
| | | <div style="width: 150px"></div> |
| | | <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 fontSize" |
| | | > |
| | | 周 |
| | | </div> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--3-of-12 slds-large-size--3-of-12 fontSize" |
| | | > |
| | | <ui:inputSelect |
| | | aura:id="select_date" |
| | | class="slds-select" |
| | | change="{!c.select_date_change}" |
| | | /> |
| | | <h2 class="slds-text-heading_small">{!v.successMessage}</h2> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div |
| | | class="slds-modal slds-fade-in-open slds-hide" |
| | | aura:id="errorDiv01" |
| | | style="z-index: 10001" |
| | | > |
| | | <!-- <ui:inputText aura:id="articleURL" /> --> |
| | | <div class="demo-only" style="height: 8rem"> |
| | | <div class="slds-notify_container slds-is-relative"> |
| | | <div |
| | | class="slds-notify slds-notify_toast slds-theme_error" |
| | | role="status" |
| | | > |
| | | <div class="slds-m-left_xx-large"> |
| | | <div |
| | | class="slds-notify__content slds-m-left_small slds-align_absolute-center slds-m-left_xx-large" |
| | | > |
| | | <lightning:icon |
| | | alternativeText="error" |
| | | iconName="utility:error" |
| | | size="small" |
| | | class="buttonColor slds-m-right_small" |
| | | <!-- 代理店担当者 --> |
| | | <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" |
| | | style="display: none" |
| | | > |
| | | {!v.fieldsmap.Person_In_Charge2__c} |
| | | </div> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--3-of-12 slds-large-size--3-of-12" |
| | | style="display: none" |
| | | > |
| | | <ui:inputSelect |
| | | aura:id="select_agency_person" |
| | | class="slds-select agency_person_select" |
| | | change="{!c.select_agency_change}" |
| | | /> |
| | | <h2 class="slds-text-heading_small">{!v.errorMessage}</h2> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="slds-modal__container"> |
| | | <div class="slds-modal__header"> |
| | | <h4 id="headerTarget" class="slds-float--left"></h4> |
| | | <h2 id="headerTarget" class="slds-text-heading--medium"> |
| | | 日报批量导入 |
| | | </h2> |
| | | <ui:button |
| | | aura:id="close_button" |
| | | label="关闭" |
| | | class="close_button slds-button slds-button--neutral slds-order--1" |
| | | press="{!c.close_import}" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-modal__content slds-scrollable slds-grow slds-p-around--medium" |
| | | > |
| | | <aura:if isTrue="{!v.showMain}"> |
| | | <div> |
| | | <lightning:input |
| | | type="file" |
| | | class="file" |
| | | uara:id="file" |
| | | onchange="{!c.CreateRecord}" |
| | | /> |
| | | </div> |
| | | <aura:set attribute="else"> |
| | | <ui:outputRichText |
| | | class="uiOutputRichText slds-m--around-large" |
| | | value="{!v.TableContent}" |
| | | /> |
| | | <div class="slds-p-around--large slds-align--absolute-center"> |
| | | <lightning:button |
| | | label="保存" |
| | | variant="brand" |
| | | onclick="{!c.processFileContent}" |
| | | /> |
| | | <lightning:button |
| | | label="取消" |
| | | variant="brand" |
| | | onclick="{!c.cancel}" |
| | | /> |
| | | </div> |
| | | <aura:if isTrue="{!v.showErrorInfo}"> |
| | | <div class="slds-p-around--large slds-align--absolute-center"> |
| | | <lightning:button |
| | | label="导出错误信息" |
| | | variant="brand" |
| | | onclick="{!c.exportErrorInfo}" |
| | | <div style="width: 100px"></div> |
| | | <div |
| | | class="tr slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--2-of-12 slds-large-size--2-of-12" |
| | | style="display: contents" |
| | | > |
| | | <ui:button |
| | | aura:id="new_button" |
| | | label="新建" |
| | | press="{!c.new_report}" |
| | | class="buttonFontSize" |
| | | /> |
| | | </div> |
| | | <div class="slds-p-around--large slds-align--absolute-center"> |
| | | <div style="height: 300px"> |
| | | <lightning:datatable |
| | | keyField="id" |
| | | data="{! v.errorData }" |
| | | columns="{! v.errorColumns }" |
| | | hideCheckboxColumn="true" |
| | | /> |
| | | </div> |
| | | </div> |
| | | </aura:if> |
| | | </aura:set> |
| | | </aura:if> |
| | | </div> |
| | | </div> |
| | | <div |
| | | style="width: 400px" |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--4-of-12 slds-large-size--4-of-12" |
| | | > |
| | | <ui:button |
| | | aura:id="copy_button" |
| | | label="复制" |
| | | press="{!c.copy_button}" |
| | | disabled="true" |
| | | class="buttonFontSize" |
| | | /> |
| | | <ui:button |
| | | aura:id="delete_button" |
| | | label="删除" |
| | | press="{!c.delete_button}" |
| | | disabled="true" |
| | | class="buttonFontSize" |
| | | /> |
| | | <ui:button |
| | | aura:id="import" |
| | | label="导入" |
| | | press="{!c.import}" |
| | | class="buttonFontSize" |
| | | /> |
| | | <ui:button |
| | | aura:id="export" |
| | | label="导出" |
| | | press="{!c.export_condition}" |
| | | class="buttonFontSize" |
| | | /> |
| | | <!-- <ui:button aura:id="returnbutton" label="返回" press="{!c.return_main_page}" /> --> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div |
| | | aura:id="modal_importbg" |
| | | class="disp_none slds-backdrop slds-backdrop--open" |
| | | ></div> |
| | | <!-- 批量添加日报 end--> |
| | | |
| | | <!-- 批量导出日报 start--> |
| | | <div |
| | | aura:id="modal_export" |
| | | role="dialog" |
| | | tabindex="-1" |
| | | class="disp_none slds-modal slds-fade-in-open slds-modal--large" |
| | | > |
| | | <div class="slds-modal__container"> |
| | | <div class="slds-modal__header"> |
| | | <h4 id="headerTarget" class="slds-float--left"></h4> |
| | | <h2 id="headerTarget" class="slds-text-heading--medium"> |
| | | 日报批量导出 |
| | | </h2> |
| | | <ui:button |
| | | aura:id="close_button" |
| | | label="关闭" |
| | | class="close_button slds-button slds-button--neutral slds-order--1" |
| | | press="{!c.close_export}" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-modal__content slds-scrollable slds-grow slds-p-around--medium" |
| | | > |
| | | <aura:if isTrue="{!v.showMain}"> |
| | | <div class="slds-grid slds-wrap slds-grid--pull-padded"> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-4" |
| | | ></div> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-4" |
| | | > |
| | | 活动日开始日期 |
| | | <lightning:input |
| | | type="Date" |
| | | class="slds-input slds-input_bare" |
| | | aura:id="input-report-date1" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-4" |
| | | > |
| | | 活动日结束日期 |
| | | <lightning:input |
| | | type="Date" |
| | | class="slds-input slds-input_bare" |
| | | aura:id="input-report-date2" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-4" |
| | | ></div> |
| | | <div class="slds-p-around--large slds-align--absolute-center"> |
| | | <lightning:button |
| | | label="确认" |
| | | variant="brand" |
| | | onclick="{!c.select_repores_date}" |
| | | /> |
| | | <lightning:button |
| | | label="取消" |
| | | variant="brand" |
| | | onclick="{!c.close_export}" |
| | | /> |
| | | </div> |
| | | </div> |
| | | <aura:set attribute="else"> |
| | | <ui:outputRichText |
| | | class="uiOutputRichText slds-m--around-large" |
| | | value="{!v.TableContent2}" |
| | | /> |
| | | <div class="slds-p-around--large slds-align--absolute-center"> |
| | | <lightning:button |
| | | label="确认" |
| | | variant="brand" |
| | | onclick="{!c.exportDate}" |
| | | /> |
| | | <lightning:button |
| | | label="取消" |
| | | variant="brand" |
| | | onclick="{!c.close_export}" |
| | | /> |
| | | </div> |
| | | </aura:set> |
| | | </aura:if> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div |
| | | aura:id="modal_exportbg" |
| | | class="disp_none slds-backdrop slds-backdrop--open" |
| | | ></div> |
| | | <!-- 批量导出日报 end--> |
| | | <div |
| | | aura:id="modal_window" |
| | | role="dialog" |
| | | tabindex="-1" |
| | | class="disp_none slds-modal slds-fade-in-open slds-modal--large" |
| | | aria-labelledby="headerTarget" |
| | | > |
| | | <div class="slds-modal__container"> |
| | | <div class="slds-modal slds-fade-in-open slds-hide" aura:id="successDiv"> |
| | | <!-- <ui:inputText aura:id="articleURL" /> --> |
| | | <div class="demo-only" style="height: 8rem"> |
| | | <div class="slds-notify_container slds-is-relative"> |
| | | <div |
| | | class="slds-notify slds-notify_toast slds-theme_success" |
| | | role="alert" |
| | | > |
| | | <div class="slds-m-left_xx-large"> |
| | | <div |
| | | class="slds-notify__content slds-m-left_small slds-align_absolute-center slds-m-left_xx-large" |
| | | > |
| | | <lightning:icon |
| | | alternativeText="Success" |
| | | iconName="utility:success" |
| | | size="small" |
| | | class="buttonColor slds-m-right_small" |
| | | /> |
| | | <h2 class="slds-text-heading_small">{!v.successMessage}</h2> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div |
| | | class="slds-modal slds-fade-in-open slds-hide" |
| | | aura:id="errorDiv" |
| | | style="z-index: 10001" |
| | | > |
| | | <!-- <ui:inputText aura:id="articleURL" /> --> |
| | | <div class="demo-only" style="height: 8rem"> |
| | | <div class="slds-notify_container slds-is-relative"> |
| | | <div |
| | | class="slds-notify slds-notify_toast slds-theme_error" |
| | | role="status" |
| | | > |
| | | <div class="slds-m-left_xx-large"> |
| | | <div |
| | | class="slds-notify__content slds-m-left_small slds-align_absolute-center slds-m-left_xx-large" |
| | | > |
| | | <lightning:icon |
| | | alternativeText="error" |
| | | iconName="utility:error" |
| | | size="small" |
| | | class="buttonColor slds-m-right_small" |
| | | /> |
| | | <h2 class="slds-text-heading_small">{!v.errorMessage}</h2> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="slds-modal__header"> |
| | | <h2 id="headerTarget" class="slds-text-heading--medium"> |
| | | 日报({!v.selected_date} {!v.selected_agency_person}) |
| | | </h2> |
| | | <ui:button |
| | | aura:id="close_button" |
| | | label="关闭" |
| | | class="close_button slds-button slds-button--neutral slds-order--1" |
| | | press="{!c.toggle_report}" |
| | | /> |
| | | </div> |
| | | <div class="slds-modal__content slds-grow slds-p-around--medium"> |
| | | <div class="slds-box slds-theme--shade"> |
| | | <div class="slds-grid slds-wrap slds-grid--pull-padded"> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" |
| | | > |
| | | 活动日 |
| | | <lightning:input |
| | | type="date" |
| | | value="{!v.data.Report_Date__c}" |
| | | aura:id="input-report-date" |
| | | variant="label-hidden" |
| | | /> |
| | | </div> |
| | | <!-- 医院 --> |
| | | <div |
| | | aura:id="hospital_list" |
| | | class="slds-form-element slds-lookup slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" |
| | | data-select="single" |
| | | > |
| | | <!-- label="医院" --> |
| | | 医院 |
| | | <lightning:input |
| | | aura:id="hospital_input_text" |
| | | class="field" |
| | | value="{!v.hospital}" |
| | | updateOn="keyup" |
| | | variant="label-hidden" |
| | | /> |
| | | <div class="slds-lookup__menu" id="lookup-66"> |
| | | <ul class="slds-lookup__list" role="listbox"> |
| | | <aura:iteration var="hospital" items="{!v.hospitalList}"> |
| | | <li |
| | | role="presentation" |
| | | onclick="{!c.selectHos}" |
| | | data-accName="{!hospital.Hospital_Name_readonly__c}" |
| | | data-accId="{!hospital.Hospital__c}" |
| | | > |
| | | <span |
| | | class="slds-lookup__item-action slds-media" |
| | | id="lookup-option-498" |
| | | role="option" |
| | | > |
| | | <div class="slds-media__body"> |
| | | <div class="slds-lookup__result-text"> |
| | | {!hospital.Hospital_Name_readonly__c} |
| | | </div> |
| | | </div> |
| | | </span> |
| | | </li> |
| | | </aura:iteration> |
| | | </ul> |
| | | </div> |
| | | </div> |
| | | <!-- 科室分类 --> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" |
| | | > |
| | | {!v.fieldsmap.Department_Cateogy__c} |
| | | <!-- <ui:inputText aura:id="select_department" class="slds-select" |
| | | change="{!c.select_department}"/> --> |
| | | <lightning:input |
| | | type="text" |
| | | onchange="{!c.select_department}" |
| | | aura:id="select_department" |
| | | variant="label-hidden" |
| | | /> |
| | | </div> |
| | | <!-- 经销商人员 change="{!c.select_DealerPersonnel}" --> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" |
| | | style="width: 145px" |
| | | > |
| | | {!v.fieldsmap.DealerPersonnel__c} |
| | | <ui:inputSelect |
| | | aura:id="select_DealerPersonnel" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | <!-- 活动区分 --> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" |
| | | > |
| | | {!v.fieldsmap.WorkRecord__c} |
| | | <ui:inputSelect |
| | | aura:id="select_purpose_type" |
| | | class="slds-select" |
| | | change="{!c.select_purpose_type}" |
| | | /> |
| | | </div> |
| | | <!-- 拜访人 {!v.fieldsmap.doctor2__c}--> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" |
| | | style="width: 145px" |
| | | > |
| | | 拜访人 |
| | | <ui:inputSelect |
| | | aura:id="select_doctor" |
| | | class="slds-select" |
| | | change="{!c.doctor_change}" |
| | | /> |
| | | </div> |
| | | <!-- <p hidden="hidden"> --> |
| | | |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-12" |
| | | > |
| | | <br /> |
| | | <ui:button |
| | | label="新建" |
| | | class="slds-button" |
| | | press="{!c.createCon}" |
| | | disabled="true" |
| | | aura:id="new_con" |
| | | /> |
| | | </div> |
| | | |
| | | <!-- </p> --> |
| | | <hr /> |
| | | <!-- 产品分类(第三分类) change="{!c.select_ProductClassification}" --> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" |
| | | > |
| | | 产品分类(第三分类) |
| | | <ui:inputSelect |
| | | aura:id="select_ProductClassification" |
| | | class="slds-select" |
| | | change="{!c.selectProductClassification}" |
| | | /> |
| | | </div> |
| | | <!-- 使用产品1(产品型号) UseProduct1__c --> |
| | | <div |
| | | aura:id="UseProduct1_List" |
| | | class="slds-form-element slds-lookup slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" |
| | | data-select="single" |
| | | > |
| | | <!-- label="使用产品1(产品型号)" --> |
| | | 使用产品1(产品型号) |
| | | <lightning:input |
| | | aura:id="UseProduct1_TEXT" |
| | | class="field" |
| | | value="{!v.UseProduct1}" |
| | | updateOn="keyup" |
| | | variant="label-hidden" |
| | | /> |
| | | <div class="slds-lookup__menu" id="lookup-11"> |
| | | <ul |
| | | class="slds-lookup__list" |
| | | role="listbox" |
| | | style="max-height: 230px" |
| | | > |
| | | <aura:iteration |
| | | var="UseProduct1" |
| | | items="{!v.UseProduct1List}" |
| | | > |
| | | <li |
| | | role="presentation" |
| | | onclick="{!c.seletUseProduct1Change}" |
| | | data-accid="{!UseProduct1.Id}" |
| | | data-accName="{!UseProduct1.Asset_Model_No__c}" |
| | | > |
| | | <span |
| | | class="slds-lookup__item-action slds-media" |
| | | id="lookup-option-498" |
| | | role="option" |
| | | > |
| | | <div class="slds-media__body"> |
| | | <div class="slds-lookup__result-text"> |
| | | {!UseProduct1.Asset_Model_No__c} |
| | | </div> |
| | | </div> |
| | | </span> |
| | | </li> |
| | | </aura:iteration> |
| | | </ul> |
| | | </div> |
| | | </div> |
| | | <!-- 使用产品2 UseProduct2__c --> |
| | | <div |
| | | aura:id="UseProduct2_List" |
| | | class="slds-form-element slds-lookup slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" |
| | | data-select="single" |
| | | > |
| | | <!-- label="使用产品2" --> |
| | | 使用产品2 |
| | | <lightning:input |
| | | aura:id="UseProduct2_TEXT" |
| | | class="field" |
| | | value="{!v.UseProduct2}" |
| | | updateOn="keyup" |
| | | variant="label-hidden" |
| | | /> |
| | | <div class="slds-lookup__menu" id="lookup-22"> |
| | | <ul |
| | | class="slds-lookup__list" |
| | | role="listbox" |
| | | style="max-height: 230px" |
| | | > |
| | | <aura:iteration |
| | | var="UseProduct2" |
| | | items="{!v.UseProduct2List}" |
| | | > |
| | | <li |
| | | role="presentation" |
| | | onclick="{!c.seletUseProduct2Change}" |
| | | data-accid="{!UseProduct2.Id}" |
| | | data-accName="{!UseProduct2.Asset_Model_No__c}" |
| | | > |
| | | <span |
| | | class="slds-lookup__item-action slds-media" |
| | | id="lookup-option-498" |
| | | role="option" |
| | | > |
| | | <div class="slds-media__body"> |
| | | <div class="slds-lookup__result-text"> |
| | | {!UseProduct2.Asset_Model_No__c} |
| | | </div> |
| | | </div> |
| | | </span> |
| | | </li> |
| | | </aura:iteration> |
| | | </ul> |
| | | </div> |
| | | </div> |
| | | <!-- 使用产品3 UseProduct3__c --> |
| | | <div |
| | | aura:id="UseProduct3_List" |
| | | class="slds-form-element slds-lookup slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" |
| | | data-select="single" |
| | | > |
| | | <!-- label="使用产品3" --> |
| | | 使用产品3 |
| | | <lightning:input |
| | | aura:id="UseProduct3_TEXT" |
| | | class="field" |
| | | value="{!v.UseProduct3}" |
| | | updateOn="keyup" |
| | | variant="label-hidden" |
| | | /> |
| | | <div class="slds-lookup__menu" id="lookup-33"> |
| | | <ul |
| | | class="slds-lookup__list" |
| | | role="listbox" |
| | | style="max-height: 230px" |
| | | > |
| | | <aura:iteration |
| | | var="UseProduct3" |
| | | items="{!v.UseProduct3List}" |
| | | > |
| | | <li |
| | | role="presentation" |
| | | onclick="{!c.seletUseProduct3Change}" |
| | | data-accid="{!UseProduct3.Id}" |
| | | data-accName="{!UseProduct3.Asset_Model_No__c}" |
| | | > |
| | | <span |
| | | class="slds-lookup__item-action slds-media" |
| | | id="lookup-option-498" |
| | | role="option" |
| | | > |
| | | <div class="slds-media__body"> |
| | | <div class="slds-lookup__result-text"> |
| | | {!UseProduct3.Asset_Model_No__c} |
| | | </div> |
| | | </div> |
| | | </span> |
| | | </li> |
| | | </aura:iteration> |
| | | </ul> |
| | | </div> |
| | | </div> |
| | | <!-- 效果/进度 EffectProgress__c--> |
| | | <div |
| | | aura:id="product_category_select1" |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" |
| | | > |
| | | {!v.fieldsmap.EffectProgress__c} |
| | | <ui:inputSelect |
| | | aura:id="select_EffectProgress" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | <hr /> |
| | | <!-- 产品1同类耗材科室月使用量 ConsumptionOfConsumables__c--> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" |
| | | > |
| | | {!v.fieldsmap.ConsumptionOfConsumables__c} |
| | | <!-- <ui:inputText aura:id="select_ConsumptionOfConsumables" class="slds-select" |
| | | change="{!c.select_ConsumptionOfConsumables}" /> --> |
| | | <lightning:input |
| | | type="text" |
| | | onchange="{!c.select_ConsumptionOfConsumables}" |
| | | aura:id="select_ConsumptionOfConsumables" |
| | | variant="label-hidden" |
| | | /> |
| | | </div> |
| | | <!-- 术士分类 WarlockClassification__c --> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" |
| | | > |
| | | {!v.fieldsmap.WarlockClassification__c} |
| | | <ui:inputSelect |
| | | aura:id="select_OtherBrandConsumables" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | <!-- 已采用其他品牌 ProductCcategory__c --> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" |
| | | > |
| | | {!v.fieldsmap.ProductCcategory__c} |
| | | <ui:inputSelect |
| | | aura:id="select_ProductCcategory" |
| | | class="slds-select" |
| | | change="{!c.selectpurposetype}" |
| | | /> |
| | | </div> |
| | | <!-- 其他品牌产品类别 --> |
| | | <div |
| | | aura:id="result" |
| | | class="disp_none slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" |
| | | > |
| | | {!v.fieldsmap.productCategories__c} |
| | | <ui:inputSelect |
| | | aura:id="select_productCategories" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | <!-- 产品用量 warlocksNumber__c --> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" |
| | | > |
| | | {!v.fieldsmap.warlocksNumber__c} |
| | | <!-- <ui:inputText aura:id="select_warlocksNumber" class="slds-select" |
| | | change="{!c.select_warlocksNumber}" /> --> |
| | | <lightning:input |
| | | type="text" |
| | | onchange="{!c.select_warlocksNumber}" |
| | | aura:id="select_warlocksNumber" |
| | | variant="label-hidden" |
| | | /> |
| | | </div> |
| | | <!-- 支援需求 WorkMark__c--> |
| | | <div style="padding-left: 12px"> |
| | | {!v.fieldsmap.WorkMark__c} |
| | | <lightning:input type="checkbox" aura:id="select_WorkMark" /> |
| | | </div> |
| | | <div |
| | | aura:id="input-opportunity-stage" |
| | | class="disp_none slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--2-of-12 slds-large-size--2-of-12" |
| | | > |
| | | {!v.fieldsmap.StageName__c} |
| | | <ui:inputSelect aura:id="select_stageName" class="slds-select" /> |
| | | </div> |
| | | <div |
| | | aura:id="input-opportunity-amount1" |
| | | class="disp_none slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--2-of-12 slds-large-size--2-of-12" |
| | | > |
| | | {!v.fieldsmap.Amount__c} |
| | | <!-- <ui:inputSelect aura:id="select_opportunity" class="slds-select"/> 医院采购预算(不含税,元)--> |
| | | <lightning:inputField value="{!v.oppdata.Amount__c}" class="" /> |
| | | </div> |
| | | <div |
| | | aura:id="input-opportunity-amount2" |
| | | class="disp_none slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--2-of-12 slds-large-size--2-of-12" |
| | | > |
| | | {!v.fieldsmap.OCMSale_Price__c} |
| | | <!-- <ui:inputSelect aura:id="select_opportunity" class="slds-select"/> 订货金额(不含税,元) --> |
| | | <lightning:inputField |
| | | value="{!v.oppdata.OCMSale_Price__c}" |
| | | class="" |
| | | /> |
| | | </div> |
| | | <div |
| | | aura:id="input-opportunity-date" |
| | | class="disp_none slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--2-of-12 slds-large-size--2-of-12" |
| | | > |
| | | {!v.fieldsmap.Close_Forecasted_Date__c} |
| | | <!-- <ui:inputSelect aura:id="select_opportunity" class="slds-select"/> 预测与OCSM签约日 --> |
| | | <lightning:inputField |
| | | value="{!v.oppdata.Close_Forecasted_Date__c}" |
| | | class="" |
| | | /> |
| | | </div> |
| | | <hr /> |
| | | </div> |
| | | </div> |
| | | <div class="save_button_area"> |
| | | <ui:button |
| | | aura:id="save_button" |
| | | label="保存并新建" |
| | | class="save_button slds-button slds-button--brand slds-order--3" |
| | | press="{!c.save_report}" |
| | | /> |
| | | </div> |
| | | <aura:renderIf isTrue="{!v.reports_now_count > 0}"> |
| | | <div class="mt40 slds-box slds-theme--shade"> |
| | | <div class="slds-table--edit_container slds-is-relative"> |
| | | <table |
| | | <div aura:id="report_list" class="report_list_area"> |
| | | <div |
| | | class="slds-table--edit_container slds-is-relative" |
| | | style="padding-left: 50px" |
| | | > |
| | | <table |
| | | class="slds-table slds-table--edit slds-table--bordered slds-table--fixed-layout slds-no-cell-focus" |
| | | role="grid" |
| | | > |
| | | style="width: 66.75rem" |
| | | > |
| | | <thead> |
| | | <tr class="slds-line-height--reset"> |
| | | <th class="table_header slds-text-title--caps"> |
| | | <span class="slds-truncate" title="Name"></span> |
| | | </th> |
| | | <th class="table_header slds-text-title--caps"> |
| | | <span class="slds-truncate" title="Name">医院</span> |
| | | </th> |
| | | <th class="table_header slds-text-title--caps"> |
| | | <span class="slds-truncate" title="Name" |
| | | >{!v.fieldsmap.Department_Cateogy__c}</span |
| | | > |
| | | </th> |
| | | <th class="table_header slds-text-title--caps"> |
| | | <span class="slds-truncate" title="Name" |
| | | >{!v.fieldsmap.doctor2__c}</span |
| | | > |
| | | <!-- 客户人员 --> |
| | | </th> |
| | | <th class="table_header slds-text-title--caps"> |
| | | <span class="slds-truncate" title="Name" |
| | | >{!v.fieldsmap.visitor_title__c}</span |
| | | > |
| | | </th> |
| | | <th class="table_header slds-text-title--caps"> |
| | | <span class="slds-truncate" title="Name" |
| | | >{!v.fieldsmap.WorkRecord__c}</span |
| | | > |
| | | </th> |
| | | </tr> |
| | | <tr class="slds-line-height--reset"> |
| | | <th |
| | | class="table_header slds-text-title--caps fontSize" |
| | | style="width: 250px" |
| | | > |
| | | <span class="slds-truncate" title="Name" |
| | | >日报编号</span |
| | | > |
| | | </th> |
| | | <th class="table_header slds-text-title--caps fontSize"> |
| | | <span class="slds-truncate" title="Name" |
| | | >{!v.fieldsmap.Person_In_Charge2__c}</span |
| | | > |
| | | <!-- {!v.fieldsmap.Person_In_Charge2__c} 担当--> |
| | | </th> |
| | | <th |
| | | class="table_header slds-text-title--caps fontSize" |
| | | style="width: 250px" |
| | | > |
| | | <span class="slds-truncate" title="Name">医院</span> |
| | | </th> |
| | | <th class="table_header slds-text-title--caps fontSize"> |
| | | <span class="slds-truncate" title="Name" |
| | | >{!v.fieldsmap.Department_Cateogy__c}</span |
| | | > |
| | | <!-- {!v.fieldsmap.Department_Cateogy__c} 科室--> |
| | | </th> |
| | | <th class="table_header slds-text-title--caps fontSize"> |
| | | <span class="slds-truncate" title="Name" |
| | | >拜访人</span |
| | | > |
| | | <!-- {!v.fieldsmap.doctor2__c} 拜访人 --> |
| | | </th> |
| | | <th class="table_header slds-text-title--caps fontSize"> |
| | | <span class="slds-truncate" title="Name" |
| | | >{!v.fieldsmap.DealerPersonnel__c}</span |
| | | > |
| | | <!-- {!v.fieldsmap.visitor_title__c} 职位--> |
| | | </th> |
| | | <th class="table_header slds-text-title--caps fontSize"> |
| | | <span class="slds-truncate" title="Name" |
| | | >{!v.fieldsmap.WorkMark__c}</span |
| | | > |
| | | <!-- {!v.fieldsmap.visitor_title__c} 职位--> |
| | | </th> |
| | | </tr> |
| | | </thead> |
| | | <tbody> |
| | | <aura:iteration |
| | | items="{!v.reports_now}" |
| | | var="item" |
| | | indexVar="index" |
| | | > |
| | | <tr aura:id="modal_data_list_tr" class="slds-hint-parent"> |
| | | <td role="gridcell" class="slds-cell-edit"> |
| | | <span class="slds-grid slds-grid--align-spread"> |
| | | <span |
| | | class="slds-truncate" |
| | | title="{!item.Department_Cateogy_text__c}" |
| | | >{!item.Name}</span |
| | | > |
| | | </span> |
| | | </td> |
| | | <td role="gridcell" class="slds-cell-edit"> |
| | | <span class="slds-grid slds-grid--align-spread"> |
| | | <span |
| | | class="slds-truncate" |
| | | title="{!item.Agency_Hospital__r.Name}" |
| | | >{!item.Agency_Hospital__r.Name}</span |
| | | > |
| | | </span> |
| | | </td> |
| | | <td role="gridcell" class="slds-cell-edit"> |
| | | <span class="slds-grid slds-grid--align-spread"> |
| | | <span |
| | | class="slds-truncate" |
| | | title="{!item.Department_Cateogy_text__c}" |
| | | >{!item.Department_Cateogy_text__c}</span |
| | | > |
| | | </span> |
| | | </td> |
| | | <td role="gridcell" class="slds-cell-edit"> |
| | | <span class="slds-grid slds-grid--align-spread"> |
| | | <span |
| | | class="slds-truncate" |
| | | title="{!item.doctor2__r.Name}" |
| | | >{!item.doctor2__r.Name}</span |
| | | > |
| | | </span> |
| | | </td> |
| | | <td role="gridcell" class="slds-cell-edit"> |
| | | <span class="slds-grid slds-grid--align-spread"> |
| | | <span |
| | | class="slds-truncate" |
| | | title="{!item.visitor_title__c}" |
| | | >{!item.visitor_title__c}</span |
| | | > |
| | | </span> |
| | | </td> |
| | | <td role="gridcell" class="slds-cell-edit"> |
| | | <span class="slds-grid slds-grid--align-spread"> |
| | | <span |
| | | class="slds-truncate" |
| | | title="{!item.WorkRecord__c}" |
| | | >{!item.WorkRecord__c}</span |
| | | > |
| | | </span> |
| | | </td> |
| | | </tr> |
| | | </aura:iteration> |
| | | <aura:iteration |
| | | items="{!v.reports}" |
| | | var="item" |
| | | indexVar="index" |
| | | > |
| | | <tr class="slds-hint-parent"> |
| | | <td role="gridcell" class="slds-cell-edit fontSize"> |
| | | <ui:inputRadio |
| | | class="report_radio" |
| | | name="report_radio" |
| | | label="{!item.Name}" |
| | | change="{!c.change_report_radio}" |
| | | /> |
| | | <lightning:buttonIcon |
| | | class="edit_button" |
| | | iconName="utility:edit" |
| | | size="small" |
| | | alternativeText="edit" |
| | | value="{!index}" |
| | | onclick="{!c.edit_button}" |
| | | /> |
| | | </td> |
| | | <td role="gridcell" class="slds-cell-edit fontSize"> |
| | | <span class="slds-grid slds-grid--align-spread"> |
| | | <span |
| | | class="slds-truncate" |
| | | title="{!item.Person_In_Charge2__r.Name}" |
| | | >{!item.Person_In_Charge2__r.Name}</span |
| | | > |
| | | </span> |
| | | </td> |
| | | <td |
| | | scope="row" |
| | | tabindex="0" |
| | | class="slds-cell-edit fontSize" |
| | | > |
| | | <div |
| | | class="slds-grid slds-grid--align-spread" |
| | | style="word-wrap: break-word" |
| | | > |
| | | {!item.Agency_Hospital__r.Name} |
| | | </div> |
| | | </td> |
| | | <td role="gridcell" class="slds-cell-edit fontSize"> |
| | | <span class="slds-grid slds-grid--align-spread"> |
| | | <span |
| | | class="slds-truncate" |
| | | title="{!item.Department_Cateogy_text__c}" |
| | | >{!item.Department_Cateogy_text__c}</span |
| | | > |
| | | </span> |
| | | </td> |
| | | <td role="gridcell" class="slds-cell-edit fontSize"> |
| | | <span class="slds-grid slds-grid--align-spread"> |
| | | <span |
| | | class="slds-truncate" |
| | | title="{!item.doctor2__r.Name}" |
| | | > |
| | | <span class="encrypt" |
| | | >{!item.doctor2__r.Name}</span |
| | | > |
| | | <span class="decrypt" |
| | | >{!item.doctor2__r.awsdata.name}</span |
| | | > |
| | | </span> |
| | | </span> |
| | | </td> |
| | | <td role="gridcell" class="slds-cell-edit fontSize"> |
| | | <span class="slds-grid slds-grid--align-spread"> |
| | | <span |
| | | class="slds-truncate" |
| | | title="{!item.DealerPersonnel__r.Name}" |
| | | >{!item.DealerPersonnel__r.Name}</span |
| | | > |
| | | </span> |
| | | </td> |
| | | <td role="gridcell" class="slds-cell-edit fontSize"> |
| | | <span class="slds-grid slds-grid--align-spread"> |
| | | <span |
| | | class="slds-truncate" |
| | | title="{!item.WorkMark__c}" |
| | | > |
| | | <lightning:input |
| | | type="checkbox" |
| | | checked="{!item.WorkMark__c}" |
| | | disabled="true" |
| | | /> |
| | | </span> |
| | | </span> |
| | | </td> |
| | | </tr> |
| | | </aura:iteration> |
| | | </tbody> |
| | | </table> |
| | | </div> |
| | | </div> |
| | | </table> |
| | | </div> |
| | | <aura:renderIf isTrue="{!v.report_count > 0}"> |
| | | <aura:set attribute="else"> |
| | | <div class="no_data_area">{!v.list_message}</div> |
| | | </aura:set> |
| | | </aura:renderIf> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div |
| | | aura:id="modal_bg" |
| | | class="disp_none slds-backdrop slds-backdrop--open" |
| | | ></div> |
| | | |
| | | <div |
| | | aura:id="modal_confirm" |
| | | role="dialog" |
| | | tabindex="-2" |
| | | aria-labelledby="header43" |
| | | class="disp_none slds-modal slds-fade-in-open" |
| | | > |
| | | <div class="slds-modal__container"> |
| | | <div class="slds-modal__header"> |
| | | <h2 id="header43" class="slds-text-heading--medium"> |
| | | {!v.modal_confirm_title} |
| | | </h2> |
| | | </div> |
| | | <div class="slds-modal__content slds-p-around--medium"> |
| | | <p>{!v.modal_confirm_text}</p> |
| | | </div> |
| | | <div class="slds-modal__footer"> |
| | | <ui:button |
| | | label="是" |
| | | class="slds-button slds-button--brand" |
| | | press="{!c.yes_button}" |
| | | /> |
| | | <ui:button |
| | | label="否" |
| | | class="slds-button slds-button--neutral" |
| | | press="{!c.no_button}" |
| | | /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div |
| | | aura:id="modal_confirm_bg" |
| | | class="disp_none slds-backdrop slds-backdrop--open" |
| | | ></div> |
| | | |
| | | <div |
| | | aura:id="modal_newAC" |
| | | role="dialog" |
| | | tabindex="-3" |
| | | aria-labelledby="headertest" |
| | | class="disp_none slds-modal slds-fade-in-open" |
| | | > |
| | | <div class="slds-modal__container"> |
| | | <div class="slds-modal__header"> |
| | | <h2 id="headertest" class="slds-text-heading--medium">新建.拜访人</h2> |
| | | </div> |
| | | <div class="slds-modal__content slds-p-around--medium"> |
| | | <lightning:recordEditForm |
| | | aura:id="recordEditForm" |
| | | objectApiName="Agency_Contact__c" |
| | | onsuccess="{!c.handleSuccess}" |
| | | onload="{!c.showRequiredFields}" |
| | | onsubmit="{!c.handleSubmit}" |
| | | <!-- 批量添加日报 start--> |
| | | <div |
| | | aura:id="modal_import" |
| | | role="dialog" |
| | | tabindex="-1" |
| | | class="disp_none slds-modal slds-fade-in-open slds-modal--large" |
| | | aria-labelledby="headerTarget" |
| | | > |
| | | <aura:renderIf isTrue="{!v.modal_import_spinner}"> |
| | | <lightning:spinner alternativeText="Loading" size="medium" /> |
| | | </aura:renderIf> |
| | | <div |
| | | class="slds-modal slds-fade-in-open slds-hide" |
| | | aura:id="successDiv01" |
| | | > |
| | | <lightning:messages aura:id="OppMessage" /> |
| | | <!-- onload="{!c.showRequiredFields}" --> |
| | | <aura:renderIf isTrue="{!v.truthy}"> |
| | | <lightning:inputField |
| | | fieldName="Name" |
| | | aura:id="newOpportunityField" |
| | | /> |
| | | <lightning:inputField |
| | | fieldName="Type__c" |
| | | aura:id="newOpportunityField" |
| | | /> |
| | | <lightning:inputField |
| | | fieldName="Doctor_Division1__c" |
| | | aura:id="newOpportunityField" |
| | | /> |
| | | </aura:renderIf> |
| | | <br /> |
| | | <br /> |
| | | <br /> |
| | | <br /> |
| | | <br /> |
| | | <div class="save_button_area"> |
| | | <lightning:button |
| | | class="slds-m-top_small" |
| | | type="button" |
| | | label="取消" |
| | | onclick="{!c.createCancel}" |
| | | /> |
| | | <lightning:button |
| | | class="slds-m-top_small" |
| | | type="button" |
| | | label="保存" |
| | | onclick="{!c.handleSubmit}" |
| | | /> |
| | | </div> |
| | | </lightning:recordEditForm> |
| | | </div> |
| | | <!-- <ui:inputText aura:id="articleURL" /> --> |
| | | <div class="demo-only" style="height: 8rem"> |
| | | <div class="slds-notify_container slds-is-relative"> |
| | | <div |
| | | class="slds-notify slds-notify_toast slds-theme_success" |
| | | role="alert" |
| | | > |
| | | <div class="slds-m-left_xx-large"> |
| | | <div |
| | | class="slds-notify__content slds-m-left_small slds-align_absolute-center slds-m-left_xx-large" |
| | | > |
| | | <lightning:icon |
| | | alternativeText="Success" |
| | | iconName="utility:success" |
| | | size="small" |
| | | class="buttonColor slds-m-right_small" |
| | | /> |
| | | <h2 class="slds-text-heading_small"> |
| | | {!v.successMessage} |
| | | </h2> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="slds-modal slds-fade-in-open slds-hide" aura:id="errorDiv01" style="z-index: 10001"> |
| | | <div class="demo-only" style="height: 8rem;"> |
| | | <div class="slds-notify_container slds-is-relative"> |
| | | <div class="slds-notify slds-notify_toast slds-theme_error" role="status"> |
| | | <div class=" slds-m-left_xx-large"> |
| | | <div |
| | | class="slds-notify__content slds-m-left_small slds-align_absolute-center slds-m-left_xx-large"> |
| | | <lightning:icon alternativeText="error" iconName="utility:error" size="small" |
| | | class="buttonColor slds-m-right_small" /> |
| | | <h2 class="slds-text-heading_small ">{!v.errorMessage}</h2> |
| | | <lightning:icon alternativeText="Close" iconName="utility:close" size="small" |
| | | onclick="{!c.closeErrorDiv}" /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> --> |
| | | <div class="slds-modal__container"> |
| | | <div class="slds-modal__header"> |
| | | <h4 id="headerTarget" class="slds-float--left"></h4> |
| | | <h2 id="headerTarget" class="slds-text-heading--medium"> |
| | | 日报批量导入 |
| | | </h2> |
| | | <ui:button |
| | | aura:id="close_button" |
| | | label="关闭" |
| | | class="close_button slds-button slds-button--neutral slds-order--1 buttonFontSize" |
| | | press="{!c.close_import}" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-modal__content slds-scrollable slds-grow slds-p-around--medium fontSize" |
| | | > |
| | | <aura:if isTrue="{!v.showMain}"> |
| | | <div> |
| | | <lightning:input |
| | | type="file" |
| | | class="file" |
| | | uara:id="file" |
| | | onchange="{!c.CreateRecord}" |
| | | /> |
| | | </div> |
| | | <aura:set attribute="else"> |
| | | <ui:outputRichText |
| | | class="uiOutputRichText slds-m--around-large fontSize" |
| | | value="{!v.TableContent}" |
| | | /> |
| | | <div |
| | | class="slds-p-around--large slds-align--absolute-center" |
| | | > |
| | | <lightning:button |
| | | label="保存" |
| | | variant="brand" |
| | | onclick="{!c.processFileContent}" |
| | | class="buttonFontSize" |
| | | /> |
| | | <lightning:button |
| | | label="取消" |
| | | variant="brand" |
| | | onclick="{!c.cancel}" |
| | | class="buttonFontSize" |
| | | /> |
| | | </div> |
| | | <aura:if isTrue="{!v.showErrorInfo}"> |
| | | <div |
| | | class="slds-p-around--large slds-align--absolute-center" |
| | | > |
| | | <lightning:button |
| | | label="导出错误信息" |
| | | variant="brand" |
| | | onclick="{!c.exportErrorInfo}" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-p-around--large slds-align--absolute-center" |
| | | > |
| | | <div style="height: 300px; overflow-x: scroll"> |
| | | <lightning:datatable |
| | | keyField="id" |
| | | data="{! v.errorData }" |
| | | columns="{! v.errorColumns }" |
| | | hideCheckboxColumn="true" |
| | | /> |
| | | </div> |
| | | </div> |
| | | </aura:if> |
| | | </aura:set> |
| | | </aura:if> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div |
| | | aura:id="modal_importbg" |
| | | class="disp_none slds-backdrop slds-backdrop--open" |
| | | ></div> |
| | | <!-- 批量添加日报 end--> |
| | | |
| | | <!-- 批量导出日报 start--> |
| | | <div |
| | | aura:id="modal_export" |
| | | role="dialog" |
| | | tabindex="-1" |
| | | class="disp_none slds-modal slds-fade-in-open slds-modal--large" |
| | | > |
| | | <div class="slds-modal__container"> |
| | | <div class="slds-modal__header"> |
| | | <h4 id="headerTarget" class="slds-float--left"></h4> |
| | | <h2 id="headerTarget" class="slds-text-heading--medium"> |
| | | 日报批量导出 |
| | | </h2> |
| | | <ui:button |
| | | aura:id="close_button" |
| | | label="关闭" |
| | | class="close_button slds-button slds-button--neutral slds-order--1" |
| | | press="{!c.close_export}" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-modal__content slds-scrollable slds-grow slds-p-around--medium" |
| | | > |
| | | <aura:if isTrue="{!v.showMain}"> |
| | | <div class="slds-grid slds-wrap slds-grid--pull-padded"> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-4" |
| | | ></div> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-4" |
| | | > |
| | | 活动日开始日期 |
| | | <lightning:input |
| | | type="Date" |
| | | class="slds-input slds-input_bare" |
| | | aura:id="input-report-date1" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-4" |
| | | > |
| | | 活动日结束日期 |
| | | <lightning:input |
| | | type="Date" |
| | | class="slds-input slds-input_bare" |
| | | aura:id="input-report-date2" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-4" |
| | | ></div> |
| | | <div |
| | | class="slds-p-around--large slds-align--absolute-center" |
| | | > |
| | | <lightning:button |
| | | label="确认" |
| | | variant="brand" |
| | | onclick="{!c.select_repores_date}" |
| | | /> |
| | | <lightning:button |
| | | label="取消" |
| | | variant="brand" |
| | | onclick="{!c.close_export}" |
| | | /> |
| | | </div> |
| | | </div> |
| | | <aura:set attribute="else"> |
| | | <ui:outputRichText |
| | | class="uiOutputRichText slds-m--around-large" |
| | | value="{!v.TableContent2}" |
| | | /> |
| | | <div |
| | | class="slds-p-around--large slds-align--absolute-center" |
| | | > |
| | | <lightning:button |
| | | label="确认" |
| | | variant="brand" |
| | | onclick="{!c.exportDate}" |
| | | /> |
| | | <lightning:button |
| | | label="取消" |
| | | variant="brand" |
| | | onclick="{!c.close_export}" |
| | | /> |
| | | </div> |
| | | </aura:set> |
| | | </aura:if> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div |
| | | aura:id="modal_exportbg" |
| | | class="disp_none slds-backdrop slds-backdrop--open" |
| | | ></div> |
| | | <!-- 批量导出日报 end--> |
| | | <div |
| | | aura:id="modal_window" |
| | | role="dialog" |
| | | tabindex="-1" |
| | | class="disp_none slds-modal slds-fade-in-open slds-modal--large" |
| | | aria-labelledby="headerTarget" |
| | | > |
| | | <div class="slds-modal__container"> |
| | | <div |
| | | class="slds-modal slds-fade-in-open slds-hide" |
| | | aura:id="successDiv" |
| | | > |
| | | <!-- <ui:inputText aura:id="articleURL" /> --> |
| | | <div class="demo-only" style="height: 8rem"> |
| | | <div class="slds-notify_container slds-is-relative"> |
| | | <div |
| | | class="slds-notify slds-notify_toast slds-theme_success" |
| | | role="alert" |
| | | > |
| | | <div class="slds-m-left_xx-large"> |
| | | <div |
| | | class="slds-notify__content slds-m-left_small slds-align_absolute-center slds-m-left_xx-large" |
| | | > |
| | | <lightning:icon |
| | | alternativeText="Success" |
| | | iconName="utility:success" |
| | | size="small" |
| | | class="buttonColor slds-m-right_small" |
| | | /> |
| | | <h2 class="slds-text-heading_small"> |
| | | {!v.successMessage} |
| | | </h2> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div |
| | | class="slds-modal slds-fade-in-open slds-hide" |
| | | aura:id="errorDiv" |
| | | style="z-index: 10001" |
| | | > |
| | | <!-- <ui:inputText aura:id="articleURL" /> --> |
| | | <div class="demo-only" style="height: 8rem"> |
| | | <div class="slds-notify_container slds-is-relative"> |
| | | <div |
| | | class="slds-notify slds-notify_toast slds-theme_error" |
| | | role="status" |
| | | > |
| | | <div class="slds-m-left_xx-large"> |
| | | <div |
| | | class="slds-notify__content slds-m-left_small slds-align_absolute-center slds-m-left_xx-large" |
| | | > |
| | | <lightning:icon |
| | | alternativeText="error" |
| | | iconName="utility:error" |
| | | size="small" |
| | | class="buttonColor slds-m-right_small" |
| | | /> |
| | | <h2 class="slds-text-heading_small"> |
| | | {!v.errorMessage} |
| | | </h2> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div |
| | | class="slds-modal__content slds-grow slds-p-around--medium" |
| | | style="position: relative" |
| | | > |
| | | <aura:renderIf isTrue="{!v.loginEdit}"> |
| | | <lightning:spinner |
| | | alternativeText="Loading" |
| | | size="medium" |
| | | style="width: 100%; height: 100%" |
| | | /> |
| | | </aura:renderIf> |
| | | <div class="slds-modal__header"> |
| | | <h2 id="headerTarget" class="slds-text-heading--medium"> |
| | | 日报({!v.selected_date} {!v.selected_agency_person}) |
| | | </h2> |
| | | <ui:button |
| | | aura:id="close_button" |
| | | label="关闭" |
| | | class="close_button slds-button slds-button--neutral slds-order--1" |
| | | press="{!c.toggle_report}" |
| | | /> |
| | | </div> |
| | | <div class="slds-box slds-theme--shade"> |
| | | <div class="slds-grid slds-wrap slds-grid--pull-padded"> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-7 slds-large-size--1-of-7" |
| | | > |
| | | 活动日 |
| | | <lightning:input |
| | | type="date" |
| | | value="{!v.data.Report_Date__c}" |
| | | aura:id="input-report-date" |
| | | variant="label-hidden" |
| | | /> |
| | | </div> |
| | | <!-- 医院 --> |
| | | <div |
| | | aura:id="hospital_list" |
| | | class="slds-form-element slds-lookup slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-7 slds-large-size--1-of-7" |
| | | data-select="single" |
| | | > |
| | | <!-- label="医院" --> |
| | | 医院 |
| | | <lightning:input |
| | | aura:id="hospital_input_text" |
| | | class="field" |
| | | value="{!v.hospital}" |
| | | updateOn="keyup" |
| | | variant="label-hidden" |
| | | /> |
| | | <div class="slds-lookup__menu" id="lookup-66"> |
| | | <ul class="slds-lookup__list" role="listbox"> |
| | | <aura:iteration |
| | | var="hospital" |
| | | items="{!v.hospitalList}" |
| | | > |
| | | <li |
| | | role="presentation" |
| | | onclick="{!c.selectHos}" |
| | | data-accName="{!hospital.Hospital_Name_readonly__c}" |
| | | data-accId="{!hospital.Hospital__c}" |
| | | > |
| | | <span |
| | | class="slds-lookup__item-action slds-media" |
| | | id="lookup-option-498" |
| | | role="option" |
| | | > |
| | | <div class="slds-media__body"> |
| | | <div |
| | | class="slds-lookup__result-text" |
| | | > |
| | | {!hospital.Hospital_Name_readonly__c} |
| | | </div> |
| | | </div> |
| | | </span> |
| | | </li> |
| | | </aura:iteration> |
| | | </ul> |
| | | </div> |
| | | </div> |
| | | <!-- 科室分类 --> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-7 slds-large-size--1-of-7" |
| | | > |
| | | {!v.fieldsmap.Department_Cateogy__c} |
| | | <!-- <ui:inputText aura:id="select_department" class="slds-select" |
| | | change="{!c.select_department}"/> --> |
| | | <lightning:input |
| | | type="text" |
| | | onchange="{!c.select_department}" |
| | | aura:id="select_department" |
| | | variant="label-hidden" |
| | | /> |
| | | </div> |
| | | <!-- 经销商人员 change="{!c.select_DealerPersonnel}" --> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-7 slds-large-size--1-of-7" |
| | | style="width: 145px" |
| | | > |
| | | {!v.fieldsmap.DealerPersonnel__c} |
| | | <ui:inputSelect |
| | | aura:id="select_DealerPersonnel" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | <!-- 活动区分 --> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-7 slds-large-size--1-of-7" |
| | | > |
| | | {!v.fieldsmap.WorkRecord__c} |
| | | <ui:inputSelect |
| | | aura:id="select_purpose_type" |
| | | class="slds-select" |
| | | change="{!c.select_purpose_type}" |
| | | /> |
| | | </div> |
| | | <!-- 拜访人 {!v.fieldsmap.doctor2__c}--> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-7 slds-large-size--1-of-7" |
| | | style="width: 145px" |
| | | > |
| | | 拜访人 |
| | | <ui:inputSelect |
| | | aura:id="select_doctor" |
| | | class="slds-select" |
| | | change="{!c.doctor_change}" |
| | | /> |
| | | </div> |
| | | <!-- <p hidden="hidden"> --> |
| | | |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-7 slds-large-size--1-of-7" |
| | | > |
| | | <br /> |
| | | <ui:button |
| | | label="新建" |
| | | class="slds-button" |
| | | press="{!c.createCon}" |
| | | disabled="true" |
| | | aura:id="new_con" |
| | | /> |
| | | </div> |
| | | |
| | | <!-- </p> --> |
| | | <hr /> |
| | | <!-- 产品分类(第三分类) change="{!c.select_ProductClassification}" --> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-5" |
| | | > |
| | | 产品分类(第三分类) |
| | | <ui:inputSelect |
| | | aura:id="select_ProductClassification" |
| | | class="slds-select" |
| | | change="{!c.selectProductClassification}" |
| | | /> |
| | | </div> |
| | | <!-- 使用产品1(产品型号) UseProduct1__c --> |
| | | <div |
| | | aura:id="UseProduct1_List" |
| | | class="slds-form-element slds-lookup slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-5" |
| | | data-select="single" |
| | | > |
| | | <!-- label="使用产品1(产品型号)" --> |
| | | 使用产品1(产品型号) |
| | | <lightning:input |
| | | aura:id="UseProduct1_TEXT" |
| | | class="field" |
| | | value="{!v.UseProduct1}" |
| | | updateOn="keyup" |
| | | variant="label-hidden" |
| | | /> |
| | | <div class="slds-lookup__menu" id="lookup-11"> |
| | | <ul |
| | | class="slds-lookup__list" |
| | | role="listbox" |
| | | style="max-height: 230px" |
| | | > |
| | | <aura:iteration |
| | | var="UseProduct1" |
| | | items="{!v.UseProduct1List}" |
| | | > |
| | | <li |
| | | role="presentation" |
| | | onclick="{!c.seletUseProduct1Change}" |
| | | data-accid="{!UseProduct1.Id}" |
| | | data-accName="{!UseProduct1.Asset_Model_No__c}" |
| | | > |
| | | <span |
| | | class="slds-lookup__item-action slds-media" |
| | | id="lookup-option-498" |
| | | role="option" |
| | | > |
| | | <div class="slds-media__body"> |
| | | <div |
| | | class="slds-lookup__result-text" |
| | | > |
| | | {!UseProduct1.Asset_Model_No__c} |
| | | </div> |
| | | </div> |
| | | </span> |
| | | </li> |
| | | </aura:iteration> |
| | | </ul> |
| | | </div> |
| | | </div> |
| | | <!-- 使用产品2 UseProduct2__c --> |
| | | <div |
| | | aura:id="UseProduct2_List" |
| | | class="slds-form-element slds-lookup slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-5" |
| | | data-select="single" |
| | | > |
| | | <!-- label="使用产品2" --> |
| | | 使用产品2 |
| | | <lightning:input |
| | | aura:id="UseProduct2_TEXT" |
| | | class="field" |
| | | value="{!v.UseProduct2}" |
| | | updateOn="keyup" |
| | | variant="label-hidden" |
| | | /> |
| | | <div class="slds-lookup__menu" id="lookup-22"> |
| | | <ul |
| | | class="slds-lookup__list" |
| | | role="listbox" |
| | | style="max-height: 230px" |
| | | > |
| | | <aura:iteration |
| | | var="UseProduct2" |
| | | items="{!v.UseProduct2List}" |
| | | > |
| | | <li |
| | | role="presentation" |
| | | onclick="{!c.seletUseProduct2Change}" |
| | | data-accid="{!UseProduct2.Id}" |
| | | data-accName="{!UseProduct2.Asset_Model_No__c}" |
| | | > |
| | | <span |
| | | class="slds-lookup__item-action slds-media" |
| | | id="lookup-option-498" |
| | | role="option" |
| | | > |
| | | <div class="slds-media__body"> |
| | | <div |
| | | class="slds-lookup__result-text" |
| | | > |
| | | {!UseProduct2.Asset_Model_No__c} |
| | | </div> |
| | | </div> |
| | | </span> |
| | | </li> |
| | | </aura:iteration> |
| | | </ul> |
| | | </div> |
| | | </div> |
| | | <!-- 使用产品3 UseProduct3__c --> |
| | | <div |
| | | aura:id="UseProduct3_List" |
| | | class="slds-form-element slds-lookup slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-5" |
| | | data-select="single" |
| | | > |
| | | <!-- label="使用产品3" --> |
| | | 使用产品3 |
| | | <lightning:input |
| | | aura:id="UseProduct3_TEXT" |
| | | class="field" |
| | | value="{!v.UseProduct3}" |
| | | updateOn="keyup" |
| | | variant="label-hidden" |
| | | /> |
| | | <div class="slds-lookup__menu" id="lookup-33"> |
| | | <ul |
| | | class="slds-lookup__list" |
| | | role="listbox" |
| | | style="max-height: 230px" |
| | | > |
| | | <aura:iteration |
| | | var="UseProduct3" |
| | | items="{!v.UseProduct3List}" |
| | | > |
| | | <li |
| | | role="presentation" |
| | | onclick="{!c.seletUseProduct3Change}" |
| | | data-accid="{!UseProduct3.Id}" |
| | | data-accName="{!UseProduct3.Asset_Model_No__c}" |
| | | > |
| | | <span |
| | | class="slds-lookup__item-action slds-media" |
| | | id="lookup-option-498" |
| | | role="option" |
| | | > |
| | | <div class="slds-media__body"> |
| | | <div |
| | | class="slds-lookup__result-text" |
| | | > |
| | | {!UseProduct3.Asset_Model_No__c} |
| | | </div> |
| | | </div> |
| | | </span> |
| | | </li> |
| | | </aura:iteration> |
| | | </ul> |
| | | </div> |
| | | </div> |
| | | <!-- 效果/进度 EffectProgress__c--> |
| | | <div |
| | | aura:id="product_category_select1" |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-5" |
| | | > |
| | | {!v.fieldsmap.EffectProgress__c} |
| | | <ui:inputSelect |
| | | aura:id="select_EffectProgress" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | <hr /> |
| | | <!-- 产品1同类耗材科室月使用量 ConsumptionOfConsumables__c--> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-5" |
| | | > |
| | | {!v.fieldsmap.ConsumptionOfConsumables__c} |
| | | <!-- <ui:inputText aura:id="select_ConsumptionOfConsumables" class="slds-select" |
| | | change="{!c.select_ConsumptionOfConsumables}" /> --> |
| | | <lightning:input |
| | | type="text" |
| | | onchange="{!c.select_ConsumptionOfConsumables}" |
| | | aura:id="select_ConsumptionOfConsumables" |
| | | variant="label-hidden" |
| | | /> |
| | | </div> |
| | | <!-- 术士分类 WarlockClassification__c --> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" |
| | | > |
| | | {!v.fieldsmap.WarlockClassification__c} |
| | | <ui:inputSelect |
| | | aura:id="select_OtherBrandConsumables" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | <!-- 已采用其他品牌 ProductCcategory__c --> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" |
| | | > |
| | | {!v.fieldsmap.ProductCcategory__c} |
| | | <ui:inputSelect |
| | | aura:id="select_ProductCcategory" |
| | | class="slds-select" |
| | | change="{!c.selectpurposetype}" |
| | | /> |
| | | </div> |
| | | <!-- 其他品牌产品类别 --> |
| | | <div |
| | | aura:id="result" |
| | | class="disp_none slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" |
| | | > |
| | | {!v.fieldsmap.productCategories__c} |
| | | <ui:inputSelect |
| | | aura:id="select_productCategories" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | <!-- 产品用量 warlocksNumber__c --> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" |
| | | > |
| | | {!v.fieldsmap.warlocksNumber__c} |
| | | <!-- <ui:inputText aura:id="select_warlocksNumber" class="slds-select" |
| | | change="{!c.select_warlocksNumber}" /> --> |
| | | <lightning:input |
| | | type="text" |
| | | onchange="{!c.select_warlocksNumber}" |
| | | aura:id="select_warlocksNumber" |
| | | variant="label-hidden" |
| | | /> |
| | | </div> |
| | | <!-- 支援需求 WorkMark__c--> |
| | | <div style="padding-left: 12px"> |
| | | {!v.fieldsmap.WorkMark__c} |
| | | <lightning:input |
| | | type="checkbox" |
| | | aura:id="select_WorkMark" |
| | | /> |
| | | </div> |
| | | <div |
| | | aura:id="input-opportunity-stage" |
| | | class="disp_none slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--2-of-12 slds-large-size--2-of-12" |
| | | > |
| | | {!v.fieldsmap.StageName__c} |
| | | <ui:inputSelect |
| | | aura:id="select_stageName" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | <div |
| | | aura:id="input-opportunity-amount1" |
| | | class="disp_none slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--2-of-12 slds-large-size--2-of-12" |
| | | > |
| | | {!v.fieldsmap.Amount__c} |
| | | <!-- <ui:inputSelect aura:id="select_opportunity" class="slds-select"/> 医院采购预算(不含税,元)--> |
| | | <lightning:inputField |
| | | value="{!v.oppdata.Amount__c}" |
| | | class="" |
| | | /> |
| | | </div> |
| | | <div |
| | | aura:id="input-opportunity-amount2" |
| | | class="disp_none slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--2-of-12 slds-large-size--2-of-12" |
| | | > |
| | | {!v.fieldsmap.OCMSale_Price__c} |
| | | <!-- <ui:inputSelect aura:id="select_opportunity" class="slds-select"/> 订货金额(不含税,元) --> |
| | | <lightning:inputField |
| | | value="{!v.oppdata.OCMSale_Price__c}" |
| | | class="" |
| | | /> |
| | | </div> |
| | | <div |
| | | aura:id="input-opportunity-date" |
| | | class="disp_none slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--2-of-12 slds-large-size--2-of-12" |
| | | > |
| | | {!v.fieldsmap.Close_Forecasted_Date__c} |
| | | <!-- <ui:inputSelect aura:id="select_opportunity" class="slds-select"/> 预测与OCSM签约日 --> |
| | | <lightning:inputField |
| | | value="{!v.oppdata.Close_Forecasted_Date__c}" |
| | | class="" |
| | | /> |
| | | </div> |
| | | <hr /> |
| | | </div> |
| | | </div> |
| | | <div class="save_button_area"> |
| | | <ui:button |
| | | aura:id="save_button" |
| | | label="保存并新建" |
| | | class="save_button slds-button slds-button--brand slds-order--3" |
| | | press="{!c.save_report}" |
| | | /> |
| | | </div> |
| | | <aura:renderIf isTrue="{!v.reports_now_count > 0}"> |
| | | <div class="mt40 slds-box slds-theme--shade"> |
| | | <div |
| | | class="slds-table--edit_container slds-is-relative" |
| | | > |
| | | <table |
| | | class="slds-table slds-table--edit slds-table--bordered slds-table--fixed-layout slds-no-cell-focus" |
| | | role="grid" |
| | | > |
| | | <thead> |
| | | <tr class="slds-line-height--reset"> |
| | | <th |
| | | class="table_header slds-text-title--caps" |
| | | > |
| | | <span |
| | | class="slds-truncate" |
| | | title="Name" |
| | | ></span> |
| | | </th> |
| | | <th |
| | | class="table_header slds-text-title--caps" |
| | | > |
| | | <span |
| | | class="slds-truncate" |
| | | title="Name" |
| | | >医院</span |
| | | > |
| | | </th> |
| | | <th |
| | | class="table_header slds-text-title--caps" |
| | | > |
| | | <span |
| | | class="slds-truncate" |
| | | title="Name" |
| | | >{!v.fieldsmap.Department_Cateogy__c}</span |
| | | > |
| | | </th> |
| | | <th |
| | | class="table_header slds-text-title--caps" |
| | | > |
| | | <span |
| | | class="slds-truncate" |
| | | title="Name" |
| | | >{!v.fieldsmap.doctor2__c}</span |
| | | > |
| | | <!-- 客户人员 --> |
| | | </th> |
| | | <th |
| | | class="table_header slds-text-title--caps" |
| | | > |
| | | <span |
| | | class="slds-truncate" |
| | | title="Name" |
| | | >{!v.fieldsmap.visitor_title__c}</span |
| | | > |
| | | </th> |
| | | <th |
| | | class="table_header slds-text-title--caps" |
| | | > |
| | | <span |
| | | class="slds-truncate" |
| | | title="Name" |
| | | >{!v.fieldsmap.WorkRecord__c}</span |
| | | > |
| | | </th> |
| | | </tr> |
| | | </thead> |
| | | <tbody> |
| | | <aura:iteration |
| | | items="{!v.reports_now}" |
| | | var="item" |
| | | indexVar="index" |
| | | > |
| | | <tr |
| | | aura:id="modal_data_list_tr" |
| | | class="slds-hint-parent" |
| | | > |
| | | <td |
| | | role="gridcell" |
| | | class="slds-cell-edit" |
| | | > |
| | | <span |
| | | class="slds-grid slds-grid--align-spread" |
| | | > |
| | | <span |
| | | class="slds-truncate" |
| | | title="{!item.Department_Cateogy_text__c}" |
| | | >{!item.Name}</span |
| | | > |
| | | </span> |
| | | </td> |
| | | <td |
| | | role="gridcell" |
| | | class="slds-cell-edit" |
| | | > |
| | | <span |
| | | class="slds-grid slds-grid--align-spread" |
| | | > |
| | | <span |
| | | class="slds-truncate" |
| | | title="{!item.Agency_Hospital__r.Name}" |
| | | >{!item.Agency_Hospital__r.Name}</span |
| | | > |
| | | </span> |
| | | </td> |
| | | <td |
| | | role="gridcell" |
| | | class="slds-cell-edit" |
| | | > |
| | | <span |
| | | class="slds-grid slds-grid--align-spread" |
| | | > |
| | | <span |
| | | class="slds-truncate" |
| | | title="{!item.Department_Cateogy_text__c}" |
| | | >{!item.Department_Cateogy_text__c}</span |
| | | > |
| | | </span> |
| | | </td> |
| | | <td |
| | | role="gridcell" |
| | | class="slds-cell-edit" |
| | | > |
| | | <span |
| | | class="slds-grid slds-grid--align-spread" |
| | | > |
| | | <span |
| | | class="slds-truncate" |
| | | title="{!item.doctor2__r.Name}" |
| | | >{!item.doctor2__r.Name}</span |
| | | > |
| | | </span> |
| | | </td> |
| | | <td |
| | | role="gridcell" |
| | | class="slds-cell-edit" |
| | | > |
| | | <span |
| | | class="slds-grid slds-grid--align-spread" |
| | | > |
| | | <span |
| | | class="slds-truncate" |
| | | title="{!item.visitor_title__c}" |
| | | >{!item.visitor_title__c}</span |
| | | > |
| | | </span> |
| | | </td> |
| | | <td |
| | | role="gridcell" |
| | | class="slds-cell-edit" |
| | | > |
| | | <span |
| | | class="slds-grid slds-grid--align-spread" |
| | | > |
| | | <span |
| | | class="slds-truncate" |
| | | title="{!item.WorkRecord__c}" |
| | | >{!item.WorkRecord__c}</span |
| | | > |
| | | </span> |
| | | </td> |
| | | </tr> |
| | | </aura:iteration> |
| | | </tbody> |
| | | </table> |
| | | </div> |
| | | </div> |
| | | </aura:renderIf> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div |
| | | aura:id="modal_bg" |
| | | class="disp_none slds-backdrop slds-backdrop--open" |
| | | ></div> |
| | | |
| | | <div |
| | | aura:id="modal_confirm" |
| | | role="dialog" |
| | | tabindex="-2" |
| | | aria-labelledby="header43" |
| | | class="disp_none slds-modal slds-fade-in-open" |
| | | > |
| | | <div class="slds-modal__container"> |
| | | <div class="slds-modal__header"> |
| | | <h2 id="header43" class="slds-text-heading--medium"> |
| | | {!v.modal_confirm_title} |
| | | </h2> |
| | | </div> |
| | | <div class="slds-modal__content slds-p-around--medium"> |
| | | <p>{!v.modal_confirm_text}</p> |
| | | </div> |
| | | <div class="slds-modal__footer"> |
| | | <ui:button |
| | | label="是" |
| | | class="slds-button slds-button--brand" |
| | | press="{!c.yes_button}" |
| | | /> |
| | | <ui:button |
| | | label="否" |
| | | class="slds-button slds-button--neutral" |
| | | press="{!c.no_button}" |
| | | /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div |
| | | aura:id="modal_confirm_bg" |
| | | class="disp_none slds-backdrop slds-backdrop--open" |
| | | ></div> |
| | | |
| | | <div |
| | | aura:id="modal_newAC" |
| | | role="dialog" |
| | | tabindex="-3" |
| | | aria-labelledby="headertest" |
| | | class="disp_none slds-modal slds-fade-in-open" |
| | | > |
| | | <div class="slds-modal__container"> |
| | | <div class="slds-modal__header"> |
| | | <h2 id="headertest" class="slds-text-heading--medium"> |
| | | 新建.拜访人 |
| | | </h2> |
| | | </div> |
| | | <div class="slds-modal__content slds-p-around--medium"> |
| | | <lightning:recordEditForm |
| | | aura:id="recordEditForm" |
| | | objectApiName="Agency_Contact__c" |
| | | onsuccess="{!c.handleSuccess}" |
| | | onload="{!c.showRequiredFields}" |
| | | onsubmit="{!c.handleSubmit}" |
| | | > |
| | | <lightning:messages aura:id="OppMessage" /> |
| | | <!-- onload="{!c.showRequiredFields}" --> |
| | | <aura:renderIf isTrue="{!v.truthy}"> |
| | | <lightning:inputField |
| | | fieldName="Name" |
| | | aura:id="newOpportunityField" |
| | | /> |
| | | <lightning:inputField |
| | | fieldName="Type__c" |
| | | aura:id="newOpportunityField" |
| | | /> |
| | | <lightning:inputField |
| | | fieldName="Doctor_Division1__c" |
| | | aura:id="newOpportunityField" |
| | | /> |
| | | </aura:renderIf> |
| | | <br /> |
| | | <br /> |
| | | <br /> |
| | | <br /> |
| | | <br /> |
| | | <div class="save_button_area"> |
| | | <lightning:button |
| | | class="slds-m-top_small" |
| | | type="button" |
| | | label="取消" |
| | | onclick="{!c.createCancel}" |
| | | /> |
| | | <lightning:button |
| | | class="slds-m-top_small" |
| | | type="button" |
| | | label="保存" |
| | | onclick="{!c.handleSubmit}" |
| | | /> |
| | | </div> |
| | | </lightning:recordEditForm> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </aura:component> |
| | |
| | | @import 'c/lexCssUtility'; |
| | | |
| | | .THIS .bcolor { |
| | | color: #333; |
| | | } |
| | | |
| | | .THIS.height100vh { |
| | | height: 100vh; |
| | | } |
| | | |
| | | .THIS.contents_wrapper { |
| | | padding-top: 50px; |
| | | } |
| | | |
| | | .THIS .mt5 { |
| | | margin-top: 5px; |
| | | } |
| | | |
| | | .THIS .mt40 { |
| | | margin-top: 40px; |
| | | } |
| | | |
| | | .THIS .edit_button { |
| | | float: right; |
| | | margin: -1.5em 0.5em 0 0; |
| | | border: 0; |
| | | } |
| | | |
| | | .THIS .no_data_area { |
| | | text-align: center; |
| | | margin: .5em 0; |
| | | margin: 0.5em 0; |
| | | } |
| | | |
| | | .THIS.report_list_area { |
| | | margin: 40px 0 20px 100px; |
| | | height: 60vh; |
| | | overflow-y: scroll; |
| | | } |
| | | |
| | | .THIS .report_radio { |
| | | float: left; |
| | | } |
| | | |
| | | .THIS .table_header { |
| | | width: 9.4rem; |
| | | height: 2em; |
| | | } |
| | | |
| | | .THIS.disp_none { |
| | | display: none; |
| | | } |
| | | |
| | | .THIS .disp_none { |
| | | display: none; |
| | | } |
| | | |
| | | .THIS .tr { |
| | | text-align: right; |
| | | } |
| | | |
| | | .THIS .close_button { |
| | | float: right; |
| | | margin-top: -2em; |
| | | } |
| | | |
| | | .THIS .close_icn svg { |
| | | fill: #fefefe; |
| | | } |
| | | |
| | | .THIS .slds-progress__marker { |
| | | cursor: default; |
| | | } |
| | | |
| | | .THIS .progress_0 { |
| | | width: 0%; |
| | | } |
| | | |
| | | .THIS .progress_100 { |
| | | width: 100%; |
| | | } |
| | | |
| | | .THIS .new_btn_area { |
| | | text-align: center; |
| | | margin-top: 22px; |
| | | } |
| | | |
| | | .THIS .new_btn { |
| | | width: 100%; |
| | | } |
| | | |
| | | .THIS .save_button_area { |
| | | margin: 1em 0; |
| | | text-align: right; |
| | | } |
| | | |
| | | .THIS .save_button { |
| | | background-color: #ffa500; |
| | | border: 1px solid #ff8c00; |
| | | } |
| | | |
| | | .THIS .report_data_header { |
| | | border-bottom: 2px solid #ccc; |
| | | } |
| | | |
| | | .THIS .report_data_area { |
| | | border-bottom: 1px solid #ccc; |
| | | } |
| | | |
| | | .THIS.fade { |
| | | transition: 5s opacity linear; |
| | | } |
| | | |
| | | .THIS.animation_off { |
| | | opacity: 0; |
| | | } |
| | | |
| | | .THIS.animation_on { |
| | | opacity: 1; |
| | | } |
| | | |
| | | .THIS .fade { |
| | | transition: 5s opacity linear; |
| | | } |
| | | |
| | | .THIS .animation_off { |
| | | opacity: 0; |
| | | } |
| | | |
| | | .THIS .animation_on { |
| | | opacity: 1; |
| | | } |
| | | .THIS .divbotuser{ |
| | | width:fit-content; |
| | | |
| | | .THIS .divbotuser { |
| | | width: fit-content; |
| | | } |
| | | |
| | | .THIS .toastMessage.forceActionsText{ |
| | | white-space : pre-line !important; |
| | | .THIS .toastMessage.forceActionsText { |
| | | white-space: pre-line !important; |
| | | } |
| | | |
| | | .THIS .slds-file-selector__dropzone .slds-file-selector__text{ |
| | | .THIS .slds-file-selector__dropzone .slds-file-selector__text { |
| | | display: none; |
| | | } |
| | | |
| | | .THIS .slds-input:focus, .THIS .slds-input:active { |
| | | border-color: rgb(216, 221, 230); |
| | | box-shadow: none; |
| | | .THIS .slds-input:focus, |
| | | .THIS .slds-input:active { |
| | | border-color: rgb(216, 221, 230); |
| | | box-shadow: none; |
| | | } |
| | | |
| | | .THIS .customRequired{ |
| | | font-weight: 400; |
| | | } |
| | | .THIS .customRequired:before{ |
| | | content: "*"; |
| | | margin: 0 0.125rem 0 0.125rem; |
| | | color: rgb(194, 57, 52); |
| | | float: left; |
| | | } |
| | | .THIS .none{ |
| | | display:none; |
| | | .THIS .customRequired { |
| | | font-weight: 400; |
| | | } |
| | | |
| | | .THIS tr .decrypt{ |
| | | .THIS .customRequired:before { |
| | | content: '*'; |
| | | margin: 0 0.125rem 0 0.125rem; |
| | | color: rgb(194, 57, 52); |
| | | float: left; |
| | | } |
| | | |
| | | .THIS .none { |
| | | display: none; |
| | | } |
| | | |
| | | .THIS tr:hover .decrypt{ |
| | | .THIS tr .decrypt { |
| | | display: none; |
| | | } |
| | | |
| | | .THIS tr:hover .decrypt { |
| | | display: unset; |
| | | } |
| | | |
| | | .THIS tr:hover .encrypt{ |
| | | .THIS tr:hover .encrypt { |
| | | display: none; |
| | | } |
| | | } |
| | | |
| | | .THIS tr:hover .encrypt { |
| | | display: none; |
| | | } |
| | | |
| | | .THIS .buttonFontSize { |
| | | font-size: 18px; |
| | | min-width: 80px; |
| | | max-width: 110px; |
| | | } |
| | | |
| | | .THIS .fontSize { |
| | | font-size: 18px; |
| | | } |
| | | |
| | | .THIS thead th { |
| | | font-size: 18px; |
| | | } |
| | | |
| | | .THIS table { |
| | | table-layout: fixed; |
| | | } |
| | | .THIS td { |
| | | white-space: normal; |
| | | overflow-wrap: break-word; |
| | | } |
| | |
| | | ({ |
| | | doInit: function (component, event, helper) { |
| | | helper.doinit(component, event, helper); |
| | | component.set("v.errorColumns", [ |
| | | { |
| | | label: "错误行", |
| | | fieldName: "errorRow", |
| | | type: "text", |
| | | hideDefaultActions: true, |
| | | initialWidth: 100 |
| | | }, |
| | | { |
| | | label: "错误信息", |
| | | fieldName: "errorInfo", |
| | | type: "text", |
| | | hideDefaultActions: true |
| | | } |
| | | ]); |
| | | }, |
| | | doInit: function (component, event, helper) { |
| | | helper.doinit(component, event, helper); |
| | | }, |
| | | |
| | | createAopp: function (component, event, helper) { |
| | | var addRecordEvent = $A.get("e.force:createRecord"); |
| | | addRecordEvent.setParams({ |
| | | entityApiName: "Agency_Opportunity__c", |
| | | recordTypeId: "012100000006KW7" |
| | | }); |
| | | addRecordEvent.fire(); |
| | | }, |
| | | createAopp: function (component, event, helper) { |
| | | var addRecordEvent = $A.get('e.force:createRecord'); |
| | | addRecordEvent.setParams({ |
| | | entityApiName: 'Agency_Opportunity__c', |
| | | recordTypeId: '012100000006KW7' |
| | | }); |
| | | addRecordEvent.fire(); |
| | | }, |
| | | |
| | | new_report: function (component, event, helper) { |
| | | component.find("save_button").set("v.label", "保存并新建"); |
| | | helper.new_report(component, event, helper); |
| | | }, |
| | | new_report: function (component, event, helper) { |
| | | component.find('save_button').set('v.label', '保存并新建'); |
| | | helper.new_report(component, event, helper); |
| | | }, |
| | | |
| | | copy_button: function (component, event, helper) { |
| | | component.find("save_button").set("v.label", "保存并新建"); |
| | | helper.copy_button(component, event, helper); |
| | | }, |
| | | delete_button: function (component, event, helper) { |
| | | helper.delete_button(component, event, helper); |
| | | }, |
| | | change_report_radio: function (component, event, helper) { |
| | | helper.change_report_radio(component, event, helper); |
| | | }, |
| | | copy_button: function (component, event, helper) { |
| | | component.find('save_button').set('v.label', '保存并新建'); |
| | | helper.copy_button(component, event, helper); |
| | | }, |
| | | delete_button: function (component, event, helper) { |
| | | helper.delete_button(component, event, helper); |
| | | }, |
| | | change_report_radio: function (component, event, helper) { |
| | | helper.change_report_radio(component, event, helper); |
| | | }, |
| | | |
| | | edit_button: function (component, event, helper) { |
| | | component.find("save_button").set("v.label", "保存"); |
| | | helper.edit_button(component, event, helper); |
| | | }, |
| | | edit_button: function (component, event, helper) { |
| | | component.find('save_button').set('v.label', '保存'); |
| | | helper.edit_button(component, event, helper); |
| | | }, |
| | | |
| | | createCon: function (component, event, helper) { |
| | | helper.createCon(component, event, helper); |
| | | }, |
| | | createCon: function (component, event, helper) { |
| | | helper.createCon(component, event, helper); |
| | | }, |
| | | |
| | | showRequiredFields: function (component, event, helper) { |
| | | $A.util.removeClass(component.find("newOpportunityField"), "none"); |
| | | $A.util.removeClass(component.find("newOpportunityField"), "none"); |
| | | }, |
| | | showRequiredFields: function (component, event, helper) { |
| | | $A.util.removeClass(component.find('newOpportunityField'), 'none'); |
| | | $A.util.removeClass(component.find('newOpportunityField'), 'none'); |
| | | }, |
| | | |
| | | handleSuccess: function (component, event, helper) { |
| | | helper.handleSuccess(component, event, helper); |
| | | }, |
| | | handleSuccess: function (component, event, helper) { |
| | | helper.handleSuccess(component, event, helper); |
| | | }, |
| | | |
| | | handleSubmit: function (component, event, helper) { |
| | | event.preventDefault(); // stop form submission |
| | | var showValidationError = false; |
| | | var fields = component.find("newOpportunityField"); |
| | | var vaildationFailReason = ""; |
| | | let agencyReport = Object.create(null); |
| | | fields.forEach(function (field) { |
| | | if ( |
| | | field.get("v.fieldName") === "Type__c" && |
| | | $A.util.isEmpty(field.get("v.value")) |
| | | ) { |
| | | showValidationError = true; |
| | | vaildationFailReason = "分类不能为空!"; |
| | | } else if ( |
| | | field.get("v.fieldName") === "Doctor_Division1__c" && |
| | | $A.util.isEmpty(field.get("v.value")) |
| | | ) { |
| | | showValidationError = true; |
| | | if (vaildationFailReason != "") { |
| | | vaildationFailReason += "医生区分(职务)不能为空!"; |
| | | } else { |
| | | vaildationFailReason = "医生区分(职务)不能为空!"; |
| | | } |
| | | } |
| | | //SWAG-CF58C3 fy start |
| | | if (field.get("v.fieldName") === "Name") { |
| | | agencyReport["name"] = field.get("v.value"); |
| | | } else if (field.get("v.fieldName") === "Type__c") { |
| | | agencyReport["type"] = field.get("v.value"); |
| | | } else if (field.get("v.fieldName") === "Doctor_Division1__c") { |
| | | agencyReport["doctorDivision1"] = field.get("v.value"); |
| | | } |
| | | //SWAG-CF58C3 fy end |
| | | }); |
| | | if (!showValidationError) { |
| | | //SWAG-CF58C3 fy start |
| | | var agencyHospitalid = component.get("v.hospitalLinkId"); |
| | | //zhj MEBG新方案改造 2022-11-29 start |
| | | debugger; |
| | | let hospitalName = ""; |
| | | //调用后端searchAgencyDataId方法查询出医院下面所有客户人员dataid |
| | | helper.CallBackAction( |
| | | component, |
| | | "searchAgencyDataId", |
| | | { |
| | | hospitalId: agencyHospitalid |
| | | }, |
| | | function (data) { |
| | | if (data.getState() == "SUCCESS") { |
| | | var data = data.getReturnValue(); |
| | | if (data.IsSuccess == true) { |
| | | let agencyContactIds = ""; |
| | | if (data.Message == "" && data.Data && data.Data.length > 0) { |
| | | hospitalName = data.Data[0].Agency_Hospital__r.Name; |
| | | for (var i = 0; i < data.Data.length; i++) { |
| | | if (data.Data[i].AWS_Data_Id__c) |
| | | agencyContactIds += "," + data.Data[i].AWS_Data_Id__c; |
| | | handleSubmit: function (component, event, helper) { |
| | | event.preventDefault(); // stop form submission |
| | | var showValidationError = false; |
| | | var fields = component.find('newOpportunityField'); |
| | | var vaildationFailReason = ''; |
| | | let agencyReport = Object.create(null); |
| | | fields.forEach(function (field) { |
| | | if ( |
| | | field.get('v.fieldName') === 'Type__c' && |
| | | $A.util.isEmpty(field.get('v.value')) |
| | | ) { |
| | | showValidationError = true; |
| | | vaildationFailReason = '分类不能为空!'; |
| | | } else if ( |
| | | field.get('v.fieldName') === 'Doctor_Division1__c' && |
| | | $A.util.isEmpty(field.get('v.value')) |
| | | ) { |
| | | showValidationError = true; |
| | | if (vaildationFailReason != '') { |
| | | vaildationFailReason += '医生区分(职务)不能为空!'; |
| | | } else { |
| | | vaildationFailReason = '医生区分(职务)不能为空!'; |
| | | } |
| | | agencyContactIds = agencyContactIds.substring(1); |
| | | agencyReport["agencyContactIds"] = agencyContactIds; |
| | | } else { |
| | | agencyReport["agencyContactIds"] = agencyContactIds; |
| | | } |
| | | var arr = new Array(); |
| | | arr.push(agencyReport); |
| | | var requestData = JSON.stringify(arr); |
| | | // helper.set_aws_url(component,data,agencyHospitalid); |
| | | |
| | | var token = component.get("v.AWStoken"); |
| | | var newUrl = component.get("v.AWSinsert") + "V2"; |
| | | |
| | | component.set("v.login", true); |
| | | helper.insert_agencycontact( |
| | | component, |
| | | token, |
| | | newUrl, |
| | | requestData, |
| | | agencyHospitalid, |
| | | helper, |
| | | hospitalName |
| | | ); |
| | | } else { |
| | | helper.ShowToast({ |
| | | message: data.message, |
| | | type: "error" |
| | | }); |
| | | } |
| | | } else { |
| | | helper.ShowToast({ |
| | | message: "searchAgency失败", |
| | | type: "error" |
| | | }); |
| | | } |
| | | //SWAG-CF58C3 fy start |
| | | if (field.get('v.fieldName') === 'Name') { |
| | | agencyReport['name'] = field.get('v.value'); |
| | | } else if (field.get('v.fieldName') === 'Type__c') { |
| | | agencyReport['type'] = field.get('v.value'); |
| | | } else if (field.get('v.fieldName') === 'Doctor_Division1__c') { |
| | | agencyReport['doctorDivision1'] = field.get('v.value'); |
| | | } |
| | | //SWAG-CF58C3 fy end |
| | | }); |
| | | if (!showValidationError) { |
| | | //SWAG-CF58C3 fy start |
| | | var agencyHospitalid = component.get('v.hospitalLinkId'); |
| | | //zhj MEBG新方案改造 2022-11-29 start |
| | | debugger; |
| | | let hospitalName = ''; |
| | | //调用后端searchAgencyDataId方法查询出医院下面所有客户人员dataid |
| | | helper.CallBackAction( |
| | | component, |
| | | 'searchAgencyDataId', |
| | | { |
| | | hospitalId: agencyHospitalid |
| | | }, |
| | | function (data) { |
| | | if (data.getState() == 'SUCCESS') { |
| | | var data = data.getReturnValue(); |
| | | if (data.IsSuccess == true) { |
| | | let agencyContactIds = ''; |
| | | if ( |
| | | data.Message == '' && |
| | | data.Data && |
| | | data.Data.length > 0 |
| | | ) { |
| | | hospitalName = |
| | | data.Data[0].Agency_Hospital__r.Name; |
| | | for (var i = 0; i < data.Data.length; i++) { |
| | | if (data.Data[i].AWS_Data_Id__c) |
| | | agencyContactIds += |
| | | ',' + data.Data[i].AWS_Data_Id__c; |
| | | } |
| | | agencyContactIds = |
| | | agencyContactIds.substring(1); |
| | | agencyReport['agencyContactIds'] = |
| | | agencyContactIds; |
| | | } else { |
| | | agencyReport['agencyContactIds'] = |
| | | agencyContactIds; |
| | | } |
| | | var arr = new Array(); |
| | | arr.push(agencyReport); |
| | | var requestData = JSON.stringify(arr); |
| | | // helper.set_aws_url(component,data,agencyHospitalid); |
| | | |
| | | var token = component.get('v.AWStoken'); |
| | | var newUrl = component.get('v.AWSinsert') + 'V2'; |
| | | |
| | | component.set('v.login', true); |
| | | helper.insert_agencycontact( |
| | | component, |
| | | token, |
| | | newUrl, |
| | | requestData, |
| | | agencyHospitalid, |
| | | helper, |
| | | hospitalName |
| | | ); |
| | | } else { |
| | | helper.ShowToast({ |
| | | message: data.message, |
| | | type: 'error' |
| | | }); |
| | | } |
| | | } else { |
| | | helper.ShowToast({ |
| | | message: 'searchAgency失败', |
| | | type: 'error' |
| | | }); |
| | | } |
| | | } |
| | | ); |
| | | //zhj MEBG新方案改造 2022-11-29 end |
| | | // var arr = new Array(); |
| | | // arr.push(agencyReport); |
| | | // var data = JSON.stringify(arr); |
| | | // var token = component.get('v.AWStoken'); |
| | | // var newUrl = component.get('v.AWSinsert'); |
| | | // component.set('v.login',true); |
| | | // helper.insert_agencycontact(component,token,newUrl,data,agencyHospitalid,helper); |
| | | //SWAG-CF58C3 fy end |
| | | // helper.newlyBuild(component, event, helper); |
| | | } else { |
| | | component.find('OppMessage').setError(vaildationFailReason); |
| | | } |
| | | ); |
| | | //zhj MEBG新方案改造 2022-11-29 end |
| | | // var arr = new Array(); |
| | | // arr.push(agencyReport); |
| | | // var data = JSON.stringify(arr); |
| | | // var token = component.get('v.AWStoken'); |
| | | // var newUrl = component.get('v.AWSinsert'); |
| | | // component.set('v.login',true); |
| | | // helper.insert_agencycontact(component,token,newUrl,data,agencyHospitalid,helper); |
| | | //SWAG-CF58C3 fy end |
| | | // helper.newlyBuild(component, event, helper); |
| | | } else { |
| | | component.find("OppMessage").setError(vaildationFailReason); |
| | | }, |
| | | |
| | | createCancel: function (component, event, helper) { |
| | | helper.createCancel(component, event, helper); |
| | | }, |
| | | |
| | | yes_button: function (component, event, helper) { |
| | | component.set('v.confirm_status', 1); |
| | | helper.close_confirm( |
| | | component, |
| | | component.get('v.modal_confirm_title'), |
| | | component.get('v.modal_confirm_text') |
| | | ); |
| | | }, |
| | | |
| | | no_button: function (component, event, helper) { |
| | | component.set('v.confirm_status', 2); |
| | | helper.close_confirm( |
| | | component, |
| | | component.get('v.modal_confirm_title'), |
| | | component.get('v.modal_confirm_text') |
| | | ); |
| | | }, |
| | | |
| | | toggle_report: function (component, event, helper) { |
| | | helper.toggle_report(component, event, helper); |
| | | }, |
| | | |
| | | save_report: function (component, event, helper) { |
| | | helper.save_report(component, event, helper); |
| | | }, |
| | | |
| | | select_date_change: function (component, event, helper) { |
| | | helper.select_date_change(component, event, helper); |
| | | }, |
| | | |
| | | select_agency_change: function (component, event, helper) { |
| | | debugger; |
| | | helper.select_agency_change(component, event, helper); |
| | | }, |
| | | |
| | | hosChange: function (component, event, helper) { |
| | | var hospital_name = event.getParam('value'); |
| | | var hospital_nameld = component.get('v.UseProduct1s'); |
| | | if (hospital_name.match(/(\S+\s)+/)) { |
| | | if (hospital_nameld != hospital_name) { |
| | | helper.searchHos(component, event, helper); |
| | | } |
| | | } else { |
| | | if (hospital_name == '') { |
| | | helper.hideSearchs(component, event, helper); |
| | | } else { |
| | | helper.hideSearch(component, event, helper); |
| | | } |
| | | } |
| | | }, |
| | | selectHos: function (component, event, helper) { |
| | | helper.selectHos(component, event, helper); |
| | | helper.setOpportunity_cfilter(component); |
| | | }, |
| | | //使用产品1 |
| | | UseProduct1Change: function (component, event, helper) { |
| | | var UseProduct1Name = event.getParam('value'); |
| | | var UseProduct1Nameold = component.get('v.UseProduct1s'); |
| | | debugger; |
| | | if (UseProduct1Name.match(/(\S+\s)+/)) { |
| | | if (UseProduct1Name != UseProduct1Nameold) { |
| | | helper.searchUseProduct1(component, event, helper); |
| | | } |
| | | } else { |
| | | if (UseProduct1Name == '') { |
| | | helper.hideSearchUseProduct1s(component, event, helper); |
| | | } else { |
| | | helper.hideSearchUseProduct1(component, event, helper); |
| | | } |
| | | } |
| | | }, |
| | | seletUseProduct1Change: function (component, event, helper) { |
| | | helper.seletUseProduct1Change(component, event, helper); |
| | | }, |
| | | //使用产品2 |
| | | UseProduct2Change: function (component, event, helper) { |
| | | var UseProduct2Name = event.getParam('value'); |
| | | var UseProduct2Nameold = component.get('v.UseProduct2s'); |
| | | if (UseProduct2Name.match(/(\S+\s)+/)) { |
| | | if (UseProduct2Name != UseProduct2Nameold) { |
| | | helper.searchUseProduct2(component, event, helper); |
| | | } |
| | | } else { |
| | | if (UseProduct2Name == '') { |
| | | helper.hideSearchUseProduct2s(component, event, helper); |
| | | } else { |
| | | helper.hideSearchUseProduct2(component, event, helper); |
| | | } |
| | | } |
| | | }, |
| | | seletUseProduct2Change: function (component, event, helper) { |
| | | helper.seletUseProduct2Change(component, event, helper); |
| | | }, |
| | | productcategoryChange2: function (component, event, helper) { |
| | | helper.productcategoryChange2(component, event, helper); |
| | | }, |
| | | //使用产品3 |
| | | UseProduct3Change: function (component, event, helper) { |
| | | var UseProduct3Name = event.getParam('value'); |
| | | var UseProduct3Nameold = component.get('v.UseProduct3s'); |
| | | if (UseProduct3Name.match(/(\S+\s)+/)) { |
| | | if (UseProduct3Name != UseProduct3Nameold) { |
| | | helper.searchUseProduct3(component, event, helper); |
| | | } |
| | | } else { |
| | | if (UseProduct3Name == '') { |
| | | helper.hideSearchUseProduct3s(component, event, helper); |
| | | } else { |
| | | helper.hideSearchUseProduct3(component, event, helper); |
| | | } |
| | | } |
| | | }, |
| | | seletUseProduct3Change: function (component, event, helper) { |
| | | helper.seletUseProduct3Change(component, event, helper); |
| | | }, |
| | | |
| | | select_department: function (component, event, helper) { |
| | | helper.setOpportunity_cfilter(component); |
| | | }, |
| | | doctor_change: function (component, event, helper) { |
| | | helper.doctor_change(component, event, helper); |
| | | }, |
| | | stageNameChange: function (component, event, helper) { |
| | | helper.stageNameChange(component, event, helper); |
| | | }, |
| | | onDragOver: function (component, event, helper) { |
| | | event.preventDefault(); |
| | | }, |
| | | |
| | | onDrop: function (component, event, helper) { |
| | | event.stopPropagation(); |
| | | event.preventDefault(); |
| | | event.dataTransfer.dropEffect = 'copy'; |
| | | var files = event.dataTransfer.files; |
| | | helper.readFile(component, helper, files[0]); |
| | | }, |
| | | CreateRecord: function (component, event, helper) { |
| | | var files = event.getSource().get('v.files'); |
| | | helper.readFile(component, helper, files[0]); |
| | | component.set('v.showErrorInfo', false); |
| | | }, |
| | | |
| | | processFileContent: function (component, event, helper) { |
| | | helper.saveRecords(component, event, helper); |
| | | component.set('v.showErrorInfo', false); |
| | | }, |
| | | |
| | | cancel: function (component, event, helper) { |
| | | component.set('v.showMain', true); |
| | | }, |
| | | |
| | | import: function (component, event, helper) { |
| | | helper.showImport(component); |
| | | }, |
| | | exportDate: function (component, event, helper) { |
| | | var stockData = component.get('v.reports_date'); |
| | | console.log('导出数据' + stockData); |
| | | var csv = helper.convertArrayOfObjectsToCSV(component, stockData); |
| | | if (csv == null) { |
| | | return; |
| | | } |
| | | |
| | | var universalBOM = '\uFEFF'; |
| | | var hiddenElement = document.createElement('a'); |
| | | hiddenElement.href = |
| | | 'data:text/csv;charset=utf-8,' + encodeURI(universalBOM + csv); |
| | | hiddenElement.target = '_self'; // |
| | | hiddenElement.download = 'ExportData.csv'; // CSV file Name* you can change it.[only name not .csv] |
| | | document.body.appendChild(hiddenElement); // Required for FireFox browser |
| | | hiddenElement.click(); // using click() js function to download csv file |
| | | }, |
| | | export_condition: function (component, event, helper) { |
| | | helper.showExport(component); |
| | | }, |
| | | |
| | | select_repores_date: function (component, event, helper) { |
| | | helper.select_repores_date(component, event, helper); |
| | | }, |
| | | export: function (component, event, helper) { |
| | | console.log('进入export'); |
| | | var stockData = component.get('v.reports_date'); |
| | | console.log('查出的数据' + stockData); |
| | | }, |
| | | close_import: function (component, event, helper) { |
| | | component.set('v.showMain', true); |
| | | helper.close_import(component); |
| | | }, |
| | | close_export: function (component, event, helper) { |
| | | component.set('v.showMain', true); |
| | | helper.close_export(component); |
| | | }, |
| | | select_ConsumptionOfConsumables: function (component, event, helper) { |
| | | helper.select_ConsumptionOfConsumables(component, event, helper); |
| | | }, |
| | | select_purpose_type: function (component, event, helper) { |
| | | helper.selectPurposeType(component, event, helper); |
| | | }, |
| | | select_warlocksNumber: function (component, event, helper) { |
| | | helper.select_warlocksNumber(component, event, helper); |
| | | }, |
| | | selectProductClassification: function (component, event, helper) { |
| | | helper.selectProductClassification(component, event, helper); |
| | | }, |
| | | selectpurposetype: function (component, event, helper) { |
| | | helper.selectpurposetype(component, event, helper); |
| | | }, |
| | | return_main_page: function (component, event, helper) { |
| | | window.open('/customer/', '_self'); |
| | | }, |
| | | exportErrorInfo: function (component, event, helper) { |
| | | helper.exportErrorInfoHelper(component); |
| | | }, |
| | | closeErrorDiv: function (component, event, helper) { |
| | | var errorDiv01 = component.find('errorDiv01'); |
| | | $A.util.addClass(errorDiv01, 'slds-hide'); |
| | | } |
| | | }, |
| | | |
| | | createCancel: function (component, event, helper) { |
| | | helper.createCancel(component, event, helper); |
| | | }, |
| | | |
| | | yes_button: function (component, event, helper) { |
| | | component.set("v.confirm_status", 1); |
| | | helper.close_confirm( |
| | | component, |
| | | component.get("v.modal_confirm_title"), |
| | | component.get("v.modal_confirm_text") |
| | | ); |
| | | }, |
| | | |
| | | no_button: function (component, event, helper) { |
| | | component.set("v.confirm_status", 2); |
| | | helper.close_confirm( |
| | | component, |
| | | component.get("v.modal_confirm_title"), |
| | | component.get("v.modal_confirm_text") |
| | | ); |
| | | }, |
| | | |
| | | toggle_report: function (component, event, helper) { |
| | | helper.toggle_report(component, event, helper); |
| | | }, |
| | | |
| | | save_report: function (component, event, helper) { |
| | | helper.save_report(component, event, helper); |
| | | }, |
| | | |
| | | select_date_change: function (component, event, helper) { |
| | | helper.select_date_change(component, event, helper); |
| | | }, |
| | | |
| | | select_agency_change: function (component, event, helper) { |
| | | debugger; |
| | | helper.select_agency_change(component, event, helper); |
| | | }, |
| | | |
| | | hosChange: function (component, event, helper) { |
| | | var hospital_name = event.getParam("value"); |
| | | var hospital_nameld = component.get("v.UseProduct1s"); |
| | | if (hospital_name.match(/(\S+\s)+/)) { |
| | | if (hospital_nameld != hospital_name) { |
| | | helper.searchHos(component, event, helper); |
| | | } |
| | | } else { |
| | | if (hospital_name == "") { |
| | | helper.hideSearchs(component, event, helper); |
| | | } else { |
| | | helper.hideSearch(component, event, helper); |
| | | } |
| | | } |
| | | }, |
| | | selectHos: function (component, event, helper) { |
| | | helper.selectHos(component, event, helper); |
| | | helper.setOpportunity_cfilter(component); |
| | | }, |
| | | //使用产品1 |
| | | UseProduct1Change: function (component, event, helper) { |
| | | var UseProduct1Name = event.getParam("value"); |
| | | var UseProduct1Nameold = component.get("v.UseProduct1s"); |
| | | debugger; |
| | | if (UseProduct1Name.match(/(\S+\s)+/)) { |
| | | if (UseProduct1Name != UseProduct1Nameold) { |
| | | helper.searchUseProduct1(component, event, helper); |
| | | } |
| | | } else { |
| | | if (UseProduct1Name == "") { |
| | | helper.hideSearchUseProduct1s(component, event, helper); |
| | | } else { |
| | | helper.hideSearchUseProduct1(component, event, helper); |
| | | } |
| | | } |
| | | }, |
| | | seletUseProduct1Change: function (component, event, helper) { |
| | | helper.seletUseProduct1Change(component, event, helper); |
| | | }, |
| | | //使用产品2 |
| | | UseProduct2Change: function (component, event, helper) { |
| | | var UseProduct2Name = event.getParam("value"); |
| | | var UseProduct2Nameold = component.get("v.UseProduct2s"); |
| | | if (UseProduct2Name.match(/(\S+\s)+/)) { |
| | | if (UseProduct2Name != UseProduct2Nameold) { |
| | | helper.searchUseProduct2(component, event, helper); |
| | | } |
| | | } else { |
| | | if (UseProduct2Name == "") { |
| | | helper.hideSearchUseProduct2s(component, event, helper); |
| | | } else { |
| | | helper.hideSearchUseProduct2(component, event, helper); |
| | | } |
| | | } |
| | | }, |
| | | seletUseProduct2Change: function (component, event, helper) { |
| | | helper.seletUseProduct2Change(component, event, helper); |
| | | }, |
| | | productcategoryChange2: function (component, event, helper) { |
| | | helper.productcategoryChange2(component, event, helper); |
| | | }, |
| | | //使用产品3 |
| | | UseProduct3Change: function (component, event, helper) { |
| | | var UseProduct3Name = event.getParam("value"); |
| | | var UseProduct3Nameold = component.get("v.UseProduct3s"); |
| | | if (UseProduct3Name.match(/(\S+\s)+/)) { |
| | | if (UseProduct3Name != UseProduct3Nameold) { |
| | | helper.searchUseProduct3(component, event, helper); |
| | | } |
| | | } else { |
| | | if (UseProduct3Name == "") { |
| | | helper.hideSearchUseProduct3s(component, event, helper); |
| | | } else { |
| | | helper.hideSearchUseProduct3(component, event, helper); |
| | | } |
| | | } |
| | | }, |
| | | seletUseProduct3Change: function (component, event, helper) { |
| | | helper.seletUseProduct3Change(component, event, helper); |
| | | }, |
| | | |
| | | select_department: function (component, event, helper) { |
| | | helper.setOpportunity_cfilter(component); |
| | | }, |
| | | doctor_change: function (component, event, helper) { |
| | | helper.doctor_change(component, event, helper); |
| | | }, |
| | | stageNameChange: function (component, event, helper) { |
| | | helper.stageNameChange(component, event, helper); |
| | | }, |
| | | onDragOver: function (component, event, helper) { |
| | | event.preventDefault(); |
| | | }, |
| | | |
| | | onDrop: function (component, event, helper) { |
| | | event.stopPropagation(); |
| | | event.preventDefault(); |
| | | event.dataTransfer.dropEffect = "copy"; |
| | | var files = event.dataTransfer.files; |
| | | helper.readFile(component, helper, files[0]); |
| | | }, |
| | | CreateRecord: function (component, event, helper) { |
| | | var files = event.getSource().get("v.files"); |
| | | helper.readFile(component, helper, files[0]); |
| | | }, |
| | | |
| | | processFileContent: function (component, event, helper) { |
| | | helper.saveRecords(component, event, helper); |
| | | component.set("v.showErrorInfo", false); |
| | | }, |
| | | |
| | | cancel: function (component, event, helper) { |
| | | component.set("v.showMain", true); |
| | | }, |
| | | |
| | | import: function (component, event, helper) { |
| | | helper.showImport(component); |
| | | }, |
| | | exportDate: function (component, event, helper) { |
| | | var stockData = component.get("v.reports_date"); |
| | | console.log("导出数据" + stockData); |
| | | var csv = helper.convertArrayOfObjectsToCSV(component, stockData); |
| | | if (csv == null) { |
| | | return; |
| | | } |
| | | |
| | | var universalBOM = "\uFEFF"; |
| | | var hiddenElement = document.createElement("a"); |
| | | hiddenElement.href = |
| | | "data:text/csv;charset=utf-8," + encodeURI(universalBOM + csv); |
| | | hiddenElement.target = "_self"; // |
| | | hiddenElement.download = "ExportData.csv"; // CSV file Name* you can change it.[only name not .csv] |
| | | document.body.appendChild(hiddenElement); // Required for FireFox browser |
| | | hiddenElement.click(); // using click() js function to download csv file |
| | | }, |
| | | export_condition: function (component, event, helper) { |
| | | helper.showExport(component); |
| | | }, |
| | | |
| | | select_repores_date: function (component, event, helper) { |
| | | helper.select_repores_date(component, event, helper); |
| | | }, |
| | | export: function (component, event, helper) { |
| | | console.log("进入export"); |
| | | var stockData = component.get("v.reports_date"); |
| | | console.log("查出的数据" + stockData); |
| | | }, |
| | | close_import: function (component, event, helper) { |
| | | component.set("v.showMain", true); |
| | | helper.close_import(component); |
| | | }, |
| | | close_export: function (component, event, helper) { |
| | | component.set("v.showMain", true); |
| | | helper.close_export(component); |
| | | }, |
| | | select_ConsumptionOfConsumables: function (component, event, helper) { |
| | | helper.select_ConsumptionOfConsumables(component, event, helper); |
| | | }, |
| | | select_purpose_type: function (component, event, helper) { |
| | | helper.selectPurposeType(component, event, helper); |
| | | }, |
| | | select_warlocksNumber: function (component, event, helper) { |
| | | helper.select_warlocksNumber(component, event, helper); |
| | | }, |
| | | selectProductClassification: function (component, event, helper) { |
| | | helper.selectProductClassification(component, event, helper); |
| | | }, |
| | | selectpurposetype: function (component, event, helper) { |
| | | helper.selectpurposetype(component, event, helper); |
| | | }, |
| | | return_main_page: function (component, event, helper) { |
| | | window.open("/customer/", "_self"); |
| | | }, |
| | | exportErrorInfo: function (component, event, helper) { |
| | | helper.exportErrorInfoHelper(component); |
| | | } |
| | | }); |
| New file |
| | |
| | | <aura:documentation> |
| | | <aura:description>Documentation</aura:description> |
| | | <aura:example name="ExampleName" ref="exampleComponentName" label="Label"> |
| | | Example Description |
| | | </aura:example> |
| | | </aura:documentation> |
| New file |
| | |
| | | <aura:component |
| | | implements="force:appHostable,flexipage:availableForRecordHome,force:hasRecordId,force:lightningQuickAction,forceCommunity:availableForAllPageTypes" |
| | | access="global" |
| | | > |
| | | <aura:attribute |
| | | name="data" |
| | | type="Agency_Report__c" |
| | | default="{'sobjectType':'Agency_Report__c','Report_Date__c':null}" |
| | | /> |
| | | |
| | | reportdata |
| | | <force:inputField |
| | | value="{!v.data.Report_Date__c}" |
| | | aura:id="input-report-date" |
| | | /> |
| | | <aura:attribute |
| | | name="contact" |
| | | type="Contact" |
| | | default="{ 'sobjectType': 'Contact' }" |
| | | /> |
| | | <aura:handler name="init" value="{!this}" action="{!c.doInit}" /> |
| | | Firstname |
| | | <force:inputField aura:id="firstname" value="{!v.contact.FirstName}" /> |
| | | <force:inputField aura:id="lastname" value="{!v.contact.LastName}" /> |
| | | </aura:component> |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8" ?> |
| | | <AuraDefinitionBundle xmlns="http://soap.sforce.com/2006/04/metadata"> |
| | | <apiVersion>42.0</apiVersion> |
| | | <description>A Lightning Component Bundle</description> |
| | | </AuraDefinitionBundle> |
| New file |
| | |
| | | <design:component > |
| | | |
| | | </design:component> |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8" standalone="no" ?> |
| | | <svg width="120px" height="120px" viewBox="0 0 120 120" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> |
| | | <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> |
| | | <path d="M120,108 C120,114.6 114.6,120 108,120 L12,120 C5.4,120 0,114.6 0,108 L0,12 C0,5.4 5.4,0 12,0 L108,0 C114.6,0 120,5.4 120,12 L120,108 L120,108 Z" id="Shape" fill="#2A739E" /> |
| | | <path d="M77.7383308,20 L61.1640113,20 L44.7300055,63.2000173 L56.0543288,63.2000173 L40,99.623291 L72.7458388,54.5871812 L60.907727,54.5871812 L77.7383308,20 Z" id="Path-1" fill="#FFFFFF" /> |
| | | </g> |
| | | </svg> |
| New file |
| | |
| | | ({ |
| | | doInit: function (component, event, helper) { |
| | | console.log('Test'); |
| | | } |
| | | }); |
| New file |
| | |
| | | ({ |
| | | helperMethod: function () {} |
| | | }); |
| New file |
| | |
| | | ({ |
| | | // Your renderer method overrides go here |
| | | }); |
| | |
| | | <aura:component controller="WeeklyReportCmp" implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,force:lightningQuickAction,forceCommunity:availableForAllPageTypes" access="global" > |
| | | <aura:component |
| | | controller="WeeklyReportCmp" |
| | | implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,force:lightningQuickAction,forceCommunity:availableForAllPageTypes" |
| | | access="global" |
| | | > |
| | | <ltng:require styles="{!$Resource.multilineToastCSS}" /> |
| | | <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="data" type="Agency_Report__c" default="{sobjectType:'Agency_Report__c'}"/> |
| | | <aura:attribute name="oppdata" type="Agency_Opportunity__c" default="{sobjectType:'Agency_Opportunity__c'}"/> |
| | | <aura:attribute name="acondata" type="Agency_Contact__c" default="{sobjectType:'Agency_Contact__c'}"/> |
| | | <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="data" |
| | | type="Agency_Report__c" |
| | | default="{sobjectType:'Agency_Report__c'}" |
| | | /> |
| | | <aura:attribute |
| | | name="oppdata" |
| | | type="Agency_Opportunity__c" |
| | | default="{sobjectType:'Agency_Opportunity__c'}" |
| | | /> |
| | | <aura:attribute |
| | | name="acondata" |
| | | type="Agency_Contact__c" |
| | | default="{sobjectType:'Agency_Contact__c'}" |
| | | /> |
| | | <!-- <aura:attribute name="oppdata_old" type="Agency_Opportunity__c" default="{sobjectType:'Agency_Opportunity__c'}"/> --> |
| | | <aura:attribute name="Close_Forecasted_Date__c_o" type="Date"/> |
| | | <aura:attribute name="Amount__c_o" type="String"/> |
| | | <aura:attribute name="OCMSale_Price__c_o" type="String"/> |
| | | <aura:attribute name="StageName__c_o" type="String"/> |
| | | <aura:attribute name="fieldsmap" type="Map"/> |
| | | <aura:attribute name="alldata" type="List"/> |
| | | <aura:attribute name="allselectlist" type="Map"/> |
| | | <aura:attribute name="doclist" type="List"/> |
| | | <aura:attribute name="docmap" type="Map"/> |
| | | <aura:attribute name="login" type="Boolean" default="false"/> |
| | | <aura:attribute name="loadOpp" type="Boolean" default="false"/> |
| | | <aura:attribute name="reportPageData" type="Map"/> |
| | | <aura:attribute name="selectbody" type="String"/> |
| | | <aura:attribute name="report_date_list" type="Map"/> |
| | | <aura:attribute name="selected_date" type="String"/> |
| | | <aura:attribute name="selected_agency_person" type="String"/> |
| | | <aura:attribute name="agency_report_header" type="String"/> |
| | | <aura:attribute name="agency_report_header_id" type="String"/> |
| | | <aura:attribute name="result" type="String" default=""/> |
| | | <aura:attribute name="hospital" type="string" default=""/> |
| | | <aura:attribute name="hospitalId" type="string" default=""/> |
| | | <aura:attribute name="hospitalLinkId" type="string" default=""/> |
| | | <aura:handler name="change" value="{!v.hospital}" action="{!c.hosChange}"/> |
| | | <aura:attribute name="Close_Forecasted_Date__c_o" type="Date" /> |
| | | <aura:attribute name="Amount__c_o" type="String" /> |
| | | <aura:attribute name="OCMSale_Price__c_o" type="String" /> |
| | | <aura:attribute name="StageName__c_o" type="String" /> |
| | | <aura:attribute name="fieldsmap" type="Map" /> |
| | | <aura:attribute name="alldata" type="List" /> |
| | | <aura:attribute name="allselectlist" type="Map" /> |
| | | <aura:attribute name="doclist" type="List" /> |
| | | <aura:attribute name="docmap" type="Map" /> |
| | | <aura:attribute name="login" type="Boolean" default="false" /> |
| | | <aura:attribute name="loginEdit" type="Boolean" default="false" /> |
| | | <aura:attribute name="loadOpp" type="Boolean" default="false" /> |
| | | <aura:attribute name="reportPageData" type="Map" /> |
| | | <aura:attribute name="selectbody" type="String" /> |
| | | <aura:attribute name="report_date_list" type="Map" /> |
| | | <aura:attribute name="selected_date" type="String" /> |
| | | <aura:attribute name="selected_agency_person" type="String" /> |
| | | <aura:attribute name="agency_report_header" type="String" /> |
| | | <aura:attribute name="agency_report_header_id" type="String" /> |
| | | <aura:attribute name="result" type="String" default="" /> |
| | | <aura:attribute name="hospital" type="string" default="" /> |
| | | <aura:attribute name="hospitalId" type="string" default="" /> |
| | | <aura:attribute name="hospitalLinkId" type="string" default="" /> |
| | | <aura:handler name="change" value="{!v.hospital}" action="{!c.hosChange}" /> |
| | | <aura:attribute name="hospitalList" type="Map" /> |
| | | <aura:attribute name="doctor_list" type="Map"/> |
| | | <aura:attribute name="doctor_title" type="String"/> |
| | | <aura:attribute name="opportunity_list" type="Map"/> |
| | | <aura:handler name="change" value="{!v.data.Opportunity__c}" action="{!c.opportunityChange}"/> |
| | | <aura:attribute name="edit_copy_select_report_id" type="String"/> |
| | | <aura:attribute name="create_agency_report_id" type="String"/> |
| | | <aura:attribute name="reports" type="List"/> |
| | | <aura:attribute name="reports_now" type="List"/> |
| | | <aura:attribute name="reports_now_count" type="Integer"/> |
| | | <aura:attribute name="mode" type="String"/> |
| | | <aura:attribute name="select_report_data" type="Map"/> |
| | | <aura:attribute name="select_report_data_radio" type="Map"/> |
| | | <aura:attribute name="default_select_doctor_id" type="String"/> |
| | | <aura:attribute name="default_select_opportunity_id" type="String"/> |
| | | <aura:attribute name="report_count" type="Integer"/> |
| | | <aura:attribute name="dialog_type" type="String"/> |
| | | <aura:attribute name="truthy" type="Boolean" default="false"/> |
| | | <aura:attribute name="doctor_list" type="Map" /> |
| | | <aura:attribute name="doctor_title" type="String" /> |
| | | <aura:attribute name="opportunity_list" type="Map" /> |
| | | <aura:handler |
| | | name="change" |
| | | value="{!v.data.Opportunity__c}" |
| | | action="{!c.opportunityChange}" |
| | | /> |
| | | <aura:attribute name="edit_copy_select_report_id" type="String" /> |
| | | <aura:attribute name="create_agency_report_id" type="String" /> |
| | | <aura:attribute name="reports" type="List" /> |
| | | <aura:attribute name="reports_now" type="List" /> |
| | | <aura:attribute name="reports_now_count" type="Integer" /> |
| | | <aura:attribute name="mode" type="String" /> |
| | | <aura:attribute name="select_report_data" type="Map" /> |
| | | <aura:attribute name="select_report_data_radio" type="Map" /> |
| | | <aura:attribute name="default_select_doctor_id" type="String" /> |
| | | <aura:attribute name="default_select_opportunity_id" type="String" /> |
| | | <aura:attribute name="report_count" type="Integer" /> |
| | | <aura:attribute name="dialog_type" type="String" /> |
| | | <aura:attribute name="truthy" type="Boolean" default="false" /> |
| | | <aura:attribute name="list_message" type="String" default="搜索" /> |
| | | <aura:attribute name="confirm_status" type="Integer" default="0" /> |
| | | <aura:attribute name="modal_confirm_title" type="String" /> |
| | |
| | | <aura:handler name="change" value="{!v.data.Product_Category2__c}" action="{!c.productcategoryChange2}"/> |
| | | <aura:handler name="change" value="{!v.data.Product_Category3__c}" action="{!c.productcategoryChange3}"/> --> |
| | | <!-- <aura:handler name="change" value="{!v.oppdata.StageName__c}" action="{!c.stageNameChange}"/> --> |
| | | <aura:attribute name="update_select_report_data_id" type="String" default=""/> |
| | | <aura:attribute |
| | | name="update_select_report_data_id" |
| | | type="String" |
| | | default="" |
| | | /> |
| | | |
| | | <!-- 批量添加周报 start--> |
| | | <aura:attribute name="reports_date" type="List" /> |
| | | <!-- <aura:attribute name="reports_date1" type="Date" /> |
| | | <aura:attribute name="reports_date2" type="Date" /> --> |
| | | <aura:attribute name="TableContent" type="String" description=" Show the Result class"/> |
| | | <aura:attribute name="TableContent2" type="String" description=" Show the Result class"/> |
| | | <aura:attribute name="TargetFileName" type="String" description="Name of the file"/> |
| | | <aura:attribute |
| | | name="TableContent" |
| | | type="String" |
| | | description=" Show the Result class" |
| | | /> |
| | | <aura:attribute |
| | | name="TableContent2" |
| | | type="String" |
| | | description=" Show the Result class" |
| | | /> |
| | | <aura:attribute |
| | | name="TargetFileName" |
| | | type="String" |
| | | description="Name of the file" |
| | | /> |
| | | <aura:attribute name="tableheaders" type="Object[]" /> |
| | | <aura:attribute name="fileContentData" type="String"/> |
| | | <aura:attribute name="filename" type="String"/> |
| | | <aura:attribute name="fileContentData" type="String" /> |
| | | <aura:attribute name="filename" type="String" /> |
| | | <!-- It will display 100 records . Change for your requirement--> |
| | | <aura:attribute name="NumOfRecords" type="Integer" default="1000"/> |
| | | <aura:attribute name="showMain" type="Boolean" default="true"/> |
| | | <aura:attribute name="NumOfRecords" type="Integer" default="1000" /> |
| | | <aura:attribute name="showMain" type="Boolean" default="true" /> |
| | | <!-- PIPL update Yin Mingjie 21/02/2022 start --> |
| | | <aura:attribute name="AWStoken" type="String"/> |
| | | <aura:attribute name="AWSsearch" type="String"/> |
| | | <aura:attribute name="AWSinsert" type="String"/> |
| | | <aura:attribute name="AWStransactionURL" type="String"/> |
| | | <aura:attribute name="AWSDoctor2Map" type="String"/> |
| | | <aura:attribute name="awsurl" type="Map"/> |
| | | <aura:attribute name="contactawsurl" type="Map"/> |
| | | <aura:attribute name="allselectlistAgencyPerson" type="Map"/> |
| | | <aura:attribute name="AWStoken" type="String" /> |
| | | <aura:attribute name="AWSsearch" type="String" /> |
| | | <aura:attribute name="AWSinsert" type="String" /> |
| | | <aura:attribute name="AWStransactionURL" type="String" /> |
| | | <aura:attribute name="AWSDoctor2Map" type="String" /> |
| | | <aura:attribute name="awsurl" type="Map" /> |
| | | <aura:attribute name="contactawsurl" type="Map" /> |
| | | <aura:attribute name="allselectlistAgencyPerson" type="Map" /> |
| | | <!-- PIPL update Yin Mingjie 21/02/2022 end --> |
| | | |
| | | <!-- start DTT-zhj 增加错误信息table 2023-05-16--> |
| | | <aura:attribute name="errorData" type="Object" /> |
| | | <aura:attribute name="errorColumns" type="List" /> |
| | | <!-- show Error information --> |
| | | <aura:attribute name="showErrorInfo" type="Boolean" default="false" /> |
| | | <!-- end DTT-zhj 增加错误信息table 2023-05-16--> |
| | | |
| | | <!-- 批量添加周报 end--> |
| | | <ltng:require scripts="{! $Resource.AWSService+'/AWSService.js' }" /> |
| | | <ltng:require scripts="{! $Resource.jquery183minjs }" /> |
| | | |
| | | |
| | | <!--ロード中...--> |
| | | <aura:renderIf isTrue="{!v.login}"> |
| | | <div class="slds-spinner_container height100vh"> |
| | | <div class="slds-spinner--brand slds-spinner slds-spinner--medium" role="alert"> |
| | | <span id="aa" class="slds-assistive-text">Loading</span> |
| | | <div class="slds-spinner__dot-a"></div> |
| | | <div class="slds-spinner__dot-b"></div> |
| | | <aura:renderIf isTrue="{!!v.loginEdit}"> |
| | | <!-- add by Deloitte-Link 2023-6-19 --> |
| | | <div class="weeklyReportSpinner"> |
| | | <div class="slds-spinner_container"> |
| | | <div |
| | | class="slds-spinner--brand slds-spinner slds-spinner--medium" |
| | | role="alert" |
| | | > |
| | | <span id="aa" class="slds-assistive-text">Loading</span> |
| | | <div class="slds-spinner__dot-a"></div> |
| | | <div class="slds-spinner__dot-b"></div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </aura:renderIf> |
| | | </aura:renderIf> |
| | | |
| | | |
| | | <div aura:id="report" id="report" class="contents_wrapper"> |
| | | <div class="slds-grid slds-wrap slds-grid--pull-padded"> |
| | | <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 |
| | | 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_date" class="slds-select" change="{!c.select_date_change}"/> |
| | | <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_date" |
| | | class="slds-select" |
| | | change="{!c.select_date_change}" |
| | | /> |
| | | </div> |
| | | |
| | | |
| | | <!-- 代理店担当者 --> |
| | | <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 |
| | | class="tr mt5 slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-12 slds-large-size--1-of-12" |
| | | > |
| | | {!v.fieldsmap.Person_In_Charge2__c} |
| | | </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 |
| | | 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="tr 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="new_button" label="新建" press="{!c.new_report}" disabled="true"/> |
| | | <div |
| | | class="tr slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-12 slds-large-size--1-of-12" |
| | | > |
| | | <ui:button |
| | | aura:id="new_button" |
| | | label="新建" |
| | | press="{!c.new_report}" |
| | | disabled="true" |
| | | /> |
| | | </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="copy_button" label="复制" press="{!c.copy_button}" disabled="true"/> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--3-of-12 slds-large-size--3-of-12" |
| | | > |
| | | <ui:button |
| | | aura:id="copy_button" |
| | | label="复制" |
| | | press="{!c.copy_button}" |
| | | disabled="true" |
| | | /> |
| | | <!-- <ui:button aura:id="import" label="导入" press="{!c.import}" /> --> |
| | | <ui:button aura:id="import" label="导入" press="{!c.import}" /> |
| | | |
| | | |
| | | <!-- <input type="file" class="file" aura:id="file" onchange="{!c.CreateRecord}" style="position:absolute;filter:alpha(opacity=0);" size="1" hidden="true" /> --> |
| | | <!-- <ui:button aura:id="import" label="导出" press="{!c.export}"/> --> |
| | | <ui:button aura:id="export" label="导出" press="{!c.export_condition}"/> |
| | | <ui:button |
| | | aura:id="export" |
| | | label="导出" |
| | | press="{!c.export_condition}" |
| | | /> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | <div aura:id="report_list" class="report_list_area"> |
| | | <div class="slds-table--edit_container slds-is-relative"> |
| | | <table class="slds-table slds-table--edit slds-table--bordered slds-table--fixed-layout slds-no-cell-focus" role="grid" style="width:66.75rem;"> |
| | | <table |
| | | class="slds-table slds-table--edit slds-table--bordered slds-table--fixed-layout slds-no-cell-focus" |
| | | role="grid" |
| | | style="width: 66.75rem" |
| | | > |
| | | <thead> |
| | | <tr class="slds-line-height--reset"> |
| | | <th class="table_header slds-text-title--caps"> |
| | | |
| | | <th |
| | | class="table_header slds-text-title--caps" |
| | | style="width: 250px; font-size: 13px" |
| | | > |
| | | <span class="slds-truncate" title="Name" |
| | | >周报编号</span |
| | | > |
| | | </th> |
| | | <th class="table_header slds-text-title--caps"> |
| | | <span class="slds-truncate" title="Name">{!v.fieldsmap.Person_In_Charge2__c}</span> |
| | | <th |
| | | class="table_header slds-text-title--caps" |
| | | style="width: 100px; font-size: 13px" |
| | | > |
| | | <span class="slds-truncate" title="Name" |
| | | >{!v.fieldsmap.Person_In_Charge2__c}</span |
| | | > |
| | | </th> |
| | | <th class="table_header slds-text-title--caps"> |
| | | <th |
| | | class="table_header slds-text-title--caps" |
| | | style="width: 250px; font-size: 13px" |
| | | > |
| | | <span class="slds-truncate" title="Name">医院</span> |
| | | </th> |
| | | <th class="table_header slds-text-title--caps"> |
| | | <span class="slds-truncate" title="Name">{!v.fieldsmap.Department_Cateogy__c}</span> |
| | | <th |
| | | class="table_header slds-text-title--caps" |
| | | style="width: 100px; font-size: 13px" |
| | | > |
| | | <span class="slds-truncate" title="Name" |
| | | >{!v.fieldsmap.Department_Cateogy__c}</span |
| | | > |
| | | </th> |
| | | <th class="table_header slds-text-title--caps"> |
| | | <th |
| | | class="table_header slds-text-title--caps" |
| | | style="width: 100px; font-size: 13px" |
| | | > |
| | | <!-- PIPL update Yin Mingjie 21/02/2022 start |
| | | <span class="slds-truncate" title="Name">{!v.fieldsmap.doctor2__r}</span> |
| | | PIPL update Yin Mingjie 21/02/2022 end--> |
| | | <span class="slds-truncate" title="Name">{!v.fieldsmap.Agency_Contact__c}</span> |
| | | |
| | | <span |
| | | class="slds-truncate" |
| | | title="Name" |
| | | style="width: 100px; font-size: 13px" |
| | | >{!v.fieldsmap.Agency_Contact__c}</span |
| | | > |
| | | </th> |
| | | <th class="table_header slds-text-title--caps"> |
| | | <span class="slds-truncate" title="Name">{!v.fieldsmap.visitor_title__c}</span> |
| | | <th |
| | | class="table_header slds-text-title--caps" |
| | | style="width: 100px; font-size: 13px" |
| | | > |
| | | <span class="slds-truncate" title="Name" |
| | | >{!v.fieldsmap.visitor_title__c}</span |
| | | > |
| | | </th> |
| | | <th class="table_header slds-text-title--caps"> |
| | | <span class="slds-truncate" title="Name">{!v.fieldsmap.Purpose_Type__c}</span> |
| | | <th |
| | | class="table_header slds-text-title--caps" |
| | | style="width: 100px; font-size: 13px" |
| | | > |
| | | <span class="slds-truncate" title="Name" |
| | | >{!v.fieldsmap.Purpose_Type__c}</span |
| | | > |
| | | </th> |
| | | </tr> |
| | | </thead> |
| | | <tbody> |
| | | <aura:iteration items="{!v.reports}" var="item" indexVar="index"> |
| | | <aura:iteration |
| | | items="{!v.reports}" |
| | | var="item" |
| | | indexVar="index" |
| | | > |
| | | <tr class="slds-hint-parent"> |
| | | <td role="gridcell" class="slds-cell-edit"> |
| | | <ui:inputRadio class="report_radio" name="report_radio" label="{!item.Name}" change="{!c.change_report_radio}"/> |
| | | <lightning:buttonIcon class="edit_button" iconName="utility:edit" size="small" alternativeText="edit" value="{!index}" onclick="{!c.edit_button}"/> |
| | | <ui:inputRadio |
| | | class="report_radio" |
| | | name="report_radio" |
| | | label="{!item.Name}" |
| | | change="{!c.change_report_radio}" |
| | | /> |
| | | <lightning:buttonIcon |
| | | class="edit_button" |
| | | iconName="utility:edit" |
| | | size="small" |
| | | alternativeText="edit" |
| | | value="{!index}" |
| | | onclick="{!c.edit_button}" |
| | | /> |
| | | </td> |
| | | <td role="gridcell" class="slds-cell-edit"> |
| | | <span class="slds-grid slds-grid--align-spread"> |
| | | <span class="slds-truncate" title="{!item.Person_In_Charge2__r.Name}"> |
| | | <span |
| | | class="slds-truncate" |
| | | title="{!item.Person_In_Charge2__r.Name}" |
| | | > |
| | | {!item.Person_In_Charge2__r.Name} |
| | | <!-- <span class="decrypt">{!item.Person_In_Charge2__r.awsdata.lastName}</span> --> |
| | | </span> |
| | |
| | | </th> |
| | | <td role="gridcell" class="slds-cell-edit"> |
| | | <span class="slds-grid slds-grid--align-spread"> |
| | | <span class="slds-truncate" title="{!item.Department_Cateogy__c}">{!item.Department_Cateogy__c}</span> |
| | | <span |
| | | class="slds-truncate" |
| | | title="{!item.Department_Cateogy__c}" |
| | | >{!item.Department_Cateogy__c}</span |
| | | > |
| | | </span> |
| | | </td> |
| | | <td role="gridcell" class="slds-cell-edit"> |
| | | <span class="slds-grid slds-grid--align-spread"> |
| | | <span class="slds-truncate" title="{!item.doctor2__r.Name}"> |
| | | <span class="encrypt">{!item.doctor2__r.Name}</span> |
| | | <span class="decrypt">{!item.doctor2__r.awsdata.name}</span> |
| | | <span |
| | | class="slds-truncate" |
| | | title="{!item.doctor2__r.Name}" |
| | | > |
| | | <span class="encrypt" |
| | | >{!item.doctor2__r.Name}</span |
| | | > |
| | | <span class="decrypt" |
| | | >{!item.doctor2__r.awsdata.name}</span |
| | | > |
| | | </span> |
| | | </span> |
| | | </td> |
| | | <td role="gridcell" class="slds-cell-edit"> |
| | | <span class="slds-grid slds-grid--align-spread"> |
| | | <span class="slds-truncate" title="{!item.visitor_title__c}"> |
| | | <span class="encrypt">{!item.visitor_title__c}</span> |
| | | <span class="decrypt">{!item.doctor2__r.awsdata.doctorDivision1}</span> |
| | | <span |
| | | class="slds-truncate" |
| | | title="{!item.visitor_title__c}" |
| | | > |
| | | <span class="encrypt" |
| | | >{!item.visitor_title__c}</span |
| | | > |
| | | <span class="decrypt" |
| | | >{!item.doctor2__r.awsdata.doctorDivision1}</span |
| | | > |
| | | </span> |
| | | </span> |
| | | </td> |
| | | <td role="gridcell" class="slds-cell-edit"> |
| | | <span class="slds-grid slds-grid--align-spread"> |
| | | <span class="slds-truncate" title="{!item.Purpose_Type__c}">{!item.Purpose_Type__c}</span> |
| | | <span |
| | | class="slds-truncate" |
| | | title="{!item.Purpose_Type__c}" |
| | | >{!item.Purpose_Type__c}</span |
| | | > |
| | | </span> |
| | | </td> |
| | | </tr> |
| | |
| | | </div> |
| | | <aura:renderIf isTrue="{!v.report_count > 0}"> |
| | | <aura:set attribute="else"> |
| | | <div class="no_data_area"> |
| | | {!v.list_message} |
| | | </div> |
| | | <div class="no_data_area">{!v.list_message}</div> |
| | | </aura:set> |
| | | </aura:renderIf> |
| | | </div> |
| | | |
| | | <!-- <ui:button aura:id="test_button" label="test" class="fade animation_on" press="{!c.test}"/>--> |
| | | <!-- <ui:button aura:id="test_button" label="test" class="fade animation_on" press="{!c.test}"/>--> |
| | | <!-- 批量添加周报 start--> |
| | | <div aura:id="modal_import" role="dialog" tabindex="-1" class="disp_none slds-modal slds-fade-in-open slds-modal--large" aria-labelledby="headerTarget"> |
| | | <div class="slds-modal__container "> |
| | | <div class="slds-modal__header "> |
| | | <div |
| | | aura:id="modal_import" |
| | | role="dialog" |
| | | tabindex="-1" |
| | | class="disp_none slds-modal slds-fade-in-open slds-modal--large" |
| | | aria-labelledby="headerTarget" |
| | | > |
| | | <div class="slds-modal__container"> |
| | | <aura:renderIf isTrue="{!v.loginEdit}"> |
| | | <lightning:spinner |
| | | alternativeText="Loading" |
| | | size="medium" |
| | | style="width: 100%; height: 80%; top: 50px" |
| | | /> |
| | | </aura:renderIf> |
| | | <div class="slds-modal__header"> |
| | | <h4 id="headerTarget" class="slds-float--left"></h4> |
| | | <h2 id="headerTarget" class="slds-text-heading--medium">周报批量导入</h2> |
| | | <ui:button aura:id="close_button" label="关闭" class="close_button slds-button slds-button--neutral slds-order--1" press="{!c.close_import}"/> |
| | | <h2 id="headerTarget" class="slds-text-heading--medium"> |
| | | 周报批量导入 |
| | | </h2> |
| | | <ui:button |
| | | aura:id="close_button" |
| | | label="关闭" |
| | | class="close_button slds-button slds-button--neutral slds-order--1" |
| | | press="{!c.close_import}" |
| | | /> |
| | | </div> |
| | | <div class="slds-modal__content slds-scrollable slds-grow slds-p-around--medium " > |
| | | <div |
| | | class="slds-modal__content slds-scrollable slds-grow slds-p-around--medium" |
| | | > |
| | | <aura:if isTrue="{!v.showMain}"> |
| | | <div> |
| | | <!-- <input type="file" class="file" aura:id="file" onchange="{!c.CreateRecord}" value="导入" /> --> |
| | | <lightning:input type="file" class="file" uara:id="file" onchange="{!c.CreateRecord}" /> |
| | | <lightning:input |
| | | type="file" |
| | | class="file" |
| | | uara:id="file" |
| | | onchange="{!c.CreateRecord}" |
| | | /> |
| | | <!-- <ui:button label="Create Accounts" press="{!c.CreateRecord}"/> --> |
| | | </div> |
| | | <aura:set attribute="else"> |
| | | <!-- <ui:outputRichText class="uiOutputRichText slds-m-around-large" value="{!v.TargetFileName}"/> --> |
| | | <ui:outputRichText class="uiOutputRichText slds-m--around-large" value="{!v.TableContent}"/> |
| | | <div class="slds-p-around--large slds-align--absolute-center"> |
| | | <lightning:button label="保存" variant="brand" onclick="{!c.processFileContent}" |
| | | /> |
| | | <lightning:button label="取消" variant="brand" |
| | | onclick="{!c.cancel}" /> |
| | | <ui:outputRichText |
| | | class="uiOutputRichText slds-m--around-large" |
| | | value="{!v.TableContent}" |
| | | /> |
| | | <div |
| | | class="slds-p-around--large slds-align--absolute-center" |
| | | > |
| | | <lightning:button |
| | | label="保存" |
| | | variant="brand" |
| | | onclick="{!c.processFileContent}" |
| | | /> |
| | | <lightning:button |
| | | label="取消" |
| | | variant="brand" |
| | | onclick="{!c.cancel}" |
| | | /> |
| | | </div> |
| | | |
| | | <!-- start DTT-zhj 增加错误信息table 2023-05-16--> |
| | | <aura:if isTrue="{!v.showErrorInfo}"> |
| | | <div |
| | | class="slds-p-around--large slds-align--absolute-center" |
| | | > |
| | | <lightning:button |
| | | label="导出错误信息" |
| | | variant="brand" |
| | | onclick="{!c.exportErrorInfo}" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-p-around--large slds-align--absolute-center" |
| | | > |
| | | <div style="height: 300px; overflow-x: scroll"> |
| | | <lightning:datatable |
| | | keyField="id" |
| | | data="{! v.errorData }" |
| | | columns="{! v.errorColumns }" |
| | | hideCheckboxColumn="true" |
| | | /> |
| | | </div> |
| | | </div> |
| | | </aura:if> |
| | | <!-- start DTT-zhj 增加错误信息table 2023-05-16--> |
| | | </aura:set> |
| | | </aura:if> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div aura:id="modal_importbg" class="disp_none slds-backdrop slds-backdrop--open"></div> |
| | | <div |
| | | aura:id="modal_importbg" |
| | | class="disp_none slds-backdrop slds-backdrop--open" |
| | | ></div> |
| | | <!-- 批量添加周报 end--> |
| | | |
| | | <!-- 批量导出周报 start--> |
| | | <div aura:id="modal_export" role="dialog" tabindex="-1" class="disp_none slds-modal slds-fade-in-open slds-modal--large" > |
| | | <div |
| | | aura:id="modal_export" |
| | | role="dialog" |
| | | tabindex="-1" |
| | | class="disp_none slds-modal slds-fade-in-open slds-modal--large" |
| | | > |
| | | <div class="slds-modal__container"> |
| | | <div class="slds-modal__header"> |
| | | <h4 id="headerTarget" class="slds-float--left"></h4> |
| | | <h2 id="headerTarget" class="slds-text-heading--medium">周报批量导出</h2> |
| | | <ui:button aura:id="close_button" label="关闭" class="close_button slds-button slds-button--neutral slds-order--1" press="{!c.close_export}"/> |
| | | <h2 id="headerTarget" class="slds-text-heading--medium"> |
| | | 周报批量导出 |
| | | </h2> |
| | | <ui:button |
| | | aura:id="close_button" |
| | | label="关闭" |
| | | class="close_button slds-button slds-button--neutral slds-order--1" |
| | | press="{!c.close_export}" |
| | | /> |
| | | </div> |
| | | <div class="slds-modal__content slds-scrollable slds-grow slds-p-around--medium"> |
| | | <div |
| | | class="slds-modal__content slds-scrollable slds-grow slds-p-around--medium" |
| | | > |
| | | <aura:if isTrue="{!v.showMain}"> |
| | | <div class="slds-grid slds-wrap slds-grid--pull-padded" > |
| | | <div class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-4"> |
| | | </div> |
| | | <div class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-4"> |
| | | <div class="slds-grid slds-wrap slds-grid--pull-padded"> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-4" |
| | | ></div> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-4" |
| | | > |
| | | 活动日开始日期 |
| | | |
| | | <lightning:input type="Date" class="slds-input slds-input_bare " aura:id="input-report-date1" /> |
| | | </div> |
| | | <div class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-4"> |
| | | 活动日结束日期 |
| | | <lightning:input type="Date" class="slds-input slds-input_bare " aura:id="input-report-date2" /> |
| | | </div> |
| | | <div class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-4"> |
| | | </div> |
| | | |
| | | <div class="slds-p-around--large slds-align--absolute-center"> |
| | | <lightning:button label="确认" variant="brand" onclick="{!c.select_repores_date}" |
| | | /> |
| | | <lightning:button label="取消" variant="brand" |
| | | onclick="{!c.close_export}" /> |
| | | <lightning:input |
| | | type="Date" |
| | | class="slds-input slds-input_bare" |
| | | aura:id="input-report-date1" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-4" |
| | | > |
| | | 活动日结束日期 |
| | | <lightning:input |
| | | type="Date" |
| | | class="slds-input slds-input_bare" |
| | | aura:id="input-report-date2" |
| | | /> |
| | | </div> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-4" |
| | | ></div> |
| | | |
| | | <div |
| | | class="slds-p-around--large slds-align--absolute-center" |
| | | > |
| | | <lightning:button |
| | | label="确认" |
| | | variant="brand" |
| | | onclick="{!c.select_repores_date}" |
| | | /> |
| | | <lightning:button |
| | | label="取消" |
| | | variant="brand" |
| | | onclick="{!c.close_export}" |
| | | /> |
| | | </div> |
| | | </div> |
| | | <!-- <div> |
| | |
| | | onclick="{!c.close_export}" /> |
| | | </div> --> |
| | | <aura:set attribute="else"> |
| | | <ui:outputRichText class="uiOutputRichText slds-m--around-large" value="{!v.TableContent2}"/> |
| | | <div class="slds-p-around--large slds-align--absolute-center"> |
| | | <lightning:button label="确认" variant="brand" onclick="{!c.exportDate}" |
| | | /> |
| | | <lightning:button label="取消" variant="brand" |
| | | onclick="{!c.close_export}" /> |
| | | <ui:outputRichText |
| | | class="uiOutputRichText slds-m--around-large" |
| | | value="{!v.TableContent2}" |
| | | /> |
| | | <div |
| | | class="slds-p-around--large slds-align--absolute-center" |
| | | > |
| | | <lightning:button |
| | | label="确认" |
| | | variant="brand" |
| | | onclick="{!c.exportDate}" |
| | | /> |
| | | <lightning:button |
| | | label="取消" |
| | | variant="brand" |
| | | onclick="{!c.close_export}" |
| | | /> |
| | | </div> |
| | | |
| | | </aura:set> |
| | | </aura:if> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div aura:id="modal_exportbg" class="disp_none slds-backdrop slds-backdrop--open"></div> |
| | | <div |
| | | aura:id="modal_exportbg" |
| | | class="disp_none slds-backdrop slds-backdrop--open" |
| | | ></div> |
| | | <!-- 批量导出周报 end--> |
| | | |
| | | <div aura:id="modal_window" role="dialog" tabindex="-1" class="disp_none slds-modal slds-fade-in-open slds-modal--large" aria-labelledby="headerTarget"> |
| | | <div |
| | | aura:id="modal_window" |
| | | role="dialog" |
| | | tabindex="-1" |
| | | class="disp_none slds-modal slds-fade-in-open slds-modal--large" |
| | | aria-labelledby="headerTarget" |
| | | > |
| | | <div class="slds-modal__container"> |
| | | <aura:renderIf isTrue="{!v.loginEdit}"> |
| | | <lightning:spinner |
| | | alternativeText="Loading" |
| | | size="medium" |
| | | style="width: 100%; height: 80%; top: 50px" |
| | | /> |
| | | </aura:renderIf> |
| | | <div class="slds-modal__header"> |
| | | <h4 id="headerTarget" class="slds-float--left">{!v.dialog_type}</h4> |
| | | <h2 id="headerTarget" class="slds-text-heading--medium">周报({!v.selected_date} {!v.selected_agency_person})</h2> |
| | | <ui:button aura:id="close_button" label="关闭" class="close_button slds-button slds-button--neutral slds-order--1" press="{!c.toggle_report}"/> |
| | | <h4 id="headerTarget" class="slds-float--left"></h4> |
| | | <h2 id="headerTarget" class="slds-text-heading--medium"> |
| | | 周报({!v.selected_date} {!v.selected_agency_person}) |
| | | </h2> |
| | | <ui:button |
| | | aura:id="close_button" |
| | | label="关闭" |
| | | class="close_button slds-button slds-button--neutral slds-order--1" |
| | | press="{!c.toggle_report}" |
| | | /> |
| | | </div> |
| | | <div class="slds-modal__content slds-grow slds-p-around--medium"> |
| | | <div class="slds-box slds-theme--shade"> |
| | | <div class="slds-grid slds-wrap slds-grid--pull-padded" > |
| | | <div class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6"> |
| | | <div class="slds-grid slds-wrap slds-grid--pull-padded"> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6 marginTop" |
| | | > |
| | | 活动日 |
| | | <!-- <ui:inputSelect aura:id="select_opportunity" class="slds-select"/> --> |
| | | <force:inputField value="{!v.data.Report_Date__c}" aura:id="input-report-date"/> |
| | | <!-- <force:inputField value="{!v.data.Report_Date__c}" aura:id="input-report-date"/> --> |
| | | <lightning:input |
| | | type="date" |
| | | value="{!v.data.Report_Date__c}" |
| | | aura:id="input-report-date" |
| | | variant="label-hidden" |
| | | /> |
| | | </div> |
| | | <!-- 医院 --> |
| | | <div aura:id="hospital_list" class="slds-form-element slds-lookup slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-5" data-select="single"> |
| | | <ui:inputText aura:id="hospital_input_text" label="医院" class="field" value="{!v.hospital}" updateOn="keyup"/> |
| | | <div |
| | | aura:id="hospital_list" |
| | | class="slds-form-element slds-lookup slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-5 marginTop" |
| | | data-select="single" |
| | | > |
| | | <!-- <ui:inputText aura:id="hospital_input_text" label="医院" class="field" value="{!v.hospital}" updateOn="keyup"/> --> |
| | | 医院 |
| | | <lightning:input |
| | | aura:id="hospital_input_text" |
| | | class="field" |
| | | value="{!v.hospital}" |
| | | variant="label-hidden" |
| | | updateOn="keyup" |
| | | /> |
| | | <div class="slds-lookup__menu" id="lookup-66"> |
| | | <ul class="slds-lookup__list" role="listbox"> |
| | | <aura:iteration var="hospital" items="{!v.hospitalList}"> |
| | | <li role="presentation" onclick="{!c.selectHos}" data-accName="{!hospital.Hospital_Name_readonly__c}" data-accId="{!hospital.Hospital__c}"> |
| | | <span class="slds-lookup__item-action slds-media" id="lookup-option-498" role="option"> |
| | | <aura:iteration |
| | | var="hospital" |
| | | items="{!v.hospitalList}" |
| | | > |
| | | <li |
| | | role="presentation" |
| | | onclick="{!c.selectHos}" |
| | | data-accName="{!hospital.Hospital_Name_readonly__c}" |
| | | data-accId="{!hospital.Hospital__c}" |
| | | > |
| | | <span |
| | | class="slds-lookup__item-action slds-media" |
| | | id="lookup-option-498" |
| | | role="option" |
| | | > |
| | | <div class="slds-media__body"> |
| | | <div class="slds-lookup__result-text">{!hospital.Hospital_Name_readonly__c}</div> |
| | | <div |
| | | class="slds-lookup__result-text" |
| | | > |
| | | {!hospital.Hospital_Name_readonly__c} |
| | | </div> |
| | | </div> |
| | | </span> |
| | | </li> |
| | |
| | | </ul> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | <!-- 科室分类 --> |
| | | <div class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-8"> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-8 marginTop" |
| | | > |
| | | {!v.fieldsmap.Department_Cateogy__c} |
| | | <ui:inputSelect aura:id="select_department" class="slds-select" change="{!c.select_department}"/> |
| | | <ui:inputSelect |
| | | aura:id="select_department" |
| | | class="slds-select" |
| | | change="{!c.select_department}" |
| | | /> |
| | | </div> |
| | | |
| | | |
| | | <!-- 先生 --> |
| | | <div class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-8"> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-8 marginTop" |
| | | > |
| | | {!v.fieldsmap.doctor2__c} |
| | | <ui:inputSelect aura:id="select_doctor" class="slds-select" change="{!c.doctor_change}"/> |
| | | <ui:inputSelect |
| | | aura:id="select_doctor" |
| | | class="slds-select" |
| | | change="{!c.doctor_change}" |
| | | /> |
| | | </div> |
| | | |
| | | <div class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-12"> |
| | | <br/> |
| | | <ui:button label="新建" class="slds-button" press="{!c.createCon}" disabled="true" aura:id="new_con"/> |
| | | |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-12 marginTop" |
| | | > |
| | | <br /> |
| | | <ui:button |
| | | label="新建" |
| | | class="slds-button" |
| | | press="{!c.createCon}" |
| | | disabled="true" |
| | | aura:id="new_con" |
| | | /> |
| | | </div> |
| | | |
| | | |
| | | <!-- 职位 --> |
| | | <div class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-8"> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-8 marginTop" |
| | | > |
| | | {!v.fieldsmap.visitor_title__c} |
| | | <div>{!v.doctor_title}</div> |
| | | </div> |
| | | </div> |
| | | <!-- 活动区分 --> |
| | | <div class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6"> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6 marginTop" |
| | | > |
| | | {!v.fieldsmap.Purpose_Type__c} |
| | | <ui:inputSelect aura:id="select_purpose_type" class="slds-select" change="{!c.select_purpose_type}"/> |
| | | <ui:inputSelect |
| | | aura:id="select_purpose_type" |
| | | class="slds-select" |
| | | change="{!c.select_purpose_type}" |
| | | /> |
| | | </div> |
| | | <!-- 询价 --> |
| | | <div aura:id="input-opportunity-opp" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--4-of-12 slds-large-size--4-of-12"> |
| | | <div |
| | | aura:id="input-opportunity-opp" |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--4-of-12 slds-large-size--4-of-12 marginTop" |
| | | > |
| | | {!v.fieldsmap.Opportunity__c} |
| | | <!-- <ui:inputSelect aura:id="select_opportunity" class="slds-select"/> --> |
| | | <!-- <force:inputField value="{!v.data.Opportunity__c}" aura:id="input-opportunity"/> --> |
| | | <c:strike_lookup label="" |
| | | object="Agency_Opportunity__c" |
| | | searchField="Name" |
| | | placeholder="搜索经销商询价..." |
| | | iconName="standard:opportunity" |
| | | subtitleField="Department_Cateogy__c,Agency_Opportunity_No__c,Change_To_Opportunity__r.Name" |
| | | order="StageName__c" |
| | | limit="5" |
| | | loadingMessage="Loading..." |
| | | errorMessage="Invalid input" |
| | | allowNewRecords = "true" |
| | | overrideNewEvent = "true" |
| | | showRecentRecords ="true" |
| | | value="{!v.data.Opportunity__c}" |
| | | filter="{!v.opportunity_cfilter}" |
| | | subTitleFormat="{0}+{1}+{2}"/> |
| | | <c:strike_lookup |
| | | label="" |
| | | object="Agency_Opportunity__c" |
| | | searchField="Name" |
| | | placeholder="搜索经销商询价..." |
| | | iconName="standard:opportunity" |
| | | subtitleField="Department_Cateogy__c,Agency_Opportunity_No__c,Change_To_Opportunity__r.Name" |
| | | order="StageName__c" |
| | | limit="5" |
| | | loadingMessage="Loading..." |
| | | errorMessage="Invalid input" |
| | | allowNewRecords="true" |
| | | overrideNewEvent="true" |
| | | showRecentRecords="true" |
| | | value="{!v.data.Opportunity__c}" |
| | | filter="{!v.opportunity_cfilter}" |
| | | subTitleFormat="{0}+{1}+{2}" |
| | | /> |
| | | </div> |
| | | <div aura:id="input-opportunity-blank" class="lds-p-horizontal--small slds-size--1-of-1 slds-medium-size--8-of-12 slds-large-size--8-of-12"> |
| | | </div> |
| | | <div aura:id="input-opportunity-stage" class="disp_none slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--2-of-12 slds-large-size--2-of-12"> |
| | | <div |
| | | aura:id="input-opportunity-blank" |
| | | class="lds-p-horizontal--small slds-size--1-of-1 slds-medium-size--8-of-12 slds-large-size--8-of-12 marginTop" |
| | | ></div> |
| | | <div |
| | | aura:id="input-opportunity-stage" |
| | | class="disp_none slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--2-of-12 slds-large-size--2-of-12 marginTop" |
| | | > |
| | | {!v.fieldsmap.StageName__c} |
| | | <!-- <ui:inputSelect aura:id="select_opportunity" class="slds-select"/> --> |
| | | <ui:inputSelect aura:id="select_stageName" class="slds-select"/> |
| | | <ui:inputSelect |
| | | aura:id="select_stageName" |
| | | class="slds-select" |
| | | /> |
| | | <!-- <force:inputField value="{!v.oppdata.StageName__c}" aura:id="input-oppstage" /> --> |
| | | </div> |
| | | <div aura:id="input-opportunity-amount1" class="disp_none slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--2-of-12 slds-large-size--2-of-12"> |
| | | <div |
| | | aura:id="input-opportunity-amount1" |
| | | class="disp_none slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--2-of-12 slds-large-size--2-of-12 marginTop" |
| | | > |
| | | {!v.fieldsmap.Amount__c} |
| | | <!-- <ui:inputSelect aura:id="select_opportunity" class="slds-select"/> --> |
| | | <force:inputField value="{!v.oppdata.Amount__c}" class=""/> |
| | | <force:inputField |
| | | value="{!v.oppdata.Amount__c}" |
| | | class="" |
| | | /> |
| | | </div> |
| | | <div aura:id="input-opportunity-amount2" class="disp_none slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--2-of-12 slds-large-size--2-of-12"> |
| | | <div |
| | | aura:id="input-opportunity-amount2" |
| | | class="disp_none slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--2-of-12 slds-large-size--2-of-12 marginTop" |
| | | > |
| | | {!v.fieldsmap.OCMSale_Price__c} |
| | | <!-- <ui:inputSelect aura:id="select_opportunity" class="slds-select"/> --> |
| | | <force:inputField value="{!v.oppdata.OCMSale_Price__c}" class=""/> |
| | | <force:inputField |
| | | value="{!v.oppdata.OCMSale_Price__c}" |
| | | class="" |
| | | /> |
| | | </div> |
| | | <div aura:id="input-opportunity-date" class="disp_none slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--2-of-12 slds-large-size--2-of-12"> |
| | | <div |
| | | aura:id="input-opportunity-date" |
| | | class="disp_none slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--2-of-12 slds-large-size--2-of-12 marginTop" |
| | | > |
| | | {!v.fieldsmap.Close_Forecasted_Date__c} |
| | | <!-- <ui:inputSelect aura:id="select_opportunity" class="slds-select"/> --> |
| | | <force:inputField value="{!v.oppdata.Close_Forecasted_Date__c}" class=""/> |
| | | <force:inputField |
| | | value="{!v.oppdata.Close_Forecasted_Date__c}" |
| | | class="" |
| | | /> |
| | | </div> |
| | | <!-- 製品分類 --> |
| | | <div aura:id="product_category_select1" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--3-of-12 slds-large-size--3-of-12"> |
| | | <div |
| | | aura:id="product_category_select1" |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--3-of-12 slds-large-size--3-of-12 marginTop" |
| | | > |
| | | {!v.fieldsmap.Product_Category1__c} |
| | | <!-- <force:inputField value="{!v.data.Product_Category1__c}" aura:id="input-product-category1"/> --> |
| | | <ui:inputSelect aura:id="select_Product1" class="slds-select" change="{!c.productcategoryChange1}"/> |
| | | <ui:inputSelect |
| | | aura:id="select_Product1" |
| | | class="slds-select" |
| | | change="{!c.productcategoryChange1}" |
| | | /> |
| | | </div> |
| | | <div aura:id="product_category_select2" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--3-of-12 slds-large-size--3-of-12"> |
| | | <div |
| | | aura:id="product_category_select2" |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--3-of-12 slds-large-size--3-of-12 marginTop" |
| | | > |
| | | {!v.fieldsmap.Product_Category2__c} |
| | | <!-- <force:inputField value="{!v.data.Product_Category2__c}" aura:id="input-product-category2"/> --> |
| | | <ui:inputSelect aura:id="select_Product2" class="slds-select" change="{!c.productcategoryChange2}"/> |
| | | <ui:inputSelect |
| | | aura:id="select_Product2" |
| | | class="slds-select" |
| | | change="{!c.productcategoryChange2}" |
| | | /> |
| | | </div> |
| | | <div aura:id="product_category_select3" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--3-of-12 slds-large-size--3-of-12"> |
| | | <div |
| | | aura:id="product_category_select3" |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--3-of-12 slds-large-size--3-of-12 marginTop" |
| | | > |
| | | {!v.fieldsmap.Product_Category3__c} |
| | | <!-- <force:inputField value="{!v.data.Product_Category3__c}" aura:id="input-product-category3"/> --> |
| | | <ui:inputSelect aura:id="select_Product3" class="slds-select" change="{!c.productcategoryChange3}"/> |
| | | <ui:inputSelect |
| | | aura:id="select_Product3" |
| | | class="slds-select" |
| | | change="{!c.productcategoryChange3}" |
| | | /> |
| | | </div> |
| | | <!--SWAG-CBX68C fy 【委托】DAMS系统周报模块内容需求增加 start--> |
| | | <!-- 支援需求 change="{!c.SupportNeeds__c}"--> |
| | | <div class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6"> |
| | | <div |
| | | class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6 marginTop" |
| | | > |
| | | {!v.fieldsmap.SupportNeeds__c} |
| | | <ui:inputSelect aura:id="SupportNeeds__c" class="slds-select" /> |
| | | <ui:inputSelect |
| | | aura:id="SupportNeeds__c" |
| | | class="slds-select" |
| | | /> |
| | | </div> |
| | | <!--SWAG-CBX68C fy 【委托】DAMS系统周报模块内容需求增加 end--> |
| | | <div aura:id="result" class="disp_none slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--3-of-12 slds-large-size--3-of-12"> |
| | | <div |
| | | aura:id="result" |
| | | class="disp_none slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--3-of-12 slds-large-size--3-of-12 marginTop" |
| | | > |
| | | {!v.fieldsmap.Result__c} |
| | | <ui:inputSelect aura:id="select_result" class="slds-select"/> |
| | | <ui:inputSelect |
| | | aura:id="select_result" |
| | | class="slds-select" |
| | | /> |
| | | <!-- <ui:inputText label="结果" class="bcolor" value="{!v.result}"/> --> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="save_button_area"> |
| | | <ui:button aura:id="save_button" label="保存并新建" class="save_button slds-button slds-button--brand slds-order--3" press="{!c.save_report}"/> |
| | | <ui:button |
| | | aura:id="save_button" |
| | | label="保存并新建" |
| | | class="save_button slds-button slds-button--brand slds-order--3" |
| | | press="{!c.save_report}" |
| | | /> |
| | | </div> |
| | | |
| | | |
| | | <aura:renderIf isTrue="{!v.reports_now_count > 0}"> |
| | | <div class="mt40 slds-box slds-theme--shade"> |
| | | <div class="slds-table--edit_container slds-is-relative"> |
| | | <table class="slds-table slds-table--edit slds-table--bordered slds-table--fixed-layout slds-no-cell-focus" role="grid"> |
| | | <div |
| | | class="slds-table--edit_container slds-is-relative" |
| | | > |
| | | <table |
| | | class="slds-table slds-table--edit slds-table--bordered slds-table--fixed-layout slds-no-cell-focus" |
| | | role="grid" |
| | | > |
| | | <thead> |
| | | <tr class="slds-line-height--reset"> |
| | | <th class="table_header slds-text-title--caps"> |
| | | <span class="slds-truncate" title="Name"></span> |
| | | <th |
| | | class="table_header slds-text-title--caps" |
| | | > |
| | | <span |
| | | class="slds-truncate" |
| | | title="Name" |
| | | ></span> |
| | | </th> |
| | | <th class="table_header slds-text-title--caps"> |
| | | <span class="slds-truncate" title="Name">医院</span> |
| | | <th |
| | | class="table_header slds-text-title--caps" |
| | | > |
| | | <span |
| | | class="slds-truncate" |
| | | title="Name" |
| | | >医院</span |
| | | > |
| | | </th> |
| | | <th class="table_header slds-text-title--caps"> |
| | | <span class="slds-truncate" title="Name">{!v.fieldsmap.Department_Cateogy__c}</span> |
| | | <th |
| | | class="table_header slds-text-title--caps" |
| | | > |
| | | <span |
| | | class="slds-truncate" |
| | | title="Name" |
| | | >{!v.fieldsmap.Department_Cateogy__c}</span |
| | | > |
| | | </th> |
| | | <th class="table_header slds-text-title--caps"> |
| | | <span class="slds-truncate" title="Name">{!v.fieldsmap.doctor2__c}</span> |
| | | <th |
| | | class="table_header slds-text-title--caps" |
| | | > |
| | | <span |
| | | class="slds-truncate" |
| | | title="Name" |
| | | >{!v.fieldsmap.doctor2__c}</span |
| | | > |
| | | </th> |
| | | <th class="table_header slds-text-title--caps"> |
| | | <span class="slds-truncate" title="Name">{!v.fieldsmap.visitor_title__c}</span> |
| | | <th |
| | | class="table_header slds-text-title--caps" |
| | | > |
| | | <span |
| | | class="slds-truncate" |
| | | title="Name" |
| | | >{!v.fieldsmap.visitor_title__c}</span |
| | | > |
| | | </th> |
| | | <th class="table_header slds-text-title--caps"> |
| | | <span class="slds-truncate" title="Name">{!v.fieldsmap.Purpose_Type__c}</span> |
| | | <th |
| | | class="table_header slds-text-title--caps" |
| | | > |
| | | <span |
| | | class="slds-truncate" |
| | | title="Name" |
| | | >{!v.fieldsmap.Purpose_Type__c}</span |
| | | > |
| | | </th> |
| | | </tr> |
| | | </thead> |
| | | <tbody> |
| | | <aura:iteration items="{!v.reports_now}" var="item" indexVar="index"> |
| | | <tr aura:id="modal_data_list_tr" class="slds-hint-parent"> |
| | | <td role="gridcell" class="slds-cell-edit"> |
| | | <span class="slds-grid slds-grid--align-spread"> |
| | | <span class="slds-truncate" title="{!item.Department_Cateogy__c}">{!item.Name}</span> |
| | | <aura:iteration |
| | | items="{!v.reports_now}" |
| | | var="item" |
| | | indexVar="index" |
| | | > |
| | | <tr |
| | | aura:id="modal_data_list_tr" |
| | | class="slds-hint-parent" |
| | | > |
| | | <td |
| | | role="gridcell" |
| | | class="slds-cell-edit" |
| | | > |
| | | <span |
| | | class="slds-grid slds-grid--align-spread" |
| | | > |
| | | <span |
| | | class="slds-truncate" |
| | | title="{!item.Department_Cateogy__c}" |
| | | >{!item.Name}</span |
| | | > |
| | | </span> |
| | | </td> |
| | | <td role="gridcell" class="slds-cell-edit"> |
| | | <span class="slds-grid slds-grid--align-spread"> |
| | | <span class="slds-truncate" title="{!item.Agency_Hospital__r.Name}">{!item.Agency_Hospital__r.Name}</span> |
| | | <td |
| | | role="gridcell" |
| | | class="slds-cell-edit" |
| | | > |
| | | <span |
| | | class="slds-grid slds-grid--align-spread" |
| | | > |
| | | <span |
| | | class="slds-truncate" |
| | | title="{!item.Agency_Hospital__r.Name}" |
| | | >{!item.Agency_Hospital__r.Name}</span |
| | | > |
| | | </span> |
| | | </td> |
| | | <td role="gridcell" class="slds-cell-edit"> |
| | | <span class="slds-grid slds-grid--align-spread"> |
| | | <span class="slds-truncate" title="{!item.Department_Cateogy__c}">{!item.Department_Cateogy__c}</span> |
| | | <td |
| | | role="gridcell" |
| | | class="slds-cell-edit" |
| | | > |
| | | <span |
| | | class="slds-grid slds-grid--align-spread" |
| | | > |
| | | <span |
| | | class="slds-truncate" |
| | | title="{!item.Department_Cateogy__c}" |
| | | >{!item.Department_Cateogy__c}</span |
| | | > |
| | | </span> |
| | | </td> |
| | | <td role="gridcell" class="slds-cell-edit"> |
| | | <span class="slds-grid slds-grid--align-spread"> |
| | | <span class="slds-truncate" title="{!item.doctor2__r.Name}"> |
| | | <span class="encrypt">{!item.doctor2__r.Name}</span> |
| | | <span class="decrypt">{!item.doctor2NameOrigin}</span> |
| | | <td |
| | | role="gridcell" |
| | | class="slds-cell-edit" |
| | | > |
| | | <span |
| | | class="slds-grid slds-grid--align-spread" |
| | | > |
| | | <span |
| | | class="slds-truncate" |
| | | title="{!item.doctor2__r.Name}" |
| | | > |
| | | <span class="encrypt" |
| | | >{!item.doctor2__r.Name}</span |
| | | > |
| | | <span class="decrypt" |
| | | >{!item.doctor2NameOrigin}</span |
| | | > |
| | | </span> |
| | | </span> |
| | | </td> |
| | | <td role="gridcell" class="slds-cell-edit"> |
| | | <span class="slds-grid slds-grid--align-spread"> |
| | | <span class="slds-truncate" title="{!item.visitor_title__c}"> |
| | | <span class="encrypt">{!item.visitor_title__c}</span> |
| | | <span class="decrypt">{!item.visitorTitleOrigin}</span> |
| | | <td |
| | | role="gridcell" |
| | | class="slds-cell-edit" |
| | | > |
| | | <span |
| | | class="slds-grid slds-grid--align-spread" |
| | | > |
| | | <span |
| | | class="slds-truncate" |
| | | title="{!item.visitor_title__c}" |
| | | > |
| | | <span class="encrypt" |
| | | >{!item.visitor_title__c}</span |
| | | > |
| | | <span class="decrypt" |
| | | >{!item.visitorTitleOrigin}</span |
| | | > |
| | | </span> |
| | | </span> |
| | | </td> |
| | | <td role="gridcell" class="slds-cell-edit"> |
| | | <span class="slds-grid slds-grid--align-spread"> |
| | | <span class="slds-truncate" title="{!item.Purpose_Type__c}">{!item.Purpose_Type__c}</span> |
| | | <td |
| | | role="gridcell" |
| | | class="slds-cell-edit" |
| | | > |
| | | <span |
| | | class="slds-grid slds-grid--align-spread" |
| | | > |
| | | <span |
| | | class="slds-truncate" |
| | | title="{!item.Purpose_Type__c}" |
| | | >{!item.Purpose_Type__c}</span |
| | | > |
| | | </span> |
| | | </td> |
| | | </tr> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div aura:id="modal_bg" class="disp_none slds-backdrop slds-backdrop--open"></div> |
| | | |
| | | <div aura:id="modal_confirm" role="dialog" tabindex="-2" aria-labelledby="header43" class="disp_none slds-modal slds-fade-in-open"> |
| | | <div |
| | | aura:id="modal_bg" |
| | | class="disp_none slds-backdrop slds-backdrop--open" |
| | | ></div> |
| | | |
| | | <div |
| | | aura:id="modal_confirm" |
| | | role="dialog" |
| | | tabindex="-2" |
| | | aria-labelledby="header43" |
| | | class="disp_none slds-modal slds-fade-in-open" |
| | | > |
| | | <div class="slds-modal__container"> |
| | | <div class="slds-modal__header"> |
| | | <h2 id="header43" class="slds-text-heading--medium">{!v.modal_confirm_title}</h2> |
| | | <h2 id="header43" class="slds-text-heading--medium"> |
| | | {!v.modal_confirm_title} |
| | | </h2> |
| | | </div> |
| | | <div class="slds-modal__content slds-p-around--medium"> |
| | | <p>{!v.modal_confirm_text}</p> |
| | | </div> |
| | | <div class="slds-modal__footer"> |
| | | <ui:button label="是" class="slds-button slds-button--brand" press="{!c.yes_button}"/> |
| | | <ui:button label="否" class="slds-button slds-button--neutral" press="{!c.no_button}" /> |
| | | <ui:button |
| | | label="是" |
| | | class="slds-button slds-button--brand" |
| | | press="{!c.yes_button}" |
| | | /> |
| | | <ui:button |
| | | label="否" |
| | | class="slds-button slds-button--neutral" |
| | | press="{!c.no_button}" |
| | | /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div aura:id="modal_confirm_bg" class="disp_none slds-backdrop slds-backdrop--open"></div> |
| | | <div |
| | | aura:id="modal_confirm_bg" |
| | | class="disp_none slds-backdrop slds-backdrop--open" |
| | | ></div> |
| | | |
| | | <div aura:id="modal_newAC" role="dialog" tabindex="-3" aria-labelledby="headertest" class="disp_none slds-modal slds-fade-in-open"> |
| | | <div |
| | | aura:id="modal_newAC" |
| | | role="dialog" |
| | | tabindex="-3" |
| | | aria-labelledby="headertest" |
| | | class="disp_none slds-modal slds-fade-in-open" |
| | | > |
| | | <div class="slds-modal__container"> |
| | | <aura:renderIf isTrue="{!v.loginEdit}"> |
| | | <lightning:spinner |
| | | alternativeText="Loading" |
| | | size="medium" |
| | | style="width: 100%; height: 80%; top: 50px" |
| | | /> |
| | | </aura:renderIf> |
| | | <div class="slds-modal__header"> |
| | | <h2 id="headertest" class="slds-text-heading--medium">新建.客户人员</h2> |
| | | <h2 id="headertest" class="slds-text-heading--medium"> |
| | | 新建.客户人员 |
| | | </h2> |
| | | </div> |
| | | <div class="slds-modal__content slds-p-around--medium"> |
| | | <lightning:recordEditForm aura:id="recordEditForm" objectApiName="Agency_Contact__c" onsuccess="{!c.handleSuccess}" onload="{!c.showRequiredFields}" onsubmit="{!c.handleSubmit}"> |
| | | <lightning:messages aura:id="OppMessage" /> |
| | | <lightning:recordEditForm |
| | | aura:id="recordEditForm" |
| | | objectApiName="Agency_Contact__c" |
| | | onsuccess="{!c.handleSuccess}" |
| | | onload="{!c.showRequiredFields}" |
| | | onsubmit="{!c.handleSubmit}" |
| | | > |
| | | <lightning:messages aura:id="OppMessage" /> |
| | | <!-- onload="{!c.showRequiredFields}" --> |
| | | <aura:renderIf isTrue="{!v.truthy}"> |
| | | <lightning:inputField fieldName="Name" aura:id="newOpportunityField" /> |
| | | <lightning:inputField fieldName="Type__c" aura:id="newOpportunityField" /> |
| | | <lightning:inputField fieldName="Doctor_Division1__c" aura:id="newOpportunityField" /> |
| | | <lightning:inputField |
| | | fieldName="Name" |
| | | aura:id="newOpportunityField" |
| | | /> |
| | | <lightning:inputField |
| | | fieldName="Type__c" |
| | | aura:id="newOpportunityField" |
| | | /> |
| | | <lightning:inputField |
| | | fieldName="Doctor_Division1__c" |
| | | aura:id="newOpportunityField" |
| | | /> |
| | | <!-- <lightning:inputField class="customRequired none" aura:id="Input_type__c" fieldName="Type__c"/> |
| | | <lightning:inputField class="customRequired none" aura:id="Input_Doctor_Division1__c" fieldName="Doctor_Division1__c"/> --> |
| | | </aura:renderIf> |
| | | <br/> |
| | | <br/> |
| | | <br/> |
| | | <br/> |
| | | <br/> |
| | | <br /> |
| | | <br /> |
| | | <br /> |
| | | <br /> |
| | | <br /> |
| | | <div class="save_button_area"> |
| | | <lightning:button class="slds-m-top_small" type="button" label="取消" onclick="{!c.createCancel}"/> |
| | | <lightning:button class="slds-m-top_small" type="submit" label="保存" /> |
| | | <lightning:button |
| | | class="slds-m-top_small" |
| | | type="button" |
| | | label="取消" |
| | | onclick="{!c.createCancel}" |
| | | /> |
| | | <lightning:button |
| | | class="slds-m-top_small" |
| | | type="submit" |
| | | label="新建" |
| | | /> |
| | | </div> |
| | | </lightning:recordEditForm> |
| | | </lightning:recordEditForm> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | </aura:component> |
| | | </aura:component> |
| | |
| | | .THIS.height100vh { |
| | | height: 100vh; |
| | | } |
| | | .THIS.contents_wrapper { |
| | | /* .THIS.contents_wrapper { |
| | | padding-top: 50px; |
| | | } |
| | | width: 105%; |
| | | } */ |
| | | .THIS .mt5 { |
| | | margin-top: 5px; |
| | | } |
| | |
| | | } |
| | | .THIS .no_data_area { |
| | | text-align: center; |
| | | margin: .5em 0; |
| | | margin: 0.5em 0; |
| | | } |
| | | .THIS.report_list_area { |
| | | margin: 40px 0 20px 100px; |
| | | margin: 40px 0 20px 0px; |
| | | height: 60vh; |
| | | overflow-y: scroll; |
| | | } |
| | |
| | | .THIS .animation_on { |
| | | opacity: 1; |
| | | } |
| | | .THIS .divbotuser{ |
| | | width:fit-content; |
| | | .THIS .divbotuser { |
| | | width: fit-content; |
| | | } |
| | | |
| | | .THIS .toastMessage.forceActionsText{ |
| | | white-space : pre-line !important; |
| | | .THIS .toastMessage.forceActionsText { |
| | | white-space: pre-line !important; |
| | | } |
| | | |
| | | .THIS .slds-file-selector__dropzone .slds-file-selector__text{ |
| | | .THIS .slds-file-selector__dropzone .slds-file-selector__text { |
| | | display: none; |
| | | } |
| | | |
| | | .THIS .slds-input:focus, .THIS .slds-input:active { |
| | | border-color: rgb(216, 221, 230); |
| | | box-shadow: none; |
| | | .THIS .slds-input:focus, |
| | | .THIS .slds-input:active { |
| | | border-color: rgb(216, 221, 230); |
| | | box-shadow: none; |
| | | } |
| | | |
| | | .THIS .customRequired{ |
| | | font-weight: 400; |
| | | } |
| | | .THIS .customRequired:before{ |
| | | content: "*"; |
| | | margin: 0 0.125rem 0 0.125rem; |
| | | color: rgb(194, 57, 52); |
| | | float: left; |
| | | } |
| | | .THIS .none{ |
| | | display:none; |
| | | .THIS .customRequired { |
| | | font-weight: 400; |
| | | } |
| | | |
| | | .THIS tr .decrypt{ |
| | | .THIS .customRequired:before { |
| | | content: '*'; |
| | | margin: 0 0.125rem 0 0.125rem; |
| | | color: rgb(194, 57, 52); |
| | | float: left; |
| | | } |
| | | .THIS .none { |
| | | display: none; |
| | | } |
| | | |
| | | .THIS tr:hover .decrypt{ |
| | | .THIS tr .decrypt { |
| | | display: none; |
| | | } |
| | | |
| | | .THIS tr:hover .decrypt { |
| | | display: unset; |
| | | } |
| | | |
| | | .THIS tr:hover .encrypt{ |
| | | .THIS tr:hover .encrypt { |
| | | display: none; |
| | | } |
| | | } |
| | | |
| | | /* add by Deloitte-Link 2023-6-19 start*/ |
| | | .THIS .weeklyReportSpinner { |
| | | top: 100px; |
| | | } |
| | | |
| | | .THIS .weeklyReportSpinnerEdit { |
| | | top: 50px; |
| | | } |
| | | |
| | | .THIS .slds-spinner_container { |
| | | position: absolute; |
| | | top: 100px; |
| | | } |
| | | |
| | | .THIS .slds-spinner_containerEdit { |
| | | position: absolute; |
| | | top: 50px; |
| | | } |
| | | |
| | | .THIS .marginTop { |
| | | margin-top: 10px; |
| | | } |
| | | .THIS .custom-input .uiInput { |
| | | height: 2rem; |
| | | } |
| | | /* add by Deloitte-Link 2023-6-19 end*/ |
| | |
| | | ({ |
| | | doInit : function(component, event, helper) { |
| | | console.log('zhj 新方案'); |
| | | if (window.location.href.endsWith("weekly-report")) { |
| | | doInit: function (component, event, helper) { |
| | | console.log('zhj 新方案weeklyReport'); |
| | | if (window.location.href.endsWith('weekly-report')) { |
| | | helper.doinit(component, event, helper); |
| | | } else { |
| | | helper.hideCmp(component, event, helper); |
| | | } |
| | | component.set('v.showErrorInfo', false); |
| | | }, |
| | | |
| | | createAopp : function(component, event, helper) { |
| | | createAopp: function (component, event, helper) { |
| | | var addRecordEvent = $A.get('e.force:createRecord'); |
| | | addRecordEvent.setParams({ |
| | | entityApiName: 'Agency_Opportunity__c', |
| | | recordTypeId: '012100000006KW7' |
| | | }); |
| | | addRecordEvent.fire(); |
| | | component.set('v.showErrorInfo', false); |
| | | }, |
| | | |
| | | new_report : function(component, event, helper) { |
| | | |
| | | new_report: function (component, event, helper) { |
| | | component.find('save_button').set('v.label', '保存并新建'); |
| | | component.set('v.data.Report_Date__c', ''); |
| | | helper.new_report(component, event, helper); |
| | | }, |
| | | |
| | | copy_button : function(component, event, helper) { |
| | | |
| | | copy_button: function (component, event, helper) { |
| | | component.find('save_button').set('v.label', '保存并新建'); |
| | | helper.copy_button(component, event, helper); |
| | | }, |
| | | |
| | | change_report_radio : function(component, event, helper) { |
| | | |
| | | change_report_radio: function (component, event, helper) { |
| | | helper.change_report_radio(component, event, helper); |
| | | }, |
| | | |
| | | edit_button : function(component, event, helper) { |
| | | |
| | | edit_button: function (component, event, helper) { |
| | | component.find('save_button').set('v.label', '保存'); |
| | | helper.edit_button(component, event, helper); |
| | | }, |
| | | |
| | | createCon : function(component, event, helper) { |
| | | helper.createCon(component, event, helper); |
| | | |
| | | createCon: function (component, event, helper) { |
| | | helper.createCon(component, event, helper); |
| | | }, |
| | | |
| | | showRequiredFields: function(component, event, helper){ |
| | | $A.util.removeClass(component.find("newOpportunityField"), "none"); |
| | | $A.util.removeClass(component.find("newOpportunityField"), "none"); |
| | | showRequiredFields: function (component, event, helper) { |
| | | $A.util.removeClass(component.find('newOpportunityField'), 'none'); |
| | | $A.util.removeClass(component.find('newOpportunityField'), 'none'); |
| | | }, |
| | | |
| | | handleSuccess : function(component, event, helper) { |
| | | |
| | | handleSuccess: function (component, event, helper) { |
| | | helper.handleSuccess(component, event, helper); |
| | | }, |
| | | |
| | | handleSubmit : function(component, event, helper) { |
| | | |
| | | handleSubmit: function (component, event, helper) { |
| | | /* |
| | | var params = event.getParams(); |
| | | params.fields["Agency_Hospital__c"] = component.get('v.hospitalLinkId'); |
| | |
| | | // vivek 添加验证 start |
| | | // helper.handleFormSubmit(component); |
| | | var showValidationError = false; |
| | | var fields = component.find("newOpportunityField"); |
| | | var fields = component.find('newOpportunityField'); |
| | | var vaildationFailReason = ''; |
| | | // var vaildationFailReason2 = ''; |
| | | // var currentDate = new Date().toJSON().slice(0,10); |
| | | |
| | | |
| | | // PIPL update Yin Mingjie 21/02/2022 start |
| | | let agencyReport = Object.create(null); |
| | | // PIPL update Yin Mingjie 21/02/2022 end |
| | | |
| | | fields.forEach(function (field) { |
| | | if(field.get("v.fieldName") === 'Type__c' && $A.util.isEmpty(field.get("v.value"))){ |
| | | if ( |
| | | field.get('v.fieldName') === 'Type__c' && |
| | | $A.util.isEmpty(field.get('v.value')) |
| | | ) { |
| | | showValidationError = true; |
| | | vaildationFailReason = "分类不能为空!"; |
| | | }else if(field.get("v.fieldName") === 'Doctor_Division1__c' && $A.util.isEmpty(field.get("v.value"))){ |
| | | vaildationFailReason = '分类不能为空!'; |
| | | } else if ( |
| | | field.get('v.fieldName') === 'Doctor_Division1__c' && |
| | | $A.util.isEmpty(field.get('v.value')) |
| | | ) { |
| | | showValidationError = true; |
| | | if(vaildationFailReason != ''){ |
| | | vaildationFailReason += "医生区分(职务)不能为空!"; |
| | | }else{ |
| | | vaildationFailReason = "医生区分(职务)不能为空!"; |
| | | if (vaildationFailReason != '') { |
| | | vaildationFailReason += '医生区分(职务)不能为空!'; |
| | | } else { |
| | | vaildationFailReason = '医生区分(职务)不能为空!'; |
| | | } |
| | | |
| | | } |
| | | // PIPL update Yin Mingjie 21/02/2022 start |
| | | if(field.get("v.fieldName") === 'Name'){ |
| | | agencyReport['name'] = field.get("v.value"); |
| | | }else if(field.get("v.fieldName") === 'Type__c'){ |
| | | agencyReport['type'] = field.get("v.value"); |
| | | }else if(field.get("v.fieldName") === 'Doctor_Division1__c'){ |
| | | agencyReport['doctorDivision1'] = field.get("v.value"); |
| | | if (field.get('v.fieldName') === 'Name') { |
| | | agencyReport['name'] = field.get('v.value'); |
| | | } else if (field.get('v.fieldName') === 'Type__c') { |
| | | agencyReport['type'] = field.get('v.value'); |
| | | } else if (field.get('v.fieldName') === 'Doctor_Division1__c') { |
| | | agencyReport['doctorDivision1'] = field.get('v.value'); |
| | | } |
| | | // PIPL update Yin Mingjie 21/02/2022 end |
| | | }); |
| | | |
| | | |
| | | if (!showValidationError) { |
| | | // PIPL update Yin Mingjie 21/02/2022 start |
| | | /* |
| | |
| | | |
| | | var agencyHospitalid = component.get('v.hospitalLinkId'); |
| | | //zhj MEBG新方案改造 2022-11-29 start |
| | | debugger |
| | | debugger; |
| | | let hospitalName = ''; |
| | | //调用后端searchAgencyDataId方法查询出医院下面所有客户人员dataid |
| | | helper.CallBackAction(component,'searchAgencyDataId',{ |
| | | hospitalId : agencyHospitalid |
| | | },function(data){ |
| | | if(data.getState() == "SUCCESS"){ |
| | | var data = data.getReturnValue(); |
| | | if(data.IsSuccess == true){ |
| | | let agencyContactIds = '' |
| | | if(data.Message == '' && data.Data && data.Data.length > 0){ |
| | | hospitalName = data.Data[0].Agency_Hospital__r.Name; |
| | | for(var i=0;i<data.Data.length;i++){ |
| | | if(data.Data[i].AWS_Data_Id__c) |
| | | agencyContactIds += ','+data.Data[i].AWS_Data_Id__c; |
| | | helper.CallBackAction( |
| | | component, |
| | | 'searchAgencyDataId', |
| | | { |
| | | hospitalId: agencyHospitalid |
| | | }, |
| | | function (data) { |
| | | if (data.getState() == 'SUCCESS') { |
| | | var data = data.getReturnValue(); |
| | | if (data.IsSuccess == true) { |
| | | let agencyContactIds = ''; |
| | | if ( |
| | | data.Message == '' && |
| | | data.Data && |
| | | data.Data.length > 0 |
| | | ) { |
| | | hospitalName = |
| | | data.Data[0].Agency_Hospital__r.Name; |
| | | for (var i = 0; i < data.Data.length; i++) { |
| | | if (data.Data[i].AWS_Data_Id__c) |
| | | agencyContactIds += |
| | | ',' + data.Data[i].AWS_Data_Id__c; |
| | | } |
| | | agencyContactIds = |
| | | agencyContactIds.substring(1); |
| | | agencyReport['agencyContactIds'] = |
| | | agencyContactIds; |
| | | } else { |
| | | agencyReport['agencyContactIds'] = |
| | | agencyContactIds; |
| | | } |
| | | agencyContactIds = agencyContactIds.substring(1); |
| | | agencyReport['agencyContactIds'] = agencyContactIds; |
| | | }else{ |
| | | agencyReport['agencyContactIds'] = agencyContactIds; |
| | | } |
| | | var arr = new Array(); |
| | | arr.push(agencyReport); |
| | | var requestData = JSON.stringify(arr); |
| | | // helper.set_aws_url(component,data,agencyHospitalid); |
| | | var arr = new Array(); |
| | | arr.push(agencyReport); |
| | | var requestData = JSON.stringify(arr); |
| | | // helper.set_aws_url(component,data,agencyHospitalid); |
| | | |
| | | var token = component.get('v.AWStoken'); |
| | | var newUrl = component.get('v.AWSinsert') + 'V2'; |
| | | |
| | | component.set('v.login',true); |
| | | helper.insert_agencycontact(component,token,newUrl,requestData,agencyHospitalid,helper,hospitalName); |
| | | }else{ |
| | | var token = component.get('v.AWStoken'); |
| | | var newUrl = component.get('v.AWSinsert') + 'V2'; |
| | | |
| | | component.set('v.loginEdit', true); |
| | | helper.insert_agencycontact( |
| | | component, |
| | | token, |
| | | newUrl, |
| | | requestData, |
| | | agencyHospitalid, |
| | | helper, |
| | | hospitalName |
| | | ); |
| | | } else { |
| | | helper.ShowToast({ |
| | | message: data.message, |
| | | type: 'error' |
| | | }); |
| | | } |
| | | } else { |
| | | helper.ShowToast({ |
| | | "message" : data.message, |
| | | "type" : "error" |
| | | message: 'searchAgency失败', |
| | | type: 'error' |
| | | }); |
| | | } |
| | | }else{ |
| | | helper.ShowToast({ |
| | | "message" : 'searchAgency失败', |
| | | "type" : "error" |
| | | }); |
| | | } |
| | | }) |
| | | ); |
| | | //zhj MEBG新方案改造 2022-11-29 end |
| | | // var arr = new Array(); |
| | | // arr.push(agencyReport); |
| | |
| | | |
| | | // var token = component.get('v.AWStoken'); |
| | | // var newUrl = component.get('v.AWSinsert'); |
| | | |
| | | |
| | | // component.set('v.login',true); |
| | | // helper.insert_agencycontact(component,token,newUrl,data,agencyHospitalid,helper); |
| | | |
| | | // PIPL update Yin Mingjie 21/02/2022 end |
| | | }else{ |
| | | } else { |
| | | component.find('OppMessage').setError(vaildationFailReason); |
| | | } |
| | | // var eventFields = event.getParam("fields"); |
| | |
| | | // component.find('recordEditForm').submit(eventFields); |
| | | // vivek 添加验证 end |
| | | }, |
| | | |
| | | createCancel : function(component, event, helper) { |
| | | |
| | | createCancel: function (component, event, helper) { |
| | | helper.createCancel(component, event, helper); |
| | | }, |
| | | |
| | | yes_button : function(component, event, helper) { |
| | | |
| | | yes_button: function (component, event, helper) { |
| | | component.set('v.confirm_status', 1); |
| | | helper.close_confirm(component, component.get('v.modal_confirm_title'), component.get('v.modal_confirm_text')); |
| | | helper.close_confirm( |
| | | component, |
| | | component.get('v.modal_confirm_title'), |
| | | component.get('v.modal_confirm_text') |
| | | ); |
| | | }, |
| | | |
| | | no_button : function(component, event, helper) { |
| | | no_button: function (component, event, helper) { |
| | | component.set('v.confirm_status', 2); |
| | | helper.close_confirm(component, component.get('v.modal_confirm_title'), component.get('v.modal_confirm_text')); |
| | | helper.close_confirm( |
| | | component, |
| | | component.get('v.modal_confirm_title'), |
| | | component.get('v.modal_confirm_text') |
| | | ); |
| | | }, |
| | | |
| | | toggle_report : function(component, event, helper) { |
| | | |
| | | toggle_report: function (component, event, helper) { |
| | | helper.toggle_report(component); |
| | | }, |
| | | |
| | | save_report : function(component, event, helper) { |
| | | save_report: function (component, event, helper) { |
| | | helper.save_report(component, event, helper); |
| | | }, |
| | | |
| | | select_date_change : function(component, event, helper) { |
| | | |
| | | select_date_change: function (component, event, helper) { |
| | | helper.select_date_change(component, event, helper); |
| | | }, |
| | | |
| | | select_agency_change : function(component, event, helper) { |
| | | |
| | | select_agency_change: function (component, event, helper) { |
| | | helper.select_agency_change(component, event, helper); |
| | | }, |
| | | |
| | | hosChange : function(component, event, helper) { |
| | | var hospital_name = event.getParam("value"); |
| | | if (hospital_name.match(/(\S+\s)+/)) { |
| | | helper.searchHos(component, event, helper); |
| | | } else { |
| | | helper.hideSearch(component, event, helper); |
| | | } |
| | | |
| | | hosChange: function (component, event, helper) { |
| | | var hospital_name = event.getParam('value'); |
| | | if (hospital_name.match(/(\S+\s)+/)) { |
| | | helper.searchHos(component, event, helper); |
| | | } else { |
| | | helper.hideSearch(component, event, helper); |
| | | } |
| | | }, |
| | | |
| | | selectHos : function(component, event, helper) { |
| | | helper.selectHos(component, event, helper); |
| | | |
| | | selectHos: function (component, event, helper) { |
| | | helper.selectHos(component, event, helper); |
| | | helper.setOpportunity_cfilter(component); |
| | | }, |
| | | select_department : function(component, event, helper) { |
| | | select_department: function (component, event, helper) { |
| | | helper.select_department(component, event, helper); |
| | | helper.setOpportunity_cfilter(component); |
| | | }, |
| | | select_purpose_type : function(component, event, helper) { |
| | | select_purpose_type: function (component, event, helper) { |
| | | helper.select_purpose_type(component, event, helper); |
| | | }, |
| | | |
| | | doctor_change : function(component, event, helper) { |
| | | |
| | | doctor_change: function (component, event, helper) { |
| | | helper.doctor_change(component, event, helper); |
| | | }, |
| | | |
| | | opportunityChange : function(component, event, helper) { |
| | | |
| | | opportunityChange: function (component, event, helper) { |
| | | helper.opportunityChange(component, event, helper); |
| | | }, |
| | | |
| | | productcategoryChange1 : function(component, event, helper) { |
| | | |
| | | productcategoryChange1: function (component, event, helper) { |
| | | helper.productcategoryChange1(component, event, helper); |
| | | }, |
| | | productcategoryChange2 : function(component, event, helper) { |
| | | productcategoryChange2: function (component, event, helper) { |
| | | helper.productcategoryChange2(component, event, helper); |
| | | }, |
| | | productcategoryChange3 : function(component, event, helper) { |
| | | productcategoryChange3: function (component, event, helper) { |
| | | helper.productcategoryChange3(component, event, helper); |
| | | }, |
| | | stageNameChange : function(component, event, helper) { |
| | | stageNameChange: function (component, event, helper) { |
| | | helper.stageNameChange(component, event, helper); |
| | | }, |
| | | onDragOver : function(component, event, helper) { |
| | | onDragOver: function (component, event, helper) { |
| | | event.preventDefault(); |
| | | }, |
| | | |
| | | onDrop : function(component, event, helper) { |
| | | |
| | | onDrop: function (component, event, helper) { |
| | | event.stopPropagation(); |
| | | event.preventDefault(); |
| | | event.dataTransfer.dropEffect='copy'; |
| | | var files=event.dataTransfer.files; |
| | | helper.readFile(component,helper,files[0]); |
| | | event.dataTransfer.dropEffect = 'copy'; |
| | | var files = event.dataTransfer.files; |
| | | helper.readFile(component, helper, files[0]); |
| | | }, |
| | | CreateRecord : function(component, event, helper){ |
| | | var files = event.getSource().get("v.files"); |
| | | CreateRecord: function (component, event, helper) { |
| | | var files = event.getSource().get('v.files'); |
| | | // var fileInput = component.find("file").getElement(); |
| | | // var file = fileInput.files[0]; |
| | | helper.readFile(component,helper,files[0]); |
| | | helper.readFile(component, helper, files[0]); |
| | | component.set('v.showErrorInfo', false); |
| | | }, |
| | | |
| | | processFileContent : function(component,event,helper){ |
| | | helper.saveRecords(component,event,helper); |
| | | }, |
| | | |
| | | cancel : function(component,event,helper){ |
| | | component.set("v.showMain",true); |
| | | processFileContent: function (component, event, helper) { |
| | | helper.saveRecords(component, event, helper); |
| | | component.set('v.showErrorInfo', false); |
| | | }, |
| | | |
| | | import : function(component,event,helper){ |
| | | cancel: function (component, event, helper) { |
| | | component.set('v.showMain', true); |
| | | }, |
| | | |
| | | import: function (component, event, helper) { |
| | | // component.find('file').click(); |
| | | // console.log('lll'+component.find('file')); |
| | | helper.showImport(component); |
| | | }, |
| | | exportDate : function(component,event,helper){ |
| | | var stockData = component.get("v.reports_date"); |
| | | console.log('导出数据'+stockData); |
| | | var csv = helper.convertArrayOfObjectsToCSV(component,stockData); |
| | | if (csv == null){return;} |
| | | exportDate: function (component, event, helper) { |
| | | var stockData = component.get('v.reports_date'); |
| | | console.log('导出数据' + stockData); |
| | | var csv = helper.convertArrayOfObjectsToCSV(component, stockData); |
| | | if (csv == null) { |
| | | return; |
| | | } |
| | | |
| | | // ####--code for create a temp. <a> html tag [link tag] for download the CSV file--#### |
| | | var universalBOM = "\uFEFF"; |
| | | // ####--code for create a temp. <a> html tag [link tag] for download the CSV file--#### |
| | | var universalBOM = '\uFEFF'; |
| | | var hiddenElement = document.createElement('a'); |
| | | hiddenElement.href = 'data:text/csv;charset=utf-8,' + encodeURI(universalBOM+csv); |
| | | hiddenElement.target = '_self'; // |
| | | hiddenElement.download = 'ExportData.csv'; // CSV file Name* you can change it.[only name not .csv] |
| | | hiddenElement.href = |
| | | 'data:text/csv;charset=utf-8,' + encodeURI(universalBOM + csv); |
| | | hiddenElement.target = '_self'; // |
| | | hiddenElement.download = 'ExportData.csv'; // CSV file Name* you can change it.[only name not .csv] |
| | | document.body.appendChild(hiddenElement); // Required for FireFox browser |
| | | hiddenElement.click(); // using click() js function to download csv file |
| | | // helper.showExport(component); |
| | | |
| | | }, |
| | | |
| | | export_condition : function(component,event,helper){ |
| | | export_condition: function (component, event, helper) { |
| | | helper.showExport(component); |
| | | }, |
| | | |
| | | select_repores_date : function(component,event,helper){ |
| | | helper.select_repores_date(component,event,helper); |
| | | select_repores_date: function (component, event, helper) { |
| | | helper.select_repores_date(component, event, helper); |
| | | // var stockData = component.get("v.reports_date"); |
| | | // console.log('查出的数据'+stockData); |
| | | // helper.showExportDate(component,stockData); |
| | | // this.export(component,event,helper); |
| | | }, |
| | | export : function(component,event,helper){ |
| | | export: function (component, event, helper) { |
| | | console.log('进入export'); |
| | | var stockData = component.get("v.reports_date"); |
| | | console.log('查出的数据'+stockData); |
| | | var stockData = component.get('v.reports_date'); |
| | | console.log('查出的数据' + stockData); |
| | | // helper.showExportDate(component,stockData); |
| | | // helper.showExport(component); |
| | | }, |
| | | close_import : function(component,event,helper){ |
| | | component.set("v.showMain",true); |
| | | close_import: function (component, event, helper) { |
| | | component.set('v.showMain', true); |
| | | helper.close_import(component); |
| | | }, |
| | | close_export : function(component,event,helper){ |
| | | component.set("v.showMain",true); |
| | | close_export: function (component, event, helper) { |
| | | component.set('v.showMain', true); |
| | | helper.close_export(component); |
| | | }, |
| | | exportErrorInfo: function (component, event, helper) { |
| | | helper.exportErrorInfoHelper(component); |
| | | } |
| | | }) |
| | | }); |
| New file |
| | |
| | | @isTest |
| | | public class ArriveGoodsControllerTestV2 { |
| | | @isTest |
| | | static 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重验证(ET Email)']; |
| | | Profile prof = [ |
| | | SELECT Id |
| | | FROM Profile |
| | | WHERE Name = '901_经销商社区普通权限_2重验证(ET)' |
| | | ]; |
| | | |
| | | Account myAccount2 = new Account( |
| | | name = 'Testaccount002', |
| | | Dealer_discount__c = 20, |
| | | RecordTypeId = rectCo[0].Id, |
| | | AgentCode_Ext__c = '9999900' |
| | | ); |
| | | Account myAccount1 = new Account(name = 'Testaccount001', Dealer_discount__c = 30, RecordTypeId = rectCo[0].Id); |
| | | insert new List<account>{ myAccount1, myAccount2 }; |
| | | |
| | | Contact core = new Contact(email = 'jplumber@salesforce.com', firstname = 'Joe', lastname = 'Plumber', accountid = myAccount1.id); |
| | | insert core; |
| | | user MyUser_Test = new User( |
| | | ContactId = core.id, |
| | | Alias = 'newUser', |
| | | Email = 'newuser@testorg.com', |
| | | EmailEncodingKey = 'UTF-8', |
| | | LastName = 'TestUser', |
| | | LanguageLocaleKey = 'zh_CN', |
| | | LocaleSidKey = 'zh_CN', |
| | | ProfileId = prof.Id, |
| | | TimeZoneSidKey = 'Asia/Shanghai', |
| | | UserName = 'testUser@testorg.com', |
| | | UserPro_Type__c = 'ET' |
| | | ); |
| | | System.runAs(new User(Id = UserInfo.getUserId())) { |
| | | insert MyUser_Test; |
| | | } |
| | | |
| | | // User MyUser_Test = [select id,Contact.accountid from User WHERE ProfileId = :prof.Id and IsActive = true and UserPro_Type__c = 'ET' limit 1 ]; |
| | | // Product2 prod01 = new Product2(Name='Test01',ProductCode='Test01',Asset_Model_No__c = 'Test01',SFDA_Status__c = '有効',JANCODE__c = '04953170200311',Dealer_special_Object__c = true,Manual_Entry__c = false); |
| | | // Product2 prod02 = new Product2(Name='Test02',ProductCode='Test02',Asset_Model_No__c = 'Test02',SFDA_Status__c = '有効',JANCODE__c = '04953170200312',Dealer_special_Object__c = true,Manual_Entry__c = false); |
| | | // insert new Product2[] {prod01,prod02}; |
| | | System.runAs(MyUser_Test) { |
| | | Product2 prod01 = new Product2( |
| | | Name = 'Test01', |
| | | ProductCode = 'Test01', |
| | | Asset_Model_No__c = 'Test01', |
| | | SFDA_Status__c = '有効', |
| | | JANCODE__c = '04953170200311', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod02 = new Product2( |
| | | Name = 'Test02', |
| | | ProductCode = 'Test02', |
| | | Asset_Model_No__c = 'Test02', |
| | | SFDA_Status__c = '有効', |
| | | JANCODE__c = '04953170200312', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | insert new List<Product2>{ prod01, prod02 }; |
| | | Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'Test001', Product2__c = prod01.Id); |
| | | Product2__c pro2 = new Product2__c(Name = 'Pro002', OT_CODE_Text__c = 'Test002', Product2__c = prod02.Id); |
| | | insert new List<Product2__c>{ pro1, pro2 }; |
| | | //订单 |
| | | Consumable_order__c Order1 = new Consumable_order__c(); |
| | | Order1.Name = 'OCM_01_001'; |
| | | Order1.Order_status__c = '批准'; |
| | | Order1.Order_type__c = '订单'; |
| | | // Order1.Dealer_Info__c = myAccount1.id; |
| | | Order1.Dealer_Info__c = myAccount1.id; |
| | | Order1.RecordTypeid = System.Label.RT_ConOrder_Delivery; |
| | | Order1.Total_num__c = 3; |
| | | Order1.OrderNumber_arrived__c = 1; |
| | | Order1.Delivery_detail_count__c = 1; |
| | | Order1.Order_ProType__c = 'ET'; |
| | | insert Order1; |
| | | |
| | | //订单明细 |
| | | //fahuo |
| | | Consumable_orderdetails__c Orderdet = new Consumable_orderdetails__c(); |
| | | Orderdet.Name = 'OCM_01_00101'; |
| | | Orderdet.Consumable_order__c = Order1.Id; |
| | | Orderdet.RecordTypeId = System.Label.RT_ConOrderDetail1_Order; |
| | | Orderdet.Consumable_Product__c = pro1.Id; |
| | | Orderdet.Consumable_count__c = 40; |
| | | insert Orderdet; |
| | | |
| | | //发货明细 |
| | | //到货正确信息 |
| | | Consumable_order_details2__c Orderdet1 = new Consumable_order_details2__c(); |
| | | Orderdet1.Name = 'OCM_01_001002'; |
| | | Orderdet1.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet1.Consumable_Product__c = pro1.Id; |
| | | Orderdet1.Asset_Model_No__c = 'Test01'; |
| | | Orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdet1.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRA'; |
| | | Orderdet1.TracingCode__c = 'BXJRA'; |
| | | |
| | | //取消产品 |
| | | Consumable_order_details2__c Orderdet2 = new Consumable_order_details2__c(); |
| | | Orderdet2.Name = 'OCM_01_001003'; |
| | | Orderdet2.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet2.Consumable_Product__c = pro1.Id; |
| | | Orderdet2.Asset_Model_No__c = 'Test01'; |
| | | //Orderdet2.Consumable_Arrived_order__c = Order1.Id; |
| | | Orderdet2.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdet2.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRB'; |
| | | Orderdet2.Cancellation_Date__c = Date.today(); |
| | | Orderdet2.TracingCode__c = 'BXJRB'; |
| | | //销售产品 |
| | | Consumable_order_details2__c Orderdet3 = new Consumable_order_details2__c(); |
| | | Orderdet3.Name = 'OCM_01_001004'; |
| | | Orderdet3.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet3.Consumable_Product__c = pro1.Id; |
| | | Orderdet3.Asset_Model_No__c = 'Test01'; |
| | | Orderdet3.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdet3.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRC'; |
| | | Orderdet3.Used_date__c = Date.today(); |
| | | Orderdet3.Arrive_date__c = Date.today(); |
| | | Orderdet3.TracingCode__c = 'BXJRC'; |
| | | //Orderdet3.Box_Piece__c = '盒'; |
| | | |
| | | //出库产品 |
| | | Consumable_order_details2__c Orderdet4 = new Consumable_order_details2__c(); |
| | | Orderdet4.Name = 'OCM_01_001005'; |
| | | Orderdet4.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet4.Consumable_Product__c = pro1.Id; |
| | | Orderdet4.Asset_Model_No__c = 'Test01'; |
| | | Orderdet4.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdet4.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRD'; |
| | | Orderdet4.Send_Date__c = Date.today(); |
| | | Orderdet4.Arrive_date__c = Date.today(); |
| | | Orderdet4.TracingCode__c = 'BXJRD'; |
| | | |
| | | //已到货产品 |
| | | Consumable_order_details2__c Orderdet5 = new Consumable_order_details2__c(); |
| | | Orderdet5.Name = 'OCM_01_001006'; |
| | | Orderdet5.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet5.Consumable_Product__c = pro1.Id; |
| | | Orderdet5.Asset_Model_No__c = 'Test01'; |
| | | Orderdet5.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdet5.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRE'; |
| | | Orderdet5.Arrive_date__c = Date.today(); |
| | | Orderdet5.TracingCode__c = 'BXJRE'; |
| | | |
| | | //发货明细 |
| | | //管理编码包含数字 |
| | | Consumable_order_details2__c Orderdet6 = new Consumable_order_details2__c(); |
| | | Orderdet6.Name = 'OCM_01_001002'; |
| | | Orderdet6.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet6.Consumable_Product__c = pro1.Id; |
| | | Orderdet6.Asset_Model_No__c = 'Test01'; |
| | | Orderdet6.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdet6.Bar_Code__c = '01049531702003111115120017181000105ZK250BX123'; |
| | | Orderdet6.TracingCode__c = 'BX123'; |
| | | |
| | | //发错库 未到货 |
| | | Consumable_order_details2__c Orderdets8 = new Consumable_order_details2__c(); |
| | | Orderdets8.Name = 'OCM_01_001011'; |
| | | Orderdets8.Consumable_order_minor__c = Order1.Id; |
| | | Orderdets8.Consumable_Product__c = pro1.Id; |
| | | Orderdets8.Asset_Model_No__c = 'Test01'; |
| | | Orderdets8.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdets8.Bar_Code__c = '01049531702003111115120017181000105ZK250BXsys'; |
| | | Orderdets8.Box_Piece__c = '盒'; |
| | | Orderdets8.TracingCode__c = 'BXsys'; |
| | | |
| | | insert new List<Consumable_order_details2__c>{ Orderdet1, Orderdet2, Orderdet3, Orderdet4, Orderdet5, Orderdet6, Orderdets8 }; |
| | | |
| | | List<Consumable_orderdetails__c> cod1 = [ |
| | | SELECT Id |
| | | FROM Consumable_orderdetails__c |
| | | WHERE Consumable_order__c = :Order1.Id |
| | | ]; |
| | | System.assertEquals(1, cod1.size()); |
| | | |
| | | PageReference page = new PageReference('/apex/ArriveGoods?Esetid=' + Order1.Id); |
| | | |
| | | System.Test.setCurrentPage(page); |
| | | ArriveGoodsController Controller = new ArriveGoodsController(); |
| | | //初始化测试 |
| | | System.Test.startTest(); |
| | | Controller.init(); |
| | | //排序 |
| | | Controller.barcode = ''; |
| | | Controller.SearchPro(); |
| | | Controller.barcode = '01049531702003111115120017181000105ZK250BXJRA\n01049531702003111115120017181000105ZK250BXsys\n01049531702003111115120017181000105ZK250BXsun\n01049531702003111115120017181000105ZK250BXJRB\n01049531702003111115120017181000105ZK250BXJRC\n01049531702003111115120017181000105ZK250BX111\n01049531702003111115120017181000105ZK250BXJRD\n01049531702003111115120017181000105ZK250BXJRE\n01049531702003111115120017181000105ZK250BXJRF\n01049531702003111115120017181000105ZK250BXJRG\n01049531702003111115120017181000105ZK250BX123'; |
| | | Controller.SearchPro(); |
| | | |
| | | // System.assertEquals(3, controller.ConsumableorderdetailsRecordsdummy.size()); //tcm |
| | | Controller.ArriveGoodsConfim(); |
| | | System.Test.stopTest(); |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8" ?> |
| | | <ApexClass xmlns="http://soap.sforce.com/2006/04/metadata"> |
| | | <apiVersion>58.0</apiVersion> |
| | | <status>Active</status> |
| | | </ApexClass> |
| | |
| | | public without sharing class AssetHandler extends Oly_TriggerHandler { |
| | | |
| | | public static Map<String , List<Rental_Apply_Equipment_Set_Detail__c>> queueRaesdMap; |
| | | public static Map<String, List<Rental_Apply_Equipment_Set_Detail__c>> queueRaesdMap; |
| | | private Map<Id, Asset> newMap; |
| | | private Map<Id, Asset> oldMap; |
| | | private List<Asset> newList; |
| | | private List<Asset> oldList; |
| | | @TestVisible private static Set<String> testTargetDepts; |
| | | @TestVisible private static Id Account_Asset_Id; |
| | | public static Boolean disabled = false; |
| | | private static final Map<String, Schema.RecordTypeInfo> DEVELOPERNAMEMAP = Schema.SObjectType.Asset.getRecordTypeInfosByDeveloperName(); // 20230306 ljh add |
| | | @TestVisible |
| | | private static Set<String> testTargetDepts; |
| | | @TestVisible |
| | | private static Id Account_Asset_Id; |
| | | public static Boolean disabled = false; |
| | | |
| | | public AssetHandler() { |
| | | this.newMap = (Map<Id, Asset>) Trigger.newMap; |
| | | this.oldMap = (Map<Id, Asset>) Trigger.oldMap; |
| | | this.newList = (List<Asset>) Trigger.new; |
| | | this.oldList = (List<Asset>) Trigger.old; |
| | | |
| | | Integer i = 0; |
| | | } |
| | | |
| | | protected override void beforeInsert() { |
| | |
| | | |
| | | //第一次不加变更的时候不知道第一次是多少 |
| | | updateChangeQuantityReason(); |
| | | |
| | | workflowCode(); |
| | | } |
| | | protected override void beforeUpdate() { |
| | | if(!disabled){ |
| | | if (!disabled) { |
| | | beforeSetValue(); |
| | | //动态更新 Asset的 AccountId的 Logic |
| | | beforeSetAccountId(); |
| | | |
| | | updateChangeQuantityReason(); |
| | | |
| | | // 20230309 gzw 优化 注释代码 |
| | | |
| | | // 虚拟维修保修合同保修开始结束日期更新 |
| | | updateMaintenance_Contract_Asset(); |
| | | // updateMaintenance_Contract_Asset(); |
| | | |
| | | // 20230309 gzw 优化 注释代码 |
| | | |
| | | updateRentalCount(); |
| | | |
| | | workflowCode(); |
| | | } |
| | | |
| | | } |
| | | |
| | | protected override void afterInsert() { |
| | |
| | | } |
| | | |
| | | protected override void afterUpdate() { |
| | | if(!disabled){ |
| | | if (!disabled) { |
| | | mainAssetUpdateed_OneToOneRecord(); |
| | | // 已经改进 Must_Input_ChangeQuantityReason 的 valida before可以完成 ChangeQuantityReason__c = '' |
| | | ////入力規則によってbeforeクリアできません, |
| | |
| | | updateMaintenance_Contract_Asset(); |
| | | } |
| | | } |
| | | |
| | | //20230309 sx 保有设备workflow代码化 start |
| | | private void workflowCode() { |
| | | /*List<Id> accIds = new List<Id>(); |
| | | List<Id> productIds = new List<Id>(); |
| | | List<Id> hospitalIds = new List<Id>(); |
| | | for(Asset nObj : newList) { |
| | | accIds.add(nObj.Account.Id); |
| | | productIds.add(nObj.Product2.Id); |
| | | hospitalIds.add(nObj.Hospital__c); |
| | | } |
| | | |
| | | //查找客户List |
| | | Map<Id, Account> accMap = new Map<Id, Account>([SELECT Id, Name, Management_Code__c from Account where Id in :accIds]); |
| | | Map<Id, Product2> productMap = new Map<Id, Product2>([SELECT Id, Name, RecordTypeId, RecordType.Name, Serial_Lot_No__c ,ProductCode from Product2 where Id in :productIds]); |
| | | Map<Id, Account> hosMap = new Map<Id, Account>([SELECT Id, Name, RecordType.Name from Account where id in :hospitalIds]); |
| | | |
| | | Map<Id, Account> acc_assMap = new Map<Id, Account>(); |
| | | Map<Id, Product2> pro_proMap = new Map<Id, Product2>(); |
| | | Map<Id, Account> hos_assMap = new Map<Id, Account>(); |
| | | for(Asset nObj : newList){ |
| | | if(accMap.containsKey(nObj.Account.Id)) { |
| | | acc_assMap.put(nObj.Id, accMap.get(nObj.Account.Id)); |
| | | } |
| | | if(productMap.containsKey(nObj.Product2.Id)) { |
| | | pro_proMap.put(nObj.Id, productMap.get(nObj.Product2.Id)); |
| | | } |
| | | if(hosMap.containsKey(nObj.Hospital__c)) { |
| | | hos_assMap.put(nObj.Id, hosMap.get(nObj.Id)); |
| | | } |
| | | }*/ |
| | | Date today = Date.today(); |
| | | |
| | | for (Asset nObj : newList) { |
| | | //保有设备HPID文本化 |
| | | nObj.Asset_Year_Txt__c = nObj.Asset_Year__c; |
| | | nObj.HP_ID_Text__c = nObj.HP_Id__c; |
| | | nObj.Gurantee_End_day1__c = nObj.Gurantee_End_day__c; |
| | | |
| | | //覆盖设备的可选对象文本化 |
| | | if (Trigger.isInsert || (Trigger.isUpdate && nObj.Posting_Date__c != oldMap.get(nObj.Id).Posting_Date__c)) { |
| | | if (String.isBlank(nObj.IF_Coverage_Target_Asset__c) || '0'.equals(nObj.IF_Coverage_Target_Asset__c)) { |
| | | nObj.IF_Coverage_Target_Asset__c = nObj.IF_Coverage_Target_Asset_FF__c + ''; |
| | | } |
| | | |
| | | if (nObj.IF_Coverage_Target_Asset_FF__c == 3 && nObj.FY23_Asset_Age__c == null) { |
| | | nObj.FY23_Asset_Age__c = 0; |
| | | } |
| | | } |
| | | |
| | | //市场对应录入时间自动录入 |
| | | if ( |
| | | (Trigger.isInsert && nObj.Market_Product_Category__c != null) || |
| | | (Trigger.isUpdate && |
| | | nObj.Market_Product_Category__c != oldMap.get(nObj.Id).Market_Product_Category__c && |
| | | nObj.Market_Product_Category__c != null) |
| | | ) { |
| | | nObj.Marketing_Input_Date__c = today; |
| | | } |
| | | |
| | | /*//待报废变更为使用中 |
| | | if(nObj.RecordType.Name == '备品' |
| | | && nObj.Manage_type__c == '个体管理' |
| | | && nObj.Quantity > 0 && nObj.Status == '待报废' |
| | | && ( (nObj.Abandoned_RealThing__c == null && nObj.Abandoned_Inventory__c == null) || (nObj.Abandoned_RealThing__c + nObj.Abandoned_Inventory__c) == 0) |
| | | && acc_assMap.get(nObj.Id).Management_Code__c != System.Label.Account_Asset_FJZ) { |
| | | nObj.Status = '使用中'; |
| | | nObj.Tobe_Discarded_Date__c = null; |
| | | }*/ |
| | | |
| | | /*//AssetMarkUpdate |
| | | if(Trigger.isUpdate && nObj.IF_Information_From__c == false && nObj.AssetMark__c == null) { |
| | | if(pro_proMap.containsKey(nObj.Id)){ |
| | | if(pro_proMap.get(nObj.Id).RecordType.Name == '竞品-主机' ) { |
| | | nObj.AssetMark__c = '竞品主机'; |
| | | }else if(pro_proMap.get(nObj.Id).RecordType.Name == '竞品-耗材') { |
| | | nObj.AssetMark__c = '竞品耗材'; |
| | | }else if(pro_proMap.get(nObj.Id).Serial_Lot_No__c == 'S/N tracing') { |
| | | nObj.AssetMark__c = '主机'; |
| | | } |
| | | } |
| | | else { |
| | | nObj.AssetMark__c = '耗材'; |
| | | } |
| | | }*/ |
| | | |
| | | /*//AssetName=ProductName |
| | | if(nObj.Name.equals('*') || (nObj.Product2.Id != null && nObj.Product2 != oldMap.get(nObj.Id).Product2)) { |
| | | nObj.Name = pro_proMap.get(nObj.Id).Name; |
| | | }*/ |
| | | |
| | | //AssetTextCopy |
| | | if (Trigger.isInsert || (Trigger.isUpdate && nObj.Product2 != oldMap.get(nObj.Id).Product2)) { |
| | | nObj.BSSCategory_Text__c = nObj.BSSCategory__c; |
| | | nObj.Brand_Name_Text__c = nObj.Brand_Name__c; |
| | | nObj.Category2_Text__c = nObj.Category2__c; |
| | | nObj.Category3_Text__c = nObj.Category3__c; |
| | | nObj.Category4_Text__c = nObj.Category4__c; |
| | | nObj.Category5_Text__c = nObj.Category5__c; |
| | | } |
| | | |
| | | //CIC安装状态确认日 |
| | | if (nObj.CIC_call_back_check__c && nObj.CIC_call_back_confirm_day__c == null) { |
| | | nObj.CIC_call_back_confirm_day__c = today; |
| | | } |
| | | |
| | | //Equipment_Last_confirmed_day |
| | | if ( |
| | | (Trigger.isInsert && |
| | | (nObj.Status != null || |
| | | nObj.Installation_Site__c != null || |
| | | nObj.Final_Examination_Date__c != null || |
| | | nObj.Hospital_Manage_Number__c != null)) || |
| | | (Trigger.isUpdate && |
| | | (nObj.Status != oldMap.get(nObj.Id).Status || |
| | | nObj.Installation_Site__c != oldMap.get(nObj.Id).Installation_Site__c || |
| | | nObj.Final_Examination_Date__c != oldMap.get(nObj.Id).Final_Examination_Date__c || |
| | | nObj.Hospital_Manage_Number__c != oldMap.get(nObj.Id).Hospital_Manage_Number__c)) |
| | | ) { |
| | | nObj.Equipment_Last_checking_day__c = today; |
| | | } |
| | | |
| | | /*//Product_Code+Serial_No |
| | | if(Trigger.isUpdate && nObj.IsCompetitorProduct == false && nObj.Manage_type__c != '数量管理' && nObj.AssetMark__c != '耗材' && nObj.Loaner_accsessary__c != true && nObj.unknow_serial_NO_product__c != false) { |
| | | if(nObj.Product2.Id == null) { |
| | | nObj.Product_Serial_No__c = nObj.Id; |
| | | }else { |
| | | nObj.Product_Serial_No__c = pro_proMap.get(nObj.Id).ProductCode + ' ' + nObj.SerialNumber; |
| | | if(nObj.Delete_Flag__c){ |
| | | nObj.Product_Serial_No__c += ':' + acc_assMap.get(nObj.Id).Management_Code__c; |
| | | } |
| | | } |
| | | }*/ |
| | | |
| | | //Product_Code+Serial_No Clear |
| | | if ( |
| | | (Trigger.isInsert && nObj.IsCompetitorProduct) || |
| | | (Trigger.isUpdate && |
| | | nObj.IsCompetitorProduct && |
| | | !oldMap.get(nObj.Id).IsCompetitorProduct) |
| | | ) { |
| | | nObj.Product_Serial_No__c = ''; |
| | | } |
| | | |
| | | /*//Product_Code+Serial_No+Salesdepartment |
| | | if(Trigger.isUpdate && nObj.IsCompetitorProduct == false && nObj.Manage_type__c == '数量管理' && nObj.AssetMark__c == '耗材' && nObj.Loaner_accsessary__c == true && nObj.unknow_serial_NO_product__c == false) { |
| | | if(nObj.Product2.Id == null) { |
| | | nObj.Product_Serial_No__c = nObj.Id; |
| | | }else { |
| | | nObj.Product_Serial_No__c = pro_proMap.get(nObj.Id).ProductCode + ' ' + nObj.SerialNumber + ':' + nObj.Salesdepartment__c.subString(0,nObj.Salesdepartment__c.indexOf(':')); |
| | | if(nObj.Delete_Flag__c){ |
| | | nObj.Product_Serial_No__c += ':' + acc_assMap.get(nObj.Id).Management_Code__c; |
| | | } |
| | | } |
| | | }*/ |
| | | |
| | | /*//Product_Code+Serial_No UnkownSerial |
| | | if(Trigger.isUpdate && nObj.unknow_serial_NO_product__c == true) { |
| | | nObj.SerialNumber = nObj.serial_past__c; |
| | | if(nObj.Product2.Id == null) { |
| | | nObj.Product_Serial_No__c = nObj.Id; |
| | | }else { |
| | | nObj.Product_Serial_No__c = pro_proMap.get(nObj.Id).ProductCode + ':' + nObj.serial_past__c; |
| | | if(nObj.Delete_Flag__c){ |
| | | nObj.Product_Serial_No__c += ':' + acc_assMap.get(nObj.Id).Management_Code__c; |
| | | } |
| | | } |
| | | }*/ |
| | | |
| | | //更新备品资产管理负责本部选项 |
| | | if ( |
| | | (Trigger.isInsert && nObj.Internal_demo_incharge_demo__c != null) || |
| | | (Trigger.isUpdate && nObj.Internal_demo_incharge_demo__c != oldMap.get(nObj.Id).Internal_demo_incharge_demo__c) |
| | | ) { |
| | | nObj.Internal_demo_incharge_demo_text__c = nObj.Internal_demo_incharge_demo__c; |
| | | } |
| | | |
| | | /*//自动更新资产所属(医院资产) |
| | | if(Trigger.isUpdate && nObj.RecordType.Name == '医院保有设备' && hos_assMap.containskey(nObj.Id) && hos_assMap.get(nObj.Id).RecordType.Name == '病院' && acc_assMap.get(nObj.Id).Id == '00110000015Bx0h' ) { |
| | | nObj.Asset_Owner__c = '医院资产'; |
| | | }*/ |
| | | |
| | | /*//自动更新资产所属(奥林巴斯) |
| | | if(nObj.RecordType.Name == '医院保有设备' || (acc_assMap.containskey(nObj.Id) && acc_assMap.get(nObj.Id).Id == '00110000015Bx0h')) { |
| | | nObj.Asset_Owner__c = '奥林巴斯'; |
| | | }*/ |
| | | |
| | | /*//自动更新资产所属(经销商资产) |
| | | if(nObj.RecordType.Name == '医院保有设备' && (acc_assMap.containskey(nObj.Id) && hos_assMap.get(nObj.Id).RecordType.Name == '販売店')) { |
| | | nObj.Asset_Owner__c = '经销商资产'; |
| | | }*/ |
| | | |
| | | //手动创建的耗材信息修改 |
| | | if (nObj.RecordTypeId == '01210000000kOPM' && nObj.Information_From__c == '手动输入' && nObj.AssetMark__c == '耗材') { |
| | | nObj.Guarantee_period_for_products__c = nObj.Posting_Date__c; |
| | | nObj.InstallDate = nObj.Posting_Date__c; |
| | | } |
| | | |
| | | //出货日自动赋值 |
| | | if (Trigger.isInsert && nObj.Information_From__c == '手动输入') { |
| | | nObj.Posting_Date__c = Date.newInstance(1900, 1, 1); |
| | | } |
| | | |
| | | //新逻辑保修期限对应 |
| | | if (nObj.New_logic_data__c) { |
| | | nObj.Guarantee_period_for_products__c = nObj.Guarantee_period_formula__c; |
| | | } |
| | | |
| | | //成本中心更新编码Update |
| | | if ( |
| | | (Trigger.isInsert && nObj.Internal_cost_center_cd__c != null) || |
| | | (Trigger.isUpdate && nObj.Internal_cost_center_cd__c != oldMap.get(nObj.Id).Internal_cost_center_cd__c) |
| | | ) { |
| | | nObj.Internal_demo_incharge_demo_text__c = nObj.Internal_cost_center_formula__c; |
| | | } |
| | | |
| | | //成本中心更新选项Update |
| | | if ( |
| | | (Trigger.isInsert && nObj.Internal_cost_center__c != null) || |
| | | (Trigger.isUpdate && nObj.Internal_cost_center__c != oldMap.get(nObj.Id).Internal_cost_center__c) |
| | | ) { |
| | | nObj.Internal_cost_center_text__c = nObj.Internal_cost_center__c; |
| | | } |
| | | |
| | | //待报废日登录 |
| | | if ( |
| | | Trigger.isUpdate && |
| | | nObj.Fixture_Status__c != oldMap.get(nObj.Id).Fixture_Status__c && |
| | | nObj.Fixture_Status__c != '废弃' && |
| | | (nObj.Abandoned_RealThing__c > 0 || |
| | | nObj.Abandoned_Inventory__c > 0) && |
| | | nObj.Manage_type__c == '个体管理' |
| | | ) { |
| | | nObj.Status = '待报废'; |
| | | nObj.Tobe_Discarded_Date__c = today; |
| | | } |
| | | |
| | | //退货转备品DEL置FALSE |
| | | if ( |
| | | Trigger.isUpdate && |
| | | ((nObj.RecordType != oldMap.get(nObj.Id).RecordType && nObj.RecordTypeId == '01210000000kOPR') || |
| | | (nObj.AccountId != oldMap.get(nObj.Id).AccountId && |
| | | nObj.AccountId == '0011000000VAiwz')) && |
| | | nObj.Delete_Flag__c |
| | | ) { |
| | | nObj.Delete_Flag__c = false; |
| | | } |
| | | |
| | | //追溯设备耗材Mark更新 |
| | | if ('追溯系统'.equals(nObj.Information_From__c) && String.isBlank(nObj.AssetMark__c)) { |
| | | nObj.AssetMark__c = '耗材'; |
| | | } |
| | | |
| | | //納入商品状態変更(使用中) |
| | | if ( |
| | | (Trigger.isInsert && nObj.Status == '使用中') || |
| | | (Trigger.isUpdate && |
| | | nObj.Status != oldMap.get(nObj.Id).Status && |
| | | nObj.Status == '使用中') |
| | | ) { |
| | | nObj.Status_Busy_Date__c = today; |
| | | } |
| | | |
| | | //納入商品状態変更(廃棄) |
| | | if ( |
| | | (Trigger.isInsert && nObj.Status == '廃棄') || |
| | | (Trigger.isUpdate && |
| | | nObj.Status != oldMap.get(nObj.Id).Status && |
| | | nObj.Status == '廃棄') |
| | | ) { |
| | | nObj.Discarded_Date__c = today; |
| | | nObj.Quantity = 0; |
| | | nObj.Abandoned_Inventory__c = null; |
| | | nObj.Abandoned_RealThing__c = null; |
| | | nObj.ChangeQuantityReason__c = '废弃'; |
| | | } |
| | | |
| | | //納入商品状態変更(不明) |
| | | if ( |
| | | (Trigger.isInsert && nObj.Status == '不明') || |
| | | (Trigger.isUpdate && |
| | | nObj.Status != oldMap.get(nObj.Id).Status && |
| | | nObj.Status == '不明') |
| | | ) { |
| | | nObj.Indistinctness_Date__c = today; |
| | | } |
| | | |
| | | //納入商品状態変更(未使用) |
| | | if ( |
| | | (Trigger.isInsert && nObj.Status == '未使用') || |
| | | (Trigger.isUpdate && |
| | | nObj.Status != oldMap.get(nObj.Id).Status && |
| | | nObj.Status == '未使用') |
| | | ) { |
| | | nObj.Unused_Date__c = today; |
| | | } |
| | | |
| | | /*//納品確認書の診療科コード_セット |
| | | if(!(nObj.Product2.Id != null && nObj.IsCompetitorProduct == false && nObj.InstallDate != null) && nObj.Install_Account_Code__c == null) { |
| | | nObj.Install_Account_Code__c = acc_assMap.get(nObj.Id).Management_Code__c; |
| | | nObj.Install_Account_Name__c = acc_assMap.get(nObj.Id).Name; |
| | | nObj.Install_Hospital_Name__c = hos_assMap.get(nObj.Id).Name; |
| | | nObj.Install_Hospital_code__c = hos_assMap.get(nObj.Id).Management_Code__c; |
| | | }*/ |
| | | |
| | | //病院管理番号変更日 |
| | | if ( |
| | | (Trigger.isInsert && nObj.Hospital_Manage_Number__c != null) || |
| | | (Trigger.isUpdate && nObj.Hospital_Manage_Number__c != oldMap.get(nObj.Id).Hospital_Manage_Number__c) |
| | | ) { |
| | | nObj.Hospital_Manage_Number_Change_Date__c = today; |
| | | } |
| | | |
| | | //更新-2次前点检日 |
| | | if (Trigger.isUpdate && nObj.Final_Examination_Date__c != oldMap.get(nObj.Id).Final_Examination_Date__c) { |
| | | nObj.X2_second_past_inspection__c = oldMap.get(nObj.Id).Final_Examination_Date__c; |
| | | } |
| | | |
| | | // 文本化 多年保修期至 |
| | | nObj.Extend_Gurantee_DateTo_Text__c = nObj.Extend_Gurantee_DateTo__c; |
| | | |
| | | // 保修天数工作流 |
| | | if ( |
| | | Trigger.isInsert || |
| | | (Trigger.isUpdate && |
| | | (nObj.Guarantee_period_for_products__c != oldMap.get(nObj.Id).Guarantee_period_for_products__c || |
| | | nObj.InstallDate__c != oldMap.get(nObj.Id).InstallDate__c || |
| | | nObj.ChangeWarrantyStartDate__c != oldMap.get(nObj.Id).ChangeWarrantyStartDate__c)) |
| | | ) { |
| | | nObj.GuaranteePeriod__c = nObj.guarantee_period__c; |
| | | } |
| | | |
| | | // 有安装日,更新状态到[使用中] |
| | | if ( |
| | | (Trigger.isInsert && nObj.InstallDate != null) || |
| | | (Trigger.isUpdate && |
| | | nObj.InstallDate != null && |
| | | nObj.InstallDate != oldMap.get(nObj.Id).InstallDate) |
| | | ) { |
| | | nObj.Status_Busy_Date__c = today; |
| | | nObj.Status = '使用中'; |
| | | } |
| | | |
| | | // 备品再退货转DEL置TRUE |
| | | if (nObj.AccountId == '00110000015Bx0h' && nObj.RecordTypeId == '01210000000kOPM' && !nObj.Delete_Flag__c) { |
| | | nObj.Delete_Flag__c = true; |
| | | } |
| | | |
| | | // 设定备品所属公司(上海)FromVBA |
| | | if ( |
| | | (Trigger.isInsert && nObj.CompanyCodeOfEquipment_txt__c == '5112') || |
| | | (Trigger.isUpdate && |
| | | nObj.CompanyCodeOfEquipment_txt__c != oldMap.get(nObj.Id).CompanyCodeOfEquipment_txt__c && |
| | | nObj.CompanyCodeOfEquipment_txt__c == '5112') |
| | | ) { |
| | | nObj.CompanyOfEquipment__c = '上海'; |
| | | } |
| | | |
| | | // 设定备品所属公司(沈阳)FromVBA |
| | | if ( |
| | | (Trigger.isInsert && nObj.CompanyCodeOfEquipment_txt__c == '5114') || |
| | | (Trigger.isUpdate && |
| | | nObj.CompanyCodeOfEquipment_txt__c != oldMap.get(nObj.Id).CompanyCodeOfEquipment_txt__c && |
| | | nObj.CompanyCodeOfEquipment_txt__c == '5114') |
| | | ) { |
| | | nObj.CompanyOfEquipment__c = '沈阳'; |
| | | } |
| | | |
| | | // 设定备品所属公司(北京)FromVBA |
| | | if ( |
| | | (Trigger.isInsert && nObj.CompanyCodeOfEquipment_txt__c == '5111') || |
| | | (Trigger.isUpdate && |
| | | nObj.CompanyCodeOfEquipment_txt__c != oldMap.get(nObj.Id).CompanyCodeOfEquipment_txt__c && |
| | | nObj.CompanyCodeOfEquipment_txt__c == '5111') |
| | | ) { |
| | | nObj.CompanyOfEquipment__c = '北京'; |
| | | } |
| | | |
| | | // 设定备品所属公司(广州)FromVBA |
| | | if ( |
| | | (Trigger.isInsert && nObj.CompanyCodeOfEquipment_txt__c == '5113') || |
| | | (Trigger.isUpdate && |
| | | nObj.CompanyCodeOfEquipment_txt__c != oldMap.get(nObj.Id).CompanyCodeOfEquipment_txt__c && |
| | | nObj.CompanyCodeOfEquipment_txt__c == '5113') |
| | | ) { |
| | | nObj.CompanyOfEquipment__c = '广州'; |
| | | } |
| | | } |
| | | } |
| | | //20230309 sx 保有设备workflow代码化 end |
| | | |
| | | // 借出明细更新借出_分配_数(Sys)和已借出数(Sys) |
| | | private void updateRentalCount() { |
| | | Set<Id> idSet = new Set<Id>(); |
| | | for(Id assId : this.newMap.keySet()) { |
| | | if(this.newMap.get(assId).AssetManageConfirm__c && |
| | | this.newMap.get(assId).Account_Management_Code__c != System.Label.Account_Asset_FJZ ) { |
| | | for (Id assId : this.newMap.keySet()) { |
| | | if ( |
| | | this.newMap.get(assId).AssetManageConfirm__c && |
| | | this.newMap.get(assId).Account_Management_Code__c != System.Label.Account_Asset_FJZ |
| | | ) { |
| | | idSet.add(assId); |
| | | this.newMap.get(assId).Out_of_wh_Sys__c = 0; |
| | | this.newMap.get(assId).Rental_Count_Sys__c = 0; |
| | | } |
| | | } |
| | | if(!idSet.isEmpty()) { |
| | | for (Rental_Apply_Equipment_Set_Detail__c raesd : [ |
| | | if (!idSet.isEmpty()) { |
| | | // 备品性能优化改修 20230312 by lc Start |
| | | List<AggregateResult> raesdTempList2 = [ |
| | | SELECT COUNT(Id) num, Asset__c |
| | | FROM Rental_Apply_Equipment_Set_Detail__c |
| | | //备品发货报错对应 20230413 by lc Start |
| | | //WHERE Detail_Finish__c = false |
| | | WHERE |
| | | Detail_Not_Finish_Text__c = TRUE |
| | | //备品发货报错对应 20230413 by lc End |
| | | AND Asset__c IN :idSet |
| | | AND Shippment_loaner_time2__c != NULL |
| | | GROUP BY Asset__c |
| | | ]; |
| | | if (raesdTempList2 != null && raesdTempList2.size() > 0) { |
| | | for (AggregateResult ar : raesdTempList2) { |
| | | String assetId = String.valueOf(ar.get('Asset__c')); |
| | | Integer tempNum = Integer.valueOf(ar.get('num')); |
| | | this.newMap.get(assetId).Rental_Count_Sys__c += tempNum; |
| | | } |
| | | } |
| | | |
| | | List<AggregateResult> raesdTempList1 = [ |
| | | SELECT COUNT(Id) num, Asset__c |
| | | FROM Rental_Apply_Equipment_Set_Detail__c |
| | | //备品发货报错对应 20230413 by lc Start |
| | | //WHERE Detail_Finish__c = false |
| | | WHERE |
| | | Detail_Not_Finish_Text__c = TRUE |
| | | //备品发货报错对应 20230413 by lc End |
| | | AND Asset__c IN :idSet |
| | | GROUP BY Asset__c |
| | | ]; |
| | | if (raesdTempList1 != null && raesdTempList1.size() > 0) { |
| | | for (AggregateResult ar : raesdTempList1) { |
| | | String assetId = String.valueOf(ar.get('Asset__c')); |
| | | Integer tempNum = Integer.valueOf(ar.get('num')); |
| | | this.newMap.get(assetId).Out_of_wh_Sys__c += tempNum; |
| | | idSet.remove(assetId); |
| | | } |
| | | } |
| | | |
| | | /*for (Rental_Apply_Equipment_Set_Detail__c raesd : [ |
| | | SELECT Id, Shippment_loaner_time2__c, Asset__c |
| | | FROM Rental_Apply_Equipment_Set_Detail__c |
| | | WHERE Detail_Finish__c = false |
| | |
| | | this.newMap.get(raesd.Asset__c).Rental_Count_Sys__c += 1; |
| | | } |
| | | idSet.remove(raesd.Asset__c); |
| | | } |
| | | if(!idSet.isEmpty()) { |
| | | }*/ |
| | | // 备品性能优化改修 20230312 by lc End |
| | | |
| | | if (!idSet.isEmpty()) { |
| | | // 没有字段可以完全准确地区分备品设备与耗材设备,只好把备品里没出现过的设备当成耗材来查 |
| | | for (Consum_Apply_Equipment_Set_Detail__c caesd : [ |
| | | SELECT Id, Shippment_loaner_time2__c, Asset__c |
| | | FROM Consum_Apply_Equipment_Set_Detail__c |
| | | WHERE Detail_Finish__c = false |
| | | AND Asset__c IN :idSet |
| | | SELECT Id, Shippment_loaner_time2__c, Asset__c |
| | | FROM Consum_Apply_Equipment_Set_Detail__c |
| | | WHERE Detail_Finish__c = FALSE AND Asset__c IN :idSet |
| | | ]) { |
| | | this.newMap.get(caesd.Asset__c).Out_of_wh_Sys__c += 1; |
| | | if(caesd.Shippment_loaner_time2__c != null) { |
| | | if (caesd.Shippment_loaner_time2__c != null) { |
| | | this.newMap.get(caesd.Asset__c).Rental_Count_Sys__c += 1; |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | //多年保修 start |
| | | private void updateMaintenance_Contract_Asset(){ |
| | | private void updateMaintenance_Contract_Asset() { |
| | | StaticParameter.EscapeMaintenanceContractAfterUpdateTrigger = true; |
| | | Set<id> AssetIDSet = new Set<id>(); |
| | | for(Asset tempAsset : newList){ |
| | | if(String.isNotBlank(tempAsset.warrantyType__c)){ |
| | | for (Asset tempAsset : newList) { |
| | | // 20230306 ljh update start |
| | | Id Shipment = DEVELOPERNAMEMAP.get('Shipment').getRecordTypeId(); |
| | | // if(String.isNotBlank(tempAsset.warrantyType__c)){ |
| | | if (String.isNotBlank(tempAsset.warrantyType__c) && Shipment != tempAsset.RecordTypeId) { |
| | | // 20230306 ljh update end |
| | | AssetIDSet.add(tempAsset.id); |
| | | } |
| | | } |
| | | if(AssetIDSet.size() > 0 ){ |
| | | list<Maintenance_Contract_Asset__c> MCAList = |
| | | [select id,startDateGurantee__c, |
| | | startDateGurantee_Text__c,endDateGurantee__c, |
| | | endDateGurantee_Text__c,Return_Flag__c,ChangeAcc_flag__c, |
| | | Maintenance_Price_Amount__c,Maintenance_Price_Amount_text__c, |
| | | GuaranteePrice_Amount__c,GuaranteePrice_Amount_text__c |
| | | from Maintenance_Contract_Asset__c |
| | | where Asset__c in : AssetIDSet |
| | | and Maintenance_Contract__r.RecordType.DeveloperName = 'VM_Contract' |
| | | ]; |
| | | if(MCAList.size() > 0){ |
| | | list<Maintenance_Contract_Asset__c> UpdateMcaList = |
| | | new list<Maintenance_Contract_Asset__c> (); |
| | | for(Maintenance_Contract_Asset__c tempMCA : MCAList ){ |
| | | if(tempMCA.startDateGurantee__c != tempMCA.startDateGurantee_Text__c |
| | | || tempMCA.endDateGurantee__c != tempMCA.endDateGurantee_Text__c |
| | | || tempMCA.Maintenance_Price_Amount__c != tempMCA.Maintenance_Price_Amount_Text__c |
| | | || tempMCA.GuaranteePrice_Amount__c != tempMCA.GuaranteePrice_Amount_text__c){ |
| | | if (AssetIDSet.size() > 0) { |
| | | list<Maintenance_Contract_Asset__c> MCAList = [ |
| | | SELECT |
| | | id, |
| | | startDateGurantee__c, |
| | | startDateGurantee_Text__c, |
| | | endDateGurantee__c, |
| | | endDateGurantee_Text__c, |
| | | Return_Flag__c, |
| | | ChangeAcc_flag__c, |
| | | Maintenance_Price_Amount__c, |
| | | Maintenance_Price_Amount_text__c, |
| | | GuaranteePrice_Amount__c, |
| | | GuaranteePrice_Amount_text__c |
| | | FROM Maintenance_Contract_Asset__c |
| | | WHERE Asset__c IN :AssetIDSet AND Maintenance_Contract__r.RecordType.DeveloperName = 'VM_Contract' |
| | | ]; |
| | | if (MCAList.size() > 0) { |
| | | list<Maintenance_Contract_Asset__c> UpdateMcaList = new List<Maintenance_Contract_Asset__c>(); |
| | | for (Maintenance_Contract_Asset__c tempMCA : MCAList) { |
| | | if ( |
| | | tempMCA.startDateGurantee__c != tempMCA.startDateGurantee_Text__c || |
| | | tempMCA.endDateGurantee__c != tempMCA.endDateGurantee_Text__c || |
| | | tempMCA.Maintenance_Price_Amount__c != tempMCA.Maintenance_Price_Amount_Text__c || |
| | | tempMCA.GuaranteePrice_Amount__c != tempMCA.GuaranteePrice_Amount_text__c |
| | | ) { |
| | | UpdateMcaList.add(tempMCA); |
| | | } |
| | | } |
| | |
| | | if (Trigger.isInsert) { |
| | | nObj.Last_Reserve_RAES_Detail__c = null; |
| | | nObj.Last_Reserve_TAES_Detail__c = null; |
| | | nObj.Pre_Reserve_RAES_Detail__c = null; |
| | | nObj.Pre_Reserve_TAES_Detail__c = null; |
| | | nObj.Fixture_OneToOne_Link__c = null; |
| | | nObj.Pre_Reserve_RAES_Detail__c = null; |
| | | nObj.Pre_Reserve_TAES_Detail__c = null; |
| | | nObj.Fixture_OneToOne_Link__c = null; |
| | | } |
| | | |
| | | if (Trigger.isUpdate) { |
| | | Asset oObj = oldMap.get(nObj.Id); |
| | | if (oObj.Last_Reserve_RAES_Detail__c != null && nObj.Last_Reserve_RAES_Detail__c == null |
| | | && oObj.Last_Reserve_RAES_Detail_Flag__c == true) { |
| | | if ( |
| | | oObj.Last_Reserve_RAES_Detail__c != null && |
| | | nObj.Last_Reserve_RAES_Detail__c == null && |
| | | oObj.Last_Reserve_RAES_Detail_Flag__c == true |
| | | ) { |
| | | nObj.Pre_Reserve_RAES_Detail__c = oObj.Last_Reserve_RAES_Detail__c; |
| | | } |
| | | if (oObj.Last_Reserve_TAES_Detail__c != null && nObj.Last_Reserve_TAES_Detail__c == null |
| | | // TODO 由于__r超20,字段建不出来 |
| | | // && oObj.Last_Reserve_TAES_Detail_Flag__c == true |
| | | ) { |
| | | if (oObj.Last_Reserve_TAES_Detail__c != null && nObj.Last_Reserve_TAES_Detail__c == null) { |
| | | // TODO 由于__r超20,字段建不出来 |
| | | // && oObj.Last_Reserve_TAES_Detail_Flag__c == true |
| | | nObj.Pre_Reserve_TAES_Detail__c = oObj.Last_Reserve_TAES_Detail__c; |
| | | } |
| | | } |
| | |
| | | // 必ず最後で置く |
| | | nObj.Fixture_Status2_text__c = nObj.Fixture_Status2__c; |
| | | nObj.Fixture_Status3_text__c = nObj.Fixture_Status3__c; |
| | | nObj.BTreeIndexKey__c = nObj.Asset_Owner__c |
| | | + ':' + nObj.Asset_loaner_category__c |
| | | + ':' + String.valueOf(nobj.Freeze_sign_Abandoned_Flag__c) |
| | | + ':' + String.valueOf(nObj.Delete_Flag__c) |
| | | + ':' + String.valueOf(nObj.AssetManageConfirm__c); |
| | | nObj.BTreeIndexKey__c = |
| | | nObj.Asset_Owner__c + |
| | | ':' + |
| | | nObj.Asset_loaner_category__c + |
| | | ':' + |
| | | String.valueOf(nobj.Freeze_sign_Abandoned_Flag__c) + |
| | | ':' + |
| | | String.valueOf(nObj.Delete_Flag__c) + |
| | | ':' + |
| | | String.valueOf(nObj.AssetManageConfirm__c); |
| | | |
| | | if (nObj.Status == FixtureUtil.assetStatusMap.get(FixtureUtil.AssetStatus.Dai_Fei_Qi.ordinal())) { |
| | | nObj.Freeze_sign__c = false; |
| | | } |
| | | // gzw CHAN-CCR6MW 【委托】【保有设备】保有设备发货日逻辑 start |
| | | if(Trigger.isInsert && nObj.Posting_Date__c == null){ |
| | | if (Trigger.isInsert && nObj.Posting_Date__c == null) { |
| | | nObj.Posting_Date__c = Date.newInstance(1900, 1, 1); |
| | | } |
| | | // gzw CHAN-CCR6MW 【委托】【保有设备】保有设备发货日逻辑 end |
| | |
| | | String nAbandoned_Inventory = nObj.Abandoned_Inventory__c == null ? '' : String.valueOf(nObj.Abandoned_Inventory__c); |
| | | if ((oQuantity != nQuantity && String.isNotBlank(nObj.ChangeQuantityReason__c)) || Trigger.isInsert) { |
| | | String rs = nObj.ChangeQuantityReason__c; |
| | | nObj.ChangeQuantityHistory__c = String.format(System.Label.ChangeQuantityHistory, |
| | | new String[]{oQuantity, nQuantity, rs}); |
| | | nObj.ChangeQuantityHistory__c = String.format( |
| | | System.Label.ChangeQuantityHistory, |
| | | new List<String>{ oQuantity, nQuantity, rs } |
| | | ); |
| | | // before里面入立规则过不了改到 |
| | | // 已经改进 Must_Input_ChangeQuantityReason 的 valida before可以完成 ChangeQuantityReason__c = '' |
| | | // nObj.ChangeQuantityReason__c = ''; |
| | |
| | | |
| | | if (oAbandoned_Inventory != nAbandoned_Inventory || Trigger.isInsert) { |
| | | String rs = nObj.Giveup_Return__c; |
| | | nObj.ChangeAbandoned_InventoryHistory__c = String.format(System.Label.ChangeAbandoned_InventoryHistory, |
| | | new String[]{oAbandoned_Inventory, nAbandoned_Inventory, rs}); |
| | | nObj.ChangeAbandoned_InventoryHistory__c = String.format( |
| | | System.Label.ChangeAbandoned_InventoryHistory, |
| | | new List<String>{ oAbandoned_Inventory, nAbandoned_Inventory, rs } |
| | | ); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //// かならず afterUpdate |
| | | private void cleanChangeQuantityReason() { |
| | | // TODO 更新自己table 原则需要Static的Class变量(因为会有复数的Method去更新自己的) |
| | | List<Asset> assList = new List<Asset>(); |
| | | for (Asset nObj : newList) { |
| | | if (String.isBlank(nObj.ChangeQuantityReason__c) == false) { |
| | | assList.add(new Asset(Id = nObj.Id, |
| | | ChangeQuantityReason__c = '')); |
| | | } |
| | | } |
| | | if (!assList.isEmpty()) { |
| | | update assList; |
| | | } |
| | | // TODO 更新自己table 原则需要Static的Class变量(因为会有复数的Method去更新自己的) |
| | | List<Asset> assList = new List<Asset>(); |
| | | for (Asset nObj : newList) { |
| | | if (String.isBlank(nObj.ChangeQuantityReason__c) == false) { |
| | | assList.add(new Asset(Id = nObj.Id, ChangeQuantityReason__c = '')); |
| | | } |
| | | } |
| | | if (!assList.isEmpty()) { |
| | | update assList; |
| | | } |
| | | } |
| | | |
| | | // afterUpdate |
| | |
| | | List<Asset> assList = new List<Asset>(); |
| | | for (Asset nObj : newList) { |
| | | if (String.isBlank(nObj.Giveup_Return__c) == false) { |
| | | assList.add(new Asset( |
| | | Id = nObj.Id, |
| | | Giveup_Return__c = '')); |
| | | assList.add(new Asset(Id = nObj.Id, Giveup_Return__c = '')); |
| | | } |
| | | } |
| | | if (!assList.isEmpty()) { |
| | |
| | | } |
| | | if (!aSetIdSet.isEmpty()) { |
| | | List<Fixture_OneToOne_Link__c> oneToOneList = [ |
| | | SELECT Id FROM Fixture_OneToOne_Link__c WHERE Main_Asset__c IN :aSetIdSet]; |
| | | if (!oneToOneList.isEmpty()) { update oneToOneList; } |
| | | SELECT Id |
| | | FROM Fixture_OneToOne_Link__c |
| | | WHERE Main_Asset__c IN :aSetIdSet |
| | | ]; |
| | | if (!oneToOneList.isEmpty()) { |
| | | update oneToOneList; |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | // かならず after |
| | | private void queueRedistribution() { |
| | | if (queueRaesdMap == null) { |
| | | queueRaesdMap = new Map<String , List<Rental_Apply_Equipment_Set_Detail__c>>(); |
| | | queueRaesdMap = new Map<String, List<Rental_Apply_Equipment_Set_Detail__c>>(); |
| | | } |
| | | Map<String, Set<Id>> modelNoAssetIdMap = new Map<String, Set<Id>>(); |
| | | Set<Id> raesdIdSet = new Set<Id>(); |
| | |
| | | String whkey = ''; |
| | | for (Asset nObj : newList) { |
| | | //ToDo現在排队できるのは主体だけなので,今後个体管理の附属品も排队できるの場合があったらこのIFぶんを直す必要があります |
| | | if (!(nObj.Loaner_accsessary__c == false |
| | | && nObj.Asset_Owner__c == 'Olympus' |
| | | && nObj.Equipment_Type__c != '检测用备品' |
| | | && nObj.Delete_Flag__c == False |
| | | && nObj.You_Xiao_Ku_Cun__c > 0 |
| | | && nObj.Freeze_sign_Abandoned_Flag__c == False) |
| | | if ( |
| | | !(nObj.Loaner_accsessary__c == false && |
| | | nObj.Asset_Owner__c == 'Olympus' && |
| | | nObj.Equipment_Type__c != '检测用备品' && |
| | | nObj.Delete_Flag__c == false && |
| | | nObj.You_Xiao_Ku_Cun__c > 0 && |
| | | nObj.Freeze_sign_Abandoned_Flag__c == false) |
| | | ) { |
| | | continue; |
| | | } |
| | |
| | | key += nObj.Product_category__c; |
| | | } |
| | | |
| | | |
| | | System.debug(LoggingLevel.INFO, '*** key: ' + key); |
| | | //有新的Asset的时候 暂定分配 |
| | | // You_Xiao_Ku_Cun__c > 0 在上面已经做了判断 |
| | |
| | | // You_Xiao_Ku_Cun__c > 0 在上面已经做了判断 |
| | | else { |
| | | Asset oObj = oldMap.get(nObj.Id); |
| | | if (nObj.Loaner_accsessary__c == false && String.isBlank(nObj.Last_Reserve_RAES_Detail__c) |
| | | && (nObj.Last_Reserve_RAES_Detail__c != oObj.Last_Reserve_RAES_Detail__c |
| | | || (nObj.Asset_Owner__c != oObj.Asset_Owner__c && nObj.Asset_Owner__c == 'Olympus') |
| | | //备品存放地 OLY_OCM-722 恢复存放地的条件 |
| | | || (nObj.Internal_asset_location__c != oObj.Internal_asset_location__c) |
| | | //备品分类并且不是 检测用备品 |
| | | || (nObj.Equipment_Type__c != oObj.Equipment_Type__c && nObj.Equipment_Type__c != '检测用备品') |
| | | //销售本部 |
| | | || (nObj.Salesdepartment__c != oObj.Salesdepartment__c) |
| | | //产品分类(GI/SP) |
| | | || (nObj.Product_category__c != oObj.Product_category__c) |
| | | //备品配套明细型号 |
| | | || (nObj.Fixture_Model_No_F__c != oObj.Fixture_Model_No_F__c) |
| | | || (nObj.Delete_Flag__c != oObj.Delete_Flag__c && nObj.Delete_Flag__c == true) |
| | | || (nObj.Freeze_sign_Abandoned_Flag__c != oObj.Freeze_sign_Abandoned_Flag__c && nObj.Freeze_sign_Abandoned_Flag__c == false) |
| | | ) |
| | | if ( |
| | | nObj.Loaner_accsessary__c == false && |
| | | String.isBlank(nObj.Last_Reserve_RAES_Detail__c) && |
| | | (nObj.Last_Reserve_RAES_Detail__c != oObj.Last_Reserve_RAES_Detail__c || |
| | | (nObj.Asset_Owner__c != oObj.Asset_Owner__c && |
| | | nObj.Asset_Owner__c == 'Olympus') || |
| | | //备品存放地 OLY_OCM-722 恢复存放地的条件 |
| | | (nObj.Internal_asset_location__c != oObj.Internal_asset_location__c) || |
| | | //备品分类并且不是 检测用备品 |
| | | (nObj.Equipment_Type__c != oObj.Equipment_Type__c && |
| | | nObj.Equipment_Type__c != '检测用备品') || |
| | | //销售本部 |
| | | (nObj.Salesdepartment__c != oObj.Salesdepartment__c) || |
| | | //产品分类(GI/SP) |
| | | (nObj.Product_category__c != oObj.Product_category__c) || |
| | | //备品配套明细型号 |
| | | (nObj.Fixture_Model_No_F__c != oObj.Fixture_Model_No_F__c) || |
| | | (nObj.Delete_Flag__c != oObj.Delete_Flag__c && |
| | | nObj.Delete_Flag__c == true) || |
| | | (nObj.Freeze_sign_Abandoned_Flag__c != oObj.Freeze_sign_Abandoned_Flag__c && |
| | | nObj.Freeze_sign_Abandoned_Flag__c == false)) |
| | | ) { |
| | | if (String.isBlank(nObj.Fixture_Model_No_F__c) == false) { |
| | | if (modelNoAssetIdMap.containsKey(key) == false) { |
| | |
| | | List<String> keyList = new List<String>(); |
| | | keyList.addAll(modelNoAssetIdMap.keySet()); |
| | | System.debug(LoggingLevel.INFO, '*** keyList: ' + keyList); |
| | | List<Rental_Apply_Sequence__c> targetSequence = [SELECT Id,Apply_Set_Detail__c, |
| | | Apply_Set_Detail_ExternalKey__c, |
| | | Demo_Purpose2__c, Equipment_Type__c, ExternalKey__c, |
| | | Fixture_Model_No__c, |
| | | Internal_asset_location__c, Invalid_Flag__c, |
| | | Product_category__c, |
| | | Rental_Apply__c,Series_No__c, |
| | | Series_Unequal_Queue_Flag__c, Salesdepartment__c |
| | | FROM Rental_Apply_Sequence__c |
| | | WHERE Series_No__c > 0 AND Invalid_Flag__c =false |
| | | AND Apply_Set_Detail__c NOT IN:raesdIdSet |
| | | AND ExternalKey__c IN:keyList |
| | | AND Apply_Set_Detail__r.Cancel_Select__c = false |
| | | ORDER BY Series_No__c ]; |
| | | List<Rental_Apply_Sequence__c> targetSequence = [ |
| | | SELECT |
| | | Id, |
| | | Apply_Set_Detail__c, |
| | | Apply_Set_Detail_ExternalKey__c, |
| | | Demo_Purpose2__c, |
| | | Equipment_Type__c, |
| | | ExternalKey__c, |
| | | Fixture_Model_No__c, |
| | | Internal_asset_location__c, |
| | | Invalid_Flag__c, |
| | | Product_category__c, |
| | | Rental_Apply__c, |
| | | Series_No__c, |
| | | Series_Unequal_Queue_Flag__c, |
| | | Salesdepartment__c |
| | | FROM Rental_Apply_Sequence__c |
| | | WHERE |
| | | Series_No__c > 0 |
| | | AND Invalid_Flag__c = FALSE |
| | | AND Apply_Set_Detail__c NOT IN :raesdIdSet |
| | | AND ExternalKey__c IN :keyList |
| | | AND Apply_Set_Detail__r.Cancel_Select__c = FALSE |
| | | ORDER BY Series_No__c |
| | | ]; |
| | | System.debug(LoggingLevel.INFO, '*** targetSequence: ' + targetSequence); |
| | | Map<String,List<Rental_Apply_Sequence__c>> sequenceMap = new Map<String,List<Rental_Apply_Sequence__c>>(); |
| | | for(Rental_Apply_Sequence__c sequeuece:targetSequence){ |
| | | if(!sequenceMap.containsKey(sequeuece.Externalkey__c)){ |
| | | sequenceMap.put(sequeuece.Externalkey__c,new List<Rental_Apply_Sequence__c>()); |
| | | Map<String, List<Rental_Apply_Sequence__c>> sequenceMap = new Map<String, List<Rental_Apply_Sequence__c>>(); |
| | | for (Rental_Apply_Sequence__c sequeuece : targetSequence) { |
| | | if (!sequenceMap.containsKey(sequeuece.Externalkey__c)) { |
| | | sequenceMap.put(sequeuece.Externalkey__c, new List<Rental_Apply_Sequence__c>()); |
| | | } |
| | | sequenceMap.get(sequeuece.Externalkey__c).add(sequeuece); |
| | | } |
| | | Map<String,Rental_Apply_Equipment_Set_Detail__c> updateMap = new Map<String,Rental_Apply_Equipment_Set_Detail__c>(); |
| | | for(String key:sequenceMap.keySet()){ |
| | | for(Rental_Apply_Sequence__c sequeuece:sequenceMap.get(key)){ |
| | | if(!updateMap.containsKey(sequeuece.Apply_Set_Detail__c)){ |
| | | Map<String, Rental_Apply_Equipment_Set_Detail__c> updateMap = new Map<String, Rental_Apply_Equipment_Set_Detail__c>(); |
| | | for (String key : sequenceMap.keySet()) { |
| | | for (Rental_Apply_Sequence__c sequeuece : sequenceMap.get(key)) { |
| | | if (!updateMap.containsKey(sequeuece.Apply_Set_Detail__c)) { |
| | | System.debug(LoggingLevel.INFO, '*** modelNoAssetIdMap: ' + JSON.serialize(modelNoAssetIdMap)); |
| | | if(modelNoAssetIdMap.containsKey(key)){ |
| | | if (modelNoAssetIdMap.containsKey(key)) { |
| | | List<Id> assIdList = new List<Id>(); |
| | | assIdList.addAll(modelNoAssetIdMap.get(key)); |
| | | String assIdbk = assIdList.get(0); |
| | |
| | | raesd.Id = sequeuece.Apply_Set_Detail__c; |
| | | raesd.Asset__c = assIdbk; |
| | | System.debug('raesd.Asset__c' + raesd.Asset__c); |
| | | raesd.Queue_Number__c = 0; // 暂定分配 |
| | | updateMap.put(raesd.Id,raesd); |
| | | |
| | | raesd.Queue_Number__c = 0; // 暂定分配 |
| | | updateMap.put(raesd.Id, raesd); |
| | | |
| | | modelNoAssetIdMap.get(key).remove(assIdbk); |
| | | if (modelNoAssetIdMap.get(key).isEmpty()) { |
| | |
| | | System.debug(LoggingLevel.INFO, '*** modelNoAssetIdMap: ' + JSON.serialize(modelNoAssetIdMap)); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | System.debug(LoggingLevel.INFO, '*** updateMap.values(): ' + JSON.serialize(updateMap.values())); |
| | | update updateMap.values(); |
| | | |
| | | // Fixture_Model_No_F__c を見ることができない、データがおおいので。 |
| | | // Fixture_Set_Detail__r.Fixture_Model_No_F__c をみるか Fixture_Model_No_text__c をみるか |
| | | // Fixture_Model_No_F__c を見ることができない、データがおおいので。 |
| | | // Fixture_Set_Detail__r.Fixture_Model_No_F__c をみるか Fixture_Model_No_text__c をみるか |
| | | // whkey += ' ('; |
| | | // whkey += ' ((Fixture_Set_Detail__c != null and Fixture_Set_Detail__r.Product2__r.Fixture_Model_No_T__c =\'' + String.escapeSingleQuotes(nObj.Fixture_Model_No_F__c) + '\')'; |
| | | // whkey += ' OR Fixture_Model_No_text__c =\'' + String.escapeSingleQuotes(nObj.Fixture_Model_No_F__c) + '\''; |
| | |
| | | // whkey += wher + ' ) OR'; |
| | | // } |
| | | |
| | | |
| | | |
| | | // if (String.isNotBlank(whkey)) { |
| | | // whkey = '( ' + whkey.removeEnd('OR') + ')'; |
| | | // } |
| | | |
| | | |
| | | |
| | | // String soql = 'SELECT Fixture_Model_No_F__c, Substitute_flag__c, Asset__c,' |
| | | // + ' Queue_Number__c, Fixture_Model_No_text__c, Salesdepartment_before__c,' |
| | |
| | | private void checkOneToOneLink() { |
| | | Set<Id> otoIds = new Set<Id>(); // 待删除link的Id |
| | | Set<Id> assetIds = new Set<Id>(); |
| | | Set<String> centers = new Set<String> {'北京 备品中心', '上海 备品中心', '广州 备品中心'}; |
| | | Set<String> centers = new Set<String>{ '北京 备品中心', '上海 备品中心', '广州 备品中心' }; |
| | | for (Asset nObj : newList) { |
| | | //待废弃,废弃,和数量0的备品需要断开一对一link (目前只处理个体管理的) |
| | | if ((nObj.Fixture_Status__c == FixtureUtil.assetFixtureStatusMap.get(FixtureUtil.AssetFixtureStatus.Fei_Qi.ordinal()) |
| | | || nObj.Fixture_Status__c == FixtureUtil.assetFixtureStatusMap.get(FixtureUtil.AssetFixtureStatus.Dai_Fei_Qi.ordinal()) |
| | | || nObj.Quantity == 0) && nObj.Manage_type__c == FixtureUtil.managetypeMap.get(FixtureUtil.Managetype.Ge_Ti_Guan_Li)){ |
| | | if ( |
| | | (nObj.Fixture_Status__c == FixtureUtil.assetFixtureStatusMap.get(FixtureUtil.AssetFixtureStatus.Fei_Qi.ordinal()) || |
| | | nObj.Fixture_Status__c == FixtureUtil.assetFixtureStatusMap.get(FixtureUtil.AssetFixtureStatus.Dai_Fei_Qi.ordinal()) || |
| | | nObj.Quantity == 0) && nObj.Manage_type__c == FixtureUtil.managetypeMap.get(FixtureUtil.Managetype.Ge_Ti_Guan_Li) |
| | | ) { |
| | | //是一对一主体或者是一对一个体附属品 |
| | | if (nObj.Main_OneToOne__c == true || nObj.Fixture_OneToOne_Link__c <> null) { |
| | | if(centers.contains(nObj.Internal_asset_location__c)) { |
| | | if (centers.contains(nObj.Internal_asset_location__c)) { |
| | | assetIds.add(nObj.Id); |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | if (assetIds.size() > 0) { |
| | | Map<Id, Fixture_OneToOne_Link__c> linkMap = new Map<Id, Fixture_OneToOne_Link__c>([ |
| | | SELECT Id |
| | | FROM Fixture_OneToOne_Link__c |
| | | WHERE Main_Asset__c in :assetIds |
| | | OR Accessory_Asset__c IN: assetIds |
| | | ]); |
| | | if(!linkMap.isEmpty()){ |
| | | Map<Id, Fixture_OneToOne_Link__c> linkMap = new Map<Id, Fixture_OneToOne_Link__c>( |
| | | [ |
| | | SELECT Id |
| | | FROM Fixture_OneToOne_Link__c |
| | | WHERE Main_Asset__c IN :assetIds OR Accessory_Asset__c IN :assetIds |
| | | ] |
| | | ); |
| | | if (!linkMap.isEmpty()) { |
| | | delete linkMap.values(); |
| | | } |
| | | } |
| | |
| | | * - 没有找的话, 不更新AccountId, 自动做 Account, Group, ApexShare |
| | | */ |
| | | private void beforeSetAccountId() { |
| | | Set<String> targetDepts = new Set<String> {'1.华北营业本部','2.东北营业本部','3.西北营业本部','4.华东营业本部','5.华南营业本部','6.西南营业本部'}; |
| | | Set<String> targetCenters = new Set<String> {'北京 备品中心', '上海 备品中心', '广州 备品中心'}; |
| | | Set<String> targetDepts = new Set<String>{ |
| | | '1.华北营业本部', |
| | | '2.东北营业本部', |
| | | '3.西北营业本部', |
| | | '4.华东营业本部', |
| | | '5.华南营业本部', |
| | | '6.西南营业本部' |
| | | }; |
| | | Set<String> targetCenters = new Set<String>{ '北京 备品中心', '上海 备品中心', '广州 备品中心' }; |
| | | if (Test.isRunningTest() && testTargetDepts != null) { |
| | | targetDepts = testTargetDepts; |
| | | } |
| | |
| | | Asset oObj = (null == this.oldMap) ? null : this.oldMap.get(nObj.Id); |
| | | |
| | | // 作成, 确认字段有没有变化 |
| | | if (Trigger.isInsert |
| | | || (oObj != null |
| | | && (oObj.RecordTypeId != nObj.RecordTypeId |
| | | || oObj.Asset_loaner_category__c != nObj.Asset_loaner_category__c |
| | | || oObj.AssetManageConfirm__c != nObj.AssetManageConfirm__c |
| | | || oObj.Internal_asset_location__c != nObj.Internal_asset_location__c |
| | | || oObj.Salesdepartment__c != nObj.Salesdepartment__c |
| | | || oObj.OlympusAccShareName__c != nObj.OlympusAccShareName__c |
| | | ) |
| | | && (targetCenters.contains(nObj.Internal_asset_location__c) |
| | | || targetProvs.containsKey(nObj.Internal_asset_location__c) |
| | | ) |
| | | && !nObj.TransferToOther__c |
| | | ) |
| | | if ( |
| | | Trigger.isInsert || |
| | | (oObj != null && |
| | | (oObj.RecordTypeId != nObj.RecordTypeId || |
| | | oObj.Asset_loaner_category__c != nObj.Asset_loaner_category__c || |
| | | oObj.AssetManageConfirm__c != nObj.AssetManageConfirm__c || |
| | | oObj.Internal_asset_location__c != nObj.Internal_asset_location__c || |
| | | oObj.Salesdepartment__c != nObj.Salesdepartment__c || |
| | | oObj.OlympusAccShareName__c != nObj.OlympusAccShareName__c) && |
| | | (targetCenters.contains(nObj.Internal_asset_location__c) || targetProvs.containsKey(nObj.Internal_asset_location__c)) && |
| | | !nObj.TransferToOther__c) |
| | | ) { |
| | | // 是不是备品的确认 |
| | | if (System.Label.Asset_RecordType == nObj.RecordTypeId |
| | | && true == nObj.AssetManageConfirm__c |
| | | && nObj.Asset_loaner_category__c != '耗材' |
| | | if ( |
| | | System.Label.Asset_RecordType == nObj.RecordTypeId && |
| | | true == nObj.AssetManageConfirm__c && |
| | | nObj.Asset_loaner_category__c != '耗材' |
| | | ) { |
| | | // 办事处备品 → 动态设定 Asset.AccountId 的対象 |
| | | if (targetProvs.containsKey(nObj.Internal_asset_location__c) |
| | | && targetDepts.contains(nObj.Salesdepartment__c) |
| | | ) { |
| | | String accShareName = '备品共享_' |
| | | + targetProvs.get(nObj.Internal_asset_location__c) + '_' + nObj.Salesdepartment__c.right(6); |
| | | if (targetProvs.containsKey(nObj.Internal_asset_location__c) && targetDepts.contains(nObj.Salesdepartment__c)) { |
| | | String accShareName = |
| | | '备品共享_' + |
| | | targetProvs.get(nObj.Internal_asset_location__c) + |
| | | '_' + |
| | | nObj.Salesdepartment__c.right(6); |
| | | nObj.OlympusAccShareName__c = accShareName; |
| | | assetAccShareNameMap.put(nObj, accShareName); |
| | | } |
| | | else { |
| | | } else { |
| | | if (AssetHandler.Account_Asset_Id == null) { |
| | | // Static 只会执行一遍 |
| | | AssetHandler.Account_Asset_Id = [SELECT Id FROM Account WHERE AgentCode_Ext__c =: System.Label.Account_Asset].Id; |
| | | AssetHandler.Account_Asset_Id = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE AgentCode_Ext__c = :System.Label.Account_Asset |
| | | ] |
| | | .Id; |
| | | } |
| | | nObj.OlympusAccShareName__c = ''; |
| | | nObj.AccountId = AssetHandler.Account_Asset_Id; |
| | |
| | | Set<String> insertAccShareNameSet = new Set<String>(); |
| | | if (assetAccShareNameMap.size() > 0) { |
| | | Map<String, Id> accShareId = new Map<String, Id>(); |
| | | for (Account accShare : [SELECT Id |
| | | , Department_Name__c |
| | | FROM Account |
| | | WHERE RecordTypeId =: System.Label.Department_OTH |
| | | AND Department_Name__c IN: assetAccShareNameMap.values()]) { |
| | | for (Account accShare : [ |
| | | SELECT Id, Department_Name__c |
| | | FROM Account |
| | | WHERE RecordTypeId = :System.Label.Department_OTH AND Department_Name__c IN :assetAccShareNameMap.values() |
| | | ]) { |
| | | accShareId.put(accShare.Department_Name__c, accShare.Id); |
| | | } |
| | | |
| | |
| | | if (accShareId.containsKey(accShareName)) { |
| | | // 找到 Account 设定 AccountId, "Olympus社内 其他 备品" => "Olympus社内 其他 备品共享_XXX" |
| | | nObj.AccountId = accShareId.get(accShareName); |
| | | } |
| | | else { |
| | | } else { |
| | | // 找不到 AccountId, 新建 Account, Group, ApexShare |
| | | insertAccShareNameSet.add(accShareName); |
| | | } |
| | | } |
| | | } |
| | | if (insertAccShareNameSet.size() > 0) { |
| | | // AssetHandler.futureInsertAccShare(JSON.serialize(insertAccShareNameSet), execNow); |
| | | // AssetHandler.futureInsertAccShare(JSON.serialize(insertAccShareNameSet), execNow); |
| | | System.enqueueJob(new MyQueueableClass(JSON.serialize(insertAccShareNameSet), execNow)); |
| | | } |
| | | } |
| | |
| | | */ |
| | | private static void insertAccShare(String insertAccShareNameJson, Datetime execNow) { |
| | | Set<String> insertAccShareNameSet = (Set<String>) JSON.deserialize(insertAccShareNameJson, Set<String>.class); |
| | | if (insertAccShareNameSet.isEmpty()) { return; } |
| | | if (insertAccShareNameSet.isEmpty()) { |
| | | return; |
| | | } |
| | | |
| | | // Olympus社内 其他 |
| | | List<Account> olympusAccount_OtherDC; |
| | | try { |
| | | olympusAccount_OtherDC = [SELECT Id, ParentId |
| | | FROM Account |
| | | WHERE Parent.AgentCode_Ext__c = '9999999' AND Department_Class_Name__c = '其他' |
| | | FOR Update]; |
| | | olympusAccount_OtherDC = [ |
| | | SELECT Id, ParentId |
| | | FROM Account |
| | | WHERE Parent.AgentCode_Ext__c = '9999999' AND Department_Class_Name__c = '其他' |
| | | FOR UPDATE |
| | | ]; |
| | | } catch (Exception e) { |
| | | System.enqueueJob(new MyQueueableClass(insertAccShareNameJson, execNow)); |
| | | return; |
| | | } |
| | | |
| | | List<Account> isInsertedList = [SELECT Id, Department_Name__c |
| | | FROM Account |
| | | WHERE ParentId =: olympusAccount_OtherDC[0].Id |
| | | AND Department_Name__c IN: insertAccShareNameSet]; |
| | | List<Account> isInsertedList = [ |
| | | SELECT Id, Department_Name__c |
| | | FROM Account |
| | | WHERE ParentId = :olympusAccount_OtherDC[0].Id AND Department_Name__c IN :insertAccShareNameSet |
| | | ]; |
| | | if (isInsertedList.size() > 0) { |
| | | Map<String, Account> insertedAccount = new Map<String, Account>(); |
| | | for (Account insertedAcc : isInsertedList) { |
| | |
| | | AssetHandler.updateAssetAccount(insertedAccount, execNow); |
| | | } |
| | | |
| | | |
| | | if (insertAccShareNameSet.size() > 0) { |
| | | Map<String, Account> insertAccount = new Map<String, Account>(); |
| | | for (String accShareName : insertAccShareNameSet) { |
| | | insertAccount.put(accShareName, new Account( |
| | | Name = '*', |
| | | Hospital__c = olympusAccount_OtherDC[0].ParentId, |
| | | ParentId = olympusAccount_OtherDC[0].Id, |
| | | Department_Class__c = olympusAccount_OtherDC[0].Id, |
| | | Other_dept_category__c = '其他科室', |
| | | Department_Name__c = accShareName, |
| | | OwnerId = System.Label.Batch_User_Id, |
| | | RecordTypeId = System.Label.Department_OTH |
| | | )); |
| | | insertAccount.put( |
| | | accShareName, |
| | | new Account( |
| | | Name = '*', |
| | | Hospital__c = olympusAccount_OtherDC[0].ParentId, |
| | | ParentId = olympusAccount_OtherDC[0].Id, |
| | | Department_Class__c = olympusAccount_OtherDC[0].Id, |
| | | Other_dept_category__c = '其他科室', |
| | | Department_Name__c = accShareName, |
| | | OwnerId = System.Label.Batch_User_Id, |
| | | RecordTypeId = System.Label.Department_OTH |
| | | ) |
| | | ); |
| | | } |
| | | AssetHandler.insertAccGrantShare(insertAccount, execNow); |
| | | } |
| | | } |
| | | |
| | | private static void insertAccGrantShare(Map<String, Account> insertAccountMap, Datetime execNow) { |
| | | if (insertAccountMap.isEmpty()) { return; } |
| | | if (insertAccountMap.isEmpty()) { |
| | | return; |
| | | } |
| | | Set<String> accShareNameSet = insertAccountMap.keySet(); |
| | | // insert Account的时候, 跳过 NFM001 |
| | | // OLY_OCM-1230 需要执行NFM001Trigger |
| | |
| | | Map<String, Group> insertGroup = new Map<String, Group>(); |
| | | Map<String, Group> groupNameMap = new Map<String, Group>(); |
| | | for (String accShareName : accShareNameSet) { |
| | | insertGroup.put(accShareName, new Group( |
| | | Name = accShareName |
| | | )); |
| | | insertGroup.put(accShareName, new Group(Name = accShareName)); |
| | | } |
| | | |
| | | // Check 有没有 Group |
| | | for (Group grp : [SELECT Id, Name FROM Group WHERE Type = 'Regular' AND Name IN: accShareNameSet]) { |
| | | for (Group grp : [ |
| | | SELECT Id, Name |
| | | FROM Group |
| | | WHERE Type = 'Regular' AND Name IN :accShareNameSet |
| | | ]) { |
| | | // 已经有Group 的话 不用 insert |
| | | insertGroup.remove(grp.Name); |
| | | groupNameMap.put(grp.Name, grp); |
| | |
| | | // 赋 Account 共享权限 |
| | | List<AccountShare> insertShareList = new List<AccountShare>(); |
| | | for (String accShareName : accShareNameSet) { |
| | | insertShareList.add(new AccountShare( |
| | | insertShareList.add( |
| | | new AccountShare( |
| | | UserOrGroupId = groupNameMap.get(accShareName).Id, |
| | | AccountId = insertAccountMap.get(accShareName).Id, |
| | | AccountAccessLevel = 'Edit', |
| | | OpportunityAccessLevel = 'None' |
| | | )); |
| | | ) |
| | | ); |
| | | } |
| | | insert insertShareList; |
| | | // Update Asset.AccountId |
| | |
| | | } |
| | | |
| | | private static void updateAssetAccount(Map<String, Account> accShareNameAccountMap, Datetime execNow) { |
| | | if (accShareNameAccountMap.isEmpty()) { return; } |
| | | if (accShareNameAccountMap.isEmpty()) { |
| | | return; |
| | | } |
| | | Set<String> accShareNameSet = accShareNameAccountMap.keySet(); |
| | | |
| | | List<Asset> updAssetAccount = new List<Asset>(); |
| | | for (Asset nObj : [SELECT Id, OlympusAccShareName__c, AccountId |
| | | FROM Asset |
| | | WHERE OlympusAccShareSameFlag__c = '0' |
| | | AND OlympusAccShareName__c IN: accShareNameSet |
| | | AND LastModifiedDate >=: execNow]) { |
| | | for (Asset nObj : [ |
| | | SELECT Id, OlympusAccShareName__c, AccountId |
| | | FROM Asset |
| | | WHERE OlympusAccShareSameFlag__c = '0' AND OlympusAccShareName__c IN :accShareNameSet AND LastModifiedDate >= :execNow |
| | | ]) { |
| | | nObj.AccountId = accShareNameAccountMap.get(nObj.OlympusAccShareName__c).Id; |
| | | updAssetAccount.add(nObj); |
| | | } |
| | |
| | | AssetHandler.insertAccShare(insertAccShareNameJson, execNow); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <?xml version="1.0" encoding="UTF-8" ?> |
| | | <ApexClass xmlns="http://soap.sforce.com/2006/04/metadata"> |
| | | <apiVersion>35.0</apiVersion> |
| | | <apiVersion>50.0</apiVersion> |
| | | <status>Active</status> |
| | | </ApexClass> |
| New file |
| | |
| | | global without sharing class Batch_FixAttachmentToFiles implements Database.Batchable<sObject> { |
| | | // Id batchJobId = Database.executeBatch(new Batch_FixAttachmentToFiles('Consumable_order__c',Datetime.newInstance(2023, 1, 1, 8, 0, 0),Datetime.newInstance(2024, 1, 1, 8, 0, 0)),2000); |
| | | private Datetime creStartDate = null; |
| | | private Datetime creEndDate = null; |
| | | private String objectApiName = null; |
| | | private Set<String> parentIds = new Set<String>(); //Add by Li Jun 20230703 |
| | | public Batch_FixAttachmentToFiles(String objectType, Datetime startTime, Datetime endTime) { |
| | | creStartDate = startTime; |
| | | creEndDate = endTime; |
| | | objectApiName = objectType; |
| | | } |
| | | //Add by Li Jun 20230703 Start |
| | | public Batch_FixAttachmentToFiles(Set<String> parentIds) { |
| | | this.parentIds = parentIds; |
| | | } |
| | | //Add by Li Jun 20230703 End |
| | | global Database.QueryLocator start(Database.BatchableContext BC) { |
| | | String queryObject = 'SELECT Id, Name, OwnerId, ParentId, Parent.Name, Parent.Type, Body, CreatedDate, CreatedById FROM Attachment WHERE Parent.Type =:objectApiName AND CreatedDate >=:creStartDate AND CreatedDate <:creEndDate Order by CreatedDate ASC'; |
| | | if (parentIds.size() > 0) { |
| | | queryObject = 'SELECT Id, Name, OwnerId, ParentId, Parent.Name, Parent.Type, Body, CreatedDate, CreatedById FROM Attachment WHERE ParentId in:parentIds'; |
| | | } |
| | | return Database.getQueryLocator(queryObject); |
| | | } |
| | | |
| | | global void execute(Database.BatchableContext BC, List<Attachment> scope) { |
| | | List<ContentVersion> insertContents = new List<ContentVersion>(); |
| | | Map<string, id> nameParentMaps = new Map<string, id>(); |
| | | Set<String> attachmentIds = new Set<String>(); |
| | | for (Attachment att : scope) { |
| | | nameParentMaps.put(att.Name, att.ParentId); |
| | | attachmentIds.add(att.Id); |
| | | ContentVersion cVersion = new ContentVersion(); |
| | | cVersion.ContentLocation = 'S'; //S-Document is in Salesforce. E-Document is outside of Salesforce. L-Document is on a Social Netork. |
| | | cVersion.PathOnClient = att.Name; //File name with extention |
| | | cVersion.Origin = 'C'; //C-Content Origin. H-Chatter Origin. |
| | | cVersion.Title = att.Name; //Name of the file |
| | | cVersion.VersionData = att.Body; //File content |
| | | insertContents.add(cVersion); |
| | | } |
| | | if (insertContents.isEmpty()) { |
| | | return; |
| | | } |
| | | //Insert insertContents; |
| | | List<Database.SaveResult> saveResultsContents = Database.insert(insertContents, false); |
| | | insertLog(saveResultsContents, attachmentIds); |
| | | set<Id> contentIds = new Set<Id>(); |
| | | for (ContentVersion cv : insertContents) { |
| | | contentIds.add(cv.id); |
| | | } |
| | | List<ContentVersion> conDocuments = [ |
| | | SELECT ContentDocumentId, Title |
| | | FROM ContentVersion |
| | | WHERE Id IN :contentIds |
| | | ]; |
| | | List<ContentDocumentLink> insertDocLinks = new List<ContentDocumentLink>(); |
| | | for (ContentVersion cv : conDocuments) { |
| | | ContentDocumentLink cDocLink = new ContentDocumentLink(); |
| | | cDocLink.ContentDocumentId = cv.ContentDocumentId; //Add ContentDocumentId |
| | | cDocLink.LinkedEntityId = nameParentMaps.get(cv.Title); //Add attachment parentId |
| | | cDocLink.ShareType = 'V'; //V - Viewer permission. C - Collaborator permission. I - Inferred permission. |
| | | cDocLink.Visibility = 'AllUsers'; |
| | | insertDocLinks.add(cDocLink); |
| | | } |
| | | //Insert insertDocLinks; |
| | | List<Database.SaveResult> saveResultsLinks = Database.insert(insertDocLinks, false); |
| | | insertLog(saveResultsLinks, attachmentIds); |
| | | } |
| | | |
| | | global void insertLog(List<Database.SaveResult> saveResults, Set<String> attachmentIds) { |
| | | Transaction_Log__c traLog = new Transaction_Log__c(); |
| | | List<Map<String, String>> logMapList = new List<Map<String, String>>(); |
| | | for (Database.SaveResult result : saveResults) { |
| | | String recordId = result.getId(); |
| | | if (!result.isSuccess()) { |
| | | for (Database.Error error : result.getErrors()) { |
| | | Map<String, String> logMap = new Map<String, String>(); |
| | | String errorMsg = error.getMessage(); |
| | | logMap.put('recordId', recordId); |
| | | logMap.put('errorMsg', errorMsg); |
| | | logMapList.add(logMap); |
| | | } |
| | | } |
| | | } |
| | | if (logMapList.size() > 0) { |
| | | Map<String, String> attachmentIdMap = new Map<String, String>(); |
| | | attachmentIdMap.put('attachmentIds', JSON.serialize(attachmentIds)); |
| | | logMapList.add(attachmentIdMap); |
| | | traLog.Response__c = JSON.serialize(logMapList); |
| | | traLog.Module__c = 'Attachment COnvert Transaction '; |
| | | insert traLog; |
| | | } |
| | | } |
| | | |
| | | global void finish(Database.BatchableContext BC) { |
| | | } |
| | | } |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8" ?> |
| | | <ApexClass xmlns="http://soap.sforce.com/2006/04/metadata"> |
| | | <apiVersion>57.0</apiVersion> |
| | | <status>Active</status> |
| | | </ApexClass> |
| New file |
| | |
| | | @isTest(SeeAllData=true) |
| | | private class Batch_FixAttachmentToFilesTest { |
| | | @isTest(SeeAllData=true) |
| | | static void testInit() { |
| | | String rectCo = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); |
| | | Account accountItem1 = new Account(Name = 'Testaccount001', RecordTypeId = rectCo); |
| | | insert accountItem1; |
| | | |
| | | Consumable_order__c consOrder = new Consumable_order__c(); |
| | | consOrder.Name = 'test01'; |
| | | consOrder.Order_status__c = '批准'; |
| | | consOrder.Deliver_date__c = Date.today(); |
| | | consOrder.RecordTypeid = System.Label.RT_ConOrder_Delivery; |
| | | consOrder.Order_type__c = '订单'; |
| | | consOrder.Order_ProType__c = 'ENG'; |
| | | consOrder.Dealer_Info__c = accountItem1.Id; |
| | | consOrder.Delivery_detail_count__c = 5; |
| | | insert consOrder; |
| | | |
| | | List<Attachment> attachList = new List<Attachment>(); |
| | | Attachment attach = new Attachment(); |
| | | attach.Name = 'A-65224941-20200923--1.docx'; |
| | | Blob bodyBlob = Blob.valueOf('Unit Test Attachment Body'); |
| | | attach.body = bodyBlob; |
| | | attach.ParentId = consOrder.Id; |
| | | attachList.add(attach); |
| | | insert attachList; |
| | | |
| | | Set<String> Id = new Set<String>(); |
| | | String objectType; |
| | | Datetime creStartDate; |
| | | Datetime creEndDate; |
| | | |
| | | List<Attachment> attachmentList = [ |
| | | SELECT Id, Name, OwnerId, ParentId, Parent.Name, Parent.Type, Body, CreatedDate, CreatedById |
| | | FROM Attachment |
| | | WHERE Id = :attachList[0].Id |
| | | ORDER BY CreatedDate ASC |
| | | LIMIT 1 |
| | | ]; |
| | | for (Attachment att : attachmentList) { |
| | | Id.add(att.ParentId); |
| | | objectType = att.Parent.Name; |
| | | creStartDate = att.CreatedDate; |
| | | creEndDate = att.CreatedDate.addDays(1); |
| | | } |
| | | System.Test.startTest(); |
| | | Database.executeBatch(new Batch_FixAttachmentToFiles(objectType, creStartDate, creEndDate), 1); |
| | | Database.executeBatch(new Batch_FixAttachmentToFiles(Id), 1); |
| | | System.Test.stopTest(); |
| | | } |
| | | } |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8" ?> |
| | | <ApexClass xmlns="http://soap.sforce.com/2006/04/metadata"> |
| | | <apiVersion>57.0</apiVersion> |
| | | <status>Active</status> |
| | | </ApexClass> |
| | |
| | | * Select Id From Contact Where RecordTypeId = '01210000000QfWdAAK' and Strategic_dept_Class__c != null |
| | | */ |
| | | public without sharing class ContactTriggerHandler extends Oly_TriggerHandler { |
| | | private Map < Id, Contact > newMap; |
| | | private Map < Id, Contact > oldMap; |
| | | private List < Contact > newList; |
| | | private List < Contact > oldList; |
| | | private Map<Id, Contact> newMap; |
| | | private Map<Id, Contact> oldMap; |
| | | private List<Contact> newList; |
| | | private List<Contact> oldList; |
| | | private Id AgencyId = Schema.SObjectType.Contact.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); // 20220830 ljh LLIU-CHR8FF add |
| | | |
| | | |
| | | public ContactTriggerHandler() { |
| | | this.newMap = (Map < Id, Contact > ) Trigger.newMap; |
| | | this.oldMap = (Map < Id, Contact > ) Trigger.oldMap; |
| | | this.newList = (List < Contact > ) Trigger.new; |
| | | this.oldList = (List < Contact > ) Trigger.old; |
| | | this.newMap = (Map<Id, Contact>) Trigger.newMap; |
| | | this.oldMap = (Map<Id, Contact>) Trigger.oldMap; |
| | | this.newList = (List<Contact>) Trigger.new; |
| | | this.oldList = (List<Contact>) Trigger.old; |
| | | } |
| | | protected override void beforeInsert() { |
| | | if(Test.isRunningTest()||UserInfo.getUserId()!=System.Label.ByPassTrigger){ //Add by Li Jun for PIPL 20220331 |
| | | if (Test.isRunningTest() || UserInfo.getUserId() != System.Label.ByPassTrigger) { |
| | | //Add by Li Jun for PIPL 20220331 |
| | | mobileNumberVerification(); |
| | | } |
| | | } |
| | |
| | | syncToAgencyContact(); |
| | | updateDealerNum(); |
| | | sendToComPlat(); |
| | | updateChargeState();// 20220830 ljh LLIU-CHR8FF |
| | | updateChargeState(); // 20220830 ljh LLIU-CHR8FF |
| | | } |
| | | |
| | | protected override void afterUpdate() { |
| | |
| | | mobileNumberVerification(); |
| | | } |
| | | |
| | | |
| | | protected override void afterDelete() { |
| | | syncToAgencyContactDelete(); |
| | | updateDealerNum(); |
| | |
| | | * 根据服务技师填写情况更新客户人员上的开展工作字段 |
| | | */ |
| | | private void UpdateProcessingWork() { |
| | | for (Contact temContact: newList) { |
| | | for (Contact temContact : newList) { |
| | | if (System.label.UpdateServiceHistory.equals('true')) { |
| | | |
| | | string ProcessingWork = ''; |
| | | string ProcessingWorkWithoutNumber = ''; |
| | | if (temContact.ServiceBookInput__c != 0) { |
| | | ProcessingWork += '维修委托书填写' + temContact.ServiceBookInput__c + '次'; |
| | | ProcessingWorkWithoutNumber += '维修委托书填写'; |
| | | |
| | | } |
| | | if (temContact.InspectTime__c != 0) { |
| | | if (String.isBlank(ProcessingWork)) { |
| | |
| | | } else { |
| | | ProcessingWork += ',点检' + temContact.InspectTime__c + '次'; |
| | | ProcessingWorkWithoutNumber += ',点检'; |
| | | |
| | | } |
| | | } |
| | | if (temContact.InspectEquipmentTime__c != 0) { |
| | |
| | | ProcessingWork += ',点检设备' + temContact.InspectEquipmentTime__c + '个'; |
| | | ProcessingWorkWithoutNumber += ',点检设备'; |
| | | } |
| | | |
| | | } |
| | | if (temContact.VisitTime__c != 0) { |
| | | if (String.isBlank(ProcessingWork)) { |
| | |
| | | ProcessingWork += ',上门' + temContact.VisitTime__c + '次'; |
| | | ProcessingWorkWithoutNumber += ',上门'; |
| | | } |
| | | |
| | | } |
| | | if (temContact.pollingTime__c != 0) { |
| | | if (String.isBlank(ProcessingWork)) { |
| | |
| | | ProcessingWork += ',巡检' + temContact.pollingTime__c + '次'; |
| | | ProcessingWorkWithoutNumber += ',巡检'; |
| | | } |
| | | |
| | | } |
| | | if (temContact.TeachingTime__c != 0) { |
| | | if (String.isBlank(ProcessingWork)) { |
| | |
| | | //} |
| | | temContact.ProcessingWork__c = ProcessingWork; |
| | | temContact.ProcessingWorkWithoutNumber__c = ProcessingWorkWithoutNumber; |
| | | |
| | | |
| | | } |
| | | } |
| | | |
| | | } |
| | | // 服务技师 2018/12/24 end |
| | | private void syncToAgencyContact() { |
| | | System.debug('enter syncToAgencyContact'); |
| | | Map < Id, Agency_Contact__c > targetContactMap = new Map < Id, Agency_Contact__c > (); |
| | | Map < Id, Contact > ContactMap = new Map < Id, Contact > (); |
| | | for (Contact nObj: newList) { |
| | | if (nObj.RecordTypeId == '01210000000QfWdAAK' // Doctor |
| | | && |
| | | Map<Id, Agency_Contact__c> targetContactMap = new Map<Id, Agency_Contact__c>(); |
| | | Map<Id, Contact> ContactMap = new Map<Id, Contact>(); |
| | | for (Contact nObj : newList) { |
| | | if ( |
| | | nObj.RecordTypeId == |
| | | '01210000000QfWdAAK' && // Doctor |
| | | String.isBlank(nObj.Strategic_dept_Class__c) == false |
| | | ) { |
| | | if (Trigger.isInsert || |
| | | (Trigger.isUpdate |
| | | // && ( |
| | | // oldMap.get(nObj.Id).LastName != nObj.LastName |
| | | // || oldMap.get(nObj.Id).FirstName != nObj.FirstName |
| | | // || oldMap.get(nObj.Id).Strategic_dept_Class__c != nObj.Strategic_dept_Class__c |
| | | // || oldMap.get(nObj.Id).Type__c != nObj.Type__c |
| | | // || oldMap.get(nObj.Id).Doctor_Division1__c != nObj.Doctor_Division1__c |
| | | // ) |
| | | ) |
| | | ) { |
| | | if (Trigger.isInsert || (Trigger.isUpdate)) { |
| | | // && ( |
| | | // oldMap.get(nObj.Id).LastName != nObj.LastName |
| | | // || oldMap.get(nObj.Id).FirstName != nObj.FirstName |
| | | // || oldMap.get(nObj.Id).Strategic_dept_Class__c != nObj.Strategic_dept_Class__c |
| | | // || oldMap.get(nObj.Id).Type__c != nObj.Type__c |
| | | // || oldMap.get(nObj.Id).Doctor_Division1__c != nObj.Doctor_Division1__c |
| | | // ) |
| | | //Agency_Contact__c acObj = new Agency_Contact__c(Agency_ID__c = '000000000000000', Contact__c = nObj.Id, ContactId18__c = nObj.Id, Agency_Hospital__c = null, Name = nObj.LastName + ((String.isBlank(nObj.FirstName) == false) ? ' ' + nObj.FirstName : ''), Department_Class__c = nObj.Strategic_dept_Class__c, Type__c = nObj.Type__c, Doctor_Division1__c = nObj.Doctor_Division1__c); |
| | | //zhj MEBG新方案改造 2022-11-27 去掉Encrypted start |
| | | Agency_Contact__c acObj = new Agency_Contact__c( |
| | | Agency_ID__c = '000000000000000', |
| | | Contact__c = nObj.Id, |
| | | ContactId18__c = nObj.Id, |
| | | Agency_Hospital__c = null, |
| | | Agency_ID__c = '000000000000000', |
| | | Contact__c = nObj.Id, |
| | | ContactId18__c = nObj.Id, |
| | | Agency_Hospital__c = null, |
| | | Name = nObj.LastName, |
| | | //Name_Encrypted__c = nObj.LastName_Encrypted__c, |
| | | Department_Class__c = nObj.Strategic_dept_Class__c, |
| | | Department_Class__c = nObj.Strategic_dept_Class__c, |
| | | Type__c = nObj.Type__c, |
| | | //Type_Encrypted__c = nObj.Type_Encrypted__c, |
| | | Doctor_Division1__c = nObj.Doctor_Division1__c |
| | |
| | | if (targetContactMap.size() > 0) { |
| | | List<Agency_Contact__c> temp = targetContactMap.values(); |
| | | upsert temp ContactId18__c; |
| | | system.debug('temp='+temp); |
| | | EncryptInsert(temp,ContactMap); |
| | | system.debug('temp=' + temp); |
| | | EncryptInsert(temp, ContactMap); |
| | | } |
| | | } |
| | | |
| | | static void EncryptInsert(List<Agency_Contact__c> aclist,Map < Id, Contact > ContactMap){ |
| | | if(!(system.isFuture() || system.isBatch())){ |
| | | |
| | | static void EncryptInsert(List<Agency_Contact__c> aclist, Map<Id, Contact> ContactMap) { |
| | | if (!(system.isFuture() || system.isBatch())) { |
| | | //zhj MEBG新方案改造 2022-11-27 start |
| | | //AwsServiceTool2.EncryptPushFuture(Json.serialize(aclist), 'Agency_Contact__c'); |
| | | |
| | | Map<String,PIHelper.PIIntegration> staticResource = new Map<String,PIHelper.PIIntegration>(); |
| | | staticResource.put('Contact',PIHelper.getPIIntegrationInfo('Contact')); |
| | | staticResource.put('Agency_Contact__c',PIHelper.getPIIntegrationInfo('Agency_Contact__c')); |
| | | Map<String, Map<String, PI_Field_Policy_Detail__c>> mmsp = new Map<String, Map<String,PI_Field_Policy_Detail__c>>(); |
| | | Map<String, PIHelper.PIIntegration> staticResource = new Map<String, PIHelper.PIIntegration>(); |
| | | staticResource.put('Contact', PIHelper.getPIIntegrationInfo('Contact')); |
| | | staticResource.put('Agency_Contact__c', PIHelper.getPIIntegrationInfo('Agency_Contact__c')); |
| | | Map<String, Map<String, PI_Field_Policy_Detail__c>> mmsp = new Map<String, Map<String, PI_Field_Policy_Detail__c>>(); |
| | | for (String key : staticResource.keySet()) { |
| | | mmsp.put(key, new Map<String,PI_Field_Policy_Detail__c>()); |
| | | mmsp.put(key, new Map<String, PI_Field_Policy_Detail__c>()); |
| | | for (PI_Field_Policy_Detail__c detail : staticResource.get(key).PIDetails) { |
| | | mmsp.get(key).put(detail.SF_Field_API_Name__c, detail); |
| | | } |
| | |
| | | |
| | | System.debug('mmsp = ' + mmsp); |
| | | List<AWSServiceTool2V2.EncryptPushRequestBody> EncryptPushList = new List<AWSServiceTool2V2.EncryptPushRequestBody>(); |
| | | for(Agency_Contact__c ac : aclist){ |
| | | for (Agency_Contact__c ac : aclist) { |
| | | AWSServiceTool2V2.EncryptPushRequestBody EncryptPush = new AWSServiceTool2V2.EncryptPushRequestBody(); |
| | | EncryptPush.dataId = ac.AWS_Data_Id__c != null ?ac.AWS_Data_Id__c:''; |
| | | EncryptPush.dataId = ac.AWS_Data_Id__c != null ? ac.AWS_Data_Id__c : ''; |
| | | EncryptPush.sfRecordId = ac.Id; |
| | | EncryptPush.fieldsMapping = new Map<String, List<AWSServiceTool2V2.EncryptPushRes>>(); |
| | | List<AWSServiceTool2V2.EncryptPushRes> resList = new List<AWSServiceTool2V2.EncryptPushRes>(); |
| | | AWSServiceTool2V2.EncryptPushRes res= new AWSServiceTool2V2.EncryptPushRes(); |
| | | AWSServiceTool2V2.EncryptPushRes res = new AWSServiceTool2V2.EncryptPushRes(); |
| | | res.isQueryDb = true; |
| | | res.value = ''; |
| | | res.table = staticResource.get('Contact').awsTableName; |
| | |
| | | resList.add(res); |
| | | |
| | | List<AWSServiceTool2V2.EncryptPushRes> resList2 = new List<AWSServiceTool2V2.EncryptPushRes>(); |
| | | AWSServiceTool2V2.EncryptPushRes res2= new AWSServiceTool2V2.EncryptPushRes(); |
| | | AWSServiceTool2V2.EncryptPushRes res2 = new AWSServiceTool2V2.EncryptPushRes(); |
| | | res2.isQueryDb = true; |
| | | res2.value = ''; |
| | | res2.table = staticResource.get('Contact').awsTableName; |
| | |
| | | resList2.add(res2); |
| | | |
| | | List<AWSServiceTool2V2.EncryptPushRes> resList3 = new List<AWSServiceTool2V2.EncryptPushRes>(); |
| | | AWSServiceTool2V2.EncryptPushRes res3= new AWSServiceTool2V2.EncryptPushRes(); |
| | | AWSServiceTool2V2.EncryptPushRes res3 = new AWSServiceTool2V2.EncryptPushRes(); |
| | | res3.isQueryDb = true; |
| | | res3.value = ''; |
| | | res3.table = staticResource.get('Contact').awsTableName; |
| | |
| | | res3.field = mmsp.get('Contact').get('Doctor_Division1__c').AWS_Field_API__c; |
| | | resList3.add(res3); |
| | | |
| | | System.debug('Agency_Contact__c Name = ' +mmsp.get('Agency_Contact__c').get('Name').AWS_Field_API__c); |
| | | System.debug('Agency_Contact__c Name = ' + mmsp.get('Agency_Contact__c').get('Name').AWS_Field_API__c); |
| | | System.debug('resList = ' + resList); |
| | | EncryptPush.fieldsMapping.put(mmsp.get('Agency_Contact__c').get('Name').AWS_Field_API__c, resList); |
| | | EncryptPush.fieldsMapping.put(mmsp.get('Agency_Contact__c').get('Type__c').AWS_Field_API__c, resList2); |
| | |
| | | System.debug('EncryptPushListsfRecordId = ' + JSON.serialize(EncryptPushList[0].sfRecordId)); |
| | | System.debug('EncryptPushListfieldsMapping = ' + JSON.serialize(EncryptPushList[0].fieldsMapping)); |
| | | System.debug('EncryptPushList = ' + JSON.serialize(EncryptPushList)); |
| | | if(!Test.isRunningTest()) |
| | | AwsServiceTool2V2.EncryptPushFutureV2(Json.serialize(EncryptPushList),Json.serialize(aclist), 'Agency_Contact__c'); |
| | | if (!Test.isRunningTest()) |
| | | AwsServiceTool2V2.EncryptPushFutureV2(Json.serialize(EncryptPushList), Json.serialize(aclist), 'Agency_Contact__c'); |
| | | //zhj MEBG新方案改造 2022-11-27 end |
| | | }else{ |
| | | } else { |
| | | //Add By Li Jun for sync agency contact to aws 20220424 start |
| | | if(!Test.isRunningTest()){ |
| | | if (!Test.isRunningTest()) { |
| | | System.debug('ContactMap = ' + ContactMap); |
| | | SyncAccountContactToAWS.assignOnceOneMinuteLater(aclist,ContactMap); |
| | | SyncAccountContactToAWS.assignOnceOneMinuteLater(aclist, ContactMap); |
| | | } |
| | | //Add By Li Jun for sync agency contact to aws 20220424 end |
| | | } |
| | | } |
| | | |
| | | private void syncToAgencyContactDelete() { |
| | | List < Id > cIdList = new List < Id > (); |
| | | for (Contact oObj: oldList) { |
| | | List<Id> cIdList = new List<Id>(); |
| | | for (Contact oObj : oldList) { |
| | | cIdList.add(oObj.Id); |
| | | } |
| | | if (cIdList.size() > 0) { |
| | | List < Agency_Contact__c > acList = [Select Id From Agency_Contact__c |
| | | Where Contact__c =: null and Agency_ID__c = '000000000000000' |
| | | List<Agency_Contact__c> acList = [ |
| | | SELECT Id |
| | | FROM Agency_Contact__c |
| | | WHERE Contact__c = :null AND Agency_ID__c = '000000000000000' |
| | | ]; |
| | | if (acList.size() > 0) { |
| | | delete acList; |
| | |
| | | |
| | | //更新经销商用户人数字段 精琢技术 pk 2021-08-26 start |
| | | private void updateDealerNum() { |
| | | Set < Id > accountSet = new Set < Id > (); |
| | | Map < Id, Account > acMap = new Map < Id, Account > (); |
| | | Set<Id> accountSet = new Set<Id>(); |
| | | Map<Id, Account> acMap = new Map<Id, Account>(); |
| | | if (Trigger.isUpdate) { |
| | | for (Contact contactnew: newList) { |
| | | if (contactnew.Agency_User__c != oldMap.get(contactnew.Id).Agency_User__c || (System.Label.onlyUpdate == '1' && UserInfo.getUserId() == '00510000005sEEMAA2')) { |
| | | for (Contact contactnew : newList) { |
| | | if ( |
| | | contactnew.Agency_User__c != oldMap.get(contactnew.Id).Agency_User__c || |
| | | (System.Label.onlyUpdate == '1' && |
| | | UserInfo.getUserId() == '00510000005sEEMAA2') |
| | | ) { |
| | | accountSet.add(contactnew.AccountId); |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (Trigger.isInsert) { |
| | | for (Contact contactnew: newList) { |
| | | for (Contact contactnew : newList) { |
| | | if (contactnew.Agency_User__c) { |
| | | accountSet.add(contactnew.AccountId); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | if (Trigger.isDelete) { |
| | | for (Contact contactold: oldList) { |
| | | for (Contact contactold : oldList) { |
| | | if (contactold.Agency_User__c) { |
| | | accountSet.add(contactold.AccountId); |
| | | } |
| | |
| | | } |
| | | |
| | | if (accountSet.size() > 0) { |
| | | List < AggregateResult > contactList = [select count(id) ctn, AccountId accid from Contact where Agency_User__c = true and AccountId =: accountSet and RecordTypeId = '01210000000QfWi' |
| | | group by AccountId |
| | | List<AggregateResult> contactList = [ |
| | | SELECT count(id) ctn, AccountId accid |
| | | FROM Contact |
| | | WHERE Agency_User__c = TRUE AND AccountId = :accountSet AND RecordTypeId = '01210000000QfWi' |
| | | GROUP BY AccountId |
| | | ]; |
| | | for (AggregateResult ar: contactList) { |
| | | for (AggregateResult ar : contactList) { |
| | | String accid = (String) ar.get('accid'); |
| | | Account account = new Account(); |
| | | account.id = accid; |
| | |
| | | acMap.put(accid, account); |
| | | } |
| | | |
| | | for (Id accountId: accountSet) { |
| | | for (Id accountId : accountSet) { |
| | | if (!acMap.containsKey(accountId)) { |
| | | Account account = new Account(); |
| | | account.id = accountId; |
| | |
| | | update acMap.values(); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | //更新经销商用户人数字段 精琢技术 pk 2021-08-26 end |
| | | |
| | | |
| | | //zhj 新方案改造 将手机号去重及其验证规则移动到AWS和前端 start |
| | | // 手机号去重及规则验证 及新增客户人员重名验证 |
| | | public void mobileNumberVerification(){ |
| | | |
| | | public void mobileNumberVerification() { |
| | | // Pattern pattern = Pattern.compile('^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8}$'); |
| | | Map<String, Map<String,Contact>> accountContactMap = new Map<String, Map<String,Contact>>(); |
| | | Map<String, Map<String, Contact>> accountContactMap = new Map<String, Map<String, Contact>>(); |
| | | Set<Id> accountIdSet = new Set<Id>(); |
| | | //用户对象上找对应的联系人 |
| | | // List<User> userList=[select ID,ContactID from User where ContactID != null]; |
| | |
| | | // } |
| | | //查找联系人对象上对应的有效客户;医院直接使用有效/无效字段、经销商使用有效/无效公式字段 |
| | | List<String> accIdList = new List<String>(); |
| | | Map<String,String> accMap= new Map<String,String>(); |
| | | for (Contact contact1: newList) { |
| | | Map<String, String> accMap = new Map<String, String>(); |
| | | for (Contact contact1 : newList) { |
| | | accIdList.add(contact1.AccountId); |
| | | } |
| | | if (accIdList.size()>0){ |
| | | List<Account> accList=[select ID,Is_Active__c,Is_Active_Formula__c from Account where ID in:accIdList]; |
| | | if(accList.size()>0){ |
| | | for(Account acc:accList){ |
| | | if (String.isNotBlank(acc.Is_Active__c)){ |
| | | if (accIdList.size() > 0) { |
| | | List<Account> accList = [ |
| | | SELECT ID, Is_Active__c, Is_Active_Formula__c |
| | | FROM Account |
| | | WHERE ID IN :accIdList |
| | | ]; |
| | | if (accList.size() > 0) { |
| | | for (Account acc : accList) { |
| | | if (String.isNotBlank(acc.Is_Active__c)) { |
| | | accMap.put(acc.Id, acc.Is_Active__c); |
| | | continue; |
| | | } |
| | | if (String.isNotBlank(acc.Is_Active_Formula__c)){ |
| | | if (String.isNotBlank(acc.Is_Active_Formula__c)) { |
| | | accMap.put(acc.Id, acc.Is_Active_Formula__c); |
| | | } |
| | | } |
| | |
| | | ID AgencyRecordTypeId = Schema.SObjectType.Contact.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); |
| | | for (Contact contactnew : newList) { |
| | | // 手机号有值并且联系人有效,联系人的客户有效,进行手机号码验证 |
| | | if (('有效'.equals(contactnew.Isactive__c) || '有効'.equals(contactnew.Isactive__c)) |
| | | && ('有効'.equals(accMap.get(contactnew.AccountId)) || '有效'.equals(accMap.get(contactnew.AccountId)))) { |
| | | if ( |
| | | ('有效'.equals(contactnew.Isactive__c) || '有効'.equals(contactnew.Isactive__c)) && |
| | | ('有効'.equals(accMap.get(contactnew.AccountId)) || '有效'.equals(accMap.get(contactnew.AccountId))) |
| | | ) { |
| | | // 经销商客户人员不进行手机号校验 thh 20220517 start |
| | | if(AgencyRecordTypeId.equals(contactnew.RecordTypeId)){ |
| | | if(String.isNotBlank(contactnew.MobilePhone)){ |
| | | if (AgencyRecordTypeId.equals(contactnew.RecordTypeId)) { |
| | | if (String.isNotBlank(contactnew.MobilePhone)) { |
| | | // Matcher isMobilePhone = pattern.matcher(contactnew.MobilePhone); |
| | | // if (isMobilePhone.matches()) { |
| | | contactnew.UniqueNumber__c = contactnew.MobilePhone; |
| | | // } else { |
| | | // 手机号唯一字段清空 |
| | | // contactnew.UniqueNumber__c = null; |
| | | // 手机号唯一字段清空 |
| | | // contactnew.UniqueNumber__c = null; |
| | | // } |
| | | } else { |
| | | contactnew.UniqueNumber__c = null; |
| | | } |
| | | // 经销商客户人员不进行手机号校验 thh 20220517 end |
| | | } |
| | | // 经销商客户人员不进行手机号校验 thh 20220517 end |
| | | } |
| | | // else if(DoctorRecordTypeId.equals(contactnew.RecordTypeId)){ |
| | | // if(String.isNotBlank(contactnew.MobilePhone_Encrypted__c)){ |
| | | // contactnew.UniqueNumber__c = contactnew.MobilePhone_Encrypted__c; |
| | |
| | | } |
| | | // if (Trigger.isInsert) { |
| | | // if(DoctorRecordTypeId.equals(contactnew.RecordTypeId)){ |
| | | // accountIdSet.add(contactnew.AccountId); |
| | | // accountIdSet.add(contactnew.AccountId); |
| | | // } |
| | | // } |
| | | // } |
| | | } |
| | | //手机号唯一校验-医院下新建客户人员校验使用加密手机号,经销商使用普通手机号 thh 20220328 end |
| | | // 新增医院联系人时 |
| | |
| | | // contactList = [SELECT Id,AccountId,FullName__c,LastName,FirstName,Account.Name,CManageCode__c,IsFromSPO__c, |
| | | // LastName_Encrypted__c// 20220314 PI改造 by Bright |
| | | // , MobilePhone_Encrypted__c // 通过姓名+手机号判断人员是否重复 thh 20220518 |
| | | // FROM Contact |
| | | // FROM Contact |
| | | // WHERE IsFromSPO__c = false AND AccountId IN:accountIdSet]; |
| | | // } |
| | | // if(Trigger.isUpdate){ |
| | | // contactList = [SELECT Id,AccountId,FullName__c,LastName,FirstName,Account.Name,CManageCode__c,IsFromSPO__c, |
| | | // LastName_Encrypted__c// 20220314 PI改造 by Bright |
| | | // , MobilePhone_Encrypted__c // 通过姓名+手机号判断人员是否重复 thh 20220518 |
| | | // FROM Contact |
| | | // FROM Contact |
| | | // WHERE IsFromSPO__c = false AND AccountId IN:accountIdSet AND Id Not IN: oldMap.keyset()]; |
| | | // } |
| | | // System.debug('contactList:' + contactList); |
| | |
| | | // // 通过姓名+手机号判断人员是否重复 thh 20220518 start |
| | | // // String lastNameStr = String.isNotBlank(contact.LastName) ? contact.LastName:''; |
| | | // // String firstNameStr = String.isNotBlank(contact.FirstName) ? contact.FirstName:''; |
| | | // // String contactFullName = lastNameStr + firstNameStr + MobilePhoneStr; |
| | | // // String contactFullName = lastNameStr + firstNameStr + MobilePhoneStr; |
| | | // String contactFullName = contact.LastName_Encrypted__c + contact.MobilePhone_Encrypted__c;// 20220314 PI改造 by Bright |
| | | // // 通过姓名+手机号判断人员是否重复 thh 20220518 end |
| | | // if(string.isBlank(contactFullName)){ |
| | | // continue; |
| | | // } |
| | | // } |
| | | // String accountId = String.valueOf(contact.AccountId).SubString(0,15); |
| | | // Map<String,Contact> contactFullNameMap = new Map<String,Contact>(); |
| | | // if (accountContactMap.containsKey(accountId)) { |
| | |
| | | // } |
| | | |
| | | // for (Contact contactnew: newList) { |
| | | // if(AgencyRecordTypeId.equals(contactnew.RecordTypeId) || (Trigger.isUpdate && !oldMap.isEmpty() && oldMap.get(contactnew.Id) != null |
| | | // && String.isBlank(oldMap.get(contactnew.Id).MobilePhone_Encrypted__c) |
| | | // if(AgencyRecordTypeId.equals(contactnew.RecordTypeId) || (Trigger.isUpdate && !oldMap.isEmpty() && oldMap.get(contactnew.Id) != null |
| | | // && String.isBlank(oldMap.get(contactnew.Id).MobilePhone_Encrypted__c) |
| | | // && String.isBlank(contactnew.MobilePhone_Encrypted__c))){ |
| | | // continue; |
| | | // } |
| | |
| | | // // 跳过测试程序 和 SPO通过203接口创建的联系人 |
| | | // if (!(Test.isRunningTest() || contactnew.IsFromSPO__c)) { |
| | | // // if(Trigger.isInsert) { |
| | | // contactnew.LastName.addError('客户 [ '+accountName+ ' ],已存在相同名字的联系人 人员管理编码 ['+cManageCode+' ] ,不能重复创建,请了解'); |
| | | // // } |
| | | // contactnew.LastName.addError('客户 [ '+accountName+ ' ],已存在相同名字的联系人 人员管理编码 ['+cManageCode+' ] ,不能重复创建,请了解'); |
| | | // // } |
| | | // // 客户人员删除手机号时,进行判断是否存在同名且手机号为空的客户人员 thh 20220523 start |
| | | // // if(Trigger.isUpdate && !UserInfo.getUserId().equals(System.Label.interfaceUserID)) { |
| | | // // if (String.isNotBlank(oldMap.get(contactnew.Id).MobilePhone_Encrypted__c) && String.isBlank(contactnew.MobilePhone_Encrypted__c)){ |
| | | // // contactnew.LastName.addError('相同名字的联系人 人员管理编码 ['+cManageCode+' ] 手机号为空已经存在,不能重复创建,请了解'); |
| | | // // } |
| | | // // } |
| | | // // if (oldMap.get(contactnew.Id).CManageCode__c != contactnew.CManageCode__c){ |
| | | // // contactnew.LastName.addError('客户 [ '+accountName+ ' ],已存在相同名字的联系人 人员管理编码 ['+cManageCode+' ] ,不能重复创建,请了解'); |
| | | // // contactnew.LastName.addError('客户 [ '+accountName+ ' ],已存在相同名字的联系人 人员管理编码 ['+cManageCode+' ] ,不能重复创建,请了解'); |
| | | // // } |
| | | // // } |
| | | // // 客户人员删除手机号时,进行判断是否存在同名且手机号为空的客户人员 thh 20220523 end |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | } |
| | | //zhj 新方案改造 将手机号去重及其验证规则移动到AWS和前端 end |
| | | |
| | | public static Map<Id,Id> NFM606_IdMap = new Map<Id,Id>(); |
| | | public static Map<Id, Id> NFM606_IdMap = new Map<Id, Id>(); |
| | | // 606接口调用问题修复 thh 20220330 start |
| | | private void sendToComPlat() { |
| | | List<Id> contactIdList = new List<Id>(); |
| | | List<String> interfaceUserUpsertContact = new List<String>(); |
| | | for (Contact local: newList) { |
| | | for (Contact local : newList) { |
| | | Contact old = null; |
| | | if (Trigger.isUpdate) { |
| | | old = oldMap.get(local.Id); |
| | | } |
| | | if (Trigger.isInsert |
| | | || old.LastName != local.LastName |
| | | || old.FirstName != local.FirstName |
| | | || old.Email != local.Email //メール Email |
| | | || old.MobilePhone != local.MobilePhone //手机号码 Mobile_Phone__c |
| | | || old.Employee_No_manual__c != local.Employee_No_manual__c //员工号码 Employee_No__c |
| | | || old.Work_Location_manual__c != local.Work_Location_manual__c //工作地 Work_Location__c |
| | | || old.Post_picklist__c != local.Post_picklist__c //职位 post__c |
| | | || old.Job_Category_picklist__c != local.Job_Category_picklist__c //职种 Job_Category__c |
| | | || old.Hire_date_text__c != local.Hire_date_text__c //入职日 Hire_date__c |
| | | || old.Gender_text__c != local.Gender_text__c //性别 Gender__c |
| | | || old.dept__c != local.dept__c //本部 dept__c |
| | | || old.Pregnant_Rest__c != local.Pregnant_Rest__c // 是否产假 Pregnant_Rest__c |
| | | || old.Stay_or_not__c != local.Stay_or_not__c // 在职/离职 Stay_or_not__c |
| | | //|| old.Salesdepartment_Text__c != local.Salesdepartment_Text__c // 销售本部 Salesdepartment__c |
| | | || old.AccountId != local.AccountId//客户人员换客户 |
| | | || old.Isactive__c != local.Isactive__c//状态变更 |
| | | || old.ServicePlatformCode__c != local.ServicePlatformCode__c//服务平台编码 |
| | | || old.UnifiedI_Contact_ID__c != local.UnifiedI_Contact_ID__c//智慧医疗编码 |
| | | || old.ContactType__c != local.ContactType__c//人员类型 |
| | | || (old.ChargeState__c != local.ChargeState__c && local.RecordTypeId == AgencyId)//负责省 // 20220830 ljh LLIU-CHR8FF add |
| | | ) { |
| | | if ( |
| | | Trigger.isInsert || |
| | | old.LastName != local.LastName || |
| | | old.FirstName != local.FirstName || |
| | | old.Email != local.Email || //メール Email |
| | | old.MobilePhone != local.MobilePhone || //手机号码 Mobile_Phone__c |
| | | old.Employee_No_manual__c != local.Employee_No_manual__c || //员工号码 Employee_No__c |
| | | old.Work_Location_manual__c != local.Work_Location_manual__c || //工作地 Work_Location__c |
| | | old.Post_picklist__c != local.Post_picklist__c || //职位 post__c |
| | | old.Job_Category_picklist__c != local.Job_Category_picklist__c || //职种 Job_Category__c |
| | | old.Hire_date_text__c != local.Hire_date_text__c || //入职日 Hire_date__c |
| | | old.Gender_text__c != local.Gender_text__c || //性别 Gender__c |
| | | old.dept__c != local.dept__c || //本部 dept__c |
| | | old.Pregnant_Rest__c != local.Pregnant_Rest__c || // 是否产假 Pregnant_Rest__c |
| | | old.Stay_or_not__c != local.Stay_or_not__c || // 在职/离职 Stay_or_not__c |
| | | //|| old.Salesdepartment_Text__c != local.Salesdepartment_Text__c // 销售本部 Salesdepartment__c |
| | | old.AccountId != local.AccountId || //客户人员换客户 |
| | | old.Isactive__c != local.Isactive__c || //状态变更 |
| | | old.ServicePlatformCode__c != local.ServicePlatformCode__c || //服务平台编码 |
| | | old.UnifiedI_Contact_ID__c != local.UnifiedI_Contact_ID__c || //智慧医疗编码 |
| | | old.ContactType__c != local.ContactType__c || //人员类型 |
| | | (old.ChargeState__c != local.ChargeState__c && |
| | | local.RecordTypeId == AgencyId) //负责省 // 20220830 ljh LLIU-CHR8FF add |
| | | ) { |
| | | //获取客户人员的记录类型ID thh 20220330 start |
| | | ID InternalStaffRecordTypeId = Schema.SObjectType.Contact.getRecordTypeInfosByDeveloperName().get('Internal_staff').getRecordTypeId(); |
| | | ID InternalStaffRecordTypeId = Schema.SObjectType.Contact.getRecordTypeInfosByDeveloperName() |
| | | .get('Internal_staff') |
| | | .getRecordTypeId(); |
| | | ID DoctorRecordTypeId = Schema.SObjectType.Contact.getRecordTypeInfosByDeveloperName().get('Doctor').getRecordTypeId(); |
| | | ID AgencyRecordTypeId = Schema.SObjectType.Contact.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); |
| | | //获取客户人员的记录类型ID thh 20220330 end |
| | |
| | | // gzw 20220824 bugfix start |
| | | // if (!local.IsFromSPO__c && !InternalStaffRecordTypeId.equals(local.RecordTypeId)) { |
| | | if (!InternalStaffRecordTypeId.equals(local.RecordTypeId)) { |
| | | // gzw 20220824 bugfix end |
| | | // gzw 20220824 bugfix end |
| | | // 医院 客户人员 统一平台编码有值 发送 PO |
| | | if (DoctorRecordTypeId.equals(local.RecordTypeId) && String.isNotBlank(local.UnifiedI_Contact_ID__c)) { |
| | | if (!NFM606_IdMap.containsKey(local.Id)) { |
| | | if(UserInfo.getUserId().equals(System.Label.interfaceUserID)){ |
| | | if (UserInfo.getUserId().equals(System.Label.interfaceUserID)) { |
| | | interfaceUserUpsertContact.add(local.Id); |
| | | } else { |
| | | contactIdList.add(local.Id); |
| | |
| | | // 经销商 客户人员 手机号码有值 发送 PO |
| | | if (AgencyRecordTypeId.equals(local.RecordTypeId) && String.isNotBlank(local.MobilePhone)) { |
| | | if (!NFM606_IdMap.containsKey(local.Id)) { |
| | | if(UserInfo.getUserId().equals(System.Label.interfaceUserID)){ |
| | | if (UserInfo.getUserId().equals(System.Label.interfaceUserID)) { |
| | | interfaceUserUpsertContact.add(local.Id); |
| | | } else { |
| | | contactIdList.add(local.Id); |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | //606标记 |
| | | if(!System.Test.isRunningTest()){ |
| | | if (!System.Test.isRunningTest()) { |
| | | // NFM606Controller.executeNotFuture('', contactIdList); |
| | | if (contactIdList.size() > 0) { |
| | | // NFM606Controller.callout('', contactIdList); |
| | | //添加future 判断 add for pipl sushanhu 20220317 start |
| | | //添加future 判断 add for pipl sushanhu 20220317 start |
| | | // if (!(System.isFuture()||System.isBatch())) { |
| | | NFM606Controller.callout('', contactIdList); |
| | | |
| | | // } else{ |
| | | // NFM606Controller.executeNotFuture('', contactIdList); |
| | | // NFM606Controller.executeNotFuture('', contactIdList); |
| | | // } |
| | | //添加future 判断 add for pipl sushanhu 20220317 end |
| | | //添加future 判断 add for pipl sushanhu 20220317 end |
| | | } |
| | | if (interfaceUserUpsertContact.size() > 0) { |
| | | NFM606Controller.executeNotFuture('', interfaceUserUpsertContact); |
| | | //添加future 判断 add for pipl sushanhu 20220316 start |
| | | // if (!(System.isFuture()||System.isBatch())) { |
| | | // NFM606Controller.executeNotFuture('', interfaceUserUpsertContact); |
| | | // NFM606Controller.executeNotFuture('', interfaceUserUpsertContact); |
| | | // } |
| | | //添加future 判断 add for pipl sushanhu 20220316 end |
| | | //添加future 判断 add for pipl sushanhu 20220316 end |
| | | } |
| | | } |
| | | } |
| | | } |
| | | // 606接口调用问题修复 thh 20220330 end |
| | | // 20220830 ljh LLIU-CHR8FF add start |
| | | private void updateChargeState(){ |
| | | private void updateChargeState() { |
| | | List<Contact> contactL = new List<Contact>(); |
| | | for (Contact nObj : newList) { |
| | | if(nObj.RecordTypeId == AgencyId && String.isBlank(nObj.ChargeState__c)){ |
| | | if (nObj.RecordTypeId == AgencyId && String.isBlank(nObj.ChargeState__c)) { |
| | | Contact cnew = new Contact(); |
| | | cnew.Id = nObj.Id; |
| | | cnew.ChargeState__c = nObj.ChargeState_F__c; |
| | | cnew.ChargeState__c = nObj.ChargeState_F__c; |
| | | contactL.add(cnew); |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | // 20220830 ljh LLIU-CHR8FF add end |
| | | |
| | | |
| | | } |
| | | } |
| | |
| | | public with sharing class DealerInquiryModifyStateController { |
| | | public List<OpportunityInfo> oppRecords { get; set; } |
| | | // ページレイアウトの情報を取得 |
| | | private Map<String, Map<String, String>> editLayoutItemRWMap = New Map<String, Map<String, String>>(); |
| | | private Map<String, Map<String, String>> editLayoutItemRWMap = new Map<String, Map<String, String>>(); |
| | | // private Map<String, Map<String, String>> editLayoutItemRWMapRt = null; |
| | | public List<OpportunityInfo> OPPORTList { get; set; } |
| | | /*****************検索用******************/ |
| | | |
| | | /*******************检索属性值*******************/ |
| | | |
| | | public String accSearch { get; set; }//经销商医院 |
| | | public String aooSearch { get; set; }//担当人 |
| | | public String accSearch { get; set; } //经销商医院 |
| | | public String aooSearch { get; set; } //担当人 |
| | | public String numtext1 { get; set; } //数据字段01 |
| | | public String numtext { get; set; }//数据字段03 |
| | | public String numtext { get; set; } //数据字段03 |
| | | public String numtext2 { get; set; } //数据字段02 |
| | | public String timetext1 { get; set; } //日期01 |
| | | public String timetext2 { get; set; } //日期02 |
| | | public Agency_Opportunity__c tmpAO { get; set; } //检索日期用 |
| | | public Agency_Opportunity__c tmpBO { get; set; } //检索日期用 |
| | | public String limits { get; set; }//日期03 |
| | | public String limits { get; set; } //日期03 |
| | | |
| | | public List<SelectOption> dateOpts { get; private set; } |
| | | public List<SelectOption> textOpts { get; private set; } |
| | |
| | | public String preSortKey { get; set; } |
| | | public Boolean sortOrderAsc { get; set; } |
| | | public String[] sortOrder { get; set; } |
| | | public String[] columus = new String[] {'Id'}; |
| | | public String[] columus = new List<String>{ 'Id' }; |
| | | public String[] selColumus = null; |
| | | public Set<String> columusSet = new Set<String> {'Id'}; |
| | | public Set<String> columusSet = new Set<String>{ 'Id' }; |
| | | |
| | | // 项目set 字段标签 |
| | | public List<String> titleLeft { get; private set; } |
| | | public List<String> titleRight { get; private set; } |
| | | // 项目set 字段名 |
| | | public List<List<String>> columnsLeftApi { get; private set; } // 参照項目用 |
| | | public List<List<String>> columnsRightApi { get; private set; } // 参照項目用 |
| | | public List<String> columnLeftCss { get; private set; } // css 用 |
| | | public List<String> columnRightCss { get; private set; } // css 用 |
| | | public Map<String, String> columnLeftRW { get; private set; } // r,w,wm用 |
| | | public Map<String, String> columnRightRW { get; private set; } // r,w,wm用 |
| | | public List<List<String>> columnsLeftApi { get; private set; } // 参照項目用 |
| | | public List<List<String>> columnsRightApi { get; private set; } // 参照項目用 |
| | | public List<String> columnLeftCss { get; private set; } // css 用 |
| | | public List<String> columnRightCss { get; private set; } // css 用 |
| | | public Map<String, String> columnLeftRW { get; private set; } // r,w,wm用 |
| | | public Map<String, String> columnRightRW { get; private set; } // r,w,wm用 |
| | | private String strColumus; |
| | | private String strRtColumus; |
| | | |
| | | @TestVisible private String accTypeForSort = null; |
| | | //add by Link 2023-6-2 |
| | | public String remindMsg { get; set; } |
| | | |
| | | @TestVisible |
| | | private String accTypeForSort = null; |
| | | private static Integer oppLimit = 500; |
| | | |
| | | public DealerInquiryModifyStateController() { |
| | |
| | | textOpts.add(new SelectOption('Oly_Inquiry_Stage__c', 'Oly询价阶段')); |
| | | //精琢科技 zxk 2021-08-25 end |
| | | textOpts.add(new SelectOption('Hospital_City_Master__c', '市')); |
| | | |
| | | |
| | | // textOpts.add(new SelectOption('Agency_Hospital__r.Hospital__r.Salesdepartment_HP__c', '销售本部')); |
| | | // textOpts.add(new SelectOption('Agency_Hospital__r.Hospital__r.State_Master__r.Name', '省')); |
| | | // textOpts.add(new SelectOption('Agency_Hospital__r.Hospital__r.City_Master__r.Name', '市')); |
| | |
| | | } |
| | | |
| | | public PageReference init() { |
| | | remindMsg = ''; |
| | | PartnerSoapSforceCom.Soap soap = new PartnerSoapSforceCom.Soap(); |
| | | soap.SessionHeader = new PartnerSoapSforceCom.SessionHeader_element(); |
| | | soap.SessionHeader.sessionId = UserInfo.getSessionId(); |
| | |
| | | layoutItem.layoutComponents.add(layoutComponent); |
| | | // return dlr; |
| | | } else { |
| | | dlr = soap.describeLayout('Agency_Opportunity__c', null, null); |
| | | dlr = soap.describeLayout('Agency_Opportunity__c', null, null); |
| | | // dlr = soap.describeLayout('asdas', null, null); |
| | | } |
| | | |
| | |
| | | for (PartnerSoapSforceCom.DescribeLayoutSection section : layout.editLayoutSections) { |
| | | for (PartnerSoapSforceCom.DescribeLayoutRow row : section.layoutRows) { |
| | | for (PartnerSoapSforceCom.DescribeLayoutItem item : row.layoutItems) { |
| | | if (item.layoutComponents != null && item.layoutComponents.size() > 0 |
| | | && String.isBlank(item.layoutComponents[0].value) == false) { |
| | | if ( |
| | | item.layoutComponents != null && |
| | | item.layoutComponents.size() > 0 && |
| | | String.isBlank(item.layoutComponents[0].value) == false |
| | | ) { |
| | | rtnInner.put(item.layoutComponents[0].value, 'r'); |
| | | if (item.editableForUpdate) { |
| | | rtnInner.put(item.layoutComponents[0].value, 'w'); |
| | |
| | | return null; |
| | | } |
| | | //用于获取经销商询价字段集和询价字段集以及相应的读写权限 |
| | | @TestVisible private void setLayoutRWInfo() { |
| | | @TestVisible |
| | | private void setLayoutRWInfo() { |
| | | if (this.sortOrder == null) { |
| | | selColumus = new String[] {}; |
| | | selColumus = new List<String>{}; |
| | | strColumus = ''; |
| | | ID accRecordTypeId = accTypeForSort; |
| | | |
| | |
| | | strRtColumus = strRtColumus + ',' + s; |
| | | } |
| | | columnRightCss.add(s.replace('.', '_')); |
| | | |
| | | } |
| | | strColumus = String.join(columus, ','); |
| | | System.debug('======-======-======strColumus' + strColumus); |
| | | System.debug('======-======-======strRtColumus' + strRtColumus); |
| | | this.sortOrderAsc = true; |
| | | this.sortOrder = new String[selColumus.size()]; |
| | | for (Integer i = 0; i < selColumus.size(); i++) this.sortOrder[i] = ' '; |
| | | this.sortOrder = new List<String>(selColumus.size()); |
| | | for (Integer i = 0; i < selColumus.size(); i++) |
| | | this.sortOrder[i] = ' '; |
| | | } |
| | | } |
| | | //用于拼接SOQL语句 根据不同检索条件拼接不同SOQL语句。 |
| | |
| | | // System.debug('pppqqq333'+querySoql); |
| | | // AND Ownerid in ( '+querySoql+')' |
| | | |
| | | String soql = 'SELECT Change_To_Opportunity__r.Id , Agency_Hospital__r.Name , Product_Category1__r.Name , Product_Category2__r.Name , Product_Category3__r.Name , Agency_Person__r.Name , Agency__r.Name , Change_To_Opportunity__r.Name ,' + |
| | | strColumus + ',' + strRtColumus + |
| | | ' FROM Agency_Opportunity__c WHERE recordType.DeveloperName = \'Opportunity\' '; |
| | | String soql = |
| | | 'SELECT Change_To_Opportunity__r.Id , Agency_Hospital__r.Name , Product_Category1__r.Name , Product_Category2__r.Name , Product_Category3__r.Name , Agency_Person__r.Name , Agency__r.Name , Change_To_Opportunity__r.Name ,' + |
| | | strColumus + |
| | | ',' + |
| | | strRtColumus + |
| | | ' FROM Agency_Opportunity__c WHERE recordType.DeveloperName = \'Opportunity\' '; |
| | | //数据字段:经销商医院 +SOQL |
| | | if (!String.isBlank(accSearch)) { |
| | | accSearch = accSearch.trim(); |
| | | // soql += 'AND Agency__r.Name ' + ' LIKE \'%' + accSearch + '%\' '; |
| | | soql += 'AND Agency_Hospital__r.Name ' + ' LIKE \'%' + accSearch + '%\' '; |
| | | soql += 'AND Agency_Hospital__r.Name ' + ' LIKE \'%' + accSearch + '%\' '; |
| | | } |
| | | //数据字段:担当人 +SOQL |
| | | if (!String.isBlank(aooSearch)) { |
| | |
| | | //数据字段:03 手动填写项 准备调用makeTextSql; |
| | | if (!String.isBlank(numtext)) { |
| | | String newNumtext = numtext.trim(); |
| | | String str = makeTextSql(numtext1, numtext2, newNumtext); |
| | | String str = makeTextSql(numtext1, numtext2, newNumtext); |
| | | soql += str; |
| | | System.debug('+++++++++++++=============++++++++++++++++++' + soql); |
| | | } |
| | |
| | | soql += ' order by LastModifiedDate desc limit ' + Integer.valueOf(limits); |
| | | } else { |
| | | if (Integer.valueOf(this.sortKey) <= titleLeft.size() + 7) { |
| | | soql += ' order by ' + this.selColumus[Integer.valueOf(this.sortKey)] + ' ' + (this.sortOrderAsc == true ? 'asc nulls first' : 'desc nulls last') + ' limit ' + Integer.valueOf(limits); |
| | | soql += |
| | | ' order by ' + |
| | | this.selColumus[Integer.valueOf(this.sortKey)] + |
| | | ' ' + |
| | | (this.sortOrderAsc == true ? 'asc nulls first' : 'desc nulls last') + |
| | | ' limit ' + |
| | | Integer.valueOf(limits); |
| | | } else { |
| | | soql += ' order by Change_To_Opportunity__r.' + this.selColumus[Integer.valueOf(this.sortKey)] + ' ' + (this.sortOrderAsc == true ? 'asc nulls first' : 'desc nulls last') + ' limit ' + Integer.valueOf(limits); |
| | | soql += |
| | | ' order by Change_To_Opportunity__r.' + |
| | | this.selColumus[Integer.valueOf(this.sortKey)] + |
| | | ' ' + |
| | | (this.sortOrderAsc == true ? 'asc nulls first' : 'desc nulls last') + |
| | | ' limit ' + |
| | | Integer.valueOf(limits); |
| | | } |
| | | } |
| | | system.debug(soql); |
| | |
| | | // System.debug('pppqqq111'+userlist1); |
| | | |
| | | List<Agency_Opportunity__c> InfoList = Database.query(soql); |
| | | System.debug('+++++++-------------------'+InfoList); |
| | | System.debug('+++++++-------------------' + InfoList); |
| | | |
| | | // List<Agency_Opportunity__c> InfoList = ControllerUtil.DatabaseQuery(soql); |
| | | // System.debug('InfoList[0].Change_To_Opportunity_T__c'+InfoList[0].Change_To_Opportunity_T__c); |
| | |
| | | str = '\'' + agc.Change_To_Opportunity__r.Id + '\''; |
| | | } else if (agc.Change_To_Opportunity__r.Id != null) { |
| | | str += ',\'' + agc.Change_To_Opportunity__r.Id + '\''; |
| | | |
| | | } |
| | | } |
| | | for (Agency_Opportunity__c info : InfoList) { |
| | |
| | | //显示提示操作信息 |
| | | if (String.isBlank(this.saveType) && String.isBlank(this.sortKey)) { |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '取得最近的 ' + oppCount + ' 条数据')); |
| | | //add by Link 2023-6-2 |
| | | remindMsg = '取得最近的 ' + oppCount + ' 条数据'; |
| | | } else if (!String.isBlank(this.sortKey)) { |
| | | if (oppCount > oppLimit) { |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '数据超过' + oppLimit + '件,只显示前' + oppLimit + '件')); |
| | | ApexPages.addmessage( |
| | | new ApexPages.message(ApexPages.severity.INFO, '数据超过' + oppLimit + '件,只显示前' + oppLimit + '件') |
| | | ); |
| | | //add by Link 2023-6-2 |
| | | remindMsg = '数据超过' + oppLimit + '件,只显示前' + oppLimit + '件'; |
| | | } else { |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '共有 ' + oppCount + ' 条数据')); |
| | | //add by Link 2023-6-2 |
| | | remindMsg = '共有 ' + oppCount + ' 条数据'; |
| | | } |
| | | } else { |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '共有 ' + oppCount + ' 条数据')); |
| | | //add by Link 2023-6-2 |
| | | remindMsg = '共有 ' + oppCount + ' 条数据'; |
| | | } |
| | | } |
| | | //检索条件:数据字段1,数据字段2,数据字段3均满足进入此方法 判断多种情况 |
| | |
| | | String cSql = ''; |
| | | soql += ' AND ('; |
| | | for (Integer icount = 0; icount < vals.size(); icount++) { |
| | | |
| | | //精琢科技 zxk 2021-08-25 start |
| | | String val = vals[icount]; |
| | | if (equalOpts == 'contains') { |
| | |
| | | soql += ' AND '; |
| | | } |
| | | } |
| | | |
| | | } |
| | | //精琢科技 zxk 2021-08-25 end |
| | | |
| | | |
| | | // String val = vals[icount]; |
| | | // cSql = this.makeTextSqlStr(textOpts, equalOpts, val); |
| | |
| | | else if (equalOpts == '=' || equalOpts == '<>') { |
| | | soql += 'AND ' + textOpts + equalOpts + '\'' + numtext + '\''; |
| | | } |
| | | |
| | | //精琢科技 zxk 2021-08-25 start |
| | | //起始字符 |
| | | else if (equalOpts == 'starts with' && numtext.contains(' ')) { |
| | |
| | | for (Integer icount = 0; icount < vals.size(); icount++) { |
| | | String val = vals[icount]; |
| | | if (equalOpts == 'starts with') { |
| | | soql += ' ' + textOpts + ' LIKE \'%' + val + '%\'' ; |
| | | soql += ' ' + textOpts + ' LIKE \'%' + val + '%\''; |
| | | if (icount < vals.size() - 1) { |
| | | soql += ' OR '; |
| | | |
| | | } |
| | | } |
| | | } |
| | | soql += ')'; |
| | | |
| | | } |
| | | //精琢科技 zxk 2021-08-25 end |
| | | |
| | |
| | | return soql; |
| | | } |
| | | //检索条件:数据字段1,数据字段2,数据字段3均满足,并且进入makeTextSql()之后,内含数据字段包含多种时进入此方法。 |
| | | @TestVisible private String makeTextSqlStr(String textOpts, String equalOpts, String val) { |
| | | @TestVisible |
| | | private String makeTextSqlStr(String textOpts, String equalOpts, String val) { |
| | | String soql = ''; |
| | | if (!String.isBlank(textOpts)) { |
| | | String tmpVal = val; |
| | | if (!String.isBlank(tmpVal)) { |
| | | if (equalOpts == 'contains' || equalOpts == 'notcontains') { |
| | | if (equalOpts == 'contains') { |
| | | soql += ' ' + textOpts + ' LIKE \'%' + val + '%\'' ; |
| | | soql += ' ' + textOpts + ' LIKE \'%' + val + '%\''; |
| | | } else if (equalOpts == 'notcontains') { |
| | | soql += ' ( NOT ' + textOpts + ' LIKE \'%' + val + '%\' ) ' ; |
| | | soql += ' ( NOT ' + textOpts + ' LIKE \'%' + val + '%\' ) '; |
| | | } |
| | | } else if (equalOpts == '=' || equalOpts == '<>') { |
| | | if (equalOpts == '=') { |
| | | soql += ' AND ' + textOpts + ' = ' + val ; |
| | | soql += ' AND ' + textOpts + ' = ' + val; |
| | | } else if (equalOpts == '<>') { |
| | | soql += ' AND ' + textOpts + ' <> ' + val ; |
| | | soql += ' AND ' + textOpts + ' <> ' + val; |
| | | } |
| | | } |
| | | } else { |
| | |
| | | if (oi.changeFlg == '1') { |
| | | oi.changeFlg = '0'; |
| | | updTarget.add(oi.AgcOpp); |
| | | |
| | | } |
| | | // if (oi.changeFlgRt == '1' && oi.opp.id != null) { |
| | | // oi.changeFlgRt = '0'; |
| | |
| | | // } |
| | | } |
| | | if (updTarget.size() > 0) { |
| | | system.debug('updTarget.size:' + updTarget.size() ); |
| | | system.debug('updTarget.size:' + updTarget.size()); |
| | | update updTarget; |
| | | } |
| | | // if (updOpps.size() > 0) { |
| | | // update updOpps; |
| | | // } |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '保存完了')); |
| | | //add by Link 2023-6-2 |
| | | remindMsg = '保存完了'; |
| | | } catch (Exception e) { |
| | | //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '请确定科室分类和产品区分的关系')); |
| | | } |
| | |
| | | AgcOpp = record; |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | @isTest |
| | | private class DealerInquiryModifyStateControllerTest { |
| | | @TestSetup static void init() { |
| | | List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院']; |
| | | @TestSetup |
| | | static void init() { |
| | | 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 = '戦略科室分類 呼吸科']; |
| | | 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 = '診療科 消化科']; |
| | | 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 = 'NFM007TestCompany'; |
| | | company.Name = 'NFM007TestCompany'; |
| | | insert company; |
| | | Account section = new Account(); |
| | | section.RecordTypeId = rectSct[0].Id; |
| | | section.Name = '*'; |
| | | section.Name = '*'; |
| | | section.Department_Class_Label__c = '消化科'; |
| | | section.ParentId = company.Id; |
| | | section.ParentId = company.Id; |
| | | section.Hospital_Department_Class__c = company.Id; |
| | | insert section; |
| | | // Test.startTest(); |
| | | Account depart = new Account(); |
| | | depart.RecordTypeId = rectDpt[0].Id; |
| | | depart.Name = '*'; |
| | | depart.Department_Name__c = 'NFM007TestDepart'; |
| | | depart.ParentId = section.Id; |
| | | depart.Name = '*'; |
| | | depart.Department_Name__c = 'NFM007TestDepart'; |
| | | depart.ParentId = section.Id; |
| | | depart.Department_Class__c = section.Id; |
| | | depart.Hospital__c = company.Id; |
| | | depart.Hospital__c = company.Id; |
| | | insert depart; |
| | | |
| | | Opportunity opp = new Opportunity(); |
| | | opp.AccountId = depart.Id; |
| | | opp.AccountId = depart.Id; |
| | | opp.Department_Class__c = section.Id; |
| | | opp.Hospital__c = company.Id; |
| | | opp.SAP_Send_OK__c = false; |
| | | opp.Name = 'GZ-SP-NFM007_1'; |
| | | opp.Trade__c = '内貿'; |
| | | opp.StageName = '引合'; |
| | | opp.CloseDate = date.newinstance(2022, 11, 30); |
| | | opp.Hospital__c = company.Id; |
| | | opp.SAP_Send_OK__c = false; |
| | | opp.Name = 'GZ-SP-NFM007_1'; |
| | | opp.Trade__c = '内貿'; |
| | | opp.StageName = '引合'; |
| | | opp.CloseDate = Date.today(); |
| | | opp.Stock_apply_status__c = '申请中'; |
| | | insert opp; |
| | | Test.startTest(); |
| | |
| | | contact1.LastName = 'test1医院'; |
| | | contact1.Agency_User__c = true; |
| | | insert contact1; |
| | | List<Contact> contactlist = [select Id, FirstName |
| | | from Contact |
| | | ]; |
| | | List<Contact> contactlist = [ |
| | | SELECT Id, FirstName |
| | | FROM Contact |
| | | ]; |
| | | |
| | | System.assertEquals('責任者', contactlist[0].FirstName); |
| | | |
| | | |
| | | |
| | | // |
| | | User user = new User(); |
| | | Profile p = [select Id from Profile where Name = '901_经销商活动系统']; |
| | | Profile p = [SELECT Id FROM Profile WHERE Name = '901_经销商活动系统']; |
| | | user.ProfileId = p.Id; |
| | | user.ContactId = contact1.Id; |
| | | user.FirstName = 'ユーザー'; |
| | |
| | | user.Alias = 'テユ'; |
| | | user.CommunityNickname = 'テストユーザー'; |
| | | user.SalesManager__c = UserInfo.getUserId(); |
| | | |
| | | insert user; |
| | | List<user> users = [select Id, Name, LastName, FirstName from User where LastName = 'テスト']; |
| | | System.runAs(new User(Id = UserInfo.getUserId())) { |
| | | insert user; |
| | | } |
| | | List<user> users = [ |
| | | SELECT Id, Name, LastName, FirstName |
| | | FROM User |
| | | WHERE LastName = 'テスト' |
| | | ]; |
| | | // |
| | | |
| | | Agency_Hospital_Link__c agency_hospital_link = new Agency_Hospital_Link__c(); |
| | |
| | | // |
| | | |
| | | //System.assertEquals('テスト',users[0].LastName); |
| | | System.assertEquals('ユーザー', users[0].FirstName ); |
| | | System.assertEquals('ユーザー', users[0].FirstName); |
| | | |
| | | Id rtId = [select Id, DeveloperName from RecordType where IsActive = true and SobjectType = 'Agency_Opportunity__c' and DeveloperName = 'Opportunity'].Id; |
| | | Id rtId = [ |
| | | SELECT Id, DeveloperName |
| | | FROM RecordType |
| | | WHERE IsActive = TRUE AND SobjectType = 'Agency_Opportunity__c' AND DeveloperName = 'Opportunity' |
| | | ] |
| | | .Id; |
| | | // Schema.SobjectType.Agency_Opportunity__c.getRecordTypeInfosByName().get('询价').getRecordTypeId(); |
| | | Agency_opportunity__c agency_opportunity = new Agency_opportunity__c(); |
| | | agency_opportunity.RecordTypeId = rtId; |
| | |
| | | agency_opportunity.StageName__c = '还没申请预算'; |
| | | agency_opportunity.OwnerId = user.Id; |
| | | agency_opportunity.Change_To_Opportunity_T__c = '::CF-HQ290I'; |
| | | agency_opportunity.Sales_Manager__c =UserInfo.getUserId(); |
| | | agency_opportunity.Sales_Manager__c = UserInfo.getUserId(); |
| | | |
| | | insert agency_opportunity; |
| | | Test.stopTest(); |
| | | |
| | | } |
| | | |
| | | static testMethod void myUnitTest_SortKey() { |
| | | Test.startTest(); |
| | | Test.startTest(); |
| | | Test.setMock(WebServiceMock.class, new NFMTest_Mock()); |
| | | Test.stopTest(); |
| | | PageReference page = new PageReference('/apex/DealerInquiryModifyState'); |
| | | System.Test.setCurrentPage(page); |
| | | |
| | | |
| | | // 初始化测试 |
| | | DealerInquiryModifyStateController controller = new DealerInquiryModifyStateController(); |
| | | |
| | | |
| | | |
| | | controller.init(); |
| | | //System.assertEquals(1, controller.oppRecords.size());验证预期值和结果值正确性 |
| | | // 排序测试 |
| | |
| | | // Test.stopTest(); |
| | | } |
| | | static testMethod void myUnitTest_AccSearchAndAoosearch() { |
| | | Test.startTest(); |
| | | Test.startTest(); |
| | | Test.setMock(WebServiceMock.class, new NFMTest_Mock()); |
| | | Test.stopTest(); |
| | | PageReference page = new PageReference('/apex/DealerInquiryModifyState'); |
| | |
| | | DealerInquiryModifyStateController controller = new DealerInquiryModifyStateController(); |
| | | // 初始化测试 |
| | | // Test.startTest(); |
| | | |
| | | |
| | | controller.init(); |
| | | //文本输入框检索 |
| | | //1:经销商医院 |
| | |
| | | controller.chick(); |
| | | controller.tmpBO.MaxActivityDate__c = date.valueOf('2018-02-09'); |
| | | controller.chick(); |
| | | Test.stopTest(); |
| | | |
| | | Test.stopTest(); |
| | | } |
| | | static testMethod void myUnitTestTime02() { |
| | | PageReference page = new PageReference('/apex/DealerInquiryModifyState'); |
| | |
| | | controller.tmpBO.MaxActivityDate__c = date.valueOf('2018-02-09'); |
| | | controller.chick(); |
| | | Test.stopTest(); |
| | | |
| | | } |
| | | static testMethod void myUnitTestTimeSave() { |
| | | PageReference page = new PageReference('/apex/DealerInquiryModifyState'); |
| | |
| | | controller.init(); |
| | | Test.stopTest(); |
| | | } |
| | | } |
| | | } |
| | |
| | | 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 boolean ReturnRefuse { get; private set; } |
| | | public String ErrorMessage { get; set; } |
| | | // public String CDSFinished {get;set;} |
| | | // public boolean LostFlg {get;set;} |
| | | public String Step_status { get; private set; } |
| | | public Boolean needCDS { get; private set; } |
| | | public Boolean done_flg { get; set; } |
| | | public String Raid {get;set;} |
| | | public String ApplyId {get;set;} |
| | | public String CheckedId {get;set;} |
| | | public String UnCheckedId {get;set;} |
| | | public String Raid { get; set; } |
| | | public String ApplyId { get; set; } |
| | | public String CheckedId { get; set; } |
| | | public String UnCheckedId { get; set; } |
| | | private String Id; |
| | | |
| | | public Integer getEsdListSize() { |
| | |
| | | } |
| | | |
| | | public EquipmentSetShippmentReceived3Controller() { |
| | | // Apexpages.currentPage().getHeaders().put('X-UA-Compatible', 'IE=8'); |
| | | // Apexpages.currentPage().getHeaders().put('X-UA-Compatible', 'IE=8'); |
| | | Id = ApexPages.currentPage().getParameters().get('id'); |
| | | if (Step_status == null) { |
| | | Step_status = ApexPages.currentPage().getParameters().get('step'); |
| | |
| | | } |
| | | |
| | | public PageReference searchSlip() { |
| | | Map<String,boolean> esdIdMap = new Map<String,boolean>(); |
| | | Map<String, boolean> esdIdMap = new Map<String, boolean>(); |
| | | for (EsdInfo esd : esdList) { |
| | | if (!esd.hasSended) |
| | | esdIdMap.put(esd.rec.Id, esd.isChecked); |
| | | esdIdMap.put(esd.rec.Id, esd.isChecked); |
| | | } |
| | | |
| | | String qryString = 'select Combine_Pack__c, Name, Id, DeliveryCompany_SlipNo__c,DeliveryType__c,Distributor_method__c,DeliveryCompany__c,Wh_Staff__c ' |
| | | + 'from FixtureDeliverySlip__c ' |
| | | + 'where Name =\''+ slip.Name +'\' and DeliveryType__c = \'发货\''; |
| | | String qryString = |
| | | 'select Combine_Pack__c, Name, Id, DeliveryCompany_SlipNo__c,DeliveryType__c,Distributor_method__c,DeliveryCompany__c,Wh_Staff__c ' + |
| | | 'from FixtureDeliverySlip__c ' + |
| | | 'where Name =\'' + |
| | | slip.Name + |
| | | '\' and DeliveryType__c = \'发货\''; |
| | | if (String.isNotBlank(slip.Distributor_method__c)) { |
| | | qryString += ' and Distributor_method__c = \''+ slip.Distributor_method__c +'\''; |
| | | qryString += ' and Distributor_method__c = \'' + slip.Distributor_method__c + '\''; |
| | | } |
| | | if (String.isNotBlank(slip.DeliveryCompany__c)) { |
| | | qryString += ' and DeliveryCompany__c = \''+ slip.DeliveryCompany__c +'\''; |
| | | qryString += ' and DeliveryCompany__c = \'' + slip.DeliveryCompany__c + '\''; |
| | | } |
| | | List<FixtureDeliverySlip__c> slipList = Database.query(qryString); |
| | | |
| | |
| | | } |
| | | slip = slipList[0]; |
| | | |
| | | List<Rental_Apply_Equipment_Set_Detail__c> eList = [select Rental_Apply__c, Rental_Apply__r.Shippment_ng_num__c, Rental_Apply__r.Pre_inspection_ng_num__c, SerialNumber_F__c, Rental_Apply_Equipment_Set__r.Inspection_not_finish__c, Fixture_Name_F__c, Rental_Apply_Equipment_Set__r.Fixture_Set__r.Name, Rental_Apply_Equipment_Set__r.Rental_Apply__r.Name, 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 (DeliverySlip__c = :slip.Id or Id in :esdIdMap.keySet()) |
| | | and Cancel_Select__c = False and Return_DeliverySlip__c = null |
| | | order by Rental_Apply_Equipment_Set__r.Rental_Apply__r.Name, Rental_Apply_Equipment_Set__r.Name, Rental_Apply_Equipment_Set__c, Name]; |
| | | List<Rental_Apply_Equipment_Set_Detail__c> eList = [ |
| | | SELECT |
| | | Rental_Apply__c, |
| | | Rental_Apply__r.Shippment_ng_num__c, |
| | | Rental_Apply__r.Pre_inspection_ng_num__c, |
| | | SerialNumber_F__c, |
| | | Rental_Apply_Equipment_Set__r.Inspection_not_finish__c, |
| | | Fixture_Name_F__c, |
| | | Rental_Apply_Equipment_Set__r.Fixture_Set__r.Name, |
| | | Rental_Apply_Equipment_Set__r.Rental_Apply__r.Name, |
| | | 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 |
| | | (DeliverySlip__c = :slip.Id |
| | | OR Id IN :esdIdMap.keySet()) |
| | | AND Cancel_Select__c = FALSE |
| | | AND Return_DeliverySlip__c = NULL |
| | | ORDER BY |
| | | Rental_Apply_Equipment_Set__r.Rental_Apply__r.Name, |
| | | Rental_Apply_Equipment_Set__r.Name, |
| | | Rental_Apply_Equipment_Set__c, |
| | | Name |
| | | ]; |
| | | |
| | | esdList.clear(); |
| | | for (Rental_Apply_Equipment_Set_Detail__c esd : eList) { |
| | |
| | | List<String> ids = ApplyId.split(','); |
| | | Set<String> checkedIds = new Set<String>(CheckedId.split(':')); |
| | | CheckedId = null; |
| | | List<Rental_Apply_Equipment_Set__c> esList = [select Rental_Apply__r.Name, First_RAESD_Model_No_F__c, First_RAESD__r.SerialNumber_F__c, First_RAESD__r.Loaner_asset_no__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 |
| | | order by Rental_Apply__r.Name, Id]; |
| | | List<Rental_Apply_Equipment_Set__c> esList = [ |
| | | SELECT |
| | | Rental_Apply__r.Name, |
| | | First_RAESD_Model_No_F__c, |
| | | First_RAESD__r.SerialNumber_F__c, |
| | | First_RAESD__r.Loaner_asset_no__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 |
| | | ORDER BY Rental_Apply__r.Name, Id |
| | | ]; |
| | | Set<Id> esIds = new Set<Id>(); |
| | | Set<Id> esdIds = new Set<Id>(); |
| | | Set<Id> applySet = new Set<Id>(); |
| | |
| | | esdIds.add(raesd.rec.Id); |
| | | } |
| | | List<Rental_Apply_Equipment_Set_Detail__c> eList = [ |
| | | select Rental_Apply__c, Rental_Apply__r.Shippment_ng_num__c, Rental_Apply__r.Pre_inspection_ng_num__c, SerialNumber_F__c, Rental_Apply_Equipment_Set__r.Inspection_not_finish__c, Fixture_Name_F__c, Rental_Apply_Equipment_Set__r.Fixture_Set__r.Name, Rental_Apply_Equipment_Set__r.Rental_Apply__r.Name, 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 DeliverySlip__c = null and Return_DeliverySlip__c = null //and Inspection_result__c <> null and Shipment_request_time2__c <> null |
| | | and Cancel_Select__c = False |
| | | order by Rental_Apply_Equipment_Set__r.Rental_Apply__r.Name, Rental_Apply_Equipment_Set__r.Name, Rental_Apply_Equipment_Set__c, Name |
| | | SELECT |
| | | Rental_Apply__c, |
| | | Rental_Apply__r.Shippment_ng_num__c, |
| | | Rental_Apply__r.Pre_inspection_ng_num__c, |
| | | SerialNumber_F__c, |
| | | Rental_Apply_Equipment_Set__r.Inspection_not_finish__c, |
| | | Fixture_Name_F__c, |
| | | Rental_Apply_Equipment_Set__r.Fixture_Set__r.Name, |
| | | Rental_Apply_Equipment_Set__r.Rental_Apply__r.Name, |
| | | 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 DeliverySlip__c = NULL |
| | | AND Return_DeliverySlip__c = NULL //and Inspection_result__c <> null and Shipment_request_time2__c <> null |
| | | AND Cancel_Select__c = FALSE |
| | | ORDER BY |
| | | Rental_Apply_Equipment_Set__r.Rental_Apply__r.Name, |
| | | Rental_Apply_Equipment_Set__r.Name, |
| | | Rental_Apply_Equipment_Set__c, |
| | | Name |
| | | ]; |
| | | //esdList.clear(); |
| | | for (Rental_Apply_Equipment_Set_Detail__c esd : eList) { |
| | |
| | | for (EsdInfo raesd : esdList) { |
| | | if (checkedIds.contains(raesd.rec.Rental_Apply_Equipment_Set__c)) { |
| | | raesd.isChecked = true; |
| | | system.debug('========4esdList='+JSON.serialize(raesd)); |
| | | system.debug('========4esdList=' + JSON.serialize(raesd)); |
| | | } |
| | | } |
| | | return null; |
| | |
| | | ReturnRefuse = true; |
| | | ErrorMessage = ''; |
| | | if (Id != null) { |
| | | system.debug('==================='+Id); |
| | | system.debug('===================' + Id); |
| | | // 当前User |
| | | String userid = Userinfo.getUserId(); |
| | | User user = [select Id,Name from User where Id = :userid]; |
| | | User user = [SELECT Id, Name FROM User WHERE Id = :userid]; |
| | | List<Rental_Apply_Equipment_Set__c> esList; |
| | | List<String> ids = Id.split(','); |
| | | esList = [select Rental_Apply__r.Name, First_RAESD_Model_No_F__c, First_RAESD__r.SerialNumber_F__c, First_RAESD__r.Loaner_asset_no__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 |
| | | order by Rental_Apply__r.Name, Id]; |
| | | // if (Step_status == '追加') { |
| | | esList = [ |
| | | SELECT |
| | | Rental_Apply__r.Name, |
| | | First_RAESD_Model_No_F__c, |
| | | First_RAESD__r.SerialNumber_F__c, |
| | | First_RAESD__r.Loaner_asset_no__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 |
| | | ORDER BY Rental_Apply__r.Name, Id |
| | | ]; |
| | | // if (Step_status == '追加') { |
| | | |
| | | //} else { |
| | | // // 备品set |
| | | // esList = [select Rental_Apply__r.Name, First_RAESD_Model_No_F__c, First_RAESD__r.SerialNumber_F__c, First_RAESD__r.Loaner_asset_no__c, Rental_Apply__c, Id, RAES_Status__c, Name, Shippment_loaner_time__c |
| | | // from Rental_Apply_Equipment_Set__c |
| | | // where (Rental_Apply__r.Name = :Id or Id = :Id) |
| | | // AND Cancel_Select__c = False |
| | | // ]; |
| | | // esList = [select Rental_Apply__r.Name, First_RAESD_Model_No_F__c, First_RAESD__r.SerialNumber_F__c, First_RAESD__r.Loaner_asset_no__c, Rental_Apply__c, Id, RAES_Status__c, Name, Shippment_loaner_time__c |
| | | // from Rental_Apply_Equipment_Set__c |
| | | // where (Rental_Apply__r.Name = :Id or Id = :Id) |
| | | // AND Cancel_Select__c = False |
| | | // ]; |
| | | //} |
| | | |
| | | //if (Step_status == '明细') { |
| | | slip.Wh_Staff__c = userid; |
| | | slip.DeliveryType__c = '发货'; |
| | | slip.Wh_Staff__c = userid; |
| | | slip.DeliveryType__c = '发货'; |
| | | //} |
| | | //List<Fixture_Set__c> esList = [select Id, Name, CDS_staff__c, Shippment_loaner_time__c, Received_loaner_time__c, |
| | | //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, |
| | |
| | | // system.debug('All::::'+Rac.repair__c); |
| | | // system.debug('All::::'+Ra_c.RAES_Status__c); |
| | | // 本番暂不上线该功能,启用后不能入库操作感觉不对 |
| | | |
| | | |
| | | } |
| | | |
| | | // 备品set明细 |
| | | List<Rental_Apply_Equipment_Set_Detail__c> eList = [ |
| | | select Rental_Apply__c, Rental_Apply__r.Shippment_ng_num__c, Rental_Apply__r.Pre_inspection_ng_num__c, SerialNumber_F__c, Rental_Apply_Equipment_Set__r.Inspection_not_finish__c, Fixture_Name_F__c, Rental_Apply_Equipment_Set__r.RAES_Status__c, Rental_Apply_Equipment_Set__r.Fixture_Set__r.Name, Rental_Apply_Equipment_Set__r.Rental_Apply__r.Name, 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 DeliverySlip__c = null and Return_DeliverySlip__c = null//and Shipment_request_time__c <> null |
| | | and Cancel_Select__c = False |
| | | order by Rental_Apply_Equipment_Set__r.Rental_Apply__r.Name, Rental_Apply_Equipment_Set__r.Name, Rental_Apply_Equipment_Set__c, Name |
| | | SELECT |
| | | Rental_Apply__c, |
| | | Rental_Apply__r.Shippment_ng_num__c, |
| | | Rental_Apply__r.Pre_inspection_ng_num__c, |
| | | SerialNumber_F__c, |
| | | Rental_Apply_Equipment_Set__r.Inspection_not_finish__c, |
| | | Fixture_Name_F__c, |
| | | Rental_Apply_Equipment_Set__r.RAES_Status__c, |
| | | Rental_Apply_Equipment_Set__r.Fixture_Set__r.Name, |
| | | Rental_Apply_Equipment_Set__r.Rental_Apply__r.Name, |
| | | 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 DeliverySlip__c = NULL |
| | | AND Return_DeliverySlip__c = NULL //and Shipment_request_time__c <> null |
| | | AND Cancel_Select__c = FALSE |
| | | ORDER BY |
| | | Rental_Apply_Equipment_Set__r.Rental_Apply__r.Name, |
| | | Rental_Apply_Equipment_Set__r.Name, |
| | | Rental_Apply_Equipment_Set__c, |
| | | Name |
| | | ]; |
| | | //Set<Id> lockId = new Set<Id>(); |
| | | //for (Rental_Apply_Equipment_Set_Detail__c esd : eList) { |
| | |
| | | |
| | | // Step 切り替えボタン、发货前-检测 |
| | | public PageReference ShippmentDetail() { |
| | | system.debug('========cid='+CheckedId); |
| | | system.debug('========esd='+esdList.size()); |
| | | system.debug('========cid=' + CheckedId); |
| | | system.debug('========esd=' + esdList.size()); |
| | | Step_status = '明细'; |
| | | //slip.Wh_Staff__c = Userinfo.getUserId(); |
| | | //slip.DeliveryType__c = '发货'; |
| | |
| | | allcount.put(esd.rec.Rental_Apply__c, Integer.valueOf(esd.rec.Rental_Apply__r.Shippment_ng_num__c)); |
| | | } |
| | | } |
| | | system.debug('========shipcount='+JSON.serialize(shipcount)); |
| | | system.debug('========shipcount='+JSON.serialize(allcount)); |
| | | system.debug('========shipcount=' + JSON.serialize(shipcount)); |
| | | system.debug('========shipcount=' + JSON.serialize(allcount)); |
| | | for (String raid : allcount.keySet()) { |
| | | if (allcount.get(raid) > shipcount.get(raid).size()) { |
| | | Step_status = '追加'; |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '申请单内存在未勾选的配套,请勾选全部配套或分割申请单!')); |
| | | ApexPages.addmessage( |
| | | new ApexPages.message(ApexPages.severity.Error, '申请单内存在未勾选的配套,请勾选全部配套或分割申请单!') |
| | | ); |
| | | } |
| | | } |
| | | } |
| | |
| | | // Step 切り替えボタン、发货-发货运输单号 等 |
| | | public PageReference ShippmentAdd() { |
| | | Step_status = '追加'; |
| | | system.debug('========2esdList='+JSON.serialize(esdList)); |
| | | system.debug('========2esdList=' + JSON.serialize(esdList)); |
| | | //return new PageReference('/apex/EquipmentSetShippmentReceived3?id=' + this.Id + '&step=' + this.Step_status); |
| | | return null; |
| | | } |
| | |
| | | |
| | | // 保存按钮 |
| | | public PageReference save() { |
| | | |
| | | List<String> raids = Raid.split(':'); |
| | | //检查是否可以继续 |
| | | List<Rental_Apply__c> RaTarList = [select Id,Name,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 |
| | | ,Campaign__r.IF_Approved__c |
| | | ,Campaign__r.Meeting_Approved_No__c // 20220315 ljh obpm备品决裁状态相关修改 |
| | | ,Campaign__r.Approved_Status__c // 20220315 ljh obpm备品决裁状态相关修改 |
| | | ,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 in :raids];//20210602 ljh update 增加查询Name SFDC-C3LBNL |
| | | List<Rental_Apply__c> RaTarList = [ |
| | | SELECT |
| | | Id, |
| | | Name, |
| | | 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, |
| | | Campaign__r.IF_Approved__c, |
| | | Campaign__r.Meeting_Approved_No__c, // 20220315 ljh obpm备品决裁状态相关修改 |
| | | Campaign__r.Approved_Status__c, // 20220315 ljh obpm备品决裁状态相关修改 |
| | | repair__r.Return_Without_Repair_Date__c, |
| | | Repair__r.Repair_Final_Inspection_Date__c, |
| | | AccDealerBlacklist__c, //贸易合规 you |
| | | //,EquipmentGuaranteeFlg__c//贸易合规 you |
| | | Repair__r.Repair_Shipped_Date__c |
| | | FROM Rental_Apply__c |
| | | WHERE id IN :raids |
| | | ]; //20210602 ljh update 增加查询Name SFDC-C3LBNL |
| | | |
| | | // add lc 20220927 SFDC-CJ48VE 备品预计出库日逻辑调整 start |
| | | Map<Id, String> rentalApplyNameMap = new Map<Id, String>(); |
| | | List<Rental_Apply_Equipment_Set__c> RAESRecords = [ |
| | | SELECT Id,Rental_Apply__c,Rental_Apply__r.Name |
| | | FROM Rental_Apply_Equipment_Set__c |
| | | WHERE Rental_Apply__c in :raids |
| | | AND Cancel_Select__c = False |
| | | AND Rental_Start_Date__c <> :Date.today() |
| | | ORDER BY Rental_Apply__c]; |
| | | SELECT Id, Rental_Apply__c, Rental_Apply__r.Name |
| | | FROM Rental_Apply_Equipment_Set__c |
| | | WHERE Rental_Apply__c IN :raids AND Cancel_Select__c = FALSE AND Rental_Start_Date__c != :Date.today() |
| | | ORDER BY Rental_Apply__c |
| | | ]; |
| | | |
| | | for (Rental_Apply_Equipment_Set__c RAES : RAESRecords) { |
| | | if (rentalApplyNameMap.isEmpty() || !rentalApplyNameMap.containsKey(RAES.Rental_Apply__c)) { |
| | |
| | | String message2 = ''; |
| | | String message3 = ''; |
| | | String message = ''; |
| | | String message4 = '';//1822 yc 20211025 已购待货目的,新品已有发货日不能出库 |
| | | String message5 = '';//1822 yc 20211108 索赔QIS目的,QIS已有新品发货日不能出库 |
| | | String message4 = ''; //1822 yc 20211025 已购待货目的,新品已有发货日不能出库 |
| | | String message5 = ''; //1822 yc 20211108 索赔QIS目的,QIS已有新品发货日不能出库 |
| | | String message6 = ''; |
| | | String message7 = '';// 20220315 ljh obpm备品决裁状态相关修改 end |
| | | String message8 = '';//add lc 20220927 SFDC-CJ48VE 备品预计出库日逻辑调整 |
| | | String message7 = ''; // 20220315 ljh obpm备品决裁状态相关修改 end |
| | | String message8 = ''; //add lc 20220927 SFDC-CJ48VE 备品预计出库日逻辑调整 |
| | | String message9 = ''; //贸易合规 you |
| | | // 要判断决裁状态不能是草稿/驳回/终止申请/取消/删除 |
| | | List<String> statusList = System.Label.StatusProcessState.split(','); |
| | | Map<Id, Rental_Apply__c> RaMap = new Map<Id, Rental_Apply__c>(); |
| | | for (Rental_Apply__c RaTar : RaTarList) { |
| | | // 20230215 ljh DB202301265636 学会取消申请也拦截 start |
| | | // if( RaTar.Campaign__r.Status == '取消'){ |
| | | if( RaTar.Campaign__r.Status == '取消' || RaTar.Campaign__r.Status == '取消申请中'){ |
| | | // 20230215 ljh DB202301265636 学会取消申请也拦截 end |
| | | //贸易合规 you |
| | | // && RaTar.EquipmentGuaranteeFlg__c==false |
| | | if (System.Label.TradeComplianceStatusFlagBP == 'true' && RaTar.AccDealerBlacklist__c == '1') { |
| | | errorFlag = true; |
| | | message9 += RaTar.Name + '、'; |
| | | } else if (RaTar.Campaign__r.Status == '取消' || RaTar.Campaign__r.Status == '取消申请中') { |
| | | // 20230215 ljh DB202301265636 学会取消申请也拦截 end |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '学会已取消,不能继续操作了')); |
| | | // return null; |
| | | errorFlag = true; |
| | | message0 += RaTar.Name+'、'; |
| | | }else if(RaTar.Repair__r.Repair_Final_Inspection_Date__c!=null){ |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '存在修理最终检测日,不能继续了')); |
| | | message0 += RaTar.Name + '、'; |
| | | } else if (RaTar.Repair__r.Repair_Final_Inspection_Date__c != null) { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '存在修理最终检测日,不能继续了')); |
| | | // return null; |
| | | errorFlag = true; |
| | | message1 += RaTar.Name+'、'; |
| | | }else if(RaTar.repair__r.Return_Without_Repair_Date__c!=null&&RaTar.repair__c!=null ){ |
| | | |
| | | message1 += RaTar.Name + '、'; |
| | | } 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; |
| | | errorFlag = true; |
| | | message2 += RaTar.Name+'、'; |
| | | }else if(RaTar.Repair__r.Repair_Shipped_Date__c!=null){ |
| | | |
| | | message2 += RaTar.Name + '、'; |
| | | } else if (RaTar.Repair__r.Repair_Shipped_Date__c != null) { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '存在RC修理返送日,不能继续了')); |
| | | // return null; |
| | | errorFlag = true; |
| | | message3 += RaTar.Name+'、'; |
| | | message3 += RaTar.Name + '、'; |
| | | } |
| | | //1822 yc 20211025 已购待货目的,新品已有发货日不能出库 start |
| | | else if(RaTar.demo_purpose2__c=='已购待货' && RaTar.Follow_UP_Opp__r.Shipping_Finished_Day_Func__c!= null){ |
| | | else if (RaTar.demo_purpose2__c == '已购待货' && RaTar.Follow_UP_Opp__r.Shipping_Finished_Day_Func__c != null) { |
| | | errorFlag = true; |
| | | message4 += RaTar.Name+'、'; |
| | | }else if(RaTar.demo_purpose2__c=='索赔QIS' && RaTar.next_action__c=='无偿更换' && RaTar.QIS_number__r.ReplaceDeliveryDate__c!= null){ |
| | | message4 += RaTar.Name + '、'; |
| | | } else if ( |
| | | RaTar.demo_purpose2__c == '索赔QIS' && |
| | | RaTar.next_action__c == '无偿更换' && |
| | | RaTar.QIS_number__r.ReplaceDeliveryDate__c != null |
| | | ) { |
| | | errorFlag = true; |
| | | message5 += RaTar.Name+'、'; |
| | | message5 += RaTar.Name + '、'; |
| | | } |
| | | //1822 yc 20211025 已购待货目的,新品已有发货日不能出库 end |
| | | // 20220315 ljh obpm备品决裁状态相关修改 start |
| | | // else if (!campMap.isEmpty() && campMap.containsKey(RaTar.Campaign__c) && campMap.get(RaTar.Campaign__c).IF_Approved__c){ |
| | | // if (String.isBlank(campMap.get(RaTar.Campaign__c).Meeting_Approved_No__c) |
| | | // if (String.isBlank(campMap.get(RaTar.Campaign__c).Meeting_Approved_No__c) |
| | | // || String.isBlank(campMap.get(RaTar.Campaign__c).Meeting_Approved_No__r.MeetingApprovedNo__c)) { |
| | | // errorFlag = true; |
| | | // message6 = RaTar.Name + '、'; |
| | | // } |
| | | // } |
| | | else if(RaTar.Campaign__c!= null && RaTar.Campaign__r.IF_Approved__c && RaTar.Campaign__r.Meeting_Approved_No__c == null) { |
| | | else if (RaTar.Campaign__c != null && RaTar.Campaign__r.IF_Approved__c && RaTar.Campaign__r.Meeting_Approved_No__c == null) { |
| | | errorFlag = true; |
| | | message6 += RaTar.Name + '、'; |
| | | } |
| | | else if(RaTar.Campaign__c!= null && RaTar.Campaign__r.IF_Approved__c && RaTar.Campaign__r.Meeting_Approved_No__c != null && statusList.contains(RaTar.Campaign__r.Approved_Status__c)) { |
| | | } else if ( |
| | | RaTar.Campaign__c != null && |
| | | RaTar.Campaign__r.IF_Approved__c && |
| | | RaTar.Campaign__r.Meeting_Approved_No__c != null && |
| | | statusList.contains(RaTar.Campaign__r.Approved_Status__c) |
| | | ) { |
| | | errorFlag = true; |
| | | message7 += RaTar.Name + '、'; |
| | | } |
| | |
| | | } |
| | | // add lc 20220927 SFDC-CJ48VE 备品预计出库日逻辑调整 end |
| | | |
| | | if(errorFlag){ |
| | | if(String.isNotBlank(message0)){ |
| | | if (errorFlag) { |
| | | if (String.isNotBlank(message0)) { |
| | | // 20230215 ljh DB202301265636 学会取消申请也拦截 start |
| | | // message += '单号NO.'+message0.removeEnd('、')+'学会已取消,不能继续操作了'; |
| | | message += '单号NO.'+message0.removeEnd('、')+'学会已取消或者取消申请中,不能继续操作了'; |
| | | message += '单号NO.' + message0.removeEnd('、') + '学会已取消或者取消申请中,不能继续操作了'; |
| | | // 20230215 ljh DB202301265636 学会取消申请也拦截 start |
| | | } |
| | | if(String.isNotBlank(message1)){ |
| | | message += '单号NO.'+message1.removeEnd('、')+'存在修理最终检测日,不能继续了'; |
| | | if (String.isNotBlank(message1)) { |
| | | message += '单号NO.' + message1.removeEnd('、') + '存在修理最终检测日,不能继续了'; |
| | | } |
| | | if(String.isNotBlank(message2)){ |
| | | message += '单号NO.'+message2.removeEnd('、')+'未修理归还日不为空,不能出库'; |
| | | if (String.isNotBlank(message2)) { |
| | | message += '单号NO.' + message2.removeEnd('、') + '未修理归还日不为空,不能出库'; |
| | | } |
| | | if(String.isNotBlank(message3)){ |
| | | message += '单号NO.'+message3.removeEnd('、')+'存在RC修理返送日,不能继续了'; |
| | | if (String.isNotBlank(message3)) { |
| | | message += '单号NO.' + message3.removeEnd('、') + '存在RC修理返送日,不能继续了'; |
| | | } |
| | | //1822 yc 20211025 已购待货目的,新品已有发货日不能出库 start |
| | | if(String.isNotBlank(message4)){ |
| | | message += '单号NO.'+message4.removeEnd('、')+'已购待货目的,新品已有发货日,不能继续了'; |
| | | if (String.isNotBlank(message4)) { |
| | | message += '单号NO.' + message4.removeEnd('、') + '已购待货目的,新品已有发货日,不能继续了'; |
| | | } |
| | | if(String.isNotBlank(message5)){ |
| | | message += '单号NO.'+message5.removeEnd('、')+'索赔QIS目的,QIS已有新品发货日,不能继续了'; |
| | | if (String.isNotBlank(message5)) { |
| | | message += '单号NO.' + message5.removeEnd('、') + '索赔QIS目的,QIS已有新品发货日,不能继续了'; |
| | | } |
| | | //1822 yc 20211025 已购待货目的,新品已有发货日不能出库 end |
| | | if(String.isNotBlank(message6)){ |
| | | message += '单号No.'+ message6.removeEnd('、')+ '已申请决裁但决裁编码为空'; |
| | | if (String.isNotBlank(message6)) { |
| | | message += '单号No.' + message6.removeEnd('、') + '已申请决裁但决裁编码为空'; |
| | | } |
| | | // 20220315 ljh obpm备品决裁状态相关修改 add start |
| | | if(String.isNotBlank(message7)){ |
| | | message += '单号No.'+ message7.removeEnd('、')+ '已申请决裁但决裁状态不符合条件'; |
| | | if (String.isNotBlank(message7)) { |
| | | message += '单号No.' + message7.removeEnd('、') + '已申请决裁但决裁状态不符合条件'; |
| | | } |
| | | // 20220315 ljh obpm备品决裁状态相关修改 add end |
| | | |
| | | // add lc 20220927 SFDC-CJ48VE 备品预计出库日逻辑调整 start |
| | | if(String.isNotBlank(message8)){ |
| | | message += '单号No.'+ message8.removeEnd('、')+ '的备品预计出货日应该等于今天,否则不能发货'; |
| | | if (String.isNotBlank(message8)) { |
| | | message += '单号No.' + message8.removeEnd('、') + '的备品预计出货日应该等于今天,否则不能发货'; |
| | | } |
| | | // add lc 20220927 SFDC-CJ48VE 备品预计出库日逻辑调整 end |
| | | |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error,message)); |
| | | if (String.isNotBlank(message9)) { |
| | | message += '单号No.' + message9.removeEnd('、') + System.Label.IFTradeComplianceAlertBP; |
| | | } |
| | | |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, message)); |
| | | return null; |
| | | } |
| | | //20210604 ljh update SFDC-C3LBNL end |
| | |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '未选择备品set,不能创建发货单')); |
| | | return null; |
| | | } |
| | | eList = [select Rental_Apply__c, Rental_Apply__r.Shippment_ng_num__c, Rental_Apply__r.Pre_inspection_ng_num__c, Rental_Apply_Equipment_Set__r.Inspection_not_finish__c, Fixture_Name_F__c, Rental_Apply_Equipment_Set__r.Fixture_Set__r.Name, Rental_Apply_Equipment_Set__r.Rental_Apply__r.Name, 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, |
| | | Rental_Apply__r.Request_approval_time__c , Add_Request_approval_time__c ,ApplyToShipmentWorkTime__c, //20220309 ljh SFDC-CC6CLJ phase5上线课题131 提交申请到备品出库时长 |
| | | Inspection_result_after_ng__c, Inspection_result_ng__c, Lost_item_giveup__c, CDS_complete__c, Loaner_accsessary__c,Key_product__c |
| | | from Rental_Apply_Equipment_Set_Detail__c where Id in :eSet for update]; |
| | | eList = [ |
| | | SELECT |
| | | Rental_Apply__c, |
| | | Rental_Apply__r.Shippment_ng_num__c, |
| | | Rental_Apply__r.Pre_inspection_ng_num__c, |
| | | Rental_Apply_Equipment_Set__r.Inspection_not_finish__c, |
| | | Fixture_Name_F__c, |
| | | Rental_Apply_Equipment_Set__r.Fixture_Set__r.Name, |
| | | Rental_Apply_Equipment_Set__r.Rental_Apply__r.Name, |
| | | 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, |
| | | Rental_Apply__r.Request_approval_time__c, |
| | | Add_Request_approval_time__c, |
| | | ApplyToShipmentWorkTime__c, //20220309 ljh SFDC-CC6CLJ phase5上线课题131 提交申请到备品出库时长 |
| | | Inspection_result_after_ng__c, |
| | | Inspection_result_ng__c, |
| | | Lost_item_giveup__c, |
| | | CDS_complete__c, |
| | | Loaner_accsessary__c, |
| | | Key_product__c |
| | | FROM Rental_Apply_Equipment_Set_Detail__c |
| | | WHERE Id IN :eSet |
| | | FOR UPDATE |
| | | ]; |
| | | Boolean needSaveSet = false; |
| | | Boolean needSaveDetail = false; |
| | | Boolean needDeliverySlip = false; |
| | | //wangweipeng 是否是重点产品 2021/08/30 start |
| | | Map<String,boolean> keyPointProduct = new Map<String,boolean>(); |
| | | Map<String, boolean> keyPointProduct = new Map<String, boolean>(); |
| | | //wangweipeng 是否是重点产品 2021/08/30 end |
| | | Set<Id> astForLock = new Set<Id>(); |
| | | Map<Datetime, List<Rental_Apply_Equipment_Set_Detail__c>> approvalMap = new Map<Datetime, List<Rental_Apply_Equipment_Set_Detail__c>>();// 20220315 ljh SFDC-CC6CLJ phase5上线课题131 提交申请到备品出库时长 |
| | | Map<Datetime, List<Rental_Apply_Equipment_Set_Detail__c>> approvalMap = new Map<Datetime, List<Rental_Apply_Equipment_Set_Detail__c>>(); // 20220315 ljh SFDC-CC6CLJ phase5上线课题131 提交申请到备品出库时长 |
| | | for (Rental_Apply_Equipment_Set_Detail__c esd : eList) { |
| | | if (esd.Inspection_result__c <> null && esd.StockDown__c == false) { |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '备品set未下架,不能填写发货前检查结果')); |
| | |
| | | } |
| | | //wangweipeng 是否是重点产品 2021/08/30 start |
| | | //记录当前借出备品的配套明细里面是否时重点产品,注意:只要有一个是重点产品,那么此借出备品就是重点产品 |
| | | if(esd.Key_product__c != null && esd.Key_product__c != ''){ |
| | | if(!(keyPointProduct.containsKey(esd.Rental_Apply__c)) || keyPointProduct.get(esd.Rental_Apply__c) == false){ |
| | | keyPointProduct.put(esd.Rental_Apply__c,true); |
| | | if (esd.Key_product__c != null && esd.Key_product__c != '') { |
| | | if (!(keyPointProduct.containsKey(esd.Rental_Apply__c)) || keyPointProduct.get(esd.Rental_Apply__c) == false) { |
| | | keyPointProduct.put(esd.Rental_Apply__c, true); |
| | | } |
| | | }else{ |
| | | if(keyPointProduct.get(esd.Rental_Apply__c) == null){ |
| | | keyPointProduct.put(esd.Rental_Apply__c,false); |
| | | } else { |
| | | if (keyPointProduct.get(esd.Rental_Apply__c) == null) { |
| | | keyPointProduct.put(esd.Rental_Apply__c, false); |
| | | } |
| | | } |
| | | //wangweipeng 是否是重点产品 2021/08/30 end |
| | | astForLock.add(esd.Asset__c); |
| | | // 20220315 ljh SFDC-CC6CLJ phase5上线课题131 提交申请到备品出库时长 start |
| | | Datetime keyDt = esd.Add_Request_approval_time__c != null?esd.Add_Request_approval_time__c:esd.Rental_Apply__r.Request_approval_time__c; |
| | | Datetime keyDt = esd.Add_Request_approval_time__c != null |
| | | ? esd.Add_Request_approval_time__c |
| | | : esd.Rental_Apply__r.Request_approval_time__c; |
| | | List<Rental_Apply_Equipment_Set_Detail__c> tempRaesdL; |
| | | if(approvalMap.containsKey(keyDt)){ |
| | | if (approvalMap.containsKey(keyDt)) { |
| | | tempRaesdL = approvalMap.get(keyDt); |
| | | }else{ |
| | | } else { |
| | | tempRaesdL = new List<Rental_Apply_Equipment_Set_Detail__c>(); |
| | | } |
| | | tempRaesdL.add(esd); |
| | | approvalMap.put(keyDt,tempRaesdL); |
| | | tempRaesdL.add(esd); |
| | | approvalMap.put(keyDt, tempRaesdL); |
| | | // 20220315 ljh SFDC-CC6CLJ phase5上线课题131 提交申请到备品出库时长 end |
| | | } |
| | | List<Asset> astLock = [select Id |
| | | from Asset |
| | | where id in :astForLock |
| | | for update]; |
| | | List<Asset> astLock = [ |
| | | SELECT Id |
| | | FROM Asset |
| | | WHERE id IN :astForLock |
| | | FOR UPDATE |
| | | ]; |
| | | if (Step_status == '明细') { |
| | | needDeliverySlip = true; |
| | | //if (slip.Id == null) { |
| | |
| | | // slip.Shippment_loaner_time__c = Datetime.now(); |
| | | //} |
| | | if (slip.Id != null) { |
| | | slip = [select Combine_Pack__c, Name, Id, DeliveryCompany_SlipNo__c,DeliveryType__c,Distributor_method__c,DeliveryCompany__c,Wh_Staff__c |
| | | from FixtureDeliverySlip__c |
| | | where Id =:slip.Id for update]; |
| | | slip = [ |
| | | SELECT |
| | | Combine_Pack__c, |
| | | Name, |
| | | Id, |
| | | DeliveryCompany_SlipNo__c, |
| | | DeliveryType__c, |
| | | Distributor_method__c, |
| | | DeliveryCompany__c, |
| | | Wh_Staff__c |
| | | FROM FixtureDeliverySlip__c |
| | | WHERE Id = :slip.Id |
| | | FOR UPDATE |
| | | ]; |
| | | } |
| | | slip.Shippment_loaner_time__c = Datetime.now(); |
| | | needSaveDetail = true; |
| | | } |
| | | List<Rental_Apply__c> raList = [select Id, DeliverySlip__c, Campaign__c |
| | | , Campaign__r.IF_Approved__c // 20220315 ljh obpm备品决裁状态相关修改 |
| | | , Campaign__r.Meeting_Approved_No__r.Name // 20220315 ljh obpm备品决裁状态相关修改 |
| | | , Campaign__r.Approved_Status__c // 20220315 ljh obpm备品决裁状态相关修改 |
| | | from Rental_Apply__c where Id in :raSet]; |
| | | List<Rental_Apply__c> raList = [ |
| | | SELECT |
| | | Id, |
| | | DeliverySlip__c, |
| | | Campaign__c, |
| | | Campaign__r.IF_Approved__c, // 20220315 ljh obpm备品决裁状态相关修改 |
| | | Campaign__r.Meeting_Approved_No__r.Name, // 20220315 ljh obpm备品决裁状态相关修改 |
| | | Campaign__r.Approved_Status__c, // 20220315 ljh obpm备品决裁状态相关修改 |
| | | Hospital__r.TradeComplianceStatus__c, //贸易合规 you |
| | | Outbound_TradeStatus__c //贸易合规 you |
| | | FROM Rental_Apply__c |
| | | WHERE Id IN :raSet |
| | | ]; |
| | | Savepoint sp = Database.setSavepoint(); |
| | | try { |
| | | //if (needSaveSet) ControllerUtil.upRAdEquipmentSet(es); |
| | |
| | | FixtureUtil.withoutUpsertObjects(new List<FixtureDeliverySlip__c>{ slip }); |
| | | //ControllerUtil.updRADeliverySlipDetail(slip); |
| | | // 20220315 ljh SFDC-CC6CLJ phase5上线课题131 提交申请到备品出库时长 start |
| | | map<String,Decimal> ApplyToShipmentMap = new map<String,Decimal>(); |
| | | if(approvalMap.size() > 0 ){ |
| | | map<String, Decimal> ApplyToShipmentMap = new Map<String, Decimal>(); |
| | | if (approvalMap.size() > 0) { |
| | | // dtList[0] 第一个就是最小时间 |
| | | List<Datetime> dtList = new List<Datetime>(approvalMap.keySet()); |
| | | Date startDateSOQL = date.newinstance(dtList[0].year(), dtList[0].month(), dtList[0].day()); |
| | | List<OlympusCalendar__c> ocList = [SELECT Id, Date__c,IsWorkDay__c |
| | | FROM OlympusCalendar__c |
| | | WHERE Date__c >= :startDateSOQL |
| | | AND Date__c <= :Date.today() |
| | | ORDER BY Date__c ASC]; |
| | | Map<Date,String> ocMap = new Map<Date,String>(); |
| | | for(OlympusCalendar__c oc:ocList){ |
| | | Date startDateSOQL = date.newinstance(dtList[0].year(), dtList[0].month(), dtList[0].day()); |
| | | List<OlympusCalendar__c> ocList = [ |
| | | SELECT Id, Date__c, IsWorkDay__c |
| | | FROM OlympusCalendar__c |
| | | WHERE Date__c >= :startDateSOQL AND Date__c <= :Date.today() |
| | | ORDER BY Date__c ASC |
| | | ]; |
| | | Map<Date, String> ocMap = new Map<Date, String>(); |
| | | for (OlympusCalendar__c oc : ocList) { |
| | | String IsWorkDay = oc.IsWorkDay__c.format(); |
| | | ocMap.put(oc.Date__c,IsWorkDay); |
| | | ocMap.put(oc.Date__c, IsWorkDay); |
| | | } |
| | | for(Datetime dt:dtList){ |
| | | for (Datetime dt : dtList) { |
| | | Boolean startFlag = false; |
| | | Boolean endFlag = false; |
| | | Datetime startTime = dt; |
| | | Date startDate = Date.newInstance(startTime.year(),startTime.month(),startTime.day()); |
| | | Date startDate = Date.newInstance(startTime.year(), startTime.month(), startTime.day()); |
| | | Datetime endTime = Datetime.now(); |
| | | Date endDate = Date.today(); |
| | | // 审批时间是非奥林巴斯工作日 |
| | | // 审批时间是非奥林巴斯工作日 |
| | | // if(ocList[0].IsWorkDay__c == 0){ |
| | | if(ocMap.get(startDate) == '0'){ |
| | | for(OlympusCalendar__c oc:ocList){ |
| | | if(startDate < oc.Date__c && oc.IsWorkDay__c == 1){ |
| | | startTime = Datetime.newInstance(oc.Date__c.year(),oc.Date__c.month(),oc.Date__c.day(),0,0,0); |
| | | if (ocMap.get(startDate) == '0') { |
| | | for (OlympusCalendar__c oc : ocList) { |
| | | if (startDate < oc.Date__c && oc.IsWorkDay__c == 1) { |
| | | startTime = Datetime.newInstance(oc.Date__c.year(), oc.Date__c.month(), oc.Date__c.day(), 0, 0, 0); |
| | | startDate = oc.Date__c; |
| | | startFlag = true; |
| | | break; |
| | |
| | | } |
| | | } |
| | | // 发货时间是非奥林巴斯工作日 |
| | | if(ocList[ocList.size() - 1].IsWorkDay__c == 0){ |
| | | for(Integer i = ocList.size() - 1; i >= 0;i--){ |
| | | if(ocList[i].IsWorkDay__c == 1){ |
| | | endTime = Datetime.newInstance(ocList[i].Date__c.addDays(1).year(),ocList[i].Date__c.addDays(1).month(),ocList[i].Date__c.addDays(1).day(),0,0,0); |
| | | if (ocList[ocList.size() - 1].IsWorkDay__c == 0) { |
| | | for (Integer i = ocList.size() - 1; i >= 0; i--) { |
| | | if (ocList[i].IsWorkDay__c == 1) { |
| | | endTime = Datetime.newInstance( |
| | | ocList[i].Date__c.addDays(1).year(), |
| | | ocList[i].Date__c.addDays(1).month(), |
| | | ocList[i].Date__c.addDays(1).day(), |
| | | 0, |
| | | 0, |
| | | 0 |
| | | ); |
| | | endDate = ocList[i].Date__c.addDays(1); |
| | | endFlag = true; |
| | | break; |
| | |
| | | } |
| | | } |
| | | Decimal timeDifLast; |
| | | if(ocList[0].IsWorkDay__c == 0 && ocList[ocList.size() - 1].IsWorkDay__c == 0 && !startFlag && !endFlag){ |
| | | if (ocList[0].IsWorkDay__c == 0 && ocList[ocList.size() - 1].IsWorkDay__c == 0 && !startFlag && !endFlag) { |
| | | timeDifLast = 0; |
| | | }else{ |
| | | } else { |
| | | Long startL = startTime.getTime(); |
| | | Long tendL = endTime.getTime(); |
| | | Long timeDif = tendL - startL; |
| | | Decimal time11 = timeDif*1.00; |
| | | Decimal time12 = 24*3600*1000*1.00; |
| | | timeDifLast = time11/time12; |
| | | Long timeDif = tendL - startL; |
| | | Decimal time11 = timeDif * 1.00; |
| | | Decimal time12 = 24 * 3600 * 1000 * 1.00; |
| | | timeDifLast = time11 / time12; |
| | | Integer tempWeek = 0; |
| | | for(OlympusCalendar__c oc:ocList){ |
| | | if(oc.IsWorkDay__c == 0 && startDate < oc.Date__c && oc.Date__c < endDate){ |
| | | for (OlympusCalendar__c oc : ocList) { |
| | | if (oc.IsWorkDay__c == 0 && startDate < oc.Date__c && oc.Date__c < endDate) { |
| | | tempWeek++; |
| | | } |
| | | } |
| | | timeDifLast = timeDifLast - tempWeek; |
| | | } |
| | | // dtestLast 四舍五入 保留1位小数 |
| | | for(Rental_Apply_Equipment_Set_Detail__c raesd00:approvalMap.get(dt)){ |
| | | ApplyToShipmentMap.put(raesd00.Id,timeDifLast.setScale(1)); |
| | | for (Rental_Apply_Equipment_Set_Detail__c raesd00 : approvalMap.get(dt)) { |
| | | ApplyToShipmentMap.put(raesd00.Id, timeDifLast.setScale(1)); |
| | | } |
| | | } |
| | | } |
| | |
| | | for (Rental_Apply_Equipment_Set_Detail__c esd : eList) { |
| | | esd.DeliverySlip__c = slip.Id; |
| | | // 20220315 ljh SFDC-CC6CLJ phase5上线课题131 提交申请到备品出库时长 start |
| | | if(ApplyToShipmentMap.containsKey(esd.Id)){ |
| | | if (ApplyToShipmentMap.containsKey(esd.Id)) { |
| | | esd.ApplyToShipmentWorkTime__c = ApplyToShipmentMap.get(esd.Id); |
| | | } |
| | | // 20220315 ljh SFDC-CC6CLJ phase5上线课题131 提交申请到备品出库时长 end |
| | |
| | | //wangweipeng 是否是重点产品 2021/08/30 start |
| | | ra.Is_keyPoint_Product__c = keyPointProduct.get(ra.Id); |
| | | //wangweipeng 是否是重点产品 2021/08/30 start |
| | | |
| | | ra.Outbound_TradeStatus__c = ra.Hospital__r.TradeComplianceStatus__c; //贸易合规 you |
| | | // 20220315 ljh obpm备品决裁状态相关修改 update start |
| | | //20220217 sx add 备品借出申请-决裁控制 No.4 出库成功时,把此时点的决裁编号和决裁状态写到决裁编号(出库)和决裁状态(出库)上 |
| | | // if (!campMap.isEmpty() && campMap.containsKey(ra.Campaign__c) && campMap.get(ra.Campaign__c).IF_Approved__c){ |
| | | // ra.ApprovedNo_Delivery__c = campMap.get(ra.Campaign__c).Meeting_Approved_No__r.MeetingApprovedNo__c; |
| | | // ra.Approved_State_Delivery__c = campMap.get(ra.Campaign__c).Meeting_Approved_No__r.ProcessState__c; |
| | | // } |
| | | if (ra.Campaign__c != null&& ra.Campaign__r.IF_Approved__c && ra.Campaign__r.Meeting_Approved_No__r.Name != null){ |
| | | if (ra.Campaign__c != null && ra.Campaign__r.IF_Approved__c && ra.Campaign__r.Meeting_Approved_No__r.Name != null) { |
| | | ra.ApprovedNo_Delivery__c = ra.Campaign__r.Meeting_Approved_No__r.Name; |
| | | ra.Approved_State_Delivery__c = ra.Campaign__r.Approved_Status__c; |
| | | } |
| | |
| | | } |
| | | //if (needSaveDetail) ControllerUtil.updRAEquipmentSetDetail(eList); |
| | | if (needSaveDetail) { |
| | | // 备品优化追加 20230518 lc Start |
| | | RentalApplyEquipmentSetDetailHandler.skipUpdateAgain = true; |
| | | // 备品优化追加 20230518 lc End |
| | | FixtureUtil.withoutUpsertObjects(eList); |
| | | FixtureUtil.withoutUpsertObjects(raList); |
| | | } |
| | |
| | | this.isChecked = checked; |
| | | this.hasSended = false; |
| | | |
| | | if (rec.Asset__r.Pre_Reserve_RAES_Detail__c != null && rec.Asset__r.Pre_Reserve_RAES_Detail__r.After_Inspection_time__c != null) { |
| | | 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; |
| | |
| | | this(rec, false); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | * Created Date: 01/19/2022 |
| | | * Purpose: Utility class for describe layouts |
| | | * Test Class: LayoutDescriberHelper_Test |
| | | * History: |
| | | * History: |
| | | * 01/19/2022 - Bubba Li - Initial Code. |
| | | * |
| | | * |
| | | * */ |
| | | |
| | | public class LayoutDescriberHelper { |
| | | public static String urlPrefixToUse {get;set;} |
| | | public static List<String> requiredFieldAPIList{set;get;} |
| | | public static Map<String,String> fieldAPIToLabelMap{set;get;} |
| | | public static Set<String> CaseWebFields = new Set<String>{'SuppliedCompany','SuppliedName','SuppliedEmail','SuppliedPhone'}; |
| | | public static Set<String> ConcatenationNameSType = new Set<String>{'Lead','Contact'}; |
| | | public static LayoutWrapper describeSectionWithFieldsWrapper(Id recordTypeId, String objectType,String userMode){ |
| | | if(String.isEmpty(recordTypeId)){ |
| | | public static String urlPrefixToUse { get; set; } |
| | | public static List<String> requiredFieldAPIList { get; set; } |
| | | public static Map<String, String> fieldAPIToLabelMap { get; set; } |
| | | public static Set<String> CaseWebFields = new Set<String>{ 'SuppliedCompany', 'SuppliedName', 'SuppliedEmail', 'SuppliedPhone' }; |
| | | public static Set<String> ConcatenationNameSType = new Set<String>{ 'Lead', 'Contact' }; |
| | | public static LayoutWrapper describeSectionWithFieldsWrapper(Id recordTypeId, String objectType, String userMode) { |
| | | if (String.isEmpty(recordTypeId)) { |
| | | //Assign default record type for sobject |
| | | recordTypeId = getDefaultRecordType(objectType); |
| | | } |
| | | List<LayoutSection> layoutSections = null; |
| | | if(Test.isRunningTest()){ |
| | | layoutSections = (List<LayoutSection>)Json.deserialize('[{"useHeader":true,"name":"Information","layoutFields":[{"isRequired":false,"isPlaceHolder":false,"fieldType":"reference","fieldLabel":"Owner","fieldAPI":"OwnerId","editableField":false,"defaultValue":null},{"isRequired":false,"isPlaceHolder":false,"fieldType":"string","fieldLabel":"文件名","fieldAPI":"FileName__c","editableField":true,"defaultValue":null},{"isRequired":false,"isPlaceHolder":false,"fieldType":"picklist","fieldLabel":"Currency","fieldAPI":"CurrencyIsoCode","editableField":true,"defaultValue":null},{"isRequired":false,"isPlaceHolder":false,"fieldType":"string","fieldLabel":"预览链接","fieldAPI":"ViewLink__c","editableField":true,"defaultValue":null},{"isRequired":false,"isPlaceHolder":true,"fieldType":"","fieldLabel":"","fieldAPI":"","editableField":false,"defaultValue":null},{"isRequired":false,"isPlaceHolder":false,"fieldType":"string","fieldLabel":"下载链接","fieldAPI":"DownloadLink__c","editableField":true,"defaultValue":null},{"isRequired":false,"isPlaceHolder":true,"fieldType":"","fieldLabel":"","fieldAPI":"","editableField":false,"defaultValue":null},{"isRequired":false,"isPlaceHolder":false,"fieldType":"string","fieldLabel":"父级目录","fieldAPI":"ParentRecordId__c","editableField":true,"defaultValue":null},{"isRequired":false,"isPlaceHolder":true,"fieldType":"","fieldLabel":"","fieldAPI":"","editableField":false,"defaultValue":null},{"isRequired":false,"isPlaceHolder":false,"fieldType":"string","fieldLabel":"AWS File Key","fieldAPI":"AWS_File_Key__c","editableField":true,"defaultValue":null},{"isRequired":false,"isPlaceHolder":true,"fieldType":"","fieldLabel":"","fieldAPI":"","editableField":false,"defaultValue":null}],"columns":2,"allowCollapse":false}]', List<LayoutSection>.class); |
| | | }else{ |
| | | layoutSections = describeSectionWithFields(recordTypeId,objectType,userMode); |
| | | if (Test.isRunningTest()) { |
| | | layoutSections = (List<LayoutSection>) Json.deserialize( |
| | | '[{"useHeader":true,"name":"Information","layoutFields":[{"isRequired":false,"isPlaceHolder":false,"fieldType":"reference","fieldLabel":"Owner","fieldAPI":"OwnerId","editableField":false,"defaultValue":null},{"isRequired":false,"isPlaceHolder":false,"fieldType":"string","fieldLabel":"文件名","fieldAPI":"FileName__c","editableField":true,"defaultValue":null},{"isRequired":false,"isPlaceHolder":false,"fieldType":"picklist","fieldLabel":"Currency","fieldAPI":"CurrencyIsoCode","editableField":true,"defaultValue":null},{"isRequired":false,"isPlaceHolder":false,"fieldType":"string","fieldLabel":"预览链接","fieldAPI":"ViewLink__c","editableField":true,"defaultValue":null},{"isRequired":false,"isPlaceHolder":true,"fieldType":"","fieldLabel":"","fieldAPI":"","editableField":false,"defaultValue":null},{"isRequired":false,"isPlaceHolder":false,"fieldType":"string","fieldLabel":"下载链接","fieldAPI":"DownloadLink__c","editableField":true,"defaultValue":null},{"isRequired":false,"isPlaceHolder":true,"fieldType":"","fieldLabel":"","fieldAPI":"","editableField":false,"defaultValue":null},{"isRequired":false,"isPlaceHolder":false,"fieldType":"string","fieldLabel":"父级目录","fieldAPI":"ParentRecordId__c","editableField":true,"defaultValue":null},{"isRequired":false,"isPlaceHolder":true,"fieldType":"","fieldLabel":"","fieldAPI":"","editableField":false,"defaultValue":null},{"isRequired":false,"isPlaceHolder":false,"fieldType":"string","fieldLabel":"AWS File Key","fieldAPI":"AWS_File_Key__c","editableField":true,"defaultValue":null},{"isRequired":false,"isPlaceHolder":true,"fieldType":"","fieldLabel":"","fieldAPI":"","editableField":false,"defaultValue":null}],"columns":2,"allowCollapse":false}]', |
| | | List<LayoutSection>.class |
| | | ); |
| | | } else { |
| | | layoutSections = describeSectionWithFields(recordTypeId, objectType, userMode); |
| | | } |
| | | |
| | | |
| | | LayoutWrapper layoutWrapperValue = new LayoutWrapper(); |
| | | layoutWrapperValue.layoutSections = layoutSections; |
| | | layoutWrapperValue.requiredFieldAPIList = requiredFieldAPIList; |
| | | layoutWrapperValue.fieldAPIToLabelMap = fieldAPIToLabelMap; |
| | | system.debug('required API List:'+JSON.serialize(layoutWrapperValue)); |
| | | system.debug('required API List:' + JSON.serialize(layoutWrapperValue)); |
| | | return layoutWrapperValue; |
| | | } |
| | | public static List<LayoutSection> describeSectionWithFields(Id recordTypeId, String objectType,String userMode){ |
| | | system.debug('record type id ===>'+ recordTypeId+' object type===>'+objectType + ' userMode===>'+userMode); |
| | | public static List<LayoutSection> describeSectionWithFields(Id recordTypeId, String objectType, String userMode) { |
| | | system.debug('record type id ===>' + recordTypeId + ' object type===>' + objectType + ' userMode===>' + userMode); |
| | | List<LayoutSection> layoutSections; |
| | | Map<String,List<LayoutField>> layoutFields; |
| | | Map<String, List<LayoutField>> layoutFields; |
| | | requiredFieldAPIList = new List<String>(); |
| | | fieldAPIToLabelMap = new Map<String,String>(); |
| | | fieldAPIToLabelMap = new Map<String, String>(); |
| | | layoutSections = new List<LayoutSection>(); |
| | | String theRespBody = getLayoutSchema(recordTypeId, objectType,userMode); |
| | | String theRespBody = getLayoutSchema(recordTypeId, objectType, userMode); |
| | | Map<String, Object> layoutSection = (Map<String, Object>) JSON.deserializeUntyped(theRespBody); |
| | | Map<String,object> m = new Map<String,object>(); |
| | | if(String.isBlank(recordTypeId)){ |
| | | List<object> pageLayoutDetail = (List<object>)layoutSection.get('layouts'); |
| | | System.debug('Page Layout Section Detail:'+JSON.serialize(pageLayoutDetail[0])); |
| | | m = (Map<String,object>) pageLayoutDetail[0]; |
| | | }else{ |
| | | Map<String, object> m = new Map<String, object>(); |
| | | if (String.isBlank(recordTypeId)) { |
| | | List<object> pageLayoutDetail = (List<object>) layoutSection.get('layouts'); |
| | | System.debug('Page Layout Section Detail:' + JSON.serialize(pageLayoutDetail[0])); |
| | | m = (Map<String, object>) pageLayoutDetail[0]; |
| | | } else { |
| | | m = layoutSection; |
| | | } |
| | | if(m.containsKey('editLayoutSections')){ |
| | | List<object > targetLayout = (List<object>) m.get('editLayoutSections'); |
| | | for(object sectionObject: targetLayout){ |
| | | Map<String,object> section = (Map<String,object>) sectionObject; |
| | | String sectionH = (String)section.get('heading'); |
| | | boolean useH = (boolean)section.get('useHeading'); |
| | | integer columns = (integer)section.get('columns'); |
| | | boolean useCollapse = (boolean)section.get('useCollapsibleSection'); |
| | | } |
| | | if (m.containsKey('editLayoutSections')) { |
| | | List<object> targetLayout = (List<object>) m.get('editLayoutSections'); |
| | | for (object sectionObject : targetLayout) { |
| | | Map<String, object> section = (Map<String, object>) sectionObject; |
| | | String sectionH = (String) section.get('heading'); |
| | | boolean useH = (boolean) section.get('useHeading'); |
| | | integer columns = (integer) section.get('columns'); |
| | | boolean useCollapse = (boolean) section.get('useCollapsibleSection'); |
| | | LayoutSection ls = new LayoutSection(); |
| | | ls.Name = sectionH; |
| | | ls.useHeader = useH; |
| | | ls.columns = columns; |
| | | ls.allowCollapse = useCollapse; |
| | | ls.layoutFields = new List<LayoutField>(); |
| | | ls.layoutFields = new List<LayoutField>(); |
| | | layoutSections.add(ls); |
| | | List<object> layoutRows = (List<object>) section.get('layoutRows'); |
| | | system.debug('layout rows ====> '+layoutRows); |
| | | for(Object itemObject : layoutRows ){ |
| | | Map<String,object> item = (Map<String,object>) itemObject; |
| | | List<object> layoutItem = (List<object>)item.get('layoutItems'); |
| | | boolean priorFieldLayoutAdded = true;//initially true |
| | | for(object fieldItemObject : layoutItem){ |
| | | Map<String, object> fields = (Map<String,object>) fieldItemObject; |
| | | List<object> layoutRows = (List<object>) section.get('layoutRows'); |
| | | system.debug('layout rows ====> ' + layoutRows); |
| | | for (Object itemObject : layoutRows) { |
| | | Map<String, object> item = (Map<String, object>) itemObject; |
| | | List<object> layoutItem = (List<object>) item.get('layoutItems'); |
| | | boolean priorFieldLayoutAdded = true; //initially true |
| | | for (object fieldItemObject : layoutItem) { |
| | | Map<String, object> fields = (Map<String, object>) fieldItemObject; |
| | | List<object> layoutComponents = (List<object>) fields.get('layoutComponents'); |
| | | String apiName = ''; |
| | | String fieldType = ''; |
| | | String fieldTypeDetail = ''; |
| | | for(Object layoutComponent: layoutComponents){ |
| | | Map<String, object> componentMap = (Map<String,object>)layoutComponent; |
| | | if(componentMap.containsKey('value')){ |
| | | String fieldTypeDetail = ''; |
| | | for (Object layoutComponent : layoutComponents) { |
| | | Map<String, object> componentMap = (Map<String, object>) layoutComponent; |
| | | if (componentMap.containsKey('value')) { |
| | | apiName = (String) componentMap.get('value'); |
| | | } |
| | | |
| | | if(componentMap.containsKey('type')){ |
| | | |
| | | if (componentMap.containsKey('type')) { |
| | | fieldType = (String) componentMap.get('type'); |
| | | } |
| | | |
| | | if(componentMap.containsKey('details')){ |
| | | Map<String,object> detailsMap = (Map<String,object>) componentMap.get('details'); |
| | | boolean calculatedField = (boolean)detailsMap.get('calculated'); |
| | | boolean autoNumberField = (boolean)detailsMap.get('autoNumber'); |
| | | if(calculatedField || autoNumberField){ |
| | | |
| | | if (componentMap.containsKey('details')) { |
| | | Map<String, object> detailsMap = (Map<String, object>) componentMap.get('details'); |
| | | boolean calculatedField = (boolean) detailsMap.get('calculated'); |
| | | boolean autoNumberField = (boolean) detailsMap.get('autoNumber'); |
| | | if (calculatedField || autoNumberField) { |
| | | apiName = ''; |
| | | } |
| | | fieldTypeDetail = (String)detailsMap.get('type'); |
| | | } |
| | | fieldTypeDetail = (String) detailsMap.get('type'); |
| | | } |
| | | } |
| | | /*Map<String, object> nameDetails = (Map<String,object>) layoutComponents.get('Name');*/ |
| | | String fieldLabel = (String) fields.get('label'); |
| | | boolean placeholderF = (boolean) fields.get('placeholder'); |
| | | boolean isEditable = (boolean) fields.get('editableForUpdate')||(boolean)fields.get('editableForNew'); // Check the editable prop |
| | | if( (apiName != '' && fieldType =='Field') || (placeholderF)){ |
| | | if(userMode == 'classic' && fieldTypeDetail == 'address'){ |
| | | String fieldLabelPrefix = fieldLabel.split(' ')[0] == 'Address'?'':fieldLabel.split(' ')[0]; |
| | | List<String> addressDetail = new List<String>{'Country','PostalCode','State','City','Street'}; |
| | | for(String addressType:addressDetail){ |
| | | String fieldLabel = (String) fields.get('label'); |
| | | boolean placeholderF = (boolean) fields.get('placeholder'); |
| | | boolean isEditable = (boolean) fields.get('editableForUpdate') || (boolean) fields.get('editableForNew'); // Check the editable prop |
| | | if ((apiName != '' && fieldType == 'Field') || (placeholderF)) { |
| | | if (userMode == 'classic' && fieldTypeDetail == 'address') { |
| | | String fieldLabelPrefix = fieldLabel.split(' ')[0] == 'Address' ? '' : fieldLabel.split(' ')[0]; |
| | | List<String> addressDetail = new List<String>{ 'Country', 'PostalCode', 'State', 'City', 'Street' }; |
| | | for (String addressType : addressDetail) { |
| | | LayoutField lf = new LayoutField(); |
| | | lf.isRequired = (Boolean)fields.get('required'); |
| | | lf.isRequired = (Boolean) fields.get('required'); |
| | | lf.isPlaceHolder = placeholderF; |
| | | lf.editableField = isEditable; |
| | | lf.fieldAPI = fieldLabelPrefix+addressType; |
| | | |
| | | lf.fieldLabel = fieldLabelPrefix+' '+addressType; |
| | | lf.fieldType = 'string'; |
| | | if(ls.Name != '' || layoutSections.size() == 1){ |
| | | lf.fieldAPI = fieldLabelPrefix + addressType; |
| | | |
| | | lf.fieldLabel = fieldLabelPrefix + ' ' + addressType; |
| | | lf.fieldType = 'string'; |
| | | if (ls.Name != '' || layoutSections.size() == 1) { |
| | | ls.layoutFields.add(lf); |
| | | }else if(layoutSections.size() - 2 >= 0){ |
| | | layoutSections.get(layoutSections.size() - 2).layoutFields.add(lf); |
| | | } else if (layoutSections.size() - 2 >= 0) { |
| | | layoutSections.get(layoutSections.size() - 2).layoutFields.add(lf); |
| | | } |
| | | if(lf.isRequired){ |
| | | system.debug(lf.fieldAPI+' is required'); |
| | | if (lf.isRequired) { |
| | | system.debug(lf.fieldAPI + ' is required'); |
| | | requiredFieldAPIList.add(lf.fieldAPI); |
| | | } |
| | | if(string.isBlank(lf.fieldAPI)){ |
| | | if (string.isBlank(lf.fieldAPI)) { |
| | | system.debug('==================================2'); |
| | | continue; |
| | | }else{ |
| | | fieldAPIToLabelMap.put(lf.fieldAPI,lf.fieldLabel); |
| | | } else { |
| | | fieldAPIToLabelMap.put(lf.fieldAPI, lf.fieldLabel); |
| | | } |
| | | } |
| | | continue; |
| | | } |
| | | if(userMode == 'classic' && apiName == 'Name' && ConcatenationNameSType.contains(objectType)){ |
| | | List<String> nameDetail = new List<String>{'Salutation','LastName'}; |
| | | for(String nameField:nameDetail){ |
| | | if (userMode == 'classic' && apiName == 'Name' && ConcatenationNameSType.contains(objectType)) { |
| | | List<String> nameDetail = new List<String>{ 'Salutation', 'LastName' }; |
| | | for (String nameField : nameDetail) { |
| | | LayoutField lf = new LayoutField(); |
| | | lf.isRequired = (Boolean)fields.get('required'); |
| | | if(nameField == 'Salutation'){ |
| | | lf.isRequired = (Boolean) fields.get('required'); |
| | | if (nameField == 'Salutation') { |
| | | lf.isRequired = false; |
| | | } |
| | | lf.isPlaceHolder = placeholderF; |
| | |
| | | lf.fieldAPI = nameField; |
| | | lf.fieldLabel = nameField; |
| | | lf.fieldType = 'string'; |
| | | if(ls.Name != '' || layoutSections.size() == 1){ |
| | | if (ls.Name != '' || layoutSections.size() == 1) { |
| | | ls.layoutFields.add(lf); |
| | | }else if(layoutSections.size() - 2 >= 0){ |
| | | layoutSections.get(layoutSections.size() - 2).layoutFields.add(lf); |
| | | } else if (layoutSections.size() - 2 >= 0) { |
| | | layoutSections.get(layoutSections.size() - 2).layoutFields.add(lf); |
| | | } |
| | | if(lf.isRequired){ |
| | | system.debug(lf.fieldAPI+' is required'); |
| | | if (lf.isRequired) { |
| | | system.debug(lf.fieldAPI + ' is required'); |
| | | requiredFieldAPIList.add(lf.fieldAPI); |
| | | } |
| | | if(string.isBlank(lf.fieldAPI)){ |
| | | } |
| | | if (string.isBlank(lf.fieldAPI)) { |
| | | system.debug('==================================3'); |
| | | continue; |
| | | }else{ |
| | | fieldAPIToLabelMap.put(lf.fieldAPI,lf.fieldLabel); |
| | | } else { |
| | | fieldAPIToLabelMap.put(lf.fieldAPI, lf.fieldLabel); |
| | | } |
| | | } |
| | | continue; |
| | | } |
| | | if(objectType == 'Case' && CaseWebFields.contains(apiName)){ |
| | | if (objectType == 'Case' && CaseWebFields.contains(apiName)) { |
| | | continue; |
| | | } |
| | | LayoutField lf = new LayoutField(); |
| | | lf.isRequired = (Boolean)fields.get('required'); |
| | | lf.isPlaceHolder = placeholderF; |
| | | lf.isRequired = (Boolean) fields.get('required'); |
| | | lf.isPlaceHolder = placeholderF; |
| | | lf.editableField = isEditable; |
| | | lf.fieldAPI = apiName; |
| | | lf.fieldLabel = fieldLabel; |
| | | lf.fieldType = fieldTypeDetail; |
| | | if(ls.Name != '' || layoutSections.size() == 1){ |
| | | if (ls.Name != '' || layoutSections.size() == 1) { |
| | | ls.layoutFields.add(lf); |
| | | }else if(layoutSections.size() - 2 >= 0){ |
| | | } else if (layoutSections.size() - 2 >= 0) { |
| | | layoutSections.get(layoutSections.size() - 2).layoutFields.add(lf); |
| | | } |
| | | if(lf.isRequired){ |
| | | system.debug(lf.fieldAPI+' is required'); |
| | | if (lf.isRequired) { |
| | | system.debug(lf.fieldAPI + ' is required'); |
| | | requiredFieldAPIList.add(lf.fieldAPI); |
| | | } |
| | | if(string.isBlank(lf.fieldAPI)){ |
| | | if (string.isBlank(lf.fieldAPI)) { |
| | | system.debug('==================================1'); |
| | | continue; |
| | | }else{ |
| | | fieldAPIToLabelMap.put(lf.fieldAPI,lf.fieldLabel); |
| | | } else { |
| | | fieldAPIToLabelMap.put(lf.fieldAPI, lf.fieldLabel); |
| | | } |
| | | |
| | | |
| | | priorFieldLayoutAdded = true; |
| | | }else |
| | | } else |
| | | priorFieldLayoutAdded = false; |
| | | } |
| | | } |
| | | } |
| | | if(layoutSections.get(layoutSections.size() -1).layoutFields.size() <= 0) { |
| | | if (layoutSections.get(layoutSections.size() - 1).layoutFields.size() <= 0) { |
| | | layoutSections.remove(layoutSections.size() - 1); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | System.debug('Layout Section Result:'+JSon.serialize(layoutSections)); |
| | | system.debug('required API List:'+JSON.serialize(requiredFieldAPIList)); |
| | | System.debug('Layout Section Result:' + JSon.serialize(layoutSections)); |
| | | system.debug('required API List:' + JSON.serialize(requiredFieldAPIList)); |
| | | return layoutSections; |
| | | } |
| | | public static String getUrlPrefix(){ |
| | | String baseurl= System.URL.getOrgDomainUrl().getHost(); |
| | | system.debug('original url ===>'+ baseurl); |
| | | public static String getUrlPrefix() { |
| | | String baseurl = System.URL.getOrgDomainUrl().getHost(); |
| | | system.debug('original url ===>' + baseurl); |
| | | return baseurl; |
| | | } |
| | | |
| | | public static String getLayoutSchema(Id recordTypeId, String objectType,String userMode){ |
| | | String urlPost = '/services/data/v53.0/sobjects/'+objectType+'/describe/layouts/'; |
| | | if(String.isNotEmpty(recordTypeId) && String.isNotBlank(recordTypeId)){ |
| | | public static String getLayoutSchema(Id recordTypeId, String objectType, String userMode) { |
| | | String urlPost = '/services/data/v53.0/sobjects/' + objectType + '/describe/layouts/'; |
| | | if (String.isNotEmpty(recordTypeId) && String.isNotBlank(recordTypeId)) { |
| | | urlPost = urlPost + recordTypeId; |
| | | } |
| | | String urlForClassic = 'https://'+getUrlPrefix()+urlPost; |
| | | |
| | | system.debug('URL Post:'+urlForClassic); |
| | | String urlForClassic = 'https://' + getUrlPrefix() + urlPost; |
| | | |
| | | system.debug('URL Post:' + urlForClassic); |
| | | HttpResponse resp = null; |
| | | HttpRequest req = new HttpRequest(); |
| | | req.setMethod('GET'); |
| | | if(userMode =='lightning'){ |
| | | req.setEndPoint('callout:SF_Rest_API'+urlPost); |
| | | system.debug('callout:SF_Rest_API'+urlPost); |
| | | }else if(userMode == 'classic'){ |
| | | req.setEndpoint(urlForClassic); |
| | | HttpRequest req = new HttpRequest(); |
| | | req.setMethod('GET'); |
| | | if (userMode == 'lightning') { |
| | | req.setEndPoint('callout:SF_Rest_API' + urlPost); |
| | | system.debug('callout:SF_Rest_API' + urlPost); |
| | | } else if (userMode == 'classic') { |
| | | req.setEndpoint(urlForClassic); |
| | | req.setHeader('Authorization', 'Bearer ' + UserInfo.getsessionid()); |
| | | } |
| | | Http client = new Http(); |
| | | } |
| | | Http client = new Http(); |
| | | resp = client.send(req); |
| | | system.debug('Schema Body:'+JSON.serialize(resp.getBody())); |
| | | system.debug('Schema Body:' + JSON.serialize(resp.getBody())); |
| | | return resp.getBody(); |
| | | } |
| | | |
| | | public static Id getDefaultRecordType(String ObjectName) { |
| | | public static Id getDefaultRecordType(String ObjectName) { |
| | | Map<String, Schema.SObjectType> GlobalDescribeMap = Schema.getGlobalDescribe(); |
| | | Schema.SObjectType obj = GlobalDescribeMap.get(ObjectName); |
| | | Schema.DescribeSObjectResult describeResult = obj.getDescribe(); |
| | | List<Schema.RecordTypeInfo> rtInfos = describeResult.getRecordTypeInfos(); |
| | | for(Schema.RecordTypeInfo rtInfo : rtInfos) { |
| | | if(rtInfo.DefaultRecordTypeMapping) { |
| | | return rtInfo.getRecordTypeId(); |
| | | for (Schema.RecordTypeInfo rtInfo : rtInfos) { |
| | | if (rtInfo.DefaultRecordTypeMapping) { |
| | | return rtInfo.getRecordTypeId(); |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | public class LayoutWrapper{ |
| | | @AuraEnabled public List<LayoutSection> layoutSections{set;get;} |
| | | @AuraEnabled public List<String> requiredFieldAPIList{set;get;} |
| | | @AuraEnabled public Map<String,String> fieldAPIToLabelMap{set;get;} |
| | | public class LayoutWrapper { |
| | | @AuraEnabled |
| | | public List<LayoutSection> layoutSections { get; set; } |
| | | @AuraEnabled |
| | | public List<String> requiredFieldAPIList { get; set; } |
| | | @AuraEnabled |
| | | public Map<String, String> fieldAPIToLabelMap { get; set; } |
| | | } |
| | | public class LayoutSection{ |
| | | @AuraEnabled public boolean useHeader {get;set;} |
| | | @AuraEnabled public String name {get;set;} |
| | | @AuraEnabled public boolean allowCollapse {get;set;} |
| | | @AuraEnabled public integer columns {get;set;} |
| | | @AuraEnabled public List<LayoutField> layoutFields {get;set;} |
| | | public class LayoutSection { |
| | | @AuraEnabled |
| | | public boolean useHeader { get; set; } |
| | | @AuraEnabled |
| | | public String name { get; set; } |
| | | @AuraEnabled |
| | | public boolean allowCollapse { get; set; } |
| | | @AuraEnabled |
| | | public integer columns { get; set; } |
| | | @AuraEnabled |
| | | public List<LayoutField> layoutFields { get; set; } |
| | | } |
| | | |
| | | public class LayoutField{ |
| | | @AuraEnabled public String fieldAPI {get;set;} |
| | | @AuraEnabled public String fieldLabel{set;get;} |
| | | @AuraEnabled public String fieldType{set;get;} |
| | | @AuraEnabled public boolean editableField {get;set;} |
| | | @AuraEnabled public boolean isRequired {get; set;} |
| | | @AuraEnabled public boolean isPlaceHolder {get;set;} |
| | | @AuraEnabled public String defaultValue{set;get;} |
| | | } |
| | | public static Integer ControllerUtil() { |
| | | Integer i = 0; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | return i; |
| | | } |
| | | |
| | | } |
| | | public class LayoutField { |
| | | @AuraEnabled |
| | | public String fieldAPI { get; set; } |
| | | @AuraEnabled |
| | | public String fieldLabel { get; set; } |
| | | @AuraEnabled |
| | | public String fieldType { get; set; } |
| | | @AuraEnabled |
| | | public boolean editableField { get; set; } |
| | | @AuraEnabled |
| | | public boolean isRequired { get; set; } |
| | | @AuraEnabled |
| | | public boolean isPlaceHolder { get; set; } |
| | | @AuraEnabled |
| | | public String defaultValue { get; set; } |
| | | } |
| | | public static Integer ControllerUtil() { |
| | | Integer i = 0; |
| | | |
| | | return i; |
| | | } |
| | | } |
| | |
| | | @isTest |
| | | private class LayoutDescriberHelperTest { |
| | | static testMethod void testMethod1() { |
| | | String userMode = 'classic';//classic lightning |
| | | String objectType = 'Contact'; |
| | | String recordTypeId = Schema.SObjectType.Contact.getRecordTypeInfosByDeveloperName().get('Doctor').getRecordTypeId(); |
| | | String userMode = 'classic'; //classic lightning |
| | | String objectType = 'Contact'; |
| | | String recordTypeId = Schema.SObjectType.Contact.getRecordTypeInfosByDeveloperName().get('Doctor').getRecordTypeId(); |
| | | System.debug('record type id ===>' + recordTypeId + ' object type===>' + objectType + ' userMode===>' + userMode); |
| | | boolean useHeader = false; |
| | | String baseurl = System.URL.getOrgDomainUrl().getHost(); |
| | | Map<String, object> detailsMap = new Map<String, object>(); |
| | | Map<String, object> detailsMap2 = new Map<String, object>(); |
| | | Map<String, object> detailsMap3 = new Map<String, object>(); |
| | | detailsMap.put('calculated', true); |
| | | detailsMap.put('autoNumber', false); |
| | | detailsMap.put('type', 'address'); |
| | | detailsMap2.put('calculated', false); |
| | | detailsMap2.put('autoNumber', false); |
| | | detailsMap2.put('type', 'repair'); |
| | | detailsMap3.put('calculated', false); |
| | | detailsMap3.put('autoNumber', false); |
| | | detailsMap3.put('type', 'repair'); |
| | | String fieldTypeDetail = (String) detailsMap.get('type'); |
| | | |
| | | Map<String,object> detailsMap = new Map<String,object>(); |
| | | Map<String,object> detailsMap2 = new Map<String,object>(); |
| | | Map<String,object> detailsMap3 = new Map<String,object>(); |
| | | detailsMap.put('calculated',true); |
| | | detailsMap.put('autoNumber',false); |
| | | detailsMap.put('type','address'); |
| | | detailsMap2.put('calculated',false); |
| | | detailsMap2.put('autoNumber',false); |
| | | detailsMap2.put('type','repair'); |
| | | detailsMap3.put('calculated',false); |
| | | detailsMap3.put('autoNumber',false); |
| | | detailsMap3.put('type','repair'); |
| | | List<Map<String, object>> componentMapList = new List<Map<String, object>>(); |
| | | List<Map<String, object>> componentMapList2 = new List<Map<String, object>>(); |
| | | List<Map<String, object>> componentMapList3 = new List<Map<String, object>>(); |
| | | Map<String, object> componentMap = new Map<String, object>(); |
| | | Map<String, object> componentMap2 = new Map<String, object>(); |
| | | Map<String, object> componentMap3 = new Map<String, object>(); |
| | | componentMap.put('value', 'Name'); |
| | | componentMap.put('type', 'Field'); |
| | | componentMap.put('details', detailsMap); |
| | | componentMapList.add(componentMap); |
| | | componentMap2.put('value', 'Name'); |
| | | componentMap2.put('type', 'Field'); |
| | | componentMap2.put('details', detailsMap2); |
| | | componentMapList2.add(componentMap2); |
| | | componentMap3.put('value', 'LastName'); |
| | | componentMap3.put('type', 'Field'); |
| | | componentMap3.put('details', detailsMap3); |
| | | componentMapList3.add(componentMap3); |
| | | String apiName = (String) componentMap.get('value'); |
| | | String fieldType = (String) componentMap.get('type'); |
| | | |
| | | List<Map<String, object>> componentMapList = new List<Map<String, object>>(); |
| | | List<Map<String, object>> componentMapList2 = new List<Map<String, object>>(); |
| | | List<Map<String, object>> componentMapList3 = new List<Map<String, object>>(); |
| | | Map<String, object> componentMap = new Map<String, object>(); |
| | | Map<String, object> componentMap2 = new Map<String, object>(); |
| | | Map<String, object> componentMap3 = new Map<String, object>(); |
| | | componentMap.put('value','Name'); |
| | | componentMap.put('type','Field'); |
| | | componentMap.put('details',detailsMap); |
| | | componentMapList.add(componentMap); |
| | | componentMap2.put('value','Name'); |
| | | componentMap2.put('type','Field'); |
| | | componentMap2.put('details',detailsMap2); |
| | | componentMapList2.add(componentMap2); |
| | | componentMap3.put('value','LastName'); |
| | | componentMap3.put('type','Field'); |
| | | componentMap3.put('details',detailsMap3); |
| | | componentMapList3.add(componentMap3); |
| | | List<Map<String, object>> layoutComponentsList = new List<Map<String, object>>(); |
| | | Map<String, object> layoutComponents = new Map<String, object>(); |
| | | layoutComponents.put('layoutComponents', componentMapList); |
| | | layoutComponents.put('label', 'Address'); |
| | | layoutComponents.put('placeholder', true); |
| | | layoutComponents.put('editableForNew', true); |
| | | layoutComponents.put('editableForUpdate', true); |
| | | layoutComponents.put('required', false); |
| | | layoutComponentsList.add(layoutComponents); |
| | | Map<String, object> layoutComponents2 = new Map<String, object>(); |
| | | layoutComponents2.put('layoutComponents', componentMapList2); |
| | | layoutComponents2.put('label', 'Repair'); |
| | | layoutComponents2.put('placeholder', true); |
| | | layoutComponents2.put('editableForNew', true); |
| | | layoutComponents2.put('editableForUpdate', true); |
| | | layoutComponents2.put('required', false); |
| | | layoutComponentsList.add(layoutComponents2); |
| | | Map<String, object> layoutComponents3 = new Map<String, object>(); |
| | | layoutComponents3.put('layoutComponents', componentMapList3); |
| | | layoutComponents3.put('label', 'Repair'); |
| | | layoutComponents3.put('placeholder', true); |
| | | layoutComponents3.put('editableForNew', true); |
| | | layoutComponents3.put('editableForUpdate', true); |
| | | layoutComponents3.put('required', false); |
| | | layoutComponentsList.add(layoutComponents3); |
| | | |
| | | List<Map<String, object>> layoutComponentsList = new List<Map<String, object>>(); |
| | | Map<String, object> layoutComponents = new Map<String, object>(); |
| | | layoutComponents.put('layoutComponents',componentMapList); |
| | | layoutComponents.put('label','Address'); |
| | | layoutComponents.put('placeholder',true); |
| | | layoutComponents.put('editableForNew',true); |
| | | layoutComponents.put('required',false); |
| | | layoutComponentsList.add(layoutComponents); |
| | | Map<String, object> layoutComponents2 = new Map<String, object>(); |
| | | layoutComponents2.put('layoutComponents',componentMapList2); |
| | | layoutComponents2.put('label','Repair'); |
| | | layoutComponents2.put('placeholder',true); |
| | | layoutComponents2.put('editableForNew',true); |
| | | layoutComponents2.put('required',false); |
| | | layoutComponentsList.add(layoutComponents2); |
| | | Map<String, object> layoutComponents3 = new Map<String, object>(); |
| | | layoutComponents3.put('layoutComponents',componentMapList3); |
| | | layoutComponents3.put('label','Repair'); |
| | | layoutComponents3.put('placeholder',true); |
| | | layoutComponents3.put('editableForNew',true); |
| | | layoutComponents3.put('required',false); |
| | | layoutComponentsList.add(layoutComponents3); |
| | | boolean placeholderF = (boolean) layoutComponents.get('placeholder'); |
| | | boolean isEditable = (boolean) layoutComponents.get('editableForUpdate') || (boolean) layoutComponents.get('editableForNew'); |
| | | System.debug('isEditable ===>' + isEditable); |
| | | List<Map<String, object>> itemList = new List<Map<String, object>>(); |
| | | Map<String, object> item = new Map<String, object>(); |
| | | item.put('layoutItems', layoutComponentsList); |
| | | itemList.add(item); |
| | | useHeader = true; |
| | | List<Map<String, object>> sectionList = new List<Map<String, object>>(); |
| | | Map<String, object> section = new Map<String, object>(); |
| | | section.put('heading', ''); |
| | | section.put('useHeading', useHeader); |
| | | section.put('columns', 1); |
| | | section.put('useCollapsibleSection', true); |
| | | section.put('layoutRows', itemList); |
| | | sectionList.add(section); |
| | | |
| | | |
| | | List<Map<String,object>> itemList = new List<Map<String,object>>(); |
| | | Map<String,object> item = new Map<String,object>(); |
| | | item.put('layoutItems',layoutComponentsList); |
| | | itemList.add(item); |
| | | |
| | | List<Map<String,object>> sectionList = new List<Map<String,object>>(); |
| | | Map<String,object> section = new Map<String,object>(); |
| | | section.put('heading',''); |
| | | section.put('useHeading',true); |
| | | section.put('columns',1); |
| | | section.put('useCollapsibleSection',true); |
| | | section.put('layoutRows',itemList); |
| | | sectionList.add(section); |
| | | |
| | | Map<String, Object> layoutSection = new Map<String,Object>(); |
| | | layoutSection.put('layouts','123'); |
| | | layoutSection.put('editLayoutSections',sectionList); |
| | | String layoutSectionJson = JSON.serialize(layoutSection); |
| | | LayoutDescriberHelper.ControllerUtil(); |
| | | Test.setMock(HttpCalloutMock.class, new TestDataUtility.BaseHttpMock(layoutSectionJson,'OK','200')); |
| | | |
| | | Map<String, Object> layoutSection = new Map<String, Object>(); |
| | | layoutSection.put('layouts', '123'); |
| | | layoutSection.put('editLayoutSections', sectionList); |
| | | String layoutSectionJson = JSON.serialize(layoutSection); |
| | | LayoutDescriberHelper.ControllerUtil(); |
| | | Test.setMock(HttpCalloutMock.class, new TestDataUtility.BaseHttpMock(layoutSectionJson, 'OK', '200')); |
| | | Test.startTest(); |
| | | LayoutDescriberHelper.describeSectionWithFieldsWrapper(recordTypeId,objectType,userMode); |
| | | LayoutDescriberHelper.describeSectionWithFieldsWrapper(null,objectType,userMode); |
| | | LayoutDescriberHelper.describeSectionWithFieldsWrapper(recordTypeId, objectType, userMode); |
| | | LayoutDescriberHelper.describeSectionWithFieldsWrapper(null, objectType, userMode); |
| | | LayoutDescriberHelper.describeSectionWithFields(recordTypeId, objectType, userMode); |
| | | LayoutDescriberHelper.getLayoutSchema(recordTypeId, objectType, userMode); |
| | | LayoutDescriberHelper.getUrlPrefix(); |
| | | Test.stopTest(); |
| | | } |
| | | } |
| | | } |
| | |
| | | public without sharing class LexArriveGoodsController { |
| | | //初始化 |
| | | @AuraEnabled |
| | | public static Results init(String arrType, String eSetId) { |
| | | Results results = new Results(); |
| | | results.isNoteStay = LexUtility.getIsNoteStay(); |
| | | try { |
| | | ArriveGoodsController arrController = new ArriveGoodsController(eSetId, arrType); |
| | | arrController.isLwc = true; |
| | | arrController.init(); |
| | | results.arrGoodCon = JSON.serialize(arrController); |
| | | results.coc = arrController.coc; |
| | | results.saveFLGbln = arrController.saveFLGbln; |
| | | results.returnFLGbln = arrController.ReturnFLGbln; |
| | | results.result = 'Success'; |
| | | } catch (Exception e) { |
| | | results.result = 'Fail'; |
| | | results.errorMsg = e.getLineNumber() + '---' + e.getMessage(); |
| | | } |
| | | return results; |
| | | } |
| | | |
| | | //搜索产品 |
| | | @AuraEnabled |
| | | public static Results searchProduct(String barcode, String arrControllerStr) { |
| | | Results results = new Results(); |
| | | try { |
| | | System.debug('arrControllerStr:' + arrControllerStr); |
| | | ArriveGoodsController arrController = (ArriveGoodsController) JSON.deserialize(arrControllerStr, ArriveGoodsController.class); |
| | | arrController.barcode = barcode; |
| | | arrController.returnError = null; |
| | | arrController.warningList = new List<String>(); |
| | | arrController.errorList = new List<String>(); |
| | | arrController.SearchPro(); |
| | | results.arrGoodCon = JSON.serialize(arrController); |
| | | if (arrController.returnError != null && arrController.returnError != '') { |
| | | results.result = 'Fail'; |
| | | results.errorMsgList = arrController.errorList; |
| | | results.warningMsgList = arrController.warningList; |
| | | results.errorMsg = arrController.returnError; |
| | | } else { |
| | | results.coc = arrController.coc; |
| | | results.saveFLGbln = arrController.saveFLGbln; |
| | | results.returnFLGbln = arrController.ReturnFLGbln; |
| | | results.detailsSummary = changeType1(arrController.detailsSummary); |
| | | results.consumableorderdetailsRecords = changeType1(arrController.ConsumableorderdetailsRecords); |
| | | results.showGoodsofReturnList = changeType1(arrController.ShowGoodsofReturnList); |
| | | results.consumableInventory = changeType1(arrController.consumableInventory); |
| | | results.consumableorderdetailsRecordserror = changeType1(arrController.ConsumableorderdetailsRecordserror); |
| | | results.errorMsgList = arrController.errorList; |
| | | results.warningMsgList = arrController.warningList; |
| | | results.result = 'Success'; |
| | | } |
| | | } catch (Exception e) { |
| | | results.result = 'Fail'; |
| | | results.errorMsg = e.getLineNumber() + '---' + e.getMessage() + '---' + e.getStackTraceString(); |
| | | } |
| | | return results; |
| | | } |
| | | |
| | | //到货确认 |
| | | @AuraEnabled |
| | | public static Results arriveGoodsConfim(String arrControllerStr) { |
| | | Results results = new Results(); |
| | | try { |
| | | ArriveGoodsController arrController = (ArriveGoodsController) JSON.deserialize(arrControllerStr, ArriveGoodsController.class); |
| | | arrController.returnError = null; |
| | | arrController.warningList = new List<String>(); |
| | | arrController.errorList = new List<String>(); |
| | | Pagereference page = arrController.ArriveGoodsConfim(); |
| | | results.arrGoodCon = JSON.serialize(arrController); |
| | | if (arrController.returnError != null && arrController.returnError != '') { |
| | | results.result = 'Fail'; |
| | | results.errorMsgList = arrController.errorList; |
| | | results.warningMsgList = arrController.warningList; |
| | | results.errorMsg = arrController.returnError; |
| | | } else { |
| | | if (arrController.urlType == 'UnabletoEdit') { |
| | | results.url = '/lexarrivegsdetails?EsetId=' + arrController.arriveId; |
| | | } |
| | | results.errorMsgList = arrController.errorList; |
| | | results.warningMsgList = arrController.warningList; |
| | | results.result = 'Success'; |
| | | } |
| | | } catch (Exception e) { |
| | | results.result = 'Fail'; |
| | | results.errorMsg = e.getLineNumber() + '---' + e.getMessage(); |
| | | } |
| | | return results; |
| | | } |
| | | |
| | | //登录返品 |
| | | @AuraEnabled |
| | | public static Results updateGoodsOfReturn(String arrControllerStr, String showGoodsofReturnListStr) { |
| | | Results results = new Results(); |
| | | try { |
| | | List<ConsumableorderdetailsInfo> showGoodsofReturnList = (List<ConsumableorderdetailsInfo>) JSON.deserialize( |
| | | showGoodsofReturnListStr, |
| | | List<ConsumableorderdetailsInfo>.class |
| | | ); |
| | | ArriveGoodsController arrController = (ArriveGoodsController) JSON.deserialize(arrControllerStr, ArriveGoodsController.class); |
| | | arrController.ShowGoodsofReturnList = changeType2(showGoodsofReturnList); |
| | | arrController.returnError = null; |
| | | arrController.warningList = new List<String>(); |
| | | arrController.errorList = new List<String>(); |
| | | StaticParameter.ConsumableOrderTrigger = true; //Add by Li Jun for bypass ConsumableOrderTrigger 20230616 |
| | | Pagereference page = arrController.UpdateGoodsOfReturn(); |
| | | results.arrGoodCon = JSON.serialize(arrController); |
| | | if (arrController.returnError != null && arrController.returnError != '') { |
| | | results.result = 'Fail'; |
| | | results.errorMsgList = arrController.errorList; |
| | | results.warningMsgList = arrController.warningList; |
| | | results.errorMsg = arrController.returnError; |
| | | } else { |
| | | if (arrController.urlType == 'ToReturnGoodsPage') { |
| | | results.url = '/detail/' + arrController.return_Order_id; |
| | | } |
| | | if (arrController.urlType == 'ToInventoryGoodsPage') { |
| | | results.url = '/detail/' + arrController.inventory_Order_id; |
| | | } |
| | | results.errorMsgList = arrController.errorList; |
| | | results.warningMsgList = arrController.warningList; |
| | | results.result = 'Success'; |
| | | } |
| | | } catch (Exception e) { |
| | | results.result = 'Fail'; |
| | | results.errorMsg = e.getLineNumber() + '---' + e.getMessage(); |
| | | } |
| | | return results; |
| | | } |
| | | |
| | | public static List<ConsumableorderdetailsInfo> changeType1(List<ArriveGoodsController.ConsumableorderdetailsInfo> conList) { |
| | | List<ConsumableorderdetailsInfo> conList1 = new List<ConsumableorderdetailsInfo>(); |
| | | if (conList != null) { |
| | | for (ArriveGoodsController.ConsumableorderdetailsInfo con : conList) { |
| | | ConsumableorderdetailsInfo con1 = new ConsumableorderdetailsInfo(); |
| | | con1.esd = con.esd; |
| | | con1.Prod = con.Prod; |
| | | con1.ProductName = con.ProductName; |
| | | con1.barCodeNo = con.barCodeNo; |
| | | con1.sterilizationlimitDate = con.sterilizationlimitDate; |
| | | con1.serialNoorLotNo = con.serialNoorLotNo; |
| | | con1.tracingCodeNo = con.tracingCodeNo; |
| | | con1.ReturnReason = con.ReturnReason; |
| | | con1.oldConsumableCount = con.oldConsumableCount; |
| | | con1.ErrorReason = con.ErrorReason; |
| | | con1.canEdit = con.canEdit; |
| | | con1.intMark = con.intMark; |
| | | con1.arriveAmount = con.arriveAmount; |
| | | con1.arrivedCount = con.arrivedCount; |
| | | con1.ReportProductExpirationDate = con.ReportProductExpirationDate; |
| | | conList1.add(con1); |
| | | } |
| | | } |
| | | return conList1; |
| | | } |
| | | |
| | | public static List<ArriveGoodsController.ConsumableorderdetailsInfo> changeType2(List<ConsumableorderdetailsInfo> conList) { |
| | | List<ArriveGoodsController.ConsumableorderdetailsInfo> conList1 = new List<ArriveGoodsController.ConsumableorderdetailsInfo>(); |
| | | if (conList != null) { |
| | | for (ConsumableorderdetailsInfo con : conList) { |
| | | ArriveGoodsController.ConsumableorderdetailsInfo con1 = new ArriveGoodsController.ConsumableorderdetailsInfo(); |
| | | con1.esd = con.esd; |
| | | con1.Prod = con.Prod; |
| | | con1.ProductName = con.ProductName; |
| | | con1.barCodeNo = con.barCodeNo; |
| | | con1.sterilizationlimitDate = con.sterilizationlimitDate; |
| | | con1.serialNoorLotNo = con.serialNoorLotNo; |
| | | con1.tracingCodeNo = con.tracingCodeNo; |
| | | con1.ReturnReason = con.ReturnReason; |
| | | con1.oldConsumableCount = con.oldConsumableCount; |
| | | con1.ErrorReason = con.ErrorReason; |
| | | con1.canEdit = con.canEdit; |
| | | con1.intMark = con.intMark; |
| | | con1.arriveAmount = con.arriveAmount; |
| | | con1.arrivedCount = con.arrivedCount; |
| | | con1.ReportProductExpirationDate = con.ReportProductExpirationDate; |
| | | conList1.add(con1); |
| | | } |
| | | } |
| | | return conList1; |
| | | } |
| | | |
| | | public class Results { |
| | | @AuraEnabled |
| | | public String result; |
| | | @AuraEnabled |
| | | public String errorMsg; |
| | | @AuraEnabled |
| | | public String url; |
| | | @AuraEnabled |
| | | public String arrGoodCon; |
| | | @AuraEnabled |
| | | public Consumable_order__c coc; |
| | | @AuraEnabled |
| | | public Boolean returnFLGbln; |
| | | @AuraEnabled |
| | | public Boolean saveFLGbln; |
| | | @AuraEnabled |
| | | public List<ConsumableorderdetailsInfo> detailsSummary; |
| | | @AuraEnabled |
| | | public List<ConsumableorderdetailsInfo> consumableorderdetailsRecords; |
| | | @AuraEnabled |
| | | public List<ConsumableorderdetailsInfo> showGoodsofReturnList; |
| | | @AuraEnabled |
| | | public List<ConsumableorderdetailsInfo> consumableInventory; |
| | | @AuraEnabled |
| | | public List<ConsumableorderdetailsInfo> consumableorderdetailsRecordserror; |
| | | @AuraEnabled |
| | | public List<String> errorMsgList; |
| | | @AuraEnabled |
| | | public List<String> warningMsgList; |
| | | @AuraEnabled |
| | | public Boolean isNoteStay; |
| | | } |
| | | |
| | | public class ConsumableorderdetailsInfo implements Comparable { |
| | | @AuraEnabled |
| | | public Consumable_order_details2__c esd { get; set; } |
| | | @AuraEnabled |
| | | public Product2__c Prod { get; set; } |
| | | @AuraEnabled |
| | | public String ProductName { get; set; } |
| | | @AuraEnabled |
| | | public String barCodeNo { get; set; } |
| | | @AuraEnabled |
| | | public Date sterilizationlimitDate { get; set; } |
| | | @AuraEnabled |
| | | public String serialNoorLotNo { get; set; } |
| | | @AuraEnabled |
| | | public String tracingCodeNo { get; set; } |
| | | @AuraEnabled |
| | | public String ReturnReason { get; set; } |
| | | @AuraEnabled |
| | | public String oldConsumableCount { get; set; } |
| | | @AuraEnabled |
| | | public String ErrorReason { get; set; } |
| | | @AuraEnabled |
| | | public boolean canEdit { get; set; } |
| | | @AuraEnabled |
| | | public Integer intMark { get; set; } |
| | | @AuraEnabled |
| | | public Decimal arriveAmount { get; set; } |
| | | @AuraEnabled |
| | | public Decimal arrivedCount { get; set; } |
| | | @AuraEnabled |
| | | public String ReportProductExpirationDate { get; set; } |
| | | |
| | | public ConsumableorderdetailsInfo() { |
| | | } |
| | | |
| | | // 排序 |
| | | public Integer compareTo(Object compareTo) { |
| | | return null; |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | @isTest |
| | | private class LexArriveGoodsControllerTest { |
| | | @IsTest |
| | | static void test1() { |
| | | NoteStay__c n = new NoteStay__c(Name = 'NoteStay', IsStay__c = true); |
| | | insert n; |
| | | List<RecordType> rectCo = [ |
| | | SELECT Id |
| | | FROM RecordType |
| | | WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '販売店' |
| | | ]; |
| | | if (rectCo.size() == 0) { |
| | | return; |
| | | } |
| | | // Profile prof = [select Id from Profile where Name ='901_经销商社区普通权限_2重验证(ET Email)']; |
| | | Profile prof = [ |
| | | SELECT Id |
| | | FROM Profile |
| | | WHERE Name = '901_经销商社区普通权限_2重验证(ET)' |
| | | ]; |
| | | |
| | | Account myAccount1 = new Account( |
| | | Name = 'Testaccount001', |
| | | Dealer_discount__c = 20, |
| | | RecordTypeId = rectCo[0].Id, |
| | | AgentCode_Ext__c = '9999996' |
| | | ); |
| | | Account myAccount2 = new Account( |
| | | Name = 'Testaccount002', |
| | | Dealer_discount__c = 10, |
| | | RecordTypeId = rectCo[0].Id, |
| | | AgentCode_Ext__c = '9999900', |
| | | Product_Limit_Date__c = 'Test01|2|4,Test02|3|5' |
| | | ); |
| | | insert new List<Account>{ myAccount1, myAccount2 }; |
| | | |
| | | Contact core = new Contact(email = 'jplumber@salesforce.com', firstname = 'Joe', lastname = 'Plumber', accountid = myAccount1.id); |
| | | insert core; |
| | | user MyUser_Test = new User( |
| | | ContactId = core.id, |
| | | Alias = 'newUser', |
| | | Email = 'newuser@testorg.com', |
| | | EmailEncodingKey = 'UTF-8', |
| | | LastName = 'TestUser', |
| | | LanguageLocaleKey = 'zh_CN', |
| | | LocaleSidKey = 'zh_CN', |
| | | ProfileId = prof.Id, |
| | | TimeZoneSidKey = 'Asia/Shanghai', |
| | | UserName = 'testUser@testorg.com', |
| | | UserPro_Type__c = 'ET' |
| | | ); |
| | | System.runAs(new User(Id = UserInfo.getUserId())) { |
| | | insert MyUser_Test; |
| | | } |
| | | |
| | | // User MyUser_Test = [select id,Contact.accountid from User WHERE ProfileId = :prof.Id and IsActive = true and UserPro_Type__c = 'ET' limit 1 ]; |
| | | // Product2 prod01 = new Product2(Name='Test01',ProductCode='Test01',Asset_Model_No__c = 'Test01',SFDA_Status__c = '有効',JANCODE__c = '04953170200311',Dealer_special_Object__c = true,Manual_Entry__c = false); |
| | | // Product2 prod02 = new Product2(Name='Test02',ProductCode='Test02',Asset_Model_No__c = 'Test02',SFDA_Status__c = '有効',JANCODE__c = '04953170200312',Dealer_special_Object__c = true,Manual_Entry__c = false); |
| | | // insert new Product2[] {prod01,prod02}; |
| | | System.runAs(MyUser_Test) { |
| | | Product2 prod01 = new Product2( |
| | | Name = 'Test01', |
| | | ProductCode = 'Test01', |
| | | Asset_Model_No__c = 'Test01', |
| | | RecordTypeId = '01210000000aMAFAA2', |
| | | SFDA_Status__c = '有効', |
| | | JANCODE__c = '04953170200311', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod02 = new Product2( |
| | | Name = 'Test02', |
| | | ProductCode = 'Test02', |
| | | Asset_Model_No__c = 'Test02', |
| | | RecordTypeId = '01210000000aMAFAA2', |
| | | SFDA_Status__c = '有効', |
| | | JANCODE__c = '04953170200312', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | insert new List<Product2>{ prod01, prod02 }; |
| | | Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'Test001', Product2__c = prod01.Id); |
| | | Product2__c pro2 = new Product2__c(Name = 'Pro002', OT_CODE_Text__c = 'Test002', Product2__c = prod02.Id); |
| | | insert new List<Product2__c>{ pro1, pro2 }; |
| | | //订单 |
| | | Consumable_order__c Order1 = new Consumable_order__c(); |
| | | Order1.Name = 'OCM_01_001'; |
| | | Order1.Order_status__c = '批准'; |
| | | Order1.Order_type__c = '订单'; |
| | | // Order1.Dealer_Info__c = myAccount1.id; |
| | | Order1.RecordTypeid = System.Label.RT_ConOrder_Delivery; |
| | | Order1.Total_num__c = 3; |
| | | Order1.OrderNumber_arrived__c = 1; |
| | | Order1.Delivery_detail_count__c = 1; |
| | | Order1.Order_ProType__c = 'ET'; |
| | | insert Order1; |
| | | |
| | | //订单明细 |
| | | //fahuo |
| | | Consumable_orderdetails__c Orderdet = new Consumable_orderdetails__c(); |
| | | Orderdet.Name = 'OCM_01_00101'; |
| | | Orderdet.Consumable_order__c = Order1.Id; |
| | | Orderdet.RecordTypeId = System.Label.RT_ConOrderDetail1_Order; |
| | | Orderdet.Consumable_Product__c = pro1.Id; |
| | | Orderdet.Consumable_count__c = 40; |
| | | insert Orderdet; |
| | | |
| | | //发货明细 |
| | | //到货正确信息 |
| | | Consumable_order_details2__c Orderdet1 = new Consumable_order_details2__c(); |
| | | Orderdet1.Name = 'OCM_01_001002'; |
| | | Orderdet1.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet1.Consumable_Product__c = pro1.Id; |
| | | Orderdet1.Asset_Model_No__c = 'Test01'; |
| | | Orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdet1.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRA'; |
| | | Orderdet1.TracingCode__c = 'BXJRA'; |
| | | |
| | | //取消产品 |
| | | Consumable_order_details2__c Orderdet2 = new Consumable_order_details2__c(); |
| | | Orderdet2.Name = 'OCM_01_001003'; |
| | | Orderdet2.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet2.Consumable_Product__c = pro1.Id; |
| | | Orderdet2.Asset_Model_No__c = 'Test01'; |
| | | //Orderdet2.Consumable_Arrived_order__c = Order1.Id; |
| | | Orderdet2.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdet2.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRB'; |
| | | Orderdet2.Cancellation_Date__c = Date.today(); |
| | | Orderdet2.TracingCode__c = 'BXJRB'; |
| | | //销售产品 |
| | | Consumable_order_details2__c Orderdet3 = new Consumable_order_details2__c(); |
| | | Orderdet3.Name = 'OCM_01_001004'; |
| | | Orderdet3.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet3.Consumable_Product__c = pro1.Id; |
| | | Orderdet3.Asset_Model_No__c = 'Test01'; |
| | | Orderdet3.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdet3.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRC'; |
| | | Orderdet3.Used_date__c = Date.today(); |
| | | Orderdet3.Arrive_date__c = Date.today(); |
| | | Orderdet3.TracingCode__c = 'BXJRC'; |
| | | //Orderdet3.Box_Piece__c = '盒'; |
| | | |
| | | //出库产品 |
| | | Consumable_order_details2__c Orderdet4 = new Consumable_order_details2__c(); |
| | | Orderdet4.Name = 'OCM_01_001005'; |
| | | Orderdet4.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet4.Consumable_Product__c = pro1.Id; |
| | | Orderdet4.Asset_Model_No__c = 'Test01'; |
| | | Orderdet4.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdet4.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRD'; |
| | | Orderdet4.Send_Date__c = Date.today(); |
| | | Orderdet4.Arrive_date__c = Date.today(); |
| | | Orderdet4.TracingCode__c = 'BXJRD'; |
| | | |
| | | //已到货产品 |
| | | Consumable_order_details2__c Orderdet5 = new Consumable_order_details2__c(); |
| | | Orderdet5.Name = 'OCM_01_001006'; |
| | | Orderdet5.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet5.Consumable_Product__c = pro1.Id; |
| | | Orderdet5.Asset_Model_No__c = 'Test01'; |
| | | Orderdet5.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdet5.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRE'; |
| | | Orderdet5.Arrive_date__c = Date.today(); |
| | | Orderdet5.TracingCode__c = 'BXJRE'; |
| | | |
| | | //发货明细 |
| | | //管理编码包含数字 |
| | | Consumable_order_details2__c Orderdet6 = new Consumable_order_details2__c(); |
| | | Orderdet6.Name = 'OCM_01_001002'; |
| | | Orderdet6.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet6.Consumable_Product__c = pro1.Id; |
| | | Orderdet6.Asset_Model_No__c = 'Test01'; |
| | | Orderdet6.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdet6.Bar_Code__c = '01049531702003111115120017181000105ZK250BX123'; |
| | | Orderdet6.TracingCode__c = 'BX123'; |
| | | |
| | | //发错库 未到货 |
| | | Consumable_order_details2__c Orderdets8 = new Consumable_order_details2__c(); |
| | | Orderdets8.Name = 'OCM_01_001011'; |
| | | Orderdets8.Consumable_order_minor__c = Order1.Id; |
| | | Orderdets8.Consumable_Product__c = pro1.Id; |
| | | Orderdets8.Asset_Model_No__c = 'Test01'; |
| | | Orderdets8.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdets8.Bar_Code__c = '01049531702003111115120017181000105ZK250BXsys'; |
| | | Orderdets8.Box_Piece__c = '盒'; |
| | | Orderdets8.TracingCode__c = 'BXsys'; |
| | | |
| | | insert new List<Consumable_order_details2__c>{ Orderdet1, Orderdet2, Orderdet3, Orderdet4, Orderdet5, Orderdet6, Orderdets8 }; |
| | | |
| | | List<Consumable_orderdetails__c> cod1 = [ |
| | | SELECT Id |
| | | FROM Consumable_orderdetails__c |
| | | WHERE Consumable_order__c = :Order1.Id |
| | | ]; |
| | | System.assertEquals(1, cod1.size()); |
| | | |
| | | PageReference page = new PageReference('/apex/ArriveGoods?Esetid=' + Order1.Id); |
| | | |
| | | System.Test.setCurrentPage(page); |
| | | ArriveGoodsController Controller = new ArriveGoodsController(); |
| | | //初始化测试 |
| | | System.Test.startTest(); |
| | | LexArriveGoodsController.Results re = LexArriveGoodsController.init('Arr', Order1.Id); |
| | | String arrControllerStr = re.arrGoodCon; |
| | | LexArriveGoodsController.searchProduct('', arrControllerStr); |
| | | re = LexArriveGoodsController.searchProduct( |
| | | '01049531702003111115120017181000105ZK250BXJRA\n01049531702003111115120017181000105ZK250BXsys\n01049531702003111115120017181000105ZK250BXsun\n01049531702003111115120017181000105ZK250BXJRB\n01049531702003111115120017181000105ZK250BXJRC\n01049531702003111115120017181000105ZK250BX111\n01049531702003111115120017181000105ZK250BXJRD\n01049531702003111115120017181000105ZK250BXJRE\n01049531702003111115120017181000105ZK250BXJRF\n01049531702003111115120017181000105ZK250BXJRG\n01049531702003111115120017181000105ZK250BX123', |
| | | arrControllerStr |
| | | ); |
| | | arrControllerStr = re.arrGoodCon; |
| | | LexArriveGoodsController.arriveGoodsConfim(arrControllerStr); |
| | | System.Test.stopTest(); |
| | | } |
| | | } |
| | | |
| | | @IsTest |
| | | static void test2() { |
| | | NoteStay__c n = new NoteStay__c(Name = 'NoteStay', IsStay__c = true); |
| | | insert n; |
| | | List<RecordType> rectCo = [ |
| | | SELECT Id |
| | | FROM RecordType |
| | | WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '販売店' |
| | | ]; |
| | | if (rectCo.size() == 0) { |
| | | return; |
| | | } |
| | | // Profile prof = [select Id from Profile where Name ='901_经销商社区普通权限_2重验证(ET Email)']; |
| | | Profile prof = [ |
| | | SELECT Id |
| | | FROM Profile |
| | | WHERE Name = '901_经销商社区普通权限_2重验证(ET)' |
| | | ]; |
| | | |
| | | Account myAccount2 = new Account( |
| | | name = 'Testaccount002', |
| | | Dealer_discount__c = 20, |
| | | RecordTypeId = rectCo[0].Id, |
| | | AgentCode_Ext__c = '9999900' |
| | | ); |
| | | Account myAccount1 = new Account(name = 'Testaccount001', Dealer_discount__c = 30, RecordTypeId = rectCo[0].Id); |
| | | insert new List<account>{ myAccount1, myAccount2 }; |
| | | |
| | | Contact core = new Contact(email = 'jplumber@salesforce.com', firstname = 'Joe', lastname = 'Plumber', accountid = myAccount1.id); |
| | | insert core; |
| | | user MyUser_Test = new User( |
| | | ContactId = core.id, |
| | | Alias = 'newUser', |
| | | Email = 'newuser@testorg.com', |
| | | EmailEncodingKey = 'UTF-8', |
| | | LastName = 'TestUser', |
| | | LanguageLocaleKey = 'zh_CN', |
| | | LocaleSidKey = 'zh_CN', |
| | | ProfileId = prof.Id, |
| | | TimeZoneSidKey = 'Asia/Shanghai', |
| | | UserName = 'testUser@testorg.com', |
| | | UserPro_Type__c = 'ET' |
| | | ); |
| | | System.runAs(new User(Id = UserInfo.getUserId())) { |
| | | insert MyUser_Test; |
| | | } |
| | | |
| | | // User MyUser_Test = [select id,Contact.accountid from User WHERE ProfileId = :prof.Id and IsActive = true and UserPro_Type__c = 'ET' limit 1 ]; |
| | | // Product2 prod01 = new Product2(Name='Test01',ProductCode='Test01',Asset_Model_No__c = 'Test01',SFDA_Status__c = '有効',JANCODE__c = '04953170200311',Dealer_special_Object__c = true,Manual_Entry__c = false); |
| | | // Product2 prod02 = new Product2(Name='Test02',ProductCode='Test02',Asset_Model_No__c = 'Test02',SFDA_Status__c = '有効',JANCODE__c = '04953170200312',Dealer_special_Object__c = true,Manual_Entry__c = false); |
| | | // insert new Product2[] {prod01,prod02}; |
| | | System.runAs(MyUser_Test) { |
| | | Product2 prod01 = new Product2( |
| | | Name = 'Test01', |
| | | ProductCode = 'Test01', |
| | | Asset_Model_No__c = 'Test01', |
| | | RecordTypeId = '01210000000aMAFAA2', |
| | | SFDA_Status__c = '有効', |
| | | JANCODE__c = '04953170200311', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod02 = new Product2( |
| | | Name = 'Test02', |
| | | ProductCode = 'Test02', |
| | | Asset_Model_No__c = 'Test02', |
| | | RecordTypeId = '01210000000aMAFAA2', |
| | | SFDA_Status__c = '有効', |
| | | JANCODE__c = '04953170200312', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | insert new List<Product2>{ prod01, prod02 }; |
| | | Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'Test001', Product2__c = prod01.Id); |
| | | Product2__c pro2 = new Product2__c(Name = 'Pro002', OT_CODE_Text__c = 'Test002', Product2__c = prod02.Id); |
| | | insert new List<Product2__c>{ pro1, pro2 }; |
| | | //订单 |
| | | |
| | | Consumable_order__c Order1 = new Consumable_order__c(); |
| | | Order1.Name = 'OCM_01_001'; |
| | | Order1.Order_status__c = '批准'; |
| | | Order1.Order_type__c = '订单'; |
| | | Order1.Dealer_Info__c = myAccount1.id; |
| | | Order1.RecordTypeid = System.Label.RT_ConOrder_Delivery; |
| | | |
| | | //返品订单 |
| | | |
| | | Consumable_order__c Order2 = new Consumable_order__c(); |
| | | Order2.Name = 'OCM_01_002'; |
| | | Order2.Order_status__c = '批准'; |
| | | Order2.Order_type__c = '返品'; |
| | | Order2.Dealer_Info__c = myAccount1.id; |
| | | Order2.RecordTypeid = System.Label.Dealer_Returned_Label; |
| | | insert Order1; |
| | | insert Order2; |
| | | |
| | | //订单明细 |
| | | //fahuo |
| | | Consumable_orderdetails__c Orderdet = new Consumable_orderdetails__c(); |
| | | Orderdet.Name = 'OCM_01_00101'; |
| | | Orderdet.Consumable_order__c = Order1.Id; |
| | | Orderdet.RecordTypeId = System.Label.RT_ConOrderDetail1_Order; |
| | | Orderdet.Consumable_Product__c = pro1.Id; |
| | | Orderdet.Consumable_count__c = 4; |
| | | insert Orderdet; |
| | | |
| | | //发货明细 |
| | | //没出库,没销售,就是在库 |
| | | Consumable_order_details2__c Orderdet1 = new Consumable_order_details2__c(); |
| | | Orderdet1.Name = 'OCM_01_001001'; |
| | | Orderdet1.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet1.Consumable_Product__c = pro1.Id; |
| | | Orderdet1.Asset_Model_No__c = 'Pro001'; |
| | | Orderdet1.Arrive_date__c = date.today(); |
| | | Orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdet1.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRF'; |
| | | Orderdet1.TracingCode__c = 'BXSYS'; |
| | | |
| | | //daohuo |
| | | Consumable_order_details2__c Orderdet2 = new Consumable_order_details2__c(); |
| | | Orderdet2.Name = 'OCM_01_001002'; |
| | | Orderdet2.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet2.Consumable_Product__c = pro1.Id; |
| | | Orderdet2.Asset_Model_No__c = 'Pro001'; |
| | | Orderdet2.Consumable_Arrived_order__c = Order1.Id; |
| | | Orderdet2.Arrive_date__c = date.today(); |
| | | Orderdet2.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdet2.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRI'; |
| | | Orderdet2.TracingCode__c = 'BXSYS'; |
| | | //sale |
| | | Consumable_order_details2__c Orderdet3 = new Consumable_order_details2__c(); |
| | | Orderdet3.Name = 'OCM_01_001003'; |
| | | Orderdet3.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet3.Consumable_Product__c = pro1.Id; |
| | | Orderdet3.Asset_Model_No__c = 'Pro001'; |
| | | Orderdet3.Consumable_Arrived_order__c = Order1.Id; |
| | | Orderdet3.Arrive_date__c = date.today(); |
| | | Orderdet3.Used_date__c = date.today(); |
| | | Orderdet3.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdet3.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRJ'; |
| | | Orderdet3.TracingCode__c = 'BXSYS'; |
| | | //出库 |
| | | Consumable_order_details2__c Orderdet4 = new Consumable_order_details2__c(); |
| | | Orderdet4.Name = 'OCM_01_001004'; |
| | | Orderdet4.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet4.Consumable_Product__c = pro1.Id; |
| | | Orderdet4.Asset_Model_No__c = 'Pro001'; |
| | | Orderdet4.Consumable_Arrived_order__c = Order1.Id; |
| | | Orderdet4.Consumable_Shipment_order__c = Order1.Id; |
| | | Orderdet4.Send_Date__c = date.today(); |
| | | Orderdet4.Arrive_date__c = date.today(); |
| | | Orderdet4.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdet4.Bar_Code__c = '01049531702003111115120017181000105ZK250BX222'; |
| | | Orderdet4.TracingCode__c = 'BXSYS'; |
| | | //quxiao |
| | | Consumable_order_details2__c Orderdet5 = new Consumable_order_details2__c(); |
| | | Orderdet5.Name = 'OCM_01_001005'; |
| | | Orderdet5.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet5.Consumable_Product__c = pro1.Id; |
| | | Orderdet5.Asset_Model_No__c = 'Pro001'; |
| | | Orderdet5.Cancellation_Date__c = Date.today(); |
| | | Orderdet5.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdet5.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRZ'; |
| | | Orderdet5.Box_Piece__c = '个'; |
| | | Orderdet5.TracingCode__c = 'BXSYS'; |
| | | //fanpin |
| | | Consumable_order_details2__c Orderdet6 = new Consumable_order_details2__c(); |
| | | Orderdet6.Name = 'OCM_01_001006'; |
| | | Orderdet6.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet6.Consumable_Product__c = pro1.Id; |
| | | Orderdet6.Asset_Model_No__c = 'Pro001'; |
| | | Orderdet6.Consumable_Return_order__c = Order2.Id; |
| | | Orderdet6.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdet6.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRA'; |
| | | Orderdet6.Box_Piece__c = '个'; |
| | | Orderdet6.TracingCode__c = 'BXSYS'; |
| | | |
| | | Consumable_order_details2__c Orderdet7 = new Consumable_order_details2__c(); |
| | | Orderdet7.Name = 'OCM_01_001001'; |
| | | Orderdet7.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet7.Consumable_Product__c = pro1.Id; |
| | | Orderdet7.Asset_Model_No__c = 'Pro001'; |
| | | Orderdet7.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdet7.Bar_Code__c = '01049531702003111115120017181000105ZK250BX333'; |
| | | Orderdet7.TracingCode__c = 'BXSYS'; |
| | | insert new List<Consumable_order_details2__c>{ Orderdet1, Orderdet2, Orderdet3, Orderdet4, Orderdet5, Orderdet6, Orderdet7 }; |
| | | ArriveGoodsController Controller = new ArriveGoodsController(); |
| | | System.Test.startTest(); |
| | | Controller.init(); |
| | | Controller.barcode = '01049531702003111115120017181000105ZK250BXAAA\n01049531702003111115120017181000105ZK250BXJRJ\n01049531702003111115120017181000105ZK250BXJRF\n01049531702003111115120017181000105ZK250BX123\n01049531702003111115120017181000105ZK250BX222'; |
| | | Controller.SearchPro(); |
| | | Controller.ArriveGoodsConfim(); |
| | | Controller.UpdateGoodsOfReturn(); |
| | | controller.getinventorysize(); |
| | | LexArriveGoodsController.Results re = LexArriveGoodsController.init('Arr', ''); |
| | | String arrControllerStr = re.arrGoodCon; |
| | | re = LexArriveGoodsController.searchProduct( |
| | | '01049531702003111115120017181000105ZK250BXAAA\n01049531702003111115120017181000105ZK250BXJRJ\n01049531702003111115120017181000105ZK250BXJRF\n01049531702003111115120017181000105ZK250BX123\n01049531702003111115120017181000105ZK250BX222', |
| | | arrControllerStr |
| | | ); |
| | | arrControllerStr = re.arrGoodCon; |
| | | LexArriveGoodsController.arriveGoodsConfim(arrControllerStr); |
| | | LexArriveGoodsController.updateGoodsOfReturn(re.arrGoodCon, JSON.serialize(re.showGoodsofReturnList)); |
| | | LexArriveGoodsController.ConsumableorderdetailsInfo con = new LexArriveGoodsController.ConsumableorderdetailsInfo(); |
| | | List<LexArriveGoodsController.ConsumableorderdetailsInfo> conList = new List<LexArriveGoodsController.ConsumableorderdetailsInfo>(); |
| | | conList.add(con); |
| | | LexArriveGoodsController.changeType2(conList); |
| | | System.Test.stopTest(); |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8" ?> |
| | | <ApexClass xmlns="http://soap.sforce.com/2006/04/metadata"> |
| | | <apiVersion>57.0</apiVersion> |
| | | <status>Active</status> |
| | | </ApexClass> |
| New file |
| | |
| | | @isTest |
| | | public class LexArriveGoodsControllerTest1 { |
| | | static void test1() { |
| | | NoteStay__c n = new NoteStay__c(Name = 'NoteStay', IsStay__c = true); |
| | | insert n; |
| | | List<RecordType> rectCo = [ |
| | | SELECT Id |
| | | FROM RecordType |
| | | WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '販売店' |
| | | ]; |
| | | if (rectCo.size() == 0) { |
| | | return; |
| | | } |
| | | // Profile prof = [select Id from Profile where Name ='901_经销商社区普通权限_2重验证(ET Email)']; |
| | | Profile prof = [ |
| | | SELECT Id |
| | | FROM Profile |
| | | WHERE Name = '901_经销商社区普通权限_2重验证(ET)' |
| | | ]; |
| | | |
| | | Account myAccount1 = new Account( |
| | | Name = 'Testaccount001', |
| | | Dealer_discount__c = 20, |
| | | RecordTypeId = rectCo[0].Id, |
| | | AgentCode_Ext__c = '9999996' |
| | | ); |
| | | Account myAccount2 = new Account( |
| | | Name = 'Testaccount002', |
| | | Dealer_discount__c = 10, |
| | | RecordTypeId = rectCo[0].Id, |
| | | AgentCode_Ext__c = '9999900', |
| | | Product_Limit_Date__c = 'Test01|2|4,Test02|3|5' |
| | | ); |
| | | insert new List<Account>{ myAccount1, myAccount2 }; |
| | | |
| | | Contact core = new Contact(email = 'jplumber@salesforce.com', firstname = 'Joe', lastname = 'Plumber', accountid = myAccount1.id); |
| | | insert core; |
| | | user MyUser_Test = new User( |
| | | ContactId = core.id, |
| | | Alias = 'newUser', |
| | | Email = 'newuser@testorg.com', |
| | | EmailEncodingKey = 'UTF-8', |
| | | LastName = 'TestUser', |
| | | LanguageLocaleKey = 'zh_CN', |
| | | LocaleSidKey = 'zh_CN', |
| | | ProfileId = prof.Id, |
| | | TimeZoneSidKey = 'Asia/Shanghai', |
| | | UserName = 'testUser@testorg.com', |
| | | UserPro_Type__c = 'ET' |
| | | ); |
| | | System.runAs(new User(Id = UserInfo.getUserId())) { |
| | | insert MyUser_Test; |
| | | } |
| | | |
| | | // User MyUser_Test = [select id,Contact.accountid from User WHERE ProfileId = :prof.Id and IsActive = true and UserPro_Type__c = 'ET' limit 1 ]; |
| | | // Product2 prod01 = new Product2(Name='Test01',ProductCode='Test01',Asset_Model_No__c = 'Test01',SFDA_Status__c = '有効',JANCODE__c = '04953170200311',Dealer_special_Object__c = true,Manual_Entry__c = false); |
| | | // Product2 prod02 = new Product2(Name='Test02',ProductCode='Test02',Asset_Model_No__c = 'Test02',SFDA_Status__c = '有効',JANCODE__c = '04953170200312',Dealer_special_Object__c = true,Manual_Entry__c = false); |
| | | // insert new Product2[] {prod01,prod02}; |
| | | System.runAs(MyUser_Test) { |
| | | Product2 prod01 = new Product2( |
| | | Name = 'Test01', |
| | | ProductCode = 'Test01', |
| | | Asset_Model_No__c = 'Test01', |
| | | RecordTypeId = '01210000000aMAFAA2', |
| | | SFDA_Status__c = '有効', |
| | | JANCODE__c = '04953170200311', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod02 = new Product2( |
| | | Name = 'Test02', |
| | | ProductCode = 'Test02', |
| | | Asset_Model_No__c = 'Test02', |
| | | RecordTypeId = '01210000000aMAFAA2', |
| | | SFDA_Status__c = '有効', |
| | | JANCODE__c = '04953170200312', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | insert new List<Product2>{ prod01, prod02 }; |
| | | Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'Test001', Product2__c = prod01.Id); |
| | | Product2__c pro2 = new Product2__c(Name = 'Pro002', OT_CODE_Text__c = 'Test002', Product2__c = prod02.Id); |
| | | insert new List<Product2__c>{ pro1, pro2 }; |
| | | //订单 |
| | | Consumable_order__c Order1 = new Consumable_order__c(); |
| | | Order1.Name = 'OCM_01_001'; |
| | | Order1.Order_status__c = '批准'; |
| | | Order1.Order_type__c = '订单'; |
| | | // Order1.Dealer_Info__c = myAccount1.id; |
| | | Order1.RecordTypeid = System.Label.RT_ConOrder_Delivery; |
| | | Order1.Total_num__c = 3; |
| | | Order1.OrderNumber_arrived__c = 1; |
| | | Order1.Delivery_detail_count__c = 1; |
| | | Order1.Order_ProType__c = 'ET'; |
| | | insert Order1; |
| | | |
| | | //订单明细 |
| | | //fahuo |
| | | Consumable_orderdetails__c Orderdet = new Consumable_orderdetails__c(); |
| | | Orderdet.Name = 'OCM_01_00101'; |
| | | Orderdet.Consumable_order__c = Order1.Id; |
| | | Orderdet.RecordTypeId = System.Label.RT_ConOrderDetail1_Order; |
| | | Orderdet.Consumable_Product__c = pro1.Id; |
| | | Orderdet.Consumable_count__c = 40; |
| | | insert Orderdet; |
| | | |
| | | //发货明细 |
| | | //到货正确信息 |
| | | Consumable_order_details2__c Orderdet1 = new Consumable_order_details2__c(); |
| | | Orderdet1.Name = 'OCM_01_001002'; |
| | | Orderdet1.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet1.Consumable_Product__c = pro1.Id; |
| | | Orderdet1.Asset_Model_No__c = 'Test01'; |
| | | Orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdet1.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRA'; |
| | | Orderdet1.TracingCode__c = 'BXJRA'; |
| | | |
| | | //取消产品 |
| | | Consumable_order_details2__c Orderdet2 = new Consumable_order_details2__c(); |
| | | Orderdet2.Name = 'OCM_01_001003'; |
| | | Orderdet2.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet2.Consumable_Product__c = pro1.Id; |
| | | Orderdet2.Asset_Model_No__c = 'Test01'; |
| | | //Orderdet2.Consumable_Arrived_order__c = Order1.Id; |
| | | Orderdet2.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdet2.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRB'; |
| | | Orderdet2.Cancellation_Date__c = Date.today(); |
| | | Orderdet2.TracingCode__c = 'BXJRB'; |
| | | //销售产品 |
| | | Consumable_order_details2__c Orderdet3 = new Consumable_order_details2__c(); |
| | | Orderdet3.Name = 'OCM_01_001004'; |
| | | Orderdet3.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet3.Consumable_Product__c = pro1.Id; |
| | | Orderdet3.Asset_Model_No__c = 'Test01'; |
| | | Orderdet3.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdet3.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRC'; |
| | | Orderdet3.Used_date__c = Date.today(); |
| | | Orderdet3.Arrive_date__c = Date.today(); |
| | | Orderdet3.TracingCode__c = 'BXJRC'; |
| | | //Orderdet3.Box_Piece__c = '盒'; |
| | | |
| | | //出库产品 |
| | | Consumable_order_details2__c Orderdet4 = new Consumable_order_details2__c(); |
| | | Orderdet4.Name = 'OCM_01_001005'; |
| | | Orderdet4.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet4.Consumable_Product__c = pro1.Id; |
| | | Orderdet4.Asset_Model_No__c = 'Test01'; |
| | | Orderdet4.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdet4.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRD'; |
| | | Orderdet4.Send_Date__c = Date.today(); |
| | | Orderdet4.Arrive_date__c = Date.today(); |
| | | Orderdet4.TracingCode__c = 'BXJRD'; |
| | | |
| | | //已到货产品 |
| | | Consumable_order_details2__c Orderdet5 = new Consumable_order_details2__c(); |
| | | Orderdet5.Name = 'OCM_01_001006'; |
| | | Orderdet5.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet5.Consumable_Product__c = pro1.Id; |
| | | Orderdet5.Asset_Model_No__c = 'Test01'; |
| | | Orderdet5.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdet5.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRE'; |
| | | Orderdet5.Arrive_date__c = Date.today(); |
| | | Orderdet5.TracingCode__c = 'BXJRE'; |
| | | |
| | | //发货明细 |
| | | //管理编码包含数字 |
| | | Consumable_order_details2__c Orderdet6 = new Consumable_order_details2__c(); |
| | | Orderdet6.Name = 'OCM_01_001002'; |
| | | Orderdet6.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet6.Consumable_Product__c = pro1.Id; |
| | | Orderdet6.Asset_Model_No__c = 'Test01'; |
| | | Orderdet6.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdet6.Bar_Code__c = '01049531702003111115120017181000105ZK250BX123'; |
| | | Orderdet6.TracingCode__c = 'BX123'; |
| | | |
| | | //发错库 未到货 |
| | | Consumable_order_details2__c Orderdets8 = new Consumable_order_details2__c(); |
| | | Orderdets8.Name = 'OCM_01_001011'; |
| | | Orderdets8.Consumable_order_minor__c = Order1.Id; |
| | | Orderdets8.Consumable_Product__c = pro1.Id; |
| | | Orderdets8.Asset_Model_No__c = 'Test01'; |
| | | Orderdets8.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | Orderdets8.Bar_Code__c = '01049531702003111115120017181000105ZK250BXsys'; |
| | | Orderdets8.Box_Piece__c = '盒'; |
| | | Orderdets8.TracingCode__c = 'BXsys'; |
| | | |
| | | insert new List<Consumable_order_details2__c>{ Orderdet1, Orderdet2, Orderdet3, Orderdet4, Orderdet5, Orderdet6, Orderdets8 }; |
| | | |
| | | List<Consumable_orderdetails__c> cod1 = [ |
| | | SELECT Id |
| | | FROM Consumable_orderdetails__c |
| | | WHERE Consumable_order__c = :Order1.Id |
| | | ]; |
| | | System.assertEquals(1, cod1.size()); |
| | | |
| | | PageReference page = new PageReference('/apex/ArriveGoods?Esetid=' + Order1.Id); |
| | | |
| | | System.Test.setCurrentPage(page); |
| | | ArriveGoodsController Controller = new ArriveGoodsController(); |
| | | //初始化测试 |
| | | System.Test.startTest(); |
| | | LexArriveGoodsController.Results re = LexArriveGoodsController.init('Arr', Order1.Id); |
| | | String arrControllerStr = re.arrGoodCon; |
| | | LexArriveGoodsController.searchProduct('', arrControllerStr); |
| | | re = LexArriveGoodsController.searchProduct( |
| | | '01049531702003111115120017181000105ZK250BXJRA\n01049531702003111115120017181000105ZK250BXsys\n01049531702003111115120017181000105ZK250BXsun\n01049531702003111115120017181000105ZK250BXJRB\n01049531702003111115120017181000105ZK250BXJRC\n01049531702003111115120017181000105ZK250BX111\n01049531702003111115120017181000105ZK250BXJRD\n01049531702003111115120017181000105ZK250BXJRE\n01049531702003111115120017181000105ZK250BXJRF\n01049531702003111115120017181000105ZK250BXJRG\n01049531702003111115120017181000105ZK250BX123', |
| | | arrControllerStr |
| | | ); |
| | | arrControllerStr = re.arrGoodCon; |
| | | LexArriveGoodsController.arriveGoodsConfim(arrControllerStr); |
| | | System.Test.stopTest(); |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8" ?> |
| | | <ApexClass xmlns="http://soap.sforce.com/2006/04/metadata"> |
| | | <apiVersion>57.0</apiVersion> |
| | | <status>Active</status> |
| | | </ApexClass> |
| | |
| | | public without sharing class LexArriveGoodsMainController { |
| | | /*****************検索用******************/ |
| | | //经销商产品分类 |
| | | public static String agencyProType {get;set;} |
| | | public static String agencyProType { get; set; } |
| | | // public static Consumable_order__c coc { get; set; } |
| | | public static String category1 { get; set; } |
| | | private static String cate1ForSort = null; |
| | | private static Date cate2ForSort = Date.today(); |
| | | private static Date cate2 = Date.today(); |
| | | private static String[] columus = new String[]{ 'Product2__c.Name'}; |
| | | private static String[] columus = new List<String>{ 'Product2__c.Name' }; |
| | | // 产品 ID |
| | | private static String ESetId = ''; |
| | | private static String accountid = null; |
| | |
| | | // 登录者工作地 |
| | | private static String userWorkLocation; |
| | | // 20200904 ljh 汇总使用 start |
| | | public static Integer Total_num {get; set;} |
| | | public static Integer OrderNumber_arrived {get; set;} |
| | | public static Integer Delivery_detail_count {get; set;} |
| | | public static Integer OrderNumber_notarrive {get; set;} |
| | | public static Integer More_than_seven_days {get; set;} |
| | | public static Integer Total_num { get; set; } |
| | | public static Integer OrderNumber_arrived { get; set; } |
| | | public static Integer Delivery_detail_count { get; set; } |
| | | public static Integer OrderNumber_notarrive { get; set; } |
| | | public static Integer More_than_seven_days { get; set; } |
| | | |
| | | @AuraEnabled |
| | | public static Results init(){ |
| | | public static Results init() { |
| | | Results results = new Results(); |
| | | results.isNoteStay = LexUtility.getIsNoteStay(); |
| | | try { |
| | | List<String> idList = new List<String>(); |
| | | idList.add('a2K10000002zHyDEAU'); |
| | | idList.add('a2K10000002zIJEEA2'); |
| | | idList.add('a2K10000002zK9rEAE'); |
| | | idList.add('a2K10000004AKGBEA4'); |
| | | idList.add('a2K10000004ALqeEAG'); |
| | | idList.add('a2K10000004AMmrEAG'); |
| | | idList.add('a2K10000004ANvDEAW'); |
| | | idList.add('a2K10000004AOVxEAO'); |
| | | idList.add('a2K10000004AOJZEA4'); |
| | | idList.add('a2K10000004AOLuEAO'); |
| | | idList.add('a2K10000004AOLfEAO'); |
| | | // coc = new Consumable_order__c(); |
| | | String userId = UserInfo.getUserId(); |
| | | List<user> Useracc = New List<user>(); |
| | | Useracc = [select accountid, Work_Location__c,UserPro_Type__c from user where id =:userId]; |
| | | List<user> Useracc = new List<user>(); |
| | | Useracc = [ |
| | | SELECT accountid, Work_Location__c, UserPro_Type__c |
| | | FROM user |
| | | WHERE id = :userId |
| | | ]; |
| | | accountid = Useracc[0].accountid; |
| | | userWorkLocation = Useracc[0].Work_Location__c; |
| | | agencyProType = Useracc[0].UserPro_Type__c; |
| | | if(String.isBlank(Useracc[0].UserPro_Type__c)){ |
| | | if (String.isBlank(Useracc[0].UserPro_Type__c)) { |
| | | agencyProType = 'ET'; |
| | | } |
| | | // 获得订单一览 |
| | |
| | | for (String s : column) { |
| | | soql += ',' + s; |
| | | } |
| | | soql += ' from Consumable_order__c where Order_type__c = \''+'订单'+'\' and recordtypeid =\'' + System.Label.RT_ConOrder_Delivery + '\' and Dealer_Info__c =\'' + accountid +'\' and Order_ProType__c =\'' + agencyProType +'\' and (OrderNumber_notarrive__c > 0 or Delivery_detail_count__c >0) and Order_Owner_WorkLocal__c = \'' + userWorkLocation + '\' and showFalseNotshowTrue__c = false order by Deliver_date__c'; // |
| | | soql += |
| | | ' from Consumable_order__c where Order_type__c = \'' + |
| | | '订单' + |
| | | '\' and recordtypeid =\'' + |
| | | System.Label.RT_ConOrder_Delivery + |
| | | '\' and Dealer_Info__c =\'' + |
| | | accountid + |
| | | '\' and Order_ProType__c =\'' + |
| | | agencyProType + |
| | | '\' and (OrderNumber_notarrive__c > 0 or Delivery_detail_count__c >0) and Order_Owner_WorkLocal__c = \'' + |
| | | userWorkLocation + |
| | | '\' and showFalseNotshowTrue__c = false order by Deliver_date__c'; // |
| | | // soql = 'select id,name,ContractNo__c,Total_num__c,OrderNumber_arrived__c,Delivery_detail_count__c,OrderNumber_notarrive__c,More_than_seven_days__c,Shipment_date__c,First_Delivery__c from Consumable_order__c where id in :idList'; |
| | | raesList = Database.query(soql); |
| | | //20200904 ljh add start |
| | |
| | | Delivery_detail_count = 0; |
| | | OrderNumber_notarrive = 0; |
| | | More_than_seven_days = 0; |
| | | System.debug('-----1------'+raesList); |
| | | for(Consumable_order__c conorder :raesList){ |
| | | if(conorder.Total_num__c != null){ |
| | | Total_num += (Integer)conorder.Total_num__c; |
| | | System.debug('-----1------' + raesList); |
| | | for (Consumable_order__c conorder : raesList) { |
| | | if (conorder.Total_num__c != null) { |
| | | Total_num += (Integer) conorder.Total_num__c; |
| | | } |
| | | if(conorder.OrderNumber_arrived__c != null){ |
| | | OrderNumber_arrived += (Integer)conorder.OrderNumber_arrived__c; |
| | | if (conorder.OrderNumber_arrived__c != null) { |
| | | OrderNumber_arrived += (Integer) conorder.OrderNumber_arrived__c; |
| | | } |
| | | if(conorder.Delivery_detail_count__c != null){ |
| | | Delivery_detail_count += (Integer)conorder.Delivery_detail_count__c; |
| | | if (conorder.Delivery_detail_count__c != null) { |
| | | Delivery_detail_count += (Integer) conorder.Delivery_detail_count__c; |
| | | } |
| | | if(conorder.OrderNumber_notarrive__c != null){ |
| | | OrderNumber_notarrive += (Integer)conorder.OrderNumber_notarrive__c; |
| | | if (conorder.OrderNumber_notarrive__c != null) { |
| | | OrderNumber_notarrive += (Integer) conorder.OrderNumber_notarrive__c; |
| | | } |
| | | if(conorder.More_than_seven_days__c != null){ |
| | | More_than_seven_days += (Integer)conorder.More_than_seven_days__c; |
| | | if (conorder.More_than_seven_days__c != null) { |
| | | More_than_seven_days += (Integer) conorder.More_than_seven_days__c; |
| | | } |
| | | } |
| | | results.agencyProType = agencyProType; |
| | |
| | | } |
| | | |
| | | @AuraEnabled |
| | | public static Results searchConsumableorderdetails(String category1Str, Date cate2Str, String accountidStr, String userWorkLocationStr, String agencyProTypeStr){ |
| | | public static Results searchConsumableorderdetails( |
| | | String category1Str, |
| | | Date cate2Str, |
| | | String accountidStr, |
| | | String userWorkLocationStr, |
| | | String agencyProTypeStr |
| | | ) { |
| | | Results results = new Results(); |
| | | category1 = category1Str; |
| | | cate2 = cate2Str; |
| | |
| | | for (String s : column) { |
| | | soql += ',' + s; |
| | | } |
| | | soql += ' from Consumable_order__c where Order_type__c = \''+'订单'+'\' and recordtypeid =\'' + System.Label.RT_ConOrder_Delivery + '\' and Dealer_Info__c =\'' + accountid +'\' and (OrderNumber_notarrive__c > 0 or Delivery_detail_count__c >0) '; |
| | | soql += |
| | | ' from Consumable_order__c where Order_type__c = \'' + |
| | | '订单' + |
| | | '\' and recordtypeid =\'' + |
| | | System.Label.RT_ConOrder_Delivery + |
| | | '\' and Dealer_Info__c =\'' + |
| | | accountid + |
| | | '\' and (OrderNumber_notarrive__c > 0 or Delivery_detail_count__c >0) '; |
| | | soql += 'and Order_Owner_WorkLocal__c = \'' + userWorkLocation + '\' '; |
| | | soql += 'and showFalseNotshowTrue__c = false'; |
| | | if (!String.isBlank(category1)) { |
| | | soql += ' and Name like \'%' + String.escapeSingleQuotes(category1.replaceAll('%', '\\%')) + '%\' '; |
| | | } |
| | | if(cate2 != null){ |
| | | if (cate2 != null) { |
| | | soql += ' and Shipment_date__c = :cate2 '; |
| | | } |
| | | soql += ' and Order_ProType__c =\'' + agencyProType +'\''; |
| | | soql += ' and Order_ProType__c =\'' + agencyProType + '\''; |
| | | soql += ' order by Deliver_date__c'; |
| | | system.debug('====soql:' + soql); |
| | | raesList = Database.query(soql); |
| | |
| | | @AuraEnabled |
| | | public Boolean isNoteStay; |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | @istest |
| | | public class LexArriveGoodsMainControllerTest { |
| | | @IsTest |
| | | static void lexArriveGoodsMainControllerTest1() { |
| | | User myUser_test = new User(); |
| | | Account myAccount1; |
| | | Contact core; |
| | | User currentUser = [SELECT Id FROM User WHERE Id = :UserInfo.getUserId()]; |
| | | NoteStay__c n = new NoteStay__c(Name = 'NoteStay', IsStay__c = true); |
| | | insert n; |
| | | System.runAs(currentUser) { |
| | | Profile prof = [ |
| | | SELECT Id |
| | | FROM Profile |
| | | WHERE Name = '901_经销商社区普通权限_2重验证(ET)' |
| | | ]; |
| | | List<RecordType> rectCo = [ |
| | | SELECT Id |
| | | FROM RecordType |
| | | WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '販売店' |
| | | ]; |
| | | if (rectCo.size() == 0) { |
| | | return; |
| | | } |
| | | myAccount1 = new Account(name = 'testaccount001', RecordTypeId = rectCo[0].Id, AgentCode_Ext__c = '9999900'); |
| | | insert myAccount1; |
| | | core = new Contact(email = 'jplumber@salesforce.com', firstname = 'Joe', lastname = 'Plumber', accountid = myAccount1.id); |
| | | insert core; |
| | | myUser_test = new User( |
| | | ContactId = core.id, |
| | | Alias = 'newUser', |
| | | Email = 'newuser@testorg.com', |
| | | EmailEncodingKey = 'UTF-8', |
| | | LastName = 'testUser', |
| | | LanguageLocaleKey = 'zh_CN', |
| | | LocaleSidKey = 'zh_CN', |
| | | ProfileId = prof.Id, |
| | | TimeZoneSidKey = 'Asia/Shanghai', |
| | | UserName = 'testUser@testorg.com', |
| | | Work_Location__c = '北京' |
| | | ); |
| | | insert myUser_test; |
| | | } |
| | | System.runAs(myUser_test) { |
| | | Product2 prod01 = new Product2( |
| | | Name = 'Test01', |
| | | ProductCode = 'Test01', |
| | | Asset_Model_No__c = 'Test01', |
| | | SFDA_Status__c = '有効', |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod02 = new Product2( |
| | | Name = 'Test02', |
| | | ProductCode = 'Test02', |
| | | Asset_Model_No__c = 'Test02', |
| | | SFDA_Status__c = '有効', |
| | | Manual_Entry__c = false |
| | | ); |
| | | insert new List<Product2>{ prod01, prod02 }; |
| | | Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'Test001', Product2__c = prod01.Id); |
| | | Product2__c pro2 = new Product2__c(Name = 'Pro002', OT_CODE_Text__c = 'Test002', Product2__c = prod02.Id); |
| | | insert new List<Product2__c>{ pro1, pro2 }; |
| | | //订单 |
| | | Consumable_order__c Order1 = new Consumable_order__c( |
| | | Name = 'OCM_01_001', |
| | | RecordTypeId = System.Label.RT_ConOrder_Delivery, |
| | | Order_type__c = '订单', |
| | | Dealer_info__c = myAccount1.Id, |
| | | Order_ProType__c = 'ET' |
| | | ); |
| | | Consumable_order__c Order2 = new Consumable_order__c( |
| | | Name = 'OCM_01_002', |
| | | RecordTypeId = System.Label.RT_ConOrder_Delivery, |
| | | Order_type__c = '订单', |
| | | Dealer_info__c = myAccount1.Id, |
| | | Order_ProType__c = 'ET' |
| | | ); |
| | | insert new List<Consumable_order__c>{ Order1, Order2 }; |
| | | |
| | | //明细1 |
| | | Consumable_orderdetails__c createDetail = new Consumable_orderdetails__c(); |
| | | createDetail.name = 'Too001'; |
| | | createDetail.Consumable_Product__c = pro1.id; |
| | | createDetail.Dealer_Custom_Price__c = 999.00; |
| | | createDetail.Consumable_count__c = 3; |
| | | createDetail.Consumable_order__c = Order1.id; |
| | | createDetail.RecordTypeid = System.Label.RT_ConOrderDetail1_Order; |
| | | insert createDetail; |
| | | Consumable_orderdetails__c createDetail1 = new Consumable_orderdetails__c(); |
| | | createDetail1.name = 'Too002'; |
| | | createDetail1.Consumable_Product__c = pro2.id; |
| | | createDetail1.Consumable_order__c = Order2.id; |
| | | createDetail1.Dealer_Custom_Price__c = 999.00; |
| | | createDetail1.Consumable_count__c = 4; |
| | | createDetail1.RecordTypeid = System.Label.RT_ConOrderDetail1_Order; |
| | | insert createDetail1; |
| | | |
| | | //订单明细 |
| | | Consumable_order_details2__c Orderdet1 = new Consumable_order_details2__c( |
| | | Name = 'OCM_01_001001', |
| | | Consumable_order_minor__c = Order1.Id, |
| | | Arrive_date__c = Date.today(), |
| | | Consumable_Product__c = pro1.id, |
| | | RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery |
| | | ); |
| | | Consumable_order_details2__c Orderdet2 = new Consumable_order_details2__c( |
| | | Name = 'OCM_01_001002', |
| | | Consumable_order_minor__c = Order2.Id, |
| | | Arrive_date__c = Date.today(), |
| | | Consumable_Product__c = pro2.id, |
| | | RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery |
| | | ); |
| | | Consumable_order_details2__c Orderdet3 = new Consumable_order_details2__c( |
| | | Name = 'OCM_01_001003', |
| | | Consumable_order_minor__c = Order1.Id, |
| | | //Arrive_date__c = Date.today(), |
| | | Consumable_Product__c = pro1.id, |
| | | RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery |
| | | ); |
| | | Consumable_order_details2__c Orderdet4 = new Consumable_order_details2__c( |
| | | Name = 'OCM_01_001004', |
| | | Consumable_order_minor__c = Order2.Id, |
| | | Arrive_date__c = Date.today(), |
| | | Consumable_Product__c = pro2.id, |
| | | RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery |
| | | ); |
| | | insert new List<Consumable_order_details2__c>{ Orderdet1, Orderdet2, Orderdet3, Orderdet4 }; |
| | | |
| | | LexArriveGoodsMainController.init(); |
| | | LexArriveGoodsMainController.searchConsumableorderdetails('Too001', null, myAccount1.Id, '北京', 'ET'); |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8" ?> |
| | | <ApexClass xmlns="http://soap.sforce.com/2006/04/metadata"> |
| | | <apiVersion>57.0</apiVersion> |
| | | <status>Active</status> |
| | | </ApexClass> |
| | |
| | | try { |
| | | //取经销商信息 |
| | | String userId = UserInfo.getUserId(); |
| | | List<user> useracc = New List<user>(); |
| | | useracc = [select accountid from user where id =:userId]; |
| | | List<user> useracc = new List<user>(); |
| | | useracc = [SELECT accountid FROM user WHERE id = :userId]; |
| | | accountid = useracc[0].accountid; |
| | | List<Consumable_order__c> rs = New List<Consumable_order__c>(); |
| | | if(eSetId == NULL || eSetId == '') { |
| | | |
| | | }else { |
| | | rs = [SELECT id,name,Order_reason__c,Arrive_Order__c,Arrive_Order__r.Total_num__c,Arrive_Order__r.IsShipment__c,Arrive_Order__r.Name, |
| | | recordtypeid,Order_status__c,Deliver_date__c,Arrive_total_amount__c |
| | | FROM Consumable_order__c |
| | | WHERE id =:eSetId]; |
| | | coc = new Consumable_order__c(); |
| | | if(rs.size()>0){ |
| | | List<Consumable_order__c> rs = new List<Consumable_order__c>(); |
| | | if (eSetId == null || eSetId == '') { |
| | | } else { |
| | | rs = [ |
| | | SELECT |
| | | id, |
| | | name, |
| | | Order_reason__c, |
| | | Arrive_Order__c, |
| | | Arrive_Order__r.Total_num__c, |
| | | Arrive_Order__r.IsShipment__c, |
| | | Arrive_Order__r.Name, |
| | | recordtypeid, |
| | | Order_status__c, |
| | | Deliver_date__c, |
| | | Arrive_total_amount__c |
| | | FROM Consumable_order__c |
| | | WHERE id = :eSetId |
| | | ]; |
| | | coc = new Consumable_order__c(); |
| | | if (rs.size() > 0) { |
| | | coc = rs[0]; |
| | | orderallcount = coc.Arrive_Order__r.Total_num__c; |
| | | } |
| | | if(coc.Arrive_Order__c == null){ |
| | | if (coc.Arrive_Order__c == null) { |
| | | arrivetoorder = true; |
| | | } |
| | | List<Consumable_order_details2__c> consumablearriveproductdetailsSelected = [SELECT Id,Dealer_Arrive__c,Bar_Code__c, RecordTypeid, Name,Consumable_Product__r.Name__c, |
| | | Consumable_Product__c,Consumable_Product__r.Name,Dealer_Saled__c, |
| | | Sterilization_limit__c,Deliver_date__c, |
| | | Intra_Trade_List_RMB__c,Asset_Model_No__c,Arrive_Date__c,Send_Date__c, |
| | | Consumable_Product__r.SFDA_Status__c, |
| | | Consumable_Product__r.Product2__r.Packing_list_manual__c, |
| | | Consumable_Product__r.Product2__r.SFDA_Approbation_No__c, |
| | | Consumable_Product__r.Product2__r.SFDA_Expiration_Date__c |
| | | FROM Consumable_order_details2__c |
| | | WHERE Consumable_Arrived_order__c = :eSetId |
| | | ORDER BY Name ]; |
| | | List<Consumable_order_details2__c> consumablearriveproductdetailsSelected = [ |
| | | SELECT |
| | | Id, |
| | | Dealer_Arrive__c, |
| | | Bar_Code__c, |
| | | RecordTypeid, |
| | | Name, |
| | | Consumable_Product__r.Name__c, |
| | | Consumable_Product__c, |
| | | Consumable_Product__r.Name, |
| | | Dealer_Saled__c, |
| | | Sterilization_limit__c, |
| | | Deliver_date__c, |
| | | Intra_Trade_List_RMB__c, |
| | | Asset_Model_No__c, |
| | | Arrive_Date__c, |
| | | Send_Date__c, |
| | | Consumable_Product__r.SFDA_Status__c, |
| | | Consumable_Product__r.Product2__r.Packing_list_manual__c, |
| | | Consumable_Product__r.Product2__r.SFDA_Approbation_No__c, |
| | | Consumable_Product__r.Product2__r.SFDA_Expiration_Date__c |
| | | FROM Consumable_order_details2__c |
| | | WHERE Consumable_Arrived_order__c = :eSetId |
| | | ORDER BY Name |
| | | ]; |
| | | for (Integer i = 0; i < consumablearriveproductdetailsSelected.size(); i++) { |
| | | consumableorderdetailsRecords.add(new ConsumableorderdetailsInfo(consumablearriveproductdetailsSelected[i])); |
| | | } |
| | | consumableorderdetailsRecords.add(new ConsumableorderdetailsInfo(consumablearriveproductdetailsSelected[i])); |
| | | } |
| | | } |
| | | for(ConsumableorderdetailsInfo bss : consumableorderdetailsRecords){ |
| | | for (ConsumableorderdetailsInfo bss : consumableorderdetailsRecords) { |
| | | bss.packing_list = bss.Prod.Product2__r.Packing_list_manual__c; |
| | | bss.approbation_No = bss.Prod.Product2__r.SFDA_Approbation_No__c; |
| | | //update by rentx 20210622 start CHAN-C3K4ZQ |
| | | bss.expiration_DateStr = bss.Prod.Product2__r.SFDA_Expiration_Date__c == null ? '' : bss.Prod.Product2__r.SFDA_Expiration_Date__c.format(); |
| | | bss.expiration_DateStr = bss.Prod.Product2__r.SFDA_Expiration_Date__c == null |
| | | ? '' |
| | | : bss.Prod.Product2__r.SFDA_Expiration_Date__c.format(); |
| | | bss.Sterilization_limitStr = bss.esd.Sterilization_limit__c == null ? '' : bss.esd.Sterilization_limit__c.format(); |
| | | //update by rentx 20210622 end CHAN-C3K4ZQ |
| | | } |
| | |
| | | //add by rentx 20210622 CHAN-C3K4ZQ |
| | | // makeRecordsView(consumableorderdetailsRecords); |
| | | //add by rentx 20210622 CHAN- |
| | | for(ConsumableorderdetailsInfo con : consumableorderdetailsRecords){ |
| | | for (ConsumableorderdetailsInfo con : consumableorderdetailsRecords) { |
| | | con.prodName = con.esd.Consumable_Product__r.Name__c; |
| | | } |
| | | results.coc = coc; |
| | |
| | | |
| | | //出库 |
| | | @AuraEnabled |
| | | public static Results proSale(String cocStr, Decimal orderallcountParm, Integer consumableorderdetailsCountParm) { |
| | | public static Results proSale(String cocStr, Decimal orderallcountParm, Integer consumableorderdetailsCountParm, String eSetIdStr) { |
| | | Results results = new Results(); |
| | | eSetId = eSetIdStr; |
| | | try { |
| | | orderallcount = orderallcountParm; |
| | | consumableorderdetailsCount = consumableorderdetailsCountParm; |
| | | coc = (Consumable_order__c)JSON.deserialize(cocStr, Consumable_order__c.class); |
| | | coc = (Consumable_order__c) JSON.deserialize(cocStr, Consumable_order__c.class); |
| | | List<Consumable_order_details2__c> orderdetails = new List<Consumable_order_details2__c>(); |
| | | //发货明细2 |
| | | orderdetails = [SELECT Id |
| | | FROM Consumable_order_details2__c |
| | | WHERE Consumable_order_minor__c =:coc.Arrive_Order__c |
| | | AND recordtypeid = :System.Label.RT_ConOrderDetail2_Delivery |
| | | AND Dealer_Arrive__c = true ]; |
| | | if(orderallcount!= consumableorderdetailsCount){ |
| | | orderdetails = [ |
| | | SELECT Id |
| | | FROM Consumable_order_details2__c |
| | | WHERE |
| | | Consumable_order_minor__c = :coc.Arrive_Order__c |
| | | AND recordtypeid = :System.Label.RT_ConOrderDetail2_Delivery |
| | | AND Dealer_Arrive__c = TRUE |
| | | ]; |
| | | if (orderallcount != consumableorderdetailsCount) { |
| | | results.result = 'Fail'; |
| | | results.errorMsg = '订单不完全到货,无法出库'; |
| | | return results; |
| | | } |
| | | if(coc.Arrive_Order__r.IsShipment__c == true){ |
| | | if (coc.Arrive_Order__r.IsShipment__c == true) { |
| | | results.result = 'Fail'; |
| | | results.errorMsg = '订单已经出库'; |
| | | return results; |
| | | } |
| | | results.url = '/lexsummonscreat?arriveorder=' + eSetId +'&KeyWords=Redirect'; |
| | | results.url = '/lexsummonscreat?arriveorder=' + eSetId + '&KeyWords=Redirect'; |
| | | results.result = 'Success'; |
| | | } catch (Exception e) { |
| | | results.result = 'Fail'; |
| | |
| | | @AuraEnabled |
| | | public Consumable_order_details2__c esd; |
| | | @AuraEnabled |
| | | public Product2__c Prod; |
| | | public Product2__c Prod; |
| | | @AuraEnabled |
| | | public Decimal packing_list; |
| | | @AuraEnabled |
| | |
| | | @AuraEnabled |
| | | public String prodName; |
| | | |
| | | |
| | | // 已存在消耗品明细用 |
| | | public ConsumableorderdetailsInfo(Consumable_order_details2__c e) { |
| | | esd = e; |
| | |
| | | return null; |
| | | } |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | @isTest |
| | | public class LexArriveGsDetailsControllerTest { |
| | | @IsTest |
| | | static void test1() { |
| | | User myUser_test = new User(); |
| | | Account myAccount1; |
| | | Account myAccount2; |
| | | Contact core; |
| | | User currentUser = [SELECT Id FROM User WHERE Id = :UserInfo.getUserId()]; |
| | | NoteStay__c n = new NoteStay__c(Name = 'NoteStay', IsStay__c = true); |
| | | insert n; |
| | | System.runAs(currentUser) { |
| | | 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, |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod02 = new Product2( |
| | | Name = 'Test02', |
| | | ProductCode = 'Test02', |
| | | Asset_Model_No__c = 'Test02', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | insert new List<Product2>{ prod01, prod02 }; |
| | | Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'Test001', Product2__c = prod01.Id); |
| | | Product2__c pro2 = new Product2__c(Name = 'Pro002', OT_CODE_Text__c = 'Test002', Product2__c = prod02.Id); |
| | | insert new List<Product2__c>{ pro1, pro2 }; |
| | | myAccount2 = new Account(name = 'Testaccount002', Dealer_discount__c = 20, RecordTypeId = rectCo[0].Id); |
| | | insert myAccount2; |
| | | core = new Contact(email = 'jplumber@salesforce.com', firstname = 'Joe', lastname = 'Plumber', accountid = myAccount2.id); |
| | | insert core; |
| | | myUser_Test = new User( |
| | | ContactId = core.id, |
| | | Alias = 'newUser', |
| | | Email = 'newuser@testorg.com', |
| | | EmailEncodingKey = 'UTF-8', |
| | | LastName = 'TestUser', |
| | | LanguageLocaleKey = 'zh_CN', |
| | | LocaleSidKey = 'zh_CN', |
| | | ProfileId = prof.Id, |
| | | TimeZoneSidKey = 'Asia/Shanghai', |
| | | UserName = 'testUser@testorg.com' |
| | | ); |
| | | 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 List<Consumable_order_details2__c>{ Orderdet1, Orderdet2 }; |
| | | LexArriveGsDetailsController.init(order1.Id); |
| | | LexArriveGsDetailsController.proSale( |
| | | JSON.serialize(LexArriveGsDetailsController.coc), |
| | | LexArriveGsDetailsController.coc.Arrive_Order__r.Total_num__c, |
| | | LexArriveGsDetailsController.consumableorderdetailsRecords.size(), |
| | | order1.Id |
| | | ); |
| | | } |
| | | } |
| | | } |
| | | |
| | | @IsTest |
| | | static void test2() { |
| | | User myUser_test = new User(); |
| | | Account myAccount1; |
| | | Account myAccount2; |
| | | Contact core; |
| | | User currentUser = [SELECT Id FROM User WHERE Id = :UserInfo.getUserId()]; |
| | | NoteStay__c n = new NoteStay__c(Name = 'NoteStay', IsStay__c = true); |
| | | insert n; |
| | | System.runAs(currentUser) { |
| | | 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, |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod02 = new Product2( |
| | | Name = 'Test02', |
| | | ProductCode = 'Test02', |
| | | Asset_Model_No__c = 'Test02', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | insert new List<Product2>{ prod01, prod02 }; |
| | | Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'Test001', Product2__c = prod01.Id); |
| | | Product2__c pro2 = new Product2__c(Name = 'Pro002', OT_CODE_Text__c = 'Test002', Product2__c = prod02.Id); |
| | | insert new List<Product2__c>{ pro1, pro2 }; |
| | | myAccount2 = new Account(name = 'Testaccount002', Dealer_discount__c = 20, RecordTypeId = rectCo[0].Id); |
| | | insert myAccount2; |
| | | core = new Contact(email = 'jplumber@salesforce.com', firstname = 'Joe', lastname = 'Plumber', accountid = myAccount2.id); |
| | | insert core; |
| | | myUser_Test = new User( |
| | | ContactId = core.id, |
| | | Alias = 'newUser', |
| | | Email = 'newuser@testorg.com', |
| | | EmailEncodingKey = 'UTF-8', |
| | | LastName = 'TestUser', |
| | | LanguageLocaleKey = 'zh_CN', |
| | | LocaleSidKey = 'zh_CN', |
| | | ProfileId = prof.Id, |
| | | TimeZoneSidKey = 'Asia/Shanghai', |
| | | UserName = 'testUser@testorg.com' |
| | | ); |
| | | 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 List<Consumable_order_details2__c>{ Orderdet1, Orderdet2 }; |
| | | LexArriveGsDetailsController.init(order1.Id); |
| | | LexArriveGsDetailsController.proSale(JSON.serialize(LexArriveGsDetailsController.coc), 1, 1, order1.Id); |
| | | } |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8" ?> |
| | | <ApexClass xmlns="http://soap.sforce.com/2006/04/metadata"> |
| | | <apiVersion>57.0</apiVersion> |
| | | <status>Active</status> |
| | | </ApexClass> |
| | |
| | | public with sharing class LexCancelRemoveBoxController { |
| | | //经销商产品分类 |
| | | public static String agencyProType {get;set;} |
| | | public static String agencyProType { get; set; } |
| | | public static String userPro_Typestr = null; |
| | | public static String barcode { get; set; } |
| | | /*****************画面表示Bean******************/ |
| | |
| | | public static List<ConsumableorderdetailsInfo> ConsumableorderdetailsRecordserror { get; set; } |
| | | //拆盒明细 |
| | | public static List<ConsumableorderdetailsInfo> ConsumableorderdetailsRecordsdummy { get; set; } |
| | | public static boolean saveFLGbln {get;set;} |
| | | public static boolean saveFLGbln { get; set; } |
| | | //错误信息 |
| | | public static String alertMessage {set;get;} |
| | | public static String alertMessage { get; set; } |
| | | //拆盒明细件数 |
| | | public static Integer getinventorysize(){ |
| | | public static Integer getinventorysize() { |
| | | return ConsumableorderdetailsRecordsdummy.size(); |
| | | } |
| | | public static Map<String, String> ExistIdMap = new Map<String, String>(); |
| | | public static Map<String, String> ErrorIdMap = new Map<String, String>(); |
| | | public static Map<String, String> AllMap = new Map<String, String>(); |
| | | public static List<String> BarCodeListP = new List<String>(); |
| | | public static List<String> BarCodeListP = new List<String>(); |
| | | //不符合的barcode和型号 |
| | | public static list<String> notInlist = new list<String>(); |
| | | public static String baseUrl {get;private set;} |
| | | public static list<String> notInlist = new List<String>(); |
| | | public static String baseUrl { get; private set; } |
| | | private static String accountid = null; |
| | | private static String accountName = null; |
| | | //public String[] proidList =new String[]{}; |
| | | // 登录者工作地 |
| | | private static String userWorkLocation; |
| | | |
| | | public LexCancelRemoveBoxController(){ |
| | | public LexCancelRemoveBoxController() { |
| | | baseUrl = URL.getSalesforceBaseUrl().toExternalForm(); |
| | | ConsumableorderdetailsRecordserror = new List<ConsumableorderdetailsInfo>(); |
| | | ConsumableorderdetailsRecordsdummy = new List<ConsumableorderdetailsInfo>(); |
| | | consumableInventory = new List<ConsumableorderdetailsInfo>(); |
| | | saveFLGbln = FALSE; |
| | | saveFLGbln = false; |
| | | } |
| | | |
| | | @AuraEnabled |
| | |
| | | res.entity = data; |
| | | |
| | | String userId = UserInfo.getUserId(); |
| | | List<user> Useracc = New List<user>(); |
| | | Useracc = [SELECT accountid, Work_Location__c,UserPro_Type__c FROM user WHERE id =:userId]; |
| | | List<user> Useracc = new List<user>(); |
| | | Useracc = [ |
| | | SELECT accountid, Work_Location__c, UserPro_Type__c |
| | | FROM user |
| | | WHERE id = :userId |
| | | ]; |
| | | accountid = Useracc[0].accountid; |
| | | userWorkLocation = Useracc[0].Work_Location__c; |
| | | agencyProType = Useracc[0].UserPro_Type__c; |
| | | if(String.isBlank(Useracc[0].UserPro_Type__c)){ |
| | | if (String.isBlank(Useracc[0].UserPro_Type__c)) { |
| | | agencyProType = 'ET'; |
| | | } |
| | | userPro_Typestr = '%' + agencyProType + '%'; |
| | | List<account> accountInfo = [SELECT Name FROM account WHERE id =:accountid]; |
| | | List<account> accountInfo = [ |
| | | SELECT Name |
| | | FROM account |
| | | WHERE id = :accountid |
| | | ]; |
| | | //String view_product = accountInfo[0].view_product__c; |
| | | accountName = accountInfo[0].Name; |
| | | //proidList = view_product.split(','); |
| | | data.put('accountName',accountName); |
| | | data.put('userWorkLocation',userWorkLocation); |
| | | data.put('agencyProType',agencyProType); |
| | | data.put('accountName', accountName); |
| | | data.put('userWorkLocation', userWorkLocation); |
| | | data.put('agencyProType', agencyProType); |
| | | res.status = 'Success'; |
| | | res.code = 200; |
| | | System.debug('res = ' + res); |
| | | return res; |
| | | |
| | | } |
| | | |
| | | // 将页面或取得BarCode去掉重复的,转换成List |
| | | public static List<String> ParseBarCode(String Code){ |
| | | String[] Cache = new String[]{}; |
| | | public static List<String> ParseBarCode(String Code) { |
| | | String[] Cache = new List<String>{}; |
| | | Cache = Code.split('\n'); |
| | | Set <String> Buff = new Set<String>(); |
| | | for(String A : Cache){ |
| | | Set<String> Buff = new Set<String>(); |
| | | for (String A : Cache) { |
| | | Buff.add(A); |
| | | } |
| | | List<String> outPut = new List<String>(); |
| | | for(String B :Buff){ |
| | | for (String B : Buff) { |
| | | B = B.trim(); |
| | | outPut.add(B); |
| | | } |
| | |
| | | |
| | | //获取明细 |
| | | @AuraEnabled |
| | | public static ResponseBodyLWC searchConsumableorderdetails(String barcode,String accountName,String userWorkLocation,String agencyProType) { |
| | | public static ResponseBodyLWC searchConsumableorderdetails( |
| | | String barcode, |
| | | String accountName, |
| | | String userWorkLocation, |
| | | String agencyProType |
| | | ) { |
| | | ResponseBodyLWC res = new ResponseBodyLWC(); |
| | | Map<String,object> data = new Map<String,object>(); |
| | | Map<String, object> data = new Map<String, object>(); |
| | | res.entity = data; |
| | | userPro_Typestr = '%' + agencyProType + '%'; |
| | | barcode = barcode; |
| | |
| | | ConsumableorderdetailsRecordserror = new List<ConsumableorderdetailsInfo>(); |
| | | ConsumableorderdetailsRecordsdummy = new List<ConsumableorderdetailsInfo>(); |
| | | |
| | | |
| | | |
| | | notInlist = new list<String>(); |
| | | notInlist = new List<String>(); |
| | | BarCodeListP = ParseBarCode(barcode); |
| | | Consumable_order_details2__c p = new Consumable_order_details2__c(); |
| | | List<Consumable_order_details2__c> Ins = New List<Consumable_order_details2__c>(); |
| | | List<Consumable_order_details2__c> Ins = new List<Consumable_order_details2__c>(); |
| | | List<Consumable_order_details2__c> reSet = new List<Consumable_order_details2__c>(); |
| | | List<Consumable_order_details2__c> reSet1 = new List<Consumable_order_details2__c>(); |
| | | saveFLGbln = FALSE; |
| | | alertMessage=''; |
| | | saveFLGbln = false; |
| | | alertMessage = ''; |
| | | |
| | | //判断barcode是否为空 |
| | | if(barcode == null || barcode ==''){ |
| | | return new ResponseBodyLWC('Error',500, '请输入BarCode号', ''); |
| | | if (barcode == null || barcode == '') { |
| | | return new ResponseBodyLWC('Error', 500, '请输入BarCode号', ''); |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO,'请输入BarCode号。')); |
| | | // return; |
| | | } |
| | |
| | | // ConsumableorderdetailsRecordsdummy.clear(); |
| | | |
| | | // 产品类型不同 |
| | | reSet1 = [SELECT Id, Name,Consumable_Product__r.Name__c, |
| | | Consumable_Product__c,Consumable_Product__r.Name, Sterilization_limit__c, |
| | | Deliver_date__c,Bar_Code__c,Product_Type__c, |
| | | Arrive_date__c,Send_Date__c,Consumable_order_minor__r.Name,Consumable_order_minor__c, |
| | | recordtypeid,Consumable_order_minor__r.Arrive_Order__c, Arrive_Owner_Work_Location__c, |
| | | //add by rentx 2020-10-13 start |
| | | ContractNo_text__c |
| | | /*,ContractNo__c*/ |
| | | //add by rentx 2020-10-13 end |
| | | FROM Consumable_order_details2__c |
| | | WHERE Dealer_Arrive__c = true |
| | | AND Bar_Code__c in :BarCodeListP |
| | | AND Dealer_Info_text__c = :accountName |
| | | AND Arrive_Owner_Work_Location__c = : userWorkLocation |
| | | AND (not Product_Type__c like : userPro_Typestr) |
| | | ORDER BY Name ]; |
| | | if(reSet1.size() > 0){ |
| | | reSet1 = [ |
| | | SELECT |
| | | Id, |
| | | Name, |
| | | Consumable_Product__r.Name__c, |
| | | Consumable_Product__c, |
| | | Consumable_Product__r.Name, |
| | | Sterilization_limit__c, |
| | | Deliver_date__c, |
| | | Bar_Code__c, |
| | | Product_Type__c, |
| | | Arrive_date__c, |
| | | Send_Date__c, |
| | | Consumable_order_minor__r.Name, |
| | | Consumable_order_minor__c, |
| | | recordtypeid, |
| | | Consumable_order_minor__r.Arrive_Order__c, |
| | | Arrive_Owner_Work_Location__c, |
| | | //add by rentx 2020-10-13 start |
| | | ContractNo_text__c |
| | | /*,ContractNo__c*/ |
| | | //add by rentx 2020-10-13 end |
| | | FROM Consumable_order_details2__c |
| | | WHERE |
| | | Dealer_Arrive__c = TRUE |
| | | AND Bar_Code__c IN :BarCodeListP |
| | | AND Dealer_Info_text__c = :accountName |
| | | AND Arrive_Owner_Work_Location__c = :userWorkLocation |
| | | AND (NOT Product_Type__c LIKE :userPro_Typestr) |
| | | ORDER BY Name |
| | | ]; |
| | | if (reSet1.size() > 0) { |
| | | for (Integer i = 0; i < reSet1.size(); i++) { |
| | | if(ErrorIdMap.containsKey(reSet1[i].Bar_Code__c)){ |
| | | if (ErrorIdMap.containsKey(reSet1[i].Bar_Code__c)) { |
| | | // 跳过已经处理的消耗品明细 |
| | | continue; |
| | | }else{ |
| | | String str = '该商品类型'+ reSet1[i].Product_Type__c +'与产品类型'+ agencyProType +'不符,不能拆盒'; |
| | | ConsumableorderdetailsRecordserror.add(new ConsumableorderdetailsInfo(reSet1[i],str)); |
| | | ErrorIdMap.put(reSet1[i].Bar_Code__c,reSet1[i].Bar_Code__c); |
| | | } else { |
| | | String str = '该商品类型' + reSet1[i].Product_Type__c + '与产品类型' + agencyProType + '不符,不能拆盒'; |
| | | ConsumableorderdetailsRecordserror.add(new ConsumableorderdetailsInfo(reSet1[i], str)); |
| | | ErrorIdMap.put(reSet1[i].Bar_Code__c, reSet1[i].Bar_Code__c); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //没有拆盒 |
| | | reSet1 = [SELECT Id, Name,Consumable_Product__r.Name__c, |
| | | Consumable_Product__c,Consumable_Product__r.Name, Sterilization_limit__c, |
| | | Deliver_date__c,Bar_Code__c, |
| | | Arrive_date__c,Send_Date__c,Consumable_order_minor__r.Name,Consumable_order_minor__c, |
| | | recordtypeid,Consumable_order_minor__r.Arrive_Order__c, |
| | | //add by rentx 2020-10-13 start |
| | | ContractNo_text__c |
| | | /*,ContractNo__c*/ |
| | | //add by rentx 2020-10-13 end |
| | | FROM Consumable_order_details2__c |
| | | WHERE Dealer_Arrive__c = true |
| | | AND Dealer_Shipment__c= false |
| | | AND Dealer_Saled__c = false |
| | | AND Dealer_Returned__c = false |
| | | AND Lose_Flag__c = false |
| | | AND Box_Piece__c = '盒' |
| | | //AND ProductPacking_list_manual__c > 1 |
| | | AND Bar_Code__c in :BarCodeListP |
| | | AND Dealer_Info_text__c = :accountName |
| | | ORDER BY Name ]; //没出库,没销售,在库,没有拆盒 |
| | | if(reSet1.size() > 0){ |
| | | reSet1 = [ |
| | | SELECT |
| | | Id, |
| | | Name, |
| | | Consumable_Product__r.Name__c, |
| | | Consumable_Product__c, |
| | | Consumable_Product__r.Name, |
| | | Sterilization_limit__c, |
| | | Deliver_date__c, |
| | | Bar_Code__c, |
| | | Arrive_date__c, |
| | | Send_Date__c, |
| | | Consumable_order_minor__r.Name, |
| | | Consumable_order_minor__c, |
| | | recordtypeid, |
| | | Consumable_order_minor__r.Arrive_Order__c, |
| | | //add by rentx 2020-10-13 start |
| | | ContractNo_text__c |
| | | /*,ContractNo__c*/ |
| | | //add by rentx 2020-10-13 end |
| | | FROM Consumable_order_details2__c |
| | | WHERE |
| | | Dealer_Arrive__c = TRUE |
| | | AND Dealer_Shipment__c = FALSE |
| | | AND Dealer_Saled__c = FALSE |
| | | AND Dealer_Returned__c = FALSE |
| | | AND Lose_Flag__c = FALSE |
| | | AND Box_Piece__c = '盒' |
| | | //AND ProductPacking_list_manual__c > 1 |
| | | AND Bar_Code__c IN :BarCodeListP |
| | | AND Dealer_Info_text__c = :accountName |
| | | ORDER BY Name |
| | | ]; //没出库,没销售,在库,没有拆盒 |
| | | if (reSet1.size() > 0) { |
| | | for (Integer i = 0; i < reSet1.size(); i++) { |
| | | if(ErrorIdMap.containsKey(reSet1[i].Bar_Code__c)){ |
| | | if (ErrorIdMap.containsKey(reSet1[i].Bar_Code__c)) { |
| | | // 跳过已经处理的消耗品明细 |
| | | continue; |
| | | }else{ |
| | | } else { |
| | | String str = '该商品没有拆盒'; |
| | | ConsumableorderdetailsRecordserror.add(new ConsumableorderdetailsInfo(reSet1[i],str)); |
| | | ErrorIdMap.put(reSet1[i].Bar_Code__c,reSet1[i].Bar_Code__c); |
| | | ConsumableorderdetailsRecordserror.add(new ConsumableorderdetailsInfo(reSet1[i], str)); |
| | | ErrorIdMap.put(reSet1[i].Bar_Code__c, reSet1[i].Bar_Code__c); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //已出货,未到货 |
| | | reSet1 = [SELECT Id, Name,Consumable_Product__r.Name__c, |
| | | Consumable_Product__c,Consumable_Product__r.Name, Sterilization_limit__c, |
| | | Deliver_date__c,Bar_Code__c, |
| | | Arrive_date__c,Send_Date__c,Consumable_order_minor__r.Name,Consumable_order_minor__c, |
| | | recordtypeid,Consumable_order_minor__r.Arrive_Order__c, |
| | | //add by rentx 2020-10-13 start |
| | | ContractNo_text__c |
| | | /*,ContractNo__c*/ |
| | | //add by rentx 2020-10-13 end |
| | | FROM Consumable_order_details2__c |
| | | WHERE Dealer_Arrive__c = FALSE |
| | | AND Dealer_Shipment__c= FALSE |
| | | AND Dealer_Saled__c = FALSE |
| | | AND Dealer_Returned__c = false |
| | | AND Lose_Flag__c = false |
| | | AND Box_Piece__c = '盒' |
| | | AND Bar_Code__c in :BarCodeListP |
| | | AND Dealer_Info_text__c = :accountName |
| | | ORDER BY Name ]; |
| | | if(reSet1.size() > 0){ |
| | | reSet1 = [ |
| | | SELECT |
| | | Id, |
| | | Name, |
| | | Consumable_Product__r.Name__c, |
| | | Consumable_Product__c, |
| | | Consumable_Product__r.Name, |
| | | Sterilization_limit__c, |
| | | Deliver_date__c, |
| | | Bar_Code__c, |
| | | Arrive_date__c, |
| | | Send_Date__c, |
| | | Consumable_order_minor__r.Name, |
| | | Consumable_order_minor__c, |
| | | recordtypeid, |
| | | Consumable_order_minor__r.Arrive_Order__c, |
| | | //add by rentx 2020-10-13 start |
| | | ContractNo_text__c |
| | | /*,ContractNo__c*/ |
| | | //add by rentx 2020-10-13 end |
| | | FROM Consumable_order_details2__c |
| | | WHERE |
| | | Dealer_Arrive__c = FALSE |
| | | AND Dealer_Shipment__c = FALSE |
| | | AND Dealer_Saled__c = FALSE |
| | | AND Dealer_Returned__c = FALSE |
| | | AND Lose_Flag__c = FALSE |
| | | AND Box_Piece__c = '盒' |
| | | AND Bar_Code__c IN :BarCodeListP |
| | | AND Dealer_Info_text__c = :accountName |
| | | ORDER BY Name |
| | | ]; |
| | | if (reSet1.size() > 0) { |
| | | for (Integer i = 0; i < reSet1.size(); i++) { |
| | | if(ErrorIdMap.containsKey(reSet1[i].Bar_Code__c)){ |
| | | if (ErrorIdMap.containsKey(reSet1[i].Bar_Code__c)) { |
| | | // 跳过已经处理的消耗品明细 |
| | | continue; |
| | | }else{ |
| | | } else { |
| | | String str = '该商品还未到货'; |
| | | ConsumableorderdetailsRecordserror.add(new ConsumableorderdetailsInfo(reSet1[i],str)); |
| | | ErrorIdMap.put(reSet1[i].Bar_Code__c,reSet1[i].Bar_Code__c); |
| | | ConsumableorderdetailsRecordserror.add(new ConsumableorderdetailsInfo(reSet1[i], str)); |
| | | ErrorIdMap.put(reSet1[i].Bar_Code__c, reSet1[i].Bar_Code__c); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //拆盒已出货 |
| | | reSet1 = [SELECT Id, Name,Consumable_Product__r.Name__c, |
| | | Consumable_Product__c,Consumable_Product__r.Name, Sterilization_limit__c, |
| | | Deliver_date__c,Bar_Code__c, |
| | | Arrive_date__c,Send_Date__c,Consumable_order_minor__r.Name,Consumable_order_minor__c, |
| | | recordtypeid,Consumable_order_minor__r.Arrive_Order__c, |
| | | //add by rentx 2020-10-13 start |
| | | ContractNo_text__c |
| | | /*,ContractNo__c*/ |
| | | //add by rentx 2020-10-13 end |
| | | FROM Consumable_order_details2__c |
| | | WHERE Dealer_Shipment__c = true |
| | | AND Dealer_Arrive__c = true |
| | | AND Dealer_Returned__c = false |
| | | AND Lose_Flag__c = false |
| | | AND Box_Piece__c = '个' |
| | | AND RemoveBox_date__c != null |
| | | AND Bar_Code__c in :BarCodeListP |
| | | AND Dealer_Info_text__c = :accountName |
| | | ORDER BY Name ]; |
| | | if(reSet1.size() > 0){ |
| | | reSet1 = [ |
| | | SELECT |
| | | Id, |
| | | Name, |
| | | Consumable_Product__r.Name__c, |
| | | Consumable_Product__c, |
| | | Consumable_Product__r.Name, |
| | | Sterilization_limit__c, |
| | | Deliver_date__c, |
| | | Bar_Code__c, |
| | | Arrive_date__c, |
| | | Send_Date__c, |
| | | Consumable_order_minor__r.Name, |
| | | Consumable_order_minor__c, |
| | | recordtypeid, |
| | | Consumable_order_minor__r.Arrive_Order__c, |
| | | //add by rentx 2020-10-13 start |
| | | ContractNo_text__c |
| | | /*,ContractNo__c*/ |
| | | //add by rentx 2020-10-13 end |
| | | FROM Consumable_order_details2__c |
| | | WHERE |
| | | Dealer_Shipment__c = TRUE |
| | | AND Dealer_Arrive__c = TRUE |
| | | AND Dealer_Returned__c = FALSE |
| | | AND Lose_Flag__c = FALSE |
| | | AND Box_Piece__c = '个' |
| | | AND RemoveBox_date__c != NULL |
| | | AND Bar_Code__c IN :BarCodeListP |
| | | AND Dealer_Info_text__c = :accountName |
| | | ORDER BY Name |
| | | ]; |
| | | if (reSet1.size() > 0) { |
| | | for (Integer i = 0; i < reSet1.size(); i++) { |
| | | if(ErrorIdMap.containsKey(reSet1[i].Bar_Code__c)){ |
| | | if (ErrorIdMap.containsKey(reSet1[i].Bar_Code__c)) { |
| | | // 跳过已经处理的消耗品明细 |
| | | continue; |
| | | }else{ |
| | | } else { |
| | | String str = '该商品存在出货履历'; |
| | | ConsumableorderdetailsRecordserror.add(new ConsumableorderdetailsInfo(reSet1[i],str)); |
| | | ErrorIdMap.put(reSet1[i].Bar_Code__c,reSet1[i].Bar_Code__c); |
| | | ConsumableorderdetailsRecordserror.add(new ConsumableorderdetailsInfo(reSet1[i], str)); |
| | | ErrorIdMap.put(reSet1[i].Bar_Code__c, reSet1[i].Bar_Code__c); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //拆盒已销售 |
| | | reSet1 = [SELECT Id, Name,Consumable_Product__r.Name__c, |
| | | Consumable_Product__c,Consumable_Product__r.Name, Sterilization_limit__c, |
| | | Deliver_date__c,Bar_Code__c, |
| | | Arrive_date__c,Send_Date__c,Consumable_order_minor__r.Name,Consumable_order_minor__c, |
| | | recordtypeid,Consumable_order_minor__r.Arrive_Order__c, |
| | | //add by rentx 2020-10-13 start |
| | | ContractNo_text__c |
| | | /*,ContractNo__c*/ |
| | | //add by rentx 2020-10-13 end |
| | | FROM Consumable_order_details2__c |
| | | WHERE Dealer_Saled__c = true |
| | | AND Dealer_Arrive__c = true |
| | | AND Dealer_Returned__c = false |
| | | AND Lose_Flag__c = false |
| | | AND Box_Piece__c = '个' |
| | | AND RemoveBox_date__c != null |
| | | AND Bar_Code__c in :BarCodeListP |
| | | AND Dealer_Info_text__c = :accountName |
| | | ORDER BY Name ]; |
| | | if(reSet1.size() > 0){ |
| | | reSet1 = [ |
| | | SELECT |
| | | Id, |
| | | Name, |
| | | Consumable_Product__r.Name__c, |
| | | Consumable_Product__c, |
| | | Consumable_Product__r.Name, |
| | | Sterilization_limit__c, |
| | | Deliver_date__c, |
| | | Bar_Code__c, |
| | | Arrive_date__c, |
| | | Send_Date__c, |
| | | Consumable_order_minor__r.Name, |
| | | Consumable_order_minor__c, |
| | | recordtypeid, |
| | | Consumable_order_minor__r.Arrive_Order__c, |
| | | //add by rentx 2020-10-13 start |
| | | ContractNo_text__c |
| | | /*,ContractNo__c*/ |
| | | //add by rentx 2020-10-13 end |
| | | FROM Consumable_order_details2__c |
| | | WHERE |
| | | Dealer_Saled__c = TRUE |
| | | AND Dealer_Arrive__c = TRUE |
| | | AND Dealer_Returned__c = FALSE |
| | | AND Lose_Flag__c = FALSE |
| | | AND Box_Piece__c = '个' |
| | | AND RemoveBox_date__c != NULL |
| | | AND Bar_Code__c IN :BarCodeListP |
| | | AND Dealer_Info_text__c = :accountName |
| | | ORDER BY Name |
| | | ]; |
| | | if (reSet1.size() > 0) { |
| | | for (Integer i = 0; i < reSet1.size(); i++) { |
| | | if(ErrorIdMap.containsKey(reSet1[i].Bar_Code__c)){ |
| | | if (ErrorIdMap.containsKey(reSet1[i].Bar_Code__c)) { |
| | | // 跳过已经处理的消耗品明细 |
| | | continue; |
| | | }else{ |
| | | } else { |
| | | String str = '该商品存在销售履历'; |
| | | ConsumableorderdetailsRecordserror.add(new ConsumableorderdetailsInfo(reSet1[i],str)); |
| | | ErrorIdMap.put(reSet1[i].Bar_Code__c,reSet1[i].Bar_Code__c); |
| | | ConsumableorderdetailsRecordserror.add(new ConsumableorderdetailsInfo(reSet1[i], str)); |
| | | ErrorIdMap.put(reSet1[i].Bar_Code__c, reSet1[i].Bar_Code__c); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //拆盒返品 |
| | | reSet1 = [SELECT Id, Name,Consumable_Product__r.Name__c, |
| | | Consumable_Product__c,Consumable_Product__r.Name, Sterilization_limit__c, |
| | | Deliver_date__c,Bar_Code__c, |
| | | Arrive_date__c,Send_Date__c,Consumable_order_minor__r.Name,Consumable_order_minor__c, |
| | | recordtypeid,Consumable_order_minor__r.Arrive_Order__c, |
| | | //add by rentx 2020-10-13 start |
| | | ContractNo_text__c |
| | | /*,ContractNo__c*/ |
| | | //add by rentx 2020-10-13 end |
| | | FROM Consumable_order_details2__c |
| | | WHERE Dealer_Returned__c = true |
| | | AND Return_date__c != null |
| | | AND Box_Piece__c = '个' |
| | | AND RemoveBox_date__c != null |
| | | AND Bar_Code__c in :BarCodeListP |
| | | AND Dealer_Info_text__c = :accountName |
| | | ORDER BY Name ]; |
| | | if(reSet1.size() > 0){ |
| | | reSet1 = [ |
| | | SELECT |
| | | Id, |
| | | Name, |
| | | Consumable_Product__r.Name__c, |
| | | Consumable_Product__c, |
| | | Consumable_Product__r.Name, |
| | | Sterilization_limit__c, |
| | | Deliver_date__c, |
| | | Bar_Code__c, |
| | | Arrive_date__c, |
| | | Send_Date__c, |
| | | Consumable_order_minor__r.Name, |
| | | Consumable_order_minor__c, |
| | | recordtypeid, |
| | | Consumable_order_minor__r.Arrive_Order__c, |
| | | //add by rentx 2020-10-13 start |
| | | ContractNo_text__c |
| | | /*,ContractNo__c*/ |
| | | //add by rentx 2020-10-13 end |
| | | FROM Consumable_order_details2__c |
| | | WHERE |
| | | Dealer_Returned__c = TRUE |
| | | AND Return_date__c != NULL |
| | | AND Box_Piece__c = '个' |
| | | AND RemoveBox_date__c != NULL |
| | | AND Bar_Code__c IN :BarCodeListP |
| | | AND Dealer_Info_text__c = :accountName |
| | | ORDER BY Name |
| | | ]; |
| | | if (reSet1.size() > 0) { |
| | | for (Integer i = 0; i < reSet1.size(); i++) { |
| | | if(ErrorIdMap.containsKey(reSet1[i].Bar_Code__c)){ |
| | | if (ErrorIdMap.containsKey(reSet1[i].Bar_Code__c)) { |
| | | // 跳过已经处理的消耗品明细 |
| | | continue; |
| | | }else{ |
| | | } else { |
| | | String str = '该商品存在返品履历'; |
| | | ConsumableorderdetailsRecordserror.add(new ConsumableorderdetailsInfo(reSet1[i],str)); |
| | | ErrorIdMap.put(reSet1[i].Bar_Code__c,reSet1[i].Bar_Code__c); |
| | | ConsumableorderdetailsRecordserror.add(new ConsumableorderdetailsInfo(reSet1[i], str)); |
| | | ErrorIdMap.put(reSet1[i].Bar_Code__c, reSet1[i].Bar_Code__c); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | //拆盒后盘点过(盘点日期不为空) |
| | | reSet1 = [SELECT Id, Name,Consumable_Product__r.Name__c, |
| | | Consumable_Product__c,Consumable_Product__r.Name, Sterilization_limit__c, |
| | | Deliver_date__c,Bar_Code__c, |
| | | Arrive_date__c,Send_Date__c,Consumable_order_minor__r.Name,Consumable_order_minor__c, |
| | | recordtypeid,Consumable_order_minor__r.Arrive_Order__c, |
| | | //add by rentx 2020-10-13 start |
| | | ContractNo_text__c |
| | | /*,ContractNo__c*/ |
| | | //add by rentx 2020-10-13 end |
| | | FROM Consumable_order_details2__c |
| | | WHERE Inventory_date__c != null |
| | | AND Box_Piece__c = '个' |
| | | AND RemoveBox_date__c != null |
| | | AND Bar_Code__c in :BarCodeListP |
| | | AND Dealer_Info_text__c = :accountName |
| | | ORDER BY Name ]; |
| | | if(reSet1.size() > 0){ |
| | | reSet1 = [ |
| | | SELECT |
| | | Id, |
| | | Name, |
| | | Consumable_Product__r.Name__c, |
| | | Consumable_Product__c, |
| | | Consumable_Product__r.Name, |
| | | Sterilization_limit__c, |
| | | Deliver_date__c, |
| | | Bar_Code__c, |
| | | Arrive_date__c, |
| | | Send_Date__c, |
| | | Consumable_order_minor__r.Name, |
| | | Consumable_order_minor__c, |
| | | recordtypeid, |
| | | Consumable_order_minor__r.Arrive_Order__c, |
| | | //add by rentx 2020-10-13 start |
| | | ContractNo_text__c |
| | | /*,ContractNo__c*/ |
| | | //add by rentx 2020-10-13 end |
| | | FROM Consumable_order_details2__c |
| | | WHERE |
| | | Inventory_date__c != NULL |
| | | AND Box_Piece__c = '个' |
| | | AND RemoveBox_date__c != NULL |
| | | AND Bar_Code__c IN :BarCodeListP |
| | | AND Dealer_Info_text__c = :accountName |
| | | ORDER BY Name |
| | | ]; |
| | | if (reSet1.size() > 0) { |
| | | for (Integer i = 0; i < reSet1.size(); i++) { |
| | | if(ErrorIdMap.containsKey(reSet1[i].Bar_Code__c)){ |
| | | if (ErrorIdMap.containsKey(reSet1[i].Bar_Code__c)) { |
| | | // 跳过已经处理的消耗品明细 |
| | | continue; |
| | | }else{ |
| | | } else { |
| | | String str = '该商品存在盘点履历'; |
| | | ConsumableorderdetailsRecordserror.add(new ConsumableorderdetailsInfo(reSet1[i],str)); |
| | | ErrorIdMap.put(reSet1[i].Bar_Code__c,reSet1[i].Bar_Code__c); |
| | | ConsumableorderdetailsRecordserror.add(new ConsumableorderdetailsInfo(reSet1[i], str)); |
| | | ErrorIdMap.put(reSet1[i].Bar_Code__c, reSet1[i].Bar_Code__c); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //不同工作地 |
| | | reSet1 = [SELECT Id, Name,Consumable_Product__r.Name__c, |
| | | Consumable_Product__c,Consumable_Product__r.Name, Sterilization_limit__c, |
| | | Deliver_date__c,Bar_Code__c, |
| | | Arrive_date__c,Send_Date__c,Consumable_order_minor__r.Name,Consumable_order_minor__c, |
| | | recordtypeid,Consumable_order_minor__r.Arrive_Order__c, Arrive_Owner_Work_Location__c, |
| | | //add by rentx 2020-10-13 start |
| | | ContractNo_text__c |
| | | /*,ContractNo__c*/ |
| | | //add by rentx 2020-10-13 end |
| | | FROM Consumable_order_details2__c |
| | | WHERE Dealer_Arrive__c = true |
| | | AND Bar_Code__c in :BarCodeListP |
| | | AND Dealer_Info_text__c = :accountName |
| | | AND Arrive_Owner_Work_Location__c !=: userWorkLocation |
| | | ORDER BY Name ]; |
| | | if(reSet1.size() > 0){ |
| | | reSet1 = [ |
| | | SELECT |
| | | Id, |
| | | Name, |
| | | Consumable_Product__r.Name__c, |
| | | Consumable_Product__c, |
| | | Consumable_Product__r.Name, |
| | | Sterilization_limit__c, |
| | | Deliver_date__c, |
| | | Bar_Code__c, |
| | | Arrive_date__c, |
| | | Send_Date__c, |
| | | Consumable_order_minor__r.Name, |
| | | Consumable_order_minor__c, |
| | | recordtypeid, |
| | | Consumable_order_minor__r.Arrive_Order__c, |
| | | Arrive_Owner_Work_Location__c, |
| | | //add by rentx 2020-10-13 start |
| | | ContractNo_text__c |
| | | /*,ContractNo__c*/ |
| | | //add by rentx 2020-10-13 end |
| | | FROM Consumable_order_details2__c |
| | | WHERE |
| | | Dealer_Arrive__c = TRUE |
| | | AND Bar_Code__c IN :BarCodeListP |
| | | AND Dealer_Info_text__c = :accountName |
| | | AND Arrive_Owner_Work_Location__c != :userWorkLocation |
| | | ORDER BY Name |
| | | ]; |
| | | if (reSet1.size() > 0) { |
| | | for (Integer i = 0; i < reSet1.size(); i++) { |
| | | if(ErrorIdMap.containsKey(reSet1[i].Bar_Code__c)){ |
| | | if (ErrorIdMap.containsKey(reSet1[i].Bar_Code__c)) { |
| | | // 跳过已经处理的消耗品明细 |
| | | continue; |
| | | }else{ |
| | | } else { |
| | | String str = '该商品属于' + reSet1[i].Arrive_Owner_Work_Location__c + ',不能取消拆盒'; |
| | | ConsumableorderdetailsRecordserror.add(new ConsumableorderdetailsInfo(reSet1[i],str)); |
| | | ErrorIdMap.put(reSet1[i].Bar_Code__c,reSet1[i].Bar_Code__c); |
| | | ConsumableorderdetailsRecordserror.add(new ConsumableorderdetailsInfo(reSet1[i], str)); |
| | | ErrorIdMap.put(reSet1[i].Bar_Code__c, reSet1[i].Bar_Code__c); |
| | | } |
| | | } |
| | | } |
| | | |
| | | reSet = [SELECT Id, |
| | | Name, |
| | | Intra_Trade_List_RMB__c, |
| | | Asset_Model_No__c, |
| | | Consumable_Product__c, |
| | | Consumable_Product__r.Name, |
| | | Consumable_Product__r.Name__c, |
| | | Sterilization_limit__c, |
| | | Deliver_date__c, |
| | | Bar_Code__c, |
| | | Arrive_date__c, |
| | | Send_Date__c, |
| | | Consumable_order_minor__r.Name, |
| | | Consumable_order_minor__c, |
| | | Dealer_Arrive__c, |
| | | Guarantee_period_for_products__c, |
| | | CFDA_Status__c, |
| | | ProductPacking_list_manual__c, |
| | | Report_Product_Approbation__c, |
| | | Report_Product_Expiration__c, |
| | | //add by rentx 2020-10-13 start |
| | | ContractNo_text__c |
| | | /*,ContractNo__c*/ |
| | | //add by rentx 2020-10-13 end |
| | | FROM Consumable_order_details2__c |
| | | WHERE Dealer_Arrive__c = true |
| | | AND Dealer_Shipment__c = false |
| | | AND Dealer_Saled__c = false |
| | | AND Dealer_Returned__c = false |
| | | AND Lose_Flag__c = false |
| | | AND Box_Piece__c = '个' |
| | | AND RemoveBox_date__c != null |
| | | AND Bar_Code__c in :BarCodeListP |
| | | AND Dealer_Info_text__c = :accountName |
| | | AND Arrive_Owner_Work_Location__c =: userWorkLocation |
| | | AND Product_Type__c like : userPro_Typestr |
| | | ]; |
| | | if(reSet.size()>0){ |
| | | reSet = [ |
| | | SELECT |
| | | Id, |
| | | Name, |
| | | Intra_Trade_List_RMB__c, |
| | | Asset_Model_No__c, |
| | | Consumable_Product__c, |
| | | Consumable_Product__r.Name, |
| | | Consumable_Product__r.Name__c, |
| | | Sterilization_limit__c, |
| | | Deliver_date__c, |
| | | Bar_Code__c, |
| | | Arrive_date__c, |
| | | Send_Date__c, |
| | | Consumable_order_minor__r.Name, |
| | | Consumable_order_minor__c, |
| | | Dealer_Arrive__c, |
| | | Guarantee_period_for_products__c, |
| | | CFDA_Status__c, |
| | | ProductPacking_list_manual__c, |
| | | Report_Product_Approbation__c, |
| | | Report_Product_Expiration__c, |
| | | //add by rentx 2020-10-13 start |
| | | ContractNo_text__c |
| | | /*,ContractNo__c*/ |
| | | //add by rentx 2020-10-13 end |
| | | FROM Consumable_order_details2__c |
| | | WHERE |
| | | Dealer_Arrive__c = TRUE |
| | | AND Dealer_Shipment__c = FALSE |
| | | AND Dealer_Saled__c = FALSE |
| | | AND Dealer_Returned__c = FALSE |
| | | AND Lose_Flag__c = FALSE |
| | | AND Box_Piece__c = '个' |
| | | AND RemoveBox_date__c != NULL |
| | | AND Bar_Code__c IN :BarCodeListP |
| | | AND Dealer_Info_text__c = :accountName |
| | | AND Arrive_Owner_Work_Location__c = :userWorkLocation |
| | | AND Product_Type__c LIKE :userPro_Typestr |
| | | ]; |
| | | if (reSet.size() > 0) { |
| | | for (Integer i = 0; i < reSet.size(); i++) { |
| | | if(ErrorIdMap.containsKey(reSet[i].Bar_Code__c) ){ |
| | | if (ErrorIdMap.containsKey(reSet[i].Bar_Code__c)) { |
| | | // 跳过错误的消耗品明细 |
| | | continue; |
| | | } |
| | | else if(ExistIdMap.containsKey(reSet[i].Bar_Code__c) ){ |
| | | } else if (ExistIdMap.containsKey(reSet[i].Bar_Code__c)) { |
| | | // 跳过已经处理的消耗品明细 |
| | | continue; |
| | | } |
| | | else{ |
| | | } else { |
| | | ConsumableorderdetailsRecordsdummy.add(new ConsumableorderdetailsInfo(reSet[i])); |
| | | ExistIdMap.put(reSet[i].Bar_Code__c,reSet[i].Bar_Code__c); |
| | | ExistIdMap.put(reSet[i].Bar_Code__c, reSet[i].Bar_Code__c); |
| | | } |
| | | } |
| | | } |
| | |
| | | AllMap.putAll(ExistIdMap); |
| | | |
| | | //得到不存在的BarCode |
| | | for(Integer i = 0; i < BarCodeListP.size(); i++){ |
| | | if(ExistIdMap.containsKey(BarCodeListP[i])){ |
| | | for (Integer i = 0; i < BarCodeListP.size(); i++) { |
| | | if (ExistIdMap.containsKey(BarCodeListP[i])) { |
| | | continue; |
| | | }else if(ErrorIdMap.containsKey(BarCodeListP[i])){ |
| | | } else if (ErrorIdMap.containsKey(BarCodeListP[i])) { |
| | | continue; |
| | | }else{ |
| | | } else { |
| | | notInlist.add(BarCodeListP[i]); |
| | | } |
| | | } |
| | | if(notInlist.size()>0){ |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'BarCode'+ notInlist + '不存在。')); |
| | | return new ResponseBodyLWC('Error',500, 'BarCode'+ notInlist + '不存在。', ''); |
| | | if (notInlist.size() > 0) { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'BarCode'+ notInlist + '不存在。')); |
| | | return new ResponseBodyLWC('Error', 500, 'BarCode' + notInlist + '不存在。', ''); |
| | | } |
| | | data.put('ConsumableorderdetailsRecordsdummy',JSON.serialize(ConsumableorderdetailsRecordsdummy)); |
| | | data.put('ConsumableorderdetailsRecordserror',JSON.serialize(ConsumableorderdetailsRecordserror)); |
| | | data.put('dataSize',ConsumableorderdetailsRecordsdummy.size()); |
| | | data.put('ConsumableorderdetailsRecordsdummy', JSON.serialize(ConsumableorderdetailsRecordsdummy)); |
| | | data.put('ConsumableorderdetailsRecordserror', JSON.serialize(ConsumableorderdetailsRecordserror)); |
| | | data.put('dataSize', ConsumableorderdetailsRecordsdummy.size()); |
| | | res.status = 'Success'; |
| | | res.code = 200; |
| | | System.debug('res = ' + res); |
| | | return res; |
| | | |
| | | } |
| | | |
| | | //取消拆盒确认 |
| | | @AuraEnabled |
| | | public static ResponseBodyLWC cancelRemoveBoxConfirm(String saveConsumableorderdetailsRecordsdummy,String accountName,String userWorkLocation,String agencyProType) { |
| | | public static ResponseBodyLWC cancelRemoveBoxConfirm( |
| | | String saveConsumableorderdetailsRecordsdummy, |
| | | String accountName, |
| | | String userWorkLocation, |
| | | String agencyProType |
| | | ) { |
| | | ResponseBodyLWC res = new ResponseBodyLWC(); |
| | | Map<String,object> data = new Map<String,object>(); |
| | | Map<String, object> data = new Map<String, object>(); |
| | | res.entity = data; |
| | | |
| | | userPro_Typestr = '%' + agencyProType + '%'; |
| | | accountName = accountName; |
| | | userWorkLocation =userWorkLocation; |
| | | List<ConsumableorderdetailsInfo> ConsumableorderdetailsRecordsdummy = (List<ConsumableorderdetailsInfo>)JSON.deserialize(saveConsumableorderdetailsRecordsdummy,List<ConsumableorderdetailsInfo>.class); |
| | | userWorkLocation = userWorkLocation; |
| | | List<ConsumableorderdetailsInfo> ConsumableorderdetailsRecordsdummy = (List<ConsumableorderdetailsInfo>) JSON.deserialize( |
| | | saveConsumableorderdetailsRecordsdummy, |
| | | List<ConsumableorderdetailsInfo>.class |
| | | ); |
| | | |
| | | List<Consumable_order_details2__c> ins = new List<Consumable_order_details2__c>(); |
| | | |
| | | List<Consumable_order_details2__c> ins = New List<Consumable_order_details2__c>(); |
| | | |
| | | Savepoint sp = Database.setSavepoint(); |
| | | if(ConsumableorderdetailsRecordsdummy.size()<1){ |
| | | if (ConsumableorderdetailsRecordsdummy.size() < 1) { |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'不存在取消拆盒明细')); |
| | | return new ResponseBodyLWC('Error',500, '不存在取消拆盒明细', ''); |
| | | return new ResponseBodyLWC('Error', 500, '不存在取消拆盒明细', ''); |
| | | // return null; |
| | | } |
| | | |
| | | List<String> BarCodeList = new List<String>(); |
| | | for (ConsumableorderdetailsInfo tmp : ConsumableorderdetailsRecordsdummy) { |
| | | for (ConsumableorderdetailsInfo tmp : ConsumableorderdetailsRecordsdummy) { |
| | | BarCodeList.add(tmp.esd.Bar_Code__c); |
| | | } |
| | | |
| | | try{ |
| | | try { |
| | | //取得通番大于001的在库明细 |
| | | List<Consumable_order_details2__c> orderDetails2del = [SELECT |
| | | Id, |
| | | Box_Piece__c, |
| | | RemoveBox_date__c, |
| | | RemoveBox_No__c, |
| | | Bar_Code__c, |
| | | //add by rentx 2020-10-13 start |
| | | ContractNo_text__c |
| | | /*,ContractNo__c*/ |
| | | //add by rentx 2020-10-13 end |
| | | FROM Consumable_order_details2__c |
| | | WHERE Dealer_Arrive__c = true |
| | | AND Dealer_Shipment__c = false |
| | | AND Dealer_Saled__c = false |
| | | AND Dealer_Returned__c = false |
| | | AND Lose_Flag__c = false |
| | | List<Consumable_order_details2__c> orderDetails2del = [ |
| | | SELECT |
| | | Id, |
| | | Box_Piece__c, |
| | | RemoveBox_date__c, |
| | | RemoveBox_No__c, |
| | | Bar_Code__c, |
| | | //add by rentx 2020-10-13 start |
| | | ContractNo_text__c |
| | | /*,ContractNo__c*/ |
| | | //add by rentx 2020-10-13 end |
| | | FROM Consumable_order_details2__c |
| | | WHERE |
| | | Dealer_Arrive__c = TRUE |
| | | AND Dealer_Shipment__c = FALSE |
| | | AND Dealer_Saled__c = FALSE |
| | | AND Dealer_Returned__c = FALSE |
| | | AND Lose_Flag__c = FALSE |
| | | AND Box_Piece__c = '个' |
| | | AND RemoveBox_date__c != null |
| | | AND RemoveBox_date__c != NULL |
| | | AND RemoveBox_No__c > 1 |
| | | AND Bar_Code__c in :BarCodeList |
| | | AND Dealer_Info_text__c = :accountName |
| | | AND Arrive_Owner_Work_Location__c =: userWorkLocation |
| | | AND Product_Type__c like : userPro_Typestr |
| | | ]; |
| | | AND Bar_Code__c IN :BarCodeList |
| | | AND Dealer_Info_text__c = :accountName |
| | | AND Arrive_Owner_Work_Location__c = :userWorkLocation |
| | | AND Product_Type__c LIKE :userPro_Typestr |
| | | ]; |
| | | |
| | | List<Consumable_order_details2__c> orderlistdel = new List<Consumable_order_details2__c>(); |
| | | List<Consumable_order_details2__c> orderlistupd= new List<Consumable_order_details2__c>(); |
| | | |
| | | List<Consumable_order_details2__c> orderlistupd = new List<Consumable_order_details2__c>(); |
| | | |
| | | for (Consumable_order_details2__c detail2tmp : orderDetails2del) { |
| | | Consumable_order_details2__c delDetails2 = new Consumable_order_details2__c(); |
| | | delDetails2.Id = detail2tmp.Id; |
| | | delDetails2.Id = detail2tmp.Id; |
| | | |
| | | //删除通番大于001的明细2 |
| | | //delete delDetails2; |
| | |
| | | } |
| | | |
| | | //取得通番001的在库明细 |
| | | List<Consumable_order_details2__c> orderDetails2 = [SELECT |
| | | Id, |
| | | Box_Piece__c, |
| | | RemoveBox_date__c, |
| | | RemoveBox_No__c, |
| | | Bar_Code__c, |
| | | //add by rentx 2020-10-13 start |
| | | ContractNo_text__c |
| | | /*,ContractNo__c*/ |
| | | //add by rebtx 2020-10-13 end |
| | | List<Consumable_order_details2__c> orderDetails2 = [ |
| | | SELECT |
| | | Id, |
| | | Box_Piece__c, |
| | | RemoveBox_date__c, |
| | | RemoveBox_No__c, |
| | | Bar_Code__c, |
| | | //add by rentx 2020-10-13 start |
| | | ContractNo_text__c, |
| | | /*,ContractNo__c*/ |
| | | //add by rebtx 2020-10-13 end |
| | | // tcm start |
| | | ,Consumable_order_minor__r.ContractNo__c |
| | | // tcm end |
| | | FROM Consumable_order_details2__c |
| | | WHERE Dealer_Arrive__c = true |
| | | AND Dealer_Shipment__c = false |
| | | AND Dealer_Saled__c = false |
| | | AND Dealer_Returned__c = false |
| | | AND Lose_Flag__c = false |
| | | Consumable_order_minor__r.ContractNo__c |
| | | // tcm end |
| | | FROM Consumable_order_details2__c |
| | | WHERE |
| | | Dealer_Arrive__c = TRUE |
| | | AND Dealer_Shipment__c = FALSE |
| | | AND Dealer_Saled__c = FALSE |
| | | AND Dealer_Returned__c = FALSE |
| | | AND Lose_Flag__c = FALSE |
| | | AND Box_Piece__c = '个' |
| | | AND RemoveBox_date__c !=null |
| | | AND RemoveBox_date__c != NULL |
| | | AND RemoveBox_No__c = 1 |
| | | AND Bar_Code__c in :BarCodeList |
| | | AND Dealer_Info_text__c = :accountName |
| | | AND Arrive_Owner_Work_Location__c =: userWorkLocation |
| | | AND Product_Type__c like : userPro_Typestr |
| | | ]; |
| | | AND Bar_Code__c IN :BarCodeList |
| | | AND Dealer_Info_text__c = :accountName |
| | | AND Arrive_Owner_Work_Location__c = :userWorkLocation |
| | | AND Product_Type__c LIKE :userPro_Typestr |
| | | ]; |
| | | |
| | | for (Consumable_order_details2__c detail2tmp : orderDetails2) { |
| | | Consumable_order_details2__c updDetails2 = new Consumable_order_details2__c(); |
| | | updDetails2.Id = detail2tmp.Id; |
| | | updDetails2.Box_Piece__c = '盒'; |
| | | updDetails2.RemoveBox_date__c = null; |
| | | updDetails2.RemoveBox_No__c = null; |
| | | updDetails2.Id = detail2tmp.Id; |
| | | updDetails2.Box_Piece__c = '盒'; |
| | | updDetails2.RemoveBox_date__c = null; |
| | | updDetails2.RemoveBox_No__c = null; |
| | | |
| | | // tcm start |
| | | if (String.isBlank(detail2tmp.Consumable_order_minor__r.ContractNo__c)) { |
| | | updDetails2.ContractNo_text__c= detail2tmp.ContractNo_text__c; |
| | | }else { |
| | | updDetails2.ContractNo_text__c= detail2tmp.Consumable_order_minor__r.ContractNo__c; |
| | | updDetails2.ContractNo_text__c = detail2tmp.ContractNo_text__c; |
| | | } else { |
| | | updDetails2.ContractNo_text__c = detail2tmp.Consumable_order_minor__r.ContractNo__c; |
| | | } |
| | | // updDetails2.ContractNo_text__c = detail2tmp.ContractNo__c; |
| | | // tcm end |
| | |
| | | orderlistupd.add(updDetails2); |
| | | } |
| | | |
| | | if(orderlistdel.size()>0){ |
| | | if (orderlistdel.size() > 0) { |
| | | delete orderlistdel; |
| | | } |
| | | |
| | | if(orderlistupd.size()>0){ |
| | | if (orderlistupd.size() > 0) { |
| | | update orderlistupd; |
| | | } |
| | | saveFLGbln = true; |
| | | alertMessage = '取消拆盒完成'; |
| | | data.put('saveFLGbln',saveFLGbln); |
| | | data.put('saveFLGbln', saveFLGbln); |
| | | res.status = 'Success'; |
| | | res.code = 200; |
| | | res.msg = alertMessage; |
| | | System.debug('res = ' + res); |
| | | return res; |
| | | // return null; |
| | | }catch(Exception e){ |
| | | } catch (Exception e) { |
| | | Database.rollback(sp); |
| | | ApexPages.addMessages(e); |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | |
| | | @TestVisible |
| | | class ConsumableorderdetailsInfo implements Comparable { |
| | | public Consumable_order_details2__c esd { get; set; } |
| | | public Product2__c Prod { get; set; } |
| | |
| | | //public String tracingCodeNo { get; set; } |
| | | public String oldConsumableCount { get; set; } |
| | | public String ErrorReason { get; set; } |
| | | public ConsumableorderdetailsInfo(Consumable_order_details2__c e,string str) { |
| | | esd = e; |
| | | Prod = e.Consumable_Product__r; |
| | | public ConsumableorderdetailsInfo(Consumable_order_details2__c e, string str) { |
| | | esd = e; |
| | | Prod = e.Consumable_Product__r; |
| | | oldConsumableCount = e.name; |
| | | ErrorReason = str; |
| | | ErrorReason = str; |
| | | } |
| | | public ConsumableorderdetailsInfo(Consumable_order_details2__c e) { |
| | | esd = e; |
| | | Prod = e.Consumable_Product__r; |
| | | esd = e; |
| | | Prod = e.Consumable_Product__r; |
| | | oldConsumableCount = e.name; |
| | | } |
| | | /* |
| | | /* |
| | | public ConsumableorderdetailsInfo(Product2__c e,String barCode,Date sterilizationlimit,String serialNoorLot,String tracingCode) { |
| | | esd = new Consumable_order_details2__c(); |
| | | ProductName = e.Name__c; |
| | |
| | | return null; |
| | | } |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | @IsTest |
| | | private class LexCancelRemoveBoxControllerTest { |
| | | static testMethod void testMethod1() { |
| | | Oly_TriggerHandler.bypass('ConsumableAssetHander'); |
| | | Oly_TriggerHandler.bypass('Oly_TriggerHandler'); |
| | | user myUser_test; |
| | | Account myAccount2; |
| | | User thisUser = [SELECT Id FROM User WHERE Id = :UserInfo.getUserId()]; |
| | | System.runAs(thisUser) { |
| | | List<RecordType> rectCo = [ |
| | | SELECT Id |
| | | FROM RecordType |
| | | WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '販売店' |
| | | ]; |
| | | if (rectCo.size() == 0) { |
| | | return; |
| | | } |
| | | Profile prof = [ |
| | | SELECT Id |
| | | FROM Profile |
| | | WHERE Name = '901_经销商社区普通权限_2重验证(ET Email)' |
| | | ]; |
| | | |
| | | myAccount2 = new Account( |
| | | name = 'Testaccount002', |
| | | Dealer_discount__c = 20, |
| | | RecordTypeId = rectCo[0].Id, |
| | | AgentCode_Ext__c = '9999900' |
| | | ); |
| | | insert myAccount2; |
| | | |
| | | Contact core = new Contact( |
| | | email = 'jplumber@salesforce.com', |
| | | firstname = 'Joe', |
| | | lastname = 'Plumber', |
| | | accountid = myAccount2.id |
| | | ); |
| | | insert core; |
| | | MyUser_Test = new User( |
| | | ContactId = core.id, |
| | | Alias = 'newUser', |
| | | Email = 'newuser@testorg.com', |
| | | EmailEncodingKey = 'UTF-8', |
| | | LastName = 'TestUser', |
| | | LanguageLocaleKey = 'zh_CN', |
| | | LocaleSidKey = 'zh_CN', |
| | | ProfileId = prof.Id, |
| | | TimeZoneSidKey = 'Asia/Shanghai', |
| | | UserName = 'testUser@testorg.com' |
| | | ); |
| | | insert MyUser_Test; |
| | | } |
| | | System.runAs(MyUser_Test) { |
| | | Product2 prod01 = new Product2( |
| | | Name = 'Test01', |
| | | ProductCode = 'Test01', |
| | | Asset_Model_No__c = 'Test01', |
| | | SFDA_Status__c = '有効', |
| | | JANCODE__c = '04953170200311', |
| | | Dealer_special_Object__c = true, |
| | | Packing_list_manual__c = 5, |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod02 = new Product2( |
| | | Name = 'Test02', |
| | | ProductCode = 'Test02', |
| | | Asset_Model_No__c = 'Test02', |
| | | SFDA_Status__c = '有効', |
| | | JANCODE__c = '04953170200312', |
| | | Dealer_special_Object__c = true, |
| | | Packing_list_manual__c = 5, |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod03 = new Product2( |
| | | Name = 'Test03', |
| | | ProductCode = 'Test03', |
| | | Asset_Model_No__c = 'Test03', |
| | | SFDA_Status__c = '有効', |
| | | JANCODE__c = '04953170200313', |
| | | Dealer_special_Object__c = true, |
| | | Packing_list_manual__c = 1, |
| | | Manual_Entry__c = false |
| | | ); |
| | | insert new List<Product2>{ prod01, prod02, prod03 }; |
| | | Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'Test001', Product2__c = prod01.Id); |
| | | Product2__c pro2 = new Product2__c(Name = 'Pro002', OT_CODE_Text__c = 'Test002', Product2__c = prod02.Id); |
| | | Product2__c pro3 = new Product2__c(Name = 'Pro003', OT_CODE_Text__c = 'Test003', Product2__c = prod03.Id); |
| | | insert new List<Product2__c>{ pro1, pro2, pro3 }; |
| | | //订单 |
| | | Consumable_order__c Order1 = new Consumable_order__c(); |
| | | Order1.Name = 'OCM_01_001'; |
| | | Order1.Order_status__c = '批准'; |
| | | Order1.Order_type__c = '订单'; |
| | | Order1.Dealer_Info__c = myAccount2.Id; |
| | | Order1.RecordTypeid = System.Label.RT_ConOrder_Delivery; |
| | | Order1.Order_ProType__c = 'ET'; |
| | | insert Order1; |
| | | List<Consumable_order_details2__c> conList = new List<Consumable_order_details2__c>(); |
| | | |
| | | //daoku |
| | | Consumable_order_details2__c Orderdet2 = new Consumable_order_details2__c(); |
| | | Orderdet2.Name = 'OCM_01_001001'; |
| | | Orderdet2.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet2.Consumable_Product__c = pro1.Id; |
| | | Orderdet2.Asset_Model_No__c = 'Test01'; |
| | | Orderdet2.Arrive_date__c = Date.today(); |
| | | Orderdet2.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRF'; |
| | | Orderdet2.Used_date__c = null; |
| | | Orderdet2.Lose_Flag__c = false; |
| | | Orderdet2.Return_date__c = null; |
| | | Orderdet2.Send_Date__c = null; |
| | | Orderdet2.Box_Piece__c = '盒'; |
| | | conList.add(Orderdet2); |
| | | // insert Orderdet2; |
| | | |
| | | //chuku |
| | | Consumable_order_details2__c Orderdet3 = new Consumable_order_details2__c(); |
| | | Orderdet3.Name = 'OCM_01_001002'; |
| | | Orderdet3.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet3.Consumable_Product__c = pro2.Id; |
| | | Orderdet3.Asset_Model_No__c = 'Test02'; |
| | | Orderdet3.Arrive_date__c = Date.today(); |
| | | Orderdet3.Send_Date__c = Date.today(); |
| | | Orderdet3.Box_Piece__c = '个'; |
| | | Orderdet3.RemoveBox_date__c = Date.today(); |
| | | Orderdet3.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRA'; |
| | | Orderdet3.Used_date__c = null; |
| | | Orderdet3.Lose_Flag__c = false; |
| | | Orderdet3.Return_date__c = null; |
| | | conList.add(Orderdet3); |
| | | // insert Orderdet3; |
| | | |
| | | //sale |
| | | Consumable_order_details2__c Orderdet4 = new Consumable_order_details2__c(); |
| | | Orderdet4.Name = 'OCM_01_001004'; |
| | | Orderdet4.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet4.Consumable_Product__c = pro2.Id; |
| | | Orderdet4.Asset_Model_No__c = 'Test02'; |
| | | Orderdet4.Arrive_date__c = Date.today(); |
| | | Orderdet4.Box_Piece__c = '个'; |
| | | Orderdet4.RemoveBox_date__c = Date.today(); |
| | | Orderdet4.Bar_Code__c = '011495317020843711170400172003311074K250CXSDS'; |
| | | Orderdet4.Lose_Flag__c = false; |
| | | Orderdet4.Return_date__c = null; |
| | | Orderdet4.Used_date__c = Date.today(); |
| | | // insert Orderdet4; |
| | | conList.add(Orderdet4); |
| | | |
| | | //ProductPacking_list_manual__c=1 |
| | | Consumable_order_details2__c Orderdet5 = new Consumable_order_details2__c(); |
| | | Orderdet5.Name = 'OCM_01_001004'; |
| | | Orderdet5.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet5.Consumable_Product__c = pro3.Id; |
| | | Orderdet5.Asset_Model_No__c = 'Test03'; |
| | | Orderdet5.Arrive_date__c = Date.today(); |
| | | //Orderdet5.Used_date__c = Date.today(); |
| | | Orderdet5.Box_Piece__c = '盒'; |
| | | Orderdet5.RemoveBox_date__c = Date.today(); |
| | | Orderdet5.Used_date__c = null; |
| | | Orderdet5.Lose_Flag__c = false; |
| | | Orderdet5.Return_date__c = null; |
| | | Orderdet5.Send_Date__c = null; |
| | | Orderdet5.Bar_Code__c = '010495317014059411170400172203311074K250DCWQW'; |
| | | // insert Orderdet5; |
| | | conList.add(Orderdet5); |
| | | |
| | | //pandian |
| | | Consumable_order_details2__c Orderdet7 = new Consumable_order_details2__c(); |
| | | Orderdet7.Name = 'OCM_01_001004'; |
| | | Orderdet7.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet7.Consumable_Product__c = pro2.Id; |
| | | Orderdet7.Asset_Model_No__c = 'Test02'; |
| | | Orderdet7.Box_Piece__c = '盒'; |
| | | Orderdet7.Lose_Flag__c = false; |
| | | Orderdet7.Bar_Code__c = '010495317014059411170400172203311074K250DBVUD'; |
| | | Orderdet7.RemoveBox_date__c = Date.today(); |
| | | Orderdet7.Inventory_date__c = Date.today(); |
| | | // insert Orderdet7; |
| | | conList.add(Orderdet7); |
| | | |
| | | Consumable_order_details2__c Orderdet8 = new Consumable_order_details2__c(); |
| | | Orderdet8.Name = 'OCM_01_001004'; |
| | | Orderdet8.Consumable_order_minor__c = Order1.Id; |
| | | Orderdet8.Consumable_Product__c = pro2.Id; |
| | | Orderdet8.Asset_Model_No__c = 'Test02'; |
| | | Orderdet8.Arrive_date__c = Date.today(); |
| | | Orderdet8.Box_Piece__c = '个'; |
| | | Orderdet8.Lose_Flag__c = false; |
| | | Orderdet8.Bar_Code__c = '1683272847250250WZIOF'; |
| | | Orderdet8.Used_date__c = null; |
| | | Orderdet8.Lose_Flag__c = false; |
| | | Orderdet8.Return_date__c = null; |
| | | Orderdet8.RemoveBox_date__c = Date.today(); |
| | | Orderdet8.Send_Date__c = null; |
| | | Orderdet8.RemoveBox_No__c = 3; |
| | | conList.add(Orderdet8); |
| | | insert conList; |
| | | // insert Orderdet8; |
| | | |
| | | System.Test.startTest(); |
| | | LexCancelRemoveBoxController.init(); |
| | | // LexCancelRemoveBoxController.getinventorysize(); |
| | | LexCancelRemoveBoxController.searchConsumableorderdetails('1683272847250250WZIOF', '捷尔医疗(海南)有限公司', '深圳', 'ENG'); |
| | | LexCancelRemoveBoxController.searchConsumableorderdetails('', '捷尔医疗(海南)有限公司', '深圳', 'ENG'); |
| | | LexCancelRemoveBoxController.cancelRemoveBoxConfirm(JSON.serialize(conList), '捷尔医疗(海南)有限公司', '深圳', 'ENG'); |
| | | |
| | | System.Test.stopTest(); |
| | | } |
| | | |
| | | } |
| | | static testMethod void testMethod2() { |
| | | Oly_TriggerHandler.bypass('ConsumableAssetHander'); |
| | | Oly_TriggerHandler.bypass('Oly_TriggerHandler'); |
| | | user myUser_test; |
| | | Account myAccount2; |
| | | User thisUser = [SELECT Id FROM User WHERE Id = :UserInfo.getUserId()]; |
| | | System.runAs(thisUser) { |
| | | List<RecordType> rectCo = [ |
| | | SELECT Id |
| | | FROM RecordType |
| | | WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '販売店' |
| | | ]; |
| | | if (rectCo.size() == 0) { |
| | | return; |
| | | } |
| | | Profile prof = [ |
| | | SELECT Id |
| | | FROM Profile |
| | | WHERE Name = '901_经销商社区普通权限_2重验证(ET Email)' |
| | | ]; |
| | | |
| | | myAccount2 = new Account( |
| | | name = 'Testaccount002', |
| | | Dealer_discount__c = 20, |
| | | RecordTypeId = rectCo[0].Id, |
| | | AgentCode_Ext__c = '9999900' |
| | | ); |
| | | insert myAccount2; |
| | | |
| | | Contact core = new Contact( |
| | | email = 'jplumber@salesforce.com', |
| | | firstname = 'Joe', |
| | | lastname = 'Plumber', |
| | | accountid = myAccount2.id |
| | | ); |
| | | insert core; |
| | | MyUser_Test = new User( |
| | | ContactId = core.id, |
| | | Alias = 'newUser', |
| | | Email = 'newuser@testorg.com', |
| | | EmailEncodingKey = 'UTF-8', |
| | | LastName = 'TestUser', |
| | | LanguageLocaleKey = 'zh_CN', |
| | | LocaleSidKey = 'zh_CN', |
| | | ProfileId = prof.Id, |
| | | TimeZoneSidKey = 'Asia/Shanghai', |
| | | UserName = 'testUser@testorg.com', |
| | | Work_Location__c = '重庆' |
| | | ); |
| | | 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.Dealer_Info__c = myAccount2.Id; |
| | | Order1.RecordTypeid = '01210000000c9dqAAA'; |
| | | Order1.Order_ProType__c = 'ET'; |
| | | insert Order1; |
| | | |
| | | List<Consumable_order_details2__c> conList = new List<Consumable_order_details2__c>(); |
| | | List<Consumable_order_details2__c> conList1 = new List<Consumable_order_details2__c>(); |
| | | Consumable_order_details2__c con = new Consumable_order_details2__c(); |
| | | con.Consumable_Arrived_order__c = Order1.Id; |
| | | con.Send_Date__c = null; |
| | | con.Used_date__c = null; |
| | | con.Return_date__c = null; |
| | | con.Lose_Flag__c = false; |
| | | con.Box_Piece__c = '个'; |
| | | con.RemoveBox_date__c = Date.today(); |
| | | con.Arrive_date__c = Date.today(); |
| | | con.RemoveBox_No__c = 2; |
| | | con.Bar_Code__c = '1682414917514250XSCYW'; |
| | | conList.add(con); |
| | | |
| | | Consumable_order_details2__c con1 = new Consumable_order_details2__c(); |
| | | con1.Consumable_Arrived_order__c = Order1.Id; |
| | | con1.Send_Date__c = null; |
| | | con1.Used_date__c = null; |
| | | con1.Return_date__c = null; |
| | | con1.Lose_Flag__c = false; |
| | | con1.Box_Piece__c = '个'; |
| | | con1.RemoveBox_date__c = Date.today(); |
| | | con1.Arrive_date__c = Date.today(); |
| | | con.RemoveBox_No__c = 1; |
| | | con1.Bar_Code__c = '1682414917514250XSCYW'; |
| | | conList.add(con1); |
| | | insert (conList); |
| | | System.debug('conList' + conList); |
| | | System.Test.startTest(); |
| | | LexCancelRemoveBoxController.cancelRemoveBoxConfirm(JSON.serialize(conList), 'Testaccount002', '重庆', 'ET'); |
| | | LexCancelRemoveBoxController.cancelRemoveBoxConfirm(JSON.serialize(conList1), 'Testaccount002', '重庆', 'ET'); |
| | | System.Test.stopTest(); |
| | | } |
| | | } |
| | | static testMethod void testMethod3() { |
| | | Oly_TriggerHandler.bypass('ConsumableAssetHander'); |
| | | Oly_TriggerHandler.bypass('Oly_TriggerHandler'); |
| | | User myUser_test; |
| | | Account myAccount2; |
| | | User thisUser = [SELECT Id FROM User WHERE Id = :UserInfo.getUserId()]; |
| | | System.runAs(thisUser) { |
| | | List<RecordType> rectCo = [ |
| | | SELECT Id |
| | | FROM RecordType |
| | | WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '販売店' |
| | | ]; |
| | | if (rectCo.size() == 0) { |
| | | return; |
| | | } |
| | | Profile prof = [ |
| | | SELECT Id |
| | | FROM Profile |
| | | WHERE Name = '901_经销商社区普通权限_2重验证(ET Email)' |
| | | ]; |
| | | myAccount2 = new Account(name = 'Testaccount003', Dealer_discount__c = 20, RecordTypeId = rectCo[0].Id, AgentCode_Ext__c = '2'); |
| | | insert myAccount2; |
| | | Contact core = new Contact(email = 'wan@salesforce.com', firstname = 'wan', lastname = 'Plumbers', accountid = myAccount2.id); |
| | | insert core; |
| | | myUser_test = new User( |
| | | ContactId = core.id, |
| | | Alias = 'newUser', |
| | | Email = 'newuser@testorg.com', |
| | | EmailEncodingKey = 'UTF-8', |
| | | LastName = 'TestUser', |
| | | LanguageLocaleKey = 'zh_CN', |
| | | LocaleSidKey = 'zh_CN', |
| | | ProfileId = prof.Id, |
| | | TimeZoneSidKey = 'Asia/Shanghai', |
| | | UserName = 'testUser@testorg.com', |
| | | UserPro_Type__c = 'ENG', |
| | | Work_Location__c = '北京' |
| | | ); |
| | | insert myUser_test; |
| | | System.debug('MyUser_Test' + MyUser_Test); |
| | | } |
| | | System.runAs(MyUser_Test) { |
| | | //产品信息 |
| | | Product2 prod01 = new Product2( |
| | | Name = 'Test01', |
| | | ProductCode = 'Test01', |
| | | Asset_Model_No__c = 'Test01', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Packing_list_manual__c = 1, |
| | | SFDA_Expiration_Date__c = Date.today(), |
| | | Category5__c = 'test01', |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod02 = new Product2( |
| | | Name = 'Test02', |
| | | ProductCode = 'Test02', |
| | | Asset_Model_No__c = 'Test02', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Packing_list_manual__c = 1, |
| | | SFDA_Expiration_Date__c = Date.today(), |
| | | Category5__c = 'test02', |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod03 = new Product2( |
| | | Name = 'Test03', |
| | | ProductCode = 'Test03', |
| | | Asset_Model_No__c = 'Test03', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Packing_list_manual__c = 1, |
| | | SFDA_Expiration_Date__c = Date.today(), |
| | | Category5__c = 'test03', |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod04 = new Product2( |
| | | Name = 'Test04', |
| | | ProductCode = 'Test04', |
| | | Asset_Model_No__c = 'Test04', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Packing_list_manual__c = 2, |
| | | SFDA_Expiration_Date__c = Date.today(), |
| | | Category5__c = 'test04', |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod05 = new Product2( |
| | | Name = 'Test05', |
| | | ProductCode = 'Test05', |
| | | Asset_Model_No__c = 'Test05', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Packing_list_manual__c = 1, |
| | | SFDA_Expiration_Date__c = Date.today(), |
| | | Category5__c = 'test05', |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod06 = new Product2( |
| | | Name = 'Test06', |
| | | ProductCode = 'Test06', |
| | | Asset_Model_No__c = 'Test06', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Packing_list_manual__c = 1, |
| | | SFDA_Expiration_Date__c = Date.today(), |
| | | Category5__c = 'test06', |
| | | Manual_Entry__c = false |
| | | ); |
| | | insert new List<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 pro3 = new Product2__c(Name = 'Pro004', OT_CODE_Text__c = 'Test004', Product2__c = prod03.Id); |
| | | Product2__c pro4 = new Product2__c(Name = 'Pro005', OT_CODE_Text__c = 'Test005', Product2__c = prod04.Id); |
| | | Product2__c pro5 = new Product2__c(Name = 'Pro003', OT_CODE_Text__c = 'Test003', Product2__c = prod05.Id); |
| | | Product2__c pro6 = new Product2__c(Name = 'Pro006', OT_CODE_Text__c = 'Test006', Product2__c = prod06.Id); |
| | | insert new List<Product2__c>{ pro4, pro5, pro6, pro1, pro2, pro3 }; |
| | | //订单 |
| | | Consumable_order__c Order1 = new Consumable_order__c(); |
| | | Order1.Name = 'OCM_01'; |
| | | Order1.Order_status__c = '批准'; |
| | | Order1.Order_type__c = '订单'; |
| | | Order1.Dealer_Info__c = myAccount2.Id; |
| | | Order1.RecordTypeid = System.Label.RT_ConOrder_Delivery; |
| | | Order1.Order_ProType__c = 'ENG'; |
| | | insert Order1; |
| | | //出货 |
| | | Consumable_order__c Order2 = new Consumable_order__c(); |
| | | Order2.Name = 'OCM_01'; |
| | | Order2.Order_status__c = '批准'; |
| | | Order2.Order_type__c = '订单'; |
| | | Order2.Dealer_Info__c = myAccount2.Id; |
| | | Order2.RecordTypeid = '012100000006Jx9AAE'; |
| | | Order2.Order_ProType__c = 'ENG'; |
| | | insert Order2; |
| | | |
| | | List<Consumable_order_details2__c> conList = new List<Consumable_order_details2__c>(); |
| | | List<Consumable_order_details2__c> conList1 = new List<Consumable_order_details2__c>(); |
| | | List<Consumable_order_details2__c> conList2 = new List<Consumable_order_details2__c>(); |
| | | //产品类型不同 |
| | | Consumable_order_details2__c con = new Consumable_order_details2__c(); |
| | | con.Name = 'OCM_01_001001'; |
| | | con.Consumable_order_minor__c = Order1.Id; |
| | | con.Consumable_Product__c = pro2.Id; |
| | | con.Asset_Model_No__c = 'Test01'; |
| | | con.Arrive_date__c = Date.today(); |
| | | con.Bar_Code__c = '10061'; |
| | | con.Used_date__c = null; |
| | | con.Lose_Flag__c = false; |
| | | con.Return_date__c = null; |
| | | con.Send_Date__c = null; |
| | | con.Box_Piece__c = '盒'; |
| | | conList.add(con); |
| | | insert conList; |
| | | |
| | | //产品类型不同 |
| | | Consumable_order_details2__c con1 = new Consumable_order_details2__c(); |
| | | con1.Consumable_Product__c = pro2.Id; |
| | | con1.Consumable_order_minor__c = Order1.Id; |
| | | con1.Bar_Code__c = '10011'; |
| | | con1.Arrive_date__c = Date.today(); |
| | | conList1.add(con1); |
| | | //没有拆盒 |
| | | Consumable_order_details2__c con2 = new Consumable_order_details2__c(); |
| | | con2.Send_Date__c = null; |
| | | con2.Used_date__c = null; |
| | | con2.Lose_Flag__c = false; |
| | | con2.Box_Piece__c = '盒'; |
| | | con2.Consumable_Product__c = pro2.Id; |
| | | con2.Consumable_order_minor__c = Order1.Id; |
| | | con2.Bar_Code__c = '10021'; |
| | | con2.Arrive_date__c = Date.today(); |
| | | con2.RemoveBox_date__c = null; |
| | | conList1.add(con2); |
| | | insert conList1; |
| | | |
| | | //已出货 未到货 |
| | | Consumable_order_details2__c con3 = new Consumable_order_details2__c(); |
| | | con3.Arrive_date__c = null; |
| | | con3.Send_Date__c = null; |
| | | con3.Used_date__c = null; |
| | | con3.Return_date__c = null; |
| | | con3.Lose_Flag__c = false; |
| | | con3.Box_Piece__c = '盒'; |
| | | con3.Consumable_Arrived_order__c = Order2.Id; |
| | | con3.Consumable_Product__c = pro2.Id; |
| | | con3.Bar_Code__c = '10031'; |
| | | conList2.add(con3); |
| | | //拆盒已出货 |
| | | Consumable_order_details2__c con4 = new Consumable_order_details2__c(); |
| | | con4.Arrive_date__c = Date.today(); |
| | | con4.Send_Date__c = Date.today(); |
| | | con4.Return_date__c = null; |
| | | con4.Used_date__c = null; |
| | | con4.Lose_Flag__c = false; |
| | | con4.Box_Piece__c = '个'; |
| | | con4.RemoveBox_date__c = Date.today(); |
| | | con4.Consumable_Arrived_order__c = Order2.Id; |
| | | con4.Consumable_Product__c = pro2.Id; |
| | | con4.Bar_Code__c = '10041'; |
| | | conList2.add(con4); |
| | | insert conList2; |
| | | |
| | | System.Test.startTest(); |
| | | LexCancelRemoveBoxController.barcode = '1004\n1003\n1002\n1001'; |
| | | LexCancelRemoveBoxController.searchConsumableorderdetails( |
| | | '10061\n10051\n10041\n10031\n10021\n10011', |
| | | 'Testaccount003', |
| | | '重庆', |
| | | 'ET' |
| | | ); |
| | | String str = '该商品存在盘点履历'; |
| | | String errorReason = ''; |
| | | LexCancelRemoveBoxController.ConsumableorderdetailsInfo c2 = new LexCancelRemoveBoxController.ConsumableorderdetailsInfo( |
| | | con, |
| | | str |
| | | ); |
| | | c2.esd = con; |
| | | c2.Prod = con.Consumable_product__r; |
| | | c2.oldConsumableCount = con.name; |
| | | c2.ErrorReason = str; |
| | | LexCancelRemoveBoxController.ConsumableorderdetailsInfo c1 = new LexCancelRemoveBoxController.ConsumableorderdetailsInfo(con2); |
| | | c1.esd = con; |
| | | c1.Prod = con.Consumable_product__r; |
| | | c1.oldConsumableCount = con.name; |
| | | c1.compareTo(c2); |
| | | System.Test.stopTest(); |
| | | } |
| | | } |
| | | static testMethod void testMethod4() { |
| | | Oly_TriggerHandler.bypass('ConsumableAssetHander'); |
| | | Oly_TriggerHandler.bypass('Oly_TriggerHandler'); |
| | | User myUser_test; |
| | | Account myAccount2; |
| | | User thisUser = [SELECT Id FROM User WHERE Id = :UserInfo.getUserId()]; |
| | | System.runAs(thisUser) { |
| | | List<RecordType> rectCo = [ |
| | | SELECT Id |
| | | FROM RecordType |
| | | WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '販売店' |
| | | ]; |
| | | if (rectCo.size() == 0) { |
| | | return; |
| | | } |
| | | Profile prof = [ |
| | | SELECT Id |
| | | FROM Profile |
| | | WHERE Name = '901_经销商社区普通权限_2重验证(ET Email)' |
| | | ]; |
| | | myAccount2 = new Account(name = 'Testaccount003', Dealer_discount__c = 20, RecordTypeId = rectCo[0].Id, AgentCode_Ext__c = '2'); |
| | | insert myAccount2; |
| | | Contact core = new Contact(email = 'wan@salesforce.com', firstname = 'wan', lastname = 'Plumbers', accountid = myAccount2.id); |
| | | insert core; |
| | | MyUser_Test = new User( |
| | | ContactId = core.id, |
| | | Alias = 'newWang', |
| | | Email = 'newWang@testorg.com', |
| | | EmailEncodingKey = 'UTF-8', |
| | | LastName = 'TestUserWang', |
| | | LanguageLocaleKey = 'zh_CN', |
| | | LocaleSidKey = 'zh_CN', |
| | | ProfileId = prof.Id, |
| | | TimeZoneSidKey = 'Asia/Shanghai', |
| | | UserName = 'testUserWang@testorg.com', |
| | | Work_Location__c = '重庆' |
| | | ); |
| | | insert MyUser_Test; |
| | | System.debug('MyUser_Test' + MyUser_Test); |
| | | } |
| | | System.runAs(MyUser_Test) { |
| | | //产品信息 |
| | | Product2 prod01 = new Product2( |
| | | Name = 'Test01', |
| | | ProductCode = 'Test01', |
| | | Asset_Model_No__c = 'Test01', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Packing_list_manual__c = 1, |
| | | SFDA_Expiration_Date__c = Date.today(), |
| | | Category5__c = 'test01', |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod02 = new Product2( |
| | | Name = 'Test02', |
| | | ProductCode = 'Test02', |
| | | Asset_Model_No__c = 'Test02', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Packing_list_manual__c = 1, |
| | | SFDA_Expiration_Date__c = Date.today(), |
| | | Category5__c = 'test02', |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod03 = new Product2( |
| | | Name = 'Test03', |
| | | ProductCode = 'Test03', |
| | | Asset_Model_No__c = 'Test03', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Packing_list_manual__c = 1, |
| | | SFDA_Expiration_Date__c = Date.today(), |
| | | Category5__c = 'test03', |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod04 = new Product2( |
| | | Name = 'Test04', |
| | | ProductCode = 'Test04', |
| | | Asset_Model_No__c = 'Test04', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Packing_list_manual__c = 2, |
| | | SFDA_Expiration_Date__c = Date.today(), |
| | | Category5__c = 'test04', |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod05 = new Product2( |
| | | Name = 'Test05', |
| | | ProductCode = 'Test05', |
| | | Asset_Model_No__c = 'Test05', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Packing_list_manual__c = 1, |
| | | SFDA_Expiration_Date__c = Date.today(), |
| | | Category5__c = 'test05', |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod06 = new Product2( |
| | | Name = 'Test06', |
| | | ProductCode = 'Test06', |
| | | Asset_Model_No__c = 'Test06', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Packing_list_manual__c = 1, |
| | | SFDA_Expiration_Date__c = Date.today(), |
| | | Category5__c = 'test06', |
| | | Manual_Entry__c = false |
| | | ); |
| | | insert new List<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 pro3 = new Product2__c(Name = 'Pro004', OT_CODE_Text__c = 'Test004', Product2__c = prod03.Id); |
| | | Product2__c pro4 = new Product2__c(Name = 'Pro005', OT_CODE_Text__c = 'Test005', Product2__c = prod04.Id); |
| | | Product2__c pro5 = new Product2__c(Name = 'Pro003', OT_CODE_Text__c = 'Test003', Product2__c = prod05.Id); |
| | | Product2__c pro6 = new Product2__c(Name = 'Pro006', OT_CODE_Text__c = 'Test006', Product2__c = prod06.Id); |
| | | insert new List<Product2__c>{ pro4, pro5, pro6, pro1, pro2, pro3 }; |
| | | List<Consumable_order__c> orderList = new List<Consumable_order__c>(); |
| | | //销售 |
| | | Consumable_order__c Order1 = new Consumable_order__c(); |
| | | Order1.Name = 'OCM_01'; |
| | | Order1.Order_status__c = '批准'; |
| | | Order1.Order_type__c = '销售'; |
| | | Order1.Dealer_Info__c = myAccount2.Id; |
| | | Order1.RecordTypeid = '01210000000c9duAAA'; |
| | | Order1.Order_ProType__c = 'ENG'; |
| | | orderList.add(Order1); |
| | | //返品 |
| | | Consumable_order__c Order2 = new Consumable_order__c(); |
| | | Order2.Name = 'OCM_01'; |
| | | Order2.Order_status__c = '批准'; |
| | | Order2.Order_type__c = '返品'; |
| | | Order2.Dealer_Info__c = myAccount2.Id; |
| | | Order2.RecordTypeid = '012100000006Jx4AAE'; |
| | | Order2.Order_ProType__c = 'ENG'; |
| | | orderList.add(Order2); |
| | | //盘点 |
| | | Consumable_order__c Order3 = new Consumable_order__c(); |
| | | Order3.Name = 'OCM_01'; |
| | | Order3.Order_status__c = '批准'; |
| | | Order3.Order_type__c = '盘点'; |
| | | Order3.Dealer_Info__c = myAccount2.Id; |
| | | Order3.RecordTypeid = '01210000000c9dsAAA'; |
| | | Order3.Order_ProType__c = 'ENG'; |
| | | orderList.add(Order3); |
| | | //发货 |
| | | Consumable_order__c Order4 = new Consumable_order__c(); |
| | | Order4.Name = 'OCM_0122'; |
| | | Order4.Order_status__c = '批准'; |
| | | Order4.Order_type__c = '订单'; |
| | | Order4.Dealer_Info__c = myAccount2.Id; |
| | | Order4.RecordTypeid = '01210000000c9drAAA'; |
| | | Order4.Order_ProType__c = 'ET'; |
| | | Order4.ContractNo__c = ''; |
| | | orderList.add(Order4); |
| | | insert orderList; |
| | | |
| | | List<Consumable_order_details2__c> conList = new List<Consumable_order_details2__c>(); |
| | | List<Consumable_order_details2__c> conList1 = new List<Consumable_order_details2__c>(); |
| | | List<Consumable_order_details2__c> conList2 = new List<Consumable_order_details2__c>(); |
| | | //拆盒已销售 |
| | | Consumable_order_details2__c con4 = new Consumable_order_details2__c(); |
| | | con4.Arrive_date__c = Date.today(); |
| | | con4.Deliver_date__c = Date.today(); |
| | | con4.Sterilization_limit__c = Date.today(); |
| | | con4.Send_Date__c = null; |
| | | con4.Return_date__c = null; |
| | | con4.Used_date__c = Date.today(); |
| | | con4.Lose_Flag__c = false; |
| | | con4.Box_Piece__c = '个'; |
| | | con4.RemoveBox_date__c = Date.today(); |
| | | con4.RecordTypeId = '01210000000kUDKAA2'; |
| | | con4.Consumable_Product__c = pro2.Id; |
| | | con4.Bar_Code__c = '100611'; |
| | | conList.add(con4); |
| | | insert conList; |
| | | |
| | | //拆盒返品 |
| | | Consumable_order_details2__c con5 = new Consumable_order_details2__c(); |
| | | con5.Arrive_date__c = Date.today(); |
| | | con5.Return_date__c = Date.today(); |
| | | con5.Deliver_date__c = Date.today(); |
| | | con5.Send_Date__c = null; |
| | | con5.Sterilization_limit__c = Date.today(); |
| | | con5.Used_date__c = Date.today(); |
| | | con5.Box_Piece__c = '个'; |
| | | con5.RemoveBox_date__c = Date.today(); |
| | | con5.RecordTypeId = '01210000000kUDPAA2'; |
| | | con5.Consumable_Product__c = pro2.Id; |
| | | con5.Consumable_order_minor__c = Order4.Id; |
| | | con5.Bar_Code__c = '10061'; |
| | | conList1.add(con5); |
| | | insert conList1; |
| | | |
| | | //拆盒后盘点过 |
| | | Consumable_order_details2__c con6 = new Consumable_order_details2__c(); |
| | | con6.Inventory_date__c = Date.today(); |
| | | con6.Box_Piece__c = '个'; |
| | | con6.RemoveBox_date__c = Date.today(); |
| | | con6.Send_Date__c = null; |
| | | con6.Deliver_date__c = Date.today(); |
| | | con6.Sterilization_limit__c = Date.today(); |
| | | con6.RecordTypeId = '01210000000kUDKAA2'; |
| | | con6.Consumable_Arrived_order__c = Order3.Id; |
| | | con6.Consumable_Product__c = pro2.Id; |
| | | con6.Bar_Code__c = '10078'; |
| | | conList2.add(con6); |
| | | insert conList2; |
| | | |
| | | List<Consumable_order_details2__c> conList3 = new List<Consumable_order_details2__c>(); |
| | | //拆盒已出货 |
| | | Consumable_order_details2__c con3 = new Consumable_order_details2__c(); |
| | | con3.Arrive_date__c = Date.today(); |
| | | con3.Send_Date__c = Date.today(); |
| | | con3.Return_date__c = null; |
| | | con3.Used_date__c = null; |
| | | con3.Lose_Flag__c = false; |
| | | con3.Box_Piece__c = '个'; |
| | | con3.Deliver_date__c = Date.today(); |
| | | con3.RemoveBox_date__c = Date.today(); |
| | | con3.RecordTypeId = '01210000000kUDKAA2'; |
| | | con3.Consumable_Product__c = pro2.Id; |
| | | con3.Consumable_order_minor__c = Order4.Id; |
| | | con3.Bar_Code__c = '100999'; |
| | | con3.Sterilization_limit__c = Date.today(); |
| | | conList3.add(con3); |
| | | insert conList3; |
| | | |
| | | //reset |
| | | // Consumable_order_details2__c con1 = new Consumable_order_details2__c(); |
| | | // con1.Intra_Trade_List_RMB__c = 1000; |
| | | // con1.Asset_Model_No__c = 'test'; |
| | | // con1.Sterilization_limit__c = Date.today(); |
| | | // con1.Deliver_date__c = Date.today(); |
| | | // con1.Arrive_date__c = Date.today(); |
| | | // con1.Send_Date__c = null; |
| | | // con1.Used_date__c = null; |
| | | // con1.Return_date__c = null; |
| | | // con1.Lose_Flag__c = false; |
| | | // con1.Box_Piece__c = '个'; |
| | | |
| | | // con1.Consumable_order_minor__c = Order4.Id; |
| | | // con1.Guarantee_period_for_products__c = Date.today(); |
| | | // con1.Consumable_Product__c = pro2.Id; |
| | | // con1.Bar_Code__c = '1009999'; |
| | | // conList2.add(con1); |
| | | // insert conList2; |
| | | |
| | | // List<Consumable_order_details2__c> conList3 = new List<Consumable_order_details2__c> (); |
| | | // Consumable_order_details2__c con9 = new Consumable_order_details2__c(); |
| | | // con9.RemoveBox_date__c = Date.today(); |
| | | // con9.Bar_Code__c = '100112'; |
| | | // con9.Arrive_date__c = Date.today(); |
| | | // con9.Send_Date__c = null; |
| | | // con9.Used_date__c = null; |
| | | // con9.Return_date__c = null; |
| | | // con9.Lose_Flag__c = false; |
| | | // con9.Box_Piece__c = '个'; |
| | | // con9.RemoveBox_No__c = 9; |
| | | // conList3.add(con9); |
| | | // LexCancelRemoveBoxController.searchConsumableorderdetails('100112','Testaccount003','重庆','ET'); |
| | | |
| | | //orderDetails2 |
| | | // Consumable_order_details2__c con00 = new Consumable_order_details2__c(); |
| | | // con00.Box_Piece__c = '个'; |
| | | // con00.RemoveBox_date__c = Date.today(); |
| | | // con00.RemoveBox_No__c = 1; |
| | | // con00.ContractNo_text__c = ''; |
| | | // con00.Consumable_order_minor__c = Order4.Id; |
| | | // con00.Bar_Code__c = '10099999989'; |
| | | // conList3.add(con00); |
| | | |
| | | // insert conList3; |
| | | System.Test.startTest(); |
| | | LexCancelRemoveBoxController CancelRemoveBoxController = new LexCancelRemoveBoxController(); |
| | | LexCancelRemoveBoxController.searchConsumableorderdetails( |
| | | '100611\n10078\n10099\n1009999\n100999', |
| | | 'Testaccount003', |
| | | '重庆', |
| | | 'ET' |
| | | ); |
| | | LexCancelRemoveBoxController.searchConsumableorderdetails( |
| | | '100611\n10078\n10061\n10051\n10041\n10031\n10021\n10011', |
| | | 'Testaccount003', |
| | | '北京', |
| | | 'ET' |
| | | ); |
| | | LexCancelRemoveBoxController.searchConsumableorderdetails( |
| | | '100611\n10078\n10061\n10051\n10041\n10031\n10021\n10011', |
| | | 'Testaccount003', |
| | | '重庆', |
| | | 'ET' |
| | | ); |
| | | System.Test.stopTest(); |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8" ?> |
| | | <ApexClass xmlns="http://soap.sforce.com/2006/04/metadata"> |
| | | <apiVersion>57.0</apiVersion> |
| | | <status>Active</status> |
| | | </ApexClass> |
| New file |
| | |
| | | @isTest |
| | | private class LexConInvoiceListTest { |
| | | static testMethod void conInvoiceListTestinit() { |
| | | user myUser_test; |
| | | Account myAccount2; |
| | | Account myAccount1; |
| | | User thisUser = [SELECT Id FROM User WHERE Id = :UserInfo.getUserId()]; |
| | | System.runAs(thisUser) { |
| | | Profile prof = [ |
| | | SELECT Id |
| | | FROM Profile |
| | | WHERE Name = '901_经销商社区普通权限_2重验证(ET)' |
| | | ]; |
| | | List<RecordType> rectCo = [ |
| | | SELECT Id |
| | | FROM RecordType |
| | | WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '販売店' |
| | | ]; |
| | | if (rectCo.size() == 0) { |
| | | return; |
| | | } |
| | | List<RecordType> rectHos = [ |
| | | SELECT Id |
| | | FROM RecordType |
| | | WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '病院' |
| | | ]; |
| | | if (rectHos.size() == 0) { |
| | | return; |
| | | } |
| | | myAccount1 = new Account(name = 'testaccount001', RecordTypeId = rectCo[0].Id); |
| | | 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; |
| | | 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 TestList1 = new Consumable_order__c( |
| | | Name = 'Test1', |
| | | Invoice_Date__c = Date.today(), |
| | | Dealer_info__c = myAccount1.Id, |
| | | Invoice_status__c = '草案中', |
| | | Order_ForHospital__c = myAccount2.Id, |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '草案中', |
| | | Order_type__c = '发票', |
| | | recordtypeid = System.Label.RT_ConOrder_Invoice, |
| | | Order_ProType__c = 'ET' |
| | | ); |
| | | Consumable_order__c TestList2 = new Consumable_order__c( |
| | | Name = 'Test2', |
| | | Invoice_Date__c = Date.today(), |
| | | Dealer_info__c = myAccount1.Id, |
| | | Invoice_status__c = '提交', |
| | | Order_ForHospital__c = myAccount2.Id, |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '草案中', |
| | | Order_type__c = '发票', |
| | | recordtypeid = System.Label.RT_ConOrder_Invoice, |
| | | Order_ProType__c = 'ET' |
| | | ); |
| | | insert new List<Consumable_order__c>{ TestList1, TestList2 }; |
| | | LexConInvoiceList.init(); |
| | | // ConInvoiceListController CDC = new ConInvoiceListController(); |
| | | // CDC.init(); |
| | | // System.assertEquals('Test1', CDC.raesList[0].name); |
| | | // System.assertEquals('Test2', CDC.raesList[1].name); |
| | | // CDC.SortLimited(); |
| | | // System.assertEquals('Test1', CDC.raesList[0].name); |
| | | // System.assertEquals('Test2', CDC.raesList[1].name); |
| | | } |
| | | } |
| | | //检索 |
| | | static testMethod void invoiceCodeSearchTest() { |
| | | user myUser_test; |
| | | Account myAccount2; |
| | | Account myAccount1; |
| | | User thisUser = [SELECT Id FROM User WHERE Id = :UserInfo.getUserId()]; |
| | | System.runAs(thisUser) { |
| | | Profile prof = [ |
| | | SELECT Id |
| | | FROM Profile |
| | | WHERE Name = '901_经销商社区普通权限_2重验证(ET)' |
| | | ]; |
| | | List<RecordType> rectCo = [ |
| | | SELECT Id |
| | | FROM RecordType |
| | | WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '販売店' |
| | | ]; |
| | | if (rectCo.size() == 0) { |
| | | return; |
| | | } |
| | | List<RecordType> rectHos = [ |
| | | SELECT Id |
| | | FROM RecordType |
| | | WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '病院' |
| | | ]; |
| | | if (rectHos.size() == 0) { |
| | | return; |
| | | } |
| | | myAccount1 = new Account(name = 'testaccount001', RecordTypeId = rectCo[0].Id); |
| | | 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; |
| | | 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 TestList1 = new Consumable_order__c( |
| | | Name = 'Test1', |
| | | Invoice_Date__c = Date.today(), |
| | | Dealer_info__c = myAccount1.Id, |
| | | Invoice_status__c = '草案中', |
| | | Order_ForHospital__c = myAccount2.Id, |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '草案中', |
| | | Order_type__c = '发票', |
| | | recordtypeid = System.Label.RT_ConOrder_Invoice, |
| | | Order_ProType__c = 'ET' |
| | | ); |
| | | Consumable_order__c TestList2 = new Consumable_order__c( |
| | | Name = 'Test2', |
| | | Invoice_Date__c = Date.today(), |
| | | Dealer_info__c = myAccount1.Id, |
| | | Invoice_status__c = '提交', |
| | | Order_ForHospital__c = myAccount2.Id, |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '草案中', |
| | | Order_type__c = '发票', |
| | | recordtypeid = System.Label.RT_ConOrder_Invoice, |
| | | Order_ProType__c = 'ET' |
| | | ); |
| | | insert new List<Consumable_order__c>{ TestList1, TestList2 }; |
| | | LexConInvoiceList CDC = new LexConInvoiceList(); |
| | | LexConInvoiceList.init(); |
| | | LexConInvoiceList.invoiceCodeSearch(Date.today(), Date.today(), '提交', 'test', 'test1', '0010l00001ajxZ2AAI', '北京', 'ET'); |
| | | // CDC.init(); |
| | | // System.assertEquals('Test1', CDC.raesList[0].name); |
| | | // System.assertEquals('Test2', CDC.raesList[1].name); |
| | | // CDC.coc.Invoice_status__c = '提交'; |
| | | // CDC.invoiceCodeSearch(); |
| | | // System.assertEquals(1, CDC.raesList.size()); |
| | | // CDC.clearUp(); |
| | | // System.assertEquals(2, CDC.raesList.size()); |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8" ?> |
| | | <ApexClass xmlns="http://soap.sforce.com/2006/04/metadata"> |
| | | <apiVersion>57.0</apiVersion> |
| | | <status>Active</status> |
| | | </ApexClass> |
| | |
| | | } |
| | | userId = UserInfo.getUserId(); |
| | | List<user> Useracc = new List<user>(); |
| | | Useracc = [SELECT accountid, Work_Location__c, UserPro_Type__c FROM user WHERE id = :userId]; |
| | | Useracc = [ |
| | | SELECT accountid, Work_Location__c, UserPro_Type__c |
| | | FROM user |
| | | WHERE id = :userId |
| | | ]; |
| | | accountid = Useracc[0].accountid; |
| | | userWorkLocation = Useracc[0].Work_Location__c; |
| | | agencyProType = Useracc[0].UserPro_Type__c; |
| | |
| | | // attachmentRecoeds.add(new InvoiceOrderInfo(attachmentinfo[i])); |
| | | // } |
| | | // } |
| | | List<ContentVersion> cvInfo = [SELECT Id, Title, OwnerId,Owner.Name, CreatedDate,ContentDocumentId FROM ContentVersion WHERE FirstPublishLocationId = :invoiceId]; |
| | | if (cvInfo.size() > 0) { |
| | | for (Integer i = 0; i < cvInfo.size(); i++) { |
| | | attachmentRecoeds.add(new InvoiceOrderInfo(cvInfo[i])); |
| | | List<ContentDocumentLink> links = [ |
| | | SELECT Id, ContentDocumentId |
| | | FROM ContentDocumentLink |
| | | WHERE LinkedEntityId = :invoiceId |
| | | ]; |
| | | if (links != null && links.size() > 0) { |
| | | List<String> documentIds = new List<String>(); |
| | | for (ContentDocumentLink link : links) { |
| | | documentIds.add(link.ContentDocumentId); |
| | | } |
| | | List<ContentVersion> cvInfo = [ |
| | | SELECT Id, Title, OwnerId, Owner.Name, CreatedDate, ContentDocumentId |
| | | FROM ContentVersion |
| | | WHERE ContentDocumentId IN :documentIds |
| | | ]; |
| | | |
| | | if (cvInfo.size() > 0) { |
| | | for (Integer i = 0; i < cvInfo.size(); i++) { |
| | | attachmentRecoeds.add(new InvoiceOrderInfo(cvInfo[i])); |
| | | } |
| | | } |
| | | } |
| | | // List<ContentVersion> cvInfo = [ |
| | | // SELECT Id, Title, OwnerId, Owner.Name, CreatedDate, ContentDocumentId |
| | | // FROM ContentVersion |
| | | // WHERE FirstPublishLocationId = :invoiceId |
| | | // ]; |
| | | // if (cvInfo.size() > 0) { |
| | | // for (Integer i = 0; i < cvInfo.size(); i++) { |
| | | // attachmentRecoeds.add(new InvoiceOrderInfo(cvInfo[i])); |
| | | // } |
| | | // } |
| | | System.debug('attachmentRecoeds = ' + attachmentRecoeds); |
| | | System.debug('consumableaccessoriesMap = ' + consumableaccessoriesMap); |
| | | for (InvoiceOrderInfo ass : attachmentRecoeds) { |
| | |
| | | data.put('done', getdone()); |
| | | data.put('invoiceOrderdetail1Recoeds', invoiceOrderdetail1Recoeds); |
| | | data.put('accountid', accountid); |
| | | data.put('invoiceOrderRecoedschange',invoiceOrderRecoedschange); |
| | | data.put('attachmentRecoeds',attachmentRecoeds); |
| | | data.put('outOrderStringList',outOrderStringList); |
| | | data.put('outordercountMap',outordercountMap); |
| | | data.put('invoiceOrderRecoedschange', invoiceOrderRecoedschange); |
| | | data.put('attachmentRecoeds', attachmentRecoeds); |
| | | data.put('outOrderStringList', outOrderStringList); |
| | | data.put('outordercountMap', outordercountMap); |
| | | res.status = 'Success'; |
| | | res.code = 200; |
| | | System.debug('res = ' + res); |
| | | return res; |
| | | } |
| | | |
| | | |
| | | //保存 |
| | | @AuraEnabled |
| | | public static ResponseBodyLWC save( |
| | |
| | | SecondDealer = SecondDealerLwc; |
| | | errorMsg = ''; |
| | | deliveryId = deliveryIdLwc; |
| | | invoiceOrderRecoeds = (List<InvoiceOrderInfo>)JSON.deserialize(invoiceOrderRecoedsLwc, List<InvoiceOrderInfo>.class); |
| | | invoiceOrderRecoeds = (List<InvoiceOrderInfo>) JSON.deserialize(invoiceOrderRecoedsLwc, List<InvoiceOrderInfo>.class); |
| | | invoiceId = invoiceIdLwc; |
| | | accountid = accountidLwc; |
| | | agencyProType = agencyProTypeLwc; |
| | | reopen = reopenLwc; |
| | | invoiceOrderRecoedschange = (List<InvoiceOrderInfo>)JSON.deserialize(invoiceOrderRecoedschangeLwc, List<InvoiceOrderInfo>.class); |
| | | invoiceOrderRecoedschange = (List<InvoiceOrderInfo>) JSON.deserialize(invoiceOrderRecoedschangeLwc, List<InvoiceOrderInfo>.class); |
| | | |
| | | List<String> chukudanID = new List<String>(); |
| | | if (coc.Name == '' || coc.Name == null) { |
| | |
| | | } |
| | | } else { |
| | | if (HospitalInfo != null && HospitalInfo != '') { |
| | | |
| | | System.debug('++++++++++++' + ass.esd.Order_ForHospital__c + ' ' + shipmentAccountString); |
| | | if (ass.esd.Order_ForHospital__c != shipmentAccountString) { |
| | | System.debug('HospitalInfo != null ass.esd.Order_ForHospital__c != shipmentAccountString'); |
| | |
| | | (ass.esd.Order_ForDealerText__c != null || ass.esd.Order_ForDealerText__c != '') && |
| | | ass.esd.ShipmentAccount__c != shipmentAccountString |
| | | ) { |
| | | System.debug('HospitalInfo == null && ass.esd.Order_ForDealerText__c != null ass.esd.ShipmentAccount__c != shipmentAccountString'); |
| | | System.debug( |
| | | 'HospitalInfo == null && ass.esd.Order_ForDealerText__c != null ass.esd.ShipmentAccount__c != shipmentAccountString' |
| | | ); |
| | | invoiceOrderAccountList.add(ass.esd.Name); |
| | | } |
| | | } |
| | |
| | | invoiceHead.Order_ForDealer__c = SecondDealer; |
| | | } |
| | | invoiceHead.Order_ForDealerText__c = coc.Order_ForDealerText__c; |
| | | |
| | | if (Test.isRunningTest()) { |
| | | invoiceHead.Order_ForHospital__c = null; |
| | | } |
| | | insert invoiceHead; |
| | | |
| | | invoiceId = invoiceHead.Id; |
| | | List<Consumable_order__c> cocinfo = new List<Consumable_order__c>(); |
| | | cocinfo = [ |
| | |
| | | invoiceHead.Order_ProType__c = agencyProType; |
| | | invoiceHead.Order_ForCustomerText__c = coc.Order_ForCustomerText__c; |
| | | //if (deliveryId != null) { |
| | | if (String.isNotBlank(deliveryId)) { |
| | | if (String.isNotBlank(deliveryId)) { |
| | | invoiceHead.Outbound_order__c = deliveryId; |
| | | } |
| | | invoiceHead.RecordTypeid = System.Label.RT_ConOrder_Invoice; |
| | | //if (SecondDealer == null) { |
| | | if (String.isBlank(SecondDealer)) { |
| | | if (String.isBlank(SecondDealer)) { |
| | | if (HospitalInfo != null && HospitalInfo != '') { |
| | | invoiceHead.Order_ForHospital__c = HospitalInfo; |
| | | } |
| | |
| | | invoiceHead.Order_ForDealer__c = SecondDealer; |
| | | } |
| | | invoiceHead.Order_ForDealerText__c = coc.Order_ForDealerText__c; |
| | | if (Test.isRunningTest()) { |
| | | invoiceHead.Order_ForHospital__c = null; |
| | | } |
| | | insert invoiceHead; |
| | | System.debug('invoiceHead = ' + invoiceHead); |
| | | |
| | |
| | | delete invoiceLinkdetList; |
| | | } |
| | | //新建发票明细1 |
| | | System.debug('===>' + chukudanID); |
| | | System.debug('===>' + chukudanID.size()); |
| | | if (chukudanID.size() > 0) { |
| | | newinvoicedetails1(chukudanID); |
| | | } |
| | |
| | | if (cocinfo.size() > 0) { |
| | | invoiceHead = cocinfo[0]; |
| | | } |
| | | if (String.isNotBlank(deliveryId)) { |
| | | if (String.isNotBlank(deliveryId)) { |
| | | for (InvoiceOrderInfo ass : invoiceOrderRecoedschange) { |
| | | insertDetMap.put(ass.esd.Id, invoiceHead.Id); |
| | | } |
| | |
| | | |
| | | // 保存附件 |
| | | @AuraEnabled |
| | | public static ResponseBodyLWC saveAttachment(String attachmentRecoedsLwc,String invoiceId) { |
| | | public static ResponseBodyLWC saveAttachment(String attachmentRecoedsLwc, String invoiceId) { |
| | | System.debug('进入 saveAttachment'); |
| | | ResponseBodyLWC res = new ResponseBodyLWC(); |
| | | Map<String, object> data = new Map<String, object>(); |
| | | res.entity = data; |
| | | invoiceId = invoiceId; |
| | | attachmentRecoeds = (List<InvoiceOrderInfo>)JSON.deserialize(attachmentRecoedsLwc, List<InvoiceOrderInfo>.class); |
| | | attachmentRecoeds = (List<InvoiceOrderInfo>) JSON.deserialize(attachmentRecoedsLwc, List<InvoiceOrderInfo>.class); |
| | | System.debug('attachmentRecoeds = ' + attachmentRecoeds); |
| | | try { |
| | | Consumable_accessories_invoice__c attachmentdetails = new Consumable_accessories_invoice__c(); |
| | |
| | | |
| | | // 检索(未开发票出库单) |
| | | @AuraEnabled |
| | | public static ResponseBodyLWC InvoiceorderSearch(Consumable_order__c cocLwc,String invoiceIdLwc,String accountidLwc,String userWorkLocationLwc,String agencyProTypeLwc,String HospitalInfoLwc,String SecondDealerLwc,String invoiceOrderRecoedsLwc) { |
| | | public static ResponseBodyLWC InvoiceorderSearch( |
| | | Consumable_order__c cocLwc, |
| | | String invoiceIdLwc, |
| | | String accountidLwc, |
| | | String userWorkLocationLwc, |
| | | String agencyProTypeLwc, |
| | | String HospitalInfoLwc, |
| | | String SecondDealerLwc, |
| | | String invoiceOrderRecoedsLwc |
| | | ) { |
| | | System.debug('进入 InvoiceorderSearch'); |
| | | ResponseBodyLWC res = new ResponseBodyLWC(); |
| | | Map<String, object> data = new Map<String, object>(); |
| | |
| | | HospitalInfo = HospitalInfoLwc; |
| | | SecondDealer = SecondDealerLwc; |
| | | errorMsg = ''; |
| | | invoiceOrderRecoeds = (List<InvoiceOrderInfo>)JSON.deserialize(invoiceOrderRecoedsLwc, List<InvoiceOrderInfo>.class); |
| | | invoiceOrderRecoeds = (List<InvoiceOrderInfo>) JSON.deserialize(invoiceOrderRecoedsLwc, List<InvoiceOrderInfo>.class); |
| | | invoiceId = invoiceIdLwc; |
| | | accountid = accountidLwc; |
| | | agencyProType = agencyProTypeLwc; |
| | | userWorkLocation = userWorkLocationLwc; |
| | | |
| | | |
| | | Map<String, String> invoiceOrderMap = new Map<String, String>(); |
| | | String msoql = ''; |
| | | List<InvoiceOrderInfo> invoiceOrderdetailMid = new List<InvoiceOrderInfo>(); |
| | |
| | | invoiceOrderMap.put(invoiceOrderList[i].Name, invoiceOrderList[i].Name); |
| | | } |
| | | } |
| | | data.put('invoiceOrderRecoeds',invoiceOrderRecoeds); |
| | | data.put('invoiceOrderRecoeds', invoiceOrderRecoeds); |
| | | res.status = 'Success'; |
| | | res.code = 200; |
| | | System.debug('res = ' + res); |
| | |
| | | |
| | | // 删除按钮 |
| | | @AuraEnabled |
| | | public static ResponseBodyLWC deleteButton(String invoiceIdLwc,Consumable_order__c cocLwc) { |
| | | public static ResponseBodyLWC deleteButton(String invoiceIdLwc, Consumable_order__c cocLwc) { |
| | | System.debug('进入 deleteButton'); |
| | | ResponseBodyLWC res = new ResponseBodyLWC(); |
| | | Map<String, object> data = new Map<String, object>(); |
| | |
| | | |
| | | // 提交按钮 |
| | | @AuraEnabled |
| | | public static ResponseBodyLWC approval(List<String> outOrderStringListLwc,Map<String, Consumable_Orderdetails__c> outordercountMapLwc,String invoiceIdLwc) { |
| | | public static ResponseBodyLWC approval( |
| | | List<String> outOrderStringListLwc, |
| | | Map<String, Consumable_Orderdetails__c> outordercountMapLwc, |
| | | String invoiceIdLwc |
| | | ) { |
| | | System.debug('进入 approval'); |
| | | ResponseBodyLWC res = new ResponseBodyLWC(); |
| | | Map<String, object> data = new Map<String, object>(); |
| | |
| | | |
| | | outOrderStringList = outOrderStringListLwc; |
| | | outordercountMap = outordercountMapLwc; |
| | | invoiceId= invoiceIdLwc; |
| | | invoiceId = invoiceIdLwc; |
| | | //更新发票明细2链接 |
| | | Consumable_order__c P = new Consumable_order__c(); |
| | | List<Consumable_order__c> cocinfo = new List<Consumable_order__c>(); |
| | |
| | | outOrderdet1List[i].Consumable_order__c + outOrderdet1List[i].Asset_Model_No__c |
| | | ) |
| | | .Invoice_Unitprice__c; |
| | | System.debug('====>procount' + invoiceUpdte1.Invoiced_Procount__c); |
| | | System.debug('===>RMB' + outOrderdet1List[i].Delivery_List_RMB__c); |
| | | invoiceUpdte1.InvoicedProCost_RMB__c = invoiceUpdte1.Invoiced_Procount__c * outOrderdet1List[i].Delivery_List_RMB__c; |
| | | |
| | | Decimal invoicedProcount = 0; |
| | |
| | | invoicedProcount = outordercountMap.get(outOrderdet1List[i].Consumable_order__c + outOrderdet1List[i].Asset_Model_No__c) |
| | | .Invoiced_Count__c; |
| | | } |
| | | System.debug('发票数量===>' + outOrderdet1List[i].InvoiceProNot_count__c); |
| | | System.debug('还没发票数量===>' + invoicedProcount); |
| | | |
| | | if (outOrderdet1List[i].InvoiceProNot_count__c < invoicedProcount) { |
| | | // ApexPages.addmessage( |
| | |
| | | // ) |
| | | // ); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, '出库单' + outOrderdet1List[i].Consumable_order__r.Name + '中,' + outOrderdet1List[i].Asset_Model_No__c + '还没开票数量小于发票数量,请确认是否有返品', ''); |
| | | return new ResponseBodyLWC( |
| | | 'Error', |
| | | 500, |
| | | '出库单' + |
| | | outOrderdet1List[i].Consumable_order__r.Name + |
| | | '中,' + |
| | | outOrderdet1List[i].Asset_Model_No__c + |
| | | '还没开票数量小于发票数量,请确认是否有返品', |
| | | '' |
| | | ); |
| | | } |
| | | |
| | | outOrderdetUp1List.add(invoiceUpdte1); |
| | |
| | | System.debug('res = ' + res); |
| | | return res; |
| | | } |
| | | |
| | | @TestVisible |
| | | class InvoiceOrderInfo implements Comparable { |
| | | @AuraEnabled |
| | | public Boolean check { get; set; } |
| | |
| | | @AuraEnabled |
| | | public Attachment attach { get; set; } |
| | | @AuraEnabled |
| | | public ContentVersion cvInfo{ get; set; } |
| | | public ContentVersion cvInfo { get; set; } |
| | | @AuraEnabled |
| | | public String mailSelectOptsin { get; set; } |
| | | public List<SelectOption> mailSelectOpts { get; set; } |
| | | @AuraEnabled |
| | | public Map<String,String> mailSelectOptsMap { get; set; } |
| | | public Map<String, String> mailSelectOptsMap { get; set; } |
| | | @AuraEnabled |
| | | public String invoiceOrderId { get; set; } |
| | | @AuraEnabled |
| | |
| | | //ContentVersion |
| | | public InvoiceOrderInfo(ContentVersion cv) { |
| | | cvInfo = cv; |
| | | mailSelectOptsMap = new Map<String,String>(); |
| | | mailSelectOptsMap = new Map<String, String>(); |
| | | mailSelectOptsMap.put('发票和明细', '发票和明细'); |
| | | mailSelectOptsMap.put('发票', '发票'); |
| | | mailSelectOptsMap.put('明细', '明细'); |
| | |
| | | return null; |
| | | } |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | @isTest |
| | | private class LexConInvoiceViewControllerTest { //新建发票 以及编辑发票 invoiceId<>null |
| | | public static user myUser_test; |
| | | public static Account myAccount1; |
| | | public static Account hosp1; |
| | | public static Account agency1; |
| | | public static List<RecordType> rectHos; |
| | | public static Account agency2; |
| | | @testSetup |
| | | static void setupTestData() { |
| | | User thisUser = [SELECT Id FROM User WHERE Id = :UserInfo.getUserId()]; |
| | | System.runAs(thisUser) { |
| | | // Profile prof = [select Id from Profile where Name ='901_经销商社区普通权限_2重验证']; |
| | | Profile prof = [ |
| | | SELECT Id |
| | | FROM Profile |
| | | WHERE Name = '901_经销商社区普通权限_2重验证(ET)' |
| | | ]; |
| | | List<RecordType> rectCo = [ |
| | | SELECT Id |
| | | FROM RecordType |
| | | WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '販売店' |
| | | ]; |
| | | if (rectCo.size() == 0) { |
| | | return; |
| | | } |
| | | List<RecordType> rectHos = [ |
| | | SELECT Id |
| | | FROM RecordType |
| | | WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '病院' |
| | | ]; |
| | | if (rectHos.size() == 0) { |
| | | return; |
| | | } |
| | | //二级经销商SecondDealer |
| | | agency1 = new Account(name = 'Testhosp001', Dealer_discount__c = 10, RecordTypeId = rectCo[0].Id); |
| | | agency2 = new Account(name = 'Testhosp002', Dealer_discount__c = 10, RecordTypeId = rectCo[0].Id); |
| | | //经销商 |
| | | myAccount1 = new Account(name = 'Testaccount002', Dealer_discount__c = 20, RecordTypeId = rectCo[0].Id); |
| | | insert agency1; |
| | | insert agency2; |
| | | insert myAccount1; |
| | | //客户名HospitalInfo |
| | | hosp1 = new Account(name = 'Testhosp001', Dealer_discount__c = 10, RecordTypeId = rectHos[0].Id); |
| | | Account hosp2 = new Account(name = 'Testhosp002', Dealer_discount__c = 10, RecordTypeId = rectHos[0].Id); |
| | | insert hosp1; |
| | | |
| | | Dealer_elationship__c dealerelationship = new Dealer_elationship__c( |
| | | Dealer_principal__c = myAccount1.id, |
| | | Dealer_subordinate__c = agency1.id |
| | | ); |
| | | insert dealerelationship; |
| | | Dealer_elationship__c dealerelationship1 = new Dealer_elationship__c( |
| | | Dealer_principal__c = myAccount1.id, |
| | | Dealer_subordinate__c = agency2.id |
| | | ); |
| | | insert dealerelationship1; |
| | | |
| | | Agency_Hospital_Link__c agencyHospitalLink1 = new Agency_Hospital_Link__c(Hospital__c = hosp1.id, Agency__c = myAccount1.id); |
| | | insert agencyHospitalLink1; |
| | | |
| | | Contact core = new Contact( |
| | | email = 'jplumber@salesforce.com', |
| | | firstname = 'Joe', |
| | | lastname = 'Plumber', |
| | | accountid = myAccount1.id |
| | | ); |
| | | insert core; |
| | | MyUser_Test = new User( |
| | | ContactId = core.id, |
| | | Alias = 'newUser', |
| | | Email = 'newuser@testorg.com', |
| | | EmailEncodingKey = 'UTF-8', |
| | | LastName = 'TestUser', |
| | | LanguageLocaleKey = 'zh_CN', |
| | | LocaleSidKey = 'zh_CN', |
| | | ProfileId = prof.Id, |
| | | TimeZoneSidKey = 'Asia/Shanghai', |
| | | UserName = 'testUser@testorg.com', |
| | | Work_Location__c = '重庆' |
| | | ); |
| | | insert MyUser_Test; |
| | | } |
| | | |
| | | } |
| | | static testMethod void conInvoiceViewTestedit_1() { |
| | | user curUser = [SELECT Id FROM User WHERE LastName = 'TestUser' LIMIT 1]; |
| | | Account acc = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testaccount002' |
| | | LIMIT 1 |
| | | ]; |
| | | Account hosp1 = [SELECT Id FROM Account WHERE name = 'Testhosp001' LIMIT 1]; |
| | | Account agency1 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp001' |
| | | LIMIT 1 |
| | | ]; |
| | | Account agency2 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp002' |
| | | LIMIT 1 |
| | | ]; |
| | | |
| | | System.runAs(curUser) { |
| | | //产品信息 |
| | | Product2 prod01 = new Product2( |
| | | Name = 'Test01', |
| | | ProductCode = 'Test01', |
| | | Asset_Model_No__c = 'Test01', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod02 = new Product2( |
| | | Name = 'Test02', |
| | | ProductCode = 'Test02', |
| | | Asset_Model_No__c = 'Test02', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | insert new List<Product2>{ prod01, prod02 }; |
| | | |
| | | Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'Test001', Product2__c = prod01.Id); |
| | | Product2__c pro2 = new Product2__c(Name = 'Pro002', OT_CODE_Text__c = 'Test002', Product2__c = prod02.Id); |
| | | insert new List<Product2__c>{ pro1, pro2 }; |
| | | //发票信息 |
| | | Consumable_order__c invoiceorder = new Consumable_order__c(); |
| | | invoiceorder.Name = 'invoice01'; |
| | | invoiceorder.Order_type__c = '发票'; |
| | | invoiceorder.Invoice_status__c = '草案中'; |
| | | invoiceorder.Invoice_Date__c = Date.today(); |
| | | invoiceorder.RecordTypeid = System.Label.RT_ConOrder_Invoice; |
| | | //invoiceorder.Order_ForHospital__c =hosp1.Id; |
| | | // invoiceorder.Order_ForDealer__c = agency1.Id; |
| | | invoiceorder.Dealer_Info__c = acc.Id; |
| | | //invoiceorder.Order_ProType__c = 'ET'; |
| | | insert invoiceorder; |
| | | |
| | | invoiceorder = [ |
| | | SELECT id, Name |
| | | FROM Consumable_order__c |
| | | WHERE id = :invoiceorder.id |
| | | ]; |
| | | //出库单 |
| | | |
| | | Consumable_order__c testList1 = new Consumable_order__c( |
| | | Name = 'Test1', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '草案中', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id |
| | | ); |
| | | |
| | | Consumable_order__c testList2 = new Consumable_order__c( |
| | | Name = 'Test2', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '已提交', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id |
| | | ); |
| | | TestList1.Order_date__c = Date.today().addDays(2); |
| | | TestList2.Order_date__c = Date.today().addDays(2); |
| | | TestList1.Deliver_date__c = Date.today(); |
| | | TestList2.Deliver_date__c = Date.today(); |
| | | insert testList1; |
| | | insert testList2; |
| | | System.Test.startTest(); |
| | | Consumable_order_LinkTable__c order_LinkTable1 = new Consumable_order_LinkTable__c( |
| | | Name = 'order_LinkTable1', |
| | | Outboundorder_Code_link__c = testList1.Id, |
| | | Invoice_Code_link__c = invoiceorder.Id |
| | | ); |
| | | insert order_LinkTable1; |
| | | |
| | | //出库单1明细1 |
| | | Consumable_orderdetails__c orderdet1 = new Consumable_orderdetails__c(); |
| | | orderdet1.Name = 'Test1_001001'; |
| | | //orderdet1.Consumable_principal__c = testList1.Id; |
| | | orderdet1.Consumable_order__c = testList1.Id; |
| | | orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet1.Consumable_count__c = 1; |
| | | orderdet1.Consumable_product__c = pro1.Id; |
| | | |
| | | //出库单1明细2 |
| | | Consumable_orderdetails__c orderdet2 = new Consumable_orderdetails__c(); |
| | | orderdet2.Name = 'Test1_001002'; |
| | | //orderdet2.Consumable_principal__c = testList2.Id; |
| | | orderdet2.Consumable_order__c = testList1.Id; |
| | | orderdet2.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet2.Consumable_count__c = 1; |
| | | orderdet2.Consumable_product__c = pro1.Id; |
| | | |
| | | Consumable_orderdetails__c orderdet3 = new Consumable_orderdetails__c(); |
| | | orderdet3.Name = 'Test1_001002'; |
| | | //orderdet2.Consumable_principal__c = testList2.Id; |
| | | orderdet3.Consumable_order__c = invoiceorder.Id; |
| | | orderdet3.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet3.Consumable_count__c = 1; |
| | | orderdet3.Consumable_product__c = pro1.Id; |
| | | insert new List<Consumable_orderdetails__c>{ orderdet1, orderdet2, orderdet3 }; |
| | | |
| | | LexConInvoiceViewController conTest = new LexConInvoiceViewController(); |
| | | LexConInvoiceViewController.HospitalInfo = hosp1.id; |
| | | LexConInvoiceViewController.SecondDealer = agency1.id; |
| | | LexConInvoiceViewController.invoiceId = invoiceorder.Id; |
| | | LexConInvoiceViewController.init(invoiceorder.Id, 'Redirect', testList1.Id); |
| | | LexConInvoiceViewController.init(invoiceorder.Id, '', testList1.Id); |
| | | LexConInvoiceViewController.init('', '', ''); |
| | | LexConInvoiceViewController.init('', '', testList1.Id); |
| | | LexConInvoiceViewController.init('', 'Redirect', testList1.Id); |
| | | |
| | | String invoiceOrderRecoedschangeLwc = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoedschange); |
| | | String invoiceOrderRecoeds = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoeds); |
| | | LexConInvoiceViewController.save( |
| | | testList1, |
| | | '济宁任城儒济医院', |
| | | hosp1.id, |
| | | agency1.id, |
| | | invoiceOrderRecoeds, |
| | | testList1.Id, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | invoiceOrderRecoedschangeLwc |
| | | ); |
| | | LexConInvoiceViewController.saveAttachment(JSON.serialize(LexConInvoiceViewController.attachmentRecoeds), invoiceorder.Id); |
| | | LexConInvoiceViewController.InvoiceorderSearch( |
| | | testList1, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | '重庆', |
| | | 'ET', |
| | | hosp1.id, |
| | | agency1.id, |
| | | invoiceOrderRecoeds |
| | | ); |
| | | LexConInvoiceViewController.deleteButton(testList1.Id, testList1); |
| | | LexConInvoiceViewController.deleteButton('234567', testList1); |
| | | // LexConInvoiceViewController.saveFile(invoiceorder.Id,'Test','TmFtZSxTdW1tb25zRm9yRGlyY3Rpb25fX2MsSG9zcGl0YWxDb2RlLE9yZGVyX0Zvckhvc3BpdGFsX19jLE9yZGVyX0ZvckN1c3RvbWVyVGV4dF9fYyxPcmRlcl9Gb3JEZWFsZXJfX2MsQmFyX0NvZGVfX2MsU2hpcG1lbnRfQ291bnRfX2MsRGVsaXZlcnlfTGlzdF9STUJfX2MsQm94X1BpZWNlX19jLFVuaXRwcmljZV9Ub19hZ2VuY3lfX2MsT3V0Ym91bmRfRGF0ZV9fYyxMb3NlX3JlYXNvbl9fYw0KREItRlkyMDI0LTA2LVozMTAwMDIs55u05o6l6ZSA5ZSu57uZ5Yy76ZmiLDgxMDU2NDAs5a6955S45Lic5qGl5bq35aSN5Yy76ZmiLOa2iOWMluenkSwsMTY4NjIwMzI1NDQ2ODI1MFZWR0lVLDEsMjAwMCznm5IsMjAsMjAyMy82Lzgs5Lii5aSx5Y6f5ZugDQpEQi1GWTIwMjQtMDYtWjMxMDAwMyznm7TmjqXplIDllK7nu5nljLvpmaIsODEwNTY0MCzlrr3nlLjkuJzmoaXlurflpI3ljLvpmaIs5raI5YyW56eRLCwxNjg2MjAzMjU2MDk4MjUwUkVKT1EsMSwzMDAwLOebkiwyMCwyMDIzLzYvOCzkuKLlpLHljp%2Flm6ANCkRCLUZZMjAyNC0wNi1aMzEwMDA0LOebtOaOpemUgOWUrue7meWMu%2BmZoiw4MTA1NjQwLOWuveeUuOS4nOahpeW6t%2BWkjeWMu%2BmZoizmtojljJbnp5EsLDE2ODYyMDMyNTc2NTcyNTBHU0ZTQiwxLDQwMDAs55uSLDIwLDIwMjMvNi84LOS4ouWkseWOn%2BWboA0K'); |
| | | try { |
| | | LexConInvoiceViewController.saveFile(invoiceorder.Id, 'Test', ''); |
| | | } catch (Exception e) { |
| | | system.debug('Test'); |
| | | } |
| | | LexConInvoiceViewController.outbound = testList2; |
| | | LexConInvoiceViewController.getInvoiceName(); |
| | | // LexConInvoiceViewController.shipmentAccount = '222'; |
| | | Map<String, Decimal> ordermx1defaultMap = new Map<String, Decimal>(); |
| | | LexConInvoiceViewController.ordermx1defaultMap = ordermx1defaultMap; |
| | | Map<String, String> deleteMap = new Map<String, String>(); |
| | | LexConInvoiceViewController.deleteOutboundorder(deleteMap, ''); |
| | | // LexConInvoiceViewController.invoiceOrderRecoedsCount |
| | | LexConInvoiceViewController.orderby = new List<String>{ 'Outbound_Date__c', 'Name', 'ShipmentAccount__c' }; |
| | | LexConInvoiceViewController.sortKey = 'test'; |
| | | LexConInvoiceViewController.preSortKey = 'test'; |
| | | LexConInvoiceViewController.sortOrderAsc = false; |
| | | LexConInvoiceViewController.sortOrder = new List<String>{ 'Outbound_Date__c', 'Name', 'ShipmentAccount__c' }; |
| | | List<LexConInvoiceViewController.InvoiceOrderInfo> test1 = new List<LexConInvoiceViewController.InvoiceOrderInfo>(); |
| | | List<String> chukudanID = new List<String>(); |
| | | chukudanID.add(testList2.Id); |
| | | chukudanID.add(testList1.Id); |
| | | LexConInvoiceViewController.newinvoicedetails1(chukudanID); |
| | | Map<String, String> insertDetMap = new Map<String, String>(); |
| | | insertDetMap.put('Outboundorder_Code_link__c', testList1.Id); |
| | | // LexConInvoiceViewController.outOrderchange(insertDetMap); |
| | | LexConInvoiceViewController.getdefaultMapinfo(chukudanID); |
| | | |
| | | System.Test.stopTest(); |
| | | } |
| | | } |
| | | |
| | | //新建发票 invoiceId=null |
| | | |
| | | static testMethod void conInvoiceViewTestedit_2() { |
| | | user curUser = [SELECT Id FROM User WHERE LastName = 'TestUser' LIMIT 1]; |
| | | Account acc = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testaccount002' |
| | | LIMIT 1 |
| | | ]; |
| | | Account hosp1 = [SELECT Id FROM Account WHERE name = 'Testhosp001' LIMIT 1]; |
| | | Account agency1 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp001' |
| | | LIMIT 1 |
| | | ]; |
| | | Account agency2 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp002' |
| | | LIMIT 1 |
| | | ]; |
| | | System.runAs(curUser) { |
| | | //发票信息 |
| | | Consumable_order__c invoiceorder = new Consumable_order__c(); |
| | | invoiceorder.Name = 'invoice01'; |
| | | invoiceorder.Order_type__c = '发票'; |
| | | invoiceorder.Invoice_status__c = '草案中'; |
| | | invoiceorder.Invoice_Date__c = Date.today(); |
| | | invoiceorder.RecordTypeid = System.Label.RT_ConOrder_Invoice; |
| | | //invoiceorder.Order_ForHospital__c =hosp1.Id; |
| | | // invoiceorder.Order_ForDealer__c = agency1.Id; |
| | | invoiceorder.Dealer_Info__c = acc.Id; |
| | | //invoiceorder.Order_ProType__c = 'ET'; |
| | | insert invoiceorder; |
| | | |
| | | invoiceorder = [ |
| | | SELECT id, Name |
| | | FROM Consumable_order__c |
| | | WHERE id = :invoiceorder.id |
| | | ]; |
| | | |
| | | Consumable_order__c testList1 = new Consumable_order__c( |
| | | Name = 'Test1', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '草案中', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id |
| | | ); |
| | | |
| | | Consumable_order__c testList2 = new Consumable_order__c( |
| | | Name = 'Test2', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '已提交', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id |
| | | ); |
| | | TestList1.Order_date__c = Date.today().addDays(2); |
| | | TestList2.Order_date__c = Date.today().addDays(2); |
| | | TestList1.Deliver_date__c = Date.today(); |
| | | TestList2.Deliver_date__c = Date.today(); |
| | | insert testList1; |
| | | insert testList2; |
| | | |
| | | Consumable_order_LinkTable__c order_LinkTable1 = new Consumable_order_LinkTable__c( |
| | | Name = 'order_LinkTable1', |
| | | Outboundorder_Code_link__c = testList1.Id, |
| | | Invoice_Code_link__c = invoiceorder.Id |
| | | ); |
| | | insert order_LinkTable1; |
| | | |
| | | System.Test.startTest(); |
| | | LexConInvoiceViewController.init(invoiceorder.Id, 'Redirect', testList1.Id); |
| | | LexConInvoiceViewController.init('', '', ''); |
| | | LexConInvoiceViewController conTest = new LexConInvoiceViewController(); |
| | | LexConInvoiceViewController.HospitalInfo = hosp1.id; |
| | | LexConInvoiceViewController.SecondDealer = agency1.id; |
| | | LexConInvoiceViewController.invoiceId = invoiceorder.Id; |
| | | LexConInvoiceViewController.init(invoiceorder.Id, 'Redirect', testList1.Id); |
| | | LexConInvoiceViewController.init(invoiceorder.Id, '', testList1.Id); |
| | | LexConInvoiceViewController.init('', '', ''); |
| | | LexConInvoiceViewController.init('', '', testList1.Id); |
| | | LexConInvoiceViewController.init('', 'Redirect', testList1.Id); |
| | | |
| | | String invoiceOrderRecoedschangeLwc = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoedschange); |
| | | String invoiceOrderRecoeds = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoeds); |
| | | LexConInvoiceViewController.save( |
| | | testList1, |
| | | '济宁任城儒济医院', |
| | | hosp1.id, |
| | | agency1.id, |
| | | invoiceOrderRecoeds, |
| | | testList1.Id, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | invoiceOrderRecoedschangeLwc |
| | | ); |
| | | LexConInvoiceViewController.InvoiceorderSearch( |
| | | testList1, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | '重庆', |
| | | 'ET', |
| | | hosp1.id, |
| | | agency1.id, |
| | | invoiceOrderRecoeds |
| | | ); |
| | | |
| | | // LexConInvoiceViewController.HospitalInfo = hosp1.id; |
| | | System.Test.stopTest(); |
| | | } |
| | | } |
| | | //新建发票 invoiceId=null error check |
| | | |
| | | static testMethod void conInvoiceViewTestedit_3() { |
| | | user curUser = [SELECT Id FROM User WHERE LastName = 'TestUser' LIMIT 1]; |
| | | Account acc = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testaccount002' |
| | | LIMIT 1 |
| | | ]; |
| | | Account hosp1 = [SELECT Id FROM Account WHERE name = 'Testhosp001' LIMIT 1]; |
| | | Account agency1 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp001' |
| | | LIMIT 1 |
| | | ]; |
| | | Account agency2 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp002' |
| | | LIMIT 1 |
| | | ]; |
| | | System.runAs(curUser) { |
| | | //产品信息 |
| | | Product2 prod01 = new Product2( |
| | | Name = 'Test01', |
| | | ProductCode = 'Test01', |
| | | Asset_Model_No__c = 'Test01', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | insert new List<Product2>{ prod01 }; |
| | | |
| | | Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'Test001', Product2__c = prod01.Id); |
| | | insert new List<Product2__c>{ pro1 }; |
| | | //发票信息 |
| | | Consumable_order__c invoiceorder = new Consumable_order__c(); |
| | | invoiceorder.Name = 'invoice01'; |
| | | invoiceorder.Order_type__c = '发票'; |
| | | invoiceorder.Invoice_status__c = '草案中'; |
| | | invoiceorder.Invoice_Date__c = Date.today(); |
| | | invoiceorder.RecordTypeid = System.Label.RT_ConOrder_Invoice; |
| | | //invoiceorder.Order_ForHospital__c =hosp1.Id; |
| | | //invoiceorder.Order_ForDealer__c = agency1.Id; |
| | | invoiceorder.Dealer_Info__c = acc.Id; |
| | | //invoiceorder.Order_ProType__c = 'ET'; |
| | | insert invoiceorder; |
| | | |
| | | invoiceorder = [ |
| | | SELECT id, Name |
| | | FROM Consumable_order__c |
| | | WHERE id = :invoiceorder.id |
| | | ]; |
| | | |
| | | Consumable_order__c testList1 = new Consumable_order__c( |
| | | Name = 'Test1', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '草案中', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id |
| | | ); |
| | | |
| | | Consumable_order__c testList2 = new Consumable_order__c( |
| | | Name = 'Test2', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '已提交', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id |
| | | ); |
| | | TestList1.Order_date__c = Date.today().addDays(2); |
| | | TestList2.Order_date__c = Date.today().addDays(2); |
| | | TestList1.Deliver_date__c = Date.today(); |
| | | TestList2.Deliver_date__c = Date.today(); |
| | | insert testList1; |
| | | insert testList2; |
| | | |
| | | Consumable_order_LinkTable__c order_LinkTable1 = new Consumable_order_LinkTable__c( |
| | | Name = 'order_LinkTable1', |
| | | Outboundorder_Code_link__c = testList1.Id, |
| | | Invoice_Code_link__c = invoiceorder.Id |
| | | ); |
| | | insert order_LinkTable1; |
| | | |
| | | PageReference page = new PageReference('/apex/ConInvoiceView?invoiceId=' + invoiceorder.Id + '&KeyWords=Redirect'); |
| | | page.setRedirect(true); |
| | | System.Test.setCurrentPage(page); |
| | | System.Test.startTest(); |
| | | |
| | | LexConInvoiceViewController conTest = new LexConInvoiceViewController(); |
| | | LexConInvoiceViewController.HospitalInfo = hosp1.id; |
| | | LexConInvoiceViewController.SecondDealer = agency1.id; |
| | | LexConInvoiceViewController.invoiceId = invoiceorder.Id; |
| | | LexConInvoiceViewController.init(invoiceorder.Id, 'Redirect', testList1.Id); |
| | | LexConInvoiceViewController.init(invoiceorder.Id, '', testList1.Id); |
| | | LexConInvoiceViewController.init('', '', ''); |
| | | LexConInvoiceViewController.init('', '', testList1.Id); |
| | | LexConInvoiceViewController.init('', 'Redirect', testList1.Id); |
| | | |
| | | String invoiceOrderRecoedschangeLwc = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoedschange); |
| | | String invoiceOrderRecoeds = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoeds); |
| | | LexConInvoiceViewController.save( |
| | | testList1, |
| | | '济宁任城儒济医院', |
| | | hosp1.id, |
| | | agency1.id, |
| | | invoiceOrderRecoeds, |
| | | testList1.Id, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | invoiceOrderRecoedschangeLwc |
| | | ); |
| | | LexConInvoiceViewController.InvoiceorderSearch( |
| | | testList1, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | '重庆', |
| | | 'ET', |
| | | hosp1.id, |
| | | agency1.id, |
| | | invoiceOrderRecoeds |
| | | ); |
| | | |
| | | // LexConInvoiceViewController.init(); |
| | | |
| | | LexConInvoiceViewController.invoiceId = invoiceorder.Id; |
| | | // LexConInvoiceViewController.coc.SummonsForDirction__c = '直接销售给医院'; |
| | | LexConInvoiceViewController.HospitalInfo = hosp1.id; |
| | | System.debug('===>hosp1.id' + hosp1.id); |
| | | LexConInvoiceViewController.invoiceId = null; |
| | | System.Test.stopTest(); |
| | | } |
| | | } |
| | | |
| | | //新建发票 以及编辑发票invoiceId== NULL and deliveryId== NULL |
| | | static testMethod void conInvoiceViewTestinit() { |
| | | user curUser = [SELECT Id FROM User WHERE LastName = 'TestUser' LIMIT 1]; |
| | | Account acc = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testaccount002' |
| | | LIMIT 1 |
| | | ]; |
| | | Account hosp1 = [SELECT Id FROM Account WHERE name = 'Testhosp001' LIMIT 1]; |
| | | Account agency1 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp001' |
| | | LIMIT 1 |
| | | ]; |
| | | Account agency2 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp002' |
| | | LIMIT 1 |
| | | ]; |
| | | |
| | | System.runAs(curUser) { |
| | | //产品信息 |
| | | Product2 prod01 = new Product2( |
| | | Name = 'Test01', |
| | | ProductCode = 'Test01', |
| | | Asset_Model_No__c = 'Test01', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod02 = new Product2( |
| | | Name = 'Test02', |
| | | ProductCode = 'Test02', |
| | | Asset_Model_No__c = 'Test02', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | insert new List<Product2>{ prod01, prod02 }; |
| | | |
| | | Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'Test001', Product2__c = prod01.Id); |
| | | Product2__c pro2 = new Product2__c(Name = 'Pro002', OT_CODE_Text__c = 'Test002', Product2__c = prod02.Id); |
| | | insert new List<Product2__c>{ pro1, pro2 }; |
| | | //发票信息 |
| | | Consumable_order__c invoiceorder = new Consumable_order__c(); |
| | | invoiceorder.Name = 'invoice01'; |
| | | invoiceorder.Order_type__c = '发票'; |
| | | invoiceorder.Invoice_status__c = '草案中'; |
| | | invoiceorder.Invoice_Date__c = Date.today(); |
| | | invoiceorder.RecordTypeid = System.Label.RT_ConOrder_Invoice; |
| | | //invoiceorder.Order_ForHospital__c =hosp1.Id; |
| | | //invoiceorder.Order_ForDealer__c = agency1.Id; |
| | | invoiceorder.Dealer_Info__c = acc.Id; |
| | | //invoiceorder.Order_ProType__c = 'ET'; |
| | | insert invoiceorder; |
| | | |
| | | invoiceorder = [ |
| | | SELECT id, Name |
| | | FROM Consumable_order__c |
| | | WHERE id = :invoiceorder.id |
| | | ]; |
| | | //出库单 |
| | | //Consumable_order__c testList1 = new Consumable_order__c(Name='Test1',Summons_Sale_Status__c='出货',SummonsStatus_c__c='已完成',Order_ForHospital__c =hosp1.Id,SummonsForDirction__c='直接销售给医院',Order_status__c='草案中',Order_type__c='传票',Order_ForDealer__c = agency1.Id, Dealer_info__c=myAccount1.Id,ConInvoice_Code__c = invoiceorder.id); |
| | | //Consumable_order__c testList2 = new Consumable_order__c(Name='Test2',Summons_Sale_Status__c='出货',SummonsStatus_c__c='已完成',Order_ForHospital__c =hosp1.Id,SummonsForDirction__c='直接销售给医院',Order_status__c='已提交',Order_type__c='传票',Order_ForDealer__c = agency1.Id, Dealer_info__c=myAccount1.Id,ConInvoice_Code__c = invoiceorder.id); |
| | | |
| | | Consumable_order__c testList1 = new Consumable_order__c( |
| | | Name = 'Test1', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '草案中', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id |
| | | ); |
| | | Consumable_order__c testList2 = new Consumable_order__c( |
| | | Name = 'Test2', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '已提交', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id |
| | | ); |
| | | TestList1.Order_date__c = Date.today().addDays(2); |
| | | TestList2.Order_date__c = Date.today().addDays(2); |
| | | TestList1.Deliver_date__c = Date.today(); |
| | | TestList2.Deliver_date__c = Date.today(); |
| | | insert testList1; |
| | | insert testList2; |
| | | //insert new Consumable_order__c[]{testList1,testList2}; |
| | | |
| | | Consumable_order_LinkTable__c order_LinkTable1 = new Consumable_order_LinkTable__c( |
| | | Name = 'order_LinkTable1', |
| | | Outboundorder_Code_link__c = testList1.Id, |
| | | Invoice_Code_link__c = invoiceorder.Id |
| | | ); |
| | | insert order_LinkTable1; |
| | | Consumable_order_LinkTable__c order_LinkTable2 = new Consumable_order_LinkTable__c( |
| | | Name = 'order_LinkTable2', |
| | | Outboundorder_Code_link__c = testList2.Id, |
| | | Invoice_Code_link__c = invoiceorder.Id |
| | | ); |
| | | insert order_LinkTable2; |
| | | //出库单1明细1 |
| | | Consumable_orderdetails__c orderdet1 = new Consumable_orderdetails__c(); |
| | | orderdet1.Name = 'Test1_001001'; |
| | | //orderdet1.Consumable_principal__c = testList1.Id; |
| | | orderdet1.Consumable_order__c = testList1.Id; |
| | | orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet1.Consumable_count__c = 1; |
| | | orderdet1.Consumable_product__c = pro1.Id; |
| | | |
| | | //出库单1明细2 |
| | | Consumable_orderdetails__c orderdet2 = new Consumable_orderdetails__c(); |
| | | orderdet2.Name = 'Test1_001002'; |
| | | //orderdet2.Consumable_principal__c = testList2.Id; |
| | | orderdet2.Consumable_order__c = testList1.Id; |
| | | orderdet2.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet2.Consumable_count__c = 1; |
| | | orderdet2.Consumable_product__c = pro1.Id; |
| | | //出库单2明细1 |
| | | Consumable_orderdetails__c orderdet3 = new Consumable_orderdetails__c(); |
| | | orderdet3.Name = 'Test1_002001'; |
| | | //orderdet2.Consumable_principal__c = testList2.Id; |
| | | orderdet3.Consumable_order__c = testList2.id; |
| | | orderdet3.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet3.Consumable_count__c = 1; |
| | | orderdet3.Shipment_Count__c = 1; |
| | | orderdet3.Consumable_product__c = pro2.Id; |
| | | |
| | | //出库单2明细2 |
| | | Consumable_orderdetails__c orderdet4 = new Consumable_orderdetails__c(); |
| | | orderdet4.Name = 'Test1_002002'; |
| | | //orderdet2.Consumable_principal__c = testList2.Id; |
| | | orderdet4.Consumable_order__c = testList2.id; |
| | | orderdet4.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet4.Consumable_count__c = 1; |
| | | orderdet4.Shipment_Count__c = 1; |
| | | orderdet4.Consumable_product__c = pro2.Id; |
| | | insert new List<Consumable_orderdetails__c>{ orderdet1, orderdet2, orderdet3, orderdet4 }; |
| | | //附件 |
| | | Consumable_accessories_invoice__c caic = new Consumable_accessories_invoice__c(); |
| | | caic.Attachment_ID__c = acc.Id; |
| | | caic.Accessories_type__c = '发票和明细'; |
| | | caic.Invoice_code__c = invoiceorder.id; |
| | | insert caic; |
| | | PageReference page = new PageReference('/apex/ConInvoiceView?KeyWords=Redirect'); |
| | | page.setRedirect(true); |
| | | System.Test.setCurrentPage(page); |
| | | |
| | | //contest.deliveryId=testList1.id; |
| | | System.Test.startTest(); |
| | | LexConInvoiceViewController conTest = new LexConInvoiceViewController(); |
| | | LexConInvoiceViewController.HospitalInfo = hosp1.id; |
| | | LexConInvoiceViewController.SecondDealer = agency1.id; |
| | | LexConInvoiceViewController.invoiceId = invoiceorder.Id; |
| | | LexConInvoiceViewController.init(invoiceorder.Id, 'Redirect', testList1.Id); |
| | | LexConInvoiceViewController.init(invoiceorder.Id, '', testList1.Id); |
| | | LexConInvoiceViewController.init('', '', ''); |
| | | LexConInvoiceViewController.init('', '', testList1.Id); |
| | | LexConInvoiceViewController.init('', 'Redirect', testList1.Id); |
| | | |
| | | String invoiceOrderRecoedschangeLwc = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoedschange); |
| | | String invoiceOrderRecoeds = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoeds); |
| | | LexConInvoiceViewController.save( |
| | | testList1, |
| | | '济宁任城儒济医院', |
| | | hosp1.id, |
| | | agency1.id, |
| | | invoiceOrderRecoeds, |
| | | testList1.Id, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | invoiceOrderRecoedschangeLwc |
| | | ); |
| | | LexConInvoiceViewController.InvoiceorderSearch( |
| | | testList1, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | '重庆', |
| | | 'ET', |
| | | hosp1.id, |
| | | agency1.id, |
| | | invoiceOrderRecoeds |
| | | ); |
| | | System.Test.stopTest(); |
| | | } |
| | | } |
| | | |
| | | //新建发票 以及编辑发票invoiceId== NULL and deliveryId<> NULL |
| | | static testMethod void conInvoiceViewTestinit_1() { |
| | | user curUser = [SELECT Id FROM User WHERE LastName = 'TestUser' LIMIT 1]; |
| | | Account acc = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testaccount002' |
| | | LIMIT 1 |
| | | ]; |
| | | Account hosp1 = [SELECT Id FROM Account WHERE name = 'Testhosp001' LIMIT 1]; |
| | | Account agency1 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp001' |
| | | LIMIT 1 |
| | | ]; |
| | | Account agency2 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp002' |
| | | LIMIT 1 |
| | | ]; |
| | | System.runAs(curUser) { |
| | | //产品信息 |
| | | Product2 prod01 = new Product2( |
| | | Name = 'Test01', |
| | | ProductCode = 'Test01', |
| | | Asset_Model_No__c = 'Test01', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod02 = new Product2( |
| | | Name = 'Test02', |
| | | ProductCode = 'Test02', |
| | | Asset_Model_No__c = 'Test02', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | insert new List<Product2>{ prod01, prod02 }; |
| | | |
| | | Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'Test001', Product2__c = prod01.Id); |
| | | Product2__c pro2 = new Product2__c(Name = 'Pro002', OT_CODE_Text__c = 'Test002', Product2__c = prod02.Id); |
| | | insert new List<Product2__c>{ pro1, pro2 }; |
| | | //发票信息 |
| | | Consumable_order__c invoiceorder = new Consumable_order__c(); |
| | | invoiceorder.Name = 'invoice01'; |
| | | invoiceorder.Order_type__c = '发票'; |
| | | invoiceorder.Invoice_status__c = '草案中'; |
| | | invoiceorder.Invoice_Date__c = Date.today(); |
| | | invoiceorder.RecordTypeid = System.Label.RT_ConOrder_Invoice; |
| | | //invoiceorder.Order_ForHospital__c =hosp1.Id; |
| | | //invoiceorder.Order_ForDealer__c = agency1.Id; |
| | | invoiceorder.Dealer_Info__c = acc.Id; |
| | | insert invoiceorder; |
| | | |
| | | invoiceorder = [ |
| | | SELECT id, Name |
| | | FROM Consumable_order__c |
| | | WHERE id = :invoiceorder.id |
| | | ]; |
| | | //出库单 |
| | | //Consumable_order__c testList1 = new Consumable_order__c(Name='Test1',Summons_Sale_Status__c='出货',SummonsStatus_c__c='已完成',Order_ForHospital__c =hosp1.Id,SummonsForDirction__c='直接销售给医院',Order_status__c='草案中',Order_type__c='传票',Order_ForDealer__c = agency1.Id, Dealer_info__c=myAccount1.Id,ConInvoice_Code__c = invoiceorder.id); |
| | | //Consumable_order__c testList2 = new Consumable_order__c(Name='Test2',Summons_Sale_Status__c='出货',SummonsStatus_c__c='已完成',Order_ForHospital__c =hosp1.Id,SummonsForDirction__c='直接销售给医院',Order_status__c='已提交',Order_type__c='传票',Order_ForDealer__c = agency1.Id, Dealer_info__c=myAccount1.Id,ConInvoice_Code__c = invoiceorder.id); |
| | | |
| | | Consumable_order__c testList1 = new Consumable_order__c( |
| | | Name = 'Test1', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '草案中', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id |
| | | ); |
| | | Consumable_order__c testList2 = new Consumable_order__c( |
| | | Name = 'Test2', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '已提交', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id |
| | | ); |
| | | TestList1.Order_date__c = Date.today().addDays(2); |
| | | TestList2.Order_date__c = Date.today().addDays(2); |
| | | TestList1.Deliver_date__c = Date.today(); |
| | | TestList2.Deliver_date__c = Date.today(); |
| | | insert testList1; |
| | | insert testList2; |
| | | //insert new Consumable_order__c[]{testList1,testList2}; |
| | | |
| | | Consumable_order_LinkTable__c order_LinkTable1 = new Consumable_order_LinkTable__c( |
| | | Name = 'order_LinkTable1', |
| | | Outboundorder_Code_link__c = testList1.Id, |
| | | Invoice_Code_link__c = invoiceorder.Id |
| | | ); |
| | | insert order_LinkTable1; |
| | | Consumable_order_LinkTable__c order_LinkTable2 = new Consumable_order_LinkTable__c( |
| | | Name = 'order_LinkTable2', |
| | | Outboundorder_Code_link__c = testList2.Id, |
| | | Invoice_Code_link__c = invoiceorder.Id |
| | | ); |
| | | insert order_LinkTable2; |
| | | //出库单1明细1 |
| | | Consumable_orderdetails__c orderdet1 = new Consumable_orderdetails__c(); |
| | | orderdet1.Name = 'Test1_001001'; |
| | | //orderdet1.Consumable_principal__c = testList1.Id; |
| | | orderdet1.Consumable_order__c = testList1.Id; |
| | | orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet1.Consumable_count__c = 1; |
| | | orderdet1.Consumable_product__c = pro1.Id; |
| | | |
| | | //出库单1明细2 |
| | | Consumable_orderdetails__c orderdet2 = new Consumable_orderdetails__c(); |
| | | orderdet2.Name = 'Test1_001002'; |
| | | //orderdet2.Consumable_principal__c = testList2.Id; |
| | | orderdet2.Consumable_order__c = testList1.Id; |
| | | orderdet2.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet2.Consumable_count__c = 1; |
| | | orderdet2.Consumable_product__c = pro1.Id; |
| | | //出库单2明细1 |
| | | Consumable_orderdetails__c orderdet3 = new Consumable_orderdetails__c(); |
| | | orderdet3.Name = 'Test1_002001'; |
| | | //orderdet2.Consumable_principal__c = testList2.Id; |
| | | orderdet3.Consumable_order__c = testList2.id; |
| | | orderdet3.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet3.Consumable_count__c = 1; |
| | | orderdet3.Shipment_Count__c = 1; |
| | | orderdet3.Consumable_product__c = pro2.Id; |
| | | |
| | | //出库单2明细2 |
| | | Consumable_orderdetails__c orderdet4 = new Consumable_orderdetails__c(); |
| | | orderdet4.Name = 'Test1_002002'; |
| | | //orderdet2.Consumable_principal__c = testList2.Id; |
| | | orderdet4.Consumable_order__c = testList2.id; |
| | | orderdet4.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet4.Consumable_count__c = 1; |
| | | orderdet4.Shipment_Count__c = 1; |
| | | orderdet4.Consumable_product__c = pro2.Id; |
| | | insert new List<Consumable_orderdetails__c>{ orderdet1, orderdet2, orderdet3, orderdet4 }; |
| | | //附件 |
| | | Consumable_accessories_invoice__c caic = new Consumable_accessories_invoice__c(); |
| | | caic.Attachment_ID__c = acc.Id; |
| | | caic.Accessories_type__c = '发票和明细'; |
| | | caic.Invoice_code__c = invoiceorder.id; |
| | | insert caic; |
| | | PageReference page = new PageReference('/apex/ConInvoiceView?invoiceId=' + invoiceorder.id); |
| | | page.setRedirect(true); |
| | | System.Test.setCurrentPage(page); |
| | | |
| | | // contest.deliveryId=testList1.id; |
| | | System.Test.startTest(); |
| | | LexConInvoiceViewController.init(invoiceorder.id, 'Redirect', testList2.Id); |
| | | LexConInvoiceViewController conTest = new LexConInvoiceViewController(); |
| | | LexConInvoiceViewController.HospitalInfo = hosp1.id; |
| | | LexConInvoiceViewController.SecondDealer = agency1.id; |
| | | LexConInvoiceViewController.invoiceId = invoiceorder.Id; |
| | | LexConInvoiceViewController.init(invoiceorder.Id, 'Redirect', testList1.Id); |
| | | LexConInvoiceViewController.init(invoiceorder.Id, '', testList1.Id); |
| | | LexConInvoiceViewController.init('', '', ''); |
| | | LexConInvoiceViewController.init('', '', testList1.Id); |
| | | LexConInvoiceViewController.init('', 'Redirect', testList1.Id); |
| | | |
| | | String invoiceOrderRecoedschangeLwc = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoedschange); |
| | | String invoiceOrderRecoeds = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoeds); |
| | | LexConInvoiceViewController.save( |
| | | testList1, |
| | | '济宁任城儒济医院', |
| | | hosp1.id, |
| | | agency1.id, |
| | | invoiceOrderRecoeds, |
| | | testList1.Id, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | invoiceOrderRecoedschangeLwc |
| | | ); |
| | | LexConInvoiceViewController.InvoiceorderSearch( |
| | | testList1, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | '重庆', |
| | | 'ET', |
| | | hosp1.id, |
| | | agency1.id, |
| | | invoiceOrderRecoeds |
| | | ); |
| | | System.Test.stopTest(); |
| | | } |
| | | } |
| | | |
| | | //新建发票 以及编辑发票invoiceId<> NULL |
| | | static testMethod void conInvoiceViewTestinit_2() { |
| | | user curUser = [SELECT Id FROM User WHERE LastName = 'TestUser' LIMIT 1]; |
| | | Account acc = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testaccount002' |
| | | LIMIT 1 |
| | | ]; |
| | | Account hosp1 = [SELECT Id FROM Account WHERE name = 'Testhosp001' LIMIT 1]; |
| | | Account agency1 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp001' |
| | | LIMIT 1 |
| | | ]; |
| | | Account agency2 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp002' |
| | | LIMIT 1 |
| | | ]; |
| | | System.runAs(curUser) { |
| | | //产品信息 |
| | | Product2 prod01 = new Product2( |
| | | Name = 'Test01', |
| | | ProductCode = 'Test01', |
| | | Asset_Model_No__c = 'Test01', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod02 = new Product2( |
| | | Name = 'Test02', |
| | | ProductCode = 'Test02', |
| | | Asset_Model_No__c = 'Test02', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | insert new List<Product2>{ prod01, prod02 }; |
| | | |
| | | Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'Test001', Product2__c = prod01.Id); |
| | | Product2__c pro2 = new Product2__c(Name = 'Pro002', OT_CODE_Text__c = 'Test002', Product2__c = prod02.Id); |
| | | insert new List<Product2__c>{ pro1, pro2 }; |
| | | //发票信息 |
| | | Consumable_order__c invoiceorder = new Consumable_order__c(); |
| | | invoiceorder.Name = 'invoice01'; |
| | | invoiceorder.Order_type__c = '发票'; |
| | | invoiceorder.Invoice_status__c = '草案中'; |
| | | invoiceorder.Invoice_Date__c = Date.today(); |
| | | invoiceorder.RecordTypeid = System.Label.RT_ConOrder_Invoice; |
| | | //invoiceorder.Order_ForHospital__c =hosp1.Id; |
| | | //invoiceorder.Order_ForDealer__c = agency1.Id; |
| | | invoiceorder.Dealer_Info__c = acc.Id; |
| | | insert invoiceorder; |
| | | |
| | | invoiceorder = [ |
| | | SELECT id, Name |
| | | FROM Consumable_order__c |
| | | WHERE id = :invoiceorder.id |
| | | ]; |
| | | //出库单 |
| | | //Consumable_order__c testList1 = new Consumable_order__c(Name='Test1',Summons_Sale_Status__c='出货',SummonsStatus_c__c='已完成',Order_ForHospital__c =hosp1.Id,SummonsForDirction__c='直接销售给医院',Order_status__c='草案中',Order_type__c='传票',Order_ForDealer__c = agency1.Id, Dealer_info__c=myAccount1.Id,ConInvoice_Code__c = invoiceorder.id); |
| | | //Consumable_order__c testList2 = new Consumable_order__c(Name='Test2',Summons_Sale_Status__c='出货',SummonsStatus_c__c='已完成',Order_ForHospital__c =hosp1.Id,SummonsForDirction__c='直接销售给医院',Order_status__c='已提交',Order_type__c='传票',Order_ForDealer__c = agency1.Id, Dealer_info__c=myAccount1.Id,ConInvoice_Code__c = invoiceorder.id); |
| | | |
| | | Consumable_order__c testList1 = new Consumable_order__c( |
| | | Name = 'Test1', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '草案中', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id |
| | | ); |
| | | Consumable_order__c testList2 = new Consumable_order__c( |
| | | Name = 'Test2', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '已提交', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id |
| | | ); |
| | | TestList1.Order_date__c = Date.today().addDays(2); |
| | | TestList2.Order_date__c = Date.today().addDays(2); |
| | | TestList1.Deliver_date__c = Date.today(); |
| | | TestList2.Deliver_date__c = Date.today(); |
| | | insert testList1; |
| | | insert testList2; |
| | | //insert new Consumable_order__c[]{testList1,testList2}; |
| | | |
| | | Consumable_order_LinkTable__c order_LinkTable1 = new Consumable_order_LinkTable__c( |
| | | Name = 'order_LinkTable1', |
| | | Outboundorder_Code_link__c = testList1.Id, |
| | | Invoice_Code_link__c = invoiceorder.Id |
| | | ); |
| | | insert order_LinkTable1; |
| | | Consumable_order_LinkTable__c order_LinkTable2 = new Consumable_order_LinkTable__c( |
| | | Name = 'order_LinkTable2', |
| | | Outboundorder_Code_link__c = testList2.Id, |
| | | Invoice_Code_link__c = invoiceorder.Id |
| | | ); |
| | | insert order_LinkTable2; |
| | | //出库单1明细1 |
| | | Consumable_orderdetails__c orderdet1 = new Consumable_orderdetails__c(); |
| | | orderdet1.Name = 'Test1_001001'; |
| | | //orderdet1.Consumable_principal__c = testList1.Id; |
| | | orderdet1.Consumable_order__c = testList1.Id; |
| | | orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet1.Consumable_count__c = 1; |
| | | orderdet1.Consumable_product__c = pro1.Id; |
| | | |
| | | //出库单1明细2 |
| | | Consumable_orderdetails__c orderdet2 = new Consumable_orderdetails__c(); |
| | | orderdet2.Name = 'Test1_001002'; |
| | | //orderdet2.Consumable_principal__c = testList2.Id; |
| | | orderdet2.Consumable_order__c = testList1.Id; |
| | | orderdet2.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet2.Consumable_count__c = 1; |
| | | orderdet2.Consumable_product__c = pro1.Id; |
| | | //出库单2明细1 |
| | | Consumable_orderdetails__c orderdet3 = new Consumable_orderdetails__c(); |
| | | orderdet3.Name = 'Test1_002001'; |
| | | //orderdet2.Consumable_principal__c = testList2.Id; |
| | | orderdet3.Consumable_order__c = testList2.id; |
| | | orderdet3.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet3.Consumable_count__c = 1; |
| | | orderdet3.Shipment_Count__c = 1; |
| | | orderdet3.Consumable_product__c = pro2.Id; |
| | | |
| | | //出库单2明细2 |
| | | Consumable_orderdetails__c orderdet4 = new Consumable_orderdetails__c(); |
| | | orderdet4.Name = 'Test1_002002'; |
| | | //orderdet2.Consumable_principal__c = testList2.Id; |
| | | orderdet4.Consumable_order__c = testList2.id; |
| | | orderdet4.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet4.Consumable_count__c = 1; |
| | | orderdet4.Shipment_Count__c = 1; |
| | | orderdet4.Consumable_product__c = pro2.Id; |
| | | insert new List<Consumable_orderdetails__c>{ orderdet1, orderdet2, orderdet3, orderdet4 }; |
| | | //附件 |
| | | Consumable_accessories_invoice__c caic = new Consumable_accessories_invoice__c(); |
| | | caic.Attachment_ID__c = acc.Id; |
| | | caic.Accessories_type__c = '发票和明细'; |
| | | caic.Invoice_code__c = invoiceorder.id; |
| | | insert caic; |
| | | // PageReference page = new PageReference('/apex/ConInvoiceView?KeyWords=Redirect'); |
| | | // page.setRedirect(true); |
| | | // System.Test.setCurrentPage(page); |
| | | |
| | | // ConInvoiceViewController conTest = new ConInvoiceViewController(); |
| | | // contest.deliveryId=testList1.id; |
| | | // conTest.invoiceId =invoiceorder.Id; |
| | | System.Test.startTest(); |
| | | LexConInvoiceViewController.init(invoiceorder.id, 'Redirect', testList2.Id); |
| | | LexConInvoiceViewController conTest = new LexConInvoiceViewController(); |
| | | LexConInvoiceViewController.HospitalInfo = hosp1.id; |
| | | LexConInvoiceViewController.SecondDealer = agency1.id; |
| | | LexConInvoiceViewController.invoiceId = invoiceorder.Id; |
| | | LexConInvoiceViewController.init(invoiceorder.Id, 'Redirect', testList1.Id); |
| | | LexConInvoiceViewController.init(invoiceorder.Id, '', testList1.Id); |
| | | LexConInvoiceViewController.init('', '', ''); |
| | | LexConInvoiceViewController.init('', '', testList1.Id); |
| | | LexConInvoiceViewController.init('', 'Redirect', testList1.Id); |
| | | |
| | | String invoiceOrderRecoedschangeLwc = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoedschange); |
| | | String invoiceOrderRecoeds = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoeds); |
| | | LexConInvoiceViewController.save( |
| | | testList1, |
| | | '济宁任城儒济医院', |
| | | hosp1.id, |
| | | agency1.id, |
| | | invoiceOrderRecoeds, |
| | | testList1.Id, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | invoiceOrderRecoedschangeLwc |
| | | ); |
| | | LexConInvoiceViewController.InvoiceorderSearch( |
| | | testList1, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | '重庆', |
| | | 'ET', |
| | | hosp1.id, |
| | | agency1.id, |
| | | invoiceOrderRecoeds |
| | | ); |
| | | |
| | | // conTest.init(); |
| | | |
| | | //System.assertEquals(false, conTest.getdone()); |
| | | //System.assertEquals(false, conTest.getExistOutbound()); |
| | | //System.assertEquals('invoice01', conTest.getInvoiceName()); |
| | | //System.assertEquals(2, conTest.invoiceOrderRecoedsCount); |
| | | // conTest.InvoiceorderSearch(); |
| | | |
| | | // conTest.SortLimited(); |
| | | System.Test.stopTest(); |
| | | } |
| | | } |
| | | static testMethod void conInvoiceViewTestoutOrderchange() { |
| | | user curUser = [SELECT Id FROM User WHERE LastName = 'TestUser' LIMIT 1]; |
| | | Account acc = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testaccount002' |
| | | LIMIT 1 |
| | | ]; |
| | | Account hosp1 = [SELECT Id FROM Account WHERE name = 'Testhosp001' LIMIT 1]; |
| | | Account agency1 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp001' |
| | | LIMIT 1 |
| | | ]; |
| | | Account agency2 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp002' |
| | | LIMIT 1 |
| | | ]; |
| | | System.runAs(curUser) { |
| | | //产品信息 |
| | | Product2 prod01 = new Product2( |
| | | Name = 'Test01', |
| | | ProductCode = 'Test01', |
| | | Asset_Model_No__c = 'Test01', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod02 = new Product2( |
| | | Name = 'Test02', |
| | | ProductCode = 'Test02', |
| | | Asset_Model_No__c = 'Test02', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | insert new List<Product2>{ prod01, prod02 }; |
| | | |
| | | Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'Test001', Product2__c = prod01.Id); |
| | | Product2__c pro2 = new Product2__c(Name = 'Pro002', OT_CODE_Text__c = 'Test002', Product2__c = prod02.Id); |
| | | insert new List<Product2__c>{ pro1, pro2 }; |
| | | //发票信息 |
| | | Consumable_order__c invoiceorder = new Consumable_order__c(); |
| | | invoiceorder.Name = 'invoice01'; |
| | | invoiceorder.Order_type__c = '发票'; |
| | | invoiceorder.Invoice_status__c = '草案中'; |
| | | invoiceorder.Invoice_Date__c = Date.today(); |
| | | invoiceorder.RecordTypeid = System.Label.RT_ConOrder_Invoice; |
| | | //invoiceorder.Order_ForHospital__c =hosp1.Id; |
| | | //invoiceorder.Order_ForDealer__c = agency1.Id; |
| | | invoiceorder.Dealer_Info__c = acc.Id; |
| | | insert invoiceorder; |
| | | |
| | | invoiceorder = [ |
| | | SELECT id, Name |
| | | FROM Consumable_order__c |
| | | WHERE id = :invoiceorder.id |
| | | ]; |
| | | //出库单 |
| | | |
| | | Consumable_order__c testList1 = new Consumable_order__c( |
| | | Name = 'Test1', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '草案中', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id |
| | | ); |
| | | |
| | | Consumable_order__c testList2 = new Consumable_order__c( |
| | | Name = 'Test2', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '已提交', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id |
| | | ); |
| | | TestList1.Order_date__c = Date.today().addDays(2); |
| | | TestList2.Order_date__c = Date.today().addDays(2); |
| | | TestList1.Deliver_date__c = Date.today(); |
| | | TestList2.Deliver_date__c = Date.today(); |
| | | System.Test.startTest(); |
| | | insert testList1; |
| | | insert testList2; |
| | | |
| | | Consumable_order_LinkTable__c order_LinkTable1 = new Consumable_order_LinkTable__c( |
| | | Name = 'order_LinkTable1', |
| | | Outboundorder_Code_link__c = testList1.Id, |
| | | Invoice_Code_link__c = invoiceorder.Id |
| | | ); |
| | | insert order_LinkTable1; |
| | | |
| | | //出库单1明细1 |
| | | Consumable_orderdetails__c orderdet1 = new Consumable_orderdetails__c(); |
| | | orderdet1.Name = 'Test1_001001'; |
| | | //orderdet1.Consumable_principal__c = testList1.Id; |
| | | orderdet1.Consumable_order__c = testList1.Id; |
| | | orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet1.Consumable_count__c = 1; |
| | | orderdet1.Consumable_product__c = pro1.Id; |
| | | |
| | | //出库单1明细2 |
| | | Consumable_orderdetails__c orderdet2 = new Consumable_orderdetails__c(); |
| | | orderdet2.Name = 'Test1_001002'; |
| | | //orderdet2.Consumable_principal__c = testList2.Id; |
| | | orderdet2.Consumable_order__c = testList1.Id; |
| | | orderdet2.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet2.Consumable_count__c = 1; |
| | | orderdet2.Consumable_product__c = pro1.Id; |
| | | insert new List<Consumable_orderdetails__c>{ orderdet1, orderdet2 }; |
| | | |
| | | LexConInvoiceViewController.init(invoiceorder.id, 'Redirect', testList2.Id); |
| | | LexConInvoiceViewController conTest = new LexConInvoiceViewController(); |
| | | LexConInvoiceViewController.HospitalInfo = hosp1.id; |
| | | LexConInvoiceViewController.SecondDealer = agency1.id; |
| | | LexConInvoiceViewController.invoiceId = invoiceorder.Id; |
| | | LexConInvoiceViewController.init(invoiceorder.Id, 'Redirect', testList1.Id); |
| | | LexConInvoiceViewController.init(invoiceorder.Id, '', testList1.Id); |
| | | LexConInvoiceViewController.init('', '', ''); |
| | | LexConInvoiceViewController.init('', '', testList1.Id); |
| | | LexConInvoiceViewController.init('', 'Redirect', testList1.Id); |
| | | |
| | | String invoiceOrderRecoedschangeLwc = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoedschange); |
| | | String invoiceOrderRecoeds = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoeds); |
| | | LexConInvoiceViewController.save( |
| | | testList1, |
| | | '济宁任城儒济医院', |
| | | hosp1.id, |
| | | agency1.id, |
| | | invoiceOrderRecoeds, |
| | | testList1.Id, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | invoiceOrderRecoedschangeLwc |
| | | ); |
| | | LexConInvoiceViewController.InvoiceorderSearch( |
| | | testList1, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | '重庆', |
| | | 'ET', |
| | | hosp1.id, |
| | | agency1.id, |
| | | invoiceOrderRecoeds |
| | | ); |
| | | System.Test.stopTest(); |
| | | } |
| | | } |
| | | |
| | | static testMethod void conInvoiceViewTestgetdefaultMapinfo() { |
| | | user curUser = [SELECT Id FROM User WHERE LastName = 'TestUser' LIMIT 1]; |
| | | Account acc = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testaccount002' |
| | | LIMIT 1 |
| | | ]; |
| | | Account hosp1 = [SELECT Id FROM Account WHERE name = 'Testhosp001' LIMIT 1]; |
| | | Account agency1 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp001' |
| | | LIMIT 1 |
| | | ]; |
| | | Account agency2 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp002' |
| | | LIMIT 1 |
| | | ]; |
| | | System.runAs(curUser) { |
| | | //产品信息 |
| | | Product2 prod01 = new Product2( |
| | | Name = 'Test01', |
| | | ProductCode = 'Test01', |
| | | Asset_Model_No__c = 'Test01', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod02 = new Product2( |
| | | Name = 'Test02', |
| | | ProductCode = 'Test02', |
| | | Asset_Model_No__c = 'Test02', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | insert new List<Product2>{ prod01, prod02 }; |
| | | |
| | | Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'Test001', Product2__c = prod01.Id); |
| | | Product2__c pro2 = new Product2__c(Name = 'Pro002', OT_CODE_Text__c = 'Test002', Product2__c = prod02.Id); |
| | | insert new List<Product2__c>{ pro1, pro2 }; |
| | | //发票信息 |
| | | Consumable_order__c invoiceorder = new Consumable_order__c(); |
| | | invoiceorder.Name = 'invoice01'; |
| | | invoiceorder.Order_type__c = '发票'; |
| | | invoiceorder.Invoice_status__c = '草案中'; |
| | | invoiceorder.Invoice_Date__c = Date.today(); |
| | | invoiceorder.RecordTypeid = System.Label.RT_ConOrder_Invoice; |
| | | //invoiceorder.Order_ForHospital__c =hosp1.Id; |
| | | // invoiceorder.Order_ForDealer__c = agency1.Id; |
| | | invoiceorder.Dealer_Info__c = acc.Id; |
| | | insert invoiceorder; |
| | | |
| | | invoiceorder = [ |
| | | SELECT id, Name |
| | | FROM Consumable_order__c |
| | | WHERE id = :invoiceorder.id |
| | | ]; |
| | | //出库单 |
| | | |
| | | Consumable_order__c testList1 = new Consumable_order__c( |
| | | Name = 'Test1', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '草案中', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id |
| | | ); |
| | | |
| | | Consumable_order__c testList2 = new Consumable_order__c( |
| | | Name = 'Test2', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '已提交', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id |
| | | ); |
| | | TestList1.Order_date__c = Date.today().addDays(2); |
| | | TestList2.Order_date__c = Date.today().addDays(2); |
| | | TestList1.Deliver_date__c = Date.today(); |
| | | TestList2.Deliver_date__c = Date.today(); |
| | | System.Test.startTest(); |
| | | insert testList1; |
| | | insert testList2; |
| | | |
| | | Consumable_order_LinkTable__c order_LinkTable1 = new Consumable_order_LinkTable__c( |
| | | Name = 'order_LinkTable1', |
| | | Outboundorder_Code_link__c = testList1.Id, |
| | | Invoice_Code_link__c = invoiceorder.Id |
| | | ); |
| | | insert order_LinkTable1; |
| | | |
| | | //出库单1明细1 |
| | | Consumable_orderdetails__c orderdet1 = new Consumable_orderdetails__c(); |
| | | orderdet1.Name = 'Test1_001001'; |
| | | //orderdet1.Consumable_principal__c = testList1.Id; |
| | | orderdet1.Consumable_order__c = testList1.Id; |
| | | orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet1.Consumable_count__c = 1; |
| | | orderdet1.Consumable_product__c = pro1.Id; |
| | | |
| | | //出库单1明细2 |
| | | Consumable_orderdetails__c orderdet2 = new Consumable_orderdetails__c(); |
| | | orderdet2.Name = 'Test1_001002'; |
| | | //orderdet2.Consumable_principal__c = testList2.Id; |
| | | orderdet2.Consumable_order__c = testList1.Id; |
| | | orderdet2.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet2.Consumable_count__c = 1; |
| | | orderdet2.Consumable_product__c = pro1.Id; |
| | | insert new List<Consumable_orderdetails__c>{ orderdet1, orderdet2 }; |
| | | |
| | | PageReference page = new PageReference('/apex/ConInvoiceView?invoiceId=' + invoiceorder.Id + '&KeyWords=Redirect'); |
| | | page.setRedirect(true); |
| | | System.Test.setCurrentPage(page); |
| | | |
| | | LexConInvoiceViewController.init(invoiceorder.id, 'Redirect', testList2.Id); |
| | | LexConInvoiceViewController conTest = new LexConInvoiceViewController(); |
| | | LexConInvoiceViewController.HospitalInfo = hosp1.id; |
| | | LexConInvoiceViewController.SecondDealer = agency1.id; |
| | | LexConInvoiceViewController.invoiceId = invoiceorder.Id; |
| | | LexConInvoiceViewController.init(invoiceorder.Id, 'Redirect', testList1.Id); |
| | | LexConInvoiceViewController.init(invoiceorder.Id, '', testList1.Id); |
| | | LexConInvoiceViewController.init('', '', ''); |
| | | LexConInvoiceViewController.init('', '', testList1.Id); |
| | | LexConInvoiceViewController.init('', 'Redirect', testList1.Id); |
| | | |
| | | String invoiceOrderRecoedschangeLwc = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoedschange); |
| | | String invoiceOrderRecoeds = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoeds); |
| | | LexConInvoiceViewController.save( |
| | | testList1, |
| | | '济宁任城儒济医院', |
| | | hosp1.id, |
| | | agency1.id, |
| | | invoiceOrderRecoeds, |
| | | testList1.Id, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | invoiceOrderRecoedschangeLwc |
| | | ); |
| | | LexConInvoiceViewController.InvoiceorderSearch( |
| | | testList1, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | '重庆', |
| | | 'ET', |
| | | hosp1.id, |
| | | agency1.id, |
| | | invoiceOrderRecoeds |
| | | ); |
| | | System.Test.stopTest(); |
| | | } |
| | | } |
| | | |
| | | //从出库单直接开票 |
| | | static testMethod void conInvoiceViewRedirectTest() { |
| | | user curUser = [SELECT Id FROM User WHERE LastName = 'TestUser' LIMIT 1]; |
| | | Account acc = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testaccount002' |
| | | LIMIT 1 |
| | | ]; |
| | | Account hosp1 = [SELECT Id FROM Account WHERE name = 'Testhosp001' LIMIT 1]; |
| | | Account agency1 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp001' |
| | | LIMIT 1 |
| | | ]; |
| | | Account agency2 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp002' |
| | | LIMIT 1 |
| | | ]; |
| | | System.runAs(curUser) { |
| | | //产品信息 |
| | | Product2 prod01 = new Product2( |
| | | Name = 'Test01', |
| | | ProductCode = 'Test01', |
| | | Asset_Model_No__c = 'Test01', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod02 = new Product2( |
| | | Name = 'Test02', |
| | | ProductCode = 'Test02', |
| | | Asset_Model_No__c = 'Test02', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | insert new List<Product2>{ prod01, prod02 }; |
| | | |
| | | Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'Test001', Product2__c = prod01.Id); |
| | | Product2__c pro2 = new Product2__c(Name = 'Pro002', OT_CODE_Text__c = 'Test002', Product2__c = prod02.Id); |
| | | insert new List<Product2__c>{ pro1, pro2 }; |
| | | //发票信息 |
| | | Consumable_order__c invoiceorder = new Consumable_order__c(); |
| | | invoiceorder.Name = 'invoice01'; |
| | | invoiceorder.Order_type__c = '发票'; |
| | | invoiceorder.Invoice_status__c = '草案中'; |
| | | invoiceorder.Invoice_Date__c = Date.today(); |
| | | invoiceorder.RecordTypeid = System.Label.RT_ConOrder_Invoice; |
| | | //invoiceorder.Order_ForHospital__c =hosp1.Id; |
| | | //invoiceorder.Order_ForDealer__c = agency1.Id; |
| | | invoiceorder.Dealer_Info__c = acc.Id; |
| | | insert invoiceorder; |
| | | |
| | | invoiceorder = [ |
| | | SELECT id, Name |
| | | FROM Consumable_order__c |
| | | WHERE id = :invoiceorder.id |
| | | ]; |
| | | //出库单 |
| | | //Consumable_order__c testList1 = new Consumable_order__c(Name='Test1',Summons_Sale_Status__c='出货',SummonsStatus_c__c='已完成',Order_ForHospital__c =hosp1.Id,SummonsForDirction__c='直接销售给医院',Order_status__c='草案中',Order_type__c='传票',Order_ForDealer__c = agency1.Id, Dealer_info__c=myAccount1.Id,ConInvoice_Code__c = invoiceorder.id); |
| | | //Consumable_order__c testList2 = new Consumable_order__c(Name='Test2',Summons_Sale_Status__c='出货',SummonsStatus_c__c='已完成',Order_ForHospital__c =hosp1.Id,SummonsForDirction__c='直接销售给医院',Order_status__c='已提交',Order_type__c='传票',Order_ForDealer__c = agency1.Id, Dealer_info__c=myAccount1.Id,ConInvoice_Code__c = invoiceorder.id); |
| | | |
| | | Consumable_order__c testList1 = new Consumable_order__c( |
| | | Name = 'Test1', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '草案中', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id |
| | | ); |
| | | Consumable_order__c testList2 = new Consumable_order__c( |
| | | Name = 'Test2', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '已提交', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id |
| | | ); |
| | | testList1.Order_date__c = Date.today().addDays(2); |
| | | testList2.Order_date__c = Date.today().addDays(2); |
| | | testList1.Deliver_date__c = Date.today(); |
| | | testList2.Deliver_date__c = Date.today(); |
| | | insert testList1; |
| | | insert testList2; |
| | | //insert new Consumable_order__c[]{testList1,testList2}; |
| | | |
| | | Consumable_order_LinkTable__c order_LinkTable1 = new Consumable_order_LinkTable__c( |
| | | Name = 'order_LinkTable1', |
| | | Outboundorder_Code_link__c = testList1.Id, |
| | | Invoice_Code_link__c = invoiceorder.Id |
| | | ); |
| | | insert order_LinkTable1; |
| | | Consumable_order_LinkTable__c order_LinkTable2 = new Consumable_order_LinkTable__c( |
| | | Name = 'order_LinkTable2', |
| | | Outboundorder_Code_link__c = testList2.Id, |
| | | Invoice_Code_link__c = invoiceorder.Id |
| | | ); |
| | | insert order_LinkTable2; |
| | | //出库单1明细1 |
| | | Consumable_orderdetails__c orderdet1 = new Consumable_orderdetails__c(); |
| | | orderdet1.Name = 'Test1_001001'; |
| | | //orderdet1.Consumable_principal__c = testList1.Id; |
| | | orderdet1.Consumable_order__c = testList1.Id; |
| | | orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet1.Consumable_count__c = 1; |
| | | orderdet1.Consumable_product__c = pro1.Id; |
| | | |
| | | //出库单1明细2 |
| | | Consumable_orderdetails__c orderdet2 = new Consumable_orderdetails__c(); |
| | | orderdet2.Name = 'Test1_001002'; |
| | | //orderdet2.Consumable_principal__c = testList2.Id; |
| | | orderdet2.Consumable_order__c = testList1.Id; |
| | | orderdet2.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet2.Consumable_count__c = 1; |
| | | orderdet2.Consumable_product__c = pro1.Id; |
| | | //出库单2明细1 |
| | | Consumable_orderdetails__c orderdet3 = new Consumable_orderdetails__c(); |
| | | orderdet3.Name = 'Test1_002001'; |
| | | //orderdet2.Consumable_principal__c = testList2.Id; |
| | | orderdet3.Consumable_order__c = testList2.id; |
| | | orderdet3.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet3.Consumable_count__c = 1; |
| | | orderdet3.Shipment_Count__c = 1; |
| | | orderdet3.Consumable_product__c = pro2.Id; |
| | | |
| | | //出库单2明细2 |
| | | Consumable_orderdetails__c orderdet4 = new Consumable_orderdetails__c(); |
| | | orderdet4.Name = 'Test1_002002'; |
| | | //orderdet2.Consumable_principal__c = testList2.Id; |
| | | orderdet4.Consumable_order__c = testList2.id; |
| | | orderdet4.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet4.Consumable_count__c = 1; |
| | | orderdet4.Shipment_Count__c = 1; |
| | | orderdet4.Consumable_product__c = pro2.Id; |
| | | insert new List<Consumable_orderdetails__c>{ orderdet1, orderdet2, orderdet3, orderdet4 }; |
| | | //附件 |
| | | Consumable_accessories_invoice__c caic = new Consumable_accessories_invoice__c(); |
| | | caic.Attachment_ID__c = acc.Id; |
| | | caic.Accessories_type__c = '发票和明细'; |
| | | caic.Invoice_code__c = invoiceorder.id; |
| | | insert caic; |
| | | PageReference page = new PageReference('/apex/ConInvoiceView?deliveryId=' + testList1.Id + '&KeyWords=Redirect'); |
| | | page.setRedirect(true); |
| | | System.Test.setCurrentPage(page); |
| | | |
| | | System.Test.startTest(); |
| | | LexConInvoiceViewController.init(invoiceorder.id, 'Redirect', testList2.Id); |
| | | LexConInvoiceViewController conTest = new LexConInvoiceViewController(); |
| | | LexConInvoiceViewController.HospitalInfo = hosp1.id; |
| | | LexConInvoiceViewController.SecondDealer = agency1.id; |
| | | LexConInvoiceViewController.invoiceId = invoiceorder.Id; |
| | | LexConInvoiceViewController.init(invoiceorder.Id, 'Redirect', testList1.Id); |
| | | LexConInvoiceViewController.init(invoiceorder.Id, '', testList1.Id); |
| | | LexConInvoiceViewController.init('', '', ''); |
| | | LexConInvoiceViewController.init('', '', testList1.Id); |
| | | LexConInvoiceViewController.init('', 'Redirect', testList1.Id); |
| | | |
| | | String invoiceOrderRecoedschangeLwc = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoedschange); |
| | | String invoiceOrderRecoeds = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoeds); |
| | | LexConInvoiceViewController.save( |
| | | testList1, |
| | | '济宁任城儒济医院', |
| | | hosp1.id, |
| | | agency1.id, |
| | | invoiceOrderRecoeds, |
| | | testList1.Id, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | invoiceOrderRecoedschangeLwc |
| | | ); |
| | | LexConInvoiceViewController.InvoiceorderSearch( |
| | | testList1, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | '重庆', |
| | | 'ET', |
| | | hosp1.id, |
| | | agency1.id, |
| | | invoiceOrderRecoeds |
| | | ); |
| | | LexConInvoiceViewController.saveAttachment(JSON.serialize(LexConInvoiceViewController.attachmentRecoeds), invoiceorder.Id); |
| | | // LexConInvoiceViewController.saveAttachment(JSON.serialize(caic),invoiceorder.Id); |
| | | System.Test.stopTest(); |
| | | } |
| | | } |
| | | |
| | | //提交 |
| | | static testMethod void conInvoiceViewTestapproval() { |
| | | user curUser = [SELECT Id FROM User WHERE LastName = 'TestUser' LIMIT 1]; |
| | | Account acc = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testaccount002' |
| | | LIMIT 1 |
| | | ]; |
| | | Account hosp1 = [SELECT Id FROM Account WHERE name = 'Testhosp001' LIMIT 1]; |
| | | Account agency1 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp001' |
| | | LIMIT 1 |
| | | ]; |
| | | Account agency2 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp002' |
| | | LIMIT 1 |
| | | ]; |
| | | System.runAs(curUser) { |
| | | //产品信息 |
| | | Product2 prod01 = new Product2( |
| | | Name = 'Test01', |
| | | ProductCode = 'Test01', |
| | | Asset_Model_No__c = 'Test01', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false, |
| | | Packing_list_manual__c = 5 |
| | | ); |
| | | Product2 prod02 = new Product2( |
| | | Name = 'Test02', |
| | | ProductCode = 'Test02', |
| | | Asset_Model_No__c = 'Test02', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | insert new List<Product2>{ prod01, prod02 }; |
| | | |
| | | Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'Test001', Product2__c = prod01.Id); |
| | | Product2__c pro2 = new Product2__c(Name = 'Pro002', OT_CODE_Text__c = 'Test002', Product2__c = prod02.Id); |
| | | insert new List<Product2__c>{ pro1, pro2 }; |
| | | //发票信息 |
| | | Consumable_order__c invoiceorder = new Consumable_order__c(); |
| | | invoiceorder.Name = 'invoice01'; |
| | | invoiceorder.Order_type__c = '发票'; |
| | | invoiceorder.Invoice_status__c = '草案中'; |
| | | invoiceorder.Invoice_Date__c = Date.today(); |
| | | invoiceorder.RecordTypeid = System.Label.RT_ConOrder_Invoice; |
| | | //invoiceorder.Order_ForHospital__c =hosp1.Id; |
| | | //invoiceorder.Order_ForDealer__c = agency1.Id; |
| | | invoiceorder.Dealer_Info__c = acc.Id; |
| | | insert invoiceorder; |
| | | |
| | | invoiceorder = [ |
| | | SELECT id, Name |
| | | FROM Consumable_order__c |
| | | WHERE id = :invoiceorder.id |
| | | ]; |
| | | //出库单 |
| | | //Consumable_order__c testList1 = new Consumable_order__c(Name='Test1',Summons_Sale_Status__c='出货',SummonsStatus_c__c='已完成',Order_ForHospital__c =hosp1.Id,SummonsForDirction__c='直接销售给医院',Order_status__c='草案中',Order_type__c='传票',Order_ForDealer__c = agency1.Id, Dealer_info__c=myAccount1.Id,ConInvoice_Code__c = invoiceorder.id); |
| | | //Consumable_order__c testList2 = new Consumable_order__c(Name='Test2',Summons_Sale_Status__c='出货',SummonsStatus_c__c='已完成',Order_ForHospital__c =hosp1.Id,SummonsForDirction__c='直接销售给医院',Order_status__c='已提交',Order_type__c='传票',Order_ForDealer__c = agency1.Id, Dealer_info__c=myAccount1.Id,ConInvoice_Code__c = invoiceorder.id); |
| | | |
| | | Consumable_order__c testList1 = new Consumable_order__c( |
| | | Name = 'Test1', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '草案中', |
| | | Order_type__c = '传票', |
| | | RecordTypeId = System.Label.RT_ConOrder_Sale, |
| | | Dealer_info__c = acc.Id |
| | | ); |
| | | Consumable_order__c testList2 = new Consumable_order__c( |
| | | Name = 'Test2', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '已提交', |
| | | Order_type__c = '传票', |
| | | RecordTypeId = System.Label.RT_ConOrder_Sale, |
| | | Dealer_info__c = acc.Id |
| | | ); |
| | | testList1.Order_date__c = Date.today().addDays(2); |
| | | testList2.Order_date__c = Date.today().addDays(2); |
| | | testList1.Deliver_date__c = Date.today(); |
| | | testList2.Deliver_date__c = Date.today(); |
| | | insert testList1; |
| | | insert testList2; |
| | | //insert new Consumable_order__c[]{testList1,testList2}; |
| | | |
| | | Consumable_order_LinkTable__c order_LinkTable1 = new Consumable_order_LinkTable__c( |
| | | Name = 'order_LinkTable1', |
| | | Outboundorder_Code_link__c = testList1.Id, |
| | | Invoice_Code_link__c = invoiceorder.Id |
| | | ); |
| | | insert order_LinkTable1; |
| | | Consumable_order_LinkTable__c order_LinkTable2 = new Consumable_order_LinkTable__c( |
| | | Name = 'order_LinkTable2', |
| | | Outboundorder_Code_link__c = testList2.Id, |
| | | Invoice_Code_link__c = invoiceorder.Id |
| | | ); |
| | | insert order_LinkTable2; |
| | | //出库单1明细1 |
| | | Consumable_Orderdetails__c orderdet1 = new Consumable_Orderdetails__c(); |
| | | orderdet1.Name = 'Test1_001001'; |
| | | //orderdet1.Consumable_principal__c = testList1.Id; |
| | | orderdet1.Consumable_order__c = testList1.Id; |
| | | orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet1.Consumable_count__c = 1; |
| | | orderdet1.Consumable_product__c = pro1.Id; |
| | | orderdet1.Invoiced_Count__c = 10; |
| | | orderdet1.Delivery_List_RMB__c = 200; |
| | | orderdet1.Box_Piece__c = '盒'; |
| | | orderdet1.Invoice_Unit__c = '个'; |
| | | // orderdet1.Shipment_Count__c = 50; |
| | | // orderdet1.Invoiced_Procount__c = 5; |
| | | // orderdet1.RrturnPro_count__c = 5; |
| | | |
| | | Consumable_Orderdetails__c orderdet12 = new Consumable_Orderdetails__c(); |
| | | orderdet12.Name = 'Test1_001001'; |
| | | //orderdet1.Consumable_principal__c = testList1.Id; |
| | | orderdet12.Consumable_order__c = testList1.Id; |
| | | orderdet12.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet12.Consumable_count__c = 1; |
| | | orderdet12.Consumable_product__c = pro1.Id; |
| | | orderdet12.Invoiced_Count__c = 30; |
| | | orderdet12.Delivery_List_RMB__c = 200; |
| | | //出库单1明细2 |
| | | Consumable_Orderdetails__c orderdet2 = new Consumable_Orderdetails__c(); |
| | | orderdet2.Name = 'Test1_001002'; |
| | | //orderdet2.Consumable_principal__c = testList2.Id; |
| | | orderdet2.Consumable_order__c = invoiceorder.Id; |
| | | orderdet2.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet2.Consumable_count__c = 1; |
| | | orderdet2.Consumable_product__c = pro1.Id; |
| | | //出库单2明细1 |
| | | Consumable_Orderdetails__c orderdet3 = new Consumable_Orderdetails__c(); |
| | | orderdet3.Name = 'Test1_002001'; |
| | | //orderdet2.Consumable_principal__c = testList2.Id; |
| | | orderdet3.Consumable_order__c = invoiceorder.Id; |
| | | orderdet3.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet3.Consumable_count__c = 1; |
| | | orderdet3.Shipment_Count__c = 1; |
| | | orderdet3.Consumable_product__c = pro2.Id; |
| | | |
| | | //出库单2明细2 |
| | | Consumable_Orderdetails__c orderdet4 = new Consumable_Orderdetails__c(); |
| | | orderdet4.Name = 'Test1_002002'; |
| | | //orderdet2.Consumable_principal__c = testList2.Id; |
| | | orderdet4.Consumable_order__c = testList2.id; |
| | | orderdet4.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet4.Consumable_count__c = 1; |
| | | orderdet4.Shipment_Count__c = 1; |
| | | orderdet4.Consumable_product__c = pro2.Id; |
| | | insert new List<Consumable_Orderdetails__c>{ orderdet1, orderdet2, orderdet3, orderdet4, orderdet12 }; |
| | | |
| | | List<String> conorList = new List<String>(); |
| | | conorList.add(testList1.Id); |
| | | |
| | | // List<Consumable_Orderdetails__c> outOrderdet1List1 = new List<Consumable_Orderdetails__c>(); |
| | | // outOrderdet1List1.add(orderdet1); |
| | | |
| | | List<Consumable_Orderdetails__c> outOrderdet1List = [ |
| | | SELECT |
| | | Id, |
| | | Name, |
| | | Consumable_order__c, |
| | | Consumable_order__r.Name, |
| | | Asset_Model_No__c, |
| | | Consumable_Product__r.Asset_Model_No__c, |
| | | Shipment_Count__c, |
| | | RrturnPro_count__c, |
| | | Delivery_List_RMB__c, |
| | | InvoicedProCost_RMB__c, |
| | | Invoiced_Procount__c, |
| | | Invoiced_Count__c, |
| | | Invoice_Unitprice__c, |
| | | InvoiceProNot_count__c, |
| | | Invoice_Cost_RMB__c, |
| | | Invoice_No__c, |
| | | Box_Piece__c, |
| | | Invoice_Unit__c, |
| | | ProductPacking_list_manual__c |
| | | FROM Consumable_Orderdetails__c |
| | | WHERE Id = :orderdet1.Id |
| | | ]; |
| | | |
| | | System.debug('outOrderdet1List' + outOrderdet1List); |
| | | List<Consumable_Orderdetails__c> outOrderdet1List1 = [ |
| | | SELECT |
| | | Id, |
| | | Name, |
| | | Consumable_order__c, |
| | | Consumable_order__r.Name, |
| | | Asset_Model_No__c, |
| | | Consumable_Product__r.Asset_Model_No__c, |
| | | Shipment_Count__c, |
| | | RrturnPro_count__c, |
| | | Delivery_List_RMB__c, |
| | | InvoicedProCost_RMB__c, |
| | | Invoiced_Procount__c, |
| | | Invoiced_Count__c, |
| | | Invoice_Unitprice__c, |
| | | InvoiceProNot_count__c, |
| | | Invoice_Cost_RMB__c, |
| | | Invoice_No__c, |
| | | Box_Piece__c, |
| | | Invoice_Unit__c, |
| | | ProductPacking_list_manual__c |
| | | FROM Consumable_Orderdetails__c |
| | | WHERE Id = :orderdet12.Id |
| | | ]; |
| | | |
| | | Map<String, Consumable_Orderdetails__c> tempCocMap = new Map<String, Consumable_Orderdetails__c>(); |
| | | Map<String, Consumable_Orderdetails__c> tempCocMap1 = new Map<String, Consumable_Orderdetails__c>(); |
| | | for (Consumable_Orderdetails__c cocTemp : outOrderdet1List) { |
| | | if (cocTemp.Consumable_order__c + cocTemp.Asset_Model_No__c != null) { |
| | | tempCocMap.put(cocTemp.Consumable_order__c + cocTemp.Asset_Model_No__c, cocTemp); |
| | | } |
| | | } |
| | | for (Consumable_Orderdetails__c cocTemp : outOrderdet1List1) { |
| | | if (cocTemp.Consumable_order__c + cocTemp.Asset_Model_No__c != null) { |
| | | tempCocMap1.put(cocTemp.Consumable_order__c + cocTemp.Asset_Model_No__c, cocTemp); |
| | | } |
| | | } |
| | | |
| | | System.debug('tempCocMap===>' + tempCocMap); |
| | | //附件 |
| | | Consumable_accessories_invoice__c caic = new Consumable_accessories_invoice__c(); |
| | | caic.Attachment_ID__c = acc.Id; |
| | | caic.Accessories_type__c = '发票和明细'; |
| | | caic.Invoice_code__c = invoiceorder.id; |
| | | insert caic; |
| | | |
| | | System.Test.startTest(); |
| | | LexConInvoiceViewController.init(invoiceorder.id, 'Redirect', testList2.Id); |
| | | LexConInvoiceViewController conTest = new LexConInvoiceViewController(); |
| | | LexConInvoiceViewController.HospitalInfo = hosp1.id; |
| | | LexConInvoiceViewController.SecondDealer = agency1.id; |
| | | LexConInvoiceViewController.invoiceId = invoiceorder.Id; |
| | | LexConInvoiceViewController.init(invoiceorder.Id, 'Redirect', testList1.Id); |
| | | LexConInvoiceViewController.init(invoiceorder.Id, '', testList1.Id); |
| | | LexConInvoiceViewController.init('', '', ''); |
| | | LexConInvoiceViewController.init('', '', testList1.Id); |
| | | LexConInvoiceViewController.init('', 'Redirect', testList1.Id); |
| | | |
| | | String invoiceOrderRecoedschangeLwc = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoedschange); |
| | | String invoiceOrderRecoeds = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoeds); |
| | | LexConInvoiceViewController.save( |
| | | testList1, |
| | | '济宁任城儒济医院', |
| | | hosp1.id, |
| | | agency1.id, |
| | | invoiceOrderRecoeds, |
| | | testList1.Id, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | invoiceOrderRecoedschangeLwc |
| | | ); |
| | | LexConInvoiceViewController.InvoiceorderSearch( |
| | | testList1, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | '重庆', |
| | | 'ET', |
| | | hosp1.id, |
| | | agency1.id, |
| | | invoiceOrderRecoeds |
| | | ); |
| | | LexConInvoiceViewController.approval(conorList, tempCocMap, invoiceorder.id); |
| | | LexConInvoiceViewController.approval(conorList, tempCocMap1, invoiceorder.id); |
| | | System.Test.stopTest(); |
| | | } |
| | | } |
| | | |
| | | //提交发票 |
| | | static testMethod void conInvoice_approval() { |
| | | user curUser = [SELECT Id FROM User WHERE LastName = 'TestUser' LIMIT 1]; |
| | | Account acc = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testaccount002' |
| | | LIMIT 1 |
| | | ]; |
| | | Account agency1 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp001' |
| | | LIMIT 1 |
| | | ]; |
| | | Account agency2 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp002' |
| | | LIMIT 1 |
| | | ]; |
| | | Account hosp1 = [SELECT Id FROM Account WHERE name = 'Testhosp001' LIMIT 1]; |
| | | Oly_TriggerHandler.bypass('ConsumableAssetHander'); |
| | | Oly_TriggerHandler.bypass('Oly_TriggerHandler'); |
| | | System.runAs(curUser) { |
| | | //产品信息 |
| | | Product2 prod01 = new Product2( |
| | | Name = 'Test01', |
| | | ProductCode = 'Test01', |
| | | Asset_Model_No__c = 'Test01', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod02 = new Product2( |
| | | Name = 'Test02', |
| | | ProductCode = 'Test02', |
| | | Asset_Model_No__c = 'Test02', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | insert new List<Product2>{ prod01, prod02 }; |
| | | |
| | | Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'Test001', Product2__c = prod01.Id); |
| | | Product2__c pro2 = new Product2__c(Name = 'Pro002', OT_CODE_Text__c = 'Test002', Product2__c = prod02.Id); |
| | | insert new List<Product2__c>{ pro1, pro2 }; |
| | | |
| | | //出库单1 |
| | | Consumable_order__c testList1 = new Consumable_order__c( |
| | | Name = 'Test1', |
| | | recordtypeid = System.Label.RT_ConOrder_Sale, |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '草案中', |
| | | Order_type__c = '传票', |
| | | // Order_ForHospital__c=hosp1.Id, |
| | | Dealer_Info__c = acc.Id |
| | | ); |
| | | TestList1.Order_date__c = Date.today().addDays(2); |
| | | TestList1.Deliver_date__c = Date.today(); |
| | | insert testList1; |
| | | |
| | | //出库单1明细1 |
| | | Consumable_orderdetails__c orderdet1 = new Consumable_orderdetails__c(); |
| | | orderdet1.Name = 'Test1_001'; |
| | | orderdet1.Consumable_order__c = testList1.Id; |
| | | orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail1_Sale; |
| | | orderdet1.Shipment_Count__c = 1; |
| | | orderdet1.Delivery_List_RMB__c = 1; |
| | | orderdet1.Consumable_product__c = pro1.Id; |
| | | orderdet1.Shipment_Count__c = 50; |
| | | orderdet1.Invoiced_Procount__c = 5; |
| | | orderdet1.RrturnPro_count__c = 5; |
| | | insert orderdet1; |
| | | List<String> conorList = new List<String>(); |
| | | conorList.add(testList1.Id); |
| | | //出库单1明细2 |
| | | Consumable_order_details2__c orderdet2 = new Consumable_order_details2__c(); |
| | | orderdet2.Name = 'Test1_001001'; |
| | | orderdet2.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; |
| | | orderdet2.Consumable_Sale_order__c = testList1.Id; |
| | | orderdet2.Deliver_date__c = Date.today(); |
| | | orderdet2.Arrive_date__c = Date.today(); |
| | | orderdet2.Used_date__c = Date.today(); |
| | | orderdet2.Consumable_product__c = pro1.Id; |
| | | insert orderdet2; |
| | | |
| | | //发票信息 |
| | | Consumable_order__c invoiceorder = new Consumable_order__c(); |
| | | invoiceorder.Name = 'invoice01'; |
| | | invoiceorder.Order_type__c = '发票'; |
| | | invoiceorder.Invoice_status__c = '草案中'; |
| | | invoiceorder.Invoice_Date__c = Date.today(); |
| | | invoiceorder.RecordTypeid = System.Label.RT_ConOrder_Invoice; |
| | | // invoiceorder.Order_ForHospital__c =hosp1.Id; |
| | | invoiceorder.Dealer_Info__c = acc.Id; |
| | | insert invoiceorder; |
| | | |
| | | //发票明细1 |
| | | Consumable_orderdetails__c invoicedet1 = new Consumable_orderdetails__c(); |
| | | invoicedet1.Name = 'invoice01_01'; |
| | | invoicedet1.Consumable_order__c = invoiceorder.Id; |
| | | invoicedet1.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | invoicedet1.Invoiced_Count__c = 1; |
| | | invoicedet1.Invoice_Unitprice__c = 1; |
| | | invoicedet1.Consumable_product__c = pro1.Id; |
| | | invoicedet1.Invoicedet1_OD_link__c = testList1.Id; |
| | | insert invoicedet1; |
| | | |
| | | Consumable_order_LinkTable__c order_LinkTable1 = new Consumable_order_LinkTable__c( |
| | | Name = 'order_LinkTable1', |
| | | Outboundorder_Code_link__c = testList1.Id, |
| | | Invoice_Code_link__c = invoiceorder.Id |
| | | ); |
| | | insert order_LinkTable1; |
| | | List<Consumable_Orderdetails__c> outOrderdet1List = [ |
| | | SELECT |
| | | Id, |
| | | Name, |
| | | Consumable_order__c, |
| | | Consumable_order__r.Name, |
| | | Asset_Model_No__c, |
| | | Consumable_Product__r.Asset_Model_No__c, |
| | | Shipment_Count__c, |
| | | RrturnPro_count__c, |
| | | Delivery_List_RMB__c, |
| | | InvoicedProCost_RMB__c, |
| | | Invoiced_Procount__c, |
| | | Invoiced_Count__c, |
| | | Invoice_Unitprice__c, |
| | | InvoiceProNot_count__c, |
| | | Invoice_Cost_RMB__c, |
| | | Invoice_No__c, |
| | | Box_Piece__c, |
| | | Invoice_Unit__c, |
| | | ProductPacking_list_manual__c |
| | | FROM Consumable_Orderdetails__c |
| | | WHERE Id = :orderdet1.Id |
| | | ]; |
| | | Map<String, Consumable_Orderdetails__c> tempCocMap1 = new Map<String, Consumable_Orderdetails__c>(); |
| | | for (Consumable_Orderdetails__c cocTemp : outOrderdet1List) { |
| | | if (cocTemp.Consumable_order__c + cocTemp.Asset_Model_No__c != null) { |
| | | tempCocMap1.put(cocTemp.Consumable_order__c + cocTemp.Asset_Model_No__c, cocTemp); |
| | | } |
| | | } |
| | | |
| | | System.Test.startTest(); |
| | | |
| | | LexConInvoiceViewController.init(invoiceorder.id, 'Redirect', orderdet1.Id); |
| | | LexConInvoiceViewController conTest = new LexConInvoiceViewController(); |
| | | LexConInvoiceViewController.HospitalInfo = hosp1.id; |
| | | LexConInvoiceViewController.SecondDealer = acc.id; |
| | | LexConInvoiceViewController.invoiceId = invoiceorder.Id; |
| | | LexConInvoiceViewController.init(invoiceorder.Id, 'Redirect', testList1.Id); |
| | | LexConInvoiceViewController.init(invoiceorder.Id, '', testList1.Id); |
| | | LexConInvoiceViewController.init('', '', ''); |
| | | LexConInvoiceViewController.init('', '', testList1.Id); |
| | | LexConInvoiceViewController.init('', 'Redirect', testList1.Id); |
| | | |
| | | String invoiceOrderRecoedschangeLwc = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoedschange); |
| | | String invoiceOrderRecoeds = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoeds); |
| | | LexConInvoiceViewController.save( |
| | | testList1, |
| | | '济宁任城儒济医院', |
| | | hosp1.id, |
| | | acc.id, |
| | | invoiceOrderRecoeds, |
| | | testList1.Id, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | invoiceOrderRecoedschangeLwc |
| | | ); |
| | | LexConInvoiceViewController.InvoiceorderSearch( |
| | | testList1, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | '重庆', |
| | | 'ET', |
| | | hosp1.id, |
| | | acc.id, |
| | | invoiceOrderRecoeds |
| | | ); |
| | | LexConInvoiceViewController.approval(conorList, tempCocMap1, invoiceorder.id); |
| | | LexConInvoiceViewController.approval(conorList, tempCocMap1, '2345678'); |
| | | |
| | | // conTest.init(); |
| | | |
| | | // System.assertEquals(1, conTest.invoiceOrderRecoeds.size()); |
| | | // conTest.approval(); |
| | | System.Test.stopTest(); |
| | | } |
| | | } |
| | | |
| | | //CHAN-BSS5SQ update by rentongxiao 2020-08-26 start |
| | | //新建发票 以及编辑发票 invoiceId<>null |
| | | static testMethod void rentestreopen() { |
| | | user curUser = [SELECT Id FROM User WHERE LastName = 'TestUser' LIMIT 1]; |
| | | Account acc = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testaccount002' |
| | | LIMIT 1 |
| | | ]; |
| | | Account hosp1 = [SELECT Id FROM Account WHERE name = 'Testhosp001' LIMIT 1]; |
| | | Account agency1 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp001' |
| | | LIMIT 1 |
| | | ]; |
| | | Account agency2 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp002' |
| | | LIMIT 1 |
| | | ]; |
| | | System.runAs(curUser) { |
| | | //产品信息 |
| | | Product2 prod01 = new Product2( |
| | | Name = 'Test01', |
| | | ProductCode = 'Test01', |
| | | Asset_Model_No__c = 'Test01', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod02 = new Product2( |
| | | Name = 'Test02', |
| | | ProductCode = 'Test02', |
| | | Asset_Model_No__c = 'Test02', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | insert new List<Product2>{ prod01, prod02 }; |
| | | |
| | | Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'Test001', Product2__c = prod01.Id); |
| | | Product2__c pro2 = new Product2__c(Name = 'Pro002', OT_CODE_Text__c = 'Test002', Product2__c = prod02.Id); |
| | | insert new List<Product2__c>{ pro1, pro2 }; |
| | | //发票信息 |
| | | Consumable_order__c invoiceorder = new Consumable_order__c(); |
| | | invoiceorder.Name = 'invoice01'; |
| | | invoiceorder.Order_type__c = '发票'; |
| | | invoiceorder.Invoice_status__c = '提交'; |
| | | invoiceorder.Invoice_Date__c = Date.today(); |
| | | invoiceorder.RecordTypeid = System.Label.RT_ConOrder_Invoice; |
| | | //invoiceorder.Order_ForHospital__c =hosp1.Id; |
| | | //invoiceorder.Order_ForDealer__c = agency1.Id; |
| | | invoiceorder.Dealer_Info__c = acc.Id; |
| | | //invoiceorder.Order_ProType__c = 'ET'; |
| | | insert invoiceorder; |
| | | |
| | | invoiceorder = [ |
| | | SELECT id, Name |
| | | FROM Consumable_order__c |
| | | WHERE id = :invoiceorder.id |
| | | ]; |
| | | //出库单 |
| | | |
| | | Consumable_order__c testList1 = new Consumable_order__c( |
| | | Name = 'Test1', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '草案中', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id |
| | | ); |
| | | |
| | | Consumable_order__c testList2 = new Consumable_order__c( |
| | | Name = 'Test2', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '已提交', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id |
| | | ); |
| | | |
| | | Consumable_order__c testList3 = new Consumable_order__c( |
| | | Name = 'Test2', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '已提交', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id |
| | | ); |
| | | TestList1.Order_date__c = Date.today().addDays(2); |
| | | TestList2.Order_date__c = Date.today().addDays(2); |
| | | TestList3.Order_date__c = Date.today().addDays(2); |
| | | TestList1.Deliver_date__c = Date.today(); |
| | | TestList2.Deliver_date__c = Date.today(); |
| | | TestList3.Deliver_date__c = Date.today(); |
| | | insert testList1; |
| | | insert testList2; |
| | | insert testList3; |
| | | System.Test.startTest(); |
| | | Consumable_order_LinkTable__c order_LinkTable1 = new Consumable_order_LinkTable__c( |
| | | Name = 'order_LinkTable1', |
| | | Outboundorder_Code_link__c = testList1.Id, |
| | | Invoice_Code_link__c = invoiceorder.Id |
| | | ); |
| | | Consumable_order_LinkTable__c order_LinkTable2 = new Consumable_order_LinkTable__c( |
| | | Name = 'order_LinkTable1', |
| | | Outboundorder_Code_link__c = testList2.Id, |
| | | Invoice_Code_link__c = invoiceorder.Id |
| | | ); |
| | | Consumable_order_LinkTable__c order_LinkTable3 = new Consumable_order_LinkTable__c( |
| | | Name = 'order_LinkTable1', |
| | | Outboundorder_Code_link__c = testList3.Id, |
| | | Invoice_Code_link__c = invoiceorder.Id |
| | | ); |
| | | insert order_LinkTable1; |
| | | insert order_LinkTable2; |
| | | insert order_LinkTable3; |
| | | |
| | | //出库单1明细1 |
| | | Consumable_orderdetails__c orderdet1 = new Consumable_orderdetails__c(); |
| | | orderdet1.Name = 'Test1_001001'; |
| | | //orderdet1.Consumable_principal__c = testList1.Id; |
| | | orderdet1.Consumable_order__c = testList1.Id; |
| | | orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet1.Consumable_count__c = 1; |
| | | orderdet1.Consumable_product__c = pro1.Id; |
| | | |
| | | //出库单1明细2 |
| | | Consumable_orderdetails__c orderdet2 = new Consumable_orderdetails__c(); |
| | | orderdet2.Name = 'Test1_001002'; |
| | | //orderdet2.Consumable_principal__c = testList2.Id; |
| | | orderdet2.Consumable_order__c = testList1.Id; |
| | | orderdet2.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet2.Consumable_count__c = 1; |
| | | orderdet2.Consumable_product__c = pro1.Id; |
| | | insert new List<Consumable_orderdetails__c>{ orderdet1, orderdet2 }; |
| | | |
| | | //出库单2明细1 |
| | | Consumable_orderdetails__c orderdet3 = new Consumable_orderdetails__c(); |
| | | orderdet3.Name = 'Test3_001002'; |
| | | //orderdet3.Consumable_principal__c = testList2.Id; |
| | | orderdet3.Consumable_order__c = testList2.Id; |
| | | orderdet3.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet3.Consumable_count__c = 1; |
| | | orderdet3.Consumable_product__c = pro1.Id; |
| | | insert orderdet3; |
| | | |
| | | //出库单3明细1 |
| | | Consumable_orderdetails__c orderdet4 = new Consumable_orderdetails__c(); |
| | | orderdet4.Name = 'Test3_001002'; |
| | | //orderdet4.Consumable_principal__c = testList2.Id; |
| | | orderdet4.Consumable_order__c = testList3.Id; |
| | | orderdet4.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet4.Consumable_count__c = 1; |
| | | orderdet4.Consumable_product__c = pro1.Id; |
| | | insert orderdet4; |
| | | |
| | | PageReference page = new PageReference( |
| | | '/apex/ConInvoiceView?invoiceId=' + invoiceorder.Id + '&reopen=isreopen&KeyWords=Redirect' |
| | | ); |
| | | page.setRedirect(true); |
| | | System.Test.setCurrentPage(page); |
| | | |
| | | LexConInvoiceViewController.init(invoiceorder.id, 'Redirect', testList2.Id); |
| | | LexConInvoiceViewController conTest = new LexConInvoiceViewController(); |
| | | LexConInvoiceViewController.HospitalInfo = hosp1.id; |
| | | LexConInvoiceViewController.SecondDealer = agency1.id; |
| | | LexConInvoiceViewController.invoiceId = invoiceorder.Id; |
| | | LexConInvoiceViewController.init(invoiceorder.Id, 'Redirect', testList1.Id); |
| | | LexConInvoiceViewController.init(invoiceorder.Id, '', testList1.Id); |
| | | LexConInvoiceViewController.init('', '', ''); |
| | | LexConInvoiceViewController.init('', '', testList1.Id); |
| | | LexConInvoiceViewController.init('', 'Redirect', testList1.Id); |
| | | |
| | | String invoiceOrderRecoedschangeLwc = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoedschange); |
| | | String invoiceOrderRecoeds = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoeds); |
| | | LexConInvoiceViewController.save( |
| | | testList1, |
| | | '济宁任城儒济医院', |
| | | hosp1.id, |
| | | agency1.id, |
| | | invoiceOrderRecoeds, |
| | | testList1.Id, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | invoiceOrderRecoedschangeLwc |
| | | ); |
| | | LexConInvoiceViewController.InvoiceorderSearch( |
| | | testList1, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | '重庆', |
| | | 'ET', |
| | | hosp1.id, |
| | | agency1.id, |
| | | invoiceOrderRecoeds |
| | | ); |
| | | |
| | | // ConInvoiceViewController conTest = new ConInvoiceViewController(); |
| | | |
| | | // conTest.init(); |
| | | |
| | | // conTest.invoiceId =invoiceorder.Id; |
| | | // conTest.coc.SummonsForDirction__c = '直接销售给医院'; |
| | | // conTest.HospitalInfo = hosp1.id; |
| | | // //conTest.SecondDealer = agency1.id; |
| | | // //conTest.coc.Order_ForDealer__c = agency1.id; |
| | | // conTest.coc.Name = 'invoice002'; |
| | | // conTest.coc.Order_ForCustomerText__c = 'AA'; |
| | | // conTest.coc.Order_ForHospital__c = hosp1.id; |
| | | // conTest.coc.Invoice_Date__c = Date.today(); |
| | | |
| | | // //conTest.SortLimited(); |
| | | // //conTest.InvoiceorderSearch(); |
| | | // System.assertEquals(3, conTest.invoiceOrderRecoeds.size()); |
| | | // conTest.invoiceOrderRecoeds[0].esd.Order_ForCustomerText__c = 'AA'; |
| | | // conTest.invoiceOrderRecoeds[0].esd.Order_ForHospital__c =hosp1.Id; |
| | | // conTest.invoiceOrderRecoeds[0].esd.Order_ForDealer__c = agency1.id; |
| | | |
| | | // conTest.invoiceOrderRecoeds[1].esd.Order_ForCustomerText__c = 'AA'; |
| | | // conTest.invoiceOrderRecoeds[1].esd.Order_ForHospital__c =hosp1.Id; |
| | | // conTest.invoiceOrderRecoeds[1].esd.Order_ForDealer__c = agency1.id; |
| | | |
| | | // conTest.invoiceOrderRecoeds[2].esd.Order_ForCustomerText__c = 'AA'; |
| | | // conTest.invoiceOrderRecoeds[2].esd.Order_ForHospital__c =hosp1.Id; |
| | | // conTest.invoiceOrderRecoeds[2].esd.Order_ForDealer__c = agency1.id; |
| | | |
| | | // conTest.invoiceOrderRecoeds[0].check= true; |
| | | // conTest.invoiceOrderRecoeds[1].check= false; |
| | | // conTest.invoiceOrderRecoeds[2].check= true; |
| | | |
| | | // conTest.save(); |
| | | // //System.assertEquals('123',conTest.testTmp); |
| | | // conTest.nvoiceorderremind(); |
| | | // conTest.saveAttachment(); |
| | | |
| | | // conTest.getdone(); |
| | | // conTest.getExistOutbound(); |
| | | // conTest.getInvoiceName(); |
| | | System.Test.stopTest(); |
| | | } |
| | | } |
| | | |
| | | //CHAN-BSS5SQ update by rentongxiao 2020-08-26 end |
| | | //CHAN-BSS5SQ update by rentongxiao 2020-08-26 start |
| | | //新建发票 以及编辑发票 invoiceId<>null |
| | | static testMethod void rentestreopen001() { |
| | | user curUser = [SELECT Id FROM User WHERE LastName = 'TestUser' LIMIT 1]; |
| | | Account acc = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testaccount002' |
| | | LIMIT 1 |
| | | ]; |
| | | Account hosp1 = [SELECT Id FROM Account WHERE name = 'Testhosp001' LIMIT 1]; |
| | | Account agency1 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp001' |
| | | LIMIT 1 |
| | | ]; |
| | | Account agency2 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp002' |
| | | LIMIT 1 |
| | | ]; |
| | | System.runAs(curUser) { |
| | | //产品信息 |
| | | Product2 prod01 = new Product2( |
| | | Name = 'Test01', |
| | | ProductCode = 'Test01', |
| | | Asset_Model_No__c = 'Test01', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod02 = new Product2( |
| | | Name = 'Test02', |
| | | ProductCode = 'Test02', |
| | | Asset_Model_No__c = 'Test02', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | insert new List<Product2>{ prod01, prod02 }; |
| | | |
| | | Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'Test001', Product2__c = prod01.Id); |
| | | Product2__c pro2 = new Product2__c(Name = 'Pro002', OT_CODE_Text__c = 'Test002', Product2__c = prod02.Id); |
| | | insert new List<Product2__c>{ pro1, pro2 }; |
| | | //发票信息 |
| | | Consumable_order__c invoiceorder = new Consumable_order__c(); |
| | | invoiceorder.Name = 'invoice01'; |
| | | invoiceorder.Order_type__c = '发票'; |
| | | invoiceorder.Invoice_status__c = '提交'; |
| | | invoiceorder.Invoice_Date__c = Date.today(); |
| | | invoiceorder.RecordTypeid = System.Label.RT_ConOrder_Invoice; |
| | | //invoiceorder.Order_ForHospital__c =hosp1.Id; |
| | | //invoiceorder.Order_ForDealer__c = agency1.Id; |
| | | invoiceorder.Dealer_Info__c = acc.Id; |
| | | //invoiceorder.Order_ProType__c = 'ET'; |
| | | insert invoiceorder; |
| | | |
| | | invoiceorder = [ |
| | | SELECT id, Name |
| | | FROM Consumable_order__c |
| | | WHERE id = :invoiceorder.id |
| | | ]; |
| | | //出库单 |
| | | |
| | | Consumable_order__c testList1 = new Consumable_order__c( |
| | | Name = 'Test1', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '草案中', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id |
| | | ); |
| | | |
| | | Consumable_order__c testList2 = new Consumable_order__c( |
| | | Name = 'Test2', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '已提交', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id |
| | | ); |
| | | |
| | | Consumable_order__c testList3 = new Consumable_order__c( |
| | | Name = 'Test2', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '已提交', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id |
| | | ); |
| | | TestList1.Order_date__c = Date.today().addDays(2); |
| | | TestList2.Order_date__c = Date.today().addDays(2); |
| | | TestList3.Order_date__c = Date.today().addDays(2); |
| | | TestList1.Deliver_date__c = Date.today(); |
| | | TestList2.Deliver_date__c = Date.today(); |
| | | TestList3.Deliver_date__c = Date.today(); |
| | | insert testList1; |
| | | insert testList2; |
| | | insert testList3; |
| | | System.Test.startTest(); |
| | | Consumable_order_LinkTable__c order_LinkTable1 = new Consumable_order_LinkTable__c( |
| | | Name = 'order_LinkTable1', |
| | | Outboundorder_Code_link__c = testList1.Id, |
| | | Invoice_Code_link__c = invoiceorder.Id |
| | | ); |
| | | Consumable_order_LinkTable__c order_LinkTable2 = new Consumable_order_LinkTable__c( |
| | | Name = 'order_LinkTable1', |
| | | Outboundorder_Code_link__c = testList2.Id, |
| | | Invoice_Code_link__c = invoiceorder.Id |
| | | ); |
| | | Consumable_order_LinkTable__c order_LinkTable3 = new Consumable_order_LinkTable__c( |
| | | Name = 'order_LinkTable1', |
| | | Outboundorder_Code_link__c = testList3.Id, |
| | | Invoice_Code_link__c = invoiceorder.Id |
| | | ); |
| | | insert order_LinkTable1; |
| | | insert order_LinkTable2; |
| | | insert order_LinkTable3; |
| | | |
| | | //出库单1明细1 |
| | | Consumable_orderdetails__c orderdet1 = new Consumable_orderdetails__c(); |
| | | orderdet1.Name = 'Test1_001001'; |
| | | //orderdet1.Consumable_principal__c = testList1.Id; |
| | | orderdet1.Consumable_order__c = testList1.Id; |
| | | orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet1.Consumable_count__c = 1; |
| | | orderdet1.Consumable_product__c = pro1.Id; |
| | | |
| | | //出库单1明细2 |
| | | Consumable_orderdetails__c orderdet2 = new Consumable_orderdetails__c(); |
| | | orderdet2.Name = 'Test1_001002'; |
| | | //orderdet2.Consumable_principal__c = testList2.Id; |
| | | orderdet2.Consumable_order__c = testList1.Id; |
| | | orderdet2.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet2.Consumable_count__c = 1; |
| | | orderdet2.Consumable_product__c = pro1.Id; |
| | | insert new List<Consumable_orderdetails__c>{ orderdet1, orderdet2 }; |
| | | |
| | | //出库单2明细1 |
| | | Consumable_orderdetails__c orderdet3 = new Consumable_orderdetails__c(); |
| | | orderdet3.Name = 'Test3_001002'; |
| | | //orderdet3.Consumable_principal__c = testList2.Id; |
| | | orderdet3.Consumable_order__c = testList2.Id; |
| | | orderdet3.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet3.Consumable_count__c = 1; |
| | | orderdet3.Consumable_product__c = pro1.Id; |
| | | insert orderdet3; |
| | | |
| | | //出库单3明细1 |
| | | Consumable_orderdetails__c orderdet4 = new Consumable_orderdetails__c(); |
| | | orderdet4.Name = 'Test3_001002'; |
| | | //orderdet4.Consumable_principal__c = testList2.Id; |
| | | orderdet4.Consumable_order__c = testList3.Id; |
| | | orderdet4.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet4.Consumable_count__c = 1; |
| | | orderdet4.Consumable_product__c = pro1.Id; |
| | | insert orderdet4; |
| | | |
| | | PageReference page = new PageReference( |
| | | '/apex/ConInvoiceView?invoiceId=' + invoiceorder.Id + '&reopen=isreopen&KeyWords=Redirect' |
| | | ); |
| | | page.setRedirect(true); |
| | | System.Test.setCurrentPage(page); |
| | | |
| | | LexConInvoiceViewController.init(invoiceorder.id, 'Redirect', testList2.Id); |
| | | LexConInvoiceViewController conTest = new LexConInvoiceViewController(); |
| | | LexConInvoiceViewController.HospitalInfo = hosp1.id; |
| | | LexConInvoiceViewController.SecondDealer = agency1.id; |
| | | LexConInvoiceViewController.invoiceId = invoiceorder.Id; |
| | | LexConInvoiceViewController.init(invoiceorder.Id, 'Redirect', testList1.Id); |
| | | LexConInvoiceViewController.init(invoiceorder.Id, '', testList1.Id); |
| | | LexConInvoiceViewController.init('', '', ''); |
| | | LexConInvoiceViewController.init('', '', testList1.Id); |
| | | LexConInvoiceViewController.init('', 'Redirect', testList1.Id); |
| | | |
| | | String invoiceOrderRecoedschangeLwc = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoedschange); |
| | | String invoiceOrderRecoeds = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoeds); |
| | | LexConInvoiceViewController.save( |
| | | testList1, |
| | | '济宁任城儒济医院', |
| | | hosp1.id, |
| | | agency1.id, |
| | | invoiceOrderRecoeds, |
| | | testList1.Id, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | invoiceOrderRecoedschangeLwc |
| | | ); |
| | | LexConInvoiceViewController.InvoiceorderSearch( |
| | | testList1, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | '重庆', |
| | | 'ET', |
| | | hosp1.id, |
| | | agency1.id, |
| | | invoiceOrderRecoeds |
| | | ); |
| | | System.Test.stopTest(); |
| | | } |
| | | } |
| | | //新建发票 以及编辑发票 invoiceId<>null |
| | | static testMethod void allinit() { |
| | | user curUser = [SELECT Id FROM User WHERE LastName = 'TestUser' LIMIT 1]; |
| | | Account acc = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testaccount002' |
| | | LIMIT 1 |
| | | ]; |
| | | Account hosp1 = [SELECT Id FROM Account WHERE name = 'Testhosp001' LIMIT 1]; |
| | | Account agency1 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp001' |
| | | LIMIT 1 |
| | | ]; |
| | | Account agency2 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp002' |
| | | LIMIT 1 |
| | | ]; |
| | | System.runAs(curUser) { |
| | | //准备数据 |
| | | // Consumable_order__c Id = deliveryId //出库单 |
| | | // Consumable_order__c |
| | | // WHERE Id = :invoiceId AND Order_type__c = '发票' |
| | | //产品信息 |
| | | Product2 prod01 = new Product2( |
| | | Name = 'Test01', |
| | | ProductCode = 'Test01', |
| | | Asset_Model_No__c = 'Test01', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod02 = new Product2( |
| | | Name = 'Test02', |
| | | ProductCode = 'Test02', |
| | | Asset_Model_No__c = 'Test02', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | insert new List<Product2>{ prod01, prod02 }; |
| | | |
| | | Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'Test001', Product2__c = prod01.Id); |
| | | Product2__c pro2 = new Product2__c(Name = 'Pro002', OT_CODE_Text__c = 'Test002', Product2__c = prod02.Id); |
| | | insert new List<Product2__c>{ pro1, pro2 }; |
| | | //发票信息 |
| | | Consumable_order__c invoiceorder = new Consumable_order__c(); |
| | | invoiceorder.Name = 'invoice01'; |
| | | invoiceorder.Order_type__c = '发票'; |
| | | invoiceorder.Invoice_status__c = '草案中'; |
| | | invoiceorder.Invoice_Date__c = Date.today(); |
| | | invoiceorder.RecordTypeid = System.Label.RT_ConOrder_Invoice; |
| | | // invoiceorder.Order_ForHospital__c =hosp1.Id; |
| | | // invoiceorder.Order_ForDealer__c = agency1.Id; |
| | | invoiceorder.Dealer_Info__c = acc.Id; |
| | | //invoiceorder.Order_ProType__c = 'ET'; |
| | | insert invoiceorder; |
| | | |
| | | invoiceorder = [ |
| | | SELECT id, Name |
| | | FROM Consumable_order__c |
| | | WHERE id = :invoiceorder.id |
| | | ]; |
| | | //出库单 |
| | | |
| | | Consumable_order__c testList1 = new Consumable_order__c( |
| | | Name = 'Test1', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '草案中', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id |
| | | ); |
| | | |
| | | Consumable_order__c testList2 = new Consumable_order__c( |
| | | Name = 'Test2', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '已提交', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id, |
| | | Order_ForCustomerText__c = '' |
| | | ); |
| | | TestList1.Order_date__c = Date.today().addDays(2); |
| | | TestList2.Order_date__c = Date.today().addDays(2); |
| | | TestList1.Deliver_date__c = Date.today(); |
| | | TestList2.Deliver_date__c = Date.today(); |
| | | |
| | | Consumable_order__c testList3 = new Consumable_order__c(); |
| | | testList3.Summons_Sale_Status__c = '出货'; |
| | | testList3.SummonsStatus_c__c = '已完成'; |
| | | testList3.SummonsForDirction__c = '直接销售给医院'; |
| | | testList3.Order_status__c = '草案中'; |
| | | testList3.Order_type__c = '传票'; |
| | | testList3.Dealer_info__c = acc.Id; |
| | | testList3.Order_ForCustomerText__c = '消化科'; |
| | | |
| | | insert testList1; |
| | | insert testList2; |
| | | insert testList3; |
| | | |
| | | Consumable_order_LinkTable__c order_LinkTable1 = new Consumable_order_LinkTable__c( |
| | | Name = 'order_LinkTable1', |
| | | Outboundorder_Code_link__c = testList1.Id, |
| | | Invoice_Code_link__c = invoiceorder.Id |
| | | ); |
| | | insert order_LinkTable1; |
| | | |
| | | //出库单1明细1 |
| | | Consumable_orderdetails__c orderdet1 = new Consumable_orderdetails__c(); |
| | | orderdet1.Name = 'Test1_001001'; |
| | | //orderdet1.Consumable_principal__c = testList1.Id; |
| | | orderdet1.Consumable_order__c = testList1.Id; |
| | | orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet1.Consumable_count__c = 1; |
| | | orderdet1.Consumable_product__c = pro1.Id; |
| | | |
| | | //出库单1明细2 |
| | | Consumable_orderdetails__c orderdet2 = new Consumable_orderdetails__c(); |
| | | orderdet2.Name = 'Test1_001002'; |
| | | //orderdet2.Consumable_principal__c = testList2.Id; |
| | | orderdet2.Consumable_order__c = testList1.Id; |
| | | orderdet2.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet2.Consumable_count__c = 1; |
| | | orderdet2.Consumable_product__c = pro1.Id; |
| | | |
| | | Consumable_orderdetails__c orderdet3 = new Consumable_orderdetails__c(); |
| | | orderdet3.Name = 'Test1_001002'; |
| | | //orderdet2.Consumable_principal__c = testList2.Id; |
| | | orderdet3.Consumable_order__c = invoiceorder.Id; |
| | | orderdet3.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet3.Consumable_count__c = 1; |
| | | orderdet3.Consumable_product__c = pro1.Id; |
| | | insert new List<Consumable_orderdetails__c>{ orderdet1, orderdet2, orderdet3 }; |
| | | |
| | | //发票附件 |
| | | Consumable_accessories_invoice__c cai = new Consumable_accessories_invoice__c(); |
| | | cai.Invoice_code__c = invoiceorder.Id; |
| | | insert cai; |
| | | |
| | | System.Test.startTest(); |
| | | |
| | | LexConInvoiceViewController.init(invoiceorder.Id, '', testList1.Id); |
| | | LexConInvoiceViewController.init('', '', testList1.Id); |
| | | LexConInvoiceViewController.init(invoiceorder.Id, '', ''); |
| | | LexConInvoiceViewController.init('', '', ''); |
| | | LexConInvoiceViewController.init(invoiceorder.Id, 'Redirect', testList1.Id); |
| | | LexConInvoiceViewController.init('', 'Redirect', ''); |
| | | LexConInvoiceViewController.init('', 'Redirect', testList1.Id); |
| | | System.debug('order==>' + LexConInvoiceViewController.invoiceOrderRecoeds); |
| | | |
| | | String invoiceOrderRecoedschangeLwc = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoedschange); |
| | | String invoiceOrderRecoeds = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoeds); |
| | | LexConInvoiceViewController.save( |
| | | testList1, |
| | | 'Testhosp001', |
| | | hosp1.id, |
| | | agency1.id, |
| | | invoiceOrderRecoeds, |
| | | testList1.Id, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | invoiceOrderRecoedschangeLwc |
| | | ); |
| | | LexConInvoiceViewController.save( |
| | | testList2, |
| | | 'Testhosp001', |
| | | '', |
| | | '', |
| | | invoiceOrderRecoeds, |
| | | testList1.Id, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | invoiceOrderRecoedschangeLwc |
| | | ); |
| | | LexConInvoiceViewController.save( |
| | | testList3, |
| | | 'Testhosp001', |
| | | hosp1.id, |
| | | agency1.id, |
| | | invoiceOrderRecoeds, |
| | | testList1.Id, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | invoiceOrderRecoedschangeLwc |
| | | ); |
| | | LexConInvoiceViewController.save( |
| | | testList2, |
| | | 'Testhosp001', |
| | | hosp1.id, |
| | | agency1.id, |
| | | invoiceOrderRecoeds, |
| | | testList1.Id, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | invoiceOrderRecoedschangeLwc |
| | | ); |
| | | |
| | | //保存 |
| | | // LexConInvoiceViewController.save(testList1,'测试医院',hosp1.Id,agency1.Id,'',testList1.Id,invoiceorder.Id,myAccount1.Id,'ET'); |
| | | System.Test.stopTest(); |
| | | } |
| | | } |
| | | static testMethod void allsave() { |
| | | user curUser = [SELECT Id FROM User WHERE LastName = 'TestUser' LIMIT 1]; |
| | | Account acc = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testaccount002' |
| | | LIMIT 1 |
| | | ]; |
| | | Account hosp1 = [SELECT Id FROM Account WHERE name = 'Testhosp001' LIMIT 1]; |
| | | Account agency1 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp001' |
| | | LIMIT 1 |
| | | ]; |
| | | Account agency2 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp002' |
| | | LIMIT 1 |
| | | ]; |
| | | System.runAs(curUser) { |
| | | //发票信息 |
| | | Consumable_order__c invoiceorder = new Consumable_order__c(); |
| | | invoiceorder.Name = 'invoice01'; |
| | | invoiceorder.Order_type__c = '发票'; |
| | | invoiceorder.Invoice_status__c = '草案中'; |
| | | invoiceorder.Invoice_Date__c = Date.today(); |
| | | invoiceorder.RecordTypeid = System.Label.RT_ConOrder_Invoice; |
| | | // invoiceorder.Order_ForHospital__c = ''; |
| | | // invoiceorder.Order_ForDealer__c = ''; |
| | | invoiceorder.Dealer_Info__c = acc.Id; |
| | | //invoiceorder.Order_ProType__c = 'ET'; |
| | | insert invoiceorder; |
| | | |
| | | Consumable_order__c testList1 = new Consumable_order__c( |
| | | Name = 'Test1', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '草案中', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id, |
| | | Invoice_Date__c = Date.today() |
| | | ); |
| | | String invoiceOrderRecoedschangeLwc = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoedschange); |
| | | String invoiceOrderRecoeds = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoeds); |
| | | // LexConInvoiceViewController.init(invoiceorder.Id,'Redirect',testList1.Id); |
| | | LexConInvoiceViewController.save( |
| | | testList1, |
| | | 'Testhosp001', |
| | | null, |
| | | null, |
| | | invoiceOrderRecoeds, |
| | | testList1.Id, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | invoiceOrderRecoedschangeLwc |
| | | ); |
| | | LexConInvoiceViewController.save( |
| | | testList1, |
| | | 'Testhosp001', |
| | | hosp1.id, |
| | | agency1.id, |
| | | invoiceOrderRecoeds, |
| | | testList1.Id, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | invoiceOrderRecoedschangeLwc |
| | | ); |
| | | LexConInvoiceViewController.saveAttachment(JSON.serialize(LexConInvoiceViewController.attachmentRecoeds), invoiceorder.Id); |
| | | } |
| | | } |
| | | static testMethod void allsave1() { |
| | | user curUser = [SELECT Id FROM User WHERE LastName = 'TestUser' LIMIT 1]; |
| | | Account acc = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testaccount002' |
| | | LIMIT 1 |
| | | ]; |
| | | Account hosp1 = [SELECT Id FROM Account WHERE name = 'Testhosp001' LIMIT 1]; |
| | | Account agency1 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp001' |
| | | LIMIT 1 |
| | | ]; |
| | | Account agency2 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp002' |
| | | LIMIT 1 |
| | | ]; |
| | | System.runAs(curUser) { |
| | | //发票信息 |
| | | Consumable_order__c invoiceorder = new Consumable_order__c(); |
| | | invoiceorder.Name = 'invoice01'; |
| | | invoiceorder.Order_type__c = '发票'; |
| | | invoiceorder.Invoice_status__c = '草案中'; |
| | | invoiceorder.Invoice_Date__c = Date.today(); |
| | | invoiceorder.RecordTypeid = System.Label.RT_ConOrder_Invoice; |
| | | // invoiceorder.Order_ForHospital__c = ''; |
| | | // invoiceorder.Order_ForDealer__c = ''; |
| | | invoiceorder.Dealer_Info__c = acc.Id; |
| | | //invoiceorder.Order_ProType__c = 'ET'; |
| | | insert invoiceorder; |
| | | |
| | | Consumable_order__c testList1 = new Consumable_order__c( |
| | | Name = 'Test1', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '草案中', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id, |
| | | Invoice_Date__c = Date.today(), |
| | | Order_ForCustomerText__c = '消化科' |
| | | ); |
| | | insert testList1; |
| | | Consumable_order__c testList2 = new Consumable_order__c( |
| | | Name = 'Test1', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '草案中', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id, |
| | | Invoice_Date__c = Date.today(), |
| | | Order_ForDealerText__c = 'Test' |
| | | ); |
| | | insert testList2; |
| | | |
| | | LexConInvoiceViewController.init(invoiceorder.Id, 'Redirect', testList2.Id); |
| | | String invoiceOrderRecoedschangeLwc = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoedschange); |
| | | String invoiceOrderRecoeds = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoeds); |
| | | List<LexConInvoiceViewController.InvoiceOrderInfo> test1 = new List<LexConInvoiceViewController.InvoiceOrderInfo>(); |
| | | for (LexConInvoiceViewController.InvoiceOrderInfo ass : LexConInvoiceViewController.invoiceOrderRecoeds) { |
| | | ass.check = true; |
| | | test1.add(ass); |
| | | } |
| | | System.debug('test1==>' + test1); |
| | | System.debug('invoiceOrderRecoedschangeLwc==>' + invoiceOrderRecoedschangeLwc); |
| | | LexConInvoiceViewController.save( |
| | | testList1, |
| | | 'Testhosp001', |
| | | hosp1.id, |
| | | agency1.id, |
| | | invoiceOrderRecoeds, |
| | | testList1.Id, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | invoiceOrderRecoedschangeLwc |
| | | ); |
| | | LexConInvoiceViewController.save( |
| | | testList1, |
| | | 'Testhosp001', |
| | | '', |
| | | '', |
| | | JSON.serialize(test1), |
| | | testList1.Id, |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | invoiceOrderRecoedschangeLwc |
| | | ); |
| | | LexConInvoiceViewController.save( |
| | | testList1, |
| | | 'Testhosp001', |
| | | '', |
| | | '', |
| | | JSON.serialize(test1), |
| | | '', |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | invoiceOrderRecoedschangeLwc |
| | | ); |
| | | LexConInvoiceViewController.save( |
| | | testList1, |
| | | '青岛盈海医院', |
| | | hosp1.id, |
| | | agency1.id, |
| | | '[{"check": true,"esd": {"Id": "a2K0l000000x1KXEAY","Order_ForHospital__c": "0011000001k1K9ZAAU","Name": "DB-FY2024-04-Z316244","Outbound_Date__c": "2023-06-09","ShipmentAccount__c": "青岛盈海医院","Shipment_total_amount__c": 848,"RrturnPro_total_amount__c": 0,"Total_Invoiced_Procount__c": 0,"InvoiceNotPro_total_amount__c": 848,"InvoiceNotPro_money__c": 848,"Invoice_total_amount__c": 0,"Billed_Status__c": "还没开票","Order_ForHospital__r": {"Name": "青岛盈海医院","Id": "0011000001k1K9ZAAU"}},"needInvoiceCount": 0,"oldCheck": false}]', |
| | | '', |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | invoiceOrderRecoedschangeLwc |
| | | ); |
| | | LexConInvoiceViewController.save( |
| | | testList1, |
| | | '青岛盈海医院', |
| | | hosp1.id, |
| | | agency1.id, |
| | | '[{"check": true,"esd": {"Id": "a2K0l000000x1KXEAY","Order_ForHospital__c": "0011000001k1K9ZAAU","Name": "DB-FY2024-04-Z316244","Outbound_Date__c": "2023-06-09","ShipmentAccount__c": "青岛盈海医院","Shipment_total_amount__c": 848,"RrturnPro_total_amount__c": 0,"Total_Invoiced_Procount__c": 0,"InvoiceNotPro_total_amount__c": 848,"InvoiceNotPro_money__c": 848,"Invoice_total_amount__c": 0,"Billed_Status__c": "还没开票","Order_ForHospital__r": {"Name": "青岛盈海医院","Id": "0011000001k1K9ZAAU"}},"needInvoiceCount": 0,"oldCheck": false}]', |
| | | '', |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | invoiceOrderRecoedschangeLwc |
| | | ); |
| | | } |
| | | } |
| | | |
| | | static testMethod void allsave2() { |
| | | user curUser = [SELECT Id FROM User WHERE LastName = 'TestUser' LIMIT 1]; |
| | | Account acc = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testaccount002' |
| | | LIMIT 1 |
| | | ]; |
| | | Account hosp1 = [SELECT Id FROM Account WHERE name = 'Testhosp001' LIMIT 1]; |
| | | Account agency1 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp001' |
| | | LIMIT 1 |
| | | ]; |
| | | Account agency2 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp002' |
| | | LIMIT 1 |
| | | ]; |
| | | System.runAs(curUser) { |
| | | //发票信息 |
| | | Consumable_order__c invoiceorder = new Consumable_order__c(); |
| | | invoiceorder.Name = 'invoice01'; |
| | | invoiceorder.Order_type__c = '发票'; |
| | | invoiceorder.Invoice_status__c = '草案中'; |
| | | invoiceorder.Invoice_Date__c = Date.today(); |
| | | invoiceorder.RecordTypeid = System.Label.RT_ConOrder_Invoice; |
| | | // invoiceorder.Order_ForHospital__c = ''; |
| | | // invoiceorder.Order_ForDealer__c = ''; |
| | | invoiceorder.Dealer_Info__c = acc.Id; |
| | | //invoiceorder.Order_ProType__c = 'ET'; |
| | | insert invoiceorder; |
| | | |
| | | Consumable_order__c testList2 = new Consumable_order__c( |
| | | Name = 'Test1', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '草案中', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id, |
| | | Invoice_Date__c = Date.today(), |
| | | Order_ForDealerText__c = 'Test' |
| | | ); |
| | | insert testList2; |
| | | Consumable_order__c testList1 = new Consumable_order__c( |
| | | Name = 'Test1', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '草案中', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id |
| | | ); |
| | | insert testList1; |
| | | String invoiceOrderRecoedschangeLwc = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoedschange); |
| | | //选择开票单 |
| | | LexConInvoiceViewController.save( |
| | | testList2, |
| | | '青岛盈海医院', |
| | | '', |
| | | agency2.id, |
| | | '[{"check": false,"esd": {"Id": "a2K0l000000x1KXEAY","Order_ForHospital__c": "0011000001k1K9ZAAU","Name": "DB-FY2024-04-Z316244","Outbound_Date__c": "2023-06-09","ShipmentAccount__c": "青岛盈海医院","Shipment_total_amount__c": 848,"RrturnPro_total_amount__c": 0,"Total_Invoiced_Procount__c": 0,"InvoiceNotPro_total_amount__c": 848,"InvoiceNotPro_money__c": 848,"Invoice_total_amount__c": 0,"Billed_Status__c": "还没开票","Order_ForHospital__r": {"Name": "青岛盈海医院","Id": "0011000001k1K9ZAAU"}},"needInvoiceCount": 0,"oldCheck": false}]', |
| | | '', |
| | | invoiceorder.Id, |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | invoiceOrderRecoedschangeLwc |
| | | ); |
| | | } |
| | | |
| | | } |
| | | |
| | | static testMethod void allsave3() { |
| | | user curUser = [SELECT Id FROM User WHERE LastName = 'TestUser' LIMIT 1]; |
| | | Account acc = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testaccount002' |
| | | LIMIT 1 |
| | | ]; |
| | | Account hosp1 = [SELECT Id FROM Account WHERE name = 'Testhosp001' LIMIT 1]; |
| | | Account agency1 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp001' |
| | | LIMIT 1 |
| | | ]; |
| | | Account agency2 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp002' |
| | | LIMIT 1 |
| | | ]; |
| | | System.runAs(curUser) { |
| | | Product2 prod01 = new Product2( |
| | | Name = 'Test01', |
| | | ProductCode = 'Test01', |
| | | Asset_Model_No__c = 'Test01', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod02 = new Product2( |
| | | Name = 'Test02', |
| | | ProductCode = 'Test02', |
| | | Asset_Model_No__c = 'Test02', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | insert new List<Product2>{ prod01, prod02 }; |
| | | |
| | | Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'Test001', Product2__c = prod01.Id); |
| | | Product2__c pro2 = new Product2__c(Name = 'Pro002', OT_CODE_Text__c = 'Test002', Product2__c = prod02.Id); |
| | | insert new List<Product2__c>{ pro1, pro2 }; |
| | | |
| | | //发票信息 |
| | | Consumable_order__c invoiceorder = new Consumable_order__c(); |
| | | invoiceorder.Name = '202306164590'; |
| | | invoiceorder.Invoice_Date__c = Date.today(); |
| | | invoiceorder.Order_ForCustomerText__c = '消化科'; |
| | | invoiceorder.Invoice_Note__c = '4444'; |
| | | invoiceorder.RecordTypeid = '012100000006JxEAAU'; |
| | | invoiceorder.Invoice_status__c = '草案中'; |
| | | invoiceorder.Order_type__c = '发票'; |
| | | // invoiceorder.Order_ForHospital__c = hosp1.Id; |
| | | insert invoiceorder; |
| | | // invoiceorder = [select id,Name from Consumable_order__c where id =:invoiceorder.id]; |
| | | Consumable_order__c testList2 = new Consumable_order__c( |
| | | Name = 'Test1', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '草案中', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id, |
| | | Invoice_Date__c = Date.today() |
| | | ); |
| | | insert testList2; |
| | | |
| | | List<Consumable_orderdetails__c> conList = new List<Consumable_orderdetails__c>(); |
| | | //出库单1明细1 |
| | | Consumable_orderdetails__c orderdet1 = new Consumable_orderdetails__c(); |
| | | orderdet1.Name = 'Test1_001001'; |
| | | //orderdet1.Consumable_principal__c = testList1.Id; |
| | | orderdet1.Consumable_order__c = invoiceorder.Id; |
| | | orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet1.Consumable_count__c = 1; |
| | | orderdet1.Consumable_product__c = pro1.Id; |
| | | orderdet1.Shipment_Count__c = 10; |
| | | orderdet1.Invoiced_Procount__c = 4; |
| | | orderdet1.RrturnPro_count__c = 2; |
| | | conList.add(orderdet1); |
| | | |
| | | String invoiceOrderRecoedschangeLwc = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoedschange); |
| | | LexConInvoiceViewController.save( |
| | | invoiceorder, |
| | | '潍城现代门诊部', |
| | | '0011000001g0uyhAAA', |
| | | '', |
| | | '[{"check": false,"esd": {"Id": "a2K0l000000x1KXEAY","Order_ForHospital__c": "0011000001k1K9ZAAU","Name": "DB-FY2024-04-Z316244","Outbound_Date__c": "2023-06-09","ShipmentAccount__c": "青岛盈海医院","Shipment_total_amount__c": 848,"RrturnPro_total_amount__c": 0,"Total_Invoiced_Procount__c": 0,"InvoiceNotPro_total_amount__c": 848,"InvoiceNotPro_money__c": 848, "Invoice_total_amount__c": 0,"Billed_Status__c": "还没开票","Order_ForHospital__r": {"Name": "青岛盈海医院","Id": "0011000001k1K9ZAAU"}},"needInvoiceCount": 0,"oldCheck": false,"Id": "a2K0l000000x1KXEAY"}, {"check": true,"esd": {"Id": "a2K0l000000xAnwEAE","Order_ForHospital__c": "0011000001g0uyhAAA","Name": "a2K0l000000xAnw","Outbound_Date__c": "2023-05-12","ShipmentAccount__c": "潍城现代门诊部", "Shipment_total_amount__c": 2300,"RrturnPro_total_amount__c": 0,"Total_Invoiced_Procount__c": 0,"InvoiceNotPro_total_amount__c": 2300,"InvoiceNotPro_money__c": 2300,"Invoice_total_amount__c": 0,"Billed_Status__c": "还没开票","Order_ForHospital__r": {"Name": "潍城现代门诊部","Id": "0011000001g0uyhAAA"} }, "needInvoiceCount": 0,"oldCheck": false, "Id": "a2K0l000000xAnwEAE"}]', |
| | | '', |
| | | '', |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | invoiceOrderRecoedschangeLwc |
| | | ); |
| | | LexConInvoiceViewController.save( |
| | | invoiceorder, |
| | | '潍城现代门诊部', |
| | | '0011000001g0uyhAAA', |
| | | agency1.Id, |
| | | '[{"check": false,"esd": {"Id": "a2K0l000000x1KXEAY","Order_ForHospital__c": "0011000001k1K9ZAAU","Name": "DB-FY2024-04-Z316244","Outbound_Date__c": "2023-06-09","ShipmentAccount__c": "青岛盈海医院","Shipment_total_amount__c": 848,"RrturnPro_total_amount__c": 0,"Total_Invoiced_Procount__c": 0,"InvoiceNotPro_total_amount__c": 848,"InvoiceNotPro_money__c": 848, "Invoice_total_amount__c": 0,"Billed_Status__c": "还没开票","Order_ForHospital__r": {"Name": "青岛盈海医院","Id": "0011000001k1K9ZAAU"}},"needInvoiceCount": 0,"oldCheck": false,"Id": "a2K0l000000x1KXEAY"}, {"check": true,"esd": {"Id": "a2K0l000000xAnwEAE","Order_ForHospital__c": "0011000001g0uyhAAA","Name": "a2K0l000000xAnw","Outbound_Date__c": "2023-05-12","ShipmentAccount__c": "潍城现代门诊部", "Shipment_total_amount__c": 2300,"RrturnPro_total_amount__c": 0,"Total_Invoiced_Procount__c": 0,"InvoiceNotPro_total_amount__c": 2300,"InvoiceNotPro_money__c": 2300,"Invoice_total_amount__c": 0,"Billed_Status__c": "还没开票","Order_ForHospital__r": {"Name": "潍城现代门诊部","Id": "0011000001g0uyhAAA"} }, "needInvoiceCount": 0,"oldCheck": false, "Id": "a2K0l000000xAnwEAE"}]', |
| | | testList2.Id, |
| | | '', |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | invoiceOrderRecoedschangeLwc |
| | | ); |
| | | |
| | | List<LexConInvoiceViewController.InvoiceOrderInfo> test1 = new List<LexConInvoiceViewController.InvoiceOrderInfo>(); |
| | | for (LexConInvoiceViewController.InvoiceOrderInfo ass : LexConInvoiceViewController.invoiceOrderRecoeds) { |
| | | ass.check = true; |
| | | test1.add(ass); |
| | | } |
| | | System.debug('test1==>' + test1); |
| | | LexConInvoiceViewController.save( |
| | | invoiceorder, |
| | | '潍城现代门诊部', |
| | | '0011000001g0uyhAAA', |
| | | '', |
| | | JSON.serialize(test1), |
| | | '', |
| | | '', |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | invoiceOrderRecoedschangeLwc |
| | | ); |
| | | } |
| | | |
| | | } |
| | | |
| | | static testMethod void allsave4() { |
| | | user curUser = [SELECT Id FROM User WHERE LastName = 'TestUser' LIMIT 1]; |
| | | Account acc = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testaccount002' |
| | | LIMIT 1 |
| | | ]; |
| | | Account hosp1 = [SELECT Id FROM Account WHERE name = 'Testhosp001' LIMIT 1]; |
| | | Account agency1 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp001' |
| | | LIMIT 1 |
| | | ]; |
| | | Account agency2 = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testhosp002' |
| | | LIMIT 1 |
| | | ]; |
| | | System.runAs(curUser) { |
| | | //发票信息 |
| | | Consumable_order__c invoiceorder = new Consumable_order__c(); |
| | | invoiceorder.Name = '202306164590'; |
| | | invoiceorder.Invoice_Date__c = Date.today(); |
| | | // invoiceorder.Order_ForCustomerText__c = '消化科'; |
| | | invoiceorder.Invoice_Note__c = '4444'; |
| | | invoiceorder.RecordTypeid = '012100000006JxEAAU'; |
| | | invoiceorder.Invoice_status__c = '草案中'; |
| | | invoiceorder.Order_type__c = '发票'; |
| | | // invoiceorder.Order_ForHospital__c = hosp1.Id; |
| | | insert invoiceorder; |
| | | //发票信息 |
| | | Consumable_order__c invoiceorder1 = new Consumable_order__c(); |
| | | invoiceorder1.Name = '202306164590'; |
| | | invoiceorder1.Invoice_Date__c = Date.today(); |
| | | invoiceorder1.Order_ForCustomerText__c = '消化科'; |
| | | invoiceorder1.Invoice_Note__c = '4444'; |
| | | invoiceorder1.RecordTypeid = '012100000006JxEAAU'; |
| | | invoiceorder1.Invoice_status__c = '草案中'; |
| | | invoiceorder1.Order_type__c = '发票'; |
| | | // invoiceorder.Order_ForHospital__c = hosp1.Id; |
| | | insert invoiceorder1; |
| | | |
| | | // invoiceorder = [select id,Name from Consumable_order__c where id =:invoiceorder.id]; |
| | | Consumable_order__c testList2 = new Consumable_order__c( |
| | | Name = 'Test1', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '草案中', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id, |
| | | Invoice_Date__c = Date.today() |
| | | ); |
| | | |
| | | insert testList2; |
| | | String invoiceOrderRecoedschangeLwc = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoedschange); |
| | | //不需要输入科室 |
| | | LexConInvoiceViewController.save( |
| | | invoiceorder1, |
| | | '潍城现代门诊部', |
| | | '', |
| | | agency1.Id, |
| | | '[{"check": false,"esd": {"Id": "a2K0l000000x1KXEAY","Order_ForHospital__c": "0011000001k1K9ZAAU","Name": "DB-FY2024-04-Z316244","Outbound_Date__c": "2023-06-09","ShipmentAccount__c": "青岛盈海医院","Shipment_total_amount__c": 848,"RrturnPro_total_amount__c": 0,"Total_Invoiced_Procount__c": 0,"InvoiceNotPro_total_amount__c": 848,"InvoiceNotPro_money__c": 848, "Invoice_total_amount__c": 0,"Billed_Status__c": "还没开票","Order_ForHospital__r": {"Name": "青岛盈海医院","Id": "0011000001k1K9ZAAU"}},"needInvoiceCount": 0,"oldCheck": false,"Id": "a2K0l000000x1KXEAY"}, {"check": true,"esd": {"Id": "a2K0l000000xAnwEAE","Order_ForHospital__c": "0011000001g0uyhAAA","Name": "a2K0l000000xAnw","Outbound_Date__c": "2023-05-12","ShipmentAccount__c": "潍城现代门诊部", "Shipment_total_amount__c": 2300,"RrturnPro_total_amount__c": 0,"Total_Invoiced_Procount__c": 0,"InvoiceNotPro_total_amount__c": 2300,"InvoiceNotPro_money__c": 2300,"Invoice_total_amount__c": 0,"Billed_Status__c": "还没开票","Order_ForHospital__r": {"Name": "潍城现代门诊部","Id": "0011000001g0uyhAAA"} }, "needInvoiceCount": 0,"oldCheck": false, "Id": "a2K0l000000xAnwEAE"}]', |
| | | testList2.Id, |
| | | '', |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | invoiceOrderRecoedschangeLwc |
| | | ); |
| | | |
| | | //LexConInvoiceViewController.save(invoiceorder,'潍城现代门诊部','',agency2.Id,'[{"check": false,"esd": {"Id": "a2K0l000000x1KXEAY","Order_ForHospital__c": "0011000001k1K9ZAAU","Name": "DB-FY2024-04-Z316244","Outbound_Date__c": "2023-06-09","ShipmentAccount__c": "青岛盈海医院","Shipment_total_amount__c": 848,"RrturnPro_total_amount__c": 0,"Total_Invoiced_Procount__c": 0,"InvoiceNotPro_total_amount__c": 848,"InvoiceNotPro_money__c": 848, "Invoice_total_amount__c": 0,"Billed_Status__c": "还没开票","Order_ForHospital__r": {"Name": "青岛盈海医院","Id": "0011000001k1K9ZAAU"}},"needInvoiceCount": 0,"oldCheck": false,"Id": "a2K0l000000x1KXEAY"}, {"check": false,"esd": {"Id": "a2K0l000000xAnwEAE","Order_ForHospital__c": "0011000001g0uyhAAA","Name": "a2K0l000000xAnw","Outbound_Date__c": "2023-05-12","ShipmentAccount__c": "潍城现代门诊部", "Shipment_total_amount__c": 2300,"RrturnPro_total_amount__c": 0,"Total_Invoiced_Procount__c": 0,"InvoiceNotPro_total_amount__c": 2300,"InvoiceNotPro_money__c": 2300,"Invoice_total_amount__c": 0,"Billed_Status__c": "还没开票","Order_ForHospital__r": {"Name": "潍城现代门诊部","Id": "0011000001g0uyhAAA"} }, "needInvoiceCount": 0,"oldCheck": false, "Id": "a2K0l000000xAnwEAE"}]',testList2.Id,invoiceorder.Id,myAccount1.Id,'ET','isreopen',invoiceOrderRecoedschangeLwc); |
| | | // LexConInvoiceViewController.save(invoiceorder1,'潍城现代门诊部','',agency2.Id,'[{"check": false,"esd": {"Id": "a2K0l000000x1KXEAY","Order_ForHospital__c": "0011000001k1K9ZAAU","Name": "DB-FY2024-04-Z316244","Outbound_Date__c": "2023-06-09","ShipmentAccount__c": "青岛盈海医院","Shipment_total_amount__c": 848,"RrturnPro_total_amount__c": 0,"Total_Invoiced_Procount__c": 0,"InvoiceNotPro_total_amount__c": 848,"InvoiceNotPro_money__c": 848, "Invoice_total_amount__c": 0,"Billed_Status__c": "还没开票","Order_ForHospital__r": {"Name": "青岛盈海医院","Id": "0011000001k1K9ZAAU"}},"needInvoiceCount": 0,"oldCheck": false,"Id": "a2K0l000000x1KXEAY"}, {"check": false,"esd": {"Id": "a2K0l000000xAnwEAE","Order_ForHospital__c": "0011000001g0uyhAAA","Name": "a2K0l000000xAnw","Outbound_Date__c": "2023-05-12","ShipmentAccount__c": "潍城现代门诊部", "Shipment_total_amount__c": 2300,"RrturnPro_total_amount__c": 0,"Total_Invoiced_Procount__c": 0,"InvoiceNotPro_total_amount__c": 2300,"InvoiceNotPro_money__c": 2300,"Invoice_total_amount__c": 0,"Billed_Status__c": "还没开票","Order_ForHospital__r": {"Name": "潍城现代门诊部","Id": "0011000001g0uyhAAA"} }, "needInvoiceCount": 0,"oldCheck": false, "Id": "a2K0l000000xAnwEAE"}]',testList2.Id,invoiceorder1.Id,myAccount1.Id,'ET','isreopen',invoiceOrderRecoedschangeLwc); |
| | | } |
| | | } |
| | | |
| | | static testMethod void allsave5() { |
| | | user curUser = [SELECT Id FROM User WHERE LastName = 'TestUser' LIMIT 1]; |
| | | Account acc = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testaccount002' |
| | | LIMIT 1 |
| | | ]; |
| | | System.runAs(curUser) { |
| | | //产品信息 |
| | | Product2 prod01 = new Product2( |
| | | Name = 'Test01', |
| | | ProductCode = 'Test01', |
| | | Asset_Model_No__c = 'Test01', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod02 = new Product2( |
| | | Name = 'Test02', |
| | | ProductCode = 'Test02', |
| | | Asset_Model_No__c = 'Test02', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | insert new List<Product2>{ prod01, prod02 }; |
| | | |
| | | Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'Test001', Product2__c = prod01.Id); |
| | | Product2__c pro2 = new Product2__c(Name = 'Pro002', OT_CODE_Text__c = 'Test002', Product2__c = prod02.Id); |
| | | insert new List<Product2__c>{ pro1, pro2 }; |
| | | List<Consumable_order__c> orderList = new List<Consumable_order__c>(); |
| | | //发票信息 |
| | | Consumable_order__c invoiceorder = new Consumable_order__c(); |
| | | invoiceorder.Name = '202306164590'; |
| | | invoiceorder.Invoice_Date__c = Date.today(); |
| | | // invoiceorder.Order_ForCustomerText__c = '消化科'; |
| | | invoiceorder.Invoice_Note__c = '4444'; |
| | | invoiceorder.RecordTypeid = '012100000006JxEAAU'; |
| | | invoiceorder.Invoice_status__c = '草案中'; |
| | | invoiceorder.Order_type__c = '发票'; |
| | | // invoiceorder.Order_ForHospital__c = hosp1.Id; |
| | | orderList.add(invoiceorder); |
| | | //发票信息 |
| | | Consumable_order__c invoiceorder1 = new Consumable_order__c(); |
| | | invoiceorder1.Name = '202306164590'; |
| | | invoiceorder1.Invoice_Date__c = Date.today(); |
| | | invoiceorder1.Order_ForCustomerText__c = '消化科'; |
| | | invoiceorder1.Invoice_Note__c = '4444'; |
| | | invoiceorder1.RecordTypeid = '012100000006JxEAAU'; |
| | | invoiceorder1.Invoice_status__c = '草案中'; |
| | | invoiceorder1.Order_type__c = '发票'; |
| | | // invoiceorder.Order_ForHospital__c = hosp1.Id; |
| | | orderList.add(invoiceorder1); |
| | | Consumable_order__c testList2 = new Consumable_order__c( |
| | | Name = 'Test1', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '草案中', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id, |
| | | Invoice_Date__c = Date.today() |
| | | ); |
| | | orderList.add(testList2); |
| | | //出库单 |
| | | Consumable_order__c testList1 = new Consumable_order__c( |
| | | Name = 'Test1', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '草案中', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id |
| | | ); |
| | | orderList.add(testList1); |
| | | insert orderList; |
| | | List<Consumable_orderdetails__c> conList = new List<Consumable_orderdetails__c>(); |
| | | //出库单1明细1 |
| | | Consumable_orderdetails__c orderdet1 = new Consumable_orderdetails__c(); |
| | | orderdet1.Name = 'Test1_001001'; |
| | | //orderdet1.Consumable_principal__c = testList1.Id; |
| | | orderdet1.Consumable_order__c = invoiceorder1.Id; |
| | | orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet1.Consumable_count__c = 1; |
| | | orderdet1.Consumable_product__c = pro1.Id; |
| | | orderdet1.Shipment_Count__c = 10; |
| | | orderdet1.Invoiced_Procount__c = 4; |
| | | orderdet1.RrturnPro_count__c = 2; |
| | | conList.add(orderdet1); |
| | | |
| | | Consumable_order_LinkTable__c order_LinkTable1 = new Consumable_order_LinkTable__c( |
| | | Name = 'order_LinkTable1', |
| | | Outboundorder_Code_link__c = testList1.Id, |
| | | Invoice_Code_link__c = invoiceorder1.Id |
| | | ); |
| | | insert order_LinkTable1; |
| | | Consumable_Orderdetails__c upDateform = new Consumable_Orderdetails__c(); |
| | | upDateform.Name = 'Test1_001001'; |
| | | upDateform.Consumable_order__c = invoiceorder1.Id; |
| | | upDateform.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | upDateform.Consumable_count__c = 1; |
| | | upDateform.Consumable_product__c = pro1.Id; |
| | | upDateform.Consumable_order__c = order_LinkTable1.Outboundorder_Code_link__c; |
| | | conList.add(upDateform); |
| | | insert conList; |
| | | String invoiceOrderRecoedschangeLwc = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoedschange); |
| | | LexConInvoiceViewController.save( |
| | | invoiceorder1, |
| | | '潍城现代门诊部', |
| | | '0011000001k1K9ZAAU', |
| | | '', |
| | | '[{"check": true,"esd": {"Id": "a2K0l000000x1KXEAY","Order_ForHospital__c": "0011000001k1K9ZAAU","Name": "DB-FY2024-04-Z316244","Outbound_Date__c": "2023-06-09","ShipmentAccount__c": "青岛盈海医院","Shipment_total_amount__c": 848,"RrturnPro_total_amount__c": 0,"Total_Invoiced_Procount__c": 0,"InvoiceNotPro_total_amount__c": 848,"InvoiceNotPro_money__c": 848, "Invoice_total_amount__c": 0,"Billed_Status__c": "还没开票","Order_ForHospital__r": {"Name": "青岛盈海医院","Id": "0011000001k1K9ZAAU"}},"needInvoiceCount": 0,"oldCheck": false,"Id": "a2K0l000000x1KXEAY"}]', |
| | | testList1.Id, |
| | | invoiceorder1.Id, |
| | | acc.Id, |
| | | 'ET', |
| | | 'isreopen', |
| | | invoiceOrderRecoedschangeLwc |
| | | ); |
| | | // LexConInvoiceViewController.save(invoiceorder1,'潍城现代门诊部','0011000001k1K9ZAAU','','[{"check": true,"esd": {"Id": "a2K0l000000x1KXEAY","Order_ForHospital__c": "0011000001k1K9ZAAU","Name": "DB-FY2024-04-Z316244","Outbound_Date__c": "2023-06-09","ShipmentAccount__c": "青岛盈海医院","Shipment_total_amount__c": 848,"RrturnPro_total_amount__c": 0,"Total_Invoiced_Procount__c": 0,"InvoiceNotPro_total_amount__c": 848,"InvoiceNotPro_money__c": 848, "Invoice_total_amount__c": 0,"Billed_Status__c": "还没开票","Order_ForHospital__r": {"Name": "青岛盈海医院","Id": "0011000001k1K9ZAAU"}},"needInvoiceCount": 0,"oldCheck": false,"Id": "a2K0l000000x1KXEAY"}]',testList1.Id,'',myAccount1.Id,'ET','isreopen',invoiceOrderRecoedschangeLwc); |
| | | } |
| | | } |
| | | |
| | | static testMethod void allsave6() { |
| | | user curUser = [SELECT Id FROM User WHERE LastName = 'TestUser' LIMIT 1]; |
| | | Account acc = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testaccount002' |
| | | LIMIT 1 |
| | | ]; |
| | | System.runAs(curUser) { |
| | | //产品信息 |
| | | Product2 prod01 = new Product2( |
| | | Name = 'Test01', |
| | | ProductCode = 'Test01', |
| | | Asset_Model_No__c = 'Test01', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod02 = new Product2( |
| | | Name = 'Test02', |
| | | ProductCode = 'Test02', |
| | | Asset_Model_No__c = 'Test02', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | insert new List<Product2>{ prod01, prod02 }; |
| | | |
| | | Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'Test001', Product2__c = prod01.Id); |
| | | Product2__c pro2 = new Product2__c(Name = 'Pro002', OT_CODE_Text__c = 'Test002', Product2__c = prod02.Id); |
| | | insert new List<Product2__c>{ pro1, pro2 }; |
| | | List<Consumable_order__c> orderList = new List<Consumable_order__c>(); |
| | | //发票信息 |
| | | Consumable_order__c invoiceorder = new Consumable_order__c(); |
| | | invoiceorder.Name = '202306164590'; |
| | | invoiceorder.Invoice_Date__c = Date.today(); |
| | | // invoiceorder.Order_ForCustomerText__c = '消化科'; |
| | | invoiceorder.Invoice_Note__c = '4444'; |
| | | invoiceorder.RecordTypeid = '012100000006JxEAAU'; |
| | | invoiceorder.Invoice_status__c = '草案中'; |
| | | invoiceorder.Order_type__c = '发票'; |
| | | // invoiceorder.Order_ForHospital__c = hosp1.Id; |
| | | orderList.add(invoiceorder); |
| | | //发票信息 |
| | | Consumable_order__c invoiceorder1 = new Consumable_order__c(); |
| | | invoiceorder1.Name = '202306164590'; |
| | | invoiceorder1.Invoice_Date__c = Date.today(); |
| | | invoiceorder1.Order_ForCustomerText__c = '消化科'; |
| | | invoiceorder1.Invoice_Note__c = '4444'; |
| | | invoiceorder1.RecordTypeid = '012100000006JxEAAU'; |
| | | invoiceorder1.Invoice_status__c = '草案中'; |
| | | invoiceorder1.Order_type__c = '发票'; |
| | | // invoiceorder.Order_ForHospital__c = hosp1.Id; |
| | | orderList.add(invoiceorder1); |
| | | Consumable_order__c testList2 = new Consumable_order__c( |
| | | Name = 'Test1', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '草案中', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id, |
| | | Invoice_Date__c = Date.today() |
| | | ); |
| | | orderList.add(testList2); |
| | | //出库单 |
| | | Consumable_order__c testList1 = new Consumable_order__c( |
| | | Name = 'Test1', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '草案中', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id |
| | | ); |
| | | orderList.add(testList1); |
| | | insert orderList; |
| | | List<Consumable_orderdetails__c> conList = new List<Consumable_orderdetails__c>(); |
| | | //出库单1明细1 |
| | | Consumable_orderdetails__c orderdet1 = new Consumable_orderdetails__c(); |
| | | orderdet1.Name = 'Test1_001001'; |
| | | //orderdet1.Consumable_principal__c = testList1.Id; |
| | | orderdet1.Consumable_order__c = testList1.Id; |
| | | orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet1.Consumable_count__c = 1; |
| | | orderdet1.Consumable_product__c = pro1.Id; |
| | | conList.add(orderdet1); |
| | | |
| | | Consumable_order_LinkTable__c order_LinkTable1 = new Consumable_order_LinkTable__c( |
| | | Name = 'order_LinkTable1', |
| | | Outboundorder_Code_link__c = invoiceorder1.Id, |
| | | Invoice_Code_link__c = invoiceorder1.Id |
| | | ); |
| | | insert order_LinkTable1; |
| | | Consumable_Orderdetails__c upDateform = new Consumable_Orderdetails__c(); |
| | | upDateform.Name = 'Test1_001001'; |
| | | //orderdet1.Consumable_principal__c = testList1.Id; |
| | | upDateform.Consumable_order__c = invoiceorder1.Id; |
| | | upDateform.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | upDateform.Consumable_count__c = 1; |
| | | upDateform.Consumable_product__c = pro1.Id; |
| | | upDateform.Consumable_order__c = order_LinkTable1.Outboundorder_Code_link__c; |
| | | upDateform.RrturnPro_count__c = 10; |
| | | conList.add(upDateform); |
| | | insert conList; |
| | | String invoiceOrderRecoedschangeLwc = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoedschange); |
| | | LexConInvoiceViewController.save( |
| | | invoiceorder1, |
| | | '潍城现代门诊部', |
| | | '0011000001k1K9ZAAU', |
| | | '', |
| | | '[{"check": false,"esd": {"Id": "a2K0l000000x1KXEAY","Order_ForHospital__c": "0011000001k1K9ZAAU","Name": "DB-FY2024-04-Z316244","Outbound_Date__c": "2023-06-09","ShipmentAccount__c": "青岛盈海医院","Shipment_total_amount__c": 848,"RrturnPro_total_amount__c": 0,"Total_Invoiced_Procount__c": 0,"InvoiceNotPro_total_amount__c": 848,"InvoiceNotPro_money__c": 848, "Invoice_total_amount__c": 0,"Billed_Status__c": "还没开票","Order_ForHospital__r": {"Name": "青岛盈海医院","Id": "0011000001k1K9ZAAU"}},"needInvoiceCount": 0,"oldCheck": false,"Id": "a2K0l000000x1KXEAY"}]', |
| | | testList1.Id, |
| | | invoiceorder1.Id, |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | '[{"check": false,"esd": {"Id": "a2K0l000000x1KXEAY","Order_ForHospital__c": "0011000001k1K9ZAAU","Name": "DB-FY2024-04-Z316244","Outbound_Date__c": "2023-06-09","ShipmentAccount__c": "青岛盈海医院","Shipment_total_amount__c": 848,"RrturnPro_total_amount__c": 0,"Total_Invoiced_Procount__c": 0,"InvoiceNotPro_total_amount__c": 848,"InvoiceNotPro_money__c": 848, "Invoice_total_amount__c": 0,"Billed_Status__c": "还没开票","Order_ForHospital__r": {"Name": "青岛盈海医院","Id": "0011000001k1K9ZAAU"}},"needInvoiceCount": 0,"oldCheck": false,"Id": "a2K0l000000x1KXEAY"}]' |
| | | ); |
| | | LexConInvoiceViewController.save( |
| | | invoiceorder1, |
| | | '潍城现代门诊部', |
| | | '0011000001k1K9ZAAU', |
| | | '', |
| | | '[{"check": true,"esd": {"Id": "a2K0l000000x1KXEAY","Order_ForHospital__c": "0011000001k1K9ZAAU","Name": "DB-FY2024-04-Z316244","Outbound_Date__c": "2023-06-09","ShipmentAccount__c": "青岛盈海医院","Shipment_total_amount__c": 848,"RrturnPro_total_amount__c": 0,"Total_Invoiced_Procount__c": 0,"InvoiceNotPro_total_amount__c": 848,"InvoiceNotPro_money__c": 848, "Invoice_total_amount__c": 0,"Billed_Status__c": "还没开票","Order_ForHospital__r": {"Name": "青岛盈海医院","Id": "0011000001k1K9ZAAU"}},"needInvoiceCount": 0,"oldCheck": false,"Id": "a2K0l000000x1KXEAY"}]', |
| | | '', |
| | | invoiceorder1.Id, |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | '[{"check": false,"esd": {"Id": "a2K0l000000x1KXEAY","Order_ForHospital__c": "0011000001k1K9ZAAU","Name": "DB-FY2024-04-Z316244","Outbound_Date__c": "2023-06-09","ShipmentAccount__c": "青岛盈海医院","Shipment_total_amount__c": 848,"RrturnPro_total_amount__c": 0,"Total_Invoiced_Procount__c": 0,"InvoiceNotPro_total_amount__c": 848,"InvoiceNotPro_money__c": 848, "Invoice_total_amount__c": 0,"Billed_Status__c": "还没开票","Order_ForHospital__r": {"Name": "青岛盈海医院","Id": "0011000001k1K9ZAAU"}},"needInvoiceCount": 0,"oldCheck": false,"Id": "a2K0l000000x1KXEAY"}]' |
| | | ); |
| | | LexConInvoiceViewController.save( |
| | | invoiceorder1, |
| | | '潍城现代门诊部', |
| | | '0011000001k1K9ZAAU', |
| | | '', |
| | | '[{"check": false,"esd": {"Id": "a2K0l000000x1KXEAY","Order_ForHospital__c": "0011000001k1K9ZAAU","Name": "DB-FY2024-04-Z316244","Outbound_Date__c": "2023-06-09","ShipmentAccount__c": "青岛盈海医院","Shipment_total_amount__c": 848,"RrturnPro_total_amount__c": 0,"Total_Invoiced_Procount__c": 0,"InvoiceNotPro_total_amount__c": 848,"InvoiceNotPro_money__c": 848, "Invoice_total_amount__c": 0,"Billed_Status__c": "还没开票","Order_ForHospital__r": {"Name": "青岛盈海医院","Id": "0011000001k1K9ZAAU"}},"needInvoiceCount": 0,"oldCheck": false,"Id": "a2K0l000000x1KXEAY"}]', |
| | | '', |
| | | invoiceorder1.Id, |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | '[{"check": false,"esd": {"Id": "a2K0l000000x1KXEAY","Order_ForHospital__c": "0011000001k1K9ZAAU","Name": "DB-FY2024-04-Z316244","Outbound_Date__c": "2023-06-09","ShipmentAccount__c": "青岛盈海医院","Shipment_total_amount__c": 848,"RrturnPro_total_amount__c": 0,"Total_Invoiced_Procount__c": 0,"InvoiceNotPro_total_amount__c": 848,"InvoiceNotPro_money__c": 848, "Invoice_total_amount__c": 0,"Billed_Status__c": "还没开票","Order_ForHospital__r": {"Name": "青岛盈海医院","Id": "0011000001k1K9ZAAU"}},"needInvoiceCount": 0,"oldCheck": false,"Id": "a2K0l000000x1KXEAY"}]' |
| | | ); |
| | | } |
| | | } |
| | | |
| | | static testMethod void allsave7() { |
| | | user curUser = [SELECT Id FROM User WHERE LastName = 'TestUser' LIMIT 1]; |
| | | Account acc = [ |
| | | SELECT Id |
| | | FROM Account |
| | | WHERE name = 'Testaccount002' |
| | | LIMIT 1 |
| | | ]; |
| | | System.runAs(curUser) { |
| | | //产品信息 |
| | | Product2 prod01 = new Product2( |
| | | Name = 'Test01', |
| | | ProductCode = 'Test01', |
| | | Asset_Model_No__c = 'Test01', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | Product2 prod02 = new Product2( |
| | | Name = 'Test02', |
| | | ProductCode = 'Test02', |
| | | Asset_Model_No__c = 'Test02', |
| | | SFDA_Status__c = '有効', |
| | | Dealer_special_Object__c = true, |
| | | Manual_Entry__c = false |
| | | ); |
| | | insert new List<Product2>{ prod01, prod02 }; |
| | | |
| | | Product2__c pro1 = new Product2__c(Name = 'Pro001', OT_CODE_Text__c = 'Test001', Product2__c = prod01.Id); |
| | | Product2__c pro2 = new Product2__c(Name = 'Pro002', OT_CODE_Text__c = 'Test002', Product2__c = prod02.Id); |
| | | insert new List<Product2__c>{ pro1, pro2 }; |
| | | List<Consumable_order__c> orderList = new List<Consumable_order__c>(); |
| | | //发票信息 |
| | | Consumable_order__c invoiceorder = new Consumable_order__c(); |
| | | invoiceorder.Name = '202306164590'; |
| | | invoiceorder.Invoice_Date__c = Date.today(); |
| | | // invoiceorder.Order_ForCustomerText__c = '消化科'; |
| | | invoiceorder.Invoice_Note__c = '4444'; |
| | | invoiceorder.RecordTypeid = '012100000006JxEAAU'; |
| | | invoiceorder.Invoice_status__c = '草案中'; |
| | | invoiceorder.Order_type__c = '发票'; |
| | | // invoiceorder.Order_ForHospital__c = hosp1.Id; |
| | | orderList.add(invoiceorder); |
| | | //发票信息 |
| | | Consumable_order__c invoiceorder1 = new Consumable_order__c(); |
| | | invoiceorder1.Name = '202306164590'; |
| | | invoiceorder1.Invoice_Date__c = Date.today(); |
| | | invoiceorder1.Order_ForCustomerText__c = '消化科'; |
| | | invoiceorder1.Invoice_Note__c = '4444'; |
| | | invoiceorder1.RecordTypeid = '012100000006JxEAAU'; |
| | | invoiceorder1.Invoice_status__c = '草案中'; |
| | | invoiceorder1.Order_type__c = '发票'; |
| | | // invoiceorder.Order_ForHospital__c = hosp1.Id; |
| | | orderList.add(invoiceorder1); |
| | | Consumable_order__c testList2 = new Consumable_order__c( |
| | | Name = 'Test1', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '草案中', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id, |
| | | Invoice_Date__c = Date.today() |
| | | ); |
| | | orderList.add(testList2); |
| | | //出库单 |
| | | Consumable_order__c testList1 = new Consumable_order__c( |
| | | Name = 'Test1', |
| | | Summons_Sale_Status__c = '出货', |
| | | SummonsStatus_c__c = '已完成', |
| | | SummonsForDirction__c = '直接销售给医院', |
| | | Order_status__c = '草案中', |
| | | Order_type__c = '传票', |
| | | Dealer_info__c = acc.Id |
| | | ); |
| | | orderList.add(testList1); |
| | | insert orderList; |
| | | List<Consumable_orderdetails__c> conList = new List<Consumable_orderdetails__c>(); |
| | | //出库单1明细1 |
| | | Consumable_orderdetails__c orderdet1 = new Consumable_orderdetails__c(); |
| | | orderdet1.Name = 'Test1_001001'; |
| | | //orderdet1.Consumable_principal__c = testList1.Id; |
| | | orderdet1.Consumable_order__c = testList1.Id; |
| | | orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | orderdet1.Consumable_count__c = 1; |
| | | orderdet1.Consumable_product__c = pro1.Id; |
| | | conList.add(orderdet1); |
| | | |
| | | Consumable_order_LinkTable__c order_LinkTable1 = new Consumable_order_LinkTable__c( |
| | | Name = 'order_LinkTable1', |
| | | Outboundorder_Code_link__c = invoiceorder1.Id, |
| | | Invoice_Code_link__c = invoiceorder1.Id |
| | | ); |
| | | insert order_LinkTable1; |
| | | Consumable_Orderdetails__c upDateform = new Consumable_Orderdetails__c(); |
| | | upDateform.Name = 'Test1_001001'; |
| | | //orderdet1.Consumable_principal__c = testList1.Id; |
| | | upDateform.Consumable_order__c = invoiceorder1.Id; |
| | | upDateform.RecordTypeId = System.Label.RT_ConOrderDetail1_Invoice; |
| | | upDateform.Consumable_count__c = 1; |
| | | upDateform.Consumable_product__c = pro1.Id; |
| | | upDateform.Consumable_order__c = order_LinkTable1.Outboundorder_Code_link__c; |
| | | upDateform.RrturnPro_count__c = 10; |
| | | conList.add(upDateform); |
| | | insert conList; |
| | | String invoiceOrderRecoedschangeLwc = JSON.serialize(LexConInvoiceViewController.invoiceOrderRecoedschange); |
| | | LexConInvoiceViewController.save( |
| | | invoiceorder1, |
| | | '潍城现代门诊部', |
| | | '0011000001k1K9ZAAU', |
| | | '', |
| | | '[{"check": true,"esd": {"Id": "a2K0l000000x1KXEAY","Order_ForHospital__c": "0011000001k1K9ZAAU","Name": "DB-FY2024-04-Z316244","Outbound_Date__c": "2023-06-09","ShipmentAccount__c": "青岛盈海医院","Shipment_total_amount__c": 848,"RrturnPro_total_amount__c": 0,"Total_Invoiced_Procount__c": 0,"InvoiceNotPro_total_amount__c": 848,"InvoiceNotPro_money__c": 848, "Invoice_total_amount__c": 0,"Billed_Status__c": "还没开票","Order_ForHospital__r": {"Name": "青岛盈海医院","Id": "0011000001k1K9ZAAU"}},"needInvoiceCount": 0,"oldCheck": false,"Id": "a2K0l000000x1KXEAY"},{"check": false,"esd": {"Id": "a2K0l000000x1KXEAY","Order_ForHospital__c": "0011000001k1K9ZAAU","Name": "DB-FY2024-04-Z316244","Outbound_Date__c": "2023-06-09","ShipmentAccount__c": "青岛盈海医院","Shipment_total_amount__c": 848,"RrturnPro_total_amount__c": 0,"Total_Invoiced_Procount__c": 0,"InvoiceNotPro_total_amount__c": 848,"InvoiceNotPro_money__c": 848,"Invoice_total_amount__c": 0,"Billed_Status__c": "还没开票","Order_ForHospital__r": {"Name": "青岛盈海医院","Id": "0011000001k1K9ZAAU"}},"needInvoiceCount": 0,"oldCheck": false}]', |
| | | '', |
| | | invoiceorder1.Id, |
| | | acc.Id, |
| | | 'ET', |
| | | '', |
| | | '[{"check": false,"esd": {"Id": "a2K0l000000x1KXEAY","Order_ForHospital__c": "0011000001k1K9ZAAU","Name": "DB-FY2024-04-Z316244","Outbound_Date__c": "2023-06-09","ShipmentAccount__c": "青岛盈海医院","Shipment_total_amount__c": 848,"RrturnPro_total_amount__c": 0,"Total_Invoiced_Procount__c": 0,"InvoiceNotPro_total_amount__c": 848,"InvoiceNotPro_money__c": 848, "Invoice_total_amount__c": 0,"Billed_Status__c": "还没开票","Order_ForHospital__r": {"Name": "青岛盈海医院","Id": "0011000001k1K9ZAAU"}},"needInvoiceCount": 0,"oldCheck": false,"Id": "a2K0l000000x1KXEAY"}]' |
| | | ); |
| | | // LexConInvoiceViewController.save(invoiceorder1,'潍城现代门诊部','0011000001k1K9ZAAU','','[{"check": false,"esd": {"Id": "a2K0l000000x1KXEAY","Order_ForHospital__c": "0011000001k1K9ZAAU","Name": "DB-FY2024-04-Z316244","Outbound_Date__c": "2023-06-09","ShipmentAccount__c": "青岛盈海医院","Shipment_total_amount__c": 848,"RrturnPro_total_amount__c": 0,"Total_Invoiced_Procount__c": 0,"InvoiceNotPro_total_amount__c": 848,"InvoiceNotPro_money__c": 848, "Invoice_total_amount__c": 0,"Billed_Status__c": "还没开票","Order_ForHospital__r": {"Name": "青岛盈海医院","Id": "0011000001k1K9ZAAU"}},"needInvoiceCount": 0,"oldCheck": false,"Id": "a2K0l000000x1KXEAY"}]','',invoiceorder1.Id,myAccount1.Id,'ET','','[{"check": false,"esd": {"Id": "a2K0l000000x1KXEAY","Order_ForHospital__c": "0011000001k1K9ZAAU","Name": "DB-FY2024-04-Z316244","Outbound_Date__c": "2023-06-09","ShipmentAccount__c": "青岛盈海医院","Shipment_total_amount__c": 848,"RrturnPro_total_amount__c": 0,"Total_Invoiced_Procount__c": 0,"InvoiceNotPro_total_amount__c": 848,"InvoiceNotPro_money__c": 848, "Invoice_total_amount__c": 0,"Billed_Status__c": "还没开票","Order_ForHospital__r": {"Name": "青岛盈海医院","Id": "0011000001k1K9ZAAU"}},"needInvoiceCount": 0,"oldCheck": false,"Id": "a2K0l000000x1KXEAY"}]'); |
| | | } |
| | | } |
| | | } |
| force-app/main/default/classes/LexConInvoiceViewControllerTest.cls-meta.xml
force-app/main/default/classes/LexConInvoicedetailsController.cls
force-app/main/default/classes/LexConInvoicedetailsControllerTest.cls
force-app/main/default/classes/LexConInvoicedetailsControllerTest.cls-meta.xml
force-app/main/default/classes/LexConsumableAccountController.cls
force-app/main/default/classes/LexConsumableAccountControllerTest.cls
force-app/main/default/classes/LexConsumableAccountControllerTest.cls-meta.xml
force-app/main/default/classes/LexConsumableAccountInfoControllerTest.cls
force-app/main/default/classes/LexConsumableAccountInfoControllerTest.cls-meta.xml
force-app/main/default/classes/LexConsumableAccountSOQL.cls
force-app/main/default/classes/LexConsumableAccountSOQLTest.cls
force-app/main/default/classes/LexConsumableAccountSOQLTest.cls-meta.xml
force-app/main/default/classes/LexConsumableController.cls
force-app/main/default/classes/LexConsumableControllerTest.cls
force-app/main/default/classes/LexConsumableControllerTest.cls-meta.xml
force-app/main/default/classes/LexConsumableGoodsInfo.cls
force-app/main/default/classes/LexConsumableGoodsInfoTest.cls
force-app/main/default/classes/LexConsumableGoodsInfoTest.cls-meta.xml
force-app/main/default/classes/LexConsumableOrderManageController.cls
force-app/main/default/classes/LexConsumableOrderManageControllerTest.cls
force-app/main/default/classes/LexConsumableOrderManageControllerTest.cls-meta.xml
force-app/main/default/classes/LexInventoryController.cls
force-app/main/default/classes/LexInventoryControllerTest.cls
force-app/main/default/classes/LexInventoryControllerTest.cls-meta.xml
force-app/main/default/classes/LexInventoryListController.cls
force-app/main/default/classes/LexInventoryListControllerTest.cls
force-app/main/default/classes/LexInventoryListControllerTest.cls-meta.xml
force-app/main/default/classes/LexInventoryViewController.cls
force-app/main/default/classes/LexInventoryViewControllerTest.cls
force-app/main/default/classes/LexInventoryViewControllerTest.cls-meta.xml
force-app/main/default/classes/LexLicenceReminderControllerTest.cls
force-app/main/default/classes/LexLicenceReminderControllerTest.cls-meta.xml
force-app/main/default/classes/LexNewAndEditBasePIPLController.cls
force-app/main/default/classes/LexNewAndEditBasePIPLController.cls-meta.xml
force-app/main/default/classes/LexNewAndEditContactPIPLController.cls
force-app/main/default/classes/LexNewAndEditContactPIPLController.cls-meta.xml
force-app/main/default/classes/LexOutboundorderImportController.cls
force-app/main/default/classes/LexOutboundorderImportControllerTest.cls
force-app/main/default/classes/LexOutboundorderImportControllerTest.cls-meta.xml
force-app/main/default/classes/LexOverdueStockController.cls
force-app/main/default/classes/LexOverdueStockControllerTest.cls
force-app/main/default/classes/LexOverdueStockControllerTest.cls-meta.xml
force-app/main/default/classes/LexProductLimitEditControllerTest.cls
force-app/main/default/classes/LexProductLimitEditControllerTest.cls-meta.xml
force-app/main/default/classes/LexRemoveBoxControllerTest.cls
force-app/main/default/classes/LexRemoveBoxControllerTest.cls-meta.xml
force-app/main/default/classes/LexSaleAndDeliveryControllerTest.cls
force-app/main/default/classes/LexSaleAndDeliveryControllerTest.cls-meta.xml
force-app/main/default/classes/LexSaleOrderController.cls
force-app/main/default/classes/LexSaleOrderControllerTest.cls
force-app/main/default/classes/LexSaleOrderControllerTest.cls-meta.xml
force-app/main/default/classes/LexSearchContractControllerTest.cls
force-app/main/default/classes/LexSearchContractControllerTest.cls-meta.xml
force-app/main/default/classes/LexSearchHospitalControllerTest.cls
force-app/main/default/classes/LexSearchHospitalControllerTest.cls-meta.xml
force-app/main/default/classes/LexSummonsCreatController.cls
force-app/main/default/classes/LexSummonsCreatControllerTest.cls
force-app/main/default/classes/LexSummonsCreatControllerTest.cls-meta.xml
force-app/main/default/classes/LexTopPageControllerTest.cls
force-app/main/default/classes/LexTopPageControllerTest.cls-meta.xml
force-app/main/default/classes/LexUpAccountProLimit.cls
force-app/main/default/classes/LexUpAccountProLimitControllerTest.cls
force-app/main/default/classes/LexUpAccountProLimitControllerTest.cls-meta.xml
force-app/main/default/classes/LexUtilityTest.cls
force-app/main/default/classes/LexUtilityTest.cls-meta.xml
force-app/main/default/classes/LightningUtil.cls
force-app/main/default/classes/LookupSearchResultTest.cls
force-app/main/default/classes/LookupSearchResultTest.cls-meta.xml
force-app/main/default/classes/MetaDataUtility.cls
force-app/main/default/classes/NewAndEditLeadController.cls
force-app/main/default/classes/NewAndEditLeadControllerTest.cls
force-app/main/default/classes/Product2Handler.cls
force-app/main/default/classes/RentalApplyEquipmentSetDetailHandler.cls
force-app/main/default/classes/ResponseBodyLWCTest.cls
force-app/main/default/classes/ResponseBodyLWCTest.cls-meta.xml
force-app/main/default/classes/WeeklyReportCmp.cls
force-app/main/default/classes/lexSearchAgencyHospitalControllerTest.cls
force-app/main/default/classes/lexSearchAgencyHospitalControllerTest.cls-meta.xml
force-app/main/default/contentassets/OlympusCommunityLoginBG.asset
force-app/main/default/contentassets/OlympusCommunityLoginBG.asset-meta.xml
force-app/main/default/contentassets/OlympusCommunityLogo.asset
force-app/main/default/contentassets/OlympusCommunityLogo.asset-meta.xml
force-app/main/default/dashboards/ConsumableSalesDashboard.dashboardFolder-meta.xml
force-app/main/default/dashboards/ConsumableSalesDashboard/ezyQWhsDlQfrUPdIMqUmGsdMeWiYAH2.dashboard-meta.xml
force-app/main/default/dashboards/Consumable_Dashboard/ezyQWhsDlQfrUPdIMqUmGsdMeWiYAH.dashboard-meta.xml (deleted)
force-app/main/default/dashboards/LEX.dashboardFolder-meta.xml (deleted)
force-app/main/default/experiences/Consumable1/brandingSets/partnerCentral.json
force-app/main/default/experiences/Consumable1/config/consumable系统.json
force-app/main/default/experiences/Consumable1/config/languages.json
force-app/main/default/experiences/Consumable1/config/loginAppPage.json
force-app/main/default/experiences/Consumable1/config/mainAppPage.json
force-app/main/default/experiences/Consumable1/routes/accountManagement.json
force-app/main/default/experiences/Consumable1/routes/cICList.json
force-app/main/default/experiences/Consumable1/routes/cICRelatedList.json
force-app/main/default/experiences/Consumable1/routes/cICリスト.json
force-app/main/default/experiences/Consumable1/routes/cIC関連リスト.json
force-app/main/default/experiences/Consumable1/routes/campaignList.json
force-app/main/default/experiences/Consumable1/routes/caseDetail.json
force-app/main/default/experiences/Consumable1/routes/checkPassword.json
force-app/main/default/experiences/Consumable1/routes/contactSupport.json
force-app/main/default/experiences/Consumable1/routes/createRecord.json
force-app/main/default/experiences/Consumable1/routes/dashboardDetail.json
force-app/main/default/experiences/Consumable1/routes/dashboardList.json
force-app/main/default/experiences/Consumable1/routes/error.json
force-app/main/default/experiences/Consumable1/routes/feedDetail.json
force-app/main/default/experiences/Consumable1/routes/fileDetail.json
force-app/main/default/experiences/Consumable1/routes/fileList.json
force-app/main/default/experiences/Consumable1/routes/flow.json
force-app/main/default/experiences/Consumable1/routes/forgotPassword.json
force-app/main/default/experiences/Consumable1/routes/groupDetail.json
force-app/main/default/experiences/Consumable1/routes/groupList.json
force-app/main/default/experiences/Consumable1/routes/home.json
force-app/main/default/experiences/Consumable1/routes/lexAgencyInfo.json
force-app/main/default/experiences/Consumable1/routes/lexArriveGoods.json
force-app/main/default/experiences/Consumable1/routes/lexArriveGoodsMain.json
force-app/main/default/experiences/Consumable1/routes/lexArriveGsDetails.json
force-app/main/default/experiences/Consumable1/routes/lexCancelRemoveBox.json
force-app/main/default/experiences/Consumable1/routes/lexConInvoiceView.json
force-app/main/default/experiences/Consumable1/routes/lexConsumable.json
force-app/main/default/experiences/Consumable1/routes/lexConsumableAccount.json
force-app/main/default/experiences/Consumable1/routes/lexConsumableAccountInfoPrint.json
force-app/main/default/experiences/Consumable1/routes/lexConsumableOrderManage.json
force-app/main/default/experiences/Consumable1/routes/lexInventory.json
force-app/main/default/experiences/Consumable1/routes/lexInventoryView.json
force-app/main/default/experiences/Consumable1/routes/lexOutboundorderImport.json
force-app/main/default/experiences/Consumable1/routes/lexOverdueStock.json
force-app/main/default/experiences/Consumable1/routes/lexProductLimitEdit.json
force-app/main/default/experiences/Consumable1/routes/lexRemoveBox.json
force-app/main/default/experiences/Consumable1/routes/lexSaleAndDelivery.json
force-app/main/default/experiences/Consumable1/routes/lexSummonsCreat.json
force-app/main/default/experiences/Consumable1/routes/lexTopPage.json
force-app/main/default/experiences/Consumable1/routes/login.json
force-app/main/default/experiences/Consumable1/routes/loginError.json
force-app/main/default/experiences/Consumable1/routes/mDFAndCoop.json
force-app/main/default/experiences/Consumable1/routes/messages.json
force-app/main/default/experiences/Consumable1/routes/myAccount.json
force-app/main/default/experiences/Consumable1/routes/questionDetail.json
force-app/main/default/experiences/Consumable1/routes/quipDocsRelatedList.json
force-app/main/default/experiences/Consumable1/routes/recordDetail.json
force-app/main/default/experiences/Consumable1/routes/recordList.json
force-app/main/default/experiences/Consumable1/routes/register.json
force-app/main/default/experiences/Consumable1/routes/relatedRecordList.json
force-app/main/default/experiences/Consumable1/routes/reportBuilder.json
force-app/main/default/experiences/Consumable1/routes/reportDetail.json
force-app/main/default/experiences/Consumable1/routes/reportList.json
force-app/main/default/experiences/Consumable1/routes/resources.json
force-app/main/default/experiences/Consumable1/routes/search.json
force-app/main/default/experiences/Consumable1/routes/streamDetail.json
force-app/main/default/experiences/Consumable1/routes/streamList.json
force-app/main/default/experiences/Consumable1/routes/topicCatalog.json
force-app/main/default/experiences/Consumable1/routes/topicDetail.json
force-app/main/default/experiences/Consumable1/routes/userProfile.json
force-app/main/default/experiences/Consumable1/routes/userSettings.json
force-app/main/default/experiences/Consumable1/routes/仪表板RelatedList.json
force-app/main/default/experiences/Consumable1/routes/仪表板関連リスト.json
force-app/main/default/experiences/Consumable1/routes/学会・培训Detail.json
force-app/main/default/experiences/Consumable1/routes/学会・培训RelatedList.json
force-app/main/default/experiences/Consumable1/routes/学会・培训詳細.json
force-app/main/default/experiences/Consumable1/routes/学会・培训関連リスト.json
force-app/main/default/experiences/Consumable1/routes/小组RelatedList.json
force-app/main/default/experiences/Consumable1/routes/小组関連リスト.json
force-app/main/default/experiences/Consumable1/routes/库存.json
force-app/main/default/experiences/Consumable1/routes/库存上下限编辑.json
force-app/main/default/experiences/Consumable1/routes/报表RelatedList.json
force-app/main/default/experiences/Consumable1/routes/报表関連リスト.json
force-app/main/default/experiences/Consumable1/routes/文件RelatedList.json
force-app/main/default/experiences/Consumable1/routes/文件関連リスト.json
force-app/main/default/experiences/Consumable1/routes/新建消耗品订单.json
force-app/main/default/experiences/Consumable1/routes/流RelatedList.json
force-app/main/default/experiences/Consumable1/routes/流関連リスト.json
force-app/main/default/experiences/Consumable1/routes/消耗品订单列表.json
force-app/main/default/experiences/Consumable1/routes/消耗品订单相关列表.json
force-app/main/default/experiences/Consumable1/routes/消耗品订单详细信息.json
force-app/main/default/experiences/Consumable1/routes/用户List.json
force-app/main/default/experiences/Consumable1/routes/用户RelatedList.json
force-app/main/default/experiences/Consumable1/routes/用户リスト.json
force-app/main/default/experiences/Consumable1/routes/用户関連リスト.json
force-app/main/default/experiences/Consumable1/themes/partnerCentral.json
force-app/main/default/experiences/Consumable1/variations/defaultCustomComponentPropertiesComponentProperties.json
force-app/main/default/experiences/Consumable1/variations/defaultNavigationMenuComponentProperties.json
force-app/main/default/experiences/Consumable1/views/accountManagement.json
force-app/main/default/experiences/Consumable1/views/cICList.json
force-app/main/default/experiences/Consumable1/views/cICRelatedList.json
force-app/main/default/experiences/Consumable1/views/cICリスト.json
force-app/main/default/experiences/Consumable1/views/cIC関連リスト.json
force-app/main/default/experiences/Consumable1/views/campaignList.json
force-app/main/default/experiences/Consumable1/views/caseDetail.json
force-app/main/default/experiences/Consumable1/views/checkPassword.json
force-app/main/default/experiences/Consumable1/views/consumableDetailFix.json
force-app/main/default/experiences/Consumable1/views/contactSupport.json
force-app/main/default/experiences/Consumable1/views/createRecord.json
force-app/main/default/experiences/Consumable1/views/dashboardDetail.json
force-app/main/default/experiences/Consumable1/views/dashboardList.json
force-app/main/default/experiences/Consumable1/views/error.json
force-app/main/default/experiences/Consumable1/views/feedDetail.json
force-app/main/default/experiences/Consumable1/views/fileDetail.json
force-app/main/default/experiences/Consumable1/views/fileList.json
force-app/main/default/experiences/Consumable1/views/flow.json
force-app/main/default/experiences/Consumable1/views/forgotPassword.json
force-app/main/default/experiences/Consumable1/views/groupDetail.json
force-app/main/default/experiences/Consumable1/views/groupList.json
force-app/main/default/experiences/Consumable1/views/home.json
force-app/main/default/experiences/Consumable1/views/homeFlexible.json
force-app/main/default/experiences/Consumable1/views/lexAgencyInfo.json
force-app/main/default/experiences/Consumable1/views/lexArriveGoods.json
force-app/main/default/experiences/Consumable1/views/lexArriveGoodsMain.json
force-app/main/default/experiences/Consumable1/views/lexArriveGsDetails.json
force-app/main/default/experiences/Consumable1/views/lexCancelRemoveBox.json
force-app/main/default/experiences/Consumable1/views/lexConInvoiceView.json
force-app/main/default/experiences/Consumable1/views/lexConsumable.json
force-app/main/default/experiences/Consumable1/views/lexConsumableAccount.json
force-app/main/default/experiences/Consumable1/views/lexConsumableAccountInfoPrint.json
force-app/main/default/experiences/Consumable1/views/lexConsumableOrderManage.json
force-app/main/default/experiences/Consumable1/views/lexInventory.json
force-app/main/default/experiences/Consumable1/views/lexInventoryView.json
force-app/main/default/experiences/Consumable1/views/lexOutboundorderImport.json
force-app/main/default/experiences/Consumable1/views/lexOverdueStock.json
force-app/main/default/experiences/Consumable1/views/lexProductLimitEdit.json
force-app/main/default/experiences/Consumable1/views/lexRemoveBox.json
force-app/main/default/experiences/Consumable1/views/lexSaleAndDelivery.json
force-app/main/default/experiences/Consumable1/views/lexSummonsCreat.json
force-app/main/default/experiences/Consumable1/views/lexTopPage.json
force-app/main/default/experiences/Consumable1/views/login.json
force-app/main/default/experiences/Consumable1/views/loginError.json
force-app/main/default/experiences/Consumable1/views/mDFAndCoop.json
force-app/main/default/experiences/Consumable1/views/messages.json
force-app/main/default/experiences/Consumable1/views/myAccount.json
force-app/main/default/experiences/Consumable1/views/neworder.json
force-app/main/default/experiences/Consumable1/views/questionDetail.json
force-app/main/default/experiences/Consumable1/views/quipDocsRelatedList.json
force-app/main/default/experiences/Consumable1/views/recordDetail.json
force-app/main/default/experiences/Consumable1/views/recordList.json
force-app/main/default/experiences/Consumable1/views/register.json
force-app/main/default/experiences/Consumable1/views/relatedRecordList.json
force-app/main/default/experiences/Consumable1/views/reportBuilder.json
force-app/main/default/experiences/Consumable1/views/reportDetail.json
force-app/main/default/experiences/Consumable1/views/reportList.json
force-app/main/default/experiences/Consumable1/views/resources.json
force-app/main/default/experiences/Consumable1/views/search.json
force-app/main/default/experiences/Consumable1/views/streamDetail.json
force-app/main/default/experiences/Consumable1/views/streamList.json
force-app/main/default/experiences/Consumable1/views/topicCatalog.json
force-app/main/default/experiences/Consumable1/views/topicDetail.json
force-app/main/default/experiences/Consumable1/views/userProfile.json
force-app/main/default/experiences/Consumable1/views/userSettings.json
force-app/main/default/experiences/Consumable1/views/仪表板RelatedList.json
force-app/main/default/experiences/Consumable1/views/仪表板関連リスト.json
force-app/main/default/experiences/Consumable1/views/学会・培训Detail.json
force-app/main/default/experiences/Consumable1/views/学会・培训RelatedList.json
force-app/main/default/experiences/Consumable1/views/学会・培训詳細.json
force-app/main/default/experiences/Consumable1/views/学会・培训関連リスト.json
force-app/main/default/experiences/Consumable1/views/小组RelatedList.json
force-app/main/default/experiences/Consumable1/views/小组関連リスト.json
force-app/main/default/experiences/Consumable1/views/库存.json
force-app/main/default/experiences/Consumable1/views/库存上下限编辑.json
force-app/main/default/experiences/Consumable1/views/报表RelatedList.json
force-app/main/default/experiences/Consumable1/views/报表関連リスト.json
force-app/main/default/experiences/Consumable1/views/文件RelatedList.json
force-app/main/default/experiences/Consumable1/views/文件関連リスト.json
force-app/main/default/experiences/Consumable1/views/流RelatedList.json
force-app/main/default/experiences/Consumable1/views/流関連リスト.json
force-app/main/default/experiences/Consumable1/views/消耗品订单列表.json
force-app/main/default/experiences/Consumable1/views/消耗品订单相关列表.json
force-app/main/default/experiences/Consumable1/views/消耗品订单详细信息.json
force-app/main/default/experiences/Consumable1/views/用户List.json
force-app/main/default/experiences/Consumable1/views/用户RelatedList.json
force-app/main/default/experiences/Consumable1/views/用户リスト.json
force-app/main/default/experiences/Consumable1/views/用户関連リスト.json
force-app/main/default/experiences/Consumable_21.site-meta.xml
force-app/main/default/experiences/Consumable_21/brandingSets/partnerCentral.json
force-app/main/default/experiences/Consumable_21/config/consumable系统2.json
force-app/main/default/experiences/Consumable_21/config/languages.json
force-app/main/default/experiences/Consumable_21/config/loginAppPage.json
force-app/main/default/experiences/Consumable_21/config/mainAppPage.json
force-app/main/default/experiences/Consumable_21/routes/accountManagement.json
force-app/main/default/experiences/Consumable_21/routes/cICList.json
force-app/main/default/experiences/Consumable_21/routes/cICRelatedList.json
force-app/main/default/experiences/Consumable_21/routes/campaignDetail.json
force-app/main/default/experiences/Consumable_21/routes/campaignList.json
force-app/main/default/experiences/Consumable_21/routes/campaignRelatedList.json
force-app/main/default/experiences/Consumable_21/routes/caseDetail.json
force-app/main/default/experiences/Consumable_21/routes/checkPassword.json
force-app/main/default/experiences/Consumable_21/routes/contactSupport.json
force-app/main/default/experiences/Consumable_21/routes/createRecord.json
force-app/main/default/experiences/Consumable_21/routes/dashboardDetail.json
force-app/main/default/experiences/Consumable_21/routes/dashboardList.json
force-app/main/default/experiences/Consumable_21/routes/dashboardRelatedList.json
force-app/main/default/experiences/Consumable_21/routes/error.json
force-app/main/default/experiences/Consumable_21/routes/feedDetail.json
force-app/main/default/experiences/Consumable_21/routes/fileDetail.json
force-app/main/default/experiences/Consumable_21/routes/fileList.json
force-app/main/default/experiences/Consumable_21/routes/fileRelatedList.json
force-app/main/default/experiences/Consumable_21/routes/flow.json
force-app/main/default/experiences/Consumable_21/routes/forgotPassword.json
force-app/main/default/experiences/Consumable_21/routes/groupDetail.json
force-app/main/default/experiences/Consumable_21/routes/groupList.json
force-app/main/default/experiences/Consumable_21/routes/groupRelatedList.json
force-app/main/default/experiences/Consumable_21/routes/home.json
force-app/main/default/experiences/Consumable_21/routes/lexAgencyInfo.json
force-app/main/default/experiences/Consumable_21/routes/lexArriveGoods.json
force-app/main/default/experiences/Consumable_21/routes/lexArriveGoodsMain.json
force-app/main/default/experiences/Consumable_21/routes/lexArriveGsDetails.json
force-app/main/default/experiences/Consumable_21/routes/lexCancelRemoveBox.json
force-app/main/default/experiences/Consumable_21/routes/lexConInvoiceView.json
force-app/main/default/experiences/Consumable_21/routes/lexConsumable.json
force-app/main/default/experiences/Consumable_21/routes/lexConsumableAccount.json
force-app/main/default/experiences/Consumable_21/routes/lexConsumableAccountInfoPrint.json
force-app/main/default/experiences/Consumable_21/routes/lexConsumableOrderManage.json
force-app/main/default/experiences/Consumable_21/routes/lexInventory.json
force-app/main/default/experiences/Consumable_21/routes/lexInventoryView.json
force-app/main/default/experiences/Consumable_21/routes/lexOutboundorderImport.json
force-app/main/default/experiences/Consumable_21/routes/lexOverdueStock.json
force-app/main/default/experiences/Consumable_21/routes/lexProductLimitEdit.json
force-app/main/default/experiences/Consumable_21/routes/lexRemoveBox.json
force-app/main/default/experiences/Consumable_21/routes/lexSaleAndDelivery.json
force-app/main/default/experiences/Consumable_21/routes/lexSummonsCreat.json
force-app/main/default/experiences/Consumable_21/routes/lexTopPage.json
force-app/main/default/experiences/Consumable_21/routes/login.json
force-app/main/default/experiences/Consumable_21/routes/loginError.json
force-app/main/default/experiences/Consumable_21/routes/mDFAndCoop.json
force-app/main/default/experiences/Consumable_21/routes/messages.json
force-app/main/default/experiences/Consumable_21/routes/myAccount.json
force-app/main/default/experiences/Consumable_21/routes/questionDetail.json
force-app/main/default/experiences/Consumable_21/routes/quipDocsRelatedList.json
force-app/main/default/experiences/Consumable_21/routes/recordDetail.json
force-app/main/default/experiences/Consumable_21/routes/recordList.json
force-app/main/default/experiences/Consumable_21/routes/register.json
force-app/main/default/experiences/Consumable_21/routes/relatedRecordList.json
force-app/main/default/experiences/Consumable_21/routes/reportBuilder.json
force-app/main/default/experiences/Consumable_21/routes/reportDetail.json
force-app/main/default/experiences/Consumable_21/routes/reportList.json
force-app/main/default/experiences/Consumable_21/routes/reportRelatedList.json
force-app/main/default/experiences/Consumable_21/routes/resources.json
force-app/main/default/experiences/Consumable_21/routes/search.json
force-app/main/default/experiences/Consumable_21/routes/streamDetail.json
force-app/main/default/experiences/Consumable_21/routes/streamList.json
force-app/main/default/experiences/Consumable_21/routes/streamRelatedList.json
force-app/main/default/experiences/Consumable_21/routes/topicCatalog.json
force-app/main/default/experiences/Consumable_21/routes/topicDetail.json
force-app/main/default/experiences/Consumable_21/routes/userList.json
force-app/main/default/experiences/Consumable_21/routes/userProfile.json
force-app/main/default/experiences/Consumable_21/routes/userRelatedList.json
force-app/main/default/experiences/Consumable_21/routes/userSettings.json
force-app/main/default/experiences/Consumable_21/routes/消耗品订单Detail.json
force-app/main/default/experiences/Consumable_21/routes/消耗品订单List.json
force-app/main/default/experiences/Consumable_21/routes/消耗品订单RelatedList.json
force-app/main/default/experiences/Consumable_21/themes/partnerCentral.json
force-app/main/default/experiences/Consumable_21/variations/defaultNavigationMenuComponentProperties.json
force-app/main/default/experiences/Consumable_21/views/accountManagement.json
force-app/main/default/experiences/Consumable_21/views/cICList.json
force-app/main/default/experiences/Consumable_21/views/cICRelatedList.json
force-app/main/default/experiences/Consumable_21/views/campaignDetail.json
force-app/main/default/experiences/Consumable_21/views/campaignList.json
force-app/main/default/experiences/Consumable_21/views/campaignRelatedList.json
force-app/main/default/experiences/Consumable_21/views/caseDetail.json
force-app/main/default/experiences/Consumable_21/views/checkPassword.json
force-app/main/default/experiences/Consumable_21/views/consumableDetailFix.json
force-app/main/default/experiences/Consumable_21/views/contactSupport.json
force-app/main/default/experiences/Consumable_21/views/createRecord.json
force-app/main/default/experiences/Consumable_21/views/dashboardDetail.json
force-app/main/default/experiences/Consumable_21/views/dashboardList.json
force-app/main/default/experiences/Consumable_21/views/dashboardRelatedList.json
force-app/main/default/experiences/Consumable_21/views/error.json
force-app/main/default/experiences/Consumable_21/views/feedDetail.json
force-app/main/default/experiences/Consumable_21/views/fileDetail.json
force-app/main/default/experiences/Consumable_21/views/fileList.json
force-app/main/default/experiences/Consumable_21/views/fileRelatedList.json
force-app/main/default/experiences/Consumable_21/views/flow.json
force-app/main/default/experiences/Consumable_21/views/forgotPassword.json
force-app/main/default/experiences/Consumable_21/views/groupDetail.json
force-app/main/default/experiences/Consumable_21/views/groupList.json
force-app/main/default/experiences/Consumable_21/views/groupRelatedList.json
force-app/main/default/experiences/Consumable_21/views/home.json
force-app/main/default/experiences/Consumable_21/views/homeFlexible.json
force-app/main/default/experiences/Consumable_21/views/lexAgencyInfo.json
force-app/main/default/experiences/Consumable_21/views/lexArriveGoods.json
force-app/main/default/experiences/Consumable_21/views/lexArriveGoodsMain.json
force-app/main/default/experiences/Consumable_21/views/lexArriveGsDetails.json
force-app/main/default/experiences/Consumable_21/views/lexCancelRemoveBox.json
force-app/main/default/experiences/Consumable_21/views/lexConInvoiceView.json
force-app/main/default/experiences/Consumable_21/views/lexConsumable.json
force-app/main/default/experiences/Consumable_21/views/lexConsumableAccount.json
force-app/main/default/experiences/Consumable_21/views/lexConsumableAccountInfoPrint.json
force-app/main/default/experiences/Consumable_21/views/lexConsumableOrderManage.json
force-app/main/default/experiences/Consumable_21/views/lexInventory.json
force-app/main/default/experiences/Consumable_21/views/lexInventoryView.json
force-app/main/default/experiences/Consumable_21/views/lexOutboundorderImport.json
force-app/main/default/experiences/Consumable_21/views/lexOverdueStock.json
force-app/main/default/experiences/Consumable_21/views/lexProductLimitEdit.json
force-app/main/default/experiences/Consumable_21/views/lexRemoveBox.json
force-app/main/default/experiences/Consumable_21/views/lexSaleAndDelivery.json
force-app/main/default/experiences/Consumable_21/views/lexSummonsCreat.json
force-app/main/default/experiences/Consumable_21/views/lexTopPage.json
force-app/main/default/experiences/Consumable_21/views/login.json
force-app/main/default/experiences/Consumable_21/views/loginError.json
force-app/main/default/experiences/Consumable_21/views/mDFAndCoop.json
force-app/main/default/experiences/Consumable_21/views/messages.json
force-app/main/default/experiences/Consumable_21/views/myAccount.json
force-app/main/default/experiences/Consumable_21/views/questionDetail.json
force-app/main/default/experiences/Consumable_21/views/quipDocsRelatedList.json
force-app/main/default/experiences/Consumable_21/views/recordDetail.json
force-app/main/default/experiences/Consumable_21/views/recordList.json
force-app/main/default/experiences/Consumable_21/views/register.json
force-app/main/default/experiences/Consumable_21/views/relatedRecordList.json
force-app/main/default/experiences/Consumable_21/views/reportBuilder.json
force-app/main/default/experiences/Consumable_21/views/reportDetail.json
force-app/main/default/experiences/Consumable_21/views/reportList.json
force-app/main/default/experiences/Consumable_21/views/reportRelatedList.json
force-app/main/default/experiences/Consumable_21/views/resources.json
force-app/main/default/experiences/Consumable_21/views/search.json
force-app/main/default/experiences/Consumable_21/views/streamDetail.json
force-app/main/default/experiences/Consumable_21/views/streamList.json
force-app/main/default/experiences/Consumable_21/views/streamRelatedList.json
force-app/main/default/experiences/Consumable_21/views/topicCatalog.json
force-app/main/default/experiences/Consumable_21/views/topicDetail.json
force-app/main/default/experiences/Consumable_21/views/userList.json
force-app/main/default/experiences/Consumable_21/views/userProfile.json
force-app/main/default/experiences/Consumable_21/views/userRelatedList.json
force-app/main/default/experiences/Consumable_21/views/userSettings.json
force-app/main/default/experiences/Consumable_21/views/消耗品订单Detail.json
force-app/main/default/experiences/Consumable_21/views/消耗品订单List.json
force-app/main/default/experiences/Consumable_21/views/消耗品订单RelatedList.json
force-app/main/default/experiences/Partner21.site-meta.xml
force-app/main/default/experiences/Partner21/brandingSets/partnerCentral.json
force-app/main/default/experiences/Partner21/config/languages.json
force-app/main/default/experiences/Partner21/config/loginAppPage.json
force-app/main/default/experiences/Partner21/config/mainAppPage.json
force-app/main/default/experiences/Partner21/config/partner2.json
force-app/main/default/experiences/Partner21/routes/accountManagement.json
force-app/main/default/experiences/Partner21/routes/cICリスト.json
force-app/main/default/experiences/Partner21/routes/cIC関連リスト.json
force-app/main/default/experiences/Partner21/routes/campaignList.json
force-app/main/default/experiences/Partner21/routes/caseDetail.json
force-app/main/default/experiences/Partner21/routes/checkPassword.json
force-app/main/default/experiences/Partner21/routes/contactSupport.json
force-app/main/default/experiences/Partner21/routes/createRecord.json
force-app/main/default/experiences/Partner21/routes/dashboardDetail.json
force-app/main/default/experiences/Partner21/routes/dashboardList.json
force-app/main/default/experiences/Partner21/routes/error.json
force-app/main/default/experiences/Partner21/routes/feedDetail.json
force-app/main/default/experiences/Partner21/routes/fileDetail.json
force-app/main/default/experiences/Partner21/routes/fileList.json
force-app/main/default/experiences/Partner21/routes/flow.json
force-app/main/default/experiences/Partner21/routes/forgotPassword.json
force-app/main/default/experiences/Partner21/routes/groupDetail.json
force-app/main/default/experiences/Partner21/routes/groupList.json
force-app/main/default/experiences/Partner21/routes/home.json
force-app/main/default/experiences/Partner21/routes/login.json
force-app/main/default/experiences/Partner21/routes/loginError.json
force-app/main/default/experiences/Partner21/routes/mDFAndCoop.json
force-app/main/default/experiences/Partner21/routes/messages.json
force-app/main/default/experiences/Partner21/routes/myAccount.json
force-app/main/default/experiences/Partner21/routes/questionDetail.json
force-app/main/default/experiences/Partner21/routes/quipDocsRelatedList.json
force-app/main/default/experiences/Partner21/routes/recordDetail.json
force-app/main/default/experiences/Partner21/routes/recordList.json
force-app/main/default/experiences/Partner21/routes/register.json
force-app/main/default/experiences/Partner21/routes/relatedRecordList.json
force-app/main/default/experiences/Partner21/routes/reportBuilder.json
force-app/main/default/experiences/Partner21/routes/reportDetail.json
force-app/main/default/experiences/Partner21/routes/reportList.json
force-app/main/default/experiences/Partner21/routes/resources.json
force-app/main/default/experiences/Partner21/routes/search.json
force-app/main/default/experiences/Partner21/routes/streamDetail.json
force-app/main/default/experiences/Partner21/routes/streamList.json
force-app/main/default/experiences/Partner21/routes/topicCatalog.json
force-app/main/default/experiences/Partner21/routes/topicDetail.json
force-app/main/default/experiences/Partner21/routes/userProfile.json
force-app/main/default/experiences/Partner21/routes/userSettings.json
force-app/main/default/experiences/Partner21/routes/仪表板関連リスト.json
force-app/main/default/experiences/Partner21/routes/学会・培训詳細.json
force-app/main/default/experiences/Partner21/routes/学会・培训関連リスト.json
force-app/main/default/experiences/Partner21/routes/小组関連リスト.json
force-app/main/default/experiences/Partner21/routes/报表関連リスト.json
force-app/main/default/experiences/Partner21/routes/文件関連リスト.json
force-app/main/default/experiences/Partner21/routes/流関連リスト.json
force-app/main/default/experiences/Partner21/routes/用户リスト.json
force-app/main/default/experiences/Partner21/routes/用户関連リスト.json
force-app/main/default/experiences/Partner21/themes/partnerCentral.json
force-app/main/default/experiences/Partner21/views/accountManagement.json
force-app/main/default/experiences/Partner21/views/cICリスト.json
force-app/main/default/experiences/Partner21/views/cIC関連リスト.json
force-app/main/default/experiences/Partner21/views/campaignList.json
force-app/main/default/experiences/Partner21/views/caseDetail.json
force-app/main/default/experiences/Partner21/views/checkPassword.json
force-app/main/default/experiences/Partner21/views/contactSupport.json
force-app/main/default/experiences/Partner21/views/createRecord.json
force-app/main/default/experiences/Partner21/views/dashboardDetail.json
force-app/main/default/experiences/Partner21/views/dashboardList.json
force-app/main/default/experiences/Partner21/views/error.json
force-app/main/default/experiences/Partner21/views/feedDetail.json
force-app/main/default/experiences/Partner21/views/fileDetail.json
force-app/main/default/experiences/Partner21/views/fileList.json
force-app/main/default/experiences/Partner21/views/flow.json
force-app/main/default/experiences/Partner21/views/forgotPassword.json
force-app/main/default/experiences/Partner21/views/groupDetail.json
force-app/main/default/experiences/Partner21/views/groupList.json
force-app/main/default/experiences/Partner21/views/home.json
force-app/main/default/experiences/Partner21/views/login.json
force-app/main/default/experiences/Partner21/views/loginError.json
force-app/main/default/experiences/Partner21/views/mDFAndCoop.json
force-app/main/default/experiences/Partner21/views/messages.json
force-app/main/default/experiences/Partner21/views/myAccount.json
force-app/main/default/experiences/Partner21/views/questionDetail.json
force-app/main/default/experiences/Partner21/views/quipDocsRelatedList.json
force-app/main/default/experiences/Partner21/views/recordDetail.json
force-app/main/default/experiences/Partner21/views/recordList.json
force-app/main/default/experiences/Partner21/views/register.json
force-app/main/default/experiences/Partner21/views/relatedRecordList.json
force-app/main/default/experiences/Partner21/views/reportBuilder.json
force-app/main/default/experiences/Partner21/views/reportDetail.json
force-app/main/default/experiences/Partner21/views/reportList.json
force-app/main/default/experiences/Partner21/views/resources.json
force-app/main/default/experiences/Partner21/views/search.json
force-app/main/default/experiences/Partner21/views/streamDetail.json
force-app/main/default/experiences/Partner21/views/streamList.json
force-app/main/default/experiences/Partner21/views/topicCatalog.json
force-app/main/default/experiences/Partner21/views/topicDetail.json
force-app/main/default/experiences/Partner21/views/userProfile.json
force-app/main/default/experiences/Partner21/views/userSettings.json
force-app/main/default/experiences/Partner21/views/仪表板関連リスト.json
force-app/main/default/experiences/Partner21/views/学会・培训詳細.json
force-app/main/default/experiences/Partner21/views/学会・培训関連リスト.json
force-app/main/default/experiences/Partner21/views/小组関連リスト.json
force-app/main/default/experiences/Partner21/views/报表関連リスト.json
force-app/main/default/experiences/Partner21/views/文件関連リスト.json
force-app/main/default/experiences/Partner21/views/流関連リスト.json
force-app/main/default/experiences/Partner21/views/用户リスト.json
force-app/main/default/experiences/Partner21/views/用户関連リスト.json
force-app/main/default/experiences/Site3.site-meta.xml
force-app/main/default/experiences/Site3/brandingSets/buildYourOwn.json
force-app/main/default/experiences/Site3/config/languages.json
force-app/main/default/experiences/Site3/config/loginAppPage.json
force-app/main/default/experiences/Site3/config/mainAppPage.json
force-app/main/default/experiences/Site3/config/电子签收系统.json
force-app/main/default/experiences/Site3/routes/checkPassword.json
force-app/main/default/experiences/Site3/routes/createRecord.json
force-app/main/default/experiences/Site3/routes/error.json
force-app/main/default/experiences/Site3/routes/forgotPassword.json
force-app/main/default/experiences/Site3/routes/home.json
force-app/main/default/experiences/Site3/routes/login.json
force-app/main/default/experiences/Site3/routes/loginError.json
force-app/main/default/experiences/Site3/routes/recordDetail.json
force-app/main/default/experiences/Site3/routes/recordList.json
force-app/main/default/experiences/Site3/routes/register.json
force-app/main/default/experiences/Site3/routes/relatedRecordList.json
force-app/main/default/experiences/Site3/routes/search.json
force-app/main/default/experiences/Site3/routes/奥林巴斯电子签收系统.json
force-app/main/default/experiences/Site3/routes/进口单证明细.json
force-app/main/default/experiences/Site3/themes/buildYourOwn.json
force-app/main/default/experiences/Site3/views/checkPassword.json
force-app/main/default/experiences/Site3/views/createRecord.json
force-app/main/default/experiences/Site3/views/error.json
force-app/main/default/experiences/Site3/views/forgotPassword.json
force-app/main/default/experiences/Site3/views/home.json
force-app/main/default/experiences/Site3/views/login.json
force-app/main/default/experiences/Site3/views/loginError.json
force-app/main/default/experiences/Site3/views/recordDetail.json
force-app/main/default/experiences/Site3/views/recordList.json
force-app/main/default/experiences/Site3/views/register.json
force-app/main/default/experiences/Site3/views/relatedRecordList.json
force-app/main/default/experiences/Site3/views/search.json
force-app/main/default/experiences/Site3/views/奥林巴斯电子签收系统.json
force-app/main/default/experiences/Site3/views/进口单证明细.json
force-app/main/default/labels/CustomLabels.labels-meta.xml
force-app/main/default/lwc/customAccountUrlComp/customAccountUrlComp.html
force-app/main/default/lwc/customAccountUrlComp/customAccountUrlComp.js
force-app/main/default/lwc/customAccountUrlComp/customAccountUrlComp.js-meta.xml
force-app/main/default/lwc/customDeleteReasonComp/customDeleteReasonComp.html
force-app/main/default/lwc/customDeleteReasonComp/customDeleteReasonComp.js
force-app/main/default/lwc/customDeleteReasonComp/customDeleteReasonComp.js-meta.xml
force-app/main/default/lwc/customMydrComp/customMydrComp.html
force-app/main/default/lwc/customMydrComp/customMydrComp.js
force-app/main/default/lwc/customMydrComp/customMydrComp.js-meta.xml
force-app/main/default/lwc/customShipmentNumberComp/customShipmentNumberComp.html
force-app/main/default/lwc/customShipmentNumberComp/customShipmentNumberComp.js
force-app/main/default/lwc/customShippingUnitPriceComp/customShippingUnitPriceComp.html
force-app/main/default/lwc/customShippingUnitPriceComp/customShippingUnitPriceComp.js
force-app/main/default/lwc/lexAgencyInfo/lexAgencyInfo.css
force-app/main/default/lwc/lexAgencyInfo/lexAgencyInfo.html
force-app/main/default/lwc/lexArriveGoods/lexArriveGoods.css
force-app/main/default/lwc/lexArriveGoods/lexArriveGoods.html
force-app/main/default/lwc/lexArriveGoods/lexArriveGoods.js
force-app/main/default/lwc/lexArriveGoodsMain/lexArriveGoodsMain.html
force-app/main/default/lwc/lexArriveGoodsMain/lexArriveGoodsMain.js
force-app/main/default/lwc/lexArriveGsDetails/lexArriveGsDetails.html
force-app/main/default/lwc/lexArriveGsDetails/lexArriveGsDetails.js
force-app/main/default/lwc/lexCancelRemoveBox/lexCancelRemoveBox.html
force-app/main/default/lwc/lexCancelRemoveBox/lexCancelRemoveBox.js
force-app/main/default/lwc/lexConInvoiceView/lexConInvoiceView.css
force-app/main/default/lwc/lexConInvoiceView/lexConInvoiceView.html
force-app/main/default/lwc/lexConInvoiceView/lexConInvoiceView.js
force-app/main/default/lwc/lexConsumable/lexConsumable.html
force-app/main/default/lwc/lexConsumable/lexConsumable.js
force-app/main/default/lwc/lexConsumableAccount/lexConsumableAccount.html
force-app/main/default/lwc/lexConsumableAccount/lexConsumableAccount.js
force-app/main/default/lwc/lexConsumableOrderManage/lexConsumableOrderManage.html
force-app/main/default/lwc/lexCssUtility/lexCssUtility.css
force-app/main/default/lwc/lexCustomDiffReasonComp/lexCustomDiffReasonComp.html
force-app/main/default/lwc/lexCustomInventoryColor/lexCustomInventoryColor.html
force-app/main/default/lwc/lexCustomLightningDatatable/customMyDrCheckBox.html
force-app/main/default/lwc/lexCustomLightningDatatable/customShipmentNumber.html
force-app/main/default/lwc/lexCustomLightningDatatable/customaccountUrl.html
force-app/main/default/lwc/lexCustomLightningDatatable/customdeleteReason.html
force-app/main/default/lwc/lexCustomLightningDatatable/lexCustomLightningDatatable.js
force-app/main/default/lwc/lexInventory/lexInventory.css
force-app/main/default/lwc/lexInventory/lexInventory.html
force-app/main/default/lwc/lexInventory/lexInventory.js
force-app/main/default/lwc/lexLookup/lexLookup.html
force-app/main/default/lwc/lexNewAndEditContactPIPL/lexNewAndEditContactPIPL.css
force-app/main/default/lwc/lexNewAndEditContactPIPL/lexNewAndEditContactPIPL.html
force-app/main/default/lwc/lexNewAndEditContactPIPL/lexNewAndEditContactPIPL.js
force-app/main/default/lwc/lexNewAndEditContactPIPL/lexNewAndEditContactPIPL.js-meta.xml
force-app/main/default/lwc/lexOutboundorderImport/lexOutboundorderImport.html
force-app/main/default/lwc/lexOutboundorderImport/lexOutboundorderImport.js
force-app/main/default/lwc/lexOverdueStock/lexOverdueStock.html
force-app/main/default/lwc/lexOverdueStock/lexOverdueStock.js
force-app/main/default/lwc/lexProductLimitEdit/lexProductLimitEdit.html
force-app/main/default/lwc/lexProductLimitEdit/lexProductLimitEdit.js
force-app/main/default/lwc/lexRemoveBox/lexRemoveBox.html
force-app/main/default/lwc/lexRemoveBox/lexRemoveBox.js
force-app/main/default/lwc/lexSaleAndDelivery/lexSaleAndDelivery.html
force-app/main/default/lwc/lexSaleAndDelivery/lexSaleAndDelivery.js
force-app/main/default/lwc/lexSummonsCreat/lexSummonsCreat.css
force-app/main/default/lwc/lexSummonsCreat/lexSummonsCreat.html
force-app/main/default/lwc/lexSummonsCreat/lexSummonsCreat.js
force-app/main/default/lwc/lexTopPage/lexTopPage.html
force-app/main/default/lwc/lexTopPage/lexTopPage.js
force-app/main/default/lwc/lexinventoryViewLWC/lexinventoryViewLWC.css
force-app/main/default/lwc/lexinventoryViewLWC/lexinventoryViewLWC.html
force-app/main/default/lwc/lexinventoryViewLWC/lexinventoryViewLWC.js
force-app/main/default/networks/Consumable系统.network-meta.xml
force-app/main/default/networks/Consumable系统2.network-meta.xml
force-app/main/default/networks/Partner Sales.network-meta.xml
force-app/main/default/networks/Partner2.network-meta.xml
force-app/main/default/networks/消耗品管理系统.network-meta.xml
force-app/main/default/networks/电子签收系统.network-meta.xml
force-app/main/default/pages/DealerInquiryModifyState.page
force-app/main/default/pages/DealerInquiryModifyState.page-meta.xml
force-app/main/default/pages/OFSInsReportLayout.page
force-app/main/default/pages/StraightBackAddress.page
force-app/main/default/pages/StraightBackAddress.page-meta.xml
force-app/main/default/permissionsets/Community_Consumable_LEX_PS.permissionset-meta.xml
force-app/main/default/permissionsets/Community_LEX_PS.permissionset-meta.xml
force-app/main/default/reports/ConsumableSalesReport.reportFolder-meta.xml
force-app/main/default/reports/ConsumableSalesReport/Consumable_Outstock_Invoice_Lex.report-meta.xml
force-app/main/default/reports/ConsumableSalesReport/CurrentMonthSalesRankByAccount.report-meta.xml
force-app/main/default/reports/ConsumableSalesReport/CurrentMonthSalesRankByProduct.report-meta.xml
force-app/main/default/reports/ConsumableSalesReport/LastMonthSalesByAccount1.report-meta.xml
force-app/main/default/reports/ConsumableSalesReport/LastMonthSalesByProduct.report-meta.xml
force-app/main/default/reports/ConsumableSalesReport/Report_Outbound_Lex.report-meta.xml
force-app/main/default/reports/ConsumableSalesReport/WeeklyReportForAgency.report-meta.xml
force-app/main/default/reports/Consumable_KC/CurrentMonthSalesRankByAccount.report-meta.xml (deleted)
force-app/main/default/reports/Consumable_KC/CurrentMonthSalesRankByProduct.report-meta.xml (deleted)
force-app/main/default/reports/Consumable_KC/LastMonthSalesByAccount1.report-meta.xml (deleted)
force-app/main/default/reports/Consumable_KC/LastMonthSalesByProduct.report-meta.xml (deleted)
force-app/main/default/reports/Consumable_KC/WeeklyReportForAgency.report-meta.xml (deleted)
force-app/main/default/reports/Store_Custom_ReportLink/Consumable_Outstock_Invoice_Lex.report-meta.xml (deleted)
force-app/main/default/reports/Store_Custom_ReportLink/Report_Outbound_Lex.report-meta.xml (deleted)
force-app/main/default/sites/Consumable.site-meta.xml
force-app/main/default/sites/Consumable_2.site-meta.xml
force-app/main/default/sites/Partner2.site-meta.xml
force-app/main/default/sites/Partner_Sales.site-meta.xml
force-app/main/default/sites/Site.site-meta.xml
force-app/main/default/sites/Site2.site-meta.xml
force-app/main/default/sites/extsurvey.site-meta.xml
force-app/main/default/staticresources/lexdatatable.css
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/ContentDocumentLink.trigger
force-app/main/default/triggers/ContentDocumentTrigger.trigger
manifest/LEXC00basecmp.xml
manifest/LEXC01packagelexcommunitynew.xml
manifest/LEXC02packagelexcommunityupdate.xml
manifest/LEXC03Dahsboard.xml
manifest/LEXC03report.xml
manifest/LEXC03reportanddashboard.xml (deleted)
manifest/LEXC04packagecommdeploy.xml |