1
0
forked from poc/pds

Merge pull request 'changed logic in invoice chart' (#208) from ranjith-dev into master

Reviewed-on: poc/pds#208
This commit is contained in:
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);
$weekEnd = $weekStart->copy()->addDays(6)->endOfDay(); $weekEnd = $weekStart->copy()->addDays(6)->endOfDay();
// If week end exceeds end of month, limit it // If week end exceeds end of month, limit it
if ($weekEnd->greaterThan($endOfMonth)) { if ($weekEnd->greaterThan($endOfMonth)) {
$weekEnd = $endOfMonth->copy()->endOfDay(); $weekEnd = $endOfMonth->copy()->endOfDay();
@@ -241,17 +242,46 @@ class InvoiceChart extends ChartWidget
// --- Completed --- // --- Completed ---
$queryCompleted = InvoiceValidation::select('invoice_number') $queryCompleted = InvoiceValidation::select('invoice_number')
->where('plant_id', $selectedPlant) ->where('plant_id', $selectedPlant);
->whereBetween('updated_at', [$weekStart, $weekEnd]); // ->whereBetween('updated_at', [$weekStart, $weekEnd]);
if ($selectedInvoice == 'individual_material') { 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') ->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') { } 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') ->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') { } elseif ($selectedInvoice == 'bundle_material') {
$queryCompleted->where('quantity', '>', 1) $queryCompleted->where('quantity', '>', 1)
->groupBy('invoice_number') ->groupBy('invoice_number')