Agregar deposito con facturas relacionadas
This commit is contained in:
parent
d06a5b8361
commit
f1d47d1119
|
@ -3220,6 +3220,7 @@ class FacturasPagos(BaseModel):
|
||||||
auto_round=True)
|
auto_round=True)
|
||||||
saldo = DecimalField(default=0.0, max_digits=18, decimal_places=6,
|
saldo = DecimalField(default=0.0, max_digits=18, decimal_places=6,
|
||||||
auto_round=True)
|
auto_round=True)
|
||||||
|
cancelado = BooleanField(default=False)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
order_by = ('factura',)
|
order_by = ('factura',)
|
||||||
|
@ -3227,10 +3228,46 @@ class FacturasPagos(BaseModel):
|
||||||
(('factura', 'numero'), True),
|
(('factura', 'numero'), True),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def _movimiento_anterior(self, mov, id):
|
||||||
|
try:
|
||||||
|
query = (FacturasPagos
|
||||||
|
.select()
|
||||||
|
.where(
|
||||||
|
(FacturasPagos.movimiento==mov) &
|
||||||
|
(FacturasPagos.factura==id) &
|
||||||
|
(FacturasPagos.cancelado==False))[-1]
|
||||||
|
)
|
||||||
|
return query
|
||||||
|
except IndexError:
|
||||||
|
return None
|
||||||
|
|
||||||
|
def _actualizar_saldo_cliente(self, cliente, importe):
|
||||||
|
q = (Socios
|
||||||
|
.update(saldo_cliente=Socios.saldo_cliente - importe)
|
||||||
|
.where(Socios.id==cliente.id)
|
||||||
|
)
|
||||||
|
return bool(q.execute())
|
||||||
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def add(cls, mov, ids):
|
def add(cls, mov, ids):
|
||||||
print (mov)
|
|
||||||
print (ids)
|
print (ids)
|
||||||
|
for i, importe in ids.items():
|
||||||
|
fac = Facturas.get(Facturas.id==int(i))
|
||||||
|
mov_ant = cls._movimiento_anterior(cls, mov, fac)
|
||||||
|
nuevo = {'movimiento': mov, 'factura': fac, 'importe': importe}
|
||||||
|
if mov_ant is None:
|
||||||
|
nuevo['saldo_anterior'] = float(fac.saldo)
|
||||||
|
else:
|
||||||
|
nuevo['numero'] = mov_ant.numero + 1
|
||||||
|
nuevo['saldo_anterior'] = float(mov_ant.saldo)
|
||||||
|
nuevo['saldo'] = nuevo['saldo_anterior'] - importe
|
||||||
|
FacturasPagos.create(**nuevo)
|
||||||
|
fac.saldo = nuevo['saldo']
|
||||||
|
if nuevo['saldo'] == 0:
|
||||||
|
fac.pagada = True
|
||||||
|
fac.save()
|
||||||
|
cls._actualizar_saldo_cliente(cls, fac.cliente, importe)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue