enterprise/service/salary_calculator/salary_calculator_1002.go

32 lines
827 B
Go
Raw Normal View History

2025-03-05 10:11:07 +08:00
package salary_calculator
import (
"enterprise/common/model"
"enterprise/common/registry"
"github.com/spf13/cast"
)
type SalaryCalculator1002 struct {
corp *model.Corp
user *model.StaffUser
}
func NewSalaryCalculator1002(corp *model.Corp, user *model.StaffUser) registry.SalaryCalculator {
return &SalaryCalculator1002{
corp: corp,
user: user,
}
}
func (s *SalaryCalculator1002) Calculate(salary *model.StaffSalary) {
userSlary := s.user.GetSalary()
if s.user.Status == model.StaffUserStatusAttach { //挂靠直接算工资
salary.AttendSalary = cast.ToFloat64(userSlary.Base)
salary.TargetSalary = cast.ToFloat64(userSlary.Target)
return
}
salary.AttendSalary = cast.ToFloat64(userSlary.Base) * (salary.AttendDay / float64(salary.ShouldDay))
salary.TargetSalary = cast.ToFloat64(userSlary.Target)
}