Business Logic,  Warehouse

Goods Receipt


Goods receipts are used to add goods purchased from an external vendor to your inventory. You can also add goods from production with the goods receipt. A GoodsReceipt leads to an increase in warehouse stock, or in case of a PurchaseGoodsReturn decreases the warehouse stock.

If you want to see the goods receipts (and other related documents) you navigate to the GoodsReceiptProjection. This projects JournalRecords that have the NodeType:

  • GoodsReceipt (increases the stock level)
  • PurchaseGoodsReturn (decreases the stock level in case you decide to return goods that are on another GoodsReceipt)
  • InternalTransferReceipt (increases the stock level with goods transferred internally from production or from a goods transformation)
  • InventoryCount (resets the stock level at a certain level when an inventory action is entered in the system)
  • InitialStock (defines an initial stock for the products when the system is first initialized, i.e. when migrating from another system)
  • StockBalance (at certain intervals – usually a month -, a stock balance is required in order to lighten the load on the processing engine)

Adding a goods receipt

When receiving goods used in your production process from an external vendor, you will enter a GoodsReceipt document in the system to add the goods to your Warehouse. The receipt document is actually a JournalRecord with JournalRecordLines that have each one a BinLocationTransaction.

Add Goods Receipt

You can specify which BinLocation the products go to. If no BinLocation is selected, a default BinLocation from the default Warehouse will be selected. If the BinLocations selected on the same document don’t belong to the same FinancialAccountingUnit, you will get some errors. On a GoodsReceipt, all BinLocations must belong to the same FinancialAccountingUnit.

If any Warehouse related configuration is missing, you will get some error messages telling you what you need to configure.

The default Currency of the FinancialAccountingUnit is selected automatically. You can select a different currency if needed.

You need to select the FinancialAccountingUnit and the Vendor, enter the data of the document issued by the vendor (ExternalDocumentSeries, ExternalDocumentNumber) and select the DocumentDate . The document date is the date used by the system to calculate the stock levels at a specific point in time, so this is a very important field. The DocumentDate is also copied to the BinLocationTransaction‘s ActionDate. You can also add a Note if you wish so.

Stock levels are calculated referencing the DocumentDate and/or the ActionDate.

The DefaultTax will be applied to the document’s lines if you don’t select a specific Tax on that line or if the line’s product doesn’t have a default Tax set to it.

You need to enter the Quantity and the Subtotal from the source document. If the Calculate checkbox is selected (default), the system automatically calculates the UnitPrice, TaxAmount and the Total. If you need to override the TaxAmount, you need to uncheck this and the system will use the value you entered. This is only necessary when receiving documents with errors on them and we need the totals to match.

Goods Receipt Footer

When clicking the Next button, the data is sent to the server to be parsed and validated. If the document is valid (the read-only field DocumentIsValid of the document header is set), you can click the Save button to save the document.

Edit a goods receipt

If you need to edit a goods receipt, you can search for it, select it and click the Edit button in the projection’s menu.

If the document or any of its lines has any children of type GoodsIssue, you can’t edit the document.

You can only edit a goods receipt only if no GoodsReceiptReconciliation affects it.

Selecting a goods receipt

Delete a goods receipt

If you need to delete a goods receipt, you can search for it, select it and click the Delete button in the projection’s menu. In order to avoid errors, you can only delete one document at a time.

If the document or any of its lines has any children of type GoodsIssue, you wouldn’t be able to delete the document.

You can only delete a goods receipt only if no GoodsReceiptReconciliation affects it.

Goods receipt delete

Returning goods

When returning goods, you need to add a PurchaseGoodsReturn document. The values and quantities must be positive (even if the values on the original document are negative). This will add lines of type GoodsIssue that will be subtracted from stock automatically.

Purchase Goods Return (note the positive values)