Files
BordroRobot/app/lib/model/bordro.go

349 lines
11 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 model
import (
"fmt"
"reflect"
"github.com/go-rod/rod"
)
type BordroProperty struct {
Index int
Value string
Id string
//DomType string
}
type Bordro struct {
Sube BordroProperty // 0
Bolum BordroProperty //
TCKimlikNo BordroProperty //
AdiSoyadi BordroProperty //
NormalGun BordroProperty //4
HaftaTatili BordroProperty //
X75 BordroProperty //
EksikGunNeden BordroProperty //
ArgeDestekVeTasarim BordroProperty //
FazlaMesai BordroProperty // 9
GeceMesaisi BordroProperty //10
BayramMesaisi BordroProperty //
Yol BordroProperty //12
YemekGun BordroProperty //13
YemekTutar BordroProperty //
Aile BordroProperty //15
Cocuk BordroProperty //
Evlenme BordroProperty //17
Dogum BordroProperty //18
Olum BordroProperty //19
Askerlik BordroProperty //20
Ozelsigorta BordroProperty //21
BireyselEmeklilik BordroProperty //22
HayatSigortasi BordroProperty //23
PrimNet BordroProperty //24
PrimBrut BordroProperty //
IkramiyeNet BordroProperty //25
IkramiyeBrut BordroProperty //
KıdemTazminatı BordroProperty //28
IhbarTazminati BordroProperty //29
Bayram BordroProperty //30
Yakacak BordroProperty //31
HuzurHakki BordroProperty //32
HediyeKart BordroProperty
YakitKart BordroProperty
YillikIzin BordroProperty
MaasFarki BordroProperty
AyirilisPaketi BordroProperty
RamazanKumanyasi BordroProperty
TelefonDesteği BordroProperty //39
EkOdemeNet BordroProperty
EkOdemeBrut BordroProperty
IsAramaIzni BordroProperty
Prim2 BordroProperty //43
Prim3 BordroProperty
Prim4 BordroProperty
CalismaIzniHarci BordroProperty
OzeldurumOdenesi BordroProperty
EmekliSandigiCalisanPrimi BordroProperty
LisanTazminati BordroProperty
OdulOdenesi BordroProperty
IsSonuTazminati BordroProperty
VergiIstisnasiEkOdeme BordroProperty
KresYardimi BordroProperty //53
EsnekYanHak BordroProperty
AracKullanim BordroProperty
EgitimDesteği BordroProperty
DelegeUcreti BordroProperty
HarcTutarlari BordroProperty
SendikaIscilikFarkUcretleri BordroProperty
IsinmaDesteği BordroProperty
SoforlukMesaisi BordroProperty
Avans BordroProperty
Icra BordroProperty
Sendika BordroProperty
HediyeKart2 BordroProperty
YemekAyni BordroProperty
RamazanKumanyasiAyni BordroProperty
BagimliOSSKesintisi BordroProperty
CalismaIzniHarciAyni BordroProperty
TrafikCezasiKesintisi BordroProperty
BesKesintisi BordroProperty
YakitKart2 BordroProperty
GrupBesPersonelPayiKesintisi BordroProperty
IstisnadanKaynaklananKesinti BordroProperty
EmekliSandigiCalisanPrimKesintisi BordroProperty
PesinYillikIzinKesintisi BordroProperty
TelefonLimitAsimKesintisi BordroProperty
ZimmetTamirKesintisi BordroProperty
YakitAsimKesintisi BordroProperty
DigerAvanslar BordroProperty
DigerKesintiler BordroProperty
ZorunluBesKesintisi BordroProperty
ZimmetliBilgisayarTamirUcreti BordroProperty
HarcTutarlari2 BordroProperty
PrimAvansi BordroProperty
MasrafKesintisi BordroProperty
BireyselEmekPrimi BordroProperty //88
OzelsigortaPrimi BordroProperty //89
DigerIstisnalar BordroProperty //90
}
func getPageId(id string) string {
switch id {
case "NormalGun":
return "#normalGun0" //Normal Gün
case "HaftaTatili":
return "#normalGun1" //, "checkbox" Hafta Tatili
case "X75":
return "" //x7.5
case "EksikGunNeden":
return "" //Eksik Gün Neden
case "ArgeDestekVeTasarim":
return "" //ARGE-Destek ve Tasarım Faaliyeti
case "FazlaMesai":
return "#ekKazancCarpan0" //Fazla Mesai
case "GeceMesaisi":
return "#ekKazancCarpan1" //Gece Mesaisi
case "BayramMesaisi":
return "" //Bayram Mesaisi
case "Yol":
return "#ekKazancCarpan3" //Yol
case "YemekGun":
return "#ekKazancCarpan4" //Yemek (Gün)
case "YemekTutar":
return "" //Yemek (Tutar)
case "Aile":
return "#ekKazancDeger5" //Aile
case "Cocuk":
return "" //Çocuk
case "Evlenme":
return "#ekKazancDeger7" //Evlenme
case "Dogum":
return "#ekKazancDeger8" //Doğum
case "Olum":
return "#ekKazancDeger9" //Ölüm
case "Askerlik":
return "#ekKazancDeger10" //Askerlik
case "Ozelsigorta":
return "#ekKazancDeger11" //Özel Sigorta
case "BireyselEmeklilik":
return "#ekKazancDeger12" //Bireysel Emeklilik
case "HayatSigortasi":
return "#ekKazancDeger13" //Hayat Sigortası
case "PrimNet":
return "#ekKazancDeger14" //Prim (Net)
case "PrimBrut":
return "#ekKazancDeger15" //Prim (Brüt)
case "IkramiyeNet":
return "" //İkramiye (Net)
case "IkramiyeBrut":
return "" //İkramiye (Brüt)
case "KıdemTazminatı":
return "#ekKazancDeger16" //Kıdem Tazminatı
case "IhbarTazminati":
return "#ekKazancDeger17" //İhbar Tazminatı
case "Bayram":
return "#ekKazancDeger18" //Bayram
case "Yakacak":
return "#ekKazancDeger19" //Yakacak
case "HuzurHakki":
return "#ekKazancDeger23" //Huzur Hakkı
case "HediyeKart":
return "" //Hediye Kart*
case "YakitKart":
return "" //Yakıt Kart*
case "YillikIzin":
return "" //Yıllık İzin
case "MaasFarki":
return "" //Maaş Farkı
case "AyirilisPaketi":
return "" //Ayrılış Paketi
case "RamazanKumanyasi":
return "" //Ramazan Kumanyası*
case "TelefonDesteği":
return "#ekKazancDeger21" //Telefon Desteği
case "EkOdemeNet":
return "" //Ek Ödeme (Net)
case "EkOdemeBrut":
return "" //Ek Ödeme (Brüt)
case "IsAramaIzni":
return "" //İş Arama İzni
case "Prim2":
return "#ekKazancDeger20" //Prim2
case "Prim3":
return "" //Prim3
case "Prim4":
return "" //Prim4
case "CalismaIzniHarci":
return "" //Çalışma İzni Harç. Vb.*
case "OzeldurumOdenesi":
return "" //Özel Durum Ödemesi
case "EmekliSandigiCalisanPrimi":
return "" //Emekli Sandığı Çalışan Primi
case "LisanTazminati":
return "" //Lisan Tazminatı
case "OdulOdenesi":
return "" //Ödül Ödemesi
case "IsSonuTazminati":
return "" //İş Sonu Tazminatı
case "VergiIstisnasiEkOdeme":
return "" //Vergi İstisnası Ek Ödeme
case "KresYardimi":
return "#ekKazancDeger22" //Kreş Yardımı
case "EsnekYanHak":
return "" //Esnek Yan Hak
case "AracKullanim":
return "" //Araç Kullanım
case "EgitimDesteği":
return "" //Eğitim Desteği
case "DelegeUcreti":
return "" //Delege Ücreti
case "HarcTutarlari":
return "" //Harç Tutarları*
case "SendikaIscilikFarkUcretleri":
return "" //Sendika İşçilik Fark Ücretleri
case "IsinmaDesteği":
return "" //Isınma Desteği
case "SoforlukMesaisi":
return "" //Şoförlük Mesaisi
case "Avans":
return "" //Avans
case "Icra":
return "" //icra
case "Sendika":
return "" //Sendika
case "HediyeKart2":
return "" //Hediye Kart
case "YemekAyni":
return "" //Yemek (Ayni)
case "RamazanKumanyasiAyni":
return "" //Ramazan Kumanyası (Ayni)
case "BagimliOSSKesintisi":
return "" //Bağımlı (Eş-Çocuk) ÖSS Kesintisi
case "CalismaIzniHarciAyni":
return "" //Çalışma İzni Harç. Vb.(Ayni)
case "TrafikCezasiKesintisi":
return "" //Trafik Cezası Kesintisi
case "BesKesintisi":
return ""
case "YakitKart2":
return ""
case "GrupBesPersonelPayiKesintisi":
return ""
case "IstisnadanKaynaklananKesinti":
return ""
case "EmekliSandigiCalisanPrimKesintisi":
return ""
case "PesinYillikIzinKesintisi":
return ""
case "TelefonLimitAsimKesintisi":
return ""
case "ZimmetTamirKesintisi":
return ""
case "YakitAsimKesintisi":
return ""
case "DigerAvanslar":
return ""
case "DigerKesintiler":
return ""
case "ZorunluBesKesintisi":
return ""
case "ZimmetliBilgisayarTamirUcreti":
return ""
case "HarcTutarlari2":
return ""
case "PrimAvansi":
return ""
case "MasrafKesintisi":
return ""
case "BireyselEmekPrimi":
return "#bireyselEmeklilikIstisna"
case "OzelsigortaPrimi":
return "#ozelSigortaIstisna"
case "DigerIstisnalar":
return "#digerIstisna"
default:
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)
// }
elem.Input(value)
}
fmt.Print(fieldName)
}
return nil
}
// 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) {
bordro := Bordro{} // Yeni bir Bordro örneği oluştur
//her indexi eşitleyebilirsin bordro objesine veya tek
// Iterate over the fields of MyStruct
objValue := reflect.ValueOf(&bordro).Elem()
objType := objValue.Type()
for i := 0; i < objValue.NumField(); i++ {
field := objValue.Field(i)
fieldName := objType.Field(i).Name
indexField := field.FieldByName("Index")
valueField := field.FieldByName("Value")
idField := field.FieldByName("Id")
if len(rows) > i {
indexField.SetInt(int64(i))
valueField.SetString(rows[i])
idField.SetString(getPageId(fieldName))
} else {
indexField.SetInt(int64(i))
valueField.SetString("")
idField.SetString(getPageId(fieldName))
}
fmt.Print(field)
fmt.Print(fieldName)
}
fmt.Print(objType)
//bordro.Sube = ExcelCellValue{ExcelIndex: 0}
return &bordro, nil
}