This question has been flagged
2 Replies
7451 Views

Hi when I click on this button(function ),it raised an error ,need a help

def cash_payment_popup(self, cr, uid, ids, context=None):
        if not ids: return []
  #      num=self.browse(cr,uid,ids,context=context)
        journal_pool = self.browse(cr,uid,ids,context=context)
        #journal = journal_pool[0]['journal_id']
        dummy, view_id = self.pool.get('ir.model.data').get_object_reference(cr, uid,'customer_payments', 'customer_payment_wizard_form_view')
       # journal_pool = self.pool.get('account.journal')
     #   journal = journal_pool.browse(cr, uid,num, context=context)
        inv = self.browse(cr, uid, ids[0], context=context)
        if journal_pool.type == 'cash':       ###How to check here its a journal_id value is cash/bank
            return {
                'name':_("Cash Payment Order"),
                'view_mode': 'form',
                'view_id': view_id,
                'view_type': 'form',
                'res_model': 'customer.payment.wizard',
                'type': 'ir.actions.act_window',
                'nodestroy': True,
                'target': 'new',
                'domain': '[]',
                'context': {
                    'default_supplier_name': self.pool.get('res.partner')._find_accounting_partner(inv.partner_id).id,
                    'default_amount': inv.amount_total,
                    'default_date': inv.date,
                 #   'default_currency': self.pool.get('account.invoice')._get_currency(inv.currency_id).id,
                 #   'default_company_name': self.pool.get('res.partner')._find_accounting_partner(inv.company_id).id,
                    'default_cash_payment_order_no':inv.reference,
                    'default_document': inv.document,
                    'default_date_location': inv.date_location,
                    'default_purpose': inv.purpose,
                    'default_enclosure': inv.enclosure,
                    'default_amount_words':inv.amount_in_text,
               #     'default_accounts':inv.ren_period,
                            }
            }
        else:
            raise osv.except_osv(_("Alert !!"),_("You Cannot Withdraw Deposit Before 3 Months"))

Avatar
Discard
Best Answer

from this journal_pool = self.browse(cr,uid,ids,context=context), "journal_pool" is of List [] type,

the error is from u cannot get data from list of browse record if u use . (dot),

 

use "For Loop" for  journal_pool in self.browse(cr,uid,ids,context=context),

You can get journal = journal_pool.journal_id

type=journal_pool.type

def cash_payment_popup(self, cr, uid, ids, context=None):
        if not ids: return []
  #      num=self.browse(cr,uid,ids,context=context)
        for journal_pool in self.browse(cr,uid,ids,context=context):
            #journal = journal_pool[0]['journal_id']
             dummy, view_id = self.pool.get('ir.model.data').get_object_reference(cr,

             uid,'customer_payments','customer_payment_wizard_form_view')
          # journal_pool = self.pool.get('account.journal')
     #      journal = journal_pool.browse(cr, uid,num, context=context)
            inv = self.browse(cr, uid, ids[0], context=context)
            if journal_pool.type == 'cash':       ###How to check here its a journal_id value is cash/bank
                 return {
                'name':_("Cash Payment Order"),
                'view_mode': 'form',
                'view_id': view_id,
                'view_type': 'form',
                'res_model': 'customer.payment.wizard',
                'type': 'ir.actions.act_window',
                'nodestroy': True,
                'target': 'new',
                'domain': '[]',
                'context': {
                    'default_supplier_name':self.pool.get('res.partner')._find_accounting_partner(inv.partner_id).id,
                    'default_amount': inv.amount_total,
                    'default_date': inv.date,
                 #   'default_currency': self.pool.get('account.invoice')._get_currency(inv.currency_id).id,
                 #   'default_company_name': 

                  #    self.pool.get('res.partner')._find_accounting_partner(inv.company_id).id,
                    'default_cash_payment_order_no':inv.reference,
                    'default_document': inv.document,
                    'default_date_location': inv.date_location,
                    'default_purpose': inv.purpose,
                    'default_enclosure': inv.enclosure,
                    'default_amount_words':inv.amount_in_text,
               #     'default_accounts':inv.ren_period,
                            }
                    }
            else:
                raise osv.except_osv(_("Alert !!"),_("You Cannot Withdraw Deposit Before 3 Months"))

Avatar
Discard
Best Answer

Replace this code

if journal_pool.type == 'cash':       ###How to check here its a journal_id value is cash/bank

with this

if journal.type == 'cash':       ###How to check here its a journal_id value is cash/bank

Avatar
Discard