Your IP : 216.73.216.86


Current Path : /home/emeraadmin/public_html/pages/subcontractor/
Upload File :
Current File : /home/emeraadmin/public_html/pages/subcontractor/viewtasksassignedtome.php

<?php
include('head.php');
require_once '../../Classes/Database.php';
require_once '../../Service/TaskService.php';
require_once '../../Classes/System.php';
require_once '../../Service/ServiceService.php';
$System = new System();

$serviceService = new ServiceService();

$services = $serviceService->getAllServicesForDropdown();


// Create TaskService instance
$taskService = new TaskService();

$tasks = $taskService->getTasksByAssignedIdNotAccepted($companyId);

?>

<div class="main-content">
    <div class="container-fluid">
        <div class="page-header">
            <div class="row align-items-end">
                <div class="col-lg-8">
                    <div class="page-header-title">
                        <i class="ik ik-layers bg-blue"></i>
                        <div class="d-inline">
                            <h5>View Assigned Tasks</h5>
                            <span>Accept or Reject tasks assigned to you</span>
                        </div>
                    </div>
                </div>
                <div class="col-lg-4">
                    <nav class="breadcrumb-container" aria-label="breadcrumb">
                        <ol class="breadcrumb">
                            <li class="breadcrumb-item">
                                <a href="../../index.html"><i class="ik ik-home"></i></a>
                            </li>
                            <li class="breadcrumb-item">
                                <a href="#">Tasks</a>
                            </li>
                            <li class="breadcrumb-item active" aria-current="page">View Assigned Tasks</li>
                        </ol>
                    </nav>
                </div>
            </div>
        </div>

        <!-- Task viewing section -->
        <div class="row">
            <div class="col-md-12">
                <div class="card">
                    <div class="card-header"><h3>View Tasks</h3></div>
                    <div class="card-body">
                        <div class="form-group row">
                            <div class="col-sm-4">
                                <label for="filter_service" class="col-form-label">Filter Service Name:</label>
                                <input type="text" class="form-control" id="filter_service">
                            </div>
                            <div class="col-sm-4">
                                <label for="filter_region" class="col-form-label">Filter Region:</label>
                                <select class="form-control" id="filter_region">
                                    <option value="">All Regions</option>
                                    <?php
                                    // Collect unique regions
                                    $uniqueRegions = [];
                                    foreach ($services as $service) {
                                        if (!in_array($service->region, $uniqueRegions)) {
                                            $uniqueRegions[] = $service->region;
                                            ?>
                                            <option value="<?= htmlspecialchars($service->region) ?>"><?= htmlspecialchars($service->region) ?></option>
                                            <?php
                                        }
                                    }
                                    ?>
                                </select>
                            </div>
                            <div class="col-sm-3">
                                <!--                                        <label for="reset_filters" class="col-form-label">Reset Filters:</label>-->
                                <button type="button" id="reset_filters" class="btn btn-icon btn-outline-danger"><i class="ik ik-refresh-cw"></i></button>

                            </div>
                        </div>
                        <table id="super_advanced_table" class="table">
                            <thead>
                            <tr>
                                <th><input type="checkbox" id="select_all_tasks"></th>
                                <th>ID</th>
                                <th>Service Name</th>
                                <th>Region</th>
                                <th>Frequency</th>
                                <th>Created At</th>
                                <th>Actions</th>
                            </tr>
                            </thead>
                            <tbody>
                            <?php foreach ($tasks as $task): ?>
                                <tr>
                                    <td><input type="checkbox" class="task_checkbox" value="<?= $task->id ?>"></td>
                                    <td><?php echo 'TSK-000' . $task->id; ?></td>
                                    <td><?php echo $task->service_name; ?></td>
                                    <td><?php echo $task->region; ?></td>
                                    <td><?php echo $task->frequency; ?></td>
                                    <td><?php echo date('F j, Y, g:i a', strtotime($task->created_at)); ?></td>
                                    <td>
                                        <a href="viewassignedtask.php?id=<?= $System->encryptData($task->id) ?>" class="btn btn-primary">View Details</a>
                                    </td>
                                </tr>
                            <?php endforeach; ?>
                            </tbody>
                        </table>
                        <button id="accept_tasks_button" class="btn btn-success">Accept Selected Tasks</button>
                        <button id="reject_tasks_button" class="btn btn-danger">Reject Selected Tasks</button>
                    </div>
                    <script>
                        $(document).ready(function () {
                            // Initialize DataTable
                            var table = $('#super_advanced_table').DataTable();

                            // Function to save filters to localStorage
                            function saveFilters() {
                                var filters = {
                                    service: $('#filter_service').val(),
                                    region: $('#filter_region').val()
                                    // Add more filters as needed
                                };
                                localStorage.setItem('advancedTableFilters', JSON.stringify(filters));
                            }

                            // Function to apply saved filters
                            function applyFilters() {
                                var filters = JSON.parse(localStorage.getItem('advancedTableFilters'));
                                if (filters) {
                                    $('#filter_service').val(filters.service).trigger('keyup');
                                    $('#filter_region').val(filters.region).trigger('change');
                                    // Apply more filters as needed
                                }
                            }

                            // Function to reset filters
                            function resetFilters() {
                                $('#filter_service').val('').trigger('keyup');
                                $('#filter_region').val('').trigger('change');
                                // Remove more filters as needed
                                localStorage.removeItem('advancedTableFilters');
                                table.search('').columns().search('').draw();
                            }

                            // Check previous page and apply filters if necessary
                            function checkPreviousPage() {
                                var previousUrl = sessionStorage.getItem('previousUrl');
                                if (!previousUrl || !previousUrl.includes('viewassignedtask.php')) {
                                    resetFilters();
                                } else {
                                    applyFilters();
                                }
                            }

                            checkPreviousPage();

                            // Add custom filters
                            $('#filter_service').on('keyup', function () {
                                table.column(2).search(this.value).draw();
                                saveFilters();
                            });

                            $('#filter_region').on('change', function () {
                                table.column(3).search($(this).val()).draw();
                                saveFilters();
                            });

                            // Add reset filters button functionality
                            $('#reset_filters').on('click', function () {
                                resetFilters();
                            });

                            // Handle select all tasks
                            $('#select_all_tasks').on('click', function () {
                                var isChecked = $(this).prop('checked');
                                $('.task_checkbox').prop('checked', isChecked);
                            });

                            // Apply saved filters on initial load
                            applyFilters();



                    // Handle accept tasks button click
                            $('#accept_tasks_button').on('click', function () {
                                // Confirm before accepting
                                Swal.fire({
                                    title: 'Are you sure?',
                                    text: 'You are about to accept the selected tasks.',
                                    icon: 'warning',
                                    showCancelButton: true,
                                    confirmButtonText: 'Yes, accept',
                                    cancelButtonText: 'No, cancel'
                                }).then((result) => {
                                    if (result.isConfirmed) {
                                        handleBulkTaskAction('accepttask_bulk.php');
                                    }
                                });
                            });

                            // Handle reject tasks button click
                            $('#reject_tasks_button').on('click', function () {
                                // Confirm before rejecting
                                Swal.fire({
                                    title: 'Are you sure?',
                                    text: 'You are about to reject the selected tasks.',
                                    icon: 'warning',
                                    showCancelButton: true,
                                    confirmButtonText: 'Yes, reject',
                                    cancelButtonText: 'No, cancel'
                                }).then((result) => {
                                    if (result.isConfirmed) {
                                        handleBulkTaskAction('rejecttask_bulk.php');
                                    }
                                });
                            });

                            function handleBulkTaskAction(url) {
                                var selectedTasks = $('.task_checkbox:checked').map(function () {
                                    return $(this).val();
                                }).get();

                                if (selectedTasks.length > 0) {
                                    $.ajax({
                                        url: url,
                                        method: 'POST',
                                        data: { taskIds: selectedTasks, companyId: <?= $companyId ?>},
                                        success: function (response) {
                                            if (response === 'success') {
                                                Swal.fire({
                                                    title: 'Success',
                                                    text: 'Tasks have been processed successfully.',
                                                    icon: 'success',
                                                    confirmButtonText: 'Ok'
                                                }).then(() => {
                                                    location.reload();
                                                });
                                            } else {
                                                Swal.fire({
                                                    title: 'Error',
                                                    text: 'An error occurred while processing tasks: ' + response,
                                                    icon: 'error',
                                                    confirmButtonText: 'Ok'
                                                });
                                            }
                                        },
                                        error: function () {
                                            Swal.fire({
                                                title: 'Error',
                                                text: 'An error occurred while processing tasks.',
                                                icon: 'error',
                                                confirmButtonText: 'Ok'
                                            });
                                        }
                                    });
                                } else {
                                    Swal.fire({
                                        title: 'No Tasks Selected',
                                        text: 'Please select at least one task.',
                                        icon: 'warning',
                                        confirmButtonText: 'Ok'
                                    });
                                }
                            }
                        });
                    </script>

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

<?php include('footer.php'); ?>