Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 34 additions & 2 deletions Lib/Tickets/BaseTicket.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
use Mike42\Escpos\PrintConnectors\DummyPrintConnector;
use Mike42\Escpos\Printer;
use FacturaScripts\Dinamic\Model\Contacto;
use FacturaScripts\Dinamic\Model\Serie;

/**
* @author Carlos Garcia Gomez <carlos@facturascripts.com>
Expand Down Expand Up @@ -558,10 +559,41 @@ protected static function setHeader(ModelClass $model, TicketPrinter $printer, s
static::setHeaderTPV($model, $printer);

// si es un documento de venta
// imprimimos la fecha y el cliente
// imprimimos los datos del cliente
if (in_array($model->modelClassName(), ['PresupuestoCliente', 'PedidoCliente', 'AlbaranCliente', 'FacturaCliente'])) {
static::$escpos->text(static::sanitize(static::$i18n->trans('date') . ': ' . $model->fecha . ' ' . $model->hora) . "\n");
static::$escpos->text(static::sanitize(static::$i18n->trans('customer') . ': ' . $model->nombrecliente) . "\n");

// comrpobar si es un documento simplificado
$isSimplified = false;
$serie = new Serie();
if ($serie->load($model->codserie) && $serie->tipo === 'S') {
$isSimplified = true;
}

// si se permite imprimir los datos fiscales y no es simplificado el documento
if ($printer->print_client_fiscal_data && !$isSimplified) {
// Imprimir todos los datos fiscales
static::$escpos->text(static::sanitize(static::$i18n->trans('customer') . ': ' . $model->nombrecliente) . "\n");
if (!empty($model->cifnif)) {
static::$escpos->text(static::sanitize(static::$i18n->trans('cifnif') . ': ' . $model->cifnif) . "\n");
}
if (!empty($model->direccion)) {
static::$escpos->text(static::sanitize(static::$i18n->trans('address') . ': ' . $model->direccion) . "\n");
}

$location = trim(($model->codpostal ?? '') . ' ' . ($model->ciudad ?? ''));
if (!empty($location)) {
if (!empty($model->provincia)) {
$location .= ', ' . $model->provincia;
}
static::$escpos->text(static::sanitize($location) . "\n");
} elseif (!empty($model->provincia)) {
static::$escpos->text(static::sanitize($model->provincia) . "\n");
}
} else {
// si es simplificada solo imprimir el nombre
static::$escpos->text(static::sanitize(static::$i18n->trans('customer') . ': ' . $model->nombrecliente) . "\n");
}

// si se debe imprimir la dirección de envio
if ($printer->print_shipping_address) {
Expand Down
4 changes: 4 additions & 0 deletions Model/TicketPrinter.php
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,9 @@ class TicketPrinter extends ModelClass
/** @var bool */
public $print_comp_tlf;

/** @var bool */
public $print_client_fiscal_data;

/** @var bool */
public $print_invoice_receipts;

Expand Down Expand Up @@ -118,6 +121,7 @@ public function clear(): void
$this->linelen = 48;
$this->print_comp_shortname = false;
$this->print_comp_tlf = false;
$this->print_client_fiscal_data = false;
$this->print_invoice_receipts = false;
$this->print_lines_description = true;
$this->print_lines_discount = false;
Expand Down
5 changes: 5 additions & 0 deletions Table/tickets_printers.xml
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,11 @@
<type>boolean</type>
<default>false</default>
</column>
<column>
<name>print_client_fiscal_data</name>
<type>boolean</type>
<default>false</default>
</column>
<column>
<name>print_invoice_receipts</name>
<type>boolean</type>
Expand Down
4 changes: 2 additions & 2 deletions Translation/en_EN.json
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,6 @@
"you-can-adjust-parameters": "You can adjust the parameters if necessary.",
"last-activity": "Last activity",
"print-shipping-address": "Print shipping address",
"websocket-error": "Error connecting to the WebSocket",
"you-can-adjust-parameters": "You can adjust the parameters if necessary."
"print-client-fiscal-data": "Print customer's fiscal data",
"websocket-error": "Error connecting to the WebSocket"
}
4 changes: 2 additions & 2 deletions Translation/es_ES.json
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,6 @@
"you-can-adjust-parameters": "Puede ajustar los parámetros si es necesario.",
"last-activity": "Última actividad",
"print-shipping-address": "Imprimir dirección de envío",
"websocket-error": "Error al conectar al websocket",
"you-can-adjust-parameters": "Puede ajustar los parámetros si es necesario."
"print-client-fiscal-data": "Imprimir datos fiscales del cliente",
"websocket-error": "Error al conectar al websocket"
}
3 changes: 3 additions & 0 deletions XMLView/EditTicketPrinter.xml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,9 @@
<column name="print-shipping-address" order="160">
<widget type="checkbox" fieldname="print_shipping_address"/>
</column>
<column name="print-client-fiscal-data" order="165">
<widget type="checkbox" fieldname="print_client_fiscal_data"/>
</column>
</group>
<group name="header" title="header" icon="fa-solid fa-arrows-up-to-line" numcolumns="6">
<column name="ticket-head" numcolumns="12" order="100">
Expand Down
Loading