1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-02-02 17:07:01 +01:00

Gestione duplicazione multipla intervento

This commit is contained in:
MatteoPistorello 2023-06-16 16:07:19 +02:00
parent 92f4e62c2d
commit b9184eac0a
2 changed files with 112 additions and 87 deletions

View File

@ -949,19 +949,29 @@ switch (post('op')) {
// Duplica intervento // Duplica intervento
case 'copy': case 'copy':
$id_stato = post('id_stato'); $id_stato = post('id_stato');
$data_richiesta = post('data_richiesta'); $ora_richiesta = post('ora_richiesta');
$copia_sessioni = post('copia_sessioni'); $copia_sessioni = post('copia_sessioni');
$copia_righe = post('copia_righe'); $copia_righe = post('copia_righe');
$copia_impianti = post('copia_impianti'); $copia_impianti = post('copia_impianti');
$copia_allegati = post('copia_allegati'); $copia_allegati = post('copia_allegati');
$data_inizio = post('data_inizio');
$data_fine = post('data_fine');
$giorni = (array)post('giorni');
$period = CarbonPeriod::create($data_inizio, $data_fine);
// Iterate over the period
foreach ($period as $date) {
$data_richiesta = $date->format('Y-m-d').' '.$ora_richiesta;
$giorno = $date->locale('IT')->dayName;
if (in_array($giorno, $giorni)) {
$new = $intervento->replicate(); $new = $intervento->replicate();
$new->idstatointervento = $id_stato; $new->idstatointervento = $id_stato;
// Calcolo del nuovo codice sulla base della data di richiesta // Calcolo del nuovo codice sulla base della data di richiesta
$new->codice = Intervento::getNextCodice($data_richiesta, $new->id_segment); $new->codice = Intervento::getNextCodice($data_richiesta, $new->id_segment);
$new->data_richiesta = $data_richiesta; $new->data_richiesta = $data_richiesta;
$new->data_scadenza = post('data_scadenza'); $new->data_scadenza = post('ora_scadenza') ? $date->format('Y-m-d').' '.post('ora_scadenza') : null;
$new->firma_file = ''; $new->firma_file = '';
$new->firma_data = null; $new->firma_data = null;
$new->firma_nome = ''; $new->firma_nome = '';
@ -1043,8 +1053,10 @@ switch (post('op')) {
]); ]);
} }
} }
}
}
flash()->info(tr('Attività duplicata correttamente!')); flash()->info(tr('Attività duplicate correttamente!'));
break; break;

View File

@ -25,20 +25,34 @@ echo '
<input type="hidden" name="op" value="copy"> <input type="hidden" name="op" value="copy">
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-3">
{[ "type": "timestamp", "label": "'.tr('Data/ora richiesta').'", "name": "data_richiesta", "value": "-now-", "required":1 ]} {[ "type": "date", "label": "'.tr('Data inizio').'", "name": "data_inizio", "value": "-now-", "required":1 ]}
</div> </div>
<div class="col-md-6"> <div class="col-md-3">
{[ "type": "timestamp", "label": "'.tr('Data/ora scadenza').'", "name": "data_scadenza" ]} {[ "type": "date", "label": "'.tr('Data fine').'", "name": "data_fine", "value": "-now-", "required":1 ]}
</div>
<div class="col-md-3">
{[ "type": "time", "label": "'.tr('Ora richiesta').'", "name": "ora_richiesta", "value": "-now-", "required":1 ]}
</div>
<div class="col-md-3">
{[ "type": "time", "label": "'.tr('Ora scadenza').'", "name": "ora_scadenza" ]}
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato", "required": 1, "values": "query=SELECT idstatointervento AS id, descrizione, colore AS _bgcolor_ FROM in_statiintervento WHERE deleted_at IS NULL ORDER BY descrizione", "value": "" ]} {[ "type": "select", "multiple":"1", "label": "'.tr('Giorni').'", "name": "giorni[]", "required": 0, "value": "'.strtolower(setting('Giorni lavorativi')).'", "values": "list=\"lunedì\":\"'.tr('Lunedì').'\", \"martedì\":\"'.tr('Martedì').'\", \"mercoledì\":\"'.tr('Mercoledì').'\", \"giovedì\":\"'.tr('Giovedì').'\", \"venerdì\":\"'.tr('Venerdì').'\", \"sabato\":\"'.tr('Sabato').'\", \"domenica\":\"'.tr('Domenica').'\"", "required":1 ]}
</div> </div>
<div class="col-md-6">
{[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato", "required": 1, "values": "query=SELECT idstatointervento AS id, descrizione, colore AS _bgcolor_ FROM in_statiintervento WHERE deleted_at IS NULL ORDER BY descrizione", "value": "" ]}
</div>
</div>
<div class="row">
<div class="col-md-3"> <div class="col-md-3">
{["type": "checkbox", "label": "'.tr('Duplica righe').'", "name": "copia_righe", "help": "'.tr('Selezione per riportare anche le righe nella nuova attività').'" ]} {["type": "checkbox", "label": "'.tr('Duplica righe').'", "name": "copia_righe", "help": "'.tr('Selezione per riportare anche le righe nella nuova attività').'" ]}
</div> </div>
@ -54,7 +68,6 @@ echo '
<div class="col-md-3"> <div class="col-md-3">
{["type": "checkbox", "label": "'.tr('Duplica allegati').'", "name": "copia_allegati", "help": "'.tr('Selezione per riportare anche gli allegati nella nuova attività').'", "value": 1 ]} {["type": "checkbox", "label": "'.tr('Duplica allegati').'", "name": "copia_allegati", "help": "'.tr('Selezione per riportare anche gli allegati nella nuova attività').'", "value": 1 ]}
</div> </div>
</div> </div>
<!-- PULSANTI --> <!-- PULSANTI -->