zhangqian
2024-05-06 3abb522a610fa41a8d5570b643d88a23030e56db
constvar/const.go
@@ -6,6 +6,8 @@
   BaseOperationTypeIncoming BaseOperationType = iota + 1 //收货
   BaseOperationTypeOutgoing                              //交货
   BaseOperationTypeInternal                              //内部调拨
   BaseOperationTypeDisuse                                //报废
   BaseOperationTypeAdjust                                //库存盘点
)
func (slf BaseOperationType) IsValid() bool {
@@ -46,9 +48,105 @@
type ProductType int
const (
   ProductTypeRaw      = iota + 1 // 原材料
   ProductTypeSemi                // 半成品
   ProductTypeFinished            // 成品
   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
@@ -87,6 +185,8 @@
   LocationTypeInventoryLoss                         // 库存损失
   LocationTypeProduction                            // 生产
   LocationTypeTransit                               // 中转位置
   LocationTypeDisuse                                //报废位置
   LocationTypeAdjust                                //库存盘点
)
func (t LocationType) Valid() bool {
@@ -110,7 +210,7 @@
const (
   CostingMethodStandardPrice CostingMethod = iota + 1 //标准价格
   CostingMethodFIFO                                   //先进先出
   CostingMethodAverageCost                            //
   CostingMethodAverageCost                            //平均成本
)
func (t CostingMethod) Valid() bool {
@@ -127,3 +227,88 @@
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                                        //出库
   FileTemplateCategory_JialianInput  = 14                            //嘉联入库
   FileTemplateCategory_JialianOutput = 15                            //嘉联出库
)
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 //销售发货
)