@AbapCatalog.sqlViewName: 'CCAINVOVWDOC_H'
@AbapCatalog.preserveKey: true
@AbapCatalog.compiler.compareFilter: true
@VDM.viewType: #CONSUMPTION
@ClientHandling.algorithm: #SESSION_VARIABLE
@AccessControl.personalData.blocking: #REQUIRED
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Fakturierungsbeleg Kopf'
@AccessControl.privilegedAssociations: [ '_CAInvcgUserContact' ]
@ObjectModel:{
usageType:{
serviceQuality: #D,
sizeCategory: #XL,
dataClass: #MIXED
},
semanticKey: ['CAInvoicingDocument']
}
@UI:{
headerInfo:{
typeName: 'Fakturierungsbeleg',
typeNamePlural: 'Fakturierungsbelege'
},
selectionVariant: [
{ text: 'Nichtstornierte Belege', qualifier: 'selvar_notrev', filter: 'CAInvcgReversalDocument eq null and CAInvcgReversedDocument eq null' },
{ text: 'Stornierte Belege', qualifier: 'selvar_reversed', filter: 'CAInvcgReversalDocument ne null and CAInvcgReversedDocument eq null' },
{ text: 'Stornobelege', qualifier: 'selvar_reversal', filter: 'CAInvcgReversalDocument eq null and CAInvcgReversedDocument ne null' },
{ text: 'Alle Belege', qualifier: 'selvar_all' }
],
presentationVariant.sortOrder: { by: 'CAInvcgCreationDateTime', direction: #DESC }
}
define view C_CAInvcgOvwInvcgDocHeader
as select from C_CAInvcgDocHeader as _CAInvcgDocHeader
// ADDITIONAL DATA
association [0..1] to I_ContractAccountPartner as _ContractAccountPartner on $projection.ContractAccount = _ContractAccountPartner.ContractAccount
and $projection.BusinessPartner = _ContractAccountPartner.BusinessPartner
association [0..1] to C_CAInvcgUserContact as _CAInvcgUserContact on $projection.CreatedByUser = _CAInvcgUserContact.ContactCardID
// extension
association [0..1] to E_CAInvcgDocHeader as _Extension on $projection.CAInvoicingDocument = _Extension.CAInvoicingDocument
{
//INVDOCNO
@UI.lineItem: { position: 10, importance: #HIGH, semanticObjectAction: 'display', label: 'Fakturierungsbeleg'}
@Consumption.semanticObject: 'CAInvoicingDocument'
@ObjectModel.filter.transformedBy: 'ABAP:CL_CINV_SADL_EXIT_INVDOC_DSP'
key _CAInvcgDocHeader.CAInvoicingDocument,
//EXBEL
_CAInvcgDocHeader.CAOfficialDocumentNumber,
//GPART
@Semantics: { name.fullName: true }
_BusinessPartner.FirstName,
@Semantics: { name.fullName: true }
_BusinessPartner.LastName,
// @UI.lineItem: { position: 20, importance: #HIGH, label: 'Geschäftspartnername'}
concat_with_space(_BusinessPartner.FirstName, _BusinessPartner.LastName,1) as BusinessPartnerFullName,
@EndUserText.label:'Straße'
concat_with_space(_BusinessPartner._CurrentDefaultAddress._StandardAddress.StreetName, _BusinessPartner._CurrentDefaultAddress._StandardAddress.HouseNumber, 1) as StreetName,
@EndUserText.label:'Stadt'
concat_with_space(_BusinessPartner._CurrentDefaultAddress._StandardAddress.PostalCode, _BusinessPartner._CurrentDefaultAddress._StandardAddress.CityName, 1) as AddressCityName,
_BusinessPartner._CurrentDefaultAddress._StandardAddress.Country,
@UI.lineItem: { position: 30, importance: #HIGH}
@Consumption.valueHelpDefinition: [{ entity: { name: 'C_CAContractPartnerValueHelp', element: 'BusinessPartner' }}]
@Consumption.semanticObject: 'CAContractPartner'
_CAInvcgDocHeader.BusinessPartner,
//VKONT
@UI.lineItem: { position: 40, importance: #HIGH, semanticObjectAction: 'displayInvoicingOverview'}
@Consumption.valueHelpDefinition: [{ entity: { name: 'C_ContractAccountValueHelp', element: 'ContractAccount' }}]
@Consumption.semanticObject: 'ContractAccount'
_CAInvcgDocHeader.ContractAccount,
_ContractAccountHeader.ContractAccountName,
//INV_TYPE
@UI.lineItem: { position: 50, importance: #HIGH}
@ObjectModel.text.element: 'CAInvcgTypeText'
_CAInvcgDocHeader.CAInvcgType,
//INVPERIOD
@UI.lineItem: { position: 60, importance: #HIGH}
_CAInvcgDocHeader.CAInvcgDocPeriodDate,
//BLDAT
@UI.lineItem: { position: 70, importance: #HIGH, criticality: 2}
@Consumption.filter.selectionType: #INTERVAL
_CAInvcgDocHeader.DocumentDate,
//Amount and Currency
_CAInvcgDocHeader.TransactionCurrency,
@UI.lineItem: { position: 80, importance: #HIGH}
_CAInvcgDocHeader.CAAmountInTransactionCurrency,
//INV_PROCESS
@ObjectModel.text.element: 'CAInvcgProcessText'
_CAInvcgDocHeader.CAInvcgProcess,
//DOCTYPE
@ObjectModel.text.element: 'CAInvcgDocumentTypeText'
_CAInvcgDocHeader.CAInvcgDocumentType,
//MAZAE
_CAInvcgDocHeader.CADunningCounter,
//CFCSIMULATED
_CAInvcgDocHeader.CAInvcgDocHasControlDoc,
//FORMKEY
_CAInvcgDocHeader.ApplicationForm,
//PRINTDATE
_CAInvcgDocHeader.CAInvcgDocumentPrintDate,
//PRINTLOCK
@ObjectModel.text.element: 'CAInvcgDocLockedForPrintText'
@Consumption.valueHelpDefinition: [{ entity: { name: 'I_CAInvcgDocLockedforPrint', element: 'CAInvcgDocIsLockedForPrinting' } } ]
_CAInvcgDocHeader.CAInvcgDocIsLockedForPrinting,
//FAEDN - Due date for net payment
@UI.lineItem: { position: 90, importance: #HIGH}
_CAInvcgDocHeader.CANetDueDate,
//REVREASON - Reversal Reason
@ObjectModel.text.element: 'CAInvcgDocReversalReasonText'
@Consumption.valueHelpDefinition: [{ entity: { name: 'I_CAInvcgDocReversalReason', element: 'CAInvcgDocumentReversalReason' } } ]
_CAInvcgDocHeader.CAInvcgDocumentReversalReason,
//INVOICED
_CAInvcgDocHeader.CAInvcgIsDocumentPosted,
//PRELIMINARY
_CAInvcgDocHeader.CAInvcgIsDocumentPreliminary,
//SIMULATED
_CAInvcgDocHeader.CAInvcgIsDocumentSimulated,
//BUDAT
_CAInvcgDocHeader.CAPostingDate,
//APPLK
_CAInvcgDocHeader.CAApplicationArea,
//TECHDOCTYPE
@ObjectModel.text.element: 'CAInvcgDocTechDocTypeText'
_CAInvcgDocHeader.CAInvcgTechnicalDocumentType,
//TARGPROCESS
@ObjectModel.text.element: 'CAInvcgTargetProcText'
_CAInvcgDocHeader.CAInvcgTargetProcess,
//MDCAT
@ObjectModel.text.element: 'CAInvcgMasterDataTypeText'
_CAInvcgDocHeader.CAInvcgMasterDataType,
//ABWVK
_CAInvcgDocHeader.AltvContractAcctForCollvBills,
//ABWBL
_CAInvcgDocHeader.CASubstituteDocumentNumber,
//CRNAME
@UI.hidden: true
_CAInvcgDocHeader.CreatedByUser,
//CRDATE
//@Consumption.filter.selectionType: #INTERVAL
@Consumption.hidden: true
_CAInvcgDocHeader.CAInvcgCreationDate,
//CRTIME
@Consumption.hidden: true
_CAInvcgDocHeader.CAInvcgCreationTime,
//combined field of crdate and crtime
@Consumption.filter.selectionType: #INTERVAL
@ObjectModel.filter.transformedBy: 'ABAP:CL_CINV_SADL_FILTER_DATETIME'
cast(dats_tims_to_tstmp(_CAInvcgDocHeader.CAInvcgCreationDate, _CAInvcgDocHeader.CAInvcgCreationTime,
abap_system_timezone($session.client, 'NULL'),
$session.client, 'NULL') as invdoc_crtsmp_kk) as CAInvcgCreationDateTime,
//CRMODE
@ObjectModel.text.element: 'CAInvcgDocCreationModeText'
_CAInvcgDocHeader.CAInvcgDocCreationMode,
//RECNUM
_CAInvcgDocHeader.CAInvcgNmbrOfInvoicingDocItems,
//BIT_NUMBER
_CAInvcgDocHeader.CABllbleItmNumber,
//INVRUNNO
_CAInvcgDocHeader.CAInvcgDocInternalNumber,
//FIKEY
_CAInvcgDocHeader.CAReconciliationKey,
//FAEDS
_CAInvcgDocHeader.CACashDiscountDueDate,
//SKTPZ
_CAInvcgDocHeader.CACashDiscountRate,
//PRLINV_CAT
_CAInvcgDocHeader.CAInvcgPreliminaryCategory,
//INV_CATEGORY
@ObjectModel.text.element: 'CAInvcgCategoryText'
_CAInvcgDocHeader.CAInvcgCategory,
//REVERSALDOC
@Consumption.semanticObject: 'CAInvoicingDocument'
@ObjectModel.filter.transformedBy: 'ABAP:CL_CINV_SADL_EXIT_INVDOC_DSP'
_CAInvcgDocHeader.CAInvcgReversalDocument,
//REVERSEDDOC
@Consumption.semanticObject: 'CAInvoicingDocument'
@ObjectModel.filter.transformedBy: 'ABAP:CL_CINV_SADL_EXIT_INVDOC_DSP'
_CAInvcgDocHeader.CAInvcgReversedDocument,
//CORRCAT
@ObjectModel.text.element: 'CAInvcgCorrectionCatText'
_CAInvcgDocHeader.CAInvcgCorrectionCategory,
//PYMET
@ObjectModel.text.element: ['CAPaymentMethodName']
_CAInvcgDocHeader.CAPaymentMethod,
@UI.hidden: true
_CAInvcgDocHeader._CAPaymentMethod._Text[1: Language=$session.system_language].CAPaymentMethodName,
//NRZAS
_CAInvcgDocHeader.CAPaymentFormNumber,
//ZLSCH
_CAInvcgDocHeader.FormIDForAttachedPaymentMedium,
//EXKID
_CAInvcgDocHeader.CAKeyIdentification,
//PTSRL
_CAInvcgDocHeader.CAPartnerSettlementRule,
//BUKRS
@ObjectModel.text.element: 'CompanyCodeName'
_CAInvcgDocHeader.CompanyCode,
//BUPLA
_CAInvcgDocHeader.BusinessPlace,
//VTREF
_CAInvcgDocHeader.CAContract,
//SUBAP
_CAInvcgDocHeader.CASubApplication,
//INVOICE_BASEDATE
_CAInvcgDocHeader.CAInvcgBaseDate,
//INVPERCAT
@ObjectModel.text.element: 'CAInvcgPeriodCatText'
_CAInvcgDocHeader.CAInvcgDocPeriodCategory,
//INVPERIOD
_CAInvcgDocHeader.CAInvcgDocPeriodStartDate,
//CHGDOC_EX
@ObjectModel.text.element: 'CAInvcgDocChrgDiscItemsText'
_CAInvcgDocHeader.CAInvcgDocHasChargeOrDiscItems,
//BOLLOTAX
@ObjectModel.text.element: 'CAInvcgBolloTaxPostStatText'
_CAInvcgDocHeader.CAInvcgBolloTaxPostStatus,
//XSUBINV
@ObjectModel.text.element: 'CAInvcgDocPartOfListText'
_CAInvcgDocHeader.CAInvcgDocIsPartOfList,
//XINVDOC_X
_CAInvcgDocHeader.CAInvcgDocHasObjectRelation,
//SEPA_PRENOT
_CAInvcgDocHeader.CAInvcgDocHasSEPAPreNotif,
//EXT_INVDOCNO
_CAInvcgDocHeader.CAInvcgDocExternal,
//ADJUSTMENTDOC
@ObjectModel.filter.transformedBy: 'ABAP:CL_CINV_SADL_EXIT_INVDOC_DSP'
_CAInvcgDocHeader.CAInvcgAdjustmentDocument,
//ADJUSTEDDOC
@ObjectModel.filter.transformedBy: 'ABAP:CL_CINV_SADL_EXIT_INVDOC_DSP'
_CAInvcgDocHeader.CAInvcgAdjustedDocument,
@UI.hidden: true
_CAInvcgDocHeader.CAInvcgDocumentTypeText,
@UI.hidden: true
_CAInvcgDocHeader.CAInvcgProcessText,
@UI.hidden: true
_CAInvcgDocHeader.CAInvcgTypeText,
@UI.hidden: true
_CAInvcgDocHeader.CAInvcgCategoryText,
@UI.hidden: true
_CAInvcgDocHeader.CAInvcgDocTechDocTypeText,
@UI.hidden: true
_CAInvcgDocHeader.CAInvcgTargetProcText,
@UI.hidden: true
_CAInvcgDocHeader.CAInvcgMasterDataTypeText,
@UI.hidden: true
_CAInvcgDocHeader.CAInvcgDocCreationModeText,
@UI.hidden: true
_CAInvcgDocHeader.CAInvcgDocReversalReasonText,
@UI.hidden: true
_CAInvcgDocHeader.CAInvcgCorrectionCatText,
@UI.hidden: true
_CAInvcgDocHeader.CAInvcgDocLockedForPrintText,
@UI.hidden: true
_CAInvcgDocHeader.CAInvcgPeriodCatText,
@UI.hidden: true
_CAInvcgDocHeader.CAInvcgDocChrgDiscItemsText,
@UI.hidden: true
_CAInvcgDocHeader.CAInvcgBolloTaxPostStatText,
@UI.hidden: true
_CAInvcgDocHeader.CAInvcgDocPartOfListText,
@UI.hidden: true
_CompanyCode.CompanyCodeName,
// Make association public
_BusinessPartner,
_ContractAccountPartner,
_ContractAccountHeader,
_ProviderContract,
@UI.lineItem: { position: 160, importance: #HIGH, label: 'Angelegt von', type: #AS_CONTACT, value: '.'}
_CAInvcgUserContact
}