Cambios en Post Timbres y conteo CD

This commit is contained in:
fjrodriguez
2023-09-15 09:41:33 -06:00
parent 9e6416fecb
commit 4bdb833cdb
12 changed files with 358 additions and 184 deletions

View File

@@ -38,7 +38,7 @@ from django.contrib.sessions.models import Session
from django.http.response import HttpResponse
import os
import mimetypes
import traceback
from django.core.files.base import ContentFile
from .customStorage import CustomStorage
@@ -47,6 +47,9 @@ from django.contrib.auth.decorators import login_required
from django.db.models import Q
import traceback
import json
@login_required
def uploadZipViewHTML(request):
if request.method=="GET":
@@ -228,36 +231,51 @@ class GetDeviceToken(APIView):
"""Recobra el Token DRF del Device"""
authentication_classes= [TokenAuthentication]
permissions_classes=[IsAuthenticated, HasAuthorizationHeader]
def get_unique_username_token(self,client, device_name,ip_address, macAddress):
username = f"Device_{client}_{device_name}_{macAddress}"
username_ = re.sub(r'\W+', '', username)
print(username_ ,User.objects.filter(username=username_).exists())
if User.objects.filter(username=username_).exists():
user = User.objects.get(username=username_)
return user, user.device_set.filter(username=user.id).values('token').first()
#raise ValidationError(f"El Usuario ya existe {username_}")
else:
return None, None
def post(self,request):
try:
data = request.data
#sis = Sistema.objects.get(nombre_sistema=data.get('sistema'))
#ip_address = data.get('ip_address')
cli = Clientes.objects.filter(RFC=data.get('client')).first()
print('CLI: ',cli)
cli = Clientes.objects.get(RFC=data.get('client'))
device_name= data.get('device_name')
macAddress = data.get('macAddress')
database = data.get('database')
#username_ = f"Device_{cli.RFC}_{device_name}_{ip_address}_{macAddress}"
username_ = f"Device_{cli.RFC}_{device_name}_{macAddress}"
username_ = re.sub(r'\W+', '', username_)
device = Device.objects.filter(
username__username__icontains=username_,
database=database
).first()
print('device',device)
if device is not None:
token = {"token":str(device.token)}
user_device, token = self.get_unique_username_token(cli.RFC, device_name,"", macAddress)
if user_device is not None:
print("get_unique_username", token)
else:
token = cli.device_set.filter(macAddress=macAddress, device_name=device_name, database=database).values('token').first()
print('device',token)
if token is None:
token = {"token":""}
return Response(token)
except Exception as ex:
data_json = json.dumps(request.data)
traceback_info = f'{data_json}\n{traceback.format_exc()}'
BitacoraErrores.objects.create(
level=2,
message=str(ex),
traceback=traceback.format_exc(),
traceback=traceback_info,
view='Sistemas.GetDeviceToken'
)
return Response({'Error':f'{ex}','isError':True}, status=status.HTTP_200_OK)
@@ -275,7 +293,9 @@ class RegisterDeviceView(APIView):
else:
return Response({'Error':f'{serializer.errors}','isError':True}, status=status.HTTP_200_OK)
except Exception as ex:
BitacoraErrores.objects.create(level=2, message=str(ex), traceback=traceback.format_exc(),
data_json = json.dumps(request.data)
traceback_info = f'{data_json}\n{traceback.format_exc()}'
BitacoraErrores.objects.create(level=2, message=str(ex), traceback=traceback_info,
view='Sistemas.RegisterDeviceView')
return Response({'Error':f'{ex}','isError':True}, status=status.HTTP_200_OK)
@@ -296,12 +316,16 @@ class AuthenticateDeviceView(APIView):
if device_data.serializer.is_valid:
return Response(device_data.serializer.data, status=status.HTTP_200_OK)
else:
BitacoraErrores.objects.create(level=3, message=str(device_data.serializer.errors), traceback=traceback.format_exc(), view='Sistemas.AuthenticateDeviceView')
data_json = json.dumps(request.data)
traceback_info = f'{data_json}\n{traceback.format_exc()}'
BitacoraErrores.objects.create(level=3, message=str(device_data.serializer.errors), traceback=traceback_info, view='Sistemas.AuthenticateDeviceView')
return Response(
{'Error':f'{device_data.serializer.errors}','isError':True}
, status=status.HTTP_200_OK)
except Exception as ex:
BitacoraErrores.objects.create(level=2, message=str(ex), traceback=traceback.format_exc(), view='Sistemas.AuthenticateDeviceView')
data_json = json.dumps(request.data)
traceback_info = f'{data_json}\n{traceback.format_exc()}'
BitacoraErrores.objects.create(level=2, message=str(ex), traceback=traceback_info, view='Sistemas.AuthenticateDeviceView')
return Response(
{'Error':f'{ex}','isError':True}
, status=status.HTTP_200_OK
@@ -329,7 +353,9 @@ class CheckVersionView(APIView):
ver = Sistema.objects.get(nombre_sistema="CFDI")
server_version = [int(x) for x in ver.version.split(".")]
except Exception as ex:
BitacoraErrores.objects.create(level=2, message=str(ex), traceback=traceback.format_exc(), view='Sistemas.CheckVersionView')
data_json = json.dumps(request.data)
traceback_info = f'{data_json}\n{traceback.format_exc()}'
BitacoraErrores.objects.create(level=2, message=str(ex), traceback=traceback_info, view='Sistemas.CheckVersionView')
return Response({'Error':f'{ex}','isError':True})
result=False
@@ -345,7 +371,9 @@ class CheckVersionView(APIView):
return Response({'success':True, 'actualizar':result})
except Exception as ex:
BitacoraErrores.objects.create(level=2, message=str(ex), traceback=traceback.format_exc(), view='Sistemas.CheckVersionView')
data_json = json.dumps(request.data)
traceback_info = f'{data_json}\n{traceback.format_exc()}'
BitacoraErrores.objects.create(level=2, message=str(ex), traceback=traceback_info, view='Sistemas.CheckVersionView')
return Response({'Error':f'{ex}','isError':True})
@@ -365,5 +393,7 @@ class Custom_Login(APIView):
else:
return Response({'access':False})
except Exception as ex:
BitacoraErrores.objects.create(level=2, message=str(ex), traceback=traceback.format_exc(), view='Sistemas.Custom_Login')
data_json = json.dumps(request.data)
traceback_info = f'{data_json}\n{traceback.format_exc()}'
BitacoraErrores.objects.create(level=2, message=str(ex), traceback=traceback_info, view='Sistemas.Custom_Login')
return Response({'access':False})