Subversion Repositories SmartDukaan

Rev

Rev 472 | Rev 644 | 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
'''
6
from elixir import *
7
import datetime
8
 
9
class Provider(Entity):
10
    id = Field(Integer, primary_key=True, autoincrement=True)
11
    name = Field(String(100))
12
    awb = OneToMany("AWB")
13
 
14
class AWB(Entity):
15
    id = Field(Integer, primary_key=True, autoincrement=True)
16
    awb_number = Field(String(100))
17
    is_available = Field(Boolean)
18
    provider = ManyToOne("Provider")
19
    #shipment = OneToOne("Shipment", inverse="awb")
20
 
21
class ShipmentUpdate(Entity):
22
    id = Field(Integer, primary_key=True, autoincrement=True)
23
    pin = Field(String(20))
24
    timestamp = Field(DateTime)
25
    description = Field(String(100))
26
    #awb = ManyToOne("AWB")
27
    shipment = ManyToOne("Shipment")    
28
 
29
class Shipment(Entity):
30
    id = Field(Integer, primary_key=True, autoincrement=True) 
31
    warehouse_name = Field(String(100))
32
    awb = Field(String(100))
33
    origin = Field(String(100))
34
    destination = Field(String(100))
35
    timestamp = Field(DateTime)
36
    recepient_name = Field(String(100))
37
    recepient_address = Field(String(200))
38
    recepient_pincode = Field(String(20))
39
    recepient_phone = Field(String(20))
40
    shipment_weight = Field(String(20))
41
    shipment_contents = Field(String(100))
42
    status_message = Field(String(100))
43
    #awb = ManyToOne("AWB")
44
    shipment_update = OneToMany("ShipmentUpdate")
45
 
477 rajveer 46
class PincodeWarehouseMapping(Entity):
47
    pincode = Field(String(20), primary_key=True)
48
    warehouse_id = Field(Integer, primary_key=True)
49
    warehouse_pin = Field(String(20))
50
 
472 rajveer 51
class DeliveryEstimate(Entity):
477 rajveer 52
    source_pin = Field(String(20), primary_key=True)
472 rajveer 53
    destination_pin = Field(String(20), primary_key=True)
477 rajveer 54
    provider = ManyToOne("Provider", primary_key=True)
472 rajveer 55
    delivery_time = Field(Integer)
477 rajveer 56
    realibility = Field(Integer)
472 rajveer 57
 
442 rajveer 58
'''
59
struct Shipment{
60
    1:string warehouse_id,
61
    2:string awb,
62
    3:string origin,
63
    4:string destination,
64
    5:i64 timestamp,
65
    6:string recepient_name,
66
    7:string recepient_address,
67
    8:string recepient_pincode,
68
    9:string recepient_phone,
69
    10:string shipment_weight,
70
    11:string shipment_contents
71
}
72
'''
73
 
74
def initialize():
75
    metadata.bind = "sqlite:///logistics.sqlite" #need to read it from configserver.
76
    metadata.bind.echo = True
77
    setup_all(True)
78
 
79
if __name__=="__main__":
80
    initialize()
81