Skip to content

Commit

Permalink
Merge branch 'release/v0.0.77'
Browse files Browse the repository at this point in the history
* release/v0.0.77:
  chore: remove commission rate validation
  feat: add preview to send df updates
  chore: update upsell person permission
  • Loading branch information
namnhce committed Mar 29, 2023
2 parents b3bab6f + 9c91bb9 commit 27feef7
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 42 deletions.
1 change: 0 additions & 1 deletion pkg/handler/project/errs/errors.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,6 @@ var (
ErrSlotAlreadyContainsAnotherMember = errors.New("slot already contains another member")
ErrDuplicateProjectCode = errors.New("project code is duplicated")
ErrAccountManagerRequired = errors.New("account manager is required")
ErrTotalCommissionRateMustBe100 = errors.New("total commission rate must be 100")

ErrInvalidFileExtension = errors.New("invalid file extension")
ErrInvalidFileSize = errors.New("invalid file size")
Expand Down
13 changes: 3 additions & 10 deletions pkg/handler/project/project.go
Original file line number Diff line number Diff line change
Expand Up @@ -1077,9 +1077,9 @@ func (h *handler) updateProjectMember(db *gorm.DB, slotID string, projectID stri
member.StartDate = input.GetStartDate()
member.EndDate = input.GetEndDate()
member.Note = input.Note
member.UpsellPersonID = input.UpsellPersonID

if authutils.HasPermission(userInfo.Permissions, model.PermissionProjectsCommissionRateEdit) {
member.UpsellPersonID = input.UpsellPersonID
member.UpsellCommissionRate = input.UpsellCommissionRate
}

Expand Down Expand Up @@ -1143,10 +1143,10 @@ func (h *handler) updateProjectMember(db *gorm.DB, slotID string, projectID stri
StartDate: input.GetStartDate(),
EndDate: input.GetEndDate(),
Note: input.Note,
UpsellPersonID: input.UpsellPersonID,
}

if authutils.HasPermission(userInfo.Permissions, model.PermissionProjectsCommissionRateEdit) {
member.UpsellPersonID = input.UpsellPersonID
member.UpsellCommissionRate = input.UpsellCommissionRate
}

Expand Down Expand Up @@ -1425,10 +1425,10 @@ func (h *handler) createSlotsAndAssignMembers(db *gorm.DB, projectID string, req
StartDate: req.GetStartDate(),
EndDate: req.GetEndDate(),
Note: req.Note,
UpsellPersonID: req.UpsellPersonID,
}

if authutils.HasPermission(userInfo.Permissions, model.PermissionProjectsCommissionRateEdit) {
member.UpsellPersonID = req.UpsellPersonID
member.UpsellCommissionRate = req.UpsellCommissionRate
}

Expand Down Expand Up @@ -1819,13 +1819,6 @@ func (h *handler) UpdateContactInfo(c *gin.Context) {
return
}

err = body.ValidateCommissionRate()
if err != nil && authutils.HasPermission(userInfo.Permissions, model.PermissionProjectsCommissionRateEdit) {
l.Error(err, "commission rate is invalid")
c.JSON(http.StatusBadRequest, view.CreateResponse[any](nil, nil, err, body, ""))
return
}

// Begin transaction
tx, done := h.repo.NewTransaction()

Expand Down
22 changes: 0 additions & 22 deletions pkg/handler/project/request/request.go
Original file line number Diff line number Diff line change
Expand Up @@ -391,28 +391,6 @@ func (i UpdateContactInfoInput) Validate() error {
return nil
}

func (i UpdateContactInfoInput) ValidateCommissionRate() error {
if !isValidCommissionRate(i.AccountManagers) ||
!isValidCommissionRate(i.DeliveryManagers) ||
!isValidCommissionRate(i.SalePersons) {
return errs.ErrTotalCommissionRateMustBe100
}

return nil
}

func isValidCommissionRate(heads []ProjectHeadInput) bool {
if len(heads) == 0 {
return true
}

sum := decimal.Zero
for _, head := range heads {
sum = sum.Add(head.CommissionRate)
}
return sum.Equal(decimal.NewFromInt(100))
}

type UnassignMemberInput struct {
ProjectID string
MemberID string
Expand Down
21 changes: 12 additions & 9 deletions pkg/view/project.go
Original file line number Diff line number Diff line change
Expand Up @@ -183,10 +183,10 @@ func ToProjectData(project *model.Project, userInfo *model.CurrentLoggedUserInfo

if authutils.HasPermission(userInfo.Permissions, model.PermissionProjectsReadFullAccess) {
member.DeploymentType = m.DeploymentType.String()
}

if authutils.HasPermission(userInfo.Permissions, model.PermissionProjectsCommissionRateRead) && m.UpsellPerson != nil {
member.UpsellPerson = toBasicEmployeeInfo(*m.UpsellPerson)
if m.UpsellPerson != nil {
member.UpsellPerson = toBasicEmployeeInfo(*m.UpsellPerson)
}
}

members = append(members, member)
Expand Down Expand Up @@ -338,11 +338,13 @@ func ToCreateMemberData(userInfo *model.CurrentLoggedUserInfo, slot *model.Proje
rs.ProjectMemberID = slot.ProjectMember.ID.String()
rs.EmployeeID = slot.ProjectMember.EmployeeID.String()
rs.Note = slot.ProjectMember.Note

if slot.ProjectMember.UpsellPerson != nil {
rs.UpsellPerson = toBasicEmployeeInfo(*slot.ProjectMember.UpsellPerson)
}
}

if authutils.HasPermission(userInfo.Permissions, model.PermissionProjectsCommissionRateRead) &&
slot.ProjectMember.UpsellPerson != nil {
rs.UpsellPerson = toBasicEmployeeInfo(*slot.ProjectMember.UpsellPerson)
if authutils.HasPermission(userInfo.Permissions, model.PermissionProjectsCommissionRateRead) {
rs.UpsellCommissionRate = slot.ProjectMember.UpsellCommissionRate
}

Expand Down Expand Up @@ -504,6 +506,10 @@ func ToProjectMemberListData(userInfo *model.CurrentLoggedUserInfo, members []*m
project.BankAccount.Currency != nil {
member.Currency = new(Currency)
*member.Currency = toCurrency(project.BankAccount.Currency)

if m.UpsellPerson != nil {
member.UpsellPerson = toBasicEmployeeInfo(*m.UpsellPerson)
}
}

// add commission rate
Expand All @@ -513,9 +519,6 @@ func ToProjectMemberListData(userInfo *model.CurrentLoggedUserInfo, members []*m
}

member.UpsellCommissionRate = m.UpsellCommissionRate
if m.UpsellPerson != nil {
member.UpsellPerson = toBasicEmployeeInfo(*m.UpsellPerson)
}
}

if authutils.HasPermission(userInfo.Permissions, model.PermissionProjectMembersRateRead) {
Expand Down

0 comments on commit 27feef7

Please sign in to comment.