Servicios Suscritos¶
Esta sección permite iniciar y administrar las suscripciones de clientes a los servicios ofrecidos por la organización. Almacena información completa sobre servicios contratados incluyendo tipo de servicio, fechas de inicio y fin de tarificación, ciclos de renovación, precios (con y sin impuestos), descuentos, unidades contratadas, estado del servicio, y datos de renovación automática. Se utiliza para mostrar a los clientes en su área web qué servicios tienen contratados, gestionar el ciclo de vida de las suscripciones (activación, renovación, anulación), calcular ingresos recurrentes mensuales (MRR) y anuales (ARR), y controlar versionado de servicios. Integra con facturación, renovaciones automáticas y feedback de clientes.
Información General¶
| Propiedad | Valor |
|---|---|
| ID | 291a6f6e-353a-41be-850d-bbf7fb319ade |
| Tabla PostgreSQL | tpr_30010518791 |
| Etiqueta Plural | Servicios Suscritos |
| Texto principal automatico | Sí |
| Sección Base | Base - Servicios Suscritos (6509266c-b8b2-46d1-b912-c1f2090077fb) |
Campos¶
Total de campos: 62 (10 del sistema, 52 personalizados)
Campos del Sistema¶
| Campo | Tipo | Rol | Columna PostgreSQL | Relación | Atributos |
|---|---|---|---|---|---|
| ID | Relación |
- | id |
Servicios Suscritos | - |
| Referencia | Texto |
- | nombre |
- | - |
| Fecha Alta Dato | Fecha Y Hora |
- | fecha |
- | - |
| Editado | Fecha Y Hora |
- | fecham |
- | - |
| Eliminado | Sí/No |
- | eliminado |
- | - |
| Usuario Creador del dato | Relación |
- | usuarioid |
Base - Entidades | - |
| Sección (Relación Sistema) | Relación |
- | plantillapid |
- | 🔴 Obligatorio |
| Posición (Orden) | Decimal |
- | posicion |
- | - |
| Modificado | Sí/No |
- | modificado |
- | - |
| Fecha Indice Actividad | Fecha Y Hora |
- | fechaia |
- | - |
Campos Personalizados¶
| Campo | Tipo | Pestaña | Columna | Atributos | Notas |
|---|---|---|---|---|---|
| Precio con impuestos incluidos | Sí/No |
General | pr_20010519242 |
- | Autorrellenado (ExisteRelacion): Campo : Servicio contratado (Versión Anterior) / Precio con impuestos incluidos · Autorrellenado (Siempre): Campo : Tipo / Precio con impuestos incluidos |
| Producto | Relación |
Parámetros | pr_30040592721 |
- | Autorrellenado (ExisteRelacion): Campo : Servicio contratado (Versión Anterior) / Producto · Autorrellenado (Siempre): Campo : Tipo / Producto |
| Descuento fijo por unidad | Decimal |
General | pr_20010519244 |
📊 Cualquier valor numérico | Autorrellenado (ExisteRelacion): Campo : Servicio contratado (Versión Anterior) / Descuento fijo por unidad · Autorrellenado (Siempre): Campo : Tipo / Descuento fijo por unidad |
| Subtotal | Decimal |
General | pr_20010519245 |
🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico | - |
| Total | Decimal |
General | pr_20010519246 |
🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico | - |
| Unidades totales | Decimal |
General | pr_20754238 |
📊 Positivos o 0 | Autorrellenado (ExisteRelacion): Campo : Servicio contratado (Versión Anterior) / Unidades totales · Autorrellenado (Siempre): Campo : Tipo / Unidades totales |
| Información Interna | Texto |
Registro | pr_40010518941 |
- | - |
| Precio renovación (Con impuestos) | Decimal |
Parámetros | pr_20010519241 |
🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico | - |
| Precio renovación (Sin impuestos) | Decimal |
Parámetros | pr_10010519243 |
🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico | - |
| Próxima renovación (Vencimiento Desde) | Fecha |
Renovación | pr_30755871002 |
🔒 Bloqueado | - |
| Próxima renovación (Vencimiento Hasta) | Fecha |
Renovación | pr_30755871003 |
🔒 Bloqueado | - |
| Próxima renovación | Fecha |
Renovación | pr_30755871004 |
🔒 Bloqueado | - |
| Próxima renovación (Importe) | Decimal |
Renovación | pr_30755871001 |
🔒 Bloqueado, 📊 Cualquier valor numérico | - |
| Próxima renovación (Dto Fijo) | Decimal |
Renovación | pr_40756131 |
🔒 Bloqueado, 📊 Cualquier valor numérico | - |
| Próxima renovación (Detalles) | Texto |
Renovación | pr_30755871006 |
🔒 Bloqueado | - |
| Fecha Dato | Fecha Y Hora |
Registro | pr_30010518798 |
🔴 Obligatorio | Autorrellenado (Siempre): Fecha y Hora actual |
| Destinador | Relación |
General | pr_300105187912 |
🔒 Bloqueado, 👁 Oculto | - |
| Título sugerido | Texto |
General | pr_40010518944 |
👁 Oculto | - |
| Activar prorrateo | Sí/No |
Parámetros | pr_10010540341 |
🔒 Bloqueado | Autorrellenado (ExisteRelacion): Campo : Servicio contratado (Versión Anterior) / Activar prorrateo · Autorrellenado (Siempre): Campo : Tipo / Activar prorrateo |
| ID Interna | Entero |
Registro | pr_10758251002 |
🔒 Bloqueado, 📊 Cualquier valor numérico | - |
| Autor del alta | Relación |
Registro | pr_30010518797 |
🔴 Obligatorio | Autorrellenado (Siempre): Campo (Sesión): La Entidad ( ID* ) |
| Empleado | Relación |
Registro | pr_30010518795 |
🔴 Obligatorio | Autorrellenado (Siempre): Campo (Sesión): La Entidad ( ID* ) |
| Fecha Alta del registro | Fecha Y Hora |
Registro | pr_300105187911 |
🔴 Obligatorio | Autorrellenado (Siempre): Fecha y Hora actual |
| Hora local | Hora |
Registro | pr_30010518799 |
🔒 Bloqueado, 👁 Oculto | - |
| Información adicional (Para cliente) | Texto |
General | pr_40010518794 |
- | Autorrellenado (Cadena_Rellenada): Campo : Servicio contratado (Versión Anterior) / Información adicional (Para cliente) |
| Fin tarificación | Fecha |
General | pr_60040530702 |
🔒 Bloqueado | - |
| Servicio Activo | Sí/No |
General | pr_30758694 |
🔒 Bloqueado | - |
| Renovación activa | Sí/No |
General | pr_30758696 |
🔒 Bloqueado | - |
| Servicio Anulado | Sí/No |
General | pr_30758697 |
🔒 Bloqueado | - |
| Próxima renovación (Total) | Decimal |
Renovación | pr_20759451001 |
🔒 Bloqueado, 📊 Cualquier valor numérico | - |
| Próxima renovación (Subtotal) | Decimal |
Renovación | pr_20759451002 |
🔒 Bloqueado, 📊 Cualquier valor numérico | - |
| Estado UI | Entero |
General | pr_30759774 |
🔒 Bloqueado, 📊 Cualquier valor numérico | Autorrellenado (Siempre): Número entero: 1 |
| Ciclo renovación | Entero |
General | pr_20754233 |
🔴 Obligatorio, 🔒 Bloqueado, 📊 Mayores que 0 | Autorrellenado (ExisteRelacion): Campo : Servicio contratado (Versión Anterior) / Ciclo renovación · Autorrellenado (Siempre): Campo : Tipo / Ciclo de facturación |
| Tipo | Relación |
General | pr_300105187925 |
🔴 Obligatorio | Autorrellenado (ExisteRelacion): Campo : Servicio contratado (Versión Anterior) / Tipo |
| Inicio tarificación | Fecha |
General | pr_60040530701 |
🔴 Obligatorio, 🔒 Bloqueado | Autorrellenado (Siempre): Fecha actual |
| Concepto | Texto |
General | pr_40010518942 |
🔴 Obligatorio | Autorrellenado (Cadena_Rellenada): Campo : Servicio contratado (Versión Anterior) / Concepto · Autorrellenado (Siempre): Campo : Tipo / Nombre |
| Estado | Relación |
General | pr_300105187928 |
🔒 Bloqueado | Autorrellenado (Siempre): Referencia dato: Activa |
| Servicio contratado (Versión Anterior) | Relación |
Parámetros | pr_40754241 |
🔒 Bloqueado | - |
| Fin tarificación (Computable) | Fecha |
General | pr_10754251 |
👁 Oculto | - |
| Suscripción | Relación |
General | pr_507542517 |
🔴 Obligatorio, 🔒 Bloqueado | Autorrellenado (Cadena_Rellenada): Campo : Servicio contratado (Versión Anterior) / Suscripción |
| Próxima versión | Relación |
Parámetros | pr_50754381 |
🔒 Bloqueado | - |
| Vencimiento | Fecha |
General | pr_10010540311 |
🔒 Bloqueado, ⚙️ Auto-Calculado | - |
| Unidades facturables | Decimal |
General | pr_20754235 |
🔒 Bloqueado, 📊 Positivos o 0 | Autorrellenado (ExisteRelacion): Campo : Servicio contratado (Versión Anterior) / Unidades facturables · Autorrellenado (Siempre): Campo : Tipo / Unidades facturables |
| Descuento % | Decimal |
General | pr_20010519243 |
📊 Cualquier valor numérico | Autorrellenado (ExisteRelacion): Campo : Servicio contratado (Versión Anterior) / Descuento % · Autorrellenado (Siempre): Campo : Tipo / Descuento % |
| Unidades incluidas sin coste | Decimal |
General | pr_20754237 |
📊 Positivos o 0 | Autorrellenado (ExisteRelacion): Campo : Servicio contratado (Versión Anterior) / Unidades incluidas sin coste · Autorrellenado (Siempre): Campo : Tipo / Unidades incluidas sin coste |
| Precio de renovación por unidad | Decimal |
General | pr_10010519242 |
📊 Cualquier valor numérico | Autorrellenado (ExisteRelacion): Campo : Servicio contratado (Versión Anterior) / Precio de renovación por unidad · Autorrellenado (Siempre): Campo : Tipo / Precio de renovación por unidad |
| Inicio tarifación (Próxima versión) | Fecha |
Parámetros | pr_50754382 |
🔒 Bloqueado | - |
| Impuestos | Relación |
General | pr_20010519241001 |
- | Autorrellenado (ExisteRelacion): Campo : Servicio contratado (Versión Anterior) / Impuestos · Autorrellenado (Siempre): Campo : Tipo / Impuestos |
| Identificador único | Texto |
Parámetros | pr_40754621001 |
- | Autorrellenado (Siempre): Campo : Servicio contratado (Versión Anterior) / Identificador único |
| Estado (Naturaleza) | Entero |
General | pr_50754632 |
👁 Oculto, 📊 Cualquier valor numérico | Autorrellenado (Siempre): Campo : Estado / Estado |
| MRR - Ingresos recurrentes mensuales | Decimal |
General | pr_20754876 |
🔒 Bloqueado, 📊 Cualquier valor numérico | - |
| ARR - Ingresos recurrentes anuales | Decimal |
General | pr_20754875 |
🔒 Bloqueado, 📊 Cualquier valor numérico | - |
Scripts¶
Total de scripts: 10
Código de Scripts¶
Lógica de negocio ejecutada en los formularios automáticamente
Campo_ComboAplicarFiltro¶
F.CampoDesplegableAplicarFiltro(S.Fields.TiposDePeriodosBase.Meses.ID,'=',1)
F.CampoDesplegableAplicarFiltro(S.Fields.TiposDePeriodosBase.Años.ID,'=',0)
F.CampoDesplegableAplicarFiltro(S.Fields.TiposDePeriodosBase.Dias.ID,'=',0)
F.CampoDesplegableAplicarAlternativa()
F.CampoDesplegableAplicarFiltro(S.Fields.TiposDePeriodosBase.Meses.ID,'=',0)
F.CampoDesplegableAplicarFiltro(S.Fields.TiposDePeriodosBase.Años.ID,'=',1)
F.CampoDesplegableAplicarFiltro(S.Fields.TiposDePeriodosBase.Dias.ID,'=',0)
Campos utilizados:
- Servicios Suscritos > Periodo (Obsoleto)
Formulario_TickRecalculo¶
txt t = ''
if C.ReferenciaSuscripcion <> ''
V.t = C.ReferenciaSuscripcion.TextoPrincipal
if C.ReferenciaTipo <> ''
V.t = F.Concat(v.t,' > ',C.ReferenciaTipo.TextoPrincipal)
end if
if C.Concepto <> ''
V.t = F.Concat(v.t,' > ',C.Concepto)
end if
end if
C.TituloSugerido = V.t
Campo_Click¶
F.Guardar
F.AgregarElemento_Iniciar(S.Sections.RenovacionesDeSuscripciones.ID)
F.AgregarElemento_Valor(S.Fields.RenovacionesDeSuscripciones.ReferenciaSuscripcion.ID,C.ReferenciaSuscripcion)
F.AgregarElemento_Finalizar()
@ Ejemplo elemento 1
F.AgregarElemento_Iniciar(S.Sections.RenovacionesDeSuscripcionesLista.ID)
F.AgregarElemento_Valor(S.Fields.RenovacionesDeSuscripcionesLista.ReferenciaServicio.ID,C.ID)
F.AgregarElemento_Finalizar()
Campos utilizados: - Botón
Campo_Click¶
F.Guardar
if C.ReferenciaProximaVersion <> ''
F.MsgBox('Ya tiene una nueva versión.',1)
F.CancelarEvento()
else
F.AgregarElemento_Iniciar(S.Sections.ServiciosSuscritos.ID)
F.AgregarElemento_Valor(S.Fields.ServiciosSuscritos.ReferenciaServicioContratadoVersionAnterior.ID,C.ID)
F.AgregarElemento_Finalizar()
end if
Campos utilizados: - Botón
Formulario_TickRecalculo¶
num bloqueoProxima = 0
if C.InicioTarifacionProximaVersion <> ''
C.FinTarificacion = C.InicioTarifacionProximaVersion
C.FinTarificacionComputable = C.InicioTarifacionProximaVersion
V.bloqueoProxima = 1
elseif C.FinTarificacion = ''
C.FinTarificacionComputable = F.BuildDate(2500,1,1)
else
C.FinTarificacionComputable = C.FinTarificacion
end if
F.CampoBloqueadoMotivo(S.Fields.ServiciosSuscritos.FinTarificacion.ID,'Se aplica nueva versión.',v.bloqueoProxima)
C.UnidadesFacturables = F.Max_Num(0,C.UnidadesTotales - C.UnidadesIncluidasSinCoste)
txt c_PrecioVenta = S.Fields.ServiciosSuscritos.ImportePrecioDeRenovacionPorUnidad.ID
txt c_PrecioVentaSinImpto = S.Fields.ServiciosSuscritos.ImportePrecioRenovacionSinImpuestos.ID
txt c_PrecioVentaConImpto = S.Fields.ServiciosSuscritos.ImportePrecioRenovacionConImpuestos.ID
txt c_Dtofijo = S.Fields.ServiciosSuscritos.ImporteDescuentoFijoPorUnidad.ID
txt c_DtoPorciento = S.Fields.ServiciosSuscritos.DescuentoPorciento.ID
txt c_Subtotal = S.Fields.ServiciosSuscritos.ImporteSubtotal.ID
txt c_Total = S.Fields.ServiciosSuscritos.ImporteTotal.ID
F.RecalcularPrecio9C(v.c_PrecioVenta,v.c_PrecioVentaSinImpto,v.c_PrecioVentaConImpto,v.c_Dtofijo,v.c_DtoPorciento,v.c_Subtotal,v.c_Total,C.PrecioConImpuestosIncluidos,C.ReferenciaImpuestos.ValorPorciento)
num TotalPorUnidad = C.UnidadesFacturables * C.ImporteSubtotal
if C.CicloRenovacion = S.Enums.suscripcionperiodo.mensual
C.ImporteMRRIngresosRecurrentesMensuales = V.TotalPorUnidad
C.ImporteARRIngresosRecurrentesAnuales = V.TotalPorUnidad * 12
elseif C.CicloRenovacion = S.Enums.suscripcionperiodo.anual
C.ImporteMRRIngresosRecurrentesMensuales = V.TotalPorUnidad / 12
C.ImporteARRIngresosRecurrentesAnuales = V.TotalPorUnidad
end if
if C.ReferenciaProximaVersion <> ''
F.CampoBloqueadoMotivo(S.Fields.ServiciosSuscritos.BotonNuevaVersion.ID,'Ya tiene versión superior.',1)
end if
num motivoBloqueoPorCancelada = 0
if C.EstadoNaturaleza = S.Enums.estadotramite.cancelado
V.motivoBloqueoPorCancelada = 1
end if
F.CampoBloqueadoMotivo(S.Fields.ServiciosSuscritos.BotonNuevaVersion.ID,'No puede sacarse una nuvea versión porque el servicio está cancelado.',v.motivoBloqueoPorCancelada)
Formulario_Macro¶
C.InicioTarificacion = F.Date_SubtractYears(C.InicioTarificacion,3)
Formulario_Macro¶
C.InicioTarificacion = F.Date_SubtractYears(C.InicioTarificacion,3)
C.FinTarificacion = D.DatosEspeciales.FechaActual
Campo_Click¶
F.Guardar
F.AgregarElemento_Iniciar(S.Sections.FeedbackDeServiciosContratadosPorClientes.ID)
F.AgregarElemento_Valor(S.Fields.FeedbackDeServiciosContratadosPorClientes.ReferenciaServicio.ID,C.ID)
F.AgregarElemento_Finalizar()
Campos utilizados: - Botón