<?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_cliente'])) {
    $errors[] = "ID VACIO";
} else if (!empty($_POST['id_cliente'])) {
    /* Connect To Database*/
    require_once "../db.php";
    require_once "../php_conexion.php";
    //Archivo de funciones PHP
    require_once "../funciones.php";
    $session_id     = session_id();
    $sucursal_users = $_SESSION['sucursal_users'];
    $orden = $_SESSION['numero_factura'];
    $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']);
    $fact_id        = intval($_POST['factura_id']);
    $id_vendedor       = intval($_SESSION['id_users']);
    $users             = intval($_SESSION['id_users']);
    $condiciones       = mysqli_real_escape_string($conexion, (strip_tags($_REQUEST['condiciones'], ENT_QUOTES)));
    $numero_cotizacion = mysqli_real_escape_string($conexion, (strip_tags($_REQUEST["cotizacion"], ENT_QUOTES)));
    $numero_factura    = mysqli_real_escape_string($conexion, (strip_tags($_REQUEST["factura"], ENT_QUOTES)));
    $id_comp           = intval($_POST['id_comp']);
    $id_mecanico           = 0;
    $id_empleado           = 0;
    $comision           = 0;
    //$tip_doc           = intval($_POST['tip_doc']);
    //$trans             = mysqli_real_escape_string($conexion, (strip_tags($_REQUEST["trans"], ENT_QUOTES)));
    $resibido   = floatval($_POST['resibido']);
    $date_added = date("Y-m-d H:i:s");
    //Operacion de Creditos
    if ($condiciones == 4) {
        $estado = 2;
    } else {
        $estado = 1;
    }
     // 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'];
    $sql_monto        = mysqli_query($conexion, "select round(sum(cantidad*precio_venta),2) monto from detalle_fact_ordenes where numero_factura='" . $numero_cotizacion . "'");
    $rw_monto         = mysqli_fetch_array($sql_monto);
    $monto_venta      = $rw_monto['monto'];
    //Comprobamos que el dinero Resibido no sea menor al Totalde la factura
    if ($resibido < $monto_venta and $condiciones != 4) {
        echo "<script>
            swal({
              title: 'DINERO RESIBIDO ES MENOR AL MONTO TOTAL',
              text: 'Intentar Nuevamente',
              type: 'error',
              confirmButtonText: 'ok'
          })</script>";
        exit;
    }
    $sql         = mysqli_query($conexion, "select * from comprobantes where  id_comp ='$id_comp'");
    $rw          = mysqli_fetch_array($sql);
    $serie_comp  = $rw['serie_comp'];
    $desde_comp  = $rw['desde_comp'];
    $hasta_comp  = $rw['hasta_comp'];
    $actual_comp = $rw['actual_comp'];
    $long_comp   = $rw['long_comp'];
    $rs = mysqli_query($conexion, "SELECT MAX(num_fact) AS factura FROM correlativos WHERE tipo_fact='$id_comp'") or die('error ' . mysqli_error($conexion));
    $row          = mysqli_fetch_array($rs);
    $numfactura = $row['factura'];
    $test = $numfactura + 1;
    $formato = str_pad($test, $long_comp, "0", STR_PAD_LEFT);
    $factura = $serie_comp . '' . $formato;
    //control del correlativo
    $insert_correlativo = mysqli_query($conexion, "INSERT INTO correlativos VALUES (NULL,'$test','$id_comp','$sucursal_users')");
    //Seleccionamos el ultimo compo numero_fatura y aumentamos una
    $sql        = mysqli_query($conexion, "select MAX(id_factura) as last from facturas_ventas");
    $rw         = mysqli_fetch_array($sql);
    $id_factura = $rw['last'] + 1;
    // consulta principal
    $nums           = 1;
    $impuesto       = get_row('perfil', 'impuesto', 'id_perfil', 1);
    $sumador_total  = 0;
    $sum_total      = 0;
    $total_factura      = 0;
    $t_iva          = 0;
    $total_impuesto = 0;
    $sql            = mysqli_query($conexion, "select * from detalle_fact_ordenes where detalle_fact_ordenes.numero_factura='" . $numero_cotizacion . "'");
    while ($row = mysqli_fetch_array($sql)) {
        $id_tmp          = $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_d'];
        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_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, '.', '');

        //$total_impuesto += rebajas($total_iva, $desc_tmp) * $cantidad;
        $total_factura = $subtotal;

        //Insert en la tabla detalle_factura
        $insert_detail = mysqli_query($conexion, "INSERT INTO detalle_fact_ventas VALUES (NULL,'$id_factura','$numero_factura','$id_producto','$cantidad','$desc_tmp','$precio_venta_r','$precio_total', 1)");
        //GURDAMOS LAS EN EL KARDEX
        /*$saldo_total = $cantidad * $costo_producto;
        $sql_kardex  = mysqli_query($conexion, "select * from kardex where producto_kardex='" . $id_producto . "' order by id_kardex DESC LIMIT 1");
        $rww         = mysqli_fetch_array($sql_kardex);
        $id_producto = $rww['producto_kardex'];
        //$costo_saldo = $rww['costo_saldo'];
        $cant_saldo  = $rww['cant_saldo'] - $cantidad;
        //$nueva_cantidad = $cant_saldo - $cantidad;
        $nuevo_saldo = $cant_saldo * $costo_producto;*/
        $tipo        = 2;

        //guardar_salidas($date_added, $id_producto, $cantidad, $costo_producto, $saldo_total, $cant_saldo, $costo_saldo, $nuevo_saldo, $date_added, $users, $tipo);
        // FIN
        // ACTUALIZA EN EL STOCK
        if ($id_producto <> 99999) {
            # code...
            $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
        }
        $nums++;
    }
    // Fin de la consulta Principal
    $subtotal  = number_format($sumador_total, 2, '.', '');
    $total_iva = ($subtotal * $impuesto) / 100;
    $total_iva = number_format($total_iva, 2, '.', '') - number_format($t_iva, 2, '.', '');
    //$total_factura    = $subtotal + $total_iva;
    if ($total_factura == 0) {
        $tt = $total_ft;
    } else {
        $tt = $total_factura;
    }

    $cambio           = $resibido - $total_factura;
    $saldo_credito    = $tt - $resibido;
    $camb             = number_format($cambio, 2);
    $resibido_formato = number_format($resibido, 2);

    if ($condiciones == 4) {
        $insert_prima = mysqli_query($conexion, "INSERT INTO creditos VALUES (NULL,'$factura','$date_added','$id_cliente','$id_vendedor','$total_factura','$saldo_credito','1','$users','1')");
        $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')");
    }
    $update_fact = mysqli_query($conexion, "update facturas_ordenes set status_orden=2, factura_venta= '$factura' where id_factura='$fact_id'");

    $log     = mysqli_query($conexion, "INSERT INTO log_ordenes VALUES (NULL,'$users','Proceso de la orden .' '.$orden.' '. a Facturacion','Facturado','Facturado','','$total_factura','$factura','$date_added')");
    //$insert = mysqli_query($conexion, "INSERT INTO facturas_ventas VALUES (NULL,'$numero_factura','$date_added','$id_cliente','$id_vendedor','$condiciones','$total_factura','$estado','$users','$resibido','1','1','$id_comp','0','0', '0', '$users')");
    $insert     = "INSERT INTO facturas_ventas VALUES (NULL,'$factura','$date_added','$id_cliente','$id_vendedor','$condiciones','$total_factura','$estado','$users','$resibido','1','$id_comp','0','$id_mecanico', '$id_empleado', '$comision','$id_caja')";
    $factura_id = '';
    if ($conexion->query($insert) === true) {
        $factura_id          = $conexion->insert_id;
        $valid['id_factura'] = $factura_id;
    }
    //$update_fact = mysqli_query($conexion, "update facturas_ordenes set status_orden=2, factura_venta= '$factura' where id_factura='$fact_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) {
        echo "<script>
    $('#modal_vuelto').modal('show');
</script>";
        $update_fact = mysqli_query($conexion, "update facturas_ordenes set status_orden=2 where id_factura='$fact_id'");
        #$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> FACTURA: <?php echo $factura; ?></h4>
            </div>
            <div class="modal-body" align="center">
                <strong>
                    <h3>CAMBIO</h3>
                </strong>
                <div class="alert alert-info" align="center">
                    <strong>
                        <h1>
                            <?php echo $simbolo_moneda . ' ' . $camb; ?>

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

            </div>
            <div class="modal-footer">
                <a class='btn btn-primary btn-block btn-lg waves-effect waves-light' href="bitacora_ordenes.php" title="Regresar al historial de ordenes"><i class="fa fa-reply"></i> Regresar al Historial
                </a>
            </div>
        </div>
    </div>
</div>