<?php
	$idconto = $html->form( 'idconto' );
	$module_name = "Piano dei conti";
	include_once( $docroot."/lib/permissions_check.php" );
	
	//carica report html
	$report = file_get_contents ($docroot."/templates/partitario_mastrino/partitario.html");
	$body = file_get_contents ($docroot."/templates/partitario_mastrino/partitario_body.html");
	include_once( "pdfgen_variables.php" );
	
	
	//Calcolo il percorso piano dei conti
	if( $html->form('lev') == '3' ){
		$rs = $dbo->fetchArray("SELECT idpianodeiconti2, CONCAT_WS(' ', numero, descrizione ) AS descrizione FROM co_pianodeiconti3 WHERE id=\"".$idconto."\"");
		$percorso = $rs[0]['descrizione'];
		$idpianodeiconti2 = $rs[0]['idpianodeiconti2'];
	
		$rs = $dbo->fetchArray("SELECT idpianodeiconti1, CONCAT_WS(' ', numero, descrizione ) AS descrizione FROM co_pianodeiconti2 WHERE id=\"".$idpianodeiconti2."\"");
		$percorso = $rs[0]['descrizione']."<br>&nbsp;&nbsp;&nbsp;&nbsp;".$percorso;
		$idpianodeiconti1 = $rs[0]['idpianodeiconti1'];
	
		$rs = $dbo->fetchArray("SELECT CONCAT_WS(' ', numero, descrizione ) AS descrizione FROM co_pianodeiconti1 WHERE id=\"".$idpianodeiconti1."\"");
	
		( $rs[0]['descrizione'] == '01 Patrimoniale' ) ? $descrizione="Stato patrimoniale" : $descrizione="Conto economico";
		$percorso = $descrizione."<br>&nbsp;&nbsp;".$percorso;
	}
	
	elseif( $html->form('lev') == '2' ){
		$rs = $dbo->fetchArray("SELECT idpianodeiconti1, CONCAT_WS(' ', numero, descrizione ) AS descrizione FROM co_pianodeiconti2 WHERE id=\"".$idconto."\"");
		$percorso = $rs[0]['descrizione']."<br>&nbsp;&nbsp;&nbsp;&nbsp;".$percorso;
		$idpianodeiconti1 = $rs[0]['idpianodeiconti1'];
	
		$rs = $dbo->fetchArray("SELECT CONCAT_WS(' ', numero, descrizione ) AS descrizione FROM co_pianodeiconti1 WHERE id=\"".$idpianodeiconti1."\"");
	
		( $rs[0]['descrizione'] == '01 Patrimoniale' ) ? $descrizione="Stato patrimoniale" : $descrizione="Conto economico";
		$percorso = $descrizione."<br>&nbsp;&nbsp;".$percorso;
	}
	
	elseif( $html->form('lev') == '1' ){
		$rs = $dbo->fetchArray("SELECT CONCAT_WS(' ', numero, descrizione ) AS descrizione FROM co_pianodeiconti1 WHERE id=\"".$idconto."\"");
	
		( $rs[0]['descrizione'] == '01 Patrimoniale' ) ? $descrizione="Stato patrimoniale" : $descrizione="Conto economico";
		$percorso = $descrizione."<br>&nbsp;<br>&nbsp;";
	}
	
	
	$body = str_replace( "|percorso|", $percorso, $body );
	$body = str_replace( "|info_fornitore|", $f_ragionesociale."<br>".$f_indirizzo."<br>".$f_citta, $body );
	$body = str_replace( "|period_start|", date("d/m/Y", strtotime($_SESSION['period_start'])), $body );
	$body = str_replace( "|period_end|", date("d/m/Y", strtotime($_SESSION['period_end'])), $body );
	
	
	//Stampa da livello 3
	if( $html->form('lev') == '3' ){
		$body .= "<table style='table-layout:fixed; border-bottom:1px solid #777; border-right:1px solid #777; border-left:1px solid #777;' cellpadding='0' cellspacing='0'>
						<col width='80'><col width='452'><col width='80'><col width='80'>
						<tbody>\n";
					
					
						//Inizializzo saldo finale
						$saldo_finale = 0;
					
					
						//Calcolo saldo iniziale
						$rs = $dbo->fetchArray("SELECT SUM(totale) AS totale FROM co_movimenti WHERE idconto=\"".$idconto."\" AND data < \"".$_SESSION['period_start']."\"");
						$saldo_iniziale = $rs[0]['totale'];
						$saldo_finale = $saldo_iniziale;
					
					
						if( $saldo_iniziale < 0 ){
							$dare = '';
							$avere = abs($saldo_iniziale);
						}
					
						else{
							$dare = abs($saldo_iniziale);
							$avere = '';
						}
					
						$body .= "		<tr><td class='br bb padded'></td><td class='br bb padded'><b>SALDO INIZIALE</b></td><td class='br bb padded text-right'><b>".number_format( abs($dare), get_var("Cifre decimali"), ",", "." )."</b></td><td class='bb padded text-right'><b>".number_format( abs($avere), get_var("Cifre decimali"), ",", "." )."</b></td></tr>\n";
					
						$rs = $dbo->fetchArray("SELECT * FROM co_movimenti WHERE idconto=\"".$idconto."\" AND data >= \"".$_SESSION['period_start']."\" AND data <= \"".$_SESSION['period_end']."\" ORDER BY data ASC");
					
						for( $i=0; $i<sizeof($rs); $i++ ){
							if( $rs[$i]['totale'] >= 0 ){
								$dare = number_format( abs($rs[$i]['totale']), get_var("Cifre decimali"), ",", "." );
								$avere = "";
							}
						
							else{
								$dare = "";
								$avere = number_format( abs($rs[$i]['totale']), get_var("Cifre decimali"), ",", "." );
							}
						
							$body .= "		<tr><td class='br bb padded text-center'>".date( "d/m/Y", strtotime($rs[$i]['data']) )."</td><td class='br bb padded'>".$rs[$i]['descrizione']."</td><td class='br bb padded text-right'>".$dare."</td><td class='bb padded text-right'>".$avere."</td></tr>\n";
						
							$saldo_finale += $rs[$i]['totale'];
						}
					
					
						if( $saldo_finale < 0 ){
							$dare = '';
							$avere = abs($saldo_finale);
						}
					
						else{
							$dare = abs($saldo_finale);
							$avere = '';
						}
					
					
						//Mostro il saldo finale
						$body .= "		<tr><td class='br bb padded'></td><td class='br bb padded'><b>SALDO FINALE</b></td><td class='br bb padded text-right'><b>".number_format( abs($dare), get_var("Cifre decimali"), ",", "." )."</b></td><td class='bb padded text-right'><b>".number_format( abs($avere), get_var("Cifre decimali"), ",", "." )."</b></td></tr>\n";
					
					
	
		$body .="		</tbody>
					</table>\n";
	}
	
	
	//Stampa da livello 2
	elseif( $html->form('lev') == '2' ){
		$body .= "<table style='table-layout:fixed; border-bottom:1px solid #777; border-right:1px solid #777; border-left:1px solid #777;' cellpadding='0' cellspacing='0'>
						<col width='80'><col width='452'><col width='80'><col width='80'>
						<tbody>\n";
					
						//Ciclo fra i sotto-conti di livello 2
						$rs3 = $dbo->fetchArray("SELECT id, numero, descrizione FROM co_pianodeiconti3 WHERE idpianodeiconti2=\"".$idconto."\"");
						
						for( $z=0; $z<sizeof($rs3); $z++ ){
							//Inizializzo saldo finale
							$saldo_finale = 0;
					
					
							//Calcolo saldo iniziale
							$rs = $dbo->fetchArray("SELECT SUM(totale) AS totale FROM co_movimenti WHERE idconto=\"".$rs3[$z]['id']."\" AND data < \"".$_SESSION['period_start']."\"");
							$saldo_iniziale = $rs[0]['totale'];
							$saldo_finale = $saldo_iniziale;
					
					
							if( $saldo_iniziale < 0 ){
								$dare = '';
								$avere = abs($saldo_iniziale);
							}
					
							else{
								$dare = abs($saldo_iniziale);
								$avere = '';
							}
					
							$rs = $dbo->fetchArray("SELECT * FROM co_movimenti WHERE idconto=\"".$rs3[$z]['id']."\" AND data >= \"".$_SESSION['period_start']."\" AND data <= \"".$_SESSION['period_end']."\" ORDER BY data ASC");
					
							for( $i=0; $i<sizeof($rs); $i++ ){
								if( $rs[$i]['totale'] >= 0 ){
									$dare += abs($rs[$i]['totale']);
								}
					
								else{
									$avere += abs($rs[$i]['totale']);
								}
							}
						
							$totale = $dare - $avere;
						
						
							if( $totale >= 0 ){
								$dare = number_format( abs($totale), get_var("Cifre decimali"), ",", "." );
								$avere = "";
							}
					
							else{
								$dare = "";
								$avere = number_format( abs($totale), get_var("Cifre decimali"), ",", "." );
							}

					
							//Mostro il saldo finale del conto di livello 3
							$body .= "		<tr><td class='br bb padded'></td><td class='br bb padded'>".$rs3[$z]['numero']." ".$rs3[$z]['descrizione']."</td><td class='br bb padded text-right'>".$dare."</td><td class='bb padded text-right'>".$avere."</td></tr>\n";
						}
					
					
	
		$body .="		</tbody>
					</table>\n";
	}
	
	//Stampa completa bilancio
	elseif( $html->form('lev') == '1' ){
		$ricavi				= 0;
		$costi				= 0;
		$totale_attivita	= 0;
		$totale_passivita	= 0;
		
		$body .= "<table style='table-layout:fixed; border-bottom:1px solid #777; border-right:1px solid #777; border-left:1px solid #777;' cellpadding='0' cellspacing='0'>
						<col width='80'><col width='452'><col width='80'><col width='80'>
						<tbody>\n";
						
						//Ciclo fra il conto principale scelto (Economico o Patrimoniale)
						$rs1 = $dbo->fetchArray("SELECT id, numero, descrizione FROM co_pianodeiconti1 WHERE id=\"".$idconto."\" ORDER BY numero DESC");
						
						for( $x=0; $x<sizeof($rs1); $x++ ){
							//Ciclo fra i sotto-conti di livello 1
							$rs2 = $dbo->fetchArray("SELECT id, numero, descrizione FROM co_pianodeiconti2 WHERE idpianodeiconti1=\"".$rs1[$x]['id']."\"");
						
							for( $y=0; $y<sizeof($rs2); $y++ ){
								$body .= "		<tr><th class='bb padded' colspan='4'><b>".$rs2[$y]['numero']." ".$rs2[$y]['descrizione']."</b></th></tr>\n";
							
								//Ciclo fra i sotto-conti di livello 2
								$rs3 = $dbo->fetchArray("SELECT id, numero, descrizione FROM co_pianodeiconti3 WHERE idpianodeiconti2=\"".$rs2[$y]['id']."\"");
						
								for( $z=0; $z<sizeof($rs3); $z++ ){
									$dare = 0;
									$avere = 0;
					
									$rs = $dbo->fetchArray("SELECT * FROM co_movimenti WHERE idconto=\"".$rs3[$z]['id']."\" AND data >= \"".$_SESSION['period_start']."\" AND data <= \"".$_SESSION['period_end']."\" ORDER BY data ASC");
					
									for( $i=0; $i<sizeof($rs); $i++ ){
										if( $rs[$i]['totale'] >= 0 ){
											$dare += abs($rs[$i]['totale']);
										}
					
										else{
											$avere += abs($rs[$i]['totale']);
										}
									}
						
									$totale = $dare - $avere;
						
						
									if( $totale >= 0 ){
										$dare = abs($totale);
										$avere = 0;
										$totale_attivita += $dare;
										$costi += abs($dare);
									}
					
									else{
										$dare = 0;
										$avere = abs($totale);
										$totale_passivita += $avere;
										$ricavi += abs($avere);
									}

					
									//Mostro il saldo finale del conto di livello 3
									$body .= "		<tr><td class='br bb padded'></td><td class='br bb padded'>".$rs3[$z]['numero']." ".$rs3[$z]['descrizione']."</td><td class='br bb padded text-right'>".number_format( abs($dare), get_var("Cifre decimali"), ",", "." )."</td><td class='bb padded text-right'>".number_format( abs($avere), get_var("Cifre decimali"), ",", "." )."</td></tr>\n";
								}
							}
						}
		
		
		//Stampa "Costi/Ricavi" se conto economico
		if( $rs1[0]['descrizione'] == 'Economico' ){
			$body .= "		<tr><th colspan='3' class='br bb padded'>RICAVI</th><th align='right' class='bb padded'>".number_format( $ricavi, 2, ",", "." )."</th></tr>\n";
			$body .= "		<tr><th colspan='3' class='br bb padded'>COSTI</th><th align='right' class='bb padded'>".number_format( $costi, 2, ",", "." )."</th></tr>\n";
			$body .= "		<tr><th colspan='3' class='br padded'>UTILE</th><th class='padded' align='right'>".number_format( $ricavi - $costi, 2, ",", "." )."</th></tr>\n";
		}
		
		//Stampa "Attività/Passività" se stato patrimoniale
		else{
			$costi	= 0;
			$ricavi	= 0;
			
			//Ciclo fra il conto economico per calcolare l'utile o la perdita
			$rs1 = $dbo->fetchArray("SELECT id, numero, descrizione FROM co_pianodeiconti1 WHERE NOT id=\"".$idconto."\" ORDER BY numero DESC");
			
			for( $x=0; $x<sizeof($rs1); $x++ ){
				//Ciclo fra i sotto-conti di livello 1
				$rs2 = $dbo->fetchArray("SELECT id, numero, descrizione FROM co_pianodeiconti2 WHERE idpianodeiconti1=\"".$rs1[$x]['id']."\"");
			
				for( $y=0; $y<sizeof($rs2); $y++ ){
					//Ciclo fra i sotto-conti di livello 2
					$rs3 = $dbo->fetchArray("SELECT id, numero, descrizione FROM co_pianodeiconti3 WHERE idpianodeiconti2=\"".$rs2[$y]['id']."\"");
			
					for( $z=0; $z<sizeof($rs3); $z++ ){
						//Inizializzo saldo finale
						$saldo_finale = 0;
		
		
						//Calcolo saldo iniziale
						$rs = $dbo->fetchArray("SELECT SUM(totale) AS totale FROM co_movimenti WHERE idconto=\"".$rs2[$y]['id']."\" AND data < \"".$_SESSION['period_start']."\"");
						$dare = 0;
						$avere = 0;
				
						$rs = $dbo->fetchArray("SELECT * FROM co_movimenti WHERE idconto=\"".$rs3[$z]['id']."\" AND data >= \"".$_SESSION['period_start']."\" AND data <= \"".$_SESSION['period_end']."\" ORDER BY data ASC");
		
						for( $i=0; $i<sizeof($rs); $i++ ){
							if( $rs[$i]['totale'] >= 0 ){
								$dare += abs($rs[$i]['totale']);
							}
		
							else{
								$avere += abs($rs[$i]['totale']);
							}
						}
			
						$totale = $dare - $avere;
						
						if( $totale >= 0 ){
							$costi += abs($totale);
						}
		
						else{
							$ricavi += abs($totale);
						}
					}
				}
			}
			
			$body .="		</tbody>\n";
			$body .= "	</table>\n";
			
			//Tabella di riepilogo finale
			$totale_attivita = abs($totale_attivita);
			$totale_passivita = abs($totale_passivita);
			$utile_perdita = abs($ricavi) - abs($costi);
			
			if( $utile_perdita<0 ){
				$pareggio1 = $totale_attivita + abs($utile_perdita);
				$pareggio2 = abs($totale_passivita);
			}
			
			else{
				$pareggio1 = $totale_attivita;
				$pareggio2 = abs($totale_passivita) + abs($utile_perdita);
			}
			
			
			$body .= "<table style='table-layout:fixed; border-bottom:1px solid #777; border-right:1px solid #777; border-left:1px solid #777;' cellpadding='0' cellspacing='0'>
						<col width='173'><col width='173'><col width='173'><col width='173'>
						<tbody>\n";
			
			//Attività
			$body .= "		<tr><th class='br bb padded'>TOTALE ATTIVIT&Agrave;</th><th align='right' class='bb br padded'>".number_format( $totale_attivita, get_var("Cifre decimali"), ",", "." )."</th>\n";
			
			//Passività
			$body .= "		<th class='br bb padded'>PASSIVIT&Agrave;</th><th align='right' class='bb padded'>".number_format( $totale_passivita, get_var("Cifre decimali"), ",", "." )."</th></tr>\n";
			
			if( $utile_perdita < 0 ){
				//Perdita d'esercizio
				$body .= "		<tr><th class='br bb padded'>PERDITA D'ESERCIZIO</th><th align='right' class='bb br padded'>".number_format( abs($utile_perdita), get_var("Cifre decimali"), ",", "." )."</th>\n";
				
				//Utile
				$body .= "		<th class='br bb padded'>&nbsp;</th><th align='right' class='bb padded'>&nbsp;</th></tr>\n";
			} else {
				//Perdita d'esercizio
				$body .= "		<tr><th class='br bb padded'>&nbsp;</th><th align='right' class='bb br padded'>&nbsp;</th>\n";
				
				//Utile
				$body .= "		<th class='br bb padded'>UTILE</th><th align='right' class='bb padded'>".number_format( abs($utile_perdita), get_var("Cifre decimali"), ",", "." )."</th></tr>\n";
			}
			
			//PAREGGIO 1
			$body .= "		<tr><th class='br padded'>TOTALE A PAREGGIO</th><th align='right' class='br padded'>".number_format( $pareggio1, get_var("Cifre decimali"), ",", "." )."</th>\n";
			
			//PAREGGIO 2
			$body .= "		<th class='br padded'>TOTALE A PAREGGIO</th><th align='right' class='padded'>".number_format( $pareggio2, get_var("Cifre decimali"), ",", "." )."</th></tr>\n";
		}
		
	
		$body .="		</tbody>
					</table>\n";
	}
	
	$report_name = "mastrino.pdf";
?>
