Your IP : 216.73.216.86


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

home/emeraadmin/public_html/pages/taskprovider/report_viewsubtasksdaywise.php000064400000035656151677423130024170 0ustar00<?php
include('head.php');
require_once '../../Classes/Database.php';
require_once '../../Service/TaskService.php';
require_once '../../Classes/System.php';
require_once '../../Service/ServiceService.php';

$serviceService = new ServiceService();
$services = $serviceService->getAllServicesForDropdown();

// 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

$TaskProviderId = $_SESSION['user_id'];

// Fetch all subtasks grouped by date
$startDate = $_GET['start_date'] ?? null;
$endDate = $_GET['end_date'] ?? null;
$serviceLocationId = $_GET['service_location_id'] ?? null;

if ($_GET['filter_today'] ?? false) {
    $startDate = date('Y-m-d');
    $endDate = date('Y-m-d');
}

// Correctly call the function with the right parameters
//$subtasks = $taskService->getAllSubtasksForTaskProviderGroupByDate($startDate, $endDate, $serviceLocationId, $TaskProviderId);

$subtasks = $taskService->getAllSubtasksGroupByDate($startDate, $endDate, $serviceLocationId);

$CompletedSubtaskcount = 0;
$IncompletedSubtaskcount = 0;

foreach ($subtasks as $date => $subtaskList) {
    foreach ($subtaskList as $subtask) {
        if ($subtask['completed']) {
            $CompletedSubtaskcount++;
        } else {
            $IncompletedSubtaskcount++;
        }
    }
}
?>

<!-- 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>

        <!-- Banner Section -->
        <div class="row">
            <div class="col-md-12">
                <div class="card">
                    <div class="card-footer">
                        <div class="d-flex">
                            <div class="col-lg-3 col-md-6 col-sm-12">
                                <div class="widget bg-success">
                                    <div class="widget-body">
                                        <div class="d-flex justify-content-between align-items-center">
                                            <div class="state">
                                                <h6>Completed Subtasks</h6>
                                                <h2><?= $CompletedSubtaskcount; ?></h2>
                                            </div>
                                            <div class="icon">
                                                <i class="ik ik-shopping-cart"></i>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <div class="col-lg-3 col-md-6 col-sm-12">
                                <div class="widget bg-warning">
                                    <div class="widget-body">
                                        <div class="d-flex justify-content-between align-items-center">
                                            <div class="state">
                                                <h6>Incomplete Subtasks</h6>
                                                <h2><?= $IncompletedSubtaskcount; ?></h2>
                                            </div>
                                            <div class="icon">
                                                <i class="ik ik-inbox"></i>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </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" value="<?= htmlspecialchars($startDate) ?>">
                </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" value="<?= htmlspecialchars($endDate) ?>">
                </div>
            </div>
            <div class="col-md-3">
                <div class="form-group">
                    <label for="serviceLocationId">Select a Service Location:</label>
                    <select id="serviceLocationId" name="serviceLocationId" class="form-control select2">
                        <option value="">All Locations</option>
                        <?php
                        foreach ($services as $service) {
                            $selected = '';
                            if (isset($_GET['service_location_id']) && $_GET['service_location_id'] == $service->id) {
                                $selected = 'selected';
                            }
                            echo '<option value="' . htmlspecialchars($service->id) . '" ' . $selected . '>' . htmlspecialchars($service->name) . '</option>';
                        }
                        ?>
                    </select>
                </div>
            </div>

            <div class="col-md-3 d-flex align-items-center">
                <div class="form-check form-check-inline">
                    <input class="form-check-input" type="checkbox" id="todayCheckbox" value="today" <?= ($startDate == date('Y-m-d') && $endDate == date('Y-m-d')) ? 'checked' : '' ?>>
                    <label class="form-check-label" for="todayCheckbox">Today</label>
                </div>
            </div>

            <div class="col-md-3 d-flex align-items-center">
                <button id="applyFilter" class="btn btn-primary">Apply Filter</button>
                &nbsp;
                &nbsp;
                <button type="button" id="reset_filters" class="btn btn-icon btn-outline-danger"><i class="ik ik-refresh-cw"></i></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 class="card-header-right">
                                <ul class="list-unstyled card-option">
                                    <li><i class="ik ik-chevron-left action-toggle" data-toggle="tooltip" title="Collapse"></i></li>
                                    <li><i class="ik ik-minus minimize-card" data-toggle="tooltip" title="Minimize"></i></li>
                                </ul>
                            </div>
                        </div>
                        <div class="card-body">
                            <div class="dt-responsive">
                                <table class="table" id="advanced_table_<?php echo strtotime($date); ?>">
                                    <thead>
                                    <tr>
                                        <th>ID</th>
                                        <th>Service Name</th>
                                        <th>Date</th>
                                        <th>Time</th>
                                        <th>Assigned</th>
                                        <th>Completed</th>
                                        <th>Actions</th>
                                    </tr>
                                    </thead>
                                    <tbody>
                                    <?php foreach ($subtaskList as $subtask) { ?>
                                        <tr>
                                            <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>
                                                <?php
                                                if ($subtask['ignored']) {
                                                    echo '<span class="badge badge-warning">Ignored</span>';
                                                } else {
                                                    echo $subtask['completed']
                                                        ? '<span class="badge badge-success">Completed</span>'
                                                        : '<span class="badge badge-danger">Not Completed</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>

<!-- 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
        });

        // Function to save filters to localStorage
        function saveFilters() {
            var filters = {
                startDate: $('#startDate').val(),
                endDate: $('#endDate').val(),
                serviceLocationId: $('#serviceLocationId').val(),
                todayCheckbox: $('#todayCheckbox').is(':checked')
            };
            localStorage.setItem('dateRangeFilters', JSON.stringify(filters));
        }

        // Function to apply saved filters
        function applyFilters() {
            var filters = JSON.parse(localStorage.getItem('dateRangeFilters'));
            if (filters) {
                $('#startDate').val(filters.startDate);
                $('#endDate').val(filters.endDate);
                $('#serviceLocationId').val(filters.serviceLocationId);
                $('#todayCheckbox').prop('checked', filters.todayCheckbox);
            }
        }

        // Function to reset filters
        function resetFilters() {
            $('#startDate').val('');
            $('#endDate').val('');
            $('#serviceLocationId').val('');
            $('#todayCheckbox').prop('checked', false);
            localStorage.removeItem('dateRangeFilters');
            applyDateRangeFilter();
        }

        // Apply date range filter by modifying the URL
        function applyDateRangeFilter() {
            var startDate = $('#startDate').val();
            var endDate = $('#endDate').val();
            var serviceLocationId = $('#serviceLocationId').val();
            var url = window.location.href.split('?')[0] + '?start_date=' + startDate + '&end_date=' + endDate + '&service_location_id=' + serviceLocationId;
            window.location.href = url;
        }

        // Event handler for applyFilter button
        $('#applyFilter').on('click', function() {
            saveFilters();
            applyDateRangeFilter();
        });

        // Event handler for todayCheckbox
        $('#todayCheckbox').on('change', function() {
            if ($(this).is(':checked')) {
                var today = '<?= date('Y-m-d') ?>';
                $('#startDate').val(today);
                $('#endDate').val(today);
            } else {
                $('#startDate').val('');
                $('#endDate').val('');
            }
            saveFilters();
            applyDateRangeFilter();
        });

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

        // Apply saved filters on initial load
        applyFilters();
    });
</script>
<?php include('footer.php'); ?>
home/emeraadmin/public_html/pages/subcontractor/report_viewsubtasksdaywise.php000064400000035472151701467520024336 0ustar00<?php
include('head.php');
require_once '../../Classes/Database.php';
require_once '../../Service/TaskService.php';
require_once '../../Classes/System.php';
require_once '../../Service/ServiceService.php';

$serviceService = new ServiceService();
$services = $serviceService->getAllServicesForDropdown();

// 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



// Fetch all subtasks grouped by date
$startDate = $_GET['start_date'] ?? null;
$endDate = $_GET['end_date'] ?? null;
$serviceLocationId = $_GET['service_location_id'] ?? null;

if ($_GET['filter_today'] ?? false) {
    $startDate = date('Y-m-d');
    $endDate = date('Y-m-d');
}

$currentUserId = $_SESSION['user_id'];

$subtasks = $taskService->getAllSubtasksForSubContractorsGroupByDateReport($startDate, $endDate, $serviceLocationId, $currentUserId);


$CompletedSubtaskcount = 0;
$IncompletedSubtaskcount = 0;

foreach ($subtasks as $date => $subtaskList) {
    foreach ($subtaskList as $subtask) {
        if ($subtask['completed']) {
            $CompletedSubtaskcount++;
        } else {
            $IncompletedSubtaskcount++;
        }
    }
}
?>

<!-- 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>

        <!-- Task Summary -->
        <div class="row">
            <div class="col-md-12">
                <div class="card">
                    <div class="card-footer">
                        <div class="d-flex">
                            <div class="col-lg-3 col-md-6 col-sm-12">
                                <div class="widget bg-success">
                                    <div class="widget-body">
                                        <div class="d-flex justify-content-between align-items-center">
                                            <div class="state">
                                                <h6>Completed Subtasks</h6>
                                                <h2><?= $CompletedSubtaskcount; ?></h2>
                                            </div>
                                            <div class="icon">
                                                <i class="ik ik-shopping-cart"></i>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <div class="col-lg-3 col-md-6 col-sm-12">
                                <div class="widget bg-warning">
                                    <div class="widget-body">
                                        <div class="d-flex justify-content-between align-items-center">
                                            <div class="state">
                                                <h6>Incomplete Subtasks</h6>
                                                <h2><?= $IncompletedSubtaskcount; ?></h2>
                                            </div>
                                            <div class="icon">
                                                <i class="ik ik-inbox"></i>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </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" value="<?= htmlspecialchars($startDate) ?>">
                </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" value="<?= htmlspecialchars($endDate) ?>">
                </div>
            </div>
            <div class="col-md-3">
                <div class="form-group">
                    <label for="serviceLocationId">Select a Service Location:</label>
                    <select id="serviceLocationId" name="serviceLocationId" class="form-control select2">
                        <option value="">All Locations</option>
                        <?php
                        foreach ($services as $service) {
                            $selected = '';
                            if (isset($_GET['service_location_id']) && $_GET['service_location_id'] == $service->id) {
                                $selected = 'selected';
                            }
                            echo '<option value="' . htmlspecialchars($service->id) . '" ' . $selected . '>' . htmlspecialchars($service->name) . '</option>';
                        }
                        ?>
                    </select>
                </div>
            </div>

            <div class="col-md-3 d-flex align-items-center">
                <div class="form-check form-check-inline">
                    <input class="form-check-input" type="checkbox" id="todayCheckbox" value="today" <?= ($startDate == date('Y-m-d') && $endDate == date('Y-m-d')) ? 'checked' : '' ?>>
                    <label class="form-check-label" for="todayCheckbox">Today</label>
                </div>
            </div>

            <div class="col-md-3 d-flex align-items-center">
                <button id="applyFilter" class="btn btn-primary">Apply Filter</button>
                &nbsp;
                &nbsp;
                <button type="button" id="reset_filters" class="btn btn-icon btn-outline-danger"><i class="ik ik-refresh-cw"></i></button>
            </div>
        </div>

        <!-- Subtask Table -->
        <?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 class="card-header-right">
                                <ul class="list-unstyled card-option">
                                    <li><i class="ik ik-chevron-left action-toggle" data-toggle="tooltip" title="Collapse"></i></li>
                                    <li><i class="ik ik-minus minimize-card" data-toggle="tooltip" title="Minimize"></i></li>
                                </ul>
                            </div>
                        </div>
                        <div class="card-body">
                            <div class="dt-responsive">
                                <table class="table" id="advanced_table_<?php echo strtotime($date); ?>">
                                    <thead>
                                    <tr>
                                        <th>ID</th>
                                        <th>Service Name</th>
                                        <th>Date</th>
                                        <th>Time</th>
                                        <th>Assigned</th>
                                        <th>Completed</th>
                                        <th>Actions</th>
                                    </tr>
                                    </thead>
                                    <tbody>
                                    <?php foreach ($subtaskList as $subtask) { ?>
                                        <tr>
                                            <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>
                                                <?php
                                                if ($subtask['ignored']) {
                                                    echo '<span class="badge badge-warning">Ignored</span>';
                                                } else {
                                                    echo $subtask['completed']
                                                        ? '<span class="badge badge-success">Completed</span>'
                                                        : '<span class="badge badge-danger">Not Completed</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>


<!-- 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
        });

        // Function to save filters to localStorage
        function saveFilters() {
            var filters = {
                startDate: $('#startDate').val(),
                endDate: $('#endDate').val(),
                serviceLocationId: $('#serviceLocationId').val(),
                todayCheckbox: $('#todayCheckbox').is(':checked')
            };
            localStorage.setItem('dateRangeFilters', JSON.stringify(filters));
        }

        // Function to apply saved filters
        function applyFilters() {
            var filters = JSON.parse(localStorage.getItem('dateRangeFilters'));
            if (filters) {
                $('#startDate').val(filters.startDate);
                $('#endDate').val(filters.endDate);
                $('#serviceLocationId').val(filters.serviceLocationId);
                $('#todayCheckbox').prop('checked', filters.todayCheckbox);
            }
        }

        // Function to reset filters
        function resetFilters() {
            $('#startDate').val('');
            $('#endDate').val('');
            $('#serviceLocationId').val('');
            $('#todayCheckbox').prop('checked', false);
            localStorage.removeItem('dateRangeFilters');
            applyDateRangeFilter();
        }

        // Apply date range filter by modifying the URL
        function applyDateRangeFilter() {
            var startDate = $('#startDate').val();
            var endDate = $('#endDate').val();
            var serviceLocationId = $('#serviceLocationId').val();
            var url = window.location.href.split('?')[0] + '?start_date=' + startDate + '&end_date=' + endDate + '&service_location_id=' + serviceLocationId;
            window.location.href = url;
        }

        // Event handler for applyFilter button
        $('#applyFilter').on('click', function() {
            saveFilters();
            applyDateRangeFilter();
        });

        // Event handler for todayCheckbox
        $('#todayCheckbox').on('change', function() {
            if ($(this).is(':checked')) {
                var today = '<?= date('Y-m-d') ?>';
                $('#startDate').val(today);
                $('#endDate').val(today);
            } else {
                $('#startDate').val('');
                $('#endDate').val('');
            }
            saveFilters();
            applyDateRangeFilter();
        });

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

        // Apply saved filters on initial load
        applyFilters();
    });
</script>

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