20260317c: Torta->Dolce, Bring specification with brand for product variants

This commit is contained in:
dadaloop82
2026-03-17 13:55:30 +00:00
parent d1df6a6862
commit 7cc557d4df
4 changed files with 22 additions and 10 deletions
+10 -4
View File
@@ -3497,6 +3497,7 @@ function isLowStock(totalRemaining, unit, defaultQty) {
function showLowStockBringPrompt(result, afterCallback) {
const name = result.product_name || currentProduct?.name || '';
const brand = result.product_brand || currentProduct?.brand || '';
const unit = result.product_unit || currentProduct?.unit || 'pz';
const defaultQty = result.product_default_qty || parseFloat(currentProduct?.default_quantity) || 0;
const totalRemaining = result.total_remaining;
@@ -3516,16 +3517,19 @@ function showLowStockBringPrompt(result, afterCallback) {
remainLabel = `${Number.isInteger(totalRemaining) ? totalRemaining : totalRemaining.toFixed(1)} ${unitLabels[unit] || unit}`;
}
// Store callback for after user responds
// Build specification from brand for Bring
const spec = brand || '';
window._lowStockAfterCallback = afterCallback;
window._lowStockSpec = spec;
const brandNote = brand ? ` (${escapeHtml(brand)})` : '';
document.getElementById('modal-content').innerHTML = `
<div class="modal-header">
<h3> Sta per finire!</h3>
<button class="modal-close" onclick="closeLowStockPrompt()"></button>
</div>
<div style="padding:0 16px 16px">
<p style="margin-bottom:12px"><strong>${escapeHtml(name)}</strong> sta per finire rimangono solo <strong>${remainLabel}</strong>.</p>
<p style="margin-bottom:12px"><strong>${escapeHtml(name)}</strong>${brandNote} sta per finire rimangono solo <strong>${remainLabel}</strong>.</p>
<p style="margin-bottom:16px">Vuoi aggiungerlo alla lista della spesa?</p>
<button type="button" class="btn btn-large btn-success full-width" onclick="addLowStockToBring('${escapeHtml(name).replace(/'/g, "\\'")}')">
🛒 , aggiungi a Bring!
@@ -3541,7 +3545,9 @@ function showLowStockBringPrompt(result, afterCallback) {
async function addLowStockToBring(productName) {
closeModal();
try {
const payload = { items: [{ name: productName }] };
const spec = window._lowStockSpec || '';
window._lowStockSpec = null;
const payload = { items: [{ name: productName, specification: spec }] };
if (shoppingListUUID) payload.listUUID = shoppingListUUID;
const data = await api('bring_add', {}, 'POST', payload);
if (data.success && data.added > 0) {
@@ -4835,7 +4841,7 @@ const MEAL_TYPES = [
{ id: 'pranzo', icon: '🍽️', label: 'Pranzo', from: 11, to: 14 },
{ id: 'merenda', icon: '🍪', label: 'Merenda', from: 14, to: 17 },
{ id: 'cena', icon: '🌙', label: 'Cena', from: 17, to: 6 },
{ id: 'torta', icon: '🎂', label: 'Torta', from: -1, to: -1 },
{ id: 'dolce', icon: '🍰', label: 'Dolce', from: -1, to: -1 },
{ id: 'succo', icon: '🧃', label: 'Succo di Frutta', from: -1, to: -1 },
];