...
|
...
|
@@ -117,21 +117,6 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo |
|
|
continue
|
|
|
}
|
|
|
|
|
|
// 校验合约关联的项目是否已结束
|
|
|
//if cooperationProject.Status == 2 {
|
|
|
// dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{
|
|
|
// DividendsUser: nil,
|
|
|
// DividendsParticipateType: 0,
|
|
|
// DividendsStage: 0,
|
|
|
// DividendsAmount: 0,
|
|
|
// OrderOrReturnedOrderNumber: orderGood.DividendsOrderNumber,
|
|
|
// IsSuccessfully: false,
|
|
|
// Reason: "共创项目" + orderGood.CooperationContractNumber + "已结束",
|
|
|
// })
|
|
|
// continue
|
|
|
// //return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("共创项目%s已结束", cooperationContract.CooperationProjectNumber))
|
|
|
//}
|
|
|
|
|
|
if orderGood.DividendsOrderNumber != "" { // 获取分红订单
|
|
|
// 获取分红订单
|
|
|
dividendsOrder, err2 := dividendsOrderRepository.FindOne(map[string]interface{}{
|
...
|
...
|
@@ -190,75 +175,82 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo |
|
|
if dividendsIncentivesRuleMatched != nil {
|
|
|
for _, undertaker := range cooperationContract.Undertakers {
|
|
|
// 添加承接人分红预算信息详情
|
|
|
undertakerDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.DividendsIncentivesPercentage).Div(decimal.NewFromFloat(100))).Float64()
|
|
|
dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{
|
|
|
DividendsUser: &domain.User{
|
|
|
UserId: undertaker.UserId,
|
|
|
UserBaseId: undertaker.UserBaseId,
|
|
|
Org: undertaker.Org,
|
|
|
Orgs: undertaker.Orgs,
|
|
|
Department: undertaker.Department,
|
|
|
Roles: undertaker.Roles,
|
|
|
UserInfo: undertaker.UserInfo,
|
|
|
UserType: undertaker.UserType,
|
|
|
UserName: undertaker.UserInfo.UserName,
|
|
|
UserPhone: undertaker.UserPhone,
|
|
|
Status: undertaker.Status,
|
|
|
Company: undertaker.Company,
|
|
|
},
|
|
|
DividendsParticipateType: domain.UNDERTAKER,
|
|
|
DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage,
|
|
|
DividendsAmount: undertakerDividendsAmount,
|
|
|
OrderOrReturnedOrderNumber: dividendsOrder.DividendsOrderNumber,
|
|
|
IsSuccessfully: true,
|
|
|
})
|
|
|
// 添加推荐人分红预算信息详情
|
|
|
if undertaker.Referrer != nil {
|
|
|
referrerDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.ReferrerPercentage).Div(decimal.NewFromFloat(100))).Float64()
|
|
|
if dividendsIncentivesRuleMatched.DividendsIncentivesPercentage > 0 {
|
|
|
undertakerDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.DividendsIncentivesPercentage).Div(decimal.NewFromFloat(100))).Float64()
|
|
|
dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{
|
|
|
DividendsUser: &domain.User{
|
|
|
UserId: undertaker.Referrer.UserId,
|
|
|
UserBaseId: undertaker.Referrer.UserBaseId,
|
|
|
Org: undertaker.Referrer.Org,
|
|
|
Orgs: undertaker.Referrer.Orgs,
|
|
|
Department: undertaker.Referrer.Department,
|
|
|
Roles: undertaker.Referrer.Roles,
|
|
|
UserInfo: undertaker.Referrer.UserInfo,
|
|
|
UserType: undertaker.Referrer.UserType,
|
|
|
UserName: undertaker.Referrer.UserName,
|
|
|
UserPhone: undertaker.Referrer.UserPhone,
|
|
|
Company: undertaker.Referrer.Company,
|
|
|
UserId: undertaker.UserId,
|
|
|
UserBaseId: undertaker.UserBaseId,
|
|
|
Org: undertaker.Org,
|
|
|
Orgs: undertaker.Orgs,
|
|
|
Department: undertaker.Department,
|
|
|
Roles: undertaker.Roles,
|
|
|
UserInfo: undertaker.UserInfo,
|
|
|
UserType: undertaker.UserType,
|
|
|
UserName: undertaker.UserInfo.UserName,
|
|
|
UserPhone: undertaker.UserPhone,
|
|
|
Status: undertaker.Status,
|
|
|
Company: undertaker.Company,
|
|
|
},
|
|
|
DividendsParticipateType: domain.REFERRER,
|
|
|
DividendsParticipateType: domain.UNDERTAKER,
|
|
|
DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage,
|
|
|
DividendsAmount: referrerDividendsAmount,
|
|
|
DividendsAmount: undertakerDividendsAmount,
|
|
|
OrderOrReturnedOrderNumber: dividendsOrder.DividendsOrderNumber,
|
|
|
IsSuccessfully: true,
|
|
|
})
|
|
|
}
|
|
|
|
|
|
// 添加推荐人分红预算信息详情
|
|
|
if undertaker.Referrer != nil {
|
|
|
if dividendsIncentivesRuleMatched.ReferrerPercentage > 0 {
|
|
|
referrerDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.ReferrerPercentage).Div(decimal.NewFromFloat(100))).Float64()
|
|
|
dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{
|
|
|
DividendsUser: &domain.User{
|
|
|
UserId: undertaker.Referrer.UserId,
|
|
|
UserBaseId: undertaker.Referrer.UserBaseId,
|
|
|
Org: undertaker.Referrer.Org,
|
|
|
Orgs: undertaker.Referrer.Orgs,
|
|
|
Department: undertaker.Referrer.Department,
|
|
|
Roles: undertaker.Referrer.Roles,
|
|
|
UserInfo: undertaker.Referrer.UserInfo,
|
|
|
UserType: undertaker.Referrer.UserType,
|
|
|
UserName: undertaker.Referrer.UserName,
|
|
|
UserPhone: undertaker.Referrer.UserPhone,
|
|
|
Company: undertaker.Referrer.Company,
|
|
|
},
|
|
|
DividendsParticipateType: domain.REFERRER,
|
|
|
DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage,
|
|
|
DividendsAmount: referrerDividendsAmount,
|
|
|
OrderOrReturnedOrderNumber: dividendsOrder.DividendsOrderNumber,
|
|
|
IsSuccessfully: true,
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
// 添加关联业务员分红预算信息详情
|
|
|
if undertaker.Salesman != nil {
|
|
|
salesmanDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.SalesmanPercentage).Div(decimal.NewFromFloat(100))).Float64()
|
|
|
dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{
|
|
|
DividendsUser: &domain.User{
|
|
|
UserId: undertaker.Salesman.UserId,
|
|
|
UserBaseId: undertaker.Salesman.UserBaseId,
|
|
|
Org: undertaker.Salesman.Org,
|
|
|
Orgs: undertaker.Salesman.Orgs,
|
|
|
Department: undertaker.Salesman.Department,
|
|
|
Roles: undertaker.Salesman.Roles,
|
|
|
UserInfo: undertaker.Salesman.UserInfo,
|
|
|
UserType: undertaker.Salesman.UserType,
|
|
|
UserName: undertaker.Salesman.UserInfo.UserName,
|
|
|
UserPhone: undertaker.Salesman.UserPhone,
|
|
|
Company: undertaker.Salesman.Company,
|
|
|
},
|
|
|
DividendsParticipateType: domain.SALESMAN,
|
|
|
DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage,
|
|
|
DividendsAmount: salesmanDividendsAmount,
|
|
|
OrderOrReturnedOrderNumber: dividendsOrder.DividendsOrderNumber,
|
|
|
IsSuccessfully: true,
|
|
|
})
|
|
|
if dividendsIncentivesRuleMatched.SalesmanPercentage > 0 {
|
|
|
salesmanDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.SalesmanPercentage).Div(decimal.NewFromFloat(100))).Float64()
|
|
|
dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{
|
|
|
DividendsUser: &domain.User{
|
|
|
UserId: undertaker.Salesman.UserId,
|
|
|
UserBaseId: undertaker.Salesman.UserBaseId,
|
|
|
Org: undertaker.Salesman.Org,
|
|
|
Orgs: undertaker.Salesman.Orgs,
|
|
|
Department: undertaker.Salesman.Department,
|
|
|
Roles: undertaker.Salesman.Roles,
|
|
|
UserInfo: undertaker.Salesman.UserInfo,
|
|
|
UserType: undertaker.Salesman.UserType,
|
|
|
UserName: undertaker.Salesman.UserInfo.UserName,
|
|
|
UserPhone: undertaker.Salesman.UserPhone,
|
|
|
Company: undertaker.Salesman.Company,
|
|
|
},
|
|
|
DividendsParticipateType: domain.SALESMAN,
|
|
|
DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage,
|
|
|
DividendsAmount: salesmanDividendsAmount,
|
|
|
OrderOrReturnedOrderNumber: dividendsOrder.DividendsOrderNumber,
|
|
|
IsSuccessfully: true,
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
...
|
...
|
@@ -304,75 +296,84 @@ func (domainService *ConfirmDividendsIncentivesEstimateService) Confirm(orderGoo |
|
|
// 计算分红
|
|
|
for _, undertaker := range cooperationContract.Undertakers {
|
|
|
// 添加承接人分红退货预算信息详情
|
|
|
undertakerDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.DividendsIncentivesPercentage).Div(decimal.NewFromFloat(100))).Float64()
|
|
|
dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{
|
|
|
DividendsUser: &domain.User{
|
|
|
UserId: undertaker.UserId,
|
|
|
UserBaseId: undertaker.UserBaseId,
|
|
|
Org: undertaker.Org,
|
|
|
Orgs: undertaker.Orgs,
|
|
|
Department: undertaker.Department,
|
|
|
Roles: undertaker.Roles,
|
|
|
UserInfo: undertaker.UserInfo,
|
|
|
UserType: undertaker.UserType,
|
|
|
UserName: undertaker.UserInfo.UserName,
|
|
|
UserPhone: undertaker.UserPhone,
|
|
|
Status: undertaker.Status,
|
|
|
Company: undertaker.Company,
|
|
|
},
|
|
|
DividendsParticipateType: domain.UNDERTAKER,
|
|
|
DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage,
|
|
|
DividendsAmount: -undertakerDividendsAmount,
|
|
|
OrderOrReturnedOrderNumber: dividendsReturnedOrder.DividendsOrderNumber,
|
|
|
IsSuccessfully: true,
|
|
|
})
|
|
|
// 添加推荐人分红退货预算信息详情
|
|
|
if undertaker.Referrer != nil {
|
|
|
referrerDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.ReferrerPercentage).Div(decimal.NewFromFloat(100))).Float64()
|
|
|
if dividendsIncentivesRuleMatched.DividendsIncentivesPercentage > 0 {
|
|
|
undertakerDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.DividendsIncentivesPercentage).Div(decimal.NewFromFloat(100))).Float64()
|
|
|
dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{
|
|
|
DividendsUser: &domain.User{
|
|
|
UserId: undertaker.Referrer.UserId,
|
|
|
UserBaseId: undertaker.Referrer.UserBaseId,
|
|
|
Org: undertaker.Referrer.Org,
|
|
|
Orgs: undertaker.Referrer.Orgs,
|
|
|
Department: undertaker.Referrer.Department,
|
|
|
Roles: undertaker.Referrer.Roles,
|
|
|
UserInfo: undertaker.Referrer.UserInfo,
|
|
|
UserType: undertaker.Referrer.UserType,
|
|
|
UserName: undertaker.Referrer.UserName,
|
|
|
UserPhone: undertaker.Referrer.UserPhone,
|
|
|
Company: undertaker.Referrer.Company,
|
|
|
UserId: undertaker.UserId,
|
|
|
UserBaseId: undertaker.UserBaseId,
|
|
|
Org: undertaker.Org,
|
|
|
Orgs: undertaker.Orgs,
|
|
|
Department: undertaker.Department,
|
|
|
Roles: undertaker.Roles,
|
|
|
UserInfo: undertaker.UserInfo,
|
|
|
UserType: undertaker.UserType,
|
|
|
UserName: undertaker.UserInfo.UserName,
|
|
|
UserPhone: undertaker.UserPhone,
|
|
|
Status: undertaker.Status,
|
|
|
Company: undertaker.Company,
|
|
|
},
|
|
|
DividendsParticipateType: domain.REFERRER,
|
|
|
DividendsParticipateType: domain.UNDERTAKER,
|
|
|
DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage,
|
|
|
DividendsAmount: -referrerDividendsAmount,
|
|
|
DividendsAmount: -undertakerDividendsAmount,
|
|
|
OrderOrReturnedOrderNumber: dividendsReturnedOrder.DividendsOrderNumber,
|
|
|
IsSuccessfully: true,
|
|
|
})
|
|
|
}
|
|
|
|
|
|
// 添加推荐人分红退货预算信息详情
|
|
|
if undertaker.Referrer != nil {
|
|
|
if dividendsIncentivesRuleMatched.ReferrerPercentage > 0 {
|
|
|
referrerDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.ReferrerPercentage).Div(decimal.NewFromFloat(100))).Float64()
|
|
|
dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{
|
|
|
DividendsUser: &domain.User{
|
|
|
UserId: undertaker.Referrer.UserId,
|
|
|
UserBaseId: undertaker.Referrer.UserBaseId,
|
|
|
Org: undertaker.Referrer.Org,
|
|
|
Orgs: undertaker.Referrer.Orgs,
|
|
|
Department: undertaker.Referrer.Department,
|
|
|
Roles: undertaker.Referrer.Roles,
|
|
|
UserInfo: undertaker.Referrer.UserInfo,
|
|
|
UserType: undertaker.Referrer.UserType,
|
|
|
UserName: undertaker.Referrer.UserName,
|
|
|
UserPhone: undertaker.Referrer.UserPhone,
|
|
|
Company: undertaker.Referrer.Company,
|
|
|
},
|
|
|
DividendsParticipateType: domain.REFERRER,
|
|
|
DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage,
|
|
|
DividendsAmount: -referrerDividendsAmount,
|
|
|
OrderOrReturnedOrderNumber: dividendsReturnedOrder.DividendsOrderNumber,
|
|
|
IsSuccessfully: true,
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 添加关联业务员分红退货预算信息详情
|
|
|
if undertaker.Salesman != nil {
|
|
|
salesmanDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.SalesmanPercentage).Div(decimal.NewFromFloat(100))).Float64()
|
|
|
dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{
|
|
|
DividendsUser: &domain.User{
|
|
|
UserId: undertaker.Salesman.UserId,
|
|
|
UserBaseId: undertaker.Salesman.UserBaseId,
|
|
|
Org: undertaker.Salesman.Org,
|
|
|
Orgs: undertaker.Salesman.Orgs,
|
|
|
Department: undertaker.Salesman.Department,
|
|
|
Roles: undertaker.Salesman.Roles,
|
|
|
UserInfo: undertaker.Salesman.UserInfo,
|
|
|
UserType: undertaker.Salesman.UserType,
|
|
|
UserName: undertaker.Salesman.UserInfo.UserName,
|
|
|
UserPhone: undertaker.Salesman.UserPhone,
|
|
|
Company: undertaker.Salesman.Company,
|
|
|
},
|
|
|
DividendsParticipateType: domain.SALESMAN,
|
|
|
DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage,
|
|
|
DividendsAmount: -salesmanDividendsAmount,
|
|
|
OrderOrReturnedOrderNumber: dividendsReturnedOrder.DividendsOrderNumber,
|
|
|
IsSuccessfully: true,
|
|
|
})
|
|
|
if dividendsIncentivesRuleMatched.SalesmanPercentage > 0 {
|
|
|
salesmanDividendsAmount, _ := decimal.NewFromFloat(orderGood.OrderGoodAmount).Mul(decimal.NewFromFloat(dividendsIncentivesRuleMatched.SalesmanPercentage).Div(decimal.NewFromFloat(100))).Float64()
|
|
|
dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{
|
|
|
DividendsUser: &domain.User{
|
|
|
UserId: undertaker.Salesman.UserId,
|
|
|
UserBaseId: undertaker.Salesman.UserBaseId,
|
|
|
Org: undertaker.Salesman.Org,
|
|
|
Orgs: undertaker.Salesman.Orgs,
|
|
|
Department: undertaker.Salesman.Department,
|
|
|
Roles: undertaker.Salesman.Roles,
|
|
|
UserInfo: undertaker.Salesman.UserInfo,
|
|
|
UserType: undertaker.Salesman.UserType,
|
|
|
UserName: undertaker.Salesman.UserInfo.UserName,
|
|
|
UserPhone: undertaker.Salesman.UserPhone,
|
|
|
Company: undertaker.Salesman.Company,
|
|
|
},
|
|
|
DividendsParticipateType: domain.SALESMAN,
|
|
|
DividendsStage: dividendsIncentivesRuleMatched.DividendsIncentivesStage,
|
|
|
DividendsAmount: -salesmanDividendsAmount,
|
|
|
OrderOrReturnedOrderNumber: dividendsReturnedOrder.DividendsOrderNumber,
|
|
|
IsSuccessfully: true,
|
|
|
})
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
}
|
...
|
...
|
|