+
+
+ Masovno editovanje cena
+
+
+
+
+ {/* Filters */}
+
+
Filteri:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ setSearchTerm(e.target.value)}
+ placeholder="Pretraži boju, tip, finiš..."
+ className="w-full px-3 py-2 border rounded dark:bg-gray-600 dark:border-gray-500 dark:text-white"
+ />
+
+
+
+
+ Prikazano: {filteredFilaments.length} filament(a)
+
+
+
+ {/* Price inputs */}
+
+
+ Nove cene za filtrirane filamente:
+
+
+
+ Napomena: Možete promeniti samo refill, samo spulna, ili obe cene. Prazna polja će zadržati postojeće cene.
+
+
+
+ {/* Preview */}
+
+
+ Pregled filamenata ({colorGroups.length} boja):
+
+ {colorGroups.length === 0 ? (
+
+ Nema filamenata koji odgovaraju filterima
+
+ ) : (
+
+
+
+ | Boja |
+ Tip |
+ Finiš |
+ Refill |
+ Spulna |
+ Trenutna cena |
+ Nova cena |
+
+
+
+ {colorGroups.map(([color, filamentGroup]) =>
+ filamentGroup.map((f, idx) => {
+ const prices = f.cena.split('/');
+ const currentRefillPrice = parseInt(prices[0]) || 3499;
+ const currentSpoolPrice = prices.length > 1 ? parseInt(prices[1]) || 3999 : 3999;
+
+ const refillPrice = parseInt(newRefillPrice);
+ const spoolPrice = parseInt(newSpoolPrice);
+
+ const finalRefillPrice = !isNaN(refillPrice) ? refillPrice : currentRefillPrice;
+ const finalSpoolPrice = !isNaN(spoolPrice) ? spoolPrice : currentSpoolPrice;
+
+ let newPriceString = '';
+ if (f.refill > 0 && f.spulna > 0) {
+ newPriceString = `${finalRefillPrice}/${finalSpoolPrice}`;
+ } else if (f.refill > 0) {
+ newPriceString = String(finalRefillPrice);
+ } else if (f.spulna > 0) {
+ newPriceString = String(finalSpoolPrice);
+ }
+
+ const priceChanged = newPriceString !== f.cena;
+
+ return (
+
+ | {f.boja} |
+ {f.tip} |
+ {f.finish} |
+ {f.refill} |
+ {f.spulna} |
+ {f.cena} |
+
+ {newPriceString || f.cena}
+ |
+
+ );
+ })
+ )}
+
+
+ )}
+
+
+ {/* Actions */}
+
+
+
+
+
+
+
+