[MERGE] trunk

bzr revid: abo@openerp.com-20120924175450-ppzenjyecdbabvm5
This commit is contained in:
Antonin Bourguignon 2012-09-24 19:54:50 +02:00
commit 383cb23ec2
6499 changed files with 248307 additions and 188750 deletions

View File

@ -19,11 +19,11 @@
# #
############################################################################## ##############################################################################
{ {
"name" : "eInvoicing", 'name' : 'eInvoicing',
"version" : "1.1", 'version' : '1.1',
"author" : "OpenERP SA", 'author' : 'OpenERP SA',
"category": 'Accounting & Finance', 'category' : 'Accounting & Finance',
"description": """ 'description' : """
Accounting and Financial Management. Accounting and Financial Management.
==================================== ====================================
@ -44,14 +44,13 @@ Creates a dashboard for accountants that includes:
* Company Analysis * Company Analysis
* Graph of Treasury * Graph of Treasury
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 The processes like maintaining of general ledger is done through the defined financial Journals (entry move line orgrouping is maintained through journal)
financial year and for preparation of vouchers there is a module named account_voucher. for a particular financial year and for preparation of vouchers there is a module named account_voucher.
""", """,
'website': 'http://www.openerp.com', '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'], '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'],
'init_xml': [], 'depends' : ['base_setup', 'product', 'analytic', 'process', 'board', 'edi'],
"depends" : ["base_setup", "product", "analytic", "process", "board", "edi"], 'data': [
'update_xml': [
'security/account_security.xml', 'security/account_security.xml',
'security/ir.model.access.csv', 'security/ir.model.access.csv',
'account_menuitem.xml', 'account_menuitem.xml',
@ -64,6 +63,8 @@ financial year and for preparation of vouchers there is a module named account_v
'wizard/account_use_model_view.xml', 'wizard/account_use_model_view.xml',
'account_installer.xml', 'account_installer.xml',
'wizard/account_period_close_view.xml', 'wizard/account_period_close_view.xml',
'wizard/account_reconcile_view.xml',
'wizard/account_unreconcile_view.xml',
'account_view.xml', 'account_view.xml',
'account_report.xml', 'account_report.xml',
'account_financial_report_data.xml', 'account_financial_report_data.xml',
@ -86,14 +87,12 @@ financial year and for preparation of vouchers there is a module named account_v
'wizard/account_journal_select_view.xml', 'wizard/account_journal_select_view.xml',
'wizard/account_change_currency_view.xml', 'wizard/account_change_currency_view.xml',
'wizard/account_validate_move_view.xml', 'wizard/account_validate_move_view.xml',
'wizard/account_unreconcile_view.xml',
'wizard/account_report_general_ledger_view.xml', 'wizard/account_report_general_ledger_view.xml',
'wizard/account_invoice_state_view.xml', 'wizard/account_invoice_state_view.xml',
'wizard/account_report_partner_balance_view.xml', 'wizard/account_report_partner_balance_view.xml',
'wizard/account_report_account_balance_view.xml', 'wizard/account_report_account_balance_view.xml',
'wizard/account_report_aged_partner_balance_view.xml', 'wizard/account_report_aged_partner_balance_view.xml',
'wizard/account_report_partner_ledger_view.xml', 'wizard/account_report_partner_ledger_view.xml',
'wizard/account_reconcile_view.xml',
'wizard/account_reconcile_partner_process_view.xml', 'wizard/account_reconcile_partner_process_view.xml',
'wizard/account_automatic_reconcile_view.xml', 'wizard/account_automatic_reconcile_view.xml',
'wizard/account_financial_report_view.xml', 'wizard/account_financial_report_view.xml',
@ -122,12 +121,20 @@ financial year and for preparation of vouchers there is a module named account_v
'ir_sequence_view.xml', 'ir_sequence_view.xml',
'company_view.xml', 'company_view.xml',
'board_account_view.xml', 'board_account_view.xml',
"edi/invoice_action_data.xml", 'edi/invoice_action_data.xml',
"account_bank_view.xml", 'account_bank_view.xml',
"res_config_view.xml", 'res_config_view.xml',
"account_pre_install.yml" 'account_pre_install.yml'
], ],
'demo_xml': [ 'js': [
'static/src/js/account_move_reconciliation.js',
],
'qweb' : [
"static/src/xml/account_move_reconciliation.xml",
],
'css':['static/src/css/account_move_reconciliation.css'
],
'demo': [
'demo/account_demo.xml', 'demo/account_demo.xml',
'project/project_demo.xml', 'project/project_demo.xml',
'project/analytic_account_demo.xml', 'project/analytic_account_demo.xml',

View File

@ -30,6 +30,8 @@ from osv import fields, osv
import decimal_precision as dp import decimal_precision as dp
from tools.translate import _ from tools.translate import _
from tools.float_utils import float_round from tools.float_utils import float_round
from openerp import SUPERUSER_ID
_logger = logging.getLogger(__name__) _logger = logging.getLogger(__name__)
@ -109,7 +111,7 @@ class account_payment_term_line(osv.osv):
'days': fields.integer('Number of Days', required=True, help="Number of days to add before computation of the day of month." \ 'days': fields.integer('Number of Days', required=True, help="Number of days to add before computation of the day of month." \
"If Date=15/01, Number of Days=22, Day of Month=-1, then the due date is 28/02."), "If Date=15/01, Number of Days=22, Day of Month=-1, then the due date is 28/02."),
'days2': fields.integer('Day of the Month', required=True, help="Day of the month, set -1 for the last day of the current month. If it's positive, it gives the day of the next month. Set 0 for net days (otherwise it's based on the beginning of the month)."), 'days2': fields.integer('Day of the Month', required=True, help="Day of the month, set -1 for the last day of the current month. If it's positive, it gives the day of the next month. Set 0 for net days (otherwise it's based on the beginning of the month)."),
'payment_id': fields.many2one('account.payment.term', 'Payment Term', required=True, select=True), 'payment_id': fields.many2one('account.payment.term', 'Payment Term', required=True, select=True, ondelete='cascade'),
} }
_defaults = { _defaults = {
'value': 'balance', 'value': 'balance',
@ -179,7 +181,7 @@ class account_account_type(osv.osv):
'Balance' will generally be used for cash accounts. 'Balance' will generally be used for cash accounts.
'Detail' will copy each existing journal item of the previous year, even the reconciled ones. 'Detail' will copy each existing journal item of the previous year, even the reconciled ones.
'Unreconciled' will copy only the journal items that were unreconciled on the first day of the new fiscal year."""), 'Unreconciled' will copy only the journal items that were unreconciled on the first day of the new fiscal year."""),
'report_type': fields.function(_get_current_report_type, fnct_inv=_save_report_type, type='selection', string='P&L / BS Category', 'report_type': fields.function(_get_current_report_type, fnct_inv=_save_report_type, type='selection', string='P&L / BS Category', store=True,
selection= [('none','/'), selection= [('none','/'),
('income', _('Profit & Loss (Income account)')), ('income', _('Profit & Loss (Income account)')),
('expense', _('Profit & Loss (Expense account)')), ('expense', _('Profit & Loss (Expense account)')),
@ -582,6 +584,8 @@ class account_account(osv.osv):
def name_get(self, cr, uid, ids, context=None): def name_get(self, cr, uid, ids, context=None):
if not ids: if not ids:
return [] return []
if isinstance(ids, (int, long)):
ids = [ids]
reads = self.read(cr, uid, ids, ['name', 'code'], context=context) reads = self.read(cr, uid, ids, ['name', 'code'], context=context)
res = [] res = []
for record in reads: for record in reads:
@ -597,7 +601,7 @@ class account_account(osv.osv):
if not default: if not default:
default = {} default = {}
default = default.copy() default = default.copy()
default['code'] = (account['code'] or '') + '(copy)' default.update(code=_("%s (copy)") % (account['code'] or ''))
if not local: if not local:
done_list = [] done_list = []
if account.id in done_list: if account.id in done_list:
@ -744,9 +748,11 @@ class account_journal(osv.osv):
'profit_account_id' : fields.many2one('account.account', 'Profit Account'), 'profit_account_id' : fields.many2one('account.account', 'Profit Account'),
'loss_account_id' : fields.many2one('account.account', 'Loss Account'), 'loss_account_id' : fields.many2one('account.account', 'Loss Account'),
'internal_account_id' : fields.many2one('account.account', 'Internal Transfers Account', select=1), 'internal_account_id' : fields.many2one('account.account', 'Internal Transfers Account', select=1),
'cash_control' : fields.boolean('Cash Control', help='If you want the journal should be control at opening/closing, check this option'),
} }
_defaults = { _defaults = {
'cash_control' : False,
'with_last_closing_balance' : False, 'with_last_closing_balance' : False,
'user_id': lambda self, cr, uid, context: uid, 'user_id': lambda self, cr, uid, context: uid,
'company_id': lambda self, cr, uid, c: self.pool.get('res.users').browse(cr, uid, uid, c).company_id.id, 'company_id': lambda self, cr, uid, c: self.pool.get('res.users').browse(cr, uid, uid, c).company_id.id,
@ -776,9 +782,10 @@ class account_journal(osv.osv):
if not default: if not default:
default = {} default = {}
default = default.copy() default = default.copy()
default['code'] = (journal['code'] or '') + '(copy)' default.update(
default['name'] = (journal['name'] or '') + '(copy)' code=_("%s (copy)") % (journal['code'] or ''),
default['sequence_id'] = False name=_("%s (copy)") % (journal['name'] or ''),
sequence_id=False)
return super(account_journal, self).copy(cr, uid, id, default, context=context) return super(account_journal, self).copy(cr, uid, id, default, context=context)
def write(self, cr, uid, ids, vals, context=None): def write(self, cr, uid, ids, vals, context=None):
@ -815,7 +822,7 @@ class account_journal(osv.osv):
if not 'sequence_id' in vals or not vals['sequence_id']: if not 'sequence_id' in vals or not vals['sequence_id']:
# if we have the right to create a journal, we should be able to # if we have the right to create a journal, we should be able to
# create it's sequence. # create it's sequence.
vals.update({'sequence_id': self.create_sequence(cr, 1, vals, context)}) vals.update({'sequence_id': self.create_sequence(cr, SUPERUSER_ID, vals, context)})
return super(account_journal, self).create(cr, uid, vals, context) return super(account_journal, self).create(cr, uid, vals, context)
def name_get(self, cr, user, ids, context=None): def name_get(self, cr, user, ids, context=None):
@ -830,6 +837,10 @@ class account_journal(osv.osv):
@return: Returns a list of tupples containing id, name @return: Returns a list of tupples containing id, name
""" """
if not ids:
return []
if isinstance(ids, (int, long)):
ids = [ids]
result = self.browse(cr, user, ids, context=context) result = self.browse(cr, user, ids, context=context)
res = [] res = []
for rs in result: for rs in result:
@ -1369,7 +1380,7 @@ class account_move(osv.osv):
balance = 0.0 balance = 0.0
for line in line_ids: for line in line_ids:
if line[2]: if line[2]:
balance += (line[2]['debit'] or 0.00)- (line[2]['credit'] or 0.00) balance += (line[2].get('debit',0.00)- (line[2].get('credit',0.00)))
return {'value': {'balance': balance}} return {'value': {'balance': balance}}
def write(self, cr, uid, ids, vals, context=None): def write(self, cr, uid, ids, vals, context=None):
@ -1392,7 +1403,7 @@ class account_move(osv.osv):
if not l[0]: if not l[0]:
l[2].update({ l[2].update({
'reconcile_id':False, 'reconcile_id':False,
'reconcil_partial_id':False, 'reconcile_partial_id':False,
'analytic_lines':False, 'analytic_lines':False,
'invoice':False, 'invoice':False,
'ref':False, 'ref':False,
@ -1854,7 +1865,7 @@ class account_tax(osv.osv):
def get_precision_tax(): def get_precision_tax():
def change_digit_tax(cr): def change_digit_tax(cr):
res = pooler.get_pool(cr.dbname).get('decimal.precision').precision_get(cr, 1, 'Account') res = pooler.get_pool(cr.dbname).get('decimal.precision').precision_get(cr, SUPERUSER_ID, 'Account')
return (16, res+2) return (16, res+2)
return change_digit_tax return change_digit_tax
@ -2332,6 +2343,16 @@ class account_model(osv.osv):
return move_ids return move_ids
def onchange_journal_id(self, cr, uid, ids, journal_id, context=None):
company_id = False
if journal_id:
journal = self.pool.get('account.journal').browse(cr, uid, journal_id, context=context)
if journal.company_id.id:
company_id = journal.company_id.id
return {'value': {'company_id': company_id}}
account_model() account_model()
class account_model_line(osv.osv): class account_model_line(osv.osv):
@ -2510,22 +2531,25 @@ class account_account_template(osv.osv):
'nocreate': False, 'nocreate': False,
} }
def _check_type(self, cr, uid, ids, context=None):
if context is None:
context = {}
accounts = self.browse(cr, uid, ids, context=context)
for account in accounts:
if account.parent_id and account.parent_id.type != 'view':
return False
return True
_check_recursion = check_cycle _check_recursion = check_cycle
_constraints = [ _constraints = [
(_check_recursion, 'Error!\nYou cannot create recursive account templates.', ['parent_id']), (_check_recursion, 'Error!\nYou cannot create recursive account templates.', ['parent_id']),
(_check_type, 'Configuration Error!\nYou cannot define children to an account that has internal type other than "View".', ['type']),
] ]
def create(self, cr, uid, vals, context=None):
if 'parent_id' in vals:
parent = self.read(cr, uid, [vals['parent_id']], ['type'])
if parent and parent[0]['type'] != 'view':
raise osv.except_osv(_('Warning!'), _("You may only select a parent account of type 'View'."))
return super(account_account_template, self).create(cr, uid, vals, context=context)
def write(self, cr, uid, ids, vals, context=None):
if 'parent_id' in vals:
parent = self.read(cr, uid, [vals['parent_id']], ['type'])
if parent and parent[0]['type'] != 'view':
raise osv.except_osv(_('Warning!'), _("You may only select a parent account of type 'View'."))
return super(account_account_template, self).write(cr, uid, ids, vals, context=context)
def name_get(self, cr, uid, ids, context=None): def name_get(self, cr, uid, ids, context=None):
if not ids: if not ids:
return [] return []
@ -2993,6 +3017,7 @@ class wizard_multi_charts_accounts(osv.osv_memory):
_columns = { _columns = {
'company_id':fields.many2one('res.company', 'Company', required=True), 'company_id':fields.many2one('res.company', 'Company', required=True),
'currency_id': fields.many2one('res.currency', 'Currency', help="Currency as per company's country."),
'only_one_chart_template': fields.boolean('Only One Chart Template Available'), 'only_one_chart_template': fields.boolean('Only One Chart Template Available'),
'chart_template_id': fields.many2one('account.chart.template', 'Chart Template', required=True), 'chart_template_id': fields.many2one('account.chart.template', 'Chart Template', required=True),
'bank_accounts_id': fields.one2many('account.bank.accounts.wizard', 'bank_account_id', 'Cash and Banks', required=True), 'bank_accounts_id': fields.one2many('account.bank.accounts.wizard', 'bank_account_id', 'Cash and Banks', required=True),
@ -3003,6 +3028,13 @@ class wizard_multi_charts_accounts(osv.osv_memory):
'purchase_tax_rate': fields.float('Purchase Tax(%)'), 'purchase_tax_rate': fields.float('Purchase Tax(%)'),
'complete_tax_set': fields.boolean('Complete Set of Taxes', help='This boolean helps you to choose if you want to propose to the user to encode the sales and purchase rates or use the usual m2o fields. This last choice assumes that the set of tax defined for the chosen template is complete'), 'complete_tax_set': fields.boolean('Complete Set of Taxes', help='This boolean helps you to choose if you want to propose to the user to encode the sales and purchase rates or use the usual m2o fields. This last choice assumes that the set of tax defined for the chosen template is complete'),
} }
def onchange_company_id(self, cr, uid, ids, company_id, context=None):
currency_id = False
if company_id:
currency_id = self.pool.get('res.company').browse(cr, uid, company_id, context=context).currency_id.id
return {'value': {'currency_id': currency_id}}
def onchange_tax_rate(self, cr, uid, ids, rate=False, context=None): def onchange_tax_rate(self, cr, uid, ids, rate=False, context=None):
return {'value': {'purchase_tax_rate': rate or False}} return {'value': {'purchase_tax_rate': rate or False}}
@ -3033,6 +3065,13 @@ class wizard_multi_charts_accounts(osv.osv_memory):
res.update({'bank_accounts_id': [{'acc_name': _('Cash'), 'account_type': 'cash'},{'acc_name': _('Bank'), 'account_type': 'bank'}]}) res.update({'bank_accounts_id': [{'acc_name': _('Cash'), 'account_type': 'cash'},{'acc_name': _('Bank'), 'account_type': 'bank'}]})
if 'company_id' in fields: if 'company_id' in fields:
res.update({'company_id': self.pool.get('res.users').browse(cr, uid, [uid], context=context)[0].company_id.id}) res.update({'company_id': self.pool.get('res.users').browse(cr, uid, [uid], context=context)[0].company_id.id})
if 'currency_id' in fields:
company_id = res.get('company_id') or False
if company_id:
company_obj = self.pool.get('res.company')
country_id = company_obj.browse(cr, uid, company_id, context=context).country_id.id
currency_id = company_obj.on_change_country(cr, uid, company_id, country_id, context=context)['value']['currency_id']
res.update({'currency_id': currency_id})
ids = self.pool.get('account.chart.template').search(cr, uid, [('visible', '=', True)], context=context) ids = self.pool.get('account.chart.template').search(cr, uid, [('visible', '=', True)], context=context)
if ids: if ids:
@ -3337,19 +3376,18 @@ class wizard_multi_charts_accounts(osv.osv_memory):
ir_values_obj = self.pool.get('ir.values') ir_values_obj = self.pool.get('ir.values')
obj_wizard = self.browse(cr, uid, ids[0]) obj_wizard = self.browse(cr, uid, ids[0])
company_id = obj_wizard.company_id.id company_id = obj_wizard.company_id.id
self.pool.get('res.company').write(cr, uid, [company_id], {'currency_id': obj_wizard.currency_id.id})
# If the floats for sale/purchase rates have been filled, create templates from them # If the floats for sale/purchase rates have been filled, create templates from them
self._create_tax_templates_from_rates(cr, uid, obj_wizard, company_id, context=context) self._create_tax_templates_from_rates(cr, uid, obj_wizard, company_id, context=context)
# Install all the templates objects and generate the real objects # Install all the templates objects and generate the real objects
acc_template_ref, taxes_ref, tax_code_ref = self._install_template(cr, uid, obj_wizard.chart_template_id.id, company_id, code_digits=obj_wizard.code_digits, obj_wizard=obj_wizard, context=context) acc_template_ref, taxes_ref, tax_code_ref = self._install_template(cr, uid, obj_wizard.chart_template_id.id, company_id, code_digits=obj_wizard.code_digits, obj_wizard=obj_wizard, context=context)
# write values of default taxes for product # write values of default taxes for product as super user
if obj_wizard.sale_tax and taxes_ref: if obj_wizard.sale_tax and taxes_ref:
ir_values_obj.set(cr, uid, key='default', key2=False, name="taxes_id", company=company_id, ir_values_obj.set_default(cr, SUPERUSER_ID, 'product.product', "taxes_id", [taxes_ref[obj_wizard.sale_tax.id]], for_all_users=True, company_id=company_id)
models =[('product.product',False)], value=[taxes_ref[obj_wizard.sale_tax.id]])
if obj_wizard.purchase_tax and taxes_ref: if obj_wizard.purchase_tax and taxes_ref:
ir_values_obj.set(cr, uid, key='default', key2=False, name="supplier_taxes_id", company=company_id, ir_values_obj.set_default(cr, SUPERUSER_ID, 'product.product', "supplier_taxes_id", [taxes_ref[obj_wizard.purchase_tax.id]], for_all_users=True, company_id=company_id)
models =[('product.product',False)], value=[taxes_ref[obj_wizard.purchase_tax.id]])
# Create Bank journals # Create Bank journals
self._create_bank_journals_from_o2m(cr, uid, obj_wizard, company_id, acc_template_ref, context=context) self._create_bank_journals_from_o2m(cr, uid, obj_wizard, company_id, acc_template_ref, context=context)

View File

@ -43,11 +43,15 @@ class bank(osv.osv):
"Return the name to use when creating a bank journal" "Return the name to use when creating a bank journal"
return (bank.bank_name or '') + ' ' + bank.acc_number return (bank.bank_name or '') + ' ' + bank.acc_number
def _prepare_name_get(self, cr, uid, bank_type_obj, bank_obj, context=None): def _prepare_name_get(self, cr, uid, bank_dicts, context=None):
"""Add ability to have %(currency_name)s in the format_layout of """Add ability to have %(currency_name)s in the format_layout of res.partner.bank.type"""
res.partner.bank.type""" currency_ids = list(set(data['currency_id'][0] for data in bank_dicts if data['currency_id']))
bank_obj._data[bank_obj.id]['currency_name'] = bank_obj.currency_id and bank_obj.currency_id.name or '' currencies = self.pool.get('res.currency').browse(cr, uid, currency_ids, context=context)
return super(bank, self)._prepare_name_get(cr, uid, bank_type_obj, bank_obj, context=context) currency_name = dict((currency.id, currency.name) for currency in currencies)
for data in bank_dicts:
data['currency_name'] = data['currency_id'] and currency_name[data['currency_id'][0]] or ''
return super(bank, self)._prepare_name_get(cr, uid, bank_dicts, context=context)
def post_write(self, cr, uid, ids, context={}): def post_write(self, cr, uid, ids, context={}):
if isinstance(ids, (int, long)): if isinstance(ids, (int, long)):

View File

@ -304,7 +304,7 @@ class account_bank_statement(osv.osv):
'date': st_line.date, 'date': st_line.date,
'ref': st_line.ref, 'ref': st_line.ref,
'move_id': move_id, 'move_id': move_id,
'partner_id': partner_id, 'partner_id': par_id,
'account_id': acc_id, 'account_id': acc_id,
'credit': credit, 'credit': credit,
'debit': debit, 'debit': debit,
@ -430,7 +430,7 @@ class account_bank_statement(osv.osv):
'name': st_number, 'name': st_number,
'balance_end_real': st.balance_end 'balance_end_real': st.balance_end
}, context=context) }, context=context)
self.message_append_note(cr, uid, [st.id], body=_('Statement %s is confirmed, journal items are created.') % (st_number,), context=context) self.message_post(cr, uid, [st.id], body=_('Statement %s confirmed, journal items were created.') % (st_number,), context=context)
return self.write(cr, uid, ids, {'state':'confirm'}, context=context) return self.write(cr, uid, ids, {'state':'confirm'}, context=context)
def button_cancel(self, cr, uid, ids, context=None): def button_cancel(self, cr, uid, ids, context=None):

View File

@ -15,7 +15,7 @@
<group name="accounting" col="2" colspan="2" attrs="{'invisible': [('company_id','=', False)]}"> <group name="accounting" col="2" colspan="2" attrs="{'invisible': [('company_id','=', False)]}">
<separator string="Accounting Information" colspan="2"/> <separator string="Accounting Information" colspan="2"/>
<field name="journal_id"/> <field name="journal_id"/>
<field name="currency_id"/> <field name="currency_id" groups="base.group_multi_currency"/>
</group> </group>
</group> </group>
</field> </field>
@ -28,7 +28,7 @@
<field name="inherit_id" ref="base.view_partner_bank_tree"/> <field name="inherit_id" ref="base.view_partner_bank_tree"/>
<field name="arch" type="xml"> <field name="arch" type="xml">
<field name="acc_number" position="after"> <field name="acc_number" position="after">
<field name="currency_id"/> <field name="currency_id" groups="base.group_multi_currency"/>
</field> </field>
</field> </field>
</record> </record>

View File

@ -194,12 +194,27 @@ class account_cash_statement(osv.osv):
journal = self.pool.get('account.journal').browse(cr, uid, vals['journal_id'], context=context) journal = self.pool.get('account.journal').browse(cr, uid, vals['journal_id'], context=context)
if journal and (journal.type == 'cash') and not vals.get('details_ids'): if journal and (journal.type == 'cash') and not vals.get('details_ids'):
vals['details_ids'] = [] vals['details_ids'] = []
last_pieces = None
if journal.with_last_closing_balance == True:
domain = [('journal_id', '=', journal.id),
('state', '=', 'confirm')]
last_bank_statement_ids = self.search(cr, uid, domain, limit=1, order='create_date desc', context=context)
if last_bank_statement_ids:
last_bank_statement = self.browse(cr, uid, last_bank_statement_ids[0], context=context)
last_pieces = dict(
(line.pieces, line.number_closing) for line in last_bank_statement.details_ids
)
for value in journal.cashbox_line_ids: for value in journal.cashbox_line_ids:
nested_values = { nested_values = {
'number_closing' : 0, 'number_closing' : 0,
'number_opening' : 0, 'number_opening' : last_pieces.get(value.pieces, 0) if isinstance(last_pieces, dict) else 0,
'pieces' : value.pieces 'pieces' : value.pieces
} }
vals['details_ids'].append([0, False, nested_values]) vals['details_ids'].append([0, False, nested_values])
res_id = super(account_cash_statement, self).create(cr, uid, vals, context=context) res_id = super(account_cash_statement, self).create(cr, uid, vals, context=context)

View File

@ -14,8 +14,12 @@
</footer> </footer>
</footer> </footer>
<separator string="title" position="replace"> <separator string="title" position="replace">
<p class="oe_grey">
Select a configuration package to setup automatically your
taxes and chart of accounts.
</p>
<group> <group>
<field name="charts"/> <field name="charts" class="oe_inline"/>
</group> </group>
<group string="Configure your Fiscal Year" groups="account.group_account_user"> <group string="Configure your Fiscal Year" groups="account.group_account_user">
<field name="has_default_company" invisible="1" /> <field name="has_default_company" invisible="1" />
@ -32,7 +36,7 @@
</record> </record>
<record id="action_account_configuration_installer" model="ir.actions.act_window"> <record id="action_account_configuration_installer" model="ir.actions.act_window">
<field name="name">Configure your Chart of Accounts</field> <field name="name">Configure Accounting Data</field>
<field name="type">ir.actions.act_window</field> <field name="type">ir.actions.act_window</field>
<field name="res_model">account.installer</field> <field name="res_model">account.installer</field>
<field name="view_id" ref="view_account_configuration_installer"/> <field name="view_id" ref="view_account_configuration_installer"/>

View File

@ -214,7 +214,7 @@ class account_invoice(osv.osv):
\n* The \'Cancelled\' state is used when user cancel invoice.'), \n* The \'Cancelled\' state is used when user cancel invoice.'),
'sent': fields.boolean('Sent', readonly=True, help="It indicates that the invoice has been sent."), 'sent': fields.boolean('Sent', readonly=True, help="It indicates that the invoice has been sent."),
'date_invoice': fields.date('Invoice Date', readonly=True, states={'draft':[('readonly',False)]}, select=True, help="Keep empty to use the current date"), 'date_invoice': fields.date('Invoice Date', readonly=True, states={'draft':[('readonly',False)]}, select=True, help="Keep empty to use the current date"),
'date_due': fields.date('Due Date', states={'paid':[('readonly',True)], 'open':[('readonly',True)], 'close':[('readonly',True)]}, select=True, 'date_due': fields.date('Due Date', readonly=True, states={'draft':[('readonly',False)]}, select=True,
help="If you use payment terms, the due date will be computed automatically at the generation "\ help="If you use payment terms, the due date will be computed automatically at the generation "\
"of accounting entries. If you keep the payment term and the due date empty, it means direct payment. The payment term may compute several due dates, for example 50% now, 50% in one month."), "of accounting entries. If you keep the payment term and the due date empty, it means direct payment. The payment term may compute several due dates, for example 50% now, 50% in one month."),
'partner_id': fields.many2one('res.partner', 'Partner', change_default=True, readonly=True, required=True, states={'draft':[('readonly',False)]}), 'partner_id': fields.many2one('res.partner', 'Partner', change_default=True, readonly=True, required=True, states={'draft':[('readonly',False)]}),
@ -253,7 +253,7 @@ class account_invoice(osv.osv):
'currency_id': fields.many2one('res.currency', 'Currency', required=True, readonly=True, states={'draft':[('readonly',False)]}), 'currency_id': fields.many2one('res.currency', 'Currency', required=True, readonly=True, states={'draft':[('readonly',False)]}),
'journal_id': fields.many2one('account.journal', 'Journal', required=True, readonly=True, states={'draft':[('readonly',False)]}), 'journal_id': fields.many2one('account.journal', 'Journal', required=True, readonly=True, states={'draft':[('readonly',False)]}),
'company_id': fields.many2one('res.company', 'Company', required=True, change_default=True, readonly=True, states={'draft':[('readonly',False)]}), 'company_id': fields.many2one('res.company', 'Company', required=True, change_default=True, readonly=True, states={'draft':[('readonly',False)]}),
'check_total': fields.float('Verification Total', digits_compute=dp.get_precision('Account'), states={'open':[('readonly',True)],'close':[('readonly',True)]}), 'check_total': fields.float('Verification Total', digits_compute=dp.get_precision('Account'), readonly=True, states={'draft':[('readonly',False)]}),
'reconciled': fields.function(_reconciled, string='Paid/Reconciled', type='boolean', 'reconciled': fields.function(_reconciled, string='Paid/Reconciled', type='boolean',
store={ store={
'account.invoice': (lambda self, cr, uid, ids, c={}: ids, None, 50), # Check if we can remove ? 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, None, 50), # Check if we can remove ?
@ -395,18 +395,23 @@ class account_invoice(osv.osv):
template_id = template and template[1] or False template_id = template and template[1] or False
res = mod_obj.get_object_reference(cr, uid, 'mail', 'email_compose_message_wizard_form') res = mod_obj.get_object_reference(cr, uid, 'mail', 'email_compose_message_wizard_form')
res_id = res and res[1] or False res_id = res and res[1] or False
ctx = dict(context, active_model='account.invoice', active_id=ids[0]) ctx = dict(context)
ctx.update({'mail.compose.template_id': template_id}) ctx.update({
'default_model': 'account.invoice',
'default_res_id': ids[0],
'default_use_template': True,
'default_template_id': template_id,
})
return { return {
'view_type': 'form', 'view_type': 'form',
'view_mode': 'form', 'view_mode': 'form',
'res_model': 'mail.compose.message', 'res_model': 'mail.compose.message',
'views': [(res_id, 'form')], 'views': [(res_id, 'form')],
'view_id': res_id, 'view_id': res_id,
'type': 'ir.actions.act_window', 'type': 'ir.actions.act_window',
'target': 'new', 'target': 'new',
'context': ctx, 'context': ctx,
'nodestroy': True, 'nodestroy': True,
} }
def confirm_paid(self, cr, uid, ids, context=None): def confirm_paid(self, cr, uid, ids, context=None):
@ -767,17 +772,20 @@ class account_invoice(osv.osv):
if not key in tax_key: if not key in tax_key:
raise osv.except_osv(_('Warning!'), _('Taxes are missing!\nClick on compute button.')) raise osv.except_osv(_('Warning!'), _('Taxes are missing!\nClick on compute button.'))
def compute_invoice_totals(self, cr, uid, inv, company_currency, ref, invoice_move_lines): def compute_invoice_totals(self, cr, uid, inv, company_currency, ref, invoice_move_lines, context=None):
if context is None:
context={}
total = 0 total = 0
total_currency = 0 total_currency = 0
cur_obj = self.pool.get('res.currency') cur_obj = self.pool.get('res.currency')
for i in invoice_move_lines: for i in invoice_move_lines:
if inv.currency_id.id != company_currency: if inv.currency_id.id != company_currency:
context.update({'date': inv.date_invoice or time.strftime('%Y-%m-%d')})
i['currency_id'] = inv.currency_id.id i['currency_id'] = inv.currency_id.id
i['amount_currency'] = i['price'] i['amount_currency'] = i['price']
i['price'] = cur_obj.compute(cr, uid, inv.currency_id.id, i['price'] = cur_obj.compute(cr, uid, inv.currency_id.id,
company_currency, i['price'], company_currency, i['price'],
context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}) context=context)
else: else:
i['amount_currency'] = False i['amount_currency'] = False
i['currency_id'] = False i['currency_id'] = False
@ -887,7 +895,7 @@ class account_invoice(osv.osv):
# create one move line for the total and possibly adjust the other lines amount # create one move line for the total and possibly adjust the other lines amount
total = 0 total = 0
total_currency = 0 total_currency = 0
total, total_currency, iml = self.compute_invoice_totals(cr, uid, inv, company_currency, ref, iml) total, total_currency, iml = self.compute_invoice_totals(cr, uid, inv, company_currency, ref, iml, context=ctx)
acc_id = inv.account_id.id acc_id = inv.account_id.id
name = inv['name'] or '/' name = inv['name'] or '/'
@ -1045,7 +1053,7 @@ class account_invoice(osv.osv):
if obj_inv.type in ('out_invoice', 'out_refund'): if obj_inv.type in ('out_invoice', 'out_refund'):
ctx = self.get_log_context(cr, uid, context=ctx) ctx = self.get_log_context(cr, uid, context=ctx)
message = _("Invoice '%s' is validated.") % name message = _("Invoice '%s' is validated.") % name
self.message_append_note(cr, uid, [inv_id], body=message, context=context) self.message_post(cr, uid, [inv_id], body=message, context=context)
return True return True
def action_cancel(self, cr, uid, ids, *args): def action_cancel(self, cr, uid, ids, *args):
@ -1095,10 +1103,10 @@ class account_invoice(osv.osv):
if not ids: if not ids:
return [] return []
types = { types = {
'out_invoice': 'CI: ', 'out_invoice': 'Invoice ',
'in_invoice': 'SI: ', 'in_invoice': 'Sup. Invoice ',
'out_refund': 'OR: ', 'out_refund': 'Refund ',
'in_refund': 'SR: ', 'in_refund': 'Supplier Refund ',
} }
return [(r['id'], (r['number']) or types[r['type']] + (r['name'] or '')) for r in self.read(cr, uid, ids, ['type', 'number', 'name'], context, load='_classic_write')] return [(r['id'], (r['number']) or types[r['type']] + (r['name'] or '')) for r in self.read(cr, uid, ids, ['type', 'number', 'name'], context, load='_classic_write')]
@ -1127,7 +1135,7 @@ class account_invoice(osv.osv):
return map(lambda x: (0,0,x), lines) return map(lambda x: (0,0,x), lines)
def refund(self, cr, uid, ids, date=None, period_id=None, description=None, journal_id=None): def refund(self, cr, uid, ids, date=None, period_id=None, description=None, journal_id=None):
invoices = self.read(cr, uid, ids, ['name', 'type', 'number', 'reference', 'comment', 'date_due', 'partner_id', 'partner_contact', 'partner_insite', 'partner_ref', 'payment_term', 'account_id', 'currency_id', 'invoice_line', 'tax_line', 'journal_id']) invoices = self.read(cr, uid, ids, ['name', 'type', 'number', 'reference', 'comment', 'date_due', 'partner_id', 'partner_contact', 'partner_insite', 'partner_ref', 'payment_term', 'account_id', 'currency_id', 'invoice_line', 'tax_line', 'journal_id', 'company_id'])
obj_invoice_line = self.pool.get('account.invoice.line') obj_invoice_line = self.pool.get('account.invoice.line')
obj_invoice_tax = self.pool.get('account.invoice.tax') obj_invoice_tax = self.pool.get('account.invoice.tax')
obj_journal = self.pool.get('account.journal') obj_journal = self.pool.get('account.journal')
@ -1175,7 +1183,7 @@ class account_invoice(osv.osv):
'name': description, 'name': description,
}) })
# take the id part of the tuple returned for many2one fields # take the id part of the tuple returned for many2one fields
for field in ('partner_id', for field in ('partner_id', 'company_id',
'account_id', 'currency_id', 'payment_term', 'journal_id'): 'account_id', 'currency_id', 'payment_term', 'journal_id'):
invoice[field] = invoice[field] and invoice[field][0] invoice[field] = invoice[field] and invoice[field][0]
# create the new invoice # create the new invoice
@ -1275,7 +1283,7 @@ class account_invoice(osv.osv):
# TODO: use currency's formatting function # TODO: use currency's formatting function
msg = _("Invoice '%s' is paid partially: %s%s of %s%s (%s%s remaining).") % \ msg = _("Invoice '%s' is paid partially: %s%s of %s%s (%s%s remaining).") % \
(name, pay_amount, code, invoice.amount_total, code, total, code) (name, pay_amount, code, invoice.amount_total, code, total, code)
self.message_append_note(cr, uid, [inv_id], body=msg, context=context) self.message_post(cr, uid, [inv_id], body=msg, context=context)
self.pool.get('account.move.line').reconcile_partial(cr, uid, line_ids, 'manual', context) self.pool.get('account.move.line').reconcile_partial(cr, uid, line_ids, 'manual', context)
# Update the stored value (fields.function), so we write to trigger recompute # Update the stored value (fields.function), so we write to trigger recompute
@ -1288,24 +1296,25 @@ class account_invoice(osv.osv):
def _get_document_type(self, type): def _get_document_type(self, type):
type_dict = { type_dict = {
'out_invoice': 'Customer invoice', # Translation markers will have no effect at runtime, only used to properly flag export
'in_invoice': 'Supplier invoice', 'out_invoice': _('Customer invoice'),
'out_refund': 'Customer Refund', 'in_invoice': _('Supplier invoice'),
'in_refund': 'Supplier Refund', 'out_refund': _('Customer Refund'),
'in_refund': _('Supplier Refund'),
} }
return type_dict.get(type, 'Invoice') return type_dict.get(type, 'Invoice')
def create_send_note(self, cr, uid, ids, context=None): def create_send_note(self, cr, uid, ids, context=None):
for obj in self.browse(cr, uid, ids, context=context): for obj in self.browse(cr, uid, ids, context=context):
self.message_append_note(cr, uid, [obj.id],body=_("%s <b>created</b>.") % (self._get_document_type(obj.type)), context=context) self.message_post(cr, uid, [obj.id], body=_("%s <b>created</b>.") % (_(self._get_document_type(obj.type))), context=context)
def confirm_paid_send_note(self, cr, uid, ids, context=None): def confirm_paid_send_note(self, cr, uid, ids, context=None):
for obj in self.browse(cr, uid, ids, context=context): for obj in self.browse(cr, uid, ids, context=context):
self.message_append_note(cr, uid, [obj.id], body=_("%s <b>paid</b>.") % (self._get_document_type(obj.type)), context=context) self.message_post(cr, uid, [obj.id], body=_("%s <b>paid</b>.") % (_(self._get_document_type(obj.type))), context=context)
def invoice_cancel_send_note(self, cr, uid, ids, context=None): def invoice_cancel_send_note(self, cr, uid, ids, context=None):
for obj in self.browse(cr, uid, ids, context=context): for obj in self.browse(cr, uid, ids, context=context):
self.message_append_note(cr, uid, [obj.id], body=_("%s <b>cancelled</b>.") % (self._get_document_type(obj.type)), context=context) self.message_post(cr, uid, [obj.id], body=_("%s <b>cancelled</b>.") % (_(self._get_document_type(obj.type))), context=context)
account_invoice() account_invoice()
@ -1361,10 +1370,16 @@ class account_invoice_line(osv.osv):
'company_id': fields.related('invoice_id','company_id',type='many2one',relation='res.company',string='Company', store=True, readonly=True), 'company_id': fields.related('invoice_id','company_id',type='many2one',relation='res.company',string='Company', store=True, readonly=True),
'partner_id': fields.related('invoice_id','partner_id',type='many2one',relation='res.partner',string='Partner',store=True) 'partner_id': fields.related('invoice_id','partner_id',type='many2one',relation='res.partner',string='Partner',store=True)
} }
def _default_account_id(self, cr, uid, ids, context=None):
prop = self.pool.get('ir.property').get(cr, uid, 'property_account_income_categ', 'product.category', context=context)
return prop and prop.id or False
_defaults = { _defaults = {
'quantity': 1, 'quantity': 1,
'discount': 0.0, 'discount': 0.0,
'price_unit': _price_unit_default, 'price_unit': _price_unit_default,
'account_id': _default_account_id,
} }
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False): def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
@ -1473,10 +1488,11 @@ class account_invoice_line(osv.osv):
prod = self.pool.get('product.product').browse(cr, uid, product, context=context) prod = self.pool.get('product.product').browse(cr, uid, product, context=context)
prod_uom = self.pool.get('product.uom').browse(cr, uid, uom, context=context) prod_uom = self.pool.get('product.uom').browse(cr, uid, uom, context=context)
if prod.uom_id.category_id.id != prod_uom.category_id.id: if prod.uom_id.category_id.id != prod_uom.category_id.id:
warning = { warning = {
'title': _('Warning!'), 'title': _('Warning!'),
'message': _('The selected unit of measure is not compatible with the unit of measure of the product.') 'message': _('The selected unit of measure is not compatible with the unit of measure of the product.')
} }
res['value'].update({'uos_id': prod.uom_id.id})
return {'value': res['value'], 'warning': warning} return {'value': res['value'], 'warning': warning}
return res return res

View File

@ -127,7 +127,7 @@
<field name="user_id"/> <field name="user_id"/>
<field name="date_due"/> <field name="date_due"/>
<field name="origin"/> <field name="origin"/>
<field name="currency_id"/> <field name="currency_id" groups="base.group_multi_currency"/>
<field name="residual" sum="Residual Amount"/> <field name="residual" sum="Residual Amount"/>
<field name="amount_untaxed" sum="Untaxed Amount"/> <field name="amount_untaxed" sum="Untaxed Amount"/>
<field name="amount_total" sum="Total Amount"/> <field name="amount_total" sum="Total Amount"/>
@ -184,24 +184,30 @@
name="account_id" groups="account.group_account_user"/> name="account_id" groups="account.group_account_user"/>
<field name="journal_id" groups="account.group_account_user" <field name="journal_id" groups="account.group_account_user"
on_change="onchange_journal_id(journal_id, context)" widget="selection"/> on_change="onchange_journal_id(journal_id, context)" widget="selection"/>
<field name="currency_id"/> <field name="currency_id" groups="base.group_multi_currency"/>
</group> </group>
</group> </group>
<notebook> <notebook>
<page string="Invoice"> <page string="Invoice">
<field context="{'partner_id': partner_id, 'price_type': 'price_type' in dir() and price_type or False, 'type': type}" name="invoice_line"> <field context="{'partner_id': partner_id, 'price_type': 'price_type' in dir() and price_type or False, 'type': type}" name="invoice_line">
<tree string="Invoice lines" editable="bottom"> <tree string="Invoice lines" editable="bottom">
<field name="product_id" on_change="product_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, context, parent.company_id)"/> <field name="product_id"
<field domain="[('company_id', '=', parent.company_id), ('journal_id', '=', parent.journal_id), ('type', '&lt;&gt;', 'view')]" name="account_id" on_change="onchange_account_id(product_id,parent.partner_id,parent.type,parent.fiscal_position,account_id)" groups="base.group_account_user"/> on_change="product_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, context, parent.company_id)"/>
<field name="invoice_line_tax_id" view_mode="2" context="{'type':parent.type}" domain="[('parent_id','=',False)]"/> <field name="name"/>
<field domain="[('type','&lt;&gt;','view'), ('company_id', '=', parent.company_id), ('parent_id', '!=', False)]" name="account_analytic_id" groups="analytic.group_analytic_accounting"/> <field name="company_id" groups="base.group_multi_company" readonly="1"/>
<field name="account_id" groups="account.group_account_user"
domain="[('company_id', '=', parent.company_id), ('journal_id', '=', parent.journal_id), ('type', '!=', 'view')]"
on_change="onchange_account_id(product_id, parent.partner_id, parent.type, parent.fiscal_position,account_id)"/>
<field name="account_analytic_id" groups="analytic.group_analytic_accounting"
domain="[('type','!=','view'), ('company_id', '=', parent.company_id), ('parent_id', '!=', False)]"/>
<field name="quantity"/> <field name="quantity"/>
<field name="uos_id" groups="product.group_uom"
on_change="uos_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, context, parent.company_id)"/>
<field name="price_unit"/> <field name="price_unit"/>
<field name="discount" groups="sale.group_discount_per_so_line"/>
<field name="invoice_line_tax_id" widget="many2many_tags" context="{'type':parent.type}"
domain="[('parent_id','=',False),('company_id', '=', parent.company_id)]"/>
<field name="price_subtotal"/> <field name="price_subtotal"/>
<field domain="[('company_id', '=', parent.company_id), ('journal_id', '=', parent.journal_id), ('type', '&lt;&gt;', 'view')]" name="account_id" on_change="onchange_account_id(product_id,parent.partner_id,parent.type,parent.fiscal_position,account_id)" invisible="1"/>
<!-- Removed if subtotal is set -->
<field name="name" invisible="1"/>
<field name="uos_id" invisible="1"/>
</tree> </tree>
</field> </field>
<group class="oe_subtotal_footer oe_right"> <group class="oe_subtotal_footer oe_right">
@ -265,7 +271,7 @@
<field name="debit"/> <field name="debit"/>
<field name="credit"/> <field name="credit"/>
<field name="amount_currency"/> <field name="amount_currency"/>
<field name="currency_id"/> <field name="currency_id" groups="base.group_multi_currency"/>
</tree> </tree>
</field> </field>
</page> </page>
@ -326,8 +332,8 @@
<field domain="[('company_id', '=', company_id),('type','=', 'receivable')]" <field domain="[('company_id', '=', company_id),('type','=', 'receivable')]"
name="account_id" groups="account.group_account_user"/> name="account_id" groups="account.group_account_user"/>
<label for="currency_id"/> <label for="currency_id" groups="base.group_multi_currency"/>
<div> <div groups="base.group_multi_currency">
<field name="currency_id" class="oe_inline"/> <field name="currency_id" class="oe_inline"/>
<!-- note fp: I don't think we need this feature ? <!-- note fp: I don't think we need this feature ?
<button name="%(action_account_change_currency)d" type="action" <button name="%(action_account_change_currency)d" type="action"
@ -342,17 +348,22 @@
<page string="Invoice Lines"> <page string="Invoice Lines">
<field name="invoice_line" nolabel="1" widget="one2many_list" context="{'type': type}"> <field name="invoice_line" nolabel="1" widget="one2many_list" context="{'type': type}">
<tree string="Invoice Lines" editable="bottom"> <tree string="Invoice Lines" editable="bottom">
<field name="invoice_line_tax_id" invisible="1"/> <field name="product_id"
<field name="product_id" /> on_change="product_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, context, parent.company_id)"/>
<field name="name"/> <field name="name"/>
<field name="company_id" groups="base.group_multi_company" readonly="1"/>
<field name="account_id" groups="account.group_account_user" <field name="account_id" groups="account.group_account_user"
domain="[('company_id', '=', parent.company_id), ('journal_id', '=', parent.journal_id), ('type', '&lt;&gt;', 'view')]" domain="[('company_id', '=', parent.company_id), ('journal_id', '=', parent.journal_id), ('type', '!=', 'view')]"
on_change="onchange_account_id(product_id, parent.partner_id, parent.type, parent.fiscal_position,account_id)"/> on_change="onchange_account_id(product_id, parent.partner_id, parent.type, parent.fiscal_position,account_id)"/>
<field name="account_analytic_id" groups="analytic.group_analytic_accounting"
domain="[('type','!=','view'), ('company_id', '=', parent.company_id), ('parent_id', '!=', False)]"/>
<field name="quantity"/> <field name="quantity"/>
<field name="uos_id" groups="product.group_uom" <field name="uos_id" groups="product.group_uom"
on_change="uos_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, context, parent.company_id)"/> on_change="uos_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, context, parent.company_id)"/>
<field name="price_unit"/> <field name="price_unit"/>
<field name="discount" groups="sale.group_discount_per_so_line"/> <field name="discount" groups="sale.group_discount_per_so_line"/>
<field name="invoice_line_tax_id" widget="many2many_tags" context="{'type':parent.type}"
domain="[('parent_id','=',False),('company_id', '=', parent.company_id)]"/>
<field name="price_subtotal"/> <field name="price_subtotal"/>
</tree> </tree>
</field> </field>
@ -418,8 +429,8 @@
<field name="journal_id" groups="base.group_user"/> <field name="journal_id" groups="base.group_user"/>
<field name="debit"/> <field name="debit"/>
<field name="credit"/> <field name="credit"/>
<field name="amount_currency"/> <field name="amount_currency" groups="base.group_multi_currency"/>
<field name="currency_id"/> <field name="currency_id" groups="base.group_multi_currency"/>
</tree> </tree>
</field> </field>
</page> </page>

View File

@ -30,7 +30,7 @@
<menuitem id="menu_analytic" parent="menu_analytic_accounting" name="Accounts" groups="analytic.group_analytic_accounting"/> <menuitem id="menu_analytic" parent="menu_analytic_accounting" name="Accounts" groups="analytic.group_analytic_accounting"/>
<menuitem id="menu_journals" sequence="15" name="Journals" parent="menu_finance_configuration" groups="group_account_manager"/> <menuitem id="menu_journals" sequence="15" name="Journals" parent="menu_finance_configuration" groups="group_account_manager"/>
<menuitem id="menu_configuration_misc" name="Miscellaneous" parent="menu_finance_configuration" sequence="55"/> <menuitem id="menu_configuration_misc" name="Miscellaneous" parent="menu_finance_configuration" sequence="55"/>
<menuitem id="base.menu_action_currency_form" parent="menu_configuration_misc" sequence="20" groups="base.group_no_one"/> <menuitem id="base.menu_action_currency_form" name="Currencies" parent="menu_configuration_misc" sequence="20" groups="base.group_no_one"/>
<menuitem id="menu_finance_generic_reporting" name="Generic Reporting" parent="menu_finance_reports" sequence="100"/> <menuitem id="menu_finance_generic_reporting" name="Generic Reporting" parent="menu_finance_reports" sequence="100"/>
<menuitem id="menu_finance_entries" name="Journal Entries" parent="menu_finance" sequence="5" groups="group_account_user,group_account_manager"/> <menuitem id="menu_finance_entries" name="Journal Entries" parent="menu_finance" sequence="5" groups="group_account_user,group_account_manager"/>
<menuitem id="menu_account_reports" name="Financial Reports" parent="menu_finance_configuration" sequence="30" /> <menuitem id="menu_account_reports" name="Financial Reports" parent="menu_finance_configuration" sequence="30" />
@ -44,7 +44,7 @@
<menuitem id="menu_finance_periodical_processing_billing" name="Billing" parent="menu_finance_periodical_processing" sequence="35"/> <menuitem id="menu_finance_periodical_processing_billing" name="Billing" parent="menu_finance_periodical_processing" sequence="35"/>
<menuitem id="next_id_22" name="Partners" parent="menu_finance_generic_reporting" sequence="1"/> <menuitem id="next_id_22" name="Partners" parent="menu_finance_generic_reporting" sequence="1"/>
<menuitem id="menu_multi_currency" name="Multi-Currencies" parent="menu_finance_generic_reporting" sequence="10"/> <menuitem id="menu_multi_currency" name="Multi-Currencies" parent="menu_finance_generic_reporting" sequence="10" groups="base.group_multi_currency"/>
<menuitem <menuitem
parent="account.menu_finance_legal_statement" parent="account.menu_finance_legal_statement"
id="final_accounting_reports" id="final_accounting_reports"

View File

@ -215,8 +215,10 @@ class account_move_line(osv.osv):
def _default_get(self, cr, uid, fields, context=None): def _default_get(self, cr, uid, fields, context=None):
if context is None: if context is None:
context = {} context = {}
if not context.get('journal_id', False) and context.get('search_default_journal_id', False): if not context.get('journal_id', False):
context['journal_id'] = context.get('search_default_journal_id') context['journal_id'] = context.get('search_default_journal_id')
if not context.get('period_id', False):
context['period_id'] = context.get('search_default_period_id')
account_obj = self.pool.get('account.account') account_obj = self.pool.get('account.account')
period_obj = self.pool.get('account.period') period_obj = self.pool.get('account.period')
journal_obj = self.pool.get('account.journal') journal_obj = self.pool.get('account.journal')
@ -226,6 +228,9 @@ class account_move_line(osv.osv):
partner_obj = self.pool.get('res.partner') partner_obj = self.pool.get('res.partner')
currency_obj = self.pool.get('res.currency') currency_obj = self.pool.get('res.currency')
context = self.convert_to_period(cr, uid, context) context = self.convert_to_period(cr, uid, context)
#pass the right context when search_defaul_journal_id
if context.get('search_default_journal_id',False):
context['journal_id'] = context.get('search_default_journal_id')
# Compute simple values # Compute simple values
data = super(account_move_line, self).default_get(cr, uid, fields, context=context) data = super(account_move_line, self).default_get(cr, uid, fields, context=context)
# Starts: Manual entry from account.move form # Starts: Manual entry from account.move form
@ -480,7 +485,7 @@ class account_move_line(osv.osv):
'debit': fields.float('Debit', digits_compute=dp.get_precision('Account')), 'debit': fields.float('Debit', digits_compute=dp.get_precision('Account')),
'credit': fields.float('Credit', digits_compute=dp.get_precision('Account')), 'credit': fields.float('Credit', digits_compute=dp.get_precision('Account')),
'account_id': fields.many2one('account.account', 'Account', required=True, ondelete="cascade", domain=[('type','<>','view'), ('type', '<>', 'closed')], select=2), 'account_id': fields.many2one('account.account', 'Account', required=True, ondelete="cascade", domain=[('type','<>','view'), ('type', '<>', 'closed')], select=2),
'move_id': fields.many2one('account.move', 'Move', ondelete="cascade", help="The move of this entry line.", select=2, required=True), 'move_id': fields.many2one('account.move', 'Journal Entry', ondelete="cascade", help="The move of this entry line.", select=2, required=True),
'narration': fields.related('move_id','narration', type='text', relation='account.move', string='Internal Note'), 'narration': fields.related('move_id','narration', type='text', relation='account.move', string='Internal Note'),
'ref': fields.related('move_id', 'ref', string='Reference', type='char', size=64, store=True), 'ref': fields.related('move_id', 'ref', string='Reference', type='char', size=64, store=True),
'statement_id': fields.many2one('account.bank.statement', 'Statement', help="The bank statement used for bank reconciliation", select=1), 'statement_id': fields.many2one('account.bank.statement', 'Statement', help="The bank statement used for bank reconciliation", select=1),
@ -703,7 +708,9 @@ class account_move_line(osv.osv):
context = {} context = {}
if context and context.get('next_partner_only', False): if context and context.get('next_partner_only', False):
if not context.get('partner_id', False): if not context.get('partner_id', False):
partner = self.get_next_partner_only(cr, uid, offset, context) partner = self.list_partners_to_reconcile(cr, uid, context=context)
if partner:
partner = partner[0]
else: else:
partner = context.get('partner_id', False) partner = context.get('partner_id', False)
if not partner: if not partner:
@ -711,26 +718,26 @@ class account_move_line(osv.osv):
args.append(('partner_id', '=', partner[0])) args.append(('partner_id', '=', partner[0]))
return super(account_move_line, self).search(cr, uid, args, offset, limit, order, context, count) return super(account_move_line, self).search(cr, uid, args, offset, limit, order, context, count)
def get_next_partner_only(self, cr, uid, offset=0, context=None): def list_partners_to_reconcile(self, cr, uid, context=None):
cr.execute( cr.execute(
""" """
SELECT p.id SELECT partner_id
FROM res_partner p FROM (
RIGHT JOIN ( SELECT l.partner_id, p.last_reconciliation_date, SUM(l.debit) AS debit, SUM(l.credit) AS credit
SELECT l.partner_id AS partner_id, SUM(l.debit) AS debit, SUM(l.credit) AS credit
FROM account_move_line l FROM account_move_line l
LEFT JOIN account_account a ON (a.id = l.account_id) RIGHT JOIN account_account a ON (a.id = l.account_id)
LEFT JOIN res_partner p ON (l.partner_id = p.id) RIGHT JOIN res_partner p ON (l.partner_id = p.id)
WHERE a.reconcile IS TRUE WHERE a.reconcile IS TRUE
AND l.reconcile_id IS NULL AND l.reconcile_id IS NULL
AND (p.last_reconciliation_date IS NULL OR l.date > p.last_reconciliation_date) AND (p.last_reconciliation_date IS NULL OR l.date > p.last_reconciliation_date)
AND l.state <> 'draft' AND l.state <> 'draft'
GROUP BY l.partner_id GROUP BY l.partner_id, p.last_reconciliation_date
) AS s ON (p.id = s.partner_id) ) AS s
WHERE debit > 0 AND credit > 0 WHERE debit > 0 AND credit > 0
ORDER BY p.last_reconciliation_date LIMIT 1 OFFSET %s""", (offset, ) ORDER BY last_reconciliation_date""")
) ids = cr.fetchall()
return cr.fetchone() ids = len(ids) and [x[0] for x in ids] or []
return self.pool.get('res.partner').name_get(cr, uid, ids, context=context)
def reconcile_partial(self, cr, uid, ids, type='auto', context=None, writeoff_acc_id=False, writeoff_period_id=False, writeoff_journal_id=False): def reconcile_partial(self, cr, uid, ids, type='auto', context=None, writeoff_acc_id=False, writeoff_period_id=False, writeoff_journal_id=False):
move_rec_obj = self.pool.get('account.move.reconcile') move_rec_obj = self.pool.get('account.move.reconcile')
@ -910,8 +917,8 @@ class account_move_line(osv.osv):
if lines and lines[0]: if lines and lines[0]:
partner_id = lines[0].partner_id and lines[0].partner_id.id or False partner_id = lines[0].partner_id and lines[0].partner_id.id or False
if partner_id and context and context.get('stop_reconcile', False): if not partner_obj.has_something_to_reconcile(cr, uid, partner_id, context=context):
partner_obj.write(cr, uid, [partner_id], {'last_reconciliation_date': time.strftime('%Y-%m-%d %H:%M:%S')}) partner_obj.mark_as_reconciled(cr, uid, [partner_id], context=context)
return r_id return r_id
def view_header_get(self, cr, user, view_id, view_type, context=None): def view_header_get(self, cr, user, view_id, view_type, context=None):
@ -926,6 +933,8 @@ class account_move_line(osv.osv):
return res return res
if (not context.get('journal_id', False)) or (not context.get('period_id', False)): if (not context.get('journal_id', False)) or (not context.get('period_id', False)):
return False return False
if context.get('search_default_journal_id', False):
context['journal_id'] = context.get('search_default_journal_id')
cr.execute('SELECT code FROM account_journal WHERE id = %s', (context['journal_id'], )) cr.execute('SELECT code FROM account_journal WHERE id = %s', (context['journal_id'], ))
j = cr.fetchone()[0] or '' j = cr.fetchone()[0] or ''
cr.execute('SELECT code FROM account_period WHERE id = %s', (context['period_id'], )) cr.execute('SELECT code FROM account_period WHERE id = %s', (context['period_id'], ))

View File

@ -101,28 +101,29 @@
<field name="model">account.period</field> <field name="model">account.period</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="Account Period" version="7.0"> <form string="Account Period" version="7.0">
<header> <header>
<button name="action_draft" states="done" string="Set to Draft" type="object" groups="account.group_account_manager"/> <button string="Close Period" name="%(account.action_account_period_close)d" type="action" class="oe_highlight" states="draft"/>
<field name="state" widget="statusbar" nolabel="1"/> <button name="action_draft" states="done" string="Set to Draft" type="object" groups="account.group_account_manager"/>
</header> <field name="state" widget="statusbar" nolabel="1"/>
<sheet> </header>
<group> <sheet>
<group> <group>
<field name="name"/> <group>
<field name="fiscalyear_id" widget="selection"/> <field name="name"/>
<label for="date_start" string="Duration"/> <field name="fiscalyear_id" widget="selection"/>
<div> <label for="date_start" string="Duration"/>
<field name="date_start" class="oe_inline" nolabel="1"/> - <div>
<field name="date_stop" nolabel="1" class="oe_inline"/> <field name="date_start" class="oe_inline" nolabel="1"/> -
</div> <field name="date_stop" nolabel="1" class="oe_inline"/>
</group> </div>
<group> </group>
<field name="code"/> <group>
<field name="special"/> <field name="code"/>
<field name="company_id" widget="selection" groups="base.group_multi_company"/> <field name="special"/>
</group> <field name="company_id" widget="selection" groups="base.group_multi_company"/>
</group> </group>
</sheet> </group>
</sheet>
</form> </form>
</field> </field>
</record> </record>
@ -181,7 +182,7 @@
<form string="Account" version="7.0"> <form string="Account" version="7.0">
<label for="code" class="oe_edit_only" string="Account Code and Name"/> <label for="code" class="oe_edit_only" string="Account Code and Name"/>
<h1> <h1>
<field name="code" class="oe_inline" placeholder="Account code" style="width: 6em"/> - <field name="code" class="oe_inline" placeholder="Account code" style="width: 6em"/> -
<field name="name" class="oe_inline" placeholder="Account name"/> <field name="name" class="oe_inline" placeholder="Account name"/>
</h1> </h1>
<group> <group>
@ -204,7 +205,7 @@
attrs="{'invisible':[('type','!=','consolidation')]}" attrs="{'invisible':[('type','!=','consolidation')]}"
widget="many2many_tags"/> widget="many2many_tags"/>
</group> </group>
<group> <group groups="base.group_multi_currency">
<field name="currency_id"/> <field name="currency_id"/>
<field name="currency_mode" attrs="{'readonly': [('currency_id','=',False)]}"/> <field name="currency_mode" attrs="{'readonly': [('currency_id','=',False)]}"/>
</group> </group>
@ -252,16 +253,6 @@
</tree> </tree>
</field> </field>
</record> </record>
<record id="view_treasory_graph" model="ir.ui.view">
<field name="name">account.treasury.graph</field>
<field name="model">account.account</field>
<field name="arch" type="xml">
<graph string="Treasury Analysis" type="bar">
<field name="name"/>
<field name="balance" operator="+"/>
</graph>
</field>
</record>
<record id="action_account_form" model="ir.actions.act_window"> <record id="action_account_form" model="ir.actions.act_window">
<field name="name">Accounts</field> <field name="name">Accounts</field>
<field name="res_model">account.account</field> <field name="res_model">account.account</field>
@ -489,7 +480,7 @@
<group> <group>
<field name="default_debit_account_id" attrs="{'required':[('type','in', ('cash', 'bank'))]}" domain="[('type','&lt;&gt;','view'),('type','&lt;&gt;','consolidation')]"/> <field name="default_debit_account_id" attrs="{'required':[('type','in', ('cash', 'bank'))]}" domain="[('type','&lt;&gt;','view'),('type','&lt;&gt;','consolidation')]"/>
<field name="default_credit_account_id" attrs="{'required':[('type','in',('cash', 'bank'))]}" domain="[('type','&lt;&gt;','view'),('type','&lt;&gt;','consolidation')]"/> <field name="default_credit_account_id" attrs="{'required':[('type','in',('cash', 'bank'))]}" domain="[('type','&lt;&gt;','view'),('type','&lt;&gt;','consolidation')]"/>
<field name="currency"/> <field name="currency" groups="base.group_multi_currency"/>
<field name="company_id" groups="base.group_multi_company"/> <field name="company_id" groups="base.group_multi_company"/>
</group> </group>
</group> </group>
@ -515,7 +506,7 @@
<separator colspan="4" string="Accounts Allowed (empty for no control)"/> <separator colspan="4" string="Accounts Allowed (empty for no control)"/>
<field colspan="4" name="account_control_ids" nolabel="1"/> <field colspan="4" name="account_control_ids" nolabel="1"/>
</page> </page>
<page string="Cash Registers" attrs="{'invisible':[('type', '!=', 'cash')]}"> <page string="Cash Registers">
<group> <group>
<group string="Accounts"> <group string="Accounts">
<field name="profit_account_id"/> <field name="profit_account_id"/>
@ -524,10 +515,11 @@
</group> </group>
<group string="Miscellaneous"> <group string="Miscellaneous">
<field name="with_last_closing_balance"/> <field name="with_last_closing_balance"/>
<field name="cash_control"/>
</group> </group>
</group> </group>
<separator string="Available Coins" colspan="4" /> <separator string="Available Coins" colspan="4" attrs="{'invisible' : [('cash_control', '=', False)] }"/>
<field name="cashbox_line_ids" nolabel="1" string="Unit Of Currency Definition" colspan="4"> <field name="cashbox_line_ids" nolabel="1" string="Unit Of Currency Definition" colspan="4" attrs="{'invisible' : [('cash_control', '=', False)]}">
<tree string="CashBox Lines" editable="bottom"> <tree string="CashBox Lines" editable="bottom">
<field name="pieces" /> <field name="pieces" />
</tree> </tree>
@ -1047,7 +1039,26 @@
Entries lines Entries lines
--> -->
<record id="view_move_line_tree" model="ir.ui.view"> <record id="view_move_line_tree_reconcile" model="ir.ui.view">
<field name="name">account.move.line.reconcile.tree</field>
<field name="model">account.move.line</field>
<field eval="24" name="priority"/>
<field name="arch" type="xml">
<tree colors="red:state == 'draft';black:state == 'valid'" string="Journal Items to Reconcile" create="false">
<field name="date"/>
<field name="move_id"/>
<field name="ref"/>
<field name="name"/>
<field name="partner_id"/>
<field name="account_id"/>
<field name="reconcile_partial_id"/>
<field name="debit" sum="Total debit"/>
<field name="credit" sum="Total credit"/>
</tree>
</field>
</record>
<record id="view_move_line_tree" model="ir.ui.view">
<field name="name">account.move.line.tree</field> <field name="name">account.move.line.tree</field>
<field name="model">account.move.line</field> <field name="model">account.move.line</field>
<field eval="4" name="priority"/> <field eval="4" name="priority"/>
@ -1067,7 +1078,7 @@
<field name="account_tax_id"/> <field name="account_tax_id"/>
<field name="analytic_account_id" groups="analytic.group_analytic_accounting" domain="[('parent_id','!=',False)]"/> <field name="analytic_account_id" groups="analytic.group_analytic_accounting" domain="[('parent_id','!=',False)]"/>
<field name="amount_currency" attrs="{'readonly':[('state','=','valid')]}"/> <field name="amount_currency" attrs="{'readonly':[('state','=','valid')]}"/>
<field name="currency_id" attrs="{'readonly':[('state','=','valid')]}"/> <field name="currency_id" attrs="{'readonly':[('state','=','valid')]}" groups="base.group_multi_currency"/>
<field name="reconcile_partial_id"/> <field name="reconcile_partial_id"/>
<field name="reconcile_id"/> <field name="reconcile_id"/>
<field name="state"/> <field name="state"/>
@ -1081,65 +1092,65 @@
<field eval="2" name="priority"/> <field eval="2" name="priority"/>
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="Journal Item" version="7.0"> <form string="Journal Item" version="7.0">
<sheet> <sheet>
<group> <group>
<group> <group>
<field name="name"/> <field name="name"/>
<field name="ref"/> <field name="ref"/>
<field name="partner_id" on_change="onchange_partner_id(False,partner_id,account_id,debit,credit,date)"/> <field name="partner_id" on_change="onchange_partner_id(False,partner_id,account_id,debit,credit,date)"/>
</group> </group>
<group> <group>
<field name="journal_id"/> <field name="journal_id"/>
<field name="period_id"/> <field name="period_id"/>
<field name="company_id" required="1" groups="base.group_multi_company"/> <field name="company_id" required="1" groups="base.group_multi_company"/>
</group> </group>
</group> </group>
<notebook colspan="4"> <notebook colspan="4">
<page string="Information"> <page string="Information">
<group> <group>
<group string="Amount"> <group string="Amount">
<field name="account_id" domain="[('company_id', '=', company_id), ('type','&lt;&gt;','view'), ('type','&lt;&gt;','consolidation')]"/> <field name="account_id" domain="[('company_id', '=', company_id), ('type','&lt;&gt;','view'), ('type','&lt;&gt;','consolidation')]"/>
<field name="debit"/> <field name="debit"/>
<field name="credit"/> <field name="credit"/>
<field name="quantity"/> <field name="quantity"/>
</group> </group>
<group string="Accounting Documents"> <group string="Accounting Documents">
<field name="invoice" readonly="True"/> <field name="invoice" readonly="True"/>
<field name="move_id" required="False"/> <field name="move_id" required="False"/>
<field name="statement_id" readonly="True"/> <field name="statement_id" readonly="True"/>
</group> </group>
<group string="Dates"> <group string="Dates">
<field name="date"/> <field name="date"/>
<field name="date_maturity"/> <field name="date_maturity"/>
<field name="date_created" readonly="True"/> <field name="date_created" readonly="True"/>
</group> </group>
<group string="Taxes"> <group string="Taxes">
<field name="tax_code_id"/> <field name="tax_code_id"/>
<field name="tax_amount"/> <field name="tax_amount"/>
<field name="account_tax_id" domain="[('parent_id','=',False)]"/> <field name="account_tax_id" domain="[('parent_id','=',False)]"/>
</group> </group>
<group attrs="{'readonly':[('state','=','valid')]}" string="Currency"> <group attrs="{'readonly':[('state','=','valid')]}" string="Currency" groups="base.group_multi_currency">
<field name="currency_id"/> <field name="currency_id"/>
<field name="amount_currency"/> <field name="amount_currency"/>
</group> </group>
<group string="Reconciliation"> <group string="Reconciliation">
<field name="reconcile_id"/> <field name="reconcile_id"/>
<field name="reconcile_partial_id"/> <field name="reconcile_partial_id"/>
</group> </group>
<group string="States"> <group string="States">
<field name="state"/> <field name="state"/>
<field name="blocked"/> <field name="blocked"/>
</group> </group>
<group groups="analytic.group_analytic_accounting" string="Analytic"> <group groups="analytic.group_analytic_accounting" string="Analytic">
<field name="analytic_account_id" domain="[('parent_id','!=',False)]"/> <field name="analytic_account_id" domain="[('parent_id','!=',False)]"/>
</group> </group>
</group> </group>
<field name="narration" colspan="4" nolabel="1" placeholder="Add an internal note..."/> <field name="narration" colspan="4" nolabel="1" placeholder="Add an internal note..."/>
</page> </page>
<page string="Analytic Lines" groups="analytic.group_analytic_accounting"> <page string="Analytic Lines" groups="analytic.group_analytic_accounting">
<field name="analytic_lines" context="{'default_general_account_id':account_id, 'default_name': name, 'default_date':date, 'amount': (debit or 0.0)-(credit or 0.0)}"/> <field name="analytic_lines" context="{'default_general_account_id':account_id, 'default_name': name, 'default_date':date, 'amount': (debit or 0.0)-(credit or 0.0)}"/>
</page> </page>
</notebook> </notebook>
</sheet> </sheet>
</form> </form>
</field> </field>
@ -1166,8 +1177,8 @@
<field name="credit"/> <field name="credit"/>
<separator colspan="4" string="Optional Information"/> <separator colspan="4" string="Optional Information"/>
<field name="currency_id"/> <field name="currency_id" groups="base.group_multi_currency"/>
<field name="amount_currency"/> <field name="amount_currency" groups="base.group_multi_currency"/>
<field name="quantity"/> <field name="quantity"/>
<field name="move_id" required="False"/> <field name="move_id" required="False"/>
<newline/> <newline/>
@ -1348,7 +1359,7 @@
<field name="date"/> <field name="date"/>
<field name="to_check"/> <field name="to_check"/>
<field name="amount" invisible="1"/> <field name="amount" invisible="1"/>
</group> </group>
</group> </group>
<notebook> <notebook>
<page string="Journal Items"> <page string="Journal Items">
@ -1394,7 +1405,7 @@
<field name="account_tax_id" domain="[('parent_id','=',False)]"/> <field name="account_tax_id" domain="[('parent_id','=',False)]"/>
</group> </group>
<group string="Currency"> <group string="Currency" groups="base.group_multi_currency">
<field name="currency_id"/> <field name="currency_id"/>
<field name="amount_currency"/> <field name="amount_currency"/>
</group> </group>
@ -1432,7 +1443,7 @@
<field name="credit" sum="Total Credit"/> <field name="credit" sum="Total Credit"/>
<field name="analytic_account_id" domain="[('parent_id','!=',False)]" groups="analytic.group_analytic_accounting"/> <field name="analytic_account_id" domain="[('parent_id','!=',False)]" groups="analytic.group_analytic_accounting"/>
<field name="amount_currency"/> <field name="amount_currency"/>
<field name="currency_id"/> <field name="currency_id" groups="base.group_multi_currency"/>
<field name="tax_code_id"/> <field name="tax_code_id"/>
<field name="tax_amount"/> <field name="tax_amount"/>
<field name="state"/> <field name="state"/>
@ -1521,7 +1532,6 @@
<record id="action_move_line_search" model="ir.actions.act_window"> <record id="action_move_line_search" model="ir.actions.act_window">
<field name="name">Journal Items</field> <field name="name">Journal Items</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.move.line</field> <field name="res_model">account.move.line</field>
<field name="view_type">form</field> <field name="view_type">form</field>
<field name="view_mode">tree,form</field> <field name="view_mode">tree,form</field>
@ -1540,15 +1550,31 @@
<field name="act_window_id" ref="action_move_line_search"/> <field name="act_window_id" ref="action_move_line_search"/>
</record> </record>
<act_window <record id="action_account_manual_reconcile" model="ir.actions.act_window">
context="{'search_default_next_partner':1,'view_mode':True}" <field name="context">{'search_default_unreconciled': 1,'view_mode':True}</field>
id="action_account_manual_reconcile" name="Journal Items" <field name="name">Journal Items to Reconcile</field>
res_model="account.move.line" <field name="res_model">account.move.line</field>
view_id="view_move_line_tree"/> <field name="view_id" ref="view_move_line_tree_reconcile"/>
<field name="view_type">form</field>
<field name="view_mode">account_reconciliation_list</field>
<field name="help" type="html">
<p>
Good job!
</p><p>
There is nothing to reconcile. All invoices and payments
have been reconciled, your partner balance is clean.
</p>
</field>
</record>
<menuitem
name="Journal Items to Reconcile"
action="action_account_manual_reconcile"
id="menu_manual_reconcile_bank"
sequence="20"
parent="account.menu_finance_bank_and_cash"/>
<menuitem <menuitem
name="Manual Reconciliation" icon="STOCK_EXECUTE" name="Manual Reconciliation"
action="action_account_manual_reconcile" action="action_account_manual_reconcile"
id="menu_manual_reconcile" id="menu_manual_reconcile"
parent="account.periodical_processing_reconciliation"/> parent="account.periodical_processing_reconciliation"/>
@ -1650,8 +1676,8 @@
<form string="Journal Entry Model" version="7.0"> <form string="Journal Entry Model" version="7.0">
<group col="4"> <group col="4">
<field name="name"/> <field name="name"/>
<field name="journal_id"/> <field name="journal_id" on_change="onchange_journal_id(journal_id)"/>
<field name="company_id" widget='selection' groups="base.group_multi_company"/> <field name="company_id" widget="selection" groups="base.group_multi_company"/>
</group> </group>
<field name="lines_id" widget="one2many_list"/> <field name="lines_id" widget="one2many_list"/>
@ -1727,8 +1753,10 @@
<field name="model">account.payment.term.line</field> <field name="model">account.payment.term.line</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="Payment Term" version="7.0"> <form string="Payment Term" version="7.0">
<field name="name"/> <group>
<field name="sequence"/> <field name="name"/>
<field name="sequence"/>
</group>
<group> <group>
<group string="Amount Computation"> <group string="Amount Computation">
<field name="value"/> <field name="value"/>
@ -1776,12 +1804,11 @@
<field name="model">account.payment.term</field> <field name="model">account.payment.term</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="Payment Term" version="7.0"> <form string="Payment Term" version="7.0">
<group> <group col="4">
<field name="name"/> <field name="name"/>
<field name="active"/> <field name="active"/>
</group> </group>
<separator string="Description on Invoices"/> <field name="note" placeholder="Note fo the invoice..."/>
<field name="note"/>
<separator string="Computation"/> <separator string="Computation"/>
<field name="line_ids"/> <field name="line_ids"/>
</form> </form>
@ -2075,7 +2102,7 @@
<field name="type"/> <field name="type"/>
<field name="user_type"/> <field name="user_type"/>
<field name="currency_id"/> <field name="currency_id" groups="base.group_multi_currency"/>
<field name="reconcile"/> <field name="reconcile"/>
<field name="chart_template_id"/> <field name="chart_template_id"/>
</group> </group>
@ -2368,20 +2395,15 @@
<group string="res_config_contents" position="replace"> <group string="res_config_contents" position="replace">
<field name="only_one_chart_template" invisible="1"/> <field name="only_one_chart_template" invisible="1"/>
<field name="complete_tax_set" invisible="1"/> <field name="complete_tax_set" invisible="1"/>
<div groups="base.group_multi_company"> <group col="1">
<label for="company_id"/> <group attrs="{'invisible': [('only_one_chart_template','=',True)]}">
<field name="company_id" widget="selection"/> <!-- we assume that this wizard will be run only by administrators and as this field may cause problem if hidden (because of the default company of the user removed from the selection because already configured), we simply choosed to remove the group "multi company" of it -->
</div>
<group>
<div attrs="{'invisible': [('only_one_chart_template','=',True)]}">
<label for="chart_template_id"/>
<field name="chart_template_id" widget="selection" on_change="onchange_chart_template_id(chart_template_id)" domain="[('visible','=', True)]"/> <field name="chart_template_id" widget="selection" on_change="onchange_chart_template_id(chart_template_id)" domain="[('visible','=', True)]"/>
</div> </group>
<newline/> <group groups="base.group_multi_company">
<group groups="account.group_account_user"> <field name="company_id" widget="selection" on_change="onchange_company_id(company_id)"/> <!-- we assume that this wizard will be run only by administrators and as this field may cause problem if hidden (because of the default company of the user removed from the selection because already configured), we simply choosed to remove the group "multi company" of it -->
<field name="code_digits"/>
</group> </group>
<group> <group>
<field name="currency_id" class="oe_inline"/>
<field name="sale_tax" attrs="{'invisible': [('complete_tax_set', '!=', True)]}" domain="[('chart_template_id', '=', chart_template_id),('parent_id','=',False),('type_tax_use','in',('sale','all'))]"/> <field name="sale_tax" attrs="{'invisible': [('complete_tax_set', '!=', True)]}" domain="[('chart_template_id', '=', chart_template_id),('parent_id','=',False),('type_tax_use','in',('sale','all'))]"/>
<label for="sale_tax_rate" string="Sale Tax" attrs="{'invisible': [('complete_tax_set', '=', True)]}"/> <label for="sale_tax_rate" string="Sale Tax" attrs="{'invisible': [('complete_tax_set', '=', True)]}"/>
<div attrs="{'invisible': [('complete_tax_set', '=', True)]}"> <div attrs="{'invisible': [('complete_tax_set', '=', True)]}">
@ -2393,17 +2415,10 @@
<field name="purchase_tax_rate" class="oe_inline"/> %% <field name="purchase_tax_rate" class="oe_inline"/> %%
</div> </div>
</group> </group>
<group groups="account.group_account_user">
<field name="code_digits"/>
</group>
</group> </group>
<div groups="account.group_account_user">
<label for="bank_accounts_id" string="Bank Information"/>
<field name="bank_accounts_id">
<tree editable="bottom">
<field name="acc_name"/>
<field name="account_type"/>
<field name="currency_id" widget="selection"/>
</tree>
</field>
</div>
</group> </group>
</field> </field>
</record> </record>
@ -2548,7 +2563,7 @@ action = pool.get('res.config').next(cr, uid, [], context)
<header> <header>
<button name="button_confirm_cash" states="open" string="Close CashBox" type="object" class="oe_highlight"/> <button name="button_confirm_cash" states="open" string="Close CashBox" type="object" class="oe_highlight"/>
<button name="button_open" states="draft" string="Open CashBox" type="object" class="oe_highlight"/> <button name="button_open" states="draft" string="Open CashBox" type="object" class="oe_highlight"/>
<button name="button_cancel" states="confirm,open" string="Cancel" type="object" groups="base.group_extended"/> <button name="button_cancel" states="confirm,open" string="Cancel" type="object"/>
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,confirm"/> <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,confirm"/>
</header> </header>
<sheet string="Statement"> <sheet string="Statement">
@ -2565,7 +2580,7 @@ action = pool.get('res.config').next(cr, uid, [], context)
<field name="date" attrs="{'readonly':[('state','!=','draft')]}" on_change="onchange_date(date, company_id)"/> <field name="date" attrs="{'readonly':[('state','!=','draft')]}" on_change="onchange_date(date, company_id)"/>
<field name="closing_date" readonly="1"/> <field name="closing_date" readonly="1"/>
<field name="period_id" class="oe_inline"/> <field name="period_id" class="oe_inline"/>
<field name="currency" invisible="1"/> <field name="currency" invisible="1" groups="base.group_multi_currency"/>
</group> </group>
</group> </group>
<notebook> <notebook>

View File

@ -12,16 +12,6 @@
<field name="domain">[('year','=',time.strftime('%Y'))]</field> <field name="domain">[('year','=',time.strftime('%Y'))]</field>
</record> </record>
<record id="action_treasory_graph" model="ir.actions.act_window">
<field name="name">Treasury</field>
<field name="res_model">account.account</field>
<field name="view_type">form</field>
<field name="view_mode">graph,tree</field>
<field name="domain">[('type','=','liquidity')]</field>
<field name="context">{'default_type': 'liquidity'}</field>
<field name="view_id" ref="account.view_treasory_graph"/>
</record>
<record id="board_account_form" model="ir.ui.view"> <record id="board_account_form" model="ir.ui.view">
<field name="name">board.account.form</field> <field name="name">board.account.form</field>
<field name="model">board.board</field> <field name="model">board.board</field>
@ -29,12 +19,8 @@
<form string="Account Board" version="7.0"> <form string="Account Board" version="7.0">
<board style="2-1"> <board style="2-1">
<column> <column>
<action name="%(account.action_invoice_tree1)d" creatable="true" string="Draft Customer Invoices" domain="[('state','in',('draft','proforma2')), ('type','=','out_invoice')]"/>
<action name="%(action_company_analysis_tree)d" string="Company Analysis"/> <action name="%(action_company_analysis_tree)d" string="Company Analysis"/>
</column> </column>
<column>
<action name="%(action_treasory_graph)d" string="Treasury"/>
</column>
</board> </board>
</form> </form>
</field> </field>

View File

@ -45,7 +45,6 @@
<record id="conf_chart0" model="account.account.template"> <record id="conf_chart0" model="account.account.template">
<field name="code">0</field> <field name="code">0</field>
<field name="name">Configurable Account Chart</field> <field name="name">Configurable Account Chart</field>
<field eval="0" name="parent_id"/>
<field name="type">view</field> <field name="type">view</field>
<field name="user_type" ref="data_account_type_view"/> <field name="user_type" ref="data_account_type_view"/>
</record> </record>

View File

@ -19,7 +19,6 @@
<record id="chart0" model="account.account"> <record id="chart0" model="account.account">
<field name="code">X0</field> <field name="code">X0</field>
<field name="name">Chart For Automated Tests</field> <field name="name">Chart For Automated Tests</field>
<field eval="0" name="parent_id"/>
<field name="type">view</field> <field name="type">view</field>
<field name="user_type" ref="data_account_type_view"/> <field name="user_type" ref="data_account_type_view"/>
</record> </record>
@ -123,6 +122,14 @@
<field name="type">other</field> <field name="type">other</field>
<field name="user_type" ref="data_account_type_income"/> <field name="user_type" ref="data_account_type_income"/>
</record> </record>
<record id="usd_bnk" model="account.account">
<field name="code">X11007</field>
<field name="name">USD Bank Account - (test)</field>
<field ref="cas" name="parent_id"/>
<field name="type">liquidity</field>
<field name="user_type" ref="data_account_type_asset"/>
<field name="currency_id" ref="base.USD"/>
</record>
<record model="account.account" id="liabilities_view"> <record model="account.account" id="liabilities_view">
<field name="name">Liabilities - (test)</field> <field name="name">Liabilities - (test)</field>
@ -361,8 +368,8 @@
<field name="type">bank</field> <field name="type">bank</field>
<field name="view_id" ref="account_journal_bank_view"/> <field name="view_id" ref="account_journal_bank_view"/>
<field name="sequence_id" ref="sequence_bank_journal"/> <field name="sequence_id" ref="sequence_bank_journal"/>
<field model="account.account" name="default_debit_account_id" ref="cash"/> <field model="account.account" name="default_debit_account_id" ref="bnk"/>
<field model="account.account" name="default_credit_account_id" ref="cash"/> <field model="account.account" name="default_credit_account_id" ref="bnk"/>
<field name="analytic_journal_id" ref="sit"/> <field name="analytic_journal_id" ref="sit"/>
<field name="user_id" ref="base.user_root"/> <field name="user_id" ref="base.user_root"/>
</record> </record>
@ -381,6 +388,11 @@
<field name="name">Cash Journal - (test)</field> <field name="name">Cash Journal - (test)</field>
<field name="code">TCSH</field> <field name="code">TCSH</field>
<field name="type">cash</field> <field name="type">cash</field>
<field name="profit_account_id" model="account.account" ref="rsa" />
<field name="loss_account_id" model="account.account" ref="rsa" />
<field name="internal_account_id" model="account.account" ref="rsa" />
<field name="with_last_closing_balance" eval="True" />
<field name="cash_control" eval="True" />
<field name="view_id" ref="account_journal_bank_view"/> <field name="view_id" ref="account_journal_bank_view"/>
<field name="sequence_id" ref="sequence_cash_journal"/> <field name="sequence_id" ref="sequence_cash_journal"/>
<field model="account.account" name="default_debit_account_id" ref="cash"/> <field model="account.account" name="default_debit_account_id" ref="cash"/>
@ -408,6 +420,16 @@
<field eval="True" name="centralisation"/> <field eval="True" name="centralisation"/>
<field name="user_id" ref="base.user_root"/> <field name="user_id" ref="base.user_root"/>
</record> </record>
<record id="bank_journal_usd" model="account.journal">
<field name="name">USD Bank Journal - (test)</field>
<field name="code">TUBK</field>
<field name="type">bank</field>
<field name="view_id" ref="account_journal_bank_view"/>
<field model="account.account" name="usd_debit_account_id" ref="usd_bnk"/>
<field model="account.account" name="usd_credit_account_id" ref="usd_bnk"/>
<field name="currency_id" ref="base.USD"/>
</record>
<!-- <!--
Product income and expense accounts, default parameters Product income and expense accounts, default parameters
--> -->

View File

@ -123,64 +123,6 @@
</div> </div>
</div> </div>
]]></field> ]]></field>
<field name="body_text"><![CDATA[
Hello${object.partner_id.name and ' ' or ''}${object.partner_id.name or ''},
A new invoice is available for ${object.partner_id.name}:
| Invoice number: *${object.number}*
| Invoice total: *${object.amount_total} ${object.currency_id.name}*
| Invoice date: ${object.date_invoice}
% if object.origin:
| Order reference: ${object.origin}
% endif
| Your contact: ${object.user_id.name} ${object.user_id.email and '<%s>'%(object.user_id.email) or ''}
You can view the invoice document, download it and pay online using the following link:
${ctx.get('edi_web_url_view') or 'n/a'}
% if object.company_id.paypal_account and object.type in ('out_invoice', 'in_refund'):
<%
comp_name = quote(object.company_id.name)
inv_number = quote(object.number)
paypal_account = quote(object.company_id.paypal_account)
inv_amount = quote(str(object.amount_total))
cur_name = quote(object.currency_id.name)
paypal_url = "https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=%s&item_name=%s%%20Invoice%%20%s"\
"&invoice=%s&amount=%s&currency_code=%s&button_subtype=services&no_note=1&bn=OpenERP_Invoice_PayNow_%s" % \
(paypal_account,comp_name,inv_number,inv_number,inv_amount,cur_name,cur_name)
%>
It is also possible to directly pay with Paypal:
${paypal_url}
% endif
If you have any question, do not hesitate to contact us.
Thank you for choosing ${object.company_id.name}!
--
${object.user_id.name} ${object.user_id.email and '<%s>'%(object.user_id.email) or ''}
${object.company_id.name}
% if object.company_id.street:
${object.company_id.street or ''}
% endif
% if object.company_id.street2:
${object.company_id.street2}
% endif
% if object.company_id.city or object.company_id.zip:
${object.company_id.zip or ''} ${object.company_id.city or ''}
% endif
% if object.company_id.country_id:
${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}
% endif
% if object.company_id.phone:
Phone: ${object.company_id.phone}
% endif
% if object.company_id.website:
${object.company_id.website or ''}
% endif
]]></field>
</record> </record>
</data> </data>
</openerp> </openerp>

View File

@ -9538,7 +9538,7 @@ msgid "Refund"
msgstr "" msgstr ""
#. module: account #. module: account
#: model:email.template,body_text:account.email_template_edi_invoice #: model:email.template,body:account.email_template_edi_invoice
msgid "\n" msgid "\n"
"Hello${object.address_invoice_id.name and ' ' or ''}${object.address_invoice_id.name or ''},\n" "Hello${object.address_invoice_id.name and ' ' or ''}${object.address_invoice_id.name or ''},\n"
"\n" "\n"

File diff suppressed because it is too large Load Diff

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:03+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:09+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0
@ -173,7 +173,7 @@ msgstr "Предупреждение!"
#: code:addons/account/account.py:3112 #: code:addons/account/account.py:3112
#, python-format #, python-format
msgid "Miscellaneous Journal" msgid "Miscellaneous Journal"
msgstr "" msgstr "Различни дневници"
#. module: account #. module: account
#: field:account.fiscal.position.account,account_src_id:0 #: field:account.fiscal.position.account,account_src_id:0
@ -189,7 +189,7 @@ msgstr "Всички аналитични записи"
#. module: account #. module: account
#: field:accounting.report,label_filter:0 #: field:accounting.report,label_filter:0
msgid "Column Label" msgid "Column Label"
msgstr "" msgstr "Име на колона"
#. module: account #. module: account
#: code:addons/account/wizard/account_move_journal.py:95 #: code:addons/account/wizard/account_move_journal.py:95

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:03+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:09+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:03+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:09+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:03+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:09+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:03+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:09+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
"X-Poedit-Language: Czech\n" "X-Poedit-Language: Czech\n"
#. module: account #. module: account

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:03+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:09+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:04+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:10+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0
@ -4499,6 +4499,10 @@ msgid ""
"you want to generate accounts of this template only when loading its child " "you want to generate accounts of this template only when loading its child "
"template." "template."
msgstr "" msgstr ""
"Setzen Sie hier keinen Haken, wenn Sie nicht möchten, dass diese Vorlage zur "
"Erzeugung des Kontenplans durch den Assistenten genutzt wird. Das ist "
"Sinnvoll, wenn Sie untergeordnete Konten nur aus dieser Vorlage anlegen "
"wollen, wenn Sie eine abgeleitete Vorlage laden."
#. module: account #. module: account
#: view:account.use.model:0 #: view:account.use.model:0
@ -7769,6 +7773,12 @@ msgid ""
"few new accounts (You don't need to define the whole structure that is " "few new accounts (You don't need to define the whole structure that is "
"common to both several times)." "common to both several times)."
msgstr "" msgstr ""
"Dieses wahlfreie Feld ermöglicht Ihnen eine Konten-Vorlage von einer "
"Kontenplan-Vorlage abzuleiten, wobei sich die Konten des vom Stamm-"
"Kontenplan unterscheiden können. So können Sie eine Kontenplan-Vorlage "
"festlegen, die eine Andere, ggf. auch nur geringfügig, erweitert. (Sie "
"brauchen also nicht die beiden gemeinsamen Strukturen mehrfach zu "
"definieren)."
#. module: account #. module: account
#: view:account.move:0 #: view:account.move:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:04+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:10+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:09+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:15+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:08+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:14+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:07+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:13+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:09+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:14+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:09+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:15+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:09+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:15+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
"Language: \n" "Language: \n"
#. module: account #. module: account

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:09+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:15+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -16,8 +16,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:10+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:15+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:10+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:16+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-15 04:40+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:15+0000\n"
"X-Generator: Launchpad (build 15801)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:09+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:14+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:03+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:09+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:02+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:08+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:06+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:12+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:10+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:16+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:03+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:09+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:04+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:10+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: code:addons/account/account_move_line.py:1200 #: code:addons/account/account_move_line.py:1200

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:08+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:14+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:04+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:10+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:04+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:10+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:04+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:10+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:04+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:10+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:07+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:13+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:04+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:10+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n" "Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2012-06-06 10:35+0000\n" "PO-Revision-Date: 2012-08-24 02:50+0000\n"
"Last-Translator: Budi Iskandar <Unknown>\n" "Last-Translator: Ginandjar Satyanagara <Unknown>\n"
"Language-Team: Indonesian <id@li.org>\n" "Language-Team: Indonesian <id@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:05+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:10+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0
@ -43,7 +43,7 @@ msgstr ""
#. module: account #. module: account
#: view:account.move.reconcile:0 #: view:account.move.reconcile:0
msgid "Journal Entry Reconcile" msgid "Journal Entry Reconcile"
msgstr "Rekonsiliasi Ayat-ayat Jurnal" msgstr ""
#. module: account #. module: account
#: view:account.account:0 #: view:account.account:0
@ -61,7 +61,7 @@ msgstr "Proforma/Terbuka/Terbayar Faktur"
#. module: account #. module: account
#: field:report.invoice.created,residual:0 #: field:report.invoice.created,residual:0
msgid "Residual" msgid "Residual"
msgstr "Sisa" msgstr "Tersisa"
#. module: account #. module: account
#: constraint:account.period:0 #: constraint:account.period:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:05+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:10+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:05+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:11+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:05+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:11+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:05+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:11+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:05+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:11+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -8,20 +8,20 @@ msgstr ""
"Project-Id-Version: openobject-addons\n" "Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2011-01-18 17:01+0000\n" "PO-Revision-Date: 2012-08-20 18:21+0000\n"
"Last-Translator: Brice Muangkhot ສຸພາ ເມືອງໂຄຕ <bmuangkhot@gmail.com>\n" "Last-Translator: Brice Muangkhot ສຸພາ ເມືອງໂຄຕ <bmuangkhot@gmail.com>\n"
"Language-Team: Lao <lo@li.org>\n" "Language-Team: Lao <lo@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:05+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:11+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0
#: view:analytic.entries.report:0 #: view:analytic.entries.report:0
msgid "last month" msgid "last month"
msgstr "" msgstr "ເດືອນແລ້ວນີ້"
#. module: account #. module: account
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0 #: model:process.transition,name:account.process_transition_supplierreconcilepaid0
@ -71,7 +71,7 @@ msgstr ""
#. module: account #. module: account
#: field:account.analytic.line,currency_id:0 #: field:account.analytic.line,currency_id:0
msgid "Account currency" msgid "Account currency"
msgstr "ເງີນຕາສໍາລັບບັນຊີ" msgstr "ເງີນຕາສລັບບັນຊີ"
#. module: account #. module: account
#: view:account.tax:0 #: view:account.tax:0
@ -122,7 +122,7 @@ msgstr ""
#: report:account.invoice:0 #: report:account.invoice:0
#: field:account.invoice.line,origin:0 #: field:account.invoice.line,origin:0
msgid "Origin" msgid "Origin"
msgstr "ຮາກຕົ້ນ" msgstr "ຮາກຕົ້ນ"
#. module: account #. module: account
#: view:account.account:0 #: view:account.account:0
@ -131,7 +131,7 @@ msgstr "ຮາກຕົ້້ນ"
#: view:account.move.line.reconcile:0 #: view:account.move.line.reconcile:0
#: view:account.move.line.reconcile.writeoff:0 #: view:account.move.line.reconcile.writeoff:0
msgid "Reconcile" msgid "Reconcile"
msgstr "" msgstr "ສົມຕໍ່"
#. module: account #. module: account
#: field:account.bank.statement.line,ref:0 #: field:account.bank.statement.line,ref:0
@ -299,7 +299,7 @@ msgstr "ຊື່ຫ້ອງ"
msgid "" msgid ""
"Installs localized accounting charts to match as closely as possible the " "Installs localized accounting charts to match as closely as possible the "
"accounting needs of your company based on your country." "accounting needs of your company based on your country."
msgstr "" msgstr "ຕິດຕັ້ງ"
#. module: account #. module: account
#: code:addons/account/wizard/account_move_journal.py:63 #: code:addons/account/wizard/account_move_journal.py:63
@ -314,7 +314,7 @@ msgstr "ບໍ່ສາມາດຄົ້ນພົບລາຍວັນບັນ
#. module: account #. module: account
#: model:ir.model,name:account.model_account_unreconcile #: model:ir.model,name:account.model_account_unreconcile
msgid "Account Unreconcile" msgid "Account Unreconcile"
msgstr "" msgstr "ບັນຊີຍັງບໍ່ທັນສົມຕໍ່"
#. module: account #. module: account
#: view:product.product:0 #: view:product.product:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:05+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:11+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:05+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:11+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:06+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:11+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-08 04:36+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:11+0000\n"
"X-Generator: Launchpad (build 15757)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0
@ -6661,7 +6661,7 @@ msgid ""
"need for your company." "need for your company."
msgstr "" msgstr ""
"Дансны төрөл нь данс журнал яаж хэрэглэгдэхийг тодорхойлдог. Санхүүгийн " "Дансны төрөл нь данс журнал яаж хэрэглэгдэхийг тодорхойлдог. Санхүүгийн "
"хойшлуулах арга нь тогтмол хугацааны хаалтууд дээр хийгдэх боловсруулалтыг " "хойшлогдсон арга нь тогтмол хугацааны хаалтууд дээр хийгдэх боловсруулалтыг "
"хэлдэг. Баланс тайлан, Ашиг-Алдагдлын тайлан зэрэг нь (ашиг/алдагдал болон " "хэлдэг. Баланс тайлан, Ашиг-Алдагдлын тайлан зэрэг нь (ашиг/алдагдал болон "
"баланс тайлан) ангилалуудыг хэрэглэдэг. Жишээлбэл: дансны төрөл нь хөрөнгө, " "баланс тайлан) ангилалуудыг хэрэглэдэг. Жишээлбэл: дансны төрөл нь хөрөнгө, "
"авлага, өглөгтэй холбогдсон байж болно. Энэ харагдацаас өөрийн компанид " "авлага, өглөгтэй холбогдсон байж болно. Энэ харагдацаас өөрийн компанид "
@ -8148,7 +8148,7 @@ msgstr ""
#. module: account #. module: account
#: field:account.account.type,close_method:0 #: field:account.account.type,close_method:0
msgid "Deferral Method" msgid "Deferral Method"
msgstr "Хаагдах хэлбэр" msgstr "Хойшлогдсон Арга"
#. module: account #. module: account
#: code:addons/account/account_invoice.py:379 #: code:addons/account/account_invoice.py:379
@ -9868,6 +9868,9 @@ msgid ""
"You can not select an account type with a deferral method different of " "You can not select an account type with a deferral method different of "
"\"Unreconciled\" for accounts with internal type \"Payable/Receivable\"! " "\"Unreconciled\" for accounts with internal type \"Payable/Receivable\"! "
msgstr "" msgstr ""
"Тохиргооны алдаа! \n"
"Дотоод төрөл нь \"Өглөг/Авлага\" төрөлтэй дансдын хувьд хойшлогдсон аргатай "
"дансанд \"Тулгахгүй\"-с өөр төрлийг сонгож болохгүй! "
#. module: account #. module: account
#: view:account.model:0 #: view:account.model:0

File diff suppressed because it is too large Load Diff

View File

@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n" "Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n" "Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2012-06-28 12:47+0000\n" "PO-Revision-Date: 2012-08-26 14:01+0000\n"
"Last-Translator: Erwin <Unknown>\n" "Last-Translator: Erwin <Unknown>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:03+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:09+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: code:addons/account/account.py:1307 #: code:addons/account/account.py:1307
@ -687,7 +687,7 @@ msgstr "VKB"
#: view:account.period:0 #: view:account.period:0
#: view:account.period.close:0 #: view:account.period.close:0
msgid "Close Period" msgid "Close Period"
msgstr "Afsluit periode" msgstr "Periode afsluiten"
#. module: account #. module: account
#: model:ir.model,name:account.model_account_common_partner_report #: model:ir.model,name:account.model_account_common_partner_report
@ -1282,7 +1282,7 @@ msgstr "Situatie"
#. module: account #. module: account
#: help:account.move.line,move_id:0 #: help:account.move.line,move_id:0
msgid "The move of this entry line." msgid "The move of this entry line."
msgstr "De verplaatsing van deze boekingsregel" msgstr "De mutatie van deze boekingsregel"
#. module: account #. module: account
#: code:addons/account/account_move_line.py:1302 #: code:addons/account/account_move_line.py:1302
@ -2393,7 +2393,7 @@ msgstr ""
#. module: account #. module: account
#: model:ir.model,name:account.model_account_move #: model:ir.model,name:account.model_account_move
msgid "Account Entry" msgid "Account Entry"
msgstr "Boeking" msgstr "Journaalpost"
#. module: account #. module: account
#: constraint:res.partner:0 #: constraint:res.partner:0
@ -2510,7 +2510,7 @@ msgstr "Onafgeletterde boekingen"
#: field:account.invoice.tax,base_code_id:0 #: field:account.invoice.tax,base_code_id:0
#: field:account.tax.template,base_code_id:0 #: field:account.tax.template,base_code_id:0
msgid "Base Code" msgid "Base Code"
msgstr "Basiscode" msgstr "Grondslag"
#. module: account #. module: account
#: help:account.invoice.tax,sequence:0 #: help:account.invoice.tax,sequence:0
@ -2523,7 +2523,7 @@ msgstr "Bepaalt de volgorde bij afbeelden lijst van factuur belasting."
#: field:account.tax.template,base_sign:0 #: field:account.tax.template,base_sign:0
#: field:account.tax.template,ref_base_sign:0 #: field:account.tax.template,ref_base_sign:0
msgid "Base Code Sign" msgid "Base Code Sign"
msgstr "Basiscode teken (+/-)" msgstr "Grondslag teken (+/-)"
#. module: account #. module: account
#: view:account.vat.declaration:0 #: view:account.vat.declaration:0
@ -2751,7 +2751,7 @@ msgstr "Betaald/Afgeletterd"
#: field:account.tax,ref_base_code_id:0 #: field:account.tax,ref_base_code_id:0
#: field:account.tax.template,ref_base_code_id:0 #: field:account.tax.template,ref_base_code_id:0
msgid "Refund Base Code" msgid "Refund Base Code"
msgstr "Credit basiscode" msgstr "Credit grondslag"
#. module: account #. module: account
#: selection:account.tax.template,applicable_type:0 #: selection:account.tax.template,applicable_type:0
@ -2835,7 +2835,7 @@ msgstr ""
#: model:ir.actions.server,name:account.ir_actions_server_action_wizard_multi_chart #: model:ir.actions.server,name:account.ir_actions_server_action_wizard_multi_chart
#: model:ir.ui.menu,name:account.menu_act_ir_actions_bleble #: model:ir.ui.menu,name:account.menu_act_ir_actions_bleble
msgid "New Company Financial Setting" msgid "New Company Financial Setting"
msgstr "Nieuwe financiële regeling configureren voor dit bedrijf" msgstr "Nieuwe financiële administratie configureren voor dit bedrijf"
#. module: account #. module: account
#: view:account.installer:0 #: view:account.installer:0
@ -2962,7 +2962,7 @@ msgstr ""
#. module: account #. module: account
#: field:account.invoice.tax,base_amount:0 #: field:account.invoice.tax,base_amount:0
msgid "Base Code Amount" msgid "Base Code Amount"
msgstr "Basiscode bedrag" msgstr "Grondslag"
#. module: account #. module: account
#: code:addons/account/account_invoice.py:392 #: code:addons/account/account_invoice.py:392
@ -3248,7 +3248,7 @@ msgstr "Grootboekrekening sjablonen"
#. module: account #. module: account
#: model:ir.actions.act_window,name:account.action_wizard_multi_chart #: model:ir.actions.act_window,name:account.action_wizard_multi_chart
msgid "Set Your Accounting Options" msgid "Set Your Accounting Options"
msgstr "" msgstr "Stel uw financiële instellingen in"
#. module: account #. module: account
#: view:report.account.sales:0 #: view:report.account.sales:0
@ -4284,7 +4284,7 @@ msgstr "Belastingregels"
#. module: account #. module: account
#: field:account.tax,base_code_id:0 #: field:account.tax,base_code_id:0
msgid "Account Base Code" msgid "Account Base Code"
msgstr "Basiscode" msgstr "Grondslag"
#. module: account #. module: account
#: code:addons/account/account_analytic_line.py:93 #: code:addons/account/account_analytic_line.py:93
@ -4538,7 +4538,7 @@ msgstr "Kostenplaats grootboek"
#: model:ir.actions.act_window,name:account.action_model_form #: model:ir.actions.act_window,name:account.action_model_form
#: model:ir.ui.menu,name:account.menu_action_model_form #: model:ir.ui.menu,name:account.menu_action_model_form
msgid "Recurring Models" msgid "Recurring Models"
msgstr "Herhalende modellen" msgstr "Herhalende boekingen"
#. module: account #. module: account
#: code:addons/account/account_move_line.py:1251 #: code:addons/account/account_move_line.py:1251
@ -5132,7 +5132,7 @@ msgstr "Python Code (reverse)"
#: model:ir.actions.act_window,name:account.action_payment_term_form #: model:ir.actions.act_window,name:account.action_payment_term_form
#: model:ir.ui.menu,name:account.menu_action_payment_term_form #: model:ir.ui.menu,name:account.menu_action_payment_term_form
msgid "Payment Terms" msgid "Payment Terms"
msgstr "Betalingsconditie" msgstr "Betalingscondities"
#. module: account #. module: account
#: help:account.chart.template,complete_tax_set:0 #: help:account.chart.template,complete_tax_set:0
@ -5426,7 +5426,7 @@ msgstr "Communicatie"
#. module: account #. module: account
#: model:ir.ui.menu,name:account.menu_analytic_accounting #: model:ir.ui.menu,name:account.menu_analytic_accounting
msgid "Analytic Accounting" msgid "Analytic Accounting"
msgstr "Kostenplaats dagboeken" msgstr "Kostenplaatsen"
#. module: account #. module: account
#: field:account.partner.ledger,initial_balance:0 #: field:account.partner.ledger,initial_balance:0
@ -5827,7 +5827,7 @@ msgstr "Vrije referentie"
#. module: account #. module: account
#: field:account.payment.term.line,value:0 #: field:account.payment.term.line,value:0
msgid "Valuation" msgid "Valuation"
msgstr "Raming" msgstr "Soort"
#. module: account #. module: account
#: selection:account.aged.trial.balance,result_selection:0 #: selection:account.aged.trial.balance,result_selection:0
@ -6055,7 +6055,7 @@ msgstr "Naam dagboekperiode"
#. module: account #. module: account
#: field:account.invoice.tax,factor_base:0 #: field:account.invoice.tax,factor_base:0
msgid "Multipication factor for Base code" msgid "Multipication factor for Base code"
msgstr "Vermenigvuldigingsfactor voor basiscode" msgstr "Vermenigvuldigingsfactor voor grondslag"
#. module: account #. module: account
#: code:addons/account/wizard/account_report_common.py:150 #: code:addons/account/wizard/account_report_common.py:150
@ -7273,7 +7273,7 @@ msgstr ""
#. module: account #. module: account
#: model:ir.actions.act_window,name:account.action_account_report_tree_hierarchy #: model:ir.actions.act_window,name:account.action_account_report_tree_hierarchy
msgid "Financial Reports Hierarchy" msgid "Financial Reports Hierarchy"
msgstr "Financieel rapporthistorie" msgstr "Financiele rapporten hiërarchie"
#. module: account #. module: account
#: field:account.entries.report,product_uom_id:0 #: field:account.entries.report,product_uom_id:0
@ -7548,7 +7548,7 @@ msgstr "Kas sluiten"
#: view:account.journal:0 #: view:account.journal:0
#: field:res.partner.bank,journal_id:0 #: field:res.partner.bank,journal_id:0
msgid "Account Journal" msgid "Account Journal"
msgstr "Rekeningdagboek" msgstr "Bankboek"
#. module: account #. module: account
#: model:process.node,name:account.process_node_paidinvoice0 #: model:process.node,name:account.process_node_paidinvoice0
@ -7980,7 +7980,7 @@ msgid ""
"view to it." "view to it."
msgstr "" msgstr ""
"Hier kunt u een bestaande dagboekweergave aanmaken of wijzigen. Een " "Hier kunt u een bestaande dagboekweergave aanmaken of wijzigen. Een "
"dagboekweergave bepaald de manier waarop uw boekingen kunt kanen in uw " "dagboekweergave bepaald de manier waarop uw boekingen kunt maken in uw "
"dagboek. Selecteer de velden welke in uw dagboek moeten worden weergegeven " "dagboek. Selecteer de velden welke in uw dagboek moeten worden weergegeven "
"en bepaal de volgorde van weergave. Vervolgens kunt u een nieuw dagboek " "en bepaal de volgorde van weergave. Vervolgens kunt u een nieuw dagboek "
"aanmaken en deze koppelen aan de weergave." "aanmaken en deze koppelen aan de weergave."
@ -8640,7 +8640,7 @@ msgstr "Bankmutatie afletteren"
#: model:ir.actions.act_window,name:account.action_account_type_form #: model:ir.actions.act_window,name:account.action_account_type_form
#: model:ir.ui.menu,name:account.menu_action_account_type_form #: model:ir.ui.menu,name:account.menu_action_account_type_form
msgid "Account Types" msgid "Account Types"
msgstr "Categoriën grootboekrekeningen" msgstr "Grootboekrekeningen categorieën"
#. module: account #. module: account
#: view:account.payment.term.line:0 #: view:account.payment.term.line:0
@ -8852,7 +8852,7 @@ msgstr "Onbetaalde facturen"
#, python-format #, python-format
msgid "The payment term of supplier does not have a payment term line!" msgid "The payment term of supplier does not have a payment term line!"
msgstr "" msgstr ""
"De betalingsconditie van de leverancier heeft geen betalingconditieregels!" "De betalingsconditie van de leverancier heeft geen betalingsconditieregels!"
#. module: account #. module: account
#: field:account.move.line.reconcile,debit:0 #: field:account.move.line.reconcile,debit:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:09+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:15+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:06+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:12+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:06+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:12+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:06+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:12+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -8,13 +8,14 @@ msgstr ""
"Report-Msgid-Bugs-To: support@openerp.com\n" "Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2012-07-28 14:05+0000\n" "PO-Revision-Date: 2012-07-28 14:05+0000\n"
"Last-Translator: Fábio Martinelli <webmaster@guaru.net>\n" "Last-Translator: Fábio Martinelli - http://zupy.com.br "
"<webmaster@guaru.net>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:09+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:14+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:06+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:12+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n" "Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n" "Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2012-05-10 17:32+0000\n" "PO-Revision-Date: 2012-08-17 11:07+0000\n"
"Last-Translator: Michael Otcheskih <otma@mail.ru>\n" "Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:06+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:12+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0
@ -9872,7 +9872,7 @@ msgstr "Не определен счет доходов для ТМЦ: \"%s\" (i
#. module: account #. module: account
#: constraint:account.move.line:0 #: constraint:account.move.line:0
msgid "You can not create journal items on closed account." msgid "You can not create journal items on closed account."
msgstr "" msgstr "Нельзя создать элемент журнала по закрытому счету ."
#. module: account #. module: account
#: field:account.account,unrealized_gain_loss:0 #: field:account.account,unrealized_gain_loss:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:07+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:13+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:07+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:13+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:07+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:13+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:02+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:08+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:07+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:12+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:10+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:16+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:07+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:13+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0
@ -1216,10 +1216,10 @@ msgid ""
"purchase orders or receipts. This way, you can control the invoice from your " "purchase orders or receipts. This way, you can control the invoice from your "
"supplier according to what you purchased or received." "supplier according to what you purchased or received."
msgstr "" msgstr ""
"Med Leverantörs Fakturor kan du ange och hantera fakturor som utfärdats av " "Med Leverantörsfakturor kan du registrera och hantera fakturor som utfärdats "
"dina leverantörer. OpenERP kan även generera utkast på fakturor automatiskt " "av dina leverantörer. OpenERP kan även generera utkast på fakturor "
"från inköpsorder eller kvitton. På så sätt kan du styra fakturan från din " "automatiskt från inköpsorder eller kvitton. På så sätt kan du styra fakturan "
"leverantör beroende på vad du köpt eller tt." "från din leverantör beroende på vad du köpt eller tagit emot."
#. module: account #. module: account
#: model:ir.actions.act_window,name:account.action_account_tax_code_template_form #: model:ir.actions.act_window,name:account.action_account_tax_code_template_form

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:07+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:13+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:07+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:13+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:08+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:13+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:08+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:13+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:08+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:14+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0
@ -145,7 +145,7 @@ msgstr "Uzlaşma"
#: field:account.move.line,ref:0 #: field:account.move.line,ref:0
#: field:account.subscription,ref:0 #: field:account.subscription,ref:0
msgid "Reference" msgid "Reference"
msgstr "İlgi" msgstr "Kaynak"
#. module: account #. module: account
#: view:account.open.closed.fiscalyear:0 #: view:account.open.closed.fiscalyear:0
@ -182,7 +182,7 @@ msgstr "Hesap Kaynağı"
#. module: account #. module: account
#: model:ir.actions.act_window,name:account.act_acc_analytic_acc_5_report_hr_timesheet_invoice_journal #: model:ir.actions.act_window,name:account.act_acc_analytic_acc_5_report_hr_timesheet_invoice_journal
msgid "All Analytic Entries" msgid "All Analytic Entries"
msgstr "Bütün Analitik Girişler" msgstr "Bütün Analiz Girişleri"
#. module: account #. module: account
#: field:accounting.report,label_filter:0 #: field:accounting.report,label_filter:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:08+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:14+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:08+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:14+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:08+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:14+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:08+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:14+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:10+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:15+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-07 05:08+0000\n" "X-Launchpad-Export-Date: 2012-08-28 06:14+0000\n"
"X-Generator: Launchpad (build 15745)\n" "X-Generator: Launchpad (build 15864)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0

File diff suppressed because it is too large Load Diff

View File

@ -45,12 +45,12 @@ class account_installer(osv.osv_memory):
sorted(((m.name, m.shortdesc) sorted(((m.name, m.shortdesc)
for m in modules.browse(cr, uid, ids, context=context)), for m in modules.browse(cr, uid, ids, context=context)),
key=itemgetter(1))) key=itemgetter(1)))
charts.insert(0, ('configurable', 'Generic Chart Of Accounts')) charts.insert(0, ('configurable', _('Custom')))
return charts return charts
_columns = { _columns = {
# Accounting # Accounting
'charts': fields.selection(_get_charts, 'Chart of Accounts', 'charts': fields.selection(_get_charts, 'Accounting Package',
required=True, required=True,
help="Installs localized accounting charts to match as closely as " help="Installs localized accounting charts to match as closely as "
"possible the accounting needs of your company based on your " "possible the accounting needs of your company based on your "

View File

@ -20,8 +20,8 @@
############################################################################## ##############################################################################
from operator import itemgetter from operator import itemgetter
from osv import fields, osv from osv import fields, osv
import time
class account_fiscal_position(osv.osv): class account_fiscal_position(osv.osv):
_name = 'account.fiscal.position' _name = 'account.fiscal.position'
@ -145,6 +145,29 @@ class res_partner(osv.osv):
def _debit_search(self, cr, uid, obj, name, args, context=None): def _debit_search(self, cr, uid, obj, name, args, context=None):
return self._asset_difference_search(cr, uid, obj, name, 'payable', args, context=context) return self._asset_difference_search(cr, uid, obj, name, 'payable', args, context=context)
def has_something_to_reconcile(self, cr, uid, partner_id, context=None):
'''
at least a debit, a credit and a line older than the last reconciliation date of the partner
'''
cr.execute('''
SELECT l.partner_id, SUM(l.debit) AS debit, SUM(l.credit) AS credit
FROM account_move_line l
RIGHT JOIN account_account a ON (a.id = l.account_id)
RIGHT JOIN res_partner p ON (l.partner_id = p.id)
WHERE a.reconcile IS TRUE
AND p.id = %s
AND l.reconcile_id IS NULL
AND (p.last_reconciliation_date IS NULL OR l.date > p.last_reconciliation_date)
AND l.state <> 'draft'
GROUP BY l.partner_id''', (partner_id,))
res = cr.dictfetchone()
if res:
return bool(res['debit'] and res['credit'])
return False
def mark_as_reconciled(self, cr, uid, ids, context=None):
return self.write(cr, uid, ids, {'last_reconciliation_date': time.strftime('%Y-%m-%d %H:%M:%S')}, context=context)
_columns = { _columns = {
'credit': fields.function(_credit_debit_get, 'credit': fields.function(_credit_debit_get,
fnct_search=_credit_search, string='Total Receivable', multi='dc', help="Total amount this customer owes you."), fnct_search=_credit_search, string='Total Receivable', multi='dc', help="Total amount this customer owes you."),
@ -185,7 +208,7 @@ class res_partner(osv.osv):
help="This payment term will be used instead of the default one for the current partner"), help="This payment term will be used instead of the default one for the current partner"),
'ref_companies': fields.one2many('res.company', 'partner_id', 'ref_companies': fields.one2many('res.company', 'partner_id',
'Companies that refers to partner'), 'Companies that refers to partner'),
'last_reconciliation_date': fields.datetime('Latest Reconciliation Date', help='Date on which the partner accounting entries were reconciled last time') 'last_reconciliation_date': fields.datetime('Latest Reconciliation Date', help='Date on which the partner accounting entries were fully reconciled last time. It differs from the date of the last reconciliation made for this partner, as here we depict the fact that nothing more was to be reconciled at this date. This can be achieved in 2 ways: either the last debit/credit entry was reconciled, either the user pressed the button "Fully Reconciled" in the manual reconciliation process')
} }
res_partner() res_partner()

View File

@ -12,7 +12,7 @@
<field name="active"/> <field name="active"/>
<field name="company_id" widget="selection" groups="base.group_multi_company"/> <field name="company_id" widget="selection" groups="base.group_multi_company"/>
</group> </group>
<separator string="Mapping"/> <separator string="Taxes Mapping"/>
<field name="tax_ids" widget="one2many_list"> <field name="tax_ids" widget="one2many_list">
<tree string="Tax Mapping" editable="bottom"> <tree string="Tax Mapping" editable="bottom">
<field name="tax_src_id" domain="[('parent_id','=',False)]"/> <field name="tax_src_id" domain="[('parent_id','=',False)]"/>
@ -23,6 +23,7 @@
<field name="tax_dest_id" domain="[('parent_id','=',False)]"/> <field name="tax_dest_id" domain="[('parent_id','=',False)]"/>
</form> </form>
</field> </field>
<separator string="Accounts Mapping"/>
<field name="account_ids" widget="one2many_list"> <field name="account_ids" widget="one2many_list">
<tree string="Account Mapping" editable="bottom"> <tree string="Account Mapping" editable="bottom">
<field name="account_src_id"/> <field name="account_src_id"/>
@ -93,8 +94,10 @@
</group> </group>
<field name="bank_ids"> <field name="bank_ids">
<form string="Bank account" version="7.0"> <form string="Bank account" version="7.0">
<field name="state"/> <group col="4">
<field name="acc_number"/> <field name="state"/>
<field name="acc_number"/>
</group>
<group> <group>
<group name="owner" string="Bank Account Owner"> <group name="owner" string="Bank Account Owner">
<field name="partner_id" on_change="onchange_partner_id(partner_id)"/> <field name="partner_id" on_change="onchange_partner_id(partner_id)"/>

View File

@ -7,7 +7,7 @@
<field name="inherit_id" ref="product.product_normal_form_view"/> <field name="inherit_id" ref="product.product_normal_form_view"/>
<field name="arch" type="xml"> <field name="arch" type="xml">
<notebook position="inside"> <notebook position="inside">
<page string="Accounting" groups="base.group_user"> <page string="Accounting" groups="account.group_account_user">
<group name="properties"> <group name="properties">
<group> <group>
<field name="property_account_income" domain="[('type','&lt;&gt;','view'),('type','&lt;&gt;','consolidation')]" attrs="{'readonly':[('sale_ok','=',0)]}"/> <field name="property_account_income" domain="[('type','&lt;&gt;','view'),('type','&lt;&gt;','consolidation')]" attrs="{'readonly':[('sale_ok','=',0)]}"/>

View File

@ -56,7 +56,7 @@
<field name="credit"/> <field name="credit"/>
<field name="balance"/> <field name="balance"/>
<field name="state" invisible="1"/> <field name="state" invisible="1"/>
<field name="currency_id"/> <field name="currency_id" groups="base.group_multi_currency"/>
<field name="date" invisible="1"/> <field name="date" invisible="1"/>
<field name="user_id" invisible="1"/> <field name="user_id" invisible="1"/>
<field name="partner_id" invisible="1"/> <field name="partner_id" invisible="1"/>
@ -137,8 +137,8 @@
</group> </group>
<group string="Amount"> <group string="Amount">
<field name="amount"/> <field name="amount"/>
<label for="amount_currency"/> <label for="amount_currency" groups="base.group_multi_currency"/>
<div> <div groups="base.group_multi_currency">
<field name="amount_currency" class="oe_inline"/> <field name="amount_currency" class="oe_inline"/>
<field name="currency_id" class="oe_inline"/> <field name="currency_id" class="oe_inline"/>
</div> </div>
@ -186,19 +186,23 @@
<search string="Search Analytic Lines"> <search string="Search Analytic Lines">
<field name="name" string="Analytic Line"/> <field name="name" string="Analytic Line"/>
<field name="date"/> <field name="date"/>
<filter name="sales" string="Sales" domain="[('journal_id.type','=','sale')]" icon="terp-camera_test" help="Analytic Journal Items related to a sale journal."/> <filter name="sales" string="Sales" domain="[('journal_id.type','=','sale')]" help="Analytic Journal Items related to a sale journal."/>
<filter name="purchases" string="Purchases" domain="[('journal_id.type','=','purchase')]" icon="terp-purchase" help="Analytic Journal Items related to a purchase journal."/> <filter name="purchases" string="Purchases" domain="[('journal_id.type','=','purchase')]" help="Analytic Journal Items related to a purchase journal."/>
<filter name="others" string="Others" domain="[('journal_id.type','in',('cash','general','situation'))]" icon="terp-folder-orange"/> <filter name="others" string="Others" domain="[('journal_id.type','in',('cash','general','situation'))]"/>
<separator/> <separator/>
<filter string="My Entries" domain="[('user_id','=',uid)]" icon="terp-personal"/> <filter string="My Entries" domain="[('user_id','=',uid)]"/>
<field name="account_id"/> <field name="account_id"/>
<field name="user_id"/> <field name="user_id"/>
<group string="Group By..." expand="0"> <group string="Group By..." expand="0">
<filter string="Account" context="{'group_by':'account_id'}" icon="terp-folder-green"/> <filter string="Analytic Account" context="{'group_by':'account_id'}"/>
<filter string="Journal" context="{'group_by':'journal_id'}" icon="terp-folder-orange"/> <filter string="Fin. Account" context="{'group_by':'general_account_id'}"/>
<filter string="User" context="{'group_by':'user_id'}" icon="terp-personal"/> <filter string="Journal" context="{'group_by':'journal_id'}" name="group_journal"/>
<filter string="Fin.Account" context="{'group_by':'general_account_id'}" icon="terp-folder-green"/> <separator/>
<filter string="Product" context="{'group_by':'product_id'}" icon="terp-accessories-archiver"/> <filter string="Product" context="{'group_by':'product_id'}"/>
<filter string="User" context="{'group_by':'user_id'}"/>
<separator/>
<filter string="Date" context="{'group_by':'date'}" name="group_date"/>
</group> </group>
</search> </search>
</field> </field>
@ -247,8 +251,8 @@
</group> </group>
<group string="Amount"> <group string="Amount">
<field name="amount"/> <field name="amount"/>
<label for="amount_currency"/> <label for="amount_currency" groups="base.group_multi_currency"/>
<div> <div groups="base.group_multi_currency">
<field name="amount_currency" class="oe_inline"/> <field name="amount_currency" class="oe_inline"/>
<field name="currency_id" class="oe_inline"/> <field name="currency_id" class="oe_inline"/>
</div> </div>
@ -357,16 +361,6 @@
action="action_account_analytic_journal_tree" action="action_account_analytic_journal_tree"
id="account_analytic_journal_print" parent="account.next_id_40"/> id="account_analytic_journal_print" parent="account.next_id_40"/>
<act_window
context="{'search_default_account_id': [active_id], 'search_default_user_id': False, 'default_account_id': active_id}"
id="act_acc_analytic_acc_5_report_hr_timesheet_invoice_journal"
name="All Analytic Entries"
res_model="account.analytic.line"
src_model="account.analytic.account"
view_mode="tree,form"
view_type="form"/>
<record id="view_account_journal_1" model="ir.ui.view"> <record id="view_account_journal_1" model="ir.ui.view">
<field name="name">account.journal.form.1</field> <field name="name">account.journal.form.1</field>
<field name="model">account.journal</field> <field name="model">account.journal</field>

View File

@ -43,18 +43,18 @@ class account_config_settings(osv.osv_memory):
string='Default company currency', help="Main currency of the company."), string='Default company currency', help="Main currency of the company."),
'paypal_account': fields.related('company_id', 'paypal_account', type='char', size=128, 'paypal_account': fields.related('company_id', 'paypal_account', type='char', size=128,
string='Paypal account', help="Paypal account (email) for receiving online payments (credit card, etc.) If you set a paypal account, the customer will be able to pay your invoices or quotations with a button \"Pay with Paypal\" in automated emails or through the OpenERP portal."), string='Paypal account', help="Paypal account (email) for receiving online payments (credit card, etc.) If you set a paypal account, the customer will be able to pay your invoices or quotations with a button \"Pay with Paypal\" in automated emails or through the OpenERP portal."),
'company_footer': fields.related('company_id', 'rml_footer2', type='char', size=250, readonly=True, 'company_footer': fields.related('company_id', 'rml_footer', type='text', readonly=True,
string='Bank accounts on reports will display as followed', help="Bank accounts as printed in the footer of each customer document. This is for information purpose only, you should configure these bank accounts through the above button \"Configure Bank Accounts\"."), string='Bank accounts footer preview', help="Bank accounts as printed in the footer of each printed document"),
'has_chart_of_accounts': fields.boolean('Company has a chart of accounts'), 'has_chart_of_accounts': fields.boolean('Company has a chart of accounts'),
'chart_template_id': fields.many2one('account.chart.template', 'Template', domain="[('visible','=', True)]"), 'chart_template_id': fields.many2one('account.chart.template', 'Template', domain="[('visible','=', True)]"),
'code_digits': fields.integer('# of Digits', help="No. of digits to use for account code"), 'code_digits': fields.integer('# of Digits', help="No. of digits to use for account code"),
'tax_calculation_rounding_method': fields.related('company_id', 'tax_calculation_rounding_method': fields.related('company_id',
'tax_calculation_rounding_method', type='selection', selection=[ 'tax_calculation_rounding_method', type='selection', selection=[
('round_per_line', 'Round per Line'), ('round_per_line', 'Round per line'),
('round_globally', 'Round Globally'), ('round_globally', 'Round globally'),
], string='Tax calculation rounding method', ], string='Tax calculation rounding method',
help="If you select 'Round per Line' : for each tax, the tax amount will first be computed and rounded for each PO/SO/invoice line and then these rounded amounts will be summed, leading to the total amount for that tax. If you select 'Round Globally': for each tax, the tax amount will be computed for each PO/SO/invoice line, then these amounts will be summed and eventually this total tax amount will be rounded. If you sell with tax included, you should choose 'Round per line' because you certainly want the sum of your tax-included line subtotals to be equal to the total amount with taxes."), help="If you select 'Round per line' : for each tax, the tax amount will first be computed and rounded for each PO/SO/invoice line and then these rounded amounts will be summed, leading to the total amount for that tax. If you select 'Round globally': for each tax, the tax amount will be computed for each PO/SO/invoice line, then these amounts will be summed and eventually this total tax amount will be rounded. If you sell with tax included, you should choose 'Round per line' because you certainly want the sum of your tax-included line subtotals to be equal to the total amount with taxes."),
'sale_tax': fields.many2one("account.tax.template", "Default sale tax"), 'sale_tax': fields.many2one("account.tax.template", "Default sale tax"),
'purchase_tax': fields.many2one("account.tax.template", "Default purchase tax"), 'purchase_tax': fields.many2one("account.tax.template", "Default purchase tax"),
'sale_tax_rate': fields.float('Sales tax (%)'), 'sale_tax_rate': fields.float('Sales tax (%)'),
@ -72,40 +72,40 @@ class account_config_settings(osv.osv_memory):
'sale_refund_journal_id': fields.many2one('account.journal', 'Sale refund journal'), 'sale_refund_journal_id': fields.many2one('account.journal', 'Sale refund journal'),
'sale_refund_sequence_prefix': fields.related('sale_refund_journal_id', 'sequence_id', 'prefix', type='char', string='Credit note sequence'), 'sale_refund_sequence_prefix': fields.related('sale_refund_journal_id', 'sequence_id', 'prefix', type='char', string='Credit note sequence'),
'sale_refund_sequence_next': fields.related('sale_refund_journal_id', 'sequence_id', 'number_next', type='integer', string='Next credit note number'), 'sale_refund_sequence_next': fields.related('sale_refund_journal_id', 'sequence_id', 'number_next', type='integer', string='Next credit note number'),
'purchase_journal_id': fields.many2one('account.journal', 'Purchase Journal'), 'purchase_journal_id': fields.many2one('account.journal', 'Purchase journal'),
'purchase_sequence_prefix': fields.related('purchase_journal_id', 'sequence_id', 'prefix', type='char', string='Supplier invoice sequence'), 'purchase_sequence_prefix': fields.related('purchase_journal_id', 'sequence_id', 'prefix', type='char', string='Supplier invoice sequence'),
'purchase_sequence_next': fields.related('purchase_journal_id', 'sequence_id', 'number_next', type='integer', string='Next supplier invoice number'), 'purchase_sequence_next': fields.related('purchase_journal_id', 'sequence_id', 'number_next', type='integer', string='Next supplier invoice number'),
'purchase_refund_journal_id': fields.many2one('account.journal', 'Purchase refund journal'), 'purchase_refund_journal_id': fields.many2one('account.journal', 'Purchase refund journal'),
'purchase_refund_sequence_prefix': fields.related('purchase_refund_journal_id', 'sequence_id', 'prefix', type='char', string='Supplier credit note sequence'), 'purchase_refund_sequence_prefix': fields.related('purchase_refund_journal_id', 'sequence_id', 'prefix', type='char', string='Supplier credit note sequence'),
'purchase_refund_sequence_next': fields.related('purchase_refund_journal_id', 'sequence_id', 'number_next', type='integer', string='Next supplier credit note number'), 'purchase_refund_sequence_next': fields.related('purchase_refund_journal_id', 'sequence_id', 'number_next', type='integer', string='Next supplier credit note number'),
'module_account_check_writing': fields.boolean('pay your suppliers by check', 'module_account_check_writing': fields.boolean('Pay your suppliers by check',
help="""This allows you to check writing and printing. help="""This allows you to check writing and printing.
This installs the module account_check_writing."""), This installs the module account_check_writing."""),
'module_account_accountant': fields.boolean('full accounting features: journals, legal statements, chart of accounts, etc.', 'module_account_accountant': fields.boolean('Full accounting features: journals, legal statements, chart of accounts, etc.',
help="""If you do not check this box, you will be able to do invoicing & payments, but not accounting (Journal Items, Chart of Accounts, ...)"""), help="""If you do not check this box, you will be able to do invoicing & payments, but not accounting (Journal Items, Chart of Accounts, ...)"""),
'module_account_asset': fields.boolean('assets management', 'module_account_asset': fields.boolean('Assets management',
help="""This allows you to manage the assets owned by a company or a person. help="""This allows you to manage the assets owned by a company or a person.
It keeps track of the depreciation occurred on those assets, and creates account move for those depreciation lines. It keeps track of the depreciation occurred on those assets, and creates account move for those depreciation lines.
This installs the module account_asset. If you do not check this box, you will be able to do invoicing & payments, This installs the module account_asset. If you do not check this box, you will be able to do invoicing & payments,
but not accounting (Journal Items, Chart of Accounts, ...)"""), but not accounting (Journal Items, Chart of Accounts, ...)"""),
'module_account_budget': fields.boolean('budget management', 'module_account_budget': fields.boolean('Budget management',
help="""This allows accountants to manage analytic and crossovered budgets. help="""This allows accountants to manage analytic and crossovered budgets.
Once the master budgets and the budgets are defined, Once the master budgets and the budgets are defined,
the project managers can set the planned amount on each analytic account. the project managers can set the planned amount on each analytic account.
This installs the module account_budget."""), This installs the module account_budget."""),
'module_account_payment': fields.boolean('manage payment orders', 'module_account_payment': fields.boolean('Manage payment orders',
help="""This allows you to create and manage your payment orders, with purposes to help="""This allows you to create and manage your payment orders, with purposes to
* serve as base for an easy plug-in of various automated payment mechanisms, and * serve as base for an easy plug-in of various automated payment mechanisms, and
* provide a more efficient way to manage invoice payments. * provide a more efficient way to manage invoice payments.
This installs the module account_payment."""), This installs the module account_payment."""),
'module_account_voucher': fields.boolean('manage customer payments', 'module_account_voucher': fields.boolean('Manage customer payments',
help="""This includes all the basic requirements of voucher entries for bank, cash, sales, purchase, expense, contra, etc. help="""This includes all the basic requirements of voucher entries for bank, cash, sales, purchase, expense, contra, etc.
This installs the module account_voucher."""), This installs the module account_voucher."""),
'module_account_followup': fields.boolean('manage customer payment follow-ups', 'module_account_followup': fields.boolean('Manage customer payment follow-ups',
help="""This allows to automate letters for unpaid invoices, with multi-level recalls. help="""This allows to automate letters for unpaid invoices, with multi-level recalls.
This installs the module account_followup."""), This installs the module account_followup."""),
'group_proforma_invoices': fields.boolean('allow pro-forma invoices', 'group_proforma_invoices': fields.boolean('Allow pro-forma invoices',
implied_group='account.group_proforma_invoices', implied_group='account.group_proforma_invoices',
help="Allows you to put invoices in pro-forma state."), help="Allows you to put invoices in pro-forma state."),
'default_sale_tax': fields.many2one('account.tax', 'Default sale tax', 'default_sale_tax': fields.many2one('account.tax', 'Default sale tax',
@ -114,6 +114,9 @@ class account_config_settings(osv.osv_memory):
help="This purchase tax will be assigned by default on new products."), help="This purchase tax will be assigned by default on new products."),
'decimal_precision': fields.integer('Decimal precision on journal entries', 'decimal_precision': fields.integer('Decimal precision on journal entries',
help="""As an example, a decimal precision of 2 will allow journal entries like: 9.99 EUR, whereas a decimal precision of 4 will allow journal entries like: 0.0231 EUR."""), help="""As an example, a decimal precision of 2 will allow journal entries like: 9.99 EUR, whereas a decimal precision of 4 will allow journal entries like: 0.0231 EUR."""),
'group_multi_currency': fields.boolean('Allow multi currencies',
implied_group='base.group_multi_currency',
help="Allows you multi currency environment"),
} }
def _default_company(self, cr, uid, context=None): def _default_company(self, cr, uid, context=None):
@ -145,42 +148,45 @@ class account_config_settings(osv.osv_memory):
def onchange_company_id(self, cr, uid, ids, company_id): def onchange_company_id(self, cr, uid, ids, company_id):
# update related fields # update related fields
company = self.pool.get('res.company').browse(cr, uid, company_id) values = {}
has_chart_of_accounts = company_id not in self.pool.get('account.installer').get_unconfigured_cmp(cr, uid) values['currency_id'] = False
fiscalyear_count = self.pool.get('account.fiscalyear').search_count(cr, uid, if company_id:
[('date_start', '<=', time.strftime('%Y-%m-%d')), ('date_stop', '>=', time.strftime('%Y-%m-%d')), company = self.pool.get('res.company').browse(cr, uid, company_id)
('company_id', '=', company_id)]) has_chart_of_accounts = company_id not in self.pool.get('account.installer').get_unconfigured_cmp(cr, uid)
values = { fiscalyear_count = self.pool.get('account.fiscalyear').search_count(cr, uid,
'expects_chart_of_accounts': company.expects_chart_of_accounts, [('date_start', '<=', time.strftime('%Y-%m-%d')), ('date_stop', '>=', time.strftime('%Y-%m-%d')),
'currency_id': company.currency_id.id, ('company_id', '=', company_id)])
'paypal_account': company.paypal_account, values = {
'company_footer': company.rml_footer2, 'expects_chart_of_accounts': company.expects_chart_of_accounts,
'has_chart_of_accounts': has_chart_of_accounts, 'currency_id': company.currency_id.id,
'has_fiscal_year': bool(fiscalyear_count), 'paypal_account': company.paypal_account,
'chart_template_id': False, 'company_footer': company.rml_footer,
'tax_calculation_rounding_method': company.tax_calculation_rounding_method, 'has_chart_of_accounts': has_chart_of_accounts,
} 'has_fiscal_year': bool(fiscalyear_count),
# update journals and sequences 'chart_template_id': False,
for journal_type in ('sale', 'sale_refund', 'purchase', 'purchase_refund'): 'tax_calculation_rounding_method': company.tax_calculation_rounding_method,
for suffix in ('_journal_id', '_sequence_prefix', '_sequence_next'): }
values[journal_type + suffix] = False # update journals and sequences
journal_obj = self.pool.get('account.journal') for journal_type in ('sale', 'sale_refund', 'purchase', 'purchase_refund'):
journal_ids = journal_obj.search(cr, uid, [('company_id', '=', company_id)]) for suffix in ('_journal_id', '_sequence_prefix', '_sequence_next'):
for journal in journal_obj.browse(cr, uid, journal_ids): values[journal_type + suffix] = False
if journal.type in ('sale', 'sale_refund', 'purchase', 'purchase_refund'): journal_obj = self.pool.get('account.journal')
values.update({ journal_ids = journal_obj.search(cr, uid, [('company_id', '=', company_id)])
journal.type + '_journal_id': journal.id, for journal in journal_obj.browse(cr, uid, journal_ids):
journal.type + '_sequence_prefix': journal.sequence_id.prefix, if journal.type in ('sale', 'sale_refund', 'purchase', 'purchase_refund'):
journal.type + '_sequence_next': journal.sequence_id.number_next, values.update({
}) journal.type + '_journal_id': journal.id,
# update taxes journal.type + '_sequence_prefix': journal.sequence_id.prefix,
ir_values = self.pool.get('ir.values') journal.type + '_sequence_next': journal.sequence_id.number_next,
taxes_id = ir_values.get_default(cr, uid, 'product.product', 'taxes_id', company_id=company_id) })
supplier_taxes_id = ir_values.get_default(cr, uid, 'product.product', 'supplier_taxes_id', company_id=company_id) # update taxes
values.update({ ir_values = self.pool.get('ir.values')
'default_sale_tax': isinstance(taxes_id, list) and taxes_id[0] or taxes_id, taxes_id = ir_values.get_default(cr, uid, 'product.product', 'taxes_id', company_id=company_id)
'default_purchase_tax': isinstance(supplier_taxes_id, list) and supplier_taxes_id[0] or supplier_taxes_id, supplier_taxes_id = ir_values.get_default(cr, uid, 'product.product', 'supplier_taxes_id', company_id=company_id)
}) values.update({
'default_sale_tax': isinstance(taxes_id, list) and taxes_id[0] or taxes_id,
'default_purchase_tax': isinstance(supplier_taxes_id, list) and supplier_taxes_id[0] or supplier_taxes_id,
})
return {'value': values} return {'value': values}
def onchange_chart_template_id(self, cr, uid, ids, chart_template_id, context=None): def onchange_chart_template_id(self, cr, uid, ids, chart_template_id, context=None):
@ -217,6 +223,16 @@ class account_config_settings(osv.osv_memory):
return {'value': {'date_stop': end_date.strftime('%Y-%m-%d')}} return {'value': {'date_stop': end_date.strftime('%Y-%m-%d')}}
return {} return {}
def open_company_form(self, cr, uid, ids, context=None):
config = self.browse(cr, uid, ids[0], context)
return {
'type': 'ir.actions.act_window',
'name': 'Configure your Company',
'res_model': 'res.company',
'res_id': config.company_id.id,
'view_mode': 'form',
}
def set_default_taxes(self, cr, uid, ids, context=None): def set_default_taxes(self, cr, uid, ids, context=None):
""" set default sale and purchase taxes for products """ """ set default sale and purchase taxes for products """
ir_values = self.pool.get('ir.values') ir_values = self.pool.get('ir.values')

View File

@ -121,6 +121,10 @@
</div> </div>
<label for="id" string="Features"/> <label for="id" string="Features"/>
<div> <div>
<div>
<field name="group_multi_currency" class="oe_inline"/>
<label for="group_multi_currency"/>
</div>
<div> <div>
<field name="module_account_accountant" class="oe_inline"/> <field name="module_account_accountant" class="oe_inline"/>
<label for="module_account_accountant"/> <label for="module_account_accountant"/>
@ -219,12 +223,10 @@
<label for="id" string="Configuration"/> <label for="id" string="Configuration"/>
<div> <div>
<div> <div>
<button name="%(action_bank_tree)d"
string="Configure your bank accounts"
icon="gtk-go-forward"
type="action"
class="oe_inline oe_link"/>
<label for="company_footer"/> <label for="company_footer"/>
<button name="open_company_form" type="object"
string="Configure your company bank accounts" icon="gtk-go-forward"
class="oe_inline oe_link"/>
<field name="company_footer"/> <field name="company_footer"/>
</div> </div>
<div> <div>

View File

@ -1,16 +1,20 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<openerp><data> <openerp>
<data>
<record id="group_account_invoice" model="res.groups"> <record id="group_account_invoice" model="res.groups">
<field name="name">Invoicing &amp; Payments</field> <field name="name">Invoicing &amp; Payments</field>
<field name="category_id" ref="base.module_category_accounting_and_finance"/> <field name="category_id" ref="base.module_category_accounting_and_finance"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/> <field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
</record> </record>
<record id="group_account_user" model="res.groups"> <record id="group_account_user" model="res.groups">
<field name="name">Accountant</field> <field name="name">Accountant</field>
<field name="category_id" ref="base.module_category_accounting_and_finance"/> <field name="category_id" ref="base.module_category_accounting_and_finance"/>
<field name="implied_ids" eval="[(4, ref('group_account_invoice'))]"/> <field name="implied_ids" eval="[(4, ref('group_account_invoice'))]"/>
</record> </record>
<record id="group_account_manager" model="res.groups"> <record id="group_account_manager" model="res.groups">
<field name="name">Manager</field> <field name="name">Manager</field>
<field name="category_id" ref="base.module_category_accounting_and_finance"/> <field name="category_id" ref="base.module_category_accounting_and_finance"/>
@ -24,100 +28,107 @@
<record id="account_move_comp_rule" model="ir.rule"> <record id="account_move_comp_rule" model="ir.rule">
<field name="name">Account Entry</field> <field name="name">Account Entry</field>
<field ref="model_account_move" name="model_id"/> <field name="model_id" ref="model_account_move"/>
<field eval="True" name="global"/> <field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
<record id="account_move_line_comp_rule" model="ir.rule"> <record id="account_move_line_comp_rule" model="ir.rule">
<field name="name">Entry lines</field> <field name="name">Entry lines</field>
<field model="ir.model" name="model_id" ref="model_account_move_line"/> <field name="model_id" ref="model_account_move_line"/>
<field eval="True" name="global"/> <field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
<record id="journal_period_comp_rule" model="ir.rule"> <record id="journal_period_comp_rule" model="ir.rule">
<field name="name">Journal Period</field> <field name="name">Journal Period</field>
<field model="ir.model" name="model_id" ref="model_account_journal_period"/> <field name="model_id" ref="model_account_journal_period"/>
<field eval="True" name="global"/> <field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
<record id="journal_comp_rule" model="ir.rule"> <record id="journal_comp_rule" model="ir.rule">
<field name="name">Journal multi-company</field> <field name="name">Journal multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_journal"/> <field name="model_id" ref="model_account_journal"/>
<field eval="True" name="global"/> <field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
<record id="analytic_journal_comp_rule" model="ir.rule"> <record id="analytic_journal_comp_rule" model="ir.rule">
<field name="name">Analytic journal multi-company</field> <field name="name">Analytic journal multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_analytic_journal"/> <field name="model_id" ref="model_account_analytic_journal"/>
<field eval="True" name="global"/> <field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
<record id="period_comp_rule" model="ir.rule"> <record id="period_comp_rule" model="ir.rule">
<field name="name">Period multi-company</field> <field name="name">Period multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_period"/> <field name="model_id" ref="model_account_period"/>
<field eval="True" name="global"/> <field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
<record id="fiscal_year_comp_rule" model="ir.rule"> <record id="fiscal_year_comp_rule" model="ir.rule">
<field name="name">Fiscal year multi-company</field> <field name="name">Fiscal year multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_fiscalyear"/> <field name="model_id" ref="model_account_fiscalyear"/>
<field eval="True" name="global"/> <field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
<record id="account_comp_rule" model="ir.rule"> <record id="account_comp_rule" model="ir.rule">
<field name="name">Account multi-company</field> <field name="name">Account multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_account"/> <field name="model_id" ref="model_account_account"/>
<field eval="True" name="global"/> <field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
<record id="tax_comp_rule" model="ir.rule"> <record id="tax_comp_rule" model="ir.rule">
<field name="name">Tax multi-company</field> <field name="name">Tax multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_tax"/> <field name="model_id" ref="model_account_tax"/>
<field eval="True" name="global"/> <field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
<record id="tax_code_comp_rule" model="ir.rule"> <record id="tax_code_comp_rule" model="ir.rule">
<field name="name">Tax code multi-company</field> <field name="name">Tax code multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_tax_code"/> <field name="model_id" ref="model_account_tax_code"/>
<field eval="True" name="global"/> <field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
<record id="invoice_comp_rule" model="ir.rule"> <record id="invoice_comp_rule" model="ir.rule">
<field name="name">Invoice multi-company</field> <field name="name">Invoice multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_invoice"/> <field name="model_id" ref="model_account_invoice"/>
<field eval="True" name="global"/> <field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
<record id="invoice_analysis_comp_rule" model="ir.rule"> <record id="invoice_analysis_comp_rule" model="ir.rule">
<field name="name">Invoice Analysis multi-company</field> <field name="name">Invoice Analysis multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_invoice_report"/> <field name="model_id" ref="model_account_invoice_report"/>
<field eval="True" name="global"/> <field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="entry_analysis_comp_rule" model="ir.rule">
<field name="name">Entries Analysis multi-company</field>
<field name="model_id" ref="model_account_entries_report"/>
<field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
<record id="account_fiscal_position_comp_rule" model="ir.rule"> <record id="account_fiscal_position_comp_rule" model="ir.rule">
<field name="name">Account fiscal Mapping company rule</field> <field name="name">Account fiscal Mapping company rule</field>
<field model="ir.model" name="model_id" ref="model_account_fiscal_position"/> <field name="model_id" ref="model_account_fiscal_position"/>
<field eval="True" name="global"/> <field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
<record id="account_model_comp_rule" model="ir.rule"> <record id="account_model_comp_rule" model="ir.rule">
<field name="name">Account model company rule</field> <field name="name">Account model company rule</field>
<field model="ir.model" name="model_id" ref="model_account_model"/> <field name="model_id" ref="model_account_model"/>
<field eval="True" name="global"/> <field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
@ -142,4 +153,5 @@
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
</data></openerp> </data>
</openerp>

View File

@ -82,6 +82,7 @@ access_account_entries_report_invoice,account.entries.report,model_account_entri
access_account_entries_report_employee,account.entries.report employee,model_account_entries_report,base.group_user,1,0,0,0 access_account_entries_report_employee,account.entries.report employee,model_account_entries_report,base.group_user,1,0,0,0
access_analytic_entries_report_manager,analytic.entries.report,model_analytic_entries_report,account.group_account_manager,1,0,0,0 access_analytic_entries_report_manager,analytic.entries.report,model_analytic_entries_report,account.group_account_manager,1,0,0,0
access_account_cashbox_line,account.cashbox.line,model_account_cashbox_line,account.group_account_user,1,1,1,1 access_account_cashbox_line,account.cashbox.line,model_account_cashbox_line,account.group_account_user,1,1,1,1
access_account_journal_cashbox_line,account.journal.cashbox.line,model_account_journal_cashbox_line,account.group_account_user,1,1,1,0
access_account_journal_view_invoice,account.journal.view invoice,model_account_journal_view,account.group_account_invoice,1,1,1,1 access_account_journal_view_invoice,account.journal.view invoice,model_account_journal_view,account.group_account_invoice,1,1,1,1
access_account_journal_column_invoice,account.journal.column invoice,model_account_journal_column,account.group_account_invoice,1,1,1,1 access_account_journal_column_invoice,account.journal.column invoice,model_account_journal_column,account.group_account_invoice,1,1,1,1
access_account_invoice_tax_accountant,account.invoice.tax accountant,model_account_invoice_tax,account.group_account_user,1,0,0,0 access_account_invoice_tax_accountant,account.invoice.tax accountant,model_account_invoice_tax,account.group_account_user,1,0,0,0

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
82 access_account_entries_report_employee account.entries.report employee model_account_entries_report base.group_user 1 0 0 0
83 access_analytic_entries_report_manager analytic.entries.report model_analytic_entries_report account.group_account_manager 1 0 0 0
84 access_account_cashbox_line account.cashbox.line model_account_cashbox_line account.group_account_user 1 1 1 1
85 access_account_journal_cashbox_line account.journal.cashbox.line model_account_journal_cashbox_line account.group_account_user 1 1 1 0
86 access_account_journal_view_invoice account.journal.view invoice model_account_journal_view account.group_account_invoice 1 1 1 1
87 access_account_journal_column_invoice account.journal.column invoice model_account_journal_column account.group_account_invoice 1 1 1 1
88 access_account_invoice_tax_accountant account.invoice.tax accountant model_account_invoice_tax account.group_account_user 1 0 0 0

View File

@ -0,0 +1,19 @@
.openerp .oe_account_reconciliation {
border-bottom: 1px solid #CACACA;
padding: 5px;
}
.openerp .oe_account_reconciliation button {
margin: 3px;
}
.openerp .oe_account_reconciliation>div {
display: table;
width: 100%;
}
.openerp .oe_account_reconciliation>div>div {
display: table-cell;
width: 50%:
}

View File

@ -0,0 +1,124 @@
openerp.account = function (instance) {
var _t = instance.web._t,
_lt = instance.web._lt;
var QWeb = instance.web.qweb;
instance.web.account = {};
instance.web.views.add('account_reconciliation_list', 'instance.web.account.ReconciliationListView');
instance.web.account.ReconciliationListView = instance.web.ListView.extend({
init: function() {
this._super.apply(this, arguments);
var self = this;
this.current_partner = null;
this.do_select.add(function() {
if (self.get_selected_ids().length === 0) {
self.$(".oe_account_recon_reconcile").attr("disabled", "");
} else {
self.$(".oe_account_recon_reconcile").removeAttr("disabled");
}
});
},
on_loaded: function() {
var self = this;
var tmp = this._super.apply(this, arguments);
if (this.partners) {
this.$el.prepend(QWeb.render("AccountReconciliation", {widget: this}));
this.$(".oe_account_recon_previous").click(function() {
self.current_partner = (self.current_partner - 1) % self.partners.length;
self.search_by_partner();
});
this.$(".oe_account_recon_next").click(function() {
self.current_partner = (self.current_partner + 1) % self.partners.length;
self.search_by_partner();
});
this.$(".oe_account_recon_reconcile").click(function() {
self.reconcile();
});
this.$(".oe_account_recom_mark_as_reconciled").click(function() {
self.mark_as_reconciled();
});
}
return tmp;
},
do_search: function(domain, context, group_by) {
var self = this;
this.last_domain = domain;
this.last_context = context;
this.last_group_by = group_by;
this.old_search = _.bind(this._super, this);
var mod = new instance.web.Model("account.move.line", context, domain);
return mod.call("list_partners_to_reconcile", []).pipe(function(result) {
var current = self.current_partner !== null ? self.partners[self.current_partner][0] : null;
self.partners = result;
var index = _.find(_.range(self.partners.length), function(el) {
if (current === self.partners[el][0])
return true;
});
if (index !== undefined)
self.current_partner = index;
else
self.current_partner = self.partners.length == 0 ? null : 0;
self.search_by_partner();
});
},
search_by_partner: function() {
var self = this;
var fct = function() {
return self.old_search(new instance.web.CompoundDomain(self.last_domain,
[["partner_id", "in", self.current_partner === null ? [] :
[self.partners[self.current_partner][0]] ]]), self.last_context, self.last_group_by);
};
if (self.current_partner === null) {
self.last_reconciliation_date = _t("Never");
return fct();
} else {
return new instance.web.Model("res.partner").call("read",
[self.partners[self.current_partner][0], ["last_reconciliation_date"]]).pipe(function(res) {
self.last_reconciliation_date =
instance.web.format_value(res.last_reconciliation_date, {"type": "datetime"}, _t("Never"));
return fct();
});
}
},
reconcile: function() {
var self = this;
var ids = this.get_selected_ids();
if (ids.length === 0) {
instance.web.dialog($("<div />").text(_t("You must choose at least one record.")), {
title: _t("Warning"),
modal: true
});
return false;
}
new instance.web.Model("ir.model.data").call("get_object_reference", ["account", "action_view_account_move_line_reconcile"]).pipe(function(result) {
var additional_context = _.extend({
active_id: ids[0],
active_ids: ids,
active_model: self.model
});
return self.rpc("/web/action/load", {
action_id: result[1],
context: additional_context
}, function (result) {
result = result.result;
result.context = _.extend(result.context || {}, additional_context);
result.flags = result.flags || {};
result.flags.new_window = true;
return self.do_action(result, function () {
self.do_search(self.last_domain, self.last_context, self.last_group_by);
});
});
});
},
mark_as_reconciled: function() {
var self = this;
var id = self.partners[self.current_partner][0];
new instance.web.Model("res.partner").call("mark_as_reconciled", [[id]]).pipe(function() {
self.do_search(self.last_domain, self.last_context, self.last_group_by);
});
},
});
};

Some files were not shown because too many files have changed in this diff Show More