<?php

include '../../../script/conexion.php';

require_once('../../../vendor/php-excel-reader/excel_reader2.php');
require_once('../../../vendor/SpreadsheetReader.php');

$id_venta = $_POST['id_venta'];

$sqlpro = "SELECT * FROM alm_venta WHERE id='$id_venta'";
$querypro = $conn->query($sqlpro);
$rowpro = $querypro->fetch_assoc();

$estado = $rowpro['estado'];

if (isset($_POST["import"])) {

    $allowedFileType = ['application/vnd.ms-excel', 'text/xls', 'text/xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'];

    if (in_array($_FILES["file"]["type"], $allowedFileType)) {

        $targetPath = '../subidas/' . $_FILES['file']['name'];
        move_uploaded_file($_FILES['file']['tmp_name'], $targetPath);

        $Reader = new SpreadsheetReader($targetPath);

        $sheetCount = count($Reader->sheets());

        for ($i = 0; $i < $sheetCount; $i++) {

            $Reader->ChangeSheet($i);

            foreach ($Reader as $Row) {



                $referencia = "";
                if (isset($Row[0])) {
                    $referencia = mysqli_real_escape_string($conn, $Row[0]);
                }

                $talla = "";
                if (isset($Row[1])) {
                    $talla = mysqli_real_escape_string($conn, $Row[1]);
                }

                $cantidad = "";
                if (isset($Row[2])) {
                    $cantidad = mysqli_real_escape_string($conn, $Row[2]);
                }

                $precio_unidad = "";
                if (isset($Row[3])) {
                    $precio_unidad = mysqli_real_escape_string($conn, $Row[3]);
                }


                $numero = "$precio_unidad";
                $numero_sin_coma = str_replace(",", "", $numero);

                $total = $cantidad * $numero_sin_coma;

//****************SUMAR INVENTARIO*****************************
//
//DESPACHO RECIBIDO
                $sqlclass_2 = "SELECT SUM(dd.cantidad) as cantidad_despacho 
                    FROM despacho d, despacho_detalle dd  
                    WHERE d.id=dd.id_despacho AND 
                    dd.estado='Recibido' AND dd.referencia_producto='$referencia' AND "
                        . "dd.talla='$talla' AND d.nombre_tercero='INNOVASUELAS ALMACEN'";
                $queryclass_2 = $conn->query($sqlclass_2);
                $rowclass_2 = $queryclass_2->fetch_assoc();

                $despacho_fabrica1 = $rowclass_2['cantidad_despacho'];

//NOVEDAD ENTRADA
                $sqlclass_3 = "SELECT SUM(cantidad) as entrada FROM alm_novedad WHERE referencia_producto='$referencia' AND talla='$talla' AND movimiento='Entrada'";
                $queryclass_3 = $conn->query($sqlclass_3);
                $rowclass_3 = $queryclass_3->fetch_assoc();

                $novedad_entrada1 = $rowclass_3['entrada'];

//COMPRA
                $sqlclass_1 = "SELECT SUM(cantidad) as compra FROM alm_compra_detalle WHERE referencia_producto='$referencia' AND talla='$talla' AND estado!='Cancelado'";
                $queryclass_1 = $conn->query($sqlclass_1);
                $rowclass_1 = $queryclass_1->fetch_assoc();

                $compras1 = $rowclass_1['compra'];

//****************RESTAR INVENTARIO*****************************
//NOVEDAD SALIDA
                $sqlclass_4 = "SELECT SUM(cantidad) as salida FROM alm_novedad WHERE referencia_producto='$referencia' AND talla='$talla' AND movimiento='Salida'";
                $queryclass_4 = $conn->query($sqlclass_4);
                $rowclass_4 = $queryclass_4->fetch_assoc();
                $novedad_salida1 = $rowclass_4['salida'];

//VENTAS
                $sqlclass_5 = "SELECT SUM(cantidad) as ventas FROM alm_venta_detalle WHERE referencia_producto='$referencia' AND talla='$talla' AND "
                        . "(estado='Proceso' OR estado='Finalizado')";
                $queryclass_5 = $conn->query($sqlclass_5);
                $rowclass_5 = $queryclass_5->fetch_assoc();
                $ventas1 = $rowclass_5['ventas'];

//****************DISPONIBLE*****************************
//
//DISPONIBLE
                $disponible1 = ($despacho_fabrica1 + $novedad_entrada1 + $compras1) - ($novedad_salida1 + $ventas1);

                if ($disponible1 >= $cantidad) {
                    if (!empty($referencia) || !empty($talla) || !empty($cantidad) || !empty($precio_unidad)) {
                        $query = "insert into alm_venta_detalle(id, id_venta, referencia_producto, talla, cantidad, precio_unidad, total, estado) values"
                                . "(NULL, '$id_venta','$referencia', '$talla', '$cantidad', '$numero_sin_coma', '$total', '$estado' )";
                        if ($conn->query($query) === TRUE) {

                            $class_referencia = $referencia;
                            $class_talla = $talla;

                            include '../../../clases/class-referencia.php';

                            $class_nombre_tercero_cierre = $rowpro['nombre_tercero'];
                            $class_referencia_cierre = $referencia;
                            $class_talla_cierre = $talla;
                        } else {
                            echo
                            '<script language = javascript>
                        alert("Puede que algunas de las referencias no se hayan subido correctamente")
                        self.location = "../venta-detalle.php?id_venta=' . $id_venta . '"
                </script>';
                        }
                    }
                } else {

                    echo
                    '<script language = javascript>
                        alert("Salida forzada, no hay suficiente stock de la referencia ' . $referencia . ' en talla ' . $talla . '")
                        self.location = "../venta-detalle.php?id_venta=' . $id_venta . '"
                </script>';
                }
            }
        }

        echo
        '<script language = javascript>
                        self.location = "../venta-detalle.php?id_venta=' . $id_venta . '"
                </script>';
    } else {
        $type = "error";
        $message = "El archivo enviado es invalido. Por favor vuelva a intentarlo";
    }
}
?>
