<?php
$resol=mysqli_query($con,"SELECT * FROM serie_factura where ser_estado='activo' and ser_tipo='electronica' and ser_tipo_documento='4' and empresa='$empresa'") or die(mysqli_error($con)); 
$res=mysqli_fetch_array($resol);
$result = mysqli_num_rows($resol);
$ser_id=$res['ser_id'];
$ser_resolucion=$res['ser_resolucion'];
$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(not_numero) as not_numero  
FROM dian_nota_credito where not_numero >='$ser_inicio' and not_numero <='$ser_fin' and not_ser_id='$ser_id' and empresa='$empresa'") or die(mysqli_error($con)); 
$dato= mysqli_fetch_array($can);
$not_numero = $dato['not_numero'];
if ($not_numero==null)
{
    $not_numero=$ser_inicio;
}
else if ($not_numero < $ser_fin) 
{  
    $not_numero=$dato['not_numero']+1;
}

$ven_id=$_POST['ven_id'];
$fecha=$_POST['cot_fecha'];
$observaciones=utf8_encode($_POST['observaciones']);
$concepto=$_POST['concepto'];


$sumador_total=0;
$neto=0;
$descuento_global=0;
$iva_global=0;
$retencion_global=0;
$sql=mysqli_query($con, "SELECT * from dian_nota_credito_detalle_temp where usuario='$usu_id' and ven_id='$ven_id'");
while ($row=mysqli_fetch_array($sql))
{
    $vend_cantidad=$row['not_art_cantidad'];
    //$vend_precio=$row['vend_precio']; //1.000.000
    $vend_precio=$row['not_precio']; //1.000.000
    $vend_iva=$row['not_iva']; //19%
    $vend_descuento=$row['not_descuento']; //10%
    //$suma_por_retencion=(($vend_precio1*$ret_porcentaje)/(100-$ret_porcentaje));
    //$vend_precio=$vend_precio1+$suma_por_retencion; //1.000.000
    $iva0=$vend_iva/100; //0.19
    $iva1=1+$iva0; //1.19

    $precio_unitario_sin_iva=$vend_precio/$iva1;  //840.336
    $precio_total_sin_iva=$precio_unitario_sin_iva*$vend_cantidad;
    $descuento_unitario=($vend_descuento/100)*$precio_unitario_sin_iva;  //84033
    $descuento_item=$descuento_unitario*$vend_cantidad;  //84033
    $neto_item=$precio_total_sin_iva;
    $iva_item=($vend_precio-$precio_unitario_sin_iva)*$vend_cantidad;
    $neto+=$precio_total_sin_iva;
    $descuento_global+=$descuento_item;
    $iva_global+=$iva_item;

   // $retencion_unitaria=(($precio_unitario_sin_iva)*($ret_porcentaje/100));
   // $retencion_item=$retencion_unitaria*$vend_cantidad; 
   // $retencion_global+=$retencion_item;
}

$sumador_total=($neto+$iva_global)-$descuento_global;
$sumador_total_sindescuento=($neto+$iva_global);

if($descuento_global==0)
{
    $total_descuentos="0.00";
}
else
{
    $total_descuentos=$descuento_global;
}



$can1=mysqli_query($con,"SELECT * FROM ventas where ven_id='$ven_id'") or die(mysqli_error($con)); 
$dato1=mysqli_fetch_array($can1);
$ven_n_venta=$dato1['ven_n_venta'];;
$cufe=$dato1['cufe'];;
$ven_fecha=$dato1['ven_fecha'];;
$Cliente_clie_id=$dato1['Cliente_clie_id'];

$clie=mysqli_query($con,"SELECT * FROM cliente where clie_id='$Cliente_clie_id'") or die(mysqli_error($con)); 
$clie=mysqli_fetch_array($clie);  
$Nit=$clie['clie_cc']; 
$dv=$clie['clie_dv']; 
$ven_nombre=$clie['clie_nombre']; 
$ven_telefono=$clie['clie_telefono']; 
$ven_correo=$clie['clie_correo']; 
$direccion=$clie['clie_direccion'];
$tipo_documento_cli=$clie['clie_tipo_doc']; 
$tipo_organizacion=$clie['clie_contribuyente']; 
$tipo_regimen=$clie['clie_regimen']; //Tipo de regimen 1=Simple 2=Comun
$municipio=$clie['clie_ciudad']; 

$numero=$not_numero;
$hora=date('H:i:s');

$json = array(
"billing_reference" =>  array(
                                "number"      => $ven_n_venta,
                                "uuid"        => $cufe,
                                "issue_date"  => $ven_fecha
                            ),

"discrepancyresponsecode" =>  $concepto,
"notes"             =>  $observaciones,
"resolution_number" =>  $ser_resolucion,
"prefix"            =>  $prefijo,
"number"            =>  $numero,
"type_document_id"  =>  4,
"date"              =>  $fecha,
"time"              =>  $hora,
"customer"          =>  array(
                            "identification_number" => $Nit,
                            "dv"                    => $dv,
                            "name"                  => $ven_nombre,
                            "phone"                 => $ven_telefono,
                            "address"               => $direccion,
                            "email"                 => $ven_correo,
                          //  "merchant_registration" => $registro_mercantil,
                            "type_document_identification_id"=> $tipo_documento_cli,
                            "type_organization_id"  => $tipo_organizacion,
                            "municipality_id"       => $municipio,
                            "type_regime_id"        => $tipo_regimen
                        ),

 "legal_monetary_totals" =>  array(
                            "line_extension_amount" => round($neto,2), //base
                            "tax_exclusive_amount"  => round($neto,2),
                            "tax_inclusive_amount"  => round($sumador_total_sindescuento,2),
                            "allowance_total_amount"=> $total_descuentos, //descuentos
                            "charge_total_amount"   => "0.00",
                            "payable_amount"        => round($sumador_total,2) //total factura
                            ),

"tax_totals"             =>  array(),
'with_holding_tax_total' =>  array(),
'credit_note_lines'      =>  array()
);




//Impuestos IVAS de las factura
$sqliva=mysqli_query($con,"SELECT * from dian_nota_credito_detalle_temp where usuario='$usu_id' and ven_id='$ven_id' group by not_iva") or die(mysqli_error($con)); 
while ($iva=mysqli_fetch_array($sqliva))
{
    $iva_porcentaje=$iva['not_iva'];
    $datos=mysqli_query($con,"SELECT * FROM iva where iva_porcentaje='$iva_porcentaje' ");
    $fila=mysqli_fetch_array($datos);
    $tipo_impuesto=$fila['tipo_impuesto'];

    $iva0=$iva_porcentaje/100; //0.19
    $iva1=1+$iva0; //1.19

    $neto_i=0;
    $total_iva=0;
    $sqliva1=mysqli_query($con,"SELECT * from dian_nota_credito_detalle_temp where  usuario='$usu_id' and ven_id='$ven_id' and not_iva='$iva_porcentaje' order by not_id asc");
    while ($rowi=mysqli_fetch_array($sqliva1))
    {
        $vend_cantidad=$rowi['not_art_cantidad'];
        $vend_precio=$rowi['not_precio']; //1.000.000
        $vend_iva=$rowi['not_iva']; //19%
        $vend_descuento=$rowi['not_descuento']; //10%

        $precio_total_sin_iva_item=($vend_precio/$iva1)*$vend_cantidad; //precio sin iva  840.336
        $total_iva_item=$precio_total_sin_iva_item*$iva0; // total iva  159.336

        $neto_i+=$precio_total_sin_iva_item;
        $total_iva+=$total_iva_item;
    }

    $total_iva;
      
    array_push($json['tax_totals'], [
                            "tax_id"        => $tipo_impuesto,
                            "tax_amount"    => round($total_iva,2), //TOTAL IVA
                            "percent"       => "$iva_porcentaje", //iva %
                            "taxable_amount"=> round($neto_i,2)   //TOTAL
                        ]);
}





$sumador_total=0;
$neto=0;
$descuento_global=0;
$iva_global=0;
$retencion_global=0;
$sql=mysqli_query($con, "SELECT * from dian_nota_credito_detalle_temp where usuario='$usu_id' and ven_id='$ven_id'");
while ($row=mysqli_fetch_array($sql))
{
    $not_art_id=$row['not_art_id'];
    $registros=mysqli_query($con,"SELECT * FROM articulos WHERE art_id='$not_art_id' ") or die(mysqli_error($con));
    $dato=mysqli_fetch_array($registros); 
    $art_tipo_imp=$dato['art_tipo_imp'];

    $vend_referencia=$row['not_art_referencia'];
    $vend_nombre=$row['not_art_nombre'];
    $vend_cantidad=$row['not_art_cantidad'];
    //$vend_precio=$row['vend_precio']; //1.000.000
    $vend_precio=$row['not_precio']; //1.000.000
    $vend_iva=$row['not_iva']; //19%
    $vend_descuento=$row['not_descuento']; //10%

    // $suma_por_retencion=(($vend_precio1*$ret_porcentaje)/(100-$ret_porcentaje));
    //$vend_precio=$vend_precio1+$suma_por_retencion; //1.000.000

    $iva0=$vend_iva/100; //0.19
    $iva1=1+$iva0; //1.19

    $precio_unitario_sin_iva=$vend_precio/$iva1;  //840.336
    $precio_total_sin_iva=$precio_unitario_sin_iva*$vend_cantidad;
    $descuento_unitario=($vend_descuento/100)*$precio_unitario_sin_iva;  //84033
    $descuento_item=$descuento_unitario*$vend_cantidad;  //84033
    $neto_item=$precio_total_sin_iva;
    $iva_item=($vend_precio-$precio_unitario_sin_iva)*$vend_cantidad;
    $neto+=$precio_total_sin_iva;
    $descuento_global+=$descuento_item;
    $iva_global+=$iva_item;

    // $retencion_unitaria=(($precio_unitario_sin_iva)*($ret_porcentaje/100));
    // $retencion_item=$retencion_unitaria*$vend_cantidad; 
    // $retencion_global+=$retencion_item;
if($descuento_item==0)
  {
      $descuento1="0.00";
  }
  else
  {
      $descuento1=$descuento_item;
  }


    array_push($json['credit_note_lines'], 
    [   "unit_measure_id"          => 70,  //unidad de medida
        "invoiced_quantity"        => "$vend_cantidad", //cantidad
        "line_extension_amount"    => round($precio_total_sin_iva,2), //total sin iva
        "free_of_charge_indicator" => false,

        "allowance_charges" =>  array(
                                array(
                                    "charge_indicator"        => false,
                                    "allowance_charge_reason" => "DESCUENTO GENERAL",
                                    "amount"                  => $descuento1, //descuento
                                    "base_amount"             => round($sumador_total_sindescuento,2)  //total venta
                                  ) ),

        "tax_totals"        =>  array(
                                array(
                                     "tax_id"         => $art_tipo_imp, //codigo iva
                                     "tax_amount"     => round($iva_item,2), //iva total
                                     "taxable_amount" => round($precio_total_sin_iva,2), //total sin iva
                                     "percent"        => "$vend_iva" // % iva
                                  ) ),

       "description"           => "$vend_nombre", //nombre
       "code"                  => "$vend_referencia", //codigo
       "type_item_identification_id"=> 4,
       "price_amount"          =>  round($precio_unitario_sin_iva,2), //precio unitario sin iva
       "base_quantity"         => "$vend_cantidad" //cantidad
    ]);
}
?>