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

/* Connect To Database*/
require_once "../db.php"; //Contiene las variables de configuracion para conectar a la base de datos
require_once "../php_conexion.php"; //Contiene funcion que conecta a la base de datos
//Archivo de funciones PHP
include "../funciones.php";

$id_empresa = $_SESSION['id_empresa'];

if (!empty($id) and !empty($cantidad) and !empty($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'");
    $rw    = mysqli_fetch_array($query);
    $stock = $rw['stock_producto'];
    $inv   = $rw['inv_producto'];
    $desc  = $rw['descPromo'];

//Cmprobamos si agregamos un producto a la tabla tmp_compra
    $comprobar = mysqli_query($conexion, "select * from detalle_fact_orden where id_producto='" . $id . "' and id_factura='" . $id_factura . "'");
    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')</script>";
        } else {
            $sql          = "UPDATE detalle_fact_orden SET cantidad='" . $cant . "', desc_venta='" . $desc . "', precio_venta='" . $prec_vta . "' WHERE id_producto='" . $id . "' and id_factura='" . $id_factura . "'";
            $query_update = mysqli_query($conexion, $sql);
            //$update       = eliminar_stock($id, $cantidad, $id_empresa); // Descuenta del inventario
            //$update_       = eliminar_stock_productos($id, $cantidad); // Descuenta del inventario
        }
        // fin codicion cantidad

    } 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')</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','$cantidad','$precio_venta','')");
            //$update       = eliminar_stock($id, $cantidad, $id_empresa); // Descuenta del inventario
            //$update_       = eliminar_stock_productos($id, $cantidad); // Descuenta del inventario
        }
        // fin
    }

}
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_cot 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'>DESCRIP.</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; $aplica_exe = 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, 4); //Precio total formateado
    }
    else {
        $aux = $precio_total;
        $pv += $aux;
        $precio_total_f = number_format($aux, 4); //Precio total formateado
    }

    $sumador_total += $precio_total_f; //Sumador
    $sumador_total_ += $precio_total; //Sumador
    
    $subtotal = number_format($sumador_total, 4, '.', '');

    $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, 4); ?></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, 4); ?></option>
                        <option value="<?php echo $rw1['valor1_producto'] ?>">PV <?php echo number_format($rw1['valor1_producto'], 4); ?></option>
                        <option value="<?php echo $rw1['valor2_producto'] ?>">PM <?php echo number_format($rw1['valor2_producto'], 4); ?></option>
                        <option value="<?php echo $rw1['valor3_producto'] ?>">PE <?php echo number_format($rw1['valor3_producto'], 4); ?></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, 4); ?></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_orden.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_tmp=" + id_tmp + "&precio=" + precio,
            success: function(datos) {
               $("#resultados").load("../ajax/editar_tmp_orden.php");
               $.Notification.notify('success','bottom center','EXITO!', 'PRECIO ACTUALIZADO CORRECTAMENTE')
           }
       });
    });

    });
</script>