Subversion Repositories SmartDukaan

Rev

Rev 19421 | Rev 20745 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
442 rajveer 1
'''
2
Created on 13-Sep-2010
3
 
4
@author: rajveer
5
'''
1131 chandransh 6
 
7
from sqlalchemy import create_engine
442 rajveer 8
from elixir import *
9
import datetime
746 rajveer 10
import elixir
442 rajveer 11
 
12
class Provider(Entity):
13
    id = Field(Integer, primary_key=True, autoincrement=True)
14
    name = Field(String(100))
5527 anupam.sin 15
    pickup = Field(Integer)
5387 rajveer 16
    isActive = Field(Boolean)
3044 chandransh 17
    details = OneToMany("ProviderDetails")
13146 manish.sha 18
    bundleWeightLimit = Field(Float)
19
    groupShipmentAllowed = Field(Boolean)
20
    maxCodLimit = Field(Float)
3044 chandransh 21
    using_options(shortnames=True)
22
    using_table_options(mysql_engine="InnoDB")
23
 
24
class ProviderDetails(Entity):
25
    provider = ManyToOne("Provider", primary_key=True)
26
    type = Field(Integer, primary_key=True, autoincrement=False)
7792 anupam.sin 27
    logisticLocation = Field(Integer, primary_key=True, autoincrement=False)
669 chandransh 28
    accountNo = Field(String(10))
644 chandransh 29
    email = Field(String(100))
7792 anupam.sin 30
    phone = Field(String(15))
644 chandransh 31
    using_options(shortnames=True)
746 rajveer 32
    using_table_options(mysql_engine="InnoDB")
3044 chandransh 33
 
644 chandransh 34
class Awb(Entity):
35
    id = Field(Integer, primary_key=True, autoincrement=True)
442 rajveer 36
    awb_number = Field(String(100))
644 chandransh 37
    provider = ManyToOne("Provider")
442 rajveer 38
    is_available = Field(Boolean)
644 chandransh 39
    type = Field(String(50))
13146 manish.sha 40
    awbUsedFor = Field(Integer)
644 chandransh 41
    using_options(shortnames=True)
746 rajveer 42
    using_table_options(mysql_engine="InnoDB")
442 rajveer 43
 
644 chandransh 44
class AwbUpdate(Entity):
6643 rajveer 45
    providerId = Field(Integer, primary_key=True, autoincrement=False)
46
    awbNumber = Field(String(50), primary_key=True, autoincrement=False)
47
    location = Field(String(50), primary_key=True, autoincrement=False)
48
    date = Field(DateTime, primary_key=True, autoincrement=False)
49
    status = Field(String(100), primary_key=True, autoincrement=False)
50
    description = Field(String(100), primary_key=True, autoincrement=False)
644 chandransh 51
    using_options(shortnames=True)
746 rajveer 52
    using_table_options(mysql_engine="InnoDB")
442 rajveer 53
 
644 chandransh 54
class WarehouseAllocation(Entity):
55
    pincode = Field(String(6), primary_key=True)
56
    primary_warehouse_location = Field(Integer)
57
    using_options(shortnames=True)
746 rajveer 58
    using_table_options(mysql_engine="InnoDB")
59
 
644 chandransh 60
class ServiceableLocationDetails(Entity):
61
    provider = ManyToOne("Provider", primary_key=True)
62
    dest_pincode = Field(String(6), primary_key=True)
731 chandransh 63
    dest_code = Field(String(10))
644 chandransh 64
    exp = Field(Boolean)
65
    cod = Field(Boolean)
66
    station_type = Field(Integer)
6537 rajveer 67
    otgAvailable = Field(Boolean, default=0, server_default="0")
7491 rajveer 68
    providerCodLimit = Field(Integer)
69
    websiteCodLimit = Field(Integer)
70
    storeCodLimit = Field(Integer)
7627 rajveer 71
    providerPrepaidLimit = Field(Integer)
644 chandransh 72
    using_options(shortnames=True)
746 rajveer 73
    using_table_options(mysql_engine="InnoDB")
477 rajveer 74
 
472 rajveer 75
class DeliveryEstimate(Entity):
644 chandransh 76
    destination_pin = Field(String(6), primary_key=True)
477 rajveer 77
    provider = ManyToOne("Provider", primary_key=True)
746 rajveer 78
    warehouse_location = Field(Integer, primary_key=True, autoincrement=False)
472 rajveer 79
    delivery_time = Field(Integer)
6537 rajveer 80
    delivery_delay = Field(Integer, default=0, server_default="0")
19421 manish.sha 81
    providerZoneCode = Field(String(20))
644 chandransh 82
    using_options(shortnames=True)
746 rajveer 83
    using_table_options(mysql_engine="InnoDB")
1504 ankur.sing 84
 
1730 ankur.sing 85
class PublicHolidays(Entity):
86
    date = Field(Date, primary_key=True)
87
    occasion = Field(String(100))
88
    using_options(shortnames=True)
89
    using_table_options(mysql_engine="InnoDB")
19413 amit.gupta 90
 
91
class Locations(Entity):
92
    id = Field(Integer, primary_key=True)
93
    state_id = Field(Integer)
94
    label = Field(String(50))
95
    description = Field(String(100))
96
    using_options(shortnames=True)
97
    using_table_options(mysql_engine="InnoDB")
5555 rajveer 98
 
99
class PickupStore(Entity):
100
    id = Field(Integer, primary_key=True)
5719 rajveer 101
    hotspotId = Field(String(3))
5555 rajveer 102
    name = Field(String(100))
103
    line_1 = Field(String(100))
104
    line_2 = Field(String(100))
105
    city = Field(String(100))
106
    state = Field(String(100))
107
    pin = Field(String(10))
108
    phone = Field(String(20))
5863 rajveer 109
    email = Field(String(100))
5739 rajveer 110
    zone = Field(String(30))
5813 rajveer 111
    bdm = Field(String(100))
112
    bdmEmail = Field(String(100))
5555 rajveer 113
    using_options(shortnames=True)
114
    using_table_options(mysql_engine="InnoDB")
19421 manish.sha 115
 
116
class ProviderCosting(Entity):
117
    provider = ManyToOne("Provider", primary_key=True)
118
    zoneCode = Field(String(20), primary_key=True)
119
    zoneCodeDescription = Field(String(256))
120
    initialWeightUpperLimit = Field(Float) 
121
    initialLogisticsCost = Field(Float)
122
    additionalUnitWeight = Field(Float)
123
    additionalUnitLogisticsCost = Field(Float)
124
    minimumCodCollectionCharges = Field(Float)
125
    codCollectionFactor = Field(Float, default=0)
126
    using_options(shortnames=True)
127
    using_table_options(mysql_engine="InnoDB")
6524 rajveer 128
 
19426 manish.sha 129
def initialize(dbname="logistics",db_hostname="localhost", echoOn=True, setup=True):
746 rajveer 130
    #metadata.bind = "sqlite:///logistics.sqlite" #need to read it from configserver.
3187 rajveer 131
    engine = create_engine('mysql://root:shop2020@' + db_hostname + '/' + dbname, pool_recycle=7200)
1131 chandransh 132
    metadata.bind = engine
19426 manish.sha 133
    metadata.bind.echo = echoOn
134
    setup_all(setup)
442 rajveer 135
 
136
if __name__=="__main__":
137
    initialize()
138