Files
BordroRobot/app/lib/srv/srv.go
2024-03-26 11:17:45 +03:00

83 lines
1.8 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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(companyName string, month float64, year float64) error {
//todo: readb company details by name
//todo: save xls to application folder as /name/year/month.xlsx
//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 {
//todo: process excel and do data input
//todo: inform user about process and errors
run.APP.Events.Emit(&application.WailsEvent{
Name: "logProcess",
Data: row[1],
})
}
return nil
}