def cPanelAsignador(): if "ID" in session and session['Tipo'] == 3: objTicket = Ticket() objDep = Departamento() deps = objDep.ListarDepartamentosXEstado(1) tickets = objTicket.ListarTicketsXAsignar(int(session['Empresa'])) return render_template('asignador/cPanelAsignador.html', avatar=session["Avatar"], tickets=tickets, departamentos=deps, ID=session['ID']) else: return redirect(url_for('index'))
def verificarDepartamento(): nombre = request.form['nombre'] url = request.form['url'] objDep = Departamento() objDep.setNombre(nombre) if objDep.verificarDepartamento(url): return "Existe" else: return "Valido"
def activarDepartamento(): if request.method != 'POST': return redirect(url_for('index')) else: if "ID" in session: IdDep = int(request.form['idDep']) objDep = Departamento() objDep.setID(IdDep) if objDep.activarDepartamento(): return "Exito" return "Error"
def modificarDepartamento(ID): if "ID" in session and session['Tipo'] == 1: objDep = Departamento() try: ID = int(ID) except: return redirect(url_for('index')) objDep.setID(ID) dep = objDep.consultarID() if dep[0].Activo == 1: if request.method == "GET": if len(dep) > 0: return render_template('admin/modificarDepartamento.html', departamento=dep[0]) elif request.method == "POST": objDep.setDepartamento(ID, str(request.form['nombre']), str(request.form['desc'])) if objDep.modificarDepartamento(): return "Exito" else: return "Error" return redirect(url_for('index'))
def cPanelAdmin(): objUsuario = Usuario() objDep = Departamento() objEmp = Empresa() if "ID" in session and session['Tipo'] == 1: usuarios = objUsuario.ListarUsuariosXEstado(1) depActivos = objDep.ListarDepartamentosXEstado(1) empresas = objEmp.ListarEmpresasXEstado(1) return render_template('cPanelAdmin.html', usuarios=usuarios, avatar=session["Avatar"], departamentos=depActivos, empresas=empresas, ID=session["ID"]) else: return redirect(url_for('inicio.index'))
def modificarEmpresa(ID): if "ID" in session and session['Tipo'] in [1,5]: try: ID = int(ID) except: return redirect(url_for('inicio.index')) objEmp = Empresa() objEmpDep = EmpresaDepartamento() objDep = Departamento() objEmp.setID(int(ID)) departamentos = objDep.ListarDepartamentosXEstado(1) deps = objEmpDep.ListarDepartamentosEmp(int(ID)) depsActuales = [] for dep in deps: depsActuales.append(dep.IdDepartamento) departamentos.append(depsActuales) empresa = objEmp.consultarID() if empresa[0].Activo == 1: if request.method == "GET": if session['Tipo'] != 1 and int(ID) != int(session['Empresa']): return redirect(url_for('inicio.index')) else: return render_template('modificarEmpresa.html', empresa=empresa[0], departamentos=departamentos) elif request.method == "POST": objEmp.setEmpresa(str(request.form['nombre']),str(request.form['direccion']), str("+506"+request.form['telefono']),0) depsSeleccionados = request.form.getlist('deps[]') objEmpDep.setIDEmpresa(int(ID)) if empresa[0].IdTipoEmpresa == 1: objEmpDep.setIDEmpresa(int(ID)) for departamento in depsSeleccionados: objEmpDep.setIDDepartamento(int(departamento)) objEmpDep.agregarDepartamentosEmp() if objEmp.modificarEmpresa(): return "Exito" else: return "Error" return redirect(url_for('inicio.index'))
def buscarDepartamentos(): if request.method == "POST" and session['Tipo'] == 1: plantilla = "" objDep = Departamento() filtro = request.form['filtro'] resultado = objDep.buscarDepartamentos(filtro) if len(resultado) > 0: for r in resultado: if r.Activo == 1: plantilla += """<div class='card mb-3' style='max-width: 100%;'> <div class='row no-gutters'> <div class='col-12'> <div class='card-body'> <h5 class='card-title'>""" + r.Nombre + """</h5> <p class='card-text'>""" + r.Descripcion + """</p> <button class='btn btn-primary mt-1' style='width: 120px !important;' idDep='""" + str( r.IdDepartamento) + """'>Modificar</button> <button class='btn btn-danger mt-1' style='width: 120px !important;' idElimDep='""" + str( r.IdDepartamento) + """'>Eliminar</button> </div> </div> </div> </div>""" else: plantilla += """<div class='card mb-3' style='max-width: 100%;'> <div class='row no-gutters'> <div class='col-12'> <div class='card-body'> <h5 class='card-title'>""" + r.Nombre + """</h5> <p class='card-text'>""" + r.Descripcion + """</p> <button class='btn btn-success mt-1' style='width: 120px !important;' idDepAct='""" + str( r.IdDepartamento) + """'>Activar</button> </div> </div> </div> </div>""" else: plantilla += "<h4 class='text-center' style='text-transform:capitalize'>No hay resultados para tu busqueda</h4>" return plantilla return redirect(url_for('index'))
def agregarDepartamento(): if request.method == 'POST' and "ID" in session: objDep = Departamento() nombre = request.form['nom'] desc = request.form['descripcion'] try: objDep.setNombre(nombre) objDep.setDescripcion(desc) objDep.agregarDepartamento() return "Exito" except Exception as e: return "Error"
def cargarDepartamentos(): if request.method == "POST" and "ID" in session: plantilla = "" idFiltro = request.form["idFiltro"] objDep = Departamento() departamentos = objDep.ListarDepartamentosXEstado(idFiltro) if len(departamentos) > 0: for departamento in departamentos: if departamento.Activo == 1: plantilla += """<div class='card mb-3' style='max-width: 100%;'> <div class='row no-gutters'> <div class='col-12'> <div class='card-body'> <h5 class='card-title'>"""+departamento.Nombre+"""</h5> <p class='card-text'>"""+departamento.Descripcion+"""</p> <button class='btn btn-primary mt-1' style='width: 120px !important;' idDep='"""+str(departamento.IdDepartamento)+"""'>Modificar</button> <button class='btn btn-danger mt-1' style='width: 120px !important;' idElimDep='"""+str(departamento.IdDepartamento)+"""'>Eliminar</button> </div> </div> </div> </div>""" else: plantilla += """<div class='card mb-3' style='max-width: 100%;'> <div class='row no-gutters'> <div class='col-12'> <div class='card-body'> <h5 class='card-title'>"""+departamento.Nombre+"""</h5> <p class='card-text'>"""+departamento.Descripcion+"""</p> <button class='btn btn-success mt-1' style='width: 120px !important;' idDepAct='"""+str(departamento.IdDepartamento)+"""'>Activar</button> </div> </div> </div> </div>""" return plantilla else: return "<h4 class='text-center' style='text-transform:capitalize'>No existen empresas con este filtro</h4>" else: return redirect(url_for('inicio.index'))
def eliminarDepartamento(): if request.method != 'POST': return redirect(url_for('index')) else: if "ID" in session: IdDep = int(request.form['idDep']) objDep = Departamento() objDep.setID(IdDep) if objDep.verificarTickets(): if objDep.eliminarDepartamento(): return "Exito" else: return "Error Tickets" return "Error"
def modificarUsuario(ID): if "ID" in session and session['Tipo'] in [1,2,5] and str(ID) != str(session['ID']): objEmp = Empresa() objDep = Departamento() objEnc = Encriptador() objEmpDep = EmpresaDepartamento() objUsuario = Usuario() try: ID = int(ID) except: return redirect(url_for('inicio.index')) objUsuario.setID(ID) usuario = objUsuario.getInfoUsuario() empresas = objEmp.ListarEmpresasXEstado(1) if request.method == "GET": if len(usuario) > 0: deps = objEmpDep.ListarDepartamentosEmp(int(usuario[0].IdEmpresa)) contra = objEnc.Desencriptar(str(usuario[0].Password)) return render_template('modificarUsuario.html',usuario=usuario[0], contra=contra, empresas=empresas, departamentos=deps, usuarioActual=session['Tipo']) elif request.method == "POST": boolImg = True imagen = "" if request.files: imagen = request.files["avatar"] if not imagenPermitida(imagen.filename): boolImg = False else: print(imagen.filename) if str(usuario[0].Avatar) != "default-user.jpg": os.remove(os.path.join(app.config['IMAGE_UPLOADS'],str(usuario[0].Avatar))) ext = imagen.filename.rsplit(".",1)[1] nombreArchivo = str(uuid.uuid4().hex+"."+ext) objUsuario.setAvatar(str(nombreArchivo)) if boolImg: idEmp = request.form['empresa'].rsplit('-')[0] idDep = request.form['departamento'] if request.form['departamento'] != 'null' else 0 tipo = int(request.form['tipo']) objUsuario.setNombre(request.form['nombre']) objUsuario.setCedula(request.form['cedula']) objUsuario.setEmail(request.form['email']) url = request.form['url'] if int(session['Tipo']) == 2: if tipo in[1,2,5,6]: return "Error" elif int(session['Tipo']) == 5: if tipo in [1,2,3,4,5]: return "Error" elif int(session['Tipo']) in [3,4,6]: return "Error" objUsuario.setTipo(tipo) objUsuario.setIdDep(int(idDep)) objUsuario.setIDEmpresa(int(idEmp)) objUsuario.setID(int(request.form['id'])) if tipo == 2 and objUsuario.existeTipoUsuario(): return "Gerente Existe" elif tipo == 5 and objUsuario.existeTipoUsuario(): return "ClienteM Existe" objUsuario.setContra(objEnc.Encriptar(str(request.form['contra']))) objEmp.setID(idEmp) objDep.setID(idDep) depDestino = objDep.consultarID() if len(objDep.consultarID()) > 0 else 0 empDestino = objEmp.consultarID() if len(objEmp.consultarID()) > 0 else 0 depActivo = True empActiva = True if depDestino != 0: if depDestino[0].Activo == 0: depActivo = False if empDestino != 0: if empDestino[0].Activo == 0: empActiva = False if depActivo and empActiva: if objUsuario.modificarPerfil(): if imagen != "": imagen.save(os.path.join(app.config['IMAGE_UPLOADS'],nombreArchivo)) return "Exito" else: return "Error" else: return "inactivo" return redirect(url_for('inicio.index'))