ecc/InvoiceDocuments_Flow.sql (531 lines of code) (raw):
WITH
-- Subquery to flip debit/credit in to positive/negative
RSEG AS (
SELECT
* EXCEPT (wrbtr, bnkan),
CASE
WHEN shkzg = 'S' THEN 'debit'
WHEN shkzg = 'H' THEN 'credit'
END AS dr_cr_flag,
CASE
WHEN shkzg = 'S' THEN wrbtr -- S = Debit | Amount in document currency
WHEN shkzg = 'H' THEN wrbtr * -1 -- H = Credit | Amount in document currency
ELSE wrbtr
END AS wrbtr,
CASE
WHEN shkzg = 'S' THEN bnkan -- S = Debit | Delivery Cost Share of Item Value
WHEN shkzg = 'H' THEN bnkan * -1 -- H = Credit | Delivery Cost Share of Item Value
ELSE bnkan
END AS bnkan
FROM
`{{ project_id_src }}.{{ dataset_cdc_processed_ecc }}.rseg`
),
-- Subquery to flip debit/credit in to positive/negative
RBCO AS (
SELECT
* EXCEPT (wrbtr, bnkan_fw),
CASE
WHEN shkzg = 'S' THEN 'debit'
WHEN shkzg = 'H' THEN 'credit'
END AS dr_cr_flag,
CASE
WHEN shkzg = 'S' THEN wrbtr -- Debit | Amount in document currency
WHEN shkzg = 'H' THEN wrbtr * -1 -- Credit | Amount in document currency
ELSE wrbtr
END AS wrbtr,
CASE
WHEN shkzg = 'S' THEN bnkan_fw -- Debit | Delivery Cost Share of Item Value
WHEN shkzg = 'H' THEN bnkan_fw * -1 -- Credit | Delivery Cost Share of Item Value
ELSE bnkan_fw
END AS bnkan_fw
FROM
`{{ project_id_src }}.{{ dataset_cdc_processed_ecc }}.rbco`
),
RSEG_RBCO AS (
SELECT
RBCO.cobl_nr,
RSEG.ebeln,
RSEG.ebelp,
RSEG.matnr,
RSEG.bwkey,
RSEG.bwtar,
RSEG.bstme,
RSEG.bprme,
RSEG.lbkum,
RSEG.vrkum,
RSEG.pstyp,
RSEG.knttp,
RSEG.bklas,
RSEG.erekz,
RSEG.exkbe,
RSEG.xekbz,
RSEG.tbtkz,
RSEG.spgrp,
RSEG.spgrm,
RSEG.spgrt,
RSEG.spgrg,
RSEG.spgrv,
RSEG.spgrq,
RSEG.spgrc,
RSEG.spgrext,
RSEG.bustw,
RSEG.xblnr,
RSEG.xrueb,
RSEG.bnkan,
RSEG.kschl,
RSEG.salk3,
RSEG.vmsal,
RSEG.xlifo,
RSEG.lfbnr,
RSEG.lfgja,
RSEG.lfpos,
RSEG.matbf,
RSEG.rbmng,
RSEG.bprbm,
RSEG.rbwwr,
RSEG.lfehl,
RSEG.gricd,
RSEG.grirg,
RSEG.gityp,
RSEG.packno,
RSEG.introw,
RSEG.kzmek,
RSEG.mrmok,
RSEG.stunr,
RSEG.zaehk,
RSEG.stock_posting,
RSEG.stock_posting_pp,
RSEG.stock_posting_py,
RSEG.werec,
RSEG.lifnr,
RSEG.frbnr,
RSEG.xhistma,
RSEG.complaint_reason,
RSEG.retamt_fc,
RSEG.retpc,
RSEG.retduedt,
RSEG.xrettaxnet,
RSEG.re_account,
RSEG.erp_contract_id,
RSEG.erp_contract_itm,
RSEG.srm_contract_id,
RSEG.srm_contract_itm,
RSEG.cont_pstyp,
RSEG.srvmapkey,
RSEG.charg,
RSEG.inv_itm_origin,
RSEG.invrel,
RSEG.xdinv,
RSEG.diff_amount,
RSEG.xcprf,
RSEG.fsh_season_year,
RSEG.fsh_season,
RSEG.fsh_collection,
RSEG.fsh_theme,
RSEG.licno,
RSEG.zeile,
RSEG.sgt_scat,
RSEG.wrf_charstc1,
RSEG.wrf_charstc2,
RSEG.wrf_charstc3,
RBCO.anln1,
RBCO.anln2,
RBCO.aplzl,
RBCO.aufnr,
RBCO.dabrz,
RBCO.fipos,
RBCO.fistl,
RBCO.fkber,
RBCO.geber,
RBCO.grant_nbr,
RBCO.gsber,
RBCO.imkey,
RBCO.kokrs,
RBCO.kostl,
RBCO.kstrg,
RBCO.paobjnr,
RBCO.prctr,
RBCO.ps_psp_pnr,
RBCO.recid,
RBCO.saknr,
RBCO.vbeln,
RBCO.vbelp,
RBCO.vptnr,
-- RBCO.zzspreg,
-- RBCO.zzbuspartn,
-- RBCO.zzproduct,
-- RBCO.zzloca,
-- RBCO.zzchan,
-- RBCO.zzlob,
-- RBCO.zznfal,
-- RBCO.zzuserfld1,
-- RBCO.zzuserfld2,
-- RBCO.zzuserfld3,
-- RBCO.zzregion,
-- RBCO.zzstate,
RBCO.xunpl,
RBCO.lstar,
RBCO.prznr,
RBCO.aufpl,
RBCO.bzdat,
RBCO.bnkan_fw,
RBCO.xnegp,
RBCO.erlkz,
RBCO.fikrs,
RBCO.kblnr,
RBCO.kblpos,
RBCO.pargb,
RBCO.pernr,
RBCO.nplnr,
RBCO.vornr,
RBCO.zuonr,
RBCO.mwart,
RBCO.fwbas,
RBCO.hwbas,
RBCO.abper,
RBCO.ledat,
RBCO.menge_f,
RBCO.bpmng_f,
RBCO.budget_pd,
RBCO.measure,
RBCO.fmfgus_key,
RBCO.koart,
RBCO.aa_final_ind,
RBCO.aa_final_qty,
RBCO.aa_final_qty_f,
RBCO.parked_qty,
RBCO.parked_qty_f,
COALESCE(RSEG.mandt, RBCO.mandt) AS mandt,
COALESCE(RSEG.belnr, RBCO.belnr) AS belnr,
COALESCE(RSEG.gjahr, RBCO.gjahr) AS gjahr,
COALESCE(RSEG.buzei, RBCO.buzei) AS buzei,
COALESCE(RSEG.zekkn, RBCO.zekkn) AS zekkn,
COALESCE(RSEG.bukrs, RBCO.bukrs) AS bukrs,
COALESCE(RSEG.werks, RBCO.werks) AS werks,
COALESCE(RSEG.wrbtr, RBCO.wrbtr) AS wrbtr,
COALESCE(RSEG.shkzg, RBCO.shkzg) AS shkzg,
COALESCE(RSEG.mwskz, RBCO.mwskz) AS mwskz,
COALESCE(RSEG.txjcd, RBCO.txjcd) AS txjcd,
COALESCE(RSEG.menge, RBCO.menge) AS menge,
COALESCE(RSEG.bpmng, RBCO.bpmng) AS bpmng,
COALESCE(RSEG.meins, RBCO.meins) AS meins,
COALESCE(RSEG.spgrs, RBCO.spgrs) AS spgrs,
COALESCE(RSEG.sgtxt, RBCO.sgtxt) AS sgtxt,
COALESCE(RSEG.xskrl, RBCO.xskrl) AS xskrl
FROM
RSEG
FULL OUTER JOIN
RBCO
ON
RSEG.mandt = RBCO.mandt
AND RSEG.belnr = RBCO.belnr
AND RSEG.gjahr = RBCO.gjahr
AND RSEG.buzei = RBCO.buzei
)
SELECT
-- Primary Key
RBKP.mandt AS Client_MANDT,
RBKP.gjahr AS FiscalYear_GJAHR,
RBKP.belnr AS InvoiceDocNum_BELNR,
RSEG_RBCO.buzei AS InvoiceDocLineNum_BUZEI,
RSEG_RBCO.cobl_nr AS InvoiceDocAssignmentNum_COBL_NR,
RBKP.blart AS Documenttype_BLART,
RBKP.bldat AS DocumentDate_BLDAT,
RBKP.budat AS PostingDate_BUDAT,
RBKP.usnam AS UserName_USNAM,
RBKP.tcode AS TransactionCode_TCODE,
RBKP.cpudt AS EnteredOn_CPUDT,
RBKP.cputm AS Enteredat_CPUTM,
RBKP.vgart AS TransactnType_VGART,
RBKP.xblnr AS Reference_XBLNR,
RBKP.lifnr AS InvoicingParty_LIFNR,
RBKP.waers AS Currency_WAERS,
RBKP.kursf AS Exchangerate_KURSF,
RBKP.rmwwr AS GrossInvAmnt_RMWWR,
RBKP.beznk AS UnplDelCsts_BEZNK,
RBKP.wmwst1 AS ValueAddedTax_WMWST1,
RBKP.mwskz1 AS TaxCode_MWSKZ1,
RBKP.wmwst2 AS notinuse_WMWST2,
RBKP.mwskz2 AS notinuse_MWSKZ2,
RBKP.zterm AS Paytterms_ZTERM,
RBKP.zbd1t AS Days1_ZBD1T,
RBKP.zbd1p AS Discpercent1_ZBD1P,
RBKP.zbd2t AS Days2_ZBD2T,
RBKP.zbd2p AS Discpercent2_ZBD2P,
RBKP.zbd3t AS DaysNet_ZBD3T,
RBKP.wskto AS CDAmount_WSKTO,
RBKP.xrech AS Invoice_XRECH,
RBKP.bktxt AS DocHeaderText_BKTXT,
RBKP.saprl AS SAPRelease_SAPRL,
RBKP.logsys AS Logicalsystem_LOGSYS,
RBKP.xmwst AS CalculateTax_XMWST,
RBKP.stblg AS Reversedby_STBLG,
RBKP.stjah AS Year_STJAH,
RBKP.mwskz_bnk AS TaxCode_MWSKZ_BNK,
RBKP.txjcd_bnk AS TaxJur_TXJCD_BNK,
RBKP.ivtyp AS IVcategory_IVTYP,
RBKP.xrbtx AS Sevtaxcodes_XRBTX,
RBKP.repart AS InvVerType_REPART,
RBKP.rbstat AS Invstatus_RBSTAT,
RBKP.knumve AS DocCondition_KNUMVE,
RBKP.knumvl AS SupplierCond_KNUMVL,
RBKP.arkuen AS Invreduction_ARKUEN,
RBKP.arkuemw AS TaxInvRed_ARKUEMW,
RBKP.makzn AS ManAccpdNetAmnt_MAKZN,
RBKP.makzmw AS Taxaccptdman_MAKZMW,
RBKP.lieffn AS SuppErrornet_LIEFFN,
RBKP.lieffmw AS TaxSuppError_LIEFFMW,
RBKP.xautakz AS Autoaccepted_XAUTAKZ,
RBKP.esrnr AS ISRnumber_ESRNR,
RBKP.esrpz AS Checkdigit_ESRPZ,
RBKP.esrre AS ISRQRRef_ESRRE,
RBKP.qsshb AS WTaxBase_QSSHB,
RBKP.qsfbt AS WTaxExempt_QSFBT,
RBKP.qsskz AS WTaxCode_QSSKZ,
RBKP.diekz AS ServiceInd_DIEKZ,
RBKP.landl AS SupplCntry_LANDL,
RBKP.lzbkz AS SCBInd_LZBKZ,
RBKP.txkrs AS RateforTaxes_TXKRS,
RBKP.ctxkrs AS TaxRateLC_CTXKRS,
RBKP.empfb AS Payer_EMPFB,
RBKP.bvtyp AS Partbanktype_BVTYP,
RBKP.hbkid AS Housebank_HBKID,
RBKP.zuonr AS Assignment_ZUONR,
RBKP.zlspr AS Pmntblock_ZLSPR,
RBKP.zlsch AS PymtMeth_ZLSCH,
RBKP.zfbdt AS BaselineDate_ZFBDT,
RBKP.kidno AS PaymentRef_KIDNO,
RBKP.rebzg AS InRRefno_REBZG,
RBKP.rebzj AS FiscalYear_REBZJ,
RBKP.xinve AS InvestID_XINVE,
RBKP.egmld AS ReportingCntry_EGMLD,
RBKP.xegdr AS EUTriangDeal_XEGDR,
RBKP.vatdate AS TaxReportingDate_VATDATE,
RBKP.hkont AS GLAcct_HKONT,
RBKP.j_1bnftype AS NFtype_J_1BNFTYPE,
RBKP.brnch AS Branchnumber_BRNCH,
RBKP.erfpr AS EntryProfile_ERFPR,
RBKP.secco AS SectionCode_SECCO,
RBKP.name1 AS Name_NAME1,
RBKP.name2 AS Name2_NAME2,
RBKP.name3 AS Name3_NAME3,
RBKP.name4 AS Name4_NAME4,
RBKP.pstlz AS PostalCode_PSTLZ,
RBKP.ort01 AS City_ORT01,
RBKP.land1 AS Country_LAND1,
RBKP.stras AS Street_STRAS,
RBKP.pfach AS POBox_PFACH,
RBKP.pstl2 AS POBoxPCode_PSTL2,
RBKP.pskto AS Postbankno_PSKTO,
RBKP.bankn AS BankAccount_BANKN,
RBKP.bankl AS Banknumber_BANKL,
RBKP.banks AS BankCountry_BANKS,
RBKP.stcd1 AS TaxNumber1_STCD1,
RBKP.stcd2 AS TaxNumber2_STCD2,
RBKP.stkzu AS LiableforVAT_STKZU,
RBKP.stkza AS Equalizatntax_STKZA,
RBKP.regio AS Region_REGIO,
RBKP.bkont AS Controlkey_BKONT,
RBKP.dtaws AS Instructionkey_DTAWS,
RBKP.dtams AS DMEindicator_DTAMS,
RBKP.spras AS CHAR1_SPRAS,
RBKP.xcpdk AS Onetimeacct_XCPDK,
RBKP.empfg AS Pmntrecipient_EMPFG,
RBKP.fityp AS Taxtype_FITYP,
RBKP.stcdt AS Taxnumbertype_STCDT,
RBKP.stkzn AS Naturalperson_STKZN,
RBKP.stcd3 AS TaxNumber3_STCD3,
RBKP.stcd4 AS TaxNumber4_STCD4,
RBKP.bkref AS Reference_BKREF,
RBKP.j_1kfrepre AS RepsName_J_1KFREPRE,
RBKP.j_1kftbus AS TypeofBusiness_J_1KFTBUS,
RBKP.j_1kftind AS TypeofIndustry_J_1KFTIND,
RBKP.anred AS Title_ANRED,
RBKP.stceg AS VATRegNo_STCEG,
RBKP.ername AS Createdby_ERNAME,
RBKP.reindat AS Invrecptdate_REINDAT,
RBKP.uzawe AS Pmtmethsupl_UZAWE,
RBKP.fdlev AS PlanningLevel_FDLEV,
RBKP.fdtag AS PlanningDate_FDTAG,
RBKP.zbfix AS Fixed_ZBFIX,
RBKP.frgkz AS ReleaseInd_FRGKZ,
RBKP.erfnam AS EnteredBy_ERFNAM,
RBKP.bupla AS Businessplace_BUPLA,
RBKP.filkd AS Branch_FILKD,
RBKP.lotkz AS LotNo_LOTKZ,
RBKP.sgtxt AS Text_SGTXT,
RBKP.inv_tran AS Transaction_INV_TRAN,
RBKP.prepay_status AS PrepaymentStatus_PREPAY_STATUS,
RBKP.prepay_awkey AS InvoiceNumber_PREPAY_AWKEY,
RBKP.assign_status AS AssignmTest_ASSIGN_STATUS,
RBKP.assign_next_date AS NextAssignment_ASSIGN_NEXT_DATE,
RBKP.assign_end_date AS AssignmentEnd_ASSIGN_END_DATE,
RBKP.copy_by_belnr AS OriginalInvoice_COPY_BY_BELNR,
RBKP.copy_by_year AS FiscalYear_COPY_BY_YEAR,
RBKP.copy_to_belnr AS CopiedInvoice_COPY_TO_BELNR,
RBKP.copy_to_year AS FYearInvCopy_COPY_TO_YEAR,
RBKP.copy_user AS CreatorofCopy_COPY_USER,
RBKP.kursx AS ExchangeRate_KURSX,
RBKP.wwert AS Translationdte_WWERT,
RBKP.xref3 AS Referencekey3_XREF3,
RBKP.j_1tpbupl AS BranchCode_J_1TPBUPL,
RSEG_RBCO.ebeln AS PoNum_EBELN,
RSEG_RBCO.ebelp AS PoLineNum_EBELP,
RSEG_RBCO.zekkn AS PoAssignmentNum_ZEKKN,
RSEG_RBCO.matnr AS MaterialNumber_MATNR,
RSEG_RBCO.bwkey AS ValuationArea_BWKEY,
RSEG_RBCO.bwtar AS ValuationType_BWTAR,
RSEG_RBCO.bstme AS PoUOM_BSTME,
RSEG_RBCO.bprme AS OrderPriceUnit_BPRME,
RSEG_RBCO.lbkum AS TotalValuatedStock_LBKUM,
RSEG_RBCO.vrkum AS TotalValuatedStockPreviousPeriod_VRKUM,
RSEG_RBCO.pstyp AS PoItemCategory_PSTYP,
RSEG_RBCO.knttp AS AccountAssignmentCategory_KNTTP,
RSEG_RBCO.bklas AS ValuationClass_BKLAS,
RSEG_RBCO.erekz AS IndicatorFinalInvoice_EREKZ,
RSEG_RBCO.exkbe AS IndicatorUpdateEKBE_EXKBE,
RSEG_RBCO.xekbz AS IndicatorUpdatePurchaseOrderDeliveryCosts_XEKBZ,
RSEG_RBCO.tbtkz AS IndicatorSubsequentDebitCredit_TBTKZ,
RSEG_RBCO.spgrp AS BlockingReasonPrice_SPGRP,
RSEG_RBCO.spgrm AS BlockingReasonQuantity_SPGRM,
RSEG_RBCO.spgrt AS BlockingReasonDate_SPGRT,
RSEG_RBCO.spgrg AS BlockingReasonOrderPriceQuantity_SPGRG,
RSEG_RBCO.spgrv AS BlockingReasonProjectBudget_SPGRV,
RSEG_RBCO.spgrq AS ManualBlockingReason_SPGRQ,
RSEG_RBCO.spgrc AS BlockingReasonQuality_SPGRC,
RSEG_RBCO.spgrext AS BlockingReasonEnhancementFields_SPGREXT,
RSEG_RBCO.bustw AS PostingStringforValues_BUSTW,
RSEG_RBCO.xblnr AS ReferenceDocumentNumber_XBLNR,
RSEG_RBCO.xrueb AS IndicatorDocumentIsPostedPreviousPeriod_XRUEB,
RSEG_RBCO.bnkan AS DeliveryCostsItemSplit_BNKAN,
RSEG_RBCO.kschl AS Conditiontype_KSCHL,
RSEG_RBCO.salk3 AS TotalValuatedStockValue_SALK3,
RSEG_RBCO.vmsal AS TotalValuatedStockPreviousPeriodValue_VMSAL,
RSEG_RBCO.xlifo AS LIFOFIFO_XLIFO,
RSEG_RBCO.lfbnr AS ReferenceDoc_LFBNR,
RSEG_RBCO.lfgja AS FiscalYearofCurrentPeriod_LFGJA,
RSEG_RBCO.lfpos AS ReferenceDocLineNum_LFPOS,
RSEG_RBCO.matbf AS MaterialinRespectofWhichStockisManaged_MATBF,
RSEG_RBCO.rbmng AS QuantityInvoicedinSupplierInvoiceinPOOrderUnits_RBMNG,
RSEG_RBCO.bprbm AS QuantityInvoicedinSupplierInvoiceinPOPriceUnits_BPRBM,
RSEG_RBCO.lfehl AS TypeofSupplierError_LFEHL,
RSEG_RBCO.gricd AS GrossIncomeTaxActivityCode_GRICD,
RSEG_RBCO.grirg AS Region_GRIRG,
RSEG_RBCO.gityp AS DistributionTypeforEmploymentTax_GITYP,
RSEG_RBCO.packno AS PackageNumberofService_PACKNO,
RSEG_RBCO.introw AS LineNumberofService_INTROW,
RSEG_RBCO.kzmek AS Correctionindicator_KZMEK,
RSEG_RBCO.mrmok AS IndicatorInvoiceItemProcessed_MRMOK,
RSEG_RBCO.stunr AS StepNumber_STUNR,
RSEG_RBCO.zaehk AS ConditionCounter_ZAEHK,
RSEG_RBCO.stock_posting AS StockPostingofLinefromanIncomingInvoice_STOCK_POSTING,
RSEG_RBCO.stock_posting_pp AS StockPostingPrevPeriod_STOCK_POSTING_PP,
RSEG_RBCO.stock_posting_py AS StockPostingPrevYear_STOCK_POSTING_PY,
RSEG_RBCO.werec AS ClearingIndicatorGRIRPosting_WEREC,
RSEG_RBCO.lifnr AS AccountNumber_LIFNR,
RSEG_RBCO.frbnr AS BillOfLading_FRBNR,
RSEG_RBCO.xhistma AS UpdateMultipleAccountAssignment_XHISTMA,
RSEG_RBCO.complaint_reason AS ComplaintsReason_COMPLAINT_REASON,
RSEG_RBCO.retpc AS RetentionPercent_RETPC,
RSEG_RBCO.retduedt AS RetentionDueDate_RETDUEDT,
RSEG_RBCO.xrettaxnet AS RetentionTaxReduction_XRETTAXNET,
RSEG_RBCO.re_account AS CashLedgerAccount_RE_ACCOUNT,
RSEG_RBCO.erp_contract_id AS PrincipalPurchaseAgreementNum_ERP_CONTRACT_ID,
RSEG_RBCO.erp_contract_itm AS PrincipalPurchaseAgreementItemNum_ERP_CONTRACT_ITM,
RSEG_RBCO.srm_contract_id AS CentralContractNum_SRM_CONTRACT_ID,
RSEG_RBCO.srm_contract_itm AS CentralContractItemNumber_SRM_CONTRACT_ITM,
RSEG_RBCO.cont_pstyp AS PoItemCategory2_CONT_PSTYP,
RSEG_RBCO.srvmapkey AS eSOAKey_SRVMAPKEY,
RSEG_RBCO.charg AS BatchNumber_CHARG,
RSEG_RBCO.inv_itm_origin AS InvoiceItemOrigin_INV_ITM_ORIGIN,
RSEG_RBCO.invrel AS GroupingCharacteristic_INVREL,
RSEG_RBCO.xdinv AS IndicatorInvoicingDifferential_XDINV,
RSEG_RBCO.xcprf AS IndicatorCommodityRepricing_XCPRF,
RSEG_RBCO.fsh_season_year AS SeasonYear_FSH_SEASON_YEAR,
RSEG_RBCO.fsh_season AS Season_FSH_SEASON,
RSEG_RBCO.fsh_collection AS FashionCollection_FSH_COLLECTION,
RSEG_RBCO.fsh_theme AS FashionTheme_FSH_THEME,
RSEG_RBCO.licno AS InternalLicenseNumber_LICNO,
RSEG_RBCO.zeile AS ItemNumber_ZEILE,
RSEG_RBCO.sgt_scat AS StockSegment_SGT_SCAT,
RSEG_RBCO.wrf_charstc1 AS CharacteristicValue1_WRF_CHARSTC1,
RSEG_RBCO.wrf_charstc2 AS CharacteristicValue2_WRF_CHARSTC2,
RSEG_RBCO.wrf_charstc3 AS CharacteristicValue3_WRF_CHARSTC3,
RSEG_RBCO.anln1 AS MainAssetNumber_ANLN1,
RSEG_RBCO.anln2 AS AssetSubnumber_ANLN2,
RSEG_RBCO.aplzl AS RoutingNumber_APLZL,
RSEG_RBCO.aufnr AS OrderNumber_AUFNR,
RSEG_RBCO.dabrz AS SettlementReferenceDate_DABRZ,
RSEG_RBCO.fipos AS CommitmentItem_FIPOS,
RSEG_RBCO.fistl AS FundsCenter_FISTL,
RSEG_RBCO.fkber AS FunctionalArea_FKBER,
RSEG_RBCO.geber AS Fund_GEBER,
RSEG_RBCO.grant_nbr AS Grant_GRANT_NBR,
RSEG_RBCO.imkey AS RealEstateObjectKey_IMKEY,
RSEG_RBCO.kokrs AS ControllingArea_KOKRS,
RSEG_RBCO.kostl AS CostCenter_KOSTL,
RSEG_RBCO.kstrg AS CostObject_KSTRG,
RSEG_RBCO.paobjnr AS ProfitabilitySegmentNumber_PAOBJNR,
RSEG_RBCO.prctr AS ProfitCenter_PRCTR,
RSEG_RBCO.ps_psp_pnr AS WbsElement_PS_PSP_PNR,
RSEG_RBCO.recid AS RulesforIssuinganInvoice_RECID,
RSEG_RBCO.saknr AS GlAccount_SAKNR,
RSEG_RBCO.vbeln AS SalesDocNum_VBELN,
RSEG_RBCO.vbelp AS SalesDocLineNum_VBELP,
RSEG_RBCO.vptnr AS PartnerAccountNum_VPTNR,
RSEG_RBCO.xunpl AS UnplannedAccountAssignment_XUNPL,
RSEG_RBCO.lstar AS ActivityType_LSTAR,
RSEG_RBCO.prznr AS BusinessProcess_PRZNR,
RSEG_RBCO.aufpl AS Routingnumberofoperationsintheorder_AUFPL,
RSEG_RBCO.bzdat AS AssetValueDate_BZDAT,
RSEG_RBCO.xnegp AS IndicatorNegativePosting_XNEGP,
RSEG_RBCO.erlkz AS UsedEarmarkedFunds_ERLKZ,
RSEG_RBCO.fikrs AS FinancialManagementArea_FIKRS,
RSEG_RBCO.kblnr AS EarmarkedFundsDocumentNum_KBLNR,
RSEG_RBCO.kblpos AS EarmarkedFundsDocumentItemNum_KBLPOS,
RSEG_RBCO.pargb AS Tradingpartner_PARGB,
RSEG_RBCO.pernr AS PersonnelNumber_PERNR,
RSEG_RBCO.nplnr AS NetworkNumberAccountAssignment_NPLNR,
RSEG_RBCO.vornr AS OperationActivityNumber_VORNR,
RSEG_RBCO.zuonr AS Assignmentnumber_ZUONR,
RSEG_RBCO.mwart AS TaxType_MWART,
RSEG_RBCO.hwbas AS TaxBaseLocalCurrencyAmount_HWBAS,
RSEG_RBCO.abper AS SettlementPeriod_ABPER,
RSEG_RBCO.ledat AS DeliveryCreationDate_LEDAT,
RSEG_RBCO.menge_f AS Quantity_MENGE_F,
RSEG_RBCO.bpmng_f AS QuantityPOPriceUnit_BPMNG_F,
RSEG_RBCO.budget_pd AS BudgetPeriod_BUDGET_PD,
RSEG_RBCO.measure AS FundedProgram_MEASURE,
RSEG_RBCO.fmfgus_key AS UnitedStatesFederalGovernmentFields_FMFGUS_KEY,
RSEG_RBCO.koart AS Accounttype_KOART,
RSEG_RBCO.aa_final_ind AS FinalAccountAssignmentIndicator_AA_FINAL_IND,
RSEG_RBCO.aa_final_qty AS FinalAccountAssignmentQuantity_AA_FINAL_QTY,
RSEG_RBCO.aa_final_qty_f AS FinalAccountAssignmentQuantityFloat_AA_FINAL_QTY_F,
RSEG_RBCO.parked_qty AS ParkedInvoiceQuantity_PARKED_QTY,
RSEG_RBCO.parked_qty_f AS ParkedInvoiceQuantityFloat_PARKED_QTY_F,
RSEG_RBCO.werks AS Plant_WERKS,
RSEG_RBCO.shkzg AS DebitCreditIndicator_SHKZG,
RSEG_RBCO.mwskz AS Taxonsalespurchasescode_MWSKZ,
RSEG_RBCO.txjcd AS TaxJurisdiction_TXJCD,
RSEG_RBCO.menge AS Quantity_MENGE,
RSEG_RBCO.bpmng AS QuantityinPurchaseOrderPriceUnit_BPMNG,
RSEG_RBCO.meins AS BaseUnitofMeasure_MEINS,
RSEG_RBCO.spgrs AS BlockingReasonItemAmount_SPGRS,
RSEG_RBCO.sgtxt AS ItemText_SGTXT,
RSEG_RBCO.xskrl AS IndicatorLineItemCashDiscountNotLiable_XSKRL,
--##CORTEX-CUSTOMER Consider adding other dimensions from the calendar_date_dim table as per your requirement
CalendarDateDimension_BUDAT.CalYear AS YearOfPostingDate_BUDAT,
CalendarDateDimension_BUDAT.CalMonth AS MonthOfPostingDate_BUDAT,
CalendarDateDimension_BUDAT.CalWeek AS WeekOfPostingDate_BUDAT,
CalendarDateDimension_BUDAT.CalQuarter AS QuarterOfPostingDate_BUDAT,
CalendarDateDimension_BLDAT.CalYear AS YearOfDocumentDate_BLDAT,
CalendarDateDimension_BLDAT.CalMonth AS MonthOfDocumentDate_BLDAT,
CalendarDateDimension_BLDAT.CalWeek AS WeekOfDocumentDate_BLDAT,
CalendarDateDimension_BLDAT.CalQuarter AS QuarterOfDocumentDate_BLDAT,
PRPS.posid AS WbsElement_POSID,
COALESCE(RBKP.bukrs, RSEG_RBCO.bukrs) AS CompanyCode_BUKRS,
COALESCE(RBKP.gsber, RSEG_RBCO.gsber) AS BusinessArea_GSBER,
COALESCE(RSEG_RBCO.rbwwr * TCURX_WAER.currfix, RSEG_RBCO.rbwwr) AS InvoiceAmountinDocumentCurrencyofSupplierInvoice_RBWWR,
COALESCE(RSEG_RBCO.retamt_fc * TCURX_WAER.currfix, RSEG_RBCO.retamt_fc) AS RetentionAmount_RETAMT_FC,
COALESCE(RSEG_RBCO.diff_amount * TCURX_WAER.currfix, RSEG_RBCO.diff_amount) AS DifferenceAmount_DIFF_AMOUNT,
COALESCE(RSEG_RBCO.bnkan_fw * TCURX_WAER.currfix, RSEG_RBCO.bnkan_fw) AS DeliveryCostsDistributionAmount_BNKAN_FW,
COALESCE(RSEG_RBCO.fwbas * TCURX_WAER.currfix, RSEG_RBCO.fwbas) AS TaxBaseAmount_FWBAS,
COALESCE(RSEG_RBCO.wrbtr * TCURX_WAER.currfix, RSEG_RBCO.wrbtr) AS AmountinDocumentCurrency_WRBTR
FROM RSEG_RBCO
INNER JOIN `{{ project_id_src }}.{{ dataset_cdc_processed_ecc }}.rbkp` AS RBKP
ON RSEG_RBCO.mandt = RBKP.mandt
AND RSEG_RBCO.belnr = RBKP.belnr
AND RSEG_RBCO.gjahr = RBKP.gjahr
LEFT JOIN `{{ project_id_src }}.{{ dataset_cdc_processed_ecc }}.prps` AS PRPS
ON RSEG_RBCO.mandt = PRPS.mandt
AND RSEG_RBCO.ps_psp_pnr = PRPS.pspnr
-- Joining to this table(currency_decimal) is necesssary to fix the decimal place of
-- amounts for non-decimal-based currencies. SAP stores these amounts
-- offset by a factor of 1/100 within the system (FYI this gets
-- corrected when a user observes these in the GUI) Currencies w/
-- decimals are unimpacted.
-- Example of impacted currencies JPY, IDR, KRW, TWD
-- Example of non-impacted currencies USD, GBP, EUR
-- Example 1,000 JPY will appear as 10.00 JPY
LEFT JOIN `{{ project_id_tgt }}.{{ dataset_reporting_tgt }}.currency_decimal` AS TCURX_WAER
ON RBKP.waers = TCURX_WAER.currkey
LEFT JOIN `{{ project_id_src }}.{{ k9_datasets_processing }}.calendar_date_dim` AS CalendarDateDimension_BUDAT
ON CalendarDateDimension_BUDAT.Date = RBKP.budat
LEFT JOIN `{{ project_id_src }}.{{ k9_datasets_processing }}.calendar_date_dim` AS CalendarDateDimension_BLDAT
ON CalendarDateDimension_BLDAT.Date = RBKP.bldat