Beispiel #1
0
def relatorioAReceber(request):
	user = request.user

	if(request.method == 'POST'):
		inicio = request.POST['inicio']
		fim = request.POST['fim']
		status = request.POST['status']

		#converte as datas em objetos datetime para fazer o filtro
		data_inicio = datetime.strptime(inicio, "%d/%m/%Y")
		data_fim = datetime.strptime(fim, "%d/%m/%Y")

		if(status == 'abertas'):
			contas = ContasAReceber.objects.filter(data__gte = data_inicio, data__lte = data_fim).filter(user = user).filter(recebido = False)
		elif(status == 'recebidas'):
			contas = ContasAReceber.objects.filter(data__gte = data_inicio, data__lte = data_fim).filter(user = user).filter(recebido = True)
		elif(status == 'vencidas'):
			contas = ContasAReceber.objects.filter(data__gte = data_inicio, data__lt = datetime.now()).filter(user = user).filter(recebido = False)

		contasJson = serializers.serialize('json', contas, use_natural_foreign_keys=True, use_natural_primary_keys=True)

		return HttpResponse(contasJson, content_type="application/json")
		
	
	template = 'relatorio/relatorio_contas_a_receber.html'
	contexto = {}

	#busca o saldo de Caixa do usuario e atribui ao contexto
	saldoC = SaldoCaixa.objects.get(user = user)
	contexto['saldoCaixa'] = saldoC.saldoAtual

	#para saldo de cada agencia
	agencias = ContaBanco.objects.filter(user = user)
	contexto['agencias'] = agencias

	#para adicionar lancamento
	formCaixa = LancamentosForm()
	#seleciona apenas as categorias do usuario logado
	formCaixa.fields['categoria'].choices = separarCategorias(request)

	formBanco = LancamentosBancoForm()
	#Seleciona apenas o banco do usuario para o formulario
	formBanco.fields['banco'] = forms.ModelChoiceField(
		queryset = ContaBanco.objects.filter(user_id = request.user.id),
		empty_label = 'Nenhum',
        widget = forms.Select(
            attrs = {'class': 'form-control'}
        )
	)
	#seleciona apenas as categorias do usuario logado
	formBanco.fields['categoria'].choices = separarCategorias(request)
	
	#para adicionar lancamento
	contexto['formLancCaixa'] = formCaixa
	contexto['formLancBanco'] = formBanco

	userProfile = UsuarioProfile.objects.get(user = request.user)
	contexto['profile'] = userProfile

	return render(request, template, contexto)
Beispiel #2
0
def home(request):
    template = 'principal/home.html'
    context = {}
    #id do usuario logado
    user = request.user

    userProfile = UsuarioProfile.objects.get(user=user)
    context['profile'] = userProfile

    eventosCaixa = []
    eventosBanco = []
    eventosCPagar = []
    eventosCReceber = []

    #carrega os lançamentos do caixa do usuário
    lancamentosCaixa = LancamentosCaixa.objects.filter(user=user)
    #carrega os lançamentos do banco do usuário
    lancamentosBanco = LancamentosBanco.objects.filter(user=user)
    #carrega as contas a pagar do usuário
    contasAPagar = ContasAPagar.objects.filter(user=user).filter(paga=False)
    #carrega as contas a receber do usuário
    contasAReceber = ContasAReceber.objects.filter(user=user).filter(
        recebido=False)

    #separa os dados do caixa que serão utilizados no calendario em um tupla
    for lancamento in lancamentosCaixa:
        dia = str(lancamento.data.day)
        if (len(dia) == 1):
            dia = "0" + dia
        mes = str(lancamento.data.month)
        if (len(mes) == 1):
            mes = "0" + mes
        ano = str(lancamento.data.year)
        #concatena a data para o formato do fullcalendar
        data = ano + "-" + mes + "-" + dia
        titulo = lancamento.descricao + " : " + " R$" + str(lancamento.valor)
        eventosCaixa.append((titulo, data))

    #converte a tupla para dicionario
    eventosCaixa = [{
        'title': title,
        'start': start
    } for title, start in eventosCaixa]

    #separa os dados do banco que serão utilizados no calendario em um tupla
    for lancamento in lancamentosBanco:
        dia = str(lancamento.data.day)
        if (len(dia) == 1):
            dia = "0" + dia
        mes = str(lancamento.data.month)
        if (len(mes) == 1):
            mes = "0" + mes
        ano = str(lancamento.data.year)
        #concatena a data para o formato do fullcalendar
        data = ano + "-" + mes + "-" + dia
        titulo = lancamento.descricao + " : " + " R$" + str(lancamento.valor)
        eventosBanco.append((titulo, data))

    #converte a tupla para para dicionario
    eventosBanco = [{
        'title': title,
        'start': start,
        'color': 'yellow',
        'textColor': 'black'
    } for title, start in eventosBanco]

    #separa os dados do contas a pagar que serão utilizados no calendario em um tupla
    for conta in contasAPagar:
        dia = str(conta.data.day)
        if (len(dia) == 1):
            dia = "0" + dia
        mes = str(conta.data.month)
        if (len(mes) == 1):
            mes = "0" + mes
        ano = str(conta.data.year)
        #concatena a data para o formato do fullcalendar
        data = ano + "-" + mes + "-" + dia
        titulo = conta.descricao + " : " + " R$" + str(conta.valor)
        eventosCPagar.append((titulo, data))

    #converte a tupla para para dicionario
    eventosCPagar = [{
        'title': title,
        'start': start,
        'color': 'red'
    } for title, start in eventosCPagar]

    #separa os dados do contas a receber que serão utilizados no calendario em um tupla
    for conta in contasAReceber:
        dia = str(conta.data.day)
        if (len(dia) == 1):
            dia = "0" + dia
        mes = str(conta.data.month)
        if (len(mes) == 1):
            mes = "0" + mes
        ano = str(conta.data.year)
        #concatena a data para o formato do fullcalendar
        data = ano + "-" + mes + "-" + dia
        titulo = conta.descricao + " : " + " R$" + str(conta.valor)
        eventosCReceber.append((titulo, data))

    #converte a tupla para para dicionario
    eventosCReceber = [{
        'title': title,
        'start': start,
        'color': 'green'
    } for title, start in eventosCReceber]

    #junta os lancamento de caixa, banco e contas a pagar
    todosEventos = eventosBanco + eventosCaixa + eventosCPagar + eventosCReceber
    #converte para o formato Json
    todosEventos = json.dumps(todosEventos, ensure_ascii=False)

    context['events'] = todosEventos

    # print(teste)

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

    formBanco = LancamentosBancoForm()
    #Seleciona apenas o banco do usuario para o formulario
    formBanco.fields['banco'] = forms.ModelChoiceField(
        queryset=ContaBanco.objects.filter(user=user),
        empty_label='Nenhum',
        widget=forms.Select(attrs={'class': 'form-control'}))
    #seleciona apenas as categorias do usuario logado
    formBanco.fields['categoria'].choices = separarCategorias(request)

    #busca o saldo de Caixa do usuario e atribui ao contexto
    saldoC = SaldoCaixa.objects.get(user=user)
    context['saldoCaixa'] = saldoC.saldoAtual

    #para saldo de cada agencia
    agencias = ContaBanco.objects.filter(user=user)
    context['agencias'] = agencias

    context['formLancCaixa'] = formCaixa
    context['formLancBanco'] = formBanco

    metas = Metas.objects.filter(user=user)

    #soma o valor de saldo de todas as agencias
    totalSaldoAgencias = 0
    for a in agencias:
        totalSaldoAgencias += a.saldo

    for m in metas:
        #calculo do progresso da meta
        progresso = ((totalSaldoAgencias + saldoC.saldoAtual) / m.valor) * 100
        m.progresso = round(progresso, 2)
        m.save()

    context['metas'] = metas

    return render(request, template, context)
Beispiel #3
0
def contasAPagar(request):
	user = request.user

	if(request.method == 'POST'):
		form = ContasAPagarForm(request.POST)

		if(form.is_valid()):
			contaPagar = form.save(commit = False)
			contaPagar.user = request.user
			contaPagar.paga = False
			contaPagar.save()
			return HttpResponse('Conta a pagar adicionada com sucesso')
		else:
			return HttpResponseServerError("Formulário inválido.")


	template = 'contas_a_pagar/contas_a_pagar.html'

	hoje = datetime.today()

	contas = ContasAPagar.objects.filter(user = user).filter(data__month = hoje.month)

	form = ContasAPagarForm()
	#seleciona apenas as categorias do usuario logado e do tipo saida
	form.fields['categoria'] = forms.ModelChoiceField(
			queryset = Categoria.objects.filter(user = user).filter(tipo = 2),
			empty_label = 'Nenhum',
	        widget = forms.Select(
	            attrs = {'class': 'form-control', 'id': 'id_categoriaCP'}
	        )
		)

	context = {'contPagar': contas, 'contPagarForm': form}

	#busca o saldo de Caixa do usuario e atribui ao contexto
	saldoC = SaldoCaixa.objects.get(user = user)
	context['saldoCaixa'] = saldoC.saldoAtual

	#para saldo de cada agencia
	agencias = ContaBanco.objects.filter(user = user)
	context['agencias'] = agencias

	
	#para adicionar lancamento
	formCaixa = LancamentosForm()
	#seleciona apenas as categorias do usuario logado
	formCaixa.fields['categoria'].choices = separarCategorias(request)

	formBanco = LancamentosBancoForm()
	#Seleciona apenas o banco do usuario para o formulario
	formBanco.fields['banco'] = forms.ModelChoiceField(
		queryset = ContaBanco.objects.filter(user = user),
		empty_label = 'Nenhum',
        widget = forms.Select(
            attrs = {'class': 'form-control'}
        )
	)
	#seleciona apenas as categorias do usuario logado
	formBanco.fields['categoria'].choices = separarCategorias(request)

	#para adicionar lancamento
	context['formLancCaixa'] = formCaixa
	context['formLancBanco'] = formBanco

	userProfile = UsuarioProfile.objects.get(user = user)
	context['profile'] = userProfile

	return render(request, template, context)
Beispiel #4
0
def metas(request):
    if (request.method == 'POST'):
        form = MetasForm(request.POST)
        print(form)

        if (form.is_valid()):
            cadastroMeta = form.save(commit=False)
            cadastroMeta.user = request.user
            cadastroMeta.progresso = 0
            cadastroMeta.save()
            return HttpResponse('Meta cadastrada com sucesso.')
        else:
            return HttpResponseServerError(
                'Formulário inválido. Tente novamente.')

    user = request.user
    template = 'meta/metas.html'
    contexto = {}

    metas = Metas.objects.filter(user=user)
    contexto['formMetas'] = metas

    #busca o saldo de Caixa do usuario e atribui ao contexto
    saldoC = SaldoCaixa.objects.get(user=request.user)
    contexto['saldoCaixa'] = saldoC.saldoAtual

    #para saldo de cada agencia
    agencias = ContaBanco.objects.filter(user=user)
    contexto['agencias'] = agencias

    #soma o valor de saldo de todas as agencias
    totalSaldoAgencias = 0
    for a in agencias:
        totalSaldoAgencias += a.saldo

    for m in metas:
        progresso = ((totalSaldoAgencias + saldoC.saldoAtual) / m.valor) * 100
        m.progresso = round(progresso, 2)
        m.save()

    form = MetasForm()

    contexto['formCad'] = form

    userProfile = UsuarioProfile.objects.get(user=request.user)
    contexto['profile'] = userProfile

    #para adicionar lancamento
    formCaixa = LancamentosForm()
    #seleciona apenas as categorias do usuario logado
    formCaixa.fields['categoria'].choices = separarCategorias(request)

    #para adicionar lancamento
    formBanco = LancamentosBancoForm()
    #Seleciona apenas o banco do usuario para o formulario
    formBanco.fields['banco'] = forms.ModelChoiceField(
        queryset=ContaBanco.objects.filter(user_id=request.user.id),
        empty_label='Nenhum',
        widget=forms.Select(attrs={'class': 'form-control'}))
    #seleciona apenas as categorias do usuario logado
    formBanco.fields['categoria'].choices = separarCategorias(request)

    #para adicionar lancamento
    contexto['formLancCaixa'] = formCaixa
    contexto['formLancBanco'] = formBanco

    return render(request, template, contexto)
Beispiel #5
0
def config(request):
    id_user = request.user.id
    template = 'config/config.html'
    contexto = {}

    user = User.objects.get(pk=id_user)
    formSenha = PasswordChangeForm(user=request.user)

    formFoto = UsuarioProfileForm()
    contexto['formFoto'] = formFoto

    #Editar
    if (request.method == 'POST'):
        form = UsuarioProfileForm(request.POST, request.FILES)
        print(form)
        formDados = EditAccountsForm(request.POST, instance=request.user)
        if formDados.is_valid():
            formDados.save()
            formDados = EditAccountsForm(instance=request.user)
            contexto['success'] = True
    else:
        formDados = EditAccountsForm(instance=request.user)

    formSenha.fields['old_password'] = forms.CharField(
        label='Senha atual',
        max_length=32,
        required=True,
        widget=forms.PasswordInput(attrs={
            'class': 'form-control',
            'placeholder': 'Senha atual',
        }))

    formSenha.fields['new_password1'] = forms.CharField(
        label='Nova senha',
        max_length=32,
        required=True,
        widget=forms.PasswordInput(attrs={
            'class': 'form-control',
            'placeholder': 'Nova senha',
        }))

    formSenha.fields['new_password2'] = forms.CharField(
        label='Confirmaçao da nova senha',
        max_length=32,
        required=True,
        widget=forms.PasswordInput(attrs={
            'class': 'form-control',
            'placeholder': 'Confirme a senha',
        }))

    formCaixa = LancamentosForm()
    #Seleciona apenas o banco do usuario para o formulario
    formCaixa.fields['categoria'].choices = separarCategorias(request)

    formBanco = LancamentosBancoForm()
    #Seleciona apenas o banco do usuario para o formulario
    formBanco.fields['banco'] = forms.ModelChoiceField(
        queryset=ContaBanco.objects.filter(user_id=request.user.id),
        empty_label='Nenhum',
        widget=forms.Select(attrs={'class': 'form-control'}))
    #seleciona apenas as categorias do usuario logado
    formBanco.fields['categoria'].choices = separarCategorias(request)

    #para adicionar lancamento
    contexto['formLancCaixa'] = formCaixa
    contexto['formLancBanco'] = formBanco

    contexto['formConfig'] = formDados
    contexto['formSenha'] = formSenha

    userProfile = UsuarioProfile.objects.get(user=request.user)
    contexto['profile'] = userProfile

    #busca o saldo de Caixa do usuario e atribui ao contexto
    saldoC = SaldoCaixa.objects.get(user=request.user)
    contexto['saldoCaixa'] = saldoC.saldoAtual

    #para saldo de cada agencia
    agencias = ContaBanco.objects.filter(user=user)
    contexto['agencias'] = agencias

    return render(request, template, contexto)
Beispiel #6
0
def editSenha(request):
    template = 'config/config.html'
    contexto = {}
    formDados = EditAccountsForm(instance=request.user)

    #Editar Senha
    if (request.method == 'POST'):
        formSenha = PasswordChangeForm(data=request.POST, user=request.user)
        if formSenha.is_valid():
            formSenha.save()
            contexto['success'] = True
        else:
            contexto['erros'] = True
            contexto['mensagem'] = 'Senha não alterada. Tente novamente'

    else:
        formSenha = PasswordChangeForm(user=request.user)

    formSenha.fields['old_password'] = forms.CharField(
        label='Senha atual',
        max_length=32,
        required=True,
        widget=forms.PasswordInput(attrs={
            'class': 'form-control',
            'placeholder': 'Senha atual',
        }))

    formSenha.fields['new_password1'] = forms.CharField(
        label='Nova senha',
        max_length=32,
        required=True,
        widget=forms.PasswordInput(attrs={
            'class': 'form-control',
            'placeholder': 'Nova senha',
        }))

    formSenha.fields['new_password2'] = forms.CharField(
        label='Confirmaçao da nova senha',
        max_length=32,
        required=True,
        widget=forms.PasswordInput(attrs={
            'class': 'form-control',
            'placeholder': 'Confirme a senha',
        }))

    contexto['formSenha'] = formSenha
    contexto['formConfig'] = formDados

    formCaixa = LancamentosForm()
    #Seleciona apenas o banco do usuario para o formulario
    formCaixa.fields['categoria'].choices = separarCategorias(request)

    formBanco = LancamentosBancoForm()
    #Seleciona apenas o banco do usuario para o formulario
    formBanco.fields['banco'] = forms.ModelChoiceField(
        queryset=ContaBanco.objects.filter(user_id=request.user.id),
        empty_label='Nenhum',
        widget=forms.Select(attrs={'class': 'form-control'}))
    #seleciona apenas as categorias do usuario logado
    formBanco.fields['categoria'].choices = separarCategorias(request)

    return render(request, template, contexto)