Subversion Repositories SmartDukaan

Rev

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

#
# Autogenerated by Thrift Compiler (0.7.0)
#
# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
#

from thrift.Thrift import *
import shop2020.thriftpy.generic.ttypes


from thrift.transport import TTransport
from thrift.protocol import TBinaryProtocol, TProtocol
try:
  from thrift.protocol import fastbinary
except:
  fastbinary = None


class ScanType:
  PURCHASE = 0
  SALE = 1
  SALE_RET = 2
  DOA_IN = 3
  DOA_OUT = 4
  PURCHASE_RETURN = 5
  SALE_RET_UNUSABLE = 6
  LOST_IN_TRANSIT = 7
  DOA_REPLACED = 8
  LOST_IN_WAREHOUSE = 9
  MARKED_USED = 10
  MARKED_BAD = 11
  MARKED_GOOD = 12
  WAREHOUSE_TRANSFER_IN = 13
  WAREHOUSE_TRANSFER_OUT = 14
  BAD_SALE = 15
  DOA_REJECTED = 16
  DOA_CLOSED_BY_CREDIT_NOTE = 17
  BAD_PURCHASE_RETURN = 18
  LOST_IN_WAREHOUSE_BAD = 19
  EMPTY_PRODUCT_RECEIVED = 20
  WRONG_PRODUCT_RECEIVED = 21

  _VALUES_TO_NAMES = {
    0: "PURCHASE",
    1: "SALE",
    2: "SALE_RET",
    3: "DOA_IN",
    4: "DOA_OUT",
    5: "PURCHASE_RETURN",
    6: "SALE_RET_UNUSABLE",
    7: "LOST_IN_TRANSIT",
    8: "DOA_REPLACED",
    9: "LOST_IN_WAREHOUSE",
    10: "MARKED_USED",
    11: "MARKED_BAD",
    12: "MARKED_GOOD",
    13: "WAREHOUSE_TRANSFER_IN",
    14: "WAREHOUSE_TRANSFER_OUT",
    15: "BAD_SALE",
    16: "DOA_REJECTED",
    17: "DOA_CLOSED_BY_CREDIT_NOTE",
    18: "BAD_PURCHASE_RETURN",
    19: "LOST_IN_WAREHOUSE_BAD",
    20: "EMPTY_PRODUCT_RECEIVED",
    21: "WRONG_PRODUCT_RECEIVED",
  }

  _NAMES_TO_VALUES = {
    "PURCHASE": 0,
    "SALE": 1,
    "SALE_RET": 2,
    "DOA_IN": 3,
    "DOA_OUT": 4,
    "PURCHASE_RETURN": 5,
    "SALE_RET_UNUSABLE": 6,
    "LOST_IN_TRANSIT": 7,
    "DOA_REPLACED": 8,
    "LOST_IN_WAREHOUSE": 9,
    "MARKED_USED": 10,
    "MARKED_BAD": 11,
    "MARKED_GOOD": 12,
    "WAREHOUSE_TRANSFER_IN": 13,
    "WAREHOUSE_TRANSFER_OUT": 14,
    "BAD_SALE": 15,
    "DOA_REJECTED": 16,
    "DOA_CLOSED_BY_CREDIT_NOTE": 17,
    "BAD_PURCHASE_RETURN": 18,
    "LOST_IN_WAREHOUSE_BAD": 19,
    "EMPTY_PRODUCT_RECEIVED": 20,
    "WRONG_PRODUCT_RECEIVED": 21,
  }

class TransferLotStatus:
  IN_TRANSIT = 1
  PARTIAL_TRANSFER = 2
  TRANSFER_COMPLETE = 3

  _VALUES_TO_NAMES = {
    1: "IN_TRANSIT",
    2: "PARTIAL_TRANSFER",
    3: "TRANSFER_COMPLETE",
  }

  _NAMES_TO_VALUES = {
    "IN_TRANSIT": 1,
    "PARTIAL_TRANSFER": 2,
    "TRANSFER_COMPLETE": 3,
  }

class TransferType:
  OURS_OURS = 1
  OURS_THIRDPARTY = 2

  _VALUES_TO_NAMES = {
    1: "OURS_OURS",
    2: "OURS_THIRDPARTY",
  }

  _NAMES_TO_VALUES = {
    "OURS_OURS": 1,
    "OURS_THIRDPARTY": 2,
  }


class InventoryItem:
  """
  Attributes:
   - id
   - itemId
   - itemNumber
   - serialNumber
   - initialQuantity
   - currentQuantity
   - purchaseId
   - purchaseReturnId
   - physicalWarehouseId
   - transferStatus
   - supplierId
   - unitPrice
   - currentWarehouseId
   - lastScanType
   - nlc
   - serialNumber2
   - firstScanned
   - activated
   - created
  """

  thrift_spec = (
    None, # 0
    (1, TType.I64, 'id', None, None, ), # 1
    (2, TType.I64, 'itemId', None, None, ), # 2
    (3, TType.STRING, 'itemNumber', None, None, ), # 3
    (4, TType.STRING, 'serialNumber', None, None, ), # 4
    (5, TType.I64, 'initialQuantity', None, None, ), # 5
    (6, TType.I64, 'currentQuantity', None, None, ), # 6
    (7, TType.I64, 'purchaseId', None, None, ), # 7
    (8, TType.I64, 'purchaseReturnId', None, None, ), # 8
    (9, TType.I64, 'physicalWarehouseId', None, None, ), # 9
    (10, TType.I32, 'transferStatus', None, None, ), # 10
    (11, TType.I64, 'supplierId', None, None, ), # 11
    (12, TType.DOUBLE, 'unitPrice', None, None, ), # 12
    (13, TType.I64, 'currentWarehouseId', None, None, ), # 13
    (14, TType.I32, 'lastScanType', None, None, ), # 14
    (15, TType.DOUBLE, 'nlc', None, None, ), # 15
    (16, TType.STRING, 'serialNumber2', None, None, ), # 16
    (17, TType.I64, 'firstScanned', None, None, ), # 17
    (18, TType.I64, 'activated', None, None, ), # 18
    (19, TType.I64, 'created', None, None, ), # 19
  )

  def __init__(self, id=None, itemId=None, itemNumber=None, serialNumber=None, initialQuantity=None, currentQuantity=None, purchaseId=None, purchaseReturnId=None, physicalWarehouseId=None, transferStatus=None, supplierId=None, unitPrice=None, currentWarehouseId=None, lastScanType=None, nlc=None, serialNumber2=None, firstScanned=None, activated=None, created=None,):
    self.id = id
    self.itemId = itemId
    self.itemNumber = itemNumber
    self.serialNumber = serialNumber
    self.initialQuantity = initialQuantity
    self.currentQuantity = currentQuantity
    self.purchaseId = purchaseId
    self.purchaseReturnId = purchaseReturnId
    self.physicalWarehouseId = physicalWarehouseId
    self.transferStatus = transferStatus
    self.supplierId = supplierId
    self.unitPrice = unitPrice
    self.currentWarehouseId = currentWarehouseId
    self.lastScanType = lastScanType
    self.nlc = nlc
    self.serialNumber2 = serialNumber2
    self.firstScanned = firstScanned
    self.activated = activated
    self.created = created

  def read(self, iprot):
    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
      return
    iprot.readStructBegin()
    while True:
      (fname, ftype, fid) = iprot.readFieldBegin()
      if ftype == TType.STOP:
        break
      if fid == 1:
        if ftype == TType.I64:
          self.id = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 2:
        if ftype == TType.I64:
          self.itemId = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 3:
        if ftype == TType.STRING:
          self.itemNumber = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 4:
        if ftype == TType.STRING:
          self.serialNumber = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 5:
        if ftype == TType.I64:
          self.initialQuantity = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 6:
        if ftype == TType.I64:
          self.currentQuantity = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 7:
        if ftype == TType.I64:
          self.purchaseId = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 8:
        if ftype == TType.I64:
          self.purchaseReturnId = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 9:
        if ftype == TType.I64:
          self.physicalWarehouseId = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 10:
        if ftype == TType.I32:
          self.transferStatus = iprot.readI32();
        else:
          iprot.skip(ftype)
      elif fid == 11:
        if ftype == TType.I64:
          self.supplierId = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 12:
        if ftype == TType.DOUBLE:
          self.unitPrice = iprot.readDouble();
        else:
          iprot.skip(ftype)
      elif fid == 13:
        if ftype == TType.I64:
          self.currentWarehouseId = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 14:
        if ftype == TType.I32:
          self.lastScanType = iprot.readI32();
        else:
          iprot.skip(ftype)
      elif fid == 15:
        if ftype == TType.DOUBLE:
          self.nlc = iprot.readDouble();
        else:
          iprot.skip(ftype)
      elif fid == 16:
        if ftype == TType.STRING:
          self.serialNumber2 = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 17:
        if ftype == TType.I64:
          self.firstScanned = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 18:
        if ftype == TType.I64:
          self.activated = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 19:
        if ftype == TType.I64:
          self.created = iprot.readI64();
        else:
          iprot.skip(ftype)
      else:
        iprot.skip(ftype)
      iprot.readFieldEnd()
    iprot.readStructEnd()

  def write(self, oprot):
    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
      return
    oprot.writeStructBegin('InventoryItem')
    if self.id is not None:
      oprot.writeFieldBegin('id', TType.I64, 1)
      oprot.writeI64(self.id)
      oprot.writeFieldEnd()
    if self.itemId is not None:
      oprot.writeFieldBegin('itemId', TType.I64, 2)
      oprot.writeI64(self.itemId)
      oprot.writeFieldEnd()
    if self.itemNumber is not None:
      oprot.writeFieldBegin('itemNumber', TType.STRING, 3)
      oprot.writeString(self.itemNumber)
      oprot.writeFieldEnd()
    if self.serialNumber is not None:
      oprot.writeFieldBegin('serialNumber', TType.STRING, 4)
      oprot.writeString(self.serialNumber)
      oprot.writeFieldEnd()
    if self.initialQuantity is not None:
      oprot.writeFieldBegin('initialQuantity', TType.I64, 5)
      oprot.writeI64(self.initialQuantity)
      oprot.writeFieldEnd()
    if self.currentQuantity is not None:
      oprot.writeFieldBegin('currentQuantity', TType.I64, 6)
      oprot.writeI64(self.currentQuantity)
      oprot.writeFieldEnd()
    if self.purchaseId is not None:
      oprot.writeFieldBegin('purchaseId', TType.I64, 7)
      oprot.writeI64(self.purchaseId)
      oprot.writeFieldEnd()
    if self.purchaseReturnId is not None:
      oprot.writeFieldBegin('purchaseReturnId', TType.I64, 8)
      oprot.writeI64(self.purchaseReturnId)
      oprot.writeFieldEnd()
    if self.physicalWarehouseId is not None:
      oprot.writeFieldBegin('physicalWarehouseId', TType.I64, 9)
      oprot.writeI64(self.physicalWarehouseId)
      oprot.writeFieldEnd()
    if self.transferStatus is not None:
      oprot.writeFieldBegin('transferStatus', TType.I32, 10)
      oprot.writeI32(self.transferStatus)
      oprot.writeFieldEnd()
    if self.supplierId is not None:
      oprot.writeFieldBegin('supplierId', TType.I64, 11)
      oprot.writeI64(self.supplierId)
      oprot.writeFieldEnd()
    if self.unitPrice is not None:
      oprot.writeFieldBegin('unitPrice', TType.DOUBLE, 12)
      oprot.writeDouble(self.unitPrice)
      oprot.writeFieldEnd()
    if self.currentWarehouseId is not None:
      oprot.writeFieldBegin('currentWarehouseId', TType.I64, 13)
      oprot.writeI64(self.currentWarehouseId)
      oprot.writeFieldEnd()
    if self.lastScanType is not None:
      oprot.writeFieldBegin('lastScanType', TType.I32, 14)
      oprot.writeI32(self.lastScanType)
      oprot.writeFieldEnd()
    if self.nlc is not None:
      oprot.writeFieldBegin('nlc', TType.DOUBLE, 15)
      oprot.writeDouble(self.nlc)
      oprot.writeFieldEnd()
    if self.serialNumber2 is not None:
      oprot.writeFieldBegin('serialNumber2', TType.STRING, 16)
      oprot.writeString(self.serialNumber2)
      oprot.writeFieldEnd()
    if self.firstScanned is not None:
      oprot.writeFieldBegin('firstScanned', TType.I64, 17)
      oprot.writeI64(self.firstScanned)
      oprot.writeFieldEnd()
    if self.activated is not None:
      oprot.writeFieldBegin('activated', TType.I64, 18)
      oprot.writeI64(self.activated)
      oprot.writeFieldEnd()
    if self.created is not None:
      oprot.writeFieldBegin('created', TType.I64, 19)
      oprot.writeI64(self.created)
      oprot.writeFieldEnd()
    oprot.writeFieldStop()
    oprot.writeStructEnd()

  def validate(self):
    return


  def __repr__(self):
    L = ['%s=%r' % (key, value)
      for key, value in self.__dict__.iteritems()]
    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

  def __eq__(self, other):
    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

  def __ne__(self, other):
    return not (self == other)

class Scan:
  """
  Attributes:
   - id
   - inventoryItemId
   - quantity
   - orderId
   - warehouseId
   - type
   - scannedAt
   - transferLotId
   - remarks
  """

  thrift_spec = (
    None, # 0
    (1, TType.I64, 'id', None, None, ), # 1
    (2, TType.I64, 'inventoryItemId', None, None, ), # 2
    (3, TType.I64, 'quantity', None, None, ), # 3
    (4, TType.I64, 'orderId', None, None, ), # 4
    (5, TType.I64, 'warehouseId', None, None, ), # 5
    (6, TType.I32, 'type', None, None, ), # 6
    (7, TType.I64, 'scannedAt', None, None, ), # 7
    (8, TType.I64, 'transferLotId', None, None, ), # 8
    (9, TType.STRING, 'remarks', None, None, ), # 9
  )

  def __init__(self, id=None, inventoryItemId=None, quantity=None, orderId=None, warehouseId=None, type=None, scannedAt=None, transferLotId=None, remarks=None,):
    self.id = id
    self.inventoryItemId = inventoryItemId
    self.quantity = quantity
    self.orderId = orderId
    self.warehouseId = warehouseId
    self.type = type
    self.scannedAt = scannedAt
    self.transferLotId = transferLotId
    self.remarks = remarks

  def read(self, iprot):
    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
      return
    iprot.readStructBegin()
    while True:
      (fname, ftype, fid) = iprot.readFieldBegin()
      if ftype == TType.STOP:
        break
      if fid == 1:
        if ftype == TType.I64:
          self.id = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 2:
        if ftype == TType.I64:
          self.inventoryItemId = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 3:
        if ftype == TType.I64:
          self.quantity = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 4:
        if ftype == TType.I64:
          self.orderId = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 5:
        if ftype == TType.I64:
          self.warehouseId = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 6:
        if ftype == TType.I32:
          self.type = iprot.readI32();
        else:
          iprot.skip(ftype)
      elif fid == 7:
        if ftype == TType.I64:
          self.scannedAt = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 8:
        if ftype == TType.I64:
          self.transferLotId = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 9:
        if ftype == TType.STRING:
          self.remarks = iprot.readString();
        else:
          iprot.skip(ftype)
      else:
        iprot.skip(ftype)
      iprot.readFieldEnd()
    iprot.readStructEnd()

  def write(self, oprot):
    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
      return
    oprot.writeStructBegin('Scan')
    if self.id is not None:
      oprot.writeFieldBegin('id', TType.I64, 1)
      oprot.writeI64(self.id)
      oprot.writeFieldEnd()
    if self.inventoryItemId is not None:
      oprot.writeFieldBegin('inventoryItemId', TType.I64, 2)
      oprot.writeI64(self.inventoryItemId)
      oprot.writeFieldEnd()
    if self.quantity is not None:
      oprot.writeFieldBegin('quantity', TType.I64, 3)
      oprot.writeI64(self.quantity)
      oprot.writeFieldEnd()
    if self.orderId is not None:
      oprot.writeFieldBegin('orderId', TType.I64, 4)
      oprot.writeI64(self.orderId)
      oprot.writeFieldEnd()
    if self.warehouseId is not None:
      oprot.writeFieldBegin('warehouseId', TType.I64, 5)
      oprot.writeI64(self.warehouseId)
      oprot.writeFieldEnd()
    if self.type is not None:
      oprot.writeFieldBegin('type', TType.I32, 6)
      oprot.writeI32(self.type)
      oprot.writeFieldEnd()
    if self.scannedAt is not None:
      oprot.writeFieldBegin('scannedAt', TType.I64, 7)
      oprot.writeI64(self.scannedAt)
      oprot.writeFieldEnd()
    if self.transferLotId is not None:
      oprot.writeFieldBegin('transferLotId', TType.I64, 8)
      oprot.writeI64(self.transferLotId)
      oprot.writeFieldEnd()
    if self.remarks is not None:
      oprot.writeFieldBegin('remarks', TType.STRING, 9)
      oprot.writeString(self.remarks)
      oprot.writeFieldEnd()
    oprot.writeFieldStop()
    oprot.writeStructEnd()

  def validate(self):
    return


  def __repr__(self):
    L = ['%s=%r' % (key, value)
      for key, value in self.__dict__.iteritems()]
    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

  def __eq__(self, other):
    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

  def __ne__(self, other):
    return not (self == other)

class DetailedPurchaseScan:
  """
  Attributes:
   - purchaseOrderId
   - poCreatedAt
   - supplierName
   - invoiceNumbers
   - receivedBy
   - itemId
   - brand
   - modelName
   - modelNumber
   - color
   - unitPrice
   - quantity
   - purchaseId
   - purchasedAt
   - nlc
   - warehouseId
   - taxType
   - invoiceDate
   - mrp
   - purchaseComments
   - sgstRate
   - cgstRate
   - igstRate
  """

  thrift_spec = (
    None, # 0
    (1, TType.I64, 'purchaseOrderId', None, None, ), # 1
    (2, TType.I64, 'poCreatedAt', None, None, ), # 2
    (3, TType.STRING, 'supplierName', None, None, ), # 3
    (4, TType.STRING, 'invoiceNumbers', None, None, ), # 4
    (5, TType.STRING, 'receivedBy', None, None, ), # 5
    (6, TType.I64, 'itemId', None, None, ), # 6
    (7, TType.STRING, 'brand', None, None, ), # 7
    (8, TType.STRING, 'modelName', None, None, ), # 8
    (9, TType.STRING, 'modelNumber', None, None, ), # 9
    (10, TType.STRING, 'color', None, None, ), # 10
    (11, TType.DOUBLE, 'unitPrice', None, None, ), # 11
    (12, TType.I64, 'quantity', None, None, ), # 12
    (13, TType.I64, 'purchaseId', None, None, ), # 13
    (14, TType.I64, 'purchasedAt', None, None, ), # 14
    (15, TType.DOUBLE, 'nlc', None, None, ), # 15
    (16, TType.I64, 'warehouseId', None, None, ), # 16
    (17, TType.I64, 'taxType', None, None, ), # 17
    (18, TType.I64, 'invoiceDate', None, None, ), # 18
    (19, TType.DOUBLE, 'mrp', None, None, ), # 19
    (20, TType.STRING, 'purchaseComments', None, None, ), # 20
    (21, TType.DOUBLE, 'sgstRate', None, None, ), # 21
    (22, TType.DOUBLE, 'cgstRate', None, None, ), # 22
    (23, TType.DOUBLE, 'igstRate', None, None, ), # 23
  )

  def __init__(self, purchaseOrderId=None, poCreatedAt=None, supplierName=None, invoiceNumbers=None, receivedBy=None, itemId=None, brand=None, modelName=None, modelNumber=None, color=None, unitPrice=None, quantity=None, purchaseId=None, purchasedAt=None, nlc=None, warehouseId=None, taxType=None, invoiceDate=None, mrp=None, purchaseComments=None, sgstRate=None, cgstRate=None, igstRate=None,):
    self.purchaseOrderId = purchaseOrderId
    self.poCreatedAt = poCreatedAt
    self.supplierName = supplierName
    self.invoiceNumbers = invoiceNumbers
    self.receivedBy = receivedBy
    self.itemId = itemId
    self.brand = brand
    self.modelName = modelName
    self.modelNumber = modelNumber
    self.color = color
    self.unitPrice = unitPrice
    self.quantity = quantity
    self.purchaseId = purchaseId
    self.purchasedAt = purchasedAt
    self.nlc = nlc
    self.warehouseId = warehouseId
    self.taxType = taxType
    self.invoiceDate = invoiceDate
    self.mrp = mrp
    self.purchaseComments = purchaseComments
    self.sgstRate = sgstRate
    self.cgstRate = cgstRate
    self.igstRate = igstRate

  def read(self, iprot):
    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
      return
    iprot.readStructBegin()
    while True:
      (fname, ftype, fid) = iprot.readFieldBegin()
      if ftype == TType.STOP:
        break
      if fid == 1:
        if ftype == TType.I64:
          self.purchaseOrderId = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 2:
        if ftype == TType.I64:
          self.poCreatedAt = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 3:
        if ftype == TType.STRING:
          self.supplierName = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 4:
        if ftype == TType.STRING:
          self.invoiceNumbers = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 5:
        if ftype == TType.STRING:
          self.receivedBy = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 6:
        if ftype == TType.I64:
          self.itemId = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 7:
        if ftype == TType.STRING:
          self.brand = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 8:
        if ftype == TType.STRING:
          self.modelName = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 9:
        if ftype == TType.STRING:
          self.modelNumber = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 10:
        if ftype == TType.STRING:
          self.color = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 11:
        if ftype == TType.DOUBLE:
          self.unitPrice = iprot.readDouble();
        else:
          iprot.skip(ftype)
      elif fid == 12:
        if ftype == TType.I64:
          self.quantity = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 13:
        if ftype == TType.I64:
          self.purchaseId = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 14:
        if ftype == TType.I64:
          self.purchasedAt = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 15:
        if ftype == TType.DOUBLE:
          self.nlc = iprot.readDouble();
        else:
          iprot.skip(ftype)
      elif fid == 16:
        if ftype == TType.I64:
          self.warehouseId = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 17:
        if ftype == TType.I64:
          self.taxType = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 18:
        if ftype == TType.I64:
          self.invoiceDate = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 19:
        if ftype == TType.DOUBLE:
          self.mrp = iprot.readDouble();
        else:
          iprot.skip(ftype)
      elif fid == 20:
        if ftype == TType.STRING:
          self.purchaseComments = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 21:
        if ftype == TType.DOUBLE:
          self.sgstRate = iprot.readDouble();
        else:
          iprot.skip(ftype)
      elif fid == 22:
        if ftype == TType.DOUBLE:
          self.cgstRate = iprot.readDouble();
        else:
          iprot.skip(ftype)
      elif fid == 23:
        if ftype == TType.DOUBLE:
          self.igstRate = iprot.readDouble();
        else:
          iprot.skip(ftype)
      else:
        iprot.skip(ftype)
      iprot.readFieldEnd()
    iprot.readStructEnd()

  def write(self, oprot):
    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
      return
    oprot.writeStructBegin('DetailedPurchaseScan')
    if self.purchaseOrderId is not None:
      oprot.writeFieldBegin('purchaseOrderId', TType.I64, 1)
      oprot.writeI64(self.purchaseOrderId)
      oprot.writeFieldEnd()
    if self.poCreatedAt is not None:
      oprot.writeFieldBegin('poCreatedAt', TType.I64, 2)
      oprot.writeI64(self.poCreatedAt)
      oprot.writeFieldEnd()
    if self.supplierName is not None:
      oprot.writeFieldBegin('supplierName', TType.STRING, 3)
      oprot.writeString(self.supplierName)
      oprot.writeFieldEnd()
    if self.invoiceNumbers is not None:
      oprot.writeFieldBegin('invoiceNumbers', TType.STRING, 4)
      oprot.writeString(self.invoiceNumbers)
      oprot.writeFieldEnd()
    if self.receivedBy is not None:
      oprot.writeFieldBegin('receivedBy', TType.STRING, 5)
      oprot.writeString(self.receivedBy)
      oprot.writeFieldEnd()
    if self.itemId is not None:
      oprot.writeFieldBegin('itemId', TType.I64, 6)
      oprot.writeI64(self.itemId)
      oprot.writeFieldEnd()
    if self.brand is not None:
      oprot.writeFieldBegin('brand', TType.STRING, 7)
      oprot.writeString(self.brand)
      oprot.writeFieldEnd()
    if self.modelName is not None:
      oprot.writeFieldBegin('modelName', TType.STRING, 8)
      oprot.writeString(self.modelName)
      oprot.writeFieldEnd()
    if self.modelNumber is not None:
      oprot.writeFieldBegin('modelNumber', TType.STRING, 9)
      oprot.writeString(self.modelNumber)
      oprot.writeFieldEnd()
    if self.color is not None:
      oprot.writeFieldBegin('color', TType.STRING, 10)
      oprot.writeString(self.color)
      oprot.writeFieldEnd()
    if self.unitPrice is not None:
      oprot.writeFieldBegin('unitPrice', TType.DOUBLE, 11)
      oprot.writeDouble(self.unitPrice)
      oprot.writeFieldEnd()
    if self.quantity is not None:
      oprot.writeFieldBegin('quantity', TType.I64, 12)
      oprot.writeI64(self.quantity)
      oprot.writeFieldEnd()
    if self.purchaseId is not None:
      oprot.writeFieldBegin('purchaseId', TType.I64, 13)
      oprot.writeI64(self.purchaseId)
      oprot.writeFieldEnd()
    if self.purchasedAt is not None:
      oprot.writeFieldBegin('purchasedAt', TType.I64, 14)
      oprot.writeI64(self.purchasedAt)
      oprot.writeFieldEnd()
    if self.nlc is not None:
      oprot.writeFieldBegin('nlc', TType.DOUBLE, 15)
      oprot.writeDouble(self.nlc)
      oprot.writeFieldEnd()
    if self.warehouseId is not None:
      oprot.writeFieldBegin('warehouseId', TType.I64, 16)
      oprot.writeI64(self.warehouseId)
      oprot.writeFieldEnd()
    if self.taxType is not None:
      oprot.writeFieldBegin('taxType', TType.I64, 17)
      oprot.writeI64(self.taxType)
      oprot.writeFieldEnd()
    if self.invoiceDate is not None:
      oprot.writeFieldBegin('invoiceDate', TType.I64, 18)
      oprot.writeI64(self.invoiceDate)
      oprot.writeFieldEnd()
    if self.mrp is not None:
      oprot.writeFieldBegin('mrp', TType.DOUBLE, 19)
      oprot.writeDouble(self.mrp)
      oprot.writeFieldEnd()
    if self.purchaseComments is not None:
      oprot.writeFieldBegin('purchaseComments', TType.STRING, 20)
      oprot.writeString(self.purchaseComments)
      oprot.writeFieldEnd()
    if self.sgstRate is not None:
      oprot.writeFieldBegin('sgstRate', TType.DOUBLE, 21)
      oprot.writeDouble(self.sgstRate)
      oprot.writeFieldEnd()
    if self.cgstRate is not None:
      oprot.writeFieldBegin('cgstRate', TType.DOUBLE, 22)
      oprot.writeDouble(self.cgstRate)
      oprot.writeFieldEnd()
    if self.igstRate is not None:
      oprot.writeFieldBegin('igstRate', TType.DOUBLE, 23)
      oprot.writeDouble(self.igstRate)
      oprot.writeFieldEnd()
    oprot.writeFieldStop()
    oprot.writeStructEnd()

  def validate(self):
    return


  def __repr__(self):
    L = ['%s=%r' % (key, value)
      for key, value in self.__dict__.iteritems()]
    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

  def __eq__(self, other):
    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

  def __ne__(self, other):
    return not (self == other)

class InvoiceScan:
  """
  Attributes:
   - invoiceNumber
   - numItems
   - supplierName
   - date
   - scannedQuantity
  """

  thrift_spec = (
    None, # 0
    (1, TType.STRING, 'invoiceNumber', None, None, ), # 1
    (2, TType.I64, 'numItems', None, None, ), # 2
    (3, TType.STRING, 'supplierName', None, None, ), # 3
    (4, TType.I64, 'date', None, None, ), # 4
    (5, TType.I64, 'scannedQuantity', None, None, ), # 5
  )

  def __init__(self, invoiceNumber=None, numItems=None, supplierName=None, date=None, scannedQuantity=None,):
    self.invoiceNumber = invoiceNumber
    self.numItems = numItems
    self.supplierName = supplierName
    self.date = date
    self.scannedQuantity = scannedQuantity

  def read(self, iprot):
    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
      return
    iprot.readStructBegin()
    while True:
      (fname, ftype, fid) = iprot.readFieldBegin()
      if ftype == TType.STOP:
        break
      if fid == 1:
        if ftype == TType.STRING:
          self.invoiceNumber = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 2:
        if ftype == TType.I64:
          self.numItems = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 3:
        if ftype == TType.STRING:
          self.supplierName = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 4:
        if ftype == TType.I64:
          self.date = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 5:
        if ftype == TType.I64:
          self.scannedQuantity = iprot.readI64();
        else:
          iprot.skip(ftype)
      else:
        iprot.skip(ftype)
      iprot.readFieldEnd()
    iprot.readStructEnd()

  def write(self, oprot):
    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
      return
    oprot.writeStructBegin('InvoiceScan')
    if self.invoiceNumber is not None:
      oprot.writeFieldBegin('invoiceNumber', TType.STRING, 1)
      oprot.writeString(self.invoiceNumber)
      oprot.writeFieldEnd()
    if self.numItems is not None:
      oprot.writeFieldBegin('numItems', TType.I64, 2)
      oprot.writeI64(self.numItems)
      oprot.writeFieldEnd()
    if self.supplierName is not None:
      oprot.writeFieldBegin('supplierName', TType.STRING, 3)
      oprot.writeString(self.supplierName)
      oprot.writeFieldEnd()
    if self.date is not None:
      oprot.writeFieldBegin('date', TType.I64, 4)
      oprot.writeI64(self.date)
      oprot.writeFieldEnd()
    if self.scannedQuantity is not None:
      oprot.writeFieldBegin('scannedQuantity', TType.I64, 5)
      oprot.writeI64(self.scannedQuantity)
      oprot.writeFieldEnd()
    oprot.writeFieldStop()
    oprot.writeStructEnd()

  def validate(self):
    return


  def __repr__(self):
    L = ['%s=%r' % (key, value)
      for key, value in self.__dict__.iteritems()]
    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

  def __eq__(self, other):
    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

  def __ne__(self, other):
    return not (self == other)

class InTransitInventory:
  """
  Attributes:
   - itemId
   - brand
   - modelName
   - modelNumber
   - color
   - originWarehouseId
   - destinationWarehouseId
   - quantity
   - transferDate
  """

  thrift_spec = (
    None, # 0
    (1, TType.I64, 'itemId', None, None, ), # 1
    (2, TType.STRING, 'brand', None, None, ), # 2
    (3, TType.STRING, 'modelName', None, None, ), # 3
    (4, TType.STRING, 'modelNumber', None, None, ), # 4
    (5, TType.STRING, 'color', None, None, ), # 5
    (6, TType.I64, 'originWarehouseId', None, None, ), # 6
    (7, TType.I64, 'destinationWarehouseId', None, None, ), # 7
    (8, TType.I64, 'quantity', None, None, ), # 8
    (9, TType.I64, 'transferDate', None, None, ), # 9
  )

  def __init__(self, itemId=None, brand=None, modelName=None, modelNumber=None, color=None, originWarehouseId=None, destinationWarehouseId=None, quantity=None, transferDate=None,):
    self.itemId = itemId
    self.brand = brand
    self.modelName = modelName
    self.modelNumber = modelNumber
    self.color = color
    self.originWarehouseId = originWarehouseId
    self.destinationWarehouseId = destinationWarehouseId
    self.quantity = quantity
    self.transferDate = transferDate

  def read(self, iprot):
    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
      return
    iprot.readStructBegin()
    while True:
      (fname, ftype, fid) = iprot.readFieldBegin()
      if ftype == TType.STOP:
        break
      if fid == 1:
        if ftype == TType.I64:
          self.itemId = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 2:
        if ftype == TType.STRING:
          self.brand = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 3:
        if ftype == TType.STRING:
          self.modelName = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 4:
        if ftype == TType.STRING:
          self.modelNumber = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 5:
        if ftype == TType.STRING:
          self.color = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 6:
        if ftype == TType.I64:
          self.originWarehouseId = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 7:
        if ftype == TType.I64:
          self.destinationWarehouseId = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 8:
        if ftype == TType.I64:
          self.quantity = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 9:
        if ftype == TType.I64:
          self.transferDate = iprot.readI64();
        else:
          iprot.skip(ftype)
      else:
        iprot.skip(ftype)
      iprot.readFieldEnd()
    iprot.readStructEnd()

  def write(self, oprot):
    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
      return
    oprot.writeStructBegin('InTransitInventory')
    if self.itemId is not None:
      oprot.writeFieldBegin('itemId', TType.I64, 1)
      oprot.writeI64(self.itemId)
      oprot.writeFieldEnd()
    if self.brand is not None:
      oprot.writeFieldBegin('brand', TType.STRING, 2)
      oprot.writeString(self.brand)
      oprot.writeFieldEnd()
    if self.modelName is not None:
      oprot.writeFieldBegin('modelName', TType.STRING, 3)
      oprot.writeString(self.modelName)
      oprot.writeFieldEnd()
    if self.modelNumber is not None:
      oprot.writeFieldBegin('modelNumber', TType.STRING, 4)
      oprot.writeString(self.modelNumber)
      oprot.writeFieldEnd()
    if self.color is not None:
      oprot.writeFieldBegin('color', TType.STRING, 5)
      oprot.writeString(self.color)
      oprot.writeFieldEnd()
    if self.originWarehouseId is not None:
      oprot.writeFieldBegin('originWarehouseId', TType.I64, 6)
      oprot.writeI64(self.originWarehouseId)
      oprot.writeFieldEnd()
    if self.destinationWarehouseId is not None:
      oprot.writeFieldBegin('destinationWarehouseId', TType.I64, 7)
      oprot.writeI64(self.destinationWarehouseId)
      oprot.writeFieldEnd()
    if self.quantity is not None:
      oprot.writeFieldBegin('quantity', TType.I64, 8)
      oprot.writeI64(self.quantity)
      oprot.writeFieldEnd()
    if self.transferDate is not None:
      oprot.writeFieldBegin('transferDate', TType.I64, 9)
      oprot.writeI64(self.transferDate)
      oprot.writeFieldEnd()
    oprot.writeFieldStop()
    oprot.writeStructEnd()

  def validate(self):
    return


  def __repr__(self):
    L = ['%s=%r' % (key, value)
      for key, value in self.__dict__.iteritems()]
    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

  def __eq__(self, other):
    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

  def __ne__(self, other):
    return not (self == other)

class InventoryAvailability:
  """
  Attributes:
   - itemId
   - brand
   - modelName
   - modelNumber
   - color
   - quantity
  """

  thrift_spec = (
    None, # 0
    (1, TType.I64, 'itemId', None, None, ), # 1
    (2, TType.STRING, 'brand', None, None, ), # 2
    (3, TType.STRING, 'modelName', None, None, ), # 3
    (4, TType.STRING, 'modelNumber', None, None, ), # 4
    (5, TType.STRING, 'color', None, None, ), # 5
    (6, TType.I64, 'quantity', None, None, ), # 6
  )

  def __init__(self, itemId=None, brand=None, modelName=None, modelNumber=None, color=None, quantity=None,):
    self.itemId = itemId
    self.brand = brand
    self.modelName = modelName
    self.modelNumber = modelNumber
    self.color = color
    self.quantity = quantity

  def read(self, iprot):
    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
      return
    iprot.readStructBegin()
    while True:
      (fname, ftype, fid) = iprot.readFieldBegin()
      if ftype == TType.STOP:
        break
      if fid == 1:
        if ftype == TType.I64:
          self.itemId = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 2:
        if ftype == TType.STRING:
          self.brand = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 3:
        if ftype == TType.STRING:
          self.modelName = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 4:
        if ftype == TType.STRING:
          self.modelNumber = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 5:
        if ftype == TType.STRING:
          self.color = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 6:
        if ftype == TType.I64:
          self.quantity = iprot.readI64();
        else:
          iprot.skip(ftype)
      else:
        iprot.skip(ftype)
      iprot.readFieldEnd()
    iprot.readStructEnd()

  def write(self, oprot):
    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
      return
    oprot.writeStructBegin('InventoryAvailability')
    if self.itemId is not None:
      oprot.writeFieldBegin('itemId', TType.I64, 1)
      oprot.writeI64(self.itemId)
      oprot.writeFieldEnd()
    if self.brand is not None:
      oprot.writeFieldBegin('brand', TType.STRING, 2)
      oprot.writeString(self.brand)
      oprot.writeFieldEnd()
    if self.modelName is not None:
      oprot.writeFieldBegin('modelName', TType.STRING, 3)
      oprot.writeString(self.modelName)
      oprot.writeFieldEnd()
    if self.modelNumber is not None:
      oprot.writeFieldBegin('modelNumber', TType.STRING, 4)
      oprot.writeString(self.modelNumber)
      oprot.writeFieldEnd()
    if self.color is not None:
      oprot.writeFieldBegin('color', TType.STRING, 5)
      oprot.writeString(self.color)
      oprot.writeFieldEnd()
    if self.quantity is not None:
      oprot.writeFieldBegin('quantity', TType.I64, 6)
      oprot.writeI64(self.quantity)
      oprot.writeFieldEnd()
    oprot.writeFieldStop()
    oprot.writeStructEnd()

  def validate(self):
    return


  def __repr__(self):
    L = ['%s=%r' % (key, value)
      for key, value in self.__dict__.iteritems()]
    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

  def __eq__(self, other):
    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

  def __ne__(self, other):
    return not (self == other)

class InventoryMovement:
  """
  Attributes:
   - itemId
   - brand
   - modelName
   - modelNumber
   - color
   - type
   - quantity
  """

  thrift_spec = (
    None, # 0
    (1, TType.I64, 'itemId', None, None, ), # 1
    (2, TType.STRING, 'brand', None, None, ), # 2
    (3, TType.STRING, 'modelName', None, None, ), # 3
    (4, TType.STRING, 'modelNumber', None, None, ), # 4
    (5, TType.STRING, 'color', None, None, ), # 5
    (6, TType.I32, 'type', None, None, ), # 6
    (7, TType.I64, 'quantity', None, None, ), # 7
  )

  def __init__(self, itemId=None, brand=None, modelName=None, modelNumber=None, color=None, type=None, quantity=None,):
    self.itemId = itemId
    self.brand = brand
    self.modelName = modelName
    self.modelNumber = modelNumber
    self.color = color
    self.type = type
    self.quantity = quantity

  def read(self, iprot):
    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
      return
    iprot.readStructBegin()
    while True:
      (fname, ftype, fid) = iprot.readFieldBegin()
      if ftype == TType.STOP:
        break
      if fid == 1:
        if ftype == TType.I64:
          self.itemId = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 2:
        if ftype == TType.STRING:
          self.brand = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 3:
        if ftype == TType.STRING:
          self.modelName = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 4:
        if ftype == TType.STRING:
          self.modelNumber = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 5:
        if ftype == TType.STRING:
          self.color = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 6:
        if ftype == TType.I32:
          self.type = iprot.readI32();
        else:
          iprot.skip(ftype)
      elif fid == 7:
        if ftype == TType.I64:
          self.quantity = iprot.readI64();
        else:
          iprot.skip(ftype)
      else:
        iprot.skip(ftype)
      iprot.readFieldEnd()
    iprot.readStructEnd()

  def write(self, oprot):
    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
      return
    oprot.writeStructBegin('InventoryMovement')
    if self.itemId is not None:
      oprot.writeFieldBegin('itemId', TType.I64, 1)
      oprot.writeI64(self.itemId)
      oprot.writeFieldEnd()
    if self.brand is not None:
      oprot.writeFieldBegin('brand', TType.STRING, 2)
      oprot.writeString(self.brand)
      oprot.writeFieldEnd()
    if self.modelName is not None:
      oprot.writeFieldBegin('modelName', TType.STRING, 3)
      oprot.writeString(self.modelName)
      oprot.writeFieldEnd()
    if self.modelNumber is not None:
      oprot.writeFieldBegin('modelNumber', TType.STRING, 4)
      oprot.writeString(self.modelNumber)
      oprot.writeFieldEnd()
    if self.color is not None:
      oprot.writeFieldBegin('color', TType.STRING, 5)
      oprot.writeString(self.color)
      oprot.writeFieldEnd()
    if self.type is not None:
      oprot.writeFieldBegin('type', TType.I32, 6)
      oprot.writeI32(self.type)
      oprot.writeFieldEnd()
    if self.quantity is not None:
      oprot.writeFieldBegin('quantity', TType.I64, 7)
      oprot.writeI64(self.quantity)
      oprot.writeFieldEnd()
    oprot.writeFieldStop()
    oprot.writeStructEnd()

  def validate(self):
    return


  def __repr__(self):
    L = ['%s=%r' % (key, value)
      for key, value in self.__dict__.iteritems()]
    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

  def __eq__(self, other):
    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

  def __ne__(self, other):
    return not (self == other)

class InventoryAge:
  """
  Attributes:
   - itemId
   - brand
   - modelName
   - modelNumber
   - color
   - freshCount
   - oneToTwoCount
   - TwoToThreeCount
   - ThreeToFourCount
   - FourPlusCount
   - threeMonthPlusCount
   - sixMonthPlusCount
   - zeroToThreeMonthCount
   - threeToSixMonthCount
   - sixToTwelveMonthCount
   - twelveMonthsPlusCount
   - ZeroPlusCount
   - OnePlusCount
   - ZeroPlusCost
   - OnePlusCost
   - category
  """

  thrift_spec = (
    None, # 0
    (1, TType.I64, 'itemId', None, None, ), # 1
    (2, TType.STRING, 'brand', None, None, ), # 2
    (3, TType.STRING, 'modelName', None, None, ), # 3
    (4, TType.STRING, 'modelNumber', None, None, ), # 4
    (5, TType.STRING, 'color', None, None, ), # 5
    (6, TType.I64, 'freshCount', None, None, ), # 6
    (7, TType.I64, 'oneToTwoCount', None, None, ), # 7
    (8, TType.I64, 'TwoToThreeCount', None, None, ), # 8
    (9, TType.I64, 'ThreeToFourCount', None, None, ), # 9
    (10, TType.I64, 'FourPlusCount', None, None, ), # 10
    (11, TType.I64, 'threeMonthPlusCount', None, None, ), # 11
    (12, TType.I64, 'sixMonthPlusCount', None, None, ), # 12
    (13, TType.I64, 'zeroToThreeMonthCount', None, None, ), # 13
    (14, TType.I64, 'threeToSixMonthCount', None, None, ), # 14
    (15, TType.I64, 'sixToTwelveMonthCount', None, None, ), # 15
    (16, TType.I64, 'twelveMonthsPlusCount', None, None, ), # 16
    (17, TType.I64, 'ZeroPlusCount', None, None, ), # 17
    (18, TType.I64, 'OnePlusCount', None, None, ), # 18
    (19, TType.I64, 'ZeroPlusCost', None, None, ), # 19
    (20, TType.I64, 'OnePlusCost', None, None, ), # 20
    (21, TType.STRING, 'category', None, None, ), # 21
  )

  def __init__(self, itemId=None, brand=None, modelName=None, modelNumber=None, color=None, freshCount=None, oneToTwoCount=None, TwoToThreeCount=None, ThreeToFourCount=None, FourPlusCount=None, threeMonthPlusCount=None, sixMonthPlusCount=None, zeroToThreeMonthCount=None, threeToSixMonthCount=None, sixToTwelveMonthCount=None, twelveMonthsPlusCount=None, ZeroPlusCount=None, OnePlusCount=None, ZeroPlusCost=None, OnePlusCost=None, category=None,):
    self.itemId = itemId
    self.brand = brand
    self.modelName = modelName
    self.modelNumber = modelNumber
    self.color = color
    self.freshCount = freshCount
    self.oneToTwoCount = oneToTwoCount
    self.TwoToThreeCount = TwoToThreeCount
    self.ThreeToFourCount = ThreeToFourCount
    self.FourPlusCount = FourPlusCount
    self.threeMonthPlusCount = threeMonthPlusCount
    self.sixMonthPlusCount = sixMonthPlusCount
    self.zeroToThreeMonthCount = zeroToThreeMonthCount
    self.threeToSixMonthCount = threeToSixMonthCount
    self.sixToTwelveMonthCount = sixToTwelveMonthCount
    self.twelveMonthsPlusCount = twelveMonthsPlusCount
    self.ZeroPlusCount = ZeroPlusCount
    self.OnePlusCount = OnePlusCount
    self.ZeroPlusCost = ZeroPlusCost
    self.OnePlusCost = OnePlusCost
    self.category = category

  def read(self, iprot):
    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
      return
    iprot.readStructBegin()
    while True:
      (fname, ftype, fid) = iprot.readFieldBegin()
      if ftype == TType.STOP:
        break
      if fid == 1:
        if ftype == TType.I64:
          self.itemId = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 2:
        if ftype == TType.STRING:
          self.brand = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 3:
        if ftype == TType.STRING:
          self.modelName = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 4:
        if ftype == TType.STRING:
          self.modelNumber = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 5:
        if ftype == TType.STRING:
          self.color = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 6:
        if ftype == TType.I64:
          self.freshCount = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 7:
        if ftype == TType.I64:
          self.oneToTwoCount = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 8:
        if ftype == TType.I64:
          self.TwoToThreeCount = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 9:
        if ftype == TType.I64:
          self.ThreeToFourCount = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 10:
        if ftype == TType.I64:
          self.FourPlusCount = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 11:
        if ftype == TType.I64:
          self.threeMonthPlusCount = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 12:
        if ftype == TType.I64:
          self.sixMonthPlusCount = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 13:
        if ftype == TType.I64:
          self.zeroToThreeMonthCount = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 14:
        if ftype == TType.I64:
          self.threeToSixMonthCount = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 15:
        if ftype == TType.I64:
          self.sixToTwelveMonthCount = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 16:
        if ftype == TType.I64:
          self.twelveMonthsPlusCount = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 17:
        if ftype == TType.I64:
          self.ZeroPlusCount = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 18:
        if ftype == TType.I64:
          self.OnePlusCount = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 19:
        if ftype == TType.I64:
          self.ZeroPlusCost = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 20:
        if ftype == TType.I64:
          self.OnePlusCost = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 21:
        if ftype == TType.STRING:
          self.category = iprot.readString();
        else:
          iprot.skip(ftype)
      else:
        iprot.skip(ftype)
      iprot.readFieldEnd()
    iprot.readStructEnd()

  def write(self, oprot):
    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
      return
    oprot.writeStructBegin('InventoryAge')
    if self.itemId is not None:
      oprot.writeFieldBegin('itemId', TType.I64, 1)
      oprot.writeI64(self.itemId)
      oprot.writeFieldEnd()
    if self.brand is not None:
      oprot.writeFieldBegin('brand', TType.STRING, 2)
      oprot.writeString(self.brand)
      oprot.writeFieldEnd()
    if self.modelName is not None:
      oprot.writeFieldBegin('modelName', TType.STRING, 3)
      oprot.writeString(self.modelName)
      oprot.writeFieldEnd()
    if self.modelNumber is not None:
      oprot.writeFieldBegin('modelNumber', TType.STRING, 4)
      oprot.writeString(self.modelNumber)
      oprot.writeFieldEnd()
    if self.color is not None:
      oprot.writeFieldBegin('color', TType.STRING, 5)
      oprot.writeString(self.color)
      oprot.writeFieldEnd()
    if self.freshCount is not None:
      oprot.writeFieldBegin('freshCount', TType.I64, 6)
      oprot.writeI64(self.freshCount)
      oprot.writeFieldEnd()
    if self.oneToTwoCount is not None:
      oprot.writeFieldBegin('oneToTwoCount', TType.I64, 7)
      oprot.writeI64(self.oneToTwoCount)
      oprot.writeFieldEnd()
    if self.TwoToThreeCount is not None:
      oprot.writeFieldBegin('TwoToThreeCount', TType.I64, 8)
      oprot.writeI64(self.TwoToThreeCount)
      oprot.writeFieldEnd()
    if self.ThreeToFourCount is not None:
      oprot.writeFieldBegin('ThreeToFourCount', TType.I64, 9)
      oprot.writeI64(self.ThreeToFourCount)
      oprot.writeFieldEnd()
    if self.FourPlusCount is not None:
      oprot.writeFieldBegin('FourPlusCount', TType.I64, 10)
      oprot.writeI64(self.FourPlusCount)
      oprot.writeFieldEnd()
    if self.threeMonthPlusCount is not None:
      oprot.writeFieldBegin('threeMonthPlusCount', TType.I64, 11)
      oprot.writeI64(self.threeMonthPlusCount)
      oprot.writeFieldEnd()
    if self.sixMonthPlusCount is not None:
      oprot.writeFieldBegin('sixMonthPlusCount', TType.I64, 12)
      oprot.writeI64(self.sixMonthPlusCount)
      oprot.writeFieldEnd()
    if self.zeroToThreeMonthCount is not None:
      oprot.writeFieldBegin('zeroToThreeMonthCount', TType.I64, 13)
      oprot.writeI64(self.zeroToThreeMonthCount)
      oprot.writeFieldEnd()
    if self.threeToSixMonthCount is not None:
      oprot.writeFieldBegin('threeToSixMonthCount', TType.I64, 14)
      oprot.writeI64(self.threeToSixMonthCount)
      oprot.writeFieldEnd()
    if self.sixToTwelveMonthCount is not None:
      oprot.writeFieldBegin('sixToTwelveMonthCount', TType.I64, 15)
      oprot.writeI64(self.sixToTwelveMonthCount)
      oprot.writeFieldEnd()
    if self.twelveMonthsPlusCount is not None:
      oprot.writeFieldBegin('twelveMonthsPlusCount', TType.I64, 16)
      oprot.writeI64(self.twelveMonthsPlusCount)
      oprot.writeFieldEnd()
    if self.ZeroPlusCount is not None:
      oprot.writeFieldBegin('ZeroPlusCount', TType.I64, 17)
      oprot.writeI64(self.ZeroPlusCount)
      oprot.writeFieldEnd()
    if self.OnePlusCount is not None:
      oprot.writeFieldBegin('OnePlusCount', TType.I64, 18)
      oprot.writeI64(self.OnePlusCount)
      oprot.writeFieldEnd()
    if self.ZeroPlusCost is not None:
      oprot.writeFieldBegin('ZeroPlusCost', TType.I64, 19)
      oprot.writeI64(self.ZeroPlusCost)
      oprot.writeFieldEnd()
    if self.OnePlusCost is not None:
      oprot.writeFieldBegin('OnePlusCost', TType.I64, 20)
      oprot.writeI64(self.OnePlusCost)
      oprot.writeFieldEnd()
    if self.category is not None:
      oprot.writeFieldBegin('category', TType.STRING, 21)
      oprot.writeString(self.category)
      oprot.writeFieldEnd()
    oprot.writeFieldStop()
    oprot.writeStructEnd()

  def validate(self):
    return


  def __repr__(self):
    L = ['%s=%r' % (key, value)
      for key, value in self.__dict__.iteritems()]
    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

  def __eq__(self, other):
    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

  def __ne__(self, other):
    return not (self == other)

class AmazonTransferredSkuDetail:
  """
  Attributes:
   - itemId
   - purchaseId
   - purchaseDate
   - quantity
   - unitPrice
   - nlc
   - brand
   - modelName
   - modelNumber
   - category
   - color
   - taxType
  """

  thrift_spec = (
    None, # 0
    (1, TType.I64, 'itemId', None, None, ), # 1
    (2, TType.I64, 'purchaseId', None, None, ), # 2
    (3, TType.I64, 'purchaseDate', None, None, ), # 3
    (4, TType.I64, 'quantity', None, None, ), # 4
    (5, TType.DOUBLE, 'unitPrice', None, None, ), # 5
    (6, TType.DOUBLE, 'nlc', None, None, ), # 6
    (7, TType.STRING, 'brand', None, None, ), # 7
    (8, TType.STRING, 'modelName', None, None, ), # 8
    (9, TType.STRING, 'modelNumber', None, None, ), # 9
    (10, TType.STRING, 'category', None, None, ), # 10
    (11, TType.STRING, 'color', None, None, ), # 11
    (12, TType.STRING, 'taxType', None, None, ), # 12
  )

  def __init__(self, itemId=None, purchaseId=None, purchaseDate=None, quantity=None, unitPrice=None, nlc=None, brand=None, modelName=None, modelNumber=None, category=None, color=None, taxType=None,):
    self.itemId = itemId
    self.purchaseId = purchaseId
    self.purchaseDate = purchaseDate
    self.quantity = quantity
    self.unitPrice = unitPrice
    self.nlc = nlc
    self.brand = brand
    self.modelName = modelName
    self.modelNumber = modelNumber
    self.category = category
    self.color = color
    self.taxType = taxType

  def read(self, iprot):
    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
      return
    iprot.readStructBegin()
    while True:
      (fname, ftype, fid) = iprot.readFieldBegin()
      if ftype == TType.STOP:
        break
      if fid == 1:
        if ftype == TType.I64:
          self.itemId = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 2:
        if ftype == TType.I64:
          self.purchaseId = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 3:
        if ftype == TType.I64:
          self.purchaseDate = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 4:
        if ftype == TType.I64:
          self.quantity = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 5:
        if ftype == TType.DOUBLE:
          self.unitPrice = iprot.readDouble();
        else:
          iprot.skip(ftype)
      elif fid == 6:
        if ftype == TType.DOUBLE:
          self.nlc = iprot.readDouble();
        else:
          iprot.skip(ftype)
      elif fid == 7:
        if ftype == TType.STRING:
          self.brand = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 8:
        if ftype == TType.STRING:
          self.modelName = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 9:
        if ftype == TType.STRING:
          self.modelNumber = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 10:
        if ftype == TType.STRING:
          self.category = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 11:
        if ftype == TType.STRING:
          self.color = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 12:
        if ftype == TType.STRING:
          self.taxType = iprot.readString();
        else:
          iprot.skip(ftype)
      else:
        iprot.skip(ftype)
      iprot.readFieldEnd()
    iprot.readStructEnd()

  def write(self, oprot):
    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
      return
    oprot.writeStructBegin('AmazonTransferredSkuDetail')
    if self.itemId is not None:
      oprot.writeFieldBegin('itemId', TType.I64, 1)
      oprot.writeI64(self.itemId)
      oprot.writeFieldEnd()
    if self.purchaseId is not None:
      oprot.writeFieldBegin('purchaseId', TType.I64, 2)
      oprot.writeI64(self.purchaseId)
      oprot.writeFieldEnd()
    if self.purchaseDate is not None:
      oprot.writeFieldBegin('purchaseDate', TType.I64, 3)
      oprot.writeI64(self.purchaseDate)
      oprot.writeFieldEnd()
    if self.quantity is not None:
      oprot.writeFieldBegin('quantity', TType.I64, 4)
      oprot.writeI64(self.quantity)
      oprot.writeFieldEnd()
    if self.unitPrice is not None:
      oprot.writeFieldBegin('unitPrice', TType.DOUBLE, 5)
      oprot.writeDouble(self.unitPrice)
      oprot.writeFieldEnd()
    if self.nlc is not None:
      oprot.writeFieldBegin('nlc', TType.DOUBLE, 6)
      oprot.writeDouble(self.nlc)
      oprot.writeFieldEnd()
    if self.brand is not None:
      oprot.writeFieldBegin('brand', TType.STRING, 7)
      oprot.writeString(self.brand)
      oprot.writeFieldEnd()
    if self.modelName is not None:
      oprot.writeFieldBegin('modelName', TType.STRING, 8)
      oprot.writeString(self.modelName)
      oprot.writeFieldEnd()
    if self.modelNumber is not None:
      oprot.writeFieldBegin('modelNumber', TType.STRING, 9)
      oprot.writeString(self.modelNumber)
      oprot.writeFieldEnd()
    if self.category is not None:
      oprot.writeFieldBegin('category', TType.STRING, 10)
      oprot.writeString(self.category)
      oprot.writeFieldEnd()
    if self.color is not None:
      oprot.writeFieldBegin('color', TType.STRING, 11)
      oprot.writeString(self.color)
      oprot.writeFieldEnd()
    if self.taxType is not None:
      oprot.writeFieldBegin('taxType', TType.STRING, 12)
      oprot.writeString(self.taxType)
      oprot.writeFieldEnd()
    oprot.writeFieldStop()
    oprot.writeStructEnd()

  def validate(self):
    return


  def __repr__(self):
    L = ['%s=%r' % (key, value)
      for key, value in self.__dict__.iteritems()]
    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

  def __eq__(self, other):
    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

  def __ne__(self, other):
    return not (self == other)

class PossibleWarehouseMovement:
  """
  Attributes:
   - fromWarehouseId
   - toWarehouseId
  """

  thrift_spec = (
    None, # 0
    (1, TType.I64, 'fromWarehouseId', None, None, ), # 1
    (2, TType.I64, 'toWarehouseId', None, None, ), # 2
  )

  def __init__(self, fromWarehouseId=None, toWarehouseId=None,):
    self.fromWarehouseId = fromWarehouseId
    self.toWarehouseId = toWarehouseId

  def read(self, iprot):
    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
      return
    iprot.readStructBegin()
    while True:
      (fname, ftype, fid) = iprot.readFieldBegin()
      if ftype == TType.STOP:
        break
      if fid == 1:
        if ftype == TType.I64:
          self.fromWarehouseId = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 2:
        if ftype == TType.I64:
          self.toWarehouseId = iprot.readI64();
        else:
          iprot.skip(ftype)
      else:
        iprot.skip(ftype)
      iprot.readFieldEnd()
    iprot.readStructEnd()

  def write(self, oprot):
    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
      return
    oprot.writeStructBegin('PossibleWarehouseMovement')
    if self.fromWarehouseId is not None:
      oprot.writeFieldBegin('fromWarehouseId', TType.I64, 1)
      oprot.writeI64(self.fromWarehouseId)
      oprot.writeFieldEnd()
    if self.toWarehouseId is not None:
      oprot.writeFieldBegin('toWarehouseId', TType.I64, 2)
      oprot.writeI64(self.toWarehouseId)
      oprot.writeFieldEnd()
    oprot.writeFieldStop()
    oprot.writeStructEnd()

  def validate(self):
    return


  def __repr__(self):
    L = ['%s=%r' % (key, value)
      for key, value in self.__dict__.iteritems()]
    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

  def __eq__(self, other):
    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

  def __ne__(self, other):
    return not (self == other)

class TransferLot:
  """
  Attributes:
   - id
   - originWarehouseId
   - destinationWarehouseId
   - status
   - transferDate
   - type
   - transitCompletionReferenceNumber
   - referenceUpdationDate
   - remarks
   - shipmentReference
  """

  thrift_spec = (
    None, # 0
    (1, TType.I64, 'id', None, None, ), # 1
    (2, TType.I64, 'originWarehouseId', None, None, ), # 2
    (3, TType.I64, 'destinationWarehouseId', None, None, ), # 3
    (4, TType.I32, 'status', None, None, ), # 4
    (5, TType.I64, 'transferDate', None, None, ), # 5
    (6, TType.I32, 'type', None, None, ), # 6
    (7, TType.STRING, 'transitCompletionReferenceNumber', None, None, ), # 7
    (8, TType.I64, 'referenceUpdationDate', None, None, ), # 8
    (9, TType.STRING, 'remarks', None, None, ), # 9
    (10, TType.I64, 'shipmentReference', None, None, ), # 10
  )

  def __init__(self, id=None, originWarehouseId=None, destinationWarehouseId=None, status=None, transferDate=None, type=None, transitCompletionReferenceNumber=None, referenceUpdationDate=None, remarks=None, shipmentReference=None,):
    self.id = id
    self.originWarehouseId = originWarehouseId
    self.destinationWarehouseId = destinationWarehouseId
    self.status = status
    self.transferDate = transferDate
    self.type = type
    self.transitCompletionReferenceNumber = transitCompletionReferenceNumber
    self.referenceUpdationDate = referenceUpdationDate
    self.remarks = remarks
    self.shipmentReference = shipmentReference

  def read(self, iprot):
    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
      return
    iprot.readStructBegin()
    while True:
      (fname, ftype, fid) = iprot.readFieldBegin()
      if ftype == TType.STOP:
        break
      if fid == 1:
        if ftype == TType.I64:
          self.id = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 2:
        if ftype == TType.I64:
          self.originWarehouseId = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 3:
        if ftype == TType.I64:
          self.destinationWarehouseId = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 4:
        if ftype == TType.I32:
          self.status = iprot.readI32();
        else:
          iprot.skip(ftype)
      elif fid == 5:
        if ftype == TType.I64:
          self.transferDate = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 6:
        if ftype == TType.I32:
          self.type = iprot.readI32();
        else:
          iprot.skip(ftype)
      elif fid == 7:
        if ftype == TType.STRING:
          self.transitCompletionReferenceNumber = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 8:
        if ftype == TType.I64:
          self.referenceUpdationDate = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 9:
        if ftype == TType.STRING:
          self.remarks = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 10:
        if ftype == TType.I64:
          self.shipmentReference = iprot.readI64();
        else:
          iprot.skip(ftype)
      else:
        iprot.skip(ftype)
      iprot.readFieldEnd()
    iprot.readStructEnd()

  def write(self, oprot):
    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
      return
    oprot.writeStructBegin('TransferLot')
    if self.id is not None:
      oprot.writeFieldBegin('id', TType.I64, 1)
      oprot.writeI64(self.id)
      oprot.writeFieldEnd()
    if self.originWarehouseId is not None:
      oprot.writeFieldBegin('originWarehouseId', TType.I64, 2)
      oprot.writeI64(self.originWarehouseId)
      oprot.writeFieldEnd()
    if self.destinationWarehouseId is not None:
      oprot.writeFieldBegin('destinationWarehouseId', TType.I64, 3)
      oprot.writeI64(self.destinationWarehouseId)
      oprot.writeFieldEnd()
    if self.status is not None:
      oprot.writeFieldBegin('status', TType.I32, 4)
      oprot.writeI32(self.status)
      oprot.writeFieldEnd()
    if self.transferDate is not None:
      oprot.writeFieldBegin('transferDate', TType.I64, 5)
      oprot.writeI64(self.transferDate)
      oprot.writeFieldEnd()
    if self.type is not None:
      oprot.writeFieldBegin('type', TType.I32, 6)
      oprot.writeI32(self.type)
      oprot.writeFieldEnd()
    if self.transitCompletionReferenceNumber is not None:
      oprot.writeFieldBegin('transitCompletionReferenceNumber', TType.STRING, 7)
      oprot.writeString(self.transitCompletionReferenceNumber)
      oprot.writeFieldEnd()
    if self.referenceUpdationDate is not None:
      oprot.writeFieldBegin('referenceUpdationDate', TType.I64, 8)
      oprot.writeI64(self.referenceUpdationDate)
      oprot.writeFieldEnd()
    if self.remarks is not None:
      oprot.writeFieldBegin('remarks', TType.STRING, 9)
      oprot.writeString(self.remarks)
      oprot.writeFieldEnd()
    if self.shipmentReference is not None:
      oprot.writeFieldBegin('shipmentReference', TType.I64, 10)
      oprot.writeI64(self.shipmentReference)
      oprot.writeFieldEnd()
    oprot.writeFieldStop()
    oprot.writeStructEnd()

  def validate(self):
    return


  def __repr__(self):
    L = ['%s=%r' % (key, value)
      for key, value in self.__dict__.iteritems()]
    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

  def __eq__(self, other):
    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

  def __ne__(self, other):
    return not (self == other)

class RemovalStockShipmentReference:
  """
  Attributes:
   - id
   - shipmentReference
   - createdOn
   - source
   - inventoryType
   - quantity
   - unfulfilQuantity
   - completed
  """

  thrift_spec = (
    None, # 0
    (1, TType.I64, 'id', None, None, ), # 1
    (2, TType.STRING, 'shipmentReference', None, None, ), # 2
    (3, TType.I64, 'createdOn', None, None, ), # 3
    (4, TType.STRING, 'source', None, None, ), # 4
    (5, TType.I64, 'inventoryType', None, None, ), # 5
    (6, TType.I64, 'quantity', None, None, ), # 6
    (7, TType.I64, 'unfulfilQuantity', None, None, ), # 7
    (8, TType.BOOL, 'completed', None, None, ), # 8
  )

  def __init__(self, id=None, shipmentReference=None, createdOn=None, source=None, inventoryType=None, quantity=None, unfulfilQuantity=None, completed=None,):
    self.id = id
    self.shipmentReference = shipmentReference
    self.createdOn = createdOn
    self.source = source
    self.inventoryType = inventoryType
    self.quantity = quantity
    self.unfulfilQuantity = unfulfilQuantity
    self.completed = completed

  def read(self, iprot):
    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
      return
    iprot.readStructBegin()
    while True:
      (fname, ftype, fid) = iprot.readFieldBegin()
      if ftype == TType.STOP:
        break
      if fid == 1:
        if ftype == TType.I64:
          self.id = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 2:
        if ftype == TType.STRING:
          self.shipmentReference = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 3:
        if ftype == TType.I64:
          self.createdOn = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 4:
        if ftype == TType.STRING:
          self.source = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 5:
        if ftype == TType.I64:
          self.inventoryType = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 6:
        if ftype == TType.I64:
          self.quantity = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 7:
        if ftype == TType.I64:
          self.unfulfilQuantity = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 8:
        if ftype == TType.BOOL:
          self.completed = iprot.readBool();
        else:
          iprot.skip(ftype)
      else:
        iprot.skip(ftype)
      iprot.readFieldEnd()
    iprot.readStructEnd()

  def write(self, oprot):
    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
      return
    oprot.writeStructBegin('RemovalStockShipmentReference')
    if self.id is not None:
      oprot.writeFieldBegin('id', TType.I64, 1)
      oprot.writeI64(self.id)
      oprot.writeFieldEnd()
    if self.shipmentReference is not None:
      oprot.writeFieldBegin('shipmentReference', TType.STRING, 2)
      oprot.writeString(self.shipmentReference)
      oprot.writeFieldEnd()
    if self.createdOn is not None:
      oprot.writeFieldBegin('createdOn', TType.I64, 3)
      oprot.writeI64(self.createdOn)
      oprot.writeFieldEnd()
    if self.source is not None:
      oprot.writeFieldBegin('source', TType.STRING, 4)
      oprot.writeString(self.source)
      oprot.writeFieldEnd()
    if self.inventoryType is not None:
      oprot.writeFieldBegin('inventoryType', TType.I64, 5)
      oprot.writeI64(self.inventoryType)
      oprot.writeFieldEnd()
    if self.quantity is not None:
      oprot.writeFieldBegin('quantity', TType.I64, 6)
      oprot.writeI64(self.quantity)
      oprot.writeFieldEnd()
    if self.unfulfilQuantity is not None:
      oprot.writeFieldBegin('unfulfilQuantity', TType.I64, 7)
      oprot.writeI64(self.unfulfilQuantity)
      oprot.writeFieldEnd()
    if self.completed is not None:
      oprot.writeFieldBegin('completed', TType.BOOL, 8)
      oprot.writeBool(self.completed)
      oprot.writeFieldEnd()
    oprot.writeFieldStop()
    oprot.writeStructEnd()

  def validate(self):
    return


  def __repr__(self):
    L = ['%s=%r' % (key, value)
      for key, value in self.__dict__.iteritems()]
    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

  def __eq__(self, other):
    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

  def __ne__(self, other):
    return not (self == other)

class InvAgeConsiderItems:
  """
  Attributes:
   - id
   - itemId
   - currentQuantity
   - purchaseId
   - age
   - category
   - cost
  """

  thrift_spec = (
    None, # 0
    (1, TType.I64, 'id', None, None, ), # 1
    (2, TType.I64, 'itemId', None, None, ), # 2
    (3, TType.I64, 'currentQuantity', None, None, ), # 3
    (4, TType.I64, 'purchaseId', None, None, ), # 4
    (5, TType.DOUBLE, 'age', None, None, ), # 5
    (6, TType.STRING, 'category', None, None, ), # 6
    (7, TType.I64, 'cost', None, None, ), # 7
  )

  def __init__(self, id=None, itemId=None, currentQuantity=None, purchaseId=None, age=None, category=None, cost=None,):
    self.id = id
    self.itemId = itemId
    self.currentQuantity = currentQuantity
    self.purchaseId = purchaseId
    self.age = age
    self.category = category
    self.cost = cost

  def read(self, iprot):
    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
      return
    iprot.readStructBegin()
    while True:
      (fname, ftype, fid) = iprot.readFieldBegin()
      if ftype == TType.STOP:
        break
      if fid == 1:
        if ftype == TType.I64:
          self.id = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 2:
        if ftype == TType.I64:
          self.itemId = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 3:
        if ftype == TType.I64:
          self.currentQuantity = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 4:
        if ftype == TType.I64:
          self.purchaseId = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 5:
        if ftype == TType.DOUBLE:
          self.age = iprot.readDouble();
        else:
          iprot.skip(ftype)
      elif fid == 6:
        if ftype == TType.STRING:
          self.category = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 7:
        if ftype == TType.I64:
          self.cost = iprot.readI64();
        else:
          iprot.skip(ftype)
      else:
        iprot.skip(ftype)
      iprot.readFieldEnd()
    iprot.readStructEnd()

  def write(self, oprot):
    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
      return
    oprot.writeStructBegin('InvAgeConsiderItems')
    if self.id is not None:
      oprot.writeFieldBegin('id', TType.I64, 1)
      oprot.writeI64(self.id)
      oprot.writeFieldEnd()
    if self.itemId is not None:
      oprot.writeFieldBegin('itemId', TType.I64, 2)
      oprot.writeI64(self.itemId)
      oprot.writeFieldEnd()
    if self.currentQuantity is not None:
      oprot.writeFieldBegin('currentQuantity', TType.I64, 3)
      oprot.writeI64(self.currentQuantity)
      oprot.writeFieldEnd()
    if self.purchaseId is not None:
      oprot.writeFieldBegin('purchaseId', TType.I64, 4)
      oprot.writeI64(self.purchaseId)
      oprot.writeFieldEnd()
    if self.age is not None:
      oprot.writeFieldBegin('age', TType.DOUBLE, 5)
      oprot.writeDouble(self.age)
      oprot.writeFieldEnd()
    if self.category is not None:
      oprot.writeFieldBegin('category', TType.STRING, 6)
      oprot.writeString(self.category)
      oprot.writeFieldEnd()
    if self.cost is not None:
      oprot.writeFieldBegin('cost', TType.I64, 7)
      oprot.writeI64(self.cost)
      oprot.writeFieldEnd()
    oprot.writeFieldStop()
    oprot.writeStructEnd()

  def validate(self):
    return


  def __repr__(self):
    L = ['%s=%r' % (key, value)
      for key, value in self.__dict__.iteritems()]
    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

  def __eq__(self, other):
    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

  def __ne__(self, other):
    return not (self == other)

class DoaOutInventoryItem:
  """
  Attributes:
   - id
   - warehouseId
   - warehouseName
   - itemId
   - product
   - serialNumber
   - itemNumber
   - purchaseOrder
   - doaOutTimeStamp
   - transferPrice
   - nlcPrice
  """

  thrift_spec = (
    None, # 0
    (1, TType.I64, 'id', None, None, ), # 1
    (2, TType.I64, 'warehouseId', None, None, ), # 2
    (3, TType.STRING, 'warehouseName', None, None, ), # 3
    (4, TType.I64, 'itemId', None, None, ), # 4
    (5, TType.STRING, 'product', None, None, ), # 5
    (6, TType.STRING, 'serialNumber', None, None, ), # 6
    (7, TType.STRING, 'itemNumber', None, None, ), # 7
    (8, TType.STRING, 'purchaseOrder', None, None, ), # 8
    (9, TType.I64, 'doaOutTimeStamp', None, None, ), # 9
    (10, TType.DOUBLE, 'transferPrice', None, None, ), # 10
    (11, TType.DOUBLE, 'nlcPrice', None, None, ), # 11
  )

  def __init__(self, id=None, warehouseId=None, warehouseName=None, itemId=None, product=None, serialNumber=None, itemNumber=None, purchaseOrder=None, doaOutTimeStamp=None, transferPrice=None, nlcPrice=None,):
    self.id = id
    self.warehouseId = warehouseId
    self.warehouseName = warehouseName
    self.itemId = itemId
    self.product = product
    self.serialNumber = serialNumber
    self.itemNumber = itemNumber
    self.purchaseOrder = purchaseOrder
    self.doaOutTimeStamp = doaOutTimeStamp
    self.transferPrice = transferPrice
    self.nlcPrice = nlcPrice

  def read(self, iprot):
    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
      return
    iprot.readStructBegin()
    while True:
      (fname, ftype, fid) = iprot.readFieldBegin()
      if ftype == TType.STOP:
        break
      if fid == 1:
        if ftype == TType.I64:
          self.id = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 2:
        if ftype == TType.I64:
          self.warehouseId = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 3:
        if ftype == TType.STRING:
          self.warehouseName = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 4:
        if ftype == TType.I64:
          self.itemId = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 5:
        if ftype == TType.STRING:
          self.product = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 6:
        if ftype == TType.STRING:
          self.serialNumber = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 7:
        if ftype == TType.STRING:
          self.itemNumber = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 8:
        if ftype == TType.STRING:
          self.purchaseOrder = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 9:
        if ftype == TType.I64:
          self.doaOutTimeStamp = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 10:
        if ftype == TType.DOUBLE:
          self.transferPrice = iprot.readDouble();
        else:
          iprot.skip(ftype)
      elif fid == 11:
        if ftype == TType.DOUBLE:
          self.nlcPrice = iprot.readDouble();
        else:
          iprot.skip(ftype)
      else:
        iprot.skip(ftype)
      iprot.readFieldEnd()
    iprot.readStructEnd()

  def write(self, oprot):
    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
      return
    oprot.writeStructBegin('DoaOutInventoryItem')
    if self.id is not None:
      oprot.writeFieldBegin('id', TType.I64, 1)
      oprot.writeI64(self.id)
      oprot.writeFieldEnd()
    if self.warehouseId is not None:
      oprot.writeFieldBegin('warehouseId', TType.I64, 2)
      oprot.writeI64(self.warehouseId)
      oprot.writeFieldEnd()
    if self.warehouseName is not None:
      oprot.writeFieldBegin('warehouseName', TType.STRING, 3)
      oprot.writeString(self.warehouseName)
      oprot.writeFieldEnd()
    if self.itemId is not None:
      oprot.writeFieldBegin('itemId', TType.I64, 4)
      oprot.writeI64(self.itemId)
      oprot.writeFieldEnd()
    if self.product is not None:
      oprot.writeFieldBegin('product', TType.STRING, 5)
      oprot.writeString(self.product)
      oprot.writeFieldEnd()
    if self.serialNumber is not None:
      oprot.writeFieldBegin('serialNumber', TType.STRING, 6)
      oprot.writeString(self.serialNumber)
      oprot.writeFieldEnd()
    if self.itemNumber is not None:
      oprot.writeFieldBegin('itemNumber', TType.STRING, 7)
      oprot.writeString(self.itemNumber)
      oprot.writeFieldEnd()
    if self.purchaseOrder is not None:
      oprot.writeFieldBegin('purchaseOrder', TType.STRING, 8)
      oprot.writeString(self.purchaseOrder)
      oprot.writeFieldEnd()
    if self.doaOutTimeStamp is not None:
      oprot.writeFieldBegin('doaOutTimeStamp', TType.I64, 9)
      oprot.writeI64(self.doaOutTimeStamp)
      oprot.writeFieldEnd()
    if self.transferPrice is not None:
      oprot.writeFieldBegin('transferPrice', TType.DOUBLE, 10)
      oprot.writeDouble(self.transferPrice)
      oprot.writeFieldEnd()
    if self.nlcPrice is not None:
      oprot.writeFieldBegin('nlcPrice', TType.DOUBLE, 11)
      oprot.writeDouble(self.nlcPrice)
      oprot.writeFieldEnd()
    oprot.writeFieldStop()
    oprot.writeStructEnd()

  def validate(self):
    return


  def __repr__(self):
    L = ['%s=%r' % (key, value)
      for key, value in self.__dict__.iteritems()]
    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

  def __eq__(self, other):
    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

  def __ne__(self, other):
    return not (self == other)

class TransferInvoiceScan:
  """
  Attributes:
   - shipmentReference
   - transferLotId
   - source
   - quantity
   - inventoryType
   - date
   - scannedQuantity
  """

  thrift_spec = (
    None, # 0
    (1, TType.STRING, 'shipmentReference', None, None, ), # 1
    (2, TType.I64, 'transferLotId', None, None, ), # 2
    (3, TType.STRING, 'source', None, None, ), # 3
    (4, TType.I64, 'quantity', None, None, ), # 4
    (5, TType.STRING, 'inventoryType', None, None, ), # 5
    (6, TType.I64, 'date', None, None, ), # 6
    (7, TType.I64, 'scannedQuantity', None, None, ), # 7
  )

  def __init__(self, shipmentReference=None, transferLotId=None, source=None, quantity=None, inventoryType=None, date=None, scannedQuantity=None,):
    self.shipmentReference = shipmentReference
    self.transferLotId = transferLotId
    self.source = source
    self.quantity = quantity
    self.inventoryType = inventoryType
    self.date = date
    self.scannedQuantity = scannedQuantity

  def read(self, iprot):
    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
      return
    iprot.readStructBegin()
    while True:
      (fname, ftype, fid) = iprot.readFieldBegin()
      if ftype == TType.STOP:
        break
      if fid == 1:
        if ftype == TType.STRING:
          self.shipmentReference = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 2:
        if ftype == TType.I64:
          self.transferLotId = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 3:
        if ftype == TType.STRING:
          self.source = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 4:
        if ftype == TType.I64:
          self.quantity = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 5:
        if ftype == TType.STRING:
          self.inventoryType = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 6:
        if ftype == TType.I64:
          self.date = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 7:
        if ftype == TType.I64:
          self.scannedQuantity = iprot.readI64();
        else:
          iprot.skip(ftype)
      else:
        iprot.skip(ftype)
      iprot.readFieldEnd()
    iprot.readStructEnd()

  def write(self, oprot):
    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
      return
    oprot.writeStructBegin('TransferInvoiceScan')
    if self.shipmentReference is not None:
      oprot.writeFieldBegin('shipmentReference', TType.STRING, 1)
      oprot.writeString(self.shipmentReference)
      oprot.writeFieldEnd()
    if self.transferLotId is not None:
      oprot.writeFieldBegin('transferLotId', TType.I64, 2)
      oprot.writeI64(self.transferLotId)
      oprot.writeFieldEnd()
    if self.source is not None:
      oprot.writeFieldBegin('source', TType.STRING, 3)
      oprot.writeString(self.source)
      oprot.writeFieldEnd()
    if self.quantity is not None:
      oprot.writeFieldBegin('quantity', TType.I64, 4)
      oprot.writeI64(self.quantity)
      oprot.writeFieldEnd()
    if self.inventoryType is not None:
      oprot.writeFieldBegin('inventoryType', TType.STRING, 5)
      oprot.writeString(self.inventoryType)
      oprot.writeFieldEnd()
    if self.date is not None:
      oprot.writeFieldBegin('date', TType.I64, 6)
      oprot.writeI64(self.date)
      oprot.writeFieldEnd()
    if self.scannedQuantity is not None:
      oprot.writeFieldBegin('scannedQuantity', TType.I64, 7)
      oprot.writeI64(self.scannedQuantity)
      oprot.writeFieldEnd()
    oprot.writeFieldStop()
    oprot.writeStructEnd()

  def validate(self):
    return


  def __repr__(self):
    L = ['%s=%r' % (key, value)
      for key, value in self.__dict__.iteritems()]
    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

  def __eq__(self, other):
    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

  def __ne__(self, other):
    return not (self == other)

class WarehouseServiceException(Exception):
  """
  Attributes:
   - exceptionType
   - message
  """

  thrift_spec = (
    None, # 0
    (1, TType.I32, 'exceptionType', None, None, ), # 1
    (2, TType.STRING, 'message', None, None, ), # 2
  )

  def __init__(self, exceptionType=None, message=None,):
    self.exceptionType = exceptionType
    self.message = message

  def read(self, iprot):
    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
      return
    iprot.readStructBegin()
    while True:
      (fname, ftype, fid) = iprot.readFieldBegin()
      if ftype == TType.STOP:
        break
      if fid == 1:
        if ftype == TType.I32:
          self.exceptionType = iprot.readI32();
        else:
          iprot.skip(ftype)
      elif fid == 2:
        if ftype == TType.STRING:
          self.message = iprot.readString();
        else:
          iprot.skip(ftype)
      else:
        iprot.skip(ftype)
      iprot.readFieldEnd()
    iprot.readStructEnd()

  def write(self, oprot):
    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
      return
    oprot.writeStructBegin('WarehouseServiceException')
    if self.exceptionType is not None:
      oprot.writeFieldBegin('exceptionType', TType.I32, 1)
      oprot.writeI32(self.exceptionType)
      oprot.writeFieldEnd()
    if self.message is not None:
      oprot.writeFieldBegin('message', TType.STRING, 2)
      oprot.writeString(self.message)
      oprot.writeFieldEnd()
    oprot.writeFieldStop()
    oprot.writeStructEnd()

  def validate(self):
    return


  def __str__(self):
    return repr(self)

  def __repr__(self):
    L = ['%s=%r' % (key, value)
      for key, value in self.__dict__.iteritems()]
    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

  def __eq__(self, other):
    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

  def __ne__(self, other):
    return not (self == other)