first commit

This commit is contained in:
root
2026-03-14 09:42:12 +00:00
commit 0adbd20c2c
10991 changed files with 1646955 additions and 0 deletions

View File

@@ -0,0 +1,2 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.

View File

@@ -0,0 +1,332 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
import csv
import io
import re
import zipfile
from collections import defaultdict
from decimal import Decimal
from enum import IntFlag
from sql.operators import Equal
from trytond.model import Exclude, fields
from trytond.pool import Pool, PoolMeta
from trytond.pyson import Bool, Eval
_ACT_FIELDNAMES = [
'DOCTYPE', 'DBKCODE', 'DBKTYPE', 'DOCNUMBER', 'DOCORDER', 'OPCODE',
'ACCOUNTGL', 'ACCOUNTRP', 'BOOKYEAR', 'PERIOD', 'DATE', 'DATEDOC',
'DUEDATE', 'COMMENT', 'COMMENTEXT', 'AMOUNT', 'AMOUNTEUR', 'VATBASE',
'VATCODE', 'CURRAMOUNT', 'CURRCODE', 'CUREURBASE', 'VATTAX', 'VATIMPUT',
'CURRATE', 'REMINDLEV', 'MATCHNO', 'OLDDATE', 'ISMATCHED', 'ISLOCKED',
'ISIMPORTED', 'ISIMPORTED', 'ISTEMP', 'MEMOTYPE', 'ISDOC', 'DOCSTATUS']
def _format_date(date):
if date:
return date.strftime('%Y%m%d')
else:
return ''
class DOCTYPE(IntFlag):
CUSTOMER = 1
SUPPLIER = 2
GENERAL = 3
VAT_0 = 4
class DBKTYPE(IntFlag):
IN_INVOICE = 0
IN_CREDIT_NOTE = 1
OUT_INVOICE = 2
OUT_CREDIT_NOTE = 3
STATEMENT = 4
MISC = 5
class Account(metaclass=PoolMeta):
__name__ = 'account.account'
winbooks_code = fields.Char("WinBooks Code", size=8)
class FiscalYear(metaclass=PoolMeta):
__name__ = 'account.fiscalyear'
winbooks_code = fields.Char("WinBooks Code", size=1)
@classmethod
def copy(cls, fiscalyears, default=None):
default = default.copy() if default is not None else {}
default.setdefault('winbooks_code')
return super().copy(fiscalyears, default=default)
class RenewFiscalYear(metaclass=PoolMeta):
__name__ = 'account.fiscalyear.renew'
def fiscalyear_defaults(self):
defaults = super().fiscalyear_defaults()
if self.start.previous_fiscalyear.winbooks_code:
if self.start.previous_fiscalyear.winbooks_code == '9':
code = 'A'
elif self.start.previous_fiscalyear.winbooks_code == 'Z':
code = None
else:
i = ord(self.start.previous_fiscalyear.winbooks_code)
code = chr(i + 1)
defaults['winbooks_code'] = code
return defaults
class Period(metaclass=PoolMeta):
__name__ = 'account.period'
@property
def winbooks_code(self):
if self.type == 'standard':
periods = [
p for p in self.fiscalyear.periods if p.type == self.type]
i = periods.index(self) + 1
else:
middle_year = (
self.fiscalyear.start_date
+ (self.fiscalyear.end_date
- self.fiscalyear.start_date) / 2)
middle_period = (
self.start_date + (self.end_date - self.start_date) / 2)
i = 0 if middle_period < middle_year else 99
return f'{i:02}'
class Journal(metaclass=PoolMeta):
__name__ = 'account.journal'
winbooks_code = fields.Char("WinBooks Code", size=6)
winbooks_code_credit_note = fields.Char(
"WinBooks Code Credit Note",
states={
'invisible': ~Eval('type').in_(['revenue', 'expense']),
},
help="The code to use for credit note.\n"
"Leave empty to use the default code.")
def get_winbooks_code(self, dbktype):
code = self.winbooks_code
if (dbktype in {DBKTYPE.IN_CREDIT_NOTE, DBKTYPE.OUT_CREDIT_NOTE}
and self.winbooks_code_credit_note):
code = self.winbooks_code_credit_note
return code
class Move(metaclass=PoolMeta):
__name__ = 'account.move'
@property
def winbooks_number(self):
pool = Pool()
Invoice = pool.get('account.invoice')
if isinstance(self.origin, Invoice):
number = self.origin.number
else:
number = self.number
return re.sub(r'[^0-9]', '', number)
class MoveLine(metaclass=PoolMeta):
__name__ = 'account.move.line'
@property
def winbooks_comment(self):
pool = Pool()
InvoiceLine = pool.get('account.invoice.line')
if isinstance(self.origin, InvoiceLine):
comment = self.origin.rec_name
else:
comment = self.description_used or self.move_description_used or ''
return comment
class TaxTemplate(metaclass=PoolMeta):
__name__ = 'account.tax.template'
winbooks_code = fields.Char("WinBooks Code", size=8)
def _get_tax_value(self, tax=None):
value = super()._get_tax_value(tax=tax)
if not tax or tax.winbooks_code != self.winbooks_code:
value['winbooks_code'] = self.winbooks_code
return value
class Tax(metaclass=PoolMeta):
__name__ = 'account.tax'
winbooks_code = fields.Char(
"WinBooks Code", size=10,
states={
'readonly': (
Bool(Eval('template', -1)
& ~Eval('template_override', False))),
})
class TaxLine(metaclass=PoolMeta):
__name__ = 'account.tax.line'
@classmethod
def __setup__(cls):
super().__setup__()
t = cls.__table__()
cls._sql_constraints += [
('winbooks_tax_move_line_exclude', Exclude(
t, (t.move_line, Equal),
where=(t.type == 'tax')),
'account_export_winbooks.'
'msg_account_tax_line_tax_move_line_unique'),
]
class MoveExport(metaclass=PoolMeta):
__name__ = 'account.move.export'
@classmethod
def __setup__(cls):
super().__setup__()
cls.type.selection.append(('winbooks', "WinBooks"))
def get_filename(self, name):
name = super().get_filename(name)
if self.type == 'winbooks':
name = f'{self.rec_name}-winbooks.zip'
return name
def _process_winbooks(self):
data = io.BytesIO()
with zipfile.ZipFile(data, 'w') as file:
file.writestr(
'ACT.txt', self._process_winbooks_act(_ACT_FIELDNAMES))
self.file = data.getvalue()
def _process_winbooks_act(
self, fieldnames, dialect='excel', delimiter=',', **fmtparams):
data = io.BytesIO()
writer = csv.DictWriter(
io.TextIOWrapper(data, encoding='utf-8', write_through=True),
fieldnames, extrasaction='ignore',
dialect=dialect, delimiter=delimiter, quoting=csv.QUOTE_ALL,
**fmtparams)
writer.writerows(self._process_winbooks_act_rows())
return data.getvalue()
def _process_winbooks_act_rows(self):
for move in self.moves:
yield from self._process_winbooks_act_move(move)
def _process_winbooks_act_move(self, move):
pool = Pool()
Invoice = pool.get('account.invoice')
try:
Statement = pool.get('account.statement')
except KeyError:
Statement = None
bases = defaultdict(Decimal)
taxes = defaultdict(Decimal)
for line in move.lines:
for tax_line in line.tax_lines:
if tax_line.type == 'base':
bases[tax_line.tax] += tax_line.amount
else:
taxes[tax_line.tax] += tax_line.amount
for line in move.lines:
dbktype = ''
if isinstance(move.origin, Invoice):
invoice = move.origin
sequence_field = f'{invoice.type}_{invoice.sequence_type}'
dbktype = getattr(DBKTYPE, sequence_field.upper())
elif isinstance(move.origin, Statement):
dbktype = DBKTYPE.STATEMENT
row = self._process_winbooks_act_line(line)
move_row = {
'DBKCODE': move.journal.get_winbooks_code(dbktype),
'DBKTYPE': int(dbktype),
'DOCNUMBER': move.winbooks_number,
'BOOKYEAR': move.period.fiscalyear.winbooks_code,
'PERIOD': move.period.winbooks_code,
'DATEDOC': _format_date(move.date),
}
row.update(move_row)
is_credit_note = (
dbktype in {DBKTYPE.IN_CREDIT_NOTE, DBKTYPE.OUT_CREDIT_NOTE})
if row['DOCTYPE'] == DOCTYPE.GENERAL:
vatcode = ''
vatbase = 0
tax = None
for tax_line in line.tax_lines:
if (tax_line.type == 'tax'
and tax_line.tax.winbooks_code):
tax = tax_line.tax
vatbase += bases[tax_line.tax]
break
else:
tax_line = None
if tax_line:
if taxes[tax] != tax_line.amount:
vatbase *= round(tax_line.amount / taxes[tax], 3)
vatcode = tax.winbooks_code
if is_credit_note:
vatbase *= -1
row.setdefault('VATBASE', vatbase)
row.setdefault('VATCODE', vatcode)
if row['DOCTYPE'] == DOCTYPE.GENERAL:
for tax_line in line.tax_lines:
tax = tax_line.tax
if (tax_line.type == 'base'
and tax.type == 'percentage' and not tax.rate):
vatcode = tax.winbooks_code
vatbase = tax_line.amount
if is_credit_note:
vatbase *= -1
vat_0_row = {
'DOCTYPE': int(DOCTYPE.VAT_0),
'COMMENT': tax.description,
'AMOUNT': 0,
'AMOUNTEUR': 0,
'VATBASE': vatbase,
'VATCODE': vatcode,
}
vat_0_row.update(move_row)
yield vat_0_row
yield row
def _process_winbooks_act_line(self, line):
accountrp = ''
if line.account.type.receivable and line.party:
doctype = DOCTYPE.CUSTOMER
if identifier := line.party.winbooks_customer_identifier:
accountrp = identifier.code
elif line.account.type.payable and line.party:
doctype = DOCTYPE.SUPPLIER
if identifier := line.party.winbooks_supplier_identifier:
accountrp = identifier.code
else:
doctype = DOCTYPE.GENERAL
return {
'DOCTYPE': int(doctype),
'ACCOUNTGL': (
line.account.winbooks_code or line.account.code),
'ACCOUNTRP': accountrp,
'DUEDATE': _format_date(line.maturity_date),
'COMMENT': line.winbooks_comment[:40],
'AMOUNT': 0,
'AMOUNTEUR': line.debit - line.credit,
'CURRAMOUNT': line.amount_second_currency,
'CURRCODE': (
line.second_currency.code if line.second_currency
else ''),
}

View File

@@ -0,0 +1,36 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tryton>
<data>
<record model="ir.ui.view" id="account_account_view_form">
<field name="model">account.account</field>
<field name="inherit" ref="account.account_view_form"/>
<field name="name">account_account_form</field>
</record>
<record model="ir.ui.view" id="account_fiscalyear_view_form">
<field name="model">account.fiscalyear</field>
<field name="inherit" ref="account.fiscalyear_view_form"/>
<field name="name">account_fiscalyear_form</field>
</record>
<record model="ir.ui.view" id="account_journal_view_form">
<field name="model">account.journal</field>
<field name="inherit" ref="account.journal_view_form"/>
<field name="name">account_journal_form</field>
</record>
<record model="ir.ui.view" id="account_tax_template_view_form">
<field name="model">account.tax.template</field>
<field name="inherit" ref="account.tax_template_view_form"/>
<field name="name">account_tax_template_form</field>
</record>
<record model="ir.ui.view" id="account_tax_view_form">
<field name="model">account.tax</field>
<field name="inherit" ref="account.tax_view_form"/>
<field name="name">account_tax_form</field>
</record>
</data>
</tryton>

View File

@@ -0,0 +1,210 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tryton>
<data depends="account_be" language="fr">
<record id="account_be.tva_vente_biens_coco_fr" model="account.tax.template">
<field name="winbooks_code">212000</field>
</record>
<record id="account_be.tva_vente_biens_intracommunautaires_0_fr" model="account.tax.template">
<field name="winbooks_code">221000</field>
</record>
<record id="account_be.tva_vente_biens_hors_communaute_0_fr" model="account.tax.template">
<field name="winbooks_code">231000</field>
</record>
<record id="account_be.tva_vente_biens_0_fr" model="account.tax.template">
<field name="winbooks_code">211100</field>
</record>
<record id="account_be.tva_vente_biens_6_fr" model="account.tax.template">
<field name="winbooks_code">211200</field>
</record>
<record id="account_be.tva_vente_biens_12_fr" model="account.tax.template">
<field name="winbooks_code">211300</field>
</record>
<record id="account_be.tva_vente_biens_21_fr" model="account.tax.template">
<field name="winbooks_code">211400</field>
</record>
<record id="account_be.tva_vente_services_coco_fr" model="account.tax.template">
<field name="winbooks_code">212000</field>
</record>
<record id="account_be.tva_vente_services_intracommunautaires_0_fr" model="account.tax.template">
<field name="winbooks_code">222000</field>
</record>
<record id="account_be.tva_vente_services_hors_communaute_0_fr" model="account.tax.template">
<field name="winbooks_code">232000</field>
</record>
<record id="account_be.tva_vente_services_6_fr" model="account.tax.template">
<field name="winbooks_code">211200</field>
</record>
<record id="account_be.tva_vente_services_12_fr" model="account.tax.template">
<field name="winbooks_code">211300</field>
</record>
<record id="account_be.tva_vente_services_21_fr" model="account.tax.template">
<field name="winbooks_code">211400</field>
</record>
<record id="account_be.tva_achat_marchandises_intracommunautaires_0_fr" model="account.tax.template">
<field name="winbooks_code">121101</field>
</record>
<record id="account_be.tva_achat_marchandises_6_fr" model="account.tax.template">
<field name="winbooks_code">111102</field>
</record>
<record id="account_be.tva_achat_marchandises_intracommunautaires_6_1_fr" model="account.tax.template">
<field name="winbooks_code">121102</field>
</record>
<record id="account_be.tva_achat_marchandises_intracommunautaires_6_2_fr" model="account.tax.template">
<field name="winbooks_code">121102</field>
</record>
<record id="account_be.tva_achat_marchandises_12_1_fr" model="account.tax.template">
<field name="winbooks_code">111103</field>
</record>
<record id="account_be.tva_achat_marchandises_12_2_fr" model="account.tax.template">
<field name="winbooks_code">111103</field>
</record>
<record id="account_be.tva_achat_marchandises_intracommunautaires_12_1_fr" model="account.tax.template">
<field name="winbooks_code">121103</field>
</record>
<record id="account_be.tva_achat_marchandises_intracommunautaires_12_2_fr" model="account.tax.template">
<field name="winbooks_code">121103</field>
</record>
<record id="account_be.tva_achat_marchandises_21_1_fr" model="account.tax.template">
<field name="winbooks_code">111104</field>
</record>
<record id="account_be.tva_achat_marchandises_21_2_fr" model="account.tax.template">
<field name="winbooks_code">111104</field>
</record>
<record id="account_be.tva_achat_marchandises_intracommunautaires_21_1_fr" model="account.tax.template">
<field name="winbooks_code">121104</field>
</record>
<record id="account_be.tva_achat_marchandises_intracommunautaires_21_2_fr" model="account.tax.template">
<field name="winbooks_code">121104</field>
</record>
<record id="account_be.tva_achat_frais_biens_intracommunautaires_0_fr" model="account.tax.template">
<field name="winbooks_code">122300</field>
</record>
<record id="account_be.tva_achat_frais_biens_6_fr" model="account.tax.template">
<field name="winbooks_code">112102</field>
</record>
<record id="account_be.tva_achat_frais_biens_intracommunautaires_6_1_fr" model="account.tax.template">
<field name="winbooks_code">122102</field>
</record>
<record id="account_be.tva_achat_frais_biens_intracommunautaires_6_2_fr" model="account.tax.template">
<field name="winbooks_code">122102</field>
</record>
<record id="account_be.tva_achat_frais_biens_12_fr" model="account.tax.template">
<field name="winbooks_code">112103</field>
</record>
<record id="account_be.tva_achat_frais_biens_intracommunautaires_12_1_fr" model="account.tax.template">
<field name="winbooks_code">122103</field>
</record>
<record id="account_be.tva_achat_frais_biens_intracommunautaires_12_2_fr" model="account.tax.template">
<field name="winbooks_code">122103</field>
</record>
<record id="account_be.tva_achat_frais_biens_21_fr" model="account.tax.template">
<field name="winbooks_code">112104</field>
</record>
<record id="account_be.tva_achat_frais_biens_intracommunautaires_21_1_fr" model="account.tax.template">
<field name="winbooks_code">122104</field>
</record>
<record id="account_be.tva_achat_frais_biens_intracommunautaires_21_2_fr" model="account.tax.template">
<field name="winbooks_code">122104</field>
</record>
<record id="account_be.tva_achat_investissement_intracommunautaires_0_fr" model="account.tax.template">
<field name="winbooks_code">123100</field>
</record>
<record id="account_be.tva_achat_investissement_coco_6_1_fr" model="account.tax.template">
<field name="winbooks_code">113302</field>
</record>
<record id="account_be.tva_achat_investissement_coco_6_2_fr" model="account.tax.template">
<field name="winbooks_code">113302</field>
</record>
<record id="account_be.tva_achat_investissement_coco_12_1_fr" model="account.tax.template">
<field name="winbooks_code">113303</field>
</record>
<record id="account_be.tva_achat_investissement_coco_12_2_fr" model="account.tax.template">
<field name="winbooks_code">113303</field>
</record>
<record id="account_be.tva_achat_investissement_coco_21_1_fr" model="account.tax.template">
<field name="winbooks_code">113304</field>
</record>
<record id="account_be.tva_achat_investissement_coco_21_2_fr" model="account.tax.template">
<field name="winbooks_code">113304</field>
</record>
<record id="account_be.tva_achat_investissement_6_fr" model="account.tax.template">
<field name="winbooks_code">113102</field>
</record>
<record id="account_be.tva_achat_investissement_intracommunautaires_6_1_fr" model="account.tax.template">
<field name="winbooks_code">123102</field>
</record>
<record id="account_be.tva_achat_investissement_intracommunautaires_6_2_fr" model="account.tax.template">
<field name="winbooks_code">123102</field>
</record>
<record id="account_be.tva_achat_investissement_12_fr" model="account.tax.template">
<field name="winbooks_code">113103</field>
</record>
<record id="account_be.tva_achat_investissement_intracommunautaires_12_1_fr" model="account.tax.template">
<field name="winbooks_code">123103</field>
</record>
<record id="account_be.tva_achat_investissement_intracommunautaires_12_2_fr" model="account.tax.template">
<field name="winbooks_code">123103</field>
</record>
<record id="account_be.tva_achat_investissement_21_fr" model="account.tax.template">
<field name="winbooks_code">113104</field>
</record>
<record id="account_be.tva_achat_investissement_intracommunautaires_21_1_fr" model="account.tax.template">
<field name="winbooks_code">123104</field>
</record>
<record id="account_be.tva_achat_investissement_intracommunautaires_21_2_fr" model="account.tax.template">
<field name="winbooks_code">123104</field>
</record>
</data>
</tryton>

View File

@@ -0,0 +1,210 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tryton>
<data depends="account_be" language="nl">
<record id="account_be.tva_vente_biens_coco_nl" model="account.tax.template">
<field name="winbooks_code">212000</field>
</record>
<record id="account_be.tva_vente_biens_intracommunautaires_0_nl" model="account.tax.template">
<field name="winbooks_code">221000</field>
</record>
<record id="account_be.tva_vente_biens_hors_communaute_0_nl" model="account.tax.template">
<field name="winbooks_code">231000</field>
</record>
<record id="account_be.tva_vente_biens_0_nl" model="account.tax.template">
<field name="winbooks_code">211100</field>
</record>
<record id="account_be.tva_vente_biens_6_nl" model="account.tax.template">
<field name="winbooks_code">211200</field>
</record>
<record id="account_be.tva_vente_biens_12_nl" model="account.tax.template">
<field name="winbooks_code">211300</field>
</record>
<record id="account_be.tva_vente_biens_21_nl" model="account.tax.template">
<field name="winbooks_code">211400</field>
</record>
<record id="account_be.tva_vente_services_coco_nl" model="account.tax.template">
<field name="winbooks_code">212000</field>
</record>
<record id="account_be.tva_vente_services_intracommunautaires_0_nl" model="account.tax.template">
<field name="winbooks_code">222000</field>
</record>
<record id="account_be.tva_vente_services_hors_communaute_0_nl" model="account.tax.template">
<field name="winbooks_code">232000</field>
</record>
<record id="account_be.tva_vente_services_6_nl" model="account.tax.template">
<field name="winbooks_code">211200</field>
</record>
<record id="account_be.tva_vente_services_12_nl" model="account.tax.template">
<field name="winbooks_code">211300</field>
</record>
<record id="account_be.tva_vente_services_21_nl" model="account.tax.template">
<field name="winbooks_code">211400</field>
</record>
<record id="account_be.tva_achat_marchandises_intracommunautaires_0_nl" model="account.tax.template">
<field name="winbooks_code">121101</field>
</record>
<record id="account_be.tva_achat_marchandises_6_nl" model="account.tax.template">
<field name="winbooks_code">111102</field>
</record>
<record id="account_be.tva_achat_marchandises_intracommunautaires_6_1_nl" model="account.tax.template">
<field name="winbooks_code">121102</field>
</record>
<record id="account_be.tva_achat_marchandises_intracommunautaires_6_2_nl" model="account.tax.template">
<field name="winbooks_code">121102</field>
</record>
<record id="account_be.tva_achat_marchandises_12_1_nl" model="account.tax.template">
<field name="winbooks_code">111103</field>
</record>
<record id="account_be.tva_achat_marchandises_12_2_nl" model="account.tax.template">
<field name="winbooks_code">111103</field>
</record>
<record id="account_be.tva_achat_marchandises_intracommunautaires_12_1_nl" model="account.tax.template">
<field name="winbooks_code">121103</field>
</record>
<record id="account_be.tva_achat_marchandises_intracommunautaires_12_2_nl" model="account.tax.template">
<field name="winbooks_code">121103</field>
</record>
<record id="account_be.tva_achat_marchandises_21_1_nl" model="account.tax.template">
<field name="winbooks_code">111104</field>
</record>
<record id="account_be.tva_achat_marchandises_21_2_nl" model="account.tax.template">
<field name="winbooks_code">111104</field>
</record>
<record id="account_be.tva_achat_marchandises_intracommunautaires_21_1_nl" model="account.tax.template">
<field name="winbooks_code">121104</field>
</record>
<record id="account_be.tva_achat_marchandises_intracommunautaires_21_2_nl" model="account.tax.template">
<field name="winbooks_code">121104</field>
</record>
<record id="account_be.tva_achat_frais_biens_intracommunautaires_0_nl" model="account.tax.template">
<field name="winbooks_code">122300</field>
</record>
<record id="account_be.tva_achat_frais_biens_6_nl" model="account.tax.template">
<field name="winbooks_code">112102</field>
</record>
<record id="account_be.tva_achat_frais_biens_intracommunautaires_6_1_nl" model="account.tax.template">
<field name="winbooks_code">122102</field>
</record>
<record id="account_be.tva_achat_frais_biens_intracommunautaires_6_2_nl" model="account.tax.template">
<field name="winbooks_code">122102</field>
</record>
<record id="account_be.tva_achat_frais_biens_12_nl" model="account.tax.template">
<field name="winbooks_code">112103</field>
</record>
<record id="account_be.tva_achat_frais_biens_intracommunautaires_12_1_nl" model="account.tax.template">
<field name="winbooks_code">122103</field>
</record>
<record id="account_be.tva_achat_frais_biens_intracommunautaires_12_2_nl" model="account.tax.template">
<field name="winbooks_code">122103</field>
</record>
<record id="account_be.tva_achat_frais_biens_21_nl" model="account.tax.template">
<field name="winbooks_code">112104</field>
</record>
<record id="account_be.tva_achat_frais_biens_intracommunautaires_21_1_nl" model="account.tax.template">
<field name="winbooks_code">122104</field>
</record>
<record id="account_be.tva_achat_frais_biens_intracommunautaires_21_2_nl" model="account.tax.template">
<field name="winbooks_code">122104</field>
</record>
<record id="account_be.tva_achat_investissement_intracommunautaires_0_nl" model="account.tax.template">
<field name="winbooks_code">123100</field>
</record>
<record id="account_be.tva_achat_investissement_coco_6_1_nl" model="account.tax.template">
<field name="winbooks_code">113302</field>
</record>
<record id="account_be.tva_achat_investissement_coco_6_2_nl" model="account.tax.template">
<field name="winbooks_code">113302</field>
</record>
<record id="account_be.tva_achat_investissement_coco_12_1_nl" model="account.tax.template">
<field name="winbooks_code">113303</field>
</record>
<record id="account_be.tva_achat_investissement_coco_12_2_nl" model="account.tax.template">
<field name="winbooks_code">113303</field>
</record>
<record id="account_be.tva_achat_investissement_coco_21_1_nl" model="account.tax.template">
<field name="winbooks_code">113304</field>
</record>
<record id="account_be.tva_achat_investissement_coco_21_2_nl" model="account.tax.template">
<field name="winbooks_code">113304</field>
</record>
<record id="account_be.tva_achat_investissement_6_nl" model="account.tax.template">
<field name="winbooks_code">113102</field>
</record>
<record id="account_be.tva_achat_investissement_intracommunautaires_6_1_nl" model="account.tax.template">
<field name="winbooks_code">123102</field>
</record>
<record id="account_be.tva_achat_investissement_intracommunautaires_6_2_nl" model="account.tax.template">
<field name="winbooks_code">123102</field>
</record>
<record id="account_be.tva_achat_investissement_12_nl" model="account.tax.template">
<field name="winbooks_code">113103</field>
</record>
<record id="account_be.tva_achat_investissement_intracommunautaires_12_1_nl" model="account.tax.template">
<field name="winbooks_code">123103</field>
</record>
<record id="account_be.tva_achat_investissement_intracommunautaires_12_2_nl" model="account.tax.template">
<field name="winbooks_code">123103</field>
</record>
<record id="account_be.tva_achat_investissement_21_nl" model="account.tax.template">
<field name="winbooks_code">113104</field>
</record>
<record id="account_be.tva_achat_investissement_intracommunautaires_21_1_nl" model="account.tax.template">
<field name="winbooks_code">123104</field>
</record>
<record id="account_be.tva_achat_investissement_intracommunautaires_21_2_nl" model="account.tax.template">
<field name="winbooks_code">123104</field>
</record>
</data>
</tryton>

View File

@@ -0,0 +1,65 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.account,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.fiscalyear,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code_credit_note:"
msgid "WinBooks Code Credit Note"
msgstr ""
msgctxt "field:account.tax,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.tax.template,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:party.party,winbooks_customer_identifier:"
msgid "WinBooks Customer Identifier"
msgstr ""
msgctxt "field:party.party,winbooks_supplier_identifier:"
msgid "WinBooks Supplier Identifier"
msgstr ""
msgctxt "help:account.journal,winbooks_code_credit_note:"
msgid ""
"The code to use for credit note.\n"
"Leave empty to use the default code."
msgstr ""
msgctxt "model:ir.message,text:msg_account_tax_line_tax_move_line_unique"
msgid "Only one tax line of type \"Tax\" is allowed per move line."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_code_unique"
msgid "The WinBooks identifier must be unique."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_party_unique"
msgid "A party can have only one active WinBooks identifier."
msgstr ""
msgctxt "selection:account.move.export,type:"
msgid "WinBooks"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Customer"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Supplier"
msgstr ""

View File

@@ -0,0 +1,69 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.account,winbooks_code:"
msgid "WinBooks Code"
msgstr "Codi WinBooks"
msgctxt "field:account.fiscalyear,winbooks_code:"
msgid "WinBooks Code"
msgstr "Codi WinBooks"
msgctxt "field:account.journal,winbooks_code:"
msgid "WinBooks Code"
msgstr "Codi WinBooks"
msgctxt "field:account.journal,winbooks_code_credit_note:"
msgid "WinBooks Code Credit Note"
msgstr "Codi WinBooks d'abonament"
msgctxt "field:account.tax,winbooks_code:"
msgid "WinBooks Code"
msgstr "Codi WinBooks"
msgctxt "field:account.tax.template,winbooks_code:"
msgid "WinBooks Code"
msgstr "Codi WinBooks"
msgctxt "field:party.party,winbooks_customer_identifier:"
msgid "WinBooks Customer Identifier"
msgstr "Identificador client WinBooks"
msgctxt "field:party.party,winbooks_supplier_identifier:"
msgid "WinBooks Supplier Identifier"
msgstr "Identificador proveïdor WinBooks"
msgctxt "help:account.journal,winbooks_code_credit_note:"
msgid ""
"The code to use for credit note.\n"
"Leave empty to use the default code."
msgstr ""
"El codi a utilitzar per a la nota de crèdit.\n"
"Deixeu-lo en blanc per utilitzar el codi predeterminat."
msgctxt "model:ir.message,text:msg_account_tax_line_tax_move_line_unique"
msgid "Only one tax line of type \"Tax\" is allowed per move line."
msgstr ""
"Només es permet una línia d'impostos del tipus \"Impost\" per apunt "
"comptable."
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_code_unique"
msgid "The WinBooks identifier must be unique."
msgstr "L'identificador de WinBooks ha de ser únic."
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_party_unique"
msgid "A party can have only one active WinBooks identifier."
msgstr "Un tercer només pot tenir un identificador de WinBooks actiu."
msgctxt "selection:account.move.export,type:"
msgid "WinBooks"
msgstr "WinBooks"
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Customer"
msgstr "Client WinBooks"
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Supplier"
msgstr "Proveïdor WinBooks"

View File

@@ -0,0 +1,65 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.account,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.fiscalyear,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code_credit_note:"
msgid "WinBooks Code Credit Note"
msgstr ""
msgctxt "field:account.tax,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.tax.template,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:party.party,winbooks_customer_identifier:"
msgid "WinBooks Customer Identifier"
msgstr ""
msgctxt "field:party.party,winbooks_supplier_identifier:"
msgid "WinBooks Supplier Identifier"
msgstr ""
msgctxt "help:account.journal,winbooks_code_credit_note:"
msgid ""
"The code to use for credit note.\n"
"Leave empty to use the default code."
msgstr ""
msgctxt "model:ir.message,text:msg_account_tax_line_tax_move_line_unique"
msgid "Only one tax line of type \"Tax\" is allowed per move line."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_code_unique"
msgid "The WinBooks identifier must be unique."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_party_unique"
msgid "A party can have only one active WinBooks identifier."
msgstr ""
msgctxt "selection:account.move.export,type:"
msgid "WinBooks"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Customer"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Supplier"
msgstr ""

View File

@@ -0,0 +1,69 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.account,winbooks_code:"
msgid "WinBooks Code"
msgstr "WinBooks Code"
msgctxt "field:account.fiscalyear,winbooks_code:"
msgid "WinBooks Code"
msgstr "WinBooks Code"
msgctxt "field:account.journal,winbooks_code:"
msgid "WinBooks Code"
msgstr "WinBooks Code"
msgctxt "field:account.journal,winbooks_code_credit_note:"
msgid "WinBooks Code Credit Note"
msgstr "WinBooks Code Stornorechnug"
msgctxt "field:account.tax,winbooks_code:"
msgid "WinBooks Code"
msgstr "WinBooks Code"
msgctxt "field:account.tax.template,winbooks_code:"
msgid "WinBooks Code"
msgstr "WinBooks Code"
msgctxt "field:party.party,winbooks_customer_identifier:"
msgid "WinBooks Customer Identifier"
msgstr "WinBooks-Kundennummer"
msgctxt "field:party.party,winbooks_supplier_identifier:"
msgid "WinBooks Supplier Identifier"
msgstr "WinBooks-Lieferantennummer"
msgctxt "help:account.journal,winbooks_code_credit_note:"
msgid ""
"The code to use for credit note.\n"
"Leave empty to use the default code."
msgstr ""
"Der Code für Stornorechnungen.\n"
"Leer lassen, um den Standardcode zu verwenden."
msgctxt "model:ir.message,text:msg_account_tax_line_tax_move_line_unique"
msgid "Only one tax line of type \"Tax\" is allowed per move line."
msgstr ""
"Es ist nur eine Steuerposition vom Typ \"Steuer\" pro Buchungszeile erlaubt."
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_code_unique"
msgid "The WinBooks identifier must be unique."
msgstr "Die WinBooks-Identifikationsnummer darf nur einmal vergeben werden."
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_party_unique"
msgid "A party can have only one active WinBooks identifier."
msgstr ""
"Eine Partei darf nur eine aktive WinBooks-Identifikationsnummer haben."
msgctxt "selection:account.move.export,type:"
msgid "WinBooks"
msgstr "WinBooks"
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Customer"
msgstr "WinBooks Kunde"
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Supplier"
msgstr "Winbooks Lieferant"

View File

@@ -0,0 +1,69 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.account,winbooks_code:"
msgid "WinBooks Code"
msgstr "Código WinBooks"
msgctxt "field:account.fiscalyear,winbooks_code:"
msgid "WinBooks Code"
msgstr "Código WinBooks"
msgctxt "field:account.journal,winbooks_code:"
msgid "WinBooks Code"
msgstr "Código WinBooks"
msgctxt "field:account.journal,winbooks_code_credit_note:"
msgid "WinBooks Code Credit Note"
msgstr "Código WinBooks abono"
msgctxt "field:account.tax,winbooks_code:"
msgid "WinBooks Code"
msgstr "Código WinBooks"
msgctxt "field:account.tax.template,winbooks_code:"
msgid "WinBooks Code"
msgstr "Código WinBooks"
msgctxt "field:party.party,winbooks_customer_identifier:"
msgid "WinBooks Customer Identifier"
msgstr "Identificador cliente Winbooks"
msgctxt "field:party.party,winbooks_supplier_identifier:"
msgid "WinBooks Supplier Identifier"
msgstr "Identificador proveedor WinBooks"
msgctxt "help:account.journal,winbooks_code_credit_note:"
msgid ""
"The code to use for credit note.\n"
"Leave empty to use the default code."
msgstr ""
"El código que se utilizará para la nota de crédito.\n"
"Déjelo vacío para usar el código predeterminado."
msgctxt "model:ir.message,text:msg_account_tax_line_tax_move_line_unique"
msgid "Only one tax line of type \"Tax\" is allowed per move line."
msgstr ""
"Sólo se permite una línea de impuestos de tipo \"Impuesto\" por apunte "
"contable."
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_code_unique"
msgid "The WinBooks identifier must be unique."
msgstr "El identificador de WinBooks debe ser único."
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_party_unique"
msgid "A party can have only one active WinBooks identifier."
msgstr "Una tercero sólo puede tener un identificador de WinBooks activo."
msgctxt "selection:account.move.export,type:"
msgid "WinBooks"
msgstr "WinBooks"
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Customer"
msgstr "Cliente WinBooks"
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Supplier"
msgstr "Proveedor WinBooks"

View File

@@ -0,0 +1,65 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.account,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.fiscalyear,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code_credit_note:"
msgid "WinBooks Code Credit Note"
msgstr ""
msgctxt "field:account.tax,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.tax.template,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:party.party,winbooks_customer_identifier:"
msgid "WinBooks Customer Identifier"
msgstr ""
msgctxt "field:party.party,winbooks_supplier_identifier:"
msgid "WinBooks Supplier Identifier"
msgstr ""
msgctxt "help:account.journal,winbooks_code_credit_note:"
msgid ""
"The code to use for credit note.\n"
"Leave empty to use the default code."
msgstr ""
msgctxt "model:ir.message,text:msg_account_tax_line_tax_move_line_unique"
msgid "Only one tax line of type \"Tax\" is allowed per move line."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_code_unique"
msgid "The WinBooks identifier must be unique."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_party_unique"
msgid "A party can have only one active WinBooks identifier."
msgstr ""
msgctxt "selection:account.move.export,type:"
msgid "WinBooks"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Customer"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Supplier"
msgstr ""

View File

@@ -0,0 +1,65 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.account,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.fiscalyear,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code_credit_note:"
msgid "WinBooks Code Credit Note"
msgstr ""
msgctxt "field:account.tax,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.tax.template,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:party.party,winbooks_customer_identifier:"
msgid "WinBooks Customer Identifier"
msgstr ""
msgctxt "field:party.party,winbooks_supplier_identifier:"
msgid "WinBooks Supplier Identifier"
msgstr ""
msgctxt "help:account.journal,winbooks_code_credit_note:"
msgid ""
"The code to use for credit note.\n"
"Leave empty to use the default code."
msgstr ""
msgctxt "model:ir.message,text:msg_account_tax_line_tax_move_line_unique"
msgid "Only one tax line of type \"Tax\" is allowed per move line."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_code_unique"
msgid "The WinBooks identifier must be unique."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_party_unique"
msgid "A party can have only one active WinBooks identifier."
msgstr ""
msgctxt "selection:account.move.export,type:"
msgid "WinBooks"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Customer"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Supplier"
msgstr ""

View File

@@ -0,0 +1,65 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.account,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.fiscalyear,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code_credit_note:"
msgid "WinBooks Code Credit Note"
msgstr ""
msgctxt "field:account.tax,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.tax.template,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:party.party,winbooks_customer_identifier:"
msgid "WinBooks Customer Identifier"
msgstr ""
msgctxt "field:party.party,winbooks_supplier_identifier:"
msgid "WinBooks Supplier Identifier"
msgstr ""
msgctxt "help:account.journal,winbooks_code_credit_note:"
msgid ""
"The code to use for credit note.\n"
"Leave empty to use the default code."
msgstr ""
msgctxt "model:ir.message,text:msg_account_tax_line_tax_move_line_unique"
msgid "Only one tax line of type \"Tax\" is allowed per move line."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_code_unique"
msgid "The WinBooks identifier must be unique."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_party_unique"
msgid "A party can have only one active WinBooks identifier."
msgstr ""
msgctxt "selection:account.move.export,type:"
msgid "WinBooks"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Customer"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Supplier"
msgstr ""

View File

@@ -0,0 +1,65 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.account,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.fiscalyear,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code_credit_note:"
msgid "WinBooks Code Credit Note"
msgstr ""
msgctxt "field:account.tax,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.tax.template,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:party.party,winbooks_customer_identifier:"
msgid "WinBooks Customer Identifier"
msgstr ""
msgctxt "field:party.party,winbooks_supplier_identifier:"
msgid "WinBooks Supplier Identifier"
msgstr ""
msgctxt "help:account.journal,winbooks_code_credit_note:"
msgid ""
"The code to use for credit note.\n"
"Leave empty to use the default code."
msgstr ""
msgctxt "model:ir.message,text:msg_account_tax_line_tax_move_line_unique"
msgid "Only one tax line of type \"Tax\" is allowed per move line."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_code_unique"
msgid "The WinBooks identifier must be unique."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_party_unique"
msgid "A party can have only one active WinBooks identifier."
msgstr ""
msgctxt "selection:account.move.export,type:"
msgid "WinBooks"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Customer"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Supplier"
msgstr ""

View File

@@ -0,0 +1,70 @@
#
#, fuzzy
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.account,winbooks_code:"
msgid "WinBooks Code"
msgstr "Code WinBooks"
msgctxt "field:account.fiscalyear,winbooks_code:"
msgid "WinBooks Code"
msgstr "Code WinBooks"
msgctxt "field:account.journal,winbooks_code:"
msgid "WinBooks Code"
msgstr "Code WinBooks"
msgctxt "field:account.journal,winbooks_code_credit_note:"
msgid "WinBooks Code Credit Note"
msgstr "Code WinBooks de note de crédit"
msgctxt "field:account.tax,winbooks_code:"
msgid "WinBooks Code"
msgstr "Code WinBooks"
msgctxt "field:account.tax.template,winbooks_code:"
msgid "WinBooks Code"
msgstr "Code WinBooks"
msgctxt "field:party.party,winbooks_customer_identifier:"
msgid "WinBooks Customer Identifier"
msgstr "Identifiant client WinBooks"
msgctxt "field:party.party,winbooks_supplier_identifier:"
msgid "WinBooks Supplier Identifier"
msgstr "Identifiant fournisseur WinBooks"
msgctxt "help:account.journal,winbooks_code_credit_note:"
msgid ""
"The code to use for credit note.\n"
"Leave empty to use the default code."
msgstr ""
"Le code à utiliser pour les notes de crédits.\n"
"Laissez vide pour utiliser le code par défaut."
msgctxt "model:ir.message,text:msg_account_tax_line_tax_move_line_unique"
msgid "Only one tax line of type \"Tax\" is allowed per move line."
msgstr ""
"Une seule ligne de taxe de type « Taxe » est autorisée par ligne de "
"mouvement."
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_code_unique"
msgid "The WinBooks identifier must be unique."
msgstr "L'identifiant WinBooks doit être unique."
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_party_unique"
msgid "A party can have only one active WinBooks identifier."
msgstr "Un tiers ne peut avoir quun seul identifiant WinBooks actif."
msgctxt "selection:account.move.export,type:"
msgid "WinBooks"
msgstr "WinBooks"
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Customer"
msgstr "Client WinBooks"
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Supplier"
msgstr "Fournisseur WinBooks"

View File

@@ -0,0 +1,65 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.account,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.fiscalyear,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code_credit_note:"
msgid "WinBooks Code Credit Note"
msgstr ""
msgctxt "field:account.tax,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.tax.template,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:party.party,winbooks_customer_identifier:"
msgid "WinBooks Customer Identifier"
msgstr ""
msgctxt "field:party.party,winbooks_supplier_identifier:"
msgid "WinBooks Supplier Identifier"
msgstr ""
msgctxt "help:account.journal,winbooks_code_credit_note:"
msgid ""
"The code to use for credit note.\n"
"Leave empty to use the default code."
msgstr ""
msgctxt "model:ir.message,text:msg_account_tax_line_tax_move_line_unique"
msgid "Only one tax line of type \"Tax\" is allowed per move line."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_code_unique"
msgid "The WinBooks identifier must be unique."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_party_unique"
msgid "A party can have only one active WinBooks identifier."
msgstr ""
msgctxt "selection:account.move.export,type:"
msgid "WinBooks"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Customer"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Supplier"
msgstr ""

View File

@@ -0,0 +1,65 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.account,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.fiscalyear,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code_credit_note:"
msgid "WinBooks Code Credit Note"
msgstr ""
msgctxt "field:account.tax,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.tax.template,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:party.party,winbooks_customer_identifier:"
msgid "WinBooks Customer Identifier"
msgstr ""
msgctxt "field:party.party,winbooks_supplier_identifier:"
msgid "WinBooks Supplier Identifier"
msgstr ""
msgctxt "help:account.journal,winbooks_code_credit_note:"
msgid ""
"The code to use for credit note.\n"
"Leave empty to use the default code."
msgstr ""
msgctxt "model:ir.message,text:msg_account_tax_line_tax_move_line_unique"
msgid "Only one tax line of type \"Tax\" is allowed per move line."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_code_unique"
msgid "The WinBooks identifier must be unique."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_party_unique"
msgid "A party can have only one active WinBooks identifier."
msgstr ""
msgctxt "selection:account.move.export,type:"
msgid "WinBooks"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Customer"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Supplier"
msgstr ""

View File

@@ -0,0 +1,65 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.account,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.fiscalyear,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code_credit_note:"
msgid "WinBooks Code Credit Note"
msgstr ""
msgctxt "field:account.tax,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.tax.template,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:party.party,winbooks_customer_identifier:"
msgid "WinBooks Customer Identifier"
msgstr ""
msgctxt "field:party.party,winbooks_supplier_identifier:"
msgid "WinBooks Supplier Identifier"
msgstr ""
msgctxt "help:account.journal,winbooks_code_credit_note:"
msgid ""
"The code to use for credit note.\n"
"Leave empty to use the default code."
msgstr ""
msgctxt "model:ir.message,text:msg_account_tax_line_tax_move_line_unique"
msgid "Only one tax line of type \"Tax\" is allowed per move line."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_code_unique"
msgid "The WinBooks identifier must be unique."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_party_unique"
msgid "A party can have only one active WinBooks identifier."
msgstr ""
msgctxt "selection:account.move.export,type:"
msgid "WinBooks"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Customer"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Supplier"
msgstr ""

View File

@@ -0,0 +1,65 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.account,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.fiscalyear,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code_credit_note:"
msgid "WinBooks Code Credit Note"
msgstr ""
msgctxt "field:account.tax,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.tax.template,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:party.party,winbooks_customer_identifier:"
msgid "WinBooks Customer Identifier"
msgstr ""
msgctxt "field:party.party,winbooks_supplier_identifier:"
msgid "WinBooks Supplier Identifier"
msgstr ""
msgctxt "help:account.journal,winbooks_code_credit_note:"
msgid ""
"The code to use for credit note.\n"
"Leave empty to use the default code."
msgstr ""
msgctxt "model:ir.message,text:msg_account_tax_line_tax_move_line_unique"
msgid "Only one tax line of type \"Tax\" is allowed per move line."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_code_unique"
msgid "The WinBooks identifier must be unique."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_party_unique"
msgid "A party can have only one active WinBooks identifier."
msgstr ""
msgctxt "selection:account.move.export,type:"
msgid "WinBooks"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Customer"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Supplier"
msgstr ""

View File

@@ -0,0 +1,65 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.account,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.fiscalyear,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code_credit_note:"
msgid "WinBooks Code Credit Note"
msgstr ""
msgctxt "field:account.tax,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.tax.template,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:party.party,winbooks_customer_identifier:"
msgid "WinBooks Customer Identifier"
msgstr ""
msgctxt "field:party.party,winbooks_supplier_identifier:"
msgid "WinBooks Supplier Identifier"
msgstr ""
msgctxt "help:account.journal,winbooks_code_credit_note:"
msgid ""
"The code to use for credit note.\n"
"Leave empty to use the default code."
msgstr ""
msgctxt "model:ir.message,text:msg_account_tax_line_tax_move_line_unique"
msgid "Only one tax line of type \"Tax\" is allowed per move line."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_code_unique"
msgid "The WinBooks identifier must be unique."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_party_unique"
msgid "A party can have only one active WinBooks identifier."
msgstr ""
msgctxt "selection:account.move.export,type:"
msgid "WinBooks"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Customer"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Supplier"
msgstr ""

View File

@@ -0,0 +1,69 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.account,winbooks_code:"
msgid "WinBooks Code"
msgstr "WinBooks code"
msgctxt "field:account.fiscalyear,winbooks_code:"
msgid "WinBooks Code"
msgstr "WinBooks code"
msgctxt "field:account.journal,winbooks_code:"
msgid "WinBooks Code"
msgstr "WinBooks code"
msgctxt "field:account.journal,winbooks_code_credit_note:"
msgid "WinBooks Code Credit Note"
msgstr "WinBooks code credit factuur"
msgctxt "field:account.tax,winbooks_code:"
msgid "WinBooks Code"
msgstr "WinBooks code"
msgctxt "field:account.tax.template,winbooks_code:"
msgid "WinBooks Code"
msgstr "WinBooks code"
msgctxt "field:party.party,winbooks_customer_identifier:"
msgid "WinBooks Customer Identifier"
msgstr "WinBooks klant nummer"
msgctxt "field:party.party,winbooks_supplier_identifier:"
msgid "WinBooks Supplier Identifier"
msgstr "WinBooks toeleveranciers nummer"
msgctxt "help:account.journal,winbooks_code_credit_note:"
msgid ""
"The code to use for credit note.\n"
"Leave empty to use the default code."
msgstr ""
"De code die gebruikt wordt voor de credit factuur.\n"
"Laat leeg om de standaard code te gebruiken."
msgctxt "model:ir.message,text:msg_account_tax_line_tax_move_line_unique"
msgid "Only one tax line of type \"Tax\" is allowed per move line."
msgstr ""
"Alleen één belasting regel van het type \"BTW\" is toegestaan per boeking "
"regel."
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_code_unique"
msgid "The WinBooks identifier must be unique."
msgstr "De WinBooks identifier moet uniek zijn."
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_party_unique"
msgid "A party can have only one active WinBooks identifier."
msgstr "Een relatie kan maar één actief WinBooks identificatie hebben."
msgctxt "selection:account.move.export,type:"
msgid "WinBooks"
msgstr "WinBooks"
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Customer"
msgstr "WinBooks klant"
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Supplier"
msgstr "WinBooks toeleverancier"

View File

@@ -0,0 +1,65 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.account,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.fiscalyear,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code_credit_note:"
msgid "WinBooks Code Credit Note"
msgstr ""
msgctxt "field:account.tax,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.tax.template,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:party.party,winbooks_customer_identifier:"
msgid "WinBooks Customer Identifier"
msgstr ""
msgctxt "field:party.party,winbooks_supplier_identifier:"
msgid "WinBooks Supplier Identifier"
msgstr ""
msgctxt "help:account.journal,winbooks_code_credit_note:"
msgid ""
"The code to use for credit note.\n"
"Leave empty to use the default code."
msgstr ""
msgctxt "model:ir.message,text:msg_account_tax_line_tax_move_line_unique"
msgid "Only one tax line of type \"Tax\" is allowed per move line."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_code_unique"
msgid "The WinBooks identifier must be unique."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_party_unique"
msgid "A party can have only one active WinBooks identifier."
msgstr ""
msgctxt "selection:account.move.export,type:"
msgid "WinBooks"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Customer"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Supplier"
msgstr ""

View File

@@ -0,0 +1,65 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.account,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.fiscalyear,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code_credit_note:"
msgid "WinBooks Code Credit Note"
msgstr ""
msgctxt "field:account.tax,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.tax.template,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:party.party,winbooks_customer_identifier:"
msgid "WinBooks Customer Identifier"
msgstr ""
msgctxt "field:party.party,winbooks_supplier_identifier:"
msgid "WinBooks Supplier Identifier"
msgstr ""
msgctxt "help:account.journal,winbooks_code_credit_note:"
msgid ""
"The code to use for credit note.\n"
"Leave empty to use the default code."
msgstr ""
msgctxt "model:ir.message,text:msg_account_tax_line_tax_move_line_unique"
msgid "Only one tax line of type \"Tax\" is allowed per move line."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_code_unique"
msgid "The WinBooks identifier must be unique."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_party_unique"
msgid "A party can have only one active WinBooks identifier."
msgstr ""
msgctxt "selection:account.move.export,type:"
msgid "WinBooks"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Customer"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Supplier"
msgstr ""

View File

@@ -0,0 +1,65 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.account,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.fiscalyear,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code_credit_note:"
msgid "WinBooks Code Credit Note"
msgstr ""
msgctxt "field:account.tax,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.tax.template,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:party.party,winbooks_customer_identifier:"
msgid "WinBooks Customer Identifier"
msgstr ""
msgctxt "field:party.party,winbooks_supplier_identifier:"
msgid "WinBooks Supplier Identifier"
msgstr ""
msgctxt "help:account.journal,winbooks_code_credit_note:"
msgid ""
"The code to use for credit note.\n"
"Leave empty to use the default code."
msgstr ""
msgctxt "model:ir.message,text:msg_account_tax_line_tax_move_line_unique"
msgid "Only one tax line of type \"Tax\" is allowed per move line."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_code_unique"
msgid "The WinBooks identifier must be unique."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_party_unique"
msgid "A party can have only one active WinBooks identifier."
msgstr ""
msgctxt "selection:account.move.export,type:"
msgid "WinBooks"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Customer"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Supplier"
msgstr ""

View File

@@ -0,0 +1,65 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.account,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.fiscalyear,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code_credit_note:"
msgid "WinBooks Code Credit Note"
msgstr ""
msgctxt "field:account.tax,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.tax.template,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:party.party,winbooks_customer_identifier:"
msgid "WinBooks Customer Identifier"
msgstr ""
msgctxt "field:party.party,winbooks_supplier_identifier:"
msgid "WinBooks Supplier Identifier"
msgstr ""
msgctxt "help:account.journal,winbooks_code_credit_note:"
msgid ""
"The code to use for credit note.\n"
"Leave empty to use the default code."
msgstr ""
msgctxt "model:ir.message,text:msg_account_tax_line_tax_move_line_unique"
msgid "Only one tax line of type \"Tax\" is allowed per move line."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_code_unique"
msgid "The WinBooks identifier must be unique."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_party_unique"
msgid "A party can have only one active WinBooks identifier."
msgstr ""
msgctxt "selection:account.move.export,type:"
msgid "WinBooks"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Customer"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Supplier"
msgstr ""

View File

@@ -0,0 +1,65 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.account,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.fiscalyear,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code_credit_note:"
msgid "WinBooks Code Credit Note"
msgstr ""
msgctxt "field:account.tax,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.tax.template,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:party.party,winbooks_customer_identifier:"
msgid "WinBooks Customer Identifier"
msgstr ""
msgctxt "field:party.party,winbooks_supplier_identifier:"
msgid "WinBooks Supplier Identifier"
msgstr ""
msgctxt "help:account.journal,winbooks_code_credit_note:"
msgid ""
"The code to use for credit note.\n"
"Leave empty to use the default code."
msgstr ""
msgctxt "model:ir.message,text:msg_account_tax_line_tax_move_line_unique"
msgid "Only one tax line of type \"Tax\" is allowed per move line."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_code_unique"
msgid "The WinBooks identifier must be unique."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_party_unique"
msgid "A party can have only one active WinBooks identifier."
msgstr ""
msgctxt "selection:account.move.export,type:"
msgid "WinBooks"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Customer"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Supplier"
msgstr ""

View File

@@ -0,0 +1,65 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.account,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.fiscalyear,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code_credit_note:"
msgid "WinBooks Code Credit Note"
msgstr ""
msgctxt "field:account.tax,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.tax.template,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:party.party,winbooks_customer_identifier:"
msgid "WinBooks Customer Identifier"
msgstr ""
msgctxt "field:party.party,winbooks_supplier_identifier:"
msgid "WinBooks Supplier Identifier"
msgstr ""
msgctxt "help:account.journal,winbooks_code_credit_note:"
msgid ""
"The code to use for credit note.\n"
"Leave empty to use the default code."
msgstr ""
msgctxt "model:ir.message,text:msg_account_tax_line_tax_move_line_unique"
msgid "Only one tax line of type \"Tax\" is allowed per move line."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_code_unique"
msgid "The WinBooks identifier must be unique."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_party_unique"
msgid "A party can have only one active WinBooks identifier."
msgstr ""
msgctxt "selection:account.move.export,type:"
msgid "WinBooks"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Customer"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Supplier"
msgstr ""

View File

@@ -0,0 +1,65 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.account,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.fiscalyear,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code_credit_note:"
msgid "WinBooks Code Credit Note"
msgstr ""
msgctxt "field:account.tax,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.tax.template,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:party.party,winbooks_customer_identifier:"
msgid "WinBooks Customer Identifier"
msgstr ""
msgctxt "field:party.party,winbooks_supplier_identifier:"
msgid "WinBooks Supplier Identifier"
msgstr ""
msgctxt "help:account.journal,winbooks_code_credit_note:"
msgid ""
"The code to use for credit note.\n"
"Leave empty to use the default code."
msgstr ""
msgctxt "model:ir.message,text:msg_account_tax_line_tax_move_line_unique"
msgid "Only one tax line of type \"Tax\" is allowed per move line."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_code_unique"
msgid "The WinBooks identifier must be unique."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_party_unique"
msgid "A party can have only one active WinBooks identifier."
msgstr ""
msgctxt "selection:account.move.export,type:"
msgid "WinBooks"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Customer"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Supplier"
msgstr ""

View File

@@ -0,0 +1,65 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.account,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.fiscalyear,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.journal,winbooks_code_credit_note:"
msgid "WinBooks Code Credit Note"
msgstr ""
msgctxt "field:account.tax,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:account.tax.template,winbooks_code:"
msgid "WinBooks Code"
msgstr ""
msgctxt "field:party.party,winbooks_customer_identifier:"
msgid "WinBooks Customer Identifier"
msgstr ""
msgctxt "field:party.party,winbooks_supplier_identifier:"
msgid "WinBooks Supplier Identifier"
msgstr ""
msgctxt "help:account.journal,winbooks_code_credit_note:"
msgid ""
"The code to use for credit note.\n"
"Leave empty to use the default code."
msgstr ""
msgctxt "model:ir.message,text:msg_account_tax_line_tax_move_line_unique"
msgid "Only one tax line of type \"Tax\" is allowed per move line."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_code_unique"
msgid "The WinBooks identifier must be unique."
msgstr ""
msgctxt "model:ir.message,text:msg_party_identifier_winbooks_party_unique"
msgid "A party can have only one active WinBooks identifier."
msgstr ""
msgctxt "selection:account.move.export,type:"
msgid "WinBooks"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Customer"
msgstr ""
msgctxt "selection:party.configuration,identifier_types:"
msgid "WinBooks Supplier"
msgstr ""

View File

@@ -0,0 +1,16 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tryton>
<data grouped="1">
<record model="ir.message" id="msg_party_identifier_winbooks_party_unique">
<field name="text">A party can have only one active WinBooks identifier.</field>
</record>
<record model="ir.message" id="msg_party_identifier_winbooks_code_unique">
<field name="text">The WinBooks identifier must be unique.</field>
</record>
<record model="ir.message" id="msg_account_tax_line_tax_move_line_unique">
<field name="text">Only one tax line of type "Tax" is allowed per move line.</field>
</record>
</data>
</tryton>

View File

@@ -0,0 +1,64 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from sql import Literal
from sql.operators import Equal
from trytond.model import Exclude, fields
from trytond.pool import PoolMeta
class Configuration(metaclass=PoolMeta):
__name__ = 'party.configuration'
@classmethod
def __setup__(cls):
super().__setup__()
cls.identifier_types.selection.extend([
('winbooks_supplier', "WinBooks Supplier"),
('winbooks_customer', "WinBooks Customer"),
])
class Party(metaclass=PoolMeta):
__name__ = 'party.party'
winbooks_supplier_identifier = fields.Function(
fields.Many2One('party.identifier', "WinBooks Supplier Identifier"),
'get_winbooks_identifier', searcher='search_winbooks_identifier')
winbooks_customer_identifier = fields.Function(
fields.Many2One('party.identifier', "WinBooks Customer Identifier"),
'get_winbooks_identifier', searcher='search_winbooks_identifier')
def get_winbooks_identifier(self, name):
return self._get_identifier(name, {name[:-len('_identifier')]})
@classmethod
def search_winbooks_identifier(cls, name, clause):
return cls._search_identifier(
name, clause, {name[:-len('_identifier')]})
class Identifier(metaclass=PoolMeta):
__name__ = 'party.identifier'
@classmethod
def __setup__(cls):
super().__setup__()
t = cls.__table__()
cls._sql_constraints += [
('winbooks_party_unique',
Exclude(t, (t.party, Equal),
where=t.type.in_(
['winbooks_supplier', 'winbooks_customer'])
& (t.active == Literal(True))),
'account_export_winbooks.'
'msg_party_identifier_winbooks_party_unique'),
('winbooks_code_unique',
Exclude(t, (t.code, Equal),
where=t.type.in_(
['winbooks_supplier', 'winbooks_customer'])
& (t.active == Literal(True))),
'account_export_winbooks.'
'msg_party_identifier_winbooks_code_unique'),
]

View File

@@ -0,0 +1,12 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tryton>
<data>
<record model="ir.ui.view" id="party_party_view_list">
<field name="model">party.party</field>
<field name="inherit" ref="party.party_view_tree"/>
<field name="name">party_party_list</field>
</record>
</data>
</tryton>

View File

@@ -0,0 +1,11 @@
"2","EXP","0","1","","","440000","SUPP","3","01","","20230120","20230228","","","0","-605.00","","","","","","","","","","","","","","","","","","",""
"3","EXP","0","1","","","411","","3","01","","20230120","","Tax 0.21","","0","105.00","500.00","112104","","","","","","","","","","","","","","","","",""
"3","EXP","0","1","","","600000","","3","01","","20230120","","600000 - Accrued Expenses (Including Pay","","0","500.00","0","","","","","","","","","","","","","","","","","",""
"1","REV","2","2","","","400000","CUST","3","02","","20230220","20230331","Services","","0","1210.00","","","","","","","","","","","","","","","","","","",""
"3","REV","2","2","","","451","","3","02","","20230220","","Tax 0.21","","0","-210.00","1000.00","211400","","","","","","","","","","","","","","","","",""
"3","REV","2","2","","","700000","","3","02","","20230220","","700000 - Goods @ 2","","0","-1000.00","0","","","","","","","","","","","","","","","","","",""
"1","REV","2","3","","","400000","CUST","3","03","","20230301","20230301","","","0","50.00","","","","","","","","","","","","","","","","","","",""
"4","REV","2","3","","","","","3","03","","20230301","","Tax 0","","0","0","50.00","221000","","","","","","","","","","","","","","","","",""
"3","REV","2","3","","","700000","","3","03","","20230301","","700000 - Goods @ 3","","0","-50.00","0","","","","","","","","","","","","","","","","","",""
"3","STAT","4","4","","","550000","","3","03","","20230331","","","","0","100.00","0","","","","","","","","","","","","","","","","","",""
"1","STAT","4","4","","","400000","CUST","3","03","","20230331","","","","0","-100.00","","","","","","","","","","","","","","","","","","",""

View File

@@ -0,0 +1,2 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.

View File

@@ -0,0 +1,197 @@
================================
Account Export WinBooks Scenario
================================
Imports::
>>> import datetime as dt
>>> import io
>>> import zipfile
>>> from decimal import Decimal
>>> from proteus import Model
>>> from trytond.modules.account.tests.tools import (
... create_chart, create_fiscalyear, create_tax, get_accounts)
>>> from trytond.modules.account_invoice.tests.tools import (
... set_fiscalyear_invoice_sequences)
>>> from trytond.modules.company.tests.tools import create_company
>>> from trytond.tests.tools import activate_modules, assertMultiLineEqual
>>> from trytond.tools import file_open
Activate modules::
>>> config = activate_modules(
... ['account_export_winbooks', 'account_statement'],
... create_company, create_chart)
>>> config.skip_warning = True
>>> Invoice = Model.get('account.invoice')
>>> Journal = Model.get('account.journal')
>>> MoveExport = Model.get('account.move.export')
>>> Party = Model.get('party.party')
>>> Statement = Model.get('account.statement')
>>> StatementJournal = Model.get('account.statement.journal')
Get accounts::
>>> accounts = get_accounts()
>>> accounts['payable'].winbooks_code = '440000'
>>> accounts['payable'].save()
>>> accounts['expense'].code = '600000'
>>> accounts['expense'].save()
>>> accounts['receivable'].winbooks_code = '400000'
>>> accounts['receivable'].save()
>>> accounts['revenue'].code = '700000'
>>> accounts['revenue'].save()
>>> accounts['cash'].code = '550000'
>>> accounts['cash'].save()
Create taxes::
>>> supplier_tax = create_tax(Decimal('.21'))
>>> supplier_tax.winbooks_code = '112104'
>>> supplier_tax.invoice_account, = accounts['tax'].duplicate(
... default={'winbooks_code': '411'})
>>> supplier_tax.credit_note_account = supplier_tax.invoice_account
>>> supplier_tax.save()
>>> customer_tax = create_tax(Decimal('.21'))
>>> customer_tax.winbooks_code = '211400'
>>> customer_tax.invoice_account, = accounts['tax'].duplicate(
... default={'winbooks_code': '451'})
>>> customer_tax.credit_note_account = customer_tax.invoice_account
>>> customer_tax.save()
>>> customer_tax_intra = create_tax(Decimal(0))
>>> customer_tax_intra.winbooks_code = '221000'
>>> customer_tax_intra.save()
Create statement journal::
>>> statement_journal = StatementJournal(name="Bank")
>>> statement_journal.journal, = Journal.find(
... [('code', '=', 'STA')], limit=1)
>>> statement_journal.account = accounts['cash']
>>> statement_journal.validation = 'balance'
>>> statement_journal.save()
>>> statement_journal.journal.winbooks_code = 'STAT'
>>> statement_journal.journal.save()
Create fiscal year::
>>> fiscalyear = set_fiscalyear_invoice_sequences(create_fiscalyear())
>>> fiscalyear.start_date = dt.date(2023, 1, 1)
>>> fiscalyear.end_date = dt.date(2023, 12, 31)
>>> fiscalyear.winbooks_code = '3'
>>> fiscalyear.click('create_period')
Create parties::
>>> supplier = Party(name="Supplier")
>>> identifier = supplier.identifiers.new(type='winbooks_supplier')
>>> identifier.code = 'SUPP'
>>> supplier.save()
>>> supplier.winbooks_supplier_identifier.code
'SUPP'
>>> supplier.winbooks_customer_identifier
>>> customer = Party(name="Customer")
>>> identifier = customer.identifiers.new(type='winbooks_customer')
>>> identifier.code = 'CUST'
>>> customer.save()
>>> customer.winbooks_supplier_identifier
>>> customer.winbooks_customer_identifier.code
'CUST'
Create supplier invoice::
>>> invoice = Invoice(type='in')
>>> invoice.party = supplier
>>> invoice.invoice_date = dt.date(2023, 1, 20)
>>> invoice.payment_term_date = dt.date(2023, 2, 28)
>>> line = invoice.lines.new()
>>> line.account = accounts['expense']
>>> line.quantity = 1
>>> line.unit_price = Decimal('500.00')
>>> line.taxes.append(supplier_tax)
>>> invoice.save()
>>> invoice.click('post')
>>> invoice.state
'posted'
>>> invoice.total_amount
Decimal('605.00')
>>> invoice.journal.winbooks_code = 'EXP'
>>> invoice.journal.save()
Create customer invoice::
>>> invoice = Invoice(type='out')
>>> invoice.party = customer
>>> invoice.description = "Services"
>>> invoice.invoice_date = dt.date(2023, 2, 20)
>>> invoice.payment_term_date = dt.date(2023, 3, 31)
>>> line = invoice.lines.new()
>>> line.description = "Product"
>>> line.account = accounts['revenue']
>>> line.quantity = 1
>>> line.unit_price = Decimal('1000.00')
>>> line.taxes.append(customer_tax)
>>> invoice.save()
>>> invoice.click('post')
>>> invoice.state
'posted'
>>> invoice.total_amount
Decimal('1210.00')
>>> invoice.journal.winbooks_code = 'REV'
>>> invoice.journal.save()
Create customer intra-community invoice::
>>> invoice = Invoice(type='out')
>>> invoice.party = customer
>>> invoice.invoice_date = dt.date(2023, 3, 1)
>>> invoice.payment_term_date = dt.date(2023, 3, 1)
>>> line = invoice.lines.new()
>>> line.description = "Service"
>>> line.account = accounts['revenue']
>>> line.quantity = 1
>>> line.unit_price = Decimal('50.00')
>>> line.taxes.append(customer_tax_intra)
>>> invoice.save()
>>> invoice.click('post')
>>> invoice.state
'posted'
>>> invoice.total_amount
Decimal('50.00')
Fill a statement::
>>> statement = Statement(name="Bank")
>>> statement.journal = statement_journal
>>> statement.start_balance = Decimal('0.00')
>>> statement.end_balance = Decimal('100.00')
>>> line = statement.lines.new()
>>> line.number = '1'
>>> line.date = dt.date(2023, 3, 31)
>>> line.amount = Decimal('100.00')
>>> line.party = customer
>>> statement.click('validate_statement')
>>> statement.click('post')
>>> statement.state
'posted'
Export moves to WinBooks::
>>> move_export = MoveExport(type='winbooks')
>>> move_export.click('select_moves')
>>> len(move_export.moves)
4
>>> move_export.click('wait')
>>> move_export.state
'waiting'
>>> with zipfile.ZipFile(io.BytesIO(move_export.file)) as file:
... with file.open('ACT.txt') as act1, \
... file_open('account_export_winbooks/tests/ACT.txt') as act2:
... assertMultiLineEqual(io.TextIOWrapper(act1).read(), act2.read())

View File

@@ -0,0 +1,13 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from trytond.tests.test_tryton import ModuleTestCase
class AccountExportWinbooksTestCase(ModuleTestCase):
"Test Account Export Winbooks module"
module = 'account_export_winbooks'
extras = ['account_be']
language = 'fr'
del ModuleTestCase

View File

@@ -0,0 +1,8 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from trytond.tests.test_tryton import load_doc_tests
def load_tests(*args, **kwargs):
return load_doc_tests(__name__, __file__, *args, **kwargs)

View File

@@ -0,0 +1,35 @@
[tryton]
version=7.8.0
depends:
account
account_export
account_invoice
ir
party
extras_depend:
account_be
account_statement
xml:
account.xml
account_be_fr.xml
account_be_nl.xml
party.xml
message.xml
[register]
model:
party.Configuration
party.Party
party.Identifier
account.Account
account.FiscalYear
account.Period
account.Journal
account.Move
account.MoveLine
account.TaxTemplate
account.Tax
account.TaxLine
account.MoveExport
wizard:
account.RenewFiscalYear

View File

@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<data>
<xpath expr="//field[@name='party_required']" position="after">
<newline/>
<label name="winbooks_code"/>
<field name="winbooks_code"/>
<newline/>
</xpath>
</data>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<data>
<xpath expr="//field[@name='end_date']" position="after">
<label name="winbooks_code"/>
<field name="winbooks_code"/>
<newline/>
</xpath>
</data>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<data>
<xpath expr="//field[@name='matching_sequence']" position="after">
<label name="winbooks_code"/>
<field name="winbooks_code"/>
<label name="winbooks_code_credit_note"/>
<field name="winbooks_code_credit_note"/>
</xpath>
</data>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<data>
<xpath expr="//field[@name='credit_note_account']" position="after">
<label name="winbooks_code"/>
<field name="winbooks_code"/>
<newline/>
</xpath>
</data>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<data>
<xpath expr="//field[@name='credit_note_account']" position="after">
<label name="winbooks_code"/>
<field name="winbooks_code"/>
<newline/>
</xpath>
</data>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<data>
<xpath expr="//field[@name='tax_identifier']" position="after">
<field name="winbooks_supplier_identifier" optional="0"/>
<field name="winbooks_customer_identifier" optional="0"/>
</xpath>
</data>