<?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,'.','');
}

// Se define el tamaño de hoja y margenes
$fpdf = new pdf('P','cm','ticket',true);
$fpdf->AddPage('portrait', 'ticket');
$fpdf->SetMargins(5,0);

// Datos de cliente y factura
//obtenemos los datos de la cabecera de la venta actual
// incluimos la clase venta
require_once "../modelos/Venta.php";

$venta = 	new Venta();

//en el objeto $rspta obtenemos los valores devueltos del metodo ventacabecera del modelo
$rspta 	= 	$venta->ventacabecera($_GET["id"]);

$regv	=	$rspta->fetch_object();

//establecemos los datos de la empresa
$empresa 	= "BODEGART";
$documento 	= "RIF-6335547-7";
$direccionc	= "Las Mercedes";
$telefono 	= "02122548874";
$email 		= "bodegart@gmail.com";


$cliente    	='Cliente: '.$regv->cliente;
$direccion		=$regv->direccion;
$telefono   	=$regv->telefono;
$rif        	=$regv->num_documento;
$tdoc			=$regv->tipo_documento;
$cuidad     	="Caracas";
$longitud		=strlen($regv->serie_comprobante);
$serie			='0000';
$prefac			= substr($serie, 1, 4-$longitud);
$nrofactura		='Factura No: '.$prefac.$regv->serie_comprobante;
$Fecha 			=$regv->fecha;
$Fecha			=formatoFecha($Fecha);
if ($tdoc=="RIF"){
	$rif = "J-".$rif;
}else{
	$rif = "CI-".$rif;
}


//$fpdf	->Image('fondofactura.jpg' , 1 ,8, 278 , 210,'JPG', '');
$fpdf	->SetFillColor(255,255,255);
$fpdf	->SetLineWidth(1);
$fpdf	->SetDrawColor(177,34,78);
$fpdf	->SetTextColor(0,0,0);
//*********** Datos de la Empresa */
$y		=0.5;
$x		=1.5;
$fpdf	->SetXY($x,$y);
$fpdf	->SetFont('Arial', 'B', 6);
$fpdf	->Cell(2, 0, $empresa, '0', 0, 'C', 1);
$y		=0.8;
$x		=1.5;
$fpdf	->SetXY($x,$y);
$fpdf	->SetFont('Arial', '', 6);
$fpdf	->Cell(2, 0, $documento, '0', 0, 'C', 1);
$y		=1.1;
$x		=0.5;
$fpdf	->SetXY($x,$y);
$fpdf	->SetFont('Arial', '', 6);
$fpdf	->Cell(2, 0, $direccionc .'-'.$telefono, '0', 0, 'L', 1);

//*********** Datos de la Cliente */
$y		=1.5;
$x		=1.5;
$fpdf	->SetXY($x,$y);
$fpdf	->SetFont('Arial', 'B', 6);
$fpdf	->Cell(2, 0, $nrofactura, '0', 0, 'C', 1);
$y		=1.8;
$x		=0.5;
$fpdf	->SetXY($x,$y);
$fpdf	->SetFont('Arial', '', 6);
$fpdf	->Cell(2, 0, $cliente, '0', 0, 'L', 1);
$y		=2.1;
$x		=0.5;
$fpdf	->SetXY($x,$y);
$fpdf	->Cell(2, 0, $rif, '0', 0, 'L', 1);

//******  Encabezado */
$y		=2.5;
$x		=0.5;
$fpdf	->SetXY($x,$y);
$fpdf	->SetFont('Arial', 'B', 6);
$fpdf	->Cell(2, 0, "CANT.", '0', 0, 'L', 1);
$x		=1.5;
$fpdf	->SetXY($x,$y);
$fpdf	->Cell(2, 0, 'DESCRIPCION', '0', 0, 'L', 1);
$x		=3.5;
$fpdf	->SetXY($x,$y);
$fpdf	->Cell(2, 0, 'PRECIO', '0', 0, 'L', 1);
$x		=0.5;
$y		=$y+0.1;
$fpdf	->SetXY($x,$y);
$fpdf	->Cell(4.5, 0, '-----------------------------------------------------------------', '0', 0, 'C', 1);

//****** Detalle de la Factura */
$rsptad 	= 	$venta->ventadetalles($_GET["id"]);
$cantidad	=	0;
$exento		=	0;
$iva		=	0;
$totalsiniva=	0;
$total		=	0;
$y			=	2.8;
$fpdf		->SetFont('Arial', '', 6);
while ($regd = $rsptad->fetch_object()) {
	$x		=0.5;
	$y1		=$y;
	if ($regd->exento=='si'){
		$exento 	= 	$exento+$regd->subtotal;
		$totalsiniva=	$totalsiniva+$exento;
	}else{
		$iva		=	$iva+($regd->subtotal-($regd->subtotal/1.16));
		$totalsiniva=	$totalsiniva+$regd->subtotal/1.16;
	} 
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(2, 0, number_format($regd->cantidad,0,',','.'), '0', 0, 'L', 1);
	$x		=1.4;
	$y		=$y-0.1;
	$fpdf	->SetXY($x,$y);
	$fpdf	->MultiCell(2.1, 0.2, $regd->articulo, '0', 'L', 1);
	$x		=3;
	$y2		=$fpdf->GetY();
	$fpdf	->SetXY($x,$y1);
	$fpdf	->Cell(2, 0, number_format($regd->subtotal,2,',','.'), '0', 0, 'R', 1);
	$cantidad+=$regd->cantidad;
	$y			=$y2+0.3;
} 
$x		=0.5;
$y		=$y;
$fpdf	->SetXY($x,$y);
$fpdf	->Cell(4.5, 0, '-----------------------------------------------------------------', '0', 0, 'C', 1);
$total 	= $totalsiniva + $iva;
$y		=$y+0.2;
$x		=0.5;
$fpdf	->SetXY($x,$y);
$fpdf	->SetFont('Arial', 'B', 6);
$fpdf	->Cell(3, 0, "SUB-TOTAL:", '0', 0, 'L', 1);
$x		=3;
$fpdf	->SetXY($x,$y);
$fpdf	->Cell(2, 0, number_format($totalsiniva,2,',','.'), '0', 0, 'R', 1);
$y		=$y+0.2;
$x		=0.5;
$fpdf	->SetXY($x,$y);
$fpdf	->SetFont('Arial', '', 5.5);
$fpdf	->Cell(3, 0, "IVA:", '0', 0, 'L', 1);
$x		=3;
$fpdf	->SetXY($x,$y);
$fpdf	->Cell(2, 0, number_format($iva,2,',','.'), '0', 0, 'R', 1);
$y		=$y+0.2;
$x		=0.5;
$fpdf	->SetXY($x,$y);
$fpdf	->SetFont('Arial', '', 5.5);
$fpdf	->Cell(3, 0, "EXENTO:", '0', 0, 'L', 1);
$x		=3;
$fpdf	->SetXY($x,$y);
$fpdf	->Cell(2, 0, number_format($exento,2,',','.'), '0', 0, 'R', 1);
$y		=$y+0.2;
$x		=0.5;
$fpdf	->SetXY($x,$y);
$fpdf	->SetFont('Arial', 'B', 6);
$fpdf	->Cell(3, 0, "TOTAL:", '0', 0, 'L', 1);
$x		=3;
$fpdf	->SetXY($x,$y);
$fpdf	->Cell(2, 0, number_format($total,2,',','.'), '0', 0, 'R', 1);





$fpdf->OutPut('Factura_'.$nrofactura,'I');