Diverse wijzigingen nav word document

This commit is contained in:
2019-10-25 16:47:46 +02:00
parent 6f21ab10de
commit d0069061ba
24 changed files with 2203 additions and 2028 deletions
+12 -1
View File
@@ -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();
}
}
}
+6 -2
View File
@@ -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;
+94 -77
View File
@@ -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();
}
}
}