Correzioni su duplicazione Attività

This commit is contained in:
Dasc3er 2020-09-22 13:59:50 +02:00
parent 3d7cc1e01b
commit 1d8ce9c437
3 changed files with 50 additions and 60 deletions

View File

@ -530,52 +530,46 @@ switch (post('op')) {
// Duplica intervento
case 'copy':
$idstatointervento = post('idstatointervento');
$id_stato = post('id_stato');
$data_richiesta = post('data_richiesta');
$copia_sessioni = post('sessioni');
$copia_righe = post('righe');
$copia_sessioni = post('copia_sessioni');
$copia_righe = post('copia_righe');
$new = $intervento->replicate();
$new->idstatointervento = $idstatointervento;
$new->idstatointervento = $id_stato;
//calcolo il nuovo codice
// Calcolo del nuovo codice sulla base della data di richiesta
$new->codice = Intervento::getNextCodice($data_richiesta);
$new->data_richiesta = $data_richiesta;
$new->data_scadenza = post('data_scadenza');
$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 (!empty($copia_righe)) {
$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();
}
$new_riga->qta_evasa = 0;
$new_riga->save();
}
}
$i = 0;
//Copio le sessioni
if ($copia_sessioni == 1) {
// Copia delle sessioni
$numero_sessione = 0;
if (!empty($copia_sessioni)) {
$sessioni = $intervento->sessioni;
foreach ($sessioni as $sessione) {
//Se è la prima sessione che copio importo la data con quella della richiesta
if ($i == 0) {
// Se è la prima sessione che copio importo la data con quella della richiesta
if ($numero_sessione == 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));
$orario_inizio = date('Y-m-d H:i:s', (strtotime($sessione->orario_inizio) + $diff));
}
$diff_fine = strtotime($sessione->orario_fine) - strtotime($sessione->orario_inizio);
@ -588,7 +582,7 @@ switch (post('op')) {
$new_sessione->orario_fine = $orario_fine;
$new_sessione->save();
++$i;
++$numero_sessione;
$inizio_old = $sessione->orario_inizio;
}
}

View File

@ -161,8 +161,7 @@ switch (post('op')) {
break;
case 'copy-bulk':
$idstatointervento = post('idstatointervento');
$id_stato = post('idstatointervento');
$data_richiesta = post('data_richiesta');
$copia_sessioni = post('sessioni');
$copia_righe = post('righe');
@ -171,45 +170,38 @@ switch (post('op')) {
$intervento = Intervento::find($idintervento);
$new = $intervento->replicate();
$new->idstatointervento = $idstatointervento;
$new->idstatointervento = $id_stato;
//calcolo il nuovo codice
// Calcolo del nuovo codice sulla base della data di richiesta
$new->codice = Intervento::getNextCodice($data_richiesta);
$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 (!empty($copia_righe)) {
$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();
}
$new_riga->qta_evasa = 0;
$new_riga->save();
}
}
$i = 0;
//Copio le sessioni
if ($copia_sessioni == 1) {
// Copia delle sessioni
$numero_sessione = 0;
if (!empty($copia_sessioni)) {
$sessioni = $intervento->sessioni;
foreach ($sessioni as $sessione) {
//Se è la prima sessione che copio importo la data con quella della richiesta
if ($i == 0) {
// Se è la prima sessione che copio importo la data con quella della richiesta
if ($numero_sessione == 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));
$orario_inizio = date('Y-m-d H:i:s', (strtotime($sessione->orario_inizio) + $diff));
}
$diff_fine = strtotime($sessione->orario_fine) - strtotime($sessione->orario_inizio);
@ -222,7 +214,7 @@ switch (post('op')) {
$new_sessione->orario_fine = $orario_fine;
$new_sessione->save();
++$i;
++$numero_sessione;
$inizio_old = $sessione->orario_inizio;
}
}

View File

@ -20,27 +20,31 @@
include_once __DIR__.'/../../../core.php';
echo '
<form action="" method="post" id="form-copy">
<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 ]}
{[ "type": "timestamp", "label": "'.tr('Data/ora richiesta').'", "name": "data_richiesta", "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": "" ]}
{[ "type": "timestamp", "label": "'.tr('Data/ora scadenza').'", "name": "data_scadenza" ]}
</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à').'" ]}
{[ "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", "value": "" ]}
</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 class="col-md-3">
{["type": "checkbox", "label": "'.tr('Duplica righe').'", "name": "copia_righe", "help": "'.tr('Selezione per riportare anche le righe nella nuova attività').'", "value": 1 ]}
</div>
<div class="col-md-3">
{["type": "checkbox", "label": "'.tr('Duplica sessioni').'", "name": "copia_sessioni", "help": "'.tr('Selezione per riportare anche le sessioni di lavoro nella nuova attività').'", "value": 1 ]}
</div>
</div>