envio de correos por timbres cliente

This commit is contained in:
fjrodriguez
2022-12-07 14:30:03 -06:00
parent 7f3348e080
commit dbd9e5c8b7
6 changed files with 80 additions and 23 deletions

View File

@@ -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/<str:RFC>/', timbres_cliente, name='timbres_cliente'),
path('get_saldo/', saldo_funct, name='saldo_funct'),
path('cliente/update/<int:pk>/',ClientesUpdateView.as_view(),name='update_cliente'),
path('cliente/update/<int:pk>/',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'),
]

View File

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