diff --git a/application/controllers/dashboard/DashboardController.php b/application/controllers/dashboard/DashboardController.php new file mode 100644 index 0000000..baefb07 --- /dev/null +++ b/application/controllers/dashboard/DashboardController.php @@ -0,0 +1,54 @@ +getProjects(); + + $currentFinancialYear = 0; + $totalRevenues = 0; + $totalOwp = 0; + $ownRevenue = 0; + $available = 0; + foreach ( $projects as $project ) + { + $revenues = 0; + foreach ( $project['employees'] as $employee ) + { + $revenues += $employee['revenues']; + } + $currentFinancialYear += $project['current_financial_year']; + + $owp = $project['own_revenue'] - $revenues; + $owp = $owp > 0 ? $owp : 0; + $totalOwp += $owp; + + $ownRevenue += $project['own_revenue']; + $totalRevenues += $revenues; + $available += $project['budgetAvailable']; + } + + $this->json( [ + 'totalOwp' => $totalOwp, + 'currentFinancialYear' => $currentFinancialYear, + 'owpNextyear' => $totalOwp - $currentFinancialYear, + 'revenuesNextyear' => $totalOwp / 0.4, + 'totalRevenues' => $totalRevenues + ] ); + } + +} diff --git a/application/models/eloquent/Projectemployee.php b/application/models/eloquent/Projectemployee.php index d2d1579..48b7372 100644 --- a/application/models/eloquent/Projectemployee.php +++ b/application/models/eloquent/Projectemployee.php @@ -13,6 +13,7 @@ class Projectemployee extends BaseModel { return $this->belongsTo( 'Project' ); } +<<<<<<< Updated upstream public function user() { return $this->belongsTo( 'User' ); @@ -98,4 +99,65 @@ class Projectemployee extends BaseModel { Projectemployee::whereId( $projectemployeeID )->delete(); } -} \ No newline at end of file +} +======= + public static function getProjectemployeeDetailsPerProject( $projectID ) + { + $details = Projectemployee::selectRaw( ' + USR.id, budget, project_id, ROUND(SUM(hours), 0) AS hours, ROUND(SUM(hours * tarif), 0) AS revenues, projectemployees.id AS projectemployeeID' ) + ->join( 'users AS USR', 'USR.id', '=', 'projectemployees.user_id' ) + ->join( 'projecthours AS PRH', 'PRH.projectemployee_id', '=', 'projectemployees.id' ) + ->where( 'PRH.hourtype_id', '=', 1 ) +// ->where( 'budget', '!=', 0 ) + ->groupBy( 'projectemployees.id' ) + ->havingRaw( 'ROUND(SUM(hours), 0) > 0' ); + + if( $projectID) + $details = $details->where( 'projectemployees.project_id', '=', $projectID ); + + $details = $details->get(); + + return $details; + } + + public static function firstOrCreateProjectemployee( $userID, $projectID ) + { + $projectemployee = self::whereUserId( $userID )->whereProjectId( $projectID ); + + if ( $projectemployee->count() > 0 ) return $projectemployee->first(); + + $user = User::find( $userID ); + + $tarif = $user ? $user->hourlyrate : 0; + + $projectemployee = Projectemployee::create( [ + 'project_id' => $projectID, + 'user_id' => $userID, + 'tarif' => $tarif + ] ); + + return $projectemployee; + } + + public static function createProjectEmployee( $projectID ) + { + $projectemployee = Projectemployee::create( [ + 'project_id' => $projectID + ] ); + + return $projectemployee->id; + } + + public static function saveProjectemployee( $projectemployeeID, $projectemployee ) + { + Projectemployee::whereId( $projectemployeeID ) + ->update( $projectemployee ); + } + + public static function removeProjectemployee( $projectemployeeID ) + { + Projectemployee::whereId( $projectemployeeID )->delete(); + } + +} +>>>>>>> Stashed changes diff --git a/application/views/pages/dashboard_view.php b/application/views/pages/dashboard_view.php index 9a9b30b..1aaead2 100644 --- a/application/views/pages/dashboard_view.php +++ b/application/views/pages/dashboard_view.php @@ -1 +1,46 @@ -