forked from erp-dev/erp
feat: added print_count api, added merchant setting model, added manual mode setting for purchase order
This commit is contained in:
@@ -452,3 +452,52 @@ class VehicleTransportRecord(ModelBase):
|
||||
class Meta:
|
||||
verbose_name = '司机车次'
|
||||
verbose_name_plural = '司机车次'
|
||||
|
||||
|
||||
class MerchantSettingTypeEnum(models.TextChoices):
|
||||
"""商户设置类型枚举"""
|
||||
STR = 'str', '字符串'
|
||||
INT = 'int', '整数'
|
||||
FLOAT = 'float', '浮点数'
|
||||
BOOL = 'bool', '布尔值'
|
||||
|
||||
|
||||
class MerchantSetting(ModelBase):
|
||||
id = models.BigAutoField(primary_key=True)
|
||||
merchant = models.ForeignKey('Merchant', on_delete=models.PROTECT, related_name='settings', verbose_name='所属商户')
|
||||
key = models.CharField(max_length=100, verbose_name='设置项')
|
||||
type = models.CharField(
|
||||
max_length=20,
|
||||
choices=MerchantSettingTypeEnum.choices,
|
||||
default=MerchantSettingTypeEnum.STR,
|
||||
verbose_name='设置类型',
|
||||
)
|
||||
val_str = models.CharField(max_length=100, null=True, blank=True, verbose_name='设置值(字符串)')
|
||||
val_int = models.IntegerField(null=True, blank=True, verbose_name='设置值(整数)')
|
||||
val_float = models.FloatField(null=True, blank=True, verbose_name='设置值(浮点数)')
|
||||
val_bool = models.BooleanField(null=True, blank=True, verbose_name='设置值(布尔值)')
|
||||
description = models.TextField(blank=True, null=True, verbose_name='备注')
|
||||
|
||||
@property
|
||||
def value(self):
|
||||
if self.type == MerchantSettingTypeEnum.STR:
|
||||
return self.val_str
|
||||
elif self.type == MerchantSettingTypeEnum.INT:
|
||||
return self.val_int
|
||||
elif self.type == MerchantSettingTypeEnum.FLOAT:
|
||||
return self.val_float
|
||||
elif self.type == MerchantSettingTypeEnum.BOOL:
|
||||
return self.val_bool
|
||||
raise ValueError(f'Invalid setting type: {self.type}')
|
||||
|
||||
def __str__(self):
|
||||
return f'{self.merchant.name} - {self.key}'
|
||||
|
||||
class Meta:
|
||||
verbose_name = '商户设置'
|
||||
verbose_name_plural = '商户设置'
|
||||
|
||||
|
||||
class MerchantSettingKeyEnum(models.TextChoices):
|
||||
"""商户设置项枚举"""
|
||||
AUTO_CREATE_STOCK_CHANGE_TASKS = 'auto_create_stock_change_tasks', '自动创建出入库记录任务'
|
||||
|
||||
Reference in New Issue
Block a user