trytond_project_invoice-5.0.1/0000755000175000017500000000000013433070002015762 5ustar cedced00000000000000trytond_project_invoice-5.0.1/CHANGELOG0000644000175000017500000000213113433070000017167 0ustar cedced00000000000000Version 5.0.1 - 2019-02-19 * Bug fixes (see mercurial logs for details) Version 5.0.0 - 2018-10-01 * Bug fixes (see mercurial logs for details) * Remove support for Python 2.7 Version 4.8.0 - 2018-04-23 * Bug fixes (see mercurial logs for details) * Allow to invoice at once sub-projects with a different party Version 4.6.0 - 2017-10-30 * Bug fixes (see mercurial logs for details) Version 4.4.0 - 2017-05-01 * Bug fixes (see mercurial logs for details) Version 4.2.0 - 2016-11-28 * Bug fixes (see mercurial logs for details) Version 4.0.0 - 2016-05-02 * Bug fixes (see mercurial logs for details) * Add Python3 support Version 3.8.0 - 2015-11-02 * Bug fixes (see mercurial logs for details) * Add progress invoice method Version 3.6.0 - 2015-04-20 * Bug fixes (see mercurial logs for details) * Add support for PyPy * Use TimeDelta field Version 3.4.0 - 2014-10-20 * Bug fixes (see mercurial logs for details) Version 3.2.0 - 2014-04-21 * Bug fixes (see mercurial logs for details) Version 3.0.0 - 2013-10-21 * Bug fixes (see mercurial logs for details) Version 2.8.0 - 2013-04-22 * Initial release trytond_project_invoice-5.0.1/COPYRIGHT0000644000175000017500000000125713433070000017260 0ustar cedced00000000000000Copyright (C) 2013-2019 Cédric Krier. Copyright (C) 2013-2019 B2CK SPRL. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . trytond_project_invoice-5.0.1/trytond_project_invoice.egg-info/0000755000175000017500000000000013433070002024421 5ustar cedced00000000000000trytond_project_invoice-5.0.1/trytond_project_invoice.egg-info/dependency_links.txt0000644000175000017500000000000113433070001030466 0ustar cedced00000000000000 trytond_project_invoice-5.0.1/trytond_project_invoice.egg-info/PKG-INFO0000644000175000017500000000522313433070001025517 0ustar cedced00000000000000Metadata-Version: 1.2 Name: trytond-project-invoice Version: 5.0.1 Summary: Tryton module to invoice projects Home-page: http://www.tryton.org/ Author: Tryton Author-email: issue_tracker@tryton.org License: GPL-3 Download-URL: http://downloads.tryton.org/5.0/ Description: trytond_project_invoice ======================= The project_invoice module of the Tryton application platform. Installing ---------- See INSTALL Support ------- If you encounter any problems with Tryton, please don't hesitate to ask questions on the Tryton bug tracker, mailing list, wiki or IRC channel: http://bugs.tryton.org/ http://groups.tryton.org/ http://wiki.tryton.org/ irc://irc.freenode.net/tryton License ------- See LICENSE Copyright --------- See COPYRIGHT For more information please visit the Tryton web site: http://www.tryton.org/ Keywords: tryton project invoice Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Environment :: Plugins Classifier: Framework :: Tryton Classifier: Intended Audience :: Developers Classifier: Intended Audience :: Financial and Insurance Industry Classifier: Intended Audience :: Legal Industry Classifier: Intended Audience :: Manufacturing Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+) Classifier: Natural Language :: Bulgarian Classifier: Natural Language :: Catalan Classifier: Natural Language :: Chinese (Simplified) Classifier: Natural Language :: Czech Classifier: Natural Language :: Dutch Classifier: Natural Language :: English Classifier: Natural Language :: French Classifier: Natural Language :: German Classifier: Natural Language :: Hungarian Classifier: Natural Language :: Italian Classifier: Natural Language :: Persian Classifier: Natural Language :: Polish Classifier: Natural Language :: Portuguese (Brazilian) Classifier: Natural Language :: Russian Classifier: Natural Language :: Slovenian Classifier: Natural Language :: Spanish Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: PyPy Classifier: Topic :: Office/Business Requires-Python: >=3.4 trytond_project_invoice-5.0.1/trytond_project_invoice.egg-info/entry_points.txt0000644000175000017500000000012113433070001027710 0ustar cedced00000000000000 [trytond.modules] project_invoice = trytond.modules.project_invoice trytond_project_invoice-5.0.1/trytond_project_invoice.egg-info/top_level.txt0000644000175000017500000000001013433070001027141 0ustar cedced00000000000000trytond trytond_project_invoice-5.0.1/trytond_project_invoice.egg-info/not-zip-safe0000644000175000017500000000000113433070001026646 0ustar cedced00000000000000 trytond_project_invoice-5.0.1/trytond_project_invoice.egg-info/SOURCES.txt0000644000175000017500000000350613433070002026311 0ustar cedced00000000000000.drone.yml .hgtags CHANGELOG COPYRIGHT INSTALL LICENSE MANIFEST.in README __init__.py invoice.py project.xml setup.py timesheet.py timesheet.xml tox.ini tryton.cfg work.py work.xml ./__init__.py ./invoice.py ./project.xml ./timesheet.py ./timesheet.xml ./tryton.cfg ./work.py ./work.xml ./locale/bg.po ./locale/ca.po ./locale/cs.po ./locale/de.po ./locale/es.po ./locale/es_419.po ./locale/fa.po ./locale/fr.po ./locale/hu_HU.po ./locale/it_IT.po ./locale/ja_JP.po ./locale/lo.po ./locale/lt.po ./locale/nl.po ./locale/pl.po ./locale/pt_BR.po ./locale/ru.po ./locale/sl.po ./locale/zh_CN.po ./tests/__init__.py ./tests/scenario_project_invoice_effort.rst ./tests/scenario_project_invoice_multiple_party.rst ./tests/scenario_project_invoice_progress.rst ./tests/scenario_project_invoice_timesheet.rst ./tests/test_project_invoice.py ./view/work_form.xml ./view/work_invoiced_progress_form.xml ./view/work_invoiced_progress_list.xml doc/index.rst locale/bg.po locale/ca.po locale/cs.po locale/de.po locale/es.po locale/es_419.po locale/fa.po locale/fr.po locale/hu_HU.po locale/it_IT.po locale/ja_JP.po locale/lo.po locale/lt.po locale/nl.po locale/pl.po locale/pt_BR.po locale/ru.po locale/sl.po locale/zh_CN.po tests/__init__.py tests/scenario_project_invoice_effort.rst tests/scenario_project_invoice_multiple_party.rst tests/scenario_project_invoice_progress.rst tests/scenario_project_invoice_timesheet.rst tests/test_project_invoice.py trytond_project_invoice.egg-info/PKG-INFO trytond_project_invoice.egg-info/SOURCES.txt trytond_project_invoice.egg-info/dependency_links.txt trytond_project_invoice.egg-info/entry_points.txt trytond_project_invoice.egg-info/not-zip-safe trytond_project_invoice.egg-info/requires.txt trytond_project_invoice.egg-info/top_level.txt view/work_form.xml view/work_invoiced_progress_form.xml view/work_invoiced_progress_list.xmltrytond_project_invoice-5.0.1/trytond_project_invoice.egg-info/requires.txt0000644000175000017500000000032013433070001027013 0ustar cedced00000000000000python-sql>=0.4 trytond_project<5.1,>=5.0 trytond_project_revenue<5.1,>=5.0 trytond_timesheet<5.1,>=5.0 trytond_account<5.1,>=5.0 trytond_account_invoice<5.1,>=5.0 trytond_product<5.1,>=5.0 trytond<5.1,>=5.0 trytond_project_invoice-5.0.1/timesheet.py0000644000175000017500000000302313354423125020333 0ustar cedced00000000000000# 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 fields from trytond.pool import PoolMeta __all__ = ['TimesheetLine'] class TimesheetLine(metaclass=PoolMeta): __name__ = 'timesheet.line' invoice_line = fields.Many2One('account.invoice.line', 'Invoice Line', readonly=True) @classmethod def __setup__(cls): super(TimesheetLine, cls).__setup__() cls._error_messages.update({ 'modify_invoiced_line': 'You can not modify invoiced line.', 'delete_invoiced_line': 'You can not delete invoiced line.', }) @classmethod def copy(cls, records, default=None): if default is None: default = {} else: default = default.copy() default.setdefault('invoice_line', None) return super(TimesheetLine, cls).copy(records, default=default) @classmethod def write(cls, *args): actions = iter(args) for lines, values in zip(actions, actions): if (('duration' in values or 'work' in values) and any(l.invoice_line for l in lines)): cls.raise_user_error('modify_invoiced_line') super(TimesheetLine, cls).write(*args) @classmethod def delete(cls, records): if any(r.invoice_line for r in records): cls.raise_user_error('delete_invoiced_line') super(TimesheetLine, cls).delete(records) trytond_project_invoice-5.0.1/setup.cfg0000644000175000017500000000004613433070002017603 0ustar cedced00000000000000[egg_info] tag_build = tag_date = 0 trytond_project_invoice-5.0.1/PKG-INFO0000644000175000017500000000522313433070002017061 0ustar cedced00000000000000Metadata-Version: 1.2 Name: trytond_project_invoice Version: 5.0.1 Summary: Tryton module to invoice projects Home-page: http://www.tryton.org/ Author: Tryton Author-email: issue_tracker@tryton.org License: GPL-3 Download-URL: http://downloads.tryton.org/5.0/ Description: trytond_project_invoice ======================= The project_invoice module of the Tryton application platform. Installing ---------- See INSTALL Support ------- If you encounter any problems with Tryton, please don't hesitate to ask questions on the Tryton bug tracker, mailing list, wiki or IRC channel: http://bugs.tryton.org/ http://groups.tryton.org/ http://wiki.tryton.org/ irc://irc.freenode.net/tryton License ------- See LICENSE Copyright --------- See COPYRIGHT For more information please visit the Tryton web site: http://www.tryton.org/ Keywords: tryton project invoice Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Environment :: Plugins Classifier: Framework :: Tryton Classifier: Intended Audience :: Developers Classifier: Intended Audience :: Financial and Insurance Industry Classifier: Intended Audience :: Legal Industry Classifier: Intended Audience :: Manufacturing Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+) Classifier: Natural Language :: Bulgarian Classifier: Natural Language :: Catalan Classifier: Natural Language :: Chinese (Simplified) Classifier: Natural Language :: Czech Classifier: Natural Language :: Dutch Classifier: Natural Language :: English Classifier: Natural Language :: French Classifier: Natural Language :: German Classifier: Natural Language :: Hungarian Classifier: Natural Language :: Italian Classifier: Natural Language :: Persian Classifier: Natural Language :: Polish Classifier: Natural Language :: Portuguese (Brazilian) Classifier: Natural Language :: Russian Classifier: Natural Language :: Slovenian Classifier: Natural Language :: Spanish Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: PyPy Classifier: Topic :: Office/Business Requires-Python: >=3.4 trytond_project_invoice-5.0.1/work.py0000644000175000017500000005621613354423125017342 0ustar cedced00000000000000# 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 itertools import groupby from collections import defaultdict from decimal import Decimal import datetime from sql import Null from sql.aggregate import Sum from sql.operators import Concat from trytond.model import ModelSQL, ModelView, fields from trytond.pool import PoolMeta from trytond.pyson import Eval, Bool, PYSONEncoder from trytond.pool import Pool from trytond.transaction import Transaction from trytond.wizard import Wizard, StateAction from trytond.tools import reduce_ids, grouped_slice __all__ = ['Work', 'WorkInvoicedProgress', 'OpenInvoice'] INVOICE_METHODS = [ ('manual', 'Manual'), ('effort', 'On Effort'), ('progress', 'On Progress'), ('timesheet', 'On Timesheet'), ] class Work(metaclass=PoolMeta): __name__ = 'project.work' project_invoice_method = fields.Selection(INVOICE_METHODS, 'Invoice Method', states={ 'readonly': Bool(Eval('invoiced_duration')), 'required': Eval('type') == 'project', 'invisible': Eval('type') != 'project', }, depends=['invoiced_duration', 'type']) invoice_method = fields.Function(fields.Selection(INVOICE_METHODS, 'Invoice Method'), 'on_change_with_invoice_method') invoiced_duration = fields.Function(fields.TimeDelta('Invoiced Duration', 'company_work_time', states={ 'invisible': Eval('invoice_method') == 'manual', }, depends=['invoice_method']), 'get_total') duration_to_invoice = fields.Function(fields.TimeDelta( 'Duration to Invoice', 'company_work_time', states={ 'invisible': Eval('invoice_method') == 'manual', }, depends=['invoice_method']), 'get_total') invoiced_amount = fields.Function(fields.Numeric('Invoiced Amount', digits=(16, Eval('currency_digits', 2)), states={ 'invisible': Eval('invoice_method') == 'manual', }, depends=['currency_digits', 'invoice_method']), 'get_total') invoice_line = fields.Many2One('account.invoice.line', 'Invoice Line', readonly=True) invoiced_progress = fields.One2Many('project.work.invoiced_progress', 'work', 'Invoiced Progress', readonly=True) @classmethod def __setup__(cls): super(Work, cls).__setup__() cls._buttons.update({ 'invoice': { 'invisible': ((Eval('type') != 'project') | (Eval('project_invoice_method', 'manual') == 'manual')), 'readonly': ~Eval('duration_to_invoice'), 'depends': ['type', 'project_invoice_method', 'duration_to_invoice'] }, }) cls._error_messages.update({ 'missing_product': 'There is no product on work "%s".', 'missing_list_price': 'There is no list price on work "%s".', 'missing_party': 'There is no party on work "%s".', }) @staticmethod def default_project_invoice_method(): return 'manual' @classmethod def copy(cls, records, default=None): if default is None: default = {} else: default = default.copy() default.setdefault('invoice_line', None) return super(Work, cls).copy(records, default=default) @fields.depends('type', 'project_invoice_method', 'parent', '_parent_parent.invoice_method') def on_change_with_invoice_method(self, name=None): if self.type == 'project': return self.project_invoice_method elif self.parent: return self.parent.invoice_method else: return 'manual' @staticmethod def default_invoiced_duration(): return datetime.timedelta() @staticmethod def _get_invoiced_duration_manual(works): return {} @staticmethod def _get_invoiced_duration_effort(works): return dict((w.id, w.effort_duration) for w in works if w.invoice_line and w.effort_duration) @staticmethod def _get_invoiced_duration_progress(works): durations = {} for work in works: durations[work.id] = sum((p.effort_duration for p in work.invoiced_progress if p.effort_duration), datetime.timedelta()) return durations @classmethod def _get_invoiced_duration_timesheet(cls, works): return cls._get_duration_timesheet(works, True) @staticmethod def default_duration_to_invoice(): return datetime.timedelta() @staticmethod def _get_duration_to_invoice_manual(works): return {} @staticmethod def _get_duration_to_invoice_effort(works): return dict((w.id, w.effort_duration) for w in works if w.state == 'done' and not w.invoice_line and w.effort_duration) @staticmethod def _get_duration_to_invoice_progress(works): durations = {} for work in works: if work.progress is None or work.effort_duration is None: continue effort_to_invoice = datetime.timedelta( hours=work.effort_hours * work.progress) effort_invoiced = sum( (p.effort_duration for p in work.invoiced_progress), datetime.timedelta()) if effort_to_invoice > effort_invoiced: durations[work.id] = effort_to_invoice - effort_invoiced else: durations[work.id] = datetime.timedelta() return durations @classmethod def _get_duration_to_invoice_timesheet(cls, works): return cls._get_duration_timesheet(works, False) @staticmethod def default_invoiced_amount(): return Decimal(0) @staticmethod def _get_invoiced_amount_manual(works): return {} @staticmethod def _get_invoiced_amount_effort(works): pool = Pool() InvoiceLine = pool.get('account.invoice.line') Currency = pool.get('currency.currency') invoice_lines = InvoiceLine.browse([ w.invoice_line.id for w in works if w.invoice_line]) id2invoice_lines = dict((l.id, l) for l in invoice_lines) amounts = {} for work in works: currency = work.company.currency if work.invoice_line: invoice_line = id2invoice_lines[work.invoice_line.id] invoice_currency = (invoice_line.invoice.currency if invoice_line.invoice else invoice_line.currency) amounts[work.id] = Currency.compute(invoice_currency, Decimal(str(work.effort_hours)) * invoice_line.unit_price, currency) else: amounts[work.id] = Decimal(0) return amounts @classmethod def _get_invoiced_amount_progress(cls, works): pool = Pool() Progress = pool.get('project.work.invoiced_progress') InvoiceLine = pool.get('account.invoice.line') Company = pool.get('company.company') Currency = pool.get('currency.currency') cursor = Transaction().connection.cursor() table = cls.__table__() progress = Progress.__table__() invoice_line = InvoiceLine.__table__() company = Company.__table__() amounts = defaultdict(Decimal) work2currency = {} work_ids = [w.id for w in works] for sub_ids in grouped_slice(work_ids): where = reduce_ids(table.id, sub_ids) cursor.execute(*table.join(progress, condition=progress.work == table.id ).join(invoice_line, condition=progress.invoice_line == invoice_line.id ).select(table.id, Sum(progress.effort_duration * invoice_line.unit_price), where=where, group_by=table.id)) for work_id, amount in cursor.fetchall(): if isinstance(amount, datetime.timedelta): amount = amount.total_seconds() # Amount computed in second instead of hours if amount is not None: amount /= 60 * 60 else: amount = 0 amounts[work_id] = amount cursor.execute(*table.join(company, condition=table.company == company.id ).select(table.id, company.currency, where=where)) work2currency.update(cursor.fetchall()) currencies = Currency.browse(set(work2currency.values())) id2currency = {c.id: c for c in currencies} for work in works: currency = id2currency[work2currency[work.id]] amounts[work.id] = currency.round(Decimal(amounts[work.id])) return amounts @classmethod def _get_invoiced_amount_timesheet(cls, works): pool = Pool() TimesheetWork = pool.get('timesheet.work') TimesheetLine = pool.get('timesheet.line') InvoiceLine = pool.get('account.invoice.line') Company = pool.get('company.company') Currency = pool.get('currency.currency') cursor = Transaction().connection.cursor() table = cls.__table__() timesheet_work = TimesheetWork.__table__() timesheet_line = TimesheetLine.__table__() invoice_line = InvoiceLine.__table__() company = Company.__table__() amounts = {} work2currency = {} work_ids = [w.id for w in works] for sub_ids in grouped_slice(work_ids): where = reduce_ids(table.id, sub_ids) cursor.execute(*table.join(timesheet_work, condition=( Concat(cls.__name__ + ',', table.id) == timesheet_work.origin) ).join(timesheet_line, condition=timesheet_line.work == timesheet_work.id ).join(invoice_line, condition=timesheet_line.invoice_line == invoice_line.id ).select(table.id, Sum(timesheet_line.duration * invoice_line.unit_price), where=where, group_by=table.id)) amounts.update(cursor.fetchall()) cursor.execute(*table.join(company, condition=table.company == company.id ).select(table.id, company.currency, where=where)) work2currency.update(cursor.fetchall()) currencies = Currency.browse(set(work2currency.values())) id2currency = {c.id: c for c in currencies} for work in works: currency = id2currency[work2currency[work.id]] amount = amounts.get(work.id, 0) if isinstance(amount, datetime.timedelta): amount = amount.total_seconds() amount = amount / 60 / 60 amounts[work.id] = currency.round(Decimal(str(amount))) return amounts @staticmethod def _get_duration_timesheet(works, invoiced): pool = Pool() TimesheetLine = pool.get('timesheet.line') cursor = Transaction().connection.cursor() line = TimesheetLine.__table__() durations = defaultdict(datetime.timedelta) twork2work = {tw.id: w.id for w in works for tw in w.timesheet_works} for sub_ids in grouped_slice(twork2work.keys()): red_sql = reduce_ids(line.work, sub_ids) if invoiced: where = line.invoice_line != Null else: where = line.invoice_line == Null cursor.execute(*line.select(line.work, Sum(line.duration), where=red_sql & where, group_by=line.work)) for twork_id, duration in cursor.fetchall(): if duration: # SQLite uses float for SUM if not isinstance(duration, datetime.timedelta): duration = datetime.timedelta(seconds=duration) durations[twork2work[twork_id]] += duration return durations @classmethod def _get_invoice_values(cls, works, name): default = getattr(cls, 'default_%s' % name) durations = dict.fromkeys((w.id for w in works), default()) method2works = defaultdict(list) for work in works: method2works[work.invoice_method].append(work) for method, m_works in method2works.items(): method = getattr(cls, '_get_%s_%s' % (name, method)) # Re-browse for cache alignment durations.update(method(cls.browse(m_works))) return durations @classmethod def _get_invoiced_duration(cls, works): return cls._get_invoice_values(works, 'invoiced_duration') @classmethod def _get_duration_to_invoice(cls, works): return cls._get_invoice_values(works, 'duration_to_invoice') @classmethod def _get_invoiced_amount(cls, works): return cls._get_invoice_values(works, 'invoiced_amount') @classmethod @ModelView.button def invoice(cls, works): pool = Pool() Invoice = pool.get('account.invoice') invoices = [] uninvoiced = works[:] while uninvoiced: work = uninvoiced.pop(0) invoice_lines, uninvoiced_children = work._get_lines_to_invoice() uninvoiced.extend(uninvoiced_children) if not invoice_lines: continue invoice = work._get_invoice() invoice.save() invoices.append(invoice) for key, lines in groupby(invoice_lines, key=work._group_lines_to_invoice_key): lines = list(lines) key = dict(key) invoice_line = work._get_invoice_line(key, invoice, lines) invoice_line.invoice = invoice.id invoice_line.save() origins = {} for line in lines: origin = line['origin'] origins.setdefault(origin.__class__, []).append(origin) for klass, records in origins.items(): klass.save(records) # Store first new origins klass.write(records, { 'invoice_line': invoice_line.id, }) Invoice.update_taxes(invoices) def _get_invoice(self): "Return invoice for the work" pool = Pool() Invoice = pool.get('account.invoice') Journal = pool.get('account.journal') journals = Journal.search([ ('type', '=', 'revenue'), ], limit=1) if journals: journal, = journals else: journal = None if not self.party: self.raise_user_error('missing_party', (self.rec_name,)) return Invoice( company=self.company, type='out', journal=journal, party=self.party, invoice_address=self.party.address_get(type='invoice'), currency=self.company.currency, account=self.party.account_receivable_used, payment_term=self.party.customer_payment_term, description=self.name, ) def _group_lines_to_invoice_key(self, line): "The key to group lines" return (('product', line['product']), ('unit', line['unit']), ('unit_price', line['unit_price']), ('description', line['description'])) def _get_invoice_line(self, key, invoice, lines): "Return a invoice line for the lines" pool = Pool() InvoiceLine = pool.get('account.invoice.line') Uom = pool.get('product.uom') quantity = sum(l['quantity'] for l in lines) product = key['product'] invoice_line = InvoiceLine() invoice_line.type = 'line' invoice_line.description = key['description'] invoice_line.account = product.account_revenue_used if (key['unit'] and key['unit'].category == product.default_uom.category): invoice_line.product = product invoice_line.unit_price = Uom.compute_price( key['unit'], key['unit_price'], product.default_uom) invoice_line.quantity = Uom.compute_qty( key['unit'], quantity, product.default_uom) invoice_line.unit = product.default_uom else: invoice_line.unit_price = key['unit_price'] invoice_line.quantity = quantity invoice_line.unit = key['unit'] taxes = [] pattern = invoice_line._get_tax_rule_pattern() party = invoice.party for tax in product.customer_taxes_used: if party.customer_tax_rule: tax_ids = party.customer_tax_rule.apply(tax, pattern) if tax_ids: taxes.extend(tax_ids) continue taxes.append(tax.id) if party.customer_tax_rule: tax_ids = party.customer_tax_rule.apply(None, pattern) if tax_ids: taxes.extend(tax_ids) invoice_line.taxes = taxes return invoice_line def _get_lines_to_invoice_manual(self): return [] def _get_lines_to_invoice_effort(self): pool = Pool() ModelData = pool.get('ir.model.data') Uom = pool.get('product.uom') hour = Uom(ModelData.get_id('product', 'uom_hour')) if (not self.invoice_line and self.effort_hours and self.state == 'done'): if not self.product: self.raise_user_error('missing_product', (self.rec_name,)) elif self.list_price is None: self.raise_user_error('missing_list_price', (self.rec_name,)) return [{ 'product': self.product, 'quantity': self.effort_hours, 'unit': hour, 'unit_price': self.list_price, 'origin': self, 'description': self.name, }] return [] def _get_lines_to_invoice_progress(self): pool = Pool() InvoicedProgress = pool.get('project.work.invoiced_progress') ModelData = pool.get('ir.model.data') Uom = pool.get('product.uom') hour = Uom(ModelData.get_id('product', 'uom_hour')) if self.progress is None or self.effort_duration is None: return [] invoiced_progress = sum(x.effort_hours for x in self.invoiced_progress) quantity = self.effort_hours * self.progress - invoiced_progress if self.product: quantity = Uom.compute_qty( hour, quantity, self.product.default_uom) if quantity > 0: if not self.product: self.raise_user_error('missing_product', (self.rec_name,)) elif self.list_price is None: self.raise_user_error('missing_list_price', (self.rec_name,)) invoiced_progress = InvoicedProgress(work=self, effort_duration=datetime.timedelta(hours=quantity)) return [{ 'product': self.product, 'quantity': quantity, 'unit': hour, 'unit_price': self.list_price, 'origin': invoiced_progress, 'description': self.name, }] return [] def _get_lines_to_invoice_timesheet(self): pool = Pool() ModelData = pool.get('ir.model.data') Uom = pool.get('product.uom') hour = Uom(ModelData.get_id('product', 'uom_hour')) if (self.timesheet_works and any(tw.timesheet_lines for tw in self.timesheet_works)): if not self.product: self.raise_user_error('missing_product', (self.rec_name,)) elif self.list_price is None: self.raise_user_error('missing_list_price', (self.rec_name,)) return [{ 'product': self.product, 'quantity': l.hours, 'unit': hour, 'unit_price': self.list_price, 'origin': l, 'description': self.name, } for tw in self.timesheet_works for l in tw.timesheet_lines if not l.invoice_line] return [] def _test_group_invoice(self): return (self.company, self.party) def _get_lines_to_invoice(self, test=None): "Return lines for work and children" lines = [] if test is None: test = self._test_group_invoice() uninvoiced_children = [] lines += getattr(self, '_get_lines_to_invoice_%s' % self.invoice_method)() for children in self.children: if children.type == 'project': if test != children._test_group_invoice(): uninvoiced_children.append(children) continue child_lines, uninvoiced = children._get_lines_to_invoice(test=test) lines.extend(child_lines) uninvoiced_children.extend(uninvoiced) return lines, uninvoiced_children class WorkInvoicedProgress(ModelView, ModelSQL): 'Work Invoiced Progress' __name__ = 'project.work.invoiced_progress' work = fields.Many2One('project.work', 'Work', ondelete='RESTRICT', select=True) effort_duration = fields.TimeDelta('Effort', 'company_work_time') invoice_line = fields.Many2One('account.invoice.line', 'Invoice Line', ondelete='CASCADE') @property def effort_hours(self): if not self.effort_duration: return 0 return self.effort_duration.total_seconds() / 60 / 60 class OpenInvoice(Wizard): 'Open Invoice' __name__ = 'project.open_invoice' start_state = 'open_' open_ = StateAction('account_invoice.act_invoice_form') def do_open_(self, action): pool = Pool() Work = pool.get('project.work') works = Work.search([ ('parent', 'child_of', Transaction().context['active_ids']), ]) invoice_ids = set() for work in works: if work.invoice_line and work.invoice_line.invoice: invoice_ids.add(work.invoice_line.invoice.id) for twork in work.timesheet_works: for timesheet_line in twork.timesheet_lines: if (timesheet_line.invoice_line and timesheet_line.invoice_line.invoice): invoice_ids.add(timesheet_line.invoice_line.invoice.id) if work.invoiced_progress: for progress in work.invoiced_progress: invoice_ids.add(progress.invoice_line.invoice.id) encoder = PYSONEncoder() action['pyson_domain'] = encoder.encode( [('id', 'in', list(invoice_ids))]) action['pyson_search_value'] = encoder.encode([]) return action, {} trytond_project_invoice-5.0.1/README0000644000175000017500000000107413354423125016656 0ustar cedced00000000000000trytond_project_invoice ======================= The project_invoice module of the Tryton application platform. Installing ---------- See INSTALL Support ------- If you encounter any problems with Tryton, please don't hesitate to ask questions on the Tryton bug tracker, mailing list, wiki or IRC channel: http://bugs.tryton.org/ http://groups.tryton.org/ http://wiki.tryton.org/ irc://irc.freenode.net/tryton License ------- See LICENSE Copyright --------- See COPYRIGHT For more information please visit the Tryton web site: http://www.tryton.org/ trytond_project_invoice-5.0.1/locale/0000755000175000017500000000000013433070002017221 5ustar cedced00000000000000trytond_project_invoice-5.0.1/locale/es.po0000644000175000017500000000774113354423125020213 0ustar cedced00000000000000# msgid "" msgstr "Content-Type: text/plain; charset=utf-8\n" msgctxt "error:project.work:" msgid "There is no list price on work \"%s\"." msgstr "No hay ningún precio en el trabajo \"%s\"." msgctxt "error:project.work:" msgid "There is no party on work \"%s\"." msgstr "No hay ningún tercero en el trabajo \"%s\"." msgctxt "error:project.work:" msgid "There is no product on work \"%s\"." msgstr "No hay ningún producto en el trabajo \"%s\"." msgctxt "error:timesheet.line:" msgid "You can not delete invoiced line." msgstr "No puede eliminar una línea facturada." msgctxt "error:timesheet.line:" msgid "You can not modify invoiced line." msgstr "No puede modificar una línea facturada." msgctxt "field:project.work,duration_to_invoice:" msgid "Duration to Invoice" msgstr "Tiempo a facturar" msgctxt "field:project.work,invoice_line:" msgid "Invoice Line" msgstr "Línea de factura" msgctxt "field:project.work,invoice_method:" msgid "Invoice Method" msgstr "Método de facturación" msgctxt "field:project.work,invoiced_amount:" msgid "Invoiced Amount" msgstr "Importe facturado" msgctxt "field:project.work,invoiced_duration:" msgid "Invoiced Duration" msgstr "Tiempo facturado" msgctxt "field:project.work,invoiced_progress:" msgid "Invoiced Progress" msgstr "Progreso facturado" msgctxt "field:project.work,project_invoice_method:" msgid "Invoice Method" msgstr "Método de facturación" msgctxt "field:project.work.invoiced_progress,create_date:" msgid "Create Date" msgstr "Fecha de creación" msgctxt "field:project.work.invoiced_progress,create_uid:" msgid "Create User" msgstr "Usuario de creación" msgctxt "field:project.work.invoiced_progress,effort_duration:" msgid "Effort" msgstr "Tiempo" msgctxt "field:project.work.invoiced_progress,id:" msgid "ID" msgstr "ID" msgctxt "field:project.work.invoiced_progress,invoice_line:" msgid "Invoice Line" msgstr "Línea de factura" msgctxt "field:project.work.invoiced_progress,rec_name:" msgid "Record Name" msgstr "Nombre del registro" msgctxt "field:project.work.invoiced_progress,work:" msgid "Work" msgstr "Trabajo" msgctxt "field:project.work.invoiced_progress,write_date:" msgid "Write Date" msgstr "Fecha de modificación" msgctxt "field:project.work.invoiced_progress,write_uid:" msgid "Write User" msgstr "Usuario de modificación" msgctxt "field:timesheet.line,invoice_line:" msgid "Invoice Line" msgstr "Línea de factura" msgctxt "model:ir.action,name:act_timesheet_line_form_invoice" msgid "Timesheet Lines" msgstr "Líneas del parte de trabajo" msgctxt "model:ir.action,name:open_invoice" msgid "Invoices" msgstr "Facturas" msgctxt "model:ir.model.button,string:work_invoice_button" msgid "Invoice" msgstr "Factura" msgctxt "model:project.work.invoiced_progress,name:" msgid "Work Invoiced Progress" msgstr "Progreso de trabajos facturados" msgctxt "model:res.group,name:group_project_invoice" msgid "Project Invoice" msgstr "Facturación de proyectos" msgctxt "selection:project.work,invoice_method:" msgid "Manual" msgstr "Manual" msgctxt "selection:project.work,invoice_method:" msgid "On Effort" msgstr "Por el esfuerzo estimado" msgctxt "selection:project.work,invoice_method:" msgid "On Progress" msgstr "Según el progreso" msgctxt "selection:project.work,invoice_method:" msgid "On Timesheet" msgstr "Por las horas realizadas" msgctxt "selection:project.work,project_invoice_method:" msgid "Manual" msgstr "Manual" msgctxt "selection:project.work,project_invoice_method:" msgid "On Effort" msgstr "Por el esfuerzo estimado" msgctxt "selection:project.work,project_invoice_method:" msgid "On Progress" msgstr "Según el progreso" msgctxt "selection:project.work,project_invoice_method:" msgid "On Timesheet" msgstr "Por las horas realizadas" msgctxt "view:project.work:" msgid "Invoice" msgstr "Factura" msgctxt "view:project.work.invoiced_progress:" msgid "Work Invoiced Progress" msgstr "Progreso del trabajo facturado" msgctxt "view:project.work.invoiced_progress:" msgid "Work Invoiced Progresses" msgstr "Progresos del trabajo facturado" trytond_project_invoice-5.0.1/locale/cs.po0000644000175000017500000000600613354423125020202 0ustar cedced00000000000000# msgid "" msgstr "Content-Type: text/plain; charset=utf-8\n" msgctxt "error:project.work:" msgid "There is no list price on work \"%s\"." msgstr "" msgctxt "error:project.work:" msgid "There is no party on work \"%s\"." msgstr "" msgctxt "error:project.work:" msgid "There is no product on work \"%s\"." msgstr "" msgctxt "error:timesheet.line:" msgid "You can not delete invoiced line." msgstr "" msgctxt "error:timesheet.line:" msgid "You can not modify invoiced line." msgstr "" msgctxt "field:project.work,duration_to_invoice:" msgid "Duration to Invoice" msgstr "" msgctxt "field:project.work,invoice_line:" msgid "Invoice Line" msgstr "" msgctxt "field:project.work,invoice_method:" msgid "Invoice Method" msgstr "" msgctxt "field:project.work,invoiced_amount:" msgid "Invoiced Amount" msgstr "" msgctxt "field:project.work,invoiced_duration:" msgid "Invoiced Duration" msgstr "" msgctxt "field:project.work,invoiced_progress:" msgid "Invoiced Progress" msgstr "" msgctxt "field:project.work,project_invoice_method:" msgid "Invoice Method" msgstr "" msgctxt "field:project.work.invoiced_progress,create_date:" msgid "Create Date" msgstr "" msgctxt "field:project.work.invoiced_progress,create_uid:" msgid "Create User" msgstr "" msgctxt "field:project.work.invoiced_progress,effort_duration:" msgid "Effort" msgstr "" msgctxt "field:project.work.invoiced_progress,id:" msgid "ID" msgstr "" msgctxt "field:project.work.invoiced_progress,invoice_line:" msgid "Invoice Line" msgstr "" msgctxt "field:project.work.invoiced_progress,rec_name:" msgid "Record Name" msgstr "" msgctxt "field:project.work.invoiced_progress,work:" msgid "Work" msgstr "" msgctxt "field:project.work.invoiced_progress,write_date:" msgid "Write Date" msgstr "" msgctxt "field:project.work.invoiced_progress,write_uid:" msgid "Write User" msgstr "" msgctxt "field:timesheet.line,invoice_line:" msgid "Invoice Line" msgstr "" msgctxt "model:ir.action,name:act_timesheet_line_form_invoice" msgid "Timesheet Lines" msgstr "Timesheet Lines" #, fuzzy msgctxt "model:ir.action,name:open_invoice" msgid "Invoices" msgstr "Invoices" msgctxt "model:ir.model.button,string:work_invoice_button" msgid "Invoice" msgstr "Invoice" msgctxt "model:project.work.invoiced_progress,name:" msgid "Work Invoiced Progress" msgstr "" msgctxt "model:res.group,name:group_project_invoice" msgid "Project Invoice" msgstr "Project Invoice" msgctxt "selection:project.work,invoice_method:" msgid "Manual" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "On Effort" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "On Progress" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "On Timesheet" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "Manual" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "On Effort" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "On Progress" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "On Timesheet" msgstr "" trytond_project_invoice-5.0.1/locale/de.po0000644000175000017500000001004013354423125020156 0ustar cedced00000000000000# msgid "" msgstr "Content-Type: text/plain; charset=utf-8\n" msgctxt "error:project.work:" msgid "There is no list price on work \"%s\"." msgstr "Fehlender Listenpreis für Aufgabe \"%s\"." msgctxt "error:project.work:" msgid "There is no party on work \"%s\"." msgstr "Fehlende Partei für Aufgabe \"%s\"." msgctxt "error:project.work:" msgid "There is no product on work \"%s\"." msgstr "Fehlender Artikel für Aufgabe \"%s\"." msgctxt "error:timesheet.line:" msgid "You can not delete invoiced line." msgstr "Abgerechnete Positionen können nicht gelöscht werden." msgctxt "error:timesheet.line:" msgid "You can not modify invoiced line." msgstr "Eine abgerechnete Zeile kann nicht geändert werden." msgctxt "field:project.work,duration_to_invoice:" msgid "Duration to Invoice" msgstr "Fakturierbare Zeit" msgctxt "field:project.work,invoice_line:" msgid "Invoice Line" msgstr "Rechnungsposition" msgctxt "field:project.work,invoice_method:" msgid "Invoice Method" msgstr "Methode Rechnungsstellung" msgctxt "field:project.work,invoiced_amount:" msgid "Invoiced Amount" msgstr "Abgerechneter Betrag" msgctxt "field:project.work,invoiced_duration:" msgid "Invoiced Duration" msgstr "Fakturierte Zeit" msgctxt "field:project.work,invoiced_progress:" msgid "Invoiced Progress" msgstr "Fakturierter Forstschritt" msgctxt "field:project.work,project_invoice_method:" msgid "Invoice Method" msgstr "Methode Rechnungsstellung" msgctxt "field:project.work.invoiced_progress,create_date:" msgid "Create Date" msgstr "Erstellungsdatum" msgctxt "field:project.work.invoiced_progress,create_uid:" msgid "Create User" msgstr "Erstellt durch" msgctxt "field:project.work.invoiced_progress,effort_duration:" msgid "Effort" msgstr "Zeitaufwand" msgctxt "field:project.work.invoiced_progress,id:" msgid "ID" msgstr "ID" msgctxt "field:project.work.invoiced_progress,invoice_line:" msgid "Invoice Line" msgstr "Rechnungsposition" msgctxt "field:project.work.invoiced_progress,rec_name:" msgid "Record Name" msgstr "Bezeichnung des Datensatzes" msgctxt "field:project.work.invoiced_progress,work:" msgid "Work" msgstr "Tätigkeit" msgctxt "field:project.work.invoiced_progress,write_date:" msgid "Write Date" msgstr "Zuletzt geändert" msgctxt "field:project.work.invoiced_progress,write_uid:" msgid "Write User" msgstr "Letzte Änderung durch" msgctxt "field:timesheet.line,invoice_line:" msgid "Invoice Line" msgstr "Rechnungsposition" msgctxt "model:ir.action,name:act_timesheet_line_form_invoice" msgid "Timesheet Lines" msgstr "Zeiterfassungspositionen" msgctxt "model:ir.action,name:open_invoice" msgid "Invoices" msgstr "Rechnungen" msgctxt "model:ir.model.button,string:work_invoice_button" msgid "Invoice" msgstr "Rechnung erstellen" msgctxt "model:project.work.invoiced_progress,name:" msgid "Work Invoiced Progress" msgstr "Nach Forstschritt fakturierte Aufgabe" msgctxt "model:res.group,name:group_project_invoice" msgid "Project Invoice" msgstr "Projekt Fakturierung" msgctxt "selection:project.work,invoice_method:" msgid "Manual" msgstr "Manuell" msgctxt "selection:project.work,invoice_method:" msgid "On Effort" msgstr "Nach veranschlagtem Aufwand" msgctxt "selection:project.work,invoice_method:" msgid "On Progress" msgstr "Nach Fortschritt" msgctxt "selection:project.work,invoice_method:" msgid "On Timesheet" msgstr "Nach erfasstem Aufwand" msgctxt "selection:project.work,project_invoice_method:" msgid "Manual" msgstr "Manuell" msgctxt "selection:project.work,project_invoice_method:" msgid "On Effort" msgstr "Nach veranschlagtem Aufwand" msgctxt "selection:project.work,project_invoice_method:" msgid "On Progress" msgstr "Nach Fortschritt" msgctxt "selection:project.work,project_invoice_method:" msgid "On Timesheet" msgstr "Nach erfasstem Aufwand" msgctxt "view:project.work:" msgid "Invoice" msgstr "Rechnung erstellen" msgctxt "view:project.work.invoiced_progress:" msgid "Work Invoiced Progress" msgstr "Nach Forstschritt fakturierte Aufgabe" msgctxt "view:project.work.invoiced_progress:" msgid "Work Invoiced Progresses" msgstr "Nach Forstschritt fakturierte Aufgaben" trytond_project_invoice-5.0.1/locale/sl.po0000644000175000017500000000750113354423125020214 0ustar cedced00000000000000# msgid "" msgstr "Content-Type: text/plain; charset=utf-8\n" msgctxt "error:project.work:" msgid "There is no list price on work \"%s\"." msgstr "Pri nalogi \"%s\" ni cenika." msgctxt "error:project.work:" msgid "There is no party on work \"%s\"." msgstr "Pri nalogi \"%s\" ni partnerja." msgctxt "error:project.work:" msgid "There is no product on work \"%s\"." msgstr "Pri nalogi \"%s\" ni izdelka." msgctxt "error:timesheet.line:" msgid "You can not delete invoiced line." msgstr "Obračunane postavke ni možne brisati." msgctxt "error:timesheet.line:" msgid "You can not modify invoiced line." msgstr "Obračunane postavke ni možne popraviti." msgctxt "field:project.work,duration_to_invoice:" msgid "Duration to Invoice" msgstr "Čas do zaračunanja" msgctxt "field:project.work,invoice_line:" msgid "Invoice Line" msgstr "Postavka računa" msgctxt "field:project.work,invoice_method:" msgid "Invoice Method" msgstr "Način obračuna" msgctxt "field:project.work,invoiced_amount:" msgid "Invoiced Amount" msgstr "Zaračunan znesek" msgctxt "field:project.work,invoiced_duration:" msgid "Invoiced Duration" msgstr "Zaračunan porabljen čas" msgctxt "field:project.work,invoiced_progress:" msgid "Invoiced Progress" msgstr "Zaračunano opravljeno delo" msgctxt "field:project.work,project_invoice_method:" msgid "Invoice Method" msgstr "Način obračuna" msgctxt "field:project.work.invoiced_progress,create_date:" msgid "Create Date" msgstr "Izdelano" msgctxt "field:project.work.invoiced_progress,create_uid:" msgid "Create User" msgstr "Izdelal" msgctxt "field:project.work.invoiced_progress,effort_duration:" msgid "Effort" msgstr "Porabljen čas" msgctxt "field:project.work.invoiced_progress,id:" msgid "ID" msgstr "ID" msgctxt "field:project.work.invoiced_progress,invoice_line:" msgid "Invoice Line" msgstr "Postavka računa" msgctxt "field:project.work.invoiced_progress,rec_name:" msgid "Record Name" msgstr "Ime" msgctxt "field:project.work.invoiced_progress,work:" msgid "Work" msgstr "Naloga" msgctxt "field:project.work.invoiced_progress,write_date:" msgid "Write Date" msgstr "Zapisano" msgctxt "field:project.work.invoiced_progress,write_uid:" msgid "Write User" msgstr "Zapisal" msgctxt "field:timesheet.line,invoice_line:" msgid "Invoice Line" msgstr "Postavka računa" #, fuzzy msgctxt "model:ir.action,name:act_timesheet_line_form_invoice" msgid "Timesheet Lines" msgstr "Timesheet Lines" #, fuzzy msgctxt "model:ir.action,name:open_invoice" msgid "Invoices" msgstr "Invoices" msgctxt "model:ir.model.button,string:work_invoice_button" msgid "Invoice" msgstr "Invoice" msgctxt "model:project.work.invoiced_progress,name:" msgid "Work Invoiced Progress" msgstr "Zaračunano opravljeno delo" #, fuzzy msgctxt "model:res.group,name:group_project_invoice" msgid "Project Invoice" msgstr "Project Invoice" msgctxt "selection:project.work,invoice_method:" msgid "Manual" msgstr "Ročno" msgctxt "selection:project.work,invoice_method:" msgid "On Effort" msgstr "Po oceni dela" msgctxt "selection:project.work,invoice_method:" msgid "On Progress" msgstr "Po napredku" msgctxt "selection:project.work,invoice_method:" msgid "On Timesheet" msgstr "Po dejanskem delu" msgctxt "selection:project.work,project_invoice_method:" msgid "Manual" msgstr "Ročno" msgctxt "selection:project.work,project_invoice_method:" msgid "On Effort" msgstr "Po oceni dela" msgctxt "selection:project.work,project_invoice_method:" msgid "On Progress" msgstr "Po napredku" msgctxt "selection:project.work,project_invoice_method:" msgid "On Timesheet" msgstr "Po dejanskem delu" msgctxt "view:project.work:" msgid "Invoice" msgstr "Račun" msgctxt "view:project.work.invoiced_progress:" msgid "Work Invoiced Progress" msgstr "Zaračunano opravljeno delo" msgctxt "view:project.work.invoiced_progress:" msgid "Work Invoiced Progresses" msgstr "Zaračunana opravljena dela" trytond_project_invoice-5.0.1/locale/lt.po0000644000175000017500000000600613354423125020214 0ustar cedced00000000000000# msgid "" msgstr "Content-Type: text/plain; charset=utf-8\n" msgctxt "error:project.work:" msgid "There is no list price on work \"%s\"." msgstr "" msgctxt "error:project.work:" msgid "There is no party on work \"%s\"." msgstr "" msgctxt "error:project.work:" msgid "There is no product on work \"%s\"." msgstr "" msgctxt "error:timesheet.line:" msgid "You can not delete invoiced line." msgstr "" msgctxt "error:timesheet.line:" msgid "You can not modify invoiced line." msgstr "" msgctxt "field:project.work,duration_to_invoice:" msgid "Duration to Invoice" msgstr "" msgctxt "field:project.work,invoice_line:" msgid "Invoice Line" msgstr "" msgctxt "field:project.work,invoice_method:" msgid "Invoice Method" msgstr "" msgctxt "field:project.work,invoiced_amount:" msgid "Invoiced Amount" msgstr "" msgctxt "field:project.work,invoiced_duration:" msgid "Invoiced Duration" msgstr "" msgctxt "field:project.work,invoiced_progress:" msgid "Invoiced Progress" msgstr "" msgctxt "field:project.work,project_invoice_method:" msgid "Invoice Method" msgstr "" msgctxt "field:project.work.invoiced_progress,create_date:" msgid "Create Date" msgstr "" msgctxt "field:project.work.invoiced_progress,create_uid:" msgid "Create User" msgstr "" msgctxt "field:project.work.invoiced_progress,effort_duration:" msgid "Effort" msgstr "" msgctxt "field:project.work.invoiced_progress,id:" msgid "ID" msgstr "" msgctxt "field:project.work.invoiced_progress,invoice_line:" msgid "Invoice Line" msgstr "" msgctxt "field:project.work.invoiced_progress,rec_name:" msgid "Record Name" msgstr "" msgctxt "field:project.work.invoiced_progress,work:" msgid "Work" msgstr "" msgctxt "field:project.work.invoiced_progress,write_date:" msgid "Write Date" msgstr "" msgctxt "field:project.work.invoiced_progress,write_uid:" msgid "Write User" msgstr "" msgctxt "field:timesheet.line,invoice_line:" msgid "Invoice Line" msgstr "" msgctxt "model:ir.action,name:act_timesheet_line_form_invoice" msgid "Timesheet Lines" msgstr "Timesheet Lines" #, fuzzy msgctxt "model:ir.action,name:open_invoice" msgid "Invoices" msgstr "Invoices" msgctxt "model:ir.model.button,string:work_invoice_button" msgid "Invoice" msgstr "Invoice" msgctxt "model:project.work.invoiced_progress,name:" msgid "Work Invoiced Progress" msgstr "" msgctxt "model:res.group,name:group_project_invoice" msgid "Project Invoice" msgstr "Project Invoice" msgctxt "selection:project.work,invoice_method:" msgid "Manual" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "On Effort" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "On Progress" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "On Timesheet" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "Manual" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "On Effort" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "On Progress" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "On Timesheet" msgstr "" trytond_project_invoice-5.0.1/locale/it_IT.po0000644000175000017500000000645213354423125020612 0ustar cedced00000000000000# msgid "" msgstr "Content-Type: text/plain; charset=utf-8\n" msgctxt "error:project.work:" msgid "There is no list price on work \"%s\"." msgstr "" msgctxt "error:project.work:" msgid "There is no party on work \"%s\"." msgstr "" msgctxt "error:project.work:" msgid "There is no product on work \"%s\"." msgstr "" msgctxt "error:timesheet.line:" msgid "You can not delete invoiced line." msgstr "" msgctxt "error:timesheet.line:" msgid "You can not modify invoiced line." msgstr "" msgctxt "field:project.work,duration_to_invoice:" msgid "Duration to Invoice" msgstr "" #, fuzzy msgctxt "field:project.work,invoice_line:" msgid "Invoice Line" msgstr "Riga fattura" msgctxt "field:project.work,invoice_method:" msgid "Invoice Method" msgstr "" msgctxt "field:project.work,invoiced_amount:" msgid "Invoiced Amount" msgstr "" msgctxt "field:project.work,invoiced_duration:" msgid "Invoiced Duration" msgstr "" msgctxt "field:project.work,invoiced_progress:" msgid "Invoiced Progress" msgstr "" msgctxt "field:project.work,project_invoice_method:" msgid "Invoice Method" msgstr "" #, fuzzy msgctxt "field:project.work.invoiced_progress,create_date:" msgid "Create Date" msgstr "Data di creazione" #, fuzzy msgctxt "field:project.work.invoiced_progress,create_uid:" msgid "Create User" msgstr "Utente creazione" msgctxt "field:project.work.invoiced_progress,effort_duration:" msgid "Effort" msgstr "" #, fuzzy msgctxt "field:project.work.invoiced_progress,id:" msgid "ID" msgstr "Movimento contabile" #, fuzzy msgctxt "field:project.work.invoiced_progress,invoice_line:" msgid "Invoice Line" msgstr "Riga fattura" msgctxt "field:project.work.invoiced_progress,rec_name:" msgid "Record Name" msgstr "" msgctxt "field:project.work.invoiced_progress,work:" msgid "Work" msgstr "" #, fuzzy msgctxt "field:project.work.invoiced_progress,write_date:" msgid "Write Date" msgstr "Utente scrittura" #, fuzzy msgctxt "field:project.work.invoiced_progress,write_uid:" msgid "Write User" msgstr "modificato da" #, fuzzy msgctxt "field:timesheet.line,invoice_line:" msgid "Invoice Line" msgstr "Riga fattura" msgctxt "model:ir.action,name:act_timesheet_line_form_invoice" msgid "Timesheet Lines" msgstr "Timesheet Lines" #, fuzzy msgctxt "model:ir.action,name:open_invoice" msgid "Invoices" msgstr "Fatture" msgctxt "model:ir.model.button,string:work_invoice_button" msgid "Invoice" msgstr "Invoice" msgctxt "model:project.work.invoiced_progress,name:" msgid "Work Invoiced Progress" msgstr "" msgctxt "model:res.group,name:group_project_invoice" msgid "Project Invoice" msgstr "Project Invoice" #, fuzzy msgctxt "selection:project.work,invoice_method:" msgid "Manual" msgstr "Manuale" msgctxt "selection:project.work,invoice_method:" msgid "On Effort" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "On Progress" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "On Timesheet" msgstr "" #, fuzzy msgctxt "selection:project.work,project_invoice_method:" msgid "Manual" msgstr "Manuale" msgctxt "selection:project.work,project_invoice_method:" msgid "On Effort" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "On Progress" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "On Timesheet" msgstr "" #, fuzzy msgctxt "view:project.work:" msgid "Invoice" msgstr "Fattura" trytond_project_invoice-5.0.1/locale/ja_JP.po0000644000175000017500000000610613354423125020561 0ustar cedced00000000000000# msgid "" msgstr "Content-Type: text/plain; charset=utf-8\n" msgctxt "error:project.work:" msgid "There is no list price on work \"%s\"." msgstr "" msgctxt "error:project.work:" msgid "There is no party on work \"%s\"." msgstr "" msgctxt "error:project.work:" msgid "There is no product on work \"%s\"." msgstr "" msgctxt "error:timesheet.line:" msgid "You can not delete invoiced line." msgstr "" msgctxt "error:timesheet.line:" msgid "You can not modify invoiced line." msgstr "" msgctxt "field:project.work,duration_to_invoice:" msgid "Duration to Invoice" msgstr "" msgctxt "field:project.work,invoice_line:" msgid "Invoice Line" msgstr "" msgctxt "field:project.work,invoice_method:" msgid "Invoice Method" msgstr "" msgctxt "field:project.work,invoiced_amount:" msgid "Invoiced Amount" msgstr "" msgctxt "field:project.work,invoiced_duration:" msgid "Invoiced Duration" msgstr "" msgctxt "field:project.work,invoiced_progress:" msgid "Invoiced Progress" msgstr "" msgctxt "field:project.work,project_invoice_method:" msgid "Invoice Method" msgstr "" msgctxt "field:project.work.invoiced_progress,create_date:" msgid "Create Date" msgstr "" msgctxt "field:project.work.invoiced_progress,create_uid:" msgid "Create User" msgstr "" msgctxt "field:project.work.invoiced_progress,effort_duration:" msgid "Effort" msgstr "" msgctxt "field:project.work.invoiced_progress,id:" msgid "ID" msgstr "" msgctxt "field:project.work.invoiced_progress,invoice_line:" msgid "Invoice Line" msgstr "" msgctxt "field:project.work.invoiced_progress,rec_name:" msgid "Record Name" msgstr "" msgctxt "field:project.work.invoiced_progress,work:" msgid "Work" msgstr "" msgctxt "field:project.work.invoiced_progress,write_date:" msgid "Write Date" msgstr "" msgctxt "field:project.work.invoiced_progress,write_uid:" msgid "Write User" msgstr "" msgctxt "field:timesheet.line,invoice_line:" msgid "Invoice Line" msgstr "" msgctxt "model:ir.action,name:act_timesheet_line_form_invoice" msgid "Timesheet Lines" msgstr "Timesheet Lines" msgctxt "model:ir.action,name:open_invoice" msgid "Invoices" msgstr "Invoices" msgctxt "model:ir.model.button,string:work_invoice_button" msgid "Invoice" msgstr "Invoice" msgctxt "model:project.work.invoiced_progress,name:" msgid "Work Invoiced Progress" msgstr "" msgctxt "model:res.group,name:group_project_invoice" msgid "Project Invoice" msgstr "Project Invoice" msgctxt "selection:project.work,invoice_method:" msgid "Manual" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "On Effort" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "On Progress" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "On Timesheet" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "Manual" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "On Effort" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "On Progress" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "On Timesheet" msgstr "" #, fuzzy msgctxt "view:project.work:" msgid "Invoice" msgstr "Invoices" trytond_project_invoice-5.0.1/locale/fa.po0000644000175000017500000000767313354423125020176 0ustar cedced00000000000000# msgid "" msgstr "Content-Type: text/plain; charset=utf-8\n" msgctxt "error:project.work:" msgid "There is no list price on work \"%s\"." msgstr "در کار : \"%s\" هیچ لیست قیمتی وجود ندارد." msgctxt "error:project.work:" msgid "There is no party on work \"%s\"." msgstr "در کار : \"%s\" هیچ نهاد/سازمانی وجود ندارد." msgctxt "error:project.work:" msgid "There is no product on work \"%s\"." msgstr "در کار : \"%s\" هیچ محصولی وجود ندارد." msgctxt "error:timesheet.line:" msgid "You can not delete invoiced line." msgstr "شما نمی توانید خط صورتحساب را حذف کنید." msgctxt "error:timesheet.line:" msgid "You can not modify invoiced line." msgstr "شما نمی توانید خط صورتحساب را تغییردهید." msgctxt "field:project.work,duration_to_invoice:" msgid "Duration to Invoice" msgstr "مدت زمان صورتحساب" msgctxt "field:project.work,invoice_line:" msgid "Invoice Line" msgstr "خط صورتحساب" msgctxt "field:project.work,invoice_method:" msgid "Invoice Method" msgstr "سبک صورتحساب" msgctxt "field:project.work,invoiced_amount:" msgid "Invoiced Amount" msgstr "مبلغ صورتحساب" msgctxt "field:project.work,invoiced_duration:" msgid "Invoiced Duration" msgstr "مدت زمان فاکتور شده" msgctxt "field:project.work,invoiced_progress:" msgid "Invoiced Progress" msgstr "پیشرفت های فاکتورشده" msgctxt "field:project.work,project_invoice_method:" msgid "Invoice Method" msgstr "روش صورتحساب" msgctxt "field:project.work.invoiced_progress,create_date:" msgid "Create Date" msgstr "تاریخ ایجاد" msgctxt "field:project.work.invoiced_progress,create_uid:" msgid "Create User" msgstr "کاربر ایجاد کننده" msgctxt "field:project.work.invoiced_progress,effort_duration:" msgid "Effort" msgstr "تلاش" msgctxt "field:project.work.invoiced_progress,id:" msgid "ID" msgstr "شناسه" msgctxt "field:project.work.invoiced_progress,invoice_line:" msgid "Invoice Line" msgstr "خط صورتحساب" msgctxt "field:project.work.invoiced_progress,rec_name:" msgid "Record Name" msgstr "نام پرونده" msgctxt "field:project.work.invoiced_progress,work:" msgid "Work" msgstr "کار" msgctxt "field:project.work.invoiced_progress,write_date:" msgid "Write Date" msgstr "تاریخ نوشته" msgctxt "field:project.work.invoiced_progress,write_uid:" msgid "Write User" msgstr "نوشته کاربر" msgctxt "field:timesheet.line,invoice_line:" msgid "Invoice Line" msgstr "خط صورتحساب" msgctxt "model:ir.action,name:act_timesheet_line_form_invoice" msgid "Timesheet Lines" msgstr "خطوط جدول زمانی" msgctxt "model:ir.action,name:open_invoice" msgid "Invoices" msgstr "صورتحساب ها" msgctxt "model:ir.model.button,string:work_invoice_button" msgid "Invoice" msgstr "Invoice" msgctxt "model:project.work.invoiced_progress,name:" msgid "Work Invoiced Progress" msgstr "پیشرفت های کار فاکتورشده" msgctxt "model:res.group,name:group_project_invoice" msgid "Project Invoice" msgstr "صورتحساب پروژه" msgctxt "selection:project.work,invoice_method:" msgid "Manual" msgstr "دستی" msgctxt "selection:project.work,invoice_method:" msgid "On Effort" msgstr "در حال تلاش" msgctxt "selection:project.work,invoice_method:" msgid "On Progress" msgstr "در حال پیش رفت" msgctxt "selection:project.work,invoice_method:" msgid "On Timesheet" msgstr "در جدول زمانی" msgctxt "selection:project.work,project_invoice_method:" msgid "Manual" msgstr "دستی" msgctxt "selection:project.work,project_invoice_method:" msgid "On Effort" msgstr "در حال تلاش" msgctxt "selection:project.work,project_invoice_method:" msgid "On Progress" msgstr "در حال پیش رفت" msgctxt "selection:project.work,project_invoice_method:" msgid "On Timesheet" msgstr "در جدول زمانی" trytond_project_invoice-5.0.1/locale/bg.po0000644000175000017500000000700013354423125020160 0ustar cedced00000000000000# msgid "" msgstr "Content-Type: text/plain; charset=utf-8\n" msgctxt "error:project.work:" msgid "There is no list price on work \"%s\"." msgstr "" msgctxt "error:project.work:" msgid "There is no party on work \"%s\"." msgstr "" msgctxt "error:project.work:" msgid "There is no product on work \"%s\"." msgstr "" msgctxt "error:timesheet.line:" msgid "You can not delete invoiced line." msgstr "" msgctxt "error:timesheet.line:" msgid "You can not modify invoiced line." msgstr "" msgctxt "field:project.work,duration_to_invoice:" msgid "Duration to Invoice" msgstr "" #, fuzzy msgctxt "field:project.work,invoice_line:" msgid "Invoice Line" msgstr "Ред от фактура" #, fuzzy msgctxt "field:project.work,invoice_method:" msgid "Invoice Method" msgstr "Начин на фактуриране" msgctxt "field:project.work,invoiced_amount:" msgid "Invoiced Amount" msgstr "" msgctxt "field:project.work,invoiced_duration:" msgid "Invoiced Duration" msgstr "" msgctxt "field:project.work,invoiced_progress:" msgid "Invoiced Progress" msgstr "" #, fuzzy msgctxt "field:project.work,project_invoice_method:" msgid "Invoice Method" msgstr "Начин на фактуриране" #, fuzzy msgctxt "field:project.work.invoiced_progress,create_date:" msgid "Create Date" msgstr "Създадено на" #, fuzzy msgctxt "field:project.work.invoiced_progress,create_uid:" msgid "Create User" msgstr "Създадено от" msgctxt "field:project.work.invoiced_progress,effort_duration:" msgid "Effort" msgstr "" #, fuzzy msgctxt "field:project.work.invoiced_progress,id:" msgid "ID" msgstr "ID" #, fuzzy msgctxt "field:project.work.invoiced_progress,invoice_line:" msgid "Invoice Line" msgstr "Ред от фактура" msgctxt "field:project.work.invoiced_progress,rec_name:" msgid "Record Name" msgstr "" #, fuzzy msgctxt "field:project.work.invoiced_progress,work:" msgid "Work" msgstr "Задача" #, fuzzy msgctxt "field:project.work.invoiced_progress,write_date:" msgid "Write Date" msgstr "Променено на" #, fuzzy msgctxt "field:project.work.invoiced_progress,write_uid:" msgid "Write User" msgstr "Променено от" #, fuzzy msgctxt "field:timesheet.line,invoice_line:" msgid "Invoice Line" msgstr "Ред от фактура" #, fuzzy msgctxt "model:ir.action,name:act_timesheet_line_form_invoice" msgid "Timesheet Lines" msgstr "Редове от график" #, fuzzy msgctxt "model:ir.action,name:open_invoice" msgid "Invoices" msgstr "Фактури" msgctxt "model:ir.model.button,string:work_invoice_button" msgid "Invoice" msgstr "Invoice" msgctxt "model:project.work.invoiced_progress,name:" msgid "Work Invoiced Progress" msgstr "" msgctxt "model:res.group,name:group_project_invoice" msgid "Project Invoice" msgstr "Project Invoice" #, fuzzy msgctxt "selection:project.work,invoice_method:" msgid "Manual" msgstr "Ръчно" msgctxt "selection:project.work,invoice_method:" msgid "On Effort" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "On Progress" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "On Timesheet" msgstr "" #, fuzzy msgctxt "selection:project.work,project_invoice_method:" msgid "Manual" msgstr "Ръчно" msgctxt "selection:project.work,project_invoice_method:" msgid "On Effort" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "On Progress" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "On Timesheet" msgstr "" #, fuzzy msgctxt "view:project.work:" msgid "Invoice" msgstr "Фактури" trytond_project_invoice-5.0.1/locale/hu_HU.po0000644000175000017500000000624713354423125020614 0ustar cedced00000000000000# msgid "" msgstr "Content-Type: text/plain; charset=utf-8\n" msgctxt "error:project.work:" msgid "There is no list price on work \"%s\"." msgstr "" msgctxt "error:project.work:" msgid "There is no party on work \"%s\"." msgstr "" msgctxt "error:project.work:" msgid "There is no product on work \"%s\"." msgstr "" msgctxt "error:timesheet.line:" msgid "You can not delete invoiced line." msgstr "" msgctxt "error:timesheet.line:" msgid "You can not modify invoiced line." msgstr "" msgctxt "field:project.work,duration_to_invoice:" msgid "Duration to Invoice" msgstr "" msgctxt "field:project.work,invoice_line:" msgid "Invoice Line" msgstr "" msgctxt "field:project.work,invoice_method:" msgid "Invoice Method" msgstr "" msgctxt "field:project.work,invoiced_amount:" msgid "Invoiced Amount" msgstr "" msgctxt "field:project.work,invoiced_duration:" msgid "Invoiced Duration" msgstr "" msgctxt "field:project.work,invoiced_progress:" msgid "Invoiced Progress" msgstr "" msgctxt "field:project.work,project_invoice_method:" msgid "Invoice Method" msgstr "" #, fuzzy msgctxt "field:project.work.invoiced_progress,create_date:" msgid "Create Date" msgstr "Létrehozás détuma" #, fuzzy msgctxt "field:project.work.invoiced_progress,create_uid:" msgid "Create User" msgstr "Által létrehozva " msgctxt "field:project.work.invoiced_progress,effort_duration:" msgid "Effort" msgstr "" #, fuzzy msgctxt "field:project.work.invoiced_progress,id:" msgid "ID" msgstr "ID" msgctxt "field:project.work.invoiced_progress,invoice_line:" msgid "Invoice Line" msgstr "" msgctxt "field:project.work.invoiced_progress,rec_name:" msgid "Record Name" msgstr "" #, fuzzy msgctxt "field:project.work.invoiced_progress,work:" msgid "Work" msgstr "Tevékenység" #, fuzzy msgctxt "field:project.work.invoiced_progress,write_date:" msgid "Write Date" msgstr "utolsó módosítás dátuma" #, fuzzy msgctxt "field:project.work.invoiced_progress,write_uid:" msgid "Write User" msgstr "Által módosítva" msgctxt "field:timesheet.line,invoice_line:" msgid "Invoice Line" msgstr "" #, fuzzy msgctxt "model:ir.action,name:act_timesheet_line_form_invoice" msgid "Timesheet Lines" msgstr "Időpozíció" #, fuzzy msgctxt "model:ir.action,name:open_invoice" msgid "Invoices" msgstr "Invoices" msgctxt "model:ir.model.button,string:work_invoice_button" msgid "Invoice" msgstr "Invoice" msgctxt "model:project.work.invoiced_progress,name:" msgid "Work Invoiced Progress" msgstr "" msgctxt "model:res.group,name:group_project_invoice" msgid "Project Invoice" msgstr "Project Invoice" msgctxt "selection:project.work,invoice_method:" msgid "Manual" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "On Effort" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "On Progress" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "On Timesheet" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "Manual" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "On Effort" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "On Progress" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "On Timesheet" msgstr "" trytond_project_invoice-5.0.1/locale/es_419.po0000644000175000017500000000615213354423125020603 0ustar cedced00000000000000# msgid "" msgstr "Content-Type: text/plain; charset=utf-8\n" msgctxt "error:project.work:" msgid "There is no list price on work \"%s\"." msgstr "" msgctxt "error:project.work:" msgid "There is no party on work \"%s\"." msgstr "" msgctxt "error:project.work:" msgid "There is no product on work \"%s\"." msgstr "" msgctxt "error:timesheet.line:" msgid "You can not delete invoiced line." msgstr "" msgctxt "error:timesheet.line:" msgid "You can not modify invoiced line." msgstr "" msgctxt "field:project.work,duration_to_invoice:" msgid "Duration to Invoice" msgstr "Duración a facturar" msgctxt "field:project.work,invoice_line:" msgid "Invoice Line" msgstr "" msgctxt "field:project.work,invoice_method:" msgid "Invoice Method" msgstr "" msgctxt "field:project.work,invoiced_amount:" msgid "Invoiced Amount" msgstr "" msgctxt "field:project.work,invoiced_duration:" msgid "Invoiced Duration" msgstr "Duración facturada" #, fuzzy msgctxt "field:project.work,invoiced_progress:" msgid "Invoiced Progress" msgstr "Progreso facturado de trabajo" msgctxt "field:project.work,project_invoice_method:" msgid "Invoice Method" msgstr "" msgctxt "field:project.work.invoiced_progress,create_date:" msgid "Create Date" msgstr "" msgctxt "field:project.work.invoiced_progress,create_uid:" msgid "Create User" msgstr "Creado por usuario" msgctxt "field:project.work.invoiced_progress,effort_duration:" msgid "Effort" msgstr "Esfuerzo" msgctxt "field:project.work.invoiced_progress,id:" msgid "ID" msgstr "" msgctxt "field:project.work.invoiced_progress,invoice_line:" msgid "Invoice Line" msgstr "" msgctxt "field:project.work.invoiced_progress,rec_name:" msgid "Record Name" msgstr "" msgctxt "field:project.work.invoiced_progress,work:" msgid "Work" msgstr "" msgctxt "field:project.work.invoiced_progress,write_date:" msgid "Write Date" msgstr "" msgctxt "field:project.work.invoiced_progress,write_uid:" msgid "Write User" msgstr "Modificado por usuario" msgctxt "field:timesheet.line,invoice_line:" msgid "Invoice Line" msgstr "" msgctxt "model:ir.action,name:act_timesheet_line_form_invoice" msgid "Timesheet Lines" msgstr "" msgctxt "model:ir.action,name:open_invoice" msgid "Invoices" msgstr "" msgctxt "model:ir.model.button,string:work_invoice_button" msgid "Invoice" msgstr "" msgctxt "model:project.work.invoiced_progress,name:" msgid "Work Invoiced Progress" msgstr "Progreso facturado de trabajo" msgctxt "model:res.group,name:group_project_invoice" msgid "Project Invoice" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "Manual" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "On Effort" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "On Progress" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "On Timesheet" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "Manual" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "On Effort" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "On Progress" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "On Timesheet" msgstr "" trytond_project_invoice-5.0.1/locale/nl.po0000644000175000017500000000654613354423125020217 0ustar cedced00000000000000# msgid "" msgstr "Content-Type: text/plain; charset=utf-8\n" msgctxt "error:project.work:" msgid "There is no list price on work \"%s\"." msgstr "" msgctxt "error:project.work:" msgid "There is no party on work \"%s\"." msgstr "" msgctxt "error:project.work:" msgid "There is no product on work \"%s\"." msgstr "" msgctxt "error:timesheet.line:" msgid "You can not delete invoiced line." msgstr "" msgctxt "error:timesheet.line:" msgid "You can not modify invoiced line." msgstr "" msgctxt "field:project.work,duration_to_invoice:" msgid "Duration to Invoice" msgstr "" #, fuzzy msgctxt "field:project.work,invoice_line:" msgid "Invoice Line" msgstr "Factuurregel" #, fuzzy msgctxt "field:project.work,invoice_method:" msgid "Invoice Method" msgstr "Factuur afhandeling" msgctxt "field:project.work,invoiced_amount:" msgid "Invoiced Amount" msgstr "" msgctxt "field:project.work,invoiced_duration:" msgid "Invoiced Duration" msgstr "" msgctxt "field:project.work,invoiced_progress:" msgid "Invoiced Progress" msgstr "" #, fuzzy msgctxt "field:project.work,project_invoice_method:" msgid "Invoice Method" msgstr "Factuur afhandeling" #, fuzzy msgctxt "field:project.work.invoiced_progress,create_date:" msgid "Create Date" msgstr "Datum" #, fuzzy msgctxt "field:project.work.invoiced_progress,create_uid:" msgid "Create User" msgstr "Gebruiker" msgctxt "field:project.work.invoiced_progress,effort_duration:" msgid "Effort" msgstr "" #, fuzzy msgctxt "field:project.work.invoiced_progress,id:" msgid "ID" msgstr "ID" #, fuzzy msgctxt "field:project.work.invoiced_progress,invoice_line:" msgid "Invoice Line" msgstr "Factuurregel" msgctxt "field:project.work.invoiced_progress,rec_name:" msgid "Record Name" msgstr "" #, fuzzy msgctxt "field:project.work.invoiced_progress,work:" msgid "Work" msgstr "Werk" #, fuzzy msgctxt "field:project.work.invoiced_progress,write_date:" msgid "Write Date" msgstr "Schrijfdatum" #, fuzzy msgctxt "field:project.work.invoiced_progress,write_uid:" msgid "Write User" msgstr "Gebruiker" #, fuzzy msgctxt "field:timesheet.line,invoice_line:" msgid "Invoice Line" msgstr "Factuurregel" #, fuzzy msgctxt "model:ir.action,name:act_timesheet_line_form_invoice" msgid "Timesheet Lines" msgstr "Tijdregistratieregels" #, fuzzy msgctxt "model:ir.action,name:open_invoice" msgid "Invoices" msgstr "Verkoopfacturen" msgctxt "model:ir.model.button,string:work_invoice_button" msgid "Invoice" msgstr "Invoice" msgctxt "model:project.work.invoiced_progress,name:" msgid "Work Invoiced Progress" msgstr "" msgctxt "model:res.group,name:group_project_invoice" msgid "Project Invoice" msgstr "Project Invoice" #, fuzzy msgctxt "selection:project.work,invoice_method:" msgid "Manual" msgstr "Handmatig" msgctxt "selection:project.work,invoice_method:" msgid "On Effort" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "On Progress" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "On Timesheet" msgstr "" #, fuzzy msgctxt "selection:project.work,project_invoice_method:" msgid "Manual" msgstr "Handmatig" msgctxt "selection:project.work,project_invoice_method:" msgid "On Effort" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "On Progress" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "On Timesheet" msgstr "" #, fuzzy msgctxt "view:project.work:" msgid "Invoice" msgstr "Verkoopfacturen" trytond_project_invoice-5.0.1/locale/pt_BR.po0000644000175000017500000000762013354423125020606 0ustar cedced00000000000000# msgid "" msgstr "Content-Type: text/plain; charset=utf-8\n" msgctxt "error:project.work:" msgid "There is no list price on work \"%s\"." msgstr "Não há preço para a tarefa \"%s\"." msgctxt "error:project.work:" msgid "There is no party on work \"%s\"." msgstr "Não há pessoa na tarefa \"%s\"." msgctxt "error:project.work:" msgid "There is no product on work \"%s\"." msgstr "Não há produto na tarefa \"%s\"." msgctxt "error:timesheet.line:" msgid "You can not delete invoiced line." msgstr "Você não pode apagar uma linha já faturada." msgctxt "error:timesheet.line:" msgid "You can not modify invoiced line." msgstr "Você não pode modificar uma linha já faturada." msgctxt "field:project.work,duration_to_invoice:" msgid "Duration to Invoice" msgstr "Tempo a Faturar" msgctxt "field:project.work,invoice_line:" msgid "Invoice Line" msgstr "Linha da Fatura" msgctxt "field:project.work,invoice_method:" msgid "Invoice Method" msgstr "Método de Fatura" msgctxt "field:project.work,invoiced_amount:" msgid "Invoiced Amount" msgstr "Montante de Fatura" msgctxt "field:project.work,invoiced_duration:" msgid "Invoiced Duration" msgstr "Tempo Faturado" msgctxt "field:project.work,invoiced_progress:" msgid "Invoiced Progress" msgstr "Progresso Faturado" msgctxt "field:project.work,project_invoice_method:" msgid "Invoice Method" msgstr "Método de Faturamento" msgctxt "field:project.work.invoiced_progress,create_date:" msgid "Create Date" msgstr "Data de criação" msgctxt "field:project.work.invoiced_progress,create_uid:" msgid "Create User" msgstr "Criado por" msgctxt "field:project.work.invoiced_progress,effort_duration:" msgid "Effort" msgstr "Esforço" msgctxt "field:project.work.invoiced_progress,id:" msgid "ID" msgstr "ID" msgctxt "field:project.work.invoiced_progress,invoice_line:" msgid "Invoice Line" msgstr "Linha de Fatura" msgctxt "field:project.work.invoiced_progress,rec_name:" msgid "Record Name" msgstr "Nome do Registro" msgctxt "field:project.work.invoiced_progress,work:" msgid "Work" msgstr "Tarefa" msgctxt "field:project.work.invoiced_progress,write_date:" msgid "Write Date" msgstr "Data de edição" msgctxt "field:project.work.invoiced_progress,write_uid:" msgid "Write User" msgstr "Editado por" msgctxt "field:timesheet.line,invoice_line:" msgid "Invoice Line" msgstr "Linha de Fatura" #, fuzzy msgctxt "model:ir.action,name:act_timesheet_line_form_invoice" msgid "Timesheet Lines" msgstr "Timesheet Lines" #, fuzzy msgctxt "model:ir.action,name:open_invoice" msgid "Invoices" msgstr "Invoices" msgctxt "model:ir.model.button,string:work_invoice_button" msgid "Invoice" msgstr "Invoice" msgctxt "model:project.work.invoiced_progress,name:" msgid "Work Invoiced Progress" msgstr "Progresso Faturado de Tarefas" #, fuzzy msgctxt "model:res.group,name:group_project_invoice" msgid "Project Invoice" msgstr "Project Invoice" msgctxt "selection:project.work,invoice_method:" msgid "Manual" msgstr "Manual" msgctxt "selection:project.work,invoice_method:" msgid "On Effort" msgstr "Por esforço estimado" msgctxt "selection:project.work,invoice_method:" msgid "On Progress" msgstr "Em Progesso" msgctxt "selection:project.work,invoice_method:" msgid "On Timesheet" msgstr "Pelas Horas Utilizadas" msgctxt "selection:project.work,project_invoice_method:" msgid "Manual" msgstr "Manual" msgctxt "selection:project.work,project_invoice_method:" msgid "On Effort" msgstr "Por Esforço" msgctxt "selection:project.work,project_invoice_method:" msgid "On Progress" msgstr "Sobre o Progresso" msgctxt "selection:project.work,project_invoice_method:" msgid "On Timesheet" msgstr "Sobre o Horário de Trabalho" msgctxt "view:project.work:" msgid "Invoice" msgstr "Fatura" msgctxt "view:project.work.invoiced_progress:" msgid "Work Invoiced Progress" msgstr "Progresso Faturado do Trabalho" msgctxt "view:project.work.invoiced_progress:" msgid "Work Invoiced Progresses" msgstr "Progresso Faturado do Trabalho" trytond_project_invoice-5.0.1/locale/zh_CN.po0000644000175000017500000000615213354423125020600 0ustar cedced00000000000000# msgid "" msgstr "Content-Type: text/plain; charset=utf-8\n" msgctxt "error:project.work:" msgid "There is no list price on work \"%s\"." msgstr "" msgctxt "error:project.work:" msgid "There is no party on work \"%s\"." msgstr "" msgctxt "error:project.work:" msgid "There is no product on work \"%s\"." msgstr "" msgctxt "error:timesheet.line:" msgid "You can not delete invoiced line." msgstr "" msgctxt "error:timesheet.line:" msgid "You can not modify invoiced line." msgstr "" msgctxt "field:project.work,duration_to_invoice:" msgid "Duration to Invoice" msgstr "" msgctxt "field:project.work,invoice_line:" msgid "Invoice Line" msgstr "" msgctxt "field:project.work,invoice_method:" msgid "Invoice Method" msgstr "" msgctxt "field:project.work,invoiced_amount:" msgid "Invoiced Amount" msgstr "" msgctxt "field:project.work,invoiced_duration:" msgid "Invoiced Duration" msgstr "" msgctxt "field:project.work,invoiced_progress:" msgid "Invoiced Progress" msgstr "" msgctxt "field:project.work,project_invoice_method:" msgid "Invoice Method" msgstr "" #, fuzzy msgctxt "field:project.work.invoiced_progress,create_date:" msgid "Create Date" msgstr "创建日期:" #, fuzzy msgctxt "field:project.work.invoiced_progress,create_uid:" msgid "Create User" msgstr "添加用户" msgctxt "field:project.work.invoiced_progress,effort_duration:" msgid "Effort" msgstr "" #, fuzzy msgctxt "field:project.work.invoiced_progress,id:" msgid "ID" msgstr "编号" msgctxt "field:project.work.invoiced_progress,invoice_line:" msgid "Invoice Line" msgstr "" msgctxt "field:project.work.invoiced_progress,rec_name:" msgid "Record Name" msgstr "" msgctxt "field:project.work.invoiced_progress,work:" msgid "Work" msgstr "" #, fuzzy msgctxt "field:project.work.invoiced_progress,write_date:" msgid "Write Date" msgstr "写入日期" #, fuzzy msgctxt "field:project.work.invoiced_progress,write_uid:" msgid "Write User" msgstr "写入帐号" msgctxt "field:timesheet.line,invoice_line:" msgid "Invoice Line" msgstr "" msgctxt "model:ir.action,name:act_timesheet_line_form_invoice" msgid "Timesheet Lines" msgstr "Timesheet Lines" #, fuzzy msgctxt "model:ir.action,name:open_invoice" msgid "Invoices" msgstr "Invoices" msgctxt "model:ir.model.button,string:work_invoice_button" msgid "Invoice" msgstr "Invoice" msgctxt "model:project.work.invoiced_progress,name:" msgid "Work Invoiced Progress" msgstr "" msgctxt "model:res.group,name:group_project_invoice" msgid "Project Invoice" msgstr "Project Invoice" msgctxt "selection:project.work,invoice_method:" msgid "Manual" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "On Effort" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "On Progress" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "On Timesheet" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "Manual" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "On Effort" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "On Progress" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "On Timesheet" msgstr "" trytond_project_invoice-5.0.1/locale/fr.po0000644000175000017500000000772113354423125020211 0ustar cedced00000000000000# msgid "" msgstr "Content-Type: text/plain; charset=utf-8\n" msgctxt "error:project.work:" msgid "There is no list price on work \"%s\"." msgstr "Il n'y a pas de liste de prix pour le travail « %s »." msgctxt "error:project.work:" msgid "There is no party on work \"%s\"." msgstr "Il n'y a pas de tiers sur le travail « %s »." msgctxt "error:project.work:" msgid "There is no product on work \"%s\"." msgstr "Il n'y a pas de produit sur le travail « %s »." msgctxt "error:timesheet.line:" msgid "You can not delete invoiced line." msgstr "Vous ne pouvez supprimer une ligne facturée." msgctxt "error:timesheet.line:" msgid "You can not modify invoiced line." msgstr "Vous ne pouvez pas modifier une ligne facturée." msgctxt "field:project.work,duration_to_invoice:" msgid "Duration to Invoice" msgstr "Durée à facturer" msgctxt "field:project.work,invoice_line:" msgid "Invoice Line" msgstr "Ligne de facture" msgctxt "field:project.work,invoice_method:" msgid "Invoice Method" msgstr "Méthode de facturation" msgctxt "field:project.work,invoiced_amount:" msgid "Invoiced Amount" msgstr "Montant facturé" msgctxt "field:project.work,invoiced_duration:" msgid "Invoiced Duration" msgstr "Durée facturée" msgctxt "field:project.work,invoiced_progress:" msgid "Invoiced Progress" msgstr "Progression facturée" msgctxt "field:project.work,project_invoice_method:" msgid "Invoice Method" msgstr "Méthode de facturation" msgctxt "field:project.work.invoiced_progress,create_date:" msgid "Create Date" msgstr "Date de création" msgctxt "field:project.work.invoiced_progress,create_uid:" msgid "Create User" msgstr "Créé par" msgctxt "field:project.work.invoiced_progress,effort_duration:" msgid "Effort" msgstr "Effort" msgctxt "field:project.work.invoiced_progress,id:" msgid "ID" msgstr "ID" msgctxt "field:project.work.invoiced_progress,invoice_line:" msgid "Invoice Line" msgstr "Ligne de facture" msgctxt "field:project.work.invoiced_progress,rec_name:" msgid "Record Name" msgstr "Nom de l'enregistrement" msgctxt "field:project.work.invoiced_progress,work:" msgid "Work" msgstr "Travail" msgctxt "field:project.work.invoiced_progress,write_date:" msgid "Write Date" msgstr "Date de mise à jour" msgctxt "field:project.work.invoiced_progress,write_uid:" msgid "Write User" msgstr "Mis à jour par" msgctxt "field:timesheet.line,invoice_line:" msgid "Invoice Line" msgstr "Ligne de facture" msgctxt "model:ir.action,name:act_timesheet_line_form_invoice" msgid "Timesheet Lines" msgstr "Lignes de feuille de présence" msgctxt "model:ir.action,name:open_invoice" msgid "Invoices" msgstr "Factures" msgctxt "model:ir.model.button,string:work_invoice_button" msgid "Invoice" msgstr "Facturer" msgctxt "model:project.work.invoiced_progress,name:" msgid "Work Invoiced Progress" msgstr "Progression facturée de travail" msgctxt "model:res.group,name:group_project_invoice" msgid "Project Invoice" msgstr "Facture projet" msgctxt "selection:project.work,invoice_method:" msgid "Manual" msgstr "Manuelle" msgctxt "selection:project.work,invoice_method:" msgid "On Effort" msgstr "Sur l'effort" msgctxt "selection:project.work,invoice_method:" msgid "On Progress" msgstr "Sur progrès" msgctxt "selection:project.work,invoice_method:" msgid "On Timesheet" msgstr "Sur feuille de présence" msgctxt "selection:project.work,project_invoice_method:" msgid "Manual" msgstr "Manuel" msgctxt "selection:project.work,project_invoice_method:" msgid "On Effort" msgstr "Sur l'effort" msgctxt "selection:project.work,project_invoice_method:" msgid "On Progress" msgstr "Sur progrès" msgctxt "selection:project.work,project_invoice_method:" msgid "On Timesheet" msgstr "Sur feuille de présence" msgctxt "view:project.work:" msgid "Invoice" msgstr "Facturer" msgctxt "view:project.work.invoiced_progress:" msgid "Work Invoiced Progress" msgstr "Progression facturée de travail" msgctxt "view:project.work.invoiced_progress:" msgid "Work Invoiced Progresses" msgstr "Progressions facturées de travail" trytond_project_invoice-5.0.1/locale/pl.po0000644000175000017500000000625613354423125020217 0ustar cedced00000000000000# msgid "" msgstr "Content-Type: text/plain; charset=utf-8\n" msgctxt "error:project.work:" msgid "There is no list price on work \"%s\"." msgstr "" msgctxt "error:project.work:" msgid "There is no party on work \"%s\"." msgstr "" msgctxt "error:project.work:" msgid "There is no product on work \"%s\"." msgstr "" msgctxt "error:timesheet.line:" msgid "You can not delete invoiced line." msgstr "" msgctxt "error:timesheet.line:" msgid "You can not modify invoiced line." msgstr "" msgctxt "field:project.work,duration_to_invoice:" msgid "Duration to Invoice" msgstr "" msgctxt "field:project.work,invoice_line:" msgid "Invoice Line" msgstr "Wiersz faktury" msgctxt "field:project.work,invoice_method:" msgid "Invoice Method" msgstr "" msgctxt "field:project.work,invoiced_amount:" msgid "Invoiced Amount" msgstr "" msgctxt "field:project.work,invoiced_duration:" msgid "Invoiced Duration" msgstr "" msgctxt "field:project.work,invoiced_progress:" msgid "Invoiced Progress" msgstr "" msgctxt "field:project.work,project_invoice_method:" msgid "Invoice Method" msgstr "" msgctxt "field:project.work.invoiced_progress,create_date:" msgid "Create Date" msgstr "Data utworzenia" msgctxt "field:project.work.invoiced_progress,create_uid:" msgid "Create User" msgstr "Utworzył" msgctxt "field:project.work.invoiced_progress,effort_duration:" msgid "Effort" msgstr "" msgctxt "field:project.work.invoiced_progress,id:" msgid "ID" msgstr "ID" msgctxt "field:project.work.invoiced_progress,invoice_line:" msgid "Invoice Line" msgstr "Wiersz faktury" msgctxt "field:project.work.invoiced_progress,rec_name:" msgid "Record Name" msgstr "Nazwa rekordu" msgctxt "field:project.work.invoiced_progress,work:" msgid "Work" msgstr "Praca" msgctxt "field:project.work.invoiced_progress,write_date:" msgid "Write Date" msgstr "Data zapisu" msgctxt "field:project.work.invoiced_progress,write_uid:" msgid "Write User" msgstr "Zapisał" msgctxt "field:timesheet.line,invoice_line:" msgid "Invoice Line" msgstr "Wiersz faktury" msgctxt "model:ir.action,name:act_timesheet_line_form_invoice" msgid "Timesheet Lines" msgstr "Timesheet Lines" #, fuzzy msgctxt "model:ir.action,name:open_invoice" msgid "Invoices" msgstr "Invoices" msgctxt "model:ir.model.button,string:work_invoice_button" msgid "Invoice" msgstr "Invoice" msgctxt "model:project.work.invoiced_progress,name:" msgid "Work Invoiced Progress" msgstr "" msgctxt "model:res.group,name:group_project_invoice" msgid "Project Invoice" msgstr "Project Invoice" msgctxt "selection:project.work,invoice_method:" msgid "Manual" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "On Effort" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "On Progress" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "On Timesheet" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "Manual" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "On Effort" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "On Progress" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "On Timesheet" msgstr "" msgctxt "view:project.work:" msgid "Invoice" msgstr "Faktura" trytond_project_invoice-5.0.1/locale/lo.po0000644000175000017500000000711113354423125020205 0ustar cedced00000000000000# msgid "" msgstr "Content-Type: text/plain; charset=utf-8\n" msgctxt "error:project.work:" msgid "There is no list price on work \"%s\"." msgstr "" msgctxt "error:project.work:" msgid "There is no party on work \"%s\"." msgstr "" msgctxt "error:project.work:" msgid "There is no product on work \"%s\"." msgstr "" msgctxt "error:timesheet.line:" msgid "You can not delete invoiced line." msgstr "" msgctxt "error:timesheet.line:" msgid "You can not modify invoiced line." msgstr "" msgctxt "field:project.work,duration_to_invoice:" msgid "Duration to Invoice" msgstr "" #, fuzzy msgctxt "field:project.work,invoice_line:" msgid "Invoice Line" msgstr "ລາຍການ" msgctxt "field:project.work,invoice_method:" msgid "Invoice Method" msgstr "" msgctxt "field:project.work,invoiced_amount:" msgid "Invoiced Amount" msgstr "" msgctxt "field:project.work,invoiced_duration:" msgid "Invoiced Duration" msgstr "" msgctxt "field:project.work,invoiced_progress:" msgid "Invoiced Progress" msgstr "" msgctxt "field:project.work,project_invoice_method:" msgid "Invoice Method" msgstr "" #, fuzzy msgctxt "field:project.work.invoiced_progress,create_date:" msgid "Create Date" msgstr "ສ້າງວັນທີ" #, fuzzy msgctxt "field:project.work.invoiced_progress,create_uid:" msgid "Create User" msgstr "ສ້າງຜູ້ໃຊ້ງານ" msgctxt "field:project.work.invoiced_progress,effort_duration:" msgid "Effort" msgstr "" #, fuzzy msgctxt "field:project.work.invoiced_progress,id:" msgid "ID" msgstr "ເລດລຳດັບ" #, fuzzy msgctxt "field:project.work.invoiced_progress,invoice_line:" msgid "Invoice Line" msgstr "ລາຍການ" msgctxt "field:project.work.invoiced_progress,rec_name:" msgid "Record Name" msgstr "" #, fuzzy msgctxt "field:project.work.invoiced_progress,work:" msgid "Work" msgstr "ເຮັດວຽກ" #, fuzzy msgctxt "field:project.work.invoiced_progress,write_date:" msgid "Write Date" msgstr "ວັນທີບັນທຶກ" #, fuzzy msgctxt "field:project.work.invoiced_progress,write_uid:" msgid "Write User" msgstr "ສ້າງຜູ້ໃຊ້" #, fuzzy msgctxt "field:timesheet.line,invoice_line:" msgid "Invoice Line" msgstr "ລາຍການ" #, fuzzy msgctxt "model:ir.action,name:act_timesheet_line_form_invoice" msgid "Timesheet Lines" msgstr "ແຖວຕາຕະລາງເຮັດວຽກ" #, fuzzy msgctxt "model:ir.action,name:open_invoice" msgid "Invoices" msgstr "ໃບເກັບເງິນ" msgctxt "model:ir.model.button,string:work_invoice_button" msgid "Invoice" msgstr "Invoice" msgctxt "model:project.work.invoiced_progress,name:" msgid "Work Invoiced Progress" msgstr "" msgctxt "model:res.group,name:group_project_invoice" msgid "Project Invoice" msgstr "Project Invoice" #, fuzzy msgctxt "selection:project.work,invoice_method:" msgid "Manual" msgstr "ໃສ່ເອົາເອງ" msgctxt "selection:project.work,invoice_method:" msgid "On Effort" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "On Progress" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "On Timesheet" msgstr "" #, fuzzy msgctxt "selection:project.work,project_invoice_method:" msgid "Manual" msgstr "ໃສ່ເອົາເອງ" msgctxt "selection:project.work,project_invoice_method:" msgid "On Effort" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "On Progress" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "On Timesheet" msgstr "" #, fuzzy msgctxt "view:project.work:" msgid "Invoice" msgstr "ໃບເກັບເງິນພາສີທີ່ດິນ" trytond_project_invoice-5.0.1/locale/ca.po0000644000175000017500000000766313354423125020172 0ustar cedced00000000000000# msgid "" msgstr "Content-Type: text/plain; charset=utf-8\n" msgctxt "error:project.work:" msgid "There is no list price on work \"%s\"." msgstr "No hi ha cap preu al treball \"%s\"." msgctxt "error:project.work:" msgid "There is no party on work \"%s\"." msgstr "No hi ha cap tercer al treball \"%s\"." msgctxt "error:project.work:" msgid "There is no product on work \"%s\"." msgstr "No hi ha cap producte al treball \"%s\"." msgctxt "error:timesheet.line:" msgid "You can not delete invoiced line." msgstr "No podeu eliminar una línia facturada." msgctxt "error:timesheet.line:" msgid "You can not modify invoiced line." msgstr "No podeu modificar una línia facturada." msgctxt "field:project.work,duration_to_invoice:" msgid "Duration to Invoice" msgstr "Temps a facturar" msgctxt "field:project.work,invoice_line:" msgid "Invoice Line" msgstr "Línia de factura" msgctxt "field:project.work,invoice_method:" msgid "Invoice Method" msgstr "Mètode de facturació" msgctxt "field:project.work,invoiced_amount:" msgid "Invoiced Amount" msgstr "Import facturat" msgctxt "field:project.work,invoiced_duration:" msgid "Invoiced Duration" msgstr "Temps facturat" msgctxt "field:project.work,invoiced_progress:" msgid "Invoiced Progress" msgstr "Progrés facturat" msgctxt "field:project.work,project_invoice_method:" msgid "Invoice Method" msgstr "Mètode de facturació" msgctxt "field:project.work.invoiced_progress,create_date:" msgid "Create Date" msgstr "Data de creació" msgctxt "field:project.work.invoiced_progress,create_uid:" msgid "Create User" msgstr "Usuari de creació" msgctxt "field:project.work.invoiced_progress,effort_duration:" msgid "Effort" msgstr "Temps" msgctxt "field:project.work.invoiced_progress,id:" msgid "ID" msgstr "ID" msgctxt "field:project.work.invoiced_progress,invoice_line:" msgid "Invoice Line" msgstr "Línia de factura" msgctxt "field:project.work.invoiced_progress,rec_name:" msgid "Record Name" msgstr "Nom del registre" msgctxt "field:project.work.invoiced_progress,work:" msgid "Work" msgstr "Treball" msgctxt "field:project.work.invoiced_progress,write_date:" msgid "Write Date" msgstr "Data de modificació" msgctxt "field:project.work.invoiced_progress,write_uid:" msgid "Write User" msgstr "Usuari de modificació" msgctxt "field:timesheet.line,invoice_line:" msgid "Invoice Line" msgstr "Línia de factura" msgctxt "model:ir.action,name:act_timesheet_line_form_invoice" msgid "Timesheet Lines" msgstr "Línies del full de treball" msgctxt "model:ir.action,name:open_invoice" msgid "Invoices" msgstr "Factures" msgctxt "model:ir.model.button,string:work_invoice_button" msgid "Invoice" msgstr "Factura" msgctxt "model:project.work.invoiced_progress,name:" msgid "Work Invoiced Progress" msgstr "Progrés de treballs facturats" msgctxt "model:res.group,name:group_project_invoice" msgid "Project Invoice" msgstr "Facturació de projectes" msgctxt "selection:project.work,invoice_method:" msgid "Manual" msgstr "Manual" msgctxt "selection:project.work,invoice_method:" msgid "On Effort" msgstr "Per l'esforç estimat" msgctxt "selection:project.work,invoice_method:" msgid "On Progress" msgstr "Segons el progrés" msgctxt "selection:project.work,invoice_method:" msgid "On Timesheet" msgstr "Per les hores realitzades" msgctxt "selection:project.work,project_invoice_method:" msgid "Manual" msgstr "Manual" msgctxt "selection:project.work,project_invoice_method:" msgid "On Effort" msgstr "Per l'esforç estimat" msgctxt "selection:project.work,project_invoice_method:" msgid "On Progress" msgstr "Segons el progrés" msgctxt "selection:project.work,project_invoice_method:" msgid "On Timesheet" msgstr "Per les hores realitzades" msgctxt "view:project.work:" msgid "Invoice" msgstr "Factura" msgctxt "view:project.work.invoiced_progress:" msgid "Work Invoiced Progress" msgstr "Progrés del treball facturat" msgctxt "view:project.work.invoiced_progress:" msgid "Work Invoiced Progresses" msgstr "Progressos del treball facturat" trytond_project_invoice-5.0.1/locale/ru.po0000644000175000017500000000702413354423125020224 0ustar cedced00000000000000# msgid "" msgstr "Content-Type: text/plain; charset=utf-8\n" msgctxt "error:project.work:" msgid "There is no list price on work \"%s\"." msgstr "" msgctxt "error:project.work:" msgid "There is no party on work \"%s\"." msgstr "" msgctxt "error:project.work:" msgid "There is no product on work \"%s\"." msgstr "" msgctxt "error:timesheet.line:" msgid "You can not delete invoiced line." msgstr "" msgctxt "error:timesheet.line:" msgid "You can not modify invoiced line." msgstr "" msgctxt "field:project.work,duration_to_invoice:" msgid "Duration to Invoice" msgstr "" #, fuzzy msgctxt "field:project.work,invoice_line:" msgid "Invoice Line" msgstr "Строка инвойса" #, fuzzy msgctxt "field:project.work,invoice_method:" msgid "Invoice Method" msgstr "Метод инвойса" msgctxt "field:project.work,invoiced_amount:" msgid "Invoiced Amount" msgstr "" msgctxt "field:project.work,invoiced_duration:" msgid "Invoiced Duration" msgstr "" msgctxt "field:project.work,invoiced_progress:" msgid "Invoiced Progress" msgstr "" #, fuzzy msgctxt "field:project.work,project_invoice_method:" msgid "Invoice Method" msgstr "Метод инвойса" #, fuzzy msgctxt "field:project.work.invoiced_progress,create_date:" msgid "Create Date" msgstr "Дата создания" #, fuzzy msgctxt "field:project.work.invoiced_progress,create_uid:" msgid "Create User" msgstr "Создано пользователем" msgctxt "field:project.work.invoiced_progress,effort_duration:" msgid "Effort" msgstr "" #, fuzzy msgctxt "field:project.work.invoiced_progress,id:" msgid "ID" msgstr "ID" #, fuzzy msgctxt "field:project.work.invoiced_progress,invoice_line:" msgid "Invoice Line" msgstr "Строка инвойса" msgctxt "field:project.work.invoiced_progress,rec_name:" msgid "Record Name" msgstr "" #, fuzzy msgctxt "field:project.work.invoiced_progress,work:" msgid "Work" msgstr "Работа" #, fuzzy msgctxt "field:project.work.invoiced_progress,write_date:" msgid "Write Date" msgstr "Дата изменения" #, fuzzy msgctxt "field:project.work.invoiced_progress,write_uid:" msgid "Write User" msgstr "Изменено пользователем" #, fuzzy msgctxt "field:timesheet.line,invoice_line:" msgid "Invoice Line" msgstr "Строка инвойса" #, fuzzy msgctxt "model:ir.action,name:act_timesheet_line_form_invoice" msgid "Timesheet Lines" msgstr "Строки табеля" #, fuzzy msgctxt "model:ir.action,name:open_invoice" msgid "Invoices" msgstr "Инвойсы" msgctxt "model:ir.model.button,string:work_invoice_button" msgid "Invoice" msgstr "Invoice" msgctxt "model:project.work.invoiced_progress,name:" msgid "Work Invoiced Progress" msgstr "" msgctxt "model:res.group,name:group_project_invoice" msgid "Project Invoice" msgstr "Project Invoice" #, fuzzy msgctxt "selection:project.work,invoice_method:" msgid "Manual" msgstr "Ручной" msgctxt "selection:project.work,invoice_method:" msgid "On Effort" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "On Progress" msgstr "" msgctxt "selection:project.work,invoice_method:" msgid "On Timesheet" msgstr "" #, fuzzy msgctxt "selection:project.work,project_invoice_method:" msgid "Manual" msgstr "Ручной" msgctxt "selection:project.work,project_invoice_method:" msgid "On Effort" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "On Progress" msgstr "" msgctxt "selection:project.work,project_invoice_method:" msgid "On Timesheet" msgstr "" #, fuzzy msgctxt "view:project.work:" msgid "Invoice" msgstr "Инвойсы" trytond_project_invoice-5.0.1/view/0000755000175000017500000000000013433070002016734 5ustar cedced00000000000000trytond_project_invoice-5.0.1/view/work_invoiced_progress_form.xml0000644000175000017500000000060513354423125025302 0ustar cedced00000000000000