diff options
Diffstat (limited to 'addons/purchase/purchase.py')
| -rw-r--r-- | addons/purchase/purchase.py | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index be2803261e7..97f0861ef31 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -679,12 +679,12 @@ class purchase_order(osv.osv): def action_cancel(self, cr, uid, ids, context=None): for purchase in self.browse(cr, uid, ids, context=context): for pick in purchase.picking_ids: - if pick.state not in ('draft', 'cancel'): - raise osv.except_osv( - _('Unable to cancel the purchase order %s.') % (purchase.name), - _('First cancel all receipts related to this purchase order.')) - self.pool.get('stock.picking') \ - .signal_workflow(cr, uid, map(attrgetter('id'), purchase.picking_ids), 'button_cancel') + for move in pick.move_lines: + if pick.state == 'done': + raise osv.except_osv( + _('Unable to cancel the purchase order %s.') % (purchase.name), + _('You have already received some goods for it. ')) + self.pool.get('stock.picking').action_cancel(cr, uid, [x.id for x in purchase.picking_ids if x.state != 'cancel'], context=context) for inv in purchase.invoice_ids: if inv and inv.state not in ('cancel', 'draft'): raise osv.except_osv( @@ -692,10 +692,6 @@ class purchase_order(osv.osv): _('You must first cancel all invoices related to this purchase order.')) self.pool.get('account.invoice') \ .signal_workflow(cr, uid, map(attrgetter('id'), purchase.invoice_ids), 'invoice_cancel') - self.pool['purchase.order.line'].write(cr, uid, [l.id for l in purchase.order_line], - {'state': 'cancel'}) - self.write(cr, uid, ids, {'state': 'cancel'}) - self.set_order_line_status(cr, uid, ids, 'cancel', context=context) self.signal_workflow(cr, uid, ids, 'purchase_cancel') return True @@ -1156,6 +1152,7 @@ class purchase_order_line(osv.osv): self.write(cr, uid, ids, {'state': 'confirmed'}, context=context) return True + class procurement_rule(osv.osv): _inherit = 'procurement.rule' @@ -1287,7 +1284,7 @@ class procurement_order(osv.osv): product = prod_obj.browse(cr, uid, procurement.product_id.id, context=new_context) taxes_ids = procurement.product_id.supplier_taxes_id taxes = acc_pos_obj.map_tax(cr, uid, partner.property_account_position, taxes_ids) - name = product.partner_ref + name = product.display_name if product.description_purchase: name += '\n' + product.description_purchase |
