SELECT
imt.imt_rid_imt_out as RID,
'XXX' as CompanyID,
imt.imt_cde_msg_type as TransactionType,
'XXX' as LedgerID,
cas.cfl_xid_account as DebitAccount,
fac.fac_cde_currency as BaseCurrency,
'' as OrderingCustomerAccount,
'' as OrderingCustomerName,
'' as OrderingCustomerAddress1,
'' as OrderingCustomerAddress2,
'' as OrderingCustomerAddress3,
'Wimington Trust' as OrderingInstitutionName,
'1100 North Market Street' as OrderingInstitutionAddress1,
'Wilmington, DE 19801' as OrderingInstitutionAddress2,
'' as OrderingInstitutionAddress3,
imt.imt_cde_currency as TransferCurrencyCode,
imt.imt_amt_out_tot as TransferAmount,
imt.imt_dte_value_date as ValueDate,
imt.imt_rid_imt_out as CustomerReference,
imt.imt_rid_cashflow as BeneInstitutionReference,
'' as PayeeCountry,
'SHA' as Charges,
CASE
WHEN imt.imt_cde_msg_type = 'MT103'
THEN (Select rolbenc.ior_txt_acct_no from ls2user.tls_imt_out_role rolbenc where rolbenc.ior_rid_outgng_imt = imt.imt_rid_imt_out and rolbenc.ior_cde_swft_rtyp = 'BENCR')
WHEN imt.imt_cde_msg_type = 'MT202'
THEN ''
END as BeneficiaryCustomerAccount,
CASE
WHEN imt.imt_cde_msg_type = 'MT103'
THEN (Select rolbenc.ior_txt_acct_no from ls2user.tls_imt_out_role rolbenc where rolbenc.ior_rid_outgng_imt = imt.imt_rid_imt_out and rolbenc.ior_cde_swft_rtyp = 'BENCR' )
WHEN imt.imt_cde_msg_type = 'MT202'
THEN ''
END as BeneficiaryCustomerIBAN,
CASE
WHEN imt.imt_cde_msg_type = 'MT103'
THEN (Select rolbenc.ior_nme_swft_id from ls2user.tls_imt_out_role rolbenc where rolbenc.ior_rid_outgng_imt = imt.imt_rid_imt_out and rolbenc.ior_cde_swft_rtyp = 'BENCR' )
WHEN imt.imt_cde_msg_type = 'MT202'
THEN ''
END as BeneficiaryCustomerName,
CASE
WHEN imt.imt_cde_msg_type = 'MT103'
THEN (Select rolbenc.ior_txt_desc from ls2user.tls_imt_out_role rolbenc where rolbenc.ior_rid_outgng_imt = imt.imt_rid_imt_out and rolbenc.ior_cde_swft_rtyp = 'BENCR' )
WHEN imt.imt_cde_msg_type = 'MT202'
THEN ''
END as BeneficiaryCustAddress,
'' as BeneficiaryCustAddress1,
'' as BeneficiaryCustAddress2,
'' as BeneficiaryCustAddress3,
CASE
WHEN (Select length(trim(rolbeni.ior_cde_swft_id)) from ls2user.tls_imt_out_role rolbeni where rolbeni.ior_rid_outgng_imt = imt.imt_rid_imt_out and rolbeni.ior_cde_swft_rtyp = 'BENIN') > 5
THEN 'SWIFT BIC'
ELSE NULL
END as BeneInstitutionRouteType,
(Select rolbeni.ior_cde_swft_id from ls2user.tls_imt_out_role rolbeni where rolbeni.ior_rid_outgng_imt = imt.imt_rid_imt_out and rolbeni.ior_cde_swft_rtyp = 'BENIN' ) as BeneInstitutionBankID,
(Select rolbeni.ior_txt_acct_no from ls2user.tls_imt_out_role rolbeni where rolbeni.ior_rid_outgng_imt = imt.imt_rid_imt_out and rolbeni.ior_cde_swft_rtyp = 'BENIN' ) as BeneInstitutionAccount,
(Select rolbeni.ior_txt_acct_no from ls2user.tls_imt_out_role rolbeni where rolbeni.ior_rid_outgng_imt = imt.imt_rid_imt_out and rolbeni.ior_cde_swft_rtyp = 'BENIN' ) as BeneInstitutionIBAN,
(Select rolbeni.ior_nme_swft_id from ls2user.tls_imt_out_role rolbeni where rolbeni.ior_rid_outgng_imt = imt.imt_rid_imt_out and rolbeni.ior_cde_swft_rtyp = 'BENIN' ) as BeneInstitutionName,
(Select rolbeni.ior_txt_desc from ls2user.tls_imt_out_role rolbeni where rolbeni.ior_rid_outgng_imt = imt.imt_rid_imt_out and rolbeni.ior_cde_swft_rtyp = 'BENIN' ) as BeneficiaryInstAddress, -- will have to be split into 3 lines in interface code
'' as BeneficiaryInstAddress1,
'' as BeneficiaryInstAddress2,
'' as BeneficiaryInstAddress3,
CASE
WHEN (Select length(trim(rolacwi.ior_cde_swft_id)) from ls2user.tls_imt_out_role rolacwi where rolacwi.ior_rid_outgng_imt = imt.imt_rid_imt_out and rolacwi.ior_cde_swft_rtyp = 'ACWIN') > 5
THEN 'SWIFT BIC'
ELSE NULL
END as AWInstitutionRouteType,
(Select rolacwi.ior_cde_swft_id from ls2user.tls_imt_out_role rolacwi where rolacwi.ior_rid_outgng_imt = imt.imt_rid_imt_out and rolacwi.ior_cde_swft_rtyp = 'ACWIN' ) as AWInstitutionBankID,
CASE
WHEN imt.imt_cde_msg_type = 'MT202'
THEN (Select rolacwi.ior_txt_acct_no from ls2user.tls_imt_out_role rolacwi where rolacwi.ior_rid_outgng_imt = imt.imt_rid_imt_out and rolacwi.ior_cde_swft_rtyp = 'ACWIN' )
WHEN imt.imt_cde_msg_type = 'MT103'
THEN ''
END as AWInstitutionIBAN,
CASE
WHEN imt.imt_cde_msg_type = 'MT202'
THEN (Select rolacwi.ior_nme_swft_id from ls2user.tls_imt_out_role rolacwi where rolacwi.ior_rid_outgng_imt = imt.imt_rid_imt_out and rolacwi.ior_cde_swft_rtyp = 'ACWIN' )
WHEN imt.imt_cde_msg_type = 'MT103'
THEN ''
END as AWInstitutionName,
CASE
WHEN imt.imt_cde_msg_type = 'MT202'
THEN (Select rolacwi.ior_txt_desc from ls2user.tls_imt_out_role rolacwi where rolacwi.ior_rid_outgng_imt = imt.imt_rid_imt_out and rolacwi.ior_cde_swft_rtyp = 'ACWIN' )
WHEN imt.imt_cde_msg_type = 'MT103'
THEN ''
END as AWInstitutionAddress,
'' as AWInstitutionAddress1,
'' as AWInstitutionAddress2,
'' as AWInstitutionAddress3,
'' as IntermedInstRouteType,
'' as IntermedInstBankID,
'' as IntermedInstIBAN,
'' as IntermedInstName,
'' as IntermedInstAddr1,
'' as IntermedInstAddr2,
'' as IntermedInstAddr3,
'' as BeneficiaryRef1,
'' as BeneficiaryRef2,
'' as BeneficiaryRef3,
'' as BeneficiaryRef4,
'/BNF/' || imt.imt_txt_sdr_rvr_tx as BankToBank1,
'' as BankToBank2,
'' as BankToBank3,
'' as BankToBank4,
'' as BankToBank5,
'' as BankToBank6
FROM
ls2user.vls_imt_out imt
INNER JOIN ls2user.vls_facility fac
on imt.imt_pid_facility = fac.fac_pid_facility
INNER JOIN ls2user.vls_cashflow cas
ON imt.imt_rid_cashflow = cas.cfl_rid_