diff options
author | Karl Berry <karl@freefriends.org> | 2018-05-23 22:07:19 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-05-23 22:07:19 +0000 |
commit | e0004046da4d90c93c3221cc8acf2aedb5035f26 (patch) | |
tree | 9dacaccbed8f648dbc0c1404cabf3346ed57fa53 | |
parent | 2f73d7559d299f32c5823e644dd517a348397735 (diff) |
factura (23may18)
git-svn-id: svn://tug.org/texlive/trunk@47816 c570f23f-e606-0410-a88d-b1316a301751
21 files changed, 613 insertions, 419 deletions
diff --git a/Master/texmf-dist/doc/latex/factura/factura-beispiel-rechnung.tex b/Master/texmf-dist/doc/latex/factura/factura-beispiel-rechnung.tex index 2f1ff7a492a..1557bd32bdd 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-beispiel-rechnung.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-beispiel-rechnung.tex @@ -39,7 +39,7 @@ %%<desc> %% Adaptado a otra legislación %% (prefactura) Escribimos una prefactura -%% (nospanish) Sin cargar babel en castellano, ‘lmodern’ ni la codificación T1 para la tipografías +%% (nospanish) Sin cargar babel en castellano, ni la codificación T1 para la tipografías %% (\Condiciones) Con condiciones del documento %%</desc> %% @@ -98,7 +98,7 @@ nospanish, \Telefono{+58 (987) 654.32.10} \Email{jacinto@ayala.sv} -\Fecha{06-11-2018} +\Fecha{17-11-2018} \FondoFactura{factura-ejemplo-fondo} diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-cotizacion.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-cotizacion.tex index 5c8b81b4fa2..29886187036 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-cotizacion.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-cotizacion.tex @@ -66,7 +66,7 @@ sintotales, \Telefono{+58 (987) 654.32.10} \Email{jacinto@ayala.sv} -\Fecha{06-11-2018} +\Fecha{17-11-2018} \FondoFactura{factura-ejemplo-fondo} \FirmaFactura{\includegraphics[width=4.5cm]{factura-ejemplo-firma}}[0pt][17pt] diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura01.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura01.tex index c3c15a635cd..b5f2f3d1554 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura01.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura01.tex @@ -56,7 +56,7 @@ \Telefono{+58 (987) 654.32.10} \Email{jacinto@ayala.sv} -\Fecha{06-11-2018} +\Fecha{17-11-2018} \Condiciones{Las condiciones del documento...} \Resumen{El resumen opcional} diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura02.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura02.tex index 1d0dbb40b38..0644e50f441 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura02.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura02.tex @@ -42,6 +42,7 @@ %% (descuentos) Con la columna para descuentos individuales %% (dcu) Primero la descripción, luego la cantidad, luego el precio unitario %% (sinlineasve) Sin líneas verticales externas +%% (sinlineahtot) Sin línea horizontal interna después de los ítems y antes de los totales %% (centradesc) Centra la descripción en los elementos en la factura %% (unafirma) Sólo la firma del emisor %% Usando \Nombre y \CI en lugar de \RazonSocial y \RIF @@ -49,8 +50,8 @@ %% (\SepVertical) Alterando la separación mínima vertical entre los elementos %% (\SepDatosResumen) Alterando la separación horizontal entre los datos del cliente y el resumen %% (\SepEncabezado) Alterando el margen interno desde el contorno hasta el texto en el encabezado -%% (\SepItemsExtra) Agregando una separación extra entre los ítems en la factura %% (\SepDescripcion) Alterando la distancia desde el contorno hasta el texto en la descripción +%% (\SepItemsExtra) Agregando una separación extra entre los ítems en la factura %% (\LineaDescripcion) Alterando la línea de la descripción, la curvatura en la esquina y la sombra %% (\Condiciones) Con condiciones del documento %% (\Resumen) Con resumen @@ -64,6 +65,7 @@ numitem, descuentos, dcu, sinlineasve, +sinlineahtot, centradesc, unafirma, ]{factura} @@ -77,7 +79,7 @@ unafirma, \Telefono{+58 (987) 654.32.10} \Email{jacinto@ayala.sv} -\Fecha{06-11-2018} +\Fecha{17-11-2018} \SepVertical{0.75cm} \SepDatosResumen{1cm} diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura03.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura03.tex index 9e15569bccf..0d00578c493 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura03.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura03.tex @@ -42,7 +42,6 @@ %% (sinlineasvi) Sin líneas verticales internas %% (conlineasha) Separado cada ítem con una línea horizontal %% (expandecuadro) Expande el cuadro de la factura con espacio en blanco -%% (linea) Con línea protectora del espacio en blanco %% (impdesc) Con el tipo de impuesto como parte de la descripción y no de los precios %% (sinfirmas) Sin firmas %% (\FormatoFecha) Cambiando el separador de la fecha para que salga escrita dd/mm/yyyy @@ -61,7 +60,6 @@ agrupado, sinlineasvi, conlineasha, expandecuadro, -linea, impdesc, sinfirmas, ]{factura} @@ -77,7 +75,7 @@ sinfirmas, \Email{jacinto@ayala.sv} \FormatoFecha{ddmmyyyy}{/} -\Fecha{06-11-2018} +\Fecha{17-11-2018} \DescuentoE{15} \DescuentoG{20} diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura04.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura04.tex index b6bc8fb56b8..bacfb9b4366 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura04.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura04.tex @@ -41,8 +41,9 @@ %% (filas) Totalización en modo de filas %% (duc) Primero la descripción, luego el precio unitario, luego la cantidad %% (sinlineasvi) Sin líneas verticales internas -%% (sinlineashi) Sin líneas horizontales internas +%% (sinlineahtit) Sin línea horizontal interna después del título de las columnas %% (expandecuadro) Expande el cuadro de la factura con espacio en blanco +%% (linea) Con línea para inutilizar el espacio en blanco %% Usando \Nombre y \CI en lugar de \RazonSocial y \RIF %% Sin especificar la persona de contacto %% Sin especificar el e-mail del cliente @@ -60,8 +61,9 @@ filas, duc, sinlineasvi, -sinlineashi, +sinlineahtit, expandecuadro, +linea, ]{factura} \input{factura-ejemplo-aux.tex}% Se incluye para efectos del ejemplo, así tendremos disponible la macro \Ejemplo. @@ -72,7 +74,7 @@ expandecuadro, \Direccion{Av. Ayala, Galpón San Vicente, Sector Arauca, Apure, Venezuela} \Telefono{+58 (987) 654.32.10} -\Fecha*{2018}{11}{06} +\Fecha*{2018}{11}{17} \SepItemsExtra{5pt} \LetraDescripcion{\fontsize{20}{30}} diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura05.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura05.tex index 5be5186ff3f..a62bd1d9ec1 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura05.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura05.tex @@ -80,7 +80,7 @@ todosiva, \Conforme{\Contacto} \FormatoFecha[yyyymmdd]{ddmmyyyy}{.} -\Fecha{20181106} +\Fecha{20181117} \SepDatosResumen{1cm} \Condiciones{Las condiciones del documento...} diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura06.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura06.tex index de201b9a742..7f18d08b52f 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura06.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura06.tex @@ -41,7 +41,7 @@ %% (numitem) Con la columna para enumerar los ítems %% (denom) Escribe la denominación (“FACTURA”) y el número %% (sinlineasve) Sin líneas verticales externas -%% (sinlineashe) Sin líneas horizontales externas +%% (sinlineashi) Sin líneas horizontales internas %% (todosiva) Forzando a totalizar todos los IVA así no existan productos gravados con ellos %% Sin especificar el teléfono del cliente %% Sin especificar el e-mail del cliente @@ -60,7 +60,7 @@ numitem, denom, sinlineasve, -sinlineashe, +sinlineashi, todosiva, ]{factura} @@ -75,7 +75,7 @@ todosiva, \Conforme{Ramela San Vicente} \FormatoFecha{default}{/} -\Fecha{06-11-2018} +\Fecha{17-11-2018} \SepEncabezado{16pt} \SepDescripcion{16pt} @@ -85,7 +85,7 @@ todosiva, \begin{document} \begin{factura} - \Item{2}{ítem con IVA general}{1000}\label{primeritem} + \Item{2}{ítem con IVA general}{1000}[Un ítem que ofrecemos a precio de costo y que está gravado con IVA general]\label{primeritem} \Item{10}{otro ítem con IVA general (descripción larga para mostrar el cambio de línea)}{1000} \end{factura} @@ -93,9 +93,9 @@ todosiva, Se facturaron en total \arabic{NumItem} artículos. - En el artículo número \itemref{primeritem} se facturaron \cantref{primeritem} \descref{primeritem} por un valor de \Moneda\puref{primeritem} cada uno, dando un subtotal por este elemento de \Moneda\subtref{primeritem}; el descuento en ese artículo es del \dctoref{primeritem}\%, dando un total de \Moneda\ptref{primeritem}, y esta gravado con IVA de \ivaref{primeritem}\%. + En el artículo número \itemref{primeritem} se facturaron \cantref{primeritem} “\descref{primeritem}”, cada uno por un valor de \Moneda~\puref{primeritem}, dando un subtotal por este elemento de \Moneda~\subtref{primeritem}; el descuento en ese artículo es del \dctoref{primeritem}\%, dando un total de \Moneda~\ptref{primeritem}, y esta gravado con IVA de \ivaref{primeritem}\%. Ampliando la descripción podemos decir que este ítem es: “\ldescref{primeritem}”. - La base imponible total de esta factura es de \Moneda\numprint\BIG; el IVA es de \Moneda\numprint\AlicuotaG, el descuento presidencial en el IVA es de \Moneda\numprint\AlicuotaGDesc, y el total final es de \Moneda\numprint\Total. + La base imponible total de esta factura es de \Moneda~\numprint\BIG; el IVA es de \Moneda~\numprint\AlicuotaG, el descuento presidencial en el IVA es de \Moneda~\numprint\AlicuotaGDesc, y el total final es de \Moneda~\numprint\Total. % Estas son todas las macros para las totalizaciones: \BIG, \BIR, \BIA, \BIE, \AlicuotaG, \AlicuotaGDesc, \AlicuotaR, \AlicuotaA, \SubtG, \SubtR, \SubtA, \SubtE, \DescG, \DescR, \DescA, \DescE. } diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura07.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura07.tex index 4e1b39c9ae5..642282dd01b 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura07.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura07.tex @@ -43,6 +43,7 @@ %% (filas) Totalización en modo de filas %% (centrado) Centrados los totales en el modo de filas %% (denom) Escribe la denominación (“FACTURA”) y el número +%% (sinlineashe) Sin líneas horizontales externas %% (sinmarcas) Cuando la descripción de un ítem ocupa más que una línea, no pone el carácter que indica continuación en la siguiente línea ni los caracteres en las columnas vacías %% (todosiva) Forzando a totalizar todos los IVA así no existan productos gravados con ellos %% Redefiniendo el texto para la cantidad (redefiniendo macro \@@Cantidad) @@ -65,6 +66,7 @@ subtotal, filas, centrado, denom, +sinlineashe, sinmarcas, todosiva, ]{factura} @@ -80,7 +82,7 @@ todosiva, \Telefono{+58 (987) 654.32.10} \Email{jacinto@ayala.sv} -\Fecha{06-11-2018} +\Fecha{17-11-2018} \makeatletter \renewcommand{\@@Cantidad}{Cant.} diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura08.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura08.tex index f341a1d4555..1df84005dd5 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura08.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura08.tex @@ -42,15 +42,14 @@ %% (sinexpandir) Sin expandir el cuadro de la factura ni la descripción %% (siniva) Sin IVA %% (csv) Escribe un archivo CSV con la información numérica de la factura -%% Sin especificar fecha para que tome la del día %% Redefiniendo el formato de la fecha (redefiniendo macros \@@Fecha y \@EstiloFecha) -%% (\Descuento*) Con descuentos totales en moneda aplicables por igual a todos los tipos de elementos existentes +%% (\Descuento*) Con descuentos totales en moneda (y no en porcentajes) aplicables por igual a todos los tipos de elementos existentes %% (\Letra***) Cambiando varias de las tipografías %% (\Condiciones) Con condiciones del documento %% (\Resumen) Con resumen %% (\NotaInterna) Con nota interna %% (\Descripcion) Con descripción larga -%% (\FirmaReporte) Agregando la firma escaneada en el reporte +%% (\FirmaReporte) Agregando la firma escaneada en el reporte; ajustando el corrimiento en “y” de la firma respecto a la línea %%</desc> %% \documentclass[ @@ -69,7 +68,7 @@ csv, \Telefono{+58 (987) 654.32.10} \Email{jacinto@ayala.sv} -% \Fecha{06-11-2018} +\Fecha{17-11-2018} \makeatletter \renewcommand{\@@Fecha}{\slshape FECHA:} diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura09.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura09.tex index 72fdd362645..846c9c64e9e 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura09.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura09.tex @@ -39,22 +39,23 @@ %%<desc> %% Escribimos una factura %% Escribimos en el reverso de la factura +%% (sinlineahni) Sin línea horizontal interna después de la nota interna. %% (G) Escribiendo una letra ‘G’ en los ítems gravados con IVA general así sea el único gravamen a facturar %% (electro) Con descuento en IVA al pagar por medios electrónicos -%% Sin especificar fecha para que tome la del día -%% (\Credito) Especificando la cantidad días para el crédito +%% Con nota interna automática por el descuento en pagos electrónicos. +%% (\Credito) Especificando la cantidad de días para el crédito %% (\SepNotaPrevia) Alterando el margen interno desde el contorno hasta el texto en la nota previa %% (\SepCondiciones) Especificando la distancia desde el contorno hasta el texto de las condiciones, predeterminadamente sin contorno %% (\LineaCondiciones) Agregando el contorno para las condiciones que predeterminadamente está deshabilitado %% (\Condiciones) Con condiciones del documento %% Haciendo mención a las fechas y al crédito en las condiciones %% (\NotaPrevia) Con nota previa -%% Con nota interna predeterminada por usar opción ‘electro’ %% (\NotaExterna) Con nota externa %% (\Descripcion) Con descripción larga %%</desc> %% \documentclass[ +sinlineahni, G, electro, ]{factura} @@ -69,7 +70,7 @@ electro, \Telefono{+58 (987) 654.32.10} \Email{jacinto@ayala.sv} -% \Fecha{06-11-2018} +\Fecha{17-11-2018} \Credito{21} \SepNotaPrevia{16pt} diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura10.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura10.tex index 0bcd75eaa5b..e4d84ed2158 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura10.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura10.tex @@ -40,15 +40,15 @@ %% Escribimos una factura %% Escribimos en el reverso de la factura %% Establecemos las opciones de la clase a través de comandos -%% (sinlineasv) Sin lineas verticales -%% (sinlineash) Sin lineas horizontales -%% (electro) Con descuento en IVA al pagar por medios electrónicos +%% (sinlineasv) Sin líneas verticales +%% (sinlineash) Sin líneas horizontales %% (vencimiento) Con fecha de vencimiento explícita así no haya crédito +%% Sin especificar fecha para que tome la del día. +%% Con nota interna automática con el monto en Bs.S dada la fecha de emisión de la factura antes del cambio en la moneda el dia 04-06-2018. %% (\GeometriaReverso) Cambiando la geometría del reverso de la factura %% (\LineaNotaPrevia) Alterando la línea de la nota previa, para desaparecerla %% (\Condiciones) Con condiciones del documento %% (\NotaPrevia) Con nota previa -%% Con nota interna predeterminada por usar opción ‘electro’ %% (\Descripcion) Con descripción larga %%</desc> %% @@ -59,7 +59,7 @@ sinlineash, csv, % luego queda sin efecto con \csvfalse en el preámbulo ]{factura} -\electrotrue \vencimientotrue \filasfalse \csvfalse +\vencimientotrue \filasfalse \csvfalse \input{factura-ejemplo-aux.tex}% Se incluye para efectos del ejemplo, así tendremos disponible la macro \Ejemplo. \usepackage[utf8]{inputenc} @@ -71,7 +71,7 @@ csv, % luego queda sin efecto con \csvfalse en el preámbulo \Telefono{+58 (987) 654.32.10} \Email{jacinto@ayala.sv} -\Fecha{06-11-2018} +% \Fecha{17-11-2018} \GeometriaReverso{vmargin={4cm,4cm},hmargin={4cm,4cm},footskip=0pt,headsep=0pt,headheight=0pt} \LineaNotaPrevia{0pt} diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-prefactura.pdf b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-prefactura.pdf Binary files differindex 37be63863a6..4d34fd524d6 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-prefactura.pdf +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-prefactura.pdf diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-prefactura.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-prefactura.tex index 3be55075f5a..88a5af01158 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-prefactura.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-prefactura.tex @@ -39,7 +39,7 @@ %%<desc> %% (prefactura) Escribimos una prefactura %% (expandecuadro) Expande el cuadro de la factura con espacio en blanco -%% (linea) Con línea protectora del espacio en blanco +%% (linea) Con línea para inutilizar el espacio en blanco %% (\Descuento) Con descuentos totales en porcentaje aplicables por igual a todos los tipos de elementos existentes %% (\FondoFactura) Con el fondo de la imprenta agregado %% (\Condiciones) Con condiciones del documento @@ -68,7 +68,7 @@ linea, \Telefono{+58 (987) 654.32.10} \Email{jacinto@ayala.sv} -\Fecha{06-11-2018} +\Fecha{17-11-2018} \Descuento{18} \FondoFactura{factura-ejemplo-fondo} diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte1.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte1.tex index 16a9d4d1823..e5c0e89906e 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte1.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte1.tex @@ -70,7 +70,7 @@ conreporte, \Email{jacinto@ayala.sv} \Emisor{Lázaro de la Vega} -\Fecha{06-11-2018} +\Fecha{17-11-2018} \FondoReporte{factura-ejemplo-membrete} \InicioReporte{2.2cm} diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte2.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte2.tex index 66a497c0e18..81809028f39 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte2.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte2.tex @@ -48,7 +48,8 @@ %% Sin resumen %% (\Descripcion) Con descripción larga %% Con etiquetas y referencias -%% (\FirmaReporte) Agregando la firma escaneada en el reporte +%% (\FirmaReporte) Agregando la firma escaneada en el reporte; ajustando el corrimiento en “y” de la firma respecto a la línea +%% Cambiando la ubicación en “x” de la línea de la firma y cambiando la longitud de la línea hacia los lados %%</desc> %% \documentclass[ @@ -67,7 +68,7 @@ soloreporte, \Email{jacinto@ayala.sv} \Proveedor{Lázaro de la Vega y San Román} -\Fecha{06-11-2018} +\Fecha{17-11-2018} \GeometriaReporte{vmargin={4.4cm,2.5cm},hmargin={3cm,2cm},footskip=1.2cm,headsep=0.777cm,headheight=1.5cm} \FondoReporte*{factura-ejemplo-membrete} @@ -81,7 +82,7 @@ soloreporte, \begin{document} \begin{factura} - \Item{2}{ítem con IVA general}{1000}\label{primeritem} + \Item{2}{ítem con IVA general}{1000}[Un ítem que ofrecemos a precio de costo y que está gravado con IVA general]\label{primeritem} \Item{4}{otro ítem con IVA general}{100} \end{factura} @@ -92,12 +93,12 @@ soloreporte, Se facturaron en total \arabic{NumItem} artículos. - En el artículo número \itemref{primeritem} se facturaron \cantref{primeritem} \descref{primeritem} por un valor de \Moneda\puref{primeritem} cada uno, dando un subtotal por este elemento de \Moneda\subtref{primeritem}; el descuento en ese artículo es del \dctoref{primeritem}\%, dando un total de \Moneda\ptref{primeritem}, y esta gravado con IVA de \ivaref{primeritem}\%. + En el artículo número \itemref{primeritem} se facturaron \cantref{primeritem} “\descref{primeritem}”, cada uno por un valor de \Moneda~\puref{primeritem}, dando un subtotal por este elemento de \Moneda~\subtref{primeritem}; el descuento en ese artículo es del \dctoref{primeritem}\%, dando un total de \Moneda~\ptref{primeritem}, y esta gravado con IVA de \ivaref{primeritem}\%. Ampliando la descripción podemos decir que este ítem es: “\ldescref{primeritem}”. - La base imponible total de esta factura es de \Moneda\numprint\BIG; el IVA es de \Moneda\numprint\AlicuotaG, el descuento presidencial en el IVA es de \Moneda\numprint\AlicuotaGDesc, y el total final es de \Moneda\numprint\Total. + La base imponible total de esta factura es de \Moneda~\numprint\BIG; el IVA es de \Moneda~\numprint\AlicuotaG, el descuento presidencial en el IVA es de \Moneda~\numprint\AlicuotaGDesc, y el total final es de \Moneda~\numprint\Total. % Estas son todas las macros para las totalizaciones: \BIG, \BIR, \BIA, \BIE, \AlicuotaG, \AlicuotaGDesc, \AlicuotaR, \AlicuotaA, \SubtG, \SubtR, \SubtA, \SubtE, \DescG, \DescR, \DescA, \DescE. - \FirmaReporte[\includegraphics[width=4.5cm]{factura-ejemplo-firma}][0pt][17pt] + \FirmaReporte[\includegraphics[width=4.5cm]{factura-ejemplo-firma}][0pt][17pt][3cm][3cm] \end{reporte} %% Este es un comando auxiliar suministrado por factura-ejemplo-aux.tex para escribir el detalle del ejemplo en la última hoja. diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte3.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte3.tex index f008077f73f..41a9222b0d7 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte3.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte3.tex @@ -48,7 +48,9 @@ %% (\InfoPagina) Personalizamos la información de la cabecera del reporte y mostramos el nombre del proveedor allí %% (\EstiloPagReporte) Cambiamos el estilo de página para que la información del reporte aparezca como pie de página %% Sin descripción larga -%% (\FirmaReporte) Agregando la firma escaneada en el reporte +%% (\FirmaReporte) Agregando la firma escaneada en el reporte; ajustando el corrimiento en “y” de la firma respecto a la línea +%% Cambiando la ubicación en “x” de la línea de la firma y cambiando la longitud de la línea hacia los lados +%% Cambiando el nombre de la persona que va a firmar %%</desc> %% \documentclass[ @@ -62,7 +64,7 @@ twoside, \RazonSocial{Ayala San Vicente Usureros} \Proveedor{Lázaro de la Vega y San Román} -\Fecha{06-11-2018} +\Fecha{17-11-2018} \TituloReporte{El título del reporte} \InfoPagina{La cabecera o pie del reporte - \Proveedor} @@ -82,7 +84,7 @@ twoside, \begin{reporte} El reporte - página 1\newpage El reporte - página 2 \newpage El reporte - página 3. - \FirmaReporte[\includegraphics[width=4.5cm]{factura-ejemplo-firma}][0pt][17pt]{el que firma}[5cm][0.5cm] + \FirmaReporte[\includegraphics[width=4.5cm]{factura-ejemplo-firma}][0pt][17pt]{el que firma}[4cm][0.8cm] \end{reporte} %% Este es un comando auxiliar suministrado por factura-ejemplo-aux.tex para escribir el detalle del ejemplo en la última hoja. diff --git a/Master/texmf-dist/doc/latex/factura/factura.pdf b/Master/texmf-dist/doc/latex/factura/factura.pdf Binary files differindex 379b60b3131..c9b5d02756d 100644 --- a/Master/texmf-dist/doc/latex/factura/factura.pdf +++ b/Master/texmf-dist/doc/latex/factura/factura.pdf diff --git a/Master/texmf-dist/source/latex/factura/factura.dtx b/Master/texmf-dist/source/latex/factura/factura.dtx index 8778d41e914..0ac333f9c18 100644 --- a/Master/texmf-dist/source/latex/factura/factura.dtx +++ b/Master/texmf-dist/source/latex/factura/factura.dtx @@ -173,9 +173,9 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<class>\ProvidesClass{factura} %<def>\ProvidesFile{factura.def} %<*class|def> -[2018/04/17 v3.47 +[2018/05/22 v3.56 %<class>Clase para elaborar facturas legales -%<class>en la República Bolivariana de Venezuela. +%<class>en la Repu'blica Bolivariana de Venezuela. %<def>Archivo de valores iniciales y condiciones de borde para factura.cls ] @@ -267,22 +267,25 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \catcode`\%=11 \catcode`\|=14 -\NewDocumentCommand{\Ejemplo}{s s s O{0.5} m O{} G{1} o}{| - \IfFileExists{factura-#5.pdf}{| +\NewDocumentCommand{\Ejemplo}{s O{0.5} m s O{} G{1} o}{| + \IfFileExists{factura-#3.pdf}{| \catcode`\<=12 \catcode`\>=12 - \IfBooleanTF{#3}{\def\Ancho{0}\booltrue{DescripEjemplo}}{| - \def\Ancho{#4}\booltrue{Ejemplo}| - \IfBooleanT{#2}{\booltrue{EjemploDer}}| - \IfBooleanTF{#1}{\booltrue{EjemploIzq}}{\booltrue{DescripEjemplo}}}| + \IfBooleanTF{#4} + {\IfBooleanTF{#1} + {\booltrue{DescripEjemplo}} + {\booltrue{Ejemplo}\booltrue{EjemploDer}}} + {\IfBooleanTF{#1} + {\booltrue{Ejemplo}\booltrue{EjemploIzq}} + {\booltrue{Ejemplo}\booltrue{EjemploIzq}\booltrue{DescripEjemplo}}} \ifbool{Ejemplo} - {\ifnum #7=1 {\phantomsection\par\mbox{}\hfill{\color{RoyalBlue}\ttfamily \large factura-#5}\hfill\mbox{}\par}{}\fi} - {}| + {\ifnum #6=1 \def\Ancho{#2}{\phantomsection\par\mbox{}\hfill{\color{RoyalBlue}\ttfamily \large factura-#3}\hfill\mbox{}\par}{}\fi} + {\def\Ancho{0.05}}| \ifbool{EjemploDer}{\hfill}{}| \ifbool{Ejemplo} {\begin{minipage}{\Ancho\linewidth} - \fbox{\includegraphics[page=#7,width=\linewidth-2\fboxrule-2\fboxsep]{factura-#5}} - \IfBooleanF{#1}{\addcontentsline{toc}{subsection}{factura-#5}} + \fbox{\includegraphics[page=#6,width=\linewidth-2\fboxrule-2\fboxsep]{factura-#3}} + \ifbool{DescripEjemplo}{\addcontentsline{toc}{subsection}{factura-#3}}{} \end{minipage}} {}| \ifbool{EjemploIzq}{\hfill}{}| @@ -291,7 +294,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. | Gracias a cfr y a egreg por el esclarecimiento en cuanto a la necesidad de \makeatletter en \CatchFileBetweenDelims y antes de \regexpatchcmd*. | Thanks to cfr and egreg for the clarification on the use of \makeatletter on \CatchFileBetweenDelims and before \regexpatchcmd*. | (https://tex.stackexchange.com/questions/380796/how-to-patch-a-macro-with-control-sequences-using-regexpatch) - \CatchFileBetweenDelims{\DescEjemplo}{factura-#5.tex}{<desc>}{</desc>}[\catcode37=11\catcode13=14\makeatletter]| + \CatchFileBetweenDelims{\DescEjemplo}{factura-#3.tex}{<desc>}{</desc>}[\catcode37=11\catcode13=14\makeatletter]| \catcode`\%=11 \makeatletter | Gracias a Werner y a egreg por el uso de \begingroup\ttfamily\string ... \endgroup. @@ -305,16 +308,16 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \begin{minipage}{\linewidth-\Ancho\linewidth} \begin{itemize} \setlength{\itemsep}{0pt} - #6\DescEjemplo + #5\DescEjemplo \end{itemize} \end{minipage} - \IfValueT{#8}{{#8}}} + \IfValueT{#7}{{#7}}} {}| \boolfalse{Ejemplo}\boolfalse{EjemploIzq}\boolfalse{EjemploDer}\boolfalse{DescripEjemplo}| \catcode`\%=9 \catcode`\<=13 \catcode`\>=13 - }{\message{^^JLaTeX Warning: No existe factura-#5.pdf; hay que compilarlo antes de compilar este documento.^^J}}} + }{\message{^^JLaTeX Warning: No existe factura-#4.pdf; hay que compilarlo antes de compilar este documento.^^J}}} \catcode`\%=14 \catcode`\|=12 @@ -404,17 +407,21 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % v3.40 -> En la misma versión 3.40 se cambió la estructura de la sección de los comandos en esta documentación y se agregó una página de descripción al final de cada ejemplo. - El cambio en la política impositiva reflejado en la versión 3.40 queda sin efecto para fines legales, ya no está vigente dicho descuento; sin embargo, no eliminamos el código que lo produce sino que la clase arroja una advertencia cuando se pide usar la opción de descuentos por pago electrónico.%v3.44 + % v3.44 -> El cambio en la política impositiva reflejado en la versión 3.40 queda sin efecto para fines legales, ya no está vigente dicho descuento; sin embargo, no eliminamos el código que lo produce sino que la clase arroja una advertencia cuando se pide usar la opción de descuentos por pago electrónico. - Desde la versión 3.44 podemos activar cualquier opción de la clase a través de condicionales en el preámbulo y no solamente como una opción al cargar la clase; también se puede ahora quitar el efecto de cualquier opción previamente dada al cargar la clase, esto con el propósito de hacer más versátil el uso de las opciones y así poder incluirlas también en archivos |.tex| o |.def| personalizados.%v3.44 + % v3.44 -> Desde la versión 3.44 podemos activar cualquier opción de la clase a través de condicionales en el preámbulo y no solamente como una opción al cargar la clase; también se puede ahora quitar el efecto de cualquier opción previamente dada al cargar la clase, esto con el propósito de hacer más versátil el uso de las opciones y así poder incluirlas también en archivos |.tex| o |.def| personalizados. - Adicionalmente desde la versión 3.44 el archivo |.log| de las compilaciones tiene como comentario todas las opciones que fueron pedidas al cargar la clase.%v3.44 + % v3.44 -> Adicionalmente desde la versión 3.44 el archivo |.log| de las compilaciones tiene como comentario todas las opciones que fueron pedidas al cargar la clase. La versión 3.47 corrige problemas con la compilación en \LuaLaTeX{} y escribe la versión de la clase en el campo \texttt{Subject} de la {\slshape metadata} del archivo |.pdf| compilado.%v3.45 La versión 3.47 agrega el comando |\Moneda| para cambiar fácilmente la moneda.%v3.46 - {\bfseries La versión 3.47 se saca para dar cumplimiento a la Gaceta Oficial número 41.366 sobre la Reconvesión Monetaria.} La moneda Bolívar pasará a ser Bolívar Soberano eliminando tres ceros. Desde el 1 de mayo del 2018 hay que establecer los montos en Bolívares Soberanos (BsS.) hasta el 4 de junio del año 2018 cuando vuelve a llamarse Bolívar (Bs.) a menos de que el plazo sea extendido y haya que seguir llamando a la moneda Bolívar Soberano (BsS.) temporalmente hasta nuevo aviso según alguna disposición que emita el Banco Central de Venezuela. Si esto ocurriese, es decir, si después del 4 de junio hubiese que continuar llamando BsS a la moneda de curso legal, deberá usarse el comando |\Moneda| para que no se cambie automáticamente la moneda al Bolívar (Bs.) tal como está programado en esta clase. + {\bfseries La versión 3.56 se saca para corregir la versión 3.47 en cuanto a dar cumplimiento al Decreto Presidencial 3.332 sobre la Reconvesión Monetaria.} Desde el 4 de junio del año 2018 la moneda pasará a llamarse Bolívar Soberano (Bs.S) y luego en una fecha aún no definida (la asumimos como el 1 de enero del año 2019) la moneda volverá a llamarse Bolívar (Bs.). Eventualmente el Banco Central de Venezuela emitirá un comunicado para establecer desde cuándo la moneda de curso legal vuelve a llamarse simplemente Bolívar. A partír de esa fecha deberá usarse el comando |\Moneda| para cambiar la moneda a su denominación definitiva mientras no se haya emitido la actualización de esta clase. Esa fecha aún no está determinada, así que la suponemos -y hacemos el cambio de moneda automático en esta clase- como el inicio del año 2019. Antes del 4 de junio, se establece una nota interna automática que escribe el total también en Bolívares Soberanos. + + Por otra parte, la versión 3.56 elimina la inclusión del paquete |lmodern| y discrimina la inclusión de |fontenc| solamente para la compilación con pdf\LaTeX, que es lo correcto. Además, en esta versión se agrega un campo extra opcional en los ítems de la factura para poder agregar una descripción más larga a cada ítem que podrá ser referenciada en otras partes del documento (por ejemplo en el reporte) pero que no aparece en el cuadro de la factura. + + Finalmente, fueron corregidos errores en cuanto al posicionamiento de la línea diagonal y se agregaron las opciones: \texttt{sinlineahni}, \texttt{sinlineahtit} y \texttt{sinlineahtot} para poder quitar las líneas horizontales internas una a una y no como antes, todas a la vez, con \texttt{sinlineashi}. \section*{Agradecimientos} @@ -494,7 +501,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \changes{v2.6}{2016/03/07}{Textos “PAGADO” y “Por el emisor” para las facturas y cotizaciones cuando no se define el emisor del documento.} % \changes{v2.6}{2016/03/07}{Nueva opción \texttt{dosfirmas} para poner las dos firmas en casos en los que lo predeterminado sea una o ninguna firma (cotizaciones o prefacturas).} % \changes{v2.6}{2016/03/07}{Nuevo comando \cs{Conforme} para el nombre de quien recibe la factura.} -% \changes{v2.6}{2016/03/07}{Cambiado el lugar en el código donde se llama a la macro que dibuja la línea “protectora” y se hace ahora con \cs{AddToShipoutPicture} para que no se genere un espacio en blanco extra.} +% \changes{v2.6}{2016/03/07}{Cambiado el lugar en el código donde se llama a la macro que dibuja la línea inutilizadora del espacio en blanco y se hace ahora con \cs{AddToShipoutPicture} para que no se genere un espacio en blanco extra.} % \changes{v2.6}{2016/03/07}{El ejemplo de la documentación es de una cotización y no de una prefactura; actualizada la documentación y los ejemplos.} % \changes{v2.6}{2016/03/07}{En el índice ponemos “entorno” en lugar de “environment”.} % \changes{v2.6}{2016/03/07}{El verbo “poner” es digno para la documentación. No sólo las gallinas ponen.} @@ -521,7 +528,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \changes{v2.82}{2016/06/25}{Reimplementada la línea diagonal para que funcione en todos los casos.} % \changes{v2.82}{2016/06/25}{Nueva macro interna \cs{@ColumnasMultiColumnTotalesAuxCmd} para hacer más general la colocación de los totales en el modo de columnas dentro de un \cs{multicolumn}.} % \changes{v2.82}{2016/06/25}{Quitado el paquete \texttt{MnSymbol} en favor del comando \cs{flechaCR} para la flecha que indica que la descripción ocupa más de una línea.} -% \changes{v3.00}{2016/10/25}{Se agregó la opción \texttt{sinmarcas} para pedir que no se escriba el carácter de fin de linea cuando la descripción ocupa más que una línea y también para evitar que salga el carácter que marca las celdas vacías también cuando la decripción es larga.} +% \changes{v3.00}{2017/03/11}{Se agregó la opción \texttt{sinmarcas} para pedir que no se escriba el carácter de fin de linea cuando la descripción ocupa más que una línea y también para evitar que salga el carácter que marca las celdas vacías también cuando la decripción es larga.} % \changes{v3.00}{2017/03/11}{Nueva macro \cs{SepItemsExtra} para agregar espacio extra entre los ítems en la factura.} % \changes{v3.00}{2017/03/11}{Opción nueva \texttt{sintotales} para que no se escriba ningún total de los elementos. Útil para cotizaciones de por ejemplo varias formas de un mismo producto.} % \changes{v3.00}{2017/03/11}{Opción nueva \texttt{centradesc} para centrar el texto en la descripción de cada elemento en la factura.} @@ -578,8 +585,15 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \changes{v3.47}{2018/04/17}{No compilaba con \LuaLaTeX{} por diferencias en el motor. Ya compila.} % \changes{v3.47}{2018/04/17}{Agrega la versión de la clase bajo \texttt{Subject} en la metadata de los PDF compilados.} % \changes{v3.47}{2018/04/17}{Se agrega la macro \cs{Moneda} para cambiar el signo monetario a usar.} -% \changes{v3.47}{2018/04/17}{Se da cumplimiento a la Gaceta Oficial número 41.366 de la reconversión monetaria.} +% \changes{v3.47}{2018/04/17}{Se da cumplimiento al Decreto Presidencial 3.332 de la reconversión monetaria.} % \changes{v3.47}{2018/04/17}{Cambiados algunos de los \cs{immediate}\cs{write} por \cs{write}.} +% \changes{v3.56}{2018/05/09}{Quitamos \texttt{lmodern} de todas partes y mejoramos la inclusión discrecional de \texttt{fontenc}.} +% \changes{v3.56}{2018/05/21}{Agregada la opción de una descripción larga para cada ítem de la factura únicamente para referenciarla luego en otra parte del documento.} +% \changes{v3.56}{2018/05/21}{La implementación anterior del Bolívar Soberano tenía defectos; ya están corregidos.} +% \changes{v3.56}{2018/05/21}{Volvimos a agregar la macro interna \cs{@TamDescripcion} quitada en la versión v3.40. Sin ella la línea no salía bien con la opción \texttt{filas}.} +% \changes{v3.56}{2018/05/21}{Creamos condicionales internos: \cs{if@ExpandeCuadro} y otros para evaluar la línea inutilizadora del espacio en blanco, así como también unas macros que guardan los valores de \cs{baselineskip} y \cs{tabcolsep} y otros cambios en la línea.} +% \changes{v3.56}{2018/05/21}{Nuevas opciones \texttt{sinlineahni}, \texttt{sinlineahtit} y \texttt{sinlineahtot} para no poner la línea horizontal antes de la nota interna, después del título de las columnas y antes de los totales.} +% \changes{v3.56}{2018/05/21}{Agregamos el paquete \texttt{anyfontsize}.} % % % \tableofcontents @@ -595,7 +609,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % % \section{Introducción} % -% La clase de \LaTeX{} |factura| está diseñada para su uso en la República Bolivariana de Venezuela, conforme a los requerimientos fijados por las providencias del {\slshape SENIAT} 0591, 0257, 0071 y 0048, válidas éstas para abril del año 2018. +% La clase de \LaTeX{} |factura| está diseñada para su uso en la República Bolivariana de Venezuela, conforme a los requerimientos fijados por las providencias del {\slshape SENIAT} 0591, 0257, 0071 y 0048, válidas éstas para mayo del año 2018. % % Con |factura| se pueden elaborar facturas en formas libres fiscales\footnote{En cuanto a las formas libres, cada hoja del talonario de facturas legales tiene un encabezado con los datos del emisor de la factura y un pie de página con la información de identificación de la imprenta, en tamaño de hoja carta entera; esto es lo que se llama “forma libre”.}, cotizaciones y reportes de servicios, dejando todos los cálculos a \TeX{}. % @@ -616,6 +630,8 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % % Aparte, el usuario puede escribir un reporte largo asociado a la factura, es decir, esta clase sirve también para escribir reportes. % +% \newpage +% % % \section{Instalación} % @@ -745,7 +761,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % % Para compilar una |factura| puede usar cualquiera de los motores \LaTeX, pdf\LaTeX, \XeLaTeX{} o \LuaLaTeX, naturalmente con las restricciones que impone cada uno. % -% Hay casos en los que hace falta compilar más de una vez el documento. Dos veces necesita ser compilado un documento cuando alguna descripción en el cuadro de la factura ocupa más que una línea; también dos veces cuando se incluye una firma en el reporte, y más de dos veces cuando se pide que se dibuje una línea oblicua protectora del espacio restante en el cuadro de la factura o cuando se usan etiquetas (sección \ref{sec:etiquetas}). +% Hay casos en los que hace falta compilar más de una vez el documento. Dos veces necesita ser compilado un documento cuando alguna descripción en el cuadro de la factura ocupa más que una línea; también dos veces cuando se incluye una firma en el reporte, y tres o cuatro veces cuando se pide que se dibuje una línea oblicua que inutilice el espacio restante en el cuadro de la factura o cuando se usan etiquetas (sección \ref{sec:etiquetas}). % % Todo documento |.pdf| compilado con la clase |factura| escribe en la {\slshape metadata} del |.pdf| un texto con la versión y la fecha de la clase con la que se compiló; ese texto va en el campo |Subject| de dicha {\slshape metadata}. % @@ -811,7 +827,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % Agrega el monto exento y todos los tipos de IVA en los totales así no se hayan incluído elementos gravados con los distintos tipos de impuesto. % % \DescribeOption{electro} -% {\bfseries Esta opción se deja pero ya no está admitida en la legislación vigente.} Se agrega esta opción para dar cumplimiento con las Gacetas Oficiales números 41239, 41242 y 41244\footnote{De fecha 19, 21 y 26 de septiembre del año 2017, respectivamente. En la última de estas gacetas está la Providencia Administrativa PA0048 del SENIAT.} donde se establece que las operaciones de compra (salvo excepciones establecidas en la Gaceta) gravadas con IVA general gozarán de un descuento cuando son pagadas mediante medios electrónicos. El descuento es del 3\% cuando la factura es de un monto menor a Bs. 2.000.000 y del 5\% cuando el monto de la factura es de Bs. 2.000.000 o más. Al dar esta opción el descuento queda establecido según la Gaceta correspondiente al Decreto Presidencial número 3085. +% {\bfseries Esta opción se deja pero ya no está admitida en la legislación vigente.} Se agrega esta opción para dar cumplimiento con las Gacetas Oficiales números 41239, 41242 y 41244\footnote{De fecha 19, 21 y 26 de septiembre del año 2017, respectivamente. En la última de estas gacetas está la Providencia Administrativa PA0048 del SENIAT.} donde se establece que las operaciones de compra (salvo excepciones establecidas en la Gaceta) gravadas con IVA general gozarán de un descuento cuando son pagadas mediante medios electrónicos. El descuento es del 3\% cuando la factura es de un monto menor a Bs. 2.000.000 y del 5\% cuando el monto de la factura es de Bs. 2.000.000 o más. Al dar esta opción el descuento queda establecido según el Decreto Presidencial número 3085. % % {\itshape Esta opción no es compatible con el modo de totalización en filas.} % @@ -830,13 +846,20 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \DescribeOption{sinlineashe} % \DescribeOption{sinlineashi} % \DescribeOption{sinlineash} -% La clase provee varias opciones para no dibujar las líneas del cuadro de la factura. La clase diferencia entre las líneas internas y las líneas externas. Las líneas externas son las que conforman el contorno externo del cuadro de la factura. Las líneas internas en el caso de las horizontales son la línea que va después del título de cada columna (cantidad, descripción, ...), y la línea que separa los ítems de los totales; en el caso de las verticales, las líneas internas son las que separan las columnas. +% La clase provee varias opciones para no dibujar las líneas del cuadro de la factura. La clase diferencia entre las líneas internas y las líneas externas. Las líneas externas son las que conforman el contorno externo del cuadro de la factura. Las líneas internas en el caso de las horizontales son la línea que va después del título de las columnas (cantidad, descripción, ...), la línea que separa los ítems de los totales y la línea que separa los totales de la nota interna; en el caso de las verticales, las líneas internas son las que separan las columnas. % % Podemos apagar cada conjunto de línea; ya explicado qué es interno y qué es externo, queda aclarar que “ve” significa vertical externa, “vi” vertical interna, “he” horizontal externa y “hi” horizontal interna. Usando |sinlineasv| o |sinlineash| apagamos todas las líneas verticales u horizontales. % +% \DescribeOption{sinlineahtit} +% \DescribeOption{sinlineahtot} +% \DescribeOption{sinlineahni} +% Adicionalmente podemos apagar las líneas horizontales internas por separado, es decir, la línea que va después del título de las columnas la podemos quitar con \texttt{sinlineahtit}, la línea que separa los elementos a facturar de los totales generales se puede quitar con \texttt{sinlineahtot} y la línea que separa los totales de la -opcional- nota interna la podemos quitar con \texttt{sinlineahni}. +% % \DescribeOption{conlineasha} % Agrega una línea horizontal separando cada artículo o ítem de los demás dentro del cuadro de la factura, como las facturas hechas a mano que tienen un espacio determinado para cada artículo. % +% Si no se especifica nada sobre las líneas, saldrán todas ellas (verticales y horizontales) salvo las que separan los ítems a facturar entre sí. +% % % \subsection{Elementos a mostrar o no mostrar en la factura} % @@ -865,7 +888,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % Con esta opción evitamos que se totalicen los elementos en la factura; sólo se presenta el cuadro sin los totales. La utilidad de esto no es en las facturas sino en las cotizaciones para casos donde se muestran variantes del mismo producto para que el cliente elija entre ellos. No tendría sentido totalizar allí sino que funcione como un listado de precios. {\itshape Debe usarse en las cotizaciones porque una factura sin totales no es válida.} % % \DescribeOption{linea} -% Agrega una línea diagonal protegiendo los espacios vacíos en el cuadro de la factura. Esta opción requiere de la opción |expandecuadro|, explicada a continuación. +% Agrega una línea diagonal que inutiliza el espacio vacío en el cuadro de la factura, para evitar posibles futuras adiciones de texto. Esta opción requiere de la opción |expandecuadro|, explicada a continuación. % % % \subsection{Disposición de algunos elementos en la factura} @@ -892,7 +915,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \subsection{Otras opciones} % % \DescribeOption{nospanish} -% No carga |babel| en castellano\footnote{Por ejemplo para cargar {\ttfamily polyglossia} en su lugar.}, la codificación |T1| de las letras ni el paquete |lmodern|. Si no se especifica esta opción todo esto se carga, pero si se quiere no cargar algo de esto, entonces debe especificarse esta opción y cargar lo que se quiera a mano. +% No carga |babel| en castellano\footnote{Por ejemplo para cargar {\ttfamily polyglossia} en su lugar.}, ni la codificación |T1| de las letras en el caso de compilar con pdf\LaTeX. Si no se especifica esta opción se cargan ambos paquetes. % % \DescribeOption{twoside} % Establece que el reporte se imprime por los dos lados del papel. (Obviamente se ignora esta opción cuando el motor no va a generar un reporte puesto que las facturas ocupan una hoja solamente). @@ -904,7 +927,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % % Cualquiera de estas opciones también se puede activar o desactivar en el preámbulo y así poder incluirlas dentro de archivos que vayan a ser cargados con |\input| o |\include| como se explicará en la subsección \ref{subsec:aux}. Esto significa que podremos desactivar una opción que hayamos dado en |\documentclass| o activar alguna que no hayamos activado allí. % -% Para hacer eso debemos usar el condicional que cada opción maneja y activarlo o desactivarlo de la forma como se hace en \TeX{}. El condicional de cada opción tiene el mismo nombre de la opción. Por ejemplo, para quitar las lineas verticales (|sinlineasv|) usaríamos |\sinlineasvtrue| en el preámbulo, o para desactivar la creación del archivo |.csv|, previamente activada en |\documentclass|, usaríamos |\csvfalse|. +% Para hacer eso debemos usar el condicional que cada opción maneja y activarlo o desactivarlo de la forma como se hace en \TeX{}. El condicional de cada opción tiene el mismo nombre de la opción. Por ejemplo, para quitar las líneas verticales (|sinlineasv|) usaríamos |\sinlineasvtrue| en el preámbulo, o para desactivar la creación del archivo |.csv|, previamente activada en |\documentclass|, usaríamos |\csvfalse|. % % } % @@ -985,7 +1008,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % % \DescribeMacro{\PosFirmas}{\color{RoyalBlue}|\PosFirmas|\marg{pos. x-inicial}\marg{pos. x-final}\marg{pos. y}} % -% Con |\PosFirmas| controlamos dónde se ubica la caja que dibuja las lineas para firmar en la factura. {\itshape Aquí delimitamos el intervalo en |X| donde van las firmas, por eso hay una coordenada inicial y una final. La inicial indica dónde empieza la primera linea (para que firme quien recibe), y la coordenada final establece dónde termina la segunda linea para firmar (para que firme el emisor de la factura), que va a estar al lado de la primera. Aquí las coordenadas |X| no aceptan valores negativos; la inicial va medida desde el margen izquierdo y la final va medida desde el margen derecho.} +% Con |\PosFirmas| controlamos dónde se ubica la caja que dibuja las líneas para firmar en la factura. {\itshape Aquí delimitamos el intervalo en |X| donde van las firmas, por eso hay una coordenada inicial y una final. La inicial indica dónde empieza la primera linea (para que firme quien recibe), y la coordenada final establece dónde termina la segunda linea para firmar (para que firme el emisor de la factura), que va a estar al lado de la primera. Aquí las coordenadas |X| no aceptan valores negativos; la inicial va medida desde el margen izquierdo y la final va medida desde el margen derecho.} % % } % @@ -1331,30 +1354,32 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \subsection{Agregando elementos a la factura} % % \noindent +% {\color{Red}|\Item|\marg{cantidad}\marg{descripción}\oarg{descripción para csv}\marg{precio unitario}\oarg{descripción sólo para \\ \mbox{}\hfill referencias}} % \DescribeMacro{\Item} % \DescribeMacro{\ItemR} % \DescribeMacro{\ItemA} % \DescribeMacro{\ItemE} -% {\color{Red}|\Item|\marg{cantidad}\marg{descripción}\oarg{descripción para csv}\marg{precio unitario}} % % Con estos comandos agregamos elementos a la factura propiamente dicha. Con |\Item| agregamos un elemento gravado con IVA general (actualmente 12\%); con |\ItemR| agregamos uno con IVA reducido (8\%), con |\ItemA| uno con IVA adicional (27\%), y con |\ItemE| agregamos un elemento exento de impuesto al valor agregado. % -% Como podemos ver, se especifica la cantidad, luego la descripción y al final el precio unitario, todos entre llaves, pudiendo intercalar entre estos dos últimos un parámetro adicional entre corchetes que sirve para escribir otro texto al archivo |.csv| en sustitución de la descripción, ya que a veces la descripción puede tener macros o caracteres no imprimibles; si se declara una descripción y una descripción para el |.csv|, la factura impresa manejará la descripción dada entre llaves y al archivo |.csv| se escribirá la descripción dada entre corchetes. +% Como podemos ver, se especifica la cantidad, luego la descripción y al final el precio unitario, todos entre llaves, pudiendo intercalar entre estos dos últimos un parámetro adicional entre corchetes que sirve para escribir otro texto al archivo |.csv| en sustitución de la descripción, ya que a veces la descripción puede tener macros o caracteres no imprimibles. Si se declara una descripción y otra descripción para el |.csv|, la factura impresa manejará la descripción dada primero (entre llaves) y en el archivo |.csv| se escribirá la descripción dada después (entre corchetes). +% +% El último parámetro opcional (entre corchetes) es otro campo de descripción pero que no se imprime en el cuadro de la factura sino que se guarda bajo una etiqueta para luego poder usarse en cualquier parte del documento con el comando |\ldescref| (véase la sección \ref{sec:etiquetas} de las etiquetas). Dicha descripción puede tener formato de párrafos largos con saltos de línea. % % También tenemos la posibilidad de agregar un ítem al que no le ponemos precio, por ejemplo por ser parte de un total, y sus argumentos son la cantidad y la descripción nada más. % % \noindent -% \DescribeMacro{\ItemX}{\color{RoyalBlue}|\ItemX|\marg{cantidad}\marg{descripción}\oarg{descripción para csv}} +% \DescribeMacro{\ItemX}{\color{RoyalBlue}|\ItemX|\marg{cantidad}\marg{descripción}\oarg{descripción para csv}\oarg{descripción sólo para referencias}} % % % \subsubsection{Opción `{\ttfamily descuentos}'\label{subsec:descuentos}} % % \noindent +% {\color{Red}|\Item|\marg{cantidad}\marg{descripción}\oarg{descripción para csv}\marg{precio unitario}\marg{\% descuento}\oarg{descrip- \\ \mbox{}\hfill ción sólo para referencias}} % \DescribeMacro{\Item} % \DescribeMacro{\ItemR} % \DescribeMacro{\ItemA} % \DescribeMacro{\ItemE} -% {\color{Red}|\Item|\marg{cantidad}\marg{descripción}\oarg{descripción para csv}\marg{precio unitario}\marg{\% descuento}} % % Cuando pedimos descuentos individuales (opción |descuentos| al cargar la clase), todas las macros |\Item| tienen un posible\footnote{Es un argumento opcional, aunque va entre llaves como todos los demás.} argumento más al final que es el descuento porcentual. No especificarlo da el mismo resultado que un descuento de 0\% sobre ese ítem: % @@ -1366,16 +1391,16 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \DescribeMacro{\ItemR} % \DescribeMacro{\ItemA} % \DescribeMacro{\ItemE} -% {\color{Red}|\Item|\marg{descripción}\oarg{descripción para csv}\marg{precio unitario}} +% {\color{Red}|\Item|\marg{descripción}\oarg{descripción para csv}\marg{precio unitario}\oarg{descripción sólo para referencias}} % -% \noindent {\color{Red}|\Item|\marg{descripción}\oarg{descripción para csv}\marg{precio unitario}\marg{\% descuento}} +% \noindent {\color{Red}|\Item|\marg{descripción}\oarg{descripción para csv}\marg{precio unitario}\marg{\% descuento}\oarg{descripción sólo para \\ \mbox{}\hfill referencias}} % % Por otra parte, si se usa la opción |sincantidad| al cargar la clase, todos los comandos |\Item| aceptan un argumento menos, que es el de la cantidad; eso significa que sin usar la opción |descuentos|, la sintaxis de |\Item| queda como lo indica la primera línea, y usando |descuentos|, queda como lo indica la segunda línea. % % \noindent -% \DescribeMacro{\ItemX}{\color{RoyalBlue}|\ItemX|\marg{descripción}\oarg{descripción para csv}} +% \DescribeMacro{\ItemX}{\color{RoyalBlue}|\ItemX|\marg{descripción}\oarg{descripción para csv}\oarg{descripción sólo para referencias}} % -% Puesto que |\ItemX| se usa para argumentos sin precio, al usar |sincantidad| quedará aceptando solo un argumento obligatorio que es la descripción, y el opcional para la descripción para el archivo |.csv|. Cuando se activa la opción |descuentos|, |\ItemX| queda igual puesto que esta macro no lleva precio, entonces tampoco acepta descuentos. +% Puesto que |\ItemX| se usa para elementos sin precio, al usar |sincantidad| quedará aceptando sólo un argumento obligatorio que es la descripción y dos opcionales para la descripción en el archivo |.csv| y la descripción larga para referenciar luego. Cuando se activa la opción |descuentos|, |\ItemX| queda igual puesto que esta macro no lleva precio, entonces tampoco acepta descuentos. % % {\itshape Todas las variaciones de estos comandos |\Item| pueden apreciarse en los ejemplos.} % @@ -1584,7 +1609,10 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \begin{verbatim} \begin{factura} \Item{1}{Artículo gravado con IVA general}{1000} - \Item{3}{Otro artículo gravado con IVA general}{1500}{10}\label{el-otro} + \Item{3}{Otro artículo gravado con IVA general}{1500}{10}[Descripción larga + para referenciar el reporte u otro fin. + + Con formato de párrafo con saltos de línea si se desea.]\label{el-otro} \end{factura} \end{verbatim} % \iffalse @@ -1600,12 +1628,16 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \noindent \DescribeMacro{\subtref}{\color{RoyalBlue}|\subtref|\marg{etiqueta}}\\ % \noindent \DescribeMacro{\dctoref}{\color{RoyalBlue}|\dctoref|\marg{etiqueta}}\\ % \noindent \DescribeMacro{\ivaref}{\color{RoyalBlue}|\ivaref|\marg{etiqueta}}\\ -% \noindent \DescribeMacro{\ptref}{\color{RoyalBlue}|\ptref|\marg{etiqueta}}\par +% \noindent \DescribeMacro{\ptref}{\color{RoyalBlue}|\ptref|\marg{etiqueta}}\\ +% \noindent \DescribeMacro{\ldescref}{\color{RoyalBlue}|\ldescref|\marg{etiqueta}}\par % % Si se quiere mostrar el número de la línea que ocupa el ítem en la lista lo hacemos con |\itemref|, que en el ejemplo aparecería el número “|2|” indicando que es el segundo ítem de la factura\footnote{Cuando se usa \cs{itemref} conviene enumerar los ítems en la factura con la opción \texttt{numitem}.}. Con |\cantref| escribimos la cantidad del elemento citado mediante la etiqueta, en nuestro ejemplo sería “|3|”. Para la descripción del ítem usamos |\descref|, que en el caso del ejemplo sería el texto “|Otro artículo gravado con IVA general|”. Para el precio unitario usamos |\puref|, en el ejemplo “|1.500,00|”. El subtotal lo mostraríamos con |\subtref|; en nuestro caso “|4.500,00|”. Si se quiere mostrar el porcentaje del descuento del ítem citado usamos |\dctoref|, que para el ejemplo sería “|10|”. Para el porcentaje del IVA, usamos |\ivaref|, en nuestro caso escribiría “|12|”. Por último, para mostrar el precio total usamos |\ptref|, y en nuestro ejemplo eso escribiría “|4.050,00|” puesto que aplicamos un descuento del 10\%. % % Podemos ver que el uso de los comandos |\puref|, |\subtref| y |\ptref| nos muestra el precio en el mismo formato con el que lo vemos en la presentación de la factura, en cuanto al redondeo y al separador de miles y decimal. % +% También podemos referenciar la -opcional- descripción larga que podemos usar por ejemplo en el reporte; esa descripción que va entre corchetes la podremos citar con |\ldescref|, y en nuestro ejemplo sería: +% “Descripción larga para referenciar el reporte u otro fin. Con formato de párrafo con saltos de línea si se desea.”\footnote{Aquí suprimimos los saltos de línea.} +% % Con la asignación de estas etiquetas y su uso mediante las referencias podemos de manera conveniente citar cualquier ítem que se haya facturado, de manera dinámica sin tener que reescribir en la descripción larga o en el reporte aquello que ya se escribió en el cuadro de la factura. Para estas referencias se escogieron nombres de las macros que terminan en “\texttt{ref}” por compatibilidad con comandos de \LaTeX{} como |\pageref|. % % @@ -1672,7 +1704,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % % Estas últimas son las que están definidas dentro de |factura.def|, y que eventualmente puede desearse cambiarlas. % -% Adicionalmente tenemos las macros que escriben el contenido de distintas partes de la factura y el reporte como los datos del cliente, el resumen, la nota previa, las condiciones, los encabezados, la información en el archivo |.csv|, y la macro que dibuja la línea “de protección” dentro del cuadro de la factura. Todas estas son macros internas que no deben ser llamadas por el usuario, y no consideramos que pueda sea necesario cambiarlas. +% Adicionalmente están las macros que se encargan de distintas partes de la factura y del reporte como los datos del cliente, el resumen, la nota previa, las condiciones, los encabezados, la información en el archivo |.csv|, y la macro que dibuja la línea que inutiliza el espacio en blanco. Todas estas son macros internas que no deben ser llamadas por el usuario, y no consideramos que pueda sea necesario cambiarlas. % % Por último, las macros que alojan el diseño \tikz de los datos del cliente, la nota previa, la descripción larga y las condiciones del documento son |\@DatosTIKZ|, |\@NotaPreviaTIKZ|, |\@DescripcionTIKZ| y |\@CondicionesTIKZ|; están definidas en el archivo |factura.def|. % @@ -1708,8 +1740,8 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % G & Agrega una “|G|” en los ítems con IVA general. \\ % impdesc & Escribe la denominación del IVA en la descripción. \\ % iva & Expresa en otra columna el porcentaje de IVA para cada elemento a facturar. \\ -% linea & Dibuja una línea protectora en el cuadro de la factura. \\ -% nospanish & No carga |babel|, |fontenc| ni |lmodern|. \\ +% linea & Dibuja una línea que inutiliza el espacio en blanco en el cuadro de la factura. \\ +% nospanish & No carga |babel| ni |fontenc|. \\ % numitem & Enumera los ítems en la factura en otra columna extra al principio. \\ % prefactura & Imprime una prefactura. \\ % sincantidad & Los artículos van sin expresar su cantidad. \\ @@ -1717,12 +1749,15 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % sinfirmas & No incluye espacios para firmar. \\ % siniva & No incluye IVA, pero lo deja expresado. \\ % sinivaexpresado & No incluye IVA ni lo expresa. \\ -% sinlineasvi & No dibuja las líneas verticales internas. \\ -% sinlineasve & No dibuja las líneas verticales externas. \\ -% sinlineasv & No dibuja ninguna línea vertical. \\ +% sinlineahni & No dibuja la línea horizontal entre totales y nota interna. \\ +% sinlineahtit & No dibuja la línea horizontal del título de las columnas. \\ +% sinlineahtot & No dibuja la línea horizontal entre ítems y totales. \\ % sinlineashi & No dibuja las líneas horizontales internas. \\ % sinlineashe & No dibuja las líneas horizontales externas. \\ % sinlineash & No dibuja ninguna línea horizontal. \\ +% sinlineasvi & No dibuja las líneas verticales internas. \\ +% sinlineasve & No dibuja las líneas verticales externas. \\ +% sinlineasv & No dibuja ninguna línea vertical. \\ % sinmarcas & No escribe el carácter de fin de línea ni el carácter en las celdas vacías \\ % & cuando la descripción ocupa más que una línea. \\ % sinnumero & No pone el número cuando se usa |denom|. \\ @@ -1779,6 +1814,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % |\itemref| & Muestra el número de línea en la factura del ítem referenciado. \\ % |\ivaref| & Muestra al IVA del ítem referenciado. \\ % |\label| & Agrega una etiqueta a un ítem de la factura\footnote{Se mantiene el nombre “\cs{label}” por compatibilidad con los comandos conocidos de \LaTeX. Este comando también se escribe dentro del ambiente \texttt{factura}.}. \\ +% |\ldescref| & Muestra a la descripción larga del ítem referenciado. \\ % \end{tabular} % \newpage % \noindent \begin{tabular}{>{\ttfamily}ll} @@ -1879,35 +1915,35 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \Ejemplo{ejemplo-prefactura} % \newpage % \Ejemplo{ejemplo-factura01} -% \Ejemplo{ejemplo-factura02}[\small\parskip=3pt] +% \Ejemplo{ejemplo-factura02}[\small\parskip=2pt] % \newpage -% \Ejemplo{ejemplo-factura03}[\parskip=2pt] +% \Ejemplo{ejemplo-factura03} % \Ejemplo{ejemplo-factura04} % \newpage % \Ejemplo{ejemplo-factura05} % \Ejemplo{ejemplo-factura06} % \newpage -% \Ejemplo[0.4]{ejemplo-factura07}[\small\parskip=3pt] +% \Ejemplo[0.4]{ejemplo-factura07}[\small\parskip=2pt] % \Ejemplo{ejemplo-factura08} % \newpage % \Ejemplo*[0.49]{ejemplo-factura09} -% \Ejemplo**[0.49]{ejemplo-factura09}{2} -% \Ejemplo***{ejemplo-factura09} +% \Ejemplo[0.49]{ejemplo-factura09}*{2} +% \Ejemplo*{ejemplo-factura09}* % \newpage % \Ejemplo*[0.49]{ejemplo-factura10} -% \Ejemplo**[0.49]{ejemplo-factura10}{2} -% \Ejemplo***{ejemplo-factura10} +% \Ejemplo[0.49]{ejemplo-factura10}*{2} +% \Ejemplo*{ejemplo-factura10}* % \newpage % \Ejemplo*[0.49]{ejemplo-reporte1} -% \Ejemplo**[0.49]{ejemplo-reporte1}{2} +% \Ejemplo[0.49]{ejemplo-reporte1}*{2} % \Ejemplo[0.49]{ejemplo-reporte1}{4}[\slshape Por espacio se omitió la página 2 en esta representación.] % \newpage % \Ejemplo*[0.49]{ejemplo-reporte2} -% \Ejemplo**[0.49]{ejemplo-reporte2}{2} +% \Ejemplo[0.49]{ejemplo-reporte2}*{2} % \Ejemplo[0.49]{ejemplo-reporte2}{3} % \newpage % \Ejemplo*[0.49]{ejemplo-reporte3} -% \Ejemplo**[0.49]{ejemplo-reporte3}{2} +% \Ejemplo[0.49]{ejemplo-reporte3}*{2} % \Ejemplo[0.49]{ejemplo-reporte3}{3} % \newpage % \Ejemplo{beispiel-rechnung} @@ -1933,7 +1969,9 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \newbool{SinCantidad} \newbool{SinLineasVertInt} \newbool{SinLineasVertExt} -\newbool{SinLineasHoriInt} +\newbool{SinLineaHoriNI} +\newbool{SinLineaHoriTit} +\newbool{SinLineaHoriTot} \newbool{SinLineasHoriExt} \newbool{DCU} \newbool{DUC} @@ -1983,6 +2021,9 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \newif\ifsinfirmas \newif\ifsiniva \newif\ifsinivaexpresado +\newif\ifsinlineahni +\newif\ifsinlineahtit +\newif\ifsinlineahtot \newif\ifsinlineash \newif\ifsinlineashe \newif\ifsinlineashi @@ -2010,9 +2051,11 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \newif\if@FondoReporteStar \newif\if@Nombre \newif\if@PruebaRef -\newif\if@LineaCompleta -\newif\if@LineaHastaTotal +\newif\if@ExpandeCuadro \newif\if@LineaDesdeInicio +\newif\if@LineaHastaTotal +\newif\if@LineaHastaFinal +\newif\if@LineaDescripcion \newif\if@BIR \newif\if@BIA \newif\if@Exento @@ -2033,6 +2076,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \newlength{\@TamLineaFirmas} \newlength{\@TamNumItem} \newlength{\@TamCantidad} +\newlength{\@TamDescripcion} \newlength{\@TamPrecioU} \newlength{\@TamPrecioS} \newlength{\@TamDescuento} @@ -2093,6 +2137,8 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \newlength{\@FirmaReportePosX} \newlength{\@FirmaReporteExcesoLinea} \newlength{\@TempDimen} +\newlength{\tabcolsep@@} +\newlength{\baselineskip@@} %% Cajas para uso interno. \newbox{\@CajaDatos} @@ -2138,7 +2184,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \DeclareOption{G}{\Gtrue}% Con esta opción sale la letra 'G' en los items con IVA general, y sale el porcentaje en la base imponible general. \DeclareOption{impdesc}{\impdesctrue}% Para el tipo de impuesto en la descripción y no en el precio unitario y total. \DeclareOption{iva}{\ivatrue}% Para la columna del IVA. -\DeclareOption{linea}{\lineatrue}% Para la línea que protege el espacio en blanco. +\DeclareOption{linea}{\lineatrue}% Para la línea que inutiliza el espacio en blanco. \DeclareOption{nospanish}{\nospanishtrue}% No carga babel en castellano ni la codificación T1 de las letras. \DeclareOption{numitem}{\numitemtrue}% Para poner una columna extra al principio con el número del ítem. \DeclareOption{prefactura}{\prefacturatrue}% La prefactura; con el diseño de la forma libre... para enviar por correo electrónico, fax o imprimir preliminarmente. @@ -2147,6 +2193,9 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \DeclareOption{sinfirmas}{\sinfirmastrue}% No agrega los espacios para firmar. \DeclareOption{sinivaexpresado}{\sinivaexpresadotrue}% Cuando no se cobra IVA y tampoco se quiere que aparezca la totalización del IVA. \DeclareOption{siniva}{\sinivatrue}% No cobra IVA. +\DeclareOption{sinlineahni}{\sinlineahnitrue}% Estilo 'sinlineahni'. +\DeclareOption{sinlineahtot}{\sinlineahtottrue}% Estilo 'sinlineahtot'. +\DeclareOption{sinlineahtit}{\sinlineahtittrue}% Estilo 'sinlineahtit'. \DeclareOption{sinlineashe}{\sinlineashetrue}% Estilo 'sinlineashe'. \DeclareOption{sinlineashi}{\sinlineashitrue}% Estilo 'sinlineashi'. \DeclareOption{sinlineash}{\sinlineashtrue}% Estilo 'sinlineash'. @@ -2182,6 +2231,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \RequirePackage{environ}% Con 'environ' podemos usar tabularx dentro del ambiente de la factura y escribir texto en el enddef. \RequirePackage{fancyhdr}% Las cabeceras fancy; así se use solamente en reporte, hay que cargarlo siempre. \RequirePackage[calc]{datetime2}% Para calcular la fecha del vencimiento del crédito. +\RequirePackage{anyfontsize}% Para las tipografías en tamaños arbitrarios. \RequirePackage{ifxetex}% Para poder modificar correctamente la metadata del PDF y agregar la versión de la clase. \RequirePackage{ifluatex}% Ditto. \RequirePackage{zref-savepos}[2016/05/21]% Para guardar la posición en 'Y' expandiendo el cuadro, para la línea y para la firma en el reporte si la hubiera. @@ -2242,8 +2292,18 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \ifsinlineasv\booltrue{SinLineasVertExt}\booltrue{SinLineasVertInt}\fi \ifsinlineasvi\booltrue{SinLineasVertInt}\fi \ifsinlineasve\booltrue{SinLineasVertExt}\fi - \ifsinlineash\booltrue{SinLineasHoriExt}\booltrue{SinLineasHoriInt}\fi - \ifsinlineashi\booltrue{SinLineasHoriInt}\fi + \ifsinlineash\booltrue{SinLineasHoriExt}\booltrue{SinLineaHoriNI}\booltrue{SinLineaHoriTit}\booltrue{SinLineaHoriTot}\fi + \ifsinlineashi\booltrue{SinLineaHoriNI}\booltrue{SinLineaHoriTit}\booltrue{SinLineaHoriTot}\fi + \ifsinlineahni\booltrue{SinLineaHoriNI}\fi + \ifsinlineahtit\booltrue{SinLineaHoriTit}\fi + \ifsinlineahtot + \iffilas + \CLASSWARNING{Las opciones 'sinlineahtot' y 'filas' no son compatibles. Sin efecto opcio'n 'sinlineahtot'} + \sinlineahtotfalse + \else + \booltrue{SinLineaHoriTot} + \fi + \fi \ifsinlineashe\booltrue{SinLineasHoriExt}\fi \ifdosfirmas @@ -2292,11 +2352,11 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \booltrue{SinCantidad} \ifdcu \dcufalse\@cdutrue\boolfalse{DCU}\boolfalse{PrimeroDescripcion} - \CLASSWARNING{La opción 'sincantidad' no es compatible con 'dcu'. Sin efecto opción 'dcu'} + \CLASSWARNING{La opcio'n 'sincantidad' no es compatible con 'dcu'. Sin efecto opcio'n 'dcu'} \fi \ifduc \ducfalse\@cdutrue\boolfalse{DUC}\boolfalse{PrimeroDescripcion} - \CLASSWARNING{La opción 'sincantidad' no es compatible con 'duc'. Sin efecto opción 'duc'} + \CLASSWARNING{La opcio'n 'sincantidad' no es compatible con 'duc'. Sin efecto opcio'n 'duc'} \fi \fi \ifdescuentos\booltrue{Descuentos}\fi @@ -2305,7 +2365,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \ifdescuentos \booltrue{Subtotal} \else - \CLASSWARNING{La opción 'subtotal' no aplica sin descuentos individuales. Sin efecto opción 'subtotal'} + \CLASSWARNING{La opcio'n 'subtotal' no aplica sin descuentos individuales. Sin efecto opcio'n 'subtotal'} \fi \fi @@ -2313,11 +2373,11 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \ifsintotales \iffilas \filasfalse - \CLASSWARNING{La opción 'sintotales' no aplica para el modo de totalización en filas. Sin efecto opción 'filas'} + \CLASSWARNING{La opcio'n 'sintotales' no aplica para el modo de totalizacio'n en filas. Sin efecto opcio'n 'filas'} \fi \ifcotizacion \else - \CLASSWARNING{La opción 'sintotales' no debe usarse en facturas sino en cotizaciones. No es válida una factura sin totales} + \CLASSWARNING{La opcio'n 'sintotales' no debe usarse en facturas sino en cotizaciones. No es va'lida una factura sin totales} \fi \fi @@ -2325,24 +2385,24 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \iffilas \else \centradofalse - \CLASSWARNING{La opción 'centrado' no es compatible con el modo de totalización en columnas. Sin efecto opción 'centrado'} + \CLASSWARNING{La opcio'n 'centrado' no es compatible con el modo de totalizacio'n en columnas. Sin efecto opcio'n 'centrado'} \fi \fi \ifagrupado \iffilas \agrupadofalse - \CLASSWARNING{La opción 'agrupado' no es compatible con el modo de totalización en filas. Sin efecto opción 'agrupado'} + \CLASSWARNING{La opcio'n 'agrupado' no es compatible con el modo de totalizacio'n en filas. Sin efecto opcio'n 'agrupado'} \fi \fi \ifelectro \booltrue{Electro} \gdef\@NotaInterna{\@TextoDescuentoPresidencial} - \CLASSWARNING{Ya no está vigente el descuento en la alícuota general. Aplicándolo igual como se pidió} - \CLASSINFO{Se estableció el texto aclaratorio del descuento presidencial como 'nota interna'} + \CLASSWARNING{Ya no esta' vigente el descuento en la ali'cuota general. Aplica'ndolo igual como se pidio'} + \CLASSWARNING{Se establecio' el texto aclaratorio del descuento presidencial como 'nota interna'} \iffilas \filasfalse - \CLASSWARNING{La opción 'electro' no es compatible con la opción 'filas'. Sin efecto la opción 'filas'} + \CLASSWARNING{La opcio'n 'electro' no es compatible con la opcio'n 'filas'. Sin efecto la opcio'n 'filas'} \fi \fi @@ -2351,7 +2411,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \ifsinivaexpresado \iffilas \filasfalse - \CLASSWARNING{La opción 'sinivaexpresado' no es compatible con la opción 'filas'. Sin efecto la opción 'filas'} + \CLASSWARNING{La opcio'n 'sinivaexpresado' no es compatible con la opcio'n 'filas'. Sin efecto la opcio'n 'filas'} \else \AtBeginDocument{\gdef\@ImpuestoG{0}\gdef\@ImpuestoR{0}\gdef\@ImpuestoA{0}} \fi @@ -2360,7 +2420,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \iflinea \ifexpandecuadro \else - \CLASSWARNING{La opción 'linea' requiere la opción 'expandecuadro'. Activando la opción 'expandecuadro'} + \CLASSWARNING{La opcio'n 'linea' requiere la opcio'n 'expandecuadro'. Activando la opcio'n 'expandecuadro'} \expandecuadrotrue \fi \fi @@ -2368,8 +2428,13 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \ifnospanish \else \RequirePackage[spanish]{babel}% Babel en castellano. - \RequirePackage[T1]{fontenc}% Codificación T1 para las tipografías. - \IfFileExists{lmodern.sty}{\RequirePackage{lmodern}}{} + \ifxetex + \else + \ifluatex + \else + \RequirePackage[T1]{fontenc}% Codificación T1 para las tipografías; no aplica para XeLaTeX ni LuaLaTeX. + \fi + \fi \fi \ifexpandecuadro @@ -2388,7 +2453,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \@reportetrue \ifsoloreporte \soloreportefalse - \CLASSWARNING{La opción 'soloreporte' no es compatible con 'conreporte'. Sin efecto 'soloreporte'} + \CLASSWARNING{La opcio'n 'soloreporte' no es compatible con 'conreporte'. Sin efecto 'soloreporte'} \fi \fi \ifsoloreporte\@reportetrue\@facturafalse\@reversofalse\fi @@ -2399,7 +2464,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \ifsintotales\else\AtEndDocument{\@EscribeTotalesEnCSV}\fi \else \csvfalse - \CLASSWARNING{La opción 'csv' require generar la factura. Sin efecto opción 'csv'} + \CLASSWARNING{La opcio'n 'csv' require generar la factura. Sin efecto opcio'n 'csv'} \fi \fi @@ -2410,49 +2475,52 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \fi % Escribimos en el .log las opciones cargadas: - \ifagrupado \CLASSINFO{Opción cargada: agrupado}\fi - \ifcentradesc \CLASSINFO{Opción cargada: centradesc}\fi - \ifcentrado \CLASSINFO{Opción cargada: centrado}\fi - \ifconlineasha \CLASSINFO{Opción cargada: conlineasha}\fi - \ifconreporte \CLASSINFO{Opción cargada: conreporte}\fi - \ifcotizacion \CLASSINFO{Opción cargada: cotizacion}\fi - \ifcsv \CLASSINFO{Opción cargada: csv}\fi - \ifdcu \CLASSINFO{Opción cargada: dcu}\fi - \ifdenom \CLASSINFO{Opción cargada: denom}\fi - \ifdescuentos \CLASSINFO{Opción cargada: descuentos}\fi - \ifdosfirmas \CLASSINFO{Opción cargada: dosfirmas}\fi - \ifduc \CLASSINFO{Opción cargada: duc}\fi - \ifelectro \CLASSINFO{Opción cargada: electro}\fi - \ifexpandecuadro \CLASSINFO{Opción cargada: expandecuadro}\fi - \iffilas \CLASSINFO{Opción cargada: filas}\fi - \ifG \CLASSINFO{Opción cargada: G}\fi - \ifimpdesc \CLASSINFO{Opción cargada: impdesc}\fi - \ifiva \CLASSINFO{Opción cargada: iva}\fi - \iflinea \CLASSINFO{Opción cargada: linea}\fi - \ifnospanish \CLASSINFO{Opción cargada: nospanish}\fi - \ifnumitem \CLASSINFO{Opción cargada: numitem}\fi - \ifprefactura \CLASSINFO{Opción cargada: prefactura}\fi - \ifsincantidad \CLASSINFO{Opción cargada: sincantidad}\fi - \ifsinexpandir \CLASSINFO{Opción cargada: sinexpandir}\fi - \ifsinfirmas \CLASSINFO{Opción cargada: sinfirmas}\fi - \ifsiniva \CLASSINFO{Opción cargada: siniva}\fi - \ifsinivaexpresado \CLASSINFO{Opción cargada: sinivaexpresado}\fi - \ifsinlineash \CLASSINFO{Opción cargada: sinlineash}\fi - \ifsinlineashe \CLASSINFO{Opción cargada: sinlineashe}\fi - \ifsinlineashi \CLASSINFO{Opción cargada: sinlineashi}\fi - \ifsinlineasv \CLASSINFO{Opción cargada: sinlineasv}\fi - \ifsinlineasve \CLASSINFO{Opción cargada: sinlineasve}\fi - \ifsinlineasvi \CLASSINFO{Opción cargada: sinlineasvi}\fi - \ifsinmarcas \CLASSINFO{Opción cargada: sinmarcas}\fi - \ifsinnumero \CLASSINFO{Opción cargada: sinnumero}\fi - \ifsinreverso \CLASSINFO{Opción cargada: sinreverso}\fi - \ifsintotales \CLASSINFO{Opción cargada: sintotales}\fi - \ifsoloreporte \CLASSINFO{Opción cargada: soloreporte}\fi - \ifsubtotal \CLASSINFO{Opción cargada: subtotal}\fi - \iftodosiva \CLASSINFO{Opción cargada: todosiva}\fi - \iftwoside \CLASSINFO{Opción cargada: twoside}\fi - \ifunafirma \CLASSINFO{Opción cargada: unafirma}\fi - \ifvencimiento \CLASSINFO{Opción cargada: vencimiento}\fi + \ifagrupado \CLASSINFO{Opcio'n cargada: agrupado}\fi + \ifcentradesc \CLASSINFO{Opcio'n cargada: centradesc}\fi + \ifcentrado \CLASSINFO{Opcio'n cargada: centrado}\fi + \ifconlineasha \CLASSINFO{Opcio'n cargada: conlineasha}\fi + \ifconreporte \CLASSINFO{Opcio'n cargada: conreporte}\fi + \ifcotizacion \CLASSINFO{Opcio'n cargada: cotizacion}\fi + \ifcsv \CLASSINFO{Opcio'n cargada: csv}\fi + \ifdcu \CLASSINFO{Opcio'n cargada: dcu}\fi + \ifdenom \CLASSINFO{Opcio'n cargada: denom}\fi + \ifdescuentos \CLASSINFO{Opcio'n cargada: descuentos}\fi + \ifdosfirmas \CLASSINFO{Opcio'n cargada: dosfirmas}\fi + \ifduc \CLASSINFO{Opcio'n cargada: duc}\fi + \ifelectro \CLASSINFO{Opcio'n cargada: electro}\fi + \ifexpandecuadro \CLASSINFO{Opcio'n cargada: expandecuadro}\fi + \iffilas \CLASSINFO{Opcio'n cargada: filas}\fi + \ifG \CLASSINFO{Opcio'n cargada: G}\fi + \ifimpdesc \CLASSINFO{Opcio'n cargada: impdesc}\fi + \ifiva \CLASSINFO{Opcio'n cargada: iva}\fi + \iflinea \CLASSINFO{Opcio'n cargada: linea}\fi + \ifnospanish \CLASSINFO{Opcio'n cargada: nospanish}\fi + \ifnumitem \CLASSINFO{Opcio'n cargada: numitem}\fi + \ifprefactura \CLASSINFO{Opcio'n cargada: prefactura}\fi + \ifsincantidad \CLASSINFO{Opcio'n cargada: sincantidad}\fi + \ifsinexpandir \CLASSINFO{Opcio'n cargada: sinexpandir}\fi + \ifsinfirmas \CLASSINFO{Opcio'n cargada: sinfirmas}\fi + \ifsiniva \CLASSINFO{Opcio'n cargada: siniva}\fi + \ifsinivaexpresado \CLASSINFO{Opcio'n cargada: sinivaexpresado}\fi + \ifsinlineahni \CLASSINFO{Opcio'n cargada: sinlineahni}\fi + \ifsinlineahtit \CLASSINFO{Opcio'n cargada: sinlineahtit}\fi + \ifsinlineahtot \CLASSINFO{Opcio'n cargada: sinlineahtot}\fi + \ifsinlineash \CLASSINFO{Opcio'n cargada: sinlineash}\fi + \ifsinlineashe \CLASSINFO{Opcio'n cargada: sinlineashe}\fi + \ifsinlineashi \CLASSINFO{Opcio'n cargada: sinlineashi}\fi + \ifsinlineasv \CLASSINFO{Opcio'n cargada: sinlineasv}\fi + \ifsinlineasve \CLASSINFO{Opcio'n cargada: sinlineasve}\fi + \ifsinlineasvi \CLASSINFO{Opcio'n cargada: sinlineasvi}\fi + \ifsinmarcas \CLASSINFO{Opcio'n cargada: sinmarcas}\fi + \ifsinnumero \CLASSINFO{Opcio'n cargada: sinnumero}\fi + \ifsinreverso \CLASSINFO{Opcio'n cargada: sinreverso}\fi + \ifsintotales \CLASSINFO{Opcio'n cargada: sintotales}\fi + \ifsoloreporte \CLASSINFO{Opcio'n cargada: soloreporte}\fi + \ifsubtotal \CLASSINFO{Opcio'n cargada: subtotal}\fi + \iftodosiva \CLASSINFO{Opcio'n cargada: todosiva}\fi + \iftwoside \CLASSINFO{Opcio'n cargada: twoside}\fi + \ifunafirma \CLASSINFO{Opcio'n cargada: unafirma}\fi + \ifvencimiento \CLASSINFO{Opcio'n cargada: vencimiento}\fi % Cargamos aquí 'geometry' para que sea después de haber establecido 'twoside'. \RequirePackage{geometry}} @@ -2503,11 +2571,11 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %% La moneda: \def\@MonedaBs{Bs.} -\def\@MonedaBsS{BsS.} +\def\@MonedaBsS{Bs.S} %% Las fechas de la entrada de la reconversión monetaria: -\DTMsavedate{FechaBsS}{2018-05-01} -\DTMsavedate{FechaBs}{2018-06-04} +\DTMsavedate{FechaBsS}{2018-06-04} +\DTMsavedate{FechaBs}{2019-01-01} %% Al lado de cada ítem va la letra que designa el gravamen que aplica sobre él: \def\@DenomAlicuotaG{G} @@ -2516,7 +2584,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \def\@DenomAlicuotaE{(E)} %% El texto predeterminado para la nota interna por el descuento presidencial. -\def\@TextoDescuentoPresidencial{Se aplica un descuento del \@AlicuotaGDescPorc\% al IVA General seg\'un Decreto Presidencial 3085 en Gaceta Oficial 41239.} +\def\@TextoDescuentoPresidencial{Se aplica un descuento del \@AlicuotaGDescPorc\% al IVA General seg\'un Decreto Presidencial 3.085 en Gaceta Oficial 41.239.} %% Macros que guardan textos que corresponden a nombres de campos: \def\@@Fecha{Fecha de emisi\'on:} @@ -2681,14 +2749,14 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %% Nota interna al cuadro de la factura y nota externa a él (que sale antes de \Descripcion). \NewDocumentCommand{\NotaInterna}{+m}{% - \ifdefvoid{\@NotaInterna}{}{\CLASSWARNING{Se sobreescribió la nota interna automática aclaratoria del descuento presidencial}}% + \ifdefvoid{\@NotaInterna}{}{\CLASSWARNING{Se sobreescribio' la nota interna previamente definida}}% \gdef\@NotaInterna{#1}} \NewDocumentCommand{\NotaExterna}{+m}{\gdef\@NotaExterna{#1}} \AtBeginDocument{% % Si no se especificó fecha, tomamos la de hoy. Además, advertimos cuando el documento se está compilando en una fecha distinta de la fecha establecida en el encabezado. \DTMifsaveddate{FechaEmision}{}{% - \CLASSWARNING{No se especificó fecha. Asumiendo la fecha de hoy}% + \CLASSWARNING{No se especifico' fecha. Asumiendo la fecha de hoy}% \DTMsavedate{FechaEmision}{\the\year-\the\month-\the\day}}% \DTMsavenow{Ahora}% \DTMsaveddatediff{FechaEmision}{Ahora}{\AuxFecha}% @@ -2708,43 +2776,46 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \Moneda{\@MonedaBsS}% \fi \else + \LetraNotaInterna{\fontsize{14}{18}}% + \NotaInterna{\FPupn\TotalBsS{\Total{} 1000 div \@DigitosMoneda{} round}Según Decreto Presidencial 3.332, el total en Bolívares Soberanos es de {\bfseries \@MonedaBsS~\numprint{\TotalBsS}}}% + \CLASSWARNING{Se establecio' el texto aclaratorio sobre el total en Boli'vares Soberanos como una nota interna}% \Moneda{\@MonedaBs}% \fi \fi % Efectuamos distintos chequeos para dar errores o advertencias si faltó algo. - \ifdefvoid{\@RazonSocial}{\CLASSERROR{Hay que definir la razón social}}{}% + \ifdefvoid{\@RazonSocial}{\CLASSERROR{Hay que definir la razo'n social}}{}% \if@reporte - \ifdefvoid{\@Num}{\CLASSWARNING{No se especificó el número de la factura. Puede dar error si el título del reporte no se especifica que aparezca en las cabeceras}}{}% + \ifdefvoid{\@Num}{\CLASSWARNING{No se especifico' el nu'mero de la factura. Puede dar error si el ti'tulo del reporte no se especifica que aparezca en las cabeceras}}{}% \ifdefvoid{\@Proveedor}{% \ifdefvoid{\@Emisor} {\CLASSERROR{Hay que definir el nombre del proveedor cuando se emite un reporte}}% - {\CLASSWARNING{Se toma el emisor como el proveedor por no haberse especificado este último}% + {\CLASSWARNING{Se toma el emisor como el proveedor por no haberse especificado este u'ltimo}% \let\@Proveedor=\@Emisor}} {}% \fi \if@factura \ifdefvoid{\@RIF}{\CLASSERROR{Hay que definir el R.I.F}}{}% - \ifdefvoid{\@Direccion}{\CLASSERROR{Hay que definir la dirección fiscal}}{}% - \ifdefvoid{\@Telefono}{\CLASSWARNING{Pudiera definirse un número telefónico}}{}% - \ifdefvoid{\@Email}{\CLASSWARNING{Pudiera definirse una dirección de correo electrónico}}{}% + \ifdefvoid{\@Direccion}{\CLASSERROR{Hay que definir la direccio'n fiscal}}{}% + \ifdefvoid{\@Telefono}{\CLASSWARNING{Pudiera definirse un nu'mero telefo'nico}}{}% + \ifdefvoid{\@Email}{\CLASSWARNING{Pudiera definirse una direccio'n de correo electro'nico}}{}% \ifdefvoid{\@Condiciones}{\CLASSWARNING{Pudieran definirse las condiciones del documento}}{}% \ifcotizacion - \ifdefvoid{\@FondoFactura}{\CLASSWARNING{En la opción para cotizacion se recomienda agregar el fondo}}{}% + \ifdefvoid{\@FondoFactura}{\CLASSWARNING{En la opcio'n para cotizacion se recomienda agregar el fondo}}{}% \fi \ifprefactura - \ifdefvoid{\@FondoFactura}{\CLASSWARNING{En la opción para prefactura se recomienda agregar el fondo}}{}% + \ifdefvoid{\@FondoFactura}{\CLASSWARNING{En la opcio'n para prefactura se recomienda agregar el fondo}}{}% \fi \ifsinnumero \ifcotizacion \else - \CLASSERROR{La opción para no poner el número sólo es compatible con las cotizaciones}% + \CLASSERROR{La opcio'n para no poner el nu'mero so'lo es compatible con las cotizaciones}% \fi \fi \ifdenom \ifsinnumero \else - \ifdefvoid{\@Num}{\CLASSERROR{Hay que definir el número de la factura}}{}% + \ifdefvoid{\@Num}{\CLASSERROR{Hay que definir el nu'mero de la factura}}{}% \fi \fi \fi @@ -3174,6 +3245,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %% http://tex.stackexchange.com/questions/296035/insert-a-special-character-at-each-end-of-line-in-a-paragraph %% http://tex.stackexchange.com/questions/248944/how-to-put-before-lines \newcommand{\@DescripcionAuxCmd}[2]{% + \immediate\write\@auxout{\gdef\noexpand\@TamDescripcion{\the\linewidth}}% Para poder establecer la línea diagonal hay que saber el tamaño del campo de la descripción. \ifimpdesc\settowidth{\@TempDimen}{\@EscribeTipoDeImpuesto{#2}}\fi \savebox{\@CajaPrueba}{% \parbox[t]{\linewidth}{% @@ -3543,14 +3615,16 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \ifbool{SinLineasVertExt}{}{|}} %% Comando para hacer los cálculos sobre cada ítem y establecer las macros con el contenido de cada ítem introducido. -\NewDocumentCommand{\@CalculaItem}{m m m o m m}{% +%% Aquí tenemos que hacer coincidir los parámetros de \@CalculaItem con los de \@ITEM para poder hacer +%% \let\@CalculaItem\@ITEM cuando no hay factura sino solamente reporte. +\NewDocumentCommand{\@CalculaItem}{m m m o m m +o}{% \addtocounter{NumItem}{1}% % Calculamos. \FPupn\PrecioU{#5 \@DigitosMoneda{} round}% \ifbool{Descuentos} {\ifx\\#6\\\FPset\Dcto{0}\else\FPupn\Dcto{#6 \@DigitosPorc{} round clip}\fi}% Fijamos en 0 el descuento si no se especifica en \Item***. {\FPset\Dcto{#6}% - \FPifeq\Dcto{0}\else\CLASSWARNING{Se pidió un descuento individual sin dar la opción de la clase 'descuentos'. No se tomará en cuenta}\fi + \FPifeq\Dcto{0}\else\CLASSWARNING{Se pidio' un descuento individual sin dar la opcio'n de la clase 'descuentos'. No se tomara' en cuenta}\fi \FPset\Dcto{0}}% También fijamos en 0 el descuento por si se especifica en \Item*** pero no se pide la opción 'descuentos'. \FPupn\PrecioS{#2 \PrecioU{} * \@DigitosMoneda{} round}% \FPupn\PrecioT{100 \Dcto{} 100 - / \PrecioS{} * \@DigitosMoneda{} round}% @@ -3567,6 +3641,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \expandafter\global\expandafter\edef\csname @Item@\romannumeral\value{NumItem}@PrecioU\endcsname{\noexpand\numprint{\PrecioU}}% \expandafter\global\expandafter\edef\csname @Item@\romannumeral\value{NumItem}@PrecioS\endcsname{\noexpand\numprint{\PrecioS}}% \expandafter\global\expandafter\edef\csname @Item@\romannumeral\value{NumItem}@Descuento\endcsname{\noexpand\numprint{\Dcto}}% + \expandafter\gdef\csname @Item@\romannumeral\value{NumItem}@DescripcionLarga\endcsname{#7}% \expandafter\global\expandafter\expandafter\edef\csname @Item@\romannumeral\value{NumItem}@IVA\endcsname{% \noexpand\numprint\expandafter{\csname @Alicuota#1porc\endcsname}}% \expandafter\global\expandafter\edef\csname @Item@\romannumeral\value{NumItem}@PrecioT\endcsname{\noexpand\numprint{\PrecioT}}} @@ -3574,7 +3649,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %% Macro interna para saber si una etiqueta existe o no. \gdef\@pruebaref#1{% \expandafter\ifx\csname @Etiqueta@#1\endcsname\relax - \CLASSWARNING{La etiqueta `#1' no está definida}\ignorespaces + \CLASSWARNING{La etiqueta `#1' no esta' definida}\ignorespaces \@PruebaReffalse \else \@PruebaReftrue @@ -3582,13 +3657,14 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %% Comandos para las referencias: i) referencia al número de ítem, ii) a la cantidad, iii) a la descripción, iv) al precio unitario, v) al descuento, vi) al precio total. \gdef\itemref#1{% - \ifbool{NumItem}{}{\CLASSWARNING{Es recomendable usar la opción 'numitem' para enumerar los ítems}}% + \ifbool{NumItem}{}{\CLASSWARNING{Es recomendable usar la opcio'n 'numitem' para enumerar los i'tems}}% \@pruebaref{#1}\if@PruebaRef \csname @Etiqueta@#1\endcsname \fi} \gdef\cantref#1{\@pruebaref{#1}\if@PruebaRef \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @Cantidad\endcsname \fi} \gdef\descref#1{\@pruebaref{#1}\if@PruebaRef \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @Descripcion\endcsname \fi} \gdef\puref#1{\@pruebaref{#1}\if@PruebaRef \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @PrecioU\endcsname \fi} \gdef\subtref#1{\@pruebaref{#1}\if@PruebaRef \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @PrecioS\endcsname \fi} \gdef\dctoref#1{\@pruebaref{#1}\if@PruebaRef \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @Descuento\endcsname \fi} +\gdef\ldescref#1{\@pruebaref{#1}\if@PruebaRef \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @DescripcionLarga\endcsname \fi} \gdef\ivaref#1{\@pruebaref{#1}\if@PruebaRef \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @IVA\endcsname \fi} \gdef\ptref#1{\@pruebaref{#1}\if@PruebaRef \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @PrecioT\endcsname \fi} @@ -3596,13 +3672,13 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \newcommand{\label@factura}[1]{% \expandafter\ifx\csname @Etiqueta@#1\endcsname\relax \expandafter\global\expandafter\edef\csname @Etiqueta@#1\endcsname{\arabic{NumItem}}\ignorespaces - \CLASSINFO{Etiqueta `#1' definida para el ítem \arabic{NumItem}}% + \CLASSINFO{Etiqueta `#1' definida para el i'tem \arabic{NumItem}}% \else \edef\@label@test@uno{\csname @Etiqueta@#1\endcsname}% \edef\@label@test@dos{\theNumItem}% \ifx\@label@test@uno\@label@test@dos \else - \CLASSWARNING{La etiqueta `#1' se definió más de una vez}\ignorespaces + \CLASSWARNING{La etiqueta `#1' se definio' ma's de una vez}\ignorespaces \fi \fi} @@ -3620,8 +3696,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % Comando auxiliar para abrir el '\multicolumn' para los totales en el modo de columnas y expandir completamente las columnas cuando hay o no barras verticales. \edef\@ColumnasMultiColumnTotalesAuxCmd{% \noexpand\multicolumn{8}{\ifbool{SinLineasVertExt}{}{|} r}\begingroup - \noexpand\ifdim \noexpand\ht\noexpand\@CajaEspacioVacio=0pt - \noexpand\else + \noexpand\if@ExpandeCuadro \noexpand\iflinea\noexpand\zsaveposx{LineaNodoBCoordX}\noexpand\zsaveposy{LineaNodoBCoordY}\noexpand\fi\noexpand\fi% Fijamos la posición (x,y) final para la línea ya que estaremos justo en el punto donde escribimos el total, y hasta allí llega la línea en el modo de columnas. \noexpand\begin{tabular}[b]{@{\noexpand\extracolsep{2\noexpand\tabcolsep}}lr \ifbool{SinLineasVertExt}{}{|}}} @@ -3632,18 +3707,17 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \setlength{\@EspacioVacioFinal}{\zposy{EspacioVacioFinal}sp}% \global\@EspacioVacioInicial=\@EspacioVacioInicial% Hay que globalizarlas \global\@EspacioVacioFinal=\@EspacioVacioFinal - \savebox{\@CajaEspacioVacio}{\parbox[b][\@EspacioVacioInicial-\@EspacioVacioFinal]{0pt}{% + \savebox{\@CajaEspacioVacio}{\parbox[b][\@EspacioVacioInicial-\@EspacioVacioFinal]{\@TamDescripcion}{% \iflinea - \if@LineaCompleta + \if@LineaHastaFinal \zsaveposy{LineaNodoBCoordY}% \else - \if@LineaHastaTotal - \else + \if@LineaDescripcion \zsaveposx{LineaNodoACoordX}\mbox{}\hfill \zsaveposx{LineaNodoBCoordX}\zsaveposy{LineaNodoBCoordY}% \fi \fi \fi}}% - \ifdim \ht\@CajaEspacioVacio=0pt \global\lineafalse \fi + \ifdim \ht\@CajaEspacioVacio=0pt \global\lineafalse \else \@ExpandeCuadrotrue \fi \fi \ifx\undefined\Total\relax\else\CLASSERROR{Parece ya haberse usado un entorno de factura}\fi @@ -3685,9 +3759,9 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \global\@SeparaItemsExtraFinal=\@SeparaItemsExtraFinal} % % Comando interno general para agregar cualquier ítem. - \NewDocumentCommand{\@ITEM}{m m m o m m}{% - % 1. [R|G|A|E|X]; 2. cantidad; 3. descripción; 4. descripción para el csv (entre corchetes); 5. p/u; 6. dcto. - \@CalculaItem{##1}{##2}{##3}{##5}{##6}% + \NewDocumentCommand{\@ITEM}{m m m o m m +o}{% + % 1. [R|G|A|E|X]; 2. cantidad; 3. descripción; 4. descripción para el csv (entre corchetes); 5. p/u; 6. dcto; 7. la descripción para el reporte. + \@CalculaItem{##1}{##2}{##3}{##5}{##6}[##7]% % Si no es el primer ítem, entonces hace falta \\ para terminar el ítem anterior. \ifnum\value{NumItem}=1% Aquí, \@CalculaItem aumenta en 1 el contador NumItem, que si vale 1 significa que aún no hemos procesado la línea 1, es decir, no hay que hacer el salto de línea. La última línea se termina en otro lado. \else @@ -3718,7 +3792,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. {\@DescripcionAuxCmd{##3}{##1}}% cdu. & % Cuarto campo: Acá puede ir el precio unitario (cdu y dcu) o la cantidad (duc). - \FPifeq\PrecioU{##5}\else\CLASSWARNING{Se está introduciendo un precio con más de dos decimales: (##3 - ##5. Redondeado a \PrecioU)}{}\fi% Advertimos cuando el precio unitario tiene más de dos decimales. + \FPifeq\PrecioU{##5}\else\CLASSWARNING{Se esta' introduciendo un precio con ma's de dos decimales: (##3 - ##5. Redondeado a \PrecioU)}{}\fi% Advertimos cuando el precio unitario tiene más de dos decimales. \ifbool{SinCantidad}{}{% \ifduc \David@XRight{\@CantidadAuxCmd{\mbox{}\hfill \@LetraNumeros \numprint{##2}\hfill\mbox{}}}% duc. @@ -3797,11 +3871,15 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % Usamos la definición de \label@factura dentro del entorno de la factura para que sea local aquí nada más. \let\label\label@factura \@LetraItems% Este es el tipo de letra que tendrán los ítems, y en este tipo de letra se define el \baselineskip de toda la factura. + \setlength{\baselineskip@@}{\baselineskip}% + \global\baselineskip@@=\baselineskip@@ \@FacturaAuxInicioCmd \ifbool{SinLineasHoriExt}{}{\hline}% \@ZERO + \setlength{\tabcolsep@@}{\tabcolsep}% + \global\tabcolsep@@=\tabcolsep@@ % Estamos en el número del ítem, si aplicara. - \if@LineaDesdeInicio \hspace*{-\tabcolsep}\zsaveposx{LineaNodoACoordX}\hspace*{\tabcolsep}\fi + \if@LineaDesdeInicio \zsaveposx{LineaNodoACoordX}\fi \ifbool{NumItem}{\@NumItemAuxCmd{\mbox{}\hfill \@LetraTitColumnas \@@NumItem \hfill\mbox{}}}{}% & % Avanzamos a la cantidad, o la descripción. @@ -3828,40 +3906,51 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \ifbool{IVA}{\@IVAAuxCmd{\mbox{}\hfill \@LetraTitColumnas \@@IVA \hfill\mbox{}}}{} &% Avanzamos hasta el precio total. \@PrecioTAuxCmd{\mbox{}\hfill \@LetraTitColumnas \ifbool{SinCantidad}{\@@Precio}{\@@PrecioT}\space (\Moneda)\hfill\mbox{}}% - \if@LineaCompleta \hspace*{\tabcolsep}\zsaveposx{LineaNodoBCoordX}\hspace*{-\tabcolsep}\fi + \if@LineaHastaFinal \zsaveposx{LineaNodoBCoordX}\fi \\ - \ifbool{SinLineasHoriInt}{}{\hline}% + \ifbool{SinLineaHoriTit}{}{\hline}% % #1% Aquí entran todos los items que el usuario declara dentro del ambiente. + \@CalculaTotalesI \@CalculaSeparaItemsExtraFinal \\[\@SeparaItemsExtraFinal]% El último fin de línea se hace aquí. - \ifconlineasha\hline\fi% Se verifica si hace falta una línea horizontal o no. + \ifconlineasha + \ifdefvoid{\@NotaInterna}{% + \ifbool{SinLineasHoriExt}{\if@ExpandeCuadro\hline\fi}{\hline}}{\hline}% + \fi% Se verifica si hace falta una línea horizontal o no. \iffilas % Esto en lugar de \ifexpandecuadro para que no se haga una linea vacía en la tabla cuando la caja está vacía. - \ifdim \ht\@CajaEspacioVacio=0pt - \ifdefvoid{\@NotaInterna}{% - \ifbool{SinLineasHoriExt}{}{% - \ifconlineasha\else\hline\fi}% Verificamos si hay que poner la línea horizontal. Si está 'conlineasha' ya salió debido a esta opción. - }{\@ColumnasMultiColumnNotaIntAuxCmd\ifbool{SinLineasHoriExt}{}{\hline}}% - \else + \if@ExpandeCuadro \ifbool{PrimeroDescripcion}{&\usebox{\@CajaEspacioVacio}&&&&&&\\}{&&\usebox{\@CajaEspacioVacio}&&&&&\\}% - \ifdefvoid{\@NotaInterna}{}{\@ColumnasMultiColumnNotaIntAuxCmd}% + \ifdefvoid{\@NotaInterna}{} + {\ifbool{SinLineaHoriNI}{}{\hline}% + \@ColumnasMultiColumnNotaIntAuxCmd}% \ifbool{SinLineasHoriExt}{}{\hline}% Siempre que hay relleno se pone la línea acá. + \else + \ifdefvoid{\@NotaInterna}{% + \ifbool{SinLineasHoriExt}{}{% + \ifconlineasha\else\hline\fi}}% Verificamos si hay que poner la línea horizontal. Si está 'conlineasha' entonces ya salió la línea. + {\ifbool{SinLineaHoriNI}{}{\ifconlineasha\else\hline\fi}% + \@ColumnasMultiColumnNotaIntAuxCmd + \ifbool{SinLineasHoriExt}{}{\hline}}% \fi \else - \ifbool{SinLineasHoriInt}{}{\ifconlineasha\else\hline\fi}% Línea que cierra los ítems en la tabla. - % Agregamos el espacio espúreo. - \ifdim \ht\@CajaEspacioVacio=0pt + \ifsintotales \else - % Rellenamos la tabla con espacio espúreo, y le agregamos las lineas externas, si aplica. + \ifbool{SinLineaHoriTot}{}{\ifconlineasha\else\hline\fi}% Línea que cierra los ítems en la tabla. + \fi + % Agregamos el espacio espúreo. + \if@ExpandeCuadro + % Rellenamos la tabla con espacio espúreo, y le agregamos las líneas externas, si aplica. \ifbool{SinLineasVertExt}{\multicolumn{8}{c}{\usebox{\@CajaEspacioVacio}}}{\multicolumn{8}{|c|}{\usebox{\@CajaEspacioVacio}}}\\ \fi - % Si pedimos sin totalizaciones, entonces cerramos la tabla ya, si no, calculamos los totales y los escribimos + % Si pedimos sin totalizaciones, entonces cerramos la tabla ya, si no, calculamos los totales y los escribimos. \ifsintotales + \ifdefvoid{\@NotaInterna}{}{\ifbool{SinLineaHoriNI}{}{\hline}\@ColumnasMultiColumnNotaIntAuxCmd}% + \ifbool{SinLineasHoriExt}{}{\hline}% \else - % Modo de columnas: Abrimos la tabla para escribir los totales, y le agregamos las líneas verticales externas, si aplica. + % Modo de columnas: Abrimos la tabla para escribir los totales y le agregamos las líneas verticales externas, si aplica. \@ColumnasMultiColumnTotalesAuxCmd - \@CalculaTotalesI \ifagrupado \@EscribeTotalColAgrupado \else @@ -3875,7 +3964,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \hfill \@LetraTitTotal\@@Total & \@LetraNumTotal\numprint{\Total}\\ \end{tabular}\endgroup \\ - \ifdefvoid{\@NotaInterna}{}{\@ColumnasMultiColumnNotaIntAuxCmd}% + \ifdefvoid{\@NotaInterna}{}{\ifbool{SinLineaHoriNI}{}{\hline}\@ColumnasMultiColumnNotaIntAuxCmd}% \ifbool{SinLineasHoriExt}{}{\hline}% \fi \fi @@ -3885,7 +3974,6 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \ifsintotales\gdef\Total{}\fi % Si pedimos no totalizar (sintotales), la opción filas queda desactivada. \iffilas - \@CalculaTotalesI \@LetraNumTotales \vspace*{\@SeparaVertical}\par \ifexpandecuadro\else\vfill\fi @@ -3936,7 +4024,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \if@Exento\usebox{\@CajaBIE}\hspace*{\@SeparaMinTotales}\fi\usebox{\@CajaTotal}% \ifcentrado\hspace*{\@SepTotales}\fi \else% Aquí casi cualquier cosa tiene aspecto feo. - \CLASSWARNING{Es mejor no usar la opción de totalización en filas en este caso, o disminuir los tamaños de los tipos de letra para la totalización}% + \CLASSWARNING{Es mejor no usar la opcio'n de totalizacio'n en filas en este caso, o disminuir los tama~nos de los tipos de letra para la totalizacio'n}% \centering{% \begin{tabular}{r@{\hspace*{\@SeparaMinTotales}}l} \usebox{\@CajaBIAliR} & \usebox{\@CajaBIAliA} \\[\@SeparaFilas] @@ -3960,11 +4048,11 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \ifbool{SinCantidad} % Definamos todos los comandos \Item***. El descuento es opcional; por eso usamos G{0} en \NewDocumentCommand. {% - \NewDocumentCommand{\Item}{m o m G{0}}{\@ITEM{G}{1}{#1}[#2]{#3}{#4}}% Ítem normal. - \NewDocumentCommand{\ItemR}{m o m G{0}}{\global\@BIRtrue\global\Gtrue\@ITEM{R}{1}{#1}[#2]{#3}{#4}}% Ítem con IVA reducido. - \NewDocumentCommand{\ItemA}{m o m G{0}}{\global\@BIAtrue\global\Gtrue\@ITEM{A}{1}{#1}[#2]{#3}{#4}}% Ítem con IVA adicional. - \NewDocumentCommand{\ItemE}{m o m G{0}}{\global\@Exentotrue\global\Gtrue\@ITEM{E}{1}{#1}[#2]{#3}{#4}}% Ítem exento de IVA. - \NewDocumentCommand{\ItemX}{m o}{\@ITEM{X}{1}{#1}[#2]{0}{0}}% Ítem sin precio. + \NewDocumentCommand{\Item}{m o m G{0} +o}{\@ITEM{G}{1}{#1}[#2]{#3}{#4}[#5]}% Ítem normal. + \NewDocumentCommand{\ItemR}{m o m G{0} +o}{\global\@BIRtrue\global\Gtrue\@ITEM{R}{1}{#1}[#2]{#3}{#4}[#5]}% Ítem con IVA reducido. + \NewDocumentCommand{\ItemA}{m o m G{0} +o}{\global\@BIAtrue\global\Gtrue\@ITEM{A}{1}{#1}[#2]{#3}{#4}[#5]}% Ítem con IVA adicional. + \NewDocumentCommand{\ItemE}{m o m G{0} +o}{\global\@Exentotrue\global\Gtrue\@ITEM{E}{1}{#1}[#2]{#3}{#4}[#5]}% Ítem exento de IVA. + \NewDocumentCommand{\ItemX}{m o +o}{\@ITEM{X}{1}{#1}[#2]{0}{0}[#3]}% Ítem sin precio. \let\ItemG\Item \ifcsv \ifdescuentos @@ -3974,11 +4062,11 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \fi \fi} {% - \NewDocumentCommand{\Item}{m m o m G{0}}{\@ITEM{G}{#1}{#2}[#3]{#4}{#5}}% Ítem normal. - \NewDocumentCommand{\ItemR}{m m o m G{0}}{\global\@BIRtrue\global\Gtrue\@ITEM{R}{#1}{#2}[#3]{#4}{#5}}% Ítem con IVA reducido. - \NewDocumentCommand{\ItemA}{m m o m G{0}}{\global\@BIAtrue\global\Gtrue\@ITEM{A}{#1}{#2}[#3]{#4}{#5}}% Ítem con IVA adicional. - \NewDocumentCommand{\ItemE}{m m o m G{0}}{\global\@Exentotrue\global\Gtrue\@ITEM{E}{#1}{#2}[#3]{#4}{#5}}% Ítem exento de IVA. - \NewDocumentCommand{\ItemX}{m m o}{\@ITEM{X}{#1}{#2}[#3]{0}{0}}% Ítem sin precio. + \NewDocumentCommand{\Item}{m m o m G{0} +o}{\@ITEM{G}{#1}{#2}[#3]{#4}{#5}[#6]}% Ítem normal. + \NewDocumentCommand{\ItemR}{m m o m G{0} +o}{\global\@BIRtrue\global\Gtrue\@ITEM{R}{#1}{#2}[#3]{#4}{#5}[#6]}% Ítem con IVA reducido. + \NewDocumentCommand{\ItemA}{m m o m G{0} +o}{\global\@BIAtrue\global\Gtrue\@ITEM{A}{#1}{#2}[#3]{#4}{#5}[#6]}% Ítem con IVA adicional. + \NewDocumentCommand{\ItemE}{m m o m G{0} +o}{\global\@Exentotrue\global\Gtrue\@ITEM{E}{#1}{#2}[#3]{#4}{#5}[#6]}% Ítem exento de IVA. + \NewDocumentCommand{\ItemX}{m m o +o}{\@ITEM{X}{#1}{#2}[#3]{0}{0}[#4]}% Ítem sin precio. \let\ItemG\Item \ifcsv \if@cdu @@ -4008,7 +4096,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % Los descuentos totales no son compatibles -y no creo que lo vayan a ser- con el modo de totalización en filas. \iffilas \if@DescuentoTotal - \CLASSWARNING{La opción 'filas' no es compatible con los descuentos totales; sin efecto opción 'filas'} + \CLASSWARNING{La opcio'n 'filas' no es compatible con los descuentos totales; sin efecto opcio'n 'filas'} \filasfalse \fi \fi @@ -4043,9 +4131,13 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % Para determinar las coordenadas de la línea hay que usar \AtBeginShipoutNext porque si no se hace en el 'shipout' de la página se genera un espacio en blanco extra. \AtBeginShipoutNext{\iflinea\@DibujaLinea\fi} \iffilas - \ifbool{SinLineasVertInt}{\@LineaCompletatrue} + \ifbool{SinLineasVertInt}{\@LineaDesdeIniciotrue\@LineaHastaFinaltrue}{\@LineaDescripciontrue}% \else - \@LineaHastaTotaltrue\@LineaDesdeIniciotrue + \ifsintotales + \@LineaDesdeIniciotrue\@LineaHastaFinaltrue + \else + \@LineaDesdeIniciotrue\@LineaHastaTotaltrue + \fi \fi \fi %% El comando para la descripción del servicio prestado. @@ -4298,25 +4390,40 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %% Comando que coloca la línea diagonal. \newcommand{\@DibujaLinea}{% - \@LetraItems% Volvemos a fijar el \baselineskip de la tabla. \setlength{\@LineaNodoXo}{\zposx{LineaNodoACoordX} sp}% \setlength{\@LineaNodoYo}{\zposy{LineaNodoBCoordY} sp}% \setlength{\@LineaNodoXf}{\zposx{LineaNodoBCoordX} sp}% \setlength{\@LineaNodoYf}{\zposy{LineaNodoBCoordY} sp}% \addtolength{\@LineaNodoYo}{\@EspacioVacioInicial-\@EspacioVacioFinal}% + \if@LineaDesdeInicio + \addtolength{\@LineaNodoXo}{-\tabcolsep@@}% + \fi + \if@LineaHastaFinal + \addtolength{\@LineaNodoXf}{\tabcolsep@@}% + \fi \iffilas + \addtolength{\@LineaNodoYf}{-.3\baselineskip@@}% + \if@LineaDescripcion + \addtolength{\@LineaNodoXo}{-\tabcolsep@@}% + \addtolength{\@LineaNodoXf}{\tabcolsep@@}% + \fi \else - \if@DescG \addtolength{\@LineaNodoYo}{2\baselineskip}\fi - \if@DescR \if@BIR \addtolength{\@LineaNodoYo}{2\baselineskip}\fi\fi - \if@DescA \if@BIA \addtolength{\@LineaNodoYo}{2\baselineskip}\fi\fi - \if@DescE \if@Exento \addtolength{\@LineaNodoYo}{2\baselineskip}\fi\fi - \addtolength{\@LineaNodoYo}{\baselineskip/2}% - \ifsinivaexpresado + \ifsintotales + \addtolength{\@LineaNodoYf}{-.3\baselineskip@@}% \else - \addtolength{\@LineaNodoYo}{2\baselineskip}% - \if@BIR\addtolength{\@LineaNodoYo}{2\baselineskip}\fi - \if@BIA\addtolength{\@LineaNodoYo}{2\baselineskip}\fi - \if@Exento\addtolength{\@LineaNodoYo}{\baselineskip}\fi + \if@DescG \addtolength{\@LineaNodoYo}{2\baselineskip@@}\fi + \if@DescR \if@BIR \addtolength{\@LineaNodoYo}{2\baselineskip@@}\fi\fi + \if@DescA \if@BIA \addtolength{\@LineaNodoYo}{2\baselineskip@@}\fi\fi + \if@DescE \if@Exento \addtolength{\@LineaNodoYo}{2\baselineskip@@}\fi\fi + \addtolength{\@LineaNodoYo}{\baselineskip@@}% + \addtolength{\@LineaNodoYf}{-.3\baselineskip@@}% + \ifsinivaexpresado + \else + \addtolength{\@LineaNodoYo}{2\baselineskip@@}% + \if@BIR\addtolength{\@LineaNodoYo}{2\baselineskip@@}\fi + \if@BIA\addtolength{\@LineaNodoYo}{2\baselineskip@@}\fi + \if@Exento\addtolength{\@LineaNodoYo}{\baselineskip@@}\fi + \fi \fi \fi \iflinea @@ -4509,15 +4616,18 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % %<factdos|factseis>%% (sinlineasve) Sin líneas verticales externas %<facttres|factcuatro>%% (sinlineasvi) Sin líneas verticales internas -%<factdiez>%% (sinlineasv) Sin lineas verticales -%<factcuatro>%% (sinlineashi) Sin líneas horizontales internas -%<factseis>%% (sinlineashe) Sin líneas horizontales externas -%<factdiez>%% (sinlineash) Sin lineas horizontales +%<factdiez>%% (sinlineasv) Sin líneas verticales +%<factdos>%% (sinlineahtot) Sin línea horizontal interna después de los ítems y antes de los totales +%<factcuatro>%% (sinlineahtit) Sin línea horizontal interna después del título de las columnas +%<factseis>%% (sinlineashi) Sin líneas horizontales internas +%<factsiete>%% (sinlineashe) Sin líneas horizontales externas +%<factnueve>%% (sinlineahni) Sin línea horizontal interna después de la nota interna. +%<factdiez>%% (sinlineash) Sin líneas horizontales %<facttres|factcinco>%% (conlineasha) Separado cada ítem con una línea horizontal % %<factcinco|factocho>%% (sinexpandir) Sin expandir el cuadro de la factura ni la descripción %<facttres|factcuatro|prefac>%% (expandecuadro) Expande el cuadro de la factura con espacio en blanco -%<prefac|facttres>%% (linea) Con línea protectora del espacio en blanco +%<prefac|factcuatro>%% (linea) Con línea para inutilizar el espacio en blanco % %<facttres>%% (impdesc) Con el tipo de impuesto como parte de la descripción y no de los precios %<factdos>%% (centradesc) Centra la descripción en los elementos en la factura @@ -4525,13 +4635,13 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<factcinco|factseis|factsiete>%% (todosiva) Forzando a totalizar todos los IVA así no existan productos gravados con ellos %<factnueve>%% (G) Escribiendo una letra ‘G’ en los ítems gravados con IVA general así sea el único gravamen a facturar %<factocho>%% (siniva) Sin IVA -%<factnueve|factdiez>%% (electro) Con descuento en IVA al pagar por medios electrónicos +%<factnueve>%% (electro) Con descuento en IVA al pagar por medios electrónicos %<factdos>%% (unafirma) Sólo la firma del emisor %<facttres>%% (sinfirmas) Sin firmas %<factdiez>%% (vencimiento) Con fecha de vencimiento explícita así no haya crédito % %<factocho>%% (csv) Escribe un archivo CSV con la información numérica de la factura -%<beispiel>%% (nospanish) Sin cargar babel en castellano, ‘lmodern’ ni la codificación T1 para la tipografías +%<beispiel>%% (nospanish) Sin cargar babel en castellano, ni la codificación T1 para la tipografías % %<factdos|factcuatro>%% Usando \Nombre y \CI en lugar de \RazonSocial y \RIF %<factdos|factcuatro|reptres>%% Sin especificar la persona de contacto @@ -4542,7 +4652,9 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<repuno>%% Sin especificar el proveedor, así toma el emisor de la factura como el nombre del proveedor %<repdos|reptres>%% (\Proveedor) Especificando el nombre del proveedor para el encabezado del reporte % -%<factocho|factnueve>%% Sin especificar fecha para que tome la del día +%<factdiez>%% Sin especificar fecha para que tome la del día. +%<factnueve>%% Con nota interna automática por el descuento en pagos electrónicos. +%<factdiez>%% Con nota interna automática con el monto en Bs.S dada la fecha de emisión de la factura antes del cambio en la moneda el dia 04-06-2018. % %<factcuatro>%% (\Fecha*) Suministrando la fecha según formato de datetime2 sin alterar cómo sale escrita %<facttres>%% (\FormatoFecha) Cambiando el separador de la fecha para que salga escrita dd/mm/yyyy @@ -4550,9 +4662,9 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<factseis>%% (\FormatoFecha) Cambiando el formato para que la fecha salga escrita en el formato default de datetime2 pero cambiando el separador yyyy/mm/dd %<factocho>%% Redefiniendo el formato de la fecha (redefiniendo macros \@@Fecha y \@EstiloFecha) % -%<factnueve>%% (\Credito) Especificando la cantidad días para el crédito +%<factnueve>%% (\Credito) Especificando la cantidad de días para el crédito %<facttres>%% (\DescuentoE y \DescuentoG) Con descuentos totales en porcentajes para exentos y gravables con IVA general -%<factocho>%% (\Descuento*) Con descuentos totales en moneda aplicables por igual a todos los tipos de elementos existentes +%<factocho>%% (\Descuento*) Con descuentos totales en moneda (y no en porcentajes) aplicables por igual a todos los tipos de elementos existentes %<prefac>%% (\Descuento) Con descuentos totales en porcentaje aplicables por igual a todos los tipos de elementos existentes % %<factsiete>%% Redefiniendo el texto para la cantidad (redefiniendo macro \@@Cantidad) @@ -4575,9 +4687,9 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<factdos|factcinco>%% (\SepDatosResumen) Alterando la separación horizontal entre los datos del cliente y el resumen %<factdos|facttres|factseis>%% (\SepEncabezado) Alterando el margen interno desde el contorno hasta el texto en el encabezado %<factnueve>%% (\SepNotaPrevia) Alterando el margen interno desde el contorno hasta el texto en la nota previa -%<factdos|factcuatro>%% (\SepItemsExtra) Agregando una separación extra entre los ítems en la factura %<factdos|factseis>%% (\SepDescripcion) Alterando la distancia desde el contorno hasta el texto en la descripción %<factnueve>%% (\SepCondiciones) Especificando la distancia desde el contorno hasta el texto de las condiciones, predeterminadamente sin contorno +%<factdos|factcuatro>%% (\SepItemsExtra) Agregando una separación extra entre los ítems en la factura %<factsiete>%% (\SepFilas) Alterando la separación horizontal y vertical entre los totales en el modo de filas %<facttres|factsiete>%% (\LineaEncabezado) Alterando la línea de las cajas del encabezado, la curvatura en la esquina y la sombra %<factdiez>%% (\LineaNotaPrevia) Alterando la línea de la nota previa, para desaparecerla @@ -4594,7 +4706,6 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<facttres|factcuatro|factseis|factsiete|prefac|cotiza|repuno|repdos>%% Sin resumen %<factcuatro|factnueve|factdiez>%% (\NotaPrevia) Con nota previa %<factocho>%% (\NotaInterna) Con nota interna -%<factnueve|factdiez>%% Con nota interna predeterminada por usar opción ‘electro’ %<factnueve>%% (\NotaExterna) Con nota externa % %<factdos|facttres>%% Con artículos gravados con todos los IVA @@ -4607,7 +4718,9 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<factseis|repdos>%% Con etiquetas y referencias % %<repuno>%% (\FirmaReporte) Agregando en el reporte la línea para firmar a mano -%<factocho|repdos|reptres>%% (\FirmaReporte) Agregando la firma escaneada en el reporte +%<factocho|repdos|reptres>%% (\FirmaReporte) Agregando la firma escaneada en el reporte; ajustando el corrimiento en “y” de la firma respecto a la línea +%<repdos|reptres>%% Cambiando la ubicación en “x” de la línea de la firma y cambiando la longitud de la línea hacia los lados +%<reptres>%% Cambiando el nombre de la persona que va a firmar %%</desc> %% %<factuno>\documentclass{factura} @@ -4636,13 +4749,16 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<factdos|factseis>sinlineasve, %<facttres|factcuatro>sinlineasvi, %<factdiez>sinlineasv, -%<factcuatro>sinlineashi, -%<factseis>sinlineashe, +%<factdos>sinlineahtot, +%<factcuatro>sinlineahtit, +%<factseis>sinlineashi, +%<factsiete>sinlineashe, +%<factnueve>sinlineahni, %<factdiez>sinlineash, %<facttres|factcinco>conlineasha, %<factcinco|factocho>sinexpandir, %<facttres|factcuatro|prefac>expandecuadro, -%<facttres|prefac>linea, +%<factcuatro|prefac>linea, %<facttres>impdesc, %<factdos>centradesc, %<factsiete>sinmarcas, @@ -4650,7 +4766,6 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<factnueve>G, %<factocho>siniva, %<factnueve>electro, -% factdiez también lleva 'electro' pero desde una opción. %<factdos>unafirma, %<prefac|cotiza>% dosfirmas, % para poner las dos firmas. %<prefac>% unafirma, % para poner la firma del emisor. @@ -4661,7 +4776,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<factdiez>csv, % luego queda sin efecto con \csvfalse en el preámbulo %<!factuno>]{factura} -%<factdiez>\electrotrue \vencimientotrue \filasfalse \csvfalse +%<factdiez>\vencimientotrue \filasfalse \csvfalse %<factdiez> \input{factura-ejemplo-aux.tex}% Se incluye para efectos del ejemplo, así tendremos disponible la macro \Ejemplo. \usepackage[utf8]{inputenc} @@ -4725,10 +4840,10 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<factcinco>\FormatoFecha[yyyymmdd]{ddmmyyyy}{.} %<facttres>\FormatoFecha{ddmmyyyy}{/} %<factseis>\FormatoFecha{default}{/} -%<!factcuatro&!factcinco&!factocho&!factnueve>\Fecha{06-11-2018} -%<factocho|factnueve>% \Fecha{06-11-2018} -%<factcuatro>\Fecha*{2018}{11}{06} -%<factcinco>\Fecha{20181106} +%<!factcuatro&!factcinco&!factdiez>\Fecha{17-11-2018} +%<factcuatro>\Fecha*{2018}{11}{17} +%<factcinco>\Fecha{20181117} +%<factdiez>% \Fecha{17-11-2018} %<factsiete|factocho> %<factsiete|factocho>\makeatletter %<factocho> \renewcommand{\@@Fecha}{\slshape FECHA:} @@ -4810,7 +4925,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<!reptres> %<!reptres>\begin{factura} %<!factdos&!factcinco&!factseis&!factsiete&!factdiez&!repdos&!reptres&!beispiel> \Item{1}{ítem con IVA general}{1000} -%<factseis|repdos> \Item{2}{ítem con IVA general}{1000}\label{primeritem} +%<factseis|repdos> \Item{2}{ítem con IVA general}{1000}[Un ítem que ofrecemos a precio de costo y que está gravado con IVA general]\label{primeritem} %<factdiez> \Item{1}{ítem con IVA general}{2000000} %<factuno|factcuatro|repdos> \Item{4}{otro ítem con IVA general}{100} %<factseis> \Item{10}{otro ítem con IVA general (descripción larga para mostrar el cambio de línea)}{1000} @@ -4849,15 +4964,16 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<repdos> %<factseis|repdos> Se facturaron en total \arabic{NumItem} artículos. %<factseis|repdos> -%<factseis|repdos> En el artículo número \itemref{primeritem} se facturaron \cantref{primeritem} \descref{primeritem} por un valor de \Moneda\puref{primeritem} cada uno, dando un subtotal por este elemento de \Moneda\subtref{primeritem}; el descuento en ese artículo es del \dctoref{primeritem}\%, dando un total de \Moneda\ptref{primeritem}, y esta gravado con IVA de \ivaref{primeritem}\%. +%<factseis|repdos> En el artículo número \itemref{primeritem} se facturaron \cantref{primeritem} “\descref{primeritem}”, cada uno por un valor de \Moneda~\puref{primeritem}, dando un subtotal por este elemento de \Moneda~\subtref{primeritem}; el descuento en ese artículo es del \dctoref{primeritem}\%, dando un total de \Moneda~\ptref{primeritem}, y esta gravado con IVA de \ivaref{primeritem}\%. Ampliando la descripción podemos decir que este ítem es: “\ldescref{primeritem}”. %<factseis|repdos> -%<factseis|repdos> La base imponible total de esta factura es de \Moneda\numprint\BIG; el IVA es de \Moneda\numprint\AlicuotaG, el descuento presidencial en el IVA es de \Moneda\numprint\AlicuotaGDesc, y el total final es de \Moneda\numprint\Total. +%<factseis|repdos> La base imponible total de esta factura es de \Moneda~\numprint\BIG; el IVA es de \Moneda~\numprint\AlicuotaG, el descuento presidencial en el IVA es de \Moneda~\numprint\AlicuotaGDesc, y el total final es de \Moneda~\numprint\Total. %<factseis|repdos> %<factseis|repdos> % Estas son todas las macros para las totalizaciones: \BIG, \BIR, \BIA, \BIE, \AlicuotaG, \AlicuotaGDesc, \AlicuotaR, \AlicuotaA, \SubtG, \SubtR, \SubtA, \SubtE, \DescG, \DescR, \DescA, \DescE. %<factseis>} %<repuno> \vspace{1.5cm}\FirmaReporte -%<factocho|repdos> \FirmaReporte[\includegraphics[width=4.5cm]{factura-ejemplo-firma}][0pt][17pt] -%<reptres> \FirmaReporte[\includegraphics[width=4.5cm]{factura-ejemplo-firma}][0pt][17pt]{el que firma}[5cm][0.5cm] +%<factocho> \FirmaReporte[\includegraphics[width=4.5cm]{factura-ejemplo-firma}][0pt][17pt] +%<repdos> \FirmaReporte[\includegraphics[width=4.5cm]{factura-ejemplo-firma}][0pt][17pt][3cm][3cm] +%<reptres> \FirmaReporte[\includegraphics[width=4.5cm]{factura-ejemplo-firma}][0pt][17pt]{el que firma}[4cm][0.8cm] %<factcinco|factocho|repuno|repdos|reptres>\end{reporte} %% Este es un comando auxiliar suministrado por factura-ejemplo-aux.tex para escribir el detalle del ejemplo en la última hoja. diff --git a/Master/texmf-dist/tex/latex/factura/factura.cls b/Master/texmf-dist/tex/latex/factura/factura.cls index 54cc1b74aa1..2cb26296417 100644 --- a/Master/texmf-dist/tex/latex/factura/factura.cls +++ b/Master/texmf-dist/tex/latex/factura/factura.cls @@ -37,9 +37,9 @@ %% \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesClass{factura} -[2018/04/17 v3.47 +[2018/05/22 v3.56 Clase para elaborar facturas legales -en la República Bolivariana de Venezuela. +en la Repu'blica Bolivariana de Venezuela. ] \RequirePackage{etoolbox}% 'etoolbox' para los condicionales binarios y para \AtEndPreamble. @@ -52,7 +52,9 @@ en la República Bolivariana de Venezuela. \newbool{SinCantidad} \newbool{SinLineasVertInt} \newbool{SinLineasVertExt} -\newbool{SinLineasHoriInt} +\newbool{SinLineaHoriNI} +\newbool{SinLineaHoriTit} +\newbool{SinLineaHoriTot} \newbool{SinLineasHoriExt} \newbool{DCU} \newbool{DUC} @@ -102,6 +104,9 @@ en la República Bolivariana de Venezuela. \newif\ifsinfirmas \newif\ifsiniva \newif\ifsinivaexpresado +\newif\ifsinlineahni +\newif\ifsinlineahtit +\newif\ifsinlineahtot \newif\ifsinlineash \newif\ifsinlineashe \newif\ifsinlineashi @@ -129,9 +134,11 @@ en la República Bolivariana de Venezuela. \newif\if@FondoReporteStar \newif\if@Nombre \newif\if@PruebaRef -\newif\if@LineaCompleta -\newif\if@LineaHastaTotal +\newif\if@ExpandeCuadro \newif\if@LineaDesdeInicio +\newif\if@LineaHastaTotal +\newif\if@LineaHastaFinal +\newif\if@LineaDescripcion \newif\if@BIR \newif\if@BIA \newif\if@Exento @@ -152,6 +159,7 @@ en la República Bolivariana de Venezuela. \newlength{\@TamLineaFirmas} \newlength{\@TamNumItem} \newlength{\@TamCantidad} +\newlength{\@TamDescripcion} \newlength{\@TamPrecioU} \newlength{\@TamPrecioS} \newlength{\@TamDescuento} @@ -212,6 +220,8 @@ en la República Bolivariana de Venezuela. \newlength{\@FirmaReportePosX} \newlength{\@FirmaReporteExcesoLinea} \newlength{\@TempDimen} +\newlength{\tabcolsep@@} +\newlength{\baselineskip@@} %% Cajas para uso interno. \newbox{\@CajaDatos} @@ -257,7 +267,7 @@ en la República Bolivariana de Venezuela. \DeclareOption{G}{\Gtrue}% Con esta opción sale la letra 'G' en los items con IVA general, y sale el porcentaje en la base imponible general. \DeclareOption{impdesc}{\impdesctrue}% Para el tipo de impuesto en la descripción y no en el precio unitario y total. \DeclareOption{iva}{\ivatrue}% Para la columna del IVA. -\DeclareOption{linea}{\lineatrue}% Para la línea que protege el espacio en blanco. +\DeclareOption{linea}{\lineatrue}% Para la línea que inutiliza el espacio en blanco. \DeclareOption{nospanish}{\nospanishtrue}% No carga babel en castellano ni la codificación T1 de las letras. \DeclareOption{numitem}{\numitemtrue}% Para poner una columna extra al principio con el número del ítem. \DeclareOption{prefactura}{\prefacturatrue}% La prefactura; con el diseño de la forma libre... para enviar por correo electrónico, fax o imprimir preliminarmente. @@ -266,6 +276,9 @@ en la República Bolivariana de Venezuela. \DeclareOption{sinfirmas}{\sinfirmastrue}% No agrega los espacios para firmar. \DeclareOption{sinivaexpresado}{\sinivaexpresadotrue}% Cuando no se cobra IVA y tampoco se quiere que aparezca la totalización del IVA. \DeclareOption{siniva}{\sinivatrue}% No cobra IVA. +\DeclareOption{sinlineahni}{\sinlineahnitrue}% Estilo 'sinlineahni'. +\DeclareOption{sinlineahtot}{\sinlineahtottrue}% Estilo 'sinlineahtot'. +\DeclareOption{sinlineahtit}{\sinlineahtittrue}% Estilo 'sinlineahtit'. \DeclareOption{sinlineashe}{\sinlineashetrue}% Estilo 'sinlineashe'. \DeclareOption{sinlineashi}{\sinlineashitrue}% Estilo 'sinlineashi'. \DeclareOption{sinlineash}{\sinlineashtrue}% Estilo 'sinlineash'. @@ -301,6 +314,7 @@ en la República Bolivariana de Venezuela. \RequirePackage{environ}% Con 'environ' podemos usar tabularx dentro del ambiente de la factura y escribir texto en el enddef. \RequirePackage{fancyhdr}% Las cabeceras fancy; así se use solamente en reporte, hay que cargarlo siempre. \RequirePackage[calc]{datetime2}% Para calcular la fecha del vencimiento del crédito. +\RequirePackage{anyfontsize}% Para las tipografías en tamaños arbitrarios. \RequirePackage{ifxetex}% Para poder modificar correctamente la metadata del PDF y agregar la versión de la clase. \RequirePackage{ifluatex}% Ditto. \RequirePackage{zref-savepos}[2016/05/21]% Para guardar la posición en 'Y' expandiendo el cuadro, para la línea y para la firma en el reporte si la hubiera. @@ -361,8 +375,18 @@ en la República Bolivariana de Venezuela. \ifsinlineasv\booltrue{SinLineasVertExt}\booltrue{SinLineasVertInt}\fi \ifsinlineasvi\booltrue{SinLineasVertInt}\fi \ifsinlineasve\booltrue{SinLineasVertExt}\fi - \ifsinlineash\booltrue{SinLineasHoriExt}\booltrue{SinLineasHoriInt}\fi - \ifsinlineashi\booltrue{SinLineasHoriInt}\fi + \ifsinlineash\booltrue{SinLineasHoriExt}\booltrue{SinLineaHoriNI}\booltrue{SinLineaHoriTit}\booltrue{SinLineaHoriTot}\fi + \ifsinlineashi\booltrue{SinLineaHoriNI}\booltrue{SinLineaHoriTit}\booltrue{SinLineaHoriTot}\fi + \ifsinlineahni\booltrue{SinLineaHoriNI}\fi + \ifsinlineahtit\booltrue{SinLineaHoriTit}\fi + \ifsinlineahtot + \iffilas + \CLASSWARNING{Las opciones 'sinlineahtot' y 'filas' no son compatibles. Sin efecto opcio'n 'sinlineahtot'} + \sinlineahtotfalse + \else + \booltrue{SinLineaHoriTot} + \fi + \fi \ifsinlineashe\booltrue{SinLineasHoriExt}\fi \ifdosfirmas @@ -411,11 +435,11 @@ en la República Bolivariana de Venezuela. \booltrue{SinCantidad} \ifdcu \dcufalse\@cdutrue\boolfalse{DCU}\boolfalse{PrimeroDescripcion} - \CLASSWARNING{La opción 'sincantidad' no es compatible con 'dcu'. Sin efecto opción 'dcu'} + \CLASSWARNING{La opcio'n 'sincantidad' no es compatible con 'dcu'. Sin efecto opcio'n 'dcu'} \fi \ifduc \ducfalse\@cdutrue\boolfalse{DUC}\boolfalse{PrimeroDescripcion} - \CLASSWARNING{La opción 'sincantidad' no es compatible con 'duc'. Sin efecto opción 'duc'} + \CLASSWARNING{La opcio'n 'sincantidad' no es compatible con 'duc'. Sin efecto opcio'n 'duc'} \fi \fi \ifdescuentos\booltrue{Descuentos}\fi @@ -424,7 +448,7 @@ en la República Bolivariana de Venezuela. \ifdescuentos \booltrue{Subtotal} \else - \CLASSWARNING{La opción 'subtotal' no aplica sin descuentos individuales. Sin efecto opción 'subtotal'} + \CLASSWARNING{La opcio'n 'subtotal' no aplica sin descuentos individuales. Sin efecto opcio'n 'subtotal'} \fi \fi @@ -432,11 +456,11 @@ en la República Bolivariana de Venezuela. \ifsintotales \iffilas \filasfalse - \CLASSWARNING{La opción 'sintotales' no aplica para el modo de totalización en filas. Sin efecto opción 'filas'} + \CLASSWARNING{La opcio'n 'sintotales' no aplica para el modo de totalizacio'n en filas. Sin efecto opcio'n 'filas'} \fi \ifcotizacion \else - \CLASSWARNING{La opción 'sintotales' no debe usarse en facturas sino en cotizaciones. No es válida una factura sin totales} + \CLASSWARNING{La opcio'n 'sintotales' no debe usarse en facturas sino en cotizaciones. No es va'lida una factura sin totales} \fi \fi @@ -444,24 +468,24 @@ en la República Bolivariana de Venezuela. \iffilas \else \centradofalse - \CLASSWARNING{La opción 'centrado' no es compatible con el modo de totalización en columnas. Sin efecto opción 'centrado'} + \CLASSWARNING{La opcio'n 'centrado' no es compatible con el modo de totalizacio'n en columnas. Sin efecto opcio'n 'centrado'} \fi \fi \ifagrupado \iffilas \agrupadofalse - \CLASSWARNING{La opción 'agrupado' no es compatible con el modo de totalización en filas. Sin efecto opción 'agrupado'} + \CLASSWARNING{La opcio'n 'agrupado' no es compatible con el modo de totalizacio'n en filas. Sin efecto opcio'n 'agrupado'} \fi \fi \ifelectro \booltrue{Electro} \gdef\@NotaInterna{\@TextoDescuentoPresidencial} - \CLASSWARNING{Ya no está vigente el descuento en la alícuota general. Aplicándolo igual como se pidió} - \CLASSINFO{Se estableció el texto aclaratorio del descuento presidencial como 'nota interna'} + \CLASSWARNING{Ya no esta' vigente el descuento en la ali'cuota general. Aplica'ndolo igual como se pidio'} + \CLASSWARNING{Se establecio' el texto aclaratorio del descuento presidencial como 'nota interna'} \iffilas \filasfalse - \CLASSWARNING{La opción 'electro' no es compatible con la opción 'filas'. Sin efecto la opción 'filas'} + \CLASSWARNING{La opcio'n 'electro' no es compatible con la opcio'n 'filas'. Sin efecto la opcio'n 'filas'} \fi \fi @@ -470,7 +494,7 @@ en la República Bolivariana de Venezuela. \ifsinivaexpresado \iffilas \filasfalse - \CLASSWARNING{La opción 'sinivaexpresado' no es compatible con la opción 'filas'. Sin efecto la opción 'filas'} + \CLASSWARNING{La opcio'n 'sinivaexpresado' no es compatible con la opcio'n 'filas'. Sin efecto la opcio'n 'filas'} \else \AtBeginDocument{\gdef\@ImpuestoG{0}\gdef\@ImpuestoR{0}\gdef\@ImpuestoA{0}} \fi @@ -479,7 +503,7 @@ en la República Bolivariana de Venezuela. \iflinea \ifexpandecuadro \else - \CLASSWARNING{La opción 'linea' requiere la opción 'expandecuadro'. Activando la opción 'expandecuadro'} + \CLASSWARNING{La opcio'n 'linea' requiere la opcio'n 'expandecuadro'. Activando la opcio'n 'expandecuadro'} \expandecuadrotrue \fi \fi @@ -487,8 +511,13 @@ en la República Bolivariana de Venezuela. \ifnospanish \else \RequirePackage[spanish]{babel}% Babel en castellano. - \RequirePackage[T1]{fontenc}% Codificación T1 para las tipografías. - \IfFileExists{lmodern.sty}{\RequirePackage{lmodern}}{} + \ifxetex + \else + \ifluatex + \else + \RequirePackage[T1]{fontenc}% Codificación T1 para las tipografías; no aplica para XeLaTeX ni LuaLaTeX. + \fi + \fi \fi \ifexpandecuadro @@ -507,7 +536,7 @@ en la República Bolivariana de Venezuela. \@reportetrue \ifsoloreporte \soloreportefalse - \CLASSWARNING{La opción 'soloreporte' no es compatible con 'conreporte'. Sin efecto 'soloreporte'} + \CLASSWARNING{La opcio'n 'soloreporte' no es compatible con 'conreporte'. Sin efecto 'soloreporte'} \fi \fi \ifsoloreporte\@reportetrue\@facturafalse\@reversofalse\fi @@ -518,7 +547,7 @@ en la República Bolivariana de Venezuela. \ifsintotales\else\AtEndDocument{\@EscribeTotalesEnCSV}\fi \else \csvfalse - \CLASSWARNING{La opción 'csv' require generar la factura. Sin efecto opción 'csv'} + \CLASSWARNING{La opcio'n 'csv' require generar la factura. Sin efecto opcio'n 'csv'} \fi \fi @@ -529,49 +558,52 @@ en la República Bolivariana de Venezuela. \fi % Escribimos en el .log las opciones cargadas: - \ifagrupado \CLASSINFO{Opción cargada: agrupado}\fi - \ifcentradesc \CLASSINFO{Opción cargada: centradesc}\fi - \ifcentrado \CLASSINFO{Opción cargada: centrado}\fi - \ifconlineasha \CLASSINFO{Opción cargada: conlineasha}\fi - \ifconreporte \CLASSINFO{Opción cargada: conreporte}\fi - \ifcotizacion \CLASSINFO{Opción cargada: cotizacion}\fi - \ifcsv \CLASSINFO{Opción cargada: csv}\fi - \ifdcu \CLASSINFO{Opción cargada: dcu}\fi - \ifdenom \CLASSINFO{Opción cargada: denom}\fi - \ifdescuentos \CLASSINFO{Opción cargada: descuentos}\fi - \ifdosfirmas \CLASSINFO{Opción cargada: dosfirmas}\fi - \ifduc \CLASSINFO{Opción cargada: duc}\fi - \ifelectro \CLASSINFO{Opción cargada: electro}\fi - \ifexpandecuadro \CLASSINFO{Opción cargada: expandecuadro}\fi - \iffilas \CLASSINFO{Opción cargada: filas}\fi - \ifG \CLASSINFO{Opción cargada: G}\fi - \ifimpdesc \CLASSINFO{Opción cargada: impdesc}\fi - \ifiva \CLASSINFO{Opción cargada: iva}\fi - \iflinea \CLASSINFO{Opción cargada: linea}\fi - \ifnospanish \CLASSINFO{Opción cargada: nospanish}\fi - \ifnumitem \CLASSINFO{Opción cargada: numitem}\fi - \ifprefactura \CLASSINFO{Opción cargada: prefactura}\fi - \ifsincantidad \CLASSINFO{Opción cargada: sincantidad}\fi - \ifsinexpandir \CLASSINFO{Opción cargada: sinexpandir}\fi - \ifsinfirmas \CLASSINFO{Opción cargada: sinfirmas}\fi - \ifsiniva \CLASSINFO{Opción cargada: siniva}\fi - \ifsinivaexpresado \CLASSINFO{Opción cargada: sinivaexpresado}\fi - \ifsinlineash \CLASSINFO{Opción cargada: sinlineash}\fi - \ifsinlineashe \CLASSINFO{Opción cargada: sinlineashe}\fi - \ifsinlineashi \CLASSINFO{Opción cargada: sinlineashi}\fi - \ifsinlineasv \CLASSINFO{Opción cargada: sinlineasv}\fi - \ifsinlineasve \CLASSINFO{Opción cargada: sinlineasve}\fi - \ifsinlineasvi \CLASSINFO{Opción cargada: sinlineasvi}\fi - \ifsinmarcas \CLASSINFO{Opción cargada: sinmarcas}\fi - \ifsinnumero \CLASSINFO{Opción cargada: sinnumero}\fi - \ifsinreverso \CLASSINFO{Opción cargada: sinreverso}\fi - \ifsintotales \CLASSINFO{Opción cargada: sintotales}\fi - \ifsoloreporte \CLASSINFO{Opción cargada: soloreporte}\fi - \ifsubtotal \CLASSINFO{Opción cargada: subtotal}\fi - \iftodosiva \CLASSINFO{Opción cargada: todosiva}\fi - \iftwoside \CLASSINFO{Opción cargada: twoside}\fi - \ifunafirma \CLASSINFO{Opción cargada: unafirma}\fi - \ifvencimiento \CLASSINFO{Opción cargada: vencimiento}\fi + \ifagrupado \CLASSINFO{Opcio'n cargada: agrupado}\fi + \ifcentradesc \CLASSINFO{Opcio'n cargada: centradesc}\fi + \ifcentrado \CLASSINFO{Opcio'n cargada: centrado}\fi + \ifconlineasha \CLASSINFO{Opcio'n cargada: conlineasha}\fi + \ifconreporte \CLASSINFO{Opcio'n cargada: conreporte}\fi + \ifcotizacion \CLASSINFO{Opcio'n cargada: cotizacion}\fi + \ifcsv \CLASSINFO{Opcio'n cargada: csv}\fi + \ifdcu \CLASSINFO{Opcio'n cargada: dcu}\fi + \ifdenom \CLASSINFO{Opcio'n cargada: denom}\fi + \ifdescuentos \CLASSINFO{Opcio'n cargada: descuentos}\fi + \ifdosfirmas \CLASSINFO{Opcio'n cargada: dosfirmas}\fi + \ifduc \CLASSINFO{Opcio'n cargada: duc}\fi + \ifelectro \CLASSINFO{Opcio'n cargada: electro}\fi + \ifexpandecuadro \CLASSINFO{Opcio'n cargada: expandecuadro}\fi + \iffilas \CLASSINFO{Opcio'n cargada: filas}\fi + \ifG \CLASSINFO{Opcio'n cargada: G}\fi + \ifimpdesc \CLASSINFO{Opcio'n cargada: impdesc}\fi + \ifiva \CLASSINFO{Opcio'n cargada: iva}\fi + \iflinea \CLASSINFO{Opcio'n cargada: linea}\fi + \ifnospanish \CLASSINFO{Opcio'n cargada: nospanish}\fi + \ifnumitem \CLASSINFO{Opcio'n cargada: numitem}\fi + \ifprefactura \CLASSINFO{Opcio'n cargada: prefactura}\fi + \ifsincantidad \CLASSINFO{Opcio'n cargada: sincantidad}\fi + \ifsinexpandir \CLASSINFO{Opcio'n cargada: sinexpandir}\fi + \ifsinfirmas \CLASSINFO{Opcio'n cargada: sinfirmas}\fi + \ifsiniva \CLASSINFO{Opcio'n cargada: siniva}\fi + \ifsinivaexpresado \CLASSINFO{Opcio'n cargada: sinivaexpresado}\fi + \ifsinlineahni \CLASSINFO{Opcio'n cargada: sinlineahni}\fi + \ifsinlineahtit \CLASSINFO{Opcio'n cargada: sinlineahtit}\fi + \ifsinlineahtot \CLASSINFO{Opcio'n cargada: sinlineahtot}\fi + \ifsinlineash \CLASSINFO{Opcio'n cargada: sinlineash}\fi + \ifsinlineashe \CLASSINFO{Opcio'n cargada: sinlineashe}\fi + \ifsinlineashi \CLASSINFO{Opcio'n cargada: sinlineashi}\fi + \ifsinlineasv \CLASSINFO{Opcio'n cargada: sinlineasv}\fi + \ifsinlineasve \CLASSINFO{Opcio'n cargada: sinlineasve}\fi + \ifsinlineasvi \CLASSINFO{Opcio'n cargada: sinlineasvi}\fi + \ifsinmarcas \CLASSINFO{Opcio'n cargada: sinmarcas}\fi + \ifsinnumero \CLASSINFO{Opcio'n cargada: sinnumero}\fi + \ifsinreverso \CLASSINFO{Opcio'n cargada: sinreverso}\fi + \ifsintotales \CLASSINFO{Opcio'n cargada: sintotales}\fi + \ifsoloreporte \CLASSINFO{Opcio'n cargada: soloreporte}\fi + \ifsubtotal \CLASSINFO{Opcio'n cargada: subtotal}\fi + \iftodosiva \CLASSINFO{Opcio'n cargada: todosiva}\fi + \iftwoside \CLASSINFO{Opcio'n cargada: twoside}\fi + \ifunafirma \CLASSINFO{Opcio'n cargada: unafirma}\fi + \ifvencimiento \CLASSINFO{Opcio'n cargada: vencimiento}\fi % Cargamos aquí 'geometry' para que sea después de haber establecido 'twoside'. \RequirePackage{geometry}} @@ -675,14 +707,14 @@ en la República Bolivariana de Venezuela. %% Nota interna al cuadro de la factura y nota externa a él (que sale antes de \Descripcion). \NewDocumentCommand{\NotaInterna}{+m}{% - \ifdefvoid{\@NotaInterna}{}{\CLASSWARNING{Se sobreescribió la nota interna automática aclaratoria del descuento presidencial}}% + \ifdefvoid{\@NotaInterna}{}{\CLASSWARNING{Se sobreescribio' la nota interna previamente definida}}% \gdef\@NotaInterna{#1}} \NewDocumentCommand{\NotaExterna}{+m}{\gdef\@NotaExterna{#1}} \AtBeginDocument{% % Si no se especificó fecha, tomamos la de hoy. Además, advertimos cuando el documento se está compilando en una fecha distinta de la fecha establecida en el encabezado. \DTMifsaveddate{FechaEmision}{}{% - \CLASSWARNING{No se especificó fecha. Asumiendo la fecha de hoy}% + \CLASSWARNING{No se especifico' fecha. Asumiendo la fecha de hoy}% \DTMsavedate{FechaEmision}{\the\year-\the\month-\the\day}}% \DTMsavenow{Ahora}% \DTMsaveddatediff{FechaEmision}{Ahora}{\AuxFecha}% @@ -702,43 +734,46 @@ en la República Bolivariana de Venezuela. \Moneda{\@MonedaBsS}% \fi \else + \LetraNotaInterna{\fontsize{14}{18}}% + \NotaInterna{\FPupn\TotalBsS{\Total{} 1000 div \@DigitosMoneda{} round}Según Decreto Presidencial 3.332, el total en Bolívares Soberanos es de {\bfseries \@MonedaBsS~\numprint{\TotalBsS}}}% + \CLASSWARNING{Se establecio' el texto aclaratorio sobre el total en Boli'vares Soberanos como una nota interna}% \Moneda{\@MonedaBs}% \fi \fi % Efectuamos distintos chequeos para dar errores o advertencias si faltó algo. - \ifdefvoid{\@RazonSocial}{\CLASSERROR{Hay que definir la razón social}}{}% + \ifdefvoid{\@RazonSocial}{\CLASSERROR{Hay que definir la razo'n social}}{}% \if@reporte - \ifdefvoid{\@Num}{\CLASSWARNING{No se especificó el número de la factura. Puede dar error si el título del reporte no se especifica que aparezca en las cabeceras}}{}% + \ifdefvoid{\@Num}{\CLASSWARNING{No se especifico' el nu'mero de la factura. Puede dar error si el ti'tulo del reporte no se especifica que aparezca en las cabeceras}}{}% \ifdefvoid{\@Proveedor}{% \ifdefvoid{\@Emisor} {\CLASSERROR{Hay que definir el nombre del proveedor cuando se emite un reporte}}% - {\CLASSWARNING{Se toma el emisor como el proveedor por no haberse especificado este último}% + {\CLASSWARNING{Se toma el emisor como el proveedor por no haberse especificado este u'ltimo}% \let\@Proveedor=\@Emisor}} {}% \fi \if@factura \ifdefvoid{\@RIF}{\CLASSERROR{Hay que definir el R.I.F}}{}% - \ifdefvoid{\@Direccion}{\CLASSERROR{Hay que definir la dirección fiscal}}{}% - \ifdefvoid{\@Telefono}{\CLASSWARNING{Pudiera definirse un número telefónico}}{}% - \ifdefvoid{\@Email}{\CLASSWARNING{Pudiera definirse una dirección de correo electrónico}}{}% + \ifdefvoid{\@Direccion}{\CLASSERROR{Hay que definir la direccio'n fiscal}}{}% + \ifdefvoid{\@Telefono}{\CLASSWARNING{Pudiera definirse un nu'mero telefo'nico}}{}% + \ifdefvoid{\@Email}{\CLASSWARNING{Pudiera definirse una direccio'n de correo electro'nico}}{}% \ifdefvoid{\@Condiciones}{\CLASSWARNING{Pudieran definirse las condiciones del documento}}{}% \ifcotizacion - \ifdefvoid{\@FondoFactura}{\CLASSWARNING{En la opción para cotizacion se recomienda agregar el fondo}}{}% + \ifdefvoid{\@FondoFactura}{\CLASSWARNING{En la opcio'n para cotizacion se recomienda agregar el fondo}}{}% \fi \ifprefactura - \ifdefvoid{\@FondoFactura}{\CLASSWARNING{En la opción para prefactura se recomienda agregar el fondo}}{}% + \ifdefvoid{\@FondoFactura}{\CLASSWARNING{En la opcio'n para prefactura se recomienda agregar el fondo}}{}% \fi \ifsinnumero \ifcotizacion \else - \CLASSERROR{La opción para no poner el número sólo es compatible con las cotizaciones}% + \CLASSERROR{La opcio'n para no poner el nu'mero so'lo es compatible con las cotizaciones}% \fi \fi \ifdenom \ifsinnumero \else - \ifdefvoid{\@Num}{\CLASSERROR{Hay que definir el número de la factura}}{}% + \ifdefvoid{\@Num}{\CLASSERROR{Hay que definir el nu'mero de la factura}}{}% \fi \fi \fi @@ -1109,6 +1144,7 @@ en la República Bolivariana de Venezuela. %% http://tex.stackexchange.com/questions/296035/insert-a-special-character-at-each-end-of-line-in-a-paragraph %% http://tex.stackexchange.com/questions/248944/how-to-put-before-lines \newcommand{\@DescripcionAuxCmd}[2]{% + \immediate\write\@auxout{\gdef\noexpand\@TamDescripcion{\the\linewidth}}% Para poder establecer la línea diagonal hay que saber el tamaño del campo de la descripción. \ifimpdesc\settowidth{\@TempDimen}{\@EscribeTipoDeImpuesto{#2}}\fi \savebox{\@CajaPrueba}{% \parbox[t]{\linewidth}{% @@ -1478,14 +1514,16 @@ en la República Bolivariana de Venezuela. \ifbool{SinLineasVertExt}{}{|}} %% Comando para hacer los cálculos sobre cada ítem y establecer las macros con el contenido de cada ítem introducido. -\NewDocumentCommand{\@CalculaItem}{m m m o m m}{% +%% Aquí tenemos que hacer coincidir los parámetros de \@CalculaItem con los de \@ITEM para poder hacer +%% \let\@CalculaItem\@ITEM cuando no hay factura sino solamente reporte. +\NewDocumentCommand{\@CalculaItem}{m m m o m m +o}{% \addtocounter{NumItem}{1}% % Calculamos. \FPupn\PrecioU{#5 \@DigitosMoneda{} round}% \ifbool{Descuentos} {\ifx\\#6\\\FPset\Dcto{0}\else\FPupn\Dcto{#6 \@DigitosPorc{} round clip}\fi}% Fijamos en 0 el descuento si no se especifica en \Item***. {\FPset\Dcto{#6}% - \FPifeq\Dcto{0}\else\CLASSWARNING{Se pidió un descuento individual sin dar la opción de la clase 'descuentos'. No se tomará en cuenta}\fi + \FPifeq\Dcto{0}\else\CLASSWARNING{Se pidio' un descuento individual sin dar la opcio'n de la clase 'descuentos'. No se tomara' en cuenta}\fi \FPset\Dcto{0}}% También fijamos en 0 el descuento por si se especifica en \Item*** pero no se pide la opción 'descuentos'. \FPupn\PrecioS{#2 \PrecioU{} * \@DigitosMoneda{} round}% \FPupn\PrecioT{100 \Dcto{} 100 - / \PrecioS{} * \@DigitosMoneda{} round}% @@ -1502,6 +1540,7 @@ en la República Bolivariana de Venezuela. \expandafter\global\expandafter\edef\csname @Item@\romannumeral\value{NumItem}@PrecioU\endcsname{\noexpand\numprint{\PrecioU}}% \expandafter\global\expandafter\edef\csname @Item@\romannumeral\value{NumItem}@PrecioS\endcsname{\noexpand\numprint{\PrecioS}}% \expandafter\global\expandafter\edef\csname @Item@\romannumeral\value{NumItem}@Descuento\endcsname{\noexpand\numprint{\Dcto}}% + \expandafter\gdef\csname @Item@\romannumeral\value{NumItem}@DescripcionLarga\endcsname{#7}% \expandafter\global\expandafter\expandafter\edef\csname @Item@\romannumeral\value{NumItem}@IVA\endcsname{% \noexpand\numprint\expandafter{\csname @Alicuota#1porc\endcsname}}% \expandafter\global\expandafter\edef\csname @Item@\romannumeral\value{NumItem}@PrecioT\endcsname{\noexpand\numprint{\PrecioT}}} @@ -1509,7 +1548,7 @@ en la República Bolivariana de Venezuela. %% Macro interna para saber si una etiqueta existe o no. \gdef\@pruebaref#1{% \expandafter\ifx\csname @Etiqueta@#1\endcsname\relax - \CLASSWARNING{La etiqueta `#1' no está definida}\ignorespaces + \CLASSWARNING{La etiqueta `#1' no esta' definida}\ignorespaces \@PruebaReffalse \else \@PruebaReftrue @@ -1517,13 +1556,14 @@ en la República Bolivariana de Venezuela. %% Comandos para las referencias: i) referencia al número de ítem, ii) a la cantidad, iii) a la descripción, iv) al precio unitario, v) al descuento, vi) al precio total. \gdef\itemref#1{% - \ifbool{NumItem}{}{\CLASSWARNING{Es recomendable usar la opción 'numitem' para enumerar los ítems}}% + \ifbool{NumItem}{}{\CLASSWARNING{Es recomendable usar la opcio'n 'numitem' para enumerar los i'tems}}% \@pruebaref{#1}\if@PruebaRef \csname @Etiqueta@#1\endcsname \fi} \gdef\cantref#1{\@pruebaref{#1}\if@PruebaRef \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @Cantidad\endcsname \fi} \gdef\descref#1{\@pruebaref{#1}\if@PruebaRef \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @Descripcion\endcsname \fi} \gdef\puref#1{\@pruebaref{#1}\if@PruebaRef \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @PrecioU\endcsname \fi} \gdef\subtref#1{\@pruebaref{#1}\if@PruebaRef \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @PrecioS\endcsname \fi} \gdef\dctoref#1{\@pruebaref{#1}\if@PruebaRef \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @Descuento\endcsname \fi} +\gdef\ldescref#1{\@pruebaref{#1}\if@PruebaRef \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @DescripcionLarga\endcsname \fi} \gdef\ivaref#1{\@pruebaref{#1}\if@PruebaRef \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @IVA\endcsname \fi} \gdef\ptref#1{\@pruebaref{#1}\if@PruebaRef \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @PrecioT\endcsname \fi} @@ -1531,13 +1571,13 @@ en la República Bolivariana de Venezuela. \newcommand{\label@factura}[1]{% \expandafter\ifx\csname @Etiqueta@#1\endcsname\relax \expandafter\global\expandafter\edef\csname @Etiqueta@#1\endcsname{\arabic{NumItem}}\ignorespaces - \CLASSINFO{Etiqueta `#1' definida para el ítem \arabic{NumItem}}% + \CLASSINFO{Etiqueta `#1' definida para el i'tem \arabic{NumItem}}% \else \edef\@label@test@uno{\csname @Etiqueta@#1\endcsname}% \edef\@label@test@dos{\theNumItem}% \ifx\@label@test@uno\@label@test@dos \else - \CLASSWARNING{La etiqueta `#1' se definió más de una vez}\ignorespaces + \CLASSWARNING{La etiqueta `#1' se definio' ma's de una vez}\ignorespaces \fi \fi} @@ -1555,8 +1595,7 @@ en la República Bolivariana de Venezuela. % Comando auxiliar para abrir el '\multicolumn' para los totales en el modo de columnas y expandir completamente las columnas cuando hay o no barras verticales. \edef\@ColumnasMultiColumnTotalesAuxCmd{% \noexpand\multicolumn{8}{\ifbool{SinLineasVertExt}{}{|} r}\begingroup - \noexpand\ifdim \noexpand\ht\noexpand\@CajaEspacioVacio=0pt - \noexpand\else + \noexpand\if@ExpandeCuadro \noexpand\iflinea\noexpand\zsaveposx{LineaNodoBCoordX}\noexpand\zsaveposy{LineaNodoBCoordY}\noexpand\fi\noexpand\fi% Fijamos la posición (x,y) final para la línea ya que estaremos justo en el punto donde escribimos el total, y hasta allí llega la línea en el modo de columnas. \noexpand\begin{tabular}[b]{@{\noexpand\extracolsep{2\noexpand\tabcolsep}}lr \ifbool{SinLineasVertExt}{}{|}}} @@ -1567,18 +1606,17 @@ en la República Bolivariana de Venezuela. \setlength{\@EspacioVacioFinal}{\zposy{EspacioVacioFinal}sp}% \global\@EspacioVacioInicial=\@EspacioVacioInicial% Hay que globalizarlas \global\@EspacioVacioFinal=\@EspacioVacioFinal - \savebox{\@CajaEspacioVacio}{\parbox[b][\@EspacioVacioInicial-\@EspacioVacioFinal]{0pt}{% + \savebox{\@CajaEspacioVacio}{\parbox[b][\@EspacioVacioInicial-\@EspacioVacioFinal]{\@TamDescripcion}{% \iflinea - \if@LineaCompleta + \if@LineaHastaFinal \zsaveposy{LineaNodoBCoordY}% \else - \if@LineaHastaTotal - \else + \if@LineaDescripcion \zsaveposx{LineaNodoACoordX}\mbox{}\hfill \zsaveposx{LineaNodoBCoordX}\zsaveposy{LineaNodoBCoordY}% \fi \fi \fi}}% - \ifdim \ht\@CajaEspacioVacio=0pt \global\lineafalse \fi + \ifdim \ht\@CajaEspacioVacio=0pt \global\lineafalse \else \@ExpandeCuadrotrue \fi \fi \ifx\undefined\Total\relax\else\CLASSERROR{Parece ya haberse usado un entorno de factura}\fi @@ -1620,9 +1658,9 @@ en la República Bolivariana de Venezuela. \global\@SeparaItemsExtraFinal=\@SeparaItemsExtraFinal} % % Comando interno general para agregar cualquier ítem. - \NewDocumentCommand{\@ITEM}{m m m o m m}{% - % 1. [R|G|A|E|X]; 2. cantidad; 3. descripción; 4. descripción para el csv (entre corchetes); 5. p/u; 6. dcto. - \@CalculaItem{##1}{##2}{##3}{##5}{##6}% + \NewDocumentCommand{\@ITEM}{m m m o m m +o}{% + % 1. [R|G|A|E|X]; 2. cantidad; 3. descripción; 4. descripción para el csv (entre corchetes); 5. p/u; 6. dcto; 7. la descripción para el reporte. + \@CalculaItem{##1}{##2}{##3}{##5}{##6}[##7]% % Si no es el primer ítem, entonces hace falta \\ para terminar el ítem anterior. \ifnum\value{NumItem}=1% Aquí, \@CalculaItem aumenta en 1 el contador NumItem, que si vale 1 significa que aún no hemos procesado la línea 1, es decir, no hay que hacer el salto de línea. La última línea se termina en otro lado. \else @@ -1653,7 +1691,7 @@ en la República Bolivariana de Venezuela. {\@DescripcionAuxCmd{##3}{##1}}% cdu. & % Cuarto campo: Acá puede ir el precio unitario (cdu y dcu) o la cantidad (duc). - \FPifeq\PrecioU{##5}\else\CLASSWARNING{Se está introduciendo un precio con más de dos decimales: (##3 - ##5. Redondeado a \PrecioU)}{}\fi% Advertimos cuando el precio unitario tiene más de dos decimales. + \FPifeq\PrecioU{##5}\else\CLASSWARNING{Se esta' introduciendo un precio con ma's de dos decimales: (##3 - ##5. Redondeado a \PrecioU)}{}\fi% Advertimos cuando el precio unitario tiene más de dos decimales. \ifbool{SinCantidad}{}{% \ifduc \David@XRight{\@CantidadAuxCmd{\mbox{}\hfill \@LetraNumeros \numprint{##2}\hfill\mbox{}}}% duc. @@ -1732,11 +1770,15 @@ en la República Bolivariana de Venezuela. % Usamos la definición de \label@factura dentro del entorno de la factura para que sea local aquí nada más. \let\label\label@factura \@LetraItems% Este es el tipo de letra que tendrán los ítems, y en este tipo de letra se define el \baselineskip de toda la factura. + \setlength{\baselineskip@@}{\baselineskip}% + \global\baselineskip@@=\baselineskip@@ \@FacturaAuxInicioCmd \ifbool{SinLineasHoriExt}{}{\hline}% \@ZERO + \setlength{\tabcolsep@@}{\tabcolsep}% + \global\tabcolsep@@=\tabcolsep@@ % Estamos en el número del ítem, si aplicara. - \if@LineaDesdeInicio \hspace*{-\tabcolsep}\zsaveposx{LineaNodoACoordX}\hspace*{\tabcolsep}\fi + \if@LineaDesdeInicio \zsaveposx{LineaNodoACoordX}\fi \ifbool{NumItem}{\@NumItemAuxCmd{\mbox{}\hfill \@LetraTitColumnas \@@NumItem \hfill\mbox{}}}{}% & % Avanzamos a la cantidad, o la descripción. @@ -1763,40 +1805,51 @@ en la República Bolivariana de Venezuela. \ifbool{IVA}{\@IVAAuxCmd{\mbox{}\hfill \@LetraTitColumnas \@@IVA \hfill\mbox{}}}{} &% Avanzamos hasta el precio total. \@PrecioTAuxCmd{\mbox{}\hfill \@LetraTitColumnas \ifbool{SinCantidad}{\@@Precio}{\@@PrecioT}\space (\Moneda)\hfill\mbox{}}% - \if@LineaCompleta \hspace*{\tabcolsep}\zsaveposx{LineaNodoBCoordX}\hspace*{-\tabcolsep}\fi + \if@LineaHastaFinal \zsaveposx{LineaNodoBCoordX}\fi \\ - \ifbool{SinLineasHoriInt}{}{\hline}% + \ifbool{SinLineaHoriTit}{}{\hline}% % #1% Aquí entran todos los items que el usuario declara dentro del ambiente. + \@CalculaTotalesI \@CalculaSeparaItemsExtraFinal \\[\@SeparaItemsExtraFinal]% El último fin de línea se hace aquí. - \ifconlineasha\hline\fi% Se verifica si hace falta una línea horizontal o no. + \ifconlineasha + \ifdefvoid{\@NotaInterna}{% + \ifbool{SinLineasHoriExt}{\if@ExpandeCuadro\hline\fi}{\hline}}{\hline}% + \fi% Se verifica si hace falta una línea horizontal o no. \iffilas % Esto en lugar de \ifexpandecuadro para que no se haga una linea vacía en la tabla cuando la caja está vacía. - \ifdim \ht\@CajaEspacioVacio=0pt - \ifdefvoid{\@NotaInterna}{% - \ifbool{SinLineasHoriExt}{}{% - \ifconlineasha\else\hline\fi}% Verificamos si hay que poner la línea horizontal. Si está 'conlineasha' ya salió debido a esta opción. - }{\@ColumnasMultiColumnNotaIntAuxCmd\ifbool{SinLineasHoriExt}{}{\hline}}% - \else + \if@ExpandeCuadro \ifbool{PrimeroDescripcion}{&\usebox{\@CajaEspacioVacio}&&&&&&\\}{&&\usebox{\@CajaEspacioVacio}&&&&&\\}% - \ifdefvoid{\@NotaInterna}{}{\@ColumnasMultiColumnNotaIntAuxCmd}% + \ifdefvoid{\@NotaInterna}{} + {\ifbool{SinLineaHoriNI}{}{\hline}% + \@ColumnasMultiColumnNotaIntAuxCmd}% \ifbool{SinLineasHoriExt}{}{\hline}% Siempre que hay relleno se pone la línea acá. + \else + \ifdefvoid{\@NotaInterna}{% + \ifbool{SinLineasHoriExt}{}{% + \ifconlineasha\else\hline\fi}}% Verificamos si hay que poner la línea horizontal. Si está 'conlineasha' entonces ya salió la línea. + {\ifbool{SinLineaHoriNI}{}{\ifconlineasha\else\hline\fi}% + \@ColumnasMultiColumnNotaIntAuxCmd + \ifbool{SinLineasHoriExt}{}{\hline}}% \fi \else - \ifbool{SinLineasHoriInt}{}{\ifconlineasha\else\hline\fi}% Línea que cierra los ítems en la tabla. - % Agregamos el espacio espúreo. - \ifdim \ht\@CajaEspacioVacio=0pt + \ifsintotales \else - % Rellenamos la tabla con espacio espúreo, y le agregamos las lineas externas, si aplica. + \ifbool{SinLineaHoriTot}{}{\ifconlineasha\else\hline\fi}% Línea que cierra los ítems en la tabla. + \fi + % Agregamos el espacio espúreo. + \if@ExpandeCuadro + % Rellenamos la tabla con espacio espúreo, y le agregamos las líneas externas, si aplica. \ifbool{SinLineasVertExt}{\multicolumn{8}{c}{\usebox{\@CajaEspacioVacio}}}{\multicolumn{8}{|c|}{\usebox{\@CajaEspacioVacio}}}\\ \fi - % Si pedimos sin totalizaciones, entonces cerramos la tabla ya, si no, calculamos los totales y los escribimos + % Si pedimos sin totalizaciones, entonces cerramos la tabla ya, si no, calculamos los totales y los escribimos. \ifsintotales + \ifdefvoid{\@NotaInterna}{}{\ifbool{SinLineaHoriNI}{}{\hline}\@ColumnasMultiColumnNotaIntAuxCmd}% + \ifbool{SinLineasHoriExt}{}{\hline}% \else - % Modo de columnas: Abrimos la tabla para escribir los totales, y le agregamos las líneas verticales externas, si aplica. + % Modo de columnas: Abrimos la tabla para escribir los totales y le agregamos las líneas verticales externas, si aplica. \@ColumnasMultiColumnTotalesAuxCmd - \@CalculaTotalesI \ifagrupado \@EscribeTotalColAgrupado \else @@ -1810,7 +1863,7 @@ en la República Bolivariana de Venezuela. \hfill \@LetraTitTotal\@@Total & \@LetraNumTotal\numprint{\Total}\\ \end{tabular}\endgroup \\ - \ifdefvoid{\@NotaInterna}{}{\@ColumnasMultiColumnNotaIntAuxCmd}% + \ifdefvoid{\@NotaInterna}{}{\ifbool{SinLineaHoriNI}{}{\hline}\@ColumnasMultiColumnNotaIntAuxCmd}% \ifbool{SinLineasHoriExt}{}{\hline}% \fi \fi @@ -1820,7 +1873,6 @@ en la República Bolivariana de Venezuela. \ifsintotales\gdef\Total{}\fi % Si pedimos no totalizar (sintotales), la opción filas queda desactivada. \iffilas - \@CalculaTotalesI \@LetraNumTotales \vspace*{\@SeparaVertical}\par \ifexpandecuadro\else\vfill\fi @@ -1871,7 +1923,7 @@ en la República Bolivariana de Venezuela. \if@Exento\usebox{\@CajaBIE}\hspace*{\@SeparaMinTotales}\fi\usebox{\@CajaTotal}% \ifcentrado\hspace*{\@SepTotales}\fi \else% Aquí casi cualquier cosa tiene aspecto feo. - \CLASSWARNING{Es mejor no usar la opción de totalización en filas en este caso, o disminuir los tamaños de los tipos de letra para la totalización}% + \CLASSWARNING{Es mejor no usar la opcio'n de totalizacio'n en filas en este caso, o disminuir los tama~nos de los tipos de letra para la totalizacio'n}% \centering{% \begin{tabular}{r@{\hspace*{\@SeparaMinTotales}}l} \usebox{\@CajaBIAliR} & \usebox{\@CajaBIAliA} \\[\@SeparaFilas] @@ -1895,11 +1947,11 @@ en la República Bolivariana de Venezuela. \ifbool{SinCantidad} % Definamos todos los comandos \Item***. El descuento es opcional; por eso usamos G{0} en \NewDocumentCommand. {% - \NewDocumentCommand{\Item}{m o m G{0}}{\@ITEM{G}{1}{#1}[#2]{#3}{#4}}% Ítem normal. - \NewDocumentCommand{\ItemR}{m o m G{0}}{\global\@BIRtrue\global\Gtrue\@ITEM{R}{1}{#1}[#2]{#3}{#4}}% Ítem con IVA reducido. - \NewDocumentCommand{\ItemA}{m o m G{0}}{\global\@BIAtrue\global\Gtrue\@ITEM{A}{1}{#1}[#2]{#3}{#4}}% Ítem con IVA adicional. - \NewDocumentCommand{\ItemE}{m o m G{0}}{\global\@Exentotrue\global\Gtrue\@ITEM{E}{1}{#1}[#2]{#3}{#4}}% Ítem exento de IVA. - \NewDocumentCommand{\ItemX}{m o}{\@ITEM{X}{1}{#1}[#2]{0}{0}}% Ítem sin precio. + \NewDocumentCommand{\Item}{m o m G{0} +o}{\@ITEM{G}{1}{#1}[#2]{#3}{#4}[#5]}% Ítem normal. + \NewDocumentCommand{\ItemR}{m o m G{0} +o}{\global\@BIRtrue\global\Gtrue\@ITEM{R}{1}{#1}[#2]{#3}{#4}[#5]}% Ítem con IVA reducido. + \NewDocumentCommand{\ItemA}{m o m G{0} +o}{\global\@BIAtrue\global\Gtrue\@ITEM{A}{1}{#1}[#2]{#3}{#4}[#5]}% Ítem con IVA adicional. + \NewDocumentCommand{\ItemE}{m o m G{0} +o}{\global\@Exentotrue\global\Gtrue\@ITEM{E}{1}{#1}[#2]{#3}{#4}[#5]}% Ítem exento de IVA. + \NewDocumentCommand{\ItemX}{m o +o}{\@ITEM{X}{1}{#1}[#2]{0}{0}[#3]}% Ítem sin precio. \let\ItemG\Item \ifcsv \ifdescuentos @@ -1909,11 +1961,11 @@ en la República Bolivariana de Venezuela. \fi \fi} {% - \NewDocumentCommand{\Item}{m m o m G{0}}{\@ITEM{G}{#1}{#2}[#3]{#4}{#5}}% Ítem normal. - \NewDocumentCommand{\ItemR}{m m o m G{0}}{\global\@BIRtrue\global\Gtrue\@ITEM{R}{#1}{#2}[#3]{#4}{#5}}% Ítem con IVA reducido. - \NewDocumentCommand{\ItemA}{m m o m G{0}}{\global\@BIAtrue\global\Gtrue\@ITEM{A}{#1}{#2}[#3]{#4}{#5}}% Ítem con IVA adicional. - \NewDocumentCommand{\ItemE}{m m o m G{0}}{\global\@Exentotrue\global\Gtrue\@ITEM{E}{#1}{#2}[#3]{#4}{#5}}% Ítem exento de IVA. - \NewDocumentCommand{\ItemX}{m m o}{\@ITEM{X}{#1}{#2}[#3]{0}{0}}% Ítem sin precio. + \NewDocumentCommand{\Item}{m m o m G{0} +o}{\@ITEM{G}{#1}{#2}[#3]{#4}{#5}[#6]}% Ítem normal. + \NewDocumentCommand{\ItemR}{m m o m G{0} +o}{\global\@BIRtrue\global\Gtrue\@ITEM{R}{#1}{#2}[#3]{#4}{#5}[#6]}% Ítem con IVA reducido. + \NewDocumentCommand{\ItemA}{m m o m G{0} +o}{\global\@BIAtrue\global\Gtrue\@ITEM{A}{#1}{#2}[#3]{#4}{#5}[#6]}% Ítem con IVA adicional. + \NewDocumentCommand{\ItemE}{m m o m G{0} +o}{\global\@Exentotrue\global\Gtrue\@ITEM{E}{#1}{#2}[#3]{#4}{#5}[#6]}% Ítem exento de IVA. + \NewDocumentCommand{\ItemX}{m m o +o}{\@ITEM{X}{#1}{#2}[#3]{0}{0}[#4]}% Ítem sin precio. \let\ItemG\Item \ifcsv \if@cdu @@ -1943,7 +1995,7 @@ en la República Bolivariana de Venezuela. % Los descuentos totales no son compatibles -y no creo que lo vayan a ser- con el modo de totalización en filas. \iffilas \if@DescuentoTotal - \CLASSWARNING{La opción 'filas' no es compatible con los descuentos totales; sin efecto opción 'filas'} + \CLASSWARNING{La opcio'n 'filas' no es compatible con los descuentos totales; sin efecto opcio'n 'filas'} \filasfalse \fi \fi @@ -1978,9 +2030,13 @@ en la República Bolivariana de Venezuela. % Para determinar las coordenadas de la línea hay que usar \AtBeginShipoutNext porque si no se hace en el 'shipout' de la página se genera un espacio en blanco extra. \AtBeginShipoutNext{\iflinea\@DibujaLinea\fi} \iffilas - \ifbool{SinLineasVertInt}{\@LineaCompletatrue} + \ifbool{SinLineasVertInt}{\@LineaDesdeIniciotrue\@LineaHastaFinaltrue}{\@LineaDescripciontrue}% \else - \@LineaHastaTotaltrue\@LineaDesdeIniciotrue + \ifsintotales + \@LineaDesdeIniciotrue\@LineaHastaFinaltrue + \else + \@LineaDesdeIniciotrue\@LineaHastaTotaltrue + \fi \fi \fi %% El comando para la descripción del servicio prestado. @@ -2233,25 +2289,40 @@ en la República Bolivariana de Venezuela. %% Comando que coloca la línea diagonal. \newcommand{\@DibujaLinea}{% - \@LetraItems% Volvemos a fijar el \baselineskip de la tabla. \setlength{\@LineaNodoXo}{\zposx{LineaNodoACoordX} sp}% \setlength{\@LineaNodoYo}{\zposy{LineaNodoBCoordY} sp}% \setlength{\@LineaNodoXf}{\zposx{LineaNodoBCoordX} sp}% \setlength{\@LineaNodoYf}{\zposy{LineaNodoBCoordY} sp}% \addtolength{\@LineaNodoYo}{\@EspacioVacioInicial-\@EspacioVacioFinal}% + \if@LineaDesdeInicio + \addtolength{\@LineaNodoXo}{-\tabcolsep@@}% + \fi + \if@LineaHastaFinal + \addtolength{\@LineaNodoXf}{\tabcolsep@@}% + \fi \iffilas + \addtolength{\@LineaNodoYf}{-.3\baselineskip@@}% + \if@LineaDescripcion + \addtolength{\@LineaNodoXo}{-\tabcolsep@@}% + \addtolength{\@LineaNodoXf}{\tabcolsep@@}% + \fi \else - \if@DescG \addtolength{\@LineaNodoYo}{2\baselineskip}\fi - \if@DescR \if@BIR \addtolength{\@LineaNodoYo}{2\baselineskip}\fi\fi - \if@DescA \if@BIA \addtolength{\@LineaNodoYo}{2\baselineskip}\fi\fi - \if@DescE \if@Exento \addtolength{\@LineaNodoYo}{2\baselineskip}\fi\fi - \addtolength{\@LineaNodoYo}{\baselineskip/2}% - \ifsinivaexpresado + \ifsintotales + \addtolength{\@LineaNodoYf}{-.3\baselineskip@@}% \else - \addtolength{\@LineaNodoYo}{2\baselineskip}% - \if@BIR\addtolength{\@LineaNodoYo}{2\baselineskip}\fi - \if@BIA\addtolength{\@LineaNodoYo}{2\baselineskip}\fi - \if@Exento\addtolength{\@LineaNodoYo}{\baselineskip}\fi + \if@DescG \addtolength{\@LineaNodoYo}{2\baselineskip@@}\fi + \if@DescR \if@BIR \addtolength{\@LineaNodoYo}{2\baselineskip@@}\fi\fi + \if@DescA \if@BIA \addtolength{\@LineaNodoYo}{2\baselineskip@@}\fi\fi + \if@DescE \if@Exento \addtolength{\@LineaNodoYo}{2\baselineskip@@}\fi\fi + \addtolength{\@LineaNodoYo}{\baselineskip@@}% + \addtolength{\@LineaNodoYf}{-.3\baselineskip@@}% + \ifsinivaexpresado + \else + \addtolength{\@LineaNodoYo}{2\baselineskip@@}% + \if@BIR\addtolength{\@LineaNodoYo}{2\baselineskip@@}\fi + \if@BIA\addtolength{\@LineaNodoYo}{2\baselineskip@@}\fi + \if@Exento\addtolength{\@LineaNodoYo}{\baselineskip@@}\fi + \fi \fi \fi \iflinea diff --git a/Master/texmf-dist/tex/latex/factura/factura.def b/Master/texmf-dist/tex/latex/factura/factura.def index fae09b821ba..4e191716a51 100644 --- a/Master/texmf-dist/tex/latex/factura/factura.def +++ b/Master/texmf-dist/tex/latex/factura/factura.def @@ -36,7 +36,7 @@ %% factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %% \ProvidesFile{factura.def} -[2018/04/17 v3.47 +[2018/05/22 v3.56 Archivo de valores iniciales y condiciones de borde para factura.cls ] @@ -68,11 +68,11 @@ Archivo de valores iniciales y condiciones de borde para factura.cls %% La moneda: \def\@MonedaBs{Bs.} -\def\@MonedaBsS{BsS.} +\def\@MonedaBsS{Bs.S} %% Las fechas de la entrada de la reconversión monetaria: -\DTMsavedate{FechaBsS}{2018-05-01} -\DTMsavedate{FechaBs}{2018-06-04} +\DTMsavedate{FechaBsS}{2018-06-04} +\DTMsavedate{FechaBs}{2019-01-01} %% Al lado de cada ítem va la letra que designa el gravamen que aplica sobre él: \def\@DenomAlicuotaG{G} @@ -81,7 +81,7 @@ Archivo de valores iniciales y condiciones de borde para factura.cls \def\@DenomAlicuotaE{(E)} %% El texto predeterminado para la nota interna por el descuento presidencial. -\def\@TextoDescuentoPresidencial{Se aplica un descuento del \@AlicuotaGDescPorc\% al IVA General seg\'un Decreto Presidencial 3085 en Gaceta Oficial 41239.} +\def\@TextoDescuentoPresidencial{Se aplica un descuento del \@AlicuotaGDescPorc\% al IVA General seg\'un Decreto Presidencial 3.085 en Gaceta Oficial 41.239.} %% Macros que guardan textos que corresponden a nombres de campos: \def\@@Fecha{Fecha de emisi\'on:} |