#encoding:utf-8 from django.db.models import * from django.template.response import * from django.shortcuts import get_object_or_404, render, render_to_response #from django.contrib import messages from django.http import HttpResponseRedirect, HttpResponse from principal.models import Usuario, CatPersona, Dependientes, CatHospital, CatEspecialidad, CatAlbergue, CatEdoCivil, CatPais, CatEstado, CatMunicipio, CatPoblacion, CatEscolaridad, CatOcupacion, CatVivienda, CatTipoFamilia, CatParentesco from control.models import CatTipoExcento, regUsoHabitacion, catConfig, regRacionAlimentos, regActividades from django.contrib.auth.models import User from django.utils import timezone from datetime import datetime from datetime import timedelta from django.contrib.auth.decorators import * from control.forms import * import locale # Parametros Fijos Cuota = catConfig.objects.filter(dato = 'CUOTA') # Catalogos Parentescos = CatParentesco.objects.all().order_by ('descripcion') Hospitales = CatHospital.objects.all().order_by ('nombre') Especialidades = CatEspecialidad.objects.all().order_by ('especialidad') Excentos = CatTipoExcento.objects.all().order_by ('idtipoExcento') EdosCivil = CatEdoCivil.objects.all().order_by ('descripcion') Paises = CatPais.objects.all().order_by ('nombre') Estados = CatEstado.objects.all().order_by ('nombre') Municipios = CatMunicipio.objects.all().order_by ('nombre') Poblaciones = CatPoblacion.objects.all().order_by ('descripcion') Escolaridades = CatEscolaridad.objects.all().order_by ('descripcion') Ocupaciones = CatOcupacion.objects.all().order_by ('descripcion') Viviendas = CatVivienda.objects.all().order_by ('descripcion') TiposFamilia = CatTipoFamilia.objects.all().order_by ('descripcion') locale.setlocale(locale.LC_ALL, '') def findEstidades(request, pais): regCant = CatPersona.objects.all().count() Estados = CatEstado.objects.filter(Pais_id = pais).order_by ('nombre') context = {'nombre':request.POST['nombre'],'apPaterno':request.POST['apPaterno'],'apMaterno':request.POST['apMaterno'],'edad':request.POST['edad'],'poblacion':request.POST['poblacion'],'pais':request.POST['pais'],\ 'ocupacion':request.POST['ocupacion'],'estado':request.POST['estado'],'vivienda':request.POST['vivienda'],'escolaridad':request.POST['escolaridad'],'tipoFamilia':request.POST['tipoFamilia'],\ 'edoCivil':request.POST['edoCivil'],'telefono':request.POST['telefono'],'observaciones':request.POST['observaciones'],'fechaNac':request.POST['fechaNac'],\ 'cant':regCant,'EdosCivil':EdosCivil,'Paises':Paises,'Estados':Estados,'Poblaciones':Poblaciones,'Escolaridades':Escolaridades,'Ocupaciones':Ocupaciones,'Viviendas':Viviendas,'TiposFamilia':TiposFamilia} return render(request, 'frm_ctrolExpediente.html', context) def findMunicipios(request, estado): regCant = CatPersona.objects.all().count() Estados = CatEstado.objects.filter(Pais_id = request.POST['pais']).order_by ('nombre') Municipios = CatMunicipio.objects.filter(Pais_id = request.POST['pais'], Estado_id = estado).order_by ('nombre') context = {'Municipios':Municipios,'nombre':request.POST['nombre'],'apPaterno':request.POST['apPaterno'],'apMaterno':request.POST['apMaterno'],'edad':request.POST['edad'],'poblacion':request.POST['poblacion'],'pais':request.POST['pais'],\ 'ocupacion':request.POST['ocupacion'],'estado':request.POST['estado'],'vivienda':request.POST['vivienda'],'escolaridad':request.POST['escolaridad'],'tipoFamilia':request.POST['tipoFamilia'],\ 'edoCivil':request.POST['edoCivil'],'telefono':request.POST['telefono'],'observaciones':request.POST['observaciones'],'fechaNac':request.POST['fechaNac'],\ 'cant':regCant,'EdosCivil':EdosCivil,'Paises':Paises,'Estados':Estados,'Poblaciones':Poblaciones,'Escolaridades':Escolaridades,'Ocupaciones':Ocupaciones,'Viviendas':Viviendas,'TiposFamilia':TiposFamilia} return render(request, 'frm_ctrolExpediente.html', context) def index(request): Identidades = CatAlbergue.objects.all() context = {'Identidades': Identidades} return render(request, 'inicio2.html', context) def portada(request): return render(request, 'portada.html') def mod_regUsohabitacion(request): Fecha = datetime.now().strftime("%Y-%m-%d") Folios = regUsoHabitacion.objects.filter(fechaHora = Fecha).order_by ('folio') folioActual = catConfig.objects.filter(dato = 'FOLIO') Pagados = regUsoHabitacion.objects.filter(fechaHora__startswith = Fecha).count() noPagados = regUsoHabitacion.objects.filter(fechaHora__startswith = Fecha, excentoPago = True).count() context = {'Pagados':Pagados,'noPagados':noPagados,'Fecha':Fecha,'Cuota':Cuota[0].valor,'folio':int(folioActual[0].valor)+1,'Folios':Folios, 'Hospitales': Hospitales, 'Especialidades': Especialidades, 'Excentos': Excentos, 'status':'NUEVO','proceso':'active','principal':'closed','admin':'closed','reporte1':'closed'} return render(request, 'form_registro.html', context) def guardar_UsoHabitacion(request,id): context='' if request.method == 'POST': regCant = regUsoHabitacion.objects.all().count() Fecha = request.POST['fechaIngreso'] if id == "0" : # Nuevo registro try: folioActual = catConfig.objects.filter(dato = 'FOLIO') albergue = CatAlbergue.objects.get(idAlbergue = 1) albergado = CatPersona.objects.get(idPersona = request.POST['albergado']) pariente = Dependientes.objects.get(idDependiente = request.POST['paciente']) hospital = CatHospital.objects.get(idHospital = request.POST['hospital']) sala = CatEspecialidad.objects.get(idEspecialidad = request.POST['sala']) excento = CatTipoExcento.objects.get(idtipoExcento = request.POST['descExcento']) idUser = User.objects.get(id = request.user.id) opExcento = False if request.POST['excento'] == 'True' : opExcento = True if regUsoHabitacion.objects.all().count() != 0 : sigId = regUsoHabitacion.objects.latest('idUsoHabitacion').idUsoHabitacion + 1 else : sigId = 1 add = regUsoHabitacion( idUsoHabitacion = sigId, idUser = idUser, folio = int(folioActual[0].valor)+1, diagnostico = request.POST['diagnostico'], #fechaHora = request.POST['fechaIngreso'] + " " + datetime.now().strftime("%H:%M:%S"), fechaHora = request.POST['fechaIngreso'], observaciones = request.POST['observaciones'], excentoPago = opExcento, importe = request.POST['importe'], idAlbergue = albergue, albergado = albergado, hospitalizado = pariente, hospital = hospital, especialidad = sala, tipoExcento = excento, hora = datetime.now().strftime("%H:%M:%S") ) add.save() c = catConfig.objects.get(dato = 'FOLIO') c.valor = str(int(folioActual[0].valor)+1) c.save() regCant = regUsoHabitacion.objects.all().count() folioActualNuevo = catConfig.objects.filter(dato='FOLIO') folioActual = folioActualNuevo Folios = regUsoHabitacion.objects.filter(fechaHora__startswith = request.POST['fechaIngreso']).order_by ('folio') Pagados = regUsoHabitacion.objects.filter(fechaHora__startswith = request.POST['fechaIngreso']).count() noPagados = regUsoHabitacion.objects.filter(fechaHora__startswith = request.POST['fechaIngreso'], excentoPago = True).count() context = {'Pagados':Pagados,'noPagados':noPagados,'Hospitales':Hospitales,'Especialidades':Especialidades,'Excentos':Excentos,'Fecha':Fecha,'Cuota':Cuota[0].valor,'Folios':Folios,'cant':regCant, 'folio':int(folioActual[0].valor)+1,'proceso':'active','principal':'closed','admin':'closed','Grabo':'1'} except Exception, e: Folios = regUsoHabitacion.objects.filter(fechaHora__startswith = request.POST['fechaIngreso']).order_by ('folio') Pagados = regUsoHabitacion.objects.filter(fechaHora__startswith = request.POST['fechaIngreso']).count() noPagados = regUsoHabitacion.objects.filter(fechaHora__startswith = request.POST['fechaIngreso'], excentoPago = True).count() context = {'Pagados':Pagados,'noPagados':noPagados,'Hospitales':Hospitales,'Especialidades':Especialidades,'Excentos':Excentos,'Fecha':Fecha,'Cuota':Cuota[0].valor,'Folios':Folios,'cant':regCant, 'folio':int(folioActual[0].valor)+1,'proceso':'active','principal':'closed','admin':'closed','Grabo':'0'} else : regCant = "Edicion-" return render(request, 'form_registro.html', context) def imprimirFolio(request, folio): regUsoHab = regUsoHabitacion.objects.filter(folio = folio) Persona = CatPersona.objects.filter(idPersona = regUsoHab[0].albergado_id) edoCivil = CatEdoCivil.objects.filter(idEdoCivil = Persona[0].EdoCivil_id) municipio = CatMunicipio.objects.filter(idMunicipio = Persona[0].Municipio_id) estado = CatEstado.objects.filter(idEstado = Persona[0].Estado_id) pais = CatPais.objects.filter(idPais = Persona[0].Pais_id) procedencia = municipio[0].nombre + ", " + estado[0].nombre + ", " + pais[0].nombre usuario = User.objects.filter(id = regUsoHab[0].idUser_id) hoy = datetime.now() sala = CatEspecialidad.objects.filter(idEspecialidad = regUsoHab[0].especialidad_id) context = {'Persona': Persona[0],'regUsoHab':regUsoHab[0],'edoCivil': edoCivil[0],'Procedencia':procedencia,'diaImpresion':hoy,'user':usuario[0],'Sala': sala[0]} return render(request, 'imprimir_folio.html', context) def findPersonas(request, template): Folios = regUsoHabitacion.objects.filter(fechaHora__startswith = request.POST['fechaIngreso']).order_by ('folio') Pagados = regUsoHabitacion.objects.filter(fechaHora__startswith = request.POST['fechaIngreso']).count() noPagados = regUsoHabitacion.objects.filter(fechaHora__startswith = request.POST['fechaIngreso'], excentoPago = True).count() folioActual = catConfig.objects.filter(dato = 'FOLIO') Personas = CatPersona.objects.filter(nombreLargo__startswith = request.POST['responsable']).order_by ('nombreLargo') context = {'Fecha':request.POST['fechaIngreso'],'Pagados':Pagados,'noPagados':noPagados,'Parentescos':Parentescos,'Cuota':Cuota[0].valor,'Personas': Personas,'folio':int(folioActual[0].valor)+1,'Folios':Folios, 'Hospitales': Hospitales, 'Especialidades': Especialidades, 'Excentos': Excentos, 'status':'NUEVO','proceso':'active','principal':'closed','admin':'closed'} return render(request, template + '.html', context) def findParientes(request, idPersona): Folios = regUsoHabitacion.objects.filter(fechaHora__startswith = request.POST['fechaIngreso']).order_by ('folio') Pagados = regUsoHabitacion.objects.filter(fechaHora__startswith = request.POST['fechaIngreso']).count() noPagados = regUsoHabitacion.objects.filter(fechaHora__startswith = request.POST['fechaIngreso'], excentoPago = True).count() folioActual = catConfig.objects.filter(dato = 'FOLIO') albergado = CatPersona.objects.filter(idPersona = idPersona) Pacientes = Dependientes.objects.filter(Dependo_de_id = idPersona) personaFolioHoy = datetime(2000,1,1) if regUsoHabitacion.objects.all().count() != 0 : ultimoDiaFolios = regUsoHabitacion.objects.latest('fechaHora').fechaHora if ultimoDiaFolios : pFecha = ultimoDiaFolios.strftime("%Y-%m-%d") personaUltimoFolio = regUsoHabitacion.objects.filter(albergado_id = idPersona, fechaHora__startswith = pFecha) if personaUltimoFolio : personaFolioHoy = personaUltimoFolio[0].fechaHora.strftime("%Y-%m-%d") context = {'Fecha':request.POST['fechaIngreso'],'Pagados':Pagados,'noPagados':noPagados,'personaFolioHoy':personaFolioHoy,'albergado':albergado[0],'Parentescos':Parentescos,'Cuota':Cuota[0].valor,'folio':int(folioActual[0].valor)+1,'Folios':Folios, 'Pacientes': Pacientes, 'Hospitales': Hospitales, 'Especialidades': Especialidades, 'Excentos': Excentos, 'status':'NUEVO','proceso':'active','principal':'closed','admin':'closed'} return render(request, 'form_registro.html', context) def findParientes2(request, idPersona,idmiPaciente): Folios = regUsoHabitacion.objects.filter(fechaHora__startswith = request.POST['fechaIngreso']).order_by ('folio') Pagados = regUsoHabitacion.objects.filter(fechaHora__startswith = request.POST['fechaIngreso']).count() noPagados = regUsoHabitacion.objects.filter(fechaHora__startswith = request.POST['fechaIngreso'], excentoPago = True).count() folioActual = catConfig.objects.filter(dato = 'FOLIO') albergado = CatPersona.objects.filter(idPersona = idPersona) Pacientes = Dependientes.objects.filter(Dependo_de_id = idPersona) personaFolioHoy = datetime(2000,1,1) miPaciente = idmiPaciente consultaRegUsoHabitacion = regUsoHabitacion.objects.filter(hospitalizado__pk=idmiPaciente).order_by('fechaHora') try: registroRegUsoHabitacion = consultaRegUsoHabitacion[0] ulthospital = registroRegUsoHabitacion.hospital.pk ultespecialidad = registroRegUsoHabitacion.especialidad.pk ultdiagnostico = registroRegUsoHabitacion.diagnostico except Exception, e: registroRegUsoHabitacion = False ulthospital = False ultespecialidad = False ultdiagnostico = False if regUsoHabitacion.objects.all().count() != 0 : ultimoDiaFolios = regUsoHabitacion.objects.latest('fechaHora').fechaHora if ultimoDiaFolios : pFecha = ultimoDiaFolios.strftime("%Y-%m-%d") personaUltimoFolio = regUsoHabitacion.objects.filter(albergado_id = idPersona, fechaHora__startswith = pFecha) if personaUltimoFolio : personaFolioHoy = personaUltimoFolio[0].fechaHora.strftime("%Y-%m-%d") context = {'ulthospital':ulthospital,'ultespecialidad':ultespecialidad,'ultdiagnostico':ultdiagnostico,'miPaciente': int(miPaciente),'Fecha':request.POST['fechaIngreso'],'Pagados':Pagados,'noPagados':noPagados,'personaFolioHoy':personaFolioHoy,'albergado':albergado[0],'Parentescos':Parentescos,'Cuota':Cuota[0].valor,'folio':int(folioActual[0].valor)+1,'Folios':Folios, 'Pacientes': Pacientes, 'Hospitales': Hospitales, 'Especialidades': Especialidades, 'Excentos': Excentos, 'status':'NUEVO','proceso':'active','principal':'closed','admin':'closed'} return render(request, 'form_registro.html', context) def ctrolExpediente(request, id): regCant = CatPersona.objects.all().count() context = {'cant':regCant,'EdosCivil':EdosCivil,'Paises':Paises,'Poblaciones':Poblaciones,'Escolaridades':Escolaridades,'Ocupaciones':Ocupaciones,'Viviendas':Viviendas,'TiposFamilia':TiposFamilia} return render(request, 'frm_ctrolExpediente.html', context) def guardaExpediente(request, id): context='' if request.method == 'POST': regCant = CatPersona.objects.all().count() if id == "0" : # Nuevo registro #Verifica primero que no repita persona personaesta = CatPersona.objects.filter(nombreLargo = request.POST['nombre']+" "+request.POST['apPaterno']+" "+request.POST['apMaterno']) if personaesta : context = {'Grabo':'2','cant':regCant,'EdosCivil':EdosCivil,'Paises':Paises,'Estados':Estados,'Municipios':Municipios,'Poblaciones':Poblaciones,'Escolaridades':Escolaridades,'Ocupaciones':Ocupaciones,'Viviendas':Viviendas,'TiposFamilia':TiposFamilia} else : try: idUser = User.objects.get(id = request.user.id) EdoCivil = CatEdoCivil.objects.get(idEdoCivil = request.POST['edoCivil']) Pais = CatPais.objects.get(idPais = request.POST['pais']) Estado = CatEstado.objects.get(idEstado = request.POST['estado']) Municipio = CatMunicipio.objects.get(idMunicipio = request.POST['municipio']) Poblacion = CatPoblacion.objects.get(idPoblacion = request.POST['poblacion']) Escolaridad = CatEscolaridad.objects.get(idEscolaridad = request.POST['escolaridad']) Ocupacion = CatOcupacion.objects.get(idOcupacion = request.POST['ocupacion']) Vivienda = CatVivienda.objects.get(idVivienda = request.POST['vivienda']) TipoFamilia = CatTipoFamilia.objects.get(idTipoFamilia = request.POST['tipoFamilia']) if request.POST['fechaNac'] == '' : fechaNac = None else : fechaNac = request.POST['fechaNac'] if CatPersona.objects.all().count() != 0 : sigId = CatPersona.objects.latest('idPersona').idPersona + 1 else : sigId = 1 add = CatPersona( idPersona = sigId, idUser = idUser, Nombre = request.POST['nombre'], ApPaterno = request.POST['apPaterno'], ApMaterno = request.POST['apMaterno'], nombreLargo = request.POST['nombre']+" "+request.POST['apPaterno']+" "+request.POST['apMaterno'], FechaNacimiento = fechaNac, #FechaNacimiento ='1989-10-18', FechaIngreso = datetime.now(), Edad = request.POST['edad'], Sexo = request.POST['sexo'], EdoCivil_id = EdoCivil.idEdoCivil, Pais_id = Pais.idPais, Estado_id = Estado.idEstado, Municipio_id = Municipio.idMunicipio, Poblacion_id = Poblacion.idPoblacion, Escolaridad_id = Escolaridad.idEscolaridad, Ocupacion_id = Ocupacion.idOcupacion, Vivienda_id = Vivienda.idVivienda, TipoFamilia_id = TipoFamilia.idTipoFamilia, Activo = True, TelContacto = request.POST['telefono'], observaciones = request.POST['observaciones'], refIdViejo = 0 ) add.save() regCant = CatPersona.objects.all().count() context = {'Grabo':'1','cant':regCant,'EdosCivil':EdosCivil,'Paises':Paises,'Poblaciones':Poblaciones,'Escolaridades':Escolaridades,'Ocupaciones':Ocupaciones,'Viviendas':Viviendas,'TiposFamilia':TiposFamilia} except Exception, e: #context = {'Grabo':'0','cant':regCant,'EdosCivil':EdosCivil,'Paises':Paises,'Estados':Estados,'Municipios':Municipios,'Poblaciones':Poblaciones,'Escolaridades':Escolaridades,'Ocupaciones':Ocupaciones,'Viviendas':Viviendas,'TiposFamilia':TiposFamilia} context = {'Grabo':'0','nombre':request.POST['nombre'],'apPaterno':request.POST['apPaterno'],'apMaterno':request.POST['apMaterno'],'edad':request.POST['edad'],'poblacion':request.POST['poblacion'],\ 'ocupacion':request.POST['ocupacion'],'vivienda':request.POST['vivienda'],'escolaridad':request.POST['escolaridad'],'tipoFamilia':request.POST['tipoFamilia'],\ 'edoCivil':request.POST['edoCivil'],'telefono':request.POST['telefono'],'observaciones':request.POST['observaciones'],'fechaNac':request.POST['fechaNac'],\ 'cant':regCant,'EdosCivil':EdosCivil,'Paises':Paises,'Poblaciones':Poblaciones,'Escolaridades':Escolaridades,'Ocupaciones':Ocupaciones,'Viviendas':Viviendas,'TiposFamilia':TiposFamilia} else : regCant = "Edicion -" regCant = CatPersona.objects.all().count() return render(request, 'frm_ctrolExpediente.html', context) def ctrolPariente(request, id): if id != '0' : regCant = Dependientes.objects.filter(Dependo_de = id).count() albergado = CatPersona.objects.filter(idPersona = id) context = {'fechaPadre':request.POST['fechaIngreso'],'cant':regCant,'Parentescos':Parentescos,'template':'form_registro','albergado':albergado[0],'Proceso':'TRANS'} return render(request, 'frm_ctrolParienteEnfermo.html', context) else : context = {'Parentescos':Parentescos,'template':'frm_ctrolParienteEnfermo','Proceso':'NUEVO'} return render(request, 'frm_ctrolParienteEnfermo.html', context) def guardaPariente(request, id): context ='' template = 'frm_ctrolParienteEnfermo' if request.method == 'POST': albergado = CatPersona.objects.filter(idPersona = request.POST['albergado']) if id == '0' and request.POST['albergado'] != '' : # Nuevo registro try: idUser = User.objects.get(id = request.user.id) Persona = CatPersona.objects.get(idPersona = request.POST['albergado']) Parentesco = CatParentesco.objects.get(idParentesco = request.POST['parentesco']) if request.POST['fechaNac'] == '' : fechaNac = None else : fechaNac = request.POST['fechaNac'] if Dependientes.objects.all().count() != 0 : sigId = Dependientes.objects.latest('idDependiente').idDependiente + 1 else : sigId = 1 add = Dependientes( idDependiente = sigId, idUser = idUser, Dependo_de_id = Persona.idPersona, Nombre = request.POST['nombre'], ApPaterno = request.POST['apPaterno'], ApMaterno = request.POST['apMaterno'], nombreLargo = request.POST['nombre']+" "+request.POST['apPaterno']+" "+request.POST['apMaterno'], Parentesco_id = Parentesco.idParentesco, FechaNacimiento = fechaNac, Edad = request.POST['edad'], Sexo = request.POST['sexo'] ) add.save() regCant = Dependientes.objects.filter(Dependo_de = request.POST['albergado']).count() template = request.POST['template'] if request.POST['Proceso'] == 'TRANS' : Folios = regUsoHabitacion.objects.filter(fechaHora__startswith = request.POST['fechaPadre']).order_by ('folio') Pagados = regUsoHabitacion.objects.filter(fechaHora__startswith = request.POST['fechaPadre']).count() noPagados = regUsoHabitacion.objects.filter(fechaHora__startswith = request.POST['fechaPadre'], excentoPago = True).count() folioActual = catConfig.objects.filter(dato = 'FOLIO') albergado = CatPersona.objects.filter(idPersona = request.POST['albergado']) Pacientes = Dependientes.objects.filter(Dependo_de_id = request.POST['albergado']) idmiPaciente = sigId context = {'Folios':Folios,'Fecha':request.POST['fechaPadre'],'Pagados':Pagados,'noPagados':noPagados,'miPaciente':idmiPaciente,'albergado':albergado[0],'Parentescos':Parentescos,'Cuota':Cuota[0].valor,'folio':int(folioActual[0].valor)+1, 'Pacientes': Pacientes, 'Hospitales': Hospitales, 'Especialidades': Especialidades, 'Excentos': Excentos, 'status':'NUEVO','proceso':'active','principal':'closed','admin':'closed'} #context = {'cant':regCant, 'Grabo':'1','Proceso':request.POST['Proceso'],'albergado':albergado[0]} else : context = {'cant':regCant, 'Grabo':'1','Proceso':request.POST['Proceso'],'albergado':albergado[0]} except Exception, e: regCant = Dependientes.objects.filter(Dependo_de = request.POST['albergado']).count() template = 'frm_ctrolParienteEnfermo' context = {'cant':regCant,'Parentescos':Parentescos,'template':request.POST['template'],'albergado':albergado[0],'Proceso':request.POST['Proceso'],'Grabo':'0'} else : regCant = "Edicion -" return render(request, template + '.html', context) def regAlimentosGral(request): fecha = datetime.now().strftime("%Y-%m-%d") anio = datetime.now().strftime("%Y") mes = datetime.now().strftime("%m") registros = regRacionAlimentos.objects.filter(fecha__year = anio, fecha__month = mes).order_by ('fecha') context = {'fecha':fecha,'registros':registros,'proceso':'active','principal':'closed','admin':'closed'} return render(request, 'frm_regAlimentosGral.html', context) def guardaRegAlimentosGral(request, id): context ='' if request.method == 'POST': if id == '0' : # Nuevo registro try: albergue = CatAlbergue.objects.get(idAlbergue = 1) idUser = User.objects.get(id = request.user.id) if regRacionAlimentos.objects.all().count() != 0 : sigId = regRacionAlimentos.objects.latest('idRacionComida').idRacionComida + 1 else : sigId = 1 add = regRacionAlimentos( idAlbergue_id = albergue.idAlbergue, idUser = idUser, idRacionComida = sigId, fecha = request.POST['fecha'], desayunos = request.POST['desayunos'], cenas = request.POST['cenas'], colaciones = request.POST['colaciones'], observaciones = request.POST['observaciones'] ) add.save() #context = {'cant':regCant, 'Grabo':'1','Proceso':request.POST['Proceso'],'albergado':albergado[0]} context = {'Grabo':'1','fecha':request.POST['fecha'],'proceso':'active','principal':'closed','admin':'closed'} except Exception, e: #context = {'cant':regCant,'Parentescos':Parentescos,'template':request.POST['template'],'albergado':albergado[0],'Proceso':request.POST['Proceso'],'Grabo':'0'} context = {'Grabo':'0','fecha':fecha,'proceso':'active','principal':'closed','admin':'closed'} else : regCant = "Edicion -" return render(request,'frm_regAlimentosGral.html', context) def regActividadesGral(request): fecha = datetime.now().strftime("%Y-%m-%d") anio = datetime.now().strftime("%Y") mes = datetime.now().strftime("%m") registros = regActividades.objects.filter(fecha__year = anio, fecha__month = mes).order_by ('fecha') context = {'fecha':fecha,'registros':registros,'proceso':'active','principal':'closed','admin':'closed'} return render(request, 'frm_regActividadesGral.html', context) def guardaRegActividadesGral(request, id): context ='' if request.method == 'POST': if id == '0' : # Nuevo registro try: albergue = CatAlbergue.objects.get(idAlbergue = 1) idUser = User.objects.get(id = request.user.id) if regActividades.objects.all().count() != 0 : sigId = regActividades.objects.latest('idActividades').idActividades + 1 else : sigId = 1 add = regActividades( idAlbergue_id = albergue.idAlbergue, idUser = idUser, idActividades = sigId, fecha = request.POST['fecha'], platicasOrientacion = request.POST['platicasOrientacion'], platicasHospital = request.POST['platicasHospital'], visitaInvestigacion = request.POST['visitaInvestigacion'], terapiasOcupacionales = request.POST['terapiasOcupacionales'], asistenciaTerapia = request.POST['asistenciaTerapia'], observaciones = request.POST['observaciones'] ) add.save() #context = {'cant':regCant, 'Grabo':'1','Proceso':request.POST['Proceso'],'albergado':albergado[0]} context = {'Grabo':'1','fecha':request.POST['fecha'],'proceso':'active','principal':'closed','admin':'closed'} except Exception, e: #context = {'cant':regCant,'Parentescos':Parentescos,'template':request.POST['template'],'albergado':albergado[0],'Proceso':request.POST['Proceso'],'Grabo':'0'} context = {'Grabo':'0', 'fecha':fecha,'proceso':'active','principal':'closed','admin':'closed'} else : regCant = "Edicion -" return render(request,'frm_regActividadesGral.html', context) def traeFoliosFecha(request): #Fecha = (datetime.strptime(request.POST['fechaIngreso'], "%Y-%m-%d") - timedelta(days=0)).strftime("%Y-%m-%d") Fecha = request.POST['fechaIngreso'] folioActual = catConfig.objects.filter(dato = 'FOLIO') Folios = regUsoHabitacion.objects.filter(fechaHora__startswith = request.POST['fechaIngreso']).order_by ('folio') Pagados = regUsoHabitacion.objects.filter(fechaHora__startswith = request.POST['fechaIngreso']).count() noPagados = regUsoHabitacion.objects.filter(fechaHora__startswith = request.POST['fechaIngreso'], excentoPago = True).count() context = {'Pagados':Pagados,'noPagados':noPagados,'Hospitales':Hospitales,'Especialidades':Especialidades,'Excentos':Excentos,'Fecha':Fecha,'Cuota':Cuota[0].valor,'Folios':Folios,'folio':int(folioActual[0].valor)+1,'proceso':'active','principal':'closed','admin':'closed'} return render(request, 'form_registro.html', context) def traePagadosFecha(request, reporte): f = request.POST['fechaIngreso'] dates = f.encode('utf8') Fecha = datetime.strptime(dates,'%Y-%m-%d' ).strftime('%d/%m/%Y') if reporte == 'rpt_pagados_fecha' : nameReporte = 'REPORTE DE INGRESOS DE PERSONAS A DETALLE' fieldHeads = ['Folio', 'Beneficiario', 'Hospital', 'Area', 'Edad', 'Sexo', 'Estado Civil','Estado','Municipio'] tCon = regUsoHabitacion.objects.filter(fechaHora__startswith =f).order_by ('folio') totCon = regUsoHabitacion.objects.filter(fechaHora__startswith = f).order_by ('folio').count() elif reporte == 'rpt_excentas_fecha' : nameReporte = 'REPORTE DE PERSONAS EXCENTAS DE PAGO' fieldHeads = ['Folio', 'Beneficiario', 'Hospital', 'Area', 'Edad', 'Sexo', 'Estado Civil','Estado','Municipio','Importe'] tCon = regUsoHabitacion.objects.filter(fechaHora__startswith = f, excentoPago = True).order_by ('folio') totCon= regUsoHabitacion.objects.filter(fechaHora__startswith = f, excentoPago = True).order_by ('folio').count() context = {'totCon':totCon,'Reporte':nameReporte,'Fecha':Fecha,'fieldHeads':fieldHeads,'tCon':tCon} return render(request, 'rpt_base.html', context) def frmRptConcentrado(request): fechaIni = str(datetime.now().strftime("%Y-%m-%d")) fechaFin = str(datetime.now().strftime("%Y-%m-%d")) context = {'fechaIni':fechaIni,'fechaFin':fechaFin} return render(request, 'rpt_Ejecutivos.html', context) def frmRptVisitas(request): fechaIni = str(datetime.now().strftime("%Y-%m-%d")) fechaFin = str(datetime.now().strftime("%Y-%m-%d")) form = VisitaForm() context = {'fechaIni':fechaIni,'fechaFin':fechaFin,'form':form} return render(request, 'rpt_Ejecutivos2.html', context) def frmRptConsultaPersona(request): form = ConsultaVisitaPersonaForm() try: context = {'form':form} except Exception, e: messages.error(request, e.message) return render(request, 'rpt_ConsultaPersonaVisita.html', context) # ******************************************************************************************************************** # ******************* S E C C I O N D E R E P O R T E S C O N R E P O R T L A B - P D F ************************ # ******************************************************************************************************************** # ******************************************************************************************************************** # Imports dedicados para la herramienta del Reporteador reportLab from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.platypus import Table, TableStyle, SimpleDocTemplate,PageTemplate, Paragraph, Spacer, Image, PageBreak from reportlab.lib.pagesizes import letter, landscape, A4, portrait from reportlab.lib.units import cm, mm, inch, pica from reportlab.lib.enums import TA_JUSTIFY, TA_RIGHT, TA_LEFT, TA_CENTER from reportlab.lib import colors import os from reportlab.rl_config import defaultPageSize import locale from reportlab.platypus import PageBreak # ******************************************************************************************************************** # Variables para el Reporte PAGE_HEIGHT=defaultPageSize[1]; PAGE_WIDTH=defaultPageSize[0] Title = '' pageinfo = "" saltoLine = [] elements = [] #Espacio1 = elements.append(Spacer(1*cm,1*cm)) # Estilos Letras estilo = getSampleStyleSheet() h1 = estilo['h1'] h2 = estilo['h2'] h2.pageBreakBefore = 1 estilo.add( ParagraphStyle( name = 'titleReport' ) ) titleReport = estilo["titleReport"] titleReport.alignment = TA_CENTER titleReport.fontName = "Helvetica-Bold" titleReport.fontSize = 12 estilo.add( ParagraphStyle( name = 'HeadCenter' ) ) HeadCentrado = estilo["HeadCenter"] HeadCentrado.alignment = TA_CENTER HeadCentrado.fontName = "Helvetica-Bold" HeadCentrado.fontSize = 10 estilo.add( ParagraphStyle( name = 'Centrado' ) ) Centrado = estilo["Centrado"] Centrado.alignment = TA_CENTER Centrado.fontName = "Helvetica" Centrado.fontSize = 8 estilo.add( ParagraphStyle (name = 'Justificado') ) Justificado = estilo['Justificado'] Justificado.alignment = TA_JUSTIFY Justificado.fontName = "Helvetica" Justificado.fontSize = 8 estilo.add( ParagraphStyle (name = 'Narracion12') ) Narracion12 = estilo['Narracion12'] Narracion12.alignment = TA_JUSTIFY Narracion12.fontName = "Helvetica" Narracion12.fontSize = 12 estilo.add( ParagraphStyle (name = 'Narracion10') ) Narracion10 = estilo['Narracion10'] Narracion10.alignment = TA_JUSTIFY Narracion10.fontName = "Helvetica" Narracion10.fontSize = 12 estilo.add( ParagraphStyle (name = 'titleReport14') ) titleReport14 = estilo['titleReport14'] titleReport14.alignment = TA_CENTER titleReport14.fontName = "Helvetica-Bold" titleReport14.bold = True titleReport14.fontSize = 14 # Fin Estilos Letras imagen = ('http://atencion.tabasco.gob.mx/static/imagenes/pleca-sup-dif.png') # ******************************************************************************************************************** def datosPintar(data, casillas) : t_datos = Table(data, casillas, repeatRows=0, style=[('GRID',(0,0),(-1,-1),0.5,colors.grey), ('FONTSIZE',(0,1),(-1,-1),7), ]) return t_datos def datosPintar2(data, casillas) : t_datos = Table(data, casillas, repeatRows=0, style=[('GRID',(0,0),(-1,-1),0.5,colors.black), ('BACKGROUND',(0,0),(-1,-1),colors.grey), ('FONTSIZE',(0,1),(-1,-1),7), ]) return t_datos def saltoLinea(data) : data=[['']] t_datos = Table(data,[25 * cm,],repeatRows=1,style=[('FONTSIZE',(0,1),(-1,-1),7),]) return t_datos def datosPintarBorde0(data,casillas) : t_datos = Table(data,casillas,repeatRows=1,style=[('FONTSIZE',(0,1),(-1,-1),7),]) return t_datos def titulosReportePeriodo_Horizontal(request, canvas, doc): canvas.drawImage(imagen,1*cm,19*cm, 219, 58) #(A4) Horizontal canvas.setFont('Helvetica',12) canvas.drawString(11*cm,20.5*cm, "GOBIERNO DEL ESTADO DE TABASCO") canvas.drawString(11*cm,20*cm, "ALBERGUE PARA FAMILIARES DE ENFERMOS") canvas.drawString(11*cm,19.5*cm, "PERSONAS ATENDIDAS EN EL PERIODO" ) canvas.drawString(11*cm,19*cm, "DEL " + request.POST['fechaIni'] + " AL " + request.POST['fechaFin'] ) def titulosReportePeriodo_Vertical(request, canvas, doc): canvas.drawImage(imagen,1*mm,28*cm, 219, 58) #(A4) Vertical canvas.setFont('Helvetica',12) canvas.drawString(7*cm,29*cm, "GOBIERNO DEL ESTADO DE TABASCO") canvas.drawString(7*cm,28.5*cm, "ALBERGUE PARA FAMILIARES DE ENFERMOS") canvas.drawString(7*cm,28*cm, "PERSONAS ATENDIDAS EN EL PERIODO" ) canvas.drawString(7*cm,27.5*cm, "DEL " + request.POST['fechaIni'] + " AL " + request.POST['fechaFin'] ) def titulosReportePadron_Horizontal(request, canvas, doc): canvas.drawImage(imagen,1*cm,19*cm, 219, 58) #(A4) Horizontal canvas.setFont('Helvetica',12) canvas.drawString(11*cm,20.5*cm, "GOBIERNO DEL ESTADO DE TABASCO") canvas.drawString(11*cm,20*cm, "ALBERGUE PARA FAMILIARES DE ENFERMOS") canvas.drawString(11*cm,19.5*cm, "PADRÓN DE BENEFICIARIOS EN EL PERIODO" ) canvas.drawString(11*cm,19*cm, "DEL " + request.POST['fechaIni'] + " AL " + request.POST['fechaFin'] ) def titulosReporteComida_Horizontal(request, canvas, doc): canvas.drawImage(imagen,1*cm,19*cm, 219, 58) #(A4) Horizontal canvas.setFont('Helvetica',12) canvas.drawString(11*cm,20.5*cm, "GOBIERNO DEL ESTADO DE TABASCO") canvas.drawString(11*cm,20*cm, "ALBERGUE PARA FAMILIARES DE ENFERMOS") canvas.drawString(11*cm,19.5*cm, "DETALLE DE RACION ALIMENTICIA" ) canvas.drawString(11*cm,19*cm, "DEL " + request.POST['fechaIni'] + " AL " + request.POST['fechaFin'] ) def titulosReporteComida_Horizontal1(request, canvas, doc): canvas.drawImage(imagen,1*cm,19*cm, 219, 58) #(A4) Horizontal canvas.setFont('Helvetica',12) canvas.drawString(11*cm,20.5*cm, "GOBIERNO DEL ESTADO DE TABASCO") canvas.drawString(11*cm,20*cm, "ALBERGUE PARA FAMILIARES DE ENFERMOS") canvas.drawString(11*cm,19.5*cm, "DETALLE DE ACTIVIDADES REALIZADAS" ) canvas.drawString(11*cm,19*cm, "DEL " + request.POST['fechaIni'] + " AL " + request.POST['fechaFin'] ) def titulosReporteVisitas_Horizontal(request, canvas, doc): canvas.drawImage(imagen,1*cm,19*cm, 219, 58) #(A4) Horizontal canvas.setFont('Helvetica',12) canvas.drawString(11*cm,20.5*cm, "GOBIERNO DEL ESTADO DE TABASCO") canvas.drawString(11*cm,20*cm, "ALBERGUE PARA FAMILIARES DE ENFERMOS") canvas.drawString(11*cm,19.5*cm, "DETALLE DE VISITAS" ) canvas.drawString(11*cm,19*cm, "DEL " + request.POST['fechaIni'] + " AL " + request.POST['fechaFin'] ) def titulosReporteVisitas_Horizontal1(request, canvas, doc): canvas.drawImage(imagen,1*cm,19*cm, 219, 58) #(A4) Horizontal canvas.setFont('Helvetica',12) canvas.drawString(11*cm,20.5*cm, "GOBIERNO DEL ESTADO DE TABASCO") canvas.drawString(11*cm,20*cm, "ALBERGUE PARA FAMILIARES DE ENFERMOS") canvas.drawString(11*cm,19.5*cm, "EXPEDIENTE DE BENEFICIARIO" ) def ultimoDiaDelMes(date): if date.month == 12: return date.replace(day=31) return date.replace(month=date.month+1, day=1) - timedelta(days=1) # ************************************************************************************************************** # **************** I n i c i a R e p o r t e 1 ************************************************************ # ************************************************************************************************************** # @login_required(login_url='/login_') def reporte1(request): response = HttpResponse(mimetype='application/pdf') #doc = SimpleDocTemplate(response, pagesize=landscape(A4), rightMargin=5*mm,leftMargin=5*mm, topMargin=2.5*cm,bottomMargin=3*cm) # Horizontal #doc = SimpleDocTemplate(response, pagesize=letter, rightMargin=5*mm,leftMargin=5*mm, topMargin=2*mm,bottomMargin=3*mm) # Tamaño Carta doc = SimpleDocTemplate(response, pagesize=A4, rightMargin=5*mm,leftMargin=5*mm, topMargin=3*cm,bottomMargin=3*mm) # ************************************************************************************************************** # **************** I n ic i a C o n t e n i d o R e p o r t e ********************************************** # ************************************************************************************************************** fecha_ini = (datetime.strptime(request.POST['fechaIni'], "%Y-%m-%d") - timedelta(days=0)).strftime("%Y-%m-%d") fecha_fin = (datetime.strptime(request.POST['fechaFin'], "%Y-%m-%d") + timedelta(days=0)).strftime("%Y-%m-%d") # Pagados = regUsoHabitacion.objects.filter(fechaHora__range=[fecha_ini, fecha_fin], excentoPago = False).count() # FoliosP = regUsoHabitacion.objects.filter(fechaHora__range=[fecha_ini, fecha_fin], excentoPago = False) # Importe=0 # for p in FoliosP: # Importe+=p.importe # data = [] # data=[[ # Paragraph('INGRESOS',HeadCentrado), # Paragraph('TOTAL',HeadCentrado), # Paragraph('RECUPERACIÓN',HeadCentrado) # ]] # data.append([ # Paragraph("PAGADO", Justificado ), # Paragraph(str(Pagados), Centrado ), # Paragraph('$' + str(Importe), Centrado ) # ] # ) # NoPagados = regUsoHabitacion.objects.filter(fechaHora__range=[fecha_ini, fecha_fin], excentoPago = True).count() # FoliosP = regUsoHabitacion.objects.filter(fechaHora__range=[fecha_ini, fecha_fin], excentoPago = True) # Importe=0 # for p in FoliosP: # Importe+=p.importe # data.append([ # Paragraph("EXCENTO", Justificado ), # Paragraph(str(NoPagados), Centrado ), # Paragraph('$' + str(Importe), Centrado ) # ]) # elements.append(datosPintar(data,[4*cm])) FoliosTotales = regUsoHabitacion.objects.filter(fechaHora__range=[fecha_ini, fecha_fin]).count() foliomaximo = regUsoHabitacion.objects.filter(fechaHora__range=[fecha_ini, fecha_fin]).aggregate(Max('folio')) foliominimo = regUsoHabitacion.objects.filter(fechaHora__range=[fecha_ini, fecha_fin]).aggregate(Min('folio')) data = [] data.append([ Paragraph("TOTAL ATENDIDOS : " + str(FoliosTotales)+" DEL FOLIO: "+ str(foliominimo['folio__min'])+" AL FOLIO: "+str(foliomaximo['folio__max']), HeadCentrado ), ]) elements.append(datosPintar(data,[12*cm])) elements.append(saltoLinea(saltoLine)) # Folios Agrupados x Estados data=[[ Paragraph('TOTAL POR ESTADOS',HeadCentrado) ]] elements.append(datosPintar(data,[20*cm])) data=[[ Paragraph('ESTADO',HeadCentrado),Paragraph('TOTAL',HeadCentrado) ]] Estados = CatEstado.objects.all().order_by('nombre') for Estado in Estados : foliosEstados = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], albergado__Estado = Estado.idEstado).count() if foliosEstados != 0 : data.append([Paragraph(Estado.nombre,Justificado),Paragraph(str(foliosEstados),Centrado)]) elements.append(datosPintar(data,[10*cm])) # Folios Agrupados x Salas elements.append(saltoLinea(saltoLine)) data=[[ Paragraph('TOTAL POR ÁREAS',HeadCentrado) ]] elements.append(datosPintar(data,[20*cm])) data=[[ Paragraph('ÁREA',HeadCentrado),Paragraph('TOTAL',HeadCentrado) ]] tCons = CatEspecialidad.objects.all().order_by('especialidad') for tRow in tCons : folios = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], especialidad = tRow.idEspecialidad).count() if folios != 0 : data.append([Paragraph(tRow.especialidad,Justificado),Paragraph(str(folios),Centrado)]) elements.append(datosPintar(data,[10*cm])) # Folios Agrupados x Tipo d Familia elements.append(saltoLinea(saltoLine)) data=[[ Paragraph('TOTAL POR TIPO DE FAMILIA',HeadCentrado) ]] elements.append(datosPintar(data,[20*cm])) data=[[ Paragraph('TIPO DE FAMILIA',HeadCentrado),Paragraph('TOTAL',HeadCentrado) ]] tCons = CatTipoFamilia.objects.all().order_by('descripcion') for tRow in tCons : folios = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], albergado__TipoFamilia = tRow.idTipoFamilia).count() if folios != 0 : data.append([Paragraph(tRow.descripcion,Justificado),Paragraph(str(folios),Centrado)]) elements.append(datosPintar(data,[10*cm])) # Folios Agrupados x Genero elements.append(saltoLinea(saltoLine)) data=[[ Paragraph('TOTAL POR GENERO',HeadCentrado) ]] elements.append(datosPintar(data,[20*cm])) data=[[ Paragraph('GENERO',HeadCentrado),Paragraph('TOTAL',HeadCentrado) ]] tCons = ['F','M'] sexo = '' for tRow in tCons : folios = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], albergado__Sexo = tRow).count() if folios != 0 : if tRow == 'F' : sexo = 'FEMENINO' else : sexo = 'MASCULINO' data.append([Paragraph(sexo,Justificado),Paragraph(str(folios),Centrado)]) elements.append(datosPintar(data,[10*cm])) # Folios Agrupados x Genero y Adultos menores de 60 elements.append(saltoLinea(saltoLine)) data=[[ Paragraph('TOTAL DE ADULTOS MENORES DE 60 AÑOS',HeadCentrado) ]] elements.append(datosPintar(data,[20*cm])) data=[[ Paragraph('GENERO',HeadCentrado),Paragraph('TOTAL',HeadCentrado) ]] tCons = ['F','M'] sexo = '' sumaTot = 0 for tRow in tCons : folios = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], albergado__Sexo = tRow, albergado__Edad__gt = 12, albergado__Edad__lt = 60 ).count() if folios != 0 : if tRow == 'F' : sexo = 'FEMENINO' else : sexo = 'MASCULINO' sumaTot += folios data.append([Paragraph(sexo,Justificado),Paragraph(str(folios),Centrado)]) elements.append(datosPintar(data,[10*cm])) data=[[ Paragraph('TOTAL : '+str(sumaTot),HeadCentrado) ]] elements.append(datosPintar(data,[20*cm])) # Folios Agrupados x Genero y menores de 12 años (niños) elements.append(saltoLinea(saltoLine)) data=[[ Paragraph('TOTAL DE MENORES DE 12 AÑOS (NIÑOS)',HeadCentrado) ]] elements.append(datosPintar(data,[20*cm])) data=[[ Paragraph('GENERO',HeadCentrado),Paragraph('TOTAL',HeadCentrado) ]] tCons = ['F','M'] sexo = '' sumaTot = 0 for tRow in tCons : folios = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], albergado__Sexo = tRow, albergado__Edad__lt = 13 ).count() if folios != 0 : if tRow == 'F' : sexo = 'FEMENINO' else : sexo = 'MASCULINO' sumaTot += folios data.append([Paragraph(sexo,Justificado),Paragraph(str(folios),Centrado)]) elements.append(datosPintar(data,[10*cm])) data=[[ Paragraph('TOTAL : '+str(sumaTot),HeadCentrado) ]] elements.append(datosPintar(data,[20*cm])) # Folios Agrupados x Genero y Mayores de 60 años (3ra edad) elements.append(saltoLinea(saltoLine)) data=[[ Paragraph('TOTAL DE MAYORES DE 60 AÑOS (3RA. EDAD)',HeadCentrado) ]] elements.append(datosPintar(data,[20*cm])) data=[[ Paragraph('GENERO',HeadCentrado),Paragraph('TOTAL',HeadCentrado) ]] tCons = ['F','M'] sexo = '' sumaTot = 0 for tRow in tCons : folios = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], albergado__Sexo = tRow, albergado__Edad__gt = 59 ).count() if folios != 0 : if tRow == 'F' : sexo = 'FEMENINO' else : sexo = 'MASCULINO' sumaTot += folios data.append([Paragraph(sexo,Justificado),Paragraph(str(folios),Centrado)]) elements.append(datosPintar(data,[10*cm])) data=[[ Paragraph('TOTAL : '+str(sumaTot),HeadCentrado) ]] elements.append(datosPintar(data,[20*cm])) # Folios Agrupados x Municipios de Tabasco elements.append(saltoLinea(saltoLine)) data=[[ Paragraph('TOTAL POR MUNICIPIOS DE TABASCO',HeadCentrado) ]] elements.append(datosPintar(data,[20*cm])) data=[[ Paragraph('MUNICIPIO',HeadCentrado),Paragraph('TOTAL',HeadCentrado) ]] tCons = CatMunicipio.objects.filter(Estado__nombre = 'TABASCO').order_by('nombre') sumaTot = 0 for tRow in tCons : folios = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], albergado__Municipio = tRow.idMunicipio).count() if folios != 0 : sumaTot += folios data.append([Paragraph(tRow.nombre,Justificado),Paragraph(str(folios),Centrado)]) elements.append(datosPintar(data,[10*cm])) data=[[ Paragraph('TOTAL : '+str(sumaTot),HeadCentrado) ]] elements.append(datosPintar(data,[20*cm])) # Folios Agrupados x Municipios de Chiapas elements.append(saltoLinea(saltoLine)) data=[[ Paragraph('TOTAL POR MUNICIPIOS DE CHIAPAS',HeadCentrado) ]] elements.append(datosPintar(data,[20*cm])) data=[[ Paragraph('MUNICIPIO',HeadCentrado),Paragraph('TOTAL',HeadCentrado) ]] tCons = CatMunicipio.objects.filter(Estado__nombre = 'CHIAPAS').order_by('nombre') sumaTot = 0 for tRow in tCons : folios = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], albergado__Municipio = tRow.idMunicipio).count() if folios != 0 : sumaTot += folios data.append([Paragraph(tRow.nombre,Justificado),Paragraph(str(folios),Centrado)]) elements.append(datosPintar(data,[10*cm])) data=[[ Paragraph('TOTAL : '+str(sumaTot),HeadCentrado) ]] elements.append(datosPintar(data,[20*cm])) # Raciones de Comida elements.append(saltoLinea(saltoLine)) data=[[ Paragraph('TOTAL DE RACIONES ALIMENTARIAS',HeadCentrado) ]] elements.append(datosPintar(data,[20*cm])) data=[[ Paragraph('DESAYUNOS',HeadCentrado),Paragraph('CENAS',HeadCentrado),Paragraph('COLACIONES',HeadCentrado),Paragraph('TOTAL',HeadCentrado) ]] raciones = regRacionAlimentos.objects.filter(fecha__range = [fecha_ini, fecha_fin]) sumaCenas = 0 sumaDesayunos = 0 sumaColaciones = 0 sumaTot = 0 for r in raciones: sumaCenas += r.cenas sumaDesayunos += r.desayunos sumaColaciones += r.colaciones sumaTot = sumaCenas + sumaDesayunos + sumaColaciones data.append([Paragraph(str(sumaDesayunos),Centrado),Paragraph(str(sumaCenas),Centrado),Paragraph(str(sumaColaciones),Centrado),Paragraph(str(sumaTot),Centrado)]) elements.append(datosPintar(data,[5*cm])) # Actividades Realizadas elements.append(saltoLinea(saltoLine)) elements.append(saltoLinea(saltoLine)) elements.append(saltoLinea(saltoLine)) data=[[ Paragraph('TOTAL DE ACTIVIDADES REALIZADAS',HeadCentrado) ]] elements.append(datosPintar(data,[19.79*cm])) data=[[ Paragraph('PLATICAS DE ORIENTACIÓN',HeadCentrado),Paragraph('PLATICAS DE PROMOCIÓN A HOSPITALES',HeadCentrado),Paragraph('VISITAS DE INVESTIGACIÓN',HeadCentrado),Paragraph('TERAPIA OCUPACIONALES',HeadCentrado),Paragraph('ASISTENTES A TERAPIAS OCUPACIONALES',HeadCentrado),Paragraph('TOTAL',HeadCentrado) ]] raciones = regActividades.objects.filter(fecha__range = [fecha_ini, fecha_fin]) sumaPlaticas = 0 sumaHospitales = 0 sumaInvestigacion = 0 sumaOcupacionales = 0 sumaAsistentes = 0 sumaTot = 0 for r in raciones: sumaPlaticas += r.platicasOrientacion sumaHospitales += r.platicasHospital sumaInvestigacion += r.visitaInvestigacion sumaOcupacionales += r.terapiasOcupacionales sumaAsistentes += r.asistenciaTerapia sumaTot = sumaPlaticas + sumaHospitales + sumaInvestigacion + sumaOcupacionales + sumaAsistentes data.append([Paragraph(str(sumaPlaticas),Centrado),Paragraph(str(sumaHospitales),Centrado),Paragraph(str(sumaInvestigacion),Centrado),Paragraph(str(sumaOcupacionales),Centrado),Paragraph(str(sumaAsistentes),Centrado),Paragraph(str(sumaTot),Centrado)]) elements.append(datosPintar(data,[3.3*cm])) # imagen = ('http://atencion.tabasco.gob.mx/static/imagenes/pleca-sup-dif.png') # ************************************************************************************************************** # **************** F i n C o n t e n i d o d e l R e p o r t e ********************************************** # ************************************************************************************************************** def myFirstPage(canvas, doc): canvas.saveState() titulosReportePeriodo_Vertical(request, canvas, doc) canvas.setFont('Helvetica',10) canvas.drawString(7*cm,0.25*inch,"Página %d" % (doc.page)) canvas.setFont('Helvetica',8) canvas.drawString(7*cm,27*cm,"Fecha de Impresión : " + str(datetime.now().strftime("%d/%m/%Y - %H:%M:%S"))+ ' Hrs.') canvas.restoreState() def myLaterPages(canvas, doc): canvas.saveState() titulosReportePeriodo_Vertical(request, canvas, doc) canvas.setFont('Helvetica',10) canvas.drawString(7*cm,0.25*inch,"Página %d" % (doc.page)) canvas.setFont('Helvetica',8) canvas.drawString(7*cm,0.5*inch,"Fecha de Impresión : " + str(datetime.now().strftime("%d/%m/%Y - %H:%M:%S"))+ ' Hrs.') canvas.restoreState() doc.build(elements, onFirstPage = myFirstPage, onLaterPages = myLaterPages) return response # ************************************************************************************************************** # **************** F i n R e p o r t e ********************************************************************* # ************************************************************************************************************** #INJERTO # ************************************************************************************************************** # **************** I n i c i a R e p o r t e 1v2 ************************************************************ # ************************************************************************************************************** # @login_required(login_url='/login_') def reporte1v2(request): response = HttpResponse(mimetype='application/pdf') #doc = SimpleDocTemplate(response, pagesize=landscape(A4), rightMargin=5*mm,leftMargin=5*mm, topMargin=2.5*cm,bottomMargin=3*cm) # Horizontal #doc = SimpleDocTemplate(response, pagesize=letter, rightMargin=5*mm,leftMargin=5*mm, topMargin=2*mm,bottomMargin=3*mm) # Tamaño Carta doc = SimpleDocTemplate(response, pagesize=A4, rightMargin=5*mm,leftMargin=5*mm, topMargin=3*cm,bottomMargin=3*mm) # ************************************************************************************************************** # **************** I n ic i a C o n t e n i d o R e p o r t e ********************************************** # ************************************************************************************************************** fecha_ini = (datetime.strptime(request.POST['fechaIni'], "%Y-%m-%d") - timedelta(days=0)).strftime("%Y-%m-%d") fecha_fin = (datetime.strptime(request.POST['fechaFin'], "%Y-%m-%d") + timedelta(days=0)).strftime("%Y-%m-%d") # Pagados = regUsoHabitacion.objects.filter(fechaHora__range=[fecha_ini, fecha_fin], excentoPago = False).count() # FoliosP = regUsoHabitacion.objects.filter(fechaHora__range=[fecha_ini, fecha_fin], excentoPago = False) # Importe=0 # for p in FoliosP: # Importe+=p.importe # data = [] # data=[[ # Paragraph('INGRESOS',HeadCentrado), # Paragraph('TOTAL',HeadCentrado), # Paragraph('RECUPERACIÓN',HeadCentrado) # ]] # data.append([ # Paragraph("PAGADO", Justificado ), # Paragraph(str(Pagados), Centrado ), # Paragraph('$' + str(Importe), Centrado ) # ] # ) # NoPagados = regUsoHabitacion.objects.filter(fechaHora__range=[fecha_ini, fecha_fin], excentoPago = True).count() # FoliosP = regUsoHabitacion.objects.filter(fechaHora__range=[fecha_ini, fecha_fin], excentoPago = True) # Importe=0 # for p in FoliosP: # Importe+=p.importe # data.append([ # Paragraph("EXCENTO", Justificado ), # Paragraph(str(NoPagados), Centrado ), # Paragraph('$' + str(Importe), Centrado ) # ]) # elements.append(datosPintar(data,[4*cm])) FoliosTotales = regUsoHabitacion.objects.filter(fechaHora__range=[fecha_ini, fecha_fin]).count() data = [] data.append([ Paragraph("TOTAL ATENDIDOS : " + str(FoliosTotales), HeadCentrado ), ]) elements.append(datosPintar(data,[12*cm])) elements.append(saltoLinea(saltoLine)) # Folios Agrupados x Estados data=[[ Paragraph('TOTAL POR ESTADOS',HeadCentrado) ]] #elements.append(datosPintar(data,[10*cm])) enc_edo=datosPintar(data,[10*cm]) data=[[ Paragraph('ESTADO',HeadCentrado),Paragraph('TOTAL',HeadCentrado) ]] eti_edo=datosPintar2(data,[5*cm]) data = [] Estados = CatEstado.objects.all().order_by('nombre') for Estado in Estados : foliosEstados = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], albergado__Estado = Estado.idEstado).count() #if not foliosEstados: #data.append(['','']) if foliosEstados != 0 : data.append([Paragraph(Estado.nombre,Justificado),Paragraph(str(foliosEstados),Centrado)]) #elements.append(datosPintar(data,[5*cm])) if not data: data.append(['','']) tab_edo=datosPintar(data,[5*cm]) # Folios Agrupados x Municipios de Chiapas data=[[ Paragraph('TOTAL POR MUNICIPIOS DE CHIAPAS',HeadCentrado) ]] #elements.append(datosPintar(data,[10*cm])) enc_mun_chia=datosPintar(data,[10*cm]) data=[[ Paragraph('MUNICIPIO',HeadCentrado),Paragraph('TOTAL',HeadCentrado) ]] eti_mun_chia =datosPintar2(data,[5*cm]) data = [] tCons = CatMunicipio.objects.filter(Estado__nombre = 'CHIAPAS').order_by('nombre') sumaTot = 0 for tRow in tCons : folios = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], albergado__Municipio = tRow.idMunicipio).count() #if not folios: #data.append(['','']) if folios != 0 : sumaTot += folios data.append([Paragraph(tRow.nombre,Justificado),Paragraph(str(folios),Centrado)]) #elements.append(datosPintar(data,[5*cm])) if not data: data.append(['','']) tab_mun_chia=datosPintar(data,[5*cm]) data=[[ Paragraph('TOTAL : '+str(sumaTot),HeadCentrado) ]] #elements.append(datosPintar(data,[10*cm])) tot_mun_chia=datosPintar(data,[10*cm]) ani_data1 = [[enc_edo,enc_mun_chia],[eti_edo,eti_mun_chia],[tab_edo,tab_mun_chia],['',tot_mun_chia]] shell_table1 = Table(ani_data1, colWidths=[10*cm,10*cm]) elements.append(shell_table1) # Folios Agrupados x Municipios de Tabasco elements.append(saltoLinea(saltoLine)) data=[[ Paragraph('TOTAL POR MUNICIPIOS DE TABASCO',HeadCentrado) ]] #elements.append(datosPintar(data,[10*cm])) enc_mun_tab=datosPintar(data,[10*cm]) data=[[ Paragraph('MUNICIPIO',HeadCentrado),Paragraph('TOTAL',HeadCentrado) ]] eti_mun_tab = datosPintar2(data,[5*cm]) data = [] tCons = CatMunicipio.objects.filter(Estado__nombre = 'TABASCO').order_by('nombre') sumaTot = 0 for tRow in tCons : folios = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], albergado__Municipio = tRow.idMunicipio).count() #if not folios: #data.append(['','']) if folios != 0 : sumaTot += folios data.append([Paragraph(tRow.nombre,Justificado),Paragraph(str(folios),Centrado)]) #elements.append(datosPintar(data,[5*cm])) if not data: data.append(['','']) tab_mun_tab=datosPintar(data,[5*cm]) data=[[ Paragraph('TOTAL : '+str(sumaTot),HeadCentrado) ]] #elements.append(datosPintar(data,[10*cm])) tot_mun_tab=datosPintar(data,[10*cm]) # Folios Agrupados x Salas data=[[ Paragraph('TOTAL POR ÁREAS',HeadCentrado) ]] #elements.append(datosPintar(data,[10*cm])) enc_are=datosPintar(data,[10*cm]) data=[[ Paragraph('ÁREA',HeadCentrado),Paragraph('TOTAL',HeadCentrado) ]] eti_are = datosPintar2(data,[5*cm]) data = [] tCons = CatEspecialidad.objects.all().order_by('especialidad') for tRow in tCons : folios = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], especialidad = tRow.idEspecialidad).count() #if not folios: #data.append(['','']) if folios != 0 : data.append([Paragraph(tRow.especialidad,Justificado),Paragraph(str(folios),Centrado)]) #elements.append(datosPintar(data,[5*cm])) if not data: data.append(['','']) tab_are=datosPintar(data,[5*cm]) ani_data2 = [[enc_mun_tab,enc_are],[eti_mun_tab,eti_are],[tab_mun_tab,tab_are],[tot_mun_tab,'']] shell_table2 = Table(ani_data2, colWidths=[10*cm,10*cm]) elements.append(shell_table2) # Folios Agrupados x Tipo d Familia elements.append(saltoLinea(saltoLine)) data=[[ Paragraph('TOTAL POR TIPO DE FAMILIA',HeadCentrado) ]] #elements.append(datosPintar(data,[10*cm])) enc_fam=datosPintar(data,[10*cm]) data=[[ Paragraph('TIPO DE FAMILIA',HeadCentrado),Paragraph('TOTAL',HeadCentrado) ]] eti_fam=datosPintar2(data,[5*cm]) data = [] tCons = CatTipoFamilia.objects.all().order_by('descripcion') for tRow in tCons : folios = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], albergado__TipoFamilia = tRow.idTipoFamilia).count() #if not folios: #data.append(['','']) if folios != 0 : data.append([Paragraph(tRow.descripcion,Justificado),Paragraph(str(folios),Centrado)]) #elements.append(datosPintar(data,[5*cm])) if not data: data.append(['','']) tab_fam=datosPintar(data,[5*cm]) # Raciones de Comida data=[[ Paragraph('TOTAL DE RACIONES ALIMENTARIAS',HeadCentrado) ]] #elements.append(datosPintar(data,[10*cm])) enc_com=datosPintar(data,[10*cm]) data=[[ Paragraph('DESAYUNOS',HeadCentrado),Paragraph('CENAS',HeadCentrado),Paragraph('COLACIONES',HeadCentrado),Paragraph('TOTAL',HeadCentrado) ]] eti_com=datosPintar2(data,[2.5*cm]) data = [] raciones = regRacionAlimentos.objects.filter(fecha__range = [fecha_ini, fecha_fin]) sumaCenas = 0 sumaDesayunos = 0 sumaColaciones = 0 sumaTot = 0 for r in raciones: sumaCenas += r.cenas sumaDesayunos += r.desayunos sumaColaciones += r.colaciones sumaTot = sumaCenas + sumaDesayunos + sumaColaciones data.append([Paragraph(str(sumaCenas),Centrado),Paragraph(str(sumaDesayunos),Centrado),Paragraph(str(sumaColaciones),Centrado),Paragraph(str(sumaTot),Centrado)]) #elements.append(datosPintar(data,[2.5*cm])) tab_com=datosPintar(data,[2.5*cm]) ani_data3 = [[enc_fam,enc_com],[eti_fam,eti_com],[tab_fam,tab_com]] shell_table3 = Table(ani_data3, colWidths=[10*cm,10*cm]) elements.append(shell_table3) # Folios Agrupados x Genero elements.append(saltoLinea(saltoLine)) data=[[ Paragraph('TOTAL POR GENERO',HeadCentrado) ]] #elements.append(datosPintar(data,[6*cm])) enc_gen=datosPintar(data,[6*cm]) data=[[ Paragraph('GENERO',HeadCentrado),Paragraph('TOTAL',HeadCentrado) ]] eti_gen = datosPintar2(data,[3*cm]) data = [] tCons = ['F','M'] sexo = '' for tRow in tCons : folios = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], albergado__Sexo = tRow).count() #if not folios: #data.append(['','']) if folios != 0 : if tRow == 'F' : sexo = 'FEMENINO' else : sexo = 'MASCULINO' data.append([Paragraph(sexo,Justificado),Paragraph(str(folios),Centrado)]) #elements.append(datosPintar(data,[3*cm])) if not data: data.append(['','']) tab_gen=datosPintar(data,[3*cm]) # Folios Agrupados x Genero y menores de 12 años (niños) data=[[ Paragraph('TOTAL DE MENORES DE 12 AÑOS (NIÑOS)',HeadCentrado) ]] #elements.append(datosPintar(data,[6*cm])) enc_men=datosPintar(data,[6*cm]) data=[[ Paragraph('GENERO',HeadCentrado),Paragraph('TOTAL',HeadCentrado) ]] eti_men=datosPintar2(data,[3*cm]) data = [] tCons = ['F','M'] sexo = '' sumaTot = 0 for tRow in tCons : folios = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], albergado__Sexo = tRow, albergado__Edad__lt = 13 ).count() #if not folios: #data.append(['','']) if folios != 0 : if tRow == 'F' : sexo = 'FEMENINO' else : sexo = 'MASCULINO' sumaTot += folios data.append([Paragraph(sexo,Justificado),Paragraph(str(folios),Centrado)]) #elements.append(datosPintar(data,[3*cm])) if not data: data.append(['','']) tab_men=datosPintar(data,[3*cm]) data=[[ Paragraph('TOTAL : '+str(sumaTot),HeadCentrado) ]] #elements.append(datosPintar(data,[6*cm])) tot_men=datosPintar(data,[6*cm]) # Folios Agrupados x Genero y Mayores de 60 años (3ra edad) data=[[ Paragraph('TOTAL DE MAYORES DE 60 AÑOS (3RA. EDAD)',HeadCentrado) ]] #elements.append(datosPintar(data,[6*cm])) enc_may=datosPintar(data,[6*cm]) data=[[ Paragraph('GENERO',HeadCentrado),Paragraph('TOTAL',HeadCentrado) ]] eti_may=datosPintar2(data,[3*cm]) data = [] tCons = ['F','M'] sexo = '' sumaTot = 0 for tRow in tCons : folios = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], albergado__Sexo = tRow, albergado__Edad__gt = 59 ).count() #if not folios: #data.append(['','']) if folios != 0 : if tRow == 'F' : sexo = 'FEMENINO' else : sexo = 'MASCULINO' sumaTot += folios data.append([Paragraph(sexo,Justificado),Paragraph(str(folios),Centrado)]) #elements.append(datosPintar(data,[3*cm])) if not data: data.append(['','']) tab_may=datosPintar(data,[3*cm]) data=[[ Paragraph('TOTAL : '+str(sumaTot),HeadCentrado) ]] #elements.append(datosPintar(data,[6*cm])) tot_may=datosPintar(data,[6*cm]) ani_data4 = [[enc_gen,enc_men,enc_may],[eti_gen,eti_men,eti_may],[tab_gen,tab_men,tab_may],['',tot_men,tot_may]] shell_table4 = Table(ani_data4, colWidths=[6*cm,6*cm,6*cm]) elements.append(shell_table4) # imagen = ('http://atencion.tabasco.gob.mx/static/imagenes/pleca-sup-dif.png') # ************************************************************************************************************** # **************** F i n C o n t e n i d o d e l R e p o r t e ********************************************** # ************************************************************************************************************** def myFirstPage(canvas, doc): canvas.saveState() titulosReportePeriodo_Vertical(request, canvas, doc) canvas.setFont('Helvetica',10) canvas.drawString(7*cm,0.25*inch,"Página %d" % (doc.page)) canvas.setFont('Helvetica',8) canvas.drawString(7*cm,27*cm,"Fecha de Impresión : " + str(datetime.now().strftime("%d/%m/%Y - %H:%M:%S"))+ ' Hrs.') canvas.restoreState() def myLaterPages(canvas, doc): canvas.saveState() titulosReportePeriodo_Vertical(request, canvas, doc) canvas.setFont('Helvetica',10) canvas.drawString(7*cm,0.25*inch,"Página %d" % (doc.page)) canvas.setFont('Helvetica',8) canvas.drawString(7*cm,0.5*inch,"Fecha de Impresión : " + str(datetime.now().strftime("%d/%m/%Y - %H:%M:%S"))+ ' Hrs.') canvas.restoreState() doc.build(elements, onFirstPage = myFirstPage, onLaterPages = myLaterPages) return response # FIN DE INJERTO # ************************************************************************************************************** # **************** I n i c i a R e p o r t e 2 ************************************************************ # ************************************************************************************************************** # @login_required(login_url='/login_') def reporte2(request, excento): response = HttpResponse(mimetype='application/pdf') doc = SimpleDocTemplate(response, pagesize=landscape(A4), rightMargin=5*mm,leftMargin=5*mm, topMargin=2*cm,bottomMargin=1*cm) # ************************************************************************************************************** # **************** I n ic i a C o n t e n i d o R e p o r t e ********************************************** # ************************************************************************************************************** fecha_ini = (datetime.strptime(request.POST['fechaIni'], "%Y-%m-%d") - timedelta(days=0)).strftime("%Y-%m-%d") fecha_fin = (datetime.strptime(request.POST['fechaFin'], "%Y-%m-%d") + timedelta(days=0)).strftime("%Y-%m-%d") data = [] if excento == '0' : nameReporte = 'REPORTE DE PERSONAS ATENDIDAS' estatus = 'PAGADOS' fieldHeads = ['Folio', 'Beneficiario', 'Hospital', 'Area', 'Edad', 'Estado Civil','Estado','Municipio','Importe'] tCon = regUsoHabitacion.objects.filter(fechaHora__range=[fecha_ini, fecha_fin], excentoPago = False) elif excento == '1' : nameReporte = 'REPORTE DE PERSONAS ATENDIDAS' estatus = 'EXCENTOS DE PAGO' fieldHeads = ['Folio', 'Beneficiario', 'Hospital', 'Area', 'Edad', 'Estado Civil','Estado','Municipio','Importe'] tCon = regUsoHabitacion.objects.filter(fechaHora__range=[fecha_ini, fecha_fin], excentoPago = True) # ************** Todos **************************************************************************************** tCon = regUsoHabitacion.objects.filter(fechaHora__range=[fecha_ini, fecha_fin]) nameReporte = 'REPORTE DE PERSONAS ATENDIDAS' estatus = 'TOTAL' fieldHeads = ['Folio', 'Beneficiario', 'Hospital', 'Area', 'Edad', 'Estado Civil','Estado','Municipio'] # *************************************************************************************************************** elements.append(saltoLinea(saltoLine)) data=[[ Paragraph(nameReporte + '  -   ' + estatus + ': ' + str(tCon.count()),titleReport) ]] elements.append(datosPintar(data,[20*cm])) elements.append(saltoLinea(saltoLine)) data=[[ Paragraph('Folio',HeadCentrado), Paragraph('Beneficiario',HeadCentrado), Paragraph('Hospital',HeadCentrado), Paragraph('Area',HeadCentrado), Paragraph('Edad',HeadCentrado), Paragraph('Estado Civil',HeadCentrado), Paragraph('Estado',HeadCentrado), Paragraph('Municipio',HeadCentrado) ]] colwidths = [1.5*cm,6*cm,4.5*cm,4*cm,1*cm,3*cm,3*cm,4*cm,1.5*cm] elements.append(datosPintar(data,colwidths)) Importe=0 data = [] #tRow = tCon[0] for tRow in tCon: Importe+=tRow.importe data.append([ Paragraph(str(tRow.folio),Centrado), Paragraph(tRow.albergado.nombreLargo,Justificado), Paragraph(tRow.hospital.nombre,Justificado), Paragraph(tRow.especialidad.especialidad,Centrado), Paragraph(str(tRow.albergado.Edad),Centrado), Paragraph(tRow.albergado.EdoCivil.descripcion,Centrado), Paragraph(tRow.albergado.Estado.nombre,Centrado), Paragraph(tRow.albergado.Municipio.nombre,Centrado) ]) if tCon : elements.append(datosPintar(data,colwidths)) # ************************************************************************************************************** # **************** F i n C o n t e n i d o d e l R e p o r t e ********************************************** # ************************************************************************************************************** def myFirstPage(canvas, doc): canvas.saveState() titulosReportePeriodo_Horizontal(request, canvas, doc) canvas.setFont('Helvetica',10) canvas.drawString(7*cm,0.25*inch,"Página %d" % (doc.page)) canvas.setFont('Helvetica',8) canvas.drawString(11*cm,18.5*cm,"Fecha de Impresión : " + str(datetime.now().strftime("%d/%m/%Y - %H:%M:%S"))+ ' Hrs.') canvas.restoreState() def myLaterPages(canvas, doc): canvas.saveState() titulosReportePeriodo_Horizontal(request, canvas, doc) canvas.setFont('Helvetica',10) canvas.drawString(7*cm,0.25*inch,"Página %d" % (doc.page)) canvas.drawString(15*cm,0.25*inch,nameReporte) canvas.restoreState() doc.build(elements, onFirstPage = myFirstPage, onLaterPages = myLaterPages) return response # ************************************************************************************************************** # **************** F i n R e p o r t e ********************************************************************* # ************************************************************************************************************** # ************************************************************************************************************** # **************** I n i c i a R e p o r t e 3 ************************************************************ # ************************************************************************************************************** # @login_required(login_url='/login_') def reporte3(request): response = HttpResponse(mimetype='application/pdf') doc = SimpleDocTemplate(response, pagesize=A4, rightMargin=5*mm,leftMargin=5*mm, topMargin=2*cm,bottomMargin=1*cm) # ************************************************************************************************************** # **************** I n ic i a C o n t e n i d o R e p o r t e ********************************************** # ************************************************************************************************************** fecha_ini = (datetime.strptime(request.POST['fechaIni'], "%Y-%m-%d") - timedelta(days=0)).strftime("%Y-%m-%d") fecha_fin = (datetime.strptime(request.POST['fechaFin'], "%Y-%m-%d") + timedelta(days=0)).strftime("%Y-%m-%d") data = [] data=[[ Paragraph("INFORME NARRATIVO DEL " + request.POST['fechaIni'] + " AL " + request.POST['fechaFin'],titleReport) ]] elements.append(datosPintarBorde0(data,[20*cm])) tCon = regUsoHabitacion.objects.filter(fechaHora__range=[fecha_ini, fecha_fin]) data = [] if tCon : totalImporte = tCon.aggregate(total=Sum('importe')) # text = 'El Albergue para Familiares de Enfermos, durante este periodo proporcionó servicios de hospedaje a ' + str(tCon.count()) + ' personas, de los cuales ' + str(tCon.filter(excentoPago = True).count()) + ' fueron exentos de pago por tener bajos recursos económicos;\ # como tambien a ' + str(tCon.filter(excentoPago = False).count()) + ' personas con folio de cuota, generando un ingreso total de $' + str(totalImporte['total']) + ' de cuota de recuperación.' text = 'El Albergue para Familiares de Enfermos, durante este periodo proporcionó servicios de hospedaje a ' + str(tCon.count()) + ' persona(s).' para = Paragraph(text, Narracion10) data=[[para]] elements.append(Spacer(0.5*cm,0.5*cm)) elements.append(datosPintarBorde0(data,[20*cm])) tCon = regRacionAlimentos.objects.filter(fecha__range=[fecha_ini, fecha_fin]) if tCon : totalDesayunos = tCon.aggregate(total=Sum('desayunos')) totalColaciones = tCon.aggregate(total=Sum('colaciones')) totalCenas = tCon.aggregate(total=Sum('cenas')) text = 'Así mismo se dieron ' + str(totalDesayunos['total']) + ' desayunos, ' + str(totalColaciones['total']) + ' colaciones y ' + str(totalCenas['total']) + ' cenas, haciendo un total de ' + str(totalDesayunos['total']+totalColaciones['total']+totalCenas['total']) + ' raciones alimenticias, hasta la fecha del presente informe.' para = Paragraph(text, Narracion10) data=[[para]] elements.append(Spacer(0.5*cm,0.5*cm)) elements.append(datosPintarBorde0(data,[20*cm])) tConss = regActividades.objects.filter(fecha__range=[fecha_ini, fecha_fin]) if tConss : totalPlaticas = tConss.aggregate(total=Sum('platicasOrientacion')) totalHospitales = tConss.aggregate(total=Sum('platicasHospital')) totalInvestigacion = tConss.aggregate(total=Sum('visitaInvestigacion')) totalOcupacion = tConss.aggregate(total=Sum('terapiasOcupacionales')) totalAsistente = tConss.aggregate(total=Sum('asistenciaTerapia')) text = 'Así mismo se dieron ' + str(totalPlaticas['total']) + ' platicas de orientación, ' + str(totalHospitales['total']) + ' platicas de promoción a hospital, ' + str(totalInvestigacion['total']) + ' visitas de investigación, ' + str(totalOcupacion['total']) + ' terapias ocupacionales, ' + str(totalAsistente['total']) + ' Asistentes de terapias ocupacionales haciendo un total de ' + str(totalPlaticas['total']+totalHospitales['total']+totalInvestigacion['total']+totalOcupacion['total']+totalAsistente['total']) + ' actividades realizadas, hasta la fecha del presente informe.' para = Paragraph(text, Narracion10) data=[[para]] elements.append(Spacer(0.5*cm,0.5*cm)) elements.append(datosPintarBorde0(data,[20*cm])) Estados = CatEstado.objects.all().order_by('nombre') text = '' for Estado in Estados : foliosEstados = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], albergado__Estado = Estado.idEstado).count() if foliosEstados != 0 : text += str(Estado.nombre) + ': ' + str(foliosEstados) + ',' text = 'Durante estos días se atendieron personas de los diferentes municipios y estados aledaños: ' + text + '.' para = Paragraph(text, Narracion10) data=[[para]] elements.append(Spacer(0.5*cm,0.5*cm)) elements.append(datosPintarBorde0(data,[20*cm])) para = Paragraph(request.POST['narracion'], Narracion10) data=[[para]] elements.append(Spacer(0.5*cm,0.5*cm)) elements.append(datosPintarBorde0(data,[20*cm])) # ************************************************************************************************************** # **************** F i n C o n t e n i d o d e l R e p o r t e ********************************************** # ************************************************************************************************************** def myFirstPage(canvas, doc): canvas.saveState() canvas.drawImage(imagen,1*mm,28*cm, 219, 58) #(A4) Vertical canvas.setFont('Helvetica',7) FC = catConfig.objects.filter(dato = 'FRASECELEBRE1') if FC : canvas.drawString(7*cm,29.5*cm, '"' + FC[0].valor + '"') canvas.setFont('Helvetica',8) canvas.drawString(7*cm,29*cm, "GOBIERNO DEL ESTADO DE TABASCO") canvas.drawString(7*cm,28.5*cm, "DIRECCIÓN DE ORIENTACIÓN FAMILIAR Y ASISTENCIA SOCIAL") canvas.drawString(7*cm,28*cm, "ALBERGUE PARA FAMILIARES DE ENFERMOS" ) canvas.setFont('Helvetica',8) canvas.drawString(18*cm,0.25*inch,"Página %d" % (doc.page)) canvas.drawString(1*cm,0.25*inch,"Fecha de Impresión : " + str(datetime.now().strftime("%d/%m/%Y - %H:%M:%S"))+ ' Hrs.') canvas.restoreState() def myLaterPages(canvas, doc): canvas.saveState() canvas.drawImage(imagen,1*mm,28*cm, 219, 58) #(A4) Vertical canvas.setFont('Helvetica',7) FC = catConfig.objects.filter(dato = 'FRASECELEBRE1') if FC : canvas.drawString(7*cm,29.5*cm, '"' + FC[0].valor + '"') canvas.setFont('Helvetica',8) canvas.drawString(7*cm,29*cm, "GOBIERNO DEL ESTADO DE TABASCO") canvas.drawString(7*cm,28.5*cm, "DIRECCIÓN DE ORIENTACIÓN FAMILIAR Y ASISTENCIA SOCIAL") canvas.drawString(7*cm,28*cm, "ALBERGUE PARA FAMILIARES DE ENFERMOS" ) canvas.setFont('Helvetica',8) canvas.drawString(18*cm,0.25*inch,"Página %d" % (doc.page)) canvas.drawString(1*cm,0.25*inch,"Fecha de Impresión : " + str(datetime.now().strftime("%d/%m/%Y - %H:%M:%S"))+ ' Hrs.') canvas.restoreState() doc.build(elements, onFirstPage = myFirstPage, onLaterPages = myLaterPages) return response # ************************************************************************************************************** # **************** F i n R e p o r t e ********************************************************************* # ************************************************************************************************************** # ************************************************************************************************************** # **************** I n i c i a R e p o r t e 4 ************************************************************ # ************************************************************************************************************** # @login_required(login_url='/login_') def reporte4(request): response = HttpResponse(mimetype='application/pdf') doc = SimpleDocTemplate(response, pagesize=A4, rightMargin=5*mm,leftMargin=5*mm, topMargin=2.5*cm,bottomMargin=1*cm) # ************************************************************************************************************** # **************** I n ic i a C o n t e n i d o R e p o r t e ********************************************** # ************************************************************************************************************** fecha_ini = (datetime.strptime(request.POST['fechaIni'], "%Y-%m-%d") - timedelta(days=0)).strftime("%Y-%m-%d") fecha_fin = (datetime.strptime(request.POST['fechaFin'], "%Y-%m-%d") + timedelta(days=0)).strftime("%Y-%m-%d") data = [] data=[[Paragraph('- DIRECCIÓN DE ORIENTACIÓN FAMILIAR Y ASISTENCIA SOCIAL -', HeadCentrado)]] elements.append(datosPintarBorde0(data,[20*cm])) elements.append(Spacer(0.5*cm,0.5*cm)) tCon = regUsoHabitacion.objects.filter(fechaHora__range=[fecha_ini, fecha_fin]).dates('fechaHora', 'month', order='ASC') if tCon : for tRow in tCon : Mes = tRow.strftime('%m') data=[[Paragraph('TIPO DE CONSULTA (ALBERGADOS)', titleReport),Paragraph(tRow.strftime('%B - %Y').upper(), titleReport)]] elements.append(datosPintar(data,[10*cm])) elements.append(Spacer(0.5*cm,0.5*cm)) data=[[Paragraph('POR ENTIDAD FEDERATIVA',Narracion12)]] elements.append(datosPintarBorde0(data,[20*cm])) Estados = CatEstado.objects.all().order_by('nombre') for Estado in Estados : foliosEstados = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], fechaHora__month = Mes, albergado__Estado = Estado.idEstado).count() if foliosEstados != 0 : data=[[Paragraph(Estado.nombre, HeadCentrado),Paragraph(str(foliosEstados), HeadCentrado)]] elements.append(datosPintar(data,[10*cm])) elements.append(Spacer(0.5*cm,0.5*cm)) data=[[Paragraph('POR MUNICIPIOS DE TABASCO', Narracion12)]] elements.append(datosPintarBorde0(data,[20*cm])) Municipios = CatMunicipio.objects.filter(Estado__nombre = 'TABASCO').order_by('nombre') for Municipio in Municipios : folios = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], fechaHora__month = Mes, albergado__Municipio = Municipio.idMunicipio).count() if folios != 0 : data = [] data.append([Paragraph(Municipio.nombre,HeadCentrado),Paragraph(str(folios),HeadCentrado)]) elements.append(datosPintar(data,[10*cm])) elements.append(Spacer(0.5*cm,0.5*cm)) folios = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], fechaHora__month = Mes, albergado__Sexo='M').count() data=[[Paragraph('HOMBRES', HeadCentrado),Paragraph(str(folios), HeadCentrado)]] elements.append(datosPintar(data,[10*cm])) folios = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], fechaHora__month = Mes, albergado__Sexo='F').count() data=[[Paragraph('MUJERES', HeadCentrado),Paragraph(str(folios), HeadCentrado)]] elements.append(datosPintar(data,[10*cm])) folios = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], fechaHora__month = Mes, albergado__Sexo='M', albergado__Edad__lte = 12).count() data=[[Paragraph('NIÑOS', HeadCentrado),Paragraph(str(folios), HeadCentrado)]] elements.append(datosPintar(data,[10*cm])) folios = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], fechaHora__month = Mes, albergado__Sexo='F', albergado__Edad__lte = 12).count() data=[[Paragraph('NIÑAS', HeadCentrado),Paragraph(str(folios), HeadCentrado)]] elements.append(datosPintar(data,[10*cm])) folios = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], fechaHora__month = Mes, albergado__Edad__gte = 60).count() data=[[Paragraph('ADULTOS MAYORES (3RA. EDAD)', HeadCentrado),Paragraph(str(folios), HeadCentrado)]] elements.append(datosPintar(data,[10*cm])) folios = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], fechaHora__month = Mes).count() data=[[Paragraph('TOTAL ATENDIDAS', HeadCentrado),Paragraph(str(folios), HeadCentrado)]] elements.append(datosPintar(data,[10*cm])) elements.append(Spacer(0.5*cm,0.5*cm)) Raciones = regRacionAlimentos.objects.filter(fecha__range=[fecha_ini, fecha_fin], fecha__month = Mes) if Raciones : totalDesayunos = Raciones.aggregate(total=Sum('desayunos')) totalColaciones = Raciones.aggregate(total=Sum('colaciones')) totalCenas = Raciones.aggregate(total=Sum('cenas')) data=[[Paragraph('RACIONES ALIMENTICIAS', Narracion12)]] elements.append(datosPintarBorde0(data,[20*cm])) data=[[Paragraph('DESAYUNOS', HeadCentrado),Paragraph(str(totalDesayunos['total']), HeadCentrado)]] elements.append(datosPintar(data,[10*cm])) data=[[Paragraph('COLACIONES', HeadCentrado),Paragraph(str(totalColaciones['total']), HeadCentrado)]] elements.append(datosPintar(data,[10*cm])) data=[[Paragraph('CENAS', HeadCentrado),Paragraph(str(totalCenas['total']), HeadCentrado)]] elements.append(datosPintar(data,[10*cm])) elements.append(Spacer(0.5*cm,0.5*cm)) data=[[Paragraph('TOTAL DE RACIONES', HeadCentrado),Paragraph(str(totalDesayunos['total']+totalColaciones['total']+totalCenas['total']), HeadCentrado)]] elements.append(datosPintar(data,[10*cm])) Actividad = regActividades.objects.filter(fecha__range=[fecha_ini, fecha_fin], fecha__month = Mes) if Actividad : totalPlaticas = Actividad.aggregate(total=Sum('platicasOrientacion')) totalHospitales = Actividad.aggregate(total=Sum('platicasHospital')) totalInvestigacion = Actividad.aggregate(total=Sum('visitaInvestigacion')) totalOcupacion = Actividad.aggregate(total=Sum('terapiasOcupacionales')) totalAsistente = Actividad.aggregate(total=Sum('asistenciaTerapia')) data=[[Paragraph('ACTIVIDADES REALIZADAS', Narracion12)]] elements.append(datosPintarBorde0(data,[20*cm])) data=[[Paragraph('PLATICAS DE ORIENTACIÓN', HeadCentrado),Paragraph(str(totalPlaticas['total']), HeadCentrado)]] elements.append(datosPintar(data,[10*cm])) data=[[Paragraph('PLATICAS DE PROMOCION A HOSPITALES', HeadCentrado),Paragraph(str(totalHospitales['total']), HeadCentrado)]] elements.append(datosPintar(data,[10*cm])) data=[[Paragraph('VISITA DE INVESTIGACIÓN', HeadCentrado),Paragraph(str(totalInvestigacion['total']), HeadCentrado)]] elements.append(datosPintar(data,[10*cm])) data=[[Paragraph('TERAPIAS OCUPACIONALES', HeadCentrado),Paragraph(str(totalOcupacion['total']), HeadCentrado)]] elements.append(datosPintar(data,[10*cm])) data=[[Paragraph('ASISTENTES A TERAPIAS OCUPACIONALES', HeadCentrado),Paragraph(str(totalAsistente['total']), HeadCentrado)]] elements.append(datosPintar(data,[10*cm])) elements.append(Spacer(0.5*cm,0.5*cm)) data=[[Paragraph('TOTAL DE ACTIVIDADES', HeadCentrado),Paragraph(str(totalPlaticas['total']+totalHospitales['total']+totalInvestigacion['total']+totalOcupacion['total']+totalAsistente['total']), HeadCentrado)]] elements.append(datosPintar(data,[10*cm])) elements.append(PageBreak()) # ************************************************************************************************************** # **************** F i n C o n t e n i d o d e l R e p o r t e ********************************************** # ************************************************************************************************************** def myFirstPage(canvas, doc): canvas.saveState() titulosReportePeriodo_Vertical(request, canvas, doc) canvas.setFont('Helvetica',8) canvas.drawString(1*cm,0.25*inch,"Fecha de Impresión : " + str(datetime.now().strftime("%d/%m/%Y - %H:%M:%S"))+ ' Hrs.') canvas.drawString(18*cm,0.25*inch,"Página %d" % (doc.page)) canvas.restoreState() def myLaterPages(canvas, doc): canvas.saveState() titulosReportePeriodo_Vertical(request, canvas, doc) canvas.setFont('Helvetica',8) canvas.drawString(1*cm,0.25*inch,"Fecha de Impresión : " + str(datetime.now().strftime("%d/%m/%Y - %H:%M:%S"))+ ' Hrs.') canvas.drawString(18*cm,0.25*inch,"Página %d" % (doc.page)) canvas.restoreState() doc.build(elements, onFirstPage = myFirstPage, onLaterPages = myLaterPages) return response # ************************************************************************************************************** # **************** F i n R e p o r t e ********************************************************************* # ************************************************************************************************************** # ************************************************************************************************************** # **************** I n i c i a R e p o r t e 5 ************************************************************ # ************************************************************************************************************** # @login_required(login_url='/login_') def reporte5(request): response = HttpResponse(mimetype='application/pdf') doc = SimpleDocTemplate(response, pagesize=A4, rightMargin=5*mm,leftMargin=5*mm, topMargin=2.5*cm,bottomMargin=1*cm) # ************************************************************************************************************** # **************** I n ic i a C o n t e n i d o R e p o r t e ********************************************** # ************************************************************************************************************** fecha_ini = (datetime.strptime(request.POST['fechaIni'], "%Y-%m-%d") - timedelta(days=0)).strftime("%Y-%m-%d") fecha_fin = (datetime.strptime(request.POST['fechaFin'], "%Y-%m-%d") + timedelta(days=0)).strftime("%Y-%m-%d") data = [] data=[[Paragraph('INFORME MENSUAL DIVIDO POR SEMANA    - N U M E R A L I A -', HeadCentrado)]] elements.append(datosPintarBorde0(data,[20*cm])) elements.append(Spacer(0.5*cm,0.5*cm)) tCon = regUsoHabitacion.objects.filter(fechaHora__range=[fecha_ini, fecha_fin]).dates('fechaHora', 'month', order='ASC') if tCon : for tRow in tCon : Mes = tRow.strftime('%m') data=[[Paragraph(tRow.strftime('%B - %Y').upper(), titleReport14)]] elements.append(datosPintarBorde0(data,[20*cm])) elements.append(Spacer(0.5*cm,0.5*cm)) # AQUI SE INICIA EL CICLO DE LA DIVISION DEL MES PARA CONSULTAR X ELLOS TODOS LOS TIPOS rangoSemana1 = [tRow.strftime('%Y-%m-01'), tRow.strftime('%Y-%m-08')] rangoSemana2 = [tRow.strftime('%Y-%m-09'), tRow.strftime('%Y-%m-15')] rangoSemana3 = [tRow.strftime('%Y-%m-16'), tRow.strftime('%Y-%m-23')] rangoSemana4 = [tRow.strftime('%Y-%m-24'), ultimoDiaDelMes(tRow).strftime('%Y-%m-%d')] headS1 = 'DEL ' + datetime.strptime(rangoSemana1[0],'%Y-%m-%d').strftime('%d') + ' AL ' + datetime.strptime(rangoSemana1[1],'%Y-%m-%d').strftime('%d') headS2 = 'DEL ' + datetime.strptime(rangoSemana2[0],'%Y-%m-%d').strftime('%d') + ' AL ' + datetime.strptime(rangoSemana2[1],'%Y-%m-%d').strftime('%d') headS3 = 'DEL ' + datetime.strptime(rangoSemana3[0],'%Y-%m-%d').strftime('%d') + ' AL ' + datetime.strptime(rangoSemana3[1],'%Y-%m-%d').strftime('%d') headS4 = 'DEL ' + datetime.strptime(rangoSemana4[0],'%Y-%m-%d').strftime('%d') + ' AL ' + datetime.strptime(rangoSemana4[1],'%Y-%m-%d').strftime('%d') headS5 = 'TOTAL MENSUAL' data=[[Paragraph('TIPO DE CONSULTA (ALBERGADOS)', HeadCentrado),Paragraph(headS1,HeadCentrado),Paragraph(headS2,HeadCentrado),Paragraph(headS3,HeadCentrado),Paragraph(headS4,HeadCentrado),Paragraph(headS5,HeadCentrado)]] elements.append(datosPintar(data,[3*cm])) elements.append(Spacer(0.5*cm,0.5*cm)) data=[[Paragraph('POR ENTIDAD FEDERATIVA',Narracion12)]] elements.append(datosPintarBorde0(data,[20*cm])) Estados = CatEstado.objects.all().order_by('nombre') tfE1 = 0 tfE2 = 0 tfE3 = 0 tfE4 = 0 for Estado in Estados : foliosEstados1 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana1, albergado__Estado = Estado.idEstado).count() foliosEstados2 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana2, albergado__Estado = Estado.idEstado).count() foliosEstados3 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana3, albergado__Estado = Estado.idEstado).count() foliosEstados4 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana4, albergado__Estado = Estado.idEstado).count() if foliosEstados1 != 0 or foliosEstados2 != 0 or foliosEstados3 != 0 or foliosEstados4 != 0 : tfE1 += foliosEstados1 tfE2 += foliosEstados2 tfE3 += foliosEstados3 tfE4 += foliosEstados4 data=[[Paragraph(Estado.nombre, HeadCentrado),Paragraph(str(foliosEstados1),HeadCentrado),Paragraph(str(foliosEstados2),HeadCentrado),Paragraph(str(foliosEstados3),HeadCentrado),Paragraph(str(foliosEstados4),HeadCentrado),Paragraph(str(foliosEstados4+foliosEstados3+foliosEstados2+foliosEstados1),HeadCentrado)]] elements.append(datosPintar(data,[3*cm])) data=[[Paragraph('TOTAL x ESTADO', HeadCentrado),Paragraph(str(tfE1),HeadCentrado),Paragraph(str(tfE2),HeadCentrado),Paragraph(str(tfE3),HeadCentrado),Paragraph(str(tfE4),HeadCentrado),Paragraph(str(tfE4+tfE3+tfE2+tfE1),HeadCentrado)]] elements.append(datosPintar(data,[3*cm])) elements.append(Spacer(0.5*cm,0.5*cm)) data=[[Paragraph('POR MUNICIPIOS DE TABASCO', Narracion12)]] elements.append(datosPintarBorde0(data,[20*cm])) Municipios = CatMunicipio.objects.filter(Estado__nombre = 'TABASCO').order_by('nombre') tf1 = 0 tf2 = 0 tf3 = 0 tf4 = 0 for Municipio in Municipios : folios1 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana1, albergado__Municipio = Municipio.idMunicipio).count() folios2 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana2, albergado__Municipio = Municipio.idMunicipio).count() folios3 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana3, albergado__Municipio = Municipio.idMunicipio).count() folios4 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana4, albergado__Municipio = Municipio.idMunicipio).count() if folios1 != 0 or folios2 != 0 or folios3 != 0 or folios4 != 0 : tf1 += folios1 tf2 += folios2 tf3 += folios3 tf4 += folios4 data=[[Paragraph(Municipio.nombre, HeadCentrado),Paragraph(str(folios1),HeadCentrado),Paragraph(str(folios2),HeadCentrado),Paragraph(str(folios3),HeadCentrado),Paragraph(str(folios4),HeadCentrado),Paragraph(str(folios4+folios3+folios2+folios1),HeadCentrado)]] elements.append(datosPintar(data,[3*cm])) data=[[Paragraph('TOTAL x MUNICIPIO', HeadCentrado),Paragraph(str(tf1),HeadCentrado),Paragraph(str(tf2),HeadCentrado),Paragraph(str(tf3),HeadCentrado),Paragraph(str(tf4),HeadCentrado),Paragraph(str(tf4+tf3+tf2+tf1),HeadCentrado)]] elements.append(datosPintar(data,[3*cm])) elements.append(Spacer(0.5*cm,0.5*cm)) # ******* BLOQUE DEL GENERO Y EDAD **************************************** data=[[Paragraph('POR GENERO Y EDAD', Narracion12)]] elements.append(datosPintarBorde0(data,[20*cm])) tf1 = 0 tf2 = 0 tf3 = 0 tf4 = 0 folios1 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana1, albergado__Sexo='M', albergado__Edad__gt = 12, albergado__Edad__lt = 60).count() folios2 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana2, albergado__Sexo='M', albergado__Edad__gt = 12, albergado__Edad__lt = 60).count() folios3 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana3, albergado__Sexo='M', albergado__Edad__gt = 12, albergado__Edad__lt = 60).count() folios4 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana4, albergado__Sexo='M', albergado__Edad__gt = 12, albergado__Edad__lt = 60).count() tf1 += folios1 tf2 += folios2 tf3 += folios3 tf4 += folios4 data=[[Paragraph('HOMBRES', HeadCentrado),Paragraph(str(folios1),HeadCentrado),Paragraph(str(folios2),HeadCentrado),Paragraph(str(folios3),HeadCentrado),Paragraph(str(folios4),HeadCentrado),Paragraph(str(folios4+folios3+folios2+folios1),HeadCentrado)]] elements.append(datosPintar(data,[3*cm])) folios1 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana1, albergado__Sexo='F', albergado__Edad__gt = 12, albergado__Edad__lt = 60).count() folios2 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana2, albergado__Sexo='F', albergado__Edad__gt = 12, albergado__Edad__lt = 60).count() folios3 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana3, albergado__Sexo='F', albergado__Edad__gt = 12, albergado__Edad__lt = 60).count() folios4 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana4, albergado__Sexo='F', albergado__Edad__gt = 12, albergado__Edad__lt = 60).count() tf1 += folios1 tf2 += folios2 tf3 += folios3 tf4 += folios4 data=[[Paragraph('MUJERES', HeadCentrado),Paragraph(str(folios1),HeadCentrado),Paragraph(str(folios2),HeadCentrado),Paragraph(str(folios3),HeadCentrado),Paragraph(str(folios4),HeadCentrado),Paragraph(str(folios4+folios3+folios2+folios1),HeadCentrado)]] elements.append(datosPintar(data,[3*cm])) folios1 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana1, albergado__Sexo='M', albergado__Edad__gte = 60).count() folios2 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana2, albergado__Sexo='M', albergado__Edad__gte = 60).count() folios3 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana3, albergado__Sexo='M', albergado__Edad__gte = 60).count() folios4 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana4, albergado__Sexo='M', albergado__Edad__gte = 60).count() tf1 += folios1 tf2 += folios2 tf3 += folios3 tf4 += folios4 data=[[Paragraph('H - 3RA. EDAD', HeadCentrado),Paragraph(str(folios1),HeadCentrado),Paragraph(str(folios2),HeadCentrado),Paragraph(str(folios3),HeadCentrado),Paragraph(str(folios4),HeadCentrado),Paragraph(str(folios4+folios3+folios2+folios1),HeadCentrado)]] elements.append(datosPintar(data,[3*cm])) folios1 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana1, albergado__Sexo='F', albergado__Edad__gte = 60).count() folios2 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana2, albergado__Sexo='F', albergado__Edad__gte = 60).count() folios3 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana3, albergado__Sexo='F', albergado__Edad__gte = 60).count() folios4 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana4, albergado__Sexo='F', albergado__Edad__gte = 60).count() tf1 += folios1 tf2 += folios2 tf3 += folios3 tf4 += folios4 data=[[Paragraph('M - 3RA. EDAD', HeadCentrado),Paragraph(str(folios1),HeadCentrado),Paragraph(str(folios2),HeadCentrado),Paragraph(str(folios3),HeadCentrado),Paragraph(str(folios4),HeadCentrado),Paragraph(str(folios4+folios3+folios2+folios1),HeadCentrado)]] elements.append(datosPintar(data,[3*cm])) folios1 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana1, albergado__Sexo='M', albergado__Edad__lte = 12).count() folios2 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana2, albergado__Sexo='M', albergado__Edad__lte = 12).count() folios3 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana3, albergado__Sexo='M', albergado__Edad__lte = 12).count() folios4 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana4, albergado__Sexo='M', albergado__Edad__lte = 12).count() tf1 += folios1 tf2 += folios2 tf3 += folios3 tf4 += folios4 data=[[Paragraph('NIÑOS', HeadCentrado),Paragraph(str(folios1),HeadCentrado),Paragraph(str(folios2),HeadCentrado),Paragraph(str(folios3),HeadCentrado),Paragraph(str(folios4),HeadCentrado),Paragraph(str(folios4+folios3+folios2+folios1),HeadCentrado)]] elements.append(datosPintar(data,[3*cm])) folios1 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana1, albergado__Sexo='F', albergado__Edad__lte = 12).count() folios2 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana2, albergado__Sexo='F', albergado__Edad__lte = 12).count() folios3 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana3, albergado__Sexo='F', albergado__Edad__lte = 12).count() folios4 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana4, albergado__Sexo='F', albergado__Edad__lte = 12).count() tf1 += folios1 tf2 += folios2 tf3 += folios3 tf4 += folios4 data=[[Paragraph('NIÑAS', HeadCentrado),Paragraph(str(folios1),HeadCentrado),Paragraph(str(folios2),HeadCentrado),Paragraph(str(folios3),HeadCentrado),Paragraph(str(folios4),HeadCentrado),Paragraph(str(folios4+folios3+folios2+folios1),HeadCentrado)]] elements.append(datosPintar(data,[3*cm])) data=[[Paragraph('TOTAL x GENERO Y EDAD', HeadCentrado),Paragraph(str(tf1),HeadCentrado),Paragraph(str(tf2),HeadCentrado),Paragraph(str(tf3),HeadCentrado),Paragraph(str(tf4),HeadCentrado),Paragraph(str(tf4+tf3+tf2+tf1),HeadCentrado)]] elements.append(datosPintar(data,[3*cm])) elements.append(Spacer(0.5*cm,0.5*cm)) data=[[Paragraph('POR SALA DE CONTROL', Narracion12)]] elements.append(datosPintarBorde0(data,[20*cm])) Salas = CatEspecialidad.objects.all().order_by('especialidad') tf1 = 0 tf2 = 0 tf3 = 0 tf4 = 0 for Sala in Salas : folios1 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana1, especialidad = Sala.idEspecialidad).count() folios2 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana2, especialidad = Sala.idEspecialidad).count() folios3 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana3, especialidad = Sala.idEspecialidad).count() folios4 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana4, especialidad = Sala.idEspecialidad).count() if folios1 != 0 or folios2 != 0 or folios3 != 0 or folios4 != 0 : tf1 += folios1 tf2 += folios2 tf3 += folios3 tf4 += folios4 data=[[Paragraph(Sala.especialidad, HeadCentrado),Paragraph(str(folios1),HeadCentrado),Paragraph(str(folios2),HeadCentrado),Paragraph(str(folios3),HeadCentrado),Paragraph(str(folios4),HeadCentrado),Paragraph(str(folios4+folios3+folios2+folios1),HeadCentrado)]] elements.append(datosPintar(data,[3*cm])) data=[[Paragraph('TOTAL x SALA', HeadCentrado),Paragraph(str(tf1),HeadCentrado),Paragraph(str(tf2),HeadCentrado),Paragraph(str(tf3),HeadCentrado),Paragraph(str(tf4),HeadCentrado),Paragraph(str(tf4+tf3+tf2+tf1),HeadCentrado)]] elements.append(datosPintar(data,[3*cm])) elements.append(Spacer(0.5*cm,0.5*cm)) data=[[Paragraph('POR TIPO DE FAMILIA', Narracion12)]] elements.append(datosPintarBorde0(data,[20*cm])) tFamilias = CatTipoFamilia.objects.all().order_by('descripcion') tf1 = 0 tf2 = 0 tf3 = 0 tf4 = 0 for tFamilia in tFamilias : folios1 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana1, albergado__TipoFamilia = tFamilia.idTipoFamilia).count() folios2 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana2, albergado__TipoFamilia = tFamilia.idTipoFamilia).count() folios3 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana3, albergado__TipoFamilia = tFamilia.idTipoFamilia).count() folios4 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana4, albergado__TipoFamilia = tFamilia.idTipoFamilia).count() if folios1 != 0 or folios2 != 0 or folios3 != 0 or folios4 != 0 : tf1 += folios1 tf2 += folios2 tf3 += folios3 tf4 += folios4 data=[[Paragraph(tFamilia.descripcion, HeadCentrado),Paragraph(str(folios1),HeadCentrado),Paragraph(str(folios2),HeadCentrado),Paragraph(str(folios3),HeadCentrado),Paragraph(str(folios4),HeadCentrado),Paragraph(str(folios4+folios3+folios2+folios1),HeadCentrado)]] elements.append(datosPintar(data,[3*cm])) data=[[Paragraph('TOTAL x FAMILIA', HeadCentrado),Paragraph(str(tf1),HeadCentrado),Paragraph(str(tf2),HeadCentrado),Paragraph(str(tf3),HeadCentrado),Paragraph(str(tf4),HeadCentrado),Paragraph(str(tf4+tf3+tf2+tf1),HeadCentrado)]] elements.append(datosPintar(data,[3*cm])) elements.append(Spacer(0.5*cm,0.5*cm)) data=[[Paragraph('POR HOSPITAL', Narracion12)]] elements.append(datosPintarBorde0(data,[20*cm])) Hospitales = CatHospital.objects.all().order_by('nombre') tf1 = 0 tf2 = 0 tf3 = 0 tf4 = 0 tI1 = 0 tI2 = 0 tI3 = 0 tI4 = 0 for Hospital in Hospitales : folios1 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana1, hospital = Hospital.idHospital).count() folios2 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana2, hospital = Hospital.idHospital).count() folios3 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana3, hospital = Hospital.idHospital).count() folios4 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana4, hospital = Hospital.idHospital).count() if folios1 != 0 or folios2 != 0 or folios3 != 0 or folios4 != 0 : tf1 += folios1 tf2 += folios2 tf3 += folios3 tf4 += folios4 data=[[Paragraph(Hospital.nombre, HeadCentrado),Paragraph(str(folios1),HeadCentrado),Paragraph(str(folios2),HeadCentrado),Paragraph(str(folios3),HeadCentrado),Paragraph(str(folios4),HeadCentrado),Paragraph(str(folios4+folios3+folios2+folios1),HeadCentrado)]] elements.append(datosPintar(data,[3*cm])) data=[[Paragraph('TOTAL x HOSPITAL', HeadCentrado),Paragraph(str(tf1),HeadCentrado),Paragraph(str(tf2),HeadCentrado),Paragraph(str(tf3),HeadCentrado),Paragraph(str(tf4),HeadCentrado),Paragraph(str(tf4+tf3+tf2+tf1),HeadCentrado)]] elements.append(datosPintar(data,[3*cm])) elements.append(Spacer(0.5*cm,0.5*cm)) data=[[Paragraph('POR ADMINISTRACIÓN', Narracion12)]] elements.append(datosPintarBorde0(data,[20*cm])) tf1 = 0 tf2 = 0 tf3 = 0 tf4 = 0 tI1 = 0 folios1 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana1, excentoPago = False).aggregate(tImporte=Sum('importe'),tFolios=Count('folio')) folios2 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana2, excentoPago = False).aggregate(tImporte=Sum('importe'),tFolios=Count('folio')) folios3 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana3, excentoPago = False).aggregate(tImporte=Sum('importe'),tFolios=Count('folio')) folios4 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana4, excentoPago = False).aggregate(tImporte=Sum('importe'),tFolios=Count('folio')) if folios1['tFolios'] or folios2['tFolios'] or folios3['tFolios'] or folios4['tFolios'] : if folios1['tFolios'] : tf1 += folios1['tFolios'] tI1 += folios1['tImporte'] if folios2['tFolios'] : tf2 += folios2['tFolios'] tI2 += folios2['tImporte'] if folios3['tFolios'] : tf3 += folios3['tFolios'] tI3 += folios3['tImporte'] if folios4['tFolios'] : tf4 += folios4['tFolios'] tI4 += folios4['tImporte'] # data=[[Paragraph('PAGADOS', HeadCentrado),Paragraph(str(folios1['tFolios']),HeadCentrado),Paragraph(str(folios2['tFolios']),HeadCentrado),Paragraph(str(folios3['tFolios']),HeadCentrado),Paragraph(str(folios4['tFolios']),HeadCentrado)]] # elements.append(datosPintar(data,[4*cm])) folios1 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana1, excentoPago = True).aggregate(tImporte=Sum('importe'),tFolios=Count('folio')) folios2 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana2, excentoPago = True).aggregate(tImporte=Sum('importe'),tFolios=Count('folio')) folios3 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana3, excentoPago = True).aggregate(tImporte=Sum('importe'),tFolios=Count('folio')) folios4 = regUsoHabitacion.objects.filter(fechaHora__month = Mes, fechaHora__range = rangoSemana4, excentoPago = True).aggregate(tImporte=Sum('importe'),tFolios=Count('folio')) if folios1['tFolios'] or folios2['tFolios'] or folios3['tFolios'] or folios4['tFolios'] : if folios1['tFolios'] : tf1 += folios1['tFolios'] tI1 += folios1['tImporte'] if folios2['tFolios'] : tf2 += folios2['tFolios'] tI2 += folios2['tImporte'] if folios3['tFolios'] : tf3 += folios3['tFolios'] tI3 += folios3['tImporte'] if folios4['tFolios'] : tf4 += folios4['tFolios'] tI4 += folios4['tImporte'] # data=[[Paragraph('EXCENTOS', HeadCentrado),Paragraph(str(folios1['tFolios']),HeadCentrado),Paragraph(str(folios2['tFolios']),HeadCentrado),Paragraph(str(folios3['tFolios']),HeadCentrado),Paragraph(str(folios4['tFolios']),HeadCentrado)]] # elements.append(datosPintar(data,[4*cm])) data=[[Paragraph('TOTAL x ADMIN.', HeadCentrado),Paragraph(str(tf1),HeadCentrado),Paragraph(str(tf2),HeadCentrado),Paragraph(str(tf3),HeadCentrado),Paragraph(str(tf4),HeadCentrado),Paragraph(str(tf4+tf3+tf2+tf1),HeadCentrado)]] elements.append(datosPintar(data,[3*cm])) # data=[[Paragraph('TOTAL RECUPERACIÓN', HeadCentrado),Paragraph('$'+str(tI1),HeadCentrado),Paragraph('$'+str(tI2),HeadCentrado),Paragraph('$'+str(tI3),HeadCentrado),Paragraph('$'+str(tI4),HeadCentrado)]] # elements.append(datosPintar(data,[4*cm])) elements.append(Spacer(0.5*cm,0.5*cm)) # ******** SECCION DE ALIMENTACION ************************* tf1 = 0 tf2 = 0 tf3 = 0 tf4 = 0 Raciones = regRacionAlimentos.objects.filter(fecha__range=[fecha_ini, fecha_fin], fecha__month = Mes) if Raciones : data=[[Paragraph('POR RACIONES ALIMENTICIAS', Narracion12)]] elements.append(datosPintarBorde0(data,[20*cm])) raciones1 = regRacionAlimentos.objects.filter(fecha__month = Mes, fecha__range = rangoSemana1).aggregate(total=Sum('desayunos')) raciones2 = regRacionAlimentos.objects.filter(fecha__month = Mes, fecha__range = rangoSemana2).aggregate(total=Sum('desayunos')) raciones3 = regRacionAlimentos.objects.filter(fecha__month = Mes, fecha__range = rangoSemana3).aggregate(total=Sum('desayunos')) raciones4 = regRacionAlimentos.objects.filter(fecha__month = Mes, fecha__range = rangoSemana4).aggregate(total=Sum('desayunos')) if raciones1 or raciones2 or raciones3 or raciones4 : if raciones1['total'] : tf1 += raciones1['total'] else : raciones1['total'] = 0 if raciones2['total'] : tf2 += raciones2['total'] else : raciones2['total'] = 0 if raciones3['total'] : tf3 += raciones3['total'] else : raciones3['total'] = 0 if raciones4['total'] : tf4 += raciones4['total'] else : raciones4['total'] = 0 data=[[Paragraph('DESAYUNOS', HeadCentrado),Paragraph(str(raciones1['total']),HeadCentrado),Paragraph(str(raciones2['total']),HeadCentrado),Paragraph(str(raciones3['total']),HeadCentrado),Paragraph(str(raciones4['total']),HeadCentrado),Paragraph(str(raciones4['total']+raciones3['total']+raciones2['total']+raciones1['total']),HeadCentrado)]] elements.append(datosPintar(data,[3*cm])) raciones1 = regRacionAlimentos.objects.filter(fecha__month = Mes, fecha__range = rangoSemana1).aggregate(total=Sum('colaciones')) raciones2 = regRacionAlimentos.objects.filter(fecha__month = Mes, fecha__range = rangoSemana2).aggregate(total=Sum('colaciones')) raciones3 = regRacionAlimentos.objects.filter(fecha__month = Mes, fecha__range = rangoSemana3).aggregate(total=Sum('colaciones')) raciones4 = regRacionAlimentos.objects.filter(fecha__month = Mes, fecha__range = rangoSemana4).aggregate(total=Sum('colaciones')) if raciones1 or raciones2 or raciones3 or raciones4 : if raciones1['total'] : tf1 += raciones1['total'] else : raciones1['total'] = 0 if raciones2['total'] : tf2 += raciones2['total'] else : raciones2['total'] = 0 if raciones3['total'] : tf3 += raciones3['total'] else : raciones3['total'] = 0 if raciones4['total'] : tf4 += raciones4['total'] else : raciones4['total'] = 0 data=[[Paragraph('COLACIONES', HeadCentrado),Paragraph(str(raciones1['total']),HeadCentrado),Paragraph(str(raciones2['total']),HeadCentrado),Paragraph(str(raciones3['total']),HeadCentrado),Paragraph(str(raciones4['total']),HeadCentrado),Paragraph(str(raciones4['total']+raciones3['total']+raciones2['total']+raciones1['total']),HeadCentrado)]] elements.append(datosPintar(data,[3*cm])) raciones1 = regRacionAlimentos.objects.filter(fecha__month = Mes, fecha__range = rangoSemana1).aggregate(total=Sum('cenas')) raciones2 = regRacionAlimentos.objects.filter(fecha__month = Mes, fecha__range = rangoSemana2).aggregate(total=Sum('cenas')) raciones3 = regRacionAlimentos.objects.filter(fecha__month = Mes, fecha__range = rangoSemana3).aggregate(total=Sum('cenas')) raciones4 = regRacionAlimentos.objects.filter(fecha__month = Mes, fecha__range = rangoSemana4).aggregate(total=Sum('cenas')) if raciones1 or raciones2 or raciones3 or raciones4 : if raciones1['total'] : tf1 += raciones1['total'] else : raciones1['total'] = 0 if raciones2['total'] : tf2 += raciones2['total'] else : raciones2['total'] = 0 if raciones3['total'] : tf3 += raciones3['total'] else : raciones3['total'] = 0 if raciones4['total'] : tf4 += raciones4['total'] else : raciones4['total'] = 0 data=[[Paragraph('CENAS', HeadCentrado),Paragraph(str(raciones1['total']),HeadCentrado),Paragraph(str(raciones2['total']),HeadCentrado),Paragraph(str(raciones3['total']),HeadCentrado),Paragraph(str(raciones4['total']),HeadCentrado),Paragraph(str(raciones4['total']+raciones3['total']+raciones2['total']+raciones1['total']),HeadCentrado)]] elements.append(datosPintar(data,[3*cm])) data=[[Paragraph('TOTAL x RACIONES', HeadCentrado),Paragraph(str(tf1),HeadCentrado),Paragraph(str(tf2),HeadCentrado),Paragraph(str(tf3),HeadCentrado),Paragraph(str(tf4),HeadCentrado),Paragraph(str(tf4+tf3+tf2+tf1),HeadCentrado)]] elements.append(datosPintar(data,[3*cm])) elements.append(Spacer(0.5*cm,0.5*cm)) # ******** SECCION DE ACTIVIDADES ************************* tf1 = 0 tf2 = 0 tf3 = 0 tf4 = 0 Actividad = regActividades.objects.filter(fecha__range=[fecha_ini, fecha_fin], fecha__month = Mes) if Actividad : data=[[Paragraph('POR ACTIVIDADES REALIZADAS', Narracion12)]] elements.append(datosPintarBorde0(data,[20*cm])) actividad1 = regActividades.objects.filter(fecha__month = Mes, fecha__range = rangoSemana1).aggregate(total=Sum('platicasOrientacion')) actividad2 = regActividades.objects.filter(fecha__month = Mes, fecha__range = rangoSemana2).aggregate(total=Sum('platicasOrientacion')) actividad3 = regActividades.objects.filter(fecha__month = Mes, fecha__range = rangoSemana3).aggregate(total=Sum('platicasOrientacion')) actividad4 = regActividades.objects.filter(fecha__month = Mes, fecha__range = rangoSemana4).aggregate(total=Sum('platicasOrientacion')) if actividad1 or actividad2 or actividad3 or actividad4 : if actividad1['total'] : tf1 += actividad1['total'] else : actividad1['total'] = 0 if actividad2['total'] : tf2 += actividad2['total'] else : actividad2['total'] = 0 if actividad3['total'] : tf3 += actividad3['total'] else : actividad3['total'] = 0 if actividad4['total'] : tf4 += actividad4['total'] else : actividad4['total'] = 0 data=[[Paragraph('PLATICAS DE ORIENTACIÓN', HeadCentrado),Paragraph(str(actividad1['total']),HeadCentrado),Paragraph(str(actividad2['total']),HeadCentrado),Paragraph(str(actividad3['total']),HeadCentrado),Paragraph(str(actividad4['total']),HeadCentrado),Paragraph(str(actividad4['total']+actividad3['total']+actividad2['total']+actividad1['total']),HeadCentrado)]] elements.append(datosPintar(data,[3*cm])) actividad1 = regActividades.objects.filter(fecha__month = Mes, fecha__range = rangoSemana1).aggregate(total=Sum('platicasHospital')) actividad2 = regActividades.objects.filter(fecha__month = Mes, fecha__range = rangoSemana2).aggregate(total=Sum('platicasHospital')) actividad3 = regActividades.objects.filter(fecha__month = Mes, fecha__range = rangoSemana3).aggregate(total=Sum('platicasHospital')) actividad4 = regActividades.objects.filter(fecha__month = Mes, fecha__range = rangoSemana4).aggregate(total=Sum('platicasHospital')) if actividad1 or actividad2 or actividad3 or actividad4 : if actividad1['total'] : tf1 += actividad1['total'] else : actividad1['total'] = 0 if actividad2['total'] : tf2 += actividad2['total'] else : actividad2['total'] = 0 if actividad3['total'] : tf3 += actividad3['total'] else : actividad3['total'] = 0 if actividad4['total'] : tf4 += actividad4['total'] else : actividad4['total'] = 0 data=[[Paragraph('PLATICAS DE PROMOCIÓN A HOSPITALES', HeadCentrado),Paragraph(str(actividad1['total']),HeadCentrado),Paragraph(str(actividad2['total']),HeadCentrado),Paragraph(str(actividad3['total']),HeadCentrado),Paragraph(str(actividad4['total']),HeadCentrado),Paragraph(str(actividad4['total']+actividad3['total']+actividad2['total']+actividad1['total']),HeadCentrado)]] elements.append(datosPintar(data,[3*cm])) actividad1 = regActividades.objects.filter(fecha__month = Mes, fecha__range = rangoSemana1).aggregate(total=Sum('visitaInvestigacion')) actividad2 = regActividades.objects.filter(fecha__month = Mes, fecha__range = rangoSemana2).aggregate(total=Sum('visitaInvestigacion')) actividad3 = regActividades.objects.filter(fecha__month = Mes, fecha__range = rangoSemana3).aggregate(total=Sum('visitaInvestigacion')) actividad4 = regActividades.objects.filter(fecha__month = Mes, fecha__range = rangoSemana4).aggregate(total=Sum('visitaInvestigacion')) if actividad1 or actividad2 or actividad3 or actividad4 : if actividad1['total'] : tf1 += actividad1['total'] else : actividad1['total'] = 0 if actividad2['total'] : tf2 += actividad2['total'] else : actividad2['total'] = 0 if actividad3['total'] : tf3 += actividad3['total'] else : actividad3['total'] = 0 if actividad4['total'] : tf4 += actividad4['total'] else : actividad4['total'] = 0 data=[[Paragraph('VISITAS DE INVESTIGACIÓN', HeadCentrado),Paragraph(str(actividad1['total']),HeadCentrado),Paragraph(str(actividad2['total']),HeadCentrado),Paragraph(str(actividad3['total']),HeadCentrado),Paragraph(str(actividad4['total']),HeadCentrado),Paragraph(str(actividad4['total']+actividad3['total']+actividad2['total']+actividad1['total']),HeadCentrado)]] elements.append(datosPintar(data,[3*cm])) actividad1 = regActividades.objects.filter(fecha__month = Mes, fecha__range = rangoSemana1).aggregate(total=Sum('terapiasOcupacionales')) actividad2 = regActividades.objects.filter(fecha__month = Mes, fecha__range = rangoSemana2).aggregate(total=Sum('terapiasOcupacionales')) actividad3 = regActividades.objects.filter(fecha__month = Mes, fecha__range = rangoSemana3).aggregate(total=Sum('terapiasOcupacionales')) actividad4 = regActividades.objects.filter(fecha__month = Mes, fecha__range = rangoSemana4).aggregate(total=Sum('terapiasOcupacionales')) if actividad1 or actividad2 or actividad3 or actividad4 : if actividad1['total'] : tf1 += actividad1['total'] else : actividad1['total'] = 0 if actividad2['total'] : tf2 += actividad2['total'] else : actividad2['total'] = 0 if actividad3['total'] : tf3 += actividad3['total'] else : actividad3['total'] = 0 if actividad4['total'] : tf4 += actividad4['total'] else : actividad4['total'] = 0 data=[[Paragraph('TERAPIAS OCUPACIONALES', HeadCentrado),Paragraph(str(actividad1['total']),HeadCentrado),Paragraph(str(actividad2['total']),HeadCentrado),Paragraph(str(actividad3['total']),HeadCentrado),Paragraph(str(actividad4['total']),HeadCentrado),Paragraph(str(actividad4['total']+actividad3['total']+actividad2['total']+actividad1['total']),HeadCentrado)]] elements.append(datosPintar(data,[3*cm])) actividad1 = regActividades.objects.filter(fecha__month = Mes, fecha__range = rangoSemana1).aggregate(total=Sum('asistenciaTerapia')) actividad2 = regActividades.objects.filter(fecha__month = Mes, fecha__range = rangoSemana2).aggregate(total=Sum('asistenciaTerapia')) actividad3 = regActividades.objects.filter(fecha__month = Mes, fecha__range = rangoSemana3).aggregate(total=Sum('asistenciaTerapia')) actividad4 = regActividades.objects.filter(fecha__month = Mes, fecha__range = rangoSemana4).aggregate(total=Sum('asistenciaTerapia')) if actividad1 or actividad2 or actividad3 or actividad4 : if actividad1['total'] : tf1 += actividad1['total'] else : actividad1['total'] = 0 if actividad2['total'] : tf2 += actividad2['total'] else : actividad2['total'] = 0 if actividad3['total'] : tf3 += actividad3['total'] else : actividad3['total'] = 0 if actividad4['total'] : tf4 += actividad4['total'] else : actividad4['total'] = 0 data=[[Paragraph('ASISTENTES A TERAPIAS OCUPACIONALES', HeadCentrado),Paragraph(str(actividad1['total']),HeadCentrado),Paragraph(str(actividad2['total']),HeadCentrado),Paragraph(str(actividad3['total']),HeadCentrado),Paragraph(str(actividad4['total']),HeadCentrado),Paragraph(str(actividad4['total']+actividad3['total']+actividad2['total']+actividad1['total']),HeadCentrado)]] elements.append(datosPintar(data,[3*cm])) data=[[Paragraph('TOTAL x ACTIVIDADES', HeadCentrado),Paragraph(str(tf1),HeadCentrado),Paragraph(str(tf2),HeadCentrado),Paragraph(str(tf3),HeadCentrado),Paragraph(str(tf4),HeadCentrado),Paragraph(str(tf4+tf3+tf2+tf1),HeadCentrado)]] elements.append(datosPintar(data,[3*cm])) elements.append(Spacer(0.5*cm,0.5*cm)) elements.append(PageBreak()) # ************************************************************************************************************** # **************** F i n C o n t e n i d o d e l R e p o r t e ********************************************** # ************************************************************************************************************** def myFirstPage(canvas, doc): canvas.saveState() titulosReportePeriodo_Vertical(request, canvas, doc) canvas.setFont('Helvetica',8) canvas.drawString(1*cm,0.25*inch,"Fecha de Impresión : " + str(datetime.now().strftime("%d/%m/%Y - %H:%M:%S"))+ ' Hrs.') canvas.drawString(18*cm,0.25*inch,"Página %d" % (doc.page)) canvas.restoreState() def myLaterPages(canvas, doc): canvas.saveState() titulosReportePeriodo_Vertical(request, canvas, doc) canvas.setFont('Helvetica',8) canvas.drawString(1*cm,0.25*inch,"Fecha de Impresión : " + str(datetime.now().strftime("%d/%m/%Y - %H:%M:%S"))+ ' Hrs.') canvas.drawString(18*cm,0.25*inch,"Página %d" % (doc.page)) canvas.restoreState() doc.build(elements, onFirstPage = myFirstPage, onLaterPages = myLaterPages) return response # ************************************************************************************************************** # **************** F i n R e p o r t e ********************************************************************* # ************************************************************************************************************** # ************************************************************************************************************** # **************** I n i c i a R e p o r t e 6 ************************************************************ # ************************************************************************************************************** # @login_required(login_url='/login_') def reporte6(request): response = HttpResponse(mimetype='application/pdf') doc = SimpleDocTemplate(response, pagesize=A4, rightMargin=5*mm,leftMargin=5*mm, topMargin=2.5*cm,bottomMargin=1*cm) # ************************************************************************************************************** # **************** I n ic i a C o n t e n i d o R e p o r t e ********************************************** # ************************************************************************************************************** fecha_ini = (datetime.strptime(request.POST['fechaIni'], "%Y-%m-%d") - timedelta(days=0)).strftime("%Y-%m-%d") fecha_fin = (datetime.strptime(request.POST['fechaFin'], "%Y-%m-%d") + timedelta(days=0)).strftime("%Y-%m-%d") tresCeldas = [7*cm,4*cm,9*cm] data = [] data=[[Paragraph('DIRECCIÓN DE ORIENTACIÓN FAMILIAR Y ASISTENCIA SOCIAL', HeadCentrado)]] elements.append(datosPintarBorde0(data,[20*cm])) data=[[Paragraph('ALBERGUE FAMILIARES DE ENFERMOS', HeadCentrado)]] elements.append(datosPintarBorde0(data,[20*cm])) elements.append(Spacer(0.5*cm,0.5*cm)) tCon = regUsoHabitacion.objects.filter(fechaHora__range=[fecha_ini, fecha_fin]).dates('fechaHora', 'month', order='ASC') if tCon : for tRow in tCon : Mes = tRow.strftime('%m') data=[['','',Paragraph(tRow.strftime('- %Y -'), titleReport14)]] elements.append(datosPintarBorde0(data,tresCeldas)) elements.append(Spacer(0.5*cm,0.5*cm)) data=[[Paragraph('ALBERGADOS', titleReport),Paragraph(tRow.strftime('%B').upper(), titleReport),Paragraph("OBSERVACIONES", titleReport)]] elements.append(datosPintar(data,tresCeldas)) elements.append(Spacer(0.5*cm,0.5*cm)) tFolios = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], fechaHora__month = Mes, albergado__Estado__nombre = 'TABASCO').count() data=[[Paragraph('MUNICIPIOS DE TABASCO', titleReport),Paragraph(str(tFolios), titleReport),Paragraph("TOTAL DE ALBERGADOS DE TABASCO", Centrado)]] elements.append(datosPintar(data,tresCeldas)) Municipios = CatMunicipio.objects.filter(Estado__nombre = 'TABASCO').order_by('nombre') for Municipio in Municipios : folios = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], fechaHora__month = Mes, albergado__Municipio = Municipio.idMunicipio).count() if folios != 0 : data = [] data.append([Paragraph(Municipio.nombre,HeadCentrado),Paragraph(str(folios),HeadCentrado),'']) elements.append(datosPintar(data,tresCeldas)) elements.append(Spacer(0.5*cm,0.5*cm)) tFolios = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], fechaHora__month = Mes).count() data=[[Paragraph('POR ESTADOS', titleReport),Paragraph(str(tFolios), titleReport),Paragraph("TOTAL DE ALBERGADOS POR ESTADOS", Centrado)]] elements.append(datosPintar(data,tresCeldas)) Estados = CatEstado.objects.all().order_by('nombre') for Estado in Estados : foliosEstados = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], fechaHora__month = Mes, albergado__Estado = Estado.idEstado).count() if foliosEstados != 0 : data=[[Paragraph(Estado.nombre, HeadCentrado),Paragraph(str(foliosEstados), HeadCentrado),'']] elements.append(datosPintar(data,tresCeldas)) elements.append(Spacer(0.5*cm,0.5*cm)) folios = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], fechaHora__month = Mes, albergado__Sexo='M').count() data=[[Paragraph('HOMBRES', HeadCentrado),Paragraph(str(folios), HeadCentrado),'']] elements.append(datosPintar(data,tresCeldas)) folios = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], fechaHora__month = Mes, albergado__Sexo='F').count() data=[[Paragraph('MUJERES', HeadCentrado),Paragraph(str(folios), HeadCentrado),'']] elements.append(datosPintar(data,tresCeldas)) folios = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], fechaHora__month = Mes, albergado__Sexo='M', albergado__Edad__lte = 12).count() data=[[Paragraph('NIÑOS', HeadCentrado),Paragraph(str(folios), HeadCentrado),'']] elements.append(datosPintar(data,tresCeldas)) folios = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], fechaHora__month = Mes, albergado__Sexo='F', albergado__Edad__lte = 12).count() data=[[Paragraph('NIÑAS', HeadCentrado),Paragraph(str(folios), HeadCentrado),'']] elements.append(datosPintar(data,tresCeldas)) folios = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], fechaHora__month = Mes, albergado__Edad__gte = 60).count() data=[[Paragraph('ADULTOS MAYORES (3RA. EDAD)', HeadCentrado),Paragraph(str(folios), HeadCentrado),'']] elements.append(datosPintar(data,tresCeldas)) folios = regUsoHabitacion.objects.filter(fechaHora__range = [fecha_ini, fecha_fin], fechaHora__month = Mes).count() data=[[Paragraph('TOTAL ATENDIDAS', HeadCentrado),Paragraph(str(folios), HeadCentrado),Paragraph('TOTAL DE ALBERGADOS POR GENERO Y EDAD', Centrado)]] elements.append(datosPintar(data,tresCeldas)) elements.append(Spacer(0.5*cm,0.5*cm)) Raciones = regRacionAlimentos.objects.filter(fecha__range=[fecha_ini, fecha_fin], fecha__month = Mes) if Raciones : totalDesayunos = Raciones.aggregate(total=Sum('desayunos')) totalColaciones = Raciones.aggregate(total=Sum('colaciones')) totalCenas = Raciones.aggregate(total=Sum('cenas')) data=[[Paragraph('RACIONES ALIMENTICIAS', Narracion12)]] elements.append(datosPintarBorde0(data,[20*cm])) data=[[Paragraph('DESAYUNOS', HeadCentrado),Paragraph(str(totalDesayunos['total']), HeadCentrado),'']] elements.append(datosPintar(data,tresCeldas)) data=[[Paragraph('COLACIONES', HeadCentrado),Paragraph(str(totalColaciones['total']), HeadCentrado),'']] elements.append(datosPintar(data,tresCeldas)) data=[[Paragraph('CENAS', HeadCentrado),Paragraph(str(totalCenas['total']), HeadCentrado),'']] elements.append(datosPintar(data,tresCeldas)) elements.append(Spacer(0.5*cm,0.5*cm)) data=[[Paragraph('TOTAL DE RACIONES', HeadCentrado),Paragraph(str(totalDesayunos['total']+totalColaciones['total']+totalCenas['total']), HeadCentrado),'']] elements.append(datosPintar(data,tresCeldas)) elements.append(Spacer(0.5*cm,0.5*cm)) Actividad = regActividades.objects.filter(fecha__range=[fecha_ini, fecha_fin], fecha__month = Mes) if Actividad : totalPlaticas = Actividad.aggregate(total=Sum('platicasOrientacion')) totalHospitales = Actividad.aggregate(total=Sum('platicasHospital')) totalInvestigacion = Actividad.aggregate(total=Sum('visitaInvestigacion')) totalOcupacion = Actividad.aggregate(total=Sum('terapiasOcupacionales')) totalAsistente = Actividad.aggregate(total=Sum('asistenciaTerapia')) data=[[Paragraph('ACTIVIDADES REALIZADAS', Narracion12)]] elements.append(datosPintarBorde0(data,[20*cm])) data=[[Paragraph('PLATICAS DE ORIENTACIÓN', HeadCentrado),Paragraph(str(totalPlaticas['total']), HeadCentrado),'']] elements.append(datosPintar(data,tresCeldas)) data=[[Paragraph('PLATICAS DE PROMOCIÓN A HOSPITALES', HeadCentrado),Paragraph(str(totalHospitales['total']), HeadCentrado),'']] elements.append(datosPintar(data,tresCeldas)) data=[[Paragraph('VISITAS DE INVESTIGACIÓN', HeadCentrado),Paragraph(str(totalInvestigacion['total']), HeadCentrado),'']] elements.append(datosPintar(data,tresCeldas)) data=[[Paragraph('TERAPIAS OCUPACIONALES', HeadCentrado),Paragraph(str(totalOcupacion['total']), HeadCentrado),'']] elements.append(datosPintar(data,tresCeldas)) data=[[Paragraph('ASISTENTES A TERAPIAS OCUPACIONALES', HeadCentrado),Paragraph(str(totalAsistente['total']), HeadCentrado),'']] elements.append(datosPintar(data,tresCeldas)) elements.append(Spacer(0.5*cm,0.5*cm)) data=[[Paragraph('TOTAL DE ACTIVIDADES', HeadCentrado),Paragraph(str(totalPlaticas['total']+totalHospitales['total']+totalInvestigacion['total']+totalOcupacion['total']+totalAsistente['total']), HeadCentrado),'']] elements.append(datosPintar(data,tresCeldas)) elements.append(PageBreak()) # ************************************************************************************************************** # **************** F i n C o n t e n i d o d e l R e p o r t e ********************************************** # ************************************************************************************************************** def myFirstPage(canvas, doc): canvas.saveState() titulosReportePeriodo_Vertical(request, canvas, doc) canvas.setFont('Helvetica',8) canvas.drawString(1*cm,0.25*inch,"Fecha de Impresión : " + str(datetime.now().strftime("%d/%m/%Y - %H:%M:%S"))+ ' Hrs.') canvas.drawString(18*cm,0.25*inch,"Página %d" % (doc.page)) canvas.restoreState() def myLaterPages(canvas, doc): canvas.saveState() titulosReportePeriodo_Vertical(request, canvas, doc) canvas.setFont('Helvetica',8) canvas.drawString(1*cm,0.25*inch,"Fecha de Impresión : " + str(datetime.now().strftime("%d/%m/%Y - %H:%M:%S"))+ ' Hrs.') canvas.drawString(18*cm,0.25*inch,"Página %d" % (doc.page)) canvas.restoreState() doc.build(elements, onFirstPage = myFirstPage, onLaterPages = myLaterPages) return response # ************************************************************************************************************** # **************** F i n R e p o r t e ********************************************************************* # ************************************************************************************************************** # ************************************************************************************************************** # **************** I n i c i a R e p o r t e 7 - Padrón de BENEFICIARIOS ********************************** # ************************************************************************************************************** # @login_required(login_url='/login_') def reporte7(request): response = HttpResponse(mimetype='application/pdf') doc = SimpleDocTemplate(response, pagesize=landscape(A4), rightMargin=5*mm,leftMargin=5*mm, topMargin=2*cm,bottomMargin=1*cm) # ************************************************************************************************************** # **************** I n ic i a C o n t e n i d o R e p o r t e 7 ********************************************** # ************************************************************************************************************** fecha_ini = (datetime.strptime(request.POST['fechaIni'], "%Y-%m-%d") - timedelta(days=0)).strftime("%Y-%m-%d") fecha_fin = (datetime.strptime(request.POST['fechaFin'], "%Y-%m-%d") + timedelta(days=0)).strftime("%Y-%m-%d") data = [] # ************** Agrupado x Persona*************************************************************************************** tCon = regUsoHabitacion.objects.filter(fechaHora__range=[fecha_ini, fecha_fin]).values('albergado__nombreLargo','albergado__Estado__nombre','albergado__Municipio__nombre').annotate(veces=Count('albergado__nombreLargo')).order_by('albergado__nombreLargo') nameReporte = 'PADRÓN DE BENEFICIARIOS' estatus = 'TOTAL' # *************************************************************************************************************** elements.append(saltoLinea(saltoLine)) data=[[ Paragraph(nameReporte + '  -   ' + estatus + ': ' + str(tCon.count()),titleReport) ]] elements.append(datosPintar(data,[15*cm])) elements.append(saltoLinea(saltoLine)) data=[[ Paragraph('NO.',HeadCentrado), Paragraph('NOMBRE DEL BENEFICIARIO',HeadCentrado), Paragraph('BENEFICIOS QUE RECIBIO',HeadCentrado), Paragraph('ESTADO',HeadCentrado), Paragraph('MUNICIPIO',HeadCentrado), Paragraph('VECES SERVICIO',HeadCentrado) ]] colwidths = [1*cm,8*cm,6*cm,3.5*cm,5.5*cm,4*cm] elements.append(datosPintar(data,colwidths)) data = [] Consecutivo = 0 for tRow in tCon: Consecutivo = Consecutivo + 1 data.append([ Paragraph(str(Consecutivo),Centrado), Paragraph(tRow['albergado__nombreLargo'],Justificado), Paragraph('HOSPEDAJE Y ALIMENTACIÓN',Centrado), Paragraph(tRow['albergado__Estado__nombre'],Centrado), Paragraph(tRow['albergado__Municipio__nombre'],Centrado), Paragraph(str(tRow['veces']),Centrado) ]) if tCon : elements.append(datosPintar(data,colwidths)) # ************************************************************************************************************** # **************** F i n C o n t e n i d o d e l R e p o r t e ********************************************** # ************************************************************************************************************** def myFirstPage(canvas, doc): canvas.saveState() titulosReportePadron_Horizontal(request, canvas, doc) canvas.setFont('Helvetica',10) canvas.drawString(7*cm,0.25*inch,"Página %d" % (doc.page)) canvas.setFont('Helvetica',8) canvas.restoreState() def myLaterPages(canvas, doc): canvas.saveState() titulosReportePadron_Horizontal(request, canvas, doc) canvas.setFont('Helvetica',10) canvas.drawString(7*cm,0.25*inch,"Página %d" % (doc.page)) canvas.restoreState() doc.build(elements, onFirstPage = myFirstPage, onLaterPages = myLaterPages) return response # ************************************************************************************************************** # **************** F i n R e p o r t e 7 ******************************************************************** # ************************************************************************************************************** # @login_required(login_url='/login_') def reporte8(request): response = HttpResponse(mimetype='application/pdf') doc = SimpleDocTemplate(response, pagesize=landscape(A4), rightMargin=5*mm,leftMargin=5*mm, topMargin=2*cm,bottomMargin=1*cm) # ************************************************************************************************************** # **************** I n ic i a C o n t e n i d o R e p o r t e 8 ********************************************** # ************************************************************************************************************** fecha_ini = (datetime.strptime(request.POST['fechaIni'], "%Y-%m-%d") - timedelta(days=0)).strftime("%Y-%m-%d") fecha_fin = (datetime.strptime(request.POST['fechaFin'], "%Y-%m-%d") + timedelta(days=0)).strftime("%Y-%m-%d") data = [] # ************** Agrupado x Persona*************************************************************************************** tCon = regRacionAlimentos.objects.filter(fecha__range=[fecha_ini, fecha_fin]).order_by('fecha') nameReporte = 'DETALLE DE RACIONES DE ALIMENTOS' estatus = 'TOTAL' # *************************************************************************************************************** elements.append(saltoLinea(saltoLine)) data=[[ Paragraph(nameReporte,titleReport) ]] elements.append(datosPintar(data,[15*cm])) elements.append(saltoLinea(saltoLine)) data=[[ Paragraph('FECHA',HeadCentrado), Paragraph('DESAYUNO',HeadCentrado), Paragraph('COLACIÓN',HeadCentrado), Paragraph('CENA',HeadCentrado), Paragraph('TOTAL',HeadCentrado), ]] colwidths = [4*cm,4*cm,4*cm,4*cm,4*cm] elements.append(datosPintar(data,colwidths)) data = [] Consecutivo = 0 totaldesayunos = 0 totalcolaciones = 0 totalcenas = 0 total = 0 for tRow in tCon: Consecutivo = Consecutivo + 1 f = str(tRow.fecha) dates = f.encode('utf8') dat = datetime.strptime(dates,'%Y-%m-%d' ).strftime('%d/%m/%Y') totaldesayunos+=tRow.desayunos totalcolaciones+=tRow.colaciones totalcenas+=tRow.cenas total+=(tRow.desayunos+tRow.colaciones+tRow.cenas) data.append([ Paragraph(dat,Centrado), Paragraph(str(tRow.desayunos),Centrado), Paragraph(str(tRow.colaciones),Centrado), Paragraph(str(tRow.cenas),Centrado), Paragraph(str(tRow.desayunos+tRow.colaciones+tRow.cenas),Centrado) ]) data.append([Paragraph('TOTAL',HeadCentrado),Paragraph(str(totaldesayunos),Centrado), Paragraph(str(totalcolaciones),Centrado), Paragraph(str(totalcenas),Centrado),Paragraph(str(total),Centrado)]) if tCon : elements.append(datosPintar(data,colwidths)) # ************************************************************************************************************** # **************** F i n C o n t e n i d o d e l R e p o r t e ********************************************** # ************************************************************************************************************** def myFirstPage(canvas, doc): canvas.saveState() titulosReporteComida_Horizontal(request, canvas, doc) canvas.setFont('Helvetica',10) canvas.drawString(1*cm,0.25*inch,"Fecha de Impresión :"+str(datetime.now().strftime("%d/%m/%Y--%H:%M:%S"))+" Hrs.") canvas.drawString(10*cm,0.25*inch,"Página %d" % (doc.page)) canvas.restoreState() def myLaterPages(canvas, doc): canvas.saveState() titulosReporteComida_Horizontal(request, canvas, doc) canvas.setFont('Helvetica',10) canvas.drawString(1*cm,0.25*inch,"Fecha de Impresión :"+str(datetime.now().strftime("%d/%m/%Y--%H:%M:%S"))+" Hrs.") canvas.drawString(10*cm,0.25*inch,"Página %d" % (doc.page)) canvas.restoreState() doc.build(elements, onFirstPage = myFirstPage, onLaterPages = myLaterPages) return response # ************************************************************************************************************** # **************** F i n R e p o r t e 8 ******************************************************************** # ************************************************************************************************************** # @login_required(login_url='/login_') def reporte9(request): response = HttpResponse(mimetype='application/pdf') doc = SimpleDocTemplate(response, pagesize=landscape(A4), rightMargin=5*mm,leftMargin=5*mm, topMargin=2*cm,bottomMargin=1*cm) # ************************************************************************************************************** # **************** I n ic i a C o n t e n i d o R e p o r t e 9 ********************************************** # ************************************************************************************************************** fecha_ini = (datetime.strptime(request.POST['fechaIni'], "%Y-%m-%d") - timedelta(days=0)).strftime("%Y-%m-%d") fecha_fin = (datetime.strptime(request.POST['fechaFin'], "%Y-%m-%d") + timedelta(days=0)).strftime("%Y-%m-%d") data = [] # ************** Agrupado x Persona*************************************************************************************** tCon = regUsoHabitacion.objects.filter(fechaHora__range=[fecha_ini, fecha_fin],albergado__pk=request.POST['albergado']).values('fechaHora','folio','albergado__nombreLargo','albergado__Estado__nombre','albergado__Municipio__nombre').order_by('fechaHora') nameReporte = 'DETALLE DE VISITAS' estatus = 'TOTAL' # *************************************************************************************************************** elements.append(saltoLinea(saltoLine)) data=[[ Paragraph(nameReporte + '  -   ' + estatus + ': ' + str(tCon.count()),titleReport) ]] elements.append(datosPintar(data,[15*cm])) elements.append(saltoLinea(saltoLine)) data=[[ Paragraph('NO.',HeadCentrado), Paragraph('Folio',HeadCentrado), Paragraph('FECHA',HeadCentrado), Paragraph('NOMBRE DEL BENEFICIARIO',HeadCentrado), Paragraph('BENEFICIOS QUE RECIBIO',HeadCentrado), Paragraph('ESTADO',HeadCentrado), Paragraph('MUNICIPIO',HeadCentrado), ]] colwidths = [1*cm,2*cm,4*cm,8*cm,5*cm,4*cm,4*cm] elements.append(datosPintar(data,colwidths)) data = [] Consecutivo = 0 for tRow in tCon: Consecutivo = Consecutivo + 1 f = str(tRow['fechaHora'].date()) fol=str(tRow['folio']) dates = f.encode('utf8') dat = datetime.strptime(dates,'%Y-%m-%d' ).strftime('%d/%m/%Y') data.append([ Paragraph(str(Consecutivo),Centrado), Paragraph(str(fol),Centrado), Paragraph(str(dat),Centrado), Paragraph(tRow['albergado__nombreLargo'],Justificado), Paragraph('HOSPEDAJE Y ALIMENTACIÓN',Centrado), Paragraph(tRow['albergado__Estado__nombre'],Centrado), Paragraph(tRow['albergado__Municipio__nombre'],Centrado), ]) if tCon : elements.append(datosPintar(data,colwidths)) # ************************************************************************************************************** # **************** F i n C o n t e n i d o d e l R e p o r t e ********************************************** # ************************************************************************************************************** def myFirstPage(canvas, doc): canvas.saveState() titulosReporteVisitas_Horizontal(request, canvas, doc) canvas.setFont('Helvetica',10) canvas.drawString(1*cm,0.25*inch,"Fecha de Impresión :"+str(datetime.now().strftime("%d/%m/%Y--%H:%M:%S"))+" Hrs.") canvas.drawString(10*cm,0.25*inch,"Página %d" % (doc.page)) canvas.restoreState() def myLaterPages(canvas, doc): canvas.saveState() titulosReporteVisitas_Horizontal(request, canvas, doc) canvas.setFont('Helvetica',10) canvas.drawString(1*cm,0.25*inch,"Fecha de Impresión :"+str(datetime.now().strftime("%d/%m/%Y--%H:%M:%S"))+" Hrs.") canvas.drawString(10*cm,0.25*inch,"Página %d" % (doc.page)) canvas.restoreState() doc.build(elements, onFirstPage = myFirstPage, onLaterPages = myLaterPages) return response # ************************************************************************************************************** # **************** F i n R e p o r t e 9 ******************************************************************** # ************************************************************************************************************** # @login_required(login_url='/login_') def reporte10(request): response = HttpResponse(mimetype='application/pdf') doc = SimpleDocTemplate(response, pagesize=landscape(A4), rightMargin=5*mm,leftMargin=5*mm, topMargin=2*cm,bottomMargin=1*cm) # ************************************************************************************************************** # **************** I n ic i a C o n t e n i d o R e p o r t e 10 ********************************************** # ************************************************************************************************************** data = [] # ************** Agrupado x Persona*************************************************************************************** cperso = regUsoHabitacion.objects.filter(albergado__pk=request.POST['albergado']).values('albergado__nombreLargo','albergado__Edad','albergado__Sexo','albergado__Estado__nombre','albergado__Municipio__nombre').distinct() tCon = regUsoHabitacion.objects.filter(albergado__pk=request.POST['albergado']).values('folio','hospitalizado__nombreLargo','hospital__nombre','especialidad__especialidad','diagnostico', 'fechaHora') nameReporte = 'DETALLE DE VISITAS' estatus = 'TOTAL' pueba1 = cperso # ************************************************************************************************************** elements.append(saltoLinea(saltoLine)) elements.append(saltoLinea(saltoLine)) data=[[ Paragraph('NOMBRE DEL BENEFICIARIO',HeadCentrado), Paragraph('EDAD',HeadCentrado), Paragraph('SEXO',HeadCentrado), Paragraph('ESTADO',HeadCentrado), Paragraph('MUNICIPIO',HeadCentrado), ]] colwidths = [7*cm,3*cm,3*cm,5*cm,4*cm] elements.append(datosPintar(data,colwidths)) data = [] tCons = ['F','M'] sexo = '' for veri in cperso: if veri == 'F' : sexo = 'FEMENINO' else : sexo = 'MASCULINO' eda=str(veri['albergado__Edad']) data.append([ Paragraph(veri['albergado__nombreLargo'],Centrado), Paragraph(str(eda),Centrado), Paragraph(sexo,Centrado), Paragraph(veri['albergado__Estado__nombre'],Centrado), Paragraph(veri['albergado__Municipio__nombre'],Centrado), ]) if cperso : elements.append(datosPintar(data,colwidths)) elements.append(saltoLinea(saltoLine)) data=[[ Paragraph('NO.',HeadCentrado), Paragraph('FOLIO',HeadCentrado), Paragraph('HOSPITALIZADO',HeadCentrado), Paragraph('HOSPITAL',HeadCentrado), Paragraph('ESPECIALIDAD',HeadCentrado), Paragraph('DIAGNOSTICO',HeadCentrado), Paragraph('FECHA DE REGISTRO',HeadCentrado), ]] colwidths = [1*cm,1.4*cm,6*cm,7.5*cm,4*cm,5*cm,2.5*cm] elements.append(datosPintar(data,colwidths)) data = [] Consecutivo = 0 for tRow in tCon: Consecutivo = Consecutivo + 1 #f = str(tRow['Nombre'].date()) foli=str(tRow['folio']) #hospi=str(tRow['hospitalizado']) #hosp=str(tRow['hospital']) #espec=str(tRow['especialidad']) fechora=str(tRow['fechaHora'].strftime("%d/%m/%Y")) #dates = f.encode('utf8') #dat = datetime.strptime(dates,'%Y-%m-%d' ).strftime('%d/%m/%Y') data.append([ Paragraph(str(Consecutivo),Centrado), Paragraph(str(foli),Centrado), Paragraph(tRow['hospitalizado__nombreLargo'],Justificado), Paragraph(tRow['hospital__nombre'],Justificado), Paragraph(tRow['especialidad__especialidad'],Justificado), #Paragraph(str(hospi),Centrado), #Paragraph(str(hosp),Centrado), #Paragraph(str(espec),Centrado), Paragraph(tRow['diagnostico'],Justificado), Paragraph(str(fechora),Centrado), ]) if cperso : elements.append(datosPintar(data,colwidths)) # **************** F i n C o n t e n i d o d e l R e p o r t e ********************************************** # ************************************************************************************************************** def myFirstPage(canvas, doc): canvas.saveState() titulosReporteVisitas_Horizontal1(request, canvas, doc) canvas.setFont('Helvetica',10) canvas.drawString(1*cm,0.25*inch,"Fecha de Impresión :"+str(datetime.now().strftime("%d/%m/%Y--%H:%M:%S"))+" Hrs.") canvas.drawString(10*cm,0.25*inch,"Página %d" % (doc.page)) canvas.restoreState() def myLaterPages(canvas, doc): canvas.saveState() titulosReporteVisitas_Horizontal1(request, canvas, doc) canvas.setFont('Helvetica',10) canvas.drawString(1*cm,0.25*inch,"Fecha de Impresión :"+str(datetime.now().strftime("%d/%m/%Y--%H:%M:%S"))+" Hrs.") canvas.drawString(10*cm,0.25*inch,"Página %d" % (doc.page)) canvas.restoreState() doc.build(elements, onFirstPage = myFirstPage, onLaterPages = myLaterPages) return response # ************************************************************************************************************** # **************** F i n R e p o r t e 10 ******************************************************************** # ************************************************************************************************************** # @login_required(login_url='/login_') def reporte11(request): response = HttpResponse(mimetype='application/pdf') doc = SimpleDocTemplate(response, pagesize=landscape(A4), rightMargin=5*mm,leftMargin=5*mm, topMargin=2*cm,bottomMargin=1*cm) # ************************************************************************************************************** # **************** I n ic i a C o n t e n i d o R e p o r t e 11 ********************************************** # ************************************************************************************************************** fecha_ini = (datetime.strptime(request.POST['fechaIni'], "%Y-%m-%d") - timedelta(days=0)).strftime("%Y-%m-%d") fecha_fin = (datetime.strptime(request.POST['fechaFin'], "%Y-%m-%d") + timedelta(days=0)).strftime("%Y-%m-%d") data = [] # ************** Agrupado x Persona*************************************************************************************** tCon = regActividades.objects.filter(fecha__range=[fecha_ini, fecha_fin]).order_by('fecha') nameReporte = 'DETALLE DE ACTIVIDADES REALIZADAS' estatus = 'TOTAL' # *************************************************************************************************************** elements.append(saltoLinea(saltoLine)) data=[[ Paragraph(nameReporte,titleReport) ]] elements.append(datosPintar(data,[15*cm])) elements.append(saltoLinea(saltoLine)) data=[[ Paragraph('FECHA',HeadCentrado), Paragraph('PLATICAS DE ORIENTACIÓN',HeadCentrado), Paragraph('PLATICAS DE PROMOCIÓN A HOSPITALES',HeadCentrado), Paragraph('VISITA DE INVESTIGACIÓN',HeadCentrado), Paragraph('TERAPIAS OCUPACIONALES',HeadCentrado), Paragraph('ASISTENTES A TERAPIAS OCUPACIONALES',HeadCentrado), Paragraph('TOTAL',HeadCentrado), ]] colwidths = [4*cm,4*cm,4*cm,4*cm,4*cm,4*cm,4*cm] elements.append(datosPintar(data,colwidths)) data = [] Consecutivo = 0 totalPlaticas = 0 totalHospitales = 0 totalInvestigacion = 0 totalOcupacion = 0 totalAsistente = 0 total = 0 for tRow in tCon: Consecutivo = Consecutivo + 1 f = str(tRow.fecha) dates = f.encode('utf8') dat = datetime.strptime(dates,'%Y-%m-%d' ).strftime('%d/%m/%Y') totalPlaticas+=tRow.platicasOrientacion totalHospitales+=tRow.platicasHospital totalInvestigacion+=tRow.visitaInvestigacion totalOcupacion+=tRow.terapiasOcupacionales totalAsistente+=tRow.asistenciaTerapia total+=(tRow.platicasOrientacion+tRow.platicasHospital+tRow.visitaInvestigacion+tRow.terapiasOcupacionales+tRow.asistenciaTerapia) data.append([ Paragraph(dat,Centrado), Paragraph(str(tRow.platicasOrientacion),Centrado), Paragraph(str(tRow.platicasHospital),Centrado), Paragraph(str(tRow.visitaInvestigacion),Centrado), Paragraph(str(tRow.terapiasOcupacionales),Centrado), Paragraph(str(tRow.asistenciaTerapia),Centrado), Paragraph(str(tRow.platicasOrientacion+tRow.platicasHospital+tRow.visitaInvestigacion+tRow.terapiasOcupacionales+tRow.asistenciaTerapia),Centrado) ]) data.append([Paragraph('TOTAL',HeadCentrado),Paragraph(str(totalPlaticas),Centrado), Paragraph(str(totalHospitales),Centrado), Paragraph(str(totalInvestigacion),Centrado), Paragraph(str(totalOcupacion),Centrado), Paragraph(str(totalAsistente),Centrado), Paragraph(str(total),Centrado)]) if tCon : elements.append(datosPintar(data,colwidths)) # ************************************************************************************************************** # **************** F i n C o n t e n i d o d e l R e p o r t e ********************************************** # ************************************************************************************************************** def myFirstPage(canvas, doc): canvas.saveState() titulosReporteComida_Horizontal1(request, canvas, doc) canvas.setFont('Helvetica',10) canvas.drawString(1*cm,0.25*inch,"Fecha de Impresión :"+str(datetime.now().strftime("%d/%m/%Y--%H:%M:%S"))+" Hrs.") canvas.drawString(10*cm,0.25*inch,"Página %d" % (doc.page)) canvas.restoreState() def myLaterPages(canvas, doc): canvas.saveState() titulosReporteComida_Horizontal1(request, canvas, doc) canvas.setFont('Helvetica',10) canvas.drawString(1*cm,0.25*inch,"Fecha de Impresión :"+str(datetime.now().strftime("%d/%m/%Y--%H:%M:%S"))+" Hrs.") canvas.drawString(10*cm,0.25*inch,"Página %d" % (doc.page)) canvas.restoreState() doc.build(elements, onFirstPage = myFirstPage, onLaterPages = myLaterPages) return response # ************************************************************************************************************** # **************** F i n R e p o r t e 11 ******************************************************************** # ************************************************************************************************************** # ************************************************************************************************************** # **************** F i n S e c c i ó n d e R e p o r t e s ************************************************ # ************************************************************************************************************** def catPaises(request, proceso): global Paises context = {} if proceso == '0' : # Entrar context = {'Paises':Paises} if proceso == '1' : # Guardar if CatPais.objects.all().count() != 0 : sigId = CatPais.objects.latest('idPais').idPais + 1 else : sigId = 1 try: add = CatPais( idPais = sigId, nombre = request.POST['nombre'] ) add.save() Paises = CatPais.objects.all().order_by ('nombre') context = {'Grabo':'1','Paises':Paises} except Exception, e: context = {'Grabo':'0','Paises':Paises} return render(request, 'frm_catPaises.html', context) def catEstados(request, proceso): global Estados context = {} if proceso == '0' : # Entrar context = {'Paises':Paises} if proceso == '2' : # buscar estados Estados = CatEstado.objects.filter(Pais_id = request.POST['pais']).order_by ('nombre') context = {'Paises':Paises,'Estados':Estados,'pais':request.POST['pais']} if proceso == '1' : # Guardar if CatEstado.objects.all().count() != 0 : sigId = CatEstado.objects.latest('idEstado').idEstado + 1 else : sigId = 1 try: add = CatEstado( idEstado = sigId, Pais_id = request.POST['pais'], nombre = request.POST['nombre'] ) add.save() Estados = CatEstado.objects.filter(Pais_id = request.POST['pais']).order_by ('nombre') context = {'Grabo':'1','Paises':Paises,'Estados':Estados,'pais':request.POST['pais']} except Exception, e: context = {'Grabo':'0','Paises':Paises} return render(request, 'frm_catEstados.html', context) @login_required(login_url='/login') def catMunicipios(request, proceso): global Municipios context = {} if proceso == '0' : # Entrar context = {'Paises':Paises} if proceso == '2' : # buscar estados Estados = CatEstado.objects.filter(Pais_id = request.POST['pais']).order_by ('nombre') context = {'Paises':Paises,'Estados':Estados,'pais':request.POST['pais']} if proceso == '3' : # buscar municipios Estados = CatEstado.objects.filter(Pais_id = request.POST['pais']).order_by ('nombre') Municipios = CatMunicipio.objects.filter(Pais_id = request.POST['pais'], Estado_id = request.POST['estado']).order_by ('nombre') context = {'Paises':Paises,'Estados':Estados,'Municipios':Municipios,'pais':request.POST['pais'],'estado':request.POST['estado']} if proceso == '1' : # Guardar if CatMunicipio.objects.all().count() != 0 : sigId = CatMunicipio.objects.latest('idMunicipio').idMunicipio + 1 else : sigId = 1 try: add = CatMunicipio( idMunicipio = sigId, Pais_id = request.POST['pais'], Estado_id = request.POST['estado'], nombre = request.POST['nombre'] ) add.save() Estados = CatEstado.objects.filter(Pais_id = request.POST['pais']).order_by ('nombre') Municipios = CatMunicipio.objects.filter(Pais_id = request.POST['pais'], Estado_id = request.POST['estado']).order_by ('nombre') context = {'Grabo':'1','Paises':Paises,'Estados':Estados,'Municipios':Municipios,'pais':request.POST['pais'],'estado':request.POST['estado']} except Exception, e: context = {'Grabo':'0','Paises':Paises} return render(request, 'frm_catMunicipios.html', context) def prueba(request): context = {} return render(request, 'prueba.html', context) ############################################################### def anuenciasBorrarDetalleView(request, id = 0): regRacionAlimentos.objects.get(idRacionComida = id).delete() messages.success(request,'Se Elimino Correctamente El dia del Alimento') return HttpResponseRedirect( '/inicio/index/') def buscar(request): query = request.GET.get('q', '') if query: qset = ( Q(idRacionComida__icontains=query) | Q(fecha__icontains=query) ) results = regRacionAlimentos.objects.filter(qset).distinct() else: results = [] return render_to_response("consulta_comida.html", { "results": results, "query": query },context_instance = RequestContext(request)) from django.contrib import messages def alimento_update(request,id): i = regRacionAlimentos.objects.get(idRacionComida= id) if request.method == 'POST': form = ActualizarForm(request.POST, instance=i) try: form.save() messages.success(request,'Se Actualizo Correctamente') return HttpResponseRedirect('/alimento/buscar/') except Exception, e: msj = "No se pudo modificar el alimento" messages.error(request, msj) else: form = ActualizarForm(instance=i) return render_to_response('consulta_alimento_actualizar.html', {'form': form},context_instance = RequestContext(request)) ####################################################################### def actividadBorrarDetalleView(request, id = 0): regActividades.objects.get(idActividades = id).delete() messages.success(request,'Se Elimino Correctamente El dia de la Actividad') return HttpResponseRedirect( '/inicio/index/') def buscarActividad(request): query = request.GET.get('q', '') if query: qset = ( Q(idActividades__icontains=query) | Q(fecha__icontains=query) ) results = regActividades.objects.filter(qset).distinct() else: results = [] return render_to_response("consulta_actividades.html", { "results": results, "query": query },context_instance = RequestContext(request)) from django.contrib import messages def actividad_update(request,id): i = regActividades.objects.get(idActividades= id) if request.method == 'POST': form = ActualizarActivForm(request.POST, instance=i) try: form.save() messages.success(request,'Se Actualizo Correctamente') return HttpResponseRedirect('/actividades/buscar/') except Exception, e: msj = "No se pudo modificar la actividad" messages.error(request, msj) else: form = ActualizarActivForm(instance=i) return render_to_response('consulta_actividades_actualizar.html', {'form': form},context_instance = RequestContext(request)) ######################################################################### def buscarRegUsoHab(request): query = request.GET.get('q', '') if query: qset = ( Q(folio__icontains=query) ) results = regUsoHabitacion.objects.filter(qset).distinct() else: results = [] return render_to_response("consulta_habitacion.html", { "results": results, "query": query },context_instance = RequestContext(request)) from django.contrib import messages def regusohab_update(request,id): i = regUsoHabitacion.objects.get(idUsoHabitacion= id) if request.method == 'POST': formA = ActualizarRegHabForm(request.POST, instance=i) try: formA.save() messages.success(request,'Se Actualizo Correctamente') return HttpResponseRedirect('/habitacion/buscar/') except Exception, e: msj = "No se pudo modificar el registro de la habitación" messages.error(request, msj) else: formA = ActualizarRegHabForm(instance=i) return render_to_response('consulta_habitacion_actualizar.html', {'formA': formA},context_instance = RequestContext(request))