contract_pre_register.go 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. package fms
  2. import (
  3. "hongze/fms_api/global"
  4. "hongze/fms_api/models/base"
  5. "hongze/fms_api/utils"
  6. "time"
  7. )
  8. // PreRegister 合同开票表
  9. type ContractPreRegister struct {
  10. PreRegisterId int `gorm:"primaryKey;column:pre_register_id" json:"pre_register_id" description:"预登记ID"`
  11. ContractRegisterId int `gorm:"column:contract_register_id" json:"contract_register_id" description:"登记ID"`
  12. Amount float64 `gorm:"column:amount" json:"amount" description:"开票换算后的金额(人民币)"`
  13. OriginAmount float64 `gorm:"column:origin_amount" json:"origin_amount" description:"开票金额"`
  14. CurrencyUnit string `gorm:"column:currency_unit" json:"currency_unit" description:"开票货币国际代码"`
  15. ArriveAmount float64 `gorm:"column:arrive_amount" json:"arrive_amount" description:"到款换算后的金额(人民币)"`
  16. ArriveOriginAmount float64 `gorm:"column:arrive_origin_amount" json:"arrive_origin_amount" description:"到款金额"`
  17. ArriveCurrencyUnit string `gorm:"column:arrive_currency_unit" json:"arrive_currency_unit" description:"到款货币国际代码"`
  18. InvoiceType int `gorm:"column:invoice_type" json:"invoice_type" description:"类型: 1-开票登记; 2-到款登记;3-开票预登记;4-到款预登记"`
  19. InvoiceDate time.Time `gorm:"column:invoice_time" json:"invoice_time" description:"开票日"`
  20. ArriveDate time.Time `gorm:"column:arrive_time" json:"arrive_time" description:"到款日"`
  21. SellerId int `gorm:"column:seller_id" json:"seller_id" description:"销售ID"`
  22. SellerName string `gorm:"column:seller_name" json:"seller_name" description:"销售名称"`
  23. SellerGroupId int `gorm:"column:seller_group_id" json:"seller_group_id" description:"销售分组ID"`
  24. SellerGroupName string `gorm:"column:seller_group_name" json:"seller_group_name" description:"销售分组名称"`
  25. SellerTeamId int `gorm:"column:seller_team_id" json:"seller_team_id" description:"销售小组ID"`
  26. SellerTeamName string `gorm:"column:seller_team_name" json:"seller_team_name" description:"销售小组名称"`
  27. AdminId int `gorm:"column:admin_id" json:"admin_id" description:"操作人ID"`
  28. AdminName string `gorm:"column:admin_name" json:"admin_name" description:"操作人姓名"`
  29. Remark string `gorm:"column:remark" json:"remark" description:"备注信息"`
  30. ServiceProductId int `gorm:"column:service_product_id" json:"service_product_id" description:"套餐类型:1ficc套餐,2权益套餐"`
  31. IsPrePay int `gorm:"column:is_pre_pay" json:"is_pre_pay" description:"是否预付款: 0-不是; 1-是"`
  32. StartDate time.Time `gorm:"column:start_date" json:"start_date" description:"约定开始时间"`
  33. EndDate time.Time `gorm:"column:end_date" json:"end_date" description:"约定结束时间"`
  34. base.TimeBase
  35. }
  36. func (c *ContractPreRegister) TableName() string {
  37. return "contract_pre_register"
  38. }
  39. // ContractPreRegisterItem 合同开票/到款
  40. type ContractPreRegisterItem struct {
  41. PreRegisterId int `gorm:"primaryKey;column:pre_register_id" json:"pre_register_id" description:"预登记ID"`
  42. ContractRegisterId int `gorm:"column:contract_register_id" json:"contract_register_id" description:"登记ID"`
  43. ContractStatus int `json:"contract_status" description:"合同状态: 1-已审批; 2-单章寄出; 3-已签回"`
  44. Amount float64 `gorm:"column:amount" json:"amount" description:"开票换算后的金额(人民币)"`
  45. OriginAmount float64 `gorm:"column:origin_amount" json:"origin_amount" description:"开票金额"`
  46. CurrencyUnit string `gorm:"column:currency_unit" json:"currency_unit" description:"开票货币国际代码"`
  47. ArriveAmount float64 `gorm:"column:arrive_amount" json:"arrive_amount" description:"到款换算后的金额(人民币)"`
  48. ArriveOriginAmount float64 `gorm:"column:arrive_origin_amount" json:"arrive_origin_amount" description:"到款金额"`
  49. ArriveCurrencyUnit string `gorm:"column:arrive_currency_unit" json:"arrive_currency_unit" description:"到款货币国际代码"`
  50. UnitName string `json:"unit_name" description:"货币单位名称"`
  51. InvoiceType int `gorm:"column:invoice_type" json:"invoice_type" description:"类型: 1-开票登记; 2-到款登记;3-开票预登记;4-到款预登记"`
  52. InvoiceDate string `gorm:"column:invoice_time" json:"invoice_time" description:"开票日期/到款月"`
  53. SellerId int `gorm:"column:seller_id" json:"seller_id" description:"销售ID"`
  54. SellerName string `gorm:"column:seller_name" json:"seller_name" description:"销售名称"`
  55. PayType int `gorm:"column:pay_type" json:"pay_type" description:"付款方式:0-无;1-年付;2-半年付;3-季付;4-次付;5-异常"`
  56. Remark string `gorm:"column:remark" json:"remark" description:"开票备注信息"`
  57. ArriveRemark string `gorm:"column:arrive_remark" json:"arrive_remark" description:"到款备注信息"`
  58. ServiceProductId int `gorm:"column:service_product_id" json:"service_product_id" description:"套餐类型:1ficc套餐,2权益套餐"`
  59. IsPrePay int `gorm:"column:is_pre_pay" json:"is_pre_pay" description:"是否预付款: 0-不是; 1-是"`
  60. StartDate string `gorm:"column:start_date" json:"start_date" description:"约定开始时间"`
  61. EndDate string `gorm:"column:end_date" json:"end_date" description:"约定结束时间"`
  62. CreateTime string `gorm:"column:create_time" json:"create_time" description:"创建时间"`
  63. }
  64. // formatContractInvoice2Item 格式化ContractInvoiceItem
  65. func formatContractPreRegister2Item(item *ContractPreRegister) (formatItem *ContractPreRegisterItem) {
  66. formatItem = new(ContractPreRegisterItem)
  67. formatItem.PreRegisterId = item.PreRegisterId
  68. formatItem.ContractRegisterId = item.ContractRegisterId
  69. formatItem.Amount = item.Amount
  70. formatItem.OriginAmount = item.OriginAmount
  71. formatItem.CurrencyUnit = item.CurrencyUnit
  72. formatItem.ArriveAmount = item.ArriveAmount
  73. formatItem.ArriveOriginAmount = item.ArriveOriginAmount
  74. formatItem.ArriveCurrencyUnit = item.ArriveCurrencyUnit
  75. formatItem.InvoiceType = item.InvoiceType
  76. formatItem.InvoiceDate = utils.TimeTransferString(utils.FormatDate, item.InvoiceDate)
  77. formatItem.SellerId = item.SellerId
  78. formatItem.SellerName = item.SellerName
  79. formatItem.Remark = item.Remark
  80. formatItem.IsPrePay = item.IsPrePay
  81. formatItem.ServiceProductId = item.ServiceProductId
  82. formatItem.CreateTime = utils.TimeTransferString(utils.FormatDateTime, item.CreateTime)
  83. return
  84. }
  85. // GetContractInvoiceItemPageList 获取合同开票/到款列表-分页
  86. func GetContractPreRegisterItemPageList(page base.IPage, condition string, pars []interface{}) (count int64, results []*ContractPreRegisterItem, err error) {
  87. list := make([]*ContractPreRegister, 0)
  88. query := global.DEFAULT_MYSQL.Table("contract_pre_register").
  89. Where(condition, pars...)
  90. query.Count(&count)
  91. if len(page.GetOrderItemsString()) > 0 {
  92. query = query.Order(page.GetOrderItemsString())
  93. }
  94. err = query.Limit(int(page.GetPageSize())).Offset(int(page.Offset())).Find(&list).Error
  95. if err != nil {
  96. return
  97. }
  98. for i := range list {
  99. results = append(results, formatContractPreRegister2Item(list[i]))
  100. }
  101. return
  102. }
  103. func (c *ContractPreRegister) Create() (err error) {
  104. err = global.DEFAULT_MYSQL.Create(c).Error
  105. return
  106. }
  107. // GetContractInvoiceItemList 获取开票到款列表
  108. func GetContractPreRegisterItemList(condition string, pars []interface{}) (itemList []*ContractPreRegisterItem, err error) {
  109. list := make([]*ContractPreRegister, 0)
  110. err = global.DEFAULT_MYSQL.Model(ContractPreRegister{}).
  111. Where("is_deleted = 0").
  112. Where(condition, pars...).
  113. Order("contract_invoice_id ASC").
  114. Find(&list).Error
  115. if err != nil {
  116. return
  117. }
  118. itemList = formatContractPreRegister2ItemList(list)
  119. return
  120. }
  121. // formatContractPreRegister2ItemList 格式化ContractInvoice
  122. func formatContractPreRegister2ItemList(list []*ContractPreRegister) (itemList []*ContractPreRegisterItem) {
  123. itemList = make([]*ContractPreRegisterItem, 0)
  124. for i := range list {
  125. itemList = append(itemList, &ContractPreRegisterItem{
  126. PreRegisterId: list[i].PreRegisterId,
  127. ContractRegisterId: list[i].ContractRegisterId,
  128. Amount: list[i].Amount,
  129. OriginAmount: list[i].OriginAmount,
  130. CurrencyUnit: list[i].CurrencyUnit,
  131. ArriveAmount: list[i].ArriveAmount,
  132. ArriveOriginAmount: list[i].ArriveOriginAmount,
  133. ArriveCurrencyUnit: list[i].ArriveCurrencyUnit,
  134. InvoiceType: list[i].InvoiceType,
  135. InvoiceDate: utils.TimeTransferString(utils.FormatDate, list[i].InvoiceDate),
  136. SellerId: list[i].SellerId,
  137. SellerName: list[i].SellerName,
  138. Remark: list[i].Remark,
  139. ServiceProductId: list[i].ServiceProductId,
  140. IsPrePay: list[i].IsPrePay,
  141. StartDate: list[i].StartDate.Format(utils.FormatDate),
  142. EndDate: list[i].StartDate.Format(utils.FormatDate),
  143. CreateTime: utils.TimeTransferString(utils.FormatDateTime, list[i].CreateTime),
  144. })
  145. }
  146. return
  147. }