def configurar(): """Configuración del evento""" C = Storage() C.evento = db.evento(request.args(0)) C.ano = db.ano_academico(C.evento.ano_academico_id) C.unidad = db.unidad_organica(C.ano.unidad_organica_id) C.escuela = db.escuela(C.unidad.escuela_id) # breadcumbs u_link = Accion(C.unidad.abreviatura or C.unidad.nombre, URL('unidad', 'index', args=[C.unidad.id]), True) # siempre dentro de esta funcion menu_migas.append(u_link) a_links = Accion(C.ano.nombre, URL('unidad', 'index', args=[C.unidad.id]), True) menu_migas.append(a_links) e_link = Accion(C.evento.nombre, URL('index', args=[C.evento.id]), True) menu_migas.append(e_link) menu_migas.append(T("Ajustes")) back_url = URL('index', args=[C.evento.id]) C.form = form_configurar_evento(C.evento, back_url, db=db, request=request, T=T) if C.form.process().accepted: session.flash = T("Ajustes guardados") redirect(back_url) return dict(C=C)
def user(): from gluon.storage import Storage objects = Storage() if request.args(0) in ['register', 'login']: objects.login = auth.login() objects.register = auth.register() else: objects.form = auth() return dict(objects=objects)
def user(): objects = Storage() if request.args(0) in ['login','register']: objects.login = auth.login() response.flash = "logged in" objects.register = auth.register() else: objects.form = auth() return dict(objects=objects)
def editar(): C = Storage() C.escuela = db.escuela(1) menu_migas.append(T("Configurar escuela")) db.escuela.id.readable = False C.form = SQLFORM(db.escuela, record=C.escuela, upload=URL('default', 'download'), submit_button=T("Guardar")) C.form.add_button(T("Cancelar"), URL('index')) if C.form.process().accepted: redirect(URL('index')) return dict(C=C)
def formulario(): """Muestra formulario para realizar pago""" C = Storage() C.evento = db.evento(request.args(0)) C.persona = db.persona(request.args(1)) C.ano = db.ano_academico(C.evento.ano_academico_id) C.unidad = db.unidad_organica(C.ano.unidad_organica_id) C.escuela = db.escuela(C.unidad.escuela_id) concepto = db( db.tipo_pago.nombre == "PROPINA" ).select().first() C.titulo = T("Agregar pago") fld_forma_pago = db.pago.forma_pago fld_numero_transaccion = db.pago.numero_transaccion fld_transaccion = db.pago.transaccion fld_cantidad = db.pago.cantidad fld_codigo_recivo = db.pago.codigo_recivo fld_fecha_recivo = db.pago.fecha_recivo form = SQLFORM.factory( # campos... fld_forma_pago, fld_numero_transaccion, fld_transaccion, fld_codigo_recivo, fld_fecha_recivo, fld_cantidad, formstyle="bootstrap3_stacked" ) if form.process().accepted: data = form.vars data.tipo_pago_id = concepto.id data.persona_id = C.persona.id data.evento_id = C.evento.id pago_id = db.pago.insert(**db.pago._filter_fields(data)) # Intentar pagar las propinas que se deben pagar_propinas(C.evento.id, C.persona.id, db) response.js = "jQuery('#formulario_cmp').get(0).reload();jQuery('#pagos_cmp').get(0).reload();jQuery('#propinas_cmp').get(0).reload()" return T("Procesando...") C.form = form return dict(C=C)
def pago(): C = Storage() C.evento = db.evento(request.args(0)) C.ano = db.ano_academico(C.evento.ano_academico_id) C.unidad = db.unidad_organica(C.ano.unidad_organica_id) C.escuela = db.escuela(C.unidad.escuela_id) C.persona = db.persona(request.args(1)) C.estudiante = db.estudiante(persona_id=C.persona.id) if C.persona is None: raise HTTP(404) # buscar un tipo de pago que coincida en nombre con el tipo de evento concepto = db( db.tipo_pago.nombre == "MATRÍCULA E CONFIRMAÇÃO DE MATRÍCULA" ).select().first() if not concepto: raise HTTP(404) # breadcumbs u_link = Accion(C.unidad.abreviatura or C.unidad.nombre, URL('unidad', 'index', args=[C.unidad.id]), True) # siempre dentro de esta funcion menu_migas.append(u_link) a_links = Accion(C.ano.nombre, URL('unidad', 'index', args=[C.unidad.id]), True) menu_migas.append(a_links) e_link = Accion(C.evento.nombre, URL('index', args=[C.evento.id]), True) menu_migas.append(e_link) menu_migas.append(T("Pago") + " de {}".format(concepto.nombre)) campos = list() fld_cantidad = db.pago.get("cantidad") fld_cantidad.requires.append( IS_FLOAT_IN_RANGE(concepto.cantidad, 9999999999.99, error_message=T("Debe ser mayor que {0}".format(concepto.cantidad)))) campos.append(db.pago.get("forma_pago")) campos.append(fld_cantidad) campos.append(db.pago.get("numero_transaccion")) campos.append(db.pago.get("transaccion")) campos.append(db.pago.get("codigo_recivo")) campos.append(db.pago.get("fecha_recivo")) back = URL('index', args=[C.evento.id]) manejo = SQLFORM.factory(*campos, submit_button=T('Guardar')) manejo.add_button(T("Cancel"), back) C.form = manejo C.titulo = "{} {} - {}".format(T("Pago"), concepto.nombre, C.persona.nombre_completo) if manejo.process().accepted: valores = manejo.vars valores.tipo_pago_id = concepto.id valores.persona_id = C.persona.id valores.evento_id = C.evento.id db.pago.insert(**db.pago._filter_fields(valores)) # crear la matricula con los valores por defecto para nuevo ingreso mat_vals = Storage() mat_vals.estudiante_id = C.estudiante.id mat_vals.ano_academico_id = C.ano.id from agiscore.db.nivel_academico import _1RO nv = db.nivel_academico(nivel=_1RO, unidad_organica_id=C.unidad.id) mat_vals.nivel = nv.id mat_vals.situacion = '1' mat_vals.estado_uo = SIN_MATRICULAR cand = db.candidatura(estudiante_id=C.estudiante.id, ano_academico_id=C.ano.id) mat_vals.regimen_id = cand.regimen_id a_carr = db.asignacion_carrera(candidatura_id=cand.id) mat_vals.carrera_id = a_carr.carrera_id db.matricula.insert(**db.matricula._filter_fields(mat_vals)) session.flash = T('Pago registrado') redirect(back) return dict(C=C)