Aggiunti alert in fase di aggiunta riga per importi negativi e sconti

This commit is contained in:
MatteoPistorello 2022-04-08 16:54:31 +02:00
parent 1130bfc0b2
commit 7047010aa8
6 changed files with 93 additions and 8 deletions

View File

@ -62,7 +62,7 @@ L'installazione del gestionale richiede la presenza di un server web con abilita
| PHP | EOL | Supportato | | PHP | EOL | Supportato |
|-----|-----|:----------:| |-----|-----|:----------:|
| 8.1 | 25/11/2023 | ❌ | | 8.1 | 25/11/2024 | ❌ |
| 8.0 | 26/11/2023 | ✔️ | | 8.0 | 26/11/2023 | ✔️ |
| 7.4 | 28/11/2022 | ✔️ | | 7.4 | 28/11/2022 | ✔️ |
| 7.3 | 06/12/2021 | ❌ | | 7.3 | 06/12/2021 | ❌ |

View File

@ -43,9 +43,12 @@ echo '
</div> </div>
</div>'; </div>';
$is_nota = $options['is_nota'] ?: 0;
echo ' echo '
<div class="row '.(!empty($options['nascondi_prezzi']) ? 'hidden' : '').'"> <div class="row '.(!empty($options['nascondi_prezzi']) ? 'hidden' : '').'">
<input type="hidden" name="prezzi_ivati" value="'.setting('Utilizza prezzi di vendita comprensivi di IVA').'">'; <input type="hidden" name="prezzi_ivati" value="'.setting('Utilizza prezzi di vendita comprensivi di IVA').'">
<input type="hidden" name="is_nota" value="'.$is_nota.'">
<input type="hidden" name="dir" value="'.$options['dir'].'">';
$width = $options['dir'] == 'entrata' ? 4 : 6; $width = $options['dir'] == 'entrata' ? 4 : 6;
$label = $options['dir'] == 'entrata' ? tr('Prezzo unitario di vendita') : tr('Prezzo unitario'); $label = $options['dir'] == 'entrata' ? tr('Prezzo unitario di vendita') : tr('Prezzo unitario');
@ -222,3 +225,68 @@ if (in_array($module['name'], ['Ordini cliente', 'Ordini fornitore', 'Preventivi
}); });
</script>'; </script>';
} }
if (in_array($module['name'], ['Fatture di vendita', 'Fatture di acquisto'])) {
echo '
<script>
$(document).ready(function() {
if(input("data_evasione").get()){
input("ora_evasione").enable();
}
controlla_prezzo();
controlla_sconto();
});
$("#data_evasione").blur(function() {
if(input("data_evasione").get()){
input("ora_evasione").enable();
} else{
input("ora_evasione").disable();
input("ora_evasione").set();
}
});
$("#prezzo_unitario").on("keyup", function() {
controlla_prezzo();
});
$("#sconto").on("keyup", function() {
controlla_sconto();
});
function controlla_prezzo() {
let prezzo_unitario = $("#prezzo_unitario").val().toEnglish();
let div = $("#prezzo_unitario").closest("div").next("div[id*=errors]");
if (prezzo_unitario < 0) {
if (input("is_nota").get() == true) {
if (input("dir").get() == "entrata") {
div.html(`<small class="label label-warning"><i class="fa fa-exclamation-triangle"></i> '.tr('Importo a credito').'</small>`);
} else {
div.html(`<small class="label label-warning"><i class="fa fa-exclamation-triangle"></i> '.tr('Importo a debito').'</small>`);
}
} else {
if (input("dir").get() == "entrata") {
div.html(`<small class="label label-warning"><i class="fa fa-exclamation-triangle"></i> '.tr('Importo a debito').'</small>`);
} else {
div.html(`<small class="label label-warning"><i class="fa fa-exclamation-triangle"></i> '.tr('Importo a credito').'</small>`);
}
}
} else {
div.html("");
}
}
function controlla_sconto() {
let sconto = $("#sconto").val().toEnglish();
let div = $("#sconto").closest("div").next("div[id*=errors]");
if (sconto > 0) {
div.html(`<small class="label label-default" >'.tr('Sconto').'</small>`);
} else if (sconto < 0) {
div.html(`<small class="label label-default" >'.tr('Maggiorazione').'</small>`);
} else {
div.html("");
}
}
</script>';
}

View File

@ -64,25 +64,42 @@ echo '
function aggiorna_sconto_percentuale() { function aggiorna_sconto_percentuale() {
var sconto = sconto_percentuale.val().toEnglish(); var sconto = sconto_percentuale.val().toEnglish();
var unitario = sconto / 100 * totale; var unitario = sconto / 100 * totale;
var msg = sconto >= 0 ? "'.tr('Sconto percentuale').'" : "'.tr('Maggiorazione percentuale').'"; var msg = sconto >= 0 ? "'.tr('Sconto percentuale').'" : "'.tr('Maggiorazione percentuale').'";
var div = sconto_percentuale.closest("div").next("div[id*=errors]");
sconto_unitario.val(unitario.toLocale()); sconto_unitario.val(unitario.toLocale());
if (sconto !== 0) { if (sconto !== 0) {
descrizione.val(msg + " " + Math.abs(sconto).toLocale() + "%"); descrizione.val(msg + " " + Math.abs(sconto).toLocale() + "%");
} }
if (sconto > 0) {
div.html(`<small class="label label-default" >'.tr('Sconto').'</small>`);
} else if (sconto < 0) {
div.html(`<small class="label label-default" >'.tr('Maggiorazione').'</small>`);
} else {
div.html("");
}
} }
function aggiorna_sconto_unitario(){ function aggiorna_sconto_unitario(){
var sconto = sconto_unitario.val().toEnglish(); var sconto = sconto_unitario.val().toEnglish();
var msg = sconto >= 0 ? "'.tr('Sconto unitario').'" : "'.tr('Maggiorazione unitaria').'"; var msg = sconto >= 0 ? "'.tr('Sconto unitario').'" : "'.tr('Maggiorazione unitaria').'";
var div = sconto_unitario.closest("div").next("div[id*=errors]");
sconto_percentuale.val(0); sconto_percentuale.val(0);
if (sconto !== 0) { if (sconto !== 0) {
descrizione.val(msg); descrizione.val(msg);
} }
if (sconto > 0) {
div.html(`<small class="label label-default" >'.tr('Sconto').'</small>`);
} else if (sconto < 0) {
div.html(`<small class="label label-default" >'.tr('Maggiorazione').'</small>`);
} else {
div.html("");
}
} }
sconto_percentuale.keyup(aggiorna_sconto_percentuale); sconto_percentuale.keyup(aggiorna_sconto_percentuale);

View File

@ -824,7 +824,7 @@ if ($dir == 'entrata') {
if ($fattura->isFE()) { if ($fattura->isFE()) {
echo ' echo '
<div class="alert alert-info text-center" id="controlla_totali"><i class="fa fa-spinner fa-spin"></i> '.tr('Controllo sui totali del documento e della fattura elettronica in corso').'...</div> <div class="alert alert-info text-center" id="controlla_totali"></div>
<script> <script>
$(document).ready(function() { $(document).ready(function() {
@ -846,9 +846,7 @@ if ($fattura->isFE()) {
if (stored == null) { if (stored == null) {
div.addClass("alert-info").html("'.tr("Il file XML non contiene il nodo ''ImportoTotaleDocumento'': impossibile controllare corrispondenza dei totali").'.") div.addClass("alert-info").html("'.tr("Il file XML non contiene il nodo ''ImportoTotaleDocumento'': impossibile controllare corrispondenza dei totali").'.")
} else if (stored.toLocale() == calculated.toLocale()){ } else if (stored.toLocale() != calculated.toLocale()){
div.addClass("alert-success").html("'.tr('Il totale del file XML corrisponde a quello calcolato dal gestionale').'.")
} else {
div.addClass("alert-warning").html("'.tr('Il totale del file XML non corrisponde a quello calcolato dal gestionale: previsto _XML_, calcolato _CALC_ (differenza _DIFF_)', [ div.addClass("alert-warning").html("'.tr('Il totale del file XML non corrisponde a quello calcolato dal gestionale: previsto _XML_, calcolato _CALC_ (differenza _DIFF_)', [
'_XML_' => '" + stored.toLocale() + " " + globals.currency + "', '_XML_' => '" + stored.toLocale() + " " + globals.currency + "',
'_CALC_' => '" + calculated.toLocale() + " " + globals.currency + "', '_CALC_' => '" + calculated.toLocale() + " " + globals.currency + "',

View File

@ -34,6 +34,7 @@ $options = [
'show-ritenuta-contributi' => !empty($documento['id_ritenuta_contributi']), 'show-ritenuta-contributi' => !empty($documento['id_ritenuta_contributi']),
'totale_imponibile_documento' => $documento->totale_imponibile, 'totale_imponibile_documento' => $documento->totale_imponibile,
'totale_documento' => $documento->totale, 'totale_documento' => $documento->totale,
'is_nota' => $documento->isNota(),
'select-options' => [ 'select-options' => [
'articoli' => [ 'articoli' => [
'idanagrafica' => $documento->idanagrafica, 'idanagrafica' => $documento->idanagrafica,

View File

@ -33,6 +33,7 @@ $options = [
'show-ritenuta-contributi' => !empty($documento['id_ritenuta_contributi']), 'show-ritenuta-contributi' => !empty($documento['id_ritenuta_contributi']),
'totale_imponibile_documento' => $documento->totale_imponibile, 'totale_imponibile_documento' => $documento->totale_imponibile,
'totale_documento' => $documento->totale, 'totale_documento' => $documento->totale,
'is_nota' => $documento->isNota(),
'select-options' => [ 'select-options' => [
'articoli' => [ 'articoli' => [
'idanagrafica' => $documento->idanagrafica, 'idanagrafica' => $documento->idanagrafica,