fix for employeehours

This commit is contained in:
2019-09-13 16:22:05 +02:00
parent b49fb957a3
commit a3291f26e3
5 changed files with 64 additions and 18 deletions
+1
View File
@@ -71,6 +71,7 @@ class User extends BaseModel {
->join( 'projects AS PRJ', 'PRJ.id', '=', 'PRE.project_id' )
->where( 'PRJ.archive', '=', 'F' )
->where( 'users.id', '=', $userID )
->orderBy('projectnumber')
->get();
return $usersActiveProjects;
@@ -20,7 +20,10 @@ class EmployeehoursMonthly {
USR.id AS employee_id,
hours,
DATE_FORMAT(hourdate, '%d-%m-%Y') AS hourdate,
NULL AS project_id
NULL AS project_id,
NULL AS projectname,
'F' AS archive,
'OVERHEAD' AS type
FROM employeehours EMH
JOIN users USR
ON USR.id = EMH.employee_id
@@ -35,20 +38,43 @@ class EmployeehoursMonthly {
USR.id AS employee_id,
hours,
DATE_FORMAT(hourdate, '%d-%m-%Y') AS hourdate,
CASE
WHEN hourtype_id = 3 THEN offer_id
ELSE PEM.project_id
END AS project_id
PEM.project_id,
CONCAT( projectnumber, '-',PRJ.projectname),
PRJ.archive,
'PROJECTS' AS type
FROM projecthours PRH
JOIN projectemployees PEM
ON PEM.id = PRH.projectemployee_id
JOIN projects PRJ
ON PRJ.id = PEM.project_id
JOIN users USR
ON USR.id = PEM.user_id
WHERE MONTH(hourdate) = {$month}
AND YEAR(hourdate) = {$year} ";
AND YEAR(hourdate) = {$year}
AND offer_id IS NULL ";
if( $employeeID != 0 ) $sql.="AND USR.id = {$employeeID} ";
$sql.="
) Q1
UNION
SELECT CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname,
(hourtype_id + 8) AS hourtype_id,
PRH.id,
USR.id AS employee_id,
hours,
DATE_FORMAT(hourdate, '%d-%m-%Y') AS hourdate,
offer_id,
CONCAT(OFF.offernumber, '-',OFF.offername),
OFF.archive,
'OFFERS' AS type
FROM projecthours PRH
JOIN offers OFF
ON OFF.id = PRH.offer_id
JOIN users USR
ON USR.id = PRH.projectemployee_id
WHERE MONTH(hourdate) = 1
AND YEAR(hourdate) = 2019
AND offer_id IS NOT NULL ";
if( $employeeID != 0 ) $sql.="AND USR.id = {$employeeID} ";
$sql.=" ) Q1
ORDER BY fullname, hourdate ";
return $sql;
@@ -40,8 +40,9 @@
<td data-bind="css:{'red-line': dirty}">
<input class="form-control form-control-sm"
data-bind="datepicker:{dateFormat: 'dd-mm-yy' },
enable:archive() == 'F',
value:hourdate,
event:{change:$root.saveEmployeehour}"
event:{change:$root.saveEmployeehours}"
</td>
<td data-bind="css:{'red-line': dirty}">
<select class="form-control form-control-sm"
@@ -49,11 +50,15 @@
optionsText:'description',
optionsValue:'id',
value:hourtype_id,
enable:archive() == 'F',
optionsCaption:'selecteer...',
event:{change:$root.saveEmployeehours}"></select>
</td>
<td data-bind="css:{'red-line': dirty}">
<!-- ko if: hourType() == 'PROJECTS' -->
<!-- ko if: archive() == 'T' -->
<div data-bind="text:projectname" class="fake-input"></div>
<!-- /ko -->
<!-- ko if: hourType() == 'PROJECTS' && archive() == 'F' -->
<select class="form-control form-control-sm"
data-bind="options:$root.projects,
optionsText:'projectFull',
@@ -62,7 +67,7 @@
optionsCaption:'selecteer...',
event:{change:$root.saveEmployeehours}"></select>
<!-- /ko -->
<!-- ko if: hourType() == 'OFFERS' -->
<!-- ko if: hourType() == 'OFFERS' && archive() == 'F' -->
<select class="form-control form-control-sm"
data-bind="options:$root.offersWithoutProject,
optionsText:'offername',
@@ -77,7 +82,7 @@
class="form-control form-control-sm align-right"
paceholder="uren"
data-bind="textInput:hours,
enable:canFillInHours,
enable:canFillInHours && archive() == 'F',
event:{keyup:$root.saveDelayedEmployeehours,
change: $root.saveDelayedEmployeehours}"/>
</td>
+10 -1
View File
@@ -415,4 +415,13 @@ th.rotate > div > span {
.sub-page{
margin-left:20px;
}
.fake-input{
postition:relative;
top:6px;
border: 1px solid #d2d2d2;
padding:6px;
border-radius:5px;
background-color: #eee;
width:100%;
white-space:nowrap;
}
@@ -75,7 +75,8 @@ dbo.employeehoursInit = function () {
project_id : employeeHour ? employeeHour.projectID() : null,
hours : 0,
inEdit : true,
dirty : true
dirty : true,
archive : 'F'
};
vm.employeehours.push( new vm.Employeehour( employeehour ) );
@@ -103,6 +104,7 @@ dbo.employeehoursInit = function () {
},
saveEmployeehours: function ( self = false ) {
console.log( 'inside' );
self.dirty( true );
if ( !self ) self = this;
@@ -234,7 +236,10 @@ dbo.employeehoursInit = function () {
self.hours = ko.observable( data.hours );
self.inEdit = ko.observable( data.inEdit || false );
self.projectID = ko.observable( data.project_id );
self.type = ko.observable( data.type );
self.archive = ko.observable( data.archive );
self.dirty = ko.observable( data.dirty || false );
self.projectname = ko.observable( data.projectname );
self.hourType = ko.pureComputed( function () {
return dbo.helpers.findArrayElement( 'id', 'key', this.hourtype_id(), vm.hourtypes() );
}, this );
@@ -256,7 +261,7 @@ dbo.employeehoursInit = function () {
ko.applyBindings( dbo.employeehoursModel, document.getElementById( 'EMPLOYEEHOURS' ) );
dbo.employeehoursModel.selectedEmployeeID.subscribe( function () {
dbo.userDataService.getUserActiveProjects( dbo.currentUser.id, function ( data ) {
dbo.userDataService.getUserActiveProjects( dbo.employeehoursModel.selectedEmployeeID(), function ( data ) {
dbo.employeehoursModel.projects( data );
} );
} );