changed logic in invoice chart #208

Merged
jothi merged 1 commits from ranjith-dev into master 2026-01-20 12:18:11 +00:00

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')