[IMP] account Improve the print button to call the invoice_sent signal and also invoice_sent is triggered only when mail is send.
bzr revid: mdi@tinyerp.com-20120229101045-w775o646hlu432ot
This commit is contained in:
parent
8082c6e4a3
commit
98fc1ace87
|
@ -372,25 +372,54 @@ class account_invoice(osv.osv):
|
|||
else:
|
||||
raise orm.except_orm(_('Unknown Error'), str(e))
|
||||
|
||||
def invoice_sent(self, cr, uid, ids, *args):
|
||||
def _hook_message_sent(self, cr, uid, invoice_id, context=None):
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'account.invoice', invoice_id, 'invoice_sent', cr)
|
||||
return True
|
||||
|
||||
def invoice_print(self, cr, uid, ids, context=None):
|
||||
wf_service = netsvc.LocalService('workflow')
|
||||
for id in ids:
|
||||
wf_service.trg_validate(uid, 'account.invoice', id, 'invoice_sent', cr)
|
||||
datas = {
|
||||
'ids': ids,
|
||||
'model': 'account.invoice',
|
||||
'form': self.read(cr, uid, ids, context=context)[0]
|
||||
}
|
||||
return {
|
||||
'type': 'ir.actions.report.xml',
|
||||
'report_name': 'account.invoice',
|
||||
'datas': datas,
|
||||
'nodestroy' : True
|
||||
}
|
||||
|
||||
def action_invoice_sent(self, cr, uid, ids, context=None):
|
||||
email_template_obj = self.pool.get('email.template')
|
||||
mod_obj = self.pool.get('ir.model.data')
|
||||
|
||||
template_id = email_template_obj.search(cr, uid, [('name', '=', 'Automated Invoice Notification Mail')])[0]
|
||||
template_id = email_template_obj.search(cr, uid, [('model_id', '=', 'account.invoice')], context=context)[0]
|
||||
template = email_template_obj.browse(cr, uid, template_id)
|
||||
model_data_id = mod_obj._get_id(cr, uid, 'mail', 'email_compose_message_wizard_form')
|
||||
res_id = mod_obj.browse(cr, uid, model_data_id).res_id
|
||||
res_id = mod_obj.browse(cr, uid, model_data_id, context=context).res_id
|
||||
|
||||
self.write(cr, uid, ids, {'state' : 'sent'})
|
||||
#EDI EXport data
|
||||
id = ids[0]
|
||||
invoice = self.browse(cr, uid, id, context)
|
||||
if not invoice.partner_id.opt_out:
|
||||
invoice.edi_export_and_email(template_ext_id='account.email_template_edi_invoice', context=context)
|
||||
ctx = context.copy()
|
||||
ctx.update({'active_model': 'account.invoice', 'active_id': invoice.id, 'mail.compose.template_id': template.id})
|
||||
|
||||
return {
|
||||
'view_type': 'form',
|
||||
'view_mode': 'form',
|
||||
'res_model': 'mail.compose.message',
|
||||
'views': [(res_id, 'form')],
|
||||
'view_id': res_id,
|
||||
'type': 'ir.actions.act_window',
|
||||
'target': 'new',
|
||||
'context':{'active_model':'account.invoice', 'mail.compose.template_id': template.id},
|
||||
'context': ctx,
|
||||
'nodestroy': True,
|
||||
}
|
||||
|
||||
def confirm_paid(self, cr, uid, ids, context=None):
|
||||
|
|
|
@ -302,8 +302,8 @@
|
|||
<field name="state" widget="statusbar" statusbar_visible="draft,open,sent,paid" statusbar_colors='{"proforma":"blue","proforma2":"blue"}'/>
|
||||
<field name="residual"/>
|
||||
<group col="8" colspan="4" groups="base.group_user">
|
||||
<button name="invoice_sent" string="Send By Email" icon="terp-mail-message-new" states="open"/>
|
||||
<button name="%(account_invoices)d" string="Print Invoice" type="action" icon="gtk-print" states="open,proforma,sale,proforma2"/>
|
||||
<button name="action_invoice_sent" type="object" string="Send By Email" icon="terp-mail-message-new" states="open"/>
|
||||
<button name="invoice_print" string="Print Invoice" type="object" icon="gtk-print" states="open,proforma,sale,proforma2"/>
|
||||
<button name="invoice_open" states="draft,proforma2" string="Validate" icon="gtk-go-forward"/>
|
||||
<button name="invoice_proforma2" states="draft" string="PRO-FORMA" icon="terp-gtk-media-pause" groups="account.group_account_user"/>
|
||||
<button name="%(action_account_invoice_refund)d" type='action' string='Refund Invoice' states='open,sent,paid' icon="gtk-execute"/>
|
||||
|
|
|
@ -34,7 +34,7 @@ write({'state':'open'})</field>
|
|||
<record id="act_sent" model="workflow.activity">
|
||||
<field name="wkf_id" ref="wkf"/>
|
||||
<field name="name">sent</field>
|
||||
<field name="action">invoice_sent()</field>
|
||||
<field name="action">write({'state':'sent'})</field>
|
||||
<field name="kind">function</field>
|
||||
</record>
|
||||
|
||||
|
|
Loading…
Reference in New Issue