Untitled

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 4

SELECT

IF(conversation._siteId IS NULL, 0, COALESCE(s._id, -1)) AS idSite,


IF(conversation.date_deb IS NULL, 0, COALESCE(tb._id, -1)) AS
idTemporalBegin,
IF(conversation.date_last_message IS NULL, 0, COALESCE(tlm._id, -1)) AS
idTemporalLastMessage,
IF(conversation.closedDate IS NULL, 0, COALESCE(te._id, -1)) AS
idTemporalEnd,
IF(conversation.rfqId IS NULL, 0, COALESCE(req._id, -1)) AS idRequest,
IF(conversation.conversId IS NULL, 0, COALESCE(co._id, -1)) AS
idConversation,
IF(conversation.IdFournisseur IS NULL, 0, COALESCE(c._id, -1)) AS idContact,
IF(c._id IS NULL, 0, COALESCE(cm._id, cm2._id, -1)) AS idContactManufacturer,
IF(conversation.labelLanguage IS NULL, 0, COALESCE(lbuy._id, -1)) AS
idBuyerLanguage,
IF(conversation.countryId IS NULL, 0, COALESCE(gabuy._id, -1)) AS
idBuyerGeoArea,
IF(conversation.conversStatus = 'CANCEL' OR conversation.closedDate IS NOT
NULL, 0, 1) isActiveConversation,
0 AS isSupplierContacted,
conversation.nbPJ AS countAttachments,
conversation.nbDevis AS countQuotation,
conversation.nbMessage AS countMessage,
conversation.nbR2I AS countMessageSupplierToVisitor,
conversation.nbI2R AS countMessageVisitorToSupplier,
IF(cur.rateConversionToEurosFixed IS NOT NULL,
(cur.rateConversionToEurosFixed * conversation.amountQuote),
conversation.amountQuote) AS amountQuotation,
conversation.rfqId AS _requestId,
conversation.conversId AS _conversationId,
conversation.IdFournisseur AS _contactId,
conversation.contractorType AS _contactType,
req.labelRequestType AS _labelRequestType,
'"+context.pid+"' _jobId
FROM

(
SELECT convers.id AS conversId,
rfq.id AS rfqId,
COUNT(DISTINCT a.id) AS nbPJ,
COALESCE(devis.nbQuote,0) AS nbDevis,
COUNT(DISTINCT m.id) AS nbMessage,
COALESCE(r2i.nbR2I,0) AS nbR2I,
COALESCE(i2r.nbI2R,0) AS nbI2R,
COALESCE(SUM(mnt_devis.quoteAmount),0) AS amountQuote,
mnt_devis.currencyId AS currencyId,
DATE(MIN(m.sentDate)) date_deb,
DATE(MAX(m.sentDate)) date_last_message,
rfq.registeredVisitorId AS visitorId,
rv.declaredCountryId AS countryId,
rv.`language` AS labelLanguage,
IF(contractor.contractorType = 'BRAND', 'MAIN_CONTACT',
IF(contractor.contractorType = 'AREA', 'AREA_MANAGER',
IF(contractor.contractorType IN
('Dealer','virtual_store'), 'DEALER', NULL)
)
) contractorType,
contractor.id AS Destinataire,
if(contractor.contractorType = 'BRAND',
aN.RefFiche,

IF(contractor.contractorType = 'AREA',
contact.ID,
IF(contractor.contractorType IN
('Dealer','virtual_store'),
d.id,
NULL
)
)
) AS IdFournisseur,

tc.id AS contactId,
tc.status AS conversStatus,
tc.flagToRemind,
IF(rfq.`status` IN ('CLOSED'), rfq.statusModifDate,NULL) AS
closedDate,
rfq.statusModifDate,
coun.C_Fr AS dealerCountry,
MAX(rml.reminderDate) AS reminderDate,
tc.quoteAcceptation,
tc.quoteAcceptationDate,
tc.quoteSentDate,
rfq._siteId
FROM ODS.MLI_Conversation convers
LEFT JOIN ODS.RFQ_RfqContractor tc ON tc.id = convers.businessId AND
tc._siteId = convers._siteId
LEFT JOIN ODS.RFQ_RfqMessage m ON m.rfqContractorId = tc.id AND tc._siteId =
m._siteId
LEFT JOIN ODS.RFQ_RfqMessageAttachment a ON a.rfqMessageId = m.id AND
a._siteId = m._siteId
LEFT JOIN ODS.RFQ_Contractor contractor ON contractor.id = tc.contractorId
AND tc._siteId = contractor._siteId
JOIN ODS.RFQ_RfqContractor rfqContractor ON rfqContractor.id =
m.rfqContractorId AND rfqContractor._siteId = m._siteId
JOIN ODS.RFQ_Rfq rfq ON rfq.id = tc.rfqId AND tc._siteId = rfq._siteId
LEFT JOIN ODS.Annonceurs aN ON aN.RefFiche = contractor.contractorId AND
contractor.contractorType = 'BRAND' AND aN._siteId = contractor._siteId
LEFT JOIN ODS.Contact contact ON contact.ID = contractor.contractorId AND
contractor.contractorType = 'AREA' AND contact._siteId = contractor._siteId
LEFT JOIN ODS.Dealer d ON d.id = contractor.contractorId AND
contractor.contractorType IN ('Dealer','virtual_store')
LEFT JOIN ODS.Country coun ON coun.ID = d.countryId
LEFT JOIN ODS.RFQ_ReminderLog rml ON rml.rfqContractorId = tc.id AND
tc._siteId = rml._siteId
LEFT JOIN (SELECT m.rfqContractorId,
m._siteId,
COUNT(DISTINCT m.id) AS nbR2I
FROM ODS.RFQ_RfqMessage m
WHERE m.direction = 'RESPONDENT_TO_INITIATOR'
GROUP BY m.rfqContractorId,
m._siteId) r2i ON
r2i.rfqContractorId = m.rfqContractorId AND r2i._siteId = m._siteId

LEFT JOIN (SELECT m.rfqContractorId,


m._siteId,
COUNT(DISTINCT m.id) as nbI2R
FROM ODS.RFQ_RfqMessage m
WHERE m.direction = 'INITIATOR_TO_RESPONDENT'
GROUP BY m.rfqContractorId,
m._siteId) i2r ON
i2r.rfqContractorId = m.rfqContractorId AND i2r._siteId = m._siteId

LEFT JOIN (SELECT m.rfqContractorId,


m._siteId,
COUNT(*) AS nbQuote
FROM ODS.RFQ_RfqMessage m
JOIN ODS.RFQ_RfqMessageAttachment rm ON
rm.rfqMessageId = m.id AND rm._siteId = m._siteId
JOIN ODS.RFQ_RfqQuote rq ON rq.rfqMessageAttachmentId
= rm.id AND rq._siteId = rm._siteId
WHERE m.sentDate IS NOT NULL
GROUP BY m.rfqContractorId,
m._siteId) devis
on devis.rfqContractorId = m.rfqContractorId AND devis._siteId = m._siteId

LEFT JOIN ODS.RFQ_RfqQuote mnt_devis ON mnt_devis.rfqId = rfq.id AND


mnt_devis._siteId = rfq._siteId AND a.id = rfqMessageAttachmentId

LEFT OUTER JOIN ODS.RegisteredVisitor rv ON rv.id = rfq.registeredVisitorId


AND rv._siteId = rfq._siteId

GROUP BY convers.id

) conversation

LEFT OUTER JOIN DWH.DIM_SITE s ON conversation._siteId = s.Identifiant_Site


LEFT OUTER JOIN
(SELECT
r._id,
r.requestId,
r.idSite,
rt.labelRequestType
FROM
DWH.DIM_REQUEST r
JOIN DWH.DIM_REQUEST_TYPE rt ON r.idRequestType = rt._id
WHERE
rt.labelRequestType = 'RFQ'
) req ON conversation.rfqId = req.requestId AND conversation._siteId =
req.idSite

LEFT OUTER JOIN DWH.DIM_CONVERSATION co ON conversation.conversId =


co._conversationId AND conversation._siteId = co.idSite
LEFT OUTER JOIN DWH.DIM_TEMPORAL tb ON conversation.date_deb = tb.dateCalendar
LEFT OUTER JOIN DWH.DIM_TEMPORAL tlm ON conversation.date_last_message =
tlm.dateCalendar
LEFT OUTER JOIN DWH.DIM_TEMPORAL te ON conversation.closedDate = te.dateCalendar

LEFT OUTER JOIN DWH.DIM_CONTACT c ON conversation.IdFournisseur = c.contactId AND


IF(conversation.contractorType = 'DEALER', 5, conversation._siteId) = c.idSite
LEFT OUTER JOIN DWH.DIM_CONTACT_MANUFACTURER cm ON c._id = cm.idContact AND
cm._scdActive = 1 AND cm._isActive = 1

LEFT OUTER JOIN DWH.FCT_LINK_MANUFACTURERS_CONTACTS lmc ON c._id = lmc.idContact


LEFT OUTER JOIN DWH.DIM_CONTACT_MANUFACTURER cm2 ON lmc.idContactManufacturer =
cm2._id

LEFT OUTER JOIN DWH.DIM_LANGUAGE lbuy ON lbuy.codeLabelLanguage =


conversation.labelLanguage
LEFT OUTER JOIN DWH.DIM_GEO_AREA gabuy ON gabuy.countryId = conversation.countryId

LEFT OUTER JOIN DWH.DIM_CURRENCY cur ON conversation.currencyId = cur.currencyId


;

You might also like