diff --git a/Admin/settings.py b/Admin/settings.py index d160c95..c9bcd46 100644 --- a/Admin/settings.py +++ b/Admin/settings.py @@ -1,6 +1,12 @@ from pathlib import Path import os +import pytz +#print time zones +# for x in pytz.all_timezones_set: +# print(x) + + # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent @@ -12,7 +18,7 @@ BASE_DIR = Path(__file__).resolve().parent.parent SECRET_KEY = 'django-insecure-5*mm&uf5zq@t6nrs_5z8-_qtyapm^3&yz^wqqkc_a!v(!ulj-^' # SECURITY WARNING: don't run with debug turned on in production! -DEBUG = False +DEBUG = True ALLOWED_HOSTS = ['*'] @@ -155,9 +161,9 @@ AUTH_PASSWORD_VALIDATORS = [ # Internationalization # https://docs.djangoproject.com/en/4.1/topics/i18n/ -LANGUAGE_CODE = 'en-us' +LANGUAGE_CODE = 'es-MX' -TIME_ZONE = 'UTC' +TIME_ZONE = 'CST6CDT' USE_I18N = True diff --git a/Clientes/admin.py b/Clientes/admin.py index f33d67a..3b2e4d6 100644 --- a/Clientes/admin.py +++ b/Clientes/admin.py @@ -1,5 +1,7 @@ from django.contrib import admin -from .models import Timbres, saldoModel +from .models import Timbres, saldoModel, Clientes admin.site.register(Timbres) admin.site.register(saldoModel) +admin.site.register(Clientes) + diff --git a/Clientes/apps.py b/Clientes/apps.py index 1d4901b..99181f9 100644 --- a/Clientes/apps.py +++ b/Clientes/apps.py @@ -6,10 +6,8 @@ class ClientesConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' name = 'Clientes' - def ready(self): - - - from .models import saldoModel - from .signals import save_saldo - post_save.connect(save_saldo,sender=saldoModel) + def ready(self): + from .models import Timbres + from .signals import save_Cliente + post_save.connect(save_Cliente,sender=Timbres) \ No newline at end of file diff --git a/Clientes/migrations/0005_clientes.py b/Clientes/migrations/0005_clientes.py new file mode 100644 index 0000000..770cead --- /dev/null +++ b/Clientes/migrations/0005_clientes.py @@ -0,0 +1,26 @@ +# Generated by Django 4.1.3 on 2022-12-01 13:35 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('Clientes', '0004_saldomodel'), + ] + + operations = [ + migrations.CreateModel( + name='Clientes', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('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)), + ], + options={ + 'ordering': ('RFC',), + }, + ), + ] diff --git a/Clientes/migrations/0006_alter_clientes_fecha_baja.py b/Clientes/migrations/0006_alter_clientes_fecha_baja.py new file mode 100644 index 0000000..939b715 --- /dev/null +++ b/Clientes/migrations/0006_alter_clientes_fecha_baja.py @@ -0,0 +1,18 @@ +# Generated by Django 4.1.3 on 2022-12-01 13:54 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('Clientes', '0005_clientes'), + ] + + operations = [ + migrations.AlterField( + model_name='clientes', + name='fecha_baja', + field=models.DateField(blank=True, null=True), + ), + ] diff --git a/Clientes/migrations/0007_alter_timbres_serie.py b/Clientes/migrations/0007_alter_timbres_serie.py new file mode 100644 index 0000000..081646c --- /dev/null +++ b/Clientes/migrations/0007_alter_timbres_serie.py @@ -0,0 +1,18 @@ +# Generated by Django 4.1.3 on 2022-12-01 13:58 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('Clientes', '0006_alter_clientes_fecha_baja'), + ] + + operations = [ + migrations.AlterField( + model_name='timbres', + name='serie', + field=models.CharField(blank=True, max_length=10), + ), + ] diff --git a/Clientes/migrations/0008_errorestimbres.py b/Clientes/migrations/0008_errorestimbres.py new file mode 100644 index 0000000..d186076 --- /dev/null +++ b/Clientes/migrations/0008_errorestimbres.py @@ -0,0 +1,27 @@ +# Generated by Django 4.1.3 on 2022-12-01 16:24 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('Clientes', '0007_alter_timbres_serie'), + ] + + operations = [ + migrations.CreateModel( + name='ErroresTimbres', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('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)), + ], + options={ + 'ordering': ('uuid',), + }, + ), + ] diff --git a/Clientes/models.py b/Clientes/models.py index f00a646..da25552 100644 --- a/Clientes/models.py +++ b/Clientes/models.py @@ -1,4 +1,5 @@ from django.db import models +import datetime class saldoModel(models.Model): @@ -11,10 +12,11 @@ class Timbres(models.Model): rfcp = models.CharField(max_length=13) fecha = models.CharField(max_length=55) folio = models.CharField(max_length=55) - serie = models.CharField(max_length=10) + serie = models.CharField(max_length=10,blank=True) tipo = models.CharField(max_length=35) created_at = models.DateTimeField(auto_now_add=True) + class Meta: ordering = ('-created_at',) @@ -28,7 +30,7 @@ class ErroresTimbres(models.Model): 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) @@ -36,9 +38,13 @@ class Clientes(models.Model): Activo = models.BooleanField(default=True) - fecha_baja = models.DateField(blank=True) - + fecha_baja = models.DateField(blank=True,null=True) + + @property + def timbres_mes_count(self): + print('date',datetime.date.today()) + return Timbres.objects.filter(rfcc=self.RFC, created_at__gte=datetime.date.today()).count() class Meta: ordering = ('RFC',) - abstract =True + diff --git a/Clientes/saldo_context_proc.py b/Clientes/saldo_context_proc.py index 88235fc..6589c9f 100644 --- a/Clientes/saldo_context_proc.py +++ b/Clientes/saldo_context_proc.py @@ -1,7 +1,7 @@ import requests from asgiref.sync import sync_to_async from .models import saldoModel -#from django.urls import reverse +import datetime async def req(): results = await sync_to_async(get_saldo, thread_sensitive=True) @@ -10,12 +10,15 @@ def get_saldo(request): try: Saldo = saldoModel.objects.first() except: - Saldo = saldoModel.objects.create(saldo=1) + pass if not Saldo : Saldo = saldoModel.objects.create(saldo=1) Saldo.save() - #print( reverse('saldo_funct') ) + #r = requests.get('https://app2.comercio-digital.mx/x3/saldo?usr=SCT050708AD1&pwd=0dcu2SwCv',verify=False) - return {'saldo':Saldo} + return { + 'saldo':Saldo, + 'fecha': datetime.date.today() + } diff --git a/Clientes/signals.py b/Clientes/signals.py index d4feaf4..4fc6953 100644 --- a/Clientes/signals.py +++ b/Clientes/signals.py @@ -1,9 +1,8 @@ from django.db.models.signals import post_save from django.dispatch import receiver -from .saldo_context_proc import get_saldo +from .models import Clientes #@receiver(post_save, sender=saldoModel) -def save_saldo(sender,instance,**kwargs): - pass - #print('----save_saldo') - #get_saldo() - #print(sender,instance.saldo,kwargs) +def save_Cliente(sender,instance,**kwargs): + obj, created = Clientes.objects.get_or_create(RFC=instance.rfcc) + if created: + print(f'----signal se creo cliente {obj.RFC}') \ No newline at end of file diff --git a/Clientes/views.py b/Clientes/views.py index 17559f1..58d03ce 100644 --- a/Clientes/views.py +++ b/Clientes/views.py @@ -2,33 +2,34 @@ from django.shortcuts import render from django.http import HttpResponse from django.http import JsonResponse from django.contrib.auth.decorators import login_required -from .models import Timbres,saldoModel +from .models import Clientes,Timbres,saldoModel,ErroresTimbres 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() + clientes_list = Clientes.objects.all() + 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)) + clientes_list = Clientes.objects.filter(Q(RFC__icontains=search)) - paginator = Paginator(timbres_list, 1) + paginator = Paginator(clientes_list, 1) try: - timbres = paginator.page(page) + clientes = paginator.page(page) except PageNotAnInteger: - timbres = paginator.page(1) + clientes = paginator.page(1) except EmptyPage: - timbres = paginator.page(paginator.num_pages) + clientes = paginator.page(paginator.num_pages) context = { - 'timbres':timbres, + 'clientes':clientes, + } return render(request,'Clientes/index.html',context) @@ -54,7 +55,12 @@ def add_timbre(request): obj = Timbres.objects.create(**obj) return HttpResponse('ok') except Exception as e: - + obj = ErroresTimbres.objects.create( + uuid=uuid, + description=e, + rfcc=rfcc, + folio=folio + ) return HttpResponse(e) @@ -68,6 +74,8 @@ def pageFunc(page,qs,per_page): qs = paginator.page(paginator.num_pages) return qs + +@login_required def timbres_cliente(request, RFC): lista = Timbres.objects.filter(rfcc=RFC) @@ -103,7 +111,6 @@ def timbres_cliente(request, RFC): } return render(request, 'Clientes/timbres_cliente.html', context) - def saldo_funct(request): timbres=request.GET.get('num',None) try: diff --git a/Templates/Clientes/index.html b/Templates/Clientes/index.html index e3b5c1d..6358f69 100644 --- a/Templates/Clientes/index.html +++ b/Templates/Clientes/index.html @@ -24,17 +24,20 @@ Cliente RFC - +