<?php
	if( $docroot == '' ){
		die( _("Accesso negato!") );
	}
	
	switch( $html->form('op', 'post') ){
		case "update":

			$idanagrafica = $_POST['id_record'];
			if( $modules_info[$module_name]["permessi"] == 'rw' ){
				
				//leggo tutti i valori passati dal POST e li salvo in un array
				$html_post = array();
				foreach ($_POST as $key => $value) {
					$html_post[$key] = save($value);
				}
			
				if( isset($_POST['id_record']) ){
					
					
					include ($docroot . "/lib/salva_personalizzati.php");	
					

					$data_nascita = saveDate($html_post['data_nascita']);
					if( $data_nascita == '' ){
						$data_nascita = '';
					}

					( $_POST['perc_netto'] == 'on' ) ? $perc_netto=1 : $perc_netto=0;
					( $_POST['perc_iva'] == 'on' ) ? $perc_iva=1 : $perc_iva=0;
					$perc_agente = force_decimal($_POST['perc_agente']);
					
					$query = "UPDATE an_anagrafiche SET ".
				 							
										"componente_filename=\"".$html_post['componente_filename']."\",".
										"ragione_sociale=\"".$html_post['ragione_sociale']."\",".
				 						"tipo=\"".$html_post['tipo']."\",".
										"piva=\"".$html_post['piva']."\",".
										"codice_fiscale=\"".$html_post['codice_fiscale']."\",".
										"data_nascita=\"".$data_nascita."\",".
										"luogo_nascita=\"".$html_post['luogo_nascita']."\",".
										"sesso=\"".$html_post['sesso']."\",".
										"capitale_sociale=\"".$html_post['capitale_sociale']."\",".
										"indirizzo=\"".$html_post['indirizzo']."\",".
										"indirizzo2=\"".$html_post['indirizzo2']."\",".
										"citta=\"".$html_post['citta']."\",".
										"cap=\"".$html_post['cap']."\",".
										"provincia=\"".$html_post['provincia']."\",".
										"km=\"".str_replace( ",", ".", $html_post['km'] )."\",".
										"id_nazione=\"".$html_post['nazione']."\",".
										"telefono=\"".$html_post['telefono']."\",".
										"cellulare=\"".$html_post['cellulare']."\",".
										"fax=\"".$html_post['fax']."\",".
										"email=\"".$html_post['email']."\",".
										"idsede_fatturazione=\"".$html_post['idsede_fatturazione']."\",".
										"note=\"".$html_post['note']."\",".
										"codiceri=\"".$html_post['codiceri']."\",".
										"codicerea=\"".$html_post['codicerea']."\",".
										"appoggiobancario=\"".$html_post['appoggiobancario']."\",".
										"filiale=\"".$html_post['filiale']."\",".
										"codiceiban=\"".$html_post['codiceiban']."\",".
										"bic=\"".$html_post['bic']."\",".
										"diciturafissafattura=\"".$html_post['diciturafissafattura']."\",".
										"idpagamento=\"".$html_post['idpagamento']."\",".
										"idlistino=\"".$html_post['idlistino']."\",".
										"idiva=\"".$html_post['idiva']."\",".
										"settore=\"".$html_post['settore']."\",".
										"marche=\"".$html_post['marche']."\",".
										"dipendenti=\"".$html_post['dipendenti']."\",".
										"macchine=\"".$html_post['macchine']."\",".
										"idagente=\"".$html_post['idagente']."\",".
										"idrelazione=\"".$html_post['idrelazione']."\",".
										"sitoweb=\"".$html_post['sitoweb']."\",".
										"idzona=\"".$html_post['idzona']."\",".
										"nome_cognome=\"".$html_post['nome_cognome']."\",".
										"iscrizione_tribunale=\"".$html_post['iscrizione_tribunale']."\",".
										"cciaa=\"".$html_post['cciaa']."\",".
										"cciaa_citta=\"".$html_post['cciaa_citta']."\",".
										"n_alboartigiani=\"".$html_post['n_alboartigiani']."\",".
										"foro_competenza=\"".$html_post['foro_competenza']."\",".
										"colore=\"".$html_post['colore']."\",".
										"colore_marker=\"".$html_post['colore_marker']."\",".
										"cod_sogei=\"".$html_post['cod_sogei']."\",".
										"lng=\"".$html_post['lng']."\",".
										"lat=\"".$html_post['lat']."\",".
										"cod_sogei_pec=\"".$html_post['cod_sogei_pec']."\",".
										"perc_agente=\"".$perc_agente."\",".
										"perc_netto=\"".$perc_netto."\",".
										"esigibilita_iva=\"".$html_post['esigibilita_iva']."\",".
										"identificativo_xml=\"".$html_post['identificativo_xml']."\",".
										"perc_iva=\"".$perc_iva."\",".	
										"default_ritenuta_acconto=\"".$html_post['default_ritenuta_acconto']."\",".					// release 2.3.5
										"default_rivalsa_inps=\"".$html_post['default_rivalsa_inps']."\",".							// release 2.3.5
										"idtipointervento_default=\"".$html_post['idtipointervento_default']."\"".		
										"WHERE idanagrafica='$idanagrafica' ".$additional_where['Anagrafiche'];

					$rs = $dbo->query( $query );
				
					
					// log anagrafiche
					add_storico($idanagrafica,"Eseguito modifica salvataggio anagrafica");
				
					
					// testo se inserito banca appoggiobancario
					
					$idbanca_vendite=$html_post['idbanca_vendite'];
					if( $idbanca_vendite > 0 ){
						$rs_banca = $dbo->fetchArray("SELECT * FROM co_banche WHERE id='".$idbanca_vendite."'");						
						$query = "UPDATE an_anagrafiche SET idbanca_vendite='".$idbanca_vendite."', appoggiobancario='".$rs_banca[0]['nome']."', filiale='".$rs_banca[0]['filiale']."',codiceiban='".$rs_banca[0]['iban']."',bic='".$rs_banca[0]['bic']."' WHERE idanagrafica='$idanagrafica'";
						$rs = $dbo->query( $query );
						
						
						
						
						
					}
					
					/*
						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 an_anagrafiche SET contenuto=\"".($contenuto)."\" WHERE idanagrafica='".$idanagrafica."'");
					
					
					
					array_push( $_SESSION['infos'], "Informazioni per l'anagrafica ''".$html_post['ragione_sociale']."'' salvate correttamente!");
					
					//Aggiorno il codice anagrafica se non è già presente, altrimenti lo ignoro
					$esiste = $dbo->fetchNum("SELECT idanagrafica FROM an_anagrafiche WHERE codice=\"".$html_post['codice']."\" AND NOT idanagrafica=\"".$idanagrafica."\"", 1);
					
					
					//Aggiorno gli agenti 							
					
					$dbo->query("DELETE FROM an_anagrafiche_agenti WHERE idanagrafica=\"".$idanagrafica."\"");					
					$rs = $dbo->fetchArray("SELECT idagente FROM an_anagrafiche WHERE idanagrafica='".$idanagrafica."'");
					$idagente = $rs[0]['idagente'];									
					$dbo->query("INSERT INTO an_anagrafiche_agenti( idanagrafica, idagente ) VALUES( \"".$idanagrafica."\", \"".$idagente."\" )");
				
					
					
					//Aggiorno le tipologie di anagrafica
					$dbo->query("DELETE FROM an_tipianagrafiche_anagrafiche WHERE idanagrafica=\"".$idanagrafica."\"");
					
					foreach( $_POST['idtipoanagrafica'] as $idtipoanagrafica ){
						
						$dbo->query("INSERT INTO an_tipianagrafiche_anagrafiche(idtipoanagrafica,idanagrafica) VALUES( \"".$idtipoanagrafica."\", \"".$idanagrafica."\" )");
						
						$rs = $dbo->fetchArray("SELECT descrizione FROM an_tipianagrafiche WHERE idtipoanagrafica='".$idtipoanagrafica."'");
						$tipoanagrafica_desc = $rs[0]['descrizione'];
					
					
						if (($tipoanagrafica_desc=='Azienda') and ( get_var("Azienda predefinita") == "0" ))
							array_push( $_SESSION['infos'], "Sembra che tu abbia inserito la tua anagrafica Azienda, ricordati di impostarla come predefinita dal menù ''Strumenti -> Impostazioni -> Generali''." );
						
						
					}



					//Verifico se esiste già l'associazione dell'anagrafica a conti del partitario
					$rs = $dbo->fetchArray("SELECT idconto_cliente, idconto_fornitore FROM an_anagrafiche WHERE idanagrafica=\"".$idanagrafica."\"");
					$idconto_cliente	= $rs[0]['idconto_cliente'];
					$idconto_fornitore	= $rs[0]['idconto_fornitore'];
//TECNOGEST aggiornamento intestazione conto partitario
					$rs = $dbo->fetchArray("SELECT id, descrizione FROM co_pianodeiconti3 WHERE id=\"".$idconto_cliente."\"");
				if ($idconto_cliente <> '0' ){
					$dbo->query("UPDATE co_pianodeiconti3 SET descrizione=\"".$html_post['ragione_sociale']."\" WHERE id=\"".$idconto_cliente."\"");
				}
				else{
					$rs = $dbo->fetchArray("SELECT id, descrizione FROM co_pianodeiconti3 WHERE id=\"".$idconto_fornitore."\"");
					$dbo->query("UPDATE co_pianodeiconti3 SET descrizione=\"".$html_post['ragione_sociale']."\" WHERE id=\"".$idconto_fornitore."\"");
					}
//FINE					
					
					//Creo il relativo conto nel partitario se non esiste
					if( $idconto_cliente == '0' ){
						foreach( $_POST['idtipoanagrafica'] as $idtipoanagrafica ){
							$rs = $dbo->fetchArray("SELECT descrizione FROM an_tipianagrafiche WHERE idtipoanagrafica=\"".$idtipoanagrafica."\"");
							
							if( $rs[0]['descrizione'] == 'Cliente' ){
								//Calcolo prossimo numero cliente
								$rs = $dbo->fetchArray("SELECT MAX( CAST(co_pianodeiconti3.numero AS UNSIGNED) ) AS max_numero FROM co_pianodeiconti3 INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE co_pianodeiconti2.descrizione='Crediti clienti e crediti diversi'");
								$new_numero = $rs[0]['max_numero'] + 1;
								$new_numero = str_pad( $new_numero, 6, "0", STR_PAD_LEFT );
					
								$dbo->query("INSERT INTO co_pianodeiconti3( numero, descrizione, idpianodeiconti2, can_delete, can_edit ) VALUES( \"".$new_numero."\", \"".$html_post['ragione_sociale']."\", (SELECT id FROM co_pianodeiconti2 WHERE descrizione='Crediti clienti e crediti diversi'), 1, 1 )");
								$idconto = $dbo->last_inserted_id();
								
								//Collegamento conto
								$dbo->query("UPDATE an_anagrafiche SET idconto_cliente=\"".$idconto."\" WHERE idanagrafica=\"".$idanagrafica."\"");
							}
						}
					}
				
					
					if( $idconto_fornitore == '0' ){
						foreach( $_POST['idtipoanagrafica'] as $idtipoanagrafica ){
							$rs = $dbo->fetchArray("SELECT descrizione FROM an_tipianagrafiche WHERE idtipoanagrafica=\"".$idtipoanagrafica."\"");
							
							if( $rs[0]['descrizione'] == 'Fornitore' ){
								//Calcolo prossimo numero cliente
								$rs = $dbo->fetchArray("SELECT MAX( CAST(co_pianodeiconti3.numero AS UNSIGNED) ) AS max_numero FROM co_pianodeiconti3 INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE co_pianodeiconti2.descrizione='Debiti fornitori e debiti diversi'");
								$new_numero = $rs[0]['max_numero'] + 1;
								$new_numero = str_pad( $new_numero, 6, "0", STR_PAD_LEFT );
					
								$dbo->query("INSERT INTO co_pianodeiconti3( numero, descrizione, idpianodeiconti2, can_delete, can_edit ) VALUES( \"".$new_numero."\", \"".$html_post['ragione_sociale']."\", (SELECT id FROM co_pianodeiconti2 WHERE descrizione='Debiti fornitori e debiti diversi'), 1, 1 )");
								$idconto = $dbo->last_inserted_id();
								
								//Collegamento conto
								$dbo->query("UPDATE an_anagrafiche SET idconto_fornitore=\"".$idconto."\" WHERE idanagrafica=\"".$idanagrafica."\"");
							}
						}
					}
					


					//Verifica dell'esistenza codice anagrafica
					if( $esiste ){
						array_push( $_SESSION['errors'], "Il codice anagrafica inserito esiste già! Inserirne un'altro...");	
					}
					else{
						$dbo->query("UPDATE an_anagrafiche SET codice=\"".$html_post['codice']."\" WHERE idanagrafica=\"".$idanagrafica."\"");
					}
						
				}
			}
			
			else{
				array_push( $_SESSION['errors'], "Permesso negato!");	
			}
						
			
			break;

		case "add":
			if( $modules_info[$module_name]["permessi"] == 'rw' ){
				$idtipoanagrafica = $html->form( 'idtipoanagrafica', 'post', false );
				$ragione_sociale = $html->form( 'ragione_sociale', 'post' );
				
				$rs = $dbo->fetchArray("SELECT descrizione FROM an_tipianagrafiche WHERE idtipoanagrafica='".$idtipoanagrafica."'");
				$tipoanagrafica_desc = $rs[0]['descrizione'];
					
					
				//Inserimento anagrafica base
				if( sizeof($idtipoanagrafica) > 0 && $ragione_sociale != '' ){
					//Leggo l'ultimo codice anagrafica per calcolare il successivo
					$rs = $dbo->fetchArray("SELECT codice FROM an_anagrafiche ORDER BY CAST(codice AS SIGNED) DESC LIMIT 0,1");
					$codice = get_next_code( $rs[0]['codice'], 1, get_var("Formato codice anagrafica") );
					
					//Se ad aggiungere un cliente è un agente, lo imposto come agente di quel cliente
					//Lettura tipologia della nuova anagrafica
					$rs = $dbo->fetchArray("SELECT descrizione FROM an_tipianagrafiche WHERE idtipoanagrafica='".$idtipoanagrafica."'");
					$tipoanagrafica_dst = $rs[0]['descrizione'];

					//Lettura tipologia dell'utente loggato
					$agente_is_logged = false;
					$rs = $dbo->fetchArray("SELECT descrizione FROM an_tipianagrafiche INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche.idtipoanagrafica=an_tipianagrafiche_anagrafiche.idtipoanagrafica WHERE idanagrafica='".$user_idanagrafica."'");
					
					for( $i=0; $i<sizeof($rs); $i++ ){
						if( $rs[$i]['descrizione']=='Agente' ){
							$agente_is_logged = true;
							$i = sizeof($rs);
						}
					}

					( $agente_is_logged  ) ? $idagente=$user_idanagrafica : $idagente=0;
					
					//Inserisco l'anagrafica
					$query = "INSERT INTO an_anagrafiche( ragione_sociale, codice, idagente ) VALUES ( \"".save($ragione_sociale)."\", \"".$codice."\", \"".$idagente."\" )";
					$dbo->query($query);
					$idanagrafica = $dbo->last_inserted_id();
					if ( $idagente != 0 ){
						$dbo->query("INSERT INTO an_anagrafiche_agenti( idanagrafica, idagente ) VALUES( \"".$idanagrafica."\", \"".$idagente."\" )");
					}
					// log anagrafiche
					add_storico($idanagrafica,"Eseguito inserimento nuova anagrafica");
					
				}
				
				
				//Inserisco il rapporto dell'anagrafica (cliente, tecnico, ecc)
				for( $t=0; $t<sizeof($idtipoanagrafica); $t++ ){
					$query = "INSERT INTO an_tipianagrafiche_anagrafiche(idanagrafica, idtipoanagrafica) VALUES (\"".$idanagrafica."\", \"".$idtipoanagrafica[$t]."\")";
					$dbo->query($query);
					
					$rs = $dbo->fetchArray("SELECT descrizione FROM an_tipianagrafiche WHERE idtipoanagrafica='".$idtipoanagrafica[$t]."'");
					$tipoanagrafica_desc = $rs[0]['descrizione'];
					
					
					if ($tipoanagrafica_desc=='Azienda')
						array_push( $_SESSION['infos'], "Sembra che tu abbia inserito la tua anagrafica Azienda, ricordati di impostarla come predefinita dal menù ''Strumenti -> Impostazioni -> Generali''." );
				}
				
				
				//Creo il relativo conto nel partitario
				if( $tipoanagrafica_desc == 'Cliente' ){
					//Calcolo prossimo numero cliente
					$rs = $dbo->fetchArray("SELECT MAX( CAST(co_pianodeiconti3.numero AS UNSIGNED) ) AS max_numero FROM co_pianodeiconti3 INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE co_pianodeiconti2.descrizione='Crediti clienti e crediti diversi'");
					$new_numero = $rs[0]['max_numero'] + 1;
					$new_numero = str_pad( $new_numero, 6, "0", STR_PAD_LEFT );
					
					//Creazione conto
					$dbo->query("INSERT INTO co_pianodeiconti3( numero, descrizione, idpianodeiconti2, can_delete, can_edit ) VALUES( \"".$new_numero."\", \"".$ragione_sociale."\", (SELECT id FROM co_pianodeiconti2 WHERE descrizione='Crediti clienti e crediti diversi'), 1, 1 )");
					$idconto = $dbo->last_inserted_id();
					
					//Collegamento conto
					$dbo->query("UPDATE an_anagrafiche SET idconto_cliente=\"".$idconto."\" WHERE idanagrafica=\"".$idanagrafica."\"");
				}
				
				else if( $tipoanagrafica_desc == 'Fornitore' ){
					//Calcolo prossimo numero cliente
					$rs = $dbo->fetchArray("SELECT MAX( CAST(co_pianodeiconti3.numero AS UNSIGNED) ) AS max_numero FROM co_pianodeiconti3 INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE co_pianodeiconti2.descrizione='Debiti fornitori e debiti diversi'");
					$new_numero = $rs[0]['max_numero'] + 1;
					$new_numero = str_pad( $new_numero, 6, "0", STR_PAD_LEFT );
					
					//Creazione conto
					$dbo->query("INSERT INTO co_pianodeiconti3( numero, descrizione, idpianodeiconti2, can_delete, can_edit ) VALUES( \"".$new_numero."\", \"".$ragione_sociale."\", (SELECT id FROM co_pianodeiconti2 WHERE descrizione='Debiti fornitori e debiti diversi'), 1, 1 )");
					$idconto = $dbo->last_inserted_id();
					
					//Collegamento conto
					$dbo->query("UPDATE an_anagrafiche SET idconto_fornitore=\"".$idconto."\" WHERE idanagrafica=\"".$idanagrafica."\"");
				}
				
				
				$id_record = $idanagrafica;
				array_push( $_SESSION['infos'], "Aggiunta nuova anagrafica di tipo ''".$tipoanagrafica_desc."''" );
				
			}
			
			break;


		case "delete":
			if( $modules_info[$module_name]["permessi"] == 'rw' ){
				//Disattivo solamente l'anagrafica
				$dbo->query("UPDATE an_anagrafiche SET deleted=1 WHERE idanagrafica=\"".$id_record."\" ".$additional_where['Anagrafiche']);
				array_push( $_SESSION['infos'], "Anagrafica eliminata!" );
				// log anagrafiche
				add_storico($idanagrafica,"Anagrafica disattivata");
			}
			
			break;

		case "sendemail":		
	
				$from_address = str_replace( ",", ".", get_var("Indirizzo per le email in uscita") );								
				$oggetto = html_entity_decode($_POST['oggetto']);	
				$testo_email = html_entity_decode($_POST['body'], ENT_QUOTES);
				$destinatario=$_POST['destinatario'];
				$messaggio = new PHPmailer(str_replace( ",", ".", get_var("Indirizzo per le email in uscita") ));								
				$messaggio->FromName = str_replace( ",", ".", get_var("Nome Form Mail") );
				$messaggio->From  = str_replace( ",", ".", get_var("Indirizzo per le email in uscita") );	
				$messaggio->AddAddress($destinatario);			
				$messaggio->Subject=($oggetto);			
				$messaggio->Body=strip_tags($testo_email);
				if(!$messaggio->Send()){ 
					array_push( $_SESSION['infos'], $messaggio->ErrorInfo );
				
				}else{ 
					array_push( $_SESSION['infos'], "Email to SMS inviata correttamente" );
					// log anagrafiche
					add_storico($idanagrafica,"Inviato nuovo SMS");
				}
			break;
			
		case "sendemail_web":
		
			$from_address = str_replace( ",", ".", get_var("Indirizzo per le email in uscita") );								
			$oggetto = html_entity_decode($_POST['oggetto']);	
			$test=get_var("Form Mail Lab");			
			$testo_email = html_entity_decode($_POST['body'], ENT_QUOTES);
			$destinatario=$_POST['destinatario'];
			$messaggio = new PHPmailer(str_replace( ",", ".", get_var("Indirizzo per le email in uscita") ));								
			$messaggio->FromName = str_replace( ",", ".", get_var("Nome Form Mail") );
			$messaggio->From  = str_replace( ",", ".", get_var("Indirizzo per le email in uscita") );	
			$messaggio->AddAddress($destinatario);			
			$messaggio->Subject=($oggetto);			
			$messaggio->Body=strip_tags($testo_email);
			$mail_cc=str_replace( ",", ".", get_var("Destinatario fisso in copia (campo CC)"));				
			if ($mail_cc != ""){
				$messaggio->AddCC($mail_cc);
			}		
			
			
			if(!$messaggio->Send()){ 
				array_push( $_SESSION['infos'], $messaggio->ErrorInfo );			
			}else{ 
				array_push( $_SESSION['infos'], "Email inviata correttamente" );
				// log anagrafiche
				add_storico($_POST['id_record'],"Inviato nuova MAIL");
			}
			
		break;
		
	}
	
?>
