Files
opensourcepos/app/Models/Reports/Summary_suppliers.php
BudsieBuds e83c23cf0c Improve code style and PSR-12 compliance (#4204)
* Improve code style and PSR-12 compliance
- refactored code formatting to adhere to PSR-12 guidelines
- standardized coding conventions across the codebase
- added missing framework files and reverted markup changes
- reformatted arrays for enhanced readability
- updated language files for consistent styling and clarity
- minor miscellaneous improvements
2025-05-02 19:37:06 +02:00

61 lines
2.1 KiB
PHP

<?php
namespace App\Models\Reports;
class Summary_suppliers extends Summary_report
{
/**
* @return array[]
*/
protected function _get_data_columns(): array // TODO: hungarian notation
{
return [
['supplier_name' => lang('Reports.supplier')],
['quantity' => lang('Reports.quantity')],
['subtotal' => lang('Reports.subtotal'), 'sorter' => 'number_sorter'],
['tax' => lang('Reports.tax'), 'sorter' => 'number_sorter'],
['total' => lang('Reports.total'), 'sorter' => 'number_sorter'],
['cost' => lang('Reports.cost'), 'sorter' => 'number_sorter'],
['profit' => lang('Reports.profit'), 'sorter' => 'number_sorter']
];
}
/**
* @param array $inputs
* @param object $builder
* @return void
*/
protected function _select(array $inputs, object &$builder): void // TODO: hungarian notation
{
parent::_select($inputs, $builder); // TODO: hungarian notation
$builder->select('
MAX(CONCAT(supplier_c.company_name, " (", supplier_p.first_name, " ", supplier_p.last_name, ")")) AS supplier,
SUM(sales_items.quantity_purchased) AS quantity_purchased
');
}
/**
* @param object $builder
* @return void
*/
protected function _from(object &$builder): void // TODO: hungarian notation
{
parent::_from($builder); // TODO: hungarian notation
$builder->join('items AS items', 'sales_items.item_id = items.item_id');
$builder->join('suppliers AS supplier_c', 'items.supplier_id = supplier_c.person_id ');
$builder->join('people AS supplier_p', 'items.supplier_id = supplier_p.person_id');
}
/**
* @param object $builder
* @return void
*/
protected function _group_order(object &$builder): void // TODO: hungarian notation
{
$builder->groupBy('items.supplier_id');
$builder->orderBy('MAX(CONCAT(supplier_c.company_name, " (", supplier_p.first_name, " ", supplier_p.last_name, ")"))');
}
}