package srv import ( "bordrobot/lib/company" "bordrobot/lib/run" "github.com/wailsapp/wails/v3/pkg/application" "github.com/xuri/excelize/v2" "log/slog" ) type Srv struct { xlsFileName string } func (s *Srv) Companies() ([]company.Company, error) { var res []company.Company err := run.DB.Select(&res, "SELECT * FROM company order by 1") return res, err } func (s *Srv) CreateCompany(name, memberNumber, username, password string) error { c := &company.Company{ Name: name, MemberNumber: memberNumber, Username: username, Password: password, } return c.Create() } func (s *Srv) UploadExcel() string { dialog := application.OpenFileDialog() dialog.AddFilter("Excel Dosyaları", "*.xls;*.xlsx") dialog.SetTitle("Bordro Excel Dosyası Yükleme") file, err := dialog.PromptForSingleSelection() if err != nil { return "" } s.xlsFileName = file return file } func (s *Srv) Rpa(month float64, year float64) error { //wails nümerik değerleri float gönderiyor.. int gönderimi araştırılmalı slog.Debug("inputs", "year", year, "month", month) f, err := excelize.OpenFile(s.xlsFileName) if err != nil { slog.Error(err.Error()) return err } defer func() { // Close the spreadsheet. if err := f.Close(); err != nil { slog.Error(err.Error()) //return err } }() sheets := f.GetSheetList() cols, err := f.GetCols(sheets[0]) if err != nil { slog.Error(err.Error()) return err } for _, row := range cols { run.APP.Events.Emit(&application.WailsEvent{ Name: "logProcess", Data: row[1], }) } return nil }