<?php
include_once(__DIR__."/../../core.php");
 
?><form action="editor.php?id_module=$id_module$" method="post">
	<input type="hidden" name="op" value="add">
	<input type="hidden" name="backto" value="record-edit">
	<input type="hidden" name="iddocumento" value="<?php echo $html->form('iddocumento') ?>">
	
	<?php
	$idconto = $html->form('idconto');
	$iddocumento = $html->form('iddocumento');
	$dir = $html->form('dir');
	
	if( $iddocumento!='' ){
	
		//Lettura numero e tipo di documento
		$query = "SELECT dir, numero, numero_esterno, data, co_tipidocumento.descrizione AS tdescrizione, idanagrafica AS parent_idanagrafica, (SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=parent_idanagrafica AND deleted=0) AS ragione_sociale FROM co_documenti LEFT OUTER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE co_documenti.id='".$iddocumento."'";
		$rs = $dbo->fetchArray($query);
		$dir = $rs[0]['dir'];
		( $rs[0]['numero_esterno']!='' ) ? $numero_doc=$rs[0]['numero_esterno'] : $numero_doc=$rs[0]['numero'];
		$tipo_doc = $rs[0]['tdescrizione'];
		$descrizione = "$tipo_doc numero $numero_doc del ".date("d/m/Y", strtotime($rs[0]['data']))." (".$rs[0]['ragione_sociale'].")";
		
		
		/*
			Predisposizione prima riga
		*/
		//Lettura conto cassa di default
		$idconto_aziendale = get_var('Conto aziendale predefinito');
		
		//Generazione causale (incasso fattura)
		$descrizione_conto_aziendale = $descrizione;
		
		
		/*
			Calcolo totale per chiudere la fattura
		*/
		//Lettura importo da scadenzario (seleziono l'importo di questo mese)
		$query = "SELECT *, scadenza, ABS(da_pagare-pagato) AS rata FROM co_scadenziario WHERE iddocumento='$iddocumento' AND ABS(da_pagare) > ABS(pagato) ORDER BY DATE_FORMAT(scadenza,'%m/%Y') ASC";
		$rs = $dbo->fetchArray($query);
		$importo_conto_aziendale = $rs[0]['rata'];
		
		if( $dir == 'entrata' ){
			$totale_dare = abs($importo_conto_aziendale);
		}
		
		else{
			$totale_dare = abs($importo_conto_aziendale);
		}
		
		//Può essere che voglia inserire un movimento in un mese diverso da quello previsto per l'incasso, perciò devo
		//leggere solo il totale rimanente della fattura rispetto a quello pagato invece di leggere quello da pagare
		//per il mese corrente (viene calcolato sopra)
		if( $totale_dare == 0 ){
			//Lettura totale finora pagato
			$query = "SELECT SUM(pagato) AS tot_pagato, SUM(da_pagare) AS tot_da_pagare FROM co_scadenziario GROUP BY iddocumento HAVING iddocumento='$iddocumento'";
			$rs = $dbo->fetchArray($query);
			
			$importo_conto_aziendale = abs($rs[0]['tot_da_pagare'])-abs($rs[0]['tot_pagato']);
			$totale_dare = $importo_conto_aziendale;
		}
		
		/*
			Predisposizione seconda riga
		*/
		//conto crediti clienti
		if( $dir == 'entrata' ){
			//Se è la prima nota di una fattura leggo il conto del cliente
			if( $iddocumento != '' ){
				$query = "SELECT idconto_cliente FROM an_anagrafiche INNER JOIN co_documenti ON an_anagrafiche.idanagrafica=co_documenti.idanagrafica WHERE co_documenti.id='".$iddocumento."'";
				$rs = $dbo->fetchArray($query);
				$idconto_controparte = $rs[0]['idconto_cliente'];
			}
			
			else{
				$query = "SELECT id FROM co_pianodeiconti3 WHERE descrizione='Riepilogativo clienti'";
				$rs = $dbo->fetchArray($query);
				$idconto_controparte = $rs[0]['id'];
			}
		}
		
		//conto debiti fornitori
		else{
			//Se è la prima nota di una fattura leggo il conto del fornitore
			if( $iddocumento != '' ){
				$query = "SELECT idconto_fornitore FROM an_anagrafiche INNER JOIN co_documenti ON an_anagrafiche.idanagrafica=co_documenti.idanagrafica WHERE co_documenti.id='".$iddocumento."'";
				$rs = $dbo->fetchArray($query);
				$idconto_controparte = $rs[0]['idconto_fornitore'];
			}
			
			else{
				$query = "SELECT id FROM co_pianodeiconti3 WHERE descrizione='Riepilogativo fornitori'";
				$rs = $dbo->fetchArray($query);
				$idconto_controparte = $rs[0]['id'];
			}
		}
		$_SESSION["superselect"]["idconto_controparte"] = $idconto_controparte;
		
		//Lettura causale movimento (documento e ragione sociale)
		$descrizione_conto_controparte = $descrizione;
		$importo_conto_controparte = $importo_conto_aziendale;
		
		if( $dir == 'entrata' ){
			$totale_avere = $importo_conto_controparte;
		}
		
		else{
			$totale_avere = $importo_conto_controparte;
		}
	}
	?>

	<div class="row">
		<div class="col-md-4">
			{[ "type": "text", "label": "<?php echo _("Data movimento"); ?>", "name": "data", "id": "data-pr", "required": 1, "class": "text-center datepicker", "value": "<?php echo date("d/m/Y") ?>", "extra": "" ]}
		</div>
		
		<div class="col-md-8">
			{[ "type": "text", "label": "<?php echo _("Causale"); ?>", "name": "descrizione", "required": 1, "class": "", "value": "<?php echo $descrizione ?>", "extra": "" ]}
		</div>
	</div>
	
	
	<?php
	$totale_dare = 0.00;
	$totale_avere = 0.00;
	$idmastrino = $records[0]['idmastrino'];
	
	//Salvo l'elenco conti in un array (per non fare il ciclo ad ogni riga)

	/*
		Form di aggiunta riga movimento
	*/
	echo "<table class='table table-striped table-condensed table-hover table-bordered'>\n";
	echo "<tr><th>Conto</th><th width='150'>Dare</th><th width='150'>Avere</th></tr>\n";

	for( $i=0; $i<10; $i++ ){
		//Conto
		echo '
			<tr>
				<td>
					{[ "type": "select", "name": "idconto['.$i.']", "no-label": 1, "value": "';
		if($i == 0) echo $idconto_controparte;
		else if($i==1) echo $idconto_aziendale;
		echo '", "ajax-source": "conti" ]}
				</td>';
		
		//Importo dare e avere
		if( $i == 0 ){
			if( $dir == 'entrata' ){
				$value_dare = '';
				$value_avere = $importo_conto_aziendale;
			}
			
			else{
				$value_dare = $importo_conto_aziendale;
				$value_avere = '';
			}
		}
		
		else if( $i == 1 ){
			if( $dir == 'entrata' ){
				$value_dare = $importo_conto_controparte;
				$value_avere = '';
			}
			
			else{
				$value_dare = '';
				$value_avere = $importo_conto_controparte;
			}
		}
		
		else{
			$value_dare = '';
			$value_avere = '';
		}

		//Dare
		echo '
				<td>
					{[ "type": "text", "class": "inputmask-decimal", "name": "dare['.$i.']", "no-label": 1, "value": "'.$value_dare.'", "disabled": 1]}
				</td>';
		
		//Avere
		echo '
				<td>
					{[ "type": "text", "class": "inputmask-decimal", "name": "avere['.$i.']", "no-label": 1, "value": "'.$value_avere.'", "disabled": 1]}
				</td>
			</tr>';
	}
	
	//Totale per controllare sbilancio
	echo "<tr><td align='right'>\n<b>Totale:</b></td>\n";
	
	//Totale dare
	echo "<td align='right'>\n";
	echo "	<span><span id='totale_dare'></span> &euro;</span>\n";
	echo "</td>\n";
	
	//Totale avere
	echo "<td align='right'>\n";
	echo "	<span><span id='totale_avere'></span> &euro;</span>\n";
	echo "</td></tr>\n";

	//Verifica sbilancio
	echo "<tr><td align='right'></td>\n";
	echo "<td colspan='2' align='center'>\n";
	echo "	<span id='testo_aggiuntivo'></span>\n";
	echo "</td></tr>\n";
	
	echo "</table>\n";
	?>
	
	<!-- PULSANTI -->	
	<div class="row">
		<div class="col-md-12 text-right">
			<button type="submit" class="btn btn-primary"><i class="fa fa-plus"></i> <?php echo _("Aggiungi"); ?></button>
		</div>
	</div>
	
	<script type="text/javascript">
		$(document).ready( function(){
			$('input[id*=dare], input[id*=avere]').each( function(){
				if( $(this).val() != '' ) $(this).prop("disabled", false);
			});

			$('select').on('change', function(){
				if($(this).val() != '') $(this).parent().parent().parent().find('input').prop("disabled", false);
				else{
					 $(this).parent().parent().parent().find('input').prop("disabled", true);
					 $(this).parent().parent().parent().find('input').val("");
				}
			});

			$('input[id*=dare]').on( 'keyup change', function(){
				if($(this).val() != '')	$(this).parent().parent().parent().find('input[id*=avere]').prop("disabled", true);
				else $(this).parent().parent().parent().find('input[id*=avere]').prop("disabled", false);
				calcolaBilancio();
			});

			$('input[id*=avere]').on( 'keyup change', function(){
				if($(this).val() != '')	$(this).parent().parent().parent().find('input[id*=dare]').prop("disabled", true);
				else $(this).parent().parent().parent().find('input[id*=dare]').prop("disabled", false);
				calcolaBilancio();
			});
			
			//Ad ogni modifica dell'importo verifica che siano stati selezionati: il conto, la causale, la data. Inoltre aggiorna lo sbilancio
			function calcolaBilancio(){
				bilancio = 0.00;
				totale_dare = 0.00;
				totale_avere = 0.00;
				
				//Calcolo il totale dare e totale avere
				$('input[id*=dare]').each( function(){
					if( $(this).val() == '' ) valore = 0;
					else valore = parseFloat( $(this).val().replace(",", ".") );
					totale_dare += valore;
				});

				$('input[id*=avere]').each( function(){
					if( $(this).val() == '' ) valore = 0;
					else valore = parseFloat( $(this).val().replace(",", ".") );
					totale_avere += valore;
				});

				$('#totale_dare').text( ( totale_dare.toFixed(<?php echo get_var("Cifre decimali") ?>) ).replace('.', ',') );
				$('#totale_avere').text( ( totale_avere.toFixed(<?php echo get_var("Cifre decimali") ?>) ).replace('.', ',') );
				
				bilancio = totale_dare-totale_avere;

				if( bilancio == 0 ){
					$("#testo_aggiuntivo").removeClass('text-danger').html("");
					$("#btn-save").removeClass('hide');
				}
				else{
					bilancio = bilancio.toFixed(<?php echo get_var("Cifre decimali") ?>);
					$("#testo_aggiuntivo").addClass('text-danger').html("sbilancio di "+bilancio.replace(".", ",")+" &euro;" );
					$("#btn-save").addClass('hide');
				}
			}

			//Trigger dell'evento keyup() per la prima volta, per eseguire i dovuti controlli nel caso siano predisposte delle righe in prima nota
			$("input[id*=dare][value!=''], input[id*=avere][value!='']").keyup();

			$("select[id*=idconto]").click( function(){
				$("input[id*=dare][value!=''], input[id*=avere][value!='']").keyup();
			});
		});
	</script>
</form>

