from django.shortcuts import render from django.http import HttpResponse from django.contrib.auth.decorators import login_required from .models import Timbres from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from django.db.models import Q import datetime @login_required def index(request): timbres_list = Timbres.objects.values('rfcc').distinct() page = request.GET.get('page', 1) search = request.GET.get('search',None) rfcc = request.GET.get('rfcc', None) if rfcc: timbres_list = Timbres.objects.filter(Q(rfcc__icontains=search)) paginator = Paginator(timbres_list, 1) try: timbres = paginator.page(page) except PageNotAnInteger: timbres = paginator.page(1) except EmptyPage: timbres = paginator.page(paginator.num_pages) context = { 'timbres':timbres, } return render(request,'Clientes/index.html',context) def add_timbre(request): uuid= request.GET.get('uuid', None) rfcc= request.GET.get('rfcc', None) fecha=request.GET.get('fecha', None) folio=request.GET.get('folio', None) serie=request.GET.get('serie', None) tipo=request.GET.get('tipo', None) rfcp=request.GET.get('rfcp', None) obj={ 'uuid':uuid, 'rfcc':rfcc, 'fecha':fecha, 'folio':folio, 'serie':serie, 'tipo':tipo, 'rfcp':rfcp } try: obj = Timbres.objects.create(**obj) return HttpResponse('ok') except Exception as e: return HttpResponse(e) def pageFunc(page,qs,per_page): paginator = Paginator(qs,per_page) try: qs = paginator.page(page) except PageNotAnInteger: qs = Paginator.page(1) except EmptyPage: qs = paginator.page(paginator.num_pages) return qs def timbres_cliente(request, RFC): lista = Timbres.objects.filter(rfcc=RFC) search = request.GET.get('search',None) page = request.GET.get('page', 1) datepicker = request.GET.get('datepicker', None) datepickerFin = request.GET.get('datepickerFin', None) tipo = request.GET.get('tipo',None) filters = {key:value for (key,value) in dict(request.GET).items() if value !=None} print(filters) if tipo: lista = lista.filter(Q(tipo__icontains=search)) if datepicker and datepickerFin: inicio = [int(i) for i in datepicker.split("/")] fin = [int(i) for i in datepickerFin.split("/")] inicio.sort(reverse=True) fin.sort(reverse=True) start = datetime.date(inicio[0],inicio[2],inicio[1]) end = datetime.date(fin[0],fin[2],fin[1]) end += datetime.timedelta(days=1) print(start, end) lista = lista.filter(created_at__range=[start, end]) conteo = lista.count() pageFunc(page,lista,1) context ={ 'lista':lista, 'conteo':conteo, 'RFC':RFC } return render(request, 'Clientes/timbres_cliente.html', context)