New functionality

This commit is contained in:
fjrodriguez
2022-12-01 10:25:21 -06:00
parent f2aad5de52
commit 178a1ea55d
13 changed files with 157 additions and 43 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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