|
|
|
from mongoengine import *
|
|
|
|
|
|
|
|
from models.Account import Account
|
|
|
|
from models.File import File
|
|
|
|
from models.Union import Union
|
|
|
|
from models.User import User
|
|
|
|
from restapi import Methods
|
|
|
|
|
|
|
|
|
|
|
|
class Payments(Document):
|
|
|
|
meta = {
|
|
|
|
'index_background': True,
|
|
|
|
'index_cls': False,
|
|
|
|
'auto_create_index': True,
|
|
|
|
'can_query': True,
|
|
|
|
'with_sub_docs': True,
|
|
|
|
'methods': [Methods.Get, Methods.List, Methods.Create],
|
|
|
|
"indexes": [
|
|
|
|
("union","deleted"),
|
|
|
|
("union","deleted","account"),
|
|
|
|
('user',"union"),
|
|
|
|
('user',"union","deleted"),
|
|
|
|
('union', "user","income","deleted"),
|
|
|
|
('union', "user","deleted")
|
|
|
|
],
|
|
|
|
}
|
|
|
|
"""
|
|
|
|
all payments income and outcome together!
|
|
|
|
"""
|
|
|
|
union = ReferenceField(Union)
|
|
|
|
user = ReferenceField(User, required=True)
|
|
|
|
income = BooleanField(default=False)
|
|
|
|
date = DateTimeField()
|
|
|
|
regular = BooleanField(default=False)
|
|
|
|
regular_type = StringField(choices=('Weekly', 'Monthly', 'Yearly'))
|
|
|
|
price = DecimalField(required=True)
|
|
|
|
deleted = BooleanField(default=False)
|
|
|
|
description = StringField()
|
|
|
|
reference_no = StringField()
|
|
|
|
file = ReferenceField(File)
|
|
|
|
account = ReferenceField(Account, required=True)
|
|
|
|
due_date = DateTimeField()
|
|
|
|
is_paid = BooleanField(default=False, required=True)
|
|
|
|
is_donate = BooleanField(default=False)
|