66 lines
3.1 KiB
PHP
66 lines
3.1 KiB
PHP
<?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 ) 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;
|
|
}
|
|
} |