first commit
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Movement/Views/__pycache__/viewsExpenseOrCredit.cpython-312.pyc
Normal file
BIN
Movement/Views/__pycache__/viewsExpenseOrCredit.cpython-312.pyc
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Movement/Views/__pycache__/viewsTransition.cpython-312.pyc
Normal file
BIN
Movement/Views/__pycache__/viewsTransition.cpython-312.pyc
Normal file
Binary file not shown.
@@ -5,13 +5,14 @@ from Movement import models
|
||||
from Client.models import Client
|
||||
from django.urls import reverse_lazy
|
||||
from django.contrib import messages
|
||||
from decimal import Decimal
|
||||
|
||||
|
||||
class CalendarCreateCustomView(LoginRequiredMixin, PermissionRequiredMixin, CreateView):
|
||||
model = models.Calendar
|
||||
template_name = 'Calendar/Create/index.html'
|
||||
form_class = FormsCalendar.FormsCalendar
|
||||
success_url = reverse_lazy('MovCalendarListView')
|
||||
success_url = reverse_lazy('Dashboard')
|
||||
permission_required = 'Base.add_'
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
@@ -43,7 +44,9 @@ class CalendarCreateCustomView(LoginRequiredMixin, PermissionRequiredMixin, Crea
|
||||
form.instance.gross_value = gross_value
|
||||
form.instance.net_value = net_value
|
||||
form.instance.value_cash = value_cash
|
||||
form.instance.prof_money = prof_money
|
||||
form.instance.prof_money = prof_money - Decimal('0.01')
|
||||
(Client.objects.filter(id=form.instance.client.id)
|
||||
.update(last_visit=form.instance.date))
|
||||
form.instance.created_by = self.request.user
|
||||
messages.success(self.request, 'Registro realizado com sucesso!')
|
||||
return super().form_valid(form)
|
||||
|
||||
@@ -1,102 +0,0 @@
|
||||
from django.views.generic import ListView, CreateView, UpdateView, DeleteView, DetailView
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin , PermissionRequiredMixin
|
||||
from Movement.Forms import FormsExpense
|
||||
from Movement import models
|
||||
from Base.models import ChartOfAccount
|
||||
from django.urls import reverse_lazy
|
||||
from django.contrib import messages
|
||||
from django.utils import timezone
|
||||
|
||||
class ExpenseListView(LoginRequiredMixin, PermissionRequiredMixin, ListView):
|
||||
model = models.Expense
|
||||
template_name = 'Expense/List.html'
|
||||
context_object_name = 'Expenses'
|
||||
paginate_by = 10
|
||||
permission_required = 'Base.view_professional'
|
||||
def get_queryset(self):
|
||||
queryset = super().get_queryset()
|
||||
date = self.request.GET.get('date')
|
||||
if date:
|
||||
queryset = queryset.filter(date__icontains=date)
|
||||
else:
|
||||
queryset = queryset.filter(
|
||||
date__icontains=timezone.localtime(timezone.now()).month
|
||||
)
|
||||
return queryset
|
||||
|
||||
class ExpenseCreateView(LoginRequiredMixin,PermissionRequiredMixin, CreateView):
|
||||
model = models.Expense
|
||||
template_name = 'Expense/Create.html'
|
||||
form_class = FormsExpense.FormsExpense
|
||||
success_url = reverse_lazy('MovExpenseListView')
|
||||
permission_required = 'Base.add_professional'
|
||||
|
||||
class ExpenseDetailView(LoginRequiredMixin,PermissionRequiredMixin, DetailView):
|
||||
model = models.Expense
|
||||
template_name = 'Expense/Detail.html'
|
||||
permission_required = 'Base.view_professional'
|
||||
|
||||
class ExpenseUpdateView(LoginRequiredMixin,PermissionRequiredMixin, UpdateView):
|
||||
model = models.Expense
|
||||
template_name = 'Expense/Update.html'
|
||||
form_class = FormsExpense.FormsExpense
|
||||
success_url = reverse_lazy('ExpenseListView')
|
||||
permission_required = 'Base.change_professional'
|
||||
|
||||
class ExpenseDeleteView(LoginRequiredMixin,PermissionRequiredMixin, DeleteView):
|
||||
model = models.Expense
|
||||
template_name = 'Expense/Delete.html'
|
||||
success_url = reverse_lazy('MovExpenseListView')
|
||||
permission_required = 'Base.delete_professional'
|
||||
|
||||
class ExpenseFirmCreateView(LoginRequiredMixin,PermissionRequiredMixin, CreateView):
|
||||
model = models.Expense
|
||||
template_name = 'Expense/CreateFirm.html'
|
||||
form_class = FormsExpense.FormsExpense
|
||||
success_url = reverse_lazy('MovExpenseListView')
|
||||
permission_required = 'Base.add_professional'
|
||||
|
||||
def get_form(self, form_class=None):
|
||||
form = super().get_form(form_class)
|
||||
form.fields['chart_of_account'].queryset = ChartOfAccount.objects.filter(
|
||||
firm=True,
|
||||
debit=True,
|
||||
)
|
||||
return form
|
||||
|
||||
def form_valid(self, form):
|
||||
form.instance.firm = True
|
||||
form.instance.created_by = self.request.user
|
||||
messages.success(self.request, 'Registro realizado com sucesso!')
|
||||
return super().form_valid(form)
|
||||
|
||||
def form_invalid(self, form):
|
||||
errors = form.errors.as_text()
|
||||
messages.error(self.request, f'Verifique os dados: {errors}')
|
||||
return super().form_invalid(form)
|
||||
|
||||
class ExpenseProfCreateView(LoginRequiredMixin,PermissionRequiredMixin, CreateView):
|
||||
model = models.Expense
|
||||
template_name = 'Expense/CreateProf.html'
|
||||
form_class = FormsExpense.FormsExpense
|
||||
success_url = reverse_lazy('MovExpenseListView')
|
||||
permission_required = 'Base.add_professional'
|
||||
|
||||
def get_form(self, form_class=None):
|
||||
form = super().get_form(form_class)
|
||||
form.fields['chart_of_account'].queryset = ChartOfAccount.objects.filter(
|
||||
firm=False,
|
||||
debit=True,
|
||||
)
|
||||
return form
|
||||
|
||||
def form_valid(self, form):
|
||||
form.instance.firm = False
|
||||
form.instance.created_by = self.request.user
|
||||
messages.success(self.request, 'Registro realizado com sucesso!')
|
||||
return super().form_valid(form)
|
||||
|
||||
def form_invalid(self, form):
|
||||
errors = form.errors.as_text()
|
||||
messages.error(self.request, f'Verifique os dados: {errors}')
|
||||
return super().form_invalid(form)
|
||||
196
Movement/Views/viewsExpenseOrCredit.py
Normal file
196
Movement/Views/viewsExpenseOrCredit.py
Normal file
@@ -0,0 +1,196 @@
|
||||
from django.views.generic import ListView, CreateView, UpdateView, DeleteView, DetailView
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin , PermissionRequiredMixin
|
||||
from Movement.Forms import FormsExpenseOrCredit
|
||||
from Movement import models
|
||||
from Base.models import ChartOfAccount
|
||||
from django.urls import reverse_lazy
|
||||
from django.contrib import messages
|
||||
from django.utils import timezone
|
||||
|
||||
class ExpenseOrCreditListView(LoginRequiredMixin, PermissionRequiredMixin, ListView):
|
||||
model = models.ExpenseOrCredit
|
||||
template_name = 'ExpenseOrCredit/List.html'
|
||||
context_object_name = 'Expenses'
|
||||
paginate_by = 10
|
||||
permission_required = 'Base.view_professional'
|
||||
def get_queryset(self):
|
||||
queryset = super().get_queryset()
|
||||
|
||||
month = self.request.GET.get('month')
|
||||
mov_type = self.request.GET.get('type')
|
||||
resp = self.request.GET.get('resp')
|
||||
|
||||
# Validação: Se NÃO houver month E NÃO houver type E NÃO houver resp, retorna vazio
|
||||
if not any([month, mov_type, resp]):
|
||||
return super().get_queryset().none()
|
||||
|
||||
# Se passou da validação, começamos o filtro
|
||||
queryset = super().get_queryset()
|
||||
year = timezone.localtime(timezone.now()).year
|
||||
|
||||
# 1. Filtro de Data
|
||||
if month:
|
||||
queryset = queryset.filter(date__month=month, date__year=year)
|
||||
else:
|
||||
# Se você quiser que o mês atual seja o padrão caso month não venha,
|
||||
# mas type ou resp venham:
|
||||
current_month = timezone.localtime(timezone.now()).month
|
||||
queryset = queryset.filter(date__month=current_month, date__year=year)
|
||||
|
||||
# 2. Filtro de Tipo
|
||||
if mov_type == 'credit':
|
||||
queryset = queryset.filter(credit=True, debit=False)
|
||||
elif mov_type == 'debit':
|
||||
queryset = queryset.filter(credit=False, debit=True)
|
||||
|
||||
# 3. Filtro de Responsável
|
||||
if resp == 'firm':
|
||||
queryset = queryset.filter(firm=True, prof=False)
|
||||
elif resp == 'prof':
|
||||
queryset = queryset.filter(firm=False, prof=True)
|
||||
|
||||
return queryset
|
||||
|
||||
# class ExpenseOrCreditCreateView(LoginRequiredMixin,PermissionRequiredMixin, CreateView):
|
||||
# model = models.ExpenseOrCredit
|
||||
# template_name = 'ExpenseOrCredit/Create.html'
|
||||
# form_class = FormsExpenseOrCredit.FormsExpenseOrCredit
|
||||
# success_url = reverse_lazy('MovExpenseOrCreditListView')
|
||||
# permission_required = 'Base.add_professional'
|
||||
|
||||
class ExpenseOrCreditDetailView(LoginRequiredMixin,PermissionRequiredMixin, DetailView):
|
||||
model = models.ExpenseOrCredit
|
||||
template_name = 'ExpenseOrCredit/Detail.html'
|
||||
permission_required = 'Base.view_professional'
|
||||
|
||||
class ExpenseOrCreditDeleteView(LoginRequiredMixin,PermissionRequiredMixin, DeleteView):
|
||||
model = models.ExpenseOrCredit
|
||||
# template_name = 'Expense/Delete.html'
|
||||
success_url = reverse_lazy('MovExpenseOrCreditListView')
|
||||
permission_required = 'Base.delete_professional'
|
||||
|
||||
def form_valid(self, form):
|
||||
messages.success(self.request, 'Registro Deletado com sucesso!')
|
||||
return super().form_valid(form)
|
||||
|
||||
def form_invalid(self, form):
|
||||
errors = form.errors.as_text()
|
||||
messages.error(self.request, f'Verifique os dados: {errors}')
|
||||
return super().form_invalid(form)
|
||||
|
||||
class ExpenseOrCreditFirmCreateView(LoginRequiredMixin,PermissionRequiredMixin, CreateView):
|
||||
model = models.ExpenseOrCredit
|
||||
template_name = 'ExpenseOrCredit/CreateFirm.html'
|
||||
form_class = FormsExpenseOrCredit.FormsExpenseOrCredit
|
||||
success_url = reverse_lazy('MovExpenseOrCreditListView')
|
||||
permission_required = 'Base.add_professional'
|
||||
|
||||
def get_form(self, form_class=None):
|
||||
form = super().get_form(form_class)
|
||||
form.fields['chart_of_account'].queryset = ChartOfAccount.objects.filter(
|
||||
firm=True,
|
||||
debit=True,
|
||||
credit=False,
|
||||
)
|
||||
return form
|
||||
|
||||
def form_valid(self, form):
|
||||
form.instance.firm = True
|
||||
form.instance.debit = True
|
||||
form.instance.created_by = self.request.user
|
||||
messages.success(self.request, 'Registro realizado com sucesso!')
|
||||
return super().form_valid(form)
|
||||
|
||||
def form_invalid(self, form):
|
||||
errors = form.errors.as_text()
|
||||
messages.error(self.request, f'Verifique os dados: {errors}')
|
||||
return super().form_invalid(form)
|
||||
|
||||
class ExpenseOrCreditProfCreateView(LoginRequiredMixin,PermissionRequiredMixin, CreateView):
|
||||
model = models.ExpenseOrCredit
|
||||
template_name = 'ExpenseOrCredit/CreateProf.html'
|
||||
form_class = FormsExpenseOrCredit.FormsExpenseOrCredit
|
||||
success_url = reverse_lazy('MovExpenseOrCreditListView')
|
||||
permission_required = 'Base.add_professional'
|
||||
|
||||
def get_form(self, form_class=None):
|
||||
form = super().get_form(form_class)
|
||||
form.fields['chart_of_account'].queryset = ChartOfAccount.objects.filter(
|
||||
firm=False,
|
||||
debit=True,
|
||||
credit=False,
|
||||
prof=True,
|
||||
)
|
||||
return form
|
||||
|
||||
def form_valid(self, form):
|
||||
form.instance.firm = False
|
||||
form.instance.debit = True
|
||||
form.instance.prof = True
|
||||
form.instance.created_by = self.request.user
|
||||
messages.success(self.request, 'Registro realizado com sucesso!')
|
||||
return super().form_valid(form)
|
||||
|
||||
def form_invalid(self, form):
|
||||
errors = form.errors.as_text()
|
||||
messages.error(self.request, f'Verifique os dados: {errors}')
|
||||
return super().form_invalid(form)
|
||||
|
||||
class ExpenseOrCreditFirmCreditCreateView(LoginRequiredMixin,PermissionRequiredMixin, CreateView):
|
||||
model = models.ExpenseOrCredit
|
||||
template_name = 'ExpenseOrCredit/CreateCredit.html'
|
||||
form_class = FormsExpenseOrCredit.FormsExpenseOrCredit
|
||||
success_url = reverse_lazy('MovExpenseOrCreditListView')
|
||||
permission_required = 'Base.add_professional'
|
||||
|
||||
def get_form(self, form_class=None):
|
||||
form = super().get_form(form_class)
|
||||
form.fields['chart_of_account'].queryset = ChartOfAccount.objects.filter(
|
||||
firm=True,
|
||||
credit=True,
|
||||
)
|
||||
return form
|
||||
|
||||
def form_valid(self, form):
|
||||
form.instance.firm = True
|
||||
form.instance.debit = False
|
||||
form.instance.credit = True
|
||||
form.instance.created_by = self.request.user
|
||||
messages.success(self.request, 'Registro realizado com sucesso!')
|
||||
return super().form_valid(form)
|
||||
|
||||
def form_invalid(self, form):
|
||||
errors = form.errors.as_text()
|
||||
messages.error(self.request, f'Verifique os dados: {errors}')
|
||||
return super().form_invalid(form)
|
||||
|
||||
class ExpenseOrCreditProfCreditCreateView(LoginRequiredMixin,PermissionRequiredMixin, CreateView):
|
||||
model = models.ExpenseOrCredit
|
||||
template_name = 'ExpenseOrCredit/CreateProfCredit.html'
|
||||
form_class = FormsExpenseOrCredit.FormsExpenseOrCredit
|
||||
success_url = reverse_lazy('MovExpenseOrCreditListView')
|
||||
permission_required = 'Base.add_professional'
|
||||
|
||||
def get_form(self, form_class=None):
|
||||
form = super().get_form(form_class)
|
||||
form.fields['chart_of_account'].queryset = ChartOfAccount.objects.filter(
|
||||
firm=False,
|
||||
debit=False,
|
||||
credit=True,
|
||||
prof=True,
|
||||
)
|
||||
return form
|
||||
|
||||
def form_valid(self, form):
|
||||
form.instance.firm = False
|
||||
form.instance.debit = False
|
||||
form.instance.credit = True
|
||||
form.instance.prof = True
|
||||
form.instance.created_by = self.request.user
|
||||
messages.success(self.request, 'Registro realizado com sucesso!')
|
||||
return super().form_valid(form)
|
||||
|
||||
def form_invalid(self, form):
|
||||
errors = form.errors.as_text()
|
||||
messages.error(self.request, f'Verifique os dados: {errors}')
|
||||
return super().form_invalid(form)
|
||||
@@ -11,17 +11,11 @@ class ProductCreateCustomView(LoginRequiredMixin, PermissionRequiredMixin, Creat
|
||||
model = models.Product
|
||||
template_name = 'Product/Create/index.html'
|
||||
form_class = FormsProduct.FormsProduct
|
||||
success_url = reverse_lazy('MovProductListView')
|
||||
success_url = reverse_lazy('Dashboard')
|
||||
permission_required = 'Base.add_'
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
# if self.request.GET.get('Client'):
|
||||
# filter_client = Client.objects.filter(
|
||||
# id=self.request.GET.get('Client') or ''
|
||||
# )
|
||||
# else: filter_client = Client.objects.none()
|
||||
# context['Client'] = filter_client
|
||||
return context
|
||||
|
||||
def get_form(self, form_class=None):
|
||||
|
||||
52
Movement/Views/viewsTransition.py
Normal file
52
Movement/Views/viewsTransition.py
Normal file
@@ -0,0 +1,52 @@
|
||||
from django.views.generic import ListView, CreateView, UpdateView, DeleteView, DetailView
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin , PermissionRequiredMixin
|
||||
from Movement.Forms import FormsTransition
|
||||
from Movement import models
|
||||
from django.urls import reverse_lazy
|
||||
from django.utils import timezone
|
||||
|
||||
class TransitionListView(LoginRequiredMixin, PermissionRequiredMixin, ListView):
|
||||
model = models.Transition
|
||||
template_name = 'Transition/List.html'
|
||||
context_object_name = 'Transitions'
|
||||
paginate_by = 10
|
||||
permission_required = 'Base.view_professional'
|
||||
def get_queryset(self):
|
||||
queryset = super().get_queryset()
|
||||
date = self.request.GET.get('month')
|
||||
if date:
|
||||
queryset = queryset.filter(
|
||||
date__month=date,
|
||||
date__year=timezone.localtime(timezone.now()).year,
|
||||
)
|
||||
else:
|
||||
queryset = queryset.filter(
|
||||
date__month=timezone.localtime(timezone.now()).month,
|
||||
date__year =timezone.localtime(timezone.now()).year,
|
||||
)
|
||||
return queryset
|
||||
|
||||
class TransitionCreateView(LoginRequiredMixin,PermissionRequiredMixin, CreateView):
|
||||
model = models.Transition
|
||||
template_name = 'Transition/Create.html'
|
||||
form_class = FormsTransition.FormsTransition
|
||||
success_url = reverse_lazy('MovTransitionListView')
|
||||
permission_required = 'Base.add_professional'
|
||||
|
||||
class TransitionDetailView(LoginRequiredMixin,PermissionRequiredMixin, DetailView):
|
||||
model = models.Transition
|
||||
template_name = 'Transition/Detail.html'
|
||||
permission_required = 'Base.view_professional'
|
||||
|
||||
class TransitionUpdateView(LoginRequiredMixin,PermissionRequiredMixin, UpdateView):
|
||||
model = models.Transition
|
||||
template_name = 'Transition/Update.html'
|
||||
form_class = FormsTransition.FormsTransition
|
||||
success_url = reverse_lazy('MovTransitionListView')
|
||||
permission_required = 'Base.change_professional'
|
||||
|
||||
class TransitionDeleteView(LoginRequiredMixin,PermissionRequiredMixin, DeleteView):
|
||||
model = models.Transition
|
||||
template_name = 'Transition/Delete.html'
|
||||
success_url = reverse_lazy('MovTransitionListView')
|
||||
permission_required = 'Base.delete_professional'
|
||||
Reference in New Issue
Block a user