mirror of
https://github.com/grocy/grocy.git
synced 2025-04-29 17:45:39 +00:00
* viewjs consume: implement location and update stock specific * Transfer Products * services StockService#GetProductStockEntriesByLocation: add method * services StockService#AddProduct: check for stock and locations * services StockService: include location_id * services StockService#LocationExists: add method * services StockService#UndoBooking: fix based on stockRow * Reimplement StockServer->TransferProduct (one loop for the whole action to preserve stock_id) * Ensure that the location_id is never NULL in the stock and stock_log table (checked by an INSERT trigger, sets the products default location if empty) * Only consider stock amount at the given location on consume, if supplied * Restore more/old display text for "specific stock entry" * Don't allow transfering tare weight enabled products * Various small changes (code style, missing OpenAPI endpoint, remove location_id null checking) * Updated translations strings * Added transaction_id and correlation_id to stock_log entries to group them together * ProductCard - location to default location label change * Also undo correlated bookings on undo * Added API endpoints for listing and undoing transactions and use them on purchase/consume/inventory/stockoverview * Initial Stock detail page * Allow Undo for Tranfers * Price step to .01 * Some localization string changes & fixes
38 lines
916 B
SQL
38 lines
916 B
SQL
CREATE TRIGGER set_products_default_location_if_empty_stock AFTER INSERT ON stock
|
|
BEGIN
|
|
UPDATE stock
|
|
SET location_id = (SELECT location_id FROM products where id = product_id)
|
|
WHERE id = NEW.id
|
|
AND location_id IS NULL;
|
|
END;
|
|
|
|
CREATE TRIGGER set_products_default_location_if_empty_stock_log AFTER INSERT ON stock_log
|
|
BEGIN
|
|
UPDATE stock_log
|
|
SET location_id = (SELECT location_id FROM products where id = product_id)
|
|
WHERE id = NEW.id
|
|
AND location_id IS NULL;
|
|
END;
|
|
|
|
ALTER TABLE stock_log
|
|
ADD correlation_id TEXT;
|
|
|
|
ALTER TABLE stock_log
|
|
ADD transaction_id TEXT;
|
|
|
|
ALTER TABLE stock_log
|
|
ADD stock_row_id INTEGER;
|
|
|
|
DROP VIEW stock_current_locations;
|
|
CREATE VIEW stock_current_locations
|
|
AS
|
|
SELECT
|
|
1 AS id, -- Dummy, LessQL needs an id column
|
|
s.product_id,
|
|
s.location_id AS location_id,
|
|
l.name AS location_name
|
|
FROM stock s
|
|
JOIN locations l
|
|
ON s.location_id = l.id
|
|
GROUP BY s.product_id, s.location_id, l.name;
|