X-Git-Url: http://git.inspyration.org/?a=blobdiff_plain;ds=sidebyside;f=addons%2Fpurchase_requisition%2Fpurchase_requisition.py;fp=addons%2Fpurchase_requisition%2Fpurchase_requisition.py;h=fa0a807c3db9be3b0ee41bee8bfd44db9c5f1c61;hb=219effb06a6f1526a8a6667f9e32cf0796b61aef;hp=85a81c49ad8dc1453f9c4834d2d85922f6e58b51;hpb=4382469a3ad017e796b2ccd58e79433fc27c8d4c;p=odoo%2Fodoo.git diff --git a/addons/purchase_requisition/purchase_requisition.py b/addons/purchase_requisition/purchase_requisition.py index 85a81c4..fa0a807 100644 --- a/addons/purchase_requisition/purchase_requisition.py +++ b/addons/purchase_requisition/purchase_requisition.py @@ -31,7 +31,7 @@ import decimal_precision as dp class purchase_requisition(osv.osv): _name = "purchase.requisition" _description="Purchase Requisition" - _inherit = ['ir.needaction_mixin'] + _inherit = ['ir.needaction_mixin', 'mail.thread'] _columns = { 'name': fields.char('Requisition Reference', size=32,required=True), 'origin': fields.char('Source', size=32), @@ -211,6 +211,43 @@ class purchase_order(osv.osv): _columns = { 'requisition_id' : fields.many2one('purchase.requisition','Purchase Requisition') } + def default_get(self, cr, uid, fields, context=None): + if not context: + context = {} + val_list = [] + requisition_id = {} + product_obj = self.pool.get('product.product') + requisition_line_obj = self.pool.get('purchase.requisition.line') + purchase_order_line_obj = self.pool.get('purchase.order.line') + res = super(purchase_order, self).default_get(cr, uid, fields, context=context) + product_ids = context.get('product_ids', False) + if product_ids: + for id in product_ids: + if id[0] == 4: + requisition_data = requisition_line_obj.browse(cr, uid, id[1], context=context) + requisition_id.update({'requisition_id': requisition_data.requisition_id.id}) + line_vals={'product_id': requisition_data.product_id.id, 'product_qty': requisition_data.product_qty, 'name': requisition_data.product_id.name} + elif id[0] == 0: + product_data = id[2] + name = product_obj.browse(cr, uid, product_data.get('product_id'), context=context).name + line_vals = {'product_id': product_data.get('product_id'), 'product_qty': product_data.get('product_qty'), 'name': name} + val_list.append((0,0,line_vals)) + res.update({'order_line': val_list, 'requisition_id': requisition_id.get('requisition_id')}) + return res + + def onchange_partner_id(self, cr, uid, ids, partner_id, requisition_id): + res = {} + res = super(purchase_order, self).onchange_partner_id(cr, uid, ids, partner_id) + res_partner = self.pool.get('res.partner') + value = {'partner_id': ''} + requisition_pool = self.pool.get('purchase.requisition') + supplier = res_partner.browse(cr, uid, partner_id) + if requisition_id: + requisition = requisition_pool.browse(cr, uid, requisition_id) + if supplier.id in filter(lambda x: x, [rfq.state <> 'cancel' and rfq.partner_id.id or None for rfq in requisition.purchase_ids]): + raise osv.except_osv(_('Warning'), _('You have already one %s purchase order for this partner, you must cancel this purchase order to create a new quotation.') % rfq.state) + return res + def wkf_confirm_order(self, cr, uid, ids, context=None): res = super(purchase_order, self).wkf_confirm_order(cr, uid, ids, context=context) proc_obj = self.pool.get('procurement.order')