1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
|
%%
%% This is file `factura.def',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% factura.dtx (with options: `def')
%%
%% Copyright 2019 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
%% version 1.3c of this license or (at your option) any later
%% version. This version of this license is in
%% http://www.latex-project.org/lppl/lppl-1-3c.{html|txt|tex|pdf}
%% and the latest version of this license is in
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of
%% LaTeX version 2008/05/04 or later.
%%
%% This work has the LPPL maintenance status `maintained'.
%%
%% The Current Maintainer of this work is Emilio Augusto Lazo Zaia.
%%
%% This work consists of the files README and factura.dtx
%% with its derived files factura.ins, factura.cls, factura.def,
%% factura-ejemplo-aux.tex, factura-ejemplo-firma.tex,
%% factura-ejemplo-fondo.tex, factura-ejemplo-membrete.tex,
%% factura-ejemplo-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-reporte1.tex, factura-ejemplo-reporte2.tex,
%% factura-ejemplo-reporte3.tex and factura-beispiel-rechnung.tex.
%%
\ProvidesFile{factura.def}
[2019/08/16 v3.70
Archivo de valores iniciales y condiciones de borde para factura.cls
]
%% 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).
%% Hay elementos que salen fuera de estos márgenes, como las firmas, la nota final, la numeración y la fecha.
\GeometriaFactura{letterpaper,vmargin={5.2cm,5.5cm},hmargin={1cm,1cm},footskip=0pt, headsep=0pt, headheight=0pt}
\GeometriaReverso{letterpaper,vmargin={1cm,1cm}, hmargin={1cm,1cm},footskip=0cm, headsep=0pt, headheight=0pt}
\GeometriaReporte{letterpaper,vmargin={2.8cm,2.5cm},hmargin={3cm,2cm},footskip=1.2cm,headsep=0.777cm,headheight=1.5cm}
%% 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.27}
%% i) separador de miles, ii) separador decimal, iii) número de decimales para la moneda iv) y para los porcentajes, v) número de dígitos de la numeración de la factura, vi) formato de la fecha, vii) separadores para la fecha.
\npthousandsep{.}
\npdecimalsign{,}
\def\@DigitosMoneda{2}
\def\@DigitosPorc{2}
\def\@DigitosNumeracion{5}
\def\@FormatoFecha{ddmmyyyy}
\def\@FormatoFechaEntrada{dd-mm-yyyy}
\def\@FechaSeparadores{-}
%% La moneda:
\def\@Moneda{Bs.}
%% (quitado por no vigente)
% \def\@MonedaBs{Bs.}
% \def\@MonedaBsS{Bs.S}
% \def\@MonedaBsF{Bs.F}
\setlength\@EspacioSignoMonetario{.666ex}
%% (quitado por no vigente)
%% Las fechas de la entrada de la reconversión monetaria:
% \DTMsavedate{FechaBsS}{2018-08-20}
% \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)}
%% (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.}
%% Macros que guardan textos que corresponden a nombres de campos:
\def\@@Fecha{Fecha de emisi\'on:}
\def\@@FechaVencimiento{Fecha de vencimiento:}
\def\@@Control{N\textordmasculine\space CONTROL}
\def\@@Datos{Datos del cliente}
\def\@@Resumen{Resumen del servicio}
\def\@@DenomFactura{FACTURA}
\def\@@DenomCotiza{COTIZACI\'ON}
\def\@@RazonSocial{Raz\'on social:}
\def\@@Nombre{Nombre:}
\def\@@RIF{R.I.F.:}
\def\@@CI{C.I.:}
\def\@@Direccion{Direcci\'on fiscal:}
\def\@@Telefono{Tel\'efono:}
\def\@@Email{E-mail:}
\def\@@Contacto{Persona de contacto:}
\def\@@Proveedor{Proveedor:}
\def\@@Cliente{Cliente:}
\def\@@Emisor{Por el emisor}
\def\@@Conforme{Recib\'i conforme}
\def\@@Pagado{PAGADO}
\def\@@NumItem{\#}
\def\@@Cantidad{Cantidad}
\def\@@Descripcion{Descripci\'on}
\def\@@Precio{Precio}
\def\@@PrecioU{Precio U.}
\def\@@PrecioS{Subtotal}
\def\@@Descuento{Dcto.}
\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}
\def\@@BIR{BI R}
\def\@@BIA{BI A}
\def\@@BIE{Exento}% La base imponible exenta. ;)
\def\@@Total{TOTAL}
\def\@@DescuentoG{Descuento G}
\def\@@DescuentoR{Descuento R}
\def\@@DescuentoA{Descuento A}
\def\@@DescuentoE{Descuento E}
\def\@@SubtotalG{Subtotal G}
\def\@@SubtotalR{Subtotal R}
\def\@@SubtotalA{Subtotal A}
\def\@@SubtotalE{Subtotal E}
%% i) carácter para separar el teléfono del e-mail del cliente,
%% ii) carácter para los campos vacíos cuando se usa \ItemX,
%% iii) carácter para las celdas vacías cuando la descripción del ítem ocupa más que una línea.
%% iv) carácter de retorno de carro en el cuadro de la factura,
\def\@CaracterSeparaTelefonoEmail{$\diamond$}
\def\@CaracterItemXVacio{...}
\def\@CaracterCeldasVacias{\mbox{}\hfill$\cdot$\hfill\mbox{}}
\def\@CaracterCR{\flechaCR}
\def\flechaCR{%
\raisebox{-0.4ex}{%
\begin{tikzpicture}
\draw[line width=0.075ex] (0,0) arc (20:70:0.75ex) + (0,0) arc (-70:-20:0.75ex) ++ (0.8ex,0.55ex) arc (0:-100:1ex);
\end{tikzpicture}}}
%% Separación entre el inicio de una columna en la tabla y el inicio del texto.
\tabcolsep=0.15cm
%% Separación entre la última letra y el carácter que indica que se continúa en la línea siguiente en la descripción cuando ocupa más de una línea.
\setlength{\@SeparaFinLineaDesc}{0.15cm}
%% 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}
%% Grosor de la línea de 'fancyhdr' para las cabeceras, en aquellas donde haya línea.
\setlength{\@GrosorLineaInfoPag}{0.4pt}
%% Posición en X desde la derecha y excedente en la línea de la firma.
\setlength{\@FirmaReportePosX}{2cm}
\setlength{\@FirmaReporteExcesoLinea}{1.5cm}
%% Posiciones (X,Y) de los objetos: i) fecha, ii) denominación, iii) nota final, iv) número de control, v) firmas.
\PosFecha*{-0cm}{5cm}
\PosDenom*{0cm}{5cm}
\PosControl*{0cm}{-2.4cm}
\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}
%% La firma se define con un X_inicial, un X_final y un Y_inicial (Xo,Xf,Y)
%% Tamaño y grosor de la línea de las firmas.
\LineaFirmas{5.5cm}{0.7pt}
%% Separación mínima horizontal entre los totales en modo de filas y distancia vertical entre esas líneas, fija.
\SepFilas{0.8cm}{2.5pt}
%% Separación vertical entre los elementos de la factura (entre el encabezado y el cuadro de la 'factura', luego desde dicho cuadro hasta la descripción, o hasta los totales en modo de filas).
\SepVertical{0.2cm}
%% Separación horizontal entre la caja de los datos del cliente y la caja del resumen.
\SepDatosResumen{0.2cm}
%% Separación horizontal interna entre la línea y el texto en los datos del cliente y en el resumen.
\SepEncabezado{6pt}
%% Separación interna entre la línea y el texto de la nota previa.
\SepNotaPrevia{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.
\SepDescripcion{6pt}
\SepNotaFinal{5pt}
%% Grosor de la línea de las cajas del encabezado, 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*.
\InicioReporte{1.6cm}
%% Tipos de letra para cada elemento posible:
%% Esta es la letra de la descripción de los items; y el espacio \baselineskip de *toda* la tabla de la factura se fija en este comando únicamente (se predeterminó 18pt).
\LetraItems{\fontsize{14}{18}}
%% Tipo de letra para la nota interna:
\LetraNotaInterna{\fontsize{11}{13}\itshape}
%% Tipo de letra para la nota externa:
\LetraNotaExterna{\fontsize{14}{16.8}}
%% Con este comando se cambia la etra del título de la tabla, es decir, los textos 'Cantidad, 'Descripción', etc...
\LetraTitColumnas{\fontsize{10}{10}\bfseries}
%% Tipo de letra de los títulos de los totales, por ejemplo los textos: 'B.I. G', 'IVA G'.
\LetraTitTotales{\fontsize{12}{12}\bfseries}
%% Letra con la que salen los totales parciales, es decir, los números, exceptuando el total general.
\LetraNumTotales{\fontsize{14}{12}}
%% Letra con la que sale la palabra 'TOTAL'.
\LetraTitTotal{\fontsize{12}{12}\bfseries}
%% Letra para el total general, el monto.
\LetraNumTotal{\fontsize{14}{14}\bfseries}
%% Tipo de letra para los títulos de las cajas del encabezado, por ejemplo: 'Datos del cliente'.
\LetraTitEnc{\fontsize{11}{12.5}\slshape}
%% Tipo de letra para el texto en el encabezado de la factura.
\LetraEncFactura{\fontsize{11}{12.5}}
%% Tipo de letra para el texto en el encabezado del reporte.
\LetraEncReporte{\fontsize{13}{16}}
%% Letra para los montos individuales de la factura y las cantidades.
\LetraNumeros{\fontsize{14}{14}}
%% El tipo de IVA ('G', 'R', 'A' o '(E)') también tiene su tipo de letra.
\LetraTipoIVA{\fontsize{12}{12}}
%% Letra para la descripción larga (comando \Descripcion).
\LetraDescripcion{\fontsize{14}{16.8}}
%% Tipo de letra para el texto bajo las líneas para firmar.
\LetraFirmas{\fontsize{12}{12}}
%% Tipo de letra para la nota previa.
\LetraNotaPrevia{\fontsize{11}{12.5}}
%% Tipo de letra para la nota final.
\LetraNotaFinal{\fontsize{12}{12}}
%% Letra para la denominación del documento ('FACTURA', 'COTIZACIÓN',...).
\LetraDenom{\fontsize{14}{14}\bfseries}
%% Letra para la numeración de la factura.
\LetraNumeracion{\fontsize{14}{14}\bfseries\color{red}}
%% Letra para las fechas (emisión y vencimiento).
\LetraFecha{\fontsize{14}{15}}
%% Letra para el título del reporte.
\LetraTitReporte{\fontsize{16}{22}\bfseries}
%% Letra para las cabeceras de las páginas en el modo reporte.
\LetraInfoPagina{\fontsize{12}{12}\slshape}
%% Letra para el reverso de la factura.
\LetraReverso{\fontsize{10}{12}}
%% Letra para el reporte.
\LetraReporte{\fontsize{12}{20}}
%% Diseño hecho en TikZ para los datos del cliente, el resumen, la nota previa, la descripción y la nota final.
\def\@DatosTIKZ{%
draw=black, fill=white, inner sep=\@SeparaInternaEncabezado, line width=\@GrosorLineaEncabezado, rounded corners=\@EsquinaLineaEncabezado, copy shadow={top color=black, bottom color=black, shadow xshift=\@SombraEncabezado, shadow yshift=-\@SombraEncabezado}}
\let\@ResumenTIKZ\@DatosTIKZ
\def\@NotaPreviaTIKZ{%
draw=black, fill=white, inner sep=\@SeparaInternaNotaPrevia, line width=\@GrosorLineaNotaPrevia, rounded corners=\@EsquinaLineaNotaPrevia, copy shadow={top color=black, bottom color=black, shadow xshift=\@SombraNotaPrevia, shadow yshift=-\@SombraNotaPrevia}}
\def\@DescripcionTIKZ{%
draw=black, fill=white, inner sep=\@SeparaInternaDescripcion, line width=\@GrosorLineaDescripcion, rounded corners=\@EsquinaLineaDescripcion, copy shadow={top color=black, bottom color=black, shadow xshift=\@SombraDescripcion, shadow yshift=-\@SombraDescripcion}}
\def\@NotaFinalTIKZ{%
draw=black, fill=white, inner sep=\@SeparaInternaNotaFinal, line width=\@GrosorLineaNotaFinal, rounded corners=\@EsquinaLineaNotaFinal, copy shadow={top color=black, bottom color=black, shadow xshift=\@SombraNotaFinal, shadow yshift=-\@SombraNotaFinal}}
%% El diseño de las distintas partes de la hoja.
\newcommand{\@EstiloFirmas}{
\@LetraFirmas
\ifnum \value{@Firmas}=1
\else
\parbox{\@TamLineaFirmas}{
\rule{\@TamLineaFirmas}{\@GrosorLineaFirmas}
\centering \ifdefvoid{\@Conforme}{\@@Conforme}{\@Conforme}}
\fi
\hfill
\parbox{\@TamLineaFirmas}{
\rule{\@TamLineaFirmas}{\@GrosorLineaFirmas}
\centering \ifdefvoid{\@Emisor}{\ifcotizacion \@@Emisor \else \@@Pagado \fi}{\@Emisor}}}
\newcommand{\@EstiloNotaPrevia}{\@LetraNotaPrevia \@NotaPrevia}
\newcommand{\@EstiloNotaFinal}{\@LetraNotaFinal \@NotaFinal}
\newcommand{\@EstiloNumControl}{%
\renewcommand{\baselinestretch}{0}\selectfont
\begin{tabular}{@{\extracolsep{0pt}}l}
\@LetraDenom \@@Control \\[.4em]
{\@LetraDenom\@NumSerieControl-}\space\@LetraNumeracion\@NumControl \\
\end{tabular}}
\newcommand{\@EstiloDenom}{%
\@LetraDenom\@Denominacion
\ifsinnumero
\else
\space\space{\@LetraNumeracion N\textordmasculine\space\@Num}%
\fi}
\newcommand*{\@EstiloFechas}{%
\renewcommand{\baselinestretch}{0}%
\setlength{\tabcolsep}{0pt}%
\@LetraFecha\begin{tabular}{r@{\extracolsep{1ex}}l@{\extracolsep{0pt}}}
\@@Fecha & \ttfamily\@Fecha \\[.3em]
\ifvencimiento \@@FechaVencimiento & \ttfamily\@FechaVencimiento \\ \else \vspace*{-.3em}\fi
\end{tabular}}
\newcommand{\@InfoPaginaNoTitulo}{\@LetraInfoPagina Reporte correspondiente a la factura n\'umero \@Num \space de fecha \@Fecha}
\newcommand{\@InfoPaginaTitulo}{\@LetraInfoPagina \@TituloReporte \space - \@Proveedor \space - \@Fecha}
%% Estilos de página: normal, sólo cabeceras, sólo pies de página y sólo número de página al pie.
\fancypagestyle{plain}{%
\expandafter\ps@fancy
\fancyhf{}%
\renewcommand{\headrulewidth}{\@GrosorLineaInfoPag}%
\fancyhead[LEO]{\@InfoPagina}%
\fancyfoot[C]{\thepage}}
\fancypagestyle{soloarriba}{%
\expandafter\ps@fancy
\fancyhf{}%
\renewcommand{\headrulewidth}{\@GrosorLineaInfoPag}%
\fancyhead[LO]{\@InfoPagina}%
\fancyhead[RO]{\thepage}%
\if@twoside
\fancyhead[LE]{\thepage}%
\fancyhead[RE]{\@InfoPagina}%
\fi}
\fancypagestyle{soloabajo}{%
\expandafter\ps@fancy
\fancyhf{}%
\renewcommand{\headrulewidth}{0pt}%
\fancyfoot[LO]{\@InfoPagina}%
\fancyfoot[RO]{\thepage}%
\if@twoside
\fancyfoot[RE]{\@InfoPagina}%
\fancyfoot[LE]{\thepage}%
\fi}
\fancypagestyle{solonumpag}{%
\expandafter\ps@fancy
\fancyhf{}%
\renewcommand{\headrulewidth}{0pt}%
\fancyfoot[C]{\thepage}}
\endinput
%%
%% End of file `factura.def'.
|