예제 #1
0
    def post(self, request):
        candidatos = get_dict_array(request.POST, 'data', ["funcionario", "coordinador", "verificacion", "apoyo", "criterio"])

        for id in candidatos:
            data = Storage()
            pst = Pst.objects.get(pk=int(id))
            candidato = candidatos[id] #Obtenemos los datos del candidato
            fecha = candidato['inicio'].split('-');
            desde = date(int(fecha[1]), MESES[str(fecha[0])], 1)
            fecha = candidato['fin'].split('-');
            days = calendar.monthrange(int(fecha[1]), MESES[str(fecha[0])])
            hasta = date(int(fecha[1]), MESES[str(fecha[0])], days[1])
            # Creamos los elementos para guardar la solicitud
            data.pst = pst
            data.rif = pst.rif
            data.desde = desde
            data.hasta = hasta
            data.estado = APROBACION_SOLICITUD
            data.tipo_solicitud = int(candidato['solicitud'])
            data.criterio = ",".join(candidato['criterio'])
            if int(candidato['solicitud']) == VERIFICACION:
                data.tipo_verificacion = int(candidato['verificacion'][0])

            if int(candidato['solicitud']) == FISCALIZACION:
                data.tipo_verificacion = DOMICILIO_FISCAL

            solicitud = Solicitud(**data)
            solicitud.save()

            for i, id in enumerate(candidato['funcionario']):
                analista = Storage()
                analista.funcionario = User.objects.get(pk=int(id))
                analista.es_coordinador = False
                analista.es_apoyo = False
                if candidato['coordinador'][i] == "true":
                    analista.es_coordinador = True
                if candidato['apoyo'][i] == "true":
                    analista.es_apoyo = True
                analista.solicitud = solicitud
                funcionario = FuncionariosSolicitud(**analista)
                funcionario.save()

        return redirect(reverse_lazy('funcionario_crear_solicitud'))
예제 #2
0
    def post(self, request, **kwargs):
        """
        Metodo que guarda la modificacion de la solicitud
        Method: POST
        """
        fecha_hoy = datetime.now()
        candidatos = get_dict_array(request.POST, 'data', ['funcionario'])
        solicitud = Solicitud.objects.get(pk=int(request.POST['id_solicitud']))

        # Datos para actualizar de la solicitud
        desde = request.POST['desde'].split('-');
        hasta = request.POST['hasta'].split('-');
        solicitud.desde = date(int(desde[1]), MESES[str(desde[0])], fecha_hoy.day)
        solicitud.hasta = date(int(hasta[1]), MESES[str(hasta[0])], fecha_hoy.day)

        if request.POST['tipo_solicitud'] == VERIFICACION:
            solicitud.tipo_verificacion = tipos_verificacion

        solicitud.save()

        # Asignamos usuarios
        funcionarios = FuncionariosSolicitud.objects.filter(solicitud=solicitud)
        func_ids = [f.funcionario.id for f in funcionarios]

        for id in candidatos:
            data = Storage()
            if id in func_ids:
                lugar = func_ids.index(id)
                del func_ids[lugar]
            else:
                data.funcionario = User.objects.get(pk=id)
                data.es_coordinador = False
                data.solicitud = solicitud
                if candidatos[id]['es_coordinador']== 'true':
                    data.es_coordinador = True

                f = FuncionariosSolicitud(**data)
                f.save()
        FuncionariosSolicitud.objects.filter(funcionario__in=func_ids).delete()
        return redirect(reverse_lazy('verificar_solicitud_gerente'))