Funcionando la lógica de almacenes, falta la parte de facturación.
- el partner tiene que estar configurado como acepta depósitos para evitar errores. - en el onchange del accept en el partner se crea su ubicación de almacén. - Eñ usuario crea un albarán de tipo depósito de entrada o salida y se configuran automáticamente las ubicaciones de depósito del partner en el albarán.
This commit is contained in:
parent
3523629d60
commit
53ad5dffb3
4 changed files with 65 additions and 38 deletions
|
@ -1,20 +1,44 @@
|
|||
# Copyright 2021 Criptomart
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl)
|
||||
|
||||
#import logging
|
||||
|
||||
from odoo import api, models, fields
|
||||
from odoo.exceptions import ValidationError
|
||||
|
||||
#_logger = logging.getLogger(__name__)
|
||||
|
||||
"""
|
||||
class PickingType(models.Model):
|
||||
|
||||
_inherit = 'stock.picking.type'
|
||||
|
||||
"""
|
||||
|
||||
class StockPicking(models.Model):
|
||||
is_deposit = fields.Boolean(
|
||||
string='Depósito',
|
||||
help='Éste albarán es un depósito, no es una venta final.',
|
||||
default= False,
|
||||
)
|
||||
|
||||
class Picking(models.Model):
|
||||
_inherit = 'stock.picking'
|
||||
|
||||
is_deposit = fields.Boolean(
|
||||
string='Es un Depósito',
|
||||
help='Éste albarán es un depósito, no una compra final',
|
||||
)
|
||||
@api.onchange('picking_type_id','partner_id')
|
||||
def onchange_picking_type(self):
|
||||
super(Picking, self).onchange_picking_type()
|
||||
if self.picking_type_id.is_deposit and self.partner_id:
|
||||
self.change_dest_location()
|
||||
|
||||
def change_dest_location(self):
|
||||
if self.picking_type_id.code == 'internal':
|
||||
if not self.partner_id.deposit_sale_accept:
|
||||
raise ValidationError("Éste cliente no acepta material en depósito, configúralo antes de crear depósitos para él.")
|
||||
return
|
||||
self.update({
|
||||
'location_dest_id': self.partner_id.deposit_sale_location_id.id,
|
||||
})
|
||||
elif self.picking_type_id.code == 'incoming':
|
||||
if not self.partner_id.deposit_buy_accept:
|
||||
raise ValidationError("Éste proveedor no acepta depósitos, configúralo antes de crear depósitos para él.")
|
||||
return
|
||||
self.update({
|
||||
'location_dest_id': self.partner_id.deposit_buy_location_id.id,
|
||||
})
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue