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", "
", $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", "
", $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; $iquery("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; } ?>