Merge with addons
[odoo/odoo.git] / addons / purchase / purchase.py
index 0c3527b..7bbc109 100644 (file)
@@ -206,7 +206,18 @@ class purchase_order(osv.osv):
     _name = "purchase.order"
     _description = "Purchase order"
     _order = "name desc"
-
+    
+    def unlink(self, cr, uid, ids):
+        purchase_orders = self.read(cr, uid, ids, ['state'])
+        unlink_ids = []
+        for s in purchase_orders:
+            if s['state'] in ['draft','cancel']:
+                unlink_ids.append(s['id'])
+            else:
+                raise osv.except_osv(_('Invalid action !'), _('Cannot delete Purchase Order(s) which are in %s State!' % s['state']))
+        osv.osv.unlink(self, cr, uid, unlink_ids)
+        return True
+    
     def button_dummy(self, cr, uid, ids, context={}):
         return True
 
@@ -228,7 +239,7 @@ class purchase_order(osv.osv):
             return {'value':{'partner_address_id': False}}
         addr = self.pool.get('res.partner').address_get(cr, uid, [part], ['default'])
         pricelist = self.pool.get('res.partner').property_get(cr, uid,
-                                       part,property_pref=['property_product_pricelist_purchase']).get('property_product_pricelist_purchase',False)
+                    part,property_pref=['property_product_pricelist_purchase']).get('property_product_pricelist_purchase',False)
         return {'value':{'partner_address_id': addr['default'], 'pricelist_id': pricelist}}
 
     def wkf_approve_order(self, cr, uid, ids):
@@ -423,6 +434,7 @@ class purchase_order_line(osv.osv):
             raise osv.except_osv(_('No Pricelist !'), _('You have to select a pricelist in the purchase form !\nPlease set one before choosing a product.'))
         if not product:
             return {'value': {'price_unit': 0.0, 'name':'','notes':'', 'product_uom' : False}, 'domain':{'product_uom':[]}}
+        prod= self.pool.get('product.product').browse(cr, uid,product)
         lang=False
         if partner_id:
             lang=self.pool.get('res.partner').read(cr, uid, partner_id)['lang']
@@ -451,9 +463,9 @@ class purchase_order_line(osv.osv):
         if partner_id:
             taxep_id = self.pool.get('res.partner').property_get(cr, uid,partner_id,property_pref=['property_account_supplier_tax']).get('property_account_supplier_tax',False)
             if taxep_id:
-                               taxep=self.pool.get('account.tax').browse(cr, uid,taxep_id)                
+                taxep=self.pool.get('account.tax').browse(cr, uid,taxep_id)
         if not taxep or not taxep.id:
-            res['value']['taxes_id'] = [x.id for x in product.taxes_id]
+            res['value']['taxes_id'] = [x.id for x in prod['supplier_taxes_id']]
         else:
             res5 = [taxep.id]
             for t in taxes: