예제 #1
0
def addLancamento(request):
    if (request.method == 'POST'):
        form = LancamentosForm(request.POST)
        if (form.is_valid()):
            lancamento = form.save(commit=False)

            #busca o saldo do usuario logado
            saldo = SaldoCaixa.objects.get(user=request.user)
            #atribui o valor do saldo anterior
            saldo.saldoAnterior = saldo.saldoAtual

            #atribui o novo saldo de acordo com a categoria do lançamento
            if (lancamento.categoria.tipo == "1"):
                saldo.saldoAtual += lancamento.valor
            else:
                saldo.saldoAtual -= lancamento.valor

            #salva o novo saldo
            saldo.save()

            #relacionao o usuario logado com o lançamento
            lancamento.user = request.user
            lancamento.save()
            return HttpResponse('Lançamento efetuado com sucesso.')

    return ('Lançamento inválido')
예제 #2
0
def editLancamento(request):

    if (request.method == 'POST'):
        #id do usuario
        id_user = request.user.id
        #id do lancamento clicado
        idLancamento = request.POST.get('id')
        #busca o lancamento a ser alterado
        lancamento = LancamentosCaixa.objects.get(pk=idLancamento)

        #atribui o lancamento ao form
        form = LancamentosForm(request.POST, instance=lancamento)

        if (form.is_valid()):
            form.save()

            #busca o saldo do usuario logado
            saldoCaixa = SaldoCaixa.objects.get(user=request.user)
            lancamentos = LancamentosCaixa.objects.filter(user_id=id_user)
            saldo = 0

            for l in lancamentos:
                if (l.categoria.tipo == '1'):
                    saldo += l.valor
                else:
                    saldo -= l.valor

            saldoCaixa.saldoAtual = saldo
            saldoCaixa.save()

            return HttpResponse("Lançamento alterado com sucesso")
        else:
            return HttpResponseServerError("Formulário inválido")

    #id do lancamento clicado
    idLancamento = request.GET.get('id')
    lancamento = LancamentosCaixa.objects.get(pk=idLancamento)
    form = LancamentosForm(instance=lancamento)
    form.getEditLancamentoForm(request)

    if (lancamento.conta_a_pagar != None):
        contaID = "<div id='status_conta'>Pago</div>"
    elif (lancamento.conta_a_receber != None):
        contaID = "<div id='status_conta'>Recebido</div>"
    else:
        contaID = "<div id='status_conta'>Nenhum</div>"

    #retorna o id do lancamento junto com o formulario
    divId = "<div id='id_lancamento'>" + idLancamento + "</div>"

    form_html = {form.as_p(), divId, contaID}
    return HttpResponse(form_html)
예제 #3
0
def editLancamento(request):

    if (request.method == 'POST'):
        #id do usuario
        id_user = request.user.id
        #id do lancamento clicado
        idLancamento = request.POST.get('id')
        #busca o lancamento a ser alterado
        lancamento = LancamentosCaixa.objects.get(pk=idLancamento)

        #atribui o lancamento ao form
        form = LancamentosForm(request.POST, instance=lancamento)

        if (form.is_valid()):
            form.save()

            #busca o saldo do usuario logado
            saldoCaixa = SaldoCaixa.objects.get(user=request.user)
            lancamentos = LancamentosCaixa.objects.filter(user_id=id_user)
            saldo = 0

            for l in lancamentos:
                if (l.categoria.tipo == '1'):
                    saldo += l.valor
                else:
                    saldo -= l.valor

            saldoCaixa.saldoAtual = saldo
            saldoCaixa.save()

            return HttpResponse("Lançamento alterado com sucesso")
        else:
            return HttpResponseServerError("Formulário inválido")

    #id do lancamento clicado
    idLancamento = request.GET.get('id')
    lancamento = LancamentosCaixa.objects.get(pk=idLancamento)
    form = LancamentosForm(instance=lancamento)

    #seleciona apenas as categorias do usuario logado
    form.fields['categoria'].choices = separarCategorias(request)

    form.fields['descricao'] = forms.CharField(
        label='Descrição',
        max_length=32,
        required=True,
        widget=forms.TextInput(
            attrs={
                'class': 'form-control',
                'placeholder': 'Descreva a transação',
                'id': 'id_descricao-alter_caixa'
            }))

    form.fields['valor'] = forms.DecimalField(
        label='Valor',
        min_value=0.01,
        max_value=9999.99,
        required=True,
        widget=forms.NumberInput(attrs={
            'class': 'form-control',
            'id': 'id_valor-alter_caixa'
        }))

    form.fields['data'] = forms.DateField(
        label='Data',
        required=True,
        widget=forms.TextInput(attrs={
            'class': 'form-control',
            'id': 'datepicker-alter_caixa'
        }))
    if (lancamento.conta_a_pagar != None):
        contaID = "<div id='status_conta'>Pago</div>"
    elif (lancamento.conta_a_receber != None):
        contaID = "<div id='status_conta'>Recebido</div>"
    else:
        contaID = "<div id='status_conta'>Nenhum</div>"

    #retorna o id do lancamento junto com o formulario
    divId = "<div id='id_lancamento'>" + idLancamento + "</div>"

    form_html = {form.as_p(), divId, contaID}
    return HttpResponse(form_html)