<?php
// Recibimos los datos del formulario mediante POST
$bodega = $_POST["bodega"];
include("datosimpresion.php");

$profeijoFa=$profijo;
$tipofactura=$_POST["tipofactura"];
$mostrarIvas=true;

if($tipofactura=="Pos"){
   $mostrarIvas=false;
}

$regimenTribu=$_POST["regimen"];

if($regimenTribu=='0'){
   $mostrarIvas=false;
}


$valorCrdito=0;
if(isset($_POST["credit"])){
   $valorCrdito=$_POST["credit"];
}
if($tipofactura=="Pos" && $nit==""){
   $tipofactura= "RECIBO DE CAJA";
  
}else{
   

    if(($nit=="1088280263" || $nit=="1040745900-8" || $nit=="42140612" || $nit=="42140612-0") && $tipofactura=="Pos"){
      $tipofactura= "CUENTA DE COBRO";
    
      
  }elseif($nit=="16547405"){
      $tipofactura= "TIPO POS";
  }  
  elseif($tipofactura=="Pos"){
      $tipofactura= "ORDEN PEDIDO";
      
   }
   
   
}



$empresa = [
   'nombre' => $nombreNegocio  ." ". $representante?? '',
   'nit' =>$regimen. "  Nit: ". $nit?? '',
   'direccion' =>$direccion ?? '',
   'telefono' => $tel ?? '',
  
];






// Variables del cliente
$cliente = [
    'nombre' => $_POST["nombrec"] ?? '',
    'documento' => $_POST["idc"]?? '',
    'direccion' => $_POST["direc"]." ". $nombreCity ?? '',
    'telefono' => $_POST["telcli"] ?? '',
    'email' =>$_POST["correo"] ?? ''
];


$valorcufe=$_POST["valorcufe"];
if($valorcufe==1){
  
}

$cufe=0;
$cufe=preg_replace('/\s+/', '', $_POST["cufe"]);
$fecha=$_POST["fecha"];

// Variables de la factura
$factura = [
    'numero' => $_POST["numf"] ?? '',
    'cufe' => $cufe ?? '',
    'fecha' => $_POST["fecha"] ?? ''
];


 $nombrev=$_POST["nombrev"]; //vendedor



 $detalleFa=$_POST["detallef"];

// $descuento=$_POST["descuento"];
// // $regimen=$_POST["regimen"];

// $profeijoFa=$profijo;



// $propina=$_POST["propina"];




// Variables de la resolución

if($tipofactura=="Electronica") {
   $resolucion = [
      'numero_autorizacion' =>$ResolucionElectronico  ?? '',
      'inicio' =>$Efecha ?? '',
      'Rango' =>$prefijoElectro." ". $Erango ?? '',
      'vigencia' => $Evigencia ?? ''
  ];
}else{
   $resolucion = [
      'numero_autorizacion' =>'',
      'inicio' => '',
      'Rango' =>'',
      'vigencia' =>''
  ];
}


$produc=$_POST["factura"];
$productos= json_decode($produc,true);  

$total=$_POST["total"];
$iva5     = number_format((float)$_POST["iva5"], 2, '.', '');
$iva19    = number_format((float)$_POST["iva19"], 2, '.', '');
$base5    = number_format((float)$_POST["base5"], 2, '.', '');
$base19   = number_format((float)$_POST["base19"], 2, '.', '');
$excento  = number_format((float)$_POST["excento"], 2, '.', '');
$otroiva  = number_format((float)$_POST["otroiva"], 2, '.', '');
$baseotro = number_format((float)$_POST["baseotro"], 2, '.', '');
$ivaipc   = number_format((float)$_POST["ivaipc"], 2, '.', '');
$baseipc  = number_format((float)$_POST["baseipc"], 2, '.', '');
$excluido=number_format((float)$_POST["excluido"], 2, '.', '');
// Asignación del valor de $ivaipc a $ipConsumo

$totalExenExcl=$excluido+$excento;
// $excluido=(int)$_POST["excluido"];
$cambio=(int)$_POST["devuleta"];
$totaliva=$iva5 +$iva19 +$otroiva;
if ($mostrarIvas === false) {
   $subtotal=$total;
}else{


   $subtotal=$base19+$base5+$excento+$excluido+$baseotro+$baseipc;
}
 $descuento=$_POST["descuento"];
// Cálculo de los totales
$totales = [
    'subtotal' => $subtotal+$descuento, '0',
    'iva' => $totaliva, '0',
    'descuento' =>  $descuento, '0',
    'total' => $total, '0'
];
$medioPago="Efectivo";
$cufe=preg_replace('/\s+/', '', $_POST["cufe"]);
$efectivo=$_POST["efectivo"];
$trasferencias=$_POST["tcred"];
$tarejtas=$_POST["tdebi"];

$valorCrdito=$_POST["credit"];



$diasVencimiento=$_POST["vencimientoFactura"];

// 2. Creamos un objeto DateTime con la fecha inicial
$date = new DateTime($fecha);

// 3. Sumamos el intervalo de días
// Usamos 'P' (Period) seguido de la cantidad y 'D' (Days)
$date->modify("+$diasVencimiento days");

// 4. Obtenemos la fecha final en el formato deseado
$fechaFinal = $date->format('Y-m-d');



if($valorCrdito>0){
   
   $medioPago="Credito";
}else if($trasferencias>0){
   $medioPago="Transferencia";
}else if($tarejtas>0){
   $medioPago="Tarjeta";
}


// Cálculo de los impuestos (pueden ser más de uno)
// $impuestos = [
//     ['tipo' => 'IVA', 'base' => $totales['subtotal'], 'tarifa' => '19%', 'valor' => $totales['iva']],
//     ['tipo' => 'ICA', 'base' => $totales['subtotal'], 'tarifa' => '1.1x1000', 'valor' => 132.48]
// ];
?>

<!DOCTYPE html>
<html lang="es">
<head>
  <meta charset="UTF-8">
  <title> <?php echo($tipofactura); ?></title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <link href="facturacion/fact/bootstrap.min.css" rel="stylesheet">
    
   <link href="facturacion/fact/style.css" rel="stylesheet">
  <script src="facturacion/qrious.js"></script>


  <style>
    @media print {
      @page { size: letter; margin: 1in; }
    }
    body { font-size: 12px; background: #fff; color: #000; }
    .invoice-box { max-width: 850px; margin: auto; padding: 20px;  }
    .company-logo { max-height: 100px; max-width: 100%; object-fit: contain; }
    .section-title { font-weight: bold; color: #0d6efd; margin-top: 10px; border-bottom: 1px solid #ddd; padding-bottom: 4px; }
    .summary-table td { padding: 4px 8px; }
    .qr-code { width: 120px; height: 80px; display: block; margin-left: auto; margin-right: auto; }
    .cufe { word-break: break-word; font-size: 11px; text-align: center; }
    .table th { background-color: #f0f0f0; }
    .resolucion { font-size: 11px; color: #555; margin-bottom: 5px; }
    .totals-table td { padding: 6px 10px; font-weight: bold; }
    .totals-table th { background-color: #f0f0f0; font-weight: bold; padding: 6px 10px; }
    .summary-table td, .summary-table th { font-size: 12px; padding: 6px 10px; }
    
    
    
      @media print {
  .tablaprod {
    width: 100% !important; /* Asegura que la tabla ocupe todo el ancho disponible */
    border-collapse: collapse; /* Colapsa los bordes para un aspecto más limpio */
   
  }

  .tablaprod th,
  .tablaprod td {
    padding: 3px 5px !important; /* Reduce el padding de celdas para ahorrar espacio */
    word-wrap: break-word; /* Rompe palabras largas si es necesario */
    white-space: normal; /* Permite que el texto se ajuste en varias líneas */
  }

  /* Ajusta el ancho de columnas específicas si alguna es muy ancha */
  .tablaprod th:nth-child(2), /* Descripción */
  .tablaprod td:nth-child(2) {
    width: 35% !important; /* Dale más espacio a la descripción */
  }

  .tablaprod th:nth-child(1), /* Código */
  .tablaprod td:nth-child(1) {
    width: 10% !important;
  }

  /* Oculta columnas que no sean cruciales para la impresión (opcional) */
  /* .table th:nth-child(8), /* Tipo_Imp. */
  /* .table td:nth-child(8) {
    display: none;
  } */
}
    
  

  </style>
</head>
<body>

<div class="invoice-box">

  <div class="d-flex justify-content-between align-items-center m-0">
    <div class="logo-area" style="flex: 1; text-align: left;">
    <?php if (!empty($logo)): ?>
      <img src="<?php echo "facturacion/$logo"; ?>" class="company-logo d-block">
<?php endif; ?>
    </div>
    <div class="text-center" style="flex: 2;">
      <h6 class="mb-0"><strong><?= htmlspecialchars($empresa['nombre']) ?></strong></h6>
      <h6 class="mb-0">  <?= htmlspecialchars($empresa['nit']) ?></h6>
      <p class="mb-0"><?= htmlspecialchars($empresa['direccion']) ?></p>
      <p class="mb-0">Tel: <?= htmlspecialchars($empresa['telefono']) ?></p>
  
    </div>
    <div class="text-center" style="flex: 1;">
      <h5 class="mb-0"> <?php if($tipofactura=="Electronica"){ echo( "Factura Electrónica");}else{echo($tipofactura);} ?> </h5>
      <small>Fecha: <?= htmlspecialchars($factura['fecha']) ?></small><br>
      <h5>No:  <?= htmlspecialchars($factura['numero']) ?></h5>
      <p>Asesor:  <?= $nombrev ?></p>
      
    </div>
  </div>
  <?php if (
    !empty($resolucion['numero_autorizacion'])
): ?>
<div class="m-0">
  <p class="resolucion text-center m-0">
    Número de Autorización: <?= htmlspecialchars($resolucion['numero_autorizacion']) ?> |
    Inicio: <?= htmlspecialchars($resolucion['inicio']) ?> |
    Vigencia: <?= htmlspecialchars($resolucion['vigencia']) ?> |
    Rango: <?= htmlspecialchars($resolucion['Rango']) ?>
  </p>
</div>
<?php endif; ?>

  <div class="row ">
    <div class="col-8 ">
      <div class="section-title m-0">Datos del Cliente</div>
      <table class="table table-sm table-borderless mb-0">
        <tbody>
          <tr>
            <th>Nombre:</th>
            <td><?= htmlspecialchars($cliente['nombre']) ?></td>
            <th>Documento:</th>
            <td><?= htmlspecialchars($cliente['documento']) ?></td>
          </tr>
          <tr>
            <th>Dirección:</th>
            <td><?= htmlspecialchars($cliente['direccion']) ?></td>
            <th>Teléfono:</th>
            <td><?= htmlspecialchars($cliente['telefono']) ?></td>
         
          </tr>
          <th>Email:</th>
          <td colspan="3"><?= htmlspecialchars($cliente['email']) ?></td>
          <tr>
          </tr> 
        </tbody>
      </table>
    </div>

    <?php if (strlen($factura['cufe']) > 5): ?>
  <div class="col-4 text-center d-flex justify-content-center align-items-center ">
    <img id='codigo' alt="QR" class="qr-code">
  </div>
<?php endif; ?>
  </div>
<div class="m-0">
  <?php if (!empty($factura['cufe']) && $factura['cufe'] !== "0"): ?>
  <p class="cufe m-0"><?= htmlspecialchars("Cufe: " . $factura['cufe']) ?></p>
<?php endif; ?>
</div>
  <div class="section-title m-0">Detalle de Productos</div>
  <div class="m-0">
  <table class="table table-bordered table-sm m-0    tablaprod">
    <thead class="text-center">
      <tr>
        <th>Codigo</th>
        <th>Descripcion</th>
        <th class="text-end">V.Ant_Iva</th>
        <th class="text-center">Caja</th>
        <th class="text-center">Frcc</th>
        <th class="text-end">Base</th>
        <th class="text-end">Impuesto</th>
        <th class="text-center">Tipo_Imp.</th>
        <th class="text-end">Desct</th>
        <th class="text-end">Total</th>
      </tr>
    </thead>
    <tbody>
      <?php
      require_once("../../controlador/conexion/conexion.php");
      $conectar = new conexion();
      $conn = $conectar->conectar();
      $produc=$_POST["factura"];
      $fila = json_decode($produc,true);
      // Aquí empieza tu foreach
      foreach ($fila as $valor):

          $codigo = $valor["Codigo"];
          $nombre = $valor["Nombre"];
          $caja = $valor["Cantida_caja"];
          $frcc = $valor["Cantida_frcc"];
         
          $tipoiva = $valor["tipo"];
          $Base = $valor["Base"];
          $iva = $valor["iva"];
        
          if($nit=="42140612" || $nit=="42140612-0"){
                 $valot = $valor["precio"]+$valor["Descu"];
                $Descu = 0;
          }else{
               $valot = $valor["precio"];
               $Descu = $valor["Descu"];
          }

          // Consultar la marca
          $marcar = "SELECT * FROM `productos` INNER JOIN marca ON productos.codmarca = marca.codmarca WHERE codigo = '$codigo'"; 
          $ejecutar = $conn->query($marcar);
          $resultado = mysqli_fetch_object($ejecutar);
          $marca = $resultado ? $resultado->nommarca : '';

          // Validaciones numéricas
          if (!is_numeric($frcc)) { $frcc = 0; }
          if (!is_numeric($caja)) { $caja = 0; }

          // Calcular el precio unitario
          if ($Base == 0 || $mostrarIvas ==false) {
              if ($frcc == 0 && $caja > 0) {
                  $totalunida = $valot / $caja;
              } elseif ($frcc > 0 && $caja == 0) {
                  $totalunida = $valot / $frcc;
              } elseif ($frcc > 0 && $caja > 0) {
                  $totalunida = $valot / $caja;
              }
          } else {
              if ($frcc == 0 && $caja > 0) {
                  $totalunida = $Base / $caja;
              } elseif ($frcc > 0 && $caja == 0) {
                  $totalunida = $Base / $frcc;
              } elseif ($frcc > 0 && $caja > 0) {
                  $totalunida = $Base / $caja;
              }
          }

          // Mostrar vencimientos
          // $mostrarVecimientos = ["2352342233", "75003092", "10013821", "24810597", "4415396"];
          // $mostrarVen = in_array($nit, $mostrarVecimientos);
          $idvencimiento = isset($valor["idvencimeinto"]) ? substr($valor["idvencimeinto"], 0, 100) : "";
        if ($idvencimiento=="" || $idvencimiento==0) { $idvencimiento = ""; }

          // Control de mostrar IVA
          if ($mostrarIvas === false) {
           
              $tipoiva = 0;
              $Base = 0;
              $iva = 0;
              

          }else{

          }

          // Formateo de variables
          $descripcion = "$nombre ($marca) $idvencimiento";

          $totalunida_formato = number_format($totalunida, 2, '.', ',');
          $Base_formato = number_format($Base, 2, '.', ',');
          $iva_formato = number_format($iva, 2, '.', ',');
          $Descu_formato = number_format($Descu, 2, '.', ',');
          $valot_formato = number_format($valot, 2, '.', ',');

      ?>
      
      <tr>
        <td><?= htmlspecialchars($codigo) ?></td>
        <td><?= htmlspecialchars($descripcion) ?></td>
        <td class="text-end"><?= $totalunida_formato ?></td>
        <td class="text-center"><?= htmlspecialchars($caja) ?></td>
        <td class="text-center"><?= htmlspecialchars($frcc) ?></td>
        <td class="text-end"><?= $Base_formato ?></td>
        <td class="text-end"><?= $iva_formato ?></td>
        <td class="text-center"><?= htmlspecialchars($tipoiva) ?></td>
        <td class="text-end"><?= $Descu_formato ?></td>
        <td class="text-end"><?= $valot_formato ?></td>
      </tr>


      <?php
      endforeach;

      if ($mostrarIvas === false) {
          $subtotal = 0; // No olvides usarlo si después sumas
      }
      ?>
    </tbody>
  </table>

  </div>
  <?php if ($mostrarIvas === true): ?>
  <div class="section-title m-0">  Resumen de Impuestos </div>
  <?php endif; ?>
  <div class="row">
    <div class="col-md-6">
    <?php


$impuestos = [];

if ($mostrarIvas === true) {
    if ($excento > 0) {
        $impuestos[] = [
            'tipo' => 'Excento',
            'base' => $excento,
            'imp' => '0',
            'valor' => $excento
        ];
    }

    if ($excluido > 0) {
        $impuestos[] = [
            'tipo' => 'Excluido',
            'base' => $excluido,
            'imp' => '0',
            'valor' => $excluido
        ];
    }

    if ($base19 > 0) {
        $impuestos[] = [
            'tipo' => '19%',
            'base' => $base19,
            'imp' => $iva19,
            'valor' => $base19+$iva19
        ];
    }

    if ($base5 > 0) {
        $impuestos[] = [
            'tipo' => '5%',
            'base' => $base5,
            'imp' => $iva5,
            'valor' => $iva5+$base5
        ];
    }

    if ($baseipc > 0) {
        $impuestos[] = [
            'tipo' => 'IPC',
            'base' => $baseipc,
            'imp' => $ivaipc,
            'valor' => $ivaipc+$baseipc
        ];
    }

    if ($baseotro > 0) {
        $impuestos[] = [
            'tipo' => 'Otro',
            'base' => $baseotro,
            'imp' => $otroiva,
            'valor' => $otroiva+$baseotro
        ];
    }
}
?>


<?php if ($mostrarIvas === true): ?>
<table class="table table-sm summary-table">
    <thead>
        <tr>
            <th>Tipo</th>
            <th class="text-end">Base</th>
            <th class="text-end">Tarifa</th>
            <th class="text-end">Valor</th>
        </tr>
    </thead>
    <tbody>
        <?php foreach ($impuestos as $impuesto): ?>
         <tr>
  <td><?= $impuesto['tipo'] ?></td>
  <td class="text-end"><?= $impuesto['base'] ?></td>
  <td class="text-end"><?= $impuesto['imp'] ?></td>
  <td class="text-end"><?= $impuesto['valor'] ?></td>
</tr>
        <?php endforeach; ?>
    </tbody>
</table>

<?php endif; ?>
      <p><?php  echo( $detalleFa);?> </p>

      
  
   
  
    </div>
     
   
    <div class="col-md-6">
      <table class="table table-sm totals-table">
        <tr>
          <th class="text-end">Subtotal</th>
          <td class="text-end"><?= number_format($totales['subtotal'], 2, '.', ',') ?></td>
        </tr>
        <?php if ($mostrarIvas === true): ?>
         <tr>
            <th class="text-end">IVA</th>
            <td class="text-end"><?= number_format($totales['iva'], 2, '.', ',') ?></td>
         </tr>
         <?php endif; ?>
         <?php if ($totales['descuento'] >0): ?>
        <tr>
          <th class="text-end">Descuento</th>
          <td class="text-end"><?= number_format($totales['descuento'], 2, '.', ',') ?></td>
        </tr>
        <?php endif; ?>
        <tr>
          <th class="text-end"> Total</th>
          <td class="text-end"><?= number_format($totales['total'], 2, '.', ',') ?></td>
          <td class="text-end"><?php echo($medioPago ." ");  if($valorCrdito>0){
              
              echo("<h6>Vencimiento: ".$fechaFinal."</h6>");
            } ?></td>
          
        </tr>
      </table>
      </div>
      <h6 ><small>NOTA : <?php echo($mensajeFactur); ?> </small></h6>
  </div>

  <!-- <div class="text-center mt-4">
    <p><small>NOTA : <?php //echo($mensajeFactur); ?> </small></p>
   
  </div> -->
  <div class="text-center m-0">
    <p><small> Sistema Poscloud Convenio clarisa.co</small></p>
    
  <?php  if( $_POST["tipofactura"]=="Electronica" || $_POST["tipofactura"]=="Pos_Elec"): ?>
      <p><small> Nit: 900707639</small></p>
    <?php endif; ?> 
 
   
  </div>
  
</div>
<script type='text/javascript'>


function imprimir(){
    window.print()
   //  
     let navegador = navigator.userAgent;
     if (navigator.userAgent.match(/Android/i) || navigator.userAgent.match(/webOS/i) || navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPad/i) || navigator.userAgent.match(/iPod/i) || navigator.userAgent.match(/BlackBerry/i) || navigator.userAgent.match(/Windows Phone/i)) {
      
        } else{
         setTimeout(window.close, 300);
        }
 

    }

     setTimeout(imprimir,300);

 
 var valorcuf='<?php echo($valorcufe);  ?> '
 if(valorcuf==1){


    const $imagen = document.querySelector("#codigo")
			
// 		new QRious({
// 			element: $imagen,
//          value: "https://catalogo-vpfe.dian.gov.co/document/searchqr?documentkey=<?php echo($cufe); ?>", // La URL o el texto
// 			size: 130,
// 			backgroundAlpha: 0, // 0 para fondo transparente
// 			foreground: "black", // Color del QR
// 			level: "Q", // Puede ser L,M,Q y H (L es el de menor nivel, H el mayor)
// 		});
//  `

const cufe = "<?php echo $cufe; ?>";

    if (cufe.length > 25) {
        new QRious({
            element: $imagen,
            value: "https://catalogo-vpfe.dian.gov.co/document/searchqr?documentkey=" + cufe,
            size: 130,
            backgroundAlpha: 0,
            foreground: "black",
            level: "Q"
        });
    }













 }


 
</script>
</body>
</html>