def choices_for_request(self): q = self.request.GET.get('q', '') empresa = nombre_empresa(self.request) choices = Terceros.objects.filter(tipotercero__descripcion="CLIENTES", empresa=empresa['nombre_empresa']) if q: choices = choices.filter(denominacion__icontains=q) return choices
def choices_for_request(self): q = self.request.GET.get('q', '') empresa = nombre_empresa(self.request) choices = Lotes.objects.filter(empresa=empresa['nombre_empresa']) if q: choices = choices.filter( Q(producto__denomina__icontains=q) | Q(referencia__icontains=q)) return choices
def choices_for_request(self): q = self.request.GET.get('q', '') lote = self.request.GET.get('lotes', None) empresa = nombre_empresa(self.request) choices = self.choices.filter(empresa=empresa['nombre_empresa']) if lote: choices = choices.filter(lotes=lote) if q: choices = choices.filter(denomina__icontains=q) return self.order_choices(choices)[0:self.limit_choices]
def get_queryset(self): id = self.kwargs['pid'] modelo = self.kwargs['pmodelo'] tpid = self.kwargs['ptpid'] objeto = nombre_empresa(self.request) self.acciones["empresa"] = objeto['nombre_empresa'] self.acciones ['id'] = id objeto = ContentType.objects.get(model=modelo) idmodelo = objeto.id if tpid =="0": #Discrimina si tiene que hacer referencia a un tipo de plan de control especifico q = { "content_type_id" : idmodelo} #Filtra el reporte a la tabla else: q = { "content_type_id" : idmodelo, "tpplancontrol_id" : tpid} #Filtra el reporte a la tabla y al tipo de plan de control return Informes.objects.filter(**q)
def choices_for_request(self): q = self.request.GET.get('q', '') empresa = nombre_empresa(self.request) choices = Lotes.objects.filter(empresa=empresa['nombre_empresa']) # Obtengo el stock actual stock = StockActual.objects.filter(Q(peso__gt=0) | Q(cant__gt=0)).values_list('id') objectStock = choices.in_bulk(stock) keys = objectStock.keys() # Filtro los lotes si tienen stock choices = choices.filter(pk__in=keys) if q: choices = choices.filter( Q(producto__denomina__icontains=q) | Q(referencia__icontains=q)) return choices
def impresion(request,pid,id): # Solo se puede pasar un parametro al reporte , SOLO ID SOLO ID, !CUIDADO! # id valor del parametro a pasar al informe sirve para su generacion #pid valor de id de detalles infomre sirve para generar entrada de parametros para el informe #Verificar si existen paramaetros a mostrar ...... nombreEmpresa = nombre_empresa(request) empresa = nombreEmpresa['nombre_empresa'] pempresa = empresa.pk try: informe = Informes.objects.get(pk=pid) print informe.content_type.model if not comprobar_autorizacion_reportes(informe.content_type.model,id,pempresa) : raise Http404 numpara = DetalleInformes.objects.filter(informe = pid).count() except Informes.DoesNotExist: raise Http404 if numpara == 0: if len(informe.nombprocede) != 0: from django.db import connection sql = informe.nombprocede cursor = connection.cursor() cursor.execute(sql) cursor.close() camino = informe.url return HttpResponse(llamareporte(informe.nombrereport,informe.url,[]), content_type='application/pdf') else: try: informe = Informes.objects.get(pk=pid) parametros = DetalleInformes.objects.filter(informe = pid, mostrar=True).exclude(nombparametro='pid') numpara = parametros.count() formInformes = ParametrosForms(request.POST or None,pidinfo=pid,idconsulta=id) except Informes.DoesNotExist: raise Http404 if numpara ==0: #Solo existe una opcion para un parametro sin ventana de entrada de datos de parametros dinforme = DetalleInformes.objects.filter(informe =pid ,mostrar=False) if dinforme.count() == 1: cd=[] if dinforme[0].query_modelo is not None: if len(dinforme[0].query_modelo) !=0: id = eval( dinforme[0].query_modelo ) cd.append({ 'nombparametro': dinforme[0].nombparametro, 'valor' : str(id) }) print cd return HttpResponse(llamareporte(informe.nombrereport,informe.url,cd), content_type='application/pdf') else: #Llama a ventana para introducir parametros..... if request.method == 'POST': cd=[] if formInformes.is_valid(): paraform = formInformes.cleaned_data if len(informe.nombprocede) != 0: #Llamada a procedimientos em caso de que exista from django.db import connection var=[] i=0 for para in cd: var.append(str(para['valor'])) cursor = connection.cursor() #ret = cursor.callproc(str(informe.nombprocede),(var[1],var[0])) ret = cursor.callproc(str(informe.nombprocede)) cursor.close() else: dinforme = DetalleInformes.objects.filter(informe=pid) for para in dinforme: print "----------- parametros" print paraform print "Valor parametros %s" % paraform[para.nombparametro] print "Nombre parametos %s " % para.nombparametro print para.query_modelo id=0 if para.query_modelo is not None and len(para.query_modelo) !=0: id = eval( para.query_modelo ) if id is not None: id= str(id) else: id="0" else: id =paraform[para.nombparametro] cd.append({ 'nombparametro': para.nombparametro, 'valor' : id }) print cd return HttpResponse(llamareporte(informe.nombrereport,informe.url,cd), content_type='application/pdf') else: print formInformes.errors #recorremos el post construyendo la cadena de parametros para anexar a la url del informe. return render_response( request,"reportes/parametros.html",{'form': formInformes,})
def ConsultaExistenciasView(request): request.breadcrumbs(generarBreadCrumb(request.path_info)) #template_name = "trazabilidad/detalleslotes.html" template_name = "trazabilidad/consulta_existencias.html" auxiliar = {"etiqueta": "Existencias/Trazabilidad"} busqueda = None formulario = None stockConsumido = 0 stockCon = "" stockCantidad = 0 stockCan = "" stockPeso = 0 stockPes = "" urlImpresion = None form1 = ConsultaExistenciasForm() formdetail2 = None formdetail1 = None if 'limpiar' in request.POST: return HttpResponseRedirect('/trazabilidad/existencias') if 'FindAll' in request.POST: formulario = 'productoExistencias' empresa = nombre_empresa(request)['nombre_empresa'] informe = Informes.objects.get( descripcion="CONTROL DE EXISTENCIAS TOTAL") urlImpresion = '/reportes/impresion/%s/%s' % (informe.pk, empresa.pk) empresa = nombre_empresa(request)['nombre_empresa'] stockActual = StockActual.objects.filter(empresa_id=empresa.pk) for stock in stockActual: if stock.peso == None: stockCantidad = stockCantidad + stock.cant if stockCantidad != 1: stockCan = ("%s unidades") % stockCantidad else: stockCan = ("%s unidad") % stockCantidad else: stockPeso = stockPeso + stock.peso stockPes = ("%s Kg.") % stockPeso formdetail2 = None formdetail1 = None return render_to_response(template_name, { 'form1': form1, 'formdetail2': formdetail2, 'formdetail1': formdetail1, 'auxiliar': auxiliar, 'busqueda': busqueda, 'formulario': formulario, 'stockConsumido': stockCon, 'stockCantidad': stockCan, 'stockPeso': stockPes, 'urlImpresion': urlImpresion, 'stockActual': stockActual }, context_instance=RequestContext(request)) if request.method == 'POST': form1 = ConsultaExistenciasForm(request.POST or None) if form1.is_valid(): lote = form1.cleaned_data['lote'] if lote: busqueda = lote informe = Informes.objects.get( descripcion="CONTROL DE TRAZABILIDAD") urlImpresion = '/reportes/impresion/%s/%s' % (informe.pk, lote.pk) formulario = 'lote' detalbsal = DetalleAlbaran.objects.filter( lote=lote, albaran__tpdoc__abrv="ALBOUT") for det in detalbsal: if det.cantidad == None: stockConsumido = stockConsumido + det.peso stockCon = ("%s Kg.") % stockConsumido else: stockConsumido = stockConsumido + det.cantidad if stockConsumido != 1: stockCon = ("%s unidades") % stockConsumido else: stockCon = ("%s unidad") % stockConsumido formdetail2 = LotesDetAlbFormset( initial=detalbsal.values('referencia', 'id')) detalbent = DetalleAlbaran.objects.filter( lote=lote, albaran__tpdoc__abrv="ALBIN") formdetail1 = LotesDetAlbFormset( initial=detalbent.values('referencia', 'id')) producto = form1.cleaned_data['producto'] if producto: formulario = 'producto' busqueda = producto informe = Informes.objects.get( descripcion="CONTROL DE EXISTENCIAS") urlImpresion = '/reportes/impresion/%s/%s' % (informe.pk, producto.pk) lotes = Lotes.objects.filter(producto=producto) formdetail2 = LotesFormset( initial=lotes.values('referencia', 'id')) formdetail1 = None for lot in lotes: stockActual = StockActual.objects.get(id=lot.id) if stockActual.peso == None: stockCantidad = stockCantidad + stockActual.cant if stockCantidad != 1: stockCan = ("%s unidades") % stockCantidad else: stockCan = ("%s unidad") % stockCantidad else: stockPeso = stockPeso + stockActual.peso stockPes = ("%s Kg.") % stockPeso else: form1 = ConsultaExistenciasForm() formdetail1 = None formdetail2 = None return render_to_response(template_name, { 'form1': form1, 'formdetail2': formdetail2, 'formdetail1': formdetail1, 'auxiliar': auxiliar, 'busqueda': busqueda, 'formulario': formulario, 'stockConsumido': stockCon, 'stockCantidad': stockCan, 'stockPeso': stockPes, 'urlImpresion': urlImpresion }, context_instance=RequestContext(request))