From b634d0b13905f4a96866b0ef27ba911ba1b39a7b Mon Sep 17 00:00:00 2001 From: Theo Weijmer Date: Wed, 31 Jan 2018 21:56:13 +0100 Subject: [PATCH] employeehours --- .../projects/EmployeehoursController.php | 62 ++++++ .../projects/ProjectsController.php | 2 - .../ProjectcostValidation.php | 4 + application/models/eloquent/Employeehour.php | 52 +++++ application/models/eloquent/Hourtype.php | 18 ++ application/views/modals/external_modal.php | 16 ++ application/views/modals/partials/_hours.php | 36 +++- .../views/modals/partials/_invoices.php | 24 +-- .../views/modals/partials/_projectcosts.php | 31 ++- .../modals/partials/_projectdashboard.php | 8 + .../modals/partials/_projectemployees.php | 17 +- .../views/modals/partials/_projectoffers.php | 23 +-- application/views/modals/project_modal.php | 19 +- .../views/pages/employeehours_view.php | 98 ++++++++++ application/views/pages/projects_view.php | 10 +- application/views/partials/_js.php | 3 + public/css/main.css | 4 + .../dataservices/employeehoursDataService.js | 38 ++++ public/js/lib/helpers.js | 4 + public/js/lib/modals/externalModal.js | 9 +- public/js/lib/modals/offerModal.js | 2 + public/js/lib/modals/projectModal.js | 118 +++++++++--- .../modules/projects/employeehoursModule.js | 180 ++++++++++++++++++ .../js/lib/modules/projects/projectsModule.js | 7 +- 24 files changed, 700 insertions(+), 85 deletions(-) create mode 100644 application/controllers/projects/EmployeehoursController.php create mode 100644 application/models/eloquent/Employeehour.php create mode 100644 application/models/eloquent/Hourtype.php create mode 100644 application/views/pages/employeehours_view.php create mode 100644 public/js/lib/dataservices/employeehoursDataService.js create mode 100644 public/js/lib/modules/projects/employeehoursModule.js diff --git a/application/controllers/projects/EmployeehoursController.php b/application/controllers/projects/EmployeehoursController.php new file mode 100644 index 0000000..f95462f --- /dev/null +++ b/application/controllers/projects/EmployeehoursController.php @@ -0,0 +1,62 @@ +load->model( $models ); + $this->load->library( $libraries ); + } + + public function getEmployeehours( $month, $year ) + { + $employeehours = Employeehour::getEmployeehours( $month, $year ); + + $this->json( $employeehours ); + } + + public function getHourtypes() + { + $hourtypes = Hourtype::all(); + + $this->json( $hourtypes ); + } + + public function saveEmployeehour() + { + //TODO: validatie inbouwen + $data = $this->input->post(); + + $employeehourID = $data['id']; + unset( $data['id'] ); + + $data['hourdate'] = date2mysql( $data['hourdate'] ); + + $employeehourID = Employeehour::saveEmployeehour( $employeehourID, $data ); + + $this->json( ['employeehourID' => $employeehourID] ); + } + + public function removeEmployeehour( $employeehourID ) + { + //TODO:check op delete + Employeehour::whereId( $employeehourID )->delete(); + + $this->json( ['result' => TRUE] ); + } + +} \ No newline at end of file diff --git a/application/controllers/projects/ProjectsController.php b/application/controllers/projects/ProjectsController.php index 9b5ce5a..bd19ecf 100644 --- a/application/controllers/projects/ProjectsController.php +++ b/application/controllers/projects/ProjectsController.php @@ -119,8 +119,6 @@ class ProjectsController extends MY_Controller { $projectemployeeID = $projectemployee['id']; unset( $projectemployee['id'] ); - $projectemployee['startdate'] = date2mysql( $projectemployee['startdate'] ); - Projectemployee::saveProjectemployee( $projectemployeeID, $projectemployee ); $this->json( ['success' => TRUE] ); diff --git a/application/libraries/validation/inputValidations/ProjectcostValidation.php b/application/libraries/validation/inputValidations/ProjectcostValidation.php index f7ea3da..791c619 100644 --- a/application/libraries/validation/inputValidations/ProjectcostValidation.php +++ b/application/libraries/validation/inputValidations/ProjectcostValidation.php @@ -28,6 +28,10 @@ class ProjectcostValidation extends BaseValidation { 'costs' => [ 'validations' => 'number', 'fieldname' => 'kosten' + ], + 'payed' => [ + 'validations' => 'number', + 'fieldname' => 'betaald' ] ]; diff --git a/application/models/eloquent/Employeehour.php b/application/models/eloquent/Employeehour.php new file mode 100644 index 0000000..6ebcc25 --- /dev/null +++ b/application/models/eloquent/Employeehour.php @@ -0,0 +1,52 @@ +belongsTo( 'User', 'employee_id' ); + } + + public function hourtype() + { + return $this->belongsTo( 'Hourtype' ); + } + + public static function getEmployeehours( $month, $year ) + { + $employeehours = Employeehour::whereRaw( "MONTH(hourdate) ={$month} AND YEAR(hourdate) = {$year}" ) + ->with( [ + 'user' => function ( $q ) { + $q->selectRaw( "id, CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname" ); + }] ) + ->with( 'hourtype' ) + ->get(); + + return $employeehours; + } + + public static function saveEmployeehour( $employeehourID, $data ) + { + if ( $employeehourID == 0 ) + { + $employeehour = Employeehour::create( $data ); + + $employeehourID = $employeehour->id; + } + else + { + Employeehour::whereId( $employeehourID )->update( $data ); + } + + return $employeehourID; + } +} \ No newline at end of file diff --git a/application/models/eloquent/Hourtype.php b/application/models/eloquent/Hourtype.php new file mode 100644 index 0000000..7f45af2 --- /dev/null +++ b/application/models/eloquent/Hourtype.php @@ -0,0 +1,18 @@ +hasMany( 'Employeehour' ); + } +} \ No newline at end of file diff --git a/application/views/modals/external_modal.php b/application/views/modals/external_modal.php index 91f2727..2c994a7 100644 --- a/application/views/modals/external_modal.php +++ b/application/views/modals/external_modal.php @@ -150,6 +150,22 @@ +
+ +
+
+ + + + +
+
+
\ No newline at end of file diff --git a/application/views/modals/project_modal.php b/application/views/modals/project_modal.php index 6551879..3f444ea 100644 --- a/application/views/modals/project_modal.php +++ b/application/views/modals/project_modal.php @@ -1,7 +1,4 @@
-