caipin 4 years ago
parent
commit
39e2d110e6
2 changed files with 27 additions and 4 deletions
  1. 13 0
      services/contract_paid_service.go
  2. 14 4
      services/contract_return_service.go

+ 13 - 0
services/contract_paid_service.go

@@ -110,6 +110,19 @@ func (s *contractService) PaidUpdate(returnData *viewmodels.ContractsPaid, proje
 	if contract.Status == 2 {
 		return errors.New("合同已关闭")
 	}
+	// 1-3已支付的中金额不能超过 合同金额
+	price, err := strconv.ParseFloat(returnData.Price, 64)
+	if err != nil {
+		return errors.New("金额填写有误")
+	}
+	contractPrice, _ := strconv.ParseFloat(contract.Price, 64)
+	paidPrice, _ := strconv.ParseFloat(contract.Paid, 64)
+	// 合同金额-(已支付总金额-当前已支付金额)
+	resultPrice := contractPrice - (paidPrice - price)
+
+	if price > resultPrice {
+		return errors.New("支付金额不能超过合同金额")
+	}
 
 	// 2.已支付信息
 	contractsReturnCm := &models.CmContractsPaid{}

+ 14 - 4
services/contract_return_service.go

@@ -198,6 +198,20 @@ func (s *contractService) ReturnUpdate(returnData *viewmodels.ContractsReturn, p
 		return errors.New("合同已关闭")
 	}
 
+	// 1-3已支付的中金额不能超过 合同金额
+	price, err := strconv.ParseFloat(returnData.Price, 64)
+	if err != nil {
+		return errors.New("金额填写有误")
+	}
+	contractPrice, _ := strconv.ParseFloat(contract.Price, 64)
+	returnedPrice, _ := strconv.ParseFloat(contract.Returned, 64)
+	// 合同金额-(回款总金额-当前回款金额)
+	resultPrice := contractPrice - (returnedPrice - price)
+
+	if price > resultPrice {
+		return errors.New("回款金额不能超过合同金额")
+	}
+
 	// 2.回款信息
 	contractsReturnCm := &models.CmContractsReturn{}
 	contractsReturnCm.Id = id
@@ -211,10 +225,6 @@ func (s *contractService) ReturnUpdate(returnData *viewmodels.ContractsReturn, p
 	}
 	contractsReturnCm.Time = time
 
-	_, err = strconv.ParseFloat(returnData.Price, 64)
-	if err != nil {
-		return errors.New("金额填写有误")
-	}
 	contractsReturnCm.Price = returnData.Price
 
 	columns := []string{"Way", "Remarks", "Time", "Price"}