<?php
require('../fpdf181/fpdf.php');

class pdf extends FPDF
{
	public function header()
	{
	// Encabezado
	}

	public function MultiCellAll($yi,$xi,$ancho,$alto,$texto,$border,$alineacion,$relleno)
	{
	// Escribir varias columnas
	//MultiCell(ancho,alto,texto,border,alineacion,relleno)
		$x1 = 0;
		$y1 = $yi;
		$i  = 0;
		$maxSize = $yi;
		foreach ($texto as $posicion=>$columna)
		{
			$this->SetXY( $x1+$xi[$i], $y1);
			$this->MultiCell($ancho[$i], $alto[$i], $columna,$border[$i],$alineacion[$i],$relleno[$i]);
			$i += 1;
			if ( $maxSize < ($this->GetY()  ) )
				$maxSize = $this->GetY() ;
		}
		return ( $maxSize - $yi );
	}

	public function footer()
	{
		// pie de pagina
	}
}

function Ymd_dmY(string $fecha, string $separador = "/"):string
{
	$ano=substr($fecha,0,4);
	$mes=substr($fecha, 5,2);
	$dia=substr($fecha, 8,2);
	$_fecha=$dia.$separador.$mes.$separador.$ano; 
	return $_fecha;
}

function formatoFecha($fecha)
{
	//$date   = date_format($fecha, 'F, jS Y');
	$date   =	date('d/ m/ Y');
	return $date;
}


function SetCurrency(float $valor, string $signo = '$'):string
{
	return $signo.number_format($valor,2,'.','');
}

function cabecera($fpdf,$empresa,$direccion,$telefono,$rif){
	$fpdf->AddPage('landscape', 'legal');
	$fpdf->SetMargins(10,30,20,20);
	
	$Fecha 			=date("m/d/yy");

	$fpdf	->SetFillColor(255,255,255);
	$fpdf	->SetLineWidth(1);
	$fpdf	->SetDrawColor(177,34,78);
	$fpdf	->SetTextColor(0,0,0);
	$y		=2;
	$x		=450;
	$fpdf	->SetXY($x,$y);
	$fpdf	->SetFillColor(208,208,208);
	$fpdf	->SetFont('Arial', 'B', 10);
	$fpdf	->MultiCell(35, 4,  utf8_decode("Fecha de emisión :"), '0', 'L', 0);
	$x		=486;
	$fpdf	->SetXY($x,$y);
	$fpdf	->SetFont('Arial', 'B', 10);
	$fpdf	->MultiCell(30, 4,  utf8_decode($Fecha), '0', 'L', 0);
	$y		=2;
	$x		=2;
	$fpdf	->SetXY($x,$y);
	$fpdf	->SetFont('Arial', 'B', 10);
	$fpdf	->MultiCell(120, 4,  utf8_decode($empresa), '0', 'L', 0);
	$y		=$fpdf->GetY();
	$fpdf	->SetXY($x,$y);
	$fpdf	->SetFont('Arial', '', 6);
	$fpdf	->MultiCell(180, 3,  utf8_decode($direccion), '0', 'L', 0);
	$fpdf	->SetXY($x,$y);
	$fpdf	->SetFont('Arial', '', 6);
	$fpdf	->MultiCell(180, 3,  utf8_decode($direccion), '0', 'L', 0);
	$y		=$fpdf->GetY();
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(88, 3, utf8_decode($rif), '0', 'L', 0);
	$y		=$fpdf->GetY();
	$x		=280;
	$fpdf	->SetFont('Arial', 'B', 12);
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(88, 3, "Libro de Ventas I.V.A", '0', 'L', 0);
	$fpdf	->SetFont('Arial','', 8);
	$fpdf	->SetFillColor(208,208,208);
	$y		=$fpdf->GetY();
	$x		=275;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(15, 3, "Desde el ", '0', 'L', 0);
	$x		=291;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(20, 3, $_GET["fi"], '0', 'L', 0);
	$x		=312;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(15, 3, "Hasta el ", '0', 'L', 0);
	$x		=328;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(20, 3,$_GET["ff"], '0', 'L', 0);
	$y		=$fpdf->GetY();
	$x		=274;
	$fpdf	->SetXY($x,$y);
	$fpdf	->SetLineWidth(0.2);
	$fpdf	->SetDrawColor(0,0,0);
	$fpdf	->Rect($x,$y+1,75,5);
	$fpdf	->MultiCell(75, 6, "Ventas Internas a Contribuyentes", '0', 'C', 0);
	$x		=350;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Rect($x,$y+1,75,5);
	$fpdf	->MultiCell(75, 6, "Ventas Internas a No Contribuyentes", '0', 'C', 0);
	$y		=$fpdf->GetY();
	$x		=274;
	$fpdf	->SetXY($x,$y);
	$fpdf	->SetLineWidth(0.2);
	$fpdf	->SetDrawColor(0,0,0);
	$fpdf	->Rect($x,$y+1,75,5);
	$fpdf	->MultiCell(75, 6, "Ventas por alic. general (16,00%)", '0', 'C', 0);
	$x		=350;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Rect($x,$y+1,75,5);
	$fpdf	->MultiCell(75, 6, "Ventas por alic. general (16,00%)", '0', 'C', 0);
	$x		=2;
	$y		=$fpdf->GetY()+4.5;
	$y1		=$fpdf->GetY()+0.5;
	$fpdf	->SetXY($x,$y);
	$fpdf	->SetFont('Arial', 'B', 8);
	$fpdf	->SetFillColor(208,208,208);
	$fpdf	->MultiCell(10, 4,"Nro", '0', 'L', 1);
	$x		=13;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(20, 4,"Fecha", '0', 'L', 1);
	$x		=34;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(30, 4,"ID Fiscal", '0', 'L', 1);
	$x		=65;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(60, 4,utf8_decode("Nombre o razón social"), '0', 'L', 1);
	$x		=126;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(10, 4,utf8_decode("Tipo Doc"), '0', 'L', 1);
	$x		=137;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(20, 4,utf8_decode("Serial Impresora"), '0', 'L', 1);
	$x		=158;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(20, 4,utf8_decode("Número Documento"), '0', 'L', 1);
	$x		=179;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(15, 4,utf8_decode("Tipo Tran."), '0', 'L', 1);
	$x		=195;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(15, 4,utf8_decode("Nro Fac a fectada"), '0', 'L', 1);
	$x		=211;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(35, 4,utf8_decode("Total ventas con impuesto"), '0', 'L', 1);
	$x		=247;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(25, 4,utf8_decode("Ventas        Exentas"), '0', 'L', 1);
	$x		=273;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(30, 4,utf8_decode("Monto Alic. Gral Base Imponible"), '0', 'L', 1);
	$x		=304;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(14, 4,utf8_decode("%        Alic"), '0', 'L', 1);
	$x		=319;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(30, 4,utf8_decode("Monto IVA Alicuota Gral"), '0', 'L', 1);
	$x		=350;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(30, 4,utf8_decode("Monto Alic. Gral Base Imponible"), '0', 'L', 1);
	$x		=381;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(14, 4,utf8_decode("%        Alic"), '0', 'L', 1);
	$x		=396;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(30, 4,utf8_decode("Monto IVA Alicuota Gral"), '0', 'L', 1);
	$x		=427;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(30, 4,utf8_decode("Base de        Reteción"), '0', 'L', 1);
	$x		=458;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(15, 4,utf8_decode("I.V.A.   Retenido"), '0', 'L', 1);
	$x		=474;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(15, 4,utf8_decode("% Alic. I.V.A."), '0', 'L', 1);
	$x		=490;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(15, 4,utf8_decode("I.V.A. Percibido"), '0', 'L', 1);
	$x		=506;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(24, 4,utf8_decode("Nro. de Comp de Ret. de IVA"), '0', 'L', 1);
	$x		=531;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(30, 4,utf8_decode("Fecha de Comp.de Ret. de IVA"), '0', 'L', 1);
}

function totales($fpdf,$totalventas,$ventasinivacontribuyente,$ivacontribuyente,$ventasinivanocontribuyente,$ivanocontribuyente){
	$y		=155;
	$x		=170;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(35, 4,utf8_decode("Totales:"), '0', 'R', 0);
	$x		=211;
	$fpdf	->Rect($x,$y-1,35,0.3);
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(35, 4,number_format($totalventas, 2, ',', '.'), '0', 'R', 0);
	$x		=247;
	$fpdf	->Rect($x,$y-1,25,0.3);
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(25, 4,number_format(0, 2, ',', '.'), '0', 'R', 0);
	$x		=273;
	$fpdf	->Rect($x,$y-1,30,0.3);
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(30, 4,number_format($ventasinivacontribuyente, 2, ',', '.'), '0', 'R', 0);
	$x		=304;
	$fpdf	->Rect($x,$y-1,14,0.3);
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(14, 4,number_format(0, 2, ',', '.'), '0', 'R', 0);
	$x		=319;
	$fpdf	->Rect($x,$y-1,30,0.3);
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(30, 4,number_format($ivacontribuyente, 2, ',', '.'), '0', 'R', 0);
	$x		=350;
	$fpdf	->Rect($x,$y-1,30,0.3);
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(30, 4,number_format($ventasinivanocontribuyente, 2, ',', '.'), '0', 'R', 0);
	$x		=381;
	$fpdf	->Rect($x,$y-1,14,0.3);
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(14, 4,number_format(0, 2, ',', '.'), '0', 'R', 0);
	$x		=396;
	$fpdf	->Rect($x,$y-1,30,0.3);
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(30, 4,number_format($ivanocontribuyente, 2, ',', '.'), '0', 'R', 0);
	$x		=427;
	$fpdf	->Rect($x,$y-1,30,0.3);
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(30, 4,number_format($ivacontribuyente, 2, ',', '.'), '0', 'R', 0);

	$y		=160;
	$x		=2;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(120, 4,utf8_decode("Resumen de Debitos Fiscales"), '0', 'L', 1);
	$x		=125;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(60, 4,utf8_decode("Base Imponible"), '0', 'R', 1);
	$x		=190;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(60, 4,utf8_decode("Debito Fiscal"), '0', 'R', 1);
	$fpdf	->SetXY($x,$y);
	$x		=2;

	$y		=166;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(120, 4,utf8_decode("Retenciones Aplicadas"), '0', 'L', 0);
	$x		=190;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(60, 4,number_format(0, 2, ',', '.'), '0', 'R', 0);
	$x		=2;

	$y		=172;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(120, 4,utf8_decode("Ventas internas gravadas por alicuota general (contribuyentes) (16,00 %)"), '0', 'L', 0);
	$x		=125;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(60, 4,number_format($ventasinivacontribuyente, 2, ',', '.'), '0', 'R', 0);
	$x		=190;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(60, 4,number_format($ivacontribuyente, 2, ',', '.'), '0', 'R', 0);
	$fpdf	->SetXY($x,$y);
	$x		=2;

	$y		=178;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(120, 4,utf8_decode("Ventas internas gravadas por alicuota general (no contribuyentes) (16,00 %)"), '0', 'L', 0);
	$x		=125;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(60, 4,number_format($ventasinivanocontribuyente, 2, ',', '.'), '0', 'R', 0);
	$x		=190;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(60, 4,number_format($ivanocontribuyente, 2, ',', '.'), '0', 'R', 0);
	$fpdf	->SetXY($x,$y);
	$x		=2;

	$y		=184;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(120, 4,utf8_decode("Total ventas y débitos fiscales del período"), '0', 'R', 0);
	$x		=125;
	$fpdf	->Rect($x,$y-1,60,0.3);
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(60, 4,number_format($ventasinivanocontribuyente+$ventasinivacontribuyente, 2, ',', '.'), '0', 'R', 0);
	$x		=190;
	$fpdf	->Rect($x,$y-1,60,0.3);
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(60, 4,number_format($ivanocontribuyente+$ivacontribuyente, 2, ',', '.'), '0', 'R', 0);
	$fpdf	->SetXY($x,$y);

	// //Rectangulo
	// $fpdf	->Rect(16,$y1-1,67,27);
	// $fpdf	->Rect(16,$y1+20,67,6);

}


// Se define el tamaño de hoja y margenes
$fpdf = new pdf('P','mm','legal',true);


require_once "../modelos/Consultas.php";
$venta		= 	new Consultas();
//Buscamos los datos de la compañia
$rsptac		=	$venta->datosempresa();
$regc		=	$rsptac->fetch_object();
$empresa    =	$regc->nombre;
$direccion	=	$regc->direccion;
$telefono   =	$regc->telefono;
$rif        =	"J-".$regc->num_documento;

cabecera($fpdf,$empresa,$direccion,$telefono,$rif);

//Ahora buscamos las ventas dentro de un rango de fecha
/* Fisioterapia 
$rsptav		=	$venta->ventaslibrodeventaf($_GET["fi"],$_GET["ff"]);
*/
/* Normal*/
$rsptav		=	$venta->ventaslibrodeventa($_GET["fi"],$_GET["ff"]);



$nro 	= 1;
$x		= 2;
$y		=$fpdf->GetY()+4;
$ventacontribuyente 		= 0;
$ivacontribuyente			= 0;
$ventasinivacontribuyente 	= 0;
$ventanocontribuyente 		= 0;
$ivanocontribuyente			= 0;
$ventasinivanocontribuyente = 0;
$totalventas				= 0;
while($regv	=$rsptav->fetch_object()){
	if ($nro<29){
		if ($regv->tipo_documento=='RIF'){
			$regv->tipo_documento ='J';
		}elseif($regv->tipo_documento=='CEDULA'){
			$regv->tipo_documento ='V';
		}else{
			$regv->tipo_documento ='G';
		}
	   $totalventas = $totalventas + $regv->total_venta;
		$x		= 2;
		$fpdf	->SetXY($x,$y);
		$fpdf	->MultiCell(10, 4, $nro, '0', 'L', 0);
		$x		=13;
		$fpdf	->SetXY($x,$y);
		$fpdf	->MultiCell(20, 4,$regv->fecha, '0', 'L', 0);
		$x		=34;
		$fpdf	->SetXY($x,$y);
		$fpdf	->MultiCell(30, 4,utf8_decode($regv->tipo_documento.$regv->num_documento), '0', 'L', 0);
		$x		=65;
		$fpdf	->SetXY($x,$y);
		$fpdf	->MultiCell(60, 4,utf8_decode(substr($regv->cliente,0,15)), '0', 'L', 0);
		$x		=126;
		$fpdf	->SetXY($x,$y);
		$fpdf	->MultiCell(10, 4,utf8_decode(substr($regv->tipo_comprobante,0,3)), '0', 'L', 0);
		$x		=137;
		$fpdf	->SetXY($x,$y);
		$fpdf	->MultiCell(20, 4,utf8_decode(""), '0', 'L', 0);
		$x		=158;
		$fpdf	->SetXY($x,$y);
		$fpdf	->MultiCell(20, 4,utf8_decode($regv->serie_comprobante), '0', 'L', 0);
		$x		=179;
		$fpdf	->SetXY($x,$y);
		$fpdf	->MultiCell(15, 4,utf8_decode("01-REG"), '0', 'L', 0);
		$x		=195;
		$fpdf	->SetXY($x,$y);
		$fpdf	->MultiCell(15, 4,utf8_decode(""), '0', 'L', 0);
		$x		=211;
		$fpdf	->SetXY($x,$y);
		$fpdf	->MultiCell(35, 4,number_format($regv->totalventa, 2, ',', '.'), '0', 'R', 0);
		$x		=247;
		$fpdf	->SetXY($x,$y);
		$fpdf	->MultiCell(25, 4,number_format($regv->totalexento, 2, ',', '.'), '0', 'R', 0);
		// Si el cliente no tiene rif, son ventas internas
		if ($regv->num_documento==1){
			$x		=273;
			$fpdf	->SetXY($x,$y);
		   $fpdf	->MultiCell(30, 4,number_format(0, 2, ',', '.'), '0', 'R', 0);
			$x		=304;
			$fpdf	->SetXY($x,$y);
			$fpdf	->MultiCell(14, 4,number_format(0, 2, ',', '.'), '0', 'R', 0);
			$x		=319;
			$fpdf	->SetXY($x,$y);
			$fpdf	->MultiCell(30, 4,number_format(0, 2, ',', '.'), '0', 'R', 0);
			$x		=350;
			$fpdf	->SetXY($x,$y);
			$fpdf	->MultiCell(30, 4,number_format($regv->totalparimpuesto, 2, ',', '.'), '0', 'R', 0);
			$x		=381;
			$fpdf	->SetXY($x,$y);
			$fpdf	->MultiCell(14, 4,utf8_decode($regv->impuesto), '0', 'R', 0);
			$x		=396;
		   $fpdf	->SetXY($x,$y);
		   $fpdf	->MultiCell(30, 4,number_format($regv->iva, 2, ',', '.'), '0', 'R', 0);
		   $x		=427;
		   $fpdf	->SetXY($x,$y);
		   $fpdf	->MultiCell(30, 4,number_format(0, 2, ',', '.'), '0', 'R', 0);
		   $ivanocontribuyente			= $ivanocontribuyente+$regv->iva;
		   $ventasinivanocontribuyente = $ventasinivanocontribuyente+$regv->totalventasiniva;
	   }else{
		   $x		=273;
		   $fpdf	->SetXY($x,$y);
		   $fpdf	->MultiCell(30, 4,number_format($regv->totalparimpuesto, 2, ',', '.'), '0', 'R', 0);
		   $x		=304;
		   $fpdf	->SetXY($x,$y);
		   $fpdf	->MultiCell(14, 4,utf8_decode($regv->impuesto), '0', 'R', 0);
		   $x		=319;
		   $fpdf	->SetXY($x,$y);
		   $fpdf	->MultiCell(30, 4,number_format($regv->iva, 2, ',', '.'), '0', 'R', 0);
		   $x		=350;
		   $fpdf	->SetXY($x,$y);
		   $fpdf	->MultiCell(30, 4,number_format(0, 2, ',', '.'), '0', 'R', 0);
		   $x		=381;
		   $fpdf	->SetXY($x,$y);
		   $fpdf	->MultiCell(14, 4,number_format(0, 2, ',', '.'), '0', 'R', 0);
		   $x		=396;
		   $fpdf	->SetXY($x,$y);
		   $fpdf	->MultiCell(30, 4,number_format(0, 2, ',', '.'), '0', 'R', 0);
		   $x		=427;
		   $fpdf	->SetXY($x,$y);
		   $fpdf	->MultiCell(30, 4,number_format($regv->iva, 2, ',', '.'), '0', 'R', 0);
		   $ivacontribuyente			= $ivacontribuyente+$regv->iva;
		   $ventasinivacontribuyente = $ventasinivacontribuyente+$regv->totalventasiniva;
		}
	   
		$x		=458;
		$fpdf	->SetXY($x,$y);
		$fpdf	->MultiCell(15, 4,number_format(0, 2, ',', '.'), '0', 'R', 0);
		$x		=474;
		$fpdf	->SetXY($x,$y);
		$fpdf	->MultiCell(15, 4,number_format(0, 2, ',', '.'), '0', 'R', 0);
		$x		=490;
		$fpdf	->SetXY($x,$y);
		$fpdf	->MultiCell(15, 4,number_format(0, 2, ',', '.'), '0', 'R', 0);
		$x		=506;
		$fpdf	->SetXY($x,$y);
		$fpdf	->MultiCell(24, 4,utf8_decode(""), '0', 'L', 0);
		$x		=531;
		$fpdf	->SetXY($x,$y);
		$fpdf	->MultiCell(30, 4,utf8_decode(""), '0', 'L', 0);
		$nro 	= $nro + 1;
		$y		=$fpdf->GetY();
		
	}else{
		totales($fpdf,$totalventas,$ventasinivacontribuyente,$ivacontribuyente,$ventasinivanocontribuyente,$ivanocontribuyente);
		$nro 	= 1;
		cabecera($fpdf,$empresa,$direccion,$telefono,$rif);
		$x		= 2;
		$y		=$fpdf->GetY()+4;
	}
	
}	
totales($fpdf,$totalventas,$ventasinivacontribuyente,$ivacontribuyente,$ventasinivanocontribuyente,$ivanocontribuyente);





$fpdf->OutPut('LibroDeVenta','I');