filtros
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
# Generated by Django 4.1.3 on 2022-11-29 12:14
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.utils.timezone
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('Clientes', '0002_timbres_rfcp'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name='timbres',
|
||||
options={'ordering': ('-created_at',)},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='timbres',
|
||||
name='created_at',
|
||||
field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
||||
@@ -9,3 +9,31 @@ class Timbres(models.Model):
|
||||
serie = models.CharField(max_length=10)
|
||||
tipo = models.CharField(max_length=35)
|
||||
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
class Meta:
|
||||
ordering = ('-created_at',)
|
||||
|
||||
|
||||
class ErroresTimbres(models.Model):
|
||||
uuid = models.CharField(max_length=36)
|
||||
description = models.TextField()
|
||||
rfcc = models.CharField(max_length=13)
|
||||
folio = models.CharField(max_length=55)
|
||||
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
class Meta:
|
||||
ordering = ('uuid',)
|
||||
abstract = True
|
||||
|
||||
class Clientes(models.Model):
|
||||
RFC = models.CharField(max_length=13, unique=True)
|
||||
Nombre = models.CharField(max_length=100)
|
||||
|
||||
|
||||
Activo = models.BooleanField(default=True)
|
||||
fecha_baja = models.DateField(blank=True)
|
||||
|
||||
class Meta:
|
||||
ordering = ('RFC',)
|
||||
abstract =True
|
||||
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
from django.urls import path,include
|
||||
from .views import index,add_timbre
|
||||
from .views import index,add_timbre, timbres_cliente
|
||||
urlpatterns = [
|
||||
path('', index, name='index'),
|
||||
path('add_timbre/', add_timbre, name='add_timbre'),
|
||||
path('timbres_cliente/<str:RFC>/', timbres_cliente, name='timbres_cliente'),
|
||||
|
||||
|
||||
]
|
||||
@@ -3,11 +3,21 @@ 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.all()
|
||||
|
||||
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:
|
||||
@@ -44,4 +54,50 @@ def add_timbre(request):
|
||||
return HttpResponse('ok')
|
||||
except Exception as e:
|
||||
|
||||
return HttpResponse(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)
|
||||
Reference in New Issue
Block a user