first commit
This commit is contained in:
2
modules/document_incoming_ocr/__init__.py
Normal file
2
modules/document_incoming_ocr/__init__.py
Normal 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.
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
30
modules/document_incoming_ocr/account.py
Normal file
30
modules/document_incoming_ocr/account.py
Normal file
@@ -0,0 +1,30 @@
|
||||
# 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.model import ModelView, Workflow
|
||||
from trytond.pool import Pool, PoolMeta
|
||||
from trytond.transaction import Transaction
|
||||
|
||||
|
||||
def send_feedback(invoices):
|
||||
pool = Pool()
|
||||
Document = pool.get('document.incoming')
|
||||
documents = [d for i in invoices for d in i.documents_incoming]
|
||||
with Transaction().set_context(queue_batch=1):
|
||||
Document.__queue__.ocr_send_feedback(documents)
|
||||
|
||||
|
||||
class Invoice(metaclass=PoolMeta):
|
||||
__name__ = 'account.invoice'
|
||||
|
||||
@classmethod
|
||||
@ModelView.button
|
||||
@Workflow.transition('validated')
|
||||
def validate_invoice(cls, invoices):
|
||||
super().validate_invoice(invoices)
|
||||
send_feedback(invoices)
|
||||
|
||||
@classmethod
|
||||
def _post(cls, invoices):
|
||||
super()._post(invoices)
|
||||
send_feedback(invoices)
|
||||
484
modules/document_incoming_ocr/document.py
Normal file
484
modules/document_incoming_ocr/document.py
Normal file
@@ -0,0 +1,484 @@
|
||||
# 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 bisect
|
||||
import datetime as dt
|
||||
import logging
|
||||
import re
|
||||
from decimal import Decimal
|
||||
from operator import itemgetter
|
||||
|
||||
from trytond.cache import Cache
|
||||
from trytond.model import (
|
||||
MatchMixin, ModelSQL, ModelView, Workflow, fields, sequence_ordered)
|
||||
from trytond.pool import Pool, PoolMeta
|
||||
from trytond.pyson import Eval
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class Incoming(metaclass=PoolMeta):
|
||||
__name__ = 'document.incoming'
|
||||
|
||||
ocr_service = fields.Many2One(
|
||||
'document.incoming.ocr.service', "OCR Service", readonly=True,
|
||||
states={
|
||||
'invisible': ~Eval('ocr_service'),
|
||||
})
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super().__setup__()
|
||||
cls._buttons.update(
|
||||
ocr_send_feedback={
|
||||
'invisible': ~Eval('ocr_service') | (Eval('state') != 'done'),
|
||||
'depends': ['ocr_service', 'state'],
|
||||
},
|
||||
)
|
||||
|
||||
@classmethod
|
||||
@ModelView.button
|
||||
@Workflow.transition('done')
|
||||
def proceed(cls, documents, with_children=False):
|
||||
pool = Pool()
|
||||
Service = pool.get('document.incoming.ocr.service')
|
||||
for document in documents:
|
||||
service = Service.get_service(document)
|
||||
if service:
|
||||
document.ocr_service = service
|
||||
document.parsed_data = service.process(document)
|
||||
cls.save(documents)
|
||||
super().proceed(documents, with_children=with_children)
|
||||
|
||||
def _process_document_incoming(self):
|
||||
document = super()._process_document_incoming()
|
||||
if self.ocr_service:
|
||||
document_data = self.ocr_service.get_document_incoming(self)
|
||||
document_type = document_data.get('document_type')
|
||||
if (document_type
|
||||
and document_type in dict(self.__class__.type.selection)):
|
||||
document.type = document_type
|
||||
return document
|
||||
|
||||
@classmethod
|
||||
@ModelView.button
|
||||
def ocr_send_feedback(cls, documents):
|
||||
for document in documents:
|
||||
if document.ocr_service:
|
||||
document.ocr_service.send_feedback(document)
|
||||
|
||||
@classmethod
|
||||
def copy(cls, documents, default=None):
|
||||
default = default.copy() if default is not None else {}
|
||||
default.setdefault('ocr_service')
|
||||
return super().copy(documents, default=default)
|
||||
|
||||
|
||||
class IncomingSupplierInvoice(metaclass=PoolMeta):
|
||||
__name__ = 'document.incoming'
|
||||
|
||||
def _process_supplier_invoice(self):
|
||||
pool = Pool()
|
||||
Party = pool.get('party.party')
|
||||
Currency = pool.get('currency.currency')
|
||||
|
||||
invoice = super()._process_supplier_invoice()
|
||||
if self.ocr_service:
|
||||
invoice_data = self.ocr_service.get_supplier_invoice(self)
|
||||
|
||||
tax_identifier = invoice_data.get('tax_identifier')
|
||||
if tax_identifier and invoice.party:
|
||||
tax_identifier_types = Party.tax_identifier_types()
|
||||
for identifier in invoice.party.identifiers:
|
||||
if (identifier.type in tax_identifier_types
|
||||
and identifier.code == tax_identifier):
|
||||
invoice.party_tax_identifier = identifier
|
||||
|
||||
currency = invoice_data.get('currency')
|
||||
if currency:
|
||||
try:
|
||||
invoice.currency, = Currency.search([
|
||||
('code', '=', currency),
|
||||
])
|
||||
except ValueError:
|
||||
logger.debug(f"Cannot find currency '{currency}'")
|
||||
|
||||
invoice.reference = invoice_data.get('number')
|
||||
invoice.description = invoice_data.get('description')
|
||||
|
||||
invoice_date = invoice_data.get('invoice_date')
|
||||
if invoice_date:
|
||||
try:
|
||||
invoice.invoice_date = dt.date.fromisoformat(invoice_date)
|
||||
except ValueError:
|
||||
logger.debug(f"Cannot parse invoice date '{invoice_date}'")
|
||||
|
||||
payment_term_date = invoice_data.get('payment_term_date')
|
||||
if payment_term_date:
|
||||
try:
|
||||
invoice.payment_term_date = dt.date.fromisoformat(
|
||||
payment_term_date)
|
||||
invoice.payment_term = None
|
||||
except ValueError:
|
||||
logger.debug(
|
||||
"Cannot parse payment term date "
|
||||
f"'{payment_term_date}'")
|
||||
|
||||
lines = []
|
||||
for parsed_line in invoice_data.get('lines', []):
|
||||
line = self._process_supplier_invoice_line(
|
||||
invoice, parsed_line, invoice_data)
|
||||
if line:
|
||||
lines.append(line)
|
||||
if not lines:
|
||||
line_data = self._process_supplier_invoice_line_single(
|
||||
invoice, invoice_data)
|
||||
if line_data:
|
||||
line = self._process_supplier_invoice_line(
|
||||
invoice, line_data, invoice_data)
|
||||
if line:
|
||||
lines.append(line)
|
||||
invoice.lines = lines
|
||||
|
||||
taxes = []
|
||||
for parsed_tax in invoice_data.get('taxes', []):
|
||||
tax = self._process_supplier_invoice_tax(
|
||||
invoice, parsed_tax)
|
||||
if tax:
|
||||
taxes.append(tax)
|
||||
if taxes:
|
||||
for line in invoice.lines:
|
||||
line.taxes = None
|
||||
invoice.taxes = taxes
|
||||
|
||||
return invoice
|
||||
|
||||
def _process_supplier_invoice_line_single(self, invoice, invoice_data):
|
||||
total_amount = invoice_data.get('total_amount')
|
||||
if total_amount:
|
||||
return {'quantity': 1, 'amount': total_amount}
|
||||
|
||||
def _process_supplier_invoice_line(self, invoice, line_data, invoice_data):
|
||||
from trytond.modules.product import round_price
|
||||
pool = Pool()
|
||||
AccountConfiguration = pool.get('account.configuration')
|
||||
InvoiceLine = pool.get('account.invoice.line')
|
||||
Product = pool.get('product.product')
|
||||
UoM = pool.get('product.uom')
|
||||
|
||||
account_configuration = AccountConfiguration(1)
|
||||
|
||||
line = InvoiceLine(
|
||||
invoice=invoice,
|
||||
currency=invoice.currency,
|
||||
company=invoice.company)
|
||||
product_name = line_data.get('product_name')
|
||||
if product_name:
|
||||
try:
|
||||
product, = Product.search([
|
||||
('rec_name', 'ilike', product_name),
|
||||
])
|
||||
except ValueError:
|
||||
logger.debug(f"Cannot find product '{product_name}'")
|
||||
line.product = None
|
||||
else:
|
||||
line.product = product.id
|
||||
line.on_change_product()
|
||||
else:
|
||||
line.product = None
|
||||
line.description = line_data.get('description')
|
||||
if not line.product:
|
||||
if line.description:
|
||||
similar_lines = InvoiceLine.search([
|
||||
('description', 'ilike', line.description),
|
||||
('invoice.company', '=', invoice.company),
|
||||
('invoice.type', '=', invoice.type),
|
||||
('invoice.state', 'in',
|
||||
['validated', 'posted', 'paid']),
|
||||
],
|
||||
order=[('invoice.invoice_date', 'DESC')],
|
||||
limit=1)
|
||||
else:
|
||||
similar_lines = []
|
||||
if similar_lines:
|
||||
similar_line, = similar_lines
|
||||
line.account = similar_line.account
|
||||
line.product = similar_line.product
|
||||
line.unit = similar_line.unit
|
||||
line.taxes = similar_line.taxes
|
||||
else:
|
||||
line.account = account_configuration.get_multivalue(
|
||||
'default_category_account_expense',
|
||||
company=invoice.company.id)
|
||||
line.on_change_account()
|
||||
|
||||
unit = line_data.get('unit')
|
||||
if unit:
|
||||
try:
|
||||
unit, = UoM.search([
|
||||
('rec_name', 'ilike', unit),
|
||||
])
|
||||
except ValueError:
|
||||
logger.debug(f"Cannot find UoM '{unit}'")
|
||||
else:
|
||||
if (not line.product
|
||||
or line.product.default_uom.category == unit.category):
|
||||
line.unit = unit
|
||||
|
||||
quantity = line_data.get('quantity') or 0
|
||||
if getattr(line, 'unit', None):
|
||||
quantity = line.unit.round(quantity)
|
||||
line.quantity = quantity or 1
|
||||
|
||||
unit_price = line_data.get('unit_price')
|
||||
amount = line_data.get('amount')
|
||||
if unit_price is not None:
|
||||
line.unit_price = round_price(unit_price)
|
||||
elif amount is not None:
|
||||
line.unit_price = round_price(
|
||||
amount / Decimal(str(line.quantity)))
|
||||
else:
|
||||
line.unit_price = 0
|
||||
return line
|
||||
|
||||
def _process_supplier_invoice_tax(self, invoice, parsed_tax):
|
||||
pool = Pool()
|
||||
Tax = pool.get('account.tax')
|
||||
InvoiceTax = pool.get('account.invoice.tax')
|
||||
|
||||
invoice_tax = InvoiceTax(invoice=invoice, manual=True)
|
||||
|
||||
try:
|
||||
tax, = Tax.search([
|
||||
['OR',
|
||||
('group', '=', None),
|
||||
('group.kind', 'in', ['purchase', 'both']),
|
||||
],
|
||||
('company', '=', invoice.company.id),
|
||||
('type', '=', parsed_tax.get('type')),
|
||||
('amount', '=', parsed_tax.get('amount')),
|
||||
('rate', '=', parsed_tax.get('rate')),
|
||||
])
|
||||
except ValueError:
|
||||
logger.debug(f"Cannot find tax for '{parsed_tax}'")
|
||||
return
|
||||
invoice_tax.tax = tax.id
|
||||
invoice_tax.on_change_tax()
|
||||
|
||||
base = parsed_tax.get('base')
|
||||
if base is not None:
|
||||
invoice_tax.base = invoice.currency.round(base)
|
||||
invoice_tax.on_change_base()
|
||||
else:
|
||||
amount = parsed_tax.get('amount') or 0
|
||||
invoice_tax.base = 0
|
||||
invoice_tax.amount = invoice_tax.currency.round(amount)
|
||||
return invoice_tax
|
||||
|
||||
@property
|
||||
def supplier_invoice_company(self):
|
||||
pool = Pool()
|
||||
Company = pool.get('company.company')
|
||||
Party = pool.get('party.party')
|
||||
Identifier = pool.get('party.identifier')
|
||||
|
||||
company = super().supplier_invoice_company
|
||||
|
||||
if self.ocr_service:
|
||||
invoice_data = self.ocr_service.get_supplier_invoice(self)
|
||||
|
||||
company_name = invoice_data.get('company_name')
|
||||
if company_name:
|
||||
try:
|
||||
company, = Company.search([
|
||||
('party.rec_name', 'ilike', company_name),
|
||||
])
|
||||
except ValueError:
|
||||
logger.debug(f"Cannot find company '{company_name}'")
|
||||
|
||||
tax_identifier = invoice_data.get('company_tax_identifier')
|
||||
if tax_identifier:
|
||||
identifiers = Identifier.search([
|
||||
('code', '=', tax_identifier),
|
||||
('type', 'in', Party.tax_identifier_types()),
|
||||
])
|
||||
if len(identifiers) == 1:
|
||||
identifier, = identifiers
|
||||
try:
|
||||
company, = Company.search([
|
||||
('party', '=', identifier.party.id),
|
||||
])
|
||||
except ValueError:
|
||||
logger.debug(
|
||||
"Cannot find company for party "
|
||||
f"'{identifier.party.id}'")
|
||||
else:
|
||||
logger.debug(f"Cannot find company '{tax_identifier}'")
|
||||
return company
|
||||
|
||||
@property
|
||||
def supplier_invoice_party(self):
|
||||
pool = Pool()
|
||||
Party = pool.get('party.party')
|
||||
Identifier = pool.get('party.identifier')
|
||||
|
||||
party = super().supplier_invoice_party
|
||||
|
||||
if self.ocr_service:
|
||||
invoice_data = self.ocr_service.get_supplier_invoice(self)
|
||||
|
||||
supplier_name = invoice_data.get('supplier_name')
|
||||
if supplier_name:
|
||||
try:
|
||||
party, = Party.search([
|
||||
('rec_name', 'ilike', supplier_name),
|
||||
])
|
||||
except ValueError:
|
||||
logger.debug(f"Cannot find party '{supplier_name}'")
|
||||
|
||||
tax_identifier = invoice_data.get('tax_identifier')
|
||||
if tax_identifier:
|
||||
identifiers = Identifier.search([
|
||||
('code', '=', tax_identifier),
|
||||
('type', 'in', Party.tax_identifier_types()),
|
||||
])
|
||||
if len(identifiers) == 1:
|
||||
identifier, = identifiers
|
||||
party = identifier.party
|
||||
else:
|
||||
logger.debug(f"Cannot find party '{tax_identifier}'")
|
||||
return party
|
||||
|
||||
|
||||
class IncomingSupplierInvoicePurchase(metaclass=PoolMeta):
|
||||
__name__ = 'document.incoming'
|
||||
|
||||
def _process_supplier_invoice_line(self, invoice, line_data, invoice_data):
|
||||
pool = Pool()
|
||||
PurchaseLine = pool.get('purchase.line')
|
||||
UoM = pool.get('product.uom')
|
||||
|
||||
line = super()._process_supplier_invoice_line(
|
||||
invoice, line_data, invoice_data)
|
||||
|
||||
if (line and line.product and line.unit
|
||||
and (line_data.get('purchase_orders')
|
||||
or line_data.get('purchase_order'))):
|
||||
if line_data.get('purchase_order'):
|
||||
numbers = [line_data['purchase_order']]
|
||||
else:
|
||||
numbers = re.split(r'[ ,;]', line_data['purchase_orders'])
|
||||
purchase_lines = PurchaseLine.search([
|
||||
('purchase.company', '=', invoice.company),
|
||||
('purchase.rec_name', 'in', numbers),
|
||||
('type', '=', 'line'),
|
||||
('product', '=', line.product.id),
|
||||
])
|
||||
if purchase_lines:
|
||||
quantities = []
|
||||
for purchase_line in purchase_lines:
|
||||
quantity = UoM.compute_qty(
|
||||
purchase_line.unit, purchase_line.quantity, line.unit)
|
||||
quantities.append((quantity, purchase_line))
|
||||
key = itemgetter(0)
|
||||
quantities.sort(key=key)
|
||||
index = bisect.bisect_left(quantities, line.quantity, key=key)
|
||||
if index >= len(quantities):
|
||||
index = -1
|
||||
line.origin = str(quantities[index][1])
|
||||
return line
|
||||
|
||||
|
||||
class IncomingOCRService(sequence_ordered(), ModelSQL, ModelView, MatchMixin):
|
||||
__name__ = 'document.incoming.ocr.service'
|
||||
|
||||
type = fields.Selection([
|
||||
(None, ''),
|
||||
], "Type")
|
||||
company = fields.Many2One(
|
||||
'company.company', "Company",
|
||||
help="The company for which the service is used.\n"
|
||||
"Leave empty for any company.")
|
||||
source = fields.Char(
|
||||
"Source",
|
||||
help="The regular expression to match the document source.\n"
|
||||
"Leave empty to allow any source.")
|
||||
document_type = fields.Selection(
|
||||
'get_document_types', "Type",
|
||||
help="The document type to match.\n"
|
||||
"Leave empty for any type.")
|
||||
_get_service_cache = Cache(
|
||||
'document.incoming.ocr.service.get_service', context=False)
|
||||
|
||||
@classmethod
|
||||
def get_document_types(cls):
|
||||
pool = Pool()
|
||||
Incoming = pool.get('document.incoming')
|
||||
return Incoming.fields_get(['type'])['type']['selection']
|
||||
|
||||
@classmethod
|
||||
def get_service(cls, document):
|
||||
pattern = cls._get_pattern(document)
|
||||
key = tuple(sorted(pattern.items()))
|
||||
service_id = cls._get_service_cache.get(key, -1)
|
||||
if service_id is None:
|
||||
return None
|
||||
if service_id >= 0:
|
||||
return cls(service_id)
|
||||
for service in cls.search([]):
|
||||
if service.match(pattern):
|
||||
break
|
||||
else:
|
||||
service = None
|
||||
cls._get_service_cache.set(key, service.id if service else None)
|
||||
return service
|
||||
|
||||
@classmethod
|
||||
def _get_pattern(cls, document):
|
||||
return {
|
||||
'company': document.company.id if document.company else None,
|
||||
'source': document.source or None,
|
||||
'document_type': document.type or None,
|
||||
'mime_type': document.mime_type,
|
||||
}
|
||||
|
||||
def match(self, pattern):
|
||||
pattern = pattern.copy()
|
||||
source = pattern.pop('source', None)
|
||||
if (self.source
|
||||
and (not source
|
||||
or not re.search(self.source, source))):
|
||||
return False
|
||||
if not self.match_mime_type(pattern.pop('mime_type', None)):
|
||||
return False
|
||||
return super().match(pattern)
|
||||
|
||||
def match_mime_type(self, mime_type):
|
||||
return True
|
||||
|
||||
def process(self, document):
|
||||
if self.type:
|
||||
return getattr(self, f'_process_{self.type}')(document)
|
||||
|
||||
def get_document_incoming(self, document):
|
||||
if self.type:
|
||||
return getattr(
|
||||
self, f'_get_document_incoming_{self.type}')(document)
|
||||
else:
|
||||
return {}
|
||||
|
||||
def get_supplier_invoice(self, document):
|
||||
if self.type:
|
||||
return getattr(
|
||||
self, f'_get_supplier_invoice_{self.type}')(document)
|
||||
else:
|
||||
return {}
|
||||
|
||||
def send_feedback(self, document):
|
||||
if self.type:
|
||||
getattr(self, f'_send_feedback_{self.type}')(document)
|
||||
|
||||
@classmethod
|
||||
def on_modification(cls, mode, services, field_names=None):
|
||||
super().on_modification(mode, services, field_names=field_names)
|
||||
cls._get_service_cache.clear()
|
||||
90
modules/document_incoming_ocr/document.xml
Normal file
90
modules/document_incoming_ocr/document.xml
Normal file
@@ -0,0 +1,90 @@
|
||||
<?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="document_incoming_view_form">
|
||||
<field name="model">document.incoming</field>
|
||||
<field name="inherit" ref="document_incoming.document_incoming_view_form"/>
|
||||
<field name="name">document_incoming_form</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.model.button" id="document_incoming_proceed_button">
|
||||
<field name="model">document.incoming</field>
|
||||
<field name="name">ocr_send_feedback</field>
|
||||
<field name="string">Send Feedback</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="document_incoming_ocr_service_view_form">
|
||||
<field name="model">document.incoming.ocr.service</field>
|
||||
<field name="type">form</field>
|
||||
<field name="name">document_incoming_ocr_service_form</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="document_incoming_ocr_service_view_list">
|
||||
<field name="model">document.incoming.ocr.service</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="priority" eval="10"/>
|
||||
<field name="name">document_incoming_ocr_service_list</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="document_incoming_ocr_service_view_list_sequence">
|
||||
<field name="model">document.incoming.ocr.service</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="priority" eval="20"/>
|
||||
<field name="name">document_incoming_ocr_service_list_sequence</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.action.act_window" id="act_document_incoming_ocr_service_form">
|
||||
<field name="name">OCR Services</field>
|
||||
<field name="res_model">document.incoming.ocr.service</field>
|
||||
</record>
|
||||
<record model="ir.action.act_window.view" id="act_document_incoming_ocr_service_form_view1">
|
||||
<field name="sequence" eval="10"/>
|
||||
<field name="view" ref="document_incoming_ocr_service_view_list_sequence"/>
|
||||
<field name="act_window" ref="act_document_incoming_ocr_service_form"/>
|
||||
</record>
|
||||
<record model="ir.action.act_window.view" id="act_document_incoming_ocr_service_form_view2">
|
||||
<field name="sequence" eval="20"/>
|
||||
<field name="view" ref="document_incoming_ocr_service_view_form"/>
|
||||
<field name="act_window" ref="act_document_incoming_ocr_service_form"/>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
parent="document_incoming.menu_configuration"
|
||||
action="act_document_incoming_ocr_service_form"
|
||||
sequence="20"
|
||||
id="menu_document_incoming_ocr_service_form"/>
|
||||
|
||||
<record model="ir.model.access" id="access_document_incoming_ocr_service">
|
||||
<field name="model">document.incoming.ocr.service</field>
|
||||
<field name="perm_read" eval="False"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
<field name="perm_create" eval="False"/>
|
||||
<field name="perm_delete" eval="False"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.model.access" id="access_document_incoming_ocr_service_group_document_incoming_admin">
|
||||
<field name="model">document.incoming.ocr.service</field>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
<field name="perm_create" eval="True"/>
|
||||
<field name="perm_delete" eval="True"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule.group" id="rule_group_document_incoming_ocr_service_companies">
|
||||
<field name="name">User in companies</field>
|
||||
<field name="model">document.incoming.ocr.service</field>
|
||||
<field name="global_p" eval="True"/>
|
||||
</record>
|
||||
<record model="ir.rule" id="rule_document_incoming_ocr_service_companies1">
|
||||
<field name="domain" eval="[('company', 'in', Eval('companies', []))]" pyson="1"/>
|
||||
<field name="rule_group" ref="rule_group_document_incoming_ocr_service_companies"/>
|
||||
</record>
|
||||
<record model="ir.rule" id="rule_document_incoming_ocr_service_companies2">
|
||||
<field name="domain" eval="[('company', '=', None)]" pyson="1"/>
|
||||
<field name="rule_group" ref="rule_group_document_incoming_ocr_service_companies"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</tryton>
|
||||
66
modules/document_incoming_ocr/locale/bg.po
Normal file
66
modules/document_incoming_ocr/locale/bg.po
Normal file
@@ -0,0 +1,66 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:document.incoming,ocr_service:"
|
||||
msgid "OCR Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,company:"
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,document_type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,source:"
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,company:"
|
||||
msgid ""
|
||||
"The company for which the service is used.\n"
|
||||
"Leave empty for any company."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,document_type:"
|
||||
msgid ""
|
||||
"The document type to match.\n"
|
||||
"Leave empty for any type."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,source:"
|
||||
msgid ""
|
||||
"The regular expression to match the document source.\n"
|
||||
"Leave empty to allow any source."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:document.incoming.ocr.service,string:"
|
||||
msgid "Document Incoming Ocr Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:document_incoming_proceed_button"
|
||||
msgid "Send Feedback"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.rule.group,name:rule_group_document_incoming_ocr_service_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:document.incoming.ocr.service:"
|
||||
msgid "Criteria"
|
||||
msgstr ""
|
||||
72
modules/document_incoming_ocr/locale/ca.po
Normal file
72
modules/document_incoming_ocr/locale/ca.po
Normal file
@@ -0,0 +1,72 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:document.incoming,ocr_service:"
|
||||
msgid "OCR Service"
|
||||
msgstr "Servei OCR"
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,company:"
|
||||
msgid "Company"
|
||||
msgstr "Empresa"
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,document_type:"
|
||||
msgid "Type"
|
||||
msgstr "Tipus"
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,source:"
|
||||
msgid "Source"
|
||||
msgstr "Origen"
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,type:"
|
||||
msgid "Type"
|
||||
msgstr "Tipus"
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,company:"
|
||||
msgid ""
|
||||
"The company for which the service is used.\n"
|
||||
"Leave empty for any company."
|
||||
msgstr ""
|
||||
"L'empresa que en la que s'utilitzarà el servei.\n"
|
||||
"Deixeu-ho en blanc per totes les empreses."
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,document_type:"
|
||||
msgid ""
|
||||
"The document type to match.\n"
|
||||
"Leave empty for any type."
|
||||
msgstr ""
|
||||
"El tipus de document a coincidir.\n"
|
||||
"Deixeu-ho en blanc per tots els tipus."
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,source:"
|
||||
msgid ""
|
||||
"The regular expression to match the document source.\n"
|
||||
"Leave empty to allow any source."
|
||||
msgstr ""
|
||||
"L'expressió regular a coincidir amb l'origen del document.\n"
|
||||
"Deixeu-ho en blanc per tots els origens."
|
||||
|
||||
msgctxt "model:document.incoming.ocr.service,string:"
|
||||
msgid "Document Incoming Ocr Service"
|
||||
msgstr "Servei OCR de documents entrants"
|
||||
|
||||
msgctxt "model:ir.action,name:act_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr "Serveis OCR"
|
||||
|
||||
msgctxt "model:ir.model.button,string:document_incoming_proceed_button"
|
||||
msgid "Send Feedback"
|
||||
msgstr "Envia feedback"
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.rule.group,name:rule_group_document_incoming_ocr_service_companies"
|
||||
msgid "User in companies"
|
||||
msgstr "Usuari a les empreses"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr "Serveis OCR"
|
||||
|
||||
msgctxt "view:document.incoming.ocr.service:"
|
||||
msgid "Criteria"
|
||||
msgstr "Criteri"
|
||||
66
modules/document_incoming_ocr/locale/cs.po
Normal file
66
modules/document_incoming_ocr/locale/cs.po
Normal file
@@ -0,0 +1,66 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:document.incoming,ocr_service:"
|
||||
msgid "OCR Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,company:"
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,document_type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,source:"
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,company:"
|
||||
msgid ""
|
||||
"The company for which the service is used.\n"
|
||||
"Leave empty for any company."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,document_type:"
|
||||
msgid ""
|
||||
"The document type to match.\n"
|
||||
"Leave empty for any type."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,source:"
|
||||
msgid ""
|
||||
"The regular expression to match the document source.\n"
|
||||
"Leave empty to allow any source."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:document.incoming.ocr.service,string:"
|
||||
msgid "Document Incoming Ocr Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:document_incoming_proceed_button"
|
||||
msgid "Send Feedback"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.rule.group,name:rule_group_document_incoming_ocr_service_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:document.incoming.ocr.service:"
|
||||
msgid "Criteria"
|
||||
msgstr ""
|
||||
72
modules/document_incoming_ocr/locale/de.po
Normal file
72
modules/document_incoming_ocr/locale/de.po
Normal file
@@ -0,0 +1,72 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:document.incoming,ocr_service:"
|
||||
msgid "OCR Service"
|
||||
msgstr "OCR Schrifterkennungsdienst"
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,company:"
|
||||
msgid "Company"
|
||||
msgstr "Unternehmen"
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,document_type:"
|
||||
msgid "Type"
|
||||
msgstr "Typ"
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,source:"
|
||||
msgid "Source"
|
||||
msgstr "Quelle"
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,type:"
|
||||
msgid "Type"
|
||||
msgstr "Typ"
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,company:"
|
||||
msgid ""
|
||||
"The company for which the service is used.\n"
|
||||
"Leave empty for any company."
|
||||
msgstr ""
|
||||
"Das Unternehmen für das der Service genutzt wird.\n"
|
||||
"Leer lassen für alle Unternehmen."
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,document_type:"
|
||||
msgid ""
|
||||
"The document type to match.\n"
|
||||
"Leave empty for any type."
|
||||
msgstr ""
|
||||
"Auswahl des passenden Dokumententyps.\n"
|
||||
"Leer lassen für jeden Typ."
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,source:"
|
||||
msgid ""
|
||||
"The regular expression to match the document source.\n"
|
||||
"Leave empty to allow any source."
|
||||
msgstr ""
|
||||
"Der reguläre Ausdruck dem die Dokumentenquelle entsprechen muss.\n"
|
||||
"Leer lassen um jede Dokumentenquelle zuzulassen."
|
||||
|
||||
msgctxt "model:document.incoming.ocr.service,string:"
|
||||
msgid "Document Incoming Ocr Service"
|
||||
msgstr "Eingehendes Dokument OCR Schrifterkennungsdienst"
|
||||
|
||||
msgctxt "model:ir.action,name:act_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr "OCR Schrifterkennungsservice"
|
||||
|
||||
msgctxt "model:ir.model.button,string:document_incoming_proceed_button"
|
||||
msgid "Send Feedback"
|
||||
msgstr "Feedback senden"
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.rule.group,name:rule_group_document_incoming_ocr_service_companies"
|
||||
msgid "User in companies"
|
||||
msgstr "Benutzer in Unternehmen"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr "OCR Schrifterkennungsservice"
|
||||
|
||||
msgctxt "view:document.incoming.ocr.service:"
|
||||
msgid "Criteria"
|
||||
msgstr "Kriterien"
|
||||
72
modules/document_incoming_ocr/locale/es.po
Normal file
72
modules/document_incoming_ocr/locale/es.po
Normal file
@@ -0,0 +1,72 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:document.incoming,ocr_service:"
|
||||
msgid "OCR Service"
|
||||
msgstr "Servicio OCR"
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,company:"
|
||||
msgid "Company"
|
||||
msgstr "Empresa"
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,document_type:"
|
||||
msgid "Type"
|
||||
msgstr "Tipo"
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,source:"
|
||||
msgid "Source"
|
||||
msgstr "Origen"
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,type:"
|
||||
msgid "Type"
|
||||
msgstr "Tipo"
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,company:"
|
||||
msgid ""
|
||||
"The company for which the service is used.\n"
|
||||
"Leave empty for any company."
|
||||
msgstr ""
|
||||
"La empresa en la que se usa el servicio.\n"
|
||||
"Dejar en blanco para todas las empresas."
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,document_type:"
|
||||
msgid ""
|
||||
"The document type to match.\n"
|
||||
"Leave empty for any type."
|
||||
msgstr ""
|
||||
"El tipo de documento a coinicidir.\n"
|
||||
"Dejar en blanco para todos los tipos."
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,source:"
|
||||
msgid ""
|
||||
"The regular expression to match the document source.\n"
|
||||
"Leave empty to allow any source."
|
||||
msgstr ""
|
||||
"La expresión regular a coincidir con el origen del documento.\n"
|
||||
"Dejar en blanco para cualquier origen."
|
||||
|
||||
msgctxt "model:document.incoming.ocr.service,string:"
|
||||
msgid "Document Incoming Ocr Service"
|
||||
msgstr "Servicio OCR de documentos entrantes"
|
||||
|
||||
msgctxt "model:ir.action,name:act_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr "Servicios OCR"
|
||||
|
||||
msgctxt "model:ir.model.button,string:document_incoming_proceed_button"
|
||||
msgid "Send Feedback"
|
||||
msgstr "Enviar feedback"
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.rule.group,name:rule_group_document_incoming_ocr_service_companies"
|
||||
msgid "User in companies"
|
||||
msgstr "Usuario en las empresas"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr "Servicios OCR"
|
||||
|
||||
msgctxt "view:document.incoming.ocr.service:"
|
||||
msgid "Criteria"
|
||||
msgstr "Criterio"
|
||||
66
modules/document_incoming_ocr/locale/es_419.po
Normal file
66
modules/document_incoming_ocr/locale/es_419.po
Normal file
@@ -0,0 +1,66 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:document.incoming,ocr_service:"
|
||||
msgid "OCR Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,company:"
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,document_type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,source:"
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,company:"
|
||||
msgid ""
|
||||
"The company for which the service is used.\n"
|
||||
"Leave empty for any company."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,document_type:"
|
||||
msgid ""
|
||||
"The document type to match.\n"
|
||||
"Leave empty for any type."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,source:"
|
||||
msgid ""
|
||||
"The regular expression to match the document source.\n"
|
||||
"Leave empty to allow any source."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:document.incoming.ocr.service,string:"
|
||||
msgid "Document Incoming Ocr Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:document_incoming_proceed_button"
|
||||
msgid "Send Feedback"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.rule.group,name:rule_group_document_incoming_ocr_service_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:document.incoming.ocr.service:"
|
||||
msgid "Criteria"
|
||||
msgstr ""
|
||||
66
modules/document_incoming_ocr/locale/et.po
Normal file
66
modules/document_incoming_ocr/locale/et.po
Normal file
@@ -0,0 +1,66 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:document.incoming,ocr_service:"
|
||||
msgid "OCR Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,company:"
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,document_type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,source:"
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,company:"
|
||||
msgid ""
|
||||
"The company for which the service is used.\n"
|
||||
"Leave empty for any company."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,document_type:"
|
||||
msgid ""
|
||||
"The document type to match.\n"
|
||||
"Leave empty for any type."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,source:"
|
||||
msgid ""
|
||||
"The regular expression to match the document source.\n"
|
||||
"Leave empty to allow any source."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:document.incoming.ocr.service,string:"
|
||||
msgid "Document Incoming Ocr Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:document_incoming_proceed_button"
|
||||
msgid "Send Feedback"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.rule.group,name:rule_group_document_incoming_ocr_service_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:document.incoming.ocr.service:"
|
||||
msgid "Criteria"
|
||||
msgstr ""
|
||||
66
modules/document_incoming_ocr/locale/fa.po
Normal file
66
modules/document_incoming_ocr/locale/fa.po
Normal file
@@ -0,0 +1,66 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:document.incoming,ocr_service:"
|
||||
msgid "OCR Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,company:"
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,document_type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,source:"
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,company:"
|
||||
msgid ""
|
||||
"The company for which the service is used.\n"
|
||||
"Leave empty for any company."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,document_type:"
|
||||
msgid ""
|
||||
"The document type to match.\n"
|
||||
"Leave empty for any type."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,source:"
|
||||
msgid ""
|
||||
"The regular expression to match the document source.\n"
|
||||
"Leave empty to allow any source."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:document.incoming.ocr.service,string:"
|
||||
msgid "Document Incoming Ocr Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:document_incoming_proceed_button"
|
||||
msgid "Send Feedback"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.rule.group,name:rule_group_document_incoming_ocr_service_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:document.incoming.ocr.service:"
|
||||
msgid "Criteria"
|
||||
msgstr ""
|
||||
66
modules/document_incoming_ocr/locale/fi.po
Normal file
66
modules/document_incoming_ocr/locale/fi.po
Normal file
@@ -0,0 +1,66 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:document.incoming,ocr_service:"
|
||||
msgid "OCR Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,company:"
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,document_type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,source:"
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,company:"
|
||||
msgid ""
|
||||
"The company for which the service is used.\n"
|
||||
"Leave empty for any company."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,document_type:"
|
||||
msgid ""
|
||||
"The document type to match.\n"
|
||||
"Leave empty for any type."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,source:"
|
||||
msgid ""
|
||||
"The regular expression to match the document source.\n"
|
||||
"Leave empty to allow any source."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:document.incoming.ocr.service,string:"
|
||||
msgid "Document Incoming Ocr Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:document_incoming_proceed_button"
|
||||
msgid "Send Feedback"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.rule.group,name:rule_group_document_incoming_ocr_service_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:document.incoming.ocr.service:"
|
||||
msgid "Criteria"
|
||||
msgstr ""
|
||||
72
modules/document_incoming_ocr/locale/fr.po
Normal file
72
modules/document_incoming_ocr/locale/fr.po
Normal file
@@ -0,0 +1,72 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:document.incoming,ocr_service:"
|
||||
msgid "OCR Service"
|
||||
msgstr "Service ROC"
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,company:"
|
||||
msgid "Company"
|
||||
msgstr "Société"
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,document_type:"
|
||||
msgid "Type"
|
||||
msgstr "Type"
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,source:"
|
||||
msgid "Source"
|
||||
msgstr "Source"
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,type:"
|
||||
msgid "Type"
|
||||
msgstr "Type"
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,company:"
|
||||
msgid ""
|
||||
"The company for which the service is used.\n"
|
||||
"Leave empty for any company."
|
||||
msgstr ""
|
||||
"La société pour laquelle le service est utilisé.\n"
|
||||
"Laissez vide pour n'importe quelle société."
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,document_type:"
|
||||
msgid ""
|
||||
"The document type to match.\n"
|
||||
"Leave empty for any type."
|
||||
msgstr ""
|
||||
"Le type de document à faire correspondre.\n"
|
||||
"Laissez vide pour n’importe quel type."
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,source:"
|
||||
msgid ""
|
||||
"The regular expression to match the document source.\n"
|
||||
"Leave empty to allow any source."
|
||||
msgstr ""
|
||||
"L'expression régulière correspondant à la source du document.\n"
|
||||
"Laissez vide pour autoriser n’importe quelle source."
|
||||
|
||||
msgctxt "model:document.incoming.ocr.service,string:"
|
||||
msgid "Document Incoming Ocr Service"
|
||||
msgstr "Service ROC de document entrant"
|
||||
|
||||
msgctxt "model:ir.action,name:act_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr "Services ROC"
|
||||
|
||||
msgctxt "model:ir.model.button,string:document_incoming_proceed_button"
|
||||
msgid "Send Feedback"
|
||||
msgstr "Envoyer des retours"
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.rule.group,name:rule_group_document_incoming_ocr_service_companies"
|
||||
msgid "User in companies"
|
||||
msgstr "Utilisateur dans les sociétés"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr "Services ROC"
|
||||
|
||||
msgctxt "view:document.incoming.ocr.service:"
|
||||
msgid "Criteria"
|
||||
msgstr "Critères"
|
||||
66
modules/document_incoming_ocr/locale/hu.po
Normal file
66
modules/document_incoming_ocr/locale/hu.po
Normal file
@@ -0,0 +1,66 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:document.incoming,ocr_service:"
|
||||
msgid "OCR Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,company:"
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,document_type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,source:"
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,company:"
|
||||
msgid ""
|
||||
"The company for which the service is used.\n"
|
||||
"Leave empty for any company."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,document_type:"
|
||||
msgid ""
|
||||
"The document type to match.\n"
|
||||
"Leave empty for any type."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,source:"
|
||||
msgid ""
|
||||
"The regular expression to match the document source.\n"
|
||||
"Leave empty to allow any source."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:document.incoming.ocr.service,string:"
|
||||
msgid "Document Incoming Ocr Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:document_incoming_proceed_button"
|
||||
msgid "Send Feedback"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.rule.group,name:rule_group_document_incoming_ocr_service_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:document.incoming.ocr.service:"
|
||||
msgid "Criteria"
|
||||
msgstr ""
|
||||
66
modules/document_incoming_ocr/locale/id.po
Normal file
66
modules/document_incoming_ocr/locale/id.po
Normal file
@@ -0,0 +1,66 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:document.incoming,ocr_service:"
|
||||
msgid "OCR Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,company:"
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,document_type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,source:"
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,company:"
|
||||
msgid ""
|
||||
"The company for which the service is used.\n"
|
||||
"Leave empty for any company."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,document_type:"
|
||||
msgid ""
|
||||
"The document type to match.\n"
|
||||
"Leave empty for any type."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,source:"
|
||||
msgid ""
|
||||
"The regular expression to match the document source.\n"
|
||||
"Leave empty to allow any source."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:document.incoming.ocr.service,string:"
|
||||
msgid "Document Incoming Ocr Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:document_incoming_proceed_button"
|
||||
msgid "Send Feedback"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.rule.group,name:rule_group_document_incoming_ocr_service_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:document.incoming.ocr.service:"
|
||||
msgid "Criteria"
|
||||
msgstr ""
|
||||
66
modules/document_incoming_ocr/locale/it.po
Normal file
66
modules/document_incoming_ocr/locale/it.po
Normal file
@@ -0,0 +1,66 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:document.incoming,ocr_service:"
|
||||
msgid "OCR Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,company:"
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,document_type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,source:"
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,company:"
|
||||
msgid ""
|
||||
"The company for which the service is used.\n"
|
||||
"Leave empty for any company."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,document_type:"
|
||||
msgid ""
|
||||
"The document type to match.\n"
|
||||
"Leave empty for any type."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,source:"
|
||||
msgid ""
|
||||
"The regular expression to match the document source.\n"
|
||||
"Leave empty to allow any source."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:document.incoming.ocr.service,string:"
|
||||
msgid "Document Incoming Ocr Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:document_incoming_proceed_button"
|
||||
msgid "Send Feedback"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.rule.group,name:rule_group_document_incoming_ocr_service_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:document.incoming.ocr.service:"
|
||||
msgid "Criteria"
|
||||
msgstr ""
|
||||
66
modules/document_incoming_ocr/locale/lo.po
Normal file
66
modules/document_incoming_ocr/locale/lo.po
Normal file
@@ -0,0 +1,66 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:document.incoming,ocr_service:"
|
||||
msgid "OCR Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,company:"
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,document_type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,source:"
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,company:"
|
||||
msgid ""
|
||||
"The company for which the service is used.\n"
|
||||
"Leave empty for any company."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,document_type:"
|
||||
msgid ""
|
||||
"The document type to match.\n"
|
||||
"Leave empty for any type."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,source:"
|
||||
msgid ""
|
||||
"The regular expression to match the document source.\n"
|
||||
"Leave empty to allow any source."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:document.incoming.ocr.service,string:"
|
||||
msgid "Document Incoming Ocr Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:document_incoming_proceed_button"
|
||||
msgid "Send Feedback"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.rule.group,name:rule_group_document_incoming_ocr_service_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:document.incoming.ocr.service:"
|
||||
msgid "Criteria"
|
||||
msgstr ""
|
||||
66
modules/document_incoming_ocr/locale/lt.po
Normal file
66
modules/document_incoming_ocr/locale/lt.po
Normal file
@@ -0,0 +1,66 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:document.incoming,ocr_service:"
|
||||
msgid "OCR Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,company:"
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,document_type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,source:"
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,company:"
|
||||
msgid ""
|
||||
"The company for which the service is used.\n"
|
||||
"Leave empty for any company."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,document_type:"
|
||||
msgid ""
|
||||
"The document type to match.\n"
|
||||
"Leave empty for any type."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,source:"
|
||||
msgid ""
|
||||
"The regular expression to match the document source.\n"
|
||||
"Leave empty to allow any source."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:document.incoming.ocr.service,string:"
|
||||
msgid "Document Incoming Ocr Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:document_incoming_proceed_button"
|
||||
msgid "Send Feedback"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.rule.group,name:rule_group_document_incoming_ocr_service_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:document.incoming.ocr.service:"
|
||||
msgid "Criteria"
|
||||
msgstr ""
|
||||
72
modules/document_incoming_ocr/locale/nl.po
Normal file
72
modules/document_incoming_ocr/locale/nl.po
Normal file
@@ -0,0 +1,72 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:document.incoming,ocr_service:"
|
||||
msgid "OCR Service"
|
||||
msgstr "OCR service"
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,company:"
|
||||
msgid "Company"
|
||||
msgstr "Bedrijf"
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,document_type:"
|
||||
msgid "Type"
|
||||
msgstr "Soort"
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,source:"
|
||||
msgid "Source"
|
||||
msgstr "Bron"
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,type:"
|
||||
msgid "Type"
|
||||
msgstr "Soort"
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,company:"
|
||||
msgid ""
|
||||
"The company for which the service is used.\n"
|
||||
"Leave empty for any company."
|
||||
msgstr ""
|
||||
"Het bedrijf waarvoor de dienst wordt gebruikt.\n"
|
||||
"Laat leeg voor elk bedrijf."
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,document_type:"
|
||||
msgid ""
|
||||
"The document type to match.\n"
|
||||
"Leave empty for any type."
|
||||
msgstr ""
|
||||
"Het bijpassende soort document.\n"
|
||||
"Laat leeg voor elke soort."
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,source:"
|
||||
msgid ""
|
||||
"The regular expression to match the document source.\n"
|
||||
"Leave empty to allow any source."
|
||||
msgstr ""
|
||||
"De reguliere expressie die overeenkomt met de documentbron.\n"
|
||||
"Laat leeg om elke bron toe te staan."
|
||||
|
||||
msgctxt "model:document.incoming.ocr.service,string:"
|
||||
msgid "Document Incoming Ocr Service"
|
||||
msgstr "OCR service voor inkomende documenten"
|
||||
|
||||
msgctxt "model:ir.action,name:act_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr "OCR services"
|
||||
|
||||
msgctxt "model:ir.model.button,string:document_incoming_proceed_button"
|
||||
msgid "Send Feedback"
|
||||
msgstr "Feedback verzenden"
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.rule.group,name:rule_group_document_incoming_ocr_service_companies"
|
||||
msgid "User in companies"
|
||||
msgstr "Gebruiker in bedrijven"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr "OCR services"
|
||||
|
||||
msgctxt "view:document.incoming.ocr.service:"
|
||||
msgid "Criteria"
|
||||
msgstr "Criteria"
|
||||
66
modules/document_incoming_ocr/locale/pl.po
Normal file
66
modules/document_incoming_ocr/locale/pl.po
Normal file
@@ -0,0 +1,66 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:document.incoming,ocr_service:"
|
||||
msgid "OCR Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,company:"
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,document_type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,source:"
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,company:"
|
||||
msgid ""
|
||||
"The company for which the service is used.\n"
|
||||
"Leave empty for any company."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,document_type:"
|
||||
msgid ""
|
||||
"The document type to match.\n"
|
||||
"Leave empty for any type."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,source:"
|
||||
msgid ""
|
||||
"The regular expression to match the document source.\n"
|
||||
"Leave empty to allow any source."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:document.incoming.ocr.service,string:"
|
||||
msgid "Document Incoming Ocr Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:document_incoming_proceed_button"
|
||||
msgid "Send Feedback"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.rule.group,name:rule_group_document_incoming_ocr_service_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:document.incoming.ocr.service:"
|
||||
msgid "Criteria"
|
||||
msgstr ""
|
||||
66
modules/document_incoming_ocr/locale/pt.po
Normal file
66
modules/document_incoming_ocr/locale/pt.po
Normal file
@@ -0,0 +1,66 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:document.incoming,ocr_service:"
|
||||
msgid "OCR Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,company:"
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,document_type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,source:"
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,company:"
|
||||
msgid ""
|
||||
"The company for which the service is used.\n"
|
||||
"Leave empty for any company."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,document_type:"
|
||||
msgid ""
|
||||
"The document type to match.\n"
|
||||
"Leave empty for any type."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,source:"
|
||||
msgid ""
|
||||
"The regular expression to match the document source.\n"
|
||||
"Leave empty to allow any source."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:document.incoming.ocr.service,string:"
|
||||
msgid "Document Incoming Ocr Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:document_incoming_proceed_button"
|
||||
msgid "Send Feedback"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.rule.group,name:rule_group_document_incoming_ocr_service_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:document.incoming.ocr.service:"
|
||||
msgid "Criteria"
|
||||
msgstr ""
|
||||
66
modules/document_incoming_ocr/locale/ro.po
Normal file
66
modules/document_incoming_ocr/locale/ro.po
Normal file
@@ -0,0 +1,66 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:document.incoming,ocr_service:"
|
||||
msgid "OCR Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,company:"
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,document_type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,source:"
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,company:"
|
||||
msgid ""
|
||||
"The company for which the service is used.\n"
|
||||
"Leave empty for any company."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,document_type:"
|
||||
msgid ""
|
||||
"The document type to match.\n"
|
||||
"Leave empty for any type."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,source:"
|
||||
msgid ""
|
||||
"The regular expression to match the document source.\n"
|
||||
"Leave empty to allow any source."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:document.incoming.ocr.service,string:"
|
||||
msgid "Document Incoming Ocr Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:document_incoming_proceed_button"
|
||||
msgid "Send Feedback"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.rule.group,name:rule_group_document_incoming_ocr_service_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:document.incoming.ocr.service:"
|
||||
msgid "Criteria"
|
||||
msgstr ""
|
||||
66
modules/document_incoming_ocr/locale/ru.po
Normal file
66
modules/document_incoming_ocr/locale/ru.po
Normal file
@@ -0,0 +1,66 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:document.incoming,ocr_service:"
|
||||
msgid "OCR Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,company:"
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,document_type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,source:"
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,company:"
|
||||
msgid ""
|
||||
"The company for which the service is used.\n"
|
||||
"Leave empty for any company."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,document_type:"
|
||||
msgid ""
|
||||
"The document type to match.\n"
|
||||
"Leave empty for any type."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,source:"
|
||||
msgid ""
|
||||
"The regular expression to match the document source.\n"
|
||||
"Leave empty to allow any source."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:document.incoming.ocr.service,string:"
|
||||
msgid "Document Incoming Ocr Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:document_incoming_proceed_button"
|
||||
msgid "Send Feedback"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.rule.group,name:rule_group_document_incoming_ocr_service_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:document.incoming.ocr.service:"
|
||||
msgid "Criteria"
|
||||
msgstr ""
|
||||
70
modules/document_incoming_ocr/locale/sl.po
Normal file
70
modules/document_incoming_ocr/locale/sl.po
Normal file
@@ -0,0 +1,70 @@
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:document.incoming,ocr_service:"
|
||||
msgid "OCR Service"
|
||||
msgstr "Storitev OCR"
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,company:"
|
||||
msgid "Company"
|
||||
msgstr "Družba"
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,document_type:"
|
||||
msgid "Type"
|
||||
msgstr "Vrsta"
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,source:"
|
||||
msgid "Source"
|
||||
msgstr "Izvor"
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,type:"
|
||||
msgid "Type"
|
||||
msgstr "Vrsta"
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,company:"
|
||||
msgid ""
|
||||
"The company for which the service is used.\n"
|
||||
"Leave empty for any company."
|
||||
msgstr ""
|
||||
"Družba, ki uporablja storitev.\n"
|
||||
"Pustite prazno za vse družbe."
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,document_type:"
|
||||
msgid ""
|
||||
"The document type to match.\n"
|
||||
"Leave empty for any type."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,source:"
|
||||
msgid ""
|
||||
"The regular expression to match the document source.\n"
|
||||
"Leave empty to allow any source."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:document.incoming.ocr.service,string:"
|
||||
msgid "Document Incoming Ocr Service"
|
||||
msgstr "Storitev OCR vhodnih dokumentov"
|
||||
|
||||
msgctxt "model:ir.action,name:act_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr "Storitve OCR"
|
||||
|
||||
msgctxt "model:ir.model.button,string:document_incoming_proceed_button"
|
||||
msgid "Send Feedback"
|
||||
msgstr "Pošlji povratno informacijo"
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.rule.group,name:rule_group_document_incoming_ocr_service_companies"
|
||||
msgid "User in companies"
|
||||
msgstr "Uporabnik v družbah"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr "Storitve OCR"
|
||||
|
||||
msgctxt "view:document.incoming.ocr.service:"
|
||||
msgid "Criteria"
|
||||
msgstr "Kriterij"
|
||||
66
modules/document_incoming_ocr/locale/tr.po
Normal file
66
modules/document_incoming_ocr/locale/tr.po
Normal file
@@ -0,0 +1,66 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:document.incoming,ocr_service:"
|
||||
msgid "OCR Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,company:"
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,document_type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,source:"
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,company:"
|
||||
msgid ""
|
||||
"The company for which the service is used.\n"
|
||||
"Leave empty for any company."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,document_type:"
|
||||
msgid ""
|
||||
"The document type to match.\n"
|
||||
"Leave empty for any type."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,source:"
|
||||
msgid ""
|
||||
"The regular expression to match the document source.\n"
|
||||
"Leave empty to allow any source."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:document.incoming.ocr.service,string:"
|
||||
msgid "Document Incoming Ocr Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:document_incoming_proceed_button"
|
||||
msgid "Send Feedback"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.rule.group,name:rule_group_document_incoming_ocr_service_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:document.incoming.ocr.service:"
|
||||
msgid "Criteria"
|
||||
msgstr ""
|
||||
66
modules/document_incoming_ocr/locale/uk.po
Normal file
66
modules/document_incoming_ocr/locale/uk.po
Normal file
@@ -0,0 +1,66 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:document.incoming,ocr_service:"
|
||||
msgid "OCR Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,company:"
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,document_type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,source:"
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,company:"
|
||||
msgid ""
|
||||
"The company for which the service is used.\n"
|
||||
"Leave empty for any company."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,document_type:"
|
||||
msgid ""
|
||||
"The document type to match.\n"
|
||||
"Leave empty for any type."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,source:"
|
||||
msgid ""
|
||||
"The regular expression to match the document source.\n"
|
||||
"Leave empty to allow any source."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:document.incoming.ocr.service,string:"
|
||||
msgid "Document Incoming Ocr Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:document_incoming_proceed_button"
|
||||
msgid "Send Feedback"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.rule.group,name:rule_group_document_incoming_ocr_service_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:document.incoming.ocr.service:"
|
||||
msgid "Criteria"
|
||||
msgstr ""
|
||||
66
modules/document_incoming_ocr/locale/zh_CN.po
Normal file
66
modules/document_incoming_ocr/locale/zh_CN.po
Normal file
@@ -0,0 +1,66 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:document.incoming,ocr_service:"
|
||||
msgid "OCR Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,company:"
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,document_type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,source:"
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:document.incoming.ocr.service,type:"
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,company:"
|
||||
msgid ""
|
||||
"The company for which the service is used.\n"
|
||||
"Leave empty for any company."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,document_type:"
|
||||
msgid ""
|
||||
"The document type to match.\n"
|
||||
"Leave empty for any type."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:document.incoming.ocr.service,source:"
|
||||
msgid ""
|
||||
"The regular expression to match the document source.\n"
|
||||
"Leave empty to allow any source."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:document.incoming.ocr.service,string:"
|
||||
msgid "Document Incoming Ocr Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:document_incoming_proceed_button"
|
||||
msgid "Send Feedback"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.rule.group,name:rule_group_document_incoming_ocr_service_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_document_incoming_ocr_service_form"
|
||||
msgid "OCR Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:document.incoming.ocr.service:"
|
||||
msgid "Criteria"
|
||||
msgstr ""
|
||||
2
modules/document_incoming_ocr/tests/__init__.py
Normal file
2
modules/document_incoming_ocr/tests/__init__.py
Normal 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.
|
||||
Binary file not shown.
Binary file not shown.
34
modules/document_incoming_ocr/tests/test_module.py
Normal file
34
modules/document_incoming_ocr/tests/test_module.py
Normal file
@@ -0,0 +1,34 @@
|
||||
# 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.modules.company.tests import CompanyTestMixin
|
||||
from trytond.pool import Pool
|
||||
from trytond.tests.test_tryton import ModuleTestCase, with_transaction
|
||||
|
||||
|
||||
class DocumentIncomingOcrTestCase(CompanyTestMixin, ModuleTestCase):
|
||||
"Test Document Incoming Ocr module"
|
||||
module = 'document_incoming_ocr'
|
||||
|
||||
@with_transaction()
|
||||
def test_service_match(self):
|
||||
"Test Service match"
|
||||
pool = Pool()
|
||||
Service = pool.get('document.incoming.ocr.service')
|
||||
|
||||
for service, pattern, result in [
|
||||
(Service(source=None), {}, True),
|
||||
(Service(source='test'), {}, False),
|
||||
(Service(source='test'), {'source': 'test'}, True),
|
||||
(Service(source='test'), {'source': None}, False),
|
||||
(Service(source='test'), {'source': 'test source'}, True),
|
||||
(Service(source='Test'), {'source': 'test'}, False),
|
||||
(Service(source='(?i)test'), {'source': 'Test'}, True),
|
||||
(Service(source='test$'), {'source': 'test source'}, False),
|
||||
(Service(source='test$'), {'source': 'source test'}, True),
|
||||
]:
|
||||
with self.subTest(service=service, pattern=pattern):
|
||||
self.assertEqual(service.match(pattern), result)
|
||||
|
||||
|
||||
del ModuleTestCase
|
||||
28
modules/document_incoming_ocr/tryton.cfg
Normal file
28
modules/document_incoming_ocr/tryton.cfg
Normal file
@@ -0,0 +1,28 @@
|
||||
[tryton]
|
||||
version=7.8.1
|
||||
depends:
|
||||
company
|
||||
document_incoming
|
||||
ir
|
||||
extras_depend:
|
||||
account_invoice
|
||||
account_product
|
||||
document_incoming_invoice
|
||||
product
|
||||
purchase
|
||||
xml:
|
||||
document.xml
|
||||
|
||||
[register]
|
||||
model:
|
||||
document.Incoming
|
||||
document.IncomingOCRService
|
||||
|
||||
[register account_invoice account_product document_incoming_invoice product]
|
||||
model:
|
||||
account.Invoice
|
||||
document.IncomingSupplierInvoice
|
||||
|
||||
[register purchase]
|
||||
model:
|
||||
document.IncomingSupplierInvoicePurchase
|
||||
@@ -0,0 +1,13 @@
|
||||
<?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='type']" position="after">
|
||||
<label name="ocr_service"/>
|
||||
<field name="ocr_service"/>
|
||||
<newline/>
|
||||
</xpath>
|
||||
<xpath expr="//button[@name='proceed']" position="after">
|
||||
<button name="ocr_send_feedback" icon="tryton-send"/>
|
||||
</xpath>
|
||||
</data>
|
||||
@@ -0,0 +1,18 @@
|
||||
<?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. -->
|
||||
<form>
|
||||
<label name="type"/>
|
||||
<field name="type"/>
|
||||
<label name="sequence"/>
|
||||
<field name="sequence"/>
|
||||
|
||||
<separator string="Criteria" id="criteria" colspan="4"/>
|
||||
<label name="source"/>
|
||||
<field name="source"/>
|
||||
<label name="company"/>
|
||||
<field name="company"/>
|
||||
|
||||
<label name="document_type"/>
|
||||
<field name="document_type"/>
|
||||
</form>
|
||||
@@ -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. -->
|
||||
<tree>
|
||||
<field name="company" expand="1" optional="1"/>
|
||||
<field name="source" expand="1" optional="0"/>
|
||||
<field name="document_type" expand="1" optional="0"/>
|
||||
<field name="type" expand="2"/>
|
||||
</tree>
|
||||
@@ -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. -->
|
||||
<tree sequence="sequence">
|
||||
<field name="company" expand="1" optional="1"/>
|
||||
<field name="source" expand="1" optional="0"/>
|
||||
<field name="document_type" expand="1" optional="0"/>
|
||||
<field name="type" expand="2"/>
|
||||
</tree>
|
||||
Reference in New Issue
Block a user