<?php

    require_once(__DIR__.'/../config/DB/Database.php');

    class factura_detalle
    {
        private $con;

        public $id_detalle;
        public $numero_factura;
        public $id_producto;
        public $cantidad;
        public $precio_venta;
        public $costocliente;
        public $precio_venta_producto;
        public $id_producto_bonifica;

        public $codigo_producto;
        public $nombre_producto;
        
        public $precio_venta_f;//Formateo variables
        public $precio_venta_porcentaje;
        public $precio_venta_r;//Reemplazo las comas
        public $costototal;

        public function __construct()
        {

            try{
                $this->con = Database::GetConnection();
            }catch(Exception $err){
                print_r($err->getMessage()); die();
            }
        }


        private function GetObjectData($results)
        {
            $array = [];

            while($row = $results->fetch_assoc()) {
                $factura = new factura_detalle();
                $factura->con->close();
                unset($factura->con);
                $factura->id_detalle = $row['id_detalle'];
                $factura->numero_factura = $row['numero_factura'];
                $factura->id_producto = $row['id_producto'];
                $factura->cantidad = $row['cantidad'];
                $factura->precio_venta = $row['precio_venta'];
                $factura->costocliente = $row['costocliente'];
                $factura->precio_venta_producto = $row['precio_venta_producto'];
                $factura->id_producto_bonifica = $row['id_producto_bonifica'];
                $factura->codigo_producto = $row['codigo_producto'];
                $factura->nombre_producto = $row['nombre_producto'];
                $factura->id_producto = $row['id_producto_bonifica'];
                $factura->precio_venta_f = $factura->precio_venta;
                $factura->precio_venta_porcentaje = $factura->precio_venta_f;
                $factura->precio_venta_r = str_replace(",","",$factura->precio_venta_porcentaje);
                $factura->costototal = ($factura->cantidad * $factura->costocliente);
                $factura->nombre_producto_bonifica = $row['nombre_producto_bonifica'];
                $factura->precio_producto_bonifica = $row['precio_producto_bonifica'];

                array_push($array,$factura);
            }

            return $array;
        }

        public function ObtenerFacturaDetalles($id)
        {
           /* $sql = 'SELECT * FROM products p, detalle_factura d, facturas f ';
            $sql .= 'WHERE p.id_producto = d.id_producto ';
            $sql .= 'and d.numero_factura = f.numero_factura and f.id_factura = ? ';*/
            
    $sql = 'SELECT
    p1.id_producto,
    p1.codigo_producto,
    p1.nombre_producto,
    p1.status_producto,
	p1.date_added,
    p1.precio_producto,
    p1.costo_producto,
    detalle_factura.id_detalle,
    detalle_factura.numero_factura,
    detalle_factura.id_producto,
	detalle_factura.cantidad,
    detalle_factura.precio_venta,
	detalle_factura.costocliente,
    detalle_factura.precio_venta_producto,
    detalle_factura.id_producto_bonifica,
    p2.nombre_producto as nombre_producto_bonifica,
    p2.precio_producto as precio_producto_bonifica,
    facturas.id_factura,
    facturas.numero_factura,
    facturas.fecha_factura,
	facturas.id_cliente,
	facturas.id_mayorista,
    facturas.condiciones,
    facturas.total_venta,
    facturas.estado_factura,
    facturas.observaciones,
    facturas.comentarios,
    facturas.condiciones2,
    facturas.observaciones2,
    facturas.zona,
    facturas.id_user
    
FROM
    products
INNER JOIN
    detalle_factura ON products.id_producto = detalle_factura.id_producto
INNER JOIN
    facturas ON detalle_factura.numero_factura = facturas.numero_factura
INNER JOIN
    products p1 ON detalle_factura.id_producto = p1.id_producto
INNER JOIN
    products p2 ON detalle_factura.id_producto_bonifica = p2.id_producto
    WHERE
    facturas.id_factura = ?';
            
/*$sql .= 'WHERE facturas.id_factura = ? ';
            //$sql .= 'and d.numero_factura = f.numero_factura and f.id_factura = ? ';*/

            $st = $this->con->prepare($sql);

            $st->bind_param("i", $id);

            $st->execute();

            $result = $st->get_result();
            
            $factura = $this->GetObjectData($result);

            return $factura;
        }


    }