<?php
/**
 * BACKEND: CONSULTA DE TÍTULOS (REG_C140 e REG_C141)
 * Integração com dados de Participantes (REG_0150)
 */

// 1. Inclui a configuração centralizada (onde está definido o seu $mysqli)
require_once "../configuracao/conexao.php";

header('Content-Type: application/json; charset=utf-8');

// 2. Verificação de Parâmetros
if (!isset($_POST['data_ini']) || !isset($_POST['data_fim'])) {
    echo json_encode(["error" => "Parâmetros de data ausentes."]);
    exit;
}

$data_ini = $_POST['data_ini'];
$data_fim = $_POST['data_fim'];

/**
 * 3. SQL de Consulta
 * Integração essencial para o motor Morfo:
 * - C140: Fatura/Título
 * - C141: Parcelas/Vencimentos
 * - 0150: Cadastro de Participantes
 */
$sql = "SELECT 
            p.codigo,
            c.reg_c140_num_tit,
            c.reg_c140_ind_emit,
            p.reg_c141_num_parc,
            p.reg_c141_dt_vcto,
            p.reg_c141_vl_parc,
            p.reg_c141_status,
            COALESCE(part.reg_0150_nome, 'PARTICIPANTE NÃO IDENTIFICADO') as nome_participante
        FROM reg_c141 AS p
        INNER JOIN reg_c140 AS c ON p.reg_c141_c140_origem = c.codigo
        LEFT JOIN reg_0150 AS part ON p.reg_c141_cod_part = part.reg_0150_cod_part
        WHERE p.reg_c141_dt_vcto BETWEEN ? AND ?
        ORDER BY p.reg_c141_dt_vcto ASC, c.reg_c140_num_tit ASC";

try {
    // 4. Preparação da consulta usando MySQLi
    $stmt = $mysqli->prepare($sql);
    
    if (!$stmt) {
        throw new Exception("Erro na preparação: " . $mysqli->error);
    }

    // "ss" indica que ambos os parâmetros (data_ini e data_fim) são strings
    $stmt->bind_param("ss", $data_ini, $data_fim);
    $stmt->execute();

    // 5. Obtenção dos resultados
    $result = $stmt->get_result();
    $resultados = $result->fetch_all(MYSQLI_ASSOC);

    // 6. Retorno para o frontend
    echo json_encode($resultados);

    $stmt->close();

} catch (Exception $e) {
    http_response_code(500);
    echo json_encode([
        "error" => "Erro no banco de dados",
        "details" => $e->getMessage()
    ]);
}