Exemplo n.º 1
0
    def get(self, request, *args, **kwargs):
        self.object = None
        form_class = self.get_form_class()
        form = form_class()
        form.initial['data_movimento'] = datetime.today().strftime('%d/%m/%Y')

        itens_form = ItensMovimentoFormSet(prefix='itens_form')

        return self.render_to_response(self.get_context_data(form=form, itens_form=itens_form,))
Exemplo n.º 2
0
    def post(self, request, *args, **kwargs):
        self.object = None
        # Tirar . dos campos decimais
        req_post = request.POST.copy()
        for key in req_post:
            if ('quantidade' in key or
                'valor' in key or
                    'total' in key):
                req_post[key] = req_post[key].replace('.', '')

        request.POST = req_post

        form_class = self.get_form_class()
        form = self.get_form(form_class)
        itens_form = ItensMovimentoFormSet(request.POST, prefix='itens_form')

        if (form.is_valid() and itens_form.is_valid()):
            self.object = form.save(commit=False)
            lista_produtos = []
            lista_produtos_estocados = []
            itens_form.instance = self.object

            for pform in itens_form:
                if pform.cleaned_data != {}:
                    itens_mvmt_obj = pform.save(commit=False)
                    itens_mvmt_obj.movimento_id = self.object

                    self.adicionar_novo_movimento_estoque(
                        itens_mvmt_obj, pform, lista_produtos, lista_produtos_estocados)

            # Verificar se movimentos de estoque invalidos existem
            if len(pform.errors):
                return self.form_invalid(form=form, itens_form=itens_form)
            else:
                self.object.save()
                itens_form.save()
                for prod in lista_produtos:
                    prod.save()
                for prod_estocado in lista_produtos_estocados:
                    prod_estocado.save()
                return self.form_valid(form)

        return self.form_invalid(form=form, itens_form=itens_form)