黄千龙
2023-02-02 cd730d0b1a775abacfba06003bb58327d5d1fb3c
force-app/main/default/classes/RentalApplyWebService.cls
@@ -431,15 +431,15 @@
        }
        //1388 yc 20211021 跨区域分配不能出库 end
        // 20220211 ljh add 备品FY23课题01 start
        AggregateResult[] resultsRas = [SELECT Rental_Start_Date__c,count(Id) cnt
                                     FROM Rental_Apply_Equipment_Set__c
                                     WHERE Rental_Apply__c = :rentalApplyId
                                     AND Cancel_Select__c = false
                                     group by Rental_Start_Date__c];
        If(resultsRas.size() > 1){
           returnStr = '所有一览备品预计出货日应一致,不一致不能做出库指示';
            return returnStr;
        }
        // AggregateResult[] resultsRas = [SELECT Rental_Start_Date__c,count(Id) cnt
        //                              FROM Rental_Apply_Equipment_Set__c
        //                              WHERE Rental_Apply__c = :rentalApplyId
        //                              AND Cancel_Select__c = false
        //                              group by Rental_Start_Date__c];
        // If(resultsRas.size() > 1){
        //  returnStr = '所有一览备品预计出货日应一致,不一致不能做出库指示';
        //     return returnStr;
        // }
        // 20220211 ljh add 备品FY23课题01 end
//bp2        // 备品借出历史取得
@@ -1119,6 +1119,29 @@
                              , Extend_Date_F__c
                              , Received_NG_ReAssign_Text__c
                              , Received_NG_ReAssign__c
                        //【FY23大及巨大课题】长假备品借用延期开发 2022/12/27 start xxf
                              , Final_reply_day_Holiday_backup__c
                              , NG_Final_reply_day_F_Holiday_backup__c
                              , NG_Final_reply_day_Text_Holiday_backup__c
                              , Yizhouweixiu_Final_reply_day_F_Holiday__c
                              , Yizhouweixiu_Final_reply_day_TextHoliday__c
                              , Extend_Final_reply_day_F_Holiday_backup__c
                              , Extend_Final_reply_day_Text_Holiday_back__c
                              , QIS_Final_reply_day_F_Holiday_backup__c
                              , QIS_Final_reply_day_Text_Holiday_backup__c
                              , Repair_cancel_Final_reply_day_F_Holiday__c
                              , Repair_cancel_Final_reply_day_Text_Holid__c
                              , Return_to_office_Final_reply_day_F_Ho__c
                              , Return_to_office_Final_reply_day_Text_Ho__c
                              , Repair_delete_Final_reply_day_F_Holiday__c
                              , Repair_delete_Final_reply_day_Text_Ho__c
                              , Yigoudaihuo_Final_reply_day_F_Holiday__c
                              , Yigoudaihuo_Final_reply_day_Text_Holiday__c
                              , FGuzhangpaicha_Final_reply_day_F_Holiday__c
                              , Guzhangpaicha_Final_reply_day_Text_Holid__c
                              , Return_to_office_Final_reply_day_U_RC_Ho__c
                              , Return_to_office_Final_reply_day_U_RC_FH__c
                        //【FY23大及巨大课题】长假备品借用延期开发 2022/12/27 end xxf
                      from Rental_Apply_Equipment_Set__c
                     where Id IN :raeSetIds
            ]) {
@@ -1159,7 +1182,10 @@
//    }
    // 分配验证
    Webservice static String AssignBtn(String Rid){
        List<Rental_Apply__c> raList = [select demo_purpose2__c,next_action__c,QIS_number__r.ReplaceDeliveryDate__c,Follow_UP_Opp__r.Shipping_Finished_Day_Func__c,repair__r.Repair_Final_Inspection_Date__c,repair__r.Return_Without_Repair_Date__c,Campaign__c,Campaign__r.Status,Repair__r.Repair_Shipped_Date__c,Campaign__r.IF_Approved__c,Campaign__r.Meeting_Approved_No__c   from Rental_Apply__c where id = :Rid];
        List<String> statusList = System.Label.StatusProcessState.split(',');
        List<Rental_Apply__c> raList = [select demo_purpose2__c,next_action__c,QIS_number__r.ReplaceDeliveryDate__c,Follow_UP_Opp__r.Shipping_Finished_Day_Func__c,repair__r.Repair_Final_Inspection_Date__c,repair__r.Return_Without_Repair_Date__c,Campaign__c,Campaign__r.Status,Repair__r.Repair_Shipped_Date__c,Campaign__r.IF_Approved__c,Campaign__r.Meeting_Approved_No__c,Campaign__r.Approved_Status__c   from Rental_Apply__c where id = :Rid];
        // 20210803 ljh  SFDC-C5HDC7 add 查询添加 Campaign__c,Campaign__r.Status,Repair__r.Repair_Shipped_Date__c 
        if(raList.size()>0){
            Rental_Apply__c Ra = raList[0];
@@ -1184,6 +1210,9 @@
           else if(Ra.Campaign__r.IF_Approved__c && Ra.Campaign__r.Meeting_Approved_No__c == null){
                return '已申请决裁但决裁编码为空';
           }//20220301 sx obpm修改
           else if(Ra.Campaign__r.IF_Approved__c && Ra.Campaign__r.Meeting_Approved_No__c != null && statusList.contains(Ra.Campaign__r.Approved_Status__c)){
                return '已申请决裁但决裁状态不符合条件';
           }//20220315 sx obpm备品决裁状态相关修改
           else{
                return 'Fin';
            } 
@@ -1617,9 +1646,6 @@
                //应该不会到这里
                return '没有可以出库指示的一览';
            }
        }
        String soql = 'SELECT Id'
                + ' FROM Rental_Apply_Equipment_Set__c '
@@ -1664,6 +1690,21 @@
                return '不能做出库指示,需要分单后再操作';
            }
        }
        // add lc 20220927 SFDC-CJ48VE 备品预计出库日逻辑调整 start
        List<Rental_Apply_Equipment_Set__c> RAESRecords = [
                SELECT Id,Rental_Start_Date__c
                FROM Rental_Apply_Equipment_Set__c
                WHERE Rental_Apply__c = :raid
                AND Cancel_Select__c = False];
        for (Integer i = 0; i < RAESRecords.size(); i++) {
            // 备品预计出库日不一致,不可出库指示
            if (RAESRecords[i].Rental_Start_Date__c != RAESRecords[0].Rental_Start_Date__c) {
                return '备品预计出货日不一致,不可出库指示';
            }
        }
        // add lc 20220927 SFDC-CJ48VE 备品预计出库日逻辑调整 end
        Rental_Apply__c ra = new Rental_Apply__c(Id = raesds[0].Rental_Apply__c, Status__c = '已出库指示');
        update ra;
@@ -1727,12 +1768,20 @@
           CreatedDate,
           X30_Deposit_Day__c,
           Deposit_In_Full_Day__c,
           DeliveryDate__c
            DeliveryDate__c,
            Backorder_complete_day__c,
            DeliveryStatus__c
       from Statu_Achievements__c where id = :SaID];
       if(Sac.Opportunity__r.Sales_Root__c == '販売店'){
           if(Sac.Opp_Number__c.contains('GI')||Sac.Opp_Number__c.contains('BF')||Sac.Opp_Number__c.contains('ET') ){
               if(Sac.Status_1__c == '注残' && (Sac.Status_2_Formula__c == '12 已订货・付全款'||Sac.Status_2_Formula__c == '13 待发货')){
                   if((Date.today().addDays(-30)>Sac.Deposit_In_Full_Day__c)&&Sac.DeliveryDate__c == null){
                //modify by lyh 20220606 start 已购待货逻辑调整
                //客户GIR订单,注残状态2是“12付全款-14已发货“这个区间且发货状态为”未交付、和部分交付“时,自付款日起第31天未生成”客户订单最终发货日“时,方可以提交”已购待货“目的的备品申请
                //if(Sac.Status_1__c == '注残' && (Sac.Status_2_Formula__c == '12 已订货・付全款'||Sac.Status_2_Formula__c == '13 待发货')){
                //    if((Date.today().addDays(-30)>Sac.Deposit_In_Full_Day__c)&&Sac.DeliveryDate__c == null){
                if((Sac.Status_2_Formula__c == '12 已订货・付全款' || Sac.Status_2_Formula__c == '13 待发货' || Sac.Status_2_Formula__c == '14 已发货')
                    && (Sac.DeliveryStatus__c == '未交付' || Sac.DeliveryStatus__c == '部分交付')) {
                    if((Date.today().addDays(-30) > Sac.Deposit_In_Full_Day__c) && Sac.Backorder_complete_day__c == null) {
                //modify by lyh 20220606 end 已购待货逻辑调整
                       return 'Fin';
                   }else{
                       return '经销商内科订单不在申请期内,不能申请备品';
@@ -1741,8 +1790,14 @@
                   return '经销商内科订单状态不符合备品申请资格,不能申请备品';
               }
           }else if(Sac.Opp_Number__c.contains('SP')){
               if(Sac.Status_1__c == '注残' && (Sac.Status_2_Formula__c == '11 已订货・付订金'||Sac.Status_2_Formula__c == '12 已订货・付全款'||Sac.Status_2_Formula__c == '13 待发货')){
                   if((Date.today().addDays(-60)>Sac.X30_Deposit_Day__c )&&Sac.DeliveryDate__c == null){
                //modify by lyh 20220606 start 已购待货逻辑调整
                //客户SP订单,注残状态2是“11付定金-14已发货“这个区间且发货状态为”未交付、和部分交付“时,自付款日起第61天未生成”客户订单最终发货日“时,方可以提交”已购待货“目的的备品申请
                //if(Sac.Status_1__c == '注残' && (Sac.Status_2_Formula__c == '11 已订货・付订金'||Sac.Status_2_Formula__c == '12 已订货・付全款'||Sac.Status_2_Formula__c == '13 待发货')){
                //    if((Date.today().addDays(-60)>Sac.X30_Deposit_Day__c )&&Sac.DeliveryDate__c == null){
                if((Sac.Status_2_Formula__c == '11 已订货・付订金'||Sac.Status_2_Formula__c == '12 已订货・付全款'||Sac.Status_2_Formula__c == '13 待发货'||Sac.Status_2_Formula__c=='14 已发货')
                    && (Sac.DeliveryStatus__c == '未交付' || Sac.DeliveryStatus__c == '部分交付')) {
                    if((Date.today().addDays(-60) > Sac.X30_Deposit_Day__c ) && Sac.Backorder_complete_day__c == null){
                //modify by lyh 20220606 end 已购待货逻辑调整
                       return 'Fin';
                   }else{
                       return '经销商SP订单不在申请期内,不能申请备品';
@@ -1755,9 +1810,14 @@
           }
       }else if(Sac.Opportunity__r.Sales_Root__c == 'OCM直接販売'){
           if(Sac.Opp_Number__c.contains('GI')||Sac.Opp_Number__c.contains('BF')||Sac.Opp_Number__c.contains('ET')){
               if(Sac.Status_1__c == '注残' && (Sac.Status_2_Formula__c == '09 已录入订单未付款'||Sac.Status_2_Formula__c == '10 库存已预留・未付款'||Sac.Status_2_Formula__c == '11 已订货・付订金'||Sac.Status_2_Formula__c == '12 已订货・付全款'||Sac.Status_2_Formula__c == '13 待发货')){
                   if((Date.today().addDays(-30)>Sac.FirstApproveDate__c )&&Sac.DeliveryDate__c == null){
                //modify by lyh 20220606 start 已购待货逻辑调整
                //注残状态2是“9已录订单未付款-14已发货“这个区间且发货状态为”未交付、和部分交付“且“销售渠道为直销时”,GIR订单自订单录入日起第31天/未生成”客户订单最终发货日“时,方可以提交”已购待货“目的的备品申请
                //if(Sac.Status_1__c == '注残' && (Sac.Status_2_Formula__c == '09 已录入订单未付款'||Sac.Status_2_Formula__c == '10 库存已预留・未付款'||Sac.Status_2_Formula__c == '11 已订货・付订金'||Sac.Status_2_Formula__c == '12 已订货・付全款'||Sac.Status_2_Formula__c == '13 待发货')){
                //    if((Date.today().addDays(-30)>Sac.FirstApproveDate__c )&&Sac.DeliveryDate__c == null){
                if((Sac.Status_2_Formula__c == '09 已录入订单未付款'||Sac.Status_2_Formula__c == '10 库存已预留・未付款'||Sac.Status_2_Formula__c == '11 已订货・付订金'||Sac.Status_2_Formula__c == '12 已订货・付全款'||Sac.Status_2_Formula__c == '13 待发货'||Sac.Status_2_Formula__c=='14 已发货')
                    && (Sac.DeliveryStatus__c == '未交付' || Sac.DeliveryStatus__c == '部分交付')){
                    if((Date.today().addDays(-30) > Sac.FirstApproveDate__c ) && Sac.Backorder_complete_day__c == null) {
                //modify by lyh 20220606 end 已购待货逻辑调整
                       return 'Fin';
                   }else{
                       return 'OCM直销内科订单不在申请期内,不能申请备品';
@@ -1766,9 +1826,14 @@
                   return 'OCM直销内科订单状态不符合备品申请资格,不能申请备品';
               }
           }else if(Sac.Opp_Number__c.contains('SP')){
                   if(Sac.Status_1__c == '注残' && (Sac.Status_2_Formula__c == '09 已录入订单未付款'||Sac.Status_2_Formula__c == '10 库存已预留・未付款'||Sac.Status_2_Formula__c == '11 已订货・付订金'||Sac.Status_2_Formula__c == '12 已订货・付全款'||Sac.Status_2_Formula__c == '13 待发货')){
                       if((Date.today().addDays(-60)>Sac.FirstApproveDate__c )&&Sac.DeliveryDate__c == null){
                    //modify by lyh 20220606 start 已购待货逻辑调整
                    //注残状态2是“9已录订单未付款-14已发货“这个区间且发货状态为”未交付、和部分交付“且“销售渠道为直销时”,SP订单61天未生成”客户订单最终发货日“时,方可以提交”已购待货“目的的备品申请
                    //if(Sac.Status_1__c == '注残' && (Sac.Status_2_Formula__c == '09 已录入订单未付款'||Sac.Status_2_Formula__c == '10 库存已预留・未付款'||Sac.Status_2_Formula__c == '11 已订货・付订金'||Sac.Status_2_Formula__c == '12 已订货・付全款'||Sac.Status_2_Formula__c == '13 待发货')){
                    //    if((Date.today().addDays(-60)>Sac.FirstApproveDate__c )&&Sac.DeliveryDate__c == null){
                    if((Sac.Status_2_Formula__c == '09 已录入订单未付款'||Sac.Status_2_Formula__c == '10 库存已预留・未付款'||Sac.Status_2_Formula__c == '11 已订货・付订金'||Sac.Status_2_Formula__c == '12 已订货・付全款'||Sac.Status_2_Formula__c == '13 待发货'||Sac.Status_2_Formula__c=='14 已发货')
                        && (Sac.DeliveryStatus__c == '未交付' || Sac.DeliveryStatus__c == '部分交付')) {
                        if((Date.today().addDays(-60) > Sac.FirstApproveDate__c ) && Sac.Backorder_complete_day__c == null) {
                    //modify by lyh 20220606 end 已购待货逻辑调整
                           return 'Fin';
                       }else{
                           return 'OCM直销SP订单不在申请期内,不能申请备品';
@@ -1784,6 +1849,7 @@
       }
    }
//bp2
    //public static String RentalApplyCheckForSA(String raid,String SaID) {
    //    List<String> ProList = new List<String>();