def rescindir_contrato(request, id): dados = {} contrato = get_object_or_404(ContratoLocacao, id=id) motivo = request.POST.get('rescisao') rescisao = RescisaoContrato( contrato=contrato, data=today, usuario=request.user, motivo=motivo) rescisao.save() exclui_parcelas_aberto_contrato_locacao(contrato.id) dados['mensagem'] = 'Contrato rescindido com sucesso!' return contrato_detalhe(request, id, dados['mensagem'])
def contrato_gerar_receber(request, id): dados = {} contrato = get_object_or_404(ContratoLocacao, id=id) parametros = ParametrosGerais.objects.all() if contrato.inicio_contrato > contrato.termino_contrato: dados['mensagem_erro'] = """ As contas a receber deste contrato não foram geradas pois a data inicial de vigência do contrato é maior ou igual a data final, por favor corrija este problema primeiro. """ return contrato_detalhe(request, id, dados['mensagem_erro']) if not parametros[0].conta_caixa: dados['mensagem_erro'] = """ As contas a receber deste contrato não foram geradas pois não existe uma conta-caixa para contratos informada no cadastro de parâmetros. Por favor resolva este problema antes de continuar """ return contrato_detalhe(request, id, dados['mensagem_erro']) num_parcelas = month_between( contrato.inicio_contrato, contrato.termino_contrato) + 1 funcionario = Funcionario.objects.filter(usuario=request.user) if contrato.gerou_receber: exclui_parcelas_aberto_contrato_locacao(contrato.id) gera_parcelas( num_parcelas, contrato.inicio_contrato, contrato.imovel.valor_aluguel, parametros[0].conta_caixa, contrato.locatario, contrato, funcionario[0].empresa, request.user) dados['mens_parcelas'] =\ """ Contas a receber geradas com sucesso: Qtd.: {num_parcelas}, Data da primeira parcela: {dataini} data da última parcela: {datafim} """.format( num_parcelas=num_parcelas, dataini=contrato.inicio_contrato.strftime("%d/%m/%y"), datafim=contrato.termino_contrato.strftime("%d/%m/%y")) dados['form'] = ContratoLocacaoForm(instance=contrato) contrato.gerou_receber = True contrato.save() dados['contrato'] = contrato return render(request, template_contrato_detalhe, dados)