<?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','mm','letter',true);
$fpdf->AddPage('landscape', 'letter');
$fpdf->SetMargins(10,30,20,20);

// Datos de cliente y factura
//obtenemos los datos de la cabecera de la venta actual
require_once "../modelos/Ventan.php";
$ventan		= new Ventan();
$rsptav		=$ventan->ventacabecera($_GET["id"]);
//recorremos todos los valores que obtengamos
$regv		=$rsptav->fetch_object();

$cliente    		=$regv->cliente;
$direccion			=$regv->direccion;
$telefono   		=$regv->telefono;
$rif        		=$regv->num_documento;
$licencia_licor	=$regv->licencia_licor;
$licencia_licord=$regv->licencia_licord;
$tdoc						=$regv->tipo_documento;
$cliented   		=$regv->cliented;
$direcciond			=$regv->direcciond;
$telefonod  		=$regv->telefonod;
$rifd       		=$regv->num_documentod;
$tdocd					=$regv->tipo_documentod;
$vendedor				=$regv->vendedor;
$conductor			=$regv->nombretransporte;
$vehiculo				=$regv->vehiculo;
$placa					=$regv->placa;
$resenaendollar	=$regv->resenaendollar;
$tasa_dollar		=$regv->tasa_dollar*1;
$porprecio			=20;
$cuidad     		="Caracas";
$longitud				=strlen($regv->num_comprobante);
$serie					='0000';
$prefac					= substr($serie, 1, 4-$longitud);
$nrofactura			='L'.$prefac.$regv->num_comprobante;
$Fecha 					=$regv->fecha;
$Fecha					=Ymd_dmY($Fecha);
if ($tdoc=="RIF"){
	$rif = "J-".$rif;
}else{
	$rif = "CI-".$rif;
}
if ($tdocd=="RIF"){
	$rifd = "J-".$rifd;
}else{
	$rifd = "CI-".$rifd;
}

//$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);
$y		=5;
$x		=200;
$fpdf	->SetXY($x,$y);
$fpdf	->SetFont('Arial', 'B', 10);
$fpdf	->Cell(27, 6, 'FACTURA NO.', '0', 0, 'L', 1);
$fpdf	->MultiCell(28, 6, $nrofactura, '0', 'L', 1);
$y		=$fpdf->GetY()+6;
$yl		=$y;
$x		=100;
$fpdf	->SetXY($x,$y);
$fpdf	->SetFont('Arial', '', 7);
$fpdf	->MultiCell(78, 4, $cliente, '0', 'L', 1);
$y		=$fpdf->GetY()+8;
$x		=90;
$fpdf	->SetXY($x,$y);
$fpdf	->MultiCell(88, 4, utf8_decode($direccion), '0', 'L', 1);
$y		=36;
$x		=140;
$fpdf	->SetXY($x,$y-1);
$fpdf	->MultiCell(35, 4, utf8_decode($telefono), '0', 'L', 1);
$y		=41;
$x		=103;
$fpdf	->SetXY($x,$y-1);
$fpdf	->MultiCell(26, 4, utf8_decode($licencia_licor), '0', 'L', 0);
$y		=41;
$x		=130;
$fpdf	->SetXY($x,$y-1);
$fpdf	->MultiCell(20, 4, utf8_decode($rif), '0', 'L', 1);
//Despacho
$x1		=92;
$x		=99+$x1;
$fpdf	->SetXY($x,$yl);
$fpdf	->SetFont('Arial', '', 7);
$fpdf	->MultiCell(80, 4, $cliented, '0', 'L', 1);
$y		=$fpdf->GetY()+8;
$x		=90+$x1;
$fpdf	->SetXY($x,$y);
$fpdf	->MultiCell(90, 5, utf8_decode($direcciond), '0', 'L', 1);
$y		=35;
$x		=140+$x1;
$fpdf	->SetXY($x,$y-1);
$fpdf	->MultiCell(35, 4, utf8_decode($telefonod), '0', 'L', 1);
$y		=41;
$x		=102+$x1;
$fpdf	->SetXY($x,$y-1);
$fpdf	->MultiCell(26, 4, utf8_decode($licencia_licord), '0', 'L', 0);
$y		=41;
$x		=130+$x1;
$fpdf	->SetXY($x,$y-1);
$fpdf	->MultiCell(20, 4, utf8_decode($rifd), '0', 'L', 1);

// fecha, vendedor y transporte
$y		=51;
$x		=126;
$fpdf	->SetXY($x,$y);
$fpdf	->MultiCell(20, 4, utf8_decode($Fecha), '0', 'L', 1);


$y		=51;
$x		=161;
$fpdf	->SetXY($x,$y);
$fpdf	->MultiCell(40, 4, utf8_decode($conductor), '0', 'L', 1);

$y		=54;
$x		=161;
$fpdf	->SetXY($x,$y);
$fpdf	->MultiCell(20, 4, utf8_decode($placa), '0', 'L', 1);

$y		=54;
$x		=200;
$fpdf	->SetXY($x,$y);
$fpdf	->MultiCell(20, 4, utf8_decode($vendedor), '0', 'L', 1);

// $fpdf	->MultiCell(45, 6, $telefono, '0', 'L', 1);
 $yl		=$fpdf->GetY();
// $x		=151;
// $fpdf	->SetXY($x,$y);
// $fpdf	->Cell(27, 6, $tdoc.':', '0', 0, 'L', 1);
// $fpdf	->MultiCell(28, 6, $rif, '0', 'L', 1);
// $y		=$fpdf->GetY();
// $fpdf	->SetXY($x,$y);
// $fpdf	->Cell(27, 6, 'Cuidad:', '0', 0, 'L', 1);
// $fpdf	->MultiCell(28, 6, $cuidad, '0', 'L', 1);
// $y		=$fpdf->GetY();
// $fpdf	->SetXY($x,$y);
// $fpdf	->Cell(27, 6, 'Fecha:', '0', 0, 'L', 1);
// $fpdf	->MultiCell(28, 6, $Fecha, '0', 'L', 1);
// $y		=$fpdf->GetY();
// $fpdf	->SetXY($x,$y);
// $fpdf	->SetFont('Arial', 'B', 10);
// $fpdf	->Cell(27, 6, 'FACTURA NO.', '0', 0, 'L', 1);
// $fpdf	->MultiCell(28, 6, $nrofactura, '0', 'L', 1);

// Detalle de la factura
// Encabezado
// //Buscamos los detalles de la factura
$rsptad=$ventan->ventadetalles($_GET["id"]);
// 
//articulo, codigo, cajas, unidades, precio_venta, descuento, subtotal, idcategoriadeunidades, 
//nombre, idunidademedidad, nombre, unidadesxcajas
$fpdf	->SetY($y+6);
$fpdf	->SetFont('Arial', '', 7);
$fpdf	->SetFillColor(255,255,255);
$fpdf	->SetLineWidth(0.5);
$fpdf	->SetDrawColor(90,90,90);
$fpdf	->SetTextColor(0,0,0);

$subtotal	=0;
$total		=0;
$iva		=0;
$ivapvp		=0;
$exento		=0;
$totaldollar=0;
$imp 		= 1+(16/100);
$totalG		=0;
$totalGpvp	=0;
$totalapagar=0;
$totalpvp	=0;
$subtotalpvp=0;
$totalart16	=0;
$y			=$fpdf->GetY()+8;
while($regd=$rsptad->fetch_object()){
	$precio 	=	$regd->precio_venta;
	$subtotal	=	($regd->cajas*$precio*(1-$regd->porcentaje))+($regd->impuestoart16*$regd->cajas);
	// solo para plaza
	//$subtotal	=	($regd->cajas*$precio*(1-$regd->porcentaje));
	$total		=	$total+$subtotal;
	//Para Daniel jvg
	//Solo Daniel por el calculo del 20% de pvp
		$ivaper1   	= 	($precio*0.2)*0.16;
		$ivaper1sub	=	($regd->cajas*$ivaper1);

	$subtotalpvp=	($regd->cajas*$regd->preciopvp)-$subtotal;
	$totalpvp	= 	$totalpvp+$subtotalpvp;
	$totalart16	=	$totalart16+($regd->impuestoart16*$regd->cajas);
	if ($regd->exento=='si'){
		$exento 	= 	$exento+$subtotal;
	}else{
		$iva		=	$iva+($subtotal*0.16);
		//$ivapvp		=	$ivapvp+($subtotalpvp*0.16);
		//Solo Daniel por el calculo del 20% de pvp
		$ivapvp		=	$ivapvp+$ivaper1sub;
		$totalG		= 	$totalG + $subtotal;
		$totalGpvp	= 	$totalGpvp + $subtotalpvp;
	}
	$x		=13;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(10, 8, $regd->codigo, '', 0, 'L', 1);
	$x		=22;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(11, 8, $regd->cajas, '', 0, 'C', 1);
	$x		=36.5;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(11, 8, number_format($regd->unidadesxcaja, 2, ',', '.'), '', 0, 'L', 1);
	$x		=48.5;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(11, 8,  number_format($regd->unidades, 2, ',', '.'), '', 0, 'L', 1);
	$x		=60;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(14, 8, number_format($regd->capacidad, 2, ',', '.'), '', 0, 'L', 1);
	$x		=76;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(14, 8, number_format($regd->litro, 2, ',', '.'), '', 0, 'L', 1);
	$x		=91;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(14, 8, $regd->gradoalcohol, '', 0, 'C', 1);
	$x		=107;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(7, 8, $regd->codigotipoarticulo, '', 0, 'C', 1);
	$x		=116;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(64, 8, $regd->articulo, '', 0, 'L', 1);
	$x		=181;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(20, 8, number_format($regd->impuestoart16*$regd->cajas, 2, ',', '.'), '', 0, 'R', 1);
	$x		=202;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(20, 8, number_format($precio, 2, ',', '.'), '', 0, 'R', 1);
	$x		=223;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(11, 8, $regd->porcentaje, '', 0, 'R', 1);
	$x		=235;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(9, 8, '', '', 0, 'R', 1);
	$x		=245;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(28, 8, number_format($subtotal, 2, ',', '.'), '', 0, 'R', 1);
	$y		= $y + 5;
	$fpdf	->SetY($y);
 }
//Solo para plaza
//$totalapagar	=	$subtotal + $iva + $ivapvp +$totalart16;
//$totalapagar	=	$subtotal + $iva + $ivapvp;
$totalapagar	=	$total + $iva + $ivapvp +$totalart16;;
$x1				=132;
$a0				=7;
$a1				=48;
$a2				=66;
$a3				=101;


// Sub-total, impuesto y total
//Sub-total
$y1			=157;
$fpdf		->SetFont('Arial', 'B', 10);
$y			=$y1;
$x			=$x1+$a0;
$fpdf	->SetXY($x,$y);
$fpdf	->Cell(94, 6, 'SUB-TOTAL', '', 0, 'L', 1);
$x			=$x1+$a3;
$fpdf	->SetXY($x,$y);
$fpdf	->Cell(40, 6, number_format($total, 2, ',', '.'), '', 0, 'R', 1);

// Cambio la letra
$fpdf		->SetFont('Arial', '', 10);

// Iva 16% 
$y			=$y1+6;
$x			=$x1+$a0;
$fpdf	->SetXY($x,$y);
$fpdf	->Cell(45, 6, 'IVA 16%', '', 0, 'L', 1);
$x			=$x1+$a1;
$fpdf	->SetXY($x,$y);
$fpdf	->Cell(20, 6, 'Sobre Bs:', '', 0, 'L', 1);
$x			=$x1+$a2;
$fpdf	->SetXY($x,$y);
$fpdf	->Cell(35,6, number_format($totalG, 2, ',', '.'), '', 0, 'R', 1);
$x			=$x1+$a3;
$fpdf	->SetXY($x,$y);
$fpdf	->Cell(40, 6, number_format($iva, 2, ',', '.'), '', 0, 'R', 1);

// //IVA Percepción
$y			=$y1+11;
$x			=$x1+$a0;
$fpdf	->SetXY($x,$y);
$fpdf	->Cell(45, 6, utf8_decode('IVA Percepción'), '', 0, 'L', 1);
$x			=$x1+$a1;
$fpdf	->SetXY($x,$y);
$fpdf	->Cell(20, 6, 'Sobre Bs:', '', 0, 'L', 1);
$x			=$x1+$a2;
$fpdf	->SetXY($x,$y);
$fpdf	->Cell(35, 6, number_format($totalGpvp, 2, ',', '.'), '', 0, 'R', 1);
$x			=$x1+$a3;
$fpdf	->SetXY($x,$y);
$fpdf	->Cell(40, 6, number_format($ivapvp, 2, ',', '.'), '', 0, 'R', 1);

//Impuesto Art. 16
$y			=$y1+16;
$x			=$x1+$a0;
$fpdf	->SetXY($x,$y);
$fpdf	->Cell(45, 6, utf8_decode('Total Impuesto Art. 18'), '', 0, 'L', 1);
$x			=$x1+$a1;
$fpdf	->SetXY($x,$y);
$fpdf	->Cell(20, 6, 'Bs:', '', 0, 'L', 1);
$x			=$x1+$a2;
$fpdf	->SetXY($x,$y);
$fpdf	->Cell(35, 6, number_format($totalart16, 3, ',', '.'), '', 0, 'R', 1);

//Rectangulo
$fpdf	->Rect(139,$y1-1,135,24);
$fpdf	->Rect(139,$y1-1,135,7);

// //Total a Pagar
$fpdf		->SetFont('Arial', 'B', 10);
$y			=187;
$x			=$x1+110;
$fpdf	->SetXY($x,$y);
$fpdf	->Cell(30, 6, number_format($totalapagar, 2, ',', '.'), '', 0, 'R', 1);

$rsptat				=	$ventan->ventatasacambio();;
$regt				=	$rsptat->fetch_object();
$tasacambio			= 	$tasa_dollar;
$impuestoart16d		=	$totalart16/$tasacambio;
$totaldollar		= 	$total/$tasacambio;
$ivadollar			= 	$iva/$tasacambio;
$ivapvpdollar		= 	$ivapvp/$tasacambio;
$totalapagardollar	=	$totalapagar/$tasacambio;

//totales en dollar
if ($resenaendollar=='si'){
	$fpdf		->SetFont('Arial', '', 9);
	$x1			=10;
	$a0			=7;
	$a1			=39;
	$a2			=44;
	$a3			=110;
	$y1			=147;
	// Tasa Cambio
	$y			=$y1;
	$x			=$x1+$a0;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(32, 5, 'Tasa de Cambio', '', 0, 'L', 1);
	$x			=$x1+$a1;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(5, 5, '$:', '', 0, 'L', 1);
	$x			=$x1+$a2;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(28, 5, number_format($tasacambio, 2, ',', '.'), '', 0, 'R', 1);
	// articulo 18
	$y			=$y1+5;
	$x			=$x1+$a0;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(32, 5, utf8_decode('Impuesto Art. 18'), '', 0, 'L', 1);
	$x			=$x1+$a1;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(5, 5, '$:', '', 0, 'L', 1);
	$x			=$x1+$a2;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(28, 5, number_format($impuestoart16d, 3, ',', '.'), '', 0, 'R', 1);

	// subtotal
	$y			=$y1+10;
	$x			=$x1+$a0;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(32, 5, utf8_decode('Sub-Total'), '', 0, 'L', 1);
	$x			=$x1+$a1;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(5, 5, '$:', '', 0, 'L', 1);
	$x			=$x1+$a2;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(28, 5, number_format($totaldollar, 2, ',', '.'), '', 0, 'R', 1);

	// Iva
	$y			=$y1+15;
	$x			=$x1+$a0;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(32, 5, utf8_decode('Iva'), '', 0, 'L', 1);
	$x			=$x1+$a1;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(5, 5, '$:', '', 0, 'L', 1);
	$x			=$x1+$a2;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(28, 5, number_format($ivadollar, 2, ',', '.'), '', 0, 'R', 1);

	// IVA Percepción
	$y			=$y1+20;
	$x			=$x1+$a0;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(32, 5, utf8_decode('IVA Percepción'), '', 0, 'L', 1);
	$x			=$x1+$a1;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(5, 5, '$:', '', 0, 'L', 1);
	$x			=$x1+$a2;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(28, 5, number_format($ivapvpdollar, 2, ',', '.'), '', 0, 'R', 1);

	// Total
	$y			=$y1+25;
	$x			=$x1+$a0;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(32, 5, utf8_decode('Total a Pagar'), '', 0, 'L', 1);
	$x			=$x1+$a1;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(5, 5, '$:', '', 0, 'L', 1);
	$x			=$x1+$a2;
	$fpdf	->SetXY($x,$y);
	$fpdf	->Cell(28, 5, number_format($totalapagardollar, 2, ',', '.'), '', 0, 'R', 1);

	//Rectangulo
	$fpdf	->Rect(16,$y1-1,67,32);
	$fpdf	->Rect(16,$y1+25,67,6);
}



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