diff options
author | Karl Berry <karl@freefriends.org> | 2022-01-22 21:03:55 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-01-22 21:03:55 +0000 |
commit | 56079a7502f8094ffb831d1ea3564312a8ff3049 (patch) | |
tree | 9bda2ea94bc5730445fb982de13fe10d9fc0c0d5 /Master/texmf-dist/source/latex/factura/factura.dtx | |
parent | cdf946a4c2d4105eba2a5bec9a9608a3c2e178c3 (diff) |
factura (22jan22)
git-svn-id: svn://tug.org/texlive/trunk@61697 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/factura/factura.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/factura/factura.dtx | 1299 |
1 files changed, 734 insertions, 565 deletions
diff --git a/Master/texmf-dist/source/latex/factura/factura.dtx b/Master/texmf-dist/source/latex/factura/factura.dtx index 526d28d75ad..a076bf2266e 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 2020 Emilio Augusto Lazo Zaia <emiliolazozaia@gmail.com> +% Copyright 2022 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 @@ -21,15 +21,16 @@ % with its derived files factura.ins, factura.cls, factura.def, % factura-ejemplo-aux.tex, factura-ejemplo-firma.tex, % factura-ejemplo-fondo.tex, factura-ejemplo-membrete.tex, +% factura-ejemplo-notadecredito.tex, factura-ejemplo-notadedebito.tex, % factura-ejemplo-cotizacion.tex, factura-ejemplo-prefactura.tex, % factura-ejemplo-factura01.tex, factura-ejemplo-factura02.tex, % factura-ejemplo-factura03.tex, factura-ejemplo-factura04.tex, % factura-ejemplo-factura05.tex, factura-ejemplo-factura06.tex, % factura-ejemplo-factura07.tex, factura-ejemplo-factura08.tex, % factura-ejemplo-factura09.tex, factura-ejemplo-factura10.tex, -% factura-ejemplo-notadecredito.tex, factura-ejemplo-notadedebito.tex, % factura-ejemplo-reporte1.tex, factura-ejemplo-reporte2.tex, -% factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. +% factura-ejemplo-reporte3.tex, factura-ejemplo-reporte4.tex +% and factura-beispiel-rechnung.tex. %<*internalbatchfile> \def\nameofplainTeX{plain} \ifx\fmtname\nameofplainTeX @@ -41,7 +42,7 @@ \input docstrip.tex \preamble -Copyright 2020 Emilio Augusto Lazo Zaia <emiliolazozaia@gmail.com> +Copyright 2022 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 @@ -61,15 +62,16 @@ This work consists of the files README and factura.dtx with its derived files factura.ins, factura.cls, factura.def, factura-ejemplo-aux.tex, factura-ejemplo-firma.tex, factura-ejemplo-fondo.tex, factura-ejemplo-membrete.tex, +factura-ejemplo-notadecredito.tex, factura-ejemplo-notadedebito.tex, factura-ejemplo-cotizacion.tex, factura-ejemplo-prefactura.tex, factura-ejemplo-factura01.tex, factura-ejemplo-factura02.tex, factura-ejemplo-factura03.tex, factura-ejemplo-factura04.tex, factura-ejemplo-factura05.tex, factura-ejemplo-factura06.tex, factura-ejemplo-factura07.tex, factura-ejemplo-factura08.tex, factura-ejemplo-factura09.tex, factura-ejemplo-factura10.tex, -factura-ejemplo-notadecredito.tex, factura-ejemplo-notadedebito.tex, factura-ejemplo-reporte1.tex, factura-ejemplo-reporte2.tex, -factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. +factura-ejemplo-reporte3.tex, factura-ejemplo-reporte4.tex +and factura-beispiel-rechnung.tex. \endpreamble \keepsilent @@ -103,6 +105,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \def\repuno{factura-ejemplo-reporte1.tex} \def\repdos{factura-ejemplo-reporte2.tex} \def\reptres{factura-ejemplo-reporte3.tex} +\def\repcuatro{factura-ejemplo-reporte4.tex} \def\cotiza{factura-ejemplo-cotizacion.tex} \def\notadecredito{factura-ejemplo-notadecredito.tex} \def\notadedebito{factura-ejemplo-notadedebito.tex} @@ -125,6 +128,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \generate{\file{\repuno}{\from{\jobname.dtx}{repuno}}} \generate{\file{\repdos}{\from{\jobname.dtx}{repdos}}} \generate{\file{\reptres}{\from{\jobname.dtx}{reptres}}} +\generate{\file{\repcuatro}{\from{\jobname.dtx}{repcuatro}}} \generate{\file{\cotiza}{\from{\jobname.dtx}{cotiza}}} \generate{\file{\notadecredito}{\from{\jobname.dtx}{notadecredito}}} \generate{\file{\notadedebito}{\from{\jobname.dtx}{notadedebito}}} @@ -148,7 +152,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \Msg{ xelatex \jobname.dtx} \Msg{ pdflatex factura-ejemplo-fondo.tex} \Msg{ pdflatex factura-ejemplo-membrete.tex} -\Msg{ xelatex factura-ejemplo-firma.tex} +\Msg{ lualatex factura-ejemplo-firma.tex} \Msg{} \Msg{Also compile all other examples and recompile \jobname.dtx.} \Msg{(factura-ejemplo-aux.tex is not an example!)} @@ -179,7 +183,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<class>\ProvidesClass{factura} %<def>\ProvidesFile{factura.def} %<*class|def> -[2020/11/15 v4.00 +[2022/01/22 v4.32 %<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 @@ -353,7 +357,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \begingroup\MakePrivateLetters\Describe@Macro} \def\PrintDescribeMacro#1{\setstretch{1}\strut \MacroFont \color{black}\string #1\ } - + % Definimos el comando para describir opciones, que inexplicablemente falta en doc.sty: \def\DescribeOption{\noindent\leavevmode\@bsphack\begingroup\MakePrivateLetters \Describe@Option} @@ -388,7 +392,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \fi \levelchar #3}}% \@tempa\endgroup\@esphack} - + \def\@wrglossary#1{% \protected@write\@glossaryfile{}% {\string\glossaryentry{#1}{1}}% @@ -414,29 +418,29 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % v2.82 Desde la versión v2.82 de esta clase, para poder compilar con \LuaLaTeX{} es necesaria la versión v2.26 del paquete |zref|, de fecha 2016/05/21, y la versión v1.18 de |atbegshi| de fecha 2016/06/09. % v2.82 -> Esta versión de |factura| se sacó principalmente para corregir un error introducido en la versión anterior v2.72 en cuanto a las referencias, para agregar la opción |numitem| que enumera los ítems en la factura y para que la línea diagonal (opción |linea|) funcione correctamente siempre. - + % v3.00 -> Desde la versión v3.00, todos los ejemplos están incorporados a la documentación, con la descripción de cada uno, de manera automatizada. - + % v3.02 -> Esta versión v3.02 se saca porque la versión 3.9 de |fancyhdr| hizo necesaria esta actualización por un error que daba con los reportes por el uso en esta clase de la macro |\fancy@setoffs|. Lo que hacíamos con esa macro de |fancyhdr| lo hicimos ahora de otra forma mejor, dada la incompatibilidad con la nueva versión de ese paquete.%v3.02 - + % v3.40 -> La versión 3.40 se saca por los cambios en la política impositiva decretados por el Presidente en Decreto número 3085 relativos a descuentos del 3\% y 5\% en el IVA general cuando los pagos se hacen por medios electrónicos; también se corrigió la tasa de IVA adicional. - + % v3.40 -> En la versión 3.40 se agregaron nuevas opciones en cuanto al manejo de la fecha de emisión y su formato, posibilidad de facturas a crédito con fecha de vencimiento, campos nuevos adicionales para agregar más textos en la factura, posibilidad de imprimir información en el reverso de la hoja de la factura, posibilidades nuevas en cuanto al posicionamiento de los elementos fijos, diseño \tikz más versátil en los cuadros con bordes, mejor manejo del archivo |.csv|, cambios en los nombres de algunos comandos y opciones. - + % v3.40 -> En la misma versión 3.40 se cambió la estructura de la sección de los comandos en esta documentación y se agregó una página de descripción al final de cada ejemplo. - + % v3.44 -> El cambio en la política impositiva reflejado en la versión 3.40 queda sin efecto para fines legales, ya no está vigente dicho descuento; sin embargo, no eliminamos el código que lo produce sino que la clase arroja una advertencia cuando se pide usar la opción de descuentos por pago electrónico. - + % v3.44 -> Desde la versión 3.44 podemos activar cualquier opción de la clase a través de condicionales en el preámbulo y no solamente como una opción al cargar la clase; también se puede ahora quitar el efecto de cualquier opción previamente dada al cargar la clase, esto con el propósito de hacer más versátil el uso de las opciones y así poder incluirlas también en archivos |.tex| o |.def| personalizados. - + % v3.44 -> Adicionalmente desde la versión 3.44 el archivo |.log| de las compilaciones tiene como comentario todas las opciones que fueron pedidas al cargar la clase. - + % 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. - + % 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. % 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}. @@ -448,45 +452,76 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % 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. % 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. - + % 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. - + % 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: - + % v3.70 -> 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. - + % v3.70 -> 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. - + % v3.70 -> Ya no está activa la opción |electro| para descuentos en pagos por medios electrónicos porque ya no está vigente el decreto. - + % v3.70 -> Ahora en los totales aparece el signo monetario siempre a menos de que se pida en la clase la opción |sinmonedatotales|. - + % v3.70 -> En esta misma versión se agregó un “gancho” llamado \cs{BeforeEndPreamble} para usos muy específicos. - + % v3.70 -> 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}. % v3.70 -> La macro \cs{PosNotaFinal} se comporta ahora como \cs{PosFirmas}, es decir, acepta un valor inicial en “x” y uno final. + % v3.73 -> La tasa de IVA adicional se ajustó a su valor actualizado (31\%). + + % v3.73 -> Los comandos \cs{NotaPrevia}. \cs{NotaInterna}. \cs{NotaExterna} y \cs{NotaFinal} aceptan uno o dos asteriscos. Sin asteriscos, una segunda invocación del comando para la nota hace que se sustituya la primera nota especificada; con un asterisco, agrega al final de la nota ya existente ({\slshape append}), y con dos asteriscos, agrega lo nuevo al principio de la nota ya existente ({\slshape prepend}). + + % v4.00 -> Desaparece la opción |denom| en favor de la nueva opción |sindenom|. Lo predeterminado ahora es que la clase escriba la denominación “FACTURA” del documento y su número, porque ese es el formato apropiado de las formas libres. + + % v4.00 -> Corregidas las cajas hechas con \tikz para que no se superpusieran al fondo establecido con \cs{FondoFactura}. + + % v4.00 -> Agregamos el texto “FORMA LIBRE” en las {\slshape prefacturas} en una posición ajustable con el comando correspondiente. + + % v4.00 -> Corregido el número de dígitos de la numeración del documento. Estaba en 5 dígitos y son 6 dígitos según la legislación. + + % v4.00 -> Se hizo un pequeño ajuste en el margen superior de la factura y en la posición del texto de la denominación y de la fecha. + + % v4.00 -> Agregadas las opciones |sinencabezadofactura| y |sinencabezadoreporte| para no imprimir el encabezado de la factura con los datos del cliente, y para no imprimir el encabezado del reporte, respectivamente. + + % v4.00 -> La macro \cs{EstiloPagReporte} fue renombrada a \cs{EstiloPagina} y permanecerá un tiempo funcionando también bajo \cs{EstiloPagReporte} de manera transicional. + + % v4.00 -> Las macros relativas a las “condiciones” ya no son aceptadas mas; esto en favor de la “nota final”. A esta región de la hoja le cambiaron el nombre en la versión v3.70 del 2019/08/17 y dejamos un período de migración con la advertencia en la compilación si se usan las macros viejas. + + % v4.00 -> Nuevas opciones |notadecredito| y |notadedebito| para producir notas de crédito y notas de débito. Las macros correspondientes a este nuevo modo son \cs{NotaNum} y \cs{NotaFecha} para hacer la referencia a la factura que la nota está corrigiendo. \begin{itemize} - \item La tasa de IVA adicional se ajustó a su valor actualizado (31\%). - \item Los comandos \cs{NotaPrevia}. \cs{NotaInterna}. \cs{NotaExterna} y \cs{NotaFinal} aceptan uno o dos asteriscos. Sin asteriscos, una segunda invocación del comando para la nota hace que se sustituya la primera nota especificada; con un asterisco, agrega al final de la nota ya existente ({\slshape append}), y con dos asteriscos, agrega lo nuevo al principio de la nota ya existente ({\slshape prepend}). - \item Desaparece la opción |denom| en favor de la nueva opción |sindenom|. Lo predeterminado ahora es que la clase escriba la denominación “FACTURA” del documento y su número, porque ese es el formato apropiado de las formas libres. - \item Corregidas las cajas hechas con \tikz para que no se superpusieran al fondo establecido con \cs{FondoFactura}. - \item Agregamos el texto “FORMA LIBRE” en las {\slshape prefacturas} en una posición ajustable con el comando correspondiente. - \item Corregido el número de dígitos de la numeración del documento. Estaba en 5 dígitos y son 6 dígitos según la legislación. - \item Se hizo un pequeño ajuste en el margen superior de la factura y en la posición del texto de la denominación y de la fecha. - \item Agregadas las opciones |sinencabezadofactura| y |sinencabezadoreporte| para no imprimir el encabezado de la factura con los datos del cliente, y para no imprimir el encabezado del reporte, respectivamente. - \item La macro \cs{EstiloPagReporte} fue renombrada a \cs{EstiloPagina} y permanecerá un tiempo funcionando también bajo \cs{EstiloPagReporte} de manera transicional. - \item Las macros relativas a las “condiciones” ya no son aceptadas mas; esto en favor de la “nota final”. A esta región de la hoja le cambiaron el nombre en la versión v3.70 del 2019/08/17 y dejamos un período de migración con la advertencia en la compilación si se usan las macros viejas. - \item Nuevas opciones |notadecredito| y |notadedebito| para producir notas de crédito y notas de débito. Las macros correspondientes a este nuevo modo son \cs{NotaNum} y \cs{NotaFecha} para hacer la referencia a la factura que la nota está corrigiendo. + \item Se renombradon las macros + \begin{inparaenum}[\bfseries (1)] + \item \cs{NotaFecha} por \cs{FechaNota}, + \item \cs{NotaNum} por \cs{NumNota}, por otra parte + \item \cs{Denom} por \cs{Denominacion}, + \item \cs{PosDenom} por \cs{PosDenominacion}, y + \item \cs{LetraDenom} por \cs{LetraDenominacion}. + \end{inparaenum} + \item Se renombraron varias opciones, entre ellas: + \begin{inparaenum}[\bfseries (1)] + \item |sindenom| por |sindenominacion|, + \item |agrupado| por |agrupatotales|, + \item |centrado| por |filascentradas|, + \item |impdesc| por |ivadescripcion|, y + \item |centradesc| por |descripcioncentrada|, + \item |sinmarcas| por |sinmarcasfactura|. + \end{inparaenum} + En una versión futura dejarán de funcionar las macros y opciones viejas como alias a las nuevas y darán error. + \item Nuevas opciones |monedadespues|, |monedaceldas| y |divisa|. + \item Nuevas macros para el tema monetario: \cs{Divisa} y \cs{TasaCambio}. + \item Nuevas macros para cambiar el membrete de la factura (\cs{Membrete}) y para cambiar los encabezados de la factura y del reporte: \cs{EncabezadoFactura}, \cs{EncabezadoReporte}. \end{itemize} - + \section*{Agradecimientos} - + Por pruebas y sugerencias que dieron lugar a mejoras agradezco a Ritguey% \ifmotorunicode\footnote{\setmainfont{Symbola}🐧}\else\message{^^J^^JLaTeX Warning: Compila con XeLaTeX.^^J}\fi{} Flores Esteves y a Alberto Mijares. Por contribuciones a través de \texttt{StackExchange} agradezco a Alan Munn, cfr, David Carlisle, egreg, Gustavo Mezzetti, Heiko Oberdiek, jfbu, Joseph Wright, Schrödinger's cat, Werner y wipet. El motivo por el que se da cada agradecimiento está como comentario en el archivo |.cls| o en el |.dtx|. - + \addcontentsline{toc}{section}{\changesname} {\makeatletter\def\pfill{\unskip\hfill\@gobble}\makeatother \setlength{\columnsep}{0pt} @@ -534,7 +569,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \changes{v2.05}{2015/04/13}{Se cambió de \texttt{4pt} a \texttt{6pt} en \texttt{factura.def} para el margen interno predeterminado en las cajas del encabezado y en la descripción.} % \changes{v2.05}{2015/04/13}{Se quitó \texttt{UTF8} de \texttt{inputenc} como un paquete que se cargue de forma predeterminada.} % \changes{v2.05}{2015/04/13}{Advierte que no son compatibles los comandos \cs{Descuento} con la opción \texttt{filas}.} -% \changes{v2.05}{2015/04/13}{Se puso un parche en \cs{@CargaFondoReporte} para arreglar que \cs{topskip} aplicara bien en \cs{@EncabezadoReporte}.} +% \changes{v2.05}{2015/04/13}{Se puso un parche en \cs{@CargaFondoReporte} para arreglar que \cs{topskip} aplicara bien en \cs{@EscribeEncReporte}.} % \changes{v2.05}{2015/04/13}{Arreglada la interacción entre las opciones \texttt{ivanoexplicito} y \texttt{filas}, y se quitó la línea del total cuando se usa \texttt{ivanoexplicito}.} % \changes{v2.05}{2015/04/13}{Se renombró la opción \texttt{relleno} a \texttt{exparriba}, a la vez que se quitó \cs{Descripcion*} porque se agregó la opción \texttt{sinexpandir}.} % \changes{v2.05}{2015/04/13}{Se renombró la opción \texttt{ivanoexplicito} por \texttt{sinivaexpresado}.} @@ -586,7 +621,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \changes{v2.82}{2016/06/25}{Reimplementada la línea diagonal para que funcione en todos los casos.} % \changes{v2.82}{2016/06/25}{Nueva macro interna \cs{@ColumnasMultiColumnTotalesAuxCmd} para hacer más general la colocación de los totales en el modo de columnas dentro de un \cs{multicolumn}.} % \changes{v2.82}{2016/06/25}{Quitado el paquete \texttt{MnSymbol} en favor del comando \cs{flechaCR} para la flecha que indica que la descripción ocupa más de una línea.} -% \changes{v3.00}{2017/03/11}{Se agregó la opción \texttt{sinmarcas} para pedir que no se escriba el carácter de fin de linea cuando la descripción ocupa más que una línea y también para evitar que salga el carácter que marca las celdas vacías también cuando la decripción es larga.} +% % \changes{v3.00}{2017/03/11}{Se agregó la opción \texttt{sinmarcas} para pedir que no se escriba el carácter de fin de linea cuando la descripción ocupa más que una línea y también para evitar que salga el carácter que marca las celdas vacías también cuando la decripción es larga.} % \changes{v3.00}{2017/03/11}{Nueva macro \cs{SepItemsExtra} para agregar espacio extra entre los ítems en la factura.} % \changes{v3.00}{2017/03/11}{Opción nueva \texttt{sintotales} para que no se escriba ningún total de los elementos. Útil para cotizaciones de por ejemplo varias formas de un mismo producto.} % \changes{v3.00}{2017/03/11}{Opción nueva \texttt{centradesc} para centrar el texto en la descripción de cada elemento en la factura.} @@ -676,6 +711,17 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \changes{v4.00}{2020/11/15}{Renombrada la macro \cs{EstiloPagReporte} a \cs{EstiloPagina}, y quedan funcionando ambas por un tiempo.} % \changes{v4.00}{2020/11/15}{Ya no sirven las macros obsoletas \cs{Condiciones}, \cs{PosCondiciones}, \cs{SepCondiciones} ni \cs{LetraCondiciones} en favor de sus correspondientes para la nota final que es el nuevo nombre de esta parte de la página.} % \changes{v4.00}{2020/11/15}{Agregada la macro \cs{@EstiloParrafoReporte} dentro del archivo \texttt{.def} para controlar las opciones de párrafo del reporte.} +% \changes{v4.32}{2022/01/22}{Se agregó el paquete \texttt{atbegshi} porque ya \texttt{eso-pic} no lo carga.} +% \changes{v4.32}{2022/01/22}{Nuevas opciones |monedaceldas| y |monedadespues| para, respectivamente, poner el signo monetario dentro de cada celda numérica y para poner el signo monetario después del monto numérico.} +% \changes{v4.32}{2022/01/22}{Nueva macro \cs{membrete} para agregar la información del emisor; no debería ser usado en Venezuela porque las facturas fiscales tienen un membrete hecho por una imprenta.} +% \changes{v4.32}{2022/01/22}{Quitado el código para la opción |electro|, previamente deshabilitada.} +% \changes{v4.32}{2022/01/22}{Nuevas opciones \texttt{monedadespues} y \texttt{monedaceldas} para que el signo monetario salga después del monto, y para que en cada celda aparezca el signo monetario.} +% \changes{v4.32}{2022/01/22}{Nueva opción \texttt{divisa} y nuevos comandos \cs{Divisa} y \cs{TasaCambio} para trabajar con divisas y su conversión a moneda nacional.} +% \changes{v4.32}{2022/01/22}{Nuevas macros \cs{EncabezadoFactura}, \cs{EncabezadoReporte} y \cs{Membrete}} +% \changes{v4.32}{2022/01/22}{Se renombraron las macros \cs{NotaFecha} por \cs{FechaNota} y \cs{NotaNum} por \cs{NumNota}.} +% \changes{v4.32}{2022/01/22}{Se corrigió que cuando hay crédito especificado en una cotización, no ponga fecha de vencimiento.} +% \changes{v4.32}{2022/01/22}{Se renombraron la macro \cs{Denom} por \cs{Denominacion}, \cs{PosDenom} por \cs{PosDenominacion} y \cs{LetraDenom} por \cs{LetraDenominacion}. Se renombran las opcions \texttt{sindenom} por \texttt{sindenominacion}, \texttt{agrupado} por \texttt{agrupatotales}, \texttt{centrado} por \texttt{filascentradas}, \texttt{centradesc} por \texttt{descripcioncentrada}, \texttt{impdesc} por \texttt{ivadescripcion} y \texttt{sinmarcas} por \texttt{sinmarcasfactura}.} +% % % \tableofcontents % @@ -737,7 +783,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % % La firma escaneada de ejemplo necesita compilarse con \XeLaTeX{} porque son códigos en PSTricks y debe producirse un |.pdf|. Se compila así: % -% \item {\color{RoyalBlue}|xelatex factura-ejemplo-firma.tex|} +% \item {\color{RoyalBlue}|lualatex factura-ejemplo-firma.tex|} % % Al tener el fondo, el membrete y la firma compilados en |.pdf| según los pasos anteriores, podremos compilar cualquiera de los ejemplos en |.tex| que el archivo |factura.dtx| genera, y eso lo debemos hacer, ya que todos ellos (en su versión en |.pdf|) forman parte de la documentación. Los podemos compilar así: % @@ -854,16 +900,14 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % % \subsection{Sobre el tipo de documento a producir} % -% { -% % \DescribeOption{prefactura} -% La {\slshape “prefactura”} es un documento no legal, preliminar, que no se imprime sobre papel de factura sino que está concebido para enviarse por correo o fax. Para eso se define la imagen que contiene el diseño de la factura con el comando |\FondoFactura|, luego la clase escribe la denominación “FACTURA” con su número. Esta opción implica la opción |sinfirmas|, ya que si es un documento preliminar sin validez legal, las firmas no son necesarias; sin embargo se puede cambiar este comportamiento con las opciones |dosfirmas| y |unafirma|. +% La {\slshape “prefactura”} es un documento no legal, preliminar, que no se imprime sobre papel de factura sino que está concebido para enviarse por correo o fax. Para eso se define la imagen que contiene el diseño de la factura con el comando |\FondoFactura|, luego la clase escribe la denominación con el número. Esta opción implica la opción |sinfirmas|, ya que si es un documento preliminar sin validez legal, las firmas no son necesarias; sin embargo se puede cambiar este comportamiento con las opciones |dosfirmas| y |unafirma|. % % \DescribeOption{cotizacion} % La cotización es un documento similar a una factura pero no es un documento legal en el sentido de que no se imprime sobre talonario fiscal alguno, así que no lleva número de control y puede o no tener su propia numeración, que es cosa del emisor de la cotización. Esta opción implica la opción |unafirma|, para que firme el emisor de la factura, y si su nombre no se especifica saldrá “Por el emisor” debajo de la línea para firmar. También puede cambiarse esto con la opción |dosfirmas| o con |sinfirmas|. % % \DescribeOption{notadecredito} -% Produce una nota de crédito para corregir alguna factura previamente hecha, dentro del mismo período fiscal. Hay que usar |\NotaNum| y |\NotaFecha| para especificar el número y la fecha de la factura a corregir; aparecerá escrito un texto en el que se hace referencia a la factura con el error dinerario que se está corrigiendo con la nota. +% Produce una nota de crédito para corregir alguna factura previamente hecha, dentro del mismo período fiscal. Hay que usar |\NumNota| y |\FechaNota| para especificar el número y la fecha de la factura a corregir; aparecerá escrito un texto en el que se hace referencia a la factura con el error dinerario que se está corrigiendo con la nota. % % \DescribeOption{notadedebito} % Produce una nota de débito, también para corregir alguna factura previa con algún error. Aplican los mismos comentarios anteriores sobre la nota de crédito. @@ -902,7 +946,13 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % Cambia el orden de los campos en el documento impreso a: descripción, cantidad, precio unitario y precio total\footnote{Sin \texttt{duc} ni \texttt{dcu}, el modo predeterminado es \texttt{cdu}: cantidad, descripción, precio unitario.}. % % -% \subsection{Relativo al IVA} +% \subsection{Relativo al IVA y a la moneda} +% +% \DescribeOption{divisa} +% Con esta opción funciona la clase utilizando la divisa y no la moneda; los montos en la factura los dará el usuario en divisas. El símbolo de la divisa predeterminada es “\$” pero puede cambiarse con el comando |\Divisa|. Luego puede utilizarse el comando |\TasaCambio| para volver al uso de la moneda con una tasa de cambio establecida con ese comando. +% +% \DescribeOption{monedadespues} +% En algunos países, la moneda se pone después de la cantidad; con esta opción se logra ese comportamiento. % % \DescribeOption{siniva} % No se cobra IVA, para los casos en los que eso aplique. @@ -913,15 +963,10 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \DescribeOption{todosiva} % 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 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.} -% % \DescribeOption{G} % Agrega una “|G|” al lado de todos los items gravados con IVA general así sea el general el único IVA existente en la factura. % -% \DescribeOption{impdesc} +% \DescribeOption{ivadescripcion} % Con esta opción, la letra que indica la denominación del impuesto aplicado a cada elemento, en lugar de escribirse en el precio unitario y en el total, que es la forma predeterminada, sale escrito al final de la descripción. Puede preferirse de esta forma, y ahorra un poco de espacio usable en la descripción porque ya no sale en dos lugares dicha letra sino en uno solo. % % @@ -940,8 +985,8 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \DescribeOption{sinlineahtit} % \DescribeOption{sinlineahtot} % \DescribeOption{sinlineahni} -% Adicionalmente podemos apagar las líneas horizontales internas por separado, es decir, la línea que va después del título de las columnas la podemos quitar con \texttt{sinlineahtit}, la línea que separa los elementos a facturar de los totales generales se puede quitar con \texttt{sinlineahtot} y la línea que separa los totales de la -opcional- nota interna la podemos quitar con \texttt{sinlineahni}. -% +% Adicionalmente podemos apagar las líneas horizontales internas por separado, es decir, la línea que va después del título de las columnas la podemos quitar con \texttt{sinlineahtit}, la línea que separa los elementos a facturar de los totales generales se puede quitar con \texttt{sinlineahtot} y la línea que separa los totales de la -opcional- nota interna la podemos quitar con \texttt{sinlineahni}. +% % \DescribeOption{conlineasha} % Agrega una línea horizontal separando cada artículo o ítem de los demás dentro del cuadro de la factura, como las facturas hechas a mano que tienen un espacio determinado para cada artículo. % @@ -951,10 +996,13 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \subsection{Elementos a mostrar o no mostrar en la factura} % % \DescribeOption{sinencabezadofactura} -% Esta opción permite que el usuario escriba antes del entorno de la factura, la identificación de él como emisor y los datos del cliente en el formato que desee sin que aparezca el cuadro prediseñado con esta información. Para hacer eso, el usuario tendría que escribir su diseño tan pronto escriba |\begin{document}| antes de |\begin{factura}|. +% Esta opción hace que no aparezcan los datos del cliente y el resumen del servicio en el formato prehecho en esta clase, dando la posibilidad al usuario de escribir los datos del cliente en el formato que desee sin que aparezca el cuadro prediseñado con esa información. Para hacer eso, el usuario tendría que escribir su diseño con la macro |\EncabezadoFactura|. % -% \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{sinmarcasfactura} +% Con |sinmarcasfactura| 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{monedaceldas} +% La opción |monedaceldas| pone la moneda en cada celda numérica dentro del cuadro de la factura; sin esta opción, las celdas no llevan el signo monetario sino que sale en el título de la celda monetaria, por ejemplo “Precio U. (Bs.)”. Con esta opción aparece en cada celda y no aparece en el título. % % \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. @@ -971,7 +1019,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \DescribeOption{vencimiento} % Cuando establecemos los días del crédito de la factura, se imprime una línea también con la fecha de vencimiento de la factura. Con esta opción podemos pedir que la fecha de vencimiento salga siempre en la facturas, inclusive cuando no sean facturas a crédito. % -% \DescribeOption{sindenom} +% \DescribeOption{sindenominacion} % Con esta opción no escribimos el texto “FACTURA” ni el número de la factura, suponiendo que venga escrito en el talonario. Las formas libres no deberían traer la denominación “FACTURA” ni el número, pero hay formas libres que sí tienen el texto y la numeración de la factura, cuando lo normal es que solamente tengan el número de control. Para los talonarios que tienen la numeración de cada factura existe esta opción. % % \DescribeOption{sinnumero} @@ -992,23 +1040,23 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \DescribeOption{sinexpandir} % No expande ninguna parte en la factura, es decir, deja tanto el cuadro de la factura como la descripción en su tamaño mínimo según el contenido que tenga. % -% \DescribeOption{centradesc} +% \DescribeOption{descripcioncentrada} % 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|, y por razones de espacio tampoco es compatible con los comandos de descuentos en los totales (subsección \ref{subsec:dctototales}). % -% \DescribeOption{centrado} +% \DescribeOption{filascentradas} % 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. % -% \DescribeOption{agrupado} -% No agrupa los totales finales de los items por gravamen sino por tipo ({\itshape sólo para el modo de totalización en columnas}). Con esta opción la agrupación es primero todos los subtotales y los descuentos (cuando aplica), luego las bases imponibles y después los IVA. Sin |agrupado| se ordena por porcentaje del gravamen. +% \DescribeOption{agrupatotales} +% No agrupa los totales finales de los items por gravamen sino por tipo ({\itshape sólo para el modo de totalización en columnas}). Con esta opción la agrupación consiste en que primero son mostrados todos los subtotales y los descuentos (cuando aplica), luego las bases imponibles y después los IVA. Sin |agrupatotales| se muestran estos totales por porcentaje del gravamen. % % % \subsection{Otras opciones} % % \DescribeOption{sinencabezadoreporte} -% Con esta opción de la clase, el reporte no empieza con el texto indicativo del proveedor, el cliente y la persona de contacto. +% Con esta opción de la clase, el reporte no empieza con el texto indicativo del proveedor, el cliente y la persona de contacto y se puede diseñar otro encabezado con |\EncabezadoReporte|. % % \DescribeOption{nospanish} % No carga |babel| en castellano\footnote{Por ejemplo para cargar {\ttfamily polyglossia} en su lugar.}, ni la codificación |T1| de las letras en el caso de compilar con pdf\LaTeX. Si no se especifica esta opción se cargan ambos paquetes. @@ -1057,7 +1105,7 @@ 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|, |\PosNotaFinal| 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|, |\PosDenominacion|, |\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.}; 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. % @@ -1082,11 +1130,11 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % % Al igual que con |\PosFecha*| podemos especificar la posición final en “|y|” de la caja para el texto “FORMA LIBRE”, así el texto se despliega hacia arriba y no hacia abajo. % -% \DescribeMacro{\PosDenom}{\macrooptcolor|\PosDenom|\marg{pos. x}\marg{pos. y}} +% \DescribeMacro{\PosDenominacion}{\macrooptcolor|\PosDenominacion|\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. +% Con |\PosDenominacion| controlamos dónde se ubica la caja que imprime la denominación del documento (e.g. “FACTURA”, “COTIZACIÓN”, etc) y su -opcional- número. % -% \DescribeMacro{\PosDenom*}{\macrooptcolor|\PosDenom*|\marg{pos. x}\marg{pos. y}} +% \DescribeMacro{\PosDenominacion*}{\macrooptcolor|\PosDenominacion*|\marg{pos. x}\marg{pos. y}} % % Al igual que con |\PosFecha*| y |\PosFormalibre*| 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. % @@ -1096,7 +1144,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % % \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*|, |\PosFormalibre*| y |\PosDenom*|. +% 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*|, |\PosFormalibre*| y |\PosDenominacion*|. % % \DescribeMacro{\PosNotaFinal}{\macrooptcolor|\PosNotaFinal|\marg{pos. x-inicial}\marg{pos x-final}\marg{pos. y}} % @@ -1222,7 +1270,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % % \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”. +% 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”. Si se trata de una cotización, el texto predeterminado no es “PAGADO” sino “Por el emisor”. % % \DescribeMacro{\Proveedor}{\macrooptcolor|\Proveedor|\marg{texto}} % @@ -1243,9 +1291,31 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % % \subsection{Relativos a la moneda y a la numeración del documento factura} % -% \DescribeMacro{\Moneda}{\macrooptcolor|\Moneda|\marg{signo monetario}} +% \DescribeMacro{\Moneda}{\macrooptcolor|\Moneda|\marg{código de la moneda utilizada}} +% +% Cambia el signo monetario; por defecto es “Bs.”. +% +% \DescribeMacro{\Divisa}{\macrooptcolor|\Divisa|\marg{código de la divisa utilizada}} % -% Cambia el signo monetario, por defecto “Bs.”. +% Cambia la denominación de la divisa utilizada; por defecto es “\$”. +% +% \DescribeMacro{\TasaCambio}{\macrooptcolor|\TasaCambio|\marg{tasa de cambio moneda/divisa}} +% +% Establece la tasa de cambio de divisa a moneda. Al utilizar esta macro es porque debió declararse |divisa| como opción de la clase, y los montos especificados en la factura deberán estar dados por el usuario en divisas. Con esta opción se convierten los montos dados en divisas, a la moneda, usando la tasa de cambio especificada. +% +% \DescribeMacro{\TextoTasaCambio} +% En el archivo |factura.def| está alojada la leyenda aclaratoria sobre la tasa de cambio utilizada. Esta macro es |\TextoTasaCambio|, aparece como nota externa y está definida de la siguiente forma: +% +% \begin{center} +% \footnotesize +% |\slshape Tasa de cambio utilizada:\space {\bfseries\Moneda\numprint\@TasaCambio{}/\Divisa.}| +% +% |Total {\bfseries \@SignoMonetarioAux{\TotalDivisa}*.}| +% \end{center} +% +% Se puede cambiar el texto redefiniendo la macro con |\renewcommand|. Esto significa que esta macro no es como las demás que aceptan como argumento, el valor o texto a cambiar, sino que la macro en sí es el texto, tal como las que se usan para cambiar el texto sobre las notas de crédito y débito. Se eligió definirla de esta manera porque sería muy poco probable tener que cambiarlas, entonces no se dispuso de una macro para cambiarla como en los demás casos. +% +% Por otra parte, si se quiere que se imprima ese texto en otra ubicación y no como nota externa, habría que anular la nota externa con |\BeforeEndPreamble{\NotaExterna{}}| y luego establecer el texto en otra ubicación. Es necesario anular la nota externa con |\BeforeEndPreamble| porque esa nota la fija la clase después de haber procesado todo el preámbulo. Se puede fijar la leyenda en cualquier otra parte como la nota previa, la nota interna, la nota final o la descripción, por ejemplo así |\NotaInterna{\TextoTasaCambio}|. % % \DescribeMacro{\Num}{\macrooptcolor|\Num|\marg{núm}} % @@ -1259,9 +1329,9 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % % 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}{\macrooptcolor|\Denom|\marg{texto}} +% \DescribeMacro{\Denominacion}{\macrooptcolor|\Denominacion|\marg{texto}} % -% Cambia el nombre del documento a algo distinto de “FACTURA” o “COTIZACIÓN”. +% Cambia el nombre del documento a algo distinto de “FACTURA”, “COTIZACIÓN”, “NOTA DE CRÉDITO” o “NOTA DE DÉBITO”. % % % \subsection{Estableciendo la fecha del documento} @@ -1273,7 +1343,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % La fecha de emisión se guardará en el identificador “\texttt{FechaEmision}” perteneciente al paquete \texttt{datetime2} y podrá ser usado en cualquier parte del documento según las formas que provee dicho paquete. % % {\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*}{\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. @@ -1300,10 +1370,10 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % % La fecha calculada automáticamente se guarda en el identificador “\texttt{FechaVencimiento}” perteneciente al paquete \texttt{datetime2}, de manera que el usuario podrá hacer uso de esta fecha con los comandos que este paquete provee. % -% +% % \subsection{Descuentos en la totalización\label{subsec:dctototales}} % -% Podemos efectuar un descuento\footnote{Estas opciones de descuento en el subtotal no son compatibles con la opción de totalización en modo de |filas|, explicada en la sección \ref{sec:opciones}, y muy probablemente más adelante seguirán sin serlo.} sobre cualquiera de los subtotales; ese descuento puede ser porcentual (versión sin “|*|”) o dado en un monto fijo a sustraer del subtotal (variante con “|*|”). Podemos aplicar un descuento que aplique por igual a cualquier tipo de ítem con cualquier gravamen, o discriminado dependiendo del tipo de impuesto se aplica un descuento u otro. +% Podemos efectuar un descuento\footnote{Estas opciones de descuento en el subtotal no son compatibles con la opción de totalización en modo de |filas|, explicada en la sección \ref{sec:opciones}, y muy probablemente más adelante seguirán sin serlo.} sobre cualquiera de los subtotales; ese descuento puede ser porcentual (versión sin “|*|”) o dado en un monto fijo (en moneda o divisa) a sustraer del subtotal (variante con “|*|”). Podemos aplicar un descuento que aplique por igual a cualquier tipo de ítem con cualquier gravamen, o discriminado dependiendo del tipo de impuesto se aplica un descuento u otro. % % % \DescribeMacro{\Descuento}{\macrooptcolor|\Descuento|\marg{porcentaje}}\\ @@ -1332,7 +1402,17 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % Descuento específico para los elementos exentos de IVA. % % -% \subsection{Textos explicativos en la factura\label{subsec:textos}} +% \subsection{Textos presentes en la factura\label{subsec:textos}} +% +% \DescribeMacro{\Membrete}{\macrooptcolor|\Membrete|\marg{texto en formato de párrafos}} +% +% Las formas libres fiscales en Venezuela vienen de imprenta con la identificación del emisor que no se puede alterar y {\bfseries el usuario -estando en Venezuela- no puede usar este comando para diseñar el membrete con los datos del emisor} a menos de que le fuera a dar otro uso no fiscal al documento o que fuera para reproducir el membrete original para usarlo en una |prefactura|. +% +% Como argumento de este comando se escribe el diseño del membrete. Internamente, el argumento suministrado está dentro de un |minipage| y el área imprimible es desde la esquina superior izquierda a la esquina superior derecha del papel, sin márgenes, y desciente hasta lo que se haya definido como el margen superior, es decir, toda el área del margen superior está disponible puesto que el margen superior se define para que excluya jústamente el membrete o información de los datos del emisor. +% +% \DescribeMacro{\EncabezadoFactura}{\macrooptcolor|\EncabezadoFactura|\marg{texto en formato de párrafos}} +% +% Cuando se usa la opción |sinencabezadofactura| se evita que la clase escriba automáticamente el cuadro con los datos del cliente\footnote{A esto le llamamos “encabezado de factura”}, de manera que el usuario puede diseñar su propio espacio de datos del cliente y lo hace con esta macro \cs{EncabezadoFactura}, cuyo argumento es el texto completo de los datos del cliente, pudiendo en él usar las mismas macros que muestran las distintos variables que conforman ese cuadro de datos, a saber: \cs{RazonSocial}, \cs{RIF}, \cs{Direccion}, \cs{Telefono}, \cs{Email}, \cs{Contacto}. Para hacer uso de \cs{EncabezadoFactura} hay que llamar la clase con |sinencabezadofactura|, y al hacer esto, dejan de hacerse las verificaciones en cuanto a cuáles de las variables anteriores dejaron de establecerse, y por tanto no da error si alguna variable esencial no se estableció. % % \DescribeMacro{\Resumen}{\macrooptcolor|\Resumen|\marg{texto}} % @@ -1393,7 +1473,11 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % % \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. +% 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, y además la información de cada página no sale predeterminadamente como encabezado sino como pie de página puesto que el fondo -usualmente membrete- en todas las páginas no admite una cabecera. +% +% \DescribeMacro{\EncabezadoReporte}{\macrooptcolor|\EncabezadoReporte|\marg{texto en formato de párrafos}} +% +% Cuando se usa la opción |sinencabezadoreporte| se omite el encabezado del reporte donde aparecen los datos del proveedor y cliente. Se puede omitir este encabezado para diseñar otro usando el comando |\EncabezadoReporte|. % % \DescribeMacro{\EstiloPagina}{\macrooptcolor|\EstiloPagina|\oarg{estilo primera página}\marg{estilo páginas restantes}} % @@ -1457,30 +1541,32 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % % \subsection{Estableciendo los parámetros relativos a la notas de crédito o débito} % -% \DescribeMacro{\NotaNum}{\macrooptcolor|\NotaNum|\marg{núm}} +% \DescribeMacro{\NumNota}{\macrooptcolor|\NumNota|\marg{núm}} +% +% Establece el número de la factura que la nota de crédito o débito está corrigiendo por errores que repercuten en los montos monetarios. Esta macro establece el número de esa factura (anterior) que se está corrigiendo\footnote{Debe hacerse dentro del mismo período impositivo.}. Es necesario usar esta macro porque las notas de crédito y débito tienen una leyenda que debe indicar cuál es la factura (y su fecha) sobre la cual se elabora una nota de crédito o de débito. Ese texto está alojado en la macro |\TextoNotaDeCredito| para la nota de crédito y |\TextoNotaDeDebito| para la nota de débito y aparece como “nota interna” en el documento fiscal. Más adelante en la explicación de estas dos macros hay indicaciones sobre cómo cambiar el texto y cómo cambiar su ubicación\footnote{Se hace de igual manera que \cs{TextoTasaCambio}.}. % -% Establece el número de la factura que la nota de crédito o débito está corrigiendo por errores que repercuten en los montos monetarios. Esta macro establece el número de esa factura (anterior) que se está corrigiendo\footnote{Debe hacerse dentro del mismo período impositivo.}. Es necesario usar esta macro porque las notas de crédito y débito tienen una leyenda que debe indicar cuál es la factura (y su fecha) sobre la cual se elabora una nota de crédito o de débito. Ese texto está alojado en la macro |\TextoNotaDeCredito| para la nota de crédito y |\TextoNotaDeDebito| para la nota de débito y aparece como “nota interna” en el documento fiscal. Más adelante en la explicación de estas dos macros hay indicaciones sobre cómo cambiar el texto y cómo cambiar su ubicación. +% \DescribeMacro{\FechaNota}{\macrooptcolor|\FechaNota|\marg{fecha}} % -% \DescribeMacro{\NotaFecha}{\macrooptcolor|\NotaFecha|\marg{fecha}} +% Con esta macro establecemos la fecha de la factura a corregir con la nota de crédito o débito. Aplican los mismos comentarios que para el comando anterior |\NumNota|. El formato en el que esta fecha se presenta en la leyenda será el mismo formato en el que se presenta la fecha de emisión del documento, que puede cambiarse con |\FormatoFecha|. Lo predeterminado es el formato venezolano |dd-mm-aaaa|. % -% Con esta macro establecemos la fecha de la factura a corregir con la nota de crédito o débito. Aplican los mismos comentarios que para el comando anterior |\NotaNum|. El formato en el que esta fecha se presenta en la leyenda será el mismo formato en el que se presenta la fecha de emisión del documento, que puede cambiarse con |\FormatoFecha|. Lo predeterminado es el formato venezolano |dd-mm-aaaa|. +% Esta fecha de la factura a corregir con la nota se guarda el identificador “\texttt{FechaNota}” del paquete \texttt{datetime2} y podrá ser usado en cualquier parte del documento de la manera como se manipulan las fechas en este paquete. % -% Esta fecha de la factura a corregir con la nota se guarda el identificador “\texttt{NotaFecha}” del paquete \texttt{datetime2} y podrá ser usado en cualquier parte del documento de la manera como se manipulan las fechas en este paquete. +% \DescribeMacro{\FechaNota*}{\macrooptcolor|\FechaNota*|\marg{aaaa}\marg{mm}\marg{dd}} % -% \DescribeMacro{\NotaFecha*}{\macrooptcolor|\NotaFecha*|\marg{aaaa}\marg{mm}\marg{dd}} +% Con |\FechaNota*|, al igual que con |\Fecha*|, podemos dar la fecha en formato ISO: primero el año, luego el mes y luego el dia, gracias a la interfaz de \texttt{datetime2}. Esto no afecta la presentación de la fecha en el documento sino la forma como se la suministramos a la clase. % -% Con |\NotaFecha*|, al igual que con |\Fecha*|, podemos dar la fecha en formato ISO: primero el año, luego el mes y luego el dia, gracias a la interfaz de \texttt{datetime2}. Esto no afecta la presentación de la fecha en el documento sino la forma como se la suministramos a la clase. -% % \DescribeMacro{\TextoNotaDeCredito} % \DescribeMacro{\TextoNotaDeDebito} -%% En las notas de crédito y débito, la leyenda aclaratoria de a cuál factura se hace referencia está alojada en estas macros, definidas en |factura.def|. Estas macros |\TextoNotaDeCredito| y |\TextoNotaDeDebito| están definidas de la siguiente forma: +% En el archivo |factura.def| está alojada la leyenda aclaratoria sobre la factura a la que hace referencia la nota. Estas macros son |\TextoNotaDeCredito| y |\TextoNotaDeDebito|, aparecen como nota interna y están definidas de la siguiente forma, respectivamente: % % \begin{center} -% |Nota de crédito sobre la factura \NotaNum \space de fecha \NotaFecha.| \par -% |Nota de débito sobre la factura \NotaNum \space de fecha \NotaFecha.| +% |\slshape Nota de crédito sobre la factura \NumNota \space de fecha \FechaNota.| \par +% |\slshape Nota de débito sobre la factura \NumNota \space de fecha \FechaNota.| % \end{center} % -% respectivamente. Se pueden redefinir con |\renewcommand| para cambiar el texto. Por otra parte, si se quiere que se imprima ese texto en otra ubicación y no como nota interna, habría que anular la nota interna con |\AtEndPreamble{\NotaInterna{}}| y luego establecer el texto en otra ubicación. Es necesario anular la nota interna con |\AtEndPreamble| por la forma como la leyenda se establece en la clase, y se puede fijar la leyenda en cualquier otra parte como la nota externa, la nota final, la nota previa o la descripción, por ejemplo así |\NotaExterna{\TextoNotaDeCredito}|. +% Se puede cambiar el texto redefiniendo las macros con |\renewcommand|. Esto significa que estas macros no son como las demás que aceptan como argumento, el valor o texto a cambiar, sino que la macro en sí es el texto, tal como |\TextoTasaCambio|. Se eligió definirlas de esta manera porque sería muy poco probable tener que cambiarlas, entonces no se dispuso de una macro para cambiarlas como en los demás casos. +% +% Por otra parte, si se quiere que se imprima ese texto en otra ubicación y no como nota interna, habría que anular la nota interna con |\BeforeEndPreamble{\NotaInterna{}}| y luego establecer el texto en otra ubicación. Es necesario anular la nota interna con |\BeforeEndPreamble| porque esa nota la fija la clase después de haber procesado todo el preámbulo. Se puede fijar la leyenda en cualquier otra parte como la nota previa, la nota externa, la nota final o la descripción, por ejemplo así |\NotaExterna{\TextoNotaDeCredito}|. % % % \subsection{Definiciones en archivos separados \label{subsec:aux}} @@ -1557,7 +1643,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % 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. % % \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. % % {\itshape Todas las variaciones de estos comandos |\Item| pueden apreciarse en los ejemplos.} @@ -1730,9 +1816,9 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % % Con este comando podemos cambiar la tipografía del texto “FORMA LIBRE” que debe salir solamente en las prefacturas puesto que ese texto va impreso en todas las hojas fiscales. % -% \DescribeMacro{\LetraDenom}{\macrooptcolor|\LetraDenom|\marg{tipo de letra}} +% \DescribeMacro{\LetraDenominacion}{\macrooptcolor|\LetraDenominacion|\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” (este último para prefacturas) se cambia con |\LetraDenom|. +% 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” (este último para prefacturas) se cambia con |\LetraDenominacion|. % % \DescribeMacro{\LetraNumeracion}{\macrooptcolor|\LetraNumeracion|\marg{tipo de letra}} % @@ -1774,7 +1860,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \begin{verbatim} \begin{factura} \Item{1}{Artículo gravado con IVA general}{1000} - \Item{3}{Otro artículo gravado con IVA general}{1500}{10}[Descripción larga + \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} @@ -1809,7 +1895,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: |\Moneda|, |\RazonSocial|, |\RIF|, |\Direccion|, |\Telefono|, |\Email|, |\Contacto|, |\Emisor|, |\Conforme|, |\Proveedor|, |\Fecha|, |\NotaFecha|, |\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|, |\NotaNum|, |\Resumen|, |\NotaPrevia|, |\NotaInterna|, |\NotaExterna|, |\NotaFinal|, |\TituloReporte|. Cualquiera de estas macros se puede usar cualquier parte del documento, ya no con la misma función para definir valores como en el preámbulo. +% 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: |\Moneda|, |\Divisa|, |\TasaCambio|, |\RazonSocial|, |\RIF|, |\Direccion|, |\Telefono|, |\Email|, |\Contacto|, |\Emisor|, |\Conforme|, |\Proveedor|, |\Fecha|, |\FechaNota|, |\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|, |\NumNota|, |\Resumen|, |\NotaPrevia|, |\NotaInterna|, |\NotaExterna|, |\NotaFinal|, |\TituloReporte|. Cualquiera de estas macros se puede usar cualquier parte del documento, ya no con la misma función para definir valores como en el preámbulo. % % Esas macros, en el preámbulo funcionan para definir valores y textos, pero si ya no estamos en el preámbulo sino dentro del cuerpo del documento y escribimos una de esas macros\footnote{Dentro del cuerpo del documento estas macros obviamente no aceptan argumentos.}, nos va a servir para escribir lo que se definió en el preámbulo bajo esa macro, así sea con macros que no llegamos a utilizar explícitamente pero que tienen un valor predefinido como |\Moneda|. % @@ -1820,14 +1906,13 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % Total & Comando \\ \hline % Bases imponibles & |\BIG|, |\BIR|, |\BIA|, |\BIE|\footnote{Lo llamamos \cs{BIE} para mantener la nomenclatura pero no es una base imponible ya que es un monto exento de impuesto.} \\ % IVA & |\AlicuotaG|, |\AlicuotaR|, |\AlicuotaA| \\ -% Descuento en IVA & |\AlicuotaGDesc| \\ % Subtotales\footnote{El subtotal es el monto sin aplicar descuentos generales (los que se hacen con los comandos \cs{Descuento***}, es decir, los descuentos que no son individuales a cada item sino al totalizar), que coincide con la base imponible cuando no hay esos descuentos.} & |\SubtG|, |\SubtE|, |\SubtR|, |\SubtA| \\ % Descuentos & |\DescG|, |\DescE|, |\DescR|, |\DescA| \\ % Total final & |\Total| \\ % \hline % \end{tabular} % -% También ya mencionamos que la fecha de emisión y vencimiento se pueden acceder con la interfaz dada por el paquete |datetime2|, por ejemplo, para mostrar la fecha de emisión, podremos usar tanto |\Fecha| como |\DTMusedate{FechaEmision}|. Para la fecha de vencimiento, tanto |\FechaVencimiento| como |\DTMusedate{FechaVencimiento}|, y para la fecha de la factura a la que la nota de crédito/débito hace referencia, |\NotaFecha| o |\UDMusedate{NotaFecha}|. +% También ya mencionamos que la fecha de emisión y vencimiento se pueden acceder con la interfaz dada por el paquete |datetime2|, por ejemplo, para mostrar la fecha de emisión, podremos usar tanto |\Fecha| como |\DTMusedate{FechaEmision}|. Para la fecha de vencimiento, tanto |\FechaVencimiento| como |\DTMusedate{FechaVencimiento}|, y para la fecha de la factura a la que la nota de crédito/débito hace referencia, |\FechaNota| o |\UDMusedate{FechaNota}|. % % La cantidad de ítems en la factura la podemos acceder via el contador |NumItem|, por ejemplo así |\arabic{NumItem}|. % @@ -1875,7 +1960,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \end{factura} \end{document} \end{verbatim} -} +} % \iffalse %</literal> % \fi @@ -1891,31 +1976,31 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % Con esta versión de \cs{BeforeEndPreamble}, lo agregado pasa a ocupar el primer lugar, es decir, las invocaciones previas de esta macro quedan después, funcionando así en modo “{\slshape prepend}”. % % +% \DescribeMacro{\@PosicionaDenominacion} % \DescribeMacro{\@PosicionaFechas} +% \DescribeMacro{\@PosicionaFirmas} % \DescribeMacro{\@PosicionaFormalibre} -% \DescribeMacro{\@PosicionaDenom} -% \DescribeMacro{\@PosicionaNumControl} % \DescribeMacro{\@PosicionaNotaFinal} -% \DescribeMacro{\@PosicionaFirmas} +% \DescribeMacro{\@PosicionaNumControl} +% \indent 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|. +% % \DescribeMacro{\@EscribeDatos} % \DescribeMacro{\@EscribeDatosResumen} % \DescribeMacro{\@EscribeDatosReporte} +% \DescribeMacro{\@EscribeEncFactura} +% \DescribeMacro{\@EscribeEncReporte} +% \DescribeMacro{\@EscribeItemsEnCSV} +% \DescribeMacro{\@EscribeMembrete} % \DescribeMacro{\@EscribeNotaFinal} % \DescribeMacro{\@EscribeNotaPrevia} % \DescribeMacro{\@DibujaLinea} -% \indent 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|. -% -% \DescribeMacro{\@EscribeItemsEnCSV} -% \DescribeMacro{\@EscribeTotalesEnCSV} -% \DescribeMacro{\@EncabezadoFactura} -% \DescribeMacro{\@EncabezadoReporte} % \indent 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. % % Todas estas macros llaman a su correspondiente macro con el estilo del elemento a escribir, que comienza con |\@Estilo|, y con cambiar su contenido podemos cambiar la forma como es escrita esa parte de la factura en la hoja. % % \DescribeMacro{\@EstiloFechas} % \DescribeMacro{\@EstiloFormalibre} -% \DescribeMacro{\@EstiloDenom} +% \DescribeMacro{\@EstiloDenominacion} % \DescribeMacro{\@EstiloNumControl} % \DescribeMacro{\@EstiloNotaPrevia} % \DescribeMacro{\@EstiloNotaFinal} @@ -1944,24 +2029,26 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % % \noindent \begin{tabular}{>{\ttfamily}ll} % \rmfamily \bfseries Opción & \bfseries Significado \\ \hline -% agrupado & Agrupa los totales por tipo en el modo de columnas. \\ -% centradesc & Centra la descripción de los ítems. \\ -% centrado & Centra los totales en el modo de filas. \\ +% agrupatotales & Agrupa los totales por tipo en el modo de columnas. \\ % conlineasha & Dibuja una línea separando los artículos entre sí. \\ % conreporte & Produce la factura y el reporte. \\ % cotizacion & Produce una cotización. \\ % csv & Genera un archivo |.csv| con la información numérica de la factura. \\ % dcu & Descripción, cantidad, precio unitario. \\ +% descripcioncentrada & Centra la descripción de los ítems. \\ % descuentos & A cada artículo se le puede asignar un descuento individual. \\ +% divisa & Permite la entrada de datos monetarios en divisas. \\ % dosfirmas & Incluye los dos espacios para firmar. \\ % duc & Descripción, precio unitario, cantidad. \\ -% 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. \\ +% filascentradas & Centra los totales en el modo de filas. \\ % G & Agrega una “|G|” en los ítems con IVA general. \\ -% impdesc & Escribe la denominación del IVA en la descripción. \\ -% iva & Expresa en otra columna el porcentaje de IVA para cada elemento a facturar. \\ -% linea & Dibuja una línea que inutiliza el espacio en blanco en el cuadro de la factura. \\ +% iva & Escribe en otra columna para mostrar explícito el IVA de cada elemento. \\ +% ivadescripcion & Escribe la denominación del IVA en la descripción. \\ +% linea & Dibuja una línea que inutiliza el espacio en blanco en la factura. \\ +% monedaceldas & Agrega el signo monetario dentro de cada celda numérica. \\ +% monedadespues & Pone el signo monetario después de los montos numéricos. \\ % nospanish & No carga |babel| ni |fontenc|. \\ % numitem & Enumera los ítems en la factura bajo otra columna extra al principio. \\ % notadecredito & Produce una nota de crédito. \\ @@ -1972,10 +2059,10 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \noindent \begin{tabular}{>{\ttfamily}ll} % \rmfamily \bfseries Opción & \bfseries Significado \\ \hline % sincantidad & Los artículos van sin expresar su cantidad. \\ -% sindenom & No escribe la denominación del documento ni el número. \\ -% \footnotesize sinencabezadofactura & No escribe los datos del cliente al inicio de la factura. \\ -% \footnotesize sinencabezadoreporte & No escribe la identificación del cliente y el proveedor \\ -% & al inicio del reporte. \\ +% sindenominacion & No escribe la denominación del documento ni el número. \\ +% sinencabezadofactura & No escribe los datos del cliente al inicio de la factura. \\ +% sinencabezadoreporte & No escribe la identificación del cliente y el proveedor \\ +% & al inicio del reporte. \\ % sinexpandir & No expande elementos en la factura. \\ % sinfirmas & No incluye espacios para firmar. \\ % siniva & No incluye IVA, pero lo deja expresado. \\ @@ -1989,14 +2076,15 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % sinlineasvi & No dibuja las líneas verticales internas. \\ % sinlineasve & No dibuja las líneas verticales externas. \\ % sinlineasv & No dibuja ninguna línea vertical. \\ -% sinmarcas & No escribe el carácter de fin de línea ni el carácter en las celdas vacías \\ +% sinmarcasfactura & 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 del documento, cuando no se usa |sindenom|. \\ +% sinnumero & No pone el número del documento cuando no se usa |sindenominacion|. \\ % sintotales & No escribe los totales al final del cuadro; para cotizaciones. \\ % sinreverso & No compila el reverso de la factura así se haya escrito. \\ % soloreporte & Produce únicamente el reporte. \\ -% subtotal & En otra columna muestra el subtotal de cada ítem antes aplicar descuento. \\ +% subtotal & En otra columna muestra el subtotal de cada ítem antes aplicar \\ +% & descuento. \\ % todosiva & Expresa todos los tipos de IVA. \\ % twoside & Imprime el reporte a dos caras. \\ % unafirma & Sólo incluye la firma del emisor. \\ @@ -2018,7 +2106,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % |\Contacto| & Persona de contacto. \\ % |\Credito| & Establece la cantidad de días para el crédito de la factura. \\ % |\dctoref| & Muestra al descuento del ítem referenciado. \\ -% |\Denom| & Nombre de la denominación de documento. \\ +% |\Denominacion| & Nombre de la denominación de documento. \\ % |\descref| & Muestra a la descripción del ítem referenciado. \\ % |\Descripcion| & Descripción larga de la factura\footnote{El comando \cs{Descripcion} se escribe dentro del documento, luego del ambiente \texttt{factura}, y no en el preámbulo.}. \\ % |\Descuento| & Porcentaje de descuento para todos los elementos. \\ @@ -2026,13 +2114,14 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % |\Descuento[GRAE]| & Descuento en porcentaje, discriminado según el tipo de ítem. \\ % |\Descuento[GRAE]*| & Descuento en el subtotal, discriminado según el tipo de ítem. \\ % |\Direccion| & Dirección del cliente. \\ +% |\Divisa| & Cambia el signo monetario a mostrar para la divisa. \\ % |\Email| & E-mail del cliente. \\ % |\Emisor| & Nombre de quien emite la factura, para el espacio de la firma. \\ +% |\EncabezadoFactura| & Establece el cuadro personalizado con los datos del cliente para la factura. \\ +% |\EncabezadoReporte| & Establece el encabezado personalizado del reporte. \\ % |\EstiloPagina| & Establece el estilo de página del reporte. \\ % |\Fecha| & Establece la fecha de emisión de la factura en formato predeterminado. \\ % |\Fecha*| & Establece la fecha de emisión de la factura en formato ISO. \\ -% |\NotaFecha| & Fecha de la factura a corregir con una nota de crédito o débito. \\ -% |\NotaFecha*| & Fecha (formato ISO) de la factura a corregir con una nota de crédito o débito. \\ % |\FirmaFactura| & Carga la imagen de la firma en la factura. \\ % |\FirmaReporte| & Carga la imagen de la firma en el reporte\footnote{El comando \cs{FirmaReporte} se escribe dentro del ambiente \texttt{reporte} y no en el preámbulo.}. \\ % |\FondoFactura| & Carga la imagen del fondo de la factura. \\ @@ -2052,8 +2141,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \newpage % \noindent \begin{tabular}{>{\ttfamily}ll} % \rmfamily \bfseries Comando & \bfseries Significado \\ \hline -% |\LetraNotaFinal| & Tipografía para la nota final. \\ -% |\LetraDenom| & Tipografía para la denominación del documento. \\ +% |\LetraDenominacion| & 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. \\ % |\LetraEncReporte| & Tipografía para la información del encabezado del reporte. \\ @@ -2063,6 +2151,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % |\LetraInfoPagina| & Tipografía para las cabeceras o pies de página del reporte. \\ % |\LetraItems| & Tipografía para los ítems en la factura. \\ % |\LetraNotaExterna| & Tipografía para la nota externa al cuadro de la factura. \\ +% |\LetraNotaFinal| & Tipografía para la nota final. \\ % |\LetraNotaInterna| & Tipografía para la nota interna al cuadro de la factura. \\ % |\LetraNotaPrevia| & Tipografía para la nota previa al cuadro de la factura. \\ % |\LetraNumeracion| & Tipografía para las numeraciones. \\ @@ -2077,64 +2166,68 @@ 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. \\ -% |\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. \\ % |\LineaEncabezado| & Grosor de la línea de las cajas del encabezado de la factura, \\ % & curvatura de la esquina y sombra. \\ +% |\LineaFirmas| & Longitud y grosor de las líneas para firmar. \\ +% |\LineaNotaFinal| & Grosor de la línea de la caja de la nota final, \\ +% & curvatura de la esquina y sombra. \\ % |\LineaNotaPrevia| & Grosor de la línea de la caja de la nota previa al cuadro, \\ % & curvatura de la esquina y sombra. \\ -% |\LineaFirmas| & Longitud y grosor de las líneas para firmar. \\ -% \end{tabular} -% \newpage -% \noindent \begin{tabular}{>{\ttfamily}ll} -% \rmfamily \bfseries Comando & \bfseries Significado \\ \hline -% |\Moneda| & Cambia el signo monetario a mostrar. \\ +% |\Membrete| & Establece un membrete de la factura con los datos del emisor. \\ +% |\Moneda| & Cambia el signo monetario a mostrar para la moneda. \\ % |\Nombre| & Establece el nombre del cliente. \\ % |\NotaExterna| & Escribe una nota extra externa al cuadro de la factura. \\ % |\NotaExterna* **| & Con |*| agrega la nota externa después de la anterior; con |**|, al principio. \\ -% |\NotaFinal| & Establece la nota final. \\ -% |\NotaFinal* **| & Con |*| agrega la nota final después de la anterior; con |**|, al principio. \\ +% |\FechaNota| & Fecha de la factura a corregir con una nota de crédito o débito. \\ +% |\FechaNota*| & Fecha (formato ISO) de la factura a corregir con una nota de crédito/débito. \\ % |\NotaInterna| & Escribe una nota interna al cuadro de la factura. \\ % |\NotaInterna* **| & Con |*| agrega la nota interna después de la anterior; con |**|, al principio. \\ +% |\NotaFinal| & Establece la nota final. \\ +% |\NotaFinal* **| & Con |*| agrega la nota final después de la anterior; con |**|, al principio. \\ % |\NotaPrevia| & Escribe una nota antes del cuadro de la factura. \\ % |\NotaPrevia* **| & Con |*| agrega la nota previa después de la anterior; con |**|, al principio. \\ -% |\NotaNum| & Número de la factura a corregir con una nota de crédito o débito. \\ +% \end{tabular} +% \newpage +% \noindent \begin{tabular}{>{\ttfamily}ll} +% \rmfamily \bfseries Comando & \bfseries Significado \\ \hline % |\Num| & Número de la factura. \\ % |\NumControl| & Número de control de la factura. \\ +% |\NumNota| & Número de la factura a corregir con una nota de crédito o débito. \\ % |\NumSerieControl| & Número de serie de control de la factura. \\ -% |\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). \\ -% |\PosFormalibre| & Posición $(x,y)$ del texto “FORMA LIBRE”. \\ -% |\PosFormalibre*| & Posición $(x,y)$ del texto “FORMA LIBRE”. \\ -% & (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 \\ % & (el texto se despliega hacia arriba). \\ -% |\PosDenom| & Posición $(x,y)$ del texto de la denominación. \\ -% |\PosDenom*| & Posición $(x,y)$ del texto de la denominación \\ +% |\PosDenominacion| & Posición $(x,y)$ del texto de la denominación. \\ +% |\PosDenominacion*| & Posición $(x,y)$ del texto de la denominación \\ % & (el texto se despliega hacia arriba). \\ % |\PosFecha| & Posición $(x,y)$ de las fechas. \\ % |\PosFecha*| & Posición $(x,y)$ de las fechas \\ % & (el texto se despliega hacia arriba). \\ +% |\PosFormalibre| & Posición $(x,y)$ del texto “FORMA LIBRE”. \\ +% |\PosFormalibre*| & Posición $(x,y)$ del texto “FORMA LIBRE”. \\ +% & (el texto se despliega hacia arriba). \\ % |\PosFirmas| & Posición $(x_o,x_f,y)$ de las firmas. \\ +% |\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 \\ % |\Proveedor| & Nombre de quien firma el reporte. \\ % |\ptref| & Muestra al precio total del ítem referenciado. \\ % |\puref| & Muestra al precio unitario del ítem referenciado. \\ % |\RazonSocial| & Establece la razón social. \\ % |\Resumen| & Resumen. \\ % |\RIF| & R.I.F. del cliente. \\ -% |\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. \\ +% |\SepNotaFinal| & Separación interna entre el borde y el texto en la nota final. \\ % |\SepNotaPrevia| & Separación interna entre el borde y el texto en la nota previa. \\ % |\SepFilas| & Separación horizontal y vertical en los totales en el modo de filas. \\ % |\SepItemsExtra| & Separación vertical extra entre los elementos en la factura. \\ % |\SepVertical| & Separación vertical entre los distintos elementos de la factura. \\ % |\subtref| & Muestra al subtotal del ítem referenciado. \\ +% |\TasaCambio| & Establece la tasa de cambio moneda-divisa. \\ % |\Telefono| & Teléfono del cliente. \\ % |\TituloReporte| & Establece el título del reporte. \\ % |\TituloReporte*| & Establece el título del reporte a salir en las cabeceras o pies de página. \\ @@ -2186,11 +2279,15 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \newpage % \Ejemplo*[0.49]{ejemplo-reporte2} % \Ejemplo[0.49]{ejemplo-reporte2}*{2} -% \Ejemplo[0.49]{ejemplo-reporte2}{3} +% \Ejemplo[0.49]{ejemplo-reporte2}[\small]{3} % \newpage % \Ejemplo*[0.49]{ejemplo-reporte3} % \Ejemplo[0.49]{ejemplo-reporte3}*{2} -% \Ejemplo[0.49]{ejemplo-reporte3}{3} +% \Ejemplo[0.49]{ejemplo-reporte3}[\small]{3} +% \newpage +% \Ejemplo*[0.49]{ejemplo-reporte4} +% \Ejemplo[0.49]{ejemplo-reporte4}*{2} +% \Ejemplo[0.49]{ejemplo-reporte4}{3} % \newpage % \Ejemplo{beispiel-rechnung} % \newpage @@ -2211,8 +2308,6 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \newbool{DCU} \newbool{DUC} \newbool{Descuentos} -%% (quitado por no vigente) - % \newbool{Electro} \newbool{ExpAbajo}\booltrue{ExpAbajo} \newbool{IVA} \newbool{NumItem} @@ -2235,41 +2330,42 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \newbool{FormalibreXnegativo} \newbool{FormalibreYarriba} \newbool{FormalibreYnegativo} -\newbool{DenomXnegativo} -\newbool{DenomYarriba} -\newbool{DenomYnegativo} +\newbool{DenominacionXnegativo} +\newbool{DenominacionYarriba} +\newbool{DenominacionYnegativo} \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. -\newif\ifagrupado -\newif\ifcentradesc -\newif\ifcentrado +\newif\ifagrupatotales +\newif\ifdescripcioncentrada +\newif\iffilascentradas \newif\ifconlineasha \newif\ifconreporte \newif\ifcotizacion \newif\ifcsv \newif\ifdcu \newif\ifdescuentos +\newif\ifdivisa \newif\ifdosfirmas \newif\ifduc -%% (quitado por no vigente) - % \newif\ifelectro \newif\ifexpandecuadro \newif\iffilas \newif\ifG -\newif\ifimpdesc +\newif\ifivadescripcion \newif\ifiva \newif\iflinea +\newif\ifmonedaceldas +\newif\ifmonedadespues \newif\ifnospanish \newif\ifnotadecredito \newif\ifnotadedebito \newif\ifnumitem \newif\ifprefactura \newif\ifsincantidad -\newif\ifsindenom +\newif\ifsindenominacion \newif\ifsinencabezadofactura \newif\ifsinencabezadoreporte \newif\ifsinexpandir @@ -2285,7 +2381,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \newif\ifsinlineasv \newif\ifsinlineasve \newif\ifsinlineasvi -\newif\ifsinmarcas +\newif\ifsinmarcasfactura \newif\ifsinmonedatotales \newif\ifsinnumero \newif\ifsinreverso @@ -2302,6 +2398,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \newif\if@factura \@facturatrue \newif\if@reverso \@reversotrue \newif\if@reporte +\newif\if@TasaCambio \newif\if@FondoFactura \newif\if@FondoReporte \newif\if@FondoReporteStar @@ -2324,6 +2421,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \newif\if@DescAnum \newif\if@DescEnum \newif\if@DescuentoTotal +\newif\if@EscribeMoneda %% Longitudes para uso interno. \newlength{\@TamDatos} @@ -2359,8 +2457,8 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \newlength{\@SepTotales} \newlength{\@PosFechaX} \newlength{\@PosFechaY} -\newlength{\@PosDenomX} -\newlength{\@PosDenomY} +\newlength{\@PosDenominacionX} +\newlength{\@PosDenominacionY} \newlength{\@PosFirmasXuno} \newlength{\@PosFirmasXdos} \newlength{\@PosFirmasY} @@ -2406,7 +2504,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \newbox{\@CajaFirmaEmisor} \newbox{\@CajaFirmas} \newbox{\@CajaFecha} -\newbox{\@CajaDenom} +\newbox{\@CajaDenominacion} \newbox{\@CajaControl} \newbox{\@CajaFormalibre} \newbox{\@CajaNotaFinal} @@ -2426,38 +2524,47 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \newcommand{\CLASSWARNING}[1]{\ClassWarning{factura}{** #1. **}{}} \newcommand{\CLASSINFO}[1]{\ClassInfo{factura}{** #1. **}{}} +% TODO: Quitar en el futuro. + %% Opciones de la clase. -\DeclareOption{agrupado}{\agrupadotrue}% Agrupados los elementos totalizadores en el modo en columnas. -\DeclareOption{centradesc}{\centradesctrue}% Para centrar la descripción de cada ítem. -\DeclareOption{centrado}{\centradotrue}% Total y exento 'centrado'; sólo para estilo 'filas' +\DeclareOption{agrupatotales}{\agrupatotalestrue}% Agrupados los totalizadores en el modo en columnas. +\DeclareOption{agrupado}{\agrupatotalestrue}% TODO: Quitar en el futuro. \DeclareOption{conlineasha}{\conlineashatrue}% Una línea horizontal para cada ítem, como las facturas a mano. \DeclareOption{conreporte}{\conreportetrue}% Para imprimir factura y reporte. \DeclareOption{cotizacion}{\cotizaciontrue}% Cambia la denominación a 'COTIZACIÓN' y no 'FACTURA'. \DeclareOption{csv}{\csvtrue}% Para la salida en modo csv también. \DeclareOption{dcu}{\dcutrue}% Descripción, luego cantidad y luego precio unitario. -\DeclareOption{sindenom}{\sindenomtrue}% No agrega el texto con la denominación del documento, para las formas libres que tienen el número de la factura ya impreso. +\DeclareOption{descripcioncentrada}{\descripcioncentradatrue}% Para centrar la descripción de cada ítem en la factura. +\DeclareOption{centradesc}{\descripcioncentradatrue}% TODO: Quitar en el futuro. \DeclareOption{descuentos}{\descuentostrue}% Para los descuentos individuales. +\DeclareOption{divisa}{\divisatrue}% Para cambiar la moneda por la divisa y aceptar entrada de montos en divisas. \DeclareOption{dosfirmas}{\dosfirmastrue}% Pone las dos firmas para firmar. \DeclareOption{duc}{\ductrue}% Descripción, luego precio unitario y luego cantidad. -\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{filascentradas}{\filascentradastrue}% Centra los totales en en modo de 'filas'. +\DeclareOption{centrado}{\filascentradastrue}% TODO: Quitar en el futuro. \DeclareOption{G}{\Gtrue}% Con esta opción sale la letra 'G' en los items con IVA general, y sale el porcentaje en la base imponible general. -\DeclareOption{impdesc}{\impdesctrue}% Para el tipo de impuesto en la descripción y no en el precio unitario y total. \DeclareOption{iva}{\ivatrue}% Para la columna del IVA. +\DeclareOption{ivadescripcion}{\ivadescripciontrue}% Para el tipo de impuesto en la descripción y no en el precio unitario y total. +\DeclareOption{impdesc}{\ivadescripciontrue}% TODO: Quitar en el futuro. \DeclareOption{linea}{\lineatrue}% Para la línea que inutiliza el espacio en blanco. +\DeclareOption{monedadespues}{\monedadespuestrue}% Para que el signo monetario salga después del monto y no antes. +\DeclareOption{monedaceldas}{\monedaceldastrue}% Para poner el signo monetario en cada celda con montos. \DeclareOption{nospanish}{\nospanishtrue}% No carga babel en castellano ni la codificación T1 de las letras. \DeclareOption{notadecredito}{\notadecreditotrue}% Produce una nota de crédito. \DeclareOption{notadedebito}{\notadedebitotrue}% Produce una nota de débito. \DeclareOption{numitem}{\numitemtrue}% Para poner una columna extra al principio con el número del ítem. \DeclareOption{prefactura}{\prefacturatrue}% La prefactura; con el diseño de la forma libre... para enviar por correo electrónico, fax o imprimir preliminarmente. \DeclareOption{sincantidad}{\sincantidadtrue}% Para no poner el campo de la cantidad. +\DeclareOption{sindenominacion}{\sindenominaciontrue}% No agrega el texto con la denominación del documento, para las formas libres que tienen el número de la factura ya impreso. +\DeclareOption{sindenom}{\sindenominaciontrue}% TODO: Quitar en el futuro. \DeclareOption{sinencabezadofactura}{\sinencabezadofacturatrue}% Para no poner los datos del cliente y que el emisor haga ese diseño. \DeclareOption{sinencabezadoreporte}{\sinencabezadoreportetrue}% Para no poner el encabezado del reporte. \DeclareOption{sinexpandir}{\sinexpandirtrue}% No expande ninguna de las dos partes de la factura. \DeclareOption{sinfirmas}{\sinfirmastrue}% No agrega los espacios para firmar. -\DeclareOption{sinivaexpresado}{\sinivaexpresadotrue}% Cuando no se cobra IVA y tampoco se quiere que aparezca la totalización del IVA. \DeclareOption{siniva}{\sinivatrue}% No cobra IVA. +\DeclareOption{sinivaexpresado}{\sinivaexpresadotrue}% Cuando no se cobra IVA y tampoco se quiere que aparezca la totalización del IVA. \DeclareOption{sinlineahni}{\sinlineahnitrue}% Estilo 'sinlineahni'. \DeclareOption{sinlineahtot}{\sinlineahtottrue}% Estilo 'sinlineahtot'. \DeclareOption{sinlineahtit}{\sinlineahtittrue}% Estilo 'sinlineahtit'. @@ -2467,7 +2574,8 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \DeclareOption{sinlineasve}{\sinlineasvetrue}% Estilo 'sinlineasve'. \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{sinmarcasfactura}{\sinmarcasfacturatrue}% Para evitar que aparezcan los caracteres especiales cuando la descripción es larga. +\DeclareOption{sinmarcas}{\sinmarcasfacturatrue}% TODO: Quitar en el futuro. \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. @@ -2487,15 +2595,16 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \RequirePackage{xparse}% Algunos comandos los definimos con \NewDocumentCommand. \RequirePackage[absolute]{textpos}% Es necesario 'textpos' para colocar texto en ubicaciones arbitrarias. \RequirePackage{eso-pic}% Para el comando \AddToShipoutPicture. +\RequirePackage{atbegshi}% Para \AtBeginShipoutNext; ya 'eso-pic' no incluye a 'atbegshi'. \RequirePackage{xstring}% Lo usamos sólo para tomar el menos al principio de una longitud. \RequirePackage{calc}% 'calc' para hacer aritmética con las dimensiones. \RequirePackage{fp-upn}% Fundamental el paquete 'fp-upn' para todos los cálculos. \RequirePackage{numprint}% Con 'numprint' expresamos los totales en el formato requerido. \RequirePackage{tikz}% Para los recuadros del encabezado de la factura, \usetikzlibrary{shadows}% y para el de la descripción. - \tikzset{reuse path/.code={\pgfsyssoftpath@setcurrentpath{#1}}} - \tikzset{even odd clip/.code={\pgfseteorule}, protect/.code={ - \clip[overlay,even odd clip,reuse path=#1] + \tikzset{reuse path/.code={\pgfsyssoftpath@setcurrentpath{#1}}} + \tikzset{even odd clip/.code={\pgfseteorule}, protect/.code={ + \clip[overlay,even odd clip,reuse path=#1] (-2383.99999pt,-2383.99999pt) rectangle (2383.99999pt,2383.99999pt);}} \RequirePackage{tabularx}% Con 'tabularx' hacemos la tabla. \RequirePackage{environ}% Con 'environ' podemos usar tabularx dentro del ambiente de la factura y escribir texto en el enddef. @@ -2504,7 +2613,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \RequirePackage{anyfontsize}% Para las tipografías en tamaños arbitrarios. \RequirePackage{ifxetex}% Para poder modificar correctamente la metadata del PDF y agregar la versión de la clase. \RequirePackage{ifluatex}% Ditto. -\RequirePackage{zref-savepos}[2016/05/21]% Para guardar la posición en 'Y' expandiendo el cuadro, para la línea y para la firma en el reporte si la hubiera. +\RequirePackage{zref-savepos}% Para guardar la posición en 'Y' expandiendo el cuadro, para la línea y para la firma en el reporte si la hubiera. %% Hay que cargar siempre zref-savepos para poder compilar con LuaLaTeX porque este motor no tiene \pdfsavepos, \pdflastypos y zref-savepos las provee cuando no existen (motor LuaLaTex). %% Gracias a Alan Munn y a wipet (Thanks to Alan Munn and wipet). @@ -2549,16 +2658,17 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \fi} \fi -%% Lo hacemos compatible otra vez con LuaLaTeX +%% Lo hacemos otra vez compatible con LuaLaTeX. \ifluatex \let\pdfsavepos\savepos \let\pdflastypos\lastypos \fi +%% Macro que se va a ejecutar para establecer opciones; se ejecuta en el primer \AtEndPreamble. \def\@EstableceOpciones{% % Establecemos los parámetros y macros relativas a la fecha. \DTMsetstyle{\@FormatoFecha}\DTMsetup{datesep=\@FechaSeparadores}\gdef\DTMinformat{\@FormatoFechaEntrada} - + % Tomamos las acciones pertinentes dependiendo de las opciones de la clase (o condicionales activados en el preámbulo que cambian las opciones de la clase) \ifnotadedebito \ifnotadecredito @@ -2580,6 +2690,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \cotizacionfalse \fi \fi + \ifcotizacion\ifdefvoid{\@Credito}{}{\vencimientofalse}\fi \ifprefactura \ifcotizacion \prefacturafalse @@ -2608,7 +2719,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \fi \ifsinlineashe\booltrue{SinLineasHoriExt}\fi - \ifsindenom + \ifsindenominacion \else \ifcotizacion \else @@ -2643,8 +2754,8 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \CLASSWARNING{Las opciones para las firmas son excluyentes. Permanece activada 'unafirma'} \fi \fi - \ifsinfirmas\setcounter{@Firmas}{0}\fi - + \ifsinfirmas\setcounter{@Firmas}{0}\fi + \ifdcu \@cdufalse\ducfalse \booltrue{DCU}\boolfalse{DUC} @@ -2673,7 +2784,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \fi \fi \ifdescuentos\booltrue{Descuentos}\fi - \ifiva\impdesctrue\booltrue{IVA}\fi + \ifiva\ivadescripciontrue\booltrue{IVA}\fi \ifsubtotal \ifdescuentos \booltrue{Subtotal} @@ -2693,41 +2804,20 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \fi \fi - \ifcentrado + \iffilascentradas \iffilas \else - \centradofalse - \CLASSWARNING{La opcio'n 'centrado' no es compatible con el modo de totalizacio'n en columnas. Sin efecto opcio'n 'centrado'} + \filascentradasfalse + \CLASSWARNING{La opcio'n 'filascentradas' no es compatible con el modo de totalizacio'n en columnas. Sin efecto opcio'n 'filascentradas'} \fi \fi - \ifagrupado + \ifagrupatotales \iffilas - \agrupadofalse - \CLASSWARNING{La opcio'n 'agrupado' no es compatible con el modo de totalizacio'n en filas. Sin efecto opcio'n 'agrupado'} + \agrupatotalesfalse + \CLASSWARNING{La opcio'n 'agrupatotales' no es compatible con el modo de totalizacio'n en filas. Sin efecto opcio'n 'agrupatotales'} \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 - - % Se establece el texto de la nota de crédito o débito como nota interna. Para cambiarlo hay que anular el texto con \AtEndPreamble{\NotaInterna{}} - \ifnotadecredito - \NotaInterna{\TextoNotaDeCredito} - \CLASSINFO{Se establecio' el texto aclaratorio de la nota de cre'dito como 'nota interna'} - \fi - \ifnotadedebito - \NotaInterna{\TextoNotaDeDebito} - \CLASSINFO{Se establecio' el texto aclaratorio de la nota de de'bito como 'nota interna'} - \fi \iftodosiva \@BIRtrue \@BIAtrue \@Exentotrue \Gtrue \fi \ifsiniva\AtBeginDocument{\gdef\@ImpuestoG{0}\gdef\@ImpuestoR{0}\gdef\@ImpuestoA{0}}\fi \ifsinivaexpresado @@ -2746,7 +2836,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \expandecuadrotrue \fi \fi - \ifsinmarcas \def\@CaracterCR{\mbox{}} \def\@CaracterCeldasVacias{\mbox{}} \fi + \ifsinmarcasfactura \def\@CaracterCR{\mbox{}} \def\@CaracterCeldasVacias{\mbox{}} \fi \ifnospanish \else \RequirePackage[spanish]{babel}% Babel en castellano. @@ -2789,51 +2879,74 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \CLASSWARNING{La opcio'n 'csv' require generar la factura. Sin efecto opcio'n 'csv'} \fi \fi - + \iftwoside \@twosidetrue\@mparswitchtrue \else \@twosidefalse\@mparswitchfalse \fi} - -%% Antes de que se acabe el preámbulo. Sin *, hace append, con un * sustituye, con **, hace prepend. + +%% Antes de que se acabe el preámbulo, para agregar aquí cosas como cambios de opciones y que después puedan ser verificadas y validadas en el primer \AtEndPreamble. +%% Sin * hace append; con un * sustituye; con ** hace prepend. \NewDocumentCommand{\BeforeEndPreamble}{s s +m}{ \IfBooleanTF{#2} {\gpreto{\@BeforeEndPreamble}{#3}} {\IfBooleanTF{#1}{\long\gdef\@BeforeEndPreamble{#3}}{\gappto{\@BeforeEndPreamble}{#3}}}} +\BeforeEndPreamble{ + % Si hay una tasa de cambio especificada, pone la nota externa aclaratoria. + % Si se está usando divisas, cambia la moneda. + \ifdivisa + \if@TasaCambio + \NotaExterna{\TextoTasaCambio} + \else + \Moneda{\@Divisa} + \fi + \fi + + % Se establece el texto de la nota de crédito o débito como nota interna. Para cambiarlo hay que anular el texto con \AtEndPreamble{\NotaInterna{}} + \ifnotadecredito + \NotaInterna{\TextoNotaDeCredito} + \CLASSINFO{Se establecio' el texto aclaratorio de la nota de cre'dito como 'nota interna'} + \fi + \ifnotadedebito + \NotaInterna{\TextoNotaDeDebito} + \CLASSINFO{Se establecio' el texto aclaratorio de la nota de de'bito como 'nota interna'} + \fi} + %% Primer \AtEndPreamble: ejecuta \@EstableceOpciones, luego \@BeforeEndPreamble y luego otra vez \@EstableceOpciones. \AtEndPreamble{ \@EstableceOpciones \ifx\@undefined\@BeforeEndPreamble\else\@BeforeEndPreamble\@EstableceOpciones\fi % Escribimos en el .log las opciones cargadas: - \ifagrupado \CLASSINFO{Opcio'n cargada: agrupado}\fi - \ifcentradesc \CLASSINFO{Opcio'n cargada: centradesc}\fi - \ifcentrado \CLASSINFO{Opcio'n cargada: centrado}\fi + \ifagrupatotales \CLASSINFO{Opcio'n cargada: agrupatotales}\fi + \ifdescripcioncentrada \CLASSINFO{Opcio'n cargada: descripcioncentrada}\fi + \iffilascentradas \CLASSINFO{Opcio'n cargada: filascentradas}\fi \ifconlineasha \CLASSINFO{Opcio'n cargada: conlineasha}\fi \ifconreporte \CLASSINFO{Opcio'n cargada: conreporte}\fi \ifcotizacion \CLASSINFO{Opcio'n cargada: cotizacion}\fi \ifcsv \CLASSINFO{Opcio'n cargada: csv}\fi \ifdcu \CLASSINFO{Opcio'n cargada: dcu}\fi \ifdescuentos \CLASSINFO{Opcio'n cargada: descuentos}\fi + \ifdivisa \CLASSINFO{Opcio'n cargada: divisa}\fi \ifdosfirmas \CLASSINFO{Opcio'n cargada: dosfirmas}\fi \ifduc \CLASSINFO{Opcio'n cargada: duc}\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 - \ifimpdesc \CLASSINFO{Opcio'n cargada: impdesc}\fi + \ifivadescripcion \CLASSINFO{Opcio'n cargada: ivadescripcion}\fi \ifiva \CLASSINFO{Opcio'n cargada: iva}\fi \iflinea \CLASSINFO{Opcio'n cargada: linea}\fi + \ifmonedaceldas \CLASSINFO{Opcio'n cargada: monedaceldas}\fi + \ifmonedadespues \CLASSINFO{Opcio'n cargada: monedadespues}\fi \ifnospanish \CLASSINFO{Opcio'n cargada: nospanish}\fi \ifnotadecredito \CLASSINFO{Opcio'n cargada: notadecredito}\fi \ifnotadedebito \CLASSINFO{Opcio'n cargada: notadedebito}\fi \ifnumitem \CLASSINFO{Opcio'n cargada: numitem}\fi \ifprefactura \CLASSINFO{Opcio'n cargada: prefactura}\fi \ifsincantidad \CLASSINFO{Opcio'n cargada: sincantidad}\fi - \ifsindenom \CLASSINFO{Opcio'n cargada: sindenom}\fi + \ifsindenominacion \CLASSINFO{Opcio'n cargada: sindenominacion}\fi \ifsinencabezadofactura \CLASSINFO{Opcio'n cargada: sinencabezadofactura}\fi \ifsinencabezadoreporte \CLASSINFO{Opcio'n cargada: sinencabezadoreporte}\fi \ifsinexpandir \CLASSINFO{Opcio'n cargada: sinexpandir}\fi @@ -2849,7 +2962,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \ifsinlineasv \CLASSINFO{Opcio'n cargada: sinlineasv}\fi \ifsinlineasve \CLASSINFO{Opcio'n cargada: sinlineasve}\fi \ifsinlineasvi \CLASSINFO{Opcio'n cargada: sinlineasvi}\fi - \ifsinmarcas \CLASSINFO{Opcio'n cargada: sinmarcas}\fi + \ifsinmarcasfactura \CLASSINFO{Opcio'n cargada: sinmarcasfactura}\fi \ifsinmonedatotales \CLASSINFO{Opcio'n cargada: sinmonedatotales}\fi \ifsinnumero \CLASSINFO{Opcio'n cargada: sinnumero}\fi \ifsinreverso \CLASSINFO{Opcio'n cargada: sinreverso}\fi @@ -2864,9 +2977,8 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % Cargamos aquí 'geometry' para que sea después de haber establecido 'twoside'. \RequirePackage{geometry}} -%% Escribimos el total como comentario en el .log. -\AtEndDocument{% - \ifx\undefined\Total\else\immediate\write\@auxout{\gdef\noexpand\TotalX{\Total}}\fi +%% Escribimos el total como comentario en el .log, en un gancho \AtEndDocument. +\AtEndDocument{ \ifsintotales \else \if@factura\CLASSINFO{\@@Total: \space\space\space \Moneda \Total}\fi @@ -2891,10 +3003,6 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<class>\def\@ImpuestoA{\@AlicuotaA} %<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.31} %<def> @@ -2910,13 +3018,14 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \def\@FormatoFechaEntrada{dd-mm-yyyy} \def\@FechaSeparadores{-} -%% La moneda: +%% La moneda y la divisa: \def\@Moneda{Bs.} +\def\@Divisa{\$} %% (quitado por no vigente) % \def\@MonedaBs{Bs.} % \def\@MonedaBsS{Bs.S} % \def\@MonedaBsF{Bs.F} -\setlength\@EspacioSignoMonetario{.666ex} +\setlength{\@EspacioSignoMonetario}{1.5pt} %% (quitado por no vigente) %% Las fechas de la entrada de la reconversión monetaria: @@ -2924,10 +3033,10 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \DTMsavedate{FechaBs}{2019-02-15} %% Al lado de cada ítem va la letra que designa el gravamen que aplica sobre él: -\def\@DenomAlicuotaG{G} -\def\@DenomAlicuotaR{R} -\def\@DenomAlicuotaA{A} -\def\@DenomAlicuotaE{(E)} +\def\@SimboloAlicuotaG{G} +\def\@SimboloAlicuotaR{R} +\def\@SimboloAlicuotaA{A} +\def\@SimboloAlicuotaE{(E)} %% Macros que guardan textos que corresponden a nombres de campos: \def\@@Fecha{Fecha de emisi\'on:} @@ -2936,10 +3045,10 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \def\@@Control{N\textordmasculine\space CONTROL} \def\@@Datos{Datos del cliente} \def\@@Resumen{Resumen del servicio} -\def\@@DenomFactura{FACTURA} -\def\@@DenomCotiza{COTIZACI\'ON} -\def\@@DenomNotaDeCredito{NOTA DE CR\'EDITO} -\def\@@DenomNotaDeDebito{NOTA DE D\'EBITO} +\def\@@DenominacionFactura{FACTURA} +\def\@@DenominacionCotizacion{COTIZACI\'ON} +\def\@@DenominacionNotaDeCredito{NOTA DE CR\'EDITO} +\def\@@DenominacionNotaDeDebito{NOTA DE D\'EBITO} \def\@@RazonSocial{Raz\'on social:} \def\@@Nombre{Nombre:} \def\@@RIF{R.I.F.:} @@ -2963,8 +3072,6 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \def\@@IVA{IVA} \def\@@PrecioT{Precio T.} \def\@@AlicuotaG{IVA G} -%% (quitado por no vigente) - % \def\@@AlicuotaGDesc{Descuento IVA G} \def\@@AlicuotaR{IVA R} \def\@@AlicuotaA{IVA A} \def\@@BIG{BI G} @@ -2981,13 +3088,13 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \def\@@SubtotalA{Subtotal A} \def\@@SubtotalE{Subtotal E} -%% (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.} - %% Texto a mostrar en la nota de crédito o débito referenciando la factura a corregir. -\def\TextoNotaDeCredito{Nota de cr\'edito sobre la factura \NotaNum \space de fecha \NotaFecha.} -\def\TextoNotaDeDebito{Nota de d\'ebito sobre la factura \NotaNum \space de fecha \NotaFecha.} +%% Texto a mostrar por la conversión moneda/divisa. +\def\TextoNotaDeCredito{\slshape Nota de cr\'edito sobre la factura \NumNota \space de fecha \FechaNota.} +\def\TextoNotaDeDebito{\slshape Nota de d\'ebito sobre la factura \NumNota \space de fecha \FechaNota.} +\def\TextoTasaCambio{\slshape Tasa de cambio utilizada:\space + {\bfseries \@SignoMonetarioAux**{\@TasaCambio}/\Divisa.} + Total {\bfseries \@SignoMonetarioAux**{\TotalDivisa}{\@Divisa}.}} %% Texto a mostrar como cabecera o pie de página en los reportes, dependiente de si el reporte no tiene título declarado o sí lo tiene. \def\@InfoPaginaNoTitulo{\@LetraInfoPagina Reporte correspondiente a la factura n\'umero \@Num \space de fecha \@Fecha} @@ -3018,7 +3125,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %% Separación entre el teléfono y el carácter \@CaracterSeparaTelefonoEmail, y luego desde ese carácter hasta el email, %% para cuando no hay resumen. -\setlength{\@SeparaTelefonoEmail}{0.666em} +\setlength{\@SeparaTelefonoEmail}{0.3cm} %% Grosor de la línea de 'fancyhdr' para las cabeceras, en aquellas donde haya línea. \setlength{\@GrosorLineaInfoPag}{0.4pt} @@ -3029,7 +3136,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %</def> %<class|def> %<*class> -%% Fijamos en cero los descuentos totales (necesario). +%% Fijamos en cero los descuentos totales (necesario), y en 1 el factor de cambio divisa-moneda. \def\@DescuentoGporc{0} \def\@DescuentoRporc{0} \def\@DescuentoAporc{0} @@ -3038,26 +3145,29 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \def\@DescuentoRnum{0} \def\@DescuentoAnum{0} \def\@DescuentoEnum{0} -\FPset\PrecioUtempx{1} +\FPset\@TasaCambio{1} -%% \Fecha, \NotaFecha, \FormatoFecha, \Credito, \Moneda, \RazonSocial, \Nombre, \RIF, \CI, \Contacto, \Dirección, \Telefono, \Email, \Conforme, \Emisor, \Proveedor. +%% \Fecha, \FechaNota, \FormatoFecha, \Credito, \Moneda, \Divisa, \TasaCambio, \RazonSocial, \Nombre, \RIF, \CI, \Contacto, \Dirección, \Telefono, \Email, \Conforme, \Emisor, \Proveedor. \NewDocumentCommand{\Fecha}{s m g g}{% \IfBooleanTF{#1} {\AtEndPreamble{\DTMsavedate{FechaEmision}{#2-#3-#4}}} {\AtEndPreamble{\DTMsavedatex{FechaEmision}{#2}}}} \def\@Fecha{\DTMusedate{FechaEmision}} -\NewDocumentCommand{\NotaFecha}{s m g g}{% +\NewDocumentCommand{\FechaNota}{s m g g}{% \IfBooleanTF{#1} - {\AtEndPreamble{\DTMsavedate{NotaFecha}{#2-#3-#4}}} - {\AtEndPreamble{\DTMsavedatex{NotaFecha}{#2}}}} -\def\@NotaFecha{\DTMusedate{NotaFecha}} + {\AtEndPreamble{\DTMsavedate{FechaNota}{#2-#3-#4}}} + {\AtEndPreamble{\DTMsavedatex{FechaNota}{#2}}}} +\def\@FechaNota{\DTMusedate{FechaNota}} +\let\NotaFecha\FechaNota% TODO: Quitar en el futuro. \NewDocumentCommand{\FormatoFecha}{o g g}{% \IfValueT{#1}{\gdef\@FormatoFechaEntrada{#1}}\IfValueT{#2}{\gdef\@FormatoFecha{#2}}\IfValueT{#3}{\gdef\@FechaSeparadores{#3}}} \def\Credito#1{\gdef\@Credito{#1}\vencimientotrue} \def\Moneda#1{\gdef\@Moneda{#1}} +\def\Divisa#1{\gdef\@Divisa{#1}} +\def\TasaCambio#1{\FPset\@TasaCambio{#1}\@TasaCambiotrue} \def\RazonSocial#1{\gdef\@RazonSocial{#1}} \def\Nombre#1{\gdef\@RazonSocial{#1}\@Nombretrue} \def\RIF#1{\gdef\@RIF{#1}} @@ -3070,6 +3180,11 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \def\Emisor#1{\gdef\@Emisor{#1}} \def\Proveedor#1{\gdef\@Proveedor{#1}} +%% \Membrete, \EncabezadoFactura, \EncabezadoReporte. +\NewDocumentCommand{\Membrete}{+m}{\gdef\@Membrete{#1}} +\NewDocumentCommand{\EncabezadoFactura}{+m}{\gdef\@EncabezadoFactura{#1}} +\NewDocumentCommand{\EncabezadoReporte}{+m}{\gdef\@EncabezadoReporte{#1}} + %% Los descuentos totales. \NewDocumentCommand{\Descuento}{s m}{% \IfBooleanTF{#1} @@ -3095,15 +3210,19 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \IfBooleanTF{#1}{\@DescEnumtrue\gdef\@DescuentoEnum{#2}}{\@DescEnumfalse\gdef\@DescuentoEporc{#2}}% \@DescEtrue\@DescuentoTotaltrue} -\def\Denom#1{\gdef\@Denominacion{#1}}% La denominación puede ser 'FACTURA', 'COTIZACIÓN', 'NOTA DE CRÉDITO', 'NOTA DE DÉBITO' u otra. Se predetermina alguna de estas opciones según las opciones con las que se carga la clase. +\def\Denominacion#1{\gdef\@Denominacion{#1}}% La denominación puede ser 'FACTURA', 'COTIZACIÓN', 'NOTA DE CRÉDITO', 'NOTA DE DÉBITO' u otra. Se predetermina alguna de estas opciones según las opciones con las que se carga la clase. +\let\Denom\Denominacion% TODO: Quitar en el futuro. %% Número de la factura con \Num, número de control con \NumControl, y número de serie de control \NumSerieControl. +%% Si el número de control no se especifica, toma el mismo que el de la factura. +%% Si el número de serie de control no se especifica, toma '00'. \def\Num#1{\gdef\@Num{\nplpadding{\@DigitosNumeracion}\npthousandsep{}\numprint{#1}}} -\def\NumControl#1{\gdef\@NumControl{\nplpadding{\@DigitosNumeracion}\npthousandsep{}\numprint{#1}}}% Si el número de control no se especifica, toma el mismo que el de la factura -\def\NumSerieControl#1{\gdef\@NumSerieControl{#1}}% Si el número de serie de control no se especifica, toma '00'. +\def\NumControl#1{\gdef\@NumControl{\nplpadding{\@DigitosNumeracion}\npthousandsep{}\numprint{#1}}} +\def\NumSerieControl#1{\gdef\@NumSerieControl{#1}} % Número de la factura a la que en la nota de crédito o débito se hace referencia. -\def\NotaNum#1{\gdef\@NotaNum{\nplpadding{\@DigitosNumeracion}\npthousandsep{}\numprint{#1}}} +\def\NumNota#1{\gdef\@NumNota{\nplpadding{\@DigitosNumeracion}\npthousandsep{}\numprint{#1}}} +\let\NotaNum\NumNota% TODO: Quitar en el futuro. %% Información de página: cabeceras de páginas o pies de página. \def\InfoPagina#1{\gdef\@InfoPagina{#1}} @@ -3112,6 +3231,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \NewDocumentCommand{\Resumen}{+m}{\gdef\@Resumen{#1}} %% Nota previa (al cuadro), nota interna (del cuadro), nota externa (luego del cuadro) y nota final (luego de la descripción). +%% %% Sin *, sustituye; con un * hace append; con ** hace prepend. \NewDocumentCommand{\NotaPrevia}{s s +m}{% \IfBooleanTF{#2} {\gpreto{\@NotaPrevia}{#3}} @@ -3132,6 +3252,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. {\gpreto{\@NotaFinal}{#3}} {\IfBooleanTF{#1}{\gappto{\@NotaFinal}{#3}}{\gdef\@NotaFinal{#3}}}} +%% Primer \AtBeginDocument para hacer chequeos. Los demás se ejecutan todos después de este. \AtBeginDocument{% % Si no se especificó fecha, tomamos la de hoy. Además, advertimos cuando el documento se está compilando en una fecha distinta de la fecha establecida en el encabezado. \DTMifsaveddate{FechaEmision}{}{% @@ -3167,6 +3288,13 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % \fi % Efectuamos distintos chequeos para dar errores o advertencias si faltó algún dato por especificar. + \ifdivisa + \else + \if@TasaCambio + \CLASSWARNING{Se pidio' tasa de cambio sin pedir opcio'n divisa. Ignorando tasa de cambio} + \FPset\@TasaCambio{1}\@TasaCambiofalse + \fi + \fi \if@reporte \ifsinencabezadoreporte \ifdefvoid{\@RazonSocial}{\CLASSWARNING{No se especifico' la razo'n social. Puede dar error}}{}% @@ -3187,12 +3315,12 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \fi \if@factura \ifnotadecredito - \ifdefvoid{\@NotaNum}{\CLASSERROR{Debe definirse el nu'mero de la factura a corregir con una nota de cre'dito}}{} - \DTMifsaveddate{NotaFecha}{}{\CLASSERROR{Debe definirse la fecha de la factura a corregir con una nota de cre'dito}} + \ifdefvoid{\@NumNota}{\CLASSERROR{Debe definirse el nu'mero de la factura a corregir con una nota de cre'dito}}{} + \DTMifsaveddate{FechaNota}{}{\CLASSERROR{Debe definirse la fecha de la factura a corregir con una nota de cre'dito}} \fi \ifnotadedebito - \ifdefvoid{\@NotaNum}{\CLASSERROR{Debe definirse el nu'mero de la factura a corregir con una nota de de'bito}}{} - \DTMifsaveddate{NotaFecha}{}{\CLASSERROR{Debe definirse la fecha de la factura a corregir con una nota de de'bito}} + \ifdefvoid{\@NumNota}{\CLASSERROR{Debe definirse el nu'mero de la factura a corregir con una nota de de'bito}}{} + \DTMifsaveddate{FechaNota}{}{\CLASSERROR{Debe definirse la fecha de la factura a corregir con una nota de de'bito}} \fi \ifsinencabezadofactura \CLASSWARNING{Se pidio la opcio'n 'sinencabezadofactura'; no se esta' verificando si esta'n definidos algunos datos del cliente} @@ -3211,19 +3339,19 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % Fijamos la denominación del documento paras las cotizaciones, facturas o notas de crédito o débito, que son casos particulares del modo 'factura'. \ifdefvoid{\@Denominacion}{% \ifcotizacion - \Denom{\@@DenomCotiza}% + \Denominacion{\@@DenominacionCotizacion}% \else \ifnotadecredito - \Denom{\@@DenomNotaDeCredito}% + \Denominacion{\@@DenominacionNotaDeCredito}% \else \ifnotadedebito - \Denom{\@@DenomNotaDeDebito}% + \Denominacion{\@@DenominacionNotaDeDebito}% \else - \Denom{\@@DenomFactura}% + \Denominacion{\@@DenominacionFactura}% \fi \fi \fi}{}% - \ifsindenom + \ifsindenominacion \else \ifcotizacion \else @@ -3244,7 +3372,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \gdef\@FechaVencimiento{\DTMusedate{FechaVencimiento}}}% \ifx\@undefined\@NumControl\let\@NumControl\@Num\fi \ifx\@undefined\@NumSerieControl\gdef\@NumSerieControl{00}\fi - + % Establecemos los porcentajes de las alícuotas, y redondeamos los descuentos. \FPupn\@AlicuotaGporc{\@AlicuotaG{} 100 * \@DigitosPorc{} round clip}% \FPupn\@AlicuotaRporc{\@AlicuotaR{} 100 * \@DigitosPorc{} round clip}% @@ -3261,6 +3389,8 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % Una vez definido todo en el preámbulo, los comandos usados para definir campos servirán para mostrar el campo que se definió con ese comando. \def\Moneda{\@Moneda}% + \def\Divisa{\@Divisa}% + \def\TasaCambio{\@TasaCambio}% \def\RazonSocial{\@RazonSocial}% \let\Nombre\RazonSocial \def\RIF{\@RIF}% @@ -3274,12 +3404,12 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \def\Proveedor{\@Proveedor}% \def\Fecha{\@Fecha}% \def\FechaVencimiento{\@FechaVencimiento}% - \def\NotaFecha{\@NotaFecha}% + \def\FechaNota{\@FechaNota}% \def\Credito{\@Credito}% \def\Num{\@Num}% \def\NumSerieControl{\@NumSerieControl}% \def\NumControl{\@NumControl}% - \def\NotaNum{\@NotaNum}% + \def\NumNota{\@NumNota}% \def\NotaFinal{\@NotaFinal}% \def\Resumen{\@Resumen}% \def\NotaPrevia{\@NotaPrevia}% @@ -3287,9 +3417,13 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \def\NotaExterna{\@NotaExterna}% \def\TituloReporte{\@TituloReporte}} +\setlength{\parindent}{0pt} +\setlength{\lineskip}{0pt}% + %</class> %<*class|def> %% Posiciones (X,Y) de los objetos: i) fecha, ii) forma libre, iii) número de control, vi) denominación, v) nota final, vi) firmas. +%% Con * abren hacia arriba las cajas. Los valores negativos se aceptan. %<*class> \NewDocumentCommand{\PosFecha}{s m m}{ \setlength{\@PosFechaX}{#2} @@ -3321,14 +3455,15 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<def>\PosControl*{0cm}{-2.4cm} %<*class> -\NewDocumentCommand{\PosDenom}{s m m}{ - \setlength{\@PosDenomX}{#2} - \setlength{\@PosDenomY}{#3} - \IfBooleanTF{#1}{\booltrue{DenomYarriba}}{\boolfalse{DenomYarriba}} - \IfBeginWith{#2}{-}{\booltrue{DenomXnegativo}}{\boolfalse{DenomXnegativo}} - \IfBeginWith{#3}{-}{\booltrue{DenomYnegativo}}{\boolfalse{DenomYnegativo}}} +\NewDocumentCommand{\PosDenominacion}{s m m}{ + \setlength{\@PosDenominacionX}{#2} + \setlength{\@PosDenominacionY}{#3} + \IfBooleanTF{#1}{\booltrue{DenominacionYarriba}}{\boolfalse{DenominacionYarriba}} + \IfBeginWith{#2}{-}{\booltrue{DenominacionXnegativo}}{\boolfalse{DenominacionXnegativo}} + \IfBeginWith{#3}{-}{\booltrue{DenominacionYnegativo}}{\boolfalse{DenominacionYnegativo}}} +\let\PosDenom\PosDenominacion% TODO: Quitar en el futuro. %</class> -%<def>\PosDenom*{0cm}{4.5cm} +%<def>\PosDenominacion*{0cm}{4.5cm} %<*class> \NewDocumentCommand{\PosNotaFinal}{s m m m}{ @@ -3383,39 +3518,32 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<class>\def\SepItemsExtra#1{\setlength{\@SeparaItemsExtra}{#1}} %<def>\SepItemsExtra{0pt} -%% Separación interna entre la línea y el texto de la descripción. +%% Separación interna entre la línea y el texto de la descripción, y de la nota final. %<class>\def\SepDescripcion#1{\setlength{\@SeparaInternaDescripcion}{#1}} %<def>\SepDescripcion{6pt} - %<class>\def\SepNotaFinal#1{\setlength{\@SeparaInternaNotaFinal}{#1}} %<def>\SepNotaFinal{5pt} -%% Grosor de la línea de las cajas del encabezado, curvatura de la esquina y sombra. +%% Para i) encabezado, ii) nota previa, iii) description, iv) nota final: grosor de la línea de las cajas, curvatura de la esquina y sombra. %% (si pedimos linea de 0pt, todo queda en cero y no se abre el ambiente TikZ). %<class>\NewDocumentCommand{\LineaEncabezado}{m g g}{ %<class> \setlength{\@GrosorLineaEncabezado}{#1} %<class> \IfValueT{#2}{\setlength{\@EsquinaLineaEncabezado}{#2}} %<class> \IfValueT{#3}{\setlength{\@SombraEncabezado}{#3}}} %<def>\LineaEncabezado{0.4pt}{10pt}{0pt} - -%% Grosor de la línea de la nota previa, curvatura de la esquina y sombra. -%% (si pedimos linea de 0pt, todo queda en cero y no se abre el ambiente TikZ). +%<class> %<class>\NewDocumentCommand{\LineaNotaPrevia}{m g g}{ %<class> \setlength{\@GrosorLineaNotaPrevia}{#1} %<class> \IfValueT{#2}{\setlength{\@EsquinaLineaNotaPrevia}{#2}} %<class> \IfValueT{#3}{\setlength{\@SombraNotaPrevia}{#3}}} %<def>\LineaNotaPrevia{0.4pt}{7pt}{0pt} - -%% Grosor de la línea de la descripción, curvatura de la esquina y sombra. -%% (si pedimos linea de 0pt, todo queda en cero y no se abre el ambiente TikZ). +%<class> %<class>\NewDocumentCommand{\LineaDescripcion}{m g g}{ %<class> \setlength{\@GrosorLineaDescripcion}{#1} %<class> \IfValueT{#2}{\setlength{\@EsquinaLineaDescripcion}{#2}} %<class> \IfValueT{#3}{\setlength{\@SombraDescripcion}{#3}}} %<def>\LineaDescripcion{0.4pt}{0pt}{4pt} - -%% 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> %<class>\NewDocumentCommand{\LineaNotaFinal}{m g g}{ %<class> \setlength{\@GrosorLineaNotaFinal}{#1} %<class> \IfValueT{#2}{\setlength{\@EsquinaLineaNotaFinal}{#2}} @@ -3467,6 +3595,10 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<class>\def\LetraEncFactura#1{\gdef\@LetraEncFactura{#1\selectfont}} %<def>\LetraEncFactura{\fontsize{11}{12.5}} +%% Tipo de letra para el texto del membrete de la factura. +%<class>\def\LetraMembrete#1{\gdef\@LetraMembrete{#1\selectfont}} +%<def>\LetraMembrete{\fontsize{13}{14}} + %% Tipo de letra para el texto en el encabezado del reporte. %<class>\def\LetraEncReporte#1{\gdef\@LetraEncReporte{#1\selectfont}} %<def>\LetraEncReporte{\fontsize{13}{16}} @@ -3496,8 +3628,9 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<def>\LetraNotaFinal{\fontsize{12}{12}} %% Letra para la denominación del documento ('FACTURA', 'NOTA DE CRÉDITO', 'NOTA DE DÉBITO', 'COTIZACIÓN',...). -%<class>\def\LetraDenom#1{\gdef\@LetraDenom{#1\selectfont}} -%<def>\LetraDenom{\fontsize{14}{14}\bfseries} +%<class>\def\LetraDenominacion#1{\gdef\@LetraDenominacion{#1\selectfont}} +%<class>\let\LetraDenom\LetraDenominacion% TODO: Quitar en el futuro. +%<def>\LetraDenominacion{\fontsize{14}{14}\bfseries} %% Letra para el texto 'FORMA LIBRE' %<class>\def\LetraFormalibre#1{\gdef\@LetraFormalibre{#1\selectfont}} @@ -3544,6 +3677,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \end{textblock*}}% \fi}} +%% Comando para la firma del reporte. No es un comando del preámbulo. \NewDocumentCommand{\FirmaReporte}{O{} O{0pt} O{0pt} G{\@Proveedor} O{\@FirmaReportePosX} O{\@FirmaReporteExcesoLinea}}{% \Firma[imagen][x-corr][y-corr]{texto}[posición en X desde la derecha][tamaño linea] \renewcommand{\baselinestretch}{1}\selectfont \newif\if@Firma@Dibujo @@ -3598,14 +3732,15 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \gdef\@FondoFactura{#1} \fi}} -%% Con \FondoReporte le damos el nombre del archivo que contiene el formato del reporte. Existen dos posibilidades: que dicho fondo salga en todas las páginas o sólo en la primera. +%% Con \FondoReporte le damos el nombre del archivo que contiene el formato del reporte. Existen dos posibilidades: que dicho fondo salga en todas las páginas, o sólo en la primera. +%% Con * sale en todas las páginas; sin * sale sólo en la primera página. \NewDocumentCommand{\FondoReporte}{s m}{ \AtEndPreamble{ \if@reporte \@FondoReportetrue \RequirePackage{graphicx} \gdef\@FondoReporte{#2} - \IfBooleanT{#1}{\@FondoReporteStartrue}% Con * sale en todas las páginas; sin * sale sólo en la primera página. + \IfBooleanT{#1}{\@FondoReporteStartrue} \fi}} %% Comando para establecer desde el preámbulo el estilo de página (\pagestyle) del reporte, tanto para la primera página como para las siguientes. @@ -3615,11 +3750,10 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \let\EstiloPagReporte\EstiloPagina %% El título para el reporte. +%% Con * sale el título en las cabeceras o pies. Sin *, no. \NewDocumentCommand{\TituloReporte}{s m}{ \gdef\@TituloReporte{#2}% - \IfBooleanTF{#1}{% Con '*' sale el título en las cabeceras o pies. Sin '*' no. - \gdef\@InfoPagina{\let\\\relax\@InfoPaginaTitulo}}% - {\let\@InfoPagina\@InfoPaginaNoTitulo}} + \IfBooleanTF{#1}{\gdef\@InfoPagina{\let\\\relax\@InfoPaginaTitulo}}{\let\@InfoPagina\@InfoPaginaNoTitulo}} %% Para cada cliente o para cada personalización se puede tener un archivo .def o .tex con su nombre y ciertas macros cargadas. Ese archivo lo ponemos incluir con '\Cliente' en lugar de usar \input, y la extensión deberá ser .def o .tex. \newcommand{\Cliente}[1]{% @@ -3627,18 +3761,19 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \IfFileExists{#1.tex}{\input{#1.tex}}{ \CLASSERROR{No existe #1.def ni #1.tex}}}} -\input{factura.def}% Cargamos los valores predeterminados. +\input{factura.def} %% Comando para escribir el encabezado en la factura. -\newcommand\@EncabezadoFactura{% +\newcommand{\@EscribeEncFactura}{% \ifsinencabezadofactura \ifdefvoid{\@Resumen}{}{\CLASSWARNING{La opcio'n 'sinencabezadofactura' no es compatible con escribir un resumen. No aparecera' el resumen.}} + \ifdefvoid{\@EncabezadoFactura}{}{{\@LetraEncFactura\@EncabezadoFactura\par}}% \else \ifdefvoid{\@Resumen}{\@EscribeDatos}{\@EscribeDatosResumen}% \fi} %% Comando para escribir el encabezado en el reporte. -\newcommand\@EncabezadoReporte{% +\newcommand{\@EscribeEncReporte}{% \vspace*{-\topskip}% \if@FondoReporte \if@FondoReporteStar @@ -3646,10 +3781,22 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \vspace*{\@InicioReporte}% \fi \fi - \ifsinencabezadoreporte\else\@EscribeDatosReporte\vskip\baselineskip\fi + \ifsinencabezadoreporte + \ifdefvoid{\@EncabezadoReporte}{}{{\setlength{\parindent}{0pt}\@LetraEncReporte\@EncabezadoReporte\vskip\baselineskip}}% + \else + \@EscribeDatosReporte\vskip\baselineskip + \fi \@LetraReporte} -%% El ambiente 'factura', usando el paquete 'environ' para su definición, y el comando auxiliar \@FacturaAuxCmd. +%% Comando \@EscribeMembrete para que el emisor pueda agregar su información de membrete de la factura (no usable en Venezuela para facturas fiscales que ya vienen membretadas). +\newcommand{\@EscribeMembrete}{% + \begin{textblock*}{\paperwidth}(0pt,0pt) + \begin{minipage}[t][\topmargin+1in]{\paperwidth} + \@LetraMembrete\@Membrete + \end{minipage} + \end{textblock*}} + +%% El entorno 'factura', usando el paquete 'environ' para su definición, y el comando auxiliar \@FacturaAuxCmd. %% Gracias a Heiko Oberdiek y a David Carlisle (Thanks to Heiko Oberdiek and David Carlisle). %% http://tex.stackexchange.com/questions/108565/know-the-cell-width-with-tabular-or-include-a-paragraph-box-without-specifying \NewEnviron{factura}{% @@ -3664,11 +3811,12 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \NewEnviron{reverso}{% \if@factura - \expandafter\newgeometry\expandafter{\@GeometriaReverso}% - \topskip1sp% ¡¡No puedo poner 0 porque se genera una página en blanco extra!! + \expandafter\newgeometry\expandafter{\@GeometriaReverso}% + \topskip1sp% ¡¡No puedo poner 0 porque se genera una página en blanco extra!! \begin{minipage}[t][\textheight-\pagetotal]{\linewidth}% \thispagestyle{empty}% - \@LetraReverso\BODY + \@LetraReverso + \BODY \end{minipage} \clearpage \fi} @@ -3679,11 +3827,11 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %% http://tex.stackexchange.com/questions/248944/how-to-put-before-lines \newcommand{\@DescripcionAuxCmd}[2]{% \immediate\write\@auxout{\gdef\noexpand\@TamDescripcion{\the\linewidth}}% Para poder establecer la línea diagonal hay que saber el tamaño del campo de la descripción. - \ifimpdesc\settowidth{\@TempDimen}{\@EscribeTipoDeImpuesto{#2}}\fi + \ifivadescripcion\settowidth{\@TempDimen}{\@EscribeTipoDeImpuesto{#2}}\fi \savebox{\@CajaPrueba}{% \parbox[t]{\linewidth}{% \David@XStart - \ifcentradesc\centering\arraybackslash\fi + \ifdescripcioncentrada\centering\arraybackslash\fi #1% \David@XEnd \ifdim\@TempDimen=0pt% @@ -3691,7 +3839,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \hfill\kern\@SeparaFinLineaDesc\@EscribeTipoDeImpuesto{#2}% \fi \par\global\count1=\prevgraf}}% - \ifsinmarcas + \ifsinmarcasfactura \usebox{\@CajaPrueba}% \else \ifnum\count1=1% @@ -3703,7 +3851,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \fi \parbox[t]{\linewidth-\@TempDimen-\@SeparaFinLineaDesc}{% \David@XStart - \ifcentradesc\centering\arraybackslash\fi + \ifdescripcioncentrada\centering\arraybackslash\fi #1% \David@XEnd \par @@ -3712,7 +3860,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \count2=\prevgraf \loop \ifnum\count0=\count2 - \ifimpdesc + \ifivadescripcion \vskip-\baselineskip \mbox{}\hfill \rlap{% @@ -3802,8 +3950,6 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \if@BIR\@EscribeTotalColAlicuota{R}\fi \@EscribeTotalColAlicuota{G}% \if@BIA\@EscribeTotalColAlicuota{A}\fi - %% (quitado por no vigente) - % \ifbool{Electro}{\@EscribeTotalColAlicuotaGDesc}{}% \fi} \newcommand{\@EscribeTotalColBI}[1]{% @@ -3812,25 +3958,20 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \else \ifG\ \hfill(\csname @Alicuota#1porc\endcsname\%)\else\mbox{}\fi \fi - & \@LetraNumTotales\@SignoMonetarioAux\numprint{\csname BI#1\endcsname} \\} + & \@LetraNumTotales\@SignoMonetarioAux{\csname BI#1\endcsname} \\} \newcommand{\@EscribeTotalColAlicuota}[1]{% {\@LetraTitTotales \csname @@Alicuota#1\endcsname\ \hfill (\csname @Alicuota#1porc\endcsname\%)} - & \@LetraNumTotales\@SignoMonetarioAux\numprint{\csname Alicuota#1\endcsname} \\} - -%% (quitado por no vigente) - % \newcommand{\@EscribeTotalColAlicuotaGDesc}{% - % {\@LetraTitTotales \@@AlicuotaGDesc\ \hfill (\@AlicuotaGDescPorc\%)} - % & \@LetraNumTotales\@SignoMonetarioAux\numprint{\AlicuotaGDesc} \\} + & \@LetraNumTotales\@SignoMonetarioAux{\csname Alicuota#1\endcsname} \\} \newcommand{\@EscribeTotalColSubt}[1]{% {\@LetraTitTotales \csname @@Subtotal#1\endcsname} - & \@LetraNumTotales\@SignoMonetarioAux\numprint{\csname Subt#1\endcsname} \\} + & \@LetraNumTotales\@SignoMonetarioAux{\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\@SignoMonetarioAux\numprint{\csname Desc#1\endcsname} \\} + & \@LetraNumTotales\@SignoMonetarioAux{\csname Desc#1\endcsname} \\} %% Presentación de los totales en modo filas. \newcommand{\@EscribeTotalFilasBI}[1]{% @@ -3865,23 +4006,23 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \fi} \newcommand{\@EscribeTotalFilasBIder}[1]{% - \@LetraNumTotales\@SignoMonetarioAux\numprint{\csname BI#1\endcsname}} + \@LetraNumTotales\@SignoMonetarioAux{\csname BI#1\endcsname}} \newcommand{\@EscribeTotalFilasAlicuotaizq}[1]{% \@LetraTitTotales\csname @@Alicuota#1\endcsname \ (\csname @Alicuota#1porc\endcsname\%)} \newcommand{\@EscribeTotalFilasAlicuotader}[1]{% - \@LetraNumTotales\@SignoMonetarioAux\numprint{\csname Alicuota#1\endcsname}} + \@LetraNumTotales\@SignoMonetarioAux{\csname Alicuota#1\endcsname}} %% (no implementado) % \newcommand{\@EscribeTotalFilasDescizq}[1]{% % \@LetraTitTotales\csname @@Descuento#1\endcsname \ (\csname @Descuento#1porc\endcsname\%)} % \newcommand{\@EscribeTotalFilasDescder}[1]{% - % \@LetraNumTotales\@SignoMonetarioAux\numprint{\csname Desc#1\endcsname}} + % \@LetraNumTotales\@SignoMonetarioAux{\csname Desc#1\endcsname}} + +\newcommand{\@EscribeTotalFilasAuxTotal}{\@LetraTitTotal\@@Total: & \@LetraNumTotal\@SignoMonetarioAux{\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 pueda colocar con \@SeparaFilas! \csname @EscribeTotalFilasBI\endcsname{#2}% @@ -3897,8 +4038,19 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \end{tabular}} %% Comando auxiliar para escribir el signo monetario cuando aplica -\newcommand{\@SignoMonetarioAux}{% - \ifsinmonedatotales\else\@Moneda\hspace*{\@EspacioSignoMonetario}\fi} +\NewDocumentCommand{\@SignoMonetarioAux}{s s m G{\@Moneda}}{% + \IfBooleanTF{#2} + {\global\@EscribeMonedatrue} + {\IfBooleanTF{#1}{\ifmonedaceldas\global\global\@EscribeMonedatrue\fi}{\ifsinmonedatotales\else\global\@EscribeMonedatrue\fi}}% + \ifmonedadespues + \else + \if@EscribeMoneda #4\hspace*{\@EspacioSignoMonetario}\fi + \fi + \numprint{#3}% + \ifmonedadespues + \if@EscribeMoneda \hspace*{\@EspacioSignoMonetario}#4\fi + \fi + \global\@EscribeMonedafalse} \newcommand{\@GeneraCajasTotalesFilas}{% \if@Exento @@ -3930,14 +4082,14 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \hspace*{\@SepTotales}\usebox{\@CajaAliG}% \if@Exento\hspace*{\@SepTotales}\usebox{\@CajaBIE}\fi \hspace*{\@SepTotales}\usebox{\@CajaTotal}% - \ifcentrado\hspace*{\@SepTotales}\fi} + \iffilascentradas\hspace*{\@SepTotales}\fi} \newcommand{\@EscribeTotalesFilasGxET}{% \if@BIR\hspace*{\@SepTotales}\usebox{\@CajaBIAliR}\fi \hspace*{\@SepTotales}\usebox{\@CajaBIAliG}% \if@BIA\hspace*{\@SepTotales}\usebox{\@CajaBIAliA}\fi \hspace*{\@SepTotales}\if@Exento\usebox{\@CajaBIET}\else\usebox{\@CajaTotal}\fi - \ifcentrado\hspace*{\@SepTotales}\fi} + \iffilascentradas\hspace*{\@SepTotales}\fi} \newcommand{\@EscribeTotalesFilasRGA}{% \hspace*{\@SepTotales}\usebox{\@CajaBIAliR}% @@ -3948,19 +4100,19 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \newcommand{\@EscribeTotalesFilasRGAET}{% \@EscribeTotalesFilasRGA \if@Exento\usebox{\@CajaBIET}\else\usebox{\@CajaTotal}\fi - \ifcentrado\hspace*{\@SepTotales}\fi} + \iffilascentradas\hspace*{\@SepTotales}\fi} %% Escribe la letra que designa al tipo de impuesto que aplica al ítem. \NewDocumentCommand{\@EscribeTipoDeImpuesto}{m}{% % Hay que abrir un grupo de ejecución porque el cambio en la tipografía altera la celda. {\ifG \@LetraTipoIVA - \ifx#1G\@DenomAlicuotaG\fi - \ifx#1R\@DenomAlicuotaR\fi - \ifx#1A\@DenomAlicuotaA\fi - \ifx#1E\@DenomAlicuotaE\fi + \ifx#1G\@SimboloAlicuotaG\fi + \ifx#1R\@SimboloAlicuotaR\fi + \ifx#1A\@SimboloAlicuotaA\fi + \ifx#1E\@SimboloAlicuotaE\fi \fi}} - + %% Comando para poner en cero los contadores de los totales porque el ambiente de la factura se evalúa tres veces y los totales se sumarían todos tres veces. \newcommand{\@ZERO}{% \FPset\BIG{0}\global\let\BIG\BIG @@ -3978,36 +4130,23 @@ 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 - %% (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} -%% Comandos para calcular todos los totales parciales y el total general. +%% Comandos para calcular todos los totales parciales y los totales generales. \newcommand{\@CalculaTotalesI}{% \FPifeq\SubtG{0}\else\@CalculaTotalesII{G}\fi \FPifeq\SubtR{0}\else\@CalculaTotalesII{R}\fi \FPifeq\SubtA{0}\else\@CalculaTotalesII{A}\fi \FPifeq\SubtE{0}\else\@CalculaTotalesII{E}\fi - %% (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} + \FPupn\TotalDivisa{\Total{} \@TasaCambio{} div \@DigitosMoneda{} round}% + \global\let\Total\Total + \global\let\TotalDivisa\TotalDivisa} \newcommand{\@CalculaTotalesII}[1]{% % Sumamos al descuento. - \expandafter\FPupn\csname Desc#1\endcsname{\csname @Descuento#1factor\endcsname{} \csname Subt#1\endcsname{} * \csname @Descuento#1num\endcsname{} + \@DigitosMoneda{} round}% + \expandafter\FPupn\csname Desc#1\endcsname{\csname @Descuento#1factor\endcsname{} \csname Subt#1\endcsname{} * \csname @Descuento#1num\endcsname{} \@TasaCambio{} * + \@DigitosMoneda{} round}% \global\expandafter\let\csname Desc#1\expandafter\endcsname\csname Desc#1\endcsname % Sumamos a la base imponible. \expandafter\FPupn\csname BI#1\endcsname{\csname Desc#1\endcsname{} \csname Subt#1\endcsname{} - \@DigitosMoneda{} round}% @@ -4036,11 +4175,11 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \ifbool{DCU}{c}{ \ifbool{DUC}{r}{ \ifbool{SinCantidad}{X@{\extracolsep{0pt}}}{X}}} - % Cuarta línea, que sale solamente cuando no se usa 'sincantidad'. + % Cuarta línea, que sale solamente cuando no se usa 'sincantidad'. \ifbool{SinCantidad}{}{\ifbool{SinLineasVertInt}{}{|}} % Columna 'c' para DUC y columna 'r' para cualquier otro caso (DCU, CDU y 'sincantidad'). \ifbool{DUC}{c}{r} - % Quinta línea. + % Quinta línea. \ifbool{SinLineasVertInt}{}{|} % Columna 'r' para subtotal antes del descuento, o columna fantasma si no se especifica 'subtotal'). \ifbool{Subtotal}{r}{l@{\extracolsep{0pt}}} @@ -4063,7 +4202,7 @@ 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}}% + \gdef\@PrecioUtemp##1{\FPupn\PrecioUtemp{##1 \@TasaCambio{} * clip}}% \addtocounter{NumItem}{1}% % Calculamos. \@PrecioUtemp{#5}% @@ -4130,6 +4269,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \fi \fi} +%% Segundo \AtEndPreamble. %% Todo esto tiene que estar dentro de \AtEndPreamble que es cuando \if@factura, \if@reverso e \if@reporte fueron ya aplicadas, y para que se evalúen adecuadamente en su momento las definiciones hechas con \edef. \AtEndPreamble{ % Comando auxiliar para abrir la tabla del cuadro de la factura y expandir completamente las columnas. @@ -4233,7 +4373,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \David@XRight{\@PrecioUAuxCmd{% \ifx##1X \hfill \@CaracterItemXVacio \hfill\mbox{}% \else - \ifimpdesc\else\@EscribeTipoDeImpuesto{##1}\fi \hfill \@LetraNumeros \numprint{\PrecioU} + \ifivadescripcion\else\@EscribeTipoDeImpuesto{##1}\fi \hfill \@LetraNumeros \@SignoMonetarioAux*{\PrecioU}% \fi}}% duc. \fi} {\@DescripcionAuxCmd{##3}{##1}}% cdu. @@ -4246,7 +4386,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \David@XRight{\@PrecioUAuxCmd{% \ifx##1X \hfill \@CaracterItemXVacio \hfill\mbox{}% \else - \ifimpdesc\else\@EscribeTipoDeImpuesto{##1}\fi \hfill \@LetraNumeros \numprint{\PrecioU} + \ifivadescripcion\else\@EscribeTipoDeImpuesto{##1}\fi \hfill \@LetraNumeros \@SignoMonetarioAux*{\PrecioU}% \fi}}% dcu y cdu. \fi}% & % Quinto -opcional- campo: Subtotal (para luego descuentos). @@ -4254,7 +4394,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \David@XRight{\@PrecioSAuxCmd{% \ifx##1X \hfill \@CaracterItemXVacio \hfill\mbox{}% \else - \ifimpdesc\else\@EscribeTipoDeImpuesto{##1}\fi \hfill \@LetraNumeros \numprint{\PrecioS} + \ifivadescripcion\else\@EscribeTipoDeImpuesto{##1}\fi \hfill \@LetraNumeros \@SignoMonetarioAux*{\PrecioS}% \fi}}}{} & % Sexto -opcional- campo: Descuento. @@ -4277,7 +4417,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \David@XRight{\@PrecioTAuxCmd{% \ifx##1X \hfill \@CaracterItemXVacio \hfill\mbox{}% \else - \ifimpdesc\else\@EscribeTipoDeImpuesto{##1}\fi \hfill \@LetraNumeros \numprint{\PrecioT} + \ifivadescripcion\else\@EscribeTipoDeImpuesto{##1}\fi \hfill \@LetraNumeros \@SignoMonetarioAux*{\PrecioT}% \fi}}% % Escribimos al csv. \ifcsv @@ -4334,7 +4474,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \ifbool{SinCantidad}{\@DescripcionAuxCmd{\@LetraTitColumnas \@@Descripcion}{}} {\if@cdu \@DescripcionAuxCmd{\@LetraTitColumnas \@@Descripcion}{}\fi \ifdcu \@CantidadAuxCmd{\mbox{}\hfill \@LetraTitColumnas \@@Cantidad \hfill\mbox{}}\fi - \ifduc \@PrecioUAuxCmd{\mbox{}\hfill \@LetraTitColumnas \@@PrecioU \space (\Moneda)\hfill\mbox{}}\fi}% + \ifduc \@PrecioUAuxCmd{\mbox{}\hfill \@LetraTitColumnas \@@PrecioU \ifmonedaceldas\else\space (\Moneda)\fi \hfill\mbox{}}\fi}% &% Avanzamos hasta el precio unitario, o la cantidad, o columna fantasma cuando es 'sincantidad'. \ifbool{SinCantidad}{} {% @@ -4342,16 +4482,16 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \ifduc \@CantidadAuxCmd{\mbox{}\hfill \@LetraTitColumnas \@@Cantidad \hfill\mbox{}}% \else - \@PrecioUAuxCmd{\mbox{}\hfill \@LetraTitColumnas \@@PrecioU \space (\Moneda)\hfill\mbox{}}% + \@PrecioUAuxCmd{\mbox{}\hfill \@LetraTitColumnas \@@PrecioU \ifmonedaceldas\else\space (\Moneda)\fi \hfill\mbox{}}% \fi}% &% Avanzamos hasta el subtotal, que puede o no existir, - \ifbool{Subtotal}{\@PrecioSAuxCmd{\mbox{}\hfill \@LetraTitColumnas \@@PrecioS \space (\Moneda)\hfill\mbox{}}}{}% + \ifbool{Subtotal}{\@PrecioSAuxCmd{\mbox{}\hfill \@LetraTitColumnas \@@PrecioS \ifmonedaceldas\else\space (\Moneda)\fi \hfill\mbox{}}}{}% &% Avanzamos hasta el descuento, que puede o no existir. \ifdescuentos \@DescuentoAuxCmd{\mbox{}\hfill \@LetraTitColumnas \@@Descuento \hfill\mbox{}}\fi &% Avanzamos hasta el IVA, que puede o no existir. \ifbool{IVA}{\@IVAAuxCmd{\mbox{}\hfill \@LetraTitColumnas \@@IVA \hfill\mbox{}}}{} &% Avanzamos hasta el precio total. - \@PrecioTAuxCmd{\mbox{}\hfill \@LetraTitColumnas \ifbool{SinCantidad}{\@@Precio}{\@@PrecioT}\space (\Moneda)\hfill\mbox{}}% + \@PrecioTAuxCmd{\mbox{}\hfill \@LetraTitColumnas \ifbool{SinCantidad}{\@@Precio}{\@@PrecioT}\ifmonedaceldas\else\space (\Moneda)\fi \hfill\mbox{}}% \if@LineaHastaFinal \zsaveposx{LineaNodoBCoordX}\fi \\ \ifbool{SinLineaHoriTit}{}{\hline}% @@ -4397,18 +4537,16 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \else % Modo de columnas: Abrimos la tabla para escribir los totales y le agregamos las líneas verticales externas, si aplica. \@ColumnasMultiColumnTotalesAuxCmd - \ifagrupado + \ifagrupatotales \@EscribeTotalColAgrupado \else \if@Exento \@EscribeTotalCol{E}\fi \if@BIR\@EscribeTotalCol{R}\ifsinivaexpresado\else\@EscribeTotalColAlicuota{R}\fi\fi \@EscribeTotalCol{G}\ifsinivaexpresado\else\@EscribeTotalColAlicuota{G}\fi - %% (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\@SignoMonetarioAux\numprint{\Total}\\ + \hfill \@LetraTitTotal\@@Total & \@LetraNumTotal\@SignoMonetarioAux{\Total}\\ \end{tabular}\endgroup \\ \ifdefvoid{\@NotaInterna}{}{\ifbool{SinLineaHoriNI}{}{\hline}\@ColumnasMultiColumnNotaIntAuxCmd}% @@ -4426,7 +4564,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \ifsinexpandir\vfill\fi \@GeneraCajasTotalesFilas \newbox{\@CajaTotal}% - \savebox{\@CajaTotal}{{\@LetraTitTotal\@@Total:} \@LetraNumTotal\@SignoMonetarioAux\numprint{\Total}}% + \savebox{\@CajaTotal}{{\@LetraTitTotal\@@Total:} \@LetraNumTotal\@SignoMonetarioAux{\Total}}% % \ifnum \value{@IVANoGeneral}=0% \newbox{\@CajaGET}% @@ -4437,7 +4575,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \hspace*{\@SepTotales}% \usebox{\@CajaBIAliG}\hspace*{\@SepTotales}% \if@Exento\usebox{\@CajaBIET}\else\usebox{\@CajaTotal}\fi - \ifcentrado\hspace*{\@SepTotales}\fi + \iffilascentradas\hspace*{\@SepTotales}\fi \fi \fi \ifnum \value{@IVANoGeneral}=1% @@ -4451,9 +4589,9 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \usebox{\@CajaBIAliG}\hspace*{\@SepTotales}% \if@BIA\usebox{\@CajaBIAliA}\hspace*{\@SepTotales}\fi \\[\@SeparaFilas]\mbox{}% - \ifcentrado\hspace*{\@SepTotales}\else\hfill\fi + \iffilascentradas\hspace*{\@SepTotales}\else\hfill\fi \if@Exento\usebox{\@CajaBIE}\hspace*{\@SeparaMinTotales}\fi\usebox{\@CajaTotal}% - \ifcentrado\hspace*{\@SepTotales}\fi + \iffilascentradas\hspace*{\@SepTotales}\fi \fi \fi \ifnum \value{@IVANoGeneral}=2% @@ -4467,9 +4605,9 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \ifdim \the\wd\@CajaRGA < \textwidth \@EscribeTotalesFilasRGA \\[\@SeparaFilas]\mbox{}% - \ifcentrado\hspace*{\@SepTotales}\else\hfill\fi + \iffilascentradas\hspace*{\@SepTotales}\else\hfill\fi \if@Exento\usebox{\@CajaBIE}\hspace*{\@SeparaMinTotales}\fi\usebox{\@CajaTotal}% - \ifcentrado\hspace*{\@SepTotales}\fi + \iffilascentradas\hspace*{\@SepTotales}\fi \else% Aquí casi cualquier cosa tiene aspecto feo. \CLASSWARNING{Es mejor no usar la opcio'n de totalizacio'n en filas en este caso, o disminuir los tama~nos de los tipos de letra para la totalizacio'n}% \centering{% @@ -4491,8 +4629,8 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \ifexpandecuadro\zsaveposy{EspacioVacioFinal}\fi \vspace*{\@SeparaVertical}\par \ifdefvoid{\@NotaExterna}{}{% - \parbox[t]{\linewidth}{\@LetraNotaExterna\@NotaExterna}\vspace*{\@SeparaVertical}\ifsinexpandir\vfill\fi}} - + \parbox[t]{\linewidth}{\@LetraNotaExterna\@NotaExterna}\vspace*{\@SeparaVertical}\ifsinexpandir\vfill\fi}\par} + \ifbool{SinCantidad} % Definamos todos los comandos \Item***. El descuento es opcional; por eso usamos G{0} en \NewDocumentCommand. {% @@ -4555,25 +4693,24 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \expandafter\geometry\expandafter{\@GeometriaFactura}% La geometría debe aplicarse aquí. \AfterEndPreamble{% \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{\@PosDenominacionX}{\oddsidemargin+1in}% \addtolength{\@PosFormalibreX}{\oddsidemargin+1in}% \addtolength{\@PosControlX}{\oddsidemargin+1in}% \addtolength{\@PosNotaFinalXuno}{\oddsidemargin+1in}% \addtolength{\@PosFirmasXuno}{\oddsidemargin+1in}% - \setlength{\parindent}{0pt}% - \setlength{\lineskip}{0pt}% \setlength{\parskip}{0pt plus 1pt}% \expandafter\setlength{\@SepTotales}{\the\@SeparaMinTotales plus 1fill}% \@SeparaMinTotales es el mínimo espacio entre los totales en el modo 'filas', y SepTotales es una dimensión interna, estirable, con ese como su mínimo. \thispagestyle{empty}% \pagenumbering{roman}% - \@EncabezadoFactura} + \@EscribeEncFactura} \AtBeginShipoutNext{% Antes abría aquí un \AtBeginShipoutNext cuando había reporte y un \AtEndDocument cuando no. No es necesario eso. También lo modifiqué en \FirmaFactura. \@CargaFondoFactura \@PosicionaFechas - \ifsindenom\else\@PosicionaDenom\fi + \ifsindenominacion\else\@PosicionaDenominacion\fi \ifprefactura\@PosicionaNumControl\@PosicionaFormalibre\fi \ifnum\value{@Firmas}=0\else\@PosicionaFirmas\fi - \ifdefvoid{\@NotaFinal}{}{\@PosicionaNotaFinal}} + \ifdefvoid{\@NotaFinal}{}{\@PosicionaNotaFinal} + \ifdefvoid{\@Membrete}{}{\@EscribeMembrete}} \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} @@ -4642,8 +4779,9 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \let\@ITEM\@CalculaItem \BODY \@CalculaTotalesI} - \RenewEnviron{reverso}{} - \NewDocumentCommand{\Descripcion}{+m}{} + \RenewEnviron{reverso}{}% + \gdef\@EncabezadoFactura{}% + \NewDocumentCommand{\Descripcion}{+m}{}% \fi \if@reporte @@ -4658,7 +4796,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \fi \let\headwidth\textwidth \@CargaFondoReporte - \@EncabezadoReporte + \@EscribeEncReporte \ifdefvoid{\@EstiloPaginaResto}{% \if@FondoReporteStar% Si no usamos \EstiloPagina entonces se fijará 'soloabajo' cuando se use \FondoReporte* para que sólo use marcas de pie de página, y si no se usó \FondoReporte* entonces se fijará 'plain' que usa cabeceras y pies de página. \pagestyle{soloabajo}% @@ -4691,7 +4829,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %% Comando para el fondo del reporte. \newcommand{\@CargaFondoReporte}{% - \begin{textblock*}{\paperwidth}(0pt,0pt)% Tuve que abrir el textblock* aquí para que aplique siempre; de esta manera se corrige un defecto que se produce cuando se usa \vspace* al inicio de la página (dentro de \@EncabezadoReporte). + \begin{textblock*}{\paperwidth}(0pt,0pt)% Tuve que abrir el textblock* aquí para que aplique siempre; de esta manera se corrige un defecto que se produce cuando se usa \vspace* al inicio de la página (dentro de \@EscribeEncReporte). \if@FondoReporte \if@FondoReporteStar \AddToShipoutPictureBG{\includegraphics{\@FondoReporte}}% @@ -4741,13 +4879,13 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \end{textblock*}} %% Comando que coloca la denominación del documento. -\newcommand{\@PosicionaDenom}{% - \savebox{\@CajaDenom}{\@EstiloDenom}% - \ifbool{DenomXnegativo}{\addtolength{\@PosDenomX}{\textwidth-\wd\@CajaDenom}}{}% - \ifbool{DenomYnegativo}{\addtolength{\@PosDenomY}{\paperheight}}{}% - \ifbool{DenomYarriba}{\addtolength{\@PosDenomY}{-\ht\@CajaDenom-\dp\@CajaDenom}}{}% - \begin{textblock*}{\wd\@CajaDenom}(\@PosDenomX,\@PosDenomY)% - \usebox{\@CajaDenom}% +\newcommand{\@PosicionaDenominacion}{% + \savebox{\@CajaDenominacion}{\@EstiloDenominacion}% + \ifbool{DenominacionXnegativo}{\addtolength{\@PosDenominacionX}{\textwidth-\wd\@CajaDenominacion}}{}% + \ifbool{DenominacionYnegativo}{\addtolength{\@PosDenominacionY}{\paperheight}}{}% + \ifbool{DenominacionYarriba}{\addtolength{\@PosDenominacionY}{-\ht\@CajaDenominacion-\dp\@CajaDenominacion}}{}% + \begin{textblock*}{\wd\@CajaDenominacion}(\@PosDenominacionX,\@PosDenominacionY)% + \usebox{\@CajaDenominacion}% \end{textblock*}} %% Comando que coloca la(s) fecha(s). @@ -4769,7 +4907,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \ifdefvoid{\@Contacto}{}{{\bfseries \@@Contacto} \@Contacto \par}% \ifdefvoid{\@TituloReporte}{}{\vspace*{\baselineskip}{\@LetraTitReporte \centering \@TituloReporte \par}}}} -%% Comando que coloca las dos cajas del encabezado: la de los datos del cliente y la del resumen. +%% Comando que coloca las dos cajas del encabezado: la de los datos del cliente y la del -opcional- resumen. \newcommand{\@EscribeDatos}{% {\@LetraEncFactura% Abrimos un nuevo grupo para que el cambio de tipografía y la redefinición del entorno 'tikzpicture' sean locales. \ifdim\@GrosorLineaEncabezado=0pt% @@ -4848,8 +4986,8 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %% Comando que coloca la caja para la nota previa, con la posibilidad de TikZ. \newcommand{\@EscribeNotaPrevia}{% {% Abrimos un nuevo grupo para que la redefinición del entorno 'tikzpicture' sea local. - \baselineskip0pt \ifdefvoid{\@NotaPrevia}{}{% + \baselineskip0pt \ifdim\@GrosorLineaNotaPrevia=0pt% \setlength{\@SeparaInternaNotaPrevia}{0pt}\setlength{\@EsquinaLineaNotaPrevia}{0pt}\setlength{\@SombraNotaPrevia}{0pt}% \renewenvironment{tikzpicture}{\NewDocumentCommand{\node}{o +m}{####2}}{}% @@ -4988,8 +5126,6 @@ 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}% - %% (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}% @@ -5044,12 +5180,12 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \newcommand{\@EstiloNumControl}{% \renewcommand{\baselinestretch}{0}\selectfont \begin{tabular}{@{\extracolsep{0pt}}l} - \@LetraDenom \@@Control \\[.4em] - {\@LetraDenom\@NumSerieControl-}\space\@LetraNumeracion\@NumControl \\ + \@LetraDenominacion \@@Control \\[.4em] + {\@LetraDenominacion\@NumSerieControl-}\space\@LetraNumeracion\@NumControl \\ \end{tabular}} -\newcommand{\@EstiloDenom}{% - \@LetraDenom\@Denominacion +\newcommand{\@EstiloDenominacion}{% + \@LetraDenominacion\@Denominacion \ifsinnumero \else \space\space{\@LetraNumeracion N\textordmasculine\space\@Num}% @@ -5105,41 +5241,42 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. % %%<desc> %<beispiel>%% Adaptado a otra legislación -%<factuno|factdos|facttres|factcuatro|factcinco|factseis|factsiete|factocho|factnueve|factdiez|repuno|repdos>%% Escribimos una factura -%<reptres>%% No escribimos factura ni usamos las macros que definen valores para su uso +%<!prefac&!cotiza&!notadecredito&!notadedebito&!reptres&!repcuatro&!beispiel>%% Escribimos una factura +%<reptres|repcuatro>%% No escribimos factura ni usamos las macros que definen valores para su uso %<factnueve|factdiez|repuno>%% Escribimos en el reverso de la factura %<prefac|beispiel>%% (prefactura) Escribimos una prefactura %<cotiza>%% (cotizacion) Escribimos una cotización %<notadecredito>%% (notadecredito) Escribimos una nota de crédito %<notadedebito>%% (notadedebito) Escribimos una nota de débito -%<repuno|repdos|reptres>%% Escribimos un reporte +%<repuno|repdos|reptres|repcuatro>%% Escribimos un reporte %<repuno>%% (sinreverso) Escribimos el reverso de la factura pero sólo producimos su anverso %<repuno>%% (conreporte) Generamos factura y reporte %<repdos>%% (soloreporte) Escribimos factura y reporte, pero sólo producimos el reporte -%<reptres>%% (soloreporte) Generamos solamente el reporte -%<factcinco|factocho>%% Escribimos factura y reporte, pero sólo producimos la factura +%<reptres|repcuatro>%% (soloreporte) Generamos solamente el reporte +%<factcinco>%% Escribimos factura y reporte, pero sólo producimos la factura % %<factdiez>%% Establecemos algunas opciones de la clase a través de comandos % -%<factuno|notadecredito|notadedebito>%% Hacemos una factura básica con todo en sus valores por omisión, no ajustamos nada +%<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 % -%<factnueve>%% (sinencabezadofactura) Pedimos que la factura no tenga encabezado -%<repdos>%% (sinencabezadoreporte) Pedimos que el reporte no tenga encabezado +%<factdiez>%% (sinencabezadofactura) Pedimos que la factura no tenga encabezado +%<reptres|repcuatro>%% (sinencabezadoreporte) Pedimos que el reporte no tenga encabezado +% %<factcinco>%% (sincantidad) Cuadro de la factura sin la columna de cantidades %<factdos|factseis>%% (numitem) Con la columna para enumerar los ítems %<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 +%<facttres>%% (agrupatotales) Agrupados los totales por tipo y no por gravamen %<factcuatro|factcinco|factsiete>%% (filas) Totalización en modo de filas -%<factsiete>%% (centrado) Centrados los totales en el modo de filas +%<factsiete>%% (filascentradas) Centrados los totales en el modo de filas % %<factdos>%% (dcu) Primero la descripción, luego la cantidad, luego el precio unitario %<factcuatro>%% (duc) Primero la descripción, luego el precio unitario, luego la cantidad -%<factcinco|factseis>%% (sindenom) No escribe la denominación (“FACTURA”) ni el número +%<factseis|factnueve>%% (sindenominacion) No escribe la denominación (“FACTURA”) ni el número %<cotiza>%% (sinnumero) Escribe la denominación (“COTIZACIÓN”) pero sin número %<cotiza>%% (sintotales) No totaliza, para que el cliente tenga un presupuesto por distintos ítems que luego elegirá entre ellos, es decir, una lista de precios % @@ -5158,13 +5295,16 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<facttres|factcuatro|prefac>%% (expandecuadro) Expande el cuadro de la factura con espacio en blanco %<prefac|factcuatro>%% (linea) Con línea para inutilizar el espacio en blanco % -%<facttres>%% (impdesc) Con el tipo de impuesto como parte de la descripción y no de los precios -%<factdos>%% (centradesc) Centra la descripción en los elementos en la factura -%<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 +%<factocho|factnueve|factdiez>%% (divisa) Cambia la moneda por la divisa +%<factocho|factnueve>%% (monedaceldas) Pone el signo monetario en cada celda monetaria +%<factocho>%% (monedadespues) Pone el signo monetario después de cada monto numérico y no antes +%<facttres>%% (ivadescripcion) Con el tipo de impuesto como parte de la descripción y no de los precios +%<factdos>%% (descripcioncentrada) Centra la descripción en los elementos en la factura +%<factsiete>%% (sinmarcasfactura) 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 +%<factcuatro>%% (G) Escribiendo una letra ‘G’ en los ítems gravados con IVA general así sea el único gravamen a facturar +%<factnueve>%% (sinmonedatotales) No agrega el símbolo monetario en los totales +%<factnueve>%% (siniva) Sin IVA %<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 @@ -5173,28 +5313,32 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<beispiel>%% (nospanish) Sin cargar babel en castellano, ni la codificación T1 para la tipografías % %<factdos|factcuatro>%% Usando \Nombre y \CI en lugar de \RazonSocial y \RIF -%<factdos|factcuatro|reptres>%% Sin especificar la persona de contacto -%<factcinco|factseis>%% Sin especificar el teléfono del cliente -%<factcuatro|factseis>%% Sin especificar el e-mail del cliente +%<factdos|factcuatro>%% Sin especificar la persona de contacto +%<factcinco|factnueve>%% Sin especificar el teléfono del cliente +%<factcuatro|factnueve>%% Sin especificar el e-mail del cliente %<factcinco|repuno>%% (\Emisor) Especificando el nombre del emisor de la factura %<factcinco|factseis>%% (\Conforme) Especificando el nombre de quien firma la copia de la factura como recibida %<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 +%<repdos|reptres|repcuatro>%% (\Proveedor) Especificando el nombre del proveedor para el encabezado y/o firma en el reporte % %<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” % +%<prefac>%% (\NumControl y \NumSerieControl) Cambiando el número de control y el número de serie de control %<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 %<factcinco>%% (\FormatoFecha) Suministrando la fecha según el formato yyyymmdd pero que salga escrita dd.mm.yyyy %<factseis>%% (\FormatoFecha) Cambiando el formato para que la fecha salga escrita en el formato default de datetime2 pero cambiando el separador yyyy/mm/dd %<factocho>%% Redefiniendo el formato de la fecha (redefiniendo macros \@@Fecha y \@EstiloFecha) % +%<notadecredito|notadedebito>%% (\FechaNota y \NumNota) Especificando la fecha y el número de la factura a corregir +% %<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 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 +%<factseis>%% (\Moneda) Se cambia el signo monetario de la moneda por el código ISO +%<factdiez>%% (\Divisa) Se cambia el signo monetario de la divisa +%<factdiez>%% (\TasaCambio) Se establece una tasa de cambio moneda/divisa % %<factsiete>%% Redefiniendo el texto para la cantidad (redefiniendo macro \@@Cantidad) % @@ -5202,60 +5346,67 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<factdiez>%% (\GeometriaReverso) Cambiando la geometría del reverso de la factura %<repdos>%% (\GeometriaReporte) Cambiando la geometría del papel del reporte %<prefac|cotiza>%% (\FondoFactura) Con el fondo de la imprenta agregado -%<repuno>%% (\FondoReporte) Especificamos el fondo o membrete del reporte, sólo para la primera página -%<repdos>%% (\FondoReporte*) Especificamos el fondo o membrete del reporte para todas las páginas +%<repuno|repcuatro>%% (\FondoReporte) Especificamos el fondo o membrete del reporte, sólo para la primera página +%<repdos>%% (\FondoReporte*) Especificamos el fondo o membrete del reporte para todas las páginas y sale info página como pie de página %<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 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>%% (\EstiloPagina) Cambiamos el estilo de página para que la información del reporte aparezca como pie de página +%<repuno|repcuatro>%% (\InicioReporte) Estableciendo un margen superior distinto para la primera página del reporte por presencia de membrete +%<repuno|repdos>%% (\TituloReporte) Establecemos el título del reporte sin que salga en las cabeceras ni pies de página +%<reptres>%% (\TituloReporte*) Establecemos el título del reporte para que salga en las cabeceras o pies de página +%<repcuatro>%% No proveemos de título para el reporte +%<repcuatro>%% (\InfoPagina) Personalizamos la información de la cabecera del reporte y mostramos el nombre del proveedor allí +%<reptres|repcuatro>%% (\EstiloPagina) 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 % -%<factdos|facttres|factsiete>%% (\SepVertical) Alterando la separación mínima vertical entre los elementos -%<factdos|factcinco>%% (\SepDatosResumen) Alterando la separación horizontal entre los datos del cliente y el resumen -%<factdos|facttres|factseis>%% (\SepEncabezado) Alterando el margen interno desde el contorno hasta el texto en el encabezado +%<factdos|facttres>%% (\SepVertical) Alterando la separación mínima vertical entre los elementos +%<factdos>%% (\SepDatosResumen) Alterando la separación horizontal entre los datos del cliente y el resumen +%<factdos|facttres>%% (\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 +%<factdos>%% (\SepDescripcion) Alterando la distancia desde el contorno hasta el texto en la descripción %<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 +%<factsiete>%% (\LineaDescripcion) Alterando la línea de la descripción, la curvatura en la esquina y la sombra %<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 +%<factsiete>%% (\PosFecha, \PosFirmas y \PosDenominacion) 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 +%<factocho>%% (\Letra***) Cambiando tipografías % -%<!factcuatro&!reptres>%% (\NotaFinal) Con nota final -%<factcuatro>%% Sin nota final +%<factdiez>%% (\Membrete) Estableciendo el membrete identificatorio del emisor (no válido para una factura fiscal en Venezuela, sino para prefacturas u otros fines) +%<factdiez>%% (\EncabezadoFactura) Estableciendo el formato para los datos del cliente de forma manual +%<reptres>%% (\EncabezadoReporte) Estableciendo el formato para el encabezado del reporte %<factuno|factdos|factcinco|factocho>%% (\Resumen) Con resumen -%<facttres|factcuatro|factseis|factsiete|prefac|cotiza|repuno|repdos>%% Sin resumen +%<facttres|factcuatro|factseis|factsiete|factnueve|factdiez|prefac|cotiza|repuno|repdos>%% Sin resumen %<factcuatro|factnueve|factdiez>%% (\NotaPrevia) Con nota previa %<factnueve>%% (\NotaPrevia*) Con nota previa agregada al final de la nota previa anterior -%<factocho|factnueve>%% (\NotaInterna) Con nota interna +%<factseis|factocho|factnueve>%% (\NotaInterna) Con nota interna +%<notadecredito>%% Con nota interna automática para la nota de crédito %<notadedebito>%% Anulando la nota interna establecida de manera predeterminada por usar la opción de la nota de débito %<notadedebito>%% (\NotaExterna) Con nota externa para el texto referencial de la factura a corregir, en lugar de colocarlo como nota interna -%<factnueve>%% (\NotaExterna) Con nota externa +%<factseis|factnueve>%% (\NotaExterna) Con nota externa +%<factdiez>%% Con nota externa automática por el uso de \TasaCambio %<factnueve>%% (\NotaExterna**) Con nota externa agregada al principio de la nota externa anterior +%<!factcuatro&!factocho&!reptres&!repcuatro>%% (\NotaFinal) Con nota final +%<factcuatro|factocho>%% Sin nota final % %<factdos|facttres>%% Con artículos gravados con todos los IVA %<factseis|factsiete|factocho>%% Escribimos un ítem cuya descripción ocupa más que una línea +%<factsiete|factocho>%% Escribimos una descripción de un ítem distinta para el .csv %<factdos|factcuatro|factcinco>%% (\ItemX) Agregando un ítem sin precio % -%<!facttres&!reptres&!beispiel>%% (\Descripcion) Con descripción larga -%<facttres|reptres>%% Sin descripción larga +%<!facttres&!reptres&!repcuatro&!beispiel>%% (\Descripcion) Con descripción larga +%<facttres>%% Sin descripción larga % %<factseis|repdos>%% Con etiquetas y referencias %<factseis|factnueve|notadecredito|notadedebito|repdos>%% Haciendo mención en el documento a valores establecidos en el preámbulo % -%<repuno>%% (\FirmaReporte) Agregando en el reporte la línea para firmar a mano -%<factocho|repdos|reptres>%% (\FirmaReporte) Agregando la firma escaneada en el reporte -%<factocho|repdos|reptres>%% 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 +%<repuno|repdos>%% (\FirmaReporte) Agregando en el reporte la línea para firmar a mano +%<reptres|repcuatro>%% (\FirmaReporte) Agregando la firma escaneada en el reporte +%<reptres|repcuatro>%% Con \FirmaReporte, ajustando el corrimiento en “y” de la firma respecto a la línea +%<reptres|repcuatro>%% 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 +%<repdos|reptres>%% Con \FirmaReporte, cambiando el nombre de la persona que va a firmar %%</desc> %% %<factuno>\documentclass{factura} @@ -5266,11 +5417,11 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<notadedebito>notadedebito, %<repuno>sinreverso, %<repuno>conreporte, -%<repdos|reptres>soloreporte, +%<repdos|reptres|repcuatro>soloreporte, %<beispiel>nospanish, %<reptres>twoside, -%<factnueve>sinencabezadofactura, -%<repdos>sinencabezadoreporte, +%<factdiez>sinencabezadofactura, +%<reptres,repcuatro>sinencabezadoreporte, %<factcinco>sincantidad, %<factdos|factseis>numitem, %<factdos|factseis>descuentos, @@ -5278,9 +5429,9 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<factcinco>iva, %<factcuatro|factcinco|factsiete>filas, %<factdiez>filas, % luego queda sin efecto con \filasfalse en el preámbulo -%<factsiete>centrado, -%<facttres>agrupado, -%<factcinco|factseis>sindenom, +%<factsiete>filascentradas, +%<facttres>agrupatotales, +%<factseis|factnueve>sindenominacion, %<cotiza>sinnumero, % sin esta opción aparecerá el número de la cotización. %<cotiza>sintotales, %<factdos>dcu, @@ -5296,14 +5447,16 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<factcinco|factocho>sinexpandir, %<facttres|factcuatro|prefac>expandecuadro, %<factcuatro|prefac>linea, -%<facttres>impdesc, -%<factdos>centradesc, -%<factsiete>sinmarcas, +%<factocho|factnueve|factdiez>divisa, +%<factocho|factnueve>monedaceldas, +%<factocho>monedadespues, +%<facttres>ivadescripcion, +%<factdos>descripcioncentrada, +%<factsiete>sinmarcasfactura, %<factcinco|factseis|factsiete>todosiva, -%<factnueve>G, -%<factdiez>sinmonedatotales, -%<factocho>siniva, -%<factnueve>% electro, +%<factcuatro>G, +%<factnueve>sinmonedatotales, +%<factnueve>siniva, %<factdos>unafirma, %<prefac|cotiza>% dosfirmas, % para poner las dos firmas. %<prefac>% unafirma, % para poner la firma del emisor. @@ -5324,12 +5477,14 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<beispiel>\usepackage[T1]{fontenc} %<beispiel> %<beispiel>\Moneda{\euro{}} +%<beispiel> %<beispiel>\makeatletter +%<beispiel> %<beispiel>\def\@AlicuotaG{0.19} %<beispiel>\def\@AlicuotaR{0.07} -%<beispiel>\def\@DenomAlicuotaG{A} -%<beispiel>\def\@DenomAlicuotaR{C} -%<beispiel>\def\@DenomAlicuotaE{B} +%<beispiel>\def\@SimboloAlicuotaG{A} +%<beispiel>\def\@SimboloAlicuotaR{C} +%<beispiel>\def\@SimboloAlicuotaE{B} %<beispiel>\def\@@Datos{Kundenidentifikation} %<beispiel>\def\@@Resumen{Zusammenfassung} %<beispiel>\def\@@Fecha{Datum:} @@ -5353,135 +5508,149 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<beispiel>\def\@@BIE{Mwst-befreit} %<beispiel>\def\@@Total{Brutto}% Zu zahlen / Brutto / Summe / Gesamt %<beispiel>\def\@@Conforme{der Kunde} -%<beispiel>\def\@@DenomFactura{Rechnung} -%<beispiel>\def\@@DenomCotiza{Voranschlag} -%<beispiel> -%<beispiel>\renewcommand{\@EstiloDenom}{\@LetraDenom\@Denominacion-\ifsinnumero\else\@LetraNumeracion Nr:\space\@Num\fi} +%<beispiel>\def\@@DenominacionFactura{Rechnung} +%<beispiel>\def\@@DenominacionCotizacion{Voranschlag} +%<beispiel>\renewcommand{\@EstiloDenominacion}{\@LetraDenominacion\@Denominacion-\ifsinnumero\else\@LetraNumeracion Nr:\space\@Num\fi} %<beispiel>\renewcommand{\@EstiloNumControl}{} %<beispiel>\renewcommand{\@EstiloFormalibre}{} +%<beispiel> %<beispiel>\makeatother -%<!factcinco&!factseis&!reptres&!notadecredito&!notadedebito>\Num{1} +%<!factseis&!factnueve&!reptres&!repcuatro&!notadecredito&!notadedebito>\Num{1} %<notadecredito|notadedebito>\Num{2} -%<notadecredito|notadedebito>\NotaNum{1} -%<prefac>% \NumControl{1001} -%<prefac>% \NumSerieControl{9} -%<!factdos&!factcuatro&!factnueve&!beispiel>\RazonSocial{Ayala San Vicente Usureros} +%<prefac>\NumControl{1001} +%<prefac>\NumSerieControl{09} +%<!factdos&!factcuatro&!beispiel>\RazonSocial{Ayala San Vicente Usureros} %<factdos|factcuatro|beispiel>\Nombre{Jacinto de Ayala y San Vicente} -%<!factdos&!factcuatro&!factnueve&!beispiel&!reptres>\RIF{Y-12.345.678-9} +%<!factdos&!factcuatro&!beispiel&!reptres>\RIF{Y-12.345.678-9} %<factdos|factcuatro|beispiel>\CI{V-987.654.321} -%<!factdos&!factcuatro&!factnueve&!reptres&!beispiel>\Contacto{Jacinto de Ayala} -%<!factnueve&!reptres>\Direccion{Av. Ayala, Galpón San Vicente, Sector Arauca, Apure, Venezuela} -%<!factcinco&!factseis&!factnueve&!reptres>\Telefono{+58 (987) 654.32.10} -%<!factcuatro&!factseis&!factnueve&!reptres>\Email{jacinto@ayala.sv} +%<!factdos&!factcuatro&!reptres&!beispiel>\Contacto{Jacinto de Ayala} +%<!reptres>\Direccion{Av. Ayala, Galpón San Vicente, Sector Arauca, Apure, Venezuela} +%<!factcinco&!factnueve&!reptres>\Telefono{+58 (987) 654.32.10} +%<!factcuatro&!factnueve&!reptres>\Email{jacinto@ayala.sv} %<factcinco|repuno>\Emisor{Lázaro de la Vega} %<factcinco>\Conforme{\Contacto} %<factseis>\Conforme{Ramela San Vicente} -%<repdos|reptres>\Proveedor{Lázaro de la Vega y San Román} -%<!factnueve> +%<repdos|reptres|repcuatro>\Proveedor{Lázaro de la Vega y San Román} + %<factcinco>\FormatoFecha[yyyymmdd]{ddmmyyyy}{.} %<facttres>\FormatoFecha{ddmmyyyy}{/} %<factseis>\FormatoFecha{default}{/} -%<!facttres&!factcuatro&!factcinco>\Fecha{02-07-2020} -%<factcuatro>\Fecha*{2020}{07}{02} -%<factcinco>\Fecha{20200702} -%<notadecredito|notadedebito>\NotaFecha{01-07-2020} -%<factsiete|factocho> -%<factsiete|factocho>\makeatletter -%<factocho> \renewcommand{\@@Fecha}{\slshape FECHA:} +%<!facttres&!factcuatro&!factcinco>\Fecha{02-07-2022} +%<factcuatro>\Fecha*{2022}{07}{02} +%<factcinco>\Fecha{20220702} +%<notadecredito|notadedebito>\FechaNota{01-07-2022} +%<notadecredito|notadedebito>\NumNota{1} +%<factseis|factsiete|factocho> +%<factseis|factsiete|factocho>\makeatletter +%<factocho> \renewcommand{\@@Fecha}{FECHA:} %<factocho> \renewcommand{\@EstiloFechas}{\@LetraFecha\bfseries\@@Fecha\space{\color{blue}\@Fecha}} +%<factseis> \setlength{\@EspacioSignoMonetario}{3pt} % Para cambiar el espacio entre el monto y el signo monetario +%<factocho> % \setlength{\@EspacioSignoMonetario}{0pt} % Para cambiar el espacio entre el monto y el signo monetario %<factsiete> \renewcommand{\@@Cantidad}{Cant.} -%<factsiete|factocho>\makeatother +%<factseis|factsiete|factocho>\makeatother %<factnueve>\Credito{11} %<prefac>\Descuento{18} %<facttres>\DescuentoE{15} %<facttres>\DescuentoG{20} %<factocho>\Descuento*{300} -%<prefac|facttres|factocho> +%<factseis>\Moneda{VES} +%<factocho>% \Divisa{₩} +%<factdiez>\Divisa{₩} +%<factdiez>\TasaCambio{194.46} +%<prefac|facttres|factocho|factdiez> %<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} %<prefac|cotiza|beispiel>\FondoFactura{factura-ejemplo-fondo} -%<repuno>\FondoReporte{factura-ejemplo-membrete} +%<repuno|repcuatro>\FondoReporte{factura-ejemplo-membrete} %<repdos>\FondoReporte*{factura-ejemplo-membrete} -%<repuno>\InicioReporte{2.2cm} -%<repuno|reptres>\TituloReporte{El título del reporte} -%<repdos>\TituloReporte*{El título del reporte} -%<reptres>\InfoPagina{La cabecera o pie del reporte - \Proveedor} -%<repuno|reptres>% \EstiloPagina{soloabajo} -%<repuno|reptres>% \EstiloPagina[soloabajo]{plain} -%<repuno|reptres>% \EstiloPagina[empty]{plain} -%<repdos|reptres>% \EstiloPagina[empty]{soloabajo} -%<reptres>% \EstiloPagina{plain} -%<repuno|repdos|reptres>% \EstiloPagina{solonumpag} -%<repdos>% \EstiloPagina{soloabajo} -%<repuno|reptres>% \EstiloPagina[solonumpag]{plain} -%<repuno|reptres>% \EstiloPagina[solonumpag]{soloarriba} -%<reptres>\EstiloPagina[solonumpag]{soloabajo} -%<repuno>% \EstiloPagina[solonumpag]{soloabajo} -%<repuno|reptres>% \EstiloPagina[empty]{soloarriba} -%<repuno|reptres>% \EstiloPagina{soloarriba} +%<repuno|repcuatro>\InicioReporte{2.2cm} +%<repuno|repdos>\TituloReporte{El título del reporte} +%<reptres>\TituloReporte*{El título del reporte} +%<repcuatro>\InfoPagina{La cabecera o pie del reporte - \Proveedor} +%<repdos|repdos|reptres|repcuatro>% \EstiloPagina{soloarriba} +%<repuno|repdos|reptres|repcuatro>% \EstiloPagina{soloabajo} +%<repuno|repdos|reptres|repcuatro>% \EstiloPagina[soloabajo]{plain} +%<repuno|repdos|reptres|repcuatro>% \EstiloPagina[empty]{plain} +%<repdos|repdos|reptres|repcuatro>% \EstiloPagina[empty]{soloabajo} +%<reptres>\EstiloPagina[empty]{soloarriba} +%<repuno|repdos|repcuatro>% \EstiloPagina[empty]{soloarriba} +%<repdos|repdos|reptres|repcuatro>% \EstiloPagina{plain} +%<repuno|repdos|reptres|repcuatro>% \EstiloPagina{solonumpag} +%<repcuatro>\EstiloPagina{soloabajo} +%<repdos|repdos|reptres>% \EstiloPagina{soloabajo} +%<repuno|repdos|reptres|repcuatro>% \EstiloPagina[solonumpag]{plain} +%<repuno|repdos|reptres|repcuatro>% \EstiloPagina[solonumpag]{soloarriba} +%<repdos|repdos|reptres|repcuatro>% \EstiloPagina[solonumpag]{soloabajo} +%<repdos|repdos|reptres|repcuatro>% \EstiloPagina[empty]{soloarriba} %<cotiza>\FirmaFactura{\includegraphics[width=4.5cm]{factura-ejemplo-firma}}[0pt][17pt] -%<factdos|facttres|factsiete>\SepVertical{0.75cm} -%<factdos|factcinco>\SepDatosResumen{1cm} -%<factdos|facttres|factseis>\SepEncabezado{16pt} +%<factdos|facttres>\SepVertical{0.75cm} +%<factdos>\SepDatosResumen{1cm} +%<factdos|facttres>\SepEncabezado{16pt} %<factdos|factcuatro>\SepItemsExtra{5pt} -%<factdos|factseis>\SepDescripcion{16pt} +%<factdos>\SepDescripcion{16pt} %<factnueve>\SepNotaPrevia{16pt} %<factsiete>\SepFilas{1cm}{10pt} %<factnueve>\SepNotaFinal{16pt} %<facttres|factsiete>\LineaEncabezado{1pt}{20pt}{3pt} %<factdiez>\LineaNotaPrevia{0pt} -%<factdos|factsiete>\LineaDescripcion{1pt}{20pt}{3pt} +%<factsiete>\LineaDescripcion{1pt}{20pt}{3pt} %<factnueve>\LineaNotaFinal{0.4pt}{4pt}{3pt} %<factsiete>\LineaFirmas{6.5cm}{2pt} %<prefac> -%<prefac>% Puede usarse \PosControl y \PosFormalibre para cambiar la posición del número de control y del texto “FORMA LIBRE”, y sus versiones con “*” para que el texto se despliegue en la posición 'Y' dada pero hacia arriba y no hacia abajo. +%<prefac>% Puede usarse \PosControl y \PosFormalibre para cambiar la posición del número de control y del texto “FORMA LIBRE”, y sus versiones con “*” para que el texto se despliegue en la posición 'Y' dada pero hacia arriba y no hacia abajo. %<prefac>% \PosControl{}{} %<prefac>% \PosFirmalibre{}{} %<prefac> -%<factsiete>% Puede usarse \PosFecha* o \PosDenom* 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 \PosDenominacion* para que el texto se despliegue en la posición 'Y' dada pero hacia arriba y no hacia abajo. \PosFirmas no acepta eso. %<factnueve>% Puede usarse \PosNotaFinal* para que el texto se despliegue en la posición 'Y' dada pero hacia arriba y no hacia abajo. %<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>\LetraNotaFinal{\fontsize{18}{28}\bfseries} -%<factocho>\LetraItems{\fontsize{20}{30}} -%<factocho>\LetraNumeros{\fontsize{20}{30}} -%<factocho>\LetraTipoIVA{\fontsize{20}{30}\bfseries} -%<factocho>\LetraTitTotales{\fontsize{20}{30}\slshape} -%<factocho>\LetraNumTotales{\fontsize{20}{30}} -%<factocho>\LetraTitColumnas{\fontsize{15}{20}} -%<factocho>\LetraTitTotal{\fontsize{20}{30}\bfseries\slshape} -%<factocho>\LetraNumTotal{\fontsize{20}{30}\bfseries} +%<factsiete>\PosDenominacion{-0cm}{4.3cm} +%<factocho>\LetraTitEnc{\fontfamily{lmdh}\fontsize{10}{12}} +%<factocho>\LetraEncFactura{\fontfamily{cmss}\fontsize{12}{14}} +%<factocho>\LetraFecha{\fontfamily{qpl}\slshape} +%<factocho>\LetraTitColumnas{\fontfamily{lmdh}\fontsize{10}{12}} +%<factocho>\LetraItems{\fontfamily{cmss}\fontsize{14}{17}} +%<factocho>\LetraNumeros{\fontfamily{phv}} +%<factocho>\LetraTitTotales{\fontfamily{qtm}\fontsize{12}{14}\scshape} +%<factocho>\LetraNumTotales{\fontfamily{phv}} +%<factocho>\LetraNumTotal{\fontfamily{phv}} +%<factocho>\LetraTitTotal{\fontfamily{qhv}} +%<factocho>\LetraDescripcion{\fontfamily{put}} +%<factocho>\LetraFirmas{\fontfamily{put}\itshape} %<factocho>\tabcolsep7pt -%<!factuno&!factcinco&!notadecredito&!notadedebito&!prefac&!reptres> -%<cotiza>% \Denom{PRESUPUESTO} % También podemos cambiar el nombre del documento. -%<!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} +%<!factuno&!factcinco&!notadecredito&!notadedebito&!prefac&!reptres&!repcuatro> +%<cotiza>% \Denominacion{PRESUPUESTO} % También podemos cambiar el nombre del documento. +%<factdiez>\Membrete{Membrete de la factura \hfill establecido por el usuario \par \vspace*{2cm} Membrete de la factura \hfill establecido por el usuario} +%<factdiez>\EncabezadoFactura{\framebox{\parbox{\linewidth-2\fboxsep-2\fboxrule}{Aquí el usuario puede diseñar su encabezado de la factura para establecer la información de los datos del cliente según un diseño propio.}}} +%<reptres>\EncabezadoReporte{\framebox{\parbox{\linewidth-2\fboxsep-2\fboxrule}{Aquí el usuario puede diseñar su encabezado del reporte para establecer la información que allí aparece según un diseño propio.}}} +%<factuno|factdos|factcinco|factocho>\Resumen{Este es el resumen} %<beispiel>\Resumen{Zusammenfassung} -%<factcuatro|factdiez>\NotaPrevia{\hfill LA NOTA PREVIA} -%<factnueve>\NotaPrevia{\hfill LA NOTA PREVIA} -%<factnueve>\NotaPrevia*{- SEGUNDA PARTE DE LA NOTA PREVIA} -%<factocho|factnueve>\NotaInterna{LA NOTA INTERNA} -%<factnueve>\NotaExterna{LA NOTA EXTERNA} -%<factnueve>\NotaExterna**{PRIMERA PARTE DE LA NOTA EXTERNA - } +%<factcuatro|factnueve|factdiez>\NotaPrevia{\hfill Esta es la nota previa} +%<factnueve>\NotaPrevia*{- Esta es la segunda parte de la nota previa, agregada luego} +%<factdiez|cotiza> +%<factdiez>% Puede anularse la nota externa con la tasa de cambio y establecerla como nota interna. +%<factdiez>% También puede ponerse un mensaje distinto del almacenado en \TextoTasaCambio. +%<factdiez>% \AtEndPreamble{\NotaExterna{}} +%<factdiez>% \NotaInterna{\TextoTasaCambio} +%<factdiez> %<notadedebito>\AtEndPreamble{\NotaInterna{}} +%<factseis|factocho|factnueve>\NotaInterna{Esta es la nota interna} +%<factseis|factnueve>\NotaExterna{Esta es la nota externa} +%<factnueve>\NotaExterna**{Esta es la primera parte de la nota externa, agregada luego - } %<notadedebito>\NotaExterna{\TextoNotaDeDebito} +%<!factcuatro&!factocho&!factnueve&!reptres&!repcuatro&!beispiel>\NotaFinal{Esta es 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} \begin{document} -%<!reptres> -%<factnueve>\noindent \framebox{\parbox{\linewidth-2\fboxsep-2\fboxrule}{\hfill Aquí el usuario puede diseñar su encabezado de la factura \hfill\mbox{}}} -%<factnueve> -%<!reptres>\begin{factura} -%<!notadecredito&!notadedebito&!factdos&!factcinco&!factseis&!repdos&!reptres&!beispiel> \Item{1}{ítem con IVA general}{1000} +%<!reptres&!repcuatro> +%<!reptres&!repcuatro>\begin{factura} +%<!notadecredito&!notadedebito&!factdos&!factcinco&!factseis&!repdos&!reptres&!repcuatro&!beispiel> \Item{1}{ítem con IVA general}{1000} %<notadecredito> \Item{1}{Diferencia por error en factura}{1000} %<notadedebito> \Item{1}{Diferencia por error en factura}{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} @@ -5503,36 +5672,36 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. %<beispiel> \Item{1}{Artikel mit 19\% MwSt}{100} %<beispiel> \ItemR{1}{Artikel mit 7\% MwSt}{100} %<beispiel> \ItemE{1}{Artikel mit kein MwSt}{100} -%<!reptres>\end{factura} -%<!facttres&!reptres> -%<!facttres&!factseis&!reptres&!notadecredito&!notadedebito&!beispiel>\Descripcion{La descripción larga} -%<notadecredito|notadedebito>\Descripcion{Con esta nota queda saldado el error cometido en la factura número \NotaNum{} de fecha \NotaFecha.} +%<!reptres&!repcuatro>\end{factura} +%<!facttres&!reptres&!repcuatro> +%<!facttres&!factseis&!reptres&!repcuatro&!notadecredito&!notadedebito&!beispiel>\Descripcion{Esta es la descripción larga} +%<notadecredito|notadedebito>\Descripcion{Con esta nota queda saldado el error cometido en la factura número \NumNota{} de fecha \FechaNota.} %<factseis>\Descripcion{ %<factseis> %<beispiel>\Descripcion{Lange Beschreibung.} -%<factcinco|factocho|factnueve|factdiez|repuno|repdos|reptres> +%<factcinco|factnueve|factdiez|repuno|repdos|reptres|repcuatro> %<factnueve|factdiez|repuno>\begin{reverso} %<factnueve|factdiez|repuno>esquina superior izquierda del reverso\hfill esquina superior derecha del reverso\par %<factnueve|factdiez|repuno>\vfill %<factnueve|factdiez|repuno>esquina inferior izquierda del reverso\hfill esquina inferior derecha del reverso %<factnueve|factdiez|repuno>\end{reverso} %<repuno> -%<factcinco|factocho|repuno|repdos|reptres>\begin{reporte} -%<factcinco|factocho|repuno|repdos|reptres> El reporte - página 1\newpage El reporte - página 2 \newpage El reporte - página 3. +%<factcinco|repuno|repdos|reptres|repcuatro>\begin{reporte} +%<factcinco|repuno|repdos|reptres|repcuatro> El reporte - página 1\newpage El reporte - página 2 \newpage El reporte - página 3. %<repdos> %<factseis|repdos> Se facturaron en total \arabic{NumItem} artículos. %<factseis|repdos> %<factseis|repdos> En el artículo número \itemref{primeritem} se facturaron \cantref{primeritem} “\descref{primeritem}”, 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, y el total final es de \Moneda~\numprint\Total. +%<factseis|repdos> La base imponible general de esta factura es de \Moneda~\numprint\BIG; el IVA general 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, \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] -%<repdos> \FirmaReporte[\includegraphics[width=4.5cm]{factura-ejemplo-firma}][0pt][17pt][3cm][3cm] -%<reptres> \FirmaReporte[\includegraphics[width=4.5cm]{factura-ejemplo-firma}][0pt][17pt]{el que firma}[4cm][0.8cm] -%<factcinco|factocho|repuno|repdos|reptres>\end{reporte} +%<repdos> \vspace{1.5cm}\FirmaReporte{el que firma} +%<reptres> \FirmaReporte[\includegraphics[width=4.5cm]{factura-ejemplo-firma}][0pt][17pt][3cm][3cm] +%<repcuatro> \FirmaReporte[\includegraphics[width=4.5cm]{factura-ejemplo-firma}][0pt][17pt]{el que firma}[4cm][0.8cm] +%<factcinco|repuno|repdos|reptres|repcuatro>\end{reporte} %% Este es un comando auxiliar suministrado por factura-ejemplo-aux.tex para escribir el detalle del ejemplo en la última hoja. \Ejemplo @@ -5678,7 +5847,7 @@ factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex. \end{document} %</fondo|membrete> %<*aux> -%% Helper file; not to be compiled standalone, only to be included on examples. +%% Helper file; not to be compiled, only to be included on examples. %% Archivo auxiliar; no para ser compilado sino para ser incluido en los ejemplos. %% \usepackage{xspace,catchfilebetweentags,regexpatch} |