From d71f627b31a7585a8ac94e9a2b68c876daf17be5 Mon Sep 17 00:00:00 2001 From: fjrodriguez Date: Mon, 5 Dec 2022 13:34:55 -0600 Subject: [PATCH] export RFC month timbres --- Clientes/urls.py | 3 ++- Clientes/views.py | 40 ++++++++++++++++++++++++++++++++++- Templates/Clientes/index.html | 1 + Templates/paginator.html | 4 ++-- req.text | 2 ++ req.txt | 22 ------------------- 6 files changed, 46 insertions(+), 26 deletions(-) delete mode 100644 req.txt diff --git a/Clientes/urls.py b/Clientes/urls.py index 901d830..d487e29 100644 --- a/Clientes/urls.py +++ b/Clientes/urls.py @@ -1,9 +1,10 @@ from django.urls import path,include -from .views import index,add_timbre, timbres_cliente,saldo_funct,ClientesUpdateView +from .views import index,add_timbre, timbres_cliente,saldo_funct,ClientesUpdateView, export_Excel 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('get_timbres_xls/', export_Excel, name='export_Excel'), ] \ No newline at end of file diff --git a/Clientes/views.py b/Clientes/views.py index af41ee9..ffafd48 100644 --- a/Clientes/views.py +++ b/Clientes/views.py @@ -11,6 +11,11 @@ from .forms import ClienteForm from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib.auth.mixins import UserPassesTestMixin + +#EXCEL +from openpyxl import Workbook +from openpyxl.styles import Alignment, Border, Font, PatternFill, Side + @login_required def index(request): @@ -148,4 +153,37 @@ class ClientesUpdateView(UserPassesTestMixin,LoginRequiredMixin,UpdateView): def test_func(self): #self.request.user.groups.all() - return self.request.user.groups.filter(name= 'admin_soft') \ No newline at end of file + return self.request.user.groups.filter(name= 'admin_soft') + + +def export_Excel(request): + RFC = request.GET.get('RFC', '') + + today = datetime.date.today() + month = today.month + year = today.year + + objeto_a_trabajar = Timbres.objects.filter(rfcc=RFC, created_at__year=str(year),created_at__month=str(month)) + wb = Workbook() + ws = wb.active + #contador = 1 + ws['A1']='UUID' + ws['B1']='RFC_Cliente' + ws['C1']='Fecha' + contador =2 + + for q in objeto_a_trabajar: + column = str(contador) + + ws['A' + column] = q.uuid + ws['B'+ column] = q.rfcc + ws['C'+ column] = q.fecha + contador += 1 + + + nombre_archivo = "ListadoObjeto.xlsx" + response = HttpResponse(content_type="application/ms-excel") + contenido = "attachment; filename = {0}".format(nombre_archivo) + response["Content-Disposition"] = contenido + wb.save(response) + return response \ No newline at end of file diff --git a/Templates/Clientes/index.html b/Templates/Clientes/index.html index 35024ad..2f7eabb 100644 --- a/Templates/Clientes/index.html +++ b/Templates/Clientes/index.html @@ -46,6 +46,7 @@ Timbres disponibles Comercio Digital: {{saldo.saldo}} Ver Timbres {% endif %} + Excel {% endfor %} diff --git a/Templates/paginator.html b/Templates/paginator.html index 92e07d7..1c52f8a 100644 --- a/Templates/paginator.html +++ b/Templates/paginator.html @@ -5,7 +5,7 @@
    {% if lista.has_previous %}
  • - +
  • @@ -25,7 +25,7 @@ {% if lista.has_next %}
  • - +
  • diff --git a/req.text b/req.text index 6297158..dd5661c 100644 --- a/req.text +++ b/req.text @@ -8,8 +8,10 @@ Django==4.1.3 django-allauth==0.51.0 django-widget-tweaks==1.4.12 djangorestframework==3.14.0 +et-xmlfile==1.1.0 idna==3.4 oauthlib==3.2.2 +openpyxl==3.0.10 pycparser==2.21 PyJWT==2.6.0 PyMySQL==1.0.2 diff --git a/req.txt b/req.txt deleted file mode 100644 index 6297158..0000000 --- a/req.txt +++ /dev/null @@ -1,22 +0,0 @@ -asgiref==3.5.2 -certifi==2022.9.24 -cffi==1.15.1 -charset-normalizer==2.1.1 -cryptography==38.0.3 -defusedxml==0.7.1 -Django==4.1.3 -django-allauth==0.51.0 -django-widget-tweaks==1.4.12 -djangorestframework==3.14.0 -idna==3.4 -oauthlib==3.2.2 -pycparser==2.21 -PyJWT==2.6.0 -PyMySQL==1.0.2 -python3-openid==3.2.0 -pytz==2022.6 -requests==2.28.1 -requests-oauthlib==1.3.1 -sqlparse==0.4.3 -tzdata==2022.6 -urllib3==1.26.13