diff --git a/Admin/settings.py b/Admin/settings.py index a58e432..efd90c3 100644 --- a/Admin/settings.py +++ b/Admin/settings.py @@ -101,13 +101,14 @@ ACCOUNT_LOGOUT_ON_PASSWORD_CHANGE = True EMAIL_TIMEOUT = 5 #EMAIL_USE_TLS = True +EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'secure.emailsrvr.com' EMAIL_PORT = 465 -EMAIL_HOST_USER = DEFAULT_FROM_EMAIL = 'noreply@aduanasoft.com.mx' +EMAIL_HOST_USER = 'noreply@aduanasoft.com.mx' EMAIL_HOST_PASSWORD = 'N036p7y!' EMAIL_SUBJECT_PREFIX = 'AS Timbres' EMAIL_USE_SSL=True -EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' + # Database # https://docs.djangoproject.com/en/4.1/ref/settings/#databases diff --git a/Clientes/urls.py b/Clientes/urls.py index 7745e57..7af5b74 100644 --- a/Clientes/urls.py +++ b/Clientes/urls.py @@ -1,13 +1,20 @@ from django.urls import path,include -from .views import index,add_timbre, timbres_cliente,saldo_funct,ClientesUpdateView, export_Excel +from .views import ( + index,add_timbre, + timbres_cliente, + saldo_funct, + ClientesUpdateView, + export_Excel, + send_timbres_Email, +) 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('cliente/update//',ClientesUpdateView.as_view(),name='update_cliente'), - + path('cliente/update//',ClientesUpdateView.as_view(),name='update_cliente'), path('get_timbres_xls/', export_Excel, name='export_Excel'), + path('send_timbres_cliente/',send_timbres_Email, name='send_timbres_Email'), ] \ No newline at end of file diff --git a/Clientes/views.py b/Clientes/views.py index 9d4c337..822bc2d 100644 --- a/Clientes/views.py +++ b/Clientes/views.py @@ -17,10 +17,55 @@ from asgiref.sync import sync_to_async from openpyxl import Workbook from openpyxl.styles import Alignment, Border, Font, PatternFill, Side import json + +#email +from django.core.mail import EmailMessage +from django.conf import settings + +import requests +import os +import re +from io import BytesIO +@login_required +def send_timbres_Email(request): + RFC = request.GET.get('RFC', None) + mes = request.GET.get('mes', None) + today = datetime.date.today() + + if mes is None or mes =='None': + mes = today.month + url = request.build_absolute_uri().split('/')[:-2] + url = '/'.join(url) + url = os.path.join(url, 'get_timbres_xls') + print(f'URL:{url}') + + h = requests.get(f'{url}/?RFC={RFC}&mes={mes}', allow_redirects=True) + header =h.headers + content_dispo = h.headers.get('content-disposition') + fname = re.findall('filename = (.+)',content_dispo) + fname = fname[0] + fname = fname.split('.')[0] + fname = f'{fname}.xls' + fname = fname.replace('_','') + print('fname: ',fname) + + Cli = Clientes.objects.get(RFC=RFC) + subject = f'Timbres del Mes:{mes} RFC:{RFC}' + message = 'Envio de timbres por AS_Admin' + email = Cli.email + + files = BytesIO(h.content) + try: + mail = EmailMessage(subject,message,settings.EMAIL_HOST_USER,[email]) + mail.attach(filename='timbres.xls',content=files.getbuffer(),mimetype='application/vnd.ms-excel') + mail.send() + print('SE armo') + except: + print('Error ') + return redirect('index') @login_required def index(request): - clientes_list = Clientes.objects.all() mes = request.GET.get('mes', None) page = request.GET.get('page', 1) @@ -37,17 +82,20 @@ def index(request): for i,ii in enumerate(clientes_list): ii.timbres_X_MES(mes=mes) - paginator = Paginator(clientes_list, 5) + + clientes_list =pageFunc(page,clientes_list,20) - try: - lista = paginator.page(page) - except PageNotAnInteger: - lista = paginator.page(1) - except EmptyPage: - lista = paginator.page(paginator.num_pages) + # paginator = Paginator(clientes_list, 5) + + # try: + # lista = paginator.page(page) + # except PageNotAnInteger: + # lista = paginator.page(1) + # except EmptyPage: + # lista = paginator.page(paginator.num_pages) filters.pop('mes','') context = { - 'lista':lista, + 'lista':clientes_list, 'mes':mes, 'filters':filters @@ -119,8 +167,7 @@ def timbres_cliente(request, RFC): inicio = [int(i) for i in datepicker.split("/")] fin = [int(i) for i in datepickerFin.split("/")] #print('inicio',inicio,' fin',fin) - #inicio.sort(reverse=True) - #fin.sort(reverse=True) + start = datetime.datetime(inicio[2],inicio[0],inicio[1]) start += datetime.timedelta(days=0) end = datetime.datetime(fin[2],fin[0],fin[1]) @@ -131,7 +178,7 @@ def timbres_cliente(request, RFC): lista = lista.filter(created_at__range=[start, end]) conteo = lista.count() - print('conteo',conteo) + if conteo !=0 : perPage = conteo // 2 else: @@ -175,7 +222,7 @@ def export_Excel(request): RFC = request.GET.get('RFC', None) mes = request.GET.get('mes',None) - + print('AQUIIIIIIIIIIIIIIII') today = datetime.date.today() month = today.month year = today.year @@ -194,8 +241,7 @@ def export_Excel(request): findate +=datetime.timedelta(days=1) print(f'dat{dat} findate:{findate}') if mes is not None and RFC is not None: - objeto_a_trabajar = Timbres.objects.filter(rfcc=RFC, created_at__range=[dat,findate]) - #objeto_a_trabajar = Timbres.objects.filter(rfcc=RFC, created_at__year=str(year),created_at__month=str(month)) + objeto_a_trabajar = Timbres.objects.filter(rfcc=RFC, created_at__range=[dat,findate]) else: objeto_a_trabajar = Clientes.objects.all() for i,ii in enumerate(objeto_a_trabajar): diff --git a/Templates/Clientes/index.html b/Templates/Clientes/index.html index c19052c..19d0d7d 100644 --- a/Templates/Clientes/index.html +++ b/Templates/Clientes/index.html @@ -85,8 +85,11 @@ Timbres disponibles Comercio Digital: {{saldo.saldo}} {% endif %} - + + + Email Timbres + {% endfor %} @@ -127,7 +130,7 @@ Timbres disponibles Comercio Digital: {{saldo.saldo}} }) document.getElementById('table_select').addEventListener('change',(event)=>{ - spinner_id.setAttribute('style','display:block;') + spinner_id.setAttribute('style','display:inline;') let anc = document.getElementById('home_id') anc.href='' let url = `?mes=${event.target.value}${filters}` diff --git a/Templates/Clientes/timbres_cliente.html b/Templates/Clientes/timbres_cliente.html index 81fd061..44bf5f6 100644 --- a/Templates/Clientes/timbres_cliente.html +++ b/Templates/Clientes/timbres_cliente.html @@ -7,7 +7,7 @@

Timbres {{RFC}}

Timbres totales: {{conteo}}

- {% if filters.datepicker%} +{% if filters.datepicker%} De fecha: "{{filters.datepicker}}" {% endif %} diff --git a/['Timbres_RORF911228LN5_12_AÑO_2022.xlsx'] b/['Timbres_RORF911228LN5_12_AÑO_2022.xlsx'] new file mode 100644 index 0000000..e69de29