Exemplo n.º 1
0
def import_inscriptos():
    # Listo para las jornadas ...
    # Modificar para el sistema del Consejo
    response.view = 'curso/import_inscriptos.html'
    curso = Curso(request.args(0, cast=int))
    rows = []

    form = SQLFORM.factory(
            Field('csv_inscriptos',
                  'upload',
                  label='Archivo CSV',
                  uploadfolder='uploads/csv/'),
            formstyle='bootstrap3_stacked')


    if form.process().accepted:
        csvfile = request.vars.csv_inscriptos.file
        csvfile.seek(0)

        # jump_first_iteration = False

        for line in csv.DictReader(csvfile):
            persona = db(Persona.dni == line['inscripcion.dni']).select()

            if not persona:
                # Agregamos una nueva persona
                persona = Persona.validate_and_insert(
                    profesion=line['inscripcion.profesion'],
                    nombre_apellido='%(inscripcion.apellido)s, %(inscripcion.nombre)s' % line,
                    dni=curso_aux.sanitize_dni(line['inscripcion.dni']),
                    email=line['inscripcion.email'],
                    matricula=line['inscripcion.matricula'],
                    telefono=line['inscripcion.telefono'],
                    domicilio=line['consejo.nombre']
                )
                
                if persona.errors:
                    # control de personas con errores al importar.
                    pass


                persona = [persona]
            
            if db((Inscripto.curso == curso) & (Inscripto.persona == persona[0].id)).isempty():
                inscripto = Inscripto.insert(curso=curso,
                                             persona=persona[0].id,
                                             fecha_inscripcion=request.now)

        session.flash = 'Se importó con éxitos!'
        csvfile.close()
        redirect(URL(c='curso',
                     f='index',
                     args=('view', 'curso', curso.id),
                     user_signature=True))

    return dict(form=form, curso=curso, rows=rows)
Exemplo n.º 2
0
def import_pagos():
    # Importar Pagos desde csv [Exclusivo para XIJORNADAS SECTOR PUBLICO]
    curso_id = request.args(0, cast=int)
    fields = (Inscripto.id, Inscripto.persona, Persona.dni)
    inscriptos = db(Inscripto.curso == curso_id).select(
                    *fields, left=Inscripto.on(Inscripto.persona==Persona.id))

    rows = []

    form = SQLFORM.factory(
            Field('csv_pagos',
                  'upload',
                  label='Archivo CSV PAGOS',
                  uploadfolder='uploads/csv/'),
            formstyle='bootstrap3_stacked')

    if form.process().accepted:
        csvfile = request.vars.csv_pagos.file
        csvfile.seek(0)

        for line in csv.DictReader(csvfile, delimiter=';'):
            row = inscriptos.find(
                lambda r: r['persona']['dni'] == curso_aux.sanitize_dni(line['dni']))

            msg = '0' * 15
            permitir_acreditacion = False

            if row:
                row = row[0]
                if line['innominadas']:
                    msg = 'INNOMINADAS Monto: %.2f' % float(line['innominadas'])
                    permitir_acreditacion = True

                if line['acreditado'] == '*':
                    permitir_acreditacion = True



                pago = Pagos.validate_and_insert(
                            inscripto=row.inscripto.id,
                            monto=line['pago_total'],
                            nro_recibo=msg,
                            created_on=curso_aux.str2date(line['fecha_pago']))

                if not pago.errors:
                    row.inscripto.update_record(pago=permitir_acreditacion)

        session.flash = 'Se importó con éxitos los pagos'
        csvfile.close()
        redirect(URL(c='curso',
                     f='index',
                     args=('view', 'curso', curso_id),
                     user_signature=True))
    return dict(form=form, curso_id=curso_id)