feat(contratos): gestión de códigos de pago + asignación por contrato

- Nueva tabla SQLite codigos_pago (codigo, nombre) con seed CIAC/CR/MU
- Columna cod_forma_pago en contratos (override por contrato)
- Página contratos: tarjeta para agregar/eliminar códigos, select inline por fila
- generar_factura_venta acepta forma_pago_override; si asignado lo usa, sino auto CIAC/CR
- Rutas: /codigos-pago/create, /codigos-pago/delete, /set-forma-pago

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-07-30 16:43:13 -05:00
co-authored by Claude Sonnet 4.6
parent 551dec9c11
commit 91dbcc8135
5 changed files with 157 additions and 14 deletions
+4 -4
View File
@@ -271,7 +271,8 @@ def _fecha_add_dias(fecha_val, dias: int) -> str:
def generar_factura_venta(rows: list, default_vendedor: str = "00",
default_prefijo: str = "00", numero_override: str = "") -> dict:
default_prefijo: str = "00", numero_override: str = "",
forma_pago_override: str = "") -> dict:
if not rows:
return {}
h = rows[0]
@@ -312,12 +313,11 @@ def generar_factura_venta(rows: list, default_vendedor: str = "00",
prefijo_real = str(h.get("PREFIJO") or "").strip() or default_prefijo or "00"
diasvenc = int(h.get("DIASVENC") or 30)
if total == 0:
cod_forma_pago = "CIAC"
cod_forma_pago = forma_pago_override.strip() if forma_pago_override else ("CIAC" if total == 0 else "CR")
if cod_forma_pago == "CIAC":
plazo_dias = 0
fecha_vence = fecha
else:
cod_forma_pago = "CR"
plazo_dias = diasvenc
fecha_vence = _fecha_add_dias(fecha_raw, diasvenc)