Diverse wijzigingen nav word document
This commit is contained in:
@@ -28,6 +28,17 @@ class Payment extends BaseModel {
|
||||
return $projectPayment->payment;
|
||||
}
|
||||
|
||||
public static function getProjectsWithPayments($year)
|
||||
{
|
||||
$projects = self::selectRaw('INV.project_id')
|
||||
->distinct()
|
||||
->join('invoices AS INV', 'INV.id', '=', 'payments.invoice_id')
|
||||
->whereRaw('DATE_FORMAT(INV.invoicedate, "%Y") = "'. $year.'"')
|
||||
->lists('project_id');
|
||||
|
||||
return $projects->toArray();
|
||||
}
|
||||
|
||||
public static function savePayment( $paymentID, $payment )
|
||||
{
|
||||
$payment = (array) $payment;
|
||||
@@ -50,4 +61,4 @@ class Payment extends BaseModel {
|
||||
Payment::whereId( $paymentID )->delete();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -96,7 +96,7 @@ class Project extends BaseModel {
|
||||
Project::whereId( $projectID )->delete();
|
||||
}
|
||||
|
||||
public static function getActiveProjects( $archive = 'T' )
|
||||
public static function getActiveProjects( $archive = 'T', $sortField = FALSE, $direction = FALSE )
|
||||
{
|
||||
$projects = Project::selectRaw( "projects.id, YEAR(projects.startdate) AS instroom, YEAR(projects.enddate) AS uitstroom, projectnumber, current_financial_year,
|
||||
projectname, CUS.name, OFF.own_revenue, OFF.other_revenue" )
|
||||
@@ -106,6 +106,8 @@ class Project extends BaseModel {
|
||||
->groupBy( 'OFF.own_revenue' )
|
||||
->groupBy( 'OFF.other_revenue' );
|
||||
|
||||
if ( $sortField ) $projects = $projects->orderBy( $sortField, $direction );
|
||||
|
||||
if ( $archive == 'F' ) $projects = $projects->where( 'projects.archive', '=', 'F' );
|
||||
|
||||
$projects = $projects->get();
|
||||
@@ -113,12 +115,14 @@ class Project extends BaseModel {
|
||||
return $projects;
|
||||
}
|
||||
|
||||
public static function getProjectsForReport( $orderType, $orderDirection, $archive = 'F' )
|
||||
public static function getProjectsForReport( $orderType, $orderDirection, $archive = 'F', $projectsArray = FALSE )
|
||||
{
|
||||
$projects = self::getBaseProject();
|
||||
|
||||
if ( $archive == 'F' ) $projects = $projects->whereArchive( 'F' );
|
||||
|
||||
if ( is_array( $projectsArray ) ) $projects = $projects->whereIn( 'id', $projectsArray );
|
||||
|
||||
$projects = $projects->orderBy( $orderType, $orderDirection )->get();
|
||||
|
||||
return $projects;
|
||||
|
||||
@@ -8,94 +8,111 @@
|
||||
|
||||
class Projectemployee extends BaseModel {
|
||||
|
||||
public function project()
|
||||
{
|
||||
return $this->belongsTo( 'Project' );
|
||||
public function project()
|
||||
{
|
||||
return $this->belongsTo( 'Project' );
|
||||
}
|
||||
|
||||
public function user()
|
||||
{
|
||||
return $this->belongsTo( 'User' );
|
||||
}
|
||||
|
||||
public function projecthours()
|
||||
{
|
||||
return $this->hasMany( 'Projecthour' );
|
||||
}
|
||||
|
||||
public static function getAvailableEmployees( $projectID )
|
||||
{
|
||||
$currentEmployees = Self::whereProjectId( $projectID )
|
||||
->lists( 'user_id' );
|
||||
|
||||
$availableEmployees = User::selectRaw( "id, CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname" )
|
||||
->whereNotIn( 'id', $currentEmployees )
|
||||
->whereArchive( 'F' )
|
||||
->get();
|
||||
|
||||
return $availableEmployees;
|
||||
}
|
||||
|
||||
public static function getUniqueProjectEmployees()
|
||||
{
|
||||
$projectemployees = Projectemployee::selectRaw( "USR.id, CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname" )
|
||||
->distinct()
|
||||
->join( 'users AS USR', 'USR.id', '=', 'projectemployees.user_id' )
|
||||
->get();
|
||||
|
||||
return $projectemployees;
|
||||
}
|
||||
|
||||
public static function getUniqueEmployeesWithActivity( $archive = 'F' )
|
||||
{
|
||||
$projectemployees = Projectemployee::selectRaw( "USR.id, CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname" )
|
||||
->distinct()
|
||||
->join( 'users AS USR', 'USR.id', '=', 'projectemployees.user_id' )
|
||||
->join( 'projectemployees AS PRE', 'PRE.user_id', '=', 'USR.id' )
|
||||
->join( 'projects AS PRJ', 'PRJ.id', '=', 'PRE.project_id' );
|
||||
|
||||
if ( $archive == 'F' ) $projectemployees = $projectemployees->where( 'PRJ.archive', '=', 'F' );
|
||||
|
||||
$projectemployees = $projectemployees->get();
|
||||
|
||||
return $projectemployees;
|
||||
}
|
||||
|
||||
public function user()
|
||||
{
|
||||
return $this->belongsTo( 'User' );
|
||||
}
|
||||
public static function getProjectemployeeDetailsPerProject( $projectID )
|
||||
{
|
||||
$details = Projectemployee::selectRaw( 'USR.id, budget, project_id, ROUND(SUM(hours), 0) AS hours, ROUND(SUM(hours * tarif), 0) AS revenues, projectemployees.id AS projectemployeeID' )
|
||||
->join( 'users AS USR', 'USR.id', '=', 'projectemployees.user_id' )
|
||||
->join( 'projecthours AS PRH', 'PRH.projectemployee_id', '=', 'projectemployees.id' )
|
||||
->where( 'projectemployees.project_id', '=', $projectID )
|
||||
->where( 'PRH.hourtype_id', '=', 1 )
|
||||
->where( 'budget', '!=', 0 )
|
||||
->groupBy( 'projectemployees.id' )
|
||||
->havingRaw( 'ROUND(SUM(hours), 0) > 0' )
|
||||
->get();
|
||||
|
||||
public function projecthours()
|
||||
{
|
||||
return $this->hasMany( 'Projecthour' );
|
||||
}
|
||||
return $details;
|
||||
}
|
||||
|
||||
public static function getAvailableEmployees( $projectID )
|
||||
{
|
||||
$currentEmployees = Self::whereProjectId( $projectID )
|
||||
->lists( 'user_id' );
|
||||
public static function firstOrCreateProjectemployee( $userID, $projectID )
|
||||
{
|
||||
$projectemployee = self::whereUserId( $userID )->whereProjectId( $projectID );
|
||||
|
||||
$availableEmployees = User::selectRaw( "id, CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname" )
|
||||
->whereNotIn( 'id', $currentEmployees )
|
||||
->whereArchive( 'F' )
|
||||
->get();
|
||||
if ( $projectemployee->count() > 0 ) return $projectemployee->first();
|
||||
|
||||
return $availableEmployees;
|
||||
}
|
||||
$user = User::find( $userID );
|
||||
|
||||
public static function getUniqueProjectEmployees()
|
||||
{
|
||||
$projectemployees = Projectemployee::selectRaw( "USR.id, CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname" )
|
||||
->distinct()
|
||||
->join( 'users AS USR', 'USR.id', '=', 'projectemployees.user_id' )
|
||||
->get();
|
||||
$tarif = $user ? $user->hourlyrate : 0;
|
||||
|
||||
return $projectemployees;
|
||||
}
|
||||
$projectemployee = Projectemployee::create( [
|
||||
'project_id' => $projectID,
|
||||
'user_id' => $userID,
|
||||
'tarif' => $tarif
|
||||
] );
|
||||
|
||||
public static function getProjectemployeeDetailsPerProject( $projectID )
|
||||
{
|
||||
$details = Projectemployee::selectRaw( 'USR.id, budget, project_id, ROUND(SUM(hours), 0) AS hours, ROUND(SUM(hours * tarif), 0) AS revenues, projectemployees.id AS projectemployeeID' )
|
||||
->join( 'users AS USR', 'USR.id', '=', 'projectemployees.user_id' )
|
||||
->join( 'projecthours AS PRH', 'PRH.projectemployee_id', '=', 'projectemployees.id' )
|
||||
->where( 'projectemployees.project_id', '=', $projectID )
|
||||
->where( 'PRH.hourtype_id', '=', 1 )
|
||||
->groupBy( 'projectemployees.id' )
|
||||
->get();
|
||||
return $projectemployee;
|
||||
}
|
||||
|
||||
return $details;
|
||||
}
|
||||
public static function createProjectEmployee( $projectID )
|
||||
{
|
||||
$projectemployee = Projectemployee::create( [
|
||||
'project_id' => $projectID
|
||||
] );
|
||||
|
||||
public static function firstOrCreateProjectemployee( $userID, $projectID )
|
||||
{
|
||||
$projectemployee = self::whereUserId($userID)->whereProjectId($projectID);
|
||||
return $projectemployee->id;
|
||||
}
|
||||
|
||||
if( $projectemployee->count() > 0 ) return $projectemployee->first();
|
||||
public static function saveProjectemployee( $projectemployeeID, $projectemployee )
|
||||
{
|
||||
Projectemployee::whereId( $projectemployeeID )
|
||||
->update( $projectemployee );
|
||||
}
|
||||
|
||||
$user = User::find( $userID );
|
||||
public static function removeProjectemployee( $projectemployeeID )
|
||||
{
|
||||
Projectemployee::whereId( $projectemployeeID )->delete();
|
||||
}
|
||||
|
||||
$tarif = $user ? $user->hourlyrate : 0;
|
||||
|
||||
$projectemployee = Projectemployee::create( [
|
||||
'project_id' => $projectID,
|
||||
'user_id' => $userID,
|
||||
'tarif' => $tarif
|
||||
] );
|
||||
|
||||
return $projectemployee;
|
||||
}
|
||||
|
||||
public static function createProjectEmployee( $projectID )
|
||||
{
|
||||
$projectemployee = Projectemployee::create( [
|
||||
'project_id' => $projectID
|
||||
] );
|
||||
|
||||
return $projectemployee->id;
|
||||
}
|
||||
|
||||
public static function saveProjectemployee( $projectemployeeID, $projectemployee )
|
||||
{
|
||||
Projectemployee::whereId( $projectemployeeID )
|
||||
->update( $projectemployee );
|
||||
}
|
||||
|
||||
public static function removeProjectemployee( $projectemployeeID )
|
||||
{
|
||||
Projectemployee::whereId( $projectemployeeID )->delete();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user