[MERGE]merge with latest trunk

bzr revid: csn@openerp.com-20121113130329-a3h2mpopgp14r219
This commit is contained in:
Cedric Snauwaert 2012-11-13 14:03:29 +01:00
commit 32c47a4024
5852 changed files with 98849 additions and 91303 deletions

View File

@ -541,10 +541,18 @@ class account_account(osv.osv):
return False return False
return True return True
def _check_company_account(self, cr, uid, ids, context=None):
for account in self.browse(cr, uid, ids, context=context):
if account.parent_id:
if account.company_id != account.parent_id.company_id:
return False
return True
_constraints = [ _constraints = [
(_check_recursion, 'Error!\nYou cannot create recursive accounts.', ['parent_id']), (_check_recursion, 'Error!\nYou cannot create recursive accounts.', ['parent_id']),
(_check_type, 'Configuration Error!\nYou cannot define children to an account with internal type different of "View".', ['type']), (_check_type, 'Configuration Error!\nYou cannot define children to an account with internal type different of "View".', ['type']),
(_check_account_type, 'Configuration Error!\nYou cannot select an account type with a deferral method different of "Unreconciled" for accounts with internal type "Payable/Receivable".', ['user_type','type']), (_check_account_type, 'Configuration Error!\nYou cannot select an account type with a deferral method different of "Unreconciled" for accounts with internal type "Payable/Receivable".', ['user_type','type']),
(_check_company_account, 'Error!\nYou cannot create an account which has parent account of different company.', ['parent_id']),
] ]
_sql_constraints = [ _sql_constraints = [
('code_company_uniq', 'unique (code,company_id)', 'The code of the account must be unique per company !') ('code_company_uniq', 'unique (code,company_id)', 'The code of the account must be unique per company !')
@ -1007,7 +1015,7 @@ class account_period(osv.osv):
'date_stop': fields.date('End of Period', required=True, states={'done':[('readonly',True)]}), 'date_stop': fields.date('End of Period', required=True, states={'done':[('readonly',True)]}),
'fiscalyear_id': fields.many2one('account.fiscalyear', 'Fiscal Year', required=True, states={'done':[('readonly',True)]}, select=True), 'fiscalyear_id': fields.many2one('account.fiscalyear', 'Fiscal Year', required=True, states={'done':[('readonly',True)]}, select=True),
'state': fields.selection([('draft','Open'), ('done','Closed')], 'Status', readonly=True, 'state': fields.selection([('draft','Open'), ('done','Closed')], 'Status', readonly=True,
help='When monthly periods are created. The state is \'Draft\'. At the end of monthly period it is in \'Done\' state.'), help='When monthly periods are created. The status is \'Draft\'. At the end of monthly period it is in \'Done\' status.'),
'company_id': fields.related('fiscalyear_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True) 'company_id': fields.related('fiscalyear_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True)
} }
_defaults = { _defaults = {
@ -1134,7 +1142,7 @@ class account_journal_period(osv.osv):
'icon': fields.function(_icon_get, string='Icon', type='char', size=32), 'icon': fields.function(_icon_get, string='Icon', type='char', size=32),
'active': fields.boolean('Active', required=True, help="If the active field is set to False, it will allow you to hide the journal period without removing it."), 'active': fields.boolean('Active', required=True, help="If the active field is set to False, it will allow you to hide the journal period without removing it."),
'state': fields.selection([('draft','Draft'), ('printed','Printed'), ('done','Done')], 'Status', required=True, readonly=True, 'state': fields.selection([('draft','Draft'), ('printed','Printed'), ('done','Done')], 'Status', required=True, readonly=True,
help='When journal period is created. The state is \'Draft\'. If a report is printed it comes to \'Printed\' state. When all transactions are done, it comes in \'Done\' state.'), help='When journal period is created. The status is \'Draft\'. If a report is printed it comes to \'Printed\' status. When all transactions are done, it comes in \'Done\' status.'),
'fiscalyear_id': fields.related('period_id', 'fiscalyear_id', string='Fiscal Year', type='many2one', relation='account.fiscalyear'), 'fiscalyear_id': fields.related('period_id', 'fiscalyear_id', string='Fiscal Year', type='many2one', relation='account.fiscalyear'),
'company_id': fields.related('journal_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True) 'company_id': fields.related('journal_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True)
} }
@ -1282,7 +1290,7 @@ class account_move(osv.osv):
'period_id': fields.many2one('account.period', 'Period', required=True, states={'posted':[('readonly',True)]}), 'period_id': fields.many2one('account.period', 'Period', required=True, states={'posted':[('readonly',True)]}),
'journal_id': fields.many2one('account.journal', 'Journal', required=True, states={'posted':[('readonly',True)]}), 'journal_id': fields.many2one('account.journal', 'Journal', required=True, states={'posted':[('readonly',True)]}),
'state': fields.selection([('draft','Unposted'), ('posted','Posted')], 'Status', required=True, readonly=True, 'state': fields.selection([('draft','Unposted'), ('posted','Posted')], 'Status', required=True, readonly=True,
help='All manually created new journal entries are usually in the state \'Unposted\', but you can set the option to skip that state on the related journal. In that case, they will behave as journal entries automatically created by the system on document validation (invoices, bank statements...) and will be created in \'Posted\' state.'), help='All manually created new journal entries are usually in the status \'Unposted\', but you can set the option to skip that status on the related journal. In that case, they will behave as journal entries automatically created by the system on document validation (invoices, bank statements...) and will be created in \'Posted\' status.'),
'line_id': fields.one2many('account.move.line', 'move_id', 'Entries', states={'posted':[('readonly',True)]}), 'line_id': fields.one2many('account.move.line', 'move_id', 'Entries', states={'posted':[('readonly',True)]}),
'to_check': fields.boolean('To Review', help='Check this box if you are unsure of that journal entry and if you want to note it as \'to be reviewed\' by an accounting expert.'), 'to_check': fields.boolean('To Review', help='Check this box if you are unsure of that journal entry and if you want to note it as \'to be reviewed\' by an accounting expert.'),
'partner_id': fields.related('line_id', 'partner_id', type="many2one", relation="res.partner", string="Partner", store=True), 'partner_id': fields.related('line_id', 'partner_id', type="many2one", relation="res.partner", string="Partner", store=True),
@ -1431,6 +1439,9 @@ class account_move(osv.osv):
if 'line_id' in vals: if 'line_id' in vals:
c = context.copy() c = context.copy()
c['novalidate'] = True c['novalidate'] = True
c['period_id'] = vals['period_id']
c['journal_id'] = vals['journal_id']
c['date'] = vals['date']
result = super(account_move, self).create(cr, uid, vals, c) result = super(account_move, self).create(cr, uid, vals, c)
self.validate(cr, uid, [result], context) self.validate(cr, uid, [result], context)
else: else:

View File

@ -39,7 +39,6 @@ class account_analytic_line(osv.osv):
} }
_defaults = { _defaults = {
'date': fields.date.context_today,
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'account.analytic.line', context=c), 'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'account.analytic.line', context=c),
} }
_order = 'date desc' _order = 'date desc'
@ -108,7 +107,7 @@ class account_analytic_line(osv.osv):
if journal_id: if journal_id:
journal = analytic_journal_obj.browse(cr, uid, journal_id, context=context) journal = analytic_journal_obj.browse(cr, uid, journal_id, context=context)
if journal.type == 'sale': if journal.type == 'sale':
product_price_type_ids = product_price_type_obj.search(cr, uid, [('field','=','list_price')], context) product_price_type_ids = product_price_type_obj.search(cr, uid, [('field','=','list_price')], context=context)
if product_price_type_ids: if product_price_type_ids:
pricetype = product_price_type_obj.browse(cr, uid, product_price_type_ids, context=context)[0] pricetype = product_price_type_obj.browse(cr, uid, product_price_type_ids, context=context)[0]
# Take the company currency as the reference one # Take the company currency as the reference one

View File

@ -61,7 +61,7 @@ class account_bank_statement(osv.osv):
return res return res
def _get_period(self, cr, uid, context=None): def _get_period(self, cr, uid, context=None):
periods = self.pool.get('account.period').find(cr, uid) periods = self.pool.get('account.period').find(cr, uid,context=context)
if periods: if periods:
return periods[0] return periods[0]
return False return False
@ -123,8 +123,8 @@ class account_bank_statement(osv.osv):
('open','Open'), # used by cash statements ('open','Open'), # used by cash statements
('confirm', 'Closed')], ('confirm', 'Closed')],
'Status', required=True, readonly="1", 'Status', required=True, readonly="1",
help='When new statement is created the state will be \'Draft\'.\n' help='When new statement is created the status will be \'Draft\'.\n'
'And after getting confirmation from the bank it will be in \'Confirmed\' state.'), 'And after getting confirmation from the bank it will be in \'Confirmed\' status.'),
'currency': fields.function(_currency, string='Currency', 'currency': fields.function(_currency, string='Currency',
type='many2one', relation='res.currency'), type='many2one', relation='res.currency'),
'account_id': fields.related('journal_id', 'default_debit_account_id', type='many2one', relation='account.account', string='Account used in this journal', readonly=True, help='used in statement reconciliation domain, but shouldn\'t be used elswhere.'), 'account_id': fields.related('journal_id', 'default_debit_account_id', type='many2one', relation='account.account', string='Account used in this journal', readonly=True, help='used in statement reconciliation domain, but shouldn\'t be used elswhere.'),

View File

@ -78,7 +78,7 @@ class account_cash_statement(osv.osv):
""" """
res = {} res = {}
for statement in self.browse(cr, uid, ids, context=context): for statement in self.browse(cr, uid, ids, context=context):
if statement.journal_id.type not in ('cash',): if (statement.journal_id.type not in ('cash',)) or (not statement.journal_id.cash_control):
continue continue
start = end = 0 start = end = 0
for line in statement.details_ids: for line in statement.details_ids:
@ -289,13 +289,13 @@ class account_cash_statement(osv.osv):
super(account_cash_statement, self).button_confirm_bank(cr, uid, ids, context=context) super(account_cash_statement, self).button_confirm_bank(cr, uid, ids, context=context)
absl_proxy = self.pool.get('account.bank.statement.line') absl_proxy = self.pool.get('account.bank.statement.line')
TABLES = (('Profit', 'profit_account_id'), ('Loss', 'loss_account_id'),) TABLES = ((_('Profit'), 'profit_account_id'), (_('Loss'), 'loss_account_id'),)
for obj in self.browse(cr, uid, ids, context=context): for obj in self.browse(cr, uid, ids, context=context):
if obj.difference == 0.0: if obj.difference == 0.0:
continue continue
for item_label, item_account in TALBES: for item_label, item_account in TABLES:
if getattr(obj.journal_id, item_account): if getattr(obj.journal_id, item_account):
raise osv.except_osv(_('Error!'), raise osv.except_osv(_('Error!'),
_('There is no %s Account on the journal %s.') % (item_label, obj.journal_id.name,)) _('There is no %s Account on the journal %s.') % (item_label, obj.journal_id.name,))

View File

@ -185,6 +185,7 @@ class account_invoice(osv.osv):
_columns = { _columns = {
'name': fields.char('Description', size=64, select=True, readonly=True, states={'draft':[('readonly',False)]}), 'name': fields.char('Description', size=64, select=True, readonly=True, states={'draft':[('readonly',False)]}),
'origin': fields.char('Source Document', size=64, help="Reference of the document that produced this invoice.", readonly=True, states={'draft':[('readonly',False)]}), 'origin': fields.char('Source Document', size=64, help="Reference of the document that produced this invoice.", readonly=True, states={'draft':[('readonly',False)]}),
'supplier_invoice_number': fields.char('Supplier Invoice Number', size=64, help="The reference of this invoice as provided by the supplier.", readonly=True, states={'draft':[('readonly',False)]}),
'type': fields.selection([ 'type': fields.selection([
('out_invoice','Customer Invoice'), ('out_invoice','Customer Invoice'),
('in_invoice','Supplier Invoice'), ('in_invoice','Supplier Invoice'),
@ -206,12 +207,12 @@ class account_invoice(osv.osv):
('open','Open'), ('open','Open'),
('paid','Paid'), ('paid','Paid'),
('cancel','Cancelled'), ('cancel','Cancelled'),
],'State', select=True, readonly=True, ],'Status', select=True, readonly=True,
help=' * The \'Draft\' state is used when a user is encoding a new and unconfirmed Invoice. \ help=' * The \'Draft\' status is used when a user is encoding a new and unconfirmed Invoice. \
\n* The \'Pro-forma\' when invoice is in Pro-forma state,invoice does not have an invoice number. \ \n* The \'Pro-forma\' when invoice is in Pro-forma status,invoice does not have an invoice number. \
\n* The \'Open\' state is used when user create invoice,a invoice number is generated.Its in open state till user does not pay invoice. \ \n* The \'Open\' status is used when user create invoice,a invoice number is generated.Its in open status till user does not pay invoice. \
\n* The \'Paid\' state is set automatically when the invoice is paid. Its related journal entries may or may not be reconciled. \ \n* The \'Paid\' status is set automatically when the invoice is paid. Its related journal entries may or may not be reconciled. \
\n* The \'Cancelled\' state is used when user cancel invoice.'), \n* The \'Cancelled\' status 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', readonly=True, states={'draft':[('readonly',False)]}, select=True, 'date_due': fields.date('Due Date', readonly=True, states={'draft':[('readonly',False)]}, select=True,
@ -864,8 +865,11 @@ class account_invoice(osv.osv):
self.check_tax_lines(cr, uid, inv, compute_taxes, ait_obj) self.check_tax_lines(cr, uid, inv, compute_taxes, ait_obj)
# I disabled the check_total feature # I disabled the check_total feature
#if inv.type in ('in_invoice', 'in_refund') and abs(inv.check_total - inv.amount_total) >= (inv.currency_id.rounding/2.0): group_check_total_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'account', 'group_supplier_inv_check_total')[1]
# raise osv.except_osv(_('Bad total !'), _('Please verify the price of the invoice !\nThe real total does not match the computed total.')) group_check_total = self.pool.get('res.groups').browse(cr, uid, group_check_total_id, context=context)
if group_check_total and uid in [x.id for x in group_check_total.users]:
if (inv.type in ('in_invoice', 'in_refund') and abs(inv.check_total - inv.amount_total) >= (inv.currency_id.rounding/2.0)):
raise osv.except_osv(_('Bad total !'), _('Please verify the price of the invoice !\nThe encoded total does not match the computed total.'))
if inv.payment_term: if inv.payment_term:
total_fixed = total_percent = 0 total_fixed = total_percent = 0
@ -979,13 +983,13 @@ class account_invoice(osv.osv):
for i in line: for i in line:
i[2]['period_id'] = period_id i[2]['period_id'] = period_id
ctx.update(invoice=inv)
move_id = move_obj.create(cr, uid, move, context=ctx) move_id = move_obj.create(cr, uid, move, context=ctx)
new_move_name = move_obj.browse(cr, uid, move_id, context=ctx).name new_move_name = move_obj.browse(cr, uid, move_id, context=ctx).name
# make the invoice point to that move # make the invoice point to that move
self.write(cr, uid, [inv.id], {'move_id': move_id,'period_id':period_id, 'move_name':new_move_name}, context=ctx) self.write(cr, uid, [inv.id], {'move_id': move_id,'period_id':period_id, 'move_name':new_move_name}, context=ctx)
# Pass invoice in context in method post: used if you want to get the same # Pass invoice in context in method post: used if you want to get the same
# account move reference when creating the same invoice after a cancelled one: # account move reference when creating the same invoice after a cancelled one:
ctx.update({'invoice':inv})
move_obj.post(cr, uid, [move_id], context=ctx) move_obj.post(cr, uid, [move_id], context=ctx)
self._log_event(cr, uid, ids) self._log_event(cr, uid, ids)
return True return True
@ -1359,7 +1363,7 @@ class account_invoice_line(osv.osv):
_description = "Invoice Line" _description = "Invoice Line"
_columns = { _columns = {
'name': fields.text('Description', required=True), 'name': fields.text('Description', required=True),
'origin': fields.char('Source', size=256, help="Reference of the document that produced this invoice."), 'origin': fields.char('Source Document', size=256, help="Reference of the document that produced this invoice."),
'sequence': fields.integer('Sequence', help="Gives the sequence of this line when displaying the invoice."), 'sequence': fields.integer('Sequence', help="Gives the sequence of this line when displaying the invoice."),
'invoice_id': fields.many2one('account.invoice', 'Invoice Reference', ondelete='cascade', select=True), 'invoice_id': fields.many2one('account.invoice', 'Invoice Reference', ondelete='cascade', select=True),
'uos_id': fields.many2one('product.uom', 'Unit of Measure', ondelete='set null'), 'uos_id': fields.many2one('product.uom', 'Unit of Measure', ondelete='set null'),

View File

@ -143,13 +143,11 @@
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="Supplier Invoice" version="7.0"> <form string="Supplier Invoice" version="7.0">
<header> <header>
<span groups="base.group_user"> <button name="invoice_open" states="draft,proforma2" string="Validate" class="oe_highlight" groups="account.group_account_invoice"/>
<button name="invoice_open" states="draft,proforma2" string="Validate" class="oe_highlight"/> <button name="%(action_account_invoice_refund)d" type='action' string='Ask Refund' states='open,paid' groups="account.group_account_invoice"/>
<button name="%(action_account_invoice_refund)d" type='action' string='Ask Refund' states='open,paid' />
<button name="invoice_cancel" states="draft,proforma2,sale,open" string="Cancel" groups="base.group_no_one"/> <button name="invoice_cancel" states="draft,proforma2,sale,open" string="Cancel" groups="base.group_no_one"/>
<button name="action_cancel_draft" states="cancel" string="Set to Draft" type="object"/> <button name="action_cancel_draft" states="cancel" string="Set to Draft" type="object" groups="account.group_account_invoice"/>
<button name='%(action_account_state_open)d' type='action' string='Re-Open' groups="account.group_account_invoice" attrs="{'invisible':['|', ('state','&lt;&gt;','paid'), ('reconciled', '=', True)]}" help="This button only appears when the state of the invoice is 'paid' (showing that it has been fully reconciled) and auto-computed boolean 'reconciled' is False (depicting that it's not the case anymore). In other words, the invoice has been dereconciled and it does not fit anymore the 'paid' state. You should press this button to re-open it and let it continue its normal process after having resolved the eventual exceptions it may have created."/> <button name='%(action_account_state_open)d' type='action' string='Re-Open' groups="account.group_account_invoice" attrs="{'invisible':['|', ('state','&lt;&gt;','paid'), ('reconciled', '=', True)]}" help="This button only appears when the state of the invoice is 'paid' (showing that it has been fully reconciled) and auto-computed boolean 'reconciled' is False (depicting that it's not the case anymore). In other words, the invoice has been dereconciled and it does not fit anymore the 'paid' state. You should press this button to re-open it and let it continue its normal process after having resolved the eventual exceptions it may have created."/>
</span>
<field name="state" widget="statusbar" statusbar_visible="draft,open,paid" statusbar_colors='{"proforma":"blue","proforma2":"blue"}'/> <field name="state" widget="statusbar" statusbar_visible="draft,open,paid" statusbar_colors='{"proforma":"blue","proforma2":"blue"}'/>
</header> </header>
<sheet string="Supplier Invoice"> <sheet string="Supplier Invoice">
@ -171,11 +169,12 @@
domain="[('supplier', '=', True)]"/> domain="[('supplier', '=', True)]"/>
<field name="fiscal_position" widget="selection"/> <field name="fiscal_position" widget="selection"/>
<field name="origin"/> <field name="origin"/>
<label for="reference_type"/> <field name="supplier_invoice_number"/>
<div> <label for="reference_type"/>
<div>
<field name="reference_type" class="oe_inline oe_edit_only"/> <field name="reference_type" class="oe_inline oe_edit_only"/>
<field name="reference" class="oe_inline"/> <field name="reference" class="oe_inline"/>
</div> </div>
</group> </group>
<group> <group>
<field name="date_invoice"/> <field name="date_invoice"/>
@ -185,6 +184,7 @@
<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" groups="base.group_multi_currency"/> <field name="currency_id" groups="base.group_multi_currency"/>
<field name="check_total" groups="account.group_supplier_inv_check_total"/>
</group> </group>
</group> </group>
<notebook> <notebook>
@ -278,8 +278,8 @@
</notebook> </notebook>
</sheet> </sheet>
<div class="oe_chatter"> <div class="oe_chatter">
<field name="message_ids" widget="mail_thread"/>
<field name="message_follower_ids" widget="mail_followers"/> <field name="message_follower_ids" widget="mail_followers"/>
<field name="message_ids" widget="mail_thread"/>
</div> </div>
</form> </form>
</field> </field>
@ -291,20 +291,18 @@
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="Invoice" version="7.0"> <form string="Invoice" version="7.0">
<header> <header>
<span groups="base.group_user"> <button name="action_invoice_sent" type="object" string="Send by Email" attrs="{'invisible':['|',('sent','=',True), ('state', '!=', 'open')]}" class="oe_highlight" groups="base.group_user"/>
<button name="action_invoice_sent" type="object" string="Send by Email" attrs="{'invisible':['|',('sent','=',True), ('state', '!=', 'open')]}" class="oe_highlight"/> <button name="invoice_print" string="Print Invoice" type="object" attrs="{'invisible':['|',('sent','=',True), ('state', '!=', 'open')]}" class="oe_highlight" groups="base.group_user"/>
<button name="invoice_print" string="Print Invoice" type="object" attrs="{'invisible':['|',('sent','=',True), ('state', '!=', 'open')]}" class="oe_highlight"/> <button name="action_invoice_sent" type="object" string="Send by Email" attrs="{'invisible':['|',('sent','=',False), ('state', '!=', 'open')]}" groups="base.group_user"/>
<button name="action_invoice_sent" type="object" string="Send by Email" attrs="{'invisible':['|',('sent','=',False), ('state', '!=', 'open')]}"/> <button name="invoice_print" string="Print Invoice" type="object" attrs="{'invisible':['|',('sent','=',False), ('state', '!=', 'open')]}" groups="base.group_user"/>
<button name="invoice_print" string="Print Invoice" type="object" attrs="{'invisible':['|',('sent','=',False), ('state', '!=', 'open')]}"/> <button name="invoice_open" states="draft" string="Validate" class="oe_highlight" groups="base.group_user"/>
<button name="invoice_open" states="draft" string="Validate" class="oe_highlight"/> <button name="invoice_open" states="proforma2" string="Validate" groups="base.group_user"/>
<button name="invoice_open" states="proforma2" string="Validate"/> <button name="invoice_proforma2" states="draft" string="PRO-FORMA" groups="account.group_proforma_invoices"/>
<button name="invoice_proforma2" states="draft" string="PRO-FORMA" groups="account.group_proforma_invoices"/> <button name="%(action_account_invoice_refund)d" type='action' string='Refund Invoice' states='open,proforma2,paid' groups="base.group_user"/>
<button name="%(action_account_invoice_refund)d" type='action' string='Refund Invoice' states='open,proforma2,paid'/> <button name="invoice_cancel" states="draft,proforma2,open" string="Cancel" groups="base.group_no_one"/>
<button name="invoice_cancel" states="draft,proforma2,open" string="Cancel" groups="base.group_no_one"/> <button name="action_cancel_draft" states="cancel" string="Reset to Draft" type="object" groups="base.group_user"/>
<button name="action_cancel_draft" states="cancel" string="Reset to Draft" type="object"/> <button name='%(action_account_state_open)d' type='action' string='Re-Open' groups="account.group_account_invoice" attrs="{'invisible':['|', ('state','&lt;&gt;','paid'), ('reconciled', '=', True)]}" help="This button only appears when the state of the invoice is 'paid' (showing that it has been fully reconciled) and auto-computed boolean 'reconciled' is False (depicting that it's not the case anymore). In other words, the invoice has been dereconciled and it does not fit anymore the 'paid' state. You should press this button to re-open it and let it continue its normal process after having resolved the eventual exceptions it may have created."/>
<button name='%(action_account_state_open)d' type='action' string='Re-Open' groups="account.group_account_invoice" attrs="{'invisible':['|', ('state','&lt;&gt;','paid'), ('reconciled', '=', True)]}" help="This button only appears when the state of the invoice is 'paid' (showing that it has been fully reconciled) and auto-computed boolean 'reconciled' is False (depicting that it's not the case anymore). In other words, the invoice has been dereconciled and it does not fit anymore the 'paid' state. You should press this button to re-open it and let it continue its normal process after having resolved the eventual exceptions it may have created."/> <!--button name="%(account_invoices)d" string="Print Invoice" type="action" states="open,paid,proforma,sale,proforma2"/-->
<!--button name="%(account_invoices)d" string="Print Invoice" type="action" states="open,paid,proforma,sale,proforma2"/-->
</span>
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,open,paid" statusbar_colors='{"proforma":"blue","proforma2":"blue"}'/> <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,open,paid" statusbar_colors='{"proforma":"blue","proforma2":"blue"}'/>
</header> </header>
<sheet string="Invoice"> <sheet string="Invoice">
@ -437,8 +435,8 @@
</notebook> </notebook>
</sheet> </sheet>
<div class="oe_chatter"> <div class="oe_chatter">
<field name="message_ids" colspan="4" widget="mail_thread" nolabel="1"/>
<field name="message_follower_ids" widget="mail_followers"/> <field name="message_follower_ids" widget="mail_followers"/>
<field name="message_ids" colspan="4" widget="mail_thread" nolabel="1"/>
</div> </div>
</form> </form>
</field> </field>
@ -449,7 +447,7 @@
<field name="model">account.invoice</field> <field name="model">account.invoice</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<search string="Search Invoice"> <search string="Search Invoice">
<field name="number" string="Invoice" filter_domain="['|', ('number','ilike',self),('origin','ilike',self)]"/> <field name="number" string="Invoice" filter_domain="['|','|', ('number','ilike',self), ('origin','ilike',self), ('supplier_invoice_number', 'ilike', self)]"/>
<filter name="draft" icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Draft Invoices"/> <filter name="draft" icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Draft Invoices"/>
<filter name="proforma" icon="terp-gtk-media-pause" string="Proforma" domain="[('state','=','proforma2')]" help="Proforma Invoices" groups="account.group_proforma_invoices"/> <filter name="proforma" icon="terp-gtk-media-pause" string="Proforma" domain="[('state','=','proforma2')]" help="Proforma Invoices" groups="account.group_proforma_invoices"/>
<filter name="invoices" icon="terp-dolar" string="Invoices" domain="[('state','not in',['draft','cancel'])]" help="Proforma/Open/Paid Invoices"/> <filter name="invoices" icon="terp-dolar" string="Invoices" domain="[('state','not in',['draft','cancel'])]" help="Proforma/Open/Paid Invoices"/>

View File

@ -208,7 +208,7 @@ class account_move_line(osv.osv):
if type(period_id) == str: if type(period_id) == str:
ids = period_obj.search(cr, uid, [('name', 'ilike', period_id)]) ids = period_obj.search(cr, uid, [('name', 'ilike', period_id)])
context.update({ context.update({
'period_id': ids[0] 'period_id': ids and ids[0] or False
}) })
return context return context
@ -514,8 +514,7 @@ class account_move_line(osv.osv):
'analytic_lines': fields.one2many('account.analytic.line', 'move_id', 'Analytic lines'), 'analytic_lines': fields.one2many('account.analytic.line', 'move_id', 'Analytic lines'),
'centralisation': fields.selection([('normal','Normal'),('credit','Credit Centralisation'),('debit','Debit Centralisation'),('currency','Currency Adjustment')], 'Centralisation', size=8), 'centralisation': fields.selection([('normal','Normal'),('credit','Credit Centralisation'),('debit','Debit Centralisation'),('currency','Currency Adjustment')], 'Centralisation', size=8),
'balance': fields.function(_balance, fnct_search=_balance_search, string='Balance'), 'balance': fields.function(_balance, fnct_search=_balance_search, string='Balance'),
'state': fields.selection([('draft','Unbalanced'), ('valid','Valid')], 'Status', readonly=True, 'state': fields.selection([('draft','Unbalanced'), ('valid','Balanced')], 'Status', readonly=True),
help='When new move line is created the state will be \'Draft\'.\n* When all the payments are done it will be in \'Valid\' state.'),
'tax_code_id': fields.many2one('account.tax.code', 'Tax Account', help="The Account can either be a base tax code or a tax code account."), 'tax_code_id': fields.many2one('account.tax.code', 'Tax Account', help="The Account can either be a base tax code or a tax code account."),
'tax_amount': fields.float('Tax/Base Amount', digits_compute=dp.get_precision('Account'), select=True, help="If the Tax account is a tax code account, this field will contain the taxed amount.If the tax account is base tax code, "\ 'tax_amount': fields.float('Tax/Base Amount', digits_compute=dp.get_precision('Account'), select=True, help="If the Tax account is a tax code account, this field will contain the taxed amount.If the tax account is base tax code, "\
"this field will contain the basic amount(without tax)."), "this field will contain the basic amount(without tax)."),
@ -583,7 +582,7 @@ class account_move_line(osv.osv):
lines = self.browse(cr, uid, ids, context=context) lines = self.browse(cr, uid, ids, context=context)
for l in lines: for l in lines:
if l.account_id.type == 'view': if l.account_id.type == 'view':
raise osv.except_osv(_('Error!'), _('You cannot create journal items on “View” type account %s %s.') % (l.account_id.code, l.account_id.name)) return False
return True return True
def _check_no_closed(self, cr, uid, ids, context=None): def _check_no_closed(self, cr, uid, ids, context=None):
@ -918,7 +917,7 @@ 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 not partner_obj.has_something_to_reconcile(cr, uid, partner_id, context=context): if partner_id and not partner_obj.has_something_to_reconcile(cr, uid, partner_id, context=context):
partner_obj.mark_as_reconciled(cr, uid, [partner_id], context=context) partner_obj.mark_as_reconciled(cr, uid, [partner_id], context=context)
return r_id return r_id
@ -976,7 +975,7 @@ class account_move_line(osv.osv):
if context is None: if context is None:
context = {} context = {}
result = super(account_move_line, self).fields_view_get(cr, uid, view_id, view_type, context=context, toolbar=toolbar, submenu=submenu) result = super(account_move_line, self).fields_view_get(cr, uid, view_id, view_type, context=context, toolbar=toolbar, submenu=submenu)
if view_type != 'tree': if (view_type != 'tree') or view_id:
#Remove the toolbar from the form view #Remove the toolbar from the form view
if view_type == 'form': if view_type == 'form':
if result.get('toolbar', False): if result.get('toolbar', False):
@ -1235,16 +1234,16 @@ class account_move_line(osv.osv):
vals['company_id'] = company_id[0] vals['company_id'] = company_id[0]
if ('account_id' in vals) and not account_obj.read(cr, uid, vals['account_id'], ['active'])['active']: if ('account_id' in vals) and not account_obj.read(cr, uid, vals['account_id'], ['active'])['active']:
raise osv.except_osv(_('Bad Account!'), _('You cannot use an inactive account.')) raise osv.except_osv(_('Bad Account!'), _('You cannot use an inactive account.'))
if 'journal_id' in vals: if 'journal_id' in vals and vals['journal_id']:
context['journal_id'] = vals['journal_id'] context['journal_id'] = vals['journal_id']
if 'period_id' in vals: if 'period_id' in vals and vals['period_id']:
context['period_id'] = vals['period_id'] context['period_id'] = vals['period_id']
if ('journal_id' not in context) and ('move_id' in vals) and vals['move_id']: if ('journal_id' not in context) and ('move_id' in vals) and vals['move_id']:
m = move_obj.browse(cr, uid, vals['move_id']) m = move_obj.browse(cr, uid, vals['move_id'])
context['journal_id'] = m.journal_id.id context['journal_id'] = m.journal_id.id
context['period_id'] = m.period_id.id context['period_id'] = m.period_id.id
#we need to treat the case where a value is given in the context for period_id as a string #we need to treat the case where a value is given in the context for period_id as a string
if 'period_id' not in context or not isinstance(context.get('period_id', ''), (int, long)): if 'period_id' in context and not isinstance(context.get('period_id', ''), (int, long)):
period_candidate_ids = self.pool.get('account.period').name_search(cr, uid, name=context.get('period_id','')) period_candidate_ids = self.pool.get('account.period').name_search(cr, uid, name=context.get('period_id',''))
if len(period_candidate_ids) != 1: if len(period_candidate_ids) != 1:
raise osv.except_osv(_('Error!'), _('No period found or more than one period found for the given date.')) raise osv.except_osv(_('Error!'), _('No period found or more than one period found for the given date.'))
@ -1254,6 +1253,9 @@ class account_move_line(osv.osv):
self._update_journal_check(cr, uid, context['journal_id'], context['period_id'], context) self._update_journal_check(cr, uid, context['journal_id'], context['period_id'], context)
move_id = vals.get('move_id', False) move_id = vals.get('move_id', False)
journal = journal_obj.browse(cr, uid, context['journal_id'], context=context) journal = journal_obj.browse(cr, uid, context['journal_id'], context=context)
vals['journal_id'] = vals.get('journal_id') or context.get('journal_id')
vals['period_id'] = vals.get('period_id') or context.get('period_id')
vals['date'] = vals.get('date') or context.get('date')
if not move_id: if not move_id:
if journal.centralisation: if journal.centralisation:
#Check for centralisation #Check for centralisation

View File

@ -41,13 +41,5 @@
groups="group_account_user,group_account_manager" groups="group_account_user,group_account_manager"
parent="account.menu_finance_generic_reporting" sequence="3"/> parent="account.menu_finance_generic_reporting" sequence="3"/>
<report id="account_account_balance_landscape"
string="Account balance"
model="account.account"
name="account.account.balance.landscape"
rml="account/report/account_balance_landscape.rml"
auto="False"
menu="False"/>
</data> </data>
</openerp> </openerp>

View File

@ -306,7 +306,7 @@
<field name="name">Unrealized Gain or Loss</field> <field name="name">Unrealized Gain or Loss</field>
<field name="model">account.account</field> <field name="model">account.account</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<tree string="Unrealized Gains and losses"> <tree string="Unrealized Gains and losses" create="false">
<field name="code"/> <field name="code"/>
<field name="name"/> <field name="name"/>
<field name="parent_id" invisible="1"/> <field name="parent_id" invisible="1"/>
@ -509,8 +509,8 @@
<page string="Cash Registers"> <page string="Cash Registers">
<group> <group>
<group string="Accounts"> <group string="Accounts">
<field name="profit_account_id"/> <field name="profit_account_id" domain="[('type','!=','view')]"/>
<field name="loss_account_id"/> <field name="loss_account_id" domain="[('type','!=','view')]"/>
<field name="internal_account_id"/> <field name="internal_account_id"/>
</group> </group>
<group string="Miscellaneous"> <group string="Miscellaneous">
@ -1078,7 +1078,7 @@
<field name="currency_id" attrs="{'readonly':[('state','=','valid')]}" groups="base.group_multi_currency"/> <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" invisible="1"/>
</tree> </tree>
</field> </field>
</record> </record>
@ -1230,8 +1230,8 @@
<field name="move_id" string="Number (Move)"/> <field name="move_id" string="Number (Move)"/>
<field name="account_id"/> <field name="account_id"/>
<field name="partner_id"/> <field name="partner_id"/>
<field name="journal_id" context="{'journal_id':self}"/> <field name="journal_id" context="{'journal_id':self}" widget="selection"/> <!-- it's important to keep widget='selection' in this filter viewbecause without that the value passed in the context is not the ID but the textual value (name) of the selected journal -->
<field name="period_id" context="{'period_id':self}"/> <field name="period_id" context="{'period_id':self}" widget="selection"/> <!-- it's important to keep the widget='selection' in this field, for the same reason as explained above -->
<group expand="0" string="Group By..."> <group expand="0" string="Group By...">
<filter string="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/> <filter string="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/> <filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
@ -1791,7 +1791,7 @@
<field name="name"/> <field name="name"/>
<field name="active"/> <field name="active"/>
</group> </group>
<field name="note" placeholder="Note fo the invoice..."/> <field name="note" placeholder="Note for the invoice..."/>
<separator string="Computation"/> <separator string="Computation"/>
<field name="line_ids"/> <field name="line_ids"/>
</form> </form>
@ -1862,7 +1862,7 @@
<field name="model_id"/> <field name="model_id"/>
<group expand="0" string="Group By..."> <group expand="0" string="Group By...">
<filter string="Model" icon="terp-folder-orange" domain="[]" context="{'group_by':'model_id'}"/> <filter string="Model" icon="terp-folder-orange" domain="[]" context="{'group_by':'model_id'}"/>
<filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/> <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
</group> </group>
</search> </search>
</field> </field>
@ -1980,7 +1980,7 @@
<field name="credit" sum="Total credit"/> <field name="credit" sum="Total credit"/>
<field name="account_tax_id"/> <field name="account_tax_id"/>
<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="state"/> <field name="state" invisible="1"/>
</tree> </tree>
</field> </field>
</record> </record>
@ -2159,7 +2159,8 @@
<field name="visible" /> <field name="visible" />
<field name="complete_tax_set" /> <field name="complete_tax_set" />
</group> </group>
<field name="tax_template_ids" colspan="4" readonly="1" nolabel="1"/> <separator string="Default Taxes" colspan="4"/>
<field name="tax_template_ids" colspan="4" nolabel="1"/>
<separator string="Properties" colspan="4"/> <separator string="Properties" colspan="4"/>
<group col="4"> <group col="4">
<field name="property_account_receivable" domain="[('id', 'child_of', [account_root_id])]"/> <field name="property_account_receivable" domain="[('id', 'child_of', [account_root_id])]"/>
@ -2414,32 +2415,6 @@
<field name="view_mode">form</field> <field name="view_mode">form</field>
<field name="target">new</field> <field name="target">new</field>
</record> </record>
<record id="ir_actions_server_action_wizard_multi_chart" model="ir.actions.server">
<field name="type">ir.actions.server</field>
<field name="condition">True</field>
<field name="state">code</field>
<field name="model_id" ref="base.model_ir_actions_todo"/>
<field eval="5" name="sequence"/>
<field name="code">
# check for unconfigured companies
account_installer_obj = self.pool.get('account.installer')
account_installer_obj.check_unconfigured_cmp(cr, uid, context=context)
action_ids = []
# fetch the act_window actions related to chart of account configuration
# we use ir.actions.todo to enable the possibility for other modules to insert their own
# wizards during the configuration process
ref = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'account', 'action_wizard_multi_chart')
if ref:
action_ids += [ref[1]]
ref = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'account', 'action_account_configuration_installer')
if ref:
action_ids += [ref[1]]
todo_ids = pool.get('ir.actions.todo').search(cr, uid, [('action_id', 'in', action_ids)], context=context)
pool.get('ir.actions.todo').write(cr, uid, todo_ids, {'state':'open'}, context=context)
action = pool.get('res.config').next(cr, uid, [], context)
</field>
<field name="name">New Company Financial Setting</field>
</record>
<record id="account_account_graph" model="ir.ui.view"> <record id="account_account_graph" model="ir.ui.view">
<field name="name">account.account.graph</field> <field name="name">account.account.graph</field>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

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-10-14 04:39+0000\n" "X-Launchpad-Export-Date: 2012-10-30 05:01+0000\n"
"X-Generator: Launchpad (build 16137)\n" "X-Generator: Launchpad (build 16206)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0
@ -759,6 +759,7 @@ msgstr "Zeige Hierarchie der Kinder"
#. module: account #. module: account
#: selection:account.payment.term.line,value:0 #: selection:account.payment.term.line,value:0
#: selection:account.tax.template,type:0
msgid "Percent" msgid "Percent"
msgstr "Prozent" msgstr "Prozent"
@ -1725,6 +1726,7 @@ msgid "Separated Journal Sequences"
msgstr "Unterteilte Folge von Journalen" msgstr "Unterteilte Folge von Journalen"
#. module: account #. module: account
#: field:account.bank.statement,user_id:0
#: view:account.invoice:0 #: view:account.invoice:0
msgid "Responsible" msgid "Responsible"
msgstr "Verantwortlicher" msgstr "Verantwortlicher"
@ -2657,7 +2659,6 @@ msgid "Account move line reconcile (writeoff)"
msgstr "OP-Ausgleich (Abschreibung)" msgstr "OP-Ausgleich (Abschreibung)"
#. module: account #. module: account
#: model:account.account.type,name:account.account_type_tax
#: report:account.invoice:0 #: report:account.invoice:0
#: field:account.invoice,amount_tax:0 #: field:account.invoice,amount_tax:0
#: field:account.move.line,account_tax_id:0 #: field:account.move.line,account_tax_id:0
@ -3672,6 +3673,7 @@ msgstr ""
#: report:account.analytic.account.journal:0 #: report:account.analytic.account.journal:0
#: selection:account.balance.report,filter:0 #: selection:account.balance.report,filter:0
#: field:account.bank.statement,date:0 #: field:account.bank.statement,date:0
#: field:account.bank.statement.line,date:0
#: selection:account.central.journal,filter:0 #: selection:account.central.journal,filter:0
#: selection:account.common.account.report,filter:0 #: selection:account.common.account.report,filter:0
#: selection:account.common.journal.report,filter:0 #: selection:account.common.journal.report,filter:0
@ -3703,6 +3705,8 @@ msgstr ""
#: selection:account.vat.declaration,filter:0 #: selection:account.vat.declaration,filter:0
#: selection:accounting.report,filter:0 #: selection:accounting.report,filter:0
#: selection:accounting.report,filter_cmp:0 #: selection:accounting.report,filter_cmp:0
#: code:addons/account/report/account_general_ledger.py:305
#: code:addons/account/report/account_general_ledger.py:308
#: code:addons/account/report/account_journal.py:195 #: code:addons/account/report/account_journal.py:195
#: code:addons/account/report/account_journal.py:198 #: code:addons/account/report/account_journal.py:198
#: code:addons/account/report/common_report_header.py:97 #: code:addons/account/report/common_report_header.py:97
@ -3724,7 +3728,6 @@ msgstr "Storno Ausgleich"
#. module: account #. module: account
#: view:account.analytic.line:0 #: view:account.analytic.line:0
#: field:account.bank.statement,user_id:0
#: view:account.journal:0 #: view:account.journal:0
#: field:account.journal,user_id:0 #: field:account.journal,user_id:0
#: view:analytic.entries.report:0 #: view:analytic.entries.report:0
@ -5480,7 +5483,6 @@ msgstr "Standardauswertung Finanzen"
#. module: account #. module: account
#: field:account.bank.statement.line,name:0 #: field:account.bank.statement.line,name:0
#: field:account.invoice,reference:0
msgid "Communication" msgid "Communication"
msgstr "Kommunikation" msgstr "Kommunikation"
@ -5615,7 +5617,6 @@ msgid "Customer Invoices And Refunds"
msgstr "Kunden Rechnungen und Gutschriften" msgstr "Kunden Rechnungen und Gutschriften"
#. module: account #. module: account
#: field:account.analytic.line,amount_currency:0
#: field:account.entries.report,amount_currency:0 #: field:account.entries.report,amount_currency:0
#: field:account.model.line,amount_currency:0 #: field:account.model.line,amount_currency:0
#: field:account.move.line,amount_currency:0 #: field:account.move.line,amount_currency:0
@ -5645,8 +5646,6 @@ msgstr "Zu begleichende Buchungen"
#: field:account.invoice.line,quantity:0 #: field:account.invoice.line,quantity:0
#: field:account.model.line,quantity:0 #: field:account.model.line,quantity:0
#: field:account.move.line,quantity:0 #: field:account.move.line,quantity:0
#: selection:account.tax,type:0
#: selection:account.tax.template,type:0
#: view:analytic.entries.report:0 #: view:analytic.entries.report:0
#: field:analytic.entries.report,unit_amount:0 #: field:analytic.entries.report,unit_amount:0
#: field:report.account.sales,quantity:0 #: field:report.account.sales,quantity:0
@ -5759,7 +5758,6 @@ msgstr "Ausgleichen durch Abschreibung"
#. module: account #. module: account
#: selection:account.payment.term.line,value:0 #: selection:account.payment.term.line,value:0
#: selection:account.tax,type:0 #: selection:account.tax,type:0
#: selection:account.tax.template,type:0
msgid "Fixed Amount" msgid "Fixed Amount"
msgstr "Fester Betrag" msgstr "Fester Betrag"
@ -5803,7 +5801,6 @@ msgstr "Bereits ausgeglichen"
#. module: account #. module: account
#: help:account.tax,type:0 #: help:account.tax,type:0
#: help:account.tax.template,type:0
msgid "The computation method for the tax amount." msgid "The computation method for the tax amount."
msgstr "Die Berechnungsmethode für die Höhe der Steuern." msgstr "Die Berechnungsmethode für die Höhe der Steuern."
@ -5904,7 +5901,7 @@ msgstr "Berechnungsform"
#: selection:account.partner.ledger,result_selection:0 #: selection:account.partner.ledger,result_selection:0
#: code:addons/account/report/account_aged_partner_balance.py:376 #: code:addons/account/report/account_aged_partner_balance.py:376
#: code:addons/account/report/account_partner_balance.py:301 #: code:addons/account/report/account_partner_balance.py:301
#: code:addons/account/report/account_partner_ledger.py:398 #: code:addons/account/report/account_partner_ledger.py:399
#, python-format #, python-format
msgid "Receivable and Payable Accounts" msgid "Receivable and Payable Accounts"
msgstr "Debitoren und Kreditoren" msgstr "Debitoren und Kreditoren"
@ -6458,12 +6455,13 @@ msgstr "Buchwert"
#. module: account #. module: account
#: selection:account.tax,type:0 #: selection:account.tax,type:0
#: selection:account.tax.template,type:0
msgid "Percentage" msgid "Percentage"
msgstr "Prozentsatz" msgstr "Prozentsatz"
#. module: account #. module: account
#: selection:account.report.general.ledger,sortby:0 #: selection:account.report.general.ledger,sortby:0
#: code:addons/account/report/account_general_ledger.py:307
#, python-format
msgid "Journal & Partner" msgid "Journal & Partner"
msgstr "Journal & Partner" msgstr "Journal & Partner"
@ -6515,6 +6513,7 @@ msgid "Applicable Type"
msgstr "Anwendbare Art" msgstr "Anwendbare Art"
#. module: account #. module: account
#: field:account.invoice,reference:0
#: field:account.invoice.line,invoice_id:0 #: field:account.invoice.line,invoice_id:0
msgid "Invoice Reference" msgid "Invoice Reference"
msgstr "Rechnungsbezug" msgstr "Rechnungsbezug"
@ -7304,7 +7303,7 @@ msgstr "Sie können keine quittierten Buchungen löschen \"%s\"!"
#. module: account #. module: account
#: selection:account.partner.ledger,filter:0 #: selection:account.partner.ledger,filter:0
#: code:addons/account/report/account_partner_ledger.py:59 #: code:addons/account/report/account_partner_ledger.py:60
#: model:ir.actions.act_window,name:account.act_account_acount_move_line_open_unreconciled #: model:ir.actions.act_window,name:account.act_account_acount_move_line_open_unreconciled
#, python-format #, python-format
msgid "Unreconciled Entries" msgid "Unreconciled Entries"
@ -7919,7 +7918,7 @@ msgstr "Mai"
#: selection:account.partner.ledger,result_selection:0 #: selection:account.partner.ledger,result_selection:0
#: code:addons/account/report/account_aged_partner_balance.py:374 #: code:addons/account/report/account_aged_partner_balance.py:374
#: code:addons/account/report/account_partner_balance.py:299 #: code:addons/account/report/account_partner_balance.py:299
#: code:addons/account/report/account_partner_ledger.py:396 #: code:addons/account/report/account_partner_ledger.py:397
#, python-format #, python-format
msgid "Payable Accounts" msgid "Payable Accounts"
msgstr "Kreditorenkonten" msgstr "Kreditorenkonten"
@ -8780,6 +8779,7 @@ msgstr "Journal Gutschriften"
#: report:account.general.ledger:0 #: report:account.general.ledger:0
#: report:account.general.ledger_landscape:0 #: report:account.general.ledger_landscape:0
#: report:account.partner.balance:0 #: report:account.partner.balance:0
#: report:account.third_party_ledger:0
msgid "Filter By" msgid "Filter By"
msgstr "Filter nach" msgstr "Filter nach"
@ -9642,7 +9642,6 @@ msgstr ""
"beendet werden soll." "beendet werden soll."
#. module: account #. module: account
#: report:account.third_party_ledger:0
#: report:account.third_party_ledger_other:0 #: report:account.third_party_ledger_other:0
msgid "Filters By" msgid "Filters By"
msgstr "Filter nach" msgstr "Filter nach"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

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-10-16 04:46+0000\n" "X-Launchpad-Export-Date: 2012-10-30 05:07+0000\n"
"X-Generator: Launchpad (build 16137)\n" "X-Generator: Launchpad (build 16206)\n"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0
@ -706,6 +706,7 @@ msgstr ""
#. module: account #. module: account
#: selection:account.payment.term.line,value:0 #: selection:account.payment.term.line,value:0
#: selection:account.tax.template,type:0
msgid "Percent" msgid "Percent"
msgstr "" msgstr ""
@ -1625,6 +1626,7 @@ msgid "Separated Journal Sequences"
msgstr "" msgstr ""
#. module: account #. module: account
#: field:account.bank.statement,user_id:0
#: view:account.invoice:0 #: view:account.invoice:0
msgid "Responsible" msgid "Responsible"
msgstr "" msgstr ""
@ -2483,7 +2485,6 @@ msgid "Account move line reconcile (writeoff)"
msgstr "" msgstr ""
#. module: account #. module: account
#: model:account.account.type,name:account.account_type_tax
#: report:account.invoice:0 #: report:account.invoice:0
#: field:account.invoice,amount_tax:0 #: field:account.invoice,amount_tax:0
#: field:account.move.line,account_tax_id:0 #: field:account.move.line,account_tax_id:0
@ -3435,6 +3436,7 @@ msgstr ""
#: report:account.analytic.account.journal:0 #: report:account.analytic.account.journal:0
#: selection:account.balance.report,filter:0 #: selection:account.balance.report,filter:0
#: field:account.bank.statement,date:0 #: field:account.bank.statement,date:0
#: field:account.bank.statement.line,date:0
#: selection:account.central.journal,filter:0 #: selection:account.central.journal,filter:0
#: selection:account.common.account.report,filter:0 #: selection:account.common.account.report,filter:0
#: selection:account.common.journal.report,filter:0 #: selection:account.common.journal.report,filter:0
@ -3466,6 +3468,8 @@ msgstr ""
#: selection:account.vat.declaration,filter:0 #: selection:account.vat.declaration,filter:0
#: selection:accounting.report,filter:0 #: selection:accounting.report,filter:0
#: selection:accounting.report,filter_cmp:0 #: selection:accounting.report,filter_cmp:0
#: code:addons/account/report/account_general_ledger.py:305
#: code:addons/account/report/account_general_ledger.py:308
#: code:addons/account/report/account_journal.py:195 #: code:addons/account/report/account_journal.py:195
#: code:addons/account/report/account_journal.py:198 #: code:addons/account/report/account_journal.py:198
#: code:addons/account/report/common_report_header.py:97 #: code:addons/account/report/common_report_header.py:97
@ -3487,7 +3491,6 @@ msgstr ""
#. module: account #. module: account
#: view:account.analytic.line:0 #: view:account.analytic.line:0
#: field:account.bank.statement,user_id:0
#: view:account.journal:0 #: view:account.journal:0
#: field:account.journal,user_id:0 #: field:account.journal,user_id:0
#: view:analytic.entries.report:0 #: view:analytic.entries.report:0
@ -5158,7 +5161,6 @@ msgstr ""
#. module: account #. module: account
#: field:account.bank.statement.line,name:0 #: field:account.bank.statement.line,name:0
#: field:account.invoice,reference:0
msgid "Communication" msgid "Communication"
msgstr "" msgstr ""
@ -5290,7 +5292,6 @@ msgid "Customer Invoices And Refunds"
msgstr "" msgstr ""
#. module: account #. module: account
#: field:account.analytic.line,amount_currency:0
#: field:account.entries.report,amount_currency:0 #: field:account.entries.report,amount_currency:0
#: field:account.model.line,amount_currency:0 #: field:account.model.line,amount_currency:0
#: field:account.move.line,amount_currency:0 #: field:account.move.line,amount_currency:0
@ -5318,8 +5319,6 @@ msgstr ""
#: field:account.invoice.line,quantity:0 #: field:account.invoice.line,quantity:0
#: field:account.model.line,quantity:0 #: field:account.model.line,quantity:0
#: field:account.move.line,quantity:0 #: field:account.move.line,quantity:0
#: selection:account.tax,type:0
#: selection:account.tax.template,type:0
#: view:analytic.entries.report:0 #: view:analytic.entries.report:0
#: field:analytic.entries.report,unit_amount:0 #: field:analytic.entries.report,unit_amount:0
#: field:report.account.sales,quantity:0 #: field:report.account.sales,quantity:0
@ -5419,7 +5418,6 @@ msgstr ""
#. module: account #. module: account
#: selection:account.payment.term.line,value:0 #: selection:account.payment.term.line,value:0
#: selection:account.tax,type:0 #: selection:account.tax,type:0
#: selection:account.tax.template,type:0
msgid "Fixed Amount" msgid "Fixed Amount"
msgstr "" msgstr ""
@ -5463,7 +5461,6 @@ msgstr ""
#. module: account #. module: account
#: help:account.tax,type:0 #: help:account.tax,type:0
#: help:account.tax.template,type:0
msgid "The computation method for the tax amount." msgid "The computation method for the tax amount."
msgstr "" msgstr ""
@ -5564,7 +5561,7 @@ msgstr ""
#: selection:account.partner.ledger,result_selection:0 #: selection:account.partner.ledger,result_selection:0
#: code:addons/account/report/account_aged_partner_balance.py:376 #: code:addons/account/report/account_aged_partner_balance.py:376
#: code:addons/account/report/account_partner_balance.py:301 #: code:addons/account/report/account_partner_balance.py:301
#: code:addons/account/report/account_partner_ledger.py:398 #: code:addons/account/report/account_partner_ledger.py:399
#, python-format #, python-format
msgid "Receivable and Payable Accounts" msgid "Receivable and Payable Accounts"
msgstr "" msgstr ""
@ -6079,16 +6076,17 @@ msgstr ""
#. module: account #. module: account
#: model:account.account.type,name:account.account_type_cash_equity #: model:account.account.type,name:account.account_type_cash_equity
msgid "Equity" msgid "Equity"
msgstr "" msgstr "Capital"
#. module: account #. module: account
#: selection:account.tax,type:0 #: selection:account.tax,type:0
#: selection:account.tax.template,type:0
msgid "Percentage" msgid "Percentage"
msgstr "" msgstr ""
#. module: account #. module: account
#: selection:account.report.general.ledger,sortby:0 #: selection:account.report.general.ledger,sortby:0
#: code:addons/account/report/account_general_ledger.py:307
#, python-format
msgid "Journal & Partner" msgid "Journal & Partner"
msgstr "" msgstr ""
@ -6138,6 +6136,7 @@ msgid "Applicable Type"
msgstr "" msgstr ""
#. module: account #. module: account
#: field:account.invoice,reference:0
#: field:account.invoice.line,invoice_id:0 #: field:account.invoice.line,invoice_id:0
msgid "Invoice Reference" msgid "Invoice Reference"
msgstr "" msgstr ""
@ -6849,7 +6848,7 @@ msgstr ""
#. module: account #. module: account
#: selection:account.partner.ledger,filter:0 #: selection:account.partner.ledger,filter:0
#: code:addons/account/report/account_partner_ledger.py:59 #: code:addons/account/report/account_partner_ledger.py:60
#: model:ir.actions.act_window,name:account.act_account_acount_move_line_open_unreconciled #: model:ir.actions.act_window,name:account.act_account_acount_move_line_open_unreconciled
#, python-format #, python-format
msgid "Unreconciled Entries" msgid "Unreconciled Entries"
@ -7414,7 +7413,7 @@ msgstr ""
#: selection:account.partner.ledger,result_selection:0 #: selection:account.partner.ledger,result_selection:0
#: code:addons/account/report/account_aged_partner_balance.py:374 #: code:addons/account/report/account_aged_partner_balance.py:374
#: code:addons/account/report/account_partner_balance.py:299 #: code:addons/account/report/account_partner_balance.py:299
#: code:addons/account/report/account_partner_ledger.py:396 #: code:addons/account/report/account_partner_ledger.py:397
#, python-format #, python-format
msgid "Payable Accounts" msgid "Payable Accounts"
msgstr "" msgstr ""
@ -8205,6 +8204,7 @@ msgstr ""
#: report:account.general.ledger:0 #: report:account.general.ledger:0
#: report:account.general.ledger_landscape:0 #: report:account.general.ledger_landscape:0
#: report:account.partner.balance:0 #: report:account.partner.balance:0
#: report:account.third_party_ledger:0
msgid "Filter By" msgid "Filter By"
msgstr "" msgstr ""
@ -8997,7 +8997,6 @@ msgid ""
msgstr "" msgstr ""
#. module: account #. module: account
#: report:account.third_party_ledger:0
#: report:account.third_party_ledger_other:0 #: report:account.third_party_ledger_other:0
msgid "Filters By" msgid "Filters By"
msgstr "" msgstr ""

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -119,15 +119,6 @@ class account_installer(osv.osv_memory):
self.execute_simple(cr, uid, ids, context) self.execute_simple(cr, uid, ids, context)
super(account_installer, self).execute(cr, uid, ids, context=context) super(account_installer, self).execute(cr, uid, ids, context=context)
def action_next(self, cr, uid, ids, context=None):
next = self.execute(cr, uid, ids, context=context)
for installer in self.browse(cr, uid, ids, context=context):
if installer.charts == 'l10n_be':
return {'type': 'ir.actions.act_window_close'}
else :
if next : return next
return self.next(cr, uid, ids, context=context)
def execute_simple(self, cr, uid, ids, context=None): def execute_simple(self, cr, uid, ids, context=None):
if context is None: if context is None:
context = {} context = {}

View File

@ -209,7 +209,7 @@ class res_partner(osv.osv):
relation='account.fiscal.position', relation='account.fiscal.position',
string="Fiscal Position", string="Fiscal Position",
view_load=True, view_load=True,
help="The fiscal position will determine taxes and the accounts used for the partner.", help="The fiscal position will determine taxes and accounts used for the partner.",
), ),
'property_payment_term': fields.property( 'property_payment_term': fields.property(
'account.payment.term', 'account.payment.term',

View File

@ -6,7 +6,7 @@
<field name="name">account.fiscal.position.form</field> <field name="name">account.fiscal.position.form</field>
<field name="model">account.fiscal.position</field> <field name="model">account.fiscal.position</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="Fiscal Position"> <form string="Fiscal Position" version="7.0">
<group col="4"> <group col="4">
<field name="name"/> <field name="name"/>
<field name="active"/> <field name="active"/>
@ -114,7 +114,7 @@
context="{'search_default_partner_id':[active_id], 'default_partner_id': active_id}" context="{'search_default_partner_id':[active_id], 'default_partner_id': active_id}"
src_model="res.partner" src_model="res.partner"
view_type="form" view_type="form"
view_mode="tree,form,calendar"/> view_mode="tree,form"/>
</data> </data>
</openerp> </openerp>

View File

@ -30,14 +30,14 @@ class product_category(osv.osv):
relation='account.account', relation='account.account',
string="Income Account", string="Income Account",
view_load=True, view_load=True,
help="This account will be used for invoices to value sales for the current product category"), help="This account will be used for invoices to value sales."),
'property_account_expense_categ': fields.property( 'property_account_expense_categ': fields.property(
'account.account', 'account.account',
type='many2one', type='many2one',
relation='account.account', relation='account.account',
string="Expense Account", string="Expense Account",
view_load=True, view_load=True,
help="This account will be used for invoices to value expenses for the current product category"), help="This account will be used for invoices to value expenses."),
} }
product_category() product_category()
@ -60,14 +60,14 @@ class product_template(osv.osv):
relation='account.account', relation='account.account',
string="Income Account", string="Income Account",
view_load=True, view_load=True,
help="This account will be used for invoices instead of the default one to value sales for the current product"), help="This account will be used for invoices instead of the default one to value sales for the current product."),
'property_account_expense': fields.property( 'property_account_expense': fields.property(
'account.account', 'account.account',
type='many2one', type='many2one',
relation='account.account', relation='account.account',
string="Expense Account", string="Expense Account",
view_load=True, view_load=True,
help="This account will be used for invoices instead of the default one to value expenses for the current product"), help="This account will be used for invoices instead of the default one to value expenses for the current product."),
} }
product_template() product_template()

View File

@ -49,9 +49,11 @@
<field name="inherit_id" ref="product.product_category_form_view"/> <field name="inherit_id" ref="product.product_category_form_view"/>
<field name="arch" type="xml"> <field name="arch" type="xml">
<data> <data>
<xpath expr="/form/sheet//group[@name='account_property']" position="inside"> <xpath expr="//group[@name='parent']" position="inside">
<field name="property_account_income_categ" domain="[('type','&lt;&gt;','view'),('type','&lt;&gt;','consolidation')]"/> <group name="account_property" string="Account Properties" colspan="2">
<field name="property_account_expense_categ" domain="[('type','&lt;&gt;','view'),('type','&lt;&gt;','consolidation')]"/> <field name="property_account_income_categ" domain="[('type','&lt;&gt;','view'),('type','&lt;&gt;','consolidation')]"/>
<field name="property_account_expense_categ" domain="[('type','&lt;&gt;','view'),('type','&lt;&gt;','consolidation')]"/>
</group>
</xpath> </xpath>
</data> </data>
</field> </field>

View File

@ -94,8 +94,8 @@
<field name="state">open</field> <field name="state">open</field>
<field name="partner_id" ref="base.res_partner_19"/> <field name="partner_id" ref="base.res_partner_19"/>
</record> </record>
<record id="analytic_magasin_bml_1" model="account.analytic.account"> <record id="analytic_millennium_industries" model="account.analytic.account">
<field name="name">Magasin BML 1</field> <field name="name">Millennium Industries</field>
<field name="parent_id" ref="analytic_integration"/> <field name="parent_id" ref="analytic_integration"/>
<field name="type">normal</field> <field name="type">normal</field>
<field name="partner_id" ref="base.res_partner_15"/> <field name="partner_id" ref="base.res_partner_15"/>
@ -121,8 +121,8 @@
<field name="parent_id" ref="analytic_customers"/> <field name="parent_id" ref="analytic_customers"/>
<field name="partner_id" ref="base.res_partner_1"/> <field name="partner_id" ref="base.res_partner_1"/>
</record> </record>
<record id="analytic_distripc" model="account.analytic.account"> <record id="analytic_deltapc" model="account.analytic.account">
<field name="name">DistriPC</field> <field name="name">Delta PC</field>
<field name="parent_id" ref="analytic_customers"/> <field name="parent_id" ref="analytic_customers"/>
<field name="type">normal</field> <field name="type">normal</field>
<field name="partner_id" ref="base.res_partner_4"/> <field name="partner_id" ref="base.res_partner_4"/>
@ -145,8 +145,8 @@
<field name="partner_id" ref="base.res_partner_17"/> <field name="partner_id" ref="base.res_partner_17"/>
<field name="state">open</field> <field name="state">open</field>
</record> </record>
<record id="analytic_leclerc" model="account.analytic.account"> <record id="analytic_luminous_technologies" model="account.analytic.account">
<field name="name">Leclerc</field> <field name="name">Luminous Technologies</field>
<field eval="time.strftime('%Y-04-24')" name="date_start"/> <field eval="time.strftime('%Y-04-24')" name="date_start"/>
<field eval="str(time.localtime()[0] + 1) + '-04-24'" name="date"/> <field eval="str(time.localtime()[0] + 1) + '-04-24'" name="date"/>
<field name="type">normal</field> <field name="type">normal</field>
@ -161,8 +161,8 @@
<field name="parent_id" ref="analytic_partners"/> <field name="parent_id" ref="analytic_partners"/>
<field name="partner_id" ref="base.res_partner_12"/> <field name="partner_id" ref="base.res_partner_12"/>
</record> </record>
<record id="analytic_tiny_at_work" model="account.analytic.account"> <record id="analytic_think_big_systems" model="account.analytic.account">
<field name="name">OpenERP SA AT Work</field> <field name="name">Think Big Systems</field>
<field name="type">normal</field> <field name="type">normal</field>
<field name="parent_id" ref="analytic_partners"/> <field name="parent_id" ref="analytic_partners"/>
<field name="partner_id" ref="base.res_partner_18"/> <field name="partner_id" ref="base.res_partner_18"/>

View File

@ -35,7 +35,6 @@
<field name="partner_id"/> <field name="partner_id"/>
<field name="user_id"/> <field name="user_id"/>
<group expand="0" string="Group By..."> <group expand="0" string="Group By...">
<filter string="Manager" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Associated Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/> <filter string="Associated Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Parent Account" icon="terp-folder-green" domain="[]" context="{'group_by':'parent_id'}"/> <filter string="Parent Account" icon="terp-folder-green" domain="[]" context="{'group_by':'parent_id'}"/>
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}" groups="base.group_no_one"/> <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}" groups="base.group_no_one"/>
@ -141,11 +140,11 @@
</div> </div>
</group> </group>
<group string="Product Information"> <group string="Product Information">
<field name="product_id"/> <field name="product_id" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id, journal_id)"/>
<label for="unit_amount"/> <label for="unit_amount"/>
<div> <div>
<field name="unit_amount" class="oe_inline"/> <field name="unit_amount" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)" class="oe_inline"/>
<field name="product_uom_id" class="oe_inline"/> <field name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)" class="oe_inline"/>
</div> </div>
</group> </group>
<group string="General Accounting"> <group string="General Accounting">
@ -160,7 +159,7 @@
<field name="name">account.analytic.line.tree</field> <field name="name">account.analytic.line.tree</field>
<field name="model">account.analytic.line</field> <field name="model">account.analytic.line</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<tree editable="top" string="Analytic Entries"> <tree string="Analytic Entries">
<field name="date"/> <field name="date"/>
<field name="ref" invisible="context.get('to_invoice', False)"/> <field name="ref" invisible="context.get('to_invoice', False)"/>
<field name="name"/> <field name="name"/>

View File

@ -10,7 +10,7 @@
<group col="4"> <group col="4">
<field name="date1"/> <field name="date1"/>
<field name="date2"/> <field name="date2"/>
<field name="analytic_account_journal_id" widget="many2many_tags" class="oe_inline" required="1"/> <field name="analytic_account_journal_id" widget="many2many_tags" class="oe_inline" required="1" colspan="4"/>
</group> </group>
<footer> <footer>
<button name="check_report" string="Print" type="object" class="oe_highlight"/> <button name="check_report" string="Print" type="object" class="oe_highlight"/>

View File

@ -170,12 +170,12 @@
<tr> <tr>
<td><para style="terp_tblheader_General_Centre">Chart of Accounts</para></td> <td><para style="terp_tblheader_General_Centre">Chart of Accounts</para></td>
<td><para style="terp_tblheader_General_Centre">Fiscal Year</para></td> <td><para style="terp_tblheader_General_Centre">Fiscal Year</para></td>
<td><para style="terp_tblheader_General_Centre">Filter By [[ get_filter(data)!='No Filter' and get_filter(data) ]]</para></td> <td><para style="terp_tblheader_General_Centre">Filter By [[ get_filter(data)!='No Filters' and get_filter(data) ]]</para></td>
</tr> </tr>
<tr> <tr>
<td><para style="terp_default_Centre_8">[[ get_account(data) or removeParentNode('para') ]]</para></td> <td><para style="terp_default_Centre_8">[[ get_account(data) or removeParentNode('para') ]]</para></td>
<td><para style="terp_default_Centre_8">[[ get_fiscalyear(data) or '' ]]</para></td> <td><para style="terp_default_Centre_8">[[ get_fiscalyear(data) or '' ]]</para></td>
<td><para style="terp_default_Centre_8">[[ get_filter(data)=='No Filter' and get_filter(data) or removeParentNode('para') ]] </para> <td><para style="terp_default_Centre_8">[[ get_filter(data)=='No Filters' and get_filter(data) or removeParentNode('para') ]] </para>
<blockTable colWidths="60.0,60.0" style="Table3">[[ get_filter(data)=='Date' or removeParentNode('blockTable') ]] <blockTable colWidths="60.0,60.0" style="Table3">[[ get_filter(data)=='Date' or removeParentNode('blockTable') ]]
<tr> <tr>
<td><para style="terp_tblheader_General_Centre">Start Date</para></td> <td><para style="terp_tblheader_General_Centre">Start Date</para></td>

View File

@ -299,10 +299,10 @@ class general_ledger(report_sxw.rml_parse, common_report_header):
def _get_sortby(self, data): def _get_sortby(self, data):
if self.sortby == 'sort_date': if self.sortby == 'sort_date':
return 'Date' return self._translate('Date')
elif self.sortby == 'sort_journal_partner': elif self.sortby == 'sort_journal_partner':
return 'Journal & Partner' return self._translate('Journal & Partner')
return 'Date' return self._translate('Date')
report_sxw.report_sxw('report.account.general.ledger', 'account.account', 'addons/account/report/account_general_ledger.rml', parser=general_ledger, header='internal') report_sxw.report_sxw('report.account.general.ledger', 'account.account', 'addons/account/report/account_general_ledger.rml', parser=general_ledger, header='internal')
report_sxw.report_sxw('report.account.general.ledger_landscape', 'account.account', 'addons/account/report/account_general_ledger_landscape.rml', parser=general_ledger, header='internal landscape') report_sxw.report_sxw('report.account.general.ledger_landscape', 'account.account', 'addons/account/report/account_general_ledger_landscape.rml', parser=general_ledger, header='internal landscape')

View File

@ -91,7 +91,7 @@ class account_invoice_report(osv.osv):
('open','Open'), ('open','Open'),
('paid','Done'), ('paid','Done'),
('cancel','Cancelled') ('cancel','Cancelled')
], 'Invoice State', readonly=True), ], 'Invoice Status', readonly=True),
'date_due': fields.date('Due Date', readonly=True), 'date_due': fields.date('Due Date', readonly=True),
'account_id': fields.many2one('account.account', 'Account',readonly=True), 'account_id': fields.many2one('account.account', 'Account',readonly=True),
'account_line_id': fields.many2one('account.account', 'Account Line',readonly=True), 'account_line_id': fields.many2one('account.account', 'Account Line',readonly=True),

View File

@ -42,7 +42,7 @@
<field name="arch" type="xml"> <field name="arch" type="xml">
<graph string="Invoices Analysis" type="bar"> <graph string="Invoices Analysis" type="bar">
<field name="product_id"/> <field name="product_id"/>
<field name="user_currency_price_total"/> <field name="price_total"/>
</graph> </graph>
</field> </field>
</record> </record>

View File

@ -129,7 +129,7 @@
</td> </td>
<td> <td>
<para style="terp_default_9">[[ o.title.name or '' ]] [[ o.name ]]</para> <para style="terp_default_9">[[ o.title.name or '' ]] [[ o.name ]]</para>
<para style="terp_default_9">[[ display_address(o.partner_id) ]]</para> <para style="terp_default_9">[[ display_address(o) ]]</para>
<para style="terp_default_9"> <para style="terp_default_9">
<font color="white"> </font> <font color="white"> </font>
</para> </para>
@ -277,7 +277,7 @@
<font color="white"> </font> <font color="white"> </font>
</para> </para>
<section> <section>
<para style="terp_default_Bold_9">[[ getLines(o) and removeParentNode('section')]]There is nothing due with this customer</para> <para style="terp_default_Bold_9">[[ getLines(o) and removeParentNode('section')]]There is nothing due with this customer.</para>
</section> </section>
<para style="terp_default_9"> <para style="terp_default_9">
<font color="white"> </font> <font color="white"> </font>

View File

@ -94,10 +94,10 @@ class common_report_header(object):
def _get_filter(self, data): def _get_filter(self, data):
if data.get('form', False) and data['form'].get('filter', False): if data.get('form', False) and data['form'].get('filter', False):
if data['form']['filter'] == 'filter_date': if data['form']['filter'] == 'filter_date':
return 'Date' return self._translate('Date')
elif data['form']['filter'] == 'filter_period': elif data['form']['filter'] == 'filter_period':
return 'Periods' return self._translate('Periods')
return 'No Filter' return self._translate('No Filters')
def _sum_debit_period(self, period_id, journal_id=None): def _sum_debit_period(self, period_id, journal_id=None):
journals = journal_id or self.journal_ids journals = journal_id or self.journal_ids

View File

@ -120,6 +120,8 @@ class account_config_settings(osv.osv_memory):
'group_analytic_accounting': fields.boolean('Analytic accounting', 'group_analytic_accounting': fields.boolean('Analytic accounting',
implied_group='analytic.group_analytic_accounting', implied_group='analytic.group_analytic_accounting',
help="Allows you to use the analytic accounting."), help="Allows you to use the analytic accounting."),
'group_check_supplier_invoice_total': fields.boolean('Check the total of supplier invoices',
implied_group="account.group_supplier_inv_check_total"),
} }
def _default_company(self, cr, uid, context=None): def _default_company(self, cr, uid, context=None):
@ -260,6 +262,7 @@ class account_config_settings(osv.osv_memory):
'sale_tax_rate': config.sale_tax_rate, 'sale_tax_rate': config.sale_tax_rate,
'purchase_tax_rate': config.purchase_tax_rate, 'purchase_tax_rate': config.purchase_tax_rate,
'complete_tax_set': config.complete_tax_set, 'complete_tax_set': config.complete_tax_set,
'currency_id': config.currency_id.id,
}, context) }, context)
wizard.execute(cr, uid, [wizard_id], context) wizard.execute(cr, uid, [wizard_id], context)

View File

@ -220,6 +220,10 @@
<field name="module_account_check_writing" class="oe_inline"/> <field name="module_account_check_writing" class="oe_inline"/>
<label for="module_account_check_writing"/> <label for="module_account_check_writing"/>
</div> </div>
<div>
<field name="group_check_supplier_invoice_total" class="oe_inline"/>
<label for="group_check_supplier_invoice_total"/>
</div>
</div> </div>
</group> </group>
<separator string="Bank &amp; Cash"/> <separator string="Bank &amp; Cash"/>
@ -264,7 +268,7 @@
<field name="target">inline</field> <field name="target">inline</field>
</record> </record>
<menuitem id="menu_account_config" name="Accounting" parent="base.menu_config" <menuitem id="menu_account_config" name="Invoicing" parent="base.menu_config"
sequence="14" action="action_account_config"/> sequence="14" action="action_account_config"/>
</data> </data>

View File

@ -26,6 +26,11 @@
<field name="category_id" ref="base.module_category_hidden"/> <field name="category_id" ref="base.module_category_hidden"/>
</record> </record>
<record id="group_supplier_inv_check_total" model="res.groups">
<field name="name">Check Total on supplier invoices</field>
<field name="category_id" ref="base.module_category_hidden"/>
</record>
<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 name="model_id" ref="model_account_move"/> <field name="model_id" ref="model_account_move"/>

View File

@ -11,7 +11,7 @@ openerp.account = function (instance) {
this._super.apply(this, arguments); this._super.apply(this, arguments);
var self = this; var self = this;
this.current_partner = null; this.current_partner = null;
this.do_select.add(function() { this.on('record_selected', this, function() {
if (self.get_selected_ids().length === 0) { if (self.get_selected_ids().length === 0) {
self.$(".oe_account_recon_reconcile").attr("disabled", ""); self.$(".oe_account_recon_reconcile").attr("disabled", "");
} else { } else {
@ -19,7 +19,7 @@ openerp.account = function (instance) {
} }
}); });
}, },
on_loaded: function() { load_list: function() {
var self = this; var self = this;
var tmp = this._super.apply(this, arguments); var tmp = this._super.apply(this, arguments);
if (this.partners) { if (this.partners) {
@ -48,7 +48,7 @@ openerp.account = function (instance) {
this.last_group_by = group_by; this.last_group_by = group_by;
this.old_search = _.bind(this._super, this); this.old_search = _.bind(this._super, this);
var mod = new instance.web.Model("account.move.line", context, domain); var mod = new instance.web.Model("account.move.line", context, domain);
return mod.call("list_partners_to_reconcile", []).pipe(function(result) { return mod.call("list_partners_to_reconcile", []).then(function(result) {
var current = self.current_partner !== null ? self.partners[self.current_partner][0] : null; var current = self.current_partner !== null ? self.partners[self.current_partner][0] : null;
self.partners = result; self.partners = result;
var index = _.find(_.range(self.partners.length), function(el) { var index = _.find(_.range(self.partners.length), function(el) {
@ -74,7 +74,7 @@ openerp.account = function (instance) {
return fct(); return fct();
} else { } else {
return new instance.web.Model("res.partner").call("read", return new instance.web.Model("res.partner").call("read",
[self.partners[self.current_partner][0], ["last_reconciliation_date"]]).pipe(function(res) { [self.partners[self.current_partner][0], ["last_reconciliation_date"]]).then(function(res) {
self.last_reconciliation_date = self.last_reconciliation_date =
instance.web.format_value(res.last_reconciliation_date, {"type": "datetime"}, _t("Never")); instance.web.format_value(res.last_reconciliation_date, {"type": "datetime"}, _t("Never"));
return fct(); return fct();
@ -92,7 +92,7 @@ openerp.account = function (instance) {
return false; return false;
} }
new instance.web.Model("ir.model.data").call("get_object_reference", ["account", "action_view_account_move_line_reconcile"]).pipe(function(result) { new instance.web.Model("ir.model.data").call("get_object_reference", ["account", "action_view_account_move_line_reconcile"]).then(function(result) {
var additional_context = _.extend({ var additional_context = _.extend({
active_id: ids[0], active_id: ids[0],
active_ids: ids, active_ids: ids,
@ -101,13 +101,14 @@ openerp.account = function (instance) {
return self.rpc("/web/action/load", { return self.rpc("/web/action/load", {
action_id: result[1], action_id: result[1],
context: additional_context context: additional_context
}).then(function (result) { }).done(function (result) {
result = result.result;
result.context = _.extend(result.context || {}, additional_context); result.context = _.extend(result.context || {}, additional_context);
result.flags = result.flags || {}; result.flags = result.flags || {};
result.flags.new_window = true; result.flags.new_window = true;
return self.do_action(result, function () { return self.do_action(result, {
self.do_search(self.last_domain, self.last_context, self.last_group_by); on_close: function () {
self.do_search(self.last_domain, self.last_context, self.last_group_by);
}
}); });
}); });
}); });
@ -115,10 +116,14 @@ openerp.account = function (instance) {
mark_as_reconciled: function() { mark_as_reconciled: function() {
var self = this; var self = this;
var id = self.partners[self.current_partner][0]; var id = self.partners[self.current_partner][0];
new instance.web.Model("res.partner").call("mark_as_reconciled", [[id]]).pipe(function() { new instance.web.Model("res.partner").call("mark_as_reconciled", [[id]]).then(function() {
self.do_search(self.last_domain, self.last_context, self.last_group_by); self.do_search(self.last_domain, self.last_context, self.last_group_by);
}); });
}, },
do_select: function (ids, records) {
this.trigger('record_selected')
this._super.apply(this, arguments);
},
}); });
}; };

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