label('NO') ->state(function ($record) use (&$rowNumber) { // Increment and return the row number return ++$rowNumber; }), ExportColumn::make('plant.name') ->label('PLANT NAME'), ExportColumn::make('item.code') ->label('ITEM CODE'), ExportColumn::make('document_number') ->label('DOCUMENT NUMBER'), ExportColumn::make('invoice_number') ->label('INVOICE NUMBER'), ExportColumn::make('supplier_number') ->label('SUPPLIER NUMBER'), ExportColumn::make('inspection_lot_number') ->label('INSPECTION LOT NUMBER'), ExportColumn::make('quantity') ->label('QUANTITY'), ExportColumn::make('scanned_quantity') ->label('SCANNED QUANTITY') ->getStateUsing(function ($record) { return PanelBoxValidation::where('plant_id', $record->plant_id) ->where('production_order', $record->document_number) ->where('inspection_lot_number', $record->inspection_lot_number) ->whereHas('stickerMaster', function ($query) use ($record) { $query->where('item_id', $record->item_id); }) ->count(); }), ExportColumn::make('created_at') ->label('CREATED AT'), ExportColumn::make('updated_at') ->label('UPDATED AT'), ExportColumn::make('created_by') ->label('CREATED BY'), ExportColumn::make('updated_by') ->label('UPDATED BY'), ExportColumn::make('deleted_at') ->label('DELETED AT') ->enabledByDefault(false), ]; } public static function getCompletedNotificationBody(Export $export): string { $body = 'Your panel gr master export has completed and ' . number_format($export->successful_rows) . ' ' . str('row')->plural($export->successful_rows) . ' exported.'; if ($failedRowsCount = $export->getFailedRowsCount()) { $body .= ' ' . number_format($failedRowsCount) . ' ' . str('row')->plural($failedRowsCount) . ' failed to export.'; } return $body; } }