Untitled
unknown
plain_text
4 years ago
40 kB
10
Indexable
/**
* @description :
* @author : ChangeMeIn@UserSettingsUnder.SFDoc
* @group :
* @last modified on : 08-18-2021
* @last modified by : ChangeMeIn@UserSettingsUnder.SFDoc
**/
public without sharing class OpportunityQueries {
public static OpportunityQueries getInstance() {
return (OpportunityQueries) ServiceLocator.getInstance(OpportunityQueries.class);
}
public Opportunity getById(String OpportunityId) {
List<Opportunity> opportunityList = new List<Opportunity>();
if(Opportunity.SObjectType.getDescribe().isAccessible()){
opportunityList = [
SELECT Id, Name, Pricebook2Id, RecordTypeId, Type, AccountId, Account.Name, StageName, CloseDate, CompanyDivision__c, CustomerInteraction__c,
ContractId, Contract.Opportunity__r.ContractAccount__c, Contract.Opportunity__r.ContractAccount__r.Account__c, Contract.Opportunity__r.ContractAccount__r.BillingProfile__c,
Contract.Opportunity__r.ContractAccount__r.Site__c, Contract.Opportunity__r.ContractAccount__r.Type__c,CustomerInteraction__r.Contact__c,RequestType__c,ContractSignedDate__c, Phase__c, BillingProfile__c, Contact__c, ContractAccount__c,
DifferentMailingAddressFlag__c, DifferentCommunicationAddressFlag__c, DifferentBillingAddressFlag__c, Channel__c,FinalClientContract__c, Duration__c, AcceptanceDate__c,
RecordType.DeveloperName, Asset__c, Asset__r.AccountId, MailingAddress__c,Segment__c, ViewState__c,
(
SELECT Id, ServicePointCode__c, RecordType.DeveloperName, Product__c,Account__c,
Distributor__c, BillingProfile__c, OldBillingProfile__c, ContractAccount__c, Trader__c, PointAddressNormalized__c, PointStreetType__c,
PointStreetName__c, PointStreetNumber__c, PointStreetNumberExtn__c, PointApartment__c, PointBuilding__c, PointCity__c,
PointCountry__c, PointFloor__c, Market__c, NonDisconnectable__c, PointLocality__c,
PointPostalCode__c, PointProvince__c, Voltage__c, VoltageLevel__c, PressureLevel__c,
Pressure__c, PowerPhase__c, ConversionFactor__c, ContractualPower__c, ServiceSite__c, SiteAddressKey__c,
SiteAddressNormalized__c, SiteApartment__c, SiteBuilding__c,SiteCity__c, SiteCountry__c, SiteFloor__c,
SiteStreetType__c, SiteLocality__c, SitePostalCode__c, SiteProvince__c, SiteStreetName__c, SiteStreetNumber__c,
SiteStreetNumberExtn__c, AvailablePower__c, EstimatedConsumption__c, ServicePoint__r.CurrentSupply__c,
ServicePoint__r.CurrentSupply__r.CompanyDivision__c, RethinkingStatus__c, PreviousProduct__c, PreviousProduct__r.ClassAdditionalOption__c,
ContractAccount__r.BillingProfileActivationOnGoing__c,ContractAccount__r.BillingProfile__c,OldContractAccount__c, Process__c,
Product__r.ClassAdditionalOption__c, ContractAccount__r.Account__c, ContractAccount__r.AssetCounter__c, ContractAccount__r.Balance__c,
ContractAccount__r.BillingFrequency__c, ContractAccount__r.ChannelType__c, ContractAccount__r.Commodity__c, ContractAccount__r.CompanyDivision__c,
ContractAccount__r.DetailedBillModifiedDate__c, ContractAccount__r.DetailedBill__c, ContractAccount__r.DirectDebitActivationDate__c,
ContractAccount__r.DirectDebitAuth__c, ContractAccount__r.DirectDebitEndDate__c, ContractAccount__r.EndDate__c, ContractAccount__r.NotExpiredBalance__c,
ContractAccount__r.NotLoadableBalance__c, ContractAccount__r.PEC__c, ContractAccount__r.PaymentTerms__c, ContractAccount__r.PostalDelivery__c,
ContractAccount__r.RecipientCode__c, ContractAccount__r.ReducePostalDelivery__c, ContractAccount__r.Segment__c, ContractAccount__r.SendEmailOn__c,
ContractAccount__r.SendSMSOn__c, ContractAccount__r.Site__c, ContractAccount__r.StartDate__c, ContractAccount__r.Status__c, ContractAccount__r.Type__c,
ContractAccount__r.WebBill__c, ContractAccount__r.ClosingType__c, ContractAccount__r.DividedPaymentRequest__c, ContractAccount__r.InvoiceExpirationDate__c,
ContractAccount__r.InvoicePaymentDate__c, ContractAccount__r.ServicePointCode__c,
ContractAccount__r.LastRequestedDomiciliationStatus__c, ContractAccount__r.SitePicklist__c, ContractAccount__r.RecipientPEC__c,
ContractAccount__r.AdministrativeContact__c, ContractAccount__r.DeliveryChannel__c, ContractAccount__r.Email__c
FROM OpportunityServiceItems__r
),
(
SELECT Id, Product2Id, ProductCode,
Product2.Id, Product2.Name, Product2.RecordType.DeveloperName, Product2.RecordType.Name, Product2.Description,
Product2.Image__c, Product2.Family
FROM OpportunityLineItems
)
FROM Opportunity
WHERE Id = :OpportunityId
];
}
return opportunityList.get(0);
}
/**
* @author INSA BADJI
* @description Select an Opportunity by Id
*
* @param opportunityId Id of Opportunity
*/
public Opportunity getOpportunityById(String opportunityId) {
Opportunity opportunityReturn = new Opportunity();
if(Opportunity.SObjectType.getDescribe().isAccessible()){
opportunityReturn = [
SELECT Id, Name, StageName,ContractSignedDate__c, OpenDate__c, Segment__c, Pricebook2Id, CreatedById, OwnerId, ContractAccount__c, RecordType.DeveloperName,
CompanyDivision__c,CompanyDivision__r.Name,CustomerInteraction__c, CreditCheckFullStatus__c, Commodity__c, FixingType__c, GreenPower__c,
AccountId,ContractId, ContactDigitalCompletion__c, CompletionMode__c, Email__c, ViewState__c, RecordTypeId, Channel__c, Contact__r.Email, Process__c,
ConfirmationCall__c, BillingProfile__c, Contact__c, Phase__c, DifferentMailingAddressFlag__c, DifferentCommunicationAddressFlag__c,
DifferentBillingAddressFlag__c, OpprtunityType__c, Duration__c, ConsumptionType__c, PricingType__c, SupplyStartDate__c, SupplyEndDate__c,
TotalVolumesPeak__c, TotalVolumesOffPeak__c, TotalVolumesF0__c, TotalVolumesF1__c, TotalVolumesF2__c, TotalVolumesF3__c,RequestType__c, FinalClientContract__c,
TotalMargin__c, PaymentTerms__c, Warranty__c, WarrantyValue__c, WarrantyDepositValue__c, StartDateValidity__c, EndDateValidity__c,
StartDateAccordoQuadro__c, EndDateAccordoQuadro__c, Account.Segment__c, OpportunityNumber__c, Rate__c, Address__c, SalesCharges__c, SalesChargesType__c,
PrescreeningStatus__c, ScipafiOutcome__c, CancellationReason__c, CloseDate, ContactDigitalCompletion__r.Name ,SubChannel__c,AddressNormalized__c,Apartment__c,
At__c,Building__c,CadastralCode__c,City__c,Country__c,Floor__c,IstatCode__c,Locality__c,PostalCode__c,Province__c,Staircase__c,StreetName__c,StreetNumber__c,
StreetNumberExtn__c,StreetType__c, CustomerInteraction__r.Contact__c , CustomerInteraction__r.Contact__r.IndividualId, CustomerInteraction__r.Contact__r.Email, Account.Vatnumber__c,OpportunityRenewed__c,RenewalDate__c,Renewed__c,
SignatureDate__c, BirthDate__c, LastName__c, FirstName__c, Gender__c, BirthCity__c, BirthProvince__c, ForeignFiscalCode__c, VatNumber__c, FiscalCode__c, ResidentialCity__c,
ResidentialIstatCode__c, ResidentialProvince__c, ResidentialPostalCode__c, ResidentialStreetNumber__c, ResidentialStreetName__c, DocumentType__c, DocumentReleasedDate__c,
DocumentNumber__c, DocumentExpirationDate__c, DocumentReleasedBy__c, PreferredContact__c, MobilePhone__c
FROM Opportunity
WHERE Id = :opportunityId
];
}
return opportunityReturn;
}
public Opportunity getOpportunityByIdForUpdate(String opportunityId) {
Opportunity opportunityReturn = new Opportunity();
if(Opportunity.SObjectType.getDescribe().isAccessible()){
opportunityReturn = [
SELECT Id, Name, StageName,ContractSignedDate__c, Segment__c, Pricebook2Id, CreatedById, OwnerId, ContractAccount__c, RecordType.DeveloperName,
CompanyDivision__c,CompanyDivision__r.Name,CustomerInteraction__c, CreditCheckFullStatus__c, Commodity__c, FixingType__c,
AccountId,ContractId, ContactDigitalCompletion__c, CompletionMode__c, Email__c, ViewState__c, RecordTypeId, Channel__c,
ConfirmationCall__c, BillingProfile__c, Contact__c, Phase__c, DifferentMailingAddressFlag__c, DifferentCommunicationAddressFlag__c,
DifferentBillingAddressFlag__c, OpprtunityType__c, Duration__c, ConsumptionType__c, PricingType__c, SupplyStartDate__c, SupplyEndDate__c,
TotalVolumesPeak__c, TotalVolumesOffPeak__c, TotalVolumesF0__c, TotalVolumesF1__c, TotalVolumesF2__c, TotalVolumesF3__c,RequestType__c, FinalClientContract__c,
TotalMargin__c, PaymentTerms__c, Warranty__c, WarrantyValue__c, WarrantyDepositValue__c, StartDateValidity__c, EndDateValidity__c,
StartDateAccordoQuadro__c, EndDateAccordoQuadro__c, Account.Segment__c, OpportunityNumber__c, Rate__c, Address__c, SalesCharges__c, SalesChargesType__c,
PrescreeningStatus__c, ScipafiOutcome__c, CancellationReason__c, CloseDate, ContactDigitalCompletion__r.Name ,SubChannel__c,AddressNormalized__c,Apartment__c,
At__c,Building__c,CadastralCode__c,City__c,Country__c,Floor__c,IstatCode__c,Locality__c,PostalCode__c,Province__c,Staircase__c,StreetName__c,StreetNumber__c,
StreetNumberExtn__c,StreetType__c, CustomerInteraction__r.Contact__c , CustomerInteraction__r.Contact__r.IndividualId, Account.Vatnumber__c,OpportunityRenewed__c,RenewalDate__c,Renewed__c
FROM Opportunity
WHERE Id = :opportunityId
FOR UPDATE
];
}
return opportunityReturn;
}
public List<Opportunity> listOpportunityByIds(Set<Id> oppIds) {
List<Opportunity> opportunityList = new List<Opportunity>();
if(Opportunity.SObjectType.getDescribe().isAccessible()){
opportunityList = [SELECT Id, Channel__c, SubChannel__c, ConfirmationCall__c, PdcCodeAutoNumber__c, SiebelRowId__c, RecordType.DeveloperName, AccountId, TotalMargin__c, StageName, Account.Segment__c, OpportunityNumber__c, Account.OwnerId, OwnerId
FROM Opportunity WHERE Id IN:oppIds];
}
return opportunityList;
}
/**
* @author Ersi Dule (ersi.dule@webresults.it)
* @date 14/07/2020
* @description getOpportunityWithOpportunityServiceItems - queries a set of opportunities and their related osi
* @param1 opportunityIds - Set of opportunity ids
* @return Map<Id, Opportunity>
*/
public Map<Id, Opportunity> getOpportunitiesWithOpportunityServiceItems(Set<Id> opportunityIds){
Map<Id, Opportunity> opportunitiesById = new Map<Id, Opportunity> ([
SELECT Id, Name, AccountId, Account.Name, Channel__c, ContactId, StageName, CloseDate, CompanyDivision__c, ContractId, CustomerInteraction__c,
CustomerInteraction__r.Contact__c,RequestType__c,ContractSignedDate__c, RecordTypeId, RecordType.DeveloperName,Brand__c,
ContactDigitalCompletion__c, Email__c, SubChannel__c, ChannelDetail__c, Agency__c, MatrixChannelAgency__c, SubAgency__c, Structure__c, OmniChannelOperator__c,
ContactDigitalCompletionDraft__c,CompletionMode__c, ElectricSuppliesNumber__c, GasSuppliesNumber__c, Account.Segment__c, SignatureDate__c,LastModifiedDate,
(
SELECT Id, Status__c, Asset__c, Asset__r.AccountId, ServicePointCode__c, RecordType.DeveloperName, Product__c,Account__c,Account__r.FiscalCode__c,Account__r.VATNumber__c,Account__r.ParentId,Account__r.Parent.Segment__c,
Distributor__c, BillingProfile__c, ContractAccount__c, Trader__c, PointAddressNormalized__c, PointStreetType__c,
PointStreetName__c, PointStreetNumber__c, PointStreetNumberExtn__c, PointApartment__c, PointBuilding__c, PointCity__c,
PointCountry__c, PointFloor__c, Market__c, NonDisconnectable__c, PointLocality__c,
PointPostalCode__c, PointProvince__c, Voltage__c, VoltageLevel__c, PressureLevel__c,CodSubServ__c,
Pressure__c, PowerPhase__c, ConversionFactor__c, ContractualPower__c, DeactivationDate__c,
AvailablePower__c, EstimatedConsumption__c, Process__c, ServicePoint__c, OrderCreated__c, DistributorVatNumber__c,
REMICode__c, ShiftDistance__c, QuoteType__c, DistributorAdministrativeCharges__c, AdministrativeSalesCharges__c,
OverallCharges__c, DistributorCharge__c, PastCharges__c, PowerAmount__c, VATRate__c, MailingProvince__c,
Taxable__c, VAT__c, TotalQuoteAmount__c, Stamp__c, EffectiveDate__c, HistoricalResidenceData__c, Residence__c,ParentOSI__c,ParentOSI__r.RecordType.DeveloperName,RethinkingStatus__c
FROM OpportunityServiceItems__r
)
FROM Opportunity
WHERE Id IN :opportunityIds ]);
return opportunitiesById;
}
/**
* @author Ersi Dule (ersi.dule@webresults.it)
* @date 14/07/2020
* @description getOpportunityWithOpportunityServiceItems - queries a set of opportunities and their related osi
* @param1 opportunityIds - Set of opportunity ids
* @return Map<Id, Opportunity>
*/
public Map<Id, Opportunity> getOpportunitiesWithCases(Set<Id> opportunityIds){
Map<Id, Opportunity> opportunitiesById = new Map<Id, Opportunity> ([
SELECT Id, Antichurn__c, RequestType__c, AccountId, RecordType.DeveloperName,Brand__c, SignatureDate__c,LastModifiedDate, StageName, SubChannel__c, Channel__c,AgencyCode__c,AgencyFormula__c,Account.Segment__c,
(
SELECT Id, Subject, CalculatedSupplyStartDate__c,Opportunity__r.RequestType__c,Opportunity__r.SupplyStartDate__c, AssetId, PreviousAccount__c, AccountId, ServicePoint__c, BillingProfile__c, ContractAccount__c,Account.Segment__c, DeactivationDate__c,
ContactDigitalCompletion__c, RecordType.DeveloperName, OpportunityServiceItem__r.Process__c, OpportunityServiceItem__r.Antichurn__c,OpportunityServiceItem__r.ServicePoint__r.CurrentAsset__r.Status,Brand__c,Account.AggregateBilling__c,
OpportunityServiceItem__r.RecordType.DeveloperName,OpportunityServiceItem__r.TransferredContact__c, OpportunityServiceItem__r.DistributorName__c,OpportunityServiceItem__r.InsuranceNumber__c,
OpportunityServiceItem__r.DistributorVATNumber__c, OpportunityServiceItem__r.REMICode__c, OpportunityServiceItem__c, Opportunity__c,Taxable__c,VATRate__c,OpportunityServiceItem__r.DeactivationDate__c,
OpportunityServiceItem__r.CreatedDate, OpportunityServiceItem__r.TotalQuoteAmount__c, OpportunityServiceItem__r.OldContractAccount__c,QuoteType__c,AdministrativeSalesCharges__c,DistributorAdministrativeCharges__c,Account.Payment__c,
OpportunityServiceItem__r.ContractAccount__c,OpportunityServiceItem__r.BillingInCycle__c,OpportunityServiceItem__r.Stamp__c,OpportunityServiceItem__r.Print__c, OpportunityServiceItem__r.SwitchSkipPreCheck__c, OpportunityServiceItem__r.ContractAccountChanged__c,PowerAmount__c,OpportunityServiceItem__r.QuoteStatus__c
FROM Cases__r
WHERE RecordType.DeveloperName = 'Activation_ELE' OR
RecordType.DeveloperName = 'Activation_GAS' OR
RecordType.DeveloperName = 'CEP_RT_TakeoverEle' OR
RecordType.DeveloperName = 'CEP_RT_TakeoverGas' OR
RecordType.DeveloperName = 'CEP_RT_ShiftMeter' OR
RecordType.DeveloperName = 'CEP_RT_RateChange' OR
RecordType.DeveloperName = 'CEP_RT_ActivationPredisposition' OR
RecordType.DeveloperName = 'CEP_RT_CheckMeasurementGroupEle' OR
RecordType.DeveloperName = 'CEP_RT_CheckMeasurementGroupGas' OR
RecordType.DeveloperName = 'CEP_RT_VoltageCheck' OR
RecordType.DeveloperName = 'CEP_RT_PressureCheck' OR
RecordType.DeveloperName = 'SwitchIn_GAS' OR
RecordType.DeveloperName = 'SwitchIn_ELE' OR
RecordType.DeveloperName = 'CEP_RT_ChangePhasePower' OR
RecordType.DeveloperName = 'CEP_RT_DeactivationProcess' OR
RecordType.DeveloperName = 'CEP_RT_VAS' OR
RecordType.DeveloperName = 'CEP_RT_PrestazioniSuImpianto' OR
RecordType.DeveloperName = 'ProductChange_ELE' OR
RecordType.DeveloperName = 'CEP_RT_QuoteGas' OR
RecordType.DeveloperName = 'ProductChange_GAS' OR
RecordType.DeveloperName = 'CEP_RT_DeactivationProcess' OR
RecordType.DeveloperName = 'CEP_RT_UsageChange' OR
RecordType.DeveloperName = 'Transfer_ELE' OR
RecordType.DeveloperName = 'Transfer_GAS' OR
RecordType.DeveloperName = 'CEP_RT_ContropartiCommerciali' OR
RecordType.DeveloperName = 'CEP_RT_Movimentazioni' OR
RecordType.DeveloperName = 'CEP_RT_PredisposizioneEle' OR
RecordType.DeveloperName = 'CEP_RT_TaxBreak' OR
RecordType.DeveloperName = 'CEP_RT_Prescription' OR
RecordType.DeveloperName = 'CEP_RT_SetupWithoutActivation' OR
//ntt w3
RecordType.DeveloperName = 'CP_CB_ELE' OR
RecordType.DeveloperName = 'CP_CB_GAS' OR
RecordType.DeveloperName = 'RT_SmartServices'
)
FROM Opportunity
WHERE Id IN :opportunityIds ]);
return opportunitiesById;
}
public Map<Id,List<IntegrationCase__c>> checkIntegrationCaseAssociatedToCase(Set<Id> opportunityIds){
Map<Id,List<IntegrationCase__c>> icChildeToCase = new Map<Id,List<IntegrationCase__c>>();
List<case> listCase = new List<case>();
Map<Id, Opportunity> opportunitiesById = new Map<Id, Opportunity> ([
SELECT Id, AccountId, RecordType.DeveloperName, SignatureDate__c,LastModifiedDate,
(
SELECT Id, AssetId, AccountId, ServicePoint__c, BillingProfile__c, ContractAccount__c,
ContactDigitalCompletion__c, RecordType.DeveloperName, OpportunityServiceItem__r.Process__c,
OpportunityServiceItem__r.RecordType.DeveloperName, OpportunityServiceItem__r.DistributorName__c,
OpportunityServiceItem__r.DistributorVATNumber__c, OpportunityServiceItem__r.REMICode__c, OpportunityServiceItem__c, Opportunity__c,
OpportunityServiceItem__r.CreatedDate, OpportunityServiceItem__r.TotalQuoteAmount__c
FROM Cases__r
WHERE RecordType.DeveloperName = 'Activation_ELE' OR
RecordType.DeveloperName = 'Activation_GAS' OR
RecordType.DeveloperName = 'CEP_RT_TakeoverEle' OR
RecordType.DeveloperName = 'CEP_RT_TakeoverGas' OR
RecordType.DeveloperName = 'SwitchIn_GAS' OR
RecordType.DeveloperName = 'SwitchIn_ELE' OR
RecordType.DeveloperName = 'CEP_RT_VAS' OR
RecordType.DeveloperName = 'ProductChange_ELE' OR
RecordType.DeveloperName = 'ProductChange_GAS' OR
RecordType.DeveloperName = 'CEP_RT_UsageChange' OR
RecordType.DeveloperName = 'CEP_RT_DeactivationProcess' OR
RecordType.DeveloperName = 'CEP_RT_PredisposizioneEle' OR
RecordType.DeveloperName = 'Transfer_ELE' OR
RecordType.DeveloperName = 'CEP_RT_Movimentazioni' OR
RecordType.DeveloperName = 'CEP_RT_ContropartiCommerciali' OR
RecordType.DeveloperName = 'CEP_RT_SetupWithoutActivation' OR
RecordType.DeveloperName = 'Transfer_GAS'
)
FROM Opportunity
WHERE Id IN :opportunityIds ]);
List<Id> idCases = new List<Id>();
for(Id oppId : opportunitiesById.keySet()){
Opportunity oppty = opportunitiesById.get(oppId);
listCase = oppty.Cases__r;
//caseChild.put(oppId,oppId.cases__r);
for(Case cs : listCase){
idCases.add(cs.Id);
}
}
Map<Id, Case> caseWithIntegrationCase = new Map<Id, Case>();
if(Case.SObjectType.getDescribe().isAccessible()){
caseWithIntegrationCase = new Map<Id, Case>([SELECT Id, (SELECT id,OpportunityServiceItem__r.OldContractAccount__c,OpportunityServiceItem__r.ContractAccount__c from IntegrationCases__r) FROM Case WHERE ID IN :idCases]);
}
List<IntegrationCase__c> listIC = new List<IntegrationCase__c>();
for(Id caseId : caseWithIntegrationCase.keySet()){
Case cs = caseWithIntegrationCase.get(caseId);
listIC = cs.IntegrationCases__r;
icChildeToCase.put(caseId,listIC);
}
/*
if (!icChildeToCase.isEmpty()){
return true;
}else{
return false;
}*/
return icChildeToCase;
}
public List<Opportunity> listOpportunitiesByInteractionAndCustomer(String interactionId, String accountId){
List<Opportunity> output = new List<Opportunity>();
if(Opportunity.SObjectType.getDescribe().isAccessible()){
output = [SELECT Id, Name, StageName,ContractSignedDate__c,
CompanyDivision__c,CompanyDivision__r.Name,CustomerInteraction__c,
AccountId,ContractId, ContactDigitalCompletion__c, CompletionMode__c, Email__c, ViewState__c
from Opportunity
where CustomerInteraction__r.Interaction__c =:interactionId
and CustomerInteraction__r.Customer__c =:accountId WITH SECURITY_ENFORCED];
}
return output;
}
public List<Opportunity> listOpportunitiesByAccountStageAndRethinkingRight(String accountId){
List<Opportunity> oppties = new List<Opportunity>();
if(Opportunity.SObjectType.getDescribe().isAccessible()){
oppties = [SELECT Id, Name, StageName,ContractSignedDate__c,
CompanyDivision__c,CompanyDivision__r.Name,CustomerInteraction__c,
AccountId,ContractId, ContactDigitalCompletion__c, CompletionMode__c, Email__c, ViewState__c
FROM Opportunity WHERE AccountId =: accountId AND StageName IN ('Attesa Ripensamento',
'Attesa Credit Check Full', 'Attesa Rilavorazione', 'Chiusa Vinta')
AND RethinkingRight__c = 'Si' WITH SECURITY_ENFORCED];
}
return oppties;
}
public List<Opportunity> findByAccoutSegment(String segment, String requestType, List<ID> accountId, String stageName){
List<Opportunity> oppties = new List<Opportunity>();
if(Opportunity.SObjectType.getDescribe().isAccessible()){
oppties = [SELECT
Id, Name, StageName
FROM
Opportunity
WHERE
Account.Segment__c = :segment
AND RequestType__c = :requestType
AND AccountId IN :accountId
AND StageName = :stageName];
}
return oppties;
}
public List<Opportunity> findByAccoutSegmentAndStage(String segment, List<String> requestType, List<ID> accountId, List<String> stageNameList){
List<Opportunity> oppties = new List<Opportunity>();
if(Opportunity.SObjectType.getDescribe().isAccessible()){
oppties = [SELECT
Id, Name, StageName
FROM
Opportunity
WHERE
Account.Segment__c = :segment
AND RequestType__c IN :requestType
AND AccountId IN :accountId
AND StageName IN :stageNameList];
}
return oppties;
}
public List<Opportunity> getOpportunitiesByFiscalCodeOrVatNumber(String accountId, String tipoControllo) {
if(tipoControllo!=null && String.isNotBlank(tipoControllo) && tipoControllo == 'Prescreening'){
return getOpportunitiesWithPrescreening(accountId);
}
if(tipoControllo!=null && String.isNotBlank(tipoControllo) && tipoControllo == 'Credit Check Full'){
return getOpportunitiesWithCreditCheck(accountId);
}
return null;
}
public List<Opportunity> getOpportunitiesWithPrescreening(String accountId) {
List<Opportunity> opportunityList = new List<Opportunity>();
if(Opportunity.SObjectType.getDescribe().isAccessible()){
opportunityList = [
SELECT id, PrescreeningStatus__c, PrescreeningDate__c, CreditCheckFullStatus__c, CreditCheckFullRequestDate__c
FROM Opportunity
WHERE PrescreeningDate__c != null
AND PrescreeningStatus__c != null
AND PrescreeningStatus__c != 'In Corso'
AND PrescreeningStatus__c != 'Errore'
AND AccountId =: accountId
ORDER BY CreatedDate desc
];
}
return opportunityList;
}
public List<Opportunity> getOpportunitiesWithCreditCheck(String accountId) {
List<Opportunity> opportunityList = new List<Opportunity>();
if(Opportunity.SObjectType.getDescribe().isAccessible()){
opportunityList = [
SELECT id, PrescreeningStatus__c, PrescreeningDate__c, CreditCheckFullStatus__c, CreditCheckFullRequestDate__c
FROM Opportunity
WHERE CreditCheckFullRequestDate__c != null
AND CreditCheckFullStatus__c != null
AND CreditCheckFullStatus__c != 'In Corso'
AND CreditCheckFullStatus__c != 'Errore'
AND CreditCheckFullStatus__c != 'Forzato'
AND AccountId =: accountId
ORDER BY CreatedDate desc
];
}
return opportunityList;
}
public Opportunity getOppHeaderCheck(String opportunityId) {
Opportunity opportunityReturn = new Opportunity();
if(Opportunity.SObjectType.getDescribe().isAccessible()){
opportunityReturn = [
SELECT Id, Name, Channel__c, Account.Id, Account.Code__c, Account.RecordType.Name, Account.FiscalCode__c, Account.VATNumber__c,
Account.CompanyName__c, Account.FirstName__c, Account.LastName__c, Account.CervedCode__c, Account.MarketType__c,
Account.Segment__c, Account.AgencyCode__c, Account.BusinessType__c,
SubChannel__c, AccountType__c, FiscalCode__c, VATNumber__c, IndividualCompanyName__c, CompanyName__c, FirstName__c, LastName__c, OpportunityNumber__c,
AgencyCode__c
FROM Opportunity
where Id =: opportunityId
];
}
return opportunityReturn;
}
public Opportunity getOppFullCheck(String opportunityId) {
Opportunity opportunityReturn = new Opportunity();
if(Opportunity.SObjectType.getDescribe().isAccessible()){
opportunityReturn = [
SELECT Id, Name, Warranty__c, WarrantyValue__c, Channel__c,AccountId, Account.Code__c, Account.RecordType.Name, Account.FiscalCode__c, Account.VATNumber__c,
Account.CompanyName__c, Account.FirstName__c, Account.LastName__c, Account.CervedCode__c, Account.MarketType__c,
Account.Segment__c, Account.AgencyCode__c, Account.ResidentialPostalCode__c, Account.ResidentialProvince__c,
Account.ResidentialStreetName__c, Account.ResidentialLocality__c, Account.ResidentialStreetNumber__c, Account.ResidentialIstatCode__c,
Account.ResidentialCity__c, Account.Phone, Account.Email__c, Account.JointVenture__c,Account.JointVenture__r.JointVentureCode__c,Company_Code__c,Segment__c,
ResidentialPostalCode__c, ResidentialProvince__c, ResidentialStreetName__c, ResidentialStreetNumber__c, /*ResidentialIstatCode__c,*/ ResidentialCity__c,/*, ResidentialLocality__c*/
MobilePhone__c, Email__c
FROM Opportunity
where Id =: opportunityId
];
}
return opportunityReturn;
}
public List<Opportunity> getOppFullCheck(List<String> opportunityIdList) {
List<Opportunity> opportunityList = new List<Opportunity>();
if(Opportunity.SObjectType.getDescribe().isAccessible()){
opportunityList= [
SELECT Id, Name, Warranty__c, WarrantyValue__c, Channel__c,AccountId, Account.Code__c, Account.RecordType.Name, Account.FiscalCode__c, Account.VATNumber__c,
Account.CompanyName__c, Account.FirstName__c, Account.LastName__c, Account.CervedCode__c, Account.MarketType__c,
Account.Segment__c, Account.AgencyCode__c, Account.ResidentialPostalCode__c, Account.ResidentialProvince__c,
Account.ResidentialStreetName__c, Account.ResidentialLocality__c, Account.ResidentialStreetNumber__c, Account.ResidentialIstatCode__c,
Account.ResidentialCity__c, Account.Phone, Account.Email__c, Account.JointVenture__c,Account.JointVenture__r.JointVentureCode__c,Company_Code__c,Segment__c
FROM Opportunity
where Id =: opportunityIdList
];
}
return opportunityList;
}
public List<Opportunity> getOppByFullChecks(Set<Id> creditCheckIds) {
List<Opportunity> opp = new List<Opportunity>();
if(Opportunity.SObjectType.getDescribe().isAccessible()){
opp = [
SELECT Id,StageName, Name,CreditCheckFull__c
FROM Opportunity
where CreditCheckFull__c IN : creditCheckIds
];
}
return opp;
}
public Opportunity getFieldOpportunityById(String opportunityId) {
Opportunity opportunityReturn = new Opportunity();
if(Opportunity.SObjectType.getDescribe().isAccessible()){
opportunityReturn = [
SELECT Id, Agency__r.VATNumber__c, VatNumber__c, CheckActiveContract__c, ViewState__c
FROM Opportunity
WHERE Id =: opportunityId
];
}
return opportunityReturn;
}
public Opportunity getCreditCheckStatusOpportunity(String opportunityId) {
Opportunity opportunityReturn = new Opportunity();
if(Opportunity.SObjectType.getDescribe().isAccessible()){
opportunityReturn = [
SELECT Id, PrescreeningStatus__c
FROM Opportunity
WHERE Id =: opportunityId
];
}
return opportunityReturn;
}
/**
* @author Ersi Dule (ersi.dule@webresults.it)
* @date 31/01/2020
* @description loadOpportunityContext - queries an opportunity including its child records
* @param1 opportunityIds - the id of the opportunity
* @return Opportunity
*/
public Opportunity loadOpportunityContext(Id opportunityId){
Opportunity opp = new Opportunity();
if(Opportunity.SObjectType.getDescribe().isAccessible()){
opp = [ SELECT Id, StageName, Validation__c, CreditCheckFullStatus__c, AccountId,Account.Segment__c, MoreThan50Employees__c, AtLeastOneMedium__c, Turnover__c , NoneOfAbove__c, DigitalCompletionStatus__c,RecordType.DeveloperName,ChannelDetail__c,SubChannel__c, Channel__c, SignatureDate__c,Process__c,
( SELECT Id, ImmediateActivation__c, RethinkingStatus__c, ServicePointCode__c, Process__c, ContractDate__c
FROM OpportunityServiceItems__r
),
( SELECT Id, wrts_prcgvr__Status__c,wrts_prcgvr__ActivityTemplate__r.name,wrts_prcgvr__ActivityTemplate__c, wrts_prcgvr__ActivityTemplate__r.wrts_prcgvr__ObjectType__c
FROM Activities__r
),
( SELECT Id, Status__c, Phase__c, ContractualAccountAndAnagraficOutcome__c, OrderCreationStatus__c
FROM IntegrationCases__r)
FROM Opportunity
WHERE Id =: opportunityId limit 1];
}
return opp;
}
//AC: questa query deve essere così altrimenti il phaseManager va in errore
public Opportunity getOpportunityForPhase(String id){
String query = 'SELECT ' + String.escapeSingleQuotes(CEP_UTL_SObject.getAllFieldsForObject('Opportunity')) + ' ';
query += 'FROM Opportunity ';
query += 'WHERE Id = :id';
return Database.query(query);
}
public Opportunity takeOpportunity(Id opportunityId){
Opportunity opp = new Opportunity();
if(Opportunity.SObjectType.getDescribe().isAccessible()){
opp = [
SELECT Id, AccountId, MoreThan50Employees__c, AtLeastOneMedium__c, Turnover__c , NoneOfAbove__c
FROM Opportunity
WHERE Id =: opportunityId
];
}
return opp;
}
public List<Opportunity> getOpportunityForScipafi(Id accountId){
List<Opportunity> oppList = new List<Opportunity>();
if(Opportunity.SObjectType.getDescribe().isAccessible()){
oppList = [
SELECT Id, StageName, AccountId
FROM Opportunity
WHERE AccountId =: accountId
];
}
return oppList;
}
public List<Opportunity> getOpportunitiesWithTouchPoints(Set<Id> opptiesId){
List<Opportunity> opp = new List<Opportunity>();
if(Opportunity.SObjectType.getDescribe().isAccessible()){
opp = [
SELECT Id,
(SELECT LastModifiedDate
FROM FilesMetadata__r
WHERE RecordType.DeveloperName = 'CEP_RT_TouchPoint'
ORDER BY CreatedDate DESC )
FROM Opportunity
WHERE Id IN: opptiesId
AND CompletionMode__c = 'Perfezionamento Digitale'
WITH SECURITY_ENFORCED
];
}
return opp;
}
public Map<Id, Opportunity> getOppsWithOpportunityServiceItemsForCreateOder(Set<Id> opportunityIds){
Map<Id, Opportunity> opportunitiesById = new Map<Id, Opportunity> ([
SELECT Id, Name, AccountId, Account.Name, Channel__c, ContactId, StageName, CloseDate, CompanyDivision__c, ContractId, CustomerInteraction__c,SupplyStartDate__c,
CustomerInteraction__r.Contact__c,RequestType__c,ContractSignedDate__c, RecordTypeId, RecordType.DeveloperName,Brand__c,
ContactDigitalCompletion__c, Email__c, SubChannel__c, ChannelDetail__c, Agency__c, MatrixChannelAgency__c, SubAgency__c, Structure__c, OmniChannelOperator__c,
ContactDigitalCompletionDraft__c,CompletionMode__c, ElectricSuppliesNumber__c, GasSuppliesNumber__c, Account.Segment__c, SignatureDate__c,LastModifiedDate,
AgencyCode__c,AgencyFormula__c, NTT_Subalterno__c, NTT_Particella__c, NTT_Foglio__c,
Account.CompanyChannel__c, CreatedBy.DefaultChannel__c, CreatedBy.DefaultSubChannel__c, //NTT W3
(
SELECT Id, Status__c, Asset__c, Asset__r.AccountId, ServicePointCode__c, RecordType.DeveloperName, Product__c,Account__c,Account__r.FiscalCode__c,Account__r.VATNumber__c,Account__r.ParentId,Account__r.Parent.Segment__c,
TaxBreak__c, TaxCode__c, VATClass__c, AccisaCode__c, Excise__c, RegionalAddTaxExemptionCode__c, FlagTax__c, Article__c,
Distributor__c, BillingProfile__c, ContractAccount__c, Trader__c, PointAddressNormalized__c, PointStreetType__c,
PointStreetName__c, PointStreetNumber__c, PointStreetNumberExtn__c, PointApartment__c, PointBuilding__c, PointCity__c,
PointCountry__c, PointFloor__c, Market__c, NonDisconnectable__c, PointLocality__c, Commodity__c,
PointPostalCode__c, PointProvince__c, Voltage__c, VoltageLevel__c, PressureLevel__c,CodSubServ__c,
Pressure__c, PowerPhase__c, ConversionFactor__c, ContractualPower__c, DeactivationDate__c, Descr_Materiale__c,
AvailablePower__c, EstimatedConsumption__c, Process__c, ServicePoint__c, OrderCreated__c, DistributorVatNumber__c,
REMICode__c, ShiftDistance__c, QuoteType__c, DistributorAdministrativeCharges__c, AdministrativeSalesCharges__c, MailingCity__c, MailingProvince__c, MailingPostalCode__c, MailingAddress__c, MailingIstatCode__c,
OverallCharges__c, DistributorCharge__c, PastCharges__c, PowerAmount__c, VATRate__c, PreviousAccount__c, NTT_Tipologia_Prodotto__c, NTT_Tipologia_Intervento__c, Product__r.Description , NTT_Cessione_del_credito__c,
Taxable__c, VAT__c, TotalQuoteAmount__c, Stamp__c, EffectiveDate__c, HistoricalResidenceData__c, Residence__c,ParentOSI__c,ParentOSI__r.RecordType.DeveloperName,RethinkingStatus__c, VATTreatment__c
FROM OpportunityServiceItems__r WHERE OrderCreated__c=false AND ( (ContractAccount__c <> '' AND RecordType.DeveloperName != 'CEP_RT_VAS') OR RecordType.DeveloperName = 'CEP_RT_VAS') ORDER BY CreatedDate LIMIT 1000
)
FROM Opportunity
WHERE Id IN :opportunityIds ]);
return opportunitiesById;
}
}Editor is loading...