Kaynağa Gözat

fix:合同审批通过后,找到对应的业务合同,累计加上已支付金额;修改重审、作废合同时再去减去对应金额

Roc 3 yıl önce
ebeveyn
işleme
89629118ba

+ 10 - 0
models/tables/contract/contract.go

@@ -425,3 +425,13 @@ func GetCompanyNameList(sellerId int, keyword, status string) (list []*CompanyNa
 	_, err = o.Raw(sql, pars).QueryRows(&list)
 	return
 }
+
+// UpdateBusinessContractPaidPrice 更新合同已支付金额
+func UpdateBusinessContractPaidPrice(contractId int, updatePriceStr string) (err error) {
+	o := orm.NewOrm()
+
+	//删除合同的原始服务信息
+	sql := `update contract set paid_price=paid_price` + updatePriceStr + ` where contract_id = ?`
+	_, err = o.Raw(sql, contractId).Exec()
+	return
+}

+ 5 - 0
services/contract/contract.go

@@ -57,6 +57,11 @@ func InvalidContract(contractId int, opUser *custom.AdminWx) (err error) {
 	//添加操作日志
 	remark := "作废合同模板"
 	_ = contract_operation_record.AddContractOperationRecord(nowContract.ContractId, opUser.AdminId, 0, "invalid", opUser.RealName, remark)
+
+	//修改业务合同的已支付金额
+	if nowContract.ContractBusinessType == "代付合同" {
+		go updateContractPaidPriceByPaymentOnBehalfContractId(nowContract.ContractId, -nowContract.Price)
+	}
 	return
 }
 

+ 28 - 0
services/contract/contract_approval.go

@@ -15,9 +15,11 @@ import (
 	"hongze/hongze_mobile_admin/models/tables/contract_approval"
 	"hongze/hongze_mobile_admin/models/tables/contract_approval_record"
 	"hongze/hongze_mobile_admin/models/tables/contract_operation_record"
+	"hongze/hongze_mobile_admin/models/tables/contract_relation"
 	"hongze/hongze_mobile_admin/services"
 	"hongze/hongze_mobile_admin/services/flow"
 	"hongze/hongze_mobile_admin/utils"
+	"math"
 	"os"
 	"strings"
 	"time"
@@ -797,6 +799,11 @@ func AfterApproved(contractId int) (err error) {
 		}
 
 	}
+
+	//修改业务合同的已支付金额
+	if contractDetail.ContractBusinessType == "代付合同" {
+		go updateContractPaidPriceByPaymentOnBehalfContractId(contractDetail.ContractId, contractDetail.Price)
+	}
 	return
 }
 
@@ -874,3 +881,24 @@ func FixPdf(contractId int) (err error) {
 	}
 	return
 }
+
+// updateContractPaidPriceByPaymentOnBehalfContractId 根据代付合同id来修改业务合同的支付金额
+func updateContractPaidPriceByPaymentOnBehalfContractId(contractId int, price float64) (err error) {
+	tmpList, tmpErr := contract_relation.GetContractRelationListByPaymentOnBehalfContractId(contractId)
+	if tmpErr != nil {
+		return
+	}
+	if len(tmpList) < 0 {
+		err = errors.New("未关联业务合同")
+		return
+	}
+
+	updatePriceStr := ``
+	if price > 0 {
+		updatePriceStr = `+` + fmt.Sprint(price)
+	} else {
+		updatePriceStr = `-` + fmt.Sprint(math.Abs(price))
+	}
+	err = contract.UpdateBusinessContractPaidPrice(tmpList[0].ContractId, updatePriceStr)
+	return
+}