odex30_standard/odex30_base/branch/models/stock_move.py

38 lines
1.6 KiB
Python

# Part of BrowseInfo. See LICENSE file for full copyright and licensing details.
from odoo import fields, models
class StockMove(models.Model):
_inherit = 'stock.move'
branch_id = fields.Many2one('res.branch')
def _assign_picking(self):
branch_id = self.group_id.sale_id.branch_id.id if self.group_id.sale_id and self.group_id.sale_id.branch_id else False
self.write({'branch_id': branch_id})
return super(StockMove, self)._assign_picking()
def _get_new_picking_values(self):
vals = super(StockMove, self)._get_new_picking_values()
vals['branch_id'] = self.group_id.sale_id.branch_id.id
return vals
def _prepare_account_move_vals(self, credit_account_id, debit_account_id, journal_id, qty, description, svl_id, cost):
res = super(StockMove, self)._prepare_account_move_vals(credit_account_id, debit_account_id, journal_id, qty, description, svl_id, cost)
res['branch_id'] = self.picking_id.branch_id.id or self.branch_id.id or False
return res
def _generate_valuation_lines_data(self, partner_id, qty, debit_value, credit_value, debit_account_id, credit_account_id, description):
# This method returns a dictionary to provide an easy extension hook to modify the valuation lines (see purchase for an example)
result = super(StockMove, self)._generate_valuation_lines_data(partner_id, qty, debit_value, credit_value, debit_account_id, credit_account_id, description)
branch_id = False
if self.branch_id:
branch_id = self.branch_id.id
elif self.env.user.branch_id:
branch_id = self.env.user.branch_id.id
for res in result.keys():
result[res].update({'branch_id' : branch_id})
return result