commen hours
This commit is contained in:
@@ -41,6 +41,18 @@ class usersController extends MY_Controller {
|
||||
$this->json( $user );
|
||||
}
|
||||
|
||||
public function getCurrentUser()
|
||||
{
|
||||
$this->json( $this->user );
|
||||
}
|
||||
|
||||
public function getUserWithprojects()
|
||||
{
|
||||
$usersWithProjects = User::getUserWithprojects();
|
||||
|
||||
$this->json( $usersWithProjects );
|
||||
}
|
||||
|
||||
public function getUniqueprojectEmployees()
|
||||
{
|
||||
$projectEmployees = User::getUniqueProjectUsers();
|
||||
|
||||
@@ -22,11 +22,15 @@ class EmployeeHoursController extends MY_Controller {
|
||||
$this->load->library( $libraries );
|
||||
}
|
||||
|
||||
public function getEmployeehours( $month, $year )
|
||||
public function getEmployeehours( $month, $year, $employeeID )
|
||||
{
|
||||
$employeehours = Employeehour::getEmployeehours( $month, $year );
|
||||
$sql = EmployeehoursMonthly::fire( $month, $year, $employeeID );
|
||||
|
||||
$this->json( $employeehours );
|
||||
$query = $this->db->query( $sql );
|
||||
|
||||
$result = $query->result();
|
||||
|
||||
$this->json( $result );
|
||||
}
|
||||
|
||||
public function getHourtypes()
|
||||
@@ -42,11 +46,29 @@ class EmployeeHoursController extends MY_Controller {
|
||||
$data = $this->input->post();
|
||||
|
||||
$employeehourID = $data['id'];
|
||||
$hourType = $data['hourType'];
|
||||
$projectID = $data['project_id'];
|
||||
unset( $data['id'] );
|
||||
unset( $data['hourType'] );
|
||||
unset( $data['project_id'] );
|
||||
|
||||
$data['hourdate'] = date2mysql( $data['hourdate'] );
|
||||
|
||||
$employeehourID = Employeehour::saveEmployeehour( $employeehourID, $data );
|
||||
if ( $hourType == 'PROJECTS' )
|
||||
{
|
||||
$projectemployeeID = Projectemployee::select( 'id' )
|
||||
->whereUserId( $data['employee_id'] )
|
||||
->whereprojectId( $projectID )
|
||||
->first();
|
||||
$data['projectemployee_id'] = $projectemployeeID;
|
||||
unset( $data['employee_id'] );
|
||||
|
||||
$employeehourID = Projecthour::saveProjecthour( $employeehourID, $data );
|
||||
}
|
||||
else
|
||||
{
|
||||
$employeehourID = Employeehour::saveEmployeehour( $employeehourID, $data );
|
||||
}
|
||||
|
||||
$this->json( ['employeehourID' => $employeehourID] );
|
||||
}
|
||||
|
||||
@@ -23,15 +23,22 @@ class Employeehour extends BaseModel {
|
||||
|
||||
public static function getEmployeehours( $month, $year )
|
||||
{
|
||||
$employeehours = Employeehour::whereRaw( "MONTH(hourdate) ={$month} AND YEAR(hourdate) = {$year}" )
|
||||
$employeehours = Employeehour::whereRaw( "MONTH(hourdate) = " . ( $month + 1 ) . " AND YEAR(hourdate) = {$year}" )
|
||||
->with( [
|
||||
'user' => function ( $q ) {
|
||||
$q->selectRaw( "id, CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname" );
|
||||
}] )
|
||||
->with( 'hourtype' )
|
||||
->get();
|
||||
->with( 'hourtype' );
|
||||
|
||||
return $employeehours;
|
||||
$projecthours = Employeehour::whereRaw("MONTH(hourdate) = " . ( $month + 1 ) . " AND YEAR(hourdate) = {$year}" )->with( [
|
||||
'user' => function ( $q ) {
|
||||
$q->selectRaw( "id, CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname" );
|
||||
}] )
|
||||
->with( 'hourtype' );
|
||||
|
||||
$results = $employeehours->union($projecthours)->get();
|
||||
|
||||
return $results;
|
||||
}
|
||||
|
||||
public static function saveEmployeehour( $employeehourID, $data )
|
||||
|
||||
@@ -45,6 +45,16 @@ class User extends BaseModel {
|
||||
return $userrole;
|
||||
}
|
||||
|
||||
public static function getUserWithprojects()
|
||||
{
|
||||
$usersWithProjects =
|
||||
User::selectRaw( "users.id, CONCAT(users.firstname, ' ', users.middlename, ' ', users.lastname) AS fullname" )
|
||||
->with( 'projectemployees.project' )
|
||||
->get();
|
||||
|
||||
return $usersWithProjects;
|
||||
}
|
||||
|
||||
public static function checkUsername( $username )
|
||||
{
|
||||
$username = strtoupper( $username );
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by Pensare Software.
|
||||
* User: Theo Weijmer
|
||||
* Date: 15/03/2018
|
||||
* Time: 10:47
|
||||
*/
|
||||
|
||||
class EmployeehoursMonthly {
|
||||
|
||||
public static function fire($month, $year, $employeeID)
|
||||
{
|
||||
$month = $month + 1;
|
||||
$sql = "
|
||||
SELECT *
|
||||
FROM (
|
||||
SELECT CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname,
|
||||
hourtype_id,
|
||||
EMH.id,
|
||||
USR.id AS employee_id,
|
||||
hours,
|
||||
DATE_FORMAT(hourdate, '%d-%m-%Y') AS hourdate,
|
||||
NULL AS project_id
|
||||
FROM employeehours EMH
|
||||
JOIN users USR
|
||||
ON USR.id = EMH.employee_id
|
||||
WHERE MONTH(hourdate) = {$month}
|
||||
AND YEAR(hourdate) = {$year} ";
|
||||
if( $employeeID != 0 ) $sql.="AND USR.id = {$employeeID} ";
|
||||
$sql.="
|
||||
UNION
|
||||
SELECT CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname,
|
||||
(SELECT id FROM hourtypes WHERE `key` = 'PROJECTS' LIMIT 1) AS hourtype_id,
|
||||
PRH.id,
|
||||
USR.id AS employee_id,
|
||||
hours,
|
||||
DATE_FORMAT(hourdate, '%d-%m-%Y') AS hourdate,
|
||||
PEM.project_id
|
||||
FROM projecthours PRH
|
||||
JOIN projectemployees PEM
|
||||
ON PEM.id = PRH.projectemployee_id
|
||||
JOIN users USR
|
||||
ON USR.id = PEM.user_id
|
||||
WHERE MONTH(hourdate) = {$month}
|
||||
AND YEAR(hourdate) = {$year} ";
|
||||
if( $employeeID != 0 ) $sql.="AND USR.id = {$employeeID} ";
|
||||
$sql.="
|
||||
) Q1
|
||||
ORDER BY fullname, hourdate ";
|
||||
|
||||
return $sql;
|
||||
}
|
||||
}
|
||||
@@ -3,36 +3,46 @@
|
||||
<div class="col-md-2">
|
||||
<select class="form-control form-control-sm"
|
||||
data-bind="options:years,
|
||||
optionsText:'id',
|
||||
optionsValue:'id',
|
||||
optionsText:'year',
|
||||
optionsValue:'year',
|
||||
value:selectedYear,
|
||||
event:{change:refreshEmployeehours}"></select>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<select class="form-control form-control-sm"
|
||||
data-bind="options:months,
|
||||
optionsText:'monthName',
|
||||
optionsValue:'id',
|
||||
optionsText:'month',
|
||||
optionsValue:'monthID',
|
||||
value:selectedMonth,
|
||||
event:{change:refreshEmployeehours}"></select>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<select class="form-control form-control-sm"
|
||||
data-bind="options:employees,
|
||||
optionsText:'fullname',
|
||||
optionsValue:'id',
|
||||
value:$root.selectedEmployeeID,
|
||||
optionsCaption:'alle...',
|
||||
event:{change:refreshEmployeehours}"></select>
|
||||
</div>
|
||||
</div>
|
||||
<br/>
|
||||
<div class="row">
|
||||
<div class="col-xl-8">
|
||||
<div class="col-xl-10">
|
||||
<table class="table table-sm">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="table-tealish-header">medewerker</th>
|
||||
<th class="table-tealish-header">datum</th>
|
||||
<th class="table-tealish-header">soort uren</th>
|
||||
<th class="table-tealish-header">project</th>
|
||||
<th class="table-tealish-header">uren</th>
|
||||
<th class="table-tealish-header" width="40px"> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody data-bind="foreach:employeehours">
|
||||
<tr>
|
||||
<td>
|
||||
<td data-bind="css:{'red-line': id == 0}">
|
||||
<span data-bind="text:dbo.helpers.findArrayElement('id', 'fullname', employee_id(), $root.employees()),
|
||||
visible: ! inEdit()"></span>
|
||||
<select class="form-control form-control-sm"
|
||||
@@ -42,16 +52,16 @@
|
||||
value:employee_id,
|
||||
optionsCaption: 'selecteer...',
|
||||
visible:inEdit(),
|
||||
event:{change:$root.saveEmployeehours}"></select>
|
||||
event:{change:$root.changeEmployee}"></select>
|
||||
</td>
|
||||
<td>
|
||||
<td data-bind="css:{'red-line': id == 0}">
|
||||
<span data-bind="text:hourdate, visible:! inEdit()"></span>
|
||||
<input class="form-control form-control-sm"
|
||||
data-bind="datepicker:{dateFormat: 'dd-mm-yy' },
|
||||
value:hourdate, visible:inEdit(),
|
||||
event:{change:$root.saveEmployeehour}"
|
||||
</td>
|
||||
<td>
|
||||
<td data-bind="css:{'red-line': id == 0}">
|
||||
<span data-bind="text:dbo.helpers.findArrayElement('id', 'description', hourtype_id(), $root.hourtypes()),
|
||||
visible: ! inEdit()"></span>
|
||||
<select class="form-control form-control-sm"
|
||||
@@ -63,7 +73,20 @@
|
||||
visible:inEdit(),
|
||||
event:{change:$root.saveEmployeehours}"></select>
|
||||
</td>
|
||||
<td class="align-right">
|
||||
<td data-bind="css:{'red-line': id == 0}">
|
||||
<!-- ko if: hourType() == 'PROJECTS' -->
|
||||
<span data-bind="text:dbo.helpers.findArrayElement('projectID', 'projectname', projectID(), projects()),
|
||||
visible: ! inEdit()"></span>
|
||||
<select class="form-control form-control-sm"
|
||||
data-bind="options:projects,
|
||||
optionsText:'projectname',
|
||||
optionsValue:'projectID',
|
||||
value:projectID,
|
||||
optionsCaption:'selecteer...',
|
||||
visible:inEdit()"></select>
|
||||
<!-- /ko -->
|
||||
</td>
|
||||
<td class="align-right" data-bind="css:{'red-line': id == 0}">
|
||||
<span data-bind=" visible: ! inEdit()">
|
||||
<span data-bind="text:hours"></span>
|
||||
uur
|
||||
@@ -74,7 +97,7 @@
|
||||
data-bind="textInput:hours, visible:inEdit,
|
||||
event:{change:$root.saveEmployeehours,keyup:$root.validateNumber.bind($data, 'hours')}"/>
|
||||
</td>
|
||||
<td>
|
||||
<td data-bind="css:{'red-line': id == 0}">
|
||||
<i class="icon fa-edit pointer" title="wijzig" data-bind="click:$root.editEmployeehour"></i>
|
||||
<i class="icon fa-trash redish pointer" title="verwijder"
|
||||
data-bind="click:$root.removeEmployeehour"></i>
|
||||
@@ -83,7 +106,7 @@
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="3" class="">
|
||||
<td colspan="3">
|
||||
<button class="btn btn-primary btn-round btn-sm" data-bind="click:newEmployeehour">
|
||||
nieuwe uren
|
||||
</button>
|
||||
|
||||
@@ -104,6 +104,9 @@ th.focus-green{
|
||||
border:0;
|
||||
font-weight: bold;
|
||||
}
|
||||
.red-line{
|
||||
border-bottom: 1px solid red !important;
|
||||
}
|
||||
|
||||
/*********SWITCH************/
|
||||
.onoffswitch {
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
|
||||
dbo.employeehoursDataService = {
|
||||
|
||||
getEmployeehours: function ( $month, $year, callback ) {
|
||||
$.getJSON( 'index.php/projects/employeeHoursController/getEmployeehours/' + $month + '/' + $year )
|
||||
getEmployeehours: function ( $month, $year, employeeID, callback ) {
|
||||
$.getJSON( 'index.php/projects/employeeHoursController/getEmployeehours/' + $month + '/' + $year + '/' + employeeID )
|
||||
.done( function ( data ) {
|
||||
callback( data );
|
||||
} );
|
||||
|
||||
@@ -21,11 +21,25 @@ dbo.userDataService = {
|
||||
} );
|
||||
},
|
||||
|
||||
getUniqueProjectEmployees:function(callback){
|
||||
$.post('index.php/beheer/usersController/getUniqueprojectEmployees', 'json')
|
||||
.done(function(data){
|
||||
callback(data);
|
||||
});
|
||||
getCurrentUser: function ( callback ) {
|
||||
$.getJSON( 'index.php/beheer/usersController/getCurrentUser' )
|
||||
.done( function ( data ) {
|
||||
callback( data );
|
||||
} );
|
||||
},
|
||||
|
||||
getUserWithprojects: function ( callback ) {
|
||||
$.getJSON( 'index.php/beheer/usersController/getUserWithprojects' )
|
||||
.done( function ( data ) {
|
||||
callback( data );
|
||||
} );
|
||||
},
|
||||
|
||||
getUniqueProjectEmployees: function ( callback ) {
|
||||
$.post( 'index.php/beheer/usersController/getUniqueprojectEmployees', 'json' )
|
||||
.done( function ( data ) {
|
||||
callback( data );
|
||||
} );
|
||||
},
|
||||
|
||||
checkUsername: function ( username, callback ) {
|
||||
@@ -44,11 +58,11 @@ dbo.userDataService = {
|
||||
} );
|
||||
},
|
||||
|
||||
archiveUser: function(userID, status, callback){
|
||||
$.get('index.php/beheer/usersController/archiveUser/' + userID + '/' + status)
|
||||
.done(function(){
|
||||
archiveUser: function ( userID, status, callback ) {
|
||||
$.get( 'index.php/beheer/usersController/archiveUser/' + userID + '/' + status )
|
||||
.done( function () {
|
||||
callback();
|
||||
});
|
||||
} );
|
||||
},
|
||||
|
||||
removeUser: function ( userID, callback ) {
|
||||
@@ -57,6 +71,8 @@ dbo.userDataService = {
|
||||
callback( data );
|
||||
} );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
dbo.userDataService.getCurrentUser(function(data){
|
||||
dbo.currentUser = data;
|
||||
});
|
||||
@@ -56,7 +56,7 @@ dbo.helpers = {
|
||||
},
|
||||
|
||||
findArrayElement: function ( toFind, element, value, array ) {
|
||||
// console.log( toFind );
|
||||
// console.log( toFind ); // het element in de array
|
||||
// console.log( element );
|
||||
// console.log( value );
|
||||
// console.log( array );
|
||||
|
||||
@@ -13,30 +13,34 @@ dbo.employeehoursInit = function () {
|
||||
} else {
|
||||
dbo.employeehoursModel = {
|
||||
|
||||
employeehours: ko.observableArray( [] ),
|
||||
archive : ko.observable( false ),
|
||||
months : ko.observableArray( [] ),
|
||||
years : ko.observableArray( [] ),
|
||||
hourtypes : ko.observableArray( [] ),
|
||||
employees : ko.observableArray( [] ),
|
||||
selectedYear : ko.observable(),
|
||||
selectedMonth: ko.observable(),
|
||||
busy : false,
|
||||
employeehours : ko.observableArray( [] ),
|
||||
archive : ko.observable( false ),
|
||||
months : ko.observableArray( [] ),
|
||||
years : ko.observableArray( [] ),
|
||||
hourtypes : ko.observableArray( [] ),
|
||||
employees : ko.observableArray( [] ),
|
||||
selectedYear : ko.observable(),
|
||||
selectedMonth : ko.observable(),
|
||||
busy : false,
|
||||
selectedEmployeeID: ko.observable(),
|
||||
|
||||
init: function () {
|
||||
var vm = dbo.employeehoursModel;
|
||||
|
||||
vm.createMonths();
|
||||
vm.createYears();
|
||||
vm.months( dbo.monthArray );
|
||||
vm.years( dbo.years );
|
||||
|
||||
var d = new Date();
|
||||
vm.selectedMonth( d.getMonth() + 1 );
|
||||
vm.selectedYear( d.getFullYear() );
|
||||
vm.selectedMonth( dbo.currentMonth );
|
||||
vm.selectedYear( dbo.currentYear );
|
||||
|
||||
dbo.employeehoursDataService.getHourtypes( function ( data ) {
|
||||
vm.hourtypes( data );
|
||||
dbo.userDataService.getAllUsers( 'F', function ( data ) {
|
||||
vm.employees( data );
|
||||
dbo.userDataService.getUserWithprojects( function ( data ) {
|
||||
vm.employees.removeAll();
|
||||
_.each( data, function ( p ) {
|
||||
vm.employees.push( new vm.Employee( p ) );
|
||||
} );
|
||||
vm.selectedEmployeeID( dbo.currentUser.id )
|
||||
|
||||
vm.refreshEmployeehours();
|
||||
} );
|
||||
@@ -46,12 +50,22 @@ dbo.employeehoursInit = function () {
|
||||
newEmployeehour: function () {
|
||||
var vm = dbo.employeehoursModel;
|
||||
|
||||
var employeeHour = vm.employeehours()[vm.employeehours().length - 1];
|
||||
|
||||
var employeeID = null;
|
||||
if ( !vm.selectedEmployeeID ) {
|
||||
employeeID = employeeHour ? employeeHour.employee_id() : null;
|
||||
} else {
|
||||
employeeID = vm.selectedEmployeeID();
|
||||
}
|
||||
|
||||
var employeehour = {
|
||||
id : 0,
|
||||
employee_id: null,
|
||||
hourdate : null,
|
||||
hourtype_id: null,
|
||||
hours : 0,
|
||||
employee_id: employeeID,
|
||||
hourdate : employeeHour ? employeeHour.hourdate() : null,
|
||||
hourtype_id: employeeHour ? employeeHour.hourtype_id() : 9,
|
||||
project_id : employeeHour ? employeeHour.projectID() : null,
|
||||
hours : employeeHour ? employeeHour.hours() : 0,
|
||||
inEdit : true
|
||||
};
|
||||
|
||||
@@ -66,19 +80,22 @@ dbo.employeehoursInit = function () {
|
||||
vm.refreshHours();
|
||||
},
|
||||
|
||||
saveEmployeehours: function () {
|
||||
var self = this;
|
||||
saveEmployeehours: function ( self = false ) {
|
||||
if ( !self ) self = this;
|
||||
|
||||
if ( !self.employee_id() ) return;
|
||||
if ( !self.hourtype_id() ) return;
|
||||
if ( !self.hourdate() ) return;
|
||||
if ( self.hourType() == 'PROJECTS' && !self.projectID() ) return;
|
||||
|
||||
var submitDATA = {
|
||||
id : self.id,
|
||||
employee_id: self.employee_id(),
|
||||
hourdate : self.hourdate(),
|
||||
hourtype_id: self.hourtype_id(),
|
||||
hours : self.hours()
|
||||
hours : self.hours(),
|
||||
hourType : self.hourType(),
|
||||
project_id : self.projectID()
|
||||
};
|
||||
|
||||
dbo.employeehoursDataService.saveEmployeehour( submitDATA, function ( data ) {
|
||||
@@ -90,6 +107,15 @@ dbo.employeehoursInit = function () {
|
||||
this.inEdit( !this.inEdit() );
|
||||
},
|
||||
|
||||
changeEmployee: function () {
|
||||
var vm = dbo.employeehoursModel;
|
||||
this.projects( vm.setEmployeeProjects( this ) );
|
||||
|
||||
this.projectID( null );
|
||||
|
||||
vm.saveEmployeehours( this );
|
||||
},
|
||||
|
||||
removeEmployeehour: function () {
|
||||
var vm = dbo.employeehoursModel;
|
||||
var self = this;
|
||||
@@ -118,58 +144,73 @@ dbo.employeehoursInit = function () {
|
||||
} );
|
||||
},
|
||||
|
||||
createMonths: function () {
|
||||
var vm = dbo.employeehoursModel;
|
||||
|
||||
var months = [
|
||||
{id: 1, monthName: 'januari'},
|
||||
{id: 2, monthName: 'februari'},
|
||||
{id: 3, monthName: 'maart'},
|
||||
{id: 4, monthName: 'april'},
|
||||
{id: 5, monthName: 'mei'},
|
||||
{id: 6, monthName: 'juni'},
|
||||
{id: 7, monthName: 'juli'},
|
||||
{id: 8, monthName: 'augustus'},
|
||||
{id: 9, monthName: 'september'},
|
||||
{id: 10, monthName: 'oktober'},
|
||||
{id: 11, monthName: 'november'},
|
||||
{id: 12, monthName: 'december'},
|
||||
]
|
||||
|
||||
vm.months( months );
|
||||
},
|
||||
|
||||
createYears: function () {
|
||||
var vm = dbo.employeehoursModel;
|
||||
var years = [{id: 2015}, {id: 2016}, {id: 2017}, {id: 2018}];
|
||||
|
||||
vm.years( years );
|
||||
},
|
||||
|
||||
refreshEmployeehours: function () {
|
||||
var vm = dbo.employeehoursModel;
|
||||
|
||||
var employeeID = vm.selectedEmployeeID() || 0;
|
||||
|
||||
vm.employeehours.removeAll();
|
||||
dbo.employeehoursDataService.getEmployeehours( vm.selectedMonth(), vm.selectedYear(), function ( data ) {
|
||||
$.each( data, function ( i, p ) {
|
||||
vm.employeehours.push( new vm.Employeehour( p ) );
|
||||
dbo.employeehoursDataService.getEmployeehours(
|
||||
vm.selectedMonth(), vm.selectedYear(), employeeID, function ( data ) {
|
||||
$.each( data, function ( i, p ) {
|
||||
vm.employeehours.push( new vm.Employeehour( p ) );
|
||||
} );
|
||||
} );
|
||||
} );
|
||||
},
|
||||
|
||||
validateNumber: function ( field ) {
|
||||
this[field]( dbo.helpers.validateNumber( this[field](), true ) );
|
||||
},
|
||||
|
||||
Employee: function ( data ) {
|
||||
var vm = dbo.employeehoursModel;
|
||||
var self = this;
|
||||
|
||||
self.id = data.id;
|
||||
self.fullname = data.fullname;
|
||||
|
||||
self.projecten = ko.observableArray( [] );
|
||||
_.each( data.projectemployees, function ( p ) {
|
||||
self.projecten.push( new vm.Project( p ) );
|
||||
} );
|
||||
},
|
||||
|
||||
Project: function ( data ) {
|
||||
this.projectEmployeeID = data.id;
|
||||
this.projectID = data.project.id;
|
||||
this.project = data.project.projectnumber + ' - ' + data.project.projectname;
|
||||
},
|
||||
|
||||
Employeehour: function ( data ) {
|
||||
var vm = dbo.employeehoursModel;
|
||||
var self = this;
|
||||
|
||||
this.id = data.id;
|
||||
this.employee_id = ko.observable( data.employee_id );
|
||||
this.hourtype_id = ko.observable( data.hourtype_id );
|
||||
this.hourdate = ko.observable( data.hourdate );
|
||||
this.hours = ko.observable( data.hours );
|
||||
this.inEdit = ko.observable( data.inEdit || false );
|
||||
self.id = data.id;
|
||||
self.employee_id = ko.observable( data.employee_id );
|
||||
self.hourtype_id = ko.observable( data.hourtype_id );
|
||||
self.hourdate = ko.observable( data.hourdate );
|
||||
self.hours = ko.observable( data.hours );
|
||||
self.inEdit = ko.observable( data.inEdit || false );
|
||||
self.projectID = ko.observable( data.project_id );
|
||||
self.hourType = ko.pureComputed( function () {
|
||||
return dbo.helpers.findArrayElement( 'id', 'key', this.hourtype_id(), vm.hourtypes() );
|
||||
}, this );
|
||||
|
||||
vm.setEmployeeProjects( self );
|
||||
},
|
||||
|
||||
setEmployeeProjects: function ( self ) {
|
||||
var vm = dbo.employeehoursModel;
|
||||
|
||||
var employeeProjects =
|
||||
dbo.helpers.findArrayElement( 'id', 'projecten', self.employee_id(), vm.employees() )();
|
||||
self.projects = ko.observableArray( [] );
|
||||
_.each( employeeProjects, function ( p ) {
|
||||
self.projects.push( {
|
||||
projectID : p.projectID,
|
||||
projectname: p.project
|
||||
} );
|
||||
} );
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user