diff --git a/app/Queries/AdminDashboardQuery.php b/app/Queries/AdminDashboardQuery.php index 5840d58..2d69ee0 100644 --- a/app/Queries/AdminDashboardQuery.php +++ b/app/Queries/AdminDashboardQuery.php @@ -3,6 +3,7 @@ namespace App\Queries; use App\Entities\Payments\Payment; +use App\Entities\Projects\Job; use App\Entities\Projects\Project; use App\Entities\Subscriptions\Subscription; use Carbon\Carbon; @@ -88,4 +89,20 @@ class AdminDashboardQuery return $filteredSubscriptions->load('customer'); } + + /** + * Get on progress project jobs count + * + * @return integer + */ + public function onProgressJobCount() + { + return Job::whereHas('tasks', function ($query) { + return $query->where('progress', '<', 100); + }) + ->whereHas('project', function ($query) { + return $query->whereIn('status_id', [2, 3]); + }) + ->count(); + } } diff --git a/resources/views/jobs/partials/job-tasks-operation.blade.php b/resources/views/jobs/partials/job-tasks-operation.blade.php index 9937c89..576b3ee 100644 --- a/resources/views/jobs/partials/job-tasks-operation.blade.php +++ b/resources/views/jobs/partials/job-tasks-operation.blade.php @@ -35,7 +35,7 @@ ]) !!}
- {{ $editableTask->progress }} % + {{ $editableTask->progress }}%
{!! FormField::select('job_id', $job->project->jobs->pluck('name','id'), ['label' => 'Pindahkan ke Fitur lain']) !!} diff --git a/resources/views/pages/home.blade.php b/resources/views/pages/home.blade.php index c756a82..88bbd3c 100755 --- a/resources/views/pages/home.blade.php +++ b/resources/views/pages/home.blade.php @@ -32,7 +32,7 @@ Yearly Earnings ({{ $queriedYear }}) Finished Projects ({{ $queriedYear }}) - Receiveable Earnings + Current Receiveable Earnings @@ -58,7 +58,7 @@ {{ $totalFinishedProjects }} Projects
  • - Receiveable Earnings + Current Receiveable Earnings {{ $currentOutstandingCustomerPayment }}
  • diff --git a/resources/views/projects/partials/project-stats.blade.php b/resources/views/projects/partials/project-stats.blade.php index e9e3e5a..fa58046 100644 --- a/resources/views/projects/partials/project-stats.blade.php +++ b/resources/views/projects/partials/project-stats.blade.php @@ -6,7 +6,7 @@
    -
    {{ formatDecimal($project->getJobOveralProgress()) }} %
    +
    {{ formatDecimal($project->getJobOveralProgress()) }} %
    Overall Progress
    diff --git a/resources/views/projects/show.blade.php b/resources/views/projects/show.blade.php index 302cf38..37fa6bb 100755 --- a/resources/views/projects/show.blade.php +++ b/resources/views/projects/show.blade.php @@ -20,11 +20,11 @@ @include('projects.partials.project-show')
    - @include('projects.partials.project-stats') {!! Form::model($project, ['route' => ['projects.status-update', $project->id], 'method' => 'patch','class' => 'well well-sm form-inline']) !!} {!! FormField::select('status_id', ProjectStatus::toArray(), ['label' => trans('project.status')]) !!} - {!! Form::submit('Update Project Status', ['class' => 'btn btn-info']) !!} + {!! Form::submit('Update Project Status', ['class' => 'btn btn-info btn-sm']) !!} {!! Form::close() !!} + @include('projects.partials.project-stats')
    @endsection diff --git a/tests/Unit/Queries/AdminDashboardQueryTest.php b/tests/Unit/Queries/AdminDashboardQueryTest.php index 195e0f6..c912e3f 100644 --- a/tests/Unit/Queries/AdminDashboardQueryTest.php +++ b/tests/Unit/Queries/AdminDashboardQueryTest.php @@ -3,7 +3,9 @@ namespace Tests\Unit\Queries; use App\Entities\Payments\Payment; +use App\Entities\Projects\Job; use App\Entities\Projects\Project; +use App\Entities\Projects\Task; use App\Entities\Subscriptions\Subscription; use App\Queries\AdminDashboardQuery; use Carbon\Carbon; @@ -66,4 +68,31 @@ class AdminDashboardQueryTest extends TestCase $this->assertCount(2, (new AdminDashboardQuery)->upcomingSubscriptionDueDatesList()); } + + /** @test */ + public function retrieve_job_on_progress_count() + { + $project1 = factory(Project::class)->create(['status_id' => 2]); + $project1job1 = factory(Job::class)->create(['project_id' => $project1->id]); + $project1job1Task1 = factory(Task::class)->create(['job_id' => $project1job1->id, 'progress' => 50]); + $project1job1Task2 = factory(Task::class)->create(['job_id' => $project1job1->id, 'progress' => 100]); + + $project1job2 = factory(Job::class)->create(['project_id' => $project1->id]); + $project1job2Task1 = factory(Task::class)->create(['job_id' => $project1job2->id, 'progress' => 100]); + $project1job2Task2 = factory(Task::class)->create(['job_id' => $project1job2->id, 'progress' => 100]); + + $project2 = factory(Project::class)->create(['status_id' => 2]); + $project2job1 = factory(Job::class)->create(['project_id' => $project2->id]); + $project2job1Task1 = factory(Task::class)->create(['job_id' => $project2job1->id, 'progress' => 50]); + $project2job1Task2 = factory(Task::class)->create(['job_id' => $project2job1->id, 'progress' => 100]); + + $project2job2 = factory(Job::class)->create(['project_id' => $project2->id]); + $project2job2Task1 = factory(Task::class)->create(['job_id' => $project2job2->id, 'progress' => 50]); + $project2job2Task2 = factory(Task::class)->create(['job_id' => $project2job2->id, 'progress' => 100]); + + $this->assertCount(2, Project::all()); + $this->assertCount(4, Job::all()); + $this->assertCount(8, Task::all()); + $this->assertEquals(3, (new AdminDashboardQuery)->onProgressJobCount()); + } }