84 lines
3.6 KiB
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))
|
|
|
|
}
|