Sfoglia il codice sorgente

Introduce english translations

master
Peter Hatina 2 anni fa
parent
commit
e05b85af8e
2 ha cambiato i file con 118 aggiunte e 37 eliminazioni
  1. +6
    -2
      lib/invoice/db/invoices.py
  2. +112
    -35
      templates/invoice.tex

+ 6
- 2
lib/invoice/db/invoices.py Vedi File

@@ -19,6 +19,7 @@ class Invoices(List):
Delivered -- Date when the services were delivered in YYYY-MM-DD format
Note -- a note at the and of the invoice
Advance -- amount of money already paid
Translate -- whether to use english translations for various text blocks
"""
data_template = """\
Item:Description|Amount|Unit|Rate
@@ -27,6 +28,7 @@ Delivered:
Due:
Advance: 0
"""
Translate: 0
_directory = "income"
_regex = re.compile("^(?P<date>[0-9]{8})-(?P<number>[0-9]{3})-(?P<company_name>[a-z0-9-]+)$")
_template = "{date}-{number:03}-{company_name}"
@@ -66,8 +68,8 @@ class Invoice(Item):
self._selector["number"] = int(self.number)

class InvoiceData(Data):
_fields = ["issued", "due", "delivered", "paid", "payment", "advance"]
_multivalue_fields = ["item", "address", "note"]
_fields = ["issued", "due", "delivered", "paid", "payment", "advance", "translate"]
_multivalue_fields = ["itemheading", "item", "address", "note"]
_date_regex = re.compile(r"^(\d{4})-?(\d{2})-?(\d{2})$")
_item_regex = re.compile(r"^([^|]*)\|(-?\d+)\|([^|]*)\|(-?\d+)$")
_number_template = "{year}{number:03}"
@@ -107,6 +109,8 @@ class InvoiceData(Data):
self._data["advance"] = m_advance
self._data["topay"] = m_sum - m_advance

self._data["translate"] = bool(int(self.translate))

def _postprocess_dates(self):
if self.issued:
try:


+ 112
- 35
templates/invoice.tex Vedi File

@@ -10,6 +10,78 @@
\renewcommand{\familydefault}{\sfdefault}
\setlength{\extrarowheight}{3pt}

{{if invoice.translate}}
\newcommand\translation[1]{/\textit#1}
{{else}}
\newcommand\translation[1]{}
{{endif}}
\newcommand\translatable[2]{#1\translation#2}
\newcommand\translatablebf[2]{\textbf{#1}\translation#2}

\def\InvoiceSK{Faktúra}
\def\InvoiceEN{Invoice}
\def\ClientSK{Odberateľ}
\def\ClientEN{Client}
\def\SupplierSK{Dodávateľ}
\def\SupplierEN{Supplier}
\def\PaymentTermsSK{Platobné podmienky}
\def\PaymentTermsEN{Terms of payment}
\def\PaymentMethodSK{Forma úhrady}
\def\PaymentMethodEN{Payment method}
\def\PaymentMethodCashSK{v~hotovosti}
\def\PaymentMethodCashEN{cash}
\def\PaymentMethodBankTransferSK{prevodom}
\def\PaymentMethodBankTransferEN{bank transfer}
\def\IssueDateSK{Dátum vystavenia}
\def\IssueDateEN{Issue date}
\def\DeliveryDateSK{Dátum dodania}
\def\DeliveryDateEN{Delivery date}
\def\DueDateSK{Dátum splatnosti}
\def\DueDateEN{Due date}
\def\VariableSymbolSK{Variabilný symbol}
\def\VariableSymbolEN{Variable symbol}
\def\NotesSK{Poznámky}
\def\NotesEN{Notes}
\def\SubjectSK{Popis položky}
\def\SubjectEN{Subject}
\def\AmountSK{Množstvo}
\def\AmountEN{Amount}
\def\UnitSK{MJ}
\def\UnitEN{Unit}
\def\UnitPriceSK{Cena za MJ}
\def\UnitPriceEN{Unit price}
\def\TotalPriceSK{Celková cena}
\def\TotalPriceEN{Total price}
\def\TotalAmountSK{Celková suma}
\def\TotalAmountEN{Total amount}
\def\IssuedBySK{Vystavil}
\def\IssuedByEN{Issued by}
\def\AdvancesPaidSK{Udradené zálohami}
\def\AdvancesPaidEN{Advances paid}
\def\TotalDueSK{K~úhrade}
\def\TotalDueEN{Total due}
\def\Invoice{\translatablebf\InvoiceSK\InvoiceEN}
\def\Supplier{\translatablebf\SupplierSK\SupplierEN}
\def\Client{\translatablebf\ClientSK\ClientEN}
\def\PaymentTerms{\translatablebf\PaymentTermsSK\PaymentTermsEN}
\def\PaymentMethod{\translatable\PaymentMethodSK\PaymentMethodEN}
\def\PaymentMethodCash{\translatable\PaymentMethodCashSK\PaymentMethodCashEN}
\def\PaymentMethodBankTransfer{\translatable\PaymentMethodBankTransferSK\PaymentMethodBankTransferEN}
\def\IssueDate{\translatable\IssueDateSK\IssueDateEN}
\def\DeliveryDate{\translatable\DeliveryDateSK\DeliveryDateEN}
\def\DueDate{\translatablebf\DueDateSK\DueDateEN}
\def\VariableSymbol{\translatable\VariableSymbolSK\VariableSymbolEN}
\def\Notes{\translatablebf\NotesSK\NotesEN}
\def\Subject{\translatablebf\SubjectSK\SubjectEN}
\def\Amount{\translatablebf\AmountSK\AmountEN}
\def\Unit{\translatablebf\UnitSK\UnitEN}
\def\UnitPrice{\translatablebf\UnitPriceSK\UnitPriceEN}
\def\TotalPrice{\translatablebf\TotalPriceSK\TotalPriceEN}
\def\TotalAmount{\translatable\TotalAmountSK\TotalAmountEN}
\def\IssuedBy{\translatable\IssuedBySK\IssuedByEN}
\def\AdvancesPaid{\translatable\AdvancesPaidSK\AdvancesPaidEN}
\def\TotalDue{\translatable\TotalDueSK\TotalDueEN}

\begin{document}
\footnotesize

@@ -18,14 +90,17 @@
\begin{center}
\begin{tabularx}{\textwidth}{XXXX}

% INVOICE HEADING
&&& \\
\multicolumn{4}{l}{\bf \large Faktúra: \hfill {{invoice.number}}} \\
\multicolumn{4}{l}{\large\Invoice: \hfill {{invoice.number}}} \\
&&& \\ \hline
\multicolumn{2}{X|}{} & \multicolumn{2}{X}{} \\
\multicolumn{2}{l|}{\bf Dodávateľ:} & \multicolumn{2}{X}{\bf Odberateľ} \\
\multicolumn{2}{l|}{\Supplier:} & \multicolumn{2}{X}{\Client:} \\
\multicolumn{2}{X|}{} & \multicolumn{2}{X}{} \\

\multicolumn{2}{l|}{\large\bf {{issuer.name}}} & \multicolumn{2}{l}{\large\bf {{customer.name}}} \\
% ISSUER & CUSTOMER
\multicolumn{2}{l|}{\large\bf {{issuer.name}}} &
\multicolumn{2}{l}{\large\bf {{customer.name}}} \\
{{py:
a1 = issuer.address[:]
a2 = customer.address[:]
@@ -55,7 +130,7 @@ a2 += (len(a1)-len(a2))*[""]

\multicolumn{2}{X|}{} & \multicolumn{2}{X}{} \\

% Comments
% COMMENTS
{{py:
a1 = issuer.comments[:]
a2 = customer.comments[:]
@@ -67,16 +142,21 @@ a2 += (len(a1)-len(a2))*[""]
{{endfor}}
\multicolumn{2}{X|}{} & \multicolumn{2}{X}{} \\

\multicolumn{2}{l|}{\bf Platobné podmienky:} & & \\
Forma úhrady: & \multicolumn{1}{l|}{ {{"v~hotovosti" if invoice.payment=="cash" else "prevodom"}}} & & \\
IBAN: & \multicolumn{1}{l|}{ {{issuer.iban}}} & Dátum vystavenia: & \multicolumn{1}{r}{ {{invoice.issued.strftime("%d.%m.%Y")}}} \\
SWIFT/BIC: & \multicolumn{1}{l|}{ {{issuer.swift}} } & \multicolumn{2}{l}{Dátum dodania: \hfill {{invoice.delivered.strftime("%d.%m.%Y")}}} \\
Variabilný symbol: & \multicolumn{1}{l|}{ {{invoice.number}}} & \multicolumn{2}{l}{\large\bf Dátum splatnosti: \hfill {{invoice.due.strftime("%d.%m.%Y")}}} \\
\multicolumn{2}{l|}{\PaymentTerms:} & & \\
\PaymentMethod: & \multicolumn{1}{l|}{
{{if invoice.payment == "cash"}}
\PaymentMethodCash
{{else}}
\PaymentMethodBankTransfer
{{endif}} } & & \\
IBAN: & \multicolumn{1}{l|}{ {{issuer.iban}} } & \IssueDate: & \multicolumn{1}{r}{ {{invoice.issued.strftime("%d.%m.%Y")}}} \\
SWIFT/BIC: & \multicolumn{1}{l|}{ {{issuer.swift}} } & \multicolumn{2}{l}{\DeliveryDate: \hfill {{invoice.delivered.strftime("%d.%m.%Y")}}} \\
\VariableSymbol: & \multicolumn{1}{l|}{ {{invoice.number}}} & \multicolumn{2}{l}{\large\DueDate: \hfill {{invoice.due.strftime("%d.%m.%Y")}}} \\
% COMMENTS
{{if invoice.notes}}
\multicolumn{2}{X|}{} & \multicolumn{2}{X}{} \\ \hline
& & & \\
\bf Poznámky: & & & \\[1em]
\Notes: & & & \\[1em]
{{for note in invoice.notes}}
\multicolumn{4}{l}{\large {{note}}} \\
{{endfor}}
@@ -84,50 +164,47 @@ Variabilný symbol: & \multicolumn{1}{l|}{ {{invoice.number}}} & \multicolumn{2}

\multicolumn{2}{X|}{} & \multicolumn{2}{X}{} \\ \hline

& & & \\
&&& \\

\multicolumn{4}{l}{\bf Faktúrujeme Vám za služby podľa Rámcovej zmluvy} \\
% ITEM(s) HEADING
{{for heading in invoice.itemheading}}
\multicolumn{4}{l}{ {{heading}} } \\
{{endfor}}

& & & \\
&&& \\

% ITEMS
\multicolumn{4}{X}{%
\hspace*{-1.35\tabcolsep}
\begin{tabu} to \textwidth {%
>{\hsize=2.5\hsize}X[l]%
>{\hsize=0.5\hsize}X[r]%
>{\hsize=0.5\hsize}X[r]%
>{\hsize=0.5\hsize}X[r]%
>{\hsize=0.5\hsize}X[r]}
\normalsize \bf Popis položky & \bf Množstvo & \bf MJ & \bf Cena za MJ & \bf Celková cena \\
\begin{tabu} to \textwidth {X[5,l]X[1.5,r]X[1,r]X[1.8,r]X[2.0,r]}
%>{\hsize=2.5\hsize}X[l]%
%>{\hsize=0.5\hsize}X[r]%
%>{\hsize=0.5\hsize}X[r]%
%>{\hsize=1.0\hsize}X[r]%
%>{\hsize=1.0\hsize}X[r]}
\Subject & \Amount & \Unit & \UnitPrice & \TotalPrice \\
{{for item in invoice.items}}
{{item[0]}} & {{item[1]}} & {{item[2]}} & {{eur(item[3])}} & {{eur(item[1] * item[3])}} \\
{{item[0]}} & {{decimal(item[1])}} & {{item[2]}} & {{eur(item[3])}} & {{eur(item[1] * item[3])}} \\
{{endfor}}
\end{tabu}
} \\

%& & & \\
%\hline
%& & & \\
%\multicolumn{3}{l}{\large\bf Celkom k úhrade:} & \multicolumn{1}{r}{\large\bf {{eur(invoice.sum)}} } \\
& & & \\
&&& \\
\hline
\multicolumn{4}{r}{} \\
%\multicolumn{4}{r}{\includegraphics[scale=1]{../signature.jpg}\hspace{.4cm} } \\
\end{tabularx}
\end{center}

\vfill

% Footer
% FOOTER
\centering
\begin{tabu} to \textwidth {XX|XX|X|X[r]}
\hline
Vyhotovil: Peter Hatina && Prevzal: && Celková suma: & {{eur(invoice.sum)}} \\ \cline{5-6}
\multirow{2}{*}{\hspace*{1.0cm}\includegraphics[scale=0.3]{../signature.jpg} } && && Uhradené zálohami: & {{eur(invoice.advance)}} \\ \cline{5-6}
&& && Zostáva uhradiť: & {{eur(invoice.topay)}} \\ \cline{5-6}
&& && & \\
&& && \multirow{-2}{*}{K úhrade:} & \multirow{-2}{*}{ \bf \large {{eur(invoice.topay)}}\phantom} \\
\begin{tabu} to \textwidth {X[1]|X[0.5,l]|X[0.25,r] }
\hline
\IssuedBy: \quad {{issuer.name}} & \TotalAmount: & {{eur(invoice.sum)}} \\ \cline{2-3}
\multirow{2}{*}{\hspace*{2.7cm}\includegraphics[scale=0.2]{../signature.jpg} } & \AdvancesPaid: & {{eur(invoice.advance)}} \\ \cline{2-3}
&& \\
& \multirow{-2}{*}{\TotalDue:} & \multirow{-2}{*}{ \bf \large {{eur(invoice.topay)}}\phantom} \\
\end{tabu}

\end{document}

Loading…
Annulla
Salva