<?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();
	$a1		=21;
	$x		=280-$a1;
	$fpdf	->SetFont('Arial', 'B', 12);
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(88, 3, "Libro de Compras I.V.A", '0', 'L', 0);
	$fpdf	->SetFont('Arial','', 8);
	$fpdf	->SetFillColor(208,208,208);
	$y		=$fpdf->GetY();
	$x		=275-$a1;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(15, 3, "Desde el ", '0', 'L', 0);
	$x		=291-$a1;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(20, 3, $_GET["fi"], '0', 'L', 0);
	$x		=312-$a1;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(15, 3, "Hasta el ", '0', 'L', 0);
	$x		=328-$a1;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(20, 3,$_GET["ff"], '0', 'L', 0);
	$y		=$fpdf->GetY();
	$x		=274-$a1;
	$fpdf	->SetXY($x,$y);
	$fpdf	->SetLineWidth(0.2);
	$fpdf	->SetDrawColor(0,0,0);
	$fpdf	->Rect($x,$y+1,75,5);
	$fpdf	->MultiCell(75, 6, "Compras internas por alicuota general", '0', 'C', 0);
	$x		=350-$a1;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Rect($x,$y+1,75,5);
	$fpdf	->MultiCell(75, 6, "Compras internas por alicuota reducida", '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); */
	$a=21;
	$x		=158-$a;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(20, 4,utf8_decode("Número Documento"), '0', 'L', 1);
	$x		=179-$a;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(15, 4,utf8_decode("Tipo Tran."), '0', 'L', 1);
	$x		=195-$a;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(15, 4,utf8_decode("Nro Fac a fectada"), '0', 'L', 1);
	$x		=211-$a;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(35, 4,utf8_decode("Total Compras Incluyendo IVA"), '0', 'L', 1);
	$x		=247-$a;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(25, 4,utf8_decode("Compras Exentas o sin credito fisc."), '0', 'L', 1);
	$x		=273-$a;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(30, 4,utf8_decode("Base Imponible"), '0', 'L', 1);
	$x		=304-$a;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(14, 4,utf8_decode("%           "), '0', 'L', 1);
	$x		=319-$a;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(30, 4,utf8_decode("Monto "), '0', 'L', 1);
	$x		=350-$a;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(30, 4,utf8_decode("Monto Alic. Gral Base Imponible"), '0', 'L', 1);
	$x		=381-$a;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(14, 4,utf8_decode("%        Alic"), '0', 'L', 1);
	$x		=396-$a;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(30, 4,utf8_decode("Monto IVA Alicuota Gral"), '0', 'L', 1);
	$x		=427-$a;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(30, 4,utf8_decode("Base de        Reteción"), '0', 'L', 1);
	$x		=458-$a;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(15, 4,utf8_decode("I.V.A.   Retenido"), '0', 'L', 1);
	$x		=474-$a;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(15, 4,utf8_decode("% Alic. I.V.A."), '0', 'L', 1);
	$x		=490-$a;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(15, 4,utf8_decode("I.V.A. Percibido"), '0', 'L', 1);
	$x		=506-$a;
	$fpdf	->SetXY($x,$y1);
	$fpdf	->MultiCell(24, 4,utf8_decode("Nro. de Comp de Ret. de IVA"), '0', 'L', 1);
	$x		=531-$a;
	$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,$totalventasexento){
	//Totales
	$a1		=21;
	$y		=150;
	$x		=170-$a1;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(35, 4,utf8_decode("Totales:"), '0', 'R', 0);
	$x		=211-$a1;
	$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-$a1;
	$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-$a1;
	$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-$a1;
	$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-$a1;
	$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-$a1;
	$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-$a1;
	$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-$a1;
	$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-$a1;
	$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 Créditos 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; */
	//172
	$y		=166;
	$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		=172;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(120, 4,utf8_decode("Importación gravadas por alicuota general (00,00 %)"), '0', 'L', 0);
	$x		=125;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(60, 4,number_format(0, 2, ',', '.'), '0', 'R', 0);
	$x		=190;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(60, 4,number_format(0, 2, ',', '.'), '0', 'R', 0);
	$fpdf	->SetXY($x,$y);
	$x		=2;

	$y		=178;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(120, 4,utf8_decode("Compras internas gravadas alicuota reducida"), '0', 'L', 0);
	$x		=125;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(60, 4,number_format(0, 2, ',', '.'), '0', 'R', 0);
	$x		=190;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(60, 4,number_format(0, 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);
	$x		=2;

	$y		=189;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(120, 4,utf8_decode("Compras no gravadas y/o sin derecho a credito fiscal"), '0', 'R', 0);
	$x		=125;
	//$fpdf	->Rect($x,$y-1,60,0.3);
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(60, 4,number_format($totalventasexento, 2, ',', '.'), '0', 'R', 0);


	// //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);

$rsptav		=	$venta->compraslibrodecompras($_GET["fi"],$_GET["ff"]);

// //recorremos todos los valores que obtengamos
// //SELECT fecha, usuario, cliente, tipo_documento, num_documento, agenteretencion,tipo_comprobante,
// //serie_comprobante, num_comprobante , total_venta, totalventasiniva, iva,impuesto, estado 
$nro 	= 1;
$x		= 2;
$a3		= 21;
$y		=$fpdf->GetY()+4;
$ventacontribuyente 		= 0;
$ivacontribuyente			= 0;
$ventasinivacontribuyente 	= 0;
$ventanocontribuyente 		= 0;
$ivanocontribuyente			= 0;
$ventasinivanocontribuyente = 0;
$totalventas				= 0;
$totalventasexento			= 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_compra;
		$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($regv->proveedor), '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("Z1F0015759"), '0', 'L', 0); */
		$x		=158-$a3;
		$fpdf	->SetXY($x,$y);
		$fpdf	->MultiCell(20, 4,utf8_decode($regv->serie_comprobante), '0', 'L', 0);
		$x		=179-$a3;
		$fpdf	->SetXY($x,$y);
		$fpdf	->MultiCell(15, 4,utf8_decode("01-REG"), '0', 'L', 0);
		$x		=195-$a3;
		$fpdf	->SetXY($x,$y);
		$fpdf	->MultiCell(15, 4,utf8_decode(""), '0', 'L', 0);
		$x		=211-$a3;
		$fpdf	->SetXY($x,$y);
		$fpdf	->MultiCell(35, 4,number_format($regv->total_compra, 2, ',', '.'), '0', 'R', 0);
		$x		=247-$a3;
		$fpdf	->SetXY($x,$y);
		$fpdf	->MultiCell(25, 4,number_format($regv->exento, 2, ',', '.'), '0', 'R', 0);
			   
        $x		=273-$a3;
        $fpdf	->SetXY($x,$y);
        $fpdf	->MultiCell(30, 4,number_format($regv->total_comprasiniva, 2, ',', '.'), '0', 'R', 0);
        $x		=304-$a3;
        $fpdf	->SetXY($x,$y);
        $fpdf	->MultiCell(14, 4,utf8_decode($regv->impuesto), '0', 'R', 0);
        $x		=319-$a3;
        $fpdf	->SetXY($x,$y);
        $fpdf	->MultiCell(30, 4,number_format($regv->iva, 2, ',', '.'), '0', 'R', 0);
        $x		=350-$a3;
        $fpdf	->SetXY($x,$y);
        $fpdf	->MultiCell(30, 4,number_format(0, 2, ',', '.'), '0', 'R', 0);
        $x		=381-$a3;
        $fpdf	->SetXY($x,$y);
        $fpdf	->MultiCell(14, 4,number_format(0, 2, ',', '.'), '0', 'R', 0);
        $x		=396-$a3;
        $fpdf	->SetXY($x,$y);
        $fpdf	->MultiCell(30, 4,number_format(0, 2, ',', '.'), '0', 'R', 0);
        $x		=427-$a3;
        $fpdf	->SetXY($x,$y);
        $fpdf	->MultiCell(30, 4,number_format($regv->iva, 2, ',', '.'), '0', 'R', 0);
        $ivacontribuyente			= $ivacontribuyente+$regv->iva;
		$ventasinivacontribuyente 	= $ventasinivacontribuyente+$regv->total_comprasiniva;
		$totalventasexento			= $totalventasexento+$regv->exento;
		
	   
		$x		=458-$a3;
		$fpdf	->SetXY($x,$y);
		$fpdf	->MultiCell(15, 4,number_format(0, 2, ',', '.'), '0', 'R', 0);
		$x		=474-$a3;
		$fpdf	->SetXY($x,$y);
		$fpdf	->MultiCell(15, 4,number_format(0, 2, ',', '.'), '0', 'R', 0);
		$x		=490-$a3;
		$fpdf	->SetXY($x,$y);
		$fpdf	->MultiCell(15, 4,number_format(0, 2, ',', '.'), '0', 'R', 0);
		$x		=506-$a3;
		$fpdf	->SetXY($x,$y);
		$fpdf	->MultiCell(24, 4,utf8_decode(""), '0', 'L', 0);
		$x		=531-$a3;
		$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,$totalventasexento);
		$nro 	= 1;
		cabecera($fpdf,$empresa,$direccion,$telefono,$rif);
		$x		= 2;
		$y		=$fpdf->GetY()+4;
	}
	
}	
totales($fpdf,$totalventas,$ventasinivacontribuyente,$ivacontribuyente,$ventasinivanocontribuyente,$ivanocontribuyente,$totalventasexento);





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