| | |
| | | //HWAG-B399Q8 2018/08/20 检验是否显示'请提交待审批' start |
| | | public Boolean IS_Clone_After_Decide { get; set; } |
| | | //HWAG-B399Q8 2018/08/20 检验是否显示'请提交待审批' end |
| | | public List<String> TopProductModel =new List<String>(); |
| | | static { |
| | | recordNum = new List<SelectOption>(); |
| | | recordNum.add(new SelectOption('10', '10')); |
| | | recordNum.add(new SelectOption('20', '20')); |
| | | recordNum.add(new SelectOption('50', '50')); |
| | | recordNum.add(new SelectOption('100', '100')); |
| | | recordNum.add(new SelectOption('200', '200')); |
| | | recordNum = new List<SelectOption>(); |
| | | recordNum.add(new SelectOption('10', '10')); |
| | | recordNum.add(new SelectOption('20', '20')); |
| | | recordNum.add(new SelectOption('50', '50')); |
| | | recordNum.add(new SelectOption('100', '100')); |
| | | recordNum.add(new SelectOption('200', '200')); |
| | | } |
| | | private List<String> checkIdList = new List<String> (); // 合同对象设备的设备ID |
| | | |
| | |
| | | public List<String> assetSerialNumberList = new List<String>(); |
| | | // 新规 或者 copy |
| | | private Boolean newIns = false; |
| | | |
| | | //add wangweipeng 2021/12/06 start |
| | | public String checkDealerId{get;set;} |
| | | //add wangweipeng 2021/12/06 end |
| | | |
| | | static { |
| | | textOpts = new List<SelectOption>(); |
| | | //LJPH-BSS6E2 ---20200911 ---update by rentongxiao start |
| | | // textOpts.add(new SelectOption('','-无-')); |
| | | //LJPH-BSS6E2 ---20200911 ---update by rentongxiao end |
| | | //JZHG-BSDUT4 ---20200825---update By rentongxiao---Start |
| | | /* 在查询语句中 新增了 AssetMark__c 的字段 */ |
| | | // textOpts.add(new SelectOption('S:Asset_situation__c' , Schema.SObjectType.Asset.fields.Asset_situation__c.label)); |
| | | // 添加新条件 -- 耗材/主机 |
| | | textOpts.add(new SelectOption('S:AssetMark__c', '主机/耗材')); |
| | | //JZHG-BSDUT4 ---20200825---update By rentongxiao---End |
| | | textOpts.add(new SelectOption('S:Name', Schema.SObjectType.Asset.fields.Name.label)); |
| | | textOpts.add(new SelectOption('S:SerialNumber', Schema.SObjectType.Asset.fields.SerialNumber.label)); |
| | | textOpts.add(new SelectOption('S:CurrentContract__r.Management_Code__c', Schema.SObjectType.Asset.fields.CurrentContract__c.label)); |
| | | //JZHG-BSDUT4 ---20200825---update By rentongxiao---Start |
| | | // textOpts.add(new SelectOption('S:Status' , Schema.SObjectType.Asset.fields.Status.label)); |
| | | //JZHG-BSDUT4 ---20200825---update By rentongxiao---End |
| | | textOpts.add(new SelectOption('S:Installation_Site__c', Schema.SObjectType.Asset.fields.Installation_Site__c.label)); |
| | | textOpts.add(new SelectOption('S:Department_Name__c', Schema.SObjectType.Asset.fields.Department_Name__c.label)); |
| | | textOpts = new List<SelectOption>(); |
| | | //LJPH-BSS6E2 ---20200911 ---update by rentongxiao start |
| | | // textOpts.add(new SelectOption('','-无-')); |
| | | //LJPH-BSS6E2 ---20200911 ---update by rentongxiao end |
| | | //JZHG-BSDUT4 ---20200825---update By rentongxiao---Start |
| | | /* 在查询语句中 新增了 AssetMark__c 的字段 */ |
| | | // textOpts.add(new SelectOption('S:Asset_situation__c' , Schema.SObjectType.Asset.fields.Asset_situation__c.label)); |
| | | // 添加新条件 -- 耗材/主机 |
| | | textOpts.add(new SelectOption('S:AssetMark__c', '主机/耗材')); |
| | | //JZHG-BSDUT4 ---20200825---update By rentongxiao---End |
| | | textOpts.add(new SelectOption('S:Name', Schema.SObjectType.Asset.fields.Name.label)); |
| | | textOpts.add(new SelectOption('S:SerialNumber', Schema.SObjectType.Asset.fields.SerialNumber.label)); |
| | | textOpts.add(new SelectOption('S:CurrentContract__r.Management_Code__c', Schema.SObjectType.Asset.fields.CurrentContract__c.label)); |
| | | //JZHG-BSDUT4 ---20200825---update By rentongxiao---Start |
| | | // textOpts.add(new SelectOption('S:Status' , Schema.SObjectType.Asset.fields.Status.label)); |
| | | //JZHG-BSDUT4 ---20200825---update By rentongxiao---End |
| | | textOpts.add(new SelectOption('S:Installation_Site__c', Schema.SObjectType.Asset.fields.Installation_Site__c.label)); |
| | | textOpts.add(new SelectOption('S:Department_Name__c', Schema.SObjectType.Asset.fields.Department_Name__c.label)); |
| | | } |
| | | public static List<SelectOption> equalOpts { get; private set; } |
| | | static { |
| | | equalOpts = new List<SelectOption>(); |
| | | equalOpts.add(new SelectOption('equals', '等于')); |
| | | equalOpts.add(new SelectOption('contains', '包含')); |
| | | //JZHG-BSDUT4 ---20200825---update By rentongxiao---Start |
| | | //新加匹配符 不等于 |
| | | equalOpts.add(new SelectOption('notequals', '不等于')); |
| | | //JZHG-BSDUT4 ---20200825---update By rentongxiao---End |
| | | equalOpts = new List<SelectOption>(); |
| | | equalOpts.add(new SelectOption('equals', '等于')); |
| | | equalOpts.add(new SelectOption('contains', '包含')); |
| | | //JZHG-BSDUT4 ---20200825---update By rentongxiao---Start |
| | | //新加匹配符 不等于 |
| | | equalOpts.add(new SelectOption('notequals', '不等于')); |
| | | //JZHG-BSDUT4 ---20200825---update By rentongxiao---End |
| | | } |
| | | public String text1 { get; set; } // 对象 |
| | | public String cond1 { get; set; } // 条件 |
| | |
| | | |
| | | // 检索按钮 |
| | | public PageReference searchBtn() { |
| | | countorder = 1; |
| | | //验证 |
| | | assetSerialNumberList.clear(); |
| | | getAssetSerialNumber(); |
| | | totalRecords = 0; |
| | | List<Asset> assetconfimList = getAssetconfim(text1, cond1, val1); |
| | | for (Asset ast : assetconfimList) { |
| | | totalRecords++; |
| | | } |
| | | countorder = 1; |
| | | //验证 |
| | | assetSerialNumberList.clear(); |
| | | getAssetSerialNumber(); |
| | | totalRecords = 0; |
| | | List<Asset> assetconfimList = getAssetconfim(text1, cond1, val1); |
| | | for (Asset ast : assetconfimList) { |
| | | totalRecords++; |
| | | } |
| | | |
| | | |
| | | // 获取assets |
| | | List<Asset> assetList = getAsset(text1, cond1, val1); |
| | | // 获取assets |
| | | List<Asset> assetList = getAsset(text1, cond1, val1); |
| | | |
| | | // 作成明细行 |
| | | getSortedUnCheckedInfoList(assetList); |
| | | // 排序用检索条件退避 |
| | | text1ForSort = text1; |
| | | cond1ForSort = cond1; |
| | | val1ForSort = val1; |
| | | currPage = 1; |
| | | // 作成明细行 |
| | | getSortedUnCheckedInfoList(assetList); |
| | | // 排序用检索条件退避 |
| | | text1ForSort = text1; |
| | | cond1ForSort = cond1; |
| | | val1ForSort = val1; |
| | | currPage = 1; |
| | | |
| | | |
| | | totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0); |
| | | return null; |
| | | totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0); |
| | | return null; |
| | | } |
| | | |
| | | // 取已选择资产的机身编码 |
| | | public void getAssetSerialNumber() { |
| | | //LJPH-BSS6E2 ---20200911 ---add by rentongxiao start |
| | | contr = '2'; |
| | | //LJPH-BSS6E2 ---20200911 ---add by rentongxiao end |
| | | assetSerialNumberList = new List<String>(); |
| | | assetSerialNumberList.clear(); |
| | | for (AssetInfo ai : this.checkedAssets) { |
| | | system.debug('checkedAssets1111111' + this.checkedAssets); |
| | | //system.debug('ai.ah.SerialNumber__c' + ai.ah.SerialNumber__c); |
| | | if (String.isNotEmpty(ai.rec.SerialNumber)) { |
| | | assetSerialNumberList.add(ai.rec.SerialNumber); |
| | | //LJPH-BSS6E2 ---20200911 ---add by rentongxiao start |
| | | contr = '2'; |
| | | //LJPH-BSS6E2 ---20200911 ---add by rentongxiao end |
| | | assetSerialNumberList = new List<String>(); |
| | | assetSerialNumberList.clear(); |
| | | for (AssetInfo ai : this.checkedAssets) { |
| | | system.debug('checkedAssets1111111' + this.checkedAssets); |
| | | //system.debug('ai.ah.SerialNumber__c' + ai.ah.SerialNumber__c); |
| | | if (String.isNotEmpty(ai.rec.SerialNumber)) { |
| | | assetSerialNumberList.add(ai.rec.SerialNumber); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // |
| | | private void getSortedUnCheckedInfoList(List<Asset> assetList) { |
| | | Boolean overLimit = false; |
| | | Map<Id, AssetInfo> markUpUnCheckMap = new Map<Id, AssetInfo>(); |
| | | for (AssetInfo unCheckinfo : unCheckedAssets) { |
| | | Boolean overLimit = false; |
| | | Map<Id, AssetInfo> markUpUnCheckMap = new Map<Id, AssetInfo>(); |
| | | for (AssetInfo unCheckinfo : unCheckedAssets) { |
| | | |
| | | // 打勾,视为优先显示明细 |
| | | if (unCheckinfo.rec_checkBox_c == true) { |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, 'unCheckinfo.rec_checkBox_c' + unCheckinfo.rec_checkBox_c)); |
| | | markUpUnCheckMap.put(unCheckinfo.rec.Id, unCheckinfo); |
| | | // 打勾,视为优先显示明细 |
| | | if (unCheckinfo.rec_checkBox_c == true) { |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, 'unCheckinfo.rec_checkBox_c' + unCheckinfo.rec_checkBox_c)); |
| | | markUpUnCheckMap.put(unCheckinfo.rec.Id, unCheckinfo); |
| | | } |
| | | } |
| | | } |
| | | unCheckedAssets.clear(); |
| | | // 优先显示明细放在最前面 |
| | | unCheckedInfoList = new List<AssetInfo>(); |
| | | for (AssetInfo asInfo : markUpUnCheckMap.values()) { |
| | | unCheckedAssets.add(asInfo); |
| | | } |
| | | SELECT_LIMIT = selctRecordNum; |
| | | Integer selectCnt = unCheckedAssets.size(); |
| | | for (Asset asset : assetList) { |
| | | // 201を超えた場合前200のみを出す |
| | | if (unCheckedAssets.size() >= SELECT_LIMIT) { overLimit = true; break; } |
| | | if (markUpUnCheckMap.containsKey(asset.Id) == false) { |
| | | //unCheckedInfoList.add(unCheckMap.get(asset.Id)); |
| | | unCheckedAssets.add(new AssetInfo(unCheckedAssets.size(), asset)); |
| | | unCheckedAssets.clear(); |
| | | // 优先显示明细放在最前面 |
| | | unCheckedInfoList = new List<AssetInfo>(); |
| | | for (AssetInfo asInfo : markUpUnCheckMap.values()) { |
| | | unCheckedAssets.add(asInfo); |
| | | } |
| | | } |
| | | SELECT_LIMIT = selctRecordNum; |
| | | Integer selectCnt = unCheckedAssets.size(); |
| | | for (Asset asset : assetList) { |
| | | // 201を超えた場合前200のみを出す |
| | | if (unCheckedAssets.size() >= SELECT_LIMIT) { overLimit = true; break; } |
| | | if (markUpUnCheckMap.containsKey(asset.Id) == false) { |
| | | //unCheckedInfoList.add(unCheckMap.get(asset.Id)); |
| | | unCheckedAssets.add(new AssetInfo(unCheckedAssets.size(), asset)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //检索验证 |
| | | private List<Asset> getAssetconfim(String txt, String con, String val) { |
| | | String soql = this.makeSoqlconfim(); |
| | | soql += makeTextSql(txt, con, val); |
| | | system.debug('makeTextSql_soql' + soql); |
| | | if (isSoft) { |
| | | soql += ' order by ' + this.columus[Integer.valueOf(this.sortKey)] + ' ' + (this.sortOrderAsc == true ? 'asc nulls first' : 'desc nulls last '); |
| | | } else { |
| | | soql += ' order by SerialNumber, Name, Department_Name__c, InstallDate'; |
| | | } |
| | | system.debug('====getAssetconfim:' + soql); |
| | | return Database.query(soql); |
| | | String soql = this.makeSoqlconfim(); |
| | | soql += makeTextSql(txt, con, val); |
| | | system.debug('makeTextSql_soql' + soql); |
| | | if (isSoft) { |
| | | soql += ' order by ' + this.columus[Integer.valueOf(this.sortKey)] + ' ' + (this.sortOrderAsc == true ? 'asc nulls first' : 'desc nulls last '); |
| | | } else { |
| | | soql += ' order by SerialNumber, Name, Department_Name__c, InstallDate'; |
| | | } |
| | | system.debug('====getAssetconfim:' + soql); |
| | | return Database.query(soql); |
| | | } |
| | | |
| | | private List<Asset> getAsset(String txt, String con, String val) { |
| | | String soql = this.makeSoqlconfim(); |
| | | soql += makeTextSql(txt, con, val); |
| | | String soql = this.makeSoqlconfim(); |
| | | soql += makeTextSql(txt, con, val); |
| | | |
| | | if (isSoft) { |
| | | soql += ' order by ' + this.columus[Integer.valueOf(this.sortKey)] + ' ' + (this.sortOrderAsc == true ? 'asc nulls first' : 'desc nulls last '); |
| | | } else { |
| | | soql += ' order by SerialNumber, Name, Department_Name__c, InstallDate'; |
| | | } |
| | | soql += ' limit ' + System.Label.Asset_Maxcount; |
| | | soql += ' OFFSET ' + (countorder - 1) * Integer.valueOf(System.Label.Asset_Maxcount); |
| | | return Database.query(soql); |
| | | if (isSoft) { |
| | | soql += ' order by ' + this.columus[Integer.valueOf(this.sortKey)] + ' ' + (this.sortOrderAsc == true ? 'asc nulls first' : 'desc nulls last '); |
| | | } else { |
| | | soql += ' order by SerialNumber, Name, Department_Name__c, InstallDate'; |
| | | } |
| | | soql += ' limit ' + System.Label.Asset_Maxcount; |
| | | soql += ' OFFSET ' + (countorder - 1) * Integer.valueOf(System.Label.Asset_Maxcount); |
| | | return Database.query(soql); |
| | | } |
| | | |
| | | public Integer soqlNos() { |
| | | List<Asset> assetconfimList = getAssetconfim(text1, cond1, val1); |
| | | totalRecords = assetconfimList.size(); |
| | | //totalPage = (totalRecords/selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0); |
| | | return totalRecords; |
| | | List<Asset> assetconfimList = getAssetconfim(text1, cond1, val1); |
| | | totalRecords = assetconfimList.size(); |
| | | //totalPage = (totalRecords/selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0); |
| | | return totalRecords; |
| | | } |
| | | |
| | | private String makeSoqlconfim() { |
| | | String sqlTail = '(\''; |
| | | system.debug('assetSerialNumberList.size()' + assetSerialNumberList.size()); |
| | | for (Integer i = 0; i < assetSerialNumberList.size(); i++) { |
| | | if (i < assetSerialNumberList.size() - 1) { |
| | | sqlTail += assetSerialNumberList[i] + '\',\''; |
| | | } else { |
| | | sqlTail += assetSerialNumberList[i] + '\')'; |
| | | String sqlTail = '(\''; |
| | | system.debug('assetSerialNumberList.size()' + assetSerialNumberList.size()); |
| | | for (Integer i = 0; i < assetSerialNumberList.size(); i++) { |
| | | if (i < assetSerialNumberList.size() - 1) { |
| | | sqlTail += assetSerialNumberList[i] + '\',\''; |
| | | } else { |
| | | sqlTail += assetSerialNumberList[i] + '\')'; |
| | | } |
| | | } |
| | | } |
| | | //tcm 添加 Management_Code__c 20211201 start |
| | | String soql = 'SELECT Id, Name, Asset_situation__c, SerialNumber, Department_Name__c, Installation_Site__c, ' |
| | | + 'Posting_Date__c,Management_Code__c,IF_Warranty__c,Reson_Can_not_Warranty__c, InstallDate,isNewDate_use__c, ' |
| | | + 'Asset_Owner__c, Accumulation_Repair_Amount__c, Maintenance_Price_Month__c, Final_Examination_Date__c, ' |
| | | + 'CurrentContract_F__c,CurrentContract_F__r.Maintenance_Contract_No_F__c,CurrentContract_F__r.Management_Code__c,CurrentContract_F__r.RecordType_DeveloperName__c,CurrentContract_F__r.Estimate_Num__c,CurrentContract_F__r.Contract_End_Date__c,' |
| | | + 'CurrentContract_F_asset__c,CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c,CurrentContract_F_asset__r.endDateGurantee_Text__c,CurrentContract_F__r.Gurantee_Estimate_startDate__c, ' |
| | | + 'CurrentContract_F__r.First_Estimate_Date__c,CurrentContract_F__r.Estimate_Contract_endDate__c,' |
| | | + 'CurrentContract_F__r.Contract_Consumption_rate__c,CurrentContract_F__r.First_contract_usage_Rate__c,CurrentContract_F__r.Contract_Range__c,' |
| | | + 'CurrentContract_End_Date__c, Extend_Gurantee_DateTo__c,EquipmentGuaranteeFlg__c,AssetMark__c,NoPartRiskDate_F__c,NoPartRiskDate__c,SignableFlag__c FROM Asset WHERE Hospital__c = \'' + this.targetHospitalId + '\' '; |
| | | //HWAG-BDJ43R ---XHL---20190729--- |
| | | //soql += ' AND AssetMark__c != \'耗材\' AND Product2.Family != \'ET\' '; |
| | | //JZHG-BSDUT4 ---20200825---update By rentongxiao---Start |
| | | // soql += ' AND ( AssetMark__c != \'耗材\' OR Product2.Family != \'ET\' ) '; |
| | | //JZHG-BSDUT4 ---20200825---update By rentongxiao---End |
| | | //HWAG-BDJ43R ---XHL---20190729--- |
| | | if (assetSerialNumberList.size() > 0) { |
| | | soql += ' AND SerialNumber not in ' + sqlTail; |
| | | } |
| | | return soql; |
| | | //tcm 添加 Management_Code__c 20211201 start |
| | | String soql = 'SELECT Id, Name, Asset_situation__c, SerialNumber, Department_Name__c, Installation_Site__c, ' |
| | | + 'Posting_Date__c,Management_Code__c,IF_Warranty__c,Reson_Can_not_Warranty__c, InstallDate,isNewDate_use__c, ' |
| | | + 'Asset_Owner__c, Accumulation_Repair_Amount__c, Maintenance_Price_Month__c, Final_Examination_Date__c, ' |
| | | + 'CurrentContract_F__c,CurrentContract_F__r.Maintenance_Contract_No_F__c,CurrentContract_F__r.Management_Code__c,CurrentContract_F__r.RecordType_DeveloperName__c,CurrentContract_F__r.Estimate_Num__c,CurrentContract_F__r.Contract_End_Date__c,' |
| | | + 'CurrentContract_F_asset__c,CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c,CurrentContract_F_asset__r.endDateGurantee_Text__c,CurrentContract_F__r.Gurantee_Estimate_startDate__c, ' |
| | | + 'CurrentContract_F__r.First_Estimate_Date__c,CurrentContract_F__r.Estimate_Contract_endDate__c, ' |
| | | + 'CurrentContract_F__r.Contract_Consumption_rate__c,CurrentContract_F__r.First_contract_usage_Rate__c,CurrentContract_F__r.Contract_Range__c,' |
| | | //WLIG-CDFBV3 开通续签报价为true的可以开放续签报价 thh 20220414 start |
| | | +'CurrentContract_F__r.Open_RenewalQuotation__c,' |
| | | //WLIG-CDFBV3 开通续签报价为true的可以开放续签报价 thh 20220414 end |
| | | + 'CurrentContract_End_Date__c, Extend_Gurantee_DateTo__c,EquipmentGuaranteeFlg__c,AssetMark__c,NoPartRiskDate_F__c,NoPartRiskDate__c,SignableFlag__c FROM Asset WHERE Hospital__c = \'' + this.targetHospitalId + '\' '; |
| | | //HWAG-BDJ43R ---XHL---20190729--- |
| | | //soql += ' AND AssetMark__c != \'耗材\' AND Product2.Family != \'ET\' '; |
| | | //JZHG-BSDUT4 ---20200825---update By rentongxiao---Start |
| | | // soql += ' AND ( AssetMark__c != \'耗材\' OR Product2.Family != \'ET\' ) '; |
| | | //JZHG-BSDUT4 ---20200825---update By rentongxiao---End |
| | | //HWAG-BDJ43R ---XHL---20190729--- |
| | | if (assetSerialNumberList.size() > 0) { |
| | | soql += ' AND SerialNumber not in ' + sqlTail; |
| | | } |
| | | return soql; |
| | | } |
| | | |
| | | // 拼接检索条件sql文 |
| | | private String makeTextSql(String txt1, String con, String val) { |
| | | String soql = ''; |
| | | if (String.isBlank(con)) { |
| | | con = 'equals'; |
| | | } |
| | | // containsの場合、日報画面の病院検索を真似し、spaceで分けて、and検索 |
| | | // equalsの場合、SF標準の検索を真似し、「,」で分けて、or検索 |
| | | if (!String.isBlank(txt1)) { |
| | | if ((con == 'contains' || con == 'notcontains') && val.contains(' ')) { |
| | | String[] vals = val.split(' '); |
| | | |
| | | String cSql = ''; |
| | | if (vals.size() > 0) { |
| | | String txt = txt1.substring(2); |
| | | soql += ' and ( '; |
| | | for (String v : vals) { |
| | | if (String.isNotBlank(v)) { |
| | | if (con == 'contains') { |
| | | soql += txt + ' like \'%' + v + '%\' or '; |
| | | } else { |
| | | soql += txt + ' not like \'%' + v + '%\' and '; |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | soql = soql.substring(0, soql.length() - 4); |
| | | soql += ')'; |
| | | } |
| | | system.debug('containssoql: ' + soql); |
| | | } else if ((con == 'equals' || con == 'notequals') && val.contains(',')) { |
| | | String[] vals = val.split(','); |
| | | if (vals.size() > 0) { |
| | | String txt = txt1.substring(2); // S:Name 、最初の2文字がタイプです |
| | | soql += ' and ( '; |
| | | for (String v : vals) { |
| | | if (con == 'equals') { |
| | | soql += txt + ' = \'' + v + '\' or '; |
| | | } else { |
| | | // notequals |
| | | soql += txt + ' <> \'' + v + '\' and '; |
| | | } |
| | | } |
| | | soql = soql.substring(0, soql.length() - 4); |
| | | soql += ')'; |
| | | } |
| | | } else { |
| | | String cSql = this.makeTextSqlStr(txt1, con, val); |
| | | if (con != 'notcontains') { |
| | | soql += this.makeTextSqlStr(txt1, con, val); |
| | | } else { |
| | | // notcontains |
| | | if (!String.isBlank(cSql)) { |
| | | cSql = cSql.substring(5); // ' and ' の5文字を外す |
| | | soql += ' and (NOT ' + cSql + ') '; |
| | | } |
| | | } |
| | | String soql = ''; |
| | | if (String.isBlank(con)) { |
| | | con = 'equals'; |
| | | } |
| | | } |
| | | // //JZHG-BSDUT4 ---20200825---update By rentongxiao---Start |
| | | // else{ |
| | | // soql += 'And AssetMark__c = \'主机\''; |
| | | // } |
| | | // //JZHG-BSDUT4 ---20200825---update By rentongxiao---End |
| | | return soql; |
| | | // containsの場合、日報画面の病院検索を真似し、spaceで分けて、and検索 |
| | | // equalsの場合、SF標準の検索を真似し、「,」で分けて、or検索 |
| | | if (!String.isBlank(txt1)) { |
| | | if ((con == 'contains' || con == 'notcontains') && val.contains(' ')) { |
| | | String[] vals = val.split(' '); |
| | | |
| | | String cSql = ''; |
| | | if (vals.size() > 0) { |
| | | String txt = txt1.substring(2); |
| | | soql += ' and ( '; |
| | | for (String v : vals) { |
| | | if (String.isNotBlank(v)) { |
| | | if (con == 'contains') { |
| | | soql += txt + ' like \'%' + v + '%\' or '; |
| | | } else { |
| | | soql += txt + ' not like \'%' + v + '%\' and '; |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | soql = soql.substring(0, soql.length() - 4); |
| | | soql += ')'; |
| | | } |
| | | system.debug('containssoql: ' + soql); |
| | | } else if ((con == 'equals' || con == 'notequals') && val.contains(',')) { |
| | | String[] vals = val.split(','); |
| | | if (vals.size() > 0) { |
| | | String txt = txt1.substring(2); // S:Name 、最初の2文字がタイプです |
| | | soql += ' and ( '; |
| | | for (String v : vals) { |
| | | if (con == 'equals') { |
| | | soql += txt + ' = \'' + v + '\' or '; |
| | | } else { |
| | | // notequals |
| | | soql += txt + ' <> \'' + v + '\' and '; |
| | | } |
| | | } |
| | | soql = soql.substring(0, soql.length() - 4); |
| | | soql += ')'; |
| | | } |
| | | } else { |
| | | String cSql = this.makeTextSqlStr(txt1, con, val); |
| | | if (con != 'notcontains') { |
| | | soql += this.makeTextSqlStr(txt1, con, val); |
| | | } else { |
| | | // notcontains |
| | | if (!String.isBlank(cSql)) { |
| | | cSql = cSql.substring(5); // ' and ' の5文字を外す |
| | | soql += ' and (NOT ' + cSql + ') '; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | // //JZHG-BSDUT4 ---20200825---update By rentongxiao---Start |
| | | // else{ |
| | | // soql += 'And AssetMark__c = \'主机\''; |
| | | // } |
| | | // //JZHG-BSDUT4 ---20200825---update By rentongxiao---End |
| | | return soql; |
| | | } |
| | | |
| | | private String makeTextSqlStr(String txt1, String con, String val) { |
| | | String soql = ''; |
| | | if (!String.isBlank(txt1)) { |
| | | String txt = txt1.substring(2); |
| | | String colType = txt1.substring(0, 2); |
| | | String tmpVal = val.trim(); |
| | | // 空白の場合''にする |
| | | if (String.isBlank(tmpVal)) { |
| | | if (con == 'equals') { |
| | | //soql += ' and ' + txt + ' = ' + tmpVal; |
| | | soql += ' and ' + txt + ' = null'; |
| | | } else if (con == 'notequals') { |
| | | soql += ' and ' + txt + ' <> null'; |
| | | } else { |
| | | // 空白の場合、contains, notcontains と starts withは無視 |
| | | } |
| | | } else { |
| | | soql += ' and ' + txt; |
| | | if (con == 'equals') { |
| | | if (colType == 'S:') { |
| | | soql += ' = \'' + tmpVal + '\''; |
| | | String soql = ''; |
| | | if (!String.isBlank(txt1)) { |
| | | String txt = txt1.substring(2); |
| | | String colType = txt1.substring(0, 2); |
| | | String tmpVal = val.trim(); |
| | | // 空白の場合''にする |
| | | if (String.isBlank(tmpVal)) { |
| | | if (con == 'equals') { |
| | | //soql += ' and ' + txt + ' = ' + tmpVal; |
| | | soql += ' and ' + txt + ' = null'; |
| | | } else if (con == 'notequals') { |
| | | soql += ' and ' + txt + ' <> null'; |
| | | } else { |
| | | // 空白の場合、contains, notcontains と starts withは無視 |
| | | } |
| | | } else { |
| | | soql += ' = ' + tmpVal + ' '; |
| | | soql += ' and ' + txt; |
| | | if (con == 'equals') { |
| | | if (colType == 'S:') { |
| | | soql += ' = \'' + tmpVal + '\''; |
| | | } else { |
| | | soql += ' = ' + tmpVal + ' '; |
| | | } |
| | | } else if (con == 'notequals') { |
| | | if (colType == 'S:') { |
| | | soql += ' <> \'' + tmpVal + '\''; |
| | | } else { |
| | | soql += ' <> ' + tmpVal + ' '; |
| | | } |
| | | } else if (con == 'contains' || con == 'notcontains') { |
| | | soql += ' like \'%' + String.escapeSingleQuotes(tmpVal.replaceAll('%', '\\%')) + '%\''; |
| | | } else if (con == 'starts with') { |
| | | soql += ' like \'' + String.escapeSingleQuotes(tmpVal.replaceAll('%', '\\%')) + '%\''; |
| | | } else { |
| | | if (colType == 'S:') { |
| | | soql += ' ' + con + '\'' + tmpVal + '\''; |
| | | } else { |
| | | soql += ' ' + con + ' ' + tmpVal + ' '; |
| | | } |
| | | } |
| | | } |
| | | } else if (con == 'notequals') { |
| | | if (colType == 'S:') { |
| | | soql += ' <> \'' + tmpVal + '\''; |
| | | } else { |
| | | soql += ' <> ' + tmpVal + ' '; |
| | | } |
| | | } else if (con == 'contains' || con == 'notcontains') { |
| | | soql += ' like \'%' + String.escapeSingleQuotes(tmpVal.replaceAll('%', '\\%')) + '%\''; |
| | | } else if (con == 'starts with') { |
| | | soql += ' like \'' + String.escapeSingleQuotes(tmpVal.replaceAll('%', '\\%')) + '%\''; |
| | | } else { |
| | | if (colType == 'S:') { |
| | | soql += ' ' + con + '\'' + tmpVal + '\''; |
| | | } else { |
| | | soql += ' ' + con + ' ' + tmpVal + ' '; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return soql; |
| | | return soql; |
| | | } |
| | | |
| | | //----------HWAG-B4R3SS------------------------------------------------------------ |
| | |
| | | |
| | | |
| | | public Boolean getEnablePrintContract() { |
| | | if (String.isBlank(this.contract.Decided_Estimation__c) == false) { |
| | | return this.estimate.Estimation_Decision__c; |
| | | } else { |
| | | return false; |
| | | } |
| | | if (String.isBlank(this.contract.Decided_Estimation__c) == false) { |
| | | return this.estimate.Estimation_Decision__c; |
| | | } else { |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | public Boolean getUnDecideBtnDisabled() { |
| | | // 見積もりdecide取消しできない条件の判断 |
| | | if (String.isBlank(this.contract.Decided_Estimation__c) == false) { |
| | | if (this.estimate.Estimation_Decision__c) { |
| | | return false; |
| | | // 見積もりdecide取消しできない条件の判断 |
| | | if (String.isBlank(this.contract.Decided_Estimation__c) == false) { |
| | | if (this.estimate.Estimation_Decision__c) { |
| | | return false; |
| | | } |
| | | } |
| | | } |
| | | // TODO 本当は特別資格があれば 決定可能にする |
| | | return true; |
| | | // TODO 本当は特別資格があれば 決定可能にする |
| | | return true; |
| | | } |
| | | public Boolean getDecideBtnDisabled() { |
| | | // 見積もりdecideできない条件の判断 |
| | | if (String.isBlank(this.contract.Decided_Estimation__c) == false) { |
| | | if (this.estimate.Estimation_Decision__c) { |
| | | return true; |
| | | // 見積もりdecideできない条件の判断 |
| | | if (String.isBlank(this.contract.Decided_Estimation__c) == false) { |
| | | if (this.estimate.Estimation_Decision__c) { |
| | | return true; |
| | | } |
| | | // TODO 特別資格があれば 決定可能にする |
| | | return true; |
| | | } |
| | | // TODO 特別資格があれば 決定可能にする |
| | | return true; |
| | | } |
| | | if (this.estimate.Process_Status__c != '批准') { |
| | | return true; |
| | | } else { |
| | | if (String.isBlank(this.estimate.Change_Dealer_Approval__c) == false |
| | | && this.estimate.Change_Dealer_Approval__c != '批准' |
| | | && this.estimate.Change_Dealer_Approval__c != '未批准') { |
| | | return true; |
| | | if (this.estimate.Process_Status__c != '批准') { |
| | | return true; |
| | | } else { |
| | | if (String.isBlank(this.estimate.Change_Dealer_Approval__c) == false |
| | | && this.estimate.Change_Dealer_Approval__c != '批准' |
| | | && this.estimate.Change_Dealer_Approval__c != '未批准') { |
| | | return true; |
| | | } |
| | | } |
| | | } |
| | | return false; |
| | | return false; |
| | | } |
| | | public Boolean getApprovalBtnDisabled() { |
| | | |
| | | // 見積もり申請できない条件の判断 |
| | | if (String.isBlank(this.contract.Decided_Estimation__c) == false) { |
| | | // TODO 特別資格があれば 申請可能にする |
| | | return true; |
| | | } |
| | | if (String.isBlank(this.estimate.Process_Status__c) == false |
| | | && this.estimate.Process_Status__c != '草案中' |
| | | //&& this.estimate.Process_Status__c != '不批准' |
| | | ) { |
| | | return true; |
| | | } |
| | | return false; |
| | | // 見積もり申請できない条件の判断 |
| | | if (String.isBlank(this.contract.Decided_Estimation__c) == false) { |
| | | // TODO 特別資格があれば 申請可能にする |
| | | return true; |
| | | } |
| | | if (String.isBlank(this.estimate.Process_Status__c) == false |
| | | && this.estimate.Process_Status__c != '草案中' |
| | | //&& this.estimate.Process_Status__c != '不批准' |
| | | ) { |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | // 20200307 不用 |
| | | // public Boolean getcontactBtnDisabled() { |
| | |
| | | // return false; |
| | | // } |
| | | public Boolean getSaveBtnDisabled() { |
| | | // 見積もりsaveできない条件の判断 |
| | | if (String.isBlank(this.contract.Decided_Estimation__c) == false) { |
| | | return true; |
| | | } |
| | | if (String.isBlank(this.estimate.Process_Status__c) == false |
| | | && this.estimate.Process_Status__c != '草案中' |
| | | //&& this.estimate.Process_Status__c != '不批准' |
| | | ) { |
| | | return true; |
| | | } |
| | | return false; |
| | | // 見積もりsaveできない条件の判断 |
| | | if (String.isBlank(this.contract.Decided_Estimation__c) == false) { |
| | | return true; |
| | | } |
| | | if (String.isBlank(this.estimate.Process_Status__c) == false |
| | | && this.estimate.Process_Status__c != '草案中' |
| | | //&& this.estimate.Process_Status__c != '不批准' |
| | | ) { |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | public Boolean getPrintBtnDisabled() { |
| | | // 印刷できない条件の判断 |
| | | if (this.estimate.Process_Status__c != '批准' || !this.contract.Status__c.equals('引合中') ) { |
| | | return true; |
| | | } else { |
| | | if (String.isBlank(this.estimate.Change_Dealer_Approval__c) == false |
| | | && this.estimate.Change_Dealer_Approval__c != '批准' |
| | | && this.estimate.Change_Dealer_Approval__c != '未批准') { |
| | | return true; |
| | | // 印刷できない条件の判断 |
| | | if (this.estimate.Process_Status__c != '批准' || !this.contract.Status__c.equals('引合中') ) { |
| | | return true; |
| | | } else { |
| | | if (String.isBlank(this.estimate.Change_Dealer_Approval__c) == false |
| | | && this.estimate.Change_Dealer_Approval__c != '批准' |
| | | && this.estimate.Change_Dealer_Approval__c != '未批准') { |
| | | return true; |
| | | } |
| | | } |
| | | } |
| | | return false; |
| | | return false; |
| | | } |
| | | // 页面项目非活性设定 |
| | | public Boolean getPageDisabled() { |
| | | if (String.isBlank(this.contract.Decided_Estimation__c) == false) { |
| | | return true; |
| | | } |
| | | if (String.isBlank(this.estimate.Process_Status__c) == false |
| | | && this.estimate.Process_Status__c != '草案中' |
| | | ) { |
| | | return true; |
| | | } |
| | | return false; |
| | | if (String.isBlank(this.contract.Decided_Estimation__c) == false) { |
| | | return true; |
| | | } |
| | | if (String.isBlank(this.estimate.Process_Status__c) == false |
| | | && this.estimate.Process_Status__c != '草案中' |
| | | ) { |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | // 2021、8、26 合同报价页面的优化,无保有设备点检对象选择框变黑 fxk star |
| | | // public Boolean getPageDisabled1() { |
| | |
| | | // } |
| | | // 2021、8、26 合同报价页面的优化,无保有设备点检对象选择框变黑 fxk end |
| | | public Integer productCount { |
| | | get { |
| | | return checkedAssets == null ? 0 : checkedAssets.size(); |
| | | } |
| | | get { |
| | | return checkedAssets == null ? 0 : checkedAssets.size(); |
| | | } |
| | | } |
| | | public Integer productCount2 { |
| | | get { |
| | | return unCheckedAssets == null ? 0 : unCheckedAssets.size(); |
| | | } |
| | | get { |
| | | return unCheckedAssets == null ? 0 : unCheckedAssets.size(); |
| | | } |
| | | } |
| | | public Integer productCount3 { |
| | | get { |
| | | Integer cnt = 0; |
| | | for (AssetInfo input : this.checkedAssets) { |
| | | if (!input.isManual || input.isManual && !String.isBlank(input.mcae.Product_Manual__c)) { |
| | | cnt += 1; |
| | | } |
| | | get { |
| | | Integer cnt = 0; |
| | | for (AssetInfo input : this.checkedAssets) { |
| | | if (!input.isManual || input.isManual && !String.isBlank(input.mcae.Product_Manual__c)) { |
| | | cnt += 1; |
| | | } |
| | | } |
| | | return cnt; |
| | | } |
| | | return cnt; |
| | | } |
| | | } |
| | | // TODO カスタムラベルから取得 |
| | | public static Decimal oxygenPriceAdj { get { return 0.1; } } // TODO katsu 酸化水を使用しないように変更 |
| | |
| | | * コンストラクタ |
| | | */ |
| | | public SelectAssetEstimateVMController() { |
| | | currPage = 1; |
| | | selRecordOption = '20'; |
| | | totalRecords = 0; |
| | | currPage = 1; |
| | | selRecordOption = '20'; |
| | | totalRecords = 0; |
| | | checkDealerId = ''; |
| | | } |
| | | /** |
| | | * Visaulforceから呼ばれるコンストラクタ |
| | | */ |
| | | public SelectAssetEstimateVMController(ApexPages.StandardController controller) { |
| | | //HWAG-B4R3SS START 20181026 |
| | | currPage = 1; |
| | | selRecordOption = '20'; |
| | | //this.targetEstimateId = (String)(ApexPages.currentPage().getParameters().get('id')); |
| | | totalRecords = 0; |
| | | //HWAG-B4R3SS END 20181026 |
| | | //HWAG-B4R3SS START 20181026 |
| | | currPage = 1; |
| | | selRecordOption = '20'; |
| | | //this.targetEstimateId = (String)(ApexPages.currentPage().getParameters().get('id')); |
| | | totalRecords = 0; |
| | | //HWAG-B4R3SS END 20181026 |
| | | } |
| | | |
| | | private void setThisEstimate() { |
| | | //HWAG-B399Q8 2018/08/20 添加一额外字段 IS_Clone_After_Decide__c start |
| | | this.estimate = [SELECT Id, Name, Maintenance_Contract__c, Estimation_Decision__c, CreatedDate, Service_Contract_Staff__c, |
| | | JingliApprovalManager__c, BuchangApprovalManager__c, ZongjianApprovalManager__c, Finally_Approved_Staff__c, |
| | | Contract_Esti_Start_Date__c, Contract_Esti_End_Date__c, Contract_Range__c, Contract_Start_Date__c, Contract_End_Date__c, |
| | | Maintenance_Contract_Status__c, Discount_reason__c, Improve_ConsumptionRate_Idea__c, Process_Status__c, |
| | | Estimate_Trial_Money__c, Maintenance_Price__c, Department__c, PrintDate__c, Quote_Date__c, Submit_quotation_day__c, |
| | | Examination_Price__c, Service_contract_target_number__c, |
| | | Maintenance_Contract__r.Payment_Plan_Sum_First__c, Maintenance_Contract__r.Payment_Plan_Date_First__c, |
| | | Maintenance_Contract__r.Payment_Plan_Sum_Second__c, |
| | | Maintenance_Contract__r.Payment_Plan_Sum_Third__c, |
| | | Maintenance_Contract__r.Payment_Plan_Sum_Forth__c, |
| | | Maintenance_Contract__r.Payment_Plan_Sum_Fifth__c, |
| | | Maintenance_Contract__r.Payment_Plan_Sum_Sixth__c, |
| | | Discount_Price__c, Discount_Percentage__c, IsSyncing__c, |
| | | NotUse_Oxygenated_Water__c, Estimate_Target__c, Dealer__c, |
| | | Append_Condition_Price__c, Asset_Sum_Price__c, Asset_Repair_Sum_Price__c, |
| | | Print_Contract__c, Print_RepairPrice__c, Print_DiscountPercentage__c, Print_Agent__c, Change_Dealer_Approval__c, |
| | | Print_DiscountPrice__c, Print_ListPrice__c, Print_MaintePrice__c, Print_SumPrice__c, Print_Tripartite__c, TKZongjianApprovalManager__c |
| | | //打印报价(简化版) 2019/12/18 start |
| | | , IS_Clone_After_Decide__c, New_contract_offer__c, NewEstimation_Amount__c, EndUserType__c, Print_Simplify__c |
| | | //打印报价(简化版) 2019/12/18 end |
| | | //最低价格 最高价格 申请背景相关字段 20200108 start |
| | | , GuidePrice_Up__c, GuidePrice_Down__c, finalPriceDecideWay__c, mainTalksTime__c, talksStartDate__c |
| | | , Combined_rate__c, New_Contract_Type_TxT__c, Estimate_Price_range__c |
| | | //最低价格 最高价格计算 20200108 end |
| | | , Sales_incidental__c, Consumption_rate_Forecast__c, AgencyHos_Price__c |
| | | // 申请报价金额 和 相对标准价格范围的折扣率 |
| | | , Request_quotation_Amount__c, Service_discount_Rate__c, ContractPriceType__c |
| | | , LastMContract1__c, LastMContract2__c, LastMContract3__c, LastMContract4__c, LastMContract5__c |
| | | , LastMContract1_ConCount__c, LastMContract2_ConCount__c, LastMContract3_ConCount__c, LastMContract4_ConCount__c, LastMContract5_ConCount__c, |
| | | LastMContract1_NO__c, LastMContract2_NO__c, LastMContract3_NO__c, LastMContract4_NO__c, LastMContract5_NO__c |
| | | //跳过点检标记 2021/07/28 gzw start |
| | | , Skip_DJ__c |
| | | //跳过点检标记 2021/07/28 gzw start |
| | | FROM Maintenance_Contract_Estimate__c WHERE Id = :this.targetEstimateId]; |
| | | //HWAG-B399Q8 2018/08/20 添加一额外字段 IS_Clone_After_Decide__c end |
| | | decimal PriceSum = (this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_First__c == null ? 0 : this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_First__c) + |
| | | (this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Second__c == null ? 0 : this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Second__c) + |
| | | (this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Third__c == null ? 0 : this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Third__c) + |
| | | (this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Forth__c == null ? 0 : this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Forth__c) + |
| | | (this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Fifth__c == null ? 0 : this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Fifth__c) + |
| | | (this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Sixth__c == null ? 0 : this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Sixth__c); |
| | | if ( this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_First__c == null |
| | | //102018/10/26 HWAG-B5C88S 不再根据是否填写第一次付款日期判断 |
| | | ) { |
| | | isPaymentSet = 'false'; |
| | | } else if (this.estimate.Maintenance_Price__c != PriceSum) { |
| | | isPaymentSet = 'Denied'; |
| | | } else { |
| | | isPaymentSet = 'true'; |
| | | } |
| | | //HWAG-B399Q8 2018/08/20 添加一额外字段 IS_Clone_After_Decide__c start |
| | | this.estimate = [SELECT Id, Name, Maintenance_Contract__c, Estimation_Decision__c, CreatedDate, Service_Contract_Staff__c, |
| | | JingliApprovalManager__c, BuchangApprovalManager__c, ZongjianApprovalManager__c, Finally_Approved_Staff__c, |
| | | Contract_Esti_Start_Date__c, Contract_Esti_End_Date__c, Contract_Range__c, Contract_Start_Date__c, Contract_End_Date__c, |
| | | Maintenance_Contract_Status__c, Discount_reason__c, Improve_ConsumptionRate_Idea__c, Process_Status__c, |
| | | Estimate_Trial_Money__c, Maintenance_Price__c, Department__c, PrintDate__c, Quote_Date__c, Submit_quotation_day__c, |
| | | Examination_Price__c, Service_contract_target_number__c, |
| | | Maintenance_Contract__r.Payment_Plan_Sum_First__c, Maintenance_Contract__r.Payment_Plan_Date_First__c, |
| | | Maintenance_Contract__r.Payment_Plan_Sum_Second__c, |
| | | Maintenance_Contract__r.Payment_Plan_Sum_Third__c, |
| | | Maintenance_Contract__r.Payment_Plan_Sum_Forth__c, |
| | | Maintenance_Contract__r.Payment_Plan_Sum_Fifth__c, |
| | | Maintenance_Contract__r.Payment_Plan_Sum_Sixth__c, |
| | | Discount_Price__c, Discount_Percentage__c, IsSyncing__c, |
| | | NotUse_Oxygenated_Water__c, Estimate_Target__c, Dealer__c,Dealer__r.FirstParagraphEnd__c,Is_RecognitionModel__c, |
| | | Append_Condition_Price__c, Asset_Sum_Price__c, Asset_Repair_Sum_Price__c, |
| | | Print_Contract__c, Print_RepairPrice__c, Print_DiscountPercentage__c, Print_Agent__c, Change_Dealer_Approval__c, |
| | | Print_DiscountPrice__c, Print_ListPrice__c, Print_MaintePrice__c, Print_SumPrice__c, Print_Tripartite__c, TKZongjianApprovalManager__c |
| | | //打印报价(简化版) 2019/12/18 start |
| | | , IS_Clone_After_Decide__c, New_contract_offer__c, NewEstimation_Amount__c, EndUserType__c, Print_Simplify__c |
| | | //打印报价(简化版) 2019/12/18 end |
| | | //最低价格 最高价格 申请背景相关字段 20200108 start |
| | | , GuidePrice_Up__c, GuidePrice_Down__c, finalPriceDecideWay__c, mainTalksTime__c, talksStartDate__c |
| | | , Combined_rate__c, New_Contract_Type_TxT__c, Estimate_Price_range__c |
| | | //最低价格 最高价格计算 20200108 end |
| | | , Sales_incidental__c, Consumption_rate_Forecast__c, AgencyHos_Price__c |
| | | // 申请报价金额 和 相对标准价格范围的折扣率 |
| | | , Request_quotation_Amount__c, Service_discount_Rate__c, ContractPriceType__c |
| | | , LastMContract1__c, LastMContract2__c, LastMContract3__c, LastMContract4__c, LastMContract5__c |
| | | , LastMContract1_ConCount__c, LastMContract2_ConCount__c, LastMContract3_ConCount__c, LastMContract4_ConCount__c, LastMContract5_ConCount__c, |
| | | LastMContract1_NO__c, LastMContract2_NO__c, LastMContract3_NO__c, LastMContract4_NO__c, LastMContract5_NO__c |
| | | //跳过点检标记 2021/07/28 gzw start |
| | | , Skip_DJ__c |
| | | //跳过点检标记 2021/07/28 gzw start |
| | | |
| | | FROM Maintenance_Contract_Estimate__c WHERE Id = :this.targetEstimateId]; |
| | | //HWAG-B399Q8 2018/08/20 添加一额外字段 IS_Clone_After_Decide__c end |
| | | decimal PriceSum = (this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_First__c == null ? 0 : this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_First__c) + |
| | | (this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Second__c == null ? 0 : this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Second__c) + |
| | | (this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Third__c == null ? 0 : this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Third__c) + |
| | | (this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Forth__c == null ? 0 : this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Forth__c) + |
| | | (this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Fifth__c == null ? 0 : this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Fifth__c) + |
| | | (this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Sixth__c == null ? 0 : this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Sixth__c); |
| | | if ( this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_First__c == null |
| | | //102018/10/26 HWAG-B5C88S 不再根据是否填写第一次付款日期判断 |
| | | ) { |
| | | isPaymentSet = 'false'; |
| | | } else if (this.estimate.Maintenance_Price__c != PriceSum) { |
| | | isPaymentSet = 'Denied'; |
| | | } else { |
| | | isPaymentSet = 'true'; |
| | | } |
| | | } |
| | | |
| | | public void init() { |
| | | typeresult = null; |
| | | changedAfterPrint = false; |
| | | changedSubmitPrice = false; |
| | | isSaveOrApproval = false; |
| | | OldContractStartDate = null; |
| | | OldMaintenancePrice = null; |
| | | typeresult = null; |
| | | changedAfterPrint = false; |
| | | changedSubmitPrice = false; |
| | | isSaveOrApproval = false; |
| | | OldContractStartDate = null; |
| | | OldMaintenancePrice = null; |
| | | |
| | | inDicideFlag = false; |
| | | inDicideFlag = false; |
| | | |
| | | isSoft = false; |
| | | activeOn = true; |
| | | //LJPH-BSS6E2 ---20200911 ---update by rentongxiao start |
| | | contr = '1'; |
| | | val1 = '主机'; |
| | | //LJPH-BSS6E2 ---20200911 ---update by rentongxiao end |
| | | isSoft = false; |
| | | activeOn = true; |
| | | //LJPH-BSS6E2 ---20200911 ---update by rentongxiao start |
| | | contr = '1'; |
| | | val1 = '主机'; |
| | | //LJPH-BSS6E2 ---20200911 ---update by rentongxiao end |
| | | |
| | | Date systemToday = System.today(); |
| | | if (isPageAction == false) { |
| | | //HWAG-B399Q8 2018/08/20 添加状态5,为按save 按键后状态 start |
| | | if (String.isBlank(ApexPages.currentPage().getParameters().get('completion')) == false) { |
| | | if (ApexPages.currentPage().getParameters().get('completion') == '1') { |
| | | ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, System.Label.Message_002)); |
| | | } else if (ApexPages.currentPage().getParameters().get('completion') == '2') { |
| | | ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '审批提交成功。')); |
| | | } else if (ApexPages.currentPage().getParameters().get('completion') == '3') { |
| | | ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, 'Decided。')); |
| | | } else if (ApexPages.currentPage().getParameters().get('completion') == '4') { |
| | | Date systemToday = System.today(); |
| | | if (isPageAction == false) { |
| | | //HWAG-B399Q8 2018/08/20 添加状态5,为按save 按键后状态 start |
| | | if (String.isBlank(ApexPages.currentPage().getParameters().get('completion')) == false) { |
| | | if (ApexPages.currentPage().getParameters().get('completion') == '1') { |
| | | ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, System.Label.Message_002)); |
| | | } else if (ApexPages.currentPage().getParameters().get('completion') == '2') { |
| | | ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '审批提交成功。')); |
| | | } else if (ApexPages.currentPage().getParameters().get('completion') == '3') { |
| | | ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, 'Decided。')); |
| | | } else if (ApexPages.currentPage().getParameters().get('completion') == '4') { |
| | | |
| | | } else if (ApexPages.currentPage().getParameters().get('completion') == '5') { |
| | | ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, System.Label.Message_002)); |
| | | } |
| | | } |
| | | //HWAG-B399Q8 2018/08/20 添加状态5,为按save 按键后状态 end |
| | | } |
| | | this.printAsset = false; |
| | | this.printContract = false; |
| | | this.printTripartite = false; |
| | | this.printAgent = false; |
| | | String copyid = ''; |
| | | if (isPageAction == false) { |
| | | this.targetEstimateId = ApexPages.currentPage().getParameters().get('copyid'); |
| | | copyid = ApexPages.currentPage().getParameters().get('copyid'); |
| | | if (this.targetEstimateId == null) { |
| | | String paramId = ApexPages.currentPage().getParameters().get('id'); |
| | | if (String.isBlank(paramId) == false && paramId.startsWith('a0z')) { |
| | | Maintenance_Contract_Asset_Estimate__c mcaeParam = [Select Maintenance_Contract_Estimate__c from Maintenance_Contract_Asset_Estimate__c where Id = :paramId]; |
| | | this.targetEstimateId = mcaeParam.Maintenance_Contract_Estimate__c; |
| | | } else { |
| | | this.targetEstimateId = paramId; |
| | | } |
| | | } else { |
| | | this.newIns = true; |
| | | } |
| | | this.targetMaintenanceContractId = ApexPages.currentPage().getParameters().get('mcid'); |
| | | } |
| | | // 編集から |
| | | if (String.isBlank(this.targetEstimateId) == false) { |
| | | setThisEstimate(); |
| | | this.targetMaintenanceContractId = this.estimate.Maintenance_Contract__c; |
| | | this.setContractInfo(this.targetMaintenanceContractId); |
| | | } |
| | | // 新規から |
| | | else if (!String.isBlank(this.targetMaintenanceContractId)) { |
| | | this.estimate = new Maintenance_Contract_Estimate__c(); |
| | | this.estimate.Maintenance_Contract__c = this.targetMaintenanceContractId; |
| | | this.estimate.Contract_Esti_Start_Date__c = systemToday; |
| | | this.estimate.Contract_Start_Date__c = systemToday; |
| | | this.setContractInfo(this.targetMaintenanceContractId); |
| | | this.newIns = true; |
| | | } |
| | | // 何もなければ、念のため |
| | | else { |
| | | throw new ControllerUtil.myException('无法显示维修合同报价'); |
| | | //return; |
| | | } |
| | | //HWAG-B399Q8 2018/08/20 检验是否显示'请提交待审批' start |
| | | IS_Clone_After_Decide = false; |
| | | if (String.isBlank(ApexPages.currentPage().getParameters().get('completion')) == false && |
| | | ApexPages.currentPage().getParameters().get('completion') == '5' && |
| | | this.estimate != null && this.estimate.IS_Clone_After_Decide__c) { |
| | | IS_Clone_After_Decide = true; |
| | | |
| | | } |
| | | //HWAG-B399Q8 2018/08/20 检验是否显示'请提交待审批' end |
| | | // 納入機器の情報を取得 |
| | | if (!String.isBlank(this.targetHospitalId) && (this.targetHospitalId.length() == 15 || this.targetHospitalId.length() == 18)) { |
| | | //tcm 添加 Management_Code__c 20211201 start |
| | | assetRecords = [SELECT Id, Name, Asset_situation__c, SerialNumber, Department_Name__c, Installation_Site__c, Posting_Date__c, Management_Code__c, IF_Warranty__c, Reson_Can_not_Warranty__c, |
| | | InstallDate, isNewDate_use__c, Asset_Owner__c, Accumulation_Repair_Amount__c, Maintenance_Price_Month__c, Final_Examination_Date__c, CurrentContract_End_Date__c, EquipmentGuaranteeFlg__c, |
| | | CurrentContract_F__c, CurrentContract_F__r.Maintenance_Contract_No_F__c,CurrentContract_F__r.Management_Code__c, CurrentContract_F__r.RecordType_DeveloperName__c, CurrentContract_F__r.Estimate_Num__c, CurrentContract_F__r.Contract_End_Date__c, CurrentContract_F__r.Estimate_Contract_endDate__c, |
| | | CurrentContract_F_asset__c, CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c, CurrentContract_F_asset__r.endDateGurantee_Text__c, CurrentContract_F__r.Gurantee_Estimate_startDate__c, |
| | | CurrentContract_F__r.First_Estimate_Date__c, |
| | | CurrentContract_F__r.Contract_Consumption_rate__c, CurrentContract_F__r.First_contract_usage_Rate__c, |
| | | CurrentContract_F__r.Contract_Range__c, AssetMark__c, |
| | | // 2021-01-29 LJPH-BX9CVX mzy add 合同报价时判断零件风险 |
| | | NoPartRiskDate_F__c, NoPartRiskDate__c, SignableFlag__c, |
| | | Product2.PartSupplyFinishDate__c, Product2.PartSupplyFinishDateExp__c |
| | | // 2021-01-29 LJPH-BX9CVX mzy add 合同报价时判断零件风险 |
| | | FROM Asset WHERE Hospital__c = :this.targetHospitalId AND ( AssetMark__c != '耗材' OR Product2.Family != 'ET' ) ORDER BY ID, IF_Warranty__c asc]; |
| | | //JZHG-BSDUT4 ---20200825---update By rentongxiao---Start |
| | | // assetRecords = [SELECT Id, Name, Asset_situation__c, SerialNumber, Department_Name__c, Installation_Site__c, Posting_Date__c,Management_Code__c,IF_Warranty__c,Reson_Can_not_Warranty__c, |
| | | // InstallDate,isNewDate_use__c, Asset_Owner__c, Accumulation_Repair_Amount__c, Maintenance_Price_Month__c, Final_Examination_Date__c,CurrentContract_End_Date__c,EquipmentGuaranteeFlg__c, |
| | | // CurrentContract_F__c,CurrentContract_F__r.Maintenance_Contract_No_F__c,CurrentContract_F__r.RecordType_DeveloperName__c,CurrentContract_F__r.Estimate_Num__c,CurrentContract_F__r.Contract_End_Date__c,CurrentContract_F__r.Estimate_Contract_endDate__c, |
| | | // CurrentContract_F_asset__c,CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c,CurrentContract_F_asset__r.endDateGurantee_Text__c,CurrentContract_F__r.Gurantee_Estimate_startDate__c, |
| | | // CurrentContract_F__r.First_Estimate_Date__c, |
| | | // CurrentContract_F__r.Contract_Consumption_rate__c,CurrentContract_F__r.First_contract_usage_Rate__c, |
| | | // CurrentContract_F__r.Contract_Range__c ,AssetMark__c |
| | | // FROM Asset WHERE Hospital__c = :this.targetHospitalId AND AssetMark__c = '主机' ORDER BY ID,IF_Warranty__c asc]; |
| | | //JZHG-BSDUT4 ---20200825---update By rentongxiao---End |
| | | } else { |
| | | assetRecords = new List<Asset>(); |
| | | } |
| | | //sqlStr += ' AND AssetMark__c != \'耗材\' AND Product2.Family != \'ET\' '; |
| | | this.checkedAssets = new List<AssetInfo>(); |
| | | this.unCheckedAssets = new List<AssetInfo>(); |
| | | |
| | | // 選択済みの納入機器情報を取得 |
| | | Map<Id, Integer> selectedAssetIds = new Map<Id, Integer>(); |
| | | List<Maintenance_Contract_Asset_Estimate__c> selectedMcaes = new List<Maintenance_Contract_Asset_Estimate__c>(); |
| | | List<Maintenance_Contract_Asset_Estimate__c> newMcaes = new List<Maintenance_Contract_Asset_Estimate__c>(); |
| | | // 新規、且つ1つ目見積もりの場合、コピー元の保有設備を持つ |
| | | if (String.isBlank(this.targetEstimateId) && this.contract.Estimate_Num__c == 0) { |
| | | List<Maintenance_Contract_Asset__c> oldVals = [ |
| | | select Id, Name, Asset__c, Asset__r.InstallDate, Asset__r.isNewDate_use__c, |
| | | Asset__r.Posting_Date__c, Asset__r.Maintenance_Price_Month__c, |
| | | Asset__r.EquipmentGuaranteeFlg__c, |
| | | Asset__r.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c, |
| | | Asset__r.CurrentContract_F_asset__r.endDateGurantee_Text__c, |
| | | Asset__r.CurrentContract_F__r.First_Estimate_Date__c, |
| | | Asset__r.CurrentContract_F__r.Contract_Consumption_rate__c, |
| | | Asset__r.CurrentContract_F__r.First_contract_usage_Rate__c, |
| | | Asset__r.CurrentContract_F__r.Estimate_Contract_endDate__c, |
| | | Asset__r.CurrentContract_F__r.Contract_Range__c, |
| | | Asset__r.CurrentContract_F__r.Contract_End_Date__c, |
| | | Asset__r.CurrentContract_F__r.Gurantee_Estimate_startDate__c |
| | | from Maintenance_Contract_Asset__c |
| | | where Maintenance_Contract__c = :this.targetMaintenanceContractId |
| | | ]; |
| | | Date mon1stDate = Date.newInstance(Date.today().year(), Date.today().month(), 1); |
| | | for (Maintenance_Contract_Asset__c mca : oldVals) { |
| | | // oldより更新したい項目 |
| | | Boolean isNew = false; |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk Star |
| | | boolean isCheck = true; |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk End |
| | | Decimal listPrice = mca.Asset__r.Maintenance_Price_Month__c; |
| | | Decimal asset_Consumption_rate = null; |
| | | // 取上一期合同消费率 |
| | | if (mca.Asset__r.CurrentContract_F__r.First_Estimate_Date__c != null && mca.Asset__r.CurrentContract_F__r.Estimate_Contract_endDate__c > mon1stDate) { |
| | | asset_Consumption_rate = mca.Asset__r.CurrentContract_F__r.First_contract_usage_Rate__c; |
| | | } else { |
| | | asset_Consumption_rate = mca.Asset__r.CurrentContract_F__r.Contract_Consumption_rate__c; |
| | | } |
| | | // InstallDate と 今日を比較 |
| | | // 1.安装日或者发货日和今天比较 实时变化 |
| | | // 2.提交后不再变化 |
| | | //Date createdDate = (estimate.CreatedDate == null || !String.isBlank(copyid)) ? systemToday : estimate.CreatedDate.date(); |
| | | Date createdDate = systemToday; |
| | | if (createdDate.addMonths(isNewAddMonth) < mca.Asset__r.isNewDate_use__c) { |
| | | isNew = true; |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk Star |
| | | isCheck = true; |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk End |
| | | listPrice = mca.Asset__r.Maintenance_Price_Month__c * isNewPriceAdj; |
| | | } |
| | | selectedAssetIds.put(mca.Asset__c, selectedMcaes.size()); |
| | | selectedMcaes.add(new Maintenance_Contract_Asset_Estimate__c( |
| | | Asset__c = mca.Asset__c, |
| | | isNew__c = isNew, |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk Star |
| | | Check_Object__c = isCheck, |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk End |
| | | Estimate_List_Price__c = listPrice, |
| | | // 取上一期合同价格 |
| | | LastMContract_Price__c = mca.Asset__r.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c, |
| | | |
| | | Asset_Consumption_rate__c = asset_Consumption_rate, |
| | | EquipmentGuaranteeFlgTxt__c = mca.Asset__r.EquipmentGuaranteeFlg__c |
| | | )); |
| | | } |
| | | } else { |
| | | for (Maintenance_Contract_Asset_Estimate__c mcae : [SELECT Id, |
| | | Name, |
| | | Maintenance_Contract_Estimate__c, |
| | | Maintenance_Contract_Estimate__r.Contract_Esti_Start_Date__c, |
| | | Asset__c, |
| | | Asset__r.Maintenance_Price_Month__c, |
| | | Asset__r.InstallDate, |
| | | Asset__r.isNewDate_use__c, |
| | | Asset__r.EquipmentGuaranteeFlg__c, |
| | | Asset_Consumption_rate__c, |
| | | Asset__r.CurrentContract_F__c, |
| | | Asset__r.CurrentContract_F__r.First_Estimate_Date__c, |
| | | Asset__r.CurrentContract_F__r.Contract_Consumption_rate__c, |
| | | Asset__r.CurrentContract_F__r.First_contract_usage_Rate__c, |
| | | Asset__r.CurrentContract_F__r.Estimate_Contract_endDate__c, |
| | | Asset__r.CurrentContract_F__r.Contract_Range__c, |
| | | Asset__r.CurrentContract_F__r.Contract_End_Date__c, |
| | | Asset__r.CurrentContract_F__r.Gurantee_Estimate_startDate__c, |
| | | LastMContract_Price__c, |
| | | Asset__r.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c, |
| | | Asset__r.CurrentContract_F_asset__r.endDateGurantee_Text__c, |
| | | Product_Manual__c, |
| | | Product_Manual__r.EquipmentGuaranteeFlg__c, |
| | | Product_Manual__r.Maintenance_Price_Month__c, |
| | | Product_Manual__r.Name, |
| | | //add 2021-02-07 mzy start |
| | | //Product_Manual__r.NoPartRiskDate_F__c, |
| | | //Product_Manual__r.SignableFlag__c, |
| | | //add 2021-02-07 mzy end |
| | | //add 2021.6.4 fxk Start |
| | | Check_Object__c, |
| | | //add 2021.6.4 fxk end |
| | | IsNew__c, |
| | | Estimate_List_Price__c, |
| | | //Maintenance_Price_YearTXT__c, |
| | | Estimate_Cost__c, |
| | | Adjustment_ratio_Upper__c, |
| | | Adjustment_ratio_Lower__c, |
| | | Adjustment_Lower_price__c, |
| | | Adjustment_Upper_price__c, |
| | | Last_inspection_day__c, |
| | | Check_Result__c, |
| | | Repair_Price__c, |
| | | Comment__c, |
| | | Asset__r.Posting_Date__c, |
| | | EquipmentGuaranteeFlgTxt__c, |
| | | EquipmentGuaranteeFlg__c, |
| | | ifHaveleftInPrevious__c, |
| | | // Gzw 20200807 五个去年合同相关,所以报价产品,获取上期合同 start |
| | | Last_MContract__c |
| | | // Gzw 20200807 五个去年合同相关,所以报价产品,获取上期合同 eng |
| | | // LJPH-C9GD34 gzw fix start |
| | | ,Estimate_List_Price_Page__c |
| | | // LJPH-C9GD34 gzw fix end |
| | | FROM Maintenance_Contract_Asset_Estimate__c |
| | | WHERE Maintenance_Contract_Estimate__c = :this.targetEstimateId |
| | | ORDER BY |
| | | Id, |
| | | Asset__c, |
| | | Product_Manual__c, |
| | | Asset__r.SerialNumber, |
| | | Asset__r.Name, |
| | | Asset__r.Department_Name__c, |
| | | Asset__r.InstallDate |
| | | ]) { |
| | | if (!getPageDisabled() || (getPageDisabled() && String.isBlank(copyid) == false)) { |
| | | //if (String.isBlank(copyid) == false) { |
| | | if (mcae.Asset__c <> null) { |
| | | mcae.EquipmentGuaranteeFlgTxt__c = mcae.Asset__r.EquipmentGuaranteeFlg__c; |
| | | if (systemToday.addMonths(isNewAddMonth) < mcae.Asset__r.isNewDate_use__c) { |
| | | mcae.IsNew__c = true; |
| | | mcae.Estimate_List_Price__c = mcae.Asset__r.Maintenance_Price_Month__c * isNewPriceAdj; |
| | | } else { |
| | | mcae.IsNew__c = false; |
| | | mcae.Estimate_List_Price__c = mcae.Asset__r.Maintenance_Price_Month__c; |
| | | } |
| | | } else if (mcae.Product_Manual__c <> null) { |
| | | mcae.IsNew__c = true; |
| | | mcae.Estimate_List_Price__c = mcae.Product_Manual__r.Maintenance_Price_Month__c * isNewPriceAdj; |
| | | } |
| | | } |
| | | if (mcae.Asset__c <> null) { |
| | | //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , mcae.Asset__c + 'IsNew ' + mcae.IsNew__c)); |
| | | selectedAssetIds.put(mcae.Asset__c, selectedMcaes.size()); |
| | | selectedMcaes.add(mcae); |
| | | } else { |
| | | newMcaes.add(mcae); |
| | | } |
| | | } |
| | | } |
| | | // 選択済みのものにチェックを付ける |
| | | // TODO xudan 一覧に出る明細件数が足りないケースがある |
| | | // ①AssetA―明細Aで明細登録 |
| | | // ②Assetの検索条件変更により、AssetAは永遠に取得できない |
| | | // ③Assetを元にデータをマッピングする時、明細マップからAssetAを取得できない?一覧に明細Aが出ない |
| | | // 次回、Assetの検索条件が大きく変更する時、対応必要 |
| | | List<Data> datatemp = new List<Data>(); |
| | | datatemp = getChartData(); |
| | | for (Asset ast : this.assetRecords) { |
| | | Boolean isNew = false; |
| | | Decimal listPrice = ast.Maintenance_Price_Month__c; |
| | | if (selectedAssetIds.containsKey(ast.Id)) { |
| | | Maintenance_Contract_Asset_Estimate__c selectedLocal = selectedMcaes.get(selectedAssetIds.get(ast.Id)); |
| | | isNew = selectedLocal.isNew__c; |
| | | listPrice = selectedLocal.Estimate_List_Price__c; |
| | | // xudan 20160110 新品判断ここ要らない、contractStartDateChangeがやる |
| | | // if (systemToday.addMonths(-6) < ast.InstallDate) { |
| | | // if (estimate.Contract_Esti_Start_Date__c.addMonths(isNewAddMonth) < ast.InstallDate) { |
| | | // Date createdDate = (estimate.CreatedDate == null || !String.isBlank(copyid)) ? systemToday : estimate.CreatedDate.date(); |
| | | //System.debug(createdDate + '.addMonths(' + isNewAddMonth + ')' + createdDate.addMonths(isNewAddMonth) + ' < ast.InstallDate:' + ast.InstallDate); |
| | | // if (createdDate.addMonths(isNewAddMonth) < ast.InstallDate) { |
| | | // isNew = true; |
| | | // listPrice = ast.Maintenance_Price_Month__c * isNewPriceAdj; |
| | | // } |
| | | // // 计算上下线调整比例 |
| | | // 没有提交 或者在报价时从新计算 |
| | | if (!getPageDisabled() || (getPageDisabled() && String.isBlank(copyid) == false)) { |
| | | Date mon1stDate = Date.newInstance(Date.today().year(), Date.today().month(), 1); |
| | | selectedLocal.LastMContract_Price__c = selectedLocal.Asset__r.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c == null ? selectedLocal.LastMContract_Price__c : selectedLocal.Asset__r.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c; |
| | | //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , 'LastMContract_Price__c--' + selectedLocal.LastMContract_Price__c)); |
| | | if (selectedLocal.Asset__r.CurrentContract_F__r.First_Estimate_Date__c != null && selectedLocal.Asset__r.CurrentContract_F__r.Estimate_Contract_endDate__c > mon1stDate) { |
| | | selectedLocal.Asset_Consumption_rate__c = selectedLocal.Asset__r.CurrentContract_F__r.First_contract_usage_Rate__c == null ? selectedLocal.Asset_Consumption_rate__c : selectedLocal.Asset__r.CurrentContract_F__r.First_contract_usage_Rate__c; |
| | | } else { |
| | | selectedLocal.Asset_Consumption_rate__c = selectedLocal.Asset__r.CurrentContract_F__r.Contract_Consumption_rate__c == null ? selectedLocal.Asset_Consumption_rate__c : selectedLocal.Asset__r.CurrentContract_F__r.Contract_Consumption_rate__c; |
| | | } |
| | | //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , selectedLocal.Asset__r.CurrentContract_F__r.First_Estimate_Date__c + 'Asset_Consumption--- ' + selectedLocal.Asset__r.CurrentContract_F__r.Estimate_Contract_endDate__c)); |
| | | |
| | | if (String.isNotBlank(String.valueOf(selectedLocal.Asset_Consumption_rate__c))) { |
| | | //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , 'Contract_Consumption_rate__c ' + selectedLocal.Asset__r.CurrentContract_F__r.Contract_Consumption_rate__c)); |
| | | for (Data da : datatemp) { |
| | | if (String.isBlank(String.valueOf(da.rate_Lower)) && selectedLocal.Asset_Consumption_rate__c < da.rate_Upper) { |
| | | selectedLocal.Adjustment_ratio_Lower__c = da.price_Lower; |
| | | selectedLocal.Adjustment_ratio_Upper__c = da.price_Upper; |
| | | continue; |
| | | } else if (selectedLocal.Asset_Consumption_rate__c >= da.rate_Lower && String.isBlank(String.valueOf(da.rate_Upper))) { |
| | | selectedLocal.Adjustment_ratio_Lower__c = da.price_Lower; |
| | | selectedLocal.Adjustment_ratio_Upper__c = da.price_Upper; |
| | | continue; |
| | | } else if (selectedLocal.Asset_Consumption_rate__c >= da.rate_Lower |
| | | && selectedLocal.Asset_Consumption_rate__c < da.rate_Upper) { |
| | | selectedLocal.Adjustment_ratio_Lower__c = da.price_Lower; |
| | | selectedLocal.Adjustment_ratio_Upper__c = da.price_Upper; |
| | | continue; |
| | | |
| | | } else if (ApexPages.currentPage().getParameters().get('completion') == '5') { |
| | | ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, System.Label.Message_002)); |
| | | } |
| | | //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , '下限+上限--- ' + selectedLocal.Adjustment_ratio_Lower__c + ' ' + selectedLocal.Adjustment_ratio_Upper__c)); |
| | | } |
| | | //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , '下限+上限+++ ' + selectedLocal.Adjustment_ratio_Lower__c + ' ' + selectedLocal.Adjustment_ratio_Upper__c)); |
| | | } |
| | | } |
| | | |
| | | // |
| | | // |
| | | // |
| | | checkedAssets.add(new AssetInfo(checkedAssets.size(), ast, isNew, listPrice, selectedLocal)); |
| | | } else { |
| | | //update by rentongxiao 2020-09-23 start |
| | | if (ast.AssetMark__c == '主机') { |
| | | totalRecords++; |
| | | if (unCheckedAssets.size() < selctRecordNum) { |
| | | unCheckedAssets.add(new AssetInfo(unCheckedAssets.size(), ast)); |
| | | //HWAG-B399Q8 2018/08/20 添加状态5,为按save 按键后状态 end |
| | | } |
| | | this.printAsset = false; |
| | | this.printContract = false; |
| | | this.printTripartite = false; |
| | | this.printAgent = false; |
| | | String copyid = ''; |
| | | if (isPageAction == false) { |
| | | this.targetEstimateId = ApexPages.currentPage().getParameters().get('copyid'); |
| | | copyid = ApexPages.currentPage().getParameters().get('copyid'); |
| | | if (this.targetEstimateId == null) { |
| | | String paramId = ApexPages.currentPage().getParameters().get('id'); |
| | | if (String.isBlank(paramId) == false && paramId.startsWith('a0z')) { |
| | | Maintenance_Contract_Asset_Estimate__c mcaeParam = [Select Maintenance_Contract_Estimate__c from Maintenance_Contract_Asset_Estimate__c where Id = :paramId]; |
| | | this.targetEstimateId = mcaeParam.Maintenance_Contract_Estimate__c; |
| | | } else { |
| | | this.targetEstimateId = paramId; |
| | | } |
| | | } else { |
| | | this.newIns = true; |
| | | } |
| | | } |
| | | //update by rentongxiao 2020-09-23 end |
| | | this.targetMaintenanceContractId = ApexPages.currentPage().getParameters().get('mcid'); |
| | | } |
| | | // 編集から |
| | | if (String.isBlank(this.targetEstimateId) == false) { |
| | | setThisEstimate(); |
| | | this.targetMaintenanceContractId = this.estimate.Maintenance_Contract__c; |
| | | this.setContractInfo(this.targetMaintenanceContractId); |
| | | } |
| | | // 新規から |
| | | else if (!String.isBlank(this.targetMaintenanceContractId)) { |
| | | this.estimate = new Maintenance_Contract_Estimate__c(); |
| | | this.estimate.Maintenance_Contract__c = this.targetMaintenanceContractId; |
| | | this.estimate.Contract_Esti_Start_Date__c = systemToday; |
| | | this.estimate.Contract_Start_Date__c = systemToday; |
| | | this.setContractInfo(this.targetMaintenanceContractId); |
| | | this.newIns = true; |
| | | } |
| | | // 何もなければ、念のため |
| | | else { |
| | | throw new ControllerUtil.myException('无法显示维修合同报价'); |
| | | //return; |
| | | } |
| | | //HWAG-B399Q8 2018/08/20 检验是否显示'请提交待审批' start |
| | | IS_Clone_After_Decide = false; |
| | | if (String.isBlank(ApexPages.currentPage().getParameters().get('completion')) == false && |
| | | ApexPages.currentPage().getParameters().get('completion') == '5' && |
| | | this.estimate != null && this.estimate.IS_Clone_After_Decide__c) { |
| | | IS_Clone_After_Decide = true; |
| | | |
| | | } |
| | | listCut(unCheckedAssets); |
| | | /* |
| | | if (ast.CheckBox__c) { |
| | | checkedAssets.add(new AssetInfo(checkedAssets.size(), ast, isNew, listPrice)); |
| | | } else { |
| | | unCheckedAssets.add(new AssetInfo(unCheckedAssets.size(), ast)); |
| | | } |
| | | */ |
| | | } |
| | | //HWAG-B399Q8 2018/08/20 检验是否显示'请提交待审批' end |
| | | // 納入機器の情報を取得 |
| | | if (!String.isBlank(this.targetHospitalId) && (this.targetHospitalId.length() == 15 || this.targetHospitalId.length() == 18)) { |
| | | //tcm 添加 Management_Code__c 20211201 start |
| | | assetRecords = [SELECT Id, Name, Asset_situation__c, SerialNumber, Department_Name__c, Installation_Site__c, Posting_Date__c, Management_Code__c, IF_Warranty__c, Reson_Can_not_Warranty__c, |
| | | InstallDate, isNewDate_use__c, Asset_Owner__c, Accumulation_Repair_Amount__c, Maintenance_Price_Month__c, Final_Examination_Date__c, CurrentContract_End_Date__c, EquipmentGuaranteeFlg__c, |
| | | CurrentContract_F__c, CurrentContract_F__r.Maintenance_Contract_No_F__c,CurrentContract_F__r.Management_Code__c, CurrentContract_F__r.RecordType_DeveloperName__c, CurrentContract_F__r.Estimate_Num__c, CurrentContract_F__r.Contract_End_Date__c, CurrentContract_F__r.Estimate_Contract_endDate__c, |
| | | CurrentContract_F_asset__c, CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c, CurrentContract_F_asset__r.endDateGurantee_Text__c, CurrentContract_F__r.Gurantee_Estimate_startDate__c, |
| | | CurrentContract_F__r.First_Estimate_Date__c, |
| | | CurrentContract_F__r.Contract_Consumption_rate__c, CurrentContract_F__r.First_contract_usage_Rate__c, |
| | | CurrentContract_F__r.Contract_Range__c, AssetMark__c, |
| | | //WLIG-CDFBV3 开通续签报价为true的可以开放续签报价 thh 20220414 start |
| | | CurrentContract_F__r.Open_RenewalQuotation__c, |
| | | //WLIG-CDFBV3 开通续签报价为true的可以开放续签报价 thh 20220414 end |
| | | // 2021-01-29 LJPH-BX9CVX mzy add 合同报价时判断零件风险 |
| | | NoPartRiskDate_F__c, NoPartRiskDate__c, SignableFlag__c, |
| | | Product2.PartSupplyFinishDate__c, Product2.PartSupplyFinishDateExp__c |
| | | // 2021-01-29 LJPH-BX9CVX mzy add 合同报价时判断零件风险 |
| | | FROM Asset WHERE Hospital__c = :this.targetHospitalId AND ( AssetMark__c != '耗材' OR Product2.Family != 'ET' ) ORDER BY ID, IF_Warranty__c asc]; |
| | | //JZHG-BSDUT4 ---20200825---update By rentongxiao---Start |
| | | // assetRecords = [SELECT Id, Name, Asset_situation__c, SerialNumber, Department_Name__c, Installation_Site__c, Posting_Date__c,Management_Code__c,IF_Warranty__c,Reson_Can_not_Warranty__c, |
| | | // InstallDate,isNewDate_use__c, Asset_Owner__c, Accumulation_Repair_Amount__c, Maintenance_Price_Month__c, Final_Examination_Date__c,CurrentContract_End_Date__c,EquipmentGuaranteeFlg__c, |
| | | // CurrentContract_F__c,CurrentContract_F__r.Maintenance_Contract_No_F__c,CurrentContract_F__r.RecordType_DeveloperName__c,CurrentContract_F__r.Estimate_Num__c,CurrentContract_F__r.Contract_End_Date__c,CurrentContract_F__r.Estimate_Contract_endDate__c, |
| | | // CurrentContract_F_asset__c,CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c,CurrentContract_F_asset__r.endDateGurantee_Text__c,CurrentContract_F__r.Gurantee_Estimate_startDate__c, |
| | | // CurrentContract_F__r.First_Estimate_Date__c, |
| | | // CurrentContract_F__r.Contract_Consumption_rate__c,CurrentContract_F__r.First_contract_usage_Rate__c, |
| | | // CurrentContract_F__r.Contract_Range__c ,AssetMark__c |
| | | // FROM Asset WHERE Hospital__c = :this.targetHospitalId AND AssetMark__c = '主机' ORDER BY ID,IF_Warranty__c asc]; |
| | | //JZHG-BSDUT4 ---20200825---update By rentongxiao---End |
| | | } else { |
| | | assetRecords = new List<Asset>(); |
| | | } |
| | | //sqlStr += ' AND AssetMark__c != \'耗材\' AND Product2.Family != \'ET\' '; |
| | | this.checkedAssets = new List<AssetInfo>(); |
| | | this.unCheckedAssets = new List<AssetInfo>(); |
| | | |
| | | totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0); |
| | | // 選択済みの納入機器情報を取得 |
| | | Map<Id, Integer> selectedAssetIds = new Map<Id, Integer>(); |
| | | List<Maintenance_Contract_Asset_Estimate__c> selectedMcaes = new List<Maintenance_Contract_Asset_Estimate__c>(); |
| | | List<Maintenance_Contract_Asset_Estimate__c> newMcaes = new List<Maintenance_Contract_Asset_Estimate__c>(); |
| | | // 新規、且つ1つ目見積もりの場合、コピー元の保有設備を持つ |
| | | if (String.isBlank(this.targetEstimateId) && this.contract.Estimate_Num__c == 0) { |
| | | List<Maintenance_Contract_Asset__c> oldVals = [ |
| | | select Id, Name, Asset__c, Asset__r.InstallDate, Asset__r.isNewDate_use__c, |
| | | Asset__r.Posting_Date__c, Asset__r.Maintenance_Price_Month__c, |
| | | Asset__r.EquipmentGuaranteeFlg__c, |
| | | Asset__r.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c, |
| | | Asset__r.CurrentContract_F_asset__r.endDateGurantee_Text__c, |
| | | Asset__r.CurrentContract_F__r.First_Estimate_Date__c, |
| | | Asset__r.CurrentContract_F__r.Contract_Consumption_rate__c, |
| | | Asset__r.CurrentContract_F__r.First_contract_usage_Rate__c, |
| | | Asset__r.CurrentContract_F__r.Estimate_Contract_endDate__c, |
| | | Asset__r.CurrentContract_F__r.Contract_Range__c, |
| | | Asset__r.CurrentContract_F__r.Contract_End_Date__c, |
| | | Asset__r.CurrentContract_F__r.Gurantee_Estimate_startDate__c, |
| | | //WLIG-CDFBV3 开通续签报价为true的可以开放续签报价 thh 20220414 start |
| | | Asset__r.CurrentContract_F__r.Open_RenewalQuotation__c |
| | | //WLIG-CDFBV3 开通续签报价为true的可以开放续签报价 thh 20220414 end |
| | | from Maintenance_Contract_Asset__c |
| | | where Maintenance_Contract__c = :this.targetMaintenanceContractId |
| | | ]; |
| | | Date mon1stDate = Date.newInstance(Date.today().year(), Date.today().month(), 1); |
| | | for (Maintenance_Contract_Asset__c mca : oldVals) { |
| | | // oldより更新したい項目 |
| | | Boolean isNew = false; |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk Star |
| | | boolean isCheck = true; |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk End |
| | | Decimal listPrice = mca.Asset__r.Maintenance_Price_Month__c; |
| | | Decimal asset_Consumption_rate = null; |
| | | // 取上一期合同消费率 |
| | | if (mca.Asset__r.CurrentContract_F__r.First_Estimate_Date__c != null && mca.Asset__r.CurrentContract_F__r.Estimate_Contract_endDate__c > mon1stDate) { |
| | | asset_Consumption_rate = mca.Asset__r.CurrentContract_F__r.First_contract_usage_Rate__c; |
| | | } else { |
| | | asset_Consumption_rate = mca.Asset__r.CurrentContract_F__r.Contract_Consumption_rate__c; |
| | | } |
| | | // InstallDate と 今日を比較 |
| | | // 1.安装日或者发货日和今天比较 实时变化 |
| | | // 2.提交后不再变化 |
| | | //Date createdDate = (estimate.CreatedDate == null || !String.isBlank(copyid)) ? systemToday : estimate.CreatedDate.date(); |
| | | Date createdDate = systemToday; |
| | | if (createdDate.addMonths(isNewAddMonth) < mca.Asset__r.isNewDate_use__c) { |
| | | isNew = true; |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk Star |
| | | isCheck = true; |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk End |
| | | listPrice = mca.Asset__r.Maintenance_Price_Month__c * isNewPriceAdj; |
| | | } |
| | | selectedAssetIds.put(mca.Asset__c, selectedMcaes.size()); |
| | | selectedMcaes.add(new Maintenance_Contract_Asset_Estimate__c( |
| | | Asset__c = mca.Asset__c, |
| | | isNew__c = isNew, |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk Star |
| | | Check_Object__c = isCheck, |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk End |
| | | Estimate_List_Price__c = listPrice, |
| | | // 取上一期合同价格 |
| | | LastMContract_Price__c = mca.Asset__r.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c, |
| | | |
| | | system.debug('顺序检测' + checkedAssets); |
| | | for (Maintenance_Contract_Asset_Estimate__c mcae : newMcaes) { |
| | | checkedAssets.add(new AssetInfo(checkedAssets.size(), mcae)); |
| | | } |
| | | Asset_Consumption_rate__c = asset_Consumption_rate, |
| | | EquipmentGuaranteeFlgTxt__c = mca.Asset__r.EquipmentGuaranteeFlg__c |
| | | )); |
| | | } |
| | | } else { |
| | | for (Maintenance_Contract_Asset_Estimate__c mcae : [SELECT Id, |
| | | Name, |
| | | Maintenance_Contract_Estimate__c, |
| | | Maintenance_Contract_Estimate__r.Contract_Esti_Start_Date__c, |
| | | Asset__c, |
| | | Asset__r.Maintenance_Price_Month__c, |
| | | Asset__r.InstallDate, |
| | | Asset__r.isNewDate_use__c, |
| | | Asset__r.EquipmentGuaranteeFlg__c, |
| | | Asset_Consumption_rate__c, |
| | | Asset__r.CurrentContract_F__c, |
| | | Asset__r.CurrentContract_F__r.First_Estimate_Date__c, |
| | | Asset__r.CurrentContract_F__r.Contract_Consumption_rate__c, |
| | | Asset__r.CurrentContract_F__r.First_contract_usage_Rate__c, |
| | | Asset__r.CurrentContract_F__r.Estimate_Contract_endDate__c, |
| | | Asset__r.CurrentContract_F__r.Contract_Range__c, |
| | | Asset__r.CurrentContract_F__r.Contract_End_Date__c, |
| | | Asset__r.CurrentContract_F__r.Gurantee_Estimate_startDate__c, |
| | | //WLIG-CDFBV3 开通续签报价为true的可以开放续签报价 thh 20220414 start |
| | | Asset__r.CurrentContract_F__r.Open_RenewalQuotation__c, |
| | | //WLIG-CDFBV3 开通续签报价为true的可以开放续签报价 thh 20220414 end |
| | | LastMContract_Price__c, |
| | | Asset__r.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c, |
| | | Asset__r.CurrentContract_F_asset__r.endDateGurantee_Text__c, |
| | | Product_Manual__c, |
| | | Product_Manual__r.EquipmentGuaranteeFlg__c, |
| | | Product_Manual__r.Maintenance_Price_Month__c, |
| | | Product_Manual__r.Name, |
| | | //add 2021-02-07 mzy start |
| | | //Product_Manual__r.NoPartRiskDate_F__c, |
| | | //Product_Manual__r.SignableFlag__c, |
| | | //add 2021-02-07 mzy end |
| | | //add 2021.6.4 fxk Start |
| | | Check_Object__c, |
| | | //add 2021.6.4 fxk end |
| | | IsNew__c, |
| | | Estimate_List_Price__c, |
| | | //Maintenance_Price_YearTXT__c, |
| | | Estimate_Cost__c, |
| | | Adjustment_ratio_Upper__c, |
| | | Adjustment_ratio_Lower__c, |
| | | Adjustment_Lower_price__c, |
| | | Adjustment_Upper_price__c, |
| | | Last_inspection_day__c, |
| | | Check_Result__c, |
| | | Repair_Price__c, |
| | | Comment__c, |
| | | Asset__r.Posting_Date__c, |
| | | EquipmentGuaranteeFlgTxt__c, |
| | | EquipmentGuaranteeFlg__c, |
| | | ifHaveleftInPrevious__c, |
| | | // Gzw 20200807 五个去年合同相关,所以报价产品,获取上期合同 start |
| | | Last_MContract__c |
| | | // Gzw 20200807 五个去年合同相关,所以报价产品,获取上期合同 eng |
| | | // LJPH-C9GD34 gzw fix start |
| | | ,Estimate_List_Price_Page__c |
| | | // LJPH-C9GD34 gzw fix end |
| | | FROM Maintenance_Contract_Asset_Estimate__c |
| | | WHERE Maintenance_Contract_Estimate__c = :this.targetEstimateId |
| | | ORDER BY |
| | | Id, |
| | | Asset__c, |
| | | Product_Manual__c, |
| | | Asset__r.SerialNumber, |
| | | Asset__r.Name, |
| | | Asset__r.Department_Name__c, |
| | | Asset__r.InstallDate |
| | | ]) { |
| | | if (!getPageDisabled() || (getPageDisabled() && String.isBlank(copyid) == false)) { |
| | | //if (String.isBlank(copyid) == false) { |
| | | if (mcae.Asset__c <> null) { |
| | | mcae.EquipmentGuaranteeFlgTxt__c = mcae.Asset__r.EquipmentGuaranteeFlg__c; |
| | | if (systemToday.addMonths(isNewAddMonth) < mcae.Asset__r.isNewDate_use__c) { |
| | | mcae.IsNew__c = true; |
| | | mcae.Estimate_List_Price__c = mcae.Asset__r.Maintenance_Price_Month__c * isNewPriceAdj; |
| | | } else { |
| | | mcae.IsNew__c = false; |
| | | mcae.Estimate_List_Price__c = mcae.Asset__r.Maintenance_Price_Month__c; |
| | | } |
| | | } else if (mcae.Product_Manual__c <> null) { |
| | | mcae.IsNew__c = true; |
| | | mcae.Estimate_List_Price__c = mcae.Product_Manual__r.Maintenance_Price_Month__c * isNewPriceAdj; |
| | | } |
| | | } |
| | | if (mcae.Asset__c <> null) { |
| | | //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , mcae.Asset__c + 'IsNew ' + mcae.IsNew__c)); |
| | | selectedAssetIds.put(mcae.Asset__c, selectedMcaes.size()); |
| | | selectedMcaes.add(mcae); |
| | | } else { |
| | | newMcaes.add(mcae); |
| | | } |
| | | } |
| | | } |
| | | // 選択済みのものにチェックを付ける |
| | | // TODO xudan 一覧に出る明細件数が足りないケースがある |
| | | // ①AssetA―明細Aで明細登録 |
| | | // ②Assetの検索条件変更により、AssetAは永遠に取得できない |
| | | // ③Assetを元にデータをマッピングする時、明細マップからAssetAを取得できない?一覧に明細Aが出ない |
| | | // 次回、Assetの検索条件が大きく変更する時、対応必要 |
| | | List<Data> datatemp = new List<Data>(); |
| | | datatemp = getChartData(); |
| | | for (Asset ast : this.assetRecords) { |
| | | Boolean isNew = false; |
| | | Decimal listPrice = ast.Maintenance_Price_Month__c; |
| | | if (selectedAssetIds.containsKey(ast.Id)) { |
| | | Maintenance_Contract_Asset_Estimate__c selectedLocal = selectedMcaes.get(selectedAssetIds.get(ast.Id)); |
| | | isNew = selectedLocal.isNew__c; |
| | | listPrice = selectedLocal.Estimate_List_Price__c; |
| | | // xudan 20160110 新品判断ここ要らない、contractStartDateChangeがやる |
| | | // if (systemToday.addMonths(-6) < ast.InstallDate) { |
| | | // if (estimate.Contract_Esti_Start_Date__c.addMonths(isNewAddMonth) < ast.InstallDate) { |
| | | // Date createdDate = (estimate.CreatedDate == null || !String.isBlank(copyid)) ? systemToday : estimate.CreatedDate.date(); |
| | | //System.debug(createdDate + '.addMonths(' + isNewAddMonth + ')' + createdDate.addMonths(isNewAddMonth) + ' < ast.InstallDate:' + ast.InstallDate); |
| | | // if (createdDate.addMonths(isNewAddMonth) < ast.InstallDate) { |
| | | // isNew = true; |
| | | // listPrice = ast.Maintenance_Price_Month__c * isNewPriceAdj; |
| | | // } |
| | | // // 计算上下线调整比例 |
| | | // 没有提交 或者在报价时从新计算 |
| | | if (!getPageDisabled() || (getPageDisabled() && String.isBlank(copyid) == false)) { |
| | | Date mon1stDate = Date.newInstance(Date.today().year(), Date.today().month(), 1); |
| | | selectedLocal.LastMContract_Price__c = selectedLocal.Asset__r.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c == null ? selectedLocal.LastMContract_Price__c : selectedLocal.Asset__r.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c; |
| | | //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , 'LastMContract_Price__c--' + selectedLocal.LastMContract_Price__c)); |
| | | if (selectedLocal.Asset__r.CurrentContract_F__r.First_Estimate_Date__c != null && selectedLocal.Asset__r.CurrentContract_F__r.Estimate_Contract_endDate__c > mon1stDate) { |
| | | selectedLocal.Asset_Consumption_rate__c = selectedLocal.Asset__r.CurrentContract_F__r.First_contract_usage_Rate__c == null ? selectedLocal.Asset_Consumption_rate__c : selectedLocal.Asset__r.CurrentContract_F__r.First_contract_usage_Rate__c; |
| | | } else { |
| | | selectedLocal.Asset_Consumption_rate__c = selectedLocal.Asset__r.CurrentContract_F__r.Contract_Consumption_rate__c == null ? selectedLocal.Asset_Consumption_rate__c : selectedLocal.Asset__r.CurrentContract_F__r.Contract_Consumption_rate__c; |
| | | } |
| | | //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , selectedLocal.Asset__r.CurrentContract_F__r.First_Estimate_Date__c + 'Asset_Consumption--- ' + selectedLocal.Asset__r.CurrentContract_F__r.Estimate_Contract_endDate__c)); |
| | | |
| | | // 最後10行追加 |
| | | if (Schema.getGlobalDescribe().get('Maintenance_Contract_Asset_Estimate__c').getDescribe().isCreateable()) { |
| | | this.addNewRows(); |
| | | } |
| | | if (String.isNotBlank(String.valueOf(selectedLocal.Asset_Consumption_rate__c))) { |
| | | //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , 'Contract_Consumption_rate__c ' + selectedLocal.Asset__r.CurrentContract_F__r.Contract_Consumption_rate__c)); |
| | | for (Data da : datatemp) { |
| | | if (String.isBlank(String.valueOf(da.rate_Lower)) && selectedLocal.Asset_Consumption_rate__c < da.rate_Upper) { |
| | | selectedLocal.Adjustment_ratio_Lower__c = da.price_Lower; |
| | | selectedLocal.Adjustment_ratio_Upper__c = da.price_Upper; |
| | | continue; |
| | | } else if (selectedLocal.Asset_Consumption_rate__c >= da.rate_Lower && String.isBlank(String.valueOf(da.rate_Upper))) { |
| | | selectedLocal.Adjustment_ratio_Lower__c = da.price_Lower; |
| | | selectedLocal.Adjustment_ratio_Upper__c = da.price_Upper; |
| | | continue; |
| | | } else if (selectedLocal.Asset_Consumption_rate__c >= da.rate_Lower |
| | | && selectedLocal.Asset_Consumption_rate__c < da.rate_Upper) { |
| | | selectedLocal.Adjustment_ratio_Lower__c = da.price_Lower; |
| | | selectedLocal.Adjustment_ratio_Upper__c = da.price_Upper; |
| | | continue; |
| | | |
| | | if (!String.isBlank(copyid)) { |
| | | this.targetEstimateId = null; |
| | | this.estimate = new Maintenance_Contract_Estimate__c(); |
| | | this.estimate.Maintenance_Contract__c = this.targetMaintenanceContractId; |
| | | } |
| | | // 2021-02-07 gzw add LJPH-BWY5QB start |
| | | setEndUserType(this.targetMaintenanceContractId); |
| | | // 2021-02-07 gzw add LJPH-BWY5QB start |
| | | assetRecords.clear(); |
| | | // 根据合同开始日重新计算维修合同价格 |
| | | //contractStartDateChange(); |
| | | } |
| | | //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , '下限+上限--- ' + selectedLocal.Adjustment_ratio_Lower__c + ' ' + selectedLocal.Adjustment_ratio_Upper__c)); |
| | | } |
| | | //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , '下限+上限+++ ' + selectedLocal.Adjustment_ratio_Lower__c + ' ' + selectedLocal.Adjustment_ratio_Upper__c)); |
| | | } |
| | | } |
| | | |
| | | // |
| | | // |
| | | // |
| | | checkedAssets.add(new AssetInfo(checkedAssets.size(), ast, isNew, listPrice, selectedLocal)); |
| | | } else { |
| | | //update by rentongxiao 2020-09-23 start |
| | | if (ast.AssetMark__c == '主机') { |
| | | totalRecords++; |
| | | if (unCheckedAssets.size() < selctRecordNum) { |
| | | unCheckedAssets.add(new AssetInfo(unCheckedAssets.size(), ast)); |
| | | } |
| | | } |
| | | //update by rentongxiao 2020-09-23 end |
| | | |
| | | } |
| | | listCut(unCheckedAssets); |
| | | /* |
| | | if (ast.CheckBox__c) { |
| | | checkedAssets.add(new AssetInfo(checkedAssets.size(), ast, isNew, listPrice)); |
| | | } else { |
| | | unCheckedAssets.add(new AssetInfo(unCheckedAssets.size(), ast)); |
| | | } |
| | | */ |
| | | } |
| | | |
| | | totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0); |
| | | |
| | | system.debug('顺序检测' + checkedAssets); |
| | | for (Maintenance_Contract_Asset_Estimate__c mcae : newMcaes) { |
| | | checkedAssets.add(new AssetInfo(checkedAssets.size(), mcae)); |
| | | } |
| | | |
| | | // 最後10行追加 |
| | | if (Schema.getGlobalDescribe().get('Maintenance_Contract_Asset_Estimate__c').getDescribe().isCreateable()) { |
| | | this.addNewRows(); |
| | | } |
| | | |
| | | if (!String.isBlank(copyid)) { |
| | | this.targetEstimateId = null; |
| | | this.estimate = new Maintenance_Contract_Estimate__c(); |
| | | this.estimate.Maintenance_Contract__c = this.targetMaintenanceContractId; |
| | | } |
| | | // 2021-02-07 gzw add LJPH-BWY5QB start |
| | | setEndUserType(this.targetMaintenanceContractId); |
| | | // 2021-02-07 gzw add LJPH-BWY5QB start |
| | | assetRecords.clear(); |
| | | // 根据合同开始日重新计算维修合同价格 |
| | | //contractStartDateChange(); |
| | | } |
| | | |
| | | // |
| | | |
| | | // 取得分页数据 |
| | | private void setPageRecord() { |
| | | checkIdList = new List<String> (); |
| | | for (AssetInfo ass : this.checkedAssets) { |
| | | if (!ass.isManual) { |
| | | checkIdList.add(ass.rec.Id); |
| | | } |
| | | } |
| | | |
| | | if ((currPage * selctRecordNum) <= 2000) { |
| | | String notInId = '(\''; |
| | | if (checkIdList.size() > 0) { |
| | | for (String str : checkIdList) { |
| | | notInId += str + '\', \''; |
| | | } |
| | | } |
| | | notInId += '\')'; |
| | | //tcm 添加 Management_Code__c 20211201 start |
| | | String sqlStr = 'SELECT Id, Name, Asset_situation__c, SerialNumber, Department_Name__c, Installation_Site__c, ' |
| | | + 'Posting_Date__c,Management_Code__c,IF_Warranty__c,Reson_Can_not_Warranty__c, InstallDate,isNewDate_use__c, ' |
| | | + 'Asset_Owner__c, Accumulation_Repair_Amount__c, Maintenance_Price_Month__c, Final_Examination_Date__c, ' |
| | | + 'CurrentContract_End_Date__c, Extend_Gurantee_DateTo__c,EquipmentGuaranteeFlg__c, ' |
| | | + 'CurrentContract_F__c,CurrentContract_F__r.Maintenance_Contract_No_F__c,CurrentContract_F__r.Management_Code__c,CurrentContract_F__r.RecordType_DeveloperName__c,CurrentContract_F__r.Estimate_Num__c,CurrentContract_F__r.Contract_End_Date__c,' |
| | | + 'CurrentContract_F_asset__c,CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c,CurrentContract_F_asset__r.endDateGurantee_Text__c,CurrentContract_F__r.Gurantee_Estimate_startDate__c, ' |
| | | + 'CurrentContract_F__r.First_Estimate_Date__c,CurrentContract_F__r.Estimate_Contract_endDate__c,' |
| | | + 'CurrentContract_F__r.Contract_Consumption_rate__c,CurrentContract_F__r.First_contract_usage_Rate__c,' |
| | | + 'CurrentContract_F__r.Contract_Range__c,AssetMark__c,NoPartRiskDate__c,NoPartRiskDate_F__c,Product2.PartSupplyFinishDate__c,SignableFlag__c FROM Asset WHERE Hospital__c = \'' + this.targetHospitalId + '\' ' |
| | | + 'AND Id NOT IN ' + notInId; |
| | | //HWAG-B4R3SS START 20181026 |
| | | if (String.isNotBlank(text1) && String.isNotBlank(cond1) && String.isNotBlank(val1)) { |
| | | sqlStr += makeTextSql(text1, cond1, val1); |
| | | checkIdList = new List<String> (); |
| | | for (AssetInfo ass : this.checkedAssets) { |
| | | if (!ass.isManual) { |
| | | checkIdList.add(ass.rec.Id); |
| | | } |
| | | } |
| | | |
| | | //JZHG-BSDUT4 ---20200904---update By rentongxiao---Start |
| | | // else{ |
| | | // sqlStr += 'AND AssetMark__c = \'主机\''; |
| | | // } |
| | | if ((currPage * selctRecordNum) <= 2000) { |
| | | String notInId = '(\''; |
| | | if (checkIdList.size() > 0) { |
| | | for (String str : checkIdList) { |
| | | notInId += str + '\', \''; |
| | | } |
| | | } |
| | | notInId += '\')'; |
| | | |
| | | //tcm 添加 Management_Code__c 20211201 start |
| | | String sqlStr = 'SELECT Id, Name, Asset_situation__c, SerialNumber, Department_Name__c, Installation_Site__c, ' |
| | | + 'Posting_Date__c,Management_Code__c,IF_Warranty__c,Reson_Can_not_Warranty__c, InstallDate,isNewDate_use__c, ' |
| | | + 'Asset_Owner__c, Accumulation_Repair_Amount__c, Maintenance_Price_Month__c, Final_Examination_Date__c, ' |
| | | + 'CurrentContract_End_Date__c, Extend_Gurantee_DateTo__c,EquipmentGuaranteeFlg__c, ' |
| | | + 'CurrentContract_F__c,CurrentContract_F__r.Maintenance_Contract_No_F__c,CurrentContract_F__r.Management_Code__c,CurrentContract_F__r.RecordType_DeveloperName__c, CurrentContract_F__r.Estimate_Num__c,CurrentContract_F__r.Contract_End_Date__c,' |
| | | + 'CurrentContract_F_asset__c,CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c,CurrentContract_F_asset__r.endDateGurantee_Text__c,CurrentContract_F__r.Gurantee_Estimate_startDate__c, ' |
| | | + 'CurrentContract_F__r.First_Estimate_Date__c,CurrentContract_F__r.Estimate_Contract_endDate__c,' |
| | | + 'CurrentContract_F__r.Contract_Consumption_rate__c,CurrentContract_F__r.First_contract_usage_Rate__c,' |
| | | //WLIG-CDFBV3 开通续签报价为true的可以开放续签报价 thh 20220414 start |
| | | + 'CurrentContract_F__r.Open_RenewalQuotation__c,' |
| | | //WLIG-CDFBV3 开通续签报价为true的可以开放续签报价 thh 20220414 end |
| | | + 'CurrentContract_F__r.Contract_Range__c,AssetMark__c,NoPartRiskDate__c,NoPartRiskDate_F__c,Product2.PartSupplyFinishDate__c,SignableFlag__c FROM Asset WHERE Hospital__c = \'' + this.targetHospitalId + '\' ' |
| | | + 'AND Id NOT IN ' + notInId; |
| | | //HWAG-B4R3SS START 20181026 |
| | | if (String.isNotBlank(text1) && String.isNotBlank(cond1) && String.isNotBlank(val1)) { |
| | | sqlStr += makeTextSql(text1, cond1, val1); |
| | | } |
| | | |
| | | //JZHG-BSDUT4 ---20200904---update By rentongxiao---end |
| | | //HWAG-B4R3SS END 20181026 |
| | | //HWAG-BDJ43R---XHL---20190729--- |
| | | sqlStr += ' AND ( AssetMark__c != \'耗材\' OR Product2.Family != \'ET\' )'; |
| | | //HWAG-BDJ43R---XHL---20190729--- |
| | | sqlStr += ' ORDER BY ID,IF_Warranty__c asc '; |
| | | if (currPage == 1) { |
| | | sqlStr += 'limit ' + selRecordOption; |
| | | //JZHG-BSDUT4 ---20200904---update By rentongxiao---Start |
| | | // else{ |
| | | // sqlStr += 'AND AssetMark__c = \'主机\''; |
| | | // } |
| | | |
| | | //JZHG-BSDUT4 ---20200904---update By rentongxiao---end |
| | | //HWAG-B4R3SS END 20181026 |
| | | //HWAG-BDJ43R---XHL---20190729--- |
| | | sqlStr += ' AND ( AssetMark__c != \'耗材\' OR Product2.Family != \'ET\' )'; |
| | | //HWAG-BDJ43R---XHL---20190729--- |
| | | sqlStr += ' ORDER BY ID,IF_Warranty__c asc '; |
| | | if (currPage == 1) { |
| | | sqlStr += 'limit ' + selRecordOption; |
| | | } else { |
| | | sqlStr += 'limit ' + selRecordOption + ' offset ' + String.valueOf((currPage - 1) * selctRecordNum); |
| | | } |
| | | //system.debug(); |
| | | //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, |
| | | // '222222222222_____'+sqlStr)); |
| | | //return; |
| | | assetRecords = Database.query(sqlStr); |
| | | } else { |
| | | sqlStr += 'limit ' + selRecordOption + ' offset ' + String.valueOf((currPage - 1) * selctRecordNum); |
| | | } |
| | | //system.debug(); |
| | | //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, |
| | | // '222222222222_____'+sqlStr)); |
| | | //return; |
| | | assetRecords = Database.query(sqlStr); |
| | | } else { |
| | | assetRecords.clear(); |
| | | Integer sqlLimit = currPage * selctRecordNum; |
| | | List<Asset> temAsset = new List<Asset> (); |
| | | //HWAG-BDJ43R ---XHL---20190729--- |
| | | String sqlStr = ''; |
| | | //tcm 添加 Management_Code__c 20211201 start |
| | | sqlStr = 'SELECT Id, Name, Asset_situation__c, SerialNumber, Department_Name__c, Installation_Site__c,'; |
| | | sqlStr += 'Posting_Date__c,Management_Code__c,IF_Warranty__c,Reson_Can_not_Warranty__c,InstallDate,isNewDate_use__c,'; |
| | | sqlStr += 'Asset_Owner__c, Accumulation_Repair_Amount__c, Maintenance_Price_Month__c, Final_Examination_Date__c,'; |
| | | sqlStr += 'CurrentContract_End_Date__c,Extend_Gurantee_DateTo__c,EquipmentGuaranteeFlg__c,'; |
| | | sqlStr += 'CurrentContract_F__c,CurrentContract_F__r.Maintenance_Contract_No_F__c,CurrentContract_F__r.Management_Code__c,CurrentContract_F__r.RecordType_DeveloperName__c,CurrentContract_F__r.Estimate_Num__c,CurrentContract_F__r.Contract_End_Date__c,'; |
| | | sqlStr += 'CurrentContract_F_asset__c,CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c,CurrentContract_F_asset__r.endDateGurantee_Text__c,CurrentContract_F__r.Gurantee_Estimate_startDate__c,'; |
| | | sqlStr += 'CurrentContract_F__r.First_Estimate_Date__c,CurrentContract_F__r.Estimate_Contract_endDate__c,'; |
| | | sqlStr += 'CurrentContract_F__r.Contract_Consumption_rate__c,CurrentContract_F__r.First_contract_usage_Rate__c,'; |
| | | sqlStr += ' CurrentContract_F__r.Contract_Range__c,AssetMark__c,NoPartRiskDate__c,NoPartRiskDate_F__c,Product2.PartSupplyFinishDate__c,SignableFlag__c FROM Asset WHERE Hospital__c = \'' + this.targetHospitalId + '\''; |
| | | //JZHG-BSDUT4 ---20200825---update By rentongxiao---Start |
| | | // sqlStr += ' AND ( AssetMark__c != \'耗材\' OR Product2.Family != \'ET\' ) '; |
| | | //JZHG-BSDUT4 ---20200825---update By rentongxiao---End |
| | | //HWAG-B4R3SS START 20181026 |
| | | if (String.isNotBlank(text1) && String.isNotBlank(cond1) && String.isNotBlank(val1)) { |
| | | sqlStr += makeTextSql(text1, cond1, val1); |
| | | } |
| | | assetRecords.clear(); |
| | | Integer sqlLimit = currPage * selctRecordNum; |
| | | List<Asset> temAsset = new List<Asset> (); |
| | | //HWAG-BDJ43R ---XHL---20190729--- |
| | | String sqlStr = ''; |
| | | |
| | | //tcm 添加 Management_Code__c 20211201 start |
| | | sqlStr = 'SELECT Id, Name, Asset_situation__c, SerialNumber, Department_Name__c, Installation_Site__c,'; |
| | | sqlStr += 'Posting_Date__c,Management_Code__c,IF_Warranty__c,Reson_Can_not_Warranty__c,InstallDate,isNewDate_use__c,'; |
| | | sqlStr += 'Asset_Owner__c, Accumulation_Repair_Amount__c, Maintenance_Price_Month__c, Final_Examination_Date__c,'; |
| | | sqlStr += 'CurrentContract_End_Date__c,Extend_Gurantee_DateTo__c,EquipmentGuaranteeFlg__c,'; |
| | | sqlStr += 'CurrentContract_F__c,CurrentContract_F__r.Maintenance_Contract_No_F__c,CurrentContract_F__r.Management_Code__c,CurrentContract_F__r.RecordType_DeveloperName__c,CurrentContract_F__r.Estimate_Num__c,CurrentContract_F__r.Contract_End_Date__c,'; |
| | | sqlStr += 'CurrentContract_F_asset__c,CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c,CurrentContract_F_asset__r.endDateGurantee_Text__c,CurrentContract_F__r.Gurantee_Estimate_startDate__c,'; |
| | | sqlStr += 'CurrentContract_F__r.First_Estimate_Date__c,CurrentContract_F__r.Estimate_Contract_endDate__c,'; |
| | | sqlStr += 'CurrentContract_F__r.Contract_Consumption_rate__c,CurrentContract_F__r.First_contract_usage_Rate__c,'; |
| | | //WLIG-CDFBV3 开通续签报价为true的可以开放续签报价 thh 20220414 start |
| | | sqlStr += 'CurrentContract_F__r.Open_RenewalQuotation__c,'; |
| | | //WLIG-CDFBV3 开通续签报价为true的可以开放续签报价 thh 20220414 end |
| | | sqlStr += ' CurrentContract_F__r.Contract_Range__c,AssetMark__c,NoPartRiskDate__c,NoPartRiskDate_F__c,Product2.PartSupplyFinishDate__c,SignableFlag__c FROM Asset WHERE Hospital__c = \'' + this.targetHospitalId + '\''; |
| | | //JZHG-BSDUT4 ---20200825---update By rentongxiao---Start |
| | | // sqlStr += ' AND ( AssetMark__c != \'耗材\' OR Product2.Family != \'ET\' ) '; |
| | | //JZHG-BSDUT4 ---20200825---update By rentongxiao---End |
| | | //HWAG-B4R3SS START 20181026 |
| | | if (String.isNotBlank(text1) && String.isNotBlank(cond1) && String.isNotBlank(val1)) { |
| | | sqlStr += makeTextSql(text1, cond1, val1); |
| | | } |
| | | |
| | | //JZHG-BSDUT4 ---20200904---update By rentongxiao---Start |
| | | // else{ |
| | | // sqlStr += 'AND AssetMark__c = \'主机\''; |
| | | // } |
| | | //JZHG-BSDUT4 ---20200904---update By rentongxiao---Start |
| | | // else{ |
| | | // sqlStr += 'AND AssetMark__c = \'主机\''; |
| | | // } |
| | | |
| | | //JZHG-BSDUT4 ---20200904---update By rentongxiao---end |
| | | //HWAG-B4R3SS END 20181026 |
| | | if (checkIdList.size() > 0) { |
| | | |
| | | sqlStr += ' AND Id NOT IN ' + checkIdList; |
| | | //temAsset = [SELECT Id, Name, Asset_situation__c, SerialNumber, Department_Name__c, Installation_Site__c, Posting_Date__c,Management_Code__c,IF_Warranty__c,Reson_Can_not_Warranty__c, |
| | | // InstallDate, Asset_Owner__c, Accumulation_Repair_Amount__c, Maintenance_Price_Month__c, Final_Examination_Date__c,CurrentContract_End_Date__c,Extend_Gurantee_DateTo__c |
| | | // FROM Asset WHERE Hospital__c = :this.targetHospitalId AND Id NOT IN : checkIdList AND AssetMark__c != '耗材' AND Product2.Family != 'ET' ORDER BY ID,IF_Warranty__c asc limit : sqlLimit]; |
| | | } else { |
| | | //temAsset = [SELECT Id, Name, Asset_situation__c, SerialNumber, Department_Name__c, Installation_Site__c, Posting_Date__c,Management_Code__c,IF_Warranty__c,Reson_Can_not_Warranty__c, |
| | | // InstallDate, Asset_Owner__c, Accumulation_Repair_Amount__c, Maintenance_Price_Month__c, Final_Examination_Date__c,CurrentContract_End_Date__c,Extend_Gurantee_DateTo__c |
| | | // FROM Asset WHERE Hospital__c = :this.targetHospitalId AND AssetMark__c != '耗材' AND Product2.Family != 'ET' ORDER BY ID,IF_Warranty__c asc limit : sqlLimit]; |
| | | //JZHG-BSDUT4 ---20200904---update By rentongxiao---end |
| | | //HWAG-B4R3SS END 20181026 |
| | | if (checkIdList.size() > 0) { |
| | | sqlStr += ' AND Id NOT IN ' + checkIdList; |
| | | //temAsset = [SELECT Id, Name, Asset_situation__c, SerialNumber, Department_Name__c, Installation_Site__c, Posting_Date__c,Management_Code__c,IF_Warranty__c,Reson_Can_not_Warranty__c, |
| | | // InstallDate, Asset_Owner__c, Accumulation_Repair_Amount__c, Maintenance_Price_Month__c, Final_Examination_Date__c,CurrentContract_End_Date__c,Extend_Gurantee_DateTo__c |
| | | // FROM Asset WHERE Hospital__c = :this.targetHospitalId AND Id NOT IN : checkIdList AND AssetMark__c != '耗材' AND Product2.Family != 'ET' ORDER BY ID,IF_Warranty__c asc limit : sqlLimit]; |
| | | } else { |
| | | //temAsset = [SELECT Id, Name, Asset_situation__c, SerialNumber, Department_Name__c, Installation_Site__c, Posting_Date__c,Management_Code__c,IF_Warranty__c,Reson_Can_not_Warranty__c, |
| | | // InstallDate, Asset_Owner__c, Accumulation_Repair_Amount__c, Maintenance_Price_Month__c, Final_Examination_Date__c,CurrentContract_End_Date__c,Extend_Gurantee_DateTo__c |
| | | // FROM Asset WHERE Hospital__c = :this.targetHospitalId AND AssetMark__c != '耗材' AND Product2.Family != 'ET' ORDER BY ID,IF_Warranty__c asc limit : sqlLimit]; |
| | | } |
| | | sqlStr += ' ORDER BY ID,IF_Warranty__c asc limit ' + sqlLimit; |
| | | temAsset = Database.query(sqlStr); |
| | | //HWAG-BDJ43R ---XHL---20190729--- |
| | | if (temAsset.size() >= (currPage * selctRecordNum)) { |
| | | for (Integer i = ((currPage - 1) * selctRecordNum); i < (currPage * selctRecordNum); i++) { |
| | | assetRecords.add(temAsset.get(i)); |
| | | } |
| | | } else { |
| | | for (Integer i = ((currPage - 1) * selctRecordNum); i < temAsset.size(); i++) { |
| | | assetRecords.add(temAsset.get(i)); |
| | | } |
| | | } |
| | | } |
| | | sqlStr += ' ORDER BY ID,IF_Warranty__c asc limit ' + sqlLimit; |
| | | temAsset = Database.query(sqlStr); |
| | | //HWAG-BDJ43R ---XHL---20190729--- |
| | | if (temAsset.size() >= (currPage * selctRecordNum)) { |
| | | for (Integer i = ((currPage - 1) * selctRecordNum); i < (currPage * selctRecordNum); i++) { |
| | | assetRecords.add(temAsset.get(i)); |
| | | } |
| | | } else { |
| | | for (Integer i = ((currPage - 1) * selctRecordNum); i < temAsset.size(); i++) { |
| | | assetRecords.add(temAsset.get(i)); |
| | | } |
| | | this.unCheckedAssets = new List<AssetInfo>(); |
| | | for (Asset ast : assetRecords) { |
| | | this.unCheckedAssets.add(new AssetInfo(unCheckedAssets.size(), ast)); |
| | | } |
| | | } |
| | | this.unCheckedAssets = new List<AssetInfo>(); |
| | | for (Asset ast : assetRecords) { |
| | | this.unCheckedAssets.add(new AssetInfo(unCheckedAssets.size(), ast)); |
| | | } |
| | | listCut(unCheckedAssets); |
| | | // 根据合同开始日重新计算维修合同价格 |
| | | //contractStartDateChange(); |
| | | listCut(unCheckedAssets); |
| | | // 根据合同开始日重新计算维修合同价格 |
| | | //contractStartDateChange(); |
| | | } |
| | | |
| | | // 翻页到首页 |
| | | public void firstPage() { |
| | | getAssetSerialNumber(); |
| | | currPage = 1; |
| | | //HWAG-B4R3SS END 20181026 |
| | | totalRecords = soqlNos(); |
| | | totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0); |
| | | //HWAG-B4R3SS END 20181026 |
| | | this.setPageRecord(); |
| | | getAssetSerialNumber(); |
| | | currPage = 1; |
| | | //HWAG-B4R3SS END 20181026 |
| | | totalRecords = soqlNos(); |
| | | totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0); |
| | | //HWAG-B4R3SS END 20181026 |
| | | this.setPageRecord(); |
| | | } |
| | | |
| | | // 向前翻页 |
| | | public void previousPage() { |
| | | getAssetSerialNumber(); |
| | | currPage--; |
| | | //HWAG-B4R3SS START 20181026 |
| | | totalRecords = soqlNos(); |
| | | totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0); |
| | | //HWAG-B4R3SS END 20181026 |
| | | this.setPageRecord(); |
| | | getAssetSerialNumber(); |
| | | currPage--; |
| | | //HWAG-B4R3SS START 20181026 |
| | | totalRecords = soqlNos(); |
| | | totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0); |
| | | //HWAG-B4R3SS END 20181026 |
| | | this.setPageRecord(); |
| | | } |
| | | |
| | | // 向后翻页 |
| | | public void nextPage() { |
| | | getAssetSerialNumber(); |
| | | //HWAG-B4R3SS START 20181026 |
| | | totalRecords = soqlNos(); |
| | | //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , 'totalRecords——————' + totalRecords)); |
| | | totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0); |
| | | if (totalRecords == 0) { |
| | | currPage = 1; |
| | | //this.unCheckedAssets.clear(); |
| | | } else { |
| | | currPage++; |
| | | this.setPageRecord(); |
| | | } |
| | | //HWAG-B4R3SS END 20181026 |
| | | getAssetSerialNumber(); |
| | | //HWAG-B4R3SS START 20181026 |
| | | totalRecords = soqlNos(); |
| | | //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , 'totalRecords——————' + totalRecords)); |
| | | totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0); |
| | | if (totalRecords == 0) { |
| | | currPage = 1; |
| | | //this.unCheckedAssets.clear(); |
| | | } else { |
| | | currPage++; |
| | | this.setPageRecord(); |
| | | } |
| | | //HWAG-B4R3SS END 20181026 |
| | | |
| | | } |
| | | |
| | | // 翻页到尾页 |
| | | public void endPage() { |
| | | getAssetSerialNumber(); |
| | | //HWAG-B4R3SS START 20181026 |
| | | totalRecords = soqlNos(); |
| | | totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0); |
| | | if (totalRecords == 0) { |
| | | currPage = 1; |
| | | this.unCheckedAssets.clear(); |
| | | } else { |
| | | currPage = totalPage; |
| | | this.setPageRecord(); |
| | | } |
| | | //HWAG-B4R3SS END 20181026 |
| | | getAssetSerialNumber(); |
| | | //HWAG-B4R3SS START 20181026 |
| | | totalRecords = soqlNos(); |
| | | totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0); |
| | | if (totalRecords == 0) { |
| | | currPage = 1; |
| | | this.unCheckedAssets.clear(); |
| | | } else { |
| | | currPage = totalPage; |
| | | this.setPageRecord(); |
| | | } |
| | | //HWAG-B4R3SS END 20181026 |
| | | } |
| | | |
| | | // 每页显示记录数变更 |
| | | public void recordNumChange() { |
| | | currPage = 1; |
| | | //totalRecords = soqlNos(); |
| | | totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0); |
| | | this.setPageRecord(); |
| | | currPage = 1; |
| | | //totalRecords = soqlNos(); |
| | | totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0); |
| | | this.setPageRecord(); |
| | | } |
| | | |
| | | //list分割 集合大小超过1000对应 |
| | | private void listCut(List<AssetInfo> records) { |
| | | List<AssetInfo> recordsbreak = new List<AssetInfo>(); |
| | | List<AssetInfo> recordsbreakover = new List<AssetInfo>(); |
| | | unCheckedAssetsView = new List<List<AssetInfo> >(); |
| | | AssetInfo c = null; |
| | | recordsbreak.clear(); |
| | | recordsbreakover.clear(); |
| | | unCheckedAssetsView.clear(); |
| | | unCheckedAssetsView.add(records); |
| | | List<AssetInfo> recordsbreak = new List<AssetInfo>(); |
| | | List<AssetInfo> recordsbreakover = new List<AssetInfo>(); |
| | | unCheckedAssetsView = new List<List<AssetInfo> >(); |
| | | AssetInfo c = null; |
| | | recordsbreak.clear(); |
| | | recordsbreakover.clear(); |
| | | unCheckedAssetsView.clear(); |
| | | unCheckedAssetsView.add(records); |
| | | } |
| | | /* |
| | | *显示过去两年的维修实绩 |
| | | *计算该维修合同报价的所有保佑设备,过去两年的修理实绩 |
| | | */ |
| | | public static void ComputeLTYRepair(String targetHospitalId) { |
| | | system.debug('ComputeLTYRepair=====Start'); |
| | | List<Maintenance_Contract_Asset_Estimate__c> McaeList = new List<Maintenance_Contract_Asset_Estimate__c>(); |
| | | McaeList = [select id, asset__c, Lastyear_Repair_Cost_Text__c, Last_Second_Years_Repair_Cost_Text__c, Last_Third_Years_Repair_Cost_Text__c, Three_Years_Repair_Cost_Text__c |
| | | from Maintenance_Contract_Asset_Estimate__c |
| | | where Maintenance_Contract_Estimate__c = :targetHospitalId]; |
| | | List<id> AsList = new List<id>(); |
| | | Map<id, id> McaecToAsset = new Map<id, id>(); |
| | | for (Maintenance_Contract_Asset_Estimate__c Mcaes : McaeList) { |
| | | AsList.add(Mcaes.asset__c); |
| | | McaecToAsset.put(Mcaes.id, Mcaes.asset__c); |
| | | } |
| | | Maintenance_Contract_Estimate__c mcec = [select id, createdDate, Submit_quotation_day__c from Maintenance_Contract_Estimate__c where id = :targetHospitalId]; |
| | | //1年前维修实绩 |
| | | Date today = null; |
| | | Date LastYearDate = null; |
| | | Date LastSecondYearDate = null; |
| | | Date LastThirdYearDate = null; |
| | | Decimal LastYearPriceForMCAEC = 0; |
| | | system.debug('ComputeLTYRepair=====Start'); |
| | | List<Maintenance_Contract_Asset_Estimate__c> McaeList = new List<Maintenance_Contract_Asset_Estimate__c>(); |
| | | McaeList = [select id, asset__c, Lastyear_Repair_Cost_Text__c, Last_Second_Years_Repair_Cost_Text__c, Last_Third_Years_Repair_Cost_Text__c, Three_Years_Repair_Cost_Text__c |
| | | from Maintenance_Contract_Asset_Estimate__c |
| | | where Maintenance_Contract_Estimate__c = :targetHospitalId]; |
| | | List<id> AsList = new List<id>(); |
| | | Map<id, id> McaecToAsset = new Map<id, id>(); |
| | | for (Maintenance_Contract_Asset_Estimate__c Mcaes : McaeList) { |
| | | AsList.add(Mcaes.asset__c); |
| | | McaecToAsset.put(Mcaes.id, Mcaes.asset__c); |
| | | } |
| | | Maintenance_Contract_Estimate__c mcec = [select id, createdDate, Submit_quotation_day__c from Maintenance_Contract_Estimate__c where id = :targetHospitalId]; |
| | | //1年前维修实绩 |
| | | Date today = null; |
| | | Date LastYearDate = null; |
| | | Date LastSecondYearDate = null; |
| | | Date LastThirdYearDate = null; |
| | | Decimal LastYearPriceForMCAEC = 0; |
| | | |
| | | if (mcec.Submit_quotation_day__c != null && String.valueOf(mcec.Submit_quotation_day__c) != '') { |
| | | today = mcec.Submit_quotation_day__c; |
| | | LastYearDate = mcec.Submit_quotation_day__c; |
| | | LastSecondYearDate = mcec.Submit_quotation_day__c; |
| | | LastThirdYearDate = mcec.Submit_quotation_day__c; |
| | | } else { |
| | | today = Date.valueOf(mcec.createdDate); |
| | | LastYearDate = Date.valueOf(mcec.createdDate); |
| | | LastSecondYearDate = Date.valueOf(mcec.createdDate); |
| | | LastThirdYearDate = Date.valueOf(mcec.createdDate); |
| | | } |
| | | if (mcec.Submit_quotation_day__c != null && String.valueOf(mcec.Submit_quotation_day__c) != '') { |
| | | today = mcec.Submit_quotation_day__c; |
| | | LastYearDate = mcec.Submit_quotation_day__c; |
| | | LastSecondYearDate = mcec.Submit_quotation_day__c; |
| | | LastThirdYearDate = mcec.Submit_quotation_day__c; |
| | | } else { |
| | | today = Date.valueOf(mcec.createdDate); |
| | | LastYearDate = Date.valueOf(mcec.createdDate); |
| | | LastSecondYearDate = Date.valueOf(mcec.createdDate); |
| | | LastThirdYearDate = Date.valueOf(mcec.createdDate); |
| | | } |
| | | |
| | | system.debug('去年' + LastYearDate + '前年' + LastSecondYearDate + '大前年' + LastThirdYearDate); |
| | | system.debug('去年' + LastYearDate + '前年' + LastSecondYearDate + '大前年' + LastThirdYearDate); |
| | | |
| | | LastYearDate = LastYearDate.addYears(-1); |
| | | // LastYearDate = LastYearDate.addDays(1); |
| | | LastYearDate = LastYearDate.addYears(-1); |
| | | // LastYearDate = LastYearDate.addDays(1); |
| | | |
| | | //LastSecondYearDate = LastSecondYearDate.addDays(1); |
| | | LastSecondYearDate = LastSecondYearDate.addYears(-2); |
| | | //LastSecondYearDate = LastSecondYearDate.addDays(1); |
| | | LastSecondYearDate = LastSecondYearDate.addYears(-2); |
| | | |
| | | // LastThirdYearDate = LastThirdYearDate.addDays(1); |
| | | LastThirdYearDate = LastThirdYearDate.addYears(-3); |
| | | system.debug('去年' + LastYearDate + '前年' + LastSecondYearDate + '大前年' + LastThirdYearDate); |
| | | // 20191210 Gzw 服务合同过去3年修理实绩合并 |
| | | List<AggregateResult> FriRepairList = [ |
| | | select |
| | | sum(Discount_Price_formula__c) SumPrice, |
| | | //2019/1添加 |
| | | sum(Repair_Quotation_Id__r.sales_discount__c) sales_discount, |
| | | sum(Repair_Quotation_Id__r.Contract_target__c) contract_target, |
| | | sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance, |
| | | sum(Repair_Quotation_Id__r.Set_discount__c) set_discount, |
| | | sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD, |
| | | sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery, |
| | | sum(Repair_Quotation_Id__r.Other_discount__c) other, |
| | | AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM, |
| | | Delivered_Product__c |
| | | from |
| | | Repair__c |
| | | where |
| | | Delivered_Product__c in:AsList |
| | | and Agreed_Date__c != null |
| | | and Agreed_Date__c > :LastYearDate |
| | | and Agreed_Date__c <= :today |
| | | group by Delivered_Product__c |
| | | ]; |
| | | List<AggregateResult> SecRepairList = [ |
| | | select |
| | | sum(Discount_Price_formula__c) SumPrice, |
| | | //2019/1添加 |
| | | sum(Repair_Quotation_Id__r.sales_discount__c) sales_discount, |
| | | sum(Repair_Quotation_Id__r.Contract_target__c) contract_target, |
| | | sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance, |
| | | sum(Repair_Quotation_Id__r.Set_discount__c) set_discount, |
| | | sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD, |
| | | sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery, |
| | | sum(Repair_Quotation_Id__r.Other_discount__c) other, |
| | | AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM, |
| | | Delivered_Product__c |
| | | from |
| | | Repair__c |
| | | where |
| | | Delivered_Product__c in:AsList |
| | | and Agreed_Date__c != null |
| | | and Agreed_Date__c <= :LastYearDate |
| | | and Agreed_Date__c > :LastSecondYearDate |
| | | group by Delivered_Product__c |
| | | ]; |
| | | // 过去3年间修理实绩 |
| | | List<AggregateResult> ThiRepairList = [ |
| | | select |
| | | sum(Discount_Price_formula__c) SumPrice, |
| | | //2019/1添加 |
| | | sum(Repair_Quotation_Id__r.sales_discount__c) sales_discount, |
| | | sum(Repair_Quotation_Id__r.Contract_target__c) contract_target, |
| | | sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance, |
| | | sum(Repair_Quotation_Id__r.Set_discount__c) set_discount, |
| | | sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD, |
| | | sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery, |
| | | sum(Repair_Quotation_Id__r.Other_discount__c) other, |
| | | AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM, |
| | | Delivered_Product__c |
| | | from |
| | | Repair__c |
| | | where |
| | | Delivered_Product__c in:AsList |
| | | and Agreed_Date__c != null |
| | | and Agreed_Date__c <= :LastSecondYearDate |
| | | and Agreed_Date__c > :LastThirdYearDate |
| | | group by Delivered_Product__c |
| | | ]; |
| | | // 过去3年修理实绩 |
| | | List<AggregateResult> ThreeyearList = [ |
| | | select |
| | | sum(Discount_Price_formula__c) SumPrice, |
| | | //2019/1添加 |
| | | sum(Repair_Quotation_Id__r.sales_discount__c) sales_discount, |
| | | sum(Repair_Quotation_Id__r.Contract_target__c) contract_target, |
| | | sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance, |
| | | sum(Repair_Quotation_Id__r.Set_discount__c) set_discount, |
| | | sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD, |
| | | sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery, |
| | | sum(Repair_Quotation_Id__r.Other_discount__c) other, |
| | | AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM, |
| | | Delivered_Product__c |
| | | from |
| | | Repair__c |
| | | where |
| | | Delivered_Product__c in:AsList |
| | | and Agreed_Date__c != null |
| | | and Agreed_Date__c <= :today |
| | | and Agreed_Date__c > :LastThirdYearDate |
| | | group by Delivered_Product__c |
| | | ]; |
| | | // LastThirdYearDate = LastThirdYearDate.addDays(1); |
| | | LastThirdYearDate = LastThirdYearDate.addYears(-3); |
| | | system.debug('去年' + LastYearDate + '前年' + LastSecondYearDate + '大前年' + LastThirdYearDate); |
| | | // 20191210 Gzw 服务合同过去3年修理实绩合并 |
| | | List<AggregateResult> FriRepairList = [ |
| | | select |
| | | sum(Discount_Price_formula__c) SumPrice, |
| | | //2019/1添加 |
| | | sum(Repair_Quotation_Id__r.sales_discount__c) sales_discount, |
| | | sum(Repair_Quotation_Id__r.Contract_target__c) contract_target, |
| | | sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance, |
| | | sum(Repair_Quotation_Id__r.Set_discount__c) set_discount, |
| | | sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD, |
| | | sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery, |
| | | sum(Repair_Quotation_Id__r.Other_discount__c) other, |
| | | AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM, |
| | | Delivered_Product__c |
| | | from |
| | | Repair__c |
| | | where |
| | | Delivered_Product__c in:AsList |
| | | and Agreed_Date__c != null |
| | | and Agreed_Date__c > :LastYearDate |
| | | and Agreed_Date__c <= :today |
| | | group by Delivered_Product__c |
| | | ]; |
| | | List<AggregateResult> SecRepairList = [ |
| | | select |
| | | sum(Discount_Price_formula__c) SumPrice, |
| | | //2019/1添加 |
| | | sum(Repair_Quotation_Id__r.sales_discount__c) sales_discount, |
| | | sum(Repair_Quotation_Id__r.Contract_target__c) contract_target, |
| | | sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance, |
| | | sum(Repair_Quotation_Id__r.Set_discount__c) set_discount, |
| | | sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD, |
| | | sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery, |
| | | sum(Repair_Quotation_Id__r.Other_discount__c) other, |
| | | AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM, |
| | | Delivered_Product__c |
| | | from |
| | | Repair__c |
| | | where |
| | | Delivered_Product__c in:AsList |
| | | and Agreed_Date__c != null |
| | | and Agreed_Date__c <= :LastYearDate |
| | | and Agreed_Date__c > :LastSecondYearDate |
| | | group by Delivered_Product__c |
| | | ]; |
| | | // 过去3年间修理实绩 |
| | | List<AggregateResult> ThiRepairList = [ |
| | | select |
| | | sum(Discount_Price_formula__c) SumPrice, |
| | | //2019/1添加 |
| | | sum(Repair_Quotation_Id__r.sales_discount__c) sales_discount, |
| | | sum(Repair_Quotation_Id__r.Contract_target__c) contract_target, |
| | | sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance, |
| | | sum(Repair_Quotation_Id__r.Set_discount__c) set_discount, |
| | | sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD, |
| | | sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery, |
| | | sum(Repair_Quotation_Id__r.Other_discount__c) other, |
| | | AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM, |
| | | Delivered_Product__c |
| | | from |
| | | Repair__c |
| | | where |
| | | Delivered_Product__c in:AsList |
| | | and Agreed_Date__c != null |
| | | and Agreed_Date__c <= :LastSecondYearDate |
| | | and Agreed_Date__c > :LastThirdYearDate |
| | | group by Delivered_Product__c |
| | | ]; |
| | | // 过去3年修理实绩 |
| | | List<AggregateResult> ThreeyearList = [ |
| | | select |
| | | sum(Discount_Price_formula__c) SumPrice, |
| | | //2019/1添加 |
| | | sum(Repair_Quotation_Id__r.sales_discount__c) sales_discount, |
| | | sum(Repair_Quotation_Id__r.Contract_target__c) contract_target, |
| | | sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance, |
| | | sum(Repair_Quotation_Id__r.Set_discount__c) set_discount, |
| | | sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD, |
| | | sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery, |
| | | sum(Repair_Quotation_Id__r.Other_discount__c) other, |
| | | AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM, |
| | | Delivered_Product__c |
| | | from |
| | | Repair__c |
| | | where |
| | | Delivered_Product__c in:AsList |
| | | and Agreed_Date__c != null |
| | | and Agreed_Date__c <= :today |
| | | and Agreed_Date__c > :LastThirdYearDate |
| | | group by Delivered_Product__c |
| | | ]; |
| | | |
| | | // system.debug('++++++++'+FriRepairList+'++++++++'+SecRepairList+'+++++++'+ThiRepairList+'+++++'); |
| | | // 过去1年间 |
| | | Map<id, Decimal> LastFriYearPriceSumMap = new Map<id, Decimal>(); |
| | | // 过去2年间 |
| | | Map<id, Decimal> LastSecYearPriceSumMap = new Map<id, Decimal>(); |
| | | // 过去3年间 |
| | | Map<id, Decimal> LastThiYearPriceSumMap = new Map<id, Decimal>(); |
| | | // 过去3年 |
| | | Map<id, Decimal> ThreeYearPriceSumMap = new Map<id, Decimal>(); |
| | | Map<id, Decimal> ThiYearMonthMap = new Map<id, Decimal>(); |
| | | for (AggregateResult Rpc : FriRepairList) { |
| | | id idf = String.valueOf(Rpc.get('Delivered_Product__c')); |
| | | //Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+''); |
| | | Decimal Defir = sumPrice1(Rpc); |
| | | LastFriYearPriceSumMap.put(idf, Defir); |
| | | } |
| | | for (AggregateResult Rpc : SecRepairList) { |
| | | id idf = String.valueOf(Rpc.get('Delivered_Product__c')); |
| | | //Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+''); |
| | | Decimal Defir = sumPrice1(Rpc); |
| | | LastSecYearPriceSumMap.put(idf, Defir); |
| | | } |
| | | for (AggregateResult Rpc : ThiRepairList) { |
| | | id idf = String.valueOf(Rpc.get('Delivered_Product__c')); |
| | | //Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+''); |
| | | Decimal Defir = sumPrice1(Rpc); |
| | | LastThiYearPriceSumMap.put(idf, Defir); |
| | | } |
| | | for (AggregateResult Rpc : ThreeyearList) { |
| | | id idf = String.valueOf(Rpc.get('Delivered_Product__c')); |
| | | //Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+''); |
| | | Decimal threeYearM = decimal.valueOf(Rpc.get('threeYearM') + ''); |
| | | Decimal Defir = sumPrice1(Rpc); |
| | | ThreeYearPriceSumMap.put(idf, Defir); |
| | | ThiYearMonthMap.put(idf, threeYearM); |
| | | } |
| | | for (Maintenance_Contract_Asset_Estimate__c Mca : McaeList) { |
| | | Mca.Lastyear_Repair_Cost_Text__c = LastFriYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : LastFriYearPriceSumMap.get(McaecToAsset.get(Mca.id)); |
| | | Mca.Last_Second_Years_Repair_Cost_Text__c = LastSecYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : LastSecYearPriceSumMap.get(McaecToAsset.get(Mca.id)); |
| | | Mca.Last_Third_Years_Repair_Cost_Text__c = LastThiYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : LastThiYearPriceSumMap.get(McaecToAsset.get(Mca.id)); |
| | | Mca.Three_Years_Repair_Cost_Text__c = ThreeYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : ThreeYearPriceSumMap.get(McaecToAsset.get(Mca.id)); |
| | | Mca.The_Date_Of_Compute_The_RPCost__c = Date.today(); |
| | | Mca.Last_Third_Years_Repair_Month__c = ThiYearMonthMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : ThiYearMonthMap.get(McaecToAsset.get(Mca.id)); |
| | | // system.debug('++++++++'+FriRepairList+'++++++++'+SecRepairList+'+++++++'+ThiRepairList+'+++++'); |
| | | // 过去1年间 |
| | | Map<id, Decimal> LastFriYearPriceSumMap = new Map<id, Decimal>(); |
| | | // 过去2年间 |
| | | Map<id, Decimal> LastSecYearPriceSumMap = new Map<id, Decimal>(); |
| | | // 过去3年间 |
| | | Map<id, Decimal> LastThiYearPriceSumMap = new Map<id, Decimal>(); |
| | | // 过去3年 |
| | | Map<id, Decimal> ThreeYearPriceSumMap = new Map<id, Decimal>(); |
| | | Map<id, Decimal> ThiYearMonthMap = new Map<id, Decimal>(); |
| | | for (AggregateResult Rpc : FriRepairList) { |
| | | id idf = String.valueOf(Rpc.get('Delivered_Product__c')); |
| | | //Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+''); |
| | | Decimal Defir = sumPrice1(Rpc); |
| | | LastFriYearPriceSumMap.put(idf, Defir); |
| | | } |
| | | for (AggregateResult Rpc : SecRepairList) { |
| | | id idf = String.valueOf(Rpc.get('Delivered_Product__c')); |
| | | //Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+''); |
| | | Decimal Defir = sumPrice1(Rpc); |
| | | LastSecYearPriceSumMap.put(idf, Defir); |
| | | } |
| | | for (AggregateResult Rpc : ThiRepairList) { |
| | | id idf = String.valueOf(Rpc.get('Delivered_Product__c')); |
| | | //Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+''); |
| | | Decimal Defir = sumPrice1(Rpc); |
| | | LastThiYearPriceSumMap.put(idf, Defir); |
| | | } |
| | | for (AggregateResult Rpc : ThreeyearList) { |
| | | id idf = String.valueOf(Rpc.get('Delivered_Product__c')); |
| | | //Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+''); |
| | | Decimal threeYearM = decimal.valueOf(Rpc.get('threeYearM') + ''); |
| | | Decimal Defir = sumPrice1(Rpc); |
| | | ThreeYearPriceSumMap.put(idf, Defir); |
| | | ThiYearMonthMap.put(idf, threeYearM); |
| | | } |
| | | for (Maintenance_Contract_Asset_Estimate__c Mca : McaeList) { |
| | | Mca.Lastyear_Repair_Cost_Text__c = LastFriYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : LastFriYearPriceSumMap.get(McaecToAsset.get(Mca.id)); |
| | | Mca.Last_Second_Years_Repair_Cost_Text__c = LastSecYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : LastSecYearPriceSumMap.get(McaecToAsset.get(Mca.id)); |
| | | Mca.Last_Third_Years_Repair_Cost_Text__c = LastThiYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : LastThiYearPriceSumMap.get(McaecToAsset.get(Mca.id)); |
| | | Mca.Three_Years_Repair_Cost_Text__c = ThreeYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : ThreeYearPriceSumMap.get(McaecToAsset.get(Mca.id)); |
| | | Mca.The_Date_Of_Compute_The_RPCost__c = Date.today(); |
| | | Mca.Last_Third_Years_Repair_Month__c = ThiYearMonthMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : ThiYearMonthMap.get(McaecToAsset.get(Mca.id)); |
| | | |
| | | |
| | | } |
| | | try { |
| | | system.debug('McaeList:::::' + McaeList); |
| | | update McaeList; |
| | | } |
| | | try { |
| | | system.debug('McaeList:::::' + McaeList); |
| | | update McaeList; |
| | | |
| | | //return ''; |
| | | } catch (Exception e) { |
| | | //return 'McaeList Update Failed : '+e; |
| | | } |
| | | //return ''; |
| | | } catch (Exception e) { |
| | | //return 'McaeList Update Failed : '+e; |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | public void ComputeLTYRepair() { |
| | | system.debug('ComputeLTYRepair=====Start'); |
| | | List<Maintenance_Contract_Asset_Estimate__c> McaeList = new List<Maintenance_Contract_Asset_Estimate__c>(); |
| | | McaeList = [select id, asset__c, Lastyear_Repair_Cost_Text__c, Last_Second_Years_Repair_Cost_Text__c, Last_Third_Years_Repair_Cost_Text__c, Three_Years_Repair_Cost_Text__c |
| | | from Maintenance_Contract_Asset_Estimate__c |
| | | where Maintenance_Contract_Estimate__c = :targetEstimateId]; |
| | | List<id> AsList = new List<id>(); |
| | | Map<id, id> McaecToAsset = new Map<id, id>(); |
| | | for (Maintenance_Contract_Asset_Estimate__c Mcaes : McaeList) { |
| | | AsList.add(Mcaes.asset__c); |
| | | McaecToAsset.put(Mcaes.id, Mcaes.asset__c); |
| | | } |
| | | Maintenance_Contract_Estimate__c mcec = new Maintenance_Contract_Estimate__c(); |
| | | List<Maintenance_Contract_Estimate__c> mcecList = new List<Maintenance_Contract_Estimate__c>(); |
| | | mcecList = [select id, createdDate, Submit_quotation_day__c from Maintenance_Contract_Estimate__c where id = :targetEstimateId]; |
| | | if (mcecList.size() == 0) { |
| | | ApexPages.addMessage(new ApexPages.message(ApexPages.severity.Error, '请先保存报价!')); |
| | | return; |
| | | } else { |
| | | mcec = mcecList[0]; |
| | | } |
| | | //1年前维修实绩 |
| | | Date today = null; |
| | | Date LastYearDate = null; |
| | | Date LastSecondYearDate = null; |
| | | Date LastThirdYearDate = null; |
| | | Decimal LastYearPriceForMCAEC = 0; |
| | | system.debug('ComputeLTYRepair=====Start'); |
| | | List<Maintenance_Contract_Asset_Estimate__c> McaeList = new List<Maintenance_Contract_Asset_Estimate__c>(); |
| | | McaeList = [select id, asset__c, Lastyear_Repair_Cost_Text__c, Last_Second_Years_Repair_Cost_Text__c, Last_Third_Years_Repair_Cost_Text__c, Three_Years_Repair_Cost_Text__c |
| | | from Maintenance_Contract_Asset_Estimate__c |
| | | where Maintenance_Contract_Estimate__c = :targetEstimateId]; |
| | | List<id> AsList = new List<id>(); |
| | | Map<id, id> McaecToAsset = new Map<id, id>(); |
| | | for (Maintenance_Contract_Asset_Estimate__c Mcaes : McaeList) { |
| | | AsList.add(Mcaes.asset__c); |
| | | McaecToAsset.put(Mcaes.id, Mcaes.asset__c); |
| | | } |
| | | Maintenance_Contract_Estimate__c mcec = new Maintenance_Contract_Estimate__c(); |
| | | List<Maintenance_Contract_Estimate__c> mcecList = new List<Maintenance_Contract_Estimate__c>(); |
| | | mcecList = [select id, createdDate, Submit_quotation_day__c from Maintenance_Contract_Estimate__c where id = :targetEstimateId]; |
| | | if (mcecList.size() == 0) { |
| | | ApexPages.addMessage(new ApexPages.message(ApexPages.severity.Error, '请先保存报价!')); |
| | | return; |
| | | } else { |
| | | mcec = mcecList[0]; |
| | | } |
| | | //1年前维修实绩 |
| | | Date today = null; |
| | | Date LastYearDate = null; |
| | | Date LastSecondYearDate = null; |
| | | Date LastThirdYearDate = null; |
| | | Decimal LastYearPriceForMCAEC = 0; |
| | | |
| | | if (mcec.Submit_quotation_day__c != null && String.valueOf(mcec.Submit_quotation_day__c) != '') { |
| | | today = mcec.Submit_quotation_day__c; |
| | | LastYearDate = mcec.Submit_quotation_day__c; |
| | | LastSecondYearDate = mcec.Submit_quotation_day__c; |
| | | LastThirdYearDate = mcec.Submit_quotation_day__c; |
| | | } else { |
| | | today = Date.valueOf(mcec.createdDate); |
| | | LastYearDate = Date.valueOf(mcec.createdDate); |
| | | LastSecondYearDate = Date.valueOf(mcec.createdDate); |
| | | LastThirdYearDate = Date.valueOf(mcec.createdDate); |
| | | } |
| | | if (mcec.Submit_quotation_day__c != null && String.valueOf(mcec.Submit_quotation_day__c) != '') { |
| | | today = mcec.Submit_quotation_day__c; |
| | | LastYearDate = mcec.Submit_quotation_day__c; |
| | | LastSecondYearDate = mcec.Submit_quotation_day__c; |
| | | LastThirdYearDate = mcec.Submit_quotation_day__c; |
| | | } else { |
| | | today = Date.valueOf(mcec.createdDate); |
| | | LastYearDate = Date.valueOf(mcec.createdDate); |
| | | LastSecondYearDate = Date.valueOf(mcec.createdDate); |
| | | LastThirdYearDate = Date.valueOf(mcec.createdDate); |
| | | } |
| | | |
| | | LastYearDate = LastYearDate.addYears(-1); |
| | | // LastYearDate = LastYearDate.addDays(1); |
| | | LastYearDate = LastYearDate.addYears(-1); |
| | | // LastYearDate = LastYearDate.addDays(1); |
| | | |
| | | // LastSecondYearDate = LastSecondYearDate.addDays(1); |
| | | LastSecondYearDate = LastSecondYearDate.addYears(-2); |
| | | // LastSecondYearDate = LastSecondYearDate.addDays(1); |
| | | LastSecondYearDate = LastSecondYearDate.addYears(-2); |
| | | |
| | | // LastThirdYearDate = LastThirdYearDate.addDays(1); |
| | | LastThirdYearDate = LastThirdYearDate.addYears(-3); |
| | | system.debug('去年' + LastYearDate + '前年' + LastSecondYearDate + '大前年' + LastThirdYearDate); |
| | | // 20191210 Gzw 服务合同过去3年修理实绩合并 |
| | | List<AggregateResult> FriRepairList = [ |
| | | select |
| | | sum(Discount_Price_formula__c) SumPrice, |
| | | //2019/1添加 |
| | | sum(Repair_Quotation_Id__r.sales_discount__c) sales_discount, |
| | | sum(Repair_Quotation_Id__r.Contract_target__c) contract_target, |
| | | sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance, |
| | | sum(Repair_Quotation_Id__r.Set_discount__c) set_discount, |
| | | sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD, |
| | | sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery, |
| | | sum(Repair_Quotation_Id__r.Other_discount__c) other, |
| | | AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM, |
| | | Delivered_Product__c |
| | | from |
| | | Repair__c |
| | | where |
| | | Delivered_Product__c in:AsList |
| | | and Agreed_Date__c != null |
| | | and Agreed_Date__c > :LastYearDate |
| | | and Agreed_Date__c <= :today |
| | | group by Delivered_Product__c |
| | | ]; |
| | | List<AggregateResult> SecRepairList = [ |
| | | select |
| | | sum(Discount_Price_formula__c) SumPrice, |
| | | //2019/1添加 |
| | | sum(Repair_Quotation_Id__r.sales_discount__c) sales_discount, |
| | | sum(Repair_Quotation_Id__r.Contract_target__c) contract_target, |
| | | sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance, |
| | | sum(Repair_Quotation_Id__r.Set_discount__c) set_discount, |
| | | sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD, |
| | | sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery, |
| | | sum(Repair_Quotation_Id__r.Other_discount__c) other, |
| | | AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM, |
| | | Delivered_Product__c |
| | | from |
| | | Repair__c |
| | | where |
| | | Delivered_Product__c in:AsList |
| | | and Agreed_Date__c != null |
| | | and Agreed_Date__c <= :LastYearDate |
| | | and Agreed_Date__c > :LastSecondYearDate |
| | | group by Delivered_Product__c |
| | | ]; |
| | | // 过去3年间修理实绩 |
| | | List<AggregateResult> ThiRepairList = [ |
| | | select |
| | | sum(Discount_Price_formula__c) SumPrice, |
| | | //2019/1添加 |
| | | sum(Repair_Quotation_Id__r.sales_discount__c) sales_discount, |
| | | sum(Repair_Quotation_Id__r.Contract_target__c) contract_target, |
| | | sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance, |
| | | sum(Repair_Quotation_Id__r.Set_discount__c) set_discount, |
| | | sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD, |
| | | sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery, |
| | | sum(Repair_Quotation_Id__r.Other_discount__c) other, |
| | | AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM, |
| | | Delivered_Product__c |
| | | from |
| | | Repair__c |
| | | where |
| | | Delivered_Product__c in:AsList |
| | | and Agreed_Date__c != null |
| | | and Agreed_Date__c <= :LastSecondYearDate |
| | | and Agreed_Date__c > :LastThirdYearDate |
| | | group by Delivered_Product__c |
| | | ]; |
| | | // 过去3年修理实绩 |
| | | List<AggregateResult> ThreeyearList = [ |
| | | select |
| | | sum(Discount_Price_formula__c) SumPrice, |
| | | //2019/1添加 |
| | | sum(Repair_Quotation_Id__r.sales_discount__c) sales_discount, |
| | | sum(Repair_Quotation_Id__r.Contract_target__c) contract_target, |
| | | sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance, |
| | | sum(Repair_Quotation_Id__r.Set_discount__c) set_discount, |
| | | sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD, |
| | | sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery, |
| | | sum(Repair_Quotation_Id__r.Other_discount__c) other, |
| | | AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM, |
| | | Delivered_Product__c |
| | | from |
| | | Repair__c |
| | | where |
| | | Delivered_Product__c in:AsList |
| | | and Agreed_Date__c != null |
| | | and Agreed_Date__c <= :today |
| | | and Agreed_Date__c > :LastThirdYearDate |
| | | group by Delivered_Product__c |
| | | ]; |
| | | // 过去1年间 |
| | | Map<id, Decimal> LastFriYearPriceSumMap = new Map<id, Decimal>(); |
| | | // 过去2年间 |
| | | Map<id, Decimal> LastSecYearPriceSumMap = new Map<id, Decimal>(); |
| | | // 过去3年间 |
| | | Map<id, Decimal> LastThiYearPriceSumMap = new Map<id, Decimal>(); |
| | | // 过去3年 |
| | | Map<id, Decimal> ThreeYearPriceSumMap = new Map<id, Decimal>(); |
| | | Map<id, Decimal> ThiYearMonthMap = new Map<id, Decimal>(); |
| | | // system.debug('1'+FriRepairList); |
| | | // system.debug('2'+SecRepairList); |
| | | system.debug('3' + ThiRepairList); |
| | | // LastThirdYearDate = LastThirdYearDate.addDays(1); |
| | | LastThirdYearDate = LastThirdYearDate.addYears(-3); |
| | | system.debug('去年' + LastYearDate + '前年' + LastSecondYearDate + '大前年' + LastThirdYearDate); |
| | | // 20191210 Gzw 服务合同过去3年修理实绩合并 |
| | | List<AggregateResult> FriRepairList = [ |
| | | select |
| | | sum(Discount_Price_formula__c) SumPrice, |
| | | //2019/1添加 |
| | | sum(Repair_Quotation_Id__r.sales_discount__c) sales_discount, |
| | | sum(Repair_Quotation_Id__r.Contract_target__c) contract_target, |
| | | sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance, |
| | | sum(Repair_Quotation_Id__r.Set_discount__c) set_discount, |
| | | sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD, |
| | | sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery, |
| | | sum(Repair_Quotation_Id__r.Other_discount__c) other, |
| | | AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM, |
| | | Delivered_Product__c |
| | | from |
| | | Repair__c |
| | | where |
| | | Delivered_Product__c in:AsList |
| | | and Agreed_Date__c != null |
| | | and Agreed_Date__c > :LastYearDate |
| | | and Agreed_Date__c <= :today |
| | | group by Delivered_Product__c |
| | | ]; |
| | | List<AggregateResult> SecRepairList = [ |
| | | select |
| | | sum(Discount_Price_formula__c) SumPrice, |
| | | //2019/1添加 |
| | | sum(Repair_Quotation_Id__r.sales_discount__c) sales_discount, |
| | | sum(Repair_Quotation_Id__r.Contract_target__c) contract_target, |
| | | sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance, |
| | | sum(Repair_Quotation_Id__r.Set_discount__c) set_discount, |
| | | sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD, |
| | | sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery, |
| | | sum(Repair_Quotation_Id__r.Other_discount__c) other, |
| | | AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM, |
| | | Delivered_Product__c |
| | | from |
| | | Repair__c |
| | | where |
| | | Delivered_Product__c in:AsList |
| | | and Agreed_Date__c != null |
| | | and Agreed_Date__c <= :LastYearDate |
| | | and Agreed_Date__c > :LastSecondYearDate |
| | | group by Delivered_Product__c |
| | | ]; |
| | | // 过去3年间修理实绩 |
| | | List<AggregateResult> ThiRepairList = [ |
| | | select |
| | | sum(Discount_Price_formula__c) SumPrice, |
| | | //2019/1添加 |
| | | sum(Repair_Quotation_Id__r.sales_discount__c) sales_discount, |
| | | sum(Repair_Quotation_Id__r.Contract_target__c) contract_target, |
| | | sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance, |
| | | sum(Repair_Quotation_Id__r.Set_discount__c) set_discount, |
| | | sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD, |
| | | sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery, |
| | | sum(Repair_Quotation_Id__r.Other_discount__c) other, |
| | | AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM, |
| | | Delivered_Product__c |
| | | from |
| | | Repair__c |
| | | where |
| | | Delivered_Product__c in:AsList |
| | | and Agreed_Date__c != null |
| | | and Agreed_Date__c <= :LastSecondYearDate |
| | | and Agreed_Date__c > :LastThirdYearDate |
| | | group by Delivered_Product__c |
| | | ]; |
| | | // 过去3年修理实绩 |
| | | List<AggregateResult> ThreeyearList = [ |
| | | select |
| | | sum(Discount_Price_formula__c) SumPrice, |
| | | //2019/1添加 |
| | | sum(Repair_Quotation_Id__r.sales_discount__c) sales_discount, |
| | | sum(Repair_Quotation_Id__r.Contract_target__c) contract_target, |
| | | sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance, |
| | | sum(Repair_Quotation_Id__r.Set_discount__c) set_discount, |
| | | sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince, |
| | | sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD, |
| | | sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery, |
| | | sum(Repair_Quotation_Id__r.Other_discount__c) other, |
| | | AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM, |
| | | Delivered_Product__c |
| | | from |
| | | Repair__c |
| | | where |
| | | Delivered_Product__c in:AsList |
| | | and Agreed_Date__c != null |
| | | and Agreed_Date__c <= :today |
| | | and Agreed_Date__c > :LastThirdYearDate |
| | | group by Delivered_Product__c |
| | | ]; |
| | | // 过去1年间 |
| | | Map<id, Decimal> LastFriYearPriceSumMap = new Map<id, Decimal>(); |
| | | // 过去2年间 |
| | | Map<id, Decimal> LastSecYearPriceSumMap = new Map<id, Decimal>(); |
| | | // 过去3年间 |
| | | Map<id, Decimal> LastThiYearPriceSumMap = new Map<id, Decimal>(); |
| | | // 过去3年 |
| | | Map<id, Decimal> ThreeYearPriceSumMap = new Map<id, Decimal>(); |
| | | Map<id, Decimal> ThiYearMonthMap = new Map<id, Decimal>(); |
| | | // system.debug('1'+FriRepairList); |
| | | // system.debug('2'+SecRepairList); |
| | | system.debug('3' + ThiRepairList); |
| | | |
| | | for (AggregateResult Rpc : FriRepairList) { |
| | | id idf = String.valueOf(Rpc.get('Delivered_Product__c')); |
| | | //Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+''); |
| | | Decimal Defir = this.sumPrice(Rpc); |
| | | LastFriYearPriceSumMap.put(idf, Defir); |
| | | } |
| | | for (AggregateResult Rpc : SecRepairList) { |
| | | id idf = String.valueOf(Rpc.get('Delivered_Product__c')); |
| | | //Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+''); |
| | | Decimal Defir = this.sumPrice(Rpc); |
| | | LastSecYearPriceSumMap.put(idf, Defir); |
| | | } |
| | | for (AggregateResult Rpc : ThiRepairList) { |
| | | id idf = String.valueOf(Rpc.get('Delivered_Product__c')); |
| | | //Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+''); |
| | | Decimal Defir = sumPrice1(Rpc); |
| | | LastThiYearPriceSumMap.put(idf, Defir); |
| | | } |
| | | for (AggregateResult Rpc : ThreeyearList) { |
| | | id idf = String.valueOf(Rpc.get('Delivered_Product__c')); |
| | | //Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+''); |
| | | Decimal threeYearM = decimal.valueOf(Rpc.get('threeYearM') + ''); |
| | | Decimal Defir = sumPrice1(Rpc); |
| | | ThreeYearPriceSumMap.put(idf, Defir); |
| | | ThiYearMonthMap.put(idf, threeYearM); |
| | | } |
| | | for (Maintenance_Contract_Asset_Estimate__c Mca : McaeList) { |
| | | Mca.Lastyear_Repair_Cost_Text__c = LastFriYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : LastFriYearPriceSumMap.get(McaecToAsset.get(Mca.id)); |
| | | Mca.Last_Second_Years_Repair_Cost_Text__c = LastSecYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : LastSecYearPriceSumMap.get(McaecToAsset.get(Mca.id)); |
| | | Mca.Last_Third_Years_Repair_Cost_Text__c = LastThiYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : LastThiYearPriceSumMap.get(McaecToAsset.get(Mca.id)); |
| | | Mca.Three_Years_Repair_Cost_Text__c = ThreeYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : ThreeYearPriceSumMap.get(McaecToAsset.get(Mca.id)); |
| | | Mca.The_Date_Of_Compute_The_RPCost__c = Date.today(); |
| | | Mca.Last_Third_Years_Repair_Month__c = ThiYearMonthMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : ThiYearMonthMap.get(McaecToAsset.get(Mca.id)); |
| | | system.debug('过去3年天数111 ' + Mca.id + '---' + Mca.Last_Third_Years_Repair_Cost_Text__c + ' +++ ' + Mca.Last_Third_Years_Repair_Month__c); |
| | | } |
| | | try { |
| | | update McaeList; |
| | | //return ''; |
| | | } catch (Exception e) { |
| | | //return 'McaeList Update Failed : '+e; |
| | | } |
| | | for (AggregateResult Rpc : FriRepairList) { |
| | | id idf = String.valueOf(Rpc.get('Delivered_Product__c')); |
| | | //Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+''); |
| | | Decimal Defir = this.sumPrice(Rpc); |
| | | LastFriYearPriceSumMap.put(idf, Defir); |
| | | } |
| | | for (AggregateResult Rpc : SecRepairList) { |
| | | id idf = String.valueOf(Rpc.get('Delivered_Product__c')); |
| | | //Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+''); |
| | | Decimal Defir = this.sumPrice(Rpc); |
| | | LastSecYearPriceSumMap.put(idf, Defir); |
| | | } |
| | | for (AggregateResult Rpc : ThiRepairList) { |
| | | id idf = String.valueOf(Rpc.get('Delivered_Product__c')); |
| | | //Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+''); |
| | | Decimal Defir = sumPrice1(Rpc); |
| | | LastThiYearPriceSumMap.put(idf, Defir); |
| | | } |
| | | for (AggregateResult Rpc : ThreeyearList) { |
| | | id idf = String.valueOf(Rpc.get('Delivered_Product__c')); |
| | | //Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+''); |
| | | Decimal threeYearM = decimal.valueOf(Rpc.get('threeYearM') + ''); |
| | | Decimal Defir = sumPrice1(Rpc); |
| | | ThreeYearPriceSumMap.put(idf, Defir); |
| | | ThiYearMonthMap.put(idf, threeYearM); |
| | | } |
| | | for (Maintenance_Contract_Asset_Estimate__c Mca : McaeList) { |
| | | Mca.Lastyear_Repair_Cost_Text__c = LastFriYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : LastFriYearPriceSumMap.get(McaecToAsset.get(Mca.id)); |
| | | Mca.Last_Second_Years_Repair_Cost_Text__c = LastSecYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : LastSecYearPriceSumMap.get(McaecToAsset.get(Mca.id)); |
| | | Mca.Last_Third_Years_Repair_Cost_Text__c = LastThiYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : LastThiYearPriceSumMap.get(McaecToAsset.get(Mca.id)); |
| | | Mca.Three_Years_Repair_Cost_Text__c = ThreeYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : ThreeYearPriceSumMap.get(McaecToAsset.get(Mca.id)); |
| | | Mca.The_Date_Of_Compute_The_RPCost__c = Date.today(); |
| | | Mca.Last_Third_Years_Repair_Month__c = ThiYearMonthMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : ThiYearMonthMap.get(McaecToAsset.get(Mca.id)); |
| | | system.debug('过去3年天数111 ' + Mca.id + '---' + Mca.Last_Third_Years_Repair_Cost_Text__c + ' +++ ' + Mca.Last_Third_Years_Repair_Month__c); |
| | | } |
| | | try { |
| | | update McaeList; |
| | | //return ''; |
| | | } catch (Exception e) { |
| | | //return 'McaeList Update Failed : '+e; |
| | | } |
| | | |
| | | } |
| | | |
| | | private Decimal sumPrice(AggregateResult rpc) { |
| | | Decimal SumPrice = Decimal.valueOf(rpc.get('SumPrice') + ''); |
| | | system.debug(rpc.get('sales_discount') == null ? 0 : rpc.get('sales_discount')); |
| | | Decimal sales_discount = Decimal.valueOf((rpc.get('sales_discount') == null ? 0 : rpc.get('sales_discount')) + '') * -1; |
| | | Decimal contract_target = Decimal.valueOf((rpc.get('contract_target') == null ? 0 : rpc.get('contract_target')) + '') * -1; |
| | | Decimal loaner_repair = Decimal.valueOf((rpc.get('loaner_repair') == null ? 0 : rpc.get('loaner_repair')) + '') * -1; |
| | | Decimal long_term_insurance = Decimal.valueOf((rpc.get('long_term_insurance') == null ? 0 : rpc.get('long_term_insurance')) + '') * -1; |
| | | Decimal set_discount = Decimal.valueOf((rpc.get('set_discount') == null ? 0 : rpc.get('set_discount')) + '') * -1; |
| | | Decimal sercince = Decimal.valueOf((rpc.get('sercince') == null ? 0 : rpc.get('sercince')) + '') * -1; |
| | | Decimal long_term_insuranceMD = Decimal.valueOf((rpc.get('long_term_insuranceMD') == null ? 0 : rpc.get('long_term_insuranceMD')) + '') * -1; |
| | | Decimal delivery = Decimal.valueOf((rpc.get('delivery') == null ? 0 : rpc.get('delivery')) + '') * -1; |
| | | Decimal other = Decimal.valueOf((rpc.get('other') == null ? 0 : rpc.get('other')) + '') * -1; |
| | | system.debug(rpc.get('SumPrice') + '--' + rpc.get('sales_discount') + '--' + rpc.get('contract_target') + '--' + |
| | | rpc.get('loaner_repair') + '--' + rpc.get('long_term_insurance') + '--' + rpc.get('set_discount') + '--' + rpc.get('long_term_insuranceMD') |
| | | + '--' + rpc.get('delivery') + '--' + rpc.get('other') + '--'); |
| | | return SumPrice + sales_discount + contract_target + loaner_repair + long_term_insurance + sercince + set_discount + long_term_insuranceMD + delivery + other; |
| | | Decimal SumPrice = Decimal.valueOf(rpc.get('SumPrice') + ''); |
| | | system.debug(rpc.get('sales_discount') == null ? 0 : rpc.get('sales_discount')); |
| | | Decimal sales_discount = Decimal.valueOf((rpc.get('sales_discount') == null ? 0 : rpc.get('sales_discount')) + '') * -1; |
| | | Decimal contract_target = Decimal.valueOf((rpc.get('contract_target') == null ? 0 : rpc.get('contract_target')) + '') * -1; |
| | | Decimal loaner_repair = Decimal.valueOf((rpc.get('loaner_repair') == null ? 0 : rpc.get('loaner_repair')) + '') * -1; |
| | | Decimal long_term_insurance = Decimal.valueOf((rpc.get('long_term_insurance') == null ? 0 : rpc.get('long_term_insurance')) + '') * -1; |
| | | Decimal set_discount = Decimal.valueOf((rpc.get('set_discount') == null ? 0 : rpc.get('set_discount')) + '') * -1; |
| | | Decimal sercince = Decimal.valueOf((rpc.get('sercince') == null ? 0 : rpc.get('sercince')) + '') * -1; |
| | | Decimal long_term_insuranceMD = Decimal.valueOf((rpc.get('long_term_insuranceMD') == null ? 0 : rpc.get('long_term_insuranceMD')) + '') * -1; |
| | | Decimal delivery = Decimal.valueOf((rpc.get('delivery') == null ? 0 : rpc.get('delivery')) + '') * -1; |
| | | Decimal other = Decimal.valueOf((rpc.get('other') == null ? 0 : rpc.get('other')) + '') * -1; |
| | | system.debug(rpc.get('SumPrice') + '--' + rpc.get('sales_discount') + '--' + rpc.get('contract_target') + '--' + |
| | | rpc.get('loaner_repair') + '--' + rpc.get('long_term_insurance') + '--' + rpc.get('set_discount') + '--' + rpc.get('long_term_insuranceMD') |
| | | + '--' + rpc.get('delivery') + '--' + rpc.get('other') + '--'); |
| | | return SumPrice + sales_discount + contract_target + loaner_repair + long_term_insurance + sercince + set_discount + long_term_insuranceMD + delivery + other; |
| | | } |
| | | |
| | | private static Decimal sumPrice1(AggregateResult rpc) { |
| | | Decimal SumPrice = Decimal.valueOf(rpc.get('SumPrice') + ''); |
| | | Decimal sales_discount = Decimal.valueOf((rpc.get('sales_discount') == null ? 0 : rpc.get('sales_discount')) + '') * -1; |
| | | Decimal contract_target = Decimal.valueOf((rpc.get('contract_target') == null ? 0 : rpc.get('contract_target')) + '') * -1; |
| | | Decimal loaner_repair = Decimal.valueOf((rpc.get('loaner_repair') == null ? 0 : rpc.get('loaner_repair')) + '') * -1; |
| | | Decimal long_term_insurance = Decimal.valueOf((rpc.get('long_term_insurance') == null ? 0 : rpc.get('long_term_insurance')) + '') * -1; |
| | | Decimal set_discount = Decimal.valueOf((rpc.get('set_discount') == null ? 0 : rpc.get('set_discount')) + '') * -1; |
| | | Decimal sercince = Decimal.valueOf((rpc.get('sercince') == null ? 0 : rpc.get('sercince')) + '') * -1; |
| | | Decimal long_term_insuranceMD = Decimal.valueOf((rpc.get('long_term_insuranceMD') == null ? 0 : rpc.get('long_term_insuranceMD')) + '') * -1; |
| | | Decimal delivery = Decimal.valueOf((rpc.get('delivery') == null ? 0 : rpc.get('delivery')) + '') * -1; |
| | | Decimal other = Decimal.valueOf((rpc.get('other') == null ? 0 : rpc.get('other')) + '') * -1; |
| | | system.debug(rpc.get('SumPrice') + '--' + rpc.get('sales_discount') + '--' + rpc.get('contract_target') + '--' + |
| | | rpc.get('loaner_repair') + '--' + rpc.get('long_term_insurance') + '--' + rpc.get('set_discount') + '--' + rpc.get('long_term_insuranceMD') |
| | | + '--' + rpc.get('delivery') + '--' + rpc.get('other') + '--'); |
| | | return SumPrice + sales_discount + contract_target + loaner_repair + long_term_insurance + sercince + set_discount + long_term_insuranceMD + delivery + other; |
| | | Decimal SumPrice = Decimal.valueOf(rpc.get('SumPrice') + ''); |
| | | Decimal sales_discount = Decimal.valueOf((rpc.get('sales_discount') == null ? 0 : rpc.get('sales_discount')) + '') * -1; |
| | | Decimal contract_target = Decimal.valueOf((rpc.get('contract_target') == null ? 0 : rpc.get('contract_target')) + '') * -1; |
| | | Decimal loaner_repair = Decimal.valueOf((rpc.get('loaner_repair') == null ? 0 : rpc.get('loaner_repair')) + '') * -1; |
| | | Decimal long_term_insurance = Decimal.valueOf((rpc.get('long_term_insurance') == null ? 0 : rpc.get('long_term_insurance')) + '') * -1; |
| | | Decimal set_discount = Decimal.valueOf((rpc.get('set_discount') == null ? 0 : rpc.get('set_discount')) + '') * -1; |
| | | Decimal sercince = Decimal.valueOf((rpc.get('sercince') == null ? 0 : rpc.get('sercince')) + '') * -1; |
| | | Decimal long_term_insuranceMD = Decimal.valueOf((rpc.get('long_term_insuranceMD') == null ? 0 : rpc.get('long_term_insuranceMD')) + '') * -1; |
| | | Decimal delivery = Decimal.valueOf((rpc.get('delivery') == null ? 0 : rpc.get('delivery')) + '') * -1; |
| | | Decimal other = Decimal.valueOf((rpc.get('other') == null ? 0 : rpc.get('other')) + '') * -1; |
| | | system.debug(rpc.get('SumPrice') + '--' + rpc.get('sales_discount') + '--' + rpc.get('contract_target') + '--' + |
| | | rpc.get('loaner_repair') + '--' + rpc.get('long_term_insurance') + '--' + rpc.get('set_discount') + '--' + rpc.get('long_term_insuranceMD') |
| | | + '--' + rpc.get('delivery') + '--' + rpc.get('other') + '--'); |
| | | return SumPrice + sales_discount + contract_target + loaner_repair + long_term_insurance + sercince + set_discount + long_term_insuranceMD + delivery + other; |
| | | } |
| | | |
| | | |
| | | //废弃中=========20161024==============// |
| | | public void ShowLTYRepair() { |
| | | system.debug('ShowLTYRepair=====Start'); |
| | | lastFriYearsPriceSum = 0; |
| | | lastSecYearsPriceSum = 0; |
| | | // |
| | | List<Maintenance_Contract_Estimate__c> McecList = new List<Maintenance_Contract_Estimate__c>(); |
| | | McecList = [select |
| | | Last_Year_Repair_Sum__c, |
| | | Year_Before_Last_Year_Re_Sum__c, |
| | | Last_Two_Year_Repair_sum__c, |
| | | Process_Status__c, //报价状态 |
| | | Repair_Sum_Compute_Date__c |
| | | from |
| | | Maintenance_Contract_Estimate__c |
| | | where |
| | | id = :targetEstimateId |
| | | ]; |
| | | Maintenance_Contract_Estimate__c McecEle = new Maintenance_Contract_Estimate__c(); |
| | | if (McecList.size() > 0) { |
| | | McecEle = McecList[0]; |
| | | Date ComputeD = McecEle.Repair_Sum_Compute_Date__c == null ? Date.today() : McecEle.Repair_Sum_Compute_Date__c; |
| | | String DateString1 = ComputeD + ''; |
| | | String DateString2 = ComputeD.addYears(-2).addDays(1) + ''; |
| | | alertString = '集計対象期間:' + DateString1.substring(0, 10) + '~' + DateString2.substring(0, 10) + ''; |
| | | alertString2 = '去年修理実績合計:' + McecEle.Last_Year_Repair_Sum__c + ' RMB '; |
| | | alertString3 = '前年修理実績合計:' + McecEle.Year_Before_Last_Year_Re_Sum__c + ' RMB'; |
| | | } else { |
| | | alertString = '没有有效的维修合同报价'; |
| | | } |
| | | system.debug('ShowLTYRepair=====Start'); |
| | | lastFriYearsPriceSum = 0; |
| | | lastSecYearsPriceSum = 0; |
| | | // |
| | | List<Maintenance_Contract_Estimate__c> McecList = new List<Maintenance_Contract_Estimate__c>(); |
| | | McecList = [select |
| | | Last_Year_Repair_Sum__c, |
| | | Year_Before_Last_Year_Re_Sum__c, |
| | | Last_Two_Year_Repair_sum__c, |
| | | Process_Status__c, //报价状态 |
| | | Repair_Sum_Compute_Date__c |
| | | from |
| | | Maintenance_Contract_Estimate__c |
| | | where |
| | | id = :targetEstimateId |
| | | ]; |
| | | Maintenance_Contract_Estimate__c McecEle = new Maintenance_Contract_Estimate__c(); |
| | | if (McecList.size() > 0) { |
| | | McecEle = McecList[0]; |
| | | Date ComputeD = McecEle.Repair_Sum_Compute_Date__c == null ? Date.today() : McecEle.Repair_Sum_Compute_Date__c; |
| | | String DateString1 = ComputeD + ''; |
| | | String DateString2 = ComputeD.addYears(-2).addDays(1) + ''; |
| | | alertString = '集計対象期間:' + DateString1.substring(0, 10) + '~' + DateString2.substring(0, 10) + ''; |
| | | alertString2 = '去年修理実績合計:' + McecEle.Last_Year_Repair_Sum__c + ' RMB '; |
| | | alertString3 = '前年修理実績合計:' + McecEle.Year_Before_Last_Year_Re_Sum__c + ' RMB'; |
| | | } else { |
| | | alertString = '没有有效的维修合同报价'; |
| | | } |
| | | } |
| | | /** |
| | | * 手動で商品選択後のリフレッシュ |
| | | **/ |
| | | public void refreshProductData() { |
| | | System.debug('1535.......................进入refreshProductData方法'); |
| | | System.debug('1536.......................进入refreshProductData方法'); |
| | | for (Integer i = 0; i < checkedAssets.size(); i++) { |
| | | if (i == productIdx) { |
| | | AssetInfo ai = checkedAssets[i]; |
| | | System.debug('--------:' + ai); |
| | | if (ai.mcae.Product_Manual__c == null) { |
| | | ai.mcae.Estimate_List_Price__c = null; |
| | | // add by fxk 2021/9/9 控制点检对象是否可选 Star |
| | | ai.CheckRows = true; |
| | | // add by fxk 2021/9/9 控制点检对象是否可选 End |
| | | System.debug('1540--'); |
| | | } else { |
| | | //2021-02-04 mzy select语句查询结果中加了 NoPartRiskDate_F__c |
| | | List<Product2> prd = [select Id, Maintenance_Price_Month__c, EquipmentGuaranteeFlg__c, Name from Product2 where Id = :ai.mcae.Product_Manual__c]; |
| | | ai.mcae.Estimate_List_Price__c = prd[0].Maintenance_Price_Month__c * isNewPriceAdj; |
| | | //ai.mcae.Maintenance_Price_YearTXT__c = ai.mcae.Estimate_List_Price__c * 12; |
| | | ai.orgPrice = prd[0].Maintenance_Price_Month__c; |
| | | ai.mcae.EquipmentGuaranteeFlgTxt__c = prd[0].EquipmentGuaranteeFlg__c; |
| | | ai.etGFlg = prd[0].EquipmentGuaranteeFlg__c; |
| | | //add by rentx 2020-11-12 LJPH-BV93RZ start |
| | | ai.proName = prd[0].Name; |
| | | //add by rentx 2020-11-12 LJPH-BV93RZ end |
| | | // add by fxk 2021/9/9 控制点检对象是否可选 Star |
| | | ai.CheckRows = false; |
| | | // add by fxk 2021/9/9 控制点检对象是否可选 End |
| | | //add by mzy 2021-02-04 LJPH-BX9CVX start |
| | | //ai.NoPartRiskDate = prd[0].NoPartRiskDate_F__c; |
| | | //ai.proName2 = prd[0].Name; |
| | | //ai.SignableFlag = prd[0].SignableFlag__c; |
| | | //add by mzy 2021-02-04 LJPH-BX9CVX end |
| | | } |
| | | System.debug('1535.......................进入refreshProductData方法'); |
| | | System.debug('1536.......................进入refreshProductData方法'); |
| | | for (Integer i = 0; i < checkedAssets.size(); i++) { |
| | | if (i == productIdx) { |
| | | AssetInfo ai = checkedAssets[i]; |
| | | System.debug('--------:' + ai); |
| | | if (ai.mcae.Product_Manual__c == null) { |
| | | ai.mcae.Estimate_List_Price__c = null; |
| | | // add by fxk 2021/9/9 控制点检对象是否可选 Star |
| | | ai.CheckRows = true; |
| | | // add by fxk 2021/9/9 控制点检对象是否可选 End |
| | | System.debug('1540--'); |
| | | } else { |
| | | //2021-02-04 mzy select语句查询结果中加了 NoPartRiskDate_F__c |
| | | List<Product2> prd = [select Id, Maintenance_Price_Month__c, EquipmentGuaranteeFlg__c, Name from Product2 where Id = :ai.mcae.Product_Manual__c]; |
| | | ai.mcae.Estimate_List_Price__c = prd[0].Maintenance_Price_Month__c * isNewPriceAdj; |
| | | //ai.mcae.Maintenance_Price_YearTXT__c = ai.mcae.Estimate_List_Price__c * 12; |
| | | ai.orgPrice = prd[0].Maintenance_Price_Month__c; |
| | | ai.mcae.EquipmentGuaranteeFlgTxt__c = prd[0].EquipmentGuaranteeFlg__c; |
| | | ai.etGFlg = prd[0].EquipmentGuaranteeFlg__c; |
| | | //add by rentx 2020-11-12 LJPH-BV93RZ start |
| | | ai.proName = prd[0].Name; |
| | | //add by rentx 2020-11-12 LJPH-BV93RZ end |
| | | // add by fxk 2021/9/9 控制点检对象是否可选 Star |
| | | ai.CheckRows = false; |
| | | // add by fxk 2021/9/9 控制点检对象是否可选 End |
| | | //add by mzy 2021-02-04 LJPH-BX9CVX start |
| | | //ai.NoPartRiskDate = prd[0].NoPartRiskDate_F__c; |
| | | //ai.proName2 = prd[0].Name; |
| | | //ai.SignableFlag = prd[0].SignableFlag__c; |
| | | //add by mzy 2021-02-04 LJPH-BX9CVX end |
| | | } |
| | | } |
| | | } |
| | | } |
| | | // HWAG-BA73ZP |
| | | //contractStartDateChange(); |
| | | // HWAG-BA73ZP |
| | | //contractStartDateChange(); |
| | | } |
| | | |
| | | /** |
| | | * 選択済み/未選択製品の置き換え |
| | | */ |
| | | public PageReference exchangeAsset() { |
| | | System.debug('exchangeAsset start'); |
| | | Date systemToday = System.today(); |
| | | List<AssetInfo> tmpChecked = new List<AssetInfo>(); |
| | | List<AssetInfo> tmpNewRows = new List<AssetInfo>(); |
| | | List<AssetInfo> tmpUnChecked = new List<AssetInfo>(); |
| | | List<Data> datatemp = new List<Data>(); |
| | | datatemp = getChartData(); |
| | | for (AssetInfo ass : this.checkedAssets) { |
| | | if (ass.isManual) { |
| | | tmpNewRows.add(ass); |
| | | } else if (ass.rec_checkBox_c) { |
| | | tmpChecked.add(ass); |
| | | } else { |
| | | ass.mcae = null; |
| | | tmpUnChecked.add(ass); |
| | | totalRecords++; |
| | | } |
| | | } |
| | | for (AssetInfo ass : this.unCheckedAssets) { |
| | | Boolean isNew = false; |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk Star |
| | | boolean isCheck = true; |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk End |
| | | Decimal listPrice = ass.rec.Maintenance_Price_Month__c; |
| | | if (ass.rec_checkBox_c) { |
| | | //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , 'unCheckedAssets ' )); |
| | | // xudan 20160110 新品判断ここ要らない、contractStartDateChangeがやる |
| | | // if (systemToday.addMonths(-6) < ass.rec.InstallDate) { |
| | | // if (estimate.Contract_Esti_Start_Date__c.addMonths(isNewAddMonth) < ass.rec.InstallDate) { |
| | | // Date createdDate = estimate.CreatedDate == null ? systemToday : estimate.CreatedDate.date(); |
| | | // if (createdDate.addMonths(isNewAddMonth) < ass.rec.InstallDate) { |
| | | // isNew = true; |
| | | // listPrice = ass.rec.Maintenance_Price_Month__c * isNewPriceAdj; |
| | | // } |
| | | Maintenance_Contract_Asset_Estimate__c mcae = new Maintenance_Contract_Asset_Estimate__c( |
| | | isNew__c = isNew, |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk Star |
| | | Check_Object__c = isCheck, |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk end |
| | | Estimate_List_Price__c = listPrice, |
| | | EquipmentGuaranteeFlgTxt__c = ass.rec.EquipmentGuaranteeFlg__c |
| | | ); |
| | | ass.mcae = mcae; |
| | | // 计算上下线调整比例 |
| | | if (!getPageDisabled()) { |
| | | // 取当前月第一天 |
| | | Date mon1stDate = Date.newInstance(Date.today().year(), Date.today().month(), 1); |
| | | mcae.LastMContract_Price__c = ass.rec.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c == null ? mcae.LastMContract_Price__c : ass.rec.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c; |
| | | if (ass.rec.CurrentContract_F__r.First_Estimate_Date__c != null && ass.rec.CurrentContract_F__r.Estimate_Contract_endDate__c > mon1stDate) { |
| | | mcae.Asset_Consumption_rate__c = ass.rec.CurrentContract_F__r.First_contract_usage_Rate__c == null ? mcae.Asset_Consumption_rate__c : ass.rec.CurrentContract_F__r.First_contract_usage_Rate__c; |
| | | System.debug('exchangeAsset start'); |
| | | Date systemToday = System.today(); |
| | | List<AssetInfo> tmpChecked = new List<AssetInfo>(); |
| | | List<AssetInfo> tmpNewRows = new List<AssetInfo>(); |
| | | List<AssetInfo> tmpUnChecked = new List<AssetInfo>(); |
| | | List<Data> datatemp = new List<Data>(); |
| | | datatemp = getChartData(); |
| | | for (AssetInfo ass : this.checkedAssets) { |
| | | if (ass.isManual) { |
| | | tmpNewRows.add(ass); |
| | | } else if (ass.rec_checkBox_c) { |
| | | tmpChecked.add(ass); |
| | | } else { |
| | | mcae.Asset_Consumption_rate__c = ass.rec.CurrentContract_F__r.Contract_Consumption_rate__c == null ? mcae.Asset_Consumption_rate__c : ass.rec.CurrentContract_F__r.Contract_Consumption_rate__c; |
| | | ass.mcae = null; |
| | | tmpUnChecked.add(ass); |
| | | totalRecords++; |
| | | } |
| | | if (String.isNotBlank(String.valueOf(mcae.Asset_Consumption_rate__c))) { |
| | | for (Data da : datatemp) { |
| | | if (String.isBlank(String.valueOf(da.rate_Lower)) && mcae.Asset_Consumption_rate__c < da.rate_Upper) { |
| | | mcae.Adjustment_ratio_Lower__c = da.price_Lower; |
| | | mcae.Adjustment_ratio_Upper__c = da.price_Upper; |
| | | continue; |
| | | } else if (mcae.Asset_Consumption_rate__c >= da.rate_Lower && String.isBlank(String.valueOf(da.rate_Upper))) { |
| | | mcae.Adjustment_ratio_Lower__c = da.price_Lower; |
| | | mcae.Adjustment_ratio_Upper__c = da.price_Upper; |
| | | continue; |
| | | } else if (mcae.Asset_Consumption_rate__c >= da.rate_Lower |
| | | && mcae.Asset_Consumption_rate__c < da.rate_Upper) { |
| | | mcae.Adjustment_ratio_Lower__c = da.price_Lower; |
| | | mcae.Adjustment_ratio_Upper__c = da.price_Upper; |
| | | continue; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | tmpChecked.add(ass); |
| | | totalRecords--; |
| | | } else { |
| | | ass.mcae = null; |
| | | tmpUnChecked.add(ass); |
| | | } |
| | | } |
| | | for (AssetInfo ass : this.unCheckedAssets) { |
| | | Boolean isNew = false; |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk Star |
| | | boolean isCheck = true; |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk End |
| | | Decimal listPrice = ass.rec.Maintenance_Price_Month__c; |
| | | if (ass.rec_checkBox_c) { |
| | | //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , 'unCheckedAssets ' )); |
| | | // xudan 20160110 新品判断ここ要らない、contractStartDateChangeがやる |
| | | // if (systemToday.addMonths(-6) < ass.rec.InstallDate) { |
| | | // if (estimate.Contract_Esti_Start_Date__c.addMonths(isNewAddMonth) < ass.rec.InstallDate) { |
| | | // Date createdDate = estimate.CreatedDate == null ? systemToday : estimate.CreatedDate.date(); |
| | | // if (createdDate.addMonths(isNewAddMonth) < ass.rec.InstallDate) { |
| | | // isNew = true; |
| | | // listPrice = ass.rec.Maintenance_Price_Month__c * isNewPriceAdj; |
| | | // } |
| | | Maintenance_Contract_Asset_Estimate__c mcae = new Maintenance_Contract_Asset_Estimate__c( |
| | | isNew__c = isNew, |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk Star |
| | | Check_Object__c = isCheck, |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk end |
| | | Estimate_List_Price__c = listPrice, |
| | | EquipmentGuaranteeFlgTxt__c = ass.rec.EquipmentGuaranteeFlg__c |
| | | ); |
| | | ass.mcae = mcae; |
| | | // 计算上下线调整比例 |
| | | if (!getPageDisabled()) { |
| | | // 取当前月第一天 |
| | | Date mon1stDate = Date.newInstance(Date.today().year(), Date.today().month(), 1); |
| | | mcae.LastMContract_Price__c = ass.rec.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c == null ? mcae.LastMContract_Price__c : ass.rec.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c; |
| | | if (ass.rec.CurrentContract_F__r.First_Estimate_Date__c != null && ass.rec.CurrentContract_F__r.Estimate_Contract_endDate__c > mon1stDate) { |
| | | mcae.Asset_Consumption_rate__c = ass.rec.CurrentContract_F__r.First_contract_usage_Rate__c == null ? mcae.Asset_Consumption_rate__c : ass.rec.CurrentContract_F__r.First_contract_usage_Rate__c; |
| | | } else { |
| | | mcae.Asset_Consumption_rate__c = ass.rec.CurrentContract_F__r.Contract_Consumption_rate__c == null ? mcae.Asset_Consumption_rate__c : ass.rec.CurrentContract_F__r.Contract_Consumption_rate__c; |
| | | } |
| | | if (String.isNotBlank(String.valueOf(mcae.Asset_Consumption_rate__c))) { |
| | | for (Data da : datatemp) { |
| | | if (String.isBlank(String.valueOf(da.rate_Lower)) && mcae.Asset_Consumption_rate__c < da.rate_Upper) { |
| | | mcae.Adjustment_ratio_Lower__c = da.price_Lower; |
| | | mcae.Adjustment_ratio_Upper__c = da.price_Upper; |
| | | continue; |
| | | } else if (mcae.Asset_Consumption_rate__c >= da.rate_Lower && String.isBlank(String.valueOf(da.rate_Upper))) { |
| | | mcae.Adjustment_ratio_Lower__c = da.price_Lower; |
| | | mcae.Adjustment_ratio_Upper__c = da.price_Upper; |
| | | continue; |
| | | } else if (mcae.Asset_Consumption_rate__c >= da.rate_Lower |
| | | && mcae.Asset_Consumption_rate__c < da.rate_Upper) { |
| | | mcae.Adjustment_ratio_Lower__c = da.price_Lower; |
| | | mcae.Adjustment_ratio_Upper__c = da.price_Upper; |
| | | continue; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | this.checkedAssets = new List<AssetInfo>(); |
| | | for (AssetInfo ass : tmpChecked) { |
| | | ass.lineNo = this.checkedAssets.size(); |
| | | this.checkedAssets.add(ass); |
| | | } |
| | | for (AssetInfo ass : tmpNewRows) { |
| | | ass.lineNo = this.checkedAssets.size(); |
| | | this.checkedAssets.add(ass); |
| | | } |
| | | this.unCheckedAssets = new List<AssetInfo>(); |
| | | this.unCheckedAssets.addAll(tmpUnChecked); |
| | | |
| | | totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0); |
| | | this.setPageRecord(); |
| | | |
| | | //listCut(unCheckedAssets); |
| | | // 根据合同开始日重新计算维修合同价格 |
| | | //contractStartDateChange(); |
| | | return null; |
| | | tmpChecked.add(ass); |
| | | totalRecords--; |
| | | } else { |
| | | ass.mcae = null; |
| | | tmpUnChecked.add(ass); |
| | | } |
| | | } |
| | | |
| | | this.checkedAssets = new List<AssetInfo>(); |
| | | for (AssetInfo ass : tmpChecked) { |
| | | ass.lineNo = this.checkedAssets.size(); |
| | | this.checkedAssets.add(ass); |
| | | } |
| | | for (AssetInfo ass : tmpNewRows) { |
| | | ass.lineNo = this.checkedAssets.size(); |
| | | this.checkedAssets.add(ass); |
| | | } |
| | | this.unCheckedAssets = new List<AssetInfo>(); |
| | | this.unCheckedAssets.addAll(tmpUnChecked); |
| | | |
| | | totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0); |
| | | this.setPageRecord(); |
| | | |
| | | //listCut(unCheckedAssets); |
| | | // 根据合同开始日重新计算维修合同价格 |
| | | //contractStartDateChange(); |
| | | return null; |
| | | } |
| | | |
| | | // 合同开始日变更,重新计算新品 |
| | |
| | | * 保存メソッド |
| | | */ |
| | | public PageReference save() { |
| | | System.debug('save start'); |
| | | //add by rentx 2020-11-13 LJPH-BV93RZ start |
| | | if (estimate.Contract_Range__c == null) { |
| | | this.estimate.Contract_Range__c.addError('必须输入合同月数!'); |
| | | return null; |
| | | } |
| | | //add by rentx 2020-11-13 LJPH-BV93RZ end |
| | | System.debug('save start'); |
| | | //add by rentx 2020-11-13 LJPH-BV93RZ start |
| | | if (estimate.Contract_Range__c == null) { |
| | | this.estimate.Contract_Range__c.addError('必须输入合同月数!'); |
| | | return null; |
| | | } |
| | | //add by rentx 2020-11-13 LJPH-BV93RZ end |
| | | |
| | | |
| | | Id vmMaintenance_Contract = Schema.SObjectType.Maintenance_Contract_Estimate__c.getRecordTypeInfosByDeveloperName().get('NewMaintenance_Quote').getRecordTypeId(); |
| | | estimate.recordtypeid = vmMaintenance_Contract; |
| | | if (changedSubmitPrice) { |
| | | priceChangeReset(); |
| | | Id vmMaintenance_Contract = Schema.SObjectType.Maintenance_Contract_Estimate__c.getRecordTypeInfosByDeveloperName().get('NewMaintenance_Quote').getRecordTypeId(); |
| | | estimate.recordtypeid = vmMaintenance_Contract; |
| | | if (changedSubmitPrice) { |
| | | priceChangeReset(); |
| | | return null; |
| | | } |
| | | if (syncEstimate(false, false)) { |
| | | ComputeLTYRepair(); |
| | | //return null; |
| | | return new PageReference('/' + this.targetEstimateId + '/e?completion=5'); |
| | | } |
| | | return null; |
| | | } |
| | | if (syncEstimate(false, false)) { |
| | | ComputeLTYRepair(); |
| | | //return null; |
| | | return new PageReference('/' + this.targetEstimateId + '/e?completion=5'); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * 印刷メソッド、decide前は保有設備、decide後は合同配置 |
| | | */ |
| | | public void print() { |
| | | System.debug('print start'); |
| | | this.printAsset = false; |
| | | this.printContract = false; |
| | | this.printTripartite = false; |
| | | this.printAgent = false; |
| | | this.estimate.PrintDate__c = Date.today(); |
| | | //SelectAssetEstimateVMController.ComputeLTYRepair(targetEstimateId); |
| | | if (this.estimate.Quote_Date__c == null) { |
| | | this.estimate.Quote_Date__c = Date.today(); |
| | | } |
| | | |
| | | |
| | | |
| | | if (this.estimate.Print_Tripartite__c && this.estimate.Print_Agent__c) { |
| | | ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '不能同时选中三方协议和代理商合同!')); |
| | | } else |
| | | |
| | | |
| | | // 保存ボタンできない場合、印刷ボタンはフラグのみ保存 |
| | | if (this.getSaveBtnDisabled()) { |
| | | if (savePrintFlg()) { |
| | | // 2018/10/26 HWAG-B5C88S 原来打印逻辑 start |
| | | /*if (this.estimate.Print_Contract__c && !this.estimate.Print_Tripartite__c && !this.estimate.Print_Agent__c) { |
| | | // 打印医院合同配置 |
| | | this.printContract = true; |
| | | } else if(this.estimate.Print_Tripartite__c && !this.estimate.Print_Agent__c){ |
| | | //打印三方合同 |
| | | this.printTripartite = true; |
| | | } else if(!this.estimate.Print_Tripartite__c && this.estimate.Print_Agent__c){ |
| | | //打印经销商合同 |
| | | this.printAgent = true; |
| | | }else{ |
| | | // 打印保有設備 |
| | | this.printAsset = true; |
| | | }*/ |
| | | // 2018/10/26 HWAG-B5C88S 原来打印逻辑 end |
| | | // 2018/10/26 HWAG-B5C88S start 选择三方打印三方,否则decide前打印保有设备,decide后根据报价对象打印医院或经销商合同 |
| | | if (this.estimate.Print_Tripartite__c ) { |
| | | //打印三方合同 |
| | | this.printTripartite = true; |
| | | } else if (!this.estimate.Estimation_Decision__c) { |
| | | this.printAsset = true; |
| | | |
| | | } else if (this.estimate.Estimate_Target__c != null && this.estimate.Estimate_Target__c.equals('医院')) { |
| | | this.printContract = true; |
| | | |
| | | } else if (this.estimate.Estimate_Target__c != null && this.estimate.Estimate_Target__c.equals('经销商')) { |
| | | this.printAgent = true; |
| | | } |
| | | // 2018/10/26 HWAG-B5C88S end |
| | | System.debug('print start'); |
| | | this.printAsset = false; |
| | | this.printContract = false; |
| | | this.printTripartite = false; |
| | | this.printAgent = false; |
| | | this.estimate.PrintDate__c = Date.today(); |
| | | //SelectAssetEstimateVMController.ComputeLTYRepair(targetEstimateId); |
| | | if (this.estimate.Quote_Date__c == null) { |
| | | this.estimate.Quote_Date__c = Date.today(); |
| | | } |
| | | } |
| | | // 保存ボタンできる場合、印刷ボタンは全部保存 |
| | | else { |
| | | if (syncEstimate(false, false)) { |
| | | // 2018/10/26 HWAG-B5C88S 原来打印逻辑 start |
| | | /* |
| | | if (this.estimate.Print_Contract__c && !this.estimate.Print_Tripartite__c && !this.estimate.Print_Agent__c) { |
| | | // 打印医院合同配置 |
| | | this.printContract = true; |
| | | } else if(this.estimate.Print_Tripartite__c && !this.estimate.Print_Agent__c){ |
| | | //打印三方合同 |
| | | this.printTripartite = true; |
| | | } else if(!this.estimate.Print_Tripartite__c && this.estimate.Print_Agent__c){ |
| | | //打印经销商合同 |
| | | this.printAgent = true; |
| | | }else{ |
| | | // 打印保有設備 |
| | | this.printAsset = true; |
| | | } |
| | | */ |
| | | // 2018/10/26 HWAG-B5C88S 原来打印逻辑 end |
| | | // 2018/10/26 HWAG-B5C88S start 选择三方打印三方,否则decide前打印保有设备,decide后根据报价对象打印医院或经销商合同 |
| | | if (this.estimate.Print_Tripartite__c ) { |
| | | //打印三方合同 |
| | | this.printTripartite = true; |
| | | } else if (!this.estimate.Estimation_Decision__c) { |
| | | this.printAsset = true; |
| | | |
| | | } else if (this.estimate.Estimate_Target__c != null && this.estimate.Estimate_Target__c.equals('医院')) { |
| | | this.printContract = true; |
| | | |
| | | } else if (this.estimate.Estimate_Target__c != null && this.estimate.Estimate_Target__c.equals('经销商')) { |
| | | this.printAgent = true; |
| | | } |
| | | // 2018/10/26 HWAG-B5C88S end |
| | | |
| | | if (this.estimate.Print_Tripartite__c && this.estimate.Print_Agent__c) { |
| | | ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '不能同时选中三方协议和代理商合同!')); |
| | | } else |
| | | |
| | | |
| | | // 保存ボタンできない場合、印刷ボタンはフラグのみ保存 |
| | | if (this.getSaveBtnDisabled()) { |
| | | if (savePrintFlg()) { |
| | | // 2018/10/26 HWAG-B5C88S 原来打印逻辑 start |
| | | /*if (this.estimate.Print_Contract__c && !this.estimate.Print_Tripartite__c && !this.estimate.Print_Agent__c) { |
| | | // 打印医院合同配置 |
| | | this.printContract = true; |
| | | } else if(this.estimate.Print_Tripartite__c && !this.estimate.Print_Agent__c){ |
| | | //打印三方合同 |
| | | this.printTripartite = true; |
| | | } else if(!this.estimate.Print_Tripartite__c && this.estimate.Print_Agent__c){ |
| | | //打印经销商合同 |
| | | this.printAgent = true; |
| | | }else{ |
| | | // 打印保有設備 |
| | | this.printAsset = true; |
| | | }*/ |
| | | // 2018/10/26 HWAG-B5C88S 原来打印逻辑 end |
| | | // 2018/10/26 HWAG-B5C88S start 选择三方打印三方,否则decide前打印保有设备,decide后根据报价对象打印医院或经销商合同 |
| | | if (this.estimate.Print_Tripartite__c ) { |
| | | //打印三方合同 |
| | | this.printTripartite = true; |
| | | } else if (!this.estimate.Estimation_Decision__c) { |
| | | this.printAsset = true; |
| | | |
| | | } else if (this.estimate.Estimate_Target__c != null && this.estimate.Estimate_Target__c.equals('医院')) { |
| | | this.printContract = true; |
| | | |
| | | } else if (this.estimate.Estimate_Target__c != null && this.estimate.Estimate_Target__c.equals('经销商')) { |
| | | this.printAgent = true; |
| | | } |
| | | // 2018/10/26 HWAG-B5C88S end |
| | | } |
| | | } |
| | | } |
| | | //ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '合同'+this.printContract +'三方'+this.printTripartite+'保有'+this.printAsset+'经销商合同'+this.printAgent)); |
| | | // 保存ボタンできる場合、印刷ボタンは全部保存 |
| | | else { |
| | | if (syncEstimate(false, false)) { |
| | | // 2018/10/26 HWAG-B5C88S 原来打印逻辑 start |
| | | /* |
| | | if (this.estimate.Print_Contract__c && !this.estimate.Print_Tripartite__c && !this.estimate.Print_Agent__c) { |
| | | // 打印医院合同配置 |
| | | this.printContract = true; |
| | | } else if(this.estimate.Print_Tripartite__c && !this.estimate.Print_Agent__c){ |
| | | //打印三方合同 |
| | | this.printTripartite = true; |
| | | } else if(!this.estimate.Print_Tripartite__c && this.estimate.Print_Agent__c){ |
| | | //打印经销商合同 |
| | | this.printAgent = true; |
| | | }else{ |
| | | // 打印保有設備 |
| | | this.printAsset = true; |
| | | } |
| | | */ |
| | | // 2018/10/26 HWAG-B5C88S 原来打印逻辑 end |
| | | // 2018/10/26 HWAG-B5C88S start 选择三方打印三方,否则decide前打印保有设备,decide后根据报价对象打印医院或经销商合同 |
| | | if (this.estimate.Print_Tripartite__c ) { |
| | | //打印三方合同 |
| | | this.printTripartite = true; |
| | | } else if (!this.estimate.Estimation_Decision__c) { |
| | | this.printAsset = true; |
| | | |
| | | } else if (this.estimate.Estimate_Target__c != null && this.estimate.Estimate_Target__c.equals('医院')) { |
| | | this.printContract = true; |
| | | |
| | | } else if (this.estimate.Estimate_Target__c != null && this.estimate.Estimate_Target__c.equals('经销商')) { |
| | | this.printAgent = true; |
| | | } |
| | | // 2018/10/26 HWAG-B5C88S end |
| | | } |
| | | } |
| | | //ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '合同'+this.printContract +'三方'+this.printTripartite+'保有'+this.printAsset+'经销商合同'+this.printAgent)); |
| | | } |
| | | |
| | | /** |
| | |
| | | public PageReference approvalProcess() { |
| | | |
| | | |
| | | Id vmMaintenance_Contract = Schema.SObjectType.Maintenance_Contract_Estimate__c.getRecordTypeInfosByDeveloperName().get('NewMaintenance_Quote').getRecordTypeId(); |
| | | estimate.recordtypeid = vmMaintenance_Contract; |
| | | Id vmMaintenance_Contract = Schema.SObjectType.Maintenance_Contract_Estimate__c.getRecordTypeInfosByDeveloperName().get('NewMaintenance_Quote').getRecordTypeId(); |
| | | estimate.recordtypeid = vmMaintenance_Contract; |
| | | |
| | | // Date systemToday = System.today(); |
| | | // // 创建日/提交日 |
| | | // Date createdDate = systemToday; |
| | | // // 创建日6个月 |
| | | // Date isNewAfter = createdDate.addMonths(-isNewAddMonth); |
| | | // // 合同开始预定日 |
| | | // Date contractEstiDate = estimate.Contract_Esti_Start_Date__c == null ? systemToday : estimate.Contract_Esti_Start_Date__c; |
| | | // for (AssetInfo info : checkedAssets) { |
| | | // // 合同预定开始日 大于提交日6个月,都不算新品 20200218 Gzw 服务合同对应 |
| | | // //ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, 'contractEstiDate '+ contractEstiDate +'isNewAfter '+isNewAfter)); |
| | | // if (contractEstiDate >= isNewAfter) { |
| | | // if (!info.isManual) { |
| | | // info.mcae.isNew__c = false; |
| | | // info.mcae.Estimate_List_Price__c = info.orgPrice; |
| | | // } else if (info.isManual && !String.isBlank(info.mcae.Product_Manual__c)) { |
| | | // info.mcae.isNew__c = false; |
| | | // info.mcae.Estimate_List_Price__c = info.orgPrice; |
| | | // } |
| | | // } |
| | | // } |
| | | // Date systemToday = System.today(); |
| | | // // 创建日/提交日 |
| | | // Date createdDate = systemToday; |
| | | // // 创建日6个月 |
| | | // Date isNewAfter = createdDate.addMonths(-isNewAddMonth); |
| | | // // 合同开始预定日 |
| | | // Date contractEstiDate = estimate.Contract_Esti_Start_Date__c == null ? systemToday : estimate.Contract_Esti_Start_Date__c; |
| | | // for (AssetInfo info : checkedAssets) { |
| | | // // 合同预定开始日 大于提交日6个月,都不算新品 20200218 Gzw 服务合同对应 |
| | | // //ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, 'contractEstiDate '+ contractEstiDate +'isNewAfter '+isNewAfter)); |
| | | // if (contractEstiDate >= isNewAfter) { |
| | | // if (!info.isManual) { |
| | | // info.mcae.isNew__c = false; |
| | | // info.mcae.Estimate_List_Price__c = info.orgPrice; |
| | | // } else if (info.isManual && !String.isBlank(info.mcae.Product_Manual__c)) { |
| | | // info.mcae.isNew__c = false; |
| | | // info.mcae.Estimate_List_Price__c = info.orgPrice; |
| | | // } |
| | | // } |
| | | // } |
| | | |
| | | if (changedSubmitPrice) { |
| | | priceChangeReset(); |
| | | return null; |
| | | } |
| | | |
| | | |
| | | if (syncEstimate(true, false)) { |
| | | Savepoint sp = Database.setSavepoint(); |
| | | // 承認プロセスに載せる |
| | | try { |
| | | |
| | | // 已填写申请状态 |
| | | this.estimate.ApprovalProcess_Status__c = '已填写完并申请'; |
| | | ControllerUtil.updateMaintenance_Contract_Estimate(new Maintenance_Contract_Estimate__c[] {this.estimate}); |
| | | // 承認プロセス |
| | | Approval.ProcessSubmitRequest psr = new Approval.ProcessSubmitRequest(); |
| | | psr.setObjectId(this.estimate.id); |
| | | Approval.ProcessResult submitResult = Approval.process(psr); |
| | | ComputeLTYRepair(); |
| | | if (changedAfterPrint) { |
| | | return new PageReference('/' + this.targetEstimateId); |
| | | //return new PageReference('/' + this.targetEstimateId + '/e?completion=1'); |
| | | } else { |
| | | return new PageReference('/' + this.targetEstimateId); |
| | | //return new PageReference('/' + this.targetEstimateId + '/e?completion=2'); |
| | | } |
| | | } catch (Exception ex) { |
| | | System.debug('=====Exception:' + ex.getMessage()); |
| | | Database.rollback(sp); |
| | | this.estimate.ApprovalProcess_Status__c = null; |
| | | ApexPages.addMessages(ex); |
| | | if (changedSubmitPrice) { |
| | | priceChangeReset(); |
| | | return null; |
| | | } |
| | | } |
| | | return null; |
| | | |
| | | |
| | | if (syncEstimate(true, false)) { |
| | | Savepoint sp = Database.setSavepoint(); |
| | | // 承認プロセスに載せる |
| | | try { |
| | | |
| | | // 已填写申请状态 |
| | | this.estimate.ApprovalProcess_Status__c = '已填写完并申请'; |
| | | ControllerUtil.updateMaintenance_Contract_Estimate(new Maintenance_Contract_Estimate__c[] {this.estimate}); |
| | | // 承認プロセス |
| | | Approval.ProcessSubmitRequest psr = new Approval.ProcessSubmitRequest(); |
| | | psr.setObjectId(this.estimate.id); |
| | | Approval.ProcessResult submitResult = Approval.process(psr); |
| | | ComputeLTYRepair(); |
| | | if (changedAfterPrint) { |
| | | return new PageReference('/' + this.targetEstimateId); |
| | | //return new PageReference('/' + this.targetEstimateId + '/e?completion=1'); |
| | | } else { |
| | | return new PageReference('/' + this.targetEstimateId); |
| | | //return new PageReference('/' + this.targetEstimateId + '/e?completion=2'); |
| | | } |
| | | } catch (Exception ex) { |
| | | System.debug('=====Exception:' + ex.getMessage()); |
| | | Database.rollback(sp); |
| | | this.estimate.ApprovalProcess_Status__c = null; |
| | | ApexPages.addMessages(ex); |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | |
| | | public PageReference undecide() { |
| | | |
| | | |
| | | System.debug('undecide start'); |
| | | this.estimate.Estimation_Decision__c = false; |
| | | this.estimate.Print_Contract__c = false; |
| | | System.debug('undecide start'); |
| | | this.estimate.Estimation_Decision__c = false; |
| | | this.estimate.Print_Contract__c = false; |
| | | |
| | | //清空报价批准时间 |
| | | this.estimate.Quotation_Determines_Time__c = null; |
| | | //清空报价批准时间 |
| | | this.estimate.Quotation_Determines_Time__c = null; |
| | | |
| | | try { |
| | | ControllerUtil.updateMaintenance_Contract_Estimate(new Maintenance_Contract_Estimate__c[] {this.estimate}); |
| | | return new PageReference('/' + this.targetEstimateId + '/e?completion=1'); |
| | | } catch (Exception ex) { |
| | | ApexPages.addMessages(ex); |
| | | } |
| | | return null; |
| | | try { |
| | | ControllerUtil.updateMaintenance_Contract_Estimate(new Maintenance_Contract_Estimate__c[] {this.estimate}); |
| | | return new PageReference('/' + this.targetEstimateId + '/e?completion=1'); |
| | | } catch (Exception ex) { |
| | | ApexPages.addMessages(ex); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * 決定メソッド |
| | | */ |
| | | public PageReference decide() { |
| | | System.debug('decide start'); |
| | | inDicideFlag = true; |
| | | // TODO check decide 资格 |
| | | Savepoint sp = Database.setSavepoint(); |
| | | // gzw cputimeout 报错添加 20210729 start |
| | | Oly_TriggerHandler.bypass('AssetHandler'); |
| | | StaticParameter.EscapeVMCTrigger = true; |
| | | // gzw cputimeout 报错添加 20210729 end |
| | | if (syncEstimate(false, true)) { |
| | | //提交 报价决定日期 |
| | | this.estimate.Quotation_Determines_Time__c = date.today(); |
| | | System.debug('decide start'); |
| | | inDicideFlag = true; |
| | | // TODO check decide 资格 |
| | | Savepoint sp = Database.setSavepoint(); |
| | | // gzw cputimeout 报错添加 20210729 start |
| | | Oly_TriggerHandler.bypass('AssetHandler'); |
| | | StaticParameter.EscapeVMCTrigger = true; |
| | | // gzw cputimeout 报错添加 20210729 end |
| | | if (syncEstimate(false, true)) { |
| | | //提交 报价决定日期 |
| | | this.estimate.Quotation_Determines_Time__c = date.today(); |
| | | |
| | | if (changedAfterPrint) { |
| | | return new PageReference('/' + this.targetEstimateId + '/e?completion=1'); |
| | | } else { |
| | | return new PageReference('/' + this.targetEstimateId + '/e?completion=3'); |
| | | if (changedAfterPrint) { |
| | | return new PageReference('/' + this.targetEstimateId + '/e?completion=1'); |
| | | } else { |
| | | return new PageReference('/' + this.targetEstimateId + '/e?completion=3'); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return null; |
| | | return null; |
| | | } |
| | | |
| | | public PageReference decideCancle() { |
| | | |
| | | return new PageReference('/' + this.targetEstimateId + '/e?completion=4'); |
| | | return new PageReference('/' + this.targetEstimateId + '/e?completion=4'); |
| | | |
| | | } |
| | | |
| | |
| | | */ |
| | | |
| | | private void setApprovalManager() { |
| | | User loginUser = [SELECT Id, Name, JingliApprovalManager__c, BuchangApprovalManager__c, ZongjianApprovalManager__c, TongkuoZongjian__c FROM User WHERE Id = :UserInfo.getUserId()]; |
| | | // 要注意 SaveMaintenanceByCopyController と copyのurlにも、下記の項目もクリア |
| | | this.estimate.JingliApprovalManager__c = loginUser.JingliApprovalManager__c == null ? loginUser.Id : loginUser.JingliApprovalManager__c; |
| | | this.estimate.BuchangApprovalManager__c = loginUser.BuchangApprovalManager__c == null ? loginUser.Id : loginUser.BuchangApprovalManager__c; |
| | | this.estimate.ZongjianApprovalManager__c = loginUser.ZongjianApprovalManager__c == null ? loginUser.Id : loginUser.ZongjianApprovalManager__c; |
| | | this.estimate.Service_Contract_Staff__c = this.contract.Service_Contract_Staff__c; |
| | | this.estimate.TKZongjianApprovalManager__c = loginUser.TongkuoZongjian__c == null ? loginUser.Id : loginUser.TongkuoZongjian__c; |
| | | User loginUser = [SELECT Id, Name, JingliApprovalManager__c, BuchangApprovalManager__c, ZongjianApprovalManager__c, TongkuoZongjian__c FROM User WHERE Id = :UserInfo.getUserId()]; |
| | | // 要注意 SaveMaintenanceByCopyController と copyのurlにも、下記の項目もクリア |
| | | this.estimate.JingliApprovalManager__c = loginUser.JingliApprovalManager__c == null ? loginUser.Id : loginUser.JingliApprovalManager__c; |
| | | this.estimate.BuchangApprovalManager__c = loginUser.BuchangApprovalManager__c == null ? loginUser.Id : loginUser.BuchangApprovalManager__c; |
| | | this.estimate.ZongjianApprovalManager__c = loginUser.ZongjianApprovalManager__c == null ? loginUser.Id : loginUser.ZongjianApprovalManager__c; |
| | | this.estimate.Service_Contract_Staff__c = this.contract.Service_Contract_Staff__c; |
| | | this.estimate.TKZongjianApprovalManager__c = loginUser.TongkuoZongjian__c == null ? loginUser.Id : loginUser.TongkuoZongjian__c; |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @TestVisible |
| | | private Boolean savePrintFlg() { |
| | | try { |
| | | Maintenance_Contract_Estimate__c mce = new Maintenance_Contract_Estimate__c(); |
| | | mce.Id = this.targetEstimateId; |
| | | //打印报价(简化版) 2019/12/18 start |
| | | mce.Print_Simplify__c = this.estimate.Print_Simplify__c; |
| | | //打印报价(简化版) 2019/12/18 end |
| | | mce.Print_ListPrice__c = this.estimate.Print_ListPrice__c; |
| | | mce.Print_RepairPrice__c = this.estimate.Print_RepairPrice__c; |
| | | mce.Print_SumPrice__c = this.estimate.Print_SumPrice__c; |
| | | mce.Print_DiscountPercentage__c = this.estimate.Print_DiscountPercentage__c; |
| | | mce.Print_DiscountPrice__c = this.estimate.Print_DiscountPrice__c; |
| | | mce.Print_MaintePrice__c = this.estimate.Print_MaintePrice__c; |
| | | mce.Print_Contract__c = this.estimate.Print_Contract__c; |
| | | try { |
| | | Maintenance_Contract_Estimate__c mce = new Maintenance_Contract_Estimate__c(); |
| | | mce.Id = this.targetEstimateId; |
| | | //打印报价(简化版) 2019/12/18 start |
| | | mce.Print_Simplify__c = this.estimate.Print_Simplify__c; |
| | | //打印报价(简化版) 2019/12/18 end |
| | | mce.Print_ListPrice__c = this.estimate.Print_ListPrice__c; |
| | | mce.Print_RepairPrice__c = this.estimate.Print_RepairPrice__c; |
| | | mce.Print_SumPrice__c = this.estimate.Print_SumPrice__c; |
| | | mce.Print_DiscountPercentage__c = this.estimate.Print_DiscountPercentage__c; |
| | | mce.Print_DiscountPrice__c = this.estimate.Print_DiscountPrice__c; |
| | | mce.Print_MaintePrice__c = this.estimate.Print_MaintePrice__c; |
| | | mce.Print_Contract__c = this.estimate.Print_Contract__c; |
| | | |
| | | ControllerUtil.updateMaintenance_Contract_Estimate(new Maintenance_Contract_Estimate__c[] {mce}); |
| | | return true; |
| | | } catch (Exception ex) { |
| | | ApexPages.addMessages(ex); |
| | | } |
| | | return false; |
| | | ControllerUtil.updateMaintenance_Contract_Estimate(new Maintenance_Contract_Estimate__c[] {mce}); |
| | | return true; |
| | | } catch (Exception ex) { |
| | | ApexPages.addMessages(ex); |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | /** |
| | |
| | | // TODO xudan チェック追加、clsにも合計金額を計算、clsの合計金額と画面からjsの合計金額を比較 |
| | | // 異なる場合、保存完了したらwarningを出す |
| | | public Boolean syncEstimate(boolean isApproval, boolean isDecide) { |
| | | System.debug('syncEstimate start'); |
| | | Boolean hasDatabaseError = false; |
| | | Savepoint sp = Database.setSavepoint(); |
| | | System.debug('syncEstimate start'); |
| | | Boolean hasDatabaseError = false; |
| | | Savepoint sp = Database.setSavepoint(); |
| | | |
| | | //bug修复 |
| | | //提交 报价决定日期 |
| | | // this.estimate.Quotation_Determines_Time__c = date.today(); |
| | | //bug修复 |
| | | //提交 报价决定日期 |
| | | // this.estimate.Quotation_Determines_Time__c = date.today(); |
| | | |
| | | try { |
| | | if (!checkValidate()) { |
| | | return false; |
| | | } |
| | | if (checkChangedAfterPrint()) { |
| | | if (isDecide) { |
| | | // まず Approval |
| | | isApproval = true; |
| | | isDecide = false; |
| | | } |
| | | } |
| | | // 验证 开始日期,最早允许制定日之前半年 |
| | | Date createdDate = this.estimate.CreatedDate == null ? System.today() : this.estimate.CreatedDate.date(); |
| | | createdDate = createdDate.addMonths(isNewAddMonth); |
| | | // if (estimate.Contract_Start_Date__c < createdDate) { |
| | | // this.estimate.Contract_Start_Date__c.addError('合同开始日最早允许追溯制定日之前半年'); |
| | | // return false; |
| | | // } |
| | | // 验证 用户类型,必填 |
| | | if (String.isBlank(estimate.EndUserType__c) ) { |
| | | this.estimate.EndUserType__c.addError('请选择用户类型!'); |
| | | return false; |
| | | } |
| | | // 验证 申请报价金额,需要大于0 |
| | | if (estimate.Request_quotation_Amount__c <= 0 || estimate.Request_quotation_Amount__c == null) { |
| | | this.estimate.Request_quotation_Amount__c.addError('申请报价金额必需大于0'); |
| | | return false; |
| | | } |
| | | // fxk 改报错位置 2021、9、9 Star |
| | | if (estimate.Request_quotation_Amount__c > estimate.GuidePrice_Up__c || estimate.Request_quotation_Amount__c < estimate.GuidePrice_Down__c) { |
| | | if (!(this.estimate.mainTalksTime__c > 0)) { |
| | | this.estimate.mainTalksTime__c.addError('主要谈判次数必填'); |
| | | return false; |
| | | } |
| | | |
| | | if (this.estimate.talksStartDate__c == null) { |
| | | this.estimate.talksStartDate__c.addError('谈判的开始时间必填'); |
| | | return false; |
| | | } |
| | | |
| | | if (String.isBlank(this.estimate.Discount_reason__c)) { |
| | | this.estimate.Discount_reason__c.addError('价格申请理由必填'); |
| | | return false; |
| | | } |
| | | if (String.isBlank(this.estimate.Improve_ConsumptionRate_Idea__c)) { |
| | | this.estimate.Improve_ConsumptionRate_Idea__c.addError('消费率改善方案必填'); |
| | | return false; |
| | | } |
| | | } |
| | | //fxk 改报错位置 2021/9/9 end |
| | | //>>> |
| | | if (isApproval || isDecide) { |
| | | Boolean hasError = false; |
| | | if (this.estimate.Maintenance_Price__c <= 0) { |
| | | this.estimate.Maintenance_Price__c.addError('合同价格必需大于0'); |
| | | hasError = true; |
| | | } |
| | | /*for (AssetInfo input : this.checkedAssets) { |
| | | if (!input.isManual || input.isManual && !String.isBlank(input.mcae.Product_Manual__c)) { |
| | | if (String.isBlank(input.mcae.Check_Result__c)) { |
| | | input.mcae.Check_Result__c.addError('点检结果必填'); |
| | | hasError = true; |
| | | } |
| | | } |
| | | }*/ |
| | | // if (this.estimate.Discount_Price__c > 0 && String.isBlank(this.estimate.Discount_reason__c)) { |
| | | // this.estimate.Discount_reason__c.addError('减价申请理由必填'); |
| | | // hasError = true; |
| | | // } |
| | | // if (this.estimate.Discount_Price__c > 0 && String.isBlank(this.estimate.Improve_ConsumptionRate_Idea__c)) { |
| | | // this.estimate.Improve_ConsumptionRate_Idea__c.addError('消费率改善方案必填'); |
| | | // hasError = true; |
| | | // } |
| | | if (hasError) { |
| | | return false; |
| | | } |
| | | } |
| | | System.debug('验证规则条件验证1: ' + '主要谈判次数 ' + estimate.mainTalksTime__c + '谈判的开始时间 ' + estimate.talksStartDate__c + '价格申请理由 ' + estimate.Discount_reason__c + '消费率改善方案 ' + estimate.Improve_ConsumptionRate_Idea__c); |
| | | System.debug('验证规则条件验证2: ' + '申请报价金额 ' + estimate.Request_quotation_Amount__c); |
| | | System.debug('验证规则条件验证3: ' + '最低价 ' + estimate.GuidePrice_Down__c + '最高价 ' + estimate.GuidePrice_Up__c); |
| | | if (isDecide && getDecideBtnDisabled()) { |
| | | ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '已经是Decide过的合同 或 不是批准的报价,不能Decide')); |
| | | return false; |
| | | } |
| | | |
| | | // 追加上期合同信息 start |
| | | // 2021-09-10 tcm 排序逻辑调整 start |
| | | List<lastMContract> lastMContractRes; |
| | | if (isDecide) { |
| | | system.debug('执行了tcm isDecide'); |
| | | lastMContractRes = getlastMContract(this.checkedAssets,this.estimate.Contract_Start_Date__c); |
| | | } else{ |
| | | system.debug('执行了tcm NODecide'); |
| | | lastMContractRes = getlastMContract(this.checkedAssets,this.estimate.Contract_Esti_Start_Date__c); |
| | | } |
| | | this.estimate.LastMContract1__c = lastMContractRes[0].contractId; |
| | | this.estimate.LastMContract1_NO__c = lastMContractRes[0].contractNo; |
| | | this.estimate.LastMContract1_ConCount__c = lastMContractRes[0].count; |
| | | |
| | | this.estimate.LastMContract2__c = lastMContractRes[1].contractId; |
| | | this.estimate.LastMContract2_NO__c = lastMContractRes[1].contractNo; |
| | | this.estimate.LastMContract2_ConCount__c = lastMContractRes[1].count; |
| | | |
| | | this.estimate.LastMContract3__c = lastMContractRes[2].contractId; |
| | | this.estimate.LastMContract3_NO__c = lastMContractRes[2].contractNo; |
| | | this.estimate.LastMContract3_ConCount__c = lastMContractRes[2].count; |
| | | |
| | | this.estimate.LastMContract4__c = lastMContractRes[3].contractId; |
| | | this.estimate.LastMContract4_NO__c = lastMContractRes[3].contractNo; |
| | | this.estimate.LastMContract4_ConCount__c = lastMContractRes[3].count; |
| | | |
| | | this.estimate.LastMContract5__c = lastMContractRes[4].contractId; |
| | | this.estimate.LastMContract5_NO__c = lastMContractRes[4].contractNo; |
| | | this.estimate.LastMContract5_ConCount__c = lastMContractRes[4].count; |
| | | |
| | | |
| | | // 原方法 |
| | | // List<lastMContract> lastMContractRes = getlastMContract(this.checkedAssets, this.estimate.Contract_Start_Date__c); |
| | | // // ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, 'lastMContractRes +++++!' + lastMContractRes)); |
| | | // // if (true) { |
| | | // // return false; |
| | | // // } |
| | | |
| | | // this.estimate.LastMContract1__c = lastMContractRes[0].contractId; |
| | | // this.estimate.LastMContract1_NO__c = lastMContractRes[0].contractNo; |
| | | // this.estimate.LastMContract1_ConCount__c = lastMContractRes[0].count; |
| | | |
| | | // this.estimate.LastMContract2__c = lastMContractRes[1].contractId; |
| | | // this.estimate.LastMContract2_NO__c = lastMContractRes[1].contractNo; |
| | | // this.estimate.LastMContract2_ConCount__c = lastMContractRes[1].count; |
| | | |
| | | // this.estimate.LastMContract3__c = lastMContractRes[2].contractId; |
| | | // this.estimate.LastMContract3_NO__c = lastMContractRes[2].contractNo; |
| | | // this.estimate.LastMContract3_ConCount__c = lastMContractRes[2].count; |
| | | |
| | | // this.estimate.LastMContract4__c = lastMContractRes[3].contractId; |
| | | // this.estimate.LastMContract4_NO__c = lastMContractRes[3].contractNo; |
| | | // this.estimate.LastMContract4_ConCount__c = lastMContractRes[3].count; |
| | | |
| | | // this.estimate.LastMContract5__c = lastMContractRes[4].contractId; |
| | | // this.estimate.LastMContract5_NO__c = lastMContractRes[4].contractNo; |
| | | // this.estimate.LastMContract5_ConCount__c = lastMContractRes[4].count; |
| | | // 2021-09-10 tcm 排序逻辑调整 start |
| | | |
| | | // 追加上期合同信息 end |
| | | |
| | | |
| | | |
| | | // 同期処理 |
| | | // ①维修合同に既存の保有设备を削除 |
| | | // ②保存した维修合同报价の保有设备を维修合同にコピー(Asset__cが設定さているデータだけ) |
| | | // ③他の维修合同报价の同期フラグを外す |
| | | // ④维修合同の Estimate_Trial_Money__c、Contract_Amount__c, Service_contract_target_number__c を更新 |
| | | this.estimate.IsSyncing__c = true; |
| | | if (isDecide) { |
| | | // 20200923 Gzw bug 修改 |
| | | //清空报价批准时间 |
| | | this.estimate.Quotation_Determines_Time__c = Date.today(); |
| | | this.estimate.Estimation_Decision__c = true; |
| | | } |
| | | // TODO validate |
| | | |
| | | // TODO validate check新品チェック(納品日で判断) |
| | | |
| | | // save |
| | | // ③ start |
| | | for (List<Maintenance_Contract_Estimate__c> otherEstimates : [select Id from Maintenance_Contract_Estimate__c where Id <> :this.estimate.Id |
| | | and Maintenance_Contract__c = :this.contract.Id |
| | | and IsSyncing__c = true]) { |
| | | for (Maintenance_Contract_Estimate__c other : otherEstimates) { |
| | | other.IsSyncing__c = false; |
| | | if (isDecide) { |
| | | other.Estimation_Decision__c = false; |
| | | } |
| | | } |
| | | ControllerUtil.updateMaintenance_Contract_Estimate(otherEstimates); |
| | | } |
| | | |
| | | // 合同结束预定日を算出 |
| | | Date t = this.estimate.Contract_Esti_Start_Date__c.addMonths(Integer.valueOf(this.estimate.Contract_Range__c)); |
| | | // 20151217 xudan 维修合同报价SH-RS-JS0046560-01 期间显示问题 |
| | | // うるう年特殊対応 |
| | | if (this.estimate.Contract_Esti_Start_Date__c.month() == 2 && this.estimate.Contract_Esti_Start_Date__c.day() == 29 |
| | | && t.month() == 2) { |
| | | t = t; |
| | | } else { |
| | | t = t.addDays(-1); |
| | | } |
| | | this.estimate.Contract_Esti_End_Date__c = t; |
| | | // decide 时,跳过赋值 JZHG-BRH5MU 20200715 start |
| | | if (!isDecide) { |
| | | this.estimate.New_Contract_Type_TxT__c = typeresult; |
| | | } |
| | | // decide 时,跳过赋值 JZHG-BRH5MU 20200715 end |
| | | // 合同开始日を结束日 |
| | | if (this.estimate.Contract_Start_Date__c == null) { |
| | | this.estimate.Contract_Start_Date__c = this.estimate.Contract_Esti_Start_Date__c; |
| | | } |
| | | t = this.estimate.Contract_Start_Date__c.addMonths(Integer.valueOf(this.estimate.Contract_Range__c)); |
| | | t = t.addDays(-1); |
| | | this.estimate.Contract_End_Date__c = t; |
| | | // 位置调整 在1951 line |
| | | // Date createdDate = this.estimate.CreatedDate == null ? System.today() : this.estimate.CreatedDate.date(); |
| | | // 3ヶ月超過している場合には、Decideできない |
| | | //if (createdDate.addMonths(3) <= System.today()) { |
| | | // this.estimate.addError('已超过3个月,请先更新报价。'); |
| | | // return false; |
| | | //} |
| | | // 维修合同报价 |
| | | // ApexPages.addMessage(new ApexPages.message(ApexPages.severity.Error, 'this.targetEstimateId ++++++ ' + this.targetEstimateId)); |
| | | // if (true) { |
| | | // return false; |
| | | // } |
| | | if (String.isBlank(this.targetEstimateId)) { |
| | | newIns = true; |
| | | this.estimate.Process_Status__c = '草案中'; |
| | | // nameに番号をセット |
| | | List<Maintenance_Contract_Estimate__c> maxNameRecords = [select Name From Maintenance_Contract_Estimate__c Where Maintenance_Contract__c = :this.contract.Id order by Name desc limit 1]; |
| | | String oppNo; |
| | | Integer l = 1; |
| | | if (maxNameRecords.size() > 0) { |
| | | try { |
| | | oppNo = maxNameRecords[0].Name; |
| | | l = Integer.valueOf(oppNo.substring(oppNo.length() - 2)) + 1; |
| | | } catch (System.TypeException e) { |
| | | System.debug('maxNameRecords Error: Maintenance_Contract__c.id=' + maxNameRecords[0].id); |
| | | } |
| | | } else { |
| | | System.debug('first Maintenance_Contract_Estimate__c'); |
| | | } |
| | | oppNo = '00' + String.valueof(l); |
| | | oppNo = oppNo.substring(oppNo.length() - 2); |
| | | this.estimate.Name = this.contract.Management_Code__c + '-' + oppNo; |
| | | setApprovalManager(); |
| | | System.debug('Process_Status__c=' + this.estimate.Process_Status__c); |
| | | insert this.estimate; |
| | | this.targetEstimateId = this.estimate.Id; |
| | | setThisEstimate(); |
| | | } else { |
| | | if (isApproval) { |
| | | setApprovalManager(); |
| | | } |
| | | ControllerUtil.updateMaintenance_Contract_Estimate(new Maintenance_Contract_Estimate__c[] {this.estimate}); |
| | | } |
| | | // 维修合同报价/保有设备 |
| | | // delete and insertする |
| | | List<Maintenance_Contract_Asset_Estimate__c> insertTarget = new List<Maintenance_Contract_Asset_Estimate__c>(); |
| | | // 是否使用首次报价日更新 |
| | | // 需要注意对报价提交日+3个月与合同结束日进行比较 |
| | | // 1)报价提交日+3个月的日期,小于合同结束日时,以合同结束日作为报价有效期的结束日 |
| | | // 2)报价提交日+3个月的日期,大于合同结束日时,报价提交日+3个月的日期作为报价有效期的结束日 |
| | | // |
| | | // |
| | | // 因为月初计算消费率,所以结束日在上月或以前,可以取到完整消费率,否则保存首次报价日 |
| | | Date toDate = Date.today(); |
| | | Date mon1stDate = Date.newInstance(toDate.year(), toDate.month(), 1); |
| | | // list 修改 map |
| | | Map<id, Maintenance_Contract__c> mcList = new Map<id, Maintenance_Contract__c>(); |
| | | for (AssetInfo input : this.checkedAssets) { |
| | | if (!input.isManual || input.isManual && !String.isBlank(input.mcae.Product_Manual__c)) { |
| | | //Maintenance_Contract_Asset_Estimate__c mcae = new Maintenance_Contract_Asset_Estimate__c(); |
| | | input.mcae.Id = null; // insertのため |
| | | // 同じの場合設定しない |
| | | if (input.mcae.Maintenance_Contract_Estimate__c != this.targetEstimateId) { |
| | | // 親変更できない可能性があるため、設定するときエラーになるが、エラーにならないように他のロジックを工夫してください。 |
| | | input.mcae.Maintenance_Contract_Estimate__c = this.targetEstimateId; |
| | | } |
| | | input.mcae.Maintenance_Price_Month__c = input.rec.Maintenance_Price_Month__c; |
| | | // 病院に所属する保有設備 |
| | | |
| | | if (!input.isManual) { |
| | | input.mcae.Asset__c = input.rec.Id; |
| | | input.mcae.Product_Manual__c = null; |
| | | input.mcae.Estimate_Cost__c = input.mcae.Estimate_Cost__c; |
| | | input.mcae.LastMContract_Price__c = input.rec.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c; |
| | | //input.mcae.Asset_Consumption_rate__c = input.mcae.Asset_Consumption_rate__c; |
| | | } |
| | | // 提交时,更新 是否使用上一期维修合同首次报价日 |
| | | if (isApproval) { |
| | | Maintenance_Contract__c mctemp = new Maintenance_Contract__c(); |
| | | //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , '+++++ ' + ass.rec.CurrentContract_F__r.Contract_End_Date__c + ' ' + mon1stDate)); |
| | | // 因为月初计算消费率,所以结束日在上月或以前,可以取到完整消费率,否则保存首次报价日 |
| | | if (input.rec.CurrentContract_F__r.Contract_End_Date__c >= mon1stDate) { |
| | | if (input.rec.CurrentContract_F__r.First_Estimate_Date__c == null) { |
| | | mctemp.Id = input.rec.CurrentContract_F__c; |
| | | mctemp.First_contract_usage_Rate__c = input.rec.CurrentContract_F__r.Contract_Consumption_rate__c; |
| | | mctemp.First_Estimate_Date__c = Date.today(); |
| | | mcList.put(mctemp.Id, mctemp); |
| | | input.mcae.ifHaveleftInPrevious__c = true; |
| | | } |
| | | } |
| | | } |
| | | // Manual商品 |
| | | if (input.isManual && !String.isBlank(input.mcae.Product_Manual__c)) { |
| | | input.mcae.Asset__c = null; |
| | | //mcae.Product_Manual__c = input.mcae.Product_Manual__c; |
| | | } |
| | | //新规时,保存新合同备品保证提供 Decide 后 |
| | | if (!isDecide) { |
| | | input.mcae.EquipmentGuaranteeFlgTxt__c = input.etGFlg; |
| | | } |
| | | // Gzw 20200807 五个去年合同相关,所以报价产品,获取上期合同 start |
| | | |
| | | // 2020/10/30 songxiaoqi start |
| | | if (input.rec.CurrentContract_F__r.RecordType_DeveloperName__c != 'VM_Contract') { |
| | | input.mcae.Last_MContract__c = input.rec.CurrentContract_F__c; |
| | | |
| | | } |
| | | //songxiaoqi end |
| | | |
| | | |
| | | // Gzw 20200807 五个去年合同相关,所以报价产品,获取上期合同 end |
| | | //mcae.Estimate_List_Price__c = input.mcae.Estimate_List_Price__c; |
| | | //mcae.IsNew__c = input.mcae.isNew__c; |
| | | //mcae.Check_Result__c = input.mcae.Check_Result__c; |
| | | //mcae.Repair_Price__c = input.mcae.Repair_Price__c; |
| | | //mcae.Comment__c = input.mcae.Comment__c; |
| | | insertTarget.add(input.mcae); |
| | | } |
| | | } |
| | | // 本当に保存した納入機器があれば削除 |
| | | List<Maintenance_Contract_Asset_Estimate__c> selectedAsset = [SELECT Id, Name, Maintenance_Contract_Estimate__c, Asset__c, IsNew__c FROM Maintenance_Contract_Asset_Estimate__c WHERE Maintenance_Contract_Estimate__c = :this.targetEstimateId]; |
| | | if (selectedAsset.size() > 0) { |
| | | ControllerUtil.deleteMaintenance_Contract_Asset_Estimate(selectedAsset); |
| | | } |
| | | if (insertTarget.size() > 0) { |
| | | ControllerUtil.insertMaintenance_Contract_Asset_Estimate(insertTarget); |
| | | } |
| | | |
| | | // ① start |
| | | for (List<Maintenance_Contract_Asset__c> oldList : [select Id from Maintenance_Contract_Asset__c |
| | | where Maintenance_Contract__c = :this.estimate.Maintenance_Contract__c]) { |
| | | delete oldList; |
| | | } |
| | | // ② start |
| | | { |
| | | List<Maintenance_Contract_Asset__c> newValue = new List<Maintenance_Contract_Asset__c>(); |
| | | for (Maintenance_Contract_Asset_Estimate__c target : [select Id, Asset__c, Estimate_List_Price__c, Estimate_Cost__c, |
| | | //add 点检改善:合同保有设备下的点检对象与报价保有设备下的点检对象同步 2021.6.9 fxk start |
| | | Check_Object__c, |
| | | //add 点检改善:合同保有设备下的点检对象与报价保有设备下的点检对象同步 2021.6.9 fxk end |
| | | IsNew__c, EquipmentGuaranteeFlgTxt__c, |
| | | // Gzw 20200807 五个去年合同相关,所以报价产品,获取上期合同 start |
| | | Last_MContract__c |
| | | // Gzw 20200807 五个去年合同相关,所以报价产品,获取上期合同 eng |
| | | , Last_MContract__r.RecordType_DeveloperName__c |
| | | // LJPH-C9GD34 gzw fix start |
| | | ,Estimate_List_Price_Page__c |
| | | // LJPH-C9GD34 gzw fix end |
| | | from Maintenance_Contract_Asset_Estimate__c |
| | | where Maintenance_Contract_Estimate__c = :this.estimate.Id and Asset__c <> null]) { |
| | | |
| | | Maintenance_Contract_Asset__c newVal = new Maintenance_Contract_Asset__c( |
| | | Maintenance_Contract__c = this.estimate.Maintenance_Contract__c, |
| | | Asset__c = target.Asset__c, |
| | | Maintenance_Contract_Asset_Estimate__c = target.Id, |
| | | Estimate_List_Price__c = target.Estimate_List_Price__c, |
| | | //Maintenance_Price_YearTXT__c = target.Maintenance_Price_YearTXT__c, |
| | | Estimate_IsNew__c = target.IsNew__c, |
| | | //add 点检改善:合同保有设备下的点检对象与报价保有设备下的点检对象同步 2021.6.9 fxk start |
| | | Check_Object__c = target.Check_Object__c, |
| | | //add 点检改善:合同保有设备下的点检对象与报价保有设备下的点检对象同步 2021.6.9 fxk end |
| | | //EquipmentGuaranteeFlgTxt__c = target.EquipmentGuaranteeFlgTxt__c, |
| | | // Gzw 20200807 五个去年合同相关,所以报价产品,获取上期合同 start |
| | | // LastMContract__c = target.Last_MContract__c |
| | | // Gzw 20200807 五个去年合同相关,所以报价产品,获取上期合同 end |
| | | //如果是多年保修合同,不更新上期维修合同信息 LJPH-BUU3E3 update by rentx 2020-11-03 |
| | | LastMContract__c = target.Last_MContract__r.RecordType_DeveloperName__c == 'VM_Contract' ? null : target.Last_MContract__c |
| | | ); |
| | | newValue.add(newVal); |
| | | } |
| | | if (newValue.size() > 0) insert newValue; |
| | | } |
| | | // ④ start |
| | | this.contract.Estimation_Id__c = this.targetEstimateId; |
| | | this.contract.Contract_Esti_Start_Date__c = this.estimate.Contract_Esti_Start_Date__c; |
| | | this.contract.Contract_Range__c = this.estimate.Contract_Range__c; |
| | | this.contract.Contract_Esti_End_Date__c = this.estimate.Contract_Esti_End_Date__c; |
| | | this.contract.Estimate_Target__c = this.estimate.Estimate_Target__c; |
| | | this.contract.Dealer__c = this.estimate.Dealer__c; |
| | | this.contract.NotUse_Oxygenated_Water__c = this.estimate.NotUse_Oxygenated_Water__c; |
| | | this.contract.Estimate_Trial_Money__c = this.estimate.Estimate_Trial_Money__c; |
| | | this.contract.Contract_Amount__c = this.estimate.Maintenance_Price__c; |
| | | // 点检总次数自动赋值 gzw fix 20211122 start |
| | | // this.contract.Service_contract_target_number__c = this.estimate.Service_contract_target_number__c; |
| | | // 点检总次数自动赋值 gzw fix 20211122 end |
| | | this.contract.Contract_department_manual__c = this.estimate.Department__c; |
| | | |
| | | // 追加上期合同信息 start |
| | | this.contract.LastMContract1__c = this.estimate.LastMContract1__c; |
| | | this.contract.LastMContract1_NO__c = this.estimate.LastMContract1_NO__c; |
| | | this.contract.LastMContract1_ConCount__c = this.estimate.LastMContract1_ConCount__c; |
| | | |
| | | //add by rentx 2021-04-22 给合同1赋值的同时,给去年合同赋值 start |
| | | this.contract.Last_year_service_contract__c = this.estimate.LastMContract1__c; |
| | | //add by renrx 2021-04-22 给合同1赋值的同时, 给去年合同赋值 end |
| | | |
| | | this.contract.LastMContract2__c = this.estimate.LastMContract2__c; |
| | | this.contract.LastMContract2_NO__c = this.estimate.LastMContract2_NO__c; |
| | | this.contract.LastMContract2_ConCount__c = this.estimate.LastMContract2_ConCount__c; |
| | | |
| | | this.contract.LastMContract3__c = this.estimate.LastMContract3__c; |
| | | this.contract.LastMContract3_NO__c = this.estimate.LastMContract3_NO__c; |
| | | this.contract.LastMContract3_ConCount__c = this.estimate.LastMContract3_ConCount__c; |
| | | |
| | | this.contract.LastMContract4__c = this.estimate.LastMContract4__c; |
| | | this.contract.LastMContract4_NO__c = this.estimate.LastMContract4_NO__c; |
| | | this.contract.LastMContract4_ConCount__c = this.estimate.LastMContract4_ConCount__c; |
| | | |
| | | this.contract.LastMContract5__c = this.estimate.LastMContract5__c; |
| | | this.contract.LastMContract5_NO__c = this.estimate.LastMContract5_NO__c; |
| | | this.contract.LastMContract5_ConCount__c = this.estimate.LastMContract5_ConCount__c; |
| | | // 追加上期合同信息 end |
| | | |
| | | system.debug('测算isDecide的结果_1::::::::' + isDecide); |
| | | if (isDecide == true) { |
| | | system.debug('测算isDecide的结果_2::::::::' + isDecide); |
| | | // this.contract.Contract_Start_Date__c = this.estimate.Contract_Esti_Start_Date__c; |
| | | this.contract.Contract_Start_Date__c = this.estimate.Contract_Start_Date__c; |
| | | this.contract.Contract_Range__c = this.estimate.Contract_Range__c; |
| | | // this.contract.Contract_End_Date__c = this.estimate.Contract_Esti_End_Date__c; |
| | | this.contract.Contract_End_Date__c = this.estimate.Contract_End_Date__c; |
| | | this.contract.JingliApprovalManager__c = this.estimate.JingliApprovalManager__c; |
| | | this.contract.BuchangApprovalManager__c = this.estimate.BuchangApprovalManager__c; |
| | | this.contract.ZongjianApprovalManager__c = this.estimate.ZongjianApprovalManager__c; |
| | | this.contract.Finally_Approved_Staff__c = this.estimate.Finally_Approved_Staff__c; |
| | | this.contract.TKZongjianApprovalManager__c = this.estimate.TKZongjianApprovalManager__c; |
| | | // JZHG-BQV3P4 20200624 Gzw add |
| | | this.contract.HospitalAmountText__c = this.estimate.AgencyHos_Price__c; |
| | | // JZHG-BQV3P4 20200624 Gzw add |
| | | } |
| | | //添加的额外对应过程 |
| | | if (inDicideFlag == true && (this.contract.Contract_Start_Date__c == null || this.contract.Contract_End_Date__c == null)) { |
| | | system.debug('测算inDicideFlag的结果_2::::::::' + isDecide); |
| | | // this.contract.Contract_Start_Date__c = this.estimate.Contract_Esti_Start_Date__c; |
| | | this.contract.Contract_Start_Date__c = this.estimate.Contract_Start_Date__c; |
| | | this.contract.Contract_Range__c = this.estimate.Contract_Range__c; |
| | | // this.contract.Contract_End_Date__c = this.estimate.Contract_Esti_End_Date__c; |
| | | this.contract.Contract_End_Date__c = this.estimate.Contract_End_Date__c; |
| | | this.contract.JingliApprovalManager__c = this.estimate.JingliApprovalManager__c; |
| | | this.contract.BuchangApprovalManager__c = this.estimate.BuchangApprovalManager__c; |
| | | this.contract.ZongjianApprovalManager__c = this.estimate.ZongjianApprovalManager__c; |
| | | this.contract.Finally_Approved_Staff__c = this.estimate.Finally_Approved_Staff__c; |
| | | this.contract.TKZongjianApprovalManager__c = this.estimate.TKZongjianApprovalManager__c; |
| | | // JZHG-BQV3P4 20200624 Gzw add |
| | | this.contract.HospitalAmountText__c = this.estimate.AgencyHos_Price__c; |
| | | // JZHG-BQV3P4 20200624 Gzw add |
| | | } |
| | | String oldProcessStatus = this.estimate.Process_Status__c; |
| | | try { |
| | | if (mcList.size() > 0) { |
| | | ControllerUtil.updMcList(mcList.values()); |
| | | } |
| | | ControllerUtil.updateMaintenance_Contract_Estimate(new Maintenance_Contract_Estimate__c[] {this.estimate}); |
| | | update this.contract; |
| | | } catch (Exception e) { |
| | | // TODO 今後複数件の場合どうする? |
| | | this.estimate.addError(e); |
| | | // 一部の値を戻す |
| | | this.estimate.Process_Status__c = oldProcessStatus; |
| | | hasDatabaseError = true; |
| | | Database.rollback(sp); |
| | | ApexPages.addMessages(e); |
| | | if (!checkValidate()) { |
| | | return false; |
| | | } |
| | | if (checkChangedAfterPrint()) { |
| | | if (isDecide) { |
| | | // まず Approval |
| | | isApproval = true; |
| | | isDecide = false; |
| | | } |
| | | } |
| | | // 验证 开始日期,最早允许制定日之前半年 |
| | | Date createdDate = this.estimate.CreatedDate == null ? System.today() : this.estimate.CreatedDate.date(); |
| | | createdDate = createdDate.addMonths(isNewAddMonth); |
| | | // if (estimate.Contract_Start_Date__c < createdDate) { |
| | | // this.estimate.Contract_Start_Date__c.addError('合同开始日最早允许追溯制定日之前半年'); |
| | | // return false; |
| | | // } |
| | | // 验证 用户类型,必填 |
| | | if (String.isBlank(estimate.EndUserType__c) ) { |
| | | this.estimate.EndUserType__c.addError('请选择用户类型!'); |
| | | return false; |
| | | } |
| | | // 验证 申请报价金额,需要大于0 |
| | | if (estimate.Request_quotation_Amount__c <= 0 || estimate.Request_quotation_Amount__c == null) { |
| | | this.estimate.Request_quotation_Amount__c.addError('申请报价金额必需大于0'); |
| | | return false; |
| | | } |
| | | // fxk 改报错位置 2021、9、9 Star |
| | | if (estimate.Request_quotation_Amount__c > estimate.GuidePrice_Up__c || estimate.Request_quotation_Amount__c < estimate.GuidePrice_Down__c) { |
| | | if (!(this.estimate.mainTalksTime__c > 0)) { |
| | | this.estimate.mainTalksTime__c.addError('主要谈判次数必填'); |
| | | return false; |
| | | } |
| | | |
| | | if (this.estimate.talksStartDate__c == null) { |
| | | this.estimate.talksStartDate__c.addError('谈判的开始时间必填'); |
| | | return false; |
| | | } |
| | | |
| | | if (String.isBlank(this.estimate.Discount_reason__c)) { |
| | | this.estimate.Discount_reason__c.addError('价格申请理由必填'); |
| | | return false; |
| | | } |
| | | if (String.isBlank(this.estimate.Improve_ConsumptionRate_Idea__c)) { |
| | | this.estimate.Improve_ConsumptionRate_Idea__c.addError('消费率改善方案必填'); |
| | | return false; |
| | | } |
| | | } |
| | | //fxk 改报错位置 2021/9/9 end |
| | | //>>> |
| | | if (isApproval || isDecide) { |
| | | Boolean hasError = false; |
| | | if (this.estimate.Maintenance_Price__c <= 0) { |
| | | this.estimate.Maintenance_Price__c.addError('合同价格必需大于0'); |
| | | hasError = true; |
| | | } |
| | | /*for (AssetInfo input : this.checkedAssets) { |
| | | if (!input.isManual || input.isManual && !String.isBlank(input.mcae.Product_Manual__c)) { |
| | | if (String.isBlank(input.mcae.Check_Result__c)) { |
| | | input.mcae.Check_Result__c.addError('点检结果必填'); |
| | | hasError = true; |
| | | } |
| | | } |
| | | }*/ |
| | | // if (this.estimate.Discount_Price__c > 0 && String.isBlank(this.estimate.Discount_reason__c)) { |
| | | // this.estimate.Discount_reason__c.addError('减价申请理由必填'); |
| | | // hasError = true; |
| | | // } |
| | | // if (this.estimate.Discount_Price__c > 0 && String.isBlank(this.estimate.Improve_ConsumptionRate_Idea__c)) { |
| | | // this.estimate.Improve_ConsumptionRate_Idea__c.addError('消费率改善方案必填'); |
| | | // hasError = true; |
| | | // } |
| | | if (hasError) { |
| | | return false; |
| | | } |
| | | } |
| | | System.debug('验证规则条件验证1: ' + '主要谈判次数 ' + estimate.mainTalksTime__c + '谈判的开始时间 ' + estimate.talksStartDate__c + '价格申请理由 ' + estimate.Discount_reason__c + '消费率改善方案 ' + estimate.Improve_ConsumptionRate_Idea__c); |
| | | System.debug('验证规则条件验证2: ' + '申请报价金额 ' + estimate.Request_quotation_Amount__c); |
| | | System.debug('验证规则条件验证3: ' + '最低价 ' + estimate.GuidePrice_Down__c + '最高价 ' + estimate.GuidePrice_Up__c); |
| | | if (isDecide && getDecideBtnDisabled()) { |
| | | ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '已经是Decide过的合同 或 不是批准的报价,不能Decide')); |
| | | return false; |
| | | } |
| | | |
| | | // 追加上期合同信息 start |
| | | // 2021-09-10 tcm 排序逻辑调整 start |
| | | List<lastMContract> lastMContractRes; |
| | | if (isDecide) { |
| | | system.debug('执行了tcm isDecide'); |
| | | lastMContractRes = getlastMContract(this.checkedAssets,this.estimate.Contract_Start_Date__c); |
| | | } else{ |
| | | system.debug('执行了tcm NODecide'); |
| | | lastMContractRes = getlastMContract(this.checkedAssets,this.estimate.Contract_Esti_Start_Date__c); |
| | | } |
| | | this.estimate.LastMContract1__c = lastMContractRes[0].contractId; |
| | | this.estimate.LastMContract1_NO__c = lastMContractRes[0].contractNo; |
| | | this.estimate.LastMContract1_ConCount__c = lastMContractRes[0].count; |
| | | |
| | | this.estimate.LastMContract2__c = lastMContractRes[1].contractId; |
| | | this.estimate.LastMContract2_NO__c = lastMContractRes[1].contractNo; |
| | | this.estimate.LastMContract2_ConCount__c = lastMContractRes[1].count; |
| | | |
| | | this.estimate.LastMContract3__c = lastMContractRes[2].contractId; |
| | | this.estimate.LastMContract3_NO__c = lastMContractRes[2].contractNo; |
| | | this.estimate.LastMContract3_ConCount__c = lastMContractRes[2].count; |
| | | |
| | | this.estimate.LastMContract4__c = lastMContractRes[3].contractId; |
| | | this.estimate.LastMContract4_NO__c = lastMContractRes[3].contractNo; |
| | | this.estimate.LastMContract4_ConCount__c = lastMContractRes[3].count; |
| | | |
| | | this.estimate.LastMContract5__c = lastMContractRes[4].contractId; |
| | | this.estimate.LastMContract5_NO__c = lastMContractRes[4].contractNo; |
| | | this.estimate.LastMContract5_ConCount__c = lastMContractRes[4].count; |
| | | |
| | | |
| | | // 原方法 |
| | | // List<lastMContract> lastMContractRes = getlastMContract(this.checkedAssets, this.estimate.Contract_Start_Date__c); |
| | | // // ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, 'lastMContractRes +++++!' + lastMContractRes)); |
| | | // // if (true) { |
| | | // // return false; |
| | | // // } |
| | | |
| | | // this.estimate.LastMContract1__c = lastMContractRes[0].contractId; |
| | | // this.estimate.LastMContract1_NO__c = lastMContractRes[0].contractNo; |
| | | // this.estimate.LastMContract1_ConCount__c = lastMContractRes[0].count; |
| | | |
| | | // this.estimate.LastMContract2__c = lastMContractRes[1].contractId; |
| | | // this.estimate.LastMContract2_NO__c = lastMContractRes[1].contractNo; |
| | | // this.estimate.LastMContract2_ConCount__c = lastMContractRes[1].count; |
| | | |
| | | // this.estimate.LastMContract3__c = lastMContractRes[2].contractId; |
| | | // this.estimate.LastMContract3_NO__c = lastMContractRes[2].contractNo; |
| | | // this.estimate.LastMContract3_ConCount__c = lastMContractRes[2].count; |
| | | |
| | | // this.estimate.LastMContract4__c = lastMContractRes[3].contractId; |
| | | // this.estimate.LastMContract4_NO__c = lastMContractRes[3].contractNo; |
| | | // this.estimate.LastMContract4_ConCount__c = lastMContractRes[3].count; |
| | | |
| | | // this.estimate.LastMContract5__c = lastMContractRes[4].contractId; |
| | | // this.estimate.LastMContract5_NO__c = lastMContractRes[4].contractNo; |
| | | // this.estimate.LastMContract5_ConCount__c = lastMContractRes[4].count; |
| | | // 2021-09-10 tcm 排序逻辑调整 start |
| | | |
| | | // 追加上期合同信息 end |
| | | |
| | | |
| | | |
| | | // 同期処理 |
| | | // ①维修合同に既存の保有设备を削除 |
| | | // ②保存した维修合同报价の保有设备を维修合同にコピー(Asset__cが設定さているデータだけ) |
| | | // ③他の维修合同报价の同期フラグを外す |
| | | // ④维修合同の Estimate_Trial_Money__c、Contract_Amount__c, Service_contract_target_number__c を更新 |
| | | this.estimate.IsSyncing__c = true; |
| | | if (isDecide) { |
| | | // 20200923 Gzw bug 修改 |
| | | //清空报价批准时间 |
| | | this.estimate.Quotation_Determines_Time__c = Date.today(); |
| | | this.estimate.Estimation_Decision__c = true; |
| | | } |
| | | // TODO validate |
| | | |
| | | // TODO validate check新品チェック(納品日で判断) |
| | | |
| | | // save |
| | | // ③ start |
| | | for (List<Maintenance_Contract_Estimate__c> otherEstimates : [select Id from Maintenance_Contract_Estimate__c where Id <> :this.estimate.Id |
| | | and Maintenance_Contract__c = :this.contract.Id |
| | | and IsSyncing__c = true]) { |
| | | for (Maintenance_Contract_Estimate__c other : otherEstimates) { |
| | | other.IsSyncing__c = false; |
| | | if (isDecide) { |
| | | other.Estimation_Decision__c = false; |
| | | } |
| | | } |
| | | ControllerUtil.updateMaintenance_Contract_Estimate(otherEstimates); |
| | | } |
| | | |
| | | // 合同结束预定日を算出 |
| | | Date t = this.estimate.Contract_Esti_Start_Date__c.addMonths(Integer.valueOf(this.estimate.Contract_Range__c)); |
| | | // 20151217 xudan 维修合同报价SH-RS-JS0046560-01 期间显示问题 |
| | | // うるう年特殊対応 |
| | | if (this.estimate.Contract_Esti_Start_Date__c.month() == 2 && this.estimate.Contract_Esti_Start_Date__c.day() == 29 |
| | | && t.month() == 2) { |
| | | t = t; |
| | | } else { |
| | | t = t.addDays(-1); |
| | | } |
| | | this.estimate.Contract_Esti_End_Date__c = t; |
| | | // decide 时,跳过赋值 JZHG-BRH5MU 20200715 start |
| | | if (!isDecide) { |
| | | this.estimate.New_Contract_Type_TxT__c = typeresult; |
| | | } |
| | | // decide 时,跳过赋值 JZHG-BRH5MU 20200715 end |
| | | // 合同开始日を结束日 |
| | | if (this.estimate.Contract_Start_Date__c == null) { |
| | | this.estimate.Contract_Start_Date__c = this.estimate.Contract_Esti_Start_Date__c; |
| | | } |
| | | t = this.estimate.Contract_Start_Date__c.addMonths(Integer.valueOf(this.estimate.Contract_Range__c)); |
| | | t = t.addDays(-1); |
| | | this.estimate.Contract_End_Date__c = t; |
| | | //提交之后decide之前,经销商变更的话,先款信息以变更后的经销商先款信息执行 thh 20220418 start |
| | | // add wangweipeng 2021/12/26 start |
| | | if(String.isNotBlank(this.estimate.Dealer__c)){ |
| | | checkDealerId = this.estimate.Dealer__c; |
| | | onChDealerUpdate(); |
| | | }else{ |
| | | this.estimate.Is_RecognitionModel__c = false; |
| | | } |
| | | // add wangweipeng 2021/12/26 end |
| | | //提交之后decide之前,经销商变更的话,先款信息以变更后的经销商先款信息执行 thh 20220418 end |
| | | System.debug('---------345----'+this.estimate.Dealer__c+'-------'+this.estimate.Dealer__r.FirstParagraphEnd__c); |
| | | // 位置调整 在1951 line |
| | | // Date createdDate = this.estimate.CreatedDate == null ? System.today() : this.estimate.CreatedDate.date(); |
| | | // 3ヶ月超過している場合には、Decideできない |
| | | //if (createdDate.addMonths(3) <= System.today()) { |
| | | // this.estimate.addError('已超过3个月,请先更新报价。'); |
| | | // return false; |
| | | //} |
| | | // 维修合同报价 |
| | | // ApexPages.addMessage(new ApexPages.message(ApexPages.severity.Error, 'this.targetEstimateId ++++++ ' + this.targetEstimateId)); |
| | | // if (true) { |
| | | // return false; |
| | | // } |
| | | if (String.isBlank(this.targetEstimateId)) { |
| | | newIns = true; |
| | | this.estimate.Process_Status__c = '草案中'; |
| | | // nameに番号をセット |
| | | List<Maintenance_Contract_Estimate__c> maxNameRecords = [select Name From Maintenance_Contract_Estimate__c Where Maintenance_Contract__c = :this.contract.Id order by Name desc limit 1]; |
| | | String oppNo; |
| | | Integer l = 1; |
| | | if (maxNameRecords.size() > 0) { |
| | | try { |
| | | oppNo = maxNameRecords[0].Name; |
| | | l = Integer.valueOf(oppNo.substring(oppNo.length() - 2)) + 1; |
| | | } catch (System.TypeException e) { |
| | | System.debug('maxNameRecords Error: Maintenance_Contract__c.id=' + maxNameRecords[0].id); |
| | | } |
| | | } else { |
| | | System.debug('first Maintenance_Contract_Estimate__c'); |
| | | } |
| | | oppNo = '00' + String.valueof(l); |
| | | oppNo = oppNo.substring(oppNo.length() - 2); |
| | | this.estimate.Name = this.contract.Management_Code__c + '-' + oppNo; |
| | | setApprovalManager(); |
| | | System.debug('Process_Status__c=' + this.estimate.Process_Status__c); |
| | | insert this.estimate; |
| | | this.targetEstimateId = this.estimate.Id; |
| | | setThisEstimate(); |
| | | } else { |
| | | if (isApproval) { |
| | | setApprovalManager(); |
| | | } |
| | | ControllerUtil.updateMaintenance_Contract_Estimate(new Maintenance_Contract_Estimate__c[] {this.estimate}); |
| | | } |
| | | // 维修合同报价/保有设备 |
| | | // delete and insertする |
| | | List<Maintenance_Contract_Asset_Estimate__c> insertTarget = new List<Maintenance_Contract_Asset_Estimate__c>(); |
| | | // 是否使用首次报价日更新 |
| | | // 需要注意对报价提交日+3个月与合同结束日进行比较 |
| | | // 1)报价提交日+3个月的日期,小于合同结束日时,以合同结束日作为报价有效期的结束日 |
| | | // 2)报价提交日+3个月的日期,大于合同结束日时,报价提交日+3个月的日期作为报价有效期的结束日 |
| | | // |
| | | // |
| | | // 因为月初计算消费率,所以结束日在上月或以前,可以取到完整消费率,否则保存首次报价日 |
| | | Date toDate = Date.today(); |
| | | Date mon1stDate = Date.newInstance(toDate.year(), toDate.month(), 1); |
| | | // list 修改 map |
| | | Map<id, Maintenance_Contract__c> mcList = new Map<id, Maintenance_Contract__c>(); |
| | | for (AssetInfo input : this.checkedAssets) { |
| | | if (!input.isManual || input.isManual && !String.isBlank(input.mcae.Product_Manual__c)) { |
| | | //Maintenance_Contract_Asset_Estimate__c mcae = new Maintenance_Contract_Asset_Estimate__c(); |
| | | input.mcae.Id = null; // insertのため |
| | | // 同じの場合設定しない |
| | | if (input.mcae.Maintenance_Contract_Estimate__c != this.targetEstimateId) { |
| | | // 親変更できない可能性があるため、設定するときエラーになるが、エラーにならないように他のロジックを工夫してください。 |
| | | input.mcae.Maintenance_Contract_Estimate__c = this.targetEstimateId; |
| | | } |
| | | input.mcae.Maintenance_Price_Month__c = input.rec.Maintenance_Price_Month__c; |
| | | // 病院に所属する保有設備 |
| | | |
| | | if (!input.isManual) { |
| | | input.mcae.Asset__c = input.rec.Id; |
| | | input.mcae.Product_Manual__c = null; |
| | | input.mcae.Estimate_Cost__c = input.mcae.Estimate_Cost__c; |
| | | input.mcae.LastMContract_Price__c = input.rec.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c; |
| | | //input.mcae.Asset_Consumption_rate__c = input.mcae.Asset_Consumption_rate__c; |
| | | } |
| | | // 提交时,更新 是否使用上一期维修合同首次报价日 |
| | | if (isApproval) { |
| | | Maintenance_Contract__c mctemp = new Maintenance_Contract__c(); |
| | | //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , '+++++ ' + ass.rec.CurrentContract_F__r.Contract_End_Date__c + ' ' + mon1stDate)); |
| | | // 因为月初计算消费率,所以结束日在上月或以前,可以取到完整消费率,否则保存首次报价日 |
| | | if (input.rec.CurrentContract_F__r.Contract_End_Date__c >= mon1stDate) { |
| | | if (input.rec.CurrentContract_F__r.First_Estimate_Date__c == null) { |
| | | mctemp.Id = input.rec.CurrentContract_F__c; |
| | | mctemp.First_contract_usage_Rate__c = input.rec.CurrentContract_F__r.Contract_Consumption_rate__c; |
| | | mctemp.First_Estimate_Date__c = Date.today(); |
| | | mcList.put(mctemp.Id, mctemp); |
| | | input.mcae.ifHaveleftInPrevious__c = true; |
| | | } |
| | | } |
| | | } |
| | | // Manual商品 |
| | | if (input.isManual && !String.isBlank(input.mcae.Product_Manual__c)) { |
| | | input.mcae.Asset__c = null; |
| | | //mcae.Product_Manual__c = input.mcae.Product_Manual__c; |
| | | } |
| | | //新规时,保存新合同备品保证提供 Decide 后 |
| | | if (!isDecide) { |
| | | input.mcae.EquipmentGuaranteeFlgTxt__c = input.etGFlg; |
| | | } |
| | | // Gzw 20200807 五个去年合同相关,所以报价产品,获取上期合同 start |
| | | |
| | | // 2020/10/30 songxiaoqi start |
| | | if (input.rec.CurrentContract_F__r.RecordType_DeveloperName__c != 'VM_Contract') { |
| | | input.mcae.Last_MContract__c = input.rec.CurrentContract_F__c; |
| | | |
| | | } |
| | | //songxiaoqi end |
| | | |
| | | |
| | | // Gzw 20200807 五个去年合同相关,所以报价产品,获取上期合同 end |
| | | //mcae.Estimate_List_Price__c = input.mcae.Estimate_List_Price__c; |
| | | //mcae.IsNew__c = input.mcae.isNew__c; |
| | | //mcae.Check_Result__c = input.mcae.Check_Result__c; |
| | | //mcae.Repair_Price__c = input.mcae.Repair_Price__c; |
| | | //mcae.Comment__c = input.mcae.Comment__c; |
| | | insertTarget.add(input.mcae); |
| | | } |
| | | } |
| | | // 本当に保存した納入機器があれば削除 |
| | | List<Maintenance_Contract_Asset_Estimate__c> selectedAsset = [SELECT Id, Name, Maintenance_Contract_Estimate__c, Asset__c, IsNew__c FROM Maintenance_Contract_Asset_Estimate__c WHERE Maintenance_Contract_Estimate__c = :this.targetEstimateId]; |
| | | if (selectedAsset.size() > 0) { |
| | | ControllerUtil.deleteMaintenance_Contract_Asset_Estimate(selectedAsset); |
| | | } |
| | | if (insertTarget.size() > 0) { |
| | | ControllerUtil.insertMaintenance_Contract_Asset_Estimate(insertTarget); |
| | | } |
| | | |
| | | // ① start |
| | | for (List<Maintenance_Contract_Asset__c> oldList : [select Id from Maintenance_Contract_Asset__c |
| | | where Maintenance_Contract__c = :this.estimate.Maintenance_Contract__c]) { |
| | | delete oldList; |
| | | } |
| | | // ② start |
| | | { |
| | | List<Maintenance_Contract_Asset__c> newValue = new List<Maintenance_Contract_Asset__c>(); |
| | | for (Maintenance_Contract_Asset_Estimate__c target : [select Id, Asset__c, Estimate_List_Price__c, Estimate_Cost__c, |
| | | //add 点检改善:合同保有设备下的点检对象与报价保有设备下的点检对象同步 2021.6.9 fxk start |
| | | Check_Object__c, |
| | | //add 点检改善:合同保有设备下的点检对象与报价保有设备下的点检对象同步 2021.6.9 fxk end |
| | | IsNew__c, EquipmentGuaranteeFlgTxt__c, |
| | | // Gzw 20200807 五个去年合同相关,所以报价产品,获取上期合同 start |
| | | Last_MContract__c |
| | | // Gzw 20200807 五个去年合同相关,所以报价产品,获取上期合同 eng |
| | | , Last_MContract__r.RecordType_DeveloperName__c |
| | | // LJPH-C9GD34 gzw fix start |
| | | ,Estimate_List_Price_Page__c |
| | | // LJPH-C9GD34 gzw fix end |
| | | from Maintenance_Contract_Asset_Estimate__c |
| | | where Maintenance_Contract_Estimate__c = :this.estimate.Id and Asset__c <> null]) { |
| | | |
| | | Maintenance_Contract_Asset__c newVal = new Maintenance_Contract_Asset__c( |
| | | Maintenance_Contract__c = this.estimate.Maintenance_Contract__c, |
| | | Asset__c = target.Asset__c, |
| | | Maintenance_Contract_Asset_Estimate__c = target.Id, |
| | | Estimate_List_Price__c = target.Estimate_List_Price__c, |
| | | //Maintenance_Price_YearTXT__c = target.Maintenance_Price_YearTXT__c, |
| | | Estimate_IsNew__c = target.IsNew__c, |
| | | //add 点检改善:合同保有设备下的点检对象与报价保有设备下的点检对象同步 2021.6.9 fxk start |
| | | Check_Object__c = target.Check_Object__c, |
| | | //add 点检改善:合同保有设备下的点检对象与报价保有设备下的点检对象同步 2021.6.9 fxk end |
| | | //EquipmentGuaranteeFlgTxt__c = target.EquipmentGuaranteeFlgTxt__c, |
| | | // Gzw 20200807 五个去年合同相关,所以报价产品,获取上期合同 start |
| | | // LastMContract__c = target.Last_MContract__c |
| | | // Gzw 20200807 五个去年合同相关,所以报价产品,获取上期合同 end |
| | | //如果是多年保修合同,不更新上期维修合同信息 LJPH-BUU3E3 update by rentx 2020-11-03 |
| | | LastMContract__c = target.Last_MContract__r.RecordType_DeveloperName__c == 'VM_Contract' ? null : target.Last_MContract__c |
| | | ); |
| | | newValue.add(newVal); |
| | | } |
| | | if (newValue.size() > 0) insert newValue; |
| | | } |
| | | // ④ start |
| | | this.contract.Estimation_Id__c = this.targetEstimateId; |
| | | this.contract.Contract_Esti_Start_Date__c = this.estimate.Contract_Esti_Start_Date__c; |
| | | this.contract.Contract_Range__c = this.estimate.Contract_Range__c; |
| | | this.contract.Contract_Esti_End_Date__c = this.estimate.Contract_Esti_End_Date__c; |
| | | this.contract.Estimate_Target__c = this.estimate.Estimate_Target__c; |
| | | this.contract.Dealer__c = this.estimate.Dealer__c; |
| | | this.contract.old_Is_RecognitionModel__c = this.estimate.Is_RecognitionModel__c; |
| | | this.contract.NotUse_Oxygenated_Water__c = this.estimate.NotUse_Oxygenated_Water__c; |
| | | this.contract.Estimate_Trial_Money__c = this.estimate.Estimate_Trial_Money__c; |
| | | this.contract.Contract_Amount__c = this.estimate.Maintenance_Price__c; |
| | | // 点检总次数自动赋值 gzw fix 20211122 start |
| | | // this.contract.Service_contract_target_number__c = this.estimate.Service_contract_target_number__c; |
| | | // 点检总次数自动赋值 gzw fix 20211122 end |
| | | this.contract.Contract_department_manual__c = this.estimate.Department__c; |
| | | |
| | | // 追加上期合同信息 start |
| | | this.contract.LastMContract1__c = this.estimate.LastMContract1__c; |
| | | this.contract.LastMContract1_NO__c = this.estimate.LastMContract1_NO__c; |
| | | this.contract.LastMContract1_ConCount__c = this.estimate.LastMContract1_ConCount__c; |
| | | |
| | | //add by rentx 2021-04-22 给合同1赋值的同时,给去年合同赋值 start |
| | | this.contract.Last_year_service_contract__c = this.estimate.LastMContract1__c; |
| | | //add by renrx 2021-04-22 给合同1赋值的同时, 给去年合同赋值 end |
| | | |
| | | this.contract.LastMContract2__c = this.estimate.LastMContract2__c; |
| | | this.contract.LastMContract2_NO__c = this.estimate.LastMContract2_NO__c; |
| | | this.contract.LastMContract2_ConCount__c = this.estimate.LastMContract2_ConCount__c; |
| | | |
| | | this.contract.LastMContract3__c = this.estimate.LastMContract3__c; |
| | | this.contract.LastMContract3_NO__c = this.estimate.LastMContract3_NO__c; |
| | | this.contract.LastMContract3_ConCount__c = this.estimate.LastMContract3_ConCount__c; |
| | | |
| | | this.contract.LastMContract4__c = this.estimate.LastMContract4__c; |
| | | this.contract.LastMContract4_NO__c = this.estimate.LastMContract4_NO__c; |
| | | this.contract.LastMContract4_ConCount__c = this.estimate.LastMContract4_ConCount__c; |
| | | |
| | | this.contract.LastMContract5__c = this.estimate.LastMContract5__c; |
| | | this.contract.LastMContract5_NO__c = this.estimate.LastMContract5_NO__c; |
| | | this.contract.LastMContract5_ConCount__c = this.estimate.LastMContract5_ConCount__c; |
| | | // 追加上期合同信息 end |
| | | |
| | | system.debug('测算isDecide的结果_1::::::::' + isDecide); |
| | | if (isDecide == true) { |
| | | system.debug('测算isDecide的结果_2::::::::' + isDecide); |
| | | // this.contract.Contract_Start_Date__c = this.estimate.Contract_Esti_Start_Date__c; |
| | | this.contract.Contract_Start_Date__c = this.estimate.Contract_Start_Date__c; |
| | | this.contract.Contract_Range__c = this.estimate.Contract_Range__c; |
| | | // this.contract.Contract_End_Date__c = this.estimate.Contract_Esti_End_Date__c; |
| | | this.contract.Contract_End_Date__c = this.estimate.Contract_End_Date__c; |
| | | this.contract.JingliApprovalManager__c = this.estimate.JingliApprovalManager__c; |
| | | this.contract.BuchangApprovalManager__c = this.estimate.BuchangApprovalManager__c; |
| | | this.contract.ZongjianApprovalManager__c = this.estimate.ZongjianApprovalManager__c; |
| | | this.contract.Finally_Approved_Staff__c = this.estimate.Finally_Approved_Staff__c; |
| | | this.contract.TKZongjianApprovalManager__c = this.estimate.TKZongjianApprovalManager__c; |
| | | // JZHG-BQV3P4 20200624 Gzw add |
| | | this.contract.HospitalAmountText__c = this.estimate.AgencyHos_Price__c; |
| | | // JZHG-BQV3P4 20200624 Gzw add |
| | | } |
| | | //添加的额外对应过程 |
| | | if (inDicideFlag == true && (this.contract.Contract_Start_Date__c == null || this.contract.Contract_End_Date__c == null)) { |
| | | system.debug('测算inDicideFlag的结果_2::::::::' + isDecide); |
| | | // this.contract.Contract_Start_Date__c = this.estimate.Contract_Esti_Start_Date__c; |
| | | this.contract.Contract_Start_Date__c = this.estimate.Contract_Start_Date__c; |
| | | this.contract.Contract_Range__c = this.estimate.Contract_Range__c; |
| | | // this.contract.Contract_End_Date__c = this.estimate.Contract_Esti_End_Date__c; |
| | | this.contract.Contract_End_Date__c = this.estimate.Contract_End_Date__c; |
| | | this.contract.JingliApprovalManager__c = this.estimate.JingliApprovalManager__c; |
| | | this.contract.BuchangApprovalManager__c = this.estimate.BuchangApprovalManager__c; |
| | | this.contract.ZongjianApprovalManager__c = this.estimate.ZongjianApprovalManager__c; |
| | | this.contract.Finally_Approved_Staff__c = this.estimate.Finally_Approved_Staff__c; |
| | | this.contract.TKZongjianApprovalManager__c = this.estimate.TKZongjianApprovalManager__c; |
| | | // JZHG-BQV3P4 20200624 Gzw add |
| | | this.contract.HospitalAmountText__c = this.estimate.AgencyHos_Price__c; |
| | | // JZHG-BQV3P4 20200624 Gzw add |
| | | } |
| | | String oldProcessStatus = this.estimate.Process_Status__c; |
| | | try { |
| | | if (mcList.size() > 0) { |
| | | ControllerUtil.updMcList(mcList.values()); |
| | | } |
| | | ControllerUtil.updateMaintenance_Contract_Estimate(new Maintenance_Contract_Estimate__c[] {this.estimate}); |
| | | update this.contract; |
| | | } catch (Exception e) { |
| | | // TODO 今後複数件の場合どうする? |
| | | this.estimate.addError(e); |
| | | // 一部の値を戻す |
| | | this.estimate.Process_Status__c = oldProcessStatus; |
| | | hasDatabaseError = true; |
| | | Database.rollback(sp); |
| | | ApexPages.addMessages(e); |
| | | } |
| | | if (hasDatabaseError) { |
| | | System.debug('syncEstimate hasDatabaseError'); |
| | | return false; |
| | | } |
| | | if (isApproval) { |
| | | SelectAssetEstimateVMController.ComputeLTYRepair(targetEstimateId); |
| | | } |
| | | return true; |
| | | } catch (DMLException ex) { |
| | | // TODO Insert失敗のIDを消す必要? |
| | | Database.rollback(sp); |
| | | ApexPages.addMessages(ex); |
| | | } catch (Exception ex) { |
| | | Database.rollback(sp); |
| | | ApexPages.addMessages(ex); |
| | | } |
| | | if (hasDatabaseError) { |
| | | System.debug('syncEstimate hasDatabaseError'); |
| | | return false; |
| | | } |
| | | if (isApproval) { |
| | | SelectAssetEstimateVMController.ComputeLTYRepair(targetEstimateId); |
| | | } |
| | | return true; |
| | | } catch (DMLException ex) { |
| | | // TODO Insert失敗のIDを消す必要? |
| | | Database.rollback(sp); |
| | | ApexPages.addMessages(ex); |
| | | } catch (Exception ex) { |
| | | Database.rollback(sp); |
| | | ApexPages.addMessages(ex); |
| | | } |
| | | return false; |
| | | return false; |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @TestVisible |
| | | private Boolean checkChangedAfterPrint() { |
| | | System.debug('checkChangedAfterPrint start'); |
| | | if (changedAfterPrint) { |
| | | this.targetEstimateId = null; |
| | | this.estimate = this.estimate.clone(); |
| | | this.estimate.IS_Clone_After_Decide__c = true; |
| | | this.estimate.PrintDate__c = null; |
| | | this.estimate.Quote_Date__c = null; |
| | | this.estimate.Print_Contract__c = false; |
| | | this.estimate.Print_RepairPrice__c = false; |
| | | this.estimate.Print_DiscountPercentage__c = false; |
| | | this.estimate.Print_DiscountPrice__c = false; |
| | | this.estimate.Print_ListPrice__c = false; |
| | | //打印报价(简化版) 2019/12/18 start |
| | | this.estimate.Print_Simplify__c = false; |
| | | //打印报价(简化版) 2019/12/18 end |
| | | this.estimate.Print_MaintePrice__c = false; |
| | | this.estimate.Print_SumPrice__c = false; |
| | | this.estimate.NotUse_Oxygenated_Water__c = false; |
| | | this.estimate.Contract_Esti_Start_Date__c = this.estimate.Contract_Start_Date__c; |
| | | //this.estimate.Process_Status__c = '草案中'; |
| | | } |
| | | return changedAfterPrint; |
| | | System.debug('checkChangedAfterPrint start'); |
| | | if (changedAfterPrint) { |
| | | this.targetEstimateId = null; |
| | | this.estimate = this.estimate.clone(); |
| | | this.estimate.IS_Clone_After_Decide__c = true; |
| | | this.estimate.PrintDate__c = null; |
| | | this.estimate.Quote_Date__c = null; |
| | | this.estimate.Print_Contract__c = false; |
| | | this.estimate.Print_RepairPrice__c = false; |
| | | this.estimate.Print_DiscountPercentage__c = false; |
| | | this.estimate.Print_DiscountPrice__c = false; |
| | | this.estimate.Print_ListPrice__c = false; |
| | | //打印报价(简化版) 2019/12/18 start |
| | | this.estimate.Print_Simplify__c = false; |
| | | //打印报价(简化版) 2019/12/18 end |
| | | this.estimate.Print_MaintePrice__c = false; |
| | | this.estimate.Print_SumPrice__c = false; |
| | | this.estimate.NotUse_Oxygenated_Water__c = false; |
| | | this.estimate.Contract_Esti_Start_Date__c = this.estimate.Contract_Start_Date__c; |
| | | //this.estimate.Process_Status__c = '草案中'; |
| | | } |
| | | return changedAfterPrint; |
| | | } |
| | | /** |
| | | * 行追加(10行ずつ)、前提必ず最後 |
| | | */ |
| | | |
| | | public PageReference addNewRows() { |
| | | for (Integer i = 0; i < 10; i++) { |
| | | checkedAssets.add(new AssetInfo(checkedAssets.size())); |
| | | } |
| | | // ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '保有设备' + checkedAssets.size())); |
| | | return null; |
| | | for (Integer i = 0; i < 10; i++) { |
| | | checkedAssets.add(new AssetInfo(checkedAssets.size())); |
| | | } |
| | | // ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '保有设备' + checkedAssets.size())); |
| | | return null; |
| | | } |
| | | |
| | | |
| | | |
| | | /** 保存返回 **/ |
| | | public PageReference saveAndCancel () { |
| | | //add by rentx 2020-11-13 LJPH-BV93RZ start |
| | | if (estimate.Contract_Range__c == null) { |
| | | this.estimate.Contract_Range__c.addError('必须输入合同月数!'); |
| | | return null; |
| | | } |
| | | //add by rentx 2020-11-13 LJPH-BV93RZ end |
| | | if (syncEstimate(false, false)) { |
| | | PageReference ret = null; |
| | | if (this.targetMaintenanceContractId != null) { |
| | | ret = new PageReference('/' + this.targetMaintenanceContractId); |
| | | //add by rentx 2020-11-13 LJPH-BV93RZ start |
| | | if (estimate.Contract_Range__c == null) { |
| | | this.estimate.Contract_Range__c.addError('必须输入合同月数!'); |
| | | return null; |
| | | } |
| | | return ret; |
| | | } |
| | | return null; |
| | | //add by rentx 2020-11-13 LJPH-BV93RZ end |
| | | if (syncEstimate(false, false)) { |
| | | PageReference ret = null; |
| | | if (this.targetMaintenanceContractId != null) { |
| | | ret = new PageReference('/' + this.targetMaintenanceContractId); |
| | | } |
| | | return ret; |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * キャンセルメソッド |
| | | */ |
| | | public PageReference cancel() { |
| | | PageReference ret = null; |
| | | if (this.targetMaintenanceContractId != null) { |
| | | ret = new PageReference('/' + this.targetMaintenanceContractId); |
| | | } |
| | | return ret; |
| | | PageReference ret = null; |
| | | if (this.targetMaintenanceContractId != null) { |
| | | ret = new PageReference('/' + this.targetMaintenanceContractId); |
| | | } |
| | | return ret; |
| | | } |
| | | |
| | | //add wangweipeng 2021/12/26 start |
| | | //获取当前选中的经销商是否为先款标识 |
| | | public PageReference onChDealerUpdate(){ |
| | | //checkDealerId 此变量可能会存 经销商id或经销商中文名 |
| | | if(String.isNotBlank(checkDealerId)){ |
| | | try { |
| | | List<Account> accListC = [select id,name,FirstParagraphEnd__c from Account where id = :checkDealerId OR name = :checkDealerId]; |
| | | if(accListC != null && accListC.size() == 1){ |
| | | if(accListC[0].FirstParagraphEnd__c){ |
| | | this.estimate.Is_RecognitionModel__c = true; |
| | | }else{ |
| | | this.estimate.Is_RecognitionModel__c = false; |
| | | } |
| | | }else{ |
| | | this.estimate.Is_RecognitionModel__c = false; |
| | | } |
| | | } catch (Exception e) { |
| | | //return 'McaeList Update Failed : '+e; |
| | | } |
| | | }else{ |
| | | this.estimate.Is_RecognitionModel__c = false; |
| | | } |
| | | System.debug('----------------23--'+this.estimate.Is_RecognitionModel__c); |
| | | return null; |
| | | } |
| | | //add wangweipeng 2021/12/26 end |
| | | |
| | | |
| | | // 2021-02-07 gzw add LJPH-BWY5QB start |
| | | private void setEndUserType(String id) { |
| | | this.contract = [SELECT Id, Name, Status__c, Decided_Estimation__c, Service_Contract_Staff__c, |
| | | Estimate_Num__c, Management_Code__c, Hospital__c, |
| | | Hospital__r.MaintenanceContractUserType__c, |
| | | Contract_Start_Date__c, Contract_End_Date__c |
| | | FROM Maintenance_Contract__c WHERE Id = :id]; |
| | | if (this.estimate.Process_Status__c == '草案中' || String.IsBlank(this.estimate.Process_Status__c)) { |
| | | this.contract = [SELECT Id, Name, Status__c, Decided_Estimation__c, Service_Contract_Staff__c, |
| | | Estimate_Num__c, Management_Code__c, Hospital__c, |
| | | Hospital__r.MaintenanceContractUserType__c, |
| | | Contract_Start_Date__c, Contract_End_Date__c |
| | | FROM Maintenance_Contract__c WHERE Id = :id]; |
| | | if (this.estimate.Process_Status__c == '草案中' || String.IsBlank(this.estimate.Process_Status__c)) { |
| | | |
| | | this.estimate.EndUserType__c = this.contract.Hospital__r.MaintenanceContractUserType__c == false ? '新用户' : '既有用户'; |
| | | } |
| | | this.estimate.EndUserType__c = this.contract.Hospital__r.MaintenanceContractUserType__c == false ? '新用户' : '既有用户'; |
| | | } |
| | | } |
| | | // 2021-02-07 gzw add LJPH-BWY5QB end |
| | | |
| | | private void setContractInfo(String id) { |
| | | this.contract = [SELECT Id, Name, Status__c, Decided_Estimation__c, Service_Contract_Staff__c, |
| | | Estimate_Num__c, Management_Code__c, Hospital__c, |
| | | //2021-01-18 mzy add LJPH-BWY5QB 客户上的 维修合同用户类型 为true /false,报价 用户类型为 既有用户 / 新用户 |
| | | // Hospital__r.MaintenanceContractUserType__c, |
| | | //2021-01-18 mzy add LJPH-BWY5QB 客户上的 维修合同用户类型 为true /false,报价 用户类型为 既有用户 / 新用户 |
| | | Contract_Start_Date__c, Contract_End_Date__c |
| | | FROM Maintenance_Contract__c WHERE Id = :id]; |
| | | this.targetHospitalId = this.contract.Hospital__c; |
| | | // 2021-01-18 mzy add LJPH-BWY5QB 客户上的 维修合同用户类型 为true /false,报价 用户类型为 既有用户 / 新用户 |
| | | // if(this.estimate.Process_Status__c == '草案中' || String.IsBlank(this.estimate.Process_Status__c)){ |
| | | this.contract = [SELECT Id, Name, Status__c, Decided_Estimation__c, Service_Contract_Staff__c, |
| | | Estimate_Num__c, Management_Code__c, Hospital__c, |
| | | //2021-01-18 mzy add LJPH-BWY5QB 客户上的 维修合同用户类型 为true /false,报价 用户类型为 既有用户 / 新用户 |
| | | // Hospital__r.MaintenanceContractUserType__c, |
| | | //2021-01-18 mzy add LJPH-BWY5QB 客户上的 维修合同用户类型 为true /false,报价 用户类型为 既有用户 / 新用户 |
| | | Contract_Start_Date__c, Contract_End_Date__c |
| | | FROM Maintenance_Contract__c WHERE Id = :id]; |
| | | this.targetHospitalId = this.contract.Hospital__c; |
| | | // 2021-01-18 mzy add LJPH-BWY5QB 客户上的 维修合同用户类型 为true /false,报价 用户类型为 既有用户 / 新用户 |
| | | // if(this.estimate.Process_Status__c == '草案中' || String.IsBlank(this.estimate.Process_Status__c)){ |
| | | |
| | | // this.estimate.EndUserType__c = this.contract.Hospital__r.MaintenanceContractUserType__c == false ? '新用户' : '既有用户'; |
| | | // } |
| | | // 2021-01-18 mzy add LJPH-BWY5QB 客户上的 维修合同用户类型 为true /false,报价 用户类型为 既有用户 / 新用户 |
| | | // this.estimate.EndUserType__c = this.contract.Hospital__r.MaintenanceContractUserType__c == false ? '新用户' : '既有用户'; |
| | | // } |
| | | // 2021-01-18 mzy add LJPH-BWY5QB 客户上的 维修合同用户类型 为true /false,报价 用户类型为 既有用户 / 新用户 |
| | | } |
| | | |
| | | private Boolean checkValidate() { |
| | | Boolean rtn = true; |
| | | Date today = Date.today(); |
| | | if (getPageDisabled()) { |
| | | today = estimate.Submit_quotation_day__c; |
| | | } |
| | | // 2021-02-26 mzy LJPH-BX9CVX add 获取合同结束日和合同月数 start |
| | | //合同月数 |
| | | Decimal ContractRange = this.estimate.Contract_Range__c; |
| | | //合同预定结束日期 |
| | | Date t = this.estimate.Contract_Esti_Start_Date__c.addMonths(Integer.valueOf(this.estimate.Contract_Range__c)); |
| | | if (this.estimate.Contract_Esti_Start_Date__c.month() == 2 && this.estimate.Contract_Esti_Start_Date__c.day() == 29 |
| | | && t.month() == 2) { |
| | | t = t; |
| | | } else { |
| | | Boolean rtn = true; |
| | | Date today = Date.today(); |
| | | if (getPageDisabled()) { |
| | | today = estimate.Submit_quotation_day__c; |
| | | } |
| | | // 2021-02-26 mzy LJPH-BX9CVX add 获取合同结束日和合同月数 start |
| | | //合同月数 |
| | | Decimal ContractRange = this.estimate.Contract_Range__c; |
| | | //合同预定结束日期 |
| | | Date t = this.estimate.Contract_Esti_Start_Date__c.addMonths(Integer.valueOf(this.estimate.Contract_Range__c)); |
| | | if (this.estimate.Contract_Esti_Start_Date__c.month() == 2 && this.estimate.Contract_Esti_Start_Date__c.day() == 29 |
| | | && t.month() == 2) { |
| | | t = t; |
| | | } else { |
| | | t = t.addDays(-1); |
| | | } |
| | | this.estimate.Contract_Esti_End_Date__c = t; |
| | | // 合同开始日を结束日 |
| | | if (this.estimate.Contract_Start_Date__c == null) { |
| | | this.estimate.Contract_Start_Date__c = this.estimate.Contract_Esti_Start_Date__c; |
| | | } |
| | | t = this.estimate.Contract_Start_Date__c.addMonths(Integer.valueOf(this.estimate.Contract_Range__c)); |
| | | t = t.addDays(-1); |
| | | } |
| | | this.estimate.Contract_Esti_End_Date__c = t; |
| | | // 合同开始日を结束日 |
| | | if (this.estimate.Contract_Start_Date__c == null) { |
| | | this.estimate.Contract_Start_Date__c = this.estimate.Contract_Esti_Start_Date__c; |
| | | } |
| | | t = this.estimate.Contract_Start_Date__c.addMonths(Integer.valueOf(this.estimate.Contract_Range__c)); |
| | | t = t.addDays(-1); |
| | | this.estimate.Contract_End_Date__c = t; |
| | | Date ContractEndDate = this.estimate.Contract_End_Date__c; |
| | | System.debug('合同结束日期 :' + ContractEndDate); |
| | | // 2021-02-26 mzy LJPH-BX9CVX add 获取合同结束日和合同月数 end |
| | | // 部品供給停止の製品はエラー |
| | | for (AssetInfo input : this.checkedAssets) { |
| | | //如果是手动产品 |
| | | // 20210121 gzw 服务合同也验证设备价格是否为空 start |
| | | if (!input.isManual || input.isManual && !String.isBlank(input.mcae.Product_Manual__c)) { |
| | | // if (input.isManual && !String.isBlank(input.mcae.Product_Manual__c)) { |
| | | // 20210121 gzw 服务合同也验证设备价格是否为空 end |
| | | if (input.mcae.Estimate_List_Price__c == null || input.mcae.Estimate_List_Price__c == 0) { |
| | | //update by rentx 2020-11-12 LJPH-BV93RZ start |
| | | // input.mcae.Product_Manual__c.addError(System.Label.Error_Message47); |
| | | //add by rentx 2021-01-25 start |
| | | //如果保有设备不为空的话在保有设备上报错 |
| | | if (input.rec != null) { |
| | | input.rec.Name.addError(input.rec.Name + ' (机身编码为:' + input.rec.SerialNumber + ') 无合同金额,不建议参保'); |
| | | this.estimate.Contract_End_Date__c = t; |
| | | Date ContractEndDate = this.estimate.Contract_End_Date__c; |
| | | System.debug('合同结束日期 :' + ContractEndDate); |
| | | // 2021-02-26 mzy LJPH-BX9CVX add 获取合同结束日和合同月数 end |
| | | // 部品供給停止の製品はエラー |
| | | for (AssetInfo input : this.checkedAssets) { |
| | | //如果是手动产品 |
| | | // 20210121 gzw 服务合同也验证设备价格是否为空 start |
| | | if (!input.isManual || input.isManual && !String.isBlank(input.mcae.Product_Manual__c)) { |
| | | // if (input.isManual && !String.isBlank(input.mcae.Product_Manual__c)) { |
| | | // 20210121 gzw 服务合同也验证设备价格是否为空 end |
| | | if (input.mcae.Estimate_List_Price__c == null || input.mcae.Estimate_List_Price__c == 0) { |
| | | //update by rentx 2020-11-12 LJPH-BV93RZ start |
| | | // input.mcae.Product_Manual__c.addError(System.Label.Error_Message47); |
| | | //add by rentx 2021-01-25 start |
| | | //如果保有设备不为空的话在保有设备上报错 |
| | | if (input.rec != null) { |
| | | input.rec.Name.addError(input.rec.Name + ' (机身编码为:' + input.rec.SerialNumber + ') 无合同金额,不建议参保'); |
| | | |
| | | } else |
| | | //add by rentx 2021-01-25 end |
| | | if (String.isNotBlank(input.proName)) { |
| | | input.mcae.Product_Manual__c.addError(System.Label.Error_Message47 + '(' + input.proName + ')'); |
| | | } else |
| | | //add by rentx 2021-01-25 end |
| | | if (String.isNotBlank(input.proName)) { |
| | | input.mcae.Product_Manual__c.addError(System.Label.Error_Message47 + '(' + input.proName + ')'); |
| | | } |
| | | //update by rentx 2020-11-12 LJPH-BV93RZ end |
| | | rtn = false; |
| | | } |
| | | } |
| | | //update by rentx 2020-11-12 LJPH-BV93RZ end |
| | | rtn = false; |
| | | } |
| | | if (!input.isManual) { |
| | | //update by rentx 2020-11-13 start |
| | | if (!Test.isRunningTest() && (input.mcae.Adjustment_Upper_price__c == null || input.mcae.Adjustment_Upper_price__c == 0) ) { |
| | | // input.mcae.Adjustment_Upper_price__c.addError(input.rec.Name + '('+ input.rec.SerialNumber + ') 签约价格为0,-- 建议先与服务商品部咨询后再提交报价。'); |
| | | input.mcae.Adjustment_Upper_price__c.addError(input.proSerialName + '(' + input.proSerialNumber + ') 签约价格为0,-- 建议先与服务商品部咨询后再提交报价。'); |
| | | rtn = false; |
| | | } |
| | | if (!Test.isRunningTest() && (input.mcae.Adjustment_Lower_price__c == null || input.mcae.Adjustment_Lower_price__c == 0) ) { |
| | | input.mcae.Adjustment_Lower_price__c.addError(input.proSerialName + '(' + input.proSerialNumber + ') 签约价格为0,-- 建议先与服务商品部咨询后再提交报价。'); |
| | | // input.mcae.Adjustment_Lower_price__c.addError(input.rec.Name + '('+ input.rec.SerialNumber + ') 签约价格为0,-- 建议先与服务商品部咨询后再提交报价。'); |
| | | rtn = false; |
| | | } |
| | | //update by rentx 2020-11-13 end |
| | | |
| | | //1.合同期不满一年时,合同期超过一半才可开始续签报价。(eg:11个月的合同从6个月后才可报价。) |
| | | //2.一年以上的合同,在结束前6个月开始可以开放续签报价。 |
| | | //3.管理员跳过, |
| | | //WLIG-CDFBV3 开通续签报价为true的可以开放续签报价 thh 20220413 |
| | | if (input.rec.CurrentContract_F__r.Open_RenewalQuotation__c == false && UserInfo.getProfileId() != System.Label.ProfileId_SystemAdmin && |
| | | String.isNotBlank(input.rec.CurrentContract_F__c) && input.rec.CurrentContract_F__r.RecordType_DeveloperName__c != 'VM_Contract') { |
| | | |
| | | Integer noOfDays = today.daysBetween(input.rec.CurrentContract_F__r.Contract_End_Date__c); |
| | | Decimal monthCon = (Decimal)noOfDays / 365 * 12; |
| | | // 可开始报价的月数限制 |
| | | if (input.rec.CurrentContract_F__r.Contract_Range__c >= 12 && monthCon > 6) { |
| | | input.rec.Name.addError(input.rec.Name + '(' + input.rec.SerialNumber + ') -- 合同结束前6个月开始可以制作报价。'); |
| | | rtn = false; |
| | | } |
| | | //ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '---' + monthCon + ' +++ ' + Math.floor(input.rec.CurrentContract_F__r.Contract_Range__c/2))); |
| | | //rtn = false; |
| | | if (input.rec.CurrentContract_F__r.Contract_Range__c < 12 && monthCon > Math.floor(input.rec.CurrentContract_F__r.Contract_Range__c / 2)) { |
| | | input.rec.Name.addError(input.rec.Name + '(' + input.rec.SerialNumber + ') -- 经历月数过半方可制作报价'); |
| | | rtn = false; |
| | | } |
| | | } |
| | | // 多年保判断 |
| | | if (String.isNotBlank(input.rec.CurrentContract_F__c) && input.rec.CurrentContract_F__r.RecordType_DeveloperName__c == 'VM_Contract') { |
| | | //if (UserInfo.getProfileId() != System.Label.ProfileId_SystemAdmin && String.isNotBlank(input.rec.CurrentContract_F__c) && input.rec.CurrentContract_F__r.RecordType_DeveloperName__c == 'VM_Contract') { |
| | | |
| | | //Integer noOfDays = today.daysBetween(input.rec.CurrentContract_F_asset__r.endDateGurantee_Text__c); |
| | | //Decimal monthCon = (Decimal)noOfDays/365*12; |
| | | // 可开始报价的月数限制 |
| | | if (input.rec.CurrentContract_F__r.Gurantee_Estimate_startDate__c > Date.today()) { |
| | | input.rec.Name.addError(input.rec.Name + '(' + input.rec.SerialNumber + ') -- 合同结束前6个月开始可以制作报价。'); |
| | | rtn = false; |
| | | } |
| | | } |
| | | //ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '---' + input.rec.CurrentContract_F__r.Contract_End_Date__c)); |
| | | if (inDicideFlag && String.isNotBlank(input.rec.CurrentContract_F__c) && estimate.Skip_DJ__c == false ) { |
| | | //ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '+++' + input.rec.CurrentContract_F__r.Contract_End_Date__c)); |
| | | // 合同开始日大于上期合同结束日加一个月,且没有点检日期或者最近一次点检日期是3个月前 报错 |
| | | if (estimate.Contract_Start_Date__c > input.rec.CurrentContract_F__r.Contract_End_Date__c.addMonths(1) |
| | | && (input.rec.Final_Examination_Date__c == null |
| | | || input.rec.Final_Examination_Date__c < estimate.Contract_Start_Date__c.addMonths(-3))) { |
| | | input.rec.Name.addError(input.rec.Name + '(' + input.rec.SerialNumber + ') -- 没有最新的点检记录'); |
| | | rtn = false; |
| | | } |
| | | } |
| | | |
| | | if (isSaveOrApproval) { |
| | | if (input.rec.IF_Warranty__c == '否') { |
| | | input.rec.Name.addError(input.rec.Name + '(' + input.rec.SerialNumber + ') -- 不能选择不可参保设备'); |
| | | rtn = false; |
| | | } |
| | | } |
| | | // 20200805 Gzw Bug修复 |
| | | // isSaveOrApproval = false; |
| | | } |
| | | |
| | | // 2021-03-01 LJPH-BX9CVX mzy update 如果合同结束日>无零件风险日期 start |
| | | if (input != null) { |
| | | |
| | | //校验无零件风险 |
| | | if ( input.rec != null && input.rec.NoPartRiskDate_F__c != null ) { |
| | | // 传入参数 : 无零件风险日期 , 可签约标识 , 合同结束日期 , 合同月数 |
| | | String msg = checkAssetInfo(input.rec.NoPartRiskDate_F__c, input.rec.SignableFlag__c, ContractEndDate, ContractRange); |
| | | // 有错误信息则显示错误信息 |
| | | if (msg != '') { |
| | | input.rec.Name.addError('[' + input.rec.Name + '] (机身编码为:' + input.rec.SerialNumber + ') ' + msg); |
| | | rtn = false; |
| | | } |
| | | |
| | | } |
| | | /*else if(input.mcae!=null&&input.mcae.Product_Manual__c !=null&&input.NoPartRiskDate!=null ){ |
| | | // 传入参数 : 无零件风险日期 , 可签约标识 , 合同结束日期 , 合同月数 |
| | | String msg = checkAssetInfo(input.NoPartRiskDate,input.SignableFlag,ContractEstiEndDate,ContractRange); |
| | | // 有错误信息则显示错误信息 |
| | | if(msg != ''){ |
| | | input.mcae.Product_Manual__c.addError('['+input.proName2+'] '+msg); |
| | | rtn = false; |
| | | } |
| | | }*/ |
| | | } |
| | | // 2021-03-01 LJPH-BX9CVX mzy update 如果合同结束日>无零件风险日期 end |
| | | |
| | | } |
| | | if (!input.isManual) { |
| | | //update by rentx 2020-11-13 start |
| | | if (!Test.isRunningTest() && (input.mcae.Adjustment_Upper_price__c == null || input.mcae.Adjustment_Upper_price__c == 0) ) { |
| | | // input.mcae.Adjustment_Upper_price__c.addError(input.rec.Name + '('+ input.rec.SerialNumber + ') 签约价格为0,-- 建议先与服务商品部咨询后再提交报价。'); |
| | | input.mcae.Adjustment_Upper_price__c.addError(input.proSerialName + '(' + input.proSerialNumber + ') 签约价格为0,-- 建议先与服务商品部咨询后再提交报价。'); |
| | | rtn = false; |
| | | } |
| | | if (!Test.isRunningTest() && (input.mcae.Adjustment_Lower_price__c == null || input.mcae.Adjustment_Lower_price__c == 0) ) { |
| | | input.mcae.Adjustment_Lower_price__c.addError(input.proSerialName + '(' + input.proSerialNumber + ') 签约价格为0,-- 建议先与服务商品部咨询后再提交报价。'); |
| | | // input.mcae.Adjustment_Lower_price__c.addError(input.rec.Name + '('+ input.rec.SerialNumber + ') 签约价格为0,-- 建议先与服务商品部咨询后再提交报价。'); |
| | | rtn = false; |
| | | } |
| | | //update by rentx 2020-11-13 end |
| | | |
| | | //1.合同期不满一年时,合同期超过一半才可开始续签报价。(eg:11个月的合同从6个月后才可报价。) |
| | | //2.一年以上的合同,在结束前6个月开始可以开放续签报价。 |
| | | //3.管理员跳过, |
| | | if (UserInfo.getProfileId() != System.Label.ProfileId_SystemAdmin && String.isNotBlank(input.rec.CurrentContract_F__c) && input.rec.CurrentContract_F__r.RecordType_DeveloperName__c != 'VM_Contract') { |
| | | |
| | | Integer noOfDays = today.daysBetween(input.rec.CurrentContract_F__r.Contract_End_Date__c); |
| | | Decimal monthCon = (Decimal)noOfDays / 365 * 12; |
| | | // 可开始报价的月数限制 |
| | | if (input.rec.CurrentContract_F__r.Contract_Range__c >= 12 && monthCon > 6) { |
| | | input.rec.Name.addError(input.rec.Name + '(' + input.rec.SerialNumber + ') -- 合同结束前6个月开始可以制作报价。'); |
| | | rtn = false; |
| | | } |
| | | //ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '---' + monthCon + ' +++ ' + Math.floor(input.rec.CurrentContract_F__r.Contract_Range__c/2))); |
| | | //rtn = false; |
| | | if (input.rec.CurrentContract_F__r.Contract_Range__c < 12 && monthCon > Math.floor(input.rec.CurrentContract_F__r.Contract_Range__c / 2)) { |
| | | input.rec.Name.addError(input.rec.Name + '(' + input.rec.SerialNumber + ') -- 经历月数过半方可制作报价'); |
| | | rtn = false; |
| | | } |
| | | } |
| | | // 多年保判断 |
| | | if ( String.isNotBlank(input.rec.CurrentContract_F__c) && input.rec.CurrentContract_F__r.RecordType_DeveloperName__c == 'VM_Contract') { |
| | | //if (UserInfo.getProfileId() != System.Label.ProfileId_SystemAdmin && String.isNotBlank(input.rec.CurrentContract_F__c) && input.rec.CurrentContract_F__r.RecordType_DeveloperName__c == 'VM_Contract') { |
| | | |
| | | //Integer noOfDays = today.daysBetween(input.rec.CurrentContract_F_asset__r.endDateGurantee_Text__c); |
| | | //Decimal monthCon = (Decimal)noOfDays/365*12; |
| | | // 可开始报价的月数限制 |
| | | if (input.rec.CurrentContract_F__r.Gurantee_Estimate_startDate__c > Date.today()) { |
| | | input.rec.Name.addError(input.rec.Name + '(' + input.rec.SerialNumber + ') -- 合同结束前6个月开始可以制作报价。'); |
| | | rtn = false; |
| | | } |
| | | } |
| | | //ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '---' + input.rec.CurrentContract_F__r.Contract_End_Date__c)); |
| | | if (inDicideFlag && String.isNotBlank(input.rec.CurrentContract_F__c) && estimate.Skip_DJ__c == false ) { |
| | | //ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '+++' + input.rec.CurrentContract_F__r.Contract_End_Date__c)); |
| | | // 合同开始日大于上期合同结束日加一个月,且没有点检日期或者最近一次点检日期是3个月前 报错 |
| | | if (estimate.Contract_Start_Date__c > input.rec.CurrentContract_F__r.Contract_End_Date__c.addMonths(1) |
| | | && (input.rec.Final_Examination_Date__c == null |
| | | || input.rec.Final_Examination_Date__c < estimate.Contract_Start_Date__c.addMonths(-3))) { |
| | | input.rec.Name.addError(input.rec.Name + '(' + input.rec.SerialNumber + ') -- 没有最新的点检记录'); |
| | | rtn = false; |
| | | } |
| | | } |
| | | |
| | | if (isSaveOrApproval) { |
| | | if (input.rec.IF_Warranty__c == '否') { |
| | | input.rec.Name.addError(input.rec.Name + '(' + input.rec.SerialNumber + ') -- 不能选择不可参保设备'); |
| | | rtn = false; |
| | | } |
| | | } |
| | | // 20200805 Gzw Bug修复 |
| | | // isSaveOrApproval = false; |
| | | } |
| | | |
| | | // 2021-03-01 LJPH-BX9CVX mzy update 如果合同结束日>无零件风险日期 start |
| | | if (input != null) { |
| | | |
| | | //校验无零件风险 |
| | | if ( input.rec != null && input.rec.NoPartRiskDate_F__c != null ) { |
| | | // 传入参数 : 无零件风险日期 , 可签约标识 , 合同结束日期 , 合同月数 |
| | | String msg = checkAssetInfo(input.rec.NoPartRiskDate_F__c, input.rec.SignableFlag__c, ContractEndDate, ContractRange); |
| | | // 有错误信息则显示错误信息 |
| | | if (msg != '') { |
| | | input.rec.Name.addError('[' + input.rec.Name + '] (机身编码为:' + input.rec.SerialNumber + ') ' + msg); |
| | | rtn = false; |
| | | } |
| | | |
| | | } |
| | | /*else if(input.mcae!=null&&input.mcae.Product_Manual__c !=null&&input.NoPartRiskDate!=null ){ |
| | | // 传入参数 : 无零件风险日期 , 可签约标识 , 合同结束日期 , 合同月数 |
| | | String msg = checkAssetInfo(input.NoPartRiskDate,input.SignableFlag,ContractEstiEndDate,ContractRange); |
| | | // 有错误信息则显示错误信息 |
| | | if(msg != ''){ |
| | | input.mcae.Product_Manual__c.addError('['+input.proName2+'] '+msg); |
| | | rtn = false; |
| | | } |
| | | }*/ |
| | | } |
| | | // 2021-03-01 LJPH-BX9CVX mzy update 如果合同结束日>无零件风险日期 end |
| | | |
| | | } |
| | | return rtn; |
| | | return rtn; |
| | | } |
| | | // 2021-03-01 LJPH-BX9CVX mzy update 如果合同结束日>无零件风险日期 start |
| | | //校验无零件风险日期 |
| | | public static String checkAssetInfo(Date NoPartRiskDate, Boolean SignableFlag, Date ContractEndDate, Decimal ContractRange) { |
| | | String rtnStr = ''; |
| | | //1.判断 |
| | | //合同结束日期 > 无零件风险日期 |
| | | if (ContractEndDate > NoPartRiskDate) { |
| | | //可签约标识 未勾选 |
| | | if (SignableFlag == false) { |
| | | //到合同结束日期时,存在零件停止供应风险,建议不参保,或调整合同日期。 |
| | | rtnStr = '到合同结束日期时,存在零件停止供应风险,建议不参保,或调整合同日期。'; |
| | | } else { |
| | | //勾选 |
| | | //可以签1年合同 |
| | | if (ContractRange > 12) { |
| | | rtnStr = '到合同结束日期时,存在零件停止供应风险,建议签一年期合同。'; |
| | | } |
| | | String rtnStr = ''; |
| | | //1.判断 |
| | | //合同结束日期 > 无零件风险日期 |
| | | if (ContractEndDate > NoPartRiskDate) { |
| | | //可签约标识 未勾选 |
| | | if (SignableFlag == false) { |
| | | //到合同结束日期时,存在零件停止供应风险,建议不参保,或调整合同日期。 |
| | | rtnStr = '到合同结束日期时,存在零件停止供应风险,建议不参保,或调整合同日期。'; |
| | | } else { |
| | | //勾选 |
| | | //可以签1年合同 |
| | | if (ContractRange > 12) { |
| | | rtnStr = '到合同结束日期时,存在零件停止供应风险,建议签一年期合同。'; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | return rtnStr; |
| | | return rtnStr; |
| | | } |
| | | // 2021-03-01 LJPH-BX9CVX mzy update 如果合同结束日>无零件风险日期 end |
| | | // 价格变更后克隆报价前重新计算价格 |
| | | @TestVisible |
| | | private void priceChangeReset() { |
| | | // 取得master中最新价格 |
| | | List<Id> assIds = new List<Id>(); |
| | | List<Id> pdIds = new List<Id>(); |
| | | for (AssetInfo input : this.checkedAssets) { |
| | | if (!input.isManual) { |
| | | assIds.add(input.rec.Id); |
| | | // 取得master中最新价格 |
| | | List<Id> assIds = new List<Id>(); |
| | | List<Id> pdIds = new List<Id>(); |
| | | for (AssetInfo input : this.checkedAssets) { |
| | | if (!input.isManual) { |
| | | assIds.add(input.rec.Id); |
| | | } |
| | | if (input.isManual && !String.isBlank(input.mcae.Product_Manual__c)) { |
| | | pdIds.add(input.mcae.Product_Manual__c); |
| | | } |
| | | } |
| | | if (input.isManual && !String.isBlank(input.mcae.Product_Manual__c)) { |
| | | pdIds.add(input.mcae.Product_Manual__c); |
| | | Map<Id, Asset> assMap = new Map<Id, Asset>(); |
| | | Map<Id, Product2> pdMap = new Map<Id, Product2>(); |
| | | if (assIds.size() > 0) { |
| | | assMap = new Map<Id, Asset>([select id, Maintenance_Price_Month__c from Asset where Id In: assIds]); |
| | | } |
| | | } |
| | | Map<Id, Asset> assMap = new Map<Id, Asset>(); |
| | | Map<Id, Product2> pdMap = new Map<Id, Product2>(); |
| | | if (assIds.size() > 0) { |
| | | assMap = new Map<Id, Asset>([select id, Maintenance_Price_Month__c from Asset where Id In: assIds]); |
| | | } |
| | | if (pdIds.size() > 0) { |
| | | pdMap = new Map<Id, Product2>([select id, Maintenance_Price_Month__c, EquipmentGuaranteeFlg__c from Product2 where Id In: pdIds]); |
| | | } |
| | | if (assMap.size() > 0 || pdMap.size() > 0) { |
| | | for (AssetInfo info : this.checkedAssets) { |
| | | if (!info.isManual) { |
| | | info.orgPrice = assMap.get(info.rec.Id).Maintenance_Price_Month__c; |
| | | } |
| | | if (info.isManual && !String.isBlank(info.mcae.Product_Manual__c)) { |
| | | info.orgPrice = pdMap.get(info.mcae.Product_Manual__c).Maintenance_Price_Month__c; |
| | | } |
| | | if (pdIds.size() > 0) { |
| | | pdMap = new Map<Id, Product2>([select id, Maintenance_Price_Month__c, EquipmentGuaranteeFlg__c from Product2 where Id In: pdIds]); |
| | | } |
| | | } |
| | | //contractStartDateChange(); |
| | | if (assMap.size() > 0 || pdMap.size() > 0) { |
| | | for (AssetInfo info : this.checkedAssets) { |
| | | if (!info.isManual) { |
| | | info.orgPrice = assMap.get(info.rec.Id).Maintenance_Price_Month__c; |
| | | } |
| | | if (info.isManual && !String.isBlank(info.mcae.Product_Manual__c)) { |
| | | info.orgPrice = pdMap.get(info.mcae.Product_Manual__c).Maintenance_Price_Month__c; |
| | | } |
| | | } |
| | | } |
| | | //contractStartDateChange(); |
| | | } |
| | | |
| | | |
| | |
| | | //add by mzy 2020-11-12 LJPH-BX9CVX start |
| | | |
| | | public Id getRecId() { |
| | | Id rtn = null; |
| | | if (rec != null) { |
| | | rtn = rec.Id; |
| | | } |
| | | return rtn; |
| | | Id rtn = null; |
| | | if (rec != null) { |
| | | rtn = rec.Id; |
| | | } |
| | | return rtn; |
| | | } |
| | | public void setRecId(Id value) { |
| | | // なにもしない |
| | | // なにもしない |
| | | } |
| | | |
| | | // Manual専用 |
| | | public AssetInfo(Integer lineNo) { |
| | | this.lineNo = lineNo; |
| | | this.rec = null; |
| | | this.mcae = new Maintenance_Contract_Asset_Estimate__c( |
| | | isNew__c = true, |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk Star |
| | | Check_Object__c = true |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk end |
| | | ); |
| | | this.isManual = true; |
| | | this.rec_checkBox_c = false; |
| | | this.orgPrice = 0; |
| | | this.orgPrice12 = 0; |
| | | this.etGFlg = false; |
| | | // add by fxk 2021/9/9 控制点检对象是否可选 Star |
| | | this.CheckRows = true; |
| | | // add by fxk 2021/9/9 控制点检对象是否可选 End |
| | | this.lineNo = lineNo; |
| | | this.rec = null; |
| | | this.mcae = new Maintenance_Contract_Asset_Estimate__c( |
| | | isNew__c = true, |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk Star |
| | | Check_Object__c = true |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk end |
| | | ); |
| | | this.isManual = true; |
| | | this.rec_checkBox_c = false; |
| | | this.orgPrice = 0; |
| | | this.orgPrice12 = 0; |
| | | this.etGFlg = false; |
| | | // add by fxk 2021/9/9 控制点检对象是否可选 Star |
| | | this.CheckRows = true; |
| | | // add by fxk 2021/9/9 控制点检对象是否可选 End |
| | | } |
| | | // 選択された用(非Manual) |
| | | public AssetInfo(Integer lineNo, Asset record, Boolean isNew, Decimal listPrice, Maintenance_Contract_Asset_Estimate__c mcae) { |
| | | this.lineNo = lineNo; |
| | | this.rec = record; |
| | | this.mcae = new Maintenance_Contract_Asset_Estimate__c( |
| | | // id = mcae.Id, // 本当にいらないの? セットしたら、新規権限がなくでも、更新できます。後藤さんに確認した、なくでもいいです。 |
| | | isNew__c = isNew, |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk Star |
| | | Check_Object__c = mcae.Check_Object__c, |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk end |
| | | Estimate_List_Price__c = listPrice, |
| | | //Maintenance_Price_YearTXT__c = mcae.Maintenance_Price_YearTXT__c, |
| | | Check_Result__c = mcae.Check_Result__c, |
| | | Repair_Price__c = mcae.Repair_Price__c, |
| | | Comment__c = mcae.Comment__c, |
| | | EquipmentGuaranteeFlgTxt__c = mcae.EquipmentGuaranteeFlgTxt__c, |
| | | Estimate_Cost__c = mcae.Estimate_Cost__c, |
| | | Adjustment_ratio_Upper__c = mcae.Adjustment_ratio_Upper__c, |
| | | Adjustment_ratio_Lower__c = mcae.Adjustment_ratio_Lower__c, |
| | | Adjustment_Upper_price__c = mcae.Adjustment_Upper_price__c, |
| | | LastMContract_Price__c = mcae.LastMContract_Price__c, |
| | | Adjustment_Lower_price__c = mcae.Adjustment_Lower_price__c, |
| | | Asset_Consumption_rate__c = mcae.Asset_Consumption_rate__c |
| | | // LJPH-C9GD34 gzw fix start |
| | | ,Estimate_List_Price_Page__c = mcae.Estimate_List_Price_Page__c |
| | | // LJPH-C9GD34 gzw fix end |
| | | ); |
| | | this.isManual = false; |
| | | this.rec_checkBox_c = true; |
| | | this.orgPrice = record.Maintenance_Price_Month__c; |
| | | this.orgPrice12 = this.orgPrice * 12; |
| | | this.etGFlg = record.EquipmentGuaranteeFlg__c; |
| | | //add by rentx 2020-11-12 LJPH-BV93RZ start |
| | | this.proName = '机身编码为:' + record.SerialNumber; |
| | | this.proSerialNumber = record.SerialNumber; |
| | | this.proSerialName = record.Name; |
| | | //add by rentx 2020-11-12 LJPH-BV93RZ end |
| | | //add by mzy 2021-02-07 start |
| | | //this.NoPartRiskDate = mcae.Product_Manual__r.NoPartRiskDate_F__c; |
| | | //this.proName2 = mcae.Product_Manual__r.Name; |
| | | //this.SignableFlag = mcae.Product_Manual__r.SignableFlag__c; |
| | | //add by mzy 2021-02-07 end |
| | | this.lineNo = lineNo; |
| | | this.rec = record; |
| | | this.mcae = new Maintenance_Contract_Asset_Estimate__c( |
| | | // id = mcae.Id, // 本当にいらないの? セットしたら、新規権限がなくでも、更新できます。後藤さんに確認した、なくでもいいです。 |
| | | isNew__c = isNew, |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk Star |
| | | Check_Object__c = mcae.Check_Object__c, |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk end |
| | | Estimate_List_Price__c = listPrice, |
| | | //Maintenance_Price_YearTXT__c = mcae.Maintenance_Price_YearTXT__c, |
| | | Check_Result__c = mcae.Check_Result__c, |
| | | Repair_Price__c = mcae.Repair_Price__c, |
| | | Comment__c = mcae.Comment__c, |
| | | EquipmentGuaranteeFlgTxt__c = mcae.EquipmentGuaranteeFlgTxt__c, |
| | | Estimate_Cost__c = mcae.Estimate_Cost__c, |
| | | Adjustment_ratio_Upper__c = mcae.Adjustment_ratio_Upper__c, |
| | | Adjustment_ratio_Lower__c = mcae.Adjustment_ratio_Lower__c, |
| | | Adjustment_Upper_price__c = mcae.Adjustment_Upper_price__c, |
| | | LastMContract_Price__c = mcae.LastMContract_Price__c, |
| | | Adjustment_Lower_price__c = mcae.Adjustment_Lower_price__c, |
| | | Asset_Consumption_rate__c = mcae.Asset_Consumption_rate__c |
| | | // LJPH-C9GD34 gzw fix start |
| | | ,Estimate_List_Price_Page__c = mcae.Estimate_List_Price_Page__c |
| | | // LJPH-C9GD34 gzw fix end |
| | | ); |
| | | this.isManual = false; |
| | | this.rec_checkBox_c = true; |
| | | this.orgPrice = record.Maintenance_Price_Month__c; |
| | | this.orgPrice12 = this.orgPrice * 12; |
| | | this.etGFlg = record.EquipmentGuaranteeFlg__c; |
| | | //add by rentx 2020-11-12 LJPH-BV93RZ start |
| | | this.proName = '机身编码为:' + record.SerialNumber; |
| | | this.proSerialNumber = record.SerialNumber; |
| | | this.proSerialName = record.Name; |
| | | //add by rentx 2020-11-12 LJPH-BV93RZ end |
| | | //add by mzy 2021-02-07 start |
| | | //this.NoPartRiskDate = mcae.Product_Manual__r.NoPartRiskDate_F__c; |
| | | //this.proName2 = mcae.Product_Manual__r.Name; |
| | | //this.SignableFlag = mcae.Product_Manual__r.SignableFlag__c; |
| | | //add by mzy 2021-02-07 end |
| | | } |
| | | // 選択された用、未納品用(Manual) |
| | | public AssetInfo(Integer lineNo, Maintenance_Contract_Asset_Estimate__c mcae) { |
| | | this.lineNo = lineNo; |
| | | this.rec = null; |
| | | this.mcae = new Maintenance_Contract_Asset_Estimate__c( |
| | | // id = mcae.Id, // 本当にいらないの? セットしたら、新規権限がなくでも、更新できます。後藤さんに確認した、なくでもいいです。 |
| | | isNew__c = mcae.IsNew__c, |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk Star |
| | | Check_Object__c = mcae.Check_Object__c, |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk end |
| | | Product_Manual__c = mcae.Product_Manual__c, |
| | | Estimate_List_Price__c = mcae.Estimate_List_Price__c, |
| | | //Maintenance_Price_YearTXT__c = mcae.Maintenance_Price_YearTXT__c, |
| | | Check_Result__c = mcae.Check_Result__c, |
| | | Repair_Price__c = mcae.Repair_Price__c, |
| | | Comment__c = mcae.Comment__c, |
| | | EquipmentGuaranteeFlgTxt__c = mcae.EquipmentGuaranteeFlgTxt__c, |
| | | Estimate_Cost__c = mcae.Estimate_Cost__c, |
| | | Adjustment_ratio_Upper__c = mcae.Adjustment_ratio_Upper__c, |
| | | Adjustment_ratio_Lower__c = mcae.Adjustment_ratio_Lower__c, |
| | | Adjustment_Upper_price__c = mcae.Adjustment_Upper_price__c, |
| | | LastMContract_Price__c = mcae.LastMContract_Price__c, |
| | | Adjustment_Lower_price__c = mcae.Adjustment_Lower_price__c, |
| | | Asset_Consumption_rate__c = mcae.Asset_Consumption_rate__c, |
| | | Contract_Esti_Start_Date__c = mcae.Maintenance_Contract_Estimate__r.Contract_Esti_Start_Date__c |
| | | // Contract_Esti_Start_Date__c=mcae.Contract_Esti_Start_Date__c |
| | | // LJPH-C9GD34 gzw fix start |
| | | ,Estimate_List_Price_Page__c = mcae.Estimate_List_Price_Page__c |
| | | // LJPH-C9GD34 gzw fix end |
| | | ); |
| | | this.isManual = true; |
| | | this.rec_checkBox_c = false; |
| | | this.orgPrice = mcae.Product_Manual__r.Maintenance_Price_Month__c; |
| | | this.orgPrice12 = this.orgPrice * 12; |
| | | this.etGFlg = mcae.Product_Manual__r.EquipmentGuaranteeFlg__c; |
| | | //add by mzy 2021-02-07 start |
| | | //this.NoPartRiskDate = mcae.Product_Manual__r.NoPartRiskDate_F__c; |
| | | //this.proName2 = mcae.Product_Manual__r.Name; |
| | | //this.SignableFlag = mcae.Product_Manual__r.SignableFlag__c; |
| | | //add by mzy 2021-02-07 end |
| | | this.lineNo = lineNo; |
| | | this.rec = null; |
| | | this.mcae = new Maintenance_Contract_Asset_Estimate__c( |
| | | // id = mcae.Id, // 本当にいらないの? セットしたら、新規権限がなくでも、更新できます。後藤さんに確認した、なくでもいいです。 |
| | | isNew__c = mcae.IsNew__c, |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk Star |
| | | Check_Object__c = mcae.Check_Object__c, |
| | | // add点检改善:新增一个点检对象复选框字段,默认为true 2021.6.8 fxk end |
| | | Product_Manual__c = mcae.Product_Manual__c, |
| | | Estimate_List_Price__c = mcae.Estimate_List_Price__c, |
| | | //Maintenance_Price_YearTXT__c = mcae.Maintenance_Price_YearTXT__c, |
| | | Check_Result__c = mcae.Check_Result__c, |
| | | Repair_Price__c = mcae.Repair_Price__c, |
| | | Comment__c = mcae.Comment__c, |
| | | EquipmentGuaranteeFlgTxt__c = mcae.EquipmentGuaranteeFlgTxt__c, |
| | | Estimate_Cost__c = mcae.Estimate_Cost__c, |
| | | Adjustment_ratio_Upper__c = mcae.Adjustment_ratio_Upper__c, |
| | | Adjustment_ratio_Lower__c = mcae.Adjustment_ratio_Lower__c, |
| | | Adjustment_Upper_price__c = mcae.Adjustment_Upper_price__c, |
| | | LastMContract_Price__c = mcae.LastMContract_Price__c, |
| | | Adjustment_Lower_price__c = mcae.Adjustment_Lower_price__c, |
| | | Asset_Consumption_rate__c = mcae.Asset_Consumption_rate__c, |
| | | Contract_Esti_Start_Date__c = mcae.Maintenance_Contract_Estimate__r.Contract_Esti_Start_Date__c |
| | | // Contract_Esti_Start_Date__c=mcae.Contract_Esti_Start_Date__c |
| | | // LJPH-C9GD34 gzw fix start |
| | | ,Estimate_List_Price_Page__c = mcae.Estimate_List_Price_Page__c |
| | | // LJPH-C9GD34 gzw fix end |
| | | ); |
| | | this.isManual = true; |
| | | this.rec_checkBox_c = false; |
| | | this.orgPrice = mcae.Product_Manual__r.Maintenance_Price_Month__c; |
| | | this.orgPrice12 = this.orgPrice * 12; |
| | | this.etGFlg = mcae.Product_Manual__r.EquipmentGuaranteeFlg__c; |
| | | //add by mzy 2021-02-07 start |
| | | //this.NoPartRiskDate = mcae.Product_Manual__r.NoPartRiskDate_F__c; |
| | | //this.proName2 = mcae.Product_Manual__r.Name; |
| | | //this.SignableFlag = mcae.Product_Manual__r.SignableFlag__c; |
| | | //add by mzy 2021-02-07 end |
| | | } |
| | | // 選択されなかった用 |
| | | public AssetInfo(Integer lineNo, Asset record) { |
| | | this.lineNo = lineNo; |
| | | this.rec = record; |
| | | this.isManual = false; |
| | | this.rec_checkBox_c = false; |
| | | this.orgPrice = record.Maintenance_Price_Month__c; |
| | | this.orgPrice12 = this.orgPrice * 12; |
| | | this.etGFlg = record.EquipmentGuaranteeFlg__c; |
| | | this.proSerialName = record.Name; |
| | | this.proSerialNumber = record.SerialNumber; |
| | | this.lineNo = lineNo; |
| | | this.rec = record; |
| | | this.isManual = false; |
| | | this.rec_checkBox_c = false; |
| | | this.orgPrice = record.Maintenance_Price_Month__c; |
| | | this.orgPrice12 = this.orgPrice * 12; |
| | | this.etGFlg = record.EquipmentGuaranteeFlg__c; |
| | | this.proSerialName = record.Name; |
| | | this.proSerialNumber = record.SerialNumber; |
| | | } |
| | | } |
| | | |
| | | WebService static String pageDecide(String strId) { |
| | | String rs = ''; |
| | | SelectAssetEstimateVMController saec = new SelectAssetEstimateVMController(); |
| | | saec.targetEstimateId = strId; |
| | | saec.isPageAction = true; |
| | | saec.init(); |
| | | if (saec.getDecideBtnDisabled()) { |
| | | rs = '已经是Decide过的合同 或 不是批准的报价,不能Decide'; |
| | | String rs = ''; |
| | | SelectAssetEstimateVMController saec = new SelectAssetEstimateVMController(); |
| | | saec.targetEstimateId = strId; |
| | | saec.isPageAction = true; |
| | | saec.init(); |
| | | if (saec.getDecideBtnDisabled()) { |
| | | rs = '已经是Decide过的合同 或 不是批准的报价,不能Decide'; |
| | | return rs; |
| | | } |
| | | if (saec.syncEstimate(false, true)) { |
| | | rs = '0'; |
| | | } else { |
| | | rs = 'Decide失败'; |
| | | } |
| | | return rs; |
| | | } |
| | | if (saec.syncEstimate(false, true)) { |
| | | rs = '0'; |
| | | } else { |
| | | rs = 'Decide失败'; |
| | | } |
| | | return rs; |
| | | } |
| | | |
| | | WebService static String pageUndecide(String strId) { |
| | | String rs = ''; |
| | | SelectAssetEstimateVMController saec = new SelectAssetEstimateVMController(); |
| | | saec.targetEstimateId = strId; |
| | | saec.isPageAction = true; |
| | | saec.init(); |
| | | if (saec.getUnDecideBtnDisabled()) { |
| | | rs = '不是Decide过的报价,不能Undecide'; |
| | | String rs = ''; |
| | | SelectAssetEstimateVMController saec = new SelectAssetEstimateVMController(); |
| | | saec.targetEstimateId = strId; |
| | | saec.isPageAction = true; |
| | | saec.init(); |
| | | if (saec.getUnDecideBtnDisabled()) { |
| | | rs = '不是Decide过的报价,不能Undecide'; |
| | | return rs; |
| | | } |
| | | if (saec.undecide() != null) { |
| | | rs = '0'; |
| | | } else { |
| | | rs = 'Undecide失败'; |
| | | } |
| | | return rs; |
| | | } |
| | | if (saec.undecide() != null) { |
| | | rs = '0'; |
| | | } else { |
| | | rs = 'Undecide失败'; |
| | | } |
| | | return rs; |
| | | } |
| | | |
| | | |
| | | public static List<lastMContract> getlastMContract(List<AssetInfo> checkedAssets, Date startDate) { |
| | | Map<String, lastMContract> lastMContractMap = new Map<String, lastMContract>(); |
| | | Map<String, lastMContract> lastMContractMap1 = new Map<String, lastMContract>(); |
| | | for (AssetInfo ai : checkedAssets) { |
| | | lastMContract lM = new lastMContract(ai.rec.CurrentContract_F__c, ai.rec.CurrentContract_F__r.Management_Code__c, ai.rec.CurrentContract_F__r.Contract_End_Date__c, 1); |
| | | Map<String, lastMContract> lastMContractMap = new Map<String, lastMContract>(); |
| | | Map<String, lastMContract> lastMContractMap1 = new Map<String, lastMContract>(); |
| | | for (AssetInfo ai : checkedAssets) { |
| | | lastMContract lM = new lastMContract(ai.rec.CurrentContract_F__c, ai.rec.CurrentContract_F__r.Management_Code__c, ai.rec.CurrentContract_F__r.Contract_End_Date__c, 1); |
| | | |
| | | // 2021-09-10 tcm 排序逻辑调整 start |
| | | // 计算空白期 |
| | | if (startDate != null && lM.endDate != null) { |
| | | if (startDate.daysbetween(lM.endDate) > -366 && startDate.daysbetween(lM.endDate) < 366) { |
| | | lm.ayearcontract = true; |
| | | } else { |
| | | lm.ayearcontract = false; |
| | | } |
| | | } else { |
| | | lm.ayearcontract = false; |
| | | } |
| | | // 2021-09-10 tcm 排序逻辑调整 end |
| | | |
| | | // if (String.isNotBlank(ai.rec.CurrentContract_F__c) ) { |
| | | //判断 如果上一期维修合同为 多年保修合同 的话 则不放入map进行更新 LJPH-BUU3E3 update by rentx 2020-11-03 start |
| | | if (String.isNotBlank(ai.rec.CurrentContract_F__c) && ai.rec.CurrentContract_F__r.RecordType_DeveloperName__c != 'VM_Contract') { |
| | | |
| | | // 2021-09-10 tcm 排序逻辑调整 start |
| | | if (lm.ayearcontract) { |
| | | // 2021-09-10 tcm 排序逻辑调整 start |
| | | // 计算空白期 |
| | | if (startDate != null && lM.endDate != null) { |
| | | if (startDate.daysbetween(lM.endDate) > -366 && startDate.daysbetween(lM.endDate) < 366) { |
| | | lm.ayearcontract = true; |
| | | } else { |
| | | lm.ayearcontract = false; |
| | | } |
| | | } else { |
| | | lm.ayearcontract = false; |
| | | } |
| | | // 2021-09-10 tcm 排序逻辑调整 end |
| | | |
| | | //判断 如果上一期维修合同为 多年保修合同 的话 则不放入map进行更新 LJPH-BUU3E3 update by rentx 2020-11-03 end |
| | | // 空白期 |
| | | if (lastMContractMap.containsKey(ai.rec.CurrentContract_F__c)) { |
| | | lastMContractMap.get(ai.rec.CurrentContract_F__c).count++; |
| | | } else { |
| | | lastMContractMap.put(ai.rec.CurrentContract_F__c, lM); |
| | | // if (String.isNotBlank(ai.rec.CurrentContract_F__c) ) { |
| | | //判断 如果上一期维修合同为 多年保修合同 的话 则不放入map进行更新 LJPH-BUU3E3 update by rentx 2020-11-03 start |
| | | if (String.isNotBlank(ai.rec.CurrentContract_F__c) && ai.rec.CurrentContract_F__r.RecordType_DeveloperName__c != 'VM_Contract') { |
| | | |
| | | // 2021-09-10 tcm 排序逻辑调整 start |
| | | if (lm.ayearcontract) { |
| | | // 2021-09-10 tcm 排序逻辑调整 end |
| | | |
| | | //判断 如果上一期维修合同为 多年保修合同 的话 则不放入map进行更新 LJPH-BUU3E3 update by rentx 2020-11-03 end |
| | | // 空白期 |
| | | if (lastMContractMap.containsKey(ai.rec.CurrentContract_F__c)) { |
| | | lastMContractMap.get(ai.rec.CurrentContract_F__c).count++; |
| | | } else { |
| | | lastMContractMap.put(ai.rec.CurrentContract_F__c, lM); |
| | | } |
| | | // 非空白期 |
| | | } else { |
| | | if (lastMContractMap1.containsKey(ai.rec.CurrentContract_F__c)) { |
| | | lastMContractMap1.get(ai.rec.CurrentContract_F__c).count++; |
| | | } else { |
| | | lastMContractMap1.put(ai.rec.CurrentContract_F__c, lM); |
| | | } |
| | | } |
| | | } |
| | | // 非空白期 |
| | | } else { |
| | | if (lastMContractMap1.containsKey(ai.rec.CurrentContract_F__c)) { |
| | | lastMContractMap1.get(ai.rec.CurrentContract_F__c).count++; |
| | | } else { |
| | | lastMContractMap1.put(ai.rec.CurrentContract_F__c, lM); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | List<lastMContract> listResulttemp = new List<lastMContract>(); |
| | | List<lastMContract> listResult = new List<lastMContract>(); |
| | | // 2021-09-10 tcm 排序逻辑调整 start |
| | | List<lastMContract> listResulttemp1 = new List<lastMContract>(); |
| | | List<lastMContract> listResult1 = new List<lastMContract>(); |
| | | // 2021-09-10 tcm 排序逻辑调整 end |
| | | // 空白期 |
| | | for ( lastMContract ll : lastMContractMap.values()) { |
| | | listResulttemp.add(ll); |
| | | } |
| | | // 2021-09-10 tcm 排序逻辑调整 start |
| | | // 非空白期 |
| | | for ( lastMContract ll : lastMContractMap1.values()) { |
| | | listResulttemp1.add(ll); |
| | | } |
| | | // 2021-09-10 tcm 排序逻辑调整 end |
| | | //ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, 'listResult +++++!' + listResult)); |
| | | |
| | | // 空白期 |
| | | listResulttemp.sort(); |
| | | // 2021-09-10 tcm 排序逻辑调整 start (修改了循环次数 原5) |
| | | for (Integer i = 0; i < listResulttemp.size(); i++) { |
| | | List<lastMContract> listResulttemp = new List<lastMContract>(); |
| | | List<lastMContract> listResult = new List<lastMContract>(); |
| | | // 2021-09-10 tcm 排序逻辑调整 start |
| | | List<lastMContract> listResulttemp1 = new List<lastMContract>(); |
| | | List<lastMContract> listResult1 = new List<lastMContract>(); |
| | | // 2021-09-10 tcm 排序逻辑调整 end |
| | | if (listResulttemp.size() >= i + 1) { |
| | | listResult.add(listResulttemp[i]); |
| | | // 空白期 |
| | | for ( lastMContract ll : lastMContractMap.values()) { |
| | | listResulttemp.add(ll); |
| | | } |
| | | } |
| | | // 2021-09-10 tcm 排序逻辑调整 start |
| | | // 非空白期 |
| | | for ( lastMContract ll : lastMContractMap1.values()) { |
| | | listResulttemp1.add(ll); |
| | | } |
| | | // 2021-09-10 tcm 排序逻辑调整 end |
| | | //ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, 'listResult +++++!' + listResult)); |
| | | |
| | | // 2021-09-10 tcm 排序逻辑调整 start |
| | | // 非空白期 |
| | | listResulttemp1.sort(); |
| | | for (Integer i = 0; i < 5 - listResulttemp.size(); i++) { |
| | | if (listResulttemp1.size() >= i + 1) { |
| | | listResult1.add(listResulttemp1[i]); |
| | | } else { |
| | | listResult1.add(new lastMContract(null, null, null, null)); |
| | | // 空白期 |
| | | listResulttemp.sort(); |
| | | // 2021-09-10 tcm 排序逻辑调整 start (修改了循环次数 原5) |
| | | for (Integer i = 0; i < listResulttemp.size(); i++) { |
| | | // 2021-09-10 tcm 排序逻辑调整 end |
| | | if (listResulttemp.size() >= i + 1) { |
| | | listResult.add(listResulttemp[i]); |
| | | } |
| | | } |
| | | } |
| | | // 合并 |
| | | listResult.addAll(listResult1); |
| | | // 2021-09-10 tcm 排序逻辑调整 end |
| | | //List<lastMContract> listResult = new List<lastMContract>(); |
| | | return listResult; |
| | | |
| | | // 2021-09-10 tcm 排序逻辑调整 start |
| | | // 非空白期 |
| | | listResulttemp1.sort(); |
| | | for (Integer i = 0; i < 5 - listResulttemp.size(); i++) { |
| | | if (listResulttemp1.size() >= i + 1) { |
| | | listResult1.add(listResulttemp1[i]); |
| | | } else { |
| | | listResult1.add(new lastMContract(null, null, null, null)); |
| | | } |
| | | } |
| | | // 合并 |
| | | listResult.addAll(listResult1); |
| | | // 2021-09-10 tcm 排序逻辑调整 end |
| | | //List<lastMContract> listResult = new List<lastMContract>(); |
| | | return listResult; |
| | | } |
| | | |
| | | |
| | | public static List<Data> getChartData() { |
| | | List<Data> data = new List<Data>(); |
| | | List<Achievement_linkage__c> achlist = [select id, Consumption_rate_Lower__c, Consumption_rate_Upper__c, |
| | | PriceCount_Lower__c, PriceCount_Upper__c from Achievement_linkage__c]; |
| | | for (Achievement_linkage__c al : achlist ) { |
| | | data.add(new Data(al.Consumption_rate_Lower__c, al.Consumption_rate_Upper__c, al.PriceCount_Lower__c, al.PriceCount_Upper__c)); |
| | | } |
| | | return data; |
| | | List<Data> data = new List<Data>(); |
| | | List<Achievement_linkage__c> achlist = [select id, Consumption_rate_Lower__c, Consumption_rate_Upper__c, |
| | | PriceCount_Lower__c, PriceCount_Upper__c from Achievement_linkage__c]; |
| | | for (Achievement_linkage__c al : achlist ) { |
| | | data.add(new Data(al.Consumption_rate_Lower__c, al.Consumption_rate_Upper__c, al.PriceCount_Lower__c, al.PriceCount_Upper__c)); |
| | | } |
| | | return data; |
| | | } |
| | | |
| | | // 价格体系 class |
| | |
| | | public Decimal price_Upper { get; set; } |
| | | public Decimal price_Lower { get; set; } |
| | | public Data(Decimal rate_Lower, Decimal rate_Upper, Decimal price_Lower, Decimal price_Upper) { |
| | | this.rate_Upper = rate_Upper; |
| | | this.rate_Lower = rate_Lower; |
| | | this.price_Upper = price_Upper; |
| | | this.price_Lower = price_Lower; |
| | | this.rate_Upper = rate_Upper; |
| | | this.rate_Lower = rate_Lower; |
| | | this.price_Upper = price_Upper; |
| | | this.price_Lower = price_Lower; |
| | | } |
| | | } |
| | | |
| | |
| | | public Boolean ayearcontract { get; set; } |
| | | // 2021-09-10 tcm 排序逻辑调整 end |
| | | public lastMContract(String contractId, String contractNo, Date endDate, Integer count) { |
| | | this.endDate = endDate; |
| | | this.count = count; |
| | | this.contractId = contractId; |
| | | this.contractNo = contractNo; |
| | | this.endDate = endDate; |
| | | this.count = count; |
| | | this.contractId = contractId; |
| | | this.contractNo = contractNo; |
| | | } |
| | | |
| | | // 排序 |
| | | public Integer compareTo(Object compareTo) { |
| | | lastMContract compareToesd = (lastMContract)compareTo; |
| | | Integer returnValue = 0; |
| | | lastMContract compareToesd = (lastMContract)compareTo; |
| | | Integer returnValue = 0; |
| | | |
| | | // 2021-09-10 tcm 排序逻辑调整 start |
| | | // 判断在数量 |
| | | if (count > compareToesd.count) { |
| | | returnValue = -1; |
| | | } else if (count < compareToesd.count) { |
| | | returnValue = 1; |
| | | } else { |
| | | if (endDate > compareToesd.endDate ) { |
| | | returnValue = 1; |
| | | // 2021-09-10 tcm 排序逻辑调整 start |
| | | // 判断在数量 |
| | | if (count > compareToesd.count) { |
| | | returnValue = -1; |
| | | } else if (count < compareToesd.count) { |
| | | returnValue = 1; |
| | | } else { |
| | | returnValue = -1; |
| | | if (endDate > compareToesd.endDate ) { |
| | | returnValue = 1; |
| | | } else { |
| | | returnValue = -1; |
| | | } |
| | | } |
| | | } |
| | | return returnValue; |
| | | return returnValue; |
| | | } |
| | | |
| | | // 原方案 |
| | | // if (endDate > compareToesd.endDate ) { |
| | | // returnValue = -1; |
| | | // returnValue = -1; |
| | | // } else if (endDate < compareToesd.endDate ) { |
| | | // returnValue = 1; |
| | | // returnValue = 1; |
| | | // }else{ |
| | | // if (count > compareToesd.count ) { |
| | | // returnValue = -1; |
| | | // returnValue = -1; |
| | | // } else if (count < compareToesd.count ) { |
| | | // returnValue = 1; |
| | | // } |
| | | // returnValue = 1; |
| | | // } |
| | | // } |
| | | // return returnValue; |
| | | // 2021-09-10 tcm 排序逻辑调整 end |
| | | } |
| | | } |
| | | } |