|
@@ -369,7 +369,7 @@ type InvoicePaymentCensusInfo struct {
|
|
|
PaymentAmount float64 `json:"payment_amount" description:"到款金额"`
|
|
|
PayType int `json:"pay_type" description:"付款方式:0-无;1-年付;2-半年付;3-季付;4-次付;5-异常"`
|
|
|
ServiceAmountList []*ContractPaymentServiceAmountItem `json:"service_amount_list" description:"到款套餐金额分配信息"`
|
|
|
- SellerType string `json:"seller_type" description:"销售类型:1ficc销售,2权益销售"`
|
|
|
+ SellerType string `json:"seller_type" description:"销售类型:1ficc销售,2权益销售"`
|
|
|
}
|
|
|
|
|
|
// ContractInvoiceAmountTotal 开票到款金额合计信息
|
|
@@ -550,16 +550,24 @@ type ContractInvoiceDetailItem struct {
|
|
|
EndDate string `gorm:"column:end_date" json:"end_date" description:"约定结束时间"`
|
|
|
CreateTime string `gorm:"column:create_time" json:"create_time" description:"创建时间"`
|
|
|
PreRegisterId int `gorm:"column:pre_register_id" json:"pre_register_id" description:"预登记ID"`
|
|
|
+ HasInvoiceSeller int `json:"has_invoice_seller" description:"对应的开票记录有没有销售 0没有 1有"`
|
|
|
+}
|
|
|
+
|
|
|
+type InvoiceDetailItem struct {
|
|
|
+ ContractInvoice
|
|
|
+ HasInvoiceSeller int `json:"has_invoice_seller" description:"对应的开票记录有没有销售 0没有 1有"`
|
|
|
}
|
|
|
|
|
|
// GetContractInvoiceDetailItemList 预登记列表详情用-获取开票到款列表
|
|
|
func GetContractInvoiceDetailItemList(condition string, pars []interface{}) (itemList []*ContractInvoiceDetailItem, err error) {
|
|
|
- list := make([]*ContractInvoice, 0)
|
|
|
- err = global.DEFAULT_MYSQL.Model(ContractInvoice{}).
|
|
|
+ list := make([]*InvoiceDetailItem, 0)
|
|
|
+ err = global.DEFAULT_MYSQL.Table("contract_invoice AS a").
|
|
|
+ Select("a.*,IF(p.seller_id > 0, 1, 0) AS has_invoice_seller ").
|
|
|
+ Joins("JOIN contract_pre_register AS p ON p.invoice_id = a.contract_invoice_id OR p.arrive_id = a.contract_invoice_id ").
|
|
|
Where("is_deleted = 0").
|
|
|
Where(condition, pars...).
|
|
|
Order("contract_invoice_id ASC").
|
|
|
- Find(&list).Error
|
|
|
+ Scan(&list).Error
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
@@ -568,7 +576,7 @@ func GetContractInvoiceDetailItemList(condition string, pars []interface{}) (ite
|
|
|
}
|
|
|
|
|
|
// formatContractInvoice2ItemList 预登记列表详情用-格式化ContractInvoice
|
|
|
-func formatContractInvoice2DetailItemList(list []*ContractInvoice) (itemList []*ContractInvoiceDetailItem) {
|
|
|
+func formatContractInvoice2DetailItemList(list []*InvoiceDetailItem) (itemList []*ContractInvoiceDetailItem) {
|
|
|
itemList = make([]*ContractInvoiceDetailItem, 0)
|
|
|
for i := range list {
|
|
|
itemList = append(itemList, &ContractInvoiceDetailItem{
|
|
@@ -589,6 +597,7 @@ func formatContractInvoice2DetailItemList(list []*ContractInvoice) (itemList []*
|
|
|
EndDate: list[i].StartDate.Format(utils.FormatDate),
|
|
|
CreateTime: utils.TimeTransferString(utils.FormatDateTime, list[i].CreateTime),
|
|
|
PreRegisterId: list[i].PreRegisterId,
|
|
|
+ HasInvoiceSeller: list[i].HasInvoiceSeller,
|
|
|
})
|
|
|
}
|
|
|
return
|
|
@@ -605,12 +614,13 @@ func (c *ContractInvoice) FetchByRegisterId(registerId int) (items []*ContractIn
|
|
|
}
|
|
|
|
|
|
// GetDuplicateContractInvoiceDetailItemListWithType 预登记列表详情用-获取开票到款列表
|
|
|
-func GetDuplicateContractInvoiceDetailItemListWithType(companyName, startDate, endDate string, invoiceType int) (itemList []*ContractInvoiceDetailItem, err error) {
|
|
|
- list := make([]*ContractInvoice, 0)
|
|
|
+func GetDuplicateContractInvoiceDetailItemListWithType(companyName, startDate, endDate string) (itemList []*ContractInvoiceDetailItem, err error) {
|
|
|
+ list := make([]*InvoiceDetailItem, 0)
|
|
|
err = global.DEFAULT_MYSQL.Table("contract_invoice as a ").
|
|
|
- Select(" a.* ").
|
|
|
+ Select(" a.*,IF(p.seller_id > 0, 1, 0) AS has_invoice_seller ").
|
|
|
Joins(" JOIN contract_register as b ON a.contract_register_id = b.contract_register_id ").
|
|
|
- Where(fmt.Sprintf("a.is_deleted = 0 AND b.company_name = '%s' AND b.start_date= '%s' AND b.end_date= '%s' AND b.is_deleted=0 AND (a.invoice_type=3 OR a.invoice_type=4) AND a.invoice_type = %v ", companyName, startDate, endDate, invoiceType)).
|
|
|
+ Joins("JOIN contract_pre_register AS p ON p.invoice_id = a.contract_invoice_id OR p.arrive_id = a.contract_invoice_id ").
|
|
|
+ Where(fmt.Sprintf("a.is_deleted = 0 AND b.company_name = '%s' AND b.start_date= '%s' AND b.end_date= '%s' AND b.is_deleted=0 AND (a.invoice_type=3 OR a.invoice_type=4) ", companyName, startDate, endDate)).
|
|
|
Order("a.contract_invoice_id ASC").
|
|
|
Find(&list).Error
|
|
|
if err != nil {
|
|
@@ -672,22 +682,22 @@ WHERE
|
|
|
|
|
|
// NotPaymentCensusItem 商品到款统计信息
|
|
|
type NotPaymentCensusItem struct {
|
|
|
- SummaryId int `json:"summary_id" description:"汇总ID"`
|
|
|
- ContractRegisterId int `json:"contract_register_id" description:"登记ID"`
|
|
|
- CompanyName string `json:"company_name" description:"客户名称"`
|
|
|
- NewCompany int `json:"new_company" description:"是否为新客户: 0-否; 1-是"`
|
|
|
- StartDate string `json:"start_date" description:"合同开始日期"`
|
|
|
- EndDate string `json:"end_date" description:"合同结束日期"`
|
|
|
- ServicesName string `json:"services_name" description:"套餐信息字符串拼接"`
|
|
|
- ContractType int `json:"contract_type" description:"合同类型: 0-无 1-新签; 2-续约"`
|
|
|
- ActualPayCompanies string `json:"actual_pay_companies" description:"该合同关联的所有代付方, 英文逗号拼接"`
|
|
|
- InvoicePaymentList []*NotPaymentCensusInfo `json:"invoice_payment_list" description:"开票到款列表"`
|
|
|
- ContractCode string `gorm:"column:contract_code" json:"contract_code" description:"合同编号"`
|
|
|
- ContractAmount float64 `gorm:"column:contract_amount" json:"contract_amount" description:"合同金额"`
|
|
|
- UnitName string `gorm:"unit_name" json:"unit_name" description:"单位名称"`
|
|
|
- ProductIds string `gorm:"column:product_ids" json:"product_ids" description:"产品ID:1-FICC; 2-权益, 如果两者都有,则用英文逗号拼接"`
|
|
|
- NotInvoiceTotal float64 `json:"not_invoice_total" description:"未开票总金额(换算后)"`
|
|
|
- NotInvoiceList []*NotInvoicePaymentSummaryItem `json:"not_invoice_list" description:"未开票invoice列表"`
|
|
|
+ SummaryId int `json:"summary_id" description:"汇总ID"`
|
|
|
+ ContractRegisterId int `json:"contract_register_id" description:"登记ID"`
|
|
|
+ CompanyName string `json:"company_name" description:"客户名称"`
|
|
|
+ NewCompany int `json:"new_company" description:"是否为新客户: 0-否; 1-是"`
|
|
|
+ StartDate string `json:"start_date" description:"合同开始日期"`
|
|
|
+ EndDate string `json:"end_date" description:"合同结束日期"`
|
|
|
+ ServicesName string `json:"services_name" description:"套餐信息字符串拼接"`
|
|
|
+ ContractType int `json:"contract_type" description:"合同类型: 0-无 1-新签; 2-续约"`
|
|
|
+ ActualPayCompanies string `json:"actual_pay_companies" description:"该合同关联的所有代付方, 英文逗号拼接"`
|
|
|
+ InvoicePaymentList []*NotPaymentCensusInfo `json:"invoice_payment_list" description:"开票到款列表"`
|
|
|
+ ContractCode string `gorm:"column:contract_code" json:"contract_code" description:"合同编号"`
|
|
|
+ ContractAmount float64 `gorm:"column:contract_amount" json:"contract_amount" description:"合同金额"`
|
|
|
+ UnitName string `gorm:"unit_name" json:"unit_name" description:"单位名称"`
|
|
|
+ ProductIds string `gorm:"column:product_ids" json:"product_ids" description:"产品ID:1-FICC; 2-权益, 如果两者都有,则用英文逗号拼接"`
|
|
|
+ NotInvoiceTotal float64 `json:"not_invoice_total" description:"未开票总金额(换算后)"`
|
|
|
+ NotInvoiceList []*NotInvoicePaymentSummaryItem `json:"not_invoice_list" description:"未开票invoice列表"`
|
|
|
}
|
|
|
|
|
|
// NotPaymentCensusInfo 开票到款统计信息
|
|
@@ -706,8 +716,6 @@ type NotPaymentCensusInfo struct {
|
|
|
ServiceAmountList []*ContractPaymentServiceAmountItem `json:"service_amount_list" description:"到款套餐金额分配信息"`
|
|
|
SellerType int `json:"seller_type" description:"销售类型:1ficc销售,2权益销售"`
|
|
|
NotPaymentAmount float64 `json:"not_payment_amount" description:"开票未到款金额"`
|
|
|
- ServiceProductId int `json:"service_product_id" description:"套餐类型:1ficc套餐,2权益套餐"`
|
|
|
- UnitName string `json:"unit_name" description:"单位名称"`
|
|
|
+ ServiceProductId int `json:"service_product_id" description:"套餐类型:1ficc套餐,2权益套餐"`
|
|
|
+ UnitName string `json:"unit_name" description:"单位名称"`
|
|
|
}
|
|
|
-
|
|
|
-
|