Table of Contents |
---|
...
Se o “Tipo de vencimento” (contrato.tipo_vencimento__c) for igual a “Antecipado” e “Período de apuração” (parametrizacao.snap_brok__Periodo_apuracao_faturamento__c) do objeto de parametrizações do SnapProperty for igual a “Mês fechado”
A “Data do lançamento” = data de término da apuração - 1 mês.
Se o período de apuração igual “Mês fechado”
Terminar de documentar mês fechado.
Se o período de apuração igual “Mês aberto”
Se o mês da “Data do próximo reajuste” (contrato.Data_proximo_reajuste__c) for igual ao mês da “data de vencimento da próxima fatura” (contrato.Data_vencimento_proxima_fatura__c) e o ano da “Data do próximo reajuste” (contrato.Data_proximo_reajuste__c) do contrato for igual ao ano da “data de vencimento da próxima fatura” (contrato.Data_vencimento_proxima_fatura__c):
Se não houve erro para calcular o reajuste do aluguel o sistema irá criar o lançamento de aluguel da seguinte forma:
O campo “Contrato de administração” (lancamentoContrato.Contrato__c) do lançamento = “Contrato de administração” (contrato.Contrato_administracao__c) que está sendo gerado o lançamento;
O campo “Contrato de locação” (lancamentoContrato.Contrato_locacao__c) do lançamento = “Contrato de locação” (contrato.contrato.Id) que está sendo gerado o lançamento;
O campo “Ciclo de locação” (lancamentoContrato.Ciclo_locacao__r) do lançamento = ao ciclo financeiro criado na etapa anterior;
O campo “Data do lançamento” (lancamentoContrato.Data_lancamento__c) do lançamento = a datalancamento é igual a “data de lançamento” recebida como parâmetro do método;
O campo “Histórico” (lancamentoContrato.Historico__c) do lançamento = Histórico. Esse histórico é composto da seguinte forma: “Aluguel referente ao período de "Início de apuração" a "Término de apuração".”
O campo “Imóvel” (lancamentoContrato.Imovel__c) do lançamento = “Imóvel” (contrato.Imovel__c) que está sendo gerado o lançamento;
O campo “Tipo de registro” do lançamento = “Locatário” ou o campo “Tipo de registro” do lançamento = “Locador”;
O campo “Situação” (Lancamentocontrato.Situacao__c) do lançamento = “Aprovado”;
O campo “Tipo de lançamento” (lancamentoContrato.Tipo_lancamento_contrato__c) do lançamento = “Aluguel”;
O campo “Valor do lançamento” (lancamentoContrato.Valor_lancamento__c) do lançamento = valorLancamento. Se o processamento entrou na condicional de reajuste de aluguel, o valor será o valor reajustado processado pelo método de reajuste, caso contrário, será o valor corrigido do aluguel do contrato. Esse valor poderá ser negativo se for “Locatário” ou positivo se for “Locador”.
...
Se o sistema entrou nessa condicional, significa que está no mês e ano do reajuste do contrato e, portanto, será realizado o reajuste de acordo ao processamento do reajuste do aluguel. Para entender a lógica do reajuste consulte o artigo xxxxxxxxxxxxxxxxxxxxxxx.
O sistema também inicializará a renovação do seguro contra incêndio pois após o reajuste do contrato é necessário novos lançamentos de seguro para esse contrato. Para saber mais sobre o processamento do módulo de seguro, consulte o artigo xxxxxxxxxxxxxxxxxx.
VERIFICAR COM ESTEVAO A PARTIR DAQUI
gerarLancamentosTaxaAdministracao
...
Crédito | Débito | |
---|---|---|
Contrato de administração | Número do contrato de administração que originou o lançamento | Número do contrato de administração que originou o lançamento |
Contrato de locação | Número do contrato de locação que originou o lançamento | Número do contrato de locação que originou o lançamento |
Ciclo de locação | Número do ciclo que originou o lançamento | Número do ciclo que originou o lançamento |
Data do lançamento | Data de vencimento da próxima fatura | Data de vencimento da próxima fatura |
Histórico | “Taxa de administração de {0}% sobre o aluguel de R$ {1} referente ao período de {2} a {3}',” sendo os campos “Taxa de administração” (contrato.snap_brok__Taxa_administracao__c), “Valor do aluguel corrigido” (contrato.snap_brok__Valor_aluguel_corrigido__c), "Início de apuração" e "Término de apuração" respectivamente. | “Taxa de administração de {0}% sobre o aluguel de R$ {1} referente ao período de {2} a {3}',” sendo os campos “Taxa de administração” (contrato.snap_brok__Taxa_administracao__c), “Valor do aluguel corrigido” (contrato.snap_brok__Valor_aluguel_corrigido__c), "Início de apuração" e "Término de apuração" respectivamente. |
Imóvel | Imóvel principal do contrato | Imóvel principal do contrato |
Tipo de registro | Adminstradora | Locador |
Situação | Aprovado | Aprovado |
Tipo de lançamento | Taxa de administração | Taxa de administração |
Valor do lançamento | Valor da taxa de administração calculada | - Valor da taxa de administração calculada |
gerarLancamentosIptuContrato
Este método recebe como parâmetro a “Contrato” (Contrato__c contrato), “Data de início de apuração” e “Data de término de apuração” que foram calculadas na etapa anterior de período de apuração além dos parâmetros “Lançamento do contrato” (List<Lancamento_contrato__c> lancamentos) e “Ciclo de Locação” (Ciclo_locacao__c ciclo).
...
Se o campo "Taxa de serviço para encargo" do contrato (contrato.Taxa_de_servico_para_encargo__c) for diferente de nulo e o campo "Pagante IPTU" (contrato.Pagante_iptu__c) for igual a "Administradora", o sistema realiza as seguintes atividades para gerar um lançamento de taxa de serviço para IPTU. if (contrato.Pagante_IPTU__c == 'Administradora' && contrato.Taxa_de_servico_para_encargo__c != null){
DEscrever os itens abaixo
System.debug('Taxa de serviço >>>');
System.debug('lancamentos.size() >>>' + lancamentos.size());
if(parametrizacao.snap_brok__Locador_paga_taxa_servico__c){
responsavel = 'Locador';
}O campo “Histórico” (lancamentoContrato.Historico__c) do lançamento = Histórico. Esse histórico é composto da seguinte forma: “Taxa de serviço de {0}% para pagamento do IPTU do imóvel {1} referente ao rateio de {2}%'”, sendo preenchido com os campos “Taxa de serviço para encargo” (contrato.Taxa_de_servico_para_encargo__c), “Imóvel” (imovel.Imovel__r.Name), “rateioIptu” calculado anteriormente,respectivamente.
O campo “Valor do lançamento” (lancamentoContrato.Valor_lancamento__c) do lançamento = valorTaxa. Esse valor do lançamento é composto pela variável valorIptu (calculado anteriormente)* “Taxa de serviço para encargo” (contrato.Taxa_de_servico_para_encargo__c) dividido por 100, isto é, (valorIptu * contrato.Taxa_de_servico_para_encargo__c/100). Esse valor poderá ser negativo para o “Responsável pelo IPTU” ou positivo para o “Pagante IPTU”.
O campo “Contrato de administração” (lancamentoContrato.Contrato__c) do lançamento = “Contrato de administração” (contrato.Contrato_administracao__c) que está sendo gerado o lançamento;
O campo “Contrato de locação” (lancamentoContrato.Contrato_locacao__c) do lançamento = “Contrato de locação” (contrato.contrato.Id) que está sendo gerado o lançamento;
O campo “Ciclo de locação” (lancamentoContrato.Ciclo_locacao__r) do lançamento = ao ciclo financeiro criado na etapa anterior;
O campo “Data do lançamento” (lancamentoContrato.Data_lancamento__c) do lançamento = a datalancamento é igual a “data de lançamento” recebida como parâmetro do método;
O campo “Imóvel” (lancamentoContrato.Imovel__c) do lançamento = “Imóvel” (contrato.Imovel__c) que está sendo gerado o lançamento;
O campo “Tipo de registro” do lançamento = “Responsável pelo IPTU” (contrato.Responsavel_iptu__c) ou “Pagante IPTU” (contrato.Pagante_iptu__c);
O campo “Situação” (Lancamentocontrato.Situacao__c) do lançamento = “Aprovado”;
O campo “Tipo de lançamento” (lancamentoContrato.Tipo_lancamento_contrato__c) do lançamento = “Taxa de serviço IPTU”;
descrever abaixo isso
System.debug('lancamentos.size() >>>' + lancamentos.size());
}
} //Imovel_contrato__c imovel: contrato.Imoveis_contrato__r
} // contrato.Gerar_lancamento_iptu__c
}
catch (Exception ex){
throw new ContratoException('Erro na geração dos lançamentos de iptu do contrato de locação: ' + ex.getMessage() + ' na linha ' + ex.getLineNumber());
}
}
Resumindo:
Crédito | Débito | |
---|---|---|
Contrato de administração | Número do contrato de administração que originou o lançamento | Número do contrato de administração que originou o lançamento |
Contrato de locação | Número do contrato de locação que originou o lançamento | Número do contrato de locação que originou o lançamento |
Ciclo de locação | Número do ciclo que originou o lançamento | Número do ciclo que originou o lançamento |
Data do lançamento | Data de vencimento da próxima fatura | Data de vencimento da próxima fatura |
Histórico | “Taxa de serviço de {0}% para pagamento do IPTU do imóvel {1} referente ao rateio de {2}%'”, sendo preenchido com os campos “Taxa de serviço para encargo” (contrato.Taxa_de_servico_para_encargo__c), “Imóvel” (imovel.Imovel__r.Name), “rateioIptu” calculado anteriormente,respectivamente. | “Taxa de serviço de {0}% para pagamento do IPTU do imóvel {1} referente ao rateio de {2}%'”, sendo preenchido com os campos “Taxa de serviço para encargo” (contrato.Taxa_de_servico_para_encargo__c), “Imóvel” (imovel.Imovel__r.Name), “rateioIptu” calculado anteriormente,respectivamente. |
Imóvel | Imóvel principal do contrato | Imóvel principal do contrato |
Tipo de registro | Pagante IPTU | Responsável pelo IPTU |
Situação | Aprovado | Aprovado |
Tipo de lançamento | Taxa de serviço IPTU | Taxa de serviço IPTU |
Valor do lançamento | Valor da taxa de serviço de IPTU calculado | - Valor da taxa de serviço de IPTU calculado |
...
private static void gerarLancamentosTaxaComissao13Contrato(Contrato__c contrato, Date inicioApuracao, Date terminoApuracao,
List<Lancamento_contrato__c> lancamentos, Ciclo_locacao__c ciclo){
try {
Lancamento_contrato__c debito;
Lancamento_contrato__c credito;
String historico;
Decimal valorTaxaComissao13;
Parametrizacao__c parametrizacao = ParametrizacaoServico.Parametrizacao;
String regraApuracao = parametrizacao.snap_brok__Periodo_apuracao_faturamento__c;
Date dataLancamento = inicioApuracao;
Boolean gerarTaxa = false;
Integer mes = contrato.snap_brok__Data_proximo_aluguel__c.month();
if (contrato.Tipo_vencimento__c == 'Antecipado' && regraApuracao.equalsIgnoreCase('Mês fechado')){
dataLancamento = terminoApuracao.addMonths(-1);
if(mes == 10){
gerarTaxa = true;
}
}
if (contrato.Tipo_vencimento__c == 'Vencido' && regraApuracao.equalsIgnoreCase('Mês fechado')){
if(mes == 11){
gerarTaxa = true;
}
}
if(gerarTaxa){
if (contrato.Valor_aluguel_corrigido__c != null && contrato.Valor_aluguel_corrigido__c > 0
&& contrato.Taxa_administracao_Novembro__c != null && contrato.Taxa_administracao_Novembro__c > 0){
valorTaxaComissao13 = contrato.Valor_aluguel_corrigido__c * (contrato.Taxa_administracao_Novembro__c / 100);
//Taxa de comissão 13º de (% taxa novembro) sobre o aluguel de R$ (valor do aluguel corrigido)
historico = String.format('Taxa de novembro de {0}% sobre o aluguel de R$ {1}',
new String[]{ contrato.Taxa_administracao_Novembro__c.format(), contrato.Valor_aluguel_corrigido__c.format() });
debito = new Lancamento_contrato__c(
Contrato__c = contrato.Contrato_administracao__c,
Contrato_locacao__c = contrato.Id,
Ciclo_locacao__r = ciclo,
Data_lancamento__c = dataLancamento,
Historico__c = historico,
RecordTypeId = Schema.SObjectType.Lancamento_contrato__c.getRecordTypeInfosByName().get('Locador').getRecordTypeId(),
Situacao__c = 'Aprovado',
Tipo_lancamento_contrato__c = 'Taxa de novembro',
Valor_lancamento__c = -valorTaxaComissao13);
lancamentos.add(debito);
//historico = String.format('Taxa de comissão 13º de {0}% sobre o aluguel de R$ {1}',
// new String[]{ contrato.Taxa_administracao_Novembro__c.format(), contrato.Valor_aluguel_corrigido__c.format() });
credito = new Lancamento_contrato__c(
Contrato__c = contrato.Contrato_administracao__c,
Contrato_locacao__c = contrato.Id,
Ciclo_locacao__r = ciclo,
Data_lancamento__c = dataLancamento,
Historico__c = historico,
RecordTypeId = Schema.SObjectType.Lancamento_contrato__c.getRecordTypeInfosByName().get('Administradora').getRecordTypeId(),
Situacao__c = 'Aprovado',
Tipo_lancamento_contrato__c = 'Taxa de novembro',
Valor_lancamento__c = valorTaxaComissao13);
lancamentos.add(credito);
}
}
} catch (Exception ex){
throw new ContratoException('Erro na geração dos lançamentos da Taxa de comissão 13o. do contrato de locação: ' + ex.getMessage() + ' na linha ' + ex.getLineNumber());
}
}