first commit
This commit is contained in:
50
Movement/Views/viewsProductCreateCustom.py
Normal file
50
Movement/Views/viewsProductCreateCustom.py
Normal file
@@ -0,0 +1,50 @@
|
||||
from django.views.generic import ListView, CreateView, UpdateView, DeleteView, DetailView
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin, PermissionRequiredMixin
|
||||
from Movement.Forms import FormsProduct
|
||||
from Movement import models
|
||||
from Client.models import Client
|
||||
from django.urls import reverse_lazy
|
||||
from django.contrib import messages
|
||||
|
||||
|
||||
class ProductCreateCustomView(LoginRequiredMixin, PermissionRequiredMixin, CreateView):
|
||||
model = models.Product
|
||||
template_name = 'Product/Create/index.html'
|
||||
form_class = FormsProduct.FormsProduct
|
||||
success_url = reverse_lazy('MovProductListView')
|
||||
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.product.value
|
||||
quantity = form.instance.quantity
|
||||
net_value = gross_value - ((gross_value * form.instance.pay_method.percentage) / 100)
|
||||
form.instance.gross_value = gross_value * quantity
|
||||
form.instance.net_value = net_value * quantity
|
||||
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