global without sharing class ControllerUtil {
|
// トリガ実行回数を制御する、一回目false、二回目(workflow対応用)true
|
//public static Boolean XinEventOppotunityPileUpExeFlg = false;
|
// 積み上げをIsScheduledフラグ設定の後に実行
|
public static Boolean EventOpportunityPileUpExeFlg = false;
|
// EventC⇒Event処理後、逆更新をスルー用
|
public static Boolean NotUpdEventCFlg = false;
|
// 積み上げ処理後、トリガをスルー用
|
public static Boolean EscapeNFM001Trigger = false;
|
public static Boolean EscapeNFM001AgencyContractTrigger = false;
|
public static Boolean EscapeNFM007Trigger = false;
|
public static Boolean EscapeOpportunityBefUpdTrigger = false;
|
public static Boolean EscapeOpportunityHpDeptUpdTrigger = false;
|
public static Boolean EscapeSyncOpportunityTrigger = false;
|
public static Boolean EscapeMaintenanceContractAfterUpdateTrigger = false;
|
public static Boolean EscapeSyncProduct2Trigger = false;
|
|
// 商談の更新不可項目リスト
|
public static List<String> oppColumnList = System.Label.Opportunity_Columns.split(',');
|
|
// 削除対象のEvent
|
public static Set<Id> delEventIdSet = new Set<Id>();
|
|
// 100日定数
|
public static Integer ReportDayRange = 100;
|
|
// 商談レコードタイプ
|
public static String[] oppRecordTypeDevNames = new String[] {'Opportunity'};
|
|
public static final String chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';
|
|
|
public 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++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
}
|
|
WebService static String selectCommonSequence(String valueField, String formatField) {
|
Boolean insertNew = false;
|
//取得共通採番序列
|
String soql = 'select id,' + valueField + ',' + formatField + ' from Common_Sequence__c for update';
|
List<Common_Sequence__c> csList = Database.query(soql);
|
if (csList.size() == 0) {
|
//共通採番序列没数据,新建
|
Common_Sequence__c newCS = new Common_Sequence__c();
|
newCS.Name = '共通採番序列';
|
newCS.EvaluationPDF_NextValue__c = 1;
|
insert newCS;
|
insertNew = true;
|
//再取得共通採番序列
|
csList = Database.query(soql);
|
}
|
Common_Sequence__c cs = csList[0];
|
//採番编码
|
String format = String.valueOf(cs.get(formatField));
|
//下个採番值
|
Decimal nextValue = Decimal.valueOf(String.valueOf(cs.get(valueField)));
|
//採番
|
nextValue += 1;
|
cs.put(valueField, nextValue);
|
update csList;
|
//返回採番编码
|
return format;
|
}
|
|
public static String generateRandomStr(Integer len) {
|
String randStr = '';
|
while (randStr.length() < len) {
|
Integer idx = Math.mod(Math.abs(Crypto.getRandomInteger()), chars.length());
|
randStr += chars.substring(idx, idx+1);
|
}
|
return randStr;
|
}
|
|
public static List<Document> getPdfBlobForPreview(String docId) {
|
return [select Id, Name, Body, CreatedDate from Document where Id = :docId];
|
}
|
|
public static List<SMARM__c> getSmarmByUser(Map<String, Schema.SObjectField> fieldMap, String fromUserId, String toUserId) {
|
String sql = 'select ';
|
String fields = '';
|
for (String field : fieldMap.keySet()) {
|
if (fields.length() > 0) {
|
fields += ', ';
|
}
|
fields += field;
|
}
|
sql += fields;
|
sql += ' from SMARM__c where Review_Practitioner__c = :fromUserId and Review_Target__c = :toUserId and (Status__c = \'草案中\' or Status__c = \'Delete\')';
|
List<SMARM__c> sList = Database.query(sql);
|
return sList;
|
}
|
|
public static void createDocForEmail(List<Document> docList) {
|
Folder f = [select Id from Folder where DeveloperName = 'EmailImgFolder'];
|
for (Document doc : docList) {
|
doc.FolderId = f.Id;
|
doc.IsPublic = true;
|
}
|
insert docList;
|
}
|
|
public static List<SMARM__c> getSmarmById(String sql) {
|
return Database.query(sql);
|
}
|
|
public static List<Attachment> getSmarmAtts(String smarmId) {
|
return [select Id, Name, Body from Attachment where ParentId = :smarmId order by Name];
|
}
|
|
public static void insertAttachments(List<Attachment> atts) {
|
if (atts.size() > 0) insert atts;
|
}
|
|
public static void updateAttachments(List<Attachment> atts) {
|
if (atts.size() > 0) update atts;
|
}
|
|
public static void deleteAttachments(List<Attachment> atts) {
|
if (atts.size() > 0) delete atts;
|
}
|
|
public static void upsertSMARM(SMARM__c smarm) {
|
upsert smarm;
|
}
|
|
public static void insertSMARMShare(List<SObject> smarmShare) {
|
insert smarmShare;
|
}
|
|
public static List<Account> selectAccountForTrigger(List<String> accIds) {
|
return [Select Id, Name, Management_Code__c, OwnerId, ParentId, Parent.ParentId,Parent.Parent.Name, RecordTypeId from Account where Id IN :accIds];
|
}
|
public static Map<Id, Contact> selectContactAccountForTrigger(List<Id> contactIds) {
|
return new Map<Id, Contact>([Select Id, AccountId, Account.ParentId, Account.Parent.ParentId, Account.RecordTypeId from Contact where Id IN :contactIds]);
|
}
|
public static list<Contact> selectContactForCampaignMember(Set<Id> contactIds) {
|
return [Select Id, campaign__c,campaign__r.Lesson_Type__c, campaign__r.TrainingType__c from Contact where Id IN :contactIds];
|
}
|
public static List<Contact> selectDummyContact() {
|
return [select id, Email from Contact where email <> null limit 1];
|
}
|
|
public static List<Account> selectBossMailAddr(List<String> accIds) {
|
return [select Id, Parent.Boss__r.Email, Parent.Sub_Boss__r.Email, Parent.Boss__r.Name, Parent.Sub_Boss__r.Name from Account where Id in : accIds];
|
}
|
|
public static List<Event> eventSelectById(String id){
|
List<Event> eParamList = [select id, ActivityDate, OwnerId, Subject, whatid__c, EventC_ID__c, NextEventC_ID__c, AppCdId__c, SyncCreatedDate__c,
|
StartDateTime, DurationInMinutes, Main_Visit_Location__c, Activity_Type2__c, IsScheduled__c, BeforeActivityDate__c,
|
Visitor1__c, Visitor2__c, Visitor3__c, Visitor4__c, Visitor5__c, Visitor1_ID__c, Visitor2_ID__c, Visitor3_ID__c, Visitor4_ID__c, Visitor5_ID__c,
|
Purpose_Type__c, Location, Related_Opportunity1__c, Related_Service1__c, Related_Opportunity1_ID__c, Related_Service1_ID__c,
|
Related_Opportunity2__c, Related_Opportunity3__c, Related_Opportunity4__c, Related_Opportunity5__c,OPDPlan_Flag__c,
|
Related_Opportunity2_ID__c, Related_Opportunity3_ID__c, Related_Opportunity4_ID__c, Related_Opportunity5_ID__c,
|
Activity_Purpose__c, Activity_PurposeFSE__c, Activity_PurposeEscFSE__c, Purpose_TypeFSE__c, Purpose_TypeEscFSE__c
|
from Event where id = :id];
|
return eParamList;
|
}
|
public static List<Event> eventSelectByDate(Date whereDate, User ur){
|
List<Event> calenderList = [select id, ActivityDate, OwnerId, Subject, whatid__c, EventC_ID__c, NextEventC_ID__c, AppCdId__c, SyncCreatedDate__c,
|
StartDateTime, DurationInMinutes, Main_Visit_Location__c, Activity_Type2__c, IsScheduled__c, BeforeActivityDate__c,
|
Visitor1__c, Visitor2__c, Visitor3__c, Visitor4__c, Visitor5__c, Visitor1_ID__c, Visitor2_ID__c, Visitor3_ID__c, Visitor4_ID__c, Visitor5_ID__c,
|
Purpose_Type__c, Location, Related_Opportunity1__c, Related_Service1__c, Related_Opportunity1_ID__c, Related_Service1_ID__c, WS_flg__c,
|
Related_Opportunity2__c, Related_Opportunity3__c, Related_Opportunity4__c, Related_Opportunity5__c,OPDPlan_Flag__c,
|
Related_Opportunity2_ID__c, Related_Opportunity3_ID__c, Related_Opportunity4_ID__c, Related_Opportunity5_ID__c,
|
Activity_Purpose__c, Activity_PurposeFSE__c, Activity_PurposeEscFSE__c, Purpose_TypeFSE__c, Purpose_TypeEscFSE__c,EventStatus__c,cancelReason__c,cancelReasonOther__c,cancelReasonSelect__c,cancelReasonSelectFSE__c,delayReason__c,delayReasonOther__c,delayReasonSelect__c,delayReasonSelectFSE__c,delayToDate__c
|
from Event where WS_flg__c = false and ActivityDate = :whereDate and OwnerId = :ur.Id and EventStatus__c not in ('04 取消','05 延期','06 关闭','07 未执行') order by StartDateTime];
|
return calenderList;
|
}
|
|
public static List<Daily_Report__c> reportSelectByDate(Date whereDate, String ownerId){
|
List<Daily_Report__c> reportList = [select id, name, Reporter__c, Reported_Date__c, Daily_Report_Data_Type__c,
|
Working_Time_From__c, Working_Time_To__c, Status__c, Mail_Send_Check__c,
|
Business_Trip__c, Submit_Date_New__c, Submit_DateTime_New__c, Approved_Date__c,
|
Approved_DateTime__c, CreatedById, Feed_Back_From_Manager__c, FeedbackManager__c,
|
Planning_Time__c, Submission_Elapsed_Hour__c, Approval_Elapsed_Time__c,
|
Activity_ID__c, Manager_Mail__c, Status_With_Check__c
|
from Daily_Report__c where Reported_Date__c =:whereDate and OwnerId =:ownerId];
|
return reportList;
|
}
|
|
public static List<RecordType> recordTypeSelectForTrainingtestResult(){
|
List<RecordType> rtList = [select Id, DeveloperName from RecordType where IsActive = true and SobjectType = 'Training_test_Result__c'];
|
return rtList;
|
}
|
|
public static List<Training_test_Result__c> trainingtestResultSelectByContactIds(Set<Id> ids){
|
List<Training_test_Result__c> ttrList = [select Id, RecordType.DeveloperName, employee__c from Training_test_Result__c where employee__c in :ids];
|
return ttrList;
|
}
|
|
public static void updateSObjectContact(List<SObject> contactList) {
|
if (contactList != null && contactList.size() > 0) update contactList;
|
}
|
|
public static Map<Id, Contact> selectActiveUserFromContact(List<Id> contactIds) {
|
return new Map<Id, Contact>([Select Id, User__c From Contact Where Id IN: contactIds and User__r.isActive = true]);
|
}
|
|
/**
|
* add 2021/12/23 wangweipeng satrt
|
* [updateFutureOds 更新ods的user__c字段]
|
* @param odsEmployeeNoList [员工编码]
|
* @param odsEmployeeNoMap [员工编码对应的user Id]
|
*
|
*/
|
@future
|
public static void updateFutureOds(List<String> odsEmployeeNoList,Map<String,Id> odsEmployeeNoMap) {
|
if(odsEmployeeNoList != null && odsEmployeeNoList.size() > 0){
|
List<ODS__c> odsData = [select id,name,User__c,Employee_No__c from ODS__c where Employee_No__c in :odsEmployeeNoList];
|
if(odsData != null && odsData.size() > 0){
|
for(ODS__c ods : odsData){
|
ods.User__c = odsEmployeeNoMap.get(ods.Employee_No__c);
|
}
|
update odsData;
|
}
|
}
|
}
|
//add 2021/12/23 wangweipeng end
|
|
/*
|
https://www.salesforce.com/us/developer/docs/apexcode/Content/apex_dml_non_mix_sobjects.htm
|
*/
|
@future
|
public static void upsertFutureContact(List<String> userEmployeeNoList) {
|
upsertFutureContactInterface(userEmployeeNoList);
|
}
|
//@future
|
public static void upsertFutureContactInterface(List<String> userEmployeeNoList) {
|
// 社内员工のレコードタイプ
|
Id rtId = '01210000000Qtky';
|
// 现有联系人
|
Map<String, Contact> conMap = new Map<String, Contact>();
|
// UserToContact の 変更したか にて判断した項目です
|
List<User> usrList = [select Id, Notes_File_Name__c,FirstName, LastName, Email, Mobile_Phone__c, Employee_No__c, Work_Location__c, Post__c, Job_Category__c, Hire_Date__c, Gender__c, Dept__c, Pregnant_Rest__c, Salesdepartment__c, Stay_or_not__c,IsMEBG__c, Work_Location_HR__c from User where Employee_No__c IN :userEmployeeNoList];
|
List<Contact> conList = [select Id,Notes_File_Name__c, User__c, Employee_No_manual__c,Isactive__c,IsMEBG__c, Work_Location_HR__c from Contact where Employee_No_manual__c IN :userEmployeeNoList and RecordTypeId = :rtId];
|
for (Contact con : conList) {
|
//conMap.put(con.Employee_No_manual__c, con);
|
conMap.put(con.Employee_No_manual__c.toLowerCase(), con);
|
}
|
List<Contact> upsertList = new List<Contact>();
|
for (User local : usrList) {
|
//update wangweipeng 2021/11/19
|
//不能填写诸如“医生”,“老师”,“护士”,“院长”,“某某”等头衔代称
|
if(String.isNotBlank(local.FirstName)){
|
if(UserInfo.getProfileId() != '00e10000000Y3o5' && UserInfo.getProfileId() != '00e10000000Y3o5'){
|
if(local.FirstName == '老师' || local.FirstName == '医生' || local.FirstName == '主任' || local.FirstName == '院长'
|
|| local.FirstName == '科长' || local.FirstName == '课长' || local.FirstName == '护士' || local.FirstName == '护士长'
|
|| local.FirstName == '先生' || local.FirstName == '女士' || local.FirstName == '等等' || local.FirstName == '某'
|
|| local.FirstName == '某某' || local.FirstName == '某某某' || local.FirstName == '大夫')
|
{
|
System.debug('----代码:请填写正确的名字,不能填写诸如“医生”,“老师”,“护士”,“院长”,“某某”等头衔代称!');
|
continue;
|
}
|
}
|
}
|
//由于测试时,发现contact的员工编码为大写,user表为小写,但是新增时falseforce大小写不敏感,所以会报重复值的错误
|
// 所以为了避免以上问题,把员工编码都转为小写
|
if (conMap.containsKey(local.Employee_No__c.toLowerCase())) {
|
//if (conMap.containsKey(local.Employee_No__c)) {
|
// 更新现有联系人
|
Contact tmp = conMap.get(local.Employee_No__c.toLowerCase());
|
tmp.User__c = local.Id;
|
tmp.FirstName = local.FirstName;
|
tmp.LastName = local.LastName;
|
tmp.Email = local.Email;
|
tmp.Notes_File_Name__c = local.Notes_File_Name__c;//20170220新增
|
tmp.MobilePhone = local.Mobile_Phone__c;
|
tmp.Employee_No_manual__c = local.Employee_No__c;
|
tmp.Work_Location_manual__c = local.Work_Location__c;
|
//用户的工作地(人事)改变更新到联系人上 thh 2022-02-16 start
|
tmp.Work_Location_HR__c = local.Work_Location_HR__c;
|
//用户的工作地(人事)改变更新到联系人上 thh 2022-02-16 end
|
tmp.Post_picklist__c = local.Post__c;
|
tmp.Job_Category_picklist__c = local.Job_Category__c;
|
tmp.Hire_date_text__c = local.Hire_Date__c;
|
tmp.Gender_text__c = local.Gender__c;
|
tmp.Dept__c = local.Dept__c;
|
tmp.Pregnant_Rest__c = local.Pregnant_Rest__c;
|
tmp.Salesdepartment_Text__c = local.Salesdepartment__c;
|
tmp.Stay_or_not__c = local.Stay_or_not__c;
|
tmp.IsMEBG__c = local.IsMEBG__c;//是否MEBG
|
if(String.isNotBlank(local.Stay_or_not__c)){
|
tmp.Isactive__c = local.Stay_or_not__c == '在职' ? '有效':'无效';
|
}
|
upsertList.add(tmp);
|
} else {
|
// 新做联系人
|
Contact tmp = new Contact();
|
tmp.RecordTypeId = rtId;
|
tmp.AccountId = System.Label.Olympus_AccountID_Internal_staff;
|
tmp.User__c = local.Id;
|
tmp.FirstName = local.FirstName;
|
tmp.LastName = local.LastName;
|
tmp.Notes_File_Name__c = local.Notes_File_Name__c;//20170220新增
|
tmp.Email = local.Email;
|
tmp.MobilePhone = local.Mobile_Phone__c;
|
tmp.Employee_No_manual__c = local.Employee_No__c;
|
tmp.Work_Location_manual__c = local.Work_Location__c;
|
//如果根据HR信息新建用户,则把HR信息的工作地传给用户的工作地和工作地(人事) thh 2022-02-16 start
|
tmp.Work_Location_HR__c = local.Work_Location__c;
|
tmp.Work_Location_picklist__c = local.Work_Location__c;
|
//如果根据HR信息新建用户,则把HR信息的工作地传给用户的工作地和工作地(人事) thh 2022-02-16 end
|
tmp.Post_picklist__c = local.Post__c;
|
tmp.Job_Category_picklist__c = local.Job_Category__c;
|
tmp.Hire_date_text__c = local.Hire_Date__c;
|
tmp.Gender_text__c = local.Gender__c;
|
tmp.Dept__c = local.Dept__c;
|
tmp.Pregnant_Rest__c = local.Pregnant_Rest__c;
|
tmp.Salesdepartment_Text__c = local.Salesdepartment__c;
|
tmp.Stay_or_not__c = local.Stay_or_not__c;
|
tmp.IsMEBG__c = local.IsMEBG__c;//是否MEBG
|
if(String.isNotBlank(local.Stay_or_not__c)){
|
tmp.Isactive__c = '在职'.equals(local.Stay_or_not__c) ? '有效':'无效';
|
}
|
upsertList.add(tmp);
|
}
|
}
|
upsert upsertList;
|
}
|
|
public static void updateFutureUserByContact(List<String> userEmployeeNoList) {
|
// 现有用户
|
Map<String, User> usrMap = new Map<String, User>();
|
// ContactToUser の 変更したか にて判断した項目です
|
List<Contact> conList = [select Id, FirstName, LastName, Email, MobilePhone, Employee_No_manual__c, Work_Location_manual__c, Post_picklist__c, Job_Category_picklist__c, Hire_date_text__c, Gender_text__c, Dept__c, Pregnant_Rest__c, Stay_or_not__c from Contact where Employee_No_manual__c IN :userEmployeeNoList];
|
List<User> usrList = [select Id, Employee_No__c from User where Employee_No__c IN :userEmployeeNoList];
|
for (User usr : usrList) {
|
//update wangweipeng 2021/11/19
|
//由于测试时,发现contact的员工编码为大写,user表为小写,但是新增时falseforce大小写不敏感,所以会报重复值的错误
|
//所以为了避免以上问题,把员工编码都转为小写
|
usrMap.put(usr.Employee_No__c.toLowerCase(), usr);
|
}
|
|
List<User> updateList = new List<User>();
|
for (Contact local : conList) {
|
//update wangweipeng 2021/11/19
|
//由于测试时,发现contact的员工编码为大写,user表为小写,但是新增时falseforce大小写不敏感,所以会报重复值的错误
|
// 所以为了避免以上问题,把员工编码都转为小写
|
if (usrMap.containsKey(local.Employee_No_manual__c.toLowerCase())) {
|
// 更新现有用户
|
User tmp = usrMap.get(local.Employee_No_manual__c);
|
tmp.FirstName = local.FirstName;
|
tmp.LastName = local.LastName;
|
tmp.Email = local.Email;
|
tmp.Mobile_Phone__c = local.MobilePhone;
|
//tmp.Employee_No__c = local.Employee_No_manual__c;
|
tmp.Work_Location__c = local.Work_Location_manual__c;
|
tmp.Post__c = local.Post_picklist__c;
|
tmp.Job_Category__c = local.Job_Category_picklist__c;
|
tmp.Hire_Date__c = local.Hire_date_text__c;
|
tmp.Gender__c = local.Gender_text__c;
|
tmp.Dept__c = local.Dept__c;
|
tmp.Pregnant_Rest__c = local.Pregnant_Rest__c;
|
tmp.Stay_or_not__c = local.Stay_or_not__c;
|
updateList.add(tmp);
|
}
|
}
|
update updateList;
|
}
|
|
//add wangweipeng 2021/11/18 start
|
//根据ods的员工编码,更新或新增 user表的数据
|
public static void updateFutureOdsByUser(List<String> userEmployeeNoList) {
|
//获取自定义标签,自己定义,用来空更新数据或处理历史数据
|
//在处理历史记录时:职位和职种 如果ods的值为空,那么user对象的这两个字段就不需要更新
|
Integer buffer = Integer.valueOf(System.Label.ODS_Null_Update_Sign);
|
// 现有用户
|
Map<String, User> usrMap = new Map<String, User>();
|
// ContactToUser の 変更したか にて判断した項目です
|
List<ODS__c> conList = [select id,Alias__c,Branch__c,Category3__c,Category4__c,Category5__c,Category6__c,Employee_No__c,Hire_Date__c,FirstName__c,LastName__c,Name__c,Email__c,MobilePhone__c,Post__c,Job_Category__c,Job_Type__c,Product_specialist_incharge_product__c,Sales_Speciality__c,Work_Location__c,Stay_or_not__c,LeaveDate__c,UniqueId__c,Null_Update__c from ODS__c where Employee_No__c in :userEmployeeNoList];
|
|
List<User> usrList = [select Id, PBI_Enable__c ,PBIAuthorizedSetting__c,Employee_No__c from User where Employee_No__c IN :userEmployeeNoList];
|
for (User usr : usrList) {
|
//usrMap.put(usr.Employee_No__c, usr);
|
//由于测试时,发现ods的员工编码和user的员工编码大小写不一致,所有我们在这里把员工编码全部转为小写
|
//所以为了避免以上问题,把员工编码都转为小写
|
usrMap.put(usr.Employee_No__c.toLowerCase(), usr);
|
}
|
|
List<User> updateList = new List<User>();
|
List<User> insertList = new List<User>();
|
List<String> updateId = new List<String>();
|
for (ODS__c odsc : conList) {
|
//由于测试时,发现ods的员工编码和user的员工编码大小写不一致,所有我们在这里把员工编码全部转为小写
|
// 所以为了避免以上问题,把员工编码都转为小写
|
if (usrMap.containsKey(odsc.Employee_No__c.toLowerCase())) {
|
// 更新现有用户
|
User userData = usrMap.get(odsc.Employee_No__c.toLowerCase());
|
|
userData.Group_sales_dept__c = odsc.Category3__c;//统括本部
|
if(String.isNotBlank(odsc.Category4__c)){
|
userData.Dept__c = odsc.Category4__c;//本部
|
}
|
userData.Category5__c = odsc.Category5__c;//部
|
userData.Category6__c = odsc.Category6__c;//课
|
//userData.Employee_No__c = odsc.Employee_No__c;//员工编码
|
userData.Hire_Date__c = odsc.Hire_Date__c;//入职日期
|
//userData.Email = odsc.Email__c;//电子邮件
|
userData.Mobile_Phone__c = odsc.MobilePhone__c;//手机号码
|
//如果自定义变迁的值为1,那么证明现在是在处理历史数据,而历史数据规定,如果ods的职位为空,那么就不需要更新user的职种
|
if(String.isNotBlank(odsc.Post__c) || buffer != 1){
|
userData.Post__c = odsc.Post__c;//职位
|
}
|
String zz = '';
|
if(odsc.Job_Category__c == '服务'){
|
zz = '销售服务';
|
}else if(odsc.Job_Category__c == '推广'){
|
zz = '销售推广';
|
}else{
|
zz = odsc.Job_Category__c;
|
}
|
//如果自定义变迁的值为1,那么证明现在是在处理历史数据,而历史数据规定,如果ods的职种为空,那么就不需要更新user的职种
|
if(String.isNotBlank(zz) || buffer != 1){
|
userData.Job_Category__c = zz;//职种
|
}
|
//userData.Product_specialist_incharge_product__c = odsc.Product_specialist_incharge_product__c;//负责产品(主)
|
//userData.Sales_Speciality__c = odsc.Sales_Speciality__c;//销售工作内容
|
//HR信息上的工作地更新到用户的工作地(人事)上 thh 2022-02-16 start
|
userData.Work_Location_HR__c = odsc.Work_Location__c;
|
//HR信息上的工作地更新到用户的工作地(人事)上 thh 2022-02-16 end
|
userData.Stay_or_not__c = odsc.Stay_or_not__c;//在职/已离职
|
//由于user有一个验证规则,如果值为已离职,那么PBI不能为true,所以手动设置为false,并把PBI对象的值设为false
|
if(userData.Stay_or_not__c == '已离职' && userData.PBI_Enable__c){//PBI是否启用
|
userData.PBI_Enable__c = false;
|
updateId.add(userData.id);
|
}
|
userData.Null_Update__c = odsc.Null_Update__c;
|
userData.QuitDate__c = odsc.LeaveDate__c;//离职日期
|
userData.IsMEBG__c=true;//是否MEBG
|
updateList.add(userData);
|
}else{
|
//如果没有在user表中找到对应的员工编码,那么新增user
|
User userData = new User();
|
userData.Group_sales_dept__c = odsc.Category3__c;//统括本部
|
if(String.isNotBlank(odsc.Category4__c)){
|
userData.Dept__c = odsc.Category4__c;//本部
|
}
|
userData.Category5__c = odsc.Category5__c;//部
|
userData.Category6__c = odsc.Category6__c;//课
|
userData.Employee_No__c = odsc.Employee_No__c;//员工编码
|
userData.Hire_Date__c = odsc.Hire_Date__c;//入职日期
|
userData.Email = odsc.Email__c;//电子邮件,新建时,填写电子邮件
|
userData.Username = '_'+odsc.Email__c;//用户名
|
userData.Mobile_Phone__c = odsc.MobilePhone__c;//手机号码
|
//如果自定义变迁的值为1,那么证明现在是在处理历史数据,而历史数据规定,如果ods的职位为空,那么就不需要更新user的职种
|
if(String.isNotBlank(odsc.Post__c) || buffer != 1){
|
userData.Post__c = odsc.Post__c;//职位
|
}
|
String zz = '';
|
if(odsc.Job_Category__c == '服务'){
|
zz = '销售服务';
|
}else if(odsc.Job_Category__c == '推广'){
|
zz = '销售推广';
|
}else{
|
zz = odsc.Job_Category__c;
|
}
|
//如果自定义变迁的值为1,那么证明现在是在处理历史数据,而历史数据规定,如果ods的职种为空,那么就不需要更新user的职种
|
if(String.isNotBlank(zz) || buffer != 1){
|
userData.Job_Category__c = zz;//职种
|
}
|
userData.Null_Update__c = odsc.Null_Update__c;
|
userData.Product_specialist_incharge_product__c = odsc.Product_specialist_incharge_product__c;//负责产品(主)
|
userData.Sales_Speciality__c = odsc.Sales_Speciality__c;//销售工作内容
|
//如果根据HR信息新建用户,则把HR信息的工作地传给用户的工作地和工作地(人事) thh 2022-02-16 start
|
userData.Work_Location_HR__c = odsc.Work_Location__c;
|
userData.Work_Location__c = odsc.Work_Location__c;
|
//如果根据HR信息新建用户,则把HR信息的工作地传给用户的工作地和工作地(人事) thh 2022-02-16 end
|
userData.Stay_or_not__c = odsc.Stay_or_not__c;//在职/已离职
|
userData.QuitDate__c = odsc.LeaveDate__c;//离职日期
|
userData.IsMEBG__c=true;//是否MEBG
|
//由于ods的姓和名都是拼音,所以获取name__c的值,并且首字母第一位为姓,其余为名
|
if(String.isNotBlank(odsc.Name__c)){
|
if(odsc.Name__c.length() > 1){
|
userData.LastName = odsc.Name__c.substring(0,1);
|
userData.FirstName = odsc.Name__c.substring(1,odsc.Name__c.length());
|
userData.Alias = odsc.Name__c;
|
}
|
}
|
//以下是系统默认
|
userData.FederationIdentifier = odsc.Employee_No__c + '@olympus.com.cn';
|
userData.EmailEncodingKey = 'UTF-8';//电子邮件编码
|
userData.IsActive = false;
|
userData.TimeZoneSidKey = 'Asia/Shanghai';//时区
|
userData.LocaleSidKey = 'ja_JP';//区域
|
userData.LanguageLocaleKey = 'zh_CN';//语言
|
//userData.DefaultCurrencyIsoCode = 'CNY';//默认币种 ISO 代码
|
//userData.CurrencyIsoCode = 'CNY';//信息币种
|
//默认ods创建的user用户的简档为 999_看不见Profile
|
userData.Profileid = '00e10000000dFYJ';
|
|
insertList.add(userData);
|
}
|
}
|
|
//PBI数据更新
|
//由于user有一个验证规则,如果值变为已离职,那么PBI不能为true,所以手动设置为false,并把PBI对象的值设为false
|
if(updateId.size() > 0){
|
List<PBIAuthorization__c> pbiUpd = [select id,name,PBI_Enable__c,User__c from PBIAuthorization__c where user__c in :updateId and PBI_Enable__c = true];
|
if(pbiUpd != null && pbiUpd.size() > 0){
|
for(PBIAuthorization__c pc : pbiUpd){
|
pc.PBI_Enable__c = false;
|
}
|
}
|
//首先更新 PBI权限为false
|
if(pbiUpd.size() > 0){
|
update pbiUpd;
|
}
|
}
|
if(insertList.size() > 0 || updateList.size() > 0){
|
ID jobId = system.enqueueJob(new UserUpsertQueueable(insertList,updateList));
|
AsyncApexJob jobInfo = [select status,NumberOfErrors from AsyncApexJob where id =:jobId];
|
System.debug('--------------------队列日志'+jobInfo);
|
}
|
}
|
//add wangweipeng 2021/11/18 start
|
|
@future (callout=true)
|
public static void upsertFutureContact(String sessionId, List<Id> userIdList) {
|
HttpRequest req = new HttpRequest();
|
req.setEndpoint(URL.getSalesforceBaseUrl().toExternalForm() + '/services/apexrest/UserToContact');
|
System.debug('Endpoint ' + req.getEndpoint());
|
req.setMethod('POST');
|
|
// header
|
String authorizationHeader = 'OAuth ' + sessionId;
|
System.debug(authorizationHeader);
|
req.setHeader('Authorization', authorizationHeader);
|
|
// body
|
String restBody = '{"userIdList":' + JSON.serialize(userIdList) + '}';
|
System.debug('JSON ' + restBody);
|
req.setBody(restBody);
|
|
// Create a new http object to send the request object
|
Http http = new Http();
|
HTTPResponse res = http.send(req);
|
System.debug(res.getBody());
|
}
|
|
public static List<Daily_Report__c> reportSelectById(String id){
|
List<Daily_Report__c> reportList = [select id, name, Reporter__c, Reported_Date__c, Daily_Report_Data_Type__c,
|
Working_Time_From__c, Working_Time_To__c, Status__c, Mail_Send_Check__c,
|
Business_Trip__c, Submit_Date_New__c, Submit_DateTime_New__c, Approved_Date__c,
|
Approved_DateTime__c, CreatedById, Feed_Back_From_Manager__c, FeedbackManager__c,
|
Planning_Time__c, Submission_Elapsed_Hour__c, Approval_Elapsed_Time__c,
|
Activity_ID__c, Manager_Mail__c, Status_With_Check__c
|
from Daily_Report__c where Id = :id];
|
return reportList;
|
}
|
|
public static List<Event> eventSelectByUsers(String soql, List<Date> mdates, List<Id> users) {
|
return Database.query(soql);
|
}
|
public static Map<Id, Daily_Report__c> reportMapSelectByIds(List<Id> ids){
|
Map<Id, Daily_Report__c> reportMap = new Map<Id, Daily_Report__c>([select id, Status__c, Submit_Date_New__c
|
from Daily_Report__c where Id IN :ids]);
|
return reportMap;
|
}
|
|
public static List<Opportunity> oppSelectForPersonTaget(Id rtId, User[] users, String currentPeriod) {
|
Opportunity[] opportunitys = [select
|
Id, OwnerId, Opportunity_Category__c, Proportion__c, CloseDate,
|
Amount, Objective__c, Target_category__c,
|
SAP_Province__c, RecordTypeId, OCM_Target_period__c
|
from Opportunity
|
where Target_category__c = '担当目标'
|
and RecordTypeId = :rtId
|
and OwnerId in :users
|
and OCM_Target_period__c = :currentPeriod
|
];
|
return opportunitys;
|
}
|
|
public static List<Opportunity> oppSelectForLock(List<String> oppIds) {
|
List<Opportunity> opps = [select Id
|
,Last_Visit_Scheduled_Date__c
|
,Xin_Last_Follow_Up_Date_For_Report__c, Xin_Gross_Follow_Num__c,Visit_President_Count__c,Visit_Head_Doctor_Count__c,Num_Of_NTC__c
|
// CHAN-BE6CZZ 最后跟进结果 LHJ 20190724 Start
|
,Follow_up_comment__c
|
// CHAN-BE6CZZ 最后跟进结果 LHJ 20190724 End
|
,Num_Of_OPD__c
|
from Opportunity where Id in :oppIds for update];
|
return opps;
|
}
|
|
public static List<Opportunity> oppSelectForCity(List<String> oppIds) {
|
List<Opportunity> opps = [select Id, Account.Parent.RecordTypeId, Account.Parent.Parent.RecordTypeId, Account.Parent.Parent.City_Master__r.Name, Account.City_Master__r.Name from Opportunity where Id in :oppIds];
|
return opps;
|
}
|
|
public static void updOppList(List<Opportunity> oppUpdateList){
|
if (oppUpdateList != null && oppUpdateList.size() > 0) update oppUpdateList;
|
}
|
|
public static void updOpp(Opportunity opp) {
|
update opp;
|
}
|
|
public static List<Opportunity2__c> opp2SelectForSync(List<String> oppIds) {
|
List<Opportunity2__c> opp2s = [select Id, Opportunity__c from Opportunity2__c where Opportunity__c in :oppIds];
|
return opp2s;
|
}
|
|
public static List<Product2__c> pr2SelectForSync(List<Product2> pr2Ids) {
|
List<Product2__c> pr2s = [select Id, Product2__c from Product2__c where Product2__c in :pr2Ids];
|
return pr2s;
|
}
|
|
public static List<Maintenance_Contract__c> mcSelectForLock(List<String> serviceIds) {
|
List<Maintenance_Contract__c> mcs = [select Id, Xin_Last_Follow_Day__c from Maintenance_Contract__c where Id in :serviceIds for update];
|
return mcs;
|
}
|
|
public static void delEvent1ForTrigger(List<String> conIds) {
|
List<Activity_History_Daily_Report__c> ahdrList = [select Id from Activity_History_Daily_Report__c where Contact__c in :conIds];
|
if (ahdrList.size() > 0) delete ahdrList;
|
}
|
|
public static void delEvent2ForTrigger(List<String> oppIds) {
|
List<Event_Oppotunity__c> eoList = [select Id from Event_Oppotunity__c where Opportunity__c in :oppIds];
|
if (eoList.size() > 0) delete eoList;
|
}
|
|
public static void delEvent3ForTrigger(List<String> mcIds) {
|
List<Event_Service__c> esList = [select Id from Event_Service__c where Service__c in :mcIds];
|
if (esList.size() > 0) delete esList;
|
}
|
|
public static void upsEventC(List<Event__c> acts) {
|
System.debug('Event__c1111' + acts);
|
if(acts.size() > 0) upsert acts;
|
}
|
|
public static void upsEvent(List<Event> acts) {
|
if(acts.size() > 0) upsert acts;
|
}
|
|
public static void delEvent(Set<String> eventCIdSet, Map<Id, Event__c> eventC_eventMap) {
|
// 削除する前に、delete_flgをtrueにする
|
List<Event> delList = [select Id from Event where EventC_ID__c in :eventCIdSet];
|
ControllerUtil.delEventIdSet.addAll((new Map<Id, SObject>(delList)).keySet());
|
if (delList.size() > 0) {
|
delete delList;
|
}
|
// Event__cにEventへの参照IDがある
|
delList = [select Id from Event where Id in :eventC_eventMap.keySet()];
|
ControllerUtil.delEventIdSet.addAll((new Map<Id, SObject>(delList)).keySet());
|
if (delList.size() > 0) {
|
delete delList;
|
}
|
}
|
|
public static void delEventOnly(String Id) {
|
List<Event> delList = [select Id from Event where id = :Id];
|
if (delList.size() > 0) {
|
delete delList;
|
}
|
}
|
|
public static void insSFDelete(List<SFDelete__c> dlist) {
|
if (dlist.size() > 0) insert dList;
|
}
|
|
public static void upsEventC2Event(Map<Id, Event__c> eventCMap, Map<Id, Event__c> eventC_eventMap) {
|
List<Event> unDelList = new List<Event>();
|
List<Event> upsList = new List<Event>();
|
List<Id> updateEIds = new List<Id>();
|
//2021-08-30 mzy SWAG-C5784H 【委托】事件无法延期 start
|
Set<String> idSet = new Set<String>();
|
//2021-08-30 mzy SWAG-C5784H 【委托】事件无法延期 end
|
Map<String, String> dupUpdIdMap = new Map<String, String>();
|
|
// 日報画面からEvent__cを更新する時
|
// ①EventにEvent__cへの参照IDがある
|
// IsArchived = false を条件に追加することにより、1年以上の場合Event_CからEventへ同期しません!!
|
if (eventCMap.keySet().size() > 0) {
|
List<Event> eList = [select Id, EventC_ID__c, IsDeleted from Event where EventC_ID__c in :eventCMap.keySet() and IsArchived = false all rows];
|
if (eList.size() > 0) {
|
for (Event e : eList) {
|
updateEIds.add(e.Id);
|
Event__c ec = eventCMap.get(e.EventC_ID__c);
|
System.debug('EventにEvent__cへの参照IDがある:::::' + e.Id + ',' + e.EventC_ID__c);
|
System.debug('ec.Subject__c:::::'+ec.Subject__c);
|
System.debug('ec.StartDateTime__c:::::'+ec.StartDateTime__c);
|
System.debug('ec.EndDateTime__c:::::'+ec.EndDateTime__c);
|
System.debug('ec.DurationInMinutes:::::' + Integer.valueOf((ec.EndDateTime__c.getTime() - ec.StartDateTime__c.getTime()) / 1000 / 60));
|
System.debug('ec.Daily_Report__c:::::'+ec.Daily_Report__c);
|
System.debug('ec.Main_Visit_Location__c:::::'+ec.Main_Visit_Location__c);
|
System.debug('ec.Activity_Type2__c:::::'+ec.Activity_Type2__c);
|
System.debug('ec.Purpose_Type__c:::::'+ec.Purpose_Type__c);
|
System.debug('ec.Location__c:::::'+ec.Location__c);
|
System.debug('ec.Related_Opportunity1__c:::::'+ec.Related_Opportunity1__c);
|
System.debug('ec.Related_Opportunity1_ID__c:::::'+ec.Related_Opportunity1_ID__c);
|
System.debug('ec.Related_Service1__c:::::'+ec.Related_Service1__c);
|
System.debug('ec.Related_Service1_ID__c:::::'+ec.Related_Service1_ID__c);
|
System.debug('ec.whatid__c:::::'+ec.whatid__c);
|
e.Subject = (ec.Subject__c==null||ec.Subject__c=='')?ec.Activity_Purpose__c:ec.Subject__c;
|
e.IsAllDayEvent = false;
|
e.ActivityDateTime = ec.StartDateTime__c;
|
e.StartDateTime = ec.StartDateTime__c;
|
e.EndDateTime = ec.EndDateTime__c;
|
e.DurationInMinutes = Integer.valueOf((ec.EndDateTime__c.getTime() - ec.StartDateTime__c.getTime()) / 1000 / 60);
|
e.Main_Visit_Location__c = ec.Main_Visit_Location__c;
|
e.Activity_Type2__c = ec.Activity_Type2__c;
|
e.Purpose_Type__c = ec.Purpose_Type__c;
|
e.Purpose_TypeFSE__c = ec.Purpose_TypeFSE__c;
|
e.Purpose_TypeEscFSE__c = ec.Purpose_TypeEscFSE__c;
|
e.Location = String.isBlank(ec.Location__c) ? ec.Visitor_Place_Free__c : ec.Location__c;
|
e.Related_Opportunity1__c = ec.Related_Opportunity1__c;
|
e.Related_Opportunity1_ID__c = ec.Related_Opportunity1_ID__c;
|
e.Related_Opportunity2__c = ec.Related_Opportunity2__c;
|
e.Related_Opportunity2_ID__c = ec.Related_Opportunity2_ID__c;
|
e.Related_Opportunity3__c = ec.Related_Opportunity3__c;
|
e.Related_Opportunity3_ID__c = ec.Related_Opportunity3_ID__c;
|
e.Related_Opportunity4__c = ec.Related_Opportunity4__c;
|
e.Related_Opportunity4_ID__c = ec.Related_Opportunity4_ID__c;
|
e.Related_Opportunity5__c = ec.Related_Opportunity5__c;
|
e.Related_Opportunity5_ID__c = ec.Related_Opportunity5_ID__c;
|
e.Related_Service1__c = ec.Related_Service1__c;
|
e.Related_Service1_ID__c = ec.Related_Service1_ID__c;
|
e.Visitor1__c = ec.Visitor1__c;
|
e.Visitor2__c = ec.Visitor2__c;
|
e.Visitor3__c = ec.Visitor3__c;
|
e.Visitor4__c = ec.Visitor4__c;
|
e.Visitor5__c = ec.Visitor5__c;
|
e.Visitor1_ID__c = ec.Visitor1_ID__c;
|
e.Visitor2_ID__c = ec.Visitor2_ID__c;
|
e.Visitor3_ID__c = ec.Visitor3_ID__c;
|
e.Visitor4_ID__c = ec.Visitor4_ID__c;
|
e.Visitor5_ID__c = ec.Visitor5_ID__c;
|
e.Activity_Purpose__c = ec.Activity_Purpose__c;
|
e.Activity_PurposeFSE__c = ec.Activity_PurposeFSE__c;
|
e.Activity_PurposeEscFSE__c = ec.Activity_PurposeEscFSE__c;
|
e.whatid__c = ec.whatid__c;
|
e.EventC_ID__c = ec.Id;
|
e.WhatId = ec.Daily_Report__c;
|
e.IsScheduled__c = ec.IsScheduled__c;
|
e.BeforeActivityDate__c = ec.BeforeActivityDate__c;
|
e.AppCdId__c = ec.AppCdId__c;
|
e.SyncCreatedDate__c = ec.SyncCreatedDate__c;
|
e.WS_flg__c = false;
|
if (e.IsDeleted) {
|
System.debug('e.IsDeleted:::::'+e.IsDeleted);
|
unDelList.add(e);
|
}
|
if (ec.Activity_Type2__c == 'Holiday') {
|
e.ShowAs = 'OutOfOffice';
|
}
|
upsList.add(e);
|
eventCMap.remove(e.EventC_ID__c); // 更新したものをMapから削除
|
dupUpdIdMap.put(e.Id, e.Id);
|
}
|
}
|
}
|
List<Event__c> ecList = eventCMap.values();
|
// ②参照IDあるものを除いて、新規
|
if (ecList.size() > 0) {
|
List<Event> insE = new List<Event>();
|
for (Event__c ec : ecList) {
|
// Event__cにEvent_ID__cがない、つまり日報画面から作成された時
|
if (ec.Event_ID__c == null) {
|
System.debug('Event__cにEvent_ID__cがない、つまり日報画面から作成された時:::::' + ec.Id);
|
System.debug('ec.Subject__c:::::'+ec.Subject__c);
|
System.debug('ec.StartDateTime__c:::::'+ec.StartDateTime__c);
|
System.debug('ec.EndDateTime__c:::::'+ec.EndDateTime__c);
|
System.debug('ec.DurationInMinutes:::::' + Integer.valueOf((ec.EndDateTime__c.getTime() - ec.StartDateTime__c.getTime()) / 1000 / 60));
|
System.debug('ec.Daily_Report__c:::::'+ec.Daily_Report__c);
|
System.debug('ec.Main_Visit_Location__c:::::'+ec.Main_Visit_Location__c);
|
System.debug('ec.Activity_Type2__c:::::'+ec.Activity_Type2__c);
|
System.debug('ec.Purpose_Type__c:::::'+ec.Purpose_Type__c);
|
System.debug('ec.Location__c:::::'+ec.Location__c);
|
System.debug('ec.Related_Opportunity1__c:::::'+ec.Related_Opportunity1__c);
|
System.debug('ec.Related_Opportunity1_ID__c:::::'+ec.Related_Opportunity1_ID__c);
|
System.debug('ec.Related_Service1__c:::::'+ec.Related_Service1__c);
|
System.debug('ec.Related_Service1_ID__c:::::'+ec.Related_Service1_ID__c);
|
System.debug('ec.whatid__c:::::'+ec.whatid__c);
|
Event e = new Event(
|
OwnerId = ec.Reporter__c,
|
Subject = (ec.Subject__c==null||ec.Subject__c=='')?ec.Activity_Purpose__c:ec.Subject__c,
|
IsAllDayEvent = false,
|
ActivityDateTime = ec.StartDateTime__c,
|
StartDateTime = ec.StartDateTime__c,
|
EndDateTime = ec.EndDateTime__c,
|
DurationInMinutes = Integer.valueOf((ec.EndDateTime__c.getTime() - ec.StartDateTime__c.getTime()) / 1000 / 60),
|
Main_Visit_Location__c = ec.Main_Visit_Location__c,
|
Activity_Type2__c = ec.Activity_Type2__c,
|
Purpose_Type__c = ec.Purpose_Type__c,
|
Purpose_TypeFSE__c = ec.Purpose_TypeFSE__c,
|
Purpose_TypeEscFSE__c = ec.Purpose_TypeEscFSE__c,
|
Location = String.isBlank(ec.Location__c) ? ec.Visitor_Place_Free__c : ec.Location__c,
|
Related_Opportunity1__c = ec.Related_Opportunity1__c,
|
Related_Opportunity1_ID__c = ec.Related_Opportunity1_ID__c,
|
Related_Opportunity2__c = ec.Related_Opportunity2__c,
|
Related_Opportunity2_ID__c = ec.Related_Opportunity2_ID__c,
|
Related_Opportunity3__c = ec.Related_Opportunity3__c,
|
Related_Opportunity3_ID__c = ec.Related_Opportunity3_ID__c,
|
Related_Opportunity4__c = ec.Related_Opportunity4__c,
|
Related_Opportunity4_ID__c = ec.Related_Opportunity4_ID__c,
|
Related_Opportunity5__c = ec.Related_Opportunity5__c,
|
Related_Opportunity5_ID__c = ec.Related_Opportunity5_ID__c,
|
Related_Service1__c = ec.Related_Service1__c,
|
Related_Service1_ID__c = ec.Related_Service1_ID__c,
|
Visitor1__c = ec.Visitor1__c,
|
Visitor2__c = ec.Visitor2__c,
|
Visitor3__c = ec.Visitor3__c,
|
Visitor4__c = ec.Visitor4__c,
|
Visitor5__c = ec.Visitor5__c,
|
Visitor1_ID__c = ec.Visitor1_ID__c,
|
Visitor2_ID__c = ec.Visitor2_ID__c,
|
Visitor3_ID__c = ec.Visitor3_ID__c,
|
Visitor4_ID__c = ec.Visitor4_ID__c,
|
Visitor5_ID__c = ec.Visitor5_ID__c,
|
Activity_Purpose__c = ec.Activity_Purpose__c,
|
Activity_PurposeFSE__c = ec.Activity_PurposeFSE__c,
|
Activity_PurposeEscFSE__c = ec.Activity_PurposeEscFSE__c,
|
whatid__c = ec.whatid__c,
|
EventC_ID__c = ec.Id,
|
IsScheduled__c = ec.IsScheduled__c,
|
WhatId = ec.Daily_Report__c,
|
BeforeActivityDate__c = ec.BeforeActivityDate__c,
|
AppCdId__c = ec.AppCdId__c,
|
SyncCreatedDate__c = ec.SyncCreatedDate__c,
|
WS_flg__c = false,
|
EventStatus__c = '02 接受'
|
);
|
if (ec.Activity_Type2__c == 'Holiday') {
|
e.ShowAs = 'OutOfOffice';
|
}
|
upsList.add(e);
|
//2021-08-30 mzy SWAG-C5784H 【委托】事件无法延期 start
|
//报告一览新建事件时,将事件的Id赋值到报告一览上
|
idSet.add(ec.Id);
|
//2021-08-30 mzy SWAG-C5784H 【委托】事件无法延期 end
|
} else {
|
// シンプルから遷移する場合、Event_ID__c必ずあるから、パス
|
}
|
}
|
}
|
|
// Event__cにEventへの参照IDがある
|
if (eventC_eventMap.keySet().size() > 0) {
|
List<Event> eList = [select Id, IsDeleted from Event where Id in :eventC_eventMap.keySet() and IsArchived = false all rows];
|
if (eList.size() > 0) {
|
for (Event e : eList) {
|
if (dupUpdIdMap.containsKey(e.Id)) {
|
continue;
|
}
|
updateEIds.add(e.Id);
|
Event__c ec = eventC_eventMap.get(e.Id);
|
System.debug('Event__cにEventへの参照IDがある:::::' + e.Id + ',' + ec.Id);
|
System.debug('ec.Subject__c:::::'+ec.Subject__c);
|
System.debug('ec.StartDateTime__c:::::'+ec.StartDateTime__c);
|
System.debug('ec.EndDateTime__c:::::'+ec.EndDateTime__c);
|
System.debug('ec.DurationInMinutes:::::' + Integer.valueOf((ec.EndDateTime__c.getTime() - ec.StartDateTime__c.getTime()) / 1000 / 60));
|
System.debug('ec.Daily_Report__c:::::'+ec.Daily_Report__c);
|
System.debug('ec.Main_Visit_Location__c:::::'+ec.Main_Visit_Location__c);
|
System.debug('ec.Activity_Type2__c:::::'+ec.Activity_Type2__c);
|
System.debug('ec.Purpose_Type__c:::::'+ec.Purpose_Type__c);
|
System.debug('ec.Location__c:::::'+ec.Location__c);
|
System.debug('ec.Related_Opportunity1__c:::::'+ec.Related_Opportunity1__c);
|
System.debug('ec.Related_Opportunity1_ID__c:::::'+ec.Related_Opportunity1_ID__c);
|
System.debug('ec.Related_Service1__c:::::'+ec.Related_Service1__c);
|
System.debug('ec.Related_Service1_ID__c:::::'+ec.Related_Service1_ID__c);
|
System.debug('ec.whatid__c:::::'+ec.whatid__c);
|
e.Subject = (ec.Subject__c==null||ec.Subject__c=='')?ec.Activity_Purpose__c:ec.Subject__c;
|
e.IsAllDayEvent = false;
|
e.ActivityDateTime = ec.StartDateTime__c;
|
e.StartDateTime = ec.StartDateTime__c;
|
e.EndDateTime = ec.EndDateTime__c;
|
e.DurationInMinutes = Integer.valueOf((ec.EndDateTime__c.getTime() - ec.StartDateTime__c.getTime()) / 1000 / 60);
|
e.Main_Visit_Location__c = ec.Main_Visit_Location__c;
|
e.Activity_Type2__c = ec.Activity_Type2__c;
|
e.Purpose_Type__c = ec.Purpose_Type__c;
|
e.Purpose_TypeFSE__c = ec.Purpose_TypeFSE__c;
|
e.Purpose_TypeEscFSE__c = ec.Purpose_TypeEscFSE__c;
|
e.Location = String.isBlank(ec.Location__c) ? ec.Visitor_Place_Free__c : ec.Location__c;
|
e.Related_Opportunity1__c = ec.Related_Opportunity1__c;
|
e.Related_Opportunity1_ID__c = ec.Related_Opportunity1_ID__c;
|
e.Related_Opportunity2__c = ec.Related_Opportunity2__c;
|
e.Related_Opportunity2_ID__c = ec.Related_Opportunity2_ID__c;
|
e.Related_Opportunity3__c = ec.Related_Opportunity3__c;
|
e.Related_Opportunity3_ID__c = ec.Related_Opportunity3_ID__c;
|
e.Related_Opportunity4__c = ec.Related_Opportunity4__c;
|
e.Related_Opportunity4_ID__c = ec.Related_Opportunity4_ID__c;
|
e.Related_Opportunity5__c = ec.Related_Opportunity5__c;
|
e.Related_Opportunity5_ID__c = ec.Related_Opportunity5_ID__c;
|
e.Related_Service1__c = ec.Related_Service1__c;
|
e.Related_Service1_ID__c = ec.Related_Service1_ID__c;
|
e.Visitor1__c = ec.Visitor1__c;
|
e.Visitor2__c = ec.Visitor2__c;
|
e.Visitor3__c = ec.Visitor3__c;
|
e.Visitor4__c = ec.Visitor4__c;
|
e.Visitor5__c = ec.Visitor5__c;
|
e.Visitor1_ID__c = ec.Visitor1_ID__c;
|
e.Visitor2_ID__c = ec.Visitor2_ID__c;
|
e.Visitor3_ID__c = ec.Visitor3_ID__c;
|
e.Visitor4_ID__c = ec.Visitor4_ID__c;
|
e.Visitor5_ID__c = ec.Visitor5_ID__c;
|
e.Activity_Purpose__c = ec.Activity_Purpose__c;
|
e.Activity_PurposeFSE__c = ec.Activity_PurposeFSE__c;
|
e.Activity_PurposeEscFSE__c = ec.Activity_PurposeEscFSE__c;
|
e.whatid__c = ec.whatid__c;
|
e.EventC_ID__c = ec.Id;
|
e.IsScheduled__c = ec.IsScheduled__c;
|
e.WhatId = ec.Daily_Report__c;
|
e.BeforeActivityDate__c = ec.BeforeActivityDate__c;
|
e.AppCdId__c = ec.AppCdId__c;
|
e.SyncCreatedDate__c = ec.SyncCreatedDate__c;
|
e.WS_flg__c = false;
|
if (e.IsDeleted) {
|
System.debug('e.IsDeleted:::::'+e.IsDeleted);
|
unDelList.add(e);
|
}
|
if (ec.Activity_Type2__c == 'Holiday') {
|
e.ShowAs = 'OutOfOffice';
|
}
|
upsList.add(e);
|
}
|
}
|
}
|
StaticParameter.NotUpdEventCFlg = true;
|
if (unDelList.size() > 0) undelete unDelList;
|
if (upsList.size() > 0) {
|
List<Event> eList = [select EventC_ID__c, IsDeleted, Related_Opportunity1_ID__c,WhatId, WhoID from Event where Id in :updateEIds and IsArchived = false for update];
|
System.debug('upsert 直前 start');
|
for (Event e : eList) {
|
System.debug('e.Id:::::'+e.Id);
|
System.debug('e.EventC_ID__c:::::'+e.EventC_ID__c);
|
System.debug('e.IsDeleted:::::'+e.IsDeleted);
|
System.debug('e.Related_Opportunity1_ID__c:::::'+e.Related_Opportunity1_ID__c);
|
System.debug('e.WhatId:::::'+e.WhatId);
|
System.debug('e.WhoID:::::'+e.WhoID);
|
}
|
System.debug('upsert 直前 end');
|
upsert upsList;
|
//2021-08-30 mzy SWAG-C5784H 【委托】事件无法延期 start
|
//根据IdSet 给报告一览的事件Id赋值
|
List<Event__c> needUpdateEvent = new List<Event__c>();
|
for(event e :upsList){
|
if( IdSet.contains(e.EventC_ID__c) ){
|
Event__c ec = new Event__c();
|
ec.Id = e.EventC_ID__c;
|
ec.Event_ID__c = e.Id;
|
needUpdateEvent.add(ec);
|
}
|
}
|
|
if(needUpdateEvent.size()>0){
|
update needUpdateEvent;
|
}
|
//2021-08-30 mzy SWAG-C5784H 【委托】事件无法延期 start
|
|
}
|
}
|
|
public static void eventDelIns(Set<Id> actDelListForDelIns,
|
List<Activity_History_Daily_Report__c> ahdrUpSertList, List<Event_Oppotunity__c> eoUpSertList,List<Event_Service__c> esUpSertList){
|
// 取引先責任者、引合、サービス契約の活動は delete insert する
|
List<Activity_History_Daily_Report__c> ahdrDelList = [select id from Activity_History_Daily_Report__c where EventC_ID__c =:actDelListForDelIns ];
|
List<Event_Oppotunity__c> eoDelList = [select id from Event_Oppotunity__c where EventC_ID__c =:actDelListForDelIns ];
|
List<Event_Service__c> esDelList = [select id from Event_Service__c where EventC_ID__c =:actDelListForDelIns ];
|
|
if(ahdrDelList.size() > 0){
|
delete ahdrDelList;
|
}
|
if(eoDelList.size() > 0){
|
delete eoDelList;
|
}
|
if(esDelList.size() > 0){
|
delete esDelList;
|
}
|
if(ahdrUpSertList.size() > 0){
|
insert ahdrUpSertList;
|
}
|
if(eoUpSertList.size() > 0){
|
insert eoUpSertList;
|
}
|
if(esUpSertList.size() > 0){
|
insert esUpSertList;
|
}
|
}
|
|
public static void eventDel(String delId){
|
List<Event__c> ecList = [select id from Event__c where Id =:delId];
|
if(ecList.size() > 0){
|
delete ecList;
|
}
|
|
List<Report__c> rList = [select id, Delete_Flg__c from Report__c where Event_Id__c =:delId];
|
if(rList.size() > 0){
|
delete rList;
|
}
|
|
List<Visit_Report__c> vrList = [select id, Delete_Flg__c from Visit_Report__c where Event_Id__c =:delId];
|
if(vrList.size() > 0){
|
delete vrList;
|
}
|
|
List<QIS_Report__c> qrList = [select id from QIS_Report__c where Event_Id__c =:delId];
|
if(qrList.size() > 0){
|
delete qrList;
|
}
|
|
List<Activity_History_Daily_Report__c> e1List = [select id from Activity_History_Daily_Report__c where EventC_Id__c =:delId];
|
if(e1List.size() > 0){
|
delete e1List;
|
}
|
|
List<Event_Oppotunity__c> e2List = [select id from Event_Oppotunity__c where EventC_Id__c =:delId];
|
if(e2List.size() > 0){
|
delete e2List;
|
}
|
|
List<Event_Service__c> e3List = [select id from Event_Service__c where EventC_Id__c =:delId];
|
if(e3List.size() > 0){
|
delete e3List;
|
}
|
}
|
|
public static void insOpp2List(List<Opportunity2__c> opp2List){
|
if (opp2List != null && opp2List.size() > 0) insert opp2List;
|
}
|
public static void updOpp2List(List<Opportunity2__c> opp2List){
|
if (opp2List != null && opp2List.size() > 0) update opp2List;
|
}
|
public static void delOpp2List(List<Opportunity2__c> opp2List){
|
if (opp2List != null && opp2List.size() > 0) delete opp2List;
|
}
|
|
public static void insPr2List(List<Product2__c> pr2List){
|
if (pr2List != null && pr2List.size() > 0) insert pr2List;
|
}
|
public static void updelPr2List(List<Product2__c> updPr2List, List<Product2__c> delPr2List){
|
if (updPr2List != null && updPr2List.size() > 0) update updPr2List;
|
if (delPr2List != null && delPr2List.size() > 0) delete delPr2List;
|
}
|
public static void delPr2List(List<Product2__c> pr2List){
|
if (pr2List != null && pr2List.size() > 0) delete pr2List;
|
}
|
|
public static void insMBAccountList(List<MB_Account__c> mbaccList){
|
if (mbaccList != null && mbaccList.size() > 0) insert mbaccList;
|
}
|
public static void delMBAccountList(List<Account> accountIds){
|
List<MB_Account__c> mbaccs = [select Id, Account__c from MB_Account__c where Account__c in :accountIds];
|
if (mbaccs != null && mbaccs.size() > 0) delete mbaccs;
|
}
|
|
public static void updMBAccountList(List<Account> accountIds){
|
List<MB_Account__c> mbaccs = [select Id, Account__r.HP_146POCM_Category_From_Dept__c, Account__r.Province_formula__c, Account__r.Department_Class_Name__c from MB_Account__c where Account__c in :accountIds];
|
if (mbaccs.size() > 0) {
|
for (MB_Account__c mbacc : mbaccs) {
|
mbacc.Opp_OCM_text__c = mbacc.Account__r.HP_146POCM_Category_From_Dept__c;
|
mbacc.State_Text__c = mbacc.Account__r.Province_formula__c;
|
mbacc.Opportunity_Category_text__c = mbacc.Account__r.Department_Class_Name__c;
|
}
|
update mbaccs;
|
}
|
}
|
|
// 診療科配下のMBテーブルを更新
|
public static void updMBChildFromDpt(Map<Id, Account> accDptMap) {
|
if (accDptMap.keySet().size() == 0) return;
|
List<MB_Repair__c> mbRepList = [Select Id, Repair__r.Account__c from MB_Repair__c where Repair__r.Account__c IN :accDptMap.keySet()];
|
if (mbRepList.size() > 0) {
|
for (MB_Repair__c mb : mbRepList) {
|
mb.Opp_OCM_text__c = accDptMap.get(mb.Repair__r.Account__c).OCM_Category__c;
|
mb.State_Text__c = accDptMap.get(mb.Repair__r.Account__c).State_Text__c;
|
mb.Opportunity_Category_text__c = accDptMap.get(mb.Repair__r.Account__c).Department_Class_Name__c;
|
}
|
update mbRepList;
|
}
|
List<MB_Event__c> mbEvtList = [Select Id, Event__r.Account_ID__c from MB_Event__c where Event__r.Account_ID__c IN :accDptMap.keySet()];
|
if (mbEvtList.size() > 0) {
|
for (MB_Event__c mb : mbEvtList) {
|
mb.Opp_OCM_text__c = accDptMap.get(mb.Event__r.Account_ID__c).OCM_Category__c;
|
mb.State_Text__c = accDptMap.get(mb.Event__r.Account_ID__c).State_Text__c;
|
mb.Opportunity_Category_text__c = accDptMap.get(mb.Event__r.Account_ID__c).Department_Class_Name__c;
|
}
|
update mbEvtList;
|
}
|
List<MB_Report__c> mbRptList = [Select Id, Report__r.Hospital_Department__c from MB_Report__c where Report__r.Hospital_Department__c IN :accDptMap.keySet()];
|
if (mbRptList.size() > 0) {
|
for (MB_Report__c mb : mbRptList) {
|
mb.Opp_OCM_text__c = accDptMap.get(mb.Report__r.Hospital_Department__c).OCM_Category__c;
|
mb.State_Text__c = accDptMap.get(mb.Report__r.Hospital_Department__c).State_Text__c;
|
mb.Opportunity_Category_text__c = accDptMap.get(mb.Report__r.Hospital_Department__c).Department_Class_Name__c;
|
}
|
update mbRptList;
|
}
|
List<MB_Maintenance_Contract__c> mbmcList = [Select Id, Maintenance_Contract__r.Department__c from MB_Maintenance_Contract__c where Maintenance_Contract__r.Department__c IN :accDptMap.keySet()];
|
if (mbmcList.size() > 0) {
|
for (MB_Maintenance_Contract__c mb : mbmcList) {
|
mb.Opp_OCM_text__c = accDptMap.get(mb.Maintenance_Contract__r.Department__c).OCM_Category__c;
|
mb.State_Text__c = accDptMap.get(mb.Maintenance_Contract__r.Department__c).State_Text__c;
|
mb.Opportunity_Category_text__c = accDptMap.get(mb.Maintenance_Contract__r.Department__c).Department_Class_Name__c;
|
}
|
update mbmcList;
|
}
|
List<MB_Asset__c> mbAstList = [Select Id, Asset__r.AccountId from MB_Asset__c where Asset__r.AccountId IN :accDptMap.keySet()];
|
if (mbAstList.size() > 0) {
|
for (MB_Asset__c mb : mbAstList) {
|
mb.Opp_OCM_text__c = accDptMap.get(mb.Asset__r.AccountId).OCM_Category__c;
|
mb.State_Text__c = accDptMap.get(mb.Asset__r.AccountId).State_Text__c;
|
mb.Opportunity_Category_text__c = accDptMap.get(mb.Asset__r.AccountId).Department_Class_Name__c;
|
}
|
update mbAstList;
|
}
|
// 商談、商談商品、注残について、OCM_Category__c が違う場合のみ 更新対象
|
List<MB_Opportunity__c> mboppList = [Select Id, Opportunity__r.AccountId from MB_Opportunity__c where OCM_IsSame__c = false and Opportunity__r.AccountId IN :accDptMap.keySet()];
|
if (mboppList.size() > 0) {
|
for (MB_Opportunity__c mb : mboppList) {
|
mb.Opp_OCM_text__c = accDptMap.get(mb.Opportunity__r.AccountId).OCM_Category__c;
|
}
|
update mboppList;
|
}
|
List<MB_OpportunityLineItem__c> mbOliList = [Select Id, Opportunity__r.AccountId from MB_OpportunityLineItem__c where OCM_IsSame__c = false and Opportunity__r.AccountId IN :accDptMap.keySet()];
|
if (mbOliList.size() > 0) {
|
for (MB_OpportunityLineItem__c mb : mbOliList) {
|
mb.Opp_OCM_text__c = accDptMap.get(mb.Opportunity__r.AccountId).OCM_Category__c;
|
}
|
update mbOliList;
|
}
|
List<MB_Statu_Achievements__c> mbSAList = [Select Id, Statu_Achievements__r.Opportunity__r.AccountId from MB_Statu_Achievements__c where OCM_IsSame__c = false and Statu_Achievements__r.Opportunity__r.AccountId IN :accDptMap.keySet()];
|
if (mbSAList.size() > 0) {
|
for (MB_Statu_Achievements__c mb : mbSAList) {
|
mb.Opp_OCM_text__c = accDptMap.get(mb.Statu_Achievements__r.Opportunity__r.AccountId).OCM_Category__c;
|
}
|
update mbSAList;
|
}
|
}
|
public static void updMBChildFromOpp(Map<Id, Opportunity> oppMap) {
|
if (oppMap.keySet().size() == 0) return;
|
List<MB_Opportunity__c> mboppList = [Select Id, Opportunity__c from MB_Opportunity__c where Opportunity__c IN :oppMap.keySet()];
|
if (mboppList.size() > 0) {
|
for (MB_Opportunity__c mb : mboppList) {
|
mb.State_Text__c = oppMap.get(mb.Opportunity__c).SaleProvince_SAP__c;
|
mb.Opportunity_Category_text__c = oppMap.get(mb.Opportunity__c).Opportunity_Category__c;
|
mb.Distributor_InCharge_opp__c = oppMap.get(mb.Opportunity__c).Distributor_InCharge_opp__c;
|
mb.Group_purchase_PCL__c = oppMap.get(mb.Opportunity__c).Group_purchase_PCL__c;
|
}
|
update mboppList;
|
}
|
List<MB_OpportunityLineItem__c> mbOliList = [Select Id, Opportunity__c from MB_OpportunityLineItem__c where Opportunity__c IN :oppMap.keySet()];
|
if (mbOliList.size() > 0) {
|
for (MB_OpportunityLineItem__c mb : mbOliList) {
|
mb.State_Text__c = oppMap.get(mb.Opportunity__c).SaleProvince_SAP__c;
|
mb.Opportunity_Category_text__c = oppMap.get(mb.Opportunity__c).Opportunity_Category__c;
|
mb.Distributor_InCharge_opp__c = oppMap.get(mb.Opportunity__c).Distributor_InCharge_opp__c;
|
mb.Group_purchase_PCL__c = oppMap.get(mb.Opportunity__c).Group_purchase_PCL__c;
|
}
|
update mbOliList;
|
}
|
List<MB_Statu_Achievements__c> mbSAList = [Select Id, Statu_Achievements__r.Opportunity__c from MB_Statu_Achievements__c where Statu_Achievements__r.Opportunity__c IN :oppMap.keySet()];
|
if (mbSAList.size() > 0) {
|
for (MB_Statu_Achievements__c mb : mbSAList) {
|
mb.State_Text__c = oppMap.get(mb.Statu_Achievements__r.Opportunity__c).SaleProvince_SAP__c;
|
mb.Opportunity_Category_text__c = oppMap.get(mb.Statu_Achievements__r.Opportunity__c).Opportunity_Category__c;
|
mb.Distributor_InCharge_opp__c = oppMap.get(mb.Statu_Achievements__r.Opportunity__c).Distributor_InCharge_opp__c;
|
// mb.Group_purchase_PCL__c = oppMap.get(mb.Statu_Achievements__r.Opportunity__c).Group_purchase_PCL__c;
|
}
|
update mbSAList;
|
}
|
}
|
public static void updMBChildFromUser(Map<Id, User> userMap) {
|
// 目標について、運用側で、目標画面にて再保存すること
|
if (userMap.keySet().size() == 0) return;
|
List<MB_Daily_Report__c> mbDRList = [Select Id, Daily_Report__r.Reporter__c from MB_Daily_Report__c where Daily_Report__r.Reporter__c IN :userMap.keySet()];
|
if (mbDRList.size() > 0) {
|
for (MB_Daily_Report__c mb : mbDRList) {
|
mb.State_Text__c = userMap.get(mb.Daily_Report__r.Reporter__c).Province__c;
|
}
|
update mbDRList;
|
}
|
List<MB_Event__c> mbEvtList = [Select Id, Event__r.Daily_Report__r.Reporter__c from MB_Event__c where Event__r.Hospital_ID__c = null and Event__r.Daily_Report__r.Reporter__c IN :userMap.keySet()];
|
if (mbEvtList.size() > 0) {
|
for (MB_Event__c mb : mbEvtList) {
|
mb.State_Text__c = userMap.get(mb.Event__r.Daily_Report__r.Reporter__c).Province__c;
|
}
|
update mbEvtList;
|
}
|
}
|
public static void upUserFederationIdentifier(List<User> userList) {
|
update userList;
|
}
|
|
public static void insMBStatuAchievementList(List<MB_Statu_Achievements__c> ins_mbs){
|
if (ins_mbs != null && ins_mbs.size() > 0) insert ins_mbs;
|
}
|
public static void delMBStatuAchievementList(List<Statu_Achievements__c> del_parents){
|
List<MB_Statu_Achievements__c> mbSAList = [select Id, Statu_Achievements__c from MB_Statu_Achievements__c where Statu_Achievements__c in :del_parents];
|
if (mbSAList != null && mbSAList.size() > 0) delete mbSAList;
|
}
|
|
public static void insMBRepairList(List<MB_Repair__c> mbrepairList){
|
if (mbrepairList != null && mbrepairList.size() > 0) insert mbrepairList;
|
}
|
public static void delMBRepairList(List<Repair__c> del_parents){
|
List<MB_Repair__c> mbrepairList = [select Id, Repair__c from MB_Repair__c where Repair__c in :del_parents];
|
if (mbrepairList != null && mbrepairList.size() > 0) delete mbrepairList;
|
}
|
|
public static void insMBEventList(List<MB_Event__c> mbeventList){
|
if (mbeventList != null && mbeventList.size() > 0) insert mbeventList;
|
}
|
public static void delMBEventList(List<Event__c> del_parents){
|
List<MB_Event__c> mbeventList = [select Id, Event__c from MB_Event__c where Event__c in :del_parents];
|
if (mbeventList != null && mbeventList.size() > 0) delete mbeventList;
|
}
|
|
public static void insMBReportList(List<MB_Report__c> mbreportList){
|
if (mbreportList != null && mbreportList.size() > 0) insert mbreportList;
|
}
|
public static void delMBReportList(List<Report__c> del_parents){
|
List<MB_Report__c> mbreportList = [select Id, Report__c from MB_Report__c where Report__c in :del_parents];
|
if (mbreportList != null && mbreportList.size() > 0) delete mbreportList;
|
}
|
|
public static void insMBDRList(List<MB_Daily_Report__c> mbdrList){
|
if (mbdrList != null && mbdrList.size() > 0) insert mbdrList;
|
}
|
public static void delMBDRList(List<Daily_Report__c> del_parents){
|
List<MB_Daily_Report__c> mbdrList = [select Id, Daily_Report__c from MB_Daily_Report__c where Daily_Report__c in :del_parents];
|
if (mbdrList != null && mbdrList.size() > 0) delete mbdrList;
|
}
|
|
public static void insMBMCList(List<MB_Maintenance_Contract__c> mbmcList){
|
if (mbmcList != null && mbmcList.size() > 0) insert mbmcList;
|
}
|
public static void delMBMCList(List<Maintenance_Contract__c> del_parents){
|
List<MB_Maintenance_Contract__c> mbmcList = [select Id, Maintenance_Contract__c from MB_Maintenance_Contract__c where Maintenance_Contract__c in :del_parents];
|
if (mbmcList != null && mbmcList.size() > 0) delete mbmcList;
|
}
|
|
public static void insMBTgtList(List<MB_Target__c> mbtgtList){
|
if (mbtgtList != null && mbtgtList.size() > 0) insert mbtgtList;
|
}
|
public static void delMBTgtList(List<Opportunity> del_parents){
|
List<MB_Target__c> mbtgtList = [select Id, Opportunity__c from MB_Target__c where Opportunity__c in :del_parents];
|
if (mbtgtList != null && mbtgtList.size() > 0) delete mbtgtList;
|
}
|
public static void insMBOppList(List<MB_Opportunity__c> mboppList){
|
if (mboppList != null && mboppList.size() > 0) insert mboppList;
|
}
|
public static void delMBOppList(List<Opportunity> del_parents){
|
List<MB_Opportunity__c> mboppList = [select Id, Opportunity__c from MB_Opportunity__c where Opportunity__c in :del_parents];
|
if (mboppList != null && mboppList.size() > 0) delete mboppList;
|
}
|
|
public static void insMBTgtLineItemList(List<MB_TargetLineItem__c> mbTliList){
|
if (mbTliList != null && mbTliList.size() > 0) insert mbTliList;
|
}
|
public static void delMBTgtLineItemList(List<String> del_parentIds){
|
List<MB_TargetLineItem__c> mbTliList = [select Id, Opportunity__c from MB_TargetLineItem__c where OpportunityLineItemId__c in :del_parentIds];
|
if (mbTliList != null && mbTliList.size() > 0) delete mbTliList;
|
}
|
public static void insMBOppLineItemList(List<MB_OpportunityLineItem__c> mbOliList){
|
if (mbOliList != null && mbOliList.size() > 0) insert mbOliList;
|
}
|
public static void delMBOppLineItemList(List<String> del_parentIds){
|
List<MB_OpportunityLineItem__c> mbOliList = [select Id, Opportunity__c from MB_OpportunityLineItem__c where OpportunityLineItemId__c in :del_parentIds];
|
if (mbOliList != null && mbOliList.size() > 0) delete mbOliList;
|
}
|
|
public static void insMBAssetList(List<MB_Asset__c> mbassList){
|
if (mbassList != null && mbassList.size() > 0) insert mbassList;
|
}
|
public static void delMBAssetList(List<Asset> del_parentIds) {
|
List<MB_Asset__c> mbassList = [select Id, Asset__c from MB_Asset__c where Asset__c in :del_parentIds];
|
if (mbassList != null && mbassList.size() > 0) delete mbassList;
|
}
|
|
public static void updDailyReport(Daily_Report__c report) {
|
System.debug('Daily_Report__c11111' + report);
|
update report;
|
}
|
|
public static void updMcList(List<Maintenance_Contract__c> mcs) {
|
update mcs;
|
}
|
|
public static void updQuote(Quote quo) {
|
update quo;
|
}
|
|
public static void delOppLine(List<OpportunityLineItem> ols) {
|
delete ols;
|
}
|
|
public static void insOppLine(List<OpportunityLineItem> ols) {
|
insert ols;
|
}
|
|
public static void updateMaintenance_Contract_Estimate(List<Maintenance_Contract_Estimate__c> mces) {
|
update mces;
|
}
|
public static void deleteMaintenance_Contract_Asset_Estimate(List<Maintenance_Contract_Asset_Estimate__c> mcaes) {
|
delete mcaes;
|
}
|
public static void insertMaintenance_Contract_Asset_Estimate(List<Maintenance_Contract_Asset_Estimate__c> mcaes) {
|
insert mcaes;
|
}
|
|
public static void insMaterialFor(List<Material_For__c> mfList) {
|
if (mfList != null && mfList.size() > 0) insert mfList;
|
}
|
|
public static void insProDocMidTbl(List<Product_and_document_middle_table__c> pdmtList) {
|
if (pdmtList != null && pdmtList.size() > 0) insert pdmtList;
|
}
|
|
public static void insCicProMidTbl(List<CIC_case_and_product_middle_table__c> cpmtList) {
|
if (cpmtList != null && cpmtList.size() > 0) insert cpmtList;
|
}
|
|
public static void delMaterialFor(String materialId, List<String> productIds) {
|
List<Material_For__c> dels = [select Id from Material_For__c where Material__c = :materialId and Product__c in :productIds];
|
if (dels.size() > 0) delete dels;
|
}
|
|
public static void delProDocMidTbl(String proDocId, List<String> productIds) {
|
List<Product_and_document_middle_table__c> dels = [select Id from Product_and_document_middle_table__c where Product_document__c = :proDocId and Product_name__c in :productIds];
|
if (dels.size() > 0) delete dels;
|
}
|
|
public static void delCicProMidTbl(String cicProId, List<String> productIds) {
|
List<CIC_case_and_product_middle_table__c> dels = [select Id from CIC_case_and_product_middle_table__c where CIC__c = :cicProId and Product__c in :productIds];
|
if (dels.size() > 0) delete dels;
|
}
|
|
//bp2
|
// // 备品用
|
// public static void updEquipmentSetList(List<Equipment_Set__c> esList) {
|
// if (esList != null && esList.size() > 0) update esList;
|
// }
|
// public static void updEquipmentSet(Equipment_Set__c es) {
|
// if (es != null) update es;
|
//// }
|
//bp2
|
// public static void setEquipmentSetProvisionFlg(Set<Id> esIds) {
|
// // 備品Setと貸出備品Set一覧の主従関係を解除したため、こうして備品Setに貸出備品Set一覧の件数を計算するしかない
|
// // 件数>0:「引当済」フラグ=True、でなければFalse
|
// AggregateResult[] ars = [select Count(Id) cnt, Equipment_Set__c from Rental_Apply_Equipment_Set__c where Equipment_Set__c in :esIds and RAES_Status__c != '上架完了'and RAES_Status__c != '取消分配' group by Equipment_Set__c];
|
// List<Equipment_Set__c> esList = new List<Equipment_Set__c>();
|
// for (AggregateResult ar : ars) {
|
// Equipment_Set__c es = new Equipment_Set__c();
|
// // レコードある
|
// if (esIds.contains(String.valueOf(ar.get('Equipment_Set__c')))) {
|
// esList.add(new Equipment_Set__c(
|
// Id = String.valueOf(ar.get('Equipment_Set__c')),
|
// Provision_finish__c = true
|
// ));
|
// esIds.remove((Id)String.valueOf(ar.get('Equipment_Set__c')));
|
// }
|
// }
|
// if (esIds.size() > 0) {
|
// for (Id id : esIds) {
|
// esList.add(new Equipment_Set__c(
|
// Id = id,
|
// Provision_finish__c = false
|
// ));
|
// }
|
// }
|
// update esList;
|
// }
|
//bp2
|
// public static Equipment_Set__c setEquipmentSetProvisionFlg(Equipment_Set__c es) {
|
// // 自分が「上架完了」になるのは、その後トリガでやりますから、ここは自分のIdを抜けて、自分以外の一覧は「上架完了」であるかを判断
|
// List<Rental_Apply_Equipment_Set__c> raeslist = [select Id from Rental_Apply_Equipment_Set__c where Equipment_Set__c = :es.Id and Id != :es.Last_Reserve_Rental_Apply_Equipment_Set__c and RAES_Status__c != '上架完了'and RAES_Status__c != '取消分配'];
|
// if (raeslist.size() == 0) {
|
// es.Provision_finish__c = false;
|
// }
|
// return es;
|
// }
|
|
//bp2 // 备品Set回库後、ほかの借出备品Set一览を通知
|
// public static void informOtherRAES(Id esId, Id lastRAESId) {
|
// List<Rental_Apply_Equipment_Set__c> raesList = [select Id, Re_Inform_Mail__c from Rental_Apply_Equipment_Set__c where Equipment_Set__c = :esId and Id != :lastRAESId order by Rental_Start_Date__c];
|
// if (raesList.size() > 0) {
|
// raesList[0].Re_Inform_Mail__c = (raesList[0].Re_Inform_Mail__c == null || raesList[0].Re_Inform_Mail__c == '0') ? '1' : '0';
|
// update raesList[0];
|
// }
|
// }
|
|
//bp2
|
// public static void insEquipmentSetDetail(List<Equipment_Set_Detail__c> esdList) {
|
// if (esdList != null && esdList.size() > 0) insert esdList;
|
// }
|
// public static void updEquipmentSetDetail(List<Equipment_Set_Detail__c> esdList) {
|
// if (esdList != null && esdList.size() > 0) update esdList;
|
// }
|
// public static void delEquipmentSetDetail(List<Equipment_Set_Detail__c> esdList) {
|
// if (esdList != null && esdList.size() > 0) delete esdList;
|
// }
|
|
public static void insRentalApply(Rental_Apply__c ra) {
|
if (ra != null) insert ra;
|
}
|
public static void updRentalApply(Rental_Apply__c ra) {
|
if (ra != null) update ra;
|
}
|
public static void updRentalApplyList(List<Rental_Apply__c> ra) {
|
if (ra.size() > 0) update ra;
|
}
|
public static void insRentalApplyEquipmentSet(List<Rental_Apply_Equipment_Set__c> raesList) {
|
if (raesList != null && raesList.size() > 0) insert raesList;
|
}
|
public static void delRentalApplyEquipmentSet(List<Rental_Apply_Equipment_Set__c> raesList) {
|
if (raesList != null && raesList.size() > 0) delete raesList;
|
}
|
public static void delConsumableAccessoriesInvoiceSet(List<Consumable_accessories_invoice__c> raesList) {
|
if (raesList != null && raesList.size() > 0) delete raesList;
|
}
|
|
////bp2
|
// public static void RAESDetailRollup(List<Id> raesIds) {
|
// Map<Id, AggregateResult> allCntAr = new Map<Id, AggregateResult>([
|
// select count(Id) Cnt_Id, Rental_Apply_Equipment_Set__c Id
|
// from Rental_Apply_Equipment_Set_Detail__c
|
// where Rental_Apply_Equipment_Set__c in : raesIds
|
// group by Rental_Apply_Equipment_Set__c
|
// ]);
|
// Map<Id, AggregateResult> cliCntAr = new Map<Id, AggregateResult>([
|
// select count(Id) Cnt_Id, Rental_Apply_Equipment_Set__c Id
|
// from Rental_Apply_Equipment_Set_Detail__c
|
// where Rental_Apply_Equipment_Set__c in : raesIds
|
// and Check_lost_Item__c = '欠品'
|
// group by Rental_Apply_Equipment_Set__c
|
// ]);
|
// Map<Id, AggregateResult> cdsCntAr = new Map<Id, AggregateResult>([
|
// select count(Id) Cnt_Id, Rental_Apply_Equipment_Set__c Id
|
// from Rental_Apply_Equipment_Set_Detail__c
|
// where Rental_Apply_Equipment_Set__c in : raesIds
|
////bp2 and CDS_complete_time__c = null
|
// and Asset__r.Loaner_CDS_Info__c = '需要清洗'
|
// group by Rental_Apply_Equipment_Set__c
|
// ]);
|
// Map<Id, AggregateResult> iraCntAr = new Map<Id, AggregateResult>([
|
// select count(Id) Cnt_Id, Rental_Apply_Equipment_Set__c Id
|
// from Rental_Apply_Equipment_Set_Detail__c
|
// where Rental_Apply_Equipment_Set__c in : raesIds
|
// and Inspection_result_after__c = 'NG'
|
// group by Rental_Apply_Equipment_Set__c
|
// ]);
|
// Map<Id, AggregateResult> aiwCntAr = new Map<Id, AggregateResult>([
|
// select count(Id) Cnt_id, Rental_Apply_Equipment_Set__c Id
|
// from Rental_Apply_Equipment_Set_Detail__c
|
// where Rental_Apply_Equipment_Set__c in : raesIds
|
// and Arrival_in_wh__c = false
|
// group by Rental_Apply_Equipment_Set__c
|
// ]);
|
// Map<Id, Rental_Apply_Equipment_Set__c> raesUpdMap = new Map<Id, Rental_Apply_Equipment_Set__c>();
|
// for (Id raesId : raesIds) {
|
// Rental_Apply_Equipment_Set__c raes = raesUpdMap.get(raesId);
|
// if (raes == null) {
|
// // raesIds に重複がある場合の対応、親Idなので配下のものを一緒に処理するとき発生します。
|
// // 集計した値は同じのはず、一回だけ設定すればいいです。
|
// raes = new Rental_Apply_Equipment_Set__c(
|
// Id = raesId,
|
// Count_Detail__c = 0,
|
// Count_Lost__c = 0,
|
// Count_NotComplete_CDS__c = 0,
|
// Count_NG_Inspection_Result_After__c = 0,
|
// Count_Not_Arrival_in_wh__c = 0
|
// );
|
// raesUpdMap.put(raesId, raes);
|
// if (allCntAr.get(raesId) != null) {
|
// raes.Count_Detail__c = Integer.valueOf(allCntAr.get(raesId).get('Cnt_Id'));
|
// }
|
// if (cliCntAr.get(raesId) != null) {
|
// raes.Count_Lost__c = Integer.valueOf(cliCntAr.get(raesId).get('Cnt_Id'));
|
// }
|
// if (cdsCntAr.get(raesId) != null) {
|
// raes.Count_NotComplete_CDS__c = Integer.valueOf(cdsCntAr.get(raesId).get('Cnt_Id'));
|
// }
|
// if (iraCntAr.get(raesId) != null) {
|
// raes.Count_NG_Inspection_Result_After__c = Integer.valueOf(iraCntAr.get(raesId).get('Cnt_Id'));
|
// }
|
// if (aiwCntAr.get(raesId) != null) {
|
// raes.Count_Not_Arrival_in_wh__c = Integer.valueOf(aiwCntAr.get(raesId).get('Cnt_Id'));
|
// }
|
// }
|
// }
|
// update raesUpdMap.values();
|
// }
|
|
// Assetから病院に積み上げよう
|
public static AggregateResult[] selectAssetSetHospitalCount(Set<Id> hpIds) {
|
return [select Account.Parent.ParentId Parent_ParentId,
|
Sum(This_year_inspection_times__c) SUM_inspection_times,
|
Sum(This_year_inspection_count__c) SUM_inspection_count
|
from Asset where Account.Parent.ParentId in : hpIds
|
group by Account.Parent.ParentId];
|
}
|
// Assetから戦略科室に積み上げよう
|
public static AggregateResult[] selectAssetSetDCCount(Set<Id> dcIds) {
|
return [select Account.ParentId Parent_Id,
|
Sum(This_year_inspection_times__c) SUM_inspection_times,
|
Sum(This_year_inspection_count__c) SUM_inspection_count
|
from Asset where Account.ParentId in : dcIds
|
group by Account.ParentId];
|
}
|
//日报用的,显示不属于自身权限的医院
|
public static List<Account> ShowAccount(list<String> AccountIdList){
|
List<Account> accountList = [select id,Name from Account where Id in :AccountIdList];
|
return accountList;
|
}
|
public static List<Campaign> ShowCampaign(list<String> CampaignIdList){
|
List<Campaign> campaignList = [select Id, Name from Campaign where Id in :CampaignIdList];
|
return campaignList;
|
}
|
// Smarm__cからUserに積み上げよう
|
public static AggregateResult[] selectSmarmSetUserCount(Set<Id> userIds, List<Id> delIds) {
|
if (delIds.size() == 0) {
|
return [select Review_Target__c Review_Target,
|
COUNT(Id) Cnt_Id,
|
Max(Report_Date__c) Max_Report_Date
|
from SMARM__c where Review_Target__c in : userIds
|
group by Review_Target__c];
|
} else {
|
return [select Review_Target__c Review_Target,
|
COUNT(Id) Cnt_Id,
|
Max(Report_Date__c) Max_Report_Date
|
from SMARM__c where Review_Target__c in : userIds
|
and Id not in : delIds
|
group by Review_Target__c];
|
}
|
}
|
public static void updateUserList(List<User> userList) {
|
update userList;
|
}
|
|
public static void upsertAsset(List<Asset> astList) {
|
if (astList.size() > 0) {
|
upsert astList;
|
}
|
}
|
public static void deleteAsset(List<Id> astIds) {
|
if (astIds.size() > 0) {
|
delete [Select Id from Asset where Id In: astIds];
|
}
|
}
|
|
// SoNo_DeliveryDate_Text__c にて upsert
|
public static void upsertStatuAchievementsJournalByKey(List<Statu_Achievements_Journal__c> pList) {
|
if (pList.size() > 0) {
|
upsert pList SoNo_DeliveryDate_Text__c;
|
}
|
}
|
public static List<Statu_Achievements_Journal__c> selectStatuAchievementsJournalByKey(List<String> pList) {
|
return [Select SoNo_DeliveryDate_Text__c, ShippedAmount__c from Statu_Achievements_Journal__c where SoNo_DeliveryDate_Text__c in :pList];
|
}
|
|
// CHAN-BCPCA3 插入并更新 虚拟 DN start
|
public static void upsertStatuAchievementsDNByKey(List<Statu_Achievements_DN__c> pList) {
|
if (pList.size() > 0) {
|
upsert pList DNKey__c;
|
}
|
}
|
// CHAN-BCPCA3 插入并更新 虚拟 DN end
|
|
public static void deleteStatuAchievementsJournalByKey(List<String> pList) {
|
for(List<Statu_Achievements_Journal__c> delList : [Select SoNo_DeliveryDate_Text__c, ShippedAmount__c from Statu_Achievements_Journal__c where SoNo_DeliveryDate_Text__c in :pList]) {
|
delete delList;
|
}
|
}
|
|
// 省単位 or 全国の診療科を検索,最初の50件
|
public static Map<Id, Account> selectDepartByHospitalState(String nameCondition, String reporterState, Integer limitCnt) {
|
User loginUser = [Select Id, State_Hospital__c, Job_Category__c from User where Id =: UserInfo.getUserId()];
|
String queryString = 'select Id, Name, Department_Class__c, Department_Class__r.Name, Hospital__c, Hospital__r.Name from Account where' + nameCondition + ' Hospital__r.RecordType.DeveloperName = \'HP\' and Is_Active__c <> \'無効\'';
|
if (loginUser.Job_Category__c == 'GI市场'
|
|| loginUser.Job_Category__c == 'SP市场'
|
|| loginUser.Job_Category__c == '服务本部'
|
|| loginUser.Job_Category__c == '培训'
|
) {
|
// 全国範囲、なにもしない
|
} else {
|
// 省単位の条件追加
|
system.debug('selectDepartByHospitalState reporterState=' + reporterState);
|
queryString += ' and Parent.Parent.State_Master__r.Name = :reporterState';
|
}
|
queryString += ' order by Name limit :limitCnt';
|
system.debug('selectDepartByHospitalState queryString=' + queryString);
|
return new Map<Id, Account>((List<Account>) Database.query(queryString));
|
}
|
|
public static void updateAgencyName(Map<Id, Account> hpNameAfterAccMap) {
|
List<Agency_Hospital_Link__c> ahls = [Select Id, Name,Hospital__c From Agency_Hospital_Link__c where Hospital__c in :hpNameAfterAccMap.keySet()];
|
List<Agency_Hospital_Link__c> updAHList = new List<Agency_Hospital_Link__c>();
|
if (ahls.size() > 0) {
|
for (Agency_Hospital_Link__c ahl: ahls) {
|
Account hp = hpNameAfterAccMap.get(ahl.Hospital__c);
|
String hpName = hp.Name;
|
if (ahl.Name != hpName) {
|
ahl.Name = hpName;
|
updAHList.add(ahl);
|
}
|
}
|
update updAHList;
|
}
|
}
|
|
public static void updateDeptName(Map<Id, Account> hpAfterAccMap) {
|
if (hpAfterAccMap.size() > 0) {
|
// 変更必要な 戦略課室、IDを集める
|
List<String> dcNameIds = new List<String>();
|
List<Account> updAccList = new List<Account>();
|
List<Account> updChkList = new List<Account>();
|
// 戦略課室ID:NAME
|
Map<String, String> dcNameMap = new Map<String, String>();
|
// 戦略課室名称を設定
|
List<Account> accDcs = [Select Id, Name, ParentId, Parent.RecordTypeId, Department_Class_Label__c from Account where ParentId IN :hpAfterAccMap.keySet()];
|
if (accDcs.size() > 0) {
|
for (Account child: accDcs) {
|
dcNameIds.add(child.Id);
|
if (child.Name != hpAfterAccMap.get(child.ParentId).Name + ' ' + child.Department_Class_Label__c) {
|
child.Name = hpAfterAccMap.get(child.ParentId).Name + ' ' + child.Department_Class_Label__c;
|
// 入力規則回避
|
child.Sys_Dept_Name_Change_Chk__c = true;
|
updChkList.add(child);
|
}
|
child.OCM_Category__c = hpAfterAccMap.get(child.ParentId).OCM_Category__c;
|
child.State_Text__c = hpAfterAccMap.get(child.ParentId).State_Text__c;
|
dcNameMap.put(child.Id, child.Name);
|
updAccList.add(child);
|
}
|
// 診療科名称を設定
|
List<Account> accDpts = [Select Id, Name, ParentId, Parent.ParentId, Department_Name__c from Account where ParentId IN :dcNameIds];
|
if (accDpts.size() > 0) {
|
for (Account child: accDpts) {
|
child.Name = dcNameMap.get(child.ParentId) + ' ' + child.Department_Name__c;
|
child.OCM_Category__c = hpAfterAccMap.get(child.Parent.ParentId).OCM_Category__c;
|
child.State_Text__c = hpAfterAccMap.get(child.Parent.ParentId).State_Text__c;
|
updAccList.add(child);
|
}
|
}
|
update updAccList;
|
// 入力規則回復
|
if (updChkList.size() > 0) {
|
for (Account child: updChkList) {
|
child.Sys_Dept_Name_Change_Chk__c = false;
|
}
|
update updChkList;
|
}
|
}
|
}
|
}
|
|
public static void collectDeptId(List<String> accIds, Map<String, String> purposeOfAdviceMap, List<String> hospitalIds) {
|
if (hospitalIds.size() > 0) {
|
List<Account> accList = [Select Id, Name, Is_Active__c, Hospital__c from Account where Hospital__c IN :hospitalIds];
|
for (Account acc : accList) {
|
accIds.add(acc.Id);
|
purposeOfAdviceMap.put(acc.Id, purposeOfAdviceMap.get(acc.Hospital__c));
|
}
|
}
|
}
|
|
public static void collectChildIdForAgent(List<String> accIds, Map<String, String> purposeOfAdviceMap, List<String> agentIds) {
|
if (agentIds.size() > 0) {
|
//-----------20180913---------XinHongLu-------------------Start--------------------
|
//Is_Active_Formula__c = '有效',该条件为"契约"为有效时,我们传给sap
|
//-----------20180913---------XinHongLu-------------------End--------------------
|
List<Account> accList = [Select Id, Name, Is_Active__c, Agent_Ref__c, AgencyContract_Management_Code__c from Account where Is_Active_Formula__c = '有效' and Agent_Ref__c IN :agentIds order by Agent_Ref__c, AgencyContract_Management_Code__c, CreatedDate desc];
|
if (accList.size() > 0) update accList;
|
String tmpAgentRef = null;
|
String tmpAgencyContractManagementCode = null;
|
for (Account acc : accList) {
|
if ((tmpAgentRef == null || tmpAgentRef != acc.Agent_Ref__c)
|
|| (tmpAgencyContractManagementCode == null || tmpAgencyContractManagementCode != acc.AgencyContract_Management_Code__c)) {
|
tmpAgentRef = acc.Agent_Ref__c;
|
tmpAgencyContractManagementCode = acc.AgencyContract_Management_Code__c;
|
accIds.add(acc.Id);
|
purposeOfAdviceMap.put(acc.Id, purposeOfAdviceMap.get(acc.Agent_Ref__c));
|
NFM001Controller.debug_msg += '_1';
|
System.debug(Logginglevel.DEBUG, 'collectChildIdForAgent acc.AgencyContract_Management_Code__c:::::' + acc.AgencyContract_Management_Code__c);
|
}
|
}
|
}
|
}
|
// public static List<Account> getDoubleChildForAgent(Map<String, Account> agentStateIds) {
|
// List<Account> childList = new List<Account>();
|
// if (agentStateIds.size() > 0) {
|
// childList = [Select Id, Agency_State_Master__c, AgencyContract_Management_Code__c from Account where RecordType.Name IN ('契約') and Agency_State_Master__c IN :agentStateIds.keySet() and Id NOT IN :agentStateIds.values()];
|
// }
|
// return childList;
|
// }
|
|
public static void updateDeptIsActive(List<String> accIds, Map<String, String> purposeOfAdviceMap,
|
List<String> hospitalIdsNeedUpdateAccountIsActive, Map<Id, String> hpIsActiveMap, Map<Id, String> hpDateToMap) {
|
if (hospitalIdsNeedUpdateAccountIsActive.size() > 0) {
|
List<Account> accList = [
|
Select Id, Name,Is_Active__c, DepartmentEffectiveDateTo__c, Hospital__c, Hospital__r.DepartmentEffectiveDateTo__c
|
from Account
|
where Hospital__c IN :hospitalIdsNeedUpdateAccountIsActive];
|
List<Account> accUpdList = new List<Account>();
|
for (Account acc : accList) {
|
if (acc.Is_Active__c == hpIsActiveMap.get(acc.Hospital__c)) {
|
// 病院(変更後)と診療科のIs_Active__cが同じの場合
|
continue;
|
}
|
if (hpIsActiveMap.get(acc.Hospital__c) == '無効' && acc.DepartmentEffectiveDateTo__c == null) {
|
// 無効に変更する、診療科の有効終了日がnullのものが対象、処理対象
|
System.debug(Logginglevel.DEBUG, '無効に変更する、診療科の有効終了日がnullのものが対象、処理対象');
|
}
|
else if (hpIsActiveMap.get(acc.Hospital__c) == '有効' && acc.DepartmentEffectiveDateTo__c == acc.Hospital__r.DepartmentEffectiveDateTo__c) {
|
// 無効に変更する、診療科の有効終了日が病院(変更前)と同じのものが対象、処理対象
|
System.debug(Logginglevel.DEBUG, '無効に変更する、診療科の有効終了日が病院と同じのものが対象、処理対象');
|
} else {
|
System.debug(Logginglevel.DEBUG, '処理対象外、病院Is_Active__c=' + hpIsActiveMap.get(acc.Hospital__c) + ', 診療科Dateto=' + acc.DepartmentEffectiveDateTo__c + ', 病院Dateto=' + hpDateToMap.get(acc.Hospital__c));
|
continue;
|
}
|
accIds.add(acc.Id);
|
purposeOfAdviceMap.put(acc.Id, purposeOfAdviceMap.get(acc.Hospital__c));
|
System.debug(Logginglevel.DEBUG, 'purposeOfAdviceMap 病院=' + purposeOfAdviceMap.get(acc.Hospital__c));
|
accUpdList.add(acc);
|
acc.Is_Active__c = hpIsActiveMap.get(acc.Hospital__c);
|
acc.DepartmentEffectiveDateTo__c = hpDateToMap.get(acc.Hospital__c);
|
}
|
if (accUpdList.size() > 0) {
|
update accUpdList;
|
}
|
}
|
}
|
//CHAN-AZJ6JS 追溯系统来的询价,取消WIN时,经销商订单自动改到“驳回”
|
public static void selectAndupdateOrderSatus(List<String> idList) {
|
List<Consumable_order__c> orderList = [select id, Order_status__c from Consumable_order__c where Name = :idList and Order_status__c = '批准' and RecordType.DeveloperName = 'Order'];
|
for (Consumable_order__c order : orderList) {
|
order.Order_status__c = '驳回';
|
}
|
update orderList;
|
}
|
//更新订单
|
public static void updateOrderSatus(List<Consumable_order__c> docList) {
|
update docList;
|
}
|
//更新明细2
|
public static void updateOrderDetailsSatus(List<Consumable_order_details2__c> docList) {
|
update docList;
|
}
|
//更新明细1
|
public static void updateOrderDetails1Satus(List<Consumable_orderdetails__c> docList) {
|
update docList;
|
}
|
|
public static void updRentalApplyList(List<Consumable_order__c> ra) {
|
if (ra.size() > 0) update ra;
|
}
|
|
public static List<Event__c> getEventCList(Date whereDate, Daily_Report__c oya) {
|
return [
|
select Id, Event_ID__c, Daily_Report__c, Subject__c, StartDateTime__c, EndDateTime__c, Main_Visit_Location__c,
|
Location__c, whatId__c, Activity_Type2__c, Activity_Type2_Before__c,
|
Visitor1__c, Visitor2__c, Visitor3__c, Visitor4__c, Visitor5__c,
|
Visitor1_ID__c, Visitor2_ID__c, Visitor3_ID__c, Visitor4_ID__c, Visitor5_ID__c,
|
Companion__c, Purpose__c, Purpose_Type__c, Purpose_Type2__c, Purpose_Type3__c, Purpose_Type4__c, Purpose_Type5__c,
|
Purpose_TypeFSE__c, Purpose_TypeFSE2__c, Purpose_TypeFSE3__c, Purpose_TypeFSE4__c, Purpose_TypeFSE5__c,
|
Purpose_TypeEscFSE__c, Purpose_TypeEscFSE2__c, Purpose_TypeEscFSE3__c, Purpose_TypeEscFSE4__c, Purpose_TypeEscFSE5__c,
|
Related_Opportunity1__c, Related_Opportunity2__c, Related_Opportunity3__c, Related_Opportunity4__c, Related_Opportunity5__c,
|
Related_Opportunity1_ID__c, Related_Opportunity2_ID__c, Related_Opportunity3_ID__c, Related_Opportunity4_ID__c, Related_Opportunity5_ID__c,
|
Related_Service1__c, Related_Service2__c,
|
Related_Service1_ID__c, Related_Service2_ID__c,
|
Description__c, Hospital_Info__c, Doctor_Info__c, Technology_Treatment__c,
|
New_Query__c, Update_Query__c, Lost_Info__c, VOC__c, Meeting_Info__c, Product_Description_Id__c,
|
Maintenance_Contract_ID__c, Asset_Manual_ID__c, Rental_Apply_ID__c,
|
OPD_ID__c, NTC_ID__c, ReportAccompanied_ID__c, CityStatus_ID__c, Conflict_ID__c, Claim_ID__c, Improvement_ID__c, OnCall_ID__c,
|
nextPlanDate__c, nextPlanTimePurpose__c, Activity_ID__c,
|
Minister__c, Minister_Comment__c, Manager__c, Manager_Comment__c,
|
Free_Input__c, Visitor_Place_Free__c, Mail_Send_Btn__c,
|
Lead_ID__c, Lead_Count__c, InsReport_ID__c,
|
Activity_Purpose__c,Activity_PurposeFSE__c,Activity_PurposeEscFSE__c,ETAPPAct__c
|
,IsAlertInputDep__c // 2018/11/21 SWAG-B6Q8BS 判断是否需要弹窗更新客户信息
|
,SLARecorded__c,UseReport__c,SLAReportInfo__c//20210701 zh SLA
|
// 20200420 任务日报管理 add gzw start
|
// ,eventStatus__c, delayToDate__c, delayReason__c,DurationInMinutes__c,BeforeActivityDate__c,OPDPlan_Flag__c,IsScheduled__c,AppCdId__c,SyncCreatedDate__c
|
|
,eventStatus__c, CancelReason__c, delayToDate__c, delayReason__c,DurationInMinutes__c,cancelReasonSelect__c,cancelReasonSelectFSE__c,cancelReasonOther__c,delayReasonOther__c,delayReasonSelect__c,delayReasonSelectFSE__c,BeforeActivityDate__c,OPDPlan_Flag__c,IsScheduled__c,AppCdId__c,SyncCreatedDate__c
|
// 20200420 任务日报管理 add gzw end
|
from Event__c where ActivityDate__c =:whereDate and Daily_Report__c = :oya.Id order by StartDateTime__c
|
];
|
}
|
|
public static List<Event__c> getNextEventCList(List<String> nextEcIds) {
|
return [
|
select Id, Event_ID__c, Daily_Report__c, Subject__c, StartDateTime__c, EndDateTime__c, Main_Visit_Location__c,
|
Location__c, whatId__c, Activity_Type2__c, Activity_Type2_Before__c,
|
Visitor1__c, Visitor2__c, Visitor3__c, Visitor4__c, Visitor5__c,
|
Visitor1_ID__c, Visitor2_ID__c, Visitor3_ID__c, Visitor4_ID__c, Visitor5_ID__c,
|
Companion__c, Purpose__c, Purpose_Type__c, Purpose_Type2__c, Purpose_Type3__c, Purpose_Type4__c, Purpose_Type5__c,
|
Purpose_TypeFSE__c, Purpose_TypeFSE2__c, Purpose_TypeFSE3__c, Purpose_TypeFSE4__c, Purpose_TypeFSE5__c,
|
Purpose_TypeEscFSE__c, Purpose_TypeEscFSE2__c, Purpose_TypeEscFSE3__c, Purpose_TypeEscFSE4__c, Purpose_TypeEscFSE5__c,
|
Related_Opportunity1__c, Related_Opportunity2__c, Related_Opportunity3__c, Related_Opportunity4__c, Related_Opportunity5__c,
|
Related_Opportunity1_ID__c, Related_Opportunity2_ID__c, Related_Opportunity3_ID__c, Related_Opportunity4_ID__c, Related_Opportunity5_ID__c,
|
Related_Service1__c, Related_Service2__c,
|
Related_Service1_ID__c, Related_Service2_ID__c,
|
Description__c, Hospital_Info__c, Doctor_Info__c, Technology_Treatment__c,
|
New_Query__c, Update_Query__c, Lost_Info__c, VOC__c, Meeting_Info__c, Product_Description_Id__c,
|
Maintenance_Contract_ID__c, Asset_Manual_ID__c, Rental_Apply_ID__c,
|
OPD_ID__c, NTC_ID__c, ReportAccompanied_ID__c, CityStatus_ID__c, Conflict_ID__c, Claim_ID__c, Improvement_ID__c, OnCall_ID__c,
|
nextPlanDate__c, nextPlanTimePurpose__c, Activity_ID__c,
|
Minister__c, Minister_Comment__c, Manager__c, Manager_Comment__c,
|
Free_Input__c, Visitor_Place_Free__c, Mail_Send_Btn__c,
|
Lead_ID__c, Lead_Count__c, InsReport_ID__c,
|
Activity_Purpose__c,Activity_PurposeFSE__c,Activity_PurposeEscFSE__c
|
,IsAlertInputDep__c // 2018/11/21 SWAG-B6Q8BS 判断是否需要弹窗更新客户信息
|
from Event__c where Id in :nextEcIds order by StartDateTime__c
|
];
|
}
|
|
public static Map<String, Map<String, String>> getAccsByName(List<String> accList) {
|
Map<String, Map<String, String>> accMap = new Map<String, Map<String, String>>();
|
Map<String, String> accIds = new Map<String, String>();
|
|
List<Account> accs = [select Id, Name from Account where Name in : accList];
|
for (Account acc : accs) {
|
if (accMap.containsKey(acc.Name)) {
|
accIds = accMap.get(acc.Name);
|
} else {
|
accIds = new Map<String, String>();
|
}
|
accIds.put(acc.Id, acc.Id);
|
accMap.put(acc.Name, accIds);
|
}
|
return accMap;
|
}
|
|
public static Map<String, Map<String, String>> getCampsByName(List<String> campList) {
|
Map<String, Map<String, String>> campMap = new Map<String, Map<String, String>>();
|
Map<String, String> campIds = new Map<String, String>();
|
|
List<Campaign> camps = [select Id, Name from Campaign where Name in : campList];
|
for (Campaign camp : camps) {
|
if (campMap.containsKey(camp.Name)) {
|
campIds = campMap.get(camp.Name);
|
} else {
|
campIds = new Map<String, String>();
|
}
|
campIds.put(camp.Id, camp.Id);
|
campMap.put(camp.Name, campIds);
|
}
|
return campMap;
|
}
|
|
// CHAN-BE6CZZ 最后跟进结果 LHJ 20190724 Start
|
//public static AggregateResult[] selectForOpp_Last_Follow_Up_Date(List<String> oppIds) {
|
//return [select Opportunity__c, Max(End_Time__c) maxET from Event_Oppotunity__c where Opportunity__c in : oppIds
|
// and Daily_Report__r.Status_With_Check__c <> '草案中' and Daily_Report__r.Status_With_Check__c <> ''
|
// group by Opportunity__c];
|
//}
|
public static List<Event_Oppotunity__c> selectForOpp_Last_Follow_Up_Date(List<String> oppIds) {
|
return [select Opportunity__c, End_Time__c, EventC_ID__r.Description__c
|
from Event_Oppotunity__c
|
where Opportunity__c in : oppIds
|
and Daily_Report__r.Status_With_Check__c <> '草案中'
|
and Daily_Report__r.Status_With_Check__c <> ''
|
order by Opportunity__c, End_Time__c desc
|
];
|
}
|
// CHAN-BE6CZZ 最后跟进结果 LHJ 20190724 Start
|
|
|
public static List<Event> selectForOpp_Last_Visit_Scheduled_Date(List<String> oppIds) {
|
// Max(ActivityDateTime)がつかえないため、group by をやめました。
|
return [select Id, Related_Opportunity1_ID__c, ActivityDateTime from Event where Related_Opportunity1_ID__c != null and Related_Opportunity1_ID__c in :oppIds
|
order by Related_Opportunity1_ID__c, ActivityDateTime desc];
|
}
|
|
public static AggregateResult[] selectEventOppForAggregateFollowToOpp(List<String> oppIds) {
|
return [select Opportunity__c
|
, count(Name) cnt
|
, sum(Visit_President_Flag__c) vprCnt
|
, sum(Visit_Head_Doctor_Flag__c) vhdCnt
|
, sum(NTC_Flag__c) ntcCnt
|
from Event_Oppotunity__c where Opportunity__c in :oppIds
|
and Daily_Report__r.Status_With_Check__c <> '草案中' and Daily_Report__r.Status_With_Check__c <> ''
|
group by Opportunity__c];
|
}
|
|
public static List<Report__c> selectReportForAggregateOpdToOpp(List<String> oppIds) {
|
return [select Opportunity1__c, Opportunity2__c, Opportunity3__c, Opportunity4__c, Opportunity5__c
|
from Report__c where Status__c <> '作成中' and Status__c <> '取消し' and Status__c <> ''
|
and (Opportunity1__c in :oppIds or Opportunity2__c in :oppIds or Opportunity3__c in :oppIds or Opportunity4__c in :oppIds or Opportunity5__c in :oppIds)
|
and RecordType.DeveloperName = 'OPD'];
|
}
|
|
// 5つの商談を見るため、group by ができないので、検索後loopして集計する
|
public static AggregateResult[] selectForService_Last_Follow_Up_Date(List<String> serviceIds) {
|
return [select Service__c, Max(Date__c) maxD from Event_Service__c where Service__c in : serviceIds
|
and Daily_Report__r.Status_With_Check__c <> '草案中' and Daily_Report__r.Status_With_Check__c <> ''
|
group by Service__c];
|
}
|
|
public static void updateContactMonth(List<String> conIds, List<Date> conDates) {
|
Map<String, Integer> conCntMap = new Map<String, Integer>();
|
AggregateResult[] ar = [select count(Id) cnt, Contact__c, Date__c from Activity_History_Daily_Report__c
|
where Daily_Report__r.Status_With_Check__c <> '草案中' and Daily_Report__r.Status_With_Check__c <> ''
|
and Contact__c in :conIds group by Contact__c, Date__c];
|
if (ar.size() > 0) {
|
for (Integer i = 0; i < ar.size(); i++) {
|
Date actDate = (Date) ar[i].get('Date__c');
|
String key = String.valueOf(ar[i].get('Contact__c')) + String.valueOf(actDate.year()) + (actDate.month() < 10 ? '0' + actDate.month() : '' + actDate.month());
|
if (conCntMap.containsKey(key)) {
|
conCntMap.put(key, conCntMap.get(key) + Integer.valueOf(ar[i].get('cnt')));
|
} else {
|
conCntMap.put(key, Integer.valueOf(ar[i].get('cnt')));
|
}
|
}
|
}
|
|
// ここから12ヶ月のカウントを更新
|
Map<Id, Contact> conThisMap = new Map<Id, Contact>([select Id, Visit_Count1__c, Visit_Count2__c, Visit_Count3__c, Visit_Count4__c, Visit_Count5__c, Visit_Count6__c,
|
Visit_Count7__c, Visit_Count8__c, Visit_Count9__c, Visit_Count10__c, Visit_Count11__c, Visit_Count12__c
|
from Contact where Id in :conIds for update]);
|
if (conThisMap.size() > 0) {
|
Map<String, Contact> updMap = new Map<String, Contact>();
|
for (Integer i = 0; i < conIds.size(); i++) {
|
Contact con = conThisMap.get(conIds[i]);
|
if (updMap.containsKey(con.Id)) {
|
con = updMap.get(con.Id);
|
}
|
|
if (con != null) {
|
Date repDate = conDates[i];
|
Integer year = repDate.year();
|
Integer month = repDate.month();
|
|
Integer cnt = null;
|
if (conCntMap != null) {
|
cnt = conCntMap.get(con.Id + '' + year + ((month < 10) ? '0' : '') + month);
|
}
|
if(month == 1) {
|
if (!equalTwoNum(con.Visit_Count1__c, cnt)) {
|
con.Visit_Count1__c = cnt;
|
}
|
} else if(month == 2) {
|
if (!equalTwoNum(con.Visit_Count2__c, cnt)) {
|
con.Visit_Count2__c = cnt;
|
}
|
} else if(month == 3) {
|
if (!equalTwoNum(con.Visit_Count3__c, cnt)) {
|
con.Visit_Count3__c = cnt;
|
}
|
} else if(month == 4) {
|
if (!equalTwoNum(con.Visit_Count4__c, cnt)) {
|
con.Visit_Count4__c = cnt;
|
}
|
} else if(month == 5) {
|
if (!equalTwoNum(con.Visit_Count5__c, cnt)) {
|
con.Visit_Count5__c = cnt;
|
}
|
} else if(month == 6) {
|
if (!equalTwoNum(con.Visit_Count6__c, cnt)) {
|
con.Visit_Count6__c =cnt;
|
}
|
} else if(month == 7) {
|
if (!equalTwoNum(con.Visit_Count7__c, cnt)) {
|
con.Visit_Count7__c = cnt;
|
}
|
} else if(month == 8) {
|
if (!equalTwoNum(con.Visit_Count8__c, cnt)) {
|
con.Visit_Count8__c = cnt;
|
}
|
} else if(month == 9) {
|
if (!equalTwoNum(con.Visit_Count9__c, cnt)) {
|
con.Visit_Count9__c = cnt;
|
}
|
} else if(month == 10) {
|
if (!equalTwoNum(con.Visit_Count10__c, cnt)) {
|
con.Visit_Count10__c = cnt;
|
}
|
} else if(month == 11) {
|
if (!equalTwoNum(con.Visit_Count11__c, cnt)) {
|
con.Visit_Count11__c = cnt;
|
}
|
} else if(month == 12){
|
if (!equalTwoNum(con.Visit_Count12__c, cnt)) {
|
con.Visit_Count12__c = cnt;
|
}
|
} else {
|
// TODO Exception
|
}
|
updMap.put(con.Id, con);
|
}
|
}
|
List<Contact> updCon = updMap.values();
|
if (updCon.size() > 0) update updCon;
|
}
|
}
|
|
public static List<SObject> getPe99Info(String soql, String userId) {
|
return Database.query(soql);
|
}
|
|
public static Boolean checkInsHpChange(Id irHpId, Map<Id, Id> iiHpMap) {
|
Boolean isChange = false;
|
for (String key : iiHpMap.keySet()) {
|
Id iiHpId = iiHpMap.get(key);
|
if (irHpId != iiHpId) {
|
isChange = true;
|
break;
|
}
|
}
|
return isChange;
|
}
|
|
|
// equal:true
|
private static Boolean equalTwoNum(Decimal val1, Integer val2) {
|
if (val1 == null && val2 == null) {
|
return true;
|
} else if (val1 != null && val2 != null && val1 == Decimal.valueOf(val2)) {
|
return true;
|
} else {
|
return false;
|
}
|
}
|
|
// JS用检索
|
@ReadOnly
|
@RemoteAction
|
global static String getQueryJson(String sql) {
|
system.debug('=====sql:' + sql);
|
List<SObject> rs = Database.query(sql);
|
String rsStr = JSON.serialize(rs);
|
system.debug('=====rsStr:' + rsStr);
|
return rsStr;
|
}
|
|
// JS用更新
|
@ReadOnly
|
@RemoteAction
|
global static String getUpdateResult(String j) {
|
system.debug('=====json:' + j);
|
SObject obj = (SObject)JSON.deserializeStrict(j, SObject.class);
|
Database.SaveResult rs = Database.update(obj);
|
String rsStr = rs.isSuccess() ? '1' : '0';
|
system.debug('=====rsStr:' + rsStr);
|
return rsStr;
|
}
|
|
WebService static String getAccessToken() {
|
return UserInfo.getSessionId();
|
}
|
|
WebService static void addBatchIfLog(String typeStr, Integer isError, String logStr) {
|
BatchIF_Log__c log = new BatchIF_Log__c(
|
Type__c = typeStr,
|
Is_Error__c = isError
|
);
|
if (isError == 0) {
|
log.log__c = logStr;
|
} else {
|
log.ErrorLog__c = logStr;
|
}
|
insert log;
|
}
|
|
WebService static String deleteRepair(String rid) {
|
try {
|
Repair__c r = new Repair__c(Id = rid);
|
delete r;
|
return 'OK';
|
} catch (Exception e) {
|
return e.getMessage();
|
}
|
}
|
/*
|
=======================================================================================================================
|
===================================================SI 询价部分util集合=================================================
|
=======================================================================================================================
|
*/
|
/**
|
OCM-SI需求表用,复制功能,仅限当前所有SI需求表失效的时候,才能使用
|
*/
|
WebService static String ISO_Copy_Func(id isoID){
|
IS_Opportunity_Demand__c checkISO = [select Opportunity_ID__c from IS_Opportunity_Demand__c where id =:isoID];
|
String opporID = checkISO.Opportunity_ID__c;
|
List<IS_Opportunity_Demand__c> isoListForCheck = [select id, Func_SOD_Status__c,Abort_Date__c from IS_Opportunity_Demand__c where Opportunity_ID__c=:opporID];
|
for(IS_Opportunity_Demand__c iso: isoListForCheck){
|
if(iso.Abort_Date__c==null){
|
return '存在未终止的SI需求表,不能复制';
|
}
|
}
|
|
return ISO_DemandOperAndDemonsController.CopyFunc(isoID);
|
}
|
/**
|
OCM-SI需求表用,自定义提交待审批
|
*/
|
WebService static String ISO_Submit_Func(id isoID){
|
List<IS_Opportunity_Demand__c> submintISOList = new List<IS_Opportunity_Demand__c>();
|
submintISOList = [SELECT id,Data_Check_TF__c from IS_Opportunity_Demand__c WHERE id =:isoID];
|
List<IS_Opportunity_Demand__c> isOppList = new List<IS_Opportunity_Demand__c>();
|
for(IS_Opportunity_Demand__c iso: submintISOList){
|
if(iso.Data_Check_TF__c){
|
Savepoint sp = Database.setSavepoint();
|
try {
|
Approval.ProcessSubmitRequest psr = new Approval.ProcessSubmitRequest();
|
psr.setObjectId(isoID);
|
Approval.ProcessResult submitResult = Approval.process(psr);
|
return 'Fin';
|
}catch(exception e){
|
String ioError = e.getMessage();
|
Database.rollback(sp);
|
return ''+ioError;
|
}
|
}else{
|
return '请现在编辑页面,检查数据完整性,然后再执行提交';
|
}
|
}
|
if(isOppList.size() > 0){
|
update isOppList;
|
}
|
return 'Fin';
|
}
|
/**
|
OCM-SI询价文件上传用,自定义提交待审批
|
*/
|
WebService static String SI_FileUpdateSubmit(id subID){
|
//List<Attachment> CheckFile = [select id from Attachment where ParentId=:subID];
|
//if(CheckFile.size()==0){
|
// return '请上传附件后再提交';
|
//}else{
|
Savepoint sp = Database.setSavepoint();
|
try {
|
Approval.ProcessSubmitRequest psr = new Approval.ProcessSubmitRequest();
|
psr.setObjectId(subID);
|
Approval.ProcessResult submitResult = Approval.process(psr);
|
return 'Fin';
|
}catch(exception e){
|
String ioError = e.getMessage();
|
Database.rollback(sp);
|
return ''+ioError;
|
}
|
//}
|
}
|
/**
|
OCM注残用,当注残更新时,判断数个日期是否变革,如若变革,则更新对应询价的映射时间(取最大值);
|
*/
|
public static String updateOppoMuiltDate(id opporID){
|
List<AggregateResult> ArResult = [select
|
Max(ContractReceivedDate__c ) al,
|
Max(FirstApproveDate__c ) bl,
|
Max(LastApproveDate__c ) cl,
|
Max(X30_Deposit_Day__c) dl,
|
Max(Deposit_In_Full_Day__c) el,
|
Max(SoLatestDeliveryDate__c) fl,
|
Max(DeliveryDate__c ) gl,
|
Max(DeliveryDate_backup__c) hl,
|
Max(InstallDate__c) il,
|
Max(Collection_Day_Invoice__c) jl,
|
Max(Inspection_explanation_day__c) kl
|
from
|
Statu_Achievements__c
|
WHERE Opportunity__c =: opporID];
|
Opportunity ops = [SELECT Contract_Recieve_Date__c ,
|
First_Review_Date__c ,
|
LastApproveDate__c ,
|
X30_Deposit_Day__c,
|
Pay_All_Money__c,
|
Last_Delivery_Date__c,
|
DeliveryDate__c ,
|
InstallDate__c,
|
Inspection_explanation_day__c
|
From Opportunity
|
WHERE id =:opporID];
|
for(AggregateResult ar : ArResult ){
|
if(Date.valueOf(ar.get('al')) != ops.Contract_Recieve_Date__c){
|
ops.Contract_Recieve_Date__c = Date.valueOf(ar.get('al'));
|
}
|
if(Date.valueOf(ar.get('bl')) != ops.First_Review_Date__c){
|
ops.First_Review_Date__c = Date.valueOf(ar.get('bl'));
|
}
|
if(Date.valueOf(ar.get('cl')) != ops.LastApproveDate__c){
|
ops.LastApproveDate__c = Date.valueOf(ar.get('cl'));
|
}
|
if(Date.valueOf(ar.get('dl')) != ops.X30_Deposit_Day__c){
|
ops.X30_Deposit_Day__c = Date.valueOf(ar.get('dl'));
|
}
|
if(Date.valueOf(ar.get('el')) != ops.Pay_All_Money__c){
|
ops.Pay_All_Money__c = Date.valueOf(ar.get('el'));
|
}
|
if(Date.valueOf(ar.get('fl')) != ops.Last_Delivery_Date__c){
|
ops.Last_Delivery_Date__c = Date.valueOf(ar.get('fl'));
|
}
|
if(Date.valueOf(ar.get('gl')) != ops.DeliveryDate__c){
|
ops.DeliveryDate__c = Date.valueOf(ar.get('gl'));
|
}
|
if(Date.valueOf(ar.get('il')) != ops.InstallDate__c){
|
ops.InstallDate__c = Date.valueOf(ar.get('il'));
|
system.debug(ar.get('il')+'2333333333');
|
}
|
if(Date.valueOf(ar.get('kl')) != ops.Inspection_explanation_day__c){
|
ops.Inspection_explanation_day__c = Date.valueOf(ar.get('kl'));
|
}
|
}
|
update ops;
|
|
ControllerUtil.refreshSIOpporStatus(opporID);
|
return 'Fin';
|
}
|
/**
|
OCM询价用,刷新OCM——SI的状态
|
*/
|
public static string refreshSIOpporStatus(id opporID){
|
Opportunity ops = [SELECT Last_Install_Confirm_Date__c,
|
InstallDate__c,
|
DeliveryDate__c,
|
Last_Delivery_Date__c,
|
Pay_All_Money__c ,
|
X30_Deposit_Day__c ,
|
LastApproveDate__c,
|
First_Review_Date__c,
|
Contract_Recieve_Date__c,
|
SFDCLast_Process_Date__c,
|
Input_Dealer_HP_date__c,
|
Agency_Contract_Date_last_update__c,
|
Assistant_Applied_Date__c,
|
Closing_Bid_Date__c,
|
Bid_Date__c,
|
Autholization_Activated_Date__c,
|
Authorized_Date__c,
|
Last_Follow_Up_Date__c,
|
Key_tipics_last_update_day__c,
|
Status_List_SI__c
|
FROM Opportunity
|
WHERE id=:opporID];
|
if(ops.Last_Install_Confirm_Date__c!=null){ops.Status_List_SI__c ='16 已结束';}
|
else if(ops.InstallDate__c!=null){ops.Status_List_SI__c ='15 已安装';}
|
else if(ops.DeliveryDate__c!=null){ops.Status_List_SI__c ='14 已发货';}
|
else if(ops.Last_Delivery_Date__c!=null){ops.Status_List_SI__c ='13 已分配,待发货';}
|
else if(ops.Pay_All_Money__c!=null){ops.Status_List_SI__c ='12 已订货,付全款';}
|
else if(ops.X30_Deposit_Day__c!=null){ops.Status_List_SI__c ='11 已订货,付订金';}
|
else if(ops.LastApproveDate__c!=null){ops.Status_List_SI__c ='10 库存已预留,未付款';}
|
else if(ops.First_Review_Date__c!=null){ops.Status_List_SI__c ='9 已录入订单,未付款';}
|
else if(ops.Contract_Recieve_Date__c!=null){ops.Status_List_SI__c ='9 已录入订单,未付款';}
|
else if(ops.SFDCLast_Process_Date__c!=null){ops.Status_List_SI__c ='8 已签约';}
|
else if(ops.Input_Dealer_HP_date__c!=null){ops.Status_List_SI__c ='7 用户已签约';}
|
else if(ops.Agency_Contract_Date_last_update__c!=null){ops.Status_List_SI__c ='6 用户未签约';}
|
else if(ops.Assistant_Applied_Date__c!=null){ops.Status_List_SI__c ='5 价格申请中';}
|
else if(ops.Closing_Bid_Date__c!=null){ops.Status_List_SI__c ='4 已中标';}
|
else if(ops.Bid_Date__c!=null ||ops.Autholization_Activated_Date__c!=null||ops.Authorized_Date__c!=null){ops.Status_List_SI__c ='3 已授权';}
|
else if(ops.Last_Follow_Up_Date__c!=null){ops.Status_List_SI__c ='2 跟进中';}
|
else if(ops.Key_tipics_last_update_day__c!=null){ops.Status_List_SI__c ='1 还没拜访';}
|
else{ops.Status_List_SI__c = '0 还没跟进';}
|
update ops;
|
return 'Fin';
|
}/**
|
OCM询价文件上传用,实际上传文件后,刷新上传时间
|
*/
|
public static String UpdateFileDateSet(List<String> SIopportunityIds){
|
List<SI_Attachment__c> attFileList = [select id,Opportunity_ID__c,File_Upload_Date__c,Type__c from SI_Attachment__c where id in:SIopportunityIds];
|
List<id> oppsId = new List<id>();
|
Map<id,id> SODOwnerMap = new Map<id,id>();
|
for(SI_Attachment__c siAc : attFileList){
|
oppsId.add(siAc.Opportunity_ID__c);
|
}
|
List<IS_Opportunity_Demand__c> sodList = [select OwnerId,id,Opportunity_ID__c from IS_Opportunity_Demand__c where Opportunity_ID__c in:oppsId];
|
for(IS_Opportunity_Demand__c sod: sodList){
|
SODOwnerMap.put(sod.Opportunity_ID__c, sod.OwnerId);
|
}
|
for(SI_Attachment__c siAc : attFileList){
|
siAc.File_Upload_Date__c = Date.today();
|
siAc.SI_SOD_Owner__c = SODOwnerMap.get(siAc.Opportunity_ID__c);
|
}
|
savepoint sp = Database.setsavepoint();
|
try{
|
update attFileList;
|
return 'Fin';
|
}catch(exception o){
|
Database.rollback(sp);
|
return 'Database Error';
|
}
|
|
}
|
|
/**
|
OCM询价文件上传用,询价上传文件,根据文件种类,更新对应SI需求表状态
|
*/
|
public static String UpdateSIFunctionStatus(List<String> SIopportunityIds){
|
system.debug('Inside+++++++++++++++');
|
List<SI_Attachment__c> attFileList = [select id,Opportunity_ID__c,Type__c from SI_Attachment__c where id in:SIopportunityIds];
|
List<id> oppid = new List<id>();
|
for(SI_Attachment__c si : attFileList){
|
oppid.add(si.Opportunity_ID__c);
|
}
|
List<IS_Opportunity_Demand__c> isoFileList = new List<IS_Opportunity_Demand__c>();
|
List<Opportunity> opslist = [select id,Project_decide_date__c,bid_Confrim_Date__c from Opportunity where id in:oppid];
|
List<Opportunity> opslistUpdate = new List<Opportunity>();
|
Map<Id,String> AttTypeToISODate = new Map<Id,String>();
|
isoFileList = [ select Id,CAD_Upload_Date__c,Program_Plan_Upload_Date__c,
|
Param_Upload_Date__c,Bid_Document_Upload_Date__c,
|
ConfirmBook_Upload_Date__c,Opportunity_ID__c
|
from IS_Opportunity_Demand__c
|
where Opportunity_ID__c in:oppid
|
and Func_SOD_Status__c !='已终止'];
|
for(SI_Attachment__c att: attFileList){
|
AttTypeToISODate.put(att.Opportunity_ID__c,att.Type__c);
|
}
|
for(IS_Opportunity_Demand__c iso : isoFileList){
|
if(AttTypeToISODate.get(iso.Opportunity_ID__c) == 'CAD图纸'||
|
AttTypeToISODate.get(iso.Opportunity_ID__c) == '手术室净化平面图(含设备定位)'||
|
AttTypeToISODate.get(iso.Opportunity_ID__c) == '目标术间吊塔定位图'||
|
AttTypeToISODate.get(iso.Opportunity_ID__c) == '目标术间净化立体图'||
|
AttTypeToISODate.get(iso.Opportunity_ID__c) == '示教点楼层平面图'||
|
AttTypeToISODate.get(iso.Opportunity_ID__c) == '楼层建筑平面图'||
|
AttTypeToISODate.get(iso.Opportunity_ID__c) == '其他工程文件清单'){
|
if( iso.CAD_Upload_Date__c == null || AttTypeToISODate.get(iso.Opportunity_ID__c) == '手术室净化平面图(含设备定位)'){
|
iso.CAD_Upload_Date__c = Date.today();
|
|
}
|
}else if(AttTypeToISODate.get(iso.Opportunity_ID__c) == '项目方案书'){
|
iso.Program_Plan_Upload_Date__c = Date.today();
|
for(Opportunity op : opslist){
|
op.Project_decide_date__c = Date.today();
|
opslistUpdate.add(op);
|
System.debug('项目方案书op'+opslistUpdate);
|
}
|
}else if(AttTypeToISODate.get(iso.Opportunity_ID__c) == '招标参数'){
|
iso.Param_Upload_Date__c = Date.today();
|
}else if(AttTypeToISODate.get(iso.Opportunity_ID__c) == '标书' ){
|
iso.Bid_Document_Upload_Date__c = Date.today();
|
for(Opportunity op : opslist){
|
op.bid_Confrim_Date__c = Date.today();
|
opslistUpdate.add(op);
|
}
|
}else if(AttTypeToISODate.get(iso.Opportunity_ID__c) == 'OCAP/TUV认证'){
|
iso.ConfirmBook_Upload_Date__c = Date.today();
|
}
|
}
|
savepoint sp = Database.setsavepoint();
|
try{
|
update isoFileList;
|
if(opslistUpdate.size()>0){
|
update opslistUpdate;
|
}
|
|
}catch(exception o){
|
Database.rollback(sp);
|
return 'Failed: '+o;
|
system.debug('服务器侦错:'+o);
|
}
|
return 'Fin';
|
}
|
/**
|
OCM报价用,当询价编码更新时,报价编码相应改变
|
*/
|
public static String ResetQuoteNo(List<id> oppidList){
|
List<Quote> UpdateQuoteList = new List<Quote>();
|
List<Opportunity> oppNoList = new List<Opportunity>();
|
Map<id,String> oppIdnoMap = new Map<id,String>();
|
oppNoList = [SELECT id,Opportunity_No__c from Opportunity where id in:oppNoList];
|
for(Opportunity ops : oppNoList){
|
oppIdnoMap.put(ops.id, ops.Opportunity_No__c);
|
}
|
UpdateQuoteList = [SELECT id,Quote_No__c,Opportunityid from Quote WHERE Opportunityid in:oppidList order by Opportunityid];
|
Integer index = 0;
|
id flgId = null;
|
for(Quote Qu : UpdateQuoteList){
|
if(flgId == null){
|
id ids = Qu.Opportunityid;
|
}
|
if(flgId == Qu.Opportunityid){
|
index ++;
|
}else{
|
flgId = Qu.Opportunityid;
|
index = 1;
|
}
|
Qu.Quote_No__c = oppIdnoMap.get(Qu.Opportunityid) + (index>9?(String.valueof(index)):('0'+String.valueof(index)));
|
}
|
return 'Fin';
|
}
|
/**
|
OCM_SI更新对应报价状态,
|
*/
|
WebService static String setQuote(string oppid){
|
system.debug('2323^^^^^^^^^^^^');
|
List<IS_Opportunity_Demand__c> updateList = [SELECT Quote_Locked_Date__c from IS_Opportunity_Demand__c WHERE Opportunity_ID__c =:oppid ];
|
for(IS_Opportunity_Demand__c iso : updateList){
|
iso.Quote_Locked_Date__c = Date.today();
|
}
|
update updateList;
|
return 'Fin';
|
}
|
/**
|
OCM询价拆单用,用来复制原有询价的报价
|
*/
|
public static String CopyQuoteFromOppor(id oldOppor,String opporName , id newOppor,Opportunity ModelOppor){
|
List<Quote> newQuoteList = new List<Quote>();
|
Map<id,id> newToold = new Map<id,id>();
|
Map<id,QuoteLineItem> QuidWithQLitem = new Map<id,QuoteLineItem>();
|
List<id> QuoteidOldList = new List<id>();
|
List<Opportunity> opGetname = [SELECT Opportunity_No__c from Opportunity where id = :newOppor];
|
if(opGetname.size()>0){
|
String nameCode = opGetname[0].Opportunity_No__c;
|
system.debug(nameCode+'nameCode');
|
}
|
String ele = '%'+ModelOppor.old_Oppo_No__c +'%';
|
List<Quote> countQu = [SELECT id from Quote WHERE Quote_No__c like :ele];
|
List<Quote> oldQuoteList = [SELECT Id,
|
Name,
|
CurrencyIsoCode,
|
CreatedDate,
|
OpportunityId,
|
Pricebook2Id,
|
ContactId,
|
QuoteNumber,
|
IsSyncing,
|
ShippingHandling,
|
Tax,
|
Status,
|
ExpirationDate,
|
Description,
|
Subtotal,
|
TotalPrice,
|
LineItemCount,
|
BillingName,
|
ShippingName,
|
QuoteToName,
|
AdditionalName,
|
Email,
|
Phone,
|
Fax,
|
AccountId,
|
Discount,
|
GrandTotal,
|
Agency1__c,
|
Agency1_Profit__c,
|
Agency1_Profit_Rate__c,
|
Agency2__c,
|
Agency2_Profit__c,
|
Agency2_Profit_Rate__c,
|
Agent1_Agent2_Price__c,
|
OCM_Agent1_Price__c,
|
OCM_Sales_Forecast__c,
|
Estimation_List_Price__c,
|
Stocking_Price__c,
|
Dealer_Final_Price__c,
|
Quote_No__c,
|
Stock_Pre_Arrangement__c,
|
Quote_Date__c,
|
Unit_Price__c,
|
Offer_Amount__c,
|
TOTAL__c,
|
Discount__c,
|
Pricing__c,
|
Preferential_Trading_Price__c,
|
Contract__c,
|
Quote_Expiration_Date__c,
|
Quote_Comment__c,
|
Discount_Amount_Calculate__c,
|
Discount_Amount__c,
|
Print_HP_Name__c,
|
Quote_Adjust_Amount__c,
|
Quote_Adjust_Calculate__c,
|
Quote_No_Auto__c,
|
Installation_location__c,
|
QuoteName__c,
|
PriceRefreshDate__c,
|
Quote_Print_Date__c,
|
OCM_Sales_Forecast_Without_Tax__c,
|
Quote_Decision__c,
|
Cancel_Decide__c,
|
TotalPrice__c,
|
Quote_Decision_Date__c,
|
Quote_CreatedDate__c,
|
IsSelected__c,
|
HasType3Machine__c,
|
OCM_Sales_Forecast_F__c,
|
Dealer_Final_Price_F__c,
|
Agent1_Agent2_Price_Page__c,
|
Dealer_Final_Price_Page__c,
|
OCM_Agent1_Price_Page__c,
|
QuoteTotal_Page__c,
|
Quote_Adjust_Amount_Page__c,
|
|
OCM_Agent1_Price_F__c,
|
|
Agent1_Agent2_Price_F__c,
|
Agency2_Profit_F__c,
|
Agency2_Profit_Rate_F__c,
|
Quote_Adjust_Amount_F__c,
|
Quote_Adjust_Calculate_F__c,
|
TotalPrice_F__c,
|
Discount_Amount_F__c,
|
Discount_Amount_Calculate_F__c,
|
BidAnnounce__c,
|
Quote_No_last2__c
|
FROM
|
Quote
|
WHERE
|
OpportunityId = :oldOppor
|
order by
|
CreatedDate];
|
|
Integer i = countQu.size();
|
i=1;
|
for(Quote Qu : oldQuoteList){
|
//要按照原有顺序采番
|
system.debug(Qu.Id+'===============4');
|
String title = ModelOppor.old_Oppo_No__c;
|
QuoteidOldList.add(Qu.Id);
|
Qu.Id = null;
|
Qu.OpportunityId = newOppor;
|
Qu.Quote_No__c = title.substring(0,title.length() - 7)+ModelOppor.Opp_Number__c+ '-'+(i>9?(String.valueof(i)):('0'+i));
|
newQuoteList.add(Qu);
|
i++;
|
}
|
Savepoint sp = Database.setSavepoint();
|
try{
|
insert newQuoteList;
|
} catch(Exception o){
|
Database.rollback(sp);
|
return 'Insert Failed'+o;
|
}
|
for(Integer k = 0; k < newQuoteList.size(); k++){
|
newToold.put(QuoteidOldList[k],newQuoteList[k].id);
|
}
|
List<QuoteLineItem> oldQuoteitemList = [Select Id,Asset_Model_No__c,SFDA_Status__c,Product_Sales_Possibility__c,
|
Name__c,BSS_Category__c,Quote.Quote_Print_Date__c,Quoteid,
|
Qty_Unit__c,Cost__c,UnitPrice__c,ListPrice__c,Quantity,TotalPrice__c,
|
PricebookEntry.Product2.SFDA_Status__c, ProductCode__c, Product_Cost__c,PricebookEntry.Product2.VenderName__c, Product2.VenderName__c,Product_ListPrice__c, PricebookEntry.Product2.Sales_Possibility__c, PricebookEntry.Product2.Name,
|
PricebookEntryId, PricebookEntry.Product2Id,UnitPrice_Page__c,PricebookEntry.Product2.Packing_list_manual__c,PricebookEntry.Product2.StorageStatus__c
|
From QuoteLineItem where Quoteid = :QuoteidOldList];
|
for(QuoteLineItem qli : oldQuoteitemList){
|
QuidWithQLitem.put(qli.Quoteid,qli);
|
}
|
system.debug(newToold+'newTooldnewTooldnewToold');
|
system.debug(QuoteidOldList+'QuoteListQuoteListQuoteList');
|
List<QuoteLineItem> copyQuoteItemList = new List<QuoteLineItem>();
|
for(String Qu : QuoteidOldList){
|
system.debug(Qu+'===============1');
|
for(QuoteLineItem qlir : oldQuoteitemList){
|
if(qlir.Quoteid == Qu){
|
system.debug(qlir+'===============2');
|
system.debug(QuidWithQLitem.get(Qu)+'===============3');
|
QuoteLineItem qli = qlir.clone();
|
qli.Quoteid = newToold.get(Qu);
|
qli.Id = null;
|
qli.UnitPrice = 0;
|
copyQuoteItemList.add(qli);
|
}
|
|
}
|
}
|
Savepoint spl = Database.setSavepoint();
|
try{
|
insert copyQuoteItemList;
|
} catch(Exception o){
|
Database.rollback(spl);
|
return 'Insert Failed copyQuoteItemList '+o;
|
}
|
return 'Fin';
|
}
|
/**
|
OCM报价用,判断SI需求表的状态
|
*/
|
WebService static String getStatusForISO(id opporID){
|
//翻译已批准的数量
|
Integer Abort = 0;
|
Integer Applying = 0;
|
Integer CommitCode = 0;
|
List<IS_Opportunity_Demand__c> isoList = [ SELECT
|
id,
|
name,
|
Abort_Date__c,
|
Approval_Date__c,
|
Func_SOD_Status__c
|
FROM
|
IS_Opportunity_Demand__c
|
where
|
Opportunity_ID__c = :opporID
|
AND
|
(
|
Approval_Date__c !=null
|
)];
|
|
if(isoList.size()==0){
|
return 'Abort';
|
|
}else if(isoList.size()>0){
|
return 'CommitCode';
|
}
|
return 'NoneIn';
|
|
}
|
/**
|
OCM用,取消SI需求表
|
*/
|
WebService static String setAbortSI(id isoID,String AbortReason){
|
List<IS_Opportunity_Demand__c> updateList = new List<IS_Opportunity_Demand__c>();
|
List<id> oppidList = new List<id>();
|
List<Opportunity> Opplist = new List<Opportunity>();
|
if(AbortReason==null||String.isBlank(AbortReason)){
|
return '请输入终止SI需求原因';
|
}else{
|
updateList = [SELECT id,Abort_SI_Reason__c,Abort_Date__c,Opportunity_ID__c from IS_Opportunity_Demand__c where id = :isoID];
|
for(IS_Opportunity_Demand__c iso : updateList){
|
iso.Abort_SI_Reason__c = AbortReason;
|
iso.Abort_Date__c = Date.today();
|
oppidList.add(iso.Opportunity_ID__c);
|
}
|
Opplist = [SELECT Project_decide_date__c , Stock_Submit_Date__c , Stock_Confrim_Date__c from Opportunity WHERE id in:oppidList];
|
for(Opportunity ops : Opplist){
|
ops.Project_decide_date__c = null;
|
ops.Stock_Submit_Date__c = null;
|
ops.Stock_Confrim_Date__c = null;
|
}
|
Savepoint sp = Database.setSavepoint();
|
try{
|
update Opplist;
|
update updateList;
|
return 'Fin';
|
}catch (Exception o){
|
Database.rollback(sp);
|
return 'DataBase is Crashed,Connect with the Developer PLEASE';
|
}
|
}
|
}
|
/**
|
OCM询价用,取消SI询价,将相关联的SI需求表无效化
|
*/
|
public static void updateSIodcList(List<String> OpporList){
|
//询价失单,将询价对应的SI需求表无效化
|
List<IS_Opportunity_Demand__c> ODCLIST = new List<IS_Opportunity_Demand__c>();
|
ODCLIST = [SELECT id,Abort_Date__c from IS_Opportunity_Demand__c where Opportunity_ID__c in:OpporList and Abort_Date__c=null];
|
for(IS_Opportunity_Demand__c Od : ODCLIST){
|
Od.Abort_Date__c = Date.today();
|
}
|
update ODCLIST;
|
}
|
/*
|
=======================================================================================================================
|
===================================================SI 询价部分util集合=================================================
|
=======================================================================================================================
|
*/
|
WebService static void addBatchIfLogForCnt(String typeStr, String operationType, String fileType, String hpId) {
|
BatchIF_Log__c log = new BatchIF_Log__c(
|
Type__c = typeStr,
|
Is_Error__c = 0
|
);
|
log.Account__c = hpId;
|
log.Log__c = operationType;
|
log.Log2__c = fileType;
|
|
insert log;
|
}
|
|
WebService static String setSObjectShare(String sobjectName, String rowCause, String parentId, List<String> userAccess, String ownerId) {
|
try {
|
List<SObject> sObjList = new List<SObject>();
|
for (String ua : userAccess) {
|
String userid = ua.split('_')[0];
|
String access = ua.split('_')[1];
|
SObject sObj = Schema.getGlobalDescribe().get(sobjectName).newSObject();
|
if (String.isBlank(userid) == false && userid.substring(0, 15) != ownerId.substring(0, 15)) {
|
sObj.put('RowCause', rowCause);
|
sObj.put('ParentId', parentId);
|
sObj.put('UserOrGroupId', userid);
|
sObj.put('AccessLevel', access);
|
sObjList.add(sObj);
|
}
|
}
|
if (sObjList.size() > 0) insert sObjList;
|
return 'OK';
|
} catch (Exception e) {
|
return e.getMessage();
|
}
|
}
|
// SWAG-BJ29Z4 营业助理共享询价字段审批加入共享 start
|
WebService static String setOpportunityShare(String sobjectName, String parentId, List<String> userAccess, String ownerId) {
|
System.debug(sobjectName+'======'+parentId+'======'+ownerId);
|
try {
|
List<SObject> sObjList = new List<SObject>();
|
for (String ua : userAccess) {
|
String userid = ua.split('_')[0];
|
String access = ua.split('_')[1];
|
SObject sObj = Schema.getGlobalDescribe().get(sobjectName).newSObject();
|
if (String.isBlank(userid) == false && userid.substring(0, 15) != ownerId.substring(0, 15)) {
|
// sObj.put('RowCause', rowCause);
|
sObj.put('ParentId', parentId);
|
sObj.put('UserOrGroupId', userid);
|
sObj.put('AccessLevel', access);
|
sObjList.add(sObj);
|
}
|
}
|
System.debug(sObjList+'======');
|
if (sObjList.size() > 0) insert sObjList;
|
return 'OK';
|
} catch (Exception e) {
|
return e.getMessage();
|
}
|
}
|
// SWAG-BJ29Z4 营业助理共享询价字段审批加入共享 end
|
|
public static void insertBatchIfLog(BatchIF_Log__c bl) {
|
insert bl;
|
}
|
|
public static List<BatchIF_Log__c> getBatchIfLogForRequest(String typeStr, String hpId, Datetime dt) {
|
return [select Id from BatchIF_Log__c where Type__c = :typeStr and Account__c = :hpId
|
and RequestStatus__c != 'Finish' and RequestStatus__c != 'Error' and CreatedDate > :dt];
|
}
|
public static Integer getOlympusWorkDayCount(Date fromDate, Date toDate) {
|
AggregateResult[] calAggResult = [Select Count(Id) cnt From OlympusCalendar__c Where Date__c >= :fromDate And Date__c <= :toDate And IsWorkDay__c = 1];
|
Integer workDayCount = (Integer) calAggResult[0].get('cnt');
|
return workDayCount;
|
}
|
|
public static Pricebook2 getStandardPricebook() {
|
if (system.Test.isRunningTest()) {
|
return new Pricebook2(Id = System.Test.getStandardPricebookId(), Name = 'Standard Pricebook');
|
} else {
|
List<Pricebook2> pbs = [Select Id, Name From Pricebook2 where IsStandard = true AND isActive = true];
|
if (pbs.size() > 0) {
|
return pbs[0];
|
} else {
|
return null;
|
}
|
}
|
}
|
public static Set<Id> getAllSubRoleIds(Id userRoleId, String additionalRoleName) {
|
// currentRoleId と additionalRoleName まず queryする
|
Map<Id, UserRole> parentRoleMap = new Map<Id, UserRole>();
|
Boolean isAdditional = false;
|
if (String.isBlank(additionalRoleName) == true) {
|
parentRoleMap = new MAP<Id, UserRole>([select Id from UserRole where Id = :userRoleId]);
|
} else {
|
isAdditional = true;
|
List<String> addtionalRoleNameList = additionalRoleName.split(',');
|
parentRoleMap = new MAP<Id, UserRole>([select Id from UserRole where Id = :userRoleId or DeveloperName in :addtionalRoleNameList]);
|
}
|
//MAP<Id, UserRole> parentRoleMap = new MAP<Id, UserRole>([select Id from UserRole where Id = :userRoleId or DeveloperName = :additionalRoleName]);
|
Map<Id, Set<Id>> allRoleMap = new Map<Id, Set<Id>>();
|
for (UserRole role : [select Id, ParentRoleId from UserRole]) {
|
Set<Id> roleIds = allRoleMap.get(role.ParentRoleId);
|
if (roleIds == null) {
|
roleIds = new Set<Id>();
|
}
|
roleIds.add(role.Id);
|
allRoleMap.put(role.ParentRoleId, roleIds);
|
}
|
return getSubRoleRecursive(parentRoleMap.keySet(), allRoleMap, isAdditional, userRoleId);
|
}
|
|
private static Set<Id> getSubRoleRecursive(Set<Id> roleIds, Map<Id, Set<Id>> allRoleMap, Boolean isAdditional, Id userRoleId) {
|
Set<Id> currentRoleIds = new Set<Id>();
|
|
// get all of the roles underneath the passed roles
|
for (Id parentRoleId : roleIds) {
|
if (allRoleMap.get(parentRoleId) != null) {
|
currentRoleIds.addAll(allRoleMap.get(parentRoleId));
|
}
|
}
|
|
// go fetch some more rolls!
|
if(currentRoleIds.size() > 0) {
|
currentRoleIds.addAll(getSubRoleRecursive(currentRoleIds, allRoleMap, isAdditional, userRoleId));
|
}
|
|
// 兼職の場合、兼職Role自身のIdも入れる
|
if (isAdditional) {
|
roleIds.remove(userRoleId);
|
currentRoleIds.addAll(roleIds);
|
}
|
return currentRoleIds;
|
}
|
|
public static String getOppSearchSQOL(String visitorPlaceId, String nameCondition) {
|
Account a = null;
|
a = [select Id, Hospital__c, Agent_Ref__c, Parent.Parent.RecordType.DeveloperName, Parent.RecordType.DeveloperName, RecordType.DeveloperName from Account where Id=:visitorPlaceId];
|
|
// String nameCondition = '%' + String.escapeSingleQuotes(query.replaceAll('%', '')) + '%';
|
system.debug('cond=' + nameCondition);
|
|
// 検索
|
String queryString = '';
|
String temptoday = Date.today().format().replace('/', '-');
|
//String tempLastDate = Date.today().addDays(365).format().replace('/', '-');
|
String tempLastDate = Date.today().addDays(-365).format().replace('/', '-');
|
// 病院
|
if (a.Parent.Parent.RecordType.DeveloperName == 'HP') {
|
// queryString = 'Select Id, Opportunity_No__c, Name, toLabel(StageName), Department_Name__c, Close_Forecasted_Date__c, Competitor__c, Wholesale_Price__c from Opportunity where' + nameCondition + ' Account.Hospital__c=\'' + a.Hospital__c + '\' and StageName IN (\'引合\',\'注残\',\'出荷\') and RecordTypeId = \'01210000000QekK\' order by Name, Opportunity_No__c, Department_Name__c limit 31';
|
// 20200616 CHAN-BQM8LU vivek start
|
// 20191126 SWAG-BJA6JK LHJ Start
|
// queryString = 'Select Id, Opportunity_No__c, Name, toLabel(StageName), Department_Name__c, Close_Forecasted_Date__c, Competitor__c, Wholesale_Price__c from Opportunity where' + nameCondition + ' Account.Hospital__c=\'' + a.Hospital__c + '\' and StageName IN (\'引合\',\'注残\',\'出荷\') and RecordTypeId in (\'01210000000QekK\',\'012100000006KMeAAM\') order by Name, Opportunity_No__c, Department_Name__c limit 31';
|
// queryString = 'Select Id, Opportunity_No__c, Name, toLabel(StageName), Department_Name__c, Close_Forecasted_Date__c, Competitor__c, Wholesale_Price__c from Opportunity where' + nameCondition + ' Account.Hospital__c=\'' + a.Hospital__c + '\' and StageName IN (\'引合\',\'注残\') and RecordTypeId in (\'01210000000QekK\',\'012100000006KMeAAM\') order by Name, Opportunity_No__c, Department_Name__c limit 31';
|
//20210824 zh SWAG-C5S46P start
|
//queryString = 'Select Id, Opportunity_No__c, Name, toLabel(StageName), Department_Name__c,Field1__c,CountNoInstall__c, Close_Forecasted_Date__c, Competitor__c, Wholesale_Price__c from Opportunity where' + nameCondition + ' Account.Hospital__c=\'' + a.Hospital__c + '\' and ( StageName IN (\'引合\',\'注残\') or ( StageName = \'出荷\' and CountNoInstall__c > 0 )) and RecordTypeId in (\'01210000000QekK\',\'012100000006KMeAAM\') order by Name, Opportunity_No__c, Department_Name__c limit 31';
|
|
//queryString = 'Select Id, Opportunity_No__c, Name, toLabel(StageName), Department_Name__c,Field1__c,CountNoInstall__c, Close_Forecasted_Date__c, Competitor__c, Wholesale_Price__c from Opportunity where' + nameCondition + ' Account.Hospital__c=\'' + a.Hospital__c + '\' and ( StageName IN (\'引合\',\'注残\') or ( StageName = \'出荷\' and DeliveryDate__c > '+temptoday+' and DeliveryDate__c <= '+tempLastDate+')) and RecordTypeId in (\'01210000000QekK\',\'012100000006KMeAAM\') order by Name, Opportunity_No__c, Department_Name__c limit 31';
|
//20210824 zh SWAG-C5S46P end
|
// 20191126 SWAG-BJA6JK LHJ End
|
//20210826 mzy SWAG-C5S46P start
|
//改为用 发货完毕日 判断 且 将 2012年创建的且询价状态是发货/完毕的数据排除
|
//queryString = 'Select Id, Opportunity_No__c, Name, toLabel(StageName), Department_Name__c,Field1__c,CountNoInstall__c, Close_Forecasted_Date__c, Competitor__c, Wholesale_Price__c from Opportunity where' + nameCondition + ' Account.Hospital__c=\'' + a.Hospital__c + '\' and ( StageName IN (\'引合\',\'注残\') or ( StageName = \'出荷\' and Shipping_Finished_Day__c > '+temptoday+' and Shipping_Finished_Day__c <= '+tempLastDate+' and CALENDAR_YEAR(Created_Day__c) != 2012 )) and RecordTypeId in (\'01210000000QekK\',\'012100000006KMeAAM\') order by Name, Opportunity_No__c, Department_Name__c limit 31';
|
queryString = 'Select Id, Opportunity_No__c, Name, toLabel(StageName), Department_Name__c,Field1__c,CountNoInstall__c, Close_Forecasted_Date__c, Competitor__c, Wholesale_Price__c from Opportunity where' + nameCondition + ' Account.Hospital__c=\'' + a.Hospital__c + '\' and ( StageName IN (\'引合\',\'注残\') or ( StageName = \'出荷\' and Shipping_Finished_Day__c > '+tempLastDate+' and Shipping_Finished_Day__c <= '+temptoday+' and CALENDAR_YEAR(Created_Day__c) != 2012 )) and RecordTypeId in (\'01210000000QekK\',\'012100000006KMeAAM\') order by Name, Opportunity_No__c, Department_Name__c limit 31';
|
//20210826 mzy SWAG-C5S46P end
|
// 20200616 CHAN-BQM8LU vivek end
|
}
|
// 販売店
|
else if (a.RecordType.DeveloperName == 'Agency') {
|
// queryString = 'Select Id, Opportunity_No__c, Name, toLabel(StageName), Department_Name__c, Close_Forecasted_Date__c, Competitor__c, Wholesale_Price__c from Opportunity where' + nameCondition + ' (Agency1__c=\'' + a.Id + '\' or Agency2__c=\'' + a.Id + '\') and StageName IN (\'引合\',\'注残\',\'出荷\') and RecordTypeId = \'01210000000QekK\' order by Name, Opportunity_No__c, Department_Name__c limit 31';
|
// 20200616 CHAN-BQM8LU vivek start
|
// 20191126 SWAG-BJA6JK LHJ Start
|
// queryString = 'Select Id, Opportunity_No__c, Name, toLabel(StageName), Department_Name__c, Close_Forecasted_Date__c, Competitor__c, Wholesale_Price__c from Opportunity where' + nameCondition + ' (Agency1__c=\'' + a.Id + '\' or Agency2__c=\'' + a.Id + '\') and StageName IN (\'引合\',\'注残\',\'出荷\') and RecordTypeId in (\'01210000000QekK\',\'012100000006KMeAAM\') order by Name, Opportunity_No__c, Department_Name__c limit 31';
|
//queryString = 'Select Id, Opportunity_No__c, Name, toLabel(StageName), Department_Name__c, Close_Forecasted_Date__c, Competitor__c, Wholesale_Price__c from Opportunity where' + nameCondition + ' (Agency1__c=\'' + a.Id + '\' or Agency2__c=\'' + a.Id + '\') and StageName IN (\'引合\',\'注残\') and RecordTypeId in (\'01210000000QekK\',\'012100000006KMeAAM\') order by Name, Opportunity_No__c, Department_Name__c limit 31';
|
//20210824 zh SWAG-C5S46P start
|
//queryString = 'Select Id, Opportunity_No__c, Name, toLabel(StageName), Department_Name__c,Field1__c,CountNoInstall__c, Close_Forecasted_Date__c, Competitor__c, Wholesale_Price__c from Opportunity where' + nameCondition + ' Account.Hospital__c=\'' + a.Hospital__c + '\' and ( StageName IN (\'引合\',\'注残\') or ( StageName = \'出荷\' and CountNoInstall__c > 0 )) and RecordTypeId in (\'01210000000QekK\',\'012100000006KMeAAM\') order by Name, Opportunity_No__c, Department_Name__c limit 31';
|
|
//queryString = 'Select Id, Opportunity_No__c, Name, toLabel(StageName), Department_Name__c,Field1__c,CountNoInstall__c, Close_Forecasted_Date__c, Competitor__c, Wholesale_Price__c from Opportunity where' + nameCondition + ' Account.Hospital__c=\'' + a.Hospital__c + '\' and ( StageName IN (\'引合\',\'注残\') or ( StageName = \'出荷\' and DeliveryDate__c > '+temptoday+' and DeliveryDate__c <= '+tempLastDate+')) and RecordTypeId in (\'01210000000QekK\',\'012100000006KMeAAM\') order by Name, Opportunity_No__c, Department_Name__c limit 31';
|
//20210824 zh SWAG-C5S46P end
|
//20210826 mzy SWAG-C5S46P start
|
//改为用 发货完毕日 判断 且 将 2012年创建的且询价状态是发货/完毕的数据排除
|
//queryString = 'Select Id, Opportunity_No__c, Name, toLabel(StageName), Department_Name__c,Field1__c,CountNoInstall__c, Close_Forecasted_Date__c, Competitor__c, Wholesale_Price__c from Opportunity where' + nameCondition + ' Account.Hospital__c=\'' + a.Hospital__c + '\' and ( StageName IN (\'引合\',\'注残\') or ( StageName = \'出荷\' and Shipping_Finished_Day__c > '+temptoday+' and Shipping_Finished_Day__c <= '+tempLastDate+' and CALENDAR_YEAR(Created_Day__c) != 2012 )) and RecordTypeId in (\'01210000000QekK\',\'012100000006KMeAAM\') order by Name, Opportunity_No__c, Department_Name__c limit 31';
|
queryString = 'Select Id, Opportunity_No__c, Name, toLabel(StageName), Department_Name__c,Field1__c,CountNoInstall__c, Close_Forecasted_Date__c, Competitor__c, Wholesale_Price__c from Opportunity where' + nameCondition + ' Account.Hospital__c=\'' + a.Hospital__c + '\' and ( StageName IN (\'引合\',\'注残\') or ( StageName = \'出荷\' and Shipping_Finished_Day__c > '+tempLastDate+' and Shipping_Finished_Day__c <= '+temptoday+' and CALENDAR_YEAR(Created_Day__c) != 2012 )) and RecordTypeId in (\'01210000000QekK\',\'012100000006KMeAAM\') order by Name, Opportunity_No__c, Department_Name__c limit 31';
|
//20210826 mzy SWAG-C5S46P end
|
// 20191126 SWAG-BJA6JK LHJ End
|
// 20200616 CHAN-BQM8LU vivek end
|
}
|
|
return queryString;
|
}
|
// 用来解决经销商活动的担当
|
public static List<Agency_Opportunity__c> DatabaseQuery(String soql){
|
return DataBase.query(soql);
|
}
|
|
public class myException extends Exception {}
|
|
WebService static String qureySoql(String soql) {
|
List<SObject> rtnList = Database.query(soql);
|
String rtnJSON = JSON.serialize(Database.query(soql), true);
|
System.debug('rtnJSON:' + rtnJSON);
|
return rtnJSON;
|
}
|
|
// GIR 项目需求用,找不到Add_report的测试程序 20191219 by vivek start
|
WebService static Account getAccountForJs(String id){
|
return [select Id, Name, Province_formula__c, Hospital__r.Salesdepartment_HP__c,Department_Class__r.Name,Department_Class__r.OwnerId, Department_Class__r.Owner.Name, Department_Class__r.Id, OwnerId, Owner.Name,
|
Hospital__r.Name, Hospital__r.Id, Hospital__r.OCM_Category__c,Hospital__r.OCM_Management_Province__r.GI_assistant__c,Hospital__r.OCM_Management_Province__r.GI_assistant__r.Name
|
from Account where Id = :id];
|
}
|
// GIR 项目需求用,找不到Add_report的测试程序 20191219 by vivek end
|
|
// 任务和日报 2020-05-23 update by vivek start
|
public static Event__c getNoIdEventC(Event__c dlyevt){
|
dlyevt.Id = null;
|
return dlyevt;
|
}
|
public static Event getNoIdEvent(Event dlyec){
|
dlyec.Id = null;
|
return dlyec;
|
|
}
|
public static Event getEventList(Id eventcid){
|
Event dlyec = [select id, ActivityDate, OwnerId, Subject, task_id__c,whatid__c, EventC_ID__c, NextEventC_ID__c, AppCdId__c, SyncCreatedDate__c,
|
StartDateTime, DurationInMinutes, Main_Visit_Location__c, Activity_Type2__c, IsScheduled__c, BeforeActivityDate__c,
|
Visitor1__c, Visitor2__c, Visitor3__c, Visitor4__c, Visitor5__c, Visitor1_ID__c, Visitor2_ID__c, Visitor3_ID__c, Visitor4_ID__c, Visitor5_ID__c,
|
Purpose_Type__c, Location, Related_Opportunity1__c, Related_Service1__c, Related_Opportunity1_ID__c, Related_Service1_ID__c, WS_flg__c,
|
Related_Opportunity2__c, Related_Opportunity3__c, Related_Opportunity4__c, Related_Opportunity5__c,OPDPlan_Flag__c,
|
Related_Opportunity2_ID__c, Related_Opportunity3_ID__c, Related_Opportunity4_ID__c, Related_Opportunity5_ID__c,
|
Activity_Purpose__c, Activity_PurposeFSE__c, Activity_PurposeEscFSE__c, Purpose_TypeFSE__c, Purpose_TypeEscFSE__c,Opd_Plan__c
|
from Event where EventC_ID__c = :eventcid];
|
return dlyec;
|
}
|
|
public static List<Event> getEventsList(Set<String> eventcid){
|
List<Event> dlyec = [select id, ActivityDate, OwnerId, Subject, whatid__c,task_id__c, EventC_ID__c, NextEventC_ID__c, AppCdId__c, SyncCreatedDate__c,
|
StartDateTime, DurationInMinutes, Main_Visit_Location__c, Activity_Type2__c, IsScheduled__c, BeforeActivityDate__c,
|
Visitor1__c, Visitor2__c, Visitor3__c, Visitor4__c, Visitor5__c, Visitor1_ID__c, Visitor2_ID__c, Visitor3_ID__c, Visitor4_ID__c, Visitor5_ID__c,
|
Purpose_Type__c, Location, Related_Opportunity1__c, Related_Service1__c, Related_Opportunity1_ID__c, Related_Service1_ID__c, WS_flg__c,
|
Related_Opportunity2__c, Related_Opportunity3__c, Related_Opportunity4__c, Related_Opportunity5__c,OPDPlan_Flag__c,
|
Related_Opportunity2_ID__c, Related_Opportunity3_ID__c, Related_Opportunity4_ID__c, Related_Opportunity5_ID__c,
|
Activity_Purpose__c, Activity_PurposeFSE__c, Activity_PurposeEscFSE__c, Purpose_TypeFSE__c, Purpose_TypeEscFSE__c
|
from Event where Id = :eventcid];
|
return dlyec;
|
}
|
// 任务和日报 2020-05-23 update by vivek end
|
|
//失但报告申请保存 2021-09-13 upsert zxk start
|
public static void lostOrder(Lost_Report__c lostData) {
|
upsert lostData;
|
}
|
}
|