From 17e0823fb2fd28d95ad42bc2fb8e0e9931732fbf Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 11 Mar 2017 23:09:59 +0000 Subject: factura (11mar17) git-svn-id: svn://tug.org/texlive/trunk@43470 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/factura/factura.cls | 149 +++++++++++++++++------- Master/texmf-dist/tex/latex/factura/factura.def | 8 +- 2 files changed, 115 insertions(+), 42 deletions(-) (limited to 'Master/texmf-dist/tex/latex/factura') 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 +%% Copyright 2017 Emilio Lazo Zaia %% %% 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 +%% Copyright 2017 Emilio Lazo Zaia %% %% 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} -- cgit v1.2.3