20260317c: Torta->Dolce, Bring specification with brand for product variants
This commit is contained in:
+10
-4
@@ -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, "\\'")}')">
|
||||
🛒 Sì, 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 },
|
||||
];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user