<?php
	include_once(__DIR__."/../../core.php");
	include($docroot."/modules/articoli/modutil.php");
	
	$rs = $dbo->fetchArray("SELECT id,name FROM zz_modules WHERE id=\"".$id_module."\"");
	$name = $rs[0]['name'];
	
	
	$dir = "uscita";
	
	
	$idordine = $id_record;
	
	
	switch( $html->form('op', 'post') ){
		case "add":
			$idanagrafica = $html->form( 'idanagrafica', 'post' );
			
			if( $modules_info[$module_name]["permessi"] == 'rw' ){
				
				
				
				$data = saveDate( $_POST['data'] );
						

				if( isset($_POST['idanagrafica']) ) {
					$numero = get_new_numeroordine( $data );					
					$numero_esterno = get_new_numerosecondarioordine( $data );					
					//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 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', '1', '$idpagamento', '$data', (SELECT `id` FROM `or_statiordine` WHERE `descrizione`='Non evaso') )";
					$id_record = $dbo->query($query);

					array_push( $_SESSION['infos'], "Aggiunto ordine numero ".$numero."!" );
				}
			}
			break;

		case "update":
			if( $modules_info[$module_name]["permessi"] == 'rw' ){
				if( $idordine != '' ){
				
					
					$numero_esterno = save( $_POST['numero_esterno'] );
					$numero = save( $_POST['numero'] );
					$data = saveDate( $_POST['data'] );
					$note = save( $_POST['note'] );
					$idstatoordine = save($_POST['idstatoordine']);
					$idpagamento = save($_POST['idpagamento']);
					$idsede = save($_POST['idsede']);
					$idconto = save($_POST['idconto']);
					$idagente = save($_POST['idagente']);
					$totale_imponibile = get_imponibile_ordine($idordine);
					$totale_ordine = get_totale_ordine($idordine);
					$data_prevista_consegna = saveDate( $_POST['data_prevista_consegna'] );

					if( $dir=='uscita' ){
						$idrivalsainps = save($_POST['idrivalsainps']);
						$idritenutaacconto = save($_POST['idritenutaacconto']);
						$bollo = save($_POST['bollo']);
					}
					else{
						$idrivalsainps = 0;
						$idritenutaacconto = 0;
						$bollo = 0;
					}

					//Leggo la descrizione del pagamento
					$query = "SELECT descrizione FROM co_pagamenti WHERE id='".$idpagamento."'";
					$rs = $dbo->fetchArray($query);
					$pagamento = $rs[0]['descrizione'];
				
					//Query di aggiornamento
					$query = "UPDATE or_ordini SET  numero=\"".$numero."\", data=\"".$data."\", data_prevista_consegna=\"".$data_prevista_consegna."\", idagente='".$idagente."', idstatoordine='$idstatoordine', idpagamento=\"".$idpagamento."\", idsede=\"".$idsede."\", numero_esterno=\"$numero_esterno\", note=\"$note\", idconto=\"$idconto\", idrivalsainps=\"$idrivalsainps\", idritenutaacconto=\"$idritenutaacconto\", bollo=0, rivalsainps=0, ritenutaacconto=0 WHERE id=\"$idordine\"";


					if( $dbo->query($query) ){
						$query = "SELECT descrizione FROM or_statiordine WHERE id='$idstatoordine'";
						$rs = $dbo->fetchArray($query);

						//Ricalcolo inps, ritenuta e bollo (se l'ordine non è stato evaso)
						if( $dir=='entrata' ){
							if( $rs[0]['descrizione']!='Pagato' ){
								ricalcola_costiagg_ordine($idordine);
							}
						}
						
						else{
							if( $rs[0]['descrizione']!='Pagato' ){
								ricalcola_costiagg_ordine($idordine, $idrivalsainps, $idritenutaacconto, $bollo);
							}
						}
						
						array_push( $_SESSION['infos'], "Ordine modificato correttamente!" );
					}
				}
			}
			break;

		
		case "addarticolo":
			if( $modules_info[$module_name]["permessi"] == 'rw' ){
				if( $idordine != '' && isset($_POST['idarticolo']) ){
					$idarticolo = save( $_POST['idarticolo'] );
				//	$idiva = save( $_POST['idiva'] );
					$descrizione = save( $_POST['descrizione'] );
					$lotto = save( $_POST['lotto'] );
					$serial = save( $_POST['serial'] );
					$altro = save( $_POST['altro'] );
					$qta = force_decimal( $html->form('qta', 'post') );
					$prezzo_vendita = force_decimal( $html->form('prezzo', 'post') );
				//	$sconto = force_decimal( $html->form('sconto', 'post') );
				//	$sconto = $sconto*$qta;
					
					$idtiposconto = save( $_POST['idtiposconto'] );
					$sconto = force_decimal($_POST['sconto']);
					$sconto_extra = force_decimal($_POST['sconto_extra']);
					$sconto_extra1 = force_decimal($_POST['sconto_extra1']);
				
					$query = "SELECT idiva_vendita FROM mg_articoli WHERE  id='".$idarticolo."'";
					$rs = $dbo->fetchArray( $query );
					$idiva = $rs[0]['idiva_vendita'];
					
					if($idtiposconto=='2'){
						$sconto_prc = $sconto;
						$sconto = ($prezzo_vendita * $sconto_prc)/100;											
					}else{
						$sconto_prc = $sconto;
					}										
					if($idtiposconto=='2'){
						$sconto_extra = $sconto_extra;
						$sconto1 = (($prezzo_vendita -  $sconto) * $sconto_extra)/100;
					}else{
						$sconto1 = $sconto_extra;					
					}
					if($idtiposconto=='2'){
						$sconto_extra1 = $sconto_extra1;
						$sconto2 = (($prezzo_vendita -  $sconto - $sconto1 ) * $sconto_extra1)/100;
					}else{
						$sconto2 = $sconto_extra1;					
					}
					$sconto = ( $sconto + $sconto1 + $sconto2  ) *$qta;
					
					
					
					add_articolo_inordine( $idordine, $idarticolo, $descrizione, $idiva, $qta, $prezzo_vendita*$qta, $sconto, $lotto, $serial, $altro ,$idtiposconto , $sconto_prc ,$sconto_extra ,$sconto_extra1);

					array_push( $_SESSION['infos'], "1Articolo aggiunto!" );
				}
				ricalcola_costiagg_ordine($idordine);
			}
			break;
		
		
		case "addriga":
			if( $modules_info[$module_name]["permessi"] == 'rw' ){
				if( $idordine != '' ){
					//Selezione costi da intervento
					$descrizione = save( $_POST['descrizione'] );
					$importo_manuale = force_decimal( $html->form('subtot', 'post') );
					$qta = force_decimal( $html->form('qta', 'post') );
					$idiva = save($_POST['idiva']);
					$um = save($_POST['um']);
					$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']);
				
					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;


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

					$query = "INSERT INTO or_righe_ordini( idordine, idiva, iva, iva_indetraibile, descrizione, subtotale, sconto, um, qta  , tipo_sconto , sconto_primo,sconto_extra,sconto_extra1) VALUES
					( \"$idordine\", \"$idiva\", \"$iva\", \"$iva_indetraibile\", \"$descrizione\", \"$subtot\", \"$sconto\", \"$um\", \"$qta\"	, \"$idtiposconto\", \"$sconto_prc\", \"$sconto_extra\", \"$sconto_extra1\"	)";
					
					if( $dbo->query($query) ){
						array_push( $_SESSION['infos'], "Riga aggiunta!" );

						//Ricalcolo inps, ritenuta e bollo
						if( $dir=='entrata' ){
							ricalcola_costiagg_ordine($idordine);
						}
						
						else{
							ricalcola_costiagg_ordine($idordine);
						}
					}
				}
			}
			break;

		
		
		//Scollegamento articolo da ordine
		case "unlink_articolo":
			if( $modules_info[$module_name]["permessi"] == 'rw' ){
				$idarticolo	= $html->form( 'idarticolo', 'post' );
				$idriga		= $html->form( 'idriga', 'post' );
				
				if( $idordine != '' && $idarticolo != '' ){
					rimuovi_articolo_daordine( $idarticolo, $idordine, $idriga );

					//if( $dbo->query($query) ){
						//Ricalcolo inps, ritenuta e bollo
					if( $dir == 'entrata' ){
						ricalcola_costiagg_ordine($idordine);
					}
					
					else{
						ricalcola_costiagg_ordine($idordine, 0, 0, 0);
					}

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

		
		//Scollegamento riga generica da ordine
		case "unlink_riga":
			if( $modules_info[$module_name]["permessi"] == 'rw' ){
				$idriga = $html->form( 'idriga', 'post' );
				
				if( $idordine != '' && $idriga != '' ){
					$query = "DELETE FROM or_righe_ordini WHERE idordine=\"$idordine\" AND id=\"$idriga\"";

					$dbo->query($query);

					//Ricalcolo inps, ritenuta e bollo
					if( $dir=='entrata' ){
						ricalcola_costiagg_ordine($idordine);
					}
					
					else{
						ricalcola_costiagg_ordine($idordine, 0, 0, 0);
					}

					array_push( $_SESSION['infos'], "Riga rimossa!" );
				}
			}
			break;
		
		
		//Modifica riga
		case "editriga":
			if( $modules_info[$module_name]["permessi"] == 'rw' ){
				if( isset($_POST['idriga']) ){
					$idriga = $html->form('idriga', 'post');
					$descrizione = save( $_POST['descrizione'] );
					$importo_manuale = save( $_POST['subtot'] );
					$importo_manuale = str_replace( ",", ".", $importo_manuale );
					$qta = save($_POST['qta']);
					$qta = str_replace( ",", ".", $qta );
					$idiva = save($_POST['idiva']);
					$um = save($_POST['um']);
					$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']);

					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;
					
					
					//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'];

					
					//Modifica riga generica sul documento
					$query = "UPDATE or_righe_ordini SET idiva=\"".$idiva."\", iva=\"".$iva."\", iva_indetraibile=\"".$iva_indetraibile."\", descrizione=\"".$descrizione."\", subtotale=\"".$subtot."\", sconto=\"".$sconto."\", 
					um=\"".$um."\", qta=\"".$qta."\" , tipo_sconto=\"".$idtiposconto."\" , sconto_primo=\"".$sconto_prc."\" , sconto_extra=\"".$sconto_extra."\" , sconto_extra1=\"".$sconto_extra1."\" WHERE id=\"".$idriga."\"";
					if( $dbo->query($query) ){
						array_push( $_SESSION['infos'], "Riga modificata!" );
				
						//Ricalcolo inps, ritenuta e bollo
						if( $dir=='entrata' )
							ricalcola_costiagg_ordine($idordine);
						else
							ricalcola_costiagg_ordine($idordine);
					}
				}
			}
			break;
		

		//eliminazione ordine
		case "delete":
			if( $modules_info[$module_name]["permessi"] == 'rw' ){
				if( isset( $_GET['id_record'] ) ){
					// scollego eventuali articoli in ordine associati ad un documento
					$dbo->query("UPDATE co_righe_documenti SET idordine='0' WHERE idordine='".$idordine."'");													
					$dbo->query( "DELETE FROM or_ordini WHERE id='$idordine'" );
					// svuoto eventuali seriali arrivati
					$q = "SELECT idarticolo, id FROM or_righe_ordini WHERE idordine='".$idordine."'";
					$rsr = $dbo->fetchArray($q);
					for( $i=0; $i < sizeof($rsr); $i++ ){
						// svuoto seriali precedeneti
						$dbo->query( "DELETE FROM mg_prodotti WHERE idarticolo='".$rsr[$i]['idarticolo']."' and id_riga_ordine='".$rsr[$i]['id']."'");					
					}
					$dbo->query( "DELETE FROM or_righe_ordini WHERE idordine='$idordine'" );
					array_push( $_SESSION['infos'], "Ordine eliminato!" );
				}
			}
			
			break;
		case "add_seriale":
			$idriga = $html->form('idriga', 'post');

			$q = "SELECT * FROM or_righe_ordini WHERE idordine='".$idordine."' AND id='".$idriga."'";
			$rsr = $dbo->fetchArray($q);
			$idarticolo=$rsr[0]['idarticolo'];

			// svuoto seriali precedeneti
			$dbo->query( "DELETE FROM mg_prodotti WHERE idarticolo='".$idarticolo."' and id_riga_ordine='".$idriga."'");
			
			//Lettura di tutte le righe della tabella in arrivo
			for( $i=0; $i<$rsr[0]['qta']; $i++ ){
				//Processo solo le righe da evadere
				$seriale=$_POST['ser_'][$i];
				if ($seriale != '') {
					//Creo la query per le combinazioni prodotto con ogni combinazione
					$query = "INSERT INTO mg_prodotti( idarticolo, serial , data , id_riga_ordine , dir ) VALUES ('".$idarticolo."' , '".$seriale."', NOW(),'".$idriga."','uscita')";
					if( $dbo->query($query) ){
						array_push( $_SESSION['infos'], "Inserito seriale : ".$seriale);
					}
				
				}
			
			}	
		
			break;
			
		case "sendemail":										
				$from_address = str_replace( ",", ".", get_var("Indirizzo per le email in uscita") );								
				$oggetto = html_entity_decode($_POST['oggetto']);	
				$allegato = $_POST['allegato'];				
				$testo_email = $_POST['body'];
				$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->AddAddress($destinatario);	
				$mail_cc=str_replace( ",", ".", get_var("Destinatario fisso in copia (campo CC)"));				
				if ($mail_cc =""){
					$messaggio->AddCC($mail_cc);
				}				
				$messaggio->Subject=($oggetto);			
				$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" );
				}
				break;
	}
?>