@ClientHandling.algorithm: #SESSION_VARIABLE@AbapCatalog.sqlViewName: 'PRFNDEDQTY'
@AbapCatalog.compiler.compareFilter: true@AbapCatalog.preserveKey: true@VDM.private: true@VDM.viewType: #CONSUMPTION@AccessControl.authorizationCheck: #NOT_REQUIRED// This private viewis used to calculate the refunded quantity
// SalesDocumentItemBasic needs to be used to reduce complexity
// ARM SDF is different from Lean Customer's sales order without charge
defineview P_RefundedQuantity
// Collect data of refunding with CMR
asselectfrom I_SalesDocumentItemBasic as CreditMemoRequestItem
innerjoin I_SalesDocumentItemBasic as CustomerReturnItem on CustomerReturnItem.SalesDocument = CreditMemoRequestItem.ReferenceSDDocument
and CustomerReturnItem.SalesDocumentItem = CreditMemoRequestItem.ReferenceSDDocumentItem
and CreditMemoRequestItem.ReferenceSDDocumentCategory = 'H'
innerjoin I_SalesDocumentBasic as CreditMemoRequest on CreditMemoRequest.SalesDocument = CreditMemoRequestItem.SalesDocument
innerjoin I_SalesDocumentBasic as CustomerReturn on CustomerReturn.SalesDocument = CustomerReturnItem.SalesDocument
{
key CustomerReturnItem.SalesDocument as CustomerReturn,
key CustomerReturnItem.SalesDocumentItem as CustomerReturnItem,
key CreditMemoRequestItem.SalesDocument as SalesDocument,
key CreditMemoRequestItem.SalesDocumentItem as SalesDocumentItem,
CustomerReturnItem.OrderQuantity as ReturnQuantity,
CustomerReturnItem.OrderQuantityUnit as ReturnQuantityUnit,
CustomerReturnItem.BaseUnit as ReturnBaseUnit,
CreditMemoRequestItem.TargetQuantity as CustReturnItmRefundedQty,
CreditMemoRequestItem.TargetQuantityUnit as RefundedQuantityUnit,
CreditMemoRequestItem.RequestedQuantityInBaseUnit as RefundedQuantityInBaseUnit,
CreditMemoRequestItem.BaseUnit
}
where CustomerReturn.SDDocumentCategory = 'H'
and CreditMemoRequest.SDDocumentCategory = 'K'
union// Collect data of refunding with SDF
selectfrom I_AdvncdRetsMgmtProcExecuted as AdvncdRetsMgmtProcExecuted
innerjoin I_CustomerReturnItem as CustomerReturnItem on CustomerReturnItem.RetsMgmtProcess = AdvncdRetsMgmtProcExecuted.RetsMgmtProcess
and CustomerReturnItem.CustomerReturnItem = AdvncdRetsMgmtProcExecuted.RetsMgmtProcessItem
{
key CustomerReturnItem.CustomerReturn as CustomerReturn,
key CustomerReturnItem.CustomerReturnItem as CustomerReturnItem,
key AdvncdRetsMgmtProcExecuted.ReturnsDocument as SalesDocument,
keyright(AdvncdRetsMgmtProcExecuted.ReturnsDocumentItem, 6) as SalesDocumentItem,
CustomerReturnItem.OrderQuantity as ReturnQuantity,
CustomerReturnItem.OrderQuantityUnit as ReturnQuantityUnit,
CustomerReturnItem.BaseUnit as ReturnBaseUnit,
(DIVISION (AdvncdRetsMgmtProcExecuted.ReplacedMaterialQuantity * CustomerReturnItem.OrderToBaseQuantityDnmntr, CustomerReturnItem.OrderToBaseQuantityNmrtr,3)) as CustReturnItmRefundedQty,
CustomerReturnItem.OrderQuantityUnit as RefundedQuantityUnit,
AdvncdRetsMgmtProcExecuted.ReplacedMaterialQuantity as RefundedQuantityInBaseUnit,
AdvncdRetsMgmtProcExecuted.ReplacedMaterialQtyUnit as BaseUnit
}
where AdvncdRetsMgmtProcExecuted.RetsMgmtProcessStep = '1211'
and AdvncdRetsMgmtProcExecuted.ReturnsDocumentType = '13'
union// Collect data of refunding with Credit Memo directly
selectfrom I_AdvncdRetsMgmtProcExecuted as AdvncdRetsMgmtProcExecuted
innerjoin I_CustomerReturnItem as CustomerReturnItem on CustomerReturnItem.RetsMgmtProcess = AdvncdRetsMgmtProcExecuted.RetsMgmtProcess
and CustomerReturnItem.CustomerReturnItem = AdvncdRetsMgmtProcExecuted.RetsMgmtProcessItem
{
key CustomerReturnItem.CustomerReturn as CustomerReturn,
key CustomerReturnItem.CustomerReturnItem as CustomerReturnItem,
key AdvncdRetsMgmtProcExecuted.ReturnsDocument as SalesDocument,
keyright(AdvncdRetsMgmtProcExecuted.ReturnsDocumentItem, 6) as SalesDocumentItem,
CustomerReturnItem.OrderQuantity as ReturnQuantity,
CustomerReturnItem.OrderQuantityUnit as ReturnQuantityUnit,
CustomerReturnItem.BaseUnit as ReturnBaseUnit,
CustomerReturnItem.OrderQuantity as CustReturnItmRefundedQty,
CustomerReturnItem.OrderQuantityUnit as RefundedQuantityUnit,
CustomerReturnItem.RequestedQuantityInBaseUnit as RefundedQuantityInBaseUnit,
CustomerReturnItem.BaseUnit as BaseUnit
}
where AdvncdRetsMgmtProcExecuted.ReturnsDocumentType = '10'
and AdvncdRetsMgmtProcExecuted.ReturnsReferenceDocumentType = '00'
and AdvncdRetsMgmtProcExecuted.ReturnsReferenceDocument = CustomerReturnItem.CustomerReturn
and AdvncdRetsMgmtProcExecuted.ReturnsDocumentStatus = ''
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_ADVNCDRETSMGMTPROCEXECUTED",
"I_CUSTOMERRETURNITEM",
"I_SALESDOCUMENTBASIC",
"I_SALESDOCUMENTITEMBASIC"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/