<?php
include 'is_logged.php'; //Archivo verifica que el usario que intenta acceder a la URL esta logueado
/*Inicia validacion del lado del servidor*/
if (empty($_POST['id_fact'])) {
    $errors[] = "ID FACTURA VACIO";
} else if (!empty($_POST['id_fact'])) {
    /* Connect To Database*/
    require_once "../db.php";
    require_once "../php_conexion.php";
    //Archivo de funciones PHP
    require_once "../funciones.php";
    $session_id     = session_id();
    $simbolo_moneda = get_row('perfil', 'moneda', 'id_perfil', 1);
    // escaping, additionally removing everything that could be (html/javascript-) code
    $id_cliente     = intval($_POST['id_cliente']);
    $id_vendedor    = intval($_SESSION['id_users']);
    $users          = intval($_SESSION['id_users']);
    $id_fact        = intval($_POST['id_fact']);
    $condiciones    = mysqli_real_escape_string($conexion, (strip_tags($_REQUEST['condiciones'], ENT_QUOTES)));
    $entrega        = mysqli_real_escape_string($conexion, (strip_tags($_REQUEST['entrega'], ENT_QUOTES)));
    $resibido       = floatval($_POST['resibido']);
    $total_ft       = floatval($_POST['total_ft']);
    $date_added     = date("Y-m-d H:i:s");
    $end_cot    = date("H:i:s");
    $numero_factura = get_row('facturas_cot', 'numero_factura', 'id_factura', $id_fact);
    $factura_id     = get_row('facturas_cot', 'id_factura', 'id_factura', $id_fact);
    //Operacion de Creditos
    if ($condiciones == 4) {
        $estado = 2;
    } else {
        $estado = 1;
    }
    if ($condiciones == 5) {
        $py = mysqli_real_escape_string($conexion, (strip_tags($_REQUEST["py"], ENT_QUOTES)));
    } else {
        $py = '';
    }

     // Control de Caja
     $caja = mysqli_query($conexion, "SELECT LAST_INSERT_ID(caja_id) as last_id, estado_caja FROM detalle_caja WHERE estado_caja = 0");
     $rw = mysqli_fetch_array($caja);
     $id_caja = $rw['last_id'];
   
    $del2 = elimina_comanda2($numero_factura);
//Seleccionamos el ultimo compo numero_fatura y aumentamos una
    $sql        = mysqli_query($conexion, "select LAST_INSERT_ID(id_factura) as last from facturas_ventas order by id_factura desc limit 0,1 ");
    $rw         = mysqli_fetch_array($sql);
    $id_factura = $rw['last'] + 1;
// finde la ultima fatura
    /* ULTIMA CUENTA DEL CREDITO*/
    $sql_cr = mysqli_query($conexion, "SELECT COALESCE(MAX(cuenta_id), 0) AS last FROM creditos");
    $rwc = mysqli_fetch_array($sql_cr);
    if ($rwc != null) {
        // Acceder al índice del array
        $cuenta_id = $rwc['last'] + 1;
    } else {
        // El array es nulo, manejar el caso de error
        $cuenta_id = null;
    }
/* FIN */
/* Control de Caja */
$caja = mysqli_query($conexion, "select LAST_INSERT_ID(caja_id) as last_id, estado_caja from detalle_caja where estado_caja = 0");
$rw = mysqli_fetch_array($caja);
$id_caja = $rw['last_id'];
    //Control de la  numero_fatura y aumentamos una
    $query_id = mysqli_query($conexion, "SELECT RIGHT(numero_factura,6) as factura FROM facturas_ventas ORDER BY factura DESC LIMIT 1")
    or die('error ' . mysqli_error($conexion));
    $count = mysqli_num_rows($query_id);

    if ($count != 0) {

        $data_id = mysqli_fetch_assoc($query_id);
        $factura = $data_id['factura'] + 1;
    } else {
        $factura = 1;
    }

    $buat_id = str_pad($factura, 6, "0", STR_PAD_LEFT);
    $factura = "CFF-$buat_id";
// fin de numero de fatura
    // consulta principal
    $nums           = 1;
    $impuesto       = get_row('perfil', 'impuesto', 'id_perfil', 1);
    $propina        = 0;
    $sumador_total  = 0;
    $sum_total      = 0;
    $t_iva          = 0;
    $total_impuesto = 0;
    $sql            = mysqli_query($conexion, "select * from productos, detalle_fact_cot where productos.id_producto=detalle_fact_cot.id_producto and detalle_fact_cot.numero_factura='" . $numero_factura . "'");
    while ($row = mysqli_fetch_array($sql)) {
        $id_tmp          = $row["id_detalle"];
        $id_producto     = $row['id_producto'];
        $codigo_producto = $row['codigo_producto'];
        $cantidad        = $row['cantidad'];
        $desc_tmp        = $row['desc_venta'];
        $nombre_producto = $row['nombre_producto'];

        $precio_venta   = $row['precio_venta'];
        $precio_venta_f = number_format($precio_venta, 2); //Formateo variables
        $precio_venta_r = str_replace(",", "", $precio_venta_f); //Reemplazo las comas
        $precio_total   = $precio_venta_r * $cantidad;
        $final_items    = rebajas($precio_total, $desc_tmp); //Aplicando el descuento
        /*--------------------------------------------------------------------------------*/
        $precio_total_f = number_format($final_items, 2); //Precio total formateado
        $precio_total_r = str_replace(",", "", $precio_total_f); //Reemplazo las comas
        $sumador_total += $precio_total_r; //Sumador
        $subtotal = number_format($sumador_total, 2, '.', '');

        if ($row['iva_producto'] == 1) {
            $total_iva = iva($precio_venta);
        } else {
            $total_iva = 0;
        }
        $total_impuesto += rebajas($total_iva, $desc_tmp) * $cantidad;
        //Insert en la tabla detalle_factura
        $insert_detail = mysqli_query($conexion, "INSERT INTO detalle_fact_ventas VALUES (NULL,'$id_factura','$factura','$id_producto','$cantidad','$desc_tmp','$precio_venta_r','$precio_total','$date_added','$id_caja')");
        // ACTUALIZA EN EL STOCK
        $sql2    = mysqli_query($conexion, "select * from productos where id_producto='" . $id_producto . "'");
        $rw      = mysqli_fetch_array($sql2);
        $old_qty = $rw['stock_producto']; //Cantidad encontrada en el inventario
        $new_qty = $old_qty - $cantidad; //Nueva cantidad en el inventario
        $update  = mysqli_query($conexion, "UPDATE productos SET stock_producto='" . $new_qty . "' WHERE id_producto='" . $id_producto . "' and inv_producto=0"); //Actualizo la nueva cantidad en el inventario
// Consulta SQL para actualizar el stock
$sql3    = mysqli_query($conexion, "select id_producto_stock, stock_final from stock where id_producto_stock='" . $id_producto . "'");
$rw      = mysqli_fetch_array($sql3);
//$old_qtys = $rw['stock_final']; //Cantidad encontrada en la tabla stock
if ($rw != null) {
    // Acceder al índice del array
    $old_qtys = $rw['stock_final'];
} else {
    // El array es nulo, manejar el caso de error
    $old_qtys = null;
}
$new_qtys = $old_qtys + $cantidad; //Nueva cantidad en la tabla stock
$update  = mysqli_query($conexion, "UPDATE stock SET stock_final='" . $new_qtys . "' WHERE id_producto_stock='" . $id_producto . "' and control_caja= '".$id_caja."'"); //Actualizo la nueva cantidad en el inventario
        $nums++;
    }
    // Fin de la consulta Principal
    if ($resibido == 0) {
        $r = $total_ft - $total_ft;
    } else {
        $r = $resibido;
    }

    $total_factura = $total_ft + $total_impuesto;
    $cambio        = $resibido - $total_ft;
    $saldo_credito = $total_ft - $resibido;
    //$camb             = number_format($r, 2);
    $resibido_formato = number_format($resibido, 2);
    if ($condiciones == 4) {
        $query = mysqli_query($conexion, "select id_cliente from creditos where id_cliente='" . $id_cliente . "'");
        $count = mysqli_num_rows($query);
        if ($count == 0) {
            $insert_prima   = mysqli_query($conexion, "INSERT INTO creditos VALUES (NULL,'$factura','$date_added','$id_cliente','$id_vendedor','$total_factura','$saldo_credito','1','$users','1','$cuenta_id')");
            $insert_abono   = mysqli_query($conexion, "INSERT INTO creditos_abonos VALUES (NULL,'$factura','$date_added','$id_cliente','$total_factura','$resibido','$saldo_credito','$users','1','CREDITO INICAL','$cuenta_id')");
            $insert_detalle = mysqli_query($conexion, "INSERT INTO facturas_creditos VALUES (NULL,'$cuenta_id','$factura','$factura_id','$saldo_credito','1')");
            //$delete         = mysqli_query($conexion, "DELETE FROM tmp_mesa WHERE mesa_tmp='" . $numero_factura . "'");
        } else {

            // ACTUALIZA EL MONTO DE LA CUENTA
            $sql2           = mysqli_query($conexion, "select id_cliente, saldo_credito, cuenta_id, monto_credito from creditos where id_cliente='" . $id_cliente . "'");
            $rw             = mysqli_fetch_array($sql2);
            $saldo          = $rw['saldo_credito']; //Cantidad encontrada saldo
            $credito        = $rw['monto_credito']; //Cantidad encontrada monto credito
            $new_qty        = $saldo + $total_ft; //Nueva cantidad en el saldo
            $new_cr         = $credito + $total_ft; //Nueva cantidad en el monto del credito
            $cuenta         = $rw['cuenta_id'];
            $update         = mysqli_query($conexion, "UPDATE creditos SET monto_credito='" . $new_cr . "', saldo_credito='" . $new_qty . "', estado_credito = '1' WHERE id_cliente='" . $id_cliente . "'");
            $insert_abono   = mysqli_query($conexion, "INSERT INTO creditos_abonos VALUES (NULL,'$factura','$date_added','$id_cliente','$new_cr','$resibido','$new_qty','$users','1','CREDITO INICAL','$cuenta')");
            $insert_detalle = mysqli_query($conexion, "INSERT INTO facturas_creditos VALUES (NULL,'$cuenta','$factura','$factura_id','$saldo_credito','1')");
            //$delete         = mysqli_query($conexion, "DELETE FROM tmp_comanda WHERE num_pedido='" . $numero_factura . "'");
            $nums++;

        }
    }
    $delete = mysqli_query($conexion, "DELETE FROM tmp_cotizacion WHERE session_id='" . $session_id . "'");
    $delete         = mysqli_query($conexion, "DELETE FROM tmp_comandas WHERE num_pedido='" . $numero_factura . "'");
    $delete = mysqli_query($conexion, "DELETE FROM tmp_mesa WHERE mesa_tmp='" . $numero_factura . "'");
    $update  = mysqli_query($conexion, "UPDATE facturas_cot SET est_cot= 2, end_cot ='" . $end_cot . "' WHERE id_factura ='" . $factura_id . "'");
    $insert     = "INSERT INTO facturas_ventas VALUES (NULL,'$factura','$date_added','$id_cliente','$id_vendedor','$condiciones','$total_factura','$propina','$estado','$users','$resibido','1','$id_caja','$py')";
    $factura_id = '';
    if ($conexion->query($insert) === true) {
        $factura_id          = $conexion->insert_id;
        $valid['id_factura'] = $factura_id;
    }
    // SI TODO ESTA CORRECTO
    if ($condiciones == 4) {
        echo "<script>
        swal({
          title: 'VENTA AL CREDITO GUARDADA CON EXITO CON ATICIPO DE: $simbolo_moneda $resibido_formato',
          text: 'Factura: $factura',
          type: 'success',
          confirmButtonText: 'ok'
          })
          </script>";
        exit;
    }
    if ($insert_detail) {
        echo "<script>
        $('#modal_vuelto').modal('show');
        </script>";
        #$messages[] = "Venta  ha sido Guardada satisfactoriamente.";
    } else {
        $errors[] = "Lo siento algo ha salido mal intenta nuevamente." . mysqli_error($conexion);
    }
} else {
    $errors[] = "Error desconocido.";
}

if (isset($errors)) {

    ?>
    <div class="alert alert-danger" role="alert">
        <strong>Error!</strong>
        <?php
foreach ($errors as $error) {
        echo $error;
    }
    ?>
    </div>
    <?php
}
if (isset($messages)) {

    ?>
    <div class="alert alert-success" role="alert">
        <strong>¡Bien hecho!</strong>
        <?php
foreach ($messages as $message) {
        echo $message;
    }
    ?>
    </div>
    <?php
}

?>
<!-- Modal -->
<div class="modal fade" id="modal_vuelto" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                <h4 class="modal-title" id="myModalLabel"><i class='fa fa-edit'></i> POCESADA </h4>
            </div>
            <div class="modal-body" align="center">
                <strong><h3>FACTURA</h3></strong>
                <div class="alert alert-info" align="center">
                    <strong><h1>
                    <?php echo $factura; ?>

                    </h1></strong>
                </div>

            </div>
            <div class="modal-footer">
                <button type="button" id="imprimir" class="btn btn-primary btn-block btn-lg waves-effect waves-light" onclick="printOrder('<?php echo $factura_id; ?>');" accesskey="t" ><span class="fa fa-print"></span> Ticket</button><br>
                <!--<button type="button" id="imprimir2" class="btn btn-success btn-block btn-lg waves-effect waves-light" onclick="printFactura('<?php echo $factura_id; ?>');" accesskey="p"><span class="fa fa-print"></span> Factura</button>-->
            </div>
        </div>
    </div>
</div>