You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
2.2 KiB
Go

package service
import (
"context"
"errors"
"fmt"
"github.com/fonchain_enterprise/fonchain-approval/api/approval"
"github.com/fonchain_enterprise/fonchain-approval/pkg/e"
"github.com/fonchain_enterprise/fonchain-approval/pkg/model"
"gorm.io/gorm"
)
func (a *ApprovalProvider) UpdateApprovalOAUUID(_ context.Context, in *approval.UpdateApprovalOAUUIDReq) (*approval.UpdateApprovalOAUUIDResponse, error) {
response := &approval.UpdateApprovalOAUUIDResponse{}
approvalOA := new(model.ApprovalOA)
result := model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Find(&approvalOA)
if result.Error != nil {
if result.Error != gorm.ErrRecordNotFound {
return response, errors.New(e.GetMsg(e.ApprovalIsNotExist))
}
return response, result.Error
}
if model.GetOaType(in.ApplyType) == "leave" {
approvalOA.Leave.UUID = in.UUID
fmt.Println("oa apply UUID is :", in.UUID)
fmt.Println("approvalOA UUID is :", approvalOA.Leave.UUID)
model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("leave", approvalOA.Leave)
} else if model.GetOaType(in.ApplyType) == "outWork" {
approvalOA.OutWork.UUID = in.UUID
model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("outWork", approvalOA.OutWork)
} else if model.GetOaType(in.ApplyType) == "makeUp" {
approvalOA.MakeUp.UUID = in.UUID
model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("makeUp", approvalOA.MakeUp)
} else if model.GetOaType(in.ApplyType) == "turnover" {
approvalOA.Turnover.UUID = in.UUID
model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("turnover", approvalOA.Turnover)
} else if model.GetOaType(in.ApplyType) == "overTime" {
approvalOA.OverTime.UUID = in.UUID
model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("overTime", approvalOA.OverTime)
} else if model.GetOaType(in.ApplyType) == "leaveApply" {
approvalOA.LeaveApply.UUID = in.UUID
model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("leaveApply", approvalOA.LeaveApply)
}
return response, nil
}