示例#1
0
    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)
示例#2
0
    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)