97 lines
5.0 KiB
PHP
97 lines
5.0 KiB
PHP
<?php
|
|
/**
|
|
* Created by Pensare Software.
|
|
* User: Theo Weijmer
|
|
* Date: 19/01/2018
|
|
* Time: 15:51
|
|
*/
|
|
|
|
class Projecthour extends BaseModel {
|
|
|
|
protected $table = "projecthours";
|
|
|
|
public function projectemployee()
|
|
{
|
|
$this->belongsTo( 'Projectemployee' );
|
|
}
|
|
|
|
public static function getUsedYears()
|
|
{
|
|
$years = Projecthour::selectRaw( "YEAR(hourdate) AS year" )
|
|
->distinct()
|
|
->orderByRaw( 'YEAR( hourdate )' )
|
|
->get();
|
|
|
|
return $years;
|
|
}
|
|
|
|
public static function getMonthlyEmployeeHoursPerProject( $employeeID, $year )
|
|
{
|
|
$projectHours = Projecthour::selectRaw( "
|
|
SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-1', projecthours.hours, 0)) AS januari,
|
|
SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-2', projecthours.hours, 0)) AS februari,
|
|
SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-3', projecthours.hours, 0)) AS maart,
|
|
SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-4', projecthours.hours, 0)) AS april,
|
|
SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-5', projecthours.hours, 0)) AS mei,
|
|
SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-6', projecthours.hours, 0)) AS juni,
|
|
SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-7', projecthours.hours, 0)) AS juli,
|
|
SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-8', projecthours.hours, 0)) AS augustus,
|
|
SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-9', projecthours.hours, 0)) AS september,
|
|
SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-10', projecthours.hours, 0)) AS oktober,
|
|
SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-11', projecthours.hours, 0)) AS november,
|
|
SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-12', projecthours.hours, 0)) AS december,
|
|
SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-1', projecthours.hours * tarif, 0)) AS januariRevenue,
|
|
SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-2', projecthours.hours * tarif, 0)) AS februariRevenue,
|
|
SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-3', projecthours.hours * tarif, 0)) AS maartRevenue,
|
|
SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-4', projecthours.hours * tarif, 0)) AS aprilRevenue,
|
|
SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-5', projecthours.hours * tarif, 0)) AS meiRevenue,
|
|
SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-6', projecthours.hours * tarif, 0)) AS juniRevenue,
|
|
SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-7', projecthours.hours * tarif, 0)) AS juliRevenue,
|
|
SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-8', projecthours.hours * tarif, 0)) AS augustusRevenue,
|
|
SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-9', projecthours.hours * tarif, 0)) AS septemberRevenue,
|
|
SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-10', projecthours.hours * tarif, 0)) AS oktoberRevenue,
|
|
SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-11', projecthours.hours * tarif, 0)) AS novemberRevenue,
|
|
SUM(IF(CONCAT(YEAR(hourdate), '-', MONTH(hourdate)) = '{$year}-12', projecthours.hours * tarif, 0)) AS decemberRevenue,
|
|
SUM(IF(YEAR(hourdate) = {$year},projecthours.hours, 0)) AS totalyear,
|
|
SUM(IF(YEAR(hourdate) != {$year},projecthours.hours, 0)) AS totalotheryears,
|
|
SUM(IF(YEAR(hourdate) = {$year},projecthours.hours * tarif, 0)) AS totalyearRevenue,
|
|
SUM(IF(YEAR(hourdate) != {$year},projecthours.hours * tarif, 0)) AS totalotheryearsRevenue,
|
|
SUM(projecthours.hours) AS totalhours,
|
|
SUM(projecthours.hours * tarif) AS totalhoursRevenue,
|
|
PEM.tarif,
|
|
PRJ.projectname" )
|
|
->join( 'projectemployees AS PEM', 'PEM.id', '=', 'projecthours.projectemployee_id' )
|
|
->join( 'projects AS PRJ', 'PRJ.id', '=', 'PEM.project_id' )
|
|
->where( 'PEM.user_id', '=', $employeeID )
|
|
->groupBy('PRJ.id')
|
|
->groupBy('PEM.tarif')
|
|
->groupBy('PRJ.projectname')
|
|
->get();
|
|
|
|
return $projectHours;
|
|
}
|
|
|
|
public static function saveProjecthour( $projecthourID, $projecthour )
|
|
{
|
|
$projecthour = (array) $projecthour;
|
|
|
|
if ( $projecthourID == 0 )
|
|
{
|
|
$projecthour = Projecthour::create( $projecthour );
|
|
$projecthourID = $projecthour['id'];
|
|
}
|
|
else
|
|
{
|
|
Projecthour::whereId( $projecthourID )->update( $projecthour );
|
|
}
|
|
|
|
return $projecthourID;
|
|
}
|
|
|
|
public static function removeProjecthour( $projecthourID )
|
|
{
|
|
Projecthour::whereId( $projecthourID )->delete();
|
|
}
|
|
|
|
|
|
} |