From c7846f9a80cab260682e4d2fc873938ea93cc905 Mon Sep 17 00:00:00 2001 From: Theo Weijmer Date: Sun, 6 May 2018 20:39:59 +0200 Subject: [PATCH] Diversen nav opmerkingen --- .../controllers/beheer/vatController.php | 10 +++- .../projects/ProjectsController.php | 2 - application/controllers/utils/FileUpload.php | 9 ++-- application/core/MY_Controller.php | 2 +- application/models/eloquent/Project.php | 6 +++ .../eloquent/queries/ReservationTotals.php | 7 ++- .../modals/partials/_projectdashboard.php | 11 ++++ .../modals/partials/_projectemployees.php | 8 +-- .../views/modals/partials/_projectfiles.php | 21 ++------ application/views/modals/project_modal.php | 53 +++++++++---------- application/views/pages/vat_view.php | 11 ++-- public/css/main.css | 6 ++- public/js/lib/dataservices/vatDataService.js | 4 ++ public/js/lib/modals/projectModal.js | 27 +++++++--- public/js/lib/modules/beheer/vatModule.js | 20 +++++-- public/js/lib/modules/reports/reservations.js | 11 ++-- 16 files changed, 126 insertions(+), 82 deletions(-) diff --git a/application/controllers/beheer/vatController.php b/application/controllers/beheer/vatController.php index df9f176..eb45a01 100644 --- a/application/controllers/beheer/vatController.php +++ b/application/controllers/beheer/vatController.php @@ -31,11 +31,17 @@ class vatController extends MY_Controller { { $vats = Vat::getVats( $archive ); - $this->json($vats); + $this->json( $vats ); } public function addVat() { - Vat::create([]); + Vat::create( [] ); + } + + public function saveVat( $vatID ) + { + $vatrate = $this->input->post( 'vatrate' ); + Vat::whereId( $vatID )->update( ['vatrate' => $vatrate] ); } } \ No newline at end of file diff --git a/application/controllers/projects/ProjectsController.php b/application/controllers/projects/ProjectsController.php index 59844e7..ccac7d3 100644 --- a/application/controllers/projects/ProjectsController.php +++ b/application/controllers/projects/ProjectsController.php @@ -41,8 +41,6 @@ class ProjectsController extends MY_Controller { $project->invoiceDetails = $this->Invoices_model->getOutstandingPerProject( $project->id ); - $project->vatrate = Vat::getCurrentVat(); - $this->json( $project ); } diff --git a/application/controllers/utils/FileUpload.php b/application/controllers/utils/FileUpload.php index a328097..54962f9 100644 --- a/application/controllers/utils/FileUpload.php +++ b/application/controllers/utils/FileUpload.php @@ -23,7 +23,7 @@ class FileUpload extends MY_Controller { $this->load->library( $libraries ); } - public function upload( $foreignID, $tablename ) + public function upload( $foreignID ) { $config['upload_path'] = MYROOTPATH . 'documents/temp'; $config['allowed_types'] = '*'; @@ -43,7 +43,7 @@ class FileUpload extends MY_Controller { $this->setStoragename(); - $this->persistDocument( $data['upload_data'], $foreignID, $tablename ); + $this->persistDocument( $data['upload_data'], $foreignID ); $this->renameDocument( $data['upload_data']['full_path'] ); } @@ -55,15 +55,14 @@ class FileUpload extends MY_Controller { $this->storagename = sha1( random_string( 'alnum', 16 ) ); } - private function persistDocument( $data, $foreignID, $tablename ) + private function persistDocument( $data, $foreignID ) { $file = [ 'storagename' => $this->storagename, 'originalname' => $data['file_name'], 'user_id' => USERID, 'uploaddate' => date( 'Y-m-d H:i:s' ), - 'foreign_id' => $foreignID, - 'foreign_table' => $tablename + 'foreign_id' => $foreignID ]; Document::create( $file ); diff --git a/application/core/MY_Controller.php b/application/core/MY_Controller.php index 0659722..8a8f6ea 100644 --- a/application/core/MY_Controller.php +++ b/application/core/MY_Controller.php @@ -16,7 +16,7 @@ class MY_Controller extends CI_Controller { { parent::__construct(); - $this->version = '0.10.AA'; + $this->version = '0.02.00'; $this->load->library( 'beheer/session/RetrieveUserSession' ); diff --git a/application/models/eloquent/Project.php b/application/models/eloquent/Project.php index 39d9362..47862ed 100644 --- a/application/models/eloquent/Project.php +++ b/application/models/eloquent/Project.php @@ -41,6 +41,11 @@ class Project extends BaseModel { return $this->hasMany( 'Reservation' ); } + public function vat() + { + return $this->belongsTo('Vat'); + } + public function projectleader() { return $this->belongsTo( 'User', 'projectleader_id' ); @@ -112,6 +117,7 @@ class Project extends BaseModel { ->with( 'projectcosts.external' ) ->with( 'invoices.payments' ) ->with( 'invoices.vat' ) + ->with( 'vat' ) ->with( 'customer' ); return $project; diff --git a/application/models/eloquent/queries/ReservationTotals.php b/application/models/eloquent/queries/ReservationTotals.php index 7c7fd93..b1fb1f5 100644 --- a/application/models/eloquent/queries/ReservationTotals.php +++ b/application/models/eloquent/queries/ReservationTotals.php @@ -14,7 +14,12 @@ class ReservationTotals { $sql = "SELECT Q5.project_id AS projectID, external_id AS externalID, costs, reservation, payed, (reservation - payed) AS saldo, (costs - payed) AS saldoToPay, PRJ.projectnumber, EXT.contactperson, - ROUND(( (other_revenue * (100 + (SELECT vatrate from vats where active='T' LIMIT 1))) / 100 ), 0) other_revenue + ROUND(( (other_revenue * (100 + ( + SELECT vatrate + FROM vats VTS + JOIN projects P + ON VTS.id = P.vat_id + WHERE P.id = PRJ.id LIMIT 1))) / 100 ), 0) other_revenue FROM ( SELECT COALESCE(reservation, 0) AS reservation, costs, payed, Q2.external_id, Q2.project_id FROM ( diff --git a/application/views/modals/partials/_projectdashboard.php b/application/views/modals/partials/_projectdashboard.php index d931468..07bf456 100644 --- a/application/views/modals/partials/_projectdashboard.php +++ b/application/views/modals/partials/_projectdashboard.php @@ -75,6 +75,17 @@
+ +
+ +
+

diff --git a/application/views/modals/partials/_projectemployees.php b/application/views/modals/partials/_projectemployees.php index b9d4449..8384d3a 100644 --- a/application/views/modals/partials/_projectemployees.php +++ b/application/views/modals/partials/_projectemployees.php @@ -7,16 +7,16 @@
- - - - diff --git a/application/views/modals/partials/_projectfiles.php b/application/views/modals/partials/_projectfiles.php index f70bb43..e2131e9 100644 --- a/application/views/modals/partials/_projectfiles.php +++ b/application/views/modals/partials/_projectfiles.php @@ -1,4 +1,4 @@ -
+
+ naam + tarief + budget +   
@@ -8,8 +8,8 @@ - - + + @@ -25,6 +25,7 @@ +
 
@@ -32,19 +33,5 @@
-
-

- - - - -
- - | - - -
-
-
\ No newline at end of file diff --git a/application/views/modals/project_modal.php b/application/views/modals/project_modal.php index 06f0b0b..697ef56 100644 --- a/application/views/modals/project_modal.php +++ b/application/views/modals/project_modal.php @@ -45,39 +45,36 @@ sluit -
- load->view( 'modals/partials/_dashboard' ); ?> -
-
- load->view( 'modals/partials/_financials' ); ?> -
-
-
-
- load->view( 'modals/partials/_projectemployees' ); ?> -
-
- load->view( 'modals/partials/_hours' ); ?> +
+
+ load->view( 'modals/partials/_dashboard' ); ?> +
+
+ load->view( 'modals/partials/_financials' ); ?> +
+
+
+
+ load->view( 'modals/partials/_projectemployees' ); ?> +
+
+ load->view( 'modals/partials/_hours' ); ?> +
-
-
-
-
+
+
load->view( 'modals/partials/_projectfiles' ); ?>
-
- load->view( 'modals/partials/_projectcomments' ); ?> -
diff --git a/application/views/pages/vat_view.php b/application/views/pages/vat_view.php index 7846466..729ce79 100644 --- a/application/views/pages/vat_view.php +++ b/application/views/pages/vat_view.php @@ -1,6 +1,6 @@
-
+
@@ -11,10 +11,15 @@ diff --git a/public/css/main.css b/public/css/main.css index 76963a1..d5d26bf 100644 --- a/public/css/main.css +++ b/public/css/main.css @@ -215,7 +215,7 @@ th.focus-green{ } .percentage-sign { position: absolute; - right: 15px; + right: 12px; z-index: 10; top: 7px; } @@ -382,3 +382,7 @@ th.focus-green{ color: red; } +#project-scroller { + overflow: auto; +} + diff --git a/public/js/lib/dataservices/vatDataService.js b/public/js/lib/dataservices/vatDataService.js index d2f22b5..a172f42 100644 --- a/public/js/lib/dataservices/vatDataService.js +++ b/public/js/lib/dataservices/vatDataService.js @@ -19,6 +19,10 @@ dbo.vatDataService = { .done( function () { callback(); } ); + }, + + saveVat: function ( vatID, vatrate ) { + $.post( 'index.php/beheer/vatController/saveVat/' + vatID, {vatrate: vatrate} ); } } diff --git a/public/js/lib/modals/projectModal.js b/public/js/lib/modals/projectModal.js index 0005736..40b611c 100644 --- a/public/js/lib/modals/projectModal.js +++ b/public/js/lib/modals/projectModal.js @@ -34,6 +34,7 @@ $( function () { archive : ko.observable( false ), startdate : ko.observable( null ), enddate : ko.observable( null ), + vat_id : ko.observable(), projectname : ko.observable(), busy : false, ownRevenue : ko.observable(), @@ -58,6 +59,10 @@ $( function () { init: function () { var vm = dbo.editProjectModal; + vm.busy = true; + + $( "#project-scroller" ).height( $( window ).height() - 100 ); + dbo.customerDataService.getAllCustomers( 'F', function ( data ) { vm.customers( data ); dbo.userDataService.getAllUsers( 'F', function ( data ) { @@ -71,6 +76,8 @@ $( function () { vm.refreshProject(); vm.activeTab( 'DASHBOARD' ); + + vm.busy = false; } ); } ); } ); @@ -287,6 +294,7 @@ $( function () { vm.callback = callback; dbo.projectDataService.addProject( function ( data ) { + console.log( data ); vm.projectID = data; vm.showProject( true ); @@ -365,11 +373,13 @@ $( function () { projectleader_id: vm.projectleaderID(), projectname : vm.projectname(), startdate : vm.startdate(), - enddate : vm.enddate() + enddate : vm.enddate(), + vat_id : vm.vat_id() } dbo.projectDataService.saveProject( vm.projectID, submitDATA, function ( data ) { - vm.projectID = data; + vm.refreshProject(); +// vm.projectID = data.projectID; } ); }, @@ -725,7 +735,7 @@ $( function () { vm.busy = true; dbo.projectDataService.getProject( vm.projectID, function ( data ) { - var totalRevenuesIncl = Math.round( (data.invoiceDetails.totalrevenue * (data.vatrate + 100)) / 100 ); + var totalRevenuesIncl = Math.round( (data.invoiceDetails.totalrevenue * (Number( data.vat.vatrate ) + 100)) / 100 ); vm.id = data.id vm.projectleaderID( data.projectleader_id ); @@ -734,13 +744,14 @@ $( function () { vm.enddate( dbo.helpers.mysql2date( data.enddate ) ); vm.projectnumber( data.projectnumber ); vm.projectname( data.projectname ); + vm.vat_id( data.vat_id ); vm.totalRevenues( dbo.helpers.numberWithPoints( Math.round( Number( data.invoiceDetails.totalrevenue ) ) ) ); - vm.totalRevenuesIncl( dbo.helpers.numberWithPoints( totalRevenuesIncl )); + vm.totalRevenuesIncl( dbo.helpers.numberWithPoints( totalRevenuesIncl ) ); vm.totalInvoiced( dbo.helpers.numberWithPoints( Math.round( Number( data.invoiceDetails.totalinvoiced ) ) ) ); vm.outstanding( dbo.helpers.numberWithPoints( Math.round( Number( totalRevenuesIncl ) ) - Math.round( Number( data.invoiceDetails.totalinvoiced ) ) ) ); vm.outstandingInvoices( dbo.helpers.numberWithPoints( Math.round( Number( data.invoiceDetails.totalinvoiced ) ) - Math.round( Number( data.invoiceDetails.payed ) ) ) ); vm.payed( dbo.helpers.numberWithPoints( Math.round( Number( data.invoiceDetails.payed ) ) ) ); - vm.toInvoice = Math.round( totalRevenuesIncl - Number( data.invoiceDetails.totalinvoiced ) ); + vm.toInvoice = Math.round( totalRevenuesIncl - Number( data.invoiceDetails.totalinvoiced ) ); vm.projectEmployees.removeAll(); vm.projecthours.removeAll(); @@ -798,10 +809,10 @@ $( function () { toForecasting: function () { var vm = dbo.editProjectModal; - vm.totalForecast(0); + vm.totalForecast( 0 ); vm.toForecast( vm.toInvoice ); _.each( vm.forecasts(), function ( p ) { - vm.totalForecast( vm.totalForecast() + Number( p.forecastamount() )); + vm.totalForecast( vm.totalForecast() + Number( p.forecastamount() ) ); vm.toForecast( vm.toForecast() - Number( p.forecastamount() ) ); } ); vm.toForecast( dbo.helpers.numberWithPoints( Number( vm.toForecast() ) ) ); @@ -978,7 +989,7 @@ $( function () { refreshDocuments: function () { var vm = dbo.editProjectModal; - + console.log( vm.projectID ); dbo.documentsDataService.getdocuments( vm.projectID, function ( data ) { vm.documents.removeAll(); diff --git a/public/js/lib/modules/beheer/vatModule.js b/public/js/lib/modules/beheer/vatModule.js index 832a502..f82421c 100644 --- a/public/js/lib/modules/beheer/vatModule.js +++ b/public/js/lib/modules/beheer/vatModule.js @@ -7,6 +7,7 @@ dbo.vatInit = function () { + var timeout; if ( dbo.vatModel !== undefined ) { @@ -35,7 +36,7 @@ dbo.vatInit = function () { vm.vats.removeAll(); _.each( data, function ( p ) { - vm.vats( new vm.Vat( p ) ); + vm.vats.push( new vm.Vat( p ) ); } ) } ); }, @@ -44,13 +45,26 @@ dbo.vatInit = function () { this.inEdit( !this.inEdit() ); }, + validateNumber: function ( field ) { + var self = this; + + self[field]( dbo.helpers.validateNumber( self[field](), true ) ); + if ( timeout ) { + clearTimeout( timeout ); + timeout = null; + } + timeout = setTimeout( function () { + dbo.vatDataService.saveVat( self.id, self.vatrate() ); + }, 700 ); + }, + Vat: function ( data, inEdit = false ) { this.id = data.id; - this.vatrate = ko.observable( data.vatrate ); + this.vatrate = ko.observable( data.vatrate || 0 ); this.inEdit = ko.observable( inEdit ); }, - removeVat : function(){ + removeVat: function () { } } diff --git a/public/js/lib/modules/reports/reservations.js b/public/js/lib/modules/reports/reservations.js index db40550..2ba6607 100644 --- a/public/js/lib/modules/reports/reservations.js +++ b/public/js/lib/modules/reports/reservations.js @@ -96,17 +96,14 @@ dbo.reservationsInit = function () { self.payed = dbo.helpers.numberWithPoints( data.payed ); self.saldo = dbo.helpers.numberWithPoints( data.saldo ); self.saldoToPay = dbo.helpers.numberWithPoints( data.saldoToPay ); - } } + + dbo.reservationsModel.init(); + + ko.applyBindings( dbo.reservationsModel, document.getElementById( "RESERVATIONS" ) ); } - - dbo.reservationsModel.init(); - - ko.applyBindings( - dbo.reservationsModel, document.getElementById( "RESERVATIONS" ) ); - }
- +
+ + % +
-