Пример #1
0
    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))
Пример #2
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)
Пример #3
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)
Пример #4
0
    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))