enterprise/server/api/salary.go

84 lines
3.6 KiB
Go

package api
import (
"enterprise/common/model"
"github.com/smbrave/goutil"
"github.com/spf13/cast"
)
type Salary struct {
Id string `json:"id,omitempty"`
Month string `json:"month,omitempty"`
Username string `json:"username,omitempty"`
Realname string `json:"realname,omitempty"`
SalaryBase string `json:"salary_base,omitempty"`
SalaryTarget string `json:"salary_target,omitempty"`
AttendSalary string `json:"attend_salary,omitempty"`
TargetSalary string `json:"target_salary,omitempty"`
AwardSalary string `json:"award_salary,omitempty"`
OtherSalary string `json:"other_salary,omitempty"`
ShouldDay string `json:"should_day,omitempty"`
AttendDay string `json:"attend_day,omitempty"`
HolidayDay string `json:"holiday_day,omitempty"`
SocialDeduct string `json:"social_deduct,omitempty"`
HouseDeduct string `json:"house_deduct,omitempty"`
PersonalDeduct string `json:"personal_deduct,omitempty"`
OtherDeduct string `json:"other_deduct,omitempty"`
CreateTime string `json:"create_time,omitempty"`
UpdateTime string `json:"update_time,omitempty"`
}
type CreateSalaryReq struct {
Month string `json:"month"`
Username string `json:"username"`
}
type UpdateSalaryReq struct {
Id string `json:"month"`
OtherSalary string `json:"other_salary"`
OtherDeduct string `json:"other_deduct"`
}
type ListSalaryReq struct {
BaseRequest
StartMonth string `form:"start_month"`
EndMonth string `form:"end_month"`
Username string `form:"username"`
}
func (s *Salary) From(m *model.StaffSalary) {
s.Id = cast.ToString(m.Id)
s.Username = m.Username
s.Month = m.Month
s.AttendSalary = goutil.FormatFloat(m.AttendSalary)
s.TargetSalary = goutil.FormatFloat(m.TargetSalary)
s.AwardSalary = goutil.FormatFloat(m.AwardSalary)
s.OtherSalary = goutil.FormatFloat(m.OtherSalary)
s.ShouldDay = cast.ToString(m.ShouldDay)
s.AttendDay = goutil.FormatFloat(m.AttendDay)
s.HolidayDay = goutil.FormatFloat(m.HolidayDay)
s.SocialDeduct = goutil.FormatFloat(m.SocialDeduct)
s.HouseDeduct = goutil.FormatFloat(m.HouseDeduct)
s.PersonalDeduct = goutil.FormatFloat(m.PersonalDeduct)
s.OtherDeduct = goutil.FormatFloat(m.OtherDeduct)
s.CreateTime = goutil.TimeToDateTime(m.CreateTime)
s.UpdateTime = goutil.TimeToDateTime(m.UpdateTime)
}
func (s *Salary) Add(o *Salary) {
s.SalaryTarget = goutil.FormatFloat(cast.ToFloat64(s.SalaryTarget) + cast.ToFloat64(o.SalaryTarget))
s.SalaryBase = goutil.FormatFloat(cast.ToFloat64(s.SalaryBase) + cast.ToFloat64(o.SalaryBase))
s.AttendSalary = goutil.FormatFloat(cast.ToFloat64(s.AttendSalary) + cast.ToFloat64(o.AttendSalary))
s.TargetSalary = goutil.FormatFloat(cast.ToFloat64(s.TargetSalary) + cast.ToFloat64(o.TargetSalary))
s.AwardSalary = goutil.FormatFloat(cast.ToFloat64(s.AwardSalary) + cast.ToFloat64(o.AwardSalary))
s.OtherSalary = goutil.FormatFloat(cast.ToFloat64(s.OtherSalary) + cast.ToFloat64(o.OtherSalary))
s.ShouldDay = cast.ToString(cast.ToInt(s.ShouldDay) + cast.ToInt(o.ShouldDay))
s.AttendDay = goutil.FormatFloat(cast.ToFloat64(s.AttendDay) + cast.ToFloat64(o.AttendDay))
s.HolidayDay = goutil.FormatFloat(cast.ToFloat64(s.HolidayDay) + cast.ToFloat64(o.HolidayDay))
s.SocialDeduct = goutil.FormatFloat(cast.ToFloat64(s.SocialDeduct) + cast.ToFloat64(o.SocialDeduct))
s.HouseDeduct = goutil.FormatFloat(cast.ToFloat64(s.HouseDeduct) + cast.ToFloat64(o.HouseDeduct))
s.PersonalDeduct = goutil.FormatFloat(cast.ToFloat64(s.PersonalDeduct) + cast.ToFloat64(o.PersonalDeduct))
s.OtherDeduct = goutil.FormatFloat(cast.ToFloat64(s.OtherDeduct) + cast.ToFloat64(o.OtherDeduct))
}