123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231 |
- package fms
- import (
- "hongze/fms_api/global"
- "hongze/fms_api/models/base"
- "hongze/fms_api/utils"
- "time"
- )
- // PreRegister 合同开票表
- type ContractPreRegister struct {
- PreRegisterId int `gorm:"primaryKey;column:pre_register_id" json:"pre_register_id" description:"预登记ID"`
- ContractRegisterId int `gorm:"column:contract_register_id" json:"contract_register_id" description:"登记ID"`
- InvoiceId int `gorm:"column:invoice_id" json:"invoice_id" description:"开票ID"`
- ArriveId int `gorm:"column:arrive_id" json:"arrive_id" description:"到款ID"`
- CompanyName string `json:"company_name" description:"客户名称"`
- Amount float64 `gorm:"column:amount" json:"amount" description:"开票换算后的金额(人民币)"`
- OriginAmount float64 `gorm:"column:origin_amount" json:"origin_amount" description:"开票金额"`
- CurrencyUnit string `gorm:"column:currency_unit" json:"currency_unit" description:"开票货币国际代码"`
- ArriveAmount float64 `gorm:"column:arrive_amount" json:"arrive_amount" description:"到款换算后的金额(人民币)"`
- ArriveOriginAmount float64 `gorm:"column:arrive_origin_amount" json:"arrive_origin_amount" description:"到款金额"`
- InvoiceType int `gorm:"column:invoice_type" json:"invoice_type" description:"类型: 1-开票登记; 2-到款登记;3-开票预登记;4-到款预登记"`
- InvoiceDate time.Time `gorm:"column:invoice_time" json:"invoice_time" description:"开票日"`
- ArriveDate time.Time `gorm:"column:arrive_time" json:"arrive_time" description:"到款日"`
- SellerId int `gorm:"column:seller_id" json:"seller_id" description:"销售ID"`
- SellerName string `gorm:"column:seller_name" json:"seller_name" description:"销售名称"`
- SellerGroupId int `gorm:"column:seller_group_id" json:"seller_group_id" description:"销售分组ID"`
- SellerGroupName string `gorm:"column:seller_group_name" json:"seller_group_name" description:"销售分组名称"`
- SellerTeamId int `gorm:"column:seller_team_id" json:"seller_team_id" description:"销售小组ID"`
- SellerTeamName string `gorm:"column:seller_team_name" json:"seller_team_name" description:"销售小组名称"`
- AdminId int `gorm:"column:admin_id" json:"admin_id" description:"操作人ID"`
- AdminName string `gorm:"column:admin_name" json:"admin_name" description:"操作人姓名"`
- Remark string `gorm:"column:remark" json:"remark" description:"备注信息"`
- ArriveRemark string `gorm:"column:arrive_remark" json:"arrive_remark" description:"到款备注信息"`
- ServiceProductId int `gorm:"column:service_product_id" json:"service_product_id" description:"套餐类型:1ficc套餐,2权益套餐"`
- IsPrePay int `gorm:"column:is_pre_pay" json:"is_pre_pay" description:"是否预付款: 0-不是; 1-是"`
- StartDate time.Time `gorm:"column:start_date" json:"start_date" description:"约定开始时间"`
- EndDate time.Time `gorm:"column:end_date" json:"end_date" description:"约定结束时间"`
- PaymentSellerId int `gorm:"column:payment_seller_id;default:0;NOT NULL" json:"payment_seller_id"` // 销售ID
- PaymentSellerName string `gorm:"column:payment_seller_name;NOT NULL" json:"payment_seller_name"` // 销售名称
- PaymentSellerGroupId int `gorm:"column:payment_seller_group_id;default:0;NOT NULL" json:"payment_seller_group_id"` // 销售分组ID
- PaymentSellerGroupName string `gorm:"column:payment_seller_group_name;NOT NULL" json:"payment_seller_group_name"` // 销售分组名称
- PaymentSellerTeamId int `gorm:"column:payment_seller_team_id;default:0;NOT NULL" json:"payment_seller_team_id"` // 销售小组ID
- PaymentSellerTeamName string `gorm:"column:payment_seller_team_name;NOT NULL" json:"payment_seller_team_name"` // 销售小组名称
- base.TimeBase
- }
- func (c *ContractPreRegister) TableName() string {
- return "contract_pre_register"
- }
- // ContractPreRegisterItem 合同开票/到款
- type ContractPreRegisterItem struct {
- PreRegisterId int `gorm:"primaryKey;column:pre_register_id" json:"pre_register_id" description:"预登记ID"`
- ContractRegisterId int `gorm:"column:contract_register_id" json:"contract_register_id" description:"登记ID"`
- InvoiceId int `gorm:"column:invoice_id" json:"invoice_id" description:"开票ID"`
- ArriveId int `gorm:"column:arrive_id" json:"arrive_id" description:"到款ID"`
- CompanyName string `json:"company_name" description:"客户名称"`
- Amount float64 `gorm:"column:amount" json:"amount" description:"开票换算后的金额(人民币)"`
- OriginAmount float64 `gorm:"column:origin_amount" json:"origin_amount" description:"开票金额"`
- CurrencyUnit string `gorm:"column:currency_unit" json:"currency_unit" description:"开票货币国际代码"`
- ArriveAmount float64 `gorm:"column:arrive_amount" json:"arrive_amount" description:"到款换算后的金额(人民币)"`
- ArriveOriginAmount float64 `gorm:"column:arrive_origin_amount" json:"arrive_origin_amount" description:"到款金额"`
- UnitName string `json:"unit_name" description:"货币单位名称"`
- InvoiceType int `gorm:"column:invoice_type" json:"invoice_type" description:"类型: 1-开票登记; 2-到款登记;3-开票预登记;4-到款预登记"`
- InvoiceDate string `gorm:"column:invoice_time" json:"invoice_time" description:"开票日"`
- ArriveDate string `gorm:"column:arrive_time" json:"arrive_time" description:"到款日"`
- SellerId int `gorm:"column:seller_id" json:"seller_id" description:"销售ID"`
- SellerName string `gorm:"column:seller_name" json:"seller_name" description:"销售名称"`
- PayType int `gorm:"column:pay_type" json:"pay_type" description:"付款方式:0-无;1-年付;2-半年付;3-季付;4-次付;5-异常"`
- Remark string `gorm:"column:remark" json:"remark" description:"开票备注信息"`
- ArriveRemark string `gorm:"column:arrive_remark" json:"arrive_remark" description:"到款备注信息"`
- ServiceProductId int `gorm:"column:service_product_id" json:"service_product_id" description:"套餐类型:1ficc套餐,2权益套餐"`
- IsPrePay int `gorm:"column:is_pre_pay" json:"is_pre_pay" description:"是否预付款: 0-不是; 1-是"`
- StartDate string `gorm:"column:start_date" json:"start_date" description:"约定开始时间"`
- EndDate string `gorm:"column:end_date" json:"end_date" description:"约定结束时间"`
- AdminId int `gorm:"column:admin_id" json:"admin_id" description:"操作人ID"`
- CreateTime string `gorm:"column:create_time" json:"create_time" description:"创建时间"`
- PaymentSellerId int `gorm:"column:payment_seller_id;default:0;NOT NULL" json:"payment_seller_id"` // 销售ID
- PaymentSellerName string `gorm:"column:payment_seller_name;NOT NULL" json:"payment_seller_name"` // 销售名称
- PaymentSellerGroupId int `gorm:"column:payment_seller_group_id;default:0;NOT NULL" json:"payment_seller_group_id"` // 销售分组ID
- PaymentSellerGroupName string `gorm:"column:payment_seller_group_name;NOT NULL" json:"payment_seller_group_name"` // 销售分组名称
- PaymentSellerTeamId int `gorm:"column:payment_seller_team_id;default:0;NOT NULL" json:"payment_seller_team_id"` // 销售小组ID
- PaymentSellerTeamName string `gorm:"column:payment_seller_team_name;NOT NULL" json:"payment_seller_team_name"` // 销售小组名称
- }
- // formatContractInvoice2Item 格式化ContractInvoiceItem
- func formatContractPreRegister2Item(item *ContractPreRegister) (formatItem *ContractPreRegisterItem) {
- formatItem = new(ContractPreRegisterItem)
- formatItem.PreRegisterId = item.PreRegisterId
- formatItem.ContractRegisterId = item.ContractRegisterId
- formatItem.InvoiceId = item.InvoiceId
- formatItem.ArriveId = item.ArriveId
- formatItem.CompanyName = item.CompanyName
- formatItem.Amount = item.Amount
- formatItem.OriginAmount = item.OriginAmount
- formatItem.CurrencyUnit = item.CurrencyUnit
- formatItem.ArriveAmount = item.ArriveAmount
- formatItem.ArriveOriginAmount = item.ArriveOriginAmount
- formatItem.InvoiceType = item.InvoiceType
- formatItem.InvoiceDate = utils.TimeTransferString(utils.FormatDate, item.InvoiceDate)
- formatItem.ArriveDate = utils.TimeTransferString(utils.FormatDate, item.ArriveDate)
- formatItem.SellerId = item.SellerId
- formatItem.SellerName = item.SellerName
- formatItem.Remark = item.Remark
- formatItem.ArriveRemark = item.ArriveRemark
- formatItem.IsPrePay = item.IsPrePay
- formatItem.ServiceProductId = item.ServiceProductId
- formatItem.AdminId = item.AdminId
- formatItem.CreateTime = utils.TimeTransferString(utils.FormatDateTime, item.CreateTime)
- formatItem.StartDate = item.StartDate.Format(utils.FormatDate)
- formatItem.EndDate = item.EndDate.Format(utils.FormatDate)
- formatItem.PaymentSellerId = item.PaymentSellerId
- formatItem.PaymentSellerName = item.PaymentSellerName
- formatItem.PaymentSellerGroupId = item.PaymentSellerGroupId
- formatItem.PaymentSellerGroupName = item.PaymentSellerGroupName
- formatItem.PaymentSellerTeamId = item.PaymentSellerTeamId
- formatItem.PaymentSellerTeamName = item.PaymentSellerTeamName
- return
- }
- // GetContractInvoiceItemPageList 获取合同开票/到款列表-分页
- func GetContractPreRegisterItemPageList(page base.IPage, condition string, pars []interface{}) (count int64, results []*ContractPreRegisterItem, err error) {
- list := make([]*ContractPreRegister, 0)
- query := global.DEFAULT_MYSQL.Table("contract_pre_register").
- Where(condition, pars...)
- query.Count(&count)
- if len(page.GetOrderItemsString()) > 0 {
- query = query.Order(page.GetOrderItemsString())
- }
- err = query.Limit(int(page.GetPageSize())).Offset(int(page.Offset())).Find(&list).Error
- if err != nil {
- return
- }
- for i := range list {
- results = append(results, formatContractPreRegister2Item(list[i]))
- }
- return
- }
- func (c *ContractPreRegister) Create() (err error) {
- err = global.DEFAULT_MYSQL.Create(c).Error
- return
- }
- func (c *ContractPreRegister) Fetch(id int) (item *ContractPreRegister, err error) {
- err = global.DEFAULT_MYSQL.Model(c).Where(" pre_register_id = ?", id).First(&item).Error
- return
- }
- func (c *ContractPreRegister) FetchByRegisterId(id int) (items []*ContractPreRegister, err error) {
- err = global.DEFAULT_MYSQL.Model(c).Where(" contract_register_id = ?", id).Find(&items).Error
- return
- }
- // 删除
- func (c *ContractPreRegister) Delete() (err error) {
- err = global.DEFAULT_MYSQL.Delete(c).Error
- return
- }
- func (c *ContractPreRegister) Update(updateCols []string) (err error) {
- err = global.DEFAULT_MYSQL.Model(c).Select(updateCols).Updates(c).Error
- return
- }
- // GetContractInvoiceItemList 获取开票到款列表
- func GetContractPreRegisterItemList(condition string, pars []interface{}) (itemList []*ContractPreRegisterItem, err error) {
- list := make([]*ContractPreRegister, 0)
- err = global.DEFAULT_MYSQL.Model(ContractPreRegister{}).
- Where("is_deleted = 0").
- Where(condition, pars...).
- Order("contract_invoice_id ASC").
- Find(&list).Error
- if err != nil {
- return
- }
- itemList = formatContractPreRegister2ItemList(list)
- return
- }
- // formatContractPreRegister2ItemList 格式化ContractInvoice
- func formatContractPreRegister2ItemList(list []*ContractPreRegister) (itemList []*ContractPreRegisterItem) {
- itemList = make([]*ContractPreRegisterItem, 0)
- for i := range list {
- itemList = append(itemList, &ContractPreRegisterItem{
- PreRegisterId: list[i].PreRegisterId,
- ContractRegisterId: list[i].ContractRegisterId,
- Amount: list[i].Amount,
- OriginAmount: list[i].OriginAmount,
- CurrencyUnit: list[i].CurrencyUnit,
- ArriveAmount: list[i].ArriveAmount,
- ArriveOriginAmount: list[i].ArriveOriginAmount,
- InvoiceType: list[i].InvoiceType,
- InvoiceDate: utils.TimeTransferString(utils.FormatDate, list[i].InvoiceDate),
- SellerId: list[i].SellerId,
- SellerName: list[i].SellerName,
- Remark: list[i].Remark,
- ServiceProductId: list[i].ServiceProductId,
- IsPrePay: list[i].IsPrePay,
- StartDate: list[i].StartDate.Format(utils.FormatDate),
- EndDate: list[i].StartDate.Format(utils.FormatDate),
- CreateTime: utils.TimeTransferString(utils.FormatDateTime, list[i].CreateTime),
- })
- }
- return
- }
- // ContractPreRegisterList 预登记列表
- type ContractPreRegisterList struct {
- *ContractPreRegisterItem
- ServicesName string `json:"services" description:"套餐名称"`
- }
- // PreRegisterDetailReq 预登记详情请求体
- type PreRegisterDetailReq struct {
- ContractRegisterId int `json:"contract_register_id" form:"contract_register_id" binding:"required,gte=1"`
- InvoiceType int `gorm:"column:invoice_type" json:"invoice_type" description:"类型: 1-开票登记; 2-到款登记;3-开票预登记;4-到款预登记"`
- PreRegisterId int `gorm:"column:pre_register_id" json:"pre_register_id" description:"预登记ID"`
- InvoiceId int `gorm:"column:invoice_id" json:"invoice_id" description:"开票ID"`
- ArriveId int `gorm:"column:arrive_id" json:"arrive_id" description:"到款ID"`
- DetailType int `json:"detail_type" description:"请求类型"`
- }
- // ContractPreRegisterDetail 预登记详情
- type ContractPreRegisterDetail struct {
- *ContractRegisterItem
- List []*ContractInvoiceDetailItem `json:"list" description:"开票到款列表"`
- Services []*ContractServiceAndDetail `json:"services" description:"套餐列表"`
- ServiceTemplateIds []int `json:"serviceTemplateIds" description:"小套餐列表"`
- }
|