|
@@ -141,6 +141,55 @@ func (f Formular) IsActive() bool {
|
|
|
|
|
|
type Formulars []Formular
|
|
|
|
|
|
+func (formulars Formulars) ToMap() map[int]*Formular {
|
|
|
+ formularMap := map[int]*Formular{}
|
|
|
+
|
|
|
+ for idx, formular := range formulars {
|
|
|
+ formularMap[formular.StfCardId] = &formulars[idx]
|
|
|
+ }
|
|
|
+
|
|
|
+ return formularMap
|
|
|
+}
|
|
|
+
|
|
|
+func (formulars Formulars) GetStfCardIds() (stfCardIds []int) {
|
|
|
+ for _, formular := range formulars {
|
|
|
+ stfCardIds = append(stfCardIds, formular.StfCardId)
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func (formulars Formulars) GetEmpGUIDs() (empGUIDs []int) {
|
|
|
+ empGUIDMap := map[int]bool{}
|
|
|
+
|
|
|
+ for _, formular := range formulars {
|
|
|
+ empGUIDMap[formular.EmpGUID] = true
|
|
|
+ }
|
|
|
+ for empGUID, _ := range empGUIDMap {
|
|
|
+ empGUIDs = append(empGUIDs, empGUID)
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func (formulars Formulars) PreparePeople() Formulars {
|
|
|
+ ids := formulars.GetEmpGUIDs()
|
|
|
+
|
|
|
+ people, err := PersonSQL.Select("EmpGUID IN (?)", ids)
|
|
|
+ if err != nil && err != sql.ErrNoRows {
|
|
|
+ panic(err)
|
|
|
+ }
|
|
|
+
|
|
|
+ personMap := People(people).ToMap()
|
|
|
+
|
|
|
+ for idx, formular := range formulars {
|
|
|
+ formulars[idx].person = *personMap[formular.EmpGUID]
|
|
|
+ formulars[idx].personReady = true
|
|
|
+ }
|
|
|
+
|
|
|
+ return formulars
|
|
|
+}
|
|
|
+
|
|
|
func (formulars Formulars) GetPeople() (people People) {
|
|
|
for _, formular := range formulars {
|
|
|
people = append(people, formular.GetPerson())
|