From fbe03ae4a02a1ccc0417381d5341ad71b785c6df Mon Sep 17 00:00:00 2001 From: fjrodriguez Date: Wed, 7 Dec 2022 15:32:58 -0600 Subject: [PATCH] generar xls for email --- Clientes/views.py | 103 +++++++++++++++++---- ['Timbres_RORF911228LN5_12_AÑO_2022.xlsx'] | 0 2 files changed, 83 insertions(+), 20 deletions(-) delete mode 100644 ['Timbres_RORF911228LN5_12_AÑO_2022.xlsx'] diff --git a/Clientes/views.py b/Clientes/views.py index 822bc2d..25853f2 100644 --- a/Clientes/views.py +++ b/Clientes/views.py @@ -29,40 +29,103 @@ from io import BytesIO @login_required def send_timbres_Email(request): RFC = request.GET.get('RFC', None) - mes = request.GET.get('mes', None) + mes = request.GET.get('mes', None) + today = datetime.date.today() - - if mes is None or mes =='None': + year = today.year + 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) + dat =datetime.datetime(int(year), int(mes),1) + if dat.month in(1,3,5,7,8,10,12): + findate = dat +datetime.timedelta(days=30) + elif dat.month in (4,6,9,11): + findate = dat+datetime.timedelta(days=29) + else: + findate = dat+datetime.timedelta(days=28) + 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]) + else: + objeto_a_trabajar = Clientes.objects.all() + for i,ii in enumerate(objeto_a_trabajar): + ii.timbres_X_MES(mes=mes ) + + wb = Workbook() + ws = wb.active + + if RFC is not None: + #Encabezado + ws['A1']='RFC_EXPEDIDO' + ws['B1']='UUID' + ws['C1']='Fecha' + for q,qq in enumerate(objeto_a_trabajar,start=2): + ws['A' + str(q)] = qq.rfcc + ws['B'+ str(q)] = qq.uuid + ws['C'+ str(q)] = qq.fecha + else:#cuando no es pro RFC y es para contabilizar los timbres del mes de cada cliente + ws['A1']='RFC_EXPEDIDO' + ws['B1']='Nombre' + ws['C1']='Timbres' + for q,qq in enumerate(objeto_a_trabajar,start=2): + ws['A' + str(q)] = qq.RFC + ws['B'+ str(q)] = qq.Nombre + ws['C'+ str(q)] = qq.conteo_mes + excel = BytesIO() + + nombre_archivo = f"Timbres_{RFC if RFC is not None else 'Clientes_MES'}_{str(mes)}_AÑO_{str(year)}.xls" + wb.save(excel) 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.attach(filename='Timbres.xls',content=excel.getvalue(),mimetype='application/vnd.ms-excel') mail.send() print('SE armo') except: - print('Error ') + print('Error ') return redirect('index') +# 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): diff --git a/['Timbres_RORF911228LN5_12_AÑO_2022.xlsx'] b/['Timbres_RORF911228LN5_12_AÑO_2022.xlsx'] deleted file mode 100644 index e69de29..0000000