class LpoItemSchema(ma.ModelSchema): item = ma.Nested(ItemSchema, only=('name','uuid')) order = ma.Nested(LocalPurchaseOrderSchema, only=('id','uuid', 'vendor_id')) not_empty = validate.Length(min=1, max=50, error="Field cant be empty.") order_id = ma.String(required=True) item_id = ma.String(required=True, validate=[not_empty]) quantity = ma.Integer(required=True) unit_price = ma.Integer(required=True) class Meta: model = LpoItem sqla_session = db.session additional = ("creator", "amount")
class ChargeSchema(ma.ModelSchema): not_empty = validate.Length(min=1, max=50, error="Field cant be empty.") types = validate.OneOf(["flat", "percentage"]) code = ma.String(required=True, validate=[not_empty]) min_value = ma.Integer(required=True) max_value = ma.Integer(required=True) amount = ma.Integer(required=True) charge_type = ma.String(required=True, validate=[types]) class Meta: model = Charge sqla_session = db.session additional = ("tarriff", )
class AccountSchema(ma.ModelSchema): minimum_balance = ma.Integer(required=True) class Meta: model = Account sqla_session = db.session additional = ("creator", "balance", "name", "wallets")
class WorkItemSchema(ma.ModelSchema): request = ma.Nested(ServiceRequestSchema) not_empty = validate.Length(min=1, max=50, error='Field cant be empty.') request_id = ma.String(required=True) item = ma.String(required=True, validate=[not_empty]) quantity = ma.Integer(required=True) unit_cost = ma.Integer(required=True) entity_id = ma.String(required=True) class Meta: model = WorkItem sqla_session = db.session additional = ('creator', 'cost')
class EntrySchema(ma.ModelSchema): creator = ma.Nested(UserSchema) debit = ma.Integer() credit = ma.Integer() reference = ma.String(required=True) debit = ma.String(required=True) credit = ma.String(required=True) amount = ma.Integer(required=True) description = ma.String(required=True) tran_type = ma.String(required=True) pay_type = ma.String(required=True) entity_id = ma.String(required=True) class Meta: model = Entry sqla_session = db.session additional = ("debit_account", "credit_account", "entity")
class JobItemSchema(ma.ModelSchema): item = ma.Nested(ItemSchema, only=('id', 'name', 'price')) job = ma.Nested(JobSchema, only=('id', 'employee_id', 'request_id', 'is_complete')) not_empty = validate.Length(min=1, max=50, error='Field cant be empty.') job_id = ma.String(required=True) item_id = ma.String(required=True, validate=[not_empty]) quantity = ma.Integer(required=True) unit_cost = ma.Integer(required=True) entity_id = ma.String(required=True) class Meta: model = JobItem sqla_session = db.session additional = ('creator', 'cost')
class ItemSchema(ma.ModelSchema): entity = ma.Nested(EntitySchema, only=("name", "address", "email", "phone")) category = ma.Nested(ItemCategorySchema) vendor = ma.Nested(VendorSchema) name = ma.String(required=True) code = ma.String(required=True) model_id = ma.String(required=True) category_id = ma.String(required=True) price = ma.Integer(required=True) make_id = ma.Integer(required=True) item_type = ma.String(required=True) entity_id = ma.String(required=True) class Meta: model = Item sqla_session = db.session additional = ("creator", "quantity")
class ItemLogSchema(ma.ModelSchema): item = ma.Nested(ItemSchema, only=('name', 'uuid')) entity = ma.Nested(EntitySchema, only=('name', 'address', 'email', 'phone')) item_id = ma.String(required=True) debit = ma.String(required=True) credit = ma.String(required=True) reference = ma.String(required=True) category = ma.String(required=True) quantity = ma.Integer(required=True) amount = ma.Integer(required=True) unit_cost = ma.Integer(required=True) entity_id = ma.String(required=True) class Meta: model = ItemLog sqla_session = db.session additional = ("debit_account", "credit_account", "creator")
class TransactionSchema(ma.ModelSchema): tranid = ma.String(required=True) reference = ma.String(required=True) is_synchronous = ma.Boolean(required=True) amount = ma.Integer(required=True) narration = ma.String(required=True) phone = ma.String(required=True) tran_type = ma.String(required=True) pay_type = ma.String(required=True) class Meta: model = Transaction sqla_session = db.session additional = ("creator",)