Browse Source

Merge pull request 'Dev-Farhan' (#1) from Dev-Farhan into staging

Reviewed-on: https://gitea.osiutech.com/integrasia-utama/ospro_generic_api/pulls/1
pull/1/head
farhantock 1 year ago
parent
commit
4916d7e8bb
  1. 121
      app/Http/Controllers/DashboardBoDController.php
  2. 40
      app/Http/Controllers/ProjectCarausellController.php
  3. 27
      app/Http/Controllers/ProjectController.php
  4. 93
      app/Http/Controllers/ProjectExpenditureController.php
  5. 93
      app/Http/Controllers/ProjectFinancialHealthController.php
  6. 93
      app/Http/Controllers/ProjectInvoiceController.php
  7. 93
      app/Http/Controllers/ProjectScheduleHealthController.php
  8. 17
      app/Models/ProjectExpenditure.php
  9. 17
      app/Models/ProjectFinancialHealth.php
  10. 17
      app/Models/ProjectInvoice.php
  11. 17
      app/Models/ProjectScheduleHealth.php
  12. 32
      routes/web.php

121
app/Http/Controllers/DashboardBoDController.php

@ -2,15 +2,19 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Helpers\MasterFunctionsHelper; use App\Models\User;
use App\Models\Divisi; use App\Models\Divisi;
use App\Models\Project; use App\Models\Project;
use App\Models\ProjectPhase; use App\Models\ProjectPhase;
use App\Models\User; use App\Models\ProjectExpenditure;
use App\Models\UserToVersionGantt; use App\Models\UserToVersionGantt;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use App\Models\ProjectScheduleHealth;
use App\Helpers\MasterFunctionsHelper;
use App\Models\ProjectFinancialHealth;
use App\Models\ProjectInvoice;
class DashboardBoDController extends Controller class DashboardBoDController extends Controller
{ {
@ -110,23 +114,123 @@ class DashboardBoDController extends Controller
], 200); ], 200);
} }
public function getDetailExpenditureColor($company_id) {
$query = ProjectExpenditure::where('company_id',$company_id)->get();
$data = [];
foreach($query as $value) {
if($value['name'] === 'Total Budget') {
$data['total_budget'] = $value['color'];
}
if($value['name'] === 'Expenditure') {
$data['total_expenditure'] = $value['color'];
}
if($value['name'] === 'Invoice') {
$data['total_invoice'] = $value['color'];
}
if($value['name'] === 'Cash In') {
$data['total_paid_invoice'] = $value['color'];
}
}
return response()->json([
'data' => [
'total_budget' => $data['total_budget'] ?? '',
'total_expenditure' => $data['total_expenditure'] ?? '',
'total_invoice' => $data['total_invoice'] ?? '',
'total_paid_invoice' => $data['total_paid_invoice'] ?? '',
]
], 200);
}
public function getDetailFinancialHealthColor($company_id) {
$query = ProjectFinancialHealth::where('company_id',$company_id)->get();
$data = [];
foreach($query as $value) {
if($value['name'] === 'Cost Overrun') {
$data['overrun'] = $value['color'];
}
if($value['name'] === 'Early Warning') {
$data['warning'] = $value['color'];
}
if($value['name'] === 'On Budget') {
$data['on-budget'] = $value['color'];
}
}
return response()->json([
'data' => [
'overrun' => $data['overrun'] ?? '',
'warning' => $data['warning'] ?? '',
'on-budget' => $data['on-budget'] ?? '',
]
], 200);
}
public function getDetailScheduleHealthColor($company_id) {
$query = ProjectScheduleHealth::where('company_id',$company_id)->get();
$data = [];
foreach($query as $value) {
if($value['name'] === 'Behind Schedule') {
$data['behind-schedule'] = $value['color'];
}
if($value['name'] === 'Early Warning') {
$data['warning'] = $value['color'];
}
if($value['name'] === 'On Schedule') {
$data['on-schedule'] = $value['color'];
}
}
return response()->json([
'data' => [
'behind-schedule' => $data['behind-schedule'] ?? '',
'warning' => $data['warning'] ?? '',
'on-schedule' => $data['on-schedule'] ?? '',
]
], 200);
}
public function getDetailInvoiceColor($company_id) {
$query = ProjectInvoice::where('company_id',$company_id)->get();
$data = [];
foreach($query as $value) {
if($value['name'] === 'Invoiced') {
$data['invoiced'] = $value['color'];
}
if($value['name'] === 'Cash In') {
$data['paid'] = $value['color'];
}
}
return response()->json([
'data' => [
'invoiced' => $data['invoiced'] ?? '',
'paid' => $data['paid'] ?? ''
]
], 200);
}
// integrasi // integrasi
public function getInvoiceOutstanding($year = '%') public function getInvoiceOutstanding($year = '%', $company_id, $all_project, $hierarchy)
{ {
$year = $this->interpolateYear($year); $year = $this->interpolateYear($year);
$projects = null;
if ($all_project) {
$projects = Project::where('mulai_proyek', 'like', $year) $projects = Project::where('mulai_proyek', 'like', $year)
/* ->orWhere('akhir_proyek', 'like', $year) */ ->where('company_id', $company_id)
->get();
} else {
$projects = Project::where('mulai_proyek', 'like', $year)
->where('created_by_id', $hierarchy)
->get(); ->get();
}
$return = []; $return = [];
foreach ($projects as $project) { foreach ($projects as $project) {
$resp = null; $resp = null;
if ($project->kode_sortname != "") { if ($project->kode_sortname != "") {
$resp = $this->getInvoiceIntegration($project->kode_sortname); // $resp = $this->getInvoiceIntegration($project->kode_sortname);
array_push($return, [ array_push($return, [
'project' => $project->nama, 'project' => $project->nama,
'project_code' => $project->kode_sortname, 'project_code' => $project->kode_sortname,
'invoiced' => $resp->data->total_invoice_amount ?? 0, 'invoiced' => 0,
'paid' => $resp->data->total_invoice_paid_amount ?? 0, 'paid' => 0,
'response' => $resp, 'response' => $resp,
]); ]);
} }
@ -195,12 +299,11 @@ class DashboardBoDController extends Controller
$year = $this->interpolateYear($year); $year = $this->interpolateYear($year);
$divisions = Divisi::whereNull('parent') $divisions = Divisi::whereNull('parent')
->where('company_id', $company_id) ->where('company_id', $company_id)
->whereNull('parent')
->get(); ->get();
$divisions = Divisi::whereNull('parent')->get();
foreach ($divisions as $index => $division) { foreach ($divisions as $index => $division) {
$scheduleData = new Collection(); $scheduleData = new Collection();
$behindSchedule = $warning = $onSchedule = 0; $behindSchedule = $warning = $onSchedule = 0;

40
app/Http/Controllers/ProjectCarausellController.php

@ -2,6 +2,7 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\{ use App\Models\{
User, User,
Project, Project,
@ -9,33 +10,46 @@ use App\Models\{
ProjectIssues, ProjectIssues,
ProjectRisks ProjectRisks
}; };
class ProjectCarausellController extends Controller class ProjectCarausellController extends Controller
{ {
public function invoke() { public function invoke(Request $request)
{
// Master Data // Master Data
$projectData = Project::query() $company_id = $request->route('company_id');
->select("id","nama","kode_sortname","pm_id","budget_health","calculation_status","mulai_proyek","akhir_proyek","rencana_biaya","company","scurve") $all_project = $request->route('all_project');
->get(); $hierarchy = $request->route('hierarchy');
$query = Project::query()
->select("id", "nama", "kode_sortname", "pm_id", "budget_health", "calculation_status", "mulai_proyek", "akhir_proyek", "rencana_biaya", "company", "scurve");
if ($all_project) {
$query->where('company_id', $company_id);
} else {
$query->where('created_by_id', $hierarchy);
}
$projectData = $query->get();
$arr = []; $arr = [];
foreach($projectData as $project) { foreach ($projectData as $project) {
$projectRisk = ProjectRisks::query() $projectRisk = ProjectRisks::query()
->select('proyek_id','description','level_risk','preventive_risk') ->select('proyek_id', 'description', 'level_risk', 'preventive_risk')
->where('proyek_id', $project['id']) ->where('proyek_id', $project['id'])
->get() ->get()
->toArray(); ->toArray();
$projectIssue = ProjectIssues::query() $projectIssue = ProjectIssues::query()
->select('proyek_id','description','level_issue') ->select('proyek_id', 'description', 'level_issue')
->where('proyek_id',$project['id']) ->where('proyek_id', $project['id'])
->get() ->get()
->toArray(); ->toArray();
$ganttData = VersionGantt::query() $ganttData = VersionGantt::query()
->select('id', 'name_version','hierarchy_ftth_id','cost_to_complete','proyek_id','calculation_type') ->select('id', 'name_version', 'hierarchy_ftth_id', 'cost_to_complete', 'proyek_id', 'calculation_type')
->where('proyek_id',$project['id']) ->where('proyek_id', $project['id'])
->orderByDesc('id') ->orderByDesc('id')
->first(); ->first();
$projectManager = User::where('id', $project['pm_id'])->value('name'); $projectManager = User::where('id', $project['pm_id'])->value('name');
$arr[]= [ $arr[] = [
"project" => [ "project" => [
"id" => $project['id'], "id" => $project['id'],
"pm_id" => $project['pm_id'], "pm_id" => $project['pm_id'],
@ -52,9 +66,9 @@ class ProjectCarausellController extends Controller
"project_manager" => $projectManager, "project_manager" => $projectManager,
"project_risk" => $projectRisk, "project_risk" => $projectRisk,
"project_issue" => $projectIssue, "project_issue" => $projectIssue,
"gantt"=> $ganttData "gantt" => $ganttData
]; ];
} }
return response()->json(['status'=>'success','code'=> 200,'data'=> $arr, "total_project"=>count($arr)], 200); return response()->json(['status' => 'success', 'code' => 200, 'data' => $arr, "total_project" => count($arr)], 200);
} }
} }

27
app/Http/Controllers/ProjectController.php

@ -510,20 +510,29 @@ class ProjectController extends Controller
return response()->json(['status' => 'success', 'data' => $response, 'code' => 200], 200); return response()->json(['status' => 'success', 'data' => $response, 'code' => 200], 200);
} }
public function getByUser($id) public function getByUser($id) {
{
$alias = "utp";
$userProyek = UserToProyek::query() $userProyek = UserToProyek::query()
->from('assign_hr_to_proyek AS ' . $alias) ->from('assign_hr_to_proyek AS ahtp')
->where([ ->where([
['is_customer', true], ['is_customer', true],
['user_id', $id] ['user_id', $id]
]) ])
->leftJoin('m_users', $alias . '.user_id', '=', 'm_users.id') ->leftJoin('m_users', 'ahtp.user_id', '=', 'm_users.id')
->leftJoin('m_proyek', $alias . '.proyek_id', '=', 'm_proyek.id') ->leftJoin('m_proyek AS mp', 'ahtp.proyek_id', '=', 'mp.id')
->leftJoin('m_type_proyek', 'm_proyek.type_proyek_id', '=', 'm_type_proyek.id') ->leftJoin('m_type_proyek', 'mp.type_proyek_id', '=', 'm_type_proyek.id')
->select('m_proyek.*', 'm_type_proyek.name AS join_second_name', 'm_users.name AS join_first_name') ->select(
->get(); 'mp.id',
'mp.nama',
'mp.rencana_biaya',
'mp.type_proyek_id',
'mp.currency_symbol',
'mp.mulai_proyek',
'mp.akhir_proyek',
'm_users.name AS join_first_name',
'm_users.username AS join_first_username',
'm_type_proyek.name AS join_second_name',
'm_type_proyek.name AS join_second_description'
)->get();
$totalRecord = $userProyek->count(); $totalRecord = $userProyek->count();
return response()->json(['status' => 'success', 'code' => 200, 'data' => $userProyek, 'totalRecord' => $totalRecord], 200); return response()->json(['status' => 'success', 'code' => 200, 'data' => $userProyek, 'totalRecord' => $totalRecord], 200);

93
app/Http/Controllers/ProjectExpenditureController.php

@ -0,0 +1,93 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\ProjectExpenditure;
class ProjectExpenditureController extends Controller
{
public function add(Request $request)
{
$this->validate($request, [
'name' => 'required'
]);
$data = $request->all();
// Set Unique
$result = ProjectExpenditure::query()
->where([
['company_id',$data['company_id']],
['name', $data['name']]
])->first();
if($result) {
return response()->json(['status'=>'failed','message'=>'Name is already exists!','code'=> 500], 500);
die;
}
$data['created_by'] = $this->currentName;
if(!ProjectExpenditure::create($data))
return response()->json(['status'=>'failed','message'=>'Failed to add data','code'=> 500], 500);
return response()->json(['status'=>'success','message'=>'data added!','code'=>200], 200);
}
public function edit($id){
if(!$id || (int) $id < 0 || $id=="")
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400);
if(!$result = ProjectExpenditure::find($id))
return response()->json(['status'=>'failed','message'=>'Failed to get data!','code'=> 404], 404);
return response()->json(['status'=>'success','code'=>200,'data'=>$result], 200);
}
public function update(Request $request, $id)
{
if(!$id || (int) $id < 0 || $id=="")
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400);
if(!$data = ProjectExpenditure::find($id))
return response()->json(['status'=>'failed','message'=>'data project expenditure not found!','code'=>400], 400);
if(!$data->update($request->all()))
return response()->json(['status'=>'failed','message'=>'data project expenditure failed updated!','code'=>400], 400);
return response()->json(['status'=>'success','message'=>'Data berhasil disimpan!','code'=>200], 200);
}
public function delete($id)
{
if(!$data = ProjectExpenditure::find($id))
return response()->json(['status'=>'failed','message'=>'data project expenditure not found!','code'=>400], 400);
if(!$data->delete())
return response()->json(['status'=>'failed','message'=>'Data gagal dihapus!','code'=> 500], 500);
return response()->json(['status'=>'success','message'=>'Data berhasil dihapus!','code'=>200], 200);
}
public function search(Request $request)
{
$payload = $request->all();
$dataBuilder = $this->setUpPayload($payload, 'm_proyek_expenditure');
$builder = $dataBuilder['builder'];
$countBuilder = $dataBuilder['count'];
$dataGet = $builder->get();
$totalRecord = $countBuilder->count();
return response()->json(['status'=>'success','code'=>200,'data'=>$dataGet, 'totalRecord'=>$totalRecord], 200);
}
public function list()
{
$data = ProjectExpenditure::all();
$countData = $data->count();
if(!$data)
return response()->json(['status'=>'failed','message'=>'failed get list project expenditure, please try again later!','code'=>400], 400);
return response()->json(['status'=>'success','code'=>200,'data'=>$data, 'totalRecord'=>$countData], 200);
}
}

93
app/Http/Controllers/ProjectFinancialHealthController.php

@ -0,0 +1,93 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\ProjectFinancialHealth;
class ProjectFinancialHealthController extends Controller
{
public function add(Request $request)
{
$this->validate($request, [
'name' => 'required'
]);
$data = $request->all();
// Set Unique
$result = ProjectFinancialHealth::query()
->where([
['company_id',$data['company_id']],
['name', $data['name']]
])->first();
if($result) {
return response()->json(['status'=>'failed','message'=>'Name is already exists!','code'=> 500], 500);
die;
}
$data['created_by'] = $this->currentName;
if(!ProjectFinancialHealth::create($data))
return response()->json(['status'=>'failed','message'=>'Failed to add data','code'=> 500], 500);
return response()->json(['status'=>'success','message'=>'data added!','code'=>200], 200);
}
public function edit($id){
if(!$id || (int) $id < 0 || $id=="")
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400);
if(!$result = ProjectFinancialHealth::find($id))
return response()->json(['status'=>'failed','message'=>'Failed to get data!','code'=> 404], 404);
return response()->json(['status'=>'success','code'=>200,'data'=>$result], 200);
}
public function update(Request $request, $id)
{
if(!$id || (int) $id < 0 || $id=="")
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400);
if(!$data = ProjectFinancialHealth::find($id))
return response()->json(['status'=>'failed','message'=>'data financial health not found!','code'=>400], 400);
if(!$data->update($request->all()))
return response()->json(['status'=>'failed','message'=>'Data financial health failed updated!','code'=>400], 400);
return response()->json(['status'=>'success','message'=>'Data berhasil disimpan!','code'=>200], 200);
}
public function delete($id)
{
if(!$data = ProjectFinancialHealth::find($id))
return response()->json(['status'=>'failed','message'=>'data financial health not found!','code'=>400], 400);
if(!$data->delete())
return response()->json(['status'=>'failed','message'=>'Data gagal dihapus!','code'=> 500], 500);
return response()->json(['status'=>'success','message'=>'Data berhasil dihapus!','code'=>200], 200);
}
public function search(Request $request)
{
$payload = $request->all();
$dataBuilder = $this->setUpPayload($payload, 'm_proyek_financial_health');
$builder = $dataBuilder['builder'];
$countBuilder = $dataBuilder['count'];
$dataGet = $builder->get();
$totalRecord = $countBuilder->count();
return response()->json(['status'=>'success','code'=>200,'data'=>$dataGet, 'totalRecord'=>$totalRecord], 200);
}
public function list()
{
$data = ProjectFinancialHealth::all();
$countData = $data->count();
if(!$data)
return response()->json(['status'=>'failed','message'=>'failed get list financial health, please try again later!','code'=>400], 400);
return response()->json(['status'=>'success','code'=>200,'data'=>$data, 'totalRecord'=>$countData], 200);
}
}

93
app/Http/Controllers/ProjectInvoiceController.php

@ -0,0 +1,93 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\ProjectInvoice;
class ProjectInvoiceController extends Controller
{
public function add(Request $request)
{
$this->validate($request, [
'name' => 'required'
]);
$data = $request->all();
// Set Unique
$result = ProjectInvoice::query()
->where([
['company_id',$data['company_id']],
['name', $data['name']]
])->first();
if($result) {
return response()->json(['status'=>'failed','message'=>'Name is already exists!','code'=> 500], 500);
die;
}
$data['created_by'] = $this->currentName;
if(!ProjectInvoice::create($data))
return response()->json(['status'=>'failed','message'=>'Failed to add data','code'=> 500], 500);
return response()->json(['status'=>'success','message'=>'data added!','code'=>200], 200);
}
public function edit($id){
if(!$id || (int) $id < 0 || $id=="")
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400);
if(!$result = ProjectInvoice::find($id))
return response()->json(['status'=>'failed','message'=>'Failed to get data!','code'=> 404], 404);
return response()->json(['status'=>'success','code'=>200,'data'=>$result], 200);
}
public function update(Request $request, $id)
{
if(!$id || (int) $id < 0 || $id=="")
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400);
if(!$data = ProjectInvoice::find($id))
return response()->json(['status'=>'failed','message'=>'data project invoice not found!','code'=>400], 400);
if(!$data->update($request->all()))
return response()->json(['status'=>'failed','message'=>'data project invoice failed updated!','code'=>400], 400);
return response()->json(['status'=>'success','message'=>'Data berhasil disimpan!','code'=>200], 200);
}
public function delete($id)
{
if(!$data = ProjectInvoice::find($id))
return response()->json(['status'=>'failed','message'=>'data project invoice not found!','code'=>400], 400);
if(!$data->delete())
return response()->json(['status'=>'failed','message'=>'Data gagal dihapus!','code'=> 500], 500);
return response()->json(['status'=>'success','message'=>'Data berhasil dihapus!','code'=>200], 200);
}
public function search(Request $request)
{
$payload = $request->all();
$dataBuilder = $this->setUpPayload($payload, 'm_proyek_invoice');
$builder = $dataBuilder['builder'];
$countBuilder = $dataBuilder['count'];
$dataGet = $builder->get();
$totalRecord = $countBuilder->count();
return response()->json(['status'=>'success','code'=>200,'data'=>$dataGet, 'totalRecord'=>$totalRecord], 200);
}
public function list()
{
$data = ProjectInvoice::all();
$countData = $data->count();
if(!$data)
return response()->json(['status'=>'failed','message'=>'failed get list project invoice, please try again later!','code'=>400], 400);
return response()->json(['status'=>'success','code'=>200,'data'=>$data, 'totalRecord'=>$countData], 200);
}
}

93
app/Http/Controllers/ProjectScheduleHealthController.php

@ -0,0 +1,93 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\ProjectScheduleHealth;
class ProjectScheduleHealthController extends Controller
{
public function add(Request $request)
{
$this->validate($request, [
'name' => 'required'
]);
$data = $request->all();
// Set Unique
$result = ProjectScheduleHealth::query()
->where([
['company_id',$data['company_id']],
['name', $data['name']]
])->first();
if($result) {
return response()->json(['status'=>'failed','message'=>'Name is already exists!','code'=> 500], 500);
die;
}
$data['created_by'] = $this->currentName;
if(!ProjectScheduleHealth::create($data))
return response()->json(['status'=>'failed','message'=>'Failed to add data','code'=> 500], 500);
return response()->json(['status'=>'success','message'=>'data added!','code'=>200], 200);
}
public function edit($id){
if(!$id || (int) $id < 0 || $id=="")
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400);
if(!$result = ProjectScheduleHealth::find($id))
return response()->json(['status'=>'failed','message'=>'Failed to get data!','code'=> 404], 404);
return response()->json(['status'=>'success','code'=>200,'data'=>$result], 200);
}
public function update(Request $request, $id)
{
if(!$id || (int) $id < 0 || $id=="")
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400);
if(!$data = ProjectScheduleHealth::find($id))
return response()->json(['status'=>'failed','message'=>'data schedule health not found!','code'=>400], 400);
if(!$data->update($request->all()))
return response()->json(['status'=>'failed','message'=>'data schedule health failed updated!','code'=>400], 400);
return response()->json(['status'=>'success','message'=>'Data berhasil disimpan!','code'=>200], 200);
}
public function delete($id)
{
if(!$data = ProjectScheduleHealth::find($id))
return response()->json(['status'=>'failed','message'=>'data schedule health not found!','code'=>400], 400);
if(!$data->delete())
return response()->json(['status'=>'failed','message'=>'Data gagal dihapus!','code'=> 500], 500);
return response()->json(['status'=>'success','message'=>'Data berhasil dihapus!','code'=>200], 200);
}
public function search(Request $request)
{
$payload = $request->all();
$dataBuilder = $this->setUpPayload($payload, 'm_proyek_schedule_health');
$builder = $dataBuilder['builder'];
$countBuilder = $dataBuilder['count'];
$dataGet = $builder->get();
$totalRecord = $countBuilder->count();
return response()->json(['status'=>'success','code'=>200,'data'=>$dataGet, 'totalRecord'=>$totalRecord], 200);
}
public function list()
{
$data = ProjectScheduleHealth::all();
$countData = $data->count();
if(!$data)
return response()->json(['status'=>'failed','message'=>'failed get list schedule health, please try again later!','code'=>400], 400);
return response()->json(['status'=>'success','code'=>200,'data'=>$data, 'totalRecord'=>$countData], 200);
}
}

17
app/Models/ProjectExpenditure.php

@ -0,0 +1,17 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class ProjectExpenditure extends Model
{
protected $table = 'm_proyek_expenditure';
const CREATED_AT = 'created_at';
const UPDATED_AT = 'updated_at';
protected $fillable = [
'name', 'color', 'created_at', 'created_by', 'updated_at', 'updated_by', 'company_id'
];
}

17
app/Models/ProjectFinancialHealth.php

@ -0,0 +1,17 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class ProjectFinancialHealth extends Model
{
protected $table = 'm_proyek_financial_health';
const CREATED_AT = 'created_at';
const UPDATED_AT = 'updated_at';
protected $fillable = [
'name', 'color', 'created_at', 'created_by', 'updated_at', 'updated_by', 'company_id'
];
}

17
app/Models/ProjectInvoice.php

@ -0,0 +1,17 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class ProjectInvoice extends Model
{
protected $table = 'm_proyek_invoice';
const CREATED_AT = 'created_at';
const UPDATED_AT = 'updated_at';
protected $fillable = [
'name', 'color', 'created_at', 'created_by', 'updated_at', 'updated_by', 'company_id'
];
}

17
app/Models/ProjectScheduleHealth.php

@ -0,0 +1,17 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class ProjectScheduleHealth extends Model
{
protected $table = 'm_proyek_schedule_health';
const CREATED_AT = 'created_at';
const UPDATED_AT = 'updated_at';
protected $fillable = [
'name', 'color', 'created_at', 'created_by', 'updated_at', 'updated_by', 'company_id'
];
}

32
routes/web.php

@ -24,7 +24,7 @@ $router->group(['prefix' => 'api', 'middleware' => 'cors'], function () use ($ro
$router->group(['middleware' => ['auth', 'cors']], function () use ($router) { $router->group(['middleware' => ['auth', 'cors']], function () use ($router) {
$router->get('/dashboard/get-company-cashflow/{year}/{company_id}/{all_project}/{hierarchy}', 'DashboardBoDController@getCompanyCashFlow'); // project expenditure $router->get('/dashboard/get-company-cashflow/{year}/{company_id}/{all_project}/{hierarchy}', 'DashboardBoDController@getCompanyCashFlow'); // project expenditure
$router->get('/dashboard/get-invoice-outstanding[/{year}]', 'DashboardBoDController@getInvoiceOutstanding'); // project invoice vs cash in $router->get('/dashboard/get-invoice-outstanding/{year}/{company_id}/{all_project}/{hierarchy}', 'DashboardBoDController@getInvoiceOutstanding'); // project invoice vs cash in
$router->get('/dashboard/get-total-project-per-schedule-health/{year}/{company_id}/{all_project}/{hierarchy}', 'DashboardBoDController@getTotalProjectPerScheduleHealth'); $router->get('/dashboard/get-total-project-per-schedule-health/{year}/{company_id}/{all_project}/{hierarchy}', 'DashboardBoDController@getTotalProjectPerScheduleHealth');
$router->get('/dashboard/get-total-project-per-budget-health/{year}/{company_id}/{all_project}/{hierarchy}', 'DashboardBoDController@getTotalProjectPerBudgetHealth'); $router->get('/dashboard/get-total-project-per-budget-health/{year}/{company_id}/{all_project}/{hierarchy}', 'DashboardBoDController@getTotalProjectPerBudgetHealth');
$router->get('/dashboard/get-total-project-schedule-health-per-division/{year}/{company_id}/{all_project}/{hierarchy}', 'DashboardBoDController@getTotalProjectScheduleHealthPerDivision'); $router->get('/dashboard/get-total-project-schedule-health-per-division/{year}/{company_id}/{all_project}/{hierarchy}', 'DashboardBoDController@getTotalProjectScheduleHealthPerDivision');
@ -33,6 +33,10 @@ $router->group(['prefix' => 'api', 'middleware' => 'cors'], function () use ($ro
$router->get('/dashboard/get-total-project-per-division/{year}/{company_id}/{all_project}/{hierarchy}', 'DashboardBoDController@getTotalProjectPerDivision'); $router->get('/dashboard/get-total-project-per-division/{year}/{company_id}/{all_project}/{hierarchy}', 'DashboardBoDController@getTotalProjectPerDivision');
$router->get('/dashboard/get-total-project-value-per-division/{year}/{company_id}/{all_project}/{hierarchy}', 'DashboardBoDController@getTotalProjectValuePerDivision'); $router->get('/dashboard/get-total-project-value-per-division/{year}/{company_id}/{all_project}/{hierarchy}', 'DashboardBoDController@getTotalProjectValuePerDivision');
$router->get('/dashboard/get-detail-expenditure/{year}/{company_id}/{all_project}/{hierarchy}', 'DashboardBoDController@getDetailExpenditure'); $router->get('/dashboard/get-detail-expenditure/{year}/{company_id}/{all_project}/{hierarchy}', 'DashboardBoDController@getDetailExpenditure');
$router->get('/dashboard/get-detail-expenditure-color/{company_id}', 'DashboardBoDController@getDetailExpenditureColor');
$router->get('/dashboard/get-detail-financial-health-color/{company_id}', 'DashboardBoDController@getDetailFinancialHealthColor');
$router->get('/dashboard/get-detail-schedule-health-color/{company_id}', 'DashboardBoDController@getDetailScheduleHealthColor');
$router->get('/dashboard/get-detail-invoice-color/{company_id}', 'DashboardBoDController@getDetailInvoiceColor');
$router->post('/role/search', 'RoleController@search'); $router->post('/role/search', 'RoleController@search');
$router->post('/role/add', 'RoleController@add'); $router->post('/role/add', 'RoleController@add');
@ -81,7 +85,7 @@ $router->group(['prefix' => 'api', 'middleware' => 'cors'], function () use ($ro
/* $router->get('/project/get-status-health-schedule/{id}', 'ProjectController@getStatusSchedule'); */ /* $router->get('/project/get-status-health-schedule/{id}', 'ProjectController@getStatusSchedule'); */
/* $router->get('/project/get-status-health-budget/{id}', 'ProjectController@getStatusBudget'); */ /* $router->get('/project/get-status-health-budget/{id}', 'ProjectController@getStatusBudget'); */
$router->get('/project-carausell', 'ProjectCarausellController@invoke'); $router->get('/project-carausell/{company_id}/{all_project}/{hierarchy}', 'ProjectCarausellController@invoke');
$router->post('/project-charter/search', 'ProjectCharterController@search'); $router->post('/project-charter/search', 'ProjectCharterController@search');
$router->post('/project-charter/add', 'ProjectCharterController@add'); $router->post('/project-charter/add', 'ProjectCharterController@add');
@ -139,6 +143,30 @@ $router->group(['prefix' => 'api', 'middleware' => 'cors'], function () use ($ro
$router->delete('/project-phase/delete/{id}', 'ProjectPhaseController@delete'); $router->delete('/project-phase/delete/{id}', 'ProjectPhaseController@delete');
$router->get('/project-phase/list', 'ProjectPhaseController@list'); $router->get('/project-phase/list', 'ProjectPhaseController@list');
$router->post('/project-expenditure/add', 'ProjectExpenditureController@add');
$router->post('/project-expenditure/search', 'ProjectExpenditureController@search');
$router->get('/project-expenditure/edit/{id}', 'ProjectExpenditureController@edit');
$router->put('/project-expenditure/update/{id}', 'ProjectExpenditureController@update');
$router->delete('/project-expenditure/delete/{id}', 'ProjectExpenditureController@delete');
$router->post('/project-financial-health/add', 'ProjectFinancialHealthController@add');
$router->post('/project-financial-health/search', 'ProjectFinancialHealthController@search');
$router->get('/project-financial-health/edit/{id}', 'ProjectFinancialHealthController@edit');
$router->put('/project-financial-health/update/{id}', 'ProjectFinancialHealthController@update');
$router->delete('/project-financial-health/delete/{id}', 'ProjectFinancialHealthController@delete');
$router->post('/project-schedule-health/add', 'ProjectScheduleHealthController@add');
$router->post('/project-schedule-health/search', 'ProjectScheduleHealthController@search');
$router->get('/project-schedule-health/edit/{id}', 'ProjectScheduleHealthController@edit');
$router->put('/project-schedule-health/update/{id}', 'ProjectScheduleHealthController@update');
$router->delete('/project-schedule-health/delete/{id}', 'ProjectScheduleHealthController@delete');
$router->post('/project-invoice/add', 'ProjectInvoiceController@add');
$router->post('/project-invoice/search', 'ProjectInvoiceController@search');
$router->get('/project-invoice/edit/{id}', 'ProjectInvoiceController@edit');
$router->put('/project-invoice/update/{id}', 'ProjectInvoiceController@update');
$router->delete('/project-invoice/delete/{id}', 'ProjectInvoiceController@delete');
$router->post('/user-to-project/assign', 'UserProyekController@assignUserProyek'); $router->post('/user-to-project/assign', 'UserProyekController@assignUserProyek');
$router->post('/request-material/add', 'RequestMaterialController@add'); $router->post('/request-material/add', 'RequestMaterialController@add');

Loading…
Cancel
Save