clearcorp team mailing list archive
-
clearcorp team
-
Mailing list archive
-
Message #00197
lp:~as.clearcorp/openerp-ccorp-addons/6.1-account_invoice_journal_defaults into lp:openerp-ccorp-addons
Armando Soto Rodríguez has proposed merging lp:~as.clearcorp/openerp-ccorp-addons/6.1-account_invoice_journal_defaults into lp:openerp-ccorp-addons.
Requested reviews:
CLEARCORP drivers (clearcorp-drivers)
For more details, see:
https://code.launchpad.net/~as.clearcorp/openerp-ccorp-addons/6.1-account_invoice_journal_defaults/+merge/112912
[FIX] Redefine of create and write to save the account_id and currency_id properly
--
https://code.launchpad.net/~as.clearcorp/openerp-ccorp-addons/6.1-account_invoice_journal_defaults/+merge/112912
Your team CLEARCORP development team is subscribed to branch lp:openerp-ccorp-addons.
=== modified file 'account_invoice_journal_defaults/account_invoice_journal_defaults.py'
--- account_invoice_journal_defaults/account_invoice_journal_defaults.py 2012-06-29 21:17:48 +0000
+++ account_invoice_journal_defaults/account_invoice_journal_defaults.py 2012-06-30 21:31:22 +0000
@@ -21,26 +21,24 @@
##############################################################################
import netsvc
-from osv import fields, osv
+from osv import fields, orm
import tools
from tools.translate import _
-class account_invoice(osv.osv):
+class AccountInvoice(orm.Model):
_inherit = 'account.invoice'
- _name = 'account.invoice'
- _description = 'Invoice'
def onchange_partner_id(self, cr, uid, ids, type, partner_id,\
date_invoice=False, payment_term=False, partner_bank_id=False, company_id=False):
- result = super(account_invoice, self).onchange_partner_id(cr, uid, ids, type, partner_id, date_invoice, payment_term, partner_bank_id, company_id)
+ result = super(AccountInvoice, self).onchange_partner_id(cr, uid, ids, type, partner_id, date_invoice, payment_term, partner_bank_id, company_id)
del result['value']['account_id']
return result
def onchange_journal_id(self, cr, uid, ids, journal_id=False, context=None):
- result = super(account_invoice, self).onchange_journal_id(cr, uid, ids, journal_id, context)
+ result = super(AccountInvoice, self).onchange_journal_id(cr, uid, ids, journal_id, context)
journal = self.pool.get('account.journal').browse(cr, uid, journal_id, context=context)
@@ -56,11 +54,58 @@
result['value']['account_id'] = acc_id
return result
+
+ def create(self, cr, user, vals, context=None):
+ journal_id = vals['journal_id']
+
+ journal = self.pool.get('account.journal').browse(cr, user, journal_id, context=context)
+
+ if journal.type == 'sale':
+ acc_id = journal.default_receivable_account_id.id
+ elif journal.type == 'purchase':
+ acc_id = journal.default_payable_account_id.id
+ elif journal.type == 'sale_refund':
+ acc_id = journal.default_payable_account_id.id
+ elif journal.type == 'purchase_refund':
+ acc_id = journal.default_receivable_account_id.id
+
+ currency_id = journal.currency and journal.currency.id or journal.company_id.currency_id.id
+
+ if not 'account_id' in vals:
+ vals['account_id'] = acc_id
+
+ if not 'currency_id' in vals:
+ vals['currency_id'] = currency_id
+
+ return super(AccountInvoice, self).create(cr, user, vals, context=context)
+
+ def write(self, cr, user, ids, vals, context=None):
+ if 'journal_id' in vals:
+ journal_id = vals['journal_id']
+
+ journal = self.pool.get('account.journal').browse(cr, user, journal_id, context=context)
+
+ if journal.type == 'sale':
+ acc_id = journal.default_receivable_account_id.id
+ elif journal.type == 'purchase':
+ acc_id = journal.default_payable_account_id.id
+ elif journal.type == 'sale_refund':
+ acc_id = journal.default_payable_account_id.id
+ elif journal.type == 'purchase_refund':
+ acc_id = journal.default_receivable_account_id.id
+
+ currency_id = journal.currency and journal.currency.id or journal.company_id.currency_id.id
+
+ if not 'account_id' in vals:
+ vals['account_id'] = acc_id
+
+ if not 'currency_id' in vals:
+ vals['currency_id'] = currency_id
+
+ return super(AccountInvoice, self).write(cr, user, ids, vals, context=context)
-class account_journal(osv.osv):
+class AccountJournal(orm.Model):
_inherit = 'account.journal'
- _name = 'account.journal'
- _description = 'Journal'
_columns = {
'default_receivable_account_id': fields.many2one('account.account', 'Default Receivable Account', domain="[('type','!=','view')]", help="It acts as a default receivable account"),
Follow ups