李彤
2022-09-14 c6e651446bf356eb44197053e3d57bf5a0d9a50c
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