zhangqian
2024-04-07 a8914a16b23e93f6bfd12bcfd5cbe8b24cf7eb84
constvar/const.go
@@ -1 +1,312 @@
package constvar
type BaseOperationType int
const (
   BaseOperationTypeIncoming BaseOperationType = iota + 1 //收货
   BaseOperationTypeOutgoing                              //交货
   BaseOperationTypeInternal                              //内部调拨
   BaseOperationTypeDisuse                                //报废
   BaseOperationTypeAdjust                                //库存盘点
)
func (slf BaseOperationType) IsValid() bool {
   return slf == BaseOperationTypeIncoming ||
      slf == BaseOperationTypeOutgoing ||
      slf == BaseOperationTypeInternal
}
type ReservationMethod int
const (
   ReservationMethodAtConfirm ReservationMethod = iota + 1 //在确认时
   ReservationMethodManual                                 //手动
   ReservationMethodByDate                                 //在预定日期之前
)
func (slf ReservationMethod) IsValid() bool {
   return slf == ReservationMethodAtConfirm ||
      slf == ReservationMethodManual ||
      slf == ReservationMethodByDate
}
type WhetherType int
const (
   WhetherTypeAsk    WhetherType = iota + 1 //询问
   WhetherTypeAlways                        //总是
   ReservationNever                         //从不
)
func (slf WhetherType) IsValid() bool {
   return slf == WhetherTypeAsk ||
      slf == WhetherTypeAlways ||
      slf == ReservationNever
}
// ProductType 产品类型
type ProductType int
const (
   Consumables   ProductType = iota + 1 // 消耗品
   Server                               // 服务
   StoredProduct                        // 可储存的产品
)
// MaterialMode 物料类型(字符串)
type MaterialMode string
const (
   MaterialModeRaw         MaterialMode = "原材料"
   MaterialModeSemi        MaterialMode = "半成品"
   MaterialModeFinished    MaterialMode = "成品"
   MaterialModeAuxiliary   MaterialMode = "辅料"  //辅料
   MaterialModeConsumables MaterialMode = "耗材"  //耗材
   MaterialModeOther       MaterialMode = "其他"  //其他
   MaterialModeVirtual     MaterialMode = "虚拟件" //虚拟件, 不能销售,不能出入库,不能采购
)
func (t MaterialMode) Valid() bool {
   if t != MaterialModeRaw &&
      t != MaterialModeSemi &&
      t != MaterialModeAuxiliary &&
      t != MaterialModeConsumables &&
      t != MaterialModeOther &&
      t != MaterialModeFinished &&
      t != MaterialModeVirtual {
      return false
   }
   return true
}
func (t MaterialMode) Type() MaterialType {
   switch t {
   case MaterialModeRaw:
      return MaterialTypeRaw
   case MaterialModeSemi:
      return MaterialTypeSemi
   case MaterialModeFinished:
      return MaterialTypeFinished
   case MaterialModeAuxiliary:
      return MaterialTypeAuxiliary
   case MaterialModeConsumables:
      return MaterialTypeConsumables
   case MaterialModeOther:
      return MaterialTypeOther
   case MaterialModeVirtual:
      return MaterialTypeVirtual
   }
   return MaterialType(0)
}
// MaterialType 物料类型(数字)
type MaterialType int
const (
   MaterialTypeRaw         = iota + 1 // 原材料
   MaterialTypeSemi                   // 半成品
   MaterialTypeFinished               // 成品
   MaterialTypeAuxiliary              //辅料
   MaterialTypeConsumables            //耗材
   MaterialTypeOther                  //其他
   MaterialTypeVirtual                //虚拟件
)
func (t MaterialType) Valid() bool {
   if t < MaterialTypeRaw ||
      t > MaterialTypeVirtual {
      return false
   }
   return true
}
type MaterialStatus int
const (
   MaterialStatusCreate   MaterialStatus = iota // 新建
   MaterialStatusActive                         // 启用
   MaterialStatusInactive = -1                  // 停用
)
// InvoicingStrategy 开票策略
type InvoicingStrategy int
const (
   IndentNumber       InvoicingStrategy = iota + 1 //订购数量
   DeliverNumber                                   //交付数量
   PrepaidPrice                                    //预付\固定价格
   Milestones                                      //基于里程碑
   BasedDeliverNumber                              //基于交付数量
)
// OrderCreation 订单创建
type OrderCreation int
const (
   Nothing       OrderCreation = iota + 1 //不操作
   Task                                   //任务
   Object                                 //项目
   TaskAndObject                          //任务和项目
)
type ProductStatus int
const (
   ProductStatusCreate   ProductStatus = iota // 新建
   ProductStatusActive                        // 启用
   ProductStatusInactive = -1                 // 停用
)
// PurchaseType 采购类型
type PurchaseType int
const (
   PurchaseTypeOutSource PurchaseType = iota + 1 // 采购
   PurchaseTypeSelf                              // 自制
   PurchaseTypeEntrust                           // 委外
)
func (t PurchaseType) Valid() bool {
   if t < PurchaseTypeOutSource ||
      t > PurchaseTypeEntrust {
      return false
   }
   return true
}
// LocationType 位置类型
type LocationType int
const (
   LocationTypeVendor        LocationType = iota + 1 // 供应商位置
   LocationTypeView                                  // 视图
   LocationTypeInternal                              // 内部位置
   LocationTypeCustomer                              // 客户位置
   LocationTypeInventoryLoss                         // 库存损失
   LocationTypeProduction                            // 生产
   LocationTypeTransit                               // 中转位置
   LocationTypeDisuse                                //报废位置
   LocationTypeAdjust                                //库存盘点
)
func (t LocationType) Valid() bool {
   return t >= LocationTypeVendor && t <= LocationTypeTransit
}
type ForceRemovalStrategy int
const (
   ForceRemovalStrategyFIFO ForceRemovalStrategy = iota + 1
   ForceRemovalStrategyLIFO
   ForceRemovalStrategyClosestLocation
)
func (t ForceRemovalStrategy) Valid() bool {
   return t >= ForceRemovalStrategyFIFO && t <= ForceRemovalStrategyClosestLocation
}
type CostingMethod int
const (
   CostingMethodStandardPrice CostingMethod = iota + 1 //标准价格
   CostingMethodFIFO                                   //先进先出
   CostingMethodAverageCost                            //平均成本
)
func (t CostingMethod) Valid() bool {
   return t >= CostingMethodStandardPrice && t <= CostingMethodAverageCost
}
type InventoryValuation int
const (
   InventoryValuationManual InventoryValuation = iota + 1 //手动
   InventoryValuationAuto                                 //自动
)
func (t InventoryValuation) Valid() bool {
   return t >= InventoryValuationManual && t <= InventoryValuationAuto
}
type OperationStatus int
const (
   OperationStatus_Draft   OperationStatus = iota + 1 //草稿
   OperationStatus_Waiting                            //正在等待
   OperationStatus_Ready                              //就绪
   OperationStatus_Finish                             //完成
   OperationStatus_Cancel                             //取消
)
type PostType int
const (
   PostType_Soon       PostType = iota + 1 //尽快
   PostType_AfterReady                     //当所有产品就绪时
)
type RuleType int
const (
   RuleType_Product         RuleType = iota + 1 //产品上架规则
   RuleType_ProductCategory                     //产品类别上架规则
)
type UserType int
const (
   UserTypeSuper   UserType = iota + 1 // 超级管理员
   UserTypePrimary                     // 主账户
   UserTypeSub                         // 子账户
)
type FileType string
const (
   FileType_File      FileType = "file"      //文件
   FileType_Picture   FileType = "picture"   //图片
   FileType_Thumbnail FileType = "thumbnail" //缩略图
)
var FileExtMap = map[string]FileType{
   "doc":  FileType_File,
   "docx": FileType_File,
   "xls":  FileType_File,
   "xlsx": FileType_File,
   "txt":  FileType_File,
}
var PicExtMap = map[string]FileType{
   "jpg":  FileType_Picture,
   "jpeg": FileType_Picture,
   "png":  FileType_Picture,
   "svg":  FileType_Picture,
}
type FileTemplateCategory int
const (
   FileTemplateCategory_Selfmade FileTemplateCategory = iota + 1 //入库-自制
   FileTemplateCategory_Output                                   //出库
)
type CodeStandardType string
const (
   CodeStandardType_Material CodeStandardType = "物料编码"
   CodeStandardType_Incoming CodeStandardType = "入库编码"
   CodeStandardType_Outgoing CodeStandardType = "出库编码"
   CodeStandardType_Internal CodeStandardType = "调拨编码"
   CodeStandardType_Disuse   CodeStandardType = "仓库报废编码"
)
type OperationSource int
const (
   OperationSourcePurchase         OperationSource = 1 //采购入库
   OperationSourceProduction       OperationSource = 2 //生产入库
   OperationSourceOutsourcing      OperationSource = 3 //委外入库
   OperationSourceProductionApply  OperationSource = 4 //生产领料
   OperationSourceOutsourcingApply OperationSource = 5 //委外领料
   OperationSourceSaleDelivery     OperationSource = 6 //销售发货
)