Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
104 ashish 1
'''
2
Created on 29-Mar-2010
3
 
4
@author: ashish
5
'''
4501 mandeep.dh 6
from elixir import metadata, setup_all
104 ashish 7
from elixir.entity import Entity
8
from elixir.fields import Field
4501 mandeep.dh 9
from elixir.options import using_options, using_table_options
10
from elixir.relationships import ManyToOne, OneToMany
11
from sqlalchemy.engine import create_engine
12
from sqlalchemy.types import Integer, String, Float, DateTime, Boolean, Enum
104 ashish 13
 
14
#===============================================================================
15
# Different entities in the model
16
#===============================================================================
17
 
3187 rajveer 18
def initialize(dbname='transaction', db_hostname="localhost", echoOn=True):
746 rajveer 19
    #metadata.bind = "sqlite:///Transactionsnew.sqlite"
1122 chandransh 20
    #metadata.bind = 'mysql://root:shop2020@localhost/transaction'
3187 rajveer 21
    engine = create_engine('mysql://root:shop2020@' + db_hostname + '/' + dbname, pool_recycle=7200)
1122 chandransh 22
    metadata.bind = engine
1911 chandransh 23
    metadata.bind.echo = echoOn
483 rajveer 24
    setup_all(True)
25
 
26
 
27
if __name__=="__main__":
28
    initialize()
2783 chandransh 29
 
30
class InvoiceIDGenerator(Entity):
31
    id=Field(Integer, primary_key=True)
32
    using_options(shortnames=True)
33
    using_table_options(mysql_engine="InnoDB")   
483 rajveer 34
 
35
class LineItem(Entity):
36
    id = Field(Integer, primary_key=True, autoincrement=True)
699 chandransh 37
    item_id = Field(Integer)
963 chandransh 38
    productGroup = Field(String(100))
39
    brand = Field(String(100))
40
    model_number = Field(String(50))
41
    model_name = Field(String(50))
669 chandransh 42
    color = Field(String(20))
483 rajveer 43
    extra_info = Field(String(100))
44
    quantity = Field(Float)
45
    unit_price = Field(Float)
46
    unit_weight = Field(Float)
47
    total_price = Field(Float)
996 varun.gupt 48
    transfer_price = Field(Float)
483 rajveer 49
    total_weight = Field(Float)
2783 chandransh 50
    item_number = Field(String(50))
4658 mandeep.dh 51
    serial_number = Field(String(50))
4172 rajveer 52
    dealText = Field(String(100))
4295 varun.gupt 53
    warranty_expiry_timestamp = Field(DateTime)
483 rajveer 54
    order = ManyToOne("Order")
746 rajveer 55
    using_options(shortnames=True)
56
    using_table_options(mysql_engine="InnoDB")
57
 
1276 chandransh 58
    def __repr__(self):
59
        return "{0} {1} {2} {3}".format(self.brand or "", self.model_name or "", self.model_number or "", self.color or "")
60
 
483 rajveer 61
class Order(Entity):
62
    id = Field(Integer, primary_key=True, autoincrement=True)
63
    warehouse_id = Field(Integer)
64
    logistics_provider_id = Field(Integer)
65
    airwaybill_no = Field(String(50))
66
    tracking_id = Field(String(50))
67
    expected_delivery_time = Field(DateTime)
3986 chandransh 68
    promised_delivery_time = Field(DateTime)
4004 chandransh 69
    expected_shipping_time = Field(DateTime)
4102 chandransh 70
    promised_shipping_time = Field(DateTime)
483 rajveer 71
    customer_id = Field(Integer)
72
    customer_name = Field(String(50))
73
    customer_mobilenumber = Field(String(20))
74
    customer_pincode = Field(String(10))
738 chandransh 75
    customer_address1 = Field(String(100))
76
    customer_address2 = Field(String(100))
669 chandransh 77
    customer_city = Field(String(100))
78
    customer_state = Field(String(100))
483 rajveer 79
    customer_email = Field(String(50))
80
    status = Field(Integer)
81
    statusDescription = Field(String(50))
82
    total_amount = Field(Float)
83
    total_weight = Field(Float)
84
    invoice_number = Field(String(30))
85
    billed_by = Field(String(30))
86
    created_timestamp = Field(DateTime)
87
    accepted_timestamp = Field(DateTime)
88
    billing_timestamp = Field(DateTime)
89
    shipping_timestamp = Field(DateTime)
1113 chandransh 90
    pickup_timestamp = Field(DateTime)
483 rajveer 91
    delivery_timestamp = Field(DateTime)
1208 chandransh 92
    outofstock_timestamp = Field(DateTime)
483 rajveer 93
    lineitems = OneToMany("LineItem")
94
    transaction = ManyToOne("Transaction")
642 chandransh 95
    jacket_number = Field(Integer)
1132 chandransh 96
    receiver = Field(String(50))
1220 chandransh 97
    batchNo = Field(Integer)
98
    serialNo = Field(Integer)
2536 chandransh 99
    doaFlag = Field(Boolean)
100
    pickupRequestNo = Field(String(20))
2764 chandransh 101
    doa_auth_timestamp = Field(DateTime)
102
    doa_pickup_timestamp = Field(DateTime)
103
    received_return_timestamp = Field(DateTime)
104
    reship_timestamp = Field(DateTime)
105
    refund_timestamp = Field(DateTime)
2628 chandransh 106
    new_order_id = Field(Integer)
2819 chandransh 107
    purchase_order_id = Field(Integer)
3064 chandransh 108
    cod = Field(Boolean)
3226 chandransh 109
    refunded_by = Field(String(30))
5141 anupam.sin 110
    refund_reason = Field(String(256))
3064 chandransh 111
    verification_timestamp = Field(DateTime)
3581 chandransh 112
    delay_reason = Field(Enum('INVENTORY_LOW_PHASED_OUT', 'INVENTORY_LOW_COLOR_NOT_AVAILABLE',\
113
                              'INVENTORY_LOW_REVERSAL_NOT_ON_TIME', 'INVENTORY_LOW_PRODUCT_NOT_SEALED',\
114
                              'COURIER_DELAY_NOT_DELIVERED_TO_COURIER_ON_TIME', 'COURIER_DELAY_DID_NOT_CONNECT',\
115
                              'COURIER_DELAY_CUSTOMER_NOT_AVAILABLE', 'COURIER_DELAY_INCORRECT_ADDRESS',\
116
                              'COURIER_DELAY_OCTROI_DELAY', 'COURIER_DELAY_FORCES_OF_NATURE',\
117
                              'COD_VERIFICATION_DELAY', 'PAYMENT_FLAGGED', 'OTHERS'))
3956 chandransh 118
    cod_reconciliation_timestamp = Field(DateTime)
4247 rajveer 119
    previousStatus = Field(Integer)
4269 anupam.sin 120
    vendorId = Field(Integer)
5302 rajveer 121
    delayReasonText= Field(String(250))
4815 phani.kuma 122
    doa_logistics_provider_id = Field(Integer)
4910 phani.kuma 123
    local_connected_timestamp = Field(DateTime)
124
    reached_destination_timestamp = Field(DateTime)
125
    first_dlvyatmp_timestamp = Field(DateTime)
4303 rajveer 126
    orderInventory = OneToMany("OrderInventory")
4875 varun.gupt 127
    vendor_paid = Field(Boolean)
5062 varun.gupt 128
    originalOrderId = Field(Integer)
5110 mandeep.dh 129
    fulfilmentWarehouseId = Field(Integer)
2628 chandransh 130
    using_options(shortnames=True)
131
    using_table_options(mysql_engine="InnoDB")
483 rajveer 132
 
104 ashish 133
class Transaction(Entity):
483 rajveer 134
    id = Field(Integer, primary_key=True, autoincrement=True)
135
    createdOn = Field(DateTime)
136
    status = Field(Integer)
137
    status_message = Field(String(100))
138
    customer_id = Field(Integer)
139
    shopping_cart_id = Field(Integer)
2815 vikas 140
    session_source = Field(String(100))
141
    session_start_time = Field(DateTime)
3858 vikas 142
    first_source = Field(String(100))
143
    first_source_start_time = Field(DateTime)
483 rajveer 144
    orders = OneToMany("Order")
2219 varun.gupt 145
    coupon_code = Field(String(20))
746 rajveer 146
    using_options(shortnames=True)
147
    using_table_options(mysql_engine="InnoDB")
132 ashish 148
 
4394 rajveer 149
class Alert(Entity):
132 ashish 150
    id = Field(Integer, primary_key=True, autoincrement=True)
483 rajveer 151
    type = Field(Integer)
4394 rajveer 152
    status = Field(Integer)
153
    timestamp = Field(DateTime)
154
    description = Field(String(100))
4444 rajveer 155
    warehouseId = Field(Integer)
746 rajveer 156
    using_options(shortnames=True)
1225 chandransh 157
    using_table_options(mysql_engine="InnoDB")
158
 
159
class BatchNoGenerator(Entity):
160
    id=Field(Integer, primary_key=True)
161
    using_options(shortnames=True)
162
    using_table_options(mysql_engine="InnoDB")
4008 mandeep.dh 163
 
164
class TransactionRequiringExtraProcessing(Entity):
4015 mandeep.dh 165
    transaction_id = Field(Integer, primary_key=True, autoincrement=False)
166
    category = Field(Enum('COD_VERIFICATION', 'DELAYED_DELIVERY'), primary_key=True, autoincrement=False)
4008 mandeep.dh 167
    using_options(shortnames=True)
168
    using_table_options(mysql_engine="InnoDB")
4303 rajveer 169
 
170
class OrderInventory(Entity):
171
    order = ManyToOne("Order", primary_key=True)
172
    itemId = Field(Integer)
173
    timestamp = Field(DateTime)
174
    hotspotAction = Field(Integer)
175
    estimate = Field(Integer)
176
    using_options(shortnames=True)
177
    using_table_options(mysql_engine="InnoDB")
4600 varun.gupt 178
 
179
class EBSSettlementSummary(Entity):
180
    settlementId = Field(Integer, primary_key = True)
181
    settlementDate = Field(DateTime)
182
    transactionDateFrom = Field(DateTime)
183
    transactionDateTo = Field(DateTime)
184
    amount = Field(Float)
185
    detailsUploaded = Field(Boolean)
186
    using_options(shortnames=True)
187
    using_table_options(mysql_engine="InnoDB")
4905 varun.gupt 188
 
4600 varun.gupt 189
class PaymentSettlement(Entity):
4905 varun.gupt 190
    referenceId = Field(Integer)    #PaymentID in case of prepaid & Order Id in case of COD
4600 varun.gupt 191
    paymentGatewayId = Field(Integer)
192
    settlementDate = Field(DateTime)
193
    serviceTax = Field(Float)
194
    otherCharges = Field(Float)
195
    netCollection = Field(Float)
196
    using_options(shortnames=True)
4905 varun.gupt 197
    using_table_options(mysql_engine="InnoDB")