First commit

This commit is contained in:
2026-06-01 23:16:10 +02:00
commit 1ea182f68d
56 changed files with 42848 additions and 0 deletions
+44
View File
@@ -0,0 +1,44 @@
// Auto-manage shopping list when item quantity changes relative to min_stock_threshold
onRecordAfterUpdateSuccess((e) => {
const item = e.record;
const qty = item.getFloat('quantity');
const minStock = item.getFloat('min_stock_threshold');
if (!minStock || minStock === 0) return;
const householdId = item.getString('household');
const app = e.app;
const existing = app.findRecordsByFilter(
'shopping_list',
`item_id = "${item.id}" && is_checked = false`,
'',
1,
0
);
if (qty <= minStock && existing.length === 0) {
const col = app.findCollectionByNameOrId('shopping_list');
const entry = new Record(col);
entry.set('household', householdId);
entry.set('item_id', item.id);
entry.set('name', item.getString('name'));
entry.set('suggested_quantity', minStock - qty + 1);
entry.set('unit', item.getString('unit'));
entry.set('is_checked', false);
entry.set('auto_added', true);
app.save(entry);
if (!item.getBool('on_shopping_list')) {
item.set('on_shopping_list', true);
app.save(item);
}
} else if (qty > minStock && existing.length > 0) {
app.delete(existing[0]);
if (item.getBool('on_shopping_list')) {
item.set('on_shopping_list', false);
app.save(item);
}
}
}, 'items');