#encoding:utf-8 # Create your views here. from django.db.models import * from django.shortcuts import get_object_or_404, render, render_to_response from django.http import * from django.shortcuts import render_to_response from django.template.response import * from django.contrib.auth.decorators import * from django.contrib.auth import * from registros.models import * from almacenes.models import * from principal.models import * from django.shortcuts import * from django.contrib.auth.models import User from registros.forms import * from django.db.models import * from datetime import * from django.contrib import messages from django.utils import formats from django.views.generic import ListView from django.core.context_processors import csrf from django.views.decorators.csrf import csrf_exempt from django.db.models import Q from django.db.models import Count import json from django.core import serializers from django.contrib.auth.forms import UserCreationForm from django.template.response import TemplateResponse from django.utils.html import format_html, format_html_join from datetime import datetime import datetime from datetime import datetime, timedelta def agregarArticulo(request): idUser = User.objects.get(id = request.user.id) ai = Usuario.objects.get(id = request.user.id ) usuario = ai.nombre almacen = ai.almacen idUsoArticulo=regUsoArticulo.objects.count() if idUsoArticulo != 0: ultimo= int(idUsoArticulo); cadena = str(ultimo) # return HttpResponse(cade) if ultimo >= 10: consecutivo = ultimo + 1 if ultimo < 9: cadena=str(ultimo+1) consecutivo = '0' +cadena if ultimo == 9: consecutivo=ultimo+1 else: consecutivo = '1' folio=regUsoArticulo.objects.count() if folio != 0: ultimo= int(folio); cadena = str(ultimo) # return HttpResponse(cade) if ultimo >= 10: consecutivo21 = ultimo + 1 if ultimo < 9: cadena=str(ultimo+1) consecutivo21 = '0' +cadena if ultimo == 9: consecutivo21=ultimo+1 else: consecutivo21 = '01' if request.method=='POST': form = articuloRegistroForm(request.POST) try: if form.is_valid(): form.save() msj = 'Se cargo el Articulo Al Almacen' messages.success(request, msj) return HttpResponseRedirect('/agregar/articulo/') except Exception, e: messages.error(request, e.message) else: form = articuloRegistroForm(initial={'idUsoArticulo': (consecutivo),'folio': (consecutivo21), 'idUser':idUser, 'usuario':ai, 'noAlmacen':almacen}) print form menuactivo3 = 'active' contexto = {'idUsoArticulo':consecutivo,'folio': consecutivo21, 'form':form, 'menuactivo3':menuactivo3, idUser: 'idUser','noAlmacen':almacen} return render_to_response('registro_articulo.html', contexto ,context_instance = RequestContext(request)) def articuloBitacora(request): if request.method=='POST': form = bitacorasForm(request.POST) if form.is_valid(): form.save() messages.success(request, 'Articulo Ingresado') return HttpResponseRedirect('/index') else: form = bitacorasForm() menuactivo3 = 'active' return render_to_response('bitacora.html',{'form':bitacorasForm, 'menuactivo3':menuactivo3},context_instance=RequestContext(request)) def articuloAgregar(request, id): inventarios = regUsoArticulo.objects.get(idUsoArticulo = id) a= inventarios.idArticulo objectos = inventarios.cantidad if request.method=='POST': form = articuloActualizarAgreegarForm(request.POST, instance=inventarios) if form.is_valid(): form.save() messages.success(request, 'Articulo Actualizado') return HttpResponseRedirect('/buscar/articulo') else: form = articuloActualizarAgreegarForm(initial={'cantidad':objectos}) menuactivo3 = 'active' return render_to_response('registro_actualiza.html',{'cantidad':objectos,'a':a, 'form':form, 'menuactivo3':menuactivo3},context_instance=RequestContext(request)) def buscarArticulo(request): var1 = Usuario.objects.filter(id=request.user.id) ai = Usuario.objects.get(id = request.user.id ) a = ai.almacen results1 = regUsoArticulo.objects.filter(noAlmacen=a).filter(ejercicio='2013') results = regUsoArticulo.objects.filter(noAlmacen=a).filter(ejercicio='2014') results2 = regUsoArticulo.objects.filter(noAlmacen=a).filter(ejercicio='2015') results3 = regUsoArticulo.objects.filter(noAlmacen=a).filter(ejercicio='2016') results4 = regUsoArticulo.objects.filter(noAlmacen=a).filter(ejercicio='2017') results5 = regUsoArticulo.objects.filter(noAlmacen=a).filter(ejercicio='2018') #results6 = regUsoArticulo.objects.filter(noAlmacen=a).filter(ejercicio='2019') return TemplateResponse(request, 'buscar_articulo.html',{"results": results,"results1": results1,"results2": results2,"results3":results3,"results4":results4,"results5":results5,'principal':'active'}) # def buscarArticulo(request): # idUser = User.objects.get(id = request.user.id) # query = request.GET.get('q', '') # if query: # idUser = idUser, # qset = ( Q(folio__icontains=query) | # Q(idArticulo__descripcion__icontains=query) | # Q(origen__icontains=query) # ) # results = regUsoArticulo.objects.filter(qset).filter(idUser=request.user).exclude(cantidad=0).distinct().order_by('origen') # else: # results = [] # return render_to_response("buscar_articulo.html", { # "results": results, # "query": query },context_instance = RequestContext(request)) def buscarArticulos1(request): query = request.GET.get('q', '') if query: qset = ( Q(folio__icontains=query) | Q(idArticulo__descripcion__icontains=query) | Q(origen__icontains=query) ) results = regUsoArticulo.objects.filter(qset).distinct() print results else: results = [] return render_to_response("buscar_articulos21.html", { "results": results, "query": query },context_instance = RequestContext(request)) def articuloBorrarDetalleView(request, id = 0): regUsoArticulo.objects.get(idUsoArticulo = id).delete() messages.success(request,'Se Elimino Correctamente El Articulo') return HttpResponseRedirect( '/buscar/articulo/') def registroVelatorio(request,id): idUser = User.objects.get(id = request.user.id) inventarios = regUsoArticulo.objects.get(idUsoArticulo = id) eladi = inventarios.idUsoArticulo objectos = inventarios.cantidad-1 articulitos = inventarios.idArticulo alman = inventarios.noAlmacen #almacen = ai.almacen idregUsoVelatorio=regUsoVelatorio.objects.count() if idregUsoVelatorio != 0: ultimo= int(idregUsoVelatorio); cadena = str(ultimo) # return HttpResponse(cade) if ultimo >= 10: consecutivo = ultimo + 1 if ultimo < 9: cadena=str(ultimo+1) consecutivo = '0' +cadena if ultimo == 9: consecutivo=ultimo+1 else: consecutivo = '1' folio=regUsoVelatorio.objects.count() if folio != 0: ultimo= int(folio); cadena = str(ultimo) # return HttpResponse(cade) if ultimo >= 10: consecutivo21 = ultimo + 1 if ultimo < 9: cadena=str(ultimo+1) consecutivo21 = '0' +cadena if ultimo == 9: consecutivo21=ultimo+1 else: consecutivo21 = '1' if request.method=='POST': form = velatorioForm(request.POST) form1 = articuloActualizarCantidadForm(request.POST, instance=inventarios) try: if form.is_valid() and form1.is_valid(): form.save() form1.save() msj = 'Se cargo el servicio del velatorio' messages.success(request, msj) return HttpResponseRedirect('/procesos/traeFoliosFecha/pruebaw/') except Exception, e: messages.error(request, e.message) else: form = velatorioForm(initial={'idregUsoVelatorio': (consecutivo),'folio': (consecutivo21), 'idUser':idUser, 'articulo':articulitos, 'idUsoArticulo':eladi, 'noAlmacen':alman }) form1 = articuloActualizarCantidadForm(initial={'cantidad':objectos}) menuactivo3 = 'active' contexto = {'idregUsoVelatorio':consecutivo,'folio':consecutivo21, 'form':form, 'form1':form1, 'idUser':idUser, 'cantidad':objectos, 'articulo':articulitos, 'idUsoArticulo':eladi, 'noAlmacen':alman ,'menuactivo3':menuactivo3} return render_to_response('velatorio.html', contexto ,context_instance = RequestContext(request)) def reporteVelatorio(request,id): idregUsoVelatorio = id inventarios = regUsoVelatorio.objects.get(idregUsoVelatorio = id) persona = regUsoVelatorio.objects.get(idregUsoVelatorio=idregUsoVelatorio) qwe = persona.idregUsoVelatorio ai = Usuario.objects.get(idUser=request.user ) des = ai.nombre u = inventarios.articulo a = inventarios.idUser b = inventarios.idregUsoVelatorio c = inventarios.apellidoPaterno d = inventarios.apellidoMaterno e = inventarios.nombre f = inventarios.edad g = inventarios.sexo t = inventarios.estadoCivil h = inventarios.domicilioActual i = inventarios.telefono j = inventarios.estado k = inventarios.municipio l = inventarios.nombre2 m = inventarios.salaVelatorio n = inventarios.embalsamamiento o = inventarios.traslado p = inventarios.sepelio q = inventarios.tramites r = inventarios.cuota s = inventarios.fechaHora v = inventarios.folio if m == True: ma = 'SALA VELATORIO' else: ma = '' if n == True: na = 'EMBALSAMAMIENTO' else: na = '' if o == True: oa = 'TRASLADO' else: oa = '' if p == True: pa = 'SEPELIO' else: pa = '' if q == True: qa = 'TRAMITES' else: qa = '' # print a contexto = {'des':des,'a':a,'b':b,'c':c,'d':d,'e':e,'f':f,'g':g,'h':h,'i':i,'j':j,'k':k,'l':l,'ma':ma,'na':na,'oa':oa,'pa':pa,'qa':qa,'r':r,'s':s,'t':t, 'u':u, 'v':v} return render_to_response('imprimir_velatorio.html', contexto ,context_instance = RequestContext(request)) def imprimirFolio(request, idregUsoVelatorio): persona = regUsoVelatorio.objects.get(idregUsoVelatorio=idregUsoVelatorio) qwe = persona.idregUsoVelatorio ai = Usuario.objects.get(idUser=request.user ) des = ai.nombre u = persona.articulo a = persona.idUser b = persona.idregUsoVelatorio c = persona.apellidoPaterno d = persona.apellidoMaterno e = persona.nombre f = persona.edad g = persona.sexo t = persona.estadoCivil h = persona.domicilioActual i = persona.telefono j = persona.estado k = persona.municipio l = persona.nombre2 m = persona.salaVelatorio n = persona.embalsamamiento o = persona.traslado p = persona.sepelio q = persona.tramites r = persona.cuota s = persona.fechaHora v = persona.folio y = persona.guia z = persona.reciboTesoreria aa = persona.status if m == True: ma = 'SALA VELATORIO' else: ma = '' if n == True: na = 'EMBALSAMAMIENTO' else: na = '' if o == True: oa = 'TRASLADO' else: oa = '' if p == True: pa = 'SEPELIO' else: pa = '' if q == True: qa = 'TRAMITES' else: qa = '' if y == True: ya = 'GUIA' else: ya = '' contexto = {'persona':persona,'des':des,'a':a,'b':b,'c':c,'d':d,'e':e,'f':f,'g':g,'h':h,'i':i,'j':j,'k':k,'l':l,'ma':ma,'na':na,'oa':oa,'pa':pa,'qa':qa,'r':r,'s':s,'t':t, 'u':u, 'v':v, 'ya':ya, 'z':z,'aa':aa} return render_to_response('imprimir_velatorio.html', contexto ,context_instance = RequestContext(request)) def traeFoliosFecha(request,idregUsoVelatorio): prueba = regUsoVelatorio.objects.latest('idregUsoVelatorio').idregUsoVelatorio prueba2 = regUsoVelatorio.objects.latest('idregUsoVelatorio').nombre prueba3 = regUsoVelatorio.objects.latest('idregUsoVelatorio').edad prueba4 = regUsoVelatorio.objects.latest('idregUsoVelatorio').sexo prueba5 = regUsoVelatorio.objects.latest('idregUsoVelatorio').estadoCivil prueba6 = regUsoVelatorio.objects.latest('idregUsoVelatorio').estado prueba7 = regUsoVelatorio.objects.latest('idregUsoVelatorio').municipio prueba8 = regUsoVelatorio.objects.latest('idregUsoVelatorio').nombre2 prueba9 = regUsoVelatorio.objects.latest('idregUsoVelatorio').articulo prueba10 = regUsoVelatorio.objects.latest('idregUsoVelatorio').apellidoPaterno prueba11 = regUsoVelatorio.objects.latest('idregUsoVelatorio').apellidoMaterno prueba12 = regUsoVelatorio.objects.latest('idregUsoVelatorio').cuota prueba13 = regUsoVelatorio.objects.latest('idregUsoVelatorio').salaVelatorio prueba14 = regUsoVelatorio.objects.latest('idregUsoVelatorio').embalsamamiento prueba15 = regUsoVelatorio.objects.latest('idregUsoVelatorio').traslado prueba16 = regUsoVelatorio.objects.latest('idregUsoVelatorio').sepelio prueba17 = regUsoVelatorio.objects.latest('idregUsoVelatorio').tramites prueba18 = regUsoVelatorio.objects.latest('idregUsoVelatorio').guia prueba19 = regUsoVelatorio.objects.latest('idregUsoVelatorio').reciboTesoreria if prueba13 == True: prueba13 = 'SALA VELATORIO' else: prueba13 = '' if prueba14 == True: prueba14 = 'EMBALSAMAMIENTO' else: prueba14 = '' if prueba15 == True: prueba15 = 'TRASLADO' else: prueba15 = '' if prueba16 == True: prueba16 = 'SEPELIO' else: prueba16 = '' if prueba17 == True: prueba17 = 'TRAMITES' else: prueba17 = '' if prueba18 == True: prueba18 = 'GUIA' else: prueba18 = '' #Fecha = (datetime.strptime(request.POST['fechaIngreso'], "%Y-%m-%d") - timedelta(days=0)).strftime("%Y-%m-%d") #Fecha = request.POST['fechaHora'] Folios = regUsoVelatorio.objects.order_by('idregUsoVelatorio') context = {'Folios':Folios, 'prueba':prueba,'prueba2':prueba2,'prueba3':prueba3,'prueba4':prueba4,'prueba5':prueba5,'prueba6':prueba6,'prueba7':prueba7,'prueba8':prueba8,'prueba9':prueba9,'prueba10':prueba10,'prueba11':prueba11,'prueba12':prueba12,'prueba13':prueba13,'prueba14':prueba14,'prueba15':prueba15,'prueba16':prueba16,'prueba17':prueba17,'prueba18':prueba18,'prueba19':prueba19} return render(request, 'folios.html', context) def traeFoliosFecha2(request): prueba = regUsoVelatorio.objects.latest('idregUsoVelatorio').idregUsoVelatorio prueba2 = regUsoVelatorio.objects.latest('idregUsoVelatorio').nombre prueba3 = regUsoVelatorio.objects.latest('idregUsoVelatorio').edad prueba4 = regUsoVelatorio.objects.latest('idregUsoVelatorio').sexo prueba5 = regUsoVelatorio.objects.latest('idregUsoVelatorio').estadoCivil prueba6 = regUsoVelatorio.objects.latest('idregUsoVelatorio').estado prueba7 = regUsoVelatorio.objects.latest('idregUsoVelatorio').municipio prueba8 = regUsoVelatorio.objects.latest('idregUsoVelatorio').nombre2 prueba9 = regUsoVelatorio.objects.latest('idregUsoVelatorio').articulo prueba10 = regUsoVelatorio.objects.latest('idregUsoVelatorio').apellidoPaterno prueba11 = regUsoVelatorio.objects.latest('idregUsoVelatorio').apellidoMaterno prueba12 = regUsoVelatorio.objects.latest('idregUsoVelatorio').cuota prueba13 = regUsoVelatorio.objects.latest('idregUsoVelatorio').salaVelatorio prueba14 = regUsoVelatorio.objects.latest('idregUsoVelatorio').embalsamamiento prueba15 = regUsoVelatorio.objects.latest('idregUsoVelatorio').traslado prueba16 = regUsoVelatorio.objects.latest('idregUsoVelatorio').sepelio prueba17 = regUsoVelatorio.objects.latest('idregUsoVelatorio').tramites prueba18 = regUsoVelatorio.objects.latest('idregUsoVelatorio').guia prueba19 = regUsoVelatorio.objects.latest('idregUsoVelatorio').reciboTesoreria if prueba13 == True: prueba13 = 'SALA VELATORIO' else: prueba13 = '' if prueba14 == True: prueba14 = 'EMBALSAMAMIENTO' else: prueba14 = '' if prueba15 == True: prueba15 = 'TRASLADO' else: prueba15 = '' if prueba16 == True: prueba16 = 'SEPELIO' else: prueba16 = '' if prueba17 == True: prueba17 = 'TRAMITES' else: prueba17 = '' if prueba18 == True: prueba18 = 'GUIA' else: prueba18 = '' #Fecha = (datetime.strptime(request.POST['fechaIngreso'], "%Y-%m-%d") - timedelta(days=0)).strftime("%Y-%m-%d") #Fecha = request.POST['fechaHora'] Folios = regUsoVelatorio.objects.order_by('idregUsoVelatorio') context = {'Folios':Folios, 'prueba':prueba,'prueba2':prueba2,'prueba3':prueba3,'prueba4':prueba4,'prueba5':prueba5,'prueba6':prueba6,'prueba7':prueba7,'prueba8':prueba8,'prueba9':prueba9,'prueba10':prueba10,'prueba11':prueba11,'prueba12':prueba12,'prueba13':prueba13,'prueba14':prueba14,'prueba15':prueba15,'prueba16':prueba16,'prueba17':prueba17,'prueba18':prueba18,'prueba19':prueba19} return render(request, 'folios.html', context) from django.views.decorators.csrf import csrf_exempt @csrf_exempt def consultarMunicpio(request): if request.is_ajax(): if request.method=='GET': respuest="este se envio via get" elif request.method=='POST': id_estado=request.POST['id_estado'] partidas=serializers.serialize("json",Municipio.objects.all().filter(estado=id_estado),fields=('id','nombre')) return HttpResponse(partidas,mimetype="application/javascript") from django.views.decorators.csrf import csrf_exempt 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 cancelarActualizarStock(request, id): estatutos= regUsoVelatorio.objects.get(idregUsoVelatorio = id) cance = estatutos.idUsoArticulo es = estatutos.status #print form cancelador = estatutos.idUsoArticulo.cantidad if request.method=='POST': form = statusmodificar(request.POST, instance=estatutos) form1 = statuasumainventarioForm(request.POST, instance=cance) print form1 if form.is_valid() and form1.is_valid(): form.save() form1.save() messages.success(request, 'Articulo Actualizado') return HttpResponseRedirect('/index') else: form = statusmodificar(initial={'status':es}) form1 = statuasumainventarioForm(initial={'cantidad':cancelador + 1}) menuactivo3 = 'active' return render_to_response('estatus.html',{'cantidad':cancelador,'es':es,'cance':cance,'form':form,'form1':form1, 'menuactivo3':menuactivo3},context_instance=RequestContext(request)) def verDetalle(request, id): inventarios = regUsoVelatorio.objects.get(idregUsoVelatorio = id) prueba = inventarios.idregUsoVelatorio prueba2 = inventarios.nombre prueba3 = inventarios.edad prueba4 = inventarios.sexo prueba5 = inventarios.estadoCivil prueba6 = inventarios.estado prueba7 = inventarios.municipio prueba8 = inventarios.nombre2 prueba9 = inventarios.articulo prueba10 = inventarios.apellidoPaterno prueba11 = inventarios.apellidoMaterno prueba12 = inventarios.cuota prueba13 = inventarios.salaVelatorio prueba14 = inventarios.embalsamamiento prueba15 = inventarios.traslado prueba16 = inventarios.sepelio prueba17 = inventarios.tramites prueba18 = inventarios.guia prueba19 = inventarios.reciboTesoreria prueba20 = inventarios.status if prueba13 == True: prueba13 = 'SALA VELATORIO' else: prueba13 = '' if prueba14 == True: prueba14 = 'EMBALSAMAMIENTO' else: prueba14 = '' if prueba15 == True: prueba15 = 'TRASLADO' else: prueba15 = '' if prueba16 == True: prueba16 = 'SEPELIO' else: prueba16 = '' if prueba17 == True: prueba17 = 'TRAMITES' else: prueba17 = '' if prueba18 == True: prueba18 = 'GUIA' else: prueba18 = '' return render_to_response('ver_detalle.html',{'prueba':prueba,'prueba2':prueba2,'prueba3':prueba3,'prueba4':prueba4,'prueba5':prueba5,'prueba6':prueba6,'prueba7':prueba7,'prueba8':prueba8,'prueba9':prueba9,'prueba10':prueba10,'prueba11':prueba11,'prueba12':prueba12,'prueba13':prueba13,'prueba14':prueba14,'prueba15':prueba15,'prueba16':prueba16,'prueba17':prueba17,'prueba18':prueba18,'prueba19':prueba19,'prueba20':prueba20,'inventarios':inventarios},context_instance=RequestContext(request)) # ******************************************************************************************************************** # ******************* 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, "REGISTRO Y CONTROL DE ARTICULO DEL DIF") canvas.drawString(11*cm,19.5*cm, "CENTRO VELATORIO" ) canvas.drawString(11*cm,19*cm, "DEL " + request.POST['fechaIni'] + " AL " + request.POST['fechaFin'] ) 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 reporte01(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 ********************************************** # ************************************************************************************************************** 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 = regUsoVelatorio.objects.filter(fechaHora__range=[fecha_ini, fecha_fin]) tKon = regUsoVelatorio.objects.filter(fechaHora__range=[fecha_ini, fecha_fin]) ai = Usuario.objects.get(id = request.user.id ) a = ai.almacen donadosi1 = regUsoVelatorio.objects.filter(fechaHora__range=[fecha_ini, fecha_fin]).filter(noAlmacen=a).filter(idUsoArticulo__origen='Donado') donadosi2 = regUsoVelatorio.objects.filter(fechaHora__range=[fecha_ini, fecha_fin]).filter(noAlmacen=a).filter(idUsoArticulo__origen='Comprado') tCon1 = donadosi1.count() tKon1 = donadosi2.count() sumatoria = tCon1 + tKon1 nameReporte = 'BENEFICIARIOS DE CENTRO VELATORIO' estatus = 'TOTAL' origen1 = 'DONADOS' origen2 = 'COMPRADOS' igual = ':' esta = 'BENEFICIARIOS DONADO' estaA = 'BENEFICIARIOS COMPRADO' # ************************************************************************************************************** data=[[ Paragraph(nameReporte + '  ' + origen1 + igual + str(donadosi1.count()) + '  ' + origen2 + igual + str(donadosi2.count()) + '  -   ' + estatus + ': ' + str(sumatoria),titleReport) ]] elements.append(datosPintar(data,[15*cm])) elements.append(saltoLinea(saltoLine)) if tCon1 == 0: elements.append(saltoLinea(saltoLine)) else: elements.append(saltoLinea(saltoLine)) elements.append(saltoLinea(saltoLine)) data=[[ Paragraph(esta,titleReport) ]] elements.append(datosPintar(data,[15*cm])) data=[[ Paragraph('ARTICULO',HeadCentrado), Paragraph('NOMBRE DEL BENEFICIARIO',HeadCentrado), Paragraph('NOMBRE DEL FALLECIDO',HeadCentrado), Paragraph('FECHA DE ENTREGA',HeadCentrado), Paragraph('ORIGEN',HeadCentrado), Paragraph('No. RECIBO',HeadCentrado), ]] colwidths = [6*cm,4*cm,3*cm,3*cm,5*cm,4*cm] elements.append(datosPintar(data,colwidths)) data = [] for tCon in donadosi1: w = tCon.nombre y = tCon.apellidoPaterno z = tCon.apellidoMaterno f = tCon.fechaHora dat = f.date() data.append([ Paragraph(tCon.articulo,Justificado), Paragraph((w + ' '+ y + ' ' + z),Justificado), Paragraph(tCon.nombre2,Centrado), Paragraph(str(dat),Centrado), Paragraph('Donado',Centrado), Paragraph(tCon.reciboTesoreria,Centrado) ]) if tCon : elements.append(datosPintar(data,colwidths)) if tKon1 == 0: elements.append(saltoLinea(saltoLine)) else: elements.append(saltoLinea(saltoLine)) data=[[ Paragraph(estaA,titleReport) ]] elements.append(datosPintar(data,[15*cm])) data=[[ Paragraph('ARTICULO',HeadCentrado), Paragraph('NOMBRE DEL BENEFICIARIO',HeadCentrado), Paragraph('NOMBRE DEL FALLECIDO',HeadCentrado), Paragraph('FECHA DE ENTREGA',HeadCentrado), Paragraph('ORIGEN',HeadCentrado), Paragraph('No. RECIBO',HeadCentrado), ]] colwidths = [6*cm,4*cm,3*cm,3*cm,5*cm,4*cm] elements.append(datosPintar(data,colwidths)) data = [] for tKon in donadosi2: w = tKon.nombre y = tKon.apellidoPaterno z = tKon.apellidoMaterno f = tKon.fechaHora dat = f.date() data.append([ Paragraph(tKon.articulo,Justificado), Paragraph((w + ' '+ y + ' ' + z),Justificado), Paragraph(tKon.nombre2,Centrado), Paragraph(str(dat),Centrado), Paragraph('Comprado',Centrado), Paragraph(tKon.reciboTesoreria,Centrado) ]) if tKon : 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 01 ******************************************************************** # ************************************************************************************************************** # ************************************************************************************************************** # **************** I n i c i a R e p o r t e 2 ************************************************************ # ************************************************************************************************************** # @login_required(login_url='/login_') def reporte02(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 ********************************************** # ************************************************************************************************************** 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 = regUsoVelatorio.objects.filter(fechaHora__range=[fecha_ini, fecha_fin]) ai = Usuario.objects.get(id = request.user.id ) a = ai.almacen donadosi1 = regUsoVelatorio.objects.filter(fechaHora__range=[fecha_ini, fecha_fin]).filter(noAlmacen=a).filter(idUsoArticulo__origen='General') tCon1 = donadosi1.count() nameReporte = 'BENEFICIARIOS DE CENTRO VELATORIO' estatus = 'TOTAL' origen1 = 'SERVICIO' igual = ':' esta = 'BENEFICIARIOS DE SERVICIO' # ************************************************************************************************************** data=[[ Paragraph(nameReporte + '  ' + origen1 + igual + str(donadosi1.count()),titleReport) ]] elements.append(datosPintar(data,[15*cm])) elements.append(saltoLinea(saltoLine)) if tCon1 == 0: elements.append(saltoLinea(saltoLine)) else: elements.append(saltoLinea(saltoLine)) elements.append(saltoLinea(saltoLine)) data=[[ Paragraph(esta,titleReport) ]] elements.append(datosPintar(data,[15*cm])) data=[[ Paragraph('ARTICULO',HeadCentrado), Paragraph('NOMBRE DEL BENEFICIARIO',HeadCentrado), Paragraph('NOMBRE DEL FALLECIDO',HeadCentrado), Paragraph('FECHA DE ENTREGA',HeadCentrado), Paragraph('No. RECIBO',HeadCentrado), ]] colwidths = [10*cm,4*cm,3*cm,3*cm,4*cm] elements.append(datosPintar(data,colwidths)) data = [] for tCon in donadosi1: w = tCon.nombre y = tCon.apellidoPaterno z = tCon.apellidoMaterno f = tCon.fechaHora dat = f.date() zz = tCon.salaVelatorio za = tCon.embalsamamiento ze = tCon.traslado zi = tCon.sepelio zo = tCon.tramites zu = tCon.guia if zz == True: zz = 'Sala Velatorio' else: zz = '' if za == True: za = 'Enbalsamamiento' else: za = '' if ze == True: ze = 'Traslado' else: ze = '' if zi == True: zi = 'Sepelio' else: zi = '' if zo == True: zo = 'tramites' else: zo = '' if zu == True: zu = 'Guia' else: zu = '' data.append([ Paragraph((zz+' '+za+' '+ze+' '+zi+' '+zo+' '+zu),Centrado), Paragraph((w + ' '+ y + ' ' + z),Justificado), Paragraph(tCon.nombre2,Centrado), Paragraph(str(dat),Centrado), Paragraph(tCon.reciboTesoreria,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_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 02 ******************************************************************** # ************************************************************************************************************** # ************************************************************************************************************** # **************** I n i c i a R e p o r t e 3 ************************************************************ # ************************************************************************************************************** # @login_required(login_url='/login_') def reporte03(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 ********************************************** # ************************************************************************************************************** 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 = regUsoVelatorio.objects.filter(fechaHora__range=[fecha_ini, fecha_fin]) ai = Usuario.objects.get(id = request.user.id ) a = ai.almacen donadosi1 = regUsoVelatorio.objects.filter(fechaHora__range=[fecha_ini, fecha_fin]).filter(noAlmacen=a).filter(status='Cancelado') tCon1 = donadosi1.count() nameReporte = 'BENEFICIARIOS DE CENTRO VELATORIO' estatus = 'TOTAL' origen1 = 'CANCELADO' igual = ':' esta = 'BENEFICIARIOS DE SERVICIO' # ************************************************************************************************************** data=[[ Paragraph(nameReporte + '  ' + origen1 + igual + str(donadosi1.count()),titleReport) ]] elements.append(datosPintar(data,[15*cm])) elements.append(saltoLinea(saltoLine)) if tCon1 == 0: elements.append(saltoLinea(saltoLine)) else: elements.append(saltoLinea(saltoLine)) elements.append(saltoLinea(saltoLine)) data=[[ Paragraph(esta,titleReport) ]] elements.append(datosPintar(data,[15*cm])) data=[[ Paragraph('ARTICULO',HeadCentrado), Paragraph('NOMBRE DEL BENEFICIARIO',HeadCentrado), Paragraph('NOMBRE DEL FALLECIDO',HeadCentrado), Paragraph('FECHA DE ENTREGA',HeadCentrado), Paragraph('No. RECIBO',HeadCentrado), ]] colwidths = [10*cm,4*cm,3*cm,3*cm,4*cm] elements.append(datosPintar(data,colwidths)) data = [] for tCon in donadosi1: w = tCon.nombre y = tCon.apellidoPaterno z = tCon.apellidoMaterno f = tCon.fechaHora dat = f.date() zz = tCon.salaVelatorio za = tCon.embalsamamiento ze = tCon.traslado zi = tCon.sepelio zo = tCon.tramites zu = tCon.guia if zz == True: zz = 'Sala Velatorio' else: zz = '' if za == True: za = 'Enbalsamamiento' else: za = '' if ze == True: ze = 'Traslado' else: ze = '' if zi == True: zi = 'Sepelio' else: zi = '' if zo == True: zo = 'tramites' else: zo = '' if zu == True: zu = 'Guia' else: zu = '' data.append([ Paragraph(tCon.articulo,Justificado), Paragraph((w + ' '+ y + ' ' + z),Justificado), Paragraph(tCon.nombre2,Centrado), Paragraph(str(dat),Centrado), Paragraph(tCon.reciboTesoreria,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_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 03 ******************************************************************** # **************************************************************************************************************