|
@@ -0,0 +1,121 @@
|
|
|
+#coding=utf-8
|
|
|
+
|
|
|
+from django.db import models
|
|
|
+from django.utils import timezone
|
|
|
+
|
|
|
+from apps.exceptions import CustomError
|
|
|
+from apps.foundation.models import Option
|
|
|
+from apps.account.models import Department, User
|
|
|
+from django.conf import settings
|
|
|
+
|
|
|
+
|
|
|
+class FinanceCategory(models.Model):
|
|
|
+ name = models.CharField(max_length=100, verbose_name=u"名称")
|
|
|
+ enabled = models.BooleanField(verbose_name=u"在用", default=True)
|
|
|
+ create_user = models.ForeignKey(User, related_name='finance_category_ref_create_user', verbose_name=u"创建人",
|
|
|
+ on_delete=models.PROTECT)
|
|
|
+ create_time = models.DateTimeField(verbose_name=u"创建时间", default=timezone.now)
|
|
|
+
|
|
|
+ class Meta:
|
|
|
+ db_table = "finance_category"
|
|
|
+ ordering = ['-id']
|
|
|
+ verbose_name = u"财务收支类别"
|
|
|
+ default_permissions = ()
|
|
|
+ permissions = (
|
|
|
+ ("add_finance_category", u"添加"),
|
|
|
+ ("edit_finance_category", u"修改"),
|
|
|
+ ("delete_finance_category", u"删除"),
|
|
|
+ )
|
|
|
+
|
|
|
+class FinancePurpose(models.Model):
|
|
|
+ PAY = 1
|
|
|
+ INCOME = 2
|
|
|
+
|
|
|
+ TYPE_CHOICES = (
|
|
|
+ (PAY, u'收入'),
|
|
|
+ (INCOME, u'支出'),
|
|
|
+ )
|
|
|
+
|
|
|
+ name = models.CharField(max_length=100, verbose_name=u"名称")
|
|
|
+ type = models.IntegerField(choices=TYPE_CHOICES, verbose_name=u"收支类型")
|
|
|
+ category = models.ForeignKey(FinanceCategory, verbose_name=u"类别", on_delete=models.PROTECT)
|
|
|
+ enabled = models.BooleanField(verbose_name=u"在用", default=True)
|
|
|
+ create_user = models.ForeignKey(User, related_name='finance_product_ref_create_user', verbose_name=u"创建人",
|
|
|
+ on_delete=models.PROTECT)
|
|
|
+ create_time = models.DateTimeField(verbose_name=u"创建时间", default=timezone.now)
|
|
|
+
|
|
|
+ class Meta:
|
|
|
+ db_table = "finance_purpose"
|
|
|
+ ordering = ['-id']
|
|
|
+ verbose_name = u"财务收支用途"
|
|
|
+ default_permissions = ()
|
|
|
+ permissions = (
|
|
|
+ ("add_finance_category", u"添加"),
|
|
|
+ ("edit_finance_category", u"修改"),
|
|
|
+ ("delete_finance_category", u"删除"),
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
+class dbFinanceIncome(models.Model):
|
|
|
+ USER_DEFINED = 1
|
|
|
+ MATERIAL_ENTRY_PAY = 2
|
|
|
+ MATERIAL_ENTRY_UNLOAD = 3
|
|
|
+ MATERIAL_ENTRY_FARE = 4
|
|
|
+ CONSUMABLE_ENTRY_PAY = 5
|
|
|
+ CONSUMABLE_ENTRY_UNLOAD = 6
|
|
|
+ CONSUMABLE_ENTRY_FARE = 7
|
|
|
+ SALE_ENTRY_PAY = 8
|
|
|
+ SALE_ENTRY_UNLOAD = 9
|
|
|
+ SALE_ENTRY_FARE = 10
|
|
|
+
|
|
|
+ TYPE_CHOICES = (
|
|
|
+ (USER_DEFINED, u'自定义'),
|
|
|
+ (MATERIAL_ENTRY_PAY, u'原料入库付款'),
|
|
|
+ (MATERIAL_ENTRY_UNLOAD, u'原料入库卸车'),
|
|
|
+ (MATERIAL_ENTRY_FARE, u'原料入库运费'),
|
|
|
+ (CONSUMABLE_ENTRY_PAY, u'耗材入库付款'),
|
|
|
+ (CONSUMABLE_ENTRY_UNLOAD, u'耗材入库卸车'),
|
|
|
+ (CONSUMABLE_ENTRY_FARE, u'耗材入库运费'),
|
|
|
+ (SALE_ENTRY_PAY, u'销售结算'),
|
|
|
+ (SALE_ENTRY_UNLOAD, u'销售装车'),
|
|
|
+ (SALE_ENTRY_FARE, u'销售运费'),
|
|
|
+ )
|
|
|
+ PREFIX_CHOICES = (
|
|
|
+ (USER_DEFINED, 'UD'),
|
|
|
+ (MATERIAL_ENTRY_PAY, 'MP'),
|
|
|
+ (MATERIAL_ENTRY_UNLOAD, 'MU'),
|
|
|
+ (MATERIAL_ENTRY_FARE, 'MF'),
|
|
|
+ (CONSUMABLE_ENTRY_PAY, 'CP'),
|
|
|
+ (CONSUMABLE_ENTRY_UNLOAD, 'CU'),
|
|
|
+ (CONSUMABLE_ENTRY_FARE, 'CF'),
|
|
|
+ (SALE_ENTRY_PAY, 'SP'),
|
|
|
+ (SALE_ENTRY_UNLOAD, 'SU'),
|
|
|
+ (SALE_ENTRY_FARE, 'SF'),
|
|
|
+ )
|
|
|
+
|
|
|
+ no = models.CharField(max_length=50, verbose_name=u"收银单号")
|
|
|
+ referer_no = models.CharField(max_length=50, verbose_name=u"引用单据编号")
|
|
|
+ department = models.ForeignKey(Department, related_name='finance_income_ref_department', verbose_name=u'部门',null=True,on_delete=models.PROTECT)
|
|
|
+ create_user = models.ForeignKey(User, related_name='finance_income_ref_create_user', verbose_name=u"创建人", on_delete=models.PROTECT)
|
|
|
+ create_time = models.DateTimeField(verbose_name=u"创建时间", default=timezone.now)
|
|
|
+ type = models.IntegerField(choices=TYPE_CHOICES, verbose_name=u"类型")
|
|
|
+ amount = models.BigIntegerField(verbose_name=u"金额")
|
|
|
+ account = models.ForeignKey(Option, related_name='finance_income_ref_account',verbose_name=u"账户", on_delete=models.PROTECT)
|
|
|
+ purpose = models.ForeignKey(FinancePurpose, verbose_name=u"用途", on_delete=models.PROTECT)
|
|
|
+ check_user = models.ForeignKey(User, related_name='finance_income_ref_check_user', verbose_name=u"审核人",
|
|
|
+ on_delete=models.PROTECT)
|
|
|
+ check_time = models.DateTimeField(verbose_name=u"审核时间", null=True)
|
|
|
+ check_status = models.PositiveSmallIntegerField(choices=settings.CHECK_STATUS_CHOICES, verbose_name=u"审核状态", default=settings.DEFAULT)
|
|
|
+
|
|
|
+ class Meta:
|
|
|
+ db_table = "finance_income"
|
|
|
+ verbose_name = u"收支管理"
|
|
|
+ ordering = ('-id',)
|
|
|
+ unique_together = (
|
|
|
+ 'no',
|
|
|
+ )
|
|
|
+ permissions = (
|
|
|
+ ("add_finance_income", u"添加"),
|
|
|
+ ("edit_finance_income", u"修改"),
|
|
|
+ ("check_finance_income", u"审核"),
|
|
|
+ )
|