file transfer occurred #1

Open
huseyindervis wants to merge 19 commits from bordorBot into main
6 changed files with 209 additions and 366 deletions
Showing only changes of commit 055ac013f9 - Show all commits

View File

@@ -304,18 +304,50 @@ func (l *Luca) GetPageByUrl(url string) (*rod.Page, error) {
return allPages.FindByURL("https://auygs.luca.com.tr/Luca/luca.do") return allPages.FindByURL("https://auygs.luca.com.tr/Luca/luca.do")
} }
func (l *Luca) BordroTableMaping(frame *rod.Page, b *LucaBordro) (string, error) { func (l *Luca) BordroTableMaping(frame *rod.Page, b *LucaBordro) ([]BordroPageScript, error) {
table := frame.MustElements(".i2") table, err := frame.Elements("#scroll > div > table > tbody > tr > td > table > tbody > tr > td") //table kontrol et var mı yok mu diye
for t := 2; t < len(table); t += 2 { if err != nil {
// Satırın özelliklerini al return nil, err
class, _ := table[t].Attribute("class") }
if t == 89 { //table := frame.MustElements(".i2")
var mainText string
for t := 0; t < len(table); t++ {
if t == 150 {
fmt.Print("asda") fmt.Print("asda")
} }
id, _ := table[t+1].Attribute("id") inputElement, err := table[t].Element("input")
text, err := table[t].Text()
fmt.Print(mainText)
if text != "" {
mainText = text
}
if inputElement != nil {
if mainText != "" {
fmt.Print(t)
inputElement, err := table[t+1].Element("input")
if inputElement == nil {
mainText = ""
fmt.Print("Hatalı Text")
continue
}
id, err := inputElement.Attribute("id")
fmt.Print(err)
pageScript := BordroPageScript{
Value: text,
Index: *id,
}
scriptIndexArray = append(scriptIndexArray, pageScript)
fmt.Println("Text:", text)
fmt.Println("ID:", *id)
fmt.Println("--------------------")
mainText = ""
}
}
// Satırın özelliklerini al
// Satırın textini al // Satırın textini al
text, err := table[t].Text()
fmt.Print(err) fmt.Print(err)
@@ -343,31 +375,10 @@ func (l *Luca) BordroTableMaping(frame *rod.Page, b *LucaBordro) (string, error)
// } // }
// Sonuçları yazdır ///text boşsa id de boş oluyo // Sonuçları yazdır ///text boşsa id de boş oluyo
Id := ""
if id != nil {
Id = *id
fmt.Println("ID:", *id)
} else {
Id = ""
} }
if text == "" { return scriptIndexArray, nil
text = "boş Text"
} }
pageScript := BordroPageScript{ func (l *Luca) PayrollPageLogin() error {
Value: text,
Index: Id,
}
scriptIndexArray = append(scriptIndexArray, pageScript)
fmt.Println("Text:", text)
fmt.Println("Class:", class)
fmt.Println("ID:", Id)
fmt.Println("--------------------")
}
return "", nil
}
func (l *Luca) BordroYazPage(month, year int, b *LucaBordro) error {
newPage, err := l.GetPageByUrl("https://auygs.luca.com.tr/Luca/luca.do") newPage, err := l.GetPageByUrl("https://auygs.luca.com.tr/Luca/luca.do")
if err != nil { if err != nil {
return err return err
@@ -387,6 +398,7 @@ func (l *Luca) BordroYazPage(month, year int, b *LucaBordro) error {
if err != nil { if err != nil {
return err return err
} }
Wait(newPage, 200)
err = ClickItem(frame, "#apy1000m0i1ITD", 1) err = ClickItem(frame, "#apy1000m0i1ITD", 1)
if err != nil { if err != nil {
return err return err
@@ -401,11 +413,27 @@ func (l *Luca) BordroYazPage(month, year int, b *LucaBordro) error {
return err return err
} }
Wait(newPage, 1500) Wait(newPage, 1500)
err = WaitLoad(frame3) err = WaitLoad(frame3)
if err != nil { if err != nil {
return err return err
} }
return err
}
func (l *Luca) BordroYaz(month, year int, b *LucaBordro) ([]string, error) {
newPage, err := l.GetPageByUrl("https://auygs.luca.com.tr/Luca/luca.do")
if err != nil {
return nil, err
}
fs3, err := newPage.Element("#frm3")
if err != nil {
return nil, err
}
frame3, err := fs3.Frame()
err = newPage.WaitLoad()
if err != nil {
return nil, err
}
isyeriId := "" isyeriId := ""
bolumId := "" bolumId := ""
bordroCompanySelectBox, err := frame3.Elements("#isyeriId > option") bordroCompanySelectBox, err := frame3.Elements("#isyeriId > option")
@@ -413,37 +441,39 @@ func (l *Luca) BordroYazPage(month, year int, b *LucaBordro) error {
text, err := bordroCompanySelectBox[j].Text() text, err := bordroCompanySelectBox[j].Text()
value, err := bordroCompanySelectBox[j].Property("value") value, err := bordroCompanySelectBox[j].Property("value")
if err != nil { if err != nil {
return err return nil, err
} }
if strings.Trim(text, " ") == b.Sube { //.Sube.Value if strings.Trim(text, " ") == b.Sube { //.Sube.Value
isyeriId = value.String() isyeriId = value.String()
break break
} }
fmt.Print(text, value)
} }
element, err := frame3.Element("#isyeriId") element, err := frame3.Element("#isyeriId")
element.WaitLoad()
if err != nil { if err != nil {
return err return nil, err
} }
selectInput := Select{Element: element, Selector: "#isyeriId"} selectInput := Select{Element: element, Selector: "#isyeriId"}
err = selectInput.SelectItem(isyeriId) err = selectInput.SelectItem(isyeriId)
if err != nil { if err != nil {
return err return nil, err
} }
err = WaitLoad(frame3) err = WaitLoad(frame3)
if err != nil { if err != nil {
return err return nil, err
} }
bordroDepartmentSelectBox, err := frame3.Elements("#bolumId > option") bordroDepartmentSelectBox, err := frame3.Elements("#bolumId > option")
element, err = frame3.Element("#bolumId > option")
element.WaitLoad()
if err != nil { if err != nil {
return err return nil, err
} }
for j := 0; j < len(bordroDepartmentSelectBox); j++ { for j := 0; j < len(bordroDepartmentSelectBox); j++ {
text, err := bordroDepartmentSelectBox[j].Text() text, err := bordroDepartmentSelectBox[j].Text()
value, err := bordroDepartmentSelectBox[j].Property("value") value, err := bordroDepartmentSelectBox[j].Property("value")
if err != nil { if err != nil {
return err return nil, err
} }
if strings.Trim(text, " ") == b.Bolum { //.Bolum.Value if strings.Trim(text, " ") == b.Bolum { //.Bolum.Value
bolumId = value.String() bolumId = value.String()
@@ -454,39 +484,39 @@ func (l *Luca) BordroYazPage(month, year int, b *LucaBordro) error {
element, err = frame3.Element("#bolumId") element, err = frame3.Element("#bolumId")
if err != nil { if err != nil {
return err return nil, err
} }
selectInput = Select{Element: element, Selector: "#bolumId"} selectInput = Select{Element: element, Selector: "#bolumId"}
err = selectInput.SelectItem(bolumId) err = selectInput.SelectItem(bolumId)
if err != nil { if err != nil {
return err return nil, err
} }
err = WaitLoad(frame3) err = WaitLoad(frame3)
if err != nil { if err != nil {
return err return nil, err
} }
err = ClickItem(frame3, "#tr"+strconv.FormatFloat(float64(month), 'f', -1, 64)+" > td:nth-child(1)", 2) //aktarım ayı err = ClickItem(frame3, "#tr"+strconv.FormatFloat(float64(month), 'f', -1, 64)+" > td:nth-child(1)", 2) //aktarım ayı
if err != nil { if err != nil {
return err return nil, err
} }
err = WaitLoad(frame3) err = WaitLoad(frame3)
if err != nil { if err != nil {
return err return nil, err
} }
var isEmpty bool = false var isEmpty bool = false
//var targetID string //var targetID string
elems, err := frame3.Elements("#scroll > table > tbody > tr > td[id^='tcKimlikNo']") elems, err := frame3.Elements("#scroll > table > tbody > tr > td[id^='tcKimlikNo']")
if err != nil { if err != nil {
return err return nil, err
} }
elemsProcess, err := frame3.Elements("#scroll > table > tbody > tr > td > a") elemsProcess, err := frame3.Elements("#scroll > table > tbody > tr > td > a")
if err != nil { if err != nil {
return err return nil, err
} }
trs, err := frame3.Elements("#scroll > table > tbody > tr") trs, err := frame3.Elements("#scroll > table > tbody > tr")
if err != nil { if err != nil {
return err return nil, err
} }
var foundIndex int = -1 var foundIndex int = -1
if len(elems) == 0 { if len(elems) == 0 {
@@ -495,15 +525,24 @@ func (l *Luca) BordroYazPage(month, year int, b *LucaBordro) error {
Index: 1, Index: 1,
} }
pageErrors = append(pageErrors, isEmptyError.Error+", Index: "+strconv.Itoa(isEmptyError.Index)) pageErrors = append(pageErrors, isEmptyError.Error+", Index: "+strconv.Itoa(isEmptyError.Index))
err = ClickItem(frame3, "body > form > table > tbody > tr.altBar.alt-button-bar > th > table > tbody > tr > td:nth-child(1) > button:nth-child(3)", 1)
if err != nil {
return nil, err
}
err = WaitLoad(frame3)
if err != nil {
return nil, err
}
return pageErrors, err
} }
for j := 0; j < len(elems); j++ { for j := 0; j < len(elems); j++ {
tex, err := elems[j].Text() tex, err := elems[j].Text()
if err != nil { if err != nil {
return err return nil, err
} }
process, err := elemsProcess[j].Text() process, err := elemsProcess[j].Text()
if err != nil { if err != nil {
return err return nil, err
} }
if tex == b.TcNo { //.TCKimlikNo.Value if tex == b.TcNo { //.TCKimlikNo.Value
foundIndex = j foundIndex = j
@@ -520,316 +559,107 @@ func (l *Luca) BordroYazPage(month, year int, b *LucaBordro) error {
Index: 1, Index: 1,
} }
pageErrors = append(pageErrors, isEmptyError.Error+", Index: "+strconv.Itoa(isEmptyError.Index)) pageErrors = append(pageErrors, isEmptyError.Error+", Index: "+strconv.Itoa(isEmptyError.Index))
err = ClickItem(frame3, "body > form > table > tbody > tr.altBar.alt-button-bar > th > table > tbody > tr > td:nth-child(1) > button:nth-child(3)", 1)
if err != nil {
return nil, err
} }
if foundIndex != -1 { err = WaitLoad(frame3)
if err != nil {
return nil, err
}
return pageErrors, err
}
if foundIndex != -1 && isEmpty == false {
trs[foundIndex].Click(proto.InputMouseButtonLeft, 2) trs[foundIndex].Click(proto.InputMouseButtonLeft, 2)
} }
Wait(newPage, 1500) Wait(newPage, 1500)
err = WaitLoad(frame3) err = WaitLoad(frame3)
if err != nil { if err != nil {
return err return nil, err
} }
for k, v := range b.Ucretler {
fmt.Print(v, k)
//table'da key--> k i bul,
//takip eden ilk td'deki ilk input'a v'yi yaz
//table'da k'yi bulmazsan ve v de değer varsa hata dön
}
rsp, err := l.BordroTableMaping(frame3, b) rsp, err := l.BordroTableMaping(frame3, b)
if len(rsp) == 0 {
//hata ver
}
fmt.Print(rsp) fmt.Print(rsp)
//rsp den dönden değerler ile matchlencek ve yazılcak //rsp den dönden değerler ile matchlencek ve yazılcak
for k, v := range b.Ucretler { for k, v := range b.Ucretler {
for i := 0; i < len(rsp); i++ {
if k == rsp[i].Value {
el, err := frame3.Element("#" + rsp[i].Index)
if err != nil {
return nil, err
}
err = el.Input(v.String())
}
}
fmt.Print(v, k) fmt.Print(v, k)
//table'da key--> k i bul,
//takip eden ilk td'deki ilk input'a v'yi yaz
//table'da k'yi bulmazsan ve v de değer varsa hata dön
// if strings.Contains(text, k) {
// Id := ""
// if id != nil {
// Id = *id
// fmt.Println("ID:", *id)
// } else {
// Id = ""
// }
// pageScript := BordroPageScript{
// Value: text,
// Index: Id,
// }
// scriptIndexArray = append(scriptIndexArray, pageScript) }
// break err = ClickItem(frame3, "body > form > table > tbody > tr.altBar.alt-button-bar > th > table > tbody > tr > td.right > button", 1)
// } if err != nil {
return nil, err
}
saveButtonMessage, err := ReceiveDOMMessages(frame3, ".alert-container", "innerText")
if err != nil {
return nil, err
}
if saveButtonMessage != "Bordro hesaplanıyor." {
isEmptyError := errorInfo{
Error: saveButtonMessage,
Index: 1,
} }
// for i := 0; i < len(row); i++ { pageErrors = append(pageErrors, isEmptyError.Error+", Index: "+strconv.Itoa(isEmptyError.Index))
// if i != 0 { newBordroPage, err := frame3.Element("body > form > table > tbody > tr.altBar.alt-button-bar > th > table > tbody > tr > td:nth-child(1) > button:nth-child(4)")
// err = ClickItem(frame3, "body > form > table > tbody > tr.altBar.alt-button-bar > th > table > tbody > tr > td:nth-child(1) > button:nth-child(3)", 1) newBordroPage.WaitLoad()
// if err != nil { if err != nil {
// return err return nil, err
// } }
// } newBordroPage.Click(proto.InputMouseButtonLeft, 1)
err = WaitLoad(frame3)
if err != nil {
return nil, err
// table := frame3.MustElements(".i2") }
err = ClickItem(frame3, "body > form > table > tbody > tr.altBar.alt-button-bar > th > table > tbody > tr > td:nth-child(1) > button:nth-child(3)", 1)
// // Tablodaki tüm satırları al if err != nil {
// // trss := table.MustElements("tr") return nil, err
// // Satırları döngü ile işleyerek textleri ve diğer özellikleri al }
// // for t := 0; t < len(table); t++ { return pageErrors, err
// // // Satırın özelliklerini al
// // class, _ := table[t].Attribute("class")
// // id, _ := table[t+1].Attribute("id")
// // // Satırın textini al
// // text := table[t].MustText()
// // fmt.Println("Text:", text)
// // fmt.Println("Class:", *class)
// // if id != nil {
// // fmt.Println("ID:", *id)
// // }
// // fmt.Println("-----------------------------")
// // }
// elements := frame3.MustElements(".i2")
// // Elementleri döngü ile işleyerek metinleri ve selectorları al
// var textsAndSelectors [][]string
// for _, el := range elements {
// // Elementin metnini al
// text := el.MustText()
// // Elementin selectorunu al
// selector := el.MustEval(`s => {
// var path = "";
// for (; s && s.nodeType == Node.ELEMENT_NODE; s = s.parentNode)
// {
// idx = getElementIdx(s);
// xname = s.localName.toLowerCase();
// path = "/" + xname + "[" + idx + "]" + path;
// }
// return path;
// }`).String()
// textsAndSelectors = append(textsAndSelectors, []string{text, selector})
// }
// // Sonuçları yazdır
// for _, item := range textsAndSelectors {
// fmt.Println("Text:", item[0])
// fmt.Println("Selector:", item[1])
// }
// //row[i].FillBordroForm(frame3)
// //err yoksa hesapla ba
// err = ClickItem(frame3, "body > form > table > tbody > tr.altBar.alt-button-bar > th > table > tbody > tr > td.right > button", 1)
// if err != nil {
// log.Fatal(err)
// }
// err = WaitLoad(frame3)
// if err != nil {
// return err
// }
// newBordroPage, err := frame3.Element("body > table > tbody > tr.altBar.alt-button-bar > th > table > tbody > tr > td:nth-child(1) > button:nth-child(4)")
// if err != nil {
// return err
// }
// newBordroPage.Click(proto.InputMouseButtonLeft, 1)
// err = WaitLoad(frame3)
// if err != nil {
// return err
// }
// }
return err
} }
// func (l *Luca) BordroYaz(data []*model.Bordro, month float64, year float64) error { err = WaitLoad(frame3)
// page := l.Page if err != nil {
// allPages, err := page.Browser().Pages() return nil, err
// if err != nil { }
// return err newBordroPage, err := frame3.Element("body > table > tbody > tr.altBar.alt-button-bar > th > table > tbody > tr > td:nth-child(1) > button:nth-child(4)")
// } newBordroPage.WaitLoad()
// newPage, err := allPages.FindByURL("https://auygs.luca.com.tr/Luca/luca.do") if err != nil {
// if err != nil { return nil, err
// return err }
// } newBordroPage.Click(proto.InputMouseButtonLeft, 1)
// fs3, err := newPage.Element("#frm3") err = WaitLoad(frame3)
// if err != nil { if err != nil {
// return err return nil, err
// }
// frame3, err := fs3.Frame()
// err = newPage.WaitLoad()
// if err != nil {
// return err
// }
// for i := 0; i < len(data); i++ { }
// if i != 0 { err = ClickItem(frame3, "body > form > table > tbody > tr.altBar.alt-button-bar > th > table > tbody > tr > td:nth-child(1) > button:nth-child(3)", 1)
// err = ClickItem(frame3, "body > form > table > tbody > tr.altBar.alt-button-bar > th > table > tbody > tr > td:nth-child(1) > button:nth-child(3)", 1)
// if err != nil {
// return err
// }
// }
// err = WaitLoad(frame3)
// if err != nil {
// return err
// }
// isyeriId := ""
// bolumId := ""
// bordroCompanySelectBox, err := frame3.Elements("#isyeriId > option")
// for j := 0; j < len(bordroCompanySelectBox); j++ {
// text, err := bordroCompanySelectBox[j].Text()
// value, err := bordroCompanySelectBox[j].Property("value")
// if err != nil {
// return err
// }
// if strings.Trim(text, " ") == data[i].Sube.Value {
// isyeriId = value.String()
// break
// }
// fmt.Print(text, value)
// }
// element, err := frame3.Element("#isyeriId") if err != nil {
// if err != nil { return nil, err
// return err
// }
// selectInput := Select{Element: element, Selector: "#isyeriId"}
// err = selectInput.SelectItem(isyeriId)
// if err != nil {
// return err
// }
// err = WaitLoad(frame3)
// if err != nil {
// return err
// }
// bordroDepartmentSelectBox, err := frame3.Elements("#bolumId > option")
// if err != nil {
// return err
// }
// for j := 0; j < len(bordroDepartmentSelectBox); j++ {
// text, err := bordroDepartmentSelectBox[j].Text()
// value, err := bordroDepartmentSelectBox[j].Property("value")
// if err != nil {
// return err
// }
// if strings.Trim(text, " ") == data[i].Bolum.Value {
// bolumId = value.String()
// break
// }
// fmt.Print(text, value)
// }
// element, err = frame3.Element("#bolumId") }
// if err != nil {
// return err
// }
// selectInput = Select{Element: element, Selector: "#bolumId"}
// err = selectInput.SelectItem(bolumId)
// if err != nil {
// return err
// }
// err = WaitLoad(frame3)
// if err != nil {
// return err
// }
// aktarimDonem := strconv.FormatFloat(month, 'f', -1, 64)
// err = ClickItem(frame3, "#tr"+aktarimDonem+" > td:nth-child(1)", 2)
// if err != nil {
// log.Fatal(err)
// }
// personel := data[i].TCKimlikNo //"54853109724"
// fmt.Println(personel)
// err = WaitLoad(frame3)
// if err != nil {
// return err
// }
// var isEmpty bool = false return pageErrors, err
// //var targetID string }
// elems, err := frame3.Elements("#scroll > table > tbody > tr > td[id^='tcKimlikNo']")
// if err != nil {
// return err
// }
// elemsProcess, err := frame3.Elements("#scroll > table > tbody > tr > td > a")
// if err != nil {
// return err
// }
// trs, err := frame3.Elements("#scroll > table > tbody > tr")
// if err != nil {
// return err
// }
// var foundIndex int = -1
// if len(elems) == 0 {
// isEmptyError := errorInfo{
// Error: "Böyle Bir Kullanıcı Bulunamadı",
// Index: i,
// }
// pageErrors = append(pageErrors, isEmptyError.Error+", Index: "+strconv.Itoa(isEmptyError.Index))
// continue
// }
// for j := 0; j < len(elems); j++ {
// tex, err := elems[j].Text()
// if err != nil {
// return err
// }
// process, err := elemsProcess[j].Text()
// if err != nil {
// return err
// }
// if tex == data[i].TCKimlikNo.Value {
// foundIndex = j
// if process == "Bordro Sil" {
// isEmpty = true
// }
// break
// }
// fmt.Print(elems, tex)
// }
// if isEmpty == true {
// isEmptyError := errorInfo{
// Error: "Yazılı Bordro Var Lütfen Siliniz",
// Index: i,
// }
// pageErrors = append(pageErrors, isEmptyError.Error+", Index: "+strconv.Itoa(isEmptyError.Index))
// continue
// }
// if foundIndex != -1 {
// trs[foundIndex].Click(proto.InputMouseButtonLeft, 2)
// }
// err = WaitLoad(frame3)
// if err != nil {
// return err
// }
// data[i].FillBordroForm(frame3)
// //err yoksa hesapla ba
// err = ClickItem(frame3, "body > form > table > tbody > tr.altBar.alt-button-bar > th > table > tbody > tr > td.right > button", 1)
// if err != nil {
// log.Fatal(err)
// }
// err = WaitLoad(frame3)
// if err != nil {
// return err
// }
// newBordroPage, err := frame3.Element("body > table > tbody > tr.altBar.alt-button-bar > th > table > tbody > tr > td:nth-child(1) > button:nth-child(4)")
// if err != nil {
// return err
// }
// newBordroPage.Click(proto.InputMouseButtonLeft, 1)
// err = WaitLoad(frame3)
// if err != nil {
// return err
// }
// }
// CloseBrowser(l.Browser) // CloseBrowser(l.Browser)
// return err
// }
// func (l *Luca)pageInsert(data, b* model.PageStruct){ // func (l *Luca)pageInsert(data, b* model.PageStruct){

View File

@@ -62,6 +62,10 @@ func FillInput(frm *rod.Page, selector string, value string) error {
func ClickItem(frm *rod.Page, selector string, clickCount int) error { func ClickItem(frm *rod.Page, selector string, clickCount int) error {
// Sayfadan ilgili öğeyi bul // Sayfadan ilgili öğeyi bul
el, err := frm.Element(selector) el, err := frm.Element(selector)
err = el.WaitLoad()
if err != nil {
return err
}
err = el.Click(proto.InputMouseButtonLeft, clickCount) err = el.Click(proto.InputMouseButtonLeft, clickCount)
return err return err
} }

View File

@@ -3,8 +3,7 @@ package model
import ( import (
"fmt" "fmt"
"reflect" "reflect"
//"github.com/go-rod/rod"
"github.com/go-rod/rod"
) )
type BordroProperty struct { type BordroProperty struct {
@@ -285,33 +284,34 @@ func getPageId(id string) string {
return "" return ""
} }
} }
func (b *Bordro) FillBordroForm(rodForm *rod.Page) error {
objValue := reflect.ValueOf(b).Elem()
objType := objValue.Type()
for i := 0; i < objValue.NumField(); i++ {
field := objValue.Field(i)
fieldName := objType.Field(i).Name
valueField := field.FieldByName("Value")
idField := field.FieldByName("Id")
idValue := idField.Interface().(string)
if idValue != "" {
elem, err := rodForm.Element(idField.Interface().(string))
if err != nil {
return err
}
value := valueField.Interface().(string)
// switch expression {
// case "input":
// //elem.Input(value)
// func (b *Bordro) FillBordroForm(rodForm *rod.Page) error {
// objValue := reflect.ValueOf(b).Elem()
// objType := objValue.Type()
// for i := 0; i < objValue.NumField(); i++ {
// field := objValue.Field(i)
// fieldName := objType.Field(i).Name
// valueField := field.FieldByName("Value")
// idField := field.FieldByName("Id")
// idValue := idField.Interface().(string)
// if idValue != "" {
// elem, err := rodForm.Element(idField.Interface().(string))
// if err != nil {
// return err
// } // }
elem.Input(value) // value := valueField.Interface().(string)
} // // switch expression {
// // case "input":
// // //elem.Input(value)
fmt.Print(fieldName) // // }
} // elem.Input(value)
return nil // }
}
// fmt.Print(fieldName)
// }
// return nil
// }
// BordroProperty structının tipi de olabilir drop checkbox vs ayrı bir fonksiyon çalışabilir getPageId den dönebilirsin // BordroProperty structının tipi de olabilir drop checkbox vs ayrı bir fonksiyon çalışabilir getPageId den dönebilirsin
func NewFromExcelLine(rows []string) (*Bordro, error) { func NewFromExcelLine(rows []string) (*Bordro, error) {

View File

@@ -76,6 +76,7 @@ func (s *Srv) Rpa(companyName string, month float64, year float64) error {
return nil return nil
} }
err = b.PayrollPageLogin()
slog.Debug("inputs", "year", year, "month", month) slog.Debug("inputs", "year", year, "month", month)
@@ -102,7 +103,7 @@ func (s *Srv) Rpa(companyName string, month float64, year float64) error {
if rows[0][0] == "" { if rows[0][0] == "" {
rows = rows[1:] rows = rows[1:]
} }
var insertMessage []string
// data := make([]*model.Bordro, 0) // []*Bordro türünde bir dilim oluştur // data := make([]*model.Bordro, 0) // []*Bordro türünde bir dilim oluştur
for i := 1; i < len(rows); i++ { for i := 1; i < len(rows); i++ {
brd := &bot.LucaBordro{ brd := &bot.LucaBordro{
@@ -125,10 +126,18 @@ func (s *Srv) Rpa(companyName string, month float64, year float64) error {
} }
} }
err = b.BordroYazPage(int(month), int(year), brd) message, err := b.BordroYaz(int(month), int(year), brd)
if len(message) > 0 {
insertMessage = append(insertMessage, message...)
}
if err != nil {
fmt.Print(err)
} }
}
if len(insertMessage) > 0 && err != nil {
return nil
}
if err != nil { if err != nil {
//emitLog(err.message) //emitLog(err.message)
return err return err

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.