diff --git a/application/views/pages/projects_view.php b/application/views/pages/projects_view.php
index 2c10887..ce939b3 100644
--- a/application/views/pages/projects_view.php
+++ b/application/views/pages/projects_view.php
@@ -1 +1,90 @@
-
projects
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+ |
+
+ |
+
+
+ |
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/application/views/partials/_js.php b/application/views/partials/_js.php
index a297e05..2294d63 100644
--- a/application/views/partials/_js.php
+++ b/application/views/partials/_js.php
@@ -65,10 +65,12 @@
+
+
@@ -80,4 +82,5 @@
+
\ No newline at end of file
diff --git a/application/views/partials/_modals.php b/application/views/partials/_modals.php
index 5dd12dd..4c64e81 100644
--- a/application/views/partials/_modals.php
+++ b/application/views/partials/_modals.php
@@ -4,6 +4,7 @@ $this->load->view('modals/user_modal');
$this->load->view('modals/customer_modal');
$this->load->view('modals/external_modal');
$this->load->view('modals/offer_modal');
+$this->load->view('modals/project_modal');
$this->load->view('modals/comment_modal');
$this->load->view('specials/tellme_modal');
diff --git a/public/js/lib/dataservices/projectsDataservice.js b/public/js/lib/dataservices/projectsDataservice.js
new file mode 100644
index 0000000..64c4874
--- /dev/null
+++ b/public/js/lib/dataservices/projectsDataservice.js
@@ -0,0 +1,47 @@
+/**
+ * Created by Pensare Software.
+ * Project: Theo Weijmer
+ * Date: 25/12/2017
+ * Time: 09:50
+ */
+
+dbo.projectDataService = {
+
+ getAllProjects: function ( archive = 'F', callback ) {
+ $.getJSON( 'index.php/projects/projectsController/getAllProjects/' + archive )
+ .done( function ( data ) {
+ callback( data );
+ } );
+ },
+
+ getProject: function ( userID, callback ) {
+ $.getJSON( 'index.php/projects/projectsController/getProject/' + userID )
+ .done( function ( data ) {
+ callback( data );
+ } );
+ },
+
+ saveProject: function ( submitDATA, callback ) {
+ $.post( 'index.php/projects/projectsController/saveProject', submitDATA, function () {
+ }, 'json' )
+ .done( function ( data ) {
+ callback( data );
+ } );
+ },
+
+ archiveProject: function ( userID, status, callback ) {
+ $.get( 'index.php/projects/projectsController/archiveProject/' + userID + '/' + status )
+ .done( function () {
+ callback();
+ } );
+ },
+
+ removeProject: function ( userID, callback ) {
+ $.getJSON( 'index.php/projects/projectsController/removeProject/' + userID )
+ .done( function ( data ) {
+ callback( data );
+ } );
+ }
+
+
+}
\ No newline at end of file
diff --git a/public/js/lib/modules/modals/offerModal.js b/public/js/lib/modules/modals/offerModal.js
index da774cb..0b536a1 100644
--- a/public/js/lib/modules/modals/offerModal.js
+++ b/public/js/lib/modules/modals/offerModal.js
@@ -10,17 +10,24 @@ $( function () {
id : null,
projects : ko.observableArray( [] ),
customers : ko.observableArray( [] ),
+ users : ko.observableArray( [] ),
startdate : ko.observable(),
acceptance_chance: ko.observable(),
accepteddate : ko.observable(),
rejectdate : ko.observable(),
customer_id : ko.observable(),
project_id : ko.observable(),
+ offernumber : ko.observable(),
+ offerleader_id : ko.observable(),
+ own_revenue : ko.observable(),
+ other_revenue : ko.observable(),
init: function () {
var vm = dbo.editOfferModal;
dbo.editOfferModal.refreshCustomers();
+
+ dbo.editOfferModal.refreshUsers();
},
newEditOffer: function ( offer, callback ) {
@@ -45,6 +52,10 @@ $( function () {
id : vm.id,
project_id : vm.project_id(),
customer_id : vm.customer_id(),
+ offerleader_id : vm.offerleader_id(),
+ offernumber : vm.offernumber(),
+ own_revenue : vm.own_revenue(),
+ other_revenue : vm.other_revenue(),
startdate : vm.startdate(),
acceptance_chance: vm.acceptance_chance(),
accepteddate : vm.accepteddate(),
@@ -87,10 +98,14 @@ $( function () {
vm.id = offer.id || 0;
vm.customer_id( offer.customer_id || null );
vm.project_id( offer.project_id || null );
+ vm.offerleader_id( offer.offerleader_id || null );
+ vm.offernumber( offer.offernumber || null );
vm.startdate( offer.startdate || null );
vm.acceptance_chance( offer.acceptance_chance || 0 );
vm.accepteddate( offer.accepteddate || null );
vm.rejectdate( offer.rejectdate || null );
+ vm.own_revenue( offer.own_revenue || 0 );
+ vm.other_revenue( offer.other_revenue || 0 )
},
showOfferModal: function () {
@@ -113,6 +128,14 @@ $( function () {
} );
},
+ addUser:function(){
+ var vm = dbo.editOfferModal;
+ dbo.editUserModal.newEditUser( false, function () {
+ vm.refreshUsers();
+ } );
+
+ },
+
refreshCustomers: function () {
var vm = dbo.editOfferModal;
dbo.customerDataService.getAllCustomers( 'F', function ( data ) {
@@ -120,6 +143,13 @@ $( function () {
} );
},
+ refreshUsers: function () {
+ var vm = dbo.editOfferModal;
+ dbo.userDataService.getAllUsers( 'F', function ( data ) {
+ vm.users( data );
+ } );
+ },
+
resetDate: function ( field ) {
var vm = dbo.editOfferModal;
@@ -142,7 +172,9 @@ $( function () {
}, dbo.editOfferModal );
dbo.editOfferModal.formValid = ko.pureComputed( function () {
+ if ( !this.offernumber() ) return false;
if ( !this.customer_id() ) return false;
+ if ( !this.offerleader_id() ) return false;
if ( !this.offerDateValid() ) return false;
return true;
diff --git a/public/js/lib/modules/modals/projectModal.js b/public/js/lib/modules/modals/projectModal.js
new file mode 100644
index 0000000..d0acf6e
--- /dev/null
+++ b/public/js/lib/modules/modals/projectModal.js
@@ -0,0 +1,14 @@
+/**
+ * Created by Pensare Software.
+ * Offer: Theo Weijmer
+ * Date: 25/12/2017
+ * Time: 17:32
+ */
+
+$( function () {
+ dbo.editOfferModal = {
+ };
+
+ ko.applyBindings( dbo.editOfferModal, document.getElementById( 'project-modal' ) );
+
+} );
\ No newline at end of file
diff --git a/public/js/lib/modules/projects/offersModule.js b/public/js/lib/modules/projects/offersModule.js
index 0266e0c..f266572 100644
--- a/public/js/lib/modules/projects/offersModule.js
+++ b/public/js/lib/modules/projects/offersModule.js
@@ -207,6 +207,7 @@ dbo.offersInit = function () {
Offer: function ( data ) {
this.id = data.id;
+ this.offernumber = data.offernumber;
this.acceptance_chance = data.acceptance_chance;
this.projectNumber = data.project ? data.project.projectnumber : null;
this.customerName = data.customer ? data.customer.name : null;
diff --git a/public/js/lib/modules/projects/projectsModule.js b/public/js/lib/modules/projects/projectsModule.js
new file mode 100644
index 0000000..8a27af7
--- /dev/null
+++ b/public/js/lib/modules/projects/projectsModule.js
@@ -0,0 +1,129 @@
+/**
+ * Created by Pensare Software.
+ * User: Theo Weijmer
+ * Date: 05/01/2018
+ * Time: 15:54
+ */
+
+
+dbo.projectsInit = function () {
+
+ if ( dbo.projectsModel !== undefined ) {
+
+ } else {
+ dbo.projectsModel = {
+
+ projects : ko.observableArray( [] ),
+ project : ko.observable(),
+ archive : ko.observable( false ),
+ selectedRowID: ko.observable(),
+
+ init: function () {
+ var vm = dbo.projectsModel;
+
+ vm.refreshProjects();
+ },
+
+ newProject: function () {
+ var vm = dbo.projectsModel;
+ dbo.editProjectModal.newEditProject( false, function () {
+ vm.refreshProjects();
+ } );
+ },
+
+ toggleArchive: function () {
+ var vm = dbo.projectsModel;
+
+ vm.archive( !vm.archive() );
+
+ vm.refreshProjects();
+ },
+
+ editProject: function () {
+ var project = this;
+ var vm = dbo.projectsModel;
+
+ dbo.editProjectModal.newEditProject( project, function () {
+ vm.refreshProjects();
+ } );
+ },
+
+ selectProject: function () {
+ var vm = dbo.projectsModel;
+
+ vm.selectedRowID( this.id );
+ },
+
+ archiveProject: function () {
+ var vm = dbo.projectsModel;
+ var self = this;
+
+ var status = self.archive == 'F' ? 'T' : 'F';
+
+ dbo.projectDataService.archiveProject( self.id, status, function () {
+ vm.refreshProjects();
+ } );
+ },
+
+ removeProject: function () {
+ var vm = dbo.projectsModel;
+ var self = this;
+
+ tellMe( {
+ title : 'verwijderen projecte',
+ message : 'weet u zeker dat u de project wilt verwijderen, dit kan niet ongedaan worden gemaakt',
+ notify : true,
+ noText : 'nee verwijder de project niet',
+ yesText : 'ja verwijder de project',
+ modalClass: 'modal-warning'
+ }, function ( response ) {
+ console.log( response );
+ if ( response ) {
+ dbo.projectDataService.removeProject( self.id, function ( data ) {
+ if ( data.result ) {
+ tellMe( {
+ title : 'project verwijderd',
+ message : 'de project is succesvol verwijderd',
+ modalClass: 'modal-success'
+ }, function () {
+ vm.refreshProjects();
+ } );
+ } else {
+ tellMe( {
+ title : 'fout bij verwijderen project',
+ message : 'de project kan niet worden verwijderd',
+ modalClass: 'modal-danger'
+ } );
+ }
+ } );
+ }
+ } );
+ },
+
+ refreshProjects: function () {
+ var vm = dbo.projectsModel;
+
+ dbo.projectDataService.getAllProjects( vm.archive() ? 'T' : 'F', function ( data ) {
+ vm.projects.removeAll();
+ $.each( data, function ( i, p ) {
+ vm.projects.push( new vm.Project( p ) );
+ } )
+ } );
+ },
+
+ Project: function ( data ) {
+ this.id = data.id;
+ this.projectnumber = data.projectnumber;
+ this.projectleader = data.projectleader.fullname;
+ this.customer = data.customer.name;
+ this.startdate = data.startdate;
+ this.enddate = data.enddate;
+ this.archive = data.archive;
+ },
+ };
+
+ dbo.projectsModel.init();
+
+ ko.applyBindings( dbo.projectsModel, document.getElementById( 'PROJECTS' ) );
+ }
+}
\ No newline at end of file