Rev 21093 | Blame | Compare with Previous | Last modification | View Log | RSS feed
'''Created on 13-Sep-2010@author: rajveer'''from sqlalchemy import create_enginefrom elixir import *import datetimeimport elixirclass Provider(Entity):id = Field(Integer, primary_key=True, autoincrement=True)name = Field(String(100))pickup = Field(Integer)isActive = Field(Boolean)details = OneToMany("ProviderDetails")bundleWeightLimit = Field(Float)groupShipmentAllowed = Field(Boolean)maxCodLimit = Field(Float)using_options(shortnames=True)using_table_options(mysql_engine="InnoDB")class ProviderDetails(Entity):provider = ManyToOne("Provider", primary_key=True)type = Field(Integer, primary_key=True, autoincrement=False)logisticLocation = Field(Integer, primary_key=True, autoincrement=False)accountNo = Field(String(10))email = Field(String(100))phone = Field(String(15))active = Field(Boolean)using_options(shortnames=True)using_table_options(mysql_engine="InnoDB")class Awb(Entity):id = Field(Integer, primary_key=True, autoincrement=True)awb_number = Field(String(100))provider = ManyToOne("Provider")is_available = Field(Boolean)type = Field(String(50))awbUsedFor = Field(Integer)using_options(shortnames=True)using_table_options(mysql_engine="InnoDB")class AwbUpdate(Entity):providerId = Field(Integer, primary_key=True, autoincrement=False)awbNumber = Field(String(50), primary_key=True, autoincrement=False)location = Field(String(50), primary_key=True, autoincrement=False)date = Field(DateTime, primary_key=True, autoincrement=False)status = Field(String(100), primary_key=True, autoincrement=False)description = Field(String(100), primary_key=True, autoincrement=False)using_options(shortnames=True)using_table_options(mysql_engine="InnoDB")class WarehouseAllocation(Entity):pincode = Field(String(6), primary_key=True)primary_warehouse_location = Field(Integer)using_options(shortnames=True)using_table_options(mysql_engine="InnoDB")class ServiceableLocationDetails(Entity):provider = ManyToOne("Provider", primary_key=True)dest_pincode = Field(String(6), primary_key=True)dest_code = Field(String(10))exp = Field(Boolean)cod = Field(Boolean)station_type = Field(Integer)otgAvailable = Field(Boolean, default=0, server_default="0")providerCodLimit = Field(Integer)websiteCodLimit = Field(Integer)storeCodLimit = Field(Integer)providerPrepaidLimit = Field(Integer)using_options(shortnames=True)using_table_options(mysql_engine="InnoDB")class DeliveryEstimate(Entity):destination_pin = Field(String(6), primary_key=True)provider = ManyToOne("Provider", primary_key=True)warehouse_location = Field(Integer, primary_key=True, autoincrement=False)delivery_time = Field(Integer)delivery_delay = Field(Integer, default=0, server_default="0")providerZoneCode = Field(String(20))using_options(shortnames=True)using_table_options(mysql_engine="InnoDB")class PublicHolidays(Entity):date = Field(Date, primary_key=True)occasion = Field(String(100))using_options(shortnames=True)using_table_options(mysql_engine="InnoDB")class Locations(Entity):id = Field(Integer, primary_key=True)state_id = Field(Integer)label = Field(String(50))description = Field(String(100))using_options(shortnames=True)using_table_options(mysql_engine="InnoDB")class PickupStore(Entity):id = Field(Integer, primary_key=True)hotspotId = Field(String(3))name = Field(String(100))line_1 = Field(String(100))line_2 = Field(String(100))city = Field(String(100))state = Field(String(100))pin = Field(String(10))phone = Field(String(20))email = Field(String(100))zone = Field(String(30))bdm = Field(String(100))bdmEmail = Field(String(100))using_options(shortnames=True)using_table_options(mysql_engine="InnoDB")class ProviderCosting(Entity):provider = ManyToOne("Provider", primary_key=True)zoneCode = Field(String(20), primary_key=True)zoneCodeDescription = Field(String(256))initialWeightUpperLimit = Field(Float)initialLogisticsCost = Field(Float)additionalUnitWeight = Field(Float)additionalUnitLogisticsCost = Field(Float)minimumCodCollectionCharges = Field(Float)codCollectionFactor = Field(Float, default=0)using_options(shortnames=True)using_table_options(mysql_engine="InnoDB")class BluedartAttribute(Entity):logisticsTransactionId = Field(String(100))name = Field(String(100))value = Field(String(100))using_options(shortnames=True)using_table_options(mysql_engine="InnoDB")class PincodeStates(Entity):pin = Field(Integer(6), primary_key=True)statename = Field(String(64))using_options(shortnames=True)using_table_options(mysql_engine="InnoDB")def initialize(dbname="logistics",db_hostname="localhost", echoOn=True, setup=True):#metadata.bind = "sqlite:///logistics.sqlite" #need to read it from configserver.engine = create_engine('mysql://root:shop2020@' + db_hostname + '/' + dbname, pool_recycle=7200)metadata.bind = enginemetadata.bind.echo = echoOnsetup_all(setup)if __name__=="__main__":initialize()