summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r--Master/texmf-dist/tex/latex/factura/factura.cls353
-rw-r--r--Master/texmf-dist/tex/latex/factura/factura.def10
2 files changed, 217 insertions, 146 deletions
diff --git a/Master/texmf-dist/tex/latex/factura/factura.cls b/Master/texmf-dist/tex/latex/factura/factura.cls
index 54cc1b74aa1..2cb26296417 100644
--- a/Master/texmf-dist/tex/latex/factura/factura.cls
+++ b/Master/texmf-dist/tex/latex/factura/factura.cls
@@ -37,9 +37,9 @@
%%
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesClass{factura}
-[2018/04/17 v3.47
+[2018/05/22 v3.56
Clase para elaborar facturas legales
-en la República Bolivariana de Venezuela.
+en la Repu'blica Bolivariana de Venezuela.
]
\RequirePackage{etoolbox}% 'etoolbox' para los condicionales binarios y para \AtEndPreamble.
@@ -52,7 +52,9 @@ en la República Bolivariana de Venezuela.
\newbool{SinCantidad}
\newbool{SinLineasVertInt}
\newbool{SinLineasVertExt}
-\newbool{SinLineasHoriInt}
+\newbool{SinLineaHoriNI}
+\newbool{SinLineaHoriTit}
+\newbool{SinLineaHoriTot}
\newbool{SinLineasHoriExt}
\newbool{DCU}
\newbool{DUC}
@@ -102,6 +104,9 @@ en la República Bolivariana de Venezuela.
\newif\ifsinfirmas
\newif\ifsiniva
\newif\ifsinivaexpresado
+\newif\ifsinlineahni
+\newif\ifsinlineahtit
+\newif\ifsinlineahtot
\newif\ifsinlineash
\newif\ifsinlineashe
\newif\ifsinlineashi
@@ -129,9 +134,11 @@ en la República Bolivariana de Venezuela.
\newif\if@FondoReporteStar
\newif\if@Nombre
\newif\if@PruebaRef
-\newif\if@LineaCompleta
-\newif\if@LineaHastaTotal
+\newif\if@ExpandeCuadro
\newif\if@LineaDesdeInicio
+\newif\if@LineaHastaTotal
+\newif\if@LineaHastaFinal
+\newif\if@LineaDescripcion
\newif\if@BIR
\newif\if@BIA
\newif\if@Exento
@@ -152,6 +159,7 @@ en la República Bolivariana de Venezuela.
\newlength{\@TamLineaFirmas}
\newlength{\@TamNumItem}
\newlength{\@TamCantidad}
+\newlength{\@TamDescripcion}
\newlength{\@TamPrecioU}
\newlength{\@TamPrecioS}
\newlength{\@TamDescuento}
@@ -212,6 +220,8 @@ en la República Bolivariana de Venezuela.
\newlength{\@FirmaReportePosX}
\newlength{\@FirmaReporteExcesoLinea}
\newlength{\@TempDimen}
+\newlength{\tabcolsep@@}
+\newlength{\baselineskip@@}
%% Cajas para uso interno.
\newbox{\@CajaDatos}
@@ -257,7 +267,7 @@ en la República Bolivariana de Venezuela.
\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{linea}{\lineatrue}% Para la línea que protege el espacio en blanco.
+\DeclareOption{linea}{\lineatrue}% Para la línea que inutiliza el espacio en blanco.
\DeclareOption{nospanish}{\nospanishtrue}% No carga babel en castellano ni la codificación T1 de las letras.
\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.
@@ -266,6 +276,9 @@ en la República Bolivariana de Venezuela.
\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{sinlineahni}{\sinlineahnitrue}% Estilo 'sinlineahni'.
+\DeclareOption{sinlineahtot}{\sinlineahtottrue}% Estilo 'sinlineahtot'.
+\DeclareOption{sinlineahtit}{\sinlineahtittrue}% Estilo 'sinlineahtit'.
\DeclareOption{sinlineashe}{\sinlineashetrue}% Estilo 'sinlineashe'.
\DeclareOption{sinlineashi}{\sinlineashitrue}% Estilo 'sinlineashi'.
\DeclareOption{sinlineash}{\sinlineashtrue}% Estilo 'sinlineash'.
@@ -301,6 +314,7 @@ en la República Bolivariana de Venezuela.
\RequirePackage{environ}% Con 'environ' podemos usar tabularx dentro del ambiente de la factura y escribir texto en el enddef.
\RequirePackage{fancyhdr}% Las cabeceras fancy; así se use solamente en reporte, hay que cargarlo siempre.
\RequirePackage[calc]{datetime2}% Para calcular la fecha del vencimiento del crédito.
+\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.
@@ -361,8 +375,18 @@ en la República Bolivariana de Venezuela.
\ifsinlineasv\booltrue{SinLineasVertExt}\booltrue{SinLineasVertInt}\fi
\ifsinlineasvi\booltrue{SinLineasVertInt}\fi
\ifsinlineasve\booltrue{SinLineasVertExt}\fi
- \ifsinlineash\booltrue{SinLineasHoriExt}\booltrue{SinLineasHoriInt}\fi
- \ifsinlineashi\booltrue{SinLineasHoriInt}\fi
+ \ifsinlineash\booltrue{SinLineasHoriExt}\booltrue{SinLineaHoriNI}\booltrue{SinLineaHoriTit}\booltrue{SinLineaHoriTot}\fi
+ \ifsinlineashi\booltrue{SinLineaHoriNI}\booltrue{SinLineaHoriTit}\booltrue{SinLineaHoriTot}\fi
+ \ifsinlineahni\booltrue{SinLineaHoriNI}\fi
+ \ifsinlineahtit\booltrue{SinLineaHoriTit}\fi
+ \ifsinlineahtot
+ \iffilas
+ \CLASSWARNING{Las opciones 'sinlineahtot' y 'filas' no son compatibles. Sin efecto opcio'n 'sinlineahtot'}
+ \sinlineahtotfalse
+ \else
+ \booltrue{SinLineaHoriTot}
+ \fi
+ \fi
\ifsinlineashe\booltrue{SinLineasHoriExt}\fi
\ifdosfirmas
@@ -411,11 +435,11 @@ en la República Bolivariana de Venezuela.
\booltrue{SinCantidad}
\ifdcu
\dcufalse\@cdutrue\boolfalse{DCU}\boolfalse{PrimeroDescripcion}
- \CLASSWARNING{La opción 'sincantidad' no es compatible con 'dcu'. Sin efecto opción 'dcu'}
+ \CLASSWARNING{La opcio'n 'sincantidad' no es compatible con 'dcu'. Sin efecto opcio'n 'dcu'}
\fi
\ifduc
\ducfalse\@cdutrue\boolfalse{DUC}\boolfalse{PrimeroDescripcion}
- \CLASSWARNING{La opción 'sincantidad' no es compatible con 'duc'. Sin efecto opción 'duc'}
+ \CLASSWARNING{La opcio'n 'sincantidad' no es compatible con 'duc'. Sin efecto opcio'n 'duc'}
\fi
\fi
\ifdescuentos\booltrue{Descuentos}\fi
@@ -424,7 +448,7 @@ en la República Bolivariana de Venezuela.
\ifdescuentos
\booltrue{Subtotal}
\else
- \CLASSWARNING{La opción 'subtotal' no aplica sin descuentos individuales. Sin efecto opción 'subtotal'}
+ \CLASSWARNING{La opcio'n 'subtotal' no aplica sin descuentos individuales. Sin efecto opcio'n 'subtotal'}
\fi
\fi
@@ -432,11 +456,11 @@ en la República Bolivariana de Venezuela.
\ifsintotales
\iffilas
\filasfalse
- \CLASSWARNING{La opción 'sintotales' no aplica para el modo de totalización en filas. Sin efecto opción 'filas'}
+ \CLASSWARNING{La opcio'n 'sintotales' no aplica para el modo de totalizacio'n en filas. Sin efecto opcio'n 'filas'}
\fi
\ifcotizacion
\else
- \CLASSWARNING{La opción 'sintotales' no debe usarse en facturas sino en cotizaciones. No es válida una factura sin totales}
+ \CLASSWARNING{La opcio'n 'sintotales' no debe usarse en facturas sino en cotizaciones. No es va'lida una factura sin totales}
\fi
\fi
@@ -444,24 +468,24 @@ en la República Bolivariana de Venezuela.
\iffilas
\else
\centradofalse
- \CLASSWARNING{La opción 'centrado' no es compatible con el modo de totalización en columnas. Sin efecto opción 'centrado'}
+ \CLASSWARNING{La opcio'n 'centrado' no es compatible con el modo de totalizacio'n en columnas. Sin efecto opcio'n 'centrado'}
\fi
\fi
\ifagrupado
\iffilas
\agrupadofalse
- \CLASSWARNING{La opción 'agrupado' no es compatible con el modo de totalización en filas. Sin efecto opción 'agrupado'}
+ \CLASSWARNING{La opcio'n 'agrupado' no es compatible con el modo de totalizacio'n en filas. Sin efecto opcio'n 'agrupado'}
\fi
\fi
\ifelectro
\booltrue{Electro}
\gdef\@NotaInterna{\@TextoDescuentoPresidencial}
- \CLASSWARNING{Ya no está vigente el descuento en la alícuota general. Aplicándolo igual como se pidió}
- \CLASSINFO{Se estableció el texto aclaratorio del descuento presidencial como 'nota interna'}
+ \CLASSWARNING{Ya no esta' vigente el descuento en la ali'cuota general. Aplica'ndolo igual como se pidio'}
+ \CLASSWARNING{Se establecio' el texto aclaratorio del descuento presidencial como 'nota interna'}
\iffilas
\filasfalse
- \CLASSWARNING{La opción 'electro' no es compatible con la opción 'filas'. Sin efecto la opción 'filas'}
+ \CLASSWARNING{La opcio'n 'electro' no es compatible con la opcio'n 'filas'. Sin efecto la opcio'n 'filas'}
\fi
\fi
@@ -470,7 +494,7 @@ en la República Bolivariana de Venezuela.
\ifsinivaexpresado
\iffilas
\filasfalse
- \CLASSWARNING{La opción 'sinivaexpresado' no es compatible con la opción 'filas'. Sin efecto la opción 'filas'}
+ \CLASSWARNING{La opcio'n 'sinivaexpresado' no es compatible con la opcio'n 'filas'. Sin efecto la opcio'n 'filas'}
\else
\AtBeginDocument{\gdef\@ImpuestoG{0}\gdef\@ImpuestoR{0}\gdef\@ImpuestoA{0}}
\fi
@@ -479,7 +503,7 @@ en la República Bolivariana de Venezuela.
\iflinea
\ifexpandecuadro
\else
- \CLASSWARNING{La opción 'linea' requiere la opción 'expandecuadro'. Activando la opción 'expandecuadro'}
+ \CLASSWARNING{La opcio'n 'linea' requiere la opcio'n 'expandecuadro'. Activando la opcio'n 'expandecuadro'}
\expandecuadrotrue
\fi
\fi
@@ -487,8 +511,13 @@ en la República Bolivariana de Venezuela.
\ifnospanish
\else
\RequirePackage[spanish]{babel}% Babel en castellano.
- \RequirePackage[T1]{fontenc}% Codificación T1 para las tipografías.
- \IfFileExists{lmodern.sty}{\RequirePackage{lmodern}}{}
+ \ifxetex
+ \else
+ \ifluatex
+ \else
+ \RequirePackage[T1]{fontenc}% Codificación T1 para las tipografías; no aplica para XeLaTeX ni LuaLaTeX.
+ \fi
+ \fi
\fi
\ifexpandecuadro
@@ -507,7 +536,7 @@ en la República Bolivariana de Venezuela.
\@reportetrue
\ifsoloreporte
\soloreportefalse
- \CLASSWARNING{La opción 'soloreporte' no es compatible con 'conreporte'. Sin efecto 'soloreporte'}
+ \CLASSWARNING{La opcio'n 'soloreporte' no es compatible con 'conreporte'. Sin efecto 'soloreporte'}
\fi
\fi
\ifsoloreporte\@reportetrue\@facturafalse\@reversofalse\fi
@@ -518,7 +547,7 @@ en la República Bolivariana de Venezuela.
\ifsintotales\else\AtEndDocument{\@EscribeTotalesEnCSV}\fi
\else
\csvfalse
- \CLASSWARNING{La opción 'csv' require generar la factura. Sin efecto opción 'csv'}
+ \CLASSWARNING{La opcio'n 'csv' require generar la factura. Sin efecto opcio'n 'csv'}
\fi
\fi
@@ -529,49 +558,52 @@ en la República Bolivariana de Venezuela.
\fi
% Escribimos en el .log las opciones cargadas:
- \ifagrupado \CLASSINFO{Opción cargada: agrupado}\fi
- \ifcentradesc \CLASSINFO{Opción cargada: centradesc}\fi
- \ifcentrado \CLASSINFO{Opción cargada: centrado}\fi
- \ifconlineasha \CLASSINFO{Opción cargada: conlineasha}\fi
- \ifconreporte \CLASSINFO{Opción cargada: conreporte}\fi
- \ifcotizacion \CLASSINFO{Opción cargada: cotizacion}\fi
- \ifcsv \CLASSINFO{Opción cargada: csv}\fi
- \ifdcu \CLASSINFO{Opción cargada: dcu}\fi
- \ifdenom \CLASSINFO{Opción cargada: denom}\fi
- \ifdescuentos \CLASSINFO{Opción cargada: descuentos}\fi
- \ifdosfirmas \CLASSINFO{Opción cargada: dosfirmas}\fi
- \ifduc \CLASSINFO{Opción cargada: duc}\fi
- \ifelectro \CLASSINFO{Opción cargada: electro}\fi
- \ifexpandecuadro \CLASSINFO{Opción cargada: expandecuadro}\fi
- \iffilas \CLASSINFO{Opción cargada: filas}\fi
- \ifG \CLASSINFO{Opción cargada: G}\fi
- \ifimpdesc \CLASSINFO{Opción cargada: impdesc}\fi
- \ifiva \CLASSINFO{Opción cargada: iva}\fi
- \iflinea \CLASSINFO{Opción cargada: linea}\fi
- \ifnospanish \CLASSINFO{Opción cargada: nospanish}\fi
- \ifnumitem \CLASSINFO{Opción cargada: numitem}\fi
- \ifprefactura \CLASSINFO{Opción cargada: prefactura}\fi
- \ifsincantidad \CLASSINFO{Opción cargada: sincantidad}\fi
- \ifsinexpandir \CLASSINFO{Opción cargada: sinexpandir}\fi
- \ifsinfirmas \CLASSINFO{Opción cargada: sinfirmas}\fi
- \ifsiniva \CLASSINFO{Opción cargada: siniva}\fi
- \ifsinivaexpresado \CLASSINFO{Opción cargada: sinivaexpresado}\fi
- \ifsinlineash \CLASSINFO{Opción cargada: sinlineash}\fi
- \ifsinlineashe \CLASSINFO{Opción cargada: sinlineashe}\fi
- \ifsinlineashi \CLASSINFO{Opción cargada: sinlineashi}\fi
- \ifsinlineasv \CLASSINFO{Opción cargada: sinlineasv}\fi
- \ifsinlineasve \CLASSINFO{Opción cargada: sinlineasve}\fi
- \ifsinlineasvi \CLASSINFO{Opción cargada: sinlineasvi}\fi
- \ifsinmarcas \CLASSINFO{Opción cargada: sinmarcas}\fi
- \ifsinnumero \CLASSINFO{Opción cargada: sinnumero}\fi
- \ifsinreverso \CLASSINFO{Opción cargada: sinreverso}\fi
- \ifsintotales \CLASSINFO{Opción cargada: sintotales}\fi
- \ifsoloreporte \CLASSINFO{Opción cargada: soloreporte}\fi
- \ifsubtotal \CLASSINFO{Opción cargada: subtotal}\fi
- \iftodosiva \CLASSINFO{Opción cargada: todosiva}\fi
- \iftwoside \CLASSINFO{Opción cargada: twoside}\fi
- \ifunafirma \CLASSINFO{Opción cargada: unafirma}\fi
- \ifvencimiento \CLASSINFO{Opción cargada: vencimiento}\fi
+ \ifagrupado \CLASSINFO{Opcio'n cargada: agrupado}\fi
+ \ifcentradesc \CLASSINFO{Opcio'n cargada: centradesc}\fi
+ \ifcentrado \CLASSINFO{Opcio'n cargada: centrado}\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
+ \ifdenom \CLASSINFO{Opcio'n cargada: denom}\fi
+ \ifdescuentos \CLASSINFO{Opcio'n cargada: descuentos}\fi
+ \ifdosfirmas \CLASSINFO{Opcio'n cargada: dosfirmas}\fi
+ \ifduc \CLASSINFO{Opcio'n cargada: duc}\fi
+ \ifelectro \CLASSINFO{Opcio'n cargada: electro}\fi
+ \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
+ \ifiva \CLASSINFO{Opcio'n cargada: iva}\fi
+ \iflinea \CLASSINFO{Opcio'n cargada: linea}\fi
+ \ifnospanish \CLASSINFO{Opcio'n cargada: nospanish}\fi
+ \ifnumitem \CLASSINFO{Opcio'n cargada: numitem}\fi
+ \ifprefactura \CLASSINFO{Opcio'n cargada: prefactura}\fi
+ \ifsincantidad \CLASSINFO{Opcio'n cargada: sincantidad}\fi
+ \ifsinexpandir \CLASSINFO{Opcio'n cargada: sinexpandir}\fi
+ \ifsinfirmas \CLASSINFO{Opcio'n cargada: sinfirmas}\fi
+ \ifsiniva \CLASSINFO{Opcio'n cargada: siniva}\fi
+ \ifsinivaexpresado \CLASSINFO{Opcio'n cargada: sinivaexpresado}\fi
+ \ifsinlineahni \CLASSINFO{Opcio'n cargada: sinlineahni}\fi
+ \ifsinlineahtit \CLASSINFO{Opcio'n cargada: sinlineahtit}\fi
+ \ifsinlineahtot \CLASSINFO{Opcio'n cargada: sinlineahtot}\fi
+ \ifsinlineash \CLASSINFO{Opcio'n cargada: sinlineash}\fi
+ \ifsinlineashe \CLASSINFO{Opcio'n cargada: sinlineashe}\fi
+ \ifsinlineashi \CLASSINFO{Opcio'n cargada: sinlineashi}\fi
+ \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
+ \ifsinnumero \CLASSINFO{Opcio'n cargada: sinnumero}\fi
+ \ifsinreverso \CLASSINFO{Opcio'n cargada: sinreverso}\fi
+ \ifsintotales \CLASSINFO{Opcio'n cargada: sintotales}\fi
+ \ifsoloreporte \CLASSINFO{Opcio'n cargada: soloreporte}\fi
+ \ifsubtotal \CLASSINFO{Opcio'n cargada: subtotal}\fi
+ \iftodosiva \CLASSINFO{Opcio'n cargada: todosiva}\fi
+ \iftwoside \CLASSINFO{Opcio'n cargada: twoside}\fi
+ \ifunafirma \CLASSINFO{Opcio'n cargada: unafirma}\fi
+ \ifvencimiento \CLASSINFO{Opcio'n cargada: vencimiento}\fi
% Cargamos aquí 'geometry' para que sea después de haber establecido 'twoside'.
\RequirePackage{geometry}}
@@ -675,14 +707,14 @@ en la República Bolivariana de Venezuela.
%% Nota interna al cuadro de la factura y nota externa a él (que sale antes de \Descripcion).
\NewDocumentCommand{\NotaInterna}{+m}{%
- \ifdefvoid{\@NotaInterna}{}{\CLASSWARNING{Se sobreescribió la nota interna automática aclaratoria del descuento presidencial}}%
+ \ifdefvoid{\@NotaInterna}{}{\CLASSWARNING{Se sobreescribio' la nota interna previamente definida}}%
\gdef\@NotaInterna{#1}}
\NewDocumentCommand{\NotaExterna}{+m}{\gdef\@NotaExterna{#1}}
\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}{}{%
- \CLASSWARNING{No se especificó fecha. Asumiendo la fecha de hoy}%
+ \CLASSWARNING{No se especifico' fecha. Asumiendo la fecha de hoy}%
\DTMsavedate{FechaEmision}{\the\year-\the\month-\the\day}}%
\DTMsavenow{Ahora}%
\DTMsaveddatediff{FechaEmision}{Ahora}{\AuxFecha}%
@@ -702,43 +734,46 @@ en la República Bolivariana de Venezuela.
\Moneda{\@MonedaBsS}%
\fi
\else
+ \LetraNotaInterna{\fontsize{14}{18}}%
+ \NotaInterna{\FPupn\TotalBsS{\Total{} 1000 div \@DigitosMoneda{} round}Según Decreto Presidencial 3.332, el total en Bolívares Soberanos es de {\bfseries \@MonedaBsS~\numprint{\TotalBsS}}}%
+ \CLASSWARNING{Se establecio' el texto aclaratorio sobre el total en Boli'vares Soberanos como una nota interna}%
\Moneda{\@MonedaBs}%
\fi
\fi
% Efectuamos distintos chequeos para dar errores o advertencias si faltó algo.
- \ifdefvoid{\@RazonSocial}{\CLASSERROR{Hay que definir la razón social}}{}%
+ \ifdefvoid{\@RazonSocial}{\CLASSERROR{Hay que definir la razo'n social}}{}%
\if@reporte
- \ifdefvoid{\@Num}{\CLASSWARNING{No se especificó el número de la factura. Puede dar error si el título del reporte no se especifica que aparezca en las cabeceras}}{}%
+ \ifdefvoid{\@Num}{\CLASSWARNING{No se especifico' el nu'mero de la factura. Puede dar error si el ti'tulo del reporte no se especifica que aparezca en las cabeceras}}{}%
\ifdefvoid{\@Proveedor}{%
\ifdefvoid{\@Emisor}
{\CLASSERROR{Hay que definir el nombre del proveedor cuando se emite un reporte}}%
- {\CLASSWARNING{Se toma el emisor como el proveedor por no haberse especificado este último}%
+ {\CLASSWARNING{Se toma el emisor como el proveedor por no haberse especificado este u'ltimo}%
\let\@Proveedor=\@Emisor}}
{}%
\fi
\if@factura
\ifdefvoid{\@RIF}{\CLASSERROR{Hay que definir el R.I.F}}{}%
- \ifdefvoid{\@Direccion}{\CLASSERROR{Hay que definir la dirección fiscal}}{}%
- \ifdefvoid{\@Telefono}{\CLASSWARNING{Pudiera definirse un número telefónico}}{}%
- \ifdefvoid{\@Email}{\CLASSWARNING{Pudiera definirse una dirección de correo electrónico}}{}%
+ \ifdefvoid{\@Direccion}{\CLASSERROR{Hay que definir la direccio'n fiscal}}{}%
+ \ifdefvoid{\@Telefono}{\CLASSWARNING{Pudiera definirse un nu'mero telefo'nico}}{}%
+ \ifdefvoid{\@Email}{\CLASSWARNING{Pudiera definirse una direccio'n de correo electro'nico}}{}%
\ifdefvoid{\@Condiciones}{\CLASSWARNING{Pudieran definirse las condiciones del documento}}{}%
\ifcotizacion
- \ifdefvoid{\@FondoFactura}{\CLASSWARNING{En la opción para cotizacion se recomienda agregar el fondo}}{}%
+ \ifdefvoid{\@FondoFactura}{\CLASSWARNING{En la opcio'n para cotizacion se recomienda agregar el fondo}}{}%
\fi
\ifprefactura
- \ifdefvoid{\@FondoFactura}{\CLASSWARNING{En la opción para prefactura se recomienda agregar el fondo}}{}%
+ \ifdefvoid{\@FondoFactura}{\CLASSWARNING{En la opcio'n para prefactura se recomienda agregar el fondo}}{}%
\fi
\ifsinnumero
\ifcotizacion
\else
- \CLASSERROR{La opción para no poner el número sólo es compatible con las cotizaciones}%
+ \CLASSERROR{La opcio'n para no poner el nu'mero so'lo es compatible con las cotizaciones}%
\fi
\fi
\ifdenom
\ifsinnumero
\else
- \ifdefvoid{\@Num}{\CLASSERROR{Hay que definir el número de la factura}}{}%
+ \ifdefvoid{\@Num}{\CLASSERROR{Hay que definir el nu'mero de la factura}}{}%
\fi
\fi
\fi
@@ -1109,6 +1144,7 @@ en la República Bolivariana de Venezuela.
%% http://tex.stackexchange.com/questions/296035/insert-a-special-character-at-each-end-of-line-in-a-paragraph
%% 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
\savebox{\@CajaPrueba}{%
\parbox[t]{\linewidth}{%
@@ -1478,14 +1514,16 @@ en la República Bolivariana de Venezuela.
\ifbool{SinLineasVertExt}{}{|}}
%% Comando para hacer los cálculos sobre cada ítem y establecer las macros con el contenido de cada ítem introducido.
-\NewDocumentCommand{\@CalculaItem}{m m m o m m}{%
+%% 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}{%
\addtocounter{NumItem}{1}%
% Calculamos.
\FPupn\PrecioU{#5 \@DigitosMoneda{} round}%
\ifbool{Descuentos}
{\ifx\\#6\\\FPset\Dcto{0}\else\FPupn\Dcto{#6 \@DigitosPorc{} round clip}\fi}% Fijamos en 0 el descuento si no se especifica en \Item***.
{\FPset\Dcto{#6}%
- \FPifeq\Dcto{0}\else\CLASSWARNING{Se pidió un descuento individual sin dar la opción de la clase 'descuentos'. No se tomará en cuenta}\fi
+ \FPifeq\Dcto{0}\else\CLASSWARNING{Se pidio' un descuento individual sin dar la opcio'n de la clase 'descuentos'. No se tomara' en cuenta}\fi
\FPset\Dcto{0}}% También fijamos en 0 el descuento por si se especifica en \Item*** pero no se pide la opción 'descuentos'.
\FPupn\PrecioS{#2 \PrecioU{} * \@DigitosMoneda{} round}%
\FPupn\PrecioT{100 \Dcto{} 100 - / \PrecioS{} * \@DigitosMoneda{} round}%
@@ -1502,6 +1540,7 @@ en la República Bolivariana de Venezuela.
\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\gdef\csname @Item@\romannumeral\value{NumItem}@DescripcionLarga\endcsname{#7}%
\expandafter\global\expandafter\expandafter\edef\csname @Item@\romannumeral\value{NumItem}@IVA\endcsname{%
\noexpand\numprint\expandafter{\csname @Alicuota#1porc\endcsname}}%
\expandafter\global\expandafter\edef\csname @Item@\romannumeral\value{NumItem}@PrecioT\endcsname{\noexpand\numprint{\PrecioT}}}
@@ -1509,7 +1548,7 @@ en la República Bolivariana de Venezuela.
%% Macro interna para saber si una etiqueta existe o no.
\gdef\@pruebaref#1{%
\expandafter\ifx\csname @Etiqueta@#1\endcsname\relax
- \CLASSWARNING{La etiqueta `#1' no está definida}\ignorespaces
+ \CLASSWARNING{La etiqueta `#1' no esta' definida}\ignorespaces
\@PruebaReffalse
\else
\@PruebaReftrue
@@ -1517,13 +1556,14 @@ en la República Bolivariana de Venezuela.
%% Comandos para las referencias: i) referencia al número de ítem, ii) a la cantidad, iii) a la descripción, iv) al precio unitario, v) al descuento, vi) al precio total.
\gdef\itemref#1{%
- \ifbool{NumItem}{}{\CLASSWARNING{Es recomendable usar la opción 'numitem' para enumerar los ítems}}%
+ \ifbool{NumItem}{}{\CLASSWARNING{Es recomendable usar la opcio'n 'numitem' para enumerar los i'tems}}%
\@pruebaref{#1}\if@PruebaRef \csname @Etiqueta@#1\endcsname \fi}
\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\ldescref#1{\@pruebaref{#1}\if@PruebaRef \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @DescripcionLarga\endcsname \fi}
\gdef\ivaref#1{\@pruebaref{#1}\if@PruebaRef \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @IVA\endcsname \fi}
\gdef\ptref#1{\@pruebaref{#1}\if@PruebaRef \csname @Item@\expandafter\romannumeral\csname @Etiqueta@#1\endcsname @PrecioT\endcsname \fi}
@@ -1531,13 +1571,13 @@ en la República Bolivariana de Venezuela.
\newcommand{\label@factura}[1]{%
\expandafter\ifx\csname @Etiqueta@#1\endcsname\relax
\expandafter\global\expandafter\edef\csname @Etiqueta@#1\endcsname{\arabic{NumItem}}\ignorespaces
- \CLASSINFO{Etiqueta `#1' definida para el ítem \arabic{NumItem}}%
+ \CLASSINFO{Etiqueta `#1' definida para el i'tem \arabic{NumItem}}%
\else
\edef\@label@test@uno{\csname @Etiqueta@#1\endcsname}%
\edef\@label@test@dos{\theNumItem}%
\ifx\@label@test@uno\@label@test@dos
\else
- \CLASSWARNING{La etiqueta `#1' se definió más de una vez}\ignorespaces
+ \CLASSWARNING{La etiqueta `#1' se definio' ma's de una vez}\ignorespaces
\fi
\fi}
@@ -1555,8 +1595,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{8}{\ifbool{SinLineasVertExt}{}{|} r}\begingroup
- \noexpand\ifdim \noexpand\ht\noexpand\@CajaEspacioVacio=0pt
- \noexpand\else
+ \noexpand\if@ExpandeCuadro
\noexpand\iflinea\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.
\noexpand\begin{tabular}[b]{@{\noexpand\extracolsep{2\noexpand\tabcolsep}}lr \ifbool{SinLineasVertExt}{}{|}}}
@@ -1567,18 +1606,17 @@ en la República Bolivariana de Venezuela.
\setlength{\@EspacioVacioFinal}{\zposy{EspacioVacioFinal}sp}%
\global\@EspacioVacioInicial=\@EspacioVacioInicial% Hay que globalizarlas
\global\@EspacioVacioFinal=\@EspacioVacioFinal
- \savebox{\@CajaEspacioVacio}{\parbox[b][\@EspacioVacioInicial-\@EspacioVacioFinal]{0pt}{%
+ \savebox{\@CajaEspacioVacio}{\parbox[b][\@EspacioVacioInicial-\@EspacioVacioFinal]{\@TamDescripcion}{%
\iflinea
- \if@LineaCompleta
+ \if@LineaHastaFinal
\zsaveposy{LineaNodoBCoordY}%
\else
- \if@LineaHastaTotal
- \else
+ \if@LineaDescripcion
\zsaveposx{LineaNodoACoordX}\mbox{}\hfill \zsaveposx{LineaNodoBCoordX}\zsaveposy{LineaNodoBCoordY}%
\fi
\fi
\fi}}%
- \ifdim \ht\@CajaEspacioVacio=0pt \global\lineafalse \fi
+ \ifdim \ht\@CajaEspacioVacio=0pt \global\lineafalse \else \@ExpandeCuadrotrue \fi
\fi
\ifx\undefined\Total\relax\else\CLASSERROR{Parece ya haberse usado un entorno de factura}\fi
@@ -1620,9 +1658,9 @@ en la República Bolivariana de Venezuela.
\global\@SeparaItemsExtraFinal=\@SeparaItemsExtraFinal}
%
% Comando interno general para agregar cualquier ítem.
- \NewDocumentCommand{\@ITEM}{m m m o m m}{%
- % 1. [R|G|A|E|X]; 2. cantidad; 3. descripción; 4. descripción para el csv (entre corchetes); 5. p/u; 6. dcto.
- \@CalculaItem{##1}{##2}{##3}{##5}{##6}%
+ \NewDocumentCommand{\@ITEM}{m m m o m m +o}{%
+ % 1. [R|G|A|E|X]; 2. cantidad; 3. descripción; 4. descripción para el csv (entre corchetes); 5. p/u; 6. dcto; 7. la descripción para el reporte.
+ \@CalculaItem{##1}{##2}{##3}{##5}{##6}[##7]%
% Si no es el primer ítem, entonces hace falta \\ para terminar el ítem anterior.
\ifnum\value{NumItem}=1% Aquí, \@CalculaItem aumenta en 1 el contador NumItem, que si vale 1 significa que aún no hemos procesado la línea 1, es decir, no hay que hacer el salto de línea. La última línea se termina en otro lado.
\else
@@ -1653,7 +1691,7 @@ en la República Bolivariana de Venezuela.
{\@DescripcionAuxCmd{##3}{##1}}% cdu.
&
% Cuarto campo: Acá puede ir el precio unitario (cdu y dcu) o la cantidad (duc).
- \FPifeq\PrecioU{##5}\else\CLASSWARNING{Se está introduciendo un precio con más de dos decimales: (##3 - ##5. Redondeado a \PrecioU)}{}\fi% Advertimos cuando el precio unitario tiene más de dos decimales.
+ \FPifeq\PrecioU{##5}\else\CLASSWARNING{Se esta' introduciendo un precio con ma's de dos decimales: (##3 - ##5. Redondeado a \PrecioU)}{}\fi% Advertimos cuando el precio unitario tiene más de dos decimales.
\ifbool{SinCantidad}{}{%
\ifduc
\David@XRight{\@CantidadAuxCmd{\mbox{}\hfill \@LetraNumeros \numprint{##2}\hfill\mbox{}}}% duc.
@@ -1732,11 +1770,15 @@ en la República Bolivariana de Venezuela.
% Usamos la definición de \label@factura dentro del entorno de la factura para que sea local aquí nada más.
\let\label\label@factura
\@LetraItems% Este es el tipo de letra que tendrán los ítems, y en este tipo de letra se define el \baselineskip de toda la factura.
+ \setlength{\baselineskip@@}{\baselineskip}%
+ \global\baselineskip@@=\baselineskip@@
\@FacturaAuxInicioCmd
\ifbool{SinLineasHoriExt}{}{\hline}%
\@ZERO
+ \setlength{\tabcolsep@@}{\tabcolsep}%
+ \global\tabcolsep@@=\tabcolsep@@
% Estamos en el número del ítem, si aplicara.
- \if@LineaDesdeInicio \hspace*{-\tabcolsep}\zsaveposx{LineaNodoACoordX}\hspace*{\tabcolsep}\fi
+ \if@LineaDesdeInicio \zsaveposx{LineaNodoACoordX}\fi
\ifbool{NumItem}{\@NumItemAuxCmd{\mbox{}\hfill \@LetraTitColumnas \@@NumItem \hfill\mbox{}}}{}%
&
% Avanzamos a la cantidad, o la descripción.
@@ -1763,40 +1805,51 @@ en la República Bolivariana de Venezuela.
\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{}}%
- \if@LineaCompleta \hspace*{\tabcolsep}\zsaveposx{LineaNodoBCoordX}\hspace*{-\tabcolsep}\fi
+ \if@LineaHastaFinal \zsaveposx{LineaNodoBCoordX}\fi
\\
- \ifbool{SinLineasHoriInt}{}{\hline}%
+ \ifbool{SinLineaHoriTit}{}{\hline}%
%
#1% Aquí entran todos los items que el usuario declara dentro del ambiente.
+ \@CalculaTotalesI
\@CalculaSeparaItemsExtraFinal
\\[\@SeparaItemsExtraFinal]% El último fin de línea se hace aquí.
- \ifconlineasha\hline\fi% Se verifica si hace falta una línea horizontal o no.
+ \ifconlineasha
+ \ifdefvoid{\@NotaInterna}{%
+ \ifbool{SinLineasHoriExt}{\if@ExpandeCuadro\hline\fi}{\hline}}{\hline}%
+ \fi% Se verifica si hace falta una línea horizontal o no.
\iffilas
% Esto en lugar de \ifexpandecuadro para que no se haga una linea vacía en la tabla cuando la caja está vacía.
- \ifdim \ht\@CajaEspacioVacio=0pt
- \ifdefvoid{\@NotaInterna}{%
- \ifbool{SinLineasHoriExt}{}{%
- \ifconlineasha\else\hline\fi}% Verificamos si hay que poner la línea horizontal. Si está 'conlineasha' ya salió debido a esta opción.
- }{\@ColumnasMultiColumnNotaIntAuxCmd\ifbool{SinLineasHoriExt}{}{\hline}}%
- \else
+ \if@ExpandeCuadro
\ifbool{PrimeroDescripcion}{&\usebox{\@CajaEspacioVacio}&&&&&&\\}{&&\usebox{\@CajaEspacioVacio}&&&&&\\}%
- \ifdefvoid{\@NotaInterna}{}{\@ColumnasMultiColumnNotaIntAuxCmd}%
+ \ifdefvoid{\@NotaInterna}{}
+ {\ifbool{SinLineaHoriNI}{}{\hline}%
+ \@ColumnasMultiColumnNotaIntAuxCmd}%
\ifbool{SinLineasHoriExt}{}{\hline}% Siempre que hay relleno se pone la línea acá.
+ \else
+ \ifdefvoid{\@NotaInterna}{%
+ \ifbool{SinLineasHoriExt}{}{%
+ \ifconlineasha\else\hline\fi}}% Verificamos si hay que poner la línea horizontal. Si está 'conlineasha' entonces ya salió la línea.
+ {\ifbool{SinLineaHoriNI}{}{\ifconlineasha\else\hline\fi}%
+ \@ColumnasMultiColumnNotaIntAuxCmd
+ \ifbool{SinLineasHoriExt}{}{\hline}}%
\fi
\else
- \ifbool{SinLineasHoriInt}{}{\ifconlineasha\else\hline\fi}% Línea que cierra los ítems en la tabla.
- % Agregamos el espacio espúreo.
- \ifdim \ht\@CajaEspacioVacio=0pt
+ \ifsintotales
\else
- % Rellenamos la tabla con espacio espúreo, y le agregamos las lineas externas, si aplica.
+ \ifbool{SinLineaHoriTot}{}{\ifconlineasha\else\hline\fi}% Línea que cierra los ítems en la tabla.
+ \fi
+ % Agregamos el espacio espúreo.
+ \if@ExpandeCuadro
+ % Rellenamos la tabla con espacio espúreo, y le agregamos las líneas externas, si aplica.
\ifbool{SinLineasVertExt}{\multicolumn{8}{c}{\usebox{\@CajaEspacioVacio}}}{\multicolumn{8}{|c|}{\usebox{\@CajaEspacioVacio}}}\\
\fi
- % Si pedimos sin totalizaciones, entonces cerramos la tabla ya, si no, calculamos los totales y los escribimos
+ % Si pedimos sin totalizaciones, entonces cerramos la tabla ya, si no, calculamos los totales y los escribimos.
\ifsintotales
+ \ifdefvoid{\@NotaInterna}{}{\ifbool{SinLineaHoriNI}{}{\hline}\@ColumnasMultiColumnNotaIntAuxCmd}%
+ \ifbool{SinLineasHoriExt}{}{\hline}%
\else
- % Modo de columnas: Abrimos la tabla para escribir los totales, y le agregamos las líneas verticales externas, si aplica.
+ % Modo de columnas: Abrimos la tabla para escribir los totales y le agregamos las líneas verticales externas, si aplica.
\@ColumnasMultiColumnTotalesAuxCmd
- \@CalculaTotalesI
\ifagrupado
\@EscribeTotalColAgrupado
\else
@@ -1810,7 +1863,7 @@ en la República Bolivariana de Venezuela.
\hfill \@LetraTitTotal\@@Total & \@LetraNumTotal\numprint{\Total}\\
\end{tabular}\endgroup
\\
- \ifdefvoid{\@NotaInterna}{}{\@ColumnasMultiColumnNotaIntAuxCmd}%
+ \ifdefvoid{\@NotaInterna}{}{\ifbool{SinLineaHoriNI}{}{\hline}\@ColumnasMultiColumnNotaIntAuxCmd}%
\ifbool{SinLineasHoriExt}{}{\hline}%
\fi
\fi
@@ -1820,7 +1873,6 @@ en la República Bolivariana de Venezuela.
\ifsintotales\gdef\Total{}\fi
% Si pedimos no totalizar (sintotales), la opción filas queda desactivada.
\iffilas
- \@CalculaTotalesI
\@LetraNumTotales
\vspace*{\@SeparaVertical}\par
\ifexpandecuadro\else\vfill\fi
@@ -1871,7 +1923,7 @@ en la República Bolivariana de Venezuela.
\if@Exento\usebox{\@CajaBIE}\hspace*{\@SeparaMinTotales}\fi\usebox{\@CajaTotal}%
\ifcentrado\hspace*{\@SepTotales}\fi
\else% Aquí casi cualquier cosa tiene aspecto feo.
- \CLASSWARNING{Es mejor no usar la opción de totalización en filas en este caso, o disminuir los tamaños de los tipos de letra para la totalización}%
+ \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{%
\begin{tabular}{r@{\hspace*{\@SeparaMinTotales}}l}
\usebox{\@CajaBIAliR} & \usebox{\@CajaBIAliA} \\[\@SeparaFilas]
@@ -1895,11 +1947,11 @@ en la República Bolivariana de Venezuela.
\ifbool{SinCantidad}
% Definamos todos los comandos \Item***. El descuento es opcional; por eso usamos G{0} en \NewDocumentCommand.
{%
- \NewDocumentCommand{\Item}{m o m G{0}}{\@ITEM{G}{1}{#1}[#2]{#3}{#4}}% Ítem normal.
- \NewDocumentCommand{\ItemR}{m o m G{0}}{\global\@BIRtrue\global\Gtrue\@ITEM{R}{1}{#1}[#2]{#3}{#4}}% Ítem con IVA reducido.
- \NewDocumentCommand{\ItemA}{m o m G{0}}{\global\@BIAtrue\global\Gtrue\@ITEM{A}{1}{#1}[#2]{#3}{#4}}% Ítem con IVA adicional.
- \NewDocumentCommand{\ItemE}{m o m G{0}}{\global\@Exentotrue\global\Gtrue\@ITEM{E}{1}{#1}[#2]{#3}{#4}}% Ítem exento de IVA.
- \NewDocumentCommand{\ItemX}{m o}{\@ITEM{X}{1}{#1}[#2]{0}{0}}% Ítem sin precio.
+ \NewDocumentCommand{\Item}{m o m G{0} +o}{\@ITEM{G}{1}{#1}[#2]{#3}{#4}[#5]}% Ítem normal.
+ \NewDocumentCommand{\ItemR}{m o m G{0} +o}{\global\@BIRtrue\global\Gtrue\@ITEM{R}{1}{#1}[#2]{#3}{#4}[#5]}% Ítem con IVA reducido.
+ \NewDocumentCommand{\ItemA}{m o m G{0} +o}{\global\@BIAtrue\global\Gtrue\@ITEM{A}{1}{#1}[#2]{#3}{#4}[#5]}% Ítem con IVA adicional.
+ \NewDocumentCommand{\ItemE}{m o m G{0} +o}{\global\@Exentotrue\global\Gtrue\@ITEM{E}{1}{#1}[#2]{#3}{#4}[#5]}% Ítem exento de IVA.
+ \NewDocumentCommand{\ItemX}{m o +o}{\@ITEM{X}{1}{#1}[#2]{0}{0}[#3]}% Ítem sin precio.
\let\ItemG\Item
\ifcsv
\ifdescuentos
@@ -1909,11 +1961,11 @@ en la República Bolivariana de Venezuela.
\fi
\fi}
{%
- \NewDocumentCommand{\Item}{m m o m G{0}}{\@ITEM{G}{#1}{#2}[#3]{#4}{#5}}% Ítem normal.
- \NewDocumentCommand{\ItemR}{m m o m G{0}}{\global\@BIRtrue\global\Gtrue\@ITEM{R}{#1}{#2}[#3]{#4}{#5}}% Ítem con IVA reducido.
- \NewDocumentCommand{\ItemA}{m m o m G{0}}{\global\@BIAtrue\global\Gtrue\@ITEM{A}{#1}{#2}[#3]{#4}{#5}}% Ítem con IVA adicional.
- \NewDocumentCommand{\ItemE}{m m o m G{0}}{\global\@Exentotrue\global\Gtrue\@ITEM{E}{#1}{#2}[#3]{#4}{#5}}% Ítem exento de IVA.
- \NewDocumentCommand{\ItemX}{m m o}{\@ITEM{X}{#1}{#2}[#3]{0}{0}}% Ítem sin precio.
+ \NewDocumentCommand{\Item}{m m o m G{0} +o}{\@ITEM{G}{#1}{#2}[#3]{#4}{#5}[#6]}% Ítem normal.
+ \NewDocumentCommand{\ItemR}{m m o m G{0} +o}{\global\@BIRtrue\global\Gtrue\@ITEM{R}{#1}{#2}[#3]{#4}{#5}[#6]}% Ítem con IVA reducido.
+ \NewDocumentCommand{\ItemA}{m m o m G{0} +o}{\global\@BIAtrue\global\Gtrue\@ITEM{A}{#1}{#2}[#3]{#4}{#5}[#6]}% Ítem con IVA adicional.
+ \NewDocumentCommand{\ItemE}{m m o m G{0} +o}{\global\@Exentotrue\global\Gtrue\@ITEM{E}{#1}{#2}[#3]{#4}{#5}[#6]}% Ítem exento de IVA.
+ \NewDocumentCommand{\ItemX}{m m o +o}{\@ITEM{X}{#1}{#2}[#3]{0}{0}[#4]}% Ítem sin precio.
\let\ItemG\Item
\ifcsv
\if@cdu
@@ -1943,7 +1995,7 @@ en la República Bolivariana de Venezuela.
% Los descuentos totales no son compatibles -y no creo que lo vayan a ser- con el modo de totalización en filas.
\iffilas
\if@DescuentoTotal
- \CLASSWARNING{La opción 'filas' no es compatible con los descuentos totales; sin efecto opción 'filas'}
+ \CLASSWARNING{La opcio'n 'filas' no es compatible con los descuentos totales; sin efecto opcio'n 'filas'}
\filasfalse
\fi
\fi
@@ -1978,9 +2030,13 @@ en la República Bolivariana de Venezuela.
% 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}
\iffilas
- \ifbool{SinLineasVertInt}{\@LineaCompletatrue}
+ \ifbool{SinLineasVertInt}{\@LineaDesdeIniciotrue\@LineaHastaFinaltrue}{\@LineaDescripciontrue}%
\else
- \@LineaHastaTotaltrue\@LineaDesdeIniciotrue
+ \ifsintotales
+ \@LineaDesdeIniciotrue\@LineaHastaFinaltrue
+ \else
+ \@LineaDesdeIniciotrue\@LineaHastaTotaltrue
+ \fi
\fi
\fi
%% El comando para la descripción del servicio prestado.
@@ -2233,25 +2289,40 @@ en la República Bolivariana de Venezuela.
%% Comando que coloca la línea diagonal.
\newcommand{\@DibujaLinea}{%
- \@LetraItems% Volvemos a fijar el \baselineskip de la tabla.
\setlength{\@LineaNodoXo}{\zposx{LineaNodoACoordX} sp}%
\setlength{\@LineaNodoYo}{\zposy{LineaNodoBCoordY} sp}%
\setlength{\@LineaNodoXf}{\zposx{LineaNodoBCoordX} sp}%
\setlength{\@LineaNodoYf}{\zposy{LineaNodoBCoordY} sp}%
\addtolength{\@LineaNodoYo}{\@EspacioVacioInicial-\@EspacioVacioFinal}%
+ \if@LineaDesdeInicio
+ \addtolength{\@LineaNodoXo}{-\tabcolsep@@}%
+ \fi
+ \if@LineaHastaFinal
+ \addtolength{\@LineaNodoXf}{\tabcolsep@@}%
+ \fi
\iffilas
+ \addtolength{\@LineaNodoYf}{-.3\baselineskip@@}%
+ \if@LineaDescripcion
+ \addtolength{\@LineaNodoXo}{-\tabcolsep@@}%
+ \addtolength{\@LineaNodoXf}{\tabcolsep@@}%
+ \fi
\else
- \if@DescG \addtolength{\@LineaNodoYo}{2\baselineskip}\fi
- \if@DescR \if@BIR \addtolength{\@LineaNodoYo}{2\baselineskip}\fi\fi
- \if@DescA \if@BIA \addtolength{\@LineaNodoYo}{2\baselineskip}\fi\fi
- \if@DescE \if@Exento \addtolength{\@LineaNodoYo}{2\baselineskip}\fi\fi
- \addtolength{\@LineaNodoYo}{\baselineskip/2}%
- \ifsinivaexpresado
+ \ifsintotales
+ \addtolength{\@LineaNodoYf}{-.3\baselineskip@@}%
\else
- \addtolength{\@LineaNodoYo}{2\baselineskip}%
- \if@BIR\addtolength{\@LineaNodoYo}{2\baselineskip}\fi
- \if@BIA\addtolength{\@LineaNodoYo}{2\baselineskip}\fi
- \if@Exento\addtolength{\@LineaNodoYo}{\baselineskip}\fi
+ \if@DescG \addtolength{\@LineaNodoYo}{2\baselineskip@@}\fi
+ \if@DescR \if@BIR \addtolength{\@LineaNodoYo}{2\baselineskip@@}\fi\fi
+ \if@DescA \if@BIA \addtolength{\@LineaNodoYo}{2\baselineskip@@}\fi\fi
+ \if@DescE \if@Exento \addtolength{\@LineaNodoYo}{2\baselineskip@@}\fi\fi
+ \addtolength{\@LineaNodoYo}{\baselineskip@@}%
+ \addtolength{\@LineaNodoYf}{-.3\baselineskip@@}%
+ \ifsinivaexpresado
+ \else
+ \addtolength{\@LineaNodoYo}{2\baselineskip@@}%
+ \if@BIR\addtolength{\@LineaNodoYo}{2\baselineskip@@}\fi
+ \if@BIA\addtolength{\@LineaNodoYo}{2\baselineskip@@}\fi
+ \if@Exento\addtolength{\@LineaNodoYo}{\baselineskip@@}\fi
+ \fi
\fi
\fi
\iflinea
diff --git a/Master/texmf-dist/tex/latex/factura/factura.def b/Master/texmf-dist/tex/latex/factura/factura.def
index fae09b821ba..4e191716a51 100644
--- a/Master/texmf-dist/tex/latex/factura/factura.def
+++ b/Master/texmf-dist/tex/latex/factura/factura.def
@@ -36,7 +36,7 @@
%% factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex.
%%
\ProvidesFile{factura.def}
-[2018/04/17 v3.47
+[2018/05/22 v3.56
Archivo de valores iniciales y condiciones de borde para factura.cls
]
@@ -68,11 +68,11 @@ Archivo de valores iniciales y condiciones de borde para factura.cls
%% La moneda:
\def\@MonedaBs{Bs.}
-\def\@MonedaBsS{BsS.}
+\def\@MonedaBsS{Bs.S}
%% Las fechas de la entrada de la reconversión monetaria:
-\DTMsavedate{FechaBsS}{2018-05-01}
-\DTMsavedate{FechaBs}{2018-06-04}
+\DTMsavedate{FechaBsS}{2018-06-04}
+\DTMsavedate{FechaBs}{2019-01-01}
%% Al lado de cada ítem va la letra que designa el gravamen que aplica sobre él:
\def\@DenomAlicuotaG{G}
@@ -81,7 +81,7 @@ Archivo de valores iniciales y condiciones de borde para factura.cls
\def\@DenomAlicuotaE{(E)}
%% El texto predeterminado para la nota interna por el descuento presidencial.
-\def\@TextoDescuentoPresidencial{Se aplica un descuento del \@AlicuotaGDescPorc\% al IVA General seg\'un Decreto Presidencial 3085 en Gaceta Oficial 41239.}
+\def\@TextoDescuentoPresidencial{Se aplica un descuento del \@AlicuotaGDescPorc\% al IVA General seg\'un Decreto Presidencial 3.085 en Gaceta Oficial 41.239.}
%% Macros que guardan textos que corresponden a nombres de campos:
\def\@@Fecha{Fecha de emisi\'on:}