Skip to content

Commit 898cf38

Browse files
feat: aggiunta gestione sconto combinato nello sconto delle righe dei documenti e in stampa
1 parent 4e003a8 commit 898cf38

20 files changed

Lines changed: 78 additions & 32 deletions

File tree

include/common/riga.php

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ function aggiorna_guadagno() {
133133
mediaponderata = parseFloat($("#idarticolo").selectData().media_ponderata);
134134
}
135135
136-
div.html("<table class=\"table table-extra-condensed table-margine\" style=\"margin-top:-25px;\" >\
136+
div.html("<table class=\"table table-extra-condensed table-margine\" style=\"margin-top:-13px;\" >\
137137
<tr>\
138138
<td>\
139139
<small>&nbsp;'.tr('Guadagno').':</small>\
@@ -215,6 +215,12 @@ function aggiorna_guadagno() {
215215
<i class="fa fa-calculator"></i>
216216
</button>
217217
{[ "type": "number", "label": "'.tr('Sconto unitario').'", "name": "sconto", "value": "'.($result['sconto_percentuale'] ?: $result['sconto_unitario_corrente']).'", "icon-after": "choice|untprc|'.$result['tipo_sconto'].'", "help": "'.tr('Il valore positivo indica uno sconto. Per applicare una maggiorazione inserire un valore negativo.').'" ]}
218+
<div style="margin-top:-29px;">
219+
<span class="badge badge-info" id="label_sconto">
220+
'.tr('Sconto combinato').': '.$result['sconto_percentuale_combinato'].'
221+
</span>
222+
</div>
223+
<input type="hidden" name="sconto_percentuale_combinato" id="sconto_percentuale_combinato" value="'.$result['sconto_percentuale_combinato'].'">
218224
</div>
219225
</div>';
220226

@@ -416,7 +422,7 @@ function controlla_sconto() {
416422
echo '
417423
<script>
418424
// Data inizio competenza deve essere minore di data fine competenza e data fine competenza deve essere maggiore di data inizio competenza
419-
$(document).ready(function() {
425+
$("#modals > div").on( "shown.bs.modal", function() {
420426
$("#data_inizio_competenza, #data_fine_competenza").on("dp.change", function (e) {
421427
var dataInizio = $("#data_inizio_competenza").data("DateTimePicker");
422428
var dataFine = $("#data_fine_competenza").data("DateTimePicker");
@@ -429,24 +435,33 @@ function controlla_sconto() {
429435
}
430436
}
431437
});
438+
updateButtonScontoCombinato();
432439
433440
// Abilita/disabilita il pulsante in base al tipo di sconto
434-
var updateButtonState = function() {
441+
function updateButtonScontoCombinato() {
435442
var tipo_sconto_select = $("#modals select[id^=\'tipo_sconto\']");
436443
var btn = $("#btn-sconto-combinato");
437444
438445
if (tipo_sconto_select.length) {
439446
var tipo = tipo_sconto_select.val();
440-
if (tipo === "PRC") {
447+
if (tipo === "PRC+") {
441448
btn.prop("disabled", false);
449+
$("#sconto").prop("disabled", true);
450+
$("#label_sconto").removeClass("hidden");
442451
} else {
443452
btn.prop("disabled", true);
453+
$("#sconto").prop("disabled", false);
454+
$("#label_sconto").addClass("hidden");
455+
$("#label_sconto").text("");
456+
$("#sconto_percentuale_combinato").val("");
444457
}
445458
}
446-
};
459+
}
447460
448461
// Aggiorna lo stato al cambio del tipo di sconto
449-
$(document).on("change", "#modals select[id^=\'tipo_sconto\']", updateButtonState);
462+
$("#modals select[id^=\'tipo_sconto\']").on("change", function () {
463+
updateButtonScontoCombinato();
464+
});
450465
451466
// Pulsante calcola sconto combinato
452467
$("#btn-sconto-combinato").click(function() {

lib/common.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,9 +137,10 @@ function discountInfo(Accounting $riga, $mostra_maggiorazione = true)
137137

138138
$text = ($riga->prezzo_unitario >= 0 && $riga->sconto_unitario > 0) || ($riga->prezzo_unitario < 0 && $riga->sconto_unitario < 0) ? tr('sconto _TOT_ _TYPE_') : tr('maggiorazione _TOT__TYPE_');
139139
$totale = !empty($riga->sconto_percentuale) ? $riga->sconto_percentuale : $riga->sconto_unitario_corrente;
140+
$sconto_combinato = $riga->sconto_percentuale_combinato ? '('.$riga->sconto_percentuale_combinato.')' : '';
140141

141142
return replace($text, [
142-
'_TOT_' => Translator::numberToLocale(abs($totale)),
143+
'_TOT_' => $sconto_combinato ?: Translator::numberToLocale(abs($totale)),
143144
'_TYPE_' => !empty($riga->sconto_percentuale) ? '%' : currency(),
144145
]);
145146
}

modules/contratti/actions.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@
204204

205205
$articolo->costo_unitario = post('costo_unitario') ?: 0;
206206
$articolo->setPrezzoUnitario(post('prezzo_unitario'), post('idiva'));
207-
$articolo->setSconto(post('sconto'), post('tipo_sconto'));
207+
$articolo->setSconto(post('sconto'), post('tipo_sconto'), post('sconto_percentuale_combinato'));
208208
$articolo->setProvvigione(post('provvigione'), post('tipo_provvigione'));
209209
$articolo->idconto = post('idconto') ?: null;
210210

@@ -264,7 +264,7 @@
264264

265265
$riga->costo_unitario = post('costo_unitario') ?: 0;
266266
$riga->setPrezzoUnitario(post('prezzo_unitario'), post('idiva'));
267-
$riga->setSconto(post('sconto'), post('tipo_sconto'));
267+
$riga->setSconto(post('sconto'), post('tipo_sconto'), post('sconto_percentuale_combinato'));
268268
$riga->setProvvigione(post('provvigione'), post('tipo_provvigione'));
269269

270270
$riga->qta = $qta;

modules/contratti/row-list.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,8 @@
229229
echo '
230230
<td>
231231
'.($show_notifica['show_notifica_sconto'] ? '<i class="fa fa-info-circle notifica-prezzi"></i>' : '').'
232-
{[ "type": "number", "name": "sconto_'.$riga->id.'", "value": "'.($riga->sconto_percentuale ?: $riga->sconto_unitario_corrente).'", "onchange": "aggiornaInline($(this).closest(\'tr\').data(\'id\'))", "icon-after": "'.($riga->isSconto() ? currency() : 'choice|untprc|'.($tipo_sconto ?: $riga->tipo_sconto)).'", "disabled": "'.$block_edit.'" ]}
232+
{[ "type": "number", "name": "sconto_'.$riga->id.'", "value": "'.($riga->sconto_percentuale ?: $riga->sconto_unitario_corrente).'", "onchange": "aggiornaInline($(this).closest(\'tr\').data(\'id\'))", "icon-after": "'.($riga->isSconto() ? currency() : 'choice|untprc|'.($tipo_sconto ?: $riga->tipo_sconto)).'", "disabled": "'.($block_edit || $riga->sconto_percentuale_combinato).'" ]}
233+
<small class="badge badge-info '.($riga->tipo_sconto == 'PRC+' ? '' : 'hidden').'">Sconto combinato: '.$riga->sconto_percentuale_combinato.'</small>
233234
</td>';
234235

235236
// Importo

modules/ddt/actions.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@
173173

174174
$articolo->costo_unitario = post('costo_unitario') ?: 0;
175175
$articolo->setPrezzoUnitario(post('prezzo_unitario'), post('idiva'));
176-
$articolo->setSconto(post('sconto'), post('tipo_sconto'));
176+
$articolo->setSconto(post('sconto'), post('tipo_sconto'), post('sconto_percentuale_combinato'));
177177
$articolo->idconto = post('idconto') ?: null;
178178
if ($dir == 'entrata') {
179179
$articolo->setProvvigione(post('provvigione'), post('tipo_provvigione'));
@@ -237,7 +237,7 @@
237237

238238
$riga->costo_unitario = post('costo_unitario') ?: 0;
239239
$riga->setPrezzoUnitario(post('prezzo_unitario'), post('idiva'));
240-
$riga->setSconto(post('sconto'), post('tipo_sconto'));
240+
$riga->setSconto(post('sconto'), post('tipo_sconto'), post('sconto_percentuale_combinato'));
241241
if ($dir == 'entrata') {
242242
$riga->setProvvigione(post('provvigione'), post('tipo_provvigione'));
243243
}

modules/ddt/row-list.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,8 @@
251251
echo '
252252
<td>
253253
'.($show_notifica['show_notifica_sconto'] ? '<i class="fa fa-info-circle notifica-prezzi"></i>' : '').'
254-
{[ "type": "number", "name": "sconto_'.$riga->id.'", "value": "'.($riga->sconto_percentuale ?: $riga->sconto_unitario_corrente).'", "onchange": "aggiornaInline($(this).closest(\'tr\').data(\'id\'))", "icon-after": "'.($riga->isSconto() ? currency() : 'choice|untprc|'.($tipo_sconto ?: $riga->tipo_sconto)).'", "disabled": "'.$block_edit.'" ]}
254+
{[ "type": "number", "name": "sconto_'.$riga->id.'", "value": "'.($riga->sconto_percentuale ?: $riga->sconto_unitario_corrente).'", "onchange": "aggiornaInline($(this).closest(\'tr\').data(\'id\'))", "icon-after": "'.($riga->isSconto() ? currency() : 'choice|untprc|'.($tipo_sconto ?: $riga->tipo_sconto)).'", "disabled": "'.($block_edit || $riga->sconto_percentuale_combinato).'" ]}
255+
<small class="badge badge-info '.($riga->tipo_sconto == 'PRC+' ? '' : 'hidden').'">Sconto combinato: '.$riga->sconto_percentuale_combinato.'</small>
255256
</td>';
256257

257258
// Importo

modules/fatture/actions.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -541,7 +541,7 @@
541541

542542
$articolo->costo_unitario = post('costo_unitario') ?: 0;
543543
$articolo->setPrezzoUnitario(post('prezzo_unitario'), post('idiva'));
544-
$articolo->setSconto(post('sconto'), post('tipo_sconto'));
544+
$articolo->setSconto(post('sconto'), post('tipo_sconto'), post('sconto_percentuale_combinato'));
545545
if ($dir == 'entrata') {
546546
$articolo->setProvvigione(post('provvigione'), post('tipo_provvigione'));
547547
}
@@ -619,7 +619,7 @@
619619

620620
$riga->costo_unitario = post('costo_unitario') ?: 0;
621621
$riga->setPrezzoUnitario(post('prezzo_unitario'), post('idiva'));
622-
$riga->setSconto(post('sconto'), post('tipo_sconto'));
622+
$riga->setSconto(post('sconto'), post('tipo_sconto'), post('sconto_percentuale_combinato'));
623623
if ($dir == 'entrata') {
624624
$riga->setProvvigione(post('provvigione'), post('tipo_provvigione'));
625625
}

modules/fatture/modals/sconto_combinato.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
4343
// Determina quale campo sconto è presente (sconto_percentuale o sconto)
4444
var sconto_field = $("#sconto_percentuale").length ? $("#sconto_percentuale") : $("#sconto");
45+
var label_sconto = $("#label_sconto");
4546
4647
// Reinizializza i componenti del form quando il modal si apre
4748
modal.on("shown.bs.modal", function() {
@@ -66,6 +67,9 @@
6667
success: function(response) {
6768
if (response.success) {
6869
sconto_field.val(response.sconto.toLocale());
70+
$("#sconto_percentuale_combinato").val(prc_combinato);
71+
label_sconto.removeClass("hidden");
72+
label_sconto.text("'.tr('Sconto combinato').': " + prc_combinato);
6973
sconto_field.trigger("keyup");
7074
modal.modal("hide");
7175
} else {

modules/fatture/row-list.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,8 @@
279279
echo '
280280
<td>
281281
'.($show_notifica['show_notifica_sconto'] ? '<i class="fa fa-info-circle notifica-prezzi"></i>' : '').'
282-
{[ "type": "number", "name": "sconto_'.$riga->id.'", "value": "'.($riga->sconto_percentuale ?: $riga->sconto_unitario_corrente).'", "onchange": "aggiornaInline($(this).closest(\'tr\').data(\'id\'))", "icon-after": "'.($riga->isSconto() ? currency() : 'choice|untprc|'.($tipo_sconto ?: $riga->tipo_sconto)).'", "disabled": "'.$block_edit.'" ]}
282+
{[ "type": "number", "name": "sconto_'.$riga->id.'", "value": "'.($riga->sconto_percentuale ?: $riga->sconto_unitario_corrente).'", "onchange": "aggiornaInline($(this).closest(\'tr\').data(\'id\'))", "icon-after": "'.($riga->isSconto() ? currency() : 'choice|untprc|'.($tipo_sconto ?: $riga->tipo_sconto)).'", "disabled": "'.($block_edit || $riga->sconto_percentuale_combinato).'" ]}
283+
<small class="badge badge-info '.($riga->tipo_sconto == 'PRC+' ? '' : 'hidden').'">Sconto combinato: '.$riga->sconto_percentuale_combinato.'</small>
283284
</td>';
284285

285286
// Iva

modules/interventi/actions.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -762,7 +762,7 @@
762762

763763
$articolo->costo_unitario = post('costo_unitario') ?: 0;
764764
$articolo->setPrezzoUnitario(post('prezzo_unitario'), post('idiva'));
765-
$articolo->setSconto(post('sconto'), post('tipo_sconto'));
765+
$articolo->setSconto(post('sconto'), post('tipo_sconto'), post('sconto_percentuale_combinato'));
766766
$articolo->setProvvigione(post('provvigione'), post('tipo_provvigione'));
767767
$articolo->idconto = post('idconto') ?: null;
768768

@@ -832,7 +832,7 @@
832832

833833
$riga->costo_unitario = post('costo_unitario') ?: 0;
834834
$riga->setPrezzoUnitario(post('prezzo_unitario'), post('idiva'));
835-
$riga->setSconto(post('sconto'), post('tipo_sconto'));
835+
$riga->setSconto(post('sconto'), post('tipo_sconto'), post('sconto_percentuale_combinato'));
836836
$riga->setProvvigione(post('provvigione'), post('tipo_provvigione'));
837837

838838
$riga->qta = $qta;

0 commit comments

Comments
 (0)