From e71fe9278c2d43f845fcdfe987d8c4192d53f352 Mon Sep 17 00:00:00 2001 From: fjrodriguez Date: Mon, 12 Dec 2022 08:32:54 -0600 Subject: [PATCH] drf API view added --- Admin/settings.py | 8 ++ .../migrations/0014_alter_clientes_options.py | 17 +++ Clientes/saldo_context_proc.py | 18 +-- Clientes/urls.py | 20 +-- Clientes/views.py | 130 ++++++++++++------ 5 files changed, 133 insertions(+), 60 deletions(-) create mode 100644 Clientes/migrations/0014_alter_clientes_options.py diff --git a/Admin/settings.py b/Admin/settings.py index 3525f70..57601c5 100644 --- a/Admin/settings.py +++ b/Admin/settings.py @@ -32,6 +32,9 @@ INSTALLED_APPS = [ 'django.contrib.messages', 'django.contrib.staticfiles', + 'rest_framework', + 'rest_framework.authtoken', + 'allauth', 'allauth.account', 'allauth.socialaccount', @@ -39,6 +42,11 @@ INSTALLED_APPS = [ 'Admin', 'Clientes', ] +REST_FRAMEWORK = { + 'DEFAULT_AUTHENTICATION_CLASSES': [ + 'rest_framework.authentication.TokenAuthentication', + ], +} SITE_ID = 1 MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', diff --git a/Clientes/migrations/0014_alter_clientes_options.py b/Clientes/migrations/0014_alter_clientes_options.py new file mode 100644 index 0000000..a2043e8 --- /dev/null +++ b/Clientes/migrations/0014_alter_clientes_options.py @@ -0,0 +1,17 @@ +# Generated by Django 4.1.3 on 2022-12-12 13:21 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('Clientes', '0013_clientes_conteo_mes'), + ] + + operations = [ + migrations.AlterModelOptions( + name='clientes', + options={'ordering': ('-Activo', '-conteo_mes', 'RFC')}, + ), + ] diff --git a/Clientes/saldo_context_proc.py b/Clientes/saldo_context_proc.py index d1f180f..355bf95 100644 --- a/Clientes/saldo_context_proc.py +++ b/Clientes/saldo_context_proc.py @@ -4,17 +4,17 @@ from .models import saldoModel import datetime def get_saldo(request): - # try: - # Saldo = saldoModel.objects.first() - # except: - # pass - # if not Saldo : - # Saldo = saldoModel.objects.create(saldo=1) - # Saldo.save() + try: + Saldo = saldoModel.objects.first() + except: + pass + if not Saldo : + Saldo = saldoModel.objects.create(saldo=1) + Saldo.save() - r = requests.get('https://app2.comercio-digital.mx/x3/saldo?usr=SCT050708AD1&pwd=0dcu2SwCv') + #r = requests.get('https://app2.comercio-digital.mx/x3/saldo?usr=SCT050708AD1&pwd=0dcu2SwCv') #print('resp:',r.text, dir(r)) return { - 'saldo':r.text, + 'saldo':Saldo.saldo, 'fecha': datetime.date.today() } \ No newline at end of file diff --git a/Clientes/urls.py b/Clientes/urls.py index 2fb75f5..554db38 100644 --- a/Clientes/urls.py +++ b/Clientes/urls.py @@ -1,23 +1,27 @@ -from django.urls import path,include +from django.urls import path from .views import ( - index,add_timbre, + index, timbres_cliente, - saldo_funct, ClientesUpdateView, ClientesCreateView, export_Excel, send_timbres_Email, check_active_RFC, + + #API DRF + saldo_funct2, + add_timbre2 ) urlpatterns = [ - path('', index, name='index'), - path('add_timbre/', add_timbre, name='add_timbre'), - path('timbres_cliente//', timbres_cliente, name='timbres_cliente'), - path('get_saldo/', saldo_funct, name='saldo_funct'), + path('', index, name='index'), + path('add_timbre2/', add_timbre2.as_view(), name='add_timbre2'), + + path('timbres_cliente//', timbres_cliente, name='timbres_cliente'), path('cliente/update//',ClientesUpdateView.as_view(),name='update_cliente'), path('cliente/add/', ClientesCreateView.as_view(), name='add_cliente'), path('get_timbres_xls/', export_Excel, name='export_Excel'), path('send_timbres_cliente/',send_timbres_Email, name='send_timbres_Email'), - path('getActivoRFC/', check_active_RFC, name='check_active_RFC'), + path('getActivoRFC/', check_active_RFC, name='check_active_RFC'), + path('get_saldo2/', saldo_funct2.as_view(), name='saldo_funct2') ] \ No newline at end of file diff --git a/Clientes/views.py b/Clientes/views.py index 337fc13..4b6fc2d 100644 --- a/Clientes/views.py +++ b/Clientes/views.py @@ -5,6 +5,10 @@ from django.http import JsonResponse from django.contrib.auth.decorators import login_required from .models import Clientes,Timbres,saldoModel,ErroresTimbres +from rest_framework.views import APIView +from rest_framework.response import Response +from rest_framework.permissions import IsAuthenticated + from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from django.db.models import Q import datetime @@ -170,36 +174,6 @@ def index(request): return render(request,'Clientes/index.html',context) -def add_timbre(request): - uuid= request.GET.get('uuid', None) - rfcc= request.GET.get('rfcc', None) - fecha=request.GET.get('fecha', None) - folio=request.GET.get('folio', None) - serie=request.GET.get('serie', None) - tipo=request.GET.get('tipo', None) - rfcp=request.GET.get('rfcp', None) - modo=request.GET.get('modo', None) - obj={ - 'uuid':uuid, - 'rfcc':rfcc, - 'fecha':fecha, - 'folio':folio, - 'serie':serie, - 'tipo':tipo, - 'rfcp':rfcp, - 'modo':modo - } - try: - 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) def pageFunc(page,qs,per_page): @@ -256,18 +230,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: - Saldo = saldoModel.objects.first() - Saldo.saldo=timbres - Saldo.save() - except: - Saldo = saldoModel.objects.create(saldo=int(timbres)) - - return JsonResponse({'data':Saldo.saldo}) - - class ClientesUpdateView(UserPassesTestMixin,LoginRequiredMixin,UpdateView): model= Clientes form_class=ClienteForm @@ -354,4 +316,86 @@ def check_active_RFC(request): rfc = request.GET.get('RFC', None) cliente = get_object_or_404(Clientes, RFC=rfc) serializer = ClienteSerializer(cliente) - return JsonResponse(serializer.data) \ No newline at end of file + return JsonResponse(serializer.data) + + + +# def add_timbre(request): +# uuid= request.GET.get('uuid', None) +# rfcc= request.GET.get('rfcc', None) +# fecha=request.GET.get('fecha', None) +# folio=request.GET.get('folio', None) +# serie=request.GET.get('serie', None) +# tipo=request.GET.get('tipo', None) +# rfcp=request.GET.get('rfcp', None) +# modo=request.GET.get('modo', None) +# obj={ +# 'uuid':uuid, +# 'rfcc':rfcc, +# 'fecha':fecha, +# 'folio':folio, +# 'serie':serie, +# 'tipo':tipo, +# 'rfcp':rfcp, +# 'modo':modo +# } +# try: +# 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) + + + +class add_timbre2(APIView): + permission_classes = (IsAuthenticated,) + def get(self,request): + uuid= request.GET.get('uuid', None) + rfcc= request.GET.get('rfcc', None) + fecha=request.GET.get('fecha', None) + folio=request.GET.get('folio', None) + serie=request.GET.get('serie', None) + tipo=request.GET.get('tipo', None) + rfcp=request.GET.get('rfcp', None) + modo=request.GET.get('modo', None) + obj={ + 'uuid':uuid, + 'rfcc':rfcc, + 'fecha':fecha, + 'folio':folio, + 'serie':serie, + 'tipo':tipo, + 'rfcp':rfcp, + 'modo':modo + } + try: + obj = Timbres.objects.create(**obj) + return Response({'data':'ok'}) + except Exception as e: + obj = ErroresTimbres.objects.create( + uuid=uuid, + description=e, + rfcc=rfcc, + folio=folio + ) + return Response({'fok':f'{e}'}) + +class saldo_funct2(APIView): + permission_classes =(IsAuthenticated,) + def get(self, request): + timbres = request.GET.get('num',None) + try: + Saldo = saldoModel.objects.first() + Saldo.saldo=timbres + Saldo.save() + except: + Saldo = saldoModel.objects.create(saldo=int(timbres)) + Saldo.save() + content = {'data':Saldo.saldo} + return Response(content) \ No newline at end of file