categories for invoices/bills
This commit is contained in:
@ -243,52 +243,63 @@ class Dashboard extends Controller
|
||||
|
||||
private function calculateAmounts()
|
||||
{
|
||||
$incomes_amount = $expenses_amount = 0;
|
||||
$incomes_amount = $open_invoice = $overdue_invoice = 0;
|
||||
$expenses_amount = $open_bill = $overdue_bill = 0;
|
||||
|
||||
// Invoices
|
||||
$invoices = Invoice::with('payments')->accrued()->get();
|
||||
list($invoice_paid_amount, $open_invoice, $overdue_invoice) = $this->calculateTotals($invoices, 'invoice');
|
||||
|
||||
$incomes_amount += $invoice_paid_amount;
|
||||
|
||||
// Add to Incomes By Category
|
||||
$this->addToIncomeDonut('#00c0ef', $invoice_paid_amount, trans_choice('general.invoices', 2));
|
||||
|
||||
// Bills
|
||||
$bills = Bill::with('payments')->accrued()->get();
|
||||
list($bill_paid_amount, $open_bill, $overdue_bill) = $this->calculateTotals($bills, 'bill');
|
||||
|
||||
$expenses_amount += $bill_paid_amount;
|
||||
|
||||
// Add to Expenses By Category
|
||||
$this->addToExpenseDonut('#dd4b39', $bill_paid_amount, trans_choice('general.bills', 2));
|
||||
|
||||
// Revenues & Payments
|
||||
$categories = Category::orWhere('type', 'income')->orWhere('type', 'expense')->enabled()->get();
|
||||
// Get categories
|
||||
$categories = Category::with(['bills', 'invoices', 'payments', 'revenues'])->orWhere('type', 'income')->orWhere('type', 'expense')->enabled()->get();
|
||||
|
||||
foreach ($categories as $category) {
|
||||
switch ($category->type) {
|
||||
case 'income':
|
||||
$amount = 0;
|
||||
|
||||
// Revenues
|
||||
foreach ($category->revenues as $revenue) {
|
||||
$amount += $revenue->getConvertedAmount();
|
||||
}
|
||||
|
||||
$incomes_amount += $amount;
|
||||
|
||||
// Invoices
|
||||
$invoices = $category->invoices()->accrued()->get();
|
||||
foreach ($invoices as $invoice) {
|
||||
list($paid, $open, $overdue) = $this->calculateInvoiceBillTotals($invoice, 'invoice');
|
||||
|
||||
$incomes_amount += $paid;
|
||||
$open_invoice += $open;
|
||||
$overdue_invoice += $overdue;
|
||||
|
||||
$amount += $paid;
|
||||
}
|
||||
|
||||
$this->addToIncomeDonut($category->color, $amount, $category->name);
|
||||
|
||||
$incomes_amount += $amount;
|
||||
break;
|
||||
case 'expense':
|
||||
$amount = 0;
|
||||
|
||||
// Payments
|
||||
foreach ($category->payments as $payment) {
|
||||
$amount += $payment->getConvertedAmount();
|
||||
}
|
||||
|
||||
$expenses_amount += $amount;
|
||||
|
||||
// Bills
|
||||
$bills = $category->bills()->accrued()->get();
|
||||
foreach ($bills as $bill) {
|
||||
list($paid, $open, $overdue) = $this->calculateInvoiceBillTotals($bill, 'bill');
|
||||
|
||||
$expenses_amount += $paid;
|
||||
$open_bill += $open;
|
||||
$overdue_bill += $overdue;
|
||||
|
||||
$amount += $paid;
|
||||
}
|
||||
|
||||
$this->addToExpenseDonut($category->color, $amount, $category->name);
|
||||
|
||||
$expenses_amount += $amount;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -382,22 +393,19 @@ class Dashboard extends Controller
|
||||
return $profit;
|
||||
}
|
||||
|
||||
private function calculateTotals($items, $type)
|
||||
private function calculateInvoiceBillTotals($item, $type)
|
||||
{
|
||||
$paid = $open = $overdue = 0;
|
||||
|
||||
$today = $this->today->toDateString();
|
||||
|
||||
foreach ($items as $item) {
|
||||
$paid += $item->getConvertedAmount();
|
||||
$paid += $item->getConvertedAmount();
|
||||
|
||||
$code_field = $type . '_status_code';
|
||||
|
||||
if ($item->$code_field == 'paid') {
|
||||
continue;
|
||||
}
|
||||
$code_field = $type . '_status_code';
|
||||
|
||||
if ($item->$code_field != 'paid') {
|
||||
$payments = 0;
|
||||
|
||||
if ($item->$code_field == 'partial') {
|
||||
foreach ($item->payments as $payment) {
|
||||
$payments += $payment->getConvertedAmount();
|
||||
|
@ -102,7 +102,9 @@ class Bills extends Controller
|
||||
|
||||
$taxes = Tax::enabled()->get()->pluck('title', 'id');
|
||||
|
||||
return view('expenses.bills.create', compact('vendors', 'currencies', 'items', 'taxes'));
|
||||
$categories = Category::enabled()->type('expense')->pluck('name', 'id');
|
||||
|
||||
return view('expenses.bills.create', compact('vendors', 'currencies', 'items', 'taxes', 'categories'));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -319,7 +321,9 @@ class Bills extends Controller
|
||||
|
||||
$taxes = Tax::enabled()->get()->pluck('title', 'id');
|
||||
|
||||
return view('expenses.bills.edit', compact('bill', 'vendors', 'currencies', 'items', 'taxes'));
|
||||
$categories = Category::enabled()->type('expense')->pluck('name', 'id');
|
||||
|
||||
return view('expenses.bills.edit', compact('bill', 'vendors', 'currencies', 'items', 'taxes', 'categories'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -105,9 +105,11 @@ class Invoices extends Controller
|
||||
|
||||
$taxes = Tax::enabled()->get()->pluck('title', 'id');
|
||||
|
||||
$categories = Category::enabled()->type('income')->pluck('name', 'id');
|
||||
|
||||
$number = $this->getNextInvoiceNumber();
|
||||
|
||||
return view('incomes.invoices.create', compact('customers', 'currencies', 'items', 'taxes', 'number'));
|
||||
return view('incomes.invoices.create', compact('customers', 'currencies', 'items', 'taxes', 'categories', 'number'));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -340,7 +342,9 @@ class Invoices extends Controller
|
||||
|
||||
$taxes = Tax::enabled()->get()->pluck('title', 'id');
|
||||
|
||||
return view('incomes.invoices.edit', compact('invoice', 'customers', 'currencies', 'items', 'taxes'));
|
||||
$categories = Category::enabled()->type('income')->pluck('name', 'id');
|
||||
|
||||
return view('incomes.invoices.edit', compact('invoice', 'customers', 'currencies', 'items', 'taxes', 'categories'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -23,12 +23,7 @@ class ExpenseSummary extends Controller
|
||||
|
||||
$status = request('status');
|
||||
|
||||
//if ($filter != 'upcoming') {
|
||||
$categories = Category::enabled()->type('expense')->pluck('name', 'id')->toArray();
|
||||
//}
|
||||
|
||||
// Add Bill in Categories
|
||||
$categories[0] = trans_choice('general.bills', 2);
|
||||
$categories = Category::enabled()->type('expense')->pluck('name', 'id')->toArray();
|
||||
|
||||
// Get year
|
||||
$year = request('year');
|
||||
@ -49,15 +44,6 @@ class ExpenseSummary extends Controller
|
||||
'currency_rate' => 1
|
||||
);
|
||||
|
||||
// Bill
|
||||
$expenses[0][$dates[$j]] = array(
|
||||
'category_id' => 0,
|
||||
'name' => trans_choice('general.bills', 1),
|
||||
'amount' => 0,
|
||||
'currency_code' => setting('general.default_currency'),
|
||||
'currency_rate' => 1
|
||||
);
|
||||
|
||||
foreach ($categories as $category_id => $category_name) {
|
||||
$expenses[$category_id][$dates[$j]] = array(
|
||||
'category_id' => $category_id,
|
||||
@ -109,9 +95,6 @@ class ExpenseSummary extends Controller
|
||||
->credits(false)
|
||||
->view($chart_template);
|
||||
|
||||
// Expenses Graph
|
||||
$expenses_graph = json_encode($expenses_graph);
|
||||
|
||||
return view($view_template, compact('chart', 'dates', 'categories', 'expenses', 'totals'));
|
||||
}
|
||||
|
||||
@ -120,13 +103,7 @@ class ExpenseSummary extends Controller
|
||||
foreach ($items as $item) {
|
||||
$date = Date::parse($item->$date_field)->format('F');
|
||||
|
||||
if ($type == 'bill') {
|
||||
$category_id = 0;
|
||||
} else {
|
||||
$category_id = $item->category_id;
|
||||
}
|
||||
|
||||
if (!isset($expenses[$category_id])) {
|
||||
if (!isset($expenses[$item->category_id])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -139,9 +116,9 @@ class ExpenseSummary extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
$expenses[$category_id][$date]['amount'] += $amount;
|
||||
$expenses[$category_id][$date]['currency_code'] = $item->currency_code;
|
||||
$expenses[$category_id][$date]['currency_rate'] = $item->currency_rate;
|
||||
$expenses[$item->category_id][$date]['amount'] += $amount;
|
||||
$expenses[$item->category_id][$date]['currency_code'] = $item->currency_code;
|
||||
$expenses[$item->category_id][$date]['currency_rate'] = $item->currency_rate;
|
||||
|
||||
$graph[Date::parse($item->$date_field)->format('F-Y')] += $amount;
|
||||
|
||||
|
@ -26,19 +26,9 @@ class IncomeExpenseSummary extends Controller
|
||||
|
||||
$status = request('status');
|
||||
|
||||
//if ($filter != 'upcoming') {
|
||||
$income_categories = Category::enabled()->type('income')->pluck('name', 'id')->toArray();
|
||||
//}
|
||||
$income_categories = Category::enabled()->type('income')->pluck('name', 'id')->toArray();
|
||||
|
||||
// Add Invoice in Categories
|
||||
$income_categories[0] = trans_choice('general.invoices', 2);
|
||||
|
||||
//if ($filter != 'upcoming') {
|
||||
$expense_categories = Category::enabled()->type('expense')->pluck('name', 'id')->toArray();
|
||||
//}
|
||||
|
||||
// Add Bill in Categories
|
||||
$expense_categories[0] = trans_choice('general.bills', 2);
|
||||
$expense_categories = Category::enabled()->type('expense')->pluck('name', 'id')->toArray();
|
||||
|
||||
// Get year
|
||||
$year = request('year');
|
||||
@ -59,15 +49,6 @@ class IncomeExpenseSummary extends Controller
|
||||
'currency_rate' => 1
|
||||
);
|
||||
|
||||
// Compares
|
||||
$compares['income'][0][$dates[$j]] = array(
|
||||
'category_id' => 0,
|
||||
'name' => trans_choice('general.invoices', 1),
|
||||
'amount' => 0,
|
||||
'currency_code' => setting('general.default_currency'),
|
||||
'currency_rate' => 1
|
||||
);
|
||||
|
||||
foreach ($income_categories as $category_id => $category_name) {
|
||||
$compares['income'][$category_id][$dates[$j]] = array(
|
||||
'category_id' => $category_id,
|
||||
@ -78,14 +59,6 @@ class IncomeExpenseSummary extends Controller
|
||||
);
|
||||
}
|
||||
|
||||
$compares['expense'][0][$dates[$j]] = array(
|
||||
'category_id' => 0,
|
||||
'name' => trans_choice('general.bills', 1),
|
||||
'amount' => 0,
|
||||
'currency_code' => setting('general.default_currency'),
|
||||
'currency_rate' => 1
|
||||
);
|
||||
|
||||
foreach ($expense_categories as $category_id => $category_name) {
|
||||
$compares['expense'][$category_id][$dates[$j]] = array(
|
||||
'category_id' => $category_id,
|
||||
@ -167,15 +140,9 @@ class IncomeExpenseSummary extends Controller
|
||||
foreach ($items as $item) {
|
||||
$date = Date::parse($item->$date_field)->format('F');
|
||||
|
||||
if (($type == 'invoice') || ($type == 'bill')) {
|
||||
$category_id = 0;
|
||||
} else {
|
||||
$category_id = $item->category_id;
|
||||
}
|
||||
$group = (($type == 'invoice') || ($type == 'revenue')) ? 'income' : 'expense';
|
||||
|
||||
$group = (($type == 'invoice') || ($type == 'revenue')) ? 'income' : 'expense';
|
||||
|
||||
if (!isset($compares[$group][$category_id])) {
|
||||
if (!isset($compares[$group][$item->category_id])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -188,9 +155,9 @@ class IncomeExpenseSummary extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
$compares[$group][$category_id][$date]['amount'] += $amount;
|
||||
$compares[$group][$category_id][$date]['currency_code'] = $item->currency_code;
|
||||
$compares[$group][$category_id][$date]['currency_rate'] = $item->currency_rate;
|
||||
$compares[$group][$item->category_id][$date]['amount'] += $amount;
|
||||
$compares[$group][$item->category_id][$date]['currency_code'] = $item->currency_code;
|
||||
$compares[$group][$item->category_id][$date]['currency_rate'] = $item->currency_rate;
|
||||
|
||||
if ($group == 'income') {
|
||||
$graph[Date::parse($item->$date_field)->format('F-Y')] += $amount;
|
||||
|
@ -23,12 +23,7 @@ class IncomeSummary extends Controller
|
||||
|
||||
$status = request('status');
|
||||
|
||||
//if ($filter != 'upcoming') {
|
||||
$categories = Category::enabled()->type('income')->pluck('name', 'id')->toArray();
|
||||
//}
|
||||
|
||||
// Add Invoice in Categories
|
||||
$categories[0] = trans_choice('general.invoices', 2);
|
||||
$categories = Category::enabled()->type('income')->pluck('name', 'id')->toArray();
|
||||
|
||||
// Get year
|
||||
$year = request('year');
|
||||
@ -49,15 +44,6 @@ class IncomeSummary extends Controller
|
||||
'currency_rate' => 1
|
||||
);
|
||||
|
||||
// Invoice
|
||||
$incomes[0][$dates[$j]] = array(
|
||||
'category_id' => 0,
|
||||
'name' => trans_choice('general.invoices', 1),
|
||||
'amount' => 0,
|
||||
'currency_code' => setting('general.default_currency'),
|
||||
'currency_rate' => 1
|
||||
);
|
||||
|
||||
foreach ($categories as $category_id => $category_name) {
|
||||
$incomes[$category_id][$dates[$j]] = array(
|
||||
'category_id' => $category_id,
|
||||
@ -117,13 +103,7 @@ class IncomeSummary extends Controller
|
||||
foreach ($items as $item) {
|
||||
$date = Date::parse($item->$date_field)->format('F');
|
||||
|
||||
if ($type == 'invoice') {
|
||||
$category_id = 0;
|
||||
} else {
|
||||
$category_id = $item->category_id;
|
||||
}
|
||||
|
||||
if (!isset($incomes[$category_id])) {
|
||||
if (!isset($incomes[$item->category_id])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -136,9 +116,9 @@ class IncomeSummary extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
$incomes[$category_id][$date]['amount'] += $amount;
|
||||
$incomes[$category_id][$date]['currency_code'] = $item->currency_code;
|
||||
$incomes[$category_id][$date]['currency_rate'] = $item->currency_rate;
|
||||
$incomes[$item->category_id][$date]['amount'] += $amount;
|
||||
$incomes[$item->category_id][$date]['currency_code'] = $item->currency_code;
|
||||
$incomes[$item->category_id][$date]['currency_rate'] = $item->currency_rate;
|
||||
|
||||
$graph[Date::parse($item->$date_field)->format('F-Y')] += $amount;
|
||||
|
||||
|
@ -28,14 +28,8 @@ class ProfitLoss extends Controller
|
||||
|
||||
$income_categories = Category::enabled()->type('income')->pluck('name', 'id')->toArray();
|
||||
|
||||
// Add invoice to income categories
|
||||
$income_categories[0] = trans_choice('general.invoices', 2);
|
||||
|
||||
$expense_categories = Category::enabled()->type('expense')->pluck('name', 'id')->toArray();
|
||||
|
||||
// Add bill to expense categories
|
||||
$expense_categories[0] = trans_choice('general.bills', 2);
|
||||
|
||||
// Get year
|
||||
$year = request('year');
|
||||
if (empty($year)) {
|
||||
@ -53,15 +47,6 @@ class ProfitLoss extends Controller
|
||||
'currency_rate' => 1
|
||||
);
|
||||
|
||||
// Compares
|
||||
$compares['income'][0][$dates[$j]] = [
|
||||
'category_id' => 0,
|
||||
'name' => trans_choice('general.invoices', 1),
|
||||
'amount' => 0,
|
||||
'currency_code' => setting('general.default_currency'),
|
||||
'currency_rate' => 1
|
||||
];
|
||||
|
||||
foreach ($income_categories as $category_id => $category_name) {
|
||||
$compares['income'][$category_id][$dates[$j]] = [
|
||||
'category_id' => $category_id,
|
||||
@ -72,14 +57,6 @@ class ProfitLoss extends Controller
|
||||
];
|
||||
}
|
||||
|
||||
$compares['expense'][0][$dates[$j]] = [
|
||||
'category_id' => 0,
|
||||
'name' => trans_choice('general.bills', 1),
|
||||
'amount' => 0,
|
||||
'currency_code' => setting('general.default_currency'),
|
||||
'currency_rate' => 1
|
||||
];
|
||||
|
||||
foreach ($expense_categories as $category_id => $category_name) {
|
||||
$compares['expense'][$category_id][$dates[$j]] = [
|
||||
'category_id' => $category_id,
|
||||
@ -99,14 +76,6 @@ class ProfitLoss extends Controller
|
||||
'currency_rate' => 1
|
||||
];
|
||||
|
||||
$compares['income'][0]['total'] = [
|
||||
'category_id' => 0,
|
||||
'name' => trans_choice('general.totals', 1),
|
||||
'amount' => 0,
|
||||
'currency_code' => setting('general.default_currency'),
|
||||
'currency_rate' => 1
|
||||
];
|
||||
|
||||
$gross['income'] = $gross['expense'] = [1 => 0, 2 => 0, 3 => 0, 4 => 0, 'total' => 0];
|
||||
|
||||
foreach ($income_categories as $category_id => $category_name) {
|
||||
@ -119,14 +88,6 @@ class ProfitLoss extends Controller
|
||||
];
|
||||
}
|
||||
|
||||
$compares['expense'][0]['total'] = [
|
||||
'category_id' => 0,
|
||||
'name' => trans_choice('general.totals', 1),
|
||||
'amount' => 0,
|
||||
'currency_code' => setting('general.default_currency'),
|
||||
'currency_rate' => 1
|
||||
];
|
||||
|
||||
foreach ($expense_categories as $category_id => $category_name) {
|
||||
$compares['expense'][$category_id]['total'] = [
|
||||
'category_id' => $category_id,
|
||||
@ -196,15 +157,9 @@ class ProfitLoss extends Controller
|
||||
foreach ($items as $item) {
|
||||
$date = Date::parse($item->$date_field)->quarter;
|
||||
|
||||
if (($type == 'invoice') || ($type == 'bill')) {
|
||||
$category_id = 0;
|
||||
} else {
|
||||
$category_id = $item->category_id;
|
||||
}
|
||||
|
||||
$group = (($type == 'invoice') || ($type == 'revenue')) ? 'income' : 'expense';
|
||||
|
||||
if (!isset($compares[$group][$category_id])) {
|
||||
if (!isset($compares[$group][$item->category_id])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -217,10 +172,10 @@ class ProfitLoss extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
$compares[$group][$category_id][$date]['amount'] += $amount;
|
||||
$compares[$group][$category_id][$date]['currency_code'] = $item->currency_code;
|
||||
$compares[$group][$category_id][$date]['currency_rate'] = $item->currency_rate;
|
||||
$compares[$group][$category_id]['total']['amount'] += $amount;
|
||||
$compares[$group][$item->category_id][$date]['amount'] += $amount;
|
||||
$compares[$group][$item->category_id][$date]['currency_code'] = $item->currency_code;
|
||||
$compares[$group][$item->category_id][$date]['currency_rate'] = $item->currency_rate;
|
||||
$compares[$group][$item->category_id]['total']['amount'] += $amount;
|
||||
|
||||
if ($group == 'income') {
|
||||
$totals[$date]['amount'] += $amount;
|
||||
|
Reference in New Issue
Block a user