changed logic in invoice chart
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 10s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 9s
Gemini PR Review / Gemini PR Review (pull_request) Failing after 13s
Laravel Pint / pint (pull_request) Successful in 2m31s
Laravel Larastan / larastan (pull_request) Failing after 3m17s

This commit is contained in:
dhanabalan
2026-01-20 17:47:56 +05:30
parent d9319b1ec6
commit 98cafeb5af

View File

@@ -206,6 +206,7 @@ class InvoiceChart extends ChartWidget
// $weekEnd = $weekStart->copy()->addDays(6);
$weekEnd = $weekStart->copy()->addDays(6)->endOfDay();
// If week end exceeds end of month, limit it
if ($weekEnd->greaterThan($endOfMonth)) {
$weekEnd = $endOfMonth->copy()->endOfDay();
@@ -241,17 +242,46 @@ class InvoiceChart extends ChartWidget
// --- Completed ---
$queryCompleted = InvoiceValidation::select('invoice_number')
->where('plant_id', $selectedPlant)
->whereBetween('updated_at', [$weekStart, $weekEnd]);
->where('plant_id', $selectedPlant);
// ->whereBetween('updated_at', [$weekStart, $weekEnd]);
if ($selectedInvoice == 'individual_material') {
$queryCompleted->where('quantity', 1)
// $queryCompleted->where('quantity', 1)
// ->groupBy('invoice_number')
// ->havingRaw("COUNT(*) = SUM(CASE WHEN serial_number IS NOT NULL AND serial_number != '' THEN 1 ELSE 0 END)");
$queryCompleted
->where('quantity', 1)
->groupBy('invoice_number')
->havingRaw("COUNT(*) = SUM(CASE WHEN serial_number IS NOT NULL AND serial_number != '' THEN 1 ELSE 0 END)");
->havingRaw("
COUNT(*) = SUM(
CASE
WHEN serial_number IS NOT NULL
AND serial_number != ''
THEN 1 ELSE 0
END
)
")
->havingRaw("
MAX(updated_at) BETWEEN ? AND ?
", [$weekStart, $weekEnd]);
} elseif ($selectedInvoice == 'serial_invoice') {
$queryCompleted->whereNull('quantity')
// $queryCompleted->whereNull('quantity')
// ->groupBy('invoice_number')
// ->havingRaw("COUNT(*) = SUM(CASE WHEN scanned_status = 'Scanned' THEN 1 ELSE 0 END)");
$queryCompleted
->whereNull('quantity')
->groupBy('invoice_number')
->havingRaw("COUNT(*) = SUM(CASE WHEN scanned_status = 'Scanned' THEN 1 ELSE 0 END)");
->havingRaw("
COUNT(*) = SUM(
CASE
WHEN scanned_status = 'Scanned' THEN 1
ELSE 0
END
)
")
->havingRaw("
MAX(updated_at) BETWEEN ? AND ?
", [$weekStart, $weekEnd]);
} elseif ($selectedInvoice == 'bundle_material') {
$queryCompleted->where('quantity', '>', 1)
->groupBy('invoice_number')