diff options
author | Karl Berry <karl@freefriends.org> | 2019-08-17 21:50:51 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-08-17 21:50:51 +0000 |
commit | 0e6e40151d7ac2a51ec47a632924e9876f390661 (patch) | |
tree | 28ccb854f9f0915b1bc77d271cedaf2b190dfb16 | |
parent | 75ea8af969ed61b1f317bf97428d4dc273364b7e (diff) |
factura (17aug19)
git-svn-id: svn://tug.org/texlive/trunk@51895 c570f23f-e606-0410-a88d-b1316a301751
27 files changed, 981 insertions, 789 deletions
diff --git a/Master/texmf-dist/doc/latex/factura/README b/Master/texmf-dist/doc/latex/factura/README index ce9cf944328..bc92d7eb091 100644 --- a/Master/texmf-dist/doc/latex/factura/README +++ b/Master/texmf-dist/doc/latex/factura/README @@ -1,4 +1,4 @@ -<factura> +<factura> * Brief description in english * 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 74880932284..07ed5b5c32f 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-beispiel-rechnung.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-beispiel-rechnung.tex @@ -6,7 +6,7 @@ %% %% factura.dtx (with options: `beispiel') %% -%% Copyright 2018 Emilio Lazo Zaia <emiliolazozaia@gmail.com> +%% Copyright 2019 Emilio Augusto Lazo Zaia <emiliolazozaia@gmail.com> %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -20,7 +20,7 @@ %% %% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is Emilio Lazo Zaia. +%% The Current Maintainer of this work is Emilio Augusto Lazo Zaia. %% %% This work consists of the files README and factura.dtx %% with its derived files factura.ins, factura.cls, factura.def, @@ -40,7 +40,7 @@ %% Adaptado a otra legislación %% (prefactura) Escribimos una prefactura %% (nospanish) Sin cargar babel en castellano, ni la codificación T1 para la tipografías -%% (\Condiciones) Con condiciones del documento +%% (\NotaFinal) Con nota final %%</desc> %% \documentclass[ @@ -86,7 +86,7 @@ nospanish, \def\@@Conforme{der Kunde} \def\@@DenomFactura{Rechnung} \def\@@DenomCotiza{Voranschlag} -% \LetraNumeracion{\fontsize{14}{14}\bfseries} + \renewcommand{\@EstiloDenom}{\@LetraDenom\@Denominacion-\ifsinnumero\else\@LetraNumeracion Nr:\space\@Num\fi} \renewcommand{\@EstiloNumControl}{} \makeatother @@ -98,11 +98,11 @@ nospanish, \Telefono{+58 (987) 654.32.10} \Email{jacinto@ayala.sv} -\Fecha{02-07-2019} +\Fecha{06-11-2019} \FondoFactura{factura-ejemplo-fondo} -\Condiciones{Die Zahlungsbedingungen} +\NotaFinal{Die Zahlungsbedingungen} \Resumen{Zusammenfassung} \begin{document} diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-aux.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-aux.tex index 8cc71d58c86..a82c950ad7e 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-aux.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-aux.tex @@ -6,7 +6,7 @@ %% %% factura.dtx (with options: `aux') %% -%% Copyright 2018 Emilio Lazo Zaia <emiliolazozaia@gmail.com> +%% Copyright 2019 Emilio Augusto Lazo Zaia <emiliolazozaia@gmail.com> %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -20,7 +20,7 @@ %% %% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is Emilio Lazo Zaia. +%% The Current Maintainer of this work is Emilio Augusto Lazo Zaia. %% %% This work consists of the files README and factura.dtx %% with its derived files factura.ins, factura.cls, factura.def, @@ -39,8 +39,8 @@ %% Archivo auxiliar; no para ser compilado sino para ser incluido en los ejemplos. %% \usepackage{xspace,catchfilebetweentags,regexpatch} -\def\optcolor{\color{blue}} -\def\macrocolor{\color{purple}} +\def\ejemplooptcolor{\color{blue}} +\def\ejemplomacrocolor{\color{purple}} \makeatletter \catcode`\%=11 \catcode`\|=14 @@ -54,8 +54,8 @@ \CatchFileBetweenDelims{\DescEjemplo}{\jobname.tex}{<desc>}{</desc>}[\catcode37=11\catcode13=14\makeatletter]| \catcode`\%=11 \makeatletter - \regexpatchcmd*{\DescEjemplo}{\cC.\cO[*]*}{\c{begingroup}\c{macrocolor}\c{ttfamily}\c{string}\0\c{endgroup}\c{xspace}}{}{}| - \regexpatchcmd*{\DescEjemplo}{(\()(\cL[a-zG]*)(\))}{(\c{begingroup}\c{optcolor}\c{ttfamily}\2\c{endgroup})}{}{}| + \regexpatchcmd*{\DescEjemplo}{\cC.\cO[*]*}{\c{begingroup}\c{ejemplomacrocolor}\c{ttfamily}\c{string}\0\c{endgroup}\c{xspace}}{}{}| + \regexpatchcmd*{\DescEjemplo}{(\()(\cL[a-zG]*)(\))}{(\c{begingroup}\c{ejemplooptcolor}\c{ttfamily}\2\c{endgroup})}{}{}| \xpatchcmd*{\DescEjemplo}{%% }{\item}{}{}| \xpatchcmd*{\DescEjemplo}{%%}{}{}{}| \makeatother 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 1bfaefbda68..5c241768ccc 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-cotizacion.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-cotizacion.tex @@ -6,7 +6,7 @@ %% %% factura.dtx (with options: `cotiza') %% -%% Copyright 2018 Emilio Lazo Zaia <emiliolazozaia@gmail.com> +%% Copyright 2019 Emilio Augusto Lazo Zaia <emiliolazozaia@gmail.com> %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -20,7 +20,7 @@ %% %% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is Emilio Lazo Zaia. +%% The Current Maintainer of this work is Emilio Augusto Lazo Zaia. %% %% This work consists of the files README and factura.dtx %% with its derived files factura.ins, factura.cls, factura.def, @@ -42,7 +42,7 @@ %% (sintotales) No totaliza, para que el cliente tenga un presupuesto por distintos ítems que luego elegirá entre ellos, es decir, una lista de precios %% (\FondoFactura) Con el fondo de la imprenta agregado %% (\FirmaFactura) Agregando la firma escaneada en la factura, es decir, en la cotización -%% (\Condiciones) Con condiciones del documento +%% (\NotaFinal) Con nota final %% Sin resumen %% (\Descripcion) Con descripción larga %%</desc> @@ -66,13 +66,13 @@ sintotales, \Telefono{+58 (987) 654.32.10} \Email{jacinto@ayala.sv} -\Fecha{02-07-2019} +\Fecha{06-11-2019} \FondoFactura{factura-ejemplo-fondo} \FirmaFactura{\includegraphics[width=4.5cm]{factura-ejemplo-firma}}[0pt][17pt] % \Denom{PRESUPUESTO} % También podemos cambiar el nombre del documento. -\Condiciones{Las condiciones del documento...} +\NotaFinal{La nota final...} \begin{document} 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 ee68c07fdb5..34d45eca680 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura01.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura01.tex @@ -6,7 +6,7 @@ %% %% factura.dtx (with options: `factuno') %% -%% Copyright 2018 Emilio Lazo Zaia <emiliolazozaia@gmail.com> +%% Copyright 2019 Emilio Augusto Lazo Zaia <emiliolazozaia@gmail.com> %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -20,7 +20,7 @@ %% %% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is Emilio Lazo Zaia. +%% The Current Maintainer of this work is Emilio Augusto Lazo Zaia. %% %% This work consists of the files README and factura.dtx %% with its derived files factura.ins, factura.cls, factura.def, @@ -38,8 +38,8 @@ %% Descripción de este ejemplo: %%<desc> %% Escribimos una factura -%% Todo con los valores por omisión -%% (\Condiciones) Con condiciones del documento +%% Hacemos una factura básica con todo en sus valores por omisión, no ajustamos nada +%% (\NotaFinal) Con nota final %% (\Resumen) Con resumen %% (\Descripcion) Con descripción larga %%</desc> @@ -56,9 +56,9 @@ \Telefono{+58 (987) 654.32.10} \Email{jacinto@ayala.sv} -\Fecha{02-07-2019} +\Fecha{06-11-2019} -\Condiciones{Las condiciones del documento...} +\NotaFinal{La nota final...} \Resumen{El resumen opcional} \begin{document} 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 6ae201d6819..f7bb66e979b 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura02.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura02.tex @@ -6,7 +6,7 @@ %% %% factura.dtx (with options: `factdos') %% -%% Copyright 2018 Emilio Lazo Zaia <emiliolazozaia@gmail.com> +%% Copyright 2019 Emilio Augusto Lazo Zaia <emiliolazozaia@gmail.com> %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -20,7 +20,7 @@ %% %% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is Emilio Lazo Zaia. +%% The Current Maintainer of this work is Emilio Augusto Lazo Zaia. %% %% This work consists of the files README and factura.dtx %% with its derived files factura.ins, factura.cls, factura.def, @@ -53,7 +53,7 @@ %% (\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 +%% (\NotaFinal) Con nota final %% (\Resumen) Con resumen %% Con artículos gravados con todos los IVA %% (\ItemX) Agregando un ítem sin precio @@ -79,7 +79,7 @@ unafirma, \Telefono{+58 (987) 654.32.10} \Email{jacinto@ayala.sv} -\Fecha{02-07-2019} +\Fecha{06-11-2019} \SepVertical{0.75cm} \SepDatosResumen{1cm} @@ -88,16 +88,16 @@ unafirma, \SepDescripcion{16pt} \LineaDescripcion{1pt}{20pt}{3pt} -\Condiciones{Las condiciones del documento...} +\NotaFinal{La nota final...} \Resumen{El resumen opcional} \begin{document} \begin{factura} - \Item{1}{ítem con IVA general, con descuento}{1000}{8} - \ItemR{1}{ítem con IVA reducido, con descuento}{1000}{5} - \ItemA{1}{ítem con IVA adicional, con descuento}{1000}{10} - \ItemE{1}{ítem exento de impuesto, con descuento}{1000} + \Item{1}{ítem con IVA general, viene con descuento}{1000}{12} + \ItemR{1}{ítem con IVA reducido, viene con descuento}{1000}{5} + \ItemA{1}{ítem con IVA adicional, viene con descuento}{1000}{10} + \ItemE{1}{ítem exento de impuesto}{1000} \ItemX{1}{línea sin precio} \end{factura} 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 9afe32fb145..bbe6b2eaa71 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura03.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura03.tex @@ -6,7 +6,7 @@ %% %% factura.dtx (with options: `facttres') %% -%% Copyright 2018 Emilio Lazo Zaia <emiliolazozaia@gmail.com> +%% Copyright 2019 Emilio Augusto Lazo Zaia <emiliolazozaia@gmail.com> %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -20,7 +20,7 @@ %% %% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is Emilio Lazo Zaia. +%% The Current Maintainer of this work is Emilio Augusto Lazo Zaia. %% %% This work consists of the files README and factura.dtx %% with its derived files factura.ins, factura.cls, factura.def, @@ -44,12 +44,13 @@ %% (expandecuadro) Expande el cuadro de la factura con espacio en blanco %% (impdesc) Con el tipo de impuesto como parte de la descripción y no de los precios %% (sinfirmas) Sin firmas +%% Sin especificar fecha para que tome la fecha del día. %% (\FormatoFecha) Cambiando el separador de la fecha para que salga escrita dd/mm/yyyy %% (\DescuentoE y \DescuentoG) Con descuentos totales en porcentajes para exentos y gravables con IVA general %% (\SepVertical) Alterando la separación mínima vertical entre los elementos %% (\SepEncabezado) Alterando el margen interno desde el contorno hasta el texto en el encabezado %% (\LineaEncabezado) Alterando la línea de las cajas del encabezado, la curvatura en la esquina y la sombra -%% (\Condiciones) Con condiciones del documento +%% (\NotaFinal) Con nota final %% Sin resumen %% Con artículos gravados con todos los IVA %% Sin descripción larga @@ -75,15 +76,15 @@ sinfirmas, \Email{jacinto@ayala.sv} \FormatoFecha{ddmmyyyy}{/} -\Fecha{02-07-2019} \DescuentoE{15} \DescuentoG{20} + \SepVertical{0.75cm} \SepEncabezado{16pt} \LineaEncabezado{1pt}{20pt}{3pt} -\Condiciones{Las condiciones del documento...} +\NotaFinal{La nota final...} \begin{document} 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 8107e809a32..2d4309fc9fb 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura04.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura04.tex @@ -6,7 +6,7 @@ %% %% factura.dtx (with options: `factcuatro') %% -%% Copyright 2018 Emilio Lazo Zaia <emiliolazozaia@gmail.com> +%% Copyright 2019 Emilio Augusto Lazo Zaia <emiliolazozaia@gmail.com> %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -20,7 +20,7 @@ %% %% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is Emilio Lazo Zaia. +%% The Current Maintainer of this work is Emilio Augusto Lazo Zaia. %% %% This work consists of the files README and factura.dtx %% with its derived files factura.ins, factura.cls, factura.def, @@ -50,7 +50,7 @@ %% (\Fecha*) Suministrando la fecha según formato de datetime2 sin alterar cómo sale escrita %% (\SepItemsExtra) Agregando una separación extra entre los ítems en la factura %% (\Letra***) Cambiando varias de las tipografías -%% Sin condiciones del documento +%% Sin nota final %% Sin resumen %% (\NotaPrevia) Con nota previa %% (\ItemX) Agregando un ítem sin precio @@ -74,13 +74,13 @@ linea, \Direccion{Av. Ayala, Galpón San Vicente, Sector Arauca, Apure, Venezuela} \Telefono{+58 (987) 654.32.10} -\Fecha*{2019}{07}{02} +\Fecha*{2019}{06}{11} \SepItemsExtra{5pt} \LetraDescripcion{\fontsize{20}{30}} \LetraTitEnc{\fontsize{15}{20}\bfseries} \LetraFirmas{\fontsize{16}{20}\itshape} -\LetraCondiciones{\fontsize{18}{28}\bfseries} +\LetraNotaFinal{\fontsize{18}{28}\bfseries} \NotaPrevia{\hfill LA NOTA PREVIA} 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 4213157cab1..b4a4802a07f 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura05.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura05.tex @@ -6,7 +6,7 @@ %% %% factura.dtx (with options: `factcinco') %% -%% Copyright 2018 Emilio Lazo Zaia <emiliolazozaia@gmail.com> +%% Copyright 2019 Emilio Augusto Lazo Zaia <emiliolazozaia@gmail.com> %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -20,7 +20,7 @@ %% %% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is Emilio Lazo Zaia. +%% The Current Maintainer of this work is Emilio Augusto Lazo Zaia. %% %% This work consists of the files README and factura.dtx %% with its derived files factura.ins, factura.cls, factura.def, @@ -51,7 +51,7 @@ %% (\Conforme) Especificando el nombre de quien firma la copia de la factura como recibida %% (\FormatoFecha) Suministrando la fecha según el formato yyyymmdd pero que salga escrita dd.mm.yyyy %% (\SepDatosResumen) Alterando la separación horizontal entre los datos del cliente y el resumen -%% (\Condiciones) Con condiciones del documento +%% (\NotaFinal) Con nota final %% (\Resumen) Con resumen %% (\ItemX) Agregando un ítem sin precio %% (\Descripcion) Con descripción larga @@ -80,10 +80,10 @@ todosiva, \Conforme{\Contacto} \FormatoFecha[yyyymmdd]{ddmmyyyy}{.} -\Fecha{20190702} +\Fecha{20191106} \SepDatosResumen{1cm} -\Condiciones{Las condiciones del documento...} +\NotaFinal{La nota final...} \Resumen{El resumen opcional} \begin{document} 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 3511974cab0..e7cd05a08c4 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura06.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura06.tex @@ -6,7 +6,7 @@ %% %% factura.dtx (with options: `factseis') %% -%% Copyright 2018 Emilio Lazo Zaia <emiliolazozaia@gmail.com> +%% Copyright 2019 Emilio Augusto Lazo Zaia <emiliolazozaia@gmail.com> %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -20,7 +20,7 @@ %% %% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is Emilio Lazo Zaia. +%% The Current Maintainer of this work is Emilio Augusto Lazo Zaia. %% %% This work consists of the files README and factura.dtx %% with its derived files factura.ins, factura.cls, factura.def, @@ -39,6 +39,8 @@ %%<desc> %% Escribimos una factura %% (numitem) Con la columna para enumerar los ítems +%% (descuentos) Con la columna para descuentos individuales +%% (subtotal) Con la columna extra para subtotal %% (denom) Escribe la denominación (“FACTURA”) y el número %% (sinlineasve) Sin líneas verticales externas %% (sinlineashi) Sin líneas horizontales internas @@ -49,7 +51,7 @@ %% (\FormatoFecha) Cambiando el formato para que la fecha salga escrita en el formato default de datetime2 pero cambiando el separador yyyy/mm/dd %% (\SepEncabezado) Alterando el margen interno desde el contorno hasta el texto en el encabezado %% (\SepDescripcion) Alterando la distancia desde el contorno hasta el texto en la descripción -%% (\Condiciones) Con condiciones del documento +%% (\NotaFinal) Con nota final %% Sin resumen %% Escribimos un ítem cuya descripción ocupa más que una línea %% (\Descripcion) Con descripción larga @@ -58,6 +60,8 @@ %% \documentclass[ numitem, +descuentos, +subtotal, denom, sinlineasve, sinlineashi, @@ -75,18 +79,18 @@ todosiva, \Conforme{Ramela San Vicente} \FormatoFecha{default}{/} -\Fecha{02-07-2019} +\Fecha{06-11-2019} \SepEncabezado{16pt} \SepDescripcion{16pt} -\Condiciones{Las condiciones del documento...} +\NotaFinal{La nota final...} \begin{document} \begin{factura} - \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} + \Item{2}{ítem con IVA general, viene con descuento}{1000}{8}[Un ítem que ofrecemos a precio de costo y que está gravado con IVA general]\label{primeritem} + \Item{1}{ítem con IVA general, viene con descuento}{1000}{12} \end{factura} \Descripcion{ @@ -95,9 +99,9 @@ todosiva, 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, 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. + % Estas son todas las macros para las totalizaciones: \BIG, \BIR, \BIA, \BIE, \AlicuotaG, \AlicuotaR, \AlicuotaA, \SubtG, \SubtR, \SubtA, \SubtE, \DescG, \DescR, \DescA, \DescE. } %% 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-factura07.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura07.tex index 61c61dcf3e0..4abfd2a49b9 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura07.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura07.tex @@ -6,7 +6,7 @@ %% %% factura.dtx (with options: `factsiete') %% -%% Copyright 2018 Emilio Lazo Zaia <emiliolazozaia@gmail.com> +%% Copyright 2019 Emilio Augusto Lazo Zaia <emiliolazozaia@gmail.com> %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -20,7 +20,7 @@ %% %% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is Emilio Lazo Zaia. +%% The Current Maintainer of this work is Emilio Augusto Lazo Zaia. %% %% This work consists of the files README and factura.dtx %% with its derived files factura.ins, factura.cls, factura.def, @@ -38,8 +38,6 @@ %% Descripción de este ejemplo: %%<desc> %% Escribimos una factura -%% (descuentos) Con la columna para descuentos individuales -%% (subtotal) Con la columna extra para subtotal %% (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 @@ -54,15 +52,13 @@ %% (\LineaDescripcion) Alterando la línea de la descripción, la curvatura en la esquina y la sombra %% (\LineaFirmas) Alterando la longitud de las líneas para firmar y su grosor %% (\PosFecha, \PosFirmas y \PosDenom) Alterando la posición de la fecha, las firmas y de la denominación del documento -%% (\Condiciones) Con condiciones del documento +%% (\NotaFinal) Con nota final %% Sin resumen %% Escribimos un ítem cuya descripción ocupa más que una línea %% (\Descripcion) Con descripción larga %%</desc> %% \documentclass[ -descuentos, -subtotal, filas, centrado, denom, @@ -82,7 +78,7 @@ todosiva, \Telefono{+58 (987) 654.32.10} \Email{jacinto@ayala.sv} -\Fecha{02-07-2019} +\Fecha{06-11-2019} \makeatletter \renewcommand{\@@Cantidad}{Cant.} @@ -94,18 +90,18 @@ todosiva, \LineaEncabezado{1pt}{20pt}{3pt} \LineaDescripcion{1pt}{20pt}{3pt} \LineaFirmas{6.5cm}{2pt} -% Puede usarse \PosFecha* o \PosDenom*, \PosControl* o \PosCondiciones* para que el texto se despliegue en la posición 'Y' dada pero hacia arriba y no hacia abajo. \PosFirmas no acepta eso. +% Puede usarse \PosFecha* o \PosDenom*, \PosControl* o \PosNotaFinal* para que el texto se despliegue en la posición 'Y' dada pero hacia arriba y no hacia abajo. \PosFirmas no acepta eso. \PosFecha{-0cm}{-1.5cm} \PosFirmas{1cm}{1cm}{-3cm} \PosDenom{-0cm}{4.3cm} -\Condiciones{Las condiciones del documento...} +\NotaFinal{La nota final...} \begin{document} \begin{factura} - \Item{1}{ítem con IVA general, con descuento}{1000}{8} - \Item{10}{otro ítem con IVA general (descripción larga para mostrar el cambio de línea)}[otro ítem con IVA general (esta descripción es sólo para el .csv)]{1000}{20} + \Item{1}{ítem con IVA general}{1000} + \Item{10}{otro ítem con IVA general (descripción larga para mostrar el cambio de línea)}[otro ítem con IVA general (esta descripción es sólo para el .csv)]{1000} \end{factura} \Descripcion{La descripción larga} 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 89bc58b061a..f1710a29c5f 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura08.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura08.tex @@ -6,7 +6,7 @@ %% %% factura.dtx (with options: `factocho') %% -%% Copyright 2018 Emilio Lazo Zaia <emiliolazozaia@gmail.com> +%% Copyright 2019 Emilio Augusto Lazo Zaia <emiliolazozaia@gmail.com> %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -20,7 +20,7 @@ %% %% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is Emilio Lazo Zaia. +%% The Current Maintainer of this work is Emilio Augusto Lazo Zaia. %% %% This work consists of the files README and factura.dtx %% with its derived files factura.ins, factura.cls, factura.def, @@ -43,13 +43,15 @@ %% (siniva) Sin IVA %% (csv) Escribe un archivo CSV con la información numérica de la factura %% Redefiniendo el formato de la fecha (redefiniendo macros \@@Fecha y \@EstiloFecha) -%% (\Descuento*) Con descuentos totales en moneda (y no en porcentajes) aplicables por igual a todos los tipos de elementos existentes +%% (\Descuento*) Con descuentos totales en dinero neto (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 +%% (\NotaFinal) Con nota final %% (\Resumen) Con resumen %% (\NotaInterna) Con nota interna +%% Escribimos un ítem cuya descripción ocupa más que una línea %% (\Descripcion) Con descripción larga -%% (\FirmaReporte) Agregando la firma escaneada en el reporte; ajustando el corrimiento en “y” de la firma respecto a la línea +%% (\FirmaReporte) Agregando la firma escaneada en el reporte +%% Con \FirmaReporte, ajustando el corrimiento en “y” de la firma respecto a la línea %%</desc> %% \documentclass[ @@ -68,7 +70,7 @@ csv, \Telefono{+58 (987) 654.32.10} \Email{jacinto@ayala.sv} -\Fecha{02-07-2019} +\Fecha{06-11-2019} \makeatletter \renewcommand{\@@Fecha}{\slshape FECHA:} @@ -76,6 +78,7 @@ csv, \makeatother \Descuento*{300} + \LetraItems{\fontsize{20}{30}} \LetraNumeros{\fontsize{20}{30}} \LetraTipoIVA{\fontsize{20}{30}\bfseries} @@ -86,7 +89,7 @@ csv, \LetraNumTotal{\fontsize{20}{30}\bfseries} \tabcolsep7pt -\Condiciones{Las condiciones del documento...} +\NotaFinal{La nota final...} \Resumen{El resumen opcional} \NotaInterna{LA NOTA INTERNA} @@ -94,7 +97,7 @@ csv, \begin{factura} \Item{1}{ítem con IVA general}{1000} - \Item{10}{otro ítem con IVA general (descripción larga para mostrar el cambio de línea)}[otro ítem con IVA general (esta descripción es sólo para el .csv)]{1000}{20} + \Item{10}{otro ítem con IVA general (descripción larga para mostrar el cambio de línea)}[otro ítem con IVA general (esta descripción es sólo para el .csv)]{1000} \end{factura} \Descripcion{La descripción larga} 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 12c9dc7484d..6bae5776d57 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura09.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura09.tex @@ -6,7 +6,7 @@ %% %% factura.dtx (with options: `factnueve') %% -%% Copyright 2018 Emilio Lazo Zaia <emiliolazozaia@gmail.com> +%% Copyright 2019 Emilio Augusto Lazo Zaia <emiliolazozaia@gmail.com> %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -20,7 +20,7 @@ %% %% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is Emilio Lazo Zaia. +%% The Current Maintainer of this work is Emilio Augusto Lazo Zaia. %% %% This work consists of the files README and factura.dtx %% with its derived files factura.ins, factura.cls, factura.def, @@ -41,15 +41,15 @@ %% 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 -%% 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 +%% (\SepNotaFinal) Especificando la distancia desde el contorno hasta el texto de la nota final, predeterminadamente sin contorno +%% (\LineaNotaFinal) Agregando el contorno para la nota final que predeterminadamente está deshabilitado +%% (\PosNotaFinal) Alterando la posición de la nota final +%% (\NotaFinal) Con nota final +%% Haciendo mención a las fechas y al crédito en la nota final %% (\NotaPrevia) Con nota previa +%% (\NotaInterna) Con nota interna %% (\NotaExterna) Con nota externa %% (\Descripcion) Con descripción larga %%</desc> @@ -57,7 +57,7 @@ \documentclass[ sinlineahni, G, -electro, +% electro, ]{factura} \input{factura-ejemplo-aux.tex}% Se incluye para efectos del ejemplo, así tendremos disponible la macro \Ejemplo. @@ -70,15 +70,17 @@ electro, \Telefono{+58 (987) 654.32.10} \Email{jacinto@ayala.sv} -\Fecha{02-07-2019} -\Credito{21} +\Fecha{06-11-2019} +\Credito{11} \SepNotaPrevia{16pt} -\SepCondiciones{16pt} -\LineaCondiciones{0.4pt}{4pt}{3pt} +\SepNotaFinal{16pt} +\LineaNotaFinal{0.4pt}{4pt}{3pt} +\PosNotaFinal{.9cm}{.9cm}{-5.3cm} -\Condiciones{La factura se emitió el \Fecha{} con crédito de \Credito{} dias, siendo su fecha de vencimiento el \FechaVencimiento.} +\NotaFinal{La factura se emitió el \Fecha{} con crédito de \Credito{} dias, siendo su vencimiento el \FechaVencimiento.} \NotaPrevia{\hfill LA NOTA PREVIA} +\NotaInterna{LA NOTA INTERNA} \NotaExterna{LA NOTA EXTERNA} \begin{document} 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 e5dc6170655..86bf2da9597 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura10.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-factura10.tex @@ -6,7 +6,7 @@ %% %% factura.dtx (with options: `factdiez') %% -%% Copyright 2018 Emilio Lazo Zaia <emiliolazozaia@gmail.com> +%% Copyright 2019 Emilio Augusto Lazo Zaia <emiliolazozaia@gmail.com> %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -20,7 +20,7 @@ %% %% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is Emilio Lazo Zaia. +%% The Current Maintainer of this work is Emilio Augusto Lazo Zaia. %% %% This work consists of the files README and factura.dtx %% with its derived files factura.ins, factura.cls, factura.def, @@ -39,27 +39,27 @@ %%<desc> %% Escribimos una factura %% Escribimos en el reverso de la factura -%% Establecemos las opciones de la clase a través de comandos +%% Establecemos algunas opciones de la clase a través de comandos %% (sinlineasv) Sin líneas verticales %% (sinlineash) Sin líneas horizontales +%% (sinmonedatotales) No agrega el símbolo monetario en los totales %% (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 +%% (\NotaFinal) Con nota final %% (\NotaPrevia) Con nota previa %% (\Descripcion) Con descripción larga %%</desc> %% \documentclass[ filas, % luego queda sin efecto con \filasfalse en el preámbulo -sinlineasv, -sinlineash, +sinmonedatotales, +vencimiento, csv, % luego queda sin efecto con \csvfalse en el preámbulo ]{factura} -\vencimientotrue \filasfalse \csvfalse +% Cambiamos por aquí como condicionales las opciones de la clase; es lo mismo que arriba en \documentclass. +\sinlineasvtrue \sinlineashtrue \filasfalse \csvfalse \input{factura-ejemplo-aux.tex}% Se incluye para efectos del ejemplo, así tendremos disponible la macro \Ejemplo. \usepackage[utf8]{inputenc} @@ -71,18 +71,18 @@ csv, % luego queda sin efecto con \csvfalse en el preámbulo \Telefono{+58 (987) 654.32.10} \Email{jacinto@ayala.sv} -% \Fecha{02-07-2019} +\Fecha{06-11-2019} \GeometriaReverso{vmargin={4cm,4cm},hmargin={4cm,4cm},footskip=0pt,headsep=0pt,headheight=0pt} \LineaNotaPrevia{0pt} -\Condiciones{Las condiciones del documento...} +\NotaFinal{La nota final...} \NotaPrevia{\hfill LA NOTA PREVIA} \begin{document} \begin{factura} - \Item{1}{ítem con IVA general}{2000000} + \Item{1}{ítem con IVA general}{1000} \end{factura} \Descripcion{La descripción larga} diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-firma.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-firma.tex index abe95bb79c4..8f6431e019c 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-firma.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-firma.tex @@ -6,7 +6,7 @@ %% %% factura.dtx (with options: `firma') %% -%% Copyright 2018 Emilio Lazo Zaia <emiliolazozaia@gmail.com> +%% Copyright 2019 Emilio Augusto Lazo Zaia <emiliolazozaia@gmail.com> %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -20,7 +20,7 @@ %% %% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is Emilio Lazo Zaia. +%% The Current Maintainer of this work is Emilio Augusto Lazo Zaia. %% %% This work consists of the files README and factura.dtx %% with its derived files factura.ins, factura.cls, factura.def, diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-fondo.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-fondo.tex index e1f79732fa6..10ff8dda5fd 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-fondo.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-fondo.tex @@ -6,7 +6,7 @@ %% %% factura.dtx (with options: `fondo') %% -%% Copyright 2018 Emilio Lazo Zaia <emiliolazozaia@gmail.com> +%% Copyright 2019 Emilio Augusto Lazo Zaia <emiliolazozaia@gmail.com> %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -20,7 +20,7 @@ %% %% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is Emilio Lazo Zaia. +%% The Current Maintainer of this work is Emilio Augusto Lazo Zaia. %% %% This work consists of the files README and factura.dtx %% with its derived files factura.ins, factura.cls, factura.def, diff --git a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-membrete.tex b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-membrete.tex index b3b394e4239..55186a30c0f 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-membrete.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-membrete.tex @@ -6,7 +6,7 @@ %% %% factura.dtx (with options: `membrete') %% -%% Copyright 2018 Emilio Lazo Zaia <emiliolazozaia@gmail.com> +%% Copyright 2019 Emilio Augusto Lazo Zaia <emiliolazozaia@gmail.com> %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -20,7 +20,7 @@ %% %% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is Emilio Lazo Zaia. +%% The Current Maintainer of this work is Emilio Augusto Lazo Zaia. %% %% This work consists of the files README and factura.dtx %% with its derived files factura.ins, factura.cls, factura.def, 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 b2c87a41a15..557ded831ca 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 30fa9cf0e68..30ec0bf3eb1 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-prefactura.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-prefactura.tex @@ -6,7 +6,7 @@ %% %% factura.dtx (with options: `prefac') %% -%% Copyright 2018 Emilio Lazo Zaia <emiliolazozaia@gmail.com> +%% Copyright 2019 Emilio Augusto Lazo Zaia <emiliolazozaia@gmail.com> %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -20,7 +20,7 @@ %% %% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is Emilio Lazo Zaia. +%% The Current Maintainer of this work is Emilio Augusto Lazo Zaia. %% %% This work consists of the files README and factura.dtx %% with its derived files factura.ins, factura.cls, factura.def, @@ -42,7 +42,7 @@ %% (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 +%% (\NotaFinal) Con nota final %% Sin resumen %% (\Descripcion) Con descripción larga %%</desc> @@ -68,11 +68,12 @@ linea, \Telefono{+58 (987) 654.32.10} \Email{jacinto@ayala.sv} -\Fecha{02-07-2019} +\Fecha{06-11-2019} \Descuento{18} + \FondoFactura{factura-ejemplo-fondo} -\Condiciones{Las condiciones del documento...} +\NotaFinal{La nota final...} \begin{document} 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 b09e8d9f474..ed5f5d3043d 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte1.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte1.tex @@ -6,7 +6,7 @@ %% %% factura.dtx (with options: `repuno') %% -%% Copyright 2018 Emilio Lazo Zaia <emiliolazozaia@gmail.com> +%% Copyright 2019 Emilio Augusto Lazo Zaia <emiliolazozaia@gmail.com> %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -20,7 +20,7 @@ %% %% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is Emilio Lazo Zaia. +%% The Current Maintainer of this work is Emilio Augusto Lazo Zaia. %% %% This work consists of the files README and factura.dtx %% with its derived files factura.ins, factura.cls, factura.def, @@ -46,8 +46,8 @@ %% Sin especificar el proveedor, así toma el emisor de la factura como el nombre del proveedor %% (\FondoReporte) Especificamos el fondo o membrete del reporte, sólo para la primera página %% (\InicioReporte) Estableciendo un margen superior distinto para la primera página del reporte por presencia de membrete -%% (\TituloReporte) Establecemos el título del reporte sin que salga en las cabeceras -%% (\Condiciones) Con condiciones del documento +%% (\TituloReporte) Establecemos el título del reporte sin que salga en las cabeceras ni pies de página +%% (\NotaFinal) Con nota final %% Sin resumen %% (\Descripcion) Con descripción larga %% (\FirmaReporte) Agregando en el reporte la línea para firmar a mano @@ -70,7 +70,7 @@ conreporte, \Email{jacinto@ayala.sv} \Emisor{Lázaro de la Vega} -\Fecha{02-07-2019} +\Fecha{06-11-2019} \FondoReporte{factura-ejemplo-membrete} \InicioReporte{2.2cm} @@ -85,7 +85,7 @@ conreporte, % \EstiloPagReporte[empty]{soloarriba} % \EstiloPagReporte{soloarriba} -\Condiciones{Las condiciones del documento...} +\NotaFinal{La nota final...} \begin{document} 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 cf6933f607c..ee5d6a722de 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte2.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte2.tex @@ -6,7 +6,7 @@ %% %% factura.dtx (with options: `repdos') %% -%% Copyright 2018 Emilio Lazo Zaia <emiliolazozaia@gmail.com> +%% Copyright 2019 Emilio Augusto Lazo Zaia <emiliolazozaia@gmail.com> %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -20,7 +20,7 @@ %% %% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is Emilio Lazo Zaia. +%% The Current Maintainer of this work is Emilio Augusto Lazo Zaia. %% %% This work consists of the files README and factura.dtx %% with its derived files factura.ins, factura.cls, factura.def, @@ -43,13 +43,14 @@ %% (\Proveedor) Especificando el nombre del proveedor para el encabezado del reporte %% (\GeometriaReporte) Cambiando la geometría del papel del reporte %% (\FondoReporte*) Especificamos el fondo o membrete del reporte para todas las páginas -%% (\TituloReporte*) Establecemos el título del reporte para que salga en las cabeceras -%% (\Condiciones) Con condiciones del documento +%% (\TituloReporte*) Establecemos el título del reporte para que salga en las cabeceras o pies de página +%% (\NotaFinal) Con nota final %% Sin resumen %% (\Descripcion) Con descripción larga %% Con etiquetas y referencias -%% (\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 +%% (\FirmaReporte) Agregando la firma escaneada en el reporte +%% Con \FirmaReporte, ajustando el corrimiento en “y” de la firma respecto a la línea +%% Con \FirmaReporte, 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[ @@ -68,7 +69,7 @@ soloreporte, \Email{jacinto@ayala.sv} \Proveedor{Lázaro de la Vega y San Román} -\Fecha{02-07-2019} +\Fecha{06-11-2019} \GeometriaReporte{vmargin={4.4cm,2.5cm},hmargin={3cm,2cm},footskip=1.2cm,headsep=0.777cm,headheight=1.5cm} \FondoReporte*{factura-ejemplo-membrete} @@ -77,12 +78,12 @@ soloreporte, % \EstiloPagReporte{solonumpag} % \EstiloPagReporte{soloabajo} -\Condiciones{Las condiciones del documento...} +\NotaFinal{La nota final...} \begin{document} \begin{factura} - \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{2}{ítem con IVA general, viene con descuento}{1000}{8}[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} @@ -95,9 +96,9 @@ soloreporte, 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, 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. + % Estas son todas las macros para las totalizaciones: \BIG, \BIR, \BIA, \BIE, \AlicuotaG, \AlicuotaR, \AlicuotaA, \SubtG, \SubtR, \SubtA, \SubtE, \DescG, \DescR, \DescA, \DescE. \FirmaReporte[\includegraphics[width=4.5cm]{factura-ejemplo-firma}][0pt][17pt][3cm][3cm] \end{reporte} 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 96cf97de624..df42664bab0 100644 --- a/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte3.tex +++ b/Master/texmf-dist/doc/latex/factura/factura-ejemplo-reporte3.tex @@ -6,7 +6,7 @@ %% %% factura.dtx (with options: `reptres') %% -%% Copyright 2018 Emilio Lazo Zaia <emiliolazozaia@gmail.com> +%% Copyright 2019 Emilio Augusto Lazo Zaia <emiliolazozaia@gmail.com> %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -20,7 +20,7 @@ %% %% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is Emilio Lazo Zaia. +%% The Current Maintainer of this work is Emilio Augusto Lazo Zaia. %% %% This work consists of the files README and factura.dtx %% with its derived files factura.ins, factura.cls, factura.def, @@ -44,13 +44,14 @@ %% Sin especificar la persona de contacto %% (\Proveedor) Especificando el nombre del proveedor para el encabezado del reporte %% Sin especificar fondo de reporte -%% (\TituloReporte) Establecemos el título del reporte sin que salga en las cabeceras +%% (\TituloReporte) Establecemos el título del reporte sin que salga en las cabeceras ni pies de página %% (\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; 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 +%% (\FirmaReporte) Agregando la firma escaneada en el reporte +%% Con \FirmaReporte, ajustando el corrimiento en “y” de la firma respecto a la línea +%% Con \FirmaReporte, cambiando la ubicación en “x” de la línea de la firma y cambiando la longitud de la línea hacia los lados +%% Con \FirmaReporte, cambiando el nombre de la persona que va a firmar %%</desc> %% \documentclass[ @@ -64,7 +65,7 @@ twoside, \RazonSocial{Ayala San Vicente Usureros} \Proveedor{Lázaro de la Vega y San Román} -\Fecha{02-07-2019} +\Fecha{06-11-2019} \TituloReporte{El título del reporte} \InfoPagina{La cabecera o pie del reporte - \Proveedor} diff --git a/Master/texmf-dist/doc/latex/factura/factura.pdf b/Master/texmf-dist/doc/latex/factura/factura.pdf Binary files differindex a7cd1ea87fe..edffeb70319 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 7a086bd32ac..64b75962b58 100644 --- a/Master/texmf-dist/source/latex/factura/factura.dtx +++ b/Master/texmf-dist/source/latex/factura/factura.dtx @@ -1,7 +1,7 @@ %\iffalse meta-comment % % factura.dtx -% Copyright 2018 Emilio Lazo Zaia <emiliolazozaia@gmail.com> +% Copyright 2019 Emilio Augusto Lazo Zaia <emiliolazozaia@gmail.com> % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either @@ -15,7 +15,7 @@ % % This work has the LPPL maintenance status `maintained'. % -% The Current Maintainer of this work is Emilio Lazo Zaia. +% The Current Maintainer of this work is Emilio Augusto Lazo Zaia. % % This work consists of the files README and factura.dtx % with its derived files factura.ins, factura.cls, factura.def, @@ -40,7 +40,7 @@ \input docstrip.tex \preamble -Copyright 2018 Emilio Lazo Zaia <emiliolazozaia@gmail.com> +Copyright 2019 Emilio Augusto Lazo Zaia <emiliolazozaia@gmail.com> This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either @@ -54,7 +54,7 @@ LaTeX version 2008/05/04 or later. This work has the LPPL maintenance status `maintained'. -The Current Maintainer of this work is Emilio Lazo Zaia. +The Current Maintainer of this work is Emilio Augusto Lazo Zaia. This work consists of the files README and factura.dtx with its derived files factura.ins, factura.cls, factura.def, @@ -173,7 +173,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<class>\ProvidesClass{factura} %<def>\ProvidesFile{factura.def} %<*class|def> -[2018/08/02 v3.57 +[2019/08/16 v3.70 %<class>Clase para elaborar facturas legales %<class>en la Repu'blica Bolivariana de Venezuela. %<def>Archivo de valores iniciales y condiciones de borde para factura.cls @@ -183,7 +183,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<*driver> \documentclass{ltxdoc} \usepackage[a4paper,headheight=0.6cm,headsep=0.77cm,footskip=1.2cm,footnotesep=0.54cm,marginparsep=10pt,vmargin={3cm,2cm},hmargin={4cm,2cm}]{geometry} -\usepackage[usenames,dvipsnames]{xcolor} +\usepackage[dvipsnames]{xcolor} \usepackage[spanish]{babel} \usepackage{ array, @@ -229,6 +229,8 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \overfullrule15pt +\newcommand{\VERBATIM}{\verbatimcolor\setstretch{1.0}} + \xspaceaddexceptions{*} \hypersetup{ @@ -261,8 +263,12 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \newbool{EjemploDer} \newbool{DescripEjemplo} -\def\optcolor{\color{blue}} -\def\macrocolor{\color{purple}} +\def\ejemplooptcolor{\color{blue}} +\def\ejemplomacrocolor{\color{purple}} +\def\verbatimcolor{\color{OrangeRed}} +\def\macromandcolor{\color{Red}} +\def\macrooptcolor{\color{RoyalBlue}} + \def\tikz{T\emph{i}kZ\xspace} \catcode`\%=11 @@ -300,8 +306,8 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. | Gracias a Werner y a egreg por el uso de \begingroup\ttfamily\string ... \endgroup. | Thanks to Werner and egreg for the use of \begingroup\ttfamily\string ... \endgroup. | (http://tex.stackexchange.com/questions/342572/error-using-verb-as-the-replace-string-on-xpatchcmd) - \regexpatchcmd*{\DescEjemplo}{\cC.\cO[*]*}{\c{begingroup}\c{macrocolor}\c{ttfamily}\c{string}\0\c{endgroup}\c{xspace}}{}{}| - \regexpatchcmd*{\DescEjemplo}{(\()(\cL[a-zG]*)(\))}{(\c{begingroup}\c{optcolor}\c{ttfamily}\2\c{endgroup})}{}{}| + \regexpatchcmd*{\DescEjemplo}{\cC.\cO[*]*}{\c{begingroup}\c{ejemplomacrocolor}\c{ttfamily}\c{string}\0\c{endgroup}\c{xspace}}{}{}| + \regexpatchcmd*{\DescEjemplo}{(\()(\cL[a-zG]*)(\))}{(\c{begingroup}\c{ejemplooptcolor}\c{ttfamily}\2\c{endgroup})}{}{}| \xpatchcmd*{\DescEjemplo}{%% }{\item}{}{}| \xpatchcmd*{\DescEjemplo}{%%}{}{}{}| \makeatother @@ -381,7 +387,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \makeatother \title{The \textsf{\jobname} class\thanks{Esta documentación corresponde a la clase \textsf{\jobname}~\fileversion, de fecha \filedate.}} -\author{Emilio Lazo Zaia\\ \texttt{<emiliolazozaia at gmail.com>}} +\author{Emilio Augusto Lazo Zaia\\ \texttt{<emiliolazozaia at gmail.com>}} \GetFileInfo{\jobname.dtx} @@ -415,37 +421,40 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % v3.47 -> 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. - La versión 3.47 agrega el comando |\Moneda| para cambiar fácilmente la moneda.%v3.46 + % v3.47 -> La versión 3.47 agrega el comando |\Moneda| para cambiar fácilmente la moneda. % v3.56 -> {\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. % v3.56 -> 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. - En la versión 3.56 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}. + % v3.56 -> En la versión 3.56 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}. - {\bfseries Esta versión extraordinaria v3.57 se saca para dar cumplimiento al Decreto Presidencial 3.548 sobre la Reconversión Monetaria, publicado en Gaceta Oficial 41.446. Dicho decreto establece que la nueva moneda Bolívar Soberano no tendrá 3 ceros menos como lo establecía el derogado decreto 3.332 sino 5 ceros menos que el Bolívar Fuerte. La Reconversión Monetaria comienza el 20 de agosto del 2018\footnote{Salvo que se postergue otra vez.} y antes de esa fecha ya los precios tienen que estar especificados en ambas monedas, y esta clase está adaptada a esa exigencia.} + % v3.57 -> {\bfseries Esta versión extraordinaria v3.57 se saca para dar cumplimiento al Decreto Presidencial 3.548 sobre la Reconversión Monetaria, publicado en Gaceta Oficial 41.446. Dicho decreto establece que la nueva moneda Bolívar Soberano no tendrá 3 ceros menos como lo establecía el derogado decreto 3.332 sino 5 ceros menos que el Bolívar Fuerte. La Reconversión Monetaria comienza el 20 de agosto del 2018\footnote{Salvo que se postergue otra vez.} y antes de esa fecha ya los precios tienen que estar especificados en ambas monedas, y esta clase está adaptada a esa exigencia.} - Si el usuario especifica a mano la moneda con el comando |\Moneda| -introducido en una reciente versión-, la clase |factura| no interviene en nada en cuanto a la Reconversión Monetaria, ahora, si no se especifica la moneda, puede ocurrir lo siguiente: + % v3.57 -> Si el usuario especifica a mano la moneda con el comando |\Moneda| -introducido en una reciente versión-, la clase |factura| no interviene en nada en cuanto a la Reconversión Monetaria, ahora, si no se especifica la moneda, puede ocurrir lo siguiente: - Al emitirse una factura con fecha anterior a la reconversión (20 de agosto del 2018), los montos quedarán expresados en Bolívares Fuertes, simbolizado como {\slshape Bs.}, y la clase automáticamente agregará un comentario como {\slshape nota interna} indicando cuál sería el monto en Bolívares Soberanos; esto para dar cumplimiento al Decreto Presidencial que indica que los montos deben estar en expresados en ambas monedas antes de la entrada de la nueva moneda. + % v3.57 -> Al emitirse una factura con fecha anterior a la reconversión (20 de agosto del 2018), los montos quedarán expresados en Bolívares Fuertes, simbolizado como {\slshape Bs.}, y la clase automáticamente agregará un comentario como {\slshape nota interna} indicando cuál sería el monto en Bolívares Soberanos; esto para dar cumplimiento al Decreto Presidencial que indica que los montos deben estar en expresados en ambas monedas antes de la entrada de la nueva moneda. - Si se emite una factura con fecha posterior a la reconversión, los montos se asumirán como expresados en Bolívares Soberanos, es decir, el usuario debe darlos ya con los 5 ceros quitados, la clase va a simbolizar la moneda como {\slshape Bs.S} y agregará un comentario similar al que acabamos de mencionar pero para explícitar el monto en Bolívares Fuertes, es decir, con 5 ceros más; esto no forma parte del Decreto pero lo quisimos agregar. + % v3.57 -> Si se emite una factura con fecha posterior a la reconversión, los montos se asumirán como expresados en Bolívares Soberanos, es decir, el usuario debe darlos ya con los 5 ceros quitados, la clase va a simbolizar la moneda como {\slshape Bs.S} y agregará un comentario similar al que acabamos de mencionar pero para explícitar el monto en Bolívares Fuertes, es decir, con 5 ceros más; esto no forma parte del Decreto pero lo quisimos agregar. - Luego, la moneda volverá a llamarse Bolívar simplemente y se simbolizará otra vez como {\slshape Bs.}; ese momento aún no lo sabemos pero para los efectos de esta clase vamos a asumirlo como que ocurrirá el 1 de enero del año 2019. + % v3.57 -> Luego, la moneda volverá a llamarse Bolívar simplemente y se simbolizará otra vez como {\slshape Bs.}; ese momento aún no lo sabemos pero para los efectos de esta clase vamos a asumirlo como que ocurrirá el 1 de enero del año 2019. - Esta será la última versión que sacamos solamente para corregir fechas de la Reconversión Monetaria; si el Gobierno Nacional cambia las fechas nuevamente, el usuario tendrá que hacer uso de la interfaz del paquete |datetime2| para ajustar el funcionamiento de esta clase a los nuevos plazos; para esto aclaramos que el identificador para la entrada de la Reconversión Monetaria se llama {\slshape FechaBsS}\footnote{recordemos que antes de esta fecha, los montos se expresan en Bolívares Fuertes y la nota automática aclara cuánto es en Bolívares Soberanos, y después de esta fecha es al contrario.} y el identificador para el momento (que aún no se ha dicho) desde el cual la moneda vuelve a llamarse Bolívar es {\slshape FechaBs}. Para ajustarlos se usa el comando \cs{DTMsavedate} y las fechas se dan en formato {\slshape yyyy-mm-dd}. Damos como ejemplo lo que actualmente está programado en esta clase: + % v3.57 -> Esta será la última versión que sacamos solamente para corregir fechas de la Reconversión Monetaria; si el Gobierno Nacional cambia las fechas nuevamente, el usuario tendrá que hacer uso de la interfaz del paquete |datetime2| para ajustar el funcionamiento de esta clase a los nuevos plazos; para esto aclaramos que el identificador para la entrada de la Reconversión Monetaria se llama {\slshape FechaBsS}\footnote{recordemos que antes de esta fecha, los montos se expresan en Bolívares Fuertes y la nota automática aclara cuánto es en Bolívares Soberanos, y después de esta fecha es al contrario.} y el identificador para el momento (que aún no se ha dicho) desde el cual la moneda vuelve a llamarse Bolívar es {\slshape FechaBs}. Para ajustarlos se usa el comando \cs{DTMsavedate} y las fechas se dan en formato {\slshape yyyy-mm-dd}. Damos como ejemplo lo que actualmente está programado en esta clase: -% \iffalse -%<*literal> -% \fi -\begin{verbatim} - \DTMsavedate{FechaBsS}{2018-08-20} - \DTMsavedate{FechaBs}{2019-01-01} -\end{verbatim} -% \iffalse -%</literal> -% \fi + Desde el 15/02/2019 la moneda nacional se vuelve a llamar “Bolívar” abreviado “Bs” sin “soberano”; esto según Gaceta Oficial 41.587. Quitamos toda referencia a la Reconversión Monetaria. + + También en esta versión establecemos la tasa de IVA general como 16\% tal como ya está vigente desde agosto del año 2018. + + Ya no está activa la opción |electro| para descuentos en pagos por medios electrónicos porque ya no está vigente el decreto. + + Ahora en los totales aparece el signo monetario siempre a menos de que se pida en la clase la opción |sinmonedatotales|. + En esta misma versión se agregó un “gancho” llamado \cs{BeforeEndPreamble} para usos muy específicos. + + Las “condiciones del documento” ya no son “condiciones” sino que ahora lo llamamos “nota final” porque es otra nota más aparte de las demás, y va al final del documento; no tiene sentido hablar de condiciones del documento para referirse a ese espacio. Con eso se renombran los 5 comandos, pero dejando por compatibilidad unos alias a los viejos; los nuevos son: \cs{NotaFinal}, \cs{PosNotaFinal}, \cs{SepNotaFinal}, \cs{LineaNotaFinal}, \cs{LetraNotaFinal}. + + La macro \cs{PosNotaFinal} se comporta ahora como \cs{PosFirmas}, es decir, acepta un valor inicial en “x” y uno final. + \section*{Agradecimientos} Por pruebas y sugerencias que dieron lugar a mejoras agradezco a Ritguey% @@ -545,7 +554,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \changes{v2.72}{2016/05/16}{Ahora se procesa el entorno de la factura aún cuando se pide sólo el reporte, para poder tomar las referencias y los totales. Para eso se cambiaron de sitio varias macros internas.} % \changes{v2.72}{2016/05/16}{Agregadas las etiquetas y las referencias.} % \changes{v2.82}{2016/06/25}{Agregada la opción \texttt{numitem} para enumerar cada ítem en la factura.} -% \changes{v2.82}{2016/06/25}{Corregido problema de etiquetas repetidas introducido en la versió 2.72.} +% \changes{v2.82}{2016/06/25}{Corregido problema de etiquetas repetidas introducido en la versión 2.72.} % \changes{v2.82}{2016/06/25}{Corregida la alineación vertical entre las distintas columnas agregando \texttt{[t]} al abrir los “{\slshape parboxes}” en los comandos auxiliares que ponen cada celda en un {\slshape parbox} del tamaño de la celda más grande, porque si no se centra verticalmente la celda y se desalinea respecto a la columna de al lado.} % \changes{v2.82}{2016/06/25}{Ahora dentro de la definición de \cs{@CaracterCeldasVacias} está el código que centra el texto, para poder usar comandos que llenen la caja completa como \cs{dotfill}.} % \changes{v2.82}{2016/06/25}{Reimplementada la línea diagonal para que funcione en todos los casos.} @@ -618,6 +627,16 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \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}.} % \changes{v3.57}{2018/08/02}{El Gobierno Nacional posterga la Reconversión Monetaria. Cambiamos un poco la forma como estaba programado esto. El usuario podrá cambiar las fechas que intervienen en eso, por si ocurre otro cambio.} +% \changes{v3.70}{2019/08/17}{Nueva tasa de IVA general del 16\% vigente desde agosto del 2018.} +% \changes{v3.70}{2019/08/17}{Establecido el 15/02/2019 como la fecha en la que ocurre que la nueva moneda pierde el adjetivo “soberano” para llamarse “bolívar” simplemente.} +% \changes{v3.70}{2019/08/17}{Nueva macro interna \cs{@EstableceOpciones} para poder evaluarla doblemente, una antes del -nuevo también- gancho \cs{BeforeEndPreamble} y otra después de él, porque en ese gancho se puede escribir código que altere las opciones y deberán ser evaluadas nuevamente para la consistencia entre ellas.} +% \changes{v3.70}{2019/08/17}{Inhabilitada la opción \texttt{electro} pero se deja el código todavía, aunque comentado.} +% \changes{v3.70}{2019/08/17}{Se comentó todo el código referente a la Reconversión Monetaria.} +% \changes{v3.70}{2019/08/17}{Implementada la función de que agregue el signo monetario en los totales, y una opción \texttt{sinmonedatotales} para evitarlo.} +% \changes{v3.70}{2019/08/17}{Ya no hablamos de condiciones sino de “nota final”, que es aquello que va después de la descripción larga y que tiene posición fija. Ese espacio se puede usar para distintas cosas, por lo que hablar de ese espacio como el de las condiciones del documento no tiene mucho sentido. De manera que los comandos renombrados pasaron a ser \cs{NotaFinal}, \cs{PosNotaFinal}, \cs{SepNotaFinal}, \cs{LineaNotaFinal}, \cs{LetraNotaFinal}. Se mantienen los comandos anteriores por compatibilidad.} +% \changes{v3.70}{2019/08/17}{Corregido el posicionamiento en “x” de la nota final.} +% \changes{v3.70}{2019/08/17}{Ahora la macro \cs{PosNotaFinal} acepta un intervalo en “x” para posicionar la nota final, es decir que funciona como \cs{PosFirmas}.} +% \changes{v3.70}{2019/08/17}{Mejorada la macro interna que escribe la fecha en la metadata; ya no usa \texttt{xstring} sino \LaTeX3. Quitado código espúreo de \texttt{xstring} en las macros que permiten fijar las posiciones de los elementos fijos.} % % % \tableofcontents @@ -633,7 +652,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 agosto 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 agosto del año 2019. % % 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{}. % @@ -747,7 +766,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % % El margen inferior de |geometry| empieza donde termina la descripción del servicio -o el fin del cuadro de la factura, en caso de que no se agregue un texto de descripción larga-, hasta el final del papel. % -% Para aclarar lo anterior es necesario decir que hay textos con posiciones fijas que están fuera de estos márgenes, como la fecha de emisión, la “denominación” del documento (que es “FACTURA”, “COTIZACIÓN” u otro especificable), el número de la factura, el número de control (cuando aplica), las condiciones del documento y los espacios para las firmas; todas estas partes del documento están fijas en posiciones arbitrarias fuera de los márgenes dejados por |geometry|. Estos textos son fijos para darles posiciones que no dependan del contenido particular de cada factura sino del diseño del talonario que ya tenemos impreso, que siempre será igual, y para el cual estamos adaptando esta clase |factura|. +% Para aclarar lo anterior es necesario decir que hay textos con posiciones fijas que están fuera de estos márgenes, como la fecha de emisión, la “denominación” del documento (que es “FACTURA”, “COTIZACIÓN” u otro especificable), el número de la factura, el número de control (cuando aplica), las nota final y los espacios para las firmas; todas estas partes del documento están fijas en posiciones arbitrarias fuera de los márgenes dejados por |geometry|. Estos textos son fijos para darles posiciones que no dependan del contenido particular de cada factura sino del diseño del talonario que ya tenemos impreso, que siempre será igual, y para el cual estamos adaptando esta clase |factura|. % % Las ubicaciones de los textos fijos también tienen valores predefinidos dentro de |factura.def|. Cualquiera de esos valores puede cambiarse mediante comandos, tal como se fijan los valores predeterminados en dicho archivo |.def|; esto significa que se puede personalizar a cualquier diseño del talonario entregado por la imprenta, basta con entender qué hace cada comando (explicado en este documento), consultar el |.def| o ver los ejemplos. % @@ -851,7 +870,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 el Decreto Presidencial número 3085. +% {\bfseries Esta opción ya no está vigente en la legislación y se quitó de esta clase.} Se agregó en su momento 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.F 2.000.000 y del 5\% cuando el monto de la factura es de Bs.F 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.} % @@ -890,6 +909,9 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \DescribeOption{sinmarcas} % Con |sinmarcas| evitamos que el carácter de fin de línea aparezca cuando la descripción ocupa más que una línea; ese carácter indica que la línea continúa abajo, y predeterminadamente es la flecha “\flechaCR”. También con esta opción no aparece el carácter “$\cdot$” en las celdas vacías en este mismo caso. % +% \DescribeOption{sinmonedatotales} +% Esta opción |sinmonedatotales| permite quitar el signo monetario de los totales, que antes nunca salía y ahora sale de manera predeterminada. +% % \DescribeOption{unafirma} % No pone el espacio para que firme quien recibe el documento sino sólo el emisor; esto es lo predeterminado en las cotizaciones. % @@ -927,7 +949,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % Podemos centrar el texto de la descripción de cada ítem en la factura con este comando en lugar de justificarlo. % % \DescribeOption{filas} -% Muesta los totales finales en modo de filas; esto los presenta uno al lado del otro en lugar de uno debajo del otro. Esta opción tiene limitaciones, por ejemplo no es compatible con la opción |sintotales|, |sinivaexpresado| ni |electro|, y por razones de espacio tampoco es compatible con los comandos de descuentos en los totales (subsección \ref{subsec:dctototales}). +% Muesta los totales finales en modo de filas; esto los presenta uno al lado del otro en lugar de uno debajo del otro. Esta opción tiene limitaciones, por ejemplo no es compatible con la opción |sintotales|, |sinivaexpresado|, y por razones de espacio tampoco es compatible con los comandos de descuentos en los totales (subsección \ref{subsec:dctototales}). % % \DescribeOption{centrado} % Centra los totales finales ({\itshape sólo para el modo de totalización en filas}), que sin esta opción salen alineados al margen derecho. @@ -947,7 +969,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \DescribeOption{csv} % Escribe un archivo csv con la información numérica de la factura. % -% \subsection{Activación y desactivación de opciones desde comandos} +% \subsection{Activación y desactivación de opciones desde comandos\label{subsec:condicionales}} % % 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í. % @@ -963,22 +985,22 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % % \subsection{Estableciendo los márgenes de la hoja y el fondo} % -% Como explicamos en la sección (\ref{sec:geohoja}), a la hoja de la factura se le deben establecer los márgenes apropiadamente, y esos márgenes no tienen en cuanta ciertos textos que llamamos “fijos”, para los cuales también debemos establecer sus posiciones en la hoja, y eso lo veremos en esta parte. +% Como explicamos en la sección \ref{sec:geohoja}, a la hoja de la factura se le deben establecer los márgenes apropiadamente, y esos márgenes no tienen en cuanta ciertos textos que llamamos “fijos”, para los cuales también debemos establecer sus posiciones en la hoja, y eso lo veremos en esta parte. % % % {\setlength{\parindent}{0pt} % -% \DescribeMacro{\GeometriaFactura}{\color{RoyalBlue}|\GeometriaFactura|\marg{geometría}} +% \DescribeMacro{\GeometriaFactura}{\macrooptcolor|\GeometriaFactura|\marg{geometría}} % % En el argumento de este comando van los parámetros relativos al paquete |geometry| que van a afectar la manera como la factura es generada. Como dijimos al principio, deberá especificarse el tipo de papel (e.g. |letterpaper|, |legalpaper|, |executive|, |a4paper|, ...) y los márgenes verticales y horizontales. % % Para especificar el margen superior debe medirse desde el inicio del papel hasta donde se quiera establecer que empiece el recuadro de los datos del cliente, y el margen inferior debe medirse desde el final del papel hasta donde terminaría la opcional descripción. Como ya dijimos, hay textos que están fuera de estos márgenes por haberlos considerado fijos en la implementación de la clase |factura|. % -% \DescribeMacro{\GeometriaReverso}{\color{RoyalBlue}|\GeometriaReverso|\marg{geometría}} +% \DescribeMacro{\GeometriaReverso}{\macrooptcolor|\GeometriaReverso|\marg{geometría}} % % Define los márgenes del reverso de la hoja de la factura para escribir información extra. % -% \DescribeMacro{\FondoFactura}{\color{RoyalBlue}|\FondoFactura|\marg{nombre del archivo de la imagen}} +% \DescribeMacro{\FondoFactura}{\macrooptcolor|\FondoFactura|\marg{nombre del archivo de la imagen}} % % Nombre del archivo de la imagen a cargar como diseño, especialmente para las {\slshape prefacturas}, aunque también puede usarse como una “marca de agua” para las facturas. % @@ -990,87 +1012,93 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % % \subsubsection{Elementos fijos y sus ubicaciones} % -% Los elementos cuyas posiciones van fijas en la hoja disponen de macros para establecer sus ubicaciones. Todas estas macros empiezan por |\Pos|, y son las siguientes: |\PosFecha|, |\PosDenom|, |\PosControl|, |\PosCondiciones| y |\PosFirmas|. +% Los elementos cuyas posiciones van fijas en la hoja disponen de macros para establecer sus ubicaciones. Todas estas macros empiezan por |\Pos|, y son las siguientes: |\PosFecha|, |\PosDenom|, |\PosControl|, |\PosNotaFinal| y |\PosFirmas|. % -% Todos estos comandos aceptan como argumentos dimensiones de \LaTeX{}, y son las posiciones |(x,y)| en la página de los elementos a imprimir, siendo “|x|” la coordenada a lo ancho del papel y “|y|” la coordenada a lo largo del papel, es decir, horizontal y vertical respectivamente. El origen está fijado arriba a la izquierda. Se pueden especificar también valores negativos para denotar que estamos contando desde el extremo derecho o inferior, para el caso de “|x|” o “|y|”, respectivamente\footnote{Varias de estas variables están definidas de esta forma negativa en el archivo de definiciones.}. +% Todos estos comandos aceptan como argumentos dimensiones de \LaTeX{}, y son las posiciones |(x,y)| en la página de los elementos a imprimir, siendo “|x|” la coordenada a lo ancho del papel y “|y|” la coordenada a lo largo del papel, es decir, horizontal y vertical respectivamente. El origen está fijado arriba a la izquierda. Se pueden especificar también valores negativos para denotar que estamos contando desde el extremo derecho o inferior, para el caso de “|x|” o “|y|”, respectivamente\footnote{Varias de estas variables están definidas de esta forma negativa en el archivo de definiciones.}; salvo el caso de la nota final y las firmas en su coordenada |x|, todos los demás elementos fijos aceptan valores negativos en su posicionamiento, ya que estos dos elementos cuentan con un intervalo |x-inicial,x-final| para posicionar. % % Por ejemplo, si queremos que la fecha aparezca desde el margen izquierdo y |5cm| contados desde arriba hacia abajo, haríamos: |\PosFecha{0cm}{5cm},| y si queremos que salga |1cm| desde la derecha y |4cm| contados desde abajo haríamos |\PosFecha{-1cm}{-4cm}|. A continuación todas las macros para fijar las posiciones en el papel: % % {\setlength{\parindent}{0pt} % -% \DescribeMacro{\PosFecha}{\color{RoyalBlue}|\PosFecha|\marg{pos. x}\marg{pos. y}} +% \DescribeMacro{\PosFecha}{\macrooptcolor|\PosFecha|\marg{pos. x}\marg{pos. y}} % % Con |\PosFecha| controlamos dónde se ubica la caja que imprime la fecha en la hoja. % -% \DescribeMacro{\PosFecha*}{\color{RoyalBlue}|\PosFecha*|\marg{pos. x}\marg{pos. y}} +% \DescribeMacro{\PosFecha*}{\macrooptcolor|\PosFecha*|\marg{pos. x}\marg{pos. y}} % % Con esta variante con “*”, es decir, |\PosFecha*|, logramos que la caja de la fecha abra hacia arriba desde la posición especificada en el eje vertical, de manera que estaríamos especificando una coordenada “|y|” final del texto y no una posición inicial, esto significa que el texto se despliega hacia arriba desde la posición dada y no hacia abajo. Por ejemplo, sin “*”, si especificamos |\PosFecha{-0cm}{5cm}|, las fechas empiezan 5cm desde el tope superior de la hoja, y si especificamos |\PosFecha*{-0cm}{5cm}| ellas terminarán en los 5cm de la hoja. Esto es útil cuando se especifica también |\Credito| que produce una fecha de vencimiento que aparecerá abajo de la fecha de emisión; al ocupar las fechas más de una línea podemos querer que la última fecha (la de vencimiento) quede alineada en cierta posición vertical, la misma posición donde saldría la fecha de emisión en el caso en el que no haya fecha de vencimiento por no especificar la factura a crédito. % -% \DescribeMacro{\PosDenom}{\color{RoyalBlue}|\PosDenom|\marg{pos. x}\marg{pos. y}} +% \DescribeMacro{\PosDenom}{\macrooptcolor|\PosDenom|\marg{pos. x}\marg{pos. y}} % % Con |\PosDenom| controlamos dónde se ubica la caja que imprime la denominación del documento (e.g. “FACTURA”, “COTIZACIÓN”) y su -opcional- número. % -% \DescribeMacro{\PosDenom*}{\color{RoyalBlue}|\PosDenom*|\marg{pos. x}\marg{pos. y}} +% \DescribeMacro{\PosDenom*}{\macrooptcolor|\PosDenom*|\marg{pos. x}\marg{pos. y}} % % Al igual que con |\PosFecha*| podemos especificar la posición final en “|y|” de la caja para la denominación, así el texto se despliega hacia arriba y no hacia abajo. % -% \DescribeMacro{\PosControl}{\color{RoyalBlue}|\PosControl|\marg{pos. x}\marg{pos. y}} +% \DescribeMacro{\PosControl}{\macrooptcolor|\PosControl|\marg{pos. x}\marg{pos. y}} % % Con |\PosControl| controlamos dónde se ubica la caja que imprime el número de control con la serie. % -% \DescribeMacro{\PosControl*}{\color{RoyalBlue}|\PosControl*|\marg{pos. x}\marg{pos. y}} +% \DescribeMacro{\PosControl*}{\macrooptcolor|\PosControl*|\marg{pos. x}\marg{pos. y}} % % También podemos pedir que la caja del número de control abra hacia arriba, es decir que la posición vertical sea tomada como la posición vertical final; para eso |\PosControl*|, igual que con |\PosFecha*| y |\PosDenom*|. % -% \DescribeMacro{\PosCondiciones}{\color{RoyalBlue}|\PosCondiciones|\marg{pos. x}\marg{pos. y}} +% \DescribeMacro{\PosNotaFinal}{\macrooptcolor|\PosNotaFinal|\marg{pos. x-inicial}\marg{pos x-final}\marg{pos. y}} +% +% Con |\PosNotaFinal| controlamos dónde se ubica el texto de la nota final\footnote{La nota final es lo que en versiones previas llamábamos “condiciones” de la factura} (está hecho con |\parbox|, acepta un párrafo como argumento) en la hoja. +% +% {\itshape Aquí delimitamos el intervalo en |X| donde va la nota final, por eso hay una coordenada |X-inicial| y una coordenada |X-final|.} La coordenada |X| inicial va medida desde el margen establecido como el izquierdo, y la |X| final va medida desde el margen establecido como el derecho. Por ejemplo, estableciendo |X-inicial| como |0pt| y |X-final| como |0pt| queda en los mismos márgenes que todos los demás elementos de la factura, y esto es lo predeterminado, pero estableciendo ambas coordenadas como |1cm|, la nota final quedará con |1cm| de margen hacia adentro que la factura, tanto por la izquierda como por la derecha. +% +% Debido a que este comando acepta valor inicial y valor final en |X|, entonces no acepta valores negativos. % -% Con |\PosCondiciones| controlamos dónde se ubica el texto de las condiciones del documento (está hecho con |\parbox|, acepta un párrafo como argumento) en la hoja. {\itshape {\bfseries La coordenada |X| no acepta valores negativos} porque el |\parbox| que coloca el texto con las condiciones llega siempre hasta el final del ancho del texto, o sea, hasta el margen derecho.} +% \DescribeMacro{\PosNotaFinal*}{\macrooptcolor|\PosNotaFinal*|\marg{pos. x-inicial}\marg{pos x-final}\marg{pos. y}} % -% \DescribeMacro{\PosCondiciones*}{\color{RoyalBlue}|\PosCondiciones*|\marg{pos. x}\marg{pos. y}} +% De la misma manera como con los comandos precedentes, podemos especificar que la caja del párrafo para la nota final abra hacia arriba, fijando una posición vertical final y no una posición inicial de la nota final. % -% De la misma manera como con los comandos precedentes, podemos especificar que la caja del párrafo para las condiciones abra hacia arriba, fijando una posición vertical final y no una posición inicial de las condiciones. +% \DescribeMacro{\PosFirmas}{\macrooptcolor|\PosFirmas|\marg{pos. x-inicial}\marg{pos. x-final}\marg{pos. y}} % -% \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 líneas para firmar en la factura. {\itshape Aquí aplica el mismo comentario que en \cs{PosNotaFinal} sobre las coordenadas |X| inicial y final}. La coordenada |X-inicial| indica dónde empieza la primera linea (para que firme quien recibe), y la coordenada |X-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. % -% 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.} +% En este caso, las coordenadas |X| tampoco aceptan valores negativos ni versión con asterisco |*|. % % } % % % \subsubsection{Espaciado entre distintas partes. Estilo de los recuadros\label{subsec:espacioslineas}} % -% Podemos cambiar distintos valores del espaciado interno en la factura, así como también la estética de la línea para firmar y los recuadros que encierran los datos del cliente, la descripción, las notas y las condiciones, pudiendo ajustarle estos recuadros o cajas el grosor de la línea, la curvatura y la sombra. Los argumentos de todos estos comandos son dimensiones de \LaTeX{}: +% Podemos cambiar distintos valores del espaciado interno en la factura, así como también la estética de la línea para firmar y los recuadros que encierran los datos del cliente, la descripción, las “notas”, pudiendo ajustarle estos recuadros o cajas el grosor de la línea, la curvatura y la sombra. Los argumentos de todos estos comandos son dimensiones de \LaTeX{}: % % {\setlength{\parindent}{0pt} % -% \DescribeMacro{\SepVertical}{\color{RoyalBlue}|\SepVertical|\marg{sep. vertical entre elementos}} +% \DescribeMacro{\SepVertical}{\macrooptcolor|\SepVertical|\marg{sep. vertical entre elementos}} % % Las distintas partes de la factura (a saber: el encabezado con los datos, la -opcional- nota previa, el cuadro de la factura, la -opcional- nota externa y la -opcional- descripción) también están separadas entre sí una distancia que puede ser cambiada. % % La separación que se fija con este comando es la separación vertical mínima que queremos garantizar entre cada elemento a escribir en la factura, y puede ser ajustada automáticamente por la clase aumentándola cuando no hay relleno automático de espacios sobrantes (es decir, sin usar la opción |sinexpandir|). Cuando la descripción larga o el cuadro de la factura (usando la opción |expandecuadro|) toman su tamaño máximo, entonces la separación vertical entre cada elemento de la hoja es la dada con |\SepVertical|, o sea, la que queremos garantizar como la mínima separación entre esas partes. % -% \DescribeMacro{\SepDatosResumen}{\color{RoyalBlue}|\SepDatosResumen|\marg{sep. horizontal}} +% \DescribeMacro{\SepDatosResumen}{\macrooptcolor|\SepDatosResumen|\marg{sep. horizontal}} % % Esta macro nos proporciona una forma de cambiar la separación entre los recuadros o cajas donde van los datos del cliente y el resumen que sale a su lado. Naturalmente, si no se escribe un resumen saldría únicamente la caja de los datos del cliente, y esta separación no tendría efecto. % % \DescribeMacro{\SepEncabezado} % \DescribeMacro{\SepNotaPrevia} % \DescribeMacro{\SepDescripcion} -% \DescribeMacro{\SepCondiciones} -% {\color{RoyalBlue}|\SepEncabezado|\marg{sep. interna texto}}\newline -% {\color{RoyalBlue}|\SepNotaPrevia|\marg{sep. interna texto}}\newline -% {\color{RoyalBlue}|\SepDescripcion|\marg{sep. interna texto}}\newline -% {\color{RoyalBlue}|\SepCondiciones|\marg{sep. interna texto}} +% \DescribeMacro{\SepNotaFinal} +% {\macrooptcolor|\SepEncabezado|\marg{sep. interna texto}}\newline +% {\macrooptcolor|\SepNotaPrevia|\marg{sep. interna texto}}\newline +% {\macrooptcolor|\SepDescripcion|\marg{sep. interna texto}}\newline +% {\macrooptcolor|\SepNotaFinal|\marg{sep. interna texto}} % -% Con estas macros podemos controlar la distancia entre la línea del recuadro y el texto que hay en el recuadro, es decir, un margen interno entre el contorno de la caja y el texto para que no salga pegado a la línea que lo encierra. Esto es parte del diseño de \tikz de estos recuadros. Como puede verse, dicho margen para los datos del cliente y para el resumen se cambia con |\SepEncabezado|, los de la nota previa con |\SepNotaPrevia|, los de la descripción larga con |\SepDescripcion|, y los de las condiciones con |\SepCondiciones|. +% Con estas macros podemos controlar la distancia entre la línea del recuadro y el texto que hay en el recuadro, es decir, un margen interno entre el contorno de la caja y el texto para que no salga pegado a la línea que lo encierra. Esto es parte del diseño de \tikz de estos recuadros. Como puede verse, dicho margen para los datos del cliente y para el resumen se cambia con |\SepEncabezado|, los de la nota previa con |\SepNotaPrevia|, los de la descripción larga con |\SepDescripcion|, y los de la nota final con |\SepNotaFinal|. % -% Predeterminadamente no hay línea ni diseño de \tikz para las condiciones del documento, así que el valor fijado aquí no tiene efecto a menos de que se le especifiquen valores a dicho recuadro con la opción |\LineaCondiciones|, explicada más abajo. +% Predeterminadamente no hay línea ni diseño de \tikz para la nota final del documento, así que el valor fijado aquí no tiene efecto a menos de que se le especifiquen valores a dicho recuadro con la opción |\LineaNotaFinal|, explicada más abajo. % -% \DescribeMacro{\SepItemsExtra}{\color{RoyalBlue}|\SepItemsExtra|\marg{sep. extra entre items}} +% \DescribeMacro{\SepItemsExtra}{\macrooptcolor|\SepItemsExtra|\marg{sep. extra entre items}} % % Agrega una separación extra entre los elementos o ítems en el cuadro de la factura. La separación entre ítems está dada por el |\baselineskip| que se puede establecer con el comando |\LetraItems|, el cual se explicará más adelante en esta misma sección. % -% \DescribeMacro{\SepFilas}{\color{RoyalBlue}|\SepFilas|\marg{sep. en x}\marg{sep. en y}} +% \DescribeMacro{\SepFilas}{\macrooptcolor|\SepFilas|\marg{sep. en x}\marg{sep. en y}} % % Cuando se usa el modo de totalización en filas tenemos también la posibilidad de cambiar la separación entre los totales que salen uno al lado del otro, y la separación entre las distintas líneas. % @@ -1081,75 +1109,75 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \DescribeMacro{\LineaEncabezado} % \DescribeMacro{\LineaNotaPrevia} % \DescribeMacro{\LineaDescripcion} -% \DescribeMacro{\LineaCondiciones} -% {\color{RoyalBlue}|\LineaEncabezado|\marg{grosor}\marg{curvatura esquinas}\marg{tamaño sombra}}\newline -% {\color{RoyalBlue}|\LineaNotaPrevia|\marg{grosor}\marg{curvatura esquinas}\marg{tamaño sombra}}\newline -% {\color{RoyalBlue}|\LineaDescripcion|\marg{grosor}\marg{curvatura esquinas}\marg{tamaño sombra}}\newline -% {\color{RoyalBlue}|\LineaCondiciones|\marg{grosor}\marg{curvatura esquinas}\marg{tamaño sombra}} +% \DescribeMacro{\LineaNotaFinal} +% {\macrooptcolor|\LineaEncabezado|\marg{grosor}\marg{curvatura esquinas}\marg{tamaño sombra}}\newline +% {\macrooptcolor|\LineaNotaPrevia|\marg{grosor}\marg{curvatura esquinas}\marg{tamaño sombra}}\newline +% {\macrooptcolor|\LineaDescripcion|\marg{grosor}\marg{curvatura esquinas}\marg{tamaño sombra}}\newline +% {\macrooptcolor|\LineaNotaFinal|\marg{grosor}\marg{curvatura esquinas}\marg{tamaño sombra}} % -% La información del encabezado (datos del cliente y resumen), así como la nota previa, la descripción y las condiciones puede o no tener el diseño \tikz, el cual viene prehecho en el archivo |.def| y consiste en una línea curva, en algunos casos sombreada a la derecha y abajo, y en otros casos no. Esa línea puede ser alterada en su grosor, el tamaño de la sombra, y la distancia entre la línea y la información, es decir un margen interno. Para eso estos comandos, que se comportan igual todos ellos. +% La información del encabezado (datos del cliente y resumen), así como la nota previa, la descripción y la nota final puede o no tener el diseño \tikz, el cual viene prehecho en el archivo |.def| y consiste en una línea curva, en algunos casos sombreada a la derecha y abajo, y en otros casos no. Esa línea puede ser alterada en su grosor, el tamaño de la sombra, y la distancia entre la línea y la información, es decir un margen interno. Para eso estos comandos, que se comportan igual todos ellos. % -% Con el primer argumento de estos comandos cambiamos el grosor de la línea\footnote{Si se especifica una dimensión nula, desaparece el diseño \tikz y la línea, quedando solamente un \cs{parbox}, y es así como se estableció en el archivo \texttt{.def} para el caso de las condiciones.} con la que las cajas del encabezado, la nota previa, la descripción y las condiciones se dibujan. Con el segundo argumento cambiamos el radio de curvatura de las esquinas, y con el tercero el tamaño de la sombra\footnote{Todas las sombras salen hacia abajo a la derecha.}. +% Con el primer argumento de estos comandos cambiamos el grosor de la línea\footnote{Si se especifica una dimensión nula, desaparece el diseño \tikz y la línea, quedando solamente un \cs{parbox}, y es así como se estableció en el archivo \texttt{.def} para el caso de la nota final.} con la que las cajas del encabezado, la nota previa, la descripción y la nota final se dibujan. Con el segundo argumento cambiamos el radio de curvatura de las esquinas, y con el tercero el tamaño de la sombra\footnote{Todas las sombras salen hacia abajo a la derecha.}. % -% Se puede modificar el diseño de este nodo de \tikz; está alojado en las macros internas |\@DatosTIKZ|, |\@NotaPreviaTIKZ|, |\@DescripcionTIKZ| y |\@CondicionesTIKZ|. +% Se puede modificar el diseño de este nodo de \tikz; está alojado en las macros internas |\@DatosTIKZ|, |\@NotaPreviaTIKZ|, |\@DescripcionTIKZ| y |\@NotaFinalTIKZ|. % -% Lo predeterminado es que las condiciones se escriban sin diseño de \tikz, es decir, el primer argumento de este comando está fijado en cero para que no salga línea ni diseño de \tikz. +% Lo predeterminado es que la nota final se escriban sin diseño de \tikz, es decir, el primer argumento de este comando está fijado en cero para que no salga línea ni diseño de \tikz. % -% \DescribeMacro{\LineaFirmas}{\color{RoyalBlue}|\LineaFirmas|\marg{long. línea}\marg{grosor}} +% \DescribeMacro{\LineaFirmas}{\macrooptcolor|\LineaFirmas|\marg{long. línea}\marg{grosor}} % % La longitud de las líneas para firmar y el grosor son también ajustables por medio del primer y segundo argumento, respectivamente, de la macro |\LineaFirmas|. % % % \subsection{Sobre la información del cliente\label{subsec:cliente}} % -% \DescribeMacro{\RazonSocial}{\color{Red}|\RazonSocial|\marg{texto}} +% \DescribeMacro{\RazonSocial}{\macromandcolor|\RazonSocial|\marg{texto}} % % Define la razón social, o sea, el nombre del cliente. % -% \DescribeMacro{\Nombre}{\color{Red}|\Nombre|\marg{texto}} +% \DescribeMacro{\Nombre}{\macromandcolor|\Nombre|\marg{texto}} % % Similar a |\RazonSocial| pero usable más bien para personas naturales, donde no existe una “persona de contacto” y por tanto la clase no advierte de su ausencia si no se ha especificado con |\Contacto|. Naturalmente se especifica un solo nombre del cliente, es decir que si se especifica con |\RazonSocial| no hace falta usar este comando. {\itshape Es preferible usar |\RazonSocial|.} % -% \DescribeMacro{\RIF}{\color{Red}|\RIF|\marg{texto}} +% \DescribeMacro{\RIF}{\macromandcolor|\RIF|\marg{texto}} % % Define el R.I.F. del cliente. % -% \DescribeMacro{\CI}{\color{Red}|\CI|\marg{texto}} +% \DescribeMacro{\CI}{\macromandcolor|\CI|\marg{texto}} % % Especifica la cédula de identidad del cliente al ser persona natural. {\itshape Es preferible usar siempre |\RIF|.} % -% \DescribeMacro{\Contacto}{\color{RoyalBlue}|\Contacto|\marg{texto}} +% \DescribeMacro{\Contacto}{\macrooptcolor|\Contacto|\marg{texto}} % % Define una persona de contacto (e.g. nombre de una persona cuando el cliente no es personal). % -% \DescribeMacro{\Direccion}{\color{Red}|\Direccion|\marg{texto}} +% \DescribeMacro{\Direccion}{\macromandcolor|\Direccion|\marg{texto}} % % Define la dirección fiscal del cliente. % -% \DescribeMacro{\Telefono}{\color{RoyalBlue}|\Telefono|\marg{texto}} +% \DescribeMacro{\Telefono}{\macrooptcolor|\Telefono|\marg{texto}} % % Especifica el (o los) teléfonos del cliente. % -% \DescribeMacro{\Email}{\color{RoyalBlue}|\Email|\marg{texto}} +% \DescribeMacro{\Email}{\macrooptcolor|\Email|\marg{texto}} % % Establece el e-mail del cliente. % -% \DescribeMacro{\Conforme}{\color{RoyalBlue}|\Conforme|\marg{texto}} +% \DescribeMacro{\Conforme}{\macrooptcolor|\Conforme|\marg{texto}} % % Especifica el texto que aparecerá debajo de la línea para que firme el cliente; si no se especifica tomará el texto por omisión, que es “Recibí conforme”, indicando que el cliente le firma una copia al emisor de la factura donde acepta haber recibido y estar conforme. Este texto puede cambiarse a otro que puede ser el nombre del cliente o la persona de contacto, o también “Por el cliente”. % % % \subsection{Sobre la información del emisor del documento} % -% \DescribeMacro{\Emisor}{\color{RoyalBlue}|\Emisor|\marg{texto}} +% \DescribeMacro{\Emisor}{\macrooptcolor|\Emisor|\marg{texto}} % % Define el nombre del emisor de la factura. Si no se especifica saldrá el texto “PAGADO”\footnote{El texto “PAGADO” es lo que la legislación venezolana del SENIAT exige escribir cuando una factura ha sido pagada.} debajo de la línea para firmar, ya que la factura se firma cuando haya sido pagada. Si se especifica un texto con este comando saldrá ese texto debajo de la línea donde va la firma, pero el propósito es que quede constancia para el cliente que ya pagó la factura, razón por la cual el texto predeterminado es “PAGADO”. % -% \DescribeMacro{\Proveedor}{\color{RoyalBlue}|\Proveedor|\marg{texto}} +% \DescribeMacro{\Proveedor}{\macrooptcolor|\Proveedor|\marg{texto}} % % Establece el nombre del emisor, para los efectos del reporte. Si no se define mediante esta macro, será tomado del establecido con |\Emisor|. % -% \DescribeMacro{\FirmaFactura}{\color{RoyalBlue}|\FirmaFactura|\marg{inclusión de la imagen}\oarg{corrimiento en x}\oarg{corrimiento en y}} +% \DescribeMacro{\FirmaFactura}{\macrooptcolor|\FirmaFactura|\marg{inclusión de la imagen}\oarg{corrimiento en x}\oarg{corrimiento en y}} % % Incluye el archivo de la firma digitalizada en el espacio donde firma el emisor del documento. Los argumentos son: % \begin{enumerate} @@ -1164,30 +1192,30 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % % \subsection{Relativos a la moneda y a la numeración del documento factura} % -% \DescribeMacro{\Moneda}{\color{RoyalBlue}|\Moneda|\marg{signo monetario}} +% \DescribeMacro{\Moneda}{\macrooptcolor|\Moneda|\marg{signo monetario}} % % Cambia el signo monetario, por defecto “Bs.”. % -% \DescribeMacro{\Num}{\color{RoyalBlue}|\Num|\marg{núm}} +% \DescribeMacro{\Num}{\macrooptcolor|\Num|\marg{núm}} % % Define el número de la factura. Es opcional porque el talonario de las facturas puede ya tener la numeración. Es de obligatorio uso cuando se define |denom|, o |prefactura| sin usar |sinnumero|. % -% \DescribeMacro{\NumControl}{\color{RoyalBlue}|\NumControl|\marg{núm}} +% \DescribeMacro{\NumControl}{\macrooptcolor|\NumControl|\marg{núm}} % % Define el número de control de la factura. Esta opción sólo aplica con |prefactura| puesto que una factura fiscal siempre tiene el número de control impreso desde la imprenta. Si se usa |prefactura| y no se define el número de control, éste tomará el mismo número de la factura. % -% \DescribeMacro{\NumSerieControl}{\color{RoyalBlue}|\NumSerieControl|\marg{núm}} +% \DescribeMacro{\NumSerieControl}{\macrooptcolor|\NumSerieControl|\marg{núm}} % % Define el número de serie del número de control, también aplica solamente con |prefactura|. Si no se especifica, toma |00|. % -% \DescribeMacro{\Denom}{\color{RoyalBlue}|\Denom|\marg{texto}} +% \DescribeMacro{\Denom}{\macrooptcolor|\Denom|\marg{texto}} % % Cambia el nombre del documento a algo distinto de “FACTURA” o “COTIZACIÓN”. % % % \subsection{Estableciendo la fecha del documento} % -% \DescribeMacro{\Fecha}{\color{RoyalBlue}|\Fecha|\marg{fecha}} +% \DescribeMacro{\Fecha}{\macrooptcolor|\Fecha|\marg{fecha}} % % Especifica la fecha de emisión del documento, en un formato que puede cambiarse con el comando |\FormatoFecha| pero predeterminadamente es el formato venezolano |dd-mm-aaaa|. % @@ -1195,11 +1223,11 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % % {\itshape Si el usuario no provee la fecha, será tomada la fecha actual como la fecha de emisión y se producirá una advertencia indicando que no se especificó la fecha y que la fecha del documento es la fecha del día.} % -% \DescribeMacro{\Fecha*}{\color{RoyalBlue}|\Fecha*|\marg{aaaa}\marg{mm}\marg{dd}} +% \DescribeMacro{\Fecha*}{\macrooptcolor|\Fecha*|\marg{aaaa}\marg{mm}\marg{dd}} % % Esta variante del comando se incorporó para suministrar la fecha en formato ISO, es decir, primero el año, luego y mes y finalmente el día, cada uno como un parámetro separado del otro (como se hace en \texttt{datetime2}. Esto es independiente de la forma como la fecha será mostrada, o sea que puede la fecha suministrarse de esta forma e igual saldrá en el formato deseado, cambiable con la macro |\FormatoFecha|, explicado a continuación. % -% \DescribeMacro{\FormatoFecha}{\color{RoyalBlue}|\FormatoFecha|\oarg{formato entrada}\marg{formato salida}\marg{separador}} +% \DescribeMacro{\FormatoFecha}{\macrooptcolor|\FormatoFecha|\oarg{formato entrada}\marg{formato salida}\marg{separador}} % % El comando |\FormatoFecha| le permite al usuario cambiar el formato de entrada de la fecha suministrada y el formato de salida de las fechas (cómo éstas salen escritas en la factura). % @@ -1211,11 +1239,11 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % % Con |\FormatoFecha|, al tener todos sus argumentos opcionales, el usuario podrá especificar solamente el primero (que va entre corchetes), solamente el segundo (entre llaves), pero para especificar el tercero que también está entre llaves debe especificar el segundo, ya que ambos son opcionales pero se dan igualmente entre llaves. Naturalmente podrá especificar dos de estos argumentos o los tres. % -% Por ejemplo: |\FormatoFecha[mm-dd-aaaa]{mmddyyyy}{.}| serviría para que el usuario pueda dar la fecha así: |\Fecha{12-31-2018}| y que salga igualmente según el formato |mm-dd-aaaa| pero separado por puntos. También puede usarse |\FormatoFecha[aaaa-mm-dd]| para dar luego la fecha de esta forma: |\Fecha{2018-12-31}| pero esta saldrá igual impresa en la factura así: “|31-12-2018|”, ya que no cambiamos el formato de salida. También puede hacer |\FormatoFecha{mmddyyyy}{/}| y dar la fecha por ejemplo así: |\Fecha*{2018}{12}{31}| y saldrá impresa así: “|12/31/2018|”. +% Por ejemplo: |\FormatoFecha[mm-dd-aaaa]{mmddyyyy}{.}| serviría para que el usuario pueda dar la fecha así: |\Fecha{12-31-2019}| y que salga igualmente según el formato |mm-dd-aaaa| pero separado por puntos. También puede usarse |\FormatoFecha[aaaa-mm-dd]| para dar luego la fecha de esta forma: |\Fecha{2019-12-31}| pero esta saldrá igual impresa en la factura así: “|31-12-2019|”, ya que no cambiamos el formato de salida. También puede hacer |\FormatoFecha{mmddyyyy}{/}| y dar la fecha por ejemplo así: |\Fecha*{2019}{12}{31}| y saldrá impresa así: “|12/31/2019|”. % % Los valores predeterminados cambiables con |\FormatoFecha| están definidos, como siempre, en el archivo |factura.def|. % -% \DescribeMacro{\Credito}{\color{RoyalBlue}|\Credito|\marg{días}} +% \DescribeMacro{\Credito}{\macrooptcolor|\Credito|\marg{días}} % % Este comando, cuyo argumento es la cantidad de días, nos permite emitir una factura a crédito. La fecha de vencimiento será calculada automáticamente y será colocada debajo de la fecha de emisión, especificada por el usuario. % @@ -1230,72 +1258,72 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % % {\setlength{\parindent}{0pt} % -% \DescribeMacro{\Descuento}{\color{RoyalBlue}|\Descuento|\marg{porcentaje}}\\ -% \DescribeMacro{\Descuento*}{\color{RoyalBlue}|\Descuento*|\marg{monto}} +% \DescribeMacro{\Descuento}{\macrooptcolor|\Descuento|\marg{porcentaje}}\\ +% \DescribeMacro{\Descuento*}{\macrooptcolor|\Descuento*|\marg{monto}} % % Con este comando el descuento aplicaría por igual a cualquier subtotal presente, es decir, para elementos con cualquier gravamen y también exentos. Dichos descuentos son aplicados y mostrados al totalizar. Puede usarse inclusive cuando se aplican descuentos individuales que se incluyen con la opción de la clase |descuentos|. % -% \DescribeMacro{\DescuentoG}{\color{RoyalBlue}|\DescuentoG|\marg{porcentaje}}\\ -% \DescribeMacro{\DescuentoG*}{\color{RoyalBlue}|\DescuentoG*|\marg{monto}} +% \DescribeMacro{\DescuentoG}{\macrooptcolor|\DescuentoG|\marg{porcentaje}}\\ +% \DescribeMacro{\DescuentoG*}{\macrooptcolor|\DescuentoG*|\marg{monto}} % % Descuento específico para los elementos gravados con IVA general. % -% \DescribeMacro{\DescuentoR}{\color{RoyalBlue}|\DescuentoR|\marg{porcentaje}}\\ -% \DescribeMacro{\DescuentoR*}{\color{RoyalBlue}|\DescuentoR*|\marg{monto}} +% \DescribeMacro{\DescuentoR}{\macrooptcolor|\DescuentoR|\marg{porcentaje}}\\ +% \DescribeMacro{\DescuentoR*}{\macrooptcolor|\DescuentoR*|\marg{monto}} % % Descuento específico para los elementos gravados con IVA reducido. % -% \DescribeMacro{\DescuentoA}{\color{RoyalBlue}|\DescuentoA|\marg{porcentaje}}\\ -% \DescribeMacro{\DescuentoA*}{\color{RoyalBlue}|\DescuentoA*|\marg{monto}} +% \DescribeMacro{\DescuentoA}{\macrooptcolor|\DescuentoA|\marg{porcentaje}}\\ +% \DescribeMacro{\DescuentoA*}{\macrooptcolor|\DescuentoA*|\marg{monto}} % % Descuento específico para los elementos gravados con IVA adicional. % -% \DescribeMacro{\DescuentoE}{\color{RoyalBlue}|\DescuentoE|\marg{porcentaje}}\\ -% \DescribeMacro{\DescuentoE*}{\color{RoyalBlue}|\DescuentoE*|\marg{monto}} +% \DescribeMacro{\DescuentoE}{\macrooptcolor|\DescuentoE|\marg{porcentaje}}\\ +% \DescribeMacro{\DescuentoE*}{\macrooptcolor|\DescuentoE*|\marg{monto}} % % Descuento específico para los elementos exentos de IVA. % % % \subsection{Textos explicativos en la factura\label{subsec:textos}} % -% \DescribeMacro{\Resumen}{\color{RoyalBlue}|\Resumen|\marg{texto}} +% \DescribeMacro{\Resumen}{\macrooptcolor|\Resumen|\marg{texto}} % % Pone un resumen que va en una caja a la derecha de los datos del cliente, separado de esta en una distancia ajustable con el comando |\SepEncabezado|, que se describirá más adelante. Este resumen es opcional. % -% \DescribeMacro{\NotaPrevia}{\color{RoyalBlue}|\NotaPrevia|\marg{texto}} +% \DescribeMacro{\NotaPrevia}{\macrooptcolor|\NotaPrevia|\marg{texto}} % % La nota previa es una nota que puede ponerse antes del cuadro de la factura. Sin especificarla no sale nota alguna. Dicha nota va en un recuadro \tikz cuyo aspecto puede cambiarse, como ya se mencionó en la sección \ref{subsec:espacioslineas} donde se explican las líneas o contornos. % -% \DescribeMacro{\NotaInterna}{\color{RoyalBlue}|\NotaInterna|\marg{texto}} +% \DescribeMacro{\NotaInterna}{\macrooptcolor|\NotaInterna|\marg{texto}} % % La nota interna es una coletilla que aparece dentro del cuadro de la factura, por eso la llamamos interna (es interna al cuadro), por ejemplo si aplicamos un descuento podemos decir allí cerca de los totales a qué corresponde tal descuento, o para hacer alguna aclaratoria sobre lo que precede inmediatamente como algún ítem de la factura. % -% \DescribeMacro{\NotaExterna}{\color{RoyalBlue}|\NotaExterna|\marg{texto}} +% \DescribeMacro{\NotaExterna}{\macrooptcolor|\NotaExterna|\marg{texto}} % % La nota externa es otro texto opcional que el usuario puede introducir y saldrá al terminar el cuadro de la factura, antes de la opcional descripción larga (comando |\Descripcion|). {\itshape La nota externa no tiene formato \tikz.} % -% \DescribeMacro{\Condiciones}{\color{RoyalBlue}|\Condiciones|\marg{texto}} +% \DescribeMacro{\NotaFinal}{\macrooptcolor|\NotaFinal|\marg{texto}} % -% Con este comando se establece el texto que esclarece las condiciones del documento, por ejemplo para las condiciones de pago si se trata de una factura, o para las condiciones de una cotización. Es opcional; si no se define no sale texto alguno. También se puede destinar este espacio para un diseño (que haría el usuario) en el que se agreguen también algunas casillas para especificar la forma de pago. +% Con este comando se establece el texto para la nota final\footnote{Antiguas condiciones de la factura, por ejemplo, para las condiciones de pago si se trata de una factura, o para las condiciones de una cotización.}. Es opcional; si no se define no sale texto alguno. También se puede destinar este espacio para un diseño (que haría el usuario) en el que se agreguen también algunas casillas para especificar la forma de pago. % % % \subsection{Estableciendo los parámetros relativos al reporte} % -% \DescribeMacro{\GeometriaReporte}{\color{RoyalBlue}|\GeometriaReporte|\marg{geometría}} +% \DescribeMacro{\GeometriaReporte}{\macrooptcolor|\GeometriaReporte|\marg{geometría}} % % Aquí van los parámetros relativos al paquete |geometry| que van a afectar la manera como el reporte es generado, de la misma manera como se definieron los márgenes para la factura. % % Puesto que el reporte no se imprime en hojas de facturas sino en hojas en blanco, el usuario podrá cambiar la geometría del papel completamente a su gusto sin las restricciones impuestas por el diseño que tengan sus facturas. En |factura.def| se definen unos márgenes razonables para un reporte. Si el reporte y la factura usaran un tamaño distinto de papel, entonces al imprimirse ambos juntos (opción |conreporte|), el reporte tomará el tamaño físico del papel especificado para la factura ya que con el paquete |geometry| no podemos cambiar el tamaño del papel en el medio del documento, aunque sí sus márgenes. Entonces, si se quiere imprimir el reporte en un papel de otro tamaño, tendrán que imprimirse ambos documentos por separado, o sea, primero uno y después el otro. % -% \DescribeMacro{\FondoReporte}{\color{RoyalBlue}|\FondoReporte|\marg{nombre del archivo de la imagen}} +% \DescribeMacro{\FondoReporte}{\macrooptcolor|\FondoReporte|\marg{nombre del archivo de la imagen}} % % Imagen a cargar {\bfseries solamente en la primera página del reporte} (e.g. un membrete). Cuando se usa este comando puede necesitarse usar también |\InicioReporte| para fijar el inicio de la primera página del reporte más abajo que las demás páginas cuyos márgenes están establecidos con |\GeometriaReporte|; esto porque la primera página tendría un “margen superior” distinto por la existencia del membrete. % -% \DescribeMacro{\FondoReporte*}{\color{RoyalBlue}|\FondoReporte*|\marg{nombre del archivo de la imagen}} +% \DescribeMacro{\FondoReporte*}{\macrooptcolor|\FondoReporte*|\marg{nombre del archivo de la imagen}} % % Esta variante de |\FondoReporte| es para que la imagen esté visible {\bfseries en todas las páginas} y no solamente en la primera como con el comando anterior. Usando esta variante del fondo del reporte no es necesario usar |\InicioReporte| sino solamente establecer los márgenes del reporte de acuerdo a dicho fondo. % -% \DescribeMacro{\EstiloPagReporte}{\color{RoyalBlue}|\EstiloPagReporte|\oarg{estilo primera página}\marg{estilo páginas restantes}} +% \DescribeMacro{\EstiloPagReporte}{\macrooptcolor|\EstiloPagReporte|\oarg{estilo primera página}\marg{estilo páginas restantes}} % % Con este comando definimos el estilo de página para el reporte (véase el comando |\InfoPagina| y la subsección \ref{subsec:pagestyle}). El estilo de página es lo que cambiamos en \LaTeX{} con |\pagestyle|, o sea, lo relativo a las cabeceras y pies de página. % @@ -1309,11 +1337,11 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % % La clase provee varios estilos de página, que también se explicarán en la subsección \ref{subsec:pagestyle}. En los ejemplos de reportes se puede ver el comportamiento del comando |\EstiloPagReporte|. % -% \DescribeMacro{\InicioReporte}{\color{RoyalBlue}|\InicioReporte|\marg{longitud}} +% \DescribeMacro{\InicioReporte}{\macrooptcolor|\InicioReporte|\marg{longitud}} % % Con este comando -cuyo argumento es una longitud de \LaTeX{}- se agrega una distancia extra donde inicia el texto en la primera página del reporte cuando se usa |\FondoReporte| sin “|*|”. Este comando sólo aplica cuando en el reporte se fija un fondo para que salga solamente en la primera página (comando |\FondoReporte| en su versión sin “|*|”). La motivación de esto es corregir la alteración que produce un membrete que va a salir solamente en la primera página; si el membrete estuviera en todas las páginas no es necesario hacer esto sino fijar los márgenes adecuadamente con |\GeometriaReporte|. Si en el reporte no se fija un fondo o se fija el fondo para todas las páginas (comando |\FondoReporte*|), lo que se establezca con |\InicioReporte| es ignorado. En estos dos casos los márgenes deben establecerse con |\GeometriaReporte|. % -% \DescribeMacro{\FirmaReporte}{\color{RoyalBlue}|\FirmaReporte|\oarg{inclusión la imagen}\oarg{corr. en x}\oarg{corr. en y}\marg{texto}\oarg{pos. x}\oarg{long. línea}} +% \DescribeMacro{\FirmaReporte}{\macrooptcolor|\FirmaReporte|\oarg{inclusión la imagen}\oarg{corr. en x}\oarg{corr. en y}\marg{texto}\oarg{pos. x}\oarg{long. línea}} % % Incluye la firma para el final del reporte. Los argumentos son: % \begin{enumerate} @@ -1326,17 +1354,17 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \end{enumerate} % {\itshape {\bfseries Este comando es de los pocos que no es del preámbulo}; debe incluirse en el sitio en el reporte donde se quiera que la firma salga, generalmente al final del reporte y todos sus argumentos son opcionales, incluyendo el texto que va debajo de la línea, que se incluye entre llaves |{}| a pesar de ser opcional. Cuando no se especifica ningún argumento, sólo dibuja la línea para firmar y le escribe abajo el nombre dado con |\Proveedor| o en su defecto el dado con |\Emisor|.} % -% \DescribeMacro{\TituloReporte}{\color{RoyalBlue}|\TituloReporte|\marg{texto}} +% \DescribeMacro{\TituloReporte}{\macrooptcolor|\TituloReporte|\marg{texto}} % % Especificamos un título para el reporte. Este título saldrá centrado al principio del reporte. % -% \DescribeMacro{\TituloReporte*}{\color{RoyalBlue}|\TituloReporte*|\marg{texto}} +% \DescribeMacro{\TituloReporte*}{\macrooptcolor|\TituloReporte*|\marg{texto}} % % Usando |\TituloReporte| u omitiendo su uso, la información que sale en las cabeceras o pies de página tiene que ver con el número de la factura que está asociada a ese reporte. Con esta variante con “|*|” de |\TituloReporte|, el título del reporte -especificado con este comando- saldrá escrito también en estas partes de la página en lugar del texto que indica que el reporte corresponde a determinada factura. % % Puede usarse esta opción también en aquellos casos en los que se hace un reporte sin asociarlo a una factura, entonces el título del reporte es la información que sale en la cabecera o pie de cada página. % -% \DescribeMacro{\InfoPagina}{\color{RoyalBlue}|\InfoPagina|\marg{texto}} +% \DescribeMacro{\InfoPagina}{\macrooptcolor|\InfoPagina|\marg{texto}} % % Establece el texto que aparece en la cabecera o pie de página del reporte. % @@ -1347,7 +1375,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % % \subsection{Definiciones en archivos separados \label{subsec:aux}} % -% \DescribeMacro{\Cliente}{\color{RoyalBlue}|\Cliente|\marg{archivo \LaTeX}} +% \DescribeMacro{\Cliente}{\macrooptcolor|\Cliente|\marg{archivo \LaTeX}} % % {\bfseries Todos los comandos definibles en el preámbulo que alteren la forma como el reporte o la factura es presentada, así como cualquier variable definida en |factura.def| se puede redefinir y agregar a otro archivo |.tex| o |.def| que el usuario cargue en el preámbulo con |\input|, |\include| o con el comando |\Cliente|; el comando para el cliente existe para que el usuario pueda definir archivos |.tex| o |.def| con los valores específicos que aplican para cada cliente.} % @@ -1360,14 +1388,17 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % % \DescribeEnv{factura} % La parte del documento donde se agregan los elementos a facturar se escribe dentro de un entorno especial para su tratamiento, llamado |factura|, que produce el cuadro de la factura: +% % \iffalse %<*literal> % \fi +{\VERBATIM \begin{verbatim} -\begin{factura} - ... -\end{factura} + \begin{factura} + [...] + \end{factura} \end{verbatim} +} % \iffalse %</literal> % \fi @@ -1378,7 +1409,7 @@ 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}} +% {\macromandcolor|\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} @@ -1393,13 +1424,13 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % 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}\oarg{descripción sólo para referencias}} +% \DescribeMacro{\ItemX}{\macrooptcolor|\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}} +% {\macromandcolor|\Item|\marg{cantidad}\marg{descripción}\oarg{descripción para csv}\marg{precio unitario}\marg{\% descuento} \\ \mbox{}\hfill \oarg{descripción sólo para referencias}} % \DescribeMacro{\Item} % \DescribeMacro{\ItemR} % \DescribeMacro{\ItemA} @@ -1415,14 +1446,14 @@ 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}\oarg{descripción sólo para referencias}} +% {\macromandcolor|\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}\oarg{descripción sólo para \\ \mbox{}\hfill referencias}} +% \noindent {\macromandcolor|\Item|\marg{descripción}\oarg{descripción para csv}\marg{precio unitario}\marg{\% descuento} \\ \mbox{}\hfill \oarg{descripción sólo para 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}\oarg{descripción sólo para referencias}} +% \DescribeMacro{\ItemX}{\macrooptcolor|\ItemX|\marg{descripción}\oarg{descripción para csv}\oarg{descripción sólo para referencias}} % % 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. % @@ -1434,7 +1465,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % Una vez terminado el entorno de la factura se puede escribir una descripción larga que saldrá en una caja -cuyo estilo puede cambiarse-\footnote{El diseño de esta descripción consiste en su linea de contorno, cambiable como ya explicamos en la subsección \ref{subsec:espacioslineas}, específicamente con la macro \cs{LineaDescripcion}.} debajo del cuadro de la factura, esto va dentro de un |\parbox| en la implementación de la caja. Si esta descripción no se escribe, simplemente no va a aparecer nada debajo del cuadro de la factura. % % \noindent \DescribeMacro{\Descripcion} -% {\color{RoyalBlue}|\Descripcion|\marg{texto en formato de párrafos}} +% {\macrooptcolor|\Descripcion|\marg{texto en formato de párrafos}} % % {\itshape Como podemos ver, |\Descripcion| es otro de los pocos comandos que no se usan en el preámbulo sino dentro del documento, jústamente al terminar el ambiente} |factura|. % @@ -1442,17 +1473,19 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \section{Reverso de la factura} % % \DescribeEnv{reverso} -% La factura puede tener información escrita en su reverso, por ejemplo para condiciones cuando estas necesitan mucho espacio. Ese texto se escribe dentro de un entorno llamado |reverso|, que puede o no incluirse según el requerimiento del usuario. si está escrito en el documento fuente también podrá decidirse si se incluye o no en el documento compilado. +% La factura puede tener información escrita en su reverso, por ejemplo para ciertas condiciones cuando estas necesitan mucho espacio. Ese texto se escribe dentro de un entorno llamado |reverso|, que puede o no incluirse según el requerimiento del usuario. si está escrito en el documento fuente también podrá decidirse si se incluye o no en el documento compilado. % % \iffalse %<*literal> % \fi +{\VERBATIM \begin{verbatim} -\begin{reverso} - (Aquí va toda la información que irá escrita - en el reverso de la hoja de la factura.) -\end{reverso} + \begin{reverso} + (Aquí va toda la información que irá escrita + en el reverso de la hoja de la factura.) + \end{reverso} \end{verbatim} +} % \iffalse %</literal> % \fi @@ -1470,11 +1503,13 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \iffalse %<*literal> % \fi +{\VERBATIM \begin{verbatim} -\begin{reporte} - (Aquí va el reporte, sin límite la extensión del texto.) -\end{reporte} + \begin{reporte} + (Aquí va el reporte, sin límite la extensión del texto.) + \end{reporte} \end{verbatim} +} % \iffalse %</literal> % \fi @@ -1518,101 +1553,101 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % Cuando en lo sucesivo nos referiremos a tipografía, tipo de letra, o letra, nos estaremos refiriendo a cualquier cambio en la tipografía que pueda significar el nombre de la letra, su tamaño o atributos como negritas, es decir, mediante cualquiera de estos comandos podemos cambiar cualquier aspecto de la tipografía. Mirando el archivo |.def| pueden verse todos los valores predeterminados, que la mayoría de ellos son simplemente cambios en el tamaño (macro |\fontsize| de \LaTeX{}), y en algunos casos negritas. % % {\setlength{\parindent}{0pt} -% \DescribeMacro{\LetraItems}{\color{RoyalBlue}|\LetraItems|\marg{tipo de letra}} +% \DescribeMacro{\LetraItems}{\macrooptcolor|\LetraItems|\marg{tipo de letra}} % % Con este comando cambiamos la tipografía utilizada en los ítems o elementos que están en el cuadro de la factura, de manera que {\itshape cambiar la longitud \cs{baselineskip} con el segundo argumento de \cs{fontsize} hará que la tabla tenga una altura distinta de las celdas.} % % Lo anterior significa que {\bfseries para cambiar la altura de las celdas, la forma correcta es a través de cambiar el tamaño de la letra de sus elementos con este comando. (Véase el archivo |.def|)}. % -% \DescribeMacro{\LetraNumeros}{\color{RoyalBlue}|\LetraNumeros|\marg{tipo de letra}} +% \DescribeMacro{\LetraNumeros}{\macrooptcolor|\LetraNumeros|\marg{tipo de letra}} % % Este comando sirve para cambiar el tipo de letra de tota la información numérica que aparece en las distintas columnas del cuadro de la factura, sin contar los totales, para los cuales hay otros comandos. % -% \DescribeMacro{\LetraTipoIVA}{\color{RoyalBlue}|\LetraTipoIVA|\marg{tipo de letra}} +% \DescribeMacro{\LetraTipoIVA}{\macrooptcolor|\LetraTipoIVA|\marg{tipo de letra}} % % El tipo del IVA es la letra que indica qué IVA está siendo gravado, por ejemplo, la “|G|”, “|R|” y “|A|” que puede salir al lado de los elementos con IVA general, reducido y adicional respectivamente, y “|(E)|” al lado de los elementos exentos. Con esta macro cambiamos la letra con la que eso sale. % -% \DescribeMacro{\LetraTitColumnas}{\color{RoyalBlue}|\LetraTitColumnas|\marg{tipo de letra}} +% \DescribeMacro{\LetraTitColumnas}{\macrooptcolor|\LetraTitColumnas|\marg{tipo de letra}} % % Con |\LetraTitColumnas| podemos cambiar la tipografía de los títulos de los campos que hay en el cuadro de la factura, es decir, los textos “Cantidad”, “Descripción”, “Precio U.”, etc. % -% \DescribeMacro{\LetraTitTotales}{\color{RoyalBlue}|\LetraTitTotales|\marg{tipo de letra}} +% \DescribeMacro{\LetraTitTotales}{\macrooptcolor|\LetraTitTotales|\marg{tipo de letra}} % % Con este comando cambiamos la tipografía de los nombres de los totales, es decir, “IVA G.”, “BI G.”, salvo el total general que se cambia con |\LetraTitTotal|. % -% \DescribeMacro{\LetraNumTotales}{\color{RoyalBlue}|\LetraNumTotales|\marg{tipo de letra}} +% \DescribeMacro{\LetraNumTotales}{\macrooptcolor|\LetraNumTotales|\marg{tipo de letra}} % % Con esta macro se cambia la tipografía utilizada en los totales numéricos de la factura, exceptuando el total general que se cambia con |\LetraNumTotal|. % -% \DescribeMacro{\LetraTitTotal}{\color{RoyalBlue}|\LetraTitTotal|\marg{tipo de letra}} +% \DescribeMacro{\LetraTitTotal}{\macrooptcolor|\LetraTitTotal|\marg{tipo de letra}} % % Para cambiar la tipografía de la palabra que indica el total general, e.g. “TOTAL”, lo hacemos con |\LetraTitTotal|. % -% \DescribeMacro{\LetraNumTotal}{\color{RoyalBlue}|\LetraNumTotal|\marg{tipo de letra}} +% \DescribeMacro{\LetraNumTotal}{\macrooptcolor|\LetraNumTotal|\marg{tipo de letra}} % % Para la tipografía del total general (la celda con el número del total final), utilizamos este comando. % -% \DescribeMacro{\LetraTitEnc}{\color{RoyalBlue}|\LetraTitEnc|\marg{tipo de letra}} +% \DescribeMacro{\LetraTitEnc}{\macrooptcolor|\LetraTitEnc|\marg{tipo de letra}} % % Con este comando cambiamos el tipo de letra de la información en el título de las cajas del encabezado de la factura, por ejemplo los textos: “Resumen” y “Datos del cliente”. % -% \DescribeMacro{\LetraEncFactura}{\color{RoyalBlue}|\LetraEncFactura|\marg{tipo de letra}} +% \DescribeMacro{\LetraEncFactura}{\macrooptcolor|\LetraEncFactura|\marg{tipo de letra}} % % Podemos también cambiar el tipo de letra de la información del encabezado de la factura, es decir, el tipo de letra del texto que escribe el usuario en el resumen o de toda la identificación del cliente en la factura. El resumen naturalmente acepta más cambios de tipografía escribiéndolos dentro del párrafo que se escribe con el comando |\Resumen|. % -% \DescribeMacro{\LetraEncReporte}{\color{RoyalBlue}|\LetraEncReporte|\marg{tipo de letra}} +% \DescribeMacro{\LetraEncReporte}{\macrooptcolor|\LetraEncReporte|\marg{tipo de letra}} % % Para cambiar la tipografía de la información del encabezado del reporte usamos |\LetraEncReporte|. % -% \DescribeMacro{\LetraNotaPrevia}{\color{RoyalBlue}|\LetraNotaPrevia|\marg{tipo de letra}} +% \DescribeMacro{\LetraNotaPrevia}{\macrooptcolor|\LetraNotaPrevia|\marg{tipo de letra}} % % Con |\LetraNotaPrevia| podemos cambiar la tipografía con la que se escribe la -opcional- nota previa al cuadro de la factura. % -% \DescribeMacro{\LetraNotaInterna}{\color{RoyalBlue}|\LetraNotaInterna|\marg{tipo de letra}} +% \DescribeMacro{\LetraNotaInterna}{\macrooptcolor|\LetraNotaInterna|\marg{tipo de letra}} % % Con |\LetraNotaInterna| cambiamos el formato de la nota opcional que aparece como coletilla de la factura (nota interna). % -% \DescribeMacro{\LetraNotaExterna}{\color{RoyalBlue}|\LetraNotaExterna|\marg{tipo de letra}} +% \DescribeMacro{\LetraNotaExterna}{\macrooptcolor|\LetraNotaExterna|\marg{tipo de letra}} % % También podemos cambiar la tipografía de la nota externa a la factura, es decir, la -opcional- nota que va al terminar el cuadro de la factura antes de la -opcional también- descripción larga. % -% \DescribeMacro{\LetraDescripcion}{\color{RoyalBlue}|\LetraDescripcion|\marg{tipo de letra}} +% \DescribeMacro{\LetraDescripcion}{\macrooptcolor|\LetraDescripcion|\marg{tipo de letra}} % % Con este comando cambiamos la tipografía de la descripción larga; naturalmente cualquier cambio puede hacerse luego dentro del texto de la descripción, igual que con el resumen. % -% \DescribeMacro{\LetraFirmas}{\color{RoyalBlue}|\LetraFirmas|\marg{tipo de letra}} +% \DescribeMacro{\LetraFirmas}{\macrooptcolor|\LetraFirmas|\marg{tipo de letra}} % % Con |\LetraFirmas| podemos cambiar la letra usada para escribir el nombre debajo de la línea para firmar en la factura. % -% \DescribeMacro{\LetraCondiciones}{\color{RoyalBlue}|\LetraCondiciones|\marg{tipo de letra}} +% \DescribeMacro{\LetraNotaFinal}{\macrooptcolor|\LetraNotaFinal|\marg{tipo de letra}} % -% Para cambiar la tipografía de las condiciones del documento se hace con este comando. (Aplica el mismo comentario que para la descripción y el resumen). +% Para cambiar la tipografía de la nota final se hace con este comando. (Aplica el mismo comentario que para la descripción y el resumen). % -% \DescribeMacro{\LetraDenom}{\color{RoyalBlue}|\LetraDenom|\marg{tipo de letra}} +% \DescribeMacro{\LetraDenom}{\macrooptcolor|\LetraDenom|\marg{tipo de letra}} % % La tipografía asociada a la denominación del documento, es decir, al lado del número (e.g. “FACTURA” o “COTIZACIÓN”), y la asociada al texto “No. CONTROL” se cambia con |\LetraDenom|. % -% \DescribeMacro{\LetraNumeracion}{\color{RoyalBlue}|\LetraNumeracion|\marg{tipo de letra}} +% \DescribeMacro{\LetraNumeracion}{\macrooptcolor|\LetraNumeracion|\marg{tipo de letra}} % % Con |\LetraNumeracion| cambiamos la tipografía de las numeraciones como la del número de la factura y el número de control. % -% \DescribeMacro{\LetraFecha}{\color{RoyalBlue}|\LetraFecha|\marg{tipo de letra}} +% \DescribeMacro{\LetraFecha}{\macrooptcolor|\LetraFecha|\marg{tipo de letra}} % % La tipografía para la fecha de emisión y la fecha de vencimiento la podemos cambiar con este comando. % -% \DescribeMacro{\LetraTitReporte}{\color{RoyalBlue}|\LetraTitReporte|\marg{tipo de letra}} +% \DescribeMacro{\LetraTitReporte}{\macrooptcolor|\LetraTitReporte|\marg{tipo de letra}} % % La letra del título que aparece al principio del reporte se puede cambiar con |\LetraTitReporte|. % -% \DescribeMacro{\LetraInfoPagina}{\color{RoyalBlue}|\LetraInfoPagina|\marg{tipo de letra}} +% \DescribeMacro{\LetraInfoPagina}{\macrooptcolor|\LetraInfoPagina|\marg{tipo de letra}} % % Las cabeceras o pies de página del reporte también tienen un comando para su tipo de letra, y es |\LetraInfoPagina|. % -% \DescribeMacro{\LetraReverso}{\color{RoyalBlue}|\LetraReverso|\marg{tipo de letra}} +% \DescribeMacro{\LetraReverso}{\macrooptcolor|\LetraReverso|\marg{tipo de letra}} % % Con |\LetraReverso| cambiamos la tipografía de la información que escribamos en el reverso de la hoja de la factura. % -% \DescribeMacro{\LetraReporte}{\color{RoyalBlue}|\LetraReporte|\marg{tipo de letra}} +% \DescribeMacro{\LetraReporte}{\macrooptcolor|\LetraReporte|\marg{tipo de letra}} % % Finalmente, para cambiar la tipografía con la que se inicia el reporte tenemos este comando. Obviamente también luego se puede hacer cualquier cambio dentro del ambiente |reporte|. % @@ -1623,37 +1658,39 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % % Esta clase |factura| soporta agregar etiquetas a cada elemento de la factura que luego en el reporte o en casi cualquier otra parte queramos referenciar; {\slshape no se pueden referenciar etiquetas solamente en la nota previa ni en el resumen.} % -% \noindent \DescribeMacro{\label}{\color{RoyalBlue}|\label|\marg{etiqueta}} +% \noindent \DescribeMacro{\label}{\macrooptcolor|\label|\marg{etiqueta}} % % Para ello usamos la conocida macro |\label| de \LaTeX{} justamente después del ítem que nos interese luego referenciar, por ejemplo (usando descuentos individuales): % % \iffalse %<*literal> % \fi +{\VERBATIM \begin{verbatim} -\begin{factura} - \Item{1}{Artículo gravado con IVA general}{1000} - \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} + \begin{factura} + \Item{1}{Artículo gravado con IVA general}{1000} + \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 %</literal> % \fi % % De esta forma creamos una etiqueta llamada “el-otro” para el segundo elemento, que luego podremos citar por ejemplo en la descripción larga o en el reporte con comandos similares a los que \LaTeX{} provee para referenciar etiquetas. % -% \noindent \DescribeMacro{\itemref}{\color{RoyalBlue}|\itemref|\marg{etiqueta}}\\ -% \noindent \DescribeMacro{\cantref}{\color{RoyalBlue}|\cantref|\marg{etiqueta}}\\ -% \noindent \DescribeMacro{\descref}{\color{RoyalBlue}|\descref|\marg{etiqueta}}\\ -% \noindent \DescribeMacro{\puref}{\color{RoyalBlue}|\puref|\marg{etiqueta}}\\ -% \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}}\\ -% \noindent \DescribeMacro{\ldescref}{\color{RoyalBlue}|\ldescref|\marg{etiqueta}}\par +% \noindent \DescribeMacro{\itemref}{\macrooptcolor|\itemref|\marg{etiqueta}}\\ +% \noindent \DescribeMacro{\cantref}{\macrooptcolor|\cantref|\marg{etiqueta}}\\ +% \noindent \DescribeMacro{\descref}{\macrooptcolor|\descref|\marg{etiqueta}}\\ +% \noindent \DescribeMacro{\puref}{\macrooptcolor|\puref|\marg{etiqueta}}\\ +% \noindent \DescribeMacro{\subtref}{\macrooptcolor|\subtref|\marg{etiqueta}}\\ +% \noindent \DescribeMacro{\dctoref}{\macrooptcolor|\dctoref|\marg{etiqueta}}\\ +% \noindent \DescribeMacro{\ivaref}{\macrooptcolor|\ivaref|\marg{etiqueta}}\\ +% \noindent \DescribeMacro{\ptref}{\macrooptcolor|\ptref|\marg{etiqueta}}\\ +% \noindent \DescribeMacro{\ldescref}{\macrooptcolor|\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\%. % @@ -1668,7 +1705,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % % \section{Referenciar los valores establecidos en el preámbulo y los totales\label{sec:ref}} % -% En el preámbulo el usuario definió distintas macros, es decir, estableció la razón social del cliente, el R.I.F. y la dirección, entre otras cosas. Cualquiera de esas definiciones hechas en el preámbulo puede usarse luego en otra parte del documento con el mismo comando que se usó para su definición. Lo anterior significa que tenemos las siguientes macros posibles para usar dentro del cuerpo del documento (factura, reporte o reverso): |\Moneda|, |\RazonSocial|, |\RIF|, |\Direccion|, |\Telefono|, |\Email|, |\Contacto|, |\Emisor|, |\Conforme|, |\Proveedor|, |\Fecha|, |\FechaVencimiento|\footnote{La fecha de vencimiento no se establece en el preámbulo explícitamente sino a través de \cs{Credito} pero la clase dispone de esta interfaz para acceder a ella así como también con la interfaz dada por \texttt{datetime2}.}, |\Credito|, |\Num|, |\NumControl|, |\NumSerieControl|, |\Condiciones|, |\Resumen|, |\NotaPrevia|, |\NotaInterna|, |\NotaExterna|, |\TituloReporte|. +% En el preámbulo el usuario definió distintas macros, es decir, estableció la razón social del cliente, el R.I.F. y la dirección, entre otras cosas. Cualquiera de esas definiciones hechas en el preámbulo puede usarse luego en otra parte del documento con el mismo comando que se usó para su definición. Lo anterior significa que tenemos las siguientes macros posibles para usar dentro del cuerpo del documento (factura, reporte o reverso): |\Moneda|, |\RazonSocial|, |\RIF|, |\Direccion|, |\Telefono|, |\Email|, |\Contacto|, |\Emisor|, |\Conforme|, |\Proveedor|, |\Fecha|, |\FechaVencimiento|\footnote{La fecha de vencimiento no se establece en el preámbulo explícitamente sino a través de \cs{Credito} pero la clase dispone de esta interfaz para acceder a ella así como también con la interfaz dada por \texttt{datetime2}.}, |\Credito|, |\Num|, |\NumControl|, |\NumSerieControl|, |\Resumen|, |\NotaPrevia|, |\NotaInterna|, |\NotaExterna|, |\NotaFinal|, |\TituloReporte|. % % Esas macros, en el preámbulo funcionan para definir valores y textos, pero si ya no estamos en el preámbulos sino dentro del cuerpo del documento y escribimos una de esas macros\footnote{Dentro del cuerpo del documento estas macros obviamente no aceptan argumentos.}, lo que nos va a escribir será lo que está definido bajo esa macro, así sea con macros que no llegamos a utilizar explícitamente pero que tienen un valor predefinido como |\Moneda|. % @@ -1695,22 +1732,68 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % % \section{Más personalizaciones} % +% \DescribeMacro{\@BeforeEndPreamble} +% La clase provee de un “gancho” llamado \cs{BeforeEndPreamble}. Lo que allí se agregue (es acumulativo, se puede ejecutar mas de una vez) será ejecutado por la clase |factura| luego de que hayan sido evaluadas las opciones de la clase y tomadas todas las decisiones en cuanto a opciones que impliquen otras opciones o que sean incompatibles con otras opciones; una vez que todas esas decisiones fueron tomadas y todo queda establecido, se ejecuta \cs{BeforeEndPreamble}, esto con el propósito de que el usuario pueda personalizar más el comportamiento de sus archivos |.tex|. Por ejemplo si el usuario hace lo siguiente, no funcionará: +% +% \iffalse +%<*literal> +% \fi +{\VERBATIM +\begin{verbatim} + \documentclass[cotizacion]{factura} + [...] + \ifcotizacion\FondoFactura{Fondo}\fi + \begin{document} + \begin{factura} + [...] + \end{factura} + \end{document} +\end{verbatim} +} +% \iffalse +%</literal> +% \fi +% +% No funcionará porque el condicional \cs{ifcotizacion} aún no se ha establecido (eso lo hace la clase con el gancho \cs{AtEndPreamble} de |etoolbox| luego de que todo el preámbulo haya sido analizado), por lo que se evaluará como falso; tendría el usuario que agregarlo dentro de un gancho \cs{AtEndPreamble} pero tampoco funcionará del todo, para eso esta clase provee del gancho \cs{BeforeEndPreamble}, y se escribiría este ejemplo así: +% +% \iffalse +%<*literal> +% \fi +{\VERBATIM +\begin{verbatim} + \documentclass[cotizacion]{factura} + [...] + \BeforeEndPreamble{\ifcotizacion\FondoFactura{Fondo}\fi} + \begin{document} + \begin{factura} + [...] + \end{factura} + \end{document} +\end{verbatim} +} +% \iffalse +%</literal> +% \fi +% +% De esta forma, el condicional se evaluará después de que se hayan establecido todas las opciones (en este caso, |cotizacion|) y el usuario podrá inclusive apagar opciones y encenderlas nuevamente usando los condicionales (como se explicó en la subsección \ref{subsec:condicionales} porque después de ejecutar este gancho, automáticamente se volverán a evaluar las opciones y a tomar todas las decisiones de implicaciones y compatibilidades. +% +% \newpage % \DescribeMacro{\@PosicionaFechas} % \DescribeMacro{\@PosicionaDenom} % \DescribeMacro{\@PosicionaNumControl} -% \DescribeMacro{\@PosicionaCondiciones} +% \DescribeMacro{\@PosicionaNotaFinal} % \DescribeMacro{\@PosicionaFirmas} % \DescribeMacro{\@EscribeDatos} % \DescribeMacro{\@EscribeDatosResumen} % \DescribeMacro{\@EscribeDatosReporte} -% \DescribeMacro{\@EscribeCondiciones} +% \DescribeMacro{\@EscribeNotaFinal} % \DescribeMacro{\@EscribeNotaPrevia} % \DescribeMacro{\@DibujaLinea} % \DescribeMacro{\@EscribeItemsEnCSV} % \DescribeMacro{\@EscribeTotalesEnCSV} % \DescribeMacro{\@EncabezadoFactura} % \DescribeMacro{\@EncabezadoReporte} -% Es posible darle aspecto distinto a muchas de las partes que conforman la factura. Internamente en la clase, cada parte es ubicada en la hoja con un comando y su contenido es escrito en el papel con otro comando. Los comandos que más probablemente son sujetos a ser cambiados por el usuario son los comandos que escriben el texto más que aquellos que lo ubican en la hoja, por tal razón, los comandos que posicionan aquello que va a escribirse lo definimos dentro del archivo |.cls|, y los que propiamente escriben cada parte de la hoja están definidos en el |.def|. Ambas fuentes las podrán consultar los usuarios para mayor comprensión, y para la total personalización. Recomendamos empezar por el archivo de definiciones |factura.def|. +% También es posible darle aspecto distinto a muchas de las partes que conforman la factura. Internamente en la clase, cada parte es ubicada en la hoja con un comando y su contenido es escrito en el papel con otro comando. Los comandos que más probablemente son sujetos a ser cambiados por el usuario son los comandos que escriben el texto más que aquellos que lo ubican en la hoja, por tal razón, los comandos que posicionan aquello que va a escribirse lo definimos dentro del archivo |.cls|, y los que propiamente escriben cada parte de la hoja están definidos en el |.def|. Ambas fuentes las podrán consultar los usuarios para mayor comprensión, y para la total personalización. Recomendamos empezar por el archivo de definiciones |factura.def|. % % Estas macros son internas y sirven para, como dijimos antes, que \LaTeX{} se prepare para escribir el texto en la hoja; todas empiezan con |\@Posiciona| y no debe ser común necesitar cambiarlas. % @@ -1720,21 +1803,21 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \DescribeMacro{\@EstiloDenom} % \DescribeMacro{\@EstiloNumControl} % \DescribeMacro{\@EstiloNotaPrevia} -% \DescribeMacro{\@EstiloCondiciones} +% \DescribeMacro{\@EstiloNotaFinal} % \DescribeMacro{\@EstiloFirmas} % \DescribeMacro{\@DatosTIKZ} % \DescribeMacro{\@NotaPreviaTIKZ} % \DescribeMacro{\@DescripcionTIKZ} -% \DescribeMacro{\@CondicionesTIKZ} +% \DescribeMacro{\@NotaFinalTIKZ} % Estas últimas son las que están definidas dentro de |factura.def|, y que eventualmente puede desearse 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. +% 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, la nota final, 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|. +% Por último, las macros que alojan el diseño \tikz de los datos del cliente, la nota previa, la descripción larga y la nota final son |\@DatosTIKZ|, |\@NotaPreviaTIKZ|, |\@DescripcionTIKZ| y |\@NotaFinalTIKZ|; están definidas en el archivo |factura.def|. % % Cualquiera de estas macros que se quiera redefinir habría que hacerlo en el preámbulo del |.tex| y encerrándolas entre |\makeatletter| y |\makeatother| para poder redefinir una macro que contiene un símbolo “|@|”. % -% {\bfseries \itshape Finalmente, como dijimos en la sección (\ref{subsec:aux}), una vez adecuada la clase al diseño que se quiere, se podrán escribir todos los comandos que hacen estos ajustes en un} |.tex| {\itshape o} |.def| {\itshape y cargarlo con} |\input|, |\include| {\itshape o con} |\Cliente|, pudiendo discriminar por clientes dicha personalización. +% {\bfseries \itshape Finalmente, como dijimos en la sección \ref{subsec:aux}, una vez adecuada la clase al diseño que se quiere, se podrán escribir todos los comandos que hacen estos ajustes en un} |.tex| {\itshape o} |.def| {\itshape y cargarlo con} |\input|, |\include| {\itshape o con} |\Cliente|, pudiendo discriminar por clientes dicha personalización. % % % @@ -1758,7 +1841,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % descuentos & A cada artículo se le puede asignar un descuento individual. \\ % dosfirmas & Incluye los dos espacios para firmar. \\ % duc & Descripción, precio unitario, cantidad. \\ -% electro & Calcula los descuentos para el IVA al pagar electrónicamente. \\ +% electro\footnote{Ya no sirve esta opción.} & Calcula los descuentos para el IVA para pagos por medios electrónicos. \\ % expandecuadro & Llena con espacio extra el cuadro de la factura. \\ % filas & Escribe los totales en filas. \\ % G & Agrega una “|G|” en los ítems con IVA general. \\ @@ -1784,6 +1867,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % 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. \\ +% sinmonedatotales & Quita el signo monetario de las totalizaciones. \\ % sinnumero & No pone el número cuando se usa |denom|. \\ % sintotales & No escribe los totales al final del cuadro; para cotizaciones. \\ % sinreverso & No compila el reverso de la factura así se haya escrito. \\ @@ -1806,7 +1890,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % |\cantref| & Muestra la cantidad del ítem referenciado. \\ % |\CI| & Cédula de identidad del cliente. \\ % |\Cliente| & Carga un archivo |.def| o |.tex| con personalizaciones. \\ -% |\Condiciones| & Establece las condiciones del documento. \\ +% |\NotaFinal| & Establece la nota final. \\ % |\Conforme| & Nombre de quien recibe la factura, para el espacio de la firma. \\ % |\Contacto| & Persona de contacto. \\ % |\Credito| & Establece la cantidad de días para el crédito de la factura. \\ @@ -1843,7 +1927,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \newpage % \noindent \begin{tabular}{>{\ttfamily}ll} % \rmfamily \bfseries Comando & \bfseries Significado \\ \hline -% |\LetraCondiciones| & Tipografía para las condiciones del documento. \\ +% |\LetraNotaFinal| & Tipografía para la nota final. \\ % |\LetraDenom| & Tipografía para la denominación del documento. \\ % |\LetraDescripcion| & Tipografía para la descripción en la factura. \\ % |\LetraEncFactura| & Tipografía para la información en las cajas del encabezado. \\ @@ -1867,7 +1951,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % |\LetraTitReporte| & Tipografía para el título del reporte. \\ % |\LetraTitTotal| & Tipografía para el nombre del total final. \\ % |\LetraTitTotales| & Tipografía para los nombres de los totales. \\ -% |\LineaCondiciones| & Grosor de la línea de la caja de las condiciones, \\ +% |\LineaNotaFinal| & Grosor de la línea de la caja de la nota final, \\ % & curvatura de la esquina y sombra. \\ % |\LineaDescripcion| & Grosor de la línea de la caja de la descripción, \\ % & curvatura de la esquina y sombra. \\ @@ -1888,8 +1972,8 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % |\Num| & Número de la factura. \\ % |\NumControl| & Número de control de la factura. \\ % |\NumSerieControl| & Número de serie de control de la factura. \\ -% |\PosCondiciones| & Posición $(x,y)$ del párrafo con las condiciones del documento. \\ -% |\PosCondiciones*| & Posición $(x,y)$ del párrafo con las condiciones del documento \\ +% |\PosNotaFinal| & Posición $(x_o,x_f,y)$ del párrafo con la nota final. \\ +% |\PosNotaFinal*| & Posición $(x_o,x_f,y)$ del párrafo con la nota final \\ % & (el texto se despliega hacia arriba). \\ % |\PosControl| & Posición $(x,y)$ del número de control. \\ % |\PosControl*| & Posición $(x,y)$ del número de control \\ @@ -1907,7 +1991,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % |\RazonSocial| & Establece la razón social. \\ % |\Resumen| & Resumen. \\ % |\RIF| & R.I.F. del cliente. \\ -% |\SepCondiciones| & Separación interna entre el borde y el texto en las condiciones. \\ +% |\SepNotaFinal| & Separación interna entre el borde y el texto en la nota final. \\ % |\SepDatosResumen| & Separación horizontal entre los datos del cliente y el resumen. \\ % |\SepDescripcion| & Separación interna entre el borde y el texto en la descripción. \\ % |\SepEncabezado| & Separación interna entre el borde y el texto en el encabezado. \\ @@ -1945,9 +2029,9 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \Ejemplo{ejemplo-factura04} % \newpage % \Ejemplo{ejemplo-factura05} -% \Ejemplo{ejemplo-factura06} +% \Ejemplo{ejemplo-factura06}[\small] % \newpage -% \Ejemplo[0.4]{ejemplo-factura07}[\small\parskip=2pt] +% \Ejemplo[0.4]{ejemplo-factura07}[\small] % \Ejemplo{ejemplo-factura08} % \newpage % \Ejemplo*[0.49]{ejemplo-factura09} @@ -1976,7 +2060,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \hbadness=1000 % \restoregeometry % \else -% \message{^^JLaTeX Warning: Compilación rápida. No se incluyeron los ejemplos.^^J} +% \message{^^JLaTeX Warning: Compilacio'n ra'pida. No se incluyeron los ejemplos.^^J} % \fi % % \StopEventually{\endorgo} @@ -1986,35 +2070,36 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \RequirePackage{etoolbox}% 'etoolbox' para los condicionales binarios y para \AtEndPreamble. %% Condicionales auxiliares que sólo pueden ser usados dentro de un grupo. -\newbool{Electro} +\newbool{DCU} +\newbool{DUC} \newbool{Descuentos} +%% (quitado por no vigente) + % \newbool{Electro} +\newbool{ExpAbajo}\booltrue{ExpAbajo} \newbool{IVA} -\newbool{Subtotal} +\newbool{NumItem} +\newbool{PrimeroDescripcion} \newbool{SinCantidad} -\newbool{SinLineasVertInt} -\newbool{SinLineasVertExt} \newbool{SinLineaHoriNI} \newbool{SinLineaHoriTit} \newbool{SinLineaHoriTot} \newbool{SinLineasHoriExt} -\newbool{DCU} -\newbool{DUC} -\newbool{NumItem} -\newbool{PrimeroDescripcion} -\newbool{ExpAbajo}\booltrue{ExpAbajo} +\newbool{SinLineasVertExt} +\newbool{SinLineasVertInt} +\newbool{Subtotal} %% Condicionales auxiliares para la posición de los objetos fijos cuando son medidos desde la derecha, o desde abajo. -\newbool{FechaXnegativo} -\newbool{FechaYnegativo} -\newbool{FechaYarriba} -\newbool{CondYnegativo}% no hay CondXnegativo. -\newbool{CondYarriba} -\newbool{DenomXnegativo} -\newbool{DenomYnegativo} -\newbool{DenomYarriba} +\newbool{NotaFinalYarriba} +\newbool{NotaFinalYnegativo}% no hay NotaFinalXnegativo. \newbool{ControlXnegativo} -\newbool{ControlYnegativo} \newbool{ControlYarriba} +\newbool{ControlYnegativo} +\newbool{DenomXnegativo} +\newbool{DenomYarriba} +\newbool{DenomYnegativo} +\newbool{FechaXnegativo} +\newbool{FechaYarriba} +\newbool{FechaYnegativo} \newbool{FirmasYnegativo}% no hay FirmasXnegativo; hay X_inicial y X_final para las firmas. %% Condicionales relativos a opciones de la clase. @@ -2030,7 +2115,8 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \newif\ifdescuentos \newif\ifdosfirmas \newif\ifduc -\newif\ifelectro +%% (quitado por no vigente) + % \newif\ifelectro \newif\ifexpandecuadro \newif\iffilas \newif\ifG @@ -2055,6 +2141,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \newif\ifsinlineasve \newif\ifsinlineasvi \newif\ifsinmarcas +\newif\ifsinmonedatotales \newif\ifsinnumero \newif\ifsinreverso \newif\ifsintotales @@ -2110,16 +2197,16 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \newlength{\@GrosorLineaEncabezado} \newlength{\@GrosorLineaNotaPrevia} \newlength{\@GrosorLineaDescripcion} -\newlength{\@GrosorLineaCondiciones} +\newlength{\@GrosorLineaNotaFinal} \newlength{\@GrosorLineaInfoPag} \newlength{\@EsquinaLineaEncabezado} \newlength{\@EsquinaLineaNotaPrevia} \newlength{\@EsquinaLineaDescripcion} -\newlength{\@EsquinaLineaCondiciones} +\newlength{\@EsquinaLineaNotaFinal} \newlength{\@SombraEncabezado} \newlength{\@SombraNotaPrevia} \newlength{\@SombraDescripcion} -\newlength{\@SombraCondiciones} +\newlength{\@SombraNotaFinal} \newlength{\@LineaNodoXo} \newlength{\@LineaNodoYo} \newlength{\@LineaNodoXf} @@ -2132,18 +2219,20 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \newlength{\@PosFirmasXuno} \newlength{\@PosFirmasXdos} \newlength{\@PosFirmasY} -\newlength{\@PosCondicionesX} -\newlength{\@PosCondicionesY} +\newlength{\@PosNotaFinalXuno} +\newlength{\@PosNotaFinalXdos} +\newlength{\@PosNotaFinalY} \newlength{\@PosControlX} \newlength{\@PosControlY} \newlength{\@EspacioVacioInicial} \newlength{\@EspacioVacioFinal} +\newlength{\@EspacioSignoMonetario} \newlength{\@SeparaItemsExtra} \newlength{\@SeparaItemsExtraFinal} \newlength{\@SeparaInternaEncabezado} \newlength{\@SeparaInternaNotaPrevia} \newlength{\@SeparaInternaDescripcion} -\newlength{\@SeparaInternaCondiciones} +\newlength{\@SeparaInternaNotaFinal} \newlength{\@SeparaDatosResumen} \newlength{\@SeparaVertical} \newlength{\@SeparaMinTotales} @@ -2172,7 +2261,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \newbox{\@CajaFecha} \newbox{\@CajaDenom} \newbox{\@CajaControl} -\newbox{\@CajaCond} +\newbox{\@CajaNotaFinal} \newbox{\@CajaEspacioVacio} \newbox{\@CajaPrueba} \newbox{\@CajaCaracterCR} @@ -2202,7 +2291,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \DeclareOption{descuentos}{\descuentostrue}% Para los descuentos individuales. \DeclareOption{dosfirmas}{\dosfirmastrue}% Pone las dos firmas para firmar. \DeclareOption{duc}{\ductrue}% Descripción, luego precio unitario y luego cantidad. -\DeclareOption{electro}{\electrotrue}% Parche por el Decreto 3085 de Nikolài. +\DeclareOption{electro}{\CLASSERROR{Ya no esta' vigente el descuento en la ali'cuota general por pagos electro'nicos}}% Parche por el Decreto 3.085 de Nikolái, ya no vigente. \DeclareOption{expandecuadro}{\expandecuadrotrue}% Para rellenar con líneas en blanco de manera automática. \DeclareOption{filas}{\filastrue}% Estilo de totalización en filas. \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. @@ -2227,6 +2316,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \DeclareOption{sinlineasvi}{\sinlineasvitrue}% Estilo 'sinlineasvi'. \DeclareOption{sinlineasv}{\sinlineasvtrue}% Estilo 'sinlineasv'. \DeclareOption{sinmarcas}{\sinmarcastrue}% Para evitar que aparezcan los caracteres especiales cuando la descripción es larga. +\DeclareOption{sinmonedatotales}{\sinmonedatotalestrue}% Para que no ponga el signo monetario en los totales. \DeclareOption{sinnumero}{\sinnumerotrue}% Escribir el texto de la denominación del documento pero sin escribir el número. \DeclareOption{sinreverso}{\sinreversotrue}% Para no imprimir el reverso de la factura. \DeclareOption{sintotales}{\sintotalestrue}% No escribe los totales al final, por ejemplo para cotizaciones de productos similares. @@ -2280,24 +2370,29 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \DTMfdef{ddmmyyyy}#1#2#3#4#5#6#7#8&{\DTMs{#5#6#7#8-#3#4-#1#2}} \DTMfdef{mm-dd-yyyy}#1-#2-#3&{\DTMs{#3-#1-#2}} -%% Macros internas para el texto de la metadata que se va a escribir con la versión de la clase. -\def\@factura@ver{\expandafter\csname ver@factura.cls\endcsname} -\StrBefore*{\@factura@ver}{ }[\@factura@fecha] -\StrBetween*[1,2]{\@factura@ver}{ }{ }[\@factura@vernum] -\def\@factura@version{Hecho con la clase factura-\@factura@vernum\ (\@factura@fecha)} +%% Macros internas para el texto de la metadata que se va a escribir con el número de la versión de la clase. +\edef\@factura@ver{\expandafter\csname ver@factura.cls\endcsname} +\ExplSyntaxOn + \seq_set_split:NnV \l_tmpa_seq {~} {\@factura@ver} + \tl_set:Nx \@factura@vernum {\seq_item:Nn \l_tmpa_seq {2}} + + \seq_set_split:NnV \l_tmpa_seq {~} {\@factura@ver} + \tl_set:Nx \@factura@fecha {\seq_item:Nn \l_tmpa_seq {1}} +\ExplSyntaxOff +\def\@factura@ver{Hecho con la clase factura-\@factura@vernum\ (\@factura@fecha)} %% Escribimos la versión de la clase en la metadata del PDF. \ifxetex - \special{pdf: docinfo << /Subject (\@factura@version) >>} + \special{pdf: docinfo << /Subject (\@factura@ver) >>} \else \ifluatex - \pdfextension info{/Subject (\@factura@version)} + \pdfextension info{/Subject (\@factura@ver)} \else - \pdfinfo{/Subject (\@factura@version)} + \pdfinfo{/Subject (\@factura@ver)} \fi \fi -\AtEndPreamble{ +\def\@EstableceOpciones{% % Establecemos los parámetros y macros relativas a la fecha. \DTMsetstyle{\@FormatoFecha}\DTMsetup{datesep=\@FechaSeparadores}\gdef\DTMinformat{\@FormatoFechaEntrada} @@ -2419,16 +2514,17 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \fi \fi - \ifelectro - \booltrue{Electro} - \gdef\@NotaInterna{\@TextoDescuentoPresidencial} - \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 opcio'n 'electro' no es compatible con la opcio'n 'filas'. Sin efecto la opcio'n 'filas'} - \fi - \fi +%% (quitado por no vigente) + % \ifelectro + % \boolfalse{Electro} + % \electrofalse + % \gdef\@NotaInterna{\@TextoDescuentoPresidencial} + % \CLASSWARNING{Se establecio' el texto aclaratorio del descuento presidencial como 'nota interna'} + % \iffilas + % \filasfalse + % \CLASSWARNING{La opcio'n 'electro' no es compatible con la opcio'n 'filas'. Sin efecto la opcio'n 'filas'} + % \fi + % \fi \iftodosiva \@BIRtrue \@BIAtrue \@Exentotrue \Gtrue \fi \ifsiniva\AtBeginDocument{\gdef\@ImpuestoG{0}\gdef\@ImpuestoR{0}\gdef\@ImpuestoA{0}}\fi @@ -2496,7 +2592,16 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \@twosidetrue\@mparswitchtrue \else \@twosidefalse\@mparswitchfalse - \fi + \fi} + +\NewDocumentCommand{\BeforeEndPreamble}{s s +m}{ + \IfBooleanTF{#2} + {\gpreto{\@BeforeEndPreamble}{#3}} + {\IfBooleanTF{#1}{\long\gdef\@BeforeEndPreamble{#3}}{\gappto{\@BeforeEndPreamble}{#3}}}} + +\AtEndPreamble{ + \@EstableceOpciones + \ifx\@undefined\@BeforeEndPreamble\else\@BeforeEndPreamble\@EstableceOpciones\fi % Escribimos en el .log las opciones cargadas: \ifagrupado \CLASSINFO{Opcio'n cargada: agrupado}\fi @@ -2511,7 +2616,8 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \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 + %% (quitado por no vigente) + % \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 @@ -2536,6 +2642,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \ifsinlineasve \CLASSINFO{Opcio'n cargada: sinlineasve}\fi \ifsinlineasvi \CLASSINFO{Opcio'n cargada: sinlineasvi}\fi \ifsinmarcas \CLASSINFO{Opcio'n cargada: sinmarcas}\fi + \ifsinmonedatotales \CLASSINFO{Opcio'n cargada: sinmonedatotales}\fi \ifsinnumero \CLASSINFO{Opcio'n cargada: sinnumero}\fi \ifsinreverso \CLASSINFO{Opcio'n cargada: sinreverso}\fi \ifsintotales \CLASSINFO{Opcio'n cargada: sintotales}\fi @@ -2561,7 +2668,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %% La geometría para la factura, su reverso, y el reporte. %% Para la factura, el margen superior está definido desde el encabezado con los datos del cliente; %% el margen inferior está definido hasta el final de la descripción (o del cuadro de la factura si no hay descripción). -%% Hay elementos que salen fuera de estos márgenes, como las firmas, las condiciones del documento, la numeración y la fecha. +%% Hay elementos que salen fuera de estos márgenes, como las firmas, la nota final, la numeración y la fecha. %<class>\def\GeometriaFactura#1{\gdef\@GeometriaFactura{#1}} %<class>\def\GeometriaReverso#1{\gdef\@GeometriaReverso{#1}} %<class>\def\GeometriaReporte#1{\gdef\@GeometriaReporte{#1}} @@ -2573,11 +2680,12 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<class>\def\@ImpuestoG{\@AlicuotaG} %<class>\def\@ImpuestoR{\@AlicuotaR} %<class>\def\@ImpuestoA{\@AlicuotaA} -%<def>%% Factores para los distintos IVA y el límite para el descuento: -%<def>\def\@AlicuotaG{0.12} -%<def>\def\@AlicuotaGDescBajo{0.03} -%<def>\def\@AlicuotaGDescAlto{0.05} -%<def>\def\@AlicuotaGDescLimite{2000000} +%<def>%% Factores para los distintos IVA: +%<def>\def\@AlicuotaG{0.16} +%<def>%% (quitado por no vigente) +%<def> % \def\@AlicuotaGDescBajo{0.03} +%<def> % \def\@AlicuotaGDescAlto{0.05} +%<def> % \def\@AlicuotaGDescLimite{2000000} %<def>\def\@AlicuotaR{0.08} %<def>\def\@AlicuotaA{0.27} %<def> @@ -2594,13 +2702,17 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \def\@FechaSeparadores{-} %% La moneda: -\def\@MonedaBs{Bs.} -\def\@MonedaBsS{Bs.S} -\def\@MonedaBsF{Bs.F} - +\def\@Moneda{Bs.} +%% (quitado por no vigente) + % \def\@MonedaBs{Bs.} + % \def\@MonedaBsS{Bs.S} + % \def\@MonedaBsF{Bs.F} +\setlength\@EspacioSignoMonetario{.666ex} + +%% (quitado por no vigente) %% Las fechas de la entrada de la reconversión monetaria: -\DTMsavedate{FechaBsS}{2018-08-20} -\DTMsavedate{FechaBs}{2019-01-01} + % \DTMsavedate{FechaBsS}{2018-08-20} + % \DTMsavedate{FechaBs}{2019-02-15} %% Al lado de cada ítem va la letra que designa el gravamen que aplica sobre él: \def\@DenomAlicuotaG{G} @@ -2608,8 +2720,9 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \def\@DenomAlicuotaA{A} \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 3.085 en Gaceta Oficial 41.239.} +%% (quitado por no vigente) +%% 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 3.085 en Gaceta Oficial 41.239.} %% Macros que guardan textos que corresponden a nombres de campos: \def\@@Fecha{Fecha de emisi\'on:} @@ -2642,7 +2755,8 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \def\@@IVA{IVA} \def\@@PrecioT{Precio T.} \def\@@AlicuotaG{IVA G} -\def\@@AlicuotaGDesc{Descuento IVA G} +%% (quitado por no vigente) + % \def\@@AlicuotaGDesc{Descuento IVA G} \def\@@AlicuotaR{IVA R} \def\@@AlicuotaA{IVA A} \def\@@BIG{BI G} @@ -2704,6 +2818,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \def\@DescuentoRnum{0} \def\@DescuentoAnum{0} \def\@DescuentoEnum{0} +\FPset\PrecioUtempx{1} %% \Fecha, \FormatoFecha, \Credito, \Moneda, \RazonSocial, \Nombre, \RIF, \CI, \Contacto, \Dirección, \Telefono, \Email, \Conforme, \Emisor, \Proveedor. \NewDocumentCommand{\Fecha}{s m g g}{% @@ -2764,8 +2879,12 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %% Información de página: cabeceras de páginas o pies de página. \def\InfoPagina#1{\gdef\@InfoPagina{#1}} -%% Texto que esclarece las condiciones del documento. -\NewDocumentCommand{\Condiciones}{+m}{\gdef\@Condiciones{#1}} +%% Texto para la nota final. +\NewDocumentCommand{\NotaFinal}{+m}{\gdef\@NotaFinal{#1}} +\NewDocumentCommand{\Condiciones}{+m}{\gdef\@NotaFinal{#1}\@ClassWarningCondiciones} + +%% Advertencia para la migración de cualquier comando para condiciones a nota final. +\def\@ClassWarningCondiciones{\CLASSWARNING{Ya no son condiciones sino nota final, debe hacerse la migración a los nuevos comandos}} %% Resumen opcional que va a la derecha de los datos del cliente. \NewDocumentCommand{\Resumen}{+m}{\gdef\@Resumen{#1}} @@ -2790,26 +2909,27 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \CLASSWARNING{Fecha del documento \@Fecha\space distinta de la fecha de hoy}% \fi +%% (quitado por no vigente) % Establecemos el signo monetario dependiendo de la fecha de emisión de la factura, para efectos de la Reconversión Monetaria: - \ifx\@undefined\@Moneda - \DTMsaveddatediff{FechaEmision}{FechaBsS}{\AuxFecha}% - \ifnum\AuxFecha<0% - \Moneda{\@MonedaBs}% - \LetraNotaInterna{\fontsize{14}{18}}% - \NotaInterna{\FPupn\TotalBsS{\Total{} 100000 div \@DigitosMoneda{} round}Según Decreto Presidencial 3.548, 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}% - \else - \DTMsaveddatediff{FechaEmision}{FechaBs}{\AuxFecha}% - \ifnum\AuxFecha>-1% - \Moneda{\@MonedaBs}% - \else - \Moneda{\@MonedaBsS}% - \LetraNotaInterna{\fontsize{14}{18}}% - \NotaInterna{\FPupn\TotalBsF{\Total{} 100000 * \@DigitosMoneda{} round}El total en Bolívares Fuertes es de {\bfseries \@MonedaBsF~\numprint{\TotalBsF}}}% - \CLASSWARNING{Se establecio' el texto aclaratorio sobre el total en Boli'vares Fuertes como una nota interna}% - \fi - \fi - \fi + % \ifx\@undefined\@Moneda + % \DTMsaveddatediff{FechaEmision}{FechaBsS}{\AuxFecha}% + % \ifnum\AuxFecha<0% + % \Moneda{\@MonedaBs}% + % \LetraNotaInterna{\fontsize{14}{18}}% + % \NotaInterna{\FPupn\TotalBsS{\Total{} 100000 div \@DigitosMoneda{} round}Según Decreto Presidencial 3.548, 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}% + % \else + % \DTMsaveddatediff{FechaEmision}{FechaBs}{\AuxFecha}% + % \ifnum\AuxFecha>-1% + % \Moneda{\@MonedaBs}% + % \else + % \Moneda{\@MonedaBsS}% + % \LetraNotaInterna{\fontsize{14}{18}}% + % \NotaInterna{\FPupn\TotalBsF{\Total{} 100000 * \@DigitosMoneda{} round}El total en Bolívares Fuertes es de {\bfseries \@MonedaBsF~\numprint{\TotalBsF}}}% + % \CLASSWARNING{Se establecio' el texto aclaratorio sobre el total en Boli'vares Fuertes como una nota interna}% + % \fi + % \fi + % \fi % Efectuamos distintos chequeos para dar errores o advertencias si faltó algo. \ifdefvoid{\@RazonSocial}{\CLASSERROR{Hay que definir la razo'n social}}{}% @@ -2827,7 +2947,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \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}}{}% + \ifdefvoid{\@NotaFinal}{\CLASSWARNING{Pudiera definirse una nota final}}{}% \ifcotizacion \ifdefvoid{\@FondoFactura}{\CLASSWARNING{En la opcio'n para cotizacion se recomienda agregar el fondo}}{}% \fi @@ -2891,7 +3011,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \def\Num{\@Num}% \def\NumSerieControl{\@NumSerieControl}% \def\NumControl{\@NumControl}% - \def\Condiciones{\@Condiciones}% + \def\NotaFinal{\@NotaFinal}% \def\Resumen{\@Resumen}% \def\NotaPrevia{\@NotaPrevia}% \def\NotaInterna{\@NotaInterna}% @@ -2900,61 +3020,55 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %</class> %<*class|def> -%% Posiciones (X,Y) de los objetos: i) fecha, ii) denominación, iii) condiciones, iv) número de control, v) firmas. +%% Posiciones (X,Y) de los objetos: i) fecha, ii) denominación, iii) nota final, iv) número de control, v) firmas. %<*class> \NewDocumentCommand{\PosFecha}{s m m}{ + \setlength{\@PosFechaX}{#2} + \setlength{\@PosFechaY}{#3} \IfBooleanTF{#1}{\booltrue{FechaYarriba}}{\boolfalse{FechaYarriba}} - \IfBeginWith{#2}{-} - {\StrBehind{#2}{-}[\templeng]\setlength{\@PosFechaX}{-\templeng}\booltrue{FechaXnegativo}} - {\boolfalse{FechaXnegativo}\setlength{\@PosFechaX}{#2}} - \IfBeginWith{#3}{-} - {\StrBehind{#3}{-}[\templeng]\setlength{\@PosFechaY}{-\templeng}\booltrue{FechaYnegativo}} - {\boolfalse{FechaYnegativo}\setlength{\@PosFechaY}{#3}}} + \IfBeginWith{#2}{-}{\booltrue{FechaXnegativo}}{\boolfalse{FechaXnegativo}} + \IfBeginWith{#3}{-}{\booltrue{FechaYnegativo}}{\boolfalse{FechaYnegativo}}} %</class> %<def>\PosFecha*{-0cm}{5cm} %<*class> \NewDocumentCommand{\PosDenom}{s m m}{ + \setlength{\@PosDenomX}{#2} + \setlength{\@PosDenomY}{#3} \IfBooleanTF{#1}{\booltrue{DenomYarriba}}{\boolfalse{DenomYarriba}} - \IfBeginWith{#2}{-} - {\StrBehind{#2}{-}[\templeng]\setlength{\@PosDenomX}{-\templeng}\booltrue{DenomXnegativo}} - {\boolfalse{DenomXnegativo}\setlength{\@PosDenomX}{#2}} - \IfBeginWith{#3}{-} - {\StrBehind{#3}{-}[\templeng]\setlength{\@PosDenomY}{-\templeng}\booltrue{DenomYnegativo}} - {\boolfalse{DenomYnegativo}\setlength{\@PosDenomY}{#3}}} + \IfBeginWith{#2}{-}{\booltrue{DenomXnegativo}}{\boolfalse{DenomXnegativo}} + \IfBeginWith{#3}{-}{\booltrue{DenomYnegativo}}{\boolfalse{DenomYnegativo}}} %</class> %<def>\PosDenom*{0cm}{5cm} %<*class> \NewDocumentCommand{\PosControl}{s m m}{ + \setlength{\@PosControlX}{#2} + \setlength{\@PosControlY}{#3} \IfBooleanTF{#1}{\booltrue{ControlYarriba}}{\boolfalse{ControlYarriba}} - \IfBeginWith{#2}{-} - {\StrBehind{#2}{-}[\templeng]\setlength{\@PosControlX}{-\templeng}\booltrue{ControlXnegativo}} - {\boolfalse{ControlXnegativo}\setlength{\@PosControlX}{#2}} - \IfBeginWith{#3}{-} - {\StrBehind{#3}{-}[\templeng]\setlength{\@PosControlY}{-\templeng}\booltrue{ControlYnegativo}} - {\boolfalse{ControlYnegativo}\setlength{\@PosControlY}{#3}}} + \IfBeginWith{#2}{-}{\booltrue{ControlXnegativo}}{\boolfalse{ControlXnegativo}} + \IfBeginWith{#3}{-}{\booltrue{ControlYnegativo}}{\boolfalse{ControlYnegativo}}} %</class> %<def>\PosControl*{0cm}{-2.4cm} %<*class> -\NewDocumentCommand{\PosCondiciones}{s m m}{ - \IfBooleanTF{#1}{\booltrue{CondYarriba}}{\boolfalse{CondYarriba}} - \setlength{\@PosCondicionesX}{#2}% - \IfBeginWith{#3}{-} - {\StrBehind{#3}{-}[\templeng]\setlength{\@PosCondicionesY}{-\templeng}\booltrue{CondYnegativo}} - {\boolfalse{CondYnegativo}\setlength{\@PosCondicionesY}{#3}}} +\NewDocumentCommand{\PosNotaFinal}{s m m m}{ + \setlength{\@PosNotaFinalXuno}{#2} + \setlength{\@PosNotaFinalXdos}{#3} + \setlength{\@PosNotaFinalY}{#4} + \IfBooleanTF{#1}{\booltrue{NotaFinalYarriba}}{\boolfalse{NotaFinalYarriba}} + \IfBeginWith{#4}{-}{\booltrue{NotaFinalYnegativo}}{\boolfalse{NotaFinalYnegativo}}} +\let\PosCondiciones\PosNotaFinal %</class> -%<def>\PosCondiciones{0cm}{-5.3cm} -%% 'X' no acepta valores negativos en \PosCondiciones. +%<def>\PosNotaFinal{0cm}{0cm}{-5.3cm} +%% La nota final se define con un X_inicial, un X_final y un Y_inicial (Xo,Xf,Y) %<*class> \NewDocumentCommand{\PosFirmas}{m m m}{ \setlength{\@PosFirmasXuno}{#1} \setlength{\@PosFirmasXdos}{#2} - \IfBeginWith{#3}{-} - {\StrBehind{#3}{-}[\templeng]\setlength{\@PosFirmasY}{-\templeng}\booltrue{FirmasYnegativo}} - {\boolfalse{FirmasYnegativo}\setlength{\@PosFirmasY}{#3}}} + \setlength{\@PosFirmasY}{#3} + \IfBeginWith{#3}{-}{\booltrue{FirmasYnegativo}}{\boolfalse{FirmasYnegativo}}} %</class> %<def>\PosFirmas{5cm}{1cm}{-2.4cm} %% La firma se define con un X_inicial, un X_final y un Y_inicial (Xo,Xf,Y) @@ -2995,8 +3109,9 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<class>\def\SepDescripcion#1{\setlength{\@SeparaInternaDescripcion}{#1}} %<def>\SepDescripcion{6pt} -%<class>\def\SepCondiciones#1{\setlength{\@SeparaInternaCondiciones}{#1}} -%<def>\SepCondiciones{5pt} +%<class>\def\SepNotaFinal#1{\setlength{\@SeparaInternaNotaFinal}{#1}} +%<class>\let\SepCondiciones\SepNotaFinal +%<def>\SepNotaFinal{5pt} %% Grosor de la línea de las cajas del encabezado, curvatura de la esquina y sombra. %% (si pedimos linea de 0pt, todo queda en cero y no se abre el ambiente TikZ). @@ -3022,13 +3137,14 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<class> \IfValueT{#3}{\setlength{\@SombraDescripcion}{#3}}} %<def>\LineaDescripcion{0.4pt}{0pt}{4pt} -%% Grosor de la línea de las condiciones, curvatura de la esquina y sombra. +%% Grosor de la línea de la nota final, curvatura de la esquina y sombra. %% (si pedimos linea de 0pt, todo queda en cero y no se abre el ambiente TikZ). -%<class>\NewDocumentCommand{\LineaCondiciones}{m g g}{ -%<class> \setlength{\@GrosorLineaCondiciones}{#1} -%<class> \IfValueT{#2}{\setlength{\@EsquinaLineaCondiciones}{#2}} -%<class> \IfValueT{#3}{\setlength{\@SombraCondiciones}{#3}}} -%<def>\LineaCondiciones{0pt}{0pt}{0pt} +%<class>\NewDocumentCommand{\LineaNotaFinal}{m g g}{ +%<class> \setlength{\@GrosorLineaNotaFinal}{#1} +%<class> \IfValueT{#2}{\setlength{\@EsquinaLineaNotaFinal}{#2}} +%<class> \IfValueT{#3}{\setlength{\@SombraNotaFinal}{#3}}} +%<class>\let\LineaCondiciones\LineaNotaFinal +%<def>\LineaNotaFinal{0pt}{0pt}{0pt} %% El espacio vertical que hay que avanzar sólo en la primera página del reporte antes de empezar a escribir sobre él. Usable cuando la primera página tiene un membrete y las demás no, es decir, cuando se usa \FondoReporte y no \FondoReporte*. %<class>\def\InicioReporte#1{\setlength{\@InicioReporte}{#1}} @@ -3099,9 +3215,10 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<class>\def\LetraNotaPrevia#1{\gdef\@LetraNotaPrevia{#1\selectfont}} %<def>\LetraNotaPrevia{\fontsize{11}{12.5}} -%% Tipo de letra para las condiciones del documento. -%<class>\def\LetraCondiciones#1{\gdef\@LetraCondiciones{#1\selectfont}} -%<def>\LetraCondiciones{\fontsize{12}{12}} +%% Tipo de letra para la nota final. +%<class>\def\LetraNotaFinal#1{\gdef\@LetraNotaFinal{#1\selectfont}} +%<class>\let\LetraCondiciones\LetraNotaFinal +%<def>\LetraNotaFinal{\fontsize{12}{12}} %% Letra para la denominación del documento ('FACTURA', 'COTIZACIÓN',...). %<class>\def\LetraDenom#1{\gdef\@LetraDenom{#1\selectfont}} @@ -3397,7 +3514,8 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \if@BIR\@EscribeTotalColAlicuota{R}\fi \@EscribeTotalColAlicuota{G}% \if@BIA\@EscribeTotalColAlicuota{A}\fi - \ifbool{Electro}{\@EscribeTotalColAlicuotaGDesc}{}% + %% (quitado por no vigente) + % \ifbool{Electro}{\@EscribeTotalColAlicuotaGDesc}{}% \fi} \newcommand{\@EscribeTotalColBI}[1]{% @@ -3406,24 +3524,25 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \else \ifG\ \hfill(\csname @Alicuota#1porc\endcsname\%)\else\mbox{}\fi \fi - & \@LetraNumTotales\numprint{\csname BI#1\endcsname} \\} + & \@LetraNumTotales\@SignoMonetarioAux\numprint{\csname BI#1\endcsname} \\} \newcommand{\@EscribeTotalColAlicuota}[1]{% {\@LetraTitTotales \csname @@Alicuota#1\endcsname\ \hfill (\csname @Alicuota#1porc\endcsname\%)} - & \@LetraNumTotales\numprint{\csname Alicuota#1\endcsname} \\} + & \@LetraNumTotales\@SignoMonetarioAux\numprint{\csname Alicuota#1\endcsname} \\} -\newcommand{\@EscribeTotalColAlicuotaGDesc}{% - {\@LetraTitTotales \@@AlicuotaGDesc\ \hfill (\@AlicuotaGDescPorc\%)} - & \@LetraNumTotales\numprint{\AlicuotaGDesc} \\} +%% (quitado por no vigente) + % \newcommand{\@EscribeTotalColAlicuotaGDesc}{% + % {\@LetraTitTotales \@@AlicuotaGDesc\ \hfill (\@AlicuotaGDescPorc\%)} + % & \@LetraNumTotales\@SignoMonetarioAux\numprint{\AlicuotaGDesc} \\} \newcommand{\@EscribeTotalColSubt}[1]{% {\@LetraTitTotales \csname @@Subtotal#1\endcsname} - & \@LetraNumTotales\numprint{\csname Subt#1\endcsname} \\} + & \@LetraNumTotales\@SignoMonetarioAux\numprint{\csname Subt#1\endcsname} \\} \newcommand{\@EscribeTotalColDesc}[1]{% {\@LetraTitTotales \csname @@Descuento#1\endcsname \csname if@Desc#1num\endcsname \else \ \hfill (\csname @Descuento#1porc\endcsname\%)\fi} - & \@LetraNumTotales\numprint{\csname Desc#1\endcsname} \\} + & \@LetraNumTotales\@SignoMonetarioAux\numprint{\csname Desc#1\endcsname} \\} %% Presentación de los totales en modo filas. \newcommand{\@EscribeTotalFilasBI}[1]{% @@ -3432,14 +3551,16 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \newcommand{\@EscribeTotalFilasAlicuota}[1]{% \@EscribeTotalFilasAlicuotaizq{#1}: & \@EscribeTotalFilasAlicuotader{#1}} -\newcommand{\@EscribeTotalFilasDesc}[1]{% - \@EscribeTotalFilasDescizq{#1}: & \@EscribeTotalFilasDescder{#1}} +%% (no implementado) + % \newcommand{\@EscribeTotalFilasDesc}[1]{% + % \@EscribeTotalFilasDescizq{#1}: & \@EscribeTotalFilasDescder{#1}} \newcommand{\@EscribeTotalFilasSoloBI}[1]{% {\@LetraTitTotales\@EscribeTotalFilasBIizq{#1}:} {\@LetraNumTotales\@EscribeTotalFilasBIder{#1}}} -\newcommand{\@EscribeTotalFilasSoloDesc}[1]{% - {\@LetraTitTotales\@EscribeTotalFilasDescizq{#1}:} {\@LetraNumTotales\@EscribeTotalFilasDescder{#1}}} +%% (no implementado) + % \newcommand{\@EscribeTotalFilasSoloDesc}[1]{% + % {\@LetraTitTotales\@EscribeTotalFilasDescizq{#1}:} {\@LetraNumTotales\@EscribeTotalFilasDescder{#1}}} \newcommand{\@EscribeTotalFilasSoloAlicuota}[1]{% {\@LetraTitTotales\@EscribeTotalFilasAlicuotaizq{#1}:} {\@LetraNumTotales\@EscribeTotalFilasAlicuotader{#1}}} @@ -3456,24 +3577,25 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \fi} \newcommand{\@EscribeTotalFilasBIder}[1]{% - \@LetraNumTotales\numprint{\csname BI#1\endcsname}} + \@LetraNumTotales\@SignoMonetarioAux\numprint{\csname BI#1\endcsname}} \newcommand{\@EscribeTotalFilasAlicuotaizq}[1]{% \@LetraTitTotales\csname @@Alicuota#1\endcsname \ (\csname @Alicuota#1porc\endcsname\%)} \newcommand{\@EscribeTotalFilasAlicuotader}[1]{% - \@LetraNumTotales\numprint{\csname Alicuota#1\endcsname}} + \@LetraNumTotales\@SignoMonetarioAux\numprint{\csname Alicuota#1\endcsname}} -\newcommand{\@EscribeTotalFilasDescizq}[1]{% - \@LetraTitTotales\csname @@Descuento#1\endcsname \ (\csname @Descuento#1porc\endcsname\%)} +%% (no implementado) + % \newcommand{\@EscribeTotalFilasDescizq}[1]{% + % \@LetraTitTotales\csname @@Descuento#1\endcsname \ (\csname @Descuento#1porc\endcsname\%)} -\newcommand{\@EscribeTotalFilasDescder}[1]{% - \@LetraNumTotales\numprint{\csname Desc#1\endcsname}} + % \newcommand{\@EscribeTotalFilasDescder}[1]{% + % \@LetraNumTotales\@SignoMonetarioAux\numprint{\csname Desc#1\endcsname}} -\newcommand{\@EscribeTotalFilasAuxTotal}{\@LetraTitTotal\@@Total: & \@LetraNumTotal\numprint{\Total}} +\newcommand{\@EscribeTotalFilasAuxTotal}{\@LetraTitTotal\@@Total: & \@LetraNumTotal\@SignoMonetarioAux\numprint{\Total}} \newcommand{\@EscribeTotalFilas}[2][]{% - \begin{tabular}[b]{@{}l@{\extracolsep{1ex}}r@{}}% ¡Esta tabla tiene que abrir hacia abajo para que la separación entre las filas se + \begin{tabular}[b]{@{}l@{\extracolsep{1ex}}r@{}}% ¡Esta tabla tiene que abrir hacia abajo para que la separación entre las filas se pueda colocar con \@SeparaFilas! \csname @EscribeTotalFilasBI\endcsname{#2}% \ifx#2E% \ifx#1T% @@ -3486,6 +3608,10 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \fi \end{tabular}} +%% Comando auxiliar para escribir el signo monetario cuando aplica +\newcommand{\@SignoMonetarioAux}{% + \ifsinmonedatotales\else\@Moneda\hspace*{\@EspacioSignoMonetario}\fi} + \newcommand{\@GeneraCajasTotalesFilas}{% \if@Exento \newbox{\@CajaBIE}\newbox{\@CajaBIET}% @@ -3564,7 +3690,8 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \FPset\DescA{0}\global\let\DescA\DescA \FPset\DescX{0}\global\let\DescX\DescX \FPset\AlicuotaG{0}\global\let\AlicuotaG\AlicuotaG - \FPset\AlicuotaGDesc{0}\global\let\AlicuotaGDesc\AlicuotaGDesc + %% (quitado por no vigente) + % \FPset\AlicuotaGDesc{0}\global\let\AlicuotaGDesc\AlicuotaGDesc \FPset\AlicuotaR{0}\global\let\AlicuotaR\AlicuotaR \FPset\AlicuotaA{0}\global\let\AlicuotaA\AlicuotaA} @@ -3574,18 +3701,20 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \FPifeq\SubtR{0}\else\@CalculaTotalesII{R}\fi \FPifeq\SubtA{0}\else\@CalculaTotalesII{A}\fi \FPifeq\SubtE{0}\else\@CalculaTotalesII{E}\fi - \ifbool{Electro}{% - \FPiflt\BIG\@AlicuotaGDescLimite - \let\@AlicuotaGDesc\@AlicuotaGDescBajo - \else - \let\@AlicuotaGDesc\@AlicuotaGDescAlto - \fi - \FPupn\@AlicuotaGDescPorc{\@AlicuotaGDesc{} 100 * \@DigitosPorc{} round clip}% - \FPupn\AlicuotaGDesc{\BIG{} \@AlicuotaGDesc{} * \@DigitosMoneda{} round}% - \global\let\AlicuotaGDesc\AlicuotaGDesc - \global\let\@AlicuotaGDescPorc\@AlicuotaGDescPorc - \global\let\@AlicuotaGDesc\@AlicuotaGDesc}{}% - \FPupn\Total{\BIE{} \BIR{} + \BIG{} + \BIA{} + \AlicuotaR{} + \AlicuotaG{} + \AlicuotaA{} + \AlicuotaGDesc{} sub \@DigitosMoneda{} round}% + %% (quitado por no vigente) + % \ifbool{Electro}{% + % \FPiflt\BIG\@AlicuotaGDescLimite + % \let\@AlicuotaGDesc\@AlicuotaGDescBajo + % \else + % \let\@AlicuotaGDesc\@AlicuotaGDescAlto + % \fi + % \FPupn\@AlicuotaGDescPorc{\@AlicuotaGDesc{} 100 * \@DigitosPorc{} round clip}% + % \FPupn\AlicuotaGDesc{\BIG{} \@AlicuotaGDesc{} * \@DigitosMoneda{} round}% + % \global\let\AlicuotaGDesc\AlicuotaGDesc + % \global\let\@AlicuotaGDescPorc\@AlicuotaGDescPorc + % \global\let\@AlicuotaGDesc\@AlicuotaGDesc}{}% + \FPupn\Total{\BIE{} \BIR{} + \BIG{} + \BIA{} + \AlicuotaR{} + \AlicuotaG{} + \AlicuotaA{} + \@DigitosMoneda{} round}% + %% (quitado por no vigente) arriba se sumaba también \AlicuotaGDesc{}. \global\let\Total\Total} \newcommand{\@CalculaTotalesII}[1]{% @@ -3646,9 +3775,12 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %% 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}{% + \gdef\@PrecioUtemp##1{\FPupn\PrecioUtemp{##1 \PrecioUtempx{} * clip}}% \addtocounter{NumItem}{1}% % Calculamos. - \FPupn\PrecioU{#5 \@DigitosMoneda{} round}% + \@PrecioUtemp{#5}% + \FPupn\PrecioU{\PrecioUtemp{} \@DigitosMoneda{} round}% + \FPifeq\PrecioU{\PrecioUtemp}\else\CLASSWARNING{Se esta' introduciendo un precio con ma's de dos decimales: (#3 - \PrecioUtemp. Redondeado a \PrecioU)}{}\fi% Advertimos cuando el precio unitario tiene más de dos decimales. \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}% @@ -3820,7 +3952,6 @@ 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 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. @@ -3985,11 +4116,12 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \if@Exento \@EscribeTotalCol{E}\fi \if@BIR\@EscribeTotalCol{R}\ifsinivaexpresado\else\@EscribeTotalColAlicuota{R}\fi\fi \@EscribeTotalCol{G}\ifsinivaexpresado\else\@EscribeTotalColAlicuota{G}\fi - \ifbool{Electro}{\@EscribeTotalColAlicuotaGDesc}{}% + %% (quitado por no vigente) + % \ifbool{Electro}{\@EscribeTotalColAlicuotaGDesc}{}% \if@BIA\@EscribeTotalCol{A}\ifsinivaexpresado\else\@EscribeTotalColAlicuota{A}\fi\fi \fi \ifsinivaexpresado\else\cline{2-2}\fi - \hfill \@LetraTitTotal\@@Total & \@LetraNumTotal\numprint{\Total}\\ + \hfill \@LetraTitTotal\@@Total & \@LetraNumTotal\@SignoMonetarioAux\numprint{\Total}\\ \end{tabular}\endgroup \\ \ifdefvoid{\@NotaInterna}{}{\ifbool{SinLineaHoriNI}{}{\hline}\@ColumnasMultiColumnNotaIntAuxCmd}% @@ -4007,7 +4139,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \ifexpandecuadro\else\vfill\fi \@GeneraCajasTotalesFilas \newbox{\@CajaTotal}% - \savebox{\@CajaTotal}{{\@LetraTitTotal\@@Total}: \@LetraNumTotal\numprint{\Total}}% + \savebox{\@CajaTotal}{{\@LetraTitTotal\@@Total:} \@LetraNumTotal\@SignoMonetarioAux\numprint{\Total}}% % \ifnum \value{@IVANoGeneral}=0% \newbox{\@CajaGET}% @@ -4138,7 +4270,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \addtolength{\@PosFechaX}{\oddsidemargin+1in}% Le sumamos el margen izquierdo a las posiciones de las cosas; es importante que se haga en un \AfterEndPreamble antes de que empiecen a escribirse otras cosas en la página. \addtolength{\@PosDenomX}{\oddsidemargin+1in}% \addtolength{\@PosControlX}{\oddsidemargin+1in}% - \addtolength{\@PosCondicionesX}{\oddsidemargin+1in}% + \addtolength{\@PosNotaFinalXuno}{\oddsidemargin+1in}% \addtolength{\@PosFirmasXuno}{\oddsidemargin+1in}% \setlength{\parindent}{0pt}% \setlength{\lineskip}{0pt}% @@ -4154,7 +4286,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \ifdenom\@PosicionaDenom\fi \ifprefactura\@PosicionaNumControl\fi \ifnum\value{@Firmas}=0\else\@PosicionaFirmas\fi - \ifdefvoid{\@Condiciones}{}{\@PosicionaCondiciones}} + \ifdefvoid{\@NotaFinal}{}{\@PosicionaNotaFinal}} \iflinea % 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} @@ -4269,14 +4401,14 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \usebox{\@CajaFirmas}% \end{textblock*}} -%% Comando que coloca las condiciones del documento. -\newcommand{\@PosicionaCondiciones}{% - \savebox{\@CajaCond}{% - \parbox{\textwidth+\oddsidemargin+1in-\@PosCondicionesX}{\@EscribeCondiciones}}% - \ifbool{CondYnegativo}{\addtolength{\@PosCondicionesY}{\paperheight}}{}% - \ifbool{CondYarriba}{\addtolength{\@PosCondicionesY}{-\ht\@CajaCond-\dp\@CajaCond}}{}% Aquí la caja abre hacia abajo, a menos de que usemos \PosCondiciones* - \begin{textblock*}{\wd\@CajaCond}(\@PosCondicionesX,\@PosCondicionesY)% - \usebox{\@CajaCond}% +%% Comando que coloca la nota final. +\newcommand{\@PosicionaNotaFinal}{% + \savebox{\@CajaNotaFinal}{% + \parbox{\textwidth+\oddsidemargin+1in-\@PosNotaFinalXuno-\@PosNotaFinalXdos}{\@EscribeNotaFinal}}% + \ifbool{NotaFinalYnegativo}{\addtolength{\@PosNotaFinalY}{\paperheight}}{}% + \ifbool{NotaFinalYarriba}{\addtolength{\@PosNotaFinalY}{-\ht\@CajaNotaFinal-\dp\@CajaNotaFinal}}{}% Aquí la caja abre hacia abajo, a menos de que usemos \PosNotaFinal* + \begin{textblock*}{\wd\@CajaNotaFinal}(\@PosNotaFinalXuno,\@PosNotaFinalY)% + \usebox{\@CajaNotaFinal}% \end{textblock*}} %% Comando que coloca el número de control. @@ -4381,19 +4513,19 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \par\vspace*{\@SombraNotaPrevia}\vspace*{\@SeparaVertical}% \ifexpandecuadro\else\vfill\fi}}} -%% Comando que coloca la caja para las condiciones, con la posibilidad de TikZ. -\newcommand{\@EscribeCondiciones}{% +%% Comando que coloca la caja para la nota final, con la posibilidad de TikZ. +\newcommand{\@EscribeNotaFinal}{% {% Abrimos un nuevo grupo para que la redefinición del entorno 'tikzpicture' sea local. - \ifdim\@GrosorLineaCondiciones=0pt% - \setlength{\@SeparaInternaCondiciones}{0pt}\setlength{\@EsquinaLineaCondiciones}{0pt}\setlength{\@SombraCondiciones}{0pt}% + \ifdim\@GrosorLineaNotaFinal=0pt% + \setlength{\@SeparaInternaNotaFinal}{0pt}\setlength{\@EsquinaLineaNotaFinal}{0pt}\setlength{\@SombraNotaFinal}{0pt}% \renewenvironment{tikzpicture}{\NewDocumentCommand{\node}{o +m}{####2}}{}% \fi \begin{tikzpicture}% - \expandafter\node\expandafter[\@CondicionesTIKZ]{% - \parbox{\textwidth-\@SombraCondiciones-2\@SeparaInternaCondiciones-\@GrosorLineaCondiciones}{\@EstiloCondiciones}}% - \ifdim\@GrosorLineaCondiciones=0pt\else ;\fi + \expandafter\node\expandafter[\@NotaFinalTIKZ]{% + \parbox{\textwidth-\@PosNotaFinalXuno-\@PosNotaFinalXdos+\oddsidemargin+1in-\@SombraNotaFinal-2\@SeparaInternaNotaFinal-\@GrosorLineaNotaFinal}{\@EstiloNotaFinal}}% + \ifdim\@GrosorLineaNotaFinal=0pt\else ;\fi \end{tikzpicture}% - \par\vspace*{\@SombraCondiciones}}} + \par\vspace*{\@SombraNotaFinal}}} %% Comandos auxiliares para los datos y el resumen. %% En el caso de los datos, la versión \@DatosAux se ejecuta cuando no hay resumen, y la versión \@DatosAux* se ejecuta cuando hay resumen. @@ -4481,7 +4613,8 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \immediate\write\csv{Totales: \@@SubtotalG: \Moneda \SubtG^^JTotales: \@@DescuentoG: \Moneda \DescG}% \fi \immediate\write\csv{Totales: \@@BIG: \Moneda \BIG^^JTotales: \@@AlicuotaG: \Moneda \AlicuotaG}% - \FPifeq\AlicuotaGDesc{0}\else\immediate\write\csv{Totales: \@@AlicuotaGDesc: \Moneda \AlicuotaGDesc}\fi + %% (quitado por no vigente) + % \FPifeq\AlicuotaGDesc{0}\else\immediate\write\csv{Totales: \@@AlicuotaGDesc: \Moneda \AlicuotaGDesc}\fi \if@BIA \if@DescA \immediate\write\csv{Totales: \@@SubtotalA: \Moneda \SubtA^^JTotales: \@@DescuentoA: \Moneda \DescA}% @@ -4507,7 +4640,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %</class> %<*def> -%% Diseño hecho en TikZ para los datos del cliente, el resumen, la nota previa, la descripción y las condiciones. +%% Diseño hecho en TikZ para los datos del cliente, el resumen, la nota previa, la descripción y la nota final. \def\@DatosTIKZ{% draw=black, fill=white, inner sep=\@SeparaInternaEncabezado, line width=\@GrosorLineaEncabezado, rounded corners=\@EsquinaLineaEncabezado, copy shadow={top color=black, bottom color=black, shadow xshift=\@SombraEncabezado, shadow yshift=-\@SombraEncabezado}} @@ -4519,8 +4652,8 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \def\@DescripcionTIKZ{% draw=black, fill=white, inner sep=\@SeparaInternaDescripcion, line width=\@GrosorLineaDescripcion, rounded corners=\@EsquinaLineaDescripcion, copy shadow={top color=black, bottom color=black, shadow xshift=\@SombraDescripcion, shadow yshift=-\@SombraDescripcion}} -\def\@CondicionesTIKZ{% - draw=black, fill=white, inner sep=\@SeparaInternaCondiciones, line width=\@GrosorLineaCondiciones, rounded corners=\@EsquinaLineaCondiciones, copy shadow={top color=black, bottom color=black, shadow xshift=\@SombraCondiciones, shadow yshift=-\@SombraCondiciones}} +\def\@NotaFinalTIKZ{% + draw=black, fill=white, inner sep=\@SeparaInternaNotaFinal, line width=\@GrosorLineaNotaFinal, rounded corners=\@EsquinaLineaNotaFinal, copy shadow={top color=black, bottom color=black, shadow xshift=\@SombraNotaFinal, shadow yshift=-\@SombraNotaFinal}} %% El diseño de las distintas partes de la hoja. \newcommand{\@EstiloFirmas}{ @@ -4538,7 +4671,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \newcommand{\@EstiloNotaPrevia}{\@LetraNotaPrevia \@NotaPrevia} -\newcommand{\@EstiloCondiciones}{\@LetraCondiciones \@Condiciones} +\newcommand{\@EstiloNotaFinal}{\@LetraNotaFinal \@NotaFinal} \newcommand{\@EstiloNumControl}{% \renewcommand{\baselinestretch}{0}\selectfont @@ -4620,16 +4753,16 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<reptres>%% (soloreporte) Generamos solamente el reporte %<factcinco|factocho>%% Escribimos factura y reporte, pero sólo producimos la factura % -%<factdiez>%% Establecemos las opciones de la clase a través de comandos +%<factdiez>%% Establecemos algunas opciones de la clase a través de comandos % -%<factuno>%% Todo con los valores por omisión +%<factuno>%% Hacemos una factura básica con todo en sus valores por omisión, no ajustamos nada % %<reptres>%% (twoside) El reporte se imprime en las dos caras del papel % %<factcinco>%% (sincantidad) Cuadro de la factura sin la columna de cantidades %<factdos|factseis>%% (numitem) Con la columna para enumerar los ítems -%<factdos|factsiete>%% (descuentos) Con la columna para descuentos individuales -%<factsiete>%% (subtotal) Con la columna extra para subtotal +%<factdos|factseis>%% (descuentos) Con la columna para descuentos individuales +%<factseis>%% (subtotal) Con la columna extra para subtotal %<factcinco>%% (iva) Con la columna para el IVA % %<facttres>%% (agrupado) Agrupados los totales por tipo y no por gravamen @@ -4662,8 +4795,8 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<factsiete>%% (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 %<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 +%<factdiez>%% (sinmonedatotales) No agrega el símbolo monetario en los totales %<factocho>%% (siniva) Sin IVA -%<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 @@ -4680,9 +4813,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 % -%<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. +%<facttres>%% Sin especificar fecha para que tome la fecha 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.F dada la fecha de emisión de la factura antes de que a la moneda se le quitara el adjetivo “soberano”. % %<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 @@ -4692,7 +4825,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % %<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 (y no en porcentajes) aplicables por igual a todos los tipos de elementos existentes +%<factocho>%% (\Descuento*) Con descuentos totales en dinero neto (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) @@ -4705,8 +4838,8 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<repdos>%% (\FondoReporte*) Especificamos el fondo o membrete del reporte para todas las páginas %<reptres>%% Sin especificar fondo de reporte %<repuno>%% (\InicioReporte) Estableciendo un margen superior distinto para la primera página del reporte por presencia de membrete -%<repuno|reptres>%% (\TituloReporte) Establecemos el título del reporte sin que salga en las cabeceras -%<repdos>%% (\TituloReporte*) Establecemos el título del reporte para que salga en las cabeceras +%<repuno|reptres>%% (\TituloReporte) Establecemos el título del reporte sin que salga en las cabeceras ni pies de página +%<repdos>%% (\TituloReporte*) Establecemos el título del reporte para que salga en las cabeceras o pies de página %<reptres>%% (\InfoPagina) Personalizamos la información de la cabecera del reporte y mostramos el nombre del proveedor allí %<reptres>%% (\EstiloPagReporte) Cambiamos el estilo de página para que la información del reporte aparezca como pie de página %<cotiza>%% (\FirmaFactura) Agregando la firma escaneada en la factura, es decir, en la cotización @@ -4716,28 +4849,29 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<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|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 +%<factnueve>%% (\SepNotaFinal) Especificando la distancia desde el contorno hasta el texto de la nota final, 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 %<factdos|factsiete>%% (\LineaDescripcion) Alterando la línea de la descripción, la curvatura en la esquina y la sombra -%<factnueve>%% (\LineaCondiciones) Agregando el contorno para las condiciones que predeterminadamente está deshabilitado +%<factnueve>%% (\LineaNotaFinal) Agregando el contorno para la nota final que predeterminadamente está deshabilitado %<factsiete>%% (\LineaFirmas) Alterando la longitud de las líneas para firmar y su grosor %<factsiete>%% (\PosFecha, \PosFirmas y \PosDenom) Alterando la posición de la fecha, las firmas y de la denominación del documento +%<factnueve>%% (\PosNotaFinal) Alterando la posición de la nota final %<factcuatro|factocho>%% (\Letra***) Cambiando varias de las tipografías % -%<!factcuatro&!reptres>%% (\Condiciones) Con condiciones del documento -%<factnueve>%% Haciendo mención a las fechas y al crédito en las condiciones -%<factcuatro>%% Sin condiciones del documento +%<!factcuatro&!reptres>%% (\NotaFinal) Con nota final +%<factnueve>%% Haciendo mención a las fechas y al crédito en la nota final +%<factcuatro>%% Sin nota final %<factuno|factdos|factcinco|factocho>%% (\Resumen) Con resumen %<facttres|factcuatro|factseis|factsiete|prefac|cotiza|repuno|repdos>%% Sin resumen %<factcuatro|factnueve|factdiez>%% (\NotaPrevia) Con nota previa -%<factocho>%% (\NotaInterna) Con nota interna +%<factocho|factnueve>%% (\NotaInterna) Con nota interna %<factnueve>%% (\NotaExterna) Con nota externa % %<factdos|facttres>%% Con artículos gravados con todos los IVA -%<factseis|factsiete>%% Escribimos un ítem cuya descripción ocupa más que una línea +%<factseis|factsiete|factocho>%% Escribimos un ítem cuya descripción ocupa más que una línea %<factdos|factcuatro|factcinco>%% (\ItemX) Agregando un ítem sin precio % %<!facttres&!reptres&!beispiel>%% (\Descripcion) Con descripción larga @@ -4746,9 +4880,10 @@ 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; 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 +%<factocho|repdos|reptres>%% (\FirmaReporte) Agregando la firma escaneada en el reporte +%<factocho|repdos|reptres>%% Con \FirmaReporte, ajustando el corrimiento en “y” de la firma respecto a la línea +%<repdos|reptres>%% Con \FirmaReporte, 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>%% Con \FirmaReporte, cambiando el nombre de la persona que va a firmar %%</desc> %% %<factuno>\documentclass{factura} @@ -4762,8 +4897,8 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<reptres>twoside, %<factcinco>sincantidad, %<factdos|factseis>numitem, -%<factdos|factsiete>descuentos, -%<factsiete>subtotal, +%<factdos|factseis>descuentos, +%<factseis>subtotal, %<factcinco>iva, %<factcuatro|factcinco|factsiete>filas, %<factdiez>filas, % luego queda sin efecto con \filasfalse en el preámbulo @@ -4776,13 +4911,11 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<factcuatro>duc, %<factdos|factseis>sinlineasve, %<facttres|factcuatro>sinlineasvi, -%<factdiez>sinlineasv, %<factdos>sinlineahtot, %<factcuatro>sinlineahtit, %<factseis>sinlineashi, %<factsiete>sinlineashe, %<factnueve>sinlineahni, -%<factdiez>sinlineash, %<facttres|factcinco>conlineasha, %<factcinco|factocho>sinexpandir, %<facttres|factcuatro|prefac>expandecuadro, @@ -4792,19 +4925,21 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<factsiete>sinmarcas, %<factcinco|factseis|factsiete>todosiva, %<factnueve>G, +%<factdiez>sinmonedatotales, %<factocho>siniva, -%<factnueve>electro, +%<factnueve>% electro, %<factdos>unafirma, %<prefac|cotiza>% dosfirmas, % para poner las dos firmas. %<prefac>% unafirma, % para poner la firma del emisor. %<cotiza>% sinfirmas, % para no poner firmas. %<facttres>sinfirmas, -% factdiez lleva 'vencimiento' pero desde una opción. +%<factdiez>vencimiento, %<factocho>csv, %<factdiez>csv, % luego queda sin efecto con \csvfalse en el preámbulo %<!factuno>]{factura} -%<factdiez>\vencimientotrue \filasfalse \csvfalse +%<factdiez>% Cambiamos por aquí como condicionales las opciones de la clase; es lo mismo que arriba en \documentclass. +%<factdiez>\sinlineasvtrue \sinlineashtrue \filasfalse \csvfalse %<factdiez> \input{factura-ejemplo-aux.tex}% Se incluye para efectos del ejemplo, así tendremos disponible la macro \Ejemplo. \usepackage[utf8]{inputenc} @@ -4844,7 +4979,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<beispiel>\def\@@Conforme{der Kunde} %<beispiel>\def\@@DenomFactura{Rechnung} %<beispiel>\def\@@DenomCotiza{Voranschlag} -%<beispiel>% \LetraNumeracion{\fontsize{14}{14}\bfseries} +%<beispiel> %<beispiel>\renewcommand{\@EstiloDenom}{\@LetraDenom\@Denominacion-\ifsinnumero\else\@LetraNumeracion Nr:\space\@Num\fi} %<beispiel>\renewcommand{\@EstiloNumControl}{} %<beispiel>\makeatother @@ -4868,22 +5003,22 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<factcinco>\FormatoFecha[yyyymmdd]{ddmmyyyy}{.} %<facttres>\FormatoFecha{ddmmyyyy}{/} %<factseis>\FormatoFecha{default}{/} -%<!factcuatro&!factcinco&!factdiez>\Fecha{02-07-2019} -%<factcuatro>\Fecha*{2019}{07}{02} -%<factcinco>\Fecha{20190702} -%<factdiez>% \Fecha{02-07-2019} +%<!facttres&!factcuatro&!factcinco>\Fecha{06-11-2019} +%<factcuatro>\Fecha*{2019}{06}{11} +%<factcinco>\Fecha{20191106} %<factsiete|factocho> %<factsiete|factocho>\makeatletter %<factocho> \renewcommand{\@@Fecha}{\slshape FECHA:} %<factocho> \renewcommand{\@EstiloFechas}{\@LetraFecha\bfseries\@@Fecha\space{\color{blue}\@Fecha}} %<factsiete> \renewcommand{\@@Cantidad}{Cant.} %<factsiete|factocho>\makeatother -%<factnueve>\Credito{21} +%<factnueve>\Credito{11} %<prefac>\Descuento{18} %<facttres>\DescuentoE{15} %<facttres>\DescuentoG{20} %<factocho>\Descuento*{300} +%<prefac|facttres|factocho> %<factsiete>\GeometriaFactura{legalpaper,vmargin={5cm,5.5cm},hmargin={1cm,1cm},footskip=0pt,headsep=0pt,headheight=0pt} %<factdiez>\GeometriaReverso{vmargin={4cm,4cm},hmargin={4cm,4cm},footskip=0pt,headsep=0pt,headheight=0pt} %<repdos>\GeometriaReporte{vmargin={4.4cm,2.5cm},hmargin={3cm,2cm},footskip=1.2cm,headsep=0.777cm,headheight=1.5cm} @@ -4915,20 +5050,21 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<factdos|factseis>\SepDescripcion{16pt} %<factnueve>\SepNotaPrevia{16pt} %<factsiete>\SepFilas{1cm}{10pt} -%<factnueve>\SepCondiciones{16pt} +%<factnueve>\SepNotaFinal{16pt} %<facttres|factsiete>\LineaEncabezado{1pt}{20pt}{3pt} %<factdiez>\LineaNotaPrevia{0pt} %<factdos|factsiete>\LineaDescripcion{1pt}{20pt}{3pt} -%<factnueve>\LineaCondiciones{0.4pt}{4pt}{3pt} +%<factnueve>\LineaNotaFinal{0.4pt}{4pt}{3pt} %<factsiete>\LineaFirmas{6.5cm}{2pt} -%<factsiete>% Puede usarse \PosFecha* o \PosDenom*, \PosControl* o \PosCondiciones* para que el texto se despliegue en la posición 'Y' dada pero hacia arriba y no hacia abajo. \PosFirmas no acepta eso. +%<factsiete>% Puede usarse \PosFecha* o \PosDenom*, \PosControl* o \PosNotaFinal* para que el texto se despliegue en la posición 'Y' dada pero hacia arriba y no hacia abajo. \PosFirmas no acepta eso. +%<factnueve>\PosNotaFinal{.9cm}{.9cm}{-5.3cm} %<factsiete>\PosFecha{-0cm}{-1.5cm} %<factsiete>\PosFirmas{1cm}{1cm}{-3cm} %<factsiete>\PosDenom{-0cm}{4.3cm} %<factcuatro>\LetraDescripcion{\fontsize{20}{30}} %<factcuatro>\LetraTitEnc{\fontsize{15}{20}\bfseries} %<factcuatro>\LetraFirmas{\fontsize{16}{20}\itshape} -%<factcuatro>\LetraCondiciones{\fontsize{18}{28}\bfseries} +%<factcuatro>\LetraNotaFinal{\fontsize{18}{28}\bfseries} %<factocho>\LetraItems{\fontsize{20}{30}} %<factocho>\LetraNumeros{\fontsize{20}{30}} %<factocho>\LetraTipoIVA{\fontsize{20}{30}\bfseries} @@ -4940,33 +5076,31 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<factocho>\tabcolsep7pt %<!factuno&!factcinco&!prefac&!reptres> %<cotiza>% \Denom{PRESUPUESTO} % También podemos cambiar el nombre del documento. -%<!factcuatro&!factnueve&!beispiel&!reptres>\Condiciones{Las condiciones del documento...} -%<factnueve>\Condiciones{La factura se emitió el \Fecha{} con crédito de \Credito{} dias, siendo su fecha de vencimiento el \FechaVencimiento.} -%<beispiel>\Condiciones{Die Zahlungsbedingungen} +%<!factcuatro&!factnueve&!beispiel&!reptres>\NotaFinal{La nota final...} +%<factnueve>\NotaFinal{La factura se emitió el \Fecha{} con crédito de \Credito{} dias, siendo su vencimiento el \FechaVencimiento.} +%<beispiel>\NotaFinal{Die Zahlungsbedingungen} %<factuno|factdos|factcinco|factocho>\Resumen{El resumen opcional} %<beispiel>\Resumen{Zusammenfassung} -%<factocho>\NotaInterna{LA NOTA INTERNA} %<factcuatro|factnueve|factdiez>\NotaPrevia{\hfill LA NOTA PREVIA} +%<factocho|factnueve>\NotaInterna{LA NOTA INTERNA} %<factnueve>\NotaExterna{LA NOTA EXTERNA} \begin{document} %<!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}[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} +%<!factdos&!factcinco&!factseis&!repdos&!reptres&!beispiel> \Item{1}{ítem con IVA general}{1000} +%<factseis|repdos> \Item{2}{ítem con IVA general, viene con descuento}{1000}{8}[Un ítem que ofrecemos a precio de costo y que está gravado con IVA general]\label{primeritem} %<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} %<cotiza> \Item{1}{otro ítem con IVA general}{1100} %<cotiza> \Item{1}{otro ítem más con IVA general}{1200} %<facttres|prefac> \ItemR{1}{ítem con IVA reducido}{1000} %<facttres> \ItemA{1}{ítem con IVA adicional}{1000} %<facttres> \ItemE{1}{ítem exento de impuesto}{1000} -%<factdos,factsiete> \Item{1}{ítem con IVA general, con descuento}{1000}{8} -%<factsiete|factocho> \Item{10}{otro ítem con IVA general (descripción larga para mostrar el cambio de línea)}[otro ítem con IVA general (esta descripción es sólo para el .csv)]{1000}{20} -%<factdos> \ItemR{1}{ítem con IVA reducido, con descuento}{1000}{5} -%<factdos> \ItemA{1}{ítem con IVA adicional, con descuento}{1000}{10} -%<factdos> \ItemE{1}{ítem exento de impuesto, con descuento}{1000} +%<factdos|factseis> \Item{1}{ítem con IVA general, viene con descuento}{1000}{12} +%<factsiete|factocho> \Item{10}{otro ítem con IVA general (descripción larga para mostrar el cambio de línea)}[otro ítem con IVA general (esta descripción es sólo para el .csv)]{1000} +%<factdos> \ItemR{1}{ítem con IVA reducido, viene con descuento}{1000}{5} +%<factdos> \ItemA{1}{ítem con IVA adicional, viene con descuento}{1000}{10} +%<factdos> \ItemE{1}{ítem exento de impuesto}{1000} %<factdos|factcuatro> \ItemX{1}{línea sin precio} %<factcinco> \Item{ítem sin cantidad, con IVA general}{1000} %<factcinco> \ItemA{ítem sin cantidad, con IVA adicional}{1000} @@ -4994,9 +5128,9 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<factseis|repdos> %<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, 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|repdos> % Estas son todas las macros para las totalizaciones: \BIG, \BIR, \BIA, \BIE, \AlicuotaG, \AlicuotaR, \AlicuotaA, \SubtG, \SubtR, \SubtA, \SubtE, \DescG, \DescR, \DescA, \DescE. %<factseis>} %<repuno> \vspace{1.5cm}\FirmaReporte %<factocho> \FirmaReporte[\includegraphics[width=4.5cm]{factura-ejemplo-firma}][0pt][17pt] @@ -5152,8 +5286,8 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %% Archivo auxiliar; no para ser compilado sino para ser incluido en los ejemplos. %% \usepackage{xspace,catchfilebetweentags,regexpatch} -\def\optcolor{\color{blue}} -\def\macrocolor{\color{purple}} +\def\ejemplooptcolor{\color{blue}} +\def\ejemplomacrocolor{\color{purple}} \makeatletter \catcode`\%=11 \catcode`\|=14 @@ -5167,8 +5301,8 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \CatchFileBetweenDelims{\DescEjemplo}{\jobname.tex}{<desc>}{</desc>}[\catcode37=11\catcode13=14\makeatletter]| \catcode`\%=11 \makeatletter - \regexpatchcmd*{\DescEjemplo}{\cC.\cO[*]*}{\c{begingroup}\c{macrocolor}\c{ttfamily}\c{string}\0\c{endgroup}\c{xspace}}{}{}| - \regexpatchcmd*{\DescEjemplo}{(\()(\cL[a-zG]*)(\))}{(\c{begingroup}\c{optcolor}\c{ttfamily}\2\c{endgroup})}{}{}| + \regexpatchcmd*{\DescEjemplo}{\cC.\cO[*]*}{\c{begingroup}\c{ejemplomacrocolor}\c{ttfamily}\c{string}\0\c{endgroup}\c{xspace}}{}{}| + \regexpatchcmd*{\DescEjemplo}{(\()(\cL[a-zG]*)(\))}{(\c{begingroup}\c{ejemplooptcolor}\c{ttfamily}\2\c{endgroup})}{}{}| \xpatchcmd*{\DescEjemplo}{%% }{\item}{}{}| \xpatchcmd*{\DescEjemplo}{%%}{}{}{}| \makeatother diff --git a/Master/texmf-dist/source/latex/factura/factura.ins b/Master/texmf-dist/source/latex/factura/factura.ins index 485db0007dc..c1c785cd2e3 100644 --- a/Master/texmf-dist/source/latex/factura/factura.ins +++ b/Master/texmf-dist/source/latex/factura/factura.ins @@ -6,7 +6,7 @@ %% %% factura.dtx (with options: `batchfile') %% -%% Copyright 2018 Emilio Lazo Zaia <emiliolazozaia@gmail.com> +%% Copyright 2019 Emilio Augusto Lazo Zaia <emiliolazozaia@gmail.com> %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -20,7 +20,7 @@ %% %% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is Emilio Lazo Zaia. +%% The Current Maintainer of this work is Emilio Augusto Lazo Zaia. %% %% This work consists of the files README and factura.dtx %% with its derived files factura.ins, factura.cls, factura.def, @@ -38,7 +38,7 @@ \input docstrip.tex \preamble -Copyright 2018 Emilio Lazo Zaia <emiliolazozaia@gmail.com> +Copyright 2019 Emilio Augusto Lazo Zaia <emiliolazozaia@gmail.com> This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either @@ -52,7 +52,7 @@ LaTeX version 2008/05/04 or later. This work has the LPPL maintenance status `maintained'. -The Current Maintainer of this work is Emilio Lazo Zaia. +The Current Maintainer of this work is Emilio Augusto Lazo Zaia. This work consists of the files README and factura.dtx with its derived files factura.ins, factura.cls, factura.def, diff --git a/Master/texmf-dist/tex/latex/factura/factura.cls b/Master/texmf-dist/tex/latex/factura/factura.cls index 40acc98cbd1..c4260d9ea71 100644 --- a/Master/texmf-dist/tex/latex/factura/factura.cls +++ b/Master/texmf-dist/tex/latex/factura/factura.cls @@ -6,7 +6,7 @@ %% %% factura.dtx (with options: `class') %% -%% Copyright 2018 Emilio Lazo Zaia <emiliolazozaia@gmail.com> +%% Copyright 2019 Emilio Augusto Lazo Zaia <emiliolazozaia@gmail.com> %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -20,7 +20,7 @@ %% %% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is Emilio Lazo Zaia. +%% The Current Maintainer of this work is Emilio Augusto Lazo Zaia. %% %% This work consists of the files README and factura.dtx %% with its derived files factura.ins, factura.cls, factura.def, @@ -37,7 +37,7 @@ %% \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesClass{factura} -[2018/08/02 v3.57 +[2019/08/16 v3.70 Clase para elaborar facturas legales en la Repu'blica Bolivariana de Venezuela. ] @@ -45,35 +45,36 @@ en la Repu'blica Bolivariana de Venezuela. \RequirePackage{etoolbox}% 'etoolbox' para los condicionales binarios y para \AtEndPreamble. %% Condicionales auxiliares que sólo pueden ser usados dentro de un grupo. -\newbool{Electro} +\newbool{DCU} +\newbool{DUC} \newbool{Descuentos} +%% (quitado por no vigente) + % \newbool{Electro} +\newbool{ExpAbajo}\booltrue{ExpAbajo} \newbool{IVA} -\newbool{Subtotal} +\newbool{NumItem} +\newbool{PrimeroDescripcion} \newbool{SinCantidad} -\newbool{SinLineasVertInt} -\newbool{SinLineasVertExt} \newbool{SinLineaHoriNI} \newbool{SinLineaHoriTit} \newbool{SinLineaHoriTot} \newbool{SinLineasHoriExt} -\newbool{DCU} -\newbool{DUC} -\newbool{NumItem} -\newbool{PrimeroDescripcion} -\newbool{ExpAbajo}\booltrue{ExpAbajo} +\newbool{SinLineasVertExt} +\newbool{SinLineasVertInt} +\newbool{Subtotal} %% Condicionales auxiliares para la posición de los objetos fijos cuando son medidos desde la derecha, o desde abajo. -\newbool{FechaXnegativo} -\newbool{FechaYnegativo} -\newbool{FechaYarriba} -\newbool{CondYnegativo}% no hay CondXnegativo. -\newbool{CondYarriba} -\newbool{DenomXnegativo} -\newbool{DenomYnegativo} -\newbool{DenomYarriba} +\newbool{NotaFinalYarriba} +\newbool{NotaFinalYnegativo}% no hay NotaFinalXnegativo. \newbool{ControlXnegativo} -\newbool{ControlYnegativo} \newbool{ControlYarriba} +\newbool{ControlYnegativo} +\newbool{DenomXnegativo} +\newbool{DenomYarriba} +\newbool{DenomYnegativo} +\newbool{FechaXnegativo} +\newbool{FechaYarriba} +\newbool{FechaYnegativo} \newbool{FirmasYnegativo}% no hay FirmasXnegativo; hay X_inicial y X_final para las firmas. %% Condicionales relativos a opciones de la clase. @@ -89,7 +90,8 @@ en la Repu'blica Bolivariana de Venezuela. \newif\ifdescuentos \newif\ifdosfirmas \newif\ifduc -\newif\ifelectro +%% (quitado por no vigente) + % \newif\ifelectro \newif\ifexpandecuadro \newif\iffilas \newif\ifG @@ -114,6 +116,7 @@ en la Repu'blica Bolivariana de Venezuela. \newif\ifsinlineasve \newif\ifsinlineasvi \newif\ifsinmarcas +\newif\ifsinmonedatotales \newif\ifsinnumero \newif\ifsinreverso \newif\ifsintotales @@ -169,16 +172,16 @@ en la Repu'blica Bolivariana de Venezuela. \newlength{\@GrosorLineaEncabezado} \newlength{\@GrosorLineaNotaPrevia} \newlength{\@GrosorLineaDescripcion} -\newlength{\@GrosorLineaCondiciones} +\newlength{\@GrosorLineaNotaFinal} \newlength{\@GrosorLineaInfoPag} \newlength{\@EsquinaLineaEncabezado} \newlength{\@EsquinaLineaNotaPrevia} \newlength{\@EsquinaLineaDescripcion} -\newlength{\@EsquinaLineaCondiciones} +\newlength{\@EsquinaLineaNotaFinal} \newlength{\@SombraEncabezado} \newlength{\@SombraNotaPrevia} \newlength{\@SombraDescripcion} -\newlength{\@SombraCondiciones} +\newlength{\@SombraNotaFinal} \newlength{\@LineaNodoXo} \newlength{\@LineaNodoYo} \newlength{\@LineaNodoXf} @@ -191,18 +194,20 @@ en la Repu'blica Bolivariana de Venezuela. \newlength{\@PosFirmasXuno} \newlength{\@PosFirmasXdos} \newlength{\@PosFirmasY} -\newlength{\@PosCondicionesX} -\newlength{\@PosCondicionesY} +\newlength{\@PosNotaFinalXuno} +\newlength{\@PosNotaFinalXdos} +\newlength{\@PosNotaFinalY} \newlength{\@PosControlX} \newlength{\@PosControlY} \newlength{\@EspacioVacioInicial} \newlength{\@EspacioVacioFinal} +\newlength{\@EspacioSignoMonetario} \newlength{\@SeparaItemsExtra} \newlength{\@SeparaItemsExtraFinal} \newlength{\@SeparaInternaEncabezado} \newlength{\@SeparaInternaNotaPrevia} \newlength{\@SeparaInternaDescripcion} -\newlength{\@SeparaInternaCondiciones} +\newlength{\@SeparaInternaNotaFinal} \newlength{\@SeparaDatosResumen} \newlength{\@SeparaVertical} \newlength{\@SeparaMinTotales} @@ -231,7 +236,7 @@ en la Repu'blica Bolivariana de Venezuela. \newbox{\@CajaFecha} \newbox{\@CajaDenom} \newbox{\@CajaControl} -\newbox{\@CajaCond} +\newbox{\@CajaNotaFinal} \newbox{\@CajaEspacioVacio} \newbox{\@CajaPrueba} \newbox{\@CajaCaracterCR} @@ -261,7 +266,7 @@ en la Repu'blica Bolivariana de Venezuela. \DeclareOption{descuentos}{\descuentostrue}% Para los descuentos individuales. \DeclareOption{dosfirmas}{\dosfirmastrue}% Pone las dos firmas para firmar. \DeclareOption{duc}{\ductrue}% Descripción, luego precio unitario y luego cantidad. -\DeclareOption{electro}{\electrotrue}% Parche por el Decreto 3085 de Nikolài. +\DeclareOption{electro}{\CLASSERROR{Ya no esta' vigente el descuento en la ali'cuota general por pagos electro'nicos}}% Parche por el Decreto 3.085 de Nikolái, ya no vigente. \DeclareOption{expandecuadro}{\expandecuadrotrue}% Para rellenar con líneas en blanco de manera automática. \DeclareOption{filas}{\filastrue}% Estilo de totalización en filas. \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. @@ -286,6 +291,7 @@ en la Repu'blica Bolivariana de Venezuela. \DeclareOption{sinlineasvi}{\sinlineasvitrue}% Estilo 'sinlineasvi'. \DeclareOption{sinlineasv}{\sinlineasvtrue}% Estilo 'sinlineasv'. \DeclareOption{sinmarcas}{\sinmarcastrue}% Para evitar que aparezcan los caracteres especiales cuando la descripción es larga. +\DeclareOption{sinmonedatotales}{\sinmonedatotalestrue}% Para que no ponga el signo monetario en los totales. \DeclareOption{sinnumero}{\sinnumerotrue}% Escribir el texto de la denominación del documento pero sin escribir el número. \DeclareOption{sinreverso}{\sinreversotrue}% Para no imprimir el reverso de la factura. \DeclareOption{sintotales}{\sintotalestrue}% No escribe los totales al final, por ejemplo para cotizaciones de productos similares. @@ -339,24 +345,29 @@ en la Repu'blica Bolivariana de Venezuela. \DTMfdef{ddmmyyyy}#1#2#3#4#5#6#7#8&{\DTMs{#5#6#7#8-#3#4-#1#2}} \DTMfdef{mm-dd-yyyy}#1-#2-#3&{\DTMs{#3-#1-#2}} -%% Macros internas para el texto de la metadata que se va a escribir con la versión de la clase. -\def\@factura@ver{\expandafter\csname ver@factura.cls\endcsname} -\StrBefore*{\@factura@ver}{ }[\@factura@fecha] -\StrBetween*[1,2]{\@factura@ver}{ }{ }[\@factura@vernum] -\def\@factura@version{Hecho con la clase factura-\@factura@vernum\ (\@factura@fecha)} +%% Macros internas para el texto de la metadata que se va a escribir con el número de la versión de la clase. +\edef\@factura@ver{\expandafter\csname ver@factura.cls\endcsname} +\ExplSyntaxOn + \seq_set_split:NnV \l_tmpa_seq {~} {\@factura@ver} + \tl_set:Nx \@factura@vernum {\seq_item:Nn \l_tmpa_seq {2}} + + \seq_set_split:NnV \l_tmpa_seq {~} {\@factura@ver} + \tl_set:Nx \@factura@fecha {\seq_item:Nn \l_tmpa_seq {1}} +\ExplSyntaxOff +\def\@factura@ver{Hecho con la clase factura-\@factura@vernum\ (\@factura@fecha)} %% Escribimos la versión de la clase en la metadata del PDF. \ifxetex - \special{pdf: docinfo << /Subject (\@factura@version) >>} + \special{pdf: docinfo << /Subject (\@factura@ver) >>} \else \ifluatex - \pdfextension info{/Subject (\@factura@version)} + \pdfextension info{/Subject (\@factura@ver)} \else - \pdfinfo{/Subject (\@factura@version)} + \pdfinfo{/Subject (\@factura@ver)} \fi \fi -\AtEndPreamble{ +\def\@EstableceOpciones{% % Establecemos los parámetros y macros relativas a la fecha. \DTMsetstyle{\@FormatoFecha}\DTMsetup{datesep=\@FechaSeparadores}\gdef\DTMinformat{\@FormatoFechaEntrada} @@ -478,16 +489,17 @@ en la Repu'blica Bolivariana de Venezuela. \fi \fi - \ifelectro - \booltrue{Electro} - \gdef\@NotaInterna{\@TextoDescuentoPresidencial} - \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 opcio'n 'electro' no es compatible con la opcio'n 'filas'. Sin efecto la opcio'n 'filas'} - \fi - \fi +%% (quitado por no vigente) + % \ifelectro + % \boolfalse{Electro} + % \electrofalse + % \gdef\@NotaInterna{\@TextoDescuentoPresidencial} + % \CLASSWARNING{Se establecio' el texto aclaratorio del descuento presidencial como 'nota interna'} + % \iffilas + % \filasfalse + % \CLASSWARNING{La opcio'n 'electro' no es compatible con la opcio'n 'filas'. Sin efecto la opcio'n 'filas'} + % \fi + % \fi \iftodosiva \@BIRtrue \@BIAtrue \@Exentotrue \Gtrue \fi \ifsiniva\AtBeginDocument{\gdef\@ImpuestoG{0}\gdef\@ImpuestoR{0}\gdef\@ImpuestoA{0}}\fi @@ -555,7 +567,16 @@ en la Repu'blica Bolivariana de Venezuela. \@twosidetrue\@mparswitchtrue \else \@twosidefalse\@mparswitchfalse - \fi + \fi} + +\NewDocumentCommand{\BeforeEndPreamble}{s s +m}{ + \IfBooleanTF{#2} + {\gpreto{\@BeforeEndPreamble}{#3}} + {\IfBooleanTF{#1}{\long\gdef\@BeforeEndPreamble{#3}}{\gappto{\@BeforeEndPreamble}{#3}}}} + +\AtEndPreamble{ + \@EstableceOpciones + \ifx\@undefined\@BeforeEndPreamble\else\@BeforeEndPreamble\@EstableceOpciones\fi % Escribimos en el .log las opciones cargadas: \ifagrupado \CLASSINFO{Opcio'n cargada: agrupado}\fi @@ -570,7 +591,8 @@ en la Repu'blica Bolivariana de Venezuela. \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 + %% (quitado por no vigente) + % \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 @@ -595,6 +617,7 @@ en la Repu'blica Bolivariana de Venezuela. \ifsinlineasve \CLASSINFO{Opcio'n cargada: sinlineasve}\fi \ifsinlineasvi \CLASSINFO{Opcio'n cargada: sinlineasvi}\fi \ifsinmarcas \CLASSINFO{Opcio'n cargada: sinmarcas}\fi + \ifsinmonedatotales \CLASSINFO{Opcio'n cargada: sinmonedatotales}\fi \ifsinnumero \CLASSINFO{Opcio'n cargada: sinnumero}\fi \ifsinreverso \CLASSINFO{Opcio'n cargada: sinreverso}\fi \ifsintotales \CLASSINFO{Opcio'n cargada: sintotales}\fi @@ -618,7 +641,7 @@ en la Repu'blica Bolivariana de Venezuela. %% La geometría para la factura, su reverso, y el reporte. %% Para la factura, el margen superior está definido desde el encabezado con los datos del cliente; %% el margen inferior está definido hasta el final de la descripción (o del cuadro de la factura si no hay descripción). -%% Hay elementos que salen fuera de estos márgenes, como las firmas, las condiciones del documento, la numeración y la fecha. +%% Hay elementos que salen fuera de estos márgenes, como las firmas, la nota final, la numeración y la fecha. \def\GeometriaFactura#1{\gdef\@GeometriaFactura{#1}} \def\GeometriaReverso#1{\gdef\@GeometriaReverso{#1}} \def\GeometriaReporte#1{\gdef\@GeometriaReporte{#1}} @@ -637,6 +660,7 @@ en la Repu'blica Bolivariana de Venezuela. \def\@DescuentoRnum{0} \def\@DescuentoAnum{0} \def\@DescuentoEnum{0} +\FPset\PrecioUtempx{1} %% \Fecha, \FormatoFecha, \Credito, \Moneda, \RazonSocial, \Nombre, \RIF, \CI, \Contacto, \Dirección, \Telefono, \Email, \Conforme, \Emisor, \Proveedor. \NewDocumentCommand{\Fecha}{s m g g}{% @@ -697,8 +721,12 @@ en la Repu'blica Bolivariana de Venezuela. %% Información de página: cabeceras de páginas o pies de página. \def\InfoPagina#1{\gdef\@InfoPagina{#1}} -%% Texto que esclarece las condiciones del documento. -\NewDocumentCommand{\Condiciones}{+m}{\gdef\@Condiciones{#1}} +%% Texto para la nota final. +\NewDocumentCommand{\NotaFinal}{+m}{\gdef\@NotaFinal{#1}} +\NewDocumentCommand{\Condiciones}{+m}{\gdef\@NotaFinal{#1}\@ClassWarningCondiciones} + +%% Advertencia para la migración de cualquier comando para condiciones a nota final. +\def\@ClassWarningCondiciones{\CLASSWARNING{Ya no son condiciones sino nota final, debe hacerse la migración a los nuevos comandos}} %% Resumen opcional que va a la derecha de los datos del cliente. \NewDocumentCommand{\Resumen}{+m}{\gdef\@Resumen{#1}} @@ -723,26 +751,27 @@ en la Repu'blica Bolivariana de Venezuela. \CLASSWARNING{Fecha del documento \@Fecha\space distinta de la fecha de hoy}% \fi +%% (quitado por no vigente) % Establecemos el signo monetario dependiendo de la fecha de emisión de la factura, para efectos de la Reconversión Monetaria: - \ifx\@undefined\@Moneda - \DTMsaveddatediff{FechaEmision}{FechaBsS}{\AuxFecha}% - \ifnum\AuxFecha<0% - \Moneda{\@MonedaBs}% - \LetraNotaInterna{\fontsize{14}{18}}% - \NotaInterna{\FPupn\TotalBsS{\Total{} 100000 div \@DigitosMoneda{} round}Según Decreto Presidencial 3.548, 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}% - \else - \DTMsaveddatediff{FechaEmision}{FechaBs}{\AuxFecha}% - \ifnum\AuxFecha>-1% - \Moneda{\@MonedaBs}% - \else - \Moneda{\@MonedaBsS}% - \LetraNotaInterna{\fontsize{14}{18}}% - \NotaInterna{\FPupn\TotalBsF{\Total{} 100000 * \@DigitosMoneda{} round}El total en Bolívares Fuertes es de {\bfseries \@MonedaBsF~\numprint{\TotalBsF}}}% - \CLASSWARNING{Se establecio' el texto aclaratorio sobre el total en Boli'vares Fuertes como una nota interna}% - \fi - \fi - \fi + % \ifx\@undefined\@Moneda + % \DTMsaveddatediff{FechaEmision}{FechaBsS}{\AuxFecha}% + % \ifnum\AuxFecha<0% + % \Moneda{\@MonedaBs}% + % \LetraNotaInterna{\fontsize{14}{18}}% + % \NotaInterna{\FPupn\TotalBsS{\Total{} 100000 div \@DigitosMoneda{} round}Según Decreto Presidencial 3.548, 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}% + % \else + % \DTMsaveddatediff{FechaEmision}{FechaBs}{\AuxFecha}% + % \ifnum\AuxFecha>-1% + % \Moneda{\@MonedaBs}% + % \else + % \Moneda{\@MonedaBsS}% + % \LetraNotaInterna{\fontsize{14}{18}}% + % \NotaInterna{\FPupn\TotalBsF{\Total{} 100000 * \@DigitosMoneda{} round}El total en Bolívares Fuertes es de {\bfseries \@MonedaBsF~\numprint{\TotalBsF}}}% + % \CLASSWARNING{Se establecio' el texto aclaratorio sobre el total en Boli'vares Fuertes como una nota interna}% + % \fi + % \fi + % \fi % Efectuamos distintos chequeos para dar errores o advertencias si faltó algo. \ifdefvoid{\@RazonSocial}{\CLASSERROR{Hay que definir la razo'n social}}{}% @@ -760,7 +789,7 @@ en la Repu'blica Bolivariana de Venezuela. \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}}{}% + \ifdefvoid{\@NotaFinal}{\CLASSWARNING{Pudiera definirse una nota final}}{}% \ifcotizacion \ifdefvoid{\@FondoFactura}{\CLASSWARNING{En la opcio'n para cotizacion se recomienda agregar el fondo}}{}% \fi @@ -824,55 +853,49 @@ en la Repu'blica Bolivariana de Venezuela. \def\Num{\@Num}% \def\NumSerieControl{\@NumSerieControl}% \def\NumControl{\@NumControl}% - \def\Condiciones{\@Condiciones}% + \def\NotaFinal{\@NotaFinal}% \def\Resumen{\@Resumen}% \def\NotaPrevia{\@NotaPrevia}% \def\NotaInterna{\@NotaInterna}% \def\NotaExterna{\@NotaExterna}% \def\TituloReporte{\@TituloReporte}} -%% Posiciones (X,Y) de los objetos: i) fecha, ii) denominación, iii) condiciones, iv) número de control, v) firmas. +%% Posiciones (X,Y) de los objetos: i) fecha, ii) denominación, iii) nota final, iv) número de control, v) firmas. \NewDocumentCommand{\PosFecha}{s m m}{ + \setlength{\@PosFechaX}{#2} + \setlength{\@PosFechaY}{#3} \IfBooleanTF{#1}{\booltrue{FechaYarriba}}{\boolfalse{FechaYarriba}} - \IfBeginWith{#2}{-} - {\StrBehind{#2}{-}[\templeng]\setlength{\@PosFechaX}{-\templeng}\booltrue{FechaXnegativo}} - {\boolfalse{FechaXnegativo}\setlength{\@PosFechaX}{#2}} - \IfBeginWith{#3}{-} - {\StrBehind{#3}{-}[\templeng]\setlength{\@PosFechaY}{-\templeng}\booltrue{FechaYnegativo}} - {\boolfalse{FechaYnegativo}\setlength{\@PosFechaY}{#3}}} + \IfBeginWith{#2}{-}{\booltrue{FechaXnegativo}}{\boolfalse{FechaXnegativo}} + \IfBeginWith{#3}{-}{\booltrue{FechaYnegativo}}{\boolfalse{FechaYnegativo}}} \NewDocumentCommand{\PosDenom}{s m m}{ + \setlength{\@PosDenomX}{#2} + \setlength{\@PosDenomY}{#3} \IfBooleanTF{#1}{\booltrue{DenomYarriba}}{\boolfalse{DenomYarriba}} - \IfBeginWith{#2}{-} - {\StrBehind{#2}{-}[\templeng]\setlength{\@PosDenomX}{-\templeng}\booltrue{DenomXnegativo}} - {\boolfalse{DenomXnegativo}\setlength{\@PosDenomX}{#2}} - \IfBeginWith{#3}{-} - {\StrBehind{#3}{-}[\templeng]\setlength{\@PosDenomY}{-\templeng}\booltrue{DenomYnegativo}} - {\boolfalse{DenomYnegativo}\setlength{\@PosDenomY}{#3}}} + \IfBeginWith{#2}{-}{\booltrue{DenomXnegativo}}{\boolfalse{DenomXnegativo}} + \IfBeginWith{#3}{-}{\booltrue{DenomYnegativo}}{\boolfalse{DenomYnegativo}}} \NewDocumentCommand{\PosControl}{s m m}{ + \setlength{\@PosControlX}{#2} + \setlength{\@PosControlY}{#3} \IfBooleanTF{#1}{\booltrue{ControlYarriba}}{\boolfalse{ControlYarriba}} - \IfBeginWith{#2}{-} - {\StrBehind{#2}{-}[\templeng]\setlength{\@PosControlX}{-\templeng}\booltrue{ControlXnegativo}} - {\boolfalse{ControlXnegativo}\setlength{\@PosControlX}{#2}} - \IfBeginWith{#3}{-} - {\StrBehind{#3}{-}[\templeng]\setlength{\@PosControlY}{-\templeng}\booltrue{ControlYnegativo}} - {\boolfalse{ControlYnegativo}\setlength{\@PosControlY}{#3}}} - -\NewDocumentCommand{\PosCondiciones}{s m m}{ - \IfBooleanTF{#1}{\booltrue{CondYarriba}}{\boolfalse{CondYarriba}} - \setlength{\@PosCondicionesX}{#2}% - \IfBeginWith{#3}{-} - {\StrBehind{#3}{-}[\templeng]\setlength{\@PosCondicionesY}{-\templeng}\booltrue{CondYnegativo}} - {\boolfalse{CondYnegativo}\setlength{\@PosCondicionesY}{#3}}} -%% 'X' no acepta valores negativos en \PosCondiciones. + \IfBeginWith{#2}{-}{\booltrue{ControlXnegativo}}{\boolfalse{ControlXnegativo}} + \IfBeginWith{#3}{-}{\booltrue{ControlYnegativo}}{\boolfalse{ControlYnegativo}}} + +\NewDocumentCommand{\PosNotaFinal}{s m m m}{ + \setlength{\@PosNotaFinalXuno}{#2} + \setlength{\@PosNotaFinalXdos}{#3} + \setlength{\@PosNotaFinalY}{#4} + \IfBooleanTF{#1}{\booltrue{NotaFinalYarriba}}{\boolfalse{NotaFinalYarriba}} + \IfBeginWith{#4}{-}{\booltrue{NotaFinalYnegativo}}{\boolfalse{NotaFinalYnegativo}}} +\let\PosCondiciones\PosNotaFinal +%% La nota final se define con un X_inicial, un X_final y un Y_inicial (Xo,Xf,Y) \NewDocumentCommand{\PosFirmas}{m m m}{ \setlength{\@PosFirmasXuno}{#1} \setlength{\@PosFirmasXdos}{#2} - \IfBeginWith{#3}{-} - {\StrBehind{#3}{-}[\templeng]\setlength{\@PosFirmasY}{-\templeng}\booltrue{FirmasYnegativo}} - {\boolfalse{FirmasYnegativo}\setlength{\@PosFirmasY}{#3}}} + \setlength{\@PosFirmasY}{#3} + \IfBeginWith{#3}{-}{\booltrue{FirmasYnegativo}}{\boolfalse{FirmasYnegativo}}} %% La firma se define con un X_inicial, un X_final y un Y_inicial (Xo,Xf,Y) %% Tamaño y grosor de la línea de las firmas. @@ -901,7 +924,8 @@ en la Repu'blica Bolivariana de Venezuela. %% Separación interna entre la línea y el texto de la descripción. \def\SepDescripcion#1{\setlength{\@SeparaInternaDescripcion}{#1}} -\def\SepCondiciones#1{\setlength{\@SeparaInternaCondiciones}{#1}} +\def\SepNotaFinal#1{\setlength{\@SeparaInternaNotaFinal}{#1}} +\let\SepCondiciones\SepNotaFinal %% Grosor de la línea de las cajas del encabezado, curvatura de la esquina y sombra. %% (si pedimos linea de 0pt, todo queda en cero y no se abre el ambiente TikZ). @@ -924,12 +948,13 @@ en la Repu'blica Bolivariana de Venezuela. \IfValueT{#2}{\setlength{\@EsquinaLineaDescripcion}{#2}} \IfValueT{#3}{\setlength{\@SombraDescripcion}{#3}}} -%% Grosor de la línea de las condiciones, curvatura de la esquina y sombra. +%% Grosor de la línea de la nota final, curvatura de la esquina y sombra. %% (si pedimos linea de 0pt, todo queda en cero y no se abre el ambiente TikZ). -\NewDocumentCommand{\LineaCondiciones}{m g g}{ - \setlength{\@GrosorLineaCondiciones}{#1} - \IfValueT{#2}{\setlength{\@EsquinaLineaCondiciones}{#2}} - \IfValueT{#3}{\setlength{\@SombraCondiciones}{#3}}} +\NewDocumentCommand{\LineaNotaFinal}{m g g}{ + \setlength{\@GrosorLineaNotaFinal}{#1} + \IfValueT{#2}{\setlength{\@EsquinaLineaNotaFinal}{#2}} + \IfValueT{#3}{\setlength{\@SombraNotaFinal}{#3}}} +\let\LineaCondiciones\LineaNotaFinal %% El espacio vertical que hay que avanzar sólo en la primera página del reporte antes de empezar a escribir sobre él. Usable cuando la primera página tiene un membrete y las demás no, es decir, cuando se usa \FondoReporte y no \FondoReporte*. \def\InicioReporte#1{\setlength{\@InicioReporte}{#1}} @@ -983,8 +1008,9 @@ en la Repu'blica Bolivariana de Venezuela. %% Tipo de letra para la nota previa. \def\LetraNotaPrevia#1{\gdef\@LetraNotaPrevia{#1\selectfont}} -%% Tipo de letra para las condiciones del documento. -\def\LetraCondiciones#1{\gdef\@LetraCondiciones{#1\selectfont}} +%% Tipo de letra para la nota final. +\def\LetraNotaFinal#1{\gdef\@LetraNotaFinal{#1\selectfont}} +\let\LetraCondiciones\LetraNotaFinal %% Letra para la denominación del documento ('FACTURA', 'COTIZACIÓN',...). \def\LetraDenom#1{\gdef\@LetraDenom{#1\selectfont}} @@ -1271,7 +1297,8 @@ en la Repu'blica Bolivariana de Venezuela. \if@BIR\@EscribeTotalColAlicuota{R}\fi \@EscribeTotalColAlicuota{G}% \if@BIA\@EscribeTotalColAlicuota{A}\fi - \ifbool{Electro}{\@EscribeTotalColAlicuotaGDesc}{}% + %% (quitado por no vigente) + % \ifbool{Electro}{\@EscribeTotalColAlicuotaGDesc}{}% \fi} \newcommand{\@EscribeTotalColBI}[1]{% @@ -1280,24 +1307,25 @@ en la Repu'blica Bolivariana de Venezuela. \else \ifG\ \hfill(\csname @Alicuota#1porc\endcsname\%)\else\mbox{}\fi \fi - & \@LetraNumTotales\numprint{\csname BI#1\endcsname} \\} + & \@LetraNumTotales\@SignoMonetarioAux\numprint{\csname BI#1\endcsname} \\} \newcommand{\@EscribeTotalColAlicuota}[1]{% {\@LetraTitTotales \csname @@Alicuota#1\endcsname\ \hfill (\csname @Alicuota#1porc\endcsname\%)} - & \@LetraNumTotales\numprint{\csname Alicuota#1\endcsname} \\} + & \@LetraNumTotales\@SignoMonetarioAux\numprint{\csname Alicuota#1\endcsname} \\} -\newcommand{\@EscribeTotalColAlicuotaGDesc}{% - {\@LetraTitTotales \@@AlicuotaGDesc\ \hfill (\@AlicuotaGDescPorc\%)} - & \@LetraNumTotales\numprint{\AlicuotaGDesc} \\} +%% (quitado por no vigente) + % \newcommand{\@EscribeTotalColAlicuotaGDesc}{% + % {\@LetraTitTotales \@@AlicuotaGDesc\ \hfill (\@AlicuotaGDescPorc\%)} + % & \@LetraNumTotales\@SignoMonetarioAux\numprint{\AlicuotaGDesc} \\} \newcommand{\@EscribeTotalColSubt}[1]{% {\@LetraTitTotales \csname @@Subtotal#1\endcsname} - & \@LetraNumTotales\numprint{\csname Subt#1\endcsname} \\} + & \@LetraNumTotales\@SignoMonetarioAux\numprint{\csname Subt#1\endcsname} \\} \newcommand{\@EscribeTotalColDesc}[1]{% {\@LetraTitTotales \csname @@Descuento#1\endcsname \csname if@Desc#1num\endcsname \else \ \hfill (\csname @Descuento#1porc\endcsname\%)\fi} - & \@LetraNumTotales\numprint{\csname Desc#1\endcsname} \\} + & \@LetraNumTotales\@SignoMonetarioAux\numprint{\csname Desc#1\endcsname} \\} %% Presentación de los totales en modo filas. \newcommand{\@EscribeTotalFilasBI}[1]{% @@ -1306,14 +1334,16 @@ en la Repu'blica Bolivariana de Venezuela. \newcommand{\@EscribeTotalFilasAlicuota}[1]{% \@EscribeTotalFilasAlicuotaizq{#1}: & \@EscribeTotalFilasAlicuotader{#1}} -\newcommand{\@EscribeTotalFilasDesc}[1]{% - \@EscribeTotalFilasDescizq{#1}: & \@EscribeTotalFilasDescder{#1}} +%% (no implementado) + % \newcommand{\@EscribeTotalFilasDesc}[1]{% + % \@EscribeTotalFilasDescizq{#1}: & \@EscribeTotalFilasDescder{#1}} \newcommand{\@EscribeTotalFilasSoloBI}[1]{% {\@LetraTitTotales\@EscribeTotalFilasBIizq{#1}:} {\@LetraNumTotales\@EscribeTotalFilasBIder{#1}}} -\newcommand{\@EscribeTotalFilasSoloDesc}[1]{% - {\@LetraTitTotales\@EscribeTotalFilasDescizq{#1}:} {\@LetraNumTotales\@EscribeTotalFilasDescder{#1}}} +%% (no implementado) + % \newcommand{\@EscribeTotalFilasSoloDesc}[1]{% + % {\@LetraTitTotales\@EscribeTotalFilasDescizq{#1}:} {\@LetraNumTotales\@EscribeTotalFilasDescder{#1}}} \newcommand{\@EscribeTotalFilasSoloAlicuota}[1]{% {\@LetraTitTotales\@EscribeTotalFilasAlicuotaizq{#1}:} {\@LetraNumTotales\@EscribeTotalFilasAlicuotader{#1}}} @@ -1330,24 +1360,25 @@ en la Repu'blica Bolivariana de Venezuela. \fi} \newcommand{\@EscribeTotalFilasBIder}[1]{% - \@LetraNumTotales\numprint{\csname BI#1\endcsname}} + \@LetraNumTotales\@SignoMonetarioAux\numprint{\csname BI#1\endcsname}} \newcommand{\@EscribeTotalFilasAlicuotaizq}[1]{% \@LetraTitTotales\csname @@Alicuota#1\endcsname \ (\csname @Alicuota#1porc\endcsname\%)} \newcommand{\@EscribeTotalFilasAlicuotader}[1]{% - \@LetraNumTotales\numprint{\csname Alicuota#1\endcsname}} + \@LetraNumTotales\@SignoMonetarioAux\numprint{\csname Alicuota#1\endcsname}} -\newcommand{\@EscribeTotalFilasDescizq}[1]{% - \@LetraTitTotales\csname @@Descuento#1\endcsname \ (\csname @Descuento#1porc\endcsname\%)} +%% (no implementado) + % \newcommand{\@EscribeTotalFilasDescizq}[1]{% + % \@LetraTitTotales\csname @@Descuento#1\endcsname \ (\csname @Descuento#1porc\endcsname\%)} -\newcommand{\@EscribeTotalFilasDescder}[1]{% - \@LetraNumTotales\numprint{\csname Desc#1\endcsname}} + % \newcommand{\@EscribeTotalFilasDescder}[1]{% + % \@LetraNumTotales\@SignoMonetarioAux\numprint{\csname Desc#1\endcsname}} -\newcommand{\@EscribeTotalFilasAuxTotal}{\@LetraTitTotal\@@Total: & \@LetraNumTotal\numprint{\Total}} +\newcommand{\@EscribeTotalFilasAuxTotal}{\@LetraTitTotal\@@Total: & \@LetraNumTotal\@SignoMonetarioAux\numprint{\Total}} \newcommand{\@EscribeTotalFilas}[2][]{% - \begin{tabular}[b]{@{}l@{\extracolsep{1ex}}r@{}}% ¡Esta tabla tiene que abrir hacia abajo para que la separación entre las filas se + \begin{tabular}[b]{@{}l@{\extracolsep{1ex}}r@{}}% ¡Esta tabla tiene que abrir hacia abajo para que la separación entre las filas se pueda colocar con \@SeparaFilas! \csname @EscribeTotalFilasBI\endcsname{#2}% \ifx#2E% \ifx#1T% @@ -1360,6 +1391,10 @@ en la Repu'blica Bolivariana de Venezuela. \fi \end{tabular}} +%% Comando auxiliar para escribir el signo monetario cuando aplica +\newcommand{\@SignoMonetarioAux}{% + \ifsinmonedatotales\else\@Moneda\hspace*{\@EspacioSignoMonetario}\fi} + \newcommand{\@GeneraCajasTotalesFilas}{% \if@Exento \newbox{\@CajaBIE}\newbox{\@CajaBIET}% @@ -1438,7 +1473,8 @@ en la Repu'blica Bolivariana de Venezuela. \FPset\DescA{0}\global\let\DescA\DescA \FPset\DescX{0}\global\let\DescX\DescX \FPset\AlicuotaG{0}\global\let\AlicuotaG\AlicuotaG - \FPset\AlicuotaGDesc{0}\global\let\AlicuotaGDesc\AlicuotaGDesc + %% (quitado por no vigente) + % \FPset\AlicuotaGDesc{0}\global\let\AlicuotaGDesc\AlicuotaGDesc \FPset\AlicuotaR{0}\global\let\AlicuotaR\AlicuotaR \FPset\AlicuotaA{0}\global\let\AlicuotaA\AlicuotaA} @@ -1448,18 +1484,20 @@ en la Repu'blica Bolivariana de Venezuela. \FPifeq\SubtR{0}\else\@CalculaTotalesII{R}\fi \FPifeq\SubtA{0}\else\@CalculaTotalesII{A}\fi \FPifeq\SubtE{0}\else\@CalculaTotalesII{E}\fi - \ifbool{Electro}{% - \FPiflt\BIG\@AlicuotaGDescLimite - \let\@AlicuotaGDesc\@AlicuotaGDescBajo - \else - \let\@AlicuotaGDesc\@AlicuotaGDescAlto - \fi - \FPupn\@AlicuotaGDescPorc{\@AlicuotaGDesc{} 100 * \@DigitosPorc{} round clip}% - \FPupn\AlicuotaGDesc{\BIG{} \@AlicuotaGDesc{} * \@DigitosMoneda{} round}% - \global\let\AlicuotaGDesc\AlicuotaGDesc - \global\let\@AlicuotaGDescPorc\@AlicuotaGDescPorc - \global\let\@AlicuotaGDesc\@AlicuotaGDesc}{}% - \FPupn\Total{\BIE{} \BIR{} + \BIG{} + \BIA{} + \AlicuotaR{} + \AlicuotaG{} + \AlicuotaA{} + \AlicuotaGDesc{} sub \@DigitosMoneda{} round}% + %% (quitado por no vigente) + % \ifbool{Electro}{% + % \FPiflt\BIG\@AlicuotaGDescLimite + % \let\@AlicuotaGDesc\@AlicuotaGDescBajo + % \else + % \let\@AlicuotaGDesc\@AlicuotaGDescAlto + % \fi + % \FPupn\@AlicuotaGDescPorc{\@AlicuotaGDesc{} 100 * \@DigitosPorc{} round clip}% + % \FPupn\AlicuotaGDesc{\BIG{} \@AlicuotaGDesc{} * \@DigitosMoneda{} round}% + % \global\let\AlicuotaGDesc\AlicuotaGDesc + % \global\let\@AlicuotaGDescPorc\@AlicuotaGDescPorc + % \global\let\@AlicuotaGDesc\@AlicuotaGDesc}{}% + \FPupn\Total{\BIE{} \BIR{} + \BIG{} + \BIA{} + \AlicuotaR{} + \AlicuotaG{} + \AlicuotaA{} + \@DigitosMoneda{} round}% + %% (quitado por no vigente) arriba se sumaba también \AlicuotaGDesc{}. \global\let\Total\Total} \newcommand{\@CalculaTotalesII}[1]{% @@ -1520,9 +1558,12 @@ en la Repu'blica Bolivariana de Venezuela. %% 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}{% + \gdef\@PrecioUtemp##1{\FPupn\PrecioUtemp{##1 \PrecioUtempx{} * clip}}% \addtocounter{NumItem}{1}% % Calculamos. - \FPupn\PrecioU{#5 \@DigitosMoneda{} round}% + \@PrecioUtemp{#5}% + \FPupn\PrecioU{\PrecioUtemp{} \@DigitosMoneda{} round}% + \FPifeq\PrecioU{\PrecioUtemp}\else\CLASSWARNING{Se esta' introduciendo un precio con ma's de dos decimales: (#3 - \PrecioUtemp. Redondeado a \PrecioU)}{}\fi% Advertimos cuando el precio unitario tiene más de dos decimales. \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}% @@ -1694,7 +1735,6 @@ en la Repu'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 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. @@ -1859,11 +1899,12 @@ en la Repu'blica Bolivariana de Venezuela. \if@Exento \@EscribeTotalCol{E}\fi \if@BIR\@EscribeTotalCol{R}\ifsinivaexpresado\else\@EscribeTotalColAlicuota{R}\fi\fi \@EscribeTotalCol{G}\ifsinivaexpresado\else\@EscribeTotalColAlicuota{G}\fi - \ifbool{Electro}{\@EscribeTotalColAlicuotaGDesc}{}% + %% (quitado por no vigente) + % \ifbool{Electro}{\@EscribeTotalColAlicuotaGDesc}{}% \if@BIA\@EscribeTotalCol{A}\ifsinivaexpresado\else\@EscribeTotalColAlicuota{A}\fi\fi \fi \ifsinivaexpresado\else\cline{2-2}\fi - \hfill \@LetraTitTotal\@@Total & \@LetraNumTotal\numprint{\Total}\\ + \hfill \@LetraTitTotal\@@Total & \@LetraNumTotal\@SignoMonetarioAux\numprint{\Total}\\ \end{tabular}\endgroup \\ \ifdefvoid{\@NotaInterna}{}{\ifbool{SinLineaHoriNI}{}{\hline}\@ColumnasMultiColumnNotaIntAuxCmd}% @@ -1881,7 +1922,7 @@ en la Repu'blica Bolivariana de Venezuela. \ifexpandecuadro\else\vfill\fi \@GeneraCajasTotalesFilas \newbox{\@CajaTotal}% - \savebox{\@CajaTotal}{{\@LetraTitTotal\@@Total}: \@LetraNumTotal\numprint{\Total}}% + \savebox{\@CajaTotal}{{\@LetraTitTotal\@@Total:} \@LetraNumTotal\@SignoMonetarioAux\numprint{\Total}}% % \ifnum \value{@IVANoGeneral}=0% \newbox{\@CajaGET}% @@ -2012,7 +2053,7 @@ en la Repu'blica Bolivariana de Venezuela. \addtolength{\@PosFechaX}{\oddsidemargin+1in}% Le sumamos el margen izquierdo a las posiciones de las cosas; es importante que se haga en un \AfterEndPreamble antes de que empiecen a escribirse otras cosas en la página. \addtolength{\@PosDenomX}{\oddsidemargin+1in}% \addtolength{\@PosControlX}{\oddsidemargin+1in}% - \addtolength{\@PosCondicionesX}{\oddsidemargin+1in}% + \addtolength{\@PosNotaFinalXuno}{\oddsidemargin+1in}% \addtolength{\@PosFirmasXuno}{\oddsidemargin+1in}% \setlength{\parindent}{0pt}% \setlength{\lineskip}{0pt}% @@ -2028,7 +2069,7 @@ en la Repu'blica Bolivariana de Venezuela. \ifdenom\@PosicionaDenom\fi \ifprefactura\@PosicionaNumControl\fi \ifnum\value{@Firmas}=0\else\@PosicionaFirmas\fi - \ifdefvoid{\@Condiciones}{}{\@PosicionaCondiciones}} + \ifdefvoid{\@NotaFinal}{}{\@PosicionaNotaFinal}} \iflinea % 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} @@ -2143,14 +2184,14 @@ en la Repu'blica Bolivariana de Venezuela. \usebox{\@CajaFirmas}% \end{textblock*}} -%% Comando que coloca las condiciones del documento. -\newcommand{\@PosicionaCondiciones}{% - \savebox{\@CajaCond}{% - \parbox{\textwidth+\oddsidemargin+1in-\@PosCondicionesX}{\@EscribeCondiciones}}% - \ifbool{CondYnegativo}{\addtolength{\@PosCondicionesY}{\paperheight}}{}% - \ifbool{CondYarriba}{\addtolength{\@PosCondicionesY}{-\ht\@CajaCond-\dp\@CajaCond}}{}% Aquí la caja abre hacia abajo, a menos de que usemos \PosCondiciones* - \begin{textblock*}{\wd\@CajaCond}(\@PosCondicionesX,\@PosCondicionesY)% - \usebox{\@CajaCond}% +%% Comando que coloca la nota final. +\newcommand{\@PosicionaNotaFinal}{% + \savebox{\@CajaNotaFinal}{% + \parbox{\textwidth+\oddsidemargin+1in-\@PosNotaFinalXuno-\@PosNotaFinalXdos}{\@EscribeNotaFinal}}% + \ifbool{NotaFinalYnegativo}{\addtolength{\@PosNotaFinalY}{\paperheight}}{}% + \ifbool{NotaFinalYarriba}{\addtolength{\@PosNotaFinalY}{-\ht\@CajaNotaFinal-\dp\@CajaNotaFinal}}{}% Aquí la caja abre hacia abajo, a menos de que usemos \PosNotaFinal* + \begin{textblock*}{\wd\@CajaNotaFinal}(\@PosNotaFinalXuno,\@PosNotaFinalY)% + \usebox{\@CajaNotaFinal}% \end{textblock*}} %% Comando que coloca el número de control. @@ -2255,19 +2296,19 @@ en la Repu'blica Bolivariana de Venezuela. \par\vspace*{\@SombraNotaPrevia}\vspace*{\@SeparaVertical}% \ifexpandecuadro\else\vfill\fi}}} -%% Comando que coloca la caja para las condiciones, con la posibilidad de TikZ. -\newcommand{\@EscribeCondiciones}{% +%% Comando que coloca la caja para la nota final, con la posibilidad de TikZ. +\newcommand{\@EscribeNotaFinal}{% {% Abrimos un nuevo grupo para que la redefinición del entorno 'tikzpicture' sea local. - \ifdim\@GrosorLineaCondiciones=0pt% - \setlength{\@SeparaInternaCondiciones}{0pt}\setlength{\@EsquinaLineaCondiciones}{0pt}\setlength{\@SombraCondiciones}{0pt}% + \ifdim\@GrosorLineaNotaFinal=0pt% + \setlength{\@SeparaInternaNotaFinal}{0pt}\setlength{\@EsquinaLineaNotaFinal}{0pt}\setlength{\@SombraNotaFinal}{0pt}% \renewenvironment{tikzpicture}{\NewDocumentCommand{\node}{o +m}{####2}}{}% \fi \begin{tikzpicture}% - \expandafter\node\expandafter[\@CondicionesTIKZ]{% - \parbox{\textwidth-\@SombraCondiciones-2\@SeparaInternaCondiciones-\@GrosorLineaCondiciones}{\@EstiloCondiciones}}% - \ifdim\@GrosorLineaCondiciones=0pt\else ;\fi + \expandafter\node\expandafter[\@NotaFinalTIKZ]{% + \parbox{\textwidth-\@PosNotaFinalXuno-\@PosNotaFinalXdos+\oddsidemargin+1in-\@SombraNotaFinal-2\@SeparaInternaNotaFinal-\@GrosorLineaNotaFinal}{\@EstiloNotaFinal}}% + \ifdim\@GrosorLineaNotaFinal=0pt\else ;\fi \end{tikzpicture}% - \par\vspace*{\@SombraCondiciones}}} + \par\vspace*{\@SombraNotaFinal}}} %% Comandos auxiliares para los datos y el resumen. %% En el caso de los datos, la versión \@DatosAux se ejecuta cuando no hay resumen, y la versión \@DatosAux* se ejecuta cuando hay resumen. @@ -2355,7 +2396,8 @@ en la Repu'blica Bolivariana de Venezuela. \immediate\write\csv{Totales: \@@SubtotalG: \Moneda \SubtG^^JTotales: \@@DescuentoG: \Moneda \DescG}% \fi \immediate\write\csv{Totales: \@@BIG: \Moneda \BIG^^JTotales: \@@AlicuotaG: \Moneda \AlicuotaG}% - \FPifeq\AlicuotaGDesc{0}\else\immediate\write\csv{Totales: \@@AlicuotaGDesc: \Moneda \AlicuotaGDesc}\fi + %% (quitado por no vigente) + % \FPifeq\AlicuotaGDesc{0}\else\immediate\write\csv{Totales: \@@AlicuotaGDesc: \Moneda \AlicuotaGDesc}\fi \if@BIA \if@DescA \immediate\write\csv{Totales: \@@SubtotalA: \Moneda \SubtA^^JTotales: \@@DescuentoA: \Moneda \DescA}% diff --git a/Master/texmf-dist/tex/latex/factura/factura.def b/Master/texmf-dist/tex/latex/factura/factura.def index d1f13736231..58f6ac61cc6 100644 --- a/Master/texmf-dist/tex/latex/factura/factura.def +++ b/Master/texmf-dist/tex/latex/factura/factura.def @@ -6,7 +6,7 @@ %% %% factura.dtx (with options: `def') %% -%% Copyright 2018 Emilio Lazo Zaia <emiliolazozaia@gmail.com> +%% Copyright 2019 Emilio Augusto Lazo Zaia <emiliolazozaia@gmail.com> %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -20,7 +20,7 @@ %% %% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is Emilio Lazo Zaia. +%% The Current Maintainer of this work is Emilio Augusto Lazo Zaia. %% %% This work consists of the files README and factura.dtx %% with its derived files factura.ins, factura.cls, factura.def, @@ -36,23 +36,24 @@ %% factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %% \ProvidesFile{factura.def} -[2018/08/02 v3.57 +[2019/08/16 v3.70 Archivo de valores iniciales y condiciones de borde para factura.cls ] %% La geometría para la factura, su reverso, y el reporte. %% Para la factura, el margen superior está definido desde el encabezado con los datos del cliente; %% el margen inferior está definido hasta el final de la descripción (o del cuadro de la factura si no hay descripción). -%% Hay elementos que salen fuera de estos márgenes, como las firmas, las condiciones del documento, la numeración y la fecha. +%% Hay elementos que salen fuera de estos márgenes, como las firmas, la nota final, la numeración y la fecha. \GeometriaFactura{letterpaper,vmargin={5.2cm,5.5cm},hmargin={1cm,1cm},footskip=0pt, headsep=0pt, headheight=0pt} \GeometriaReverso{letterpaper,vmargin={1cm,1cm}, hmargin={1cm,1cm},footskip=0cm, headsep=0pt, headheight=0pt} \GeometriaReporte{letterpaper,vmargin={2.8cm,2.5cm},hmargin={3cm,2cm},footskip=1.2cm,headsep=0.777cm,headheight=1.5cm} -%% Factores para los distintos IVA y el límite para el descuento: -\def\@AlicuotaG{0.12} -\def\@AlicuotaGDescBajo{0.03} -\def\@AlicuotaGDescAlto{0.05} -\def\@AlicuotaGDescLimite{2000000} +%% Factores para los distintos IVA: +\def\@AlicuotaG{0.16} +%% (quitado por no vigente) + % \def\@AlicuotaGDescBajo{0.03} + % \def\@AlicuotaGDescAlto{0.05} + % \def\@AlicuotaGDescLimite{2000000} \def\@AlicuotaR{0.08} \def\@AlicuotaA{0.27} @@ -67,13 +68,17 @@ Archivo de valores iniciales y condiciones de borde para factura.cls \def\@FechaSeparadores{-} %% La moneda: -\def\@MonedaBs{Bs.} -\def\@MonedaBsS{Bs.S} -\def\@MonedaBsF{Bs.F} - +\def\@Moneda{Bs.} +%% (quitado por no vigente) + % \def\@MonedaBs{Bs.} + % \def\@MonedaBsS{Bs.S} + % \def\@MonedaBsF{Bs.F} +\setlength\@EspacioSignoMonetario{.666ex} + +%% (quitado por no vigente) %% Las fechas de la entrada de la reconversión monetaria: -\DTMsavedate{FechaBsS}{2018-08-20} -\DTMsavedate{FechaBs}{2019-01-01} + % \DTMsavedate{FechaBsS}{2018-08-20} + % \DTMsavedate{FechaBs}{2019-02-15} %% Al lado de cada ítem va la letra que designa el gravamen que aplica sobre él: \def\@DenomAlicuotaG{G} @@ -81,8 +86,9 @@ Archivo de valores iniciales y condiciones de borde para factura.cls \def\@DenomAlicuotaA{A} \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 3.085 en Gaceta Oficial 41.239.} +%% (quitado por no vigente) +%% 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 3.085 en Gaceta Oficial 41.239.} %% Macros que guardan textos que corresponden a nombres de campos: \def\@@Fecha{Fecha de emisi\'on:} @@ -115,7 +121,8 @@ Archivo de valores iniciales y condiciones de borde para factura.cls \def\@@IVA{IVA} \def\@@PrecioT{Precio T.} \def\@@AlicuotaG{IVA G} -\def\@@AlicuotaGDesc{Descuento IVA G} +%% (quitado por no vigente) + % \def\@@AlicuotaGDesc{Descuento IVA G} \def\@@AlicuotaR{IVA R} \def\@@AlicuotaA{IVA A} \def\@@BIG{BI G} @@ -163,12 +170,12 @@ Archivo de valores iniciales y condiciones de borde para factura.cls \setlength{\@FirmaReportePosX}{2cm} \setlength{\@FirmaReporteExcesoLinea}{1.5cm} -%% Posiciones (X,Y) de los objetos: i) fecha, ii) denominación, iii) condiciones, iv) número de control, v) firmas. +%% Posiciones (X,Y) de los objetos: i) fecha, ii) denominación, iii) nota final, iv) número de control, v) firmas. \PosFecha*{-0cm}{5cm} \PosDenom*{0cm}{5cm} \PosControl*{0cm}{-2.4cm} -\PosCondiciones{0cm}{-5.3cm} -%% 'X' no acepta valores negativos en \PosCondiciones. +\PosNotaFinal{0cm}{0cm}{-5.3cm} +%% La nota final se define con un X_inicial, un X_final y un Y_inicial (Xo,Xf,Y) \PosFirmas{5cm}{1cm}{-2.4cm} %% La firma se define con un X_inicial, un X_final y un Y_inicial (Xo,Xf,Y) @@ -196,7 +203,7 @@ Archivo de valores iniciales y condiciones de borde para factura.cls %% Separación interna entre la línea y el texto de la descripción. \SepDescripcion{6pt} -\SepCondiciones{5pt} +\SepNotaFinal{5pt} %% Grosor de la línea de las cajas del encabezado, curvatura de la esquina y sombra. %% (si pedimos linea de 0pt, todo queda en cero y no se abre el ambiente TikZ). @@ -210,9 +217,9 @@ Archivo de valores iniciales y condiciones de borde para factura.cls %% (si pedimos linea de 0pt, todo queda en cero y no se abre el ambiente TikZ). \LineaDescripcion{0.4pt}{0pt}{4pt} -%% Grosor de la línea de las condiciones, curvatura de la esquina y sombra. +%% Grosor de la línea de la nota final, curvatura de la esquina y sombra. %% (si pedimos linea de 0pt, todo queda en cero y no se abre el ambiente TikZ). -\LineaCondiciones{0pt}{0pt}{0pt} +\LineaNotaFinal{0pt}{0pt}{0pt} %% El espacio vertical que hay que avanzar sólo en la primera página del reporte antes de empezar a escribir sobre él. Usable cuando la primera página tiene un membrete y las demás no, es decir, cuando se usa \FondoReporte y no \FondoReporte*. \InicioReporte{1.6cm} @@ -266,8 +273,8 @@ Archivo de valores iniciales y condiciones de borde para factura.cls %% Tipo de letra para la nota previa. \LetraNotaPrevia{\fontsize{11}{12.5}} -%% Tipo de letra para las condiciones del documento. -\LetraCondiciones{\fontsize{12}{12}} +%% Tipo de letra para la nota final. +\LetraNotaFinal{\fontsize{12}{12}} %% Letra para la denominación del documento ('FACTURA', 'COTIZACIÓN',...). \LetraDenom{\fontsize{14}{14}\bfseries} @@ -290,7 +297,7 @@ Archivo de valores iniciales y condiciones de borde para factura.cls %% Letra para el reporte. \LetraReporte{\fontsize{12}{20}} -%% Diseño hecho en TikZ para los datos del cliente, el resumen, la nota previa, la descripción y las condiciones. +%% Diseño hecho en TikZ para los datos del cliente, el resumen, la nota previa, la descripción y la nota final. \def\@DatosTIKZ{% draw=black, fill=white, inner sep=\@SeparaInternaEncabezado, line width=\@GrosorLineaEncabezado, rounded corners=\@EsquinaLineaEncabezado, copy shadow={top color=black, bottom color=black, shadow xshift=\@SombraEncabezado, shadow yshift=-\@SombraEncabezado}} @@ -302,8 +309,8 @@ Archivo de valores iniciales y condiciones de borde para factura.cls \def\@DescripcionTIKZ{% draw=black, fill=white, inner sep=\@SeparaInternaDescripcion, line width=\@GrosorLineaDescripcion, rounded corners=\@EsquinaLineaDescripcion, copy shadow={top color=black, bottom color=black, shadow xshift=\@SombraDescripcion, shadow yshift=-\@SombraDescripcion}} -\def\@CondicionesTIKZ{% - draw=black, fill=white, inner sep=\@SeparaInternaCondiciones, line width=\@GrosorLineaCondiciones, rounded corners=\@EsquinaLineaCondiciones, copy shadow={top color=black, bottom color=black, shadow xshift=\@SombraCondiciones, shadow yshift=-\@SombraCondiciones}} +\def\@NotaFinalTIKZ{% + draw=black, fill=white, inner sep=\@SeparaInternaNotaFinal, line width=\@GrosorLineaNotaFinal, rounded corners=\@EsquinaLineaNotaFinal, copy shadow={top color=black, bottom color=black, shadow xshift=\@SombraNotaFinal, shadow yshift=-\@SombraNotaFinal}} %% El diseño de las distintas partes de la hoja. \newcommand{\@EstiloFirmas}{ @@ -321,7 +328,7 @@ Archivo de valores iniciales y condiciones de borde para factura.cls \newcommand{\@EstiloNotaPrevia}{\@LetraNotaPrevia \@NotaPrevia} -\newcommand{\@EstiloCondiciones}{\@LetraCondiciones \@Condiciones} +\newcommand{\@EstiloNotaFinal}{\@LetraNotaFinal \@NotaFinal} \newcommand{\@EstiloNumControl}{% \renewcommand{\baselinestretch}{0}\selectfont |