diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py
index 98379f67240..51533353be4 100644
--- a/addons/account/account_invoice.py
+++ b/addons/account/account_invoice.py
@@ -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):
diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml
index 0aa7e48b6fc..cd70edb2349 100644
--- a/addons/account/account_invoice_view.xml
+++ b/addons/account/account_invoice_view.xml
@@ -302,8 +302,8 @@
-
-
+
+
diff --git a/addons/account/account_invoice_workflow.xml b/addons/account/account_invoice_workflow.xml
index 58c4150a736..7e536036628 100644
--- a/addons/account/account_invoice_workflow.xml
+++ b/addons/account/account_invoice_workflow.xml
@@ -34,7 +34,7 @@ write({'state':'open'})
sent
- invoice_sent()
+ write({'state':'sent'})
function