@AbapCatalog.sqlViewName: 'CORDWOCHARGEFS'
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey:true
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED
@AccessControl.privilegedAssociations: [ '_SDDocumentPartnerCard' ]
@EndUserText.label: 'Sales Order without Charge'
@Search.searchable: true
@ObjectModel: {
semanticKey: ['SalesOrderWithoutCharge'],
representativeKey: 'SalesOrderWithoutCharge',
usageType.serviceQuality: #C,
usageType.sizeCategory: #M,
usageType.dataClass: #TRANSACTIONAL
}
@VDM.viewType: #CONSUMPTION
@UI.headerInfo: {
typeName: 'Sales Order Without Charge',
typeNamePlural: 'Sales Orders Without Charge',
title: {
type: #STANDARD,
value: 'SalesDocumentTypeName'
}
}
@Consumption.semanticObject: 'SalesOrderWithoutCharge'
define view C_SalesOrderWithoutChargeFS
as select from I_SalesOrderWithoutCharge as OrderWOCharge
association [0..1] to C_SoldToValueHelp as _SoldToPartyVH on $projection.SoldToParty = _SoldToPartyVH.Customer
association [0..*] to C_SalesOrderWithoutChargeItmFS as _SalesOrderWithoutChargeItmFS on $projection.SalesOrderWithoutCharge = _SalesOrderWithoutChargeItmFS.SalesOrderWithoutCharge
association [0..*] to C_SDDocumentPartnerCard as _SDDocumentPartnerCard on $projection.SalesOrderWithoutCharge = _SDDocumentPartnerCard.SDDocument
and _SDDocumentPartnerCard.SDDocumentItem = '000000'
association [0..1] to I_SlsOrdWthoutChrgPartner as _ShipToParty on OrderWOCharge.SalesOrderWithoutCharge = _ShipToParty.SalesOrderWithoutCharge
and _ShipToParty.PartnerFunction = 'WE'
association [0..1] to C_SalesDocumentUserVH as _CreatedByUser on OrderWOCharge.CreatedByUser = _CreatedByUser.UserID
association [0..1] to C_SalesDocumentUserVH as _LastChangedByUser on OrderWOCharge.LastChangedByUser = _LastChangedByUser.UserID
//Extension Association
association [1] to E_SalesDocumentBasic as _Extension on $projection.SalesOrderWithoutCharge = _Extension.SalesDocument
{
@Search.defaultSearchElement: true
@Search.ranking: #HIGH
@Consumption.semanticObject: 'SalesOrderWithoutCharge'
@UI.lineItem: {position:10, importance: #HIGH}
@UI:{fieldGroup:{ qualifier: 'Customer', position: 10 ,importance: #HIGH}
}
key OrderWOCharge.SalesOrderWithoutCharge,
concat_with_space(
OrderWOCharge._SalesOrderWithoutChargeType._Text[1: Language=$session.system_language].SalesDocumentTypeName,
ltrim(SalesOrderWithoutCharge, '0'), 1) as SalesDocumentTypeName,
OrderWOCharge.SalesOrderWithoutChargeType,
@UI:{fieldGroup:{ qualifier: 'Customer', position: 20 ,importance: #HIGH},
textArrangement: #TEXT_FIRST
}
@Consumption.semanticObject: 'Customer'
@ObjectModel.foreignKey.association: '_SoldToPartyVH'
@ObjectModel.text.element: ['SoldToPartyName']
OrderWOCharge.SoldToParty,
@UI.hidden: true
@Semantics.text:true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_SD_SOWOC_UI_PARTNER_UTIL'
cast('' as ad_namtext ) as SoldToPartyName,
@UI:{fieldGroup:{ qualifier: 'Customer', position: 30 ,importance: #HIGH},
textArrangement: #TEXT_FIRST
}
@Consumption.semanticObject: 'Customer'
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_Customer_VH',
element: 'Customer' }
}]
@ObjectModel.text.element: ['ShipToPartyName']
cast ( _ShipToParty.Customer as kunwe ) as ShipToParty,
@UI.hidden: true
@Semantics.text:true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_SD_SOWOC_UI_PARTNER_UTIL'
cast('' as ad_namtext ) as ShipToPartyName,
@UI:{ fieldGroup:{ qualifier: 'Status1', position: 10 ,importance: #HIGH },
textArrangement: #TEXT_ONLY}
OrderWOCharge.OverallSDProcessStatus,
@UI:{ fieldGroup:{ qualifier: 'Status1', position: 20 ,importance: #HIGH },
textArrangement: #TEXT_ONLY}
OrderWOCharge.OverallTotalDeliveryStatus,
@UI:{ fieldGroup:{ qualifier: 'Status2', position: 10 ,importance: #HIGH },
textArrangement: #TEXT_ONLY}
OrderWOCharge.OverallSDDocumentRejectionSts,
@UI:{ fieldGroup:{ qualifier: 'Status2', position: 20 ,importance: #HIGH }}
OrderWOCharge.SDDocumentReason,
@UI:{
fieldGroup:{qualifier: 'Approval', position: 10 ,importance: #HIGH, criticality: 'OrdWthoutChrgApprvlStsCritlty'},
textArrangement: #TEXT_ONLY
}
OrderWOCharge.SalesDocApprovalStatus,
@UI.hidden: true
cast(
case
when OrderWOCharge.SalesDocApprovalStatus = 'A' then 2 -- | 2: yellow colour
when OrderWOCharge.SalesDocApprovalStatus = 'B' then 3 -- | 3: green colour
when OrderWOCharge.SalesDocApprovalStatus = 'C' then 1 -- | 1: red colour
when OrderWOCharge.SalesDocApprovalStatus = 'D' then 2 -- | 2: yellow colour
else 0 -- | 0: neutral
end as abap.int1
) as OrdWthoutChrgApprvlStsCritlty,
@UI:{
fieldGroup:{qualifier: 'Approval', position: 20 ,importance: #HIGH },
textArrangement: #TEXT_ONLY
}
OrderWOCharge.SlsOrdWthoutChrgApprvlReason,
@Semantics.amount.currencyCode: 'TransactionCurrency'
@UI:{
dataPoint:{description:'Net Amount'}
}
OrderWOCharge.TotalNetAmount,
OrderWOCharge.TransactionCurrency,
// ----- General Information Facet -----
@UI: {
identification: {position:10, importance: #HIGH},
fieldGroup: {qualifier: 'OrgData', position: 10, importance: #HIGH}
}
cast(
concat_with_space(
concat(
concat(
OrderWOCharge._SalesOrganization._Text[1: Language=$session.system_language].SalesOrganizationName,
concat_with_space(',',OrderWOCharge._DistributionChannel._Text[1: Language=$session.system_language].DistributionChannelName,1)
),
','
),
OrderWOCharge._OrganizationDivision._Text[1: Language=$session.system_language].DivisionName,1)
as txt_vtrber ) as SalesAreaDesc,
OrderWOCharge.SalesOrganization,
OrderWOCharge.OrganizationDivision,
OrderWOCharge.DistributionChannel,
@UI: { fieldGroup: {qualifier: 'OrgData', position: 20, importance: #HIGH, label:'Employee Responsible'}}
@ObjectModel: { text.element: ['ResponsibleEmployeeName']}
@Consumption.semanticObject: 'Employee'
cast( OrderWOCharge._Partner[ PartnerFunction = 'ZM' ].Personnel as resp_empl preserving type ) as ResponsibleEmployee,
@Semantics.text: true
@UI.hidden: true
@Search.defaultSearchElement: false // without this annotation the search does not work (needed for local testing and START)
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_SD_SOWOC_UI_PARTNER_UTIL'
cast('' as ad_namtext ) as ResponsibleEmployeeName,
@UI: {
fieldGroup: {qualifier: 'CustRef', position: 20, importance: #HIGH}
}
OrderWOCharge.PurchaseOrderByCustomer,
@UI: {
fieldGroup: {qualifier: 'CustRef', position: 30, importance: #HIGH}
}
OrderWOCharge.CustomerPurchaseOrderDate,
@UI.hidden: true
cast(
case
when OrderWOCharge.DeliveryBlockReason != '' then 1
else 0
end as abap.int1
) as DeliveryBlockCriticality,
OrderWOCharge.OverallDeliveryBlockStatus,
@UI:{ fieldGroup: {qualifier: 'OrderData', position: 10, importance: #HIGH, criticality: 'DeliveryBlockCriticality'}}
OrderWOCharge.DeliveryBlockReason,
@UI: {
fieldGroup: {qualifier: 'OrderData', position: 10, importance: #HIGH}
}
OrderWOCharge.SalesOrderWithoutChargeDate,
//Admin fields
@UI: {
fieldGroup: [{qualifier: 'AdminData', position: 10, importance: #HIGH}],
textArrangement: #TEXT_FIRST
}
@ObjectModel.foreignKey.association: '_CreatedByUser'
OrderWOCharge.CreatedByUser,
@UI: { fieldGroup: [{qualifier: 'AdminData', position: 20, importance: #HIGH} ] }
@Semantics.systemDate.createdAt: true
OrderWOCharge.CreationDate,
@UI: {
fieldGroup: [{qualifier: 'AdminData', position: 30, importance: #HIGH} ],
textArrangement: #TEXT_FIRST
}
@ObjectModel.foreignKey.association: '_LastChangedByUser'
OrderWOCharge.LastChangedByUser,
@UI: { fieldGroup: [{ qualifier: 'AdminData', position: 40, importance: #HIGH } ] }
case tstmp_is_valid(cast(OrderWOCharge.LastChangeDateTime as abap.dec(15,0)))
when 0 then cast( dats_tims_to_tstmp( OrderWOCharge.CreationDate, OrderWOCharge.CreationTime, 'UTC', $session.client, 'NULL' ) as last_changed_date_time )
else cast( OrderWOCharge.LastChangeDateTime as last_changed_date_time )
end as LastChangeDateTime,
// Associations
_SoldToPartyVH,
_ShipToParty,
_SalesOrderWithoutChargeItmFS,
_SDDocumentPartnerCard,
_OverallSDProcessStatus,
_OverallTotalDeliveryStatus,
_OverallSDDocumentRejectionSts,
_SDDocumentReason,
_DeliveryBlockReason,
_TransactionCurrency,
_SalesDocApprovalStatus,
_SlsOrdWthoutChrgApprvlReason,
_CreatedByUser,
_LastChangedByUser
}