暫無描述
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

bill_transfer_receive.go 12KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. package tables
  2. import (
  3. "time"
  4. "git.x2erp.com/qdy/go-db/sqldef"
  5. )
  6. func init() {
  7. sqldef.AddRegistration(func(r *sqldef.Registry) {
  8. tb := sqldef.NewTable("bill_transfer_receive", "库存调拨收货单 - 记录商品从调出门店发货后到调入门店收货的信息,与bill_stock_transfer_ship表关联形成完整的调拨流程").
  9. ID("id", 50).NotNull().Comment("主键ID").End().
  10. String("tenant_id", 50).NotNull().Comment("租户ID").End().
  11. String("bill_id", 50).NotNull().Comment("单据编号").End().
  12. String("bill_type", 20).NotNull().Default("'TRANSFER_RECEIVING'").Comment("单据类型 (TRANSFER_RECEIVING调拨收货)").End().
  13. String("bill_status", 20).NotNull().Comment("单据状态 (DRAFT草稿/EXPECTED待收货/PARTIAL部分收货/COMPLETED已完成/CANCELLED已取消)").End().
  14. String("from_store_id", 50).NotNull().Comment("调出门店ID").End().
  15. String("to_store_id", 50).NotNull().Comment("调入门店ID").End().
  16. String("from_company_id", 50).Comment("发货方公司ID").End().
  17. String("to_company_id", 50).Comment("收货方公司ID").End().
  18. String("business_type_id", 50).Comment("业务类型ID").End().
  19. String("business_type_name", 100).Comment("业务类型名称").End().
  20. String("price_type_id", 50).Comment("价格类型ID").End().
  21. String("price_type_name", 100).Comment("价格类型名称").End().
  22. String("finance_type_id", 50).Comment("财务类型ID").End().
  23. String("finance_type_name", 100).Comment("财务类型名称").End().
  24. Int("sure_status").NotNull().Default("0").Comment("登账标识 (0:草稿, 1:已登账)").End().
  25. Date("sure_date").Comment("登账日期").End().
  26. DateTime("expected_receive_date").Comment("预计收货日期").End().
  27. DateTime("actual_receive_date").Comment("实际收货日期").End().
  28. String("product_id", 50).NotNull().Comment("商品ID").End().
  29. String("product_code", 50).NotNull().Comment("商品编码").End().
  30. String("product_name", 200).NotNull().Comment("商品名称").End().
  31. String("size_code", 10).Comment("尺码代码").End().
  32. String("color_code", 10).Comment("颜色代码").End().
  33. Decimal("settlement_qty", 12, 4).NotNull().Default("0").Comment("结算数量").End().
  34. Decimal("settlement_price", 12, 2).NotNull().Default("0").Comment("结算单价").End().
  35. Decimal("discount_rate", 5, 4).NotNull().Default("0").Comment("折扣率").End().
  36. Decimal("settlement_amount", 12, 2).NotNull().Default("0").Comment("结算金额").End().
  37. String("transfer_reason", 20).Comment("调拨原因 (STOCKOUT缺货/OVERSTOCK积压/SEASONAL季节调整/PROMOTION促销)").End().
  38. String("transfer_method", 20).Comment("调拨方式 (SELF自提/COURIER快递/SHIPPING运输)").End().
  39. String("transfer_person", 100).Comment("调拨责任人").End().
  40. String("receiver_name", 100).Comment("收货人姓名").End().
  41. String("inspector_name", 100).Comment("质检人姓名").End().
  42. String("quality_status", 20).Comment("质检状态 (PENDING待检/PASSED合格/FAILED不合格/PARTIAL部分合格)").End().
  43. String("related_ship_bill_id", 50).NotNull().Comment("关联发货单号").End().
  44. String("remark", 500).Comment("备注").End().
  45. String("creator", 32).NotNull().Comment("创建人").End().
  46. DateTime("created_at").NotNull().Default("CURRENT_TIMESTAMP").Comment("创建时间").End().
  47. DateTime("updated_at").NotNull().Default("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP").Comment("更新时间").End().
  48. Date("data_date").NotNull().Comment("数据日期 (数据仓库快照)").End()
  49. tb.AddUniqueIndex("idx_bill_id_product", "bill_id", "product_id", "size_code", "color_code")
  50. tb.AddIndex("idx_tenant_id", "tenant_id")
  51. tb.AddIndex("idx_bill_status", "bill_status")
  52. tb.AddIndex("idx_from_store_id", "from_store_id")
  53. tb.AddIndex("idx_to_store_id", "to_store_id")
  54. tb.AddIndex("idx_product_id", "product_id")
  55. tb.AddIndex("idx_transfer_reason", "transfer_reason")
  56. tb.AddIndex("idx_related_ship_bill", "related_ship_bill_id")
  57. tb.AddIndex("idx_from_company_id", "from_company_id")
  58. tb.AddIndex("idx_to_company_id", "to_company_id")
  59. tb.AddIndex("idx_sure_status", "sure_status")
  60. r.RegisterTable(tb.Build())
  61. })
  62. }
  63. type BillTransferReceive struct {
  64. ID string `gorm:"column:id;type:varchar(50);not null;primaryKey;comment:主键ID"`
  65. TenantID string `gorm:"column:tenant_id;type:varchar(50);not null;comment:租户ID"`
  66. BillID string `gorm:"column:bill_id;type:varchar(50);not null;comment:单据编号"`
  67. BillType string `gorm:"column:bill_type;type:varchar(20);not null;default:TRANSFER_RECEIVING;comment:单据类型 (TRANSFER_RECEIVING调拨收货)"`
  68. BillStatus string `gorm:"column:bill_status;type:varchar(20);not null;comment:单据状态 (DRAFT草稿/EXPECTED待收货/PARTIAL部分收货/COMPLETED已完成/CANCELLED已取消)"`
  69. FromStoreID string `gorm:"column:from_store_id;type:varchar(50);not null;comment:调出门店ID"`
  70. ToStoreID string `gorm:"column:to_store_id;type:varchar(50);not null;comment:调入门店ID"`
  71. FromCompanyID string `gorm:"column:from_company_id;type:varchar(50);comment:发货方公司ID"`
  72. ToCompanyID string `gorm:"column:to_company_id;type:varchar(50);comment:收货方公司ID"`
  73. BusinessTypeID string `gorm:"column:business_type_id;type:varchar(50);comment:业务类型ID"`
  74. BusinessTypeName string `gorm:"column:business_type_name;type:varchar(100);comment:业务类型名称"`
  75. PriceTypeID string `gorm:"column:price_type_id;type:varchar(50);comment:价格类型ID"`
  76. PriceTypeName string `gorm:"column:price_type_name;type:varchar(100);comment:价格类型名称"`
  77. FinanceTypeID string `gorm:"column:finance_type_id;type:varchar(50);comment:财务类型ID"`
  78. FinanceTypeName string `gorm:"column:finance_type_name;type:varchar(100);comment:财务类型名称"`
  79. SureStatus int32 `gorm:"column:sure_status;type:int;not null;default:0;comment:登账标识 (0:草稿, 1:已登账)"`
  80. SureDate *time.Time `gorm:"column:sure_date;comment:登账日期"`
  81. ExpectedReceiveDate *time.Time `gorm:"column:expected_receive_date;comment:预计收货日期"`
  82. ActualReceiveDate *time.Time `gorm:"column:actual_receive_date;comment:实际收货日期"`
  83. ProductID string `gorm:"column:product_id;type:varchar(50);not null;comment:商品ID"`
  84. ProductCode string `gorm:"column:product_code;type:varchar(50);not null;comment:商品编码"`
  85. ProductName string `gorm:"column:product_name;type:varchar(200);not null;comment:商品名称"`
  86. SizeCode string `gorm:"column:size_code;type:varchar(10);comment:尺码代码"`
  87. ColorCode string `gorm:"column:color_code;type:varchar(10);comment:颜色代码"`
  88. SettlementQty float64 `gorm:"column:settlement_qty;type:decimal(12,4);not null;default:0;comment:结算数量"`
  89. SettlementPrice float64 `gorm:"column:settlement_price;type:decimal(12,2);not null;default:0;comment:结算单价"`
  90. DiscountRate float64 `gorm:"column:discount_rate;type:decimal(5,4);not null;default:0;comment:折扣率"`
  91. SettlementAmount float64 `gorm:"column:settlement_amount;type:decimal(12,2);not null;default:0;comment:结算金额"`
  92. TransferReason string `gorm:"column:transfer_reason;type:varchar(20);comment:调拨原因 (STOCKOUT缺货/OVERSTOCK积压/SEASONAL季节调整/PROMOTION促销)"`
  93. TransferMethod string `gorm:"column:transfer_method;type:varchar(20);comment:调拨方式 (SELF自提/COURIER快递/SHIPPING运输)"`
  94. TransferPerson string `gorm:"column:transfer_person;type:varchar(100);comment:调拨责任人"`
  95. ReceiverName string `gorm:"column:receiver_name;type:varchar(100);comment:收货人姓名"`
  96. InspectorName string `gorm:"column:inspector_name;type:varchar(100);comment:质检人姓名"`
  97. QualityStatus string `gorm:"column:quality_status;type:varchar(20);comment:质检状态 (PENDING待检/PASSED合格/FAILED不合格/PARTIAL部分合格)"`
  98. RelatedShipBillID string `gorm:"column:related_ship_bill_id;type:varchar(50);not null;comment:关联发货单号"`
  99. Remark string `gorm:"column:remark;type:varchar(500);comment:备注"`
  100. Creator string `gorm:"column:creator;type:varchar(32);not null;comment:创建人"`
  101. CreatedAt time.Time `gorm:"column:created_at;not null;default:CURRENT_TIMESTAMP;comment:创建时间"`
  102. UpdatedAt time.Time `gorm:"column:updated_at;not null;default:CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;comment:更新时间"`
  103. DataDate time.Time `gorm:"column:data_date;type:date;not null;comment:数据日期 (数据仓库快照)"`
  104. }
  105. type BillTransferReceiveDB struct {
  106. ID string `db:"id" json:"id"`
  107. TenantID string `db:"tenant_id" json:"tenantID"`
  108. BillID string `db:"bill_id" json:"billID"`
  109. BillType string `db:"bill_type" json:"billType"`
  110. BillStatus string `db:"bill_status" json:"billStatus"`
  111. FromStoreID string `db:"from_store_id" json:"fromStoreID"`
  112. FromStoreCode string `db:"from_store_code" json:"fromStoreCode"`
  113. FromStoreName string `db:"from_store_name" json:"fromStoreName"`
  114. ToStoreID string `db:"to_store_id" json:"toStoreID"`
  115. ToStoreCode string `db:"to_store_code" json:"toStoreCode"`
  116. ToStoreName string `db:"to_store_name" json:"toStoreName"`
  117. FromCompanyID string `db:"from_company_id" json:"fromCompanyID"`
  118. ToCompanyID string `db:"to_company_id" json:"toCompanyID"`
  119. BusinessTypeID string `db:"business_type_id" json:"businessTypeID"`
  120. BusinessTypeName string `db:"business_type_name" json:"businessTypeName"`
  121. PriceTypeID string `db:"price_type_id" json:"priceTypeID"`
  122. PriceTypeName string `db:"price_type_name" json:"priceTypeName"`
  123. FinanceTypeID string `db:"finance_type_id" json:"financeTypeID"`
  124. FinanceTypeName string `db:"finance_type_name" json:"financeTypeName"`
  125. SureStatus int32 `db:"sure_status" json:"sureStatus"`
  126. SureDate *time.Time `db:"sure_date" json:"sureDate"`
  127. ExpectedReceiveDate *time.Time `db:"expected_receive_date" json:"expectedReceiveDate"`
  128. ActualReceiveDate *time.Time `db:"actual_receive_date" json:"actualReceiveDate"`
  129. ProductID string `db:"product_id" json:"productID"`
  130. ProductCode string `db:"product_code" json:"productCode"`
  131. ProductName string `db:"product_name" json:"productName"`
  132. SizeCode string `db:"size_code" json:"sizeCode"`
  133. ColorCode string `db:"color_code" json:"colorCode"`
  134. ExpectedQty int32 `db:"expected_qty" json:"expectedQty"`
  135. ReceivedQty int32 `db:"received_qty" json:"receivedQty"`
  136. DefectiveQty int32 `db:"defective_qty" json:"defectiveQty"`
  137. UnitCost float64 `db:"unit_cost" json:"unitCost"`
  138. TagPrice float64 `db:"tag_price" json:"tagPrice"`
  139. SettlementPrice float64 `db:"settlement_price" json:"settlementPrice"`
  140. DiscountRate float64 `db:"discount_rate" json:"discountRate"`
  141. TransferPrice float64 `db:"transfer_price" json:"transferPrice"`
  142. Amount float64 `db:"amount" json:"amount"`
  143. TransferReason string `db:"transfer_reason" json:"transferReason"`
  144. TransferMethod string `db:"transfer_method" json:"transferMethod"`
  145. TransferPerson string `db:"transfer_person" json:"transferPerson"`
  146. ReceiverName string `db:"receiver_name" json:"receiverName"`
  147. InspectorName string `db:"inspector_name" json:"inspectorName"`
  148. QualityStatus string `db:"quality_status" json:"qualityStatus"`
  149. RelatedShipBillID string `db:"related_ship_bill_id" json:"relatedShipBillID"`
  150. Remark string `db:"remark" json:"remark"`
  151. Creator string `db:"creator" json:"creator"`
  152. CreatedAt time.Time `db:"created_at" json:"createdAt"`
  153. UpdatedAt time.Time `db:"updated_at" json:"updatedAt"`
  154. DataDate time.Time `db:"data_date" json:"dataDate"`
  155. }
  156. func (BillTransferReceive) TableName() string {
  157. return "bill_transfer_receive"
  158. }