Skip to content

Commit 31acf36

Browse files
author
Daniel Fernández Giménez
committed
feat: mejorar impresión de datos fiscales y dirección de envío en tickets
1 parent 83bddf9 commit 31acf36

1 file changed

Lines changed: 24 additions & 35 deletions

File tree

Lib/Tickets/BaseTicket.php

Lines changed: 24 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
namespace FacturaScripts\Plugins\Tickets\Lib\Tickets;
77

8+
use FacturaScripts\Core\DataSrc\Paises;
89
use FacturaScripts\Core\Plugins;
910
use FacturaScripts\Core\Template\ModelClass;
1011
use FacturaScripts\Core\Tools;
@@ -563,7 +564,7 @@ protected static function setHeader(ModelClass $model, TicketPrinter $printer, s
563564
if (in_array($model->modelClassName(), ['PresupuestoCliente', 'PedidoCliente', 'AlbaranCliente', 'FacturaCliente'])) {
564565
static::$escpos->text(static::sanitize(static::$i18n->trans('date') . ': ' . $model->fecha . ' ' . $model->hora) . "\n");
565566

566-
// comrpobar si es un documento simplificado
567+
// comprobar si es un documento simplificado
567568
$isSimplified = false;
568569
$serie = new Serie();
569570
if ($serie->load($model->codserie) && $serie->tipo === 'S') {
@@ -573,48 +574,36 @@ protected static function setHeader(ModelClass $model, TicketPrinter $printer, s
573574
// si se permite imprimir los datos fiscales y no es simplificado el documento
574575
if ($printer->print_client_fiscal_data && !$isSimplified) {
575576
// Imprimir todos los datos fiscales
576-
static::$escpos->text(static::sanitize(static::$i18n->trans('customer') . ': ' . $model->nombrecliente) . "\n");
577+
static::$escpos->text(static::sanitize("\n" . static::$i18n->trans('billing-address') . "\n"));
578+
static::$escpos->text(static::sanitize($model->nombrecliente) . "\n");
577579
if (!empty($model->cifnif)) {
578-
static::$escpos->text(static::sanitize(static::$i18n->trans('cifnif') . ': ' . $model->cifnif) . "\n");
579-
}
580-
if (!empty($model->direccion)) {
581-
static::$escpos->text(static::sanitize(static::$i18n->trans('address') . ': ' . $model->direccion) . "\n");
580+
static::$escpos->text(static::sanitize($model->cifnif) . "\n");
582581
}
583582

584-
$location = trim(($model->codpostal ?? '') . ' ' . ($model->ciudad ?? ''));
585-
if (!empty($location)) {
586-
if (!empty($model->provincia)) {
587-
$location .= ', ' . $model->provincia;
588-
}
589-
static::$escpos->text(static::sanitize($location) . "\n");
590-
} elseif (!empty($model->provincia)) {
591-
static::$escpos->text(static::sanitize($model->provincia) . "\n");
592-
}
583+
$billingAddress = Tools::fixHtml($model->direccion);
584+
$billingAddress .= empty($model->apartado) ? '' : ', ' . $model->apartado;
585+
$billingAddress .= empty($model->codpostal) ? '' : ', ' . $model->codpostal;
586+
$billingAddress .= empty($model->ciudad) ? '' : ', ' . Tools::fixHtml($model->ciudad);
587+
$billingAddress .= empty($model->provincia) ? '' : ' (' . Tools::fixHtml($model->provincia) . ')';
588+
$billingAddress .= empty($model->codpais) ? '' : ', ' . Paises::get($model->codpais)->nombre;
589+
static::$escpos->text(static::sanitize($billingAddress) . "\n");
593590
} else {
594-
// si es simplificada solo imprimir el nombre
591+
// si es simplificada solo imprimir el nombre o no permitir imprimir los datos fiscales, solo imprimir el nombre del cliente
595592
static::$escpos->text(static::sanitize(static::$i18n->trans('customer') . ': ' . $model->nombrecliente) . "\n");
596593
}
597594

598595
// si se debe imprimir la dirección de envio
599-
if ($printer->print_shipping_address) {
600-
static::$escpos->text(static::sanitize(static::$i18n->trans('address') . ': '));
601-
$shippingAddress = new Contacto();
602-
603-
if(empty($model->idcontactoenv) && empty($model->direccion)){
604-
// si las dos están vacías entonces un -
605-
static::$escpos->text(static::sanitize(' - '));
606-
607-
} else if ($shippingAddress->load($model->idcontactoenv)) {
608-
// si existe el contacto de envio lo imprimimos
609-
static::$escpos->text(static::sanitize($shippingAddress->direccion) . "\n");
610-
static::$escpos->text(static::sanitize(
611-
$shippingAddress->codpostal . ' (' . $shippingAddress->ciudad . '), ' . $shippingAddress->provincia
612-
) . ", ");
613-
614-
}else{
615-
// sino imprimimos la direccion de factura
616-
static::$escpos->text(static::sanitize($model->direccion) . "\n");
617-
}
596+
$shippingContact = new Contacto();
597+
if ($printer->print_shipping_address && $shippingContact->load($model->idcontactoenv)) {
598+
static::$escpos->text(static::sanitize("\n" . static::$i18n->trans('shipping-address') . "\n"));
599+
600+
$shippingAddress = Tools::fixHtml($shippingContact->direccion);
601+
$shippingAddress .= empty($shippingContact->apartado) ? '' : ', ' . $shippingContact->apartado;
602+
$shippingAddress .= empty($shippingContact->codpostal) ? '' : ', ' . $shippingContact->codpostal;
603+
$shippingAddress .= empty($shippingContact->ciudad) ? '' : ', ' . Tools::fixHtml($shippingContact->ciudad);
604+
$shippingAddress .= empty($shippingContact->provincia) ? '' : ' (' . Tools::fixHtml($shippingContact->provincia) . ')';
605+
$shippingAddress .= empty($shippingContact->codpais) ? '' : ', ' . Paises::get($shippingContact->codpais)->nombre;
606+
static::$escpos->text(static::sanitize($shippingAddress) . "\n");
618607
}
619608

620609
static::$escpos->text("\n");

0 commit comments

Comments
 (0)