FruitBankHybridApp/FruitBank.Common/Entities/README.md

1.9 KiB

Entities

Domain entities for inbound/outbound goods tracking and inventory. All map to fb-prefixed database tables.

Shipping (Inbound)

  • Shipping.cs — Physical delivery event (truck arrival). Table: fbShipping.
  • ShippingDocument.cs — Supplier delivery note/invoice. Table: fbShippingDocument.
  • ShippingItem.cs — Product line on document with declared vs measured discrepancies. Table: fbShippingItem.
  • ShippingItemPallet.cs — Measurement record for incoming goods. Table: fbShippingItemPallet.
  • ShippingDocumentToFiles.cs — Many-to-many link: document ↔ file with DocumentType. Table: fbShippingDocumentToFiles.
  • Partner.cs — External supplier with address and tax info. Table: fbPartner.

Order (Outbound)

  • OrderItemPallet.cs — Measurement record for outgoing goods with RevisorId for audit. Table: fbOrderItemPallet.

Inventory

  • StockTaking.cs — Inventory session record. Table: fbStockTaking.
  • StockTakingItem.cs — Line item reconciling snapshot vs measured quantities. Table: fbStockTakingItem.
  • StockTakingItemPallet.cs — Measurement record for inventory. Table: fbStockTakingItemPallet.
  • StockQuantityHistoryExt.cs — Extended weight metadata for stock reconciliation.

Shared

  • MeasuringItemPalletBase.cs — Abstract base for all three measurement hierarchies. Defines NetWeight formula, validation methods, CreatorId/ModifierId tracking.
  • Pallet.cs — Physical pallet type definition (name, size, weight). Table: fbPallet.
  • Files.cs — Uploaded file with OCR-extracted RawText. Table: fbFiles.

Critical: "Pallet" Naming

Despite the name, XxxItemPallet entities are measurement records, NOT physical pallets. They are ALWAYS created for every item. For non-measurable products, weights = 0.0 and only TrayQuantity is tracked.