Last active
September 9, 2024 06:02
-
-
Save honzapav/ddba080869a4bc68fba23cc7f0e051a8 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
WITH user_contact_details AS ( | |
SELECT | |
ucd.user_id, | |
MAX(CASE WHEN ucd.type = 'email' THEN ucd.value ELSE NULL END) AS user_contact_detail_email, | |
MAX(CASE WHEN ucd.type = 'phone' THEN ucd.value ELSE NULL END) AS user_contact_detail_phone | |
FROM | |
user_contact_detail ucd | |
GROUP BY | |
ucd.user_id | |
) | |
SELECT DISTINCT | |
-- business_case Columns | |
bc.id AS business_case_id, | |
bc.auction_id AS business_case_auction_id, | |
bc.user_id AS business_case_user_id, | |
bc.product_id AS business_case_product_id, | |
bc.supply_point_id AS business_case_supply_point_id, | |
bc.supplier_id AS business_case_old_supplier_id, -- supplier ID for historic business cases | |
bc.billing_details_id AS business_case_billing_details_id, | |
bc.is_locked AS business_case_is_locked, | |
bc.supplier_contract_id AS business_case_supplier_contract_id, | |
TO_CHAR(bc.supplier_contract_valid_from, 'DD. MM. YYYY HH24:MI') AS business_case_supplier_contract_valid_from, | |
TO_CHAR(bc.supply_end_date, 'DD. MM. YYYY') AS business_case_supply_end_date, | |
TO_CHAR(bc.supply_start_date, 'DD. MM. YYYY') AS business_case_supply_start_date, | |
TO_CHAR(bc.current_commitment_end_date, 'DD. MM. YYYY') AS business_case_current_commitment_end_date, | |
bc.supplier_product_name AS business_case_supplier_product_name, | |
bc.supplier_customer_id AS business_case_supplier_customer_id, | |
bc.dpi_active AS business_case_dpi_active, | |
bc.new_supply_point AS business_case_new_supply_point, | |
bc.customer_change AS business_case_customer_change, | |
bc.last_customer_type AS business_case_last_customer_type, | |
bc.last_customer_first_name AS business_case_last_customer_first_name, | |
bc.last_customer_last_name AS business_case_last_customer_last_name, | |
bc.last_customer_birth_date AS business_case_last_customer_birth_date, | |
bc.last_customer_registration_no AS business_case_last_customer_registration_no, | |
bc.last_customer_company AS business_case_last_customer_company, | |
bc.last_customer_street AS business_case_last_customer_street, | |
bc.last_customer_street_no AS business_case_last_customer_street_no, | |
bc.last_customer_city AS business_case_last_customer_city, | |
bc.last_customer_zip AS business_case_last_customer_zip, | |
bc.last_customer_country AS business_case_last_customer_country, | |
bc.last_customer_died AS business_case_last_customer_died, | |
bc.last_customer_death_certificate_document_id AS business_case_last_customer_death_certificate_document_id, | |
bc.last_customer_contact_phone AS business_case_last_customer_contact_phone, | |
bc.last_customer_contact_email AS business_case_last_customer_contact_email, | |
bc.transfer_meter_count_vt AS business_case_transfer_meter_count_vt, | |
bc.transfer_meter_count_nt AS business_case_transfer_meter_count_nt, | |
bc.transfer_meter_count_gas AS business_case_transfer_meter_count_gas, | |
bc.transfer_meter_level_document_id AS business_case_transfer_meter_level_document_id, | |
bc.relationship_document_id AS business_case_relationship_document_id, | |
bc.transfer_comment AS business_case_transfer_comment, | |
bc.supply_revision_document_id AS business_case_supply_revision_document_id, | |
bc.distributor_contract_document_id AS business_case_distributor_contract_document_id, | |
bc.new_supply_comment AS business_case_new_supply_comment, | |
bc.last_contract_notice_given AS business_case_last_contract_notice_given, | |
bc.last_contract_notice_accepted AS business_case_last_contract_notice_accepted, | |
bc.last_contract_acceptance_document_id AS business_case_last_contract_acceptance_document_id, | |
bc.last_supplier_id AS business_case_last_supplier_id, | |
bc.last_supplier_text AS business_case_last_supplier_text, | |
bc.last_billing_document_id AS business_case_last_billing_document_id, | |
TO_CHAR(bc.last_contract_commitment_date, 'DD. MM. YYYY') AS business_case_last_contract_commitment_date, | |
bc.last_contract_comment AS business_case_last_contract_comment, | |
bc.notice_attorney_document_id AS business_case_notice_attorney_document_id, | |
bc.circuit_breaker_amps AS business_case_circuit_breaker_amps, | |
bc.customer_consumption_plan_gas AS business_case_customer_consumption_plan_gas, | |
bc.customer_consumption_plan_vt AS business_case_customer_consumption_plan_vt, | |
bc.customer_consumption_plan_nt AS business_case_customer_consumption_plan_nt, | |
bc.payment_method AS business_case_payment_method, | |
bc.sipo_number AS business_case_sipo_number, | |
bc.bank_account_number AS business_case_bank_account_number, | |
bc.advance_payment_amount AS business_case_advance_payment_amount, | |
bc.auction_cancelled AS business_case_auction_cancelled, | |
TO_CHAR(bc.auction_cancelled_at, 'DD. MM. YYYY HH24:MI') AS business_case_auction_cancelled_at, | |
bc.auction_cancel_reason AS business_case_auction_cancel_reason, | |
bc.auction_cancel_comment AS business_case_auction_cancel_comment, | |
bc.contact_phone AS business_case_contact_phone, | |
bc.contact_email AS business_case_contact_email, | |
bc.created_by AS business_case_created_by, | |
TO_CHAR(bc.created_at, 'DD. MM. YYYY HH24:MI') AS business_case_created_at, | |
bc.last_updated_by AS business_case_last_updated_by, | |
bc.rate_id AS business_case_rate_id, | |
bc.supplier_contract_status AS business_case_supplier_contract_status, | |
bc.note AS business_case_note, | |
bc.status AS business_case_status, | |
TO_CHAR(bc.last_updated_at, 'DD. MM. YYYY HH24:MI') AS business_case_last_updated_at, | |
bc.has_continuous_metering AS business_case_has_continuous_metering, | |
bc.has_pv AS business_case_has_pv, | |
bc.is_hidden AS business_case_is_hidden, | |
bc.sms_otp_id AS business_case_sms_otp_id, | |
bc.transfer_meter_level_document2_id AS business_case_transfer_meter_level_document2_id, | |
bc.auction_cancel_otp_id AS business_case_auction_cancel_otp_id, | |
bc.circuit_breaker AS business_case_circuit_breaker, | |
TO_CHAR(bc.date_user_finally_submitted, 'DD. MM. YYYY HH24:MI') AS business_case_date_user_finally_submitted, | |
bc.bypass_customer_type_checks AS business_case_bypass_customer_type_checks, | |
-- business_case_billing_detail Columns | |
bcd.id AS business_case_billing_detail_id, | |
bcd.customer_type AS business_case_billing_detail_customer_type, | |
bcd.company_name AS business_case_billing_detail_company_name, | |
bcd.registration_no AS business_case_billing_detail_registration_no, | |
bcd.street AS business_case_billing_detail_street, | |
bcd.street_no AS business_case_billing_detail_street_no, | |
bcd.city AS business_case_billing_detail_city, | |
bcd.zip AS business_case_billing_detail_zip, | |
bcd.country AS business_case_billing_detail_country, | |
bcd.first_name AS business_case_billing_detail_first_name, | |
bcd.last_name AS business_case_billing_detail_last_name, | |
bcd.national_id AS business_case_billing_detail_national_id, | |
TO_CHAR(NULLIF(bcd.birth_date, '')::date, 'DD. MM. YYYY') AS business_case_billing_detail_birth_date, | |
TO_CHAR(bcd.created_at, 'DD. MM. YYYY HH24:MI') AS business_case_billing_detail_created_at, | |
TO_CHAR(bcd.last_updated_at, 'DD. MM. YYYY HH24:MI') AS business_case_billing_detail_last_updated_at, | |
bcd.original_id AS business_case_billing_detail_original_id, | |
bcd.migrated_from_previous_data AS business_case_billing_detail_migrated_from_previous_data, | |
bcd.vat_number AS business_case_billing_detail_vat_number, | |
bcd.is_vat_payer AS business_case_billing_detail_is_vat_payer, | |
bcd.self_employed AS business_case_billing_detail_self_employed, | |
bcd.responsible_person_first_name AS business_case_billing_detail_responsible_person_first_name, | |
bcd.responsible_person_last_name AS business_case_billing_detail_responsible_person_last_name, | |
bcd.responsible_person_role AS business_case_billing_detail_responsible_person_role, | |
-- supply_point Columns | |
sp.id AS supply_point_id, | |
sp.commodity AS supply_point_commodity, | |
sp.ean_eic AS supply_point_ean_eic, | |
sp.distributor_id AS supply_point_distributor_id, | |
sp.street AS supply_point_street, | |
sp.street_no AS supply_point_street_no, | |
sp.city AS supply_point_city, | |
sp.zip AS supply_point_zip, | |
sp.country AS supply_point_country, | |
TO_CHAR(sp.created_at, 'DD. MM. YYYY HH24:MI') AS supply_point_created_at, | |
TO_CHAR(sp.last_updated_at, 'DD. MM. YYYY HH24:MI') AS supply_point_last_updated_at, | |
sp.is_locked AS supply_point_is_locked, | |
-- rate Columns | |
rate.name AS rate_name, | |
rate.customer_type AS rate_customer_type, | |
rate.commodity AS rate_commodity, | |
rate.label AS rate_label, | |
rate.multitariff AS rate_multitariff, | |
-- user Columns | |
us.id AS user_id, | |
us.first_name AS user_first_name, | |
us.last_name AS user_last_name, | |
us.marketing_consent AS user_marketing_consent, | |
us.terms_consent AS user_terms_consent, | |
TO_CHAR(us.marketing_consent_at, 'DD. MM. YYYY HH24:MI') AS user_marketing_consent_at, | |
TO_CHAR(us.terms_consent_at, 'DD. MM. YYYY HH24:MI') AS user_terms_consent_at, | |
TO_CHAR(us.last_logged_at, 'DD. MM. YYYY HH24:MI') AS user_last_logged_at, | |
TO_CHAR(us.created_at, 'DD. MM. YYYY HH24:MI') AS user_created_at, | |
TO_CHAR(us.last_updated_at, 'DD. MM. YYYY HH24:MI') AS user_last_updated_at, | |
us.marketing_consent_request_dismissed AS user_marketing_consent_request_dismissed, | |
-- user_contact_detail Columns | |
ucd.user_contact_detail_email, | |
ucd.user_contact_detail_phone, | |
-- product Columns | |
prod.name AS product_name, | |
-- supplier_last Columns | |
suplast.name AS last_supplier_name, | |
-- supplier_hist Columns | |
suphist.name AS hist_supplier_name, | |
-- supplier_product Columns | |
supprod.name AS product_supplier_name, | |
-- current supplier resolution | |
COALESCE(supprod.name, suphist.name) AS current_supplier | |
FROM | |
business_case bc | |
LEFT JOIN | |
business_case_billing_detail bcd ON bc.billing_details_id = bcd.id | |
LEFT JOIN | |
supply_point sp ON bc.supply_point_id = sp.id | |
LEFT JOIN | |
rate ON bc.rate_id = rate.id | |
LEFT JOIN | |
"user" us ON bc.user_id = us.id | |
LEFT JOIN | |
user_contact_details ucd ON us.id = ucd.user_id | |
LEFT JOIN | |
product prod ON bc.product_id = prod.id | |
LEFT JOIN | |
supplier suplast ON bc.last_supplier_id = suplast.id -- last supplier before if transfer | |
LEFT JOIN | |
supplier suphist ON bc.supplier_id = suphist.id -- historical business cases supplir | |
LEFT JOIN | |
supplier supprod ON prod.supplier_id = supprod.id | |
WHERE (bc.created_at >= $1 AND bc.created_at <= $2) AND | |
bc.status IN (SELECT unnest($3::text[])::tdc_contract_status); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment