<?php
class Fichas extends Conectar {


public function get_fichas() {
        $conectar = parent::conexion();
        parent::set_names();

        $sql = "SELECT 
                    f.fic_id,
                    f.fic_run,
                    f.fic_nom,
                    f.fic_fec_naci,
                    f.fic_dato1,
                    f.fic_dato2,
                    f.fic_dato3,
                    f.fic_dato4,
                    f.fic_estado,
                    
                    a1.apo_id AS apo1_id,
                    a1.apo_nombre AS apo1_nombre,

                    a2.apo_id AS apo2_id,
                    a2.apo_nombre AS apo2_nombre,

                    f.created_at

                FROM tm_ficha f
                INNER JOIN tm_apoderados a1 ON f.apo1_id = a1.apo_id
                LEFT JOIN tm_apoderados a2 ON f.apo2_id = a2.apo_id
                WHERE f.fic_estado = 1 ORDER BY f.fic_nom ASC";
        $stmt = $conectar->prepare($sql);
        $stmt->execute();

        return $stmt->fetchAll(PDO::FETCH_ASSOC);
    }

public function delete_fichas($fic_id) {
        $conectar = parent::conexion();
        parent::set_names();

        $sql = "UPDATE tm_ficha SET fic_estado = 0 WHERE fic_id = ?";
        $stmt = $conectar->prepare($sql);
        $stmt->execute([$fic_id]);
    }

public function get_fichas_x_id($fic_id) {
        $conectar = parent::conexion();
        parent::set_names();

        $sql = "SELECT 
                    f.fic_id,
                    f.fic_run,
                    f.fic_nom,
                    f.fic_fec_naci,
                    f.fic_dato1,
                    f.fic_dato2,
                    f.fic_dato3,
                    f.fic_dato4,
                    f.fic_estado,
                    f.fic_valor_mes,
                    a1.apo_id AS apo1_id,
                    a1.apo_nombre AS apo1_nombre,
                    a2.apo_id AS apo2_id,
                    a2.apo_nombre AS apo2_nombre,
                    f.created_at
                FROM tm_ficha f
                INNER JOIN tm_apoderados a1 ON f.apo1_id = a1.apo_id
                LEFT JOIN tm_apoderados a2 ON f.apo2_id = a2.apo_id
                WHERE f.fic_id = ?";
        $stmt = $conectar->prepare($sql);
        $stmt->execute([$fic_id]);

        return $stmt->fetch(PDO::FETCH_ASSOC);
    }



public function insert_or_update_fichas($fic_id, $fic_run, $fic_nom, $fic_fec_naci, $fic_dato1, $fic_dato2, $fic_dato3, $fic_dato4, $apo1_id, $apo2_id,$valor_alumno,$emp_ext) {
    $conectar = parent::conexion();
    parent::set_names();

    $apo2_id = !empty($apo2_id) ? $apo2_id : null;

    if (empty($fic_id)) {
            $sql = "INSERT INTO tm_ficha (fic_run, fic_nom, fic_fec_naci, fic_dato1, fic_dato2, fic_dato3, fic_dato4, apo1_id, apo2_id,fic_valor_mes,fic_alumno)
                    VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
            $stmt = $conectar->prepare($sql);
            $stmt->execute([$fic_run, $fic_nom, $fic_fec_naci, $fic_dato1, $fic_dato2, $fic_dato3, $fic_dato4, $apo1_id, $apo2_id,$valor_alumno,$emp_ext]);
        } else {
            $sql = "UPDATE tm_ficha
                    SET fic_run=?, fic_nom=?, fic_fec_naci=?, fic_dato1=?, fic_dato2=?, fic_dato3=?, fic_dato4=?, apo1_id=?, apo2_id=?, fic_valor_mes=?, fic_alumno=?
                    WHERE fic_id=?";
            $stmt = $conectar->prepare($sql);
            $stmt->execute([$fic_run, $fic_nom, $fic_fec_naci, $fic_dato1, $fic_dato2, $fic_dato3, $fic_dato4, $apo1_id, $apo2_id, $valor_alumno, $emp_ext, $fic_id]);
        }
    
    }   

    public function get_fichas_select() {
        $conectar = parent::conexion();
        parent::set_names();

        $sql = "SELECT fic_id, fic_nom, fic_run FROM tm_ficha WHERE fic_estado = 1 ORDER BY fic_nom ASC;";
        $stmt = $conectar->prepare($sql);
        $stmt->execute();

        return $stmt->fetchAll(PDO::FETCH_ASSOC);
    }
}
