Example #1
0
    def test_edit_pagamento_movimentar_caixa_true_get_post_request(self):
        # Criar lancamento com data futura (sem movimentos)
        data_pagamento_futura = datetime.strptime('01/01/2020',
                                                  "%d/%m/%Y").date()
        obj = Saida.objects.create(status='0',
                                   movimentar_caixa=False,
                                   valor_total='120.00',
                                   valor_liquido='120.00',
                                   data_pagamento=data_pagamento_futura)
        url = reverse('financeiro:editarpagamentoview', kwargs={'pk': obj.pk})
        response = self.client.get(url)
        self.assertEqual(response.status_code, 200)
        data = response.context['form'].initial
        replace_none_values_in_dictionary(data)
        data['descricao'] = 'Pagamento editado'
        data['valor_total'] = locale.format(u'%.2f',
                                            Decimal(data['valor_total']), 1)
        data['valor_liquido'] = locale.format(u'%.2f',
                                              Decimal(data['valor_liquido']),
                                              1)
        data['movimentar_caixa'] = True
        response = self.client.post(url, data, follow=True)
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed(response,
                                'financeiro/lancamento/lancamento_list.html')

        # Verificar se movimento foi criado corretamente
        movimento_editado = MovimentoCaixa.objects.get(
            data_movimento=data_pagamento_futura)
        self.assertEqual(movimento_editado.saidas, Decimal('120.00'))
Example #2
0
    def test_edit_pagamento_com_data_pagamento_diferente_e_movimento_criado_get_post_request(
            self):
        # Buscar saida com movimento de caixa e data_pagamento
        # Modificar a data_pagamento atual, para buscar outro movimento ou
        # criar um novo
        obj = Saida.objects.filter(status='0', movimentar_caixa=True).exclude(
            Q(movimento_caixa__isnull=True) | Q(data_pagamento__isnull=True)
            | Q(data_pagamento=datetime.strptime(
                '06/07/2017', "%d/%m/%Y").date())).order_by('pk').last()
        # Data aleatoria, que nao possui movimentos de caixa
        nova_data_pagamento = datetime.strptime('01/01/2030',
                                                "%d/%m/%Y").date()
        url = reverse('financeiro:editarpagamentoview', kwargs={'pk': obj.pk})
        response = self.client.get(url)
        self.assertEqual(response.status_code, 200)
        data = response.context['form'].initial
        novo_valor_saidas = Decimal(data['valor_liquido']) + Decimal('20.00')
        replace_none_values_in_dictionary(data)
        data['descricao'] = 'Pagamento editado'
        data['valor_total'] = locale.format(
            u'%.2f',
            Decimal(data['valor_total']) + Decimal('20.00'), 1)
        data['valor_liquido'] = locale.format(
            u'%.2f',
            Decimal(data['valor_liquido']) + Decimal('20.00'), 1)
        data['data_pagamento'] = nova_data_pagamento.strftime('%d/%m/%Y')
        response = self.client.post(url, data, follow=True)
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed(response,
                                'financeiro/lancamento/lancamento_list.html')

        # Verificar se movimento foi criado corretamente
        movimento_editado = MovimentoCaixa.objects.get(
            data_movimento=nova_data_pagamento)
        self.assertEqual(movimento_editado.saidas, novo_valor_saidas)
Example #3
0
    def test_edit_pagamento_movimentar_caixa_false_get_post_request(self):
        # Buscar saida com movimento de caixa e data_pagamento
        obj = Saida.objects.filter(status='0', movimentar_caixa=True).exclude(
            Q(movimento_caixa__isnull=True) | Q(data_pagamento__isnull=True)
            | Q(data_pagamento=datetime.strptime(
                '06/07/2017', "%d/%m/%Y").date())).order_by('pk').last()
        url = reverse('financeiro:editarpagamentoview', kwargs={'pk': obj.pk})
        response = self.client.get(url)
        self.assertEqual(response.status_code, 200)
        data = response.context['form'].initial
        replace_none_values_in_dictionary(data)
        data['descricao'] = 'Pagamento editado'
        data['valor_total'] = locale.format(u'%.2f',
                                            Decimal(data['valor_total']), 1)
        data['valor_liquido'] = locale.format(u'%.2f',
                                              Decimal(data['valor_liquido']),
                                              1)
        data['movimentar_caixa'] = False
        response = self.client.post(url, data, follow=True)
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed(response,
                                'financeiro/lancamento/lancamento_list.html')

        # Verificar se movimento foi removido do lancamento
        obj.refresh_from_db()
        self.assertIsNone(obj.movimento_caixa)
Example #4
0
    def test_edit_pagamento_com_data_pagamento_igual_get_post_request(self):
        # Buscar saida com movimento de caixa e data_pagamento
        # Nao modificar a data_pagamento atual, para buscar o mesmo movimento
        obj = Saida.objects.filter(status='0', movimentar_caixa=True).exclude(
            Q(movimento_caixa__isnull=True)
            | Q(data_pagamento__isnull=True)).order_by('pk').last()
        valor_saldo_final_antigo = obj.movimento_caixa.saldo_final
        data_movimento = obj.movimento_caixa.data_movimento
        url = reverse('financeiro:editarpagamentoview', kwargs={'pk': obj.pk})
        response = self.client.get(url)
        self.assertEqual(response.status_code, 200)
        data = response.context['form'].initial
        replace_none_values_in_dictionary(data)
        data['descricao'] = 'Pagamento editado'
        data['valor_total'] = locale.format(
            u'%.2f',
            Decimal(data['valor_total']) + Decimal('20.00'), 1)
        data['valor_liquido'] = locale.format(
            u'%.2f',
            Decimal(data['valor_liquido']) + Decimal('20.00'), 1)
        response = self.client.post(url, data, follow=True)
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed(response,
                                'financeiro/lancamento/lancamento_list.html')

        # Verificar se movimento de caixa foi atualizado
        movimento_editado = MovimentoCaixa.objects.get(
            data_movimento=data_movimento)
        self.assertEqual(valor_saldo_final_antigo - Decimal('20.00'),
                         movimento_editado.saldo_final)
Example #5
0
 def test_edit_produto_get_post_request(self):
     # Buscar objeto qualquer
     obj = Produto.objects.order_by('pk').last()
     url = reverse('cadastro:editarprodutoview', kwargs={'pk': obj.pk})
     response = self.client.get(url)
     self.assertEqual(response.status_code, 200)
     data = response.context['form'].initial
     replace_none_values_in_dictionary(data)
     data['inf_adicionais'] = 'Produto editado.'
     response = self.client.post(url, data, follow=True)
     self.assertEqual(response.status_code, 200)
     self.assertTemplateUsed(response, 'cadastro/produto/produto_list.html')
Example #6
0
 def test_edit_conta_receber_get_post_request(self):
     # Buscar objeto qualquer
     obj = Entrada.objects.filter(status='1').order_by('pk').last()
     url = reverse('financeiro:editarcontareceberview',
                   kwargs={'pk': obj.pk})
     response = self.client.get(url)
     self.assertEqual(response.status_code, 200)
     data = response.context['form'].initial
     replace_none_values_in_dictionary(data)
     data['descricao'] = 'Conta Receber editada'
     response = self.client.post(url, data, follow=True)
     self.assertEqual(response.status_code, 200)
     self.assertTemplateUsed(response,
                             'financeiro/lancamento/lancamento_list.html')
Example #7
0
 def test_edit_natureza_operacao_get_post_request(self):
     # Buscar objeto qualquer
     obj = NaturezaOperacao.objects.order_by('pk').last()
     url = reverse('fiscal:editarnaturezaoperacaoview',
                   kwargs={'pk': obj.pk})
     response = self.client.get(url)
     self.assertEqual(response.status_code, 200)
     data = response.context['form'].initial
     replace_none_values_in_dictionary(data)
     data['descricao'] = 'Natureza Operacao Editada.'
     response = self.client.post(url, data, follow=True)
     self.assertEqual(response.status_code, 200)
     self.assertTemplateUsed(
         response, 'fiscal/natureza_operacao/natureza_operacao_list.html')
Example #8
0
 def test_edit_pedido_compra_get_post_request(self):
     # Buscar objeto qualquer
     obj = PedidoCompra.objects.order_by('pk').last()
     url = reverse('compras:editarpedidocompraview', kwargs={'pk': obj.pk})
     response = self.client.get(url)
     self.assertEqual(response.status_code, 200)
     data = response.context['form'].initial
     data.update(COMPRA_FORMSET_DATA)
     data.update(response.context['produtos_form'].initial[0])
     replace_none_values_in_dictionary(data)
     data['observacoes'] = 'Pedido editado.'
     if data['orcamento'] is None:
         data['orcamento'] = ''
     response = self.client.post(url, data, follow=True)
     self.assertEqual(response.status_code, 200)
     self.assertTemplateUsed(
         response, 'compras/pedido_compra/pedido_compra_list.html')
Example #9
0
    def test_edit_nota_fiscal_entrada_get_post_request(self):
        # Buscar objeto qualquer
        obj = NotaFiscalEntrada.objects.order_by('pk').last()
        url = reverse('fiscal:editarnotafiscalentradaview',
                      kwargs={'pk': obj.pk})
        response = self.client.get(url)
        self.assertEqual(response.status_code, 200)
        data = response.context['form'].initial
        data['dhemi'] = timezone.now().strftime('%d/%m/%Y %H:%M')
        data['natop'] = data['natop'] + ' (Nota fiscal editada)'
        replace_none_values_in_dictionary(data)
        response = self.client.post(url, data, follow=True)
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed(response,
                                'fiscal/nota_fiscal/nota_fiscal_list.html')

        # Assert form invalido
        data['natop'] = ''
        response = self.client.post(url, data, follow=True)
        self.assertFormError(response, 'form', 'natop',
                             'Este campo é obrigatório.')