Fixes for chart queries
This commit is contained in:
parent
d7ddbda9eb
commit
c8032c834e
|
|
@ -27,24 +27,30 @@ trait ChartQueries
|
||||||
$user_filter = $this->is_admin ? '' : 'AND expenses.user_id = '.$this->user->id;
|
$user_filter = $this->is_admin ? '' : 'AND expenses.user_id = '.$this->user->id;
|
||||||
|
|
||||||
return DB::select("
|
return DB::select("
|
||||||
SELECT
|
SELECT
|
||||||
SUM(CASE
|
SUM(CASE
|
||||||
WHEN expenses.uses_inclusive_taxes = 0 THEN
|
WHEN expenses.uses_inclusive_taxes = 0 THEN
|
||||||
expenses.amount +
|
expenses.amount +
|
||||||
(COALESCE(expenses.tax_amount1, 0) + COALESCE(expenses.tax_amount2, 0) + COALESCE(expenses.tax_amount3, 0)) +
|
(COALESCE(expenses.tax_amount1, 0) + COALESCE(expenses.tax_amount2, 0) + COALESCE(expenses.tax_amount3, 0)) +
|
||||||
(
|
(
|
||||||
(expenses.amount * COALESCE(expenses.tax_rate1, 0)/100) +
|
(expenses.amount * COALESCE(expenses.tax_rate1, 0)/100) +
|
||||||
(expenses.amount * COALESCE(expenses.tax_rate2, 0)/100) +
|
(expenses.amount * COALESCE(expenses.tax_rate2, 0)/100) +
|
||||||
(expenses.amount * COALESCE(expenses.tax_rate3, 0)/100)
|
(expenses.amount * COALESCE(expenses.tax_rate3, 0)/100)
|
||||||
)
|
)
|
||||||
ELSE expenses.amount
|
ELSE expenses.amount
|
||||||
END) as amount,
|
END) as amount,
|
||||||
IFNULL(expenses.currency_id, :company_currency) as currency_id
|
IFNULL(expenses.currency_id, :company_currency) as currency_id
|
||||||
FROM expenses
|
FROM expenses
|
||||||
|
LEFT JOIN clients
|
||||||
|
ON clients.id = expenses.client_id
|
||||||
|
LEFT JOIN vendors
|
||||||
|
ON vendors.id = expenses.vendor_id
|
||||||
WHERE expenses.is_deleted = 0
|
WHERE expenses.is_deleted = 0
|
||||||
AND expenses.company_id = :company_id
|
AND expenses.company_id = :company_id
|
||||||
AND (expenses.date BETWEEN :start_date AND :end_date)
|
AND (expenses.date BETWEEN :start_date AND :end_date)
|
||||||
{$user_filter}
|
{$user_filter}
|
||||||
|
AND (clients.id IS NULL OR clients.is_deleted = 0)
|
||||||
|
AND (vendors.id IS NULL OR vendors.is_deleted = 0)
|
||||||
GROUP BY currency_id
|
GROUP BY currency_id
|
||||||
", ['company_currency' => $this->company->settings->currency_id, 'company_id' => $this->company->id, 'start_date' => $start_date, 'end_date' => $end_date]);
|
", ['company_currency' => $this->company->settings->currency_id, 'company_id' => $this->company->id, 'start_date' => $start_date, 'end_date' => $end_date]);
|
||||||
}
|
}
|
||||||
|
|
@ -54,40 +60,46 @@ trait ChartQueries
|
||||||
$user_filter = $this->is_admin ? '' : 'AND expenses.user_id = '.$this->user->id;
|
$user_filter = $this->is_admin ? '' : 'AND expenses.user_id = '.$this->user->id;
|
||||||
|
|
||||||
return DB::select("
|
return DB::select("
|
||||||
SELECT
|
SELECT
|
||||||
SUM(
|
SUM(
|
||||||
CASE
|
CASE
|
||||||
WHEN expenses.currency_id = :company_currency THEN
|
WHEN expenses.currency_id = :company_currency THEN
|
||||||
CASE
|
CASE
|
||||||
WHEN expenses.uses_inclusive_taxes = 0 THEN
|
WHEN expenses.uses_inclusive_taxes = 0 THEN
|
||||||
expenses.amount +
|
expenses.amount +
|
||||||
(COALESCE(expenses.tax_amount1, 0) + COALESCE(expenses.tax_amount2, 0) + COALESCE(expenses.tax_amount3, 0)) +
|
(COALESCE(expenses.tax_amount1, 0) + COALESCE(expenses.tax_amount2, 0) + COALESCE(expenses.tax_amount3, 0)) +
|
||||||
(
|
(
|
||||||
(expenses.amount * COALESCE(expenses.tax_rate1, 0)/100) +
|
(expenses.amount * COALESCE(expenses.tax_rate1, 0)/100) +
|
||||||
(expenses.amount * COALESCE(expenses.tax_rate2, 0)/100) +
|
(expenses.amount * COALESCE(expenses.tax_rate2, 0)/100) +
|
||||||
(expenses.amount * COALESCE(expenses.tax_rate3, 0)/100)
|
(expenses.amount * COALESCE(expenses.tax_rate3, 0)/100)
|
||||||
)
|
)
|
||||||
ELSE expenses.amount
|
ELSE expenses.amount
|
||||||
END
|
END
|
||||||
ELSE
|
ELSE
|
||||||
(CASE
|
(CASE
|
||||||
WHEN expenses.uses_inclusive_taxes = 0 THEN
|
WHEN expenses.uses_inclusive_taxes = 0 THEN
|
||||||
expenses.amount +
|
expenses.amount +
|
||||||
(COALESCE(expenses.tax_amount1, 0) + COALESCE(expenses.tax_amount2, 0) + COALESCE(expenses.tax_amount3, 0)) +
|
(COALESCE(expenses.tax_amount1, 0) + COALESCE(expenses.tax_amount2, 0) + COALESCE(expenses.tax_amount3, 0)) +
|
||||||
(
|
(
|
||||||
(expenses.amount * COALESCE(expenses.tax_rate1, 0)/100) +
|
(expenses.amount * COALESCE(expenses.tax_rate1, 0)/100) +
|
||||||
(expenses.amount * COALESCE(expenses.tax_rate2, 0)/100) +
|
(expenses.amount * COALESCE(expenses.tax_rate2, 0)/100) +
|
||||||
(expenses.amount * COALESCE(expenses.tax_rate3, 0)/100)
|
(expenses.amount * COALESCE(expenses.tax_rate3, 0)/100)
|
||||||
)
|
)
|
||||||
ELSE expenses.amount
|
ELSE expenses.amount
|
||||||
END) * COALESCE(NULLIF(expenses.exchange_rate, 0), 1)
|
END) * COALESCE(NULLIF(expenses.exchange_rate, 0), 1)
|
||||||
END
|
END
|
||||||
) AS amount
|
) AS amount
|
||||||
FROM expenses
|
FROM expenses
|
||||||
|
LEFT JOIN clients
|
||||||
|
ON clients.id = expenses.client_id
|
||||||
|
LEFT JOIN vendors
|
||||||
|
ON vendors.id = expenses.vendor_id
|
||||||
WHERE expenses.is_deleted = 0
|
WHERE expenses.is_deleted = 0
|
||||||
AND expenses.company_id = :company_id
|
AND expenses.company_id = :company_id
|
||||||
AND (expenses.date BETWEEN :start_date AND :end_date)
|
AND (expenses.date BETWEEN :start_date AND :end_date)
|
||||||
{$user_filter}
|
{$user_filter}
|
||||||
|
AND (clients.id IS NULL OR clients.is_deleted = 0)
|
||||||
|
AND (vendors.id IS NULL OR vendors.is_deleted = 0)
|
||||||
", ['company_currency' => $this->company->settings->currency_id, 'company_id' => $this->company->id, 'start_date' => $start_date, 'end_date' => $end_date]);
|
", ['company_currency' => $this->company->settings->currency_id, 'company_id' => $this->company->id, 'start_date' => $start_date, 'end_date' => $end_date]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -128,10 +140,16 @@ trait ChartQueries
|
||||||
) AS total,
|
) AS total,
|
||||||
expenses.date
|
expenses.date
|
||||||
FROM expenses
|
FROM expenses
|
||||||
|
LEFT JOIN clients
|
||||||
|
ON clients.id = expenses.client_id
|
||||||
|
LEFT JOIN vendors
|
||||||
|
ON vendors.id = expenses.vendor_id
|
||||||
WHERE (expenses.date BETWEEN :start_date AND :end_date)
|
WHERE (expenses.date BETWEEN :start_date AND :end_date)
|
||||||
AND expenses.company_id = :company_id
|
AND expenses.company_id = :company_id
|
||||||
AND expenses.is_deleted = 0
|
AND expenses.is_deleted = 0
|
||||||
{$user_filter}
|
{$user_filter}
|
||||||
|
AND (clients.id IS NULL OR clients.is_deleted = 0)
|
||||||
|
AND (vendors.id IS NULL OR vendors.is_deleted = 0)
|
||||||
GROUP BY expenses.date
|
GROUP BY expenses.date
|
||||||
", [
|
", [
|
||||||
'company_currency' => $this->company->settings->currency_id,
|
'company_currency' => $this->company->settings->currency_id,
|
||||||
|
|
@ -164,10 +182,16 @@ trait ChartQueries
|
||||||
) as total,
|
) as total,
|
||||||
expenses.date
|
expenses.date
|
||||||
FROM expenses
|
FROM expenses
|
||||||
|
LEFT JOIN clients
|
||||||
|
ON clients.id = expenses.client_id
|
||||||
|
LEFT JOIN vendors
|
||||||
|
ON vendors.id = expenses.vendor_id
|
||||||
WHERE (expenses.date BETWEEN :start_date AND :end_date)
|
WHERE (expenses.date BETWEEN :start_date AND :end_date)
|
||||||
AND expenses.company_id = :company_id
|
AND expenses.company_id = :company_id
|
||||||
AND expenses.is_deleted = 0
|
AND expenses.is_deleted = 0
|
||||||
{$user_filter}
|
{$user_filter}
|
||||||
|
AND (clients.id IS NULL OR clients.is_deleted = 0)
|
||||||
|
AND (vendors.id IS NULL OR vendors.is_deleted = 0)
|
||||||
AND IFNULL(expenses.currency_id, :company_currency) = :currency_id
|
AND IFNULL(expenses.currency_id, :company_currency) = :currency_id
|
||||||
GROUP BY expenses.date
|
GROUP BY expenses.date
|
||||||
", [
|
", [
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue