|
@@ -450,6 +450,47 @@ func GetContractSummaryPaymentIncomeAmountPage(condition string, pars []interfac
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+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")
|
|
|
+
|
|
|
+
|
|
|
+ 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
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
func GetPaymentCensusSummaryDataIds(condition string, pars []interface{}) (summaryIds []int, err error) {
|
|
|
query := global.DEFAULT_MYSQL.Table("invoice_payment_summary AS a").
|