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)
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)
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)
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)
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)
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)