Skip to content

Commit 711dfc5

Browse files
feat: gestione data competenza nei documenti
1 parent 7b49430 commit 711dfc5

29 files changed

Lines changed: 287 additions & 66 deletions

File tree

include/common/riga.php

Lines changed: 57 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -240,8 +240,40 @@ function aggiorna_guadagno() {
240240
<br>';
241241
}
242242

243-
// Data prevista evasione (per ordini)
243+
echo '
244+
<div class="card card-info collapsed-card">
245+
<div class="card-header with-border">
246+
<h3 class="card-title">'.tr('Informazioni aggiuntive').'</h3>
247+
<div class="card-tools pull-right">
248+
<button type="button" class="btn btn-tool" data-card-widget="collapse"><i class="fa fa-plus"></i></button>
249+
</div>
250+
</div>
244251
252+
<div class="card-body">
253+
<div class="row">
254+
<div class="col-md-4">
255+
{[ "type": "date", "label": "'.tr('Data inizio competenza').'", "name": "data_inizio_competenza", "value": "'.$result['data_inizio_competenza'].'" ]}
256+
</div>
257+
258+
<div class="col-md-4">
259+
{[ "type": "date", "label": "'.tr('Data fine competenza').'", "name": "data_fine_competenza", "value": "'.$result['data_fine_competenza'].'" ]}
260+
</div>';
261+
262+
if (isset($result['type']) && isset($result['id'])) {
263+
$riga = $result['type']::find($result['id']);
264+
if ($riga->hasDifferentOriginalDateCompetenza()) {
265+
echo '
266+
<div class="col-md-4">
267+
<div class="alert alert-danger">
268+
<i class="fa fa-warning"></i> '.tr('Attenzione! Le date di competenza non coincidono con le date della riga di origine.').'
269+
</div>
270+
</div>';
271+
}
272+
}
273+
echo '
274+
</div>';
275+
276+
// Data prevista evasione (per ordini)
245277
if (in_array($module->name, ['Ordini cliente', 'Ordini fornitore', 'Preventivi'])) {
246278
if ($options['action'] == 'add') {
247279
if ($module->name == 'Ordini cliente') {
@@ -254,16 +286,8 @@ function aggiorna_guadagno() {
254286
} else {
255287
$confermato = $result['confermato'];
256288
}
257-
echo '
258-
<div class="card card-info collapsed-card">
259-
<div class="card-header with-border">
260-
<h3 class="card-title">'.tr('Informazioni aggiuntive').'</h3>
261-
<div class="card-tools pull-right">
262-
<button type="button" class="btn btn-tool" data-card-widget="collapse"><i class="fa fa-plus"></i></button>
263-
</div>
264-
</div>
265289

266-
<div class="card-body">
290+
echo '
267291
<div class="row">
268292
<div class="col-md-4">
269293
{[ "type": "date", "label": "'.tr('Data prevista evasione').'", "name": "data_evasione", "value": "'.$result['data_evasione'].'" ]}
@@ -286,8 +310,6 @@ function aggiorna_guadagno() {
286310
{[ "type": "checkbox", "label": "'.tr('Cambia stato a tutte le righe').'", "name": "confermato_all", "value": "" ]}
287311
</div>
288312
</div>
289-
</div>
290-
</div>
291313
292314
<script>
293315
$(document).ready(function() {
@@ -307,6 +329,10 @@ function aggiorna_guadagno() {
307329
</script>';
308330
}
309331

332+
echo '
333+
</div>
334+
</div>';
335+
310336
if (in_array($module->name, ['Fatture di vendita', 'Fatture di acquisto'])) {
311337
echo '
312338
<script>
@@ -383,3 +409,22 @@ function controlla_sconto() {
383409
}
384410
</script>';
385411
}
412+
413+
echo '
414+
<script>
415+
// Data inizio competenza deve essere minore di data fine competenza e data fine competenza deve essere maggiore di data inizio competenza
416+
$(document).ready(function() {
417+
$("#data_inizio_competenza, #data_fine_competenza").on("dp.change", function (e) {
418+
var dataInizio = $("#data_inizio_competenza").data("DateTimePicker");
419+
var dataFine = $("#data_fine_competenza").data("DateTimePicker");
420+
421+
if (dataInizio && dataFine && dataInizio.date() && dataFine.date()) {
422+
if (dataInizio.date() > dataFine.date()) {
423+
dataFine.date(dataInizio.date());
424+
} else if (dataFine.date() < dataInizio.date()) {
425+
dataInizio.date(dataFine.date());
426+
}
427+
}
428+
});
429+
});
430+
</script>';

modules/contratti/actions.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,8 @@
199199
$articolo->descrizione = post('descrizione');
200200
$articolo->note = post('note');
201201
$articolo->um = post('um') ?: null;
202+
$articolo->data_inizio_competenza = post('data_inizio_competenza') ?: null;
203+
$articolo->data_fine_competenza = post('data_fine_competenza') ?: null;
202204

203205
$articolo->costo_unitario = post('costo_unitario') ?: 0;
204206
$articolo->setPrezzoUnitario(post('prezzo_unitario'), post('idiva'));
@@ -254,6 +256,8 @@
254256
$riga->descrizione = post('descrizione');
255257
$riga->note = post('note');
256258
$riga->um = post('um') ?: null;
259+
$riga->data_inizio_competenza = post('data_inizio_competenza') ?: null;
260+
$riga->data_fine_competenza = post('data_fine_competenza') ?: null;
257261

258262
$riga->id_iva = post('idiva');
259263

modules/contratti/bulk.php

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -126,15 +126,6 @@
126126
if ($copia->isArticolo()) {
127127
$copia->serials = $riga->serials;
128128
}
129-
130-
if ($documento_import->data_accettazione && $documento_import->data_conclusione) {
131-
$copia->dati_aggiuntivi_fe = [
132-
'id_riga' => $copia->id,
133-
'data_inizio_periodo' => $documento_import->data_accettazione->format('Y-m-d'),
134-
'data_fine_periodo' => $documento_import->data_conclusione->format('Y-m-d'),
135-
];
136-
}
137-
138129
$copia->save();
139130
}
140131
}

modules/contratti/row-edit.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949

5050
$result = $riga->toArray();
5151
$result['prezzo'] = $riga->prezzo_unitario;
52+
$result['type'] = $type;
5253
if ($result['sconto'] == 0) {
5354
$result['tipo_sconto'] = (setting('Tipo di sconto predefinito') == '%' ? 'PRC' : 'UNT');
5455
}

modules/contratti/row-list.php

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,13 +118,24 @@
118118

119119
if ($riga->isArticolo() && !empty($riga->barcode)) {
120120
echo '
121-
<br><small><i class="fa fa-barcode"></i> '.$riga->barcode.'</small>';
121+
<br><small><i class="fa fa-barcode"></i> '.$riga->barcode.'</small>';
122122
}
123123

124124
if (!empty($riga->note)) {
125125
echo '
126126
<br><span class="text-xs">'.nl2br((string) $riga->note).'</small>';
127127
}
128+
129+
if (!empty($riga->data_inizio_competenza) || !empty($riga->data_fine_competenza)) {
130+
$has_alert = $riga->hasDifferentOriginalDateCompetenza();
131+
echo '
132+
<br><span class="text-xs text-muted">'.tr('Competenza (_START_ - _END_)', [
133+
'_START_' => Translator::dateToLocale($riga->data_inizio_competenza),
134+
'_END_' => Translator::dateToLocale($riga->data_fine_competenza),
135+
]).'
136+
'.($has_alert ? '<i class="fa fa-warning text-danger"></i>' : '').'
137+
</span>';
138+
}
128139
echo '
129140
</td>
130141

modules/ddt/actions.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,8 @@
168168
$articolo->descrizione = post('descrizione');
169169
$articolo->note = post('note');
170170
$articolo->um = post('um') ?: null;
171+
$articolo->data_inizio_competenza = post('data_inizio_competenza') ?: null;
172+
$articolo->data_fine_competenza = post('data_fine_competenza') ?: null;
171173

172174
$articolo->costo_unitario = post('costo_unitario') ?: 0;
173175
$articolo->setPrezzoUnitario(post('prezzo_unitario'), post('idiva'));
@@ -229,6 +231,8 @@
229231
$riga->descrizione = post('descrizione');
230232
$riga->note = post('note');
231233
$riga->um = post('um') ?: null;
234+
$riga->data_inizio_competenza = post('data_inizio_competenza') ?: null;
235+
$riga->data_fine_competenza = post('data_fine_competenza') ?: null;
232236

233237
$riga->costo_unitario = post('costo_unitario') ?: 0;
234238
$riga->setPrezzoUnitario(post('prezzo_unitario'), post('idiva'));

modules/ddt/row-edit.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151

5252
$result = $riga->toArray();
5353
$result['prezzo'] = $riga->prezzo_unitario;
54+
$result['type'] = $type;
5455
if ($result['sconto'] == 0) {
5556
$result['tipo_sconto'] = (setting('Tipo di sconto predefinito') == '%' ? 'PRC' : 'UNT');
5657
}

modules/ddt/row-list.php

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,13 +123,24 @@
123123

124124
if ($riga->isArticolo() && !empty($riga->barcode)) {
125125
echo '
126-
<br><small><i class="fa fa-barcode"></i> '.$riga->barcode.'</small>';
126+
<br><small><i class="fa fa-barcode"></i> '.$riga->barcode.'</small>';
127127
}
128128

129129
if (!empty($riga->note)) {
130130
echo '
131131
<br><span class="text-xs">'.nl2br((string) $riga->note).'</small>';
132132
}
133+
134+
if (!empty($riga->data_inizio_competenza) || !empty($riga->data_fine_competenza)) {
135+
$has_alert = $riga->hasDifferentOriginalDateCompetenza();
136+
echo '
137+
<br><span class="text-xs text-muted">'.tr('Competenza (_START_ - _END_)', [
138+
'_START_' => Translator::dateToLocale($riga->data_inizio_competenza),
139+
'_END_' => Translator::dateToLocale($riga->data_fine_competenza),
140+
]).'
141+
'.($has_alert ? '<i class="fa fa-warning text-danger"></i>' : '').'
142+
</span>';
143+
}
133144
echo '
134145
</td>';
135146

modules/fatture/actions.php

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -529,6 +529,8 @@
529529
$articolo->descrizione = post('descrizione');
530530
$articolo->note = post('note');
531531
$articolo->um = post('um') ?: null;
532+
$articolo->data_inizio_competenza = post('data_inizio_competenza') ?: null;
533+
$articolo->data_fine_competenza = post('data_fine_competenza') ?: null;
532534

533535
$articolo->id_iva = post('idiva');
534536
$articolo->idconto = post('idconto');
@@ -605,6 +607,8 @@
605607
$riga->descrizione = post('descrizione');
606608
$riga->note = post('note');
607609
$riga->um = post('um') ?: null;
610+
$riga->data_inizio_competenza = post('data_inizio_competenza') ?: null;
611+
$riga->data_fine_competenza = post('data_fine_competenza') ?: null;
608612

609613
$riga->id_iva = post('idiva');
610614
$riga->idconto = post('idconto');
@@ -876,17 +880,6 @@
876880

877881
$copia->serials = $serials;
878882
}
879-
880-
if ($documento instanceof Contratto) {
881-
if ($documento->data_accettazione && $documento->data_conclusione) {
882-
$copia->dati_aggiuntivi_fe = [
883-
'id_riga' => $copia->id,
884-
'data_inizio_periodo' => $documento->data_accettazione->format('Y-m-d'),
885-
'data_fine_periodo' => $documento->data_conclusione->format('Y-m-d'),
886-
];
887-
}
888-
}
889-
890883
$copia->save();
891884
}
892885
}

modules/fatture/fe/row-fe.php

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -119,24 +119,6 @@
119119
</tr>';
120120
}
121121

122-
// Data inizio periodo
123-
echo '
124-
<tr class="fourth-level">
125-
<td style="vertical-align: middle;">'.str_repeat($space, 3).'2.2.1.7 DataInizioPeriodo</td>
126-
<td>
127-
{[ "type": "date", "name": "data_inizio_periodo", "value": "'.$result['data_inizio_periodo'].'" ]}
128-
</td>
129-
</tr>';
130-
131-
// Data fine periodo
132-
echo '
133-
<tr class="fourth-level">
134-
<td style="vertical-align: middle;">'.str_repeat($space, 3).'2.2.1.8 DataFinePeriodo</td>
135-
<td>
136-
{[ "type": "date", "name": "data_fine_periodo", "value": "'.$result['data_fine_periodo'].'" ]}
137-
</td>
138-
</tr>';
139-
140122
// Riferimento amministrazione
141123
echo '
142124
<tr class="fourth-level">

0 commit comments

Comments
 (0)