Conversie codeigniter 4

This commit is contained in:
2026-01-09 11:41:28 +01:00
parent dbd8c8aed2
commit f0b9c6ad40
242 changed files with 20034 additions and 346 deletions
@@ -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;
}
}