first commit

This commit is contained in:
2025-11-01 18:10:39 -03:00
parent 6e7348359f
commit 63cf724aaf
220 changed files with 4040 additions and 62 deletions

View 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)