ziwen 1 年之前
父节点
当前提交
bae33849ee
共有 2 个文件被更改,包括 49 次插入35 次删除
  1. 12 6
      controller/contract/pre_register.go
  2. 37 29
      models/fms/contract_invoice.go

+ 12 - 6
controller/contract/pre_register.go

@@ -839,11 +839,11 @@ func (rg *PreRegisterController) Detail(c *gin.Context) {
 	pars := make([]interface{}, 0)
 
 	if req.InvoiceId == 0 && req.ArriveId == 0 {
-		cond = `contract_register_id = ? AND invoice_type = ? `
-		pars = append(pars, req.ContractRegisterId, req.InvoiceType)
+		cond = `a.contract_register_id = ? `
+		pars = append(pars, req.ContractRegisterId)
 	} else {
-		cond = `contract_register_id = ? AND invoice_type = ?  AND contract_invoice_id =? `
-		pars = append(pars, req.ContractRegisterId, req.InvoiceType)
+		cond = `a.contract_register_id = ?  AND a.contract_invoice_id =? `
+		pars = append(pars, req.ContractRegisterId)
 	}
 
 	if req.InvoiceType == 4 {
@@ -858,7 +858,7 @@ func (rg *PreRegisterController) Detail(c *gin.Context) {
 	}
 
 	if req.DetailType == 1 {
-		dupList, e := fms.GetDuplicateContractInvoiceDetailItemListWithType(nItme.CompanyName, nItme.StartDate, nItme.EndDate, req.InvoiceType)
+		dupList, e := fms.GetDuplicateContractInvoiceDetailItemListWithType(nItme.CompanyName, nItme.StartDate, nItme.EndDate)
 		if e != nil {
 			err = fmt.Errorf("获取开票到款列表失败, Err: %s", e.Error())
 			return
@@ -869,6 +869,12 @@ func (rg *PreRegisterController) Detail(c *gin.Context) {
 			}
 		}
 	}
+	respList := make([]*fms.ContractInvoiceDetailItem, 0)
+	for _, v := range list {
+		if v.InvoiceType == req.InvoiceType {
+			respList = append(respList, v)
+		}
+	}
 
 	//获取ficc小套餐品种
 	sysConf := new(system.SysConfig)
@@ -946,7 +952,7 @@ func (rg *PreRegisterController) Detail(c *gin.Context) {
 	}
 	respItem := fms.ContractPreRegisterDetail{
 		ContractRegisterItem: &nItme,
-		List:                 list,
+		List:                 respList,
 		Services:             services,
 		ServiceTemplateIds:   serviceTemplateIds,
 	}

+ 37 - 29
models/fms/contract_invoice.go

@@ -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:"单位名称"`
 }
-
-