This commit is contained in:
fjrodriguez
2022-11-30 08:44:59 -06:00
parent e2121905d6
commit 2d55c0974a
13 changed files with 370 additions and 46 deletions

View File

@@ -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,
),
]

View File

@@ -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

View File

@@ -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'),
]

View File

@@ -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)