Your IP : 216.73.216.86


Current Path : /home/emeraadmin/www/4d695/
Upload File :
Current File : /home/emeraadmin/www/4d695/viewsubtasksregionwise.php.tar

home/emeraadmin/public_html/pages/subcontractor/viewsubtasksregionwise.php000064400000023445151701473720023445 0ustar00<?php
include('head.php');
require_once '../../Classes/Database.php';
require_once '../../Service/TaskService.php';
require_once '../../Classes/System.php';

$assignedUserId = $_SESSION['user_id'] ?? ($_GET['user_id'] ?? 1);

$taskService = new TaskService();
$System = new System();

$SubContractorId = $_SESSION['user_id'];

$subtasksByRegion = $taskService->getAllSubtasksForSubContractorsGroupByRegion($SubContractorId);

$regions = array_keys($subtasksByRegion);
?>

<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>All Subtasks</h5>
                            <span>List of all subtasks 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="dashboard.php"><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">All Subtasks</li>
                        </ol>
                    </nav>
                </div>
            </div>
        </div>

        <!-- Region Filter Dropdown -->
        <div class="row mb-12">
            <div class="col-md-4">
                <div class="form-group">
                    <label for="regionFilter">Filter by Region</label>
                    <select id="regionFilter" class="form-control">
                        <option value="">All Regions</option>
                        <?php foreach ($regions as $region) { ?>
                            <option value="<?php echo $region; ?>"><?php echo $region; ?></option>
                        <?php } ?>
                    </select>
                </div>
            </div>
        </div>
        <div class="row mb-4">
            <div class="col-md-12">
                <a href="viewsubtasksdaywise.php" class="btn btn-outline-success"><i class="ik ik-layers"></i> Daily View</a>
            </div>
        </div>
<!--        day wise view-->

        <!-- Assign tasks to cleaner button -->
        <div class="row mb-4">
            <div class="col-md-12">
                <button class="btn btn-primary" id="assignTasks">Assign Tasks to Cleaner</button>
            </div>
        </div>

        <?php foreach ($subtasksByRegion as $region => $subtaskList) { ?>
            <div class="row subtask-row" data-region="<?php echo $region; ?>">
                <div class="col-md-12">
                    <div class="card">
                        <div class="card-header">
                            <h3>Subtasks for Region: <?php echo $region; ?></h3>
                        </div>
                        <div class="card-body">
                            <div class="dt-responsive">
                                <table class="table" id="table_<?php echo strtolower(str_replace(' ', '_', $region)); ?>">
                                    <thead>
                                    <tr>
                                        <th>#</th>
                                        <th>ID</th>
                                        <th>Service Name</th>
                                        <th>Date</th>
                                        <th>Time</th>
                                        <th>Assigned</th>
                                        <th>Actions</th>
                                    </tr>
                                    </thead>
                                    <tbody>
                                    <?php foreach ($subtaskList as $subtask) { ?>
                                        <tr>
                                            <td>
                                                <input type="checkbox" class="select_all_child" id="selectall_<?php echo $subtask['id']; ?>">
                                            </td>
                                            <td>ST-000<?= $subtask['id']; ?></td>
                                            <td><?= $subtask['service_name']; ?></td>
                                            <td><?= $subtask['subtask_date']; ?></td>
                                            <td><?= $subtask['subtask_time'] ? date('h:i A', strtotime($subtask['subtask_time'])) : ''; ?></td>
                                            <td><?= $subtask['assigned'] ? '<span class="badge badge-success">Assigned</span>' : '<span class="badge badge-danger">Not Assigned</span>'; ?></td>
                                            <td>
                                                <a href="viewsubtask.php?id=<?= $System->encryptData($subtask['id']); ?>" class="btn btn-primary">View</a>
                                            </td>
                                        </tr>
                                    <?php } ?>
                                    </tbody>
                                </table>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        <?php } ?>

    </div>
</div>

<script>
    $(document).ready(function() {
        // Filter subtasks by region
        function filterSubtasks() {
            var selectedRegion = $('#regionFilter').val();

            $('.subtask-row').each(function() {
                var subtaskRegion = $(this).data('region');
                var showRow = true;

                if (selectedRegion && subtaskRegion !== selectedRegion) {
                    showRow = false;
                }

                if (showRow) {
                    $(this).show();
                } else {
                    $(this).hide();
                }
            });
        }

        // Event listener for region filter
        $('#regionFilter').on('change', function() {
            filterSubtasks();
        });

        // Select all tasks in a region
        $('#selectAll').on('change', function() {
            var isChecked = $(this).is(':checked');
            $('.select_all_child').prop('checked', isChecked);
        });

        // Assign tasks to cleaner button
        $('#assignTasks').on('click', function() {
            // Collect checked subtasks, trimming 'ST-000'
            var checkedSubtasks = [];
            $('.select_all_child:checked').each(function() {
                var subtaskId = $(this).closest('tr').find('td:eq(1)').text().trim().replace('ST-000', '');
                checkedSubtasks.push(subtaskId);
            });

            if (checkedSubtasks.length === 0) {
                Swal.fire({
                    icon: 'error',
                    title: 'No subtasks selected',
                    text: 'Please select subtasks to assign to a cleaner'
                });
                return;
            }

            console.log(checkedSubtasks);

            Swal.fire({
                title: 'Enter Cleaner Email',
                input: 'email',
                inputLabel: 'Cleaner Email',
                inputPlaceholder: 'Enter cleaner email',
                showCancelButton: true,
                confirmButtonText: 'Assign Task',
                showLoaderOnConfirm: true,
                preConfirm: (email) => {
                    const subtaskIds = checkedSubtasks;
                    return fetch('../send_email_to_workers.php', {
                        method: 'POST',
                        headers: {
                            'Content-Type': 'application/json'
                        },
                        body: JSON.stringify({
                            action: 'bulk', // or 'single' depending on your logic
                            worker_email: email,
                            subtask_ids: subtaskIds
                        })
                    })
                        .then(response => {
                            if (!response.ok) {
                                throw new Error('Network response was not ok');
                            }
                            return response.json();
                        })
                        .then(data => {
                            console.log('Response from PHP:', data);
                            // Handle response data accordingly
                            if (data.status === 'success') {
                                Swal.fire({
                                    title: 'Success!',
                                    text: 'Task has been assigned successfully',
                                    icon: 'success'
                                }).then(() => location.reload());
                            } else {
                                throw new Error(data.message || 'Unknown error');
                            }
                        })
                        .catch(error => {
                            console.error('Fetch error:', error);
                            Swal.showValidationMessage(
                                `Request failed: ${error.message}`
                            );
                        });
                },
                allowOutsideClick: () => !Swal.isLoading()
            });
        });
    });
</script>



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