summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/factura
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-01-22 21:03:55 +0000
committerKarl Berry <karl@freefriends.org>2022-01-22 21:03:55 +0000
commit56079a7502f8094ffb831d1ea3564312a8ff3049 (patch)
tree9bda2ea94bc5730445fb982de13fe10d9fc0c0d5 /Master/texmf-dist/tex/latex/factura
parentcdf946a4c2d4105eba2a5bec9a9608a3c2e178c3 (diff)
factura (22jan22)
git-svn-id: svn://tug.org/texlive/trunk@61697 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/factura')
-rw-r--r--Master/texmf-dist/tex/latex/factura/factura.cls466
-rw-r--r--Master/texmf-dist/tex/latex/factura/factura.def81
2 files changed, 289 insertions, 258 deletions
diff --git a/Master/texmf-dist/tex/latex/factura/factura.cls b/Master/texmf-dist/tex/latex/factura/factura.cls
index 4b6be8a9114..f507fda67c9 100644
--- a/Master/texmf-dist/tex/latex/factura/factura.cls
+++ b/Master/texmf-dist/tex/latex/factura/factura.cls
@@ -6,7 +6,7 @@
%%
%% factura.dtx (with options: `class')
%%
-%% Copyright 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
@@ -26,32 +26,30 @@
%% 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.
%%
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesClass{factura}
-[2020/11/15 v4.00
+[2022/01/22 v4.32
Clase para elaborar facturas legales
en la Repu'blica Bolivariana de Venezuela.
]
-%% 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:
\RequirePackage{etoolbox}% 'etoolbox' para los condicionales binarios y para \AtEndPreamble.
%% Condicionales auxiliares que sólo pueden ser usados dentro de un grupo.
\newbool{DCU}
\newbool{DUC}
\newbool{Descuentos}
-%% (quitado por no vigente)
- % \newbool{Electro}
\newbool{ExpAbajo}\booltrue{ExpAbajo}
\newbool{IVA}
\newbool{NumItem}
@@ -74,41 +72,42 @@ en la Repu'blica Bolivariana de Venezuela.
\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
@@ -124,7 +123,7 @@ en la Repu'blica Bolivariana de Venezuela.
\newif\ifsinlineasv
\newif\ifsinlineasve
\newif\ifsinlineasvi
-\newif\ifsinmarcas
+\newif\ifsinmarcasfactura
\newif\ifsinmonedatotales
\newif\ifsinnumero
\newif\ifsinreverso
@@ -141,6 +140,7 @@ en la Repu'blica Bolivariana de Venezuela.
\newif\if@factura \@facturatrue
\newif\if@reverso \@reversotrue
\newif\if@reporte
+\newif\if@TasaCambio
\newif\if@FondoFactura
\newif\if@FondoReporte
\newif\if@FondoReporteStar
@@ -163,6 +163,7 @@ en la Repu'blica Bolivariana de Venezuela.
\newif\if@DescAnum
\newif\if@DescEnum
\newif\if@DescuentoTotal
+\newif\if@EscribeMoneda
%% Longitudes para uso interno.
\newlength{\@TamDatos}
@@ -198,8 +199,8 @@ en la Repu'blica Bolivariana de Venezuela.
\newlength{\@SepTotales}
\newlength{\@PosFechaX}
\newlength{\@PosFechaY}
-\newlength{\@PosDenomX}
-\newlength{\@PosDenomY}
+\newlength{\@PosDenominacionX}
+\newlength{\@PosDenominacionY}
\newlength{\@PosFirmasXuno}
\newlength{\@PosFirmasXdos}
\newlength{\@PosFirmasY}
@@ -245,7 +246,7 @@ en la Repu'blica Bolivariana de Venezuela.
\newbox{\@CajaFirmaEmisor}
\newbox{\@CajaFirmas}
\newbox{\@CajaFecha}
-\newbox{\@CajaDenom}
+\newbox{\@CajaDenominacion}
\newbox{\@CajaControl}
\newbox{\@CajaFormalibre}
\newbox{\@CajaNotaFinal}
@@ -265,38 +266,46 @@ en la Repu'blica Bolivariana de Venezuela.
\newcommand{\CLASSWARNING}[1]{\ClassWarning{factura}{** #1. **}{}}
\newcommand{\CLASSINFO}[1]{\ClassInfo{factura}{** #1. **}{}}
+
%% 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'.
@@ -306,7 +315,8 @@ en la Repu'blica Bolivariana de Venezuela.
\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.
@@ -326,6 +336,7 @@ en la Repu'blica Bolivariana de Venezuela.
\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.
@@ -343,7 +354,7 @@ en la Repu'blica Bolivariana de Venezuela.
\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).
@@ -388,12 +399,13 @@ en la Repu'blica Bolivariana de Venezuela.
\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}
@@ -419,6 +431,7 @@ en la Repu'blica Bolivariana de Venezuela.
\cotizacionfalse
\fi
\fi
+ \ifcotizacion\ifdefvoid{\@Credito}{}{\vencimientofalse}\fi
\ifprefactura
\ifcotizacion
\prefacturafalse
@@ -447,7 +460,7 @@ en la Repu'blica Bolivariana de Venezuela.
\fi
\ifsinlineashe\booltrue{SinLineasHoriExt}\fi
- \ifsindenom
+ \ifsindenominacion
\else
\ifcotizacion
\else
@@ -512,7 +525,7 @@ en la Repu'blica Bolivariana de Venezuela.
\fi
\fi
\ifdescuentos\booltrue{Descuentos}\fi
- \ifiva\impdesctrue\booltrue{IVA}\fi
+ \ifiva\ivadescripciontrue\booltrue{IVA}\fi
\ifsubtotal
\ifdescuentos
\booltrue{Subtotal}
@@ -532,41 +545,20 @@ en la Repu'blica Bolivariana de Venezuela.
\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
@@ -585,7 +577,7 @@ en la Repu'blica Bolivariana de Venezuela.
\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.
@@ -635,44 +627,67 @@ en la Repu'blica Bolivariana de Venezuela.
\@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
@@ -688,7 +703,7 @@ en la Repu'blica Bolivariana de Venezuela.
\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
@@ -703,9 +718,8 @@ en la Repu'blica Bolivariana de Venezuela.
% 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
@@ -724,7 +738,7 @@ en la Repu'blica Bolivariana de Venezuela.
\def\@ImpuestoR{\@AlicuotaR}
\def\@ImpuestoA{\@AlicuotaA}
-%% 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}
@@ -733,26 +747,29 @@ en la Repu'blica Bolivariana de Venezuela.
\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}}
@@ -765,6 +782,11 @@ en la Repu'blica Bolivariana de Venezuela.
\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}
@@ -790,14 +812,18 @@ en la Repu'blica Bolivariana de Venezuela.
\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}}
-\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}}
@@ -806,6 +832,7 @@ en la Repu'blica Bolivariana de Venezuela.
\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}}
@@ -826,6 +853,7 @@ en la Repu'blica Bolivariana de Venezuela.
{\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}{}{%
@@ -861,6 +889,13 @@ en la Repu'blica Bolivariana de Venezuela.
% \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}}{}%
@@ -881,12 +916,12 @@ en la Repu'blica Bolivariana de Venezuela.
\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}
@@ -905,19 +940,19 @@ en la Repu'blica Bolivariana de Venezuela.
% 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
@@ -955,6 +990,8 @@ en la Repu'blica Bolivariana de Venezuela.
% 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}%
@@ -968,12 +1005,12 @@ en la Repu'blica Bolivariana de Venezuela.
\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}%
@@ -981,7 +1018,11 @@ en la Repu'blica Bolivariana de Venezuela.
\def\NotaExterna{\@NotaExterna}%
\def\TituloReporte{\@TituloReporte}}
+\setlength{\parindent}{0pt}
+\setlength{\lineskip}{0pt}%
+
%% 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.
\NewDocumentCommand{\PosFecha}{s m m}{
\setlength{\@PosFechaX}{#2}
\setlength{\@PosFechaY}{#3}
@@ -1003,12 +1044,13 @@ en la Repu'blica Bolivariana de Venezuela.
\IfBeginWith{#2}{-}{\booltrue{ControlXnegativo}}{\boolfalse{ControlXnegativo}}
\IfBeginWith{#3}{-}{\booltrue{ControlYnegativo}}{\boolfalse{ControlYnegativo}}}
-\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.
\NewDocumentCommand{\PosNotaFinal}{s m m m}{
\setlength{\@PosNotaFinalXuno}{#2}
@@ -1048,34 +1090,27 @@ en la Repu'blica Bolivariana de Venezuela.
%% Separación extra entre los elementos en la factura.
\def\SepItemsExtra#1{\setlength{\@SeparaItemsExtra}{#1}}
-%% 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.
\def\SepDescripcion#1{\setlength{\@SeparaInternaDescripcion}{#1}}
-
\def\SepNotaFinal#1{\setlength{\@SeparaInternaNotaFinal}{#1}}
-%% 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).
\NewDocumentCommand{\LineaEncabezado}{m g g}{
\setlength{\@GrosorLineaEncabezado}{#1}
\IfValueT{#2}{\setlength{\@EsquinaLineaEncabezado}{#2}}
\IfValueT{#3}{\setlength{\@SombraEncabezado}{#3}}}
-%% 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).
\NewDocumentCommand{\LineaNotaPrevia}{m g g}{
\setlength{\@GrosorLineaNotaPrevia}{#1}
\IfValueT{#2}{\setlength{\@EsquinaLineaNotaPrevia}{#2}}
\IfValueT{#3}{\setlength{\@SombraNotaPrevia}{#3}}}
-%% 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).
\NewDocumentCommand{\LineaDescripcion}{m g g}{
\setlength{\@GrosorLineaDescripcion}{#1}
\IfValueT{#2}{\setlength{\@EsquinaLineaDescripcion}{#2}}
\IfValueT{#3}{\setlength{\@SombraDescripcion}{#3}}}
-%% Grosor de la línea de la nota final, curvatura de la esquina y sombra.
-%% (si pedimos linea de 0pt, todo queda en cero y no se abre el ambiente TikZ).
\NewDocumentCommand{\LineaNotaFinal}{m g g}{
\setlength{\@GrosorLineaNotaFinal}{#1}
\IfValueT{#2}{\setlength{\@EsquinaLineaNotaFinal}{#2}}
@@ -1115,6 +1150,9 @@ en la Repu'blica Bolivariana de Venezuela.
%% Tipo de letra para el texto en el encabezado de la factura.
\def\LetraEncFactura#1{\gdef\@LetraEncFactura{#1\selectfont}}
+%% Tipo de letra para el texto del membrete de la factura.
+\def\LetraMembrete#1{\gdef\@LetraMembrete{#1\selectfont}}
+
%% Tipo de letra para el texto en el encabezado del reporte.
\def\LetraEncReporte#1{\gdef\@LetraEncReporte{#1\selectfont}}
@@ -1137,7 +1175,8 @@ en la Repu'blica Bolivariana de Venezuela.
\def\LetraNotaFinal#1{\gdef\@LetraNotaFinal{#1\selectfont}}
%% Letra para la denominación del documento ('FACTURA', 'NOTA DE CRÉDITO', 'NOTA DE DÉBITO', 'COTIZACIÓN',...).
-\def\LetraDenom#1{\gdef\@LetraDenom{#1\selectfont}}
+\def\LetraDenominacion#1{\gdef\@LetraDenominacion{#1\selectfont}}
+\let\LetraDenom\LetraDenominacion% TODO: Quitar en el futuro.
%% Letra para el texto 'FORMA LIBRE'
\def\LetraFormalibre#1{\gdef\@LetraFormalibre{#1\selectfont}}
@@ -1175,6 +1214,7 @@ en la Repu'blica Bolivariana de Venezuela.
\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
@@ -1229,14 +1269,15 @@ en la Repu'blica Bolivariana de Venezuela.
\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.
@@ -1246,11 +1287,10 @@ en la Repu'blica Bolivariana de Venezuela.
\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]{%
@@ -1258,18 +1298,19 @@ en la Repu'blica Bolivariana de Venezuela.
\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
@@ -1277,10 +1318,22 @@ en la Repu'blica Bolivariana de Venezuela.
\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}{%
@@ -1295,11 +1348,12 @@ en la Repu'blica Bolivariana de Venezuela.
\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}
@@ -1310,11 +1364,11 @@ en la Repu'blica Bolivariana de Venezuela.
%% 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%
@@ -1322,7 +1376,7 @@ en la Repu'blica Bolivariana de Venezuela.
\hfill\kern\@SeparaFinLineaDesc\@EscribeTipoDeImpuesto{#2}%
\fi
\par\global\count1=\prevgraf}}%
- \ifsinmarcas
+ \ifsinmarcasfactura
\usebox{\@CajaPrueba}%
\else
\ifnum\count1=1%
@@ -1334,7 +1388,7 @@ en la Repu'blica Bolivariana de Venezuela.
\fi
\parbox[t]{\linewidth-\@TempDimen-\@SeparaFinLineaDesc}{%
\David@XStart
- \ifcentradesc\centering\arraybackslash\fi
+ \ifdescripcioncentrada\centering\arraybackslash\fi
#1%
\David@XEnd
\par
@@ -1343,7 +1397,7 @@ en la Repu'blica Bolivariana de Venezuela.
\count2=\prevgraf
\loop
\ifnum\count0=\count2
- \ifimpdesc
+ \ifivadescripcion
\vskip-\baselineskip
\mbox{}\hfill
\rlap{%
@@ -1433,8 +1487,6 @@ en la Repu'blica Bolivariana de Venezuela.
\if@BIR\@EscribeTotalColAlicuota{R}\fi
\@EscribeTotalColAlicuota{G}%
\if@BIA\@EscribeTotalColAlicuota{A}\fi
- %% (quitado por no vigente)
- % \ifbool{Electro}{\@EscribeTotalColAlicuotaGDesc}{}%
\fi}
\newcommand{\@EscribeTotalColBI}[1]{%
@@ -1443,25 +1495,20 @@ en la Repu'blica Bolivariana de Venezuela.
\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]{%
@@ -1496,22 +1543,22 @@ en la Repu'blica Bolivariana de Venezuela.
\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\numprint{\Total}}
+\newcommand{\@EscribeTotalFilasAuxTotal}{\@LetraTitTotal\@@Total: & \@LetraNumTotal\@SignoMonetarioAux{\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!
@@ -1528,8 +1575,19 @@ en la Repu'blica Bolivariana de Venezuela.
\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
@@ -1561,14 +1619,14 @@ en la Repu'blica Bolivariana de Venezuela.
\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}%
@@ -1579,17 +1637,17 @@ en la Repu'blica Bolivariana de Venezuela.
\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.
@@ -1609,36 +1667,23 @@ en la Repu'blica Bolivariana de Venezuela.
\FPset\DescA{0}\global\let\DescA\DescA
\FPset\DescX{0}\global\let\DescX\DescX
\FPset\AlicuotaG{0}\global\let\AlicuotaG\AlicuotaG
- %% (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}%
@@ -1694,7 +1739,7 @@ en la Repu'blica Bolivariana de Venezuela.
%% Aquí tenemos que hacer coincidir los parámetros de \@CalculaItem con los de \@ITEM para poder hacer
%% \let\@CalculaItem\@ITEM cuando no hay factura sino solamente reporte.
\NewDocumentCommand{\@CalculaItem}{m m m o m m +o}{%
- \gdef\@PrecioUtemp##1{\FPupn\PrecioUtemp{##1 \PrecioUtempx{} * clip}}%
+ \gdef\@PrecioUtemp##1{\FPupn\PrecioUtemp{##1 \@TasaCambio{} * clip}}%
\addtocounter{NumItem}{1}%
% Calculamos.
\@PrecioUtemp{#5}%
@@ -1761,6 +1806,7 @@ en la Repu'blica Bolivariana de Venezuela.
\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.
@@ -1864,7 +1910,7 @@ en la Repu'blica Bolivariana de Venezuela.
\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.
@@ -1877,7 +1923,7 @@ en la Repu'blica Bolivariana de Venezuela.
\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).
@@ -1885,7 +1931,7 @@ en la Repu'blica Bolivariana de Venezuela.
\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.
@@ -1908,7 +1954,7 @@ en la Repu'blica Bolivariana de Venezuela.
\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
@@ -1965,7 +2011,7 @@ en la Repu'blica Bolivariana de Venezuela.
\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}{}
{%
@@ -1973,16 +2019,16 @@ en la Repu'blica Bolivariana de Venezuela.
\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}%
@@ -2028,18 +2074,16 @@ en la Repu'blica Bolivariana de Venezuela.
\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}%
@@ -2057,7 +2101,7 @@ en la Repu'blica Bolivariana de Venezuela.
\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}%
@@ -2068,7 +2112,7 @@ en la Repu'blica Bolivariana de Venezuela.
\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%
@@ -2082,9 +2126,9 @@ en la Repu'blica Bolivariana de Venezuela.
\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%
@@ -2098,9 +2142,9 @@ en la Repu'blica Bolivariana de Venezuela.
\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{%
@@ -2122,7 +2166,7 @@ en la Repu'blica Bolivariana de Venezuela.
\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.
@@ -2186,25 +2230,24 @@ en la Repu'blica Bolivariana de Venezuela.
\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}
@@ -2236,8 +2279,9 @@ en la Repu'blica Bolivariana de Venezuela.
\let\@ITEM\@CalculaItem
\BODY
\@CalculaTotalesI}
- \RenewEnviron{reverso}{}
- \NewDocumentCommand{\Descripcion}{+m}{}
+ \RenewEnviron{reverso}{}%
+ \gdef\@EncabezadoFactura{}%
+ \NewDocumentCommand{\Descripcion}{+m}{}%
\fi
\if@reporte
@@ -2252,7 +2296,7 @@ en la Repu'blica Bolivariana de Venezuela.
\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}%
@@ -2285,7 +2329,7 @@ en la Repu'blica Bolivariana de Venezuela.
%% 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}}%
@@ -2335,13 +2379,13 @@ en la Repu'blica Bolivariana de Venezuela.
\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).
@@ -2363,7 +2407,7 @@ en la Repu'blica Bolivariana de Venezuela.
\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%
@@ -2396,8 +2440,8 @@ en la Repu'blica Bolivariana de Venezuela.
%% 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}}{}%
@@ -2502,8 +2546,6 @@ en la Repu'blica Bolivariana de Venezuela.
\immediate\write\csv{Totales: \@@SubtotalG: \Moneda \SubtG^^JTotales: \@@DescuentoG: \Moneda \DescG}%
\fi
\immediate\write\csv{Totales: \@@BIG: \Moneda \BIG^^JTotales: \@@AlicuotaG: \Moneda \AlicuotaG}%
- %% (quitado por no vigente)
- % \FPifeq\AlicuotaGDesc{0}\else\immediate\write\csv{Totales: \@@AlicuotaGDesc: \Moneda \AlicuotaGDesc}\fi
\if@BIA
\if@DescA
\immediate\write\csv{Totales: \@@SubtotalA: \Moneda \SubtA^^JTotales: \@@DescuentoA: \Moneda \DescA}%
diff --git a/Master/texmf-dist/tex/latex/factura/factura.def b/Master/texmf-dist/tex/latex/factura/factura.def
index 837b503b4ca..ccfe2f88cfb 100644
--- a/Master/texmf-dist/tex/latex/factura/factura.def
+++ b/Master/texmf-dist/tex/latex/factura/factura.def
@@ -6,7 +6,7 @@
%%
%% factura.dtx (with options: `def')
%%
-%% Copyright 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
@@ -26,22 +26,22 @@
%% 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.
%%
\ProvidesFile{factura.def}
-[2020/11/15 v4.00
+[2022/01/22 v4.32
Archivo de valores iniciales y condiciones de borde para factura.cls
]
-%% 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:
%% La geometría para la factura, su reverso, y el reporte.
%% Para la factura, el margen superior está definido desde el encabezado con los datos del cliente;
%% el margen inferior está definido hasta el final de la descripción (o del cuadro de la factura si no hay descripción).
@@ -52,10 +52,6 @@ Archivo de valores iniciales y condiciones de borde para factura.cls
%% Factores para los distintos IVA:
\def\@AlicuotaG{0.16}
-%% (quitado por no vigente)
- % \def\@AlicuotaGDescBajo{0.03}
- % \def\@AlicuotaGDescAlto{0.05}
- % \def\@AlicuotaGDescLimite{2000000}
\def\@AlicuotaR{0.08}
\def\@AlicuotaA{0.31}
@@ -69,13 +65,14 @@ Archivo de valores iniciales y condiciones de borde para factura.cls
\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:
@@ -83,10 +80,10 @@ Archivo de valores iniciales y condiciones de borde para factura.cls
% \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:}
@@ -95,10 +92,10 @@ Archivo de valores iniciales y condiciones de borde para factura.cls
\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.:}
@@ -122,8 +119,6 @@ Archivo de valores iniciales y condiciones de borde para factura.cls
\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}
@@ -140,13 +135,13 @@ Archivo de valores iniciales y condiciones de borde para factura.cls
\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}
@@ -174,7 +169,7 @@ Archivo de valores iniciales y condiciones de borde para factura.cls
%% 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}
@@ -184,10 +179,11 @@ Archivo de valores iniciales y condiciones de borde para factura.cls
\setlength{\@FirmaReporteExcesoLinea}{1.5cm}
%% 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.
\PosFecha*{-0cm}{4.5cm}
\PosFormalibre*{0cm}{-3.5cm}
\PosControl*{0cm}{-2.4cm}
-\PosDenom*{0cm}{4.5cm}
+\PosDenominacion*{0cm}{4.5cm}
\PosNotaFinal{0cm}{0cm}{-5.3cm}
%% La nota final se define con un X_inicial, un X_final y un Y_inicial (Xo,Xf,Y)
\PosFirmas{5cm}{1cm}{-2.4cm}
@@ -214,25 +210,15 @@ Archivo de valores iniciales y condiciones de borde para factura.cls
%% Separación extra entre los elementos en la factura.
\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.
\SepDescripcion{6pt}
-
\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).
\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).
\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).
\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).
\LineaNotaFinal{0pt}{0pt}{0pt}
%% El espacio vertical que hay que avanzar sólo en la primera página del reporte antes de empezar a escribir sobre él. Usable cuando la primera página tiene un membrete y las demás no, es decir, cuando se usa \FondoReporte y no \FondoReporte*.
@@ -269,6 +255,9 @@ Archivo de valores iniciales y condiciones de borde para factura.cls
%% Tipo de letra para el texto en el encabezado de la factura.
\LetraEncFactura{\fontsize{11}{12.5}}
+%% Tipo de letra para el texto del membrete de la factura.
+\LetraMembrete{\fontsize{13}{14}}
+
%% Tipo de letra para el texto en el encabezado del reporte.
\LetraEncReporte{\fontsize{13}{16}}
@@ -291,7 +280,7 @@ Archivo de valores iniciales y condiciones de borde para factura.cls
\LetraNotaFinal{\fontsize{12}{12}}
%% Letra para la denominación del documento ('FACTURA', 'NOTA DE CRÉDITO', 'NOTA DE DÉBITO', 'COTIZACIÓN',...).
-\LetraDenom{\fontsize{14}{14}\bfseries}
+\LetraDenominacion{\fontsize{14}{14}\bfseries}
%% Letra para el texto 'FORMA LIBRE'
\LetraFormalibre{\fontsize{14}{14}\bfseries\color{blue}}
@@ -437,12 +426,12 @@ Archivo de valores iniciales y condiciones de borde para factura.cls
\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}%