Your IP : 216.73.216.86


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

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

// Fetch assigned user ID from session or request
$assignedUserId = $_SESSION['user_id'] ?? ($_GET['user_id'] ?? 1); // Default to 1 if not set

// Create TaskService instance
$taskService = new TaskService();
$System = new System(); // Assuming System class is correctly defined and used

$SubContractorId = $_SESSION['user_id'];

// Fetch all subtasks grouped by date
$subtasks = $taskService->getAllSubtasksForSubContractorsGroupByDate($SubContractorId);
?>

<!-- Include Bootstrap Datepicker CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/css/bootstrap-datepicker.min.css" />

<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>Tasks</h5>
                            <span>Assign Tasks to Cleaner</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">All Subtasks</li>
                        </ol>
                    </nav>
                </div>
            </div>
        </div>

        <!-- Date Filter and Today Checkbox -->
        <div class="row mb-4">
            <div class="col-md-3">
                <div class="form-group">
                    <label for="startDate">Start Date</label>
                    <input type="text" id="startDate" class="form-control datepicker" placeholder="Select start date">
                </div>
            </div>
            <div class="col-md-3">
                <div class="form-group">
                    <label for="endDate">End Date</label>
                    <input type="text" id="endDate" class="form-control datepicker" placeholder="Select end date">
                </div>
            </div>
            <div class="col-md-3 d-flex align-items-center">
                <div class="form-check">
                    <input type="checkbox" class="form-check-input" id="filterToday">
                    <label class="form-check-label" for="filterToday">Today</label>
                </div>
            </div>
            <div class="col-md-3 d-flex align-items-center">
                <button id="applyFilter" class="btn btn-primary">Apply Filter</button>
            </div>



        </div>
        <div class="row mb-4">
            <div class="col-md-12">
                <a href="assigntasktoworkers.php" class="btn btn-outline-success"><i class="ik ik-layers"></i> Regional View</a>
            </div>
        </div>


<!--        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 ($subtasks as $date => $subtaskList) { ?>
            <div class="row subtask-row" data-date="<?php echo $date; ?>">
                <div class="col-md-12">
                    <div class="card">
                        <div class="card-header">
                            <h3>Subtasks for <?php
                                if ($date == date('Y-m-d')) {
                                    echo 'Today';
                                } else if ($date == date('Y-m-d', strtotime('tomorrow'))) {
                                    echo 'Tomorrow';
                                } else {
                                    echo date('l, F j, Y', strtotime($date));
                                }
                                ?></h3>
                        </div>
                        <div class="card-body">
                            <div class="dt-responsive">
                                <table class="table" id="advanced_table_<?php echo strtotime($date); ?>">
                                    <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 strtotime($date); ?>">
                                            </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>

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

<!-- Include jQuery and Bootstrap Datepicker JS -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/js/bootstrap-datepicker.min.js"></script>

<script>
    $(document).ready(function() {
        // Initialize datepickers
        $('.datepicker').datepicker({
            format: 'yyyy-mm-dd',
            autoclose: true,
            todayHighlight: true
        });

        // Filter subtasks by date and today checkbox
        function filterSubtasks() {
            var startDate = $('#startDate').val();
            var endDate = $('#endDate').val();
            var filterToday = $('#filterToday').prop('checked');
            var today = new Date().toISOString().split('T')[0];

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

                if (filterToday && subtaskDate !== today) {
                    showRow = false;
                } else if ((startDate && subtaskDate < startDate) || (endDate && subtaskDate > endDate)) {
                    showRow = false;
                }

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

        // Event listeners for date filters and today checkbox
        $('#applyFilter').on('click', function() {
            filterSubtasks();
        });

        // Initialize DataTables for each table
        $('table').each(function() {
            $(this).DataTable();
        });

        // Handle select all checkboxes for each table
        $(".select-all").change(function() {
            var tableId = $(this).attr("id").replace("selectall_", "");
            $("#" + tableId + " .select_all_child").prop('checked', $(this).prop("checked"));
        });
    });

    // Assign tasks to cleaner
    //Swal2 pop up askin workr number

    $('#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>