Criando serviço de liberação por adiplência

This commit is contained in:
Kenio 2025-08-18 17:37:51 -03:00
parent 013a28393f
commit 9a62324971
2 changed files with 33 additions and 7 deletions

View file

@ -34,7 +34,8 @@ try{
/** Consulta por movimentações em atraso de um determinado cliente pelo seu CNS */
$FinancialMovementsResult = $FinancialMovements->SearchDebit($FinancialMovementsValidate->getCns());
/** */
/** Verifica se a consulta retornou resultados */
if(count($FinancialMovementsResult) > 0){
$result = new stdClass();
$result->code = 200;
@ -45,14 +46,20 @@ try{
foreach($FinancialMovementsResult as $FinancialMovementsKey => $Result){
$expired = new stdClass();
$expired->description = $Result->description;
$expired->reference = $Result->movement_date_scheduled;
$expired->days = $Result->days_passed;
$result->data->expired[] = $expired;
}
echo json_encode($result, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
exit;
} else {
}
echo json_encode($result, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
exit;
} else {

View file

@ -413,14 +413,33 @@ class FinancialMovements
$this->cns = $cns;
/** Consulta SQL */
$this->sql = 'SELECT fm.financial_movements_id,
fm.movement_date_scheduled,
DATEDIFF(CURRENT_DATE, fm.movement_date_scheduled) AS days_passed
$this->sql = '(
-- Registros em atraso
SELECT
fm.*,
DATEDIFF(CURRENT_DATE, fm.movement_date_scheduled) AS days_passed,
\'em_atraso\' AS status_registro
FROM financial_movements fm
INNER JOIN companies c ON fm.company_id = c.company_id
WHERE c.cns = :cns
AND fm.movement_date_paid IS NULL
AND fm.movement_date_scheduled <= CURRENT_DATE;';
AND fm.movement_date_scheduled <= CURRENT_DATE
)
UNION
(
-- Próximo vencimento (caso não haja atrasados)
SELECT
fm.*,
DATEDIFF(CURRENT_DATE, fm.movement_date_scheduled) AS days_passed,
\'proximo_vencimento\' AS status_registro
FROM financial_movements fm
INNER JOIN companies c ON fm.company_id = c.company_id
WHERE c.cns = :cns
AND fm.movement_date_paid IS NULL
AND fm.movement_date_scheduled > CURRENT_DATE
ORDER BY fm.movement_date_scheduled ASC
LIMIT 1
);';
/** Preparo o SQL para execução */
$this->stmt = $this->connection->connect()->prepare($this->sql);