[FIX] account_payment: improve error message and do not freeze workflow on 'done...
[odoo/odoo.git] / addons / account_payment / account_payment.py
index d5858d9..c97c754 100644 (file)
@@ -23,6 +23,7 @@ import time
 
 from osv import osv, fields
 import netsvc
+from tools.translate import _
 
 class payment_mode(osv.osv):
     _name= 'payment.mode'
@@ -108,6 +109,7 @@ class payment_order(osv.osv):
         self.write(cr, uid, ids, {'state': 'draft'})
         wf_service = netsvc.LocalService("workflow")
         for id in ids:
+            wf_service.trg_delete(uid, 'payment.order', id, cr)
             wf_service.trg_create(uid, 'payment.order', id, cr)
         return True
 
@@ -119,6 +121,17 @@ class payment_order(osv.osv):
                 reference = ir_seq_obj.get(cr, uid, 'payment.order')
                 self.write(cr, uid, order['id'], {'reference':reference})
         return True
+    
+    def action_cancel(self, cr, uid, ids, *args):
+        for order in self.browse(cr, uid, ids):
+            for line in order.line_ids:
+                if line.bank_statement_line_id:
+                    raise osv.except_osv(_('Warning !'),
+                        _("Payment order line '%s' is already imported in Bank statement '%s' (id: %s).") % (
+                            line.name, line.bank_statement_line_id.statement_id.name,
+                            line.bank_statement_line_id.statement_id.id))
+        self.write(cr, uid, ids, {'state': 'cancel'})
+        return True
 
     def set_done(self, cr, uid, ids, *args):
         wf_service = netsvc.LocalService("workflow")
@@ -306,7 +319,7 @@ class payment_line(osv.osv):
             if id.move_line_id:
                 res[id.id] = id.move_line_id.date_maturity
             else:
-                res[id.id] = ""
+                res[id.id] = False
         return res
 
     def _get_ml_created_date(self, cr, uid, ids, *a):
@@ -315,7 +328,7 @@ class payment_line(osv.osv):
             if id.move_line_id:
                 res[id.id] = id.move_line_id.date_created
             else:
-                res[id.id] = ""
+                res[id.id] = False
         return res
 
     _columns = {