diff --git a/addons/account/__openerp__.py b/addons/account/__openerp__.py index 114f0a5860c..e1b9078ec3f 100644 --- a/addons/account/__openerp__.py +++ b/addons/account/__openerp__.py @@ -29,25 +29,23 @@ Accounting and Financial Management. Financial and accounting module that covers: -------------------------------------------- -General accountings -Cost / Analytic accounting -Third party accounting -Taxes management -Budgets -Customer and Supplier Invoices -Bank statements -Reconciliation process by partner + * General Accounting + * Cost/Analytic accounting + * Third party accounting + * Taxes management + * Budgets + * Customer and Supplier Invoices + * Bank statements + * Reconciliation process by partner Creates a dashboard for accountants that includes: -------------------------------------------------- -* List of Customer Invoice to Approve -* Company Analysis -* Graph of Aged Receivables -* Graph of Treasury + * List of Customer Invoice to Approve + * Company Analysis + * Graph of Treasury -The processes like maintaining of general ledger is done through the defined financial Journals (entry move line or -grouping is maintained through journal) for a particular financial year and for preparation of vouchers there is a -module named account_voucher. +The processes like maintaining of general ledger is done through the defined financial Journals (entry move line orgrouping is maintained through journal) for a particular +financial year and for preparation of vouchers there is a module named account_voucher. """, 'website': 'http://www.openerp.com', 'images' : ['images/accounts.jpeg','images/bank_statement.jpeg','images/cash_register.jpeg','images/chart_of_accounts.jpeg','images/customer_invoice.jpeg','images/journal_entries.jpeg'], diff --git a/addons/account/account.py b/addons/account/account.py index fab9de5407c..cbba0237c78 100644 --- a/addons/account/account.py +++ b/addons/account/account.py @@ -29,6 +29,8 @@ import pooler from osv import fields, osv import decimal_precision as dp from tools.translate import _ +from tools.float_utils import float_round + _logger = logging.getLogger(__name__) def check_cycle(self, cr, uid, ids, context=None): @@ -101,7 +103,7 @@ class account_payment_term_line(osv.osv): 'value': fields.selection([('procent', 'Percent'), ('balance', 'Balance'), ('fixed', 'Fixed Amount')], 'Valuation', - required=True, help="""Select here the kind of valuation related to this payment term line. Note that you should have your last line with the type 'Balance' to ensure that the whole amount will be threated."""), + required=True, help="""Select here the kind of valuation related to this payment term line. Note that you should have your last line with the type 'Balance' to ensure that the whole amount will be treated."""), 'value_amount': fields.float('Amount To Pay', digits_compute=dp.get_precision('Payment Term'), help="For percent enter a ratio between 0-1."), 'days': fields.integer('Number of Days', required=True, help="Number of days to add before computation of the day of month." \ @@ -313,8 +315,8 @@ class account_account(osv.osv): cr.execute(request, params) _logger.debug('Status: %s',(cr.statusmessage)) - for res in cr.dictfetchall(): - accounts[res['id']] = res + for row in cr.dictfetchall(): + accounts[row['id']] = row # consolidate accounts with direct children children_and_consolidated.reverse() @@ -731,7 +733,7 @@ class account_journal(osv.osv): 'centralisation': fields.boolean('Centralised counterpart', help="Check this box to determine that each entry of this journal won't create a new counterpart but will share the same counterpart. This is used in fiscal year closing."), 'update_posted': fields.boolean('Allow Cancelling Entries', help="Check this box if you want to allow the cancellation the entries related to this journal or of the invoice related to this journal"), 'group_invoice_lines': fields.boolean('Group Invoice Lines', help="If this box is checked, the system will try to group the accounting lines when generating them from invoices."), - 'sequence_id': fields.many2one('ir.sequence', 'Entry Sequence', help="This field contains the informatin related to the numbering of the journal entries of this journal.", required=True), + 'sequence_id': fields.many2one('ir.sequence', 'Entry Sequence', help="This field contains the information related to the numbering of the journal entries of this journal.", required=True), 'user_id': fields.many2one('res.users', 'User', help="The user responsible for this journal"), 'groups_id': fields.many2many('res.groups', 'account_journal_group_rel', 'journal_id', 'group_id', 'Groups'), 'currency': fields.many2one('res.currency', 'Currency', help='The currency used to enter statement'), @@ -1269,7 +1271,7 @@ class account_move(osv.osv): 'period_id': fields.many2one('account.period', 'Period', required=True, states={'posted':[('readonly',True)]}), 'journal_id': fields.many2one('account.journal', 'Journal', required=True, states={'posted':[('readonly',True)]}), 'state': fields.selection([('draft','Unposted'), ('posted','Posted')], 'Status', required=True, readonly=True, - help='All manually created new journal entries are usually in the state \'Unposted\', but you can set the option to skip that state on the related journal. In that case, they will be behave as journal entries automatically created by the system on document validation (invoices, bank statements...) and will be created in \'Posted\' state.'), + help='All manually created new journal entries are usually in the state \'Unposted\', but you can set the option to skip that state on the related journal. In that case, they will behave as journal entries automatically created by the system on document validation (invoices, bank statements...) and will be created in \'Posted\' state.'), 'line_id': fields.one2many('account.move.line', 'move_id', 'Entries', states={'posted':[('readonly',True)]}), 'to_check': fields.boolean('To Review', help='Check this box if you are unsure of that journal entry and if you want to note it as \'to be reviewed\' by an accounting expert.'), 'partner_id': fields.related('line_id', 'partner_id', type="many2one", relation="res.partner", string="Partner", store=True), @@ -1788,7 +1790,7 @@ class account_tax_code(osv.osv): 'line_ids': fields.one2many('account.move.line', 'tax_code_id', 'Lines'), 'company_id': fields.many2one('res.company', 'Company', required=True), 'sign': fields.float('Coefficent for parent', required=True, help='You can specify here the coefficient that will be used when consolidating the amount of this case into its parent. For example, set 1/-1 if you want to add/substract it.'), - 'notprintable':fields.boolean("Not Printable in Invoice", help="Check this box if you don't want any VAT related to this Tax Code to appear on invoices"), + 'notprintable':fields.boolean("Not Printable in Invoice", help="Check this box if you don't want any tax related to this tax code to appear on invoices"), 'sequence': fields.integer('Sequence', help="Determine the display order in the report 'Accounting \ Reporting \ Generic Reporting \ Taxes \ Taxes Report'"), } @@ -1880,17 +1882,17 @@ class account_tax(osv.osv): 'python_applicable':fields.text('Python Code'), # - # Fields used for the VAT declaration + # Fields used for the Tax declaration # - 'base_code_id': fields.many2one('account.tax.code', 'Account Base Code', help="Use this code for the VAT declaration."), - 'tax_code_id': fields.many2one('account.tax.code', 'Account Tax Code', help="Use this code for the VAT declaration."), + 'base_code_id': fields.many2one('account.tax.code', 'Account Base Code', help="Use this code for the tax declaration."), + 'tax_code_id': fields.many2one('account.tax.code', 'Account Tax Code', help="Use this code for the tax declaration."), 'base_sign': fields.float('Base Code Sign', help="Usually 1 or -1."), 'tax_sign': fields.float('Tax Code Sign', help="Usually 1 or -1."), # Same fields for refund invoices - 'ref_base_code_id': fields.many2one('account.tax.code', 'Refund Base Code', help="Use this code for the VAT declaration."), - 'ref_tax_code_id': fields.many2one('account.tax.code', 'Refund Tax Code', help="Use this code for the VAT declaration."), + 'ref_base_code_id': fields.many2one('account.tax.code', 'Refund Base Code', help="Use this code for the tax declaration."), + 'ref_tax_code_id': fields.many2one('account.tax.code', 'Refund Tax Code', help="Use this code for the tax declaration."), 'ref_base_sign': fields.float('Base Code Sign', help="Usually 1 or -1."), 'ref_tax_sign': fields.float('Tax Code Sign', help="Usually 1 or -1."), 'include_base_amount': fields.boolean('Included in base amount', help="Indicates if the amount of tax must be included in the base amount for the computation of the next taxes"), @@ -2090,7 +2092,7 @@ class account_tax(osv.osv): tax_compute_precision = precision if taxes and taxes[0].company_id.tax_calculation_rounding_method == 'round_globally': tax_compute_precision += 5 - totalin = totalex = round(price_unit * quantity, precision) + totalin = totalex = float_round(price_unit * quantity, precision) tin = [] tex = [] for tax in taxes: @@ -2217,7 +2219,7 @@ class account_tax(osv.osv): def compute_inv(self, cr, uid, taxes, price_unit, quantity, product=None, partner=None, precision=None): """ Compute tax values for given PRICE_UNIT, QUANTITY and a buyer/seller ADDRESS_ID. - Price Unit is a VAT included price + Price Unit is a Tax included price RETURN: [ tax ] @@ -2673,7 +2675,7 @@ class account_tax_code_template(osv.osv): 'parent_id': fields.many2one('account.tax.code.template', 'Parent Code', select=True), 'child_ids': fields.one2many('account.tax.code.template', 'parent_id', 'Child Codes'), 'sign': fields.float('Sign For Parent', required=True), - 'notprintable':fields.boolean("Not Printable in Invoice", help="Check this box if you don't want any VAT related to this Tax Code to appear on invoices"), + 'notprintable':fields.boolean("Not Printable in Invoice", help="Check this box if you don't want any tax related to this tax Code to appear on invoices."), } _defaults = { @@ -2788,17 +2790,17 @@ class account_tax_template(osv.osv): 'python_applicable':fields.text('Python Code'), # - # Fields used for the VAT declaration + # Fields used for the Tax declaration # - 'base_code_id': fields.many2one('account.tax.code.template', 'Base Code', help="Use this code for the VAT declaration."), - 'tax_code_id': fields.many2one('account.tax.code.template', 'Tax Code', help="Use this code for the VAT declaration."), + 'base_code_id': fields.many2one('account.tax.code.template', 'Base Code', help="Use this code for the tax declaration."), + 'tax_code_id': fields.many2one('account.tax.code.template', 'Tax Code', help="Use this code for the tax declaration."), 'base_sign': fields.float('Base Code Sign', help="Usually 1 or -1."), 'tax_sign': fields.float('Tax Code Sign', help="Usually 1 or -1."), # Same fields for refund invoices - 'ref_base_code_id': fields.many2one('account.tax.code.template', 'Refund Base Code', help="Use this code for the VAT declaration."), - 'ref_tax_code_id': fields.many2one('account.tax.code.template', 'Refund Tax Code', help="Use this code for the VAT declaration."), + 'ref_base_code_id': fields.many2one('account.tax.code.template', 'Refund Base Code', help="Use this code for the tax declaration."), + 'ref_tax_code_id': fields.many2one('account.tax.code.template', 'Refund Tax Code', help="Use this code for the tax declaration."), 'ref_base_sign': fields.float('Base Code Sign', help="Usually 1 or -1."), 'ref_tax_sign': fields.float('Tax Code Sign', help="Usually 1 or -1."), 'include_base_amount': fields.boolean('Include in Base Amount', help="Set if the amount of tax must be included in the base amount before computing the next taxes."), diff --git a/addons/account/account_bank_statement.py b/addons/account/account_bank_statement.py index 8f9c6ed1d6f..11bcf565260 100644 --- a/addons/account/account_bank_statement.py +++ b/addons/account/account_bank_statement.py @@ -173,7 +173,158 @@ class account_bank_statement(osv.osv): def button_dummy(self, cr, uid, ids, context=None): return self.write(cr, uid, ids, {}, context=context) + def _prepare_move(self, cr, uid, st_line, st_line_number, context=None): + """Prepare the dict of values to create the move from a + statement line. This method may be overridden to implement custom + move generation (making sure to call super() to establish + a clean extension chain). + + :param browse_record st_line: account.bank.statement.line record to + create the move from. + :param char st_line_number: will be used as the name of the generated account move + :return: dict of value to create() the account.move + """ + return { + 'journal_id': st_line.statement_id.journal_id.id, + 'period_id': st_line.statement_id.period_id.id, + 'date': st_line.date, + 'name': st_line_number, + 'ref': st_line.ref, + } + + def _prepare_bank_move_line(self, cr, uid, st_line, move_id, amount, company_currency_id, + context=None): + """Compute the args to build the dict of values to create the bank move line from a + statement line by calling the _prepare_move_line_vals. This method may be + overridden to implement custom move generation (making sure to call super() to + establish a clean extension chain). + + :param browse_record st_line: account.bank.statement.line record to + create the move from. + :param int/long move_id: ID of the account.move to link the move line + :param float amount: amount of the move line + :param int/long company_currency_id: ID of currency of the concerned company + :return: dict of value to create() the bank account.move.line + """ + anl_id = st_line.analytic_account_id and st_line.analytic_account_id.id or False + debit = ((amount<0) and -amount) or 0.0 + credit = ((amount>0) and amount) or 0.0 + cur_id = False + amt_cur = False + if st_line.statement_id.currency.id <> company_currency_id: + cur_id = st_line.statement_id.currency.id + if st_line.account_id and st_line.account_id.currency_id and st_line.account_id.currency_id.id <> company_currency_id: + cur_id = st_line.account_id.currency_id.id + if cur_id: + res_currency_obj = self.pool.get('res.currency') + amt_cur = -res_currency_obj.compute(cr, uid, company_currency_id, cur_id, amount, context=context) + + res = self._prepare_move_line_vals(cr, uid, st_line, move_id, debit, credit, + amount_currency=amt_cur, currency_id=cur_id, analytic_id=anl_id, context=context) + return res + + def _get_counter_part_account(sefl, cr, uid, st_line, context=None): + """Retrieve the account to use in the counterpart move. + This method may be overridden to implement custom move generation (making sure to + call super() to establish a clean extension chain). + + :param browse_record st_line: account.bank.statement.line record to + create the move from. + :return: int/long of the account.account to use as counterpart + """ + if st_line.amount >= 0: + return st_line.statement_id.journal_id.default_credit_account_id.id + return st_line.statement_id.journal_id.default_debit_account_id.id + + def _get_counter_part_partner(sefl, cr, uid, st_line, context=None): + """Retrieve the partner to use in the counterpart move. + This method may be overridden to implement custom move generation (making sure to + call super() to establish a clean extension chain). + + :param browse_record st_line: account.bank.statement.line record to + create the move from. + :return: int/long of the res.partner to use as counterpart + """ + return st_line.partner_id and st_line.partner_id.id or False + + def _prepare_counterpart_move_line(self, cr, uid, st_line, move_id, amount, company_currency_id, + context=None): + """Compute the args to build the dict of values to create the counter part move line from a + statement line by calling the _prepare_move_line_vals. This method may be + overridden to implement custom move generation (making sure to call super() to + establish a clean extension chain). + + :param browse_record st_line: account.bank.statement.line record to + create the move from. + :param int/long move_id: ID of the account.move to link the move line + :param float amount: amount of the move line + :param int/long account_id: ID of account to use as counter part + :param int/long company_currency_id: ID of currency of the concerned company + :return: dict of value to create() the bank account.move.line + """ + account_id = self._get_counter_part_account(cr, uid, st_line, context=context) + partner_id = self._get_counter_part_partner(cr, uid, st_line, context=context) + debit = ((amount > 0) and amount) or 0.0 + credit = ((amount < 0) and -amount) or 0.0 + cur_id = False + amt_cur = False + if st_line.statement_id.currency.id <> company_currency_id: + amt_cur = st_line.amount + cur_id = st_line.statement_id.currency.id + return self._prepare_move_line_vals(cr, uid, st_line, move_id, debit, credit, + amount_currency = amt_cur, currency_id = cur_id, account_id = account_id, + partner_id = partner_id, context=context) + + def _prepare_move_line_vals(self, cr, uid, st_line, move_id, debit, credit, currency_id = False, + amount_currency= False, account_id = False, analytic_id = False, + partner_id = False, context=None): + """Prepare the dict of values to create the move line from a + statement line. All non-mandatory args will replace the default computed one. + This method may be overridden to implement custom move generation (making sure to + call super() to establish a clean extension chain). + + :param browse_record st_line: account.bank.statement.line record to + create the move from. + :param int/long move_id: ID of the account.move to link the move line + :param float debit: debit amount of the move line + :param float credit: credit amount of the move line + :param int/long currency_id: ID of currency of the move line to create + :param float amount_currency: amount of the debit/credit expressed in the currency_id + :param int/long account_id: ID of the account to use in the move line if different + from the statement line account ID + :param int/long analytic_id: ID of analytic account to put on the move line + :param int/long partner_id: ID of the partner to put on the move line + :return: dict of value to create() the account.move.line + """ + acc_id = account_id or st_line.account_id.id + cur_id = currency_id or st_line.statement_id.currency.id + par_id = partner_id or (((st_line.partner_id) and st_line.partner_id.id) or False) + return { + 'name': st_line.name, + 'date': st_line.date, + 'ref': st_line.ref, + 'move_id': move_id, + 'partner_id': partner_id, + 'account_id': acc_id, + 'credit': credit, + 'debit': debit, + 'statement_id': st_line.statement_id.id, + 'journal_id': st_line.statement_id.journal_id.id, + 'period_id': st_line.statement_id.period_id.id, + 'currency_id': cur_id, + 'amount_currency': amount_currency, + 'analytic_account_id': analytic_id, + } + def create_move_from_st_line(self, cr, uid, st_line_id, company_currency_id, st_line_number, context=None): + """Create the account move from the statement line. + + :param int/long st_line_id: ID of the account.bank.statement.line to create the move from. + :param int/long company_currency_id: ID of the res.currency of the company + :param char st_line_number: will be used as the name of the generated account move + :return: ID of the account.move created + """ + if context is None: context = {} res_currency_obj = self.pool.get('res.currency') @@ -185,82 +336,28 @@ class account_bank_statement(osv.osv): context.update({'date': st_line.date}) - move_id = account_move_obj.create(cr, uid, { - 'journal_id': st.journal_id.id, - 'period_id': st.period_id.id, - 'date': st_line.date, - 'name': st_line_number, - 'ref': st_line.ref, - }, context=context) + move_vals = self._prepare_move(cr, uid, st_line, st_line_number, context=context) + move_id = account_move_obj.create(cr, uid, move_vals, context=context) account_bank_statement_line_obj.write(cr, uid, [st_line.id], { 'move_ids': [(4, move_id, False)] }) - torec = [] - if st_line.amount >= 0: - account_id = st.journal_id.default_credit_account_id.id - else: - account_id = st.journal_id.default_debit_account_id.id - acc_cur = ((st_line.amount<=0) and st.journal_id.default_debit_account_id) or st_line.account_id + context.update({ 'res.currency.compute.account': acc_cur, }) amount = res_currency_obj.compute(cr, uid, st.currency.id, company_currency_id, st_line.amount, context=context) - val = { - 'name': st_line.name, - 'date': st_line.date, - 'ref': st_line.ref, - 'move_id': move_id, - 'partner_id': ((st_line.partner_id) and st_line.partner_id.id) or False, - 'account_id': (st_line.account_id) and st_line.account_id.id, - 'credit': ((amount>0) and amount) or 0.0, - 'debit': ((amount<0) and -amount) or 0.0, - 'statement_id': st.id, - 'journal_id': st.journal_id.id, - 'period_id': st.period_id.id, - 'currency_id': st.currency.id, - 'analytic_account_id': st_line.analytic_account_id and st_line.analytic_account_id.id or False - } - - if st.currency.id <> company_currency_id: - amount_cur = res_currency_obj.compute(cr, uid, company_currency_id, - st.currency.id, amount, context=context) - val['amount_currency'] = -amount_cur - - if st_line.account_id and st_line.account_id.currency_id and st_line.account_id.currency_id.id <> company_currency_id: - val['currency_id'] = st_line.account_id.currency_id.id - amount_cur = res_currency_obj.compute(cr, uid, company_currency_id, - st_line.account_id.currency_id.id, amount, context=context) - val['amount_currency'] = -amount_cur - - move_line_id = account_move_line_obj.create(cr, uid, val, context=context) + bank_move_vals = self._prepare_bank_move_line(cr, uid, st_line, move_id, amount, + company_currency_id, context=context) + move_line_id = account_move_line_obj.create(cr, uid, bank_move_vals, context=context) torec.append(move_line_id) - # Fill the secondary amount/currency - # if currency is not the same than the company - amount_currency = False - currency_id = False - if st.currency.id <> company_currency_id: - amount_currency = st_line.amount - currency_id = st.currency.id - account_move_line_obj.create(cr, uid, { - 'name': st_line.name, - 'date': st_line.date, - 'ref': st_line.ref, - 'move_id': move_id, - 'partner_id': ((st_line.partner_id) and st_line.partner_id.id) or False, - 'account_id': account_id, - 'credit': ((amount < 0) and -amount) or 0.0, - 'debit': ((amount > 0) and amount) or 0.0, - 'statement_id': st.id, - 'journal_id': st.journal_id.id, - 'period_id': st.period_id.id, - 'amount_currency': amount_currency, - 'currency_id': currency_id, - }, context=context) + counterpart_move_vals = self._prepare_counterpart_move_line(cr, uid, st_line, move_id, + amount, company_currency_id, context=context) + account_move_line_obj.create(cr, uid, counterpart_move_vals, context=context) for line in account_move_line_obj.browse(cr, uid, [x.id for x in account_move_obj.browse(cr, uid, move_id, diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml index f1394521f10..d039eb87906 100644 --- a/addons/account/account_invoice_view.xml +++ b/addons/account/account_invoice_view.xml @@ -196,7 +196,7 @@ - + @@ -344,7 +344,22 @@ - + + + + + + + + + + + + +
diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py index 57cc125bb5b..5eb56bfa645 100644 --- a/addons/account/account_move_line.py +++ b/addons/account/account_move_line.py @@ -327,7 +327,7 @@ class account_move_line(osv.osv): if account and ((not fields) or ('debit' in fields) or ('credit' in fields)): data['account_id'] = account.id - # Propose the price VAT excluded, the VAT will be added when confirming line + # Propose the price Tax excluded, the Tax will be added when confirming line if account.tax_ids: taxes = fiscal_pos_obj.map_tax(cr, uid, part and part.property_account_position or False, account.tax_ids) tax = tax_obj.browse(cr, uid, taxes) @@ -1347,7 +1347,7 @@ class account_move_line(osv.osv): } if data['tax_code_id']: self.create(cr, uid, data, context) - #create the VAT movement + #create the Tax movement data = { 'move_id': vals['move_id'], 'name': tools.ustr(vals['name'] or '') + ' ' + tools.ustr(tax['name'] or ''), diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml index d903b41e6d4..7c1d9ab8137 100644 --- a/addons/account/account_view.xml +++ b/addons/account/account_view.xml @@ -2518,7 +2518,7 @@ action = pool.get('res.config').next(cr, uid, [], context)

- + diff --git a/addons/account/company.py b/addons/account/company.py index 3bb241a42a6..1ec9b8c55da 100644 --- a/addons/account/company.py +++ b/addons/account/company.py @@ -45,7 +45,7 @@ class res_company(osv.osv): _defaults = { 'expects_chart_of_accounts': True, 'tax_calculation_rounding_method': 'round_per_line', - 'overdue_msg': '''Dear Sir, dear Madam, + 'overdue_msg': '''Dear Sir/Madam, Our records indicate that some payments on your account are still due. Please find details below. If the amount has already been paid, please disregard this notice. Otherwise, please forward us the total amount stated below. diff --git a/addons/account/i18n/account.pot b/addons/account/i18n/account.pot index b092b3a2f8c..174002a8d8d 100644 --- a/addons/account/i18n/account.pot +++ b/addons/account/i18n/account.pot @@ -203,7 +203,7 @@ msgstr "" #. module: account #: help:account.tax.code,notprintable:0 #: help:account.tax.code.template,notprintable:0 -msgid "Check this box if you don't want any VAT related to this Tax Code to appear on invoices" +msgid "Check this box if you don't want any tax related to this tax code to appear on invoices" msgstr "" #. module: account @@ -1853,7 +1853,7 @@ msgstr "" #. module: account #: report:account.journal.period.print.sale.purchase:0 -msgid "VAT Declaration" +msgid "Tax Declaration" msgstr "" #. module: account @@ -2249,7 +2249,7 @@ msgstr "" #. module: account #: view:account.vat.declaration:0 -msgid "This menu prints a VAT declaration based on invoices or payments. Select one or several periods of the fiscal year. The information required for a tax declaration is automatically generated by OpenERP from invoices (or payments, in some countries). This data is updated in real time. That’s very useful because it enables you to preview at any time the tax that you owe at the start and end of the month or quarter." +msgid "This menu prints a tax declaration based on invoices or payments. Select one or several periods of the fiscal year. The information required for a tax declaration is automatically generated by OpenERP from invoices (or payments, in some countries). This data is updated in real time. That’s very useful because it enables you to preview at any time the tax that you owe at the start and end of the month or quarter." msgstr "" #. module: account @@ -4480,7 +4480,7 @@ msgstr "" #. module: account #: model:ir.actions.act_window,name:account.action_account_vat_declaration #: model:ir.model,name:account.model_account_vat_declaration -msgid "Account Vat Declaration" +msgid "Account Tax Declaration" msgstr "" #. module: account @@ -4821,7 +4821,7 @@ msgstr "" #: help:account.tax.template,ref_base_code_id:0 #: help:account.tax.template,ref_tax_code_id:0 #: help:account.tax.template,tax_code_id:0 -msgid "Use this code for the VAT declaration." +msgid "Use this code for the tax declaration." msgstr "" #. module: account @@ -5247,7 +5247,7 @@ msgstr "" #. module: account #: report:account.journal.period.print.sale.purchase:0 -msgid "VAT" +msgid "Tax" msgstr "" #. module: account @@ -7561,7 +7561,7 @@ msgstr "" #. module: account #: model:ir.actions.act_window,help:account.action_account_vat_declaration -msgid "This menu print a VAT declaration based on invoices or payments. You can select one or several periods of the fiscal year. Information required for a tax declaration is automatically generated by OpenERP from invoices (or payments, in some countries). This data is updated in real time. That’s very useful because it enables you to preview at any time the tax that you owe at the start and end of the month or quarter." +msgid "This menu print a tax declaration based on invoices or payments. You can select one or several periods of the fiscal year. Information required for a tax declaration is automatically generated by OpenERP from invoices (or payments, in some countries). This data is updated in real time. That’s very useful because it enables you to preview at any time the tax that you owe at the start and end of the month or quarter." msgstr "" #. module: account diff --git a/addons/account/i18n/es_EC.po b/addons/account/i18n/es_EC.po index 7eff1938061..5b6bbffea1f 100644 --- a/addons/account/i18n/es_EC.po +++ b/addons/account/i18n/es_EC.po @@ -10,15 +10,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2011-12-31 16:16+0000\n" -"Last-Translator: Christopher Ormaza - (Ecuadorenlinea.net) " -"\n" +"PO-Revision-Date: 2012-07-30 03:26+0000\n" +"Last-Translator: Cristian Salamea (Gnuthink) \n" "Language-Team: Spanish (Ecuador) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-07-14 05:58+0000\n" -"X-Generator: Launchpad (build 15614)\n" +"X-Launchpad-Export-Date: 2012-07-30 04:55+0000\n" +"X-Generator: Launchpad (build 15702)\n" #. module: account #: view:account.invoice.report:0 @@ -446,7 +445,7 @@ msgstr "Total crédito" #. module: account #: view:account.move.line.unreconcile.select:0 msgid "Open for Unreconciliation" -msgstr "" +msgstr "Abrir para romper conciliación" #. module: account #: field:account.account.template,chart_template_id:0 @@ -1612,7 +1611,7 @@ msgstr "Base Imponible" #. module: account #: view:account.partner.reconcile.process:0 msgid "Go to Next Partner" -msgstr "" +msgstr "Ir a la siguiente empresa" #. module: account #: view:account.bank.statement:0 @@ -2859,7 +2858,7 @@ msgstr "" #: model:ir.actions.act_window,name:account.action_tax_code_list #: model:ir.ui.menu,name:account.menu_action_tax_code_list msgid "Tax Codes" -msgstr "" +msgstr "Códigos de impuestos" #. module: account #: view:account.account:0 @@ -3229,7 +3228,7 @@ msgstr "Plantillas para el plan contable" #. module: account #: model:ir.actions.act_window,name:account.action_wizard_multi_chart msgid "Set Your Accounting Options" -msgstr "" +msgstr "Configurar tu Contabilidad" #. module: account #: view:report.account.sales:0 @@ -4405,7 +4404,7 @@ msgstr "Reconcile Writeoff" #. module: account #: view:report.account.receivable:0 msgid "Accounts by Type" -msgstr "" +msgstr "Cuentas por tipo" #. module: account #: view:account.bank.statement:0 @@ -4447,7 +4446,7 @@ msgstr "res_config_contents" #. module: account #: view:account.unreconcile:0 msgid "Unreconciliate Transactions" -msgstr "" +msgstr "Transacciones no conciliadas" #. module: account #: help:account.chart.template,visible:0 @@ -4650,7 +4649,7 @@ msgstr "Fecha de realizacion" #. module: account #: view:account.unreconcile.reconcile:0 msgid "Unreconciliation Transactions" -msgstr "" +msgstr "Desconcialiación de Transacciones" #. module: account #: field:account.tax,ref_tax_code_id:0 @@ -4785,7 +4784,7 @@ msgstr "Pagado" #. module: account #: view:account.period.close:0 msgid "Are you sure?" -msgstr "" +msgstr "¿Está Seguro?" #. module: account #: help:account.move.line,statement_id:0 @@ -5183,7 +5182,7 @@ msgstr "Cuenta impuesto" #. module: account #: view:account.automatic.reconcile:0 msgid "Reconciliation Result" -msgstr "" +msgstr "Resultado de conciliación" #. module: account #: model:account.financial.report,name:account.account_financial_report_balancesheet0 @@ -6173,7 +6172,7 @@ msgstr "Impuesto de venta(%)" #. module: account #: view:account.addtmpl.wizard:0 msgid "Create an Account Based on this Template" -msgstr "" +msgstr "Crear una cuenta basada en esta plantilla" #. module: account #: view:account.account.type:0 diff --git a/addons/account/i18n/nl_BE.po b/addons/account/i18n/nl_BE.po index 770abf9dce5..6a19e582ed3 100644 --- a/addons/account/i18n/nl_BE.po +++ b/addons/account/i18n/nl_BE.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.0\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2010-07-22 16:28+0000\n" -"Last-Translator: Niels Huylebroeck \n" +"PO-Revision-Date: 2012-07-27 12:48+0000\n" +"Last-Translator: Els Van Vossel (Agaplan) \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-07-14 05:58+0000\n" -"X-Generator: Launchpad (build 15614)\n" +"X-Launchpad-Export-Date: 2012-07-28 04:57+0000\n" +"X-Generator: Launchpad (build 15694)\n" #. module: account #: view:account.invoice.report:0 @@ -444,7 +444,7 @@ msgstr "Totaal credit" #. module: account #: view:account.move.line.unreconcile.select:0 msgid "Open for Unreconciliation" -msgstr "" +msgstr "Afpunting ongedaan maken" #. module: account #: field:account.account.template,chart_template_id:0 @@ -1611,7 +1611,7 @@ msgstr "Onbelast" #. module: account #: view:account.partner.reconcile.process:0 msgid "Go to Next Partner" -msgstr "" +msgstr "Naar volgende relatie" #. module: account #: view:account.bank.statement:0 @@ -2854,7 +2854,7 @@ msgstr "" #: model:ir.actions.act_window,name:account.action_tax_code_list #: model:ir.ui.menu,name:account.menu_action_tax_code_list msgid "Tax Codes" -msgstr "" +msgstr "Btw-codes" #. module: account #: view:account.account:0 @@ -3226,7 +3226,7 @@ msgstr "Sjablonen boekhoudplan" #. module: account #: model:ir.actions.act_window,name:account.action_wizard_multi_chart msgid "Set Your Accounting Options" -msgstr "" +msgstr "Stel uw boekhouding in" #. module: account #: view:report.account.sales:0 @@ -4402,7 +4402,7 @@ msgstr "Afpunten met afschrijving" #. module: account #: view:report.account.receivable:0 msgid "Accounts by Type" -msgstr "" +msgstr "Rekeningen per type" #. module: account #: view:account.bank.statement:0 @@ -4444,7 +4444,7 @@ msgstr "res_config_contents" #. module: account #: view:account.unreconcile:0 msgid "Unreconciliate Transactions" -msgstr "" +msgstr "Afpuntingen ongedaan maken" #. module: account #: help:account.chart.template,visible:0 @@ -4645,7 +4645,7 @@ msgstr "Bewerkingsdatum" #. module: account #: view:account.unreconcile.reconcile:0 msgid "Unreconciliation Transactions" -msgstr "" +msgstr "Afpuntingen ongedaan maken" #. module: account #: field:account.tax,ref_tax_code_id:0 @@ -4780,7 +4780,7 @@ msgstr "Betaald" #. module: account #: view:account.period.close:0 msgid "Are you sure?" -msgstr "" +msgstr "Bent u zeker?" #. module: account #: help:account.move.line,statement_id:0 @@ -5177,7 +5177,7 @@ msgstr "Btw-rekening" #. module: account #: view:account.automatic.reconcile:0 msgid "Reconciliation Result" -msgstr "" +msgstr "Afpuntresultaat" #. module: account #: model:account.financial.report,name:account.account_financial_report_balancesheet0 @@ -6169,7 +6169,7 @@ msgstr "Verkoop-btw (%)" #. module: account #: view:account.addtmpl.wizard:0 msgid "Create an Account Based on this Template" -msgstr "" +msgstr "Maak een rekening op basis van deze sjabloon" #. module: account #: view:account.account.type:0 @@ -7310,7 +7310,7 @@ msgstr "Hoofdrekeningsjabloon" #. module: account #: model:ir.actions.act_window,name:account.action_account_configuration_installer msgid "Configure your Chart of Accounts" -msgstr "" +msgstr "Installeer uw boekhoudplan" #. module: account #: view:account.bank.statement:0 @@ -8205,7 +8205,7 @@ msgstr "Omgekeerde analytische balans -" #. module: account #: view:account.move.bank.reconcile:0 msgid "Open for Bank Reconciliation" -msgstr "" +msgstr "Bank afpunten" #. module: account #: view:account.analytic.line:0 @@ -8394,7 +8394,7 @@ msgstr "" #. module: account #: view:account.tax.template:0 msgid "Compute Code for Taxes Included Prices" -msgstr "" +msgstr "Bereken code voor prijzen inclusief btw" #. module: account #: code:addons/account/account_invoice.py:1030 @@ -9071,7 +9071,7 @@ msgstr "Verkopen van dit jaar per type" #. module: account #: view:account.analytic.cost.ledger.journal.report:0 msgid "Cost Ledger for Period" -msgstr "" +msgstr "Analytisch dagboek voor periode" #. module: account #: help:account.tax,child_depend:0 @@ -9539,7 +9539,7 @@ msgstr "U moet een bankrekening instellen in het afpuntjournaal." #. module: account #: view:account.move.line.reconcile:0 msgid "Reconciliation Transactions" -msgstr "" +msgstr "Afpunttransacties" #. module: account #: model:ir.actions.act_window,name:account.action_account_common_menu @@ -9644,7 +9644,7 @@ msgstr "Vervaldatum" #. module: account #: view:account.move.journal:0 msgid "Standard Entries" -msgstr "" +msgstr "Standaardboekingen" #. module: account #: help:account.journal,type:0 @@ -10598,7 +10598,7 @@ msgstr "" #. module: account #: view:account.payment.term:0 msgid "Description on Invoices" -msgstr "" +msgstr "Omschrijving op facturen" #. module: account #: model:ir.model,name:account.model_account_analytic_chart diff --git a/addons/account/i18n/pt_BR.po b/addons/account/i18n/pt_BR.po index 48b27e67be2..885a88d84c4 100644 --- a/addons/account/i18n/pt_BR.po +++ b/addons/account/i18n/pt_BR.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-06-20 16:26+0000\n" -"Last-Translator: Raphael Collet (OpenERP) \n" +"PO-Revision-Date: 2012-07-28 14:05+0000\n" +"Last-Translator: Fábio Martinelli \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-07-14 05:57+0000\n" -"X-Generator: Launchpad (build 15614)\n" +"X-Launchpad-Export-Date: 2012-07-29 04:37+0000\n" +"X-Generator: Launchpad (build 15694)\n" #. module: account #: view:account.invoice.report:0 @@ -3235,7 +3235,7 @@ msgstr "Modelo de plano de contas" #. module: account #: model:ir.actions.act_window,name:account.action_wizard_multi_chart msgid "Set Your Accounting Options" -msgstr "" +msgstr "Defina suas opções Contábeis" #. module: account #: view:report.account.sales:0 @@ -4222,6 +4222,10 @@ msgid "" "some non legal fields or you must unconfirm the journal entry first! \n" "%s" msgstr "" +"Você não pode fazer essa modificação em uma entrada confirmada! Você pode " +"apenas mudar alguns campos não legais ou você deve primeiro desconfirmar a " +"entrada de diário em primeiro lugar\" \n" +"%s" #. module: account #: field:res.company,paypal_account:0 @@ -4472,6 +4476,10 @@ msgid "" "you want to generate accounts of this template only when loading its child " "template." msgstr "" +"Marque como False se você não quer que este template seja usado no " +"configurador que gera o Plano de Contas dos modelos, isto é útil quando você " +"deseja criar as contas desse modelo somente quando for carregar os modelos " +"filhos." #. module: account #: view:account.use.model:0 @@ -4816,6 +4824,9 @@ msgid "" "You can not define children to an account with internal type different of " "\"View\"! " msgstr "" +"Erro de configuração!\n" +"Você não pode definir um filho a uma conta com tipo interno diferente de " +"\"Visualização\"! " #. module: account #: code:addons/account/account.py:923 @@ -5120,6 +5131,10 @@ msgid "" "encode the sale and purchase rates or choose from list of taxes. This last " "choice assumes that the set of tax defined on this template is complete" msgstr "" +"Esta lógica ajuda você a escolher se você quer propor para o usuário " +"codificar as taxas de compra e venda ou escolher de um conjunto de impostos. " +" Esta última escolha pressupõe que o conjunto de imposto definido para o " +"modelo escolhido está completa" #. module: account #: view:account.financial.report:0 @@ -5748,7 +5763,7 @@ msgstr "Sub-contas" #: code:addons/account/account_move_line.py:1214 #, python-format msgid "Move name (id): %s (%s)" -msgstr "" +msgstr "Mova nome (id) %s (%s)" #. module: account #: view:account.move.line.reconcile:0 @@ -6091,6 +6106,9 @@ msgid "" "You can not define children to an account with internal type different of " "\"View\"! " msgstr "" +"Erro de configuração!\n" +"Você não pode definir um filho a uma conta com tipo interno diferente de " +"\"Visualização\"! " #. module: account #: help:res.partner.bank,journal_id:0 @@ -6211,6 +6229,10 @@ msgid "" "choice assumes that the set of tax defined for the chosen template is " "complete" msgstr "" +"Este logica ajuda você a escolher se você quer propor ao usuário para " +"codificar as vendas e as taxas de compra ou use os campos usuais m2o. Esta " +"última escolha pressupõe que o conjunto de imposto definido para o modelo " +"escolhido está completa" #. module: account #: report:account.vat.declaration:0 @@ -6230,7 +6252,7 @@ msgstr "Faturas em Aberto e Pagos" #. module: account #: selection:account.financial.report,display_detail:0 msgid "Display children flat" -msgstr "" +msgstr "Mostrar plano filho" #. module: account #: code:addons/account/account.py:629 @@ -6662,7 +6684,7 @@ msgstr "Criar lançamentos recorrentes manuais no diário escolhido." #. module: account #: help:res.partner.bank,currency_id:0 msgid "Currency of the related account journal." -msgstr "" +msgstr "Moeda da conta do diário relacionada." #. module: account #: code:addons/account/account.py:1563 @@ -6787,7 +6809,7 @@ msgstr "Criar lançamento" #: code:addons/account/account.py:182 #, python-format msgid "Profit & Loss (Expense account)" -msgstr "" +msgstr "Ganhos e perdas (conta de Despesa)" #. module: account #: code:addons/account/account.py:622 @@ -6914,6 +6936,9 @@ msgid "" "some non legal fields or you must unreconcile first!\n" "%s" msgstr "" +"Você não pode fazer essa modificação em uma entrada reconciliada! Você pode " +"apenas mudar alguns campos não legais ou você deve desconciliar primeiro!\n" +"%s" #. module: account #: report:account.general.ledger:0 @@ -7054,6 +7079,9 @@ msgid "" "Please define BIC/Swift code on bank for bank type IBAN Account to make " "valid payments" msgstr "" +"\n" +"Por favor defina o BIC/Swift code no Banco para o tipo de conta IBAN para " +"fazer pagamentos válidos" #. module: account #: report:account.analytic.account.cost_ledger:0 @@ -7186,7 +7214,7 @@ msgstr "Documento de Origem" #: code:addons/account/account.py:1432 #, python-format msgid "You can not delete a posted journal entry \"%s\"!" -msgstr "" +msgstr "Você não pode excluir um lançamento do diário publicado \"%s\"!" #. module: account #: selection:account.partner.ledger,filter:0 @@ -7360,7 +7388,7 @@ msgstr "Entradas Postadas" #. module: account #: help:account.payment.term.line,value_amount:0 msgid "For percent enter a ratio between 0-1." -msgstr "" +msgstr "Para porcentagem introduzir um razão entre 0-1." #. module: account #: report:account.invoice:0 @@ -7590,7 +7618,7 @@ msgstr "Os prazos para gerar entradas de abertura não foram encontrados" #. module: account #: model:account.account.type,name:account.data_account_type_view msgid "Root/View" -msgstr "" +msgstr "Origem/Visualização" #. module: account #: code:addons/account/account.py:3121 @@ -7660,7 +7688,7 @@ msgstr "Multi-Moedas" #. module: account #: field:account.model.line,date_maturity:0 msgid "Maturity Date" -msgstr "" +msgstr "Data de Vencimento" #. module: account #: code:addons/account/account_move_line.py:1302 @@ -7706,6 +7734,11 @@ msgid "" "few new accounts (You don't need to define the whole structure that is " "common to both several times)." msgstr "" +"Este campo opcional te permite criar um link para um modelo específico de " +"plano de contas que pode ser diferente do que o superior pertence. Isto " +"permite a você definir o plano de contas que amplia e completa com algumas " +"novas contas (você não precisa definir toda uma estrutura que é comum aos " +"dois várias vezes)." #. module: account #: view:account.move:0 @@ -7758,6 +7791,7 @@ msgstr "Cancelar Faturas Selecionadas" msgid "" "This field is used to generate legal reports: profit and loss, balance sheet." msgstr "" +"Este campo é usado para gerar relatórios legais: de lucros e perdas, balanço." #. module: account #: model:ir.actions.act_window,help:account.action_review_payment_terms_installer @@ -7767,6 +7801,10 @@ msgid "" "terms for each letter. Each customer or supplier can be assigned to one of " "these payment terms." msgstr "" +"Termos de pagamento define as condições para pagamento de um cliente ou " +"fornecedor em um ou mais pagamentos. Lembretes periódicos irão usar os " +"termos de pagamento em cada aviso. Cada cliente ou fornecedor pode ser " +"associado para um desses termos de pagamento." #. module: account #: selection:account.entries.report,month:0 @@ -7897,7 +7935,7 @@ msgstr "Quantidade ideal de entradas." #. module: account #: view:account.financial.report:0 msgid "Parent Report" -msgstr "" +msgstr "Relatório" #. module: account #: view:account.state.open:0 @@ -7947,7 +7985,7 @@ msgstr " 7 Dias " #. module: account #: field:account.bank.statement,balance_end:0 msgid "Computed Balance" -msgstr "" +msgstr "Balanço computado" #. module: account #: field:account.account,parent_id:0 @@ -8032,7 +8070,7 @@ msgstr "Status da Linha de Movimento" #. module: account #: model:ir.model,name:account.model_account_move_line_reconcile msgid "Account move line reconcile" -msgstr "" +msgstr "Reconciliar movimentação de linha de conta" #. module: account #: view:account.subscription.generate:0 @@ -8075,7 +8113,7 @@ msgstr "Selecione uma moeda para ser usada na fatura" #, python-format msgid "" "The bank account defined on the selected chart of accounts hasn't a code." -msgstr "" +msgstr "A conta bancária definida no plano de contas não possui um código" #. module: account #: code:addons/account/wizard/account_invoice_refund.py:108 @@ -8092,7 +8130,7 @@ msgstr "Sem Linhas na Fatura !" #. module: account #: view:account.financial.report:0 msgid "Report Type" -msgstr "" +msgstr "Tipo de Relatório" #. module: account #: view:account.analytic.account:0 @@ -8121,6 +8159,8 @@ msgid "" "Select Fiscal Year which you want to remove entries for its End of year " "entries journal" msgstr "" +"Escolha o Ano Fiscal que você deseja remover entradas de diário de " +"Fechamento de ano" #. module: account #: field:account.tax.template,type_tax_use:0 @@ -8153,6 +8193,12 @@ msgid "" "Most of the OpenERP operations (invoices, timesheets, expenses, etc) " "generate analytic entries on the related account." msgstr "" +"Um plano de contas normal tem uma estrutura definida por uma legislação " +"mínima obrigatória no país. A estrutura do plano de contas analítico deve " +"refletir sua própria necessidade empresarial em termos de relatórios de " +"receitas/despesas. Eles são geralmente estruturados por contratos, projetos, " +"produtos ou departamentos. A maioria das operações do OpenErp (faturas, " +"planilhas de tempo, despesas, etc) geram uma entrada em uma conta relacionada" #. module: account #: field:account.account.type,close_method:0 @@ -8251,6 +8297,15 @@ msgid "" "related journal entries may or may not be reconciled. \n" "* The 'Cancelled' state is used when user cancel invoice." msgstr "" +" * 'Cotação' é usada quando um usuário está criando uma fatura nova e sem " +"confirmação. \n" +"* 'Pro-forma' quando uma fatura está em Pro-forma ela não possui um código " +"de fatura. \n" +"* 'Aberto' é quando um usuário cria uma fatura, um número de fatura é " +"gerado. Ficará em Aberto enquanto o usuário não pagar a fatura\n" +"* 'Pago' é definido automaticamente quando a fatura for paga. Suas entradas " +"nos diários podem ou não ser reconciliadas. \n" +"* 'Cancelado' é usado quando o usuário cancela a fatura." #. module: account #: view:account.invoice.report:0 @@ -8281,6 +8336,7 @@ msgstr "" msgid "" "Can not find a chart of accounts for this company, you should create one." msgstr "" +"Não encontramos um plano de contas para esta empresa, você deve criar um." #. module: account #: view:account.invoice:0 @@ -8290,7 +8346,7 @@ msgstr "Pro-forma" #. module: account #: report:account.analytic.account.cost_ledger:0 msgid "J.C. /Move name" -msgstr "" +msgstr "J.C. /Nome da movimentação" #. module: account #: model:ir.model,name:account.model_account_open_closed_fiscalyear @@ -8359,6 +8415,8 @@ msgid "" "Total amount (in Company currency) for transactions held in secondary " "currency for this account." msgstr "" +"Valor Total (na moeda da empresa) para as transações mantidas em uma moeda " +"secundária para esta conta." #. module: account #: report:account.invoice:0 @@ -8395,6 +8453,8 @@ msgid "" "You can not cancel an invoice which is partially paid! You need to " "unreconcile related payment entries first!" msgstr "" +"Você não pode cancelar uma fatura que foi parcialmente paga! Você precisa " +"desconciliar as entradas de pagamento primeiro!" #. module: account #: field:account.chart.template,property_account_income_categ:0 @@ -8425,7 +8485,7 @@ msgstr "Valor do Imposto/Base" #. module: account #: view:account.payment.term.line:0 msgid " Valuation: Percent" -msgstr "" +msgstr " Avaliação: Percentual" #. module: account #: model:ir.actions.act_window,help:account.action_invoice_tree3 @@ -8516,18 +8576,18 @@ msgstr "Conciliação parcial" #. module: account #: model:ir.model,name:account.model_account_analytic_inverted_balance msgid "Account Analytic Inverted Balance" -msgstr "" +msgstr "Balanço invertido da conta analítica" #. module: account #: model:ir.model,name:account.model_account_common_report msgid "Account Common Report" -msgstr "" +msgstr "Relatório de Conta Comum" #. module: account #: view:account.invoice.report:0 #: view:analytic.entries.report:0 msgid "current month" -msgstr "" +msgstr "mês atual" #. module: account #: code:addons/account/account.py:1052 @@ -8536,6 +8596,8 @@ msgid "" "No period defined for this date: %s !\n" "Please create one." msgstr "" +"Nenhum período definido para esta data: %s !\n" +"Por favor, crie um." #. module: account #: model:process.transition,name:account.process_transition_filestatement0 @@ -8563,7 +8625,7 @@ msgstr "Tipos de Conta" #. module: account #: view:account.payment.term.line:0 msgid " Value amount: n.a" -msgstr "" +msgstr " Valor total: n.a" #. module: account #: view:account.automatic.reconcile:0 @@ -8595,11 +8657,17 @@ msgid "" "You should press this button to re-open it and let it continue its normal " "process after having resolved the eventual exceptions it may have created." msgstr "" +"Este botão só aparece quando a situação da fatura for 'Paga' (mostrando que " +"foi paga e totalmente reconciliada) e o valor gerado automaticamente " +"'Reconciliado' for falso (representando que não é mais o caso). Em outras " +"palavras, a fatura foi desconciliada e não cabe mais usar a situação 'paga' " +". Você deve clicar neste botão e re-abrir e então continuar o processo " +"normal depois de resolver as exceções que possa ter gerado" #. module: account #: model:ir.model,name:account.model_account_fiscalyear_close_state msgid "Fiscalyear Close state" -msgstr "" +msgstr "Situação do Fechamento do Ano Fiscal" #. module: account #: field:account.invoice.refund,journal_id:0 @@ -8635,6 +8703,8 @@ msgstr "" msgid "" "In order to close a period, you must first post related journal entries." msgstr "" +"Para fechar um período você precisa primeiro criar as entradas de diário " +"relacionadas." #. module: account #: view:account.entries.report:0 @@ -8652,7 +8722,7 @@ msgstr "A conta do parceiro usada para esta fatura" #: code:addons/account/account.py:3296 #, python-format msgid "Tax %.2f%%" -msgstr "" +msgstr "Imposto %.2f%%" #. module: account #: view:account.analytic.account:0 @@ -8763,6 +8833,8 @@ msgstr "Faturas Não Pagas" #, python-format msgid "The payment term of supplier does not have a payment term line!" msgstr "" +"O termo de pagamento do fornecedor não possui uma linha de prazo de " +"pagamento!" #. module: account #: field:account.move.line.reconcile,debit:0 @@ -8827,17 +8899,17 @@ msgstr "Nome do diário" #. module: account #: view:account.move.line:0 msgid "Next Partner Entries to reconcile" -msgstr "" +msgstr "Próxima entrada a reconciliar" #. module: account #: selection:account.financial.report,style_overwrite:0 msgid "Smallest Text" -msgstr "" +msgstr "Menor Texto" #. module: account #: model:res.groups,name:account.group_account_invoice msgid "Invoicing & Payments" -msgstr "" +msgstr "Faturamento & Pagamentos" #. module: account #: help:account.invoice,internal_number:0 @@ -8889,6 +8961,9 @@ msgid "" "Make sure you have configured payment terms properly !\n" "The latest payment term line should be of the type \"Balance\" !" msgstr "" +"Você não pode validar uma entrada sem balanço!\n" +"Tenha certeza de que você configurou os termos de pagamento corretamente!\n" +"A última linha de prazo de pagamento deve ser do tipo \"Balanço\"!" #. module: account #: view:account.account:0 @@ -8966,7 +9041,7 @@ msgstr "Endereço do contato" #: code:addons/account/account.py:2256 #, python-format msgid "Wrong model !" -msgstr "" +msgstr "Modelo errado!" #. module: account #: field:account.invoice.refund,period:0 @@ -8987,6 +9062,11 @@ msgid "" "accounts that are typically more credited than debited and that you would " "like to print as positive amounts in your reports; e.g.: Income account." msgstr "" +"Para contas que são tipicamente mais debitadas do que creditadas e que você " +"deseja exibir como valores negativos nos relatórios, você deve inverter o " +"sinal do balanço; ex.: Conta de despesa. O mesmo aplica para contas que são " +"tipicamente mais creditadas do que debitadas e você deseja exibir como " +"valores positivos nos relatórios; ex.: Contas de recebimento." #. module: account #: field:res.partner,contract_ids:0 @@ -9028,7 +9108,7 @@ msgstr "" #: code:addons/account/account_invoice.py:808 #, python-format msgid "Please define sequence on the journal related to this invoice." -msgstr "" +msgstr "Defina a sequencia do diário referente a essa fatura." #. module: account #: view:account.move:0 @@ -9041,7 +9121,7 @@ msgstr "Nota Interna" #. module: account #: view:report.account.sales:0 msgid "This year's Sales by type" -msgstr "" +msgstr "Vendas deste ano, por tipo" #. module: account #: view:account.analytic.cost.ledger.journal.report:0 @@ -9095,7 +9175,7 @@ msgstr "Linhas de lançamentos" #. module: account #: model:ir.actions.act_window,name:account.action_view_financial_accounts_installer msgid "Review your Financial Accounts" -msgstr "" +msgstr "Reveja as suas contas financeiras" #. module: account #: model:ir.actions.act_window,name:account.action_open_journal_button @@ -9136,7 +9216,7 @@ msgstr "Pagamento registrado" #. module: account #: view:account.fiscalyear.close.state:0 msgid "Close states of Fiscal year and periods" -msgstr "" +msgstr "Situação do fechamento de Ano Fiscal e períodos" #. module: account #: view:account.analytic.line:0 @@ -9176,7 +9256,7 @@ msgstr "Caros Ser/Senhora," #. module: account #: field:account.vat.declaration,display_detail:0 msgid "Display Detail" -msgstr "" +msgstr "Mostrar Detalhes" #. module: account #: code:addons/account/account.py:3118 @@ -9221,7 +9301,7 @@ msgstr "Fim do Período" #: model:ir.actions.act_window,name:account.action_account_report_pl #: model:ir.ui.menu,name:account.menu_account_reports msgid "Financial Reports" -msgstr "" +msgstr "Relatórios Financeiros" #. module: account #: report:account.account.balance:0 @@ -9305,7 +9385,7 @@ msgstr "Documento: demonstrativo da conta cliente" #. module: account #: field:account.account.type,report_type:0 msgid "P&L / BS Category" -msgstr "" +msgstr "Categoria P&L / BS" #. module: account #: model:ir.actions.act_window,help:account.action_invoice_tree4 @@ -9481,12 +9561,12 @@ msgstr "" #. module: account #: view:analytic.entries.report:0 msgid "Analytic Entries of last 365 days" -msgstr "" +msgstr "Entradas analíticas dos últimos 365 dias" #. module: account #: report:account.central.journal:0 msgid "A/C No." -msgstr "" +msgstr "No. A/C" #. module: account #: model:ir.actions.act_window,name:account.act_account_journal_2_account_bank_statement @@ -9522,7 +9602,7 @@ msgstr "Conciliação de transações" #. module: account #: model:ir.actions.act_window,name:account.action_account_common_menu msgid "Common Report" -msgstr "" +msgstr "Relatório Comum" #. module: account #: view:account.account:0 @@ -9543,7 +9623,7 @@ msgstr "" #. module: account #: view:account.invoice.report:0 msgid "Customer And Supplier Invoices" -msgstr "" +msgstr "Faturas de clientes e fornecedores" #. module: account #: model:process.node,note:account.process_node_paymententries0 @@ -9583,6 +9663,8 @@ msgid "" "No opening/closing period defined, please create one to set the initial " "balance!" msgstr "" +"Nenhum período de abertura/fechamento definido, por favor crie um e defina o " +"balanço inicial!" #. module: account #: report:account.account.balance:0 @@ -9631,6 +9713,11 @@ msgid "" "journals. Select 'Opening/Closing Situation' for entries generated for new " "fiscal years." msgstr "" +"Escolha 'Venda' para diários de faturas de clientes. Escolha 'Compra' para " +"diários de faturas de fornecedores. Escolha 'Dinheiro' ou 'Banco' para " +"diários que são usados nos pagamentos de clientes ou fornecedores. Escolha " +"'Geral' para diários de operações diversas. Escolha 'Situação de " +"Abertura/Fechamento' para entradas geradas em um novo ano fiscal." #. module: account #: model:ir.model,name:account.model_account_subscription @@ -9683,6 +9770,8 @@ msgid "" "It indicates that the invoice has been paid and the journal entry of the " "invoice has been reconciled with one or several journal entries of payment." msgstr "" +"Indica que a fatura foi paga e a entrada do diário foi reconciliada com um " +"ou mais diários de pagamentos" #. module: account #: view:account.invoice:0 @@ -9720,6 +9809,13 @@ msgid "" "open period. Close a period when you do not want to record new entries and " "want to lock this period for tax related calculation." msgstr "" +"Um período é um período fiscal em que a contabilidade deve ser registrada " +"para atividades relacionadas. Períodos mensais costumam ser o padrão, mas " +"dependendo do seu pais ou necessidades da empresa, você também pode definir " +"períodos trimestrais. Após fechar um período é impossível adicionar novas " +"entradas, todas as novas entradas deverão ser feitas no período seguinte. " +"Feche um período quando você não desejar mais gravar novas entradas e quer " +"bloquear o período para o cálculo de impostos" #. module: account #: view:account.analytic.account:0 @@ -9755,7 +9851,7 @@ msgstr "Ativo" #. module: account #: view:accounting.report:0 msgid "Comparison" -msgstr "" +msgstr "Comparação" #. module: account #: code:addons/account/account_invoice.py:372 @@ -9828,7 +9924,7 @@ msgstr "" #: code:addons/account/account.py:181 #, python-format msgid "Profit & Loss (Income account)" -msgstr "" +msgstr "Ganhos e perdas (conta Lucro)" #. module: account #: constraint:account.account:0 @@ -9837,6 +9933,9 @@ msgid "" "You can not select an account type with a deferral method different of " "\"Unreconciled\" for accounts with internal type \"Payable/Receivable\"! " msgstr "" +"Erro de Configuração!\n" +"Você não pode selecionar um tipo de conta com um método de deferimento " +"diferente de \"Não conciliado\" para contas do tipo \"Pagáveis/Recebíveis\" " #. module: account #: view:account.model:0 @@ -9873,7 +9972,7 @@ msgstr "Geral" #. module: account #: view:analytic.entries.report:0 msgid "Analytic Entries of last 30 days" -msgstr "" +msgstr "Entradas analíticas dos últimos 30 dias" #. module: account #: selection:account.aged.trial.balance,filter:0 @@ -9930,7 +10029,7 @@ msgstr "Abril" #. module: account #: model:account.financial.report,name:account.account_financial_report_profitloss_toreport0 msgid "Profit (Loss) to report" -msgstr "" +msgstr "Lucro (Prejuízo) para relatório" #. module: account #: view:account.move.line.reconcile.select:0 @@ -9954,7 +10053,7 @@ msgstr "" #. module: account #: selection:account.financial.report,style_overwrite:0 msgid "Title 2 (bold)" -msgstr "" +msgstr "Título 2 (em negrito)" #. module: account #: model:ir.actions.act_window,name:account.action_invoice_tree2 @@ -9995,6 +10094,8 @@ msgid "" "When new statement is created the state will be 'Draft'.\n" "And after getting confirmation from the bank it will be in 'Confirmed' state." msgstr "" +"Quando um novo statement for criado, a situação será 'Rascunho'.\n" +"E após a confirmação do banco a situação será \"Confirmada\"." #. module: account #: model:ir.model,name:account.model_account_period @@ -10115,7 +10216,7 @@ msgstr "Sequências de ano fiscal" #. module: account #: selection:account.financial.report,display_detail:0 msgid "No detail" -msgstr "" +msgstr "Não há detalhes" #. module: account #: code:addons/account/account_analytic_line.py:102 @@ -10126,14 +10227,14 @@ msgstr "Não há conta de entrada definida para este produto:\"%s\" (id:%d)" #. module: account #: constraint:account.move.line:0 msgid "You can not create journal items on closed account." -msgstr "" +msgstr "Você não pode criar ítens de diário em uma conta fechada." #. module: account #: field:account.account,unrealized_gain_loss:0 #: model:ir.actions.act_window,name:account.action_account_gain_loss #: model:ir.ui.menu,name:account.menu_unrealized_gains_losses msgid "Unrealized Gain or Loss" -msgstr "" +msgstr "Perdas ou Ganhos não realizados" #. module: account #: view:account.fiscalyear:0 @@ -10146,12 +10247,12 @@ msgstr "Estado" #. module: account #: model:ir.actions.server,name:account.ir_actions_server_edi_invoice msgid "Auto-email confirmed invoices" -msgstr "" +msgstr "Enviar automaticamente as Faturas confirmadas" #. module: account #: field:account.invoice,check_total:0 msgid "Verification Total" -msgstr "" +msgstr "Verificação total" #. module: account #: report:account.analytic.account.balance:0 @@ -10279,7 +10380,7 @@ msgstr "Esvaziar as contas ? " #. module: account #: constraint:account.bank.statement:0 msgid "The journal and period chosen have to belong to the same company." -msgstr "" +msgstr "O diário e o período escolhido tem que pertencer à mesma empresa." #. module: account #: view:account.invoice:0 @@ -10303,11 +10404,13 @@ msgid "" "This account will be used to value outgoing stock for the current product " "category using cost price" msgstr "" +"Esta conta será usada para para estimar o estoque de saída da categoria de " +"produtos usando o preço de custo" #. module: account #: view:wizard.multi.charts.accounts:0 msgid "Generate Your Chart of Accounts from a Chart Template" -msgstr "" +msgstr "Crie seu Plano de Contas através de um modelo" #. module: account #: model:ir.actions.act_window,help:account.action_account_invoice_report_all @@ -10379,7 +10482,7 @@ msgstr "Débito" #. module: account #: selection:account.financial.report,style_overwrite:0 msgid "Title 3 (bold, smaller)" -msgstr "" +msgstr "Título 3 (em negrito, menor)" #. module: account #: field:account.invoice,invoice_line:0 @@ -10394,7 +10497,7 @@ msgstr "Erro ! Você não pode criar templates recursivos para contas." #. module: account #: selection:account.print.journal,sort_selection:0 msgid "Journal Entry Number" -msgstr "" +msgstr "Número da Entrada de Diário" #. module: account #: view:account.subscription:0 @@ -10408,6 +10511,8 @@ msgid "" "You cannot change the type of account from 'Closed' to any other type which " "contains journal items!" msgstr "" +"Você não pode mudar o tipo de conta de 'Fechado' para nenhum outro tipo que " +"contém entradas de diário!" #. module: account #: code:addons/account/account_move_line.py:832 @@ -10433,7 +10538,7 @@ msgstr "Intervalo" #. module: account #: view:account.analytic.line:0 msgid "Analytic Journal Items related to a purchase journal." -msgstr "" +msgstr "Itens de diário relacionados a um diário de compras." #. module: account #: help:account.account,type:0 @@ -10444,6 +10549,11 @@ msgid "" "payable/receivable are for partners accounts (for debit/credit " "computations), closed for depreciated accounts." msgstr "" +"O 'Tipo Interno' é usado para recursos disponíveis em diferentes tipo de " +"contas: visualizações não podem conter itens de diário, consolidações são " +"contas que possuem contas filhas de consolidações multi-empresas, " +"pagáveis/recebíveis são para contas de parceiros (para cálculo de " +"débito/crédito), fechado para contas de depreciação." #. module: account #: selection:account.balance.report,display_account:0 @@ -10485,7 +10595,7 @@ msgstr "Imprimir diários analíticos" #. module: account #: view:account.invoice.report:0 msgid "Group by month of Invoice Date" -msgstr "" +msgstr "Agrupar por mês da fatura" #. module: account #: view:account.analytic.line:0 @@ -10519,6 +10629,8 @@ msgstr "A outra moeda opcional se este for um lançamento multi-moeda" msgid "" "Import of the statement in the system from a supplier or customer invoice" msgstr "" +"Importar da declaração no sistema a partir de uma fatura do fornecedor ou " +"cliente" #. module: account #: model:ir.ui.menu,name:account.menu_finance_periodical_processing_billing @@ -10551,7 +10663,7 @@ msgstr "" #. module: account #: view:account.payment.term:0 msgid "Description on Invoices" -msgstr "" +msgstr "Descrição nas Faturas" #. module: account #: model:ir.model,name:account.model_account_analytic_chart @@ -10578,7 +10690,7 @@ msgstr "Conta inválida!" #. module: account #: field:account.print.journal,sort_selection:0 msgid "Entries Sorted by" -msgstr "" +msgstr "Entradas classificadas por" #. module: account #: help:account.move,state:0 @@ -10589,6 +10701,11 @@ msgid "" "created by the system on document validation (invoices, bank statements...) " "and will be created in 'Posted' state." msgstr "" +"Todas as entradas de diário criadas manualmente ficam na situação 'Não " +"publicadas', mas você pode definir uma opção para pular esta situação no " +"diário relacionado. Neste caso, elas se comportarão como entradas de diário " +"automaticamente pelo sistema na validação do documento (faturas, extratos " +"bancários...) e serão criadas na situação 'Publicadas'." #. module: account #: view:account.fiscal.position.template:0 @@ -10719,6 +10836,76 @@ msgid "" "% endif\n" " " msgstr "" +"\n" +"Olá ${object.address_invoice_id.name and ' ' or " +"''}${object.address_invoice_id.name or ''},\n" +"\n" +"Uma nova fatura está disponível para ${object.partner_id.name}:\n" +" | Número da Fatura: *${object.number}*\n" +" | Total da Fatura: *${object.amount_total} " +"${object.currency_id.name}*\n" +" | Data da Fatura: ${object.date_invoice}\n" +" % if object.origin:\n" +" | Referente a: ${object.origin}\n" +" % endif\n" +" | Seu contato: ${object.user_id.name} ${object.user_id.user_email and " +"'<%s>'%(object.user_id.user_email) or ''}\n" +"\n" +"Você pode ver a fatura, fazer o download e pagar online usando o seguinte " +"link:\n" +" ${ctx.get('edi_web_url_view') or 'n/a'}\n" +"\n" +"% if object.company_id.paypal_account and object.type in ('out_invoice', " +"'in_refund'):\n" +"<% \n" +"comp_name = quote(object.company_id.name)\n" +"inv_number = quote(object.number)\n" +"paypal_account = quote(object.company_id.paypal_account)\n" +"inv_amount = quote(str(object.amount_total))\n" +"cur_name = quote(object.currency_id.name)\n" +"paypal_url = \"https://www.paypal.com/cgi-" +"bin/webscr?cmd=_xclick&business=%s&item_name=%s%%20Invoice%%20%s\"\\\n" +" " +"\"&invoice=%s&amount=%s¤cy_code=%s&button_subtype=services&no_note=1&bn" +"=OpenERP_Invoice_PayNow_%s\" % \\\n" +" " +"(paypal_account,comp_name,inv_number,inv_number,inv_amount,cur_name,cur_name)" +"\n" +"%>\n" +"É possível pagar diretamente através do Paypal:\n" +" ${paypal_url}\n" +"% endif\n" +"\n" +"Se você tiver alguma dúvida por favor entre em contato conosco.\n" +"\n" +"\n" +"Obrigado por escolher ${object.company_id.name}!\n" +"\n" +"\n" +"--\n" +"${object.user_id.name} ${object.user_id.user_email and " +"'<%s>'%(object.user_id.user_email) or ''}\n" +"${object.company_id.name}\n" +"% if object.company_id.street:\n" +"${object.company_id.street or ''}\n" +"% endif\n" +"% if object.company_id.street2:\n" +"${object.company_id.street2}\n" +"% endif\n" +"% if object.company_id.city or object.company_id.zip:\n" +"${object.company_id.zip or ''} ${object.company_id.city or ''}\n" +"% endif\n" +"% if object.company_id.country_id:\n" +"${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) " +"or ''} ${object.company_id.country_id.name or ''}\n" +"% endif\n" +"% if object.company_id.phone:\n" +"Phone: ${object.company_id.phone}\n" +"% endif\n" +"% if object.company_id.website:\n" +"${object.company_id.website or ''}\n" +"% endif\n" +" " #. module: account #: model:ir.model,name:account.model_res_partner_bank @@ -13102,3 +13289,6 @@ msgstr "" #~ msgid "Install your Chart of Accounts" #~ msgstr "Instale o seu Plano de Contas" + +#~ msgid "Description On Invoices" +#~ msgstr "Descrição em Faturas" diff --git a/addons/account/partner_view.xml b/addons/account/partner_view.xml index cd75daa6c07..1e360f6c742 100644 --- a/addons/account/partner_view.xml +++ b/addons/account/partner_view.xml @@ -78,18 +78,19 @@ - + + + + + + - - - - - + @@ -142,16 +143,5 @@ view_type="form" view_mode="tree,form,graph,calendar"/> - - res.partner.form.reconcile - res.partner - - - - - - - - diff --git a/addons/account/report/account_journal_sale_purchase.rml b/addons/account/report/account_journal_sale_purchase.rml index 68f93b88294..236879669f9 100644 --- a/addons/account/report/account_journal_sale_purchase.rml +++ b/addons/account/report/account_journal_sale_purchase.rml @@ -219,7 +219,7 @@ Account Partner Label - VAT + Tax Debit Credit @@ -271,7 +271,7 @@ Account Partner Label - VAT + Tax Debit Credit @@ -330,7 +330,7 @@ - VAT Declaration + Tax Declaration diff --git a/addons/account/wizard/account_financial_report.py b/addons/account/wizard/account_financial_report.py index 0ddc50f4859..f96127f6375 100644 --- a/addons/account/wizard/account_financial_report.py +++ b/addons/account/wizard/account_financial_report.py @@ -36,7 +36,7 @@ class accounting_report(osv.osv_memory): 'period_to_cmp': fields.many2one('account.period', 'End Period'), 'date_from_cmp': fields.date("Start Date"), 'date_to_cmp': fields.date("End Date"), - 'debit_credit': fields.boolean('Display Debit/Credit Columns', help="This option allow you to get more details about your the way your balances are computed. Because it is space consumming, we do not allow to use it while doing a comparison"), + 'debit_credit': fields.boolean('Display Debit/Credit Columns', help="This option allows you to get more details about the way your balances are computed. Because it is space consuming, we do not allow to use it while doing a comparison."), } def _get_account_report(self, cr, uid, context=None): diff --git a/addons/account/wizard/account_report_common_journal.py b/addons/account/wizard/account_report_common_journal.py index 92076cfe572..ed0f03df5b5 100644 --- a/addons/account/wizard/account_report_common_journal.py +++ b/addons/account/wizard/account_report_common_journal.py @@ -26,7 +26,7 @@ class account_common_journal_report(osv.osv_memory): _description = 'Account Common Journal Report' _inherit = "account.common.report" _columns = { - 'amount_currency': fields.boolean("With Currency", help="Print Report with the currency column if the currency is different then the company currency"), + 'amount_currency': fields.boolean("With Currency", help="Print Report with the currency column if the currency differs from the company currency."), } def _build_contexts(self, cr, uid, ids, data, context=None): diff --git a/addons/account/wizard/account_report_general_ledger.py b/addons/account/wizard/account_report_general_ledger.py index d0b3c0fa3d3..8078da372ca 100644 --- a/addons/account/wizard/account_report_general_ledger.py +++ b/addons/account/wizard/account_report_general_ledger.py @@ -30,7 +30,7 @@ class account_report_general_ledger(osv.osv_memory): 'landscape': fields.boolean("Landscape Mode"), 'initial_balance': fields.boolean('Include Initial Balances', help='If you selected to filter by date or period, this field allow you to add a row to display the amount of debit/credit/balance that precedes the filter you\'ve set.'), - 'amount_currency': fields.boolean("With Currency", help="It adds the currency column if the currency is different then the company currency"), + 'amount_currency': fields.boolean("With Currency", help="It adds the currency column on report if the currency differs from the company currency."), 'sortby': fields.selection([('sort_date', 'Date'), ('sort_journal_partner', 'Journal & Partner')], 'Sort by', required=True), 'journal_ids': fields.many2many('account.journal', 'account_report_general_ledger_journal_rel', 'account_id', 'journal_id', 'Journals', required=True), } diff --git a/addons/account/wizard/account_report_partner_ledger.py b/addons/account/wizard/account_report_partner_ledger.py index 7a3f3932f1b..60ac20a42ed 100644 --- a/addons/account/wizard/account_report_partner_ledger.py +++ b/addons/account/wizard/account_report_partner_ledger.py @@ -34,7 +34,7 @@ class account_partner_ledger(osv.osv_memory): help='If you selected to filter by date or period, this field allow you to add a row to display the amount of debit/credit/balance that precedes the filter you\'ve set.'), 'filter': fields.selection([('filter_no', 'No Filters'), ('filter_date', 'Date'), ('filter_period', 'Periods'), ('unreconciled', 'Unreconciled Entries')], "Filter by", required=True), 'page_split': fields.boolean('One Partner Per Page', help='Display Ledger Report with One partner per page'), - 'amount_currency': fields.boolean("With Currency", help="It adds the currency column if the currency is different then the company currency"), + 'amount_currency': fields.boolean("With Currency", help="It adds the currency column on report if the currency differs from the company currency."), 'journal_ids': fields.many2many('account.journal', 'account_partner_ledger_journal_rel', 'account_id', 'journal_id', 'Journals', required=True), } _defaults = { diff --git a/addons/account/wizard/account_vat_view.xml b/addons/account/wizard/account_vat_view.xml index 988c4786bb8..acafb55e208 100644 --- a/addons/account/wizard/account_vat_view.xml +++ b/addons/account/wizard/account_vat_view.xml @@ -3,12 +3,12 @@ - Account Vat Declaration + Account Tax Declaration account.vat.declaration form
-
- - - - diff --git a/addons/hr_recruitment/security/ir.model.access.csv b/addons/hr_recruitment/security/ir.model.access.csv index 7d082070be5..8b029c9324a 100644 --- a/addons/hr_recruitment/security/ir.model.access.csv +++ b/addons/hr_recruitment/security/ir.model.access.csv @@ -3,7 +3,6 @@ access_hr_applicant_user,hr.applicant.user,model_hr_applicant,base.group_hr_user access_hr_recruitment_report,hr.recruitment.report,model_hr_recruitment_report,base.group_hr_manager,1,1,1,1 access_hr_recruitment_stage_user,hr.recruitment.stage.user,model_hr_recruitment_stage,base.group_hr_user,1,1,1,1 access_hr_recruitment_degree,hr.recruitment.degree,model_hr_recruitment_degree,base.group_hr_user,1,1,1,1 -access_mail_message_user,mail.message.user,mail.model_mail_message,base.group_hr_user,1,1,1,1 access_res_partner_hr_user,res.partner.user,base.model_res_partner,base.group_hr_user,1,1,1,1 access_survey_hr_user,survey.hr.user,survey.model_survey,base.group_hr_user,1,1,1,0 access_crm_meeting_hruser,crm.meeting.hruser,base_calendar.model_crm_meeting,base.group_hr_user,1,1,1,1 diff --git a/addons/hr_timesheet/__openerp__.py b/addons/hr_timesheet/__openerp__.py index 6b8e618116e..d6a6232d1a0 100644 --- a/addons/hr_timesheet/__openerp__.py +++ b/addons/hr_timesheet/__openerp__.py @@ -34,8 +34,8 @@ the analytic account. Lots of reporting on time and employee tracking are provided. -It is completely integrated with the cost accounting module. It allows you -to set up a management by affair. +It is completely integrated with the cost accounting module. It allows you to set +up a management by affair. """, 'author': 'OpenERP SA', 'website': 'http://www.openerp.com', diff --git a/addons/hr_timesheet/hr_timesheet.py b/addons/hr_timesheet/hr_timesheet.py index 66911f25ff5..53119853c31 100644 --- a/addons/hr_timesheet/hr_timesheet.py +++ b/addons/hr_timesheet/hr_timesheet.py @@ -198,6 +198,13 @@ class account_analytic_account(osv.osv): _columns = { 'use_timesheets': fields.boolean('Timesheets', help="Check this field if this project manages timesheets"), } + + def on_change_template(self, cr, uid, ids, template_id, context=None): + res = super(account_analytic_account, self).on_change_template(cr, uid, ids, template_id, context=context) + if template_id and 'value' in res: + template = self.browse(cr, uid, template_id, context=context) + res['value']['use_timesheets'] = template.use_timesheets + return res account_analytic_account() diff --git a/addons/hr_timesheet_invoice/__openerp__.py b/addons/hr_timesheet_invoice/__openerp__.py index 65b8905fca0..e233158bda3 100644 --- a/addons/hr_timesheet_invoice/__openerp__.py +++ b/addons/hr_timesheet_invoice/__openerp__.py @@ -24,12 +24,14 @@ 'name': 'Invoice on Timesheets', 'version': '1.0', 'category': 'Sales Management', - 'description': """Generate your Invoices from Expenses, Timesheet Entries, ... + 'description': """ +Generate your Invoices from Expenses, Timesheet Entries. +======================================================== + Module to generate invoices based on costs (human resources, expenses, ...). -============================================================================ You can define price lists in analytic account, make some theoretical revenue -reports, etc.""", +reports.""", 'author': 'OpenERP SA', 'website': 'http://www.openerp.com', 'images': ['images/hr_bill_task_work.jpeg','images/hr_type_of_invoicing.jpeg'], diff --git a/addons/hr_timesheet_invoice/hr_timesheet_invoice.py b/addons/hr_timesheet_invoice/hr_timesheet_invoice.py index f1138d7b246..54257f5efba 100644 --- a/addons/hr_timesheet_invoice/hr_timesheet_invoice.py +++ b/addons/hr_timesheet_invoice/hr_timesheet_invoice.py @@ -64,7 +64,7 @@ class account_analytic_account(osv.osv): _inherit = "account.analytic.account" _columns = { 'pricelist_id': fields.many2one('product.pricelist', 'Pricelist', - help="The product to invoice is defined on the employee form, the price will be deduced by this pricelist on the product."), + help="The product to invoice is defined on the employee form, the price will be deducted by this pricelist on the product."), 'amount_max': fields.float('Max. Invoice Price', help="Keep empty if this contract is not limited to a total fixed price."), 'amount_invoiced': fields.function(_invoiced_calc, string='Invoiced Amount', diff --git a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py index 30edae72d9a..c9b2439596d 100644 --- a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py +++ b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py @@ -90,32 +90,28 @@ class account_analytic_line(osv.osv): context2 = context.copy() context2['lang'] = partner.lang - cr.execute("SELECT product_id, to_invoice, sum(unit_amount), product_uom_id " \ + cr.execute("SELECT product_id, to_invoice, sum(unit_amount), product_uom_id, name " \ "FROM account_analytic_line as line " \ "WHERE account_id = %s " \ "AND id IN %s AND to_invoice IS NOT NULL " \ - "GROUP BY product_id,to_invoice,product_uom_id", (account.id, tuple(ids),)) + "GROUP BY product_id, to_invoice, product_uom_id, name", (account.id, tuple(ids),)) - for product_id, factor_id, qty, uom in cr.fetchall(): - product = product_obj.browse(cr, uid, product_id, context2) + for product_id, factor_id, qty, uom, line_name in cr.fetchall(): + if data.get('product'): + product_id = data['product'][0] + product = product_obj.browse(cr, uid, product_id, context=context2) if not product: - raise osv.except_osv(_('Error'), _('At least one line has no product !')) - factor_name = '' - factor = invoice_factor_obj.browse(cr, uid, factor_id, context2) - if not data.get('product', False): - if factor.customer_name: - factor_name = product.name+' - '+factor.customer_name - else: - factor_name = product.name - else: - data['product'] = data['product'][0] - factor_name = product_obj.name_get(cr, uid, [data['product']], context=context)[0][1] + raise osv.except_osv(_('Error'), _('There is no product defined for the line %s. Please select one or force the product through the wizard.') % (line_name)) + factor = invoice_factor_obj.browse(cr, uid, factor_id, context=context2) + factor_name = product_obj.name_get(cr, uid, [product_id], context=context2)[0][1] + if factor.customer_name: + factor_name += ' - ' + factor.customer_name ctx = context.copy() ctx.update({'uom':uom}) if account.pricelist_id: pl = account.pricelist_id.id - price = pro_price_obj.price_get(cr,uid,[pl], data.get('product', False) or product_id, qty or 1.0, account.partner_id.id, context=ctx)[pl] + price = pro_price_obj.price_get(cr,uid,[pl], product_id, qty or 1.0, account.partner_id.id, context=ctx)[pl] else: price = 0.0 @@ -131,7 +127,7 @@ class account_analytic_line(osv.osv): 'invoice_line_tax_id': [(6,0,tax )], 'invoice_id': last_invoice, 'name': factor_name, - 'product_id': data.get('product',product_id), + 'product_id': product_id, 'invoice_line_tax_id': [(6,0,tax)], 'uos_id': uom, 'account_id': account_id, @@ -179,7 +175,7 @@ class hr_timesheet_invoice_create(osv.osv_memory): 'time': fields.boolean('Time spent', help='The time of each work done will be displayed on the invoice'), 'name': fields.boolean('Description', help='The detail of each work done will be displayed on the invoice'), 'price': fields.boolean('Cost', help='The cost of each work done will be displayed on the invoice. You probably don\'t want to check this'), - 'product': fields.many2one('product.product', 'Product', help='Complete this field only if you want to force to use a specific product. Keep empty to use the real product that comes from the cost.'), + 'product': fields.many2one('product.product', 'Force Product', help='Fill this field only if you want to force to use a specific product. Keep empty to use the real product that comes from the cost.'), } _defaults = { diff --git a/addons/hr_timesheet_sheet/__openerp__.py b/addons/hr_timesheet_sheet/__openerp__.py index defa3ee5873..cc788d95a83 100644 --- a/addons/hr_timesheet_sheet/__openerp__.py +++ b/addons/hr_timesheet_sheet/__openerp__.py @@ -25,26 +25,27 @@ 'version': '1.0', 'category': 'Human Resources', "sequence": 16, + "summary": "Attendances, Activities, Timing", 'description': """ This module helps you to easily encode and validate timesheet and attendances within the same view. =================================================================================================== -The upper part of the view is for attendances and track (sign in/sign out) events. -The lower part is for timesheet. + * It will maintain attendances and track (sign in/sign out) events. + * Track the timesheet lines. Other tabs contains statistics views to help you analyse your time or the time of your team: -* Time spent by day (with attendances) -* Time spent by project + * Time spent by day (with attendances) + * Time spent by project This module also implements a complete timesheet validation process: -* Draft sheet -* Confirmation at the end of the period by the employee -* Validation by the project manager + * Draft sheet + * Confirmation at the end of the period by the employee + * Validation by the project manager The validation can be configured in the company: -* Period size (day, week, month, year) -* Maximal difference between timesheet and attendances + * Period size (day, week, month, year) + * Maximal difference between timesheet and attendances """, 'author': 'OpenERP SA', 'website': 'http://www.openerp.com', diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet_data.xml b/addons/hr_timesheet_sheet/hr_timesheet_sheet_data.xml index e66694223d2..c5839f886d3 100644 --- a/addons/hr_timesheet_sheet/hr_timesheet_sheet_data.xml +++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet_data.xml @@ -1,6 +1,15 @@ + + + + + Module Timesheets Validation has been installed + From the top menu "Human Resources", encode and validate + timesheets and attendances. + + diff --git a/addons/hr_timesheet_sheet/i18n/pt_BR.po b/addons/hr_timesheet_sheet/i18n/pt_BR.po index 8ca428bafc5..b37c1f5577b 100644 --- a/addons/hr_timesheet_sheet/i18n/pt_BR.po +++ b/addons/hr_timesheet_sheet/i18n/pt_BR.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: pt_BR\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-02-19 15:16+0000\n" +"PO-Revision-Date: 2012-07-28 22:13+0000\n" "Last-Translator: Joe Pimentel \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-07-14 06:05+0000\n" -"X-Generator: Launchpad (build 15614)\n" +"X-Launchpad-Export-Date: 2012-07-29 04:37+0000\n" +"X-Generator: Launchpad (build 15694)\n" #. module: hr_timesheet_sheet #: field:hr.analytic.timesheet,sheet_id:0 field:hr.attendance,sheet_id:0 @@ -746,7 +746,7 @@ msgstr "Dia" #: model:ir.actions.server,name:hr_timesheet_sheet.ir_actions_server_timsheet_sheet #: model:ir.ui.menu,name:hr_timesheet_sheet.menu_act_hr_timesheet_sheet_form_my_current msgid "My Current Timesheet" -msgstr "" +msgstr "Minha Planilha de Horas Atual" #. module: hr_timesheet_sheet #: view:timesheet.report:0 selection:timesheet.report,state:0 diff --git a/addons/idea/__openerp__.py b/addons/idea/__openerp__.py index 3a9a44c6436..7ee4a72de05 100644 --- a/addons/idea/__openerp__.py +++ b/addons/idea/__openerp__.py @@ -25,8 +25,8 @@ 'version': '0.1', 'category': 'Tools', 'description': """ -This module allows your user to easily and efficiently participate in enterprise innovation. -============================================================================================ +This module allows user to easily and efficiently participate in enterprise innovation. +======================================================================================= It allows everybody to express ideas about different subjects. Then, other users can comment on these ideas and vote for particular ideas. diff --git a/addons/import_base/__openerp__.py b/addons/import_base/__openerp__.py index 7e4334f4a1d..294f864a0e3 100644 --- a/addons/import_base/__openerp__.py +++ b/addons/import_base/__openerp__.py @@ -20,12 +20,12 @@ ############################################################################## { - 'name': 'Framework for complex import', + 'name': 'Framework for Complex Import', 'version': '0.9', 'category': 'Hidden/Dependency', 'description': """ - This module provide a class import_framework to help importing - complex data from other software +This module provide a class import_framework to help importing complex data from +other software. """, 'author': 'OpenERP SA', 'website': 'http://www.openerp.com', diff --git a/addons/import_google/__openerp__.py b/addons/import_google/__openerp__.py index 5242633747f..9e47a213072 100644 --- a/addons/import_google/__openerp__.py +++ b/addons/import_google/__openerp__.py @@ -23,7 +23,7 @@ 'name': 'Google Import', 'version': '1.0', 'category': 'Customer Relationship Management', - 'description': """The module adds google contact in partner address and add google calendar events details in Meeting""", + 'description': """The module adds google contact in partner address and add google calendar events details in Meeting.""", 'author': 'OpenERP SA', 'website': 'http://www.openerp.com', 'depends': ['base', 'import_base', 'google_base_account', 'base_calendar'], diff --git a/addons/import_google/i18n/es.po b/addons/import_google/i18n/es.po new file mode 100644 index 00000000000..325df15688c --- /dev/null +++ b/addons/import_google/i18n/es.po @@ -0,0 +1,217 @@ +# Spanish translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-07-21 21:08+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Spanish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-07-22 04:45+0000\n" +"X-Generator: Launchpad (build 15654)\n" + +#. module: import_google +#: help:synchronize.google.import,group_name:0 +msgid "Choose which group to import, By default it takes all." +msgstr "" + +#. module: import_google +#: view:synchronize.google.import:0 +msgid "Import Google Calendar Events" +msgstr "" + +#. module: import_google +#: view:synchronize.google.import:0 +msgid "_Import Events" +msgstr "" + +#. module: import_google +#: code:addons/import_google/wizard/import_google_data.py:71 +#, python-format +msgid "" +"No Google Username or password Defined for user.\n" +"Please define in user view" +msgstr "" + +#. module: import_google +#: code:addons/import_google/wizard/import_google_data.py:127 +#, python-format +msgid "" +"Invalid login detail !\n" +" Specify Username/Password." +msgstr "" + +#. module: import_google +#: field:synchronize.google.import,supplier:0 +msgid "Supplier" +msgstr "" + +#. module: import_google +#: view:synchronize.google.import:0 +msgid "Import Options" +msgstr "" + +#. module: import_google +#: field:synchronize.google.import,group_name:0 +msgid "Group Name" +msgstr "" + +#. module: import_google +#: model:ir.model,name:import_google.model_crm_case_categ +msgid "Category of Case" +msgstr "" + +#. module: import_google +#: model:ir.actions.act_window,name:import_google.act_google_login_contact_form +#: model:ir.ui.menu,name:import_google.menu_sync_contact +msgid "Import Google Contacts" +msgstr "" + +#. module: import_google +#: view:google.import.message:0 +msgid "Import Google Data" +msgstr "" + +#. module: import_google +#: view:crm.meeting:0 +msgid "Meeting Type" +msgstr "" + +#. module: import_google +#: code:addons/import_google/wizard/import_google.py:38 +#: code:addons/import_google/wizard/import_google_data.py:28 +#, python-format +msgid "" +"Please install gdata-python-client from http://code.google.com/p/gdata-" +"python-client/downloads/list" +msgstr "" + +#. module: import_google +#: model:ir.model,name:import_google.model_google_login +msgid "Google Contact" +msgstr "" + +#. module: import_google +#: view:synchronize.google.import:0 +msgid "Import contacts from a google account" +msgstr "" + +#. module: import_google +#: code:addons/import_google/wizard/import_google_data.py:133 +#, python-format +msgid "Please specify correct user and password !" +msgstr "" + +#. module: import_google +#: field:synchronize.google.import,customer:0 +msgid "Customer" +msgstr "" + +#. module: import_google +#: view:synchronize.google.import:0 +msgid "_Cancel" +msgstr "" + +#. module: import_google +#: model:ir.model,name:import_google.model_synchronize_google_import +msgid "synchronize.google.import" +msgstr "" + +#. module: import_google +#: view:synchronize.google.import:0 +msgid "_Import Contacts" +msgstr "" + +#. module: import_google +#: model:ir.actions.act_window,name:import_google.act_google_login_form +#: model:ir.ui.menu,name:import_google.menu_sync_calendar +msgid "Import Google Calendar" +msgstr "" + +#. module: import_google +#: code:addons/import_google/wizard/import_google_data.py:50 +#, python-format +msgid "Import google" +msgstr "" + +#. module: import_google +#: code:addons/import_google/wizard/import_google_data.py:127 +#: code:addons/import_google/wizard/import_google_data.py:133 +#, python-format +msgid "Error" +msgstr "" + +#. module: import_google +#: code:addons/import_google/wizard/import_google_data.py:71 +#, python-format +msgid "Warning !" +msgstr "" + +#. module: import_google +#: field:synchronize.google.import,create_partner:0 +msgid "Options" +msgstr "" + +#. module: import_google +#: view:google.import.message:0 +msgid "_Ok" +msgstr "" + +#. module: import_google +#: code:addons/import_google/wizard/import_google.py:38 +#: code:addons/import_google/wizard/import_google_data.py:28 +#, python-format +msgid "Google Contacts Import Error!" +msgstr "" + +#. module: import_google +#: model:ir.model,name:import_google.model_google_import_message +msgid "Import Message" +msgstr "" + +#. module: import_google +#: field:synchronize.google.import,calendar_name:0 +msgid "Calendar Name" +msgstr "" + +#. module: import_google +#: help:synchronize.google.import,supplier:0 +msgid "Check this box to set newly created partner as Supplier." +msgstr "" + +#. module: import_google +#: selection:synchronize.google.import,create_partner:0 +msgid "Import only address" +msgstr "" + +#. module: import_google +#: field:crm.case.categ,user_id:0 +msgid "User" +msgstr "" + +#. module: import_google +#: view:synchronize.google.import:0 +msgid "Partner Status for this Group:" +msgstr "" + +#. module: import_google +#: field:google.import.message,name:0 +msgid "Message" +msgstr "" + +#. module: import_google +#: selection:synchronize.google.import,create_partner:0 +msgid "Create partner for each contact" +msgstr "" + +#. module: import_google +#: help:synchronize.google.import,customer:0 +msgid "Check this box to set newly created partner as Customer." +msgstr "" diff --git a/addons/import_google/i18n/pt_BR.po b/addons/import_google/i18n/pt_BR.po index 56654d0f9e7..e130a50e59a 100644 --- a/addons/import_google/i18n/pt_BR.po +++ b/addons/import_google/i18n/pt_BR.po @@ -8,19 +8,19 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-07-16 20:10+0000\n" -"Last-Translator: Rafael \n" +"PO-Revision-Date: 2012-07-28 21:30+0000\n" +"Last-Translator: Fábio Martinelli \n" "Language-Team: Brazilian Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-07-17 04:49+0000\n" -"X-Generator: Launchpad (build 15627)\n" +"X-Launchpad-Export-Date: 2012-07-29 04:38+0000\n" +"X-Generator: Launchpad (build 15694)\n" #. module: import_google #: help:synchronize.google.import,group_name:0 msgid "Choose which group to import, By default it takes all." -msgstr "" +msgstr "Escolha qual grupo importar, por padrão todos são importados." #. module: import_google #: view:synchronize.google.import:0 @@ -30,7 +30,7 @@ msgstr "Importar o Calendário de Eventos da Google" #. module: import_google #: view:synchronize.google.import:0 msgid "_Import Events" -msgstr "" +msgstr "_Importar Eventos" #. module: import_google #: code:addons/import_google/wizard/import_google_data.py:71 @@ -39,6 +39,8 @@ msgid "" "No Google Username or password Defined for user.\n" "Please define in user view" msgstr "" +"Não foi definido nome de usuário ou senha para o usuário Google.\n" +"Por favor definir na visão de usuário" #. module: import_google #: code:addons/import_google/wizard/import_google_data.py:127 @@ -47,6 +49,8 @@ msgid "" "Invalid login detail !\n" " Specify Username/Password." msgstr "" +"Detalhes de acesso inválidos!\n" +" Especificar Usuário/Senha." #. module: import_google #: field:synchronize.google.import,supplier:0 @@ -66,7 +70,7 @@ msgstr "Nome do Grupo" #. module: import_google #: model:ir.model,name:import_google.model_crm_case_categ msgid "Category of Case" -msgstr "" +msgstr "Categoria de Caso" #. module: import_google #: model:ir.actions.act_window,name:import_google.act_google_login_contact_form @@ -77,12 +81,12 @@ msgstr "Importar Contatos do Google" #. module: import_google #: view:google.import.message:0 msgid "Import Google Data" -msgstr "" +msgstr "Importar Dados do Google" #. module: import_google #: view:crm.meeting:0 msgid "Meeting Type" -msgstr "" +msgstr "Tipo de Reunião" #. module: import_google #: code:addons/import_google/wizard/import_google.py:38 @@ -92,22 +96,24 @@ msgid "" "Please install gdata-python-client from http://code.google.com/p/gdata-" "python-client/downloads/list" msgstr "" +"Por favor instale gdata-python-client de http://code.google.com/p/gdata-" +"python-client/downloads/list" #. module: import_google #: model:ir.model,name:import_google.model_google_login msgid "Google Contact" -msgstr "" +msgstr "Contatos do Google" #. module: import_google #: view:synchronize.google.import:0 msgid "Import contacts from a google account" -msgstr "" +msgstr "Importar contatos de uma conta Google" #. module: import_google #: code:addons/import_google/wizard/import_google_data.py:133 #, python-format msgid "Please specify correct user and password !" -msgstr "" +msgstr "Por favor especificar usuário e senha corretos !" #. module: import_google #: field:synchronize.google.import,customer:0 @@ -117,7 +123,7 @@ msgstr "Cliente" #. module: import_google #: view:synchronize.google.import:0 msgid "_Cancel" -msgstr "" +msgstr "_Cancelar" #. module: import_google #: model:ir.model,name:import_google.model_synchronize_google_import @@ -127,7 +133,7 @@ msgstr "sincronizar.importação.google" #. module: import_google #: view:synchronize.google.import:0 msgid "_Import Contacts" -msgstr "" +msgstr "_Importar Contatos" #. module: import_google #: model:ir.actions.act_window,name:import_google.act_google_login_form @@ -139,7 +145,7 @@ msgstr "Importar Calendário do Google" #: code:addons/import_google/wizard/import_google_data.py:50 #, python-format msgid "Import google" -msgstr "" +msgstr "Importar do Google" #. module: import_google #: code:addons/import_google/wizard/import_google_data.py:127 @@ -169,12 +175,12 @@ msgstr "_Ok" #: code:addons/import_google/wizard/import_google_data.py:28 #, python-format msgid "Google Contacts Import Error!" -msgstr "" +msgstr "Erro de importação dos contatos Google!" #. module: import_google #: model:ir.model,name:import_google.model_google_import_message msgid "Import Message" -msgstr "" +msgstr "Importar Mensagem" #. module: import_google #: field:synchronize.google.import,calendar_name:0 @@ -184,12 +190,12 @@ msgstr "Nome do Calendário" #. module: import_google #: help:synchronize.google.import,supplier:0 msgid "Check this box to set newly created partner as Supplier." -msgstr "" +msgstr "Selecione para marcar este parceiro recém criado como Fornecedor." #. module: import_google #: selection:synchronize.google.import,create_partner:0 msgid "Import only address" -msgstr "" +msgstr "Importar somente endereços" #. module: import_google #: field:crm.case.categ,user_id:0 @@ -199,7 +205,7 @@ msgstr "Usuário" #. module: import_google #: view:synchronize.google.import:0 msgid "Partner Status for this Group:" -msgstr "" +msgstr "Situação do Parceiro para este grupo." #. module: import_google #: field:google.import.message,name:0 @@ -209,9 +215,12 @@ msgstr "Mensagem" #. module: import_google #: selection:synchronize.google.import,create_partner:0 msgid "Create partner for each contact" -msgstr "" +msgstr "Criar um parceiro para cada contato" #. module: import_google #: help:synchronize.google.import,customer:0 msgid "Check this box to set newly created partner as Customer." -msgstr "" +msgstr "Selecione para marcar o parceiro recém criado como Cliente" + +#~ msgid "Partner status for this group:" +#~ msgstr "Situação do Parceiro para este grupo" diff --git a/addons/import_sugarcrm/__openerp__.py b/addons/import_sugarcrm/__openerp__.py index ea23247761d..f84b096e28a 100644 --- a/addons/import_sugarcrm/__openerp__.py +++ b/addons/import_sugarcrm/__openerp__.py @@ -23,8 +23,9 @@ 'name': 'SugarCRM Import', 'version': '1.0', 'category': 'Customer Relationship Management', - 'description': """This Module Import SugarCRM "Leads", "Opportunities", "Users", "Accounts", - "Contacts", "Employees", Meetings, Phonecalls, Emails, and Project, Project Tasks Data into OpenERP Module.""", + 'description': """ +This Module Import SugarCRM Leads, Opportunities, Users, Accounts, Contacts, Employees, +Meetings, Phonecalls, Emails, Project and Project Tasks Data into OpenERP Module.""", 'author': 'OpenERP SA', 'website': 'http://www.openerp.com', 'depends': ['import_base','crm', 'document'], diff --git a/addons/knowledge/__openerp__.py b/addons/knowledge/__openerp__.py index dca620b0f07..f6b042f364b 100644 --- a/addons/knowledge/__openerp__.py +++ b/addons/knowledge/__openerp__.py @@ -21,7 +21,7 @@ { - "name" : "Document Management System", + "name" : "Knowledge Management System", "version" : "1.0", "depends" : ["base","base_setup"], "author" : "OpenERP SA", diff --git a/addons/knowledge/i18n/nb.po b/addons/knowledge/i18n/nb.po new file mode 100644 index 00000000000..6f721f133bb --- /dev/null +++ b/addons/knowledge/i18n/nb.po @@ -0,0 +1,33 @@ +# Norwegian Bokmal translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-02-08 01:37+0100\n" +"PO-Revision-Date: 2012-07-23 10:30+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Norwegian Bokmal \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-07-24 04:52+0000\n" +"X-Generator: Launchpad (build 15668)\n" + +#. module: knowledge +#: model:ir.ui.menu,name:knowledge.menu_document2 +msgid "Collaborative Content" +msgstr "" + +#. module: knowledge +#: model:ir.ui.menu,name:knowledge.menu_document_configuration +msgid "Configuration" +msgstr "Konfigurasjon" + +#. module: knowledge +#: model:ir.ui.menu,name:knowledge.menu_document +msgid "Knowledge" +msgstr "Kunnskap" diff --git a/addons/l10n_ar/__init__.py b/addons/l10n_ar/__init__.py new file mode 100644 index 00000000000..92da5dbf966 --- /dev/null +++ b/addons/l10n_ar/__init__.py @@ -0,0 +1,32 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (c) 2011 Cubic ERP - Teradata SAC. (http://cubicerp.com). +# +# WARNING: This program as such is intended to be used by professional +# programmers who take the whole responsability of assessing all potential +# consequences resulting from its eventual inadequacies and bugs +# End users who are looking for a ready-to-use solution with commercial +# garantees and support are strongly adviced to contract a Free Software +# Service Company +# +# 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 2 +# 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, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +############################################################################## + + + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/l10n_ar/__openerp__.py b/addons/l10n_ar/__openerp__.py new file mode 100644 index 00000000000..8971ce94b22 --- /dev/null +++ b/addons/l10n_ar/__openerp__.py @@ -0,0 +1,51 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2011 Cubic ERP - Teradata SAC (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +{ + "name": "Argentina Localization Chart Account", + "version": "1.0", + "description": """ +Argentinian accounting chart and tax localization. + +Plan contable argentino e impuestos de acuerdo a disposiciones vigentes + + """, + "author": ["Cubic ERP"], + "website": "http://cubicERP.com", + "category": "Localization/Account Charts", + "depends": [ + "account_chart", + ], + "data":[ + "account_tax_code.xml", + "l10n_ar_chart.xml", + "account_tax.xml", + "l10n_ar_wizard.xml", + ], + "demo_xml": [ + ], + "update_xml": [ + ], + "active": False, + "installable": True, + "certificate" : "", + 'images': ['images/config_chart_l10n_ar.jpeg','images/l10n_ar_chart.jpeg'], +} +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/l10n_ar/account_tax.xml b/addons/l10n_ar/account_tax.xml new file mode 100644 index 00000000000..8c8c648f0af --- /dev/null +++ b/addons/l10n_ar/account_tax.xml @@ -0,0 +1,101 @@ + + + + + + + IVA 21% Venta + 0.210000 + percent + sale + + + + + + + + + + IVA 21% Compra + 0.210000 + percent + purchase + + + + + + + + + + + IVA 27% Venta + 0.270000 + percent + sale + + + + + + + + + + IVA 27% Compra + 0.270000 + percent + purchase + + + + + + + + + + + IVA 10.5% Venta + 0.105000 + percent + sale + + + + + + + + + + IVA 10.5% Compra + 0.105000 + percent + purchase + + + + + + + + + + + Percepción IVA 2% + 0.02000 + percent + purchase + + + + + + + + + + diff --git a/addons/l10n_ar/account_tax_code.xml b/addons/l10n_ar/account_tax_code.xml new file mode 100644 index 00000000000..806a358f7cc --- /dev/null +++ b/addons/l10n_ar/account_tax_code.xml @@ -0,0 +1,106 @@ + + + + + + Argentina Impuestos + + + Base Imponible + + + + Base Imponible - Ventas + + + + Ventas Gravadas con IVA + + + + Ventas NO Gravadas (Exoneradas) + + + + Ventas Gravadas Fuera de Ámbito + + + + Base Imponible - Compras + + + + Compras Gravadas con IVA + + + + Compras NO Gravadas (Exoneradas) + + + + Compras Gravadas Fuera de Ámbito + + + + + Impuesto General a las Ventas (IVA) Total a Pagar + + + + Impuesto Pagado + + + + Impuesto Pagado IVA + + -1 + + + Impuesto Pagado de Exonerados al IVA + + -1 + + + Impuesto Pagado Fuera de Ámbito + + -1 + + + Impuesto Cobrado + + + + Impuesto Cobrado IVA + + + + Impuesto Cobrado de Exonerados al IVA + + + + Impuesto Cobrado Fuera de Ámbito + + + + + Impuesto Nacionales a Pagar + + + + Impuesto a las Ganancias a Pagar + + + + Impuesto a los Bienes Personales a Pagar + + + + Impuesto a la Ganancia Mínima Presunta a Pagar + + + + Monotributo a Pagar + + + + diff --git a/addons/l10n_ar/i18n/es.po b/addons/l10n_ar/i18n/es.po new file mode 100644 index 00000000000..097598864fe --- /dev/null +++ b/addons/l10n_ar/i18n/es.po @@ -0,0 +1,72 @@ +# Spanish translation for openobject-addons +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:15+0000\n" +"PO-Revision-Date: 2011-01-10 13:46+0000\n" +"Last-Translator: Yury Tello \n" +"Language-Team: Spanish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-01-15 05:56+0000\n" +"X-Generator: Launchpad (build 12177)\n" + +#. module: l10n_ar +#: model:ir.module.module,description:l10n_ar.module_meta_information +msgid "" +"\n" +" Argentinian Accounting : chart of Account\n" +" " +msgstr "" +"\n" +" Contabilidad Peruana : Plan de cuentas\n" +" " + +#. module: l10n_ar +#: model:ir.module.module,shortdesc:l10n_ar.module_meta_information +msgid "Argentinian Chart of Account" +msgstr "Plan de cuentas de Argentina" + +#. module: l10n_ar +#: model:ir.actions.todo,note:l10n_ar.config_call_account_template_in_minimal +msgid "" +"Generate Chart of Accounts from a Chart Template. You will be asked to pass " +"the name of the company, the chart template to follow, the no. of digits to " +"generate the code for your accounts and Bank account, currency to create " +"Journals. Thus,the pure copy of chart Template is generated.\n" +"\tThis is the same wizard that runs from Financial " +"Management/Configuration/Financial Accounting/Financial Accounts/Generate " +"Chart of Accounts from a Chart Template." +msgstr "" +"Generar el plan contable a partir de una plantilla de plan contable. Se le " +"pedirá el nombre de la compañia, la plantilla de plan contable a utilizar, " +"el número de dígitos para generar el código de las cuentas y de la cuenta " +"bancaria, la moneda para crear los diarios. Así pues, se genere una copia " +"exacta de la plantilla de plan contable.\n" +"\tEste es el mismo asistente que se ejecuta desde Contabilidad y finanzas / " +"Configuración / Contabilidad financiera / Cuentas financieras / Generar el " +"plan contable a partir de una plantilla de plan contable." + +#~ msgid "Liability" +#~ msgstr "Pasivo" + +#~ msgid "Asset" +#~ msgstr "Activo" + +#~ msgid "Closed" +#~ msgstr "Cerrado" + +#~ msgid "Income" +#~ msgstr "Ingreso" + +#~ msgid "Expense" +#~ msgstr "Gasto" + +#~ msgid "View" +#~ msgstr "Vista" diff --git a/addons/l10n_ar/i18n/es_AR.po b/addons/l10n_ar/i18n/es_AR.po new file mode 100644 index 00000000000..2260a43cf74 --- /dev/null +++ b/addons/l10n_ar/i18n/es_AR.po @@ -0,0 +1,54 @@ +# Spanish (Paraguay) translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:15+0000\n" +"PO-Revision-Date: 2011-03-21 16:23+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Spanish (Paraguay) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-03-22 04:36+0000\n" +"X-Generator: Launchpad (build 12559)\n" + +#. module: l10n_ar +#: model:ir.module.module,description:l10n_ar.module_meta_information +msgid "" +"\n" +" Argentinian Accounting : chart of Account\n" +" " +msgstr "" +"\n" +" Contabilidad Argentina : Plan de cuentas\n" +" " + +#. module: l10n_ar +#: model:ir.module.module,shortdesc:l10n_ar.module_meta_information +msgid "Argentinian Chart of Account" +msgstr "Plan de cuentas de la Argentina" + +#. module: l10n_ar +#: model:ir.actions.todo,note:l10n_ar.config_call_account_template_in_minimal +msgid "" +"Generate Chart of Accounts from a Chart Template. You will be asked to pass " +"the name of the company, the chart template to follow, the no. of digits to " +"generate the code for your accounts and Bank account, currency to create " +"Journals. Thus,the pure copy of chart Template is generated.\n" +"\tThis is the same wizard that runs from Financial " +"Management/Configuration/Financial Accounting/Financial Accounts/Generate " +"Chart of Accounts from a Chart Template." +msgstr "" +"Generar el plan contable a partir de una plantilla de plan contable. Se le " +"pedirá el nombre de la compañía, la plantilla de plan contable a utilizar, " +"el número de dígitos para generar el código de las cuentas y de la cuenta " +"bancaria, la moneda para crear los diarios. Así pues, se genere una copia " +"exacta de la plantilla de plan contable.\n" +"\tEste es el mismo asistente que se ejecuta desde Contabilidad y finanzas / " +"Configuración / Contabilidad financiera / Cuentas financieras / Generar el " +"plan contable a partir de una plantilla de plan contable." diff --git a/addons/l10n_ar/i18n/l10n_ar.pot b/addons/l10n_ar/i18n/l10n_ar.pot new file mode 100644 index 00000000000..8d117342eea --- /dev/null +++ b/addons/l10n_ar/i18n/l10n_ar.pot @@ -0,0 +1,35 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * l10n_ar +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 6.1.0-rc1\n" +"Report-Msgid-Bugs-To: soporte@cubicerp.com\n" +"POT-Creation-Date: 2011-01-11 11:15:31+0000\n" +"PO-Revision-Date: 2011-01-11 11:15:31+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: l10n_ar +#: model:ir.module.module,description:l10n_ar.module_meta_information +msgid "\n" +" Argentinian Accounting : chart of Account\n" +" " +msgstr "" + +#. module: l10n_ar +#: model:ir.module.module,shortdesc:l10n_ar.module_meta_information +msgid "Argentinian Chart of Account" +msgstr "" + +#. module: l10n_ar +#: model:ir.actions.todo,note:l10n_ar.config_call_account_template_in_minimal +msgid "Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.\n" +" This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template." +msgstr "" + diff --git a/addons/l10n_ar/l10n_ar_chart.xml b/addons/l10n_ar/l10n_ar_chart.xml new file mode 100644 index 00000000000..062697d5aa6 --- /dev/null +++ b/addons/l10n_ar/l10n_ar_chart.xml @@ -0,0 +1,260 @@ + + + + + + + noneviewVistanone + + balanceBG_ACC_10Caja y Bancosasset + detailBG_ACC_20Inversionesasset + unreconciledBG_ACC_30Créditos por Ventasasset + unreconciledBG_ACC_50Otros Créditosasset + balanceBG_ACC_60Bienes de Cambioasset + + detailBG_ACN_10Otros Créditos No Corrientesasset + detailBG_ACN_40Inversiones Permanentesasset + balanceBG_ACN_50Bienes de Usoasset + + unreconciledBG_PAC_10Deudas Bancarias y Financierasliability + unreconciledBG_PAC_20Cuentas por Pagarliability + unreconciledBG_PAC_35Remuneraciones y Cargas Socialesliability + unreconciledBG_PAC_40Cargas Fiscalesliability + unreconciledBG_PAC_45Otros Pasivosliability + + unreconciledBG_PAN_10Deudas Bancarias y Financieras a Largo Plazoliability + unreconciledBG_PAN_20Otros Pasivos a Largo Plazoliability + unreconciledBG_PAN_40Previsionesliability + + balanceBG_PTN_10Patrimonio Netoliability + + noneEGP_FU_010Ventas Netas de Bienes y Serviciosincome + noneEGP_FU_030Costo Mercaderías y Servicios Vendidosexpense + noneEGP_FU_040Gastos de Administraciónexpense + noneEGP_FU_050Gastos de Comercializaciónexpense + unreconciledEGP_FU_060Ingresos Financieros y por tenenciaincome + noneEGP_FU_070Gastos Financieros y por tenenciaexpense + noneEGP_FU_080Otros Ingresosincome + noneEGP_FU_090Otros Gastosexpense + noneEGP_FU_120Impuesto a las Gananciasexpense + noneEGP_FU_160Ganancia (Pérdida) Neta del Ejercicioincome + + noneEGP_NA_010Compras de Bienes de Usonone + + noneORDCuentas de Ordennone + + noneNCLASIFICADOCuentas No Clasificadasnone + + + + + Argentina + pcge + + view + + + Cuentas Patrimoniales + .1.BG + + + view + + + ACTIVO1view + Caja y Bancos11view + Caja y Bancos - Caja111view + Caja y bancos - Caja / efectivo ARS111.001liquidity + Caja y Bancos - Moneda Extranjera112view + Caja y bancos - Caja / efectivo USD112.001liquidity + Caja y Bancos - Fondos fijos113view + Caja y ...- Fondos fijos / caja chica 01 ARS113.001liquidity + Caja y Bancos - Cuentas Corrientes114view + Caja y Bancos.../ BCO. CTA CTE ARS114.001liquidity + Caja y bancos - Valores a Depositar 115other + Caja y bancos - Recaudaciones a Depositar 116other + Créditos por Ventas12view + Créditos por Ventas / Deudores por Ventas121receivable1 + Créditos por Ventas / Deudores Morosos122receivable1 + Créditos por Ventas / Deudores en Gestión Judicial123receivable + Créditos por Ventas / Deudores Varios124receivable + Créditos por Ventas / (-) Previsión para Ds. Incobrables125receivable1 + Otros Créditos13view + Otros Créditos / Préstamos otorgados131receivable + Otros Créditos / Anticipos a Proveedores132receivable + Otros Créditos / Anticipo de Impuestos133receivable + Otros Créditos / Anticipo al Personal134receivable + Otros Créditos / Alquileres Pagados por Adelantado135receivable + Otros Créditos / Intereses Pagados por Adelantado136receivable + Otros Créditos / Accionistas137receivable + Otros Créditos / (-) Previsión para Descuentos138receivable + Otros Créditos / (-) Intereses (+) a Devengar139receivable + Inversiones14view + Inversiones / Acciones Transitorias141other + Inversiones / Acciones Permanentes142other + Inversiones / Títulos Públicos143other + Inversiones / (-) Previsión para Devalorización de Acciones144other + Bienes de Cambio15view + Bienes de Cambio - Mercaderías151view + Bienes de Cambio - Mercaderías / Categoria de productos 01151.01other + Bienes de Cambio - Mercaderías en Tránsito152other + Materias primas153other + Productos en Curso de Elaboración154other + Productos Elaborados155other + Materiales Varios 156other + (-) Previsión para Desvalorización de Bienes de Cambio157other + Bienes de Uso16view + Bienes de Uso / Inmuebles161other + Bienes de Uso / Maquinaria162other + Bienes de Uso / Equipos163other + Bienes de Uso / Rodados164other + Bienes de Uso / (-) Depreciación Acumulada165other + Bienes Inmateriales17view + Bienes Inmateriales / Marcas de Fábrica171other + Bienes Inmateriales / Concesiones y Franquicias172other + Bienes Inmateriales / Patentes de Invención173other + Bienes Inmateriales / (-) Amortización Acumulada174other + PASIVO2view + Deudas Comerciales21view + Deudas Comerciales / Proveedores211payable1 + Deudas Comerciales / Anticipos de Clientes212payable1 + Deudas Comerciales / (-) Intereses a Devengar por Compras al Crédito213payable1 + Deudas Bancarias y Financieras22view + Deudas Bancarias y Financieras / Adelantos en Cuenta Corriente221payable + Deudas Bancarias y Financieras / Prestamos222payable + Deudas Bancarias y Financieras / Obligaciones a Pagar223payable + Deudas Bancarias y Financieras / Intereses a Pagar224payable + Deudas Bancarias y Financieras / Debentures Emitidos225payable + Deudas Fiscales23view + Deudas Fiscales / IVA a Pagar231other + Deudas Fiscales / Impuesto a los Débitos y Créditos Bancarios a Pagar232other + Deudas Fiscales / Impuesto a las Ganancias a Pagar233other + Deudas Fiscales / Impuesto sobre los Bienes Personales a Pagar234other + Deudas Fiscales / Impuesto a la Ganancia Mínima Presunta a Pagar235other + Deudas Fiscales / Monotributo a Pagar236other + Deudas Sociales24view + Deudas Sociales / Sueldos a Pagar241payable + Deudas Sociales / Cargas Sociales a Pagar242payable + Deudas Sociales / Provisión para Sueldo Anual Complementario243payable + Deudas Sociales / Retenciones a Depositar244payable + Otras Deudas25view + Otras Deudas / Acreedores Varios251payable + Otras Deudas / Dividendos a Pagar252payable + Otras Deudas / Cobros por Adelantado253payable + Otras Deudas / Honorarios Directores y Síndicos a Pagar254payable + Previsiones26view + Previsiones / Previsión Indemnización por Despidos261payable + Previsiones / Previsión para juicios Pendientes262payable + Previsiones / Previsión para Garantías por Service263payable + PATRIMONIO NETO3view + Capital Social31view + Capital social / Capital Suscripto311other + Capital social / Acciones en Circulación312other + Capital social / Dividendos a Distribuir en Acciones313other + Capital social / (-) Descuento de Emisión de Acciones314other + Aportes No Capitalizados32view + Aportes No Capitalizados / Primas de Emsión321other + Aportes No Capitalizados / Aportes Irrevocables Futura Suscripción de Acciones322other + Ajustes al Patrimonio33view + Ajustes al Patrimonio / Revaluo Técnico de Bienes de Uso331other + Ganancias Reservadas34view + Reserva Legal341other + Reserva Estatutaria342other + Reserva Facultativa343other + Reserva para Renovación de Bienes de Uso344other + Resultados No Asignados35view + Resultados Acumulados351other + Resultados Acumulados del Ejercicio Anterior352other + Ganancias y Pérdidas del Ejercicio353other + Resultado del Ejercicio354other + + + Cuentas de Resultado + .2.GP + + + view + + + RESULTADOS POSITIVOS4view + Resultados Positivos Ordinarios41view + Resultados Positivos Ordinarios411view + Ventas - Categoria de productos 01411.01other + Intereses gananados, obtenidos, percibidos412other + Alquileres gananados, obtenidos, percibidos413other + Comisiones gananados, obtenidos, percibidos414other + Descuentos gananados, obtenidos, percibidos415other + Renta de Títulos Públicos416other + Honorarios gananados, obtenidos, percibidos417other + Ganancia Venta de Acciones418other + Resultados Positivos Extraordinarios42view + Recupero de Rezagos421other + Recupero de Deudores Incobrables422other + Ganancia Venta de Bienes de Uso423other + Donaciones obtenidas, ganandas, percibidas424other + Ganancia Venta Inversiones Permanentes425other + RESULTADOS NEGATIVOS5view + Resultados Negativos Ordinarios51view + Costo de Mercaderías Vendidas511view + Costo de Mercaderías Vendidas - Categoria de productos 01511.01other + Gastos en Depreciación de Bienes de Uso512other + Gastos en Amortización513other + Gastos en Sueldos y Jormales514other + Gastos en Cargas Sociales515other + Gastos en Impuestos516other + Gastos Bancarios517other + Gastos en Servicios Públicos518other + Gastos de Publicidad y Propaganda519other + Resultados Negativos Extraordinarios52view + Gastos en Siniestros521other + Donaciones Cedidas, Otorgadas522other + Pérdida Venta Bienes de Uso523other + + + Cuentas de Movimiento + .3.CC + + + view + + + Compras61view + Compras - Categoria de productos 0161.01other + Costos de Producción62other + Gastos de Administración63other + Gastos de Comercialización64other + + + Cuentas de Orden + .4.CO + + + view + + + CUENTAS DE ORDEN DEUDORAS71view + Mercaderias Recibidas en Consignación711other + Depósito de Valores Recibos en Garantía712other + Garantias Otorgadas713other + Documentos Descontados714other + Documentos Endosados715other + CUENTAS DE ORDEN ACREEDORAS72view + Comitente por Mercaderias Recibidas en Consignación721other + Acreedor por Garantías Otorgadas722other + Acreedor por Documentos Descontados723other + + + Argentina - Plan de Cuentas + + + + + + + + + + + + + diff --git a/addons/l10n_ar/l10n_ar_wizard.xml b/addons/l10n_ar/l10n_ar_wizard.xml new file mode 100644 index 00000000000..1180acb46e8 --- /dev/null +++ b/addons/l10n_ar/l10n_ar_wizard.xml @@ -0,0 +1,15 @@ + + + + + + Generate Chart of Accounts from a Chart Template + Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated. + This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template. + + + automatic + + + + diff --git a/addons/l10n_at/__openerp__.py b/addons/l10n_at/__openerp__.py index 0f70ec5ddbd..fc266e40d51 100644 --- a/addons/l10n_at/__openerp__.py +++ b/addons/l10n_at/__openerp__.py @@ -26,7 +26,10 @@ "website" : "http://www.conexus.at", "category" : "Localization/Account Charts", "depends" : ["account_chart", 'base_vat'], - "description": "This module provides the standard Accounting Chart for Austria which is based on the Template from BMF.gv.at. Please keep in mind that you should review and adapt it with your Accountant, before using it in a live Environment.", + "description": """ +This module provides the standard Accounting Chart for Austria which is based on +the Template from BMF.gv.at. Please keep in mind that you should review and adapt +it with your Accountant, before using it in a live Environment.""", "demo_xml" : [], "update_xml" : ['account_tax_code.xml',"account_chart.xml",'account_tax.xml',"l10n_chart_at_wizard.xml"], "auto_install": False, diff --git a/addons/l10n_be/__openerp__.py b/addons/l10n_be/__openerp__.py index d8bf8fb88a2..1f4bcfe6284 100644 --- a/addons/l10n_be/__openerp__.py +++ b/addons/l10n_be/__openerp__.py @@ -27,17 +27,23 @@ This is the base module to manage the accounting chart for Belgium in OpenERP. After installing this module, the Configuration wizard for accounting is launched. * We have the account templates which can be helpful to generate Charts of Accounts. - * On that particular wizard, you will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate, the code for your account and bank account, currency to create journals. + * On that particular wizard, you will be asked to pass the name of the company, + the chart template to follow, the no. of digits to generate, the code for your + account and bank account, currency to create journals. Thus, the pure copy of Chart Template is generated. Wizards provided by this module: - * Partner VAT Intra: Enlist the partners with their related VAT and invoiced amounts.Prepares an XML file format. - Path to access : Accounting/Reporting//Legal Statements/Belgium Statements/Partner VAT Listing - * Periodical VAT Declaration: Prepares an XML file for Vat Declaration of the Main company of the User currently Logged in. - Path to access : Accounting/Reporting/Legal Statements/Belgium Statements/Periodical VAT Declaration - * Annual Listing Of VAT-Subjected Customers: Prepares an XML file for Vat Declaration of the Main company of the User currently Logged in.Based on Fiscal year - Path to access : Accounting/Reporting/Legal Statements/Belgium Statements/Annual Listing Of VAT-Subjected Customers + * Partner VAT Intra: Enlist the partners with their related VAT and invoiced + amounts. Prepares an XML file format. + Path to access : Invoicing/Reporting/Legal Reports/Belgium Statements/Partner VAT Intra + * Periodical VAT Declaration: Prepares an XML file for Vat Declaration of + the Main company of the User currently Logged in. + Path to access : Invoicing/Reporting/Legal Reports/Belgium Statements/Periodical VAT Declaration + * Annual Listing Of VAT-Subjected Customers: Prepares an XML file for Vat + Declaration of the Main company of the User currently Logged in Based on + Fiscal year. + Path to access : Invoicing/Reporting/Legal Reports/Belgium Statements/Annual Listing Of VAT-Subjected Customers """, 'author': 'Noviat & OpenERP SA', diff --git a/addons/l10n_be/wizard/l10n_be_account_vat_declaration.py b/addons/l10n_be/wizard/l10n_be_account_vat_declaration.py index eed2a537f62..95978ac52e7 100644 --- a/addons/l10n_be/wizard/l10n_be_account_vat_declaration.py +++ b/addons/l10n_be/wizard/l10n_be_account_vat_declaration.py @@ -45,7 +45,7 @@ class l10n_be_vat_declaration(osv.osv_memory): 'tax_code_id': fields.many2one('account.tax.code', 'Tax Code', domain=[('parent_id', '=', False)], required=True), 'msg': fields.text('File created', size=64, readonly=True), 'file_save': fields.binary('Save File'), - 'ask_restitution': fields.boolean('Ask Restitution',help='It indicates whether a resitution is to made or not?'), + 'ask_restitution': fields.boolean('Ask Restitution',help='It indicates whether a restitution is to made or not?'), 'ask_payment': fields.boolean('Ask Payment',help='It indicates whether a payment is to made or not?'), 'client_nihil': fields.boolean('Last Declaration, no clients in client listing', help='Tick this case only if it concerns only the last statement on the civil or cessation of activity: ' \ 'no clients to be included in the client listing.'), diff --git a/addons/l10n_be/wizard/l10n_be_vat_intra.py b/addons/l10n_be/wizard/l10n_be_vat_intra.py index 123d235f19b..2bfc4de6bad 100644 --- a/addons/l10n_be/wizard/l10n_be_vat_intra.py +++ b/addons/l10n_be/wizard/l10n_be_vat_intra.py @@ -60,7 +60,7 @@ class partner_vat_intra(osv.osv_memory): 'test_xml': fields.boolean('Test XML file', help="Sets the XML output as test file"), 'mand_id' : fields.char('Reference', size=14, help="Reference given by the Representative of the sending company."), 'msg': fields.text('File created', size=14, readonly=True), - 'no_vat': fields.text('Partner With No VAT', size=14, readonly=True, help="The Partner whose VAT number is not defined they doesn't include in XML File."), + 'no_vat': fields.text('Partner With No VAT', size=14, readonly=True, help="The Partner whose VAT number is not defined and they are not included in XML File."), 'file_save' : fields.binary('Save File', readonly=True), 'country_ids': fields.many2many('res.country', 'vat_country_rel', 'vat_id', 'country_id', 'European Countries'), 'comments': fields.text('Comments'), diff --git a/addons/l10n_be_hr_payroll/__openerp__.py b/addons/l10n_be_hr_payroll/__openerp__.py index ebe2c8c0743..e0d7ada059b 100644 --- a/addons/l10n_be_hr_payroll/__openerp__.py +++ b/addons/l10n_be_hr_payroll/__openerp__.py @@ -25,14 +25,14 @@ 'depends': ['hr_payroll'], 'version': '1.0', 'description': """ -Belgian Payroll Rules -===================== +Belgian Payroll Rules. +====================== * Employee Details * Employee Contracts * Passport based Contract - * Allowances / Deductions - * Allow to configure Basic / Grows / Net Salary + * Allowances/Deductions + * Allow to configure Basic/Gross/Net Salary * Employee Payslip * Monthly Payroll Register * Integrated with Holiday Management diff --git a/addons/l10n_be_hr_payroll_account/__openerp__.py b/addons/l10n_be_hr_payroll_account/__openerp__.py index ce6730df3da..81c7e243b39 100644 --- a/addons/l10n_be_hr_payroll_account/__openerp__.py +++ b/addons/l10n_be_hr_payroll_account/__openerp__.py @@ -25,7 +25,7 @@ 'depends': ['l10n_be_hr_payroll', 'hr_payroll_account', 'l10n_be'], 'version': '1.0', 'description': """ -Accounting Data for Belgian Payroll Rules +Accounting Data for Belgian Payroll Rules. """, 'auto_install': True, diff --git a/addons/l10n_be_invoice_bba/__openerp__.py b/addons/l10n_be_invoice_bba/__openerp__.py index 9cdc97d0c71..9f4efe1b31e 100644 --- a/addons/l10n_be_invoice_bba/__openerp__.py +++ b/addons/l10n_be_invoice_bba/__openerp__.py @@ -32,7 +32,9 @@ Belgian localisation for in- and outgoing invoices (prereq to account_coda): - Rename 'reference' field labels to 'Communication' - Add support for Belgian Structured Communication -A Structured Communication can be generated automatically on outgoing invoices according to the following algorithms: +A Structured Communication can be generated automatically on outgoing invoices +according to the following algorithms: + 1) Random : +++RRR/RRRR/RRRDD+++ R..R = Random Digits, DD = Check Digits 2) Date : +++DOY/YEAR/SSSDD+++ @@ -40,8 +42,9 @@ A Structured Communication can be generated automatically on outgoing invoices a 3) Customer Reference +++RRR/RRRR/SSSDDD+++ R..R = Customer Reference without non-numeric characters, SSS = Sequence Number, DD = Check Digits) -The preferred type of Structured Communication and associated Algorithm can be specified on the Partner records. -A 'random' Structured Communication will generated if no algorithm is specified on the Partner record. +The preferred type of Structured Communication and associated Algorithm can be +specified on the Partner records. A 'random' Structured Communication will +generated if no algorithm is specified on the Partner record. """, 'depends': ['account'], diff --git a/addons/l10n_be_invoice_bba/partner_view.xml b/addons/l10n_be_invoice_bba/partner_view.xml index 8be0f31d612..d78df2d7a42 100644 --- a/addons/l10n_be_invoice_bba/partner_view.xml +++ b/addons/l10n_be_invoice_bba/partner_view.xml @@ -9,7 +9,7 @@ form - + diff --git a/addons/l10n_br/__openerp__.py b/addons/l10n_br/__openerp__.py index 909d4f53600..022fa1b6a4d 100644 --- a/addons/l10n_br/__openerp__.py +++ b/addons/l10n_br/__openerp__.py @@ -22,8 +22,8 @@ 'name': 'Brazilian - Accounting', 'category': 'Localization/Account Charts', 'description': """ -Base module for the Brazilian localization -========================================== +Base module for the Brazilian localization. +=========================================== This module consists in: @@ -41,9 +41,23 @@ This module consists in: - Tax Situation Code (CST) required for the electronic fiscal invoicing (NFe) -The field tax_discount has also been added in the account.tax.template and account.tax objects to allow the proper computation of some Brazilian VATs such as ICMS. The chart of account creation wizard has been extended to propagate those new data properly. +The field tax_discount has also been added in the account.tax.template and account.tax +objects to allow the proper computation of some Brazilian VATs such as ICMS. The +chart of account creation wizard has been extended to propagate those new data properly. -It's important to note however that this module lack many implementations to use OpenERP properly in Brazil. Those implementations (such as the electronic fiscal Invoicing which is already operational) are brought by more than 15 additional modules of the Brazilian Launchpad localization project https://launchpad.net/openerp.pt-br-localiz and their dependencies in the extra addons branch. Those modules aim at not breaking with the remarkable OpenERP modularity, this is why they are numerous but small. One of the reasons for maintaining those modules apart is that Brazilian Localization leaders need commit rights agility to complete the localization as companies fund the remaining legal requirements (such as soon fiscal ledgers, accounting SPED, fiscal SPED and PAF ECF that are still missing as September 2011). Those modules are also strictly licensed under AGPL V3 and today don't come with any additional paid permission for online use of 'private modules'.""", +It's important to note however that this module lack many implementations to use +OpenERP properly in Brazil. Those implementations (such as the electronic fiscal +Invoicing which is already operational) are brought by more than 15 additional +modules of the Brazilian Launchpad localization project +https://launchpad.net/openerp.pt-br-localiz and their dependencies in the extra +addons branch. Those modules aim at not breaking with the remarkable OpenERP +modularity, this is why they are numerous but small. One of the reasons for +maintaining those modules apart is that Brazilian Localization leaders need commit +rights agility to complete the localization as companies fund the remaining legal +requirements (such as soon fiscal ledgers, accounting SPED, fiscal SPED and PAF +ECF that are still missing as September 2011). Those modules are also strictly +licensed under AGPL V3 and today don't come with any additional paid permission +for online use of 'private modules'.""", 'license': 'AGPL-3', 'author': 'Akretion, OpenERP Brasil', 'website': 'http://openerpbrasil.org', diff --git a/addons/l10n_ca/__openerp__.py b/addons/l10n_ca/__openerp__.py index 800ca7937eb..bd5fe4e6ea0 100644 --- a/addons/l10n_ca/__openerp__.py +++ b/addons/l10n_ca/__openerp__.py @@ -33,13 +33,11 @@ Canadian accounting charts and localizations. "depends" : ['base', 'account', 'base_iban', 'base_vat', 'account_chart'], "init_xml" : [], "update_xml" : [ - 'account_types_en.xml', 'account_chart_en.xml', 'account_tax_code_en.xml', 'account_chart_template_en.xml', 'account_tax_en.xml', 'fiscal_templates_en.xml', - 'account_types_fr.xml', 'account_chart_fr.xml', 'account_tax_code_fr.xml', 'account_chart_template_fr.xml', diff --git a/addons/l10n_ca/account_chart_en.xml b/addons/l10n_ca/account_chart_en.xml index 103512b40b2..0d67e081d08 100644 --- a/addons/l10n_ca/account_chart_en.xml +++ b/addons/l10n_ca/account_chart_en.xml @@ -8,7 +8,7 @@ Account Chart CA EN view - + @@ -17,7 +17,7 @@ 1 view - + ASSETS @@ -25,7 +25,7 @@ 11 view - + CURRENT ASSETS @@ -33,7 +33,7 @@ 111 view - + CASH @@ -41,7 +41,7 @@ 1111 liquidity - + Checking Account @@ -49,7 +49,7 @@ 112 view - + TREASURY OR TREASURY EQUIVALENTS @@ -57,7 +57,7 @@ 113 view - + CERTIFICATES OF DEPOSITS @@ -65,7 +65,7 @@ 114 view - + STOCKS @@ -73,7 +73,7 @@ 115 view - + ACCOUNTS RECEIVABLES @@ -81,7 +81,7 @@ 1151 receivable - + Customers Account @@ -90,7 +90,7 @@ 1152 view - + ALLOWANCE FOR DOUBTFUL ACCOUNTS @@ -98,7 +98,7 @@ 116 view - + PREPAID EXPENSES @@ -106,7 +106,7 @@ 117 view - + INVESTMENTS HELD FOR TRADING @@ -114,15 +114,15 @@ 118 view - + TAXES RECEIVABLES 1181 - receivable - + other + GST receivable @@ -130,8 +130,8 @@ 1182 - receivable - + other + PST/QST receivable @@ -139,8 +139,8 @@ 1183 - receivable - + other + HST receivable @@ -149,7 +149,7 @@ 15 view - + NON-CURRENT ASSETS @@ -157,7 +157,7 @@ 151 view - + INVESTMENTS AVAILABLE FOR SALE @@ -165,7 +165,7 @@ 152 view - + TANGIBLE ASSETS @@ -173,7 +173,7 @@ 1527 view - + ACCUMULATED DEPRECIATIONS @@ -181,7 +181,7 @@ 153 view - + INTANGIBLE ASSETS @@ -189,7 +189,7 @@ 1531 view - + PATENTS, TRADEMARKS AND COPYRIGHTS @@ -199,7 +199,7 @@ 2 view - + LIABILITIES @@ -207,7 +207,7 @@ 21 view - + CURRENT LIABILITIES @@ -215,7 +215,7 @@ 211 view - + ACCOUNTS PAYABLES @@ -223,7 +223,7 @@ 2111 payable - + Suppliers Account @@ -232,15 +232,15 @@ 212 view - + TAXES PAYABLES 2121 - payable - + other + GST to pay @@ -248,8 +248,8 @@ 2122 - payable - + other + PST/QST to pay @@ -257,8 +257,8 @@ 2123 - payable - + other + HST to pay @@ -267,7 +267,7 @@ 213 view - + CURRENT FINANCIAL DEBTS @@ -275,7 +275,7 @@ 25 view - + NON-CURRENT LIABILITIES @@ -283,7 +283,7 @@ 251 view - + NON-CURRENT FINANCIAL DEBTS @@ -291,7 +291,7 @@ 252 view - + PROVISIONS FOR PENSIONS AND OTHER POST-EMPLOYMENT ADVANTAGES @@ -299,7 +299,7 @@ 253 view - + DEFERRED TAXES @@ -307,7 +307,7 @@ 259 view - + OTHER NON-CURRENT LIABILITIES @@ -317,7 +317,7 @@ 3 view - + EQUITY @@ -325,7 +325,7 @@ 31 view - + SHARE CAPITAL @@ -333,7 +333,7 @@ 32 view - + PREMIUMS @@ -341,7 +341,7 @@ 33 view - + RETAINED EARNINGS @@ -349,7 +349,7 @@ 34 view - + DIVIDENDS @@ -357,7 +357,7 @@ 35 view - + TRANSLATION ADJUSTMENTS @@ -365,7 +365,7 @@ 36 view - + CONTRIBUTED SURPLUS @@ -375,7 +375,7 @@ 4 view - + INCOMES @@ -383,7 +383,7 @@ 41 view - + OPERATING INCOMES @@ -391,7 +391,7 @@ 411 other - + Inside Sales @@ -399,7 +399,7 @@ 412 other - + Harmonized Provinces Sales @@ -407,7 +407,7 @@ 413 other - + Non-Harmonized Provinces Sales @@ -415,7 +415,7 @@ 414 other - + International Sales @@ -423,7 +423,7 @@ 419 view - + OTHER OPERATING INCOMES @@ -431,7 +431,7 @@ 42 view - + NON-OPERATING INCOMES @@ -439,7 +439,7 @@ 421 view - + INTERESTS @@ -447,7 +447,7 @@ 429 view - + OTHER NON-OPERATING INCOMES @@ -457,7 +457,7 @@ 5 view - + EXPENSES @@ -465,7 +465,7 @@ 51 view - + OPERATING EXPENSES @@ -473,7 +473,7 @@ 511 view - + COST OF GOODS SOLD @@ -481,7 +481,7 @@ 5111 other - + Inside Purchases @@ -489,7 +489,7 @@ 5112 other - + Purchases in harmonized provinces @@ -497,7 +497,7 @@ 5113 other - + Purchases in non-harmonized provinces @@ -505,7 +505,7 @@ 5114 other - + International Purchases @@ -513,7 +513,7 @@ 512 view - + LABOUR EXPENSES @@ -521,7 +521,7 @@ 5121 other - + Salaries, wages and commissions @@ -529,7 +529,7 @@ 5122 other - + Holidays @@ -537,7 +537,7 @@ 5123 other - + Employment Insurance @@ -545,7 +545,7 @@ 5124 other - + Health Services Fund @@ -553,7 +553,7 @@ 5125 other - + Annuities @@ -561,7 +561,7 @@ 5126 other - + Parental Insurance @@ -569,7 +569,7 @@ 5127 other - + Labour Health and Safety @@ -577,7 +577,7 @@ 5128 other - + Labour Standards @@ -585,7 +585,7 @@ 513 view - + SALES EXPENSES @@ -593,7 +593,7 @@ 514 view - + GENERAL EXPENSES @@ -601,7 +601,7 @@ 515 view - + RESEARCH AND DEVELOPMENT EXPENSES @@ -609,7 +609,7 @@ 519 view - + OTHER OPERATING EXPENSES @@ -617,7 +617,7 @@ 55 view - + NON-OPERATING EXPENSES @@ -625,7 +625,7 @@ 551 view - + INTEREST EXPENSES @@ -633,7 +633,7 @@ 559 view - + OTHER NON-OPERATING EXPENSES diff --git a/addons/l10n_ca/account_chart_fr.xml b/addons/l10n_ca/account_chart_fr.xml index fd22ba81b2e..dbf4f9aad7c 100644 --- a/addons/l10n_ca/account_chart_fr.xml +++ b/addons/l10n_ca/account_chart_fr.xml @@ -6,7 +6,7 @@ 0 view - + Account Chart CA FR @@ -16,7 +16,7 @@ 1 view - + ACTIF @@ -24,7 +24,7 @@ 11 view - + ACTIFS COURANTS @@ -32,7 +32,7 @@ 111 view - + ENCAISSE @@ -40,7 +40,7 @@ 1111 liquidity - + Compte chèque @@ -48,7 +48,7 @@ 1112 liquidity - + Petite caisse @@ -56,7 +56,7 @@ 112 view - + TRÉSORERIE OU ÉQUIVALENTS DE TRÉSORERIE @@ -64,7 +64,7 @@ 113 view - + CERTIFICATS DE DÉPÔTS @@ -72,7 +72,7 @@ 114 view - + STOCKS @@ -80,7 +80,7 @@ 115 view - + COMPTES CLIENTS @@ -88,7 +88,7 @@ 1151 receivable - + Comptes clients @@ -97,7 +97,7 @@ 1152 view - + PROVISION POUR CRÉANCES DOUTEUSES @@ -105,7 +105,7 @@ 116 view - + FRAIS PAYÉS D'AVANCE @@ -113,7 +113,7 @@ 117 view - + PLACEMENTS DÉTENUS À DES FINS DE TRANSACTION @@ -121,15 +121,15 @@ 118 view - + IMPÔTS À RECEVOIR 1181 - receivable - + other + TPS à recevoir @@ -137,8 +137,8 @@ 1182 - receivable - + other + TVP/TVQ à recevoir @@ -146,8 +146,8 @@ 1183 - receivable - + other + TVH à recevoir @@ -156,7 +156,7 @@ 15 view - + ACTIFS NON-COURANTS @@ -164,7 +164,7 @@ 151 view - + PLACEMENTS DISPONIBLES À LA VENTE @@ -172,7 +172,7 @@ 152 view - + IMMOBILISATIONS CORPORELLES @@ -180,7 +180,7 @@ 1527 view - + AMORTISSEMENTS CUMULÉS @@ -188,7 +188,7 @@ 153 view - + IMMOBILISATIONS INCORPORELLES @@ -196,7 +196,7 @@ 1531 view - + BREVETS, MARQUES DE COMMERCE ET DROITS D'AUTEURS @@ -206,7 +206,7 @@ 2 view - + PASSIF @@ -214,7 +214,7 @@ 21 view - + PASSIFS COURANTS @@ -222,7 +222,7 @@ 211 view - + FOURNISSEURS ET COMPTES RATTACHÉS @@ -230,7 +230,7 @@ 2111 payable - + Comptes fournisseurs @@ -239,7 +239,7 @@ 212 view - + AUTRES COMPTES CRÉDITEURS @@ -247,15 +247,15 @@ 213 view - + IMPÔTS À PAYER 2131 - payable - + other + TPS à payer @@ -263,8 +263,8 @@ 2132 - payable - + other + TVP/TVQ à payer @@ -272,8 +272,8 @@ 2133 - payable - + other + TVH à payer @@ -282,7 +282,7 @@ 214 view - + DETTES FINANCIÈRES COURANTES @@ -290,7 +290,7 @@ 215 view - + PASSIFS LIÉS AUX ACTIFS DÉTENUS EN VUE DE LEUR CESSION @@ -298,7 +298,7 @@ 25 view - + PASSIFS NON-COURANTS @@ -306,7 +306,7 @@ 251 view - + DETTES FINANCIÈRES NON-COURANTES @@ -314,7 +314,7 @@ 252 view - + PROVISIONS POUR RETRAITES ET AUTRES AVANTAGES POSTÉRIEURS À L'EMPLOI @@ -322,7 +322,7 @@ 253 view - + IMPÔTS DIFFÉRÉS @@ -330,7 +330,7 @@ 254 view - + AUTRES PASSIFS NON-COURANTS @@ -340,7 +340,7 @@ 3 view - + CAPITAUX PROPRES @@ -348,7 +348,7 @@ 31 view - + CAPITAL-ACTIONS @@ -356,7 +356,7 @@ 32 view - + PRIMES @@ -364,7 +364,7 @@ 33 view - + BÉNÉFICES NON RÉPARTIS @@ -372,7 +372,7 @@ 34 view - + DIVIDENDES @@ -380,7 +380,7 @@ 35 view - + ÉCARTS DE CONVERSION @@ -388,7 +388,7 @@ 36 view - + SURPLUS D'APPORT @@ -396,7 +396,7 @@ 39 view - + AUTRES ÉLÉMENTS DU RÉSULTAT GLOBAL @@ -406,7 +406,7 @@ 4 view - + PRODUITS @@ -414,7 +414,7 @@ 41 view - + PRODUITS D'EXPLOITATION @@ -422,7 +422,7 @@ 411 other - + Ventes @@ -430,7 +430,7 @@ 412 other - + Ventes avec des provinces harmonisées @@ -438,7 +438,7 @@ 413 other - + Ventes avec des provinces non-harmonisées @@ -446,7 +446,7 @@ 414 other - + Ventes à l'étranger @@ -454,7 +454,7 @@ 419 view - + AUTRES PRODUITS D'EXPLOITATION @@ -462,7 +462,7 @@ 42 view - + PRODUITS NON LIÉS À L'EXPLOITATION @@ -470,7 +470,7 @@ 425 view - + INTÉRÊTS @@ -478,7 +478,7 @@ 429 view - + AUTRES PRODUITS NON LIÉS À L'EXPLOITATION @@ -488,7 +488,7 @@ 5 view - + CHARGES @@ -496,7 +496,7 @@ 51 view - + CHARGES D'EXPLOITATION @@ -504,7 +504,7 @@ 511 view - + COÛT DES PRODUITS VENDUS @@ -512,7 +512,7 @@ 5111 other - + Achats @@ -520,7 +520,7 @@ 5112 other - + Achats dans des provinces harmonisées @@ -528,7 +528,7 @@ 5113 other - + Achats dans des provinces non-harmonisées @@ -536,7 +536,7 @@ 5114 other - + Achats à l'étranger @@ -544,7 +544,7 @@ 512 view - + SALAIRES ET CHARGES SOCIALES @@ -552,7 +552,7 @@ 51201 other - + Salaires @@ -560,7 +560,7 @@ 51202 other - + Vacances @@ -568,7 +568,7 @@ 51203 other - + Assurance Emploi @@ -576,7 +576,7 @@ 51204 other - + Fonds des services de santé @@ -584,7 +584,7 @@ 51205 other - + Rentes @@ -592,7 +592,7 @@ 51206 other - + Assurance parental @@ -600,7 +600,7 @@ 51207 other - + Santé et sécurité au travail @@ -608,7 +608,7 @@ 51208 other - + Normes du travail @@ -616,7 +616,7 @@ 513 view - + FRAIS SUR VENTE @@ -624,7 +624,7 @@ 514 view - + FRAIS GÉNÉRAUX @@ -632,7 +632,7 @@ 515 view - + FRAIS DE RECHERCHE ET DÉVELOPPEMENT @@ -640,7 +640,7 @@ 519 view - + AUTRES FRAIS D'EXPLOITATION @@ -648,7 +648,7 @@ 52 view - + FRAIS NON LIÉS À L'EXPLOITATION @@ -656,7 +656,7 @@ 521 view - + INTÉRÊTS DÉBITEURS @@ -664,7 +664,7 @@ 529 view - + AUTRES FRAIS NON LIÉS À L'EXPLOITATION diff --git a/addons/l10n_ca/account_tax_code_en.xml b/addons/l10n_ca/account_tax_code_en.xml index 36221e70a9b..d446f431c96 100644 --- a/addons/l10n_ca/account_tax_code_en.xml +++ b/addons/l10n_ca/account_tax_code_en.xml @@ -7,47 +7,47 @@ - Tax Balance to Pay + Tax Balance - Receivable Taxes + Taxes paid - GST to Receive + GST paid - PST to Receive + PST paid - HST to Receive + HST paid - Payable Taxes + Taxes received - GST to Pay + GST received - PST to Pay + PST received - HST to Pay + HST received diff --git a/addons/l10n_ca/account_tax_code_fr.xml b/addons/l10n_ca/account_tax_code_fr.xml index 389e5e5f8d9..2b6acd2b992 100644 --- a/addons/l10n_ca/account_tax_code_fr.xml +++ b/addons/l10n_ca/account_tax_code_fr.xml @@ -12,42 +12,42 @@ - Taxes à recevoir + Taxes payées - TPS à recevoir + TPS payée - TVP/TVQ à recevoir + TVP/TVQ payée - TVH à recevoir + TVH payée - Taxes à payer + Taxes reçues - TPS à payer + TPS reçue - TVP/TVQ à payer + TVP/TVQ reçue - TVH à payer + TVH reçue diff --git a/addons/l10n_ca/account_tax_en.xml b/addons/l10n_ca/account_tax_en.xml index 662ac4b52fc..f185f7f9198 100644 --- a/addons/l10n_ca/account_tax_en.xml +++ b/addons/l10n_ca/account_tax_en.xml @@ -2,263 +2,544 @@ + + - + - GST + PST (MB) - GSTPST_MB + GST + PST for sales (MB) + GSTPST_MB_SALE + sale 1 1 percent - + - GST - 5% (MB) + GST for sales - 5% (MB) GST + sale 0.050000 percent 1 - + - - + + - + - + - PST - 7% + PST for sales - 7% PST - 0.070000 + sale + 0.700000 percent - 1 - + 2 + - - + + - + - + - GST + PST (PE) - GSTPST_PE + GST + PST for sales (PE) + GSTPST_PE_SALE + sale 1 1 percent - + - GST - 5% (PE) + GST for sales - 5% (PE) GST + sale 0.050000 percent 1 - + - - + + - + - + - PST - 10% + PST for sale - 10% PST + sale 0.100000 percent - 1 - + 2 + - - + + - + - + - GST + PST (QC) - GSTPST_QC + GST + TVQ for sales + GSTTVQ_SALE + sale 1 1 percent - + - GST - 5% (QC) + GST for sales - 5% (QC) GST + sale 0.050000 percent 1 - + - - + + - + - + - PST - 9.5% - PST + TVQ for sales - 9.5% + TVQ + sale 0.095000 percent - 1 - + 2 + - - + + - + - + - GST + PST (SK) - GSTPST_SK + GST + PST for sales (SK) + GSTPST_SK_SALE + sale 1 1 percent - + - GST - 5% (SK) + GST for sales - 5% (SK) GST + sale 0.050000 percent 1 - + - - + + - + - + - PST - 5% + PST for sales - 5% (SK) PST + sale 0.050000 percent - 1 - + 2 + - - + + - + - + - HST - 12% - HST12 + TVH for sales - 12% + TVH12_SALE + sale 0.120000 percent - + - - + + - + - HST - 13% - HST13 + TVH for sales - 13% + TVH13_SALE + sale 0.130000 percent - + - - + + - + - HST - 13.5% - HST135 + TVH for sales - 13.5% + TVH135_SALE + sale 0.135000 percent - + - - + + - + - HST - 15% - HST15 + TVH for sales - 15% + TVH15_SALE + sale 0.150000 percent - + - - + + - + - GST - 5% - GST + GST for sales - 5% + GST_SALE + sale 0.050000 percent - + - - + + - + + + + + + - No tax - No tax - 0.00 + GST + PST for purchases (MB) + GSTPST_MB_PURC + purchase + 1 + 1 percent + + + GST for purchases - 5% (MB) + GST + purchase + 0.050000 + percent + 1 + + + + + + + + + + + + + PST for purchases - 7% + PST + purchase + 0.700000 + percent + 2 + + + + + + + + + + + + + + GST + PST for purchases (PE) + GSTPST_PE_PURC + purchase + 1 + 1 + percent + + + + + GST for purchases - 5% (PE) + GST + purchase + 0.050000 + percent + 1 + + + + + + + + + + + + + PST for purchases - 10% + PST + purchase + 0.100000 + percent + 2 + + + + + + + + + + + + + + GST + TVQ for purchases + GSTTVQ_PURC + purchase + 1 + 1 + percent + + + + + GST for purchases - 5% (QC) + GST + purchase + 0.050000 + percent + 1 + + + + + + + + + + + + + TVQ for purchases - 9.5% + TVQ + purchase + 0.095000 + percent + 2 + + + + + + + + + + + + + + GST + PST for purchases (SK) + GSTPST_SK_PURC + purchase + 1 + 1 + percent + + + + + GST for purchases - 5% (SK) + GST + purchase + 0.050000 + percent + 1 + + + + + + + + + + + + + PST for purchases - 5% (SK) + PST + purchase + 0.050000 + percent + 2 + + + + + + + + + + + + + + TVH for purchases - 12% + TVH12_PURC + purchase + 0.120000 + percent + + + + + + + + + + + TVH for purchases - 13% + TVH13_PURC + purchase + 0.130000 + percent + + + + + + + + + + + TVH for purchases - 13.5% + TVH135_PURC + purchase + 0.135000 + percent + + + + + + + + + + + TVH for purchases - 15% + TVH15_PURC + purchase + 0.150000 + percent + + + + + + + + + + + + + GST for purchases - 5% + GST_PURC + purchase + 0.050000 + percent + + + + + + + + diff --git a/addons/l10n_ca/account_tax_fr.xml b/addons/l10n_ca/account_tax_fr.xml index 5df4446c611..169bfe4f20b 100644 --- a/addons/l10n_ca/account_tax_fr.xml +++ b/addons/l10n_ca/account_tax_fr.xml @@ -2,263 +2,544 @@ + + - + - TPS + TVP (MB) - TPSTVP_MB + TPS + TVP sur les ventes (MB) + TPSTVP_MB_SALE + sale 1 1 percent - + - TPS - 5% (MB) + TPS sur les ventes - 5% (MB) TPS + sale 0.050000 percent 1 - + - - + + - + - + - TVP - 7% + TVP sur les ventes - 7% TVP + sale 0.700000 percent - 1 - + 2 + - - + + - + - + - TPS + TVP (PE) - TPSTVP_PE + TPS + TVP sur les ventes (PE) + TPSTVP_PE_SALE + sale 1 1 percent - + - TPS - 5% (PE) + TPS sur les ventes - 5% (PE) TPS + sale 0.050000 percent 1 - + - - + + - + - + - TVP - 10% + TVP for sale - 10% TVP + sale 0.100000 percent - 1 - + 2 + - - + + - + - + - TPS + TVQ - TPSTVQ + TPS + TVQ sur les ventes + TPSTVQ_SALE + sale 1 1 percent - + - TPS - 5% (QC) + TPS sur les ventes - 5% (QC) TPS + sale 0.050000 percent 1 - + - - + + - + - + - TVQ - 9.5% + TVQ sur les ventes - 9.5% TVQ + sale 0.095000 percent - 1 - + 2 + - - + + - + - + - TPS + TVP (SK) - TPSTVP_SK + TPS + TVP sur les ventes (SK) + TPSTVP_SK_SALE + sale 1 1 percent - + - TPS - 5% (SK) + TPS sur les ventes - 5% (SK) TPS + sale 0.050000 percent 1 - + - - + + - + - + - TVP - 5% (SK) + TVP sur les ventes - 5% (SK) TVP + sale 0.050000 percent - 1 - + 2 + - - + + - + - + - TVH - 12% - TVH12 + TVH sur les ventes - 12% + TVH12_SALE + sale 0.120000 percent - + - - + + - + - TVH - 13% - TVH13 + TVH sur les ventes - 13% + TVH13_SALE + sale 0.130000 percent - + - - + + - + - TVH - 13.5% - TVH135 + TVH sur les ventes - 13.5% + TVH135_SALE + sale 0.135000 percent - + - - + + - + - TVH - 15% - TVH15 + TVH sur les ventes - 15% + TVH15_SALE + sale 0.150000 percent - + - - + + - + - TPS - 5% - TPS + TPS sur les ventes - 5% + TPS_SALE + sale 0.050000 percent - + - - + + - + + + + + + - Pas de taxes - Pas de taxes - 0.00 + TPS + TVP sur les achats (MB) + TPSTVP_MB_PURC + purchase + 1 + 1 percent + + + TPS sur les achats - 5% (MB) + TPS + purchase + 0.050000 + percent + 1 + + + + + + + + + + + + + TVP sur les achats - 7% + TVP + purchase + 0.700000 + percent + 2 + + + + + + + + + + + + + + TPS + TVP sur les achats (PE) + TPSTVP_PE_PURC + purchase + 1 + 1 + percent + + + + + TPS sur les achats - 5% (PE) + TPS + purchase + 0.050000 + percent + 1 + + + + + + + + + + + + + TVP sur les achats - 10% + TVP + purchase + 0.100000 + percent + 2 + + + + + + + + + + + + + + TPS + TVQ sur les achats + TPSTVQ_PURC + purchase + 1 + 1 + percent + + + + + TPS sur les achats - 5% (QC) + TPS + purchase + 0.050000 + percent + 1 + + + + + + + + + + + + + TVQ sur les achats - 9.5% + TVQ + purchase + 0.095000 + percent + 2 + + + + + + + + + + + + + + TPS + TVP sur les achats (SK) + TPSTVP_SK_PURC + purchase + 1 + 1 + percent + + + + + TPS sur les achats - 5% (SK) + TPS + purchase + 0.050000 + percent + 1 + + + + + + + + + + + + + TVP sur les achats - 5% (SK) + TVP + purchase + 0.050000 + percent + 2 + + + + + + + + + + + + + + TVH sur les achats - 12% + TVH12_PURC + purchase + 0.120000 + percent + + + + + + + + + + + TVH sur les achats - 13% + TVH13_PURC + purchase + 0.130000 + percent + + + + + + + + + + + TVH sur les achats - 13.5% + TVH135_PURC + purchase + 0.135000 + percent + + + + + + + + + + + TVH sur les achats - 15% + TVH15_PURC + purchase + 0.150000 + percent + + + + + + + + + + + + + TPS sur les achats - 5% + TPS_PURC + purchase + 0.050000 + percent + + + + + + + + diff --git a/addons/l10n_ca/account_types_en.xml b/addons/l10n_ca/account_types_en.xml deleted file mode 100644 index cc155a792ae..00000000000 --- a/addons/l10n_ca/account_types_en.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - Receivable - receivable - unreconciled - - - - Payable - payable - unreconciled - - - - View - view - none - - - - Income - income - none - income - - - - Expense - expense - none - expense - - - - Tax - tax - unreconciled - - - - Cash - cash - balance - - - - Asset - asset - balance - asset - - - - Equity - equity - liability - balance - - - - diff --git a/addons/l10n_ca/account_types_fr.xml b/addons/l10n_ca/account_types_fr.xml deleted file mode 100644 index b7d82956195..00000000000 --- a/addons/l10n_ca/account_types_fr.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - Vue - view - none - - - - Capital - capital - asset - balance - - - - Immobilisation - immo - asset - balance - - - - Stock et Encours - stock - asset - balance - - - - Tiers - tiers - balance - - - - Tiers - Recevable - tiers -rec - asset - unreconciled - - - - Tiers - Payable - tiers - pay - liability - unreconciled - - - - Tax - tax - unreconciled - - - - Financier - financier - balance - - - - Charge - charge - expense - none - - - - Produit - produit - income - none - - - - diff --git a/addons/l10n_ca/fiscal_templates_en.xml b/addons/l10n_ca/fiscal_templates_en.xml index ba5c919a383..68e881c3541 100644 --- a/addons/l10n_ca/fiscal_templates_en.xml +++ b/addons/l10n_ca/fiscal_templates_en.xml @@ -39,354 +39,618 @@ + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + - + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + - - - - - + + + + + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + - - - - + + + + + + - - - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + - - - - + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/addons/l10n_ca/fiscal_templates_fr.xml b/addons/l10n_ca/fiscal_templates_fr.xml index 07608cdb261..722517366a8 100644 --- a/addons/l10n_ca/fiscal_templates_fr.xml +++ b/addons/l10n_ca/fiscal_templates_fr.xml @@ -39,278 +39,542 @@ + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/addons/l10n_ch/__openerp__.py b/addons/l10n_ch/__openerp__.py index ab56327573c..d3b7e796aee 100644 --- a/addons/l10n_ch/__openerp__.py +++ b/addons/l10n_ch/__openerp__.py @@ -23,8 +23,8 @@ "description" : """ Swiss localisation : - DTA generation for a lot of payment types - - BVR management (number generation, report, etc..) - - Import account move from the bank file (like v11 etc..) + - BVR management (number generation, report.) + - Import account move from the bank file (like v11) - Simplify the way you handle the bank statement for reconciliation You can also add ZIP and bank completion with: @@ -36,10 +36,11 @@ You can also add ZIP and bank completion with: ------------------------------------------------------------------------ -Module incluant la localisation Suisse de TinyERP revu et corrigé par Camptocamp. Cette nouvelle version -comprend la gestion et l'émissionde BVR, le paiement électronique via DTA (pour les banques, le système postal est en développement) -et l'import du relevé de compte depuis la banque de manière automatisée. -De plus, nous avons intégré la définition de toutes les banques Suisses(adresse, swift et clearing). +Module incluant la localisation Suisse de TinyERP revu et corrigé par Camptocamp. +Cette nouvelle version comprend la gestion et l'émissionde BVR, le paiement +électronique via DTA (pour les banques, le système postal est en développement) +et l'import du relevé de compte depuis la banque de manière automatisée. De plus, +nous avons intégré la définition de toutes les banques Suisses(adresse, swift et clearing). Par ailleurs, conjointement à ce module, nous proposons la complétion NPA: @@ -52,12 +53,11 @@ Vous pouvez ajouter la completion des banques et des NPA avec with: -------------------------------------------------------------------------- TODO : -- Implement bvr import partial reconciliation -- Replace wizard by osv_memory when possible -- Add mising HELP -- Finish code comment -- Improve demo data - + - Implement bvr import partial reconciliation + - Replace wizard by osv_memory when possible + - Add mising HELP + - Finish code comment + - Improve demo data """, "version": "6.1", diff --git a/addons/l10n_ch/report/report_webkit_html.py b/addons/l10n_ch/report/report_webkit_html.py index d930258f4a7..dffeedd0caa 100644 --- a/addons/l10n_ch/report/report_webkit_html.py +++ b/addons/l10n_ch/report/report_webkit_html.py @@ -20,22 +20,31 @@ ############################################################################## import time -from report import report_sxw -from report_webkit import webkit_report -from report_webkit import report_helper -from osv import osv -from tools import mod10r import sys import os import re + +from mako.template import Template +from mako.lookup import TemplateLookup +from mako import exceptions + + +from report import report_sxw +from report_webkit import webkit_report +from report_webkit import report_helper + +from osv import osv +from osv.osv import except_osv + +from tools import mod10r +from tools.translate import _ +from tools.config import config + import wizard import addons import pooler -from tools.config import config -from mako.template import Template -from mako import exceptions -from tools.translate import _ -from osv.osv import except_osv + + class l10n_ch_report_webkit_html(report_sxw.rml_parse): @@ -143,53 +152,26 @@ class l10n_ch_report_webkit_html(report_sxw.rml_parse): 'digits!\nPlease check your company ' 'information for the invoice:\n%s') %(invoice_name))) return '' + +def mako_template(text): + """Build a Mako template. + + This template uses UTF-8 encoding + """ + tmp_lookup = TemplateLookup() #we need it in order to allow inclusion and inheritance + return Template(text, input_encoding='utf-8', output_encoding='utf-8', lookup=tmp_lookup) class BVRWebKitParser(webkit_report.WebKitParser): - def setLang(self, lang): - if not lang: - lang = 'en_US' - self.localcontext['lang'] = lang - - def formatLang(self, value, digits=None, date=False, date_time=False, grouping=True, monetary=False): - """format using the know cursor, language from localcontext""" - if digits is None: - digits = self.parser_instance.get_digits(value) - if isinstance(value, (str, unicode)) and not value: - return '' - pool_lang = self.pool.get('res.lang') - lang = self.localcontext['lang'] - - lang_ids = pool_lang.search(self.parser_instance.cr, self.parser_instance.uid, [('code','=',lang)])[0] - lang_obj = pool_lang.browse(self.parser_instance.cr, self.parser_instance.uid, lang_ids) - - if date or date_time: - if not str(value): - return '' - - date_format = lang_obj.date_format - parse_format = '%Y-%m-%d' - if date_time: - value=value.split('.')[0] - date_format = date_format + " " + lang_obj.time_format - parse_format = '%Y-%m-%d %H:%M:%S' - if not isinstance(value, time.struct_time): - return time.strftime(date_format, time.strptime(value, parse_format)) - - else: - date = datetime(*value.timetuple()[:6]) - return date.strftime(date_format) - - return lang_obj.format('%.' + str(digits) + 'f', value, grouping=grouping, monetary=monetary) - def create_single_pdf(self, cursor, uid, ids, data, report_xml, context=None): """generate the PDF""" - self.parser_instance = self.parser( - cursor, + context = context or {} + if report_xml.report_type != 'webkit': + return super(WebKitParser,self).create_single_pdf(cursor, uid, ids, data, report_xml, context=context) + self.parser_instance = self.parser(cursor, uid, self.name2, - context=context - ) + context=context) self.pool = pooler.get_pool(cursor.dbname) objs = self.getObjects(cursor, uid, ids, context) self.parser_instance.set_context(objs, data, ids, report_xml.report_type) @@ -201,7 +183,7 @@ class BVRWebKitParser(webkit_report.WebKitParser): if not template and report_xml.report_webkit_data : template = report_xml.report_webkit_data if not template : - raise except_osv(_('Webkit Report template not found !'), _('')) + raise except_osv(_('Error'),_('Webkit Report template not found !')) header = report_xml.webkit_header.html footer = report_xml.webkit_header.footer_html if not header and report_xml.header: @@ -210,43 +192,19 @@ class BVRWebKitParser(webkit_report.WebKitParser): _('Please set a header in company settings') ) if not report_xml.header : - #I know it could be cleaner ... - header = u""" - - - - - - - -""" - self.parser_instance.localcontext.update({'setLang':self.setLang}) - self.parser_instance.localcontext.update({'formatLang':self.formatLang}) + header = '' + default_head = addons.get_module_resource('report_webkit', 'default_header.html') + with open(default_head,'r') as f: + header = f.read() css = report_xml.webkit_header.css if not css : css = '' user = self.pool.get('res.users').browse(cursor, uid, uid) company = user.company_id - parse_template = template - #default_filters=['unicode', 'entity'] can be used to set global filter - body_mako_tpl = Template(parse_template ,input_encoding='utf-8', output_encoding='utf-8') + body_mako_tpl = mako_template(template) #BVR specific bvr_path = addons.get_module_resource(os.path.join('l10n_ch','report','bvr.mako')) - body_bvr_tpl = Template(file(bvr_path).read(), input_encoding='utf-8', output_encoding='utf-8') - + body_bvr_tpl = mako_template(file(bvr_path).read()) helper = report_helper.WebKitHelper(cursor, uid, report_xml.id, context) ##BVR Specific htmls = [] @@ -254,58 +212,48 @@ class BVRWebKitParser(webkit_report.WebKitParser): self.parser_instance.localcontext['objects'] = [obj] if not company.bvr_only: try: - html = body_mako_tpl.render( - helper=helper, + html = body_mako_tpl.render(helper=helper, css=css, _=self.translate_call, - **self.parser_instance.localcontext - ) + **self.parser_instance.localcontext) except Exception, e: raise Exception(exceptions.text_error_template().render()) htmls.append(html) if not company.invoice_only: try: - bvr = body_bvr_tpl.render( - helper=helper, - css=css, - _=self.translate_call, - **self.parser_instance.localcontext - ) + bvr = body_bvr_tpl.render(helper=helper, + css=css, + _=self.translate_call, + **self.parser_instance.localcontext) except Exception, e: raise Exception(exceptions.text_error_template().render()) htmls.append(bvr) head_mako_tpl = Template(header, input_encoding='utf-8', output_encoding='utf-8') try: - head = head_mako_tpl.render( - helper=helper, + head = head_mako_tpl.render(helper=helper, css=css, _debug=False, _=self.translate_call, - **self.parser_instance.localcontext - ) + **self.parser_instance.localcontext) except Exception, e: raise Exception(exceptions.text_error_template().render()) foot = False if footer and company.invoice_only : foot_mako_tpl = Template(footer, input_encoding='utf-8', output_encoding='utf-8') try: - foot = foot_mako_tpl.render( - helper=helper, + foot = foot_mako_tpl.render(helper=helper, css=css, _=self.translate_call, - **self.parser_instance.localcontext - ) + **self.parser_instance.localcontext) except Exception, e: raise Exception(exceptions.text_error_template().render()) if report_xml.webkit_debug : try: - deb = head_mako_tpl.render( - helper=helper, + deb = head_mako_tpl.render(helper=helper, css=css, _debug=html, _=self.translate_call, - **self.parser_instance.localcontext - ) + **self.parser_instance.localcontext) except Exception, e: raise Exception(exceptions.text_error_template().render()) return (deb, 'html') diff --git a/addons/l10n_cl/__init__.py b/addons/l10n_cl/__init__.py new file mode 100644 index 00000000000..92da5dbf966 --- /dev/null +++ b/addons/l10n_cl/__init__.py @@ -0,0 +1,32 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (c) 2011 Cubic ERP - Teradata SAC. (http://cubicerp.com). +# +# WARNING: This program as such is intended to be used by professional +# programmers who take the whole responsability of assessing all potential +# consequences resulting from its eventual inadequacies and bugs +# End users who are looking for a ready-to-use solution with commercial +# garantees and support are strongly adviced to contract a Free Software +# Service Company +# +# 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 2 +# 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, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +############################################################################## + + + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/pad_project/models/__init__.py b/addons/l10n_cl/__openerp__.py similarity index 54% rename from addons/pad_project/models/__init__.py rename to addons/l10n_cl/__openerp__.py index 098de31a5a4..8c1e1e45b50 100644 --- a/addons/pad_project/models/__init__.py +++ b/addons/l10n_cl/__openerp__.py @@ -1,8 +1,8 @@ -# -*- coding: utf-8 -*- +# -*- encoding: utf-8 -*- ############################################################################## # # OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). +# Copyright (C) 2011 Cubic ERP - Teradata SAC (). # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -17,8 +17,35 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # -############################################################################## +############################################################################## +{ + "name": "Chile Localization Chart Account", + "version": "1.0", + "description": """ +Chilean accounting chart and tax localization. -import project_task +Plan contable chileno e impuestos de acuerdo a disposiciones vigentes + """, + "author": "Cubic ERP", + "website": "http://cubicERP.com", + "category": "Localization/Account Charts", + "depends": [ + "account_chart", + ], + "data":[ + "account_tax_code.xml", + "l10n_cl_chart.xml", + "account_tax.xml", + "l10n_cl_wizard.xml", + ], + "demo_xml": [ + ], + "update_xml": [ + ], + "active": False, + "installable": True, + "certificate" : "", + 'images': ['images/config_chart_l10n_cl.jpeg','images/l10n_cl_chart.jpeg'], +} # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/l10n_cl/account_tax.xml b/addons/l10n_cl/account_tax.xml new file mode 100644 index 00000000000..1db0d2637f4 --- /dev/null +++ b/addons/l10n_cl/account_tax.xml @@ -0,0 +1,34 @@ + + + + + + + IVA 19% Venta + 0.190000 + percent + sale + + + + + + + + + + + IVA 19% Compra + 0.190000 + percent + purchase + + + + + + + + + + diff --git a/addons/l10n_cl/account_tax_code.xml b/addons/l10n_cl/account_tax_code.xml new file mode 100644 index 00000000000..95c91b60d78 --- /dev/null +++ b/addons/l10n_cl/account_tax_code.xml @@ -0,0 +1,94 @@ + + + + + + Chile Impuestos + + + Base Imponible + + + + Base Imponible - Ventas + + + + Ventas Gravadas con IVA + + + + Ventas NO Gravadas (Exoneradas) + + + + Ventas Gravadas Fuera de Ámbito + + + + Base Imponible - Compras + + + + Compras Gravadas con IVA + + + + Compras NO Gravadas (Exoneradas) + + + + Compras Gravadas Fuera de Ámbito + + + + + Impuesto General a las Ventas (IVA) Total a Pagar + + + + Impuesto Pagado + + + + Impuesto Pagado IVA + + -1 + + + Impuesto Pagado de Exonerados al IVA + + -1 + + + Impuesto Pagado Fuera de Ámbito + + -1 + + + Impuesto Cobrado + + + + Impuesto Cobrado IVA + + + + Impuesto Cobrado de Exonerados al IVA + + + + Impuesto Cobrado Fuera de Ámbito + + + + + Impuestos Directos a Pagar + + + + Impuesto a la Renta Primera Categoría a Pagar + + + + diff --git a/addons/l10n_cl/i18n/es.po b/addons/l10n_cl/i18n/es.po new file mode 100644 index 00000000000..f8b17197008 --- /dev/null +++ b/addons/l10n_cl/i18n/es.po @@ -0,0 +1,72 @@ +# Spanish translation for openobject-addons +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:15+0000\n" +"PO-Revision-Date: 2011-01-10 13:46+0000\n" +"Last-Translator: Yury Tello \n" +"Language-Team: Spanish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-01-15 05:56+0000\n" +"X-Generator: Launchpad (build 12177)\n" + +#. module: l10n_cl +#: model:ir.module.module,description:l10n_cl.module_meta_information +msgid "" +"\n" +" Chilean Accounting : chart of Account\n" +" " +msgstr "" +"\n" +" Contabilidad Peruana : Plan de cuentas\n" +" " + +#. module: l10n_cl +#: model:ir.module.module,shortdesc:l10n_cl.module_meta_information +msgid "Chilean Chart of Account" +msgstr "Plan de cuentas de Chile" + +#. module: l10n_cl +#: model:ir.actions.todo,note:l10n_cl.config_call_account_template_in_minimal +msgid "" +"Generate Chart of Accounts from a Chart Template. You will be asked to pass " +"the name of the company, the chart template to follow, the no. of digits to " +"generate the code for your accounts and Bank account, currency to create " +"Journals. Thus,the pure copy of chart Template is generated.\n" +"\tThis is the same wizard that runs from Financial " +"Management/Configuration/Financial Accounting/Financial Accounts/Generate " +"Chart of Accounts from a Chart Template." +msgstr "" +"Generar el plan contable a partir de una plantilla de plan contable. Se le " +"pedirá el nombre de la compañia, la plantilla de plan contable a utilizar, " +"el número de dígitos para generar el código de las cuentas y de la cuenta " +"bancaria, la moneda para crear los diarios. Así pues, se genere una copia " +"exacta de la plantilla de plan contable.\n" +"\tEste es el mismo asistente que se ejecuta desde Contabilidad y finanzas / " +"Configuración / Contabilidad financiera / Cuentas financieras / Generar el " +"plan contable a partir de una plantilla de plan contable." + +#~ msgid "Liability" +#~ msgstr "Pasivo" + +#~ msgid "Asset" +#~ msgstr "Activo" + +#~ msgid "Closed" +#~ msgstr "Cerrado" + +#~ msgid "Income" +#~ msgstr "Ingreso" + +#~ msgid "Expense" +#~ msgstr "Gasto" + +#~ msgid "View" +#~ msgstr "Vista" diff --git a/addons/l10n_cl/i18n/es_CL.po b/addons/l10n_cl/i18n/es_CL.po new file mode 100644 index 00000000000..cd0a9f9c43e --- /dev/null +++ b/addons/l10n_cl/i18n/es_CL.po @@ -0,0 +1,53 @@ +# Spanish (Paraguay) translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:15+0000\n" +"PO-Revision-Date: 2011-03-21 16:23+0000\n" +"Last-Translator: FULL NAME \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-03-22 04:36+0000\n" +"X-Generator: Launchpad (build 12559)\n" + +#. module: l10n_cl +#: model:ir.module.module,description:l10n_cl.module_meta_information +msgid "" +"\n" +" Chilean Accounting : chart of Account\n" +" " +msgstr "" +"\n" +" Contabilidad Chile : Plan de cuentas\n" +" " + +#. module: l10n_cl +#: model:ir.module.module,shortdesc:l10n_cl.module_meta_information +msgid "Chilean Chart of Account" +msgstr "Plan de cuentas de la Chile" + +#. module: l10n_cl +#: model:ir.actions.todo,note:l10n_cl.config_call_account_template_in_minimal +msgid "" +"Generate Chart of Accounts from a Chart Template. You will be asked to pass " +"the name of the company, the chart template to follow, the no. of digits to " +"generate the code for your accounts and Bank account, currency to create " +"Journals. Thus,the pure copy of chart Template is generated.\n" +"\tThis is the same wizard that runs from Financial " +"Management/Configuration/Financial Accounting/Financial Accounts/Generate " +"Chart of Accounts from a Chart Template." +msgstr "" +"Generar el plan contable a partir de una plantilla de plan contable. Se le " +"pedirá el nombre de la compañía, la plantilla de plan contable a utilizar, " +"el número de dígitos para generar el código de las cuentas y de la cuenta " +"bancaria, la moneda para crear los diarios. Así pues, se genere una copia " +"exacta de la plantilla de plan contable.\n" +"\tEste es el mismo asistente que se ejecuta desde Contabilidad y finanzas / " +"Configuración / Contabilidad financiera / Cuentas financieras / Generar el " +"plan contable a partir de una plantilla de plan contable." diff --git a/addons/l10n_cl/i18n/l10n_cl.pot b/addons/l10n_cl/i18n/l10n_cl.pot new file mode 100644 index 00000000000..9b3704b75e1 --- /dev/null +++ b/addons/l10n_cl/i18n/l10n_cl.pot @@ -0,0 +1,35 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * l10n_cl +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 6.1.0-rc1\n" +"Report-Msgid-Bugs-To: soporte@cubicerp.com\n" +"POT-Creation-Date: 2011-01-11 11:15:31+0000\n" +"PO-Revision-Date: 2011-01-11 11:15:31+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: l10n_cl +#: model:ir.module.module,description:l10n_cl.module_meta_information +msgid "\n" +" Chilean Accounting : chart of Account\n" +" " +msgstr "" + +#. module: l10n_cl +#: model:ir.module.module,shortdesc:l10n_cl.module_meta_information +msgid "Chilean Chart of Account" +msgstr "" + +#. module: l10n_cl +#: model:ir.actions.todo,note:l10n_cl.config_call_account_template_in_minimal +msgid "Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.\n" +" This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template." +msgstr "" + diff --git a/addons/l10n_cl/l10n_cl_chart.xml b/addons/l10n_cl/l10n_cl_chart.xml new file mode 100644 index 00000000000..8bc4272c2eb --- /dev/null +++ b/addons/l10n_cl/l10n_cl_chart.xml @@ -0,0 +1,256 @@ + + + + + + + noneviewVistanone + + balanceBG_ACC_10Efectivo y Equivalentes al Efectivoasset + detailBG_ACC_20Otros Activos Financieros Corrientesasset + unreconciledBG_ACC_30Deudores Comercialesasset + unreconciledBG_ACC_50Otras Cuentas por Cobrarasset + balanceBG_ACC_60Inventariosasset + + detailBG_ACN_10Derechos por Cobrar No Corrienteasset + detailBG_ACN_40Otros Activos No Financierosasset + balanceBG_ACN_50Propiedades, Planta y Equipoasset + + unreconciledBG_PAC_10Otros Pasivos Financierosliability + unreconciledBG_PAC_20Cuentas por Pagar Comercialesliability + unreconciledBG_PAC_35Otras Cuentas por Pagarliability + unreconciledBG_PAC_40Otras Provisiones Corrientesliability + unreconciledBG_PAC_45Pasivos por Impuestos Corrientesliability + + unreconciledBG_PAN_10Otros Pasivos Financieros No Corrientesliability + unreconciledBG_PAN_20Otros Cuentas por Pagar No Corrientesliability + unreconciledBG_PAN_40Otras Provisiones No Corrientesliability + + balanceBG_PTN_10Patrimonio Netoliability + + noneEGP_FU_010Ingresos por Actividades Ordinariasincome + noneEGP_FU_030Costo de Ventasexpense + noneEGP_FU_040Gastos de Administraciónexpense + noneEGP_FU_050Costos por Distribuciónexpense + unreconciledEGP_FU_060Ingresos Financierosincome + noneEGP_FU_070Costos Financierosexpense + noneEGP_FU_080Otros Ingresosincome + noneEGP_FU_090Otros Gastosexpense + noneEGP_FU_120Gasto Impuesto a las Rentaexpense + noneEGP_FU_160Ganancia (Pérdida)income + + noneEGP_NA_010Compras de Activo Fijonone + + noneORDCuentas de Ordennone + + noneNCLASIFICADOCuentas No Clasificadasnone + + + + + Chile + pcge + + view + + + inventario del Balance General + .1.BG + + + view + + + ACTIVOS1view + Activo Circulante11view + Activo Circulante - Caja111view + Activo Circulante - Caja / efectivo CLP111.001liquidity + Activo Circulante - Moneda Extranjera112view + Activo Circulante - Caja / efectivo USD112.001liquidity + Activo Circulante - Fondos fijos113view + Activo Circulante - Fondos fijos / caja chica 01 CLP113.001liquidity + Activo Circulante - Bancos114view + Activo Circulante.../ BCO. CTA CTE CLP114.001liquidity + Activo Circulante - Valores a Depositar 115other + Activo Circulante - Recaudaciones a Depositar 116other + Documentos por Cobrar12view + Documentos por Cobrar / Deudores por Ventas121receivable1 + Documentos por Cobrar / Deudores Morosos122receivable1 + Documentos por Cobrar / Deudores en Gestión Judicial123receivable + Documentos por Cobrar / Deudores Varios124receivable + Documentos por Cobrar / (-) Previsión para Incobrables125receivable1 + Cuentas por Cobrar13view + Cuentas por Cobrar / Préstamos otorgados131receivable + Cuentas por Cobrar / Anticipos a Proveedores132receivable + Cuentas por Cobrar / Anticipo de Impuestos133receivable + Cuentas por Cobrar / Anticipo al Personal134receivable + Cuentas por Cobrar / Alquileres Pagados por Adelantado135receivable + Cuentas por Cobrar / Intereses Pagados por Adelantado136receivable + Cuentas por Cobrar / Accionistas137receivable + Cuentas por Cobrar / (-) Previsión para Descuentos138receivable + Cuentas por Cobrar / (-) Intereses (+) a Devengar139receivable + Inversiones Financieras14view + Inversiones / Acciones Transitorias141other + Inversiones / Acciones Permanentes142other + Inversiones / Títulos Públicos143other + Inversiones / (-) Previsión para Devalorización de Acciones144other + Existencias15view + Existencias - Mercaderías151view + Existencias - Mercaderías / Categoria de productos 01151.01other + Existencias - Mercaderías en Tránsito152other + Materias primas153other + Productos en Curso de Elaboración154other + Productos Elaborados155other + Materiales Varios 156other + (-) Previsión para Desvalorización de Existencias157other + Activo Fijo16view + Activo Fijo / Inmuebles161other + Activo Fijo / Maquinaria162other + Activo Fijo / Equipos163other + Activo Fijo / Material Rodante Motorizado164other + Activo Fijo / (-) Depreciación Acumulada165other + Activo Intangible17view + Activo Intangible / Derecho de Llaves171other + Activo Intangible / Concesiones y Franquicias172other + Activo Intangible / Marcas y Patentes de Invención173other + Activo Intangible / (-) Amortización Acumulada174other + PASIVOS2view + Cuentas por Pagar21view + Cuentas por Pagar / Proveedores211payable1 + Cuentas por Pagar / Anticipos de Clientes212payable1 + Cuentas por Pagar / (-) Intereses a Devengar por Compras al Crédito213payable1 + Pasivo Circulante22view + Pasivo Circulante / Adelantos en Cuenta Corriente221payable + Pasivo Circulante / Prestamos222payable + Pasivo Circulante / Obligaciones a Pagar223payable + Pasivo Circulante / Intereses a Pagar224payable + Pasivo Circulante / Debentures Emitidos225payable + Impuestos por Pagar23view + Impuestos por Pagar / IVA a Pagar231other + Impuestos por Pagar / Impuesto a la Renta a Pagar232other + Remuneraciones por Pagar24view + Remuneraciones por Pagar / Sueldos a Pagar241payable + Remuneraciones por Pagar / Cargas Sociales a Pagar242payable + Remuneraciones por Pagar / Provisión para Sueldo Anual Complementario243payable + Remuneraciones por Pagar / Retenciones a Depositar244payable + Otras Cuentas por Pagar25view + Otras Cuentas por Pagar / Acreedores Varios251payable + Otras Cuentas por Pagar / Dividendos a Pagar252payable + Otras Cuentas por Pagar / Cobros por Adelantado253payable + Otras Cuentas por Pagar / Honorarios Directores y Síndicos a Pagar254payable + Provisiones26view + Provisiones / Previsión Indemnización por Despidos261payable + Provisiones / Previsión para juicios Pendientes262payable + Provisiones / Previsión para Garantías por Service263payable + PATRIMONIO3view + Capital31view + Capital / Capital Propio311other + Capital / Acciones en Circulación312other + Capital / Dividendos a Distribuir en Acciones313other + Capital / (-) Descuento de Emisión de Acciones314other + Aportes No Capitalizados32view + Aportes No Capitalizados / Primas de Emsión321other + Aportes No Capitalizados / Aportes Irrevocables Futura Suscripción de Acciones322other + Ajustes al Patrimonio33view + Ajustes al Patrimonio / Revaluo Técnico de Activo Fijo331other + Futuras Eventualidades34view + Reserva Legal341other + Reserva Estatutaria342other + Reserva Facultativa343other + Reserva para Renovación de Activo Fijo344other + Resultados No Asignados35view + Resultados Acumulados351other + Resultados Acumulados del Ejercicio Anterior352other + Utilidades y Pérdidas del Ejercicio353other + Resultado del Ejercicio354other + + + Cuentas de Resultado + .2.GP + + + view + + + RESULTADO GANANCIA4view + Ingresos de Explotación41view + Ventas411view + Ventas - Categoria de productos 01411.01other + Intereses gananados, obtenidos, percibidos412other + Alquileres gananados, obtenidos, percibidos413other + Comisiones gananados, obtenidos, percibidos414other + Descuentos gananados, obtenidos, percibidos415other + Interese sobre Inversiones416other + Honorarios gananados, obtenidos, percibidos417other + Ganancia Venta de Acciones418other + Ingresos Fuera de Explotación42view + Recupero de Rezagos421other + Recupero de Deudores Incobrables422other + Ganancia Venta de Activo Fijo423other + Donaciones obtenidas, ganandas, percibidas424other + Ganancia Venta Inversiones Permanentes425other + RESULTADO PÉRDIDA5view + Egresos de Explotación51view + Costo de Mercaderías Vendidas511view + Costo de Mercaderías Vendidas - Categoria de productos 01511.01other + Gastos en Depreciación de Activo Fijo512other + Gastos en Amortización513other + Gastos en Sueldos y Jornales514other + Gastos en Cargas Sociales515other + Gastos en Impuestos516other + Gastos Bancarios517other + Gastos en Servicios Públicos518other + Gastos de Publicidad y Propaganda519other + Egresos Fuera de Explotación52view + Gastos en Siniestros521other + Donaciones Cedidas, Otorgadas522other + Pérdida Venta Activo Fijo523other + + + Cuentas de Movimiento + .3.CC + + + view + + + Compras61view + Compras - Categoria de productos 0161.01other + Costos de Producción62other + Gastos de Administración63other + Gastos de Comercialización64other + + + Cuentas de Orden + .4.CO + + + view + + + CUENTAS DE ORDEN DEUDORAS71view + Mercaderias Recibidas en Consignación711other + Depósito de Valores Recibos en Garantía712other + Garantias Otorgadas713other + Documentos Descontados714other + Documentos Endosados715other + CUENTAS DE ORDEN ACREEDORAS72view + Comitente por Mercaderias Recibidas en Consignación721other + Acreedor por Garantías Otorgadas722other + Acreedor por Documentos Descontados723other + + + Chile - Plan de Cuentas + + + + + + + + + + + + + diff --git a/addons/l10n_cl/l10n_cl_wizard.xml b/addons/l10n_cl/l10n_cl_wizard.xml new file mode 100644 index 00000000000..191230c5010 --- /dev/null +++ b/addons/l10n_cl/l10n_cl_wizard.xml @@ -0,0 +1,15 @@ + + + + + + Generate Chart of Accounts from a Chart Template + Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated. + This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template. + + + automatic + + + + diff --git a/addons/l10n_cn/__openerp__.py b/addons/l10n_cn/__openerp__.py index 6e66c77e45b..e173c5ebba2 100644 --- a/addons/l10n_cn/__openerp__.py +++ b/addons/l10n_cn/__openerp__.py @@ -26,9 +26,9 @@ "website":"http://openerp-china.org", "url":"http://code.google.com/p/openerp-china/source/browse/#svn/trunk/l10n_cn", "description": """ - 添加中文省份数据 - 科目类型\会计科目表模板\增值税\辅助核算类别\管理会计凭证簿\财务会计凭证簿 - ============================================================ +添加中文省份数据 +科目类型\会计科目表模板\增值税\辅助核算类别\管理会计凭证簿\财务会计凭证簿 +============================================================ """, "depends" : ["base","account"], 'init_xml': [ diff --git a/addons/l10n_cr/__openerp__.py b/addons/l10n_cr/__openerp__.py index e224f22358a..562af835398 100644 --- a/addons/l10n_cr/__openerp__.py +++ b/addons/l10n_cr/__openerp__.py @@ -44,14 +44,14 @@ Chart of accounts for Costa Rica. ================================= Includes: -* account.type -* account.account.template -* account.tax.template -* account.tax.code.template -* account.chart.template + * account.type + * account.account.template + * account.tax.template + * account.tax.code.template + * account.chart.template -Everything is in English with Spanish translation. Further translations are welcome, please go to -http://translations.launchpad.net/openerp-costa-rica +Everything is in English with Spanish translation. Further translations are welcome, +please go to http://translations.launchpad.net/openerp-costa-rica. """, 'depends': ['account', 'account_chart', 'base'], 'init_xml': [], diff --git a/addons/l10n_es/__openerp__.py b/addons/l10n_es/__openerp__.py index 95b8ab7b57c..b2897e07748 100644 --- a/addons/l10n_es/__openerp__.py +++ b/addons/l10n_es/__openerp__.py @@ -31,14 +31,14 @@ Spanish Charts of Accounts (PGCE 2008). ======================================= -* Defines the following chart of account templates: - * Spanish General Chart of Accounts 2008. - * Spanish General Chart of Accounts 2008 for small and medium companies. -* Defines templates for sale and purchase VAT. -* Defines tax code templates. + * Defines the following chart of account templates: + * Spanish General Chart of Accounts 2008 + * Spanish General Chart of Accounts 2008 for small and medium companies + * Defines templates for sale and purchase VAT + * Defines tax code templates -Note: You should install the l10n_ES_account_balance_report module -for yearly account reporting (balance, profit & losses). +Note: You should install the l10n_ES_account_balance_report module for yearly + account reporting (balance, profit & losses). """, "license" : "GPL-3", "depends" : ["account", "base_vat", "base_iban"], diff --git a/addons/l10n_fr/__openerp__.py b/addons/l10n_fr/__openerp__.py index 99849d62649..ec31f71513a 100644 --- a/addons/l10n_fr/__openerp__.py +++ b/addons/l10n_fr/__openerp__.py @@ -35,11 +35,21 @@ This is the module to manage the accounting chart for France in OpenERP. ======================================================================== -This module applies to companies based in France mainland. It doesn't apply to companies based in the DOM-TOMs (Guadeloupe, Martinique, Guyane, Réunion, Mayotte, etc...) +This module applies to companies based in France mainland. It doesn't apply to +companies based in the DOM-TOMs (Guadeloupe, Martinique, Guyane, Réunion, Mayotte). -This localisation module creates the VAT taxes of type "tax included" for purchases (it is notably required when you use the module "hr_expense"). Beware that these "tax included" VAT taxes are not managed by the fiscal positions provided by this module (because it is complex to manage both "tax excluded" and "tax included" scenarios in fiscal positions). +This localisation module creates the VAT taxes of type "tax included" for purchases +(it is notably required when you use the module "hr_expense"). Beware that these +"tax included" VAT taxes are not managed by the fiscal positions provided by this +module (because it is complex to manage both "tax excluded" and "tax included" +scenarios in fiscal positions). -This localisation module doesn't properly handle the scenario when a France-mainland company sells services to a company based in the DOMs. We could manage it in the fiscal positions, but it would require to differentiate between "product" VAT taxes and "service" VAT taxes. We consider that it is too "heavy" to have this by default in l10n_fr ; companies that sell services to DOM-based companies should update the configuration of their taxes and fiscal positions manually. +This localisation module doesn't properly handle the scenario when a France-mainland +company sells services to a company based in the DOMs. We could manage it in the +fiscal positions, but it would require to differentiate between "product" VAT taxes +and "service" VAT taxes. We consider that it is too "heavy" to have this by default +in l10n_fr; companies that sell services to DOM-based companies should update the +configuration of their taxes and fiscal positions manually. Credits: Sistheo, Zeekom, CrysaLEAD, Akretion and Camptocamp. """, diff --git a/addons/l10n_fr_hr_payroll/__openerp__.py b/addons/l10n_fr_hr_payroll/__openerp__.py index b9bc3b74f22..c3b2c332a46 100755 --- a/addons/l10n_fr_hr_payroll/__openerp__.py +++ b/addons/l10n_fr_hr_payroll/__openerp__.py @@ -25,19 +25,22 @@ 'depends': ['hr_payroll', 'l10n_fr'], 'version': '1.0', 'description': """ -French Payroll Rules -======================= +French Payroll Rules. +===================== - -Configuration of hr_payroll for french localization - -All main contributions rules for french payslip, for 'cadre' and 'non-cadre' - -New payslip report + - Configuration of hr_payroll for French localization + - All main contributions rules for French payslip, for 'cadre' and 'non-cadre' + - New payslip report - TODO : - -Integration with holidays module for deduction and allowance - -Integration with hr_payroll_account for the automatic account_move_line creation from the payslip - -Continue to integrate the contribution. Only the main contribution are currently implemented - -Remake the report under webkit - -The payslip.line with appears_in_payslip = False should appears in the payslip interface, but not in the payslip report +TODO : + - Integration with holidays module for deduction and allowance + - Integration with hr_payroll_account for the automatic account_move_line + creation from the payslip + - Continue to integrate the contribution. Only the main contribution are + currently implemented + - Remake the report under webkit + - The payslip.line with appears_in_payslip = False should appears in the + payslip interface, but not in the payslip report """, 'active': False, diff --git a/addons/l10n_fr_rib/__openerp__.py b/addons/l10n_fr_rib/__openerp__.py index ac1b03f4b3e..fedac46381d 100644 --- a/addons/l10n_fr_rib/__openerp__.py +++ b/addons/l10n_fr_rib/__openerp__.py @@ -25,17 +25,26 @@ "category": 'Hidden/Dependency', 'description': ''' This module lets users enter the banking details of Partners in the RIB format (French standard for bank accounts details). -RIB Bank Accounts can be entered in the "Accounting" tab of the Partner form by specifying the account type "RIB". The four standard RIB fields will then become mandatory: -- Bank Code -- Office Code -- Account number -- RIB key -As a safety measure, OpenERP will check the RIB key whenever a RIB is saved, and will refuse to record the data if the key is incorrect. Please bear in mind that this can only happen when the user presses the "save" button, for example on the Partner Form. -Since each bank account may relate to a Bank, users may enter the RIB Bank Code in the Bank form - it will the pre-fill the Bank Code on the RIB when they select the Bank. -To make this easier, this module will also let users find Banks using their RIB code. +=========================================================================================================================== -The module base_iban can be a useful addition to this module, because French banks are now progressively adopting the international IBAN format instead of the RIB format. -The RIB and IBAN codes for a single account can be entered by recording two Bank Accounts in OpenERP: the first with the type "RIB", the second with the type "IBAN". +RIB Bank Accounts can be entered in the "Accounting" tab of the Partner form by specifying +the account type "RIB". The four standard RIB fields will then become mandatory: + - Bank Code + - Office Code + - Account number + - RIB key +As a safety measure, OpenERP will check the RIB key whenever a RIB is saved, and +will refuse to record the data if the key is incorrect. Please bear in mind that +this can only happen when the user presses the "save" button, for example on the +Partner Form. Since each bank account may relate to a Bank, users may enter the +RIB Bank Code in the Bank form - it will the pre-fill the Bank Code on the RIB +when they select the Bank. To make this easier, this module will also let users +find Banks using their RIB code. + +The module base_iban can be a useful addition to this module, because French banks +are now progressively adopting the international IBAN format instead of the RIB format. +The RIB and IBAN codes for a single account can be entered by recording two Bank +Accounts in OpenERP: the first with the type "RIB", the second with the type "IBAN". ''', 'author' : u'Numérigraphe SARL', 'depends': ['account', 'base_iban'], diff --git a/addons/l10n_gt/__openerp__.py b/addons/l10n_gt/__openerp__.py index f05bbdaaff1..44389e68439 100644 --- a/addons/l10n_gt/__openerp__.py +++ b/addons/l10n_gt/__openerp__.py @@ -40,7 +40,9 @@ This is the base module to manage the accounting chart for Guatemala. ===================================================================== -Agrega una nomenclatura contable para Guatemala. También icluye impuestos y la moneda del Quetzal. -- Adds accounting chart for Guatemala. It also includes taxes and the Quetzal currency""", +Agrega una nomenclatura contable para Guatemala. También icluye impuestos y +la moneda del Quetzal. -- Adds accounting chart for Guatemala. It also includes +taxes and the Quetzal currency.""", 'author': 'José Rodrigo Fernández Menegazzo', 'website': 'http://solucionesprisma.com/', 'depends': ['base', 'account', 'account_chart'], diff --git a/addons/l10n_hn/__openerp__.py b/addons/l10n_hn/__openerp__.py index af8bb4cfa1d..25655e52e70 100644 --- a/addons/l10n_hn/__openerp__.py +++ b/addons/l10n_hn/__openerp__.py @@ -36,7 +36,10 @@ 'name': 'Honduras - Accounting', 'version': '0.1', 'category': 'Localization/Account Charts', - 'description': """Agrega una nomenclatura contable para Honduras. También incluye impuestos y la moneda Lempira. -- Adds accounting chart for Honduras. It also includes taxes and the Lempira currency""", + 'description': """ +Agrega una nomenclatura contable para Honduras. También incluye impuestos y la +moneda Lempira. -- Adds accounting chart for Honduras. It also includes taxes +and the Lempira currency.""", 'author': 'Salvatore Josue Trimarchi Pinto', 'website': 'http://trimarchi.co.cc', 'depends': ['base', 'account', 'account_chart'], diff --git a/addons/l10n_in/__init__.py b/addons/l10n_in/__init__.py index 19de03b504c..49a09e5570e 100644 --- a/addons/l10n_in/__init__.py +++ b/addons/l10n_in/__init__.py @@ -1,29 +1,21 @@ -# -*- encoding: utf-8 -*- +# -*- coding: utf-8 -*- ############################################################################## # -# Copyright (c) 2004 TINY SPRL. (http://tiny.be) All Rights Reserved. -# Fabien Pinckaers +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (). # -# WARNING: This program as such is intended to be used by professional -# programmers who take the whole responsability of assessing all potential -# consequences resulting from its eventual inadequacies and bugs -# End users who are looking for a ready-to-use solution with commercial -# garantees and support are strongly adviced to contract a Free Software -# Service Company +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero 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 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 2 -# 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 Affero General Public License for more details. # -# 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, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . # ############################################################################## diff --git a/addons/l10n_in/__openerp__.py b/addons/l10n_in/__openerp__.py index c13139f6736..1e49509c627 100644 --- a/addons/l10n_in/__openerp__.py +++ b/addons/l10n_in/__openerp__.py @@ -1,8 +1,8 @@ -# -*- encoding: utf-8 -*- +# -*- coding: utf-8 -*- ############################################################################## # # OpenERP, Open Source Management Solution -# Copyright (C) 2004-2009 Tiny SPRL (). +# Copyright (C) 2004-2010 Tiny SPRL (). # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -20,11 +20,11 @@ ############################################################################## { - "name": "India - Accounting", + "name": "Indian - Accounting", "version": "1.0", "description": """ -Indian Accounting : Chart of Account. -===================================== +Indian Accounting: Chart of Account. +==================================== Indian accounting chart and localization. """, @@ -36,7 +36,11 @@ Indian accounting chart and localization. ], "demo_xml": [], "update_xml": [ - "l10n_in_chart.xml", + "l10n_in_tax_code_template.xml", + "l10n_in_public_chart.xml", + "l10n_in_public_tax_template.xml", + "l10n_in_private_chart.xml", + "l10n_in_private_tax_template.xml", "l10n_in_wizard.xml", ], "auto_install": False, diff --git a/addons/l10n_in/account_tax.xml b/addons/l10n_in/account_tax.xml deleted file mode 100644 index 5cba82b748f..00000000000 --- a/addons/l10n_in/account_tax.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - PPn (10%)(10.0%) - 0.100000 - percent - - - - - - - - - - diff --git a/addons/l10n_in/account_tax_code.xml b/addons/l10n_in/account_tax_code.xml deleted file mode 100644 index bec870dd426..00000000000 --- a/addons/l10n_in/account_tax_code.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - Tax balance to pay - - - - Tax Due (Tax to pay) - - - - - Tax payable - - - - - Tax bases - - - - Base of taxed sales - - - - - - Base of taxed purchases - - - - - diff --git a/addons/l10n_in/l10n_in_chart.xml b/addons/l10n_in/l10n_in_chart.xml deleted file mode 100644 index d18d2b801e0..00000000000 --- a/addons/l10n_in/l10n_in_chart.xml +++ /dev/null @@ -1,447 +0,0 @@ - - - - - - - - Indian Chart of Account - 0 - view - - - - - - Balance Sheet - IA_AC0 - view - - - - - - - Assets - IA_AC01 - view - - - - - - - Current Assets - IA_AC011 - view - - - - - - - Bank Account - IA_AC0111 - liquidity - - - - - - - Cash In Hand Account - IA_AC0112 - view - - - - - - - Cash Account - IA_AC01121 - view - - - - - - - Deposit Account - IA_AC0113 - other - - - - - - - Loan & Advance(Assets) Account - IA_AC0114 - other - - - - - - - Total Sundry Debtors Account - IA_AC0116 - view - - - - - - - Sundry Debtors Account - IA_AC01161 - receivable - - - - - - - Fixed Assets - IA_AC012 - other - - - - - - - Investment - IA_AC013 - other - - - - - - - Misc. Expenses(Asset) - IA_AC014 - other - - - - - - - Liabilities - IA_AC02 - view - - - - - - - Current Liabilities - IA_AC021 - view - - - - - - - Duties & Taxes - IA_AC0211 - other - - - - - - - Provision - IA_AC0212 - other - - - - - - - Total Sundry Creditors - IA_AC0213 - view - - - - - - - Sundry Creditors Account - IA_AC02131 - payable - - - - - - - Branch/Division - IA_AC022 - other - - - - - - - Share Holder/Owner Fund - IA_AC023 - view - - - - - - - Capital Account - IA_AC0231 - other - - - - - - - Reserve and Profit/Loss Account - IA_AC0232 - other - - - - - - - Loan(Liability) Account - IA_AC024 - view - - - - - - - Bank OD Account - IA_AC0241 - other - - - - - - - Secured Loan Account - IA_AC0242 - other - - - - - - - Unsecured Loan Account - IA_AC0243 - other - - - - - - - Suspense Account - IA_AC025 - other - - - - - - - - Profit And Loss Account - IA_AC1 - view - - - - - - - Expense - IA_AC11 - view - - - - - - - Direct Expenses - IA_AC111 - other - - - - - - - Indirect Expenses - IA_AC112 - other - - - - - - - Purchase - IA_AC113 - other - - - - - - - Opening Stock - IA_AC114 - other - - - - - - Salary Expenses - IA_AC115 - other - - - - - - - - Income - IA_AC12 - view - - - - - - - Direct Incomes - IA_AC121 - other - - - - - - - Indirect Incomes - IA_AC122 - other - - - - - - - Sales Account - IA_AC123 - other - - - - - - Goods Given Account - IA_AC124 - other - - - - - - - - - Tax - - - - Tax Balance to Pay - - - - - Tax Due (Tax to pay) - - - - - Tax Payable - - - - - Tax Bases - - - - - - Base of Taxed Sales - - - - - - Base of Taxed Purchases - - - - - OPJ - Opening Journal - situation - - - - - India - Chart of Accounts - - - - - - - - - - - - - diff --git a/addons/l10n_in/l10n_in_private_chart.xml b/addons/l10n_in/l10n_in_private_chart.xml new file mode 100644 index 00000000000..db11d0638c8 --- /dev/null +++ b/addons/l10n_in/l10n_in_private_chart.xml @@ -0,0 +1,523 @@ + + + + + + + + Partnership/Private Firm Chart of Account + 0 + view + + + + + + + Balance Sheet + 1 + view + + + + + + + + + Assets + 10 + view + + + + + + + Cash + 101 + liquidity + + + + Checking account balance (as shown in company records), currency, coins, checks received from customers but not yet deposited. + + + + Accounts Receivable + 120 + receivable + + + + Amounts owed to the company for services performed or products sold but not yet paid for. + + + + Merchandise Inventory + 140 + other + + + + Cost of merchandise purchased but has not yet been sold. + + + + Supplies + 150 + other + + + + Cost of supplies that have not yet been used. Supplies that have been used are recorded in Supplies Expense. + + + + Prepaid Insurance + 160 + other + + + + Cost of insurance that is paid in advance and includes a future accounting period. + + + + Land + 170 + other + + + + Cost to acquire and prepare land for use by the company. + + + + Buildings + 175 + other + + + + Cost to purchase or construct buildings for use by the company. + + + + Accumulated Depreciation - Buildings + 178 + other + + + + Amount of the buildings' cost that has been allocated to Depreciation Expense since the time the building was acquired. + + + + Equipment + 180 + other + + + + Cost to acquire and prepare equipment for use by the company. + + + + Accumulated Depreciation - Equipment + 188 + other + + + + Amount of equipment's cost that has been allocated to Depreciation Expense since the time the equipment was acquired. + + + + Tax Receivable + 189 + other + + + + + + + + Liabilities + 20 + view + + + + + + + Notes Payable + 210 + other + + + + The amount of principal due on a formal written promise to pay. Loans from banks are included in this account. + + + + Accounts Payable + 215 + payable + + + + Amount owed to suppliers who provided goods and services to the company but did not require immediate payment in cash. + + + + Wages Payable + 220 + other + + + + Amount owed to employees for hours worked but not yet paid. + + + + Interest Payable + 230 + other + + + + Amount owed for interest on Notes Payable up until the date of the balance sheet. This is computed by multiplying the amount of the note times the effective interest rate times the time period. + + + + Unearned Revenues + 240 + other + + + + Amounts received in advance of delivering goods or providing services. When the goods are delivered or services are provided, this liability amount decreases. + + + + Mortgage Loan Payable + 250 + other + + + + A formal loan that involves a lien on real estate until the loan is repaid. + + + + Reserve and Surplus Account + 260 + other + + + + A Reserve and Surplus Account. + + + + + + + Tax payable + 216 + view + + + + + + + Sales Tax Payable + 2161 + other + + + + + + + VAT Payable + 2162 + other + + + + + + + Service Tax Payable + 2163 + other + + + + + + + Exice Duty Payable + 2164 + other + + + + + + + + + Owner's Equity Accounts + 29 + view + + + + + + + + + + Profit And Loss + 3 + view + + + + + + + + + Income + 30 + view + + + + + + + + + Operating Revenue Accounts + 31 + view + + + + + + + Service Revenues + 310 + other + + + + Amounts earned from providing services to clients, either for cash or on credit. When a service is provided on credit, both this account and Accounts Receivable will increase. When a service is provided for immediate cash, both this account and Cash will increase. + + + + Product Sales + 311 + other + + + + Sales of product account + + + + Non-Operating Revenue and Gains + 80 + view + + + + + + + Interest Revenues + 810 + other + + + + Interest and dividends earned on bank accounts, investments or notes receivable. This account is increased when the interest is earned and either Cash or Interest Receivable is also increased. + + + + Gain on Sale of Assets + 811 + other + + + + Occurs when the company sells one of its assets (other than inventory) for more than the asset's book value. + + + + + + Expense + 50 + view + + + + + + + Operating Expense Accounts + 51 + view + + + + + + + Salaries Expense + 500 + other + + + + Expenses incurred for the work performed by salaried employees during the accounting period. These employees normally receive a fixed amount on a weekly, monthly, or annual basis. + + + + Wages Expense + 510 + other + + + + Expenses incurred for the work performed by non-salaried employees during the accounting period. These employees receive an hourly rate of pay. + + + + Supplies Expense + 540 + other + + + + Cost of supplies used up during the accounting period. + + + + Rent Expense + 560 + other + + + + Cost of occupying rented facilities during the accounting period. + + + + Utilities Expense + 570 + other + + + + Costs for electricity, heat, water, and sewer that were used during the accounting period. + + + + Telephone Expense + 576 + other + + + + Cost of telephone used during the current accounting period. + + + + Advertising Expense + 610 + other + + + + Costs incurred by the company during the accounting period for ads, promotions, and other selling and expenses (other than salaries). + + + + Depreciation Expense + 750 + other + + + + Cost of long-term assets allocated to expense during the current accounting period. + + + + + + Non-Operating Expenses and Losses + 90 + view + + + + + + + Loss on Sale of Assets + 960 + other + + + + Occurs when the company sells one of its assets (other than inventory) for less than the asset's book value. + + + + + + India - Chart of Accounts for Private Ltd/Partnership + + + + + + + + + + + + + \ No newline at end of file diff --git a/addons/l10n_in/l10n_in_private_tax_template.xml b/addons/l10n_in/l10n_in_private_tax_template.xml new file mode 100644 index 00000000000..7aec30f0575 --- /dev/null +++ b/addons/l10n_in/l10n_in_private_tax_template.xml @@ -0,0 +1,270 @@ + + + + + + + Sale Tax-15% + + 0.15 + percent + sale + + + + + + + + + + + + Sale Tax-12% + + 0.12 + percent + sale + + + + + + + + + + + + Sale Tax-4% + + 0.04 + percent + sale + + + + + + + + + + + + + + Purchase Tax-15% + + + + 0.15 + percent + purchase + + + + + + + + + + + VAT-5%(4% VAT+1% Add. Tax.) + + 0.05 + percent + all + + + + 1 + + 1 + + 1 + + 1 + + + + + + VAT-15%(12.5% VAT+2.5% Add. Tax.) + + 0.15 + percent + all + + + + 1 + + 1 + + 1 + + 1 + + + + + + VAT-8% + + 0.08 + percent + all + + + + + + + + + + + + VAT-10% + + 0.10 + percent + all + + + + + + + + + + + + VAT-12.5% + + 12.5 + percent + all + + + + + + + + + + + + + + Excise Duty-10.30% + + 0.10 + percent + sale + + + + 1 + + 1 + + 1 + + 1 + + + + + + Excise Duty-2% + 0.02 + percent + sale + + + + + 1 + + 1 + + 1 + + 1 + + + + + Excise Duty-1% + 0.01 + percent + sale + + + + 1 + + 1 + + 1 + + 1 + + + + + + + + all + Service Tax-12.30% + + 0.12 + percent + + + + + + + + + + + + Service Tax-%2 + 0.02 + percent + all + + + + + + + + + + + + Service Tax-%1 + 0.01 + percent + all + + + + + + + + + + + + \ No newline at end of file diff --git a/addons/l10n_in/l10n_in_public_chart.xml b/addons/l10n_in/l10n_in_public_chart.xml new file mode 100644 index 00000000000..2c2dda0dd9d --- /dev/null +++ b/addons/l10n_in/l10n_in_public_chart.xml @@ -0,0 +1,676 @@ + + + + + + + + + Public Firm Chart of Account + 0 + view + + + + + + + Balance Sheet + 1 + view + + + + + + + + Assets + 10 + view + + + + + + + Current Assets + 10000 + view + + + + + + + Cash - Regular Checking + 10100 + liquidity + + + + + + + Cash - Payroll Checking + 10200 + liquidity + + + + + + + Petty Cash Fund + 10600 + liquidity + + + + + + + Accounts Receivable + 12100 + receivable + + + + + + + Allowance for Doubtful Accounts + 12500 + other + + + + + + + Inventory + 13100 + other + + + + + + + Supplies + 14100 + other + + + + + + + Prepaid Insurance + 15300 + other + + + + + + + Tax Receivable + 15400 + other + + + + + + + + + Property, Plant, and Equipment + 17000 + view + + + + + + + Land + 17200 + other + + + + + + + Buildings + 17100 + other + + + + + + + Equipment + 17300 + other + + + + + + + Vehicles + 17800 + other + + + + + + + Accumulated Depreciation - Buildings + 18100 + other + + + + + + + Accumulated Depreciation - Equipment + 18300 + other + + + + + + + Accumulated Depreciation - Vehicles + 18800 + other + + + + + + + + + Liabilities + 20 + view + + + + + + + Current Liabilities + 20000 + view + + + + + + + Notes Payable - Credit Line #1 + 20100 + other + + + + + + + Notes Payable - Credit Line #2 + 20200 + other + + + + + + + Accounts Payable + 21000 + payable + + + + + + + Wages Payable + 22100 + other + + + + + + + Interest Payable + 23100 + other + + + + + + + Unearned Revenues + 24500 + other + + + + + + + Long-term Liabilities + 25000 + view + + + + + + + Mortgage Loan Payable + 25100 + other + + + + + + + Bonds Payable + 25600 + other + + + + + + + Discount on Bonds Payable + 25650 + other + + + + + + + Stockholders' Equity + 27000 + view + + + + + + + Common Stock, No Par + 27100 + other + + + + + + + Retained Earnings + 27500 + other + + + + + + + Treasury Stock + 29500 + other + + + + + + + Reserve and Surplus Account + 24600 + other + + + + + + + + + Tax payable + 24700 + view + + + + + + + Sales Tax Payable + 24710 + other + + + + + + + VAT Payable + 24720 + other + + + + + + + Exice Duty Payable + 24730 + other + + + + + + + Service Tax Payable + 24740 + other + + + + + + + + + Profit And Loss + 3 + view + + + + + + + + + Income + 30 + view + + + + + + + + + Operating Revenues + 30000 + view + + + + + + + Sales - Division #1, Product Line 010 + 31010 + other + + + + + + + Sales - Division #1, Product Line 022 + 31022 + other + + + + + + + Sales - Division #2, Product Line 015 + 32015 + other + + + + + + + Sales - Division #3, Product Line 110 + 33110 + other + + + + + + + Non-Operating Revenue and Gains + 90000 + view + + + + + + + Gain on Sale of Assets + 91800 + other + + + + + + + + + Expense + 40 + view + + + + + + + + + + Cost of Goods Sold + 40000 + view + + + + + + + + COGS - Division #1, Product Line 010 + 41010 + other + + + + + + + COGS - Division #1, Product Line 022 + 41022 + other + + + + + + + COGS - Division #2, Product Line 015 + 42015 + other + + + + + + + COGS - Division #3, Product Line 110 + 43110 + other + + + + + + + + + Marketing Expenses + 50000 + view + + + + + + + Marketing Dept. Salaries + 50100 + other + + + + + + + Marketing Dept. Payroll Taxes + 50150 + other + + + + + + + Marketing Dept. Supplies + 50200 + other + + + + + + + Marketing Dept. Telephone + 50600 + other + + + + + + + + + Payroll Dept. Expenses + 59000 + view + + + + + + + Payroll Dept. Salaries + 59100 + other + + + + + + + Payroll Dept. Payroll Taxes + 59150 + other + + + + + + + Payroll Dept. Supplies + 59200 + other + + + + + + + Payroll Dept. Telephone + 59600 + other + + + + + + + + + Non-Operating Expenses and Losses + 96000 + view + + + + + + + Loss on Sale of Assets + 96100 + other + + + + + + + India - Chart of Accounts for Public Ltd + + + + + + + + + + + + \ No newline at end of file diff --git a/addons/l10n_in/l10n_in_public_tax_template.xml b/addons/l10n_in/l10n_in_public_tax_template.xml new file mode 100644 index 00000000000..03dbfa7cc75 --- /dev/null +++ b/addons/l10n_in/l10n_in_public_tax_template.xml @@ -0,0 +1,295 @@ + + + + + + + + Sale Tax-15% + + + + 0.15 + percent + sale + + + + + + + + + Sale Tax-12% + + + + 0.12 + percent + sale + + + + + + + + + Sale Tax-4% + + + + 0.04 + percent + sale + + + + + + + + + + + Purchase Tax-15% + + + + 0.15 + percent + purchase + + + + + + + + + + + + + VAT-5%(4% VAT+1% Add. Tax.) + + + + 0.05 + percent + all + + 1 + + 1 + + 1 + + 1 + + + + + + VAT-15% (12.5% VAT + 2.5% Add. Tax.) + + + + 0.15 + percent + all + + 1 + + 1 + + 1 + + 1 + + + + + + VAT-8% + + + + 0.08 + percent + all + + 1 + + 1 + + 1 + + 1 + + + + + + VAT-10% + + + + 0.10 + percent + all + + 1 + + 1 + + 1 + + 1 + + + + + + VAT-12.5% + + + + 12.5 + percent + all + + 1 + + 1 + + 1 + + 1 + + + + + + + + Service Tax-12.30% + + + + 0.12 + percent + all + + 1 + + 1 + + 1 + + 1 + + + + + Service Tax-%2 + + + + + 1 + + 1 + + 1 + + 1 + 0.02 + percent + all + + + + + + Service Tax-%1 + 0.01 + + + + + 1 + + 1 + + 1 + + 1 + percent + all + + + + + + + + Excise Duty-10.30% + + + + 0.10 + percent + sale + + 1 + + 1 + + 1 + + 1 + + + + + + Excise Duty-2% + 0.02 + percent + sale + + + + 1 + + 1 + + 1 + + 1 + + + + + + Excise Duty-1% + 0.01 + percent + sale + + + + 1 + + 1 + + 1 + + 1 + + + + + + \ No newline at end of file diff --git a/addons/l10n_in/l10n_in_tax_code_template.xml b/addons/l10n_in/l10n_in_tax_code_template.xml new file mode 100644 index 00000000000..94217d79c3c --- /dev/null +++ b/addons/l10n_in/l10n_in_tax_code_template.xml @@ -0,0 +1,42 @@ + + + + + + + Tax + + + + Tax Balance to Pay + + + + + Tax Received + + + + + Tax Paid + + + + + Tax Bases + + + + + + Base of Taxed Sales + + + + + Base of Taxed Purchases + + + + + diff --git a/addons/l10n_in/l10n_in_wizard.xml b/addons/l10n_in/l10n_in_wizard.xml index 9c53722876b..a877b8b577e 100644 --- a/addons/l10n_in/l10n_in_wizard.xml +++ b/addons/l10n_in/l10n_in_wizard.xml @@ -1,3 +1,4 @@ + diff --git a/addons/l10n_lu/__openerp__.py b/addons/l10n_lu/__openerp__.py index bb12abd76fc..1ade34faaca 100644 --- a/addons/l10n_lu/__openerp__.py +++ b/addons/l10n_lu/__openerp__.py @@ -28,7 +28,7 @@ This is the base module to manage the accounting chart for Luxembourg. ====================================================================== - * the KLUWER Chart of Accounts, + * the KLUWER Chart of Accounts * the Tax Code Chart for Luxembourg * the main taxes used in Luxembourg""", 'author': 'OpenERP SA', diff --git a/addons/l10n_ma/__openerp__.py b/addons/l10n_ma/__openerp__.py index 21b7c632d6b..52f453af8bb 100644 --- a/addons/l10n_ma/__openerp__.py +++ b/addons/l10n_ma/__openerp__.py @@ -28,7 +28,11 @@ This is the base module to manage the accounting chart for Maroc. ================================================================= -Ce Module charge le modèle du plan de comptes standard Marocain et permet de générer les états comptables aux normes marocaines (Bilan, CPC (comptes de produits et charges), balance générale à 6 colonnes, Grand livre cumulatif...). L'intégration comptable a été validé avec l'aide du Cabinet d'expertise comptable Seddik au cours du troisième trimestre 2010""", +Ce Module charge le modèle du plan de comptes standard Marocain et permet de +générer les états comptables aux normes marocaines (Bilan, CPC (comptes de +produits et charges), balance générale à 6 colonnes, Grand livre cumulatif...). +L'intégration comptable a été validé avec l'aide du Cabinet d'expertise comptable +Seddik au cours du troisième trimestre 2010.""", "website": "http://www.kazacube.com", "depends" : ["base", "account"], "init_xml" : [], diff --git a/addons/l10n_multilang/__openerp__.py b/addons/l10n_multilang/__openerp__.py index 42ca20a2f8e..cf521f124f4 100644 --- a/addons/l10n_multilang/__openerp__.py +++ b/addons/l10n_multilang/__openerp__.py @@ -25,10 +25,11 @@ "author" : "OpenERP SA", "category": 'Hidden/Dependency', "description": """ - * Multi language support for Chart of Accounts, Taxes, Tax Codes , Journals, Accounting Templates, - Analytic Chart of Accounts and Analytic Journals. + * Multi language support for Chart of Accounts, Taxes, Tax Codes, Journals, + Accounting Templates, Analytic Chart of Accounts and Analytic Journals. * Setup wizard changes - - Copy translations for COA, Tax, Tax Code and Fiscal Position from templates to target objects. + - Copy translations for COA, Tax, Tax Code and Fiscal Position from + templates to target objects. """, 'website': 'http://www.openerp.com', 'init_xml': [], diff --git a/addons/l10n_nl/__openerp__.py b/addons/l10n_nl/__openerp__.py index 562fd0ab876..8b9cc3de451 100644 --- a/addons/l10n_nl/__openerp__.py +++ b/addons/l10n_nl/__openerp__.py @@ -94,19 +94,25 @@ This is the module to manage the accounting chart for Netherlands in OpenERP. ============================================================================= Read changelog in file __openerp__.py for version information. -Dit is een basismodule om een uitgebreid grootboek- en BTW schema voor Nederlandse bedrijven te installeren in OpenERP versie 5. +Dit is een basismodule om een uitgebreid grootboek- en BTW schema voor +Nederlandse bedrijven te installeren in OpenERP versie 5. -De BTW rekeningen zijn waar nodig gekoppeld om de juiste rapportage te genereren, denk b.v. aan intracommunautaire verwervingen -waarbij u 19% BTW moet opvoeren, maar tegelijkertijd ook 19% als voorheffing weer mag aftrekken. +De BTW rekeningen zijn waar nodig gekoppeld om de juiste rapportage te genereren, +denk b.v. aan intracommunautaire verwervingen waarbij u 19% BTW moet opvoeren, +maar tegelijkertijd ook 19% als voorheffing weer mag aftrekken. Na installatie van deze module word de configuratie wizard voor "Accounting" aangeroepen. - * U krijgt een lijst met grootboektemplates aangeboden waarin zich ook het Nederlandse grootboekschema bevind. + * U krijgt een lijst met grootboektemplates aangeboden waarin zich ook het + Nederlandse grootboekschema bevind. - * Als de configuratie wizard start, wordt u gevraagd om de naam van uw bedrijf in te voeren, welke grootboekschema te installeren, uit hoeveel cijfers een grootboekrekening mag bestaan, het rekeningnummer van uw bank en de currency om Journalen te creeren. + * Als de configuratie wizard start, wordt u gevraagd om de naam van uw bedrijf + in te voeren, welke grootboekschema te installeren, uit hoeveel cijfers een + grootboekrekening mag bestaan, het rekeningnummer van uw bank en de currency + om Journalen te creeren. -Let op!! -> De template van het Nederlandse rekeningschema is opgebouwd uit 4 cijfers. Dit is het minimale aantal welk u moet invullen, u mag het aantal verhogen. De extra cijfers worden dan achter het rekeningnummer aangevult met "nullen" - - * Dit is dezelfe configuratie wizard welke aangeroepen kan worden via Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template. +Let op!! -> De template van het Nederlandse rekeningschema is opgebouwd uit 4 +cijfers. Dit is het minimale aantal welk u moet invullen, u mag het aantal verhogen. +De extra cijfers worden dan achter het rekeningnummer aangevult met "nullen". """, "author" : "Veritos - Jan Verlaan", diff --git a/addons/l10n_pe/__openerp__.py b/addons/l10n_pe/__openerp__.py index fa65c1033b7..7908664ca83 100644 --- a/addons/l10n_pe/__openerp__.py +++ b/addons/l10n_pe/__openerp__.py @@ -22,9 +22,10 @@ "name": "Peru Localization Chart Account", "version": "1.0", "description": """ -Peruvian accounting chart and tax localization. Acording the PCGE 2010 +Peruvian accounting chart and tax localization. Acording the PCGE 2010. -Plan contable peruano e impuestos de acuerdo a disposiciones vigentes de la SUNAT 2011 (PCGE 2010) +Plan contable peruano e impuestos de acuerdo a disposiciones vigentes de la +SUNAT 2011 (PCGE 2010). """, "author": ["Cubic ERP"], diff --git a/addons/l10n_syscohada/__openerp__.py b/addons/l10n_syscohada/__openerp__.py index 01c1aaef96f..2fd6917ec11 100644 --- a/addons/l10n_syscohada/__openerp__.py +++ b/addons/l10n_syscohada/__openerp__.py @@ -24,12 +24,15 @@ "version" : "1.0", "author" : "Baamtu Senegal", "category" : "Localization/Account Charts", - "description": """This module implements the accounting chart for OHADA area. - It allows any company or association to manage its financial accounting. - Countries that use OHADA are the following: + "description": """ +This module implements the accounting chart for OHADA area. +=========================================================== + +It allows any company or association to manage its financial accounting. +Countries that use OHADA are the following: Benin, Burkina Faso, Cameroon, Central African Republic, Comoros, Congo, - Ivory Coast, Gabon, Guinea, Guinea Bissau, - Equatorial Guinea, Mali, Niger, Replica of Democratic Congo, Senegal, Chad, Togo. + Ivory Coast, Gabon, Guinea, Guinea Bissau, Equatorial Guinea, Mali, Niger, + Replica of Democratic Congo, Senegal, Chad, Togo. """, "website": "http://www.baamtu.com", "depends" : ["account", "base_vat"], diff --git a/addons/l10n_tr/__openerp__.py b/addons/l10n_tr/__openerp__.py index ad4621499d3..d72865a216c 100644 --- a/addons/l10n_tr/__openerp__.py +++ b/addons/l10n_tr/__openerp__.py @@ -23,10 +23,11 @@ 'category': 'Localization/Account Charts', 'description': """ Türkiye için Tek düzen hesap planı şablonu OpenERP Modülü. -============================================================================== +========================================================== Bu modül kurulduktan sonra, Muhasebe yapılandırma sihirbazı çalışır - * Sihirbaz sizden hesap planı şablonu, planın kurulacağı şirket,banka hesap bilgileriniz,ilgili para birimi gibi bilgiler isteyecek. + * Sihirbaz sizden hesap planı şablonu, planın kurulacağı şirket, banka hesap + bilgileriniz, ilgili para birimi gibi bilgiler isteyecek. """, 'author': 'Ahmet Altınışık', 'maintainer':'https://launchpad.net/~openerp-turkey', diff --git a/addons/l10n_uk/__openerp__.py b/addons/l10n_uk/__openerp__.py index f6e8212aed0..444ea2b9dd3 100644 --- a/addons/l10n_uk/__openerp__.py +++ b/addons/l10n_uk/__openerp__.py @@ -23,7 +23,9 @@ 'name': 'UK - Accounting', 'version': '1.0', 'category': 'Localization/Account Charts', - 'description': """This is the latest UK OpenERP localisation necesary to run OpenERP accounting for UK SME's with: + 'description': """ +This is the latest UK OpenERP localisation necessary to run OpenERP accounting +for UK SME's with: - a CT600-ready chart of accounts - VAT100-ready tax structure - InfoLogic UK counties listing diff --git a/addons/l10n_us/__openerp__.py b/addons/l10n_us/__openerp__.py index 4aac9b14287..f900c3d5e99 100644 --- a/addons/l10n_us/__openerp__.py +++ b/addons/l10n_us/__openerp__.py @@ -24,7 +24,7 @@ "author": "OpenERP SA", "category": 'Localization/Account Charts', "description": """ - United States - Chart of accounts +United States - Chart of accounts. """, 'website': 'http://www.openerp.com', 'init_xml': [], diff --git a/addons/l10n_uy/__openerp__.py b/addons/l10n_uy/__openerp__.py index 4edfe22e1e8..5e4eb51ffc0 100644 --- a/addons/l10n_uy/__openerp__.py +++ b/addons/l10n_uy/__openerp__.py @@ -28,10 +28,10 @@ "category" : "Localization/Account Charts", "website" : "https://launchpad.net/openerp-uruguay", "description": """ -General Chart of Accounts -========================= +General Chart of Accounts. +========================== -Provide Templates for Chart of Accounts, Taxes for Uruguay +Provide Templates for Chart of Accounts, Taxes for Uruguay. """, "license" : "AGPL-3", diff --git a/addons/lunch/__openerp__.py b/addons/lunch/__openerp__.py index 4ce4eaf3d6b..ad476588e93 100644 --- a/addons/lunch/__openerp__.py +++ b/addons/lunch/__openerp__.py @@ -22,22 +22,15 @@ { "name": "Lunch Orders", "author": "OpenERP SA", - "Description": """ - The lunch module is for keeping a record of the order placed and payment of the orders. - ======================================================================================= - - The products are defined under categories and the payment records are maintained user-wise. - Every user has a cashbox which keeps track of the amount paid for a particular order. - - """, "version": "0.1", "depends": ["base_tools"], "category" : "Tools", 'description': """ - The base module to manage lunch +The base module to manage lunch. +================================ - keep track for the Lunch Order ,Cash Moves ,CashBox ,Product. - Apply Different Category for the product. +keep track for the Lunch Order, Cash Moves, CashBox, Product. Apply Different +Category for the product. """, "init_xml": [], "update_xml": [ diff --git a/addons/lunch/i18n/nl.po b/addons/lunch/i18n/nl.po new file mode 100644 index 00000000000..481e8a4f79a --- /dev/null +++ b/addons/lunch/i18n/nl.po @@ -0,0 +1,552 @@ +# Dutch translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-02-08 01:37+0100\n" +"PO-Revision-Date: 2012-07-29 09:58+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Dutch \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-07-30 04:55+0000\n" +"X-Generator: Launchpad (build 15702)\n" + +#. module: lunch +#: view:lunch.cashbox.clean:0 +msgid "Reset cashbox" +msgstr "Reset kas" + +#. module: lunch +#: view:report.lunch.amount:0 +msgid "Box amount in current year" +msgstr "Kasbedrag in huidig jaar" + +#. module: lunch +#: model:ir.actions.act_window,name:lunch.action_lunch_order_form +#: model:ir.ui.menu,name:lunch.menu_lunch_order_form +#: model:ir.ui.menu,name:lunch.menu_lunch_reporting_order +msgid "Lunch Orders" +msgstr "Lunch Orders" + +#. module: lunch +#: view:lunch.order.cancel:0 +msgid "Are you sure you want to cancel this order ?" +msgstr "Weet u zeker dat u deze order wilt annuleren?" + +#. module: lunch +#: model:ir.actions.act_window,name:lunch.action_lunch_cashmove_form +#: model:ir.ui.menu,name:lunch.menu_lunch_cashmove_form +msgid "Cash Moves" +msgstr "Kas mutaties" + +#. module: lunch +#: view:lunch.cashmove:0 view:lunch.order:0 view:report.lunch.amount:0 +#: view:report.lunch.order:0 +msgid "Group By..." +msgstr "Groepeer op.." + +#. module: lunch +#: model:ir.model,name:lunch.model_lunch_order_confirm +msgid "confirm Order" +msgstr "Bevestig order" + +#. module: lunch +#: view:report.lunch.order:0 +msgid " 7 Days " +msgstr " 7 Dagen " + +#. module: lunch +#: view:lunch.cashmove:0 view:lunch.order:0 +msgid "Today" +msgstr "Vandaag" + +#. module: lunch +#: selection:report.lunch.amount,month:0 selection:report.lunch.order,month:0 +msgid "March" +msgstr "Maart" + +#. module: lunch +#: report:lunch.order:0 +msgid "Total :" +msgstr "Totaal :" + +#. module: lunch +#: field:report.lunch.amount,day:0 view:report.lunch.order:0 +#: field:report.lunch.order,day:0 +msgid "Day" +msgstr "Dag" + +#. module: lunch +#: model:ir.actions.act_window,name:lunch.action_lunch_order_cancel +#: model:ir.actions.act_window,name:lunch.action_lunch_order_cancel_values +#: model:ir.model,name:lunch.model_lunch_order_cancel view:lunch.order:0 +#: view:lunch.order.cancel:0 +msgid "Cancel Order" +msgstr "Annuleer order" + +#. module: lunch +#: model:ir.actions.act_window,help:lunch.action_create_cashbox +msgid "" +"You can create on cashbox by employee if you want to keep track of the " +"amount due by employee according to what have been ordered." +msgstr "" + +#. module: lunch +#: field:lunch.cashmove,amount:0 field:report.lunch.amount,amount:0 +msgid "Amount" +msgstr "Bedrag" + +#. module: lunch +#: model:ir.actions.act_window,name:lunch.action_lunch_product_form +#: model:ir.ui.menu,name:lunch.menu_lunch_product_form view:lunch.product:0 +msgid "Products" +msgstr "Producten" + +#. module: lunch +#: model:ir.model,name:lunch.model_report_lunch_amount +msgid "Amount available by user and box" +msgstr "Bedrag beschikbaar per gebruiker en kas" + +#. module: lunch +#: view:report.lunch.amount:0 +msgid " Month " +msgstr " Maand " + +#. module: lunch +#: model:ir.model,name:lunch.model_report_lunch_order +msgid "Lunch Orders Statistics" +msgstr "Lunch order analyses" + +#. module: lunch +#: view:lunch.cashmove:0 field:lunch.order,cashmove:0 +msgid "CashMove" +msgstr "Kas muttatie" + +#. module: lunch +#: view:lunch.order:0 selection:lunch.order,state:0 +msgid "Confirmed" +msgstr "Bevestigd" + +#. module: lunch +#: view:lunch.order.confirm:0 +msgid "Confirm" +msgstr "Bevestig" + +#. module: lunch +#: view:lunch.order:0 +msgid "Search Lunch Order" +msgstr "Zoek lunchorders" + +#. module: lunch +#: field:lunch.order,state:0 +msgid "State" +msgstr "Status" + +#. module: lunch +#: selection:lunch.order,state:0 +msgid "New" +msgstr "Nieuw" + +#. module: lunch +#: field:report.lunch.order,price_total:0 +msgid "Total Price" +msgstr "Totaalprijs" + +#. module: lunch +#: view:report.lunch.amount:0 +msgid "Box Amount by User" +msgstr "" + +#. module: lunch +#: field:lunch.cashmove,create_date:0 +msgid "Creation Date" +msgstr "Aanmaakdatum" + +#. module: lunch +#: report:lunch.order:0 +msgid "Name/Date" +msgstr "Naam/Datum" + +#. module: lunch +#: field:lunch.order,descript:0 +msgid "Description Order" +msgstr "Order omschrijving" + +#. module: lunch +#: view:report.lunch.amount:0 +msgid "Box amount in last month" +msgstr "" + +#. module: lunch +#: model:ir.actions.act_window,name:lunch.action_lunch_order_confirm +#: model:ir.actions.act_window,name:lunch.action_lunch_order_confirm_values +#: view:lunch.order:0 view:lunch.order.confirm:0 +msgid "Confirm Order" +msgstr "Bevestig Order" + +#. module: lunch +#: selection:report.lunch.amount,month:0 selection:report.lunch.order,month:0 +msgid "July" +msgstr "Juli" + +#. module: lunch +#: view:lunch.cashmove:0 view:report.lunch.amount:0 view:report.lunch.order:0 +msgid "Box" +msgstr "" + +#. module: lunch +#: view:report.lunch.order:0 +msgid " 365 Days " +msgstr " 365 Dagen " + +#. module: lunch +#: view:report.lunch.amount:0 +msgid " Month-1 " +msgstr " Maand-1 " + +#. module: lunch +#: field:report.lunch.amount,date:0 +msgid "Created Date" +msgstr "Aanmaakdatum" + +#. module: lunch +#: model:ir.actions.act_window,name:lunch.action_lunch_category_form +msgid " Product Categories " +msgstr " Product categorieën " + +#. module: lunch +#: view:lunch.cashbox.clean:0 +msgid "Set to Zero" +msgstr "Zet op nul" + +#. module: lunch +#: model:ir.model,name:lunch.model_lunch_cashmove +msgid "Cash Move" +msgstr "Kas mutatie" + +#. module: lunch +#: view:report.lunch.order:0 +msgid "Tasks performed in last 365 days" +msgstr "Taken uitgevoert de laatste 365 dagen" + +#. module: lunch +#: selection:report.lunch.amount,month:0 selection:report.lunch.order,month:0 +msgid "April" +msgstr "April" + +#. module: lunch +#: selection:report.lunch.amount,month:0 selection:report.lunch.order,month:0 +msgid "September" +msgstr "September" + +#. module: lunch +#: selection:report.lunch.amount,month:0 selection:report.lunch.order,month:0 +msgid "December" +msgstr "December" + +#. module: lunch +#: field:report.lunch.amount,month:0 view:report.lunch.order:0 +#: field:report.lunch.order,month:0 +msgid "Month" +msgstr "Maand" + +#. module: lunch +#: field:lunch.order.confirm,confirm_cashbox:0 +msgid "Name of box" +msgstr "" + +#. module: lunch +#: view:lunch.order.cancel:0 +msgid "Yes" +msgstr "Ja" + +#. module: lunch +#: model:ir.model,name:lunch.model_lunch_category view:lunch.category:0 +#: view:lunch.order:0 field:lunch.order,category:0 +#: field:lunch.product,category_id:0 +msgid "Category" +msgstr "Categorie" + +#. module: lunch +#: view:report.lunch.amount:0 +msgid " Year " +msgstr " Jaar " + +#. module: lunch +#: model:ir.ui.menu,name:lunch.menu_lunch_category_form +msgid "Product Categories" +msgstr "Product categorieën" + +#. module: lunch +#: view:lunch.cashbox.clean:0 view:lunch.order.cancel:0 +msgid "No" +msgstr "Nee" + +#. module: lunch +#: view:lunch.order.confirm:0 +msgid "Orders Confirmation" +msgstr "Order bevestigen" + +#. module: lunch +#: view:lunch.cashbox.clean:0 +msgid "Are you sure you want to reset this cashbox ?" +msgstr "" + +#. module: lunch +#: model:ir.actions.act_window,help:lunch.view_lunch_product_form_installer +msgid "" +"Define all products that the employees can order for the lunch time. If you " +"order lunch at several places, you can use the product categories to split " +"by supplier. It will be easier for the lunch manager to filter lunch orders " +"by categories." +msgstr "" + +#. module: lunch +#: selection:report.lunch.amount,month:0 selection:report.lunch.order,month:0 +msgid "August" +msgstr "Augustus" + +#. module: lunch +#: model:ir.actions.act_window,name:lunch.action_report_lunch_order_all +#: view:report.lunch.order:0 +msgid "Lunch Order Analysis" +msgstr "Lunch orders analyse" + +#. module: lunch +#: selection:report.lunch.amount,month:0 selection:report.lunch.order,month:0 +msgid "June" +msgstr "Juni" + +#. module: lunch +#: field:lunch.cashmove,user_cashmove:0 field:lunch.order,user_id:0 +#: field:report.lunch.amount,user_id:0 field:report.lunch.order,user_id:0 +msgid "User Name" +msgstr "Gebruikersnaam" + +#. module: lunch +#: view:report.lunch.order:0 +msgid "Sales Analysis" +msgstr "Verkoopanalyse" + +#. module: lunch +#: model:ir.ui.menu,name:lunch.menu_lunch_category_root_configuration +msgid "Lunch" +msgstr "Lunch" + +#. module: lunch +#: view:lunch.cashmove:0 view:report.lunch.order:0 +msgid "User" +msgstr "Gebruiker" + +#. module: lunch +#: view:lunch.cashmove:0 field:lunch.order,date:0 +msgid "Date" +msgstr "Datum" + +#. module: lunch +#: selection:report.lunch.amount,month:0 selection:report.lunch.order,month:0 +msgid "November" +msgstr "November" + +#. module: lunch +#: selection:report.lunch.amount,month:0 selection:report.lunch.order,month:0 +msgid "October" +msgstr "Oktober" + +#. module: lunch +#: selection:report.lunch.amount,month:0 selection:report.lunch.order,month:0 +msgid "January" +msgstr "Januari" + +#. module: lunch +#: field:lunch.cashmove,box:0 field:report.lunch.amount,box:0 +msgid "Box Name" +msgstr "" + +#. module: lunch +#: model:ir.model,name:lunch.model_lunch_cashbox_clean +msgid "clean cashbox" +msgstr "" + +#. module: lunch +#: field:lunch.cashmove,active:0 field:lunch.product,active:0 +msgid "Active" +msgstr "Actief" + +#. module: lunch +#: field:report.lunch.order,date:0 +msgid "Date Order" +msgstr "Orderdatum" + +#. module: lunch +#: model:ir.model,name:lunch.model_lunch_cashbox +msgid "Cashbox for Lunch " +msgstr "" + +#. module: lunch +#: model:ir.actions.act_window,name:lunch.action_lunch_cashbox_clean +#: model:ir.actions.act_window,name:lunch.action_lunch_cashbox_clean_values +msgid "Set CashBox to Zero" +msgstr "" + +#. module: lunch +#: view:lunch.product:0 +msgid "General Information" +msgstr "Algemene informatie" + +#. module: lunch +#: view:lunch.order.confirm:0 +msgid "Cancel" +msgstr "Anulleren" + +#. module: lunch +#: model:ir.actions.act_window,name:lunch.action_lunch_cashbox_form +msgid " Cashboxes " +msgstr "" + +#. module: lunch +#: report:lunch.order:0 +msgid "Unit Price" +msgstr "Eenheidsprijs" + +#. module: lunch +#: field:lunch.order,product:0 +msgid "Product" +msgstr "Product" + +#. module: lunch +#: field:lunch.cashmove,name:0 report:lunch.order:0 view:lunch.product:0 +#: field:lunch.product,description:0 +msgid "Description" +msgstr "Omschrijving" + +#. module: lunch +#: selection:report.lunch.amount,month:0 selection:report.lunch.order,month:0 +msgid "May" +msgstr "Mei" + +#. module: lunch +#: field:lunch.order,price:0 field:lunch.product,price:0 +msgid "Price" +msgstr "Prijs" + +#. module: lunch +#: view:lunch.cashmove:0 +msgid "Search CashMove" +msgstr "" + +#. module: lunch +#: view:report.lunch.amount:0 +msgid "Total box" +msgstr "" + +#. module: lunch +#: model:ir.model,name:lunch.model_lunch_product +msgid "Lunch Product" +msgstr "Lunch product" + +#. module: lunch +#: field:lunch.cashbox,sum_remain:0 +msgid "Total Remaining" +msgstr "Totaal overgebleven" + +#. module: lunch +#: view:lunch.order:0 +msgid "Total price" +msgstr "" + +#. module: lunch +#: selection:report.lunch.amount,month:0 selection:report.lunch.order,month:0 +msgid "February" +msgstr "Februari" + +#. module: lunch +#: field:lunch.cashbox,name:0 field:lunch.category,name:0 +#: field:lunch.product,name:0 field:report.lunch.order,box_name:0 +msgid "Name" +msgstr "Naam" + +#. module: lunch +#: view:lunch.cashmove:0 +msgid "Total amount" +msgstr "Totaalbedrag" + +#. module: lunch +#: view:report.lunch.order:0 +msgid "Tasks performed in last 30 days" +msgstr "Taken uitgevoerd in de laatste 30 dagen" + +#. module: lunch +#: view:lunch.category:0 +msgid "Category Related to Products" +msgstr "" + +#. module: lunch +#: model:ir.ui.menu,name:lunch.menu_lunch_cashbox_form view:lunch.cashbox:0 +msgid "Cashboxes" +msgstr "" + +#. module: lunch +#: view:lunch.category:0 report:lunch.order:0 view:lunch.order:0 +msgid "Order" +msgstr "Order" + +#. module: lunch +#: model:ir.actions.report.xml,name:lunch.report_lunch_order +#: model:ir.model,name:lunch.model_lunch_order +#: model:ir.ui.menu,name:lunch.menu_lunch report:lunch.order:0 +msgid "Lunch Order" +msgstr "Luchorder" + +#. module: lunch +#: view:report.lunch.amount:0 +msgid "Box amount in current month" +msgstr "" + +#. module: lunch +#: model:ir.actions.act_window,name:lunch.view_lunch_product_form_installer +msgid "Define Your Lunch Products" +msgstr "Definieer uw lunch producten" + +#. module: lunch +#: view:report.lunch.order:0 +msgid "Tasks during last 7 days" +msgstr "Taken afgelopen 7 dagen" + +#. module: lunch +#: model:ir.actions.act_window,name:lunch.action_report_lunch_amount_tree +#: model:ir.ui.menu,name:lunch.menu_lunch_report_amount_tree +msgid "Cash Position by User" +msgstr "" + +#. module: lunch +#: field:lunch.cashbox,manager:0 +msgid "Manager" +msgstr "Manager" + +#. module: lunch +#: view:report.lunch.order:0 +msgid " 30 Days " +msgstr " 30 Dagen " + +#. module: lunch +#: view:lunch.order:0 +msgid "To Confirm" +msgstr "" + +#. module: lunch +#: field:report.lunch.amount,year:0 view:report.lunch.order:0 +#: field:report.lunch.order,year:0 +msgid "Year" +msgstr "Jaar" + +#. module: lunch +#: model:ir.actions.act_window,name:lunch.action_create_cashbox +msgid "Create Lunch Cash Boxes" +msgstr "" diff --git a/addons/mail/__openerp__.py b/addons/mail/__openerp__.py index e911f24e809..ee22b0c153f 100644 --- a/addons/mail/__openerp__.py +++ b/addons/mail/__openerp__.py @@ -24,23 +24,24 @@ 'version': '1.0', 'category':'Social Network', "sequence": 2, + "summary": "Discussions, Feeds, Alerts", 'description': """ A bussiness oriented Social Networking with a fully-integrated email and message management. ===================================================================== + The Social Networking module provides an unified social network abstraction layer allowing applications to display a complete -communication history on documents.It gives the users the possibility +communication history on documents. It gives the users the possibility to read and send messages and emails in an unified way. It also provides a feeds page combined to a subscription mechanism, that allows to follow documents, and to be constantly updated about recent news. -The main features of the module are : - +The main features of the module are: * a clean and renewed communication history for any OpenERP - document that can act as a discussion topic, + document that can act as a discussion topic, * a discussion mean on documents, * a subscription mechanism to be updated about new messages on interesting documents, @@ -66,11 +67,11 @@ The main features of the module are : 'mail_thread_view.xml', 'mail_group_view.xml', 'res_partner_view.xml', + 'res_users_view.xml', + 'data/mail_data.xml', + 'data/mail_group_data.xml', 'security/mail_security.xml', 'security/ir.model.access.csv', - 'mail_data.xml', - 'mail_group_data.xml', - 'res_users_view.xml', ], 'installable': True, 'auto_install': False, @@ -83,13 +84,15 @@ The main features of the module are : 'static/src/img/email_icong.png', 'static/src/img/_al.png', 'static/src/img/_pincky.png', - 'static/src/img/feeds.png', - 'static/src/img/feeds-hover.png', 'static/src/img/groupdefault.png', + 'static/src/img/attachment.png', + 'static/src/img/checklist.png', + 'static/src/img/formatting.png', ], 'css': [ 'static/src/css/mail.css', 'static/src/css/mail_group.css', + 'static/src/css/mail_compose_message.css', ], 'js': [ 'static/lib/jquery.expander/jquery.expander.js', @@ -99,7 +102,7 @@ The main features of the module are : 'static/src/xml/mail.xml', ], 'demo': [ - 'mail_demo.xml', + 'data/mail_demo.xml', ], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/mail/mail_data.xml b/addons/mail/data/mail_data.xml similarity index 100% rename from addons/mail/mail_data.xml rename to addons/mail/data/mail_data.xml diff --git a/addons/mail/mail_demo.xml b/addons/mail/data/mail_demo.xml similarity index 93% rename from addons/mail/mail_demo.xml rename to addons/mail/data/mail_demo.xml index 1adec42a910..274259e544e 100644 --- a/addons/mail/mail_demo.xml +++ b/addons/mail/data/mail_demo.xml @@ -1,6 +1,6 @@ - + A cool attachment @@ -28,7 +28,7 @@ Internal company announce mail.group - html + html sit amet, consectetur adipiscing elit. Pellentesque et quam sapien, in sagittis tellus. Praesent vel massa sed massa consequat egestas in tristique orci. Praesent iaculis libero et neque vehicula iaculis. Vivamus placerat tincidunt orci ac ornare. Proin ut dolor fringilla velit ultricies consequat. Maecenas sit amet ipsum non leo interdum imperdiet. Donec sapien mi, varius a consequat id, consectetur sit amet nulla. @@ -41,10 +41,9 @@ Nulla turpis leo, rhoncus ut egestas sit amet, consectetur vitae urna. Mauris in - Reply mail.group - html + html tremendous blogpost ! (first comment)]]> comment @@ -52,10 +51,9 @@ Nulla turpis leo, rhoncus ut egestas sit amet, consectetur vitae urna. Mauris in - Reply mail.group - html + html @@ -75,10 +73,9 @@ Would it be possible to learn more about the author ? (second comment)]]> - Reply mail.group - html + html + + + + + All Company + All company users can come here and discuss. + + + Sales + + + All Employees + + + + + + + + Welcome to OpenERP! + Your homepage is a summary of messages you received and key information about documents you follow. + +The top menu bar contains all applications you installed. You can use this <i>Settings</i> menu to intall more applications, activate others features or give access to new users. + +To setup your preferences (name, email signature, avatar), click on the top right corner. + + + + diff --git a/addons/mail/doc/mail_message.rst b/addons/mail/doc/mail_message.rst index e41a772cac8..56244e251bf 100644 --- a/addons/mail/doc/mail_message.rst +++ b/addons/mail/doc/mail_message.rst @@ -3,22 +3,26 @@ mail.message ============ -TODO +Models ++++++++ -mail.group -++++++++++ +``mail.message.common`` is an abstract class for holding the main attributes of a +message object. It could be reused as parent model for any database model +or wizard screen that needs to hold a kind of message. -A mail_group is a collection of users sharing messages in a discussion group. Group users are users that follow the mail group, using the subscription/follow mechanism of OpenSocial. A mail group has nothing in common wih res.users.group. -Additional information on fields: +All internal logic should be in a database-based model while this model +holds the basics of a message. For example, a wizard for writing emails +should inherit from this class and not from mail.message. - - ``member_ids``: user member of the groups are calculated with ``message_get_subscribers`` method from mail.thread - - ``member_count``: calculated with member_ids - - ``is_subscriber``: calculated with member_ids -res.users -+++++++++ +.. versionchanged:: 7.0 -OpenChatter updates the res.users class: - - it adds a preference about sending emails when receiving a notification - - make a new user follow itself automatically - - create a welcome message when creating a new user, to make his arrival in OpenERP more friendly + - ``subtype`` is renamed to ``content_subtype``: usually 'html' or 'plain'. + This field is used to select plain-text or rich-text contents accordingly. + - ``subtype`` is moved to mail.message model. The purpose is to be able to + distinguish message of the same type, such as notifications about creating + or cancelling a record. For example, it is used to add the possibility + to hide notifications in the wall. + +Those changes aim at being able to distinguish the message content to the +message itself. diff --git a/addons/mail/doc/mail_thread.rst b/addons/mail/doc/mail_thread.rst index f15f78156d3..41ea014b06c 100644 --- a/addons/mail/doc/mail_thread.rst +++ b/addons/mail/doc/mail_thread.rst @@ -3,7 +3,25 @@ mail.thread and OpenChatter =========================== -TODO +API ++++ + +Writing messages and notifications +---------------------------------- + +``message_append`` + +Creates a new mail.message through message_create. The new message is attached +to the current mail.thread, containing all the details passed as parameters. +All attachments will be attached to the thread record as well as to the +actual message. + +This method calls message_create that will handle management of subscription +and notifications, and effectively create the message. + +If ``email_from`` is not set or ``type`` not set as 'email', a note message +is created (comment or system notification), without the usual envelope +attributes (sender, recipients, etc.). mail.group ++++++++++ diff --git a/addons/mail/mail_group.py b/addons/mail/mail_group.py index f691d75e0bc..36001ee6074 100644 --- a/addons/mail/mail_group.py +++ b/addons/mail/mail_group.py @@ -36,7 +36,7 @@ class mail_group(osv.osv): A mail_group is a collection of users sharing messages in a discussion group. Group users are users that follow the mail group, using the subscription/follow mechanism of OpenSocial. A mail group has nothing - in common wih res.users.group. + in common with res.users.group. Additional information on fields: - ``member_ids``: user member of the groups are calculated with ``message_get_subscribers`` method from mail.thread @@ -49,12 +49,6 @@ class mail_group(osv.osv): _name = 'mail.group' _inherit = ['mail.thread'] - def action_group_join(self, cr, uid, ids, context={}): - return self.message_subscribe(cr, uid, ids, context=context); - - def action_group_leave(self, cr, uid, ids, context={}): - return self.message_unsubscribe(cr, uid, ids, context=context); - def onchange_photo(self, cr, uid, ids, value, context=None): if not value: return {'value': {'avatar_big': value, 'avatar': value} } @@ -105,7 +99,7 @@ class mail_group(osv.osv): message_obj = self.pool.get('mail.message') for id in ids: lower_date = (DT.datetime.now() - DT.timedelta(days=30)).strftime(tools.DEFAULT_SERVER_DATE_FORMAT) - result[id] = message_obj.search(cr, uid, ['&', '&', ('model', '=', self._name), ('res_id', 'in', ids), ('date', '>=', lower_date)], count=True, context=context) + result[id] = self.message_search(cr, uid, [id], limit=None, domain=[('date', '>=', lower_date)], count=True, context=context) return result def _get_default_photo(self, cr, uid, context=None): @@ -116,19 +110,33 @@ class mail_group(osv.osv): 'name': fields.char('Name', size=64, required=True), 'description': fields.text('Description'), 'responsible_id': fields.many2one('res.users', string='Responsible', - ondelete='set null', required=True, select=1, - help="Responsible of the group that has all rights on the record."), - 'public': fields.boolean('Public', help='This group is visible by non members. Invisible groups can add members through the invite button.'), - 'photo_big': fields.binary('Full-size photo', help='Field holding the full-sized PIL-supported and base64 encoded version of the group image. The photo field is used as an interface for this field.'), - 'photo': fields.function(_get_photo, fnct_inv=_set_photo, string='Photo', type="binary", + ondelete='set null', required=True, select=1, + help="Responsible of the group that has all rights on the record."), + 'public': fields.boolean('Visible by non members', help='This group is visible by non members. \ + Invisible groups can add members through the invite button.'), + 'group_ids': fields.many2many('res.groups', rel='mail_group_res_group_rel', + id1='mail_group_id', id2='groups_id', string='Linked groups', + help="Members of those groups will automatically added as followers. "\ + "Note that they will be able to manage their subscription manually "\ + "if necessary."), + 'photo_big': fields.binary('Full-size photo', + help='Field holding the full-sized PIL-supported and base64 encoded "\ + version of the group image. The photo field is used as an "\ + interface for this field.'), + 'photo': fields.function(_get_photo, fnct_inv=_set_photo, + string='Photo', type="binary", store = { 'mail.group': (lambda self, cr, uid, ids, c={}: ids, ['photo_big'], 10), - }, help='Field holding the automatically resized (128x128) PIL-supported and base64 encoded version of the group image.'), - 'member_ids': fields.function(get_member_ids, fnct_search=search_member_ids, type='many2many', - relation='res.users', string='Group members', multi='get_member_ids'), - 'member_count': fields.function(get_member_ids, type='integer', string='Member count', multi='get_member_ids'), - 'is_subscriber': fields.function(get_member_ids, type='boolean', string='Joined', multi='get_member_ids'), - 'last_month_msg_nbr': fields.function(get_last_month_msg_nbr, type='integer', string='Messages count for last month'), + }, + help='Field holding the automatically resized (128x128) PIL-supported and base64 encoded version of the group image.'), + 'member_ids': fields.function(get_member_ids, fnct_search=search_member_ids, + type='many2many', relation='res.users', string='Group members', multi='get_member_ids'), + 'member_count': fields.function(get_member_ids, type='integer', + string='Member count', multi='get_member_ids'), + 'is_subscriber': fields.function(get_member_ids, type='boolean', + string='Joined', multi='get_member_ids'), + 'last_month_msg_nbr': fields.function(get_last_month_msg_nbr, type='integer', + string='Messages count for last month'), } _defaults = { @@ -136,3 +144,32 @@ class mail_group(osv.osv): 'responsible_id': (lambda s, cr, uid, ctx: uid), 'photo': _get_default_photo, } + + def _subscribe_user_with_group_m2m_command(self, cr, uid, ids, group_ids_command, context=None): + # form: {'group_ids': [(3, 10), (3, 3), (4, 10), (4, 3)]} or {'group_ids': [(6, 0, [ids]} + user_group_ids = [command[1] for command in group_ids_command if command[0] == 4] + user_group_ids += [id for command in group_ids_command if command[0] == 6 for id in command[2]] + # retrieve the user member of those groups + user_ids = [] + res_groups_obj = self.pool.get('res.groups') + for group in res_groups_obj.browse(cr, uid, user_group_ids, context=context): + user_ids += [user.id for user in group.users] + # subscribe the users + return self.message_subscribe(cr, uid, ids, user_ids, context=context) + + def create(self, cr, uid, vals, context=None): + mail_group_id = super(mail_group, self).create(cr, uid, vals, context=context) + if vals.get('group_ids'): + self._subscribe_user_with_group_m2m_command(cr, uid, [mail_group_id], vals.get('group_ids'), context=context) + return mail_group_id + + def write(self, cr, uid, ids, vals, context=None): + if vals.get('group_ids'): + self._subscribe_user_with_group_m2m_command(cr, uid, ids, vals.get('group_ids'), context=context) + return super(mail_group, self).write(cr, uid, ids, vals, context=context) + + def action_group_join(self, cr, uid, ids, context=None): + return self.message_subscribe(cr, uid, ids, context=context) + + def action_group_leave(self, cr, uid, ids, context=None): + return self.message_unsubscribe(cr, uid, ids, context=context) diff --git a/addons/mail/mail_group_data.xml b/addons/mail/mail_group_data.xml deleted file mode 100644 index c2d1762d6ae..00000000000 --- a/addons/mail/mail_group_data.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - All Company - - - Sales - - - - diff --git a/addons/mail/mail_group_view.xml b/addons/mail/mail_group_view.xml index 1a88669d632..bd01e50baa5 100644 --- a/addons/mail/mail_group_view.xml +++ b/addons/mail/mail_group_view.xml @@ -64,6 +64,7 @@ + diff --git a/addons/mail/mail_message.py b/addons/mail/mail_message.py index 301657ba4c2..b96b6e3791e 100644 --- a/addons/mail/mail_message.py +++ b/addons/mail/mail_message.py @@ -30,66 +30,61 @@ import datetime from email.header import decode_header from email.message import Message -import tools +from openerp import SUPERUSER_ID from osv import osv from osv import fields +import pytz +from tools import DEFAULT_SERVER_DATETIME_FORMAT from tools.translate import _ -from openerp import SUPERUSER_ID +import tools _logger = logging.getLogger(__name__) -def format_date_tz(date, tz=None): - if not date: - return 'n/a' - format = tools.DEFAULT_SERVER_DATETIME_FORMAT - return tools.server_to_local_timestamp(date, format, format, tz) - -def truncate_text(text): - lines = text and text.split('\n') or [] - if len(lines) > 3: - res = '\n\t'.join(lines[:3]) + '...' - else: - res = '\n\t'.join(lines) - return res - +""" Some tools for parsing / creating email fields """ def decode(text): """Returns unicode() string conversion of the the given encoded smtp header text""" if text: text = decode_header(text.replace('\r', '')) return ''.join([tools.ustr(x[0], x[1]) for x in text]) -def to_email(text): +def mail_tools_to_email(text): """Return a list of the email addresses found in ``text``""" if not text: return [] return re.findall(r'([^ ,<@]+@[^> ,]+)', text) -class mail_message_common(osv.osv_memory): - """Common abstract class for holding the main attributes of a - message object. It could be reused as parent model for any - database model or wizard screen that needs to hold a kind of - message""" +# TODO: remove that after cleaning +def to_email(text): + return mail_tools_to_email(text) + +class mail_message_common(osv.TransientModel): + """ Common abstract class for holding the main attributes of a + message object. It could be reused as parent model for any + database model or wizard screen that needs to hold a kind of + message. + All internal logic should be in another model while this + model holds the basics of a message. For example, a wizard for writing + emails should inherit from this class and not from mail.message.""" def get_body(self, cr, uid, ids, name, arg, context=None): - if context is None: - context = {} + """ get correct body version: body_html for html messages, and + body_text for plain text messages + """ result = dict.fromkeys(ids, '') for message in self.browse(cr, uid, ids, context=context): - if message.subtype == 'html': + if message.content_subtype == 'html': result[message.id] = message.body_html else: result[message.id] = message.body_text return result def search_body(self, cr, uid, obj, name, args, context=None): - """will receive: - - obj: mail.message object - - name: 'body' - - args: [('body', 'ilike', 'blah')]""" - return ['|', '&', ('subtype', '=', 'html'), ('body_html', args[0][1], args[0][2]), ('body_text', args[0][1], args[0][2])] + # will receive: + # - obj: mail.message object + # - name: 'body' + # - args: [('body', 'ilike', 'blah')] + return ['|', '&', ('content_subtype', '=', 'html'), ('body_html', args[0][1], args[0][2]), ('body_text', args[0][1], args[0][2])] def get_record_name(self, cr, uid, ids, name, arg, context=None): - if context is None: - context = {} result = dict.fromkeys(ids, '') for message in self.browse(cr, uid, ids, context=context): if not message.model or not message.res_id: @@ -116,8 +111,9 @@ class mail_message_common(osv.osv_memory): 'subject': fields.char('Subject', size=512), 'model': fields.char('Related Document Model', size=128, select=1), 'res_id': fields.integer('Related Document ID', select=1), - 'record_name': fields.function(get_record_name, type='string', string='Message Record Name', - help="Name of the record, matching the result of the name_get."), + 'record_name': fields.function(get_record_name, type='string', + string='Message Record Name', + help="Name get of the related document."), 'date': fields.datetime('Date'), 'email_from': fields.char('From', size=128, help='Message sender, taken from user preferences.'), 'email_to': fields.char('To', size=256, help='Message recipients'), @@ -125,104 +121,99 @@ class mail_message_common(osv.osv_memory): 'email_bcc': fields.char('Bcc', size=256, help='Blind carbon copy message recipients'), 'reply_to':fields.char('Reply-To', size=256, help='Preferred response address for the message'), 'headers': fields.text('Message Headers', readonly=1, - help="Full message headers, e.g. SMTP session headers (usually available on inbound messages only)"), + help="Full message headers, e.g. SMTP session headers (usually available on inbound messages only)"), 'message_id': fields.char('Message-Id', size=256, help='Message unique identifier', select=1, readonly=1), 'references': fields.text('References', help='Message references, such as identifiers of previous messages', readonly=1), - 'subtype': fields.char('Message Type', size=32, help="Type of message, usually 'html' or 'plain', used to " - "select plaintext or rich text contents accordingly", readonly=1), + 'content_subtype': fields.char('Message content subtype', size=32, + oldname="subtype", readonly=1, + help="Type of message, usually 'html' or 'plain', used to select "\ + "plain-text or rich-text contents accordingly"), 'body_text': fields.text('Text Contents', help="Plain-text version of the message"), 'body_html': fields.text('Rich-text Contents', help="Rich-text/HTML version of the message"), - 'body': fields.function(get_body, fnct_search = search_body, string='Message Content', type='text', - help="Content of the message. This content equals the body_text field for plain-test messages, and body_html for rich-text/HTML messages. This allows having one field if we want to access the content matching the message subtype."), - 'parent_id': fields.many2one('mail.message', 'Parent Message', help="Parent message, used for displaying as threads with hierarchy", - select=True, ondelete='set null',), - 'child_ids': fields.one2many('mail.message', 'parent_id', 'Child Messages'), + 'body': fields.function(get_body, fnct_search = search_body, type='text', + string='Message Content', store=True, + help="Content of the message. This content equals the body_text field "\ + "for plain-test messages, and body_html for rich-text/HTML "\ + "messages. This allows having one field if we want to access "\ + "the content matching the message content_subtype."), + 'parent_id': fields.many2one('mail.message.common', 'Parent Message', + select=True, ondelete='set null', + help="Parent message, used for displaying as threads with hierarchy"), } _defaults = { - 'subtype': 'plain', + 'content_subtype': 'plain', 'date': (lambda *a: fields.datetime.now()), } -class mail_message(osv.osv): - '''Model holding messages: system notification (replacing res.log - notifications), comments (for OpenSocial feature) and +class mail_message(osv.Model): + """Model holding messages: system notification (replacing res.log + notifications), comments (for OpenChatter feature) and RFC2822 email messages. This model also provides facilities to parse, queue and send new email messages. Type of messages - are differentiated using the 'type' column. - - The ``display_text`` field will have a slightly different - presentation for real emails and for log messages. - ''' + are differentiated using the 'type' column. """ _name = 'mail.message' _inherit = 'mail.message.common' _description = 'Mail Message (email, comment, notification)' _order = 'date desc' - # XXX to review - how to determine action to use? def open_document(self, cr, uid, ids, context=None): + """ Open the message related document. Note that only the document of + ids[0] will be opened. + TODO: how to determine the action to use ? + """ action_data = False - if ids: - msg = self.browse(cr, uid, ids[0], context=context) - model = msg.model - res_id = msg.res_id - - ir_act_window = self.pool.get('ir.actions.act_window') - action_ids = ir_act_window.search(cr, uid, [('res_model', '=', model)]) - if action_ids: - action_data = ir_act_window.read(cr, uid, action_ids[0], context=context) - action_data.update({ - 'domain' : "[('id','=',%d)]"%(res_id), + if not ids: + return action_data + msg = self.browse(cr, uid, ids[0], context=context) + ir_act_window = self.pool.get('ir.actions.act_window') + action_ids = ir_act_window.search(cr, uid, [('res_model', '=', msg.model)], context=context) + if action_ids: + action_data = ir_act_window.read(cr, uid, action_ids[0], context=context) + action_data.update({ + 'domain' : "[('id', '=', %d)]" % (msg.res_id), 'nodestroy': True, 'context': {} }) return action_data - # XXX to review - how to determine action to use? def open_attachment(self, cr, uid, ids, context=None): + """ Open the message related attachments. + TODO: how to determine the action to use ? + """ action_data = False + if not ids: + return action_data action_pool = self.pool.get('ir.actions.act_window') - message = self.browse(cr, uid, ids, context=context)[0] - att_ids = [x.id for x in message.attachment_ids] - action_ids = action_pool.search(cr, uid, [('res_model', '=', 'ir.attachment')]) + messages = self.browse(cr, uid, ids, context=context) + att_ids = [x.id for message in messages for x in message.attachment_ids] + action_ids = action_pool.search(cr, uid, [('res_model', '=', 'ir.attachment')], context=context) if action_ids: action_data = action_pool.read(cr, uid, action_ids[0], context=context) action_data.update({ - 'domain': [('id','in',att_ids)], + 'domain': [('id', 'in', att_ids)], 'nodestroy': True }) return action_data - - def _get_display_text(self, cr, uid, ids, name, arg, context=None): - if context is None: - context = {} - tz = context.get('tz') - result = {} - - # Read message as UID 1 to allow viewing author even if from different company - for message in self.browse(cr, SUPERUSER_ID, ids): - msg_txt = '' - if message.email_from: - msg_txt += _('%s wrote on %s: \n Subject: %s \n\t') % (message.email_from or '/', format_date_tz(message.date, tz), message.subject) - if message.body_text: - msg_txt += truncate_text(message.body_text) - else: - msg_txt = (message.user_id.name or '/') + _(' on ') + format_date_tz(message.date, tz) + ':\n\t' - msg_txt += (message.subject or '') - result[message.id] = msg_txt - return result _columns = { 'type': fields.selection([ ('email', 'email'), ('comment', 'Comment'), ('notification', 'System notification'), - ], 'Type', help="Message type: email for email message, notification for system message, comment for other messages such as user replies"), - 'partner_id': fields.many2one('res.partner', 'Related partner'), + ], 'Type', + help="Message type: email for email message, notification for system "\ + "message, comment for other messages such as user replies"), + 'partner_id': fields.many2one('res.partner', 'Related partner', + help="Deprecated field. Use partner_ids instead."), + 'partner_ids': fields.many2many('res.partner', + 'mail_message_destination_partner_rel', + 'message_id', 'partner_id', 'Destination partners', + help="When sending emails through the social network composition wizard"\ + "you may choose to send a copy of the mail to partners."), 'user_id': fields.many2one('res.users', 'Related User', readonly=1), 'attachment_ids': fields.many2many('ir.attachment', 'message_attachment_rel', 'message_id', 'attachment_id', 'Attachments'), - 'display_text': fields.function(_get_display_text, method=True, type='text', size="512", string='Display Text'), 'mail_server_id': fields.many2one('ir.mail_server', 'Outgoing mail server', readonly=1), 'state': fields.selection([ ('outgoing', 'Outgoing'), @@ -231,8 +222,14 @@ class mail_message(osv.osv): ('exception', 'Delivery Failed'), ('cancel', 'Cancelled'), ], 'Status', readonly=True), - 'auto_delete': fields.boolean('Auto Delete', help="Permanently delete this email after sending it, to save space"), - 'original': fields.binary('Original', help="Original version of the message, as it was sent on the network", readonly=1), + 'auto_delete': fields.boolean('Auto Delete', + help="Permanently delete this email after sending it, to save space"), + 'original': fields.binary('Original', readonly=1, + help="Original version of the message, as it was sent on the network"), + 'parent_id': fields.many2one('mail.message', 'Parent Message', + select=True, ondelete='set null', + help="Parent message, used for displaying as threads with hierarchy"), + 'child_ids': fields.one2many('mail.message', 'parent_id', 'Child Messages'), } _defaults = { @@ -249,72 +246,124 @@ class mail_message(osv.osv): if not cr.fetchone(): cr.execute("""CREATE INDEX mail_message_model_res_id_idx ON mail_message (model, res_id)""") + def check(self, cr, uid, ids, mode, context=None, values=None): + """Restricts the access to a mail.message, according to referred model + """ + if not ids: + return + res_ids = {} + if isinstance(ids, (int, long)): + ids = [ids] + cr.execute('SELECT DISTINCT model, res_id FROM mail_message WHERE id = ANY (%s)', (ids,)) + for rmod, rid in cr.fetchall(): + if not (rmod and rid): + continue + res_ids.setdefault(rmod,set()).add(rid) + if values: + if 'res_model' in values and 'res_id' in values: + res_ids.setdefault(values['res_model'],set()).add(values['res_id']) + + ima_obj = self.pool.get('ir.model.access') + for model, mids in res_ids.items(): + # ignore mail messages that are not attached to a resource anymore when checking access rights + # (resource was deleted but message was not) + mids = self.pool.get(model).exists(cr, uid, mids) + ima_obj.check(cr, uid, model, mode) + self.pool.get(model).check_access_rule(cr, uid, mids, mode, context=context) + + def create(self, cr, uid, values, context=None): + self.check(cr, uid, [], mode='create', context=context, values=values) + return super(mail_message, self).create(cr, uid, values, context) + + def read(self, cr, uid, ids, fields_to_read=None, context=None, load='_classic_read'): + self.check(cr, uid, ids, 'read', context=context) + return super(mail_message, self).read(cr, uid, ids, fields_to_read, context, load) + def copy(self, cr, uid, id, default=None, context=None): """Overridden to avoid duplicating fields that are unique to each email""" if default is None: default = {} - default.update(message_id=False,original=False,headers=False) + self.check(cr, uid, [id], 'read', context=context) + default.update(message_id=False, original=False, headers=False) return super(mail_message,self).copy(cr, uid, id, default=default, context=context) + + def write(self, cr, uid, ids, vals, context=None): + self.check(cr, uid, ids, 'write', context=context, values=vals) + return super(mail_message, self).write(cr, uid, ids, vals, context) - def schedule_with_attach(self, cr, uid, email_from, email_to, subject, body, model=False, email_cc=None, - email_bcc=None, reply_to=False, attachments=None, message_id=False, references=False, - res_id=False, subtype='plain', headers=None, mail_server_id=False, auto_delete=False, - context=None): - """Schedule sending a new email message, to be sent the next time the mail scheduler runs, or - the next time :meth:`process_email_queue` is called explicitly. + def unlink(self, cr, uid, ids, context=None): + self.check(cr, uid, ids, 'unlink', context=context) + return super(mail_message, self).unlink(cr, uid, ids, context) - :param string email_from: sender email address - :param list email_to: list of recipient addresses (to be joined with commas) - :param string subject: email subject (no pre-encoding/quoting necessary) - :param string body: email body, according to the ``subtype`` (by default, plaintext). - If html subtype is used, the message will be automatically converted - to plaintext and wrapped in multipart/alternative. - :param list email_cc: optional list of string values for CC header (to be joined with commas) - :param list email_bcc: optional list of string values for BCC header (to be joined with commas) - :param string model: optional model name of the document this mail is related to (this will also - be used to generate a tracking id, used to match any response related to the - same document) - :param int res_id: optional resource identifier this mail is related to (this will also - be used to generate a tracking id, used to match any response related to the - same document) - :param string reply_to: optional value of Reply-To header - :param string subtype: optional mime subtype for the text body (usually 'plain' or 'html'), - must match the format of the ``body`` parameter. Default is 'plain', - making the content part of the mail "text/plain". - :param dict attachments: map of filename to filecontents, where filecontents is a string - containing the bytes of the attachment - :param dict headers: optional map of headers to set on the outgoing mail (may override the - other headers, including Subject, Reply-To, Message-Id, etc.) - :param int mail_server_id: optional id of the preferred outgoing mail server for this mail - :param bool auto_delete: optional flag to turn on auto-deletion of the message after it has been - successfully sent (default to False) + def schedule_with_attach(self, cr, uid, email_from, email_to, subject, body, model=False, type='email', + email_cc=None, email_bcc=None, reply_to=False, partner_ids=None, attachments=None, + message_id=False, references=False, res_id=False, content_subtype='plain', + headers=None, mail_server_id=False, auto_delete=False, context=None): + """ Schedule sending a new email message, to be sent the next time the + mail scheduler runs, or the next time :meth:`process_email_queue` is + called explicitly. + :param string email_from: sender email address + :param list email_to: list of recipient addresses (to be joined with commas) + :param string subject: email subject (no pre-encoding/quoting necessary) + :param string body: email body, according to the ``content_subtype`` + (by default, plaintext). If html content_subtype is used, the + message will be automatically converted to plaintext and wrapped + in multipart/alternative. + :param list email_cc: optional list of string values for CC header + (to be joined with commas) + :param list email_bcc: optional list of string values for BCC header + (to be joined with commas) + :param string model: optional model name of the document this mail + is related to (this will also be used to generate a tracking id, + used to match any response related to the same document) + :param int res_id: optional resource identifier this mail is related + to (this will also be used to generate a tracking id, used to + match any response related to the same document) + :param string reply_to: optional value of Reply-To header + :param partner_ids: destination partner_ids + :param string content_subtype: optional mime content_subtype for + the text body (usually 'plain' or 'html'), must match the format + of the ``body`` parameter. Default is 'plain', making the content + part of the mail "text/plain". + :param dict attachments: map of filename to filecontents, where + filecontents is a string containing the bytes of the attachment + :param dict headers: optional map of headers to set on the outgoing + mail (may override the other headers, including Subject, + Reply-To, Message-Id, etc.) + :param int mail_server_id: optional id of the preferred outgoing + mail server for this mail + :param bool auto_delete: optional flag to turn on auto-deletion of + the message after it has been successfully sent (default to False) """ if context is None: context = {} if attachments is None: attachments = {} + if partner_ids is None: + partner_ids = [] attachment_obj = self.pool.get('ir.attachment') for param in (email_to, email_cc, email_bcc): if param and not isinstance(param, list): param = [param] msg_vals = { 'subject': subject, - 'date': time.strftime('%Y-%m-%d %H:%M:%S'), + 'date': fields.datetime.now(), 'user_id': uid, 'model': model, 'res_id': res_id, - 'type': 'email', - 'body_text': body if subtype != 'html' else False, - 'body_html': body if subtype == 'html' else False, + 'type': type, + 'body_text': body if content_subtype != 'html' else False, + 'body_html': body if content_subtype == 'html' else False, 'email_from': email_from, 'email_to': email_to and ','.join(email_to) or '', 'email_cc': email_cc and ','.join(email_cc) or '', 'email_bcc': email_bcc and ','.join(email_bcc) or '', + 'partner_ids': partner_ids, 'reply_to': reply_to, 'message_id': message_id, 'references': references, - 'subtype': subtype, + 'content_subtype': content_subtype, 'headers': headers, # serialize the dict on the fly 'mail_server_id': mail_server_id, 'state': 'outgoing', @@ -338,7 +387,10 @@ class mail_message(osv.osv): return email_msg_id def mark_outgoing(self, cr, uid, ids, context=None): - return self.write(cr, uid, ids, {'state':'outgoing'}, context) + return self.write(cr, uid, ids, {'state':'outgoing'}, context=context) + + def cancel(self, cr, uid, ids, context=None): + return self.write(cr, uid, ids, {'state':'cancel'}, context=context) def process_email_queue(self, cr, uid, ids=None, context=None): """Send immediately queued messages, committing after each @@ -357,7 +409,7 @@ class mail_message(osv.osv): if context is None: context = {} if not ids: - filters = [('state', '=', 'outgoing')] + filters = ['&', ('state', '=', 'outgoing'), ('type', '=', 'email')] if 'filters' in context: filters.extend(context['filters']) ids = self.search(cr, uid, filters, context=context) @@ -371,7 +423,7 @@ class mail_message(osv.osv): _logger.exception("Failed processing mail queue") return res - def parse_message(self, message, save_original=False): + def parse_message(self, message, save_original=False, context=None): """Parses a string or email.message.Message representing an RFC-2822 email, and returns a generic dict holding the message details. @@ -394,7 +446,7 @@ class mail_message(osv.osv): 'headers' : { 'X-Mailer': mailer, #.. all X- headers... }, - 'subtype': msg_mime_subtype, + 'content_subtype': msg_mime_subtype, 'body_text': plaintext_body 'body_html': html_body, 'attachments': [('file1', 'bytes'), @@ -428,49 +480,52 @@ class mail_message(osv.osv): msg_txt['message-id'] = message_id _logger.info('Parsing Message without message-id, generating a random one: %s', message_id) - fields = msg_txt.keys() + msg_fields = msg_txt.keys() msg['id'] = message_id msg['message-id'] = message_id - if 'Subject' in fields: + if 'Subject' in msg_fields: msg['subject'] = decode(msg_txt.get('Subject')) - if 'Content-Type' in fields: + if 'Content-Type' in msg_fields: msg['content-type'] = msg_txt.get('Content-Type') - if 'From' in fields: + if 'From' in msg_fields: msg['from'] = decode(msg_txt.get('From') or msg_txt.get_unixfrom()) - if 'To' in fields: + if 'To' in msg_fields: msg['to'] = decode(msg_txt.get('To')) - if 'Delivered-To' in fields: + if 'Delivered-To' in msg_fields: msg['to'] = decode(msg_txt.get('Delivered-To')) - if 'CC' in fields: + if 'CC' in msg_fields: msg['cc'] = decode(msg_txt.get('CC')) - if 'Cc' in fields: + if 'Cc' in msg_fields: msg['cc'] = decode(msg_txt.get('Cc')) - if 'Reply-To' in fields: + if 'Reply-To' in msg_fields: msg['reply'] = decode(msg_txt.get('Reply-To')) - if 'Date' in fields: + if 'Date' in msg_fields: date_hdr = decode(msg_txt.get('Date')) - msg['date'] = dateutil.parser.parse(date_hdr).strftime("%Y-%m-%d %H:%M:%S") + # convert from email timezone to server timezone + date_server_datetime = dateutil.parser.parse(date_hdr).astimezone(pytz.timezone(tools.get_server_timezone())) + date_server_datetime_str = date_server_datetime.strftime(DEFAULT_SERVER_DATETIME_FORMAT) + msg['date'] = date_server_datetime_str - if 'Content-Transfer-Encoding' in fields: + if 'Content-Transfer-Encoding' in msg_fields: msg['encoding'] = msg_txt.get('Content-Transfer-Encoding') - if 'References' in fields: + if 'References' in msg_fields: msg['references'] = msg_txt.get('References') - if 'In-Reply-To' in fields: + if 'In-Reply-To' in msg_fields: msg['in-reply-to'] = msg_txt.get('In-Reply-To') msg['headers'] = {} - msg['subtype'] = 'plain' + msg['content_subtype'] = 'plain' for item in msg_txt.items(): if item[0].startswith('X-'): msg['headers'].update({item[0]: item[1]}) @@ -479,7 +534,7 @@ class mail_message(osv.osv): body = msg_txt.get_payload(decode=True) if 'text/html' in msg.get('content-type', ''): msg['body_html'] = body - msg['subtype'] = 'html' + msg['content_subtype'] = 'html' if body: body = tools.html2plaintext(body) msg['body_text'] = tools.ustr(body, encoding) @@ -488,9 +543,9 @@ class mail_message(osv.osv): if msg_txt.is_multipart() or 'multipart/alternative' in msg.get('content-type', ''): body = "" if 'multipart/alternative' in msg.get('content-type', ''): - msg['subtype'] = 'alternative' + msg['content_subtype'] = 'alternative' else: - msg['subtype'] = 'mixed' + msg['content_subtype'] = 'mixed' for part in msg_txt.walk(): if part.get_content_maintype() == 'multipart': continue @@ -504,7 +559,7 @@ class mail_message(osv.osv): content = tools.ustr(content, encoding) if part.get_content_subtype() == 'html': msg['body_html'] = content - msg['subtype'] = 'html' # html version prevails + msg['content_subtype'] = 'html' # html version prevails body = tools.ustr(tools.html2plaintext(content)) body = body.replace(' ', '') elif part.get_content_subtype() == 'plain': @@ -521,7 +576,7 @@ class mail_message(osv.osv): # for backwards compatibility: msg['body'] = msg['body_text'] - msg['sub_type'] = msg['subtype'] or 'plain' + msg['sub_type'] = msg['content_subtype'] or 'plain' return msg def _postprocess_sent_message(self, cr, uid, message, context=None): @@ -535,10 +590,9 @@ class mail_message(osv.osv): """ if message.auto_delete: self.pool.get('ir.attachment').unlink(cr, uid, - [x.id for x in message.attachment_ids \ - if x.res_model == self._name and \ - x.res_id == message.id], - context=context) + [x.id for x in message.attachment_ids + if x.res_model == self._name and x.res_id == message.id], + context=context) message.unlink() return True @@ -557,8 +611,6 @@ class mail_message(osv.osv): transactions (default: False) :return: True """ - if context is None: - context = {} ir_mail_server = self.pool.get('ir.mail_server') self.write(cr, uid, ids, {'state': 'outgoing'}, context=context) for message in self.browse(cr, uid, ids, context=context): @@ -567,37 +619,45 @@ class mail_message(osv.osv): for attach in message.attachment_ids: attachments.append((attach.datas_fname, base64.b64decode(attach.datas))) - body = message.body_html if message.subtype == 'html' else message.body_text + body = message.body_html if message.content_subtype == 'html' else message.body_text body_alternative = None - subtype_alternative = None - if message.subtype == 'html' and message.body_text: + content_subtype_alternative = None + if message.content_subtype == 'html' and message.body_text: # we have a plain text alternative prepared, pass it to # build_message instead of letting it build one body_alternative = message.body_text - subtype_alternative = 'plain' + content_subtype_alternative = 'plain' + # handle destination_partners + partner_ids_email_to = '' + for partner in message.partner_ids: + partner_ids_email_to += '%s ' % (partner.email or '') + message_email_to = '%s %s' % (partner_ids_email_to, message.email_to or '') + + # build an RFC2822 email.message.Message object and send it + # without queuing msg = ir_mail_server.build_email( email_from=message.email_from, - email_to=to_email(message.email_to), + email_to=mail_tools_to_email(message_email_to), subject=message.subject, body=body, body_alternative=body_alternative, - email_cc=to_email(message.email_cc), - email_bcc=to_email(message.email_bcc), + email_cc=mail_tools_to_email(message.email_cc), + email_bcc=mail_tools_to_email(message.email_bcc), reply_to=message.reply_to, attachments=attachments, message_id=message.message_id, references = message.references, object_id=message.res_id and ('%s-%s' % (message.res_id,message.model)), - subtype=message.subtype, - subtype_alternative=subtype_alternative, + subtype=message.content_subtype, + subtype_alternative=content_subtype_alternative, headers=message.headers and ast.literal_eval(message.headers)) res = ir_mail_server.send_email(cr, uid, msg, mail_server_id=message.mail_server_id.id, context=context) if res: - message.write({'state':'sent', 'message_id': res}) + message.write({'state':'sent', 'message_id': res, 'email_to': message_email_to}) else: - message.write({'state':'exception'}) + message.write({'state':'exception', 'email_to': message_email_to}) message.refresh() if message.state == 'sent': self._postprocess_sent_message(cr, uid, message, context=context) @@ -609,8 +669,6 @@ class mail_message(osv.osv): cr.commit() return True - def cancel(self, cr, uid, ids, context=None): - self.write(cr, uid, ids, {'state':'cancel'}, context=context) - return True + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/mail/mail_message_view.xml b/addons/mail/mail_message_view.xml index 93f899ec148..796aaebf945 100644 --- a/addons/mail/mail_message_view.xml +++ b/addons/mail/mail_message_view.xml @@ -30,17 +30,26 @@ + - + - + + + + + + + + + @@ -70,8 +79,30 @@ - - + + + + + + + + @@ -84,55 +115,60 @@