1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-02-16 19:40:44 +01:00

Funzione duplica attività

This commit is contained in:
Beppe 2020-06-08 11:59:40 +02:00
parent f46669a4a4
commit e41a2ae124
3 changed files with 111 additions and 1 deletions

View File

@ -410,4 +410,71 @@ $riga = $intervento->getRiga($type, $id_riga);
$sessione->save();
break;
// Duplica intervento
case 'copy':
$idstatointervento = post('idstatointervento');
$data_richiesta = post('data_richiesta');
$copia_sessioni = post('sessioni');
$copia_righe = post('righe');
$new = $intervento->replicate();
$new->idstatointervento = $idstatointervento;
$new->save();
$id_record = $new->id;
$righe = $intervento->getRighe();
foreach ($righe as $riga) {
$new_riga = $riga->replicate();
$new_riga->setParent($new);
//Copio le righe
if( $copia_righe==1 ){
$righe = $intervento->getRighe();
foreach ($righe as $riga) {
$new_riga = $riga->replicate();
$new_riga->setParent($new);
$new_riga->qta_evasa = 0;
$new_riga->save();
}
}
}
$i = 0;
//Copio le sessioni
if( $copia_sessioni==1 ){
$sessioni = $intervento->sessioni;
foreach ($sessioni as $sessione) {
//Se è la prima sessione che copio importo la data con quella della richiesta
if( $i == 0 ){
$orario_inizio = date("Y-m-d", strtotime($data_richiesta)).' '.date("H:i:s", strtotime($sessione->orario_inizio));
}else{
$diff = strtotime($sessione->orario_inizio) - strtotime($inizio_old);
$orario_inizio = date("Y-m-d H:i:s", (strtotime($orario_inizio)+$diff));
}
$diff_fine = strtotime($sessione->orario_fine) - strtotime($sessione->orario_inizio);
$orario_fine = date("Y-m-d H:i:s", (strtotime($orario_inizio)+$diff_fine));
$new_sessione = $sessione->replicate();
$new_sessione->idintervento = $new->id;
$new_sessione->orario_inizio = $orario_inizio;
$new_sessione->orario_fine = $orario_fine;
$new_sessione->save();
$i++;
$inizio_old = $sessione->orario_inizio;
}
}
flash()->info(tr('Attività duplicata correttamente!'));
break;
}

View File

@ -14,6 +14,12 @@ if (empty($record['firma_file'])) {
]).'</span>';
}
// Duplica intervento
echo'
<button type="button" class="btn btn-primary " onclick="launch_modal( \''.tr('Duplica attività').'\', globals.rootdir + \'/modules/interventi/copia_attivita.php?id_module='.$id_module.'&id_record='.$id_record.'\');" >
<i class="fa fa-copy"></i> '.tr('Duplica attività').'...
</button>';
// Disabilito il tasto di firma per gli interventi completati
echo '
@ -22,4 +28,4 @@ echo '
<button type="button" class="btn btn-primary " onclick="launch_modal( \''.tr('Anteprima e firma').'\', globals.rootdir + \'/modules/interventi/add_firma.php?id_module='.$id_module.'&id_record='.$id_record.'&anteprima=1\');" '.($record['flag_completato'] ? 'disabled' : '').'>
<i class="fa fa-desktop"></i> '.$frase.'...
</button>';
</button>';

View File

@ -0,0 +1,37 @@
<?php
include_once __DIR__.'/../../core.php';
echo '
<form action="" method="post" id="copia-intervento">
<input type="hidden" name="backto" value="record-edit">
<input type="hidden" name="op" value="copy">
<div class="row">
<div class="col-md-6">
{[ "type": "timestamp", "label": "'.tr('Data/ora richiesta').'", "name": "data_richiesta", "required": 0, "value": "-now-", "required":1 ]}
</div>
<div class="col-md-6">
{[ "type": "select", "label": "'.tr('Stato').'", "name": "idstatointervento", "required": 1, "values": "query=SELECT idstatointervento AS id, descrizione, colore AS _bgcolor_ FROM in_statiintervento WHERE deleted_at IS NULL", "value": "" ]}
</div>
</div>
<div class="row">
<div class="col-md-6">
{["type":"checkbox", "label":"'.tr('Duplica righe').'", "name":"righe", "value":"", "help":"'.tr('Selezione per riportare anche le righe nella nuova attività').'" ]}
</div>
<div class="col-md-6">
{["type":"checkbox", "label":"'.tr('Duplica sessioni').'", "name":"sessioni", "value":"", "help":"'.tr('Selezione per riportare anche le sessioni di lavoro nella nuova attività').'" ]}
</div>
</div>
<div class="row">
<div class="col-md-12 text-right">
<button type="submit" class="btn btn-primary"><i class="fa fa-copy"></i> '.tr('Duplica attività').'...</button>
</div>
</div>
</form>
<script>
init();
</script>';