Employee hours
This commit is contained in:
@@ -46,6 +46,7 @@ class ProjecthoursPerEmployeePerMonth extends BaseModel {
|
||||
->join( 'projectemployees AS PEM', 'PEM.id', '=', 'projecthours.projectemployee_id' )
|
||||
->join( 'projects AS PRJ', 'PRJ.id', '=', 'PEM.project_id' )
|
||||
->where( 'PEM.user_id', '=', $employeeID )
|
||||
->where( 'projecthours.hourtype_id', '=', 1)
|
||||
->groupBy('PRJ.id')
|
||||
->groupBy('PEM.tarif')
|
||||
->groupBy('PRJ.projectname')
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by Pensare Software.
|
||||
* User: Theo Weijmer
|
||||
* Date: 01/03/2018
|
||||
* Time: 12:03
|
||||
*/
|
||||
|
||||
class QEmployeeHours {
|
||||
|
||||
public static function fire( $month, $year )
|
||||
{
|
||||
$sql = "
|
||||
SELECT monthID,
|
||||
user_id,
|
||||
CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname,
|
||||
SUM(projecthours) AS projecthours,
|
||||
SUM(profitablehours) AS profitablehours,
|
||||
SUM(nonprofitablehours) AS nonprofitablehours,
|
||||
SUM(revenues) AS revenues,
|
||||
SUM(nonprojecthours) AS nonprojecthours,
|
||||
SUM(projecthours + nonprojecthours) AS totalhours,
|
||||
targethours
|
||||
FROM (
|
||||
SELECT employee_id AS user_id,
|
||||
MONTH(hourdate) monthID,
|
||||
0 AS projecthours,
|
||||
0 AS profitablehours,
|
||||
0 AS nonprofitablehours,
|
||||
0 AS revenues,
|
||||
SUM(hours) AS nonprojecthours
|
||||
FROM employeehours
|
||||
WHERE YEAR(hourdate) = '{$year}'
|
||||
AND MONTH(hourdate) = '$month'
|
||||
GROUP BY employee_id, MONTH(hourdate)
|
||||
UNION
|
||||
SELECT PEM.user_id,
|
||||
MONTH(hourdate) monthID,
|
||||
SUM(hours) AS projecthours,
|
||||
SUM(IF(hourtype_id = 1, hours, 0)) AS profitablehours,
|
||||
SUM(IF(hourtype_id = 2, hours, 0)) AS nonprofitablehours,
|
||||
ROUND(SUM( IF(hourtype_id = 1, (hours * PEM.tarif), 0) ), 0) AS revenues,
|
||||
0 AS nonprojecthours
|
||||
FROM projecthours PH
|
||||
JOIN projectemployees PEM
|
||||
ON PEM.id = PH.projectemployee_id
|
||||
WHERE YEAR(hourdate) = '{$year}'
|
||||
AND MONTH(hourdate) = '$month'
|
||||
GROUP BY PEM.user_id, MONTH(hourdate)
|
||||
) AS Q1
|
||||
JOIN users AS USR
|
||||
ON USR.id = Q1.user_id
|
||||
GROUP BY monthID, user_id ";
|
||||
|
||||
return $sql;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user