def get(self, request, form_class, *args, **kwargs): form = form = self.get_form(form_class) form.initial['total_sem_imposto'] = self.object.get_total_sem_imposto() produtos_form = ItensVendaFormSet(instance=self.object, prefix='produtos_form') itens_list = ItensVenda.objects.filter(venda_id=self.object.id) produtos_form.initial = [{ 'total_sem_desconto': item.get_total_sem_desconto(), 'total_impostos': item.get_total_impostos(), 'total_com_impostos': item.get_total_com_impostos() } for item in itens_list] pagamento_form = PagamentoFormSet(instance=self.object, prefix='pagamento_form') if ItensVenda.objects.filter(venda_id=self.object.pk).count(): produtos_form.extra = 0 if Pagamento.objects.filter(venda_id=self.object.pk).count(): pagamento_form.extra = 0 return self.render_to_response( self.get_context_data(form=form, produtos_form=produtos_form, pagamento_form=pagamento_form))
def get(self, request, form_class, *args, **kwargs): self.object = None form = self.get_form(form_class) form.initial['vendedor'] = request.user.first_name or request.user form.initial['data_emissao'] = datetime.today().strftime('%d/%m/%Y') produtos_form = ItensVendaFormSet(prefix='produtos_form') pagamento_form = PagamentoFormSet(prefix='pagamento_form') return self.render_to_response( self.get_context_data(form=form, produtos_form=produtos_form, pagamento_form=pagamento_form))
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)