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