From 864ef1117d4f482da2d8f24b13f54968f64cb217 Mon Sep 17 00:00:00 2001 From: fjrodriguez Date: Wed, 7 Dec 2022 07:16:03 -0600 Subject: [PATCH] division by zero --- Clientes/admin.py | 2 +- Clientes/forms.py | 2 +- Clientes/migrations/0012_clientes_email.py | 18 ++++++ .../migrations/0013_clientes_conteo_mes.py | 18 ++++++ Clientes/models.py | 34 ++++++++++- Clientes/views.py | 27 +++++++-- Templates/Clientes/edit_cliente.html | 4 ++ Templates/Clientes/index.html | 57 ++++++++++++++++++- Templates/partials/search_form.html | 5 +- Templates/sidebar.html | 2 +- 10 files changed, 152 insertions(+), 17 deletions(-) create mode 100644 Clientes/migrations/0012_clientes_email.py create mode 100644 Clientes/migrations/0013_clientes_conteo_mes.py diff --git a/Clientes/admin.py b/Clientes/admin.py index 209b05a..561cda6 100644 --- a/Clientes/admin.py +++ b/Clientes/admin.py @@ -3,7 +3,7 @@ from .models import Timbres, saldoModel, Clientes,ErroresTimbres class TimbresAdmin(admin.ModelAdmin): - list_display=['uuid','rfcc','rfcp','fecha','folio','serie','tipo','modo'] + list_display=['uuid','rfcc','rfcp','fecha','folio','serie','tipo','modo','created_at'] class ClientesAdmin(admin.ModelAdmin): diff --git a/Clientes/forms.py b/Clientes/forms.py index dd677e0..5c61f53 100644 --- a/Clientes/forms.py +++ b/Clientes/forms.py @@ -14,7 +14,7 @@ class ClienteForm(forms.ModelForm): class Meta: model = Clientes - fields = ('RFC','Nombre','Activo','fecha_baja') + fields = ('RFC','Nombre','Activo','fecha_baja', 'email',) def clean(self): super(ClienteForm,self).clean() diff --git a/Clientes/migrations/0012_clientes_email.py b/Clientes/migrations/0012_clientes_email.py new file mode 100644 index 0000000..7576bdf --- /dev/null +++ b/Clientes/migrations/0012_clientes_email.py @@ -0,0 +1,18 @@ +# Generated by Django 4.1.3 on 2022-12-06 17:46 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('Clientes', '0011_merge_0010_merge_20221205_1039_0010_timbres_modo'), + ] + + operations = [ + migrations.AddField( + model_name='clientes', + name='email', + field=models.EmailField(blank=True, max_length=254), + ), + ] diff --git a/Clientes/migrations/0013_clientes_conteo_mes.py b/Clientes/migrations/0013_clientes_conteo_mes.py new file mode 100644 index 0000000..55b2759 --- /dev/null +++ b/Clientes/migrations/0013_clientes_conteo_mes.py @@ -0,0 +1,18 @@ +# Generated by Django 4.1.3 on 2022-12-06 20:04 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('Clientes', '0012_clientes_email'), + ] + + operations = [ + migrations.AddField( + model_name='clientes', + name='conteo_mes', + field=models.IntegerField(blank=True, default=0, null=True), + ), + ] diff --git a/Clientes/models.py b/Clientes/models.py index 4185a32..71f3887 100644 --- a/Clientes/models.py +++ b/Clientes/models.py @@ -1,6 +1,6 @@ from django.db import models import datetime - +from django.db.models import Q class saldoModel(models.Model): saldo = models.IntegerField() @@ -38,9 +38,37 @@ class Clientes(models.Model): Nombre = models.CharField(max_length=100) Activo = models.BooleanField(default=False) fecha_baja = models.DateField(blank=True,null=True) - + email = models.EmailField(max_length=254, blank=True) + conteo_mes = models.IntegerField(blank=True,null=True,default=0) + def timbres_X_MES(self, mes): + + today = datetime.date.today() + year = today.year + print('mesmesmesmesmes',mes) + if mes==None: + mes = today.month + dat = datetime.datetime(int(year),int(mes),1) + if dat.month in (1,3,5,7,8,10,12):#31 + + findate = dat + datetime.timedelta(days=30) + findate += datetime.timedelta(days=0) + elif dat.month in (4,6,9,11):#30 + + findate = dat + datetime.timedelta(days=29) + findate += datetime.timedelta(days=0) + else:#28 or 29 + + findate = dat + datetime.timedelta(days=28) + findate += datetime.timedelta(days=0) + print(f'dat {(dat)} fdate={findate}') + cou = Timbres.objects.filter(rfcc=self.RFC, created_at__range=[dat,findate]).count() + print(cou) + self.conteo_mes =cou + self.save() + return cou @property - def timbres_mes_count(self): + def timbres_mes_count(self): + today = datetime.date.today() month = today.month year = today.year diff --git a/Clientes/views.py b/Clientes/views.py index 04a4ff6..d6b7aaf 100644 --- a/Clientes/views.py +++ b/Clientes/views.py @@ -16,16 +16,26 @@ from asgiref.sync import sync_to_async #EXCEL from openpyxl import Workbook from openpyxl.styles import Alignment, Border, Font, PatternFill, Side - +import json @login_required def index(request): + clientes_list = Clientes.objects.all() + mes = request.GET.get('mes', None) page = request.GET.get('page', 1) search = request.GET.get('search',None) rfcc = request.GET.get('rfcc', None) + filters = {key:value[0] for (key,value) in dict(request.GET).items() if value !=[""]} + filters.pop('page', '') + filters.pop('datepicker','') + filters.pop('datepickerFin','') + print('filters------',filters) if rfcc: - clientes_list = Clientes.objects.filter(Q(RFC__icontains=search)) + clientes_list = Clientes.objects.filter(Q(RFC__icontains=search)) + + for i,ii in enumerate(clientes_list): + ii.timbres_X_MES(mes=mes) paginator = Paginator(clientes_list, 5) @@ -35,8 +45,11 @@ def index(request): lista = paginator.page(1) except EmptyPage: lista = paginator.page(paginator.num_pages) + filters.pop('mes','') context = { 'lista':lista, + 'mes':mes, + 'filters':filters } return render(request,'Clientes/index.html',context) @@ -114,13 +127,15 @@ def timbres_cliente(request, RFC): end += datetime.timedelta(days=1) #datetime.date.today() #print('FECHA',datetime.datetime.today(), 'HORA') - #print('start',start, 'end',end) + print('start',start, 'end',end) lista = lista.filter(created_at__range=[start, end]) conteo = lista.count() - perPage = conteo // 2 - if perPage == 0 : - perPage = conteo + print('conteo',conteo) + if conteo !=0 : + perPage = conteo // 2 + else: + perPage = 1 lista =pageFunc(page,lista,perPage) context ={ diff --git a/Templates/Clientes/edit_cliente.html b/Templates/Clientes/edit_cliente.html index 97f351b..fedbf3d 100644 --- a/Templates/Clientes/edit_cliente.html +++ b/Templates/Clientes/edit_cliente.html @@ -16,6 +16,10 @@ {% render_field form.Nombre id+="add" id+=form.Nombre.name placeholder=form.Nombre.label class="form-control" type="text" autocomplete="off" %} +
+ + {% render_field form.email id+="add" id+=form.email.name placeholder=form.email.label class="form-control" type="text" autocomplete="off" %} +
{% render_field form.Activo class+="form-checkbox" type="checkbox" %} diff --git a/Templates/Clientes/index.html b/Templates/Clientes/index.html index 6acc8e2..f0812b2 100644 --- a/Templates/Clientes/index.html +++ b/Templates/Clientes/index.html @@ -19,7 +19,34 @@ Timbres disponibles Comercio Digital: {{saldo.saldo}} Cliente RFC Nombre - Totales Mes {{fecha|date:"F"}} + Totales Mes + + Estado actions @@ -34,7 +61,9 @@ Timbres disponibles Comercio Digital: {{saldo.saldo}} {{obj.RFC}} {{obj.Nombre}} - {{obj.timbres_mes_count}} + + {{obj.conteo_mes}} + {% if obj.Activo %} @@ -57,10 +86,14 @@ Timbres disponibles Comercio Digital: {{saldo.saldo}} {% endfor %} + + {% endblock content %} {% block scripts %} diff --git a/Templates/partials/search_form.html b/Templates/partials/search_form.html index 02e7f3b..ea354f1 100644 --- a/Templates/partials/search_form.html +++ b/Templates/partials/search_form.html @@ -3,7 +3,8 @@ Fecha: {{fecha|date:"d F Y"}}
- + +
@@ -12,7 +13,7 @@
- +