Skip to content

Instantly share code, notes, and snippets.

@efuentesp
Last active March 29, 2018 18:33
Show Gist options
  • Save efuentesp/2b37040b338f72eaddf1f6de04065574 to your computer and use it in GitHub Desktop.
Save efuentesp/2b37040b338f72eaddf1f6de04065574 to your computer and use it in GitHub Desktop.
Ejemplo de definición del RDL
module pensiones {
enum Genero {
MALE: "Masculino"
FEMALE: "Femenino"
}
enum Parentesco {
CONYUGE: "Conyuge"
HIJO: "Hijo"
ASCENDIENTE: "Padre/Madre"
}
entity Afiliado {
glossary: { name: "NSS", description: "Se refiere a las personas que están aseguradas en el IMSS de manera directa como tituleres" }
//actions: { search: true, add: true, edit: true, delete: true } // opcional
field nss : Text {
glossary: { name: "NSS", description: "Número de Seguridad Social"}
@constraints(unique: true, min_length: 10, max_length: 10)
//@widget( exposed_filter: true )
}
field nombre : Text {
glossary: { name: "Nombre(s)", description: "Nombre o nombres del Afiliado" }
}
field apellido_paterno : Text {
glossary: { name: "Apellido Paterno", description: "Apellido Paterno del Afiliado" }
}
field apellido_materno : Text {
glossary: { name: "Apellido Materno", description: "Apellido Materno del Afiliado" }
}
field genero : Genero {
glossary: { name: "Género", description: "Sexo de la Persona"}
@widget( type: Option )
}
// field beneficiarios: Beneficiario {
// glossary: { name: "Beneficiarios", description: "Beneficiarios registrados"}
// //number_of_values: Unlimited // opciones: 1..10 | Unlimited
// @widget( type: SelectList )
// }
// field observaciones: LongText {
// glossary: { name: "Observaciones", description: "Observaciones sobre el Afiliado"}
// @constraints(required: false, hidden: true, disabled: false)
// }
// field fecha_afiliacion: Date
// field foto: Image {
// glossary: { name: "Foto", description: "Foto del Afiliado"}
// }
// field acta_nacimiento: File {
// glossary: { name: "Acta de Nacimiento", description: "Copia certificada del Acta de Nacimiento"}
// }
// field email: Email {
// glossary: { name: "Email", description: "Correo electrónico de contacto"}
// }
// field semanas_cotizadas: Integer {
// glossary: { name: "Semanas Cotizadas", description: "Semanas Cotizadas en el IMSS"}
// @constraints(min_length: 500, max_length: 1000)
// }
// field monto_pension: Currency {
// glossary: { name: "Promedio Salario", description: "Promedio del salario de los últimos 5 años"}
// }
// field decimal: Decimal {
// glossary: { name: "Dato Decimal", description: "Dato decimal de ejemplo"}
// }
}
entity TipoPension {
field clave : Text {
@constraints( unique: true )
}
field nombre : Text
}
entity SolicitudPension {
field numero : Integer {
@constraints( unique: true )
}
field afiliado : Afiliado {
@widget( type: Autocomplete )
}
field tipo : TipoPension {
@widget( type: SelectList )
}
field fecha_solicitud : Date
field observaciones : Text {
@constraints( required: false, max_length: 125 )
}
}
entity Beneficiario {
field curp: Text {
glossary: { name: "CURP", description: "CURP" }
@constraints( unique: true )
}
field nombre : Text {
glossary: { name: "Nombre(s)", description: "Nombre o nombres del Afiliado" }
}
field apellido_paterno : Text {
glossary: { name: "Apellido Paterno", description: "Apellido Paterno del Afiliado" }
}
field apellido_materno : Text {
glossary: { name: "Apellido Materno", description: "Apellido Materno del Afiliado" }
}
field fecha_nacimiento : Date
field parentesco: Parentesco {
glossary: { name: "Parentesco", description: "Parentesco con el Afiliado"}
@widget( type: Option )
}
}
view SolicitudesPensionOtorgadaAfiliado {
title: "Solicitudes de Pensión solicitadas por Afiliado" // opcional
base_entity: SolicitudPension
items_per_page: 10 // opcional
actions: { add: true, edit: true, delete: true } // opcional
fields: [
{ field: me._ID, label: "ID", hidden: true },
{ field: me.numero, label: "Solicitud", sortable: true },
{ field: Afiliado.nss, label: "NSS" },
{ field: Afiliado.nombre, label: "Afiliado" },
{ field: TipoPension.nombre, label: "Tipo" },
{ field: me.fecha_solicitd, label: "Solicitada" },
{ field: me.monto_solicitado, label: "Monto" }
]
relationships: [ // opcional
{ entity: Afiliado, required: true }, // falta declarar relación
{ entity: TipoPension, required: true }
]
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment