ultimatepos/Modules/ManagementTools/Resources/views/daily_reports/index.blade.php

154 lines
6.7 KiB
PHP

@extends('layouts.app')
@section('title', __('managementtools::lang.daily_report'))
@section('content')
@include('managementtools::layouts.nav')
<section class="content no-print mt-page mt-daily-report-page">
<div class="mt-page-header">
<h1><i class="fas fa-clipboard-check" style="color:#2563eb;margin-left:8px;"></i> @lang('managementtools::lang.daily_report')</h1>
<div style="font-size:13px;color:#64748b;">
{{ $mtUtil->formatDate($selected_day) }}
@if($is_past)
<span class="label label-default"><i class="fa fa-lock"></i> @lang('managementtools::lang.read_only')</span>
@endif
</div>
</div>
<div class="mt-card">
<div class="mt-card-body" style="padding-top:0;">
<ul class="list-inline text-center mt-dr-day-picker" style="margin:12px 0 0;padding:0 12px;">
@foreach($days as $day)
<li class="list-inline-item" style="margin-bottom:6px;">
<a href="{{ action([\Modules\ManagementTools\Http\Controllers\DailyReportController::class, 'index'], ['day' => $day]) }}"
class="btn btn-sm {{ $selected_day == $day ? 'btn-info' : (\Carbon\Carbon::parse($day)->lt(\Carbon\Carbon::today()) ? 'btn-default' : 'btn-success') }}">
{{ $mtUtil->formatDate($day) }}
@if(in_array($day, $submitted_days, true))
<i class="fa fa-check" style="margin-right:4px;"></i>
@endif
</a>
</li>
@endforeach
</ul>
<ul class="nav nav-tabs mt-dr-tabs" role="tablist">
<li role="presentation" class="active">
<a href="#mt-dr-tab-overall" role="tab" data-toggle="tab">@lang('managementtools::lang.overall_report')</a>
</li>
<li role="presentation">
<a href="#mt-dr-tab-my-tasks" role="tab" data-toggle="tab">@lang('managementtools::lang.my_assigned_tasks')</a>
</li>
<li role="presentation">
<a href="#mt-dr-tab-today" role="tab" data-toggle="tab">@lang('managementtools::lang.today_tasks')</a>
</li>
<li role="presentation">
<a href="#mt-dr-tab-submit-task" role="tab" data-toggle="tab">@lang('managementtools::lang.submit_own_task')</a>
</li>
</ul>
<div class="tab-content mt-dr-tab-content">
<div role="tabpanel" class="tab-pane fade in active" id="mt-dr-tab-overall">
@include('managementtools::daily_reports.partials.tabs.slot_report')
</div>
<div role="tabpanel" class="tab-pane fade" id="mt-dr-tab-my-tasks">
@include('managementtools::daily_reports.partials.tabs.my_tasks')
</div>
<div role="tabpanel" class="tab-pane fade" id="mt-dr-tab-today">
@include('managementtools::daily_reports.partials.tabs.today_tasks')
</div>
<div role="tabpanel" class="tab-pane fade" id="mt-dr-tab-submit-task">
@if($is_editable)
@include('managementtools::daily_reports.partials.tabs.submit_task')
@else
<div class="alert alert-info">@lang('managementtools::lang.past_day_locked_hint')</div>
@endif
</div>
</div>
</div>
</div>
</section>
<div class="modal fade mt_comment_modal" tabindex="-1" role="dialog"></div>
<div class="modal fade mt_task_modal" tabindex="-1" role="dialog"></div>
@endsection
@section('javascript')
<script type="text/javascript">
$(document).ready(function() {
function submitSlots(finalize) {
var data = $('#mt_slot_report_form').serializeArray();
data.push({ name: 'finalize', value: finalize ? 1 : 0 });
$.ajax({
method: 'POST',
url: '{{ action([\Modules\ManagementTools\Http\Controllers\DailyReportController::class, "store"]) }}',
dataType: 'json',
data: $.param(data),
success: function(r) {
if (r.success) {
toastr.success(r.msg);
if (r.submitted) setTimeout(function() { window.location.reload(); }, 800);
} else {
toastr.error(r.msg);
}
},
error: function(xhr) {
var msg = (xhr.responseJSON && xhr.responseJSON.msg) ? xhr.responseJSON.msg : LANG.something_went_wrong;
toastr.error(msg);
}
});
}
@if($is_editable)
$('#mt_submit_all_slots').on('click', function() {
swal({
title: '@lang("managementtools::lang.confirm_submit_report")',
text: '@lang("managementtools::lang.confirm_submit_report_hint")',
icon: 'info',
buttons: ['@lang("managementtools::lang.cancel")', '@lang("managementtools::lang.yes")']
}).then(function(ok) { if (ok) submitSlots(true); });
});
$(document).on('click', '.mt-save-slot-row', function() {
submitSlots(false);
});
@endif
$(document).on('click', '.mt-copy-slot-row', function() {
var row = parseInt($(this).data('row'), 10);
$('#description' + (row + 1)).val($('#description' + row).val());
$('#task' + (row + 1)).val($('#task' + row).val());
$('#user_status' + (row + 1)).val($('#user_status' + row).val());
});
$(document).on('submit', 'form#mt_comment_form', function(e) {
e.preventDefault();
var form = $(this);
$.ajax({
method: 'POST',
url: form.attr('action'),
dataType: 'json',
data: form.serialize(),
success: function(r) {
if (r.success) {
toastr.success(r.msg);
$('.mt_comment_modal').modal('hide');
setTimeout(function() { window.location.reload(); }, 600);
} else {
toastr.error(r.msg);
}
}
});
});
});
</script>
<style>
.mt-daily-report-page .mt-dr-tabs { margin-bottom:0; border-bottom:1px solid #e5e7eb; }
.mt-daily-report-page .mt-dr-tabs > li > a { font-weight:600; border-radius:8px 8px 0 0; }
.mt-daily-report-page .mt-dr-tab-content { padding-top:16px; }
.mt-daily-report-page .mt-dr-slot-table td,
.mt-daily-report-page .mt-dr-slot-table th { vertical-align:middle !important; font-size:13px; }
.mt-daily-report-page .thead-dark th { background:#1f2937; color:#fff; border-color:#374151; }
</style>
@endsection