gest366/modules/contratti/actions.php

240 lines
11 KiB
PHP
Raw Normal View History

2021-02-24 20:40:04 +00:00
<?php
include_once(__DIR__."/../../core.php");
switch( $html->form('op', 'post') ){
case "add":
$idanagrafica = save( $_POST['idanagrafica'] );
if( $modules_info[$module_name]["permessi"] == 'rw' ){
$nome = save( $_POST['nome'] );
$id_tipocanone = save( $_POST['idcontrattotipo'] );
//Verifico se c'è già un agente collegato all'anagrafica cliente, così lo imposto già
$q = "SELECT idagente FROM an_anagrafiche WHERE idanagrafica='".$idanagrafica."'";
$rs = $dbo->fetchArray($q);
$idagente = $rs[0]['idagente'];
//Codice contratto: calcolo il successivo in base al formato specificato
$rs = $dbo->fetchArray("SELECT numero FROM co_contratti ORDER BY id DESC LIMIT 0,1");
$numero = get_next_code( $rs[0]['numero'], 1, get_var("Formato codice contratti") );
//Uso il tipo di pagamento specificato in anagrafica se c'è, altrimenti quello di default
$rsa = $dbo->fetchArray("SELECT idpagamento FROM an_anagrafiche WHERE idanagrafica=\"".$idanagrafica."\"");
( $rsa[0]['idpagamento'] != '0' ) ? $idpagamento=$rsa[0]['idpagamento'] : $idpagamento = get_var("Tipo di pagamento predefinito");
if( isset($_POST['idanagrafica']) ) {
$dbo->query("INSERT INTO co_contratti( idanagrafica, id_tipocanone , nome, numero, idagente, idpagamento, idstato, data_bozza ) VALUES ( '$idanagrafica', \"".$id_tipocanone."\", \"".$nome."\", \"".$numero."\", \"".$idagente."\", \"".$idpagamento."\", (SELECT `id` FROM `co_staticontratti` WHERE `descrizione`='Bozza'), '".date("Y-m-d")."' )");
$id_record = $dbo->last_inserted_id();
array_push( $_SESSION['infos'], "Aggiunto contratto numero ".$numero."!" );
// log anagrafiche
add_storico($id_record,"Creazione nuovo canone assistenza");
}
}
break;
case "update":
$idcontratto = save($_POST['id_record']);
if( $modules_info[$module_name]["permessi"] == 'rw' ){
if( isset($_POST['id_record']) ){
$idstato = save($_POST['idstato']);
$nome = save( $_POST['nome'] );
$idagente = save( $_POST['idagente'] );
$idpagamento = save( $_POST['idpagamento'] );
$numero = save( $_POST['numero'] );
$id_tipocanone = save( $_POST['id_tipocanone'] );
$componente_filename = save( $_POST['componente_filename'] );
//Se non specifico un budget me lo vado a ricalcolare
if ($budget != ""){
$budget = save($_POST['budget']);
$budget = str_replace( ",", ".", $budget );
}else{
$q = "SELECT (SELECT SUM(subtotale) FROM co_righe2_contratti where importo_fat='0' GROUP BY idcontratto HAVING idcontratto=co_contratti.id) AS 'budget' FROM co_contratti WHERE id=$idcontratto";
$rs = $dbo->fetchArray($q);
$budget = $rs[0]['budget'];
}
$data_bozza = saveDate( $_POST['data_bozza'] );
$data_accettazione = saveDate( $_POST['data_accettazione'] );
$data_rifiuto = saveDate( $_POST['data_rifiuto'] );
$data_conclusione = saveDate( $_POST['data_conclusione'] );
$rinnovabile = save( $_POST['rinnovabile'] );
( $rinnovabile=='on' ) ? $rinnovabile=1 : $rinnovabile=0;
$giorni_preavviso_rinnovo = save( $_POST['giorni_preavviso_rinnovo'] );
$validita = save( $_POST['validita'] );
$idreferente = save( $_POST['idreferente'] );
$esclusioni = save( $_POST['esclusioni'] );
$descrizione = save( $_POST['descrizione'] );
$idtipointervento = save($_POST['idtipointervento']);
$contratti_attivi=cerca_contratti_documenti($records[0]['id']);
if( $contratti_attivi == "0" ){
$query = "UPDATE co_contratti SET componente_filename='$componente_filename', idstato='$idstato', id_tipocanone=\"$id_tipocanone\", nome=\"$nome\", idagente=\"$idagente\", idpagamento=\"$idpagamento\", numero=\"$numero\", budget=\"$budget\", idreferente=\"".$idreferente."\", validita=\"$validita\", data_bozza=\"$data_bozza\", data_accettazione=\"$data_accettazione\", data_rifiuto=\"$data_rifiuto\", data_conclusione=\"$data_conclusione\", rinnovabile=\"".$rinnovabile."\", giorni_preavviso_rinnovo=\"".$giorni_preavviso_rinnovo."\", esclusioni=\"$esclusioni\", descrizione=\"$descrizione\", idtipointervento=\"$idtipointervento\" WHERE id=\"$idcontratto\"";
}
else{
$query = "UPDATE co_contratti SET componente_filename='$componente_filename', idstato='$idstato', nome=\"$nome\", idagente=\"$idagente\", idpagamento=\"$idpagamento\", numero=\"$numero\", budget=\"$budget\", idreferente=\"".$idreferente."\", validita=\"$validita\", data_bozza=\"$data_bozza\", data_accettazione=\"$data_accettazione\", data_rifiuto=\"$data_rifiuto\", data_conclusione=\"$data_conclusione\", rinnovabile=\"".$rinnovabile."\", giorni_preavviso_rinnovo=\"".$giorni_preavviso_rinnovo."\", esclusioni=\"$esclusioni\", descrizione=\"$descrizione\", idtipointervento=\"$idtipointervento\" WHERE id=\"$idcontratto\"";
}
$dbo->query( $query );
// log anagrafiche
add_storico($idcontratto,"Modifica canone assistenza");
$dbo->query("DELETE FROM my_impianti_contratti WHERE idcontratto=\"".$idcontratto."\"");
foreach( $_POST['matricolaimpianto'] as $matricolaimpianto ){
$dbo->query("INSERT INTO my_impianti_contratti(idcontratto,matricola) VALUES( \"".$idcontratto."\", \"".$matricolaimpianto."\" )");
}
/*
Salvataggio info componente (campo `contenuto`)
*/
$filename = save( $_POST['componente_filename'] );
$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){
//Quando trovo l'impostazione 'valore' la sostituisco con il valore passato dal post
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 co_contratti SET contenuto=\"".($contenuto)."\" WHERE id='".$idcontratto."'");
array_push( $_SESSION['infos'], "Canone modificato correttamente!" );
}
}
break;
//genero documento
case "add_transazione":
$idtipodocumento = save( $_POST['idintervento'] );
if( $modules_info[$module_name]["permessi"] == 'rw' ){
$new_iddocumento=doc_crea_dacontratto($id_record,$idtipodocumento,'0' );
//header( "Location: ".$rootdir."/editor.php?id_module=14&id_record=".$new_iddocumento );
array_push( $_SESSION['infos'], "Creazione nuovo documento eseguito!" );
// log anagrafiche
add_storico($id_record,"Creazione transazione sucessiva");
}
break;
//eliminazione contratto
case "delete":
if( $modules_info[$module_name]["permessi"] == 'rw' ){
$dbo->query( "DELETE FROM co_contratti WHERE id='$id_record'" );
array_push( $_SESSION['infos'], "Canone Contratto eliminato!" );
// log anagrafiche
add_storico($id_record,"Eliminazione canone assistenza");
}
break;
}
//Rinnovo contratto
switch( $html->form('op') ){
case "renew":
$rs = $dbo->fetchArray("SELECT *, DATEDIFF( data_conclusione, data_accettazione ) AS giorni FROM co_contratti WHERE id=\"".$id_record."\"");
if( sizeof($rs) == 1 ){
//Verifico se il rinnovo contratto è un numero accettabile con la differenza di data inizio e data fine
if( $rs[0]['giorni'] > 0 && $rs[0]['giorni'] < 365*10 ){
$giorni_add = $rs[0]['giorni'];
}
else{
$giorni_add = 0;
}
$rs2 = $dbo->fetchArray("SELECT numero FROM co_contratti ORDER BY id DESC LIMIT 0,1");
$numero = get_next_code( $rs2[0]['numero'], 1, get_var("Formato codice contratti") );
if( $dbo->query("INSERT INTO co_contratti( id_tipocanone , numero, nome, idagente, data_bozza, data_accettazione, data_rifiuto, data_conclusione, rinnovabile, giorni_preavviso_rinnovo, budget, descrizione, idstato, idreferente, validita, esclusioni, idanagrafica, idpagamento, idtipointervento, costo_diritto_chiamata, ore_lavoro, costo_orario, costo_km, idcontratto_prev ) VALUES( \"".$rs[0]['id_tipocanone']."\", \"".$numero."\", \"".$rs[0]['nome']."\", \"".$rs[0]['idagente']."\", NOW(), \"".date("Y-m-d", strtotime($rs[0]['data_conclusione']." +1 day"))."\", \"\", \"".date("Y-m-d", strtotime($rs[0]['data_conclusione']." +".$giorni_add." day"))."\", \"".$rs[0]['rinnovabile']."\", \"".$rs[0]['giorni_preavviso_rinnovo']."\", \"".$rs[0]['budget']."\", \"".$rs[0]['descrizione']."\", \"".$rs[0]['idstato']."\", \"".$rs[0]['idreferente']."\", \"".$rs[0]['validita']."\", \"".$rs[0]['esclusioni']."\", \"".$rs[0]['idanagrafica']."\", \"".$rs[0]['idpagamento']."\", \"".$rs[0]['idintervento']."\", \"".$rs[0]['costo_diritto_chiamata']."\", \"".$rs[0]['ore_lavoro']."\", \"".$rs[0]['costo_orario']."\", \"".$rs[0]['costo_km']."\", \"".$id_record."\" )") ){
$new_idcontratto = $dbo->last_inserted_id();
//Replico le righe del contratto fisse
$rs = $dbo->fetchArray("SELECT * FROM co_righe2_contratti WHERE idcontratto=\"".$id_record."\"");
for( $i=0; $i<sizeof($rs); $i++ ){
$dbo->query("INSERT INTO co_righe2_contratti( idcontratto, descrizione, subtotale, um, qta ,idiva,iva ) VALUES( \"".$new_idcontratto."\", \"".$rs[$i]['descrizione']."\", \"".$rs[$i]['subtotale']."\", \"".$rs[$i]['um']."\", \"".$rs[$i]['qta']."\" ,\"".$rs[$i]['idiva']."\",\"".$rs[$i]['iva']."\")");
}
// aggiorno lo stato del contratto precedente in concluso
$dbo->query("UPDATE co_contratti SET idstato='8' , rinnovabile='0' WHERE id='".$id_record."'");
array_push( $_SESSION['infos'], "Contratto rinnovato!" );
header( "Location: ".$rootdir."/editor.php?id_module=".$id_module."&id_record=".$new_idcontratto );
exit;
}
else{
array_push( $_SESSION['errors'], "Errore durante il rinnovo del contratto!" );
}
}
break;
}
?>