[ADD] account_voucher: added act window for invoice payment through account voucher.
authorvra <vra@tinyerp.com>
Wed, 6 Oct 2010 08:00:25 +0000 (13:30 +0530)
committervra <vra@tinyerp.com>
Wed, 6 Oct 2010 08:00:25 +0000 (13:30 +0530)
bzr revid: vra@tinyerp.com-20101006080025-4pt3bv23ev2hkfp6

addons/account_voucher/account_voucher.py
addons/account_voucher/account_voucher_view.xml

index 2ea6e4b..0d0dfaf 100644 (file)
@@ -112,6 +112,15 @@ class account_voucher(osv.osv):
         return [(r['id'], (str("%.2f" % r['amount']) or '')) for r in self.read(cr, uid, ids, ['amount'], context, load='_classic_write')]
 
     def fields_view_get(self, cr, uid, view_id=None, view_type=False, context=None, toolbar=False, submenu=False):
+        if not view_id and context.get('invoice_type',False):
+            mod_obj = self.pool.get('ir.model.data')
+            act_obj = self.pool.get('ir.actions.act_window')
+            if context.get('invoice_type') in ('out_invoice','out_refund'): 
+                result = mod_obj._get_id(cr, uid, 'account_voucher', 'view_vendor_receipt_form')
+            else:
+                result = mod_obj._get_id(cr, uid, 'account_voucher', 'view_vendor_payment_form')
+            result = mod_obj.read(cr, uid, [result], ['res_id'], context=context)[0]['res_id']
+            view_id = result
         res = super(account_voucher,self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar, submenu=submenu)
         doc = etree.XML(res['arch'])
         nodes = doc.xpath("//field[@name='partner_id']")
@@ -349,7 +358,6 @@ class account_voucher(osv.osv):
 
         if context is None:
             context = {}
-
         currency_pool = self.pool.get('res.currency')
         move_pool = self.pool.get('account.move')
         line_pool = self.pool.get('account.voucher.line')
@@ -384,6 +392,7 @@ class account_voucher(osv.osv):
             account_id = journal.default_credit_account_id.id or journal.default_debit_account_id.id
 
         default['value']['account_id'] = account_id
+
         if journal.type not in ('cash', 'bank'):
             return default
 
index d066c91..343211c 100644 (file)
         <menuitem action="action_voucher_list" id="menu_encode_entries_by_voucher" parent="account.menu_finance_entries" sequence="6"/>
 
         <act_window
-
             id="act_journal_voucher_open"
             name="Voucher Entries"
             context="{'search_default_journal_id': active_id, 'type':type}"
             </field>
         </record>
 
+        <act_window
+            id="act_invoice_voucher_open"
+            name="Pay Invoice"
+            view_mode="form,tree"
+            domain="[('partner_id', '=', partner_id)]"
+            context="{'default_partner_id': partner_id, 'default_amount':amount_total, 'default_name':name, 'default_state': 'draft', 'invoice_type':type, 'default_type': type in ('out_invoice','out_refund') and 'receipt' or 'payment'}"
+            res_model="account.voucher"
+            src_model="account.invoice"/>
 
     </data>
 </openerp>