51 lines
2.0 KiB
Python
51 lines
2.0 KiB
Python
|
# -*- coding: utf-8 -*-
|
||
|
|
||
|
from odoo import models, fields, api, _
|
||
|
|
||
|
|
||
|
class Warehouse(models.Model):
|
||
|
_inherit = "stock.warehouse"
|
||
|
|
||
|
pos_type_id = fields.Many2one('stock.picking.type', string="Point of Sale Operation Type")
|
||
|
|
||
|
def _get_sequence_values(self, name=False, code=False):
|
||
|
sequence_values = super(Warehouse, self)._get_sequence_values(name=name, code=code)
|
||
|
sequence_values.update({
|
||
|
'pos_type_id': {
|
||
|
'name': self.name + ' ' + _('Picking POS'),
|
||
|
'prefix': self.code + '/POS/',
|
||
|
'padding': 5,
|
||
|
'company_id': self.company_id.id,
|
||
|
}
|
||
|
})
|
||
|
return sequence_values
|
||
|
|
||
|
def _get_picking_type_update_values(self):
|
||
|
picking_type_update_values = super(Warehouse, self)._get_picking_type_update_values()
|
||
|
picking_type_update_values.update({
|
||
|
'pos_type_id': {'default_location_src_id': self.lot_stock_id.id}
|
||
|
})
|
||
|
return picking_type_update_values
|
||
|
|
||
|
def _get_picking_type_create_values(self, max_sequence):
|
||
|
picking_type_create_values, max_sequence = super(Warehouse, self)._get_picking_type_create_values(max_sequence)
|
||
|
picking_type_create_values.update({
|
||
|
'pos_type_id': {
|
||
|
'name': _('PoS Orders'),
|
||
|
'code': 'outgoing',
|
||
|
'default_location_src_id': self.lot_stock_id.id,
|
||
|
'default_location_dest_id': self.env.ref('stock.stock_location_customers').id,
|
||
|
'sequence': max_sequence + 1,
|
||
|
'sequence_code': 'POS',
|
||
|
'company_id': self.company_id.id,
|
||
|
}
|
||
|
})
|
||
|
return picking_type_create_values, max_sequence + 2
|
||
|
|
||
|
@api.model
|
||
|
def _create_missing_pos_picking_types(self):
|
||
|
warehouses = self.env['stock.warehouse'].search([('pos_type_id', '=', False)])
|
||
|
for warehouse in warehouses:
|
||
|
new_vals = warehouse._create_or_update_sequences_and_picking_types()
|
||
|
warehouse.write(new_vals)
|