diversen dashboard
This commit is contained in:
@@ -8,113 +8,70 @@
|
||||
|
||||
class Projectemployee extends BaseModel {
|
||||
|
||||
public function project()
|
||||
{
|
||||
return $this->belongsTo( 'Project' );
|
||||
}
|
||||
public function project()
|
||||
{
|
||||
return $this->belongsTo( 'Project' );
|
||||
}
|
||||
|
||||
<<<<<<< Updated upstream
|
||||
public function user()
|
||||
{
|
||||
return $this->belongsTo( 'User' );
|
||||
}
|
||||
public function user()
|
||||
{
|
||||
return $this->belongsTo( 'User' );
|
||||
}
|
||||
|
||||
public function projecthours()
|
||||
{
|
||||
return $this->hasMany( 'Projecthour' );
|
||||
}
|
||||
public function projecthours()
|
||||
{
|
||||
return $this->hasMany( 'Projecthour' );
|
||||
}
|
||||
|
||||
public static function getAvailableEmployees( $projectID )
|
||||
{
|
||||
$currentEmployees = Self::whereProjectId( $projectID )
|
||||
->lists( 'user_id' );
|
||||
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();
|
||||
$availableEmployees = User::selectRaw( "id, CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname" )
|
||||
->whereNotIn( 'id', $currentEmployees )
|
||||
->whereArchive( 'F' )
|
||||
->get();
|
||||
|
||||
return $availableEmployees;
|
||||
}
|
||||
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();
|
||||
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;
|
||||
}
|
||||
return $projectemployees;
|
||||
}
|
||||
|
||||
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();
|
||||
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' );
|
||||
|
||||
return $details;
|
||||
}
|
||||
if ( $archive == 'F' ) $projectemployees = $projectemployees->where( 'PRJ.archive', '=', 'F' );
|
||||
|
||||
public static function firstOrCreateProjectemployee( $userID, $projectID )
|
||||
{
|
||||
$projectemployee = self::whereUserId($userID)->whereProjectId($projectID);
|
||||
$projectemployees = $projectemployees->get();
|
||||
|
||||
if( $projectemployee->count() > 0 ) return $projectemployee->first();
|
||||
return $projectemployees;
|
||||
}
|
||||
|
||||
$user = User::find( $userID );
|
||||
|
||||
$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();
|
||||
}
|
||||
|
||||
}
|
||||
=======
|
||||
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' );
|
||||
|
||||
if( $projectID)
|
||||
$details = $details->where( 'projectemployees.project_id', '=', $projectID );
|
||||
|
||||
$details = $details->get();
|
||||
|
||||
return $details;
|
||||
@@ -160,4 +117,3 @@ class Projectemployee extends BaseModel {
|
||||
}
|
||||
|
||||
}
|
||||
>>>>>>> Stashed changes
|
||||
|
||||
@@ -54,4 +54,60 @@ class Invoices_model extends MY_Model {
|
||||
|
||||
return $invoiceDetails;
|
||||
}
|
||||
}
|
||||
|
||||
public function getTotalsOutstandingPerProject()
|
||||
{
|
||||
$this->sql = "
|
||||
SELECT
|
||||
PRJ.id,
|
||||
projectnumber,
|
||||
projectname,
|
||||
SUM(invoiced) AS invoiced,
|
||||
SUM(payment) AS payment,
|
||||
revenues,
|
||||
costs,
|
||||
COALESCE(payedcosts, 0) AS payedcosts
|
||||
FROM (
|
||||
SELECT
|
||||
project_id,
|
||||
ROUND(SUM(invoiceamount * (1 + (vatrate / 100))), 0) AS invoiced,
|
||||
payment
|
||||
FROM
|
||||
invoices INV
|
||||
JOIN vats VAT ON VAT.id = INV.vat_id
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
ROUND(COALESCE(SUM(paymentamount), 0), 0) AS payment,
|
||||
invoice_id
|
||||
FROM
|
||||
payments
|
||||
GROUP BY
|
||||
invoice_id) AS Q1 ON INV.id = Q1.invoice_id
|
||||
GROUP BY
|
||||
INV.id) Q2
|
||||
JOIN projects PRJ ON PRJ.id = Q2.project_id
|
||||
JOIN (
|
||||
SELECT
|
||||
ROUND((own_revenue + other_revenue + costs) * (1 + (vatrate / 100)), 0) revenues,
|
||||
ROUND(costs * (1 + (vatrate / 100)), 0) costs,
|
||||
OFF.project_id
|
||||
FROM
|
||||
offers OFF
|
||||
JOIN projects PRJ ON PRJ.id = OFF.project_id
|
||||
JOIN vats VAT ON VAT.id = PRJ.vat_id) Q3 ON Q3.project_id = PRJ.id
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
SUM(costs) AS payedcosts,
|
||||
project_id
|
||||
FROM
|
||||
projectcosts
|
||||
GROUP BY
|
||||
project_id) Q4 ON Q4.project_id = PRJ.id
|
||||
GROUP BY
|
||||
PRJ.id ";
|
||||
|
||||
$outstandings = $this->get_query_result();
|
||||
|
||||
return $outstandings;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user