diff --git a/changelog/69_UNRELEASED_xxxx-xx-xx.md b/changelog/69_UNRELEASED_xxxx-xx-xx.md index 81a07961..c529c3ae 100644 --- a/changelog/69_UNRELEASED_xxxx-xx-xx.md +++ b/changelog/69_UNRELEASED_xxxx-xx-xx.md @@ -8,6 +8,7 @@ ### Stock +- Improved that when editing a unit conversion, the "Quantity unit from" and "Quantity unit to" of the corresponding inverse conversion is now also updated accordingly if changed (until now only the factor was updated automatically) - Fixed that stock entry notes were lost when consuming/opening/transferring a partial amount of the corresponding stock entry (thanks @akoshpinter) - Fixed that the average shelf life of a product (on the productcard) was wrong when the corresponding stock entry was edited - Fixed that when the stock setting "Decimal places allowed for amounts" was set to `0`, unit conversion (if any) failed when adding the corresponding product to stock diff --git a/migrations/0199.sql b/migrations/0199.sql new file mode 100644 index 00000000..36b99e22 --- /dev/null +++ b/migrations/0199.sql @@ -0,0 +1,15 @@ +DROP TRIGGER qu_conversions_inverse_UPD; +CREATE TRIGGER qu_conversions_inverse_UPD AFTER UPDATE ON quantity_unit_conversions +BEGIN + /* + Update the inverse QU conversion + */ + + UPDATE quantity_unit_conversions + SET factor = 1 / IFNULL(NEW.factor, 1), + from_qu_id = NEW.to_qu_id, + to_qu_id = NEW.from_qu_id + WHERE from_qu_id = OLD.to_qu_id + AND to_qu_id = OLD.from_qu_id + AND IFNULL(product_id, -1) = IFNULL(NEW.product_id, -1); +END;