|
@@ -5,6 +5,8 @@ import (
|
|
|
"ERP_storage/models/Account"
|
|
|
"ERP_storage/models/Basic"
|
|
|
"ERP_storage/models/Contract"
|
|
|
+ "encoding/json"
|
|
|
+ "fmt"
|
|
|
"git.baozhida.cn/ERP_libs/lib"
|
|
|
orm2 "github.com/beego/beego/v2/client/orm"
|
|
|
"strings"
|
|
@@ -22,6 +24,7 @@ const (
|
|
|
AuditUnPass // 审核不通过
|
|
|
RemitPart // 部分打款
|
|
|
RemitAll // 全部打款
|
|
|
+ NotSubmit // 未提交审核
|
|
|
|
|
|
)
|
|
|
|
|
@@ -32,6 +35,7 @@ var (
|
|
|
AuditUnPass: "审核不通过",
|
|
|
RemitPart: "部分打款",
|
|
|
RemitAll: "全部打款",
|
|
|
+ NotSubmit: "未提交审核",
|
|
|
}
|
|
|
)
|
|
|
|
|
@@ -46,15 +50,18 @@ func Read_Audit_Get(Id int) string {
|
|
|
|
|
|
// 提成
|
|
|
type Percentage struct {
|
|
|
- Id int `orm:"column(ID);size(11);auto;pk"`
|
|
|
- T_number string `orm:"size(256);null"` // 合同编号
|
|
|
- T_uuid string `orm:"size(256);null"` // 提成人员uuid
|
|
|
- T_money float32 `orm:"digits(12);decimals(2)"` // 提成金额
|
|
|
- T_type int `orm:"size(2);default(1)"` // 类型 1-验证实施 2-报告编写
|
|
|
- T_State int `orm:"size(2);default(1)"` // 0 删除(伪删除) 1-待审核 2-审核通过 3-审核不通过 4-部分打款 5-全部打款 审核状态
|
|
|
- T_submit string `orm:"size(256);null"` // 提成提交人员
|
|
|
- T_remit string `orm:"type(text);null"` // 打款信息 打款时间,打款金额|打款时间,打款金额|
|
|
|
- T_item string `orm:"type(text);null"` // 提成明细 验证项目id,数量|验证项目id,数量|
|
|
|
+ Id int `orm:"column(ID);size(11);auto;pk"`
|
|
|
+ T_number string `orm:"size(256);null"` // 合同编号
|
|
|
+ T_uuid string `orm:"size(256);null"` // 提成人员uuid
|
|
|
+ T_money float32 `orm:"digits(12);decimals(2)"` // 提成金额
|
|
|
+ T_type int `orm:"size(2);default(1)"` // 类型 1-验证实施 2-报告编写
|
|
|
+ T_State int `orm:"size(2);default(1)"` // 0 删除(伪删除) 1-待审核 2-审核通过 3-审核不通过 4-部分打款 5-全部打款 6-未提交审核 审核状态
|
|
|
+ T_submit string `orm:"size(256);null"` // 提成提交人员
|
|
|
+ T_remit string `orm:"type(text);null"` // 打款信息 打款时间,打款金额|打款时间,打款金额|
|
|
|
+ T_item string `orm:"type(text);null"` // 提成明细 验证项目id,数量|验证项目id,数量|
|
|
|
+ T_item_price string `orm:"type(text);null"` // 提成明细 {验证项目id:金额,验证项目id:金额,验证项目id:金额}
|
|
|
+ T_approval_money float32 `orm:"digits(12);decimals(2)"` // 审批金额
|
|
|
+ T_approval_opinion string `orm:"type(text);null"` // 审批意见
|
|
|
|
|
|
CreateTime time.Time `orm:"column(create_time);type(timestamp);null;auto_now_add"` //auto_now_add 第一次保存时才设置时间
|
|
|
UpdateTime time.Time `orm:"column(update_time);type(timestamp);null;auto_now"` //auto_now 每次 model 保存时都会对时间自动更新
|
|
@@ -78,39 +85,42 @@ func init() {
|
|
|
}
|
|
|
|
|
|
type Percentage_R struct {
|
|
|
- Id int
|
|
|
- T_number string // 合同编号
|
|
|
- T_customer string // 客户名称
|
|
|
- T_contract_money float32 // 合同金额
|
|
|
- T_discount float32 // 合同优惠价
|
|
|
- T_recoveries_money float32 // 回款总金额
|
|
|
-
|
|
|
- T_uuid string // 提成人员uuid
|
|
|
- T_uuid_name string // 提成人员uuid
|
|
|
- T_money float32 // 提成金额
|
|
|
- T_send_money float32 // 提成已打款金额
|
|
|
- T_type int // 类型 1-验证实施 2-报告编写
|
|
|
- T_State int // 0 删除(伪删除) 1-待审核 2-审核通过 3-审核不通过 4-部分打款 5-全部打款 审核状态
|
|
|
+ Id int
|
|
|
+ T_number string // 合同编号
|
|
|
+ T_customer string // 客户名称
|
|
|
+ T_contract_money float32 // 合同金额
|
|
|
+ T_approval_money float32 // 合同金额
|
|
|
+ T_discount float32 // 合同优惠价
|
|
|
+ T_uuid string // 提成人员uuid
|
|
|
+
|
|
|
+ T_uuid_name string // 提成人员uuid
|
|
|
+ T_money float32 // 提成金额
|
|
|
+ T_recoveries_money float32 // 审批金额
|
|
|
+ T_send_money float32 // 提成已打款金额
|
|
|
+ T_type int // 类型 1-验证实施 2-报告编写
|
|
|
+ T_State int // 0 删除(伪删除) 1-待审核 2-审核通过 3-审核不通过 4-部分打款 5-全部打款 6-未提交审核 审核状态
|
|
|
}
|
|
|
|
|
|
type Percentage_Detail struct {
|
|
|
- Id int
|
|
|
- T_number string // 合同编号
|
|
|
- T_customer string // 客户名称
|
|
|
- T_contract_money float32 // 合同金额
|
|
|
- T_discount float32 // 合同优惠价
|
|
|
- T_recoveries_money float32 // 回款总金额
|
|
|
-
|
|
|
- T_Product []Contract.ContractProduct_R // 合同产品信息
|
|
|
-
|
|
|
- T_uuid string // 提成人员uuid
|
|
|
- T_uuid_name string // 提成人员uuid
|
|
|
- T_money float32 // 提成金额
|
|
|
- T_type int // 类型 1-验证实施 2-报告编写
|
|
|
- T_State int // 0 删除(伪删除) 1-待审核 2-审核通过 3-审核不通过 4-部分打款 5-全部打款 审核状态
|
|
|
- T_remit []PercentageRemit_R // 提成打款明细 打款时间,打款金额|打款时间,打款金额|
|
|
|
- T_send_money float32 // 提成已打款金额
|
|
|
- T_item []PercentageItem_R // 提成明细 验证项目id,数量|验证项目id,数量|
|
|
|
+ Id int
|
|
|
+ T_number string // 合同编号
|
|
|
+ T_customer string // 客户名称
|
|
|
+ T_contract_money float32 // 合同金额
|
|
|
+ T_discount float32 // 合同优惠价
|
|
|
+ T_Product []Contract.ContractProduct_R // 合同产品信息
|
|
|
+ T_uuid string // 提成人员uuid
|
|
|
+
|
|
|
+ T_uuid_name string // 提成人员uuid
|
|
|
+
|
|
|
+ T_money float32 // 提成金额
|
|
|
+ T_recoveries_money float32 // 审批金额
|
|
|
+ T_approval_money float32 // 审批金额
|
|
|
+ T_approval_opinion string // 审批意见
|
|
|
+ T_State int // 0 删除(伪删除) 1-待审核 2-审核通过 3-审核不通过 4-部分打款 5-全部打款 6-未提交审核 审核状态
|
|
|
+ T_type int // 类型 1-验证实施 2-报告编写
|
|
|
+ T_remit []PercentageRemit_R // 提成打款明细 打款时间,打款金额|打款时间,打款金额|
|
|
|
+ T_send_money float32 // 提成已打款金额
|
|
|
+ T_item []PercentageItem_R // 提成明细 验证项目id,数量|验证项目id,数量|
|
|
|
}
|
|
|
|
|
|
// 提成打款明细
|
|
@@ -146,7 +156,7 @@ func PercentageToPercentageRemit_R(T_detail string) (r []PercentageRemit_R, mone
|
|
|
}
|
|
|
return r, money
|
|
|
}
|
|
|
-func PercentageToPercentageItem_R(T_item string) (r []PercentageItem_R) {
|
|
|
+func PercentageToPercentageItem_R(T_item string, priceMap map[int]float32, T_State int) (r []PercentageItem_R) {
|
|
|
|
|
|
if len(T_item) == 0 {
|
|
|
return
|
|
@@ -156,10 +166,17 @@ func PercentageToPercentageItem_R(T_item string) (r []PercentageItem_R) {
|
|
|
T_id := lib.To_int(strings.Split(detail, ",")[0])
|
|
|
T_num := lib.To_int(strings.Split(detail, ",")[1])
|
|
|
verifyItem := Basic.Read_VerifyItem_Get(T_id)
|
|
|
+ // 1-待审核 2-审核通过 3-审核不通过 4-部分打款 5-全部打款 6-未提交审核 审核状态
|
|
|
+ var price float32
|
|
|
+ if T_State == 6 {
|
|
|
+ price = verifyItem.T_price
|
|
|
+ } else {
|
|
|
+ price, _ = priceMap[T_id]
|
|
|
+ }
|
|
|
r = append(r, PercentageItem_R{
|
|
|
T_id: T_id,
|
|
|
T_num: T_num,
|
|
|
- T_price: verifyItem.T_price,
|
|
|
+ T_price: price,
|
|
|
T_name: verifyItem.T_name,
|
|
|
})
|
|
|
|
|
@@ -185,6 +202,7 @@ func PercentageToPercentage_R(t Percentage) (r Percentage_R) {
|
|
|
r.T_uuid = t.T_uuid
|
|
|
r.T_uuid_name = Account.Read_User_T_name_Get(t.T_uuid)
|
|
|
r.T_money = t.T_money
|
|
|
+ r.T_approval_money = t.T_approval_money
|
|
|
_, r.T_send_money = PercentageToPercentageRemit_R(t.T_remit)
|
|
|
r.T_type = t.T_type
|
|
|
r.T_State = t.T_State
|
|
@@ -209,10 +227,13 @@ func PercentageToPercentage_Detail(t Percentage, contract Contract.Contract, pro
|
|
|
r.T_uuid = t.T_uuid
|
|
|
r.T_uuid_name = Account.Read_User_T_name_Get(t.T_uuid)
|
|
|
r.T_money = t.T_money
|
|
|
+ r.T_approval_money = t.T_approval_money
|
|
|
+ r.T_approval_opinion = t.T_approval_opinion
|
|
|
r.T_remit, r.T_send_money = PercentageToPercentageRemit_R(t.T_remit)
|
|
|
r.T_type = t.T_type
|
|
|
r.T_State = t.T_State
|
|
|
- r.T_item = PercentageToPercentageItem_R(t.T_item)
|
|
|
+ price := Get_VerifyItem_Price(t.T_item_price)
|
|
|
+ r.T_item = PercentageToPercentageItem_R(t.T_item, price, t.T_State)
|
|
|
|
|
|
return r
|
|
|
}
|
|
@@ -282,6 +303,8 @@ func (dao *PercentageDaoImpl) Read_Percentage_List(T_name, T_uuid string, T_stat
|
|
|
cond1 := cond.And("T_State__gt", 0)
|
|
|
if T_state > 0 {
|
|
|
cond1 = cond1.And("T_State", T_state)
|
|
|
+ } else {
|
|
|
+ cond1 = cond.AndNot("T_State", 6)
|
|
|
}
|
|
|
|
|
|
if len(T_name) > 0 {
|
|
@@ -369,3 +392,48 @@ func (dao *PercentageDaoImpl) Read_T_uuid_List() (lists []string) {
|
|
|
}
|
|
|
return lists
|
|
|
}
|
|
|
+
|
|
|
+func Generate_VerifyItem_Price(T_item string) string {
|
|
|
+ if len(T_item) == 0 {
|
|
|
+ return ""
|
|
|
+ }
|
|
|
+ price := make(map[int]float32)
|
|
|
+ detailList := strings.Split(strings.Trim(T_item, "|"), "|")
|
|
|
+ for _, detail := range detailList {
|
|
|
+ T_id := lib.To_int(strings.Split(detail, ",")[0])
|
|
|
+ verifyItem := Basic.Read_VerifyItem_Get(T_id)
|
|
|
+ price[T_id] = verifyItem.T_price
|
|
|
+ }
|
|
|
+
|
|
|
+ b, _ := json.Marshal(price)
|
|
|
+ return string(b)
|
|
|
+}
|
|
|
+
|
|
|
+func Get_VerifyItem_Price(T_item_price string) map[int]float32 {
|
|
|
+ price := make(map[int]float32)
|
|
|
+ if len(T_item_price) == 0 {
|
|
|
+ return price
|
|
|
+ }
|
|
|
+ _ = json.Unmarshal([]byte(T_item_price), &price)
|
|
|
+ return price
|
|
|
+}
|
|
|
+
|
|
|
+// 统计待审核、审核不通过、未提交审核包含该验证项目id的总数
|
|
|
+func Get_Percentage_Count_ByVerifyItemId(verifyItemId int) (cnt int64, err error) {
|
|
|
+ o := orm.NewOrm()
|
|
|
+ qs := o.QueryTable(new(Percentage))
|
|
|
+
|
|
|
+ // 过滤
|
|
|
+ cond := orm.NewCondition()
|
|
|
+ // 1-待审核 2-审核通过 3-审核不通过 4-部分打款 5-全部打款 6-未提交审核 审核状态
|
|
|
+ T_State := []int{1, 3, 6}
|
|
|
+ cond1 := cond.And("T_State__in", T_State).And("T_item_price__contains", fmt.Sprintf(`"%d":`, verifyItemId))
|
|
|
+
|
|
|
+ cnt, err = qs.SetCond((*orm2.Condition)(cond1)).Count()
|
|
|
+ if err != nil {
|
|
|
+ logs.Error(lib.FuncName(), err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|