<?php
	// release 2.0.8
	include_once(__DIR__."/../../core.php");

	include_once($docroot."/modules/articoli/modutil.php");
	include_once($docroot."/lib/function_fatpa.php");	
	include_once($docroot."/lib/function_fatpa_import.php");
	

	$iddocumento = $id_record;


	switch( $html->form('op', 'post') ){

		case "add":
		
			$idanagrafica = save( $_POST['idanagrafica'] );
			
		// testo se nuova anagrafica
			$new_anagrafica = save( $_POST['new_anagrafica'] );
			if( $new_anagrafica != '' ){
				$new_localita = save( $_POST['new_localita'] );
				$idtipoanagrafica = $html->form( 'idtipoanagrafica', 'post', false );
				
				
				$rs = $dbo->fetchArray("SELECT descrizione FROM an_tipianagrafiche WHERE idtipoanagrafica='".$idtipoanagrafica."'");
				$tipoanagrafica_desc = $rs[0]['descrizione'];
			
				//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,citta ) VALUES ( \"".$new_anagrafica."\", \"".$codice."\", \"".$idagente."\", \"".$new_localita."\" )";
				$dbo->query($query);
				$idanagrafica = $dbo->last_inserted_id();
				
				
			
				
				//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_dst = $rs[0]['descrizione'];
					
					
					if ($tipoanagrafica_dst=='Azienda')
						array_push( $_SESSION['infos'], "Sembra che tu abbia inserito la tua anagrafica Azienda, ricordati di impostarla come predefinita dal menù ''Strumenti -> Impostazioni -> Generali''." );
				}
				
				
				if ( sizeof($idtipoanagrafica) == '0' ){
					$query = "INSERT INTO an_tipianagrafiche_anagrafiche(idanagrafica, idtipoanagrafica) VALUES (\"".$idanagrafica."\", '1')";
					$dbo->query($query);
					$tipoanagrafica_dst = 'Cliente' ;
					$tipoanagrafica_desc = 'Cliente' ;
				}
				
				if ( $idagente != 0 ){
					$dbo->query("INSERT INTO an_anagrafiche_agenti( idanagrafica, idagente ) VALUES( \"".$idanagrafica."\", \"".$idagente."\" )");
				}
				//Creo il relativo conto nel partitario
				if( $tipoanagrafica_dst == '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."\", \"".$new_anagrafica."\", (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_dst == '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."\", \"".$new_anagrafica."\", (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."\"");
				}
				
				array_push( $_SESSION['infos'], "Aggiunta nuova anagrafica di tipo ''".$tipoanagrafica_dst."''" );
				
			}
			
			
			$data = saveDate( $_POST['data'] );
			$dir = $_POST['dir'];
			$idtipodocumento = save( $_POST['idtipodocumento'] );
			// cerco impostazioni tipo documento
			$numerazione_progressiva=get_var_tipodoc($idtipodocumento,'mod_num');
			$dir=get_var_tipodoc($idtipodocumento,'dir');
			$idconto=get_var_tipodoc($idtipodocumento,'idconto');
			$idpagamento_new=get_var_tipodoc($idtipodocumento,'idpagamento');
		//	$idstato=get_var_tipodoc($idtipodocumento,'sta_apertura');
			$id_gruppodoc=get_var_tipodoc($idtipodocumento,'id_gruppo_tipologia');
			$suffisso=get_var_tipodoc($idtipodocumento,'txt_suffisso');
			$suffisso_anno=get_var_tipodoc($idtipodocumento,'suffisso_anno');
			$idstato = get_var_tipodoc($idtipodocumento,'sta_apertura');
			$mod_prodotollo = get_var_tipodoc($idtipodocumento,'mod_prodotollo');
			$ordine_servizio=get_var_tipodoc($idtipodocumento,'mod_ordineservizio');			
			
			
			
			$nuovo_id_protocollo=0;
			$query = "SELECT esigibilita_iva , idagente , idbanca_vendite , default_ritenuta_acconto , default_rivalsa_inps  FROM an_anagrafiche WHERE idanagrafica='".$idanagrafica."'";
			$rs = $dbo->fetchArray($query);
			$idagente = $rs[0]['idagente'];
			$idbanca_vendite = $rs[0]['idbanca_vendite'];
			$default_ritenuta_acconto = $rs[0]['default_ritenuta_acconto'];
			$default_rivalsa_inps = $rs[0]['default_rivalsa_inps'];
			
			$split_p='0';			
			if ($rs[0]['esigibilita_iva'] == 'S' ) $split_p='1';
			
			if( $numerazione_progressiva==0) $numero = get_new_numerofattura( $data );	
				if( $numerazione_progressiva==1) $numero=get_new_numerofattura_multi($data,$idtipodocumento);									
				if( $dir=='entrata' ){
					if( $numerazione_progressiva==0) $numero_esterno = get_new_numerosecondariofattura( $data,$idtipodocumento );
					if( $numerazione_progressiva==1) $numero_esterno = get_new_numerosecondariofattura_multi( $data,$idtipodocumento );
					
				}
				else{
					
					$numero_esterno = '';
					$forza_numerazione=get_var_tipodoc($idtipodocumento,'forza_numerazione');
					if( $forza_numerazione =='1' ){
						// forzatura numero progressivo
						if( $numerazione_progressiva==0) $numero_esterno = get_new_numerosecondariofattura( $data,$idtipodocumento );
						if( $numerazione_progressiva==1) $numero_esterno = get_new_numerosecondariofattura_multi( $data,$idtipodocumento );
					}
					
			}					
			
			// ricerco ultimo id protocollo
			if( $mod_prodotollo=='1' ){
				$query = "SELECT IFNULL(MAX(id_protocollo),'0') AS max_protocollo FROM co_documenti WHERE DATE_FORMAT( data, '%Y' ) = '".date("Y", strtotime($data))."'  ORDER BY CAST(id_protocollo AS UNSIGNED) DESC LIMIT 0,1";		
				$rs = $dbo->fetchArray($query);
				$nuovo_id_protocollo = $rs[0]['max_protocollo']+1;
			}	
			// se documento e' un ordine di servizio ricerco il contratto
			$idcontratto='0';
			if( $ordine_servizio=='1' ){
				$query="SELECT co_contratti.id AS idcontratto, an_anagrafiche.idanagrafica, numero, nome FROM co_contratti INNER JOIN an_anagrafiche ON co_contratti.idanagrafica=an_anagrafiche.idanagrafica 
				WHERE an_anagrafiche.idanagrafica='".$idanagrafica."'  AND idstato NOT IN (SELECT `id` FROM co_staticontratti WHERE descrizione='Bozza' OR descrizione='Rifiutato' OR descrizione='Pagato') ORDER BY id desc";
				$rs = $dbo->fetchArray($query);
				$idcontratto = $rs[0]['idcontratto'];
			}	
			
			if( $modules_info[$module_name]["permessi"] == 'rw' ){
		
				$numero_documento=$suffisso.$numero_esterno;
				if( $suffisso_anno==1) $numero_documento = $numero_documento."_".date("Y");
				
				//Tipo di pagamento predefinito dall'anagrafica
				$query = "SELECT id FROM co_pagamenti WHERE id=(SELECT idpagamento FROM an_anagrafiche WHERE idanagrafica='".$idanagrafica."')";
				$rs = $dbo->fetchArray($query);
				$idpagamento = $rs[0]['id'];
			
				// se pagaemnto non impostato cerco se pagamento impostato per default
				if( $idpagamento=='') $idpagamento=$idpagamento_new;

				// impostazione data protocollo
				if(  date ('d') <= 15){
					$data_prot = date ('Y/m/15'); 
				}else{ 
					$data_prot = date ('Y/m/t'); 
				}
				
				
				$query = "INSERT INTO co_documenti (  split_p , idritenutaacconto,idrivalsainps,id_contratto,idbanca_vendite,id_protocollo,data_prot,idagente , numero, numero_esterno,numero_documento, id_gruppo_tipologia,idanagrafica, idconto, idtipodocumento, idpagamento, data, idstatodocumento, idsede ) VALUES 
					(  \"".$split_p."\", \"".$default_ritenuta_acconto."\", \"".$default_rivalsa_inps."\",\"".$idcontratto."\",\"".$idbanca_vendite."\",\"".$nuovo_id_protocollo."\",\"".$data_prot."\",\"".$idagente."\", \"".$numero."\", \"".$numero_esterno."\", \"".$numero_documento."\",\"".$id_gruppodoc."\",\"".$idanagrafica."\", \"".$idconto."\", \"".$idtipodocumento."\", \"".$idpagamento."\", 
					\"".$data."\", \"".$idstato."\", (SELECT idsede_fatturazione FROM an_anagrafiche WHERE idanagrafica=\"".$idanagrafica."\") )";
				$dbo->query($query);

				$iddocumento = $dbo->last_inserted_id();
				$id_record = $iddocumento;
				
				// log anagrafiche
				add_storico_doc($iddocumento,"Creazione nuovo documento");
				
				
				
				
				//Collego l'intervento al contratto
				if( $idcontratto != "0" ){
					$query = "INSERT INTO co_righe_contratti( `idcontratto`, `idintervento` ) VALUES( \"".$idcontratto."\", \"".$iddocumento."\")";
					$dbo->query( $query );
				}
				
				
				
				
				
				array_push( $_SESSION['infos'], "Aggiunto documento numero ".$numero."!" );
			}

			break;



		case "update":

			if( $modules_info[$module_name]["permessi"] == 'rw' ){
				if( isset($_POST['id_record']) ){
					
					include ($docroot . "/lib/salva_personalizzati.php");	
					
					
					$stato_per_chiusura = get_var_tipodoc2($iddocumento,'sta_concluso');		
					
					$dir=get_var_tipodoc2($iddocumento,'dir');										
					$numero_esterno = save( $_POST['numero_esterno'] );
					$data = saveDate( $_POST['data'] );
					$idagente = save( $_POST['idagente'] );
					$note = save( $_POST['note'] );
					$buono_ordine = save( $_POST['buono_ordine'] );
					$note_aggiuntive = save( $_POST['note_aggiuntive'] );
					$idstatodocumento = save($_POST['idstatodocumento']);
					$idpagamento = save($_POST['idpagamento']);
					$idcausalet = save($_POST['idcausalet']);
					$idspedizione = save($_POST['idspedizione']);
					$idporto = save($_POST['idporto']);
					$idaspettobeni = save($_POST['idaspettobeni']);
					$idvettore = save($_POST['idvettore']);
					$n_colli = save($_POST['n_colli']);
					$idsede = save($_POST['idsede']);
					$idconto = save($_POST['idconto']);
					$matricola = save($_POST['matricola']);
					$numero_documento = save($_POST['numero_documento']);
					$totale_imponibile = get_imponibile_fattura($iddocumento);
					$totale_fattura = get_totale_fattura($iddocumento);
					$idbanca_vendite=save( $_POST['idbanca_vendite']);
					
					$idmezzo = save($_POST['idmezzo']);
					$datatrasporto = saveDate( $_POST['datatrasporto'] );
					$oratrasporto = save($_POST['oratrasporto']);
					
					( $_POST['stp_prezzi'] == 'on' ) ? $stp_prezzi=1 : $stp_prezzi=0;
					( $_POST['stp_sconti'] == 'on' ) ? $stp_sconti=1 : $stp_sconti=0;
					( $_POST['stp_immagini'] == 'on' ) ? $stp_immagini=1 : $stp_immagini=0;
					( $_POST['stp_descestesa'] == 'on' ) ? $stp_descestesa=1 : $stp_descestesa=0;
					
					( $_POST['split_p'] == 'on' ) ? $split_p=1 : $split_p=0;	
					
					
					
					$bassegno=save( $_POST['bassegno']);
					$nassegno=save( $_POST['nassegno']);
					
					$tipo_sconto = save( $_POST['tipo_sconto_globale'] );	
					$sconto_globale = force_decimal($_POST['sconto_globale']);
					
					// se era chiuso mi rileggo le variabili principali
					$query = "SELECT * FROM co_documenti WHERE id='".$iddocumento."'";
					$rs = $dbo->fetchArray($query);
					if( $stato_per_chiusura == $rs[0]['idstatodocumento'] ) {
						$idpagamento=$rs[0]['idpagamento'] ;
						$idconto 	= $rs[0]['idconto'] ;
						$idbanca_vendite 	= $rs[0]['idbanca_vendite'] ;
						$idcausalet 	= $rs[0]['idcausalet'] ;
						$idaspettobeni 	= $rs[0]['idaspettobeni'] ;
						$idporto 	= $rs[0]['idporto'] ;
						$tipo_sconto 	= $rs[0]['tipo_sconto_globale'] ;
						$sconto_globale 	= $rs[0]['sconto_globale'] ;
					}		
					
					
					$qana = "SELECT id , nome  FROM my_impianti WHERE matricola='".$matricola."'";
					$rs_matricola = $dbo->fetchArray($qana);
				
					
				
					$descrizione_prev = save( $_POST['descrizione_prev'] );
					$tempi_consegna = save( $_POST['tempi_consegna'] );	
					$validita = save($_POST['validita']);					
					$data_bozza = saveDate( $_POST['data_bozza'] );
					$data_accettazione = saveDate( $_POST['data_accettazione'] );
					$data_conclusione = saveDate( $_POST['data_conclusione'] );
					$data_rifiuto = saveDate( $_POST['data_rifiuto'] );
				
				
					$id_contratto=save( $_POST['id_contratto']);
				
				// dati eventuali documento elettronico
					
					$el_causale_1 = save( $_POST['el_causale_1'] );
					$el_causale_2 = save( $_POST['el_causale_2'] );					
					$el_idrif = save( $_POST['el_idrif'] );
					$el_rif_data = saveDate( $_POST['el_rif_data'] );					
					$el_id_codicecup = save( $_POST['el_id_codicecup'] );
					$el_id_codicecig = save( $_POST['el_id_codicecig'] );					
					$el_rif_codicecommessa = save( $_POST['el_rif_codicecommessa'] );
					$el_idrif_ddt1 = save( $_POST['el_idrif_ddt1'] );
					$el_idrif_ddt1_data = saveDate( $_POST['el_idrif_ddt1_data'] );					
					$el_idrif_ddt2 = save( $_POST['el_idrif_ddt2'] );					
					$el_idrif_ddt2_data = saveDate( $_POST['el_idrif_ddt2_data'] );
					$el_modalitapagamento = save( $_POST['el_modalitapagamento'] );								
					
					
			
				//	$idritenutaacconto = get_var("Percentuale ritenuta d'acconto");
				//	$idrivalsainps = save($_POST['idrivalsainps']);
					
								
					
					
					
					if( $dir=='uscita' ){
					//	$idrivalsainps = save($_POST['idrivalsainps']);
					//	$idritenutaacconto = get_var("Percentuale ritenuta d'acconto");
						$bollo = save($_POST['bollo']);
					}

					else{
					//	$idrivalsainps = 0;
					//	$idritenutaacconto = 0;
						$bollo = 0;
					}

					// aggiorno lo stato precedente
					$query = "update co_documenti set idstatodocumento_prec = idstatodocumento where id='".$iddocumento."'";
					$dbo->query($query);	
					
					//Leggo la descrizione del pagamento
					$query = "SELECT descrizione , codice_modalita_pagamento_fe FROM co_pagamenti WHERE id='".$idpagamento."'";
					$rs = $dbo->fetchArray($query);
					$pagamento = $rs[0]['descrizione'];
					$codice_modalita_pagamento_fe = $rs[0]['codice_modalita_pagamento_fe'];


					//Query di aggiornamento
					$query = "UPDATE co_documenti SET bassegno=\"".$bassegno."\" ,nassegno=\"".$nassegno."\" ,id_impianto=\"".$rs_matricola[0]['id']."\" ,nome_impianto=\"".$rs_matricola[0]['nome']."\" ,id_contratto=\"".$id_contratto."\" , tipo_sconto_globale=\"".$tipo_sconto."\" ,sconto_globale=\"".$sconto_globale."\" ,idbanca_vendite=\"".$idbanca_vendite."\" ,matricola=\"".$matricola."\" , numero_documento=\"".$numero_documento."\", data=\"".$data."\", idstatodocumento=\"".$idstatodocumento."\",  idagente=\"".$idagente."\", idpagamento=\"".$idpagamento."\", 
					idcausalet=\"".$idcausalet."\", idspedizione=\"".$idspedizione."\", idporto=\"".$idporto."\", idaspettobeni=\"".$idaspettobeni."\", idvettore=\"".$idvettore."\", 
					n_colli=\"".$n_colli."\", idsede=\"".$idsede."\",	el_causale_1=\"".$el_causale_1."\",el_causale_2=\"".$el_causale_2."\", numero_esterno=\"$numero_esterno\", note=\"$note\", note_aggiuntive=\"$note_aggiuntive\", idconto=\"$idconto\", 				
					idmezzo=\"".$idmezzo."\", datatrasporto=\"".$datatrasporto."\", oratrasporto=\"".$oratrasporto."\",
					stp_prezzi=\"".$stp_prezzi."\", stp_sconti=\"".$stp_sconti."\", stp_immagini=\"".$stp_immagini."\", stp_descestesa=\"".$stp_descestesa."\",split_p=\"".$split_p."\",
					descrizione_prev=\"$descrizione_prev\", tempi_consegna=\"$tempi_consegna\", validita=\"$validita\", data_bozza=\"$data_bozza\", data_accettazione=\"$data_accettazione\", data_conclusione=\"$data_conclusione\", data_rifiuto=\"$data_rifiuto\", 
					el_idrif=\"".$el_idrif."\", el_rif_data=\"".$el_rif_data."\",el_id_codicecup=\"".$el_id_codicecup."\",el_id_codicecig=\"".$el_id_codicecig."\", 
					el_rif_codicecommessa=\"$el_rif_codicecommessa\", el_idrif_ddt1=\"$el_idrif_ddt1\", el_idrif_ddt1_data=\"$el_idrif_ddt1_data\", el_idrif_ddt2=\"$el_idrif_ddt2\", el_idrif_ddt2_data=\"$el_idrif_ddt2_data\", el_modalitapagamento=\"".$codice_modalita_pagamento_fe."\" , 
					buono_ordine=\"".$buono_ordine."\",  bollo=0, rivalsainps=0, ritenutaacconto=0, iva_rivalsainps=0 WHERE id=\"$iddocumento\"";

					$dbo->query($query);
					
					// log anagrafiche
					add_storico_doc($iddocumento,"Eseguito salvataggio documento");
					
					
					//aggiorno intervento se presente un riferimento al documento
					$dbo->query( "update in_interventi SET idsede=\"".$idsede."\" WHERE idintervento='$iddocumento'" );																						
						
					$query = "SELECT descrizione FROM co_statidocumento WHERE id='$idstatodocumento'";
					$rs = $dbo->fetchArray($query);

					//Ricalcolo inps, ritenuta e bollo (se la fattura non è stata pagata)
					if( $dir=='entrata' ){
						ricalcola_costiagg_fattura($iddocumento);
					}

					else{
						ricalcola_costiagg_fattura($iddocumento, $idrivalsainps, $idritenutaacconto, $bollo);
					}

					aggiorna_sconto($iddocumento);
					
					// leggo stati per piano diei conti e scadenziario
					$stato_per_scadenziario = get_var_tipodoc2($iddocumento,'sta_scadenziario');					
					$stato_conto = get_var_tipodoc2($iddocumento,'sta_conto');					
				//	$stato_per_chiusura = get_var_tipodoc2($iddocumento,'sta_concluso');				
					
					$query = "SELECT descrizione   FROM co_statidocumento WHERE id='$stato_per_scadenziario'";
					$rs_scadenziario = $dbo->fetchArray($query);
					$stato_per_scadenziario=$rs_scadenziario[0]['descrizione'];
					
					$query = "SELECT descrizione   FROM co_statidocumento WHERE id='$stato_conto'";
					$rs_scadenziario = $dbo->fetchArray($query);
					$stato_per_conto=$rs_scadenziario[0]['descrizione'];
										
					$query = "SELECT descrizione   FROM co_statidocumento WHERE id='$stato_per_chiusura'";
					$rs_scadenziario = $dbo->fetchArray($query);
					$stato_per_chiusura=$rs_scadenziario[0]['descrizione'];
					//Elimino la scadenza e tutti i movimenti, poi se la fattura è emessa le ricalcolo
					if( $rs[0]['descrizione']<>$stato_per_chiusura ){
						//Elimino la scadenza e tutti i movimenti
						if( $rs[0]['descrizione']<>$stato_per_scadenziario ){
							elimina_scadenza($iddocumento);
							elimina_movimento($iddocumento, 0);
							elimina_movimento($iddocumento, 1);
						}	
						else if( $rs[0]['descrizione']==$stato_per_scadenziario ){
							elimina_scadenza($iddocumento);
							elimina_movimento($iddocumento, 0);
						}
						
						if( $rs[0]['descrizione']==$stato_per_scadenziario ){
							aggiungi_scadenza($iddocumento, $pagamento);
							
							array_push( $_SESSION['infos'], "Inserimento scadenziario pagamenti!" );
						}
						if( $rs[0]['descrizione']==$stato_per_conto ){
							
							aggiungi_movimento($iddocumento, $dir);
							array_push( $_SESSION['infos'], "Inserimento nel piano dei conti!" );
						}
					}
					
					
					//testo se devo creare in automatico documento figlio
					
					$sta_cambio		=get_var_tipodoc2($iddocumento,'sta_cambio');
					$doc_sucessivo	=get_var_tipodoc2($iddocumento,'doc_sucessivo');
					$sta_sucessivo	=get_var_tipodoc2($iddocumento,'sta_sucessivo');
					
					
								
					
					if ( $sta_cambio == $idstatodocumento && $doc_sucessivo<>'0'  && $sta_sucessivo<>'0'  ){
						//genero automatico documento figlio
						$new_iddocumento=doc_duplica($iddocumento,$doc_sucessivo ,$sta_sucessivo);										
						array_push( $_SESSION['infos'], "Documento sucessivo creato con successo!" );					
					}	
					
					
					// testo se devo inserire le posizoni dentro l'impianto					
					$mod_myimpianti	=get_var_tipodoc2($iddocumento,'mod_myimpianti');
					if ( $mod_myimpianti == $idstatodocumento &&  $matricola <>''  ){						
						inserisci_myimpianti($iddocumento , $matricola);										
						array_push( $_SESSION['infos'], "Inserire posizioni in impianto!" );					
					}			
					
					
					if( $matricola !='' ){			
						$dbo->query( "DELETE FROM my_impianti_interventi WHERE idintervento='$iddocumento'" );
						$rs = $dbo->fetchArray("SELECT id   FROM my_impianti WHERE matricola=\"".$matricola."\"");
						$id_myimpianto=	$rs[0]['id'];							
						$dbo->query("INSERT INTO my_impianti_interventi( idintervento, idimpianto ) VALUES( \"".$iddocumento."\", \"".$id_myimpianto."\" )");

					}
					
					
					
					
				

					array_push( $_SESSION['infos'], "Documento modificato correttamente!" );
									
				}
			}

			break;

		//eliminazione documento
		case "delete":
			if( $modules_info[$module_name]["permessi"] == 'rw' ){
			// tolgo la transazione se e' un documento differito
				$query = "SELECT idpadre  FROM co_documenti_transazioni WHERE idfiglio='$iddocumento'";
				$rs = $dbo->fetchArray($query);
				for( $i=0; $i<sizeof($rs); $i++ ){
					$dbo->query( "UPDATE co_documenti SET  idstatodocumento = idstatodocumento_prec , id_differito=0 WHERE id='".$rs[$i]['idpadre']."'" );
				}				
			//Se ci sono degli articoli collegati (ma non collegati a preventivi o interventi) li rimetto nel magazzino
				$query = "SELECT id, idarticolo  FROM co_righe_documenti WHERE iddocumento='$iddocumento'";
				$rs = $dbo->fetchArray($query);
				for( $i=0; $i<sizeof($rs); $i++ ){
					rimuovi_articolo_dafattura( $rs[$i]['idarticolo'], $iddocumento, $rs[$i]['id'] );
				}
			// cerco documenti padre arrivati da transazioni precedenti
				$query = "SELECT id_doc_padre FROM co_documenti WHERE id='$iddocumento'";
				$rs = $dbo->fetchArray($query);
			//	cerco riferimento ad interventi impianto
				$dbo->query( "DELETE FROM my_impianti_interventi WHERE idintervento='$iddocumento'" );			
			
				if ( cerca_modulo("HelpDesk") > 0 ) {
					//scangio eventuale schede helpdesk
					$dbo->query( "UPDATE ca_callcenter SET iddocumento = '0' WHERE iddocumento='".$iddocumento."'" );
				}
				if ( cerca_modulo("Noleggio") > 0 ) {
					//scangio eventuale schede noleggio
					$dbo->query( "UPDATE ms_noleggio SET idpreventivo = '0' WHERE idpreventivo='".$iddocumento."'" );
				}
				if ( cerca_modulo("Domini") > 0 ) {
					//scangio eventuale schede dominio
					$dbo->query( "UPDATE web_domini SET iddocumento = '0' WHERE iddocumento='".$iddocumento."'" );
				}
				if ( cerca_modulo("Laboratorio") > 0 ) {
					//scangio eventuale schede laboratorio
					$dbo->query( "UPDATE lb_laboratorio SET iddocumento = '0' WHERE iddocumento='".$iddocumento."'" );
					$rs_test = $dbo->fetchArray("SELECT * FROM lb_laboratorio WHERE n_ddt='".$iddocumento."'");	
					if (sizeof($rs_test) > 0) {													
						$dbo->query( "UPDATE lb_laboratorio SET n_ddt = '0' , rma='' , note='' WHERE n_ddt='".$iddocumento."'" );						
					}
				}
				// svuoto collegaemnto ad eventuale documento di canone
				$dbo->query( "UPDATE co_contratti SET id_documento = '0' WHERE id_documento='".$iddocumento."'" );
			
			
			
			
			
			// testo se il documento e' stato completamente evaso			
				$rs_test = $dbo->fetchArray("SELECT * FROM co_righe_documenti WHERE qta <> qta_evasa and iddocumento='".$rs[0]['id_doc_padre']."'");	
				if (sizeof($rs_test) > 0) {									
					agg_doc_stato_rip($rs[0]['id_doc_padre']);			
				}
			
				
				$dbo->query( "DELETE FROM co_documenti_transazioni WHERE idfiglio='$iddocumento'" );
				$dbo->query( "DELETE FROM or_ordini_transazioni WHERE idfiglio='$iddocumento'" );
				$dbo->query( "DELETE FROM co_documenti WHERE id='$iddocumento'" );
				$dbo->query( "DELETE FROM co_righe_documenti WHERE iddocumento='$iddocumento'" );
				$dbo->query( "DELETE FROM co_scadenziario WHERE iddocumento='$iddocumento'" );
				$dbo->query( "DELETE FROM mg_movimenti WHERE iddocumento='$iddocumento'" );
			// elimino eventuali pianificazioni
				$dbo->query( "DELETE FROM in_interventi WHERE idintervento='$iddocumento'" );
				$dbo->query( "DELETE FROM in_interventi_tecnici WHERE idintervento='$iddocumento'" );
				$dbo->query( "DELETE FROM mg_articoli_interventi WHERE idintervento='$iddocumento'" );
				$dbo->query( "DELETE FROM in_righe_interventi WHERE idintervento='$iddocumento'" );
			// elimino allegati e progressivi al documento	
				$dbo->query( "DELETE FROM zz_files WHERE externalid='$iddocumento'" );
				$dbo->query( "DELETE FROM co_documenti_progressivo WHERE id_documento='$iddocumento'" );
				
				
				
				elimina_scadenza($iddocumento);
				elimina_movimento($iddocumento);
				array_push( $_SESSION['infos'], "Documento eliminato!" );
				
				// log anagrafiche
				add_storico_doc($iddocumento,"Eliminazione nuovo documento");
				
			}

			break;



		


		


		case "reopen":
			if( $modules_info[$module_name]["permessi"] == 'rw' ){
				if( $id_record != '' ){
					if( $dbo->query("UPDATE co_documenti SET idstatodocumento=(SELECT id FROM co_statidocumento WHERE descrizione='Bozza') WHERE id='".$id_record."'") ){
						elimina_scadenza( $id_record );
						elimina_movimento( $id_record , 1 );
						ricalcola_costiagg_fattura( $id_record );
						array_push( $_SESSION['infos'], "Fattura riaperta!" );
						// log anagrafiche
						add_storico_doc($id_record,"Riapertura del documento");
					}
				}
			}

			break;




		case "addarticolo":
			
			if( $modules_info[$module_name]["permessi"] == 'rw' ){
				if( $iddocumento != '' && isset($_POST['idarticolo']) ){
					$idarticolo = save( $_POST['idarticolo'] );
					$idmagazzino = save( $_POST['idmagazzino'] );
					$id_matricola = save( $_POST['id_matricola'] );
					
					$idrivalsainps = save( $_POST['idrivalsainps'] );
					$idritenutaacconto = save( $_POST['idritenutaacconto'] );

					$descrizione = save( $_POST['descrizione'] );
					$descrizione_art = save( $_POST['descrizione'] );
					// cerco iva articoli preimpostata
					$idiva=query_secca("","idiva_vendita","mg_articoli","where id ='".$idarticolo."'");
					if( $idiva=='0' ){
						$idiva = get_var("Iva predefinita");
					}				
					
					$idconto=query_secca("","id_conto","mg_articoli","where id='".$idarticolo."'");
					$qta = force_decimal( $_POST['qta'] );
					$prezzo = force_decimal( $_POST['prezzo'] );
					$lotto = "";
					$serial = save( $_POST['serial'] );
					$altro = "";
					$idtiposconto = save( $_POST['idtiposconto'] );
					$sconto = force_decimal($_POST['sconto']);
					$sconto_extra = force_decimal($_POST['sconto_extra']);
					$sconto_extra1 = force_decimal($_POST['sconto_extra1']);
					
					$per_agente = force_decimal($_POST['per_agente']);
					
					$ins_doppia=0;
					$riga_canone=0;
					$riga_canone1=0;
					// cerco evantuali posizioni di contratto fisse se presente un contratto associato 
					if( $records[0]['id_contratto'] != "0" && $records[0]['id_contratto'] != "" ){
						$qta_consumata=cerca_canone_qta($records[0]['id_contratto'],$idarticolo);
						$qta_scalare=cerca_canone_qta_scalare($records[0]['id_contratto'],$idarticolo);
						$prezzo_imposto=cerca_canone_prezzo($records[0]['id_contratto'],$idarticolo);
						$qta_disp=$qta_scalare - $qta_consumata;
					
						if( $qta_scalare != '' ){
							$riga_canone=1;
							if( $qta_disp >= $qta ){
								$prezzo="0";								
							}else{								
								$qta_new=$qta - $qta_disp;;
								$prezzo_new	=$prezzo;
								$qta=$qta_disp;		
								$prezzo="0";	
								$ins_doppia=1;
								$riga_canone1=2;								
								$prezzo_tmp = cerca_canone_prezzo($records[0]['id_contratto'],$idarticolo);							
								if( $prezzo_tmp != '' ) $prezzo_new=$prezzo_tmp;
							}
						}else{
							// la qta disponibile non presente , cerco eventuale prezzo imposto
							$riga_canone1=2;
							$riga_canone=2;
							$prezzo_new = cerca_canone_prezzo($records[0]['id_contratto'],$idarticolo);							
							if( $prezzo_new != '' ) $prezzo=$prezzo_new;
							if( $prezzo_new == '' ) $riga_canone=0;
							
							
						}
						
						$forza_zero=cerca_contratti_a_zero($records[0]['id_contratto']);
						if( $forza_zero == '1' ){
							$prezzo_new=0;
							$prezzo=0;
							$riga_canone1=2;
							$riga_canone=2;
						}		
							
					}
				
					if($idtiposconto=='2'){
						$sconto_prc = $sconto;
						$sconto = ($prezzo * $sconto_prc)/100;	
						$sconto_new = ($prezzo_new * $sconto_prc)/100;			
					}else{
						$sconto_prc = $sconto;
					}										
					if($idtiposconto=='2'){
						$sconto_extra = $sconto_extra;
						$sconto1 = (($prezzo -  $sconto) * $sconto_extra)/100;
						$sconto1_new = (($prezzo_new -  $sconto_new) * $sconto_extra)/100;
					}else{
						$sconto1 = $sconto_extra;					
					}
					if($idtiposconto=='2'){
						$sconto_extra1 = $sconto_extra1;
						$sconto2 = (($prezzo -  $sconto - $sconto1 ) * $sconto_extra1)/100;
						$sconto2_new = (($prezzo_new -  $sconto_new - $sconto1_new ) * $sconto_extra1)/100;
					}else{
						$sconto2 = $sconto_extra1;					
					}
					$sconto = ( $sconto + $sconto1 + $sconto2  ) *$qta;
					$sconto_new = ( $sconto_new + $sconto1_new + $sconto2_new  ) *$qta_new;

					if( $records[0]['id_contratto'] != "0" && $records[0]['id_contratto'] != "" && $riga_canone != '0' ){
						$sconto=0;
						$sconto_new=0;
						$sconto_prc=0;
						$sconto_extra=0;
						$sconto_extra1=0;
					}	
					
					
					
					add_articolo_infattura( $iddocumento, $idarticolo, $descrizione, $idiva, $qta, $prezzo*$qta, $sconto, '0', $lotto, $serial, $altro , $idconto,$idtiposconto,$sconto_prc,$sconto_extra,$sconto_extra1 ,$idmagazzino , $riga_canone ,$id_matricola,$per_agente );
					
					if($ins_doppia=='1'){
						add_articolo_infattura2( $iddocumento, $idarticolo, $descrizione, $idiva, $qta_new, $prezzo_new*$qta_new, $sconto_new, '0', $lotto, $serial, $altro , $idconto,$idtiposconto,$sconto_prc,$sconto_extra,$sconto_extra1 ,$idmagazzino , $riga_canone1 ,$id_matricola,$per_agente );					
					}	
					
					array_push( $_SESSION['infos'], "Articolo aggiunto!" );
					
					
					
					if( $dir=='entrata' ){
						ricalcola_costiagg_fattura($iddocumento);
					}
					else{
						ricalcola_costiagg_fattura($iddocumento);
					}
					
				}
			}
			break;


		case "addriga":
			if( $modules_info[$module_name]["permessi"] == 'rw' ){
				if( $iddocumento != '' ){
					//Selezione costi da intervento
					$descrizione = save( $_POST['descrizione'] );
					$importo_manuale = force_decimal( $_POST['subtot'] );
					$qta = force_decimal($_POST['qta']);
					$idiva = save($_POST['idiva']);
					$id_matricola = save( $_POST['id_matricola'] );
					$um = save($_POST['um']);
					$subtot = $importo_manuale*$qta;				
					$idconto = save( $_POST['idconto_riga'] );
					$idtiposconto = save( $_POST['idtiposconto'] );
					$sconto = force_decimal($_POST['sconto']);
					$sconto_extra = force_decimal($_POST['sconto_extra']);
					$sconto_extra1 = force_decimal($_POST['sconto_extra1']);
					$per_agente = force_decimal($_POST['per_agente']);
					
					if($idtiposconto=='2'){
						$sconto_prc = $sconto;
						$sconto = ($importo_manuale * $sconto_prc)/100;											
					}else{
						$sconto_prc = $sconto;
					}										
					if($idtiposconto=='2'){
						$sconto_extra = $sconto_extra;
						$sconto1 = (($importo_manuale -  $sconto) * $sconto_extra)/100;
					}else{
						$sconto1 = $sconto_extra;					
					}
					if($idtiposconto=='2'){
						$sconto_extra1 = $sconto_extra1;
						$sconto2 = (($importo_manuale -  $sconto - $sconto1 ) * $sconto_extra1)/100;
					}else{
						$sconto2 = $sconto_extra1;					
					}
					$sconto = ( $sconto + $sconto1 + $sconto2  ) *$qta;

					// cerco dati agente
					$query = "SELECT idanagrafica  FROM co_documenti WHERE id='".$iddocumento."'";
					$rs = $dbo->fetchArray($query);
					
					
					$query = "SELECT idagente , default_ritenuta_acconto , default_rivalsa_inps FROM an_anagrafiche WHERE idanagrafica='".$rs[0]['idanagrafica']."'";
					$rs = $dbo->fetchArray($query);
					$default_ritenuta_acconto = $rs[0]['default_ritenuta_acconto'];
					$default_rivalsa_inps = $rs[0]['default_rivalsa_inps'];
					
					$query = "SELECT * FROM an_anagrafiche WHERE idanagrafica='".$rs[0]['idagente']."'";
					$rs_agente = $dbo->fetchArray($query);		
					$perc_agente = $rs_agente[0]['perc_agente'];
					$perc_netto = $rs_agente[0]['perc_netto'];
					$perc_iva = $rs_agente[0]['perc_iva'];
					
					
					if ($per_agente != '0'	) {	
						$perc_agente=$per_agente;
					}
					
					
					//calcolo percentuali agente				
					if($perc_netto =='1'){
						$val_agente=($importo_manuale * $qta)  - $sconto ;							
						$val_agente = ($val_agente * $perc_agente)/100;
					}else{
						$val_agente = (($importo_manuale *  $qta) * $perc_agente)/100;					
					}
					if( $perc_iva =='1'){
						$rs2 = $dbo->fetchArray("SELECT * FROM co_iva WHERE id='".$idiva."'");
						$agente_iva= ($val_agente/100)*$rs2[0]['percentuale'];
						$val_agente=$val_agente + $agente_iva ;														
					}
					
					
					
					
					
					//Calcolo iva
					$query = "SELECT * FROM co_iva WHERE id='".$idiva."'";
					$rs = $dbo->fetchArray($query);
					$iva = ($subtot-$sconto)/100*$rs[0]['percentuale'];
					$iva_indetraibile = $iva/100*$rs[0]['indetraibile'];
					$desc_iva = $rs[0]['descrizione'];

					//Calcolo rivalsa inps
					$query = "SELECT * FROM co_rivalsainps WHERE id='".$html->form('idrivalsainps', 'post')."'";
					$rs = $dbo->fetchArray($query);
					$rivalsainps = $importo_manuale * $qta / 100 * $rs[0]['percentuale'];

					$idrivalsainps=$html->form('idrivalsainps', 'post');
					
					//Calcolo ritenuta d'acconto
					$query = "SELECT * FROM co_ritenutaacconto WHERE id='".$html->form('idritenutaacconto', 'post')."'";
					$rs = $dbo->fetchArray($query);
					$ritenutaacconto = (($importo_manuale*$qta) + $rivalsainps) / 100 * $rs[0]['percentuale'];					
					$idritenutaacconto=$html->form('idritenutaacconto', 'post');
					
					if( $default_rivalsa_inps != "0"  ){		
						$idrivalsainps=$default_rivalsa_inps;
						$query = "SELECT * FROM co_rivalsainps WHERE id='".$default_rivalsa_inps."'";
						$rs = $dbo->fetchArray($query);
						$rivalsainps = $importo_manuale * $qta / 100 * $rs[0]['percentuale'];
					}
		
					if( $default_ritenuta_acconto != "0"  ){
						$idritenutaacconto=$default_ritenuta_acconto;						
						//Calcolo ritenuta d'acconto
						$query = "SELECT * FROM co_ritenutaacconto WHERE id='".$default_ritenuta_acconto."'";
						$rs = $dbo->fetchArray($query);
						$ritenutaacconto = (($importo_manuale*$qta) + $rivalsainps) / 100 * $rs[0]['percentuale'];	
					}
					

					// Info matricola
					$qana = "SELECT *  FROM my_impianti WHERE matricola='".$id_matricola."'";
					$rs_matricola = $dbo->fetchArray($qana);
					$matricola_impianto=$rs_matricola[0]['id'];
		
					
					//Aggiunta riga generica sul documento
					$query = "INSERT INTO co_righe_documenti( id_impianto , matricola_impianto , iddocumento, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, um, qta, idrivalsainps, rivalsainps, idritenutaacconto, ritenutaacconto,idconto,tipo_sconto,sconto_primo,sconto_extra ,sconto_extra1,importo_agente,importo_iva_agente,perc_agente)  
					VALUES( '".$matricola_impianto."','".$id_matricola."',\"$iddocumento\", \"".$idiva."\", \"$desc_iva\", \"$iva\", \"$iva_indetraibile\", \"$descrizione\", \"$subtot\", \"$sconto\", \"$um\", \"$qta\", \"".$idrivalsainps."\", 
					\"".$rivalsainps."\", \"".$idritenutaacconto."\", \"".$ritenutaacconto."\" , \"".$idconto."\", \"".$idtiposconto."\", \"".$sconto_prc."\",\"".$sconto_extra."\",\"".$sconto_extra1."\",\"".$val_agente."\",\"".$agente_iva."\",\"".$perc_agente."\" )";

					if( $dbo->query($query) ){
						array_push( $_SESSION['infos'], "Riga aggiunta!" );

							// log anagrafiche
							add_storico_doc($iddocumento,"Aggiunto articolo generico ".$descrizione." con quantità = ".$qta);
						
						//Ricalcolo inps, ritenuta e bollo
						if( $dir=='entrata' ){
							ricalcola_costiagg_fattura($iddocumento);
						}

						else{
							ricalcola_costiagg_fattura($iddocumento);
						}
					}
				}
			}
			break;

		case "addriga_g":
			if( $modules_info[$module_name]["permessi"] == 'rw' ){
				if( $iddocumento != '' ){
					$descrizione = save( $_POST['descrizione'] );			
					//Aggiunta riga generica sul documento
					$query = "INSERT INTO co_righe_documenti(   iddocumento,  descrizione , riga_varia)  
					VALUES( \"$iddocumento\",  \"$descrizione\", '1' )";
					if( $dbo->query($query) ){
						array_push( $_SESSION['infos'], "Riga aggiunta!" );
						// log anagrafiche
						add_storico_doc($iddocumento,"Aggiunto commento ".$descrizione);
					}
				}
			}
			break;


		case "editriga":
			if( $modules_info[$module_name]["permessi"] == 'rw' ){
				if( isset($_POST['idriga']) ){
					//Selezione costi da intervento
					$ins_doppia=0;
					$idriga = $html->form('idriga', 'post');
					$idmagazzino = save( $_POST['idmagazzino'] );
					$id_matricola = save( $_POST['id_matricola'] );
					$descrizione = save( $_POST['descrizione'] );
					$importo_manuale = save( $_POST['subtot'] );
					$importo_manuale = str_replace( ",", ".", $importo_manuale );
					$prezzo = force_decimal( $_POST['subtot'] );
					$qta = save($_POST['qta']);
					$qta = str_replace( ",", ".", $qta );
					$idiva = save($_POST['idiva']);
					$um = save($_POST['um']);
					$idconto = save( $_POST['idconto_riga'] );
					$subtot = $importo_manuale*$qta;
					$idtiposconto = save( $_POST['idtiposconto'] );
					$sconto = force_decimal($_POST['sconto']);
					$sconto_extra = force_decimal($_POST['sconto_extra']);
					$sconto_extra1 = force_decimal($_POST['sconto_extra1']);
					$idmagazzino_old=query_secca("","id_magazzino_e","co_righe_documenti","where id='".$idriga."'");
					$per_agente = force_decimal($_POST['per_agente']);
					
					// Info matricola
					$qana = "SELECT *  FROM my_impianti WHERE matricola='".$id_matricola."'";
					$rs_matricola = $dbo->fetchArray($qana);
					$matricola_impianto=$rs_matricola[0]['id'];
		
					
				// cerco evantuali posizioni di contratto fisse se presente un contratto associato 
					if( $records[0]['id_contratto'] != "0" && $records[0]['id_contratto'] != "" ){
						$query = "SELECT idarticolo , qta , riga_canone FROM co_righe_documenti WHERE id='".$idriga."'";
						$rs = $dbo->fetchArray($query);	
						if(  $rs[0]['idarticolo'] != '0' ){
							$qta_consumata=cerca_canone_qta($records[0]['id_contratto'],$rs[0]['idarticolo']);
							$qta_scalare=cerca_canone_qta_scalare($records[0]['id_contratto'],$rs[0]['idarticolo']);
							$prezzo_imposto=cerca_canone_prezzo($records[0]['id_contratto'],$rs[0]['idarticolo']);
							$qta_disp=$qta_scalare - $qta_consumata + $rs[0]['qta'];													
							if( ( $qta_scalare != '' ) && ( $rs[0]['riga_canone'] == '1')){							
								if( $qta_disp >= $qta ){
									$importo_manuale="0";
								}else{								
									$qta_new=$qta - $qta_disp;;
									$prezzo_new	=$importo_manuale;
									$qta=$qta_disp;		
									$importo_manuale="0";	
									$ins_doppia=1;	
									$prezzo_tmp = cerca_canone_prezzo($records[0]['id_contratto'],$rs[0]['idarticolo']);							
									if( $prezzo_tmp != '' ) $prezzo_new=$prezzo_tmp;
								}
							}else{
								// la qta disponibile non presente , cerco eventuale prezzo imposto
								$prezzo_new = cerca_canone_prezzo($records[0]['id_contratto'],$idarticolo);							
								if( $prezzo_new != '' ) $importo_manuale=$prezzo_new;
								
							}
							
							
						}						
					}

					if($idtiposconto=='2'){
						$sconto_prc = $sconto;
						$sconto = ($importo_manuale*$sconto_prc)/100;
						$sconto_new = ($prezzo_new * $sconto_prc)/100;							
					}else{
						$sconto_prc = $sconto;
					}										
					if($idtiposconto=='2'){
						$sconto_extra = $sconto_extra;
						$sconto1 = (($importo_manuale -  $sconto) * $sconto_extra)/100;
						$sconto1_new = (($importo_manuale -  $sconto_new) * $sconto_extra)/100;
					}else{
						$sconto1 = $sconto_extra;					
					}
					if($idtiposconto=='2'){
						$sconto_extra1 = $sconto_extra1;
						$sconto2 = (($importo_manuale -  $sconto - $sconto1) * $sconto_extra1)/100;
						$sconto2_new = (($importo_manuale -  $sconto_new - $sconto1_new) * $sconto_extra1)/100;
					}else{
						$sconto2 = $sconto_extra1;					
					}
					$sconto = ( $sconto + $sconto1 + $sconto2  ) *$qta;
					$sconto_new = ( $sconto_new + $sconto1_new + $sconto2_new  ) *$qta;
					
					// impostazioni documento$esegue_movimento=get_var_tipodoc2($iddocumento,"mod_mov");
					$esegue_movimento=get_var_tipodoc2($iddocumento,"mod_mov");
					$esegue_giacenza = get_var_tipodoc2($iddocumento,"mod_mag");
					$id_magazzino_e = get_var_tipodoc2($iddocumento,"id_magazzino_e");
					$id_magazzino_u = get_var_tipodoc2($iddocumento,"id_magazzino_u");
					$id_tipo_u = get_var_tipodoc2($iddocumento,"id_tipo_u");
					$dir = get_var_tipodoc2($iddocumento,"dir");
					$agg_prezzo_e = get_var_tipodoc2($iddocumento,"agg_prezzo_e");
					$agg_prezzo_u = get_var_tipodoc2($iddocumento,"agg_prezzo_u");
		
		
					if ( $idmagazzino >= '0' ) $id_magazzino_e=$idmagazzino;
		
		
		
					// cerco dati agente
					$query = "SELECT idanagrafica FROM co_documenti WHERE id='".$iddocumento."'";
					$rs = $dbo->fetchArray($query);
					$query = "SELECT idagente , default_ritenuta_acconto , default_rivalsa_inps FROM an_anagrafiche WHERE idanagrafica='".$rs[0]['idanagrafica']."'";
					$rs = $dbo->fetchArray($query);
					$default_ritenuta_acconto = $rs[0]['default_ritenuta_acconto'];
					$default_rivalsa_inps = $rs[0]['default_rivalsa_inps'];
		
					$query = "SELECT * FROM an_anagrafiche WHERE idanagrafica='".$rs[0]['idagente']."'";
					$rs_agente = $dbo->fetchArray($query);		
					$perc_agente = $rs_agente[0]['perc_agente'];
					$perc_netto = $rs_agente[0]['perc_netto'];
					$perc_iva = $rs_agente[0]['perc_iva'];
					
					if ($per_agente != '0'	) {	
						$perc_agente=$per_agente;
					}
					
					
					
					//calcolo percentuali agente				
					if($perc_netto =='1'){
						$val_agente=($importo_manuale * $qta)  - $sconto ;							
						$val_agente = ($val_agente * $perc_agente)/100;
					}else{
						$val_agente = (($importo_manuale *  $qta) * $perc_agente)/100;					
					}
					if( $perc_iva =='1'){
						$rs2 = $dbo->fetchArray("SELECT * FROM co_iva WHERE id='".$idiva."'");
						$agente_iva= ($val_agente/100)*$rs2[0]['percentuale'];
						$val_agente=$val_agente + $agente_iva ;														
					}
					
					
					
					//Lettura idarticolo dalla riga documento
					$rs = $dbo->fetchArray("SELECT idarticolo, qta FROM co_righe_documenti WHERE id=\"".$idriga."\"");
					$idarticolo = $rs[0]['idarticolo'];
					$old_qta = $rs[0]['qta'];

					
					$subtot = $importo_manuale*$qta;
					
					//Calcolo iva
					$query = "SELECT * FROM co_iva WHERE id='".$idiva."'";
					$rs = $dbo->fetchArray($query);
					$iva = ($subtot-$sconto)/100*$rs[0]['percentuale'];
					$iva_indetraibile = $iva/100*$rs[0]['indetraibile'];
					$desc_iva = $rs[0]['descrizione'];


					//Calcolo rivalsa inps
					$query = "SELECT * FROM co_rivalsainps WHERE id='".$html->form('idrivalsainps', 'post')."'";
					$rs = $dbo->fetchArray($query);
					$rivalsainps = $importo_manuale*$qta / 100 * $rs[0]['percentuale'];

					//Calcolo ritenuta d'acconto
					$query = "SELECT * FROM co_ritenutaacconto WHERE id='".$html->form('idritenutaacconto', 'post')."'";
					$rs = $dbo->fetchArray($query);
					$ritenutaacconto = (($importo_manuale*$qta) + $rivalsainps) / 100 * $rs[0]['percentuale'];

					$idrivalsainps=$html->form('idrivalsainps', 'post');
					$idritenutaacconto=$html->form('idritenutaacconto', 'post');
					
					if( $default_rivalsa_inps != "0"  ){		
						$idrivalsainps=$default_rivalsa_inps;	
						$query = "SELECT * FROM co_rivalsainps WHERE id='".$default_rivalsa_inps."'";
						$rs = $dbo->fetchArray($query);
						$rivalsainps = $importo_manuale * $qta / 100 * $rs[0]['percentuale'];
					}
		
					if( $default_ritenuta_acconto != "0"  ){							
						$idritenutaacconto=$default_ritenuta_acconto;	
						//Calcolo ritenuta d'acconto
						$query = "SELECT * FROM co_ritenutaacconto WHERE id='".$default_ritenuta_acconto."'";
						$rs = $dbo->fetchArray($query);
						$ritenutaacconto = (($importo_manuale*$qta) + $rivalsainps) / 100 * $rs[0]['percentuale'];	
					}
					
					
					
					
					//Modifica riga generica sul documento
				$query = "UPDATE co_righe_documenti SET matricola_impianto=\"".$id_matricola."\", id_impianto=\"".$matricola_impianto."\", id_magazzino_e=\"".$id_magazzino_e."\", idconto=\"".$idconto."\", idiva=\"".$idiva."\", desc_iva=\"".$desc_iva."\", iva=\"".$iva."\", iva_indetraibile=\"".$iva_indetraibile."\", descrizione=\"".$descrizione."\", 
				subtotale=\"".$subtot."\", 	sconto=\"".$sconto."\", tipo_sconto=\"".$idtiposconto."\", sconto_primo=\"".$sconto_prc."\", sconto_extra=\"".$sconto_extra."\", sconto_extra1=\"".$sconto_extra1."\",
				um=\"".$um."\", qta=\"".$qta."\", idritenutaacconto=\"".$idritenutaacconto."\", 
				ritenutaacconto=\"".$ritenutaacconto."\", idrivalsainps=\"".$idrivalsainps."\", rivalsainps=\"".$rivalsainps."\" ,
				importo_agente=\"".$val_agente."\",importo_iva_agente=\"".$agente_iva."\",perc_agente=\"".$perc_agente."\" WHERE id=\"".$idriga."\"";
				
				
			
					
					
					
					if( $dbo->query($query) ){
						// log anagrafiche
						add_storico_doc($iddocumento,"Modificato articolo ".$descrizione." con quantità = ".$qta);
					
						if($ins_doppia=='1'){
							add_articolo_infattura2( $iddocumento, $idarticolo, $descrizione, $idiva, $qta_new, $prezzo_new*$qta_new, $sconto_new, '0', $lotto, $serial, $altro , $idconto,$idtiposconto,$sconto_prc,$sconto_extra,$sconto_extra1 ,$idmagazzino ,$id_matricola);					
						}	
					
					
						//Se ho movimentato una riga collegata ad un articolo di magazzino, movimento il magazzino
						if( $idarticolo != '' ){
							( $dir == 'entrata' ) ? $sign='-' : $sign='+';
					
							if( $esegue_movimento== 1 ) {
								//Lettura dati del movimento in magazzino per poterlo modificare
								$rs = $dbo->fetchArray("SELECT id, qta FROM mg_movimenti WHERE idarticolo=\"".$idarticolo."\" AND qta=\"".$sign.$old_qta."\" AND iddocumento=\"".$iddocumento."\"");
								$idmovimento = $rs[0]['id'];
								//Aggiorno il movimento del magazzino
								$query = "UPDATE mg_movimenti SET qta=\"".$sign.$qta."\" WHERE id=\"".$idmovimento."\"";
								$dbo->query( $query );
							}

							
							//Aggiorno la quantità articolo (qtà_attuale - qtà_precedentemente_movimentata + nuova_qtà)
							if( $esegue_giacenza== 1 ) {
								if ( $idmagazzino_old == $id_magazzino_e ){
									if( $id_magazzino_e == 0 ) {
										$tabella=" mg_articoli ";
										$where =" WHERE id='".$idarticolo."'";
									} else{
										$tabella=" mg_articoli_magazzini ";
										$where 	=" WHERE idarticolo='".$idarticolo."' and idmagazzino='".$id_magazzino_e."' ";
									}
									if( $dir == "entrata" ){
										$query = "UPDATE ".$tabella." SET qta= qta +".$old_qta.$sign.$qta.$where;
									}			
									else{
										$query = "UPDATE ".$tabella." SET qta=qta -".$old_qta.$sign.$qta.$where;
									}
									$dbo->query( $query );
								}	
								else{
									// ripristino giacenza prima di cambio magazzino
									if( $idmagazzino_old == 0 ) {
										$tabella=" mg_articoli ";
										$where =" WHERE id='".$idarticolo."'";
									} else{
										$tabella=" mg_articoli_magazzini ";
										$where 	=" WHERE idarticolo='".$idarticolo."' and idmagazzino='".$idmagazzino_old."' ";
									}
									
									if( $dir == "entrata" ){
										$query = "UPDATE ".$tabella." SET qta= qta +".$old_qta.$where;
									}			
									else{
										$query = "UPDATE ".$tabella." SET qta=qta -".$old_qta.$where;
									}
									$dbo->query( $query );
									// ricalcolo nuova giacenza su mahazzino nupvo
									if( $id_magazzino_e == 0 ) {
										$tabella=" mg_articoli ";
										$where =" WHERE id='".$idarticolo."'";
									} else{
										$tabella=" mg_articoli_magazzini ";
										$where 	=" WHERE idarticolo='".$idarticolo."' and idmagazzino='".$id_magazzino_e."' ";
									}
									
									if( $dir == "entrata" ){
										$query = "UPDATE ".$tabella." SET qta= qta ".$sign.$qta.$where;
									}			
									else{
										$query = "UPDATE ".$tabella." SET qta=qta ".$sign.$qta.$where;
									}
									$dbo->query( $query );
								}	
							}
							// testo se devo fare movimenti su altri magazzini
							if( $id_magazzino_u != 0 ) {					
								( $id_tipo_u == '1' ) ? $sign='+' : $sign='-';
								$tabella=" mg_articoli_magazzini ";
								$where 	=" WHERE idarticolo='".$idarticolo."' and idmagazzino='".$id_magazzino_u."' ";
								if( $id_tipo_u == "1" ){									
									$query = "UPDATE ".$tabella." SET qta= qta -".$old_qta.$sign.$qta.$where;
								}	
								else{
									$query = "UPDATE ".$tabella." SET qta=qta +".$old_qta.$sign.$qta.$where;
								}
								$dbo->query( $query );
							
							}
							
							if( $agg_prezzo_e == 1 ) {		// aggiornaemnto prezzo di aquisto
								$dbo->query( "UPDATE mg_articoli SET prezzo_acquisto=".$importo_manuale." WHERE id='".$idarticolo."'");
							}
							if( $agg_prezzo_u == 1 ) {		// aggiornaemnto prezzo di vendita
								$dbo->query( "UPDATE mg_articoli SET prezzo_vendita=".$importo_manuale." WHERE id='".$idarticolo."'");
							}
							
							
						}

						array_push( $_SESSION['infos'], "Riga modificata!" );

						//Ricalcolo inps, ritenuta e bollo
						if( $dir=='entrata' )
							ricalcola_costiagg_fattura($iddocumento);
						else
							ricalcola_costiagg_fattura($iddocumento);
					}
				}
			}
			break;


		case "editriga_canone":
			$idriga = $html->form('idriga', 'post');		
			$idtiposconto = save( $_POST['idtipoassistenza'] );	
			if ( $idtiposconto =='2' )	{
				$query = "UPDATE co_righe_documenti SET riga_canone='0' WHERE id=\"".$idriga."\"";
				if( $dbo->query($query) ){												
					array_push( $_SESSION['infos'], "Condizione posizione modificata" );
					// log anagrafiche
					add_storico_doc($iddocumento,"Condizione posizione modificata");
				}
			}
			break;

		//Scollegamento articolo da documento
		case "unlink_articolo":
				
		
			if( $modules_info[$module_name]["permessi"] == 'rw' ){
				if( $iddocumento != '' && isset($_POST['idarticolo']) ){													
					$idriga = $html->form( 'idriga', 'post' );
					$idarticolo = $html->form( 'idarticolo', 'post' );										
					rimuovi_articolo_dafattura( $idarticolo, $iddocumento, $idriga );
					// rimuovo eventuali seriali associato
					$dbo->query("update mg_prodotti set id_riga_documento='0' WHERE id_riga_documento='".$idriga."'"); 
					
					if( $dbo->query("DELETE FROM co_righe_documenti WHERE iddocumento='".$iddocumento."' AND id='".$idriga."'") ){
						//Ricalcolo inps, ritenuta e bollo
						if( $dir=='entrata' ){
							ricalcola_costiagg_fattura($iddocumento);
						}

						else{
							ricalcola_costiagg_fattura($iddocumento, 0, 0, 0);
						}

						array_push( $_SESSION['infos'], "Articolo rimosso!" );
					}
				}
			}
			break;


		

		//Scollegamento riga generica da documento
		case "unlink_riga":
			if( $modules_info[$module_name]["permessi"] == 'rw' ){
				if( isset($_POST['idriga']) ){
					$idriga = $html->form('idriga', 'post');


					//Se la riga è stata creata da un ordine, devo riportare la quantità evasa nella tabella degli ordini
					//al valore di prima, riaggiungendo la quantità che sto togliendo
					$rs = $dbo->fetchArray( "SELECT qta, descrizione, idarticolo, idordine, idiva FROM co_righe_documenti WHERE iddocumento=\"".$iddocumento."\" AND id=\"".$idriga."\"" );

					//Rimpiazzo la quantità negli ordini
					$dbo->query( "UPDATE or_righe_ordini SET qta_evasa=qta_evasa-".$rs[0]['qta']." WHERE descrizione=\"".$rs[0]['descrizione']."\" AND idarticolo=\"".$rs[0]['idarticolo']."\" AND idordine=\"".$rs[0]['idordine']."\" AND idiva=\"".$rs[0]['idiva']."\"" );


					//Se la riga è stata creata da un ddt, devo riportare la quantità evasa nella tabella dei ddt
					//al valore di prima, riaggiungendo la quantità che sto togliendo
					$rs = $dbo->fetchArray( "SELECT qta, descrizione, idarticolo, idddt, idiva FROM co_righe_documenti WHERE iddocumento=\"".$iddocumento."\" AND id=\"".$idriga."\"" );

					//Rimpiazzo la quantità nei ddt
					$dbo->query( "UPDATE dt_righe_ddt SET qta_evasa=qta_evasa-".$rs[0]['qta']." WHERE descrizione=\"".$rs[0]['descrizione']."\" AND idarticolo=\"".$rs[0]['idarticolo']."\" AND idddt=\"".$rs[0]['idddt']."\" AND idiva=\"".$rs[0]['idiva']."\"" );

					$query = "DELETE FROM co_righe_documenti WHERE iddocumento=\"$iddocumento\" AND id=\"$idriga\"";

					// log anagrafiche
					add_storico_doc($iddocumento,"Rimozione riga ".$rs[0]['descrizione']);
					
					
					if( $dbo->query($query) ){
						//Ricalcolo inps, ritenuta e bollo
						if( $dir=='entrata' ){
							ricalcola_costiagg_fattura($iddocumento);
						}

						else{
							ricalcola_costiagg_fattura($iddocumento, 0, 0, 0);
						}

						array_push( $_SESSION['infos'], "Riga rimossa!" );
					}
				}
			}
			break;

			//ordino righe in fattura
		case "sortrows":
				$id			= $html->form('id', 'post');
				$iddocumento			= $html->form('iddocumento', 'post');
				$ordine		= $html->form('ordine', 'post');
				$dbo->query("UPDATE co_righe_documenti SET ordine=".$ordine." WHERE id=".$id."");
				array_push( $_SESSION['infos'], "Ordine aggiornato!" );
				exit;
			break;
		
		 case 'add_serial':		
			$idriga = save( $_POST['idriga'] );	
			$idarticolo = save( $_POST['idarticolo'] );							
			// cerco qta riga
			$n_qta=query_secca("","qta","co_righe_documenti","where id ='".$idriga."'");
			// svuoto eventuali associazioni precedenti
			$dbo->query("UPDATE mg_prodotti SET id_riga_documento='0' WHERE idarticolo=".$idarticolo." and id_riga_documento='".$idriga."'");
			// ciclo sui seriali passati			
			for( $i=0; $i<sizeof($_POST['serial']); $i++ ){						
				$serial = save( $_POST['serial'][$i] );
				if ($i < $n_qta )	{
					$dbo->query("UPDATE mg_prodotti SET id_riga_documento=".$idriga." WHERE idarticolo=".$idarticolo." and serial='".$serial."'");
				}
			}
			array_push( $_SESSION['infos'], "Abbinamento seriali terminato!" );
			break;
		
		case "add_transazione":
			$idtipodocumento = save( $_POST['idintervento'] );	
			if ( $idtipodocumento <> '' ) {			
				// cerco impostazioni tipo documento
				$idanagrafica=get_var_tipodoc2($iddocumento ,'idanagrafica');
				$idagente=get_var_tipodoc2($iddocumento ,'idagente');
				$idbanca_vendite=get_var_tipodoc2($iddocumento ,'idbanca_vendite');
				$idsede=get_var_tipodoc2($iddocumento ,'idsede');				
				$numerazione_progressiva=get_var_tipodoc($idtipodocumento,'mod_num');
				$dir=get_var_tipodoc($idtipodocumento,'dir');
				$idconto=get_var_tipodoc($idtipodocumento,'idconto');
				$matricola=get_var_documento($iddocumento ,'matricola');
				$idpagamento_new=get_var_tipodoc($idtipodocumento,'idpagamento');
				$idstato=get_var_tipodoc($idtipodocumento,'sta_apertura');
				$id_gruppodoc=get_var_tipodoc($idtipodocumento,'id_gruppo_tipologia');
				$suffisso=get_var_tipodoc($idtipodocumento,'txt_suffisso');
				$suffisso_anno=get_var_tipodoc($idtipodocumento,'suffisso_anno');	
				$ordine_servizio=get_var_tipodoc($idtipodocumento,'mod_ordineservizio');
				$idmagazzino=get_var_tipodoc($idtipodocumento,'id_magazzino_e');
				
				$data=date("Y-m-d");
				if( $numerazione_progressiva==0) $numero = get_new_numerofattura( $data );	
					if( $numerazione_progressiva==1) $numero=get_new_numerofattura_multi($data,$idtipodocumento);									
					if( $dir=='entrata' ){
						if( $numerazione_progressiva==0) $numero_esterno = get_new_numerosecondariofattura( $data,$idtipodocumento );
						if( $numerazione_progressiva==1) $numero_esterno = get_new_numerosecondariofattura_multi( $data,$idtipodocumento );
						
					}
				else{
					$numero_esterno = '';
					$forza_numerazione=get_var_tipodoc($idtipodocumento,'forza_numerazione');
					if( $forza_numerazione =='1' ){
						// forzatura numero progressivo
						if( $numerazione_progressiva==0) $numero_esterno = get_new_numerosecondariofattura( $data,$idtipodocumento );
						if( $numerazione_progressiva==1) $numero_esterno = get_new_numerosecondariofattura_multi( $data,$idtipodocumento );
					}
				}												
				$numero_documento=$suffisso.$numero_esterno;
				if( $suffisso_anno==1) $numero_documento = $numero_documento."_".date("Y");								
				
				//Creazione nuovo documento
				//Tipo di pagamento predefinito dall'anagrafica
				$query = "SELECT id FROM co_pagamenti WHERE id=(SELECT idpagamento FROM an_anagrafiche WHERE idanagrafica='".$idanagrafica."')";
				$rs = $dbo->fetchArray($query);
				$idpagamento = $rs[0]['id'];

				$tab_testata=" co_documenti ";
				$tab_righe=" co_righe_documenti ";
				$tab_transazione=" co_documenti_transazioni ";
				
				// testo se devo inserire il protocollo
				$nuovo_id_protocollo=0;
				$mod_prodotollo = get_var_tipodoc($idtipodocumento,'mod_prodotollo');
				if( $mod_prodotollo=='1' ){
					$query = "SELECT IFNULL(MAX(id_protocollo),'0') AS max_protocollo FROM co_documenti WHERE DATE_FORMAT( data, '%Y' ) = '".date("Y", strtotime($data))."'  ORDER BY CAST(id_protocollo AS UNSIGNED) DESC LIMIT 0,1";		
					$rs = $dbo->fetchArray($query);
					$nuovo_id_protocollo = $rs[0]['max_protocollo']+1;
					
				}	
				// impostazione data protocollo
				if(  date ('d') <= 15){
						$data_prot = date ('Y/m/15'); 
					}else{ 
						$data_prot = date ('Y/m/t'); 
				}
				
				
				//Se la fattura è di vendita e non è stato associato un pagamento predefinito al cliente leggo il pagamento dalle impostazioni
				if( $dir=='entrata' && $idpagamento=='' ) $idpagamento = $idpagamento_new;
					$query = "INSERT INTO ".$tab_testata." ( id_protocollo,data_prot,idbanca_vendite,idagente , numero, numero_esterno,numero_documento, id_gruppo_tipologia,idanagrafica, idconto, idtipodocumento, idpagamento, data, idstatodocumento, idsede , matricola) VALUES 
					( \"".$nuovo_id_protocollo."\",\"".$data_prot."\",\"".$idbanca_vendite."\",\"".$idagente."\",\"".$numero."\", \"".$numero_esterno."\", \"".$numero_documento."\",\"".$id_gruppodoc."\",\"".$idanagrafica."\", \"".$idconto."\", \"".$idtipodocumento."\", \"".$idpagamento."\", NOW() , 
					\"".$idstato."\",\"".$idsede."\",\"".$matricola."\")";
					$dbo->query($query);
					$iddocumento_new = $dbo->last_inserted_id();					
					
					
				// aggiorno id_doc_padre	
					$query="update ".$tab_testata." set id_doc_padre = '".$id_record."' where id='".$iddocumento_new."'";				
					$dbo->query($query);	
		
				
				
				// genero storico transazione
				$query="Insert into ".$tab_transazione." (idpadre,idfiglio,data_transazione,idutente) values (\"".$iddocumento."\", \"".$iddocumento_new."\",NOW(), '".$_SESSION['idutente']."')";
				$dbo->query($query);
				//Processo solo le righe con qta da evadere maggiore di zero		
				for( $i=0; $i<sizeof($_POST['qta_da_evadere']); $i++ ){
							
					$qta = save( $_POST['qta_da_evadere'][$i] );							
					if( $qta > '0' ){						
						$idrigadocumento = save( $_POST['idrigadocumento'][$i] );
						$idarticolo = save( $_POST['idarticolo'][$i] );
						$descrizione = save( $_POST['descrizione'][$i] );
						
						$qta = save( $_POST['qta_da_evadere'][$i] );
					//	$qta_e = save( $_POST['qta_da_evadere'][$i] );
						$qta = str_replace( ",", ".", $qta );
						$um = save( $_POST['um'][$i] );
					//	$subtot = save( $_POST['subtot'][$i] * $qta );
						$idiva = save( $_POST['idiva'][$i] );
						$iva = save( $_POST['iva'][$i]*$qta );
					
						// cerco dati della riga
						$query = "SELECT * FROM co_righe_documenti WHERE id='".$idrigadocumento."'";						
						$rs_riga = $dbo->fetchArray($query);
							$idiva = $rs_riga[0]['idiva'];
							$desc_iva = $rs_riga[0]['desc_iva'];
							$tipo_sconto=$rs_riga[0]['tipo_sconto'];
							$sconto_primo=$rs_riga[0]['sconto_primo'];
							$sconto_extra=$rs_riga[0]['sconto_extra'];
							$sconto_extra1=$rs_riga[0]['sconto_extra1'];
							$subtot=$rs_riga[0]['subtotale'] / $rs_riga[0]['qta'];
						

						
						//Se sto aggiungendo un articolo uso la funzione per inserirlo e incrementare la giacenza
						if( $idarticolo != '0' ){
							
							// ricalcolo gli sconti in base alla qta evasa
							if($tipo_sconto=='2'){
								$sconto = ($subtot*$sconto_primo)/100;											
							}else{
								$sconto = $sconto_primo;
							}										
							if($tipo_sconto=='2'){								
								$sconto1 = (($subtot -  $sconto) * $sconto_extra)/100;
							}else{
								$sconto1 = $sconto_extra;					
							}
							if($tipo_sconto=='2'){								
								$sconto2 = (($subtot -  $sconto - $sconto1) * $sconto_extra1)/100;
							}else{
								$sconto2 = $sconto_extra1;					
							}
							$sconto = ( $sconto + $sconto1 + $sconto2  ) * $qta  ;
							$subtot=$subtot * $qta;
							
							
							$idriga = add_articolo_infattura( $iddocumento_new, $idarticolo, $descrizione, $idiva, $qta, $subtot, $sconto, '0', '', '', '' ,$rs_riga[0]['idconto'],$tipo_sconto,$sconto_primo,$sconto_extra,$sconto_extra1,$idmagazzino,'','','' );

							//Imposto la provenienza del documento e la qta ottenuta dalla transazione
							$dbo->query( "UPDATE co_righe_documenti SET id_impianto='".$rs_riga[0]['id_impianto']."' ,matricola_impianto='".$rs_riga[0]['matricola_impianto']."' ,id_riferimento='".$idrigadocumento."' , qta_da_transazione='".$qta."' WHERE id=\"".$idriga."\"" );
						}

						//Inserimento riga normale
						else{
							
							// ricalcolo gli sconti in base alla qta evasa
							if($tipo_sconto=='2'){
								$sconto = ($subtot*$sconto_primo)/100;											
							}else{
								$sconto = $sconto_primo;
							}										
							if($tipo_sconto=='2'){								
								$sconto1 = (($subtot -  $sconto) * $sconto_extra)/100;
							}else{
								$sconto1 = $sconto_extra;					
							}
							if($tipo_sconto=='2'){								
								$sconto2 = (($subtot -  $sconto - $sconto1) * $sconto_extra1)/100;
							}else{
								$sconto2 = $sconto_extra1;					
							}
							$sconto = ( $sconto + $sconto1 + $sconto2  ) * $qta  ;
							
					
							// cerco dati agente
							$query = "SELECT idanagrafica FROM co_documenti WHERE id='".$iddocumento."'";
							$rs = $dbo->fetchArray($query);
							$query = "SELECT idagente FROM an_anagrafiche WHERE idanagrafica='".$rs[0]['idanagrafica']."'";
							$rs = $dbo->fetchArray($query);
							$query = "SELECT * FROM an_anagrafiche WHERE idanagrafica='".$rs[0]['idagente']."'";
							$rs_agente = $dbo->fetchArray($query);		
							$perc_agente = $rs_agente[0]['perc_agente'];
							$perc_netto = $rs_agente[0]['perc_netto'];
							$perc_iva = $rs_agente[0]['perc_iva'];
		
							//calcolo percentuali agente				
									if($perc_netto =='1'){
										$val_agente=($subtot * $qta)  - $sconto ;							
										$val_agente = ($val_agente * $perc_agente)/100;
									}else{
										$val_agente = (($subtot *  $qta) * $perc_agente)/100;					
									}
									if( $perc_iva =='1'){
										$rs2 = $dbo->fetchArray("SELECT * FROM co_iva WHERE id='".$idiva."'");
										$agente_iva= ($val_agente/100)*$rs2[0]['percentuale'];
										$val_agente=$val_agente + $agente_iva ;														
									}
					
							$subtot=$subtot * $qta;
					
							$dbo->query( "INSERT INTO co_righe_documenti( id_impianto,matricola_impianto, iddocumento, idarticolo, idordine, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, um, qta,tipo_sconto,sconto_primo,sconto_extra,sconto_extra1 ,importo_agente,importo_iva_agente,perc_agente  ) 
							VALUES(\"".$rs_riga[0]['id_impianto']."\",\"".$rs_riga[0]['matricola_impianto']."\", \"$iddocumento_new\", \"$idarticolo\", \"".$idordine."\", \"".$idiva."\", \"".$desc_iva."\", \"$iva\", \"$iva_indetraibile\", \"".$descrizione."\", \"$subtot\", \"$sconto\", 
							\"$um\", \"$qta\",\"$tipo_sconto\",\"$sconto_primo\",\"$sconto_extra\",\"$sconto_extra1\",\"".$val_agente."\",\"".$agente_iva."\",\"".$perc_agente."\" )" );
							$idriga = $dbo->last_inserted_id();
							$dbo->query( "UPDATE co_righe_documenti SET id_riferimento=\"".$idrigadocumento."\" , qta_da_transazione='".$qta."' WHERE id=\"".$idriga."\"" );
						
						}																		
						//Scalo la quantità dal documento
						$dbo->query("UPDATE co_righe_documenti SET qta_evasa = qta_evasa+".$qta." WHERE id='".$idrigadocumento."'");
					
					}				
				}
		
				// testo se il docuemnto e' stato completamente evaso			
				$rs_test = $dbo->fetchArray("SELECT * FROM co_righe_documenti WHERE qta <> qta_evasa and iddocumento='".$iddocumento."'");	
				if (sizeof($rs_test) > 0) {									
				}
				else {					
					$stato_transazione_concluso = get_var_tipodoc2($iddocumento,'stato_transazione_concluso');
					$stato_attuale				= get_var_documento($iddocumento,'idstatodocumento');
					if (sizeof($stato_transazione_concluso) > 0) {	
						agg_doc_stato($iddocumento,$stato_attuale,$stato_transazione_concluso);
						array_push( $_SESSION['infos'], "Cambio stato documento in automatico secondo le impostazioni immesse!" );
					}
				}						
				array_push( $_SESSION['infos'], "Aggiunto documento numero ".$numero_documento."!" );
				
				add_storico_doc($iddocumento,"Creata transazione successiva");
				add_storico_doc($iddocumento_new,"Creazione documento da transazione");
			}
					
			//array_push( $_SESSION['infos'], $idtipodocumento );
		
			break;
		case "fattpaimport":
			
				$f = pathinfo( $_FILES['filexml']['name'] );
				$filename = $f['filename'];
				$tmp = $_FILES['file_xml']['tmp_name'];
				$upload_dir = $docroot."/files/upload_pa";
				
				array_push( $_SESSION['infos'], $f['filename'] );
		break;
		
		case "delete_xml":
				$nome_file=$records[0]['nome_file_xml'];
				$module_name_path = get_var("Percorso XML");
		
			
				if( @unlink($docroot."/files/".$module_name_path."/".$nome_file)  ){
					$dbo->query("UPDATE co_documenti SET codice_xml='' , nome_file_xml=''  WHERE id=\"".$iddocumento."\"");
					$dbo->query( "delete from  zz_files where nome='".$nome_file."' and filename='".$nome_file."' and  module='".$module_name_path."'");			
					
					add_storico_doc($iddocumento,"Eliminazione file XML fattura elettronica");
				
				}
				
				array_push( $_SESSION['infos'], $nome_file );
			
			
			break;
		
		
		case "fattpa":
			$file=crea_fatturapa($id_record);
				
			$rs = $dbo->fetchArray( "SELECT module_dir,name FROM zz_modules WHERE id=\"".$id_module."\"" );
			$module_dir = $rs[0]['module_dir'];			
		
			$externalid=$iddocumento;
			$module_name_path = get_var("Percorso XML");
			$originale = $nfile = $docroot."/files/pa/".$file;	
			$copia = $nfile = $docroot."/files/".$module_name_path."/".$file;	
			$dst_dir = $nfile = $docroot."/files/".$module_name_path;
			
			if( !is_dir($dst_dir) ){
				if( !mkdir($dst_dir) ){						
				}
			}
			
			//aggiorno in co_documenti			
			$dbo->query( "UPDATE co_documenti SET nome_file_xml='".$file."'  WHERE id=\"".$iddocumento."\"" );		
			
			if  ( copy($originale,$copia) ){
				$dbo->query( "delete from  zz_files where nome='".$file."' and filename='".$file."' and  module='".$module_name_path."'");				
				$rs = $dbo->query("INSERT INTO `zz_files`( nome, data, filename, module, externalid,categoria ) VALUES( \"".$file."\", NOW(), \"".$file."\", \"".$module_name_path."\", \"".$externalid."\",'Fattura elettronica' )");
				array_push( $_SESSION['infos'], "File caricato correttamente!" );
				array_push( $_SESSION['infos'],"Creato documento ".$file);	
				add_storico_doc($iddocumento,"Creazione file XML fattura elettronica");				
			}								
			break;
			
		case "add_newordfornitore":
			$qta_or = save( $_POST['qta_or'] );
			$idriga = save( $_POST['idriga'] );
			$idnewdocumento = save( $_POST['idnewdocumento'] );
			$query = "SELECT * FROM co_righe_documenti WHERE id='".$idriga."'";
			$rs_ord = $dbo->fetchArray($query);		
			$descrizione = $rs_ord[0]['descrizione'];
			$idarticolo = $rs_ord[0]['idarticolo'];
			$idiva = $rs_ord[0]['idiva'];					
			$query = "SELECT prezzo_acquisto , idfornitore FROM mg_articoli WHERE id='".$idarticolo."'";
			$rs_art = $dbo->fetchArray($query);		
			$prezzo_vendita = $rs_art[0]['prezzo_acquisto'];	
			$idanagrafica=$rs_art[0]['idfornitore'];								
				if( $idnewdocumento != ''  ){
					$idrif_ordine=$idnewdocumento ;					
					$lotto = "";
					$serial = "";
					$altro = "";
					$qta = force_decimal( $html->form('qta_or', 'post') );
					$sconto = "";
					$tipo_sconto = "EUR";					
					$sconto_prc = '';
					$sconto = '';
					add_articolo_inordine( $id_record,$idriga,$idnewdocumento, $idarticolo, $descrizione, $idiva, $qta, $prezzo_vendita*$qta, $sconto, $sconto_prc, $tipo_sconto, $lotto, $serial, $altro );
					array_push( $_SESSION['infos'], "Articolo aggiunto ad ordine fornitore!" );
				}else{					
					$dir="uscita";
					$idtipoordine = '1';
				//	$data = date(Now);
					if( $idanagrafica <> ''  ){			
						$numero = get_new_numeroordine( $data );
						$numero_esterno = get_new_numerosecondarioordine( $data );		
						//Tipo di pagamento predefinito dall'anagrafica fornitore
						$query = "SELECT id FROM co_pagamenti WHERE id=(SELECT idpagamento FROM an_anagrafiche WHERE idanagrafica='".$idanagrafica."')";
						$rs = $dbo->fetchArray($query);
						$idpagamento = $rs[0]['id'];
						//Se l'ordine è un ordine cliente e non è stato associato un pagamento predefinito al cliente leggo il pagamento dalle impostazioni
						if( $dir=='entrata' && $idpagamento=='' )
							$idpagamento = get_var("Tipo di pagamento predefinito");
							$query = "INSERT INTO or_ordini( numero, numero_esterno, idanagrafica, idtipoordine, idpagamento, data, idstatoordine ) VALUES ( \"".$numero."\", \"".$numero_esterno."\", '$idanagrafica', '$idtipoordine', '$idpagamento', NOW(), (SELECT `id` FROM `or_statiordine` WHERE `descrizione`='Non evaso') )";
							$id_record_new = $dbo->query($query);
							$idrif_ordine=$id_record_new ;
							//aggiungo articolo
							$lotto = "";
							$serial = "";
							$altro = "";
							$qta = force_decimal( $html->form('qta_or', 'post') );
							$sconto = "";
							$tipo_sconto = "EUR";					
							$sconto_prc = '';
							$sconto = '';
							add_articolo_inordine($id_record,$idriga,$id_record_new, $idarticolo, $descrizione, $idiva, $qta, $prezzo_vendita*$qta, $sconto, $sconto_prc, $tipo_sconto, $lotto, $serial, $altro );							
						array_push( $_SESSION['infos'], "Aggiunto ordine numero ".$numero."!" );
					}else{
						array_push( $_SESSION['infos'], "Non e' presente il fornitore in anagrafica articolo: Ordine non creato" );
					}
				
				}
			// aggiorno riferimento idordine della riga documento
			$dbo->query( "UPDATE co_righe_documenti SET idordine='".$idrif_ordine."'  WHERE id=\"".$idriga."\"" );			
			break;
		
		//Creazione documento da ordine
		case "documento_da_ordine":
			
			$totale_fattura = 0.00;
			$data = saveDate( $_POST['data'] );
			$idanagrafica = intval( $_POST['idanagrafica'] );
			$idarticolo = intval( $_POST['idarticolo'] );
			$idpagamento = intval( $_POST['idpagamento'] );
			$idconto = intval( $_POST['idconto'] );
			$idordine = intval( $_POST['idordine'] );			
			$idtipodocumento = save( $_POST['idnewdocumento'] );
			$n_doc_sec = save( $_POST['n_doc_sec'] );

			// ricerca se la numerazione e' progressiva o propria
			$query = "SELECT mod_num , dir , idconto , idpagamento , sta_apertura ,descrizione , id_gruppo_tipologia  FROM co_tipidocumento  WHERE id='".$idtipodocumento."'";
			$rs_parametri = $dbo->fetchArray($query);
			$numerazione_progressiva = $rs_parametri[0]['mod_num'];
			$dir = $rs_parametri[0]['dir'];
		//	$idconto = $rs_parametri[0]['idconto'];
			$idpagamento_new = $rs_parametri[0]['idpagamento'];
			$idstato = $rs_parametri[0]['sta_apertura'];
			$id_gruppodoc=$rs_parametri[0]['id_gruppo_tipologia'];
			$tipo_documento=$rs_parametri[0]['descrizione'];
			
			if( $numerazione_progressiva==0) $numero = get_new_numerofattura( $data );	
			if( $numerazione_progressiva==1) $numero=get_new_numerofattura_multi($data,$idtipodocumento);									
			if( $dir=='entrata' ){
				if( $numerazione_progressiva==0) $numero_esterno = get_new_numerosecondariofattura( $data,$idtipodocumento );
				if( $numerazione_progressiva==1) $numero_esterno = get_new_numerosecondariofattura_multi( $data,$idtipodocumento );
		
			}
			else{
				$numero_esterno = $n_doc_sec;
				$forza_numerazione=get_var_tipodoc($idtipodocumento,'forza_numerazione');
				if( $forza_numerazione =='1' ){
					// forzatura numero progressivo
					if( $numerazione_progressiva==0) $numero_esterno = get_new_numerosecondariofattura( $data,$idtipodocumento );
					if( $numerazione_progressiva==1) $numero_esterno = get_new_numerosecondariofattura_multi( $data,$idtipodocumento );
				}	
			}															
			//Creazione nuovo documento		
			$dbo->query( "INSERT INTO co_documenti( numero, numero_documento,numero_esterno, data, idanagrafica, idtipodocumento, idstatodocumento, idpagamento, idconto , id_gruppo_tipologia , id_ordine_padre ) VALUES( \"".$numero."\", \"".$n_doc_sec."\", \"".$numero."\", \"".$data."\", \"".$idanagrafica."\", (SELECT id FROM co_tipidocumento WHERE descrizione='".$tipo_documento."'), (SELECT id FROM co_statidocumento WHERE descrizione='Bozza'), \"".$idpagamento."\", \"".$idconto."\" ,\"".$id_gruppodoc."\",\"".$idordine."\" )" );		
			$iddocumento = $dbo->last_inserted_id();
			$id_record = $iddocumento;

			add_storico_doc($iddocumento,"Creazione documento da Ordine");					
			
			//Lettura di tutte le righe della tabella in arrivo
			for( $i=0; $i<sizeof($_POST['qta_da_evadere']); $i++ ){
				//Processo solo le righe da evadere
				if( $_POST['evadere'][$i]=='on' ){
					$idrigaordine = save( $_POST['idrigaordine'][$i] );
					$idarticolo = save( $_POST['idarticolo'][$i] );
					$descrizione = save( $_POST['descrizione'][$i] );
					$qta = save( $_POST['qta_da_evadere'][$i] );
					$qta = str_replace( ",", ".", $qta );
					$um = save( $_POST['um'][$i] );
					$subtot = save( $_POST['subtot'][$i]*$qta );
					$idiva = save( $_POST['idiva'][$i] );
					$iva = save( $_POST['iva'][$i]*$qta );
					$sconto = save( $_POST['sconto'][$i] );
					$sconto = str_replace( ",", ".", $sconto );
					$sconto = $sconto*$qta;

					$qprc = "SELECT tipo_sconto, sconto_primo,sconto_extra,sconto_extra1 ,serial FROM or_righe_ordini WHERE id=".$idrigaordine;
					$rsprc = $dbo->fetchArray($qprc);

					$sconto_primo = $rsprc[0]['sconto_primo'];
					$tipo_sconto = $rsprc[0]['tipo_sconto'];
					$sconto_extra = $rsprc[0]['sconto_extra'];
					$sconto_extra1 = $rsprc[0]['sconto_extra1'];
					$serial = $rsprc[0]['serial'];

					//Calcolo l'iva indetraibile
					$q = "SELECT indetraibile FROM co_iva WHERE id='".$idiva."'";
					$rs = $dbo->fetchArray($q);
					$iva_indetraibile = $iva/100*$rs[0]['indetraibile'];


					//Leggo la descrizione iva
					$query = "SELECT * FROM co_iva WHERE id='".$idiva."'";
					$rs = $dbo->fetchArray($query);
					$desc_iva = $rs[0]['descrizione'];


					//Lettura lotto, serial, altro dalla riga dell'ordine
				//	$q = "SELECT lotto, serial, altro, descrizione FROM or_righe_ordini WHERE id='".$idrigaordine."'";
				//	$rs = $dbo->fetchArray($q);

					$idconto=0;
					//Se sto aggiungendo un articolo uso la funzione per inserirlo e incrementare la giacenza
					if( $idarticolo != '0' ){
						$idiva_acquisto = $idiva;
						$prezzo_acquisto = $subtot;
						$idriga = add_articolo_infattura( $iddocumento, $idarticolo, $descrizione, $idiva, $qta, $prezzo_acquisto, $sconto, '0' ,'', $serial, '' , $idconto,$tipo_sconto,$sconto_primo,$sconto_extra,$sconto_extra1,'','','','' );
					
//						$idriga=add_articolo_infattura( $iddocumento, $idarticolo, $descrizione, $idiva, $qta, $prezzo*$qta, $sconto, '0', $lotto, $serial, $altro , $idconto,$idtiposconto,$sconto_prc,$sconto_extra,$sconto_extra1  );


					//Imposto la provenienza dell'ordine
						$dbo->query( "UPDATE co_righe_documenti SET idordine=\"".$idordine."\" , id_riferimento_riga_ordine=\"".$idrigaordine."\" WHERE id=\"".$idriga."\"" );
					}

					//Inserimento riga normale
					else{
						$dbo->query( "INSERT INTO co_righe_documenti( id_riferimento_riga_ordine,iddocumento, idarticolo, idordine, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto,  tipo_sconto, um, qta ,  sconto_primo,sconto_extra,sconto_extra1) 
						VALUES( \"$idrigaordine\",\"$iddocumento\", \"$idarticolo\", \"".$idordine."\", \"".$idiva."\", \"".$desc_iva."\", \"$iva\", \"$iva_indetraibile\", \"".$descrizione."\", \"$subtot\", \"$sconto\", \"$tipo_sconto\", \"$um\", \"$qta\" 
						,\"$sconto_primo\" ,\"$sconto_extra\" ,\"$sconto_extra1\" )" );
						$idriga = $dbo->last_inserted_id();
						add_storico_doc($iddocumento,"Inserimento riga generica da Ordine");		
						
					}

					//Scalo la quantità dall'ordine
					$dbo->query("UPDATE or_righe_ordini SET qta_evasa = qta_evasa+".$qta." , id_documento_figlio = ".$iddocumento."  WHERE id='".$idrigaordine."'");
				}
			}
			
			// genero storico transazione
				$query="Insert into or_ordini_transazioni (idpadre,idfiglio,data_transazione,idutente) values (\"".$idordine."\", \"".$iddocumento."\",NOW(), '".$_SESSION['idutente']."')";
				$dbo->query($query);
			
			
			// testo righe evasione dell'ordine
			$rs_testostato = $dbo->fetchArray("SELECT *  FROM or_righe_ordini WHERE qta <> qta_evasa and idordine='".$idordine."'");
			if( sizeof($rs_testostato) > 0 ){
				$dbo->query( "UPDATE or_ordini SET idstatoordine = 3 where id='".$idordine."'");				
			}
			else{
				$dbo->query( "UPDATE or_ordini SET idstatoordine = 2 where id='".$idordine."'");
			}
			
			
			
			ricalcola_costiagg_fattura($iddocumento);
			array_push( $_SESSION['infos'], "Creato nuovo documento da ordine fornitore!" );
			break;
		
		case "sendemail_rapportino":
				$from_address = str_replace( ",", ".", get_var("Indirizzo per le email in uscita") );								
				$oggetto = html_entity_decode($_POST['oggetto']);	
				$allegato = $_POST['allegato'];	
				
							
				$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);	
				$mail_cc=str_replace( ",", ".", get_var("Destinatario fisso in copia (campo CC)"));				
				if ($mail_cc != ""){
					$messaggio->AddCC($mail_cc);
				}				
				$messaggio->Subject=($oggetto);	
						
				$testo_email=str_replace("<p>","",$testo_email);
				$testo_email=str_replace("</p>","",$testo_email);
				$messaggio->CharSet = "UTF-8";			
						
				$messaggio->Body=strip_tags($testo_email);
				$messaggio->AddAttachment( $allegato  ); 
			
				if(!$messaggio->Send()){ 
					array_push( $_SESSION['infos'], $messaggio->ErrorInfo );
				
				}else{ 
					array_push( $_SESSION['infos'], "Email inviata correttamente" );
					add_storico_doc($id_record,"Documento inviato a mezzo mail a:".$destinatario);		
				}
			break;
		case "sendemail":		
	
				$from_address = str_replace( ",", ".", get_var("Indirizzo per le email in uscita") );								
				$oggetto = html_entity_decode($_POST['oggetto']);	
				$allegato = $_POST['allegato'];	
				$allegato_xml = $_POST['allegato_xml'];					
							
				$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);	
				$mail_cc=str_replace( ",", ".", get_var("Destinatario fisso in copia (campo CC)"));				
				if ($mail_cc != ""){
					$messaggio->AddCC($mail_cc);
				}				
				$messaggio->Subject=($oggetto);	
						
				$testo_email=str_replace("<p>","",$testo_email);
				$testo_email=str_replace("</p>","",$testo_email);
				$messaggio->CharSet = "UTF-8";			
						
				$messaggio->Body=strip_tags($testo_email);
				$messaggio->AddAttachment( $allegato  ); 
				if (file_exists($allegato_xml)) {					
					$messaggio->AddAttachment( $allegato_xml ); 
				}
				if(!$messaggio->Send()){ 
					array_push( $_SESSION['infos'], $messaggio->ErrorInfo );
				
				}else{ 
					array_push( $_SESSION['infos'], "Email inviata correttamente" );
					add_storico_doc($id_record,"Documento inviato a mezzo mail a:".$destinatario);		
				}
			break;
	
	
			case"edit_pianifica":
				// lettura documento attuale
				$query = "SELECT * FROM co_documenti WHERE id='".$iddocumento."'";
				$rs_doc= $dbo->fetchArray($query);						
				$idtecnico = intval( $_POST['idanagrafica'] );
				$idstatointervento = save( $_POST['idstatointervento'] );
				$idtipointervento = save( $_POST['idtipointervento'] );		
				$descrizione = save( $_POST['descrizione'] );
				$id_matricola = save( $_POST['id_matricola'] );
				$idriga = save( $_POST['idriga'] );
				$periodo = saveDate( $_POST['data'] );
				$periodo_f = saveDate( $_POST['data_f'] );
				$orario = savetime( $_POST['orario'] );	
				$orario_fine = savetime( $_POST['orario_fine'] );					
				$or=date("H:i", strtotime($orario));	
				$or_f=date("H:i", strtotime($orario_fine));	
				
				$qta = save( $_POST['qta'] );	
				$qta_min = save( $_POST['qta_min'] );
				$qta_min_calcolo = save( $_POST['qta_min'] );
				$idsede=$rs_doc[0]['idsede'];
				$richiesta=$rs_doc[0]['note'];
				$query = "SELECT * FROM in_interventi WHERE idintervento='".$iddocumento."'";
				$rs_int= $dbo->fetchArray($query);
				
				$test_da=date("Y-m-d", strtotime($periodo))." ".$or.":00";
				$test_a=date("Y-m-d", strtotime($periodo_f))." ".$or_f.":00";
				
				$qana = "SELECT * FROM my_impianti WHERE nome='".$id_matricola."'";
				$rs_matricola = $dbo->fetchArray($qana);
			

				
			
				$inserisci="1";
				$query_s = "SELECT *  FROM in_interventi_tecnici WHERE idintervento='".$rs_doc[0]['id']."' and idtecnico='".$idtecnico."'";
				$rs_test= $dbo->fetchArray($query_s);
				
				for( $i=0; $i<sizeof($rs_test); $i++ ){			
					$or_in=$rs_test[$i]['orario_inizio'];
					$or_fi=$rs_test[$i]['orario_fine'];
					

					if (( $test_da > $or_in ) && ( $test_da < $or_fi )) {
						$inserisci="0";
					}
				
					if (( $test_a > $or_in ) && ( $test_a < $or_fi )) {
						$inserisci="0";
					}
				
				
					if( $inserisci == '1' ){					

						if (( $test_da < $or_in ) || ( $test_da < $or_fi )) {																					
							$inserisci="0";
							if ( $test_a < $or_fi ) {																					
								$inserisci="1";									
							}
						}	
					}				
				}	

				
				if( $inserisci == '0' ){					
					array_push( $_SESSION['errors'], "Pianificazione gia presente per questo tecnico e periodo" );
					
				}
				else{
					
					

					
					if( sizeof($rs_int) > 0 ){						
					
					}
					else{
						$dbo->query("INSERT INTO in_interventi( idintervento, idanagrafica,  idtipointervento, idstatointervento, idsede, data_richiesta  ) VALUES 
						(\"".$rs_doc[0]['id']."\", \"".$rs_doc[0]['idanagrafica']."\", \"".$idtipointervento."\", \"".$idstatointervento."\", \"".$idsede."\", \"".$periodo."\" )" );				
					}				
					$dbo->query("INSERT INTO in_interventi_tecnici( id_riga_riferimento_documento,id_impianto,matricola_impianto,descrizione_att ,idintervento, idtecnico, idtipointervento, idstatointervento,km, orario_inizio, orario_fine    ) 
					VALUES( \"".$idriga."\",\"".$rs_matricola[0]['id']."\",\"".$rs_matricola[0]['matricola']."\",\"".$descrizione."\",\"".$rs_doc[0]['id']."\", \"".$idtecnico."\", \"".$idtipointervento."\", \"".$idstatointervento."\", \"".$km."\", \"".( date("Y-m-d", strtotime($periodo)) )." ".$or."\", \"".( date("Y-m-d", strtotime($periodo_f)) )." ".$or_f."\")" );
					array_push( $_SESSION['infos'], "Pianificazione inserita" );
					add_storico_doc($id_record,"Eseguita pianificazione attivita");		
				
				}
			
			
				break;
			case "modifica_pianifica":
				// lettura documento attuale
				$query = "SELECT id FROM co_documenti WHERE id='".$iddocumento."'";
				$rs_doc= $dbo->fetchArray($query);						
				$idtecnico = intval( $_POST['idanagrafica'] );
				$idstatointervento = save( $_POST['idstatointervento'] );
				$idtipointervento = save( $_POST['idtipointervento'] );
				$descrizione = save( $_POST['descrizione1'] );
				$idriga = save( $_POST['idriga'] );
				$id_matricola = save( $_POST['id_matricola'] );
				$periodo = saveDate( $_POST['data'] );
				$periodo_f = saveDate( $_POST['data_f'] );
				
				$orario = savetime( $_POST['orario'] );	
				$orario_fine = savetime( $_POST['orario_fine'] );					
				$or=date("H:i", strtotime($orario));	
				$or_f=date("H:i", strtotime($orario_fine));
				
				$test_da=date("Y-m-d", strtotime($periodo))." ".$or.":00";
				$test_a=date("Y-m-d", strtotime($periodo_f))." ".$or_f.":00";
				
				$inserisci="1";
				$query_s = "SELECT *  FROM in_interventi_tecnici WHERE idintervento='".$rs_doc[0]['id']."' and idtecnico='".$idtecnico."'";
				$rs_test= $dbo->fetchArray($query_s);
				
				// Info matricola
				$qana = "SELECT *  FROM my_impianti WHERE matricola='".$id_matricola."'";
				$rs_matricola = $dbo->fetchArray($qana);
			
				
				
				for( $i=0; $i<sizeof($rs_test); $i++ ){			
					$or_in=$rs_test[$i]['orario_inizio'];
					$or_fi=$rs_test[$i]['orario_fine'];
					$id_r=$rs_test[$i]['id'];
					

					if (( $test_da > $or_in ) && ( $test_da < $or_fi ) ) {
						if ( $idriga != $id_r )  $inserisci="0";
					}
				
					if (( $test_a > $or_in ) && ( $test_a < $or_fi )  ) {
						if ( $idriga != $id_r ) $inserisci="0";
					}
				
				
					if( $inserisci == '1' ){					

						if (( $test_da < $or_in ) || ( $test_da < $or_fi ) ) {																					
							if ( $idriga != $id_r ) $inserisci="0";
							if ( $test_a < $or_fi ) {																					
								$inserisci="1";									
							}
						}	
					}				
				}	

				
				if( $inserisci == '0' ){					
					array_push( $_SESSION['errors'], "Pianificazione gia presente per questo tecnico e periodo" );					
				}
				else{	
					// prelevo eventuale firMa e poi elimino old record
					$query = "SELECT id , id_riga_riferimento_documento, firma_file , firma_data FROM in_interventi_tecnici WHERE id='".$idriga."'";
					$rs_firma= $dbo->fetchArray($query);	
					$firma_file=$rs_firma[0]['firma_file'];
					$firma_data=$rs_firma[0]['firma_data'];
					$id_old=$rs_firma[0]['id'];
					$id_riga_riferimento_documento=$rs_firma[0]['id_riga_riferimento_documento'];
					$dbo->query( "DELETE FROM in_interventi_tecnici WHERE id='$idriga'" );
					$qta = save( $_POST['qta'] );	
					$qta_min = save( $_POST['qta_min'] );
					$qta_min_calcolo = save( $_POST['qta_min'] );
					$idsede="0";	


					
						$dbo->query("INSERT INTO in_interventi_tecnici( id,id_riga_riferimento_documento, id_impianto,matricola_impianto,firma_file,firma_data,descrizione_att,idintervento, idtecnico, idtipointervento, idstatointervento,km, orario_inizio, orario_fine   ) 
						VALUES(   \"".$id_old."\" , \"".$id_riga_riferimento_documento."\" , \"".$rs_matricola[0]['id']."\",\"".$rs_matricola[0]['matricola']."\" , \"".$firma_file."\",\"".$firma_data."\",\"".$descrizione."\",\"".$rs_doc[0]['id']."\", \"".$idtecnico."\", \"".$idtipointervento."\", \"".$idstatointervento."\", \"".$km."\", \"".( date("Y-m-d", strtotime($periodo)) )." ".$or."\", \"".( date("Y-m-d", strtotime($periodo_f)) )." ".$or_f."\")" );
						array_push( $_SESSION['infos'], "Pianificazione modificata" );	
						add_storico_doc($id_record,"Eseguita modifica pianificazione attivita");								
				}
				break;
			case "unlink_pianifica":													
				$idriga = $_SESSION['idriga_pianificazione'] ;
				if( sizeof($idriga) > 0 ){		
					$dbo->query( "DELETE FROM in_interventi_tecnici WHERE id='$idriga'" );
					array_push( $_SESSION['infos'], "Pianificazione eliminata" );
					add_storico_doc($id_record,"Rimossa pianificazione attivita");		
					$_SESSION['idriga_pianificazione'] ="";
				}
				break;
			
			case "documento_differito";			
				$iddocumento_padre = save( $_POST['id_documentopadre'] );						
				
				doc_differito_crea($id_record,$iddocumento_padre,'0' );			
				array_push( $_SESSION['infos'], "Creato nuovo documento!" );
				add_storico_doc($id_record,"Creazione documento differito");		
				break;
			
			case "firma":				
				if( $modules_info[$module_name]["permessi"] == 'rw' ){
					$query = "SELECT id , idintervento  FROM in_interventi_tecnici WHERE id='".$id_record."'";
					$rs_doc= $dbo->fetchArray($query);		
					$id_record=$rs_doc[0]['idintervento'];
					$id_riga=$rs_doc[0]['id'];
					
					$directory_exists = false;

					if( !file_exists($docroot."/files/interventi") ){
						if( @mkdir($docroot."/files/interventi") ){
							$directory_exists = true;
						}
					}

					else{
						$directory_exists = true;
					}
					if( $directory_exists ){
						if( $html->form('firma_base64', 'post') != '' ){
							//Salvataggio firma
							$firma_file = "firma_".time().".png";

							$firma_nome = $_POST['firma_nome'];

							$ifp = @fopen( $docroot."/files/interventi/".$firma_file, "wb" );
							$data = explode(',', $html->form('firma_base64', 'post') );
							@fwrite( $ifp, base64_decode($data[1]) );
							@fclose( $ifp );

							if( $dbo->query("UPDATE in_interventi_tecnici SET firma_file=\"".$firma_file."\", firma_data=NOW(), firma_nome = \"".$firma_nome."\"  WHERE id=\"".$id_riga."\"") ){
								array_push( $_SESSION['infos'], "Firma salvata correttamente!" );
								add_storico_doc($id_record,"Eseguita firma attivita");		
							}

							else{
								array_push( $_SESSION['errors'], "Errore durante il salvataggio della firma nel database!" );
							}
						}

						else{
							array_push( $_SESSION['errors'], "Errore durante il salvataggio della firma! La firma risulta vuota..." );
						}
					}

					else{
						array_push( $_SESSION['errors'], "Non è stato possibile creare la cartella <b>/files/interventi</b> per salvare l'immagine della firma!" );
					}
				}
			break;
			case "addriga_spese_pianifica":
				$idintervento	= $html->form('idintervento', 'post');
				$idriga	= $html->form('idriga', 'post');
				$data_mov = saveDate( $_POST['data_mov'] );
				$descrizione	= $html->form('descrizione', 'post');
				$qta			= force_decimal( $html->form('qta', 'post') );
				$um				= "";
				$prezzo_vendita	= force_decimal( $html->form('prezzo_vendita', 'post') );
				$prezzo_acquisto= "0";
				$sconto_prc		= "0";
				$sconto			= "0";			
				$dbo->query("INSERT INTO in_righe_interventi( data_movimento ,idriga_pianifica,descrizione, qta, um, prezzo_vendita, prezzo_acquisto, sconto, sconto_prc, idintervento ) VALUES
				( \"".$data_mov."\",\"".$idriga."\",\"".$descrizione."\", \"".$qta."\", \"".$um."\", \"".$prezzo_vendita."\", \"".$prezzo_acquisto."\", \"".$sconto."\", \"".$sconto_prc."\",\"".$idintervento."\" )");
			
			break;
			
			case "delriga":
				$idriga = $html->form('idriga', 'post');
				$dbo->query("DELETE FROM in_righe_interventi WHERE id='".$idriga."'");
			break;
			
			case "delrigaart":
				$idriga = $html->form('idriga', 'post');
				$dbo->query("DELETE FROM mg_articoli_interventi WHERE id='".$idriga."'");
			
			break;
			
			case "inserisco_riga_come_posizione":
				$query = "SELECT * FROM in_righe_interventi WHERE idintervento='".$iddocumento."'";						
				$rs_riga = $dbo->fetchArray($query);
				//Processo solo le righe con qta da evadere maggiore di zero		
				for( $i=0; $i<sizeof($rs_riga); $i++ ){
					$idarticolo=$rs_riga[$i]['idarticolo'];
					$idconto=query_secca("","id_conto","mg_articoli","where id='".$idarticolo."'");
					$qta = $rs_riga[$i]['qta'];
					$prezzo = $rs_riga[$i]['prezzo_vendita'];
					$ins_doppia=0;
					//Calcolo iva
					$idiva = get_var("Iva predefinita");
					$query = "SELECT * FROM co_iva WHERE id='".$idiva."'";
					$rs = $dbo->fetchArray($query);
					$iva = ($prezzo-$sconto)/100*$rs[0]['percentuale'];
					$iva_indetraibile = $iva/100*$rs[0]['indetraibile'];
					$desc_iva = $rs[0]['descrizione'];
					$idconto=get_var_documento($iddocumento,'idconto');			
					//Aggiunta riga generica sul documento
					$query = "INSERT INTO co_righe_documenti(  iddocumento, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, um, qta, idrivalsainps, 
					rivalsainps, idritenutaacconto, ritenutaacconto,idconto)  
					VALUES( \"$iddocumento\", \"".$idiva."\", \"$desc_iva\", \"$iva\", \"$iva_indetraibile\", '".$rs_riga[$i]['descrizione']."', \"$prezzo\", \"$sconto\", \"$um\", \"$qta\", '', 
					'', '', '' , \"".$idconto."\" )";
					$dbo->query($query);
				}
				 array_push( $_SESSION['infos'], "Inserito righe come posizioni" );
			break;
			
			case "inserisco_art_come_posizione":
				$query = "SELECT * FROM mg_articoli_interventi WHERE idintervento='".$iddocumento."'";						
				$rs_riga = $dbo->fetchArray($query);
				//Processo solo le righe con qta da evadere maggiore di zero		
				$id_magazzino_e = get_var_tipodoc2($iddocumento,"id_magazzino_e");
				for( $i=0; $i<sizeof($rs_riga); $i++ ){				
					$idarticolo=$rs_riga[$i]['idarticolo'];
					$idconto=query_secca("","id_conto","mg_articoli","where id='".$idarticolo."'");
					$qta = $rs_riga[$i]['qta'];
					$prezzo = $rs_riga[$i]['prezzo_vendita'];
					$ins_doppia=0;
					$riga_canone=0;
					$riga_canone1=0;
					// cerco evantuali posizioni di contratto fisse se presente un contratto associato 
					if( $records[0]['id_contratto'] != "0" && $records[0]['id_contratto'] != "" ){
						$qta_consumata=cerca_canone_qta($records[0]['id_contratto'],$idarticolo);
						$qta_scalare=cerca_canone_qta_scalare($records[0]['id_contratto'],$idarticolo);
						$prezzo_imposto=cerca_canone_prezzo($records[0]['id_contratto'],$idarticolo);
						$qta_disp=$qta_scalare - $qta_consumata;
						if( $qta_scalare != '' ){
							$riga_canone=1;
							if( $qta_disp >= $qta ){
								$prezzo="0";								
							}else{								
								$qta_new=$qta - $qta_disp;;
								$prezzo_new	=$prezzo;
								$qta=$qta_disp;		
								$prezzo="0";	
								$ins_doppia=1;
								$riga_canone1=2;								
								$prezzo_tmp = cerca_canone_prezzo($records[0]['id_contratto'],$idarticolo);							
								if( $prezzo_tmp != '' ) $prezzo_new=$prezzo_tmp;
							}
						}else{
							// la qta disponibile non presente , cerco eventuale prezzo imposto
							$riga_canone1=2;
							$riga_canone=2;
							$prezzo_new = cerca_canone_prezzo($records[0]['id_contratto'],$idarticolo);							
							if( $prezzo_new != '' ) $prezzo=$prezzo_new;
							if( $prezzo_new == '' ) $riga_canone=0;
							
						}
						
						$forza_zero=cerca_contratti_a_zero($records[0]['id_contratto']);
						if( $forza_zero == '1' ){
							$prezzo_new=0;
							$prezzo=0;
							$riga_canone=2;
							$riga_canone1=2;
						}		
							
					}
				
					
					
					
					$idriga = add_articolo_infattura( $iddocumento, $idarticolo, $rs_riga[$i]['descrizione'], $rs_riga[$i]['idiva_vendita'], $qta, $prezzo, 0, '0', '', '', '' ,$idconto,'',0,0,0,$idmagazzino,$riga_canone);

				//Imposto la provenienza del documento e la qta ottenuta dalla transazione
					$qana = "SELECT matricola FROM my_impianti WHERE id='".$records[0]['id_impianto']."'";
					$rs_matricola = $dbo->fetchArray($qana);
					$matricola=$rs_matricola[0]['matricola'];
					$dbo->query( "UPDATE co_righe_documenti SET inserito_posizione_idriga ='".$rs_riga[$i]['idarticolo']."', id_impianto='".$records[0]['id_impianto']."' ,matricola_impianto='".$matricola."'  WHERE id=\"".$idriga."\"" );
					
					if($ins_doppia=='1'){
						$idriga = add_articolo_infattura2( $iddocumento, $idarticolo, $rs_riga[$i]['descrizione'], $idiva, $qta_new, $prezzo_new*$qta_new, $sconto_new, '0', '', '', '' , $idconto,'','','','' ,$idmagazzino , $riga_canone1  );					
						$dbo->query( "UPDATE co_righe_documenti SET inserito_posizione_idriga ='".$rs_riga[$i]['idarticolo']."', id_impianto='".$records[0]['id_impianto']."' ,matricola_impianto='".$matricola."'  WHERE id=\"".$idriga."\"" );
					}	




				}
				array_push( $_SESSION['infos'], "Inserito articoli come posizioni" );
			break;
			
			case "addarticolo_p":
				$idarticolo		= $html->form('idarticolo', 'post');
				$idriga	= $html->form('idriga', 'post');
				$data_mov = saveDate( $_POST['data_mov'] );
				
				$idintervento	= $html->form('idintervento', 'post');
				$descrizione	= $html->form('descrizione', 'post');
				$idimpianto		= $html->form('idimpianto', 'post');
				$lotto			= $html->form('lotto', 'post');
				$serial			= $html->form('serial', 'post');
				$altro			= $html->form('altro', 'post');
				$qta			= $html->form('qta', 'post', true, 'decimal');
				$um				= query_secca("","idum","mg_articoli","where id ='".$idarticolo."'");
				$um				= query_secca("","valore","mg_unitamisura","where id ='".$um."'");
				$prezzo_acquisto= "0";
				$prezzo_vendita	= $html->form('prezzo_vendita', 'post', true, 'decimal');
				$sconto_unitario= "0";
				$sconto_prc		= "0";

				//Aggiunto il collegamento fra l'articolo e l'intervento
				$dbo->query("INSERT INTO mg_articoli_interventi( data_movimento ,idriga_pianifica,idarticolo, idintervento, idimpianto, idautomezzo, descrizione, lotto, serial, altro, prezzo_vendita, prezzo_acquisto, sconto, sconto_prc, idiva_vendita, qta, um ) VALUES 
				( \"".$data_mov."\",\"".$idriga."\",'".$idarticolo."', '".$idintervento."', '".$idimpianto."', '".$idautomezzo."', \"".$descrizione."\", \"".$lotto."\", \"".$serial."\", \"".$altro."\", \"".$prezzo_vendita."\", \"".$prezzo_acquisto."\", \"".$sconto_unitario."\", \"".$sconto_prc."\", (SELECT idiva_vendita FROM mg_articoli WHERE id=\"".$idarticolo."\"), \"".$qta."\", \"".$um."\" )");
			break;
			
			case "editnumero":
				$new_numero	= $html->form('new_numero', 'post');
				$tipo_documento=get_var_tipodoc2($iddocumento,'idtipodocumento');			
				$query = "SELECT numero_esterno  FROM co_documenti WHERE numero_esterno='".$new_numero."' and idtipodocumento='".$tipo_documento."'";
				$rs = $dbo->fetchArray($query);
				if (sizeof($rs) > 0) {													
					array_push( $_SESSION['errors'], "Il  numero documento ".$new_numero." gia presente in archivio" );
								
				}
				else{
					$suffisso=get_var_tipodoc2($iddocumento,'txt_suffisso');
					$suffisso_anno=get_var_tipodoc2($iddocumento,'suffisso_anno');
					$numero_documento=$suffisso.$new_numero;
					if( $suffisso_anno==1) $numero_documento = $numero_documento."_".date("Y");
					$dbo->query( "UPDATE co_documenti SET numero_esterno = '".$new_numero."' , numero_documento = '".$numero_documento."'  WHERE id='".$iddocumento."'" );	
					array_push( $_SESSION['infos'], "Modifica numero documento salvata" );
					add_storico_doc($iddocumento,"Modificato numero documento");			
				}
				
				
				
			
			break;
			
			case "editnumero_protocollo":
				$new_numero	= $html->form('new_numero', 'post');
				$query = "SELECT numero_esterno  FROM co_documenti WHERE id_protocollo='".$new_numero."'";
				$rs = $dbo->fetchArray($query);
				if (sizeof($rs) > 0) {													
					array_push( $_SESSION['errors'], "Il  numero protoccolo ".$new_numero." gia presente in archivio" );
										
				}
				else{
					$dbo->query( "UPDATE co_documenti SET id_protocollo = '".$new_numero."' WHERE id='".$iddocumento."'" );	
					array_push( $_SESSION['infos'], "Modifica numero portocollo salvata" );
					add_storico_doc($iddocumento,"Modificato numero protocollo");
				}
			break;
			
			case "editanagrafica":
				$new_anagrafica	= $html->form('idanagrafica_new', 'post');
				$idagente=query_secca("","idagente","an_anagrafiche","where idanagrafica ='".$new_anagrafica."'");
				$idbanca_vendite=query_secca("","idagente","an_anagrafiche","where idanagrafica ='".$new_anagrafica."'");				
				$dbo->query( "UPDATE co_documenti SET idanagrafica = '".$new_anagrafica."' , idbanca_vendite='".$idbanca_vendite."' , idagente='".$idagente."' , idsede='0' , matricola=''  WHERE id='".$iddocumento."'" );	
				array_push( $_SESSION['infos'], "Modifica anagrafica documento salvata" );
				add_storico_doc($iddocumento,"Modificato anagrafica documento");

			break;
	
	
			case "add_duplica":
				$idtipodocumento = save( $_POST['idintervento'] );	
				$idanagrafica = save( $_POST['idanagrafica'] );	
				if ( $idtipodocumento <> '' ) {			
					// cerco impostazioni tipo documento
					$idagente=query_secca("","idagente","an_anagrafiche","where idanagrafica ='".$idanagrafica."'");
					$idbanca_vendite=query_secca("","idagente","an_anagrafiche","where idanagrafica ='".$new_anagrafica."'");		
					$idsede=get_var_tipodoc2($iddocumento ,'idsede');				
					$numerazione_progressiva=get_var_tipodoc($idtipodocumento,'mod_num');
					$dir=get_var_tipodoc($idtipodocumento,'dir');
					$idconto=get_var_tipodoc($idtipodocumento,'idconto');
					$matricola=get_var_documento($iddocumento ,'matricola');
					$idpagamento_new=get_var_tipodoc($idtipodocumento,'idpagamento');
					$idstato=get_var_tipodoc($idtipodocumento,'sta_apertura');
					$id_gruppodoc=get_var_tipodoc($idtipodocumento,'id_gruppo_tipologia');
					$suffisso=get_var_tipodoc($idtipodocumento,'txt_suffisso');
					$suffisso_anno=get_var_tipodoc($idtipodocumento,'suffisso_anno');	
					$ordine_servizio=get_var_tipodoc($idtipodocumento,'mod_ordineservizio');
					$idmagazzino=get_var_tipodoc($idtipodocumento,'id_magazzino_e');
					
					$data=date("Y-m-d");
					if( $numerazione_progressiva==0) $numero = get_new_numerofattura( $data );	
						if( $numerazione_progressiva==1) $numero=get_new_numerofattura_multi($data,$idtipodocumento);									
						if( $dir=='entrata' ){
							if( $numerazione_progressiva==0) $numero_esterno = get_new_numerosecondariofattura( $data,$idtipodocumento );
							if( $numerazione_progressiva==1) $numero_esterno = get_new_numerosecondariofattura_multi( $data,$idtipodocumento );
							
						}
					else{
						$numero_esterno = '';
						$forza_numerazione=get_var_tipodoc($idtipodocumento,'forza_numerazione');
						if( $forza_numerazione =='1' ){
							// forzatura numero progressivo
							if( $numerazione_progressiva==0) $numero_esterno = get_new_numerosecondariofattura( $data,$idtipodocumento );
							if( $numerazione_progressiva==1) $numero_esterno = get_new_numerosecondariofattura_multi( $data,$idtipodocumento );
						}	
					}												
					$numero_documento=$suffisso.$numero_esterno;
					if( $suffisso_anno==1) $numero_documento = $numero_documento."_".date("Y");								
					
					//Creazione nuovo documento
					//Tipo di pagamento predefinito dall'anagrafica
					$query = "SELECT id FROM co_pagamenti WHERE id=(SELECT idpagamento FROM an_anagrafiche WHERE idanagrafica='".$idanagrafica."')";
					$rs = $dbo->fetchArray($query);
					$idpagamento = $rs[0]['id'];

					$tab_testata=" co_documenti ";
					$tab_righe=" co_righe_documenti ";
					$tab_transazione=" co_documenti_transazioni ";
					
					// testo se devo inserire il protocollo
					$nuovo_id_protocollo=0;
					$mod_prodotollo = get_var_tipodoc($idtipodocumento,'mod_prodotollo');
					if( $mod_prodotollo=='1' ){
						$query = "SELECT IFNULL(MAX(id_protocollo),'0') AS max_protocollo FROM co_documenti WHERE DATE_FORMAT( data, '%Y' ) = '".date("Y", strtotime($data))."'  ORDER BY CAST(id_protocollo AS UNSIGNED) DESC LIMIT 0,1";		
						$rs = $dbo->fetchArray($query);
						$nuovo_id_protocollo = $rs[0]['max_protocollo']+1;
						
					}	
					// impostazione data protocollo
					if(  date ('d') <= 15){
							$data_prot = date ('Y/m/15'); 
						}else{ 
							$data_prot = date ('Y/m/t'); 
					}
					
					
					//Se la fattura è di vendita e non è stato associato un pagamento predefinito al cliente leggo il pagamento dalle impostazioni
					if( $dir=='entrata' && $idpagamento=='' ) $idpagamento = $idpagamento_new;
						$query = "INSERT INTO ".$tab_testata." ( id_protocollo,data_prot,idbanca_vendite,idagente , numero, numero_esterno,numero_documento, id_gruppo_tipologia,idanagrafica, idconto, idtipodocumento, idpagamento, data, idstatodocumento, idsede , matricola) VALUES 
						( \"".$nuovo_id_protocollo."\",\"".$data_prot."\",\"".$idbanca_vendite."\",\"".$idagente."\",\"".$numero."\", \"".$numero_esterno."\", \"".$numero_documento."\",\"".$id_gruppodoc."\",\"".$idanagrafica."\", \"".$idconto."\", \"".$idtipodocumento."\", \"".$idpagamento."\", NOW() , 
						\"".$idstato."\",\"".$idsede."\",\"".$matricola."\")";
						$dbo->query($query);
						$iddocumento_new = $dbo->last_inserted_id();					
					
					$query = "SELECT * FROM co_righe_documenti WHERE iddocumento='".$iddocumento."' order by id";						
					$rs_riga = $dbo->fetchArray($query);
				
					for( $ri=0; $ri<sizeof($rs_riga); $ri++ ){
						if( $rs_riga[$ri]['riga_varia'] == '1' ){
							$query = "INSERT INTO co_righe_documenti(   iddocumento,  descrizione , riga_varia)  VALUES( '".$iddocumento_new."','".$rs_riga[$ri]['descrizione']."', '1' )";
							$dbo->fetchArray($query);
						}else{ 
								
							if( $rs_riga[$ri]['idarticolo'] == '0' ){
																
								$query = "INSERT INTO co_righe_documenti(   iddocumento, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, um, qta, idrivalsainps, rivalsainps, 
								idritenutaacconto, ritenutaacconto,idconto,tipo_sconto,sconto_primo,sconto_extra ,sconto_extra1,importo_agente,importo_iva_agente,perc_agente)  
								VALUES( \"$iddocumento_new\", '".$rs_riga[$ri]['idiva']."','".$rs_riga[$ri]['desc_iva']."','".$rs_riga[$ri]['iva']."','".$rs_riga[$ri]['iva_indetraibile']."','".$rs_riga[$ri]['descrizione']."','
								".$rs_riga[$ri]['subtotale']."','".$rs_riga[$ri]['sconto']."','".$rs_riga[$ri]['um']."','".$rs_riga[$ri]['qta']."','".$rs_riga[$ri]['idrivalsainps']."',' 
								".$rs_riga[$ri]['rivalsainps']."','".$rs_riga[$ri]['idritenutaacconto']."','".$rs_riga[$ri]['ritenutaacconto']."','".$rs_riga[$ri]['idconto']."','".$rs_riga[$ri]['tipo_sconto']."',
								'".$rs_riga[$ri]['sconto_primo']."','".$rs_riga[$ri]['sconto_extra']."','".$rs_riga[$ri]['sconto_extra1']."','".$rs_riga[$ri]['importo_agente']."','".$rs_riga[$ri]['importo_iva_agente']."','".$rs_riga[$ri]['perc_agente']."')";

								$dbo->fetchArray($query);
							
							
							}else{ 																
								$idriga = add_articolo_infattura( $iddocumento_new, $rs_riga[$ri]['idarticolo'], $rs_riga[$ri]['descrizione'], $rs_riga[$ri]['idiva'], $rs_riga[$ri]['qta'], $rs_riga[$ri]['subtotale'],$rs_riga[$ri]['sconto'], '0', '', '', '' ,
								$rs_riga[$ri]['idconto'],$rs_riga[$ri]['tipo_sconto'],$rs_riga[$ri]['sconto_primo'],$rs_riga[$ri]['sconto_extra'],$rs_riga[$ri]['sconto_extra1'],$rs_riga[$ri]['id_magazzino'],'','','' );
							}
						}
					}
								
					array_push( $_SESSION['infos'], "Aggiunto documento numero ".$numero_documento."!" );
					add_storico_doc($iddocumento,"Generato nuovo documento con la funzione duplica");
					add_storico_doc($iddocumento_new,"Documento generato da Duplica");
				}
				
			break;
	
		case "edit_stato_invio_xml":
			$id_progressivo = save( $_POST['id_progressivo'] );
			$id_stato_invio = save( $_POST['idintervento'] );
			$data_invio_xml = saveDate( $_POST['data_invio_xml'] );
			$orario = savetime( $_POST['orario'] );			
			$or=date("H:i", strtotime($orario));	
			$data_invio_xml=date("Y-m-d", strtotime($data_invio_xml))." ".$or.":00";

			if ( $id_progressivo <> '' ) {			
				$dbo->query( "UPDATE co_documenti_progressivo SET inviato = '".$id_stato_invio."' , data_invio='".$data_invio_xml."'   WHERE id='".$id_progressivo."'" );	
				array_push( $_SESSION['infos'], "Stato invio modificato" );
			}
			
		break;
		
		case "edit_esito_invio_xml":
			$id_progressivo = save( $_POST['id_progressivo'] );
			$id_stato_invio = save( $_POST['idintervento'] );
			$data_invio_xml = saveDate( $_POST['data_invio_xml'] );
			$orario = savetime( $_POST['orario'] );			
			$or=date("H:i", strtotime($orario));	
			$data_invio_xml=date("Y-m-d", strtotime($data_invio_xml))." ".$or.":00";

			if ( $id_progressivo <> '' ) {			
				$dbo->query( "UPDATE co_documenti_progressivo SET esito = '".$id_stato_invio."' , data_esito='".$data_invio_xml."'   WHERE id='".$id_progressivo."'" );	
				array_push( $_SESSION['infos'], "Stato invio modificato" );
			}
			
		break;
		
		
		case "edit_link_xml":
			$id_link = save( $_POST['id_link'] );
			$iddocumento = save( $_POST['iddocumento'] );
			$query="Insert into co_documenti_transazioni (idpadre,idfiglio,data_transazione,idutente) values (\"".$id_link."\", \"".$iddocumento."\",NOW(), '".$_SESSION['idutente']."')";
			$dbo->query($query);
		
		
		break;
		
		case "add_qta":									
			$idriga = save( $_POST['idriga'] );
			mod_riga($idriga,"A")	;	
		break;

		case "del_qta":
			$idriga = save( $_POST['idriga'] );
			mod_riga($idriga,"S")	;	
		break;	
	
		case "firma_totale":	
				if( $modules_info[$module_name]["permessi"] == 'rw' ){
					$directory_exists = false;

					if( !file_exists($docroot."/files/interventi_complessivo") ){
						if( @mkdir($docroot."/files/interventi_complessivo") ){
							$directory_exists = true;
						}
					}

					else{
						$directory_exists = true;
					}
					if( $directory_exists ){
						if( $html->form('firma_base64', 'post') != '' ){
							//Salvataggio firma
							$firma_file = "firma_".time().".png";

							$firma_nome = $_POST['firma_nome'];

							$ifp = @fopen( $docroot."/files/interventi_complessivo/".$firma_file, "wb" );
							$data = explode(',', $html->form('firma_base64', 'post') );
							@fwrite( $ifp, base64_decode($data[1]) );
							@fclose( $ifp );

						
							if( $dbo->query("UPDATE in_interventi SET firma_file=\"".$firma_file."\", firma_data=NOW(), firma_nome = \"".$firma_nome."\"  WHERE idintervento=\"".$id_record."\"") ){
								$dbo->query("UPDATE co_documenti SET firma_file=\"".$firma_file."\", firma_data=NOW(),  firma_nome = \"".$firma_nome."\"  WHERE id=\"".$id_record."\"");
								array_push( $_SESSION['infos'], "Firma salvata correttamente!" );
								
							}

							else{
								array_push( $_SESSION['errors'], "Errore durante il salvataggio della firma nel database!" );
							}
						}

						else{
							array_push( $_SESSION['errors'], "Errore durante il salvataggio della firma! La firma risulta vuota..." );
						}
					}

					else{
						array_push( $_SESSION['errors'], "Non è stato possibile creare la cartella <b>/files/interventi</b> per salvare l'immagine della firma!" );
					}
				}
			break;
		
		
		
		
	}
	
	
?>

	