Warenwirtschaft: AP-00 bis AP-08 + aktualisierter Entwicklungsplan
Umsetzung der Warenwirtschafts-/Produktmanagement-Erweiterung gemaess Entwicklungsplan V4.0: - AP-00: Regressionsbasis fuer 5.1-Features (ProductPhase51Test) - AP-01: URL-Bugfixes B1/B2 (suppliers/packaging-items, breitere url-Spalten) - AP-04/04.1: iPad-taugliche, vereinheitlichte Tabellen-Aktionen - AP-05: Einstellungen "Allgemein" mit UST-Saetzen (tax_rates) und Lieferzeit-Vorlagen (delivery_times, inkl. Tage-Feld) - AP-06: Lieferanten um Bestellweg, Bestell-Mail/-URL und Lieferzeit erweitert - AP-07/07.1: INCI um Lieferanten-Mehrfachwahl, UST und Lieferzeit erweitert; Lieferanten-Detailansicht im Modal mit pflegbaren INCI-/Verpackungslisten - AP-08: Einkauf um UST-Snapshot, Netto/Brutto-Automatik und Duplizieren erweitert Entwicklungsplan aktualisiert: alle Klaerungspunkte (§5) vom Kunden beantwortet und in die jeweiligen APs eingearbeitet (AP-02/03/09/13/15), neues AP-18 (Hinweise-Doku unter Einstellungen) ergaenzt. Naechster Schritt eindeutig markiert: AP-09 (Produktion auf Hersteller-Rezeptur, kein Fallback, Warnung).
This commit is contained in:
parent
ca3eb663fe
commit
78679e0c55
67 changed files with 3523 additions and 101 deletions
|
|
@ -65,6 +65,43 @@
|
|||
});
|
||||
}
|
||||
|
||||
function parseNumber(value) {
|
||||
if (value === null || value === undefined) {
|
||||
return null;
|
||||
}
|
||||
var normalized = String(value).trim().replace(/\./g, '').replace(',', '.');
|
||||
if (normalized === '' || isNaN(normalized)) {
|
||||
return null;
|
||||
}
|
||||
return parseFloat(normalized);
|
||||
}
|
||||
|
||||
function formatNumber(value) {
|
||||
return value.toFixed(2).replace('.', ',');
|
||||
}
|
||||
|
||||
function currentFactor() {
|
||||
var percent = parseFloat($('#tax_rate_id option:selected').data('percent')) || 0;
|
||||
return 1 + percent / 100;
|
||||
}
|
||||
|
||||
function recalcFromNet() {
|
||||
var net = parseNumber($('#price_per_kg').val());
|
||||
if (net === null) {
|
||||
return;
|
||||
}
|
||||
$('#price_per_kg_gross').val(formatNumber(net * currentFactor()));
|
||||
}
|
||||
|
||||
function recalcFromGross() {
|
||||
var gross = parseNumber($('#price_per_kg_gross').val());
|
||||
if (gross === null) {
|
||||
return;
|
||||
}
|
||||
var factor = currentFactor();
|
||||
$('#price_per_kg').val(formatNumber(factor > 0 ? gross / factor : gross));
|
||||
}
|
||||
|
||||
$(document).ready(function () {
|
||||
toggleBlocks();
|
||||
initIngredientSelect2();
|
||||
|
|
@ -75,6 +112,16 @@
|
|||
$('#packaging_item_id').val(null).trigger('change');
|
||||
initPackagingSelect2();
|
||||
});
|
||||
|
||||
$('#price_per_kg').on('input', recalcFromNet);
|
||||
$('#price_per_kg_gross').on('input', recalcFromGross);
|
||||
$('#tax_rate_id').on('change', function () {
|
||||
if (parseNumber($('#price_per_kg').val()) !== null) {
|
||||
recalcFromNet();
|
||||
} else {
|
||||
recalcFromGross();
|
||||
}
|
||||
});
|
||||
});
|
||||
})(jQuery);
|
||||
</script>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue