xiziwen 3 月之前
父节点
当前提交
8c6c976f96
共有 2 个文件被更改,包括 43 次插入2 次删除
  1. 2 2
      controller/census/income_list.go
  2. 41 0
      models/fms/invoice_payment_summary.go

+ 2 - 2
controller/census/income_list.go

@@ -1306,7 +1306,7 @@ func getCensusIncomeList(ch chan base.BaseData, req fms.IncomeListReq) (baseData
 
 	//结束日期
 	if req.StartDate != "" && req.EndDate != "" {
-		endDate = reqEndDate.Format(utils.FormatDate)
+		endDate = reqEndDate.AddDate(0, 1, -1).Format(utils.FormatDate)
 	}
 
 	cond := `1 = 1`
@@ -1456,7 +1456,7 @@ func getCensusIncomeList(ch chan base.BaseData, req fms.IncomeListReq) (baseData
 						amountPars = append(amountPars, "%"+req.Keyword+"%")
 					}
 
-					results, total, e := fms.GetContractSummaryPaymentIncomeAmountPage(amountCond, amountPars, page)
+					results, total, e := fms.GetContractSummaryIncomeAmountPage(amountCond, amountPars, page)
 					if e != nil {
 						err = fmt.Errorf("获取汇总数据失败, Err: %s", e.Error())
 						return

+ 41 - 0
models/fms/invoice_payment_summary.go

@@ -450,6 +450,47 @@ func GetContractSummaryPaymentIncomeAmountPage(condition string, pars []interfac
 	return
 }
 
+// GetContractSummaryIncomeAmountPage 获取汇总金额合计信息-开票到款收入统计
+func GetContractSummaryIncomeAmountPage(condition string, pars []interface{}, page *base.Page) (results []*IncomeSummaryItem, count int64, err error) {
+	query := global.DEFAULT_MYSQL.Table("invoice_payment_summary AS a").
+		Select("IF(a.invoice_id=0,d.amount, b.amount) AS amount,"+
+			"IF(a.invoice_id=0,d.origin_amount, b.origin_amount) AS origin_amount,"+
+			"IF(a.invoice_id=0,d.invoice_time, b.invoice_time) AS invoice_date,"+
+			"IF(a.invoice_id=0,d.currency_unit, b.currency_unit) AS currency_unit,"+
+			" c.contract_type,c.company_name,"+
+			"IF(a.invoice_id=0,d.seller_name, b.seller_name) AS seller_name,"+
+			"IF(a.invoice_id=0,d.seller_id, b.seller_id) AS final_seller_id,"+
+			"IF(a.invoice_id=0,d.seller_group_id, b.seller_group_id) AS seller_group_id").
+		Joins("LEFT JOIN contract_invoice AS b ON a.invoice_id = b.contract_invoice_id AND b.is_deleted = 0 ").
+		Joins("LEFT JOIN contract_invoice AS d ON a.payment_id = d.contract_invoice_id AND d.is_deleted = 0").
+		Joins("JOIN contract_register AS c ON a.register_id = c.contract_register_id AND c.is_deleted = 0").
+		Where(condition, pars...).Group("id")
+	//nq := global.DEFAULT_MYSQL.Table("(?) AS e", query).
+	//	Select(" IFNULL( SUM( e.amount ), 0 ) ")
+	query.Count(&count)
+
+	query = global.DEFAULT_MYSQL.Table("invoice_payment_summary AS a").
+		Select("IF(a.invoice_id=0,d.amount, b.amount) AS amount,"+
+			"IF(a.invoice_id=0,d.origin_amount, b.origin_amount) AS origin_amount,"+
+			"IF(a.invoice_id=0,d.invoice_time, b.invoice_time) AS invoice_date,"+
+			"IF(a.invoice_id=0,d.currency_unit, b.currency_unit) AS currency_unit,"+
+			" c.contract_type,c.company_name,"+
+			"IF(a.invoice_id=0,d.seller_name, b.seller_name) AS seller_name,"+
+			"IF(a.invoice_id=0,d.seller_id, b.seller_id) AS final_seller_id,"+
+			"IF(a.invoice_id=0,d.seller_group_id, b.seller_group_id) AS seller_group_id,"+
+			"GROUP_CONCAT(s.title) AS services_name ").
+		Joins("LEFT JOIN contract_invoice AS b ON a.invoice_id = b.contract_invoice_id AND b.is_deleted = 0 ").
+		Joins("LEFT JOIN contract_invoice AS d ON a.payment_id = d.contract_invoice_id AND d.is_deleted = 0").
+		Joins("JOIN contract_register AS c ON a.register_id = c.contract_register_id AND c.is_deleted = 0").
+		Joins("LEFT JOIN contract_service AS s ON s.contract_register_id = c.contract_register_id").
+		Where(condition, pars...).Group("id")
+	if len(page.GetOrderItemsString()) > 0 {
+		query = query.Order(page.GetOrderItemsString())
+	}
+	err = query.Limit(int(page.GetPageSize())).Offset(int(page.Offset())).Find(&results).Error
+	return
+}
+
 // GetPaymentCensusSummaryDataIds 获取商品到款统计列表-汇总数据IDs
 func GetPaymentCensusSummaryDataIds(condition string, pars []interface{}) (summaryIds []int, err error) {
 	query := global.DEFAULT_MYSQL.Table("invoice_payment_summary AS a").