Plugin: imprimir_continuo

He estado modificando el plugin de imprimir_continuo ya que necesito imprimir varias facturas, hice con html dos campos select donde me arrojan los IDs de las facturas con la finalidad de poner un "DESDE" a un "HASTA".

Todo va bien hasta cuando llego a hacer el loop, ya que los datos de las facturas como codigo, fecha, id si las recibe, pero al hacer un loop dentro de otro loop para el listado de descripción, cantidad, precio unitario e importe empieza mi problema ya que no lo toma como debería. Vi que se usa la función get_lineas pero no entiendo aún como emplearla.

Espero que puedan ayudarme. Gracias
hace 1 mes   joenilson   partner

Hola, si puedes ser mas específico despues de: "Todo va bien hasta cuando llego al loop, ..", no imprime nada?, repite los datos de cabecera?, imprime diferentes numeros de factura pero el mismo contenido?.

el loop lo debes hacer de $factura->get_lineas() que te trae los items de la factura,

Saludos,

JN

hace 1 mes   pierregq_103

Seré más específico hice esta consulta en el Controller

if( isset($_POST['desde']) )
      {
	       $this->facturas = $this->db->select("SELECT * FROM facturascli WHERE idfactura BETWEEN '".$_POST['desde']."' AND '".$_POST['hasta']."'");
		   $this->numero = $this->db->select("SELECT cantidad, descripcion, pvpunitario, pvptotal FROM lineasfacturascli WHERE idfactura BETWEEN '".$_POST['desde']."' AND '".$_POST['hasta']."'");
      }


Y en el HTML coloco esto:

{loop="$fsc->facturas"}
<div class="boleta">
{$fsc->factura->direccion}
<div class="codigoboleta">N-{$value['numero2']} </div>
<div class="fecha">{$value['fecha']}</div>
<div class="codcliente">{$value['codcliente']}</div>
<div class="provincia">{$value['provincia']}</div>
<div class="gestion">{$value['codagente']}
	<b>
	{if condition="$value['codpago']==PEND"}
	
	[P]
	{else}
	[C]
	{/if}
	
	</b></div>
<div class="nombrecliente">{$value['nombrecliente']}</div>

<div class="descripcion">
   {loop="$fsc->numero"}
         <div style="margin-top:0.15cm;">{$value['descripcion']}</div>
   {/loop}
   </div>
   <div class="cantidad">
   {loop="$fsc->numero"}
         <div style="margin-top:0.1cm;">{$value['cantidad']}</div>
         {/loop}
   </div>
   <div class="preciounitario">
    {loop="$fsc->numero"}
         <div style="margin-top:0.1cm;">{$value['pvpunitario']}</div>
    {/loop}
   </div>
   <div class="preciototal">
    {loop="$fsc->numero"}
        <div style="margin-top:0.1cm;"> {$value['pvptotal']}</div>
   {/loop}  
   </div>
   
<div class="numeroletra">{function="numtoletras($value['total'])"}</div>
<div class="total">{$value['total']}</div>

</div>

<div class="saltopagina"></div>
 {/loop}


Hace el Loop de las facturas y todo correcto, pero si hago el loop con ese get_lineas pues me tirar error. En que puedo estar fallando o como puedo hacer de una manera correcta la consulta.

Gracias

hace 1 mes   NeoRazorX   admin

Cuando haces un bucle, cada uno de los elementos es $value1, no $fsc->factura. Sustituye $fsc->factura por $value1, y en las líneas usa $value2 en lugar de $value.

hace 1 mes   pierregq_103

Como que no te entendí muy bien. Podrías ser un tanto más explicito, te lo agradecería.

hace 1 mes   pierregq_103

Lo deje así, pero sigue repitiendo el loop interior.

{loop="$fsc->facturas"}
<div class="boleta">
<br>
<br>
<br>
<br>
<br>
<br>                          {$value['direccion']}
<div class="codigoboleta">N-{$value['numero2']} </div>
<div class="fecha">{$value['fecha']}</div>
<div class="codcliente">{$value['codcliente']}</div>
<div class="provincia">{$value['provincia']}</div>
<div class="gestion">{$value['codagente']}
	<b>
	{if condition="$value['codpago']==PEND"}
	
	[P]
	{else}
	[C]
	{/if}
	
	</b></div>
<div class="nombrecliente">{$value['nombrecliente']}</div>

<div class="descripcion">
   {loop="$fsc->numero"}
         <div style="margin-top:0.15cm;">{$value2['descripcion']}</div>
   {/loop}
   </div>
   <div class="cantidad">
   {loop="$fsc->numero"}
         <div style="margin-top:0.1cm;">{$value2['cantidad']}</div>
         {/loop}
   </div>
   <div class="preciounitario">
    {loop="$fsc->numero"}
         <div style="margin-top:0.1cm;">{$value2['pvpunitario']}</div>
    {/loop}
   </div>
   <div class="preciototal">
    {loop="$fsc->numero"}
        <div style="margin-top:0.1cm;"> {$value2['pvptotal']}</div>
   {/loop}  
   </div>
   
<div class="numeroletra">{function="numtoletras($value['total'])"}</div>
<div class="total">{$value['total']}</div>

</div>

<div class="saltopagina"></div>
 {/loop}


Dejo la imagen para que vean como queda y puedan entenderme
image

hace 1 mes   NeoRazorX   admin

Estás leyendo a lo bruto en lugar de usar modelos.

Mejor ejecuta esto:

$this->facturas = array();
$data = $this->db->select("SELECT * FROM facturascli WHERE idfactura BETWEEN '".$_POST['desde']."' AND '".$_POST['hasta']."'");
if($data)
{
   foreach($data as $d)
   {
      $this->facturas[] = new factura_cliente($d);
   }
}
Así tienes modelos, en lugar de datos a lo bruto. Puedes mostrar $value1->nombrecliente, en lugar de $value1['nombrecliente']. Y puedes hacer $value1->get_lineas();

hace 1 mes   pierregq_103

Gracias, lo probaré y comento. Creo que no estaría mal la idea de implementarlo a futuro como algo nativo en Facturascripts Saludos y gracias por la ayuda.

hace 1 mes   NeoRazorX   admin

Envía lo que avances y lo integro en el plugin.


Si lo deseas, puedes modificar las prioridades de tus peticiones en el plan de desarrollo.

  Plan de desarrollo