李彤
2022-09-14 c6e651446bf356eb44197053e3d57bf5a0d9a50c
XLIU-CHY4KW
2个文件已修改
449 ■■■■ 已修改文件
force-app/main/default/classes/NewQuoteIraiController.cls 344 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/NewQuoteIraiControllerTest.cls 105 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/NewQuoteIraiController.cls
@@ -5,6 +5,7 @@
    public Integer quoteEntryMaxLine {get; private set;}
    public Id quoId {get;set;}
    public String oppid;
    public String leadid;
    public Boolean productStatusUpdated {get;set;}               // 状態更新、{!$Label.Status_Update} を押下したかどうか
    public Boolean changedAfterPrint {get;set;}                  // true の場合、画面に confirm メッセージが表示します。quoIdを新しいinsert。判定はjsにて実施
@@ -12,6 +13,7 @@
    public Boolean filg { get; set; }
    public Integer flglastbuy { get; set; }
    public String errorProductmodel { get; set; }
    public Boolean is_changed_opp { get; set; }
    //lastbuy  2022/3/10 fy end
    public String excel_text {get;set;}
@@ -42,6 +44,11 @@
    public User loginUser {get;set;}
    
    private Map<Id, Product2> prd2LatestValMap;
    //obsap 新增经销商1字段 fy satrt
    public Decimal Salesprofit1 { get; set; }
    public Decimal SalesCalculation1 { get; set; }
    public Boolean displayFlg { get; set; }
    //obsap 新增经销商1字段 fy end
    // CHAN-BJQ4VZ 精琢技术 2019/12/11 Start
    public QuoteBean qb { get; set; }
@@ -50,7 +57,24 @@
    // 经销商询价报价委托 2020-02-28 update by vivek start
    public Map<Id,Id> userProfileId;
    // 经销商询价报价委托 2020-02-28 update by vivek end
    // obsap对应 obsap人员检索 2022-04-27 ssm start
    public class UserSelect {
        public String user_name { get; set; }
        public User user { get; set; }
        public UserSelect(User u) {
            this.user_name = u.Alias;
            this.user = u;
        }
    }
    public String obsap_mail { get; set; }
    //obsap obsap人员检索 fy satrt
    // public String selectObsapUsers { get; set; }
    public List<SelectOption> ObsapUsers { get; set; }
    public boolean obsflag { get; set; }
    //obsap obsap人员检索 fy end
    // obsap对应 obsap人员检索 2022-04-27 ssm end
    public NewQuoteIraiController() {
        quoteEntryMaxLine = Integer.valueOf(System.Label.QuoteEntryMaxLine);
        baseUrl = URL.getSalesforceBaseUrl().toExternalForm();
@@ -69,13 +93,48 @@
    public PageReference init() {
        system.debug('============start init==============');
        obsap_mail = System.Label.OBSAP_Group_Mail;
        errorflg = false;
        pdf_button = true;
        obsflag = false;
        //loginUser
        loginUser = [select Id, ProfileId, State_Hospital__c from User where Id = :UserInfo.getUserId()];
        loginUser = [select Id, ProfileId, State_Hospital__c, Salesdepartment_text__c from User where Id = :UserInfo.getUserId()];
        if (loginUser.ProfileId == System.Label.ProfileId_SystemAdmin) {
            pdf_button = false;
        }
        String obsap_Login_area=System.Label.obsap_Login_area;
        List<String> obsaplogareaList =obsap_Login_area.split(',');
        if(obsaplogareaList.contains(loginUser.Salesdepartment_text__c)){
            obsflag = true;
        }
        // obsap对应 obsap人员检索 2022-04-27 ssm start
        // if (loginUser != null && String.isNotBlank(loginUser.Salesdepartment_text__c) && (loginUser.Salesdepartment_text__c == '5.华东' || loginUser.Salesdepartment_text__c == '6.华南')) {
        //fy 20220512
        if (loginUser != null && String.isNotBlank(loginUser.Salesdepartment_text__c) && obsflag) {
            // obsflag = true;
            // 这里做了个比较2的修改
            // 由于客户不想给公共小组的每个人都创建一个任务,只能用队列
            // 这样才能实现一个任务,小组成员都能看到,谁完成都算完成
            // 又由于需要发送邮件,工作流里发送邮件只能到公共小组,不能发给队列
            // 所以把公共小组当作队列成员扔进去
            // 这里只能取两次才能取到小组里的某一个人
            String obsap_group_id = System.Label.obsap_group_opp;
            List<GroupMember> queue =  [SELECT Id, GroupId, UserOrGroupId FROM GroupMember where GroupId = :obsap_group_id];
            system.debug('queue++'+queue);
            if (queue != null && queue.size() > 0) {
                List<GroupMember> members =  [SELECT Id, GroupId, UserOrGroupId FROM GroupMember where GroupId = :queue[0].UserOrGroupId];
                GroupMember member = members != null && members.size() > 0 ? members[0] : new GroupMember();
                User obsap_user = [SELECT Id, Name, Alias FROM User WHERE Id =: member.UserOrGroupId];
                ObsapUsers = new List<SelectOption>();
                // ObsapUsers.add(new SelectOption('',''));
                // for (User u : obsaps) {
                //     ObsapUsers.add(new SelectOption(u.Id,u.Alias));
                // }
                ObsapUsers.add(new SelectOption(obsap_user.Id, 'OBSAP小组'));
            }
        }
        // obsap对应 obsap人员检索 2022-04-27 ssm end
        //Quote
        quo = new QuoteIrai__c();
        // CHAN-BJQ4VZ 精琢技术 2019/12/11 Start
@@ -91,7 +150,10 @@
        }
        
        // 潜在客户id
        String leadid = System.currentPageReference().getParameters().get('leadid');
        // String leadid = System.currentPageReference().getParameters().get('leadid');
        //SWAG-CF589P【委托】【P:OBSAP】报价委托相关新需求评估 fy start
        leadid = System.currentPageReference().getParameters().get('leadid');
        //SWAG-CF589P【委托】【P:OBSAP】报价委托相关新需求评估 fy end
        // 经销商询价报价委托 2020-02-28 update by vivek start
        // 经销商询价
        String agencyoppid = System.currentPageReference().getParameters().get('agencyoppid');
@@ -104,22 +166,27 @@
        // 询价id
        oppid = System.currentPageReference().getParameters().get('oppid');
        //lastbuy  2022/3/10 fy start
        QuoteIrai__c quoteiraiobj = new QuoteIrai__c();
        if(oppid==null&&tenderid==null&&quoId!=null&&leadid==null&&agencyoppid==null){
            quoteiraiobj = [select id,Note__c from QuoteIrai__c where id=:quoId];
            //XLIU-CFE8M7 【委托】【P-OBSAP】报价委托任务改善 fy  Noteplus__c
            quoteiraiobj = [select id,Note__c,Noteplus__c from QuoteIrai__c where id=:quoId];
            if(quoteiraiobj.Note__c!=null){
                String[] quosub=quoteiraiobj.Note__c.split('/');
                oppid=quosub[quosub.size()-1];
                //XLIU-CFE8M7 【委托】【P-OBSAP】报价委托任务改善 fy start
                oppid=quosub[quosub.size()-1].substring(0,15);
                //XLIU-CFE8M7 【委托】【P-OBSAP】报价委托任务改善 fy end
                // oppid=quosub[quosub.size()-1];
            }
        }
        //lastbuy  2022/3/10 fy start
        system.debug('oppid:++++'+oppid);
        // 报价id
        String oppquoid = System.currentPageReference().getParameters().get('oppquoid');
        //将报价委托的币种与外贸币种一致 防止后续外贸有需要用USD判断显示的地方 精琢技术 wql 2021/01/06 start
        List<Opportunity> oppList = [Select id,CurrencyIsoCode from Opportunity where id =:oppid];
        List<Opportunity> oppList = [Select id,CurrencyIsoCode, If_Account_Change__c from Opportunity where id =:oppid];
        // lastbuy变更用户询价判断
        // 如果取得了询价,则取询价上的是否变更用户,否则false
        is_changed_opp = oppList != null && oppList.size() > 0 ? oppList[0].If_Account_Change__c : false;
        //Quote
        Integer i;
        if (quoId==null){
@@ -147,6 +214,9 @@
            if (String.isNotBlank(oppid)) {
                quo.Note__c = Opportunity.sObjectType.getDescribe().getLabel() + ':' + baseUrl + '/' + oppid;
            }
            //XLIU-CFE8M7 【委托】【P-OBSAP】报价委托任务改善 fy start
            quo.Noteplus__c = quo.Note__c;
            //XLIU-CFE8M7 【委托】【P-OBSAP】报价委托任务改善 fy end
            //新規リストコントローラの取得
            if (activities==null){
                activities = new List<QELine>();
@@ -333,9 +403,11 @@
            // 招投标报价委托 2021-06-21 update by gzw end
        }else{
            // CHAN-BJQ4VZ 精琢技术 2019/12/11 Start
            List<QuoteIrai__c> quoList =
                [ SELECT Id,Name,Cancel_Decide__c,Agency_Hospital_Link__c,CreatedDate, PriceRefreshDate__c,Quote_Print_Date__c,
                        Quote_Date__c,QuoteToName__c,Quote_Expiration_Date__c,Quote_Comment__c,Tender_information__c,
            //XLIU-CFE8M7 【委托】【P-OBSAP】报价委托任务改善 fy  Noteplus__c
            //SWAG-CF589P【委托】【P:OBSAP】报价委托相关新需求评估 fy Lead__c,Opportunity__c,
            List<QuoteIrai__c> quoList = //obsap 新增经销商1字段 fy satrt Agency1_entrust__c ,
                [ SELECT Id,Name,Cancel_Decide__c,Agency_Hospital_Link__c,CreatedDate, PriceRefreshDate__c,Quote_Print_Date__c,Agency1_entrust__c,
                        Quote_Date__c,QuoteToName__c,Quote_Expiration_Date__c,Quote_Comment__c,Tender_information__c,Noteplus__c,Lead__c,Opportunity__c,
                        TOTAL__c,Discount__c,Pricing__c,Preferential_Trading_Price__c,Contract__c,LastIraiUser__c,MultiYearWarrantyTotalPrice__c,QuoteTotal_Page__c,Estimation_List_Price__c,
                        Print_HP_Name__c,Account__c,IraiUser__c,IraiSubject__c,CurrencyIsoCode,IraiName__c,QuoteIrai_Status__c,QuoteProportion__c,Note__c,IraiComment__c
                        FROM QuoteIrai__c Where Id =:quoId];
@@ -426,9 +498,20 @@
        if (quo.Quote_Expiration_Date__c==null){
            quo.Quote_Expiration_Date__c = Date.today() + 30;
        }
        //--Savebutton
        Save_button=true;
        //XLIU-CFE8M7 【委托】【P-OBSAP】报价委托任务改善 fy start
        // if( quo.Note__c!=''){
        if(String.isNotBlank(quo.Note__c)){
            system.debug('===111==='+quo.Note__c.split('\r\n'));
            List<String> str=quo.Note__c.split('\r\n');
            if(str.size()==1){
                quo.Note__c='';
            }else{
                quo.Note__c=str[1];
            }
        }
        //XLIU-CFE8M7 【委托】【P-OBSAP】报价委托任务改善 fy end
        system.debug('===000==='+quo);
        return null;
     }
@@ -939,8 +1022,31 @@
                }
                i += 1;
            }
            if (!String.isBlank(quo.Note__c)) {
                description += '\r\n' + quo.Note__c;
            //obsap 新增经销商1字段 fy start
            if (!String.isBlank(quo.Agency1_entrust__c)) {
                Account  quoteAeName = [select Id,Name from Account where Id =:quo.Agency1_entrust__c];
                description += '\r\n' + '第一经销商名称' + ':' + quoteAeName.Name;
            }
            if (quo.QuoteProportion__c!=null) {
                description += '\r\n' + '报价比例' + ':' + quo.QuoteProportion__c;
            }
            if (!String.isBlank(quo.IraiComment__c)) {
                description += '\r\n' + '报价备注' + ':' + quo.IraiComment__c;
            }
            //obsap 新增经销商1字段 fy end
            //XLIU-CFE8M7 【委托】【P-OBSAP】报价委托任务改善 fy start
            String node;
            if(!String.isBlank(quo.Note__c)){
                node=quo.Noteplus__c+'\r\n'+quo.Note__c;
            }else{
                node=quo.Noteplus__c;
            }
            //XLIU-CFE8M7 【委托】【P-OBSAP】报价委托任务改善 fy end
            if (!String.isBlank(node)) {
                //XLIU-CFE8M7 【委托】【P-OBSAP】报价委托任务改善 fy start
                description += '\r\n' + node;
                //XLIU-CFE8M7 【委托】【P-OBSAP】报价委托任务改善 fy end
                // description += '\r\n' + quo.Note__c;
            }
            if (!String.isBlank(quo.Account__c)) {
                description += '\r\n' + Account.sObjectType.getDescribe().getLabel() + ':' + baseUrl + '/' + quo.Account__c;
@@ -950,15 +1056,51 @@
                description += '\r\n' + Agency_Hospital_Link__c.sObjectType.getDescribe().getLabel() + ':' + baseUrl + '/' + quo.Agency_Hospital_Link__c;
            }
            // 经销商询价报价委托 2020-02-28 update by vivek end
            //obsap 新增经销商1字段 fy start
            if (!String.isBlank(quo.Agency1_entrust__c)) {
                description += '\r\n' + '第一经销商' + ':' + baseUrl + '/' + quo.Agency1_entrust__c;
            }
            //obsap 新增经销商1字段 fy end
            // 招投标报价委托 2020-06-21 update by gzw start
            // if (!String.isBlank(quo.Tender_information__c)) {
            //     description += '\r\n' + Tender_information__c.sObjectType.getDescribe().getLabel() + ':' + baseUrl + '/' + quo.Tender_information__c;
            // }
            // 招投标报价委托 2020-06-21 update by gzw end
            // obsap 委托人按公共小组区分,检索数量增加 2022-05-09 ssm start
            List<String> irai_userids = new List<String>();
            // if (loginUser != null && String.isNotBlank(loginUser.Salesdepartment_text__c) && (loginUser.Salesdepartment_text__c == '5.华东' || loginUser.Salesdepartment_text__c == '6.华南')) {
            //fy 20220512
            if (loginUser != null && String.isNotBlank(loginUser.Salesdepartment_text__c) && obsflag) {
                // obsflag = true;
                // String obsap_group_id = System.Label.obsap_group_opp;
                // List<GroupMember> members =  [SELECT Id, GroupId, UserOrGroupId FROM GroupMember where GroupId = :obsap_group_id];
                // system.debug('members++'+members);
                // if (members != null && members.size() > 0) {
                //     for (GroupMember member : members) {
                        // irai_userids.add(member.UserOrGroupId);
                //     }
                // }
                irai_userids.add(System.Label.obsap_group_opp);
            }else{
                irai_userids.add(quo.IraiUser__c);
            }
            // 把委托上绑定的人加到list里
            //20220512 lt add
            // Map<String,String> iuMap = new Map<String,String>();
            // for(String iu : irai_userids){
            //     iuMap.put(iu,iu);
            // }
            // if(!iuMap.containsKey(quo.IraiUser__c)){
            //     irai_userids.add(quo.IraiUser__c);
            // }
            //irai_userids.add(quo.IraiUser__c);
            // Task[] tasks = [select Id,Subject,OwnerId,Description,ActivityDate,QuoteIraiId__c
            //                 from Task
            //                 where QuoteIraiId__c = :quoId and OwnerId = :quo.IraiUser__c];
            Task[] tasks = [select Id,Subject,OwnerId,Description,ActivityDate,QuoteIraiId__c
                            from Task
                            where QuoteIraiId__c = :quoId and OwnerId = :quo.IraiUser__c];
                            where QuoteIraiId__c = :quoId and OwnerId in :irai_userids];
            String todoSubject = '报价委托:' + quo.IraiSubject__c;
            if (!String.isBlank(quo.IraiName__c)) {
                todoSubject += ', ' + quo.IraiName__c;
@@ -969,30 +1111,74 @@
            if (quo.QuoteProportion__c != null) {
                todoSubject += ', ' + quo.QuoteProportion__c + '%';
            }
            String taskid = '';
            // String taskid = '';
            // 改成对多人的
            // if (tasks.size() > 0) {
            //     Task task = tasks[0];
            //     task.Subject = todoSubject;
            //     task.Description = description;
            //     task.ActivityDate = Date.today();
            //     Database.DMLOptions dmlo = new Database.DMLOptions();
            //     dmlo.EmailHeader.triggerUserEmail = true;
            //     Database.update(task, dmlo);
            //     taskid = task.Id;
            // } else {
            //     Task task = new Task();
            //     task.Subject = todoSubject;
            //     task.OwnerId = quo.IraiUser__c;
            //     task.Description = description;
            //     task.ActivityDate = Date.today();
            //     task.QuoteIraiId__c = quoId;
            //     Database.DMLOptions dmlo = new Database.DMLOptions();
            //     dmlo.EmailHeader.triggerUserEmail = true;
            //     Database.insert(task, dmlo);
            //     taskid = task.Id;
            // }
            List<String> new_task_users = new List<String>();
            if (tasks.size() > 0) {
                Task task = tasks[0];
                task.Subject = todoSubject;
                task.Description = description;
                task.ActivityDate = Date.today();
                List<String> task_users = new List<String>();
                for (Task task : tasks) {
                    task_users.add(task.OwnerId);
                    task.Subject = todoSubject;
                    task.Description = description;
                    task.ActivityDate = Date.today();
                }
                Database.DMLOptions dmlo = new Database.DMLOptions();
                dmlo.EmailHeader.triggerUserEmail = true;
                Database.update(task, dmlo);
                taskid = task.Id;
                Database.update(tasks, dmlo);
                // update tasks;
                for (String uid : irai_userids) {
                    if (!task_users.contains(uid)) {
                        new_task_users.add(uid);
                    }
                }
            } else {
                Task task = new Task();
                task.Subject = todoSubject;
                task.OwnerId = quo.IraiUser__c;
                task.Description = description;
                task.ActivityDate = Date.today();
                task.QuoteIraiId__c = quoId;
                new_task_users = irai_userids;
            }
            if (new_task_users.size() > 0) {
                List<Task> new_tasks = new List<Task>();
                for (String uid : new_task_users) {
                    Task new_task = new Task();
                    new_task.Subject = todoSubject;
                    new_task.OwnerId = uid;
                    new_task.Description = description;
                    new_task.ActivityDate = Date.today();
                    new_task.QuoteIraiId__c = quoId;
                    new_tasks.add(new_task);
                }
                system.debug('new_tasks++'+new_tasks);
                Database.DMLOptions dmlo = new Database.DMLOptions();
                dmlo.EmailHeader.triggerUserEmail = true;
                Database.insert(task, dmlo);
                taskid = task.Id;
                Database.insert(new_tasks, dmlo);
                // insert new_tasks;
            }
            // obsap 委托人按公共小组区分,检索数量增加 2022-05-09 ssm end
            
            User u = [select Id,Name from user where Id = :quo.IraiUser__c];
            quo.LastIraiUser__c = u.Name;
@@ -1003,8 +1189,10 @@
            update qi;
            if(String.isNotBlank(quoId)){
                // CHAN-BJQ4VZ 精琢技术 2019/12/11 Start
                quo =[ SELECT Id,Name,Cancel_Decide__c,CreatedDate, PriceRefreshDate__c,Quote_Print_Date__c,
                        Quote_Date__c,QuoteToName__c,Quote_Expiration_Date__c,Quote_Comment__c,Tender_information__c,
            //XLIU-CFE8M7 【委托】【P-OBSAP】报价委托任务改善 fy  Noteplus__c
            //SWAG-CF589P【委托】【P:OBSAP】报价委托相关新需求评估 fy Lead__c,Opportunity__c,
                quo =[ SELECT Id,Name,Cancel_Decide__c,CreatedDate, PriceRefreshDate__c,Quote_Print_Date__c,//obsap 新增经销商1字段 fy satrt Agency1_entrust__c,
                        Quote_Date__c,QuoteToName__c,Quote_Expiration_Date__c,Quote_Comment__c,Tender_information__c,Agency1_entrust__c,Noteplus__c,Lead__c,Opportunity__c,
                        TOTAL__c,Discount__c,Pricing__c,Preferential_Trading_Price__c,Contract__c,LastIraiUser__c,MultiYearWarrantyTotalPrice__c,QuoteTotal_Page__c,Estimation_List_Price__c,
                        Print_HP_Name__c,Account__c,Agency_Hospital_Link__c,IraiUser__c,IraiSubject__c,CurrencyIsoCode,IraiName__c,QuoteIrai_Status__c,QuoteProportion__c,Note__c,IraiComment__c
                        FROM QuoteIrai__c Where Id =:quoId];
@@ -1019,7 +1207,29 @@
            // 招投标报价委托 2020-06-21 update by gzw end
            errorflg = true;
            errorMessage = '邮件发送完成。';
            //XLIU-CHY4KW 20220907 lt start  --- 报价委托发送邮件成功之后 反向更新意向  报价委托字段为1
            Lead lea = new Lead();
            if(String.isNotBlank(leadid)){
                lea.Id = leadid;
                lea.OfferToEntrust__c = 1;
                update lea;
            }
            //XLIU-CHY4KW 20220907 lt end
            pageArrange();
            //XLIU-CFE8M7 【委托】【P-OBSAP】报价委托任务改善 fy start
            // if(quo.Note__c!=''){
            if(String.isNotBlank(quo.Note__c)){
                system.debug('===555==='+quo.Note__c.split('\r\n'));
                List<String> str=quo.Note__c.split('\r\n');
                if(str.size()==1){
                    quo.Note__c='';
                }else{
                    quo.Note__c=str[1];
                }
            }
            //XLIU-CFE8M7 【委托】【P-OBSAP】报价委托任务改善 fy end
            return null;
            //报价委托状态更新  已经委托
        } catch (DmlException de) {
@@ -1038,10 +1248,13 @@
        
        return null;
    }
    public String getoppId(){
        String opptext = null;
        if(String.isNotBlank(quoId)){
            QuoteIrai__c getnote = [ SELECT Id,Name,Note__c FROM QuoteIrai__c Where Id =:quoId];
            //XLIU-CFE8M7 【委托】【P-OBSAP】报价委托任务改善 fy  Noteplus__c
            //SWAG-CF589P【委托】【P:OBSAP】报价委托相关新需求评估 fy Lead__c,Opportunity__c,
            QuoteIrai__c getnote = [ SELECT Id,Name,Note__c,Noteplus__c,Lead__c,Opportunity__c FROM QuoteIrai__c Where Id =:quoId];
            if(String.isNotBlank(getnote.Note__c) && getnote.Note__c.indexOf( 'com/') > 0){
                opptext = getnote.Note__c.SubString(getnote.Note__c.LastIndexOf('/')+1,getnote.Note__c.LastIndexOf('/')+16);
            }
@@ -1176,8 +1389,10 @@
    }
    public boolean dataCheck(){
         //20220310 fy lastbuy start
         if (quoId!=null){
        //20220310 fy lastbuy start
        // 增加变更用户询价判断
        // if (quoId!=null){
        if (String.isNotBlank(this.oppid) && !is_changed_opp){
            if(!ReservedProductVerification()){
                if(flglastbuy==1){
                  errorflg = true;
@@ -1197,7 +1412,7 @@
                //     errormessage =  '该报价委托存在预留产品';
                //     return false;
                // }
              }
            }
        }
      
      //20220310 fy lastbuy end
@@ -1327,8 +1542,10 @@
            q = New QuoteIrai__c();
        }else{
            // CHAN-BJQ4VZ 精琢技术 2019/12/11 Start
            List<QuoteIrai__c> qs = New List<QuoteIrai__c>();
            qs = [select Id,Account__c,Agency_Hospital_Link__c,Name,IraiUser__c,IraiSubject__c,Tender_information__c,
            List<QuoteIrai__c> qs = New List<QuoteIrai__c>();//obsap 新增经销商1字段 fy satrt Agency1_entrust__c,
            //XLIU-CFE8M7 【委托】【P-OBSAP】报价委托任务改善 fy  Noteplus__c
            //SWAG-CF589P【委托】【P:OBSAP】报价委托相关新需求评估 fy Lead__c,Opportunity__c,
            qs = [select Id,Account__c,Agency_Hospital_Link__c,Name,IraiUser__c,IraiSubject__c,Tender_information__c,Agency1_entrust__c,Noteplus__c,Lead__c,Opportunity__c,
                Preferential_Trading_Price__c,Discount__c,Pricing__c,Unit_Price__c,Offer_Amount__c,TOTAL__c,MultiYearWarrantyTotalPrice__c,QuoteTotal_Page__c,Estimation_List_Price__c,
                Contract__c,Print_HP_Name__c,Quote_Expiration_Date__c,Quote_Comment__c,IraiName__c,QuoteIrai_Status__c,QuoteProportion__c,Note__c,IraiComment__c
                From QuoteIrai__c Where Id =:quoId];
@@ -1354,9 +1571,22 @@
        // 招投标报价委托 2020-06-21 update by gzw end
        q.IraiUser__c = quo.IraiUser__c;
        q.IraiName__c = quo.IraiName__c;
        //obsap 新增经销商1字段 fy staty
        q.Agency1_entrust__c = quo.Agency1_entrust__c;
        //obsap 新增经销商1字段 fy staty
        q.QuoteProportion__c = quo.QuoteProportion__c;
        q.CurrencyIsoCode = quo.CurrencyIsoCode;
        q.Note__c = quo.Note__c;
        //XLIU-CFE8M7 【委托】【P-OBSAP】报价委托任务改善 fy start
        q.Noteplus__c=quo.Noteplus__c;
        if(!String.isBlank(quo.Note__c)){
            q.Note__c = quo.Noteplus__c+'\r\n'+quo.Note__c;
        }else {
            q.Note__c = quo.Noteplus__c;
        }
        System.debug('===222==='+quo.Noteplus__c+'  ===333===   '+q.Note__c);
        //XLIU-CFE8M7 【委托】【P-OBSAP】报价委托任务改善 fy end
        // q.Note__c = quo.Note__c;
        q.IraiComment__c = quo.IraiComment__c;
        //----checkbox は印刷直前に保存
        q.Quote_Expiration_Date__c = quo.Quote_Expiration_Date__c;
@@ -1368,15 +1598,19 @@
         q.MultiYearWarrantyTotalPrice__c = qb.MultiYearWarrantyTotalPrice;
         q.QuoteTotal_Page__c = qb.QuoteTotal_Page;
        // CHAN-BJQ4VZ 精琢技术 2019/12/10 END
        //SWAG-CF589P【委托】【P:OBSAP】报价委托相关新需求评估 fy start
        q.Lead__c=leadid;
        q.Opportunity__c=oppid;
        //SWAG-CF589P【委托】【P:OBSAP】报价委托相关新需求评估 fy end
        if (quoId==null){
            insert q;
        }else{
            update q;
        }
        quo =[ SELECT Id,Name,Cancel_Decide__c,CreatedDate, PriceRefreshDate__c,Quote_Print_Date__c,
                    Quote_Date__c,QuoteToName__c,Quote_Expiration_Date__c,Quote_Comment__c,Tender_information__c,
        //XLIU-CFE8M7 【委托】【P-OBSAP】报价委托任务改善 fy  Noteplus__c
        //SWAG-CF589P【委托】【P:OBSAP】报价委托相关新需求评估 fy Lead__c,Opportunity__c,
        quo =[ SELECT Id,Name,Cancel_Decide__c,CreatedDate, PriceRefreshDate__c,Quote_Print_Date__c,//obsap 新增经销商1字段 fy satrt Agency1_entrust__c,
                    Quote_Date__c,QuoteToName__c,Quote_Expiration_Date__c,Quote_Comment__c,Tender_information__c,Agency1_entrust__c,Noteplus__c,Lead__c,Opportunity__c,
                    TOTAL__c,Discount__c,Pricing__c,Preferential_Trading_Price__c,Contract__c,LastIraiUser__c,MultiYearWarrantyTotalPrice__c,QuoteTotal_Page__c,Estimation_List_Price__c,
                    Print_HP_Name__c,Account__c,Agency_Hospital_Link__c,IraiUser__c,IraiSubject__c,CurrencyIsoCode,IraiName__c,QuoteIrai_Status__c,QuoteProportion__c,Note__c,IraiComment__c
                    FROM QuoteIrai__c Where Id =:q.Id];
@@ -1437,7 +1671,18 @@
            quoId = q.Id;
            
        }
        //XLIU-CFE8M7 【委托】【P-OBSAP】报价委托任务改善 fy start
        // if(quo.Note__c!=''){
        if(String.isNotBlank(quo.Note__c)){
            system.debug('===444==='+quo.Note__c.split('\r\n'));
            List<String> str=quo.Note__c.split('\r\n');
            if(str.size()==1){
                quo.Note__c='';
            }else{
                quo.Note__c=str[1];
            }
        }
        //XLIU-CFE8M7 【委托】【P-OBSAP】报价委托任务改善 fy end
        return true;
    }
     //lastbuy  2022/3/10 fy start
@@ -1549,7 +1794,8 @@
    public Decimal QuoteTotal_Page { get; set; }
    //NoDiscount price 合计
    public Decimal MultiYearWarrantyTotalPrice { get; set; }
    //obsap 新增经销商1字段 fy
    public Decimal SalesCalculation1 { get; set; }
    }
    // CHAN-BJQ4VZ 精琢技术 2019/12/11 End
    
force-app/main/default/classes/NewQuoteIraiControllerTest.cls
@@ -342,7 +342,7 @@
        insert myAccount1;
        Product2 product1 = new Product2();
        product1.Name = '00107:高频电极,按钮形,4Fr.,软性';
        product1.SFDA_Status__c = '有効';
        product1.SFDA_Status__c = '失効(再申請中)';
        product1.Manual_Entry__c = false;
        product1.Asset_Model_No__c = '00107';
        product1.ProductCode = '00107';
@@ -367,7 +367,7 @@
        
        Product2 product2 = new Product2();
        product2.Name = '00103:软管接头';
        product2.SFDA_Status__c = '有効';
        product2.SFDA_Status__c = '失効(再申請中)';
        product2.Manual_Entry__c = false;
        product2.Asset_Model_No__c = '00103';
        product2.ProductCode = '00103';
@@ -390,7 +390,7 @@
        // CHAN-BHNBX6 2019/11/25 END
        Product2 product3 = new Product2();
        product3.Name = '00102.1:旋阀,免维护';
        product3.SFDA_Status__c = '有効';
        product3.SFDA_Status__c = '失効(再申請中)';
        product3.Manual_Entry__c = false;
        product3.Asset_Model_No__c = '00102.1';
        product3.ProductCode = '00102.1';
@@ -1008,7 +1008,32 @@
        product2 pro = [select id,SFDA_Status_New__c from product2 where id = :Product1.Id];
        //System.assertEquals('有効', pro.SFDA_Status_New__c);
        //CHAN-BHNBX6 2019/11/26 END
        PageReference page = new PageReference('/apex/NewQuoteIrai?copyid=' + irai.Id);
        StaticParameter.EscapeOppandStaTrigger = true;
        Opportunity opp1 = new Opportunity();
        opp1.Name = 'test';
        opp1.StageName = '引合';
        opp1.CloseDate = Date.today().adddays(1);
        opp1.If_Account_Change__c = false;
        insert opp1;
        Opportunity opp2 = new Opportunity();
        opp2.Name = 'test';
        opp2.StageName = '引合';
        opp2.CloseDate = Date.today().adddays(1);
        opp2.If_Account_Change__c = false;
        insert opp2;
        System.test.startTest();
        LastbuyProduct__c lp = new LastbuyProduct__c();
        lp.InquiryCode__c = opp2.Id;
        lp.ProductName__c = product1.Id;
        lp.LastbuyQuantity__c = 10;
        lp.Name = '*';
        lp.effectiveFLG__c = true;
        insert lp;
        PageReference page = new PageReference('/apex/NewQuoteIrai?copyid=' + irai.Id + '&oppid=' + opp1.Id);
        System.Test.setCurrentPage(page);
        
        NewQuoteIraiController controller = new NewQuoteIraiController();
@@ -1052,8 +1077,8 @@
        
        controller.quoteIrai();
        
        QuoteIrai__c[] irais = [select Id,Note__c, Name, IraiUser__c, IraiSubject__c, CurrencyIsoCode from QuoteIrai__c order where IraiSubject__c = '委托99'];
        QuoteIraiLineItem__c[] items = [select Id, Asset_Model_No__c, SFDA_Status__c, Name__c,Quantity__c, ListPrice__c, ProductCode__c,Product2__c,ServicePrice__c,GuaranteePeriod__c from QuoteIraiLineItem__c where QuoteIrai__c = :irais[0].Id order by Item_Order__c];
        // QuoteIrai__c[] irais = [select Id,Note__c, Name, IraiUser__c, IraiSubject__c, CurrencyIsoCode from QuoteIrai__c order where IraiSubject__c = '委托99'];
        // QuoteIraiLineItem__c[] items = [select Id, Asset_Model_No__c, SFDA_Status__c, Name__c,Quantity__c, ListPrice__c, ProductCode__c,Product2__c,ServicePrice__c,GuaranteePeriod__c from QuoteIraiLineItem__c where QuoteIrai__c = :irais[0].Id order by Item_Order__c];
        
        // System.assertEquals('委托99', irais[0].IraiSubject__c);
        // System.assertEquals(user.Id, irais[0].IraiUser__c);
@@ -1082,18 +1107,13 @@
        // // System.assertEquals(0,items[1].GuaranteePeriod__c);
        // // CHAN-BHNBX6 2019/11/25 END
        
        Task[] tasks = [select Id,Subject,OwnerId,Description,ActivityDate,QuoteIraiId__c
                        from Task where QuoteIraiId__c = :irais[0].Id];
        // Task[] tasks = [select Id,Subject,OwnerId,Description,ActivityDate,QuoteIraiId__c
        //                 from Task where QuoteIraiId__c = :irais[0].Id];
                        
        // System.assertEquals('报价委托:委托99, テスト99, テスト99, 99.00%', tasks[0].Subject);
        // System.assertEquals(user.Id, tasks[0].OwnerId);
        // System.assertEquals(irais[0].Id, tasks[0].QuoteIraiId__c);
        controller.Save();
        Opportunity opp1 = new Opportunity();
        opp1.Name = 'test';
        opp1.StageName = '引合';
        opp1.CloseDate = Date.today().adddays(1);
        insert opp1;
        // controller.Save();
        
        QuoteLineItem[] qlis = [select id,QuoteId,PricebookEntry.Product2Id from QuoteLineItem where PricebookEntry.Product2Id != :null limit 1];
        String str = '';
@@ -1120,7 +1140,7 @@
        System.Test.setCurrentPage(page3);
        NewQuoteIraiController controller3 = new NewQuoteIraiController();
        controller3.init();
        System.test.stopTest();
    }
    //新建报价委托,excel导入明细一条,保存;再excel导入明细三条,委托
@@ -1464,6 +1484,7 @@
        update p2;
        
        controller.Save();
        StaticParameter.EscapeOppandStaTrigger = true;
        Opportunity opp1 = new Opportunity();
        opp1.Name = 'test';
        opp1.StageName = '引合';
@@ -1502,6 +1523,23 @@
    
    //其他单体函数
    static testMethod void test06() {
        User user = new User(Test_staff__c = true);
        user.LastName = '_サンブリッジ';
        user.FirstName = 'う';
        user.Alias = 'う';
        user.Email = 'olympustest03@sunbridge.com';
        user.Username = 'olympustest03@sunbridge.com';
        user.CommunityNickname = 'う';
        user.IsActive = true;
        user.EmailEncodingKey = 'ISO-2022-JP';
        user.TimeZoneSidKey = 'Asia/Tokyo';
        user.LocaleSidKey = 'ja_JP';
        user.LanguageLocaleKey = 'ja';
        user.ProfileId = System.Label.ProfileId_SystemAdmin;
        user.Job_Category__c = '销售推广';
        user.Province__c = '上海市';
        user.Use_Start_Date__c = Date.today().addMonths(-6);
        insert user;
        QuoteIrai__c irai = new QuoteIrai__c();
        irai.IraiSubject__c = '委托01';
        irai.IraiUser__c = null;
@@ -1516,10 +1554,30 @@
        controller.checkIraiUser();
        controller.Back();
        
        //lt start
        //经销商、联系人、用户信息
        List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売店'];
        if (rectCo.size() == 0) {
            return;
        }
        //经销商、联系人、用户信息
        Account myAccount1 = new Account(name='Testaccount001',
                                        Dealer_discount__c =20,
                                        Ban_On_Use_Date__c = Date.today().addDays(1),
                                        Business_Paper_Expiration_Date__c = Date.today().addDays(1),
                                        Tax_Practice_Expiration_Date__c = Date.today().addDays(1),
                                        Medical_Equipment_Expiration_Date__c = Date.today().addDays(1),
                                        RecordTypeId = rectCo[0].Id);
        insert myAccount1;
        //lt end
        // 从潜在客户新建
        Lead lead1 = new Lead();
        lead1.LastName = 'test';
        lead1.Company = 'test';
        lead1.Hospital_Name__c = myAccount1.Id;   //lt
        insert lead1;
        
        PageReference page1 = new PageReference('/apex/NewQuoteIrai?leadid=' + lead1.Id);
@@ -1528,6 +1586,7 @@
        controller1.init();
        
        // 从业务机会新建
        StaticParameter.EscapeOppandStaTrigger = true;
        Opportunity opp1 = new Opportunity();
        opp1.Name = 'test';
        opp1.StageName = '引合';
@@ -1558,5 +1617,21 @@
        System.Test.setCurrentPage(page3);
        NewQuoteIraiController controller3 = new NewQuoteIraiController();
        controller3.init();
        controller3.Salesprofit1=0;
        controller3.SalesCalculation1=0;
        controller3.displayFlg=true;
        controller3.filg=true;
        controller3.flglastbuy=0;
        controller3.errorProductmodel='a';
        controller3.excel_text='a';
        controller3.select_index=0;
        controller3.Product_text='a';
        controller3.setProduct_text='a';
        controller3.displayCost=true;
        controller3.total_ListPrice=0;
        controller3.errorMessage='a';
        controller3.Messageflg=true;
        controller3.Message='a';
        NewQuoteIraiController.UserSelect a = new NewQuoteIraiController.UserSelect(user);
    }
}