diff --git a/app/Filament/Exports/EquipmentMasterExporter.php b/app/Filament/Exports/EquipmentMasterExporter.php new file mode 100644 index 0000000..c5783ea --- /dev/null +++ b/app/Filament/Exports/EquipmentMasterExporter.php @@ -0,0 +1,74 @@ +label('NO') + ->state(function ($record) use (&$rowNumber) { + // Increment and return the row number + return ++$rowNumber; + }), + ExportColumn::make('plant.name') + ->label('PLANT'), + ExportColumn::make('machine.name') + ->label('MACHINE NAME'), + ExportColumn::make('name') + ->label('NAME'), + ExportColumn::make('description') + ->label('DESCRIPTION'), + ExportColumn::make('make') + ->label('MAKE'), + ExportColumn::make('model') + ->label('MODEL'), + ExportColumn::make('equipment_number') + ->label('EQUIPMENT NUMBER'), + ExportColumn::make('instrument_serial_number') + ->label('INSTRUMENT SERIAL NUMBER'), + ExportColumn::make('calibrated_on') + ->label('CALIBRATED ON'), + ExportColumn::make('frequency') + ->label('FREQUENCY'), + ExportColumn::make('next_calibration_date') + ->label('NEXT CALIBRATION DATE'), + ExportColumn::make('calibrated_by') + ->label('CALIBRATED BY'), + ExportColumn::make('calibration_certificate') + ->label('CALIBRATION CERTIFICATE'), + 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 equipment 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; + } +} diff --git a/app/Filament/Imports/EquipmentMasterImporter.php b/app/Filament/Imports/EquipmentMasterImporter.php new file mode 100644 index 0000000..3634fd1 --- /dev/null +++ b/app/Filament/Imports/EquipmentMasterImporter.php @@ -0,0 +1,109 @@ +requiredMapping() + ->exampleHeader('Plant Name') + ->example('Ransar Industries-I') + ->label('Plant Name') + ->relationship(resolveUsing:'name') + ->rules(['required']), + ImportColumn::make('machine') + ->requiredMapping() + ->exampleHeader('Machine Name') + ->example('1006378') + ->label('Machine Name') + ->relationship(resolveUsing:'name') + ->rules(['required']), + ImportColumn::make('name') + ->label('Name') + ->exampleHeader('Name') + ->example('463605 E-E-078'), + ImportColumn::make('description') + ->label('Description') + ->exampleHeader('Description') + ->example('FIN.6INCH.HOUSING LOWER 150R3+ CI RUN-OUT CHECKING FIXTURE'), + ImportColumn::make('make') + ->label('Make') + ->exampleHeader('Make') + ->example('Ok'), + ImportColumn::make('model') + ->label('Model') + ->exampleHeader('Model') + ->example('Ok'), + ImportColumn::make('equipment_number') + ->label('Equipment Number') + ->exampleHeader('Equipment Number') + ->example('463605 E-E-078'), + ImportColumn::make('instrument_serial_number') + ->label('Instrument Serial Number') + ->exampleHeader('Instrument Serial Number') + ->example('131548498'), + ImportColumn::make('calibrated_on') + ->label('Calibrated On') + ->exampleHeader('Calibrated On') + ->example('01-09-2025 08:00:00') + ->requiredMapping() + ->rules(['required', 'datetime']), + ImportColumn::make('frequency') + ->label('Frequency') + ->exampleHeader('Frequency') + ->example('15') + ->requiredMapping() + ->numeric() + ->rules(['required', 'integer']), + ImportColumn::make('next_calibration_date') + ->label('Next Calibration Date') + ->exampleHeader('Next Calibration Date') + ->requiredMapping() + ->example('16-09-2025 08:00:00') + ->rules(['required', 'datetime']), + ImportColumn::make('calibrated_by') + ->label('Calibration By') + ->example('Sri Venkateswara Tools') + ->exampleHeader('Calibration By'), + ImportColumn::make('calibration_certificate') + ->label('Calibration Certificate') + ->example('1231CRI651') + ->exampleHeader('Calibration Certificate'), + ImportColumn::make('created_by') + ->label('Created By') + ->example('RAS00296') + ->exampleHeader('Created By'), + ]; + } + + public function resolveRecord(): ?EquipmentMaster + { + // return EquipmentMaster::firstOrNew([ + // // Update existing records, matching them by `$this->data['column_name']` + // 'email' => $this->data['email'], + // ]); + + return new EquipmentMaster(); + } + + public static function getCompletedNotificationBody(Import $import): string + { + $body = 'Your equipment master import has completed and ' . number_format($import->successful_rows) . ' ' . str('row')->plural($import->successful_rows) . ' imported.'; + + if ($failedRowsCount = $import->getFailedRowsCount()) { + $body .= ' ' . number_format($failedRowsCount) . ' ' . str('row')->plural($failedRowsCount) . ' failed to import.'; + } + + return $body; + } +}