Você está aqui:
InsPolicyBillingService:generateBillingAccountStatements
Use esse serviço para gerar extratos para contas que contêm apólices com contas de faturamento que tenham Data de vencimento = hoje.
Não recomendamos invocar esse serviço diretamente. Ele foi criado para ser chamado pelo trabalho agendado Gerar declarações de conta de faturamento do Vlocity.
Método: generateBillingAccountStatements
Como funciona
-
O serviço pega uma lista de contas de faturamento de um Trabalho agendado do Vlocity.
-
Agrupa contas de faturamento por contas.
-
Recupera políticas associadas às Contas de cobrança.
-
Cria uma declaração para cada conta:
-
Define
RecordType__ccomoStatement. -
Define
AccountId__cpara o ID da conta. -
Define
DueDate__cpara o valor deBillDueDate__cda primeira conta de faturamento no grupo. -
Define
StatementDate__cpara o valor deBillDueDate__c. -
Define
StatementEndDate__cpara o valor deBillDueDate__c. -
Define
StatementStartDate__cpara a data de término mais distante especificada pelos valores deBillingFrequency__cnas contas de faturamento. -
Define
BalanceDue__cpara a soma dos valores deAutomaticPaymentAmounts__cnas apólices associadas às contas de faturamento. -
Define
PreviousBalance__cpara a soma dos valores PastDue__c nas apólices associadas às contas de faturamento.
-
-
Para todas as apólices associadas a um extrato específico, recupera todas as transações associadas às apólices especificadas que têm uma
TransactionDate__cdentro da data de início e término do período do extrato.Se a transação não tiver um valor para o
StatementId__c, defina oStatementId__ccomo o ID do extrato especificado. -
Para cada conta de faturamento:
-
Define
AutomaticPaymentAmount__cpara a soma dos valores deNextPaymentAmountDue__cnas apólices associadas à conta de faturamento. -
Define a nova
BillDueDate__ccom base nasBillDueDate__ceBillingFrequency__catuais.
-
-
Para cada apólice associada a uma conta de faturamento específica:
-
Define o
AutomaticPaymentAmountDue__cpara oNextPaymentAmountDue__c. -
Define
BillDueDate__cpara oBillDueDate__catualizado da conta de faturamento.
-
Cálculo de StatementStartDate__c
Uma conta pode ter várias apólices com faturamento direto. Cada apólice pode ter uma frequência de faturamento diferente (anual, trimestral, mensal ou semestral). A StatementStartDate__c é determinada usando a data de vencimento da apólice e a frequência de faturamento para calcular a data de início para cada apólice. então escolher a data de início mais distante no tempo.
Por exemplo, se uma Conta tiver duas apólices, ambas com uma data de vencimento de fatura de "2018-03-31". A política 1 tem uma frequência de faturamento de "Mensal" e a política 2 tem uma frequência de faturamento de "Trimestral". Usando a data de vencimento da fatura e a frequência de faturamento, a data de início da apólice 1 seria "2018-02-28" e a data de início da apólice 2 seria "2018-01-01". Como a data de início da política 2 está mais atrás no tempo, o StatementStartDate__c é definido como "2018-01-01".
Cálculo do novo BillDueDate__c
Um novo BillDueDate__c é calculado com base no BillDueDate__c atual e no BillingFrequency__c. Aqui estão as frequências de faturamento e os cálculos para o novo BillDueDate__c:
-
Anualmente
BillDueDate__catual mais 1 ano -
Trimestral
A
BillDueDate__cpode ter apenas 1 de 4 datas: 31 de março, 30 de junho, 30 de setembro ou 31 de dezembro. DefinaBillDueDate__cpara a próxima data na sequência. Por exemplo, se estiver atualmente definido como 31 de março, defina-o como 30 de junho. -
Mensal
BillDueDate__catual mais 1 mês -
Semi-mensal
-
Se o
BillDueDate__catual for o fim do mês, defina-o para o meio do mês seguinte (14o se fevereiro, 15o se qualquer outro mês) -
Se o
BillDueDate__catual for o meio do mês, defina-o como o fim do mês
-
JSON de entrada
Esse serviço espera um JSON de entrada gerado por um Trabalho agendado do Vlocity. Esse trabalho agendado incluirá a seguinte chave e seus valores:
-
records: Uma lista de contas de cobrança selecionadas pelo trabalho agendado
{
"records": [{
"Id": "a3h5A000000Xz7l",
"AccountId": "0015A000025MuenQAC",
"BillDueDate__c": "2018-03-31",
"BillingFrequency__c": "Monthly"
},
{
"Id": "a3h5A000000Xz7m",
"AccountId": "0015A000025MuenQAC"
"BillDueDate__c": "2018-03-31",
"BillingFrequency__c": "Quarterly"
}
]
}
