Zum Inhalt springen
Menü
Sie müssen registriert sein, um mit der Community zu interagieren.
Diese Frage wurde gekennzeichnet
2 Antworten
5553 Ansichten

I am trying to adjust the workflow of an invoice... that is a custom user (in my case, an equivalent of Finance Administrator) must approve before it is paid.

How do i differentiate an invoice for 'sale' and one for 'purchase' ? That is, a supplier payment out must be validated...but not a customer payment (receivable). Here's a snippet:

if not self.pool['res.users'].has_group(cr, uid, 'purchase_requisition.cdn_proculator'):
                raise openerp.exceptions.AccessError(_("Only CDN Proculator can approve."))

tried:

if not self.pool['res.users'].has_group(cr, uid, 'purchase_requisition.cdn_proculator') and invoice.type == 'purchase':
                raise openerp.exceptions.AccessError(_("Only CDN Proculator can approve."))

but didn't work. How can i differentiate the account.invoice ?

Avatar
Verwerfen
Autor

I get the error: File "/opt/openerp/v7/addons/purchase_requisition_analytic/account_voucher.py", line 129, in invoice_pay_customer raise osv.except_osv(_('Warning'),_('The Proculator must have appropriate comments for invoice')) AttributeError: 'browse_record_list' object has no attribute 'type'

That's because it's a list and not a single browse_record. Try iterating over the result, or taking the first one.

Autor

@Leanardo, could you please give an example snippet...

Beste Antwort

Hi,

In account.invoice there are four types.

'out_invoice': Customer Invoice, 'in_invoice': Supplier Invoice, 'out_refund': Customer Returns(Sales Returns), 'in_refund': Supplier Returns(Purchase Returns).

Avatar
Verwerfen
Beste Antwort

The invoice types are not purchase or sales, but they are:

  •  in_invoice
  •  in_refund
  •  out_refund
  •  out_invoice

try using that in your comparison.

 

Avatar
Verwerfen
Verknüpfte Beiträge Antworten Ansichten Aktivität
1
Juli 21
2723
1
Jan. 25
1047
2
März 21
8720
1
Juni 16
4070
8
Aug. 15
8989