54 lines
2.3 KiB
Python
54 lines
2.3 KiB
Python
from django.views.generic import ListView, CreateView, UpdateView, DeleteView, DetailView
|
|
from django.contrib.auth.mixins import LoginRequiredMixin, PermissionRequiredMixin
|
|
from Movement.Forms import FormsCalendar
|
|
from Movement import models
|
|
from Client.models import Client
|
|
from django.urls import reverse_lazy
|
|
from django.contrib import messages
|
|
|
|
|
|
class CalendarCreateCustomView(LoginRequiredMixin, PermissionRequiredMixin, CreateView):
|
|
model = models.Calendar
|
|
template_name = 'Calendar/Create/index.html'
|
|
form_class = FormsCalendar.FormsCalendar
|
|
success_url = reverse_lazy('MovCalendarListView')
|
|
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):
|
|
form = super().get_form(form_class)
|
|
client_id = self.request.GET.get('Client') or self.request.POST.get('client')
|
|
if client_id:
|
|
filter_client = Client.objects.filter(id=client_id)
|
|
else:
|
|
filter_client = Client.objects.none()
|
|
form.fields['client'].queryset = filter_client.all()
|
|
return form
|
|
|
|
def form_valid(self, form):
|
|
gross_value = form.instance.service.value
|
|
net_value = gross_value - ((gross_value * form.instance.pay_method.percentage) / 100)
|
|
value_cash = ((100 - form.instance.professional.percentage) * net_value) / 100
|
|
prof_money = (form.instance.professional.percentage * net_value) / 100
|
|
#
|
|
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.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) |