@AbapCatalog.sqlViewName: 'V_FAP_TSI_INVC'
@AccessControl.authorizationCheck: #NOT_REQUIRED
@ClientHandling.algorithm: #SESSION_VARIABLE
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.usageType.serviceQuality: #X
@ObjectModel.usageType.sizeCategory: #XXL
@ObjectModel.usageType.dataClass: #MIXED
@AccessControl.personalData.blocking: #NOT_REQUIRED
define view FAP_TSI_INVC_entry as select from
TSI_INV_ALL_entry as bsik
inner join v_tsi_bsegs as bsis
on bsik.mandt = bsis.mandt
and bsis.bukrs = bsik.bukrs
and bsis.belnr = bsik.belnr
and bsis.gjahr = bsik.gjahr
inner join bkpf as bkpf
on bsik.mandt = bkpf.mandt
and bsik.bukrs = bkpf.bukrs
and bsik.belnr = bkpf.belnr
and bsik.gjahr = bkpf.gjahr
left outer join v_tsi_paid_amt as ostd
on bsik.mandt = ostd.mandt
and bsik.bukrs = ostd.bukrs
and bsik.belnr = ostd.belnr
and bsik.gjahr = ostd.gjahr
and bsik.buzei = ostd.buzei
left outer join v_tsi_contact as contact
on bkpf.mandt = contact.mandt
and bkpf.usnam = contact.bname
{
//COMPANYCODE
bsik.bukrs,
//INVOICENUMBER
bsik.belnr,
//INVOICEFISCALYEAR
bsik.gjahr,
//INVOICELINENUMBER
bsik.buzei as kbuzei,
//VENDORNUMBER
bsik.lifnr,
//VENDORNAME
bsik.name1,
//SCHEDULEDDATE
case bsik.laufd when '' then cast('00000000'as dats)
else cast(bsik.laufd as dats) end as laufd,
//BLOCKEDDATE
bkpf.aedat,//aedat,
//REASON
'' as reason,
//STATUSINDICATOR
cast(bsik.status as abap.char(1)) as STATUSINDICATOR,
//STATUSTEXT
case bsik.status
when '0' then 'Open'
when '1' then 'Scheduled'
when '2' then 'Blocked'
when '3' then 'Payment errors'
when '4' then 'Final approval'
when '6' then 'First approval'
else ''
end as STATUSTEXT,
//STATUSLEVEL
case bsik.status
when '0' then 'Success'
when '1' then 'Success'
when '2' then 'Error'
when '3' then 'Error'
when '4' then 'Success'
when '6' then 'Success'
else ''
end as STATUSLEVEL,
//PONUMBER
'' as PONUMBER,
//DOCUMENTDATE
bsik.h_bldat as bldat,//bldat,
//OVERDUEDAYS
case zbd3t when 0 then
case zbd2t when 0 then zbd1t else zbd2t end
else zbd3t end as OVERDUEDAYS,
//DUEDATE - Baselinedate
case bsik.zfbdt
when '00000000' then bsik.h_bldat
else bsik.zfbdt end as duedate,
//ISOVERDUE
'' as ISOVERDUE,
//INVOICEDESC
bsik.sgtxt,
//REFERENCEDOC
bkpf.xblnr,
//AMOUNTTOTAL
bsik.wrbtr,
//CURRENCY
bsik.h_waers as waers,
//AMOUNTTOTAL(LC )
bsik.dmbtr,
//LOCALCURRENCY
bkpf.hwaer as LOCALCURRENCY,
//AMOUNTPAID (in DC, to be replaced by LC if multi-currency )
ostd.paid_amt_dc as AMOUNTPAID,
//CURRENCYPAID (in DC, to be replaced by LC if multi-currency )
bsik.h_waers as CURRENCYPAID,
//CURRENCYOSTD (in LC, to be replaced by calculated OSTD currency )
bkpf.hwaer as CURRENCYOSTD,
//AMOUNTCRDT (paid amount in LC)
ostd.paid_amt_lc as AMOUNTCRDT,
//CURRENCYCRDT (always LC)
bkpf.hwaer as CURRENCYCRDT,
ostd.resdi as resdi,
//SEARCHTERM
'' as SEARCHTERM,
//SEARCHTYPE
'' as SEARCHTYPE,
//KOSTL, NOT DISPLAY, FOR SELECT
bsis.kostl,
bsik.h_budat as budat,
//CONTACT-Name
contact.name_first,
contact.name_last,
contact.bname,
contact.name1 as contact_company,
contact.country,
contact.city1,
contact.street,
contact.fax_number,
contact.fax_extens,
contact.tel_number,
contact.tel_extens,
contact.title,
contact.smtp_addr,
contact.persnumber,
contact.addrnumber,
bkpf.usnam,
bsik.busab,
bsik.zlspr,
bsik.batch_no,
bsik.poken,
//NO DISPLAY, FOR AUTHORIZATION CHECK
bsik.kbegru,
bsis.sbegru,
bsik.tbrgru,
bsis.gsber
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"TSI_INV_ALL_ENTRY",
"BKPF",
"V_TSI_BSEGS",
"V_TSI_CONTACT",
"V_TSI_PAID_AMT"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/