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 @@
+ BTW percentage
+
+
+
+
te besteden uren
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 @@
-
-
-
-
-
-
-
-
- |
-
-
-
-
-
\ 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/_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" ) );
-
}