Coming next release
Area | Description |
---|---|
Order lines | Order lines loading performance (RTC-44843) Added database indexes to improve performance of loading order lines grid. Fixed bug related to assortment codes, which caused slow loading of purchase order details and total values for order lines. |
Procurement API | Supplier identifier (RTC-44554) Get packages per store and get purchase orders per store endpoints are extended by supplier identifier. Examples in the Swagger documentation are extended by supplier context. |
Release 15.11.2024
Area | Description |
---|---|
System | Performance of import of items from Item Service (RTC-44777) Improved performance of ItemMerger job, which is responsible for importing ItemChanges from ItemService. OrderProposalGenerator job has a log with memory usage. Improvements done as an attempt to decrease use of memory. |
Release 05.11.2024
Area | Description |
---|---|
Purchase order | Do not send e-mail with empty PDF (RTC-43343) PDF and Submit/Resubmit related buttons are removed from 'Overview' tab in purchase order details view. Attached PDF files are not blank. |
Release 18.10.2024
Area | Description |
---|---|
Purchase order | Fix: submitting orders (RTC-44383) Submitted order cannot be resubmitted without edition. There is an 500 error in the browser if an order was submitted in one tab and user wants to do it again in another tab. |
Release 03.10.2024
Area | Description |
---|---|
Deliveries | External order number in deliveries (RTC-42303) Ext. order no. column is added to deliveries-orders grid and to package lines grid. |
Procurement API | API for item deliveries with given item and given store (RTC-42742) Endpoint (/api/gateway/Deliveries/[storeNo]/itemDeliveries) in Procurement Service returns order lines for the given item and store, in orders with status other than draft. Response contains: id (of order line, used for default sorting), orderNo, remainingQuantity, deliveredQuantity, deliveryDate, orderLineDeliveryStatus, orderStatus. OData is supported for custom filtering, sorting, response batching. |
Purchase order | PDF export (RTC-43333) PDF with purchase order can be exported and downloaded. |
Release 03.09.2024
Area | Description |
---|---|
Order despatch advice import | Validations (RTC-42304) It's possible to import order despatch advice with item without assortment code. There is an information that order contains items that do not belong to store assortment. Created order has status confirmed. There is no validation of item-supplier link also. |
Order lines | Performance of loading order lines (RTC-43127) Performance of loading order lines is no longer affected by number of order despatch advice lines and number of entries in order history. |
System | Fix: external mergers exceptions (RTC-41300) If there are two purchase orders/order despatch advices/goods receipts being processed by merger, that refer to same stores/suppliers/etc. and first one has thrown exception, second one is then processed properly anyway. Items imported from item service are saved in procurement database with unit (Norwegian code) from the list: stk, m, kg, l, dm3. If item has assigned unit not from this list, its unit is saved as 'stk' as default. Units of existing items are properly migrated with an upgrade script. Quantity of order line and when receiving goods cannot have decimals when item unit is 'stk' (replaced existing rule for unit 'Pcs'). |
Release 20.08.2024
Area | Description |
---|---|
Order lines | Performance of loading order lines (RTC-41746) Improved performance of loading order lines to the grid and export of ordered quantities. |
Purchase order | Submit button in Overview tab (RTC-42572) Button to submit order in visible in the Overview tab. |
Release 05.08.2024
Area | Description |
---|---|
Purchase order | Do not send e-mail with empty PDF (RTC-40397) When submitting purchase order, if generated PDF is blank page (due to some error), e-mail is not sent and red error message 'Email message was not sent. Empty PDF was generated.' appears on bottom of the screen. Information about the empty PDF attachment is stored in the database. |
Release 17.07.2024
Area | Description |
---|---|
Store assortment | Restrictions in imports (RTC-41285) It's not possible to add or import item to edited purchase order if item doesn't belong to store assortment. Lines with such items are skipped in the Excel file import. There are precise logs in LIP about reasons of skipping lines showing id of the store and id of the item. There is no validation when missing store assortments in confirmed orders during order despatch advice or goods receipt import. |
Management | Fix: cosmetic changes in user interface (RTC-38372) Order lines grid on manual delivery page fills whole available area (removed empty space below grid). It is possible to use space character in filter input of column picker. |
Release 08.07.2024
Area | Description |
---|---|
Purchase order overview | History of changes (RTC-40200) Operations performed on orders that are not drafts from now on, will be visible in the 'history' section in the 'overview' tab. In this section, only the last 5 records are visible. To see more, it's needed to click on the 'view history' button. History section does not contain actions done before the release. Activities logged in history:
|
Export | Fix: ordered quantity value (RTC-41761) Correct, updated 'ordered quantity' value is exported after import of purchase order, order despatch advice or goods receipt. |
Release 25.06.2024
Area | Description |
---|---|
Export | Export of store assortment (RTC-38671) Export job includes the store assortment export. File format is documented in Swagger. |
Order lines | Supplier values in item search (RTC-39440) When adding new line to the purchase order from a supplier, grid in item search modal shows 'Supplier number', 'Supplier name', 'Supp. item no.', 'Supp. model no.' values defined for this supplier-item-store relation. Row with total values (RTC-38856) Order lines grid contains a header row with total values for columns: 'Line no.' (number of lines), 'Quantity', 'Total', 'Total suppl. curr.'. Filters applied to the grid affect the total values, and value in 'Line no.' column shows number of order lines that match the filter. Totals are removed from the breadcrumbs in purchase order view. |
Order line and delivery line | Fix: Buttons display (RTC-35208) Buttons for order line and delivery line details in expanded row are displayed below all of the sections. |
Planned assortment | 'Assortment code' column (RTC-39084) AssortmentCode is visible in the purchase order lines grid, delivery lines grid and in the item search modal. If item has assortment code but this assortment code doesn't belong to the store for which purchase order is created, this item will not be visible in item search. When item has multiple assortment codes on different levels, there is no duplicated lines displayed in item search modal and no duplicated lines are created in order proposal. Additionally, correct assortment code is displayed in the column in grids (assortment code of correct profile). |
Receive goods | Fix: Confirm all items (RTC-41611) It is possible to do receive goods by pressing 'select all' and then 'confirm items'. |
Store assortment | Item ordering (RTC-38676) Only items which belong to store assortment can be found in item search. If order line or order contains item that does not belong to store assortment warning is displayed. Order submit and confirm is extended by validating whether every item belongs to store assortment. Store assortment check is also included in order validation for the import of order from the 3rd party, when order is imported with status submitted or user tries to edit submitted order. Selecting items which should be included in the order proposal is also based on store assortment and stock is not obligatory. If order line with item that does not belong to store assortment is added to proposal, such order line is deleted when processing proposals. There is no restrictions in ordering items for manual deliveries and internal transfer. |
System | PDF attachment with order confirmation (RTC-41383) Information about the PDF attachment sent by email is stored in the database. |
Release 28.05.2024
Area | Description |
---|---|
Order proposal | Remove proposal with invalid Item, supplier or store (RTC-39421) Order proposal or order proposal line is deleted by OrderProposalGeneratorScheduler job triggered at night by default if the item, supplier or store become invalid. Invalid item means:
Invalid store or supplier means:
Proposal order line is also deleted when max order point is reached - as before. |
Release 06.05.2024
Area | Description |
---|---|
Manual delivery | Fix: Item and supplier validation (RTC-40525) Removed validation of 'Can be ordered', 'Ordering blocked', 'Supplier sales start/end', 'Item-supplier' link, 'Quantity in supplier package' and 'Min. order quantity' for manual deliveries. |
Purchase order | Fix: Submit order with duplicate items (RTC-39973) It is possible to submit order which contains more than one order line with the same item. |
Release 15.04.2024
Area | Description |
---|---|
Internal transfer | Validations for internal transfer orders (RTC-39792) Removed validation of 'Can be ordered', 'Ordering blocked', 'Item-supplier-store group' link, 'Supplier sales start/end', 'Quantity in supplier package', 'Min. order quantity' for internal transfer orders. Applies to import of internal transfer from Inventory (including rules for transfer automatic confirmation), creating and submitting internal transfer from Procurement Management as an order and as an manual delivery. |
Release 11.04.2024
Area | Description |
---|---|
Excel import | Validation (RTC-40253) Fix: No all columns are required when importing Excel file. Only item identifier and quantity must be specified. |
System | Do not abort external goods receipt merger on exception during saving changes (RTC-40226) When exception during saving changes occurs in external goods receipt merger, all FlatBatchJsons in the page being processed are marked as failed and message is added to the lip job execution logs with information which FlatBatchJsons are affected. It means ExternalMerger job will still be running and processing next imports of purchase orders, order despatch advices and goods receipts. |
Release 10.04.2024
Area | Description |
---|---|
System | Validation error messages (RTC-39789) Trailing white spaces are allowed in third party, Excel and POSLog imports and they are trimmed. |
Release 02.04.2024
Area | Description |
---|---|
API | Export of ordered quantity (RTC-38244) Ordered quantity is exported to a Procurement.OrderedQuantity.Export blob with file format as in Swagger. It contains identifier of store and item, ordered quantity and date when this value has last been updated. This is same value as 'In order' field in Procurement Management. This is a sum of remaining quantities in orders with status submitted/edited/confirmed. Value is exported after each time when this sum can change. |
Export | Purchase order (RTC-39351) Submitted orders are exported separately and before confirmed, cancelled and done orders. |
New grid | Procurement register (RTC-38675) In the Procurement module there is a tab called 'Procurement registers'. 'Store assortment' register is added to a section named 'General'. The registry allows the user to add an assortment code to a selected store or remove it. One store can have multiple assortment codes assigned to it. The user can see only those stores for which he has permission. New permissions: 'View registers' at common role level and 'View store assortment' and 'Manage store assortment' at store level. |
System | Import of assortment codes (RTC-38694) Assortment codes are imported on item level from Item Service if assortment code is added to item or edited. Not existing assortment codes are pushed into table with assortment codes. There is a validation message saved in the database and shown in Integration Platform, when the user tries to import file through 3rd party to Procurement module with field with spaces/enters at the beginning or at the end. |
Release 18.03.2024
Area | Description |
---|---|
Import | Fix: deleted order points (RTC-39007) Order points are properly deleted from Procurement databased after import caused by deleting order point from item in Item Management. |
Planned assortment | Import of assortment codes (RTC-38670) Assortment codes are imported from register in Item Management. Values are imported based on unique code. If code in assortment register will be changed, in Procurement it is imported as a new assortment code. Statuses of assortment codes such as: active, default are imported and correctly assigned as well. |
Purchase order | Order delivery date based on lead time and transport time of supplier (RTC-38621) Delivery date of order is properly set to 'now' + 'supplier lead time' + 'supplier transport time' when creating purchase order in user interface (prefilled date), new orders created from 3rd party (when delivery date not defined in imported file), import from InStore app. Feature already existed for Excel import and order proposals. |
Receive goods in InStore App | Fix: Scanning items with tandem GTIN (RTC-38887) Items are properly matched in Procurement when scanning items with tandem GTIN during receiving goods manually in InStore App. |
Suppliers in Procurement | Item suppliers on store group scope (RTC-36665) Import of item suppliers is extended with store/team/profile scope. Import of stores from Store Service is extended by creation of 'Private' store group.
Detailed validation message appears in 'submit/confirm order' modal, if there are no order lines, item is inactive, item, store, supplier is placeholder or one of the ordered items is not delivered by the supplier to store (instead of generic server side error). |
Release 05.03.2024
Area | Description |
---|---|
Import | API contract for Order Confirmation from 3rd party (RTC-38745) Business rules and file contract for import of order confirmation are available in Swagger. There is also example of files. Business rules for each import are in separate expandable section of Swagger. Wholesale price and discount are taken from Procurement database when creating purchase orders or receive goods manually through InStore App. That is the price that was imported to Procurement directly from Item Service. When price does not exist in Procurement database, then price and discount are equal to 0. |
Order proposal | Fix: Max order point reached (RTC-39038) When max order point is reached, what means difference between max order point and available quantity (+remaining) is equal to 0, and min order qty is defined and is more than 1, order proposal should not be created if it doesn't exist or is updated/removed if it exists. |
Management | Fix: user interface bugs in purchase orders and order lines (RTC-38567) In purchase orders grid:
In order lines grid and line panel:
It is possible to create manual delivery when user has permission to only one store. Store selection dropdown is hidden in such case. |
Release 22.02.2024
Area | Description |
---|---|
Purchase order | Fix: e-mail with order confirmation PDF when not using EDI (RTC-39039) If supplier does not use EDI, e-mail is sent if there is e-mail address in input in submit/resubmit modal. E-mail is not sent if input is empty. |
Release 20.02.2024
Area | Description |
---|---|
Procurement | Store number and name as separate columns (RTC-38812) Due to bug related to filtering of combined column, store number and store name are again shown as separate columns in grids: purchase orders, items in purchase orders, package deliveries, order deliveries. |
Released 08.02.2024
Delivery date calculated with importing purchase order from Excel
Delivery date is not required in modal. If not set, to today's date supplier lead time and supplier transport time are added. If the date for order line is not defined in the Excel file, it is set to the same as the delivery date of the order.
Improvements
Area | Description |
---|---|
Export | Supplier item no. and supplier model no. (RTC-38265) Supplier item no. and supplier model no. are included on order line level in export of purchase order. |
Goods receipt | Receive package in InStore app (RTC-33893) Orders with Order Despatch Advice imported can be received using 'Find parcel' option in 'Receive goods' view in InStore App. Goods receipt is done with same logic as when using 'Package' section of 'Deliveries' in Procurement Management. |
Import | Import goods receipt from 3rd party (RTC-37047) It is possible to import more than one order per file. Importing goods receipt for order created through manual delivery is not possible. |
Modals and store dropdowns | Fix: Wide fields in modals and store dropdown correct filtering (RTC-36271) 'Fields in modals are wide, so they take full width of modal. |
Order lines | Fix: 'in order' quantity (RTC-38393) 'In order' quantity value in order lines grid is counted based on 'Remaining' quantity instead of 'Ordered' quantity. It shows quantity of remaining order lines for this item to this store (as before). In order line panel, 'Ordered' field is renamed to 'In order' to match name of column in the grid, 'In order' and 'Available quantity' are properly displayed in order line grid and panel during creating new order line. When creating new order line, after changing selected item and choosing other one in search, values in 'Stock level' and 'Price' sections of panel are updated. Validation rules for quantity input are updated for new item. |
Order proposal | Scheduler job (RTC-38491) OrderProposalGeneratorScheduler job triggers order proposal generation for all suitable stores and suppliers (all rules for items, stores and suppliers are the same as when requesting order proposal in user interface). Job runs at 2 AM UTC by default. |
Purchase order | User interface improvements for increased usability (RTC-37041) 'Supplier no.', 'Quantity', 'No. of items' and 'Total' columns are included in purchase orders grid. The abbreviation 'Supp.' has been replaced by the full name 'Supplier'. 'Sign' column is removed from PO grid. The number of ordered items is displayed in 'Quantity' column for draft order and in '# Ordered' after submitting order. A '#' has also been added to the following columns: Delivered, Received, Remaining and Deviation. Store column contains store name and store number. Order points are included in the order line details view in the 'Stock level' section. Order confirmation as EDI or e-mail PDF (RTC-38226)
In both cases, there is 'view document' button in modal to show order as PDF. |
Receive goods and delivery grid | Fix: Save check (RTC-37389) The display of lines in the grids with panel is correct in the following scenario: The user makes changes in the panel, does not save the changes and sets the focus on another line. Save (Dirty check modal) questions appears. The user saves the changes. |
Release 30.01.2024
Area | Description |
---|---|
Import | Ignore POSLog with training mode flag (RTC-38122) POSLog created after operation by cashier with training mode enabled, is ignored by staging import filter and in result not processed by Procurement module. |
Import from 3rd party | Order despatch advice (RTC-34560) Order despatch advice line can be moved between packages (change package number of order despatch advice line by re-importing order despatch advice from 3rd party). Moving received line is not possible. If a line is moved from a package that has no other line, that package is no longer visible in the deliveries grid. Package delivery status is changed to done after moving last not received line from partially received order, and set to partially received after adding new line to package with status done. |
Order proposal | Generate order proposal for all suppliers (RTC-37431) When creating an order proposal manually, user can make it for all suppliers. There is 'All applicable' option in the modal with the number of suppliers for which 'Replenishment' and 'Generate order proposal' flags are set to true. If this option is selected, the user sees the information: 'Creating order proposals for all applicable suppliers might take some time'. There is no field in the modal to enter a delivery date. It is set automatically. To today's date supplier lead time and supplier transport time are added. |
Purchase order | Revert status from done to confirmed (RTC-37671) User can manually revert status to confirmed in the UI by clicking 3 dots button and then 'Reopen'. A modal will appear, where the user need to confirm that he want to change the status of the order. The modal includes information: 'This action will revert the purchase order to status «Confirmed». Are you sure you want to reopen the order?'. When the status is changed, the order export is triggered. |
Release 24.01.2024
Order proposal and order quantity based on item attributes
An order proposal can only be created for items meeting the following conditions:
- Auto replenishment (AutoReplenishment) set to True
- Can be ordered (CanBeOrdered) set to True,
- Ordering blocked (OrderingBlock) set to False,
- Track stock changes for item (TrackStockChanges) set to True,
- Supplier sales start date (SupplierSalesStart) is null or earlier than now.
- Supplier sales end date (SupplierSalesEnd) is null or later than now.
In addition
- if Minimum order quantity (MinOrderQty) is defined then quantity is not smaller than the given value.
- if Quantity in supplier package (PackSize) is defined and Break bulk (BreakBulk) field is set to False then quantity is a multiple of the given package size.
A line can only be added to a purchase order or manual delivery if:
- CanBeOrdered set to True,
- OrderingBlock set to False,
- SupplierSalesStart is null or earlier than now
- SupplierSalesEnd is null or later than now
If quantity is not a multiple of package size but should be, there is an information written in red: 'Quantity must be a multiple of <number>'. If the quantity entered is not equal to at least minimum order quantity: 'Minimum order quantity is <number>'. The text is in orange. For items that cannot be ordered or for which the ordering is blocked but they are added to the draft order there is a validation visible in the line level: 'This item cannot be ordered now', 'Order contains items that cannot be ordered now.' in order level and 'Manual delivery contains item that cannot be ordered now' in delivery level.
Sales data in order lines
In 'Stock level' section of order line expanded panel, there are 'Sales past 30 days' and 'Sales next 30 days last year' values that are fetched from Reporting data warehouse. Request is done for specific store of this order. Values are sum of sales quantity in last 30 days and in next 30 days a year ago. Values are fetched for first 100 lines in the grid, and loaded for next ones when new line is being added or when grid is scrolled down. Loading circle is displayed for those fields when fetching data - it does not block other operations in the application. If there is empty response from Reporting Service (no sales), dash is displayed. If connection with Reporting Service failed, 'N/A' is displayed.
Improvements
Area | Description |
---|---|
Import | Skip invalid rows in stock import (RTC-37582) If some rows in processed batch in stock import has invalid row (null SKU or StoreNo), then these rows are ignored in import, but other rows from this file are processed properly. |
Order lines | Estimated time of delivery (RTC-35080) On confirmed and done statuses of purchase order there is 'Estimated time of delivery' column in order lines grid. Date displayed there is date of order confirmation + transportation time on supplier + lead time supplier. If lead time is set per item on item-supplier relation, this value is used instead of lead time supplier. If value is not defined in Item Management, it is treated as 0 days. Export to blob contains this value per order line. When adding new item to purchase order, if there is no store price found, both wholesale price and supplier discount are prefilled with 0. Supplier discount field is not required and can be empty - when saving changes on order line, after clicking button or using keyboard shortcut, empty input field is automatically filled with 0. When looking up items using item search new fields in the grid are present, and it's possible to reorganize order of columns in the grid, and sort the output. Grid is scrollable horizontally when multiple columns are added. There is no timeout when searching for item in item search (when adding order line to the order). Improved performance of lookup for item attributes used to filter item search results. |
Order proposal | Supplier and store attributes (RTC-36027) Order proposal can be generated only for stores with 'Replenishment' flag set to true and suppliers with 'Replenishment' and 'Generate order proposal' set to true. Additionally, store or supplier cannot be inactive (or placeholder). Stores and suppliers that do not match those rules, are not displayed in the dropdown list when creating new order proposals. |
Purchase order | Fix: Dropdown and delivery status filter (RTC-37463) In modal for new purchase order or manual delivery, all records are can be found in store or supplier selection dropdown by scrolling down on the list (next 100 records are loaded after scrolling to the bottom of the list). |
System | Fix: Moving and selecting columns in grids (RTC-36940) When moving column from scrollable part to not scrollable part column position is saved after refreshing page. The column selection panel is visible in full when the bottom bar is moved. |
Release 15.01.2024
Area | Description |
---|---|
Order lines | Prices in store currency (RTC-36454) In 'purchase order lines', 'manual delivery', and 'items in purchase orders' grids there are 'Wholesale price', 'Net wholesale price' and 'Total' columns with prices converted to store currency. Those columns are visible by default. Store currency is default currency set in item management for country of this store. Currency code is displayed next to value in each row. Total price in breadcrumbs also shows store currency code. Additionally, using column picker user can add 'Wholesale price suppl. curr.', 'Net wholesale price suppl. curr.' and 'Total suppl. curr.' columns, which show values in supplier currency. Currency is displayed next to value in the grid and not displayed in column name anymore. |
Purchase order | Supplier currency in order confirmation PDF (RTC-37213) Total price in purchase order PDF shows supplier currency code. |
System | Data processing jobs (RTC-37230) The following jobs exist: By default, each job runs every 2 minutes. Fix: Exception handling (RTC-37230) Apart from the exception in the database and log in the Integration Platform, the execution of job is 'Completed with warnings' |
Release 09.01.2024
Area | Description |
---|---|
Import and export | Currency (RTC-36566) Contracts for export includes: Supplier in the ExportPurchaseOrder has field CurrencyCode. Purchase order has field CurrencyRate and WholesalePriceInSupplierCurrency. GoodsReceiptLine has CurrencyRate and CostPriceInSupplierCurrency. Currency rate is properly fetched and saved after import of purchase order or goods receive and when creating manual delivery. |
Order lines | Fetching price on store group level (RTC-37606) Price on store group level is set when price on store level does not exist - first search for price of store, then price of price zone assigned to this store, then price of profile of this store. Applies to creating order line or manual delivery in user interface, generating order proposal, Excel import (when price not defined in Excel file), import of goods receipt from 3rd party. |
Release 05.01.2024
Automatically set purchase order to done
After submitting goods receipt, order status is automatically set to 'Done' if delivery status is 'Done', all order lines have status 'Delivered', remaining quantity of all order lines is equal 0. Applies to all kinds of goods receipt (from purchase order, deliveries, InStore app, 3rd party import).
Improvement
Area | Description |
---|---|
Import API | Confirm purchase order when importing goods receipt from 3rd party (RTC-37272) Existing purchase order with draft, submitted or edited status changes its status to 'confirmed' after import of goods receipt. If store/supplier is specified in goods receipt and store/supplier is not found or is placeholder, exception is thrown. New order is created when importing goods receipt and order is not found. It is required to specify external order no or supplier order in such case. |
Release 02.01.2024
Import purchase order from Excel - required fields and store permission
Price and discount are not mandatory in Excel file, they are taken from active price or set to zero if price is not defined. Delivery date of line should be set to order delivery date if not specified in the imported file. If user has access to only 1 store then store multiselect is not visible and orders are created only for their one store. Store level selection is different depending on the permission. For example, if we only have access to certain teams and stores, the 'all stores' and 'profile' option is not visible in the drop-down menu.
Fix: Validation of required supplier no and supplier GLN is removed. It is possible to import a file that has only two pieces of information: quantity and item identifier (SKU, GTIN or item number).
Improvements
Area | Description |
---|---|
Goods receipt | Number of items received equal to zero (RTC-36695) Delivery line can be counted with quantity 0 and then can be submitted. It is possible to import order despatch advice line with quantity 0 when order line exists. When order line does not exist order despatch advice line it is not created. Values on 'Receive goods' page (when receiving from purchase order without import of order despatch advice) are properly displayed in grid and panel after leaving page or refreshing it. If counting on this page was started, and then ordered quantity of order line is changed, after opening 'Receive goods' again, grid shows all lines as 'Not counted', with updated order line remaining values that are displayed in 'Order' column. |
Order lines | Stock level displayed when creating new line (RTC-37167) Stock level section in panel (with 'Ordered' and 'Available quantity' values) are visible when adding new order line to the purchase order. |
Purchase order | Supplier email for purchase orders (RTC-36340) Email when submitting or resubmitting order is pre-filled using supplier's email for purchase orders, or by the email that was inputted in previous submit of this order. |
Release 21.12.2023
Create order proposal
An order proposal can be created via the 'New order proposal' button in the Purchase orders grid. Only users with the permission 'Create order proposals' can do this. To have this permission, 'Manage purchase order' permission is required. The button opens a modal that allows the user to select multiple stores and suppliers for which draft order proposals can be created. It will then automatically order items whose main supplier is on the list. There are notifications with information about process started and then with number of orders and lines modified, deleted or added. The price and discount for the item are automatically filled in (if they are in the Procurement database).
Create order proposals based on order points
Order points are used when generating, updating and deleting order proposals. Order points on store level have higher priority than on 'Common' level. Order proposal is not created when there is no active order point. Proposal is created when available quantity + in order are less or equal min. order point.
Currency in purchase order lines and manual delivery lines
(RTC-34652)
There are columns in the purchase orders lines and in the manual delivery lines views showing wholesale price, net wholesale price and total price in supplier currency. They are hidden by default and visible only if CurrencyCode for supplier and CountryCode for store are defined in the Procurement database the same as currency in the input for price. Analogous information can be found in the 'Overview' tab: supplier currency and the conversion rate that has to be used to convert the price from the supplier currency to the store currency. The 'Overview' tab shows the total price in both supplier and shop currency.
When converting currencies and displaying the 'Exchange rate', it is important whether CostRate is defined. If not, the rate is equal to 1 which results in the price in the store currency and supplier being the same.
The method of calculating the net wholesale price is as follows:
wholesale price x discount, then round the result, then result x rate.
When creating a new line for purchase order or for manual delivery, the price is prefilled with the wholesale price in supplier currency defined in the Item Management. It can be changed by the us
Send email when submitting purchase order
If email is entered in submit/resubmit purchase order modal, e-mail is sent using Message Distribution Service. Request is not done when e-mail input is empty. E-mail contains short message, order number, order note and logo. Content can be customized through Message Distribution Management templates ('Order' template is visible after first attempt to send mail on tenant). PDF file with order print is always attached to e-mail. File preview can be shown or downloaded using buttons in modal. After submitting, notification about result is shown on bottom of the screen.
Import order from Excel
A file with order lines can by imported by a button in the user interface from the 'Purchase orders' grid. After the job is started, a notification is sent to the user. Invalid lines are skipped. Once the file has been imported, it is shown how many orders that have been created, how many lines that have been imported for each store and how many lines that have been skipped.
Only one item identifier of the 3 is required: SKU, GTIN or Item number, and only one supplier identifier of 2: supplier no. or supplier GLN. Supplier GLN is more important so if the user imports a file in which the 'supplier GLN' comes from one supplier and the 'supplier no' from another, the record will be created based on the 'supplier GLN'. Order line note column is optional. It is also possible to provide an empty/null field for order line note. Such a line will not be skipped during import. If there are empty values or nulls for quantity, wholesale price, supplier discount or delivery date then such lines are skipped. If supplier identifier is not specified, item should be delivered by the main supplier. If there are several lines in the file for different suppliers, corresponding orders will be created for each supplier.
Additional changes:
Import of items from Item Management is extended by the IsMainSupplier flag and it is saved on SupplierItem level in the Procurement database.
Import goods receipt from 3rd party
3rd party systems, usually central warehouse systems, can do goods receipt on behalf of a store, and in such cases we can receive goods through 3rd party JSON import, with similar logic to goods receipts from InStore App. Contract and business rules are documented in Swagger. Required values are StartedDateUtc, SourceSystem, Quantity, ItemIdentifier, ShippingDateUtc. Optional fields are EndedDateUtc (equals StartedDateUtc if not provided), receiveNote, receivedBy (equals SourceSystem if not provided), costPrice (if not provided, when new order line has to be created, price is being fetched from database or set to 0 if not found), orderLineNote (set as note on order despatch line), itemName, storeName, supplierName (these tree used only when entity is not found and placeholder is created, but optional in this case too, identifier is used as name if name not sent).
Other requirements depend on GoodsReceiptType:
- PurchaseOrder - used to receive orders for which there is no Order Despatch Advice
- temporary requirement - all goods receipt lines in this type of import must have same order identifier (no support for receiving lines from multiple orders in one goods receipt)
- order identifier and order line number are required
- store identifier is not used
- supplier identifier is needed only when using supplierOrderNo as orderIdentifier
- imported only when order was found and has status Confirmed or Done - no support yet for automatic approval of draft and submitted orders, and no support for creating new orders with this import
- packageIdentifier and packageLineNo should not be sent
- order line can be received multiple times, value is added to delivered quantity
- Package - used to receive orders for which there are Order Despatch Advice imported
- orderIdentifier, orderLineNo, packageIdentifier, packageLineNo are required
- possible to receive package with lines from multiple orders, or multiple packages within one goods receipt
- each package line (order despatch advice line) can be received only once (as in user interface)
- store identifier is not used
- supplier identifier is needed only when using supplierOrderNo as orderIdentifier
- ManualDelivery - used to receive items for which purchase order was not created.
- new order is created for each supplier, with status 'Done'
- orderIdentifier, orderLineNo, packageIdentifier, packageLineNo cannot be sent
- store and supplier identifier are required
Improvements
Area | Description |
---|---|
Import | Import POSLogs from multiple stores and workstations (RTC-37024) POSLog import includes RetailStoreId and WorkstationId, so duplicate validation does not happen when we receive POSLog with same SequenceNumber from multiple stores and workstations. In case when new purchase order has to be created, its External Order No. is in format 'POSLOG-RetailStoreId-WorkstationId-SequenceNumber-SupplierNo'. |
Order lines | User interface improvements (RTC-36402) Supplier discount is displayed in order line in grid and in PDF properly when it has some decimals. Red validation message is displayed when creating order line but discount input is empty. Loading circle is displayed when adding new order line (between choosing item in item search modal and new line appearing in the grid). |
Order lines and delivery lines | Import total supplier discount from Item Service (RTC-35004) Total supplier discount is a sum of negative discounts based on wholesale price defined in Item Management. This value is imported to Procurement and displayed during adding new order or delivery line. If in Item Management the discount based on the wholesale price will have only positive values or negative values will sum to something less than -100% (e.g. -102%) then we prefill 0 in Procurement. If an item has no price defined, nothing is prefilled. When adding order or delivery line, 'Wholesale price' is prefilled with 'Net cost' value from price calculation, which already contains supplier discount. This will be changed and 'Wholesale price' will be properly filled with 'Wholesale price in supplier currency' in RTC-34652. |
Procurement API | API for purchase orders with given item and given store (RTC-36258) Endpoint (/api/gateway/PurchaseOrders/[storeNo]/orderedItem) in Procurement Service returns orders for the given item and store with the following statuses: Submitted, Confirmed, Edited and Done. Draft and Cancelled purchase orders are not returned. |
Purchase order | Fix: Order created from InStore App (RTC-36265) Orders created from InStore App are created for correct suppliers in Procurement as supplier received in POSLog is properly identified by supplier number. Handling of InStore App goods receipt for item that was not in order is adjusted to new version of POSLog. Delivery date is set properly when creating orders from Excel file. When importing an order via an Excel file, a separate order is created for each supplier even if the supplier's GLN is not defined in the database (it is null). If the user enters a line for which no supplier-item relationship exists, the main supplier will be selected during order creation. Stock information in order line details (RTC-35861) New column appears in manual delivery details, in purchase order lines, and in items in delivery called "Available quantity" displaying current stock of the selected item in selected store. Field is also visible in order line details and in manual delivery line details. |
Receive goods | Backorders (RTC-35021) Backorder flag on item level is imported from Item Service to the Procurement Service. If there is an item in a purchase order that does not allow back orders, after first goods receipt, order line delivery status is set to Delivered, even if not all ordered items have been delivered (Remaining is set to 0 and deviation is set). |
System | Fix: Date filter (RTC-35746) It is possible to filter by date. Store import is extended by import of store address. StockMerger job is replaced by StockImport job, which imports stock changes published by Inventory Service, without use of staging in database. This improves performance of import, especially when a lot of data is exported. Validation and placeholders logic is removed. Still, stock info older than the one we already have, is not imported. Database is extended with all other stock fields, including 'Available quantity'. Common order points for item are imported as a part of ItemChanges import. Store order points are imported as a part of new ItemStoreOverride import. |
Release 17.11.2023
Import order from Excel (part 2)
In 'Import order' modal user can select level of import: Store, Team, Profile or All stores. In case of first three choices - page is shown with a list of active stores/teams/profiles. The list is filtered by access permission of user (and placeholders are excluded). User has to choose at least one from the list. It is possible to filter the list using search input. Then import has to be confirmed using 'Import' button in toolbar. A message appears on the bottom of the page as a confirmation of saving the data to staging table (from where import will be processed by a job in part 3 of this feature). When trying to leave the page during store selection process, modal with a warning appears.
Order proposal
Order proposals are created every night. Those orders can be recognized by checkbox in 'Order proposal' column in Purchase orders grid. Order proposal condition is based on sum of stock in store, existing draft proposals and remaining quantity in submitted, edited and confirmed purchase orders. If condition is below 1 (min. order point) new order proposal is created with quantity, after which sum of above values is 10 (max. order point). Order proposals are created for main supplier of item. Proposals are not created if item has no main supplier or it never was in stock in specific store. If draft proposal exists, and quantities in other orders or stock status has changed since previous job execution, quantities in proposal are updated to match max order point. If proposal is not needed anymore, it is deleted by job, and if this was the only line in order, order is deleted as well.
Job executions contain log with count of created, updated and deleted proposal lines as well as sum of those.
Totals for purchase order is now correctly calculated after import of purchase order or order despatch advice.
Improvements
Area | Description |
---|---|
Deliveries | Fix: Receive many lines (RTC-35026) When there are more than 100 lines to receive, all of them are affected after using 'Select all' and 'Confirm items' buttons (before it affected only first 100 lines). 'Select all' selects only the lines which match current filter in the grid. |
Import | Delivery status after import of order despatch advice (RTC-34093) If the user imports order despatch advice by 3rd party to an order on which the receive goods have not yet been executed, the imported delivery has the status 'Not received'. After importing order despatch advice into 'Done' order, the delivery status is set to 'Partially received'. It's not possible to receive goods if external order despatch advice exist for the order. 'Receive goods' button is hidden.
Business rules and file contract for import of goods receipts are available in Swagger. There is also example of files with required data and examples for each goods receipt type.
Remaining quantity of order despatch advice line is supported in import from 3rd party. This is an optional field. By default it is null - after receiving such order despatch advice line, remaining of order line is reduced by value that was expected to be delivered in this order despatch advice line (deviation is set if we received other number than expected). |
Items in purchase orders | Fix: Filtering by delivery status (RTC-34747) Active deliveries (all except Done and Cancelled) are displayed in the grid by default. Filtering by delivery status works properly. Any status can be selected. |
Purchase order | Order confirmation print (RTC-35332) PDF file with order confirmation is redesigned. The file can be downloaded using 'Print order' button which is available when order has status 'Submitted'. The file contains purchase order number, order submit date, delivery date, store name, supplier number, name and address, order note and list of order lines - SKU, Supplier item number, Description (item text), Quantity, Unit price, Discount, Amount and Total amount of the order. The order lines heading is continued on the next page when the lines do not fit one page, and the page number is displayed in the page corner.
Change of buttons texts (RTC-34646) Procurement management is displayed in side menu with label 'Procurement' and links are placed in 'Purchasing' section. 'Items in purchase orders' is placed right below 'Purchase orders' in menu. "New order" button is changed to "New purchase order". "Edit date" button is changed to "Edit delivery date". Overview section in overview tab is renamed to "Details". Fixed issue which led to no possibility to submit goods receipt from purchase order (delivery of order without import of external order despatch advice). |
System | Import of stock status from Inventory module (RTC-34425) There is a 'StockMerger' job in ProcurementServiceintegration package. By default, in runs every 2 minutes. The following information about an item from a given shop is stored in the Procurement database: id of the item, id of the shop, stock quantity and stock update date. This information is taken from the 'Inventory' module. A maximum of 3 decimal numbers are stored in the database for stock quantity. If the number exported from Inventory has 4 decimal places, the last digit is ignored. If more - there is a validation. If any imported store or item does not exist, placeholder is created. If any of incoming store identifiers does not contain storeNo and placeholder must be created, exception is thrown. If incoming stock date is before stock entry date, there is no update in the Procurement db. At least one identifier is required: StoreNo or GLN for store and Sku or GTIN for item. |
Release 26.10.2023
Import order from Excel (part 1)
If the user has the 'Create purchase orders from Excel' permission, he/she sees an 'Import order' button in the 'Purchase orders' view. After pressing the button modal with import order header appears. Proper messages are displayed:
- If file is empty or contains invalid header rows: 'Invalid file format'/'File cannot be empty',
- If server side error occurs during request processing: 'A server side error has occurred. Please contact support for further assistance.',
- If the request is correct processed, modal is closed and notification message is displayed: 'Import has started. You will be notified when all orders are ready'.
No data is uploaded for now. Request only checks whether file contains valid columns.
Improvements
Area | Description |
---|---|
Deliveries | Goods receipt from InStore App (RTC-33711) When the user performs a manual goods receipt in the InStore App and receiving items from different suppliers, a separate package and a separate purchase order is created in Procurement for each supplier.
In case of receiving order which has no order despatch advice, after clicking 'Receive goods', but then receiving order through InStore App, remaining values are properly updated. Numbers counted but not submitted in user interface are cleared. After clicking 'Receive goods' again in user interface, remaining values are correct. Order with goods receipt (first done or just started) in user interface but then done in InStore App is possible to set to done. |
Deliveries lines and order lines | Fix: Total price (RTC-33465) Values in side panel updates properly when user navigates through received delivery lines. 'Total price' and other values updates properly after editing delivery lines or order lines. |
Export | Identifier in goods receipt export (RTC-33820) ExportGoodsReceipt contract and example in the Swagger documentation is extended by GoodsReceiptId field. Id field which was used before is marked as deprecated. Identifier is exported as both Id and GoodsReceiptId as part of GoodsReceipt export.
In purchase order and goods receipt exports supplier section is extended by EDI flag which can have the value 'True' or 'False'. Export status of purchase order lines (active or deleted) (RTC-33819) There is a field in the Procurement.PurchaseOrder.Export contract in order Lines section named 'orderLineStatus' with two possible values: Active and Deleted. This information can be found in the schema and examples in the file export documentation in the Swagger. Deleted lines are exported when the status of purchase order is set to submitted and after the following operations for an order with confirmed status:
|
Goods receipt | Fix: Set order to done after new goods counting was started (RTC-35055) In case of receiving order which has no order despatch advice, after submitting at least one goods receipt, and then starting counting process again (Receive goods button in order), it is still possible to set such order to done. After setting order to done, values counted but not submitted in 'Receive goods' page are ignored. |
Import | Fix: Creating packages when importing order despatch advice (RTC-34078) If the user re-imports order despatch advice line but does not enter a package number, the line will be updated and a new package will not be created. Order status after import of order despatch advice (RTC-34048) Existing purchase orders (with no placeholders) are set to 'confirmed' after import of order despatch advice for this order.
|
Import/Export | Delivery date on order line level (RTC-28994) Delivery date of order line is a part of order line in contract for import and export of purchase order. Value is not required in import - value from order level is used if order line delivery date not in file. Purchase orders (RTC-33420) |
Purchase order | Fix: 'Line no' column (RTC-33825) Line no column can be moved/resized/sorted for 'cancelled' and 'done' order statuses in the order lines grid. Date format depends on the region selected by the user. |
Purchase orders and manual delivery | Order line registration (RTC-33982) Adding new items for a new purchase order or for a manual delivery is possible using the keyboard navigation only. There is an 'Add item' button at the bottom of the page. After click on this, modal with item selection opens and it can be closed by ESC. 'Add + next' and 'Add' have the keyboard navigation: 'SHIFT + ENTER' and 'ENTER'. 'Add item' button is hidden when draft line is not saved and reappears after adding a new line. When adding a new line, an item can be deleted via the 'x' button next to its name. 'Stock Level' section with information about ordered items appears after clicking 'Add' or 'Add + Next'. |
System | New framework for user interface (RTC-33414) Procurement management is upgraded to framework versions Angular 16 and Kendo 12. |
Release 15.09.2023
Items in purchase orders
'Items in purchase orders' allows the user to find items that have been ordered or delivered. All order lines are visible. The grid includes the following columns:
- Store
- SKU
- Item number
- GTIN
- Item text
- Brand
- Delivery status
- Discount
- Net wholesale p.
- Order Line no.
- Order line note
- Order no.
- Order status
- Quantity
- Received
- Supp. Item No.
- Supp. Model No.
- Supp. order no.
- Supplier name
- Total
- Wholesale p.
- Created by
- Created date
- Modified by
- Modified date.
'Order no' column navigates to the overview tab of the order and clicking on the link in the 'Order line no' column takes the user to the order line view with specific line selected and expanded. To access 'Items in purchase orders' grid 'View purchase orders' permission needed. If the user has access to the one store only, the 'Store' column is not visible.
In addition, the 'SKU' column is visible in all views in the Procurement module where items appear (delivery lines, order lines, goods receipt lines).
Improvements
Area | Description |
---|---|
Deliveries | Received date (RTC-33843) Date of first submitted goods receipt of order or package is properly saved on order and package levels in database. Values are visible in Deliveries grid. Date is not updated after next goods receipts of same package or order. When receiving goods with InStore app, this date is the date when goods receipt was submitted in app.
If the order has status draft, edited, submitted or cancelled, editing and submitting delivery is not possible. The user sees the information: 'Unable to edit/submit delivery. This order is missing information for supplier or items, and order can not change status until this information is updated.' |
Import | Import file with thousands of rows (RTC-34237) StagingImport job does not fail when one imported file contains over 4000 of JSON rows. |
Procurement API | Order number in 'Packages per store' response RTC-33988 "Packages per store" endpoint is extended with orderNumber value on orderLine level, so it is known which order the line from the package belongs to.
API for requesting packages per store does not return packages containing draft, edited, submitted or cancelled orders, but if there are multiple orders in the package and at least one of them has a confirmed status, the package will be returned. |
Purchase order | Dates (RTC-27773) The following dates are visible at order level:
For draft, submitted and edited statuses, only requested time of delivery/delivery date and estimated time of arrival are displayed. For the other statuses, all dates are visible (if defined). Order lines: Export to Excel (RTC-33758) Order lines can be export to Excel by 'Export to Excel' button. 'View purchase orders' permission is needed. User can narrow results by applying filters in columns in the grid. Exported fields are:
|
System | Database compatibility level (RTC-32039) Compatibility level on databases is set to 150. Import of currency rates (RTC-30891) Currency cost and sales rates are imported from Item Service. There is a 'ProcurementServiceJanitor' job in ProcurementServiceintegration package. By default, in runs once every night. If there were any changes in data, it rebuilds index on updated table in database. This results in a reduction of the database size and improves performance. |
Release 29.08.2023
Receive goods using InStore App
Goods receipt can be done using InStore App.
'Find order' option let the user count and submit goods for orders with no order despatch advice imported. Values counted in InStore App are added as 'Delivered' on purchase order line and 'Remaining' is updated. Goods receipt is created and exported same as when doing 'Receive goods' in Procurement Management. Cancelled goods receipt and lines with 0 items counted are ignored. When counted item which was not in order, this item is added to the order as new line. Deliveries are identified by order number and line number (provided in POSLog). 'Comment' from InStore App is saved as 'Receive note' on order. When received delivery for deleted order line, line is added back to order.
'Receive manually' can be used to create manual delivery. Order with status 'Done' is created for supplier of first scanned item (placeholders created if other items do not have this supplier).
'Find package' is not yet supported (receival of goods for imported order despatch advices).
Import of suppliers from Item Service works properly when GLN is changed between two suppliers within one import.
Improvements
Module | Description |
---|---|
Deliveries | Fix: Order dispatch advice import and purchase order validation (RTC-33997) 'Received' and 'Deviation' is properly displayed after creating or editing quantity of order dispatch advice line. |
Delivery and Purchase order | Pcs unit (RTC-31023) Import of items from ItemService is extended by unit. For 'pcs' unit only whole numbers are allowed when adding and editing order lines or delivery lines. The same for panels in receive goods view and delivery view. |
Internal transfer | Create 'internal transfer' purchase order in user interface (RTC-32775) 'Internal transfer' order type is available when creating new purchase order in user interface. When this type of order is selected, supplier dropdown shows only suppliers which GLN is the same as GLN of any store in Store Management. Any item can be added to this order - supplier-item relation is not needed and its placeholder is not created. Goods receipt for such order works same as for other order types. Purchase order is exported with 'InternalTransfer' order type. GLN of store must be unique. It is not possible to create order for store and supplier with same GLN.
'Internal transfer' order type is available when creating new manual delivery. Same as in purchase orders, when this type of order is selected, supplier dropdown shows only suppliers which GLN is the same as GLN of any store in Store Management. Any item can be added to this delivery - supplier-item relation is not needed and its placeholder is not created. It is not possible to create delivery for store and supplier with same GLN. Additionally, 'Preorder' order type can be selected for manual delivery.
Purchase order and order despatch advice imports from 3rd party are extended with 'internal transfer' order type and 'GLN' as store identifier. |
Purchase order | Status done (RTC-31607) It is possible to change status of the order from confirmed to done after receiving all expected deliveries. The set to done dialogues are different based on whether or not there is a remaining value. If remaining value, user is asked what to do with this value (add as deviation or edit order quantity to match what is delivered). If there is no remaining value, dialogue will show just the summary of the order. If there are active deliveries, dialogue that all deliveries must be processed before order can be set to done is shown. When the 'Set to done' button is clicked, the purchase order is exported. If the order has no deliveries, setting to done is not possible. Importing order despatch advice into an order with a done or cancelled status is blocked.
Supplier order number value is properly saved when confirming order.
Browser focus is on store dropdown when creating purchase order. Focus is on item input while entering purchase order. Supplier discount is always prefilled with '0' in panel for adding item to order. After adding item to order, focus on back to item search input. Only the just created order line row is expanded in order lines grid (other expanded lines are closed without saving changes). After saving changes in order line in submitted order, status 'Edited' and 'Resubmit' button are properly displayed. Order line note is wrapped when too long in read-only expanded order line (on statuses confirmed, cancelled, done).
Order lines that were created via manual delivery are visible in the user interface. Delivery date (RTC-30947) It is possible to set past delivery date when creating or editing order or order line. |
System | External store number (RTC-31281) StagingMerger in ProcurementServiceIntegration works properly when store has external number according to new rules (unique in company, not unique globally). StoreIdentifier used in imports has no longer externalStoreNo field. Field StoreNo is now required. New stores created through import have externalStoreNo set to null. |
Release 07.08.2023
Module | Description |
---|---|
Procurement API | InStore integration improvement (RTC-33068) |
Purchase order | Create purchase order from InStore App (RTC-30507) 'Item ordering' from InStore App is processed by Procurement and results in creating purchase order. It creates a draft purchase order with external number 'POSLOG-sequenceNo-supplierGLN'. For each ordered item such order is created, and when there already exists draft order created from InStore, with matching store and supplier - item is imported as new line in such order (one item ordering in InStore can contain items from multiple suppliers and will result in multiple orders in Procurement). Receipt note is saved as order line note. Quantity and net price is imported. Supplier discount is set to 0%. Order line number is generated. |
Purchase order and delivery | Expand row to show panel with order line details (RTC-32514) A panel with the following information has been added to each line, under both the 'Purchase orders' tab and the 'Deliveries' tab: ORDER (Order line note, Quantity), STOCK LEVEL (Ordered), PRICE (Wholesale price, Supplier discount) and DELIVERY DATES (Delivery date) only in 'Purchase orders' tab. When a new line is added to the purchase order, the panel is open and the focus is on the quantity field. In the 'Deliveries' tab, the panel does not open when a new line is added. The plus and minus buttons allow to expand or collapse the panel respectively. When the page is refreshed, all panels for all lines are collapsed. The panel can be edited when the order line has statuses: 'Draft', 'Submitted' or 'Edited'. For all other statuses a read-only panel is displayed. Delivery line can be edited when the delivery has draft status. There is no panel for other statuses of delivery. Setting a past date for purchase order line is possible. Preset price (RTC-32590) The price is automatically filled out when a new item is added to a purchase order or to manual delivery. Active wholesale price for item for given store is returned. The user can change it. The most current price is always entered based on the 'Valid from' column in the 'Store price' tab in the item view in Item Management. An exception is when store, profile and/or price zone prices are given. In this case, even if the profile/price zone price is more recent, the store price will be entered, as it has greater priority. When the price information is being searched, input is in 'loading' state, 'Wholesale price' field is blocked and it's not possible to enter any value there. Focus is on 'quantity' when price is successfully found and 0% is automatically entered in the discount field. If the item does not have a price or a price is equal to zero, focus is on the price field. Store number (RTC-32755) Column named 'Store no.' is visible in the Purchase orders and Deliveries views. This column is hidden when user has permission to only one store. There is an information about store number in overview tab, next to the store name. Column 'Store' is renamed to 'Store name'. |
System | Upgrade to LibBackEnd 5.4.0 (RTC-33208) LibBackEnd updated in order to support notifications and Azure SignalR. Import of stores by GLN (RTC-32901) Global Location Number is imported from Store Service and saved in Procurement database when a user edits an existing store or creates a new one. Import package related values of item (RTC-33245) 'Quantity in supplier package' and 'Min. order quantity' values of an item are imported from Item Service. Values are not yet used. |
Release 28.06.2023
Module | Description |
---|---|
Deliveries | Submit manual delivery (RTC-31139) It is possible to submit delivery which was created manually. The flow is: The user can create a new delivery from the deliveries view (both from the 'Package' and 'Order' tabs) using the 'New delivery' button. After clicking the button, he is taken to a view where he can add items and then click 'Submit'. When leaving goods receipt from manual delivery view without submit, status of delivery stays 'Draft'. Manual delivery can be edited until the user presses submit. Submit modal is added to goods receipt from manual delivery. After submitting delivery, user is redirected to previous view ('Package' tab or 'Order' tab). Purchase order status is set to 'Done', order delivery status is set to 'Done' and package status is set to 'Done'. Submit of manual delivery triggers export of purchase order and goods receipt. When delivery line is added to purchase order created through delivery, remaining is set to 0 and status is set to counted for added delivery line. Submitting package or order delivery from deliveries grid cause update of delivery fields on order lines related to submitted lines: 'delivered', and 'remaining'. Update of the quantities in the side panel (RTC-31664) After confirming delivery line from purchase orders or deliveries grid values from side panel are updated properly: received is set to ordered and remaining to 0. Manual delivery (RTC-31403) There are new names of the tabs in deliveries view: Packages' and 'Orders'. Deletion of the last line is blocked in manual delivery. When the user wants to edit a purchase order created manually, a message is displayed with link to delivery, where order can be edited. Default filter in delivery view is to show packages and orders with 'Active' (other than 'Done') delivery status. Despatch created manually and received order despatch advice lines cannot be edited through import. There is a required field validation when user wants to add/edit price or discount of item. Cancel manual delivery, add order/order line note (RTC-31622) Manual delivery ('Draft') can be cancelled. Such delivery is not visible in Deliveries grids (package and order). The purchase order has status and delivery status set to 'Cancelled'. In such purchase order there is no 'View delivery' link. 'View row' modal and side panel for goods receipt (RTC-31244) Side panel for goods receipt in read-only mode (received order despatch advice line) and 'View order' modal in read-only purchase order display values as text. Keyboard can be used to undo changes (Ctrl+Z), save (Enter), save and move to next line (Shift+Enter). Arrow keys can be used to change line selection. Panel can be closed and opened using button in its corner or 'Space' and 'Esc'. Trailing zeros are removed from side panel for goods receipt (so instead of 3.000 -> 3 is displayed). |
System | Separators in inputs (RTC-30928) Inputs in the application have unified decimal separators. Import of store prices (RTC-25594) Store prices of an item are imported from Item Service (store/store group, validity period, Sales unit, Net price, Retail price, store currency, VAT rate). |
Procurement API | API for all purchase orders for given store (RTC-30321) There is an endpoint (/api/gateway/PurchaseOrders/ordersPerStore/[storeNo]) in Procurement Service, which returns Active (Submitted, Edited, Confirmed) purchase orders for given store. Store is identified by store number. Response contains orderNumber, supplierName, order lines (line number, mainGTIN, originalQuantity (what was ordered), remainingQuantity (what is remaining after previous confirmed deliveries), deliveryDate (set by user on order line level). Endpoint supports OData filtering (filter by orderNumber, supplierName, top, skip and order parameters). Endpoint is documented in Swagger. API for all packages for given store (RTC-30618) There is an endpoint (/api/gateway/PurchaseOrders/packagesPerStore/[storeNo]) in Procurement Service, which returns pending packages for given store (not received and partially received packages and lines which are not 'Received'). Store is identified by store number. Response contains packageNumber, supplierName, order lines (line number, mainGTIN, quantity (number of items in package), deliveryDate (set by user on order line level). Endpoint supports OData filtering (filter by orderNumber, supplierName, top, skip and order parameters). Endpoint is documented in Swagger. API for purchase orders with given item and given store (RTC-31423) There is an endpoint (/api/gateway/PurchaseOrders/[storeNo]/orderedItem) in Procurement Service, which returns Active purchase orders for the item for given store. Store is identified by store number, item by SKU or mainGTIN. Response contains orderNo, originalQuantity, lineDeliveryDate, orderStatus, orderType. Endpoint supports OData filtering (filter by each field from response). |
Purchase orders | Overview grid (RTC-25195) There is a tab next to the 'Order lines' with collapse able section named 'Order details'. Before expanding the grid, the following information is displayed: delivery date, delivery status and sequence of numbers: delivered/ordered (deviation). After expanding we can see three sections: Overview (with fields Store, Delivery date, Order type, Order Note), Statistics (with fields Ordered, Delivered, Remaining and Deviation) and Price (with information what is the price of the whole order - Total). There is a sign: '+' or '-' next to the deviation value. The Toolbar contains buttons that allow user to change the status, such as are in the 'Order lines' tab (Submit order/Resubmit order/Mark as confirmed) and 'Add order note' or 'Edit order note' depending on whether the order contains a note. |
Purchase orders and deliveries | Decimal quantity (RTC-31022) Quantity can have 3 decimals and be between 0.001 and 9 999 999 999.999. It is possible to enter, import and export such values. Zeros at the end are not displayed, for example we show 1.1 and not 1.100. Sides panels not in scope. |
Release 29.05.2023
Order confirmation print
It is possible to generate PDF file by 'print order' button with order confirmation when status of order is submitted. The file contains the following information: purchase order number, order date, customer number, vendor, to which shop the order is sent ('Ship to' field), e-mail address ('Billing'), order note, GTIN (Item number), item name ('Description'), quantity of product ('Qty'), total price for each item and price for whole order.
Improvements
Module | Description |
---|---|
Deliveries | Receive goods with deviation (RTC-28803) Side panel in delivery view shows quantity of sent items and input for received quantity (max 3 decimals). After save, deviation is calculated, grid is updated and order despatch advice line has status 'Counted'. Focus is automatically set to the received field in the panel after opening panel or changing selected delivery row, so value can be entered directly. Keyboard can be used to undo changes (Ctrl+Z), save (Enter), save and move to next line (Shift+Enter). Arrow keys can be used to change line selection. Panel can be closed and opened using button in its corner or 'Space' and 'Esc'. Manual delivery (RTC-29687) It is possible to create a new delivery manually – delivery for which there was no purchase order. It can be created using button in Deliveries page and is displayed as package and order delivery in status 'Draft'. It is created alongside with new purchase order in state 'Confirmed', so all changes on manual delivery cause export of order. Such order cannot be edited through 'Purchase order' view. A package code is created for all order despatch advice lines in manual delivery when adding the first line. New despatch cannot be created for order created through manual delivery. If any line selected when creating new manual delivery, then field in form for store is filled with value from selected line. 'View deliveries' permission is needed to view manual deliveries. 'Manage purchase orders' permission is needed to create and edit manual delivery. Submit delivery (RTC-30255) It is possible to submit delivery which was created through 3rd party import. This can be done using 'Submit delivery' button in delivery page. Before submitting delivery, there is a modal with information about delivery (submitted quantity, amount, deviation). It is possible to add a receive note. After submitting, counted lines (in displayed package or order) status changes to 'Received'. Submission does not affect the 'not counted' lines. If all lines are 'Not counted', submit isn't possible. Received line cannot be edited and resubmitted. When submitting, statuses of relevant orders and packages change either to 'partially received' or 'done' depending on other delivery lines in order/package. Delivery status is added on purchase order level. Whether a purchase order can be edited depends on the 'delivery status'. Status 'Done': only new lines can be added. After this process, the delivery status changes to 'Partially received'. Status 'Partially received' and 'Not received': new lines can be added. Delivery status does not change. Handling of delivery status 'In progress' (counted, not submitted) or 'Draft' (manual delivery) - not in scope. Removal of order lines is only possible if the purchase order does not have any order despatch advice lines and delivery status is 'Partially received' or 'Not received'. Editing order line - not in scope. Goods receipt from purchase order (RTC-25796) There is 'Receive goods' button in purchase order with status 'Confirmed'. It opens order deliveries page if there is order despatch advice imported from 3rd party. Button is hidden when all purchase order lines are delivered. |
Export | Goods receipt (RTC-30254) Goods receipts are exported to blob as JSON, with content as specified in Swagger. Goods receipt is created after submit of delivery. |
Order lines | 'In order' column (RTC-26264) 'In order' column in order lines tab in purchase order indicates quantity of items in all purchase orders that are not deleted and have status submitted, edited or confirmed and are from the same store as the purchase order. Filtering and delete button (RTC-31614) |
Procurement API | Use order line delivery date in API for order info for item for given store (RTC-30953) Order lines in API response are grouped by delivery date on order line level instead of date on order level. |
Purchase order | Decimal quantity (RTC-26261) It is possible to enter, import and export decimal quantity of item in purchase order. Quantity can have 4 decimals and be between 0.0001 and 999999999.9999. Edit delivery date of item in confirmed purchase order (RTC-30708) Delivery date can be edited when purchase order has status 'Confirmed'. Line number (RTC-28425) Line no. is identifier of order line unique within each purchase order. Column is added to purchase order lines grid. When adding items to purchase order, it is automatically generated as a next available number, starting from 1. One item can be added to purchase order multiple times, as another order line with other line number (in user interface and import). Change status of purchase order when changing delivery date (RTC-30955) After changing delivery date of 'Submitted' order or order line, the status of purchase order changes to 'Edited'. |
System | Migration to .NET 6 (RTC-28897) Procurement Service module is migrated to .NET 6. Item name and item group name (RTC-31164) Item names with up to 255 characters can be stored in the Promotion and Procurement databases. The same applies to item groups stored only in the Promotion database. When the item names are too long when importing OrderDespatchAdvice or PurchaseOrder via a third party, a validation error will appear. Suppliers export/import (RTC-30619) Export of suppliers from Item Service and import to Procurement is extended by 'VAT number', 'Lead time', 'Reference' and 'EDI' fields. Import of items performance (RTC-28310) Performance of import of items and supplier-items is improved. |
Release 04.04.2023
Import of order despatch advice
Order despatch advice can be created by 3rd party using JSON file import via File Service. This is the document the sender of goods sends to the recipient as the goods are packed and shipped.
Order despatch is identified by unique externalOrderDespatchAdviceNo. A despatch advice relates to one order, identified by orderIdentifier. Order despatch lines are identified by externalLineNo that is unique within a despatch. A despatch advice line relates to one order line, identified by item identifier (order lineNo not yet supported).
Details of file format, values range, required fields and examples are documented in EG Cloud Swagger.
If supplier, store, item, supplier-item, purchase order, order line are not found, placeholder entities are created (such purchase order has status draft).
Order despatches are displayed in 'Deliveries' page in Procurement Management, where order despatch lines are grouped by package or number.
Deliveries - packages grid
There is 'Deliveries' page in Purchase tab in side menu. This page contains grid with list of packages. In the packages tab deliveries (upcoming and received) are displayed in terms of internal and external package number.
In User Management there is a permission on store role, located under 'Procurement' - 'Deliveries': 'View deliveries'. This permission allows to open deliveries grid. In this grid, user sees only orders in all stores to which he has access in this role.
Deliveries - order grid
There is 'Order' tab on 'Deliveries' page, It contains grid with deliveries in terms of internal and external order number.
Deliveries: Packages/orders details
Package details view is opened after clicking package number in "Packages" tab in "Deliveries". Page shows contents of the package. Each line has its order number (package can contain items from multiple purchase orders). "Order no" links to order delivery details page.
Order delivery details view is opened after clicking order number in "Order" tab in Deliveries. Page shows contents of the order that is being delivered. Each line has its package number (order can be delivered in multiple packages). "Package no" links to package details page.
Both pages breadcrumbs show package or order number, supplier name, number of lines and quantity of items in this package or order delivery.
Improvements
Module | Description |
---|---|
Deliveries | Mark items as counted without setting deviation (RTC-28850) It is possible to mark item lines as counted using 'Confirm items' button on bottom of the delivery details page. Item lines can be selected by using mouse, Control and Shift buttons. There is also a 'Select all' button. After clicking 'Confirm items' button, selected lines have status 'Counted', and 'Received' column has the same value as 'Order'. Deviation equals zero. |
Import | Order status (RTC-27171) "Order Status" is optional field in purchase order import from file. Value can be set to 'Draft' (default) or 'Submitted'. "Submitted" orders import fails when order uses placeholder store/supplier/item/supplier-item. Draft orders can be submitted, but submitted order cannot be set as draft. Other statuses are not supported. Purchase order export is triggered after creating/updating submitted order or submitting draft order through import. |
Procurement | Supplier model/Item number: (RTC-26263) Supplier number and Supplier Model number imported from Items to Procurement. Purchase orders and deliveries: (RTC-26263) Columns added to Procurement module, displayed in Purchase Orders and Deliveries. |
Purchase order | Order type (RTC-26548) "Order type" must be set when creating new purchase order: "Replenishment" or "Preorder". Value is displayed in column in "Purchase orders" grid. Order type of existing purchase order cannot be changed (in user interface and import API). Confirm (RTC-25795) 'Edited' and 'Submitted' orders can be confirmed using 'Mark as confirmed' button on bottom of purchase order page. To be confirmed, order must have at least one order line, and store/supplier/item/supplier-item cannot be placeholder. After clicking button, 'Confirm order' modal appears, where 'Supplier order no.' can be defined (not required, unique within supplier). Delivery date on purchase order line level (RTC-25710) Delivery date can be set for each order line. Existing order lines have delivery date same as delivery date of order. Order level value is also used for newly created order lines. Delivery date of order line can be changed in 'Edit row' modal or by selecting multiple rows and using 'Edit date' button on bottom of page. Multi-select of order lines (RTC-25710) Order lines can be selected by using mouse, Control (Ctrl) and Shift buttons. There is also a 'Select all' button. Cancel (RTC-28234) Purchase order can be cancelled using button in three dots menu on bottom of page. Pressing cancel order button opens modal with description and buttons to close modal or cancel order. When cancelling order with submitted, edited or confirmed status, order is exported with status "Cancelled". Supplier order number (RTC-30018) Supplier order number is pre-filled with value in database, allowing order confirmation without change of this value. |
System | Import of store groups (RTC-28768) Profiles and teams and its assignment to stores is imported from Store Service. |
Release 25.01.2023
Module | Description |
---|---|
Purchase order | Rename 'Supplier orders' to 'Purchase orders' (RTC-28177) 'Supplier orders' are renamed to 'Purchase orders' in user interface. Applies to menu, main page title, new order modal, URL. Delivery date is required (RTC-28070) Delivery date is a required field and cannot be set into the past. Existing orders delivery date is set to today (when order didn't have delivery date). Import from 3rd party works as before, when importing new purchase order Delivery Date is set to today's date. Dropshipment info in Purchase Order contracts (RTC-28604) Purchase Order import and export contracts contain dropshipment information: "shipTo" on order level (delivery address) and "deliveryDate" on order line (date or week of planned delivery). Documentation is updated. Both fields are not yet supported in application. |
Release 10.01.2023
Module | Description |
---|---|
Procurement Service | SupplierOrderNo in Purchase order contract (RTC-27574) "SupplierOrderNo" is identifier of order, which is unique per supplier. "ExternalOrderNo" is globally unique identifier used in import. PurchaseOrder and OrderDespatchAdvice import and export contracts contain "SupplierOrderNo" value. |
System | Import of items (RTC-26800) All item changes from Item Service are imported to Procurement database (SKU, MainGTIN, Brand, Name, status, ItemNo, assigned suppliers). Only items with status: Draft, Active, Stopped (not inactive and deleted) and delivered by selected supplier can be ordered, but it is possible to see and edit existing order lines containing incorrect items. When adding item through item search or 3rd party import, if item or item-supplier relation does not exist in Procurement database, placeholder row is created (values are expected to come in next import from Item Service). Order with placeholder store, supplier, item, item-supplier cannot be submitted. |
Release 16.12.2022
Module | Description |
---|---|
System | Import of suppliers (RTC-27020) Suppliers imported from Item Service are identified by internal identifier, so supplier is properly updated when its Number (external supplier number) is modified in Item Management register. When supplier has no internal identifier in Procurement, it is identified by external number (to allow update of existing data). |
Release 24.11.2022
Module | Description |
---|---|
Import | Import purchase order lines from API (RTC-26624) Order lines can be imported together with purchase order header. Contract and examples in Swagger contain order lines. Item is identified by SKU or GTIN. When item does not exist, placeholder item is created in Procurement database until item is imported from Item Service (SKU must be provided, GTIN and item name are optional). Order with placeholder items cannot be submitted through user interface. Only draft orders can be imported and updated. Quantity and wholesale price are required. Optional fields are supplier discount (0% by default), order line note and status (delete item from order). OrderDate on order level is renamed to OrderDateUTC. |
Procurement API | API for order info for item for given store (RTC-26259) There is an endpoint in Procurement Service, which returns Active (Submitted, Edited, Confirmed) orders for item for given store (including past deliveries that are not yet done). Store is identified by store number and item is identified by SKU or MainGTIN (SKU has higher priority when both are provided). Response contain delivery dates, orderNo, externalSupplierNo, supplierNo and quantity. |