<?php
session_start();
require_once ("../conexion.php");
require_once('../include/sesiones.php');
require_once('../php_api/api.php');

$ven_id=$_POST['ven_id'];

$can1=mysqli_query($con,"SELECT * FROM ventas where ven_id='$ven_id'") or die(mysqli_error($con)); 
$dato1=mysqli_fetch_array($can1);
$Cliente_clie_id=$dato1['Cliente_clie_id'];
$ven_ser_id=$dato1['ven_ser_id'];
$ven_forma_de_pago=$dato1['ven_forma_de_pago'];
$caja=$dato1['caja'];
$vendedor=$dato1['vendedor'];

$caj=mysqli_query($con,"SELECT * FROM cajas where caja_id='$caja' ") or die(mysqli_error($con)); 
$res_ca=mysqli_fetch_array($caj);
$caja_nombre=$res_ca['caja_nombre'];
$caja_ubicacion=$res_ca['caja_ubicacion'];
$tipo_caja=$res_ca['tipo_caja'];

$sql3=mysqli_query($con,"SELECT * from usuario where usu_id='$vendedor'");
$usu=mysqli_fetch_array($sql3);
$usu_nombre=$usu['usu_nombre'];


$resol=mysqli_query($con,"SELECT * FROM serie_factura where ser_id='$ven_ser_id' ") or die(mysqli_error($con)); 
$res=mysqli_fetch_array($resol);
$ser_resolucion=$res['ser_resolucion'];


if($ven_forma_de_pago=='Contado')
{
    $forma_pago='1';
    $tipo_pago='10';
}
else if($ven_forma_de_pago=='Credito')
{
    $forma_pago='2';
    $tipo_pago='75';
}
else if($ven_forma_de_pago=='Transferencia')
{
    $forma_pago='1';
    $tipo_pago='42';
}
else if($ven_forma_de_pago=='Tarjeta')
{
    $forma_pago='1';
    $tipo_pago='42';
}
else if($ven_forma_de_pago=='Cruce de Credito')
{
    $forma_pago='1';
    $tipo_pago='75';
}
else if($ven_forma_de_pago=='Combinado')
{
    $forma_pago='1';
    $tipo_pago='75';
}

$clie=mysqli_query($con,"SELECT * FROM cliente where clie_id='$Cliente_clie_id'") or die(mysqli_error($con)); 
$clie1=mysqli_fetch_array($clie);
$clie_correo=$clie1['clie_correo'];

//DATOS DE LA FACTURA
$prefijo=$dato1['ven_prefijo'];
$numero=$dato1['ven_n_venta'];
$tipo_documento='1'; 
$fecha=$dato1['ven_fecha']; 
$hora=$dato1['ven_hora'];  
$observaciones=$dato1['observaciones'];

include('json.php');
$dataDocument = json_encode($json,JSON_UNESCAPED_UNICODE);
//$fh = fopen("../jsons/".$prefijo.$numero.".json", 'w');
//fwrite($fh, $dataDocument);
//fclose($fh);
//$dataDocument = $json;

createInvoice($configuration,$dataDocument);
function createInvoice($configuration,$dataDocument)
{
    global $ven_id;
    global $empresa;
    global $numero;
    global $ser_id;
    global $prefijo;
    global $ven_correo;
    global $con;
    global $mysqli;

    $curl = curl_init();
    curl_setopt_array($curl, array(
       CURLOPT_URL => "{$configuration->base_url}ubl2.1/eqdoc",
      //  CURLOPT_URL => "{$configuration->base_url}ubl2.1/eqdoc/{$configuration->setTestId_pos}",
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => '',
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => 'POST',
        CURLOPT_POSTFIELDS =>$dataDocument,
        //CURLOPT_POSTFIELDS =>file_get_contents('../jsons/'.$prefijo.$numero.'.json'),
        CURLOPT_HTTPHEADER => array(
            'Content-Type: application/json',
            'Accept: application/json',
            "Authorization: Bearer {$configuration->token}"
        ),
    ));

    
    $response = curl_exec($curl);
    curl_close($curl);

    $resultado = json_decode($response);

    if ($resultado) {
        $message = $resultado->message ?? 'Mensaje no disponible';
        $cufe = $resultado->cufe ?? null;
        $validacion = $resultado->ResponseDian->Envelope->Body->SendBillSyncResponse->SendBillSyncResult->IsValid ?? 'false';
        $error = $resultado->ResponseDian->Envelope->Body->SendBillSyncResponse->SendBillSyncResult->ErrorMessage->string ?? '';
    }

    
    if($validacion=="true")
    {
        $registros=mysqli_query($con,"UPDATE ventas Set
                                             cufe='$cufe', 
                                             estado_dian='Aprobada'
                                             Where ven_id='$ven_id' and empresa='$empresa'") or die(mysqli_error($con));

        echo "<div class='alert alert-info alert-dismissable'>EL DOCUMENTO EQUIVALENTE POS ".$prefijo.$numero." FUE CARGADO CORRECTAMENTE</div>";
        ?>
         <div id="div_enviar_correo">
            <div class='alert alert-info alert-dismissable'> DESEA ENVIAR CORREO?</div>
            <form method="get" action="" id="enviar_correo" name="enviar_correo">
                <div id="resultados_dian"></div>
                <div class="form-group">
                    <input type="hidden" id="ven_id" name="ven_id" value="<?php echo $ven_id; ?>" class="form-control name_list" readonly>
                    <input type="text" id="correo" name="correo" value="<?php echo $ven_correo; ?>" class="form-control name_list" >
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
                    <button type="submit" name="btn_enviar_correo" class="btn btn-info" value="btn_enviar_correo" id="btn_enviar_correo">Enviar Correo</button>
                </div>
            </form>
        </div>

    <?php }
    else if($validacion=="false")
    {
        echo "<div class='alert alert-danger alert-dismissable'><center><strong> LA FACTURA ".$prefijo.$numero." NO SE CARGO POR ERRORES</strong></center></div>";
        foreach ((array) $error as $val) 
        { 
            if($val<>null)
            {
                echo '<div class="alert alert-warning alert-dismissable"><ul style="color: red;"><li>';
                    echo $val;
                echo '</li></ul></div>';
            }

            if ($val=='Regla: 90, Rechazo: Documento procesado anteriormente.')
            {
                $registros=mysqli_query($con,"UPDATE ventas Set
                                             cufe='$cufe', 
                                             estado_dian='Aprobada'
                                             Where ven_id='$ven_id' and empresa='$empresa'") or die(mysqli_error($con));
                 echo '<div class="alert alert-success alert-dismissable">Se ha cambiado estado del Documento a Aprobado.</div>';
            }
        }
    }


    if($message<>'AttachedDocument #'.$prefijo.$numero.' generada con éxito')
    {
        if($message=='The given data was invalid.')
        {
            echo '<div class="alert alert-warning alert-dismissable"><ul style="color: red;">';
            foreach (json_decode($response, true)['errors'] as $campo => $mensajes) {
                foreach ($mensajes as $mensaje) {
                    echo "<li>$mensaje</li>";
                }
            }
            echo '</ul></div>';
        }
        else
        { 
            if($message=='Division by zero (View: C:\wamp64\www\API\resources\views\pdfs\invoice\template2.blade.php)')
            {
                echo '<div class="alert alert-warning alert-dismissable"><ul style="color: red;"><li>No se admite productos con cantidad CERO<br></li></ul></div>';
            }
        }
    }
}
?>


<script>
$( "#enviar_correo" ).submit(function( event ) {
$('#btn_enviar_correo').attr("disabled", true);

var parametros = $(this).serialize();
$.ajax({
    type: "GET",
    url: "libraries/tcpdf/documentos/envio_correo_factura.php",
    data: parametros,
        beforeSend: function(objeto){
         $('#resultados_dian').html('<center><img src="./img/ajax-loader.gif"> CARGANDO...</center>');
        },
        success: function(datos){
        $("#resultados_dian").html(datos);
        $('#btn_enviar_correo').attr("disabled", false);
        }
    });
    event.preventDefault();
})
</script>