Subversion Repositories SmartDukaan

Rev

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

'''
Created on 03-Dec-2012

@author: Amar
'''
from elixir.entity import Entity
from elixir.fields import Field
from elixir.options import using_options, using_table_options
from shop2020.thriftpy.purchase.ttypes import PurchaseReturn as TPurchaseReturn, PurchaseReturnInventoryType, SettlementType, PrReasonType
from shop2020.utils.Utils import to_java_date
from sqlalchemy.types import Integer, Float, DateTime, Boolean, Enum, String
import datetime

class PurchaseReturn(Entity):
    '''
    classdocs
    '''
    id = Field(Integer, primary_key=True, autoincrement=True)
    vendorId = Field(Integer)
    amount = Field(Float)
    returnTimestamp = Field(DateTime)
    isSettled = Field(Boolean)
    type = Field(Enum('REAL', 'VIRTUAL'), default = 'REAL', server_default='REAL')
    returnInventoryType = Field(Enum('GOOD', 'BAD'), default = 'GOOD', server_default='GOOD')
    currentSettlementType = Field(Enum('CREDIT_NOTE','REPLACEMENT','AGAINST_GRN'))
    latestSettlementDate = Field(DateTime)
    purchaseReturnType = Field(Enum('WRONG_GRN','ACTUAL_PR','REPLACEMENT'))
    reasonText = Field(String(1024))
    documentNumber = Field(String(1024))
    createdBy = Field(String(255))
    unsettledAmount = Field(Float)
    using_options(shortnames=True)
    using_table_options(mysql_engine="InnoDB")

    def __init__(self, vendorId, amount):
        '''
        Constructor
        '''
        self.vendorId = vendorId
        self.amount = amount
        self.returnTimestamp = datetime.datetime.now()
        self.isSettled = False
        
    def to_thrift_object(self):
        t_purchaseReturn = TPurchaseReturn()
        t_purchaseReturn.id = self.id
        t_purchaseReturn.vendorId = self.vendorId
        t_purchaseReturn.amount = self.amount
        t_purchaseReturn.returnTimestamp = to_java_date(self.returnTimestamp)
        t_purchaseReturn.isSettled = self.isSettled
        t_purchaseReturn.returnInventoryType = PurchaseReturnInventoryType._NAMES_TO_VALUES[self.returnInventoryType]
        if self.currentSettlementType:
            t_purchaseReturn.currentSettlementType = SettlementType._NAMES_TO_VALUES[self.currentSettlementType]
        if self.latestSettlementDate:
            t_purchaseReturn.latestSettlementDate = to_java_date(self.latestSettlementDate)
        if self.purchaseReturnType:
            t_purchaseReturn.purchaseReturnType = PrReasonType._NAMES_TO_VALUES[self.purchaseReturnType]
        if self.reasonText:
            t_purchaseReturn.reasonText = self.reasonText
        if self.documentNumber:
            t_purchaseReturn.documentNumber = self.documentNumber
        if self.createdBy:
            t_purchaseReturn.createdBy = self.createdBy
        if self.unsettledAmount:
            t_purchaseReturn.unsettledAmount = self.unsettledAmount
        return t_purchaseReturn