summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/factura
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-03-11 23:09:59 +0000
committerKarl Berry <karl@freefriends.org>2017-03-11 23:09:59 +0000
commit17e0823fb2fd28d95ad42bc2fb8e0e9931732fbf (patch)
tree126b006e765e786db4d07b7febaf6a1f15ee2ced /Master/texmf-dist/tex/latex/factura
parent7693eb017ac96acdb39dee66ab9a78607b8e61ec (diff)
factura (11mar17)
git-svn-id: svn://tug.org/texlive/trunk@43470 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/factura')
-rw-r--r--Master/texmf-dist/tex/latex/factura/factura.cls149
-rw-r--r--Master/texmf-dist/tex/latex/factura/factura.def8
2 files changed, 115 insertions, 42 deletions
diff --git a/Master/texmf-dist/tex/latex/factura/factura.cls b/Master/texmf-dist/tex/latex/factura/factura.cls
index 01d934a7c6c..29bf5f523f3 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 2016 Emilio Lazo Zaia <emiliolazozaia@gmail.com>
+%% Copyright 2017 Emilio Lazo Zaia <emiliolazozaia@gmail.com>
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
@@ -36,7 +36,7 @@
%%
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesClass{factura}
-[2016/06/25 v2.82
+[2017/03/11 v3.00
Clase para elaborar facturas legales
en la República Bolivariana de Venezuela.
]
@@ -55,6 +55,7 @@ en la República Bolivariana de Venezuela.
\newif\if@descuentos
\newif\if@denom
\newif\if@sinnumero
+\newif\if@sintotales
\newif\if@conlineasha
\newif\if@linea
\newif\if@lineacompleta
@@ -86,11 +87,14 @@ en la República Bolivariana de Venezuela.
\newif\if@nombre
\newif\if@pagado
\newif\if@impdesc
+\newif\if@centradesc
+\newif\if@sinmarcas
\newif\if@pruebaref
\RequirePackage{etoolbox}% 'etoolbox' para los condicionales binarios.
\newbool{Descuentos}
+\newbool{Subtotal}
\newbool{SinCantidad}
\newbool{SinLineasVertInt}
\newbool{SinLineasVertExt}
@@ -119,11 +123,26 @@ en la República Bolivariana de Venezuela.
\DeclareOption{unafirma}{\@unafirmatrue\@confirmastrue}% No agrega el espacio para que firme quien recibe.
\DeclareOption{dosfirmas}{\@unafirmafalse\@confirmastrue}% Pone las dos firmas para firmar.
\DeclareOption{descuentos}{\booltrue{Descuentos}\@descuentostrue}% Para los descuentos individuales.
+\DeclareOption{subtotal}{% Para la columna extra del subtotal antes del descuento.
+ \if@descuentos
+ \booltrue{Subtotal}
+ \else
+ \ClassWarning{factura}{La opción 'subtotal' no aplica sin descuentos individuales. Sin efecto opción 'subtotal'}{}
+ \fi}
\DeclareOption{sincondiciones}{\@concondicionesfalse}% No agrega el texto con las condiciones del documento.
\DeclareOption{denom}{\@denomtrue}% Agrega el texto con la denominación del documento, para las formas libres que no tienen el número de factura.
\DeclareOption{sinnumero}{\@sinnumerotrue\@denomtrue}% Escribir el texto de la denominación del documento pero sin escribir el número.
\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{filas}{\@filastrue}% Estilo de totalización en filas.
+\DeclareOption{sintotales}{\@sintotalestrue% No escribe los totales al final, por ejemplo para cotizaciones de productos similares.
+ \if@filas
+ \ClassWarning{factura}{La opción 'sintotales' no aplica para el modo de totalización en filas. Sin efecto opción 'filas'.}{}
+ \@filasfalse
+ \fi
+ \if@cotizacion
+ \else
+ \ClassWarning{factura}{La opción 'sintotales' no debe usarse en facturas sino en cotizaciones. No es válida una factura sin totales.}{}
+ \fi}
\DeclareOption{centrado}{% Total y exento 'centrado'; sólo para estilo 'filas'
\if@filas
\@centradotrue
@@ -137,6 +156,8 @@ en la República Bolivariana de Venezuela.
\@agrupadotrue
\fi}
\DeclareOption{impdesc}{\@impdesctrue}% Para el tipo de impuesto en la descripción y no en el precio unitario y total.
+\DeclareOption{centradesc}{\@centradesctrue}% Para centrar la descripción de cada ítem.
+\DeclareOption{sinmarcas}{\@sinmarcastrue}% Para evitar que aparezcan los caracteres especiales cuando la descripción es larga.
\DeclareOption{numitem}{\booltrue{NumItem}}% Para poner una columna extra al principio con el número del ítem.
\DeclareOption{dcu}{% Descripción, luego cantidad y luego precio unitario.
\@dcutrue\@cdufalse\@ducfalse
@@ -195,7 +216,7 @@ en la República Bolivariana de Venezuela.
\DeclareOption{csv}{% Para la salida en modo csv también.
\if@factura
\@csvtrue
- \AtEndDocument{\@EscribeTotalesEnCSV}
+ \if@sintotales\else\AtEndDocument{\@EscribeTotalesEnCSV}\fi
\else
\ClassWarning{factura}{La opción 'csv' require generar la factura. Sin efecto opción 'csv'.}{}
\fi}
@@ -271,7 +292,10 @@ en la República Bolivariana de Venezuela.
\ClassWarning{factura}{** Fecha del documento\space \@Fecha\space distinta de la fecha de hoy. **}{}%
\fi
\fi
- \if@factura\ClassInfo{factura}{\@@Total: \space\space\space \Moneda \Total}{}\fi}
+ \if@sintotales
+ \else
+ \if@factura\ClassInfo{factura}{\@@Total: \space\space\space \Moneda \Total}{}\fi
+ \fi}
%% La geometría en formato de factura y de reporte.
%% El margen superior está definido desde el encabezado con los datos del cliente.
@@ -420,6 +444,9 @@ en la República Bolivariana de Venezuela.
%% Separación horizontal entre las cajas del encabezado y separación interna entre la línea y el texto.
\def\SepEncabez#1#2{\setlength{\@SeparaEncabez}{#1}\setlength{\@SeparaInternaEncabez}{#2}}
+%% 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.
\def\SepDescrip#1{\setlength{\@SeparaInternaDescrip}{#1}}
@@ -604,6 +631,7 @@ en la República Bolivariana de Venezuela.
\newlength{\@TamCantidad}
\newlength{\@TamDescrip}
\newlength{\@TamPrecioU}
+\newlength{\@TamPrecioS}
\newlength{\@TamDescuento}
\newlength{\@TamPrecioT}
\newlength{\@GrosorLineaFirmas}
@@ -632,6 +660,8 @@ en la República Bolivariana de Venezuela.
\newlength{\@EspacioVacioInicial}
\newlength{\@EspacioVacioFinal}
\newlength{\@SeparaEncabez}
+\newlength{\@SeparaItemsExtra}
+\newlength{\@SeparaItemsExtraFinal}
\newlength{\@SeparaInternaEncabez}
\newlength{\@SeparaInternaDescrip}
\newlength{\@SeparaElementos}
@@ -694,6 +724,12 @@ en la República Bolivariana de Venezuela.
\RequirePackage{zref-savepos}% Para la firma, que debe ser cargado aquí porque \FirmaReporte no se ejecuta desde el preámbulo.
\fi
+\if@sinmarcas
+ \setlength{\@SeparaFinLineaDesc}{0pt}
+ \def\@CaracterCR{\mbox{}}
+ \def\@CaracterCeldasVacias{\mbox{}}
+\fi
+
%% Comando para escribir el encabezado en la factura.
\newcommand\@EncabezadoFactura{%
\ifdefvoid{\@Resumen}{\@EscribeDatos}{\@EscribeDatosResumen}%
@@ -726,15 +762,18 @@ en la República Bolivariana de Venezuela.
%% http://tex.stackexchange.com/questions/248944/how-to-put-before-lines
\newcommand{\@DescripcionAuxCmd}[2]{%
\immediate\write\@auxout{\gdef\noexpand\@TamDescrip{\the\linewidth}}% Para poder establecer la línea diagonal hay que saber el tamaño del campo de la descripción.
- \setbox0\hbox{\parbox[t]{\linewidth}{#1%
+ \setbox0\hbox{\parbox[t]{\linewidth}{\if@centradesc\centering\arraybackslash\fi#1%
\if@impdesc\hfill\ \@EscribeTipoDeImpuesto{#2}\fi%
\par\global\count1=\prevgraf}}%
\ifnum\count1 = 1
- #1%
- \if@impdesc\hfill\ \@EscribeTipoDeImpuesto{#2}\fi
+ \if@centradesc\centering\arraybackslash\fi#1%
+ \if@impdesc\vskip-\baselineskip\hfill\ \@EscribeTipoDeImpuesto{#2}\fi
\else
\parbox[t]{\linewidth-\wd\@CajaCaracterCR-\@SeparaFinLineaDesc}{%
- \David@XStart#1\David@XEnd
+ \David@XStart
+ \if@centradesc\centering\arraybackslash\fi
+ #1%
+ \David@XEnd
\par
\count0=\prevgraf
\count2=\prevgraf
@@ -771,6 +810,11 @@ en la República Bolivariana de Venezuela.
\ifdim\wd\@CajaPrueba > \@TamPrecioU \global\@TamPrecioU=\wd\@CajaPrueba\fi
\parbox[t]{\@TamPrecioU}{#1}}
+\newcommand{\@PrecioSAuxCmd}[1]{%
+ \savebox{\@CajaPrueba}{#1}%
+ \ifdim\wd\@CajaPrueba > \@TamPrecioS \global\@TamPrecioS=\wd\@CajaPrueba\fi
+ \parbox[t]{\@TamPrecioS}{#1}}
+
\newcommand{\@DescuentoAuxCmd}[1]{%
\savebox{\@CajaPrueba}{#1}%
\ifdim\wd\@CajaPrueba > \@TamDescuento \global\@TamDescuento=\wd\@CajaPrueba\fi
@@ -1020,13 +1064,17 @@ en la República Bolivariana de Venezuela.
\ifbool{DUC}{c}{r}
% 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}}}
+ % Sexta línea, que sale solamente cuando hay columna de subtotales.
+ \ifbool{Subtotal}{\ifbool{SinLineasVertInt}{}{|}}{}
% Columna 'c' para 'descuentos' y columna 'r' sin espacio si no hay descuentos individuales.
\ifbool{Descuentos}{c}{r@{\extracolsep{0pt}}}
- % Sexta línea, que sale solamente cuando hay descuentos.
+ % Séptima línea, que sale solamente cuando hay descuentos.
\ifbool{Descuentos}{\ifbool{SinLineasVertInt}{}{|}}{}
% Columna 'r' siempre.
r
- % Séptima y última línea.
+ % Octava y última línea.
\ifbool{SinLineasVertExt}{}{|}}
%% Comando auxiliar para abrir la tabla del cuadro de la factura y expandir completamente las columnas.
@@ -1034,7 +1082,7 @@ en la República Bolivariana de Venezuela.
%% Comando auxiliar para abrir el '\multicolumn' para los totales en el modo de columnas y expandir completamente las columnas cuando hay o no barras verticales.
\edef\@ColumnasMultiColumnTotalesAuxCmd{%
- \noexpand\multicolumn{6}{\ifbool{SinLineasVertExt}{}{|} r}\begingroup
+ \noexpand\multicolumn{7}{\ifbool{SinLineasVertExt}{}{|} r}\begingroup
\noexpand\ifdim \noexpand\ht\noexpand\@CajaEspacioVacio=0pt
\noexpand\else
\noexpand\if@linea\noexpand\zsaveposx{LineaNodoBCoordX}\noexpand\zsaveposy{LineaNodoBCoordY}\noexpand\fi\noexpand\fi% Fijamos la posición (x,y) final para la línea ya que estaremos justo en el punto donde escribimos el total, y hasta allí llega la línea en el modo de columnas.
@@ -1046,8 +1094,10 @@ en la República Bolivariana de Venezuela.
% Calculamos.
\FPupn\PrecioU{#4 \@DigitosMoneda{} round}%
\ifx\\#5\\\FPset\Dcto{0}\else\FPupn\Dcto{#5 \@DigitosPorc{} round clip}\fi% Fijamos en 0 el descuento si no se especifica.
- \FPupn\PrecioT{100 \Dcto{} 100 - / #2 * \PrecioU{} * \@DigitosMoneda{} round}%
+ \FPupn\PrecioS{#2 \PrecioU{} * \@DigitosMoneda{} round}%
+ \FPupn\PrecioT{100 \Dcto{} 100 - / \PrecioS{} * \@DigitosMoneda{} round}%
\global\let\PrecioU\PrecioU
+ \global\let\PrecioS\PrecioS
\global\let\Dcto\Dcto
\global\let\PrecioT\PrecioT
% Suma el elemento actual al subtotal acumulado.
@@ -1057,6 +1107,7 @@ en la República Bolivariana de Venezuela.
\expandafter\gdef\csname @Item@\romannumeral\value{@NumItem}@Cantidad\endcsname{\numprint{#2}}%
\expandafter\gdef\csname @Item@\romannumeral\value{@NumItem}@Descripcion\endcsname{#3}%
\expandafter\global\expandafter\edef\csname @Item@\romannumeral\value{@NumItem}@PrecioU\endcsname{\noexpand\numprint{\PrecioU}}%
+ \expandafter\global\expandafter\edef\csname @Item@\romannumeral\value{@NumItem}@PrecioS\endcsname{\noexpand\numprint{\PrecioS}}%
\expandafter\global\expandafter\edef\csname @Item@\romannumeral\value{@NumItem}@Descuento\endcsname{\noexpand\numprint{\Dcto}}%
\expandafter\global\expandafter\edef\csname @Item@\romannumeral\value{@NumItem}@PrecioT\endcsname{\noexpand\numprint{\PrecioT}}}
@@ -1074,6 +1125,7 @@ en la República Bolivariana de Venezuela.
\gdef\cantref#1{\@pruebaref{#1}\if@pruebaref \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @Cantidad\endcsname \fi}
\gdef\descref#1{\@pruebaref{#1}\if@pruebaref \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @Descripcion\endcsname \fi}
\gdef\puref#1{\@pruebaref{#1}\if@pruebaref \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @PrecioU\endcsname \fi}
+\gdef\subtref#1{\@pruebaref{#1}\if@pruebaref \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @PrecioS\endcsname \fi}
\gdef\dctoref#1{\@pruebaref{#1}\if@pruebaref \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @Descuento\endcsname \fi}
\gdef\ptref#1{\@pruebaref{#1}\if@pruebaref \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @PrecioT\endcsname \fi}
@@ -1149,7 +1201,8 @@ en la República Bolivariana de Venezuela.
% Si no es el primer ítem, entonces hace falta \\ para terminar el ítem anterior.
\ifnum\value{@NumItem}=1%
\else
- \\
+ \setlength{\@SeparaItemsExtraFinal}{\numexpr\the\count1\normalbaselineskip-\normalbaselineskip+\@SeparaItemsExtra}%
+ \\[\@SeparaItemsExtraFinal]
\if@conlineasha\hline\fi% Líneas para separar cada ítem, si hiciera falta.
\fi
% Primer -opcional- campo: El número del ítem.
@@ -1186,8 +1239,15 @@ en la República Bolivariana de Venezuela.
\if@impdesc\else\@EscribeTipoDeImpuesto{##1}\fi \hfill \@LetraNumeros \numprint{\PrecioU}
\fi}}% dcu y cdu.
\fi}%
+ & % Quinto -opcional- campo: Subtotal (para luego descuentos).
+ \ifbool{Subtotal}{%
+ \David@XRight{\@PrecioSAuxCmd{%
+ \ifx##1X \hfill \@CaracterItemXVacio \hfill\mbox{}%
+ \else
+ \if@impdesc\else\@EscribeTipoDeImpuesto{##1}\fi \hfill \@LetraNumeros \numprint{\PrecioS}
+ \fi}}}{}
&
- % Quinto -opcional- campo: Descuento.
+ % Sexto -opcional- campo: Descuento.
\ifbool{Descuentos}{%
\David@XRight{\@DescuentoAuxCmd{%
\ifx##1X \hfill \@CaracterItemXVacio \hfill\mbox{}%
@@ -1195,7 +1255,7 @@ en la República Bolivariana de Venezuela.
\mbox{}\hfill \@LetraNumeros \numprint{\Dcto}\%\hfill\mbox{}%
\fi}}}{}% Tenemos que usar un condicional booleano porque si no da problemas con el condicional \FPifeq.
&
- % Sexto campo: El total.
+ % Séptimo campo: El total.
\David@XRight{\@PrecioTAuxCmd{%
\ifx##1X \hfill \@CaracterItemXVacio \hfill\mbox{}%
\else
@@ -1258,6 +1318,8 @@ en la República Bolivariana de Venezuela.
\else
\@PrecioUAuxCmd{\mbox{}\hfill \@LetraTitCuadro \@@PrecioU \space (\Moneda)\hfill\mbox{}}%
\fi}%
+ &% Avanzamos hasta el subtotal, que puede o no existir,
+ \ifbool{Subtotal}{\@PrecioSAuxCmd{\mbox{}\hfill \@LetraTitCuadro \@@PrecioS \space (\Moneda)\hfill\mbox{}}}{}%
&% Avanzamos hasta el descuento, que puede o no existir.
\if@descuentos \@DescuentoAuxCmd{\mbox{}\hfill \@LetraTitCuadro \@@Descuento \hfill\mbox{}}\fi
&% Avanzamos hasta el precio total.
@@ -1274,7 +1336,7 @@ en la República Bolivariana de Venezuela.
\ifdim \ht\@CajaEspacioVacio=0pt
\ifbool{SinLineasHoriExt}{}{\if@conlineasha\else\hline\fi}% Verificamos si hay que poner la línea horizontal. Si está 'conlineasha' ya salió debido a esta opción.
\else
- \ifbool{PrimeroDescrip}{&\usebox{\@CajaEspacioVacio}&&&&\\}{&&\usebox{\@CajaEspacioVacio}&&&\\}%
+ \ifbool{PrimeroDescrip}{&\usebox{\@CajaEspacioVacio}&&&&&\\}{&&\usebox{\@CajaEspacioVacio}&&&&\\}%
\ifbool{SinLineasHoriExt}{}{\hline}% Siempre que hay relleno se pone la línea acá.
\fi
\else
@@ -1283,27 +1345,34 @@ en la República Bolivariana de Venezuela.
\ifdim \ht\@CajaEspacioVacio=0pt
\else
% Rellenamos la tabla con espacio espúreo, y le agregamos las lineas externas, si aplica.
- \ifbool{SinLineasVertExt}{\multicolumn{6}{c}{\usebox{\@CajaEspacioVacio}}}{\multicolumn{6}{|c|}{\usebox{\@CajaEspacioVacio}}}\\
+ \ifbool{SinLineasVertExt}{\multicolumn{7}{c}{\usebox{\@CajaEspacioVacio}}}{\multicolumn{7}{|c|}{\usebox{\@CajaEspacioVacio}}}\\
\fi
- % Modo de columnas: Abrimos la tabla para escribir los totales, y le agregamos las líneas verticales externas, si aplica.
- \@ColumnasMultiColumnTotalesAuxCmd
- \@CalculaTotalesI
- \if@agrupado
- \@EscribeTotalColAgrupado
+ % Si pedimos sin totalizaciones, entonces cerramos la tabla ya, si no, calculamos los totales y los escribimos
+ \if@sintotales
\else
- \if@Exento \@EscribeTotalCol{E}\fi
- \if@BIR\@EscribeTotalCol{R}\if@ivaexpresado\@EscribeTotalColAlicuota{R}\fi\fi
- \@EscribeTotalCol{G}\if@ivaexpresado\@EscribeTotalColAlicuota{G}\fi
- \if@BIA\@EscribeTotalCol{A}\if@ivaexpresado\@EscribeTotalColAlicuota{A}\fi\fi
+ % Modo de columnas: Abrimos la tabla para escribir los totales, y le agregamos las líneas verticales externas, si aplica.
+ \@ColumnasMultiColumnTotalesAuxCmd
+ \@CalculaTotalesI
+ \if@agrupado
+ \@EscribeTotalColAgrupado
+ \else
+ \if@Exento \@EscribeTotalCol{E}\fi
+ \if@BIR\@EscribeTotalCol{R}\if@ivaexpresado\@EscribeTotalColAlicuota{R}\fi\fi
+ \@EscribeTotalCol{G}\if@ivaexpresado\@EscribeTotalColAlicuota{G}\fi
+ \if@BIA\@EscribeTotalCol{A}\if@ivaexpresado\@EscribeTotalColAlicuota{A}\fi\fi
+ \fi
+ \if@ivaexpresado\cline{2-2}\fi
+ \hfill \@LetraTitTotal\@@Total & \@LetraNumTotal\numprint{\Total}\\
+ \end{tabular}\endgroup
+ \\
+ \ifbool{SinLineasHoriExt}{}{\hline}%
\fi
- \if@ivaexpresado\cline{2-2}\fi
- \hfill \@LetraTitTotal\@@Total & \@LetraNumTotal\numprint{\Total}\\
- \end{tabular}\endgroup
- \\
- \ifbool{SinLineasHoriExt}{}{\hline}%
\fi
\end{tabularx}%
%
+ % Generamos la macro \Total vacía para que no dé error en algún posible uso dentro del documento.
+ \if@sintotales\gdef\Total{}\fi
+ % Si pedimos no totalizar (sintotales), la opción filas queda desactivada.
\if@filas
\@CalculaTotalesI
\@LetraNumTotales
@@ -1377,13 +1446,13 @@ en la República Bolivariana de Venezuela.
\vspace*{\@SeparaElementos}\par}
\ifbool{SinCantidad}
- % Definamos todos los comandos \Item***.
+ % Definamos todos los comandos \Item***. El descuento es opcional; por eso usamos G{0} en \NewDocumentCommand.
{%
\if@descuentos
- \newcommand{\Item}[3]{\@ITEM{G}{1}{#1}{#2}{#3}}% Ítem normal.
- \newcommand{\ItemR}[3]{\global\@BIRtrue\global\@Gtrue\@ITEM{R}{1}{#1}{#2}{#3}}% Ítem con IVA reducido.
- \newcommand{\ItemA}[3]{\global\@BIAtrue\global\@Gtrue\@ITEM{A}{1}{#1}{#2}{#3}}% Ítem con IVA reducido.
- \newcommand{\ItemE}[3]{\global\@Exentotrue\global\@Gtrue\@ITEM{E}{1}{#1}{#2}{#3}}% Ítem con IVA reducido.
+ \NewDocumentCommand{\Item}{m m G{0}}{\@ITEM{G}{1}{#1}{#2}{#3}}% Ítem normal.
+ \NewDocumentCommand{\ItemR}{m m G{0}}{\global\@BIRtrue\global\@Gtrue\@ITEM{R}{1}{#1}{#2}{#3}}% Ítem con IVA reducido.
+ \NewDocumentCommand{\ItemA}{m m G{0}}{\global\@BIAtrue\global\@Gtrue\@ITEM{A}{1}{#1}{#2}{#3}}% Ítem con IVA reducido.
+ \NewDocumentCommand{\ItemE}{m m G{0}}{\global\@Exentotrue\global\@Gtrue\@ITEM{E}{1}{#1}{#2}{#3}}% Ítem con IVA reducido.
\else
\newcommand{\Item}[2]{\@ITEM{G}{1}{#1}{#2}{0}}% Ítem normal.
\newcommand{\ItemR}[2]{\global\@BIRtrue\global\@Gtrue\@ITEM{R}{1}{#1}{#2}{0}}% Ítem con IVA reducido.
@@ -1401,10 +1470,10 @@ en la República Bolivariana de Venezuela.
\fi}
{%
\if@descuentos
- \newcommand{\Item}[4]{\@ITEM{G}{#1}{#2}{#3}{#4}}% Ítem normal.
- \newcommand{\ItemR}[4]{\global\@BIRtrue\global\@Gtrue\@ITEM{R}{#1}{#2}{#3}{#4}}% Ítem con IVA reducido.
- \newcommand{\ItemA}[4]{\global\@BIAtrue\global\@Gtrue\@ITEM{A}{#1}{#2}{#3}{#4}}% Ítem con IVA adicional.
- \newcommand{\ItemE}[4]{\global\@Exentotrue\global\@Gtrue\@ITEM{E}{#1}{#2}{#3}{#4}}% Ítem exento de IVA.
+ \NewDocumentCommand{\Item}{m m m G{0}}{\@ITEM{G}{#1}{#2}{#3}{#4}}% Ítem normal.
+ \NewDocumentCommand{\ItemR}{m m m G{0}}{\global\@BIRtrue\global\@Gtrue\@ITEM{R}{#1}{#2}{#3}{#4}}% Ítem con IVA reducido.
+ \NewDocumentCommand{\ItemA}{m m m G{0}}{\global\@BIAtrue\global\@Gtrue\@ITEM{A}{#1}{#2}{#3}{#4}}% Ítem con IVA adicional.
+ \NewDocumentCommand{\ItemE}{m m m G{0}}{\global\@Exentotrue\global\@Gtrue\@ITEM{E}{#1}{#2}{#3}{#4}}% Ítem exento de IVA.
\else
\newcommand{\Item}[3]{\@ITEM{G}{#1}{#2}{#3}{0}}% Ítem normal.
\newcommand{\ItemR}[3]{\global\@BIRtrue\global\@Gtrue\@ITEM{R}{#1}{#2}{#3}{0}}% Ítem con IVA reducido.
diff --git a/Master/texmf-dist/tex/latex/factura/factura.def b/Master/texmf-dist/tex/latex/factura/factura.def
index 70e4979b681..c5bce1afa81 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 2016 Emilio Lazo Zaia <emiliolazozaia@gmail.com>
+%% Copyright 2017 Emilio Lazo Zaia <emiliolazozaia@gmail.com>
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
@@ -35,7 +35,7 @@
%% and factura-beispiel-rechnung.tex.
%%
\ProvidesFile{factura.def}
-[2016/06/25 v2.82
+[2017/03/11 v3.00
Archivo valores iniciales y condiciones de borde para factura.cls
]
@@ -74,6 +74,7 @@ Archivo valores iniciales y condiciones de borde para factura.cls
\def\@@Cantidad{Cantidad}
\def\@@Descripcion{Descripci\'on}
\def\@@PrecioU{Precio U.}
+\def\@@PrecioS{Subtotal}
\def\@@PrecioT{Precio T.}
\def\@@Precio{Precio}
\def\@@AlicuotaG{IVA G}
@@ -151,6 +152,9 @@ Archivo valores iniciales y condiciones de borde para factura.cls
%% Separación horizontal entre las cajas del encabezado y separación interna entre la línea y el texto.
\SepEncabez{0.2cm}{6pt}
+%% 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.
\SepDescrip{6pt}