diff --git a/app/Filament/Exports/ItemCharacteristicExporter.php b/app/Filament/Exports/ItemCharacteristicExporter.php new file mode 100644 index 0000000..7b3b966 --- /dev/null +++ b/app/Filament/Exports/ItemCharacteristicExporter.php @@ -0,0 +1,355 @@ +label('NO') + ->state(function ($record) use (&$rowNumber) { + // Increment and return the row number + return ++$rowNumber; + }), + ExportColumn::make('plant.name') + ->label('PLANT'), + ExportColumn::make('item.code') + ->label('ITEM CODE'), + ExportColumn::make('class') + ->label('CLASS'), + ExportColumn::make('zz1_cn_bill_ord') + ->label('ZZ1 CN BILL ORDER'), + ExportColumn::make('zmm_amps') + ->label('ZMM AMPS'), + ExportColumn::make('zmm_brand') + ->label('ZMM BRAND'), + ExportColumn::make('zmm_degreeofprotection') + ->label('ZMM DEGREE OF PROTECTION'), + ExportColumn::make('zmm_delivery') + ->label('ZMM DELIVERY'), + ExportColumn::make('zmm_dir_rot') + ->label('ZMM DIRECTION OF ROTATION'), + ExportColumn::make('zmm_discharge') + ->label('ZMM DISCHARGE'), + ExportColumn::make('zmm_discharge_max') + ->label('ZMM DISCHARGE MAX'), + ExportColumn::make('zmm_discharge_min') + ->label('ZMM DISCHARGE MIN'), + ExportColumn::make('zmm_duty') + ->label('ZMM DUTY'), + ExportColumn::make('zmm_eff_motor') + ->label('ZMM EFF MOTOR'), + ExportColumn::make('zmm_eff_pump') + ->label('ZMM EFF PUMP'), + ExportColumn::make('zmm_frequency') + ->label('ZMM FREQUENCY'), + ExportColumn::make('zmm_head') + ->label('ZMM HEAD'), + ExportColumn::make('zmm_heading') + ->label('ZMM HEADING'), + ExportColumn::make('zmm_head_max') + ->label('ZMM HEAD MAX'), + ExportColumn::make('zmm_head_minimum') + ->label('ZMM HEAD MINIMUM'), + ExportColumn::make('zmm_idx_eff_mtr') + ->label('ZMM IDX EFF MTR'), + ExportColumn::make('zmm_idx_eff_pump') + ->label('ZMM IDX EFF PUMP'), + ExportColumn::make('zmm_kvacode') + ->label('ZMM KVACODE'), + ExportColumn::make('zmm_maxambtemp') + ->label('ZMM MAXAMB TEMP'), + ExportColumn::make('zmm_mincoolingflow') + ->label('ZMM MIN COOLING FLOW'), + ExportColumn::make('zmm_motorseries') + ->label('ZMM MOTOR SERIES'), + ExportColumn::make('zmm_motor_model') + ->label('ZMM MOTOR MODEL'), + ExportColumn::make('zmm_outlet') + ->label('ZMM OUTLET'), + ExportColumn::make('zmm_phase') + ->label('ZMM PHASE'), + ExportColumn::make('zmm_pressure') + ->label('ZMM PRESSURE'), + ExportColumn::make('zmm_pumpflowtype') + ->label('ZMM PUMP FLOW TYPE'), + ExportColumn::make('zmm_pumpseries') + ->label('ZMM PUMP SERIES'), + ExportColumn::make('zmm_pump_model') + ->label('ZMM PUMP MODEL'), + ExportColumn::make('zmm_ratedpower') + ->label('ZMM RATED POWER'), + ExportColumn::make('zmm_region') + ->label('ZMM REGION'), + ExportColumn::make('zmm_servicefactor') + ->label('ZMM SERVICE FACTOR'), + ExportColumn::make('zmm_servicefactormaximumamps') + ->label('ZMM SERVICE FACTOR MAXIMUM AMPS'), + ExportColumn::make('zmm_speed') + ->label('ZMM SPEED'), + ExportColumn::make('zmm_suction') + ->label('ZMM SUCTION'), + ExportColumn::make('zmm_suctionxdelivery') + ->label('ZMM SUCTION X DELIVERY'), + ExportColumn::make('zmm_supplysource') + ->label('ZMM SUPPLY SOURCE'), + ExportColumn::make('zmm_temperature') + ->label('ZMM TEMPERATURE'), + ExportColumn::make('zmm_thrustload') + ->label('ZMM THRUST LOAD'), + ExportColumn::make('zmm_volts') + ->label('ZMM VOLTS'), + ExportColumn::make('zmm_wire') + ->label('ZMM WIRE'), + ExportColumn::make('zmm_package') + ->label('ZMM PACKAGE'), + ExportColumn::make('zmm_pvarrayrating') + ->label('ZMM PV ARRAY RATING'), + ExportColumn::make('zmm_isi') + ->label('ZMM ISI'), + ExportColumn::make('zmm_isimotor') + ->label('ZMM ISI MOTOR'), + ExportColumn::make('zmm_isipump') + ->label('ZMM ISI PUMP'), + ExportColumn::make('zmm_isipumpset') + ->label('ZMM ISI PUMPSET'), + ExportColumn::make('zmm_pumpset_model') + ->label('ZMM PUMPSET MODEL'), + ExportColumn::make('zmm_stages') + ->label('ZMM STAGES'), + ExportColumn::make('zmm_headrange') + ->label('ZMM HEAD RANGE'), + ExportColumn::make('zmm_overall_efficiency') + ->label('ZMM OVERALL EFFICIENCY'), + ExportColumn::make('zmm_connection') + ->label('ZMM CONNECTION'), + ExportColumn::make('zmm_min_bore_size') + ->label('ZMM MIN BORE SIZE'), + ExportColumn::make('zmm_isireference') + ->label('ZMM ISI REFERENCE'), + ExportColumn::make('zmm_category') + ->label('ZMM CATEGORY'), + ExportColumn::make('zmm_submergence') + ->label('ZMM SUBMERGENCE'), + ExportColumn::make('zmm_capacitorstart') + ->label('ZMM CAPACITOR START'), + ExportColumn::make('zmm_capacitorrun') + ->label('ZMM CAPACITOR RUN'), + ExportColumn::make('zmm_inch') + ->label('ZMM INCH'), + ExportColumn::make('zmm_motor_type') + ->label('ZMM MOTOR TYPE'), + ExportColumn::make('zmm_dismantle_direction') + ->label('ZMM DISMANTLE DIRECTION'), + ExportColumn::make('zmm_eff_ovrall') + ->label('ZMM EFF OVRALL'), + ExportColumn::make('zmm_bodymoc') + ->label('ZMM BODY MOC'), + ExportColumn::make('zmm_rotormoc') + ->label('ZMM ROTOR MOC'), + ExportColumn::make('zmm_dlwl') + ->label('ZMM DLWL'), + ExportColumn::make('zmm_inputpower') + ->label('ZMM INPUT POWER'), + ExportColumn::make('zmm_imp_od') + ->label('ZMM IMP OD'), + ExportColumn::make('zmm_ambtemp') + ->label('ZMM AMBTEMP'), + ExportColumn::make('zmm_de') + ->label('ZMM DE'), + ExportColumn::make('zmm_dischargerange') + ->label('ZMM DISCHARGE RANGE'), + ExportColumn::make('zmm_efficiency_class') + ->label('ZMM EFFICIENCY CLASS'), + ExportColumn::make('zmm_framesize') + ->label('ZMM FRAME SIZE'), + ExportColumn::make('zmm_impellerdiameter') + ->label('ZMM IMPELLER DIAMETER'), + ExportColumn::make('zmm_insulationclass') + ->label('ZMM INSULATION CLASS'), + ExportColumn::make('zmm_maxflow') + ->label('ZMM MAX FLOW'), + ExportColumn::make('zmm_minhead') + ->label('ZMM MIN HEAD'), + ExportColumn::make('zmm_mtrlofconst') + ->label('ZMM MTR LOF CONST'), + ExportColumn::make('zmm_nde') + ->label('ZMM NDE'), + ExportColumn::make('zmm_powerfactor') + ->label('ZMM POWER FACTOR'), + ExportColumn::make('zmm_tagno') + ->label('ZMM TAG NO'), + ExportColumn::make('zmm_year') + ->label('ZMM YEAR'), + ExportColumn::make('zmm_laser_name') + ->label('ZMM LASER NAME'), + ExportColumn::make('zmm_beenote') + ->label('ZMM BEENOTE'), + ExportColumn::make('zmm_beenumber') + ->label('ZMM BEENUMBER'), + ExportColumn::make('zmm_beestar') + ->label('ZMM BEESTAR'), + ExportColumn::make('zmm_logo_ce') + ->label('ZMM LOGO CE'), + ExportColumn::make('zmm_codeclass') + ->label('ZMM CODECLASS'), + ExportColumn::make('zmm_colour') + ->label('ZMM COLOUR'), + ExportColumn::make('zmm_logo_cp') + ->label('ZMM LOGO CP'), + ExportColumn::make('zmm_grade') + ->label('ZMM GRADE'), + ExportColumn::make('zmm_grwt_pset') + ->label('ZMM GRWT PSET'), + ExportColumn::make('zmm_grwt_cable') + ->label('ZMM GRWT CABLE'), + ExportColumn::make('zmm_grwt_motor') + ->label('ZMM GRWT MOTOR'), + ExportColumn::make('zmm_grwt_pf') + ->label('ZMM GRWT PF'), + ExportColumn::make('zmm_grwt_pump') + ->label('ZMM GRWT PUMP'), + ExportColumn::make('zmm_isivalve') + ->label('ZMM ISI VALVE'), + ExportColumn::make('zmm_isi_wc') + ->label('ZMM ISI WC'), + ExportColumn::make('zmm_labelperiod') + ->label('ZMM LABEL PERIOD'), + ExportColumn::make('zmm_length') + ->label('ZMM LENGTH'), + ExportColumn::make('zmm_license_cml_no') + ->label('ZMM LICENSE CML NO'), + ExportColumn::make('zmm_mfgmonyr') + ->label('ZMM MFG MON YR'), + ExportColumn::make('zmm_modelyear') + ->label('ZMM MODEL YEAR'), + ExportColumn::make('zmm_motoridentification') + ->label('ZMM MOTOR IDENTIFICATION'), + ExportColumn::make('zmm_newt_pset') + ->label('ZMM NEWT PSET'), + ExportColumn::make('zmm_newt_cable') + ->label('ZMM NEWT CABLE'), + ExportColumn::make('zmm_newt_motor') + ->label('ZMM NEWT MOTOR'), + ExportColumn::make('zmm_newt_pf') + ->label('ZMM NEWT PF'), + ExportColumn::make('zmm_newt_pump') + ->label('ZMM NEWT PUMP'), + ExportColumn::make('zmm_logo_nsf') + ->label('ZMM LOGO NSF'), + ExportColumn::make('zmm_packtype') + ->label('ZMM PACK TYPE'), + ExportColumn::make('zmm_panel') + ->label('ZMM PANEL'), + ExportColumn::make('zmm_performance_factor') + ->label('ZMM PERFORMANCE FACTOR'), + ExportColumn::make('zmm_pumpidentification') + ->label('ZMM PUMP IDENTIFICATION'), + ExportColumn::make('zmm_psettype') + ->label('ZMM PSET TYPE'), + ExportColumn::make('zmm_size') + ->label('ZMM SIZE'), + ExportColumn::make('zmm_eff_ttl') + ->label('ZMM EFF TTL'), + ExportColumn::make('zmm_type') + ->label('ZMM TYPE'), + ExportColumn::make('zmm_usp') + ->label('ZMM USP'), + ExportColumn::make('zmm_operating_range') + ->label('ZMM OPERATING RANGE'), + ExportColumn::make('zmm_intake_air') + ->label('ZMM INTAKE AIR'), + ExportColumn::make('zmm_oxygen_transfer_rate') + ->label('ZMM OXYGEN TRANSFER RATE'), + ExportColumn::make('zmm_air_inlet_pipesize') + ->label('ZMM AIR INLET PIPE SIZE'), + ExportColumn::make('zmm_sump_depth') + ->label('ZMM SUMP DEPTH'), + ExportColumn::make('zmm_poles') + ->label('ZMM POLES'), + ExportColumn::make('zmm_motor_heading') + ->label('ZMM MOTOR HEADING'), + ExportColumn::make('zmm_motor_speed') + ->label('ZMM MOTOR SPEED'), + ExportColumn::make('zqmm_qty') + ->label('ZMM QTY'), + ExportColumn::make('zmm_1') + ->label('ZMM 1') + ->enabledByDefault(false), + ExportColumn::make('zmm_2') + ->label('ZMM 2') + ->enabledByDefault(false), + ExportColumn::make('zmm_3') + ->label('ZMM 3') + ->enabledByDefault(false), + ExportColumn::make('zmm_4') + ->label('ZMM 4') + ->enabledByDefault(false), + ExportColumn::make('zmm_5') + ->label('ZMM 5') + ->enabledByDefault(false), + ExportColumn::make('zmm_6') + ->label('ZMM 6') + ->enabledByDefault(false), + ExportColumn::make('zmm_7') + ->label('ZMM 7') + ->enabledByDefault(false), + ExportColumn::make('zmm_8') + ->label('ZMM 8') + ->enabledByDefault(false), + ExportColumn::make('zmm_9') + ->label('ZMM 9') + ->enabledByDefault(false), + ExportColumn::make('zmm_10') + ->label('ZMM 10') + ->enabledByDefault(false), + ExportColumn::make('zmm_11') + ->label('ZMM 11') + ->enabledByDefault(false), + ExportColumn::make('zmm_12') + ->label('ZMM 12') + ->enabledByDefault(false), + ExportColumn::make('zmm_13') + ->label('ZMM 13') + ->enabledByDefault(false), + ExportColumn::make('zmm_14') + ->label('ZMM 14') + ->enabledByDefault(false), + ExportColumn::make('zmm_15') + ->label('ZMM 15') + ->enabledByDefault(false), + 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 item characteristic 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/ItemCharacteristicImporter.php b/app/Filament/Imports/ItemCharacteristicImporter.php new file mode 100644 index 0000000..bd61dfe --- /dev/null +++ b/app/Filament/Imports/ItemCharacteristicImporter.php @@ -0,0 +1,194 @@ +requiredMapping() + ->relationship() + ->rules(['required']), + ImportColumn::make('item') + ->requiredMapping() + ->relationship() + ->rules(['required']), + ImportColumn::make('class'), + ImportColumn::make('zz1_cn_bill_ord'), + ImportColumn::make('zmm_amps'), + ImportColumn::make('zmm_brand'), + ImportColumn::make('zmm_degreeofprotection'), + ImportColumn::make('zmm_delivery'), + ImportColumn::make('zmm_dir_rot'), + ImportColumn::make('zmm_discharge'), + ImportColumn::make('zmm_discharge_max'), + ImportColumn::make('zmm_discharge_min'), + ImportColumn::make('zmm_duty'), + ImportColumn::make('zmm_eff_motor'), + ImportColumn::make('zmm_eff_pump'), + ImportColumn::make('zmm_frequency'), + ImportColumn::make('zmm_head'), + ImportColumn::make('zmm_heading'), + ImportColumn::make('zmm_head_max'), + ImportColumn::make('zmm_head_minimum'), + ImportColumn::make('zmm_idx_eff_mtr'), + ImportColumn::make('zmm_idx_eff_pump'), + ImportColumn::make('zmm_kvacode'), + ImportColumn::make('zmm_maxambtemp'), + ImportColumn::make('zmm_mincoolingflow'), + ImportColumn::make('zmm_motorseries'), + ImportColumn::make('zmm_motor_model'), + ImportColumn::make('zmm_outlet'), + ImportColumn::make('zmm_phase'), + ImportColumn::make('zmm_pressure'), + ImportColumn::make('zmm_pumpflowtype'), + ImportColumn::make('zmm_pumpseries'), + ImportColumn::make('zmm_pump_model'), + ImportColumn::make('zmm_ratedpower'), + ImportColumn::make('zmm_region'), + ImportColumn::make('zmm_servicefactor'), + ImportColumn::make('zmm_servicefactormaximumamps'), + ImportColumn::make('zmm_speed'), + ImportColumn::make('zmm_suction'), + ImportColumn::make('zmm_suctionxdelivery'), + ImportColumn::make('zmm_supplysource'), + ImportColumn::make('zmm_temperature'), + ImportColumn::make('zmm_thrustload'), + ImportColumn::make('zmm_volts'), + ImportColumn::make('zmm_wire'), + ImportColumn::make('zmm_package'), + ImportColumn::make('zmm_pvarrayrating'), + ImportColumn::make('zmm_isi'), + ImportColumn::make('zmm_isimotor'), + ImportColumn::make('zmm_isipump'), + ImportColumn::make('zmm_isipumpset'), + ImportColumn::make('zmm_pumpset_model'), + ImportColumn::make('zmm_stages'), + ImportColumn::make('zmm_headrange'), + ImportColumn::make('zmm_overall_efficiency'), + ImportColumn::make('zmm_connection'), + ImportColumn::make('zmm_min_bore_size'), + ImportColumn::make('zmm_isireference'), + ImportColumn::make('zmm_category'), + ImportColumn::make('zmm_submergence'), + ImportColumn::make('zmm_capacitorstart'), + ImportColumn::make('zmm_capacitorrun'), + ImportColumn::make('zmm_inch'), + ImportColumn::make('zmm_motor_type'), + ImportColumn::make('zmm_dismantle_direction'), + ImportColumn::make('zmm_eff_ovrall'), + ImportColumn::make('zmm_bodymoc'), + ImportColumn::make('zmm_rotormoc'), + ImportColumn::make('zmm_dlwl'), + ImportColumn::make('zmm_inputpower'), + ImportColumn::make('zmm_imp_od'), + ImportColumn::make('zmm_ambtemp'), + ImportColumn::make('zmm_de'), + ImportColumn::make('zmm_dischargerange'), + ImportColumn::make('zmm_efficiency_class'), + ImportColumn::make('zmm_framesize'), + ImportColumn::make('zmm_impellerdiameter'), + ImportColumn::make('zmm_insulationclass'), + ImportColumn::make('zmm_maxflow'), + ImportColumn::make('zmm_minhead'), + ImportColumn::make('zmm_mtrlofconst'), + ImportColumn::make('zmm_nde'), + ImportColumn::make('zmm_powerfactor'), + ImportColumn::make('zmm_tagno'), + ImportColumn::make('zmm_year'), + ImportColumn::make('zmm_laser_name'), + ImportColumn::make('zmm_beenote'), + ImportColumn::make('zmm_beenumber'), + ImportColumn::make('zmm_beestar'), + ImportColumn::make('zmm_logo_ce'), + ImportColumn::make('zmm_codeclass'), + ImportColumn::make('zmm_colour'), + ImportColumn::make('zmm_logo_cp'), + ImportColumn::make('zmm_grade'), + ImportColumn::make('zmm_grwt_pset'), + ImportColumn::make('zmm_grwt_cable'), + ImportColumn::make('zmm_grwt_motor'), + ImportColumn::make('zmm_grwt_pf'), + ImportColumn::make('zmm_grwt_pump'), + ImportColumn::make('zmm_isivalve'), + ImportColumn::make('zmm_isi_wc'), + ImportColumn::make('zmm_labelperiod'), + ImportColumn::make('zmm_length'), + ImportColumn::make('zmm_license_cml_no'), + ImportColumn::make('zmm_mfgmonyr'), + ImportColumn::make('zmm_modelyear'), + ImportColumn::make('zmm_motoridentification'), + ImportColumn::make('zmm_newt_pset'), + ImportColumn::make('zmm_newt_cable'), + ImportColumn::make('zmm_newt_motor'), + ImportColumn::make('zmm_newt_pf'), + ImportColumn::make('zmm_newt_pump'), + ImportColumn::make('zmm_logo_nsf'), + ImportColumn::make('zmm_packtype'), + ImportColumn::make('zmm_panel'), + ImportColumn::make('zmm_performance_factor'), + ImportColumn::make('zmm_pumpidentification'), + ImportColumn::make('zmm_psettype'), + ImportColumn::make('zmm_size'), + ImportColumn::make('zmm_eff_ttl'), + ImportColumn::make('zmm_type'), + ImportColumn::make('zmm_usp'), + ImportColumn::make('zmm_operating_range'), + ImportColumn::make('zmm_intake_air'), + ImportColumn::make('zmm_oxygen_transfer_rate'), + ImportColumn::make('zmm_air_inlet_pipesize'), + ImportColumn::make('zmm_sump_depth'), + ImportColumn::make('zmm_poles'), + ImportColumn::make('zmm_motor_heading'), + ImportColumn::make('zmm_motor_speed'), + ImportColumn::make('zqmm_qty'), + ImportColumn::make('zmm_1'), + ImportColumn::make('zmm_2'), + ImportColumn::make('zmm_3'), + ImportColumn::make('zmm_4'), + ImportColumn::make('zmm_5'), + ImportColumn::make('zmm_6'), + ImportColumn::make('zmm_7'), + ImportColumn::make('zmm_8'), + ImportColumn::make('zmm_9'), + ImportColumn::make('zmm_10'), + ImportColumn::make('zmm_11'), + ImportColumn::make('zmm_12'), + ImportColumn::make('zmm_13'), + ImportColumn::make('zmm_14'), + ImportColumn::make('zmm_15'), + ImportColumn::make('created_by'), + ImportColumn::make('updated_by'), + ]; + } + + public function resolveRecord(): ?ItemCharacteristic + { + // return ItemCharacteristic::firstOrNew([ + // // Update existing records, matching them by `$this->data['column_name']` + // 'email' => $this->data['email'], + // ]); + + return new ItemCharacteristic(); + } + + public static function getCompletedNotificationBody(Import $import): string + { + $body = 'Your item characteristic 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; + } +}