@AbapCatalog.sqlViewName: 'PSRTAXRETBOX'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
//@EndUserText.label: 'Private view to return Tax Details with TaxBox config'
@VDM.viewType: #COMPOSITE
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.usageType.sizeCategory: #XL
@ObjectModel.usageType.serviceQuality: #X
@ObjectModel.usageType.dataClass: #MIXED
@AccessControl.personalData.blocking: #NOT_REQUIRED
@VDM.private: true
@AccessControl.blocking:#BLOCKED_DATA_INCLUDED
define view P_StRpTaxReturnBox
as select distinct from P_StRpTaxReturn
left outer join P_ConditionsItem on P_StRpTaxReturn.ConditionRecord = P_ConditionsItem.ConditionRecord
and P_StRpTaxReturn.TaxAmountInCoCodeCrcy <> 0
and P_ConditionsItem.SequentialNumber = '01'
left outer join I_BillingDocument on P_StRpTaxReturn.OriginalReferenceDocument = I_BillingDocument.BillingDocument
and P_StRpTaxReturn.ReferenceDocumentType = 'VBRK'
and P_StRpTaxReturn.FinancialAccountType is null
left outer join P_CountCountry on P_StRpTaxReturn.CompanyCode = P_CountCountry.CompanyCode
and P_StRpTaxReturn.AccountingDocument = P_CountCountry.AccountingDocument
and P_StRpTaxReturn.FiscalYear = P_CountCountry.FiscalYear
and P_StRpTaxReturn.ReportingDate = P_CountCountry.ReportingDate
left outer join P_GetNonDeductibleDocItem as _GetNVV on P_StRpTaxReturn.CompanyCode = _GetNVV.CompanyCode
and P_StRpTaxReturn.AccountingDocument = _GetNVV.AccountingDocument
and P_StRpTaxReturn.FiscalYear = _GetNVV.FiscalYear
and P_StRpTaxReturn.TaxCode = _GetNVV.TaxCode
and P_StRpTaxReturn.StatryRptCategory = _GetNVV.StatryRptCategory
and P_StRpTaxReturn.StatryRptgEntity = _GetNVV.StatryRptgEntity
and P_StRpTaxReturn.StatryRptRunID = _GetNVV.StatryRptRunID
and P_StRpTaxReturn.ReportingDate = _GetNVV.ReportingDate
{
key P_StRpTaxReturn.CompanyCode,
key P_StRpTaxReturn.AccountingDocument,
key P_StRpTaxReturn.FiscalYear,
key P_StRpTaxReturn.TaxItem,
key P_StRpTaxReturn.TaxCode,
key P_StRpTaxReturn.TransactionTypeDetermination,
key _ReportedItemsLog.StatryRptgEntity,
key _ReportedItemsLog.StatryRptCategory,
key _ReportedItemsLog.StatryRptRunID,
P_StRpTaxReturn.DebitCreditCode,
TaxCalculationProcedure,
@DefaultAggregation:#MIN
P_StRpTaxReturn.TaxRate,
case
when P_StRpTaxReturn.TransactionTypeDetermination = 'ESE' and ( P_StRpTaxReturn.TaxRate = 100.00 or P_StRpTaxReturn.TaxRate = -100.00 )
then
cast(cast(-_NegCharge.TaxRate as abap.dec(11,2)) as char16) // cast(-_NegCharge.TaxRate as char16) //AFLE Changes
when P_StRpTaxReturn.TransactionTypeDetermination = 'ESA' and ( P_StRpTaxReturn.TaxRate = 100.00 or P_StRpTaxReturn.TaxRate = -100.00 )
then
cast(cast(-P_StRpTaxReturn.TaxRate as abap.dec(11,2)) as char16) // (-TaxRate as char16) //AFLE Changes
else
case
when _GetNVV.AccountingDocument is not null or _GetNVV.AccountingDocument <> ''
then cast(cast(_GetNVV.TaxRate + P_StRpTaxReturn.TaxRate as abap.dec(11,2)) as char16)
else
case
when P_StRpTaxReturn.TaxRate < 0 then
cast(cast(-P_StRpTaxReturn.TaxRate as abap.dec(11,2)) as char16) // (TaxRate as char16) //AFLE Changes
else
cast(cast(P_StRpTaxReturn.TaxRate as abap.dec(11,2)) as char16)
end
end
end as IPITaxRate,
@DefaultAggregation:#SUM
P_StRpTaxReturn.TaxRate as AdditionalTax1Rate,
@DefaultAggregation:#MIN
P_ConditionsItem.ConditionAmount,
case
when P_StRpTaxReturn.Customer <> '' and P_StRpTaxReturn.Customer <> ' '
then P_StRpTaxReturn.Customer
else I_BillingDocument.PayerParty
end as Customer,
GLAccount,
TaxItemGroup,
BusinessPlace,
TaxJurisdiction,
LowestLevelTaxJurisdiction,
P_StRpTaxReturn.AccountingDocumentType,
ReferenceDocumentType,
ReverseDocument,
ReverseDocumentFiscalYear,
P_StRpTaxReturn.ConditionRecord,
RoundingDecimalPlaces,
P_StRpTaxReturn.DocumentReferenceID,
Ledger,
LedgerGroup,
PostingDate,
DocumentDate,
TaxReportingDate,
P_StRpTaxReturn.ReportingDate,
P_StRpTaxReturn.FiscalPeriod,
@DefaultAggregation:#MIN
ExchangeRate,
IsReversal,
IsReversed,
AccountingDocumentHeaderText,
CompanyCodeCountry,
ReportingCountry,
TaxReturnCountry,
TaxCountry,
@Semantics.currencyCode:true
CompanyCodeCurrency,
@Semantics.currencyCode:true
CountryCurrency,
@Semantics.currencyCode:true
DocumentCurrency,
@Semantics.currencyCode:true
ReportingCurrency,
@Semantics.currencyCode: true
AdditionalCurrency1,
@Semantics.currencyCode: true
AdditionalCurrency2,
@DefaultAggregation:#SUM
@Semantics.amount.currencyCode: 'ReportingCurrency'
TaxBaseAmountInRptgCrcy,
@DefaultAggregation:#SUM
@Semantics.amount.currencyCode: 'ReportingCurrency'
TaxAmountInRptgCrcy,
@DefaultAggregation:#SUM
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
P_StRpTaxReturn.TaxBaseAmountInCoCodeCrcy,
@DefaultAggregation:#SUM
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
P_StRpTaxReturn.TaxAmountInCoCodeCrcy,
@DefaultAggregation:#SUM
@Semantics.amount.currencyCode: 'DocumentCurrency'
P_StRpTaxReturn.TaxBaseAmountInTransCrcy,
@DefaultAggregation:#SUM
@Semantics.amount.currencyCode: 'DocumentCurrency'
P_StRpTaxReturn.TaxAmount,
@DefaultAggregation:#SUM
@Semantics.amount.currencyCode: 'CountryCurrency'
TaxBaseAmountInCountryCrcy,
@DefaultAggregation:#SUM
@Semantics.amount.currencyCode: 'CountryCurrency'
TaxAmountInCountryCrcy,
@DefaultAggregation:#SUM
@Semantics.amount.currencyCode: 'AdditionalCurrency1'
TaxBaseAmtInAdditionalCrcy1,
@DefaultAggregation:#SUM
@Semantics.amount.currencyCode: 'AdditionalCurrency2'
TaxBaseAmtInAdditionalCrcy2,
@DefaultAggregation:#SUM
@Semantics.amount.currencyCode: 'AdditionalCurrency1'
TaxAmountInAdditionalCurrency1,
@DefaultAggregation:#SUM
@Semantics.amount.currencyCode: 'AdditionalCurrency2'
TaxAmountInAdditionalCurrency2,
@DefaultAggregation:#SUM
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
CalculatedTxAmtInCoCodeCrcy - P_StRpTaxReturn.TaxAmountInCoCodeCrcy as DifferenceTaxAmtInCoCodeCrcy,
/*@DefaultAggregation:#SUM
// @Semantics.amount.currencyCode: 'CompanyCodeCurrency'
case
when P_StRpTaxReturn.TaxAmountInCoCodeCrcy <> 0
then
( div ( (CalculatedTxAmtInCoCodeCrcy - P_StRpTaxReturn.TaxAmountInCoCodeCrcy ), P_StRpTaxReturn.TaxAmountInCoCodeCrcy ) ) * 100
else 0
end as CalculatedTaxDiffPercent, */ //need GFNC*************************Uncomment in next release************************************************************
@DefaultAggregation:#SUM
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
CalcdTxBaseAmtInCoCodeCrcy - P_StRpTaxReturn.TaxBaseAmountInCoCodeCrcy as DiffTaxBaseAmountInCoCodeCrcy,
@ObjectModel.text.association: '_TaxTypeText'
TaxType,
TargetTaxCode,
TaxNumber1,
TaxNumber2,
ActiveTaxType,
TaxNumber3,
NmbrOfChmlCmplncMktCountries,
@DefaultAggregation:#SUM
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
case
when _GetNVV.AccountingDocument is not null or _GetNVV.AccountingDocument <> ''
then
P_StRpTaxReturn.CalculatedTxAmtInCoCodeCrcy + _GetNVV.TaxAmountInCoCodeCrcy
else P_StRpTaxReturn.CalculatedTxAmtInCoCodeCrcy
end as CalculatedTxAmtInCoCodeCrcy,
@DefaultAggregation:#SUM
@Semantics.amount.currencyCode: 'DocumentCurrency'
case
when _GetNVV.AccountingDocument is not null or _GetNVV.AccountingDocument <> ''
then
P_StRpTaxReturn.CalculatedTaxAmountInTransCrcy + _GetNVV.TaxAmount
else P_StRpTaxReturn.CalculatedTaxAmountInTransCrcy
end as CalculatedTaxAmountInTransCrcy,
/*@DefaultAggregation:#SUM
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
CalcdTxBaseAmtInCoCodeCrcy + CalculatedTxAmtInCoCodeCrcy as TotalGrossAmountInCoCodeCrcy,
@DefaultAggregation:#SUM
@Semantics.amount.currencyCode: 'DocumentCurrency'
P_StRpTaxReturn.CalculatedTaxAmountInTransCrcy + CalculatedTxBaseAmtInTransCrcy as TotalGrossAmountInTransCrcy,*/
BusinessPartner,
@DefaultAggregation:#SUM
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
case
when P_StRpTaxReturn.TaxIsNotDeductible = 'X'
then 0
else
case
when P_StRpTaxReturn.TransactionTypeDetermination = 'ESE' and ( P_StRpTaxReturn.TaxRate = 100.00 or P_StRpTaxReturn.TaxRate = -100.00 )
then
case
when (( _NegCharge.TaxBaseAmountInCoCodeCrcy > 0 and CalculatedTxAmtInCoCodeCrcy < 0 ) or ( _NegCharge.TaxBaseAmountInCoCodeCrcy < 0 and CalculatedTxAmtInCoCodeCrcy > 0 ))
then
-_NegCharge.TaxBaseAmountInCoCodeCrcy
else
_NegCharge.TaxBaseAmountInCoCodeCrcy
end
else
case
when P_StRpTaxReturn.TransactionTypeDetermination = 'ESA'
then
case
when (( CalcdTxBaseAmtInCoCodeCrcy > 0 and CalculatedTxAmtInCoCodeCrcy < 0 ) or ( CalcdTxBaseAmtInCoCodeCrcy < 0 and CalculatedTxAmtInCoCodeCrcy > 0 ))
then
-CalcdTxBaseAmtInCoCodeCrcy
else
CalcdTxBaseAmtInCoCodeCrcy
end
else
case
when (( CalcdTxBaseAmtInCoCodeCrcy > 0 and CalculatedTxAmtInCoCodeCrcy < 0 ) or ( CalcdTxBaseAmtInCoCodeCrcy < 0 and CalculatedTxAmtInCoCodeCrcy > 0 ))
then
-CalcdTxBaseAmtInCoCodeCrcy
else
CalcdTxBaseAmtInCoCodeCrcy
end
end
end
end as
CalcdTxBaseAmtInCoCodeCrcy,
@DefaultAggregation:#SUM
@Semantics.amount.currencyCode: 'DocumentCurrency'
case
when P_StRpTaxReturn.TaxIsNotDeductible = 'X'
then 0
else
case
when P_StRpTaxReturn.TransactionTypeDetermination = 'ESE' and ( P_StRpTaxReturn.TaxRate = 100.00 or P_StRpTaxReturn.TaxRate = -100.00 )
then
case
when (( _NegCharge.TaxBaseAmountInTransCrcy > 0 and CalculatedTaxAmountInTransCrcy < 0 ) or ( _NegCharge.TaxBaseAmountInTransCrcy < 0 and CalculatedTaxAmountInTransCrcy > 0 ))
then
-_NegCharge.TaxBaseAmountInTransCrcy
else
_NegCharge.TaxBaseAmountInTransCrcy
end
else
case
when P_StRpTaxReturn.TransactionTypeDetermination = 'ESA'
then
case
when (( CalculatedTxBaseAmtInTransCrcy > 0 and CalculatedTaxAmountInTransCrcy < 0 ) or ( CalculatedTxBaseAmtInTransCrcy < 0 and CalculatedTaxAmountInTransCrcy > 0 ))
then
-CalculatedTxBaseAmtInTransCrcy
else
CalculatedTxBaseAmtInTransCrcy
end
else
case
when (( CalculatedTxBaseAmtInTransCrcy > 0 and CalculatedTaxAmountInTransCrcy < 0 ) or ( CalculatedTxBaseAmtInTransCrcy < 0 and CalculatedTaxAmountInTransCrcy > 0 ))
then
-CalculatedTxBaseAmtInTransCrcy
else
CalculatedTxBaseAmtInTransCrcy
end
end
end
end as
CalculatedTxBaseAmtInTransCrcy,
@DefaultAggregation:#SUM
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
case
when _GetNVV.AccountingDocument is not null or _GetNVV.AccountingDocument <> ''
then
_GetNVV.TaxAmountInCoCodeCrcy
else
0
end as NonDeductibleInputTaxAmount,
@DefaultAggregation:#SUM
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
cast (P_StRpTaxReturn.TaxAmountInCoCodeCrcy as deductible_amt) as DcblVATIncrdCostInRptgCrcy, //DeductibleAmount
BusinessPartnerName,
case
when ActiveTaxType = '01'
then 'Output Tax'
when ActiveTaxType = '02'
then 'Input Tax'
when ActiveTaxType = '03'
then 'Additional Tax'
when ActiveTaxType = '04'
then 'Output Deferred'
when ActiveTaxType = '05'
then 'Output MOSS'
when ActiveTaxType = '06'
then 'Input Deferred'
when ActiveTaxType = '07'
then 'Input MOSS'
end as TaxTypeName,
CustomerSupplierAddress,
P_StRpTaxReturn.TaxIsNotDeductible,
@DefaultAggregation:#SUM
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
case
when ActiveTaxType = '01'
then CalculatedTxAmtInCoCodeCrcy
when ActiveTaxType = '02'
then P_StRpTaxReturn.TaxAmountInCoCodeCrcy
end as BalanceAmountInTransacCurrency,
SupplierAccountGroup,
ConditionType,
_ReportingCurrency,
P_StRpTaxReturn._AccountingDocument,
_GLAccount,
_TaxJurisdiction,
_DebtorCreditorRblsPyblsItem,
_ReceivablesPayablesItem,
_TaxReceivablesPayablesItem,
_TaxTypeText,
_TaxCodeText,
_ReportedItemsLog
}
where
ItemRelevantForReporting = 'X' and ( P_StRpTaxReturn.TaxIsNotDeductible <>'X' )