Subversion Repositories SmartDukaan

Rev

Rev 6535 | Blame | Compare with Previous | Last modification | View Log | RSS feed

'''
Created on 11-Sep-2012

@author: mandeep
'''
from elixir.fields import Field
from elixir.options import using_options, using_table_options
from shop2020.model.v1.order.impl.model.RechargeOrder import RechargeOrder
from sqlalchemy.types import String, Integer
from shop2020.thriftpy.model.v1.order.ttypes import RechargeOrder as TRechargeOrder, RechargeType

class DTHRechargeOrder(RechargeOrder):
    '''
    classdocs
    '''
    dthAccountNumber = Field(String(256))
    dthOperatorId = Field(Integer)
    using_options(shortnames=True, inheritance='multi')
    using_table_options(mysql_engine="InnoDB")
    
    def __init__(self):
        '''
        Constructor
        '''
        super(DTHRechargeOrder, self).__init__()
        self.idPrefix = 'DTHR'

    def to_thrift_object(self):
        dthRechargeOrder = TRechargeOrder()
        super(DTHRechargeOrder, self).to_thrift_object(dthRechargeOrder)
        dthRechargeOrder.deviceNumber = self.dthAccountNumber
        dthRechargeOrder.operatorId = self.dthOperatorId
        dthRechargeOrder.rechargeType = RechargeType.DTH
        return dthRechargeOrder

    def from_thrift_object(self, thriftDthRechargeOrder):
        super(DTHRechargeOrder, self).from_thrift_object(thriftDthRechargeOrder)
        self.dthAccountNumber = thriftDthRechargeOrder.deviceNumber
        self.dthOperatorId = thriftDthRechargeOrder.operatorId
        if not self.is_valid():
            raise ValueError()

    def is_valid(self):
        return super(DTHRechargeOrder, self).is_valid() and self.totalAmount <= 2000