models.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. # coding=utf-8
  2. from django.db import models
  3. from apps.exceptions import CustomError
  4. class Supplier(models.Model):
  5. MATERIAL = 0
  6. CONSUMABLE = 1
  7. TYPE_CHOICES = (
  8. (MATERIAL, u'原料'),
  9. (CONSUMABLE, u'耗材'),
  10. )
  11. TYPE_CHOICES_DICT = [{'id': x, 'value': y} for x, y in TYPE_CHOICES]
  12. name = models.CharField(max_length=100, verbose_name=u"名称")
  13. type = models.PositiveSmallIntegerField(choices=TYPE_CHOICES, verbose_name=u"类型", default=MATERIAL)
  14. contacts = models.CharField(max_length=100, verbose_name=u"联系人", null=True, blank=True)
  15. phone_number = models.CharField(max_length=100, verbose_name=u"电话", null=True, blank=True)
  16. address = models.CharField(max_length=100, verbose_name=u"地址", null=True, blank=True)
  17. opening_bank = models.CharField(max_length=100, verbose_name=u"开户行", null=True, blank=True)
  18. account = models.CharField(max_length=100, verbose_name=u"账号", null=True, blank=True)
  19. tax_number = models.CharField(max_length=100, verbose_name=u"税号", null=True, blank=True)
  20. credit_code = models.CharField(max_length=100, verbose_name=u"信用代码", null=True, blank=True)
  21. notes = models.CharField(max_length=500, verbose_name=u"备注", null=True, blank=True)
  22. enabled = models.BooleanField(verbose_name=u"在用", default=True)
  23. class Meta:
  24. db_table = "supplier"
  25. verbose_name = u"供应商管理"
  26. ordering = ('-id',)
  27. index_together = (
  28. 'name',
  29. 'phone_number',
  30. )
  31. default_permissions = ()
  32. permissions = (
  33. ("view_supplier", u"浏览"),
  34. ("add_supplier", u"添加"),
  35. ("import_supplier", u"导入"),
  36. ("export_supplier", u"导出"),
  37. ("delete_supplier", u"删除")
  38. )
  39. @staticmethod
  40. def getById(id):
  41. instance = Supplier.objects.filter(pk=id).first()
  42. if not instance:
  43. raise CustomError(u'未找到相应的供应商')
  44. return instance