<?php


	



	function addrigafatturapa($iddocumento, $descrizione, $importo_manuale, $qta, $aliva, $um, $ritenuta, $rivalsainps, $rivalsainps_iva, $rivalsainps_ritenuta ,$idcodart,$tipo_sconto,$valore_sconto,$sconto,$sconto_extra,$sconto_extra1){
		global $dbo;
	
		
		if( $iddocumento != '' ){

			// leggo impostazioni documento
			$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");
		
			//Selezione costi da intervento
			$descrizione=save($descrizione);
			$importo_manuale = $importo_manuale;
			if($qta==''){
				$qta=1;
			}
			$qta = force_decimal($qta);
			
			if($um==''){
				$um="pz";
			}

			$aliva=force_decimal($aliva);

			$query="select id from co_iva where percentuale='$aliva' and xml=1";
			$rs = $dbo->fetchArray($query);
			$idiva=$rs[0]['id'];

			
			$subtot = $importo_manuale*$qta;
			$sconto = $sconto*$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'];

			
			if($rivalsainps!=''){
				$query="select id from co_rivalsainps where percentuale='$rivalsainps' and id=(select valore from zz_impostazioni where nome='Percentuale rivalsa INPS')";
				$rs = $dbo->fetchArray($query);
				$idrivalsainps=$rs[0]['id'];
			}else{
				$idrivalsainps=0;
			}

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

			if($ritenuta!=''){
				$query="select id from co_ritenutaacconto where percentuale='$ritenuta' and id=(select valore from zz_impostazioni where nome='Percentuale ritenuta d\'acconto')";
				$rs = $dbo->fetchArray($query);
				$idritenutaacconto=$rs[0]['id'];
			}else{
				$idritenutaacconto=0;
			}
			

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


			//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 , idarticolo , tipo_sconto,sconto_primo,sconto_extra ,sconto_extra1 ) 
			VALUES( '$iddocumento', '$idiva', '$desc_iva', '$iva', '$iva_indetraibile', '$descrizione', '$subtot', '$sconto', '$um', '$qta', '$idrivalsainps', '$rivalsainps', '$idritenutaacconto', '$ritenutaacconto','$idcodart','$tipo_sconto','$valore_sconto','$sconto_extra','$sconto_extra1' )";

			if( $dbo->query($query) ){
			
			
			
				if( $esegue_giacenza== 1 ) {
					if( $id_magazzino_e == 0 ) {
						$tabella=" mg_articoli ";
						$where =" WHERE id='".$idcodart."'";
					} else{
						$tabella=" mg_articoli_magazzini ";
						$where 	=" WHERE idarticolo='".$idcodart."' and idmagazzino='".$id_magazzino_e."' ";
					}
					$dbo->query( "UPDATE ".$tabella." SET qta=qta+".$qta.$where );
				}
				// 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='".$idcodart."' and idmagazzino='".$id_magazzino_u."' ";
						
						$rs_test = $dbo->fetchArray("SELECT id FROM mg_articoli_magazzini WHERE idarticolo='".$idcodart."' AND idmagazzino='".$id_magazzino_u."'");
						if( sizeof($rs_test) > 0  ){					
							$dbo->query( "UPDATE ".$tabella." SET qta=qta-".$old_qta.$sign.$qta.$where );
						} else {
							$dbo->query("INSERT INTO mg_articoli_magazzini( idarticolo, idmagazzino, qta ) VALUES ( '".$idcodart."', '".$id_magazzino_u."', '".$qta."' )");
						}
				}
			
			
			
				if( $esegue_movimento== 1 ) add_movimento_magazzino( $idcodart, $qta, '', '0', '0', $iddocumento, '0' );		
			
				//Ricalcolo inps, ritenuta e bollo
				if( $dir=='entrata' ){
					ricalcola_costiagg_fattura($iddocumento, $idrivalsainps, $idritenutaacconto );
				}else{
					ricalcola_costiagg_fattura($iddocumento, $idrivalsainps, $idritenutaacconto);
				}
			}
			

	}
	
	}
	
	function nuova_anagrafica($codice_ufficio,$denominazione_trasmittente,$denominazione_regime_fiscale,$denominazione_indirizzo,$denominazione_cap,$denominazione_comune,$denominazione_provincia,$cod_fiscale,$piva){
		global $dbo;
		$idtipoanagrafica = "4";								
		$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 = "1INSERT INTO an_anagrafiche( cod_sogei, ragione_sociale, codice, idagente,citta ,indirizzo,cap,provincia,codice_fiscale,piva) VALUES 
	//		( \"".$codice_ufficio."\",\"".$denominazione_trasmittente."\", \"".$codice."\", \"".$idagente."\", \"".$denominazione_comune."\",\"".$denominazione_indirizzo."\",\"".$denominazione_cap."\",\"".$denominazione_provincia."\",\"".$cod_fiscale."\",\"".$piva."\" )";
		
		$query = "INSERT INTO an_anagrafiche( ragione_sociale, codice, idagente,citta ,indirizzo,cap,provincia,codice_fiscale,piva) VALUES 
			( \"".$denominazione_trasmittente."\", \"".$codice."\", \"".$idagente."\", \"".$denominazione_comune."\",\"".$denominazione_indirizzo."\",\"".$denominazione_cap."\",\"".$denominazione_provincia."\",\"".$cod_fiscale."\",\"".$piva."\" )";
		
		
		$dbo->query($query);
		$id_ananew = $dbo->last_inserted_id();
				

		$query = "INSERT INTO an_tipianagrafiche_anagrafiche(idanagrafica, idtipoanagrafica) VALUES (\"".$id_ananew."\", '4')";
		$dbo->query($query);
					
	
		//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=\"".$id_ananew."\"");

		return $id_ananew;
	}
	
?>
