summaryrefslogtreecommitdiff
path: root/addons/purchase/purchase.py
diff options
context:
space:
mode:
Diffstat (limited to 'addons/purchase/purchase.py')
-rw-r--r--addons/purchase/purchase.py19
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