initial load

This commit is contained in:
Koch
2022-09-07 15:26:33 +02:00
parent ee4dcf116c
commit 1b220508c1
6 changed files with 1310 additions and 16 deletions

View File

@@ -0,0 +1,58 @@
using { Currency, User, managed, cuid } from '@sap/cds/common';
using {Orders, OrderItems} from '../schema';
namespace sap.capire.orders;
entity OrdersHeaders : managed {
key ID : UUID;
OrderNo : String @title:'Order Number'; //> readable key
buyer : User;
currency : Currency;
Items : Composition of many OrdersItems on Items.Header = $self;
}
entity OrdersItems {
key ID : UUID;
product : Association to Products;
quantity : Integer;
title : String; //> intentionally replicated as snapshot from product.title
price : Double; //> materialized calculated field
Header : Association to OrdersHeaders;
};
// static
view OrdersItemsViewJoin as select
OrdersHeaders.ID as Header_ID,
OrdersHeaders.OrderNo as OrderNo,
OrdersHeaders.buyer as buyer,
OrdersHeaders.currency as currency,
OrdersItems.ID as Item_ID,
OrdersItems.product as product,
OrdersItems.quantity as quantity,
OrdersItems.title as title,
OrdersItems.price as price
from OrdersHeaders JOIN OrdersItems on OrdersHeaders.ID = OrdersItems.Header;
// dynamic entity
entity OrderItemsViewAssoc as projection on Orders;
// sort on right table
view SortedOrdersJoin as select
OrderNo,
buyer,
currency,
Item_ID,
product,
quantity,
title,
price
from OrdersItemsViewJoin
order by title;
// sort on items and join back to header via assoc
view SortedOrdersAssoc as select
from OrdersItems {*, Header.OrderNo, Header.buyer, Header.currency }
order by OrdersItems.title;