From 957bca2e9d7837f7e000a6223d5be448ef7b0ab3 Mon Sep 17 00:00:00 2001 From: Theo Weijmer Date: Wed, 14 Feb 2018 11:03:42 +0100 Subject: [PATCH] Diverse aanpassingen nav gesprek met Peter --- .../controllers/beheer/UsersController.php | 13 +++++-- .../projects/ProjectsController.php | 6 ++- .../libraries/validation/Validation.php | 2 +- .../inputValidations/UserValidation.php | 4 ++ .../views/modals/partials/_invoices.php | 2 +- .../views/modals/partials/_projectcosts.php | 2 +- .../modals/partials/_projectdashboard.php | 28 +++++++++++++- .../modals/partials/_projectemployees.php | 2 +- application/views/modals/project_modal.php | 6 +-- application/views/modals/user_modal.php | 17 +++++++++ public/js/lib/modals/projectModal.js | 38 +++++++++++++++++-- public/js/lib/modals/userModal.js | 17 +++++++-- 12 files changed, 117 insertions(+), 20 deletions(-) diff --git a/application/controllers/beheer/UsersController.php b/application/controllers/beheer/UsersController.php index 0cd4b81..0528990 100644 --- a/application/controllers/beheer/UsersController.php +++ b/application/controllers/beheer/UsersController.php @@ -1,19 +1,19 @@ json( $users ); } + public function getUser( $userID ) + { + $user = User::find( $userID ); + + $this->json( $user ); + } + public function getUniqueprojectEmployees() { $projectEmployees = User::getUniqueProjectUsers(); diff --git a/application/controllers/projects/ProjectsController.php b/application/controllers/projects/ProjectsController.php index bd19ecf..c1e0b2e 100644 --- a/application/controllers/projects/ProjectsController.php +++ b/application/controllers/projects/ProjectsController.php @@ -75,7 +75,11 @@ class ProjectsController extends MY_Controller { Offer::whereId( $offerID )->update( ['project_id' => $project->id] ); - Projectemployee::create( ['project_id' => $project->id, 'user_id' => $offer->offerleader_id] ); + Projectemployee::create( [ + 'project_id' => $project->id, + 'user_id' => $offer->offerleader_id, + 'tarif' => User::find( $offer->offerleader_id )->hourlyrate + ] ); $this->json( ['success' => TRUE, 'projectnumber' => $projectnumber] ); } diff --git a/application/libraries/validation/Validation.php b/application/libraries/validation/Validation.php index 244082e..bbe8571 100644 --- a/application/libraries/validation/Validation.php +++ b/application/libraries/validation/Validation.php @@ -145,7 +145,7 @@ class validation { public function checkDecimal() { - $value = (bool) preg_match( '/^[\-+]?[0-9]+\.[0-9]+$/', $this->fieldValue ); + $value = is_numeric( $this->fieldValue ); if ( ! $value ) $this->errorMessages[] = 'alleen getallen toegestaan'; } diff --git a/application/libraries/validation/inputValidations/UserValidation.php b/application/libraries/validation/inputValidations/UserValidation.php index dd35940..52d99e0 100644 --- a/application/libraries/validation/inputValidations/UserValidation.php +++ b/application/libraries/validation/inputValidations/UserValidation.php @@ -32,6 +32,10 @@ class UserValidation extends BaseValidation { 'fieldname' => 'username', 'model' => 'User_model', 'field' => 'username' + ], + 'hourlyrate' =>[ + 'validations' => 'decimal', + 'fieldname' => 'uurtarief' ] ]; diff --git a/application/views/modals/partials/_invoices.php b/application/views/modals/partials/_invoices.php index 10b7a5a..3491265 100644 --- a/application/views/modals/partials/_invoices.php +++ b/application/views/modals/partials/_invoices.php @@ -1,7 +1,7 @@

- facturen + uitgaande facturen

diff --git a/application/views/modals/partials/_projectcosts.php b/application/views/modals/partials/_projectcosts.php index 8a9af7e..a8f3451 100644 --- a/application/views/modals/partials/_projectcosts.php +++ b/application/views/modals/partials/_projectcosts.php @@ -1,7 +1,7 @@

- kosten + inkomende facturen

diff --git a/application/views/modals/partials/_projectdashboard.php b/application/views/modals/partials/_projectdashboard.php index 24ca46c..b83a9fd 100644 --- a/application/views/modals/partials/_projectdashboard.php +++ b/application/views/modals/partials/_projectdashboard.php @@ -1,4 +1,4 @@ -
+
@@ -73,6 +73,32 @@
+
+
+
+ +
+ +
+
+
+
+
+

eigenomzet: + +

+
+
+
+
+

overige omzet: + +

+
+
+

te besteden uren :

diff --git a/application/views/modals/partials/_projectemployees.php b/application/views/modals/partials/_projectemployees.php index c723970..b9d4449 100644 --- a/application/views/modals/partials/_projectemployees.php +++ b/application/views/modals/partials/_projectemployees.php @@ -32,7 +32,7 @@ optionsValue:'id', value:employeeID, optionsCaption:'naam', - event:{change:$root.saveProjectemployee}, + event:{change:$root.changeProjectemployee}, visible:inEdit"> diff --git a/application/views/modals/project_modal.php b/application/views/modals/project_modal.php index 3f444ea..43b01cd 100644 --- a/application/views/modals/project_modal.php +++ b/application/views/modals/project_modal.php @@ -52,9 +52,9 @@
-
- load->view( 'modals/partials/_projectoffers' ); ?> -
+ +load->view( 'modals/partials/_projectoffers' ); ?> +
load->view( 'modals/partials/_projectcosts' ); ?>
diff --git a/application/views/modals/user_modal.php b/application/views/modals/user_modal.php index d8549c7..d328f4f 100644 --- a/application/views/modals/user_modal.php +++ b/application/views/modals/user_modal.php @@ -111,6 +111,23 @@
+
+ +
+
+ + + + +
+
+
 
diff --git a/public/js/lib/modals/projectModal.js b/public/js/lib/modals/projectModal.js index f921f30..ead4353 100644 --- a/public/js/lib/modals/projectModal.js +++ b/public/js/lib/modals/projectModal.js @@ -32,7 +32,11 @@ $( function () { archive : ko.observable( false ), startdate : ko.observable( null ), enddate : ko.observable( null ), + projectname : ko.observable(), busy : false, + ownRevenue : ko.observable(), + otherRevenue : ko.observable(), + projectname : ko.observable(), init: function () { var vm = dbo.editProjectModal; @@ -251,6 +255,17 @@ $( function () { vm.init(); }, + saveProjectname: function () { + var vm = dbo.editProjectModal; + if ( timeout ) { + clearTimeout( timeout ); + timeout = null; + } + timeout = setTimeout( function () { + vm.saveProject(); + }, 700 ); + }, + saveProject: function () { var vm = dbo.editProjectModal; @@ -260,6 +275,7 @@ $( function () { id : vm.projectID, customer_id : vm.customerID(), projectleader_id: vm.projectleaderID(), + projectname : vm.projectname(), startdate : vm.startdate(), enddate : vm.enddate() } @@ -269,9 +285,19 @@ $( function () { } ); }, - saveProjectemployee: function () { + changeProjectemployee: function () { var vm = dbo.editProjectModal; var self = this; + dbo.userDataService.getUser( this.employeeID(), function ( data ) { + self.tarif( data.hourlyrate ); + + vm.saveProjectemployee( self ); + } ); + }, + + saveProjectemployee: function ( self = false ) { + var vm = dbo.editProjectModal; + if ( !self ) self = this; $.each( vm.users(), function ( i, p ) { if ( self.employeeID == p.id ) self.fullname( p.fullname ); @@ -517,6 +543,7 @@ $( function () { vm.startdate( dbo.helpers.mysql2date( data.startdate ) ); vm.enddate( dbo.helpers.mysql2date( data.enddate ) ); vm.projectnumber( data.projectnumber ); + vm.projectname( data.projectname ); vm.projectEmployees.removeAll(); vm.projecthours.removeAll(); @@ -537,8 +564,11 @@ $( function () { } ); vm.offers.removeAll(); - $.each( data.offers, function ( i, p ) { + if ( i == 0 ) { + vm.ownRevenue( p.own_revenue ); + vm.otherRevenue( p.other_revenue ); + } vm.offers.push( new dbo.offersService.Offer( p ) ); } ); @@ -560,8 +590,8 @@ $( function () { self.id = data.id; self.employeeID = ko.observable( data.user_id ); self.fullname = ko.observable( data.user ? data.user.fullname : '#NB' ); - self.tarif = ko.observable( data.tarif ? data.tarif.toString().replace( '.', ',' ) : 0 ); - self.budget = ko.observable( data.budget ? data.budget.toString().replace( '.', ',' ) : 0 ); + self.tarif = ko.observable( data.tarif ? data.tarif : 0 ); + self.budget = ko.observable( data.budget ? data.budget : 0 ); self.inEdit = ko.observable( sessionStorage.editEmployee == data.id ); }, diff --git a/public/js/lib/modals/userModal.js b/public/js/lib/modals/userModal.js index c67fd27..95d9d8d 100644 --- a/public/js/lib/modals/userModal.js +++ b/public/js/lib/modals/userModal.js @@ -16,7 +16,9 @@ $( function () { username : ko.observable(), email : ko.observable(), role : ko.observable(), - callback : null, + hourlyRate: ko.observable(), + + callback: null, init: function () { var vm = dbo.editUserModal; @@ -53,7 +55,8 @@ $( function () { lastname : vm.lastname(), username : vm.username(), email : vm.email(), - role : vm.role() + role : vm.role(), + hourlyrate: vm.hourlyRate() } dbo.userDataService.saveUser( submitDATA, function ( data ) { @@ -62,10 +65,10 @@ $( function () { title : 'gebruiker aangemaakt', message : 'gebuiker is succesvol opgeslagen', modalClass: 'modal-success' - }, function(){ + }, function () { vm.hideUserModal(); - if( typeof(vm.callback) == 'function') vm.callback(); + if ( typeof(vm.callback) == 'function' ) vm.callback(); } ); return; @@ -97,6 +100,7 @@ $( function () { vm.username( user.username || '' ); vm.email( user.email || '' ); vm.role( user.role || null ); + vm.hourlyRate( user.hourlyrate || 0 ); }, showUserModal: function () { @@ -105,6 +109,11 @@ $( function () { hideUserModal: function () { $( "#user-modal" ).modal( 'hide' ); + }, + + validateNumber: function ( field ) { + var vm = dbo.editUserModal; + vm[field]( dbo.helpers.validateNumber( vm[field](), true ) ); } };