<?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;
	}
?>