Browse Source

Add on progres jobs count on admin dashboard query

pull/1/head
Nafies Luthfi 8 years ago
parent
commit
d721e63d47
  1. 17
      app/Queries/AdminDashboardQuery.php
  2. 2
      resources/views/jobs/partials/job-tasks-operation.blade.php
  3. 4
      resources/views/pages/home.blade.php
  4. 2
      resources/views/projects/partials/project-stats.blade.php
  5. 4
      resources/views/projects/show.blade.php
  6. 29
      tests/Unit/Queries/AdminDashboardQueryTest.php

17
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();
}
}

2
resources/views/jobs/partials/job-tasks-operation.blade.php

@ -35,7 +35,7 @@
]) !!}
</div>
<div class="col-md-2" style="font-size: 28px; margin-top: 15px;">
<strong id="ap_weight">{{ $editableTask->progress }}</strong> %
<strong id="ap_weight">{{ $editableTask->progress }}</strong>%
</div>
<div class="col-md-6">
{!! FormField::select('job_id', $job->project->jobs->pluck('name','id'), ['label' => 'Pindahkan ke Fitur lain']) !!}

4
resources/views/pages/home.blade.php

@ -32,7 +32,7 @@
<tr>
<td class="col-xs-2 text-center">Yearly Earnings ({{ $queriedYear }})</td>
<td class="col-xs-2 text-center">Finished Projects ({{ $queriedYear }})</td>
<td class="col-xs-2 text-center">Receiveable Earnings</td>
<td class="col-xs-2 text-center">Current Receiveable Earnings</td>
</tr>
<tr>
<td class="text-center text-primary lead" style="border-top: none;">
@ -58,7 +58,7 @@
<span class="pull-right text-primary">{{ $totalFinishedProjects }} Projects</span>
</li>
<li class="list-group-item">
Receiveable Earnings
Current Receiveable Earnings
<span class="pull-right text-primary">{{ $currentOutstandingCustomerPayment }}</span>
</li>
</ul>

2
resources/views/projects/partials/project-stats.blade.php

@ -6,7 +6,7 @@
<div class="row">
<div class="col-xs-3"><i class="fa fa-tasks fa-4x"></i></div>
<div class="col-xs-9 text-right">
<div class="huge">{{ formatDecimal($project->getJobOveralProgress()) }} %</div>
<div class="huge" style="font-size: 38px;">{{ formatDecimal($project->getJobOveralProgress()) }} %</div>
<div class="lead">Overall Progress</div>
</div>
</div>

4
resources/views/projects/show.blade.php

@ -20,11 +20,11 @@
@include('projects.partials.project-show')
</div>
<div class="col-md-6">
@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')
</div>
</div>
@endsection

29
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());
}
}
Loading…
Cancel
Save