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

$ser_resolucion=$_POST['ser_resolucion'];
$ser_tipo_documento=$_POST['ser_tipo_documento'];
$ser_fecha=$_POST['ser_fecha'];
$ser_fecha_ven=$_POST['ser_fecha_ven'];
$ser_prefijo=$_POST['ser_prefijo'];
$ser_inicio=$_POST['ser_inicio'];
$ser_fin=$_POST['ser_fin'];
if (isset($_POST['ser_estado'])){ $ser_estado=$_POST['ser_estado'];} else { $ser_estado='desactivo'; }
$api_clave=$_POST['api_clave'];


$documentos = [
    'electronica'       => ['tipo' => 'electronica',      'tipo_documento1' => 1],
    'pos_electronico'   => ['tipo' => 'pos electronico',  'tipo_documento1' => 1],
    'remision'          => ['tipo' => 'remision',         'tipo_documento1' => 1],
    'pos'               => ['tipo' => 'pos',              'tipo_documento1' => 1],
    'nota_credito'      => ['tipo' => 'electronica',      'tipo_documento1' => 4],
    'nota_debito'       => ['tipo' => 'electronica',      'tipo_documento1' => 5],
    'nomina'            => ['tipo' => 'electronica',      'tipo_documento1' => 9],
    'nomina_ajuste'     => ['tipo' => 'electronica',      'tipo_documento1' => 10],
    'doc_soporte'       => ['tipo' => 'electronica',      'tipo_documento1' => 11],
    'nota_doc_soporte'  => ['tipo' => 'electronica',      'tipo_documento1' => 13],
    'nota_credito_pos'  => ['tipo' => 'electronica',      'tipo_documento1' => 26],
    'nota_debito_pos'   => ['tipo' => 'electronica',      'tipo_documento1' => 25],
];

if (isset($documentos[$ser_tipo_documento])) 
{
    $ser_tipo = $documentos[$ser_tipo_documento]['tipo'];
    $ser_tipo_documento1 = $documentos[$ser_tipo_documento]['tipo_documento1'];
}

if($api_clave==null && $ser_tipo_documento=='electronica' )
{
    echo '<div class="alert alert-success alert-dismissable">
        <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
        <strong> Clave Tecnica Requerida </strong> 
   </div>'; 
}
else
{
    $can2=mysqli_query($con,"SELECT MAX(ser_id)as ser_id FROM serie_factura") or die(mysqli_error($con)); 
    $dato2=mysqli_fetch_array($can2);
    $ser_id=$dato2['ser_id']+1;

    $registros=mysqli_query($con,"INSERT into serie_factura (ser_id,ser_resolucion,ser_tipo_documento,ser_fecha,ser_fecha_ven,ser_prefijo,ser_inicio,ser_fin,ser_estado,ser_tipo,ser_predeterminda,empresa)
    VALUES  ('$ser_id','$ser_resolucion','$ser_tipo_documento1','$ser_fecha','$ser_fecha_ven','$ser_prefijo','$ser_inicio','$ser_fin','$ser_estado','$ser_tipo','no','$empresa')") or die(mysqli_error($con));

    if($ser_tipo<>'pos')
    {
        $registros=mysqli_query($con,"UPDATE serie_factura Set ser_estado='desactivo' Where ser_id<>'$ser_id' and ser_tipo_documento='$ser_tipo_documento1' and ser_tipo='$ser_tipo' and empresa='$empresa'") or die(mysqli_error($con));
    }
       
        
    if($facturador=='si')
    {
        if($ser_tipo_documento=='electronica')
        {
            $json = array(
                "type_document_id"  => $ser_tipo_documento1,
                "prefix"            => $ser_prefijo,
                "resolution"        => $ser_resolucion,
                "resolution_date"   => $ser_fecha,
                "technical_key"     => $api_clave,
                "from"              => $ser_inicio,
                "to"                => $ser_fin,
                "generated_to_date" => 0,
                "date_from"         => $ser_fecha,
                "date_to"           => $ser_fecha_ven
            );

        }

        if($ser_tipo_documento=='pos_electronico')
        {
            $json = array(
                "type_document_id"  => 15,
                "prefix"            => $ser_prefijo,
                "resolution"        => $ser_resolucion,
                "resolution_date"   => $ser_fecha,
                "from"              => $ser_inicio,
                "to"                => $ser_fin,
                "generated_to_date" => 0,
                "date_from"         => $ser_fecha,
                "date_to"           => $ser_fecha_ven
            );
        }


        if($ser_tipo_documento=='nota_credito' OR $ser_tipo_documento=='nota_debito' OR $ser_tipo_documento=='nomina' OR $ser_tipo_documento=='nomina_ajuste' OR $ser_tipo_documento=='doc_soporte' OR $ser_tipo_documento=='nota_doc_soporte' OR $ser_tipo_documento=='nota_credito_pos' OR $ser_tipo_documento=='nota_debito_pos')
        {
            $json = array(
                "type_document_id"  => $ser_tipo_documento1,
                "prefix"            => $ser_prefijo,
                "resolution"        => $ser_resolucion,
                "resolution_date"   => $ser_fecha,
                "from"              => $ser_inicio,
                "to"                => $ser_fin,
                "date_from"         => $ser_fecha,
                "date_to"           => $ser_fecha_ven
            );
        }


        if($ser_tipo_documento<>'remision')
        {
            $curl = curl_init();
                curl_setopt_array($curl, array(
                CURLOPT_URL => "{$configuration->base_url}ubl2.1/config/resolution",
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_ENCODING => '',
                CURLOPT_MAXREDIRS => 10,
                CURLOPT_TIMEOUT => 0,
                CURLOPT_FOLLOWLOCATION => true,
                CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                CURLOPT_CUSTOMREQUEST => 'PUT',
                CURLOPT_POSTFIELDS =>json_encode($json),
                CURLOPT_HTTPHEADER => array(
                'Content-Type: application/json',
                'accept: application/json',
                'Authorization: Bearer '.$token
              ),
            ));

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

    echo '<div class="alert alert-success alert-dismissable">
            <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
            <strong> Resolución Registrado Correctamente</strong> 
        </div>'; 
}
?>