Conversie codeigniter 4
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by Pensare Software.
|
||||
* User: Theo Weijmer
|
||||
* Date: 15/03/2018
|
||||
* Time: 10:47
|
||||
*/
|
||||
|
||||
class EmployeehoursMonthly {
|
||||
|
||||
public static function fire($month, $year, $employeeID)
|
||||
{
|
||||
$month = $month + 1;
|
||||
$sql = "
|
||||
SELECT *
|
||||
FROM (
|
||||
SELECT CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname,
|
||||
hourtype_id,
|
||||
EMH.id,
|
||||
EMH.uuid,
|
||||
USR.id AS employee_id,
|
||||
hours,
|
||||
DATE_FORMAT(hourdate, '%d-%m-%Y') AS hourdate,
|
||||
NULL AS project_id,
|
||||
NULL AS projectname,
|
||||
'F' AS archive,
|
||||
'OVERHEAD' AS type
|
||||
FROM employeehours EMH
|
||||
JOIN users USR
|
||||
ON USR.id = EMH.employee_id
|
||||
WHERE MONTH(hourdate) = {$month}
|
||||
AND YEAR(hourdate) = {$year} ";
|
||||
if( $employeeID != 0 ) $sql.="AND USR.id = {$employeeID} ";
|
||||
$sql.="
|
||||
UNION
|
||||
SELECT CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname,
|
||||
(hourtype_id + 8) AS hourtype_id,
|
||||
PRH.id,
|
||||
PRH.uuid,
|
||||
USR.id AS employee_id,
|
||||
hours,
|
||||
DATE_FORMAT(hourdate, '%d-%m-%Y') AS hourdate,
|
||||
PEM.project_id,
|
||||
CONCAT( projectnumber, '-',PRJ.projectname),
|
||||
PRJ.archive,
|
||||
'PROJECTS' AS type
|
||||
FROM projecthours PRH
|
||||
JOIN projectemployees PEM
|
||||
ON PEM.id = PRH.projectemployee_id
|
||||
JOIN projects PRJ
|
||||
ON PRJ.id = PEM.project_id
|
||||
JOIN users USR
|
||||
ON USR.id = PEM.user_id
|
||||
WHERE MONTH(hourdate) = {$month}
|
||||
AND YEAR(hourdate) = {$year}
|
||||
AND offer_id IS NULL ";
|
||||
if( $employeeID != 0 ) $sql.="AND USR.id = {$employeeID} ";
|
||||
$sql.="
|
||||
UNION
|
||||
SELECT CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname,
|
||||
(hourtype_id + 8) AS hourtype_id,
|
||||
PRH.id,
|
||||
PRH.uuid,
|
||||
USR.id AS employee_id,
|
||||
hours,
|
||||
DATE_FORMAT(hourdate, '%d-%m-%Y') AS hourdate,
|
||||
offer_id,
|
||||
CONCAT(OFF.offernumber, '-',OFF.offername),
|
||||
OFF.archive,
|
||||
'OFFERS' AS type
|
||||
FROM projecthours PRH
|
||||
JOIN offers OFF
|
||||
ON OFF.id = PRH.offer_id
|
||||
JOIN users USR
|
||||
ON USR.id = PRH.projectemployee_id
|
||||
WHERE MONTH(hourdate) = {$month}
|
||||
AND YEAR(hourdate) = {$year}
|
||||
AND offer_id IS NOT NULL ";
|
||||
if( $employeeID != 0 ) $sql.="AND USR.id = {$employeeID} ";
|
||||
$sql.=" ) Q1
|
||||
ORDER BY fullname, hourdate ";
|
||||
|
||||
return $sql;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by Pensare Software.
|
||||
* User: Theo Weijmer
|
||||
* Date: 20/02/2018
|
||||
* Time: 09:36
|
||||
*/
|
||||
|
||||
class ProjecthoursPerEmployeePerMonth extends BaseModel {
|
||||
|
||||
public static function fire($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 )
|
||||
->where( 'projecthours.hourtype_id', '=', 1)
|
||||
->groupBy('PRJ.id')
|
||||
->groupBy('PEM.tarif')
|
||||
->groupBy('PRJ.projectname')
|
||||
->get();
|
||||
|
||||
return $projectHours;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
<?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,
|
||||
ROUND(SUM(projecthours), 0) AS projecthours,
|
||||
ROUND(SUM(profitablehours), 0) AS profitablehours,
|
||||
ROUND(SUM(nonprofitablehours), 0) AS nonprofitablehours,
|
||||
ROUND(SUM(revenues), 0) AS revenues,
|
||||
ROUND(SUM(nonprojecthours), 0) AS nonprojecthours,
|
||||
ROUND(SUM(projecthours + nonprojecthours), 0) 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 EMH
|
||||
JOIN hourtypes HTY
|
||||
ON HTY.id = EMH.hourtype_id
|
||||
WHERE YEAR(hourdate) = '{$year}'
|
||||
AND reportable = 'T' ";
|
||||
if( $month != 0 ) $sql .= "AND MONTH(hourdate) = '$month' ";
|
||||
$sql .= "
|
||||
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 hourtype_id <= 2 ";
|
||||
if( $month != 0 ) $sql .= "AND MONTH(hourdate) = '$month' ";
|
||||
$sql .= "
|
||||
GROUP BY PEM.user_id, MONTH(hourdate)
|
||||
UNION
|
||||
SELECT PH.projectemployee_id AS user_id,
|
||||
MONTH(hourdate) monthID,
|
||||
SUM(hours) AS projecthours,
|
||||
0 AS profitablehours,
|
||||
SUM(IF(hourtype_id = 3, hours, 0)) AS nonprofitablehours,
|
||||
0 AS revenues,
|
||||
0 AS nonprojecthours
|
||||
FROM projecthours PH
|
||||
WHERE YEAR(hourdate) = '{$year}'
|
||||
AND hourtype_id = 3 ";
|
||||
if( $month != 0 ) $sql .= "AND MONTH(hourdate) = '$month' ";
|
||||
$sql .= "
|
||||
GROUP BY PH.projectemployee_id, MONTH(hourdate)
|
||||
) AS Q1
|
||||
|
||||
JOIN users AS USR
|
||||
ON USR.id = Q1.user_id
|
||||
GROUP BY user_id ";
|
||||
|
||||
return $sql;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by Pensare Software.
|
||||
* User: Theo Weijmer
|
||||
* Date: 20/02/2018
|
||||
* Time: 09:45
|
||||
*/
|
||||
|
||||
class QRecapProjects {
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by Pensare Software.
|
||||
* User: Theo Weijmer
|
||||
* Date: 07/03/2018
|
||||
* Time: 15:31
|
||||
*/
|
||||
|
||||
class QinvoiceMonthOverview {
|
||||
|
||||
public static function fire( $projectID, $year )
|
||||
{
|
||||
$sql = "SELECT MNT.id,
|
||||
month,
|
||||
COALESCE(forecastamount, 0) AS forecastamount,
|
||||
COALESCE(paymentamount, 0) AS paymentamount
|
||||
FROM months MNT
|
||||
LEFT JOIN (
|
||||
SELECT SUM(forecastamount) AS forecastamount, month_id
|
||||
FROM forecasts
|
||||
WHERE project_id = {$projectID}
|
||||
AND `year` = {$year}
|
||||
GROUP BY month_id
|
||||
) AS FCT
|
||||
ON MNT.id = FCT.month_id + 1
|
||||
LEFT JOIN (
|
||||
SELECT SUM(paymentamount) AS paymentamount, MONTH(paymentdate) AS month_id
|
||||
FROM payments PAY
|
||||
JOIN invoices INV
|
||||
ON INV.id = PAY.invoice_id
|
||||
WHERE INV.project_id = {$projectID}
|
||||
AND YEAR(paymentdate) = {$year}
|
||||
GROUP BY month_id
|
||||
) AS PAY
|
||||
ON MNT.id = PAY.month_id
|
||||
LEFT JOIN projects PRJ
|
||||
GROUP BY MNT.id
|
||||
ORDER BY MNT.id ";
|
||||
|
||||
return $sql;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by Pensare Software.
|
||||
* User: Theo Weijmer
|
||||
* Date: 02/03/2018
|
||||
* Time: 15:56
|
||||
*/
|
||||
|
||||
class Qinvoiceoverview {
|
||||
|
||||
|
||||
public static function fire( $year )
|
||||
{
|
||||
$sql = "
|
||||
SELECT PRJ.id, PRJ.projectnumber,
|
||||
PRJ.projectname,
|
||||
(own_revenue + other_revenue + OFF.costs ) AS revenues,
|
||||
CUS.name AS customername,
|
||||
SUM(IF( YEAR(invoicedate) = {$year}, invoiceamount* ((100 + VTS.vatrate)/100), 0)) AS currentyear,
|
||||
SUM(IF( YEAR(invoicedate) != {$year}, invoiceamount * ((100 + VTS.vatrate)/100), 0)) AS otheryear,
|
||||
SUM(COALESCE(Q1.currentyearpayed, 0)) AS currentyearpayed,
|
||||
SUM(COALESCE(Q1.otheryearpayed, 0)) AS otheryearpayed,
|
||||
CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname,
|
||||
( SELECT vatrate FROM vats WHERE archive = 'F' LIMIT 1 ) AS vatrate,
|
||||
COALESCE(reserved, 0 ) AS reserved,
|
||||
COALESCE(currentforecast, 0) AS currentforecast,
|
||||
COALESCE(otherforecast, 0) AS otherforecast
|
||||
FROM invoices INV
|
||||
RIGHT JOIN projects PRJ
|
||||
ON PRJ.id = INV.project_id
|
||||
JOIN offers OFF
|
||||
ON PRJ.id = OFF.project_id
|
||||
JOIN customers CUS
|
||||
ON CUS.id = PRJ.customer_id
|
||||
JOIN users USR
|
||||
ON USR.id = PRJ.projectleader_id
|
||||
JOIN vats VTS
|
||||
ON VTS.id = INV.vat_id
|
||||
LEFT JOIN (
|
||||
SELECT invoice_id,
|
||||
SUM(IF(YEAR(paymentdate) = {$year},paymentamount, 0)) AS currentyearpayed,
|
||||
SUM(IF(YEAR(paymentdate) != {$year},paymentamount, 0)) AS otheryearpayed
|
||||
FROM payments
|
||||
GROUP BY invoice_id
|
||||
) AS Q1
|
||||
ON INV.id = Q1.invoice_id
|
||||
LEFT JOIN (
|
||||
SELECT project_id,
|
||||
SUM( reservationamount) reserved
|
||||
FROM reservations
|
||||
GROUP BY project_id
|
||||
) AS Q2
|
||||
ON PRJ.id = Q2.project_id
|
||||
LEFT JOIN (
|
||||
SELECT project_id,
|
||||
SUM(IF(year = {$year}, IF(month_id >= MONTH(NOW()) -1, forecastamount, 0), 0)) AS currentforecast,
|
||||
SUM(IF(year > {$year}, forecastamount, 0)) AS otherforecast
|
||||
FROM forecasts
|
||||
GROUP BY project_id
|
||||
) AS Q3
|
||||
ON PRJ.id = Q3.project_id
|
||||
GROUP BY PRJ.projectnumber, PRJ.projectname ";
|
||||
|
||||
return $sql;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by Pensare Software.
|
||||
* User: Theo Weijmer
|
||||
* Date: 13/04/2018
|
||||
* Time: 14:27
|
||||
*/
|
||||
|
||||
class ReservationTotals {
|
||||
|
||||
public static function fire()
|
||||
{
|
||||
// UNION ALL wordt gebruikt voor een full outer join
|
||||
$sql = "SELECT PRJ.id AS projectID, external_id AS externalID,
|
||||
PRJ.projectname,
|
||||
COALESCE(fromreservation, 0) AS fromreservation,
|
||||
COALESCE(Q5.costs, 0) AS costs, COALESCE(reservation, 0) AS reservation,
|
||||
COALESCE(payed, 0) AS payed, (COALESCE(reservation, 0) - COALESCE(fromreservation, 0)) AS saldo,
|
||||
(COALESCE(Q5.costs, 0) - COALESCE(payed, 0)) AS saldoToPay, PRJ.projectnumber, EXT.contactperson,
|
||||
ROUND(( (OFF.costs * (100 + (SELECT vatrate
|
||||
FROM vats VTS
|
||||
JOIN projects P
|
||||
ON VTS.id = P.vat_id
|
||||
WHERE P.id = PRJ.id LIMIT 1))) / 100 ), 0) other_revenue
|
||||
FROM (
|
||||
SELECT COALESCE(reservation, 0) AS reservation, costs, payed, Q2.external_id, Q2.project_id,
|
||||
IF(from_reservation = 'T', payed, 0) fromreservation
|
||||
FROM (
|
||||
SELECT SUM(reservationamount) AS reservation, external_id, project_id
|
||||
FROM reservations
|
||||
GROUP BY external_id, project_id
|
||||
) Q1
|
||||
RIGHT JOIN
|
||||
(
|
||||
SELECT SUM(costs) AS costs, SUM(payed) AS payed, external_id, project_id, from_reservation
|
||||
FROM projectcosts
|
||||
GROUP BY external_id, project_id
|
||||
) Q2
|
||||
ON Q1.external_id = Q2.external_id AND Q1.project_id = Q2.project_id
|
||||
UNION ALL
|
||||
SELECT reservation, COALESCE(costs, 0), COALESCE(payed, 0), Q3.external_id, Q3.project_id,
|
||||
IF(from_reservation = 'T', payed, 0) fromreservation
|
||||
FROM (
|
||||
SELECT SUM(reservationamount) AS reservation, external_id, project_id
|
||||
FROM reservations
|
||||
GROUP BY external_id, project_id
|
||||
) Q3
|
||||
LEFT JOIN
|
||||
(
|
||||
SELECT SUM(costs) AS costs, SUM(payed) AS payed, external_id, project_id, id, from_reservation
|
||||
FROM projectcosts
|
||||
GROUP BY external_id, project_id
|
||||
) Q4
|
||||
ON Q3.external_id = Q4.external_id AND Q3.project_id = Q4.project_id
|
||||
WHERE Q4.id IS NULL
|
||||
) Q5
|
||||
RIGHT JOIN projects PRJ
|
||||
ON PRJ.id = Q5.project_id
|
||||
LEFT JOIN offers OFF
|
||||
ON PRJ.id = OFF.project_id
|
||||
LEFT JOIN externals EXT
|
||||
ON EXT.id = Q5.external_id
|
||||
WHERE OFF.costs > 0
|
||||
AND PRJ.archive = 'F'";
|
||||
|
||||
return $sql;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user