<?php
class HoraExtra
{
    public function __construct()
    {
    }

    public static function obtenerProcesosPorTipoPlanillaAnio(int $codtipoplanilla, int $anio): object
    {
        try {
            $db = obtenerConexion();

            $query = "SELECT * FROM rrhh.view_procesosCargaHorasExtras WHERE estado = 1 and anio = :anio and codtipoplanilla = :codtipoplanilla;";
            $stmt = $db->prepare($query, [PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL]);
            $stmt->bindParam(':anio', $anio, PDO::PARAM_INT);
            $stmt->bindParam(':codtipoplanilla', $codtipoplanilla, PDO::PARAM_INT);

            $stmt->execute();

            $data = $stmt->fetchAll(PDO::FETCH_OBJ);

            foreach ($data as $key => $row) {
                !empty($row->fechaRegistro) && $data[$key]->fechaRegistro = date("d-m-Y h:i a", strtotime($row->fechaRegistro));
                !empty($row->fechaProyeccion) && $data[$key]->fechaProyeccion = date("d-m-Y", strtotime($row->fechaProyeccion));
                !empty($row->fechaPago) && $data[$key]->fechaPago = date("d-m-Y h:i a", strtotime($row->fechaPago));
            }

            return (object)[
                'status' => 200,
                'message' => 'success',
                'data' => $data,
            ];
        } catch (PDOException $e) {
            return (object)[
                'status' => 500,
                'message' => $e->getMessage(),
            ];
        } catch (Exception $e) {
            return (object)[
                'status' => 500,
                'message' => $e->getMessage(),
            ];
        }
    }

    public static function obtenerPorProcesoMasivo(int $id): object
    {
        try {
            $db = obtenerConexion();

            $query = "SELECT * FROM rrhh.view_horasExtras WHERE idProcesoCarga = :id;";
            $stmt = $db->prepare($query, [PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL]);
            $stmt->bindParam(':id', $id, PDO::PARAM_INT);

            $stmt->execute();

            $data = $stmt->fetchAll(PDO::FETCH_OBJ);

            foreach ($data as $key => $row) {
                !empty($row->fechaRegistro) && $data[$key]->fechaRegistro = date("d-m-Y h:i a", strtotime($row->fechaRegistro));
                !empty($row->fechaProyeccion) && $data[$key]->fechaProyeccion = date("d-m-Y", strtotime($row->fechaProyeccion));
                !empty($row->fechaPago) && $data[$key]->fechaPago = date("d-m-Y h:i a", strtotime($row->fechaPago));
            }

            return (object)[
                'status' => 200,
                'message' => 'success',
                'data' => $data,
            ];
        } catch (PDOException $e) {
            return (object)[
                'status' => 500,
                'message' => $e->getMessage(),
            ];
        } catch (Exception $e) {
            return (object)[
                'status' => 500,
                'message' => $e->getMessage(),
            ];
        }
    }
}
