Oleada UX 4: Pagos/Adeudos (cobro en 1 click con recibo, plan de pagos), Monedero (movimientos narrados, ajustes auditados, MXN+USD), Inventario (alta rapida, conteo fisico con ajuste e historial, alertas accionables) + fix de folios de pago y cantidades de movimientos
This commit is contained in:
@@ -54,7 +54,7 @@ class SkeenMonedero(models.Model):
|
||||
'history': history,
|
||||
}
|
||||
|
||||
def add_points(self, points, description='', reference=''):
|
||||
def add_points(self, points, description='', reference='', operator=''):
|
||||
"""Agregar puntos al monedero"""
|
||||
self.ensure_one()
|
||||
self.write({'points': self.points + points})
|
||||
@@ -64,10 +64,11 @@ class SkeenMonedero(models.Model):
|
||||
'points': points,
|
||||
'description': description or 'Acumulación de puntos',
|
||||
'reference': reference,
|
||||
'operator': operator,
|
||||
})
|
||||
return True
|
||||
|
||||
def redeem_points(self, points, description='', reference=''):
|
||||
def redeem_points(self, points, description='', reference='', operator=''):
|
||||
"""Redimir puntos del monedero"""
|
||||
self.ensure_one()
|
||||
if points > self.points:
|
||||
@@ -80,10 +81,11 @@ class SkeenMonedero(models.Model):
|
||||
'points': -points,
|
||||
'description': description or 'Redención de puntos',
|
||||
'reference': reference,
|
||||
'operator': operator,
|
||||
})
|
||||
return True
|
||||
|
||||
def adjust_points(self, delta, description='', reference=''):
|
||||
def adjust_points(self, delta, description='', reference='', operator=''):
|
||||
"""Ajuste de puntos (puede ser negativo). Hace piso en 0 para no dejar saldo negativo.
|
||||
|
||||
Usado por devoluciones para revertir puntos acumulados por una venta.
|
||||
@@ -103,6 +105,7 @@ class SkeenMonedero(models.Model):
|
||||
'points': effective_delta,
|
||||
'description': description or 'Ajuste de puntos',
|
||||
'reference': reference,
|
||||
'operator': operator,
|
||||
})
|
||||
return effective_delta
|
||||
|
||||
@@ -126,6 +129,9 @@ class SkeenMonederoTransaction(models.Model):
|
||||
points = fields.Integer(string='Puntos', required=True)
|
||||
description = fields.Text(string='Descripción')
|
||||
reference = fields.Char(string='Referencia')
|
||||
|
||||
# Usuario del frontend que capturó el movimiento (los controladores
|
||||
# auth='none' no dejan uid de Odoo, así que se guarda explícito).
|
||||
operator = fields.Char(string='Registrado por')
|
||||
|
||||
# Fecha
|
||||
create_date = fields.Datetime(string='Fecha', readonly=True, default=fields.Datetime.now)
|
||||
|
||||
Reference in New Issue
Block a user