示例#1
0
    def RegistrarNotas1Form(self, request):

        roles = ['promotor', 'director']

        if validar_roles(roles=roles):

            # Cargamos las aulas relacionadas al colegio
            id_colegio = get_current_colegio()
            periodos_colegio = PeriodoAcademico.objects.filter(
                colegio=id_colegio).order_by('nombre')
            if periodos_colegio.count() == 0:
                periodos_colegio = ["No hay periodos registrados"]

            # Cargamos las aulas relacionadas al colegio
            id_colegio = get_current_colegio()
            aulas_colegio = Aula.objects.filter(
                tipo_servicio__colegio=id_colegio).order_by('nombre')
            if aulas_colegio.count() == 0:
                aulas_colegio = ["No hay aulas registradas"]

            cursos = []
            cursos_aula = AulaCurso.objects.filter(curso__colegio=id_colegio)
            for curso_aula in cursos_aula:
                cursos.append(curso_aula.curso)

            return {
                'aulas_colegio': aulas_colegio,
                'periodos_colegio': periodos_colegio,
                'cursos_aula': cursos
            }

        else:
            mensaje_error = "No tienes acceso a esta vista"
            return {'mensaje_error': mensaje_error}  # return context
示例#2
0
 def get(self, request, *args, **kwargs):
     form = self.form_class(colegio=get_current_colegio())
     servicios = Servicio.objects.filter(
         tipo_servicio__colegio__id_colegio=get_current_colegio(),
         activo=True)
     return render(request,
                   template_name=self.template_name,
                   context={
                       'form': form,
                       'servicios': servicios,
                   })
示例#3
0
    def get(self, request, *args, **kwargs):
        roles = ['promotor', 'director','administrativo']

        if validar_roles(roles=roles):
            form = self.form_class(colegio=get_current_colegio())
            servicios = Servicio.objects.filter(tipo_servicio__colegio__id_colegio=get_current_colegio(), activo=True)
            return render(request, template_name=self.template_name, context={
                'form': form,
                'servicios': servicios,
            })

        else:
            return HttpResponseRedirect(settings.REDIRECT_PERMISOS)
示例#4
0
    def VisualizarNotasform(self, request):

        roles = ['promotor', 'director']

        if validar_roles(roles=roles):

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

            id_colegio = get_current_colegio()
            aulas = Aula.objects.filter(
                tipo_servicio__colegio=id_colegio).order_by('nombre')

            return {'meses': meses_todos, 'aulas': aulas}

        else:
            mensaje_error = "No tienes acceso a esta vista"
            return {'mensaje_error': mensaje_error}  # return context
示例#5
0
    def get(self, request, *args, **kwargs):
        roles = ['promotor', 'director', 'administrativo']
        if validar_roles(roles=roles):
            no_matriculados_aulas = []
            aula_actual = Aula.objects.get(id_aula=request.GET['aula'])
            matriculas = Matricula.objects.filter(
                tipo_servicio=aula_actual.tipo_servicio,
                colegio_id=get_current_colegio(),
                activo=True)
            for matricula in matriculas:
                alumno_aula = AulaMatricula.objects.filter(matricula=matricula,
                                                           activo=True)
                if alumno_aula:
                    logger.info("El alumno {0} ya tiene aula".format(
                        matricula.alumno))
                else:
                    no_matriculados_aulas.append(matricula)
            return render(request,
                          template_name=self.template_name,
                          context={
                              'aula': aula_actual,
                              'matriculas': no_matriculados_aulas,
                          })

        else:
            return HttpResponseRedirect(settings.REDIRECT_PERMISOS)
示例#6
0
    def get(self, request, *args, **kwargs):
        roles = ['promotor', 'director', 'administrativo']
        if validar_roles(roles=roles):
            # AQUI VA EL ID DE TIPO DE SERVICIO
            id_tipo_servicio = 1
            docente = True
            id_colegio = get_current_colegio()
            matriculadosaula = Matricula.objects.filter(
                colegio_id=id_colegio,
                activo=True,
                tipo_servicio=id_tipo_servicio).order_by('alumno__apellido_pa')
            logger.info("Datos son {0}".format(matriculadosaula))

            alumnos = []
            for matriculado in matriculadosaula:
                alumnos.append(matriculado.alumno)
            return render(request,
                          template_name=self.template_name,
                          context={
                              'form': self.form_class,
                              'alumnos': alumnos,
                              'docente': docente,
                          })

        else:
            return HttpResponseRedirect(settings.REDIRECT_PERMISOS)
示例#7
0
    def post(self, request, *args, **kwargs):

        alumno = request.POST["alumno"]
        logger.info("El alumno ingresado es {0}".format(alumno))
        anio = request.POST["anio"]
        logger.debug("El año ingresado es {0}".format(anio))
        mes = request.POST["mes"]
        logger.debug("El mes ingresado es {0}".format(mes))
        estado = request.POST["estado"]
        logger.debug("El tipo o estado ingresado es {0}".format(estado))

        # Validación de hijos asociados a un apoderado
        alumno = int(alumno)

        id_colegio = get_current_colegio()
        cuenta_padres = calculo_ingresos_alumno(id_colegio, alumno, anio, mes,
                                                estado)

        contexto = self.cargarformPadres(request)

        if len(cuenta_padres) != 0:
            contexto['object_list'] = cuenta_padres

            return render(request,
                          template_name=self.template_name,
                          context=contexto)
        else:
            contexto['object_list'] = []
            return render(request,
                          template_name=self.template_name,
                          context=contexto)
示例#8
0
    def get(self, request, *args, **kwargs):
        roles = ['promotor', 'director', 'administrativo', 'tesorero']
        if validar_roles(roles=roles):
            personalcolegio = PersonalColegio.objects.filter(
                colegio_id=get_current_colegio(), activo=True)
            personal = []
            docentes = []
            for personalcol in personalcolegio:
                personal.append(personalcol.personal)
            cursos = AulaCurso.objects.filter(
                id_aula_curso=request.GET['curso'], activo=True)
            for persona in personal:
                try:
                    docentes.append(Docente.objects.get(empleado=persona))
                except:
                    logger.info("Persona no es un docente ---- AE_academico")
            return render(request,
                          template_name=self.template_name,
                          context={
                              'form': self.form_class,
                              'docentes': docentes,
                              'cursos': cursos,
                          })

        else:
            return HttpResponseRedirect(settings.REDIRECT_PERMISOS)
示例#9
0
    def post(self, request, *args, **kwargs):

        alumno = request.POST["alumno"]
        anio = request.POST["anio"]
        mes = request.POST["mes"]
        estado = request.POST["estado"]

        logger.info(alumno)
        colegio = get_current_colegio()

        # Proceso de filtrado según el colegio
        cuentas_cobrar_colegio = self.model.objetos.filter(
            matricula__colegio__id_colegio=colegio, activo=True)

        # Proceso de filtrado según el alumno
        if alumno == "":
            por_cobrar1 = cuentas_cobrar_colegio
        else:
            por_cobrar1 = cuentas_cobrar_colegio.filter(
                Q(matricula__alumno__nombre=alumno)
                | Q(matricula__alumno__apellido_pa=alumno)
                | Q(matricula__alumno__apellido_ma=alumno))

        # Proceso de filtrado según el año
        if anio == "Todos":
            por_cobrar2 = por_cobrar1
        else:
            anio = int(anio)
            por_cobrar2 = por_cobrar1.filter(fecha_ven__year=anio)

        # Proceso de filtrado según el mes
        if mes == "Todos":
            por_cobrar3 = por_cobrar2
        else:
            num_mes = obtener_mes(mes)
            por_cobrar3 = por_cobrar2.filter(fecha_ven__month=num_mes)

        # Proceso de filtrado según el estado o tipo
        if estado == "Todos":
            por_cobrar = por_cobrar3
        elif estado == "Pagado":
            por_cobrar = por_cobrar3.filter(estado=False)
        elif estado == "No_pagado":
            por_cobrar = por_cobrar3.filter(estado=True)

        contexto = self.cargarformPromotordetalle(request)

        if len(por_cobrar) != 0:
            contexto['object_list'] = por_cobrar
            contexto['form'] = CuentasCobrarPromotorDetalleForm
            return render(request,
                          template_name=self.template_name,
                          context=contexto)
        else:
            contexto['object_list'] = []
            contexto['form'] = CuentasCobrarPromotorDetalleForm
            return render(request,
                          template_name=self.template_name,
                          context=contexto)
示例#10
0
 def get(self, request, *args, **kwargs):
     super(AprobarDescuentoView, self).get(request, *args, **kwargs)
     id_colegio = get_current_colegio()
     descuentos = self.model.objects.filter(matricula__colegio__id_colegio=id_colegio).filter(estado=1).order_by(
         "id_descuento")
     contexto = {}
     contexto['object_list'] = descuentos
     return render(request, self.template_name, contexto)  # return context
示例#11
0
    def post(self, request, *args, **kwargs):

        alumno = request.POST["alumno"]
        anio = request.POST["anio"]
        numero_expediente = request.POST["numero_expediente"]
        estado = request.POST["estado"]

        logger.info("Los datos de llegada son {0}".format(request.POST))

        id_colegio = get_current_colegio()

        # Proceso de filtrado según el colegio
        descuentos_0 = self.model.objects.filter(
            matricula__colegio__id_colegio=id_colegio)

        # Proceso de filtrado según el alumno
        if alumno == "":
            descuentos_1 = descuentos_0
        else:
            descuentos_1 = descuentos_0.filter(
                Q(matricula__alumno__nombre=alumno)
                | Q(matricula__alumno__apellido_pa=alumno)
                | Q(matricula__alumno__apellido_ma=alumno))

        # Proceso de filtrado según el año
        descuentos_2 = descuentos_1.filter(fecha_modificacion__year=anio)

        # Proceso de filtrado según el número de expediente
        if numero_expediente == "":
            descuentos_3 = descuentos_2
        else:
            descuentos_3 = descuentos_2.filter(
                numero_expediente=int(numero_expediente))

        # Proceso de filtrado según el estado o tipo
        if estado == "Todos":
            descuentos = descuentos_3
        elif estado == "Pendiente":
            descuentos = descuentos_3.filter(estado=1)
        elif estado == "Aprobado":
            descuentos = descuentos_3.filter(estado=2)
        else:
            descuentos = descuentos_3.filter(estado=3)

        contexto = self.cargarformPromotordescuentos(request)

        if len(descuentos) != 0:
            contexto['object_list'] = descuentos
            return render(request,
                          template_name=self.template_name,
                          context=contexto)
        else:
            contexto['object_list'] = []
            return render(request,
                          template_name=self.template_name,
                          context=contexto)
示例#12
0
def exportIngresosCSV(request):
    pago_resource = PagoResource()
    queryset = Cuentascobrar.objects.filter(
        matricula__colegio__id_colegio=get_current_colegio(), activo=True)
    dataset = pago_resource.export(queryset)
    response = HttpResponse(dataset.csv, content_type='text/csv')
    response[
        'Content-Disposition'] = 'attachment; filename="ingresos_{0}.csv"'.format(
            datetime.today())
    return response
示例#13
0
 def get(self, request, pk, docente, format=None):
     colegio_id = get_current_colegio()
     aula_cursos = []
     if pk == "1":
         cursos_docente = CursoDocente.objects.filter(docente=docente)
     else:
         cursos_docente = CursoDocente.objects.filter(curso__curso__colegio=colegio_id)
     cursos_asociados = list(cursos_docente)
     serializer = CursoDocenteSerializer(cursos_asociados, many=True)
     return Response(serializer.data)
示例#14
0
    def post(self, request, *args, **kwargs):
        logger.info("Estoy en el POST")
        logger.info("Los datos de llegada son {0}".format(request.POST))
        data_post = request.POST

        id_colegio = get_current_colegio()
        descuentos = self.model.objects.filter(matricula__colegio__id_colegio=id_colegio).filter(estado=1).order_by("id_descuento")
        n = 0
        for descuento in descuentos:
            n = n + 1
            try:
                logger.info("Iniciando el Try por {0} vez".format(n))

                descuento_id = "gender{0}".format(descuento.id_descuento)
                logger.info("El dato de llegada para {0} es {1}".format(descuento_id, data_post[descuento_id]))

                if data_post[descuento_id] == "aprobar":
                    # Guardar el estado de descuento como "Aprobado"
                    descuento.estado = 2
                    descuento.comentario = "Aprobado"
                    descuento.fecha_aprobacion = date.today()
                    descuento.save()

                    # Generando los descuentos en las cuentas por cobrar
                    matricula_id = descuento.matricula.id_matricula
                    logger.debug("La matrícula asociada al descuento es {0}".format(matricula_id))
                    porcentaje_descuento = float(descuento.tipo_descuento.porcentaje)
                    logger.debug("El porcentaje de descuento es {0}".format(porcentaje_descuento))
                    servicio_id = descuento.tipo_descuento.servicio.id_servicio
                    logger.debug("El servicio asociado al descuento tiene id = {0}".format(servicio_id))
                    cuenta_descuento1 = Cuentascobrar.objects.filter(matricula__id_matricula=matricula_id)
                    cuenta_descuento2 = cuenta_descuento1.filter(servicio__id_servicio=servicio_id)
                    cuenta_descuento = cuenta_descuento2.filter(fecha_ven__year=date.today().year) #Se realizan descuentos para el presente año

                    for cuenta in cuenta_descuento:
                        if cuenta.estado == True:
                            cuenta.descuento = porcentaje_descuento
                            if cuenta.deuda - cuenta.descuento > 0:
                                cuenta.deuda = cuenta.deuda - cuenta.descuento
                            else:
                                cuenta.deuda = 0
                            cuenta.save()

                else:
                    descuento.estado = 3
                    descuento.comentario = "No aprobado"
                    descuento.save()
            except:
                logger.info("No se realizan cambios")

        contexto = {}
        contexto['object_list'] = descuentos
        contexto['id_colegio'] = id_colegio
        return render(request, template_name=self.template_name, context=contexto)
示例#15
0
文件: views.py 项目: furthz/colegio
    def get(self, request, *args, **kwargs):
        roles = [
            'promotor', 'director', 'administrativo', 'tesorero', 'cajero'
        ]

        if validar_roles(roles=roles):
            Remesa.objects.filter(
                movimiento__caja__colegio_id=get_current_colegio())
            return super(ConsignmentListView,
                         self).get(request, *args, **kwargs)
        else:
            return HttpResponseRedirect(settings.REDIRECT_PERMISOS)
示例#16
0
    def get(self, request, *args, **kwargs):
        roles = ['promotor', 'director', 'administrativo', 'cajero']

        if validar_roles(roles=roles):
            descuentos = TipoDescuento.objects.filter(colegio_id=get_current_colegio(), activo=True)

            return render(request, template_name=self.template_name, context={
                'descuentos': descuentos,
            })

        else:
            return HttpResponseRedirect(settings.REDIRECT_PERMISOS)
示例#17
0
    def post(self, request, *args, **kwargs):

        anio = request.POST["anio"]
        logger.debug("El año ingresado es {0}".format(anio))
        tipo_pago = request.POST["tipo_pago"]
        logger.debug("El tipo o estado ingresado es {0}".format(tipo_pago))
        mes = request.POST["mes"]
        logger.debug("El mes ingresado es {0}".format(mes))

        id_colegio = get_current_colegio()
        pagos_colegio = calculo_pagos_total(id_colegio, anio, tipo_pago, mes)

        anio = int(anio)
        if anio == date.today().year:
            rango_mes = date.today().month
        else:
            rango_mes = 12
        logger.debug("El rango de meses es {0}".format(rango_mes))

        # CALCULO DE MONTO TOTAL DE PAGOS POR MES SEGÚN AÑO ESCOGIDO
        monto_mes_total = []  # Lista de Montos totales por mes
        for mes_i in range(0, rango_mes):
            pagos_mes = pagos_colegio.filter(fecha__month=mes_i + 1)
            monto_mes_total.append(
                0)  # Declara las Montos totales iniciales de un mes como '0'
            for pagos in pagos_mes:
                monto_mes_total[mes_i] = monto_mes_total[
                    mes_i] + pagos.monto  # Cálculo de los montos totales del mes
        logger.debug("El monto del año por mes es {0}".format(monto_mes_total))

        mes_labels = [
            "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio",
            "Agosto", "Setiembre", "Octubre", "Noviembre", "Diciembre"
        ]

        contexto = self.cargarformPromotorpagos(request)
        contexto['mes_labels'] = mes_labels
        contexto['mes_llega'] = mes
        contexto['anio_llega'] = anio
        contexto['tipo_llega'] = tipo_pago

        if len(pagos_colegio) != 0:
            contexto['pagos_colegio'] = pagos_colegio
            contexto['monto_mes_total'] = monto_mes_total
            return render(request,
                          template_name=self.template_name,
                          context=contexto)
        else:
            contexto['pagos_colegio'] = []
            contexto['monto_mes_total'] = []
            return render(request,
                          template_name=self.template_name,
                          context=contexto)
示例#18
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
示例#19
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.fields['anio'] = forms.ChoiceField(choices=self.ChoiceAnio())
        self.fields['anio'].widget.attrs.update({'class': 'form-control'})
        self.fields['mes'] = forms.ChoiceField(choices=self.ChoiceMes())
        self.fields['mes'].widget.attrs.update({'class': 'form-control'})
        self.fields['tipo_pago'].widget.attrs.update({'class': 'form-control'})

        colegio = get_current_colegio()
        tipos = TipoPago.objects.filter(colegio=colegio)

        self.helper = FormHelper()
        self.helper.form_method = "post"
        self.fields['tipo_pago'].queryset = tipos
示例#20
0
    def get(self, request, pk, docente):
        colegio_id = get_current_colegio()

        # Obteniendo las aulas asociadas a un docente
        aulas_docente = []
        cursos_docente = CursoDocente.objects.filter(docente=docente)
        for curso_docente in cursos_docente:
            aula = curso_docente.curso.aula
            if aula not in aulas_docente:
                aulas_docente.append(aula)

        # Serializando: Se entregan los siguientes datos: 'id_aula', 'nombre', 'get_tipo_servicio'
        logger.info("Las aulas asociadas al docente son : {0}".format(aulas_docente))
        serializer = AulaSerializer(aulas_docente, many=True)
        return Response(serializer.data)
示例#21
0
    def get(self, request, *args, **kwargs):
        roles = ['promotor', 'director', 'administrativo', 'tesorero']
        if validar_roles(roles=roles):
            aula_actual = Aula.objects.get(id_aula=request.GET['aula'])
            cursos = Curso.objects.filter(colegio_id=get_current_colegio(),
                                          activo=True)
            return render(request,
                          template_name=self.template_name,
                          context={
                              'aula': aula_actual,
                              'cursos': cursos,
                          })

        else:
            return HttpResponseRedirect(settings.REDIRECT_PERMISOS)
示例#22
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,
                      })
示例#23
0
文件: views.py 项目: furthz/colegio
    def form_valid(self, form):
        obj = form.save(commit=False)
        cole_id = get_current_colegio()
        numero_caja = obj.numero
        if Caja.objects.filter(colegio_id=cole_id,
                               numero=numero_caja,
                               eliminado=True).exists():
            return HttpResponse(
                "<script>alert('Este número de caja ya existe!!');window.history.back();</script>"
            )

        else:
            obj.save()
            # print ('No existe, fue creado con exito ')
            # print ("====================================")
            return super(CashierCreationView, self).form_valid(form)
示例#24
0
文件: views.py 项目: furthz/colegio
    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)
示例#25
0
    def MarcarAsistencia1Form(self, request):

        roles = ['promotor', 'director']

        if validar_roles(roles=roles):

            # Cargamos las aulas relacionadas al colegio
            id_colegio = get_current_colegio()
            aulas_colegio = Aula.objects.filter(
                tipo_servicio__colegio=id_colegio).order_by('nombre')

            return {'aulas_colegio': aulas_colegio}

        else:
            mensaje_error = "No tienes acceso a esta vista"
            return {'mensaje_error': mensaje_error}  # return context
示例#26
0
    def get(self, request, *args, **kwargs):
        roles = ['promotor', 'director', 'administrativo']
        if validar_roles(roles=roles):
            personalcolegio = PersonalColegio.objects.filter(
                colegio_id=get_current_colegio(), activo=True)
            personal = []
            for personalcol in personalcolegio:
                personal.append(personalcol.personal)
            return render(request,
                          template_name=self.template_name,
                          context={
                              'form': self.form_class,
                              'empleados': personal,
                          })

        else:
            return HttpResponseRedirect(settings.REDIRECT_PERMISOS)
示例#27
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
示例#28
0
    def post(self, request, *args, **kwargs):

        id_colegio = get_current_colegio()
        anio = request.POST["anio"]
        mes = request.POST["mes"]

        logger.info(anio)
        logger.info(mes)

        if anio == str(date.today().year):
            num_mes = date.today().month
        else:
            num_mes = 12

        anio = int(anio)

        por_cobrar_total, cobro_total, deuda_total = calculo_ingresos_promotor(
            id_colegio, anio, mes)
        por_cobrar_grado, cobro_total_grado, deuda_total_grado = calculo_por_nivel_promotor(
            id_colegio, anio, mes)

        meses = [
            "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio",
            "Agosto", "Setiembre", "Octubre", "Noviembre", "Diciembre"
        ]

        mes_labels = []
        for i in range(0, num_mes):
            mes_labels.append(meses[i])
        logger.info(mes_labels)

        contexto = self.cargarformPromotor(request)
        contexto['por_cobrar_grado'] = por_cobrar_grado
        contexto['cobro_total_grado'] = cobro_total_grado
        contexto['deuda_total_grado'] = deuda_total_grado
        contexto['por_cobrar_total'] = por_cobrar_total
        contexto['cobro_total'] = cobro_total
        contexto['deuda_total'] = deuda_total
        contexto['mes_labels'] = mes_labels
        contexto['mes_llega'] = mes
        contexto['anio_llega'] = anio

        return render(request,
                      template_name=self.template_name,
                      context=contexto)
示例#29
0
    def cargarformPromotorpagos(self, request):

        roles = ['promotor', 'director', 'tesorero']

        if validar_roles(roles=roles):

            # 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 tipos de pago
            id_colegio = get_current_colegio()
            logger.debug("El id del colegio es {0}".format(id_colegio))
            colegio = Colegio.objects.get(pk=id_colegio)
            tipos = TipoPago.objects.filter(colegio=colegio)
            tipos_pagos = []
            tipos_pagos.append("Todos")
            for tipo in tipos:
                tipos_pagos.append(tipo)

            return {
                'anios': anios,
                'meses': meses_todos,
                'tipos_pagos': tipos_pagos
            }

        else:
            mensaje_error = "No tienes acceso a esta vista"
            return {'mensaje_error': mensaje_error}  # return context
示例#30
0
    def post(self, request, *args, **kwargs):
        print(request.POST)
        cursos = Curso.objects.filter(colegio_id=get_current_colegio(),
                                      activo=True)
        aula = Aula.objects.get(id_aula=request.POST['aula'])
        data_form = request.POST
        for curso in cursos:
            try:
                text = "item{0}".format(curso.id_curso)

                if data_form[text]:
                    aulacurso = self.model(
                        aula=aula,
                        curso=curso,
                    )
                    aulacurso.save()
                    print("se creo un registro")
            except:
                print("hay un error")

        return HttpResponseRedirect(reverse('academic:aula_list'))