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.

153 lines
7.1 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

from django.db import models
# 区域的模型类
from ERP_5.utils.base_model import BaseModel
class Nation(models.Model):
id = models.IntegerField(primary_key=True)
n_name = models.CharField('国家名称', max_length=30)
class Meta:
db_table = 'nation'
verbose_name = '国家表'
verbose_name_plural = verbose_name
ordering = ['id']
def __str__(self):
return self.n_name
# 省份的模型类
class Province(models.Model):
id = models.IntegerField(primary_key=True)
p_name = models.CharField('省份名称', max_length=30)
nation = models.ForeignKey('Nation', related_name='province_list', on_delete=models.CASCADE, verbose_name='省份所在的国家')
class Meta:
db_table = 'province'
verbose_name = '省份表'
verbose_name_plural = verbose_name
ordering = ['id']
def __str__(self):
return self.p_name
# 城市的模型类
class City(models.Model):
id = models.IntegerField(primary_key=True)
c_name = models.CharField('城市名称', max_length=30)
province = models.ForeignKey('Province', related_name='city_list', on_delete=models.CASCADE, verbose_name='城市所在的省份')
class Meta:
db_table = 'city'
verbose_name = '城市表'
verbose_name_plural = verbose_name
ordering = ['id']
def __str__(self):
return self.c_name
# 供应商模型类
class SupplierModel(BaseModel):
name = models.CharField(max_length=100, verbose_name='供应商名称', unique=True)
mobile = models.CharField('手机号码', max_length=11, blank=True, null=True)
phone = models.CharField('联系电话', max_length=22, blank=True, null=True)
contacts_name = models.CharField('联系人名', max_length=22, blank=True, null=True)
email = models.CharField('电子邮箱', max_length=50, blank=True, null=True)
ratepayer_number = models.CharField('纳税人识别号码', max_length=50, blank=True, null=True)
bank = models.CharField('开户银行', max_length=50, blank=True, null=True)
account_number = models.CharField('银行账号', max_length=50, blank=True, null=True)
nation = models.CharField('国家', max_length=50, blank=True, null=True)
province = models.CharField('省份', max_length=50, blank=True, null=True)
city = models.CharField('城市', max_length=50, blank=True, null=True)
address = models.CharField('详细地址', max_length=50, blank=True, null=True)
remark = models.CharField('备注', max_length=512, blank=True, null=True)
init_pay = models.DecimalField('初期应付', max_digits=20, decimal_places=2, blank=True, default=0) # 精确到小数点后两位
current_pay = models.DecimalField('末期应付', max_digits=20, decimal_places=2, default=0, blank=True) # 精确到小数点后两位
order_number = models.IntegerField('排序号码', default=100)
class Meta:
db_table = 't_supplier'
verbose_name = '供应商'
verbose_name_plural = verbose_name
ordering = ['order_number', 'id']
def __str__(self):
return self.name
# 客户模型类
class CustomerModel(BaseModel):
name = models.CharField(max_length=100, verbose_name='客户名称', unique=True)
mobile = models.CharField('手机号码', max_length=11, blank=True, null=True)
phone = models.CharField('联系电话', max_length=22, blank=True, null=True)
contacts_name = models.CharField('联系人名', max_length=22, blank=True, null=True)
email = models.CharField('电子邮箱', max_length=50, blank=True, null=True)
ratepayer_number = models.CharField('纳税人识别号码', max_length=50, blank=True, null=True)
bank = models.CharField('开户银行', max_length=50, blank=True, null=True)
account_number = models.CharField('银行账号', max_length=50, blank=True, null=True)
nation = models.CharField('国家', max_length=50, blank=True, null=True)
province = models.CharField('省份', max_length=50, blank=True, null=True)
city = models.CharField('城市', max_length=50, blank=True, null=True)
address = models.CharField('详细地址', max_length=50, blank=True, null=True)
remark = models.CharField('备注', max_length=512, blank=True, null=True)
init_receivable = models.DecimalField('初期应收', max_digits=20, decimal_places=2, blank=True, null=True) # 精确到小数点后两位
current_receivable = models.DecimalField('末期应收', max_digits=20, decimal_places=2, blank=True, null=True) # 精确到小数点后两位
order_number = models.IntegerField('排序号码', default=100)
class Meta:
db_table = 't_customer'
verbose_name = '客户'
verbose_name_plural = verbose_name
ordering = ['order_number', 'id']
def __str__(self):
return self.name
# 仓库模型类
class WarehouseModel(BaseModel):
name = models.CharField(max_length=100, verbose_name='仓库名称', unique=True)
nation = models.CharField('国家', max_length=50, blank=True, null=True)
province = models.CharField('省份', max_length=50, blank=True, null=True)
city = models.CharField('城市', max_length=50, blank=True, null=True)
address = models.CharField('详细地址', max_length=50, blank=True, null=True)
remark = models.CharField('备注', max_length=512, blank=True, null=True)
warehouse_fee = models.DecimalField('仓储费用(元/天/KG)', max_digits=10, decimal_places=2, blank=True, null=True) # 精确到小数点后两位
truckage = models.DecimalField('搬运费用', max_digits=10, decimal_places=2, blank=True, null=True) # 精确到小数点后两位
order_number = models.IntegerField('排序号码', default=100)
is_default = models.BooleanField('是否默认的仓库', default=False)
# 用户模型来自于erp_system的APP中必须要加前缀
leader_user = models.ForeignKey('erp_system.UserModel', null=True, blank=True, on_delete=models.SET_NULL, verbose_name='仓库负责人')
class Meta:
db_table = 't_warehouse'
verbose_name = '仓库'
verbose_name_plural = verbose_name
ordering = ['order_number', 'id']
def __str__(self):
return self.name
# 结算账户模型类
class SettlementAccountModel(BaseModel):
name = models.CharField(max_length=100, verbose_name='仓库名称', unique=True)
number_code = models.CharField('编号', max_length=28, unique=True)
remark = models.CharField('备注', max_length=512, blank=True, null=True)
init_amount = models.DecimalField('初期金额', max_digits=10, decimal_places=2, blank=True, null=True) # 精确到小数点后两位
balance = models.DecimalField('余额', max_digits=10, decimal_places=2, blank=True, null=True) # 精确到小数点后两位
order_number = models.IntegerField('排序号码', default=100)
is_default = models.BooleanField('是否默认', default=False)
class Meta:
db_table = 't_settlement_account'
verbose_name = '结算账户'
verbose_name_plural = verbose_name
ordering = ['order_number', 'id']
def __str__(self):
return self.name