ziwen 1 年之前
父節點
當前提交
4c9e36ecd8
共有 2 個文件被更改,包括 31 次插入0 次删除
  1. 23 0
      controller/contract/register.go
  2. 8 0
      models/fms/invoice_payment_summary.go

+ 23 - 0
controller/contract/register.go

@@ -709,11 +709,23 @@ func (rg *RegisterController) Add(c *gin.Context) {
 		}
 		templateIdStr := strings.Join(ids, ",")
 		nDupList := make([]*fms.DupInvoice, 0)
+
+		// 重复的套餐信息的合同id,需要在summary表中将旧id变为新的id,否则统计中会查不到信息
+		dupRegisterIds := make([]int, 0)
+
 		for _, dup := range dupList {
 			if templateIdStr == dup.TemplateIds {
 				nDupList = append(nDupList, dup)
+				dupRegisterIds = append(dupRegisterIds, dup.ContractRegisterId)
 			}
 		}
+		// 修改summary表,把旧合同id变成新的
+		err = fms.UpdateInvoicePaymentSummaryByRegisterId(ob.ContractRegisterId, dupRegisterIds)
+		if err != nil {
+			err = fmt.Errorf("获取开票到款列表失败, Err: %s", err.Error())
+			return
+		}
+
 		//先遍历一遍拿到开票销售信息
 		for _, ppItem := range nDupList {
 			j := 0
@@ -3595,11 +3607,22 @@ func (rg *RegisterController) Import(c *gin.Context) {
 				}
 				templateIdStr := strings.Join(ids, ",")
 				nDupList := make([]*fms.DupInvoice, 0)
+
+				// 重复的套餐信息的合同id,需要在summary表中将旧id变为新的id,否则统计中会查不到信息
+				dupRegisterIds := make([]int, 0)
+
 				for _, dup := range dupList {
 					if templateIdStr == dup.TemplateIds {
 						nDupList = append(nDupList, dup)
+						dupRegisterIds = append(dupRegisterIds, dup.ContractRegisterId)
 					}
 				}
+				// 修改summary表,把旧合同id变成新的
+				err = fms.UpdateInvoicePaymentSummaryByRegisterId(rowRegister.ContractRegisterId, dupRegisterIds)
+				if err != nil {
+					err = fmt.Errorf("获取开票到款列表失败, Err: %s", err.Error())
+					return
+				}
 				//先遍历一遍拿到开票销售信息
 				for _, ppItem := range dupList {
 					j := 0

+ 8 - 0
models/fms/invoice_payment_summary.go

@@ -366,3 +366,11 @@ func GetInvoiceCensusList(condition string, pars []interface{}) (results []*Invo
 	}
 	return
 }
+
+// UpdateInvoicePaymentSummaryByRegisterId
+func UpdateInvoicePaymentSummaryByRegisterId(newId int, registerIds []int) (err error) {
+	sql := `UPDATE FROM invoice_payment_summary SET register_id = ? WHERE register_id IN (?) `
+	err = global.DEFAULT_MYSQL.Exec(sql, newId, registerIds).Error
+	return
+}
+