Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package handlers
- import (
- "gamification-backend/api/models"
- "gamification-backend/constants"
- "net/http"
- "strconv"
- "github.com/labstack/echo/v4"
- )
- type (
- //EvaluationCompletedDTO Response to endpoint /reports/add --actually unused as response
- EvaluationCompletedDTO struct {
- ID int `json:"id"`
- Name string `json:"user_name"`
- CellID int `json:"user_cell_id"`
- LeadCellID int `json:"user_lead_cell"`
- SpiritPromLeadCell float64 `json:"spirit_prom_lead_cell"`
- Total float64 `json:"total"`
- SpiritTotal float64 `json:"spirit_total"`
- Period string `json:"period"`
- SpiritPromAuto SpiritLetterModel `json:"spirit_prom_auto"`
- SpiritPromLeader SpiritLetterModel `json:"spirit_prom_leader"`
- SpiritPromExternals SpiritLetterModel `json:"spirit_prom_externals"`
- SpiritPromPair SpiritLetterModel `json:"spirit_prom_pair"`
- SpiritPromColab SpiritLetterModel `json:"spirit_prom_colaborators"`
- SpiritCollection []SpiritModel `json:"spirit_collection"`
- GoalsTotal float64 `json:"goals_total"`
- GoalPromAuto float64 `json:"goal_prom_auto"`
- GoalPromLeader float64 `json:"goal_prom_leader"`
- GoalsCollection []GoalModel `json:"goals_collection"`
- }
- //SpiritModel struct
- SpiritModel struct {
- EvaluationID int `json:"evaluation_id"`
- EvaluatorID int `json:"evaluator_id"`
- EvaluatorName string `json:"evaluator_name"`
- Spoints int `json:"s_points"`
- Ppoints int `json:"p_points"`
- Ipoints int `json:"i_points"`
- Rpoints int `json:"r_points"`
- I2points int `json:"i__points"`
- Tpoints int `json:"t_points"`
- Type string `json:"evaluator_type"`
- }
- //SpiritLetterModel struct
- SpiritLetterModel struct {
- S int `json:"s_points"`
- P int `json:"p_points"`
- I int `json:"i_points"`
- R int `json:"r_points"`
- I2 int `json:"i__points"`
- T int `json:"t_points"`
- EvaluationsCount int `json:"evaluations_count"`
- SpiritProm float64 `json:"spirit_prom"`
- }
- //GoalModel struct
- GoalModel struct {
- EvaluationID int `json:"evaluation_id"`
- EvaluatorID int `json:"evaluator_id"`
- EvaluatorName string `json:"evaluator_name"`
- Points int `json:"points"`
- Type string `json:"evaluator_type"`
- }
- //ReportResponseDTO Response to endpoint /report/get
- ReportResponseDTO struct {
- ID int `json:"idUser"`
- Name string `json:"name"`
- Cell string `json:"cell"`
- LeaderName string `json:"leader"`
- Period string `json:"period"`
- Role string `json:"role"`
- Total float64 `json:"totalResult"`
- CompromiseTotal float64 `json:"totalCompromise"`
- SpiritTotal float64 `json:"totalSpirit"`
- EvaluationCompromise EvaluationCompromise `json:"evaluacionCompromisos"`
- EvaluationSpirit EvaluationSpirit `json:"evaluacionSpirit"`
- EvaluationLeader []EvaluationLeader `json:"evaluacionLider"`
- }
- EvaluationCompromise struct {
- LeaderCompromise LeaderCompromise `json:"leader"`
- AutoCompromise AutoCompromise `json:"auto"`
- }
- LeaderCompromise struct {
- Calification float64 `json:"nota"`
- Comment string `json:"comentario"`
- }
- AutoCompromise struct {
- Calification float64 `json:"nota"`
- Comment string `json:"comentario"`
- Innovation string `json:"inovacion"`
- }
- EvaluationSpirit struct {
- Leader EvaluationSpiritLetter `json:"lider"`
- Auto EvaluationSpiritLetter `json:"auto"`
- Pairs EvaluationSpiritLetter `json:"pares"`
- Externs EvaluationSpiritLetter `json:"externos"`
- }
- EvaluationSpiritLetter struct {
- S int `json:"0"`
- P int `json:"1"`
- I int `json:"2"`
- R int `json:"3"`
- I2 int `json:"4"`
- T int `json:"5"`
- Prom float64 `json:"promedio"`
- Comments []string `json:"comentarios"`
- }
- EvaluationLeader struct {
- ID int `json:"ID"`
- Question string `json:"pregunta"`
- Answers []string `json:"respuestas"`
- }
- )
- //GetReport get report for given params
- func GetReport(c echo.Context) error {
- // name := getActiveName(c)
- // if !checkRole(name, constants.ROLE_ADMIN) && !checkRole(name, constants.ROLE_HCADMIN) {
- // return c.JSON(http.StatusUnauthorized, responseType{constants.VoidResponse, constants.VoidResponse})
- // }
- userID := c.QueryParam("user_id")
- period := c.QueryParam("period")
- if userID == "" {
- userID = strconv.Itoa(getActiveUser(c))
- }
- if period == "" {
- period = "2019"
- }
- evaluation, err := models.GetEvaluationCompleted(userID, period)
- if err != nil {
- return c.JSON(http.StatusInternalServerError, responseType{constants.VoidResponse, err.Error()})
- }
- uID, _ := strconv.Atoi(userID)
- user, err := models.GetUserByID(uID)
- if err != nil {
- return c.JSON(http.StatusInternalServerError, responseType{constants.VoidResponse, err.Error()})
- }
- cID, err := models.GetCellID(uID)
- if err != nil {
- return c.JSON(http.StatusInternalServerError, responseType{constants.VoidResponse, err.Error()})
- }
- cell, err := models.GetCell(cID)
- if err != nil {
- return c.JSON(http.StatusInternalServerError, responseType{constants.VoidResponse, err.Error()})
- }
- uLeader, err := models.GetUserByID(cell.LeaderID)
- if err != nil {
- return c.JSON(http.StatusInternalServerError, responseType{constants.VoidResponse, err.Error()})
- }
- leader, err := models.IsLeader(uID)
- if err != nil {
- return c.JSON(http.StatusInternalServerError, responseType{constants.VoidResponse, err.Error()})
- }
- response := new(ReportResponseDTO)
- response.ID = uID
- response.Name = user.Name + " " + user.Surname
- response.Cell = cell.Title
- if leader {
- response.Role = "leader"
- } else {
- response.Role = "colaborator"
- }
- response.LeaderName = uLeader.Name + " " + uLeader.Surname
- response.Period = period
- response.Total = evaluation.FinalResult
- response.CompromiseTotal = evaluation.GoalsResult
- response.SpiritTotal = evaluation.SpiritResult
- iPeriod, err := strconv.Atoi(period)
- gEvaluation, err := models.GetEvaluationGoals(uID, uLeader.ID, iPeriod)
- if err != nil {
- return c.JSON(http.StatusInternalServerError, responseType{constants.VoidResponse, err.Error()})
- }
- response.EvaluationCompromise.LeaderCompromise.Calification = evaluation.GoalsResult
- response.EvaluationCompromise.LeaderCompromise.Comment = gEvaluation.GoalEvaluation.Comment
- aEvaluation, err := models.GetEvaluationGoals(uID, uID, iPeriod)
- if err != nil {
- return c.JSON(http.StatusInternalServerError, responseType{constants.VoidResponse, err.Error()})
- }
- response.EvaluationCompromise.AutoCompromise.Calification = evaluation.ResultsGoalsAuto
- response.EvaluationCompromise.AutoCompromise.Comment = aEvaluation.GoalEvaluation.Comment
- innovation, err := models.GetInnovateValueByUserID(uID)
- if err != nil {
- return c.JSON(http.StatusInternalServerError, responseType{constants.VoidResponse, err.Error()})
- }
- response.EvaluationCompromise.AutoCompromise.Innovation = innovation
- response.EvaluationSpirit.Auto.Prom = evaluation.ResultSpiritAuto
- response.EvaluationSpirit.Leader.Prom = evaluation.ResultSpiritLeader
- response.EvaluationSpirit.Pairs.Prom = evaluation.ResultSpiritPairs
- response.EvaluationSpirit.Externs.Prom = evaluation.ResultSpiritExternals
- return c.JSON(http.StatusOK, response)
- }
- //GenerateReport Generates report of evaluations for given params
- func GenerateReport(c echo.Context) error {
- // name := getActiveName(c)
- // if !checkRole(name, constants.ROLE_ADMIN) && !checkRole(name, constants.ROLE_HCADMIN) {
- // return c.JSON(http.StatusUnauthorized, responseType{constants.VoidResponse, constants.VoidResponse})
- // }
- userID := c.QueryParam("user_id")
- reports, err := models.GetReport(userID)
- if err != nil {
- return c.JSON(http.StatusInternalServerError, responseType{constants.VoidResponse, err.Error()})
- } else if len(*reports) <= 0 {
- return c.JSON(http.StatusOK, responseType{constants.VoidResponse, constants.VoidResponse})
- }
- endResponse := parseData(reports)
- if len(*endResponse) <= 0 {
- return c.JSON(http.StatusOK, responseType{constants.VoidResponse, constants.VoidResponse})
- }
- endResponse = calcData(endResponse)
- if len(*endResponse) > 1 {
- evaluations := toEvaluationCompletedCollection(endResponse)
- for _, evaluation := range *evaluations {
- err = models.SaveReport(evaluation)
- if err != nil {
- continue
- }
- }
- // return c.JSON(http.StatusOK, responseType{constants.Completed, constants.VoidResponse})
- return c.JSON(http.StatusOK, endResponse)
- }
- response := (*endResponse)[0]
- evaluation := toEvaluationCompleted(response)
- err = models.SaveReport(*evaluation)
- if err != nil {
- return c.JSON(http.StatusInternalServerError, responseType{constants.VoidResponse, err.Error()})
- }
- // return c.JSON(http.StatusOK, responseType{constants.Completed, constants.VoidResponse})
- return c.JSON(http.StatusOK, response)
- }
- func parseData(reports *[]models.Report) *[]EvaluationCompletedDTO {
- retResponse := new([]EvaluationCompletedDTO)
- for _, report := range *reports {
- if len(*retResponse) > 0 {
- for index, response := range *retResponse {
- if report.UserID == response.ID {
- respp := new(EvaluationCompletedDTO)
- respp = &response
- if report.CategoryName == constants.EvaluationPrinciples {
- spirit := toSpiritModel(report)
- respp.SpiritCollection = append(respp.SpiritCollection, *spirit)
- } else if report.CategoryName == constants.GoalsCategory {
- goal := toGoalModel(report)
- response.GoalsCollection = append(response.GoalsCollection, *goal)
- }
- (*retResponse)[index] = *respp
- break
- } else {
- exists := false
- for _, resp0nse := range *retResponse {
- if report.UserID == resp0nse.ID {
- exists = true
- break
- }
- }
- if !exists {
- resp := toEvaluationCompletedDTO(report)
- *retResponse = append(*retResponse, *resp)
- break
- }
- }
- }
- } else {
- resp := toEvaluationCompletedDTO(report)
- *retResponse = append(*retResponse, *resp)
- }
- }
- return retResponse
- }
- func calcData(responseCollection *[]EvaluationCompletedDTO) *[]EvaluationCompletedDTO {
- for index, response := range *responseCollection {
- letter := new([5][6]int)
- counter := new([5]int)
- for _, spirit := range response.SpiritCollection {
- switch spirit.Type {
- case constants.REL_AUTO:
- letter[0][0] += spirit.Spoints
- letter[0][1] += spirit.Ppoints
- letter[0][2] += spirit.Ipoints
- letter[0][3] += spirit.Rpoints
- letter[0][4] += spirit.I2points
- letter[0][5] += spirit.Tpoints
- counter[0]++
- case constants.REL_LEADER:
- letter[1][0] += spirit.Spoints
- letter[1][1] += spirit.Ppoints
- letter[1][2] += spirit.Ipoints
- letter[1][3] += spirit.Rpoints
- letter[1][4] += spirit.I2points
- letter[1][5] += spirit.Tpoints
- counter[1]++
- case constants.REL_EXTERNAL:
- letter[2][0] += spirit.Spoints
- letter[2][1] += spirit.Ppoints
- letter[2][2] += spirit.Ipoints
- letter[2][3] += spirit.Rpoints
- letter[2][4] += spirit.I2points
- letter[2][5] += spirit.Tpoints
- counter[2]++
- case constants.REL_PAIR:
- letter[3][0] += spirit.Spoints
- letter[3][1] += spirit.Ppoints
- letter[3][2] += spirit.Ipoints
- letter[3][3] += spirit.Rpoints
- letter[3][4] += spirit.I2points
- letter[3][5] += spirit.Tpoints
- counter[3]++
- case constants.REL_COLAB:
- letter[4][0] += spirit.Spoints
- letter[4][1] += spirit.Ppoints
- letter[4][2] += spirit.Ipoints
- letter[4][3] += spirit.Rpoints
- letter[4][4] += spirit.I2points
- letter[4][5] += spirit.Tpoints
- counter[4]++
- }
- }
- respp := new(EvaluationCompletedDTO)
- respp = &response
- // Auto evaluations
- respp.SpiritPromAuto.S = letter[0][0]
- respp.SpiritPromAuto.P = letter[0][1]
- respp.SpiritPromAuto.I = letter[0][2]
- respp.SpiritPromAuto.R = letter[0][3]
- respp.SpiritPromAuto.I2 = letter[0][4]
- respp.SpiritPromAuto.T = letter[0][5]
- respp.SpiritPromAuto.EvaluationsCount = counter[0]
- if counter[0] > 0 {
- if respp.SpiritPromAuto.S > 0 {
- respp.SpiritPromAuto.S /= counter[0]
- }
- if respp.SpiritPromAuto.P > 0 {
- respp.SpiritPromAuto.P /= counter[0]
- }
- if respp.SpiritPromAuto.I > 0 {
- respp.SpiritPromAuto.I /= counter[0]
- }
- if respp.SpiritPromAuto.R > 0 {
- respp.SpiritPromAuto.R /= counter[0]
- }
- if respp.SpiritPromAuto.I2 > 0 {
- respp.SpiritPromAuto.I2 /= counter[0]
- }
- if respp.SpiritPromAuto.T > 0 {
- respp.SpiritPromAuto.T /= counter[0]
- }
- }
- respp.SpiritPromAuto.SpiritProm =
- float64(respp.SpiritPromAuto.S +
- respp.SpiritPromAuto.P +
- respp.SpiritPromAuto.I +
- respp.SpiritPromAuto.R +
- respp.SpiritPromAuto.I2 +
- respp.SpiritPromAuto.T)
- if respp.SpiritPromAuto.SpiritProm > 0 {
- respp.SpiritPromAuto.SpiritProm /= 6
- }
- // Leader evaluations
- respp.SpiritPromLeader.S = letter[1][0]
- respp.SpiritPromLeader.P = letter[1][1]
- respp.SpiritPromLeader.I = letter[1][2]
- respp.SpiritPromLeader.R = letter[1][3]
- respp.SpiritPromLeader.I2 = letter[1][4]
- respp.SpiritPromLeader.T = letter[1][5]
- respp.SpiritPromLeader.EvaluationsCount = counter[1]
- if counter[1] > 0 {
- if respp.SpiritPromLeader.S > 0 {
- respp.SpiritPromLeader.S /= counter[1]
- }
- if respp.SpiritPromLeader.P > 0 {
- respp.SpiritPromLeader.P /= counter[1]
- }
- if respp.SpiritPromLeader.I > 0 {
- respp.SpiritPromLeader.I /= counter[1]
- }
- if respp.SpiritPromLeader.R > 0 {
- respp.SpiritPromLeader.R /= counter[1]
- }
- if respp.SpiritPromLeader.I2 > 0 {
- respp.SpiritPromLeader.I2 /= counter[1]
- }
- if respp.SpiritPromLeader.T > 0 {
- respp.SpiritPromLeader.T /= counter[1]
- }
- }
- respp.SpiritPromLeader.SpiritProm =
- float64(respp.SpiritPromLeader.S +
- respp.SpiritPromLeader.P +
- respp.SpiritPromLeader.I +
- respp.SpiritPromLeader.R +
- respp.SpiritPromLeader.I2 +
- respp.SpiritPromLeader.T)
- if respp.SpiritPromLeader.SpiritProm > 0 {
- respp.SpiritPromLeader.SpiritProm /= 6
- }
- // Externals evaluations
- respp.SpiritPromExternals.S = letter[2][0]
- respp.SpiritPromExternals.P = letter[2][1]
- respp.SpiritPromExternals.I = letter[2][2]
- respp.SpiritPromExternals.R = letter[2][3]
- respp.SpiritPromExternals.I2 = letter[2][4]
- respp.SpiritPromExternals.T = letter[2][5]
- respp.SpiritPromExternals.EvaluationsCount = counter[2]
- if counter[2] > 0 {
- if respp.SpiritPromExternals.S > 0 {
- respp.SpiritPromExternals.S /= counter[2]
- }
- if respp.SpiritPromExternals.P > 0 {
- respp.SpiritPromExternals.P /= counter[2]
- }
- if respp.SpiritPromExternals.I > 0 {
- respp.SpiritPromExternals.I /= counter[2]
- }
- if respp.SpiritPromExternals.R > 0 {
- respp.SpiritPromExternals.R /= counter[2]
- }
- if respp.SpiritPromExternals.I2 > 0 {
- respp.SpiritPromExternals.I2 /= counter[2]
- }
- if respp.SpiritPromExternals.T > 0 {
- respp.SpiritPromExternals.T /= counter[2]
- }
- }
- respp.SpiritPromExternals.SpiritProm =
- float64(respp.SpiritPromExternals.S +
- respp.SpiritPromExternals.P +
- respp.SpiritPromExternals.I +
- respp.SpiritPromExternals.R +
- respp.SpiritPromExternals.I2 +
- respp.SpiritPromExternals.T)
- if respp.SpiritPromExternals.SpiritProm > 0 {
- respp.SpiritPromExternals.SpiritProm /= 6
- }
- // Pair evaluations
- respp.SpiritPromPair.S = letter[3][0]
- respp.SpiritPromPair.P = letter[3][1]
- respp.SpiritPromPair.I = letter[3][2]
- respp.SpiritPromPair.R = letter[3][3]
- respp.SpiritPromPair.I2 = letter[3][4]
- respp.SpiritPromPair.T = letter[3][5]
- respp.SpiritPromPair.EvaluationsCount = counter[3]
- if counter[3] > 0 {
- if respp.SpiritPromPair.S > 0 {
- respp.SpiritPromPair.S /= counter[3]
- }
- if respp.SpiritPromPair.P > 0 {
- respp.SpiritPromPair.P /= counter[3]
- }
- if respp.SpiritPromPair.I > 0 {
- respp.SpiritPromPair.I /= counter[3]
- }
- if respp.SpiritPromPair.R > 0 {
- respp.SpiritPromPair.R /= counter[3]
- }
- if respp.SpiritPromPair.I2 > 0 {
- respp.SpiritPromPair.I2 /= counter[3]
- }
- if respp.SpiritPromPair.T > 0 {
- respp.SpiritPromPair.T /= counter[3]
- }
- }
- respp.SpiritPromPair.SpiritProm =
- float64(respp.SpiritPromPair.S +
- respp.SpiritPromPair.P +
- respp.SpiritPromPair.I +
- respp.SpiritPromPair.R +
- respp.SpiritPromPair.I2 +
- respp.SpiritPromPair.T)
- if respp.SpiritPromPair.SpiritProm > 0 {
- respp.SpiritPromPair.SpiritProm /= 6
- }
- // Colaborators evaluations
- respp.SpiritPromColab.S = letter[4][0]
- respp.SpiritPromColab.P = letter[4][1]
- respp.SpiritPromColab.I = letter[4][2]
- respp.SpiritPromColab.R = letter[4][3]
- respp.SpiritPromColab.I2 = letter[4][4]
- respp.SpiritPromColab.T = letter[4][5]
- respp.SpiritPromColab.EvaluationsCount = counter[4]
- if counter[4] > 0 {
- if respp.SpiritPromColab.S > 0 {
- respp.SpiritPromColab.S /= counter[4]
- }
- if respp.SpiritPromColab.P > 0 {
- respp.SpiritPromColab.P /= counter[4]
- }
- if respp.SpiritPromColab.I > 0 {
- respp.SpiritPromColab.I /= counter[4]
- }
- if respp.SpiritPromColab.R > 0 {
- respp.SpiritPromColab.R /= counter[4]
- }
- if respp.SpiritPromColab.I2 > 0 {
- respp.SpiritPromColab.I2 /= counter[4]
- }
- if respp.SpiritPromColab.T > 0 {
- respp.SpiritPromColab.T /= counter[4]
- }
- }
- respp.SpiritPromColab.SpiritProm =
- float64(respp.SpiritPromColab.S +
- respp.SpiritPromColab.P +
- respp.SpiritPromColab.I +
- respp.SpiritPromColab.R +
- respp.SpiritPromColab.I2 +
- respp.SpiritPromColab.T)
- if respp.SpiritPromColab.SpiritProm > 0 {
- respp.SpiritPromColab.SpiritProm /= 6
- }
- // END SPIRIT
- leaderPercent := respp.SpiritPromLeader.SpiritProm * 0.9
- ExternsPairPercent := (respp.SpiritPromExternals.SpiritProm + respp.SpiritPromPair.SpiritProm) * 0.1
- respp.SpiritTotal = leaderPercent + ExternsPairPercent
- pointsGoals := new([4]int)
- counter[0] = 0
- counter[1] = 0
- for _, goal := range response.GoalsCollection {
- switch goal.Type {
- case constants.REL_AUTO:
- pointsGoals[0] += goal.Points
- counter[0]++
- case constants.REL_LEADER:
- pointsGoals[1] += goal.Points
- counter[1]++
- }
- }
- if pointsGoals[0] > 0 && counter[0] > 0 {
- respp.GoalPromAuto = float64(pointsGoals[0] / counter[0])
- }
- if pointsGoals[1] > 0 && counter[1] > 0 {
- respp.GoalPromLeader = float64(pointsGoals[1] / counter[1])
- }
- respp.GoalsTotal = float64(pointsGoals[1])
- goalPercent := respp.GoalsTotal * 0.6
- spiritPercent := respp.SpiritTotal * 0.4
- respp.Total = (goalPercent + spiritPercent) / 2
- respp.SpiritPromLeadCell = respp.SpiritPromColab.SpiritProm
- (*responseCollection)[index] = *respp
- }
- return responseCollection
- }
- // func checkRole(name string, rol string) bool {
- // roles, err := getUserRole(name)
- // if err != nil {
- // return false
- // }
- // result := false
- // for _, role := range roles {
- // if role == rol {
- // result = true
- // break
- // }
- // }
- // return result
- // }
- func toEvaluationCompletedDTO(report models.Report) *EvaluationCompletedDTO {
- response := new(EvaluationCompletedDTO)
- response.ID = report.UserID
- response.Name = report.UserName + " " + report.UserSurname
- response.CellID = report.UserCellID
- response.SpiritCollection = []SpiritModel{}
- response.GoalsCollection = []GoalModel{}
- response.LeadCellID = report.UserLeadCellID
- response.Period = "2019"
- if report.CategoryName == constants.EvaluationPrinciples {
- spirit := toSpiritModel(report)
- response.SpiritCollection = append(response.SpiritCollection, *spirit)
- } else if report.CategoryName == constants.GoalsCategory {
- goal := toGoalModel(report)
- response.GoalsCollection = append(response.GoalsCollection, *goal)
- }
- return response
- }
- func toSpiritModel(report models.Report) *SpiritModel {
- spirit := new(SpiritModel)
- spirit.Spoints = report.Spoints
- spirit.Ppoints = report.Ppoints
- spirit.Ipoints = report.Ipoints
- spirit.Rpoints = report.Rpoints
- spirit.I2points = report.I2points
- spirit.Tpoints = report.Tpoints
- spirit.EvaluatorID = report.EvaluatorID
- spirit.EvaluatorName = report.EvaluatorName + " " + report.EvaluatorSurname
- spirit.EvaluationID = report.EvaluationID
- spirit.Type = getUsersRelation(report.UserID, report.EvaluatorID, report.UserCellID, report.EvaluatorCellID, report.UserLeaderID, report.UserLeadCellID)
- return spirit
- }
- func toGoalModel(report models.Report) *GoalModel {
- goal := new(GoalModel)
- goal.Points = report.GoalPoints
- goal.EvaluatorID = report.EvaluatorID
- goal.EvaluatorName = report.EvaluatorName + " " + report.EvaluatorSurname
- goal.EvaluationID = report.EvaluationID
- goal.Type = getUsersRelation(report.UserID, report.EvaluatorID, report.UserCellID, report.EvaluatorCellID, report.UserLeaderID, report.UserLeadCellID)
- return goal
- }
- func getUsersRelation(userAID int, userBID int, userACellID int, userBCellID int, userLeaderID int, userLeadCell int) string {
- if userAID == userBID {
- return constants.REL_AUTO
- } else if userACellID == userBCellID {
- return constants.REL_PAIR
- } else if userLeadCell > 0 && userBCellID == userLeadCell {
- return constants.REL_COLAB
- } else if userBID != userLeaderID {
- return constants.REL_EXTERNAL
- } else {
- return constants.REL_LEADER
- }
- }
- func toEvaluationCompletedCollection(collection *[]EvaluationCompletedDTO) *[]models.EvaluationCompleted {
- response := new([]models.EvaluationCompleted)
- for _, element := range *collection {
- *response = append(*response, *toEvaluationCompleted(element))
- }
- return response
- }
- func toEvaluationCompleted(data EvaluationCompletedDTO) *models.EvaluationCompleted {
- response := new(models.EvaluationCompleted)
- response.UserID = data.ID
- response.UserCellID = data.CellID
- response.Period = data.Period
- response.FinalResult = data.Total
- response.GoalsResult = data.GoalsTotal
- response.SpiritResult = data.SpiritTotal
- response.ResultSpiritAuto = data.SpiritPromAuto.SpiritProm
- response.ResultSpiritLeader = data.SpiritPromLeader.SpiritProm
- response.ResultSpiritExternals = data.SpiritPromExternals.SpiritProm
- response.ResultSpiritPairs = data.SpiritPromAuto.SpiritProm
- response.ResultSpiritLead = data.SpiritPromLeadCell
- response.ResultsGoalsAuto = data.GoalPromAuto
- response.ShowReport = false
- return response
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement