HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/MdnDirecteur/hours.komma.cloud/resources/views/subprojects/show.blade.php
@extends('app')

@section('pageTitle')
   {{$subproject->Project->name}} / {{$subproject->name}} | Urensysteem Komma
@endsection

@section('content')
    <div class="container subprojectOverview">
        <div class="row">
            @if (\Session::has('message'))
                @if(!empty(Session::get('message')['url']))
                    <div class="alert alert-info">
                        {{ Session::get('message')['message'] }}
                        <a class="pull-right btn btn-default"
                           href="{{url(Session::get('message')['url']) . '?' . http_build_query(['selected' => Session::get('selected'), 'delete' => !empty(Session::get('message')['delete']) ? Session::get('message')['delete'] : false, 'subproject' => $subproject->id, 'ref' => $_SERVER['REQUEST_URI']])}}"
                           style="margin-top: -7px">Herstel</a>
                    </div>
                @else
                    <div class="alert alert-info">{{ Session::get('message') }}</div>
                @endif
            @endif
            <div class="panel panel-default">
                <div class="panel-body">
                    <div class="col-md-12">
                        <div class="col-lg-9">
                            <h1>
                                <a href="/projecten/{{$subproject->Project->id}}">{{$subproject->Project->name}}</a>/<br/>
                                @if($subproject->locked == 1)
                                    <span class="glyphicon glyphicon-lock" data-toggle="tooltip" title="Locked"></span>
                                @endif
                                {{$subproject->name}}</h1>
                        </div>
                        <div class="col-lg-3">
{{--                            FIXME: CORRECT PERMISSION ? --}}
                            @if($subproject->Project->archived != '1' && ($subproject->locked == 0 || Auth::user()->can('recalculate_project')))
                                <a href="/subprojecten/{{$subproject->id}}/edit"
                                   class="btn btn-primary pull-right" style="margin-top: 18px;" dusk="editSubproject">Bewerk
                                    deelproject</a>
                            @endif
                        </div>
                    </div>
                    <div class="col-lg-12 subproject-filters">
                        <div class="col-md-3">
                            <label>Begin datum</label>
                            <input type="text" id="datepicker" name="begin"
                                   value="{{$begin ?? $subproject->created_at->toDateString()}}"
                                   class="form-control beginDate">
                        </div>
                        <div class="col-md-3">
                            <label>Eind datum</label>
                            <input type="text" id="datepicker2" name="end"
                                   value="{{$end ?? today()->toDateString()}}"
                                   class="form-control endDate">
                        </div>
                        <div class="col-md-3" style="margin-top: 27px;">
                            <select name="projectWorker" id="projectWorker" class="form-control selectpicker"
                                    data-live-search="true" title="Kies een projectlid">
                                @if(!empty($user))
                                    <option value="{{$user}}" selected>{{$user}}</option>
                                    @foreach($workers as $projectWorker => $projectWorkersHours)
                                        @if($user != $projectWorker)
                                            <option value="{{$projectWorker}}">{{$projectWorker}}</option>
                                        @endif
                                    @endforeach
                                @else
                                    <option selected disabled></option>
                                    @foreach($workers as $projectWorker => $projectWorkersHours)
                                        <option value="{{$projectWorker}}">{{$projectWorker}}</option>
                                    @endforeach
                                @endif
                            </select>
                        </div>
                        <div class="col-md-1">
                            <a href="/subprojecten/{{$subproject->id}}" class="btn btn-primary"
                               style="margin-top: 27px; margin-left: 10px;">Reset alles</a>
                        </div>
                        <div class="col-md-2">
                            @can('download_excel')
                                <a href="{{route('excel.subProject', ['subProject' => $subproject, 'begin' => $begin ?? $subproject->created_at->toDateString(), 'end' => $end ?? today()->toDateString()])}}"
                                   class="pull-right excelExport" style="margin-top: 32px;">
                                    <img src="/images/excel.png"> Download Excel
                                </a>
                            @endcan
                        </div>
                    </div>
                    <div class="col-lg-12" sid="{{$subproject->id}}">
                        <div class="col-md-6">
                            <h4>
                                <b>Process:</b> {{array_sum($allSubprojectHours->totalBillWithBudget)+array_sum($allSubprojectHours->totalNotBillWithBudget)+array_sum($allSubprojectHours->totalExceedsSubProject)}}
                                @if($subproject->budget > 0)/ {{$subproject->budget}} @endif</h4>
                        </div>
                        <div class="col-md-6" style="text-align: right;">
                            @if($subproject->budget > 0)
                                <h4><b>Resterend budget:</b>
                                    <span style="margin-top: 4px; color: {{ ($subproject->budget - (array_sum($allSubprojectHours->totalBillWithBudget)+array_sum($allSubprojectHours->totalNotBillWithBudget)+array_sum($allSubprojectHours->totalExceedsSubProject))) > 0 ? '#2ab27b' : 'red' }}; ">
                                        {{ $subproject->budget - (array_sum($allSubprojectHours->totalBillWithBudget)+array_sum($allSubprojectHours->totalNotBillWithBudget)+array_sum($allSubprojectHours->totalExceedsSubProject))  }}
                                    </span></h4>
                            @endif
                        </div>
                        <div class="col-md-12">
                            @include('partials.generalElements.progressBar',[
                            'hoursNoBudget' => array_sum($allSubprojectHours->totalBillWithoutBudget)+array_sum($allSubprojectHours->totalNotBillWithoutBudget),
                            'budget' => $subproject->budget,
                            'hoursLeftInBudget' => $subproject->budget - (array_sum($allSubprojectHours->totalBillWithBudget)+array_sum($allSubprojectHours->totalNotBillWithBudget)+array_sum($allSubprojectHours->totalExceedsSubProject)),
                            'barWidth' => $subproject->budget > 0 ? (100 / $subproject->budget) *  (array_sum($allSubprojectHours->totalBillWithBudget)+array_sum($allSubprojectHours->totalNotBillWithBudget)+array_sum($allSubprojectHours->totalExceedsSubProject)) : 100,
                            'isProject' => true
                            ])
                        </div>
                    </div>
                    <div class="col-md-12 stats">
                        <div class="col-md-6 left">
                            <h3>Geschreven uren</h3>

                            <div class="col-md-8">Facturabel</div>
                            <div class="col-md-4 pull-right"> {{array_sum($allSubprojectHours->totalBillWithBudget) + array_sum($allSubprojectHours->totalBillWithoutBudget)}} </div>
                            <div class="col-md-8">
                                <div class="col-md-8"> Begroot</div>
                                <div class="col-md-4">{{array_sum($allSubprojectHours->totalBillWithBudget)}}</div>
                                <div class="col-md-8"> Nacalculatie</div>
                                <div class="col-md-4">{{array_sum($allSubprojectHours->totalBillWithoutBudget)}}</div>
                            </div>

                            <div class="col-md-8">Niet facturabel</div>
                            <div class="col-md-4 pull-right"> {{array_sum($allSubprojectHours->totalNotBillWithBudget) + array_sum($allSubprojectHours->totalNotBillWithoutBudget)+array_sum($allSubprojectHours->totalExceedsSubProject) }} </div>
                            <div class="col-md-8">
                                <div class="col-md-8"> Bewust met budget</div>
                                <div class="col-md-4">{{array_sum($allSubprojectHours->totalNotBillWithBudget)}}</div>
                                <div class="col-md-8"> Bewust zonder budget</div>
                                <div class="col-md-4">{{array_sum($allSubprojectHours->totalNotBillWithoutBudget)}}</div>
                                <div class="col-md-8"> Budgetoverschrijding</div>
                                <div class="col-md-4">{{array_sum($allSubprojectHours->totalExceedsSubProject)}}</div>
                            </div>

                        </div>
                        <div class="col-md-6 right">
                            <h3>Facturatie</h3>
                            <div class="col-md-8">Budget</div>
                            <div class="col-md-4 pull-right"> {{$subproject->billable == 1 ? $subproject->budget : 0}} </div>
                            <div class="col-md-8">Nacalculatie</div>
                            <div class="col-md-4 pull-right"> {{array_sum($allSubprojectHours->totalBillWithoutBudget)}} </div>
                            <div class="col-md-11"><span class="line"></span></div>
                            <div class="col-md-1 value"><span class="plus">+</span></div>
                            <div class="col-md-8">Totaal</div>
                            <div class="col-md-4 pull-right"> {{ ($subproject->billable == 1 ? $subproject->budget : 0)+array_sum($allSubprojectHours->totalBillWithoutBudget)}} </div>
                            <div class="col-md-8">Uurprijs</div>
                            <div class="col-md-4 pull-right">
                                &euro; {{number_format((float) $subproject->hourly_rate, 2, '.', '')}} </div>
                            <div class="col-md-8">Berekend bedrag</div>
                            <div class="col-md-4 pull-right">
                                &euro; {{ number_format((float)$subproject->hourly_rate*(  ($subproject->billable == 1 ? $subproject->budget : 0) +array_sum($allSubprojectHours->totalBillWithoutBudget)), 2, '.', '')}} </div>
                        </div>
                    </div>

                    <div class="col-md-12 tasks">
                        <h2 class="pull-left col-lg-8">Taken</h2>

                        {{--                            FIXME: CORRECT PERMISSION ? --}}
                        @if($subproject->Project->archived != '1' && ($subproject->locked == 0 || Auth::user()->can('recalculate_project')))
                            <button type="button" name="addTask" data-toggle=modal data-backdrop="static"
                                    data-target="#addTasksModal"
                                    onclick="loadPopup('/taken/create/{{$subproject->id}}?ref=subprojecten-{{$subproject->id}}','#addTasksModal');"
                                    class="btn btn-primary pull-right">+ Taken koppelen
                            </button>
                        @endif

                        @foreach($subproject->TaskTemplates as $task)
                            <div class="col-md-6">
                                <div class="project">
                                    <ul class="nav nav-justified tasks">
                                        <li style="top: -3px; left: 5px; position: relative;">
                                            {{$task->name}}
                                        </li>
                                        <li>
                                            <span class="label label-default pull-right">{{$allSubprojectHours->totalBillWithBudget[$task->name] + $allSubprojectHours->totalNotBillWithBudget[$task->name] + $allSubprojectHours->totalExceedsSubProject[$task->name]}}
                                                uur</span>
                                        </li>
                                        <li>
                                            {{--                            FIXME: CORRECT PERMISSION ? --}}
                                            @if($subproject->Project->archived != '1' && ($subproject->locked == 0 || Auth::user()->can('recalculate_project')))
                                                <form action="/taken/{{ $task->pivot->id }}" method="POST" id="delete-form-taak-{{ $task->pivot->id }}" class="pull-right">
                                                    @csrf
                                                    @method('DELETE')
                                                    {!! Btn::delete($task->pivot->id, $name = "taak") !!}
                                                </form>
                                            @endif
                                        </li>
                                    </ul>
                                </div>
                            </div>
                        @endforeach
                    </div>
                    <section class="col-md-12 subproject-hours">
                        <div class="col-lg-12">
                            <div class="title">
                                <h2>Urenoverzicht</h2>
                                <div class="pagination-amount pull-right">Aantal per pagina: <select
                                            name="paginationAmount">
                                        <option value="10" {{\Request::has('pa') && \Request::get('pa') == 10 ? 'selected' : 'selected'}}>
                                            10
                                        </option>
                                        <option value="50" {{\Request::has('pa') && \Request::get('pa') == 50 ? 'selected' : ''}}>
                                            50
                                        </option>
                                        <option value="100" {{\Request::has('pa') && \Request::get('pa') == 100 ? 'selected' : ''}}>
                                            100
                                        </option>
                                        <option value="all" {{\Request::has('pa') && \Request::get('pa') == 'all' ? 'selected' : ''}}>
                                            all
                                        </option>
                                    </select>
                                </div>
                            </div>
                            <div class="content">
                                <table class="table table-striped" id="tblData">
                                    <thead>
                                    <tr>
                                        {{--                            FIXME: CORRECT PERMISSION ? --}}
                                        @if( ($subproject->Project->archived != '1') && ($subproject->locked == 0 || Auth::user()->can('recalculate_project')) )
                                            <th>
                                                @if(Auth::user()->can('change_all_hours'))
                                                    <input type="checkbox" id="multiSelectAll"/>
                                                @endif
                                            </th>
                                            <th></th>
                                            @can('split_hours')
                                                <th></th>
                                            @endcan
                                        @endif
                                        <th>Naam</th>
                                        <th>Aantal</th>
                                        <th>Taak</th>
                                        <th>Omschrijving</th>
                                        <th width="100px">Datum</th>
                                        <th>Facturabel</th>
                                        <th>Gefactureerd</th>
                                        <th></th>
                                        <th></th>
                                    </tr>
                                    </thead>
                                    <tbody>
                                    @foreach($hours as $hour)
                                        <tr style="display: table-row;">
                                            {{--                            FIXME: CORRECT PERMISSION ? --}}
                                            @if( ($subproject->Project->archived != '1') && ($subproject->locked == 0 || Auth::user()->can('recalculate_project')) )
                                                <td class="nombore">
                                                    @if($hour->user_id == Auth::user()->id || Auth::user()->can('change_all_hours'))
                                                        <label>
                                                            <div class="slider" id="{{$hour->id}}">
                                                                <input id="checkboxSelect" type="checkbox" class="test">
                                                            </div>
                                                        </label>
                                                    @endif
                                                </td>
                                                <td>
                                                    @if($hour->user_id == \Auth::id() || \Auth::user()->can('change_all_hours'))
                                                        {!! Btn::edit($hour, $name = "uur", $chosenSubproject, $projectSubprojects) !!}
                                                        <form style="display: inline-block;" action="{{route('postHours')}}" method="post">
                                                            <label>
                                                                <input type="hidden" name="_token" value="{{ csrf_token() }}">
                                                                <input type="hidden" name="hour" value="{{$hour->id}}">
                                                                <input type="hidden" name="user" value="{{$hour->user_id}}">
                                                                <input type="hidden" name="view" value="day">
                                                                <input type="hidden" name="date" value="{{$hour->date}}">
                                                                <span class="glyphicon glyphicon-link" data-toggle="tooltip" title="Bekijk"></span>
                                                                <input type="submit" style="display: none;">
                                                            </label>
                                                        </form>
                                                    @endif
                                                </td>
                                                @can('split_hours')
                                                    <td>
                                                        {!! Btn::split($hour, $subproject) !!}
                                                    </td>
                                                @endcan
                                            @endif
                                            <td>{{$hour->User->name}}</td>
                                            <td>{{$hour->value}} uur</td>
                                            <td>{{$hour->Task->TaskTemplate->name}}</td>
                                            <td>{{ \Str::limit($hour->description, 60)}}</td>
                                            <td>{{\Carbon\Carbon::parse($hour->date)->format('d-m-Y')}}</td>
                                            <td>{{$hour->billable == 1 ? "Ja" : "Nee"}}</td>
                                            <td>{{$hour->billed_at != null ? "Ja" : "Nee"}}</td>
                                            <td>
                                                @if($hour->intern_description)<span class="glyphicon glyphicon-comment"
                                                                                    data-toggle="popover"
                                                                                    data-trigger="hover"
                                                                                    title="Interne opmerking"
                                                                                    data-content="{{$hour->intern_description}}"></span> @endif
                                                @if($hour->bug == 1)<span class="icon-bug pull-right"
                                                                          data-toggle="tooltip"
                                                                          title="Bug"></span> @endif
                                                @if(!empty($hour->exceed_subproject)) <span
                                                        class="glyphicon glyphicon-alert" data-toggle="popover"
                                                        data-trigger="hover" title="Let op!"
                                                        data-content="Deze uren vallen niet binnen het budget van het deelproject."></span> @endif
                                            </td>
                                            <td>
                                                {{--                            FIXME: CORRECT PERMISSION ? --}}
                                                @if( (empty($hour->locked_at) || $hour->locked_at == '0000-00-00 00:00:00') && ($subproject->locked == 0 || Auth::user()->can('recalculate_project')))
                                                    @if($hour->user_id != \Auth::id())
                                                        @can('delete_all_hours')
                                                            <form action="/hours/{{ $hour->id }}" method="POST" id="delete-form-projecturen-{{ $hour->id }}" class="pull-right">
                                                                @csrf
                                                                @method('DELETE')
                                                                {!! Btn::delete($hour->id, $name = "projecturen") !!}
                                                            </form>
                                                        @endcan
                                                    @else
                                                        <form action="/hours/{{ $hour->id }}" method="POST" id="delete-form-projecturen-{{ $hour->id }}" class="pull-right">
                                                            @csrf
                                                            @method('DELETE')
                                                            {!! Btn::delete($hour->id, $name = "projecturen") !!}
                                                        </form>
                                                    @endif
                                                @else
                                                    <span class="glyphicon glyphicon-lock" data-toggle="tooltip"
                                                          title="Locked"></span>
                                                @endif
                                            </td>
                                        </tr>
                                    @endforeach
                                    </tbody>
                                </table>
                                <div class="text-center">
                                    {!! $hours->appends(Request::except('page'))->render() !!}
                                </div>
                                <div class="optionPopup" id="collapseOptions">
                                    <div class="project">
                                        <div class="colored-tile">
                                            <span class="counter"></span>
                                        </div>
                                        <div class="title-tile">
                                            <h3 class="title">Multi select</h3>
                                        </div>
                                        <div class="option-tile do-action" id="moveHours">
                                            <span class="glyphicon glyphicon-move"></span>
                                            Verplaatsen
                                        </div>
                                        <div class="option-tile do-action" id="billableHoursModal">
                                            <span class="glyphicon glyphicon-usd"></span>
                                            Facturabelheid
                                        </div>
                                        <div class="option-tile do-action" id="billingHoursModal">
                                            <span class="glyphicon glyphicon-euro"></span>
                                            Factureren
                                        </div>
                                        <div class="option-tile do-action" id="deleteHoursModal">
                                            <span class="glyphicon glyphicon-trash"></span>
                                            Verwijderen
                                        </div>
                                        <div class="cancel-tile" id="closeSelection">
                                            <span class="glyphicon glyphicon-remove"></span>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                        @if(count($errors))
                            @foreach($errors->all() as $error)
                                <div class="alert alert-danger" role="alert">{{$error}}</div>
                            @endforeach
                        @endif
                    </section>
                </div>
            </div>
        </div>
    </div>
    <div class="modal fade bs-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="addTasksModal"
         id="addTasksModal"></div>
    @if(!empty($hours->total()) and $subproject->Project->archived != '1'))
    {{--multi select option popups--}}
    @include('partials.popups.multiSelect.move')
    @include('partials.popups.multiSelect.billable')
    @include('partials.popups.multiSelect.billing')
    @include('partials.popups.multiSelect.delete')
    @endif
@stop
@section('script')
    <script src="{{ asset('js/createFilterParams.js') }}"></script>
    <script type="text/javascript">
        $(document).ready(function () {

            $('.pagination-amount select').change(function () {
                url = updateQueryString('pa', $('.pagination-amount select option:checked').val());
                goPjax(url);
            });

            $('#multiSelectAll').change(function () {
                if ($(this).prop("checked")) {
                    $('td.nombore').each(function () {
                        var selectRow = $(this);
                        selectRow.find('#checkboxSelect').prop("checked", true);
                        selectRow.find('.slider').addClass("active");
                        $('#collapseOptions').addClass("active");
                    });
                } else {
                    $('td.nombore').each(function () {
                        var selectRow = $(this);
                        selectRow.find('#checkboxSelect').prop("checked", false);
                        selectRow.find('.slider').removeClass("active");
                        $('#collapseOptions').removeClass("active");
                    });
                }
            });

            $('td.nombore #checkboxSelect').change(function () {
                var checkbox = $(this).parent(".slider");
                var optionBar = $('#collapseOptions');

                if ($(this).is(':checked')) {
                    checkbox.addClass("active");
                    $('span.counter').text($('#checkboxSelect:checked').length);
                } else {
                    checkbox.removeClass("active");
                    $('span.counter').text($('#checkboxSelect:checked').length);
                }

                if ($(".slider").hasClass("active")) {
                    $(function () {
                        optionBar.addClass("active");
                    });
                } else {
                    $(function () {
                        optionBar.removeClass("active");
                    });
                }
            });

            $('#closeSelection').click(function () {
                var selectRow = $('td.nombore');

                selectRow.find('#checkboxSelect').prop("checked", false);
                selectRow.find('.slider').removeClass("active");
                $('#collapseOptions').removeClass("active");
                $split = window.location.href.split('?');
                window.location.replace($split[0]);
            });

            $('.do-action').click(function () {
                $value = "{{$subproject->id}}";
                $modal = $(this).attr('id');
                makeURL($value, $modal);
            });

            function makeURL($value, $modal) {
                var IDs = $("td.nombore .slider.active[id]").map(function () {
                    return this.id;
                }).get();

                $split = window.location.href.split('?');
                $url = $split[0] + '?popup=' + $modal + '&subproject=' + $value + "&selected=" + IDs;
                window.location.replace($url);
            }

            if (window.location.search.indexOf('popup=') > -1) {
                $('#{{request('popup')}}.modal').modal('show');
            }

            if (window.location.search.indexOf('selected=') > -1) {
                var selectRow = $('td.nombore');
                $split = "{{request('selected')}}".split(',');
                for (var i = 0; i < $split.length; i++) {
                    selectRow.find('#' + $split[i] + ' #checkboxSelect').prop("checked", true);
                    selectRow.find('#' + $split[i]).addClass("active");
                }
                $('#collapseOptions').addClass("active");
                $('span.counter').text($('#checkboxSelect:checked').length);
            }

            $('.range-slider').change(function () {
                var value = $(this).val();
                var output = $(this).next('label');
                output.html(value);
            });

        });
    </script>
@stop