55
66namespace FacturaScripts \Plugins \Tickets \Lib \Tickets ;
77
8+ use FacturaScripts \Core \DataSrc \Paises ;
89use FacturaScripts \Core \Plugins ;
910use FacturaScripts \Core \Template \ModelClass ;
1011use 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