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)
user=espls_user, passwd=espls_pass, db=espls_db) # importar las especialidades sub_q = """ SELECT * FROM espls.uo_especialidades; """ c2 = dbespls.cursor() c2.execute(sub_q) ESPECIALIDADES = dict() for r in c2: esp_data = Storage() esp_data.nombre = r[2].decode('latin1').strip().upper() esp_data.abreviatura = r[1].decode('latin1').strip().upper() esp_data.carrera_id = 4 tbl = current.db.especialidad especialidad_id = tbl.insert(**tbl._filter_fields(esp_data)) ESPECIALIDADES[r[0]] = especialidad_id print ESPECIALIDADES c2.close() query = """ SELECT * FROM espls.pessoas as p, espls.estudantes as e WHERE p.idpessoa = e.idtabestudante and p.tipopessoa = 'Estudante'; """ cursor = dbespls.cursor() cursor.execute(query)