<?php
/*-------------------------
Punto de Ventas
---------------------------*/
include 'is_logged.php'; //Archivo verifica que el usario que intenta acceder a la URL esta logueado
$session_id = session_id();
$id_factura = $_SESSION['id_factura'];
if (isset($_POST['id'])) {
    $id = $_POST['id'];
}
if (isset($_POST['cantidad'])) {
    $cantidad = $_POST['cantidad'];
}
if (isset($_POST['id_cliente'])) {
    $id_cliente = $_POST['id_cliente'];
}
if (isset($_REQUEST['id_comp'])) {
    $id_comp = $_REQUEST['id_comp'];
}
if (isset($_POST['precio'])) {
    $precio = $_POST['precio'];
} else {
    $precio = 0;
}

/* Connect To Database*/
require_once "../db.php";
require_once "../php_conexion.php";
//Archivo de funciones PHP
require_once "../funciones.php";

$id_empresa = $_SESSION['sucursal_users'];

if (!empty($id) and !empty($cantidad)) {
    $id_producto    = get_row('productos', 'id_producto', 'codigo_producto', $id);
    $numero_factura = get_row('facturas_orden', 'numero_factura', 'id_factura', $id_factura);
    $precio_venta   = get_row('productos', 'valor1_producto', 'id_producto', $id_producto);
    $importe        = $cantidad * $precio_venta;

    // consulta para comparar el stock con la cantidad resibida
    $query = mysqli_query($conexion, "select stock_producto, inv_producto, descPromo from productos where id_producto = '$id_producto'");
    $rw    = mysqli_fetch_array($query);
    $stock = $rw['stock_producto'];
    $inv   = $rw['inv_producto'];
    $desc  = $rw['descPromo'];

    $subtotal = $cantidad * $precio_venta;

    //Comprobamos si ya agregamos un producto a la tabla tmp_compra
    $comprobar = mysqli_query($conexion, "select * from detalle_fact_orden where id_producto='" . $id_producto . "' and id_factura='" . $id_factura . "'");

    if ($precio == 0) {

        if ($row = mysqli_fetch_array($comprobar)) {
            $cant = $row['cantidad'] + $cantidad;
            $prec_vta = $row['precio_venta'];
            // condicion si el stock e menor que la cantidad requerida
            if ($cant > $stock and $inv == 0) {
                echo "<script>swal('LA CANTIDAD SUPERA AL STOCK!', 'INTENTAR NUEVAMENTE', 'error')
                                    $('#resultados').load('../ajax/editar_tmp_orden.php');
                </script>";
            } else {

                $sql          = "UPDATE detalle_fact_orden SET cantidad='" . $cant . "', desc_venta='" . $desc . "', precio_venta='" . $prec_vta . "' WHERE id_producto='" . $id_producto . "' and id_factura='" . $id_factura . "'";
                $query_update = mysqli_query($conexion, $sql);
                echo "<script> $.Notification.notify('warning','bottom center','NOTIFICACIÓN', 'PRODUCTO AGREGADO A LA DATA')</script>";
            }
            // fin codicion cantaidad

        } else {
            // condicion si el stock e menor que la cantidad requerida
            if ($cantidad > $stock and $inv == 0) {
                echo "<script>swal('LA CANTIDAD SUPERA AL STOCK!', 'INTENTAR NUEVAMENTE', 'error')
                        $('#resultados').load('../ajax/editar_tmp_orden.php');
                </script>";
            } else {
                $insert_tmp = mysqli_query($conexion, "INSERT INTO detalle_fact_orden (id_factura,numero_factura, id_producto,cantidad,precio_venta,descripcion) VALUES ('$id_factura','$numero_factura','$id_producto','$cantidad','$precio_venta','')");
                echo "<script> $.Notification.notify('warning','bottom center','NOTIFICACIÓN', 'PRODUCTO AGREGADO A LA DATA')</script>";
            }
            // fin codicion cantaidad
        }
    } else {
        $descripcion = $id;
        $desc  = 0;
        $insert_tmp = mysqli_query($conexion, "INSERT INTO detalle_fact_orden (id_factura,numero_factura, id_producto,cantidad,precio_venta,descripcion) VALUES ('$id_factura','$numero_factura','99999','$cantidad','$precio','$descripcion')");
    }
}
if (isset($_GET['id'])) //codigo elimina un elemento del array
{
    $id_detalle = intval($_GET['id']);
    $id_prod    = get_row('detalle_fact_orden', 'id_producto', 'id_detalle', $id_detalle);
    $quantity   = get_row('detalle_fact_orden', 'cantidad', 'id_detalle', $id_detalle);
    //$update     = agregar_stock_productos($id_prod, $quantity); //Vuelve agregar al inventario
    //$update_    = agregar_stock($id_prod, $quantity, $id_empresa); //Vuelve agregar al inventario
    $delete     = mysqli_query($conexion, "DELETE FROM detalle_fact_orden WHERE id_detalle='" . $id_detalle . "'");
}
$simbolo_moneda = get_row('perfil', 'moneda', 'id_perfil', 1);



?>
<div class="table-responsive">
    <table class="table table-sm">
        <thead class="thead-default">
            <tr>
                <th class='text-center'>Cod</th>
                <th class='text-center'>Cant.</th>
                <th class='text-center'>Producto.</th>
                <th class='text-center'>Precio <?php echo $simbolo_moneda; ?></th>
                <th class='text-center'>Desc %</th>
                <th class='text-right'>Total</th>
                <th></th>
            </tr>
        </thead>
        <tbody>
            <?php


            //evaluó si el cliente aplica para retención o exento.
            $sql_cliente    = mysqli_query($conexion, "select * from clientes where id_cliente='" . $id_cliente . "'");
            $count          = mysqli_num_rows($sql_cliente);

            if ($count == 1) {
                $rw_cliente       = mysqli_fetch_array($sql_cliente);
                $aplica_reten      = $rw_cliente['ret_cliente'];
                $aplica_exe        = $rw_cliente['exe_cliente'];
            }

            if ($id_comp != 'C') {
                $aplica_reten = 0;
            }

            $impuesto       = get_row('perfil', 'impuesto', 'id_perfil', 1);
            $nom_impuesto   = get_row('perfil', 'nom_impuesto', 'id_perfil', 1);
            $sumador_total  = 0;
            $total_iva      = 0;
            $total_impuesto = 0;

            $sql            = mysqli_query($conexion, "select * from detalle_fact_orden where detalle_fact_orden.id_factura='$id_factura'");

            while ($row = mysqli_fetch_array($sql)) {
                $id_detalle      = $row["id_detalle"];
                $id_producto     = $row["id_producto"];
                $codigo_producto = $row['id_producto'];
                $cantidad        = $row['cantidad'];
                $desc_tmp        = $row['desc_venta'];
                $nombre_producto = $row['descripcion'];
                $precio_venta    = $row['precio_venta'];

                if ($nombre_producto == '') {
                    $nombre_producto = get_row('productos', 'nombre_producto', 'id_producto', $id_producto);
                    $codigo_producto = get_row('productos', 'codigo_producto', 'id_producto', $id_producto);
                }

                $precio_total   = $precio_venta * $cantidad;

                if ($id_comp == 'C') {
                    $aux = ($precio_total) / ($impuesto / 100 + 1);
                    $pv += $aux;
                    $precio_total_f = number_format($aux, 2); //Precio total formateado
                } else {
                    $aux = $precio_total;
                    $pv += $aux;
                    $precio_total_f = number_format($aux, 2); //Precio total formateado
                }

                $sumador_total += $precio_total_f; //Sumador
                $sumador_total_ += $precio_total; //Sumador

                $subtotal = number_format($sumador_total, 2, '.', '');

                $total_iva = iva($precio_total);

                if ($aplica_exe == '1') {
                    $exento = $subtotal;
                    $total_iva = 0;
                } else {
                    $exento = 0;
                }

                $total_impuesto += $total_iva;
                $total_exento += $exento;

            ?>
                <tr>
                    <td class='text-center'><?php echo $codigo_producto; ?></td>
                    <td class='text-center'><?php echo $cantidad; ?></td>
                    <td><?php echo $nombre_producto; ?></td>
                    <td class='text-center'>
                        <div class="input-group">
                            <select id="<?php echo $id_detalle; ?>" class="form-control employee_id">
                                <option selected disabled value="<?php echo $precio_venta; ?>"><?php echo number_format($precio_venta, 2); ?></option>
                                <?php
                                $sql1 = mysqli_query($conexion, "select * from productos where id_producto='" . $id_producto . "'");
                                while ($rw1 = mysqli_fetch_array($sql1)) {
                                ?>
                                    <option selected disabled value="<?php echo $precio_venta ?>"><?php echo number_format($precio_venta, 2); ?></option>
                                    <option value="<?php echo $rw1['valor1_producto'] ?>">PV <?php echo number_format($rw1['valor1_producto'], 2); ?></option>
                                    <option value="<?php echo $rw1['valor2_producto'] ?>">PM <?php echo number_format($rw1['valor2_producto'], 2); ?></option>
                                    <option value="<?php echo $rw1['valor3_producto'] ?>">PE <?php echo number_format($rw1['valor3_producto'], 2); ?></option>
                                <?php
                                }
                                ?>
                            </select>
                        </div>
                    </td>
                    <td align="right" width="15%">
                        <input type="text" class="form-control txt_desc" style="text-align:center" value="<?php echo $desc_tmp; ?>" id="<?php echo $id_detalle; ?>">
                    </td>
                    <td class='text-right'><?php echo $simbolo_moneda . ' ' . number_format($precio_total, 2); ?></td>
                    <td class='text-center'>
                        <a href="#" class='btn btn-danger btn-sm waves-effect waves-light' onclick="eliminar('<?php echo $id_detalle ?>')"><i class="fa fa-remove"></i>
                        </a>
                    </td>
                </tr>
            <?php
            }

            $reten         = get_row('perfil', 'retencion', 'id_perfil', 1);
            $monto_reten   = get_row('perfil', 'monto_retencion', 'id_perfil', 1);

            $pv = number_format($pv, 2, '.', '');
            $total_impuesto = number_format($total_impuesto, 2, '.', '');

            //si aplica retencion.
            $subtotal = $pv;
            if (($aplica_reten == '1') and ($subtotal >= $monto_reten)) {
                $total_retencion = $subtotal * ($reten / 100);
            } else {
                $total_retencion = 0;
            }

            //si aplica iva, sino es cliente exento.
            if ($aplica_exe != '1') {
                $subtotal = $subtotal / ($impuesto / 100 + 1);
            } else {
                $pv = $sumador_total_;
                $total_exento = $pv;
                $total_retencion = 0;
            }

            //si es comprobante, sino otro.
            if ($id_comp == 'C') {
                $total_factura = $pv + $total_impuesto + $total_retencion;
            } else {
                $total_factura = $pv;
            }

            if ($id_comp != 'C') {
                $total_impuesto = 0;
            }

            $update  = mysqli_query($conexion, "update facturas_orden set monto_factura='$total_factura' where id_factura='$id_factura'");

            $date_added = date("Y-m-d H:i:s");
            $id_vendedor = intval($_SESSION['id_users']);
            $insert_ = mysqli_query($conexion, "INSERT INTO facturas_orden_historico VALUES (NULL,'$numero_factura','$date_added','$id_vendedor','$total_factura')");

            ?>
            <tr>
                <td class='text-right' colspan=5>SUBTOTAL</td>
                <td class='text-right'><b><?php echo $simbolo_moneda . ' ' . number_format($pv, 2); ?></b></td>
                <td></td>
            </tr>
            <tr>
                <td class='text-right' colspan=5><?php echo $nom_impuesto; ?> (<?php echo $impuesto; ?>)% </td>
                <td class='text-right'><?php echo $simbolo_moneda . ' ' . number_format($total_impuesto, 2); ?></td>
                <td></td>
            </tr>
            <tr>
                <td class='text-right' colspan=5><?php echo "RETENCIÓN"; ?> (<?php echo $reten; ?>)% </td>
                <td class='text-right'><?php echo $simbolo_moneda . ' ' . number_format($total_retencion, 2); ?>
                </td>
                <td></td>
            </tr>
            <tr>
                <td class='text-right' colspan=5><?php echo "EXENTA"; ?><?php echo ""; ?> </td>
                <td class='text-right'><?php echo $simbolo_moneda . ' ' . number_format($total_exento, 2); ?>
                </td>
                <td></td>
            </tr>
            <tr>
                <td style="font-size: 14pt;" class='text-right' colspan=5><b>TOTAL <?php echo $simbolo_moneda; ?></b></td>
                <td style="font-size: 16pt;" class='text-right'><span class="label label-danger"><b><?php echo number_format($total_factura, 2); ?></b></span></td>
                <td></td>
            </tr>
        </tbody>
    </table>
</div>
<script>
    $(document).ready(function() {
        $('.txt_desc').off('blur');
        $('.txt_desc').on('blur', function(event) {
            var keycode = (event.keyCode ? event.keyCode : event.which);
            // if(keycode == '13'){
            id_detalle = $(this).attr("id");
            desc = $(this).val();
            //Inicia validacion
            if (isNaN(desc)) {
                $.Notification.notify('error', 'bottom center', 'ERROR', 'DIGITAR UN DESCUENTO VALIDO')
                $(this).focus();
                return false;
            }
            //Fin validacion
            $.ajax({
                type: "POST",
                url: "../ajax/editar_desc_orden2.php",
                data: "id_detalle=" + id_detalle + "&desc=" + desc,
                success: function(datos) {
                    $("#resultados").load("../ajax/editar_tmp_orden.php");
                    $.Notification.notify('success', 'bottom center', 'EXITO!', 'DESCUENTO ACTUALIZADO CORRECTAMENTE')
                }
            });
            // }
        });

        $(".employee_id").on("change", function(event) {
            id_detalle = $(this).attr("id");
            precio = $(this).val();
            $.ajax({
                type: "POST",
                url: "../ajax/editar_precio_orden2.php",
                data: "id_detalle=" + id_detalle + "&precio=" + precio,
                success: function(datos) {
                    $("#resultados").load("../ajax/editar_tmp_orden.php");
                    $.Notification.notify('success', 'bottom center', 'EXITO!', 'PRECIO ACTUALIZADO CORRECTAMENTE')
                }
            });
        });

    });
</script>