Skip to content

Commit

Permalink
Merge pull request #242 from codersfree/report
Browse files Browse the repository at this point in the history
actualizacion templates
  • Loading branch information
giansalex authored Nov 19, 2024
2 parents 5655e6f + f81df7d commit adac7c5
Show file tree
Hide file tree
Showing 5 changed files with 249 additions and 36 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ public function getFunctions()
return [
new TwigFunction('legend', ['Greenter\Report\Filter\ResolveFilter', 'getValueLegend']),
new TwigFunction('qrCode', ['Greenter\Report\Render\QrRender', 'getImage']),
new TwigFunction('qrCodeDespatch', ['Greenter\Report\Render\QrRender', 'getImageDespatch']),
];
}
}
82 changes: 75 additions & 7 deletions packages/report/src/Report/Filter/DocumentFilter.php
Original file line number Diff line number Diff line change
Expand Up @@ -52,17 +52,85 @@ class DocumentFilter
'1' => 'ADICIONAR',
'2' => 'MODIFICAR',
'3' => 'ANULADO'
],
'20' => [
'01' => 'Venta',
'02' => 'Compra',
'04' => 'Traslado entre establecimientos de la misma empresa',
'08' => 'Importación',
'09' => 'Exportación',
'13' => 'Otros',
'14' => 'Venta sujeta a confirmación del comprador',
'18' => 'Traslado emisor itinerante CP',
'19' => 'Traslado a zona primaria'
],
'54' => [
'001' => 'Azúcar y melaza de caña',
'002' => 'Arroz',
'003' => 'Alcohol etílico',
'004' => 'Recursos hidrobiológicos',
'005' => 'Maíz amarillo duro',
'007' => 'Caña de azúcar',
'008' => 'Madera',
'009' => 'Arena y piedra.',
'010' => 'Residuos, subproductos, desechos, recortes, desperdicios y formas primarias derivadas de los mismos',
'011' => 'Bienes gravados con el IGV por renuncia a la exoneración',
'012' => 'Intermediación laboral y tercerización',
'013' => 'Animales vivos',
'014' => 'Carnes y despojos comestibles',
'015' => 'Abonos, cueros y pieles de origen animal',
'016' => 'Aceite de pescado',
'017' => 'Harina, polvo y “pellets” de pescado, crustáceos, moluscos y demás invertebrados acuáticos',
'019' => 'Arrendamiento de bienes',
'020' => 'Mantenimiento y reparación de bienes muebles',
'021' => 'Movimiento de carga',
'022' => 'Otros servicios empresariales',
'023' => 'Leche',
'024' => 'Comisión mercantil',
'025' => 'Fabricación de bienes por encargo',
'026' => 'Servicio de transporte de personas',
'027' => 'Servicio de transporte de carga',
'028' => 'Transporte de pasajeros',
'030' => 'Contratos de construcción',
'031' => 'Oro gravado con el IGV',
'032' => 'Páprika y otros frutos de los generos capsicum o pimienta',
'034' => 'Minerales metálicos no auríferos',
'035' => 'Bienes exonerados del IGV',
'036' => 'Oro y demás minerales metálicos exonerados del IGV',
'037' => 'Demás servicios gravados con el IGV',
'039' => 'Minerales no metálicos',
'040' => 'Bien inmueble gravado con IGV',
'041' => 'Plomo',
'099' => 'Ley 30737'
],
'59' => [
'001' => 'Depósito en cuenta',
'002' => 'Giro',
'003' => 'Transferencia de fondos',
'004' => 'Orden de pago',
'005' => 'Tarjeta de débito',
'006' => 'Tarjeta de crédito emitida en el país por una empresa del sistema financiero',
'007' => 'Cheques con la cláusula de "NO NEGOCIABLE", "INTRANSFERIBLES", "NO A LA ORDEN" u otra equivalente, a que se refiere el inciso g) del artículo 5° de la ley',
'008' => 'Efectivo, por operaciones en las que no existe obligación de utilizar medio de pago',
'009' => 'Efectivo, en los demás casos',
'010' => 'Medios de pago usados en comercio exterior',
'011' => 'Documentos emitidos por las EDPYMES y las cooperativas de ahorro y crédito no autorizadas a captar depósitos del público',
'012' => 'Tarjeta de crédito emitida en el país o en el exterior por una empresa no perteneciente al sistema financiero, cuyo objeto principal sea la emisión y administración de tarjetas de crédito',
'013' => 'Tarjetas de crédito emitidas en el exterior por empresas bancarias o financieras no domiciliadas',
'101' => 'Transferencias - Comercio exterior',
'102' => 'Cheques bancarios - Comercio exterior',
'103' => 'Orden de pago simple - Comercio exterior',
'104' => 'Orden de pago documentario - Comercio exterior',
'105' => 'Remesa simple - Comercio exterior',
'106' => 'Remesa documentaria - Comercio exterior',
'107' => 'Carta de crédito simple - Comercio exterior',
'108' => 'Carta de crédito documentario - Comercio exterior',
'999' => 'Otros medios de pago'
]
];

public function getValueCatalog($value, $code): ?string
{
if (!isset($this->store[$code])) {
return '';
}

$items = $this->store[$code];

return isset($items[$value]) ? $items[$value] : '';
return $this->store[$code][$value] ?? '';
}
}
23 changes: 23 additions & 0 deletions packages/report/src/Report/Render/QrRender.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
use BaconQrCode\Renderer\ImageRenderer;
use BaconQrCode\Renderer\RendererStyle\RendererStyle;
use BaconQrCode\Writer;
use Greenter\Model\Despatch\Despatch;
use Greenter\Model\Sale\BaseSale;

/**
Expand Down Expand Up @@ -44,6 +45,28 @@ public function getImage($sale)
return $this->getQrImage($content);
}

/**
* @param Despatch $despatch
*
* @return string
*/
public function getImageDespatch($despatch)
{
$destinatario = $despatch->getDestinatario();
$params = [
$despatch->getCompany()->getRuc(),
$despatch->getTipoDoc(),
$despatch->getSerie(),
$despatch->getCorrelativo(),
$despatch->getFechaEmision()->format('Y-m-d'),
$destinatario->getTipoDoc(),
$destinatario->getNumDoc(),
];
$content = implode('|', $params).'|';

return $this->getQrImage($content);
}

private function getQrImage(string $content)
{
$renderer = new ImageRenderer(
Expand Down
60 changes: 41 additions & 19 deletions packages/report/src/Report/Templates/despatch.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,8 @@
<td width="40%" align="left"><strong>Fecha Inicio de Traslado:</strong> {{ doc.envio.fecTraslado|date('d/m/Y') }} </td>
</tr>
<tr>
<td width="60%" align="left"><strong>Motivo Traslado:</strong> {{ doc.envio.desTraslado }} </td>
<td width="40%" align="left"><strong>Modalidad de Transporte:</strong> {{ doc.envio.modTraslado }} </td>
<td width="60%" align="left"><strong>Motivo Traslado:</strong> {{ doc.envio.codTraslado|catalog('20') }} </td>
<td width="40%" align="left"><strong>Modalidad de Transporte:</strong> {{ doc.envio.modTraslado|catalog('18') }} </td>
</tr>
<tr>
<td width="60%" align="left"><strong>Peso Bruto Total ({{ doc.envio.undPesoTotal }}):</strong> {{ doc.envio.pesoTotal }} </td>
Expand All @@ -109,25 +109,43 @@
</tr>
</tbody></table>
</div><br>
{% set tr = doc.envio.transportista %}
{% if tr %}
{% set transportista = doc.envio.transportista %}
{% set vehiculo = doc.envio.vehiculo %}
{% set choferes = doc.envio.choferes %}
{% set indicadores = doc.envio.indicadores %}
<div class="tabla_borde">
<table width="100%" border="0" cellpadding="5" cellspacing="0">
<tbody>
<tr>
<td colspan="2">TRANSPORTE</td>
</tr>
{% if transportista %}
<tr class="border_top">
<td width="60%" align="left"><strong>Razón Social:</strong> {{ tr.rznSocial }}</td>
<td width="40%" align="left"><strong>{{ tr.tipoDoc|catalog('06') }}:</strong> {{ tr.numDoc }}</td>
<td width="60%" align="left"><strong>Razón Social:</strong> {{ transportista.rznSocial }}</td>
<td width="40%" align="left"><strong>{{ transportista.tipoDoc|catalog('06') }}:</strong> {{ transportista.numDoc }}</td>
</tr>
{% endif %}
{% if vehiculo or choferes %}
<tr>
<td width="60%" align="left"><strong>Vehiculo:</strong> {{ tr.placa }}</td>
<td width="40%" align="left"><strong>Conductor:</strong> {{ tr.choferTipoDoc|catalog('06') }} {{ tr.choferDoc }}</td>
<td width="60%" align="left">
<strong>Vehículo principal:</strong> {{ vehiculo.placa }}
{% for secundario in vehiculo.secundarios %}
<br>
<strong>Vehículo secundario:</strong> {{ secundario.placa }}
{% endfor %}
</td>
<td width="40%" align="left">
{% for chofer in choferes %}
<strong>Conductor {{chofer.tipo}}:</strong> {{ chofer.tipoDoc|catalog('06') }} {{ chofer.nroDoc }} - {{ chofer.nombres }} {{ chofer.apellidos }}
{% if not loop.last %}
<br>
{% endif %}
{% endfor %}
</td>
</tr>
{% endif %}
</tbody></table>
</div><br>
{% endif %}
<div class="tabla_borde">
<table width="100%" border="0" cellpadding="5" cellspacing="0">
<tbody>
Expand Down Expand Up @@ -176,16 +194,20 @@
<div>
<table>
<tbody>
<tr><td width="100%">
<blockquote>
{% if params.user.footer is defined %}
{{ params.user.footer|raw }}
{% endif %}
{% if params.system.hash is defined and params.system.hash%}
<strong>Resumen:</strong> {{ params.system.hash }}<br>
{% endif %}
<span>Representación Impresa de la {{ name }} ELECTRÓNICA.</span>
</blockquote>
<tr>
<td width="85%">
<blockquote>
{% if params.user.footer is defined %}
{{ params.user.footer|raw }}
{% endif %}
{% if params.system.hash is defined and params.system.hash%}
<strong>Resumen:</strong> {{ params.system.hash }}<br>
{% endif %}
<span>Representación Impresa de la {{ name }} ELECTRÓNICA.</span>
</blockquote>
</td>
<td width="15%" align="right">
<img src="{{ qrCodeDespatch(doc)|image_b64('svg+xml') }}" alt="Qr Image">
</td>
</tr>
</tbody></table>
Expand Down
Loading

0 comments on commit adac7c5

Please sign in to comment.