gest366/modules/agenda/actions.php

206 lines
9.4 KiB
PHP
Raw Normal View History

2021-02-24 20:40:04 +00:00
<?php
include_once(__DIR__."/../../core.php");
$module_name = "Agenda";
include_once( $docroot."/modules/agenda/modutil.php" );
switch( $html->form('op', 'post') ){
case "update":
$idintervento = $html->form('id_record');
if( $modules_info[$module_name]["permessi"] == 'rw' ){
include ($docroot . "/lib/salva_personalizzati.php");
$idtipoagenda = save( $_POST['idtipoagenda'] );
$idstatoagenda = save( $_POST['idstatoagenda'] );
$data = saveDate( $_POST['data'] );
$data_richiesta = saveDate( $_POST['data_richiesta'] );
$richiesta = save($_POST['richiesta']);
$descrizione = save($_POST['descrizione']);
$idsede = save( $_POST['idsede'] );
$ora_sla = saveTime( $_POST['ora_sla'] );
$filename = save( $_POST['componente_filename'] );
$idtipodoc = save( $_POST['idtipodoc'] );
$iddocumento = save( $_POST['iddocumento'] );
$data_documento=query_secca("","data","co_documenti","where id ='".$iddocumento."'");
if( $_POST['data_sla']!="" ){
$data_sla = saveDate( $_POST['data_sla'] );
}
$n_tecnici = 0;
$array_interventi = array();
foreach( $_POST['orario'] as $idriga => $valore ){
$orario = $_POST['orario'][$idriga];
$v = explode( ' - ', $orario );
$orario_inizio = saveDateTime( $v[0] );
$orario_fine = saveDateTime( $v[1] );
if( $user_idanagrafica!='' && $_SESSION['gruppo']=='Tecnici' ){
if ($_POST['idtecnico'][$idriga] == $user_idanagrafica){
if( !$dbo->query("UPDATE agenda_anagrafica SET idintervento=\"".$idintervento."\", idtecnico=\"".$_POST['idtecnico'][$idriga]."\", idtipoagenda=\"".$_POST['idtipoagendat'][$idriga]."\", orario_inizio=\"".$orario_inizio."\", orario_fine=\"".$orario_fine."\", km=\"".$km."\", prezzo_ore_unitario=\"".$prezzo_ore_unitario."\", prezzo_km_unitario=\"".$prezzo_km_unitario."\", prezzo_ore_consuntivo=\"".$prezzo_ore_consuntivo."\", prezzo_km_consuntivo=\"".$prezzo_km_consuntivo."\", prezzo_dirittochiamata=\"".$prezzo_dirittochiamata."\", prezzo_ore_unitario_tecnico=\"".$prezzo_ore_unitario_tecnico."\", prezzo_km_unitario_tecnico=\"".$prezzo_km_unitario_tecnico."\", prezzo_ore_consuntivo_tecnico=\"".$prezzo_ore_consuntivo_tecnico."\", prezzo_km_consuntivo_tecnico=\"".$prezzo_km_consuntivo_tecnico."\", prezzo_dirittochiamata_tecnico=\"".$prezzo_dirittochiamata_tecnico."\", ore=\"".force_decimal($_POST['ore'][$idriga])."\" WHERE id=\"".$idriga."\" " ) ){
array_push( $_SESSION['infos'], "Errore durante il salvataggio della sessione di lavoro #".$idriga."!" );
}
} else {
array_push( $_SESSION['infos'], "Non hai i permessi per apportare queste modifiche!" );
}
}
else{
if( !$dbo->query("UPDATE agenda_anagrafica SET idintervento=\"".$idintervento."\", idtecnico=\"".$_POST['idtecnico'][$idriga]."\", idtipoagenda=\"".$_POST['idtipoagendat'][$idriga]."\", orario_inizio=\"".$orario_inizio."\", orario_fine=\"".$orario_fine."\" WHERE id=\"".$idriga."\" " ) ){
array_push( $_SESSION['infos'], "Errore durante il salvataggio della sessione di lavoro #".$idriga."!" );
}
}
}
$query = "UPDATE agenda SET data_richiesta=\"$data_richiesta\",".
"richiesta=\"$richiesta\",".
"descrizione=\"$descrizione\",".
"idstatoagenda=\"$idstatoagenda\",".
"idsede=\"$idsede\",".
"data_sla=\"$data_sla\",".
"ora_sla=\"$ora_sla\",".
"ass_idtipodocumento=\"$idtipodoc\",".
"ass_iddocumento=\"$iddocumento\",".
"ass_data_documento=\"$data_documento\",".
"componente_filename=\"$filename\",".
"idtipoagenda=\"$idtipoagenda\" WHERE idintervento=\"$idintervento\" ".$additional_where['Interventi'];
$dbo->query( $query );
$post_array = array();
foreach( $_POST as $impostazione_post=>$valore_impostazione_post ){
//Creo l'array con tutti i valori passati dal POST
$impostazione_post = str_replace( "_", " ", $impostazione_post );
$post_array[$impostazione_post] = save($valore_impostazione_post);
}
$nome = save($_POST['Nome']);
//Lettura info componente
if( file_exists($docroot."/files/my_impianti/".$filename) )
$contenuto = file_get_contents( $docroot."/files/my_impianti/".$filename );
else
$contenuto = '';
//Converto 'contenuto' di questo componente in un array
$ini_array = parse_ini_string( $contenuto, true );
//Creo variabile contenuto temporaneo
$contenuto_tmp = array();
//Resetto il valore di contenuto
$contenuto = '';
//Per ogni sezione dell'array estratto dal file ini
foreach ($ini_array as $sezione => $array_impostazioni){
$sezione = str_replace( "\r\n", "\n", $sezione );
$sezione = str_replace( "\n", "<br/>", $sezione );
$contenuto .= "[&quot;".$sezione."&quot;]\n";
//Per ogni impostazione
foreach ($array_impostazioni as $impostazione => $valore_impostazione){
if ($impostazione=='valore'){
$da = array($impostazione => $valore_impostazione);
$a = array($impostazione => $post_array[$sezione]);
$contenuto_tmp = array_replace($ini_array[$sezione], $da, $a);
foreach ($contenuto_tmp as $impostazione_tmp => $valore_impostazione_tmp){
$valore = $valore_impostazione_tmp;
$valore = str_replace( "\r\n", "\n", $valore );
$valore = str_replace( "\n", "<br/>", $valore );
$contenuto .= save($impostazione_tmp)." = &quot;".save($valore)."&quot;\n";
}
}
}
}
$dbo->query("UPDATE agenda SET contenuto=\"".($contenuto)."\" WHERE idintervento='".$idintervento."'");
array_push( $_SESSION['infos'], "Informazioni salvate correttamente!" );
}
break;
case "add":
$idintervento = save ($_POST['idintervento']);
$rs = $dbo->fetchArray( "SELECT idintervento FROM agenda WHERE idintervento=\"".$idintervento."\"" );
$n = sizeof($rs);
if ($n>0){
do{
if( $html->form('ref', 'post') != 'agenda' ){
array_push( $_SESSION['warnings'], "Numero appuntamento '".$idintervento."' saltato perchè già esistente!" );
}
$rs = $dbo->fetchArray( "SELECT idintervento FROM agenda WHERE idintervento=\"".$idintervento."\"" );
$n = sizeof($rs);
$new_codice = get_next_code( $idintervento, 1, get_var("Formato codice agenda") );
if (!is_numeric($new_codice)):
$new_codice = get_next_code( $idintervento, 1, get_var("Formato codice agenda") );
endif;
$idintervento = $new_codice;
} while ($n==0);
if( $html->form('ref', 'post') != 'agenda' ){
array_push( $_SESSION['warnings'], "Nuovo numero appuntamento calcolato '".$idintervento."'" );
}
}
//controllo permessi
if( $modules_info[$module_name]["permessi"] == 'rw' ){
$idanagrafica = save( $_POST['idanagrafica'] );
$idtipoagenda = save( $_POST['idtipoagenda'] );
$idstatoagenda = save( $_POST['idstatoagenda'] );
$idsede = save( $_POST['idsede'] );
$data = savedate( $_POST['data'] );
$data_richiesta = savedate( $_POST['data_richiesta'] );
$richiesta = save( $_POST['richiesta'] );
$orario_inizio = str_replace( ".", ":", $_POST['orario_inizio'] );
$orario_fine = str_replace( ".", ":", $_POST['orario_fine'] );
$n_tecnici = sizeof($_POST['idtecnici']);
$q = "SELECT * FROM agenda_tipi WHERE idtipoagenda='".$idtipoagenda."'";
if ( $dbo->fetchNum($q) == 1 ){
$rs = $dbo->fetchArray( $q );
if( isset($_POST['idintervento']) && isset($_POST['idanagrafica']) && isset($_POST['idtipoagenda']) ){
$dbo->query("INSERT INTO agenda( idintervento, idanagrafica, idtipoagenda, idstatoagenda, idsede, data_richiesta, richiesta ) VALUES (\"".$idintervento."\", \"".$idanagrafica."\", \"".$idtipoagenda."\", \"".$idstatoagenda."\", \"".$idsede."\", \"".$data_richiesta."\", \"".$richiesta."\" )" );
$id_record = $idintervento;
if( $html->form('ref', 'post') != 'agenda' ){
array_push( $_SESSION['infos'], "Aggiunto nuovo appuntamento!" );
}
}
( !is_array($_POST['idtecnico']) ) ? $idtecnici=array( $_POST['idtecnico'] ) : $idtecnici=$_POST['idtecnico'];
foreach( $idtecnici as $idtecnico ){
$dbo->query("INSERT INTO agenda_anagrafica( idintervento, idtecnico, idtipoagenda, idstatoagenda, orario_inizio, orario_fine ) VALUES( \"".$idintervento."\", \"".$idtecnico."\", \"".$idtipoagenda."\", \"".$idstatoagenda."\", \"".( date("Y-m-d", strtotime($data)) )." ".$orario_inizio."\", \"".( date("Y-m-d", strtotime($data)) )." ".$orario_fine."\")");
}
}else{
array_push( $_SESSION['errors'], "Il tipo di appuntamento scelto non &eacute; valido!" );
}
}
//fine controllo permessi
if($html->form('ref', 'post') != 'agenda'){
echo $idintervento;
}
break;
case "delete":
$idintervento = $id_record;
if( $modules_info[$module_name]["permessi"] == 'rw' ){
$query="DELETE FROM agenda WHERE idintervento=\"$idintervento\" ".$additional_where['Interventi'];
$rs = $dbo->query($query);
$query = "DELETE FROM agenda_anagrafica WHERE idintervento=\"$idintervento\"";
$rs = $dbo->query($query);
array_push( $_SESSION['infos'], "Appuntamento \"".$idintervento."\" eliminato!" );
}
break;
}
?>