first commit
This commit is contained in:
102
Movement/Views/viewsExpense.py
Normal file
102
Movement/Views/viewsExpense.py
Normal file
@@ -0,0 +1,102 @@
|
||||
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)
|
||||
Reference in New Issue
Block a user