mirror of
https://github.com/himool/HimoolERP.git
synced 2024-09-20 14:56:00 +08:00
feat: 编号自动生成
This commit is contained in:
parent
bd07854d74
commit
d3112e0745
|
@ -19,6 +19,18 @@ class Warehouse(Model):
|
|||
class Meta:
|
||||
unique_together = [('number', 'team'), ('name', 'team')]
|
||||
|
||||
@classmethod
|
||||
def get_number(cls, team):
|
||||
instance = cls.objects.filter(team=team).last()
|
||||
|
||||
try:
|
||||
result = re.match('^(.*?)([1-9]+)$', instance.number)
|
||||
number = result.group(1) + str(int(result.group(2)) + 1)
|
||||
except AttributeError:
|
||||
number = 'W001'
|
||||
|
||||
return number
|
||||
|
||||
|
||||
class Client(Model):
|
||||
"""客户"""
|
||||
|
@ -51,6 +63,18 @@ class Client(Model):
|
|||
class Meta:
|
||||
unique_together = [('number', 'team'), ('name', 'team')]
|
||||
|
||||
@classmethod
|
||||
def get_number(cls, team):
|
||||
instance = cls.objects.filter(team=team).last()
|
||||
|
||||
try:
|
||||
result = re.match('^(.*?)([1-9]+)$', instance.number)
|
||||
number = result.group(1) + str(int(result.group(2)) + 1)
|
||||
except AttributeError:
|
||||
number = 'C001'
|
||||
|
||||
return number
|
||||
|
||||
def save(self, force_insert=False, force_update=False, using=None, update_fields=None):
|
||||
self.has_arrears = self.arrears_amount > 0
|
||||
if update_fields:
|
||||
|
@ -82,6 +106,18 @@ class Supplier(Model):
|
|||
class Meta:
|
||||
unique_together = [('number', 'team'), ('name', 'team')]
|
||||
|
||||
@classmethod
|
||||
def get_number(cls, team):
|
||||
instance = cls.objects.filter(team=team).last()
|
||||
|
||||
try:
|
||||
result = re.match('^(.*?)([1-9]+)$', instance.number)
|
||||
number = result.group(1) + str(int(result.group(2)) + 1)
|
||||
except AttributeError:
|
||||
number = 'S001'
|
||||
|
||||
return number
|
||||
|
||||
def save(self, force_insert=False, force_update=False, using=None, update_fields=None):
|
||||
self.has_arrears = self.arrears_amount > 0
|
||||
if update_fields:
|
||||
|
@ -116,6 +152,18 @@ class Account(Model):
|
|||
class Meta:
|
||||
unique_together = [('number', 'team'), ('name', 'team')]
|
||||
|
||||
@classmethod
|
||||
def get_number(cls, team):
|
||||
instance = cls.objects.filter(team=team).last()
|
||||
|
||||
try:
|
||||
result = re.match('^(.*?)([1-9]+)$', instance.number)
|
||||
number = result.group(1) + str(int(result.group(2)) + 1)
|
||||
except AttributeError:
|
||||
number = 'A001'
|
||||
|
||||
return number
|
||||
|
||||
def save(self, force_insert=False, force_update=False, using=None, update_fields=None):
|
||||
self.has_balance = self.balance_amount > 0
|
||||
if update_fields:
|
||||
|
|
|
@ -40,13 +40,7 @@ class WarehouseViewSet(BaseViewSet, ReadWriteMixin):
|
|||
def number(self, request, *args, **kwargs):
|
||||
"""获取编号"""
|
||||
|
||||
instance = Warehouse.objects.filter(team=self.team).last()
|
||||
try:
|
||||
result = re.match('^(.*?)([1-9]+)$', instance.number)
|
||||
number = result.group(1) + str(int(result.group(2)) + 1)
|
||||
except AttributeError:
|
||||
number = 'W001'
|
||||
|
||||
number = Warehouse.get_number(self.team)
|
||||
return Response(data={'number': number}, status=status.HTTP_200_OK)
|
||||
|
||||
|
||||
|
@ -73,13 +67,7 @@ class ClientViewSet(BaseViewSet, ReadWriteMixin):
|
|||
def number(self, request, *args, **kwargs):
|
||||
"""获取编号"""
|
||||
|
||||
instance = Client.objects.filter(team=self.team).last()
|
||||
try:
|
||||
result = re.match('^(.*?)([1-9]+)$', instance.number)
|
||||
number = result.group(1) + str(int(result.group(2)) + 1)
|
||||
except AttributeError:
|
||||
number = 'C001'
|
||||
|
||||
number = Client.get_number(self.team)
|
||||
return Response(data={'number': number}, status=status.HTTP_200_OK)
|
||||
|
||||
|
||||
|
@ -106,13 +94,7 @@ class SupplierViewSet(BaseViewSet, ReadWriteMixin):
|
|||
def number(self, request, *args, **kwargs):
|
||||
"""获取编号"""
|
||||
|
||||
instance = Supplier.objects.filter(team=self.team).last()
|
||||
try:
|
||||
result = re.match('^(.*?)([1-9]+)$', instance.number)
|
||||
number = result.group(1) + str(int(result.group(2)) + 1)
|
||||
except AttributeError:
|
||||
number = 'S001'
|
||||
|
||||
number = Supplier.get_number(self.team)
|
||||
return Response(data={'number': number}, status=status.HTTP_200_OK)
|
||||
|
||||
|
||||
|
@ -138,13 +120,7 @@ class AccountViewSet(BaseViewSet, ReadWriteMixin):
|
|||
def number(self, request, *args, **kwargs):
|
||||
"""获取编号"""
|
||||
|
||||
instance = Account.objects.filter(team=self.team).last()
|
||||
try:
|
||||
result = re.match('^(.*?)([1-9]+)$', instance.number)
|
||||
number = result.group(1) + str(int(result.group(2)) + 1)
|
||||
except AttributeError:
|
||||
number = 'A001'
|
||||
|
||||
number = Account.get_number(self.team)
|
||||
return Response(data={'number': number}, status=status.HTTP_200_OK)
|
||||
|
||||
|
||||
|
|
|
@ -68,6 +68,19 @@ class CollectionOrder(Model):
|
|||
class Meta:
|
||||
unique_together = [('number', 'team')]
|
||||
|
||||
@classmethod
|
||||
def get_number(cls, team):
|
||||
start_date, end_date = pendulum.now(), pendulum.tomorrow()
|
||||
instance = cls.objects.filter(team=team, create_time__gte=start_date, create_time__lt=end_date).last()
|
||||
|
||||
try:
|
||||
result = re.match('^(.*?)([1-9]+)$', instance.number)
|
||||
number = result.group(1) + str(int(result.group(2)) + 1)
|
||||
except AttributeError:
|
||||
number = 'CK' + start_date.format('YYYYMMDD') + '0001'
|
||||
|
||||
return number
|
||||
|
||||
|
||||
class CollectionAccount(Model):
|
||||
"""收款账户"""
|
||||
|
@ -108,6 +121,19 @@ class ChargeOrder(Model):
|
|||
class Meta:
|
||||
unique_together = [('number', 'team')]
|
||||
|
||||
@classmethod
|
||||
def get_number(cls, team):
|
||||
start_date, end_date = pendulum.now(), pendulum.tomorrow()
|
||||
instance = cls.objects.filter(team=team, create_time__gte=start_date, create_time__lt=end_date).last()
|
||||
|
||||
try:
|
||||
result = re.match('^(.*?)([1-9]+)$', instance.number)
|
||||
number = result.group(1) + str(int(result.group(2)) + 1)
|
||||
except AttributeError:
|
||||
number = 'SZ' + start_date.format('YYYYMMDD') + '0001'
|
||||
|
||||
return number
|
||||
|
||||
|
||||
class AccountTransferRecord(Model):
|
||||
"""结算账户转账记录"""
|
||||
|
|
|
@ -32,6 +32,18 @@ class Goods(Model):
|
|||
class Meta:
|
||||
unique_together = [('number', 'team'), ('name', 'team')]
|
||||
|
||||
@classmethod
|
||||
def get_number(cls, team):
|
||||
instance = cls.objects.filter(team=team).last()
|
||||
|
||||
try:
|
||||
result = re.match('^(.*?)([1-9]+)$', instance.number)
|
||||
number = result.group(1) + str(int(result.group(2)) + 1)
|
||||
except AttributeError:
|
||||
number = 'G000000000001'
|
||||
|
||||
return number
|
||||
|
||||
|
||||
class Batch(Model):
|
||||
"""批次"""
|
||||
|
|
|
@ -40,13 +40,7 @@ class GoodsViewSet(BaseViewSet, ReadWriteMixin):
|
|||
def number(self, request, *args, **kwargs):
|
||||
"""获取编号"""
|
||||
|
||||
instance = Goods.objects.filter(team=self.team).last()
|
||||
try:
|
||||
result = re.match('^(.*?)([1-9]+)$', instance.number)
|
||||
number = result.group(1) + str(int(result.group(2)) + 1)
|
||||
except AttributeError:
|
||||
number = 'G000000000001'
|
||||
|
||||
number = Goods.get_number(self.team)
|
||||
return Response(data={'number': number}, status=status.HTTP_200_OK)
|
||||
|
||||
|
||||
|
|
|
@ -81,6 +81,19 @@ class PurchaseReturnOrder(Model):
|
|||
class Meta:
|
||||
unique_together = [('number', 'team')]
|
||||
|
||||
@classmethod
|
||||
def get_number(cls, team):
|
||||
start_date, end_date = pendulum.now(), pendulum.tomorrow()
|
||||
instance = cls.objects.filter(team=team, create_time__gte=start_date, create_time__lt=end_date).last()
|
||||
|
||||
try:
|
||||
result = re.match('^(.*?)([1-9]+)$', instance.number)
|
||||
number = result.group(1) + str(int(result.group(2)) + 1)
|
||||
except AttributeError:
|
||||
number = 'CR' + start_date.format('YYYYMMDD') + '0001'
|
||||
|
||||
return number
|
||||
|
||||
|
||||
class PurchaseReturnGodos(Model):
|
||||
"""采购退货商品"""
|
||||
|
|
|
@ -23,6 +23,19 @@ class SalesOrder(Model):
|
|||
class Meta:
|
||||
unique_together = [('number', 'team')]
|
||||
|
||||
@classmethod
|
||||
def get_number(cls, team):
|
||||
start_date, end_date = pendulum.now(), pendulum.tomorrow()
|
||||
instance = cls.objects.filter(team=team, create_time__gte=start_date, create_time__lt=end_date).last()
|
||||
|
||||
try:
|
||||
result = re.match('^(.*?)([1-9]+)$', instance.number)
|
||||
number = result.group(1) + str(int(result.group(2)) + 1)
|
||||
except AttributeError:
|
||||
number = 'XS' + start_date.format('YYYYMMDD') + '0001'
|
||||
|
||||
return number
|
||||
|
||||
|
||||
class SalesGoods(Model):
|
||||
"""销售商品"""
|
||||
|
@ -64,6 +77,19 @@ class SalesReturnOrder(Model):
|
|||
class Meta:
|
||||
unique_together = [('number', 'team')]
|
||||
|
||||
@classmethod
|
||||
def get_number(cls, team):
|
||||
start_date, end_date = pendulum.now(), pendulum.tomorrow()
|
||||
instance = cls.objects.filter(team=team, create_time__gte=start_date, create_time__lt=end_date).last()
|
||||
|
||||
try:
|
||||
result = re.match('^(.*?)([1-9]+)$', instance.number)
|
||||
number = result.group(1) + str(int(result.group(2)) + 1)
|
||||
except AttributeError:
|
||||
number = 'SR' + start_date.format('YYYYMMDD') + '0001'
|
||||
|
||||
return number
|
||||
|
||||
|
||||
class SalesReturnGoods(Model):
|
||||
"""销售退货商品"""
|
||||
|
|
|
@ -29,6 +29,19 @@ class StockCheckOrder(Model):
|
|||
class Meta:
|
||||
unique_together = [('number', 'team')]
|
||||
|
||||
@classmethod
|
||||
def get_number(cls, team):
|
||||
start_date, end_date = pendulum.now(), pendulum.tomorrow()
|
||||
instance = cls.objects.filter(team=team, create_time__gte=start_date, create_time__lt=end_date).last()
|
||||
|
||||
try:
|
||||
result = re.match('^(.*?)([1-9]+)$', instance.number)
|
||||
number = result.group(1) + str(int(result.group(2)) + 1)
|
||||
except AttributeError:
|
||||
number = 'PD' + start_date.format('YYYYMMDD') + '0001'
|
||||
|
||||
return number
|
||||
|
||||
|
||||
class StockCheckGoods(Model):
|
||||
"""盘点商品"""
|
||||
|
|
|
@ -29,6 +29,19 @@ class StockInOrder(Model):
|
|||
class Meta:
|
||||
unique_together = [('number', 'team')]
|
||||
|
||||
@classmethod
|
||||
def get_number(cls, team):
|
||||
start_date, end_date = pendulum.now(), pendulum.tomorrow()
|
||||
instance = cls.objects.filter(team=team, create_time__gte=start_date, create_time__lt=end_date).last()
|
||||
|
||||
try:
|
||||
result = re.match('^(.*?)([1-9]+)$', instance.number)
|
||||
number = result.group(1) + str(int(result.group(2)) + 1)
|
||||
except AttributeError:
|
||||
number = 'RK' + start_date.format('YYYYMMDD') + '0001'
|
||||
|
||||
return number
|
||||
|
||||
|
||||
class StockInGoods(Model):
|
||||
"""入库商品"""
|
||||
|
|
|
@ -29,6 +29,18 @@ class StockOutOrder(Model):
|
|||
class Meta:
|
||||
unique_together = [('number', 'team')]
|
||||
|
||||
@classmethod
|
||||
def get_number(cls, team):
|
||||
start_date, end_date = pendulum.now(), pendulum.tomorrow()
|
||||
instance = cls.objects.filter(team=team, create_time__gte=start_date, create_time__lt=end_date).last()
|
||||
|
||||
try:
|
||||
result = re.match('^(.*?)([1-9]+)$', instance.number)
|
||||
number = result.group(1) + str(int(result.group(2)) + 1)
|
||||
except AttributeError:
|
||||
number = 'CK' + start_date.format('YYYYMMDD') + '0001'
|
||||
|
||||
return number
|
||||
|
||||
class StockOutGoods(Model):
|
||||
"""出库商品"""
|
||||
|
|
|
@ -21,6 +21,18 @@ class StockTransferOrder(Model):
|
|||
|
||||
class Meta:
|
||||
unique_together = [('number', 'team')]
|
||||
@classmethod
|
||||
def get_number(cls, team):
|
||||
start_date, end_date = pendulum.now(), pendulum.tomorrow()
|
||||
instance = cls.objects.filter(team=team, create_time__gte=start_date, create_time__lt=end_date).last()
|
||||
|
||||
try:
|
||||
result = re.match('^(.*?)([1-9]+)$', instance.number)
|
||||
number = result.group(1) + str(int(result.group(2)) + 1)
|
||||
except AttributeError:
|
||||
number = 'DB' + start_date.format('YYYYMMDD') + '0001'
|
||||
|
||||
return number
|
||||
|
||||
|
||||
class StockTransferGoods(Model):
|
||||
|
|
Loading…
Reference in a new issue