// FIXME 見積もり商品の Asset_Model_No__c ですが、数式になっています。トランザクションデータとして、項目を持つべきかと思います。by katsu 20130216
|
// 商談商品のId__c を PricebookEntry.Product2Idに変更すべき
|
// 見積もり可否 ですが、保存時みていますが、Sales_Possibilityを見ないですか?いいえ、js側で見ています
|
public class NewQuoteEntryController {
|
public Integer quoteEntryMaxLine { get; private set; }
|
public Id oppId { get; set; }
|
public Id quoId { get; set; }
|
public Boolean productStatusUpdated { get; set; } // 状態更新、{!$Label.Status_Update} を押下したかどうか
|
public Boolean changedAfterPrint { get; set; } // true の場合、画面に confirm メッセージが表示します。quoIdを新しいinsert。判定はjsにて実施
|
public Boolean changedAfterBid { get; set; } // true の場合、画面に confirm メッセージが表示します。quoIdを新しいinsert。判定はjsにで実施
|
//public Id qlistId { get; set; }
|
//lastbuy 2022/2/9 fy start
|
public Boolean filg { get; set; }
|
public Integer flglastbuy { get; set; }
|
public String errorProductmodel { get; set; }
|
//lastbuy 2022/2/9 fy end
|
|
public String excel_text { get; set; }
|
public Integer select_index { get; set; } // excelImport専用ですが、jsにて制御することになるので、TODO katsu 削除予定
|
public String Product_text { get; set; }
|
public String setProduct_text { get; set; }
|
|
public List<QELine> activities { get; set; }
|
public List<QELine> tmpactivities { get; set; }
|
public QELine active_activity { get; set; }
|
public OppInfo oppInfo { get; set; }
|
//用于检查询价报价具体产品状态是否变更
|
public List<QuoteLineItem> CheckItem {get; set;}
|
//値引き
|
public Decimal DisCalculation { get; set; }
|
public Decimal DisAmount { get; set; }
|
|
//第一販売店
|
//public String SalesName1 { get; set; }
|
public String SalesShopClass1 { get; set; }
|
//public Decimal SalesAmount1 { get; set; }
|
public Decimal Salesprofit1 { get; set; }
|
public Decimal SalesCalculation1 { get; set; }
|
public String SalesId1 { get; set; }
|
// 2018/09/29 CHAN-B4YAB8 经销商折扣 start
|
public Decimal AgencyDiscount { get; set; }
|
//第二販売店
|
//public String SalesName2 { get; set; }
|
public String SalesShopClass2 { get; set; }
|
//public Decimal SalesAmount2 { get; set; }
|
public Decimal Salesprofit2 { get; set; }
|
public Decimal SalesCalculation2 { get; set; }
|
public String SalesId2 { get; set; }
|
//病院マスタ選択リスト
|
public String selection_hp { get; set; }
|
public List<SelectOption> options_hp { get; set; }
|
//画面制御判定用
|
public Boolean displayCost { get; set; }
|
//public Boolean enableEntry { get; set; }
|
public Boolean enableSales { get; set; }
|
public Boolean specialAuthority { get; set; }
|
public Boolean verified { get; set; }
|
public Boolean QuoteDecision { get; set; }
|
public boolean QuoteDecide {get; set;}
|
public Boolean QuoteSapSented { get; set; }
|
public Boolean QuoteCorrect { get; set; }
|
//public Boolean salesEntry { get; set; }
|
public Boolean enableContract { get; set; }
|
//ボタン制御用
|
public Boolean print_button { get; set; }
|
public Boolean sap_button { get; set; }
|
public Boolean Decision_button { get; set; }
|
public Boolean Save_button { get; set; }
|
public Boolean WinOrDecideAlert {get; set;}
|
|
public Boolean over3month { get; set; }
|
public Boolean newQuoteFlag=false;
|
|
// 多年保修 start
|
public string trade {get; private set;}
|
public string quoteGurantee_Period;
|
public string quotemultiYearWarranty;
|
// 多年保修 end
|
//报价试算 判断经销商是否变化 start
|
public string agency1Name;
|
public string agency2Name;
|
//报价试算 判断经销商是否变化 end
|
public Boolean getHiddenSaveBtn() {
|
Boolean rtn = quo.Cancel_Decide__c;
|
Schema.DescribeSObjectResult quoteDesc = Quote.SObjectType.getDescribe();
|
rtn = (rtn == false) ? !quoteDesc.isUpdateable() : rtn;
|
return rtn;
|
}
|
//見積調整金額
|
//public Decimal QuoAmount { get; set; }
|
//public Decimal QuoCalculation { get; set; }
|
//見積
|
public Pricebook2 standardPricebook; // 画面上使わないため、get setなし
|
public Quote quo { get; set; }
|
public Decimal quoStocking_Price_c { get; set; }
|
|
//Get Opportunity Object
|
public Opportunity opp;
|
|
private Map<Id, Product2> prd2LatestValMap;
|
|
public boolean errorflg { get; set; }
|
public String errorMessage { get; set; }
|
public String errorMessagechack { get; set; }
|
public String baseUrl { get; set; }
|
public boolean Messageflg { get; set; }
|
public String Message { get; set; }
|
public Boolean viewSpecialAgencyAmout { get; set; }
|
public Boolean displayFlg { get; set; }
|
public QuoteBean qb { get; set; }
|
public Integer rowIdx { get; set; }
|
|
public NewQuoteEntryController() {
|
quoteEntryMaxLine = Integer.valueOf(System.Label.QuoteEntryMaxLine2);
|
//Apexpages.currentPage().getHeaders().put('X-UA-Compatible', 'IE=8');
|
baseUrl = URL.getSalesforceBaseUrl().toExternalForm();
|
changedAfterPrint = false;
|
changedAfterBid = false;
|
productStatusUpdated = false;
|
// CHAN-AVG3PW 询价报价画面规则变更
|
over3month = false;
|
newQuoteFlag = false;
|
}
|
|
public NewQuoteEntryController(ApexPages.StandardController controller) {
|
this();
|
}
|
|
public PageReference init() {
|
|
system.debug('============start init==============');
|
boolean quoteflg = true;
|
WinOrDecideAlert = false;
|
errorflg = false;
|
displayFlg = true;
|
//Quote
|
standardPricebook = ControllerUtil.getStandardPricebook();
|
quo = new Quote();
|
qb = new QuoteBean();
|
String DeveloperName = '';
|
//Opportunityid
|
if (oppId == null) {
|
oppId = System.currentPageReference().getParameters().get('oppid');
|
if (oppId == Null) {
|
quoId = System.currentPageReference().getParameters().get('id');
|
|
List<Quote> ql = New List<Quote>();
|
//添加行
|
ql = [select Id, OpportunityId, Opportunity.RecordType.DeveloperName,LineItemCount From Quote Where Id = :quoId];
|
if (ql.size() > 0) {
|
oppId = ql[0].OpportunityId;
|
//添加行
|
if(ql[0].LineItemCount >quoteEntryMaxLine){
|
quoteEntryMaxLine = ql[0].LineItemCount;
|
}
|
DeveloperName = ql[0].Opportunity.RecordType.DeveloperName;
|
}
|
} else {
|
quoId = System.currentPageReference().getParameters().get('copyid');
|
system.debug('copyid++++++++++++'+quoId);
|
if (quoId != null) {
|
// コピーのデータが後で作成する
|
} else {
|
List<Quote> ql = New List<Quote>();
|
//添加行
|
ql = [select Id, OpportunityId,LineItemCount From Quote Where OpportunityId = :oppId];
|
if (ql.size() > 0) {
|
//添加行
|
if(ql[0].LineItemCount >quoteEntryMaxLine){
|
quoteEntryMaxLine = ql[0].LineItemCount;
|
}
|
quoteflg = true;
|
} else {
|
quoteflg = false;
|
}
|
}
|
}
|
}
|
|
if (DeveloperName == 'SI_Oppor') {
|
PageReference pageRef = new PageReference('/apex/SI_NewQuoteEntry?id=' + quoId);
|
return pageRef;
|
}
|
system.debug('DeveloperName============' + DeveloperName);
|
//--User
|
List<User> us = New List<User>();
|
String userid = UserInfo.getUserId();
|
if (userid != null) {
|
us = [Select Quote_Correct__c, Quote_Special_Operation__c, Cost_Referable__c, ViewSpecialAgencyAmout__c From User Where Id = :userid];
|
if (us.size() > 0) {
|
verified = us[0].Quote_Correct__c;
|
specialAuthority = us[0].Quote_Special_Operation__c;
|
displayCost = us[0].Cost_Referable__c;
|
viewSpecialAgencyAmout = us[0].ViewSpecialAgencyAmout__c;
|
}
|
}
|
//--Opportunity
|
List<Opportunity> oppList = New List<Opportunity>();
|
String accountid;
|
|
oppList = [SELECT Account.Name, Account.RecordType.DeveloperName,
|
CLBIC_Category__c, HP_Name__c, Name, CurrencyIsoCode, Wholesale_Price__c, Department_Name__c,
|
Direct_Separate__c, Trade__c, AccountId, New_Opportunity__c, Estimation_Decision__c, SAP_Send_OK__c, Sales_Root__c,
|
Agency1__c, Agency2__c, Stocking_Price__c, Purchasing_Cost__c, Opportunity_No__c, StageName,
|
Agency1__r.Special__c, Agency2__r.Special__c, Account.Parent.Special__c
|
// LHJ Start
|
, Authorized_DB_No__c, Authorized_Finish_Sales__c, If_Need_Authorize__c
|
// LHJ End
|
// 多年保修 start
|
, Gurantee_Period__c , multiYearWarranty__c, MultiYearWarrantyTotalPrice__c
|
// 多年保修 end
|
// CHAN-BEN5UC start
|
, Hospital__c, Department_Class__c
|
,Is_Corrosion__c,
|
// CHAN-BEN5UC end
|
//【是否需要价格申请】 thh start
|
If_Need_PriceApply__c
|
//【是否需要价格申请】 thh end
|
FROM Opportunity Where Id = :oppId];
|
// 多年保修 start
|
trade = '外貿';
|
// 多年保修 end
|
if (oppList.size() > 0) {
|
|
opp = oppList[0];
|
// 多年保修 start
|
trade = opp.Trade__c;
|
// 多年保修 end
|
QuoteDecision = opp.Estimation_Decision__c;
|
QuoteDecide = QuoteDecision;
|
QuoteSapSented = opp.SAP_Send_OK__c;
|
QuoteCorrect = opp.New_Opportunity__c;
|
|
enableSales = false;
|
if (opp.Sales_Root__c != null) {
|
if (opp.Sales_Root__c == '販売店') {
|
enableSales = true;
|
opp.Sales_Root__c = System.Label.Sales_Outlet;
|
} else {
|
enableSales = false;
|
opp.Sales_Root__c = System.Label.OCM_Direct;
|
}
|
}
|
|
accountid = opp.AccountId;
|
|
if (QuoteDecision == true) {
|
enableContract = true;
|
} else {
|
enableContract = false;
|
}
|
|
oppInfo = new OppInfo(opp);
|
|
if (opp.SAP_Send_OK__c == false) {
|
displayFlg = true;
|
} else {
|
if (opp.Agency1__r.Special__c || opp.Agency1__r.Special__c || opp.Account.Parent.Special__c) {
|
// 特別販売店の引合い
|
if (viewSpecialAgencyAmout) {
|
displayFlg = true;
|
} else {
|
displayFlg = false;
|
}
|
} else {
|
displayFlg = true;
|
}
|
}
|
}
|
|
//Quote
|
Integer i;
|
if (quoId == null) {
|
quoId = System.currentPageReference().getParameters().get('id');
|
}
|
if (quoId == null) {
|
if (quoteflg == false) {
|
//商談商品が存在、見積が存在しないデータの対応
|
List<OpportunityLineItem> items = New List<OpportunityLineItem>();
|
if (oppId == null) {
|
oppId = System.currentPageReference().getParameters().get('oppid');
|
}
|
items = [Select Id, Asset_Model_No__c, SFDA_Status__c, Name__c, ProductCode__c, PricebookEntry.Product2.StorageStatus__c,
|
//CHAN-BKU3XH 检查是否存在不是同一个供销商名称 精琢技术 2020/02/17 Start 增加字段,不可取消多年保&& 增加检索阿西赛多 2020/09/10start
|
Qty_Unit__c, Cost__c, UnitPrice, ListPrice__c, Quantity, BSS_Category__c, TotalPrice,PricebookEntry.Product2.VenderName__c,PricebookEntry.Product2.CanNotCancelledGurantee__c,PricebookEntry.Product2.Is_DangerousChemicals__c,
|
//CHAN-BKU3XH 检查是否存在不是同一个供销商名称 精琢技术 2020/02/17 end 增加字段
|
PricebookEntry.Product2.SFDA_Status__c, Product_Cost__c, Product_ListPrice__c, PricebookEntry.Product2.Sales_Possibility__c, PricebookEntry.Product2.Name,
|
PricebookEntryId, PricebookEntry.Product2Id, Opportunity.Trade__c, PricebookEntry.Product2.Intra_Trade_List_RMB__c, PricebookEntry.Product2.Intra_Trade_Cost_RMB__c,
|
PricebookEntry.Product2.Foreign_Trade_List_US__c, PricebookEntry.Product2.Packing_list_manual__c, PricebookEntry.Product2.Foreign_Trade_Cost_US__c, UnitPrice__c, TotalPrice__c
|
, AgencyUnitPrice__c, AgencySubtotal__c, Present__c // CHAN-B4YAB8 2018/09/29 业务机会产品的赠送、经销商小计、单价
|
//多年保修 start
|
, multiYearWarranty__c , If_Cancel_Guarantee__c , GuaranteePeriod__c,
|
ServicePrice__c , GuranteePrice__c,
|
ProductEntend_gurantee_period_all__c,
|
ProductGuranteePrice__c, GuranteeType__c,
|
//ProductIfConsumable__c,
|
warrantyType__c, productServicePrice__c,
|
NoDiscountTotal__c
|
, provistonPeriod__c
|
, PricebookEntry.Product2.Entend_gurantee_period_all__c
|
, PricebookEntry.Product2.Intra_Trade_Gurantee_RMB__c
|
, PricebookEntry.Product2.Intra_Trade_Service_RMB__c
|
, PricebookEntry.Product2.GuranteeType__c
|
// 维修合同报价
|
, PricebookEntry.Product2.Maintenance_Price_Year__c
|
, Maintenance_Price_Year__c
|
//多年保修 end
|
//外贸多年保 2021/01/04 精琢技术 wql start
|
//维修合同报价(USD)
|
,PricebookEntry.Product2.Repair_Contract_USD__c
|
//计提金额(不含税,USD)
|
,PricebookEntry.Product2.Intra_Trade_Foreign_RMB__c
|
//NoDiscount 金额(USD)
|
,PricebookEntry.Product2.NoDiscount_Foreign__c
|
//外贸多年保 2021/01/04 精琢技术 wql end
|
|
//SFDC停止预警 lt 20211009 start
|
,PricebookEntry.Product2.Estimated_ConsumptionDueDate__c
|
//SFDC停止预警 lt 20211009 end
|
|
From OpportunityLineItem
|
Where OpportunityId = :oppId Order by Item_Order__c, Id];
|
|
if (items.size() > 0) {
|
activities = new List<QELine>();
|
i = 0;
|
|
for (OpportunityLineItem o : items) {
|
QELine c = new QELine(o, i);
|
activities.add(c);
|
i++;
|
}
|
for (integer j = i; j < quoteEntryMaxLine; j++) {
|
QELine c = new QELine(j);
|
activities.add(c);
|
}
|
productStatusUpdated = true;
|
|
} else {
|
//新規リストコントローラの取得
|
if (activities == null) {
|
activities = new List<QELine>();
|
for (i = 0; i < quoteEntryMaxLine; i++) {
|
QELine active_activity = new QELine(i);
|
activities.add(active_activity);
|
}
|
}
|
}
|
} else {
|
//新規リストコントローラの取得
|
if (activities == null) {
|
activities = new List<QELine>();
|
for (i = 0; i < quoteEntryMaxLine; i++) {
|
QELine active_activity = new QELine(i);
|
activities.add(active_activity);
|
}
|
}
|
}
|
} else {
|
//添加行
|
List<Quote> quoList =
|
[ SELECT Id, Name, Cancel_Decide__c, CreatedDate, PriceRefreshDate__c, Quote_Print_Date__c,
|
Dealer_Final_Price__c, TotalPrice__c, Estimation_List_Price__c, QuoteNumber,
|
QuoteToName, Quote_Expiration_Date__c, Quote_Comment__c, Stocking_Price__c, Unit_Price__c,
|
Offer_Amount__c, TOTAL__c, Discount__c, Pricing__c, Preferential_Trading_Price__c, Contract__c,
|
Agency1__c, OCM_Agent1_Price__c, Agency1_Profit__c, Agency1_Profit_Rate__c, Print_HP_Name__c,
|
Agency2__c, Agent1_Agent2_Price__c, Agency2_Profit__c, Agency2_Profit_Rate__c, Quote_No__c,
|
Quote_Adjust_Amount__c, Quote_Adjust_Calculate__c, Discount_Amount__c, Discount_Amount_Calculate__c, Installation_location__c,
|
QuoteTotal_Page__c, Dealer_Final_Price_Page__c, Quote_Adjust_Amount_Page__c, OCM_Agent1_Price_Page__c, Agent1_Agent2_Price_Page__c
|
, AgencyDiscount__c // 2018/09/28 CHAN-B4YAB8 经销商折扣
|
// 多年保修 start
|
, Gurantee_Period__c , multiYearWarranty__c, MultiYearWarrantyTotalPrice__c,
|
Preferential_Gurantee_Period__c,LineItemCount
|
// 多年保修 end
|
//报价试算 start
|
,IsQuoteTrial__c
|
//报价试算 end
|
FROM Quote Where Id = :quoId];
|
List<QuoteLineItem> items =
|
[Select Id, Asset_Model_No__c, SFDA_Status__c, Product_Sales_Possibility__c,
|
//CHAN-BKU3XH 检查是否存在不是同一个供销商名称 精琢技术 2020/02/17 Start 增加字段 不可取消多年保&&增加检索阿西赛多 2020/09/10
|
Name__c, BSS_Category__c, Quote.Quote_Print_Date__c,PricebookEntry.Product2.VenderName__c,PricebookEntry.Product2.CanNotCancelledGurantee__c,PricebookEntry.Product2.Is_DangerousChemicals__c,
|
//CHAN-BKU3XH 检查是否存在不是同一个供销商名称 精琢技术 2020/02/17 end 增加字段
|
Qty_Unit__c, Cost__c, UnitPrice__c, ListPrice__c, Quantity, TotalPrice__c,
|
PricebookEntry.Product2.SFDA_Status__c, ProductCode__c, Product_Cost__c, Product_ListPrice__c, PricebookEntry.Product2.Sales_Possibility__c, PricebookEntry.Product2.Name,
|
PricebookEntryId, PricebookEntry.Product2Id, UnitPrice_Page__c, PricebookEntry.Product2.Packing_list_manual__c, PricebookEntry.Product2.StorageStatus__c
|
, AgencyUnitPrice__c, AgencySubtotal__c, Present__c // CHAN-B4YAB8 2018/9/29 赠送、经销商单价和小计
|
// 多年保修 start
|
//ET促销标记 start
|
, multiYearWarranty__c , If_Cancel_Guarantee__c , GuaranteePeriod__c,
|
//ET促销标记 end
|
ServicePrice__c , GuranteePrice__c, ProductEntend_gurantee_period_all__c,
|
ProductGuranteePrice__c, GuranteeType__c,
|
warrantyType__c, productServicePrice__c, NoDiscountTotal__c
|
, provistonPeriod__c
|
, PricebookEntry.Product2.Entend_gurantee_period_all__c
|
, PricebookEntry.Product2.Intra_Trade_Gurantee_RMB__c
|
, PricebookEntry.Product2.Intra_Trade_Service_RMB__c
|
, PricebookEntry.Product2.GuranteeType__c
|
// 维修合同报价
|
, PricebookEntry.Product2.Maintenance_Price_Year__c
|
, Maintenance_Price_Year__c
|
// 多年保修 end
|
//外贸多年保 2021/01/04 精琢技术 wql start
|
//维修合同报价(USD)
|
,PricebookEntry.Product2.Repair_Contract_USD__c
|
//计提金额(不含税,USD)
|
,PricebookEntry.Product2.Intra_Trade_Foreign_RMB__c
|
//NoDiscount 金额(USD)
|
,PricebookEntry.Product2.NoDiscount_Foreign__c
|
//fy 预留产品标识
|
,PricebookEntry.Product2.LastbuyProductFLG__c
|
,Quote.Opportunity.Trade__c
|
//外贸多年保 2021/01/04 精琢技术 wql end
|
|
//SFDC停止预警 lt 20211009 start
|
,PricebookEntry.Product2.Estimated_ConsumptionDueDate__c
|
//SFDC停止预警 lt 20211009 end
|
|
From QuoteLineItem where Quoteid = :quoId Order by Item_Order__c, Id];
|
String copyQuoId = System.currentPageReference().getParameters().get('copyid');
|
system.debug('copyid2++++++++++++'+copyQuoId);
|
CheckItem = items;
|
|
if (copyQuoId == null) {
|
} else {
|
// copyの場合、quoIdをnullに戻す
|
quoId = null;
|
}
|
if (quoList.size() > 0) {
|
//添加行
|
if(quoList[0].LineItemCount >quoteEntryMaxLine){
|
quoteEntryMaxLine = quoList[0].LineItemCount;
|
}
|
if (copyQuoId == null) {
|
quo = quoList[0];
|
quo.QuoteName__c = quo.Name;
|
// 多年保修 start
|
quoteGurantee_Period = quo.Gurantee_Period__c;
|
quotemultiYearWarranty = '' + quo.multiYearWarranty__c;
|
// 多年保修 end
|
//报价试算 增加经销商前后对比 wql 20210508 start
|
agency1Name = quo.Agency1__c;
|
agency2Name = quo.Agency2__c;
|
//报价试算 增加经销商前后对比 wql 20210508 end
|
// 多年保修 start
|
//HWAG-BLDE6J 带出字段 2020/02/10 Start
|
quo.Gurantee_Period__c = quoList[0].Gurantee_Period__c;
|
quo.multiYearWarranty__c = quoList[0].multiYearWarranty__c;
|
quo.MultiYearWarrantyTotalPrice__c = quoList[0].MultiYearWarrantyTotalPrice__c;
|
// 多年保修 end
|
qb.setPriceRefreshPeriodByDate(quo.PriceRefreshDate__c == null ? quo.CreatedDate.Date() : quo.PriceRefreshDate__c);
|
qb.Estimation_List_Price = quo.Estimation_List_Price__c;
|
quo.QuoteTotal_Page__c = quo.TotalPrice__c;
|
quo.Dealer_Final_Price_Page__c = quo.Dealer_Final_Price__c;
|
qb.Quote_Adjust_Calculate = quo.Quote_Adjust_Calculate__c;
|
quo.Quote_Adjust_Amount_Page__c = quo.Quote_Adjust_Amount__c;
|
DisCalculation = quo.Discount_Amount_Calculate__c;
|
DisAmount = quo.Discount_Amount__c;
|
quo.Agency1__c = quo.Agency1__c;
|
AgencyDiscount = quo.AgencyDiscount__c; //2018/09/28 CHAN-B4YAB8 经销商折扣
|
quo.OCM_Agent1_Price_Page__c = quo.OCM_Agent1_Price__c;
|
Salesprofit1 = quo.Agency1_Profit__c;
|
qb.SalesCalculation1 = quo.Agency1_Profit_Rate__c;
|
// quo.Agency1_Profit_Rate__c = quo.Agency1_Profit_Rate__c;
|
quo.Agency2__c = quo.Agency2__c;
|
quo.Agent1_Agent2_Price_Page__c = quo.Agent1_Agent2_Price__c;
|
Salesprofit2 = quo.Agency2_Profit__c;
|
qb.SalesCalculation2 = quo.Agency2_Profit_Rate__c;
|
//HWAG-BLDE6J 带出字段 2020/02/10 end
|
} else {
|
|
|
//HWAG-BLDE6J 带出字段 2020/02/11 Start
|
// quo.QuoteName__c = '';
|
quo = quoList[0];
|
//再报价新出来的报价名称,把“已取消”三个字去掉 精琢技术 thh 2021-09-30 start
|
Integer QX = quo.Name.indexof('已取消:');
|
System.debug('Name is ' + quo.Name + ', QX is ' + QX);
|
if (QX >= 0) {
|
quo.Name = quo.Name.subString(QX + 4);
|
}
|
//再报价新出来的报价名称,把“已取消”三个字去掉 精琢技术 thh 2021-09-30 end
|
//报价名称
|
quo.QuoteName__c = quo.Name;
|
//再报价时是否进行过报价计算设为未进行过报价计算 fy 2021-11-23 start
|
quo.IsQuoteTrial__c = false;
|
//再报价时是否进行过报价计算设为未进行过报价计算 fy 2021-11-23 end
|
quo.Cancel_Decide__c = quo.Cancel_Decide__c;
|
quo.Cancel_Decide__c = false;
|
quo.PriceRefreshDate__c = Date.today();
|
quo.Quote_Date__c = null;
|
quo.Quote_Print_Date__c = null;
|
//报价总额
|
quo.QuoteTotal_Page__c = quo.TotalPrice__c;
|
//第一经销商
|
quo.OCM_Agent1_Price_Page__c = quo.OCM_Agent1_Price__c;
|
//第二经销商
|
quo.Agent1_Agent2_Price_Page__c = quo.Agent1_Agent2_Price__c;
|
//医院的合同金额
|
quo.Dealer_Final_Price_Page__c = quo.Dealer_Final_Price__c;
|
//HWAG-BLDE6J 带出字段 2020/02/11 end
|
}
|
// 多年保修 start
|
// quo.Gurantee_Period__c = quoList[0].Gurantee_Period__c;
|
// quo.multiYearWarranty__c = quoList[0].multiYearWarranty__c;
|
// quo.MultiYearWarrantyTotalPrice__c = quoList[0].MultiYearWarrantyTotalPrice__c;
|
// // 多年保修 end
|
// qb.setPriceRefreshPeriodByDate(quo.PriceRefreshDate__c == null ? quo.CreatedDate.Date() : quo.PriceRefreshDate__c);
|
// qb.Estimation_List_Price = quo.Estimation_List_Price__c;
|
// quo.QuoteTotal_Page__c = quo.TotalPrice__c;
|
// quo.Dealer_Final_Price_Page__c = quo.Dealer_Final_Price__c;
|
// qb.Quote_Adjust_Calculate = quo.Quote_Adjust_Calculate__c;
|
// quo.Quote_Adjust_Amount_Page__c = quo.Quote_Adjust_Amount__c;
|
// DisCalculation = quo.Discount_Amount_Calculate__c;
|
// DisAmount = quo.Discount_Amount__c;
|
// quo.Agency1__c = quo.Agency1__c;
|
// AgencyDiscount = quo.AgencyDiscount__c; //2018/09/28 CHAN-B4YAB8 经销商折扣
|
// quo.OCM_Agent1_Price_Page__c = quo.OCM_Agent1_Price__c;
|
// Salesprofit1 = quo.Agency1_Profit__c;
|
// qb.SalesCalculation1 = quo.Agency1_Profit_Rate__c;
|
// // quo.Agency1_Profit_Rate__c = quo.Agency1_Profit_Rate__c;
|
// quo.Agency2__c = quo.Agency2__c;
|
// quo.Agent1_Agent2_Price_Page__c = quo.Agent1_Agent2_Price__c;
|
// Salesprofit2 = quo.Agency2_Profit__c;
|
// qb.SalesCalculation2 = quo.Agency2_Profit_Rate__c;
|
// quo.Agency2_Profit_Rate__c = quo.Agency2_Profit_Rate__c;
|
}
|
|
activities = new List<QELine>();
|
i = 0;
|
QELine c = new QELine(i);
|
if (items.size() > 0) {
|
for (QuoteLineItem o : items) {
|
c = new QELine(o, i, copyQuoId);
|
activities.add(c);
|
i++;
|
}
|
|
for (integer j = i; j < quoteEntryMaxLine; j++) {
|
c = new QELine(j);
|
activities.add(c);
|
}
|
|
} else {
|
activities = new List<QELine>();
|
for (i = 0; i < quoteEntryMaxLine; i++) {
|
QELine active_activity = new QELine(i);
|
activities.add(active_activity);
|
}
|
}
|
//******************************************************************************************
|
// 增加检测产品状态是否发生变化
|
//******************************************************************************************
|
|
// CHAN-BHN7P5 start
|
|
//全件洗い替えします。
|
if (activities.size() > 0 && !QuoteDecision) {
|
productStatusUpdated = false;
|
for (QELine a : activities) {
|
if (string.isNotEmpty(a.Asset_Model)) {
|
// CHAN-AVG3PW 询价报价画面规则变更
|
// 只要更新,就生成新报价编码
|
if (a.PageObject.SFDA_Status__c != a.latestInfo.SFDA_Status ||
|
a.PageObject.Name__c != a.latestInfo.ProductName ||
|
a.ListPrice_Page != a.latestInfo.ListPrice ||
|
a.PageObject.Cost__c != a.latestInfo.Cost ||
|
a.Cost_c != a.latestInfo.Cost
|
// 多年保修 start
|
//计提金额
|
|| a.ProductGuranteePrice != a.latestInfo.Intra_Trade_Gurantee
|
|| a.PageObject.productServicePrice__c != a.latestInfo.Intra_Trade_Service
|
// 维修合同报价
|
|| a.Maintenance_Price_Year != a.latestInfo.Maintenance_Price_Year
|
|| a.PageObject.GuranteeType__c != a.latestInfo.GuranteeType
|
|| a.PageObject.ProductEntend_gurantee_period_all__c != a.latestInfo.ProductEntend_gurantee_period_all
|
//不可取消多年保 询价根据勾不同 自动更新价格 精琢技术 wql 20200924
|
|| a.PageObject.PricebookEntry.Product2.CanNotCancelledGurantee__c != a.latestInfo.CanNotCancelledGurantee
|
//不可取消多年保 询价根据勾不同 自动更新价格 精琢技术 wql 20200924
|
// 多年保修 end
|
) {
|
system.debug('qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq:');
|
system.debug('上次SFDA状态:'+a.PageObject.SFDA_Status__c);
|
system.debug('最新的SFDA状态:'+a.latestInfo.SFDA_Status);
|
system.debug('上次Name__c:'+a.PageObject.Name__c);
|
system.debug('最新的ProductName:'+a.latestInfo.ProductName);
|
system.debug('上次ListPrice:'+a.ListPrice_Page);
|
system.debug('最新的上次ListPrice:'+a.latestInfo.ListPrice);
|
system.debug('上次Cost__c:'+a.Cost_c);
|
system.debug('最新的Cost:'+a.latestInfo.Cost);
|
system.debug('上次Cost__c:'+a.Cost_c);
|
system.debug('最新的Cost:'+a.latestInfo.Cost);
|
system.debug('上次计提金额:'+a.ProductGuranteePrice);
|
system.debug('最新的计提金额:'+a.latestInfo.Intra_Trade_Gurantee);
|
system.debug('上次nodis:'+a.PageObject.productServicePrice__c);
|
system.debug('最新的nodis:'+a.latestInfo.Intra_Trade_Service);
|
system.debug('上次维修合同报价:'+a.Maintenance_Price_Year);
|
system.debug('最新的维修合同报价:'+a.latestInfo.Maintenance_Price_Year);
|
system.debug('上次GuranteeType__c:'+a.PageObject.GuranteeType__c);
|
system.debug('最新的GuranteeType__c:'+a.latestInfo.GuranteeType);
|
system.debug('上次ProductEntend_gurantee_period_all__c:'+a.PageObject.ProductEntend_gurantee_period_all__c);
|
system.debug('最新的ProductEntend_gurantee_period_all__c:'+a.latestInfo.ProductEntend_gurantee_period_all);
|
system.debug('上次CanNotCancelledGurantee__c:'+a.PageObject.PricebookEntry.Product2.CanNotCancelledGurantee__c);
|
system.debug('最新的CanNotCancelledGurantee__c:'+a.latestInfo.CanNotCancelledGurantee);
|
system.debug('newQuoteFlag11:'+newQuoteFlag);
|
newQuoteFlag = true;
|
productStatusUpdated = true;
|
}
|
if (a.pageObject.Name__c != a.latestInfo.ProductName) {
|
a.changed_name = true;
|
productStatusUpdated = true;
|
}
|
if (a.pageObject.SFDA_Status__c != a.latestInfo.SFDA_Status) {
|
a.changed_sfda = true;
|
productStatusUpdated = true;
|
}
|
if (a.ListPrice_Page != a.latestInfo.ListPrice) {
|
a.changed_list = true;
|
productStatusUpdated = true;
|
}
|
if (a.pageObject.Cost__c != a.latestInfo.Cost) {
|
a.changed_cost = true;
|
productStatusUpdated = true;
|
}
|
// TODO katsu SFDAステータスの確認などいらないですか(最新商品XXXの項目も)
|
|
a.PageObject.SFDA_Status__c = a.latestInfo.SFDA_Status;
|
|
a.PageObject.Name__c = a.latestInfo.ProductName;
|
a.ListPrice_Page = a.latestInfo.ListPrice;
|
a.PageObject.Cost__c = a.latestInfo.Cost;
|
a.Cost_c = a.latestInfo.Cost;
|
//多年保修 start
|
a.ProductGuranteePrice = a.latestInfo.Intra_Trade_Gurantee;
|
// 计提金额
|
a.PageObject.productServicePrice__c = a.latestInfo.Intra_Trade_Service;
|
// 维修合同报价
|
a.Maintenance_Price_Year = a.latestInfo.Maintenance_Price_Year;
|
// 多年保修年限
|
a.PageObject.ProductEntend_gurantee_period_all__c
|
= a.latestInfo.ProductEntend_gurantee_period_all;
|
a.PageObject.GuranteeType__c = a.latestInfo.GuranteeType;
|
//多年保修 end
|
}
|
}
|
|
}
|
pageArrange();
|
|
// CHAN-BHN7P5 end
|
// CHAN-BHN7P5 原逻辑 start
|
// else {
|
// List<String> product2Ids = New List<String>();
|
// if (activities.size() > 0) {
|
// for (QELine a : activities) {
|
// if (String.isBlank(a.PageObject.Id__c) == false) {
|
// product2Ids.add(a.PageObject.Id__c);
|
// }
|
// }
|
// }
|
// Map<String, QuoteLineItem> loopMap = new Map<String, QuoteLineItem>();
|
// if (CheckItem.size() > 0) {
|
// for (QuoteLineItem qli : CheckItem) {
|
// loopMap.put(qli.PricebookEntry.Product2Id, qli);
|
// }
|
// }
|
// // ここを修正したら、NFM007.triggerも要確認
|
// prd2LatestValMap = new Map<Id, Product2>();
|
// if (CheckItem.size() > 0) {
|
// List<Product2> plo = [Select Id, Name, Estimation_Entry_Possibility__c, SFDA_Status__c, Packing_list_manual__c,
|
// Intra_Trade_List_RMB__c, Foreign_Trade_List_US__c,
|
// Intra_Trade_Cost_RMB__c, Foreign_Trade_Cost_US__c
|
// // 多年保修 start
|
// , Intra_Trade_Gurantee_RMB__c
|
// , Intra_Trade_Service_RMB__c
|
// , Maintenance_Price_Year__c
|
// // 多年保修 end
|
// From Product2 Where Id IN :product2Ids];
|
// if (plo.size() > 0) {
|
// for (Product2 prd2 : plo) {
|
// Decimal listPrice = 0;
|
// Decimal costPrice = 0;
|
// //多年保修 start
|
// decimal ProductGuranteePrice = 0;
|
// decimal productService = 0;
|
// decimal productMaintenance_Price_Year = 0;
|
// //多年保修 end
|
// if (opp.Trade__c == '内貿') {
|
// listPrice = prd2.Intra_Trade_List_RMB__c;
|
// costPrice = prd2.Intra_Trade_Cost_RMB__c;
|
// //多年保修 start
|
// ProductGuranteePrice = prd2.Intra_Trade_Gurantee_RMB__c;
|
// productService = prd2.Intra_Trade_Service_RMB__c;
|
// productMaintenance_Price_Year = prd2.Maintenance_Price_Year__c == null ? 0 : prd2.Maintenance_Price_Year__c;
|
// //多年保修 end
|
// } else if (opp.Trade__c == '外貿') {
|
// listPrice = prd2.Foreign_Trade_List_US__c;
|
// costPrice = prd2.Foreign_Trade_Cost_US__c;
|
// }
|
// if ( prd2.Name.replaceAll('\\s+', '') != loopMap.get(prd2.Id).Name__c.replaceAll('\\s+', '') ||
|
// prd2.SFDA_Status__c != loopMap.get(prd2.Id).SFDA_Status__c ||
|
// listPrice != loopMap.get(prd2.Id).ListPrice__c ||
|
// costPrice != loopMap.get(prd2.Id).Cost__c
|
// // 多年保修 start
|
// || ( opp.Trade__c == '内貿' &&
|
// (ProductGuranteePrice != loopMap.get(prd2.Id).ProductGuranteePrice__c
|
// || productService != loopMap.get(prd2.Id).productServicePrice__c
|
// || productMaintenance_Price_Year !=
|
// loopMap.get(prd2.Id).Maintenance_Price_Year__c
|
// ))
|
// // 多年保修 end
|
// ) {
|
// WinOrDecideAlert = true;
|
// }
|
|
// }
|
// }
|
|
// }
|
// system.debug('WinOrDecideAlert:::::::2' + WinOrDecideAlert );
|
// }// CHAN-BHN7P5 原逻辑 end
|
//******************************************************************************************
|
// 增加检测产品状态是否发生变化==================End 20161115 by ZDF
|
//******************************************************************************************
|
}
|
|
// 多年保修 start
|
if (quo.Gurantee_Period__c == null) {
|
quo.Gurantee_Period__c = '1';
|
}
|
|
// 多年保修 end
|
//初期値設定
|
if (accountid != null) {
|
List<Account> accs2 = [Select Id, RecordType.DeveloperName, Hospital__c, Agent_Ref__c From Account Where Id = :accountid];
|
if (accs2.size() > 0) {
|
List<Account> accs = new List<Account>();
|
if (accs2[0].RecordType.DeveloperName != 'AgencyContract') {
|
accs = [Select Id, Name, Site, Alias_Name2__c From Account Where Id = :accs2[0].Hospital__c];
|
} else {
|
accs = [Select Id, Name, Site, Alias_Name2__c From Account Where Id = :accs2[0].Agent_Ref__c];
|
}
|
if (accs.size() > 0) {
|
options_hp = new List<SelectOption>();
|
if (accs[0].Name != null) {
|
options_hp.add(new SelectOption(accs[0].Name, accs[0].Name));
|
}
|
if (accs[0].Site != null) {
|
options_hp.add(new SelectOption(accs[0].Site, accs[0].Site));
|
}
|
if (accs[0].Alias_Name2__c != null) {
|
options_hp.add(new SelectOption(accs[0].Alias_Name2__c, accs[0].Alias_Name2__c));
|
}
|
//初期値設定
|
if (quo.Print_HP_Name__c == null) {
|
selection_hp = accs[0].Name;
|
} else {
|
selection_hp = quo.Print_HP_Name__c;
|
}
|
}
|
}
|
}
|
|
if (quo.Quote_Expiration_Date__c == null) {
|
quo.Quote_Expiration_Date__c = Date.today() + 30;
|
}
|
|
//--Printbutton
|
if (QuoteCorrect == false) {
|
print_button = true;
|
} else if (verified == false) {
|
print_button = true;
|
} else {
|
print_button = false;
|
}
|
//--SAPButton
|
if (QuoteDecision == false) {
|
sap_button = true;
|
} else if (specialAuthority == false) {
|
sap_button = true;
|
} else {
|
sap_button = false;
|
}
|
//--Decisionbutton
|
if (verified == true) {
|
Decision_button = false;
|
} else if (QuoteCorrect == false) {
|
Decision_button = true;
|
} else if (QuoteDecision == true) {
|
Decision_button = true;
|
} else {
|
Decision_button = false;
|
}
|
// もし、すでに決定ずみの場合、決定ボタンをつかえないようにする
|
if (QuoteSapSented == true || QuoteDecision == true) {
|
Decision_button = true;
|
}
|
//--Savebutton
|
if (QuoteDecision == true) {
|
Save_button = true;
|
} else {
|
Save_button = false;
|
}
|
// CHAN-AVG3PW 询价报价画面规则变更
|
Datetime cDate = quo.CreatedDate;
|
over3month = cDate != null && cDate.date().addMonths(3) < Date.today();
|
|
return null;
|
}
|
|
|
//Search Events============================================================
|
// TODO ManualEntryと同様、jsにて解決できる、ここでwebserviceだけを実装、今後 by katsu
|
public PageReference setProductEntry() {
|
system.debug('-----:start');
|
system.debug('○○○○○○○○○○○○○○○Welcome to setProductEntry!!');
|
system.debug('▼▼▼▼▼setProduct_text:' + setProduct_text);
|
setOppFromOppInfo();
|
List<String> productIDLIST = new List<String>();
|
//既存データ数の確認
|
Integer currentDetailNumber = 0;
|
for (QELine s : activities) {
|
//データ判定にAsset_Model_Noを使用
|
if ((s.Asset_Model == null) || (s.Asset_Model == '')) {
|
break;
|
}
|
currentDetailNumber++;
|
}
|
|
//既存データ数が150以上?
|
if (currentDetailNumber >= quoteEntryMaxLine) {
|
//添加行
|
errorflg = true;
|
errormessage = System.Label.Error_Message32;
|
PageArrange();
|
system.debug('-----:強制終了:00');
|
return null;
|
}
|
|
// SearchSetProductから、セット品コードは渡ってきたか?
|
if (setProduct_text == null) {
|
// セット品コードが渡ってこなかった場合
|
// 終了
|
PageArrange();
|
system.debug('-----:強制終了:01');
|
return null;
|
} else {
|
productIDLIST = setProduct_text.split(',');
|
}
|
|
// セット品明細の ProductId一覧を格納する
|
// pricebookEntry + product2へのクエリのWhere句で使用する
|
List<Id> productIds = null;
|
|
// ----------------------------------------------------------------------------------------
|
// 該当するセット品明細のレコードを取得
|
// ----------------------------------------------------------------------------------------
|
system.debug('-----:Product_Set_Detail__c select start');
|
//CHAN-BKU3XH 检查是否存在不是同一个供销商名称 精琢技术 2020/02/17 Start 增加字段&&增加检索阿西赛多 start
|
List<Product_Set_Detail__c> productSetDetails = [SELECT Id, Product__c, Quantity__c, Product_Set__r.Name,Product__r.VenderName__c,Product__r.CanNotCancelledGurantee__c,Product__r.Is_DangerousChemicals__c FROM Product_Set_Detail__c Where Product_Set__c in :productIDLIST];
|
//CHAN-BKU3XH 检查是否存在不是同一个供销商名称 精琢技术 2020/02/17 end 增加字段
|
system.debug('-----:Product_Set_Detail__c select end');
|
if (productSetDetails.size() == 0) {
|
PageArrange();
|
return null;
|
} else {
|
productIds = new List<Id>();
|
for (Product_Set_Detail__c local : productSetDetails) {
|
productIds.add(local.Product__c);
|
}
|
}
|
|
//=======Temporary=====
|
tmpactivities = activities;
|
|
//=======Initialize=========
|
activities = new List<QELine>();
|
|
boolean lineflg = false;
|
|
// ----------------------------------------------------------------------------------------
|
// Product2へのクエリを実行
|
// 一度Listで結果を受けた後に、Product2Idの Mapにする
|
// ----------------------------------------------------------------------------------------
|
system.debug('-----:Product2 select start');
|
Map<Id, Product2> items = new Map<Id, Product2>();
|
List<Product2> products = [select Id, Name, ProductCode,
|
Foreign_Trade_Cost_US__c, Foreign_Trade_List_US__c, Intra_Trade_Cost_RMB__c, Intra_Trade_List_RMB__c,
|
//CHAN-BKU3XH 检查是否存在不是同一个供销商名称 精琢技术 2020/02/17 Start 增加字段
|
Asset_Model_No__c, Sales_Possibility__c, Estimation_Entry_Possibility__c,VenderName__c,
|
//CHAN-BKU3XH 检查是否存在不是同一个供销商名称 精琢技术 2020/02/17 end 增加字段
|
SFDA_Status__c, Qty_Unit__c, BSSCategory__c, Packing_list_manual__c, StorageStatus__c
|
// 多年保修 start
|
, Entend_gurantee_period_all__c
|
, Intra_Trade_Gurantee_RMB__c
|
, Intra_Trade_Service_RMB__c
|
, GuranteeType__c
|
// 维修合同价格
|
, Maintenance_Price_Year__c
|
// 多年保修 end
|
//增加检索 不可取消多年保 2020/08/27
|
,CanNotCancelledGurantee__c
|
//增加检索 阿西赛多 2020/09/10 start
|
,Is_DangerousChemicals__c
|
//外贸多年保 2021/01/04 精琢技术 wql start
|
//维修合同报价(USD)
|
,Repair_Contract_USD__c
|
//fy 预留产品标识
|
,LastbuyProductFLG__c
|
//计提金额(不含税,USD)
|
,Intra_Trade_Foreign_RMB__c
|
//NoDiscount 金额(USD)
|
,NoDiscount_Foreign__c
|
//外贸多年保 2021/01/04 精琢技术 wql end
|
|
//SFDC停止预警 lt 20211009 start
|
,Estimated_ConsumptionDueDate__c
|
//SFDC停止预警 lt 20211009 end
|
|
FROM Product2 Where Id IN :productIds
|
And Manual_Entry__c = false];
|
for (Product2 product : products) {
|
items.put(product.Id, product);
|
}
|
system.debug('-----:Product2 select end');
|
system.debug('-----:PricebookEntry select start');
|
Map<Id, PricebookEntry> entries = new Map<Id, PricebookEntry>();
|
List<PricebookEntry> workEntries = [
|
SELECT Id, Product2Id
|
FROM PricebookEntry Where Product2Id IN :productIds
|
AND CurrencyIsoCode = :(opp.Trade__c == '外貿' ? 'USD' : 'CNY')
|
AND IsActive = true
|
];
|
for (PricebookEntry workEntry : workEntries) {
|
entries.put(workEntry.Product2Id, workEntry);
|
}
|
system.debug('-----:PricebookEntry select end');
|
|
// ----------------------------------------------------------------------------------------
|
// 画面の明細行のループ
|
// ----------------------------------------------------------------------------------------
|
Integer i = 0;
|
Integer rightcnt = 0; // 成功した数をカウント
|
for (QELine t : tmpactivities) {
|
|
QELine a = New QELine(i);
|
|
system.debug('-----:i=' + i + ', currentDetailNumber=' + currentDetailNumber);
|
|
if (i == currentDetailNumber) {
|
// ----------------------------------------------------------------------------------------
|
// 一回だけ実行されるコード
|
// ----------------------------------------------------------------------------------------
|
system.debug('-----:items.size()=' + items.size());
|
if (items.size() > 0) {
|
// ----------------------------------------------------------------------------------------
|
// セット品明細のループ
|
// ----------------------------------------------------------------------------------------
|
system.debug('-----:セット品明細のループスタート');
|
for (Integer l = 0; l < productSetDetails.size(); l++) {
|
Product_Set_Detail__c nowDetail = productSetDetails[l];
|
Product2 prd = items.get(nowDetail.product__c);
|
PricebookEntry pbe = entries.get(nowDetail.product__c);
|
|
if (pbe == null) {
|
system.debug('This Productid(' + nowDetail.product__c + ') is not exist PricebookEntry');
|
// ----------------------------------------------------------------------------------------
|
// 取得済みの Product2のリストの中に、セット品明細の情報がみつからない場合
|
// なにもしないでスルーする
|
// ----------------------------------------------------------------------------------------
|
} else {
|
// ----------------------------------------------------------------------------------------
|
// 取得済みの Product2のリストの中に、セット品明細の情報がみつかった
|
// 明細のその Product2の情報をセットする?
|
// ----------------------------------------------------------------------------------------
|
QELine c = null;
|
Integer Quantity_c = nowDetail.Quantity__c > 0 ? Integer.valueOf(nowDetail.Quantity__c) : 1;
|
if (opp.Trade__c == '外貿') {
|
if (prd.Foreign_Trade_List_US__c > 0 && prd.Foreign_Trade_Cost_US__c > 0) {
|
//CHAN-BKU3XH 检查是否存在不是同一个供销商名称 精琢技术 2020/02/17 Start 增加字段&& 增加检索阿西赛多
|
c = new QELine(i, prd.Is_DangerousChemicals__c,prd.CanNotCancelledGurantee__c,prd.VenderName__c,
|
prd.Estimated_ConsumptionDueDate__c, //20211009 lt add ('',)
|
pbe.Id, prd.Asset_Model_No__c, prd.StorageStatus__c,
|
//CHAN-BKU3XH 检查是否存在不是同一个供销商名称 精琢技术 2020/02/17 end 增加字段
|
prd.ProductCode, nowDetail.product__c, prd.SFDA_Status__c,
|
prd.Sales_Possibility__c, prd.Name, prd.BSSCategory__c,
|
Quantity_c, prd.Foreign_Trade_List_US__c,
|
prd.Foreign_Trade_List_US__c, prd.Foreign_Trade_Cost_US__c,
|
prd.Packing_list_manual__c
|
// 多年保修 start
|
, prd.Entend_gurantee_period_all__c
|
//外贸多年保 取产品主数据上的金额及维修合同报价 精琢技术 wql 2021/01/04 start
|
, prd.Intra_Trade_Foreign_RMB__c
|
, prd.GuranteeType__c
|
, prd.NoDiscount_Foreign__c, prd.Repair_Contract_USD__c
|
//外贸多年保 取产品主数据上的金额及维修合同报价 精琢技术 wql 2021/01/04 end
|
// 多年保修 end
|
);
|
|
} else {
|
continue;
|
}
|
} else if (opp.Trade__c == '内貿') {
|
if (prd.Intra_Trade_List_RMB__c > 0 && prd.Intra_Trade_Cost_RMB__c > 0) {
|
//CHAN-BKU3XH 检查是否存在不是同一个供销商名称 精琢技术 2020/02/17 Start 增加字段&&增加检索阿西赛多
|
c = new QELine(i,prd.Is_DangerousChemicals__c,prd.CanNotCancelledGurantee__c,prd.VenderName__c,
|
prd.Estimated_ConsumptionDueDate__c, //20211009 lt add
|
pbe.Id, prd.Asset_Model_No__c, prd.StorageStatus__c,
|
//CHAN-BKU3XH 检查是否存在不是同一个供销商名称 精琢技术 2020/02/17 end 增加字段
|
prd.ProductCode, nowDetail.product__c, prd.SFDA_Status__c,
|
prd.Sales_Possibility__c, prd.Name, prd.BSSCategory__c,
|
Quantity_c, prd.Intra_Trade_List_RMB__c,
|
prd.Intra_Trade_List_RMB__c, prd.Intra_Trade_Cost_RMB__c,
|
prd.Packing_list_manual__c
|
// 多年保修 start
|
, prd.Entend_gurantee_period_all__c
|
, prd.Intra_Trade_Gurantee_RMB__c
|
, prd.GuranteeType__c
|
, prd.Intra_Trade_Service_RMB__c
|
//维修合同报价
|
, prd.Maintenance_Price_Year__c
|
// 多年保修 end
|
);
|
|
} else {
|
continue;
|
}
|
} else {
|
continue;
|
// c = new QELine(i, pbe.Id, prd.Asset_Model_No__c, prd.ProductCode, nowDetail.product__c, prd.SFDA_Status__c, prd.Sales_Possibility__c, prd.Name, prd.BSSCategory__c,
|
// Quantity_c, 0, 0, 0);
|
}
|
activities.add(c);
|
|
if (i == 149) {
|
// 明細行の最大値に達したら、処理を終了する
|
PageArrange();
|
system.debug('-----:強制終了:98');
|
return null;
|
}
|
|
i++;
|
rightcnt++;
|
lineflg = true;
|
}
|
}
|
system.debug('-----:セット品明細のループ終了');
|
if (lineflg == true) {
|
i--;
|
}
|
} else {
|
// ----------------------------------------------------------------------------------------
|
// Product2へのクエリが結果を返さなかった時に実行されるコード
|
// ----------------------------------------------------------------------------------------
|
a = t;
|
a.lineNo = i;
|
activities.add(a);
|
}
|
} else {
|
// ----------------------------------------------------------------------------------------
|
// Product2へクエリを投げない時に実行されるコード
|
// ----------------------------------------------------------------------------------------
|
a = t;
|
a.lineNo = i;
|
activities.add(a);
|
}
|
|
i++;
|
if (i > 149) {
|
break;
|
}
|
}
|
|
PageArrange();
|
if (productSetDetails.size() > 0) {
|
errorflg = true;
|
errormessage = productSetDetails[0].Product_Set__r.Name + ' 导入结束,导入 ' + productSetDetails.size() + ' 件,成功' + rightcnt + ' 件';
|
}
|
system.debug('-----:終了:' + errormessage);
|
return null;
|
}
|
|
// xudan 20140626 行追加ロジック実装
|
public void addRow() {
|
List<QELine> tmpQELine = new List<QELine>();
|
system.debug('添加行size:'+activities.size());
|
system.debug('需要添加行:'+rowIdx);
|
for (Integer i = 0; i < activities.size(); i++) {
|
if (i < rowIdx) {
|
tmpQELine.add(activities[i]);
|
} else if ( i == rowIdx) {
|
tmpQELine.add(new QELine(i));
|
} else {
|
tmpQELine.add(activities[i - 1]);
|
tmpQELine[tmpQELine.size() - 1].lineNo = i;
|
}
|
}
|
activities = new List<QELine>();
|
activities.addAll(tmpQELine);
|
PageArrange();
|
}
|
//添加行
|
public void addMultipleRow() {
|
List<QELine> tmpQELine = new List<QELine>();
|
//页面上的输入框追加 (只能在末尾追加)
|
|
Integer lineRows = activities.size() + rowIdx;
|
if(lineRows>0 && lineRows>activities.size()&&activities.size()>0){
|
//页面输入0或负数都不应该继续执行
|
for (Integer i = 0; i < lineRows; i++) {
|
if (i < activities.size()) {
|
tmpQELine.add(activities[i]);
|
} else{
|
tmpQELine.add(new QELine(i));
|
}
|
}
|
system.debug('tmpQELine:'+tmpQELine);
|
//如果发生行数变化 则后台最大报价行也更新
|
if(quoteEntryMaxLine < lineRows){
|
quoteEntryMaxLine = lineRows;
|
}
|
|
|
//重画页面 重画新增行
|
activities = new List<QELine>();
|
activities.addAll(tmpQELine);
|
PageArrange();
|
}
|
|
}
|
|
//excelImport
|
public PageReference excelImport() {
|
system.debug('○○○○○○○○○○○○○○○Welcome to excelImport!!');
|
system.debug('▼▼▼▼▼excel_text:' + excel_text);
|
//oppに画面の値を設定
|
setOppFromOppInfo();
|
|
errorflg = false;
|
errormessage = null;
|
|
//既存データ数の確認
|
Integer j = 0;
|
for (QELine s : activities) {
|
//データ判定にAsset_Model_Noを使用
|
if ((s.Asset_Model == null) || (s.Asset_Model == '')) {
|
break;
|
}
|
j++;
|
}
|
|
//=======Temporary=====
|
tmpactivities = activities;
|
|
//=======Initialize=========
|
activities = new List<QELine>();
|
//List<OpportunityLineItem> items = New List<OpportunityLineItem>();
|
Integer i = 0;
|
Integer xlscnt = 0;
|
Integer rightcnt = 0; // 成功した数をカウント
|
|
string[] xlslists = excel_text.split('\n', -1);
|
List<string> xlslist = New list<string>();
|
List<string> codelist = New List<string>();
|
List<Integer> Quantitylist = New List<Integer>();
|
//String str ;
|
|
Map<String, Integer> mp = new Map<String, Integer>();
|
string xlscode;
|
Integer xlsQuantity;
|
|
try {
|
for (string xls : xlslists) {
|
if (xls == null || xls == '') {
|
//null
|
} else {
|
xlscode = null;
|
xlsQuantity = null;
|
xlslist = xls.split('\t', -1);
|
for (String s : xlslist) {
|
//odd number or even number
|
if (math.mod(i, 2) != 0) {
|
//odd number
|
if (s == '' || s == null) {
|
errorflg = true;
|
errormessage = System.Label.Error_Message31;
|
activities = tmpactivities;
|
pageArrange();
|
return null;
|
} else {
|
s = s.trim();
|
xlsQuantity = Integer.valueOf(s);
|
Quantitylist.add(xlsQuantity);
|
}
|
} else {
|
//even number
|
if (s == '' || s == null) {
|
errorflg = true;
|
errormessage = System.Label.Error_Message31;
|
activities = tmpactivities;
|
pageArrange();
|
return null;
|
} else {
|
s = s.trim();
|
codelist.add(s);
|
xlscode = s;
|
}
|
}
|
i++;
|
}
|
//mp.put(xlscode, xlsQuantity);
|
xlscnt++;
|
}
|
}
|
} catch (Exception ex) {
|
activities = tmpactivities;
|
errorflg = true;
|
errormessage = System.Label.Error_Message31;
|
pageArrange();
|
return null;
|
}
|
|
system.debug(j);
|
system.debug('xlscnt:::::' + xlscnt);
|
|
if (codelist.size() == 0 || Quantitylist.size() == 0) {
|
activities = tmpactivities;
|
errorflg = true;
|
errormessage = System.Label.Error_Message31;
|
pageArrange();
|
return null;
|
}
|
|
xlscnt = j + xlscnt;
|
if (xlscnt > quoteEntryMaxLine) {
|
activities = tmpactivities;
|
errorflg = true;
|
errormessage = System.Label.Error_Message32;
|
pageArrange();
|
return null;
|
}
|
|
i = 0;
|
boolean lineflg = false;
|
for (QELine t : tmpactivities) {
|
if (i == j) {
|
Map<String, Product2> mpProduct2 = new Map<String, Product2>(); // keyがProductCodeです。
|
List<Product2> items = [select Id, Name, ProductCode,
|
Foreign_Trade_Cost_US__c, Foreign_Trade_List_US__c, Intra_Trade_Cost_RMB__c, Intra_Trade_List_RMB__c,
|
//CHAN-BKU3XH 检查是否存在不是同一个供销商名称 精琢技术 2020/02/17 Start 增加字段
|
Asset_Model_No__c, Sales_Possibility__c, Estimation_Entry_Possibility__c,VenderName__c,
|
//CHAN-BKU3XH 检查是否存在不是同一个供销商名称 精琢技术 2020/02/17 end 增加字段
|
SFDA_Status__c, Qty_Unit__c, BSSCategory__c, Packing_list_manual__c, StorageStatus__c
|
// 多年保修 start
|
, Entend_gurantee_period_all__c
|
, Intra_Trade_Gurantee_RMB__c
|
, Intra_Trade_Service_RMB__c
|
, GuranteeType__c
|
// 维修合同报价
|
, Maintenance_Price_Year__c
|
// 多年保修 end
|
//增加检索 不可取消多年保 2020/08/27
|
,CanNotCancelledGurantee__c
|
//增加检索 阿西赛多 2020/09/10
|
,Is_DangerousChemicals__c
|
//外贸多年保 2021/01/04 精琢技术 wql start
|
//维修合同报价(USD)
|
,Repair_Contract_USD__c
|
//计提金额(不含税,USD)
|
,Intra_Trade_Foreign_RMB__c
|
//NoDiscount 金额(USD)
|
,NoDiscount_Foreign__c
|
//外贸多年保 2021/01/04 精琢技术 wql end
|
|
//SFDC停止预警 lt 20211009 start
|
,Estimated_ConsumptionDueDate__c
|
//SFDC停止预警 lt 20211009 end
|
|
FROM Product2 Where ProductCode In :codelist
|
And Manual_Entry__c = false];
|
for (Product2 prd : items) {
|
system.debug('prd.ProductCode:::::' + prd.ProductCode);
|
mpProduct2.put(prd.ProductCode, prd);
|
}
|
Map<String, PricebookEntry> entries = new Map<String, PricebookEntry>(); // keyがProductCodeです。
|
List<PricebookEntry> pbes = [
|
select Id, PricebookEntry.Product2.ProductCode
|
FROM PricebookEntry Where PricebookEntry.Product2.ProductCode IN :codelist
|
AND CurrencyIsoCode = :(opp.Trade__c == '外貿' ? 'USD' : 'CNY')
|
AND IsActive = true];
|
for (PricebookEntry pbe : pbes) {
|
system.debug('pbe.Product2.ProductCode:::::' + pbe.Product2.ProductCode);
|
entries.put(pbe.Product2.ProductCode, pbe);
|
}
|
|
for (Integer l = 0; l < codelist.size(); l++) {
|
system.debug('codelist[l]:::::' + codelist[l]);
|
Product2 prd = mpProduct2.get(codelist[l]);
|
if (prd != null) {
|
PricebookEntry pbe = entries.get(codelist[l]);
|
QELine c = null;
|
if (pbe != null && (opp.Trade__c == '外貿' || opp.Trade__c == '内貿')) {
|
if (opp.Trade__c == '外貿') {
|
if (prd.Foreign_Trade_List_US__c > 0 && prd.Foreign_Trade_Cost_US__c > 0) {
|
//CHAN-BKU3XH 检查是否存在不是同一个供销商名称 精琢技术 2020/02/17 Start 增加字段&&增加阿西赛多
|
c = new QELine(i,prd.Is_DangerousChemicals__c,prd.CanNotCancelledGurantee__c, prd.VenderName__c,
|
prd.Estimated_ConsumptionDueDate__c,//20211009 lt add ('',)
|
pbe.Id, prd.Asset_Model_No__c, prd.StorageStatus__c, prd.ProductCode, prd.Id, prd.SFDA_Status__c, prd.Sales_Possibility__c, prd.Name, prd.BSSCategory__c,
|
//CHAN-BKU3XH 检查是否存在不是同一个供销商名称 精琢技术 2020/02/17 end 增加字段
|
Quantitylist[l], prd.Foreign_Trade_List_US__c, prd.Foreign_Trade_List_US__c, prd.Foreign_Trade_Cost_US__c, prd.Packing_list_manual__c
|
// 多年保修 start
|
//外贸多年保 取产品主数据上的金额及维修合同报价 精琢技术 wql 2021/01/04 start
|
, prd.Entend_gurantee_period_all__c
|
, prd.Intra_Trade_Foreign_RMB__c
|
, prd.GuranteeType__c
|
, prd.NoDiscount_Foreign__c,
|
prd.Repair_Contract_USD__c
|
//外贸多年保 取产品主数据上的金额及维修合同报价 精琢技术 wql 2021/01/04 end
|
// 多年保修 end
|
);
|
|
} else {
|
continue;
|
}
|
} else {
|
if (prd.Intra_Trade_List_RMB__c > 0 && prd.Intra_Trade_Cost_RMB__c > 0) {
|
//CHAN-BKU3XH 检查是否存在不是同一个供销商名称 精琢技术 2020/02/17 Start 增加字段&&增加检索阿西赛多
|
c = new QELine(i,prd.Is_DangerousChemicals__c,prd.CanNotCancelledGurantee__c,prd.VenderName__c,
|
prd.Estimated_ConsumptionDueDate__c,//20211009 lt add
|
pbe.Id, prd.Asset_Model_No__c, prd.StorageStatus__c, prd.ProductCode, prd.Id, prd.SFDA_Status__c, prd.Sales_Possibility__c, prd.Name, prd.BSSCategory__c,
|
//CHAN-BKU3XH 检查是否存在不是同一个供销商名称 精琢技术 2020/02/17 end 增加字段
|
Quantitylist[l], prd.Intra_Trade_List_RMB__c, prd.Intra_Trade_List_RMB__c, prd.Intra_Trade_Cost_RMB__c, prd.Packing_list_manual__c
|
// 多年保修 start
|
, prd.Entend_gurantee_period_all__c
|
, prd.Intra_Trade_Gurantee_RMB__c
|
, prd.GuranteeType__c
|
, prd.Intra_Trade_Service_RMB__c
|
, prd.Maintenance_Price_Year__c
|
// 多年保修 end
|
);
|
|
} else {
|
continue;
|
}
|
}
|
} else {
|
continue;
|
// c = new QELine(i, pbe.Id, prd.Asset_Model_No__c, prd.ProductCode, prd.Id, prd.SFDA_Status__c, prd.Sales_Possibility__c, prd.Name, prd.BSSCategory__c,
|
// Quantitylist[l], 0, 0, 0); // pbe ない時も追加する、setProductEntry() のロジックと違います。
|
}
|
activities.add(c);
|
i++;
|
rightcnt++;
|
lineflg = true;
|
}
|
}
|
if (lineflg == true) {
|
i--;
|
} else {
|
// 20140507,LW修改。
|
// 当导入的所有商品都不成功时,当前明细行什么都没有做,并且i加一。导致下面循环New QELine(t, i)中i错误。
|
// 修改为:当导入的所有商品都不成功时,当前明细行插入一个空行,之后i加一。
|
QELine a = New QELine(t, i);
|
activities.add(a);
|
}
|
} else {
|
QELine a = New QELine(t, i);
|
activities.add(a);
|
}
|
i++;
|
if (i > 149) {
|
break;
|
}
|
}
|
// messageを出す
|
errorflg = true;
|
errormessage = '数据导入结束,导入 ' + codelist.size() + ' 件,成功' + rightcnt + ' 件';
|
pageArrange();
|
|
return null;
|
|
}
|
|
//販売店1
|
public void getSalesId1() {
|
system.debug('○○○○○○○○○○○○○○○Welcome to getSalesId1!!');
|
system.debug('▼▼▼▼▼SalesId1:' + SalesId1);
|
//oppに画面の値を設定
|
setOppFromOppInfo();
|
|
errorflg = false;
|
errormessage = null;
|
|
List<Account> accs = New List<Account>();
|
accs = [select Id, Name, Sales_Shop_Class__c From Account Where Id = :SalesId1];
|
If (accs.size() > 0) {
|
SalesShopClass1 = accs[0].Sales_Shop_Class__c;
|
opp.Agency1__c = accs[0].Id;
|
}
|
pageArrange();
|
}
|
|
//販売店2
|
public void getSalesId2() {
|
system.debug('○○○○○○○○○○○○○○○Welcome to getSalesId2!!');
|
system.debug('▼▼▼▼▼SalesId2:' + SalesId2);
|
//oppに画面の値を設定
|
setOppFromOppInfo();
|
|
errorflg = false;
|
errormessage = null;
|
|
List<Account> accs = New List<Account>();
|
accs = [select Id, Name, Sales_Shop_Class__c From Account Where Id = :SalesId2];
|
If (accs.size() > 0) {
|
SalesShopClass2 = accs[0].Sales_Shop_Class__c;
|
opp.Agency2__c = accs[0].Id;
|
}
|
pageArrange();
|
}
|
|
|
//Button Ivents============================================================
|
|
//cancel button
|
public void cancel() {
|
system.debug('○○○○○○○○○○○○○○○Welcome to CancelButton!!');
|
system.debug('selection_hp' + selection_hp);
|
}
|
|
//PriceStatusUpdate button、TODO productCompare(jsのところ)1件ずつ検索していますが、今後、webserviceを使って一括か高速かできます。
|
public void PriceStatusUpdate() {
|
system.debug('○○○○○○○○○○○○○○○Welcome to PriceStatusUpdate!!');
|
//oppに画面の値を設定
|
setOppFromOppInfo();
|
|
errorflg = false;
|
errormessage = null;
|
|
//全件洗い替えします。
|
if (activities.size() > 0) {
|
for (QELine a : activities) {
|
if ((a.Asset_Model != null) && (a.Asset_Model != '')) {
|
// CHAN-AVG3PW 询价报价画面规则变更
|
// 只要更新,就生成新报价编码
|
if (a.PageObject.SFDA_Status__c != a.latestInfo.SFDA_Status ||
|
a.PageObject.Name__c != a.latestInfo.ProductName ||
|
a.ListPrice_Page != a.latestInfo.ListPrice ||
|
a.PageObject.Cost__c != a.latestInfo.Cost ||
|
a.Cost_c != a.latestInfo.Cost
|
// 多年保修 start
|
//计提金额
|
|| a.ProductGuranteePrice != a.latestInfo.Intra_Trade_Gurantee
|
|| a.PageObject.productServicePrice__c != a.latestInfo.Intra_Trade_Service
|
// 维修合同报价
|
|| a.Maintenance_Price_Year != a.latestInfo.Maintenance_Price_Year
|
// 多年保修 end
|
) {
|
system.debug('qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq:');
|
system.debug('上次SFDA状态:'+a.PageObject.SFDA_Status__c);
|
system.debug('最新的SFDA状态:'+a.latestInfo.SFDA_Status);
|
system.debug('上次Name__c:'+a.PageObject.Name__c);
|
system.debug('最新的ProductName:'+a.latestInfo.ProductName);
|
system.debug('上次ListPrice:'+a.ListPrice_Page);
|
system.debug('最新的上次ListPrice:'+a.latestInfo.ListPrice);
|
system.debug('上次Cost__c:'+a.Cost_c);
|
system.debug('最新的Cost:'+a.latestInfo.Cost);
|
system.debug('上次Cost__c:'+a.Cost_c);
|
system.debug('最新的Cost:'+a.latestInfo.Cost);
|
system.debug('上次计提金额:'+a.ProductGuranteePrice);
|
system.debug('最新的计提金额:'+a.latestInfo.Intra_Trade_Gurantee);
|
system.debug('上次nodis:'+a.PageObject.productServicePrice__c);
|
system.debug('最新的nodis:'+a.latestInfo.Intra_Trade_Service);
|
system.debug('上次维修合同报价:'+a.Maintenance_Price_Year);
|
system.debug('最新的维修合同报价:'+a.latestInfo.Maintenance_Price_Year);
|
system.debug('newQuoteFlag6:'+newQuoteFlag);
|
newQuoteFlag = true;
|
}
|
if (a.pageObject.Name__c != a.latestInfo.ProductName) {
|
a.changed_name = true;
|
}
|
if (a.pageObject.SFDA_Status__c != a.latestInfo.SFDA_Status) {
|
a.changed_sfda = true;
|
}
|
if (a.ListPrice_Page != a.latestInfo.ListPrice) {
|
a.changed_list = true;
|
}
|
if (a.pageObject.Cost__c != a.latestInfo.Cost) {
|
a.changed_cost = true;
|
}
|
// TODO katsu SFDAステータスの確認などいらないですか(最新商品XXXの項目も)
|
a.PageObject.SFDA_Status__c = a.latestInfo.SFDA_Status;
|
a.PageObject.Name__c = a.latestInfo.ProductName;
|
a.ListPrice_Page = a.latestInfo.ListPrice;
|
a.PageObject.Cost__c = a.latestInfo.Cost;
|
a.Cost_c = a.latestInfo.Cost;
|
//多年保修 start
|
a.PageObject.ProductGuranteePrice__c = a.latestInfo.Intra_Trade_Gurantee;
|
a.PageObject.GuranteeType__c = a.latestInfo.GuranteeType;
|
// 计提金额
|
a.PageObject.productServicePrice__c = a.latestInfo.Intra_Trade_Service;
|
// 多年保修年限
|
a.PageObject.ProductEntend_gurantee_period_all__c
|
= a.latestInfo.ProductEntend_gurantee_period_all;
|
// 维修合同报价
|
a.Maintenance_Price_Year = a.latestInfo.Maintenance_Price_Year;
|
//多年保修 end
|
}
|
}
|
productStatusUpdated = true;
|
}
|
pageArrange();
|
}
|
|
//Save button
|
public PageReference Save() {
|
// Boolean ifdecide=false;
|
// List<Opportunity> oppsde = [Select Id, Estimation_Decision__c From Opportunity Where Id = : oppId];
|
// if (oppsde.size() > 0) {
|
// if(oppsde[0].Estimation_Decision__c){
|
// ifdecide=true;
|
// }else{
|
// ifdecide=false;
|
// }
|
// }
|
// system.debug('oppsde:::::::1' + oppsde );
|
// if(!ifdecide){
|
setOppFromOppInfo();
|
System.debug('Save() start at: ' + System.currentTimeMillis());
|
system.debug('WinOrDecideAlert:::::::3' + WinOrDecideAlert );
|
errorflg = false;
|
errormessage = null;
|
errorMessagechack = null;
|
Savepoint sp = Database.setSavepoint();
|
try {
|
// CHAN-AVG3PW 询价报价画面规则变更
|
// 报价创建日超过三个月时,点保存时强制更新
|
// CHAN-AZG864 不管在不在报价有效期内,CFDA不可销售的时候,都是报错的,其中不可销售产品显示红字,不应该保存。
|
if (WinOrDecideAlert && (!productStatusUpdated)) {
|
errorflg = true;
|
errorMessage = '产品状态发生变化,请更新';
|
return null;
|
}
|
if (checkSFDAStatus1(false) == false) {
|
errorflg = true;
|
errormessage = '请更新不可销售的产品。';
|
return null;
|
}
|
|
System.debug('checkSFDAStatus1 finished at: ' + System.currentTimeMillis());
|
|
//データチェック
|
if (dataCheck() == false) {
|
return null;
|
}
|
|
System.debug('dataCheck finished at: ' + System.currentTimeMillis());
|
|
// LHJ 授权check Start
|
if (enableSales == true && opp.Trade__c == '内貿') {
|
|
//经销商产品注册证匹配
|
Map<Id, String> proMap = new Map<Id, String>();
|
|
if (activities.size() > 0) {
|
for (QELine qli : activities) {
|
if (qli.Asset_Model != null && qli.Asset_Model != '') {
|
proMap.put(qli.pageObject.Id__c, qli.PageObject.Name__c);
|
}
|
}
|
}
|
|
// GZW 画面出错误消息
|
Map<String, String> chkMap = OpportunityWebService.MapCheckProRegisterDecide(proMap, opp.Agency1__c, '');
|
//this.haveno_Register 没有注册证 状态红色
|
//this.wrong_Register 匹配不上 名字红色
|
if (chkMap.size() > 0) {
|
errorflg = true;
|
//阿西塞多 取消该检查
|
if (chkMap.containsKey('agency')&&!opp.Is_Corrosion__c) {
|
ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING, '第一经销商没有有效的医疗器械经营许可证。'));
|
}
|
Integer inerr = 0;
|
if (activities.size() > 0) {
|
for (QELine s : activities) {
|
if (s.Asset_Model != null && s.Asset_Model != '') {
|
s.haveno_Register = false;
|
s.wrong_Register = false;
|
if (chkMap.containsKey(s.PageObject.Id__c)) {
|
if (chkMap.get(s.PageObject.Id__c) == '1') {
|
s.haveno_Register = true;
|
inerr ++;
|
} else if (chkMap.get(s.PageObject.Id__c) == '2') {
|
s.wrong_Register = true;
|
inerr ++;
|
}
|
}
|
}
|
}
|
}
|
if (inerr > 0) {
|
errorMessagechack = '请检查红字内容(NMPA状态红字,不可销售产品;产品名称红字,超过经销商经营范围)。';
|
}
|
}
|
//阿西赛多 是否危险化学品经营许可证 保存提示可以保存 decide提示不可decide 精琢技术 wql 2020/12/30 start
|
|
//询价是阿西赛多 判断标识
|
Boolean isDangerError = false;
|
//询价不是阿西赛多 判断标识
|
Boolean isNotDangerError = false;
|
|
//条件是 内贸 && 经销商 && 是否是阿西赛多 为true
|
//没有合并在上面的for循环的原因是,怕有冲突将标识置为false
|
if (activities.size() > 0) {
|
for (QELine qli : activities) {
|
if (qli.Asset_Model != null && qli.Asset_Model != '') {
|
//阿西赛多 页面提示报错信息 2020/12/30 start
|
//如果询价是阿西赛多 则选择一般产品的标红
|
system.debug('是否阿西赛多询价');
|
system.debug(opp.Is_Corrosion__c);
|
if (opp.Is_Corrosion__c) {
|
//不是危化品
|
if(!qli.Is_DangerousChemicals){
|
//提示报错
|
isNotDangerError =true;
|
//名称报红
|
qli.wrong_Register = true;
|
|
}
|
|
}else{
|
//如果询价不是阿西赛多,则选择危化品的标红
|
if(qli.Is_DangerousChemicals){
|
//提示报错
|
isDangerError =true;
|
//名称报红
|
qli.wrong_Register = true;
|
}
|
}
|
//阿西赛多 页面提示报错信息 wql 2020/12/30 end
|
|
}
|
|
|
}
|
}
|
|
|
if (opp.Is_Corrosion__c) {
|
String str = OpportunityWebService.checkDangerItem(opp.agency1__c);
|
if (str != 'OK') {
|
ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING, str));
|
}
|
system.debug('不是危化品标识:'+isNotDangerError);
|
//代表行项目有不是危化品的
|
if(isNotDangerError){
|
//ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING, '当阿西塞多时,行项目的产品必须全选择危化品。'));
|
errorflg = true;
|
errormessage = '当阿西塞多时,行项目的产品必须全选择危化品。';
|
return null;
|
}
|
|
|
}else{
|
|
system.debug('危化品标识:'+isDangerError);
|
//代表行项目有危化品
|
if(isDangerError){
|
//ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING, '当询价不是阿西塞多时,行项目的产品不能选择危化品。'));
|
errorflg = true;
|
errormessage = '当询价不是阿西塞多时,行项目的产品不能选择危化品。';
|
return null;
|
}
|
}
|
system.debug('阿西赛多~~~~~end');
|
//阿西赛多 是否危险化学品经营许可证 保存提示可以保存 decide提示不可decide 精琢技术 wql 2020/12/30 end
|
|
}
|
// LHJ End
|
|
System.debug('pageCheck finished at: ' + System.currentTimeMillis());
|
|
PageReference pageRef = new PageReference('/' + oppid);
|
if (dataEntry() == false) {
|
//msg
|
return null;
|
} else {
|
System.debug('data save finished at: ' + System.currentTimeMillis());
|
//msg
|
errorflg = true;
|
errorMessage = System.Label.Message_002;
|
return null;
|
}
|
} catch (DmlException de) {
|
Database.rollback(sp);
|
errorflg = true;
|
errormessage = de.getDmlMessage(0); // 1件目のエラーのみ表示
|
system.debug(Logginglevel.ERROR, de.getMessage());
|
system.debug(Logginglevel.ERROR, de.getStackTraceString());
|
} catch (Exception e) {
|
Database.rollback(sp);
|
errorflg = true;
|
errormessage = e.getMessage();
|
system.debug(Logginglevel.ERROR, e.getMessage());
|
system.debug(Logginglevel.ERROR, e.getStackTraceString());
|
}
|
|
// }
|
// else{
|
// errorflg = true;
|
// errormessage = '该询价已经decide,不可再修改';
|
// return null;
|
// }
|
|
return null;
|
}
|
|
//OppReflection button
|
public PageReference OppReflection() {
|
//oppに画面の値を設定
|
setOppFromOppInfo();
|
Savepoint sp = Database.setSavepoint();
|
try {
|
errorflg = false;
|
errormessage = null;
|
|
// CHAN-AVG3PW 询价报价画面规则变更
|
// 报价创建日超过三个月时,点保存时强制更新
|
// CHAN-AZG864 不管在不在报价有效期内,CFDA不可销售的时候,都是报错的,其中不可销售产品显示红字,不应该保存。
|
|
if (WinOrDecideAlert && (!productStatusUpdated)) {
|
errorflg = true;
|
errorMessage = '产品状态发生变化,请更新';
|
return null;
|
}
|
if (checkSFDAStatus1(false) == false) {
|
errorflg = true;
|
errormessage = '请更新不可销售的产品。';
|
return null;
|
}
|
|
//データチェック
|
if (dataCheck() == false) {
|
return null;
|
}
|
|
PageReference pageRef = new PageReference('/' + oppid);
|
if (dataEntry() == false) {
|
//msg
|
return null;
|
} else {
|
//msg
|
return pageRef;
|
}
|
} catch (DmlException de) {
|
Database.rollback(sp);
|
errorflg = true;
|
errormessage = de.getDmlMessage(0); // 1件目のエラーのみ表示
|
system.debug(Logginglevel.ERROR, de.getMessage());
|
system.debug(Logginglevel.ERROR, de.getStackTraceString());
|
} catch (Exception e) {
|
Database.rollback(sp);
|
errorflg = true;
|
errormessage = e.getMessage();
|
system.debug(Logginglevel.ERROR, e.getMessage());
|
system.debug(Logginglevel.ERROR, e.getStackTraceString());
|
}
|
|
return null;
|
}
|
|
//QuoteDecisionButton
|
public PageReference QuoteDecision() {
|
system.debug('○○○○○○○○○○○○○○○Welcome to QuoteDecision!!');
|
Savepoint sp = Database.setSavepoint();
|
try {
|
//oppに画面の値を設定
|
setOppFromOppInfo();
|
if (WinOrDecideAlert && (!productStatusUpdated)) {
|
errorflg = true;
|
errorMessage = '产品状态发生变化,请更新';
|
return null;
|
}
|
|
errorflg = false;
|
errormessage = null;
|
//20220214 fy lastbuy start
|
if(!ReservedProductVerification()){
|
system.debug('flglastbuy++++'+flglastbuy);
|
if(flglastbuy==1){
|
errorflg = true;
|
errormessage = '预留产品表中没有录入该报价的预留产品' ;
|
return null;
|
}else if(flglastbuy==2){
|
errorflg = true;
|
errormessage = errorProductmodel+'产品数量不可超过产品预留数量' ;
|
return null;
|
}else if(flglastbuy==3){
|
errorflg = true;
|
errormessage = '预留产品'+errorProductmodel+'未录入预留产品表';
|
return null;
|
}
|
}
|
//20220214 fy lastbuy end
|
// 2022-01-12 ssm 报价计算check
|
if (checkIsQuoteTrial()) {
|
errorflg = true;
|
return null;
|
}
|
|
if (enableSales == true) {
|
//販売店状態チェック
|
if (dataCheckDecide() == false) {
|
return null;
|
}
|
}
|
system.debug('zzzzzzzz2:');
|
// CHAN-AVG3PW 询价报价画面规则变更
|
if (checkSFDAStatus2(true) == false) {
|
errorflg = true;
|
errormessage = '请更新不可销售的产品。';
|
return null;
|
}
|
|
PageReference pageRef = new PageReference('/' + oppid);
|
if (dataCheck() == false) {
|
return null;
|
}
|
|
if (dataEntry() == false) {
|
return null;
|
} else {
|
//引合に見積決定をオン
|
if (oppId == null) {
|
system.debug('Error is Opportunityid null!!!');
|
} else {
|
List<Opportunity> opps = [Select Id, Estimation_Decision__c From Opportunity Where Id = : oppId];
|
if (opps.size() > 0) {
|
opps[0].Estimation_Decision__c = true;
|
/*↓↓↓見積同期↓↓↓2012/11/28 未使用
|
opps[0].SyncedQuoteId = quoId;
|
↑↑↑ ↑↑↑*/
|
ControllerUtil.updOpp(opps[0]);
|
}
|
|
errorflg = true;
|
errorMessage = System.Label.Message_002;
|
|
// cic 134906 start
|
Quote q = [select Id from Quote where Id = :quoId];
|
q.Quote_Decision_Date__c = date.Today();
|
update q;
|
// cic 134906 end
|
|
QuoteDecision = true;
|
enableContract = true;
|
//--Savebutton
|
Save_button = true;
|
//--Decisionbutton判定
|
if (verified == true) {
|
Decision_button = false;
|
} else if (QuoteCorrect == false) {
|
Decision_button = true;
|
} else if (QuoteDecision == true) {
|
Decision_button = true;
|
} else {
|
Decision_button = false;
|
}
|
//--SAPButton
|
if (QuoteDecision == false) {
|
sap_button = true;
|
} else if (specialAuthority == false) {
|
sap_button = true;
|
} else {
|
sap_button = false;
|
}
|
//--決定ボタン使えないようにする
|
Decision_button = true;
|
|
pageArrange();
|
}
|
}
|
} catch (DmlException de) {
|
Database.rollback(sp);
|
errorflg = true;
|
errormessage = de.getDmlMessage(0); // 1件目のエラーのみ表示
|
system.debug(Logginglevel.ERROR, de.getMessage());
|
system.debug(Logginglevel.ERROR, de.getStackTraceString());
|
} catch (Exception e) {
|
Database.rollback(sp);
|
errorflg = true;
|
errormessage = e.getMessage();
|
system.debug(Logginglevel.ERROR, e.getMessage());
|
system.debug(Logginglevel.ERROR, e.getStackTraceString());
|
}
|
|
//return pageRef;
|
return null;
|
}
|
|
//PrintButton
|
public PageReference Print() {
|
Savepoint sp = Database.setSavepoint();
|
try {
|
//oppに画面の値を設定
|
setOppFromOppInfo();
|
|
errorflg = false;
|
errormessage = null;
|
|
system.debug('○○○○○○○○○○○○○○○Welcome to Print!!');
|
PageReference pageRef;
|
|
//Decide前or後
|
if (QuoteDecision == true) {
|
//NoSave
|
} else {
|
// CHAN-AVG3PW 询价报价画面规则变更
|
// 报价创建日超过三个月时,点保存时强制更新
|
// CHAN-AZG864 不管在不在报价有效期内,CFDA不可销售的时候,都是报错的,其中不可销售产品显示红字,不应该保存。
|
if (WinOrDecideAlert && (!productStatusUpdated)) {
|
errorflg = true;
|
errorMessage = '产品状态发生变化,请更新';
|
return null;
|
}
|
|
|
//データチェック
|
if (dataCheck() == false ) {
|
return null;
|
}
|
|
if (dataEntry() == false) {
|
//msg
|
return null;
|
}
|
}
|
|
//引合に見積提出日を保存
|
List<Opportunity> opps = New List<Opportunity>();
|
if (oppId == null) {
|
} else {
|
// 打印时,不再更新决定报价
|
opps = [Select Id
|
//, Estimation_Decision__c
|
From Opportunity Where Id = : oppId];
|
if (opps.size() > 0) {
|
//見積に見積印刷日を保存
|
List<Quote> quos = New List<Quote>();
|
if (quoId == null) {
|
//印刷させない?
|
} else {
|
// 打印时,不再更新决定报价
|
quos = [Select Id,
|
//Quote_Decision__c,
|
Quote_Print_Date__c, Quote_Date__c From Quote Where Id = : quoId];
|
if (quos.size() > 0) {
|
//优惠成交价
|
quos[0].Preferential_Trading_Price__c = quo.Preferential_Trading_Price__c;
|
//优惠折扣
|
quos[0].Discount__c = quo.Discount__c;
|
//优惠价格
|
quos[0].Pricing__c = quo.Pricing__c;
|
//单价
|
quos[0].Unit_Price__c = quo.Unit_Price__c;
|
//报价金额
|
quos[0].Offer_Amount__c = quo.Offer_Amount__c;
|
//Total
|
quos[0].TOTAL__c = quo.TOTAL__c;
|
//契約内容
|
quos[0].Contract__c = quo.Contract__c;
|
//多年保修 start
|
quos[0].Preferential_Gurantee_Period__c = quo.Preferential_Gurantee_Period__c;
|
//多年保修 end
|
if (quos[0].Quote_Date__c == null) {
|
quos[0].Quote_Date__c = date.Today();
|
opps[0].Estimation_Proposal_Date__c = date.Today();
|
ControllerUtil.updOpp(opps[0]);
|
}
|
quos[0].Quote_Print_Date__c = date.Today();
|
ControllerUtil.updQuote(quos[0]);
|
}
|
}
|
}
|
}
|
pageArrange();
|
} catch (DmlException de) {
|
Database.rollback(sp);
|
errorflg = true;
|
errormessage = de.getDmlMessage(0); // 1件目のエラーのみ表示
|
system.debug(Logginglevel.ERROR, de.getMessage());
|
system.debug(Logginglevel.ERROR, de.getStackTraceString());
|
} catch (Exception e) {
|
Database.rollback(sp);
|
errorflg = true;
|
errormessage = e.getMessage();
|
system.debug(Logginglevel.ERROR, e.getMessage());
|
system.debug(Logginglevel.ERROR, e.getStackTraceString());
|
}
|
|
return null;
|
|
}
|
|
//BackButton
|
public PageReference Back() {
|
return new Pagereference('/' + oppid);
|
}
|
public PageReference Jump() {
|
System.debug('报价id1:'+quoId);
|
//SWAG-C9JCS8 【委托】【紧急】询价GZ-SP-GD0757135报价单问题 fy start
|
Boolean isDecide = checkIsDecide();
|
System.debug('询价:' + oppid + '|是否decide: ' + isDecide);
|
//SWAG-C9JCS8 【委托】【紧急】询价GZ-SP-GD0757135报价单问题 fy end
|
// LHJ 授权check Start
|
if (opp.If_Need_Authorize__c == true) {
|
ID tmpid = opp.Agency2__c == null ? opp.Agency1__c : opp.Agency2__c;
|
List<Account> accName = [select name from Account where id = : tmpid];
|
//授权前允许进行报价试算 精琢技术 thh 2021-09-30
|
// if (accName[0].name != opp.Authorized_Finish_Sales__c) {
|
// ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING, '请先授权后,再进行报价试算。'));
|
// }else{
|
//报价试算点击时,保存行项目 精琢技术 wql 2021/05/07 start
|
if (!isDecide) {
|
Save();
|
} else {
|
errorflg = true;
|
errorMessage = System.Label.Message_002;
|
}
|
//报价试算点击时,保存行项目 精琢技术 wql 2021/05/07 end
|
//报价试算点击时,如果保存了会生成新的报价,进入新报价的报价试算页面 精琢技术 thh 2021-09-30 start
|
Quote jump = [select id from Quote where Quote_No__c = :quo.Quote_No__c];
|
System.debug('报价id2:'+jump.Id);
|
if(errorMessage == System.Label.Message_002){
|
return new Pagereference('/apex/QuoteTrial?Id=' + jump.Id);
|
}
|
return null;
|
//报价试算点击时,如果保存了会生成新的报价,进入新报价的报价试算页面 精琢技术 thh 2021-09-30 end
|
// }
|
}else{
|
//报价试算点击时,保存行项目 精琢技术 wql 2021/05/07 start
|
if (!isDecide) {
|
Save();
|
}
|
//报价试算点击时,保存行项目 精琢技术 wql 2021/05/07 end
|
System.debug('报价id2:'+quoId);
|
return new Pagereference('/apex/QuoteTrial?Id=' + quoId);
|
}
|
return null;
|
}
|
// 0表示 対策
|
private void pageArrange() {
|
if (activities.size() > 0) {
|
for (QELine a : activities) {
|
if ((a.Asset_Model == null) || (a.Asset_Model == '')) {
|
system.debug('○○○○○○○○○○○○Welcome to pageArrange Asset_Model is △');
|
a.pageobject.subtotal__c = null;
|
a.ListPrice_Page = null;
|
} else {
|
system.debug('○○○○○○○○○○○○Welcome to pageArrange Asset_Model=[' + a.Asset_Model + ']');
|
}
|
}
|
}
|
if (quo.OCM_Agent1_Price_Page__c == null) {
|
Salesprofit1 = null;
|
qb.SalesCalculation1 = null;
|
}
|
if (quo.Agent1_Agent2_Price_Page__c == null) {
|
Salesprofit2 = null;
|
qb.SalesCalculation2 = null;
|
}
|
}
|
|
public boolean dataCheck() {
|
//WinOrDecideAlert = false;
|
system.debug('○○○○○○○○○○○○Welcome to dataCheck class!!○○○○○○○○○○○○');
|
errorflg = false;
|
errormessage = null;
|
Boolean error = false;
|
integer Gcnt = 0;
|
List<String> product2Ids = New List<String>();
|
|
if (activities.size() > 0) {
|
system.debug('save:::'+activities);
|
for (QELine a : activities) {
|
if (String.isBlank(a.PageObject.Id__c) == false) {
|
product2Ids.add(a.PageObject.Id__c);
|
}
|
}
|
Map<String, String> loopMap = new Map<String, String>();
|
if (CheckItem != null) {
|
Gcnt = CheckItem.size();
|
if (CheckItem.size() > 0) {
|
for (QuoteLineItem qli : CheckItem) {
|
loopMap.put(qli.PricebookEntry.Product2Id, qli.SFDA_Status__c);
|
}
|
}
|
}
|
//
|
// ここを修正したら、NFM007.triggerも要確認
|
prd2LatestValMap = new Map<Id, Product2>();
|
integer cntPrd2 = 0;
|
for (Product2 prd2 : [Select Id, Estimation_Entry_Possibility__c, SFDA_Status__c, Packing_list_manual__c,
|
//fy 预留产品标识
|
LastbuyProductFLG__c
|
From Product2 Where Id IN :product2Ids]) {
|
cntPrd2 = cntPrd2 + 1;
|
if (prd2.Estimation_Entry_Possibility__c != '○') {
|
error = true;
|
}
|
if (prd2.Estimation_Entry_Possibility__c == 'M') {
|
|
error = false;
|
}
|
if (prd2.SFDA_Status__c != loopMap.get(prd2.Id)) {
|
//
|
WinOrDecideAlert = true;
|
}
|
|
prd2LatestValMap.put(prd2.Id, prd2);
|
}
|
if (cntPrd2 != Gcnt) {
|
WinOrDecideAlert = false;
|
}
|
|
}
|
|
if (error == true && WinOrDecideAlert == false) {
|
PageArrange();
|
errorflg = true;
|
errorMessage = System.Label.Error_Message37;
|
return false;
|
}
|
|
if (checkAgentsDeleteFlag() == false) {
|
return false;
|
}
|
|
|
PageArrange();
|
errorflg = false;
|
errorMessage = null;
|
return true;
|
}
|
|
private boolean checkIsQuoteTrial() {
|
Boolean error = false;
|
errorflg = false;
|
errormessage = null;
|
//询价上的【是否需要价格申请】为是的场合,才要检查做没做过报价试算 thh 2021-11-03 start
|
if(opp.If_Need_PriceApply__c){
|
//wql 报价试算 判断是否进行过报价试算 start
|
if(!quo.IsQuoteTrial__c){
|
//没有报价试算过进入
|
error = true;
|
errormessage = 'decide报价还没进行报价试算,请先报价试算!' ;
|
}
|
//wql 报价试算 判断是否进行过报价试算 end
|
//wql 报价试算 检索促销政策是否有效 start
|
//1.获取报价id
|
//2.根据报价id 检索出所有报价试算行,并带出每一行,选择的政策的有效期 3个表
|
//3.循环遍历 是否所有选择的政策有效期都为true 只有有一个为false 就返回true 直接跳出循环
|
//如果报价id不为空的话
|
if(quoId !=null){
|
boolean IsActivePsp = true;
|
String errorPsp ='';
|
//根据id 检索 所有的试算行上面选择政策的有效期
|
List<PromotionSalesProducts__c> promotionSalesProductsList =[select id,PromotionSales__c,QuantityId__c,PromotionSales__r.name,PromotionSales__r.IsPolicyEffective__c,recordTypeName__c from PromotionSalesProducts__c where QuantityId__c=: quoId];
|
//如果有报价试算数据 说明选择了促销政策
|
if(promotionSalesProductsList.size()>0){
|
for(PromotionSalesProducts__c psp :promotionSalesProductsList){
|
if(psp.PromotionSales__r.IsPolicyEffective__c == '无效'&&psp.recordTypeName__c!='NormalProduct'){
|
IsActivePsp =false;
|
errorPsp = psp.PromotionSales__r.name;
|
break;
|
}
|
}
|
}
|
|
if(!IsActivePsp){
|
error = true;
|
errormessage = '报价试算中,选择的促销政策:'+errorPsp+',不在有效期内,请检查!' ;
|
}
|
}
|
//wql 报价试算 检索促销政策是否有效 end
|
}
|
//询价上的【是否需要价格申请】为是的场合,才要检查做没做过报价试算 thh 2021-11-03 end
|
return error;
|
}
|
|
private boolean dataCheckDecide() {
|
Boolean error = false;
|
errorflg = false;
|
errormessage = null;
|
|
if (checkAgentsDeleteFlag() == false) {
|
return false;
|
}
|
if (WinOrDecideAlert && (!productStatusUpdated)) {
|
// error = true;
|
// // CHAN-AVG3PW 询价报价画面规则变更
|
// //errorMessage = '产品状态发生变化,请更新';
|
PriceStatusUpdate();
|
// errorMessage = '产品状态发生变化,已经更新,请确认后再次点击决定。';
|
}
|
if (opp.Agency1__c == null) {
|
opp.Agency1__c.addError(System.Label.Error_Message3);
|
error = true;
|
errormessage = System.Label.Error_Message3;
|
}
|
if (quo.OCM_Agent1_Price_Page__c == null || quo.OCM_Agent1_Price_Page__c == 0) {
|
quo.OCM_Agent1_Price__c.addError(System.Label.Error_Message3);
|
error = true;
|
errormessage = System.Label.Error_Message3;
|
}
|
if (opp.Agency2__c == null && quo.Agent1_Agent2_Price_Page__c != null) {
|
opp.Agency2__c.addError(System.Label.Error_Message3);
|
error = true;
|
errormessage = System.Label.Error_Message3;
|
}
|
if (opp.Agency2__c != null && quo.Agent1_Agent2_Price_Page__c == null) {
|
quo.Agent1_Agent2_Price__c.addError(System.Label.Error_Message3);
|
error = true;
|
errormessage = System.Label.Error_Message3;
|
}
|
|
// LHJ 授权check Start
|
if (opp.If_Need_Authorize__c == true) {
|
ID tmpid = opp.Agency2__c == null ? opp.Agency1__c : opp.Agency2__c;
|
System.debug('tmpid==='+tmpid);
|
List<Account> accName = [select name from Account where id = : tmpid];
|
System.debug('accName==='+accName);
|
System.debug('Authorized_Finish_Sales__c==='+opp.Authorized_Finish_Sales__c);
|
if (accName[0].name != opp.Authorized_Finish_Sales__c) {
|
error = true;
|
errormessage = '经销商未授权或授权未完成,请先授权。' ;
|
}
|
}
|
|
if (opp.Trade__c == '内貿') {
|
// //经销商产品注册证匹配
|
Map<Id, String> proMap = new Map<Id, String>();
|
if (activities.size() > 0) {
|
for (QELine qli : activities) {
|
if (qli.Asset_Model != null && qli.Asset_Model != '') {
|
proMap.put(qli.pageObject.Id__c, qli.PageObject.Name__c);
|
}
|
}
|
}
|
//阿西赛多 取消查询医疗器械经营许可证 精琢技术 wql 2021/01/14 start
|
Map<String, String> chkMap = new Map<String, String>();
|
if(!opp.Is_Corrosion__c){
|
// GZW 画面出错误消息
|
chkMap = OpportunityWebService.MapCheckProRegisterDecide(proMap, opp.Agency1__c, '');
|
}
|
//阿西赛多 取消查询医疗器械经营许可证 精琢技术 wql 2021/01/14 end
|
//this.haveno_Register 没有注册证 状态红色
|
//this.wrong_Register 匹配不上 名字红色
|
if (chkMap.size() > 0) {
|
errorflg = true;
|
error = true;
|
//errormessage = '请检查红字内容(NMPA状态红字,不可销售产品;产品名称红字,超过经销商经营范围)。';
|
if (chkMap.containsKey('agency')) {
|
ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING, '第一经销商没有有效的医疗器械经营许可证。'));
|
}
|
Integer inerr = 0;
|
if (activities.size() > 0) {
|
for (QELine s : activities) {
|
if (s.Asset_Model != null && s.Asset_Model != '') {
|
if (chkMap.containsKey(s.PageObject.Id__c)) {
|
if (chkMap.get(s.PageObject.Id__c) == '1') {
|
s.haveno_Register = true;
|
inerr ++;
|
} else if (chkMap.get(s.PageObject.Id__c) == '2') {
|
s.wrong_Register = true;
|
inerr ++;
|
}
|
}
|
}
|
}
|
}
|
if (inerr > 0) {
|
errormessage = '请检查红字内容(NMPA状态红字,不可销售产品;产品名称红字,超过经销商经营范围)。';
|
}
|
return false;
|
}
|
//阿西赛多 是否危险化学品经营许可证 保存提示可以保存 decide提示不可decide 精琢技术 wql 2020/12/30 start
|
|
//询价是阿西赛多 判断标识
|
Boolean isDangerError = false;
|
//询价不是阿西赛多 判断标识
|
Boolean isNotDangerError = false;
|
|
//条件是 内贸 && 经销商 && 是否是阿西赛多 为true
|
//没有合并在上面的for循环的原因是,怕有冲突将标识置为false
|
if (activities.size() > 0) {
|
for (QELine qli : activities) {
|
if (qli.Asset_Model != null && qli.Asset_Model != '') {
|
//阿西赛多 页面提示报错信息 2020/12/30 start
|
//如果询价是阿西赛多 则选择一般产品的标红
|
system.debug('是否阿西赛多询价');
|
system.debug(opp.Is_Corrosion__c);
|
if (opp.Is_Corrosion__c) {
|
//不是危化品
|
if(!qli.Is_DangerousChemicals){
|
//提示报错
|
isNotDangerError =true;
|
//名称报红
|
qli.wrong_Register = true;
|
|
}
|
|
}else{
|
//如果询价不是阿西赛多,则选择危化品的标红
|
if(qli.Is_DangerousChemicals){
|
//提示报错
|
isDangerError =true;
|
//名称报红
|
qli.wrong_Register = true;
|
}
|
}
|
//阿西赛多 页面提示报错信息 wql 2020/12/30 end
|
|
}
|
|
|
}
|
}
|
//阿西赛多 是否危险化学品经营许可证 保存提示可以保存 decide提示不可decide 精琢技术 wql 2020/09/10 start
|
|
if (enableSales == true&&opp.Is_Corrosion__c&&opp.Trade__c == '内貿') {
|
//条件是 内贸 && 经销商 && 是否是阿西赛多 为true
|
String str = OpportunityWebService.checkDangerItem(opp.agency1__c);
|
if (str != 'OK') {
|
error = true;
|
errormessage = str;
|
}
|
|
//代表行项目有不是危化品的
|
if(isNotDangerError){
|
error = true;
|
errormessage = '当阿西塞多时,行项目的产品必须全选择危化品。';
|
}
|
}else if(!opp.Is_Corrosion__c){
|
//代表行项目有危化品
|
if(isDangerError){
|
error = true;
|
errormessage = '当询价不是阿西塞多时,行项目的产品不能选择危化品。';
|
}
|
}
|
//阿西赛多 是否危险化学品经营许可证 保存提示可以保存 decide提示不可decide 精琢技术 wql 2020/09/10 end
|
|
|
}
|
// LHJ End
|
|
if (error == true) {
|
PageArrange();
|
errorflg = true;
|
return false;
|
} else {
|
return true;
|
}
|
}
|
|
private Boolean checkAgentsDeleteFlag() {
|
// Check Agents
|
List<Id> accIds = new List<Id>();
|
if (opp.Agency1__c != null) {
|
accIds.add(opp.Agency1__c);
|
}
|
if (opp.Agency2__c != null) {
|
accIds.add(opp.Agency2__c);
|
}
|
if (accIds.size() > 0) {
|
List<Account> agentAccs = [SELECT Id, Delete_Flag__c, Is_Active_Formula__c, Sales_Shop_Class__c FROM Account WHERE Id IN :accIds];
|
//Boolean deleteFlag1 = false, deleteFlag2 = false;
|
String activeFormula1 = null, activeFormula2 = null;
|
for (Account local : agentAccs) {
|
if (local.Sales_Shop_Class__c == '医疗修理经销商') {
|
PageArrange();
|
errorflg = true;
|
//-------CHAN-B9TBG4; 20190301----------UpdateStart----------------------------------------
|
if (local.Id == opp.Agency1__c) {
|
errorMessage = '请确认第一经销商的经销商资质';
|
return false;
|
}
|
//else {
|
// errorMessage = '请确认第二经销商的经销商资质';
|
//}
|
//return false;
|
//-------CHAN-B9TBG4; 20190301----------UpdateStop----------------------------------------
|
}
|
|
if (local.Id == opp.Agency1__c) {
|
activeFormula1 = local.Is_Active_Formula__c;
|
}
|
}
|
for (Account local : agentAccs) {
|
if (local.Id == opp.Agency2__c) {
|
activeFormula2 = local.Is_Active_Formula__c;
|
}
|
}
|
|
if (activeFormula1 == '无效' && activeFormula2 == '无效') {
|
PageArrange();
|
errorflg = true;
|
errorMessage = System.Label.Agent1_and_Agent2_were_Deleted;
|
return false;
|
} else if (activeFormula1 == '无效') {
|
PageArrange();
|
errorflg = true;
|
errorMessage = System.Label.Agent1_was_Deleted;
|
return false;
|
} else if (activeFormula2 == '无效') {
|
PageArrange();
|
errorflg = true;
|
errorMessage = System.Label.Agent2_was_Deleted;
|
return false;
|
}
|
}
|
|
// 内貿の場合Check Agency1
|
if (opp.Agency1__c != null && opp.Trade__c == '内貿') {
|
Account acc = [select Sales_Shop_Class__c, Business_Authorization_No__c, Business_Paper_Expiration_Date__c,
|
Tax_Practice_No__c, Tax_Practice_Expiration_Date__c, Medical_Equipment_Num__c, Is_Active_Formula__c,
|
Medical_Equipment_Expiration_Date__c from Account where Id = :opp.Agency1__c];
|
//经销商分类只有特约、一级或者集中采购才可以进行报价
|
List<String> salesClazz = new List<String> {'特約販売店(区域)', '特約販売店(製品)', '特約販売店(製品+区域)', '一級販売店', '集采经销商'};
|
// 有效/无效(公式)!= 有效
|
if (acc.Is_Active_Formula__c != '有效') {
|
PageArrange();
|
errorflg = true;
|
errorMessage = '请选择有效的经销商';
|
return false;
|
}
|
// 经销商分类 是 二级 或 其他
|
//else if (acc.Sales_Shop_Class__c == '二級販売店' || acc.Sales_Shop_Class__c == 'その他') {
|
//CHAN-BQE6LA 【委托】【重要】询价经销商1判断逻辑 精琢技术 wql 2020/06/10 start
|
//注释原来逻辑
|
// else if (acc.Sales_Shop_Class__c == '二級販売店') {
|
// PageArrange();
|
// errorflg = true;
|
// errorMessage = '请确认第一经销商的经销商资质';
|
// return false;
|
// }
|
else if(!salesClazz.contains(acc.Sales_Shop_Class__c)){
|
PageArrange();
|
errorflg = true;
|
errorMessage = '经销商1的经销商分类为:特约,一级,集中采购才可以报价';
|
return false;
|
}
|
//CHAN-BQE6LA 【委托】【重要】询价经销商1判断逻辑 精琢技术 wql 2020/06/10 end
|
// 营业执照有效期限” 或“税务登记证有效期限” 或“医疗器械经营企业许可证有效期限” 其中一个证超过有效期的话
|
//去掉营业许可证的检查 因为阿西赛多不用检查 一般产品上面检查过 精琢技术 wql 2021/01/15 start
|
//&& String.isBlank(acc.Medical_Equipment_Num__c) == false
|
// && acc.Medical_Equipment_Expiration_Date__c != null && acc.Medical_Equipment_Expiration_Date__c >= Date.today()
|
else if (!
|
// 满足如下六个字段条件为有效,否则无效
|
(String.isBlank(acc.Tax_Practice_No__c) == false
|
&& (acc.Tax_Practice_Expiration_Date__c == null || acc.Tax_Practice_Expiration_Date__c >= Date.today())
|
|
&& String.isBlank(acc.Business_Authorization_No__c) == false
|
&& acc.Business_Paper_Expiration_Date__c != null && acc.Business_Paper_Expiration_Date__c >= Date.today())
|
) {
|
PageArrange();
|
errorflg = true;
|
errorMessage = '请确认第一经销商的经销商资质';
|
return false;
|
}
|
//去掉营业许可证的检查 因为阿西赛多不用检查 一般产品上面检查过 精琢技术 wql 2021/01/15 end
|
else {}
|
/*
|
if (acc.Sales_Shop_Class__c == '二級販売店' || acc.Sales_Shop_Class__c == 'その他') {
|
if (!
|
(!String.isBlank(acc.Tax_Practice_No__c)
|
&& (acc.Tax_Practice_Expiration_Date__c == null || acc.Tax_Practice_Expiration_Date__c >= Date.today())
|
&& !String.isBlank(acc.Medical_Equipment_Num__c)
|
&& (acc.Medical_Equipment_Expiration_Date__c != null && acc.Medical_Equipment_Expiration_Date__c >= Date.today())
|
&& !String.isBlank(acc.Business_Authorization_No__c)
|
&& (acc.Business_Paper_Expiration_Date__c != null && acc.Business_Paper_Expiration_Date__c >= Date.today()))) {
|
PageArrange();
|
errorflg = true;
|
errorMessage = '请确认第一经销商的经销商资质';
|
return false;
|
}
|
}
|
*/
|
}
|
|
return true;
|
}
|
|
// CHAN-AVG3PW 询价报价画面规则变更
|
// 报价创建日超过三个月时,如产品停产或CFDA失效,不可以保存,提示“请更新停止销售的产品”
|
// 做DECIDE时,如产品停产或CFDA失效,不可以保存,提示“请更新停止销售的产品”
|
private boolean checkSFDAStatus2(boolean dodecide) {
|
// CHAN-AZG864 不管在不在报价有效期内,CFDA不可销售的时候,都是报错的,其中不可销售产品显示红字,不应该保存。
|
//if (over3month == false && dodecide == false) {
|
// return true;
|
//}
|
|
for (QELine a : activities) {
|
if ((a.Asset_Model != null) && (a.Asset_Model != '')) {
|
system.debug('zzzzzzzz1:'+a.PageObject.SFDA_Status__c);
|
if (a.PageObject.SFDA_Status__c != '有効' &&
|
a.PageObject.SFDA_Status__c != '有効(再申請中)' &&
|
a.PageObject.SFDA_Status__c != '不要' &&
|
// LHJ 20181221 CBPR Start
|
a.PageObject.SFDA_Status__c != '暂停出库(短期)' &&
|
// LHJ 20181221 CBPR End
|
a.PageObject.SFDA_Status__c != '失効(期限内生産済在庫対応)'
|
/*&&
|
(a.PageObject.SFDA_Status__c != '失効(再申請中)' || dodecide != false)*/
|
) {
|
return false;
|
}
|
}
|
}
|
return true;
|
}
|
|
private boolean checkSFDAStatus1(boolean dodecide) {
|
// CHAN-AZG864 不管在不在报价有效期内,CFDA不可销售的时候,都是报错的,其中不可销售产品显示红字,不应该保存。
|
//if (over3month == false && dodecide == false) {
|
// return true;
|
//}
|
for (QELine a : activities) {
|
if ((a.Asset_Model != null) && (a.Asset_Model != '')) {
|
if (a.PageObject.SFDA_Status__c != '有効' &&
|
a.PageObject.SFDA_Status__c != '有効(再申請中)' &&
|
a.PageObject.SFDA_Status__c != '不要' &&
|
a.PageObject.SFDA_Status__c != '失効(期限内生産済在庫対応)' &&
|
// LHJ CBPR 20181221 Start
|
(a.PageObject.SFDA_Status__c != '暂停出库(长期)') &&
|
(a.PageObject.SFDA_Status__c != '暂停出库(短期)') &&
|
// LHJ CBPR 20181221 End
|
(a.PageObject.SFDA_Status__c != '失効(再申請中)' || dodecide != false)
|
) {
|
return false;
|
}
|
}
|
}
|
return true;
|
}
|
|
//SWAG-C9JCS8 【委托】【紧急】询价GZ-SP-GD0757135报价单问题 fy start
|
private boolean checkIsDecide() {
|
List<Opportunity> oppsde = [Select Id, Estimation_Decision__c From Opportunity Where Id = : oppId];
|
if (oppsde.size() > 0) {
|
if(oppsde[0].Estimation_Decision__c){
|
return true;
|
}
|
}
|
return false;
|
}
|
//SWAG-C9JCS8 【委托】【紧急】询价GZ-SP-GD0757135报价单问题 fy end
|
|
public boolean dataEntry() {
|
system.debug('activities++++----****3'+activities);
|
//SWAG-C9JCS8 【委托】【紧急】询价GZ-SP-GD0757135报价单问题 fy start
|
// Boolean ifdecide=false;
|
// List<Opportunity> oppsde = [Select Id, Estimation_Decision__c From Opportunity Where Id = : oppId];
|
// if (oppsde.size() > 0) {
|
// if(oppsde[0].Estimation_Decision__c){
|
// ifdecide=true;
|
// }else{
|
// ifdecide=false;
|
// }
|
// }
|
System.debug('start checkIsDecide at: ' + System.currentTimeMillis());
|
Boolean ifdecide=checkIsDecide();
|
System.debug('finished checkIsDecide at: ' + System.currentTimeMillis());
|
if(!ifdecide){
|
//SWAG-C9JCS8 【委托】【紧急】询价GZ-SP-GD0757135报价单问题 fy end
|
system.debug('○○○○○○○○○○○○Welcome to dataEntry class!!○○○○○○○○○○○○');
|
Boolean error = false;
|
Boolean detail = false;
|
if ((quo.QuoteName__c == null) || (quo.QuoteName__c == '')) {
|
quo.QuoteName__c.addError(System.Label.Error_Message3);
|
error = true;
|
errormessage = System.Label.Error_Message3;
|
}
|
if (quo.Dealer_Final_Price_Page__c == null) {
|
quo.Dealer_Final_Price__c.addError(System.Label.Error_Message3);
|
error = true;
|
errormessage = System.Label.Error_Message3;
|
}
|
if (qb.Quote_Adjust_Calculate == null) {
|
quo.Quote_Adjust_Calculate__c.addError(System.Label.Error_Message3);
|
error = true;
|
errormessage = System.Label.Error_Message3;
|
}
|
if (quo.Quote_Adjust_Amount_Page__c == null) {
|
quo.Quote_Adjust_Amount__c.addError(System.Label.Error_Message3);
|
error = true;
|
errormessage = System.Label.Error_Message3;
|
}
|
if (quo.Quote_Expiration_Date__c == null) {
|
quo.Quote_Expiration_Date__c.addError(System.Label.Error_Message3);
|
error = true;
|
errormessage = System.Label.Error_Message3;
|
}
|
//decimal temSalesAmount1 = 0; // 2018/09/28 CHAN-B4YAB8 经销商小计合计 end
|
system.debug('activities++++----****2'+activities);
|
for (QELine a : activities) {
|
if ((a.Asset_Model != null) && (a.Asset_Model != '')) {
|
if (a.PageObject.Quantity__c == null || a.PageObject.Quantity__c == 0) {
|
a.PageObject.Quantity__c.addError(System.Label.Error_Message3);
|
error = true;
|
errormessage = System.Label.Error_Message3;
|
}
|
if (a.PageObject.UnitPrice_Page__c == null) {
|
a.PageObject.UnitPrice__c.addError(System.Label.Error_Message3);
|
error = true;
|
errormessage = System.Label.Error_Message3;
|
}
|
if (a.PageObject.AgencyUnitPrice__c == null) {
|
a.PageObject.AgencyUnitPrice__c.addError(System.Label.Error_Message3);
|
error = true;
|
errormessage = System.Label.Error_Message3;
|
}
|
//temSalesAmount1 = temSalesAmount1 + a.PageObject.AgencySubtotal__c; // 2018/09/29 CHAN-B4YAB8 经销商小计累加
|
if (a.PageObject.PricebookEntryId == null) {
|
error = true;
|
errormessage = System.Label.Error_Message27;
|
}
|
detail = true;
|
}
|
}
|
if (enableSales == true) {
|
// LHJ Start
|
if (quo.Agency1__c == null) {
|
quo.Agency1__c.addError(System.Label.Error_Message3);
|
error = true;
|
errormessage = System.Label.Error_Message3;
|
}
|
// LHJ End
|
if (quo.OCM_Agent1_Price_Page__c == null) {
|
quo.OCM_Agent1_Price__c.addError(System.Label.Error_Message3);
|
error = true;
|
errormessage = System.Label.Error_Message3;
|
} else {
|
|
}
|
} else {
|
|
if (opp.Agency1__c != null) {
|
opp.Agency1__c.addError(System.Label.Error_Message30);
|
error = true;
|
errormessage = System.Label.Error_Message30;
|
}
|
if (quo.OCM_Agent1_Price_Page__c != null) {
|
quo.OCM_Agent1_Price__c.addError(System.Label.Error_Message30);
|
error = true;
|
errormessage = System.Label.Error_Message30;
|
}
|
if (opp.Agency2__c != null) {
|
opp.Agency2__c.addError(System.Label.Error_Message30);
|
error = true;
|
errormessage = System.Label.Error_Message30;
|
}
|
if (quo.Agent1_Agent2_Price_Page__c != null) {
|
quo.Agent1_Agent2_Price__c.addError(System.Label.Error_Message30);
|
error = true;
|
errormessage = System.Label.Error_Message30;
|
}
|
|
}
|
|
if (DisCalculation >= 1000 || DisCalculation <= -1000) {
|
error = true;
|
errormessage = System.Label.Error_Message38;
|
}
|
if (qb.SalesCalculation1 >= 1000 || qb.SalesCalculation1 <= -1000) {
|
error = true;
|
errormessage = System.Label.Error_Message38;
|
}
|
if (qb.SalesCalculation2 >= 1000 || qb.SalesCalculation2 <= -1000) {
|
error = true;
|
errormessage = System.Label.Error_Message38;
|
}
|
|
if (error == true) {
|
PageArrange();
|
|
errorflg = true;
|
return false;
|
}
|
|
//Quote-------------------------------------------------------------
|
//商談Id、価格表Id
|
//見積名称、標準定価合計、見積金額合計(積上)、病院の契約金額、原価、
|
//値引金額計算、値引き金額金額、見積調整金額計算、見積調整金額金額
|
//第一販売店名称、金額、利益、%、第二販売店名称、金額、利益、%
|
//优惠成交价、优惠折扣、优惠价格、单价、报价金额、Total
|
//契約内訳、印刷病院名称、見積有効期限日、見積表記コメント
|
|
//引合単位の見積Noが必要
|
List<Quote> maxQuote_No = [select Quote_No__c From Quote Where OpportunityId = :oppid and (not Quote_No__c like '%Old') order by Quote_No_last2__c desc NULLS LAST limit 1];
|
String oppNo;
|
Integer l = 1;
|
if (maxQuote_No.size() > 0) {
|
try {
|
oppNo = maxQuote_No[0].Quote_No__c;
|
l = Integer.valueOf(oppNo.substring(oppNo.length() - 2)) + 1;
|
} catch (System.TypeException e) {
|
system.debug('maxQuote_No Error: quote.id=' + maxQuote_No[0].id);
|
}
|
} else {
|
system.debug('first Quote');
|
}
|
oppNo = '00' + String.valueof(l);
|
oppNo = oppNo.substring(oppNo.length() - 2);
|
|
Quote q = New Quote();
|
if (changedAfterPrint) {
|
system.debug('id空1:');
|
quoId = null;
|
}
|
// false伝票から新規作成
|
if (changedAfterBid) {
|
system.debug('id空2:');
|
quoId = null;
|
}
|
// CHAN-AVG3PW 询价报价画面规则变更
|
if (newQuoteFlag) {
|
system.debug('id空3:');
|
quoId = null;
|
}
|
// 多年保修 start
|
//报价试算 增加经销商前后对比 精琢技术 wql 20210508 start
|
if ((quoteGurantee_Period != null &&
|
!quoteGurantee_Period.equals(quo.Gurantee_Period__c))
|
||
|
(quotemultiYearWarranty != null &&
|
!quotemultiYearWarranty.equals('' + quo.multiYearWarranty__c))
|
||
|
(agency1Name !=null &&!agency1Name.equals(quo.Agency1__c))
|
||
|
(agency2Name !=null &&!agency2Name.equals(quo.Agency2__c))
|
) {
|
quoId = null;
|
}
|
agency1Name = quo.Agency1__c;
|
agency2Name = quo.Agency2__c;
|
//报价试算 增加经销商前后对比 精琢技术 wql 20210508 end
|
quoteGurantee_Period = quo.Gurantee_Period__c;
|
quotemultiYearWarranty = '' + quo.multiYearWarranty__c;
|
// 多年保修 end
|
if (quoId == null) {
|
q = New Quote();
|
q.OpportunityId = oppId;
|
|
if (detail == true) {
|
if (standardPricebook == null) {
|
errormessage = System.Label.Error_Message27;
|
errorflg = true;
|
return false;
|
} else {
|
q.Pricebook2Id = standardPricebook.Id;
|
}
|
}
|
|
} else {
|
List<Quote> qs = New List<Quote>();
|
qs = [select Id, OpportunityId, CreatedDate, Pricebook2Id, Name, Estimation_List_Price__c, Dealer_Final_Price__c,
|
Stocking_Price__c, Discount_Amount__c, Discount_Amount_Calculate__c, Quote_Adjust_Amount__c, Quote_Adjust_Calculate__c,
|
Agency1__c, OCM_Agent1_Price__c, Agency1_Profit__c, Agency1_Profit_Rate__c, Quote_No__c,
|
Agency2__c, Agent1_Agent2_Price__c, Agency2_Profit__c, Agency2_Profit_Rate__c,
|
Preferential_Trading_Price__c, Discount__c, Pricing__c, Unit_Price__c, Offer_Amount__c, TOTAL__c,
|
Contract__c, Print_HP_Name__c, Quote_Expiration_Date__c, Quote_Comment__c, OCM_Sales_Forecast__c, Installation_location__c, HasType3Machine__c
|
// 多年保修 start
|
, Gurantee_Period__c , multiYearWarranty__c, MultiYearWarrantyTotalPrice__c
|
, Preferential_Gurantee_Period__c
|
// 多年保修 end
|
//报价试算 start
|
,IsQuoteTrial__c
|
//报价试算 end
|
From Quote Where Id = :quoId];
|
if (qs.size() > 0) {
|
q = qs[0];
|
}
|
if (q.Pricebook2Id == null) {
|
if (detail == true) {
|
if (standardPricebook == null) {
|
errormessage = System.Label.Error_Message27;
|
errorflg = true;
|
return false;
|
} else {
|
q.Pricebook2Id = standardPricebook.Id;
|
}
|
}
|
}
|
}
|
|
if (quoId == null) {
|
q.Quote_No__c = opp.Opportunity_No__c + '-' + oppNo;
|
q.PriceRefreshDate__c = Date.today();
|
}
|
if (productStatusUpdated) {
|
q.PriceRefreshDate__c = Date.today();
|
}
|
|
// 20150302 jo 見積の主机安装地点を設定
|
List<String> pIds = new List<String>();
|
system.debug('activities++++----****1'+activities);
|
for (QELine s : activities) {
|
if (String.isBlank(s.PageObject.Id__c) == false) {
|
pIds.add(s.PageObject.Id__c);
|
}
|
}
|
List<Product2> pList = [select Id from Product2 where Id in :pids and Category3__c = '主机'];
|
if (pList.size() > 0) q.HasType3Machine__c = true;
|
|
q.Name = quo.QuoteName__c;
|
// TODO katsu 新規じゃない場合セットする必要ですか?
|
q.Estimation_List_Price__c = qb.Estimation_List_Price;
|
//q.TotalPrice = quo.TotalPrice; ===============-Field is not writeable: Quote.TotalPrice
|
q.Dealer_Final_Price__c = quo.Dealer_Final_Price_Page__c;
|
q.OCM_Sales_Forecast__c = opp.Wholesale_Price__c;
|
q.Stocking_Price__c = quoStocking_Price_c;
|
quo.Stocking_Price__c = quoStocking_Price_c;
|
|
q.Quote_Adjust_Amount__c = quo.Quote_Adjust_Amount_Page__c;
|
q.Quote_Adjust_Calculate__c = qb.Quote_Adjust_Calculate;
|
q.Discount_Amount__c = DisAmount;
|
q.Discount_Amount_Calculate__c = DisCalculation;
|
q.Agency1__c = opp.Agency1__c;
|
q.OCM_Agent1_Price__c = quo.OCM_Agent1_Price_Page__c;
|
q.Agency1_Profit__c = Salesprofit1;
|
q.AgencyDiscount__c = AgencyDiscount; // 2018/09/28 CHAN-B4YAB8 经销商折扣
|
|
//多年保修 start
|
q.Gurantee_Period__c = quo.Gurantee_Period__c;
|
q.multiYearWarranty__c = quo.multiYearWarranty__c;
|
q.MultiYearWarrantyTotalPrice__c = quo.MultiYearWarrantyTotalPrice__c;
|
q.quoteSavedDate__c = Date.today();
|
//多年保修 end
|
|
q.Agency1_Profit_Rate__c = qb.SalesCalculation1;
|
q.Agency2__c = opp.Agency2__c;
|
q.Agent1_Agent2_Price__c = quo.Agent1_Agent2_Price_Page__c;
|
q.Agency2_Profit__c = Salesprofit2;
|
q.Agency2_Profit_Rate__c = qb.SalesCalculation2;
|
|
//----checkbox は印刷直前に保存
|
q.Print_HP_Name__c = selection_hp;
|
q.Quote_Expiration_Date__c = quo.Quote_Expiration_Date__c;
|
q.Quote_Comment__c = quo.Quote_Comment__c;
|
|
q.Installation_location__c = quo.Installation_location__c;
|
/*
|
if (hasType3Machine) {
|
q.Installation_location__c = '';
|
}
|
*/
|
System.debug('start save quote at: ' + System.currentTimeMillis());
|
if (quoId == null) {
|
insert q;
|
quo.Quote_No__c = q.Quote_No__c;
|
} else {
|
update q;
|
}
|
System.debug('finished save quote at: ' + System.currentTimeMillis());
|
|
system.debug('○○○○○Save1○○○○○');
|
|
//QuoteLineItem;
|
List<QuoteLineItem> qlist = New List<QuoteLineItem>();
|
qlist = [Select Id From QuoteLineItem Where QuoteId = :quoId];
|
if (qlist.size() > 0) {
|
//delete
|
delete qlist;
|
}
|
|
//QuoteLineItem--------------------------------------------
|
//製品型番、品目コード、SFDAステータス、品目名、ListPrice、数量
|
//価格、単位、小計、OCM売上予測金額(税抜)、価格表
|
qlist = New List<QuoteLineItem>();
|
//Sap送信,Printに合わせて1~
|
Integer i = 1;
|
if (activities.size() > 0) {
|
system.debug('activities++++----****'+activities);
|
for (QELine s : activities) {
|
if (s.Asset_Model != null && s.Asset_Model != '') {
|
if (s.pageObject.PricebookEntryId != null) {
|
// TODO katsu なぜclone()しますか?意味不明。
|
QuoteLineItem ql = s.pageObject.clone();
|
ql.Quantity = ql.Quantity__c;
|
ql.UnitPrice = 0; // UnitPriceを使わないけど、必須なので、0を入れる
|
ql.QuoteId = q.Id;
|
ql.Name__c = s.PageObject.Name__c;
|
ql.Cost__c = s.Cost_c;
|
ql.Cost_Subtotal__c = s.Cost_Subtotal_c;
|
s.pageObject.Cost__c = s.Cost_c;
|
s.pageObject.Cost_Subtotal__c = s.Cost_Subtotal_c;
|
ql.UnitPrice__c = ql.UnitPrice_Page__c;
|
ql.UnitPrice_Page__c = 0;
|
ql.ListPrice__c = s.ListPrice_Page;
|
// 多年保修 start
|
// 计提金额
|
ql.GuranteePrice__c = s.GuranteePrice;
|
ql.ProductGuranteePrice__c = s.ProductGuranteePrice;
|
// 维修合同报价
|
ql.Maintenance_Price_Year__c = s.Maintenance_Price_Year;
|
// 多年保修 end
|
//CHAN-BWH2WP 精琢技术 wql 2020/12/22 start
|
//如果产品为不可取消多年保 则打上标识
|
system.debug(s.CanNotCancelledGurantee);
|
ql.CanNotCancelFlag__c = s.CanNotCancelledGurantee;
|
|
//CHAN-BWH2WP 精琢技术 wql 2020/12/22 end
|
// CHAN-AVG3PW 询价报价画面规则变更
|
//ql.SFDA_Status__c = prd2LatestValMap.get(s.pageObject.Id__c).SFDA_Status__c;
|
//並び順
|
ql.Item_Order__c = i;
|
//OCM売上予測金額(税込) = OCM成約予測金額(税込み) * (小計 / 見積合計)
|
if (s.PageObject.Subtotal__c != null && opp.Wholesale_Price__c != null && quo.QuoteTotal_Page__c != null) {
|
if (s.PageObject.Subtotal__c > 0 && quo.QuoteTotal_Page__c > 0) {
|
ql.OCM_Sales_Forecast__c = opp.Wholesale_Price__c * (s.PageObject.Subtotal__c / quo.QuoteTotal_Page__c);
|
}
|
}
|
qlist.add(ql);
|
i++;
|
}
|
}
|
}
|
System.debug('start save quote lines at: ' + System.currentTimeMillis());
|
system.debug('qlist+++---+++'+qlist);
|
insert qlist;
|
System.debug('finished save quote lines at: ' + System.currentTimeMillis());
|
|
}
|
system.debug('○○○○○Save2○○○○○');
|
|
//Opportunity--------------------------------------------
|
//標準定価合計価格、見積金額総合計(税抜き)、病院契約金額、
|
//1次販売店、1次販売店利益金額、1次販売店利益率、
|
//2次販売店、2次販売店利益金額、2次販売店利益率
|
//見積番号、見積名
|
Opportunity o = New Opportunity();
|
List<Opportunity> os = New List<Opportunity>();
|
|
os = [select Id, Estimation_List_Price__c, Dealer_Final_Price__c, Estimation_List_Price_Without_Tax__c,
|
Agency1__c, OCM_Agent1_Price__c, Agency1_Profit__c, Agency1_Profit_Rate__c, Stocking_Price__c,
|
Agency2__c, Agent1_Agent2_Price__c, Agency2_Profit__c, Agency2_Profit_Rate__c, Quote_Update_Sum__c , Hospital__c,Is_Corrosion__c
|
From Opportunity Where Id = :oppid];
|
if (os.size() > 0) {
|
o = os[0];
|
o.Estimation_List_Price__c = qb.Estimation_List_Price;
|
o.Wholesale_Price__c = opp.Wholesale_Price__c;
|
o.Dealer_Final_Price__c = quo.Dealer_Final_Price_Page__c;
|
o.Agency1__c = opp.Agency1__c;
|
o.OCM_Agent1_Price__c = quo.OCM_Agent1_Price_Page__c;
|
o.Agency1_Profit__c = Salesprofit1;
|
o.Agency1_Profit_Rate__c = qb.SalesCalculation1;
|
// o.Agency1_Profit_Rate__c = quo.Agency1_Profit_Rate__c;
|
o.Agency2__c = opp.Agency2__c;
|
o.Agent1_Agent2_Price__c = quo.Agent1_Agent2_Price_Page__c;
|
o.Agency2_Profit__c = Salesprofit2;
|
o.Agency2_Profit_Rate__c = qb.SalesCalculation2;
|
// o.Agency2_Profit_Rate__c = quo.Agency2_Profit_Rate__c;
|
|
o.Stocking_Price__c = quo.Stocking_Price__c;
|
|
o.Estimation_No__c = quo.Quote_No__c;
|
//o.Estimation_Name__c = quo.Name;
|
o.Estimation_Name__c = q.Name;
|
o.Estimation_Id__c = q.Id;
|
o.Installation_location__c = q.Installation_location__c;
|
o.HasType3Machine__c = q.HasType3Machine__c;
|
// 2018/09/29 CHAN-B4YAB8 经销商折扣 start
|
o.AgencyDiscount__c = AgencyDiscount;
|
// 2018/09/29 CHAN-B4YAB8 经销商折扣 end
|
// 多年保修 start
|
o.Gurantee_Period__c = quo.Gurantee_Period__c ;
|
o.multiYearWarranty__c = quo.multiYearWarranty__c ;
|
o.MultiYearWarrantyTotalPrice__c = quo.MultiYearWarrantyTotalPrice__c ;
|
o.quoteSavedDate__c = Date.today();
|
// 多年保修 end
|
|
|
if (o.Quote_Update_Sum__c == null) {
|
o.Quote_Update_Sum__c = 1;
|
} else {
|
o.Quote_Update_Sum__c = o.Quote_Update_Sum__c + 1;
|
}
|
System.debug('start 1st save Opportunity at: ' + System.currentTimeMillis());
|
ControllerUtil.updOpp(o);
|
System.debug('finished 1st save Opportunity at: ' + System.currentTimeMillis());
|
|
system.debug('○○○○○Save3○○○○○');
|
|
//OpportunityLineItem--------------------------------------------
|
//製品型番、品目コード、SFDAステータス、品目名、ListPrice、数量
|
//価格、単位、小計、OCM売上予測金額(税抜)、価格表
|
List<OpportunityLineItem> ols = New List<OpportunityLineItem>();
|
OpportunityLineItem ol = New OpportunityLineItem();
|
ols = [select Id from OpportunityLineItem Where OpportunityId = :oppid];
|
if (ols.size() > 0) {
|
//delete
|
ControllerUtil.delOppLine(ols);
|
system.debug('○○○○○Save4○○○○○');
|
}
|
//Sap送信,Printに合わせて1~
|
i = 1;
|
ols = New List<OpportunityLineItem>();
|
if (activities.size() > 0) {
|
for (QELine s : activities) {
|
if (s.Asset_Model != null && s.Asset_Model != '') {
|
if (s.PageObject.PricebookEntryId != null) {
|
ol = New OpportunityLineItem();
|
ol.OpportunityId = oppid;
|
ol.Id__c = s.PageObject.Id__c;
|
// CHAN-AVG3PW 询价报价画面规则变更
|
ol.SFDA_Status__c = s.PageObject.SFDA_Status__c;
|
//ol.SFDA_Status__c = prd2LatestValMap.get(s.pageObject.Id__c).SFDA_Status__c;
|
ol.Name__c = s.PageObject.Name__c;
|
ol.ListPrice__c = s.ListPrice_Page;
|
ol.Quantity = s.PageObject.Quantity__c;
|
ol.UnitPrice = 0;
|
ol.UnitPrice__c = s.PageObject.UnitPrice_Page__c;
|
// 2018-10-31 CHAN-B4YAB8 赠送、经销商单价和小计 start
|
ol.AgencyUnitPrice__c = s.PageObject.AgencyUnitPrice__c;
|
ol.Present__c = s.PageObject.Present__c;
|
ol.AgencySubtotal__c = s.PageObject.AgencySubtotal__c;
|
// 2018-10-31 CHAN-B4YAB8 赠送、经销商单价和小计 start
|
// 多年保修 start
|
ol.GuaranteePeriod__c = s.PageObject.GuaranteePeriod__c;
|
//外贸多年保 取消CNY 的判断 && oppInfo.CurrencyIsoCode.equals('CNY')
|
//外贸多年保 精琢技术 wql 2021/01/18 start
|
if (oppInfo.CurrencyIsoCode != null ) {
|
ol.multiYearWarranty__c = s.PageObject.multiYearWarranty__c;
|
ol.ServicePrice__c = s.PageObject.ServicePrice__c;
|
ol.If_Cancel_Guarantee__c = s.PageObject.If_Cancel_Guarantee__c;
|
ol.ProductEntend_gurantee_period_all__c
|
= s.PageObject.ProductEntend_gurantee_period_all__c;
|
ol.GuranteeType__c = s.PageObject.GuranteeType__c;
|
ol.NoDiscountTotal__c = s.PageObject.NoDiscountTotal__c;
|
ol.warrantyType__c = s.PageObject.warrantyType__c;
|
ol.productServicePrice__c = s.PageObject.productServicePrice__c;
|
// 计提金额
|
ol.GuranteePrice__c = s.GuranteePrice;
|
ol.ProductGuranteePrice__c = s.ProductGuranteePrice;
|
// 维修合同报价
|
ol.Maintenance_Price_Year__c = s.Maintenance_Price_Year;
|
|
ol.provistonPeriod__c = s.PageObject.provistonPeriod__c;
|
|
}
|
//外贸多年保 精琢技术 wql 2021/01/18 end
|
// 多年保修 end
|
ol.Qty_Unit__c = s.PageObject.Qty_Unit__c;
|
//コストは小計済を登録
|
ol.Cost__c = s.PageObject.Cost__c;
|
ol.BSS_Category__c = s.PageObject.BSS_Category__c;
|
//CHAN-BWH2WP 精琢技术 wql 2020/12/22 start
|
//如果产品为不可取消多年保 则打上标识
|
system.debug(s.CanNotCancelledGurantee);
|
ol.CanNotCancelFlag__c = s.CanNotCancelledGurantee;
|
//CHAN-BWH2WP 精琢技术 wql 2020/12/22 end
|
//OCM売上予測金額 * (小計/見積合計)
|
if (s.PageObject.Subtotal__c != null && opp.Wholesale_Price__c != null && quo.QuoteTotal_Page__c != null) {
|
if (s.PageObject.Subtotal__c > 0 && quo.QuoteTotal_Page__c > 0) {
|
ol.OCM_Sales_Forecast__c = opp.Wholesale_Price__c * (s.PageObject.Subtotal__c / quo.QuoteTotal_Page__c);
|
}
|
}
|
//価格表
|
ol.PricebookEntryId = s.PageObject.PricebookEntryId;
|
//並び順
|
ol.Item_Order__c = i;
|
ols.add(ol);
|
i++;
|
}
|
}
|
}
|
// CHAN-BEN5UC [委托]询价:创建报价后,判断询价一定期间内,是否出借备品 by vivek start
|
// CHAN-C9Y3HL 【委托】【评估需求】询价里报价画面速度优化 2022-02-09
|
// 查询出借备品逻辑从保存逻辑中移除,由Batch进行统一操作,以提升保存速度及统计数据准确性。
|
// Date createdDateStr;
|
// if (quoId != null && quo.CreatedDate != null ) {
|
// // createdDateStr = [select id,CreatedDate from Quote where id = :quoId][0].CreatedDate.date();
|
// createdDateStr = quo.CreatedDate.date();
|
// } else {
|
// createdDateStr = Date.today();
|
// }
|
// // 一年前的日期
|
// Date createdDateYear = createdDateStr.addYears(-1);
|
// List<Rental_Apply_Equipment_Set_Detail__c> raesdList = [select id, product__c, Bollow_Date__c, Rental_Apply__r.Hospital__c from Rental_Apply_Equipment_Set_Detail__c where Rental_Apply__r.Strategic_dept__c = : opp.Department_Class__c and Key_product__c != null and Bollow_Date__c >= :createdDateYear order by Bollow_Date__c ];
|
|
// Map<String, Date> ProOfDate = new Map<String, Date>();
|
// for (Rental_Apply_Equipment_Set_Detail__c raesd : raesdList) {
|
// ProOfDate.put(raesd.product__c, raesd.Bollow_Date__c);
|
// }
|
|
// o.WhetherTrySpareParts_3m__c = false;
|
// o.WhetherTrySpareParts_6m__c = false;
|
// o.WhetherTrySpareParts_1y__c = false;
|
// for (OpportunityLineItem oppitem : ols) {
|
// if (ProOfDate.containsKey(((String)oppitem.Id__c).substring(0, 15))) {
|
// Date bollDate = ProOfDate.get(((String)oppitem.Id__c).substring(0, 15));
|
// if (bollDate != null && bollDate.addMonths(3) > createdDateStr) {
|
// o.WhetherTrySpareParts_3m__c = true;
|
// }
|
// if (bollDate != null && bollDate.addMonths(6) > createdDateStr && bollDate.addMonths(3) < createdDateStr) {
|
// o.WhetherTrySpareParts_6m__c = true;
|
// }
|
// if (bollDate != null && bollDate.addYears(1) > createdDateStr && bollDate.addMonths(6) < createdDateStr) {
|
// o.WhetherTrySpareParts_1y__c = true;
|
// }
|
|
// }
|
// }
|
|
|
// System.debug('start 2nd save Opportunity at: ' + System.currentTimeMillis());
|
// ControllerUtil.updOpp(o);
|
// System.debug('finished 2nd save Opportunity at: ' + System.currentTimeMillis());
|
// CHAN-BEN5UC [委托]询价:创建报价后,判断询价一定期间内,是否出借备品 by vivek end
|
System.debug('start save Opportunity item lines at: ' + System.currentTimeMillis());
|
ControllerUtil.insOppLine(ols);
|
System.debug('finished save Opportunity item lines at: ' + System.currentTimeMillis());
|
}
|
|
} else {
|
system.debug('*****SystemError OpportunityId is Null*****');
|
}
|
//保存時引合Pageに戻らない処理とした為にQuoteIdをここでセット
|
if (quoId == null) {
|
quoId = q.Id;
|
newQuoteFlag = false;
|
}
|
}else{
|
errorflg = true;
|
errormessage = '该询价已经decide,不可再修改';
|
return false;
|
}
|
return true;
|
}
|
//lastbuy 2022/2/9 fy start
|
public boolean ReservedProductVerification() {
|
|
filg=true;
|
Map<string,QuoteLineItem> quotlinitMap = new Map<string,QuoteLineItem>();
|
List<Id> lastProductFLGListId = new List<Id>();
|
List<QuoteLineItem> lastProductFLGList = new List<QuoteLineItem>();
|
List<QuoteLineItem> act = new List<QuoteLineItem>();
|
List<QuoteLineItem> act2 = new List<QuoteLineItem>();
|
for(QELine aaa :activities){
|
if(aaa.pageObject.PricebookEntry.Product2Id!=null){
|
act.add(aaa.pageObject);
|
}
|
}
|
act2=act.deepClone();
|
Map<String,QuoteLineItem> map1 = new Map<String,QuoteLineItem>();
|
System.debug('activities1111111111112为所当为多多!!!'+activities);
|
integer i =0;
|
for(QuoteLineItem pspsc :act2){
|
if(pspsc.PricebookEntry.Product2Id!=null){
|
if(map1.containsKey(pspsc.PricebookEntry.Product2Id)){
|
QuoteLineItem quoteLine = map1.get(pspsc.PricebookEntry.Product2Id);
|
quoteLine.Quantity__c =quoteLine.Quantity__c+pspsc.Quantity__c;
|
map1.put(pspsc.PricebookEntry.Product2Id,quoteLine);
|
}else{
|
map1.put(pspsc.PricebookEntry.Product2Id,pspsc);
|
}
|
System.debug('34499879!!!'+activities);
|
}
|
}
|
System.debug('3434343!!!'+activities);
|
System.debug('5656565!!!'+map1);
|
for (QuoteLineItem value : map1.values()) {
|
if(value.PricebookEntry.Product2.LastbuyProductFLG__c){
|
lastProductFLGListId.add(value.PricebookEntry.Product2Id);
|
quotlinitMap.put(value.PricebookEntry.Product2Id,value);
|
lastProductFLGList.add(value);
|
}
|
}
|
System.debug('activities++++!!!'+activities);
|
System.debug('activities!!!'+map1.values());
|
System.debug('oppId!!!'+oppId);
|
System.debug('lastProductFLGList!!!'+lastProductFLGListId);
|
if(lastProductFLGListId!=null&&lastProductFLGListId.size()!=0){
|
List<LastbuyProduct__c> LastbuyObjList=[select id,LastbuyQuantity__c,InquiryCode__c,ProductName__c,effectiveFLG__c from LastbuyProduct__c where InquiryCode__c= : oppId and ProductName__c in :lastProductFLGListId and effectiveFLG__c = true];
|
Map<string,LastbuyProduct__c> LastbuyObjMap = new Map<string,LastbuyProduct__c>();
|
System.debug('LastbuyObjList+++++!!!'+LastbuyObjList);
|
if(LastbuyObjList!=null&&LastbuyObjList.size()!=0){
|
for(LastbuyProduct__c lastbuypr :LastbuyObjList){
|
LastbuyObjMap.put(lastbuypr.ProductName__c,lastbuypr);
|
}
|
}else{
|
flglastbuy=1;
|
filg=false;
|
return filg;
|
}
|
System.debug('LastbuyObjMap!!!'+LastbuyObjMap);
|
System.debug('lastProductFLGList+++++++!!!'+lastProductFLGList);
|
if(lastProductFLGList!=null&&lastProductFLGList.size()!=0){
|
for(QuoteLineItem lastbuypr :lastProductFLGList){
|
Decimal quoteLItemNum=0;
|
if(LastbuyObjMap.containsKey(lastbuypr.PricebookEntry.Product2Id)){
|
quoteLItemNum=LastbuyObjMap.get(lastbuypr.PricebookEntry.Product2Id).LastbuyQuantity__c;
|
System.debug('quoteLItemNum!!!'+quoteLItemNum);
|
System.debug('lastbuypr.pageObject.Quantity__c+++!!!'+lastbuypr.Quantity__c);
|
if(lastbuypr.Quantity__c>quoteLItemNum){
|
errorProductmodel=lastbuypr.Asset_Model_No__c;
|
flglastbuy=2;
|
filg=false;
|
break;
|
}
|
}else{
|
errorProductmodel=lastbuypr.Asset_Model_No__c;
|
flglastbuy=3;
|
filg=false;
|
break;
|
}
|
}
|
}
|
}
|
system.debug('filg====='+filg);
|
return filg;
|
}
|
//lastbuy 2022/2/9 fy end
|
//oppに画面の値を設定
|
private void setOppFromOppInfo() {
|
opp.Wholesale_Price__c = oppInfo.Wholesale_Price;
|
opp.Agency1__c = quo.Agency1__c;
|
opp.Agency2__c = quo.Agency2__c;
|
}
|
|
public class OppInfo {
|
public String Account_RecordType_DeveloperName { get; set; }
|
public String Direct_Separate { get; set; }
|
public String Trade { get; set; }
|
public Decimal Wholesale_Price { get; set; }
|
public String CurrencyIsoCode { get; set; }
|
public String HP_Name { get; set; }
|
public String Department_Name { get; set; }
|
public String Sales_Root { get; set; }
|
// LHJ Start
|
public boolean If_Need_Authorize { get; set; }
|
public String Authorized_DB_No { get; set; }
|
// LHJ End
|
|
public OppInfo(Opportunity opp) {
|
Account_RecordType_DeveloperName = opp.Account.RecordType.DeveloperName;
|
Direct_Separate = opp.Direct_Separate__c;
|
Trade = opp.Trade__c;
|
Wholesale_Price = opp.Wholesale_Price__c;
|
CurrencyIsoCode = opp.CurrencyIsoCode;
|
HP_Name = opp.HP_Name__c;
|
Department_Name = opp.Department_Name__c;
|
Sales_Root = opp.Sales_Root__c;
|
// LHJ Start
|
If_Need_Authorize = opp.If_Need_Authorize__c;
|
Authorized_DB_No = opp.Authorized_DB_No__c;
|
// LHJ End
|
}
|
}
|
//TODO 1.Quoteオブジェクト追加
|
//TODO 2.コンストラクタを追加
|
public class QuoteBean {
|
public Decimal Estimation_List_Price { get; set; }
|
//TODO 999.99以下しか入力できない。
|
public Decimal Quote_Adjust_Calculate { get; set; }
|
public Decimal SalesCalculation1 { get; set; }
|
public Decimal SalesCalculation2 { get; set; }
|
public Integer PriceRefreshPeriod { get; set; }
|
public void setPriceRefreshPeriodByDate(Date PriceRefreshDate) {
|
this.PriceRefreshPeriod = PriceRefreshDate.daysBetween(Date.today());
|
}
|
}
|
|
public class QELinelatestInfo {
|
public String ProductCode { get; set; }
|
public String ProductName { get; set; }
|
public String SFDA_Status { get; set; }
|
public String Sales_Possibility { get; set; }
|
public Decimal ListPrice { get; set; } // 最新
|
public Decimal Cost { get; set; } // 最新
|
public Integer Specifications {get; set;}
|
|
// 多年保修 start
|
public string GuranteeType {get; set;}
|
public Decimal Intra_Trade_Gurantee {get; set;}
|
public Decimal ProductEntend_gurantee_period_all {get; set;}
|
public Decimal Intra_Trade_Service {get; set;}
|
// 维修合同报价
|
public Decimal Maintenance_Price_Year {get; set;}
|
// 多年保修 end
|
// 维修合同报价
|
//不可取消多年保
|
public Boolean CanNotCancelledGurantee {get; set;}
|
// 多年保修 end
|
|
//阿西赛多
|
public Boolean Is_DangerousChemicals {get; set;}
|
//阿西赛多
|
|
}
|
public class QELine {
|
public Integer lineNo { get; set; } // 画面の順序
|
public String Asset_Model { get; set; }
|
public String Sales_Possibility { get; set; } // 販売可否○×判断用、使ってないようです。TODO 削除
|
public QuoteLineItem pageObject { get; set; } // Id__cは空行判断用、SFDA_Status__c など、翻訳される項目表示するため使う必要があります
|
public Decimal Cost_c { get; set; }
|
public Decimal Cost_Subtotal_c { get; set; }
|
public Decimal ListPrice_Page { get; set; }
|
//*******************************liukun******************//
|
public String StorageStatus { get; set; }
|
//********************Insert [OLY_OCM-228] [20160706] [赵德芳] Start********************//
|
public Integer Specifications {get; set;}
|
//********************Insert [OLY_OCM-228] [20160706] [赵德芳] End**********************//
|
//CHAN-BKU3XH 检查是否存在不是同一个供销商名称 精琢技术 2020/02/17 Start
|
public String VenderName { get; set; }
|
//CHAN-BKU3XH 检查是否存在不是同一个供销商名称 精琢技术 2020/02/17 end
|
|
//不可取消多年保
|
public Boolean CanNotCancelledGurantee {get;set;}
|
//阿西赛多
|
public Boolean Is_DangerousChemicals {get;set;}
|
|
// PriceStatusUpdate() 用の項目、TODO 初期値の設定
|
public QELinelatestInfo latestInfo { get; set; }
|
|
public boolean changed_name { get; set; }
|
public boolean changed_sfda { get; set; }
|
public boolean changed_list { get; set; }
|
public boolean changed_cost { get; set; }
|
public boolean haveno_Register { get; set; }
|
public boolean wrong_Register { get; set; }
|
|
//SFDC停止预警 lt 20211009 start
|
public String Estimated_ConsumptionDueDate { get; set; }
|
//SFDC停止预警 lt 20211009 end
|
|
// 多年保修 start
|
//计提金额
|
public Decimal GuranteePrice { get; set; }
|
public Decimal ProductGuranteePrice { get; set; }
|
// 维修合同报价
|
public decimal Maintenance_Price_Year {get; set;}
|
// 多年保修 end
|
|
// TODO ほんとうはいらない、使うところのロジックを修正しなければいけない、削除するようにしたいです。
|
public QELine(Integer i) {
|
pageObject = New QuoteLineItem();
|
latestInfo = New QELinelatestInfo();
|
this.lineNo = i;
|
}
|
// tmp 直接使う場合のパターン
|
public QELine(QELine tmp, Integer i) {
|
pageObject = tmp.pageObject;
|
this.lineNo = i;
|
this.Asset_Model = tmp.Asset_Model;
|
this.Sales_Possibility = tmp.Sales_Possibility;
|
this.latestInfo = tmp.latestInfo;
|
this.Cost_Subtotal_c = tmp.Cost_Subtotal_c;
|
this.Cost_c = tmp.Cost_c;
|
this.ListPrice_Page = tmp.ListPrice_Page;
|
this.StorageStatus = tmp.StorageStatus;
|
// 多年保修 start
|
// 计提金额
|
this.GuranteePrice = tmp.GuranteePrice;
|
this.ProductGuranteePrice = tmp.ProductGuranteePrice;
|
//维修合同报价
|
this.Maintenance_Price_Year = tmp.Maintenance_Price_Year;
|
// 多年保修 计提金额 end
|
|
this.changed_name = tmp.changed_name;
|
this.changed_sfda = tmp.changed_sfda;
|
this.changed_list = tmp.changed_list;
|
this.changed_cost = tmp.changed_cost;
|
this.haveno_Register = false;
|
this.wrong_Register = false;
|
//不可取消多年保
|
this.CanNotCancelledGurantee = tmp.CanNotCancelledGurantee;
|
//供应商名称
|
this.VenderName = tmp.VenderName;
|
|
//SFDC停止预警 lt 20211009 start
|
this.Estimated_ConsumptionDueDate = tmp.Estimated_ConsumptionDueDate;
|
//SFDC停止预警 lt 20211009 end
|
|
}
|
public QELine(OpportunityLineItem oli, Integer i) {
|
pageObject = New QuoteLineItem();
|
pageObject.Quantity__c = oli.Quantity;
|
|
this.lineNo = i;
|
this.Asset_Model = oli.Asset_Model_No__c;
|
this.Sales_Possibility = oli.PricebookEntry.Product2.Sales_Possibility__c;
|
this.StorageStatus = oli.PricebookEntry.Product2.StorageStatus__c;
|
//********************Insert [OLY_OCM-228] [20160706] [赵德芳] Start********************//
|
if (oli.PricebookEntry.Product2.Packing_list_manual__c != null) {
|
this.Specifications = integer.valueof(oli.PricebookEntry.Product2.Packing_list_manual__c + '');
|
}
|
//********************Insert [OLY_OCM-228] [20160706] [赵德芳] End**********************//
|
PageObject.Id__c = oli.PricebookEntry.Product2Id;
|
PageObject.UnitPrice_Page__c = oli.UnitPrice__c;
|
//CHAN-B4YAB8 2018/9/28 小计经销商单价和小计
|
PageObject.AgencySubtotal__c = oli.AgencySubtotal__c;
|
PageObject.AgencyUnitPrice__c = oli.AgencyUnitPrice__c;
|
// CHAN-B4YAB8 2018/9/28 经销商单价和小计
|
|
//CHAN-BKU3XH 检查是否存在不是同一个供销商名称 精琢技术 2020/02/17 Start
|
this.VenderName = oli.PricebookEntry.Product2.VenderName__c;
|
|
//SFDC停止预警 lt 20211009 ①不能定义date变量 因为前台返回的是String日期 ②将util里的方法转为日期格式 start
|
if(oli.PricebookEntry.Product2.Estimated_ConsumptionDueDate__c != null){
|
this.Estimated_ConsumptionDueDate = NFMUtil.formatDate2StrSpo(oli.PricebookEntry.Product2.Estimated_ConsumptionDueDate__c).replaceAll('-','/');
|
}else{
|
this.Estimated_ConsumptionDueDate = '';
|
}
|
//SFDC停止预警 lt 20211009 end
|
|
if(VenderName==null||VenderName==''){
|
this.VenderName =' 无 ';
|
}else{
|
this.VenderName = oli.PricebookEntry.Product2.VenderName__c;
|
}
|
//CHAN-BKU3XH 检查是否存在不是同一个供销商名称 精琢技术 2020/02/17 end
|
//不可取消多年保
|
this.CanNotCancelledGurantee = oli.PricebookEntry.Product2.CanNotCancelledGurantee__c;
|
//阿西赛多
|
this.Is_DangerousChemicals = oli.PricebookEntry.Product2.Is_DangerousChemicals__c;
|
// 多年保修 start
|
PageObject.multiYearWarranty__c = oli.multiYearWarranty__c;
|
PageObject.GuaranteePeriod__c = oli.GuaranteePeriod__c;
|
PageObject.ServicePrice__c = oli.ServicePrice__c;
|
PageObject.If_Cancel_Guarantee__c = oli.If_Cancel_Guarantee__c;
|
PageObject.warrantyType__c = oli.warrantyType__c;
|
|
PageObject.NoDiscountTotal__c = oli.NoDiscountTotal__c;
|
// 计提金额
|
this.GuranteePrice = oli.GuranteePrice__c;
|
// 维修合同报价
|
this.Maintenance_Price_Year = oli.Maintenance_Price_Year__c;
|
PageObject.provistonPeriod__c = oli.provistonPeriod__c;
|
|
PageObject.ProductEntend_gurantee_period_all__c = oli.PricebookEntry.Product2.Entend_gurantee_period_all__c;
|
PageObject.GuranteeType__c = oli.PricebookEntry.Product2.GuranteeType__c;
|
|
|
// 多年保修 end
|
PageObject.SFDA_Status__c = oli.PricebookEntry.Product2.SFDA_Status__c;
|
//不可取消多年保
|
// PageObject.CanNotCancelledGurantee__c = oli.PricebookEntry.Product2.CanNotCancelledGurantee__c;
|
|
|
PageObject.Name__c = oli.PricebookEntry.Product2.Name;
|
|
Decimal cost;
|
if (oli.Opportunity.Trade__c == '内貿') {
|
this.ListPrice_Page = oli.PricebookEntry.Product2.Intra_Trade_List_RMB__c;
|
cost = oli.PricebookEntry.Product2.Intra_Trade_Cost_RMB__c;
|
this.ProductGuranteePrice = oli.PricebookEntry.Product2.Intra_Trade_Gurantee_RMB__c;
|
PageObject.productServicePrice__c = oli.PricebookEntry.Product2.Intra_Trade_Service_RMB__c;
|
} else if (oli.Opportunity.Trade__c == '外貿') {
|
this.ListPrice_Page = oli.PricebookEntry.Product2.Foreign_Trade_List_US__c;
|
cost = oli.PricebookEntry.Product2.Foreign_Trade_Cost_US__c;
|
this.ProductGuranteePrice = oli.PricebookEntry.Product2.Intra_Trade_Foreign_RMB__c;
|
PageObject.productServicePrice__c = oli.PricebookEntry.Product2.NoDiscount_Foreign__c;
|
}
|
if (cost > 0 && oli.Quantity > 0) {
|
this.Cost_Subtotal_c = cost * oli.Quantity;
|
}
|
this.Cost_c = cost;
|
if (oli.UnitPrice__c > 0 && oli.Quantity > 0) {
|
oli.TotalPrice__c = oli.UnitPrice__c * oli.Quantity;
|
}
|
|
PageObject.BSS_Category__c = oli.BSS_Category__c;
|
pageObject.Subtotal__c = oli.TotalPrice__c;
|
pageObject.PricebookEntryId = oli.PricebookEntryId;
|
latestInfo = New QELinelatestInfo();
|
latestInfo.ProductCode = oli.ProductCode__c;
|
latestInfo.ProductName = oli.PricebookEntry.Product2.Name;
|
latestInfo.SFDA_Status = oli.PricebookEntry.Product2.SFDA_Status__c;
|
latestInfo.Sales_Possibility = oli.PricebookEntry.Product2.Sales_Possibility__c;
|
// 多年保修 start
|
//外贸多年保 取产品主数据的外贸金额 以及 报价 精琢技术 wql 2021/01/04 start
|
latestInfo.ProductEntend_gurantee_period_all = oli.PricebookEntry.Product2.Entend_gurantee_period_all__c;
|
if (oli.Opportunity.Trade__c == '内貿') {
|
latestInfo.Intra_Trade_Gurantee = oli.PricebookEntry.Product2.Intra_Trade_Gurantee_RMB__c;
|
latestInfo.Intra_Trade_Service = oli.PricebookEntry.Product2.Intra_Trade_Service_RMB__c;
|
|
// 维修合同报价
|
latestInfo.Maintenance_Price_Year = oli.PricebookEntry.Product2.Maintenance_Price_Year__c;
|
} else if (oli.Opportunity.Trade__c == '外貿') {
|
latestInfo.Intra_Trade_Gurantee = oli.PricebookEntry.Product2.Intra_Trade_Foreign_RMB__c;
|
latestInfo.Intra_Trade_Service = oli.PricebookEntry.Product2.NoDiscount_Foreign__c;
|
|
|
// 维修合同报价
|
latestInfo.Maintenance_Price_Year = oli.PricebookEntry.Product2.Repair_Contract_USD__c;
|
}
|
//外贸多年保 取产品主数据的外贸金额 以及 报价 精琢技术 wql 2021/01/04 end
|
latestInfo.GuranteeType = oli.PricebookEntry.Product2.GuranteeType__c;
|
// 多年保修 end
|
if (oli.PricebookEntry.Product2.Packing_list_manual__c != null) {
|
latestInfo.Specifications = integer.valueof(oli.PricebookEntry.Product2.Packing_list_manual__c + '');
|
}
|
latestInfo.ListPrice = oli.Product_ListPrice__c;
|
latestInfo.Cost = oli.Product_Cost__c;
|
//不可取消多年保
|
latestInfo.CanNotCancelledGurantee = oli.PricebookEntry.Product2.CanNotCancelledGurantee__c;
|
this.changed_name = false;
|
this.changed_sfda = false;
|
this.changed_list = false;
|
this.changed_cost = false;
|
this.haveno_Register = false;
|
this.wrong_Register = false;
|
}
|
public QELine(QuoteLineItem qli, Integer i, String copyQuoId) {
|
//ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, ' qli Id__c=' + qli.PricebookEntry.Product2Id));
|
pageObject = qli.clone();
|
pageObject.Id__c = qli.PricebookEntry.Product2Id;
|
pageObject.Quantity__c = qli.Quantity;
|
//ET促销标记 start
|
// pageObject.ETPromotionalFlag__c = qli.ETPromotionalFlag__c;
|
//ET促销标记 end
|
if (copyQuoId != null) {
|
pageObject.SFDA_Status__c = qli.PricebookEntry.Product2.SFDA_Status__c;
|
pageObject.Name__c = qli.PricebookEntry.Product2.Name;
|
//PageObject.PricebookEntry.Product2.Packing_list_manual__c = qli.PricebookEntry.Product2.Packing_list_manual__c;
|
}
|
this.lineNo = i;
|
this.Asset_Model = qli.Asset_Model_No__c;
|
if (qli.Cost__c > 0 && qli.Quantity > 0) {
|
this.Cost_Subtotal_c = qli.Cost__c * qli.Quantity;
|
}
|
//CHAN-BKU3XH 检查是否存在不是同一个供销商名称 精琢技术 2020/02/17 Start
|
this.VenderName = qli.PricebookEntry.Product2.VenderName__c;
|
|
//SFDC停止预警 lt 20211009 ①不能定义date变量 因为前台返回的是String日期 ②将util里的方法转为日期格式 start
|
if(qli.PricebookEntry.Product2.Estimated_ConsumptionDueDate__c != null){
|
this.Estimated_ConsumptionDueDate = NFMUtil.formatDate2StrSpo(qli.PricebookEntry.Product2.Estimated_ConsumptionDueDate__c).replaceAll('-','/');
|
}else{
|
this.Estimated_ConsumptionDueDate = '';
|
}
|
//SFDC停止预警 lt 20211009 end
|
|
if(VenderName==null||VenderName==''){
|
this.VenderName =' 无 ';
|
}else{
|
//this.VenderName = qli.PricebookEntry.Product2.VenderName__c;
|
}
|
//CHAN-BKU3XH 检查是否存在不是同一个供销商名称 精琢技术 2020/02/17 Start
|
//不可取消多年保
|
this.CanNotCancelledGurantee = qli.PricebookEntry.Product2.CanNotCancelledGurantee__c;
|
//阿西赛多
|
this.Is_DangerousChemicals = qli.PricebookEntry.Product2.Is_DangerousChemicals__c;
|
//************************************liukun*****************************************************//
|
this.StorageStatus = qli.PricebookEntry.Product2.StorageStatus__c;
|
|
this.ListPrice_Page = qli.ListPrice__c;
|
this.Cost_c = qli.Cost__c;
|
pageObject.Subtotal__c = qli.TotalPrice__c;
|
pageObject.UnitPrice_Page__c = qli.UnitPrice__c;
|
latestInfo = New QELinelatestInfo();
|
latestInfo.ProductCode = qli.ProductCode__c;
|
latestInfo.ProductName = qli.PricebookEntry.Product2.Name;
|
|
latestInfo.SFDA_Status = qli.PricebookEntry.Product2.SFDA_Status__c;
|
// 多年保修 start
|
|
latestInfo.ProductEntend_gurantee_period_all = qli.PricebookEntry.Product2.Entend_gurantee_period_all__c;
|
//外贸多年保 取产品主数据上的金额及报价 精琢技术 wql start
|
if(qli.Quote.Opportunity.Trade__c == '内貿'){
|
latestInfo.Intra_Trade_Gurantee = qli.PricebookEntry.Product2.Intra_Trade_Gurantee_RMB__c;
|
latestInfo.Intra_Trade_Service = qli.PricebookEntry.Product2.Intra_Trade_Service_RMB__c;
|
//维修合同报价
|
//HWAG-BLDE4M decide后成本为空 精琢技术 20200227 start
|
if(qli.PricebookEntry.Product2.Maintenance_Price_Year__c == null){
|
latestInfo.Maintenance_Price_Year = 0;
|
}else{
|
latestInfo.Maintenance_Price_Year = qli.PricebookEntry.Product2.Maintenance_Price_Year__c;
|
}
|
//HWAG-BLDE4M decide后成本为空 精琢技术 20200227 end
|
}else if(qli.Quote.Opportunity.Trade__c == '外貿'){
|
latestInfo.Intra_Trade_Gurantee = qli.PricebookEntry.Product2.Intra_Trade_Foreign_RMB__c;
|
latestInfo.Intra_Trade_Service = qli.PricebookEntry.Product2.NoDiscount_Foreign__c;
|
//维修合同报价
|
//HWAG-BLDE4M decide后成本为空 精琢技术 20200227 start
|
if(qli.PricebookEntry.Product2.Maintenance_Price_Year__c == null){
|
latestInfo.Maintenance_Price_Year = 0;
|
}else{
|
latestInfo.Maintenance_Price_Year = qli.PricebookEntry.Product2.Repair_Contract_USD__c;
|
}
|
//HWAG-BLDE4M decide后成本为空 精琢技术 20200227 end
|
}
|
//外贸多年保 取产品主数据上的金额及报价 精琢技术 wql end
|
|
latestInfo.GuranteeType = qli.PricebookEntry.Product2.GuranteeType__c;
|
//不可取消多年保
|
latestInfo.CanNotCancelledGurantee = qli.PricebookEntry.Product2.CanNotCancelledGurantee__c;
|
// 计提金额
|
this.Maintenance_Price_Year = qli.Maintenance_Price_Year__c;
|
this.GuranteePrice = qli.GuranteePrice__c;
|
this.ProductGuranteePrice = qli.ProductGuranteePrice__c;
|
// 多年保修 end
|
latestInfo.Sales_Possibility = qli.PricebookEntry.Product2.Sales_Possibility__c;
|
if (qli.PricebookEntry.Product2.Packing_list_manual__c != null) {
|
latestInfo.Specifications = integer.valueof(qli.PricebookEntry.Product2.Packing_list_manual__c + '');
|
}
|
latestInfo.ListPrice = qli.Product_ListPrice__c;
|
latestInfo.Cost = qli.Product_Cost__c;
|
//********************Insert [OLY_OCM-228] [20160706] [赵德芳] Start********************//
|
if (qli.PricebookEntry.Product2.Packing_list_manual__c != null) {
|
this.Specifications = integer.valueof(qli.PricebookEntry.Product2.Packing_list_manual__c + '');
|
}
|
//********************Insert [OLY_OCM-228] [20160706] [赵德芳] End**********************//
|
this.changed_name = false;
|
this.changed_sfda = false;
|
this.changed_list = false;
|
this.changed_cost = false;
|
this.haveno_Register = false;
|
this.wrong_Register = false;
|
}
|
|
// TODO Subtotal__c、以前のロジックを確認
|
/*public QELine(Integer i, String PricebookEntryId,
|
String Asset_Model, String StorageStatus,
|
String ProductCode, String Id_c,
|
String SFDA_Status_c, String Sales_Possibility_c,
|
String Name_c, String BSS_Category_c,
|
Integer Quantity, Decimal ListPrice_c,
|
Decimal UnitPrice_c, Decimal Cost_c,
|
Decimal Packing_list_manual
|
) {
|
pageObject = New QuoteLineItem();
|
pageObject.Quantity__c = Quantity;
|
this.lineNo = i;
|
this.Asset_Model = Asset_Model;
|
this.Sales_Possibility = Sales_Possibility_c;
|
|
this.StorageStatus = StorageStatus;
|
|
pageObject.Id__c = Id_c;
|
pageObject.SFDA_Status__c = SFDA_Status_c;
|
pageObject.Name__c = Name_c;
|
pageObject.BSS_Category__c = BSS_Category_c;
|
this.ListPrice_Page = ListPrice_c;
|
pageObject.UnitPrice_Page__c = UnitPrice_c;
|
pageObject.Subtotal__c = UnitPrice_c * Quantity;
|
//PageObject.PricebookEntry.Product2.Packing_list_manual__c = Packing_list_manual;
|
this.Cost_c = Cost_c;
|
// TODO katsu なぜここ > 0 の判断はいらない?
|
this.Cost_Subtotal_c = Cost_c * Quantity;
|
pageObject.PricebookEntryId = PricebookEntryId;
|
latestInfo = New QELinelatestInfo();
|
latestInfo.ProductCode = ProductCode;
|
latestInfo.ProductName = Name_c;
|
latestInfo.SFDA_Status = SFDA_Status_c;
|
latestInfo.Sales_Possibility = Sales_Possibility_c;
|
latestInfo.ListPrice = this.ListPrice_Page;
|
latestInfo.Cost = pageObject.Cost__c;
|
if (Packing_list_manual != null) {
|
latestInfo.Specifications = integer.valueof('' + Packing_list_manual);
|
}
|
this.changed_name = false;
|
this.changed_sfda = false;
|
this.changed_list = false;
|
this.changed_cost = false;
|
this.haveno_Register = false;
|
this.wrong_Register = false;
|
}
|
*/
|
|
//CHAN-BKU3XH 检查是否存在不是同一个供销商名称 精琢技术 2020/02/17 Start 增加字段
|
// 多年保修 start
|
public QELine(Integer i,Boolean Is_DangerousChemicals,Boolean CanNotCancelledGurantee,String VenderName,
|
Date Estimated_ConsumptionDueDate, //20211009 lt add
|
String PricebookEntryId,
|
//CHAN-BKU3XH 检查是否存在不是同一个供销商名称 精琢技术 2020/02/17 end 增加字段
|
String Asset_Model, String StorageStatus,
|
String ProductCode, String Id_c,
|
String SFDA_Status_c, String Sales_Possibility_c,
|
String Name_c, String BSS_Category_c,
|
Integer Quantity, Decimal ListPrice_c,
|
Decimal UnitPrice_c, Decimal Cost_c,
|
Decimal Packing_list_manual
|
, Decimal Entend_gurantee_period_all
|
, decimal ProductGuranteePrice
|
, string GuranteeType
|
, Decimal productServicePrice
|
, Decimal productMaintenance_Price_Year
|
) {
|
pageObject = New QuoteLineItem();
|
pageObject.Quantity__c = Quantity;
|
this.lineNo = i;
|
this.Asset_Model = Asset_Model;
|
this.Sales_Possibility = Sales_Possibility_c;
|
|
//SFDC停止预警 lt 20211009 ①不能定义date变量 因为前台返回的是String日期 ②将util里的方法转为日期格式 start
|
if(Estimated_ConsumptionDueDate != null){
|
this.Estimated_ConsumptionDueDate = NFMUtil.formatDate2StrSpo(Estimated_ConsumptionDueDate).replaceAll('-','/');
|
}else{
|
this.Estimated_ConsumptionDueDate = '';
|
}
|
//SFDC停止预警 lt 20211009 end
|
|
this.StorageStatus = StorageStatus;
|
|
pageObject.Id__c = Id_c;
|
pageObject.SFDA_Status__c = SFDA_Status_c;
|
pageObject.Name__c = Name_c;
|
pageObject.BSS_Category__c = BSS_Category_c;
|
this.ListPrice_Page = ListPrice_c;
|
pageObject.UnitPrice_Page__c = UnitPrice_c;
|
pageObject.Subtotal__c = UnitPrice_c * Quantity;
|
|
//CHAN-BKU3XH 检查是否存在不是同一个供销商名称 精琢技术 2020/02/17 Start
|
system.debug('VenderName=========='+VenderName);
|
if(VenderName==null||VenderName==''){
|
this.VenderName =' 无 ';
|
}else{
|
this.VenderName = VenderName;
|
}
|
//不可取消多年保
|
this.CanNotCancelledGurantee = CanNotCancelledGurantee;
|
//阿西赛多
|
this.Is_DangerousChemicals = Is_DangerousChemicals;
|
//CHAN-BKU3XH 检查是否存在不是同一个供销商名称 精琢技术 2020/02/17 end
|
// 多年保修 start
|
pageObject.ProductEntend_gurantee_period_all__c = Entend_gurantee_period_all;
|
pageObject.productServicePrice__c = productServicePrice;
|
pageObject.GuranteeType__c = GuranteeType;
|
// 计提金额
|
this.ProductGuranteePrice = ProductGuranteePrice;
|
// 维修合同报价
|
this.Maintenance_Price_Year = productMaintenance_Price_Year;
|
// 多年保修 end
|
//PageObject.PricebookEntry.Product2.Packing_list_manual__c = Packing_list_manual;
|
this.Cost_c = Cost_c;
|
// TODO katsu なぜここ > 0 の判断はいらない?
|
this.Cost_Subtotal_c = Cost_c * Quantity;
|
pageObject.PricebookEntryId = PricebookEntryId;
|
latestInfo = New QELinelatestInfo();
|
latestInfo.ProductCode = ProductCode;
|
latestInfo.ProductName = Name_c;
|
|
latestInfo.SFDA_Status = SFDA_Status_c;
|
latestInfo.Sales_Possibility = Sales_Possibility_c;
|
latestInfo.ListPrice = this.ListPrice_Page;
|
latestInfo.Cost = pageObject.Cost__c;
|
// 多年保修 start
|
latestInfo.ProductEntend_gurantee_period_all = Entend_gurantee_period_all;
|
latestInfo.Intra_Trade_Gurantee = ProductGuranteePrice;
|
latestInfo.Intra_Trade_Service = productServicePrice;
|
latestInfo.GuranteeType = GuranteeType;
|
latestInfo.Maintenance_Price_Year = productMaintenance_Price_Year;
|
//不可取消多年保
|
latestInfo.CanNotCancelledGurantee = CanNotCancelledGurantee;
|
//阿西赛多
|
latestInfo.Is_DangerousChemicals = Is_DangerousChemicals;
|
// 多年保修 end
|
|
|
if (Packing_list_manual != null) {
|
latestInfo.Specifications = integer.valueof('' + Packing_list_manual);
|
}
|
this.changed_name = false;
|
this.changed_sfda = false;
|
this.changed_list = false;
|
this.changed_cost = false;
|
this.haveno_Register = false;
|
this.wrong_Register = false;
|
}
|
// 多年保修 end
|
}
|
|
@TestVisible private void testI() {
|
integer i = 0;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
}
|
}
|