l10n_it_ddt/models/stock.py
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright (C) 2015 Apulia Software s.r.l. (http://www.apuliasoftware.it)
# @author Francesco Apruzzese <f.apruzzese@apuliasoftware.it>
# Copyright 2015 Lorenzo Battistini - Agile Business Group
#
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
#
##############################################################################
from openerp import fields, models, api
class StockPicking(models.Model):
_inherit = 'stock.picking'
ddt_ids = fields.Many2many(
comodel_name='stock.picking.package.preparation',
relation='stock_picking_pack_prepare_rel',
column1='stock_picking_id',
column2='stock_picking_package_preparation_id',
string='DdT',
copy=False, )
def _get_invoice_vals(self, cr, uid, key, inv_type, journal_id, move,
context=None):
if not context:
context = {}
values = super(StockPicking, self)._get_invoice_vals(
cr, uid, key, inv_type, journal_id, move, context)
# ----- Force to use partner invoice from ddt as invoice partner
if context.get('ddt_partner_id', False):
values['partner_id'] = context['ddt_partner_id']
return values
@api.multi
def write(self, values):
if 'move_lines' in values:
pack_to_update = self.env['stock.picking.package.preparation']
for picking in self:
pack_to_update |= picking.ddt_ids
res = super(StockPicking, self).write(values)
if 'move_lines' in values:
if pack_to_update:
pack_to_update._update_line_ids()
return res
@api.multi
def unlink(self):
pack_to_update = self.env['stock.picking.package.preparation']
for picking in self:
pack_to_update |= picking.ddt_ids
res = super(StockPicking, self).unlink()
if pack_to_update:
pack_to_update._update_line_ids()
return res
@api.model
def create(self, values):
picking = super(StockPicking, self).create(values)
if picking.ddt_ids:
picking.ddt_ids._update_line_ids()
return picking