update marketing
All checks were successful
All checks were successful
This commit is contained in:
@@ -6,10 +6,11 @@
|
||||
use App\Traits\DateFilterTrait;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Traits\DateRangeTrait;
|
||||
|
||||
class AcnooLossProfitHistoryReportController extends Controller
|
||||
{
|
||||
use DateFilterTrait;
|
||||
use DateFilterTrait, DateRangeTrait;
|
||||
|
||||
public function index(Request $request)
|
||||
{
|
||||
@@ -22,25 +23,42 @@ public function index(Request $request)
|
||||
}
|
||||
|
||||
$duration = $request->custom_days ?: 'today';
|
||||
[$filter_from_date, $filter_to_date] = $this->applyDateRange($duration, $request->from_date, $request->to_date);
|
||||
|
||||
$salesQuery = DB::table('sales')
|
||||
->select(
|
||||
DB::raw('"saleDate"::date as date'),
|
||||
DB::raw("
|
||||
CASE
|
||||
WHEN \"lossProfit\" >= 0 THEN 'positive'
|
||||
ELSE 'negative'
|
||||
END as profit_type
|
||||
"),
|
||||
DB::raw('SUM(actual_total_amount) as total_sales'),
|
||||
DB::raw('SUM("lossProfit") as total_sale_income')
|
||||
)
|
||||
->where('business_id', $businessId)
|
||||
->when($branchId, fn ($q) =>
|
||||
$q->where('branch_id', $branchId)
|
||||
$q->where('branch_id', $branchId)
|
||||
)
|
||||
->groupBy(DB::raw('"saleDate"::date'));
|
||||
->groupBy(
|
||||
DB::raw('"saleDate"::date'),
|
||||
DB::raw("
|
||||
CASE
|
||||
WHEN \"lossProfit\" >= 0 THEN 'positive'
|
||||
ELSE 'negative'
|
||||
END
|
||||
")
|
||||
);
|
||||
|
||||
$this->applyDateFilter($salesQuery, $duration, 'saleDate', $request->from_date, $request->to_date);
|
||||
|
||||
$dailySales = $salesQuery->get();
|
||||
|
||||
$sale_datas = $dailySales->map(fn ($sale) => (object)[
|
||||
'type' => 'Sale',
|
||||
'date' => $sale->date,
|
||||
'profit_type' => $sale->profit_type,
|
||||
'total_sales' => $sale->total_sales,
|
||||
'total_incomes' => $sale->total_sale_income,
|
||||
]);
|
||||
@@ -77,7 +95,10 @@ public function index(Request $request)
|
||||
$mergedIncomeSaleData->push($income);
|
||||
}
|
||||
|
||||
if ($sale = $sale_datas->firstWhere('date', $date)) {
|
||||
// multiple sale rows handle
|
||||
$salesOfDate = $sale_datas->where('date', $date);
|
||||
|
||||
foreach ($salesOfDate as $sale) {
|
||||
$mergedIncomeSaleData->push($sale);
|
||||
}
|
||||
}
|
||||
@@ -87,14 +108,14 @@ public function index(Request $request)
|
||||
if (moduleCheck('HrmAddon')) {
|
||||
$payrollQuery = DB::table('payrolls')
|
||||
->select(
|
||||
DB::raw('DATE(date) as date'),
|
||||
DB::raw('"date"::date as date'),
|
||||
DB::raw('SUM(amount) as total_payrolls')
|
||||
)
|
||||
->where('business_id', $businessId)
|
||||
->when($branchId, fn ($q) =>
|
||||
$q->where('branch_id', $branchId)
|
||||
)
|
||||
->groupBy(DB::raw('DATE(date)'));
|
||||
->groupBy(DB::raw('"date"::date'));
|
||||
|
||||
$this->applyDateFilter($payrollQuery, $duration, 'date', $request->from_date, $request->to_date);
|
||||
$dailyPayrolls = $payrollQuery->get();
|
||||
@@ -145,34 +166,6 @@ public function index(Request $request)
|
||||
$totalExpenses = $mergedExpenseData->sum('total_expenses');
|
||||
$netProfit = $grossIncomeProfit - $totalExpenses;
|
||||
|
||||
$allTimeSales = DB::table('sales')
|
||||
->where('business_id', $businessId)
|
||||
->when($branchId, fn ($q) => $q->where('branch_id', $branchId))
|
||||
->sum('actual_total_amount');
|
||||
|
||||
$allTimeIncomes = DB::table('incomes')
|
||||
->where('business_id', $businessId)
|
||||
->when($branchId, fn ($q) => $q->where('branch_id', $branchId))
|
||||
->sum('amount');
|
||||
|
||||
$allTimePayrolls = moduleCheck('HrmAddon')
|
||||
? DB::table('payrolls')
|
||||
->where('business_id', $businessId)
|
||||
->when($branchId, fn ($q) => $q->where('branch_id', $branchId))
|
||||
->sum('amount')
|
||||
: 0;
|
||||
|
||||
$allTimeExpensesOnly = DB::table('expenses')
|
||||
->where('business_id', $businessId)
|
||||
->when($branchId, fn ($q) => $q->where('branch_id', $branchId))
|
||||
->sum('amount');
|
||||
|
||||
$allTimeSaleProfit = DB::table('sales')->where('business_id', $businessId)->when($branchId, fn ($q) => $q->where('branch_id', $branchId))->sum('lossProfit');
|
||||
|
||||
$cardGrossProfit = $allTimeIncomes + $allTimeSaleProfit;
|
||||
$totalCardExpenses = $allTimePayrolls + $allTimeExpensesOnly;
|
||||
$cardNetProfit = $cardGrossProfit - $totalCardExpenses;
|
||||
|
||||
return view('business::loss-profit-histories.index', compact(
|
||||
'mergedIncomeSaleData',
|
||||
'mergedExpenseData',
|
||||
@@ -180,9 +173,9 @@ public function index(Request $request)
|
||||
'grossIncomeProfit',
|
||||
'totalExpenses',
|
||||
'netProfit',
|
||||
'cardGrossProfit',
|
||||
'totalCardExpenses',
|
||||
'cardNetProfit'
|
||||
'duration',
|
||||
'filter_from_date',
|
||||
'filter_to_date'
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user