<?php
require_once('../config.php');
$user_id = $_SESSION['user_id'];
$emp_id = $_SESSION['emp_id'];
$user_role = $_SESSION['user_role'];


// SQL server connection information
// $sql_details = $search_db;
$sql_details = $search_db;

if(!isset($_GET['isset'])){
    exit();
}



$table = <<<EOT
(
    SELECT 
        ROW_NUMBER() OVER(ORDER BY t1.id DESC) row_num,
        t1.*,
        t2.name
    FROM work_policy t1
    INNER JOIN users t2 ON t1.employee_id=t2.employee_id
) join_table
EOT;


$whereResult = null;
$whereAll = null;
if (isset($_GET['where_condition']) && !empty($_GET['where_condition'])) {
    $whereAll = $_GET['where_condition'];
}

// Table's primary key
$primaryKey = 'id';

// Array of database columns which should be read and sent back to DataTables.
// The `db` parameter represents the column name in the database, while the `dt`
// parameter represents the DataTables column identifier. In this case simple
// indexes
$columns = array(
    array('db' => 'row_num', 'dt' => 'row_num'),
    array('db' => 'employee_id', 'dt' => 'employee_id'),
    array('db' => 'name', 'dt' => 'name'),
    array(
        'db' => 'working_days', 
        'dt' => 'working_days',
        'formatter' => function($cell, $row){
            $returnValue = '';
            if(!empty($cell)){
                $returnValue = '<div><ul style="padding-left:1rem;">';
                foreach (json_decode($cell, true) as $key => $value) {
                    $returnValue .= '<li>'.$value.'</li>';
                }
                $returnValue .= '</ul></div>';
            }
            return $returnValue;
        }
    ),
    array('db' => 'punch_in', 'dt' => 'punch_in'),
    array('db' => 'punch_out', 'dt' => 'punch_out'),
    array('db' => 'applicable_from', 'dt' => 'applicable_from'),
    array(
        'db' => 'applicable_to', 
        'dt' => 'applicable_to',
        'formatter' => function($cell, $row){
            $returnValue = $row['applicable_to'];
            if(empty($returnValue)){
                $returnValue = 'Current';
            }
            return $returnValue;
        }
    ),
    array('db' => 'relaxation_from', 'dt' => 'relaxation_from'),
    array('db' => 'relaxation_to', 'dt' => 'relaxation_to'),
    array('db' => 'auto_approve_from', 'dt' => 'auto_approve_from'),
    array('db' => 'auto_approve_to', 'dt' => 'auto_approve_to'),
    array('db' => 'not_request_after', 'dt' => 'not_request_after'),
    array(
        'db' => 'half_day_hours', 
        'dt' => 'half_day_hours',
        'formatter' => function($cell, $row){
            $returnValue = !empty($cell) ? $cell : '04:00';
            return $returnValue . " Hours";
        }
    ),
    array(
        'db' => 'id', 
        'dt' => 'id',
        'formatter' => function($cell, $row){
            $returnValue = '';
             if(empty($row['applicable_to'])){
                // $returnValue .= '<a href="work_policy?edit='.$row['id'].'" class="mr-1 text-success" title="Edit"><i class="uil uil-edit"></i></a>';
                $returnValue .= '<a href="javascript:;" onclick="_delete_('.$row['id'].');" class="text-danger" title="Delete"><i class="uil uil-trash-alt"></i></a>';
            }
            return $returnValue;
        }
    ),
);


/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * If you just want to use the basic configuration for DataTables with PHP
 * server-side, there is no need to edit below this line.
 */
require('ssp.class.php');

echo json_encode(
    // SSP::simple($_GET, $sql_details, $table, $primaryKey, $columns)
    SSP::complex($_GET, $sql_details, $table, $primaryKey, $columns, $whereResult, $whereAll)
);
