# -*- encoding:utf-8 -*- from dbutil import sqltodict from django.shortcuts import render_to_response from django.http import HttpResponseServerError import datetime from django.contrib.auth.decorators import login_required from django.template import RequestContext from valesapp.models import CatUsuarios, CatUnidadesAdministrativas, Pedidos,\ CatTipoVale, CatDependencias, CatProveedores, CatPersonas, Vales,\ BuzonProveedores, PrivilegiosUsuarios, Modulos from django.http.response import HttpResponse, HttpResponseRedirect from django.views.decorators.csrf import ensure_csrf_cookie from django.views.decorators.csrf import csrf_exempt from pyjasperclient import JasperClient from datetime import date from django.db import connection, transaction from itertools import chain @login_required def logged_in(request): return render_to_response('index.html') def logout(request): try: request.session.flush() except KeyError: pass return render_to_response('index.html', locals()) def index(request): return render_to_response('index.html', locals()) def imprimir_pedido_view(request): params = [] sql = """ SELECT ID_PEDIDO, DESC_PEDIDO, to_char(FECHA_VIGENCIA,'dd/mm/yy') FECHA_VIGENCIA, DESC_DEPENDENCIA, to_char(a.FECHA_REGISTRO,'dd/mm/yy HH24:mi') FECHA_REGISTRO, c.DESC_UNIDAD, ' ' NUM_VALES, d.DESC_ESTATUS, e.DESC_PROVEEDOR, f.DESC_TIPO_VALE FROM PEDIDOS a LEFT JOIN CAT_PROVEEDORES e on a.id_proveedor = e.id_proveedor, CAT_DEPENDENCIAS b, CAT_UNIDADES_ADMINISTRATIVAS c, CAT_ESTATUS d, CAT_TIPO_VALE f WHERE a.id_dependencia = b.id_dependencia AND a.id_unidad_administrativa = c.id_unidad_administrativa AND a.cve_estatus='AUT' AND a.cve_estatus = d.cve_estatus AND a.ID_TIPO_VALE = f.ID_TIPO_VALE """ id_unidad = request.session.get('ID_UNIDAD') id_proveedor = request.session.get('ID_PERSONA_PROVEEDOR') if id_unidad: sql+=' '.join( [" AND a.id_unidad_administrativa = %s"] ) params.append(id_unidad) if id_proveedor: sql+=' '.join( [" AND a.id_proveedor in (select id_proveedor from CAT_PROVEEDORES a where a.id_persona = %s)"] ) params.append(id_proveedor) sql+=' '.join( [" order by id_pedido desc "] ) results = list(sqltodict( sql, *params )) return render_to_response('imprimir_pedido.html', locals()) def imprimir_vales_view(request, id_pedido="1"): id_pedido = id_pedido resultsPedido = list(sqltodict(" SELECT " + " ID_PEDIDO, DESC_PEDIDO, to_char(FECHA_VIGENCIA,'dd/mm/yy') FECHA_VIGENCIA, DESC_DEPENDENCIA, to_char(a.FECHA_REGISTRO,'dd/mm/yy HH24:mi') FECHA_REGISTRO, c.DESC_TIPO_VALE,"+ "(select count(*) from VALES where id_pedido= a.id_pedido) NUM_VALES," + " DESC_UNIDAD, DESC_PROVEEDOR, a.COMENTARIOS"+ " FROM "+ " PEDIDOS a LEFT JOIN CAT_PROVEEDORES e on a.id_proveedor = e.id_proveedor, "+ " CAT_DEPENDENCIAS b, CAT_TIPO_VALE c, CAT_UNIDADES_ADMINISTRATIVAS d "+ " WHERE a.id_dependencia = b.id_dependencia "+ " AND a.id_pedido=%s "+ " AND a.id_tipo_vale = c.id_tipo_vale "+ " AND a.id_unidad_administrativa = d.id_unidad_administrativa ", id_pedido)) results = list(sqltodict("SELECT a.ID_VALE, BENEFICIARIO FROM vales a WHERE ID_PEDIDO= %s", id_pedido )) return render_to_response('imprimir_vales.html', locals()) def autorizar_pedido_view(request): if 'admin' not in request.session: return render_to_response('index.html', locals()) results = list(sqltodict(" SELECT " + " ID_PEDIDO, DESC_PEDIDO, to_char(FECHA_VIGENCIA,'dd/mm/yy') FECHA_VIGENCIA, DESC_DEPENDENCIA, to_char(a.FECHA_REGISTRO,'dd/mm/yy HH24:mi') FECHA_REGISTRO, c.DESC_UNIDAD, "+ " (select count(*) from vales where id_pedido= a.id_pedido) NUM_VALES " + " FROM " + " PEDIDOS a, CAT_DEPENDENCIAS b, CAT_UNIDADES_ADMINISTRATIVAS c " + " WHERE a.id_dependencia = b.id_dependencia " + " AND a.id_unidad_administrativa = c.id_unidad_administrativa " + " AND a.cve_estatus='ENV' " + " ORDER BY a.ID_PEDIDO DESC ")) return render_to_response('autorizar_pedido.html', locals()) def autorizar_vales_view(request, id_pedido="1"): if 'admin' not in request.session: return render_to_response('index.html', locals()) proveedores =CatProveedores.objects.all() resultsPedido = list(sqltodict(" SELECT " + " ID_PEDIDO, DESC_PEDIDO, to_char(FECHA_VIGENCIA,'dd/mm/yy') FECHA_VIGENCIA, DESC_DEPENDENCIA, to_char(a.FECHA_REGISTRO,'dd/mm/yy') FECHA_REGISTRO, c.DESC_TIPO_VALE,"+ "(select count(*) from VALES where id_pedido= a.id_pedido) NUM_VALES," + " DESC_UNIDAD, DESC_PROVEEDOR, a.COMENTARIOS"+ " FROM "+ " PEDIDOS a LEFT JOIN CAT_PROVEEDORES e on a.id_proveedor = e.id_proveedor, "+ " CAT_DEPENDENCIAS b, CAT_TIPO_VALE c, CAT_UNIDADES_ADMINISTRATIVAS d "+ " WHERE a.id_dependencia = b.id_dependencia "+ " AND a.id_pedido=%s "+ " AND a.id_tipo_vale = c.id_tipo_vale "+ " AND a.id_unidad_administrativa = d.id_unidad_administrativa ", id_pedido)) results = list(sqltodict("SELECT a.ID_VALE, BENEFICIARIO FROM vales a WHERE ID_PEDIDO= %s", id_pedido )) return render_to_response('autorizar_vales.html', locals()) def administrar_vales_view(request, id_pedido="1"): if 'admin' not in request.session: return render_to_response('index.html', locals()) proveedores =CatProveedores.objects.all() resultsPedido = list(sqltodict(" SELECT " + " ID_PEDIDO, DESC_PEDIDO, to_char(FECHA_VIGENCIA,'dd/mm/yy') FECHA_VIGENCIA, DESC_DEPENDENCIA, to_char(a.FECHA_REGISTRO,'dd/mm/yy') FECHA_REGISTRO, c.DESC_TIPO_VALE,"+ "(select count(*) from VALES where id_pedido= a.id_pedido) NUM_VALES," + " DESC_UNIDAD, DESC_PROVEEDOR, a.COMENTARIOS"+ " FROM "+ " PEDIDOS a LEFT JOIN CAT_PROVEEDORES e on a.id_proveedor = e.id_proveedor, "+ " CAT_DEPENDENCIAS b, CAT_TIPO_VALE c, CAT_UNIDADES_ADMINISTRATIVAS d "+ " WHERE a.id_dependencia = b.id_dependencia "+ " AND a.id_pedido=%s "+ " AND a.id_tipo_vale = c.id_tipo_vale "+ " AND a.id_unidad_administrativa = d.id_unidad_administrativa ", id_pedido)) results = list(sqltodict("SELECT a.ID_VALE, BENEFICIARIO FROM vales a WHERE ID_PEDIDO= %s", id_pedido )) return render_to_response('administrar_vales.html', locals()) def seleccionar_usuarios_view(request): id_unidad = request.GET.get('ID_UNIDAD') id_pedido = request.GET.get('ID_PEDIDO') results = list(sqltodict(" SELECT " + " ID_PERSONA, NOMBRE_PERSONA, ID_UNIDAD " + " FROM " + " CAT_PERSONAS a " + " WHERE id_unidad = %s " + " AND CVE_ESTATUS = 'VIG' " + " AND NOT EXISTS (SELECT ID_USUARIO FROM VALES WHERE ID_PEDIDO=%s AND ID_USUARIO = a.ID_PERSONA) "+ " ORDER BY NOMBRE_PERSONA", id_unidad, id_pedido )) return render_to_response('seleccionar_usuarios.html', locals()) def usuarios_seleccionados_view(request): id_unidad = request.GET.get('ID_UNIDAD') id_pedido = request.GET.get('ID_PEDIDO') id_pedido = id_pedido results = list(sqltodict("SELECT ID_VALE, ID_USUARIO, BENEFICIARIO FROM VALES"+ " WHERE ID_PEDIDO = %s", id_pedido )) return render_to_response('usuarios_seleccionados.html', locals()) def lista_usuarios_view(request, id_pedido="1"): id_pedido = id_pedido results = list(sqltodict(" SELECT " + " ID_PEDIDO, DESC_PEDIDO, to_char(FECHA_VIGENCIA,'dd/mm/yy') FECHA_VIGENCIA, DESC_DEPENDENCIA, to_char(a.FECHA_REGISTRO,'dd/mm/yy') FECHA_REGISTRO, c.DESC_TIPO_VALE,"+ "(select count(*) from VALES where id_pedido= a.id_pedido) NUM_VALES," + " DESC_UNIDAD, DESC_PROVEEDOR, a.COMENTARIOS, a.ID_UNIDAD_ADMINISTRATIVA ID_UNIDAD"+ " FROM "+ " PEDIDOS a LEFT JOIN CAT_PROVEEDORES e on a.id_proveedor = e.id_proveedor, "+ " CAT_DEPENDENCIAS b, CAT_TIPO_VALE c, CAT_UNIDADES_ADMINISTRATIVAS d "+ " WHERE a.id_dependencia = b.id_dependencia "+ " AND a.id_pedido=%s "+ " AND a.id_tipo_vale = c.id_tipo_vale "+ " AND a.id_unidad_administrativa = d.id_unidad_administrativa ", id_pedido)) return render_to_response('lista_usuarios.html', locals()) @csrf_exempt def buscar_pedido_view(request): if 'admin' not in request.session: return render_to_response('index.html', locals()) unidades_admin = CatUnidadesAdministrativas.objects.all().filter(cve_estatus='VIG') id_unidad = request.POST.get('ID_UNIDAD_ADMINISTRATIVA') id_pedido = request.POST.get('ID_PEDIDO') fecha_registro = request.POST.get('FECHA_REGISTRO') fecha_vigencia = request.POST.get('FECHA_VIGENCIA') params = [ ] sql = """ SELECT ID_PEDIDO, DESC_PEDIDO, to_char(FECHA_VIGENCIA,'dd/mm/yy') FECHA_VIGENCIA, a.ID_UNIDAD_ADMINISTRATIVA, DESC_DEPENDENCIA, to_char(a.FECHA_REGISTRO,'dd/mm/yy HH24:mi') FECHA_REGISTRO, c.DESC_UNIDAD, (select count(*) from VALES where id_pedido= a.id_pedido) NUM_VALES, a.COMENTARIOS, d.DESC_ESTATUS FROM PEDIDOS a, CAT_DEPENDENCIAS b, CAT_UNIDADES_ADMINISTRATIVAS c, CAT_ESTATUS d WHERE a.id_dependencia = b.id_dependencia AND a.CVE_ESTATUS = d.CVE_ESTATUS AND a.id_unidad_administrativa = c.id_unidad_administrativa """ if id_unidad: sql+=' '.join( [" AND a.id_unidad_administrativa=%s"] ) params.append(id_unidad) if id_pedido: sql+=' '.join( [" AND a.id_pedido=%s"] ) params.append(id_pedido) if fecha_vigencia: sql+=' '.join( [" AND to_char(a.FECHA_VIGENCIA,'dd/mm/yyyy') =%s "] ) params.append(fecha_vigencia) if fecha_registro: sql+=' '.join( [" AND to_char(a.FECHA_REGISTRO,'dd/mm/yyyy') = %s "] ) params.append(fecha_registro) sql+=' '.join( [" order by a.id_pedido desc "] ) results = list(sqltodict( sql, *params )) return render_to_response('buscar_pedido.html', locals()) @csrf_exempt def buscar_pedido_consulta_view(request): unidades_admin = CatUnidadesAdministrativas.objects.all().filter(cve_estatus='VIG') id_unidad = request.POST.get('ID_UNIDAD_ADMINISTRATIVA') id_pedido = request.POST.get('ID_PEDIDO') fecha_registro = request.POST.get('FECHA_REGISTRO') fecha_vigencia = request.POST.get('FECHA_VIGENCIA') var1=2 var2=1 var3='26/11/2014' params = [ ] sql = """ SELECT ID_PEDIDO, DESC_PEDIDO, to_char(FECHA_VIGENCIA,'dd/mm/yy') FECHA_VIGENCIA, DESC_DEPENDENCIA, to_char(a.FECHA_REGISTRO,'dd/mm/yy HH24:mi') FECHA_REGISTRO, c.DESC_UNIDAD, (select count(*) from VALES where id_pedido= a.id_pedido) NUM_VALES, a.COMENTARIOS FROM PEDIDOS a, CAT_DEPENDENCIAS b, CAT_UNIDADES_ADMINISTRATIVAS c WHERE a.id_dependencia = b.id_dependencia AND a.id_unidad_administrativa = c.id_unidad_administrativa """ if id_unidad: sql+=' '.join( [" AND a.id_unidad_administrativa=%s"] ) params.append(id_unidad) if id_pedido: sql+=' '.join( [" AND a.id_pedido=%s"] ) params.append(id_pedido) if fecha_vigencia: sql+=' '.join( [" to_char(a.FECHA_VIGENCIA,'dd/mm/yyyy') = %s "] ) params.append(fecha_vigencia) if fecha_registro: sql+=' '.join( [" to_char(a.FECHA_REGISTRO,'dd/mm/yyyy') = %s"] ) params.append(fecha_registro) sql+=' '.join( [" order by a.id_pedido desc "] ) results = list(sqltodict( sql, *params )) return render_to_response('buscar_pedido.html', locals()) def buscar_pedido_solicitante_view(request): params = [] sql = """ SELECT ID_PEDIDO, DESC_PEDIDO, to_char(FECHA_VIGENCIA,'dd/mm/yy') FECHA_VIGENCIA, DESC_DEPENDENCIA, to_char(a.FECHA_REGISTRO,'dd/mm/yy HH24:mi') FECHA_REGISTRO, c.DESC_UNIDAD, (select count(*) from VALES where id_pedido= a.id_pedido) NUM_VALES, a.COMENTARIOS, d.DESC_ESTATUS FROM PEDIDOS a, CAT_DEPENDENCIAS b, CAT_UNIDADES_ADMINISTRATIVAS c, CAT_ESTATUS d WHERE a.id_dependencia = b.id_dependencia AND a.id_unidad_administrativa = c.id_unidad_administrativa AND a.cve_estatus IN ('CAN','REG', 'PEN') AND a.CVE_ESTATUS = d.CVE_ESTATUS """ id_unidad = request.session.get('ID_UNIDAD') if id_unidad: sql+=' '.join( [" AND a.id_unidad_administrativa = %s"] ) params.append(id_unidad) sql+=' '.join( [" order by a.id_pedido desc "] ) results = list(sqltodict( sql, *params )) return render_to_response('buscar_pedido_solicitante.html', locals()) def cat_areas_view(request): if 'admin' not in request.session: return render_to_response('index.html', locals()) results = CatUnidadesAdministrativas.objects.all().filter(cve_estatus='VIG') return render_to_response('cat_areas.html', locals()) @csrf_exempt def insert_cat_areas_view(request): if 'admin' not in request.session: return render_to_response('index.html', locals()) area = CatUnidadesAdministrativas() area.desc_unidad = request.POST.get('DESC_UNIDAD') area.id_dependencia = CatDependencias.objects.get(id_dependencia=1) area.cve_estatus = 'VIG' area.save() results = CatUnidadesAdministrativas.objects.all().filter(cve_estatus='VIG') return render_to_response('cat_areas.html', locals()) @csrf_exempt def delete_cat_areas_view(request): if 'admin' not in request.session: return render_to_response('index.html', locals()) id_unidad = request.POST.get('ID_UNIDAD_ADMIN') accion = "eliminar" CatUnidadesAdministrativas.objects.filter(id_unidad_administrativa=id_unidad).update(cve_estatus='NOV') return render_to_response('cat_areas.html', locals()) @csrf_exempt def insert_cat_personas_view(request): id_unidad = request.POST.get('ID_UNIDAD_ADMINISTRATIVA') nombre_persona = request.POST.get('BENEFICIARIO') cargo = request.POST.get('DESC_CARGO') cat_personas = CatPersonas() cat_personas.id_unidad = CatUnidadesAdministrativas.objects.get(id_unidad_administrativa=id_unidad) cat_personas.nombre_persona=nombre_persona cat_personas.desc_cargo = cargo cat_personas.id_organizacion = 1 cat_personas.fecha_registro = datetime.datetime.now() cat_personas.fecha_modificacion = datetime.datetime.now() cat_personas.cve_estatus = 'VIG' cat_personas.save() resultUnidad = CatUnidadesAdministrativas.objects.get(id_unidad_administrativa = id_unidad) results = list(sqltodict(" SELECT "+ "ID_PERSONA, NOMBRE_PERSONA, ID_UNIDAD, (select count(*) from CAT_USUARIOS x WHERE x.ID_PERSONA=a.ID_PERSONA) TIENE_USUARIO, (select MAX(ID_USUARIO) from CAT_USUARIOS x WHERE x.ID_PERSONA=a.ID_PERSONA) ID_USUARIO "+ " FROM CAT_PERSONAS a WHERE id_unidad = %s AND CVE_ESTATUS='VIG' " + "ORDER BY NOMBRE_PERSONA", id_unidad )) return render_to_response('cat_personas.html', locals()) @csrf_exempt def insert_cat_personas_area_view(request): id_unidad = request.POST.get('ID_UNIDAD') nombre_persona = request.POST.get('BENEFICIARIO') cargo = request.POST.get('DESC_CARGO') cat_personas = CatPersonas() cat_personas.id_unidad = CatUnidadesAdministrativas.objects.get(id_unidad_administrativa=id_unidad) cat_personas.nombre_persona=nombre_persona cat_personas.desc_cargo = cargo cat_personas.id_organizacion = 1 cat_personas.fecha_registro = datetime.datetime.now() cat_personas.fecha_modificacion = datetime.datetime.now() cat_personas.cve_estatus = 'VIG' cat_personas.save() results = list(sqltodict(" SELECT "+ "ID_PERSONA, NOMBRE_PERSONA, ID_UNIDAD, (select count(*) from CAT_USUARIOS x WHERE x.ID_PERSONA=a.ID_PERSONA) TIENE_USUARIO, (select MAX(ID_USUARIO) from CAT_USUARIOS x WHERE x.ID_PERSONA=a.ID_PERSONA) ID_USUARIO "+ " FROM CAT_PERSONAS a WHERE id_unidad = %s AND CVE_ESTATUS='VIG' " + "ORDER BY NOMBRE_PERSONA", id_unidad )) return render_to_response('cat_personas_area.html', locals()) def cat_usuarios_view(request): if 'admin' not in request.session: return render_to_response('index.html', locals()) ID_PERSONA = request.GET.get('ID_PERSONA') ID_UNIDAD = request.GET.get('ID_UNIDAD') ID_USUARIO = request.GET.get('ID_USUARIO') resultUnidad = CatUnidadesAdministrativas.objects.get(id_unidad_administrativa = ID_UNIDAD) resultPersona = CatPersonas.objects.get(id_persona = ID_PERSONA) CatPersonas.objects.all().filter(id_persona=ID_PERSONA) if ID_USUARIO: resultUsuario = CatUsuarios.objects.get(id_usuario=ID_USUARIO) return render_to_response('cat_usuarios.html', locals()) @csrf_exempt def insert_cat_usuarios_view(request): if 'admin' not in request.session: return render_to_response('index.html', locals()) id_unidad = request.POST.get('ID_UNIDAD') id_persona = request.POST.get('ID_PERSONA') usuario = request.POST.get('USUARIO') contrasena = request.POST.get('CONTRASENA') correo = request.POST.get('CORREO_ELECTRONICO') tipo_usuario = request.POST.get('ID_MODULO') cat_usuarios = CatUsuarios() cat_usuarios.id_persona = CatPersonas.objects.get(id_persona=id_persona) cat_usuarios.usuario = usuario cat_usuarios.contrasena=contrasena cat_usuarios.tipo_usuario = tipo_usuario cat_usuarios.correo_electronico = correo cat_usuarios.fecha_registro = datetime.datetime.now() cat_usuarios.fecha_modificacion = datetime.datetime.now() cat_usuarios.cve_estatus = 'VIG' cat_usuarios.save() results = CatPersonas.objects.all().filter(id_unidad=id_unidad) return render_to_response('cat_personas.html', locals()) @csrf_exempt def update_cat_usuarios_view(request): if 'admin' not in request.session: return render_to_response('index.html', locals()) id_unidad = request.POST.get('ID_UNIDAD') usuario = request.POST.get('USUARIO') contrasena = request.POST.get('CONTRASENA') id_usuario = request.POST.get('ID_USUARIO') correo = request.POST.get('CORREO_ELECTRONICO') tipo_usuario = request.POST.get('ID_MODULO') CatUsuarios.objects.filter(id_usuario=id_usuario).update(usuario=usuario, contrasena=contrasena, correo_electronico = correo, tipo_usuario = tipo_usuario ) results = CatPersonas.objects.all().filter(id_unidad=id_unidad) return render_to_response('cat_personas.html', locals()) def solicitar_vale_view(request): request.encoding = 'latin_1' admin = True unidades_admin = CatUnidadesAdministrativas.objects.all().filter(cve_estatus='VIG') tipo_vales = CatTipoVale.objects.all() return render_to_response('solicitar_vale.html', locals()) @csrf_exempt def guardar_pedido_view(request): if request.method == 'POST': desc_pedido = request.POST.get('DESC_PEDIDO') fecha_vigencia = request.POST.get('FECHA_VIGENCIA') id_unidad_administrativa = request.POST.get('ID_UNIDAD_ADMINISTRATIVA') id_tipo_vale = request.POST.get('ID_TIPO_VALE') fecha_vigencia= datetime.datetime.strptime(fecha_vigencia,"%d/%m/%Y") response_data = {} pedido = Pedidos() pedido.desc_pedido = desc_pedido pedido.fecha_vigencia = fecha_vigencia pedido.id_unidad_administrativa = CatUnidadesAdministrativas.objects.get(id_unidad_administrativa=id_unidad_administrativa) pedido.id_tipo_vale = CatTipoVale.objects.get(id_tipo_vale=id_tipo_vale) pedido.id_dependencia = CatDependencias.objects.get(id_dependencia=1) pedido.cve_estatus = 'PEN' pedido.fecha_registro = datetime.datetime.now() pedido.fecha_modificacion = datetime.datetime.now() pedido_guardado = pedido.save() response_data['result'] = 'Create post successful!' results = list(sqltodict(" SELECT " + " ID_PEDIDO, DESC_PEDIDO, to_char(FECHA_VIGENCIA,'dd/mm/yy') FECHA_VIGENCIA, DESC_DEPENDENCIA, to_char(a.FECHA_REGISTRO,'dd/mm/yy') FECHA_REGISTRO, c.DESC_TIPO_VALE,"+ "(select count(*) from VALES where id_pedido= a.id_pedido) NUM_VALES," + " DESC_UNIDAD, DESC_PROVEEDOR, a.COMENTARIOS, a.ID_UNIDAD_ADMINISTRATIVA ID_UNIDAD"+ " FROM "+ " PEDIDOS a LEFT JOIN CAT_PROVEEDORES e on a.id_proveedor = e.id_proveedor, "+ " CAT_DEPENDENCIAS b, CAT_TIPO_VALE c, CAT_UNIDADES_ADMINISTRATIVAS d "+ " WHERE a.id_dependencia = b.id_dependencia "+ " AND a.id_pedido=%s "+ " AND a.id_tipo_vale = c.id_tipo_vale "+ " AND a.id_unidad_administrativa = d.id_unidad_administrativa ", pedido.id_pedido)) return render_to_response('lista_usuarios.html', locals()) else: return HttpResponse('fallo') @csrf_exempt def insert_vales_view(request): id_pedido = request.POST.get('ID_PEDIDO') id_unidad = request.POST.get('ID_UNIDAD') id_tipo_vale = request.POST.get('ID_TIPO_VALE') accion = "agregar" usuarios = request.POST.get('USUARIOS') for usuario in usuarios.split(","): cad_sql = """ INSERT INTO VALES ( ID_PEDIDO,ID_TIPO_VALE,ID_USUARIO_CAPTURA, ID_USUARIO, BENEFICIARIO, CVE_ESTATUS, CODIGO_SOLICITANTE, CODIGO_PROVEEDOR ) ( SELECT %s, 1, 1, ID_PERSONA, NOMBRE_PERSONA, 'VIG', floor(random() * 1000), floor(random() * 1000) FROM CAT_PERSONAS WHERE ID_PERSONA=%s ) """ cursor = connection.cursor() cursor.execute(cad_sql,[id_pedido, usuario]) transaction.set_dirty() transaction.commit() results = list(sqltodict(" SELECT " + " ID_PERSONA, NOMBRE_PERSONA, ID_UNIDAD " + " FROM " + " CAT_PERSONAS a " + " WHERE id_unidad = %s " + " AND CVE_ESTATUS = 'VIG' " + " AND NOT EXISTS (SELECT ID_USUARIO FROM VALES WHERE ID_PEDIDO=%s AND ID_USUARIO = a.ID_PERSONA) "+ " ORDER BY NOMBRE_PERSONA", id_unidad, id_pedido )) return render_to_response('seleccionar_usuarios.html', locals()) @csrf_exempt def insert_vales_nvo_beneficiario_view(request): id_pedido = request.POST.get('ID_PEDIDO') id_unidad = request.POST.get('ID_UNIDAD') id_tipo_vale = request.POST.get('ID_TIPO_VALE') nombre_persona = request.POST.get('BENEFICIARIO') accion = "agregar" cat_personas = CatPersonas() cat_personas.id_unidad = CatUnidadesAdministrativas.objects.get(id_unidad_administrativa=id_unidad) cat_personas.nombre_persona=nombre_persona cat_personas.id_organizacion = 1 cat_personas.fecha_registro = datetime.datetime.now() cat_personas.fecha_modificacion = datetime.datetime.now() cat_personas.cve_estatus = 'VIG' cat_personas.save() id_persona = cat_personas.id_persona cad_sql = """ INSERT INTO VALES ( ID_PEDIDO,ID_TIPO_VALE,ID_USUARIO_CAPTURA, ID_USUARIO, BENEFICIARIO, CVE_ESTATUS, CODIGO_SOLICITANTE, CODIGO_PROVEEDOR ) VALUES (%s, 1, 1, %s, %s, 'VIG', floor(random() * 1000), floor(random() * 1000) ) """ cursor = connection.cursor() cursor.execute(cad_sql,[id_pedido, id_persona, nombre_persona]) transaction.set_dirty() transaction.commit() results = list(sqltodict(" SELECT " + " ID_PERSONA, NOMBRE_PERSONA, ID_UNIDAD " + " FROM " + " CAT_PERSONAS a " + " WHERE id_unidad = %s " + " AND CVE_ESTATUS = 'VIG' " + " AND NOT EXISTS (SELECT ID_USUARIO FROM VALES WHERE ID_PEDIDO=%s AND ID_USUARIO = a.ID_PERSONA) "+ " ORDER BY NOMBRE_PERSONA", id_unidad, id_pedido )) return render_to_response('seleccionar_usuarios.html', locals()) @csrf_exempt def delete_vales_view(request): id_pedido = request.POST.get('ID_PEDIDO') id_unidad = request.POST.get('ID_UNIDAD') usuarios = request.POST.get('USUARIOS') accion = "eliminar" for usuario in usuarios.split(","): borrar = Vales.objects.filter(pk = usuario) borrar.delete() id_pedido = id_pedido results = list(sqltodict("SELECT ID_VALE, ID_USUARIO, BENEFICIARIO FROM VALES"+ " WHERE ID_PEDIDO = %s", id_pedido )) return render_to_response('usuarios_seleccionados.html', locals()) @csrf_exempt def enviar_solicitud_view(request): id_pedido = request.POST.get('ID_PEDIDO') Pedidos.objects.filter(id_pedido=id_pedido).update(cve_estatus='ENV') return render_to_response('index.html', locals()) @csrf_exempt def autorizar_solicitud_view(request): if 'admin' not in request.session: return render_to_response('index.html', locals()) fecha_autorizacion = datetime.datetime.now() fecha_modificacion = datetime.datetime.now() id_proveedor = request.POST.get('ID_PROVEEDOR') id_pedido = request.POST.get('ID_PEDIDO') Pedidos.objects.filter(id_pedido=id_pedido).update(cve_estatus='AUT', id_proveedor = id_proveedor, fecha_autorizacion=fecha_autorizacion, fecha_modificacion=fecha_modificacion) return render_to_response('index.html', locals()) @csrf_exempt def autorizar_solicitud_prov_view(request): if 'admin' not in request.session: return render_to_response('index.html', locals()) fecha_autorizacion = datetime.datetime.now() fecha_modificacion = datetime.datetime.now() id_pedido = request.POST.get('ID_PEDIDO') proveedor = CatProveedores() proveedor.desc_proveedor = request.POST.get('DESC_PROVEEDOR') proveedor.fecha_registro = datetime.datetime.now() proveedor.fecha_modificacion= datetime.datetime.now() proveedor.save() id_proveedor = proveedor.id_proveedor Pedidos.objects.filter(id_pedido=id_pedido).update(cve_estatus='AUT', id_proveedor= id_proveedor, fecha_autorizacion=fecha_autorizacion, fecha_modificacion=fecha_modificacion) return render_to_response('index.html', locals()) @csrf_exempt def regresar_solicitud_view(request): if 'admin' not in request.session: return render_to_response('index.html', locals()) id_pedido = request.POST.get('ID_PEDIDO') Pedidos.objects.filter(id_pedido=id_pedido).update(cve_estatus='REG') return render_to_response('index.html', locals()) @csrf_exempt def cancelar_solicitud_view(request): if 'admin' not in request.session: return render_to_response('index.html', locals()) id_pedido = request.POST.get('ID_PEDIDO') Pedidos.objects.filter(id_pedido=id_pedido).update(cve_estatus='CAN') return render_to_response('index.html', locals()) @csrf_exempt def comentarios_solicitud_view(request): id_pedido = request.POST.get('ID_PEDIDO') comentarios = request.POST.get('COMENTARIOS') Pedidos.objects.filter(id_pedido=id_pedido).update(observaciones=comentarios) return render_to_response('index.html', locals()) def tablero_pedidos_view(request): admin = True proveedor = False results = list(sqltodict(" SELECT "+ " (SELECT count(*) FROM PEDIDOS a WHERE cve_estatus = 'AUT') PEDIDOS_AUTORIZADOS, "+ " (SELECT count(*) FROM PEDIDOS a WHERE cve_estatus = 'ENV') PEDIDOS_PENDIENTES, "+ " (SELECT count(*) FROM BUZON_PROVEEDORES a) SUGERENCIAS "+ " ")) return render_to_response('tablero_pedidos.html', locals()) def cat_personas_view(request, id_unidad=1): resultUnidad = CatUnidadesAdministrativas.objects.get(id_unidad_administrativa = id_unidad) results = list(sqltodict(" SELECT "+ "ID_PERSONA, NOMBRE_PERSONA, ID_UNIDAD, (select count(*) from CAT_USUARIOS x WHERE x.ID_PERSONA=a.ID_PERSONA) TIENE_USUARIO, (select MAX(ID_USUARIO) from CAT_USUARIOS x WHERE x.ID_PERSONA=a.ID_PERSONA) ID_USUARIO "+ " FROM CAT_PERSONAS a WHERE id_unidad = %s AND CVE_ESTATUS='VIG' " + "ORDER BY NOMBRE_PERSONA", id_unidad )) return render_to_response('cat_personas.html', locals()) def cat_personas_area_view(request, id_unidad=1): results = list(sqltodict(" SELECT "+ "ID_PERSONA, NOMBRE_PERSONA, ID_UNIDAD, (select count(*) from CAT_USUARIOS x WHERE x.ID_PERSONA=a.ID_PERSONA) TIENE_USUARIO, (select MAX(ID_USUARIO) from CAT_USUARIOS x WHERE x.ID_PERSONA=a.ID_PERSONA) ID_USUARIO "+ " FROM CAT_PERSONAS a WHERE id_unidad = %s AND CVE_ESTATUS='VIG' " + "ORDER BY NOMBRE_PERSONA", id_unidad )) return render_to_response('cat_personas.html', locals()) def cat_personas_area_sol_view(request, id_unidad=1): results = list(sqltodict(" SELECT "+ "ID_PERSONA, NOMBRE_PERSONA, ID_UNIDAD, (select count(*) from CAT_USUARIOS x WHERE x.ID_PERSONA=a.ID_PERSONA) TIENE_USUARIO, (select MAX(ID_USUARIO) from CAT_USUARIOS x WHERE x.ID_PERSONA=a.ID_PERSONA) ID_USUARIO "+ " FROM CAT_PERSONAS a WHERE id_unidad = %s AND CVE_ESTATUS='VIG' " + "ORDER BY NOMBRE_PERSONA", id_unidad )) return render_to_response('cat_personas_area.html', locals()) @csrf_exempt def delete_cat_personas_view(request): id_persona = request.POST.get('ID_PERSONA') id_unidad = request.POST.get('ID_UNIDAD') accion = "eliminar" borrar = CatPersonas.objects.filter(pk = id_persona) borrar.delete() return render_to_response('cat_personas_area.html', locals()) def seleccionar_contrarecibos_view(request, id_pedido="1"): results = Vales.objects.all().filter(id_pedido=id_pedido, cve_estatus_verificacion='PEN' ) return render_to_response('seleccionar_contrarecibos.html', locals()) def contrarecibos_verificados_view(request, id_pedido="1"): results = Vales.objects.all().filter(id_pedido=id_pedido, cve_estatus_verificacion='VER' ) return render_to_response('contrarecibos_verificados.html', locals()) def lista_contrarecibos_view(request, id_pedido="1"): if 'admin' not in request.session: return render_to_response('index.html', locals()) id_pedido = id_pedido results = list(sqltodict(" SELECT " + " ID_PEDIDO, DESC_PEDIDO, to_char(FECHA_VIGENCIA,'dd/mm/yy') FECHA_VIGENCIA, DESC_DEPENDENCIA, to_char(a.FECHA_REGISTRO,'dd/mm/yy') FECHA_REGISTRO, c.DESC_TIPO_VALE,"+ "(select count(*) from VALES where id_pedido= a.id_pedido) NUM_VALES," + " DESC_UNIDAD, DESC_PROVEEDOR, a.COMENTARIOS"+ " FROM "+ " PEDIDOS a LEFT JOIN CAT_PROVEEDORES e on a.id_proveedor = e.id_proveedor, "+ " CAT_DEPENDENCIAS b, CAT_TIPO_VALE c, CAT_UNIDADES_ADMINISTRATIVAS d "+ " WHERE a.id_dependencia = b.id_dependencia "+ " AND a.id_pedido=%s "+ " AND a.id_tipo_vale = c.id_tipo_vale "+ " AND a.id_unidad_administrativa = d.id_unidad_administrativa ", id_pedido)) return render_to_response('lista_contrarecibos.html', locals()) def seleccionar_comprobaciones_view(request, id_pedido="1"): results = Vales.objects.all().filter(id_pedido=id_pedido, cve_estatus_comprobacion='PEN' ) return render_to_response('seleccionar_comprobaciones.html', locals()) def vales_comprobados_view(request, id_pedido="1"): results = Vales.objects.all().filter(id_pedido=id_pedido, cve_estatus_comprobacion='COM' ) return render_to_response('vales_comprobados.html', locals()) def lista_comprobaciones_view(request, id_pedido="1"): if 'admin' not in request.session: return render_to_response('index.html', locals()) id_pedido = id_pedido results = list(sqltodict(" SELECT " + " ID_PEDIDO, DESC_PEDIDO, to_char(FECHA_VIGENCIA,'dd/mm/yy') FECHA_VIGENCIA, DESC_DEPENDENCIA, to_char(a.FECHA_REGISTRO,'dd/mm/yy') FECHA_REGISTRO, c.DESC_TIPO_VALE,"+ "(select count(*) from VALES where id_pedido= a.id_pedido) NUM_VALES," + " DESC_UNIDAD, DESC_PROVEEDOR, a.COMENTARIOS"+ " FROM "+ " PEDIDOS a LEFT JOIN CAT_PROVEEDORES e on a.id_proveedor = e.id_proveedor, "+ " CAT_DEPENDENCIAS b, CAT_TIPO_VALE c, CAT_UNIDADES_ADMINISTRATIVAS d "+ " WHERE a.id_dependencia = b.id_dependencia "+ " AND a.id_pedido=%s "+ " AND a.id_tipo_vale = c.id_tipo_vale "+ " AND a.id_unidad_administrativa = d.id_unidad_administrativa ", id_pedido)) return render_to_response('lista_comprobaciones.html', locals()) @csrf_exempt def update_comprobacion_view(request): fecha_registro = datetime.datetime.now() fecha_modificacion = datetime.datetime.now() id_pedido = request.POST.get('ID_PEDIDO') id_vale = request.POST.get('NUM_VALE') Vales.objects.filter(id_pedido=id_pedido, id_vale=id_vale).update(cve_estatus_comprobacion='COM', fecha_registro=fecha_registro, fecha_modificacion=fecha_modificacion) return render_to_response('index.html', locals()) @csrf_exempt def update_contrarecibo_view(request): fecha_registro = datetime.datetime.now() fecha_modificacion = datetime.datetime.now() id_pedido = request.POST.get('ID_PEDIDO') id_vale = request.POST.get('NUM_VALE') Vales.objects.filter(id_pedido=id_pedido, id_vale=id_vale).update(cve_estatus_verificacion='VER', fecha_registro=fecha_registro, fecha_modificacion=fecha_modificacion) return render_to_response('index.html', locals()) def consulta_buzon_view(request): results = list(sqltodict(" SELECT a.COMENTARIOS, a.ID_PROVEEDOR, a.ID_UNIDAD_ADMINISTRATIVA, b.DESC_UNIDAD, c.DESC_PROVEEDOR, " + " to_char(a.FECHA_REGISTRO,'dd/mm/yy HH24:mi') FECHA_REGISTRO " + " FROM BUZON_PROVEEDORES a LEFT JOIN CAT_UNIDADES_ADMINISTRATIVAS b on a.id_unidad_administrativa = b.id_unidad_administrativa, CAT_PROVEEDORES c " + " where a.id_proveedor = c.id_proveedor ORDER BY id_buzon DESC")) return render_to_response('consulta_buzon.html', locals()) def sugerencias_buzon_view(request): proveedores =CatProveedores.objects.all() return render_to_response('sugerencias_buzon.html', locals()) @csrf_exempt def insert_buzon_view(request): id_unidad = request.POST.get('ID_UNIDAD_ADMINISTRATIVA') id_proveedor = request.POST.get('ID_PROVEEDOR') buzon = BuzonProveedores() buzon.comentarios = request.POST.get('COMENTARIOS') buzon.id_unidad_administrativa = CatUnidadesAdministrativas.objects.get(id_unidad_administrativa=1) buzon.id_proveedor = CatProveedores.objects.get(id_proveedor=id_proveedor) buzon.fecha_registro = datetime.datetime.now() buzon.fecha_modificacion = datetime.datetime.now() buzon.cve_estatus = 'VIG' buzon.save() return render_to_response('cat_areas.html', locals()) def comprobaciones_view(request): if 'admin' not in request.session: return render_to_response('index.html', locals()) results = list(sqltodict(" SELECT " + " ID_PEDIDO, DESC_PEDIDO, to_char(FECHA_VIGENCIA,'dd/mm/yy') FECHA_VIGENCIA, DESC_DEPENDENCIA, to_char(a.FECHA_REGISTRO,'dd/mm/yy HH24:mi') FECHA_REGISTRO, c.DESC_UNIDAD, "+ " (select count(*) from VALES where id_pedido= a.id_pedido) NUM_VALES " + " FROM " + " PEDIDOS a, CAT_DEPENDENCIAS b, CAT_UNIDADES_ADMINISTRATIVAS c " + " WHERE a.id_dependencia = b.id_dependencia " + " AND a.id_unidad_administrativa = c.id_unidad_administrativa " + " AND a.cve_estatus='AUT' " + " ORDER BY a.ID_PEDIDO DESC ")) return render_to_response('comprobaciones.html', locals()) def contrarecibos_view(request): if 'admin' not in request.session: return render_to_response('index.html', locals()) results = list(sqltodict(" SELECT " + " ID_PEDIDO, DESC_PEDIDO, to_char(FECHA_VIGENCIA,'dd/mm/yy') FECHA_VIGENCIA, DESC_DEPENDENCIA, to_char(a.FECHA_REGISTRO,'dd/mm/yy HH24:mi') FECHA_REGISTRO, c.DESC_UNIDAD, "+ " (select count(*) from VALES where id_pedido= a.id_pedido) NUM_VALES " + " FROM " + " PEDIDOS a, CAT_DEPENDENCIAS b, CAT_UNIDADES_ADMINISTRATIVAS c " + " WHERE a.id_dependencia = b.id_dependencia " + " AND a.id_unidad_administrativa = c.id_unidad_administrativa " + " AND a.cve_estatus='AUT' " + " ORDER BY a.ID_PEDIDO DESC ")) return render_to_response('contrarecibos.html', locals()) @csrf_exempt def login_view(request): request.session.flush() username = request.POST.get('USUARIO', '') password = request.POST.get('CONTRASENA', '') admin = False solicitante = False proveedor = False results = CatUsuarios.objects.filter(usuario=username, contrasena=password)[0] request.session['id_usuario'] = results.id_usuario if results: if results.tipo_usuario == '1': admin = True request.session['admin'] = 'True' elif results.tipo_usuario == '2': solicitante = True request.session['solicitante'] = 'True' id_persona = results.id_persona_id persona = CatPersonas.objects.filter(id_persona=id_persona)[0] resultUnidad = CatUnidadesAdministrativas.objects.get(id_unidad_administrativa = persona.id_unidad_id) request.session['DESC_UNIDAD'] = resultUnidad.desc_unidad request.session['ID_UNIDAD'] = resultUnidad.id_unidad_administrativa elif results.tipo_usuario == '3': proveedor = True request.session['proveedor'] = 'True' request.session['ID_PERSONA_PROVEEDOR'] = results.id_persona_id return render_to_response('index.html', locals()) else: return HttpResponseServerError("Usuario invalido") def exportar_pedidos_view(request): if 'admin' not in request.session: return render_to_response('index.html', locals()) id_pedido = 1 results = list(sqltodict(" SELECT " + " ID_PEDIDO, DESC_PEDIDO, to_char(FECHA_VIGENCIA,'dd/mm/yy') FECHA_VIGENCIA, DESC_DEPENDENCIA, to_char(a.FECHA_REGISTRO,'dd/mm/yy HH24:mi') FECHA_REGISTRO, c.DESC_TIPO_VALE,"+ "(select count(*) from VALES where id_pedido= a.id_pedido) NUM_VALES," + "(select count(*) from VALES where id_pedido= a.id_pedido and cve_estatus_verificacion='VER') NUM_VALES_VER," + "(select count(*) from VALES where id_pedido= a.id_pedido and cve_estatus_comprobacion='VER') NUM_VALES_COM," + " DESC_UNIDAD, DESC_PROVEEDOR, a.COMENTARIOS"+ " FROM "+ " PEDIDOS a LEFT JOIN CAT_PROVEEDORES e on a.id_proveedor = e.id_proveedor, "+ " CAT_DEPENDENCIAS b, CAT_TIPO_VALE c, CAT_UNIDADES_ADMINISTRATIVAS d "+ " WHERE a.id_dependencia = b.id_dependencia "+ " AND a.id_tipo_vale = c.id_tipo_vale "+ " AND a.id_unidad_administrativa = d.id_unidad_administrativa ")) response2 = render_to_response('exportar_pedidos_excel.html', locals()) response2['Content-Disposition'] = 'inline; filename=reporte_general.xls' response2['Content-Type'] = 'application/vnd.ms-excel; charset=utf8' return response2 def generacion_vales_view(request, id_pedido=0): response = HttpResponse(content_type='application/pdf') response['Content-Disposition'] = 'inline; filename=vales.pdf' url = 'http://localhost:8081/jasperserver/services/repository?wsdl' jc = JasperClient() jc.login(url, 'jasperadmin', 'jasperadmin') report = jc.run('/reports/vales',"PDF", {'ID_PEDIDO':id_pedido}) response.write(report[1]['data']) return response def generacion_relacion_vales_view(request, id_pedido=0): response = HttpResponse(content_type='application/pdf') response['Content-Disposition'] = 'inline; filename=relacion_vales.pdf' url = 'http://localhost:8081/jasperserver/services/repository?wsdl' jc = JasperClient() jc.login(url, 'jasperadmin', 'jasperadmin') report = jc.run('/reports/relacion_vales',"PDF", {'ID_PEDIDO':id_pedido}) response.write(report[1]['data']) return response def generacion_vales_proveedor_view(request, id_pedido=0): response = HttpResponse(content_type='application/pdf') response['Content-Disposition'] = 'inline; filename=relacion_vales_proveedor.pdf' url = 'http://localhost:8081/jasperserver/services/repository?wsdl' jc = JasperClient() jc.login(url, 'jasperadmin', 'jasperadmin') report = jc.run('/reports/vales_proveedor',"PDF", {'ID_PEDIDO':id_pedido}) response.write(report[1]['data']) return response