diff --git a/application/controllers/reports/EmployeeHoursController.php b/application/controllers/reports/EmployeeHoursController.php index 350c97f..334874d 100644 --- a/application/controllers/reports/EmployeeHoursController.php +++ b/application/controllers/reports/EmployeeHoursController.php @@ -21,13 +21,17 @@ class EmployeeHoursController extends MY_Controller { $this->load->model( $models ); $this->load->library( $libraries ); } + public function index() { } - public function getMonthlyEmployeeHoursPerProject() + public function getMonthlyEmployeeHoursPerProject( $employeeID, $year ) { + $monthlyhours = Projecthour::getMonthlyEmployeeHoursPerProject( $employeeID, $year ); + + $this->json( $monthlyhours ); } diff --git a/application/controllers/reports/ReportsdefaultController.php b/application/controllers/reports/ReportsdefaultController.php new file mode 100644 index 0000000..11c3386 --- /dev/null +++ b/application/controllers/reports/ReportsdefaultController.php @@ -0,0 +1,38 @@ +load->model( $models ); + $this->load->library( $libraries ); + } + + public function index() + { + + } + + public function getUsedYears() + { + $years = Projecthour::getUsedYears(); + + $this->json( $years ); + } + + +} \ No newline at end of file diff --git a/application/models/eloquent/Projecthour.php b/application/models/eloquent/Projecthour.php index 020328f..153cf76 100644 --- a/application/models/eloquent/Projecthour.php +++ b/application/models/eloquent/Projecthour.php @@ -15,6 +15,47 @@ class Projecthour extends BaseModel { $this->belongsTo( 'Projectemployee' ); } + public static function getUsedYears() + { + $years = Projecthour::selectRaw( "YEAR(hourdate) AS year" ) + ->distinct() + ->orderByRaw( 'YEAR( hourdate )' ) + ->get(); + + return $years; + } + + public static function getMonthlyEmployeeHoursPerProject( $employeeID, $year ) + { + $projectHours = Projecthour::selectRaw( " + SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-1', projecthours.hours, 0)) AS januari, + SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-2', projecthours.hours, 0)) AS februari, + SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-3', projecthours.hours, 0)) AS maart, + SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-4', projecthours.hours, 0)) AS april, + SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-5', projecthours.hours, 0)) AS mei, + SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-6', projecthours.hours, 0)) AS juni, + SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-7', projecthours.hours, 0)) AS juli, + SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-8', projecthours.hours, 0)) AS augustus, + SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-9', projecthours.hours, 0)) AS september, + SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-10', projecthours.hours, 0)) AS oktober, + SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-11', projecthours.hours, 0)) AS november, + SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-12', projecthours.hours, 0)) AS december, + SUM(IF(YEAR(hourdate) = {$year},projecthours.hours, 0)) AS totalyear, + SUM(IF(YEAR(hourdate) != {$year},projecthours.hours, 0)) AS totalotheryears, + SUM(projecthours.hours) AS totalhours, + PEM.tarif, + PRJ.projectname" ) + ->join( 'projectemployees AS PEM', 'PEM.id', '=', 'projecthours.projectemployee_id' ) + ->join( 'projects AS PRJ', 'PRJ.id', '=', 'PEM.project_id' ) + ->where( 'PEM.user_id', '=', $employeeID ) + ->groupBy('PRJ.id') + ->groupBy('PEM.tarif') + ->groupBy('PRJ.projectname') + ->get(); + + return $projectHours; + } + public static function saveProjecthour( $projecthourID, $projecthour ) { $projecthour = (array) $projecthour; diff --git a/application/views/pages/monthlyemployeehours_view.php b/application/views/pages/monthlyemployeehours_view.php index 99f75f4..615ce33 100644 --- a/application/views/pages/monthlyemployeehours_view.php +++ b/application/views/pages/monthlyemployeehours_view.php @@ -1,4 +1,19 @@
+
+
+ +
+
+ + + +
+