<?php

namespace App\Table;

use App\Services\Table\Table;

class EmployeesTable extends Table
{

    /**
     * Retourne un objet salarié par la combinaison reférence-companyId
     * @param $reference
     * @param $companyId
     * @return array|mixed
     */
    public function getSalarie($reference, $companyId)
    {
        return $this->query("SELECT * FROM employees WHERE reference = ? AND company = ?", [$reference, $companyId]);
    }

    /**
     * Retourne la liste des employés étant actif, en fonction de la date actuelle $date
     * @param $date
     * @return mixed
     */
    public function getAllActif($date)
    {
        return $this->query("SELECT * FROM employees WHERE date(leavingdate) > ? OR leavingdate IS NULL", [$date], true);
    }

    /**
     * Retourne un tableau d'employés pour la création du PDF
     * @param $request
     * @return array|mixed
     */
    public function getAllFromRequest($request)
    {
        return $this->query($request, [], true);
    }

    /**
     * Retourne tous les employés étant encore dans les effectifs, par compagnie id
     * sous forme d'un tableau d'employés
     * @param $companyId
     * @param $date
     * @return array|mixed
     */
    public function getAllByCompany($companyId, $date)
    {
        return $this->query("SELECT * FROM employees WHERE company = ? AND (date(leavingdate) > ? OR leavingdate IS NULL)", [$companyId, $date], true);
    }

}