# -*- coding: utf-8 -*- # Copyright 2016 Eficent Business and IT Consulting Services S.L. # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl-3.0). from openerp import _, api, models class StockPicking(models.Model): _inherit = "stock.picking" @api.model def _purchase_request_picking_confirm_message_content(self, picking, request, request_dict): if not request_dict: request_dict = {} title = _('Receipt confirmation %s for your Request %s') % ( picking.name, request.name) message = '<h3>%s</h3>' % title message += _('The following requested items from Purchase Request %s ' 'have now been received in Incoming Shipment %s:') % ( request.name, picking.name) message += '<ul>' for line in request_dict.values(): message += _( '<li><b>%s</b>: Received quantity %s %s</li>' ) % (line['name'], line['product_qty'], line['product_uom'], ) message += '</ul>' return message @api.multi def do_transfer(self): super(StockPicking, self).do_transfer() request_obj = self.env['purchase.request'] for picking in self: requests_dict = {} if picking.picking_type_id.code != 'incoming': continue for move in picking.move_lines: if move.purchase_line_id: for request_line in \ move.purchase_line_id.sudo().\ purchase_request_lines: request_id = request_line.request_id.id if request_id not in requests_dict: requests_dict[request_id] = {} data = { 'name': request_line.name, 'product_qty': move.product_qty, 'product_uom': move.product_uom.name, } requests_dict[request_id][request_line.id] = data for request_id in requests_dict: request = request_obj.sudo().browse(request_id) message = \ self._purchase_request_picking_confirm_message_content( picking, request, requests_dict[request_id]) request.message_post(body=message, subtype='mail.mt_comment')