Пример #1
0
    def CrearDetallesCobranza(self, lista_cuentas, lista_montos, total):
        logger.info("Estoy en crear detalles")
        #logger.info(CajaCajero.objects.get(estado=True,personal_colegio__personal__user=self.request.user))
        usuario = get_current_user()
        cobranza_actual = Cobranza(movimiento=CajaCajero.objects.get(
            estado=True, usuario_creacion=str(usuario.id)),
                                   fecha_pago=date.today(),
                                   monto=total,
                                   medio_pago=1,
                                   num_operacion="1234")

        cobranza_actual.save()
        movi = CajaCajero.objects.get(estado=True,
                                      usuario_creacion=str(usuario.id))
        movi.ventas = movi.ventas + total
        movi.save()
        for k in range(len(lista_cuentas)):
            cuenta = lista_cuentas[k]
            print(k)
            monto = lista_montos[k]
            detalle_actual = DetalleCobranza(cuentascobrar=cuenta,
                                             cobranza=cobranza_actual,
                                             monto=monto)
            detalle_actual.save()
            if monto is cuenta.deuda:
                cuenta.deuda = 0
                cuenta.estado = False
            else:
                cuenta.deuda = cuenta.deuda - monto
            cuenta.save()

        return cobranza_actual
Пример #2
0
 def save(self, *args, **kwargs):
     """
     Método para guardar el usuario logueado creador
     :param args:
     :param kwargs:
     :return:
     """
     from utils.middleware import get_current_user
     if not self:
         self.creator = get_current_user()
     super(CreatorMixin, self).save(*args, **kwargs)
Пример #3
0
def generar_pdf(request):
    print("Genero el PDF")
    response = HttpResponse(content_type='application/pdf')
    pdf_name = "clientes.pdf"  # llamado clientes
    # la linea 26 es por si deseas descargar el pdf a tu computadora
    # response['Content-Disposition'] = 'attachment; filename=%s' % pdf_name
    id_cobranza_actual = request.POST["cobranza"]
    id_alumno = request.POST["alumno"]
    cobranza_actual = Cobranza.objects.get(id_cobranza=id_cobranza_actual)

    colegio = Colegio.objects.get(pk=get_current_colegio())
    detalle_cobranza = DetalleCobranza.objects.filter(cobranza=cobranza_actual)
    alumno = Alumno.objects.get(id_alumno=id_alumno)
    cajero = Profile.objects.get(user=get_current_user())

    buff = BytesIO()
    doc = SimpleDocTemplate(
        buff,
        pagesize=A6,
        rightMargin=0,
        leftMargin=0,
        topMargin=0,
        bottomMargin=0,
    )
    clientes = []
    styles = getSampleStyleSheet()
    header = Paragraph("Detalle del Pago", styles['Heading1'])
    fecha = Paragraph("Fecha y hora:".format(datetime.today()),
                      styles['Heading2'])
    header1 = Paragraph("Cajero:", styles['Heading2'])
    header2 = Paragraph("{0}".format(cajero), styles['Heading3'])
    header3 = Paragraph("Nombre del alumno:", styles['Heading2'])
    header4 = Paragraph("{0}".format(alumno), styles['Heading3'])

    clientes.append(header)
    clientes.append(fecha)
    clientes.append(header1)
    clientes.append(header2)
    clientes.append(header3)
    clientes.append(header4)
    headings = ('Servicio', 'Monto')
    allclientes = [(p.cuentascobrar.servicio, p.monto)
                   for p in detalle_cobranza]
    #print(allclientes)

    t = Table([headings] + allclientes)
    clientes.append(t)

    doc.build(clientes)
    response.write(buff.getvalue())
    buff.close()
    return response
Пример #4
0
    def get(self, request, *args, **kwargs):
        roles = ['cajero']

        if validar_roles(roles=roles):
            logger.info("Se tienen los permisos de cajero")
        else:
            return HttpResponseRedirect(settings.REDIRECT_PERMISOS)
        try:
            usuario = get_current_user()
            mov = CajaCajero.objects.get(estado=True,
                                         usuario_modificacion=str(usuario.id))
            alerta = False
        except:
            alerta = True
        dato = 1
        logger.info("Estoy en income pagos")
        try:
            dato = request.GET['dato']
            logger.info("Ver si existe un GET")
            print(request.GET['filter'])
            if request.GET['filter'] == 'DNI':
                print("filtro DNI")
                alumnos = Alumno.objects.filter(
                    numero_documento=request.GET['dato'])
            else:
                alumnos = Alumno.objects.filter(
                    apellido_pa__icontains=request.GET['dato'].upper())
        except:

            self.cuentas = []
            alumnos = []

        alumnos1 = []
        for alumno in alumnos:
            try:
                matricula = Matricula.objects.get(
                    colegio=get_current_colegio(), activo=True, alumno=alumno)
                alumnos1.append(alumno)
            except:
                logger.info("no pertenece al colegio")

        return render(request,
                      template_name=self.template_name,
                      context={
                          'alerta': alerta,
                          'dato': dato,
                          'alumnos': alumnos1,
                      })
Пример #5
0
    def save(self, *args, **kwargs):
        from utils.middleware import get_current_user

        usuario = get_current_user()
        if usuario is not None:
            iduser = usuario.id
        else:
            iduser = -1

        # creacion
        if not self.pk:
            self.usuario_creacion = iduser

        self.usuario_modificacion = iduser

        super(CreacionModificacionUserMixin, self).save(*args, **kwargs)
Пример #6
0
    def get(self, request, *args, **kwargs):
        roles = ['cajero']

        if validar_roles(roles=roles):
            persona = Profile.objects.get(user=get_current_user())
            personal = Personal.objects.get(persona=persona)
            personal = PersonalColegio.objects.filter(
                personal=personal, colegio=get_current_colegio(), activo=True)
            return render(request,
                          template_name=self.template_name,
                          context={
                              'form': self.form_class,
                              'personal': personal,
                          })
        else:
            return HttpResponseRedirect(settings.REDIRECT_PERMISOS)
Пример #7
0
    def cargarformPromotordescuentos(self, request):

        # Obtiene el colegio en cuestión
        id_colegio = get_current_colegio()
        colegio = Colegio.objects.get(pk=id_colegio)
        # logger.debug("Colegio: " + colegio.nombre)

        # Obtiene el usuario que ha iniciado sesión
        user = get_current_user()
        logger.debug("Usuario: " + user.name)

        try:
            profile = Profile.objects.get(user=user)
            logger.debug("profile: " + str(profile.id_persona))
        except Profile.DoesNotExist:
            sw_error = True
            mensaje_error = "No existe la Persona asociada al usuario"

        try:
            # 1. Verificamos que el usuario sea un personal
            personal = Personal.objects.get(persona=profile)
            logger.debug("personal: " + str(personal.id_personal))

            # 2. Verificamos que el usuario sea un personal asociado al colegio
            personal_colegio = PersonalColegio.objects.get(personal=personal,
                                                           colegio=colegio)

            # 3. Verificamos que sea un promotor
            promotor = Promotor.objects.filter(
                empleado=personal_colegio.personal)
            #logger.debug()
            if promotor.count() == 0:
                sw_error = True
                mensaje_error = "No es un promotor de un alumno asociado al colegio"
            else:
                sw_error = False

        except Personal.DoesNotExist:
            sw_error = True
            mensaje_error = "No es un personal asociado al colegio"

        if sw_error != True:
            return {}
        else:
            return {'mensaje_error': mensaje_error}  # return context
Пример #8
0
    def get(self, request, *args, **kwargs):
        roles = ['cajero']

        if validar_roles(roles=roles):
            try:
                usuario = get_current_user()
                # mov = CajaCajero.objects.get(estado=False, usuario_modificacion=str(usuario.id))
                alerta = False
            except:
                alerta = True
            personal = PersonalColegio.objects.filter(
                colegio=get_current_colegio(), activo=True)
            return render(request,
                          template_name=self.template_name,
                          context={
                              'form': self.form_class,
                              'personal': personal,
                              'alerta': alerta,
                          })
        else:
            return HttpResponseRedirect(settings.REDIRECT_PERMISOS)
Пример #9
0
    def get_context_data(self, **kwargs):
        context = super(BoxCashierListView, self).get_context_data(**kwargs)

        roles = ['cajero']
        context['es_cajero'] = validar_roles(roles=roles)
        request = get_current_request()
        user_id = get_current_user().id
        personal_colegio_id = PersonalColegio.objects.values('pk').filter(
            personal_id__persona_id__user_id=user_id)[0]['pk']
        puede_ver_lista = ['promotor', 'director', 'tesorero']
        if validar_roles(roles=puede_ver_lista):
            puede_ver = True
        else:
            puede_ver = False

        if request.session.get('colegio'):
            id = request.session.get('colegio')
            context['idcolegio'] = id
            context['personal_id_cajero'] = personal_colegio_id
            context['permisos_valido'] = puede_ver

        return context
Пример #10
0
 def get_context_data(self, **kwargs):
     context = super(UserInfoListView, self).get_context_data(**kwargs)
     usuario = get_current_user()
     if usuario is not None:
         iduser = usuario.id
     else:
         iduser = -1
     profile_id = Profile.objects.get(user_id=iduser)
     personal_id = Personal.objects.get(persona_id=profile_id)
     # personalcolegio_id = PersonalColegio.objects.values('pk').filter(personal_id=personal_id)[0]['pk']
     context['id_usuario'] = iduser
     context['nombre_usuario'] = User.objects.values('name').filter(id=iduser)[0]['name']
     context['usuario_email'] = User.objects.values('email').filter(id=iduser)[0]['email']
     context['nombre_profile'] = Profile.objects.values('nombre').filter(user_id=iduser)[0]['nombre']
     context['nombre2_profile'] = Profile.objects.values('segundo_nombre').filter(user_id=iduser)[0][
         'segundo_nombre']
     context['apellido_pa_profile'] = Profile.objects.values('apellido_pa').filter(user_id=iduser)[0]['apellido_pa']
     context['apellido_ma_profile'] = Profile.objects.values('apellido_ma').filter(user_id=iduser)[0]['apellido_ma']
     id_colegio = PersonalColegio.objects.values('colegio_id').filter(personal_id=personal_id)[0]['colegio_id']
     context['id_colegio'] = id_colegio
     context['nombre_colegio'] = Colegio.objects.values('nombre').filter(id_colegio=id_colegio)[0]['nombre']
     return context
Пример #11
0
    def get_context_data(self, **kwargs):
        context = super(BoxCashierCreationView,
                        self).get_context_data(**kwargs)

        usuario = get_current_user()
        if usuario is not None:
            iduser = usuario.id
        else:
            iduser = -1

        a = Profile.objects.get(user_id=iduser)
        b = Personal.objects.get(persona=a)
        #            c = PersonalColegio.objects.get(personal_id=b)
        #           d = PersonalColegio.objects.filter(personal_id=b).values('pk')
        #            print(PersonalColegio.objects.values('pk').filter(personal_id=b)[0]['pk'])

        #            print(Caja.objects.filter(colegio_id=1))
        # creacion
        # context['yolencios'] = d
        #            print(PersonalColegio.objects.values('pk').filter(personal_id=b)[0]['pk'])
        personal_colegio = PersonalColegio.objects.get(personal=b)
        context['yolencios'] = personal_colegio.id_personal_colegio
        return context
Пример #12
0
    def get(self, request, *args, **kwargs):
        roles = ['cajero']

        if validar_roles(roles=roles):
            usuario = get_current_user()
            perfil = Profile.objects.get(user=usuario)
            personal = Personal.objects.filter(persona=perfil)
            personal_colegio = PersonalColegio.objects.get(personal=personal)

            cajas = Caja.objects.filter(
                colegio__id_colegio=get_current_colegio(),
                eliminado=True,
                activo=True)

            return render(request,
                          template_name=self.template_name,
                          context={
                              'form': self.form_class,
                              'cajas': cajas,
                              'yolencios': personal_colegio.id_personal_colegio
                          })

        else:
            return HttpResponseRedirect(settings.REDIRECT_PERMISOS)
Пример #13
0
def boleta_A5(request):
    response = HttpResponse(content_type='application/pdf')
    response[
        'Content-Disposition'] = 'attachment; filename="boleta_A5_{0}.pdf"'.format(
            datetime.today())
    p = canvas.Canvas(response, pagesize=A5)
    p.setLineWidth(.3)
    p.setFont('Helvetica', 8)

    id_cobranza_actual = request.POST["cobranza"]
    id_alumno = request.POST["alumno"]
    cobranza_actual = Cobranza.objects.get(id_cobranza=id_cobranza_actual)

    colegio = Colegio.objects.get(pk=get_current_colegio())
    detalle_cobranza = DetalleCobranza.objects.filter(cobranza=cobranza_actual)
    alumno = Alumno.objects.get(id_alumno=id_alumno)
    cajero = Profile.objects.get(user=get_current_user())

    nombre = alumno
    monto = [(str(p.monto)) for p in detalle_cobranza]
    total = sum([(p.monto) for p in detalle_cobranza])
    descripcion = [(str(p.cuentascobrar.servicio.nombre) + " " +
                    str(p.cuentascobrar.servicio.tipo_servicio))
                   for p in detalle_cobranza]
    fecha = date.today()

    dire = Direccion.objects.get(colegio=colegio)
    dir_colegio = dire.calle

    departamento = dire.get_departamento + " - PERU"

    dire_alumno = Direccion.objects.get(persona=alumno.persona)
    direccion_alumno = dire_alumno.calle
    ruc_colegio = colegio.ruc
    numero_recibo = colegio.numero_recibo - 1

    p.line(40, 510, 370, 510)
    p.setFont('Helvetica', 10)
    p.drawString(90, 490, '{0}'.format(colegio))
    p.drawString(90, 480, '{0}'.format(dir_colegio))
    try:
        telefono_colegio = Telefono.objects.get(colegio=colegio)
        p.drawString(90, 470, 'Telf.: {0}'.format(telefono_colegio))
        p.drawString(90, 460, '{0}'.format(departamento))
    except:
        p.drawString(90, 470, '{0}'.format(departamento))
    p.drawString(270, 490, 'RUC: {0}'.format(ruc_colegio))
    p.drawString(270, 480, 'BOLETA DE VENTA')
    p.drawString(270, 470, '001 - N° {0}'.format(numero_recibo))
    p.setFont('Helvetica', 8)
    p.drawString(40, 440, 'Sr(a):   {0}'.format(nombre))
    p.drawString(270, 440, 'Fecha:  {0}'.format(fecha))
    p.drawString(40, 430, 'Dirección:  {0}'.format(direccion_alumno))
    p.setFont('Helvetica', 10)
    p.line(40, 395, 370, 395)
    p.line(40, 413, 370, 413)
    p.line(295, 395, 295, 413)
    p.drawString(40, 400, 'Descripción:')
    p.drawString(300, 400, 'Importe S/.')

    p.setFont('Helvetica', 8)
    for k in range(len(descripcion)):
        p.drawString(40, 370 - 15 * k, '{0}'.format(descripcion[k]))
        p.drawString(300, 370 - 15 * k, '{0}'.format(monto[k]))

    p.line(40, 370 - 15 * len(descripcion) - 3, 370,
           370 - 15 * len(descripcion) - 3)
    p.line(40, 370 - 15 * len(descripcion) - 18, 370,
           370 - 15 * len(descripcion) - 18)
    p.drawString(230, 370 - 15 * len(descripcion) - 15, 'TOTAL S/.:')
    p.drawString(300, 370 - 15 * len(descripcion) - 15, '{0}'.format(total))

    p.showPage()
    p.save()

    return response
Пример #14
0
    def get(self, request, *args, **kwargs):
        """tiposervicio = self.model.objects.get(pk = int(request.GET['tiposervicio']))
        for servicio in tiposervicio.getServiciosAsociados():
            servicio.activo = False
            servicio.save()
        tiposervicio.activo = False
        tiposervicio.save()
        """
        #cuentas = Cuentascobrar.objects.all()
        roles = ['cajero']

        if validar_roles(roles=roles):
            logger.info("Se tienen los permisos de cajero")
        else:
            return HttpResponseRedirect(settings.REDIRECT_PERMISOS)
        try:
            usuario = get_current_user()
            mov = CajaCajero.objects.get(estado=True,
                                         usuario_modificacion=str(usuario.id))
            alerta = False
        except:
            alerta = True
        dato = 1
        logger.info("Estoy en income pagos")
        cuentas_totales = Cuentascobrar.objects.filter(
            matricula__colegio__id_colegio=self.request.session.get('colegio'),
            estado=True,
            activo=True)
        try:
            dato = request.GET['dato']
            logger.info("Ver si existe un GET")
            print(request.GET['filter'])
            if request.GET['filter'] == 'DNI':
                print("filtro DNI")
                self.cuentas = cuentas_totales.filter(
                    matricula__alumno__numero_documento=request.GET['dato'].
                    upper(),
                    activo=True,
                    estado=True).order_by("fecha_ven")
                alumno = Alumno.objects.get(
                    numero_documento=request.GET['dato'])
            else:
                self.cuentas = cuentas_totales.filter(
                    matricula__alumno__apellido_pa__icontains=request.
                    GET['dato'].upper(),
                    activo=True,
                    estado=True).order_by("fecha_ven")
                alumno = Alumno.objects.get(
                    apellido_pa__icontains=request.GET['dato'].upper())
        except:

            self.cuentas = []
        logger.info(self.cuentas)

        try:
            pknum = alumno.id_alumno
        except:
            pknum = None
        return render(request,
                      template_name=self.template_name,
                      context={
                          'alerta': alerta,
                          'dato': dato,
                          'cuentascobrar': self.cuentas,
                          'pknum': pknum,
                      })
Пример #15
0
def recibo_A6(request):
    response = HttpResponse(content_type='application/pdf')
    response[
        'Content-Disposition'] = 'attachment; filename="recibo_A6_{0}.pdf"'.format(
            datetime.today())
    p = canvas.Canvas(response, pagesize=A6)
    p.setLineWidth(.3)
    p.setFont('Helvetica', 8)

    id_cobranza_actual = request.POST["cobranza"]
    id_alumno = request.POST["alumno"]
    cobranza_actual = Cobranza.objects.get(id_cobranza=id_cobranza_actual)

    colegio = Colegio.objects.get(pk=get_current_colegio())
    detalle_cobranza = DetalleCobranza.objects.filter(cobranza=cobranza_actual)
    alumno = Alumno.objects.get(id_alumno=id_alumno)
    cajero = Profile.objects.get(user=get_current_user())

    nombre = alumno
    monto = [(str(p.monto)) for p in detalle_cobranza]
    total = sum([(p.monto) for p in detalle_cobranza])
    descripcion = [(str(p.cuentascobrar.servicio.nombre) + " " +
                    str(p.cuentascobrar.servicio.tipo_servicio))
                   for p in detalle_cobranza]
    fecha = date.today()

    dire = Direccion.objects.get(colegio=colegio)
    dir_colegio = dire.calle

    departamento = dire.get_departamento + " - PERU"

    dire_alumno = Direccion.objects.get(persona=alumno.persona)
    direccion_alumno = dire_alumno.calle

    numero_recibo = colegio.numero_recibo - 1

    p.line(20, 390, 270, 390)
    p.setFont('Helvetica', 8)
    p.drawString(70, 360, '{0}'.format(colegio))
    p.drawString(70, 350, '{0}'.format(dir_colegio))
    try:
        telefono_colegio = Telefono.objects.get(colegio=colegio)
        p.drawString(70, 340, 'Telf.: {0}'.format(telefono_colegio))
        p.drawString(70, 330, '{0}'.format(departamento))
    except:
        p.drawString(70, 340, '{0}'.format(departamento))
    p.drawString(195, 360, 'RECIBO {0}'.format(numero_recibo))
    p.drawString(195, 350, 'FECHA:  {0}'.format(fecha))
    p.setFont('Helvetica', 6)
    p.drawString(20, 310, 'Sr(a):   {0}'.format(nombre))
    p.drawString(20, 300, 'Dirección:  {0}'.format(direccion_alumno))
    p.setFont('Helvetica', 8)
    p.line(20, 265, 270, 265)
    p.line(20, 283, 270, 283)
    p.line(195, 265, 195, 283)
    p.drawString(20, 270, 'Descripción:')
    p.drawString(200, 270, 'Importe S/.')

    p.setFont('Helvetica', 6)
    for k in range(len(descripcion)):
        p.drawString(20, 250 - 15 * k, '{0}'.format(descripcion[k]))
        p.drawString(200, 250 - 15 * k, '{0}'.format(monto[k]))

    p.line(20, 250 - 15 * len(descripcion) - 3, 270,
           250 - 15 * len(descripcion) - 3)
    p.line(20, 250 - 15 * len(descripcion) - 18, 270,
           250 - 15 * len(descripcion) - 18)
    p.drawString(130, 250 - 15 * len(descripcion) - 15, 'TOTAL S/.:')
    p.drawString(200, 250 - 15 * len(descripcion) - 15, '{0}'.format(total))

    p.showPage()
    p.save()

    return response
Пример #16
0
    def cargarformPadres(self, request):

        # Obtiene el colegio en cuestión
        id_colegio = get_current_colegio()
        colegio = Colegio.objects.get(pk=id_colegio)
        # logger.debug("Colegio: " + colegio.nombre)

        # Obtiene el usuario que ha iniciado sesión
        user = get_current_user()
        logger.debug("Usuario: " + user.name)

        try:
            profile = Profile.objects.get(user=user)
            logger.debug("profile: " + str(profile.id_persona))
        except Profile.DoesNotExist:
            sw_error = True
            mensaje_error = "No existe la Persona asociada al usuario"

        try:
            # 1. Verificamos que el usuario sea un apoderado
            apoderado = Apoderado.objects.get(persona=profile)
            logger.debug("apoderado: " + str(apoderado.id_apoderado))

            # 2. Verificamos los alumnos que tienen el apoderado y el colegio de la sesión
            matriculas = Matricula.objects.filter(colegio=colegio,
                                                  alumno__apoderados=apoderado)

            if matriculas.count() == 0:
                sw_error = True
                mensaje_error = "No es un apoderado de un alumno asociado al colegio"
            else:
                sw_error = False

        except Apoderado.DoesNotExist:
            sw_error = True
            mensaje_error = "No es un apoderado"

        if sw_error != True:

            # Cargamos los alumnos
            alumnos = []
            for apo_alu in matriculas:
                alumnos.append(apo_alu.alumno)

            # Cargamos los años
            anio = datetime.today().year
            anios = []
            for i in range(0, 3):
                anios.append(anio - i)

            # Cargamos los meses
            meses_todos = [
                "Todos", "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio",
                "Julio", "Agosto", "Setiembre", "Octubre", "Noviembre",
                "Diciembre"
            ]
            num_mes = datetime.today().month
            meses = []
            for i in range(0, num_mes + 1):
                meses.append(meses_todos[i])

            # Cargamos los estados
            estados = ["Todos", "Pagado", "No pagado"]

            return {
                'alumnos': alumnos,
                'anios': anios,
                'meses': meses_todos,
                'estados': estados
            }

        else:
            return {'mensaje_error': mensaje_error}  # return context
Пример #17
0
    def get_roles():
        logger.debug("Inicio de get_roles")

        usuario = get_current_user()
        logger.debug("Usuario ID: " + str(usuario.id))

        roles = {}

        if usuario.is_superuser:
            logger.debug("Usuario SUPERUSUARIO")

            roles['promotor'] = 1
            roles['director'] = 1
            roles['cajero'] = 1
            roles['tesorero'] = 1
            roles['administrativo'] = 1
            roles['apoderado'] = 1
            roles['sistemas'] = 1

            logger.debug("Se asignaron los permisos de SUPERUSUARIO")
            logger.info("Se asignaron los permisos de SUPERUSUARIO")

        else:

            logger.debug("usuario NO SUPERUSUARIO")

            id_colegio = get_current_colegio()
            colegio = Colegio.objects.get(pk=id_colegio, activo=True)
            logger.debug("ID Colegio: " + str(id_colegio))

            profile = Profile.objects.get(user_id=usuario.id)
            logger.debug("Profile: " + profile.apellido_pa )

            # determinar si es un personal asociado al colegio logueado
            empleados = Personal.objects.filter(persona=profile, personalcolegio__colegio=colegio,
                                                personalcolegio__activo=True)
            logger.debug("Cantidad de empleados asociados a la cuenta: " + str(empleados.count()))

            for empleado in empleados:
                try:
                    promotor = Promotor.objects.get(empleado=empleado, activo_promotor=True)
                    roles['promotor'] = promotor.id_promotor
                    logger.debug("Promotor: " + str(promotor.id_promotor))

                except Promotor.DoesNotExist:
                    roles['promotor'] = -1
                    logger.debug("No es un profile Promotor")

                try:
                    director = Director.objects.get(empleado=empleado, activo_director=True)
                    roles['director'] = director.id_director
                    logger.debug("Director: " + str(director.id_director))

                except Director.DoesNotExist:
                    roles['director'] = -1
                    logger.debug("No es un profile Director")

                try:
                    cajero = Cajero.objects.get(empleado=empleado, activo_cajero=True)
                    roles['cajero'] = cajero.id_cajero
                    logger.debug("Cajero: " + str(cajero.id_cajero))

                except Cajero.DoesNotExist:
                    roles['cajero'] = -1
                    logger.debug("No es un profile Cajero")

                try:
                    tesorero = Tesorero.objects.get(empleado=empleado, activo_tesorero=True)
                    roles['tesorero'] = tesorero.id_tesorero
                    logger.debug("Tesorero: " + str(tesorero.id_tesorero))

                except Tesorero.DoesNotExist:
                    roles['tesorero'] = -1
                    logger.debug("No es un profile Tesorero")

                try:
                    administrativo = Administrativo.objects.get(empleado=empleado, activo_administrativo=True)
                    roles['administrativo'] = administrativo.id_administrativo
                    logger.debug("Administrativo: " + str(administrativo.id_administrativo))

                except Administrativo.DoesNotExist:
                    roles['administrativo'] = -1
                    logger.debug("No es un profile Administrativo")

                try:
                    sistemas = Sistemas.objects.get(empleado=empleado, activo_sistemas=True)
                    roles['sistemas'] = sistemas.id_sistemas
                    logger.debug("Sistemas: " + str(sistemas.id_sistemas))
                except Sistemas.DoesNotExist:
                    roles['sistemas'] = -1
                    logger.debug("No es un profile Sistemas")


            # determinar si es un apoderado
            try:
                apoderado = Apoderado.objects.get(persona=profile)

                apoderados = Matricula.objects.filter(colegio=colegio, activo=True,
                                                      alumno__apoderadoalumno__apoderado=apoderado)

                logger.debug("Apoderados asociados a matriculas: " + str(apoderados.count()))

                if apoderados.count() == 0:
                    roles['apoderado'] = -1
                    logger.debug("No es profile Apoderado")

                for apo in apoderados:
                    roles['apoderado'] = apo.id_matricula
                    logger.debug("usuario Apoderado: " + str(apo.id_matricula))

            except Apoderado.DoesNotExist:
                roles['apoderado'] = -1
                logger.debug("No es un profile Apoderado")

        logger.info("Se asignaron los roles al profile")
        logger.debug("Fin de get_roles")
        return roles
Пример #18
0
 def save(self, *args, **kwargs):
     from utils.middleware import get_current_user
     if not self.creator:
         self.creator = get_current_user()
     super(CreatorMixin, self).save(*args, **kwargs)
Пример #19
0
def user_value():
    try:
        return get_current_user().username
    except:
        return "System"
Пример #20
0
def user_value():
    try:
        return get_current_user().username
    except:
        return "System"
 def save(self, *args, **kwargs):
     from utils.middleware import get_current_user
     if not self.creator:
         self.creator = get_current_user()
     super(CreatorMixin, self).save(*args, **kwargs)