예제 #1
0
def selectPlanColab(request):

    if 'nombreUsuario' not in request.session:

        return render(request, 'seguridad/login.html', {})

    else:

        if request.method == 'POST' and request.is_ajax():

            id_plan = request.POST.get('id_plan')

            cursor = connection.cursor()
            query = " SELECT * "
            query = query + " FROM sac_planaccion "
            query = query + " WHERE sac_planaccion.id=%s"
            params = [id_plan]

            cursor.execute(query, params)

            rows = dictfetchall(cursor)

            from sac.views import json_serial
            return HttpResponse(json.dumps(rows, default=json_serial),
                                content_type="application/json")
예제 #2
0
def GridDocumentosAdministrador(request):


    #validar si existe usuario logeado
    if 'nombreUsuario' not in request.session:

        #return render(request, 'seguridad/login.html', {})
        return redirect('login')
    else:
        
        cursor = connection.cursor()

        query = " SELECT documentos_documento.id, documentos_documento.nombre, documentos_documento.descripcion, "
        query = query + " documentos_documento.version, documentos_documento.fec_subido, documentos_documento.path, "
        query = query + " documentos_documento.estado, personal_personal.nombre AS responsable, "
        query = query + " areas_areas.area AS proceso, areas_procesos.proceso AS procedimiento "
        query = query + " FROM documentos_documento "
        query = query + " LEFT JOIN personal_personal ON documentos_documento.subido_por_id = personal_personal.id "
        query = query + " LEFT JOIN areas_areas ON documentos_documento.proceso_id = areas_areas.id "
        query = query + " LEFT JOIN areas_procesos ON documentos_documento.procedimiento_id = areas_procesos.id ORDER BY proceso "

        cursor.execute(query)

        rows = dictfetchall(cursor)

        if rows:
            #RETORNA  
            return JsonResponse(rows, safe=False)
        else:
            #RETORNA MENSAJE DE NO EXISTEN
            json = {
                'resultado':'no_ok',
                'mensaje': 'no existen Documentos',
            }
            return JsonResponse(json, safe=False)
예제 #3
0
def pdfNormVinculadas(request):
    if 'nombreUsuario' not in request.session:
        return render(request, 'seguridad/login.html', {})
    else:
        cursor = connection.cursor()
        query = " SELECT  areas_areas.area, areas_procesos.proceso,  normas_normas.nombre AS nombre_norma, normas_clausulas.clausula "
        query = query + " FROM normas_procesoclausula"
        query = query + " LEFT JOIN areas_areas ON normas_procesoclausula.id_area_id = areas_areas.id "
        query = query + " LEFT JOIN areas_procesos ON normas_procesoclausula.id_proceso_id = areas_procesos.id "
        query = query + " LEFT JOIN normas_normas ON normas_procesoclausula.id_norma_id = normas_normas.id "
        query = query + " LEFT JOIN normas_clausulas ON normas_procesoclausula.id_clausula_id = normas_clausulas.id "
        query = query + " ORDER BY normas_procesoclausula.id_proceso_id"

        cursor.execute(query)
        rows = dictfetchall(cursor)
        # CONVIERTE  QuerySet  a list object
        normas_list = list(rows)  

        context = {
            'normas': normas_list,
        }

        pdf = render_to_pdf('reportes/pdf/pdfNormasVinculadas.html', context)
        
        #FORZAR DOWNLOAD PDF
        if pdf:
            response = HttpResponse(pdf, content_type='application/pdf')
            filename = "Reporte_Normas_Vinculadas_%s.pdf" %("0001")
            content = "inline; filename='%s'" %(filename)

            content = "attachment; filename='%s'" %(filename)
            response['Content-Disposition'] = content
            return response
예제 #4
0
def personal(request):

    #validar si existe usuario logeado
    if 'nombreUsuario' not in request.session:

        return render(request, 'seguridad/login.html', {})

    else:

        cursor = connection.cursor()
        query = "SELECT personal_personal.id as id_personal, personal_personal.nombre AS nombre_persona, personal_personal.telefono, "
        query = query + " personal_personal.celular, personal_personal.correo, personal_personal.estado, "
        query = query + " personal_personal.firma, personal_cargo.nombre AS cargo, personal_personal.id_cargo_id,  "
        query = query + " personal_areapersonal.nombre AS area "
        query = query + " FROM personal_personal "
        query = query + " LEFT JOIN personal_cargo ON personal_personal.id_cargo_id = personal_cargo.id "
        query = query + " LEFT JOIN personal_areapersonal ON personal_personal.id_areapersonal_id = personal_areapersonal.id "
        query = query + " ORDER BY nombre_persona "

        cursor.execute(query)
        rows = dictfetchall(cursor)
        personal_list = list(rows)

        context = {
            'personal':
            personal_list,
            'personalForm':
            PersonalForm(),
            'cargos':
            Cargo.objects.values('id', 'nombre').all().filter(estado=1),
            'area':
            AreaPersonal.objects.values('id', 'nombre').all().filter(estado=1),
        }

        return render(request, 'personal/personal.html', context)
예제 #5
0
def gridAreas(request):

        
    #validar si existe usuario logeado
    if 'nombreUsuario' not in request.session:

        return render(request, 'seguridad/login.html', {})

    else:

        cursor = connection.cursor()
        query = " SELECT areas_areas.id, areas_areas.area,  areas_areas.descripcion, areas_areas.estado, "
        query = query + " personal_personal.nombre AS encargado, areas_areas.tipo_proceso"
        query = query + " FROM areas_areas "
        query = query + " LEFT JOIN personal_personal ON areas_areas.id_personal_id = personal_personal.id ORDER BY area "
        cursor.execute(query)
        rows = dictfetchall(cursor)

        if rows:
            #RETORNA  
            return JsonResponse(rows, safe=False)
        else:
            #RETORNA MENSAJE DE NO EXISTEN
            json = {
            'resultado':'no_ok',
            'mensaje': 'no existen Areas',
            }
            return JsonResponse(json, safe=False)
예제 #6
0
def pdfAreas(request):

     #validar si existe usuario logeado
    if 'nombreUsuario' not in request.session:
        
        return render(request, 'seguridad/login.html', {})

    else:
        #Consultar las Bodegas
        cursor = connection.cursor()
        query = " SELECT areas_areas.id, areas_areas.area,  areas_areas.descripcion, areas_areas.estado, "
        query = query + " personal_personal.nombre AS encargado"
        query = query + " FROM areas_areas "
        query = query + " LEFT JOIN personal_personal ON areas_areas.id_personal_id = personal_personal.id "

        cursor.execute(query)
        rows = dictfetchall(cursor)

        areas_list = list(rows)

        context = {
            'areas': areas_list,
        }

        pdf = render_to_pdf('reportes/pdf/pdfAreas.html', context)
        
        #FORZAR DOWNLOAD PDF
        if pdf:
            response = HttpResponse(pdf, content_type='application/pdf')
            filename = "Reporte_Areas_%s.pdf" %("000_000_001")
            content = "inline; filename='%s'" %(filename)

            content = "attachment; filename='%s'" %(filename)
            response['Content-Disposition'] = content
            return response
예제 #7
0
def gridNormas(request):

    #validar si existe usuario logeado
    if 'nombreUsuario' not in request.session:
        
        return render(request, 'seguridad/login.html', {})

    else:

            # todos los valores
            #normas = Normas.objects.all().values('id', 'nombre', 'estado','docfile')
            cursor = connection.cursor()

            query = " SELECT normas_normas.id, normas_normas.nombre, normas_normas.estado, normas_normas.docfile, "
            query = query + " personal_personal.nombre AS auditor_lider, personal_personal.id_cargo_id, personal_personal.id AS id_personal "
            query = query + " FROM normas_normas "
            query = query + " LEFT JOIN personal_personal ON normas_normas.auditor_lider_id = personal_personal.id "
            cursor.execute(query)

            rows = dictfetchall(cursor)

            # CONVIERTE  QuerySet  a list object
            normas_list = list(rows)  

            if normas_list:
                #RETORNA  
                return JsonResponse(normas_list, safe=False)
            else:
                #RETORNA MENSAJE DE NO EXISTEN
                json = {
                'resultado':'no_ok',
                'mensaje': 'no existen Normas',
                }
                return JsonResponse(json, safe=False)
예제 #8
0
def gridSacPlanAccion(request):
    if 'nombreUsuario' not in request.session:
        return render(request, 'seguridad/login.html', {})
    else:
        if request.method == 'GET':
            row_id = request.GET['row_id']
            cursor = connection.cursor()

            query = " SELECT sac_planaccion.id, sac_planaccion.detalle_plan_accion, sac_planaccion.plazo_plan_accion, sac_planaccion.responsable_plan_accion_id, "
            query = query + " sac_planaccion.justificacion_plan, personal_personal.nombre AS responsable_accion, sac_planaccion.observacion_plan, sac_planaccion.estado_plan, sac_planaccion.fecha_seguimiento, personal.nombre AS responsable_seguimiento, "
            query = query + " sac_planaccion.detalle_seguimiento, sac_planaccion.estado_seguimiento, sac_planaccion.sac_id, sac_planaccion.observacion_seguimiento, "
            query = query + " sac_estado.estado_aprobacion, sac_estado.observaciones_aprobacion,  sac_estado.estado_cierre_accion, sac_estado.fecha_cierre_accion "
            query = query + " FROM sac_planaccion "
            query = query + " LEFT JOIN personal_personal ON sac_planaccion.responsable_plan_accion_id = personal_personal.id "
            query = query + " LEFT JOIN personal_personal personal ON sac_planaccion.responsable_seguimiento_id = personal.id "
            query = query + " LEFT JOIN sac_estado ON sac_planaccion.sac_id = sac_estado.sac_id "
            query = query + " WHERE sac_planaccion.sac_id =%s "

            params = [row_id]
            cursor.execute(query, params)

            rows = dictfetchall(cursor)

            list_rows = list(rows)

            if list_rows:
                return JsonResponse(list_rows, safe=False)
            else:
                json = {
                    'resultado': 'no_ok',
                    'mensaje': 'no existen  PLAN ACCION',
                }
                return JsonResponse(json, safe=False)
예제 #9
0
def colSeguimientos(request):
    
    #validar si existe usuario logeado
    if 'nombreUsuario' not in request.session:

        #return render(request, 'seguridad/login.html', {})
        return redirect('login')

    else:
        cursor = connection.cursor()

        query = " SELECT sac_planaccion.id, sac_planaccion.detalle_plan_accion, sac_planaccion.plazo_plan_accion, sac_planaccion.justificacion_plan, sac_planaccion.responsable_plan_accion_id, sac_planaccion.observacion_plan, sac_planaccion.estado_plan,sac_planaccion.fecha_seguimiento, "
        query = query + " personal_personal.nombre AS personal_seguimiento, sac_planaccion.detalle_seguimiento, sac_planaccion.estado_seguimiento , sac_planaccion.responsable_seguimiento_id, sac_planaccion.observacion_seguimiento "
        query = query + " FROM sac_planaccion "
        query = query + " LEFT JOIN personal_personal ON sac_planaccion.responsable_seguimiento_id = personal_personal.id  "
        query = query + " WHERE (sac_planaccion.responsable_seguimiento_id=%(id_usuario)s) OR (sac_planaccion.responsable_plan_accion_id =%(id_usuario)s) "
        params = {'id_usuario':request.session['idUsuario']}
        print  query
        cursor.execute(query, params)

        rows = dictfetchall(cursor)
        context={
            #'planAccion': PlanAccion.objects.values().all().filter(responsable_plan_accion_id=request.session['idUsuario'])
            'planAccion': rows
        }
        return render(request, 'colaborador/planColaborador.html', context)
예제 #10
0
def GridHistoricoPlanAccion(request):

    # validar si existe usuario logeado
    if 'nombreUsuario' not in request.session:

        return render(request, 'seguridad/login.html', {})

    else:

        cursor = connection.cursor()

        query = " SELECT sac_revisionplan.id, sac_revisionplan.observacion_rev_responsable, sac_revisionplan.fec_rev_responsable, sac_revisionplan.estado_rev_responsable, "
        query = query + " sac_revisionplan.observacion_rev_seguimiento, sac_revisionplan.fec_rev_seguimiento,  sac_revisionplan.estado_rev_seguimiento, "
        query = query + " sac_revisionplan.justificacion_responsable, sac_revisionplan.justificacion_seguimiento "
        query = query + " FROM sac_revisionplan "
        query = query + " WHERE sac_revisionplan.plan_id =%s "
        params = [request.GET['row_id']]

        cursor.execute(query, params)

        rows = dictfetchall(cursor)

        if rows:

            # RETORNA
            return JsonResponse(rows, safe=False)

        else:

            # RETORNA MENSAJE DE NO EXISTEN
            json = {
                'resultado': 'no_ok',
                'mensaje': 'no existen  Historico !!',
            }
            return JsonResponse(json, safe=False)
예제 #11
0
def gridVinculadoNormas(request):
    
    if 'nombreUsuario' not in request.session:

        return render(request, 'seguridad/login.html', {})

    else:

        cursor = connection.cursor()
        query = " SELECT  areas_areas.area, areas_procesos.proceso,  normas_normas.nombre AS nombre_norma, normas_clausulas.clausula, "
        query = query + " normas_procesoclausula.id, normas_procesoclausula.id_area_id, normas_procesoclausula.id_clausula_id, "
        query = query + "  normas_procesoclausula.id_norma_id, normas_procesoclausula.id_proceso_id "
        query = query + " FROM normas_procesoclausula"
        query = query + " LEFT JOIN areas_areas ON normas_procesoclausula.id_area_id = areas_areas.id "
        query = query + " LEFT JOIN areas_procesos ON normas_procesoclausula.id_proceso_id = areas_procesos.id "
        query = query + " LEFT JOIN normas_normas ON normas_procesoclausula.id_norma_id = normas_normas.id "
        query = query + " LEFT JOIN normas_clausulas ON normas_procesoclausula.id_clausula_id = normas_clausulas.id "
        query = query + " ORDER BY nombre_norma, clausula "
        cursor.execute(query)
        rows = dictfetchall(cursor)

        # CONVIERTE  QuerySet  a list object
        normas_list = list(rows)  

        if normas_list:
            #RETORNA  
            return JsonResponse(normas_list, safe=False)
        else:
            #RETORNA MENSAJE DE NO EXISTEN SECUENCIAS Y PERMITE CREAR
            json = {
            'resultado':'no_ok',
            'mensaje': 'no existen Normas Vinculadas',
            }
            return JsonResponse(json, safe=False)
예제 #12
0
def jefe(request):

    #validar si existe usuario logeado
    if 'nombreUsuario' not in request.session:

        return render(request, 'seguridad/login.html', {})

    else:

        cursor = connection.cursor()
        query = "SELECT auditoria_auditorias.numero_auditoria FROM  auditoria_auditorias GROUP BY auditoria_auditorias.numero_auditoria "
        cursor.execute(query)
        rows = dictfetchall(cursor)

        #CONVIERTE  QuerySet  a list object
        num_auditorias_list = list(rows)

        context = {
            'personal': Personal.objects.values('id',
                                                'nombre').filter(estado=1),
            'auditorias': num_auditorias_list,
            'jefes': Personal.objects.values('id',
                                             'nombre').all().filter(estado=1),
            'sacs': Sac.objects.values('id').all().filter(estado_cabecera=1),
        }

        return render(request, 'jefeArea/jefe.html', context)
예제 #13
0
def gridSacAdmin(request):
    if 'nombreUsuario' not in request.session:
        return render(request, 'seguridad/login.html', {})
    else:
        if request.method == 'GET' and request.is_ajax():

            cursor = connection.cursor()

            query = "SELECT sac_sac.id, auditoria_auditorias.numero_auditoria, auditoria_auditorias.lugar, auditoria_auditorias.fec_inicio, auditoria_auditorias.hora_inicio, "
            query = query + " areas_areas.area AS proceso, areas_procesos.proceso AS procedimiento, personal_personal.nombre AS encargado, personal_auditor.nombre AS auditor, sac_sac.estado_cabecera, "
            query = query + " sac_sac.observacion_cabecera, sac_sac.criticidad , sac_sac.descripcion_hallazgo, sac_sac.analisis_causa, sac_sac.descripcion_correcion, sac_sac.sac_id "
            query = query + " FROM sac_sac "
            query = query + " LEFT JOIN auditoria_auditorias ON sac_sac.numero_auditoria = auditoria_auditorias.numero_auditoria "
            query = query + " LEFT JOIN areas_areas ON sac_sac.area = areas_areas.id "
            query = query + " LEFT JOIN areas_procesos ON sac_sac.procedimiento_id = areas_procesos.id  "
            query = query + " LEFT JOIN personal_personal ON sac_sac.responsable_id = personal_personal.id "
            query = query + " LEFT JOIN personal_personal personal_auditor ON sac_sac.solicitante_id = personal_auditor.id "
            query = query + " GROUP BY sac_sac.id ORDER BY id DESC "
            print query
            cursor.execute(query)
            rows = dictfetchall(cursor)
            # CONVIERTE  QuerySet  a list object
            sacs_auditor_list = list(rows)

            if sacs_auditor_list:
                return JsonResponse(sacs_auditor_list, safe=False)
            else:
                json = {
                    'resultado': 'no_ok',
                    'mensaje': 'no existen  Sac',
                }
                return JsonResponse(json, safe=False)
예제 #14
0
def GridSacHistorico(request):
    if 'nombreUsuario' not in request.session:
        return render(request, 'seguridad/login.html', {})
    else:
        if request.method == 'GET' and request.is_ajax():

            cursor = connection.cursor()
            query = " SELECT sac_revision.id, personal_personal.nombre AS administrador, director.nombre AS director, "
            query = query + " sac_revision.observacion_rev_director, sac_revision.fec_rev_director, sac_revision.estado_rev_director, "
            query = query + " auditor.nombre AS auditor, sac_revision.observacion_rev_auditor, sac_revision.fec_rev_auditor, "
            query = query + " sac_revision.estado_rev_auditor "
            query = query + " FROM sac_revision "
            query = query + " LEFT JOIN personal_personal ON sac_revision.admin_id = personal_personal.id "
            query = query + " LEFT JOIN personal_personal director ON sac_revision.director_id = director.id "
            query = query + " LEFT JOIN personal_personal auditor ON sac_revision.auditor_id = auditor.id "
            query = query + " WHERE sac_revision.sac_id =%s "
            query = query + " ORDER BY sac_revision.id DESC "
            params = [request.GET['row_id']]

            cursor.execute(query, params)
            rows_historico = dictfetchall(cursor)

            if rows_historico:
                return JsonResponse(rows_historico, safe=False)
            else:
                json = {
                    'resultado': 'no_ok',
                    'mensaje': 'no existe Historico',
                }
                return JsonResponse(json, safe=False)
예제 #15
0
def selectNotAdmin(request):
    
    # validar si existe usuario logeado
    if 'nombreUsuario' not in request.session:

        # return render(request, 'seguridad/login.html', {})
        return redirect('login')

    else:

        if request.method == "POST" and request.is_ajax():

            cursor = connection.cursor()
            query = " SELECT DISTINCT areas_procesos.proceso, areas_procesos.estado_colaborador, areas_procesos.estado_encargado, "
            query = query + " areas_procesos.observaciones_encargado, areas_procesos.estado_lider, areas_procesos.observaciones_lider, "
            query = query + " areas_procesos.estado_admin, areas_procesos.observaciones_admin "
            query = query + " FROM areas_procesos "
            query = query + " LEFT JOIN areas_area_proceso ON areas_procesos.id = areas_area_proceso.proceso_id "
            query = query + " WHERE areas_procesos.estado_colaborador = 6"
            query = query + " AND areas_area_proceso.personal_id =%s "
            params=[request.session['idUsuario']]
            
            cursor.execute(query, params)

            rows=dictfetchall(cursor)
            list_rows = list(rows)
            return JsonResponse(list_rows, safe=False)
예제 #16
0
def gridAudtDesignados(request):

        #validar si existe usuario logeado
    if 'nombreUsuario' not in request.session:

        return render(request, 'seguridad/login.html', {})

    else:


        cursor = connection.cursor()
        """
        query = " SELECT " 
        query = query + " normas_normas.nombre AS norma, "
        query = query + " personal_personal.nombre AS auditor, "
        query = query + " areas_areas.area, "
        query = query + " areas_procesos.proceso, "
        query = query + " auditoria_auditores.id, auditoria_auditores.id_auditor_id, auditoria_auditores.id_area_id, 	auditoria_auditores.id_norma_id, auditoria_auditores.id_proceso_id, "
        query = query + " normas_clausulas.clausula "
        query = query + " FROM auditoria_auditores "
        query = query + " LEFT JOIN personal_personal ON auditoria_auditores.id_auditor_id = personal_personal.id"
        query = query + " LEFT JOIN normas_normas ON auditoria_auditores.id_norma_id = normas_normas.id "
        query = query + " LEFT JOIN areas_areas ON auditoria_auditores.id_area_id = areas_areas.id "
        query = query + " LEFT JOIN areas_procesos ON auditoria_auditores.id_proceso_id = areas_procesos.id "
        query = query + " LEFT JOIN normas_clausulas ON normas_normas.id = normas_clausulas.id_norma_id "
        query = query + " WHERE auditoria_auditores.id_norma_id = %s"
        query = query + " GROUP BY norma, proceso "
        query = query + " ORDER BY areas_procesos.proceso "
        """
        query = " SELECT personal_personal.id AS id_auditor_id, personal_personal.nombre AS auditor, normas_normas.nombre AS norma, "
        query = query + " normas_clausulas.id AS id_clausula, normas_clausulas.clausula, areas_areas.area, areas_procesos.proceso, "
        query = query + " normas_procesoclausula.id, normas_procesoclausula.id_area_id, normas_procesoclausula.id_norma_id, "
        query = query + " normas_procesoclausula.id_proceso_id "
        query = query + " FROM auditoria_auditores "
        query = query + " LEFT JOIN personal_personal ON auditoria_auditores.id_auditor_id = personal_personal.id "
        query = query + " LEFT JOIN normas_procesoclausula ON auditoria_auditores.proceso_clausula_id = normas_procesoclausula.id "
        query = query + " LEFT JOIN normas_normas ON normas_procesoclausula.id_norma_id = normas_normas.id "
        query = query + " LEFT JOIN normas_clausulas ON normas_procesoclausula.id_clausula_id = normas_clausulas.id "
        query = query + " LEFT JOIN areas_areas ON normas_procesoclausula.id_area_id = areas_areas.id "
        query = query + " LEFT JOIN areas_procesos ON normas_procesoclausula.id_proceso_id = areas_procesos.id "
        query = query + " WHERE normas_procesoclausula.id_norma_id =%s "
        params=str(request.GET['id_norma'])
  
        cursor.execute(query, params)
        rows = dictfetchall(cursor)

        # CONVIERTE  QuerySet  a list object
        auditores_list = list(rows) 

        if auditores_list:
            #RETORNA  
            return JsonResponse(auditores_list, safe=False)
        else:
            #RETORNA MENSAJE DE NO EXISTEN SECUENCIAS Y PERMITE CREAR
            json = {
            'resultado':'no_ok',
            'mensaje': 'no existen Auditores Vinculados',
            }
            return JsonResponse(json, safe=False)
예제 #17
0
def consultarProcesoNorma(request):
    if 'nombreUsuario' not in request.session:
        return render(request, 'seguridad/login.html', {})
    else:
        if request.method == 'POST' and request.is_ajax():

            id_clausula = request.POST.get('id_clausula')

            #conexion
            cursor = connection.cursor()

            #query
            query = " SELECT areas_procesos.proceso "
            query = query + " FROM normas_procesoclausula "
            query = query + " LEFT JOIN areas_procesos ON normas_procesoclausula.id_proceso_id = areas_procesos.id "
            query = query + " WHERE normas_procesoclausula.id_clausula_id =%s "

            #parametros
            params =[id_clausula]
            #ejecutar consulta
            cursor.execute(query, params)

            #returnar diccionar de consulta
            rows = dictfetchall(cursor)

            # CONVIERTE  QuerySet  a list object
            procesos_list = list(rows)

            #recorriendo los directorios
            alldirectorys = []
            import os
            for directorios in procesos_list:
                for root, dirs, files in os.walk('media/gestionDocumental'):
                    for directory in dirs:
                        if directory == directorios['proceso']:


                            element = {}
                            element['directorio'] = directory
                            element['ruta_absoluta'] = root + '/' + directory
                            element['archivos'] = os.listdir(root+'/'+directorios['proceso'])
                            alldirectorys.append(element)

            if procesos_list:
                data = {
                    'resultado':'ok_select',
                    'procesos_list':procesos_list,
                    'archivos':alldirectorys
                }
                #RETORNA  
                return JsonResponse(data, safe=False)
            else:
                #RETORNA MENSAJE DE NO EXISTEN SECUENCIAS Y PERMITE CREAR
                json = {
                'resultado':'no_ok',
                'mensaje': 'no existen Procesos Vinculados'
                }
                return JsonResponse(json, safe=False)
예제 #18
0
def sac(request):
    if 'nombreUsuario' not in request.session:
        return render(request, 'seguridad/login.html', {})
    else:
        cursor = connection.cursor()
        query = "SELECT auditoria_auditorias.numero_auditoria FROM  auditoria_auditorias GROUP BY auditoria_auditorias.numero_auditoria "
        cursor.execute(query)
        rows = dictfetchall(cursor)
        num_auditorias_list = list(rows)
        context = {
            'auditorias': num_auditorias_list,
            'areas': Areas.objects.values('id', 'area').all().filter(estado=1),
            'personal': Personal.objects.filter(estado=1),
            'sacs': Sac.objects.values('id').all().filter(estado_cabecera=5),
        }
        return render(request, 'sac/sacs.html', context)
예제 #19
0
def listadoPersonal(request):

    #validar si existe usuario logeado
    if 'nombreUsuario' not in request.session:

        return render(request, 'seguridad/login.html', {})

    else:

        cursor = connection.cursor()
        query = "SELECT personal_personal.id, personal_personal.nombre  FROM personal_personal WHERE estado = 1 "

        cursor.execute(query)
        rows = dictfetchall(cursor)

        return JsonResponse(rows, safe=False)
예제 #20
0
def selectNorma(request):

    #validar si existe usuario logeado
    if 'nombreUsuario' not in request.session:

        return render(request, 'seguridad/login.html', {})

    else:
        #validar si recibe los datos por ajax
        if request.method == 'POST' and request.is_ajax():

            id_norma = request.POST.get('id_norma')

            norma = Normas.objects.get(pk=id_norma)
            cursor = connection.cursor()

            query = " SELECT normas_normas.id,  normas_normas.nombre, normas_normas.estado, normas_normas.docfile, personal_personal.nombre AS auditor_lider, "
            query = query + " personal_personal.id_cargo_id,  personal_personal.id AS id_personal "
            query = query + " FROM normas_normas "
            query = query + " LEFT JOIN personal_personal ON normas_normas.auditor_lider_id = personal_personal.id "
            query = query + " WHERE normas_normas.id =%s "
            params=[id_norma]

            cursor.execute(query, params)
            rows = dictfetchall(cursor)
            norma_list = list(rows)
            """
            urlDocumento= str(norma.docfile)
            norma_list ={
                'id':norma.id,
                'nombre':norma.nombre ,
                'docfile':urlDocumento,
                'estado':norma.estado,
            }
            """
            data = {
            'resultado':'ok_select',
            'norma_list':norma_list,
            }
            return HttpResponse(json.dumps(data), content_type="application/json")

        else:

            return render(request, 'seguridad/login.html', {})
예제 #21
0
def pdfAuditores(request):
    
    
    #validar si existe usuario logeado
    if 'nombreUsuario' not in request.session:

        return render(request, 'seguridad/login.html', {})

    else:

        #consultar
        cursor = connection.cursor()
        query = " SELECT " 
        query = query + " normas_normas.nombre AS norma, "
        query = query + " personal_personal.nombre AS auditor, "
        query = query + " areas_areas.area, "
        query = query + " areas_procesos.proceso, "
        query = query + " auditoria_auditores.id, auditoria_auditores.id_auditor_id, auditoria_auditores.id_area_id, 	auditoria_auditores.id_norma_id, auditoria_auditores.id_proceso_id"
        query = query + " FROM auditoria_auditores "
        query = query + " LEFT JOIN personal_personal ON auditoria_auditores.id_auditor_id = personal_personal.id"
        query = query + " LEFT JOIN normas_normas ON auditoria_auditores.id_norma_id = normas_normas.id "
        query = query + " LEFT JOIN areas_areas ON auditoria_auditores.id_area_id = areas_areas.id "
        query = query + " LEFT JOIN areas_procesos ON auditoria_auditores.id_proceso_id = areas_procesos.id "
        #query = query + " WHERE areas_procesos.id_area_id  IS NOT NULL "
        cursor.execute(query)
        rows = dictfetchall(cursor)
        # CONVIERTE  QuerySet  a list object
        auditores_list = list(rows) 

        context = {
            'auditores_list': auditores_list,
        }

        pdf = render_to_pdf('reportes/pdf/pdfAuditores.html', context)
        
        #FORZAR DOWNLOAD PDF
        if pdf:
            response = HttpResponse(pdf, content_type='application/pdf')
            filename = "Listado_Auditores_%s.pdf" %("000_000_001")
            content = "inline; filename='%s'" %(filename)

            content = "attachment; filename='%s'" %(filename)
            response['Content-Disposition'] = content
            return response
예제 #22
0
def clausulas(request):
    if 'nombreUsuario' not in request.session:
        return render(request, 'seguridad/login.html', {})
    else:
        cursor = connection.cursor()
        query = "SELECT DISTINCT normas_normas.id AS id_norma, normas_normas.nombre AS norma, normas_clausulas.clausula,  normas_clausulas.detalle, normas_clausulas.id, "
        query = query + " CASE WHEN normas_procesoclausula.id_clausula_id IS NULL THEN 0 ELSE 1 END AS flag "
        query = query + " FROM normas_clausulas "
        query = query + " LEFT JOIN normas_normas ON normas_clausulas.id_norma_id = normas_normas.id "
        query = query + " LEFT JOIN normas_procesoclausula ON normas_clausulas.id = normas_procesoclausula.id_clausula_id "

        cursor.execute(query)
        rows = dictfetchall(cursor)
        clausulas_list = list(rows)
        context={
           'normas':Normas.objects.values('id', 'nombre').all().filter(estado=1),
           'clausulas':clausulas_list,
        }
        return render(request, 'admin/clausulas.html', context)
예제 #23
0
def perPorCargo(request):
    """
    Retorna listado del personal por cargo->id
    """
    #validar si existe usuario logeado
    if 'nombreUsuario' not in request.session:

        return render(request, 'seguridad/login.html', {})

    else:

        #validar si recibe los datos por ajax
        if request.method == 'POST' and request.is_ajax():

            id_cargo = request.POST.get('id_cargo')

            personal = Personal.objects.all().filter(estado=1,
                                                     id_cargo_id=id_cargo)

            cursor = connection.cursor()
            query = " SELECT * "
            query = query + " FROM personal_personal "
            query = query + " WHERE personal_personal.id_cargo_id =%s "
            query = query + " AND personal_personal.estado=1 "
            params = [id_cargo]

            cursor.execute(query, params)
            rows = dictfetchall(cursor)

            if rows:
                data = {
                    'resultado': 'ok_select',
                    'personal_list': rows,
                }
            else:
                data = {
                    'resultado': 'no_ok',
                }

            return JsonResponse(data)
        else:

            return render(request, 'seguridad/login.html', {})
예제 #24
0
def gridAuditorias(request):
    
    #validar si existe usuario logeado
    if 'nombreUsuario' not in request.session:

        return render(request, 'seguridad/login.html', {})

    else:

       

        cursor = connection.cursor()
        query = "SELECT auditoria_auditorias.id AS id_auditoria, auditoria_auditorias.lugar,  auditoria_auditorias.fec_inicio, auditoria_auditorias.fec_fin, "
        query = query + " auditoria_auditorias.objetivo, auditoria_auditorias.id_area_id, auditoria_auditorias.id_norma_id, "
        query = query + " auditoria_auditorias.hora_inicio, auditoria_auditorias.numero_auditoria, auditoria_auditorias.id_auditor_id, "
        query = query + " auditoria_auditorias.id_proceso_id, auditoria_auditorias.numero_auditoria, "
        query = query + " normas_normas.nombre AS nombre_norma, normas_clausulas.clausula AS clausula, "
        query = query + " areas_areas.area AS nombre_area, "
        query = query + " areas_procesos.proceso AS nombre_proceso, "
        query = query + " personal_personal.nombre AS nombre_auditor "
        query = query + " FROM auditoria_auditorias "
        query = query + " LEFT JOIN normas_normas on auditoria_auditorias.id_norma_id = normas_normas.id "
        query = query + " LEFT JOIN normas_clausulas ON auditoria_auditorias.id_clausula_id = normas_clausulas.id "
        query = query + " LEFT JOIN areas_areas on auditoria_auditorias.id_area_id = areas_areas.id "
        query = query + " LEFT JOIN areas_procesos on auditoria_auditorias.id_proceso_id = areas_procesos.id "
        query = query + " LEFT JOIN personal_personal ON auditoria_auditorias.id_auditor_id = personal_personal.id"


        cursor.execute(query)
        rows = dictfetchall(cursor)
        # CONVIERTE  QuerySet  a list object
        auditores_list = list(rows) 

        if auditores_list:
            #RETORNA  
            return JsonResponse(auditores_list, safe=False)
        else:
            #RETORNA MENSAJE DE NO EXISTEN SECUENCIAS Y PERMITE CREAR
            json = {
            'resultado':'no_ok',
            'mensaje': 'no existen Procesos',
            }
            return JsonResponse(json, safe=False)
예제 #25
0
def pdfPersonal(request):

    #validar si existe usuario logeado
    if 'nombreUsuario' not in request.session:

        return render(request, 'seguridad/login.html', {})

    else:
        #Consultar las Bodegas
        cursor = connection.cursor()
        query = "SELECT personal_personal.id as id_personal, personal_personal.nombre AS nombre_persona, "
        query = query + " personal_personal.telefono, personal_personal.celular,  personal_personal.correo, personal_personal.estado, "
        query = query + " personal_cargo.nombre AS cargo, personal_areapersonal.nombre AS area, "
        #se agrega para mostrar los procesos vinculados
        query = query + " areas_procesos.proceso "
        query = query + " FROM personal_personal "
        query = query + " LEFT JOIN personal_cargo ON personal_personal.id_cargo_id = personal_cargo.id "
        #se agrega para mostrar los procesos vinculados
        query = query + " LEFT JOIN areas_area_proceso ON areas_area_proceso.personal_id = personal_personal.id "
        query = query + " LEFT JOIN areas_procesos ON areas_procesos.id = areas_area_proceso.proceso_id "
        query = query + " LEFT JOIN personal_areapersonal ON personal_areapersonal.id = personal_personal.id_areapersonal_id "
        query = query + " ORDER BY cargo "

        cursor.execute(query)
        rows = dictfetchall(cursor)
        personal_list = list(rows)

        context = {
            'personal_list': personal_list,
        }

        pdf = render_to_pdf('reportes/pdf/pdfPersonal.html', context)

        #FORZAR DOWNLOAD PDF
        if pdf:
            response = HttpResponse(pdf, content_type='application/pdf')
            filename = "Listado_de_Personal_%s.pdf" % ("000_000_001")
            content = "inline; filename='%s'" % (filename)

            content = "attachment; filename='%s'" % (filename)
            response['Content-Disposition'] = content
            return response
예제 #26
0
def estadoDocColaborador(request):
    if 'nombreUsuario' not in request.session:
        return redirect('login')
    else:
        cursor = connection.cursor()
        query = " SELECT areas_procesos.id, areas_procesos.proceso AS procedimiento "
        query = query + " FROM documentos_documento "
        query = query + " LEFT JOIN areas_procesos ON documentos_documento.procedimiento_id = areas_procesos.id "
        query = query + " WHERE documentos_documento.subido_por_id =%s "
        params =[request.session['idUsuario']]
        cursor.execute(query , params)
        rows = dictfetchall(cursor)
        list_estado_documentos = list(rows)

        context={
            'documentoForm':DocumentacionForm,
            'estado_documentos':list_estado_documentos,
            'procedimientos_list': Procesos.objects.all().filter(estado=1)
        }
        return render(request, 'colaborador/estadoDocumentacion.html', context)
예제 #27
0
def selProcCol(request):

    #validar si existe usuario logeado
    if 'nombreUsuario' not in request.session:

        return render(request, 'seguridad/login.html', {})

    else:
        #validar si recibe los datos por ajax
        if request.method == 'POST' and request.is_ajax():


            #abrimos conexion
            cursor = connection.cursor()

            #query personalizado
            query ="SELECT areas_procesos.docfile "
            query = query + "FROM procesos_colaboradores "
            query = query + " LEFT JOIN areas_procesos ON procesos_colaboradores.id_proceso_id = areas_procesos.id "
            query = query + " WHERE procesos_colaboradores.id_personal_id = '%s' "

            #parametros
            #params =str(request.session['idUsuario'])
            
            cursor.execute(query, [request.session['idUsuario']])
            #convertir query a dict
            rows = dictfetchall(cursor)
            
            # CONVIERTE  QuerySet  a list object
            procesoUrl= list(rows) 

            json = {
            'resultado':'ok_select',
            'procesoUrl': procesoUrl
            }

            return JsonResponse(json, safe=False)

        else:

            return render(request, 'seguridad/login.html', {})
예제 #28
0
def adminJefeDoc(request):
    """
    LISTADO DE DIRECTORIO POR ID USUARIO 
    Y PROCESO VINCULADO
    """
    if 'nombreUsuario' not in request.session:

        return render(request, 'seguridad/login.html', {})

    else:

        cursor = connection.cursor()
        query = " SELECT DISTINCT areas_areas.area AS proceso "
        query = query + " FROM areas_area_proceso "
        query = query + " LEFT JOIN areas_areas ON areas_area_proceso.area_id = areas_areas.id  "
        #query = query + " LEFT JOIN areas_personal ON areas_area_proceso.id = areas_personal.procedimiento_id "
        query = query + " WHERE areas_area_proceso.personal_id =%s "
        params = [request.session['idUsuario']]
        cursor.execute(query, params)

        rows_directorios = dictfetchall(cursor)

        alldirectorys = []
        import os
        for directorios in rows_directorios:
            for root, dirs, files in os.walk('media/gestionDocumental'):
                for directory in dirs:
                    if directory == directorios['proceso']:

                        element = {}
                        element['directorio'] = directory
                        element['ruta_absoluta'] = root + '/' + directory
                        alldirectorys.append(element)

        context = {
            'archivos_list': alldirectorys,
            'documentoForm': DocumentacionForm,
            'reemplazarForm': ReemplazarForm
        }
        return render(request, 'jefeArea/directorios.html', context)
예제 #29
0
def gridProDesignados(request):
        
    #validar si existe usuario logeado
    if 'nombreUsuario' not in request.session:

        return render(request, 'seguridad/login.html', {})

    else:

            id_norma = request.GET['id_norma']

            cursor = connection.cursor()
            query = " SELECT normas_procesoclausula.id, areas_areas.area, areas_procesos.proceso, "
            query = query + " normas_procesoclausula.id_proceso_id,  normas_procesoclausula.id_area_id, normas_procesoclausula.id_norma_id, "
            query = query + "  normas_clausulas.clausula, normas_clausulas.id AS id_clausula "
            query = query + " FROM normas_procesoclausula "
            query = query + " LEFT JOIN areas_areas ON normas_procesoclausula.id_area_id = areas_areas.id "
            query = query + " LEFT JOIN areas_procesos ON normas_procesoclausula.id_proceso_id = areas_procesos.id "
            query = query + " LEFT JOIN normas_clausulas ON normas_procesoclausula.id_clausula_id = normas_clausulas.id "
            query = query + " WHERE normas_procesoclausula.id_norma_id = %s "
            #query = query + " GROUP BY normas_procesoclausula.id_proceso_id, normas_procesoclausula.id_clausula_id "

            params=str(id_norma)
            cursor.execute(query, params)
            rows = dictfetchall(cursor)

            procesos_list=list(rows)

            if procesos_list:

                #RETORNA  
                return JsonResponse(procesos_list, safe=False)

            else:
                #RETORNA MENSAJE DE NO EXISTEN
                json = {
                'resultado':'no_ok',
                'mensaje': 'no existen Procesos Designados',
                }
                return JsonResponse(json, safe=False)
예제 #30
0
def gridRevisionDocumentacion(request):
    
    #validar si existe usuario logeado
    if 'nombreUsuario' not in request.session:

        return render(request, 'seguridad/login.html', {})

    else:

        id_documento = request.GET['id_documento']
        
        cursor = connection.cursor()
        query = " SELECT documentos_revision.id, documentos_revision.fec_rev_director, documentos_revision.estado_rev_director, "
        query = query + " documentos_documento.id AS id_documento, documentos_revision.observacion_rev_director, documentos_revision.fec_rev_lider, documentos_revision.estado_rev_lider, "
        query = query + " documentos_revision.observacion_rev_lider, documentos_revision.fec_rev_admin, documentos_revision.estado_rev_admin, "
        query = query + " documentos_revision.observacion_rev_admin, personal_personal.nombre AS nombre_director, lider.nombre AS nombre_lider, "
        query = query + " admin.nombre AS nombre_admin, documentos_revision.director_id, documentos_revision.lider_id, documentos_revision.admin_id "
        query = query + " FROM documentos_revision "
        query = query + " LEFT JOIN documentos_documento ON documentos_revision.documento_id = documentos_documento.id "
        query = query + " LEFT JOIN personal_personal ON documentos_revision.director_id = personal_personal.id "
        query = query + " LEFT JOIN personal_personal lider ON documentos_revision.lider_id = lider.id "
        query = query + " LEFT JOIN personal_personal admin ON documentos_revision.admin_id = admin.id "
        query = query + " WHERE documentos_revision.documento_id=%s ORDER BY id DESC "

        params = [id_documento]

        cursor.execute(query, params)
        rows = dictfetchall(cursor)
        
        if rows:
            #RETORNA  
            return JsonResponse(rows, safe=False)
        else:
            #RETORNA MENSAJE DE NO EXISTEN
            json = {
                'resultado':'no_ok',
                'mensaje': 'no existen Revisiones',
            }
            return JsonResponse(json, safe=False)