%% %% This is file `factura.def', %% generated with the docstrip utility. %% %% The original source files were: %% %% factura.dtx (with options: `def') %% %% Copyright 2018 Emilio Lazo Zaia %% %% 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 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} [2018/08/02 v3.57 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, las condiciones del documento, 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 y el límite para el descuento: \def\@AlicuotaG{0.12} \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\@MonedaBs{Bs.} \def\@MonedaBsS{Bs.S} \def\@MonedaBsF{Bs.F} %% Las fechas de la entrada de la reconversión monetaria: \DTMsavedate{FechaBsS}{2018-08-20} \DTMsavedate{FechaBs}{2019-01-01} %% 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)} %% 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 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} \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) condiciones, iv) número de control, v) firmas. \PosFecha*{-0cm}{5cm} \PosDenom*{0cm}{5cm} \PosControl*{0cm}{-2.4cm} \PosCondiciones{0cm}{-5.3cm} %% 'X' no acepta valores negativos en \PosCondiciones. \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} \SepCondiciones{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 las condiciones, curvatura de la esquina y sombra. %% (si pedimos linea de 0pt, todo queda en cero y no se abre el ambiente TikZ). \LineaCondiciones{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 las condiciones del documento. \LetraCondiciones{\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 las condiciones. \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\@CondicionesTIKZ{% draw=black, fill=white, inner sep=\@SeparaInternaCondiciones, line width=\@GrosorLineaCondiciones, rounded corners=\@EsquinaLineaCondiciones, copy shadow={top color=black, bottom color=black, shadow xshift=\@SombraCondiciones, shadow yshift=-\@SombraCondiciones}} %% 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{\@EstiloCondiciones}{\@LetraCondiciones \@Condiciones} \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'.