Merge pull request 'changed logic in invoice chart' (#208) from ranjith-dev into master
Reviewed-on: poc/pds#208
This commit is contained in:
@@ -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')
|
||||||
|
|||||||
Reference in New Issue
Block a user