fase 2.6: membresias y suscripciones (modulo skeen_membresias: planes recurrentes con sesiones incluidas o ilimitadas, alta/cobro/renovacion/congelamiento/cancelacion, consumo de sesiones desde POS y expediente, cron de vencimientos y avisos, reporte de ingresos recurrentes); apagado por defecto

This commit is contained in:
2026-10-11 10:49:44 +00:00
parent 9286ab8ee2
commit 8ff13b9c2a
33 changed files with 3873 additions and 22 deletions

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Motor de membresías. Con `membresias.activo=False` (default) el
método regresa sin tocar nada: cero cargos, cero avisos. Corre a
diario: marca vencidas (respetando dias_gracia), encola avisos de
renovación (idempotentes por periodo), genera el cargo del nuevo
periodo para membresías de renovación automática y descongela las
membresías cuyo plazo de congelamiento terminó. -->
<record id="cron_membresias" model="ir.cron">
<field name="name">SKEEN Membresías: vencimientos, avisos y cargos recurrentes</field>
<field name="model_id" ref="model_skeen_membresia_service"/>
<field name="state">code</field>
<field name="code">model._cron_tick()</field>
<field name="interval_number">1</field>
<field name="interval_type">days</field>
<field name="numbercall">-1</field>
<field name="active">True</field>
</record>
</data>
</odoo>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Folio de membresía: MEM-0001, MEM-0002, ... -->
<record id="seq_skeen_membresia" model="ir.sequence">
<field name="name">Membresía SKEEN</field>
<field name="code">skeen.membresia</field>
<field name="prefix">MEM-</field>
<field name="padding">4</field>
<field name="number_next">1</field>
<field name="number_increment">1</field>
</record>
</data>
</odoo>