240 lines
11 KiB
PHP
240 lines
11 KiB
PHP
|
<?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 .= "["".$sezione.""]\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)." = "".save($valore).""\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;
|
||
|
}
|
||
|
?>
|