<?php
include "pin/header.php";
include "pin/sidenav.php";

$user_id = $_SESSION['user_id'];
$emp_id = $_SESSION['emp_id'];
$user_role = $_SESSION['user_role'];

if (isset($_GET['delete'])) {

    $oldRevision = mysqli_fetch_assoc(mysqli_query($db, "select * from promotions where id='$_GET[delete]' "));
    $from_date = date('Y-m', strtotime("$oldRevision[applicable_from] -1 month"));

    $od = mysqli_query($db, "update promotions set applicable_to='' where employee_id='$oldRevision[employee_id]' and applicable_to='$from_date' ");

    if ($od) {

        $q = mysqli_query($db, "DELETE FROM promotions WHERE id='$_GET[delete]' ");
        if ($q) {
            echo "<script>alert('Promotion Deleted Successfully !');</script>";
        }
    } else {
        echo mysqli_error($db);
    }

    echo "<script>location.href='promotions';</script>";

}

$edit = mysqli_fetch_assoc(mysqli_query($db, "select * from promotions where id='$_GET[edit]' "));

?>


<!-- ============================================================== -->
<!-- Start Page Content here -->
<!-- ============================================================== -->

<div class="content-page">
    <div class="content">
        <div class="container-fluid">
            <div class="mt-5"></div>

            <div class="row">
                <div class="col-lg-12">
                    <div class="card">
                        <div class="card-body p-4">
                            <h4 class="header-title mt-1 mb-4">
                                Add Promotion
                            </h4>

                            <form id="form_submit">
                                <div class="row">

                                    <div class="col-md-6">
                                        <div class="form-group">
                                            <label for="employee_id">Employee<span class="text-danger">*</span></label>
                                            <select data-plugin="customselect" name="employee_id" class="form-control custom-select-picker-ajax" data-search="employees" data-param="<?php echo htmlspecialchars(json_encode(['default'=>$edit['employee_id'], 'current_page'=>$currentPageName])); ?>" data-placeholder="Select Employee" id="employee_id" required <?php echo isset($_GET['edit'])?'disabled':''; ?>>
                                                <option></option>
                                            </select>
                                        </div>
                                    </div>

                                    <div class="col-md-6">
                                        <div class="form-group">
                                            <label for="promote_to">Promote To (Designation)<span class="text-danger">*</span></label>
                                            <select data-plugin="customselect" name="promote_to" class="form-control custom-select-picker-ajax" data-search="designations" data-param="<?php echo htmlspecialchars(json_encode(['default'=>$edit['promote_to'], 'current_page'=>$currentPageName])); ?>" data-placeholder="Select Designation" id="promote_to" required>
                                                <option></option>
                                            </select>
                                        </div>
                                    </div>

                                    <div class="col-md-6">
                                        <div class="form-group">
                                            <label for="applicable_from">Applicable From<span class="text-danger">*</span></label>
                                            <input type="month" name="applicable_from" required placeholder="Enter Asset Brand" class="form-control" id="applicable_from" value="<?php echo $edit['applicable_from']; ?>">
                                        </div>
                                    </div>
                                </div>

                                <?php if (isset($edit['id'])) { ?>
                                    <input type="hidden" name="ex_employee_id" value="<?php echo $edit['employee_id']; ?>">
                                    <input type="hidden" name="old_applicable_from" value="<?php echo $edit['applicable_from']; ?>">
                                    <input type="hidden" name="edit_promotion_id" value="<?php echo $edit['id']; ?>">
                                    <input class="btn btn-primary mr-1" name="update_promotion_submit" id="update_promotion_submit" type="hidden">
                                <?php } else { ?>
                                    <input class="btn btn-primary mr-1" name="add_promotion_submit" id="add_promotion_submit" type="hidden">
                                <?php } ?>

                                <div class="form-group text-right mb-0 mt-4">
                                    <?php if (isset($edit['id'])) { ?>
                                        <button class="btn btn-primary mr-1" name="update_promotion_submit" id="update_promotion_submit" type="submit">Update Promotion</button>
                                    <?php } else { ?>
                                        <button class="btn btn-primary mr-1" name="add_promotion_submit" id="add_promotion_submit" type="submit">Save Promotion</button>
                                    <?php } ?>
                                </div>

                            </form>
                        </div>
                    </div>
                </div>

            </div>

            <div class="row">
                <div class="col-12">
                    <div class="card">
                        <div class="card-body p-4">
                            <h4 class="header-title mt-0 mb-1 mb-4">
                                All Designations
                            </h4>

                            <table id="basic-datatable" class="table dt-responsive nowrap">
                                <thead>
                                    <tr>
                                        <th>ID</th>
                                        <th>Details</th>
                                        <th>Promote To</th>
                                        <th>Applicable From</th>
                                        <th>Applicable To</th>
                                        <th>Action</th>
                                    </tr>
                                </thead>

                            </table>
                            <!-- </div> -->

                        </div> <!-- end card body-->
                    </div> <!-- end card -->
                </div><!-- end col-->
            </div>
            <!-- end row-->

        </div>
    </div>

</div>



<?php
include "pin/footer.php";
?>

<script>
    $(document).ready(function() {

        // ############################### columns
        let columns = [{data: 'row_num'}, {data: 'employee_id'}, {data: 'name'}, {data: 'designation_name'}, {data: 'applicable_from'}, {data: 'applicable_to'}, {data: 'id'}];

        // ############################### columns
        function show_hierarchy_data() {

            $("#filter_options").html('');
            form_fields.each(function() {
                search_filter(this);
            });
            if (setArray.length > 0) {
                loadTable('#basic-datatable', 'get_from_server/promotions_get', columns, [0, 'asc'], setArray);
            } else {
                loadTable('#basic-datatable', 'get_from_server/promotions_get', columns, [0, 'asc']);
            }
            // console.log(setArray);
            setArray = [];
            // console.log(setArray);
        }

        show_hierarchy_data();
    });


    function hasEmptyFields(form) {
        // Get all input elements within the form
        const inputs = form.querySelectorAll('input, select, textarea');

        // Check if any input is empty or null
        return Array.from(inputs).some(input => {
                // console.log(input.required, input.value.trim(), input.id);
                return input.required && input.value.trim() === ''
            }
        );
    }

    $('#form_submit').submit(function (e) {
        e.preventDefault();
        let form = document.getElementById('form_submit');
        // let form_data = new FormData(form);
        let form_data = $('#form_submit').serialize();
        // console.log(form_data);

        if(hasEmptyFields(form)){
            failedMessage('Please, Fill all the Fields.','<?php echo $_SESSION['user_name']; ?>');
            return false;
        }
        $.ajax({
            url: 'fun/function',
            type: 'POST',
            data: form_data,
            dataType: 'json',
            success: function(res) {
                // console.log(res);
                if (res.status === 200) {
                    successMessage(res.message, '<?php echo $_SESSION['user_name']; ?>');
                    setTimeout(() => {
                        location.href='promotions';
                    }, 2000);
                } else {
                    failedMessage(res.message, '<?php echo $_SESSION['user_name']; ?>');
                }
            },
            error: function(xhr, status, error) {
                console.log(`Error: ${JSON.stringify(error)}`);
            }
        });
    });
</script>