mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-24 15:27:43 +01:00
Fix pianificazione interventi per contratti: Non veniva creato il primo intervento
This commit is contained in:
parent
ccc7168b4e
commit
490268d9e8
@ -16,7 +16,6 @@ $idanagrafica = $dbo->fetchArray('SELECT `idanagrafica` FROM `co_contratti` WHER
|
|||||||
|
|
||||||
$idimpianti = $dbo->fetchArray('SELECT GROUP_CONCAT(`idimpianto`) AS idimpianti FROM `my_impianti_contratti` WHERE `idcontratto` = '.prepare($id_record))[0]['idimpianti'];
|
$idimpianti = $dbo->fetchArray('SELECT GROUP_CONCAT(`idimpianto`) AS idimpianti FROM `my_impianti_contratti` WHERE `idcontratto` = '.prepare($id_record))[0]['idimpianti'];
|
||||||
|
|
||||||
|
|
||||||
$idimpianto = explode(",", $idimpianti);
|
$idimpianto = explode(",", $idimpianti);
|
||||||
//solo se ho selezionato un solo impianto nel contratto, altrimenti non so quale sede e tecnico prendere
|
//solo se ho selezionato un solo impianto nel contratto, altrimenti non so quale sede e tecnico prendere
|
||||||
if (count($idimpianto)<2){
|
if (count($idimpianto)<2){
|
||||||
@ -212,7 +211,7 @@ echo '
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
{[ "type": "select", "label": "'.tr('Tecnici').'", "multiple": "1", "name": "idtecnico[]", "required": 0, "ajax-source": "tecnici", "extra": "disabled" ]}
|
{[ "type": "select", "label": "'.tr('Tecnici').'", "multiple": "1", "name": "idtecnico[]", "required": 0, "ajax-source": "tecnici", "extra": "disabled", "value": "'.$idtecnico.'" ]}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -77,7 +77,9 @@ switch (filter('op')) {
|
|||||||
$intervallo = filter('intervallo');
|
$intervallo = filter('intervallo');
|
||||||
$parti_da_oggi = post('parti_da_oggi');
|
$parti_da_oggi = post('parti_da_oggi');
|
||||||
|
|
||||||
|
//if principale
|
||||||
if (!empty($idcontratto_riga) && !empty($intervallo)) {
|
if (!empty($idcontratto_riga) && !empty($intervallo)) {
|
||||||
|
|
||||||
$qp = 'SELECT *, (SELECT idanagrafica FROM co_contratti WHERE id = '.$id_record.' ) AS idanagrafica, (SELECT data_conclusione FROM co_contratti WHERE id = '.$id_record.' ) AS data_conclusione, '.
|
$qp = 'SELECT *, (SELECT idanagrafica FROM co_contratti WHERE id = '.$id_record.' ) AS idanagrafica, (SELECT data_conclusione FROM co_contratti WHERE id = '.$id_record.' ) AS data_conclusione, '.
|
||||||
'(SELECT descrizione FROM in_tipiintervento WHERE idtipointervento=co_contratti_promemoria.idtipointervento) AS tipointervento FROM co_contratti_promemoria '.
|
'(SELECT descrizione FROM in_tipiintervento WHERE idtipointervento=co_contratti_promemoria.idtipointervento) AS tipointervento FROM co_contratti_promemoria '.
|
||||||
'WHERE co_contratti_promemoria.id = '.$idcontratto_riga;
|
'WHERE co_contratti_promemoria.id = '.$idcontratto_riga;
|
||||||
@ -105,14 +107,27 @@ switch (filter('op')) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//inizio controllo data_conclusione, data valida e maggiore della $min_date
|
//inizio controllo data_conclusione, data valida e maggiore della $min_date
|
||||||
if ((date('Y', strtotime($data_conclusione)) > 1970) && (date('Y-m-d', strtotime($min_date)) < date('Y-m-d', strtotime($data_conclusione)))) {
|
if ((date('Y', strtotime($data_conclusione)) > 1970) && (date('Y-m-d', strtotime($min_date)) <= date('Y-m-d', strtotime($data_conclusione)))) {
|
||||||
|
|
||||||
|
//$_SESSION['errors'][] = '1';
|
||||||
|
|
||||||
|
$i = 0;
|
||||||
//Ciclo partendo dalla data_richiesta fino all data conclusione del contratto
|
//Ciclo partendo dalla data_richiesta fino all data conclusione del contratto
|
||||||
while (date('Y-m-d', strtotime($data_richiesta)) < date('Y-m-d', strtotime($data_conclusione))) {
|
while (date('Y-m-d', strtotime($data_richiesta)) <= date('Y-m-d', strtotime($data_conclusione))) {
|
||||||
//calcolo nuova data richiesta
|
//$_SESSION['errors'][] = '2';
|
||||||
$data_richiesta = date('Y-m-d', strtotime($data_richiesta.' + '.intval($intervallo).' days'));
|
|
||||||
|
//calcolo nuova data richiesta, non considero l'intervallo al primo ciclo
|
||||||
|
$data_richiesta = date('Y-m-d', strtotime($data_richiesta.' + '.(($i==0) ? 0 : $intervallo).' days'));
|
||||||
|
$i++;
|
||||||
|
|
||||||
|
//$_SESSION['errors'][] = 'data_richiesta: '.date('Y-m-d', strtotime($data_richiesta));
|
||||||
|
//$_SESSION['errors'][] = 'data_conclusione: '.date('Y-m-d', strtotime($data_conclusione));
|
||||||
|
//$_SESSION['errors'][] = 'min_date: '.$min_date;
|
||||||
|
|
||||||
//controllo nuova data richiesta --> solo date maggiori o uguali di [oggi o data richiesta iniziale] ma che non superano la data di fine del contratto
|
//controllo nuova data richiesta --> solo date maggiori o uguali di [oggi o data richiesta iniziale] ma che non superano la data di fine del contratto
|
||||||
if ((date('Y-m-d', strtotime($data_richiesta)) >= $min_date) && (date('Y-m-d', strtotime($data_richiesta)) <= date('Y-m-d', strtotime($data_conclusione)))) {
|
if ((date('Y-m-d', strtotime($data_richiesta)) >= $min_date) && (date('Y-m-d', strtotime($data_richiesta)) <= date('Y-m-d', strtotime($data_conclusione)))) {
|
||||||
|
|
||||||
|
//$_SESSION['errors'][] = '3';
|
||||||
//Controllo che non esista già un promemoria idcontratto, idtipointervento e data_richiesta.
|
//Controllo che non esista già un promemoria idcontratto, idtipointervento e data_richiesta.
|
||||||
if (count($dbo->fetchArray("SELECT id FROM co_contratti_promemoria WHERE data_richiesta = '".$data_richiesta."' AND idtipointervento = '".$idtipointervento."' AND idcontratto = '".$id_record."' ")) == 0) {
|
if (count($dbo->fetchArray("SELECT id FROM co_contratti_promemoria WHERE data_richiesta = '".$data_richiesta."' AND idtipointervento = '".$idtipointervento."' AND idcontratto = '".$id_record."' ")) == 0) {
|
||||||
//inserisco il nuovo promemoria
|
//inserisco il nuovo promemoria
|
||||||
@ -128,9 +143,18 @@ switch (filter('op')) {
|
|||||||
$dbo->query('INSERT INTO co_righe_contratti_articoli (idarticolo, id_riga_contratto,descrizione,prezzo_acquisto,prezzo_vendita,sconto, sconto_unitario, tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto) SELECT idarticolo, '.$idriga.',descrizione,prezzo_acquisto,prezzo_vendita,sconto,sconto_unitario,tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto FROM co_righe_contratti_articoli WHERE id_riga_contratto = '.$idcontratto_riga.' ');
|
$dbo->query('INSERT INTO co_righe_contratti_articoli (idarticolo, id_riga_contratto,descrizione,prezzo_acquisto,prezzo_vendita,sconto, sconto_unitario, tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto) SELECT idarticolo, '.$idriga.',descrizione,prezzo_acquisto,prezzo_vendita,sconto,sconto_unitario,tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto FROM co_righe_contratti_articoli WHERE id_riga_contratto = '.$idcontratto_riga.' ');
|
||||||
|
|
||||||
$_SESSION['infos'][] = tr('Promemoria intervento pianificato!');
|
$_SESSION['infos'][] = tr('Promemoria intervento pianificato!');
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
|
||||||
|
$_SESSION['warnings'][] = tr('Esiste già un promemoria pianificato per il '.readDate($data_richiesta).'.');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//Controllo che non esista già un intervento collegato a questo promemoria e, se ho spuntato di creare l'intervento, creo già anche quello
|
||||||
|
if ((empty($dbo->fetchArray("SELECT idintervento FROM co_contratti_promemoria WHERE id = '".((empty($idriga)) ? $idcontratto_riga : $idriga)."'")[0]['idintervento'])) and ($post['pianifica_intervento'])) {
|
||||||
|
|
||||||
//pianificare anche l' intervento?
|
//pianificare anche l' intervento?
|
||||||
if ($post['pianifica_intervento']) {
|
//if ($post['pianifica_intervento']) {
|
||||||
/*$orario_inizio = post('orario_inizio');
|
/*$orario_inizio = post('orario_inizio');
|
||||||
$orario_fine = post('orario_fine');*/
|
$orario_fine = post('orario_fine');*/
|
||||||
|
|
||||||
@ -153,8 +177,6 @@ switch (filter('op')) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Creo intervento
|
// Creo intervento
|
||||||
$dbo->insert('in_interventi', [
|
$dbo->insert('in_interventi', [
|
||||||
'idanagrafica' => $idanagrafica,
|
'idanagrafica' => $idanagrafica,
|
||||||
@ -179,7 +201,7 @@ switch (filter('op')) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//collego l'intervento ai promemoria
|
//collego l'intervento ai promemoria
|
||||||
$dbo->query('UPDATE co_contratti_promemoria SET idintervento='.prepare($idintervento).' WHERE id='.prepare($idriga));
|
$dbo->query('UPDATE co_contratti_promemoria SET idintervento='.prepare($idintervento).' WHERE id='.prepare(((empty($idriga)) ? $idcontratto_riga : $idriga)));
|
||||||
|
|
||||||
//copio le righe dal promemoria all'intervento
|
//copio le righe dal promemoria all'intervento
|
||||||
$dbo->query('INSERT INTO in_righe_interventi (descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva,desc_iva,iva,idintervento,sconto,sconto_unitario,tipo_sconto) SELECT descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva,desc_iva,iva,'.$idintervento.',sconto,sconto_unitario,tipo_sconto FROM co_righe_contratti_materiali WHERE id_riga_contratto = '.$idcontratto_riga.' ');
|
$dbo->query('INSERT INTO in_righe_interventi (descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva,desc_iva,iva,idintervento,sconto,sconto_unitario,tipo_sconto) SELECT descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva,desc_iva,iva,'.$idintervento.',sconto,sconto_unitario,tipo_sconto FROM co_righe_contratti_materiali WHERE id_riga_contratto = '.$idcontratto_riga.' ');
|
||||||
@ -207,25 +229,39 @@ switch (filter('op')) {
|
|||||||
// $_SESSION['infos'][] = tr('Intervento '.$codice.' pianificato correttamente.');
|
// $_SESSION['infos'][] = tr('Intervento '.$codice.' pianificato correttamente.');
|
||||||
|
|
||||||
$_SESSION['infos'][] = tr('Interventi pianificati correttamente.');
|
$_SESSION['infos'][] = tr('Interventi pianificati correttamente.');
|
||||||
}
|
|
||||||
//fine if pianificazione intervento
|
//fine if pianificazione intervento
|
||||||
} else {
|
|
||||||
$_SESSION['errors'][] = tr('Errore durante esecuzione query di pianificazione. #'.$idcontratto_riga);
|
//}
|
||||||
}
|
|
||||||
} else {
|
}else if ($post['pianifica_intervento']) {
|
||||||
$_SESSION['warnings'][] = tr('Esiste già un promemoria pianificato per il '.readDate($data_richiesta).'.');
|
|
||||||
|
$_SESSION['warnings'][] = tr('Esiste già un intervento pianificato per il '.readDate($data_richiesta).'.');
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
//fine controllo nuova data richiesta
|
//fine controllo nuova data richiesta
|
||||||
|
|
||||||
|
|
||||||
|
/*}else {
|
||||||
|
$_SESSION['errors'][] = tr('Errore durante esecuzione query di pianificazione. #'.$idcontratto_riga);
|
||||||
|
}*/
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
//fine ciclo while
|
//fine ciclo while
|
||||||
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$_SESSION['errors'][] = tr('Nessuna data di conclusione del contratto oppure quest\'ultima è già trascorsa, impossibile pianificare nuovi promemoria.'.$qp);
|
$_SESSION['errors'][] = tr('Nessuna data di conclusione del contratto oppure quest\'ultima è già trascorsa, impossibile pianificare nuovi promemoria.');
|
||||||
}
|
}
|
||||||
//fine controllo data_conclusione
|
//fine controllo data_conclusione
|
||||||
} else {
|
} else {
|
||||||
$_SESSION['errors'][] = tr('Errore durante la pianificazione. #'.$idcontratto_riga);
|
$_SESSION['errors'][] = tr('Errore durante la pianificazione. #'.$idcontratto_riga);
|
||||||
}
|
}
|
||||||
|
//fine if principale
|
||||||
|
|
||||||
redirect($rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'#tab_'.$id_plugin);
|
redirect($rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'#tab_'.$id_plugin);
|
||||||
break;
|
break;
|
||||||
@ -235,15 +271,18 @@ switch (filter('op')) {
|
|||||||
$qp = 'SELECT *, (SELECT descrizione FROM in_tipiintervento WHERE idtipointervento=co_contratti_promemoria.idtipointervento) AS tipointervento FROM co_contratti_promemoria WHERE idcontratto='.prepare($id_record).' ORDER BY data_richiesta ASC';
|
$qp = 'SELECT *, (SELECT descrizione FROM in_tipiintervento WHERE idtipointervento=co_contratti_promemoria.idtipointervento) AS tipointervento FROM co_contratti_promemoria WHERE idcontratto='.prepare($id_record).' ORDER BY data_richiesta ASC';
|
||||||
$rsp = $dbo->fetchArray($qp);
|
$rsp = $dbo->fetchArray($qp);
|
||||||
|
|
||||||
|
//intervento/promemoria pianificabile
|
||||||
$pianificabile = $dbo->fetchNum('SELECT id FROM co_staticontratti WHERE pianificabile = 1 AND descrizione = '.prepare($records[0]['stato']));
|
$pianificabile = $dbo->fetchNum('SELECT id FROM co_staticontratti WHERE pianificabile = 1 AND descrizione = '.prepare($records[0]['stato']));
|
||||||
|
|
||||||
|
$stati_pianificabili = $dbo->fetchArray('SELECT GROUP_CONCAT(`descrizione`) AS stati_pianificabili FROM `co_staticontratti` WHERE `pianificabile` = 1')[0]['stati_pianificabili'];
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<div class="box-header with-border">
|
<div class="box-header with-border">
|
||||||
<h3 class="box-title"><span class="tip" title="'.tr('I promemoria verranno visualizzati sulla \'Dashboard\' e serviranno per semplificare la pianificazione del giorno dell\'intervento, ad esempio nel caso di interventi con cadenza mensile.').'"" >'.tr('Pianificazione interventi').' <i class="fa fa-question-circle-o"></i></span> </h3>
|
<h3 class="box-title"><span class="tip" title="'.tr('I promemoria verranno visualizzati sulla \'Dashboard\' e serviranno per semplificare la pianificazione del giorno dell\'intervento, ad esempio nel caso di interventi con cadenza mensile.').'"" >'.tr('Pianificazione interventi').' <i class="fa fa-question-circle-o"></i></span> </h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="box-body">
|
<div class="box-body">
|
||||||
<p>'.tr('Puoi <b>pianificare dei "promemoria" o direttamente gli interventi</b> da effettuare entro determinate scadenze. Per poter pianificare i promemoria il contratto deve essere <b>attivo</b> e la <b>data di conclusione</b> definita').'.</p>';
|
<p>'.tr('Puoi <b>pianificare dei "promemoria" o direttamente gli interventi</b> da effettuare entro determinate scadenze. Per poter pianificare i promemoria il contratto deve essere in uno dei seguenti stati: <b>'.$stati_pianificabili.'</b> e la <b>data di conclusione</b> definita').'.</p>';
|
||||||
|
|
||||||
// Nessun intervento pianificato
|
// Nessun intervento pianificato
|
||||||
if (count($rsp) != 0) {
|
if (count($rsp) != 0) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user