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

$resol=mysqli_query($con,"SELECT * FROM serie_factura where ser_estado='activo' and ser_tipo='electronica' and ser_tipo_documento='10' and empresa='$empresa'") or die(mysqli_error($con)); 
$res=mysqli_fetch_array($resol);
$result = mysqli_num_rows($resol);
$ser_id=$res['ser_id'];
$ser_inicio=$res['ser_inicio'];
$ser_fin=$res['ser_fin'];
$prefijo=$res['ser_prefijo'];
if($result ==0)
{
    echo '<div class="modal-body">
            <div class="alert alert-info alert-dismissable">
                <strong>No hay serie de facturación activa.</strong> Tiene que activar la siguiente serie.
            </div>
            <div class="modal-footer">
                <a href="empresa.php" class="btn btn-danger"><i class="icon-ok"></i> <strong>Activar</strong></a>
            </div>  
        </div> ';
}

$can=mysqli_query($con,"SELECT MAX(nom_numero) as nom_numero  
FROM dian_nomina where nom_numero >='$ser_inicio' and nom_numero <='$ser_fin' and nom_ser_id='$ser_id' and empresa='$empresa'") or die(mysqli_error($con)); 
$dato= mysqli_fetch_array($can);
$nom_numero = $dato['nom_numero'];
if ($nom_numero==null)
{
    $nom_numero=$ser_inicio;
}
else if ($nom_numero < $ser_fin) 
{  
    $nom_numero=$dato['nom_numero']+1;
}


$nom_id=$_GET['nom_id'];
$nom=mysqli_query($con, "SELECT * FROM dian_nomina where nom_id='$nom_id'");
$nom= mysqli_fetch_array($nom);
$nom_cune=$nom['nom_cune'];
$nom_fecha=$nom['nom_fecha'];
$nom_numero_ant=$nom['nom_numero'];

$nom_fecha_inicio=$nom['nom_fecha_inicio'];
$nom_fecha_fin=$nom['nom_fecha_fin'];
$dias_trabajados=$nom['nom_tiempo'];
$nom_fecha_pago=$nom['nom_fecha'];

$empl_id=$nom['nom_emp_id'];
$empl=mysqli_query($con, "SELECT * FROM empleados where emp_id='$empl_id'");
$empl= mysqli_fetch_array($empl);
$emp_fecha_adminsion=$empl['emp_fecha_adminsion'];

$json = array(

    "type_document_id"           =>  10,
    "type_note"                  =>  2,
    'predecessor'   => array (
                "predecessor_number" => $nom_numero_ant,
                "predecessor_cune" => $nom_cune,
                "predecessor_issue_date" => $nom_fecha
    ),

    'period'    => array (
        "admision_date"         => $emp_fecha_adminsion, //fecha de admisión
        "settlement_start_date" => $nom_fecha_inicio, //fecha de inicio de liquidación
        "settlement_end_date"   => $nom_fecha_fin, //fecha de finalización de la liquidación
        "worked_time"           => '30', // tiempo trabajado
        "issue_date"            => $nom_fecha_pago //fecha de asunto
    ),

    

    "prefix" => $prefijo,
    "consecutive" => $nom_numero,
    "payroll_period_id" => 5,
    "notes" =>"ELIMINACION DE NOMINA"

);


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

createInvoice($configuration,$json);
function createInvoice($configuration,$json)
{
    global $con;
    global $mysqli;
    global $nom_id;
    global $ser_id;
    global $prefijo;
    global $nom_numero;
    global $nom_fecha_inicio;
    global $nom_fecha_fin;
    global $empl_id;
    global $empresa;
    global $usu_id;

    $curl = curl_init();

    curl_setopt_array($curl, array(
    CURLOPT_URL => "{$configuration->base_url}ubl2.1/payroll-adjust-note",
    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 =>json_encode($json),

    CURLOPT_HTTPHEADER => array(
        'Content-Type: application/json',
        'Accept: application/json',
        "Authorization: Bearer {$configuration->token}"
    ),
    ));

    $response = curl_exec($curl);
    curl_close($curl);
    $book=json_decode($response, true);
    $message=$book['message'];
    sleep(8);


    if($message<>'AttachedDocument #'.$prefijo.$nom_numero.' generada con éxito')
    {
        if($message=='The given data was invalid.')
        {
            echo "<div class='alert alert-danger alert-dismissable'>Los datos proporcionados no son válidos.</div>";
            if(!empty($book['errors']))
            {
                foreach ($book['errors'] as $key => $value) 
                {
                    if(!empty($value))
                    {
                        foreach ($value as $key2 => $value2) 
                        {
                            echo '<div class="alert alert-warning alert-dismissable">'.$value2.'</div>';
                            //echo "<div class='alert alert-warning alert-dismissable'>".$book["errors"]["number"][0] . "</div>";  
                        }
                    }
                }
            }
        }
    }
    else
    {
        $resultado=json_decode($response);
        $cune=$resultado->ResponseDian->Envelope->Body->SendNominaSyncResponse->SendNominaSyncResult->XmlDocumentKey;
        $validacion=$resultado->ResponseDian->Envelope->Body->SendNominaSyncResponse->SendNominaSyncResult->IsValid; 

        if($validacion=="true")
        {
            echo "<div class='alert alert-danger alert-dismissable'> LA NOMINA $prefijo$nom_numero FUE ELIMINADA CORRECTAMENTE</div>";


            $fecha=date('Y-m-d ');
            $hora=date('H:i:s');

            $can=mysqli_query($con,"SELECT MAX(nom_id)as noma_id FROM dian_nomina") or die(mysqli_error($con)); 
            $dato=mysqli_fetch_array($can);
            $noma_id=$dato['noma_id']+1;

            $insert_tmp=mysqli_query($con,"INSERT INTO dian_nomina (nom_id,nom_tipo_doc,nom_ser_id,nom_prefijo,nom_numero,nom_cune,nom_fecha,nom_fecha_inicio,nom_fecha_fin,nom_notas,nom_emp_id,nom_estado,empresa) 
                VALUES ('$noma_id','10','$ser_id','$prefijo','$nom_numero','$cune','$fecha','$nom_fecha_inicio','$nom_fecha_fin','ELIMINACION DE LA NOMINA $prefijo $nom_numero','$empl_id','Aprobada','$empresa')") or die(mysqli_error($con)); 


            $registros=mysqli_query($con,"UPDATE dian_nomina Set nom_estado='Eliminada' Where nom_id='$nom_id'") or die(mysqli_error($con));
        }
    }
}
?>