def post(self, request, form_class, *args, **kwargs): self.object = None # Tirar . dos campos decimais try: action = request.POST['action'] if action == 'search_clientes': data = [] prods = Cliente.objects.filter( nome_razao_social__icontains=request.POST['term'])[0:10] for i in prods: item = i.toJSON() #item['value'] = i.name item['text'] = i.nome_razao_social item['id'] = str(i.id) data.append(item) return JsonResponse(data, safe=False) except: '' #breakpoint() req_post = request.POST.copy() for key in req_post: if ('desconto' in key or 'quantidade' in key or 'valor' in key or 'frete' in key or 'despesas' in key or 'seguro' in key or 'total' in key): req_post[key] = req_post[key].replace('.', '') request.POST = req_post form = self.get_form(form_class) produtos_form = ItensVendaFormSet(request.POST, prefix='produtos_form') pagamento_form = PagamentoFormSet(request.POST, prefix='pagamento_form') if (form.is_valid() and produtos_form.is_valid() and pagamento_form.is_valid()): self.object = form.save(commit=False) self.object.save() for pform in produtos_form: if pform.cleaned_data != {}: itens_venda_obj = pform.save(commit=False) itens_venda_obj.venda_id = self.object itens_venda_obj.calcular_pis_cofins() itens_venda_obj.save() pagamento_form.instance = self.object pagamento_form.save() return self.form_valid(form) return self.form_invalid(form=form, produtos_form=produtos_form, pagamento_form=pagamento_form)
def post(self, request, form_class, *args, **kwargs): # Tirar . dos campos decimais req_post = request.POST.copy() for key in req_post: if ('desconto' in key or 'quantidade' in key or 'valor' in key or 'frete' in key or 'despesas' in key or 'seguro' in key or 'total' in key): req_post[key] = req_post[key].replace('.', '') request.POST = req_post form = self.get_form(form_class) produtos_form = ItensVendaFormSet(request.POST, prefix='produtos_form', instance=self.object) pagamento_form = PagamentoFormSet(request.POST, prefix='pagamento_form', instance=self.object) if (form.is_valid() and produtos_form.is_valid() and pagamento_form.is_valid()): self.object = form.save(commit=False) self.object.save() for pform in produtos_form: if pform.cleaned_data != {}: itens_venda_obj = pform.save(commit=False) itens_venda_obj.venda_id = self.object itens_venda_obj.calcular_pis_cofins() itens_venda_obj.save() pagamento_form.instance = self.object pagamento_form.save() return self.form_valid(form) return self.form_invalid(form=form, produtos_form=produtos_form, pagamento_form=pagamento_form)