Subversion Repositories SmartDukaan

Rev

Rev 6726 | Rev 6751 | 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
'''
6594 anupam.sin 6
from MySQLdb.constants.FLAG import AUTO_INCREMENT
4501 mandeep.dh 7
from elixir import metadata, setup_all
104 ashish 8
from elixir.entity import Entity
9
from elixir.fields import Field
4501 mandeep.dh 10
from elixir.options import using_options, using_table_options
11
from elixir.relationships import ManyToOne, OneToMany
12
from sqlalchemy.engine import create_engine
6594 anupam.sin 13
from sqlalchemy.types import Integer, String, Float, DateTime, Boolean, Enum, \
14
    Numeric, BigInteger
104 ashish 15
 
16
#===============================================================================
17
# Different entities in the model
18
#===============================================================================
19
 
3187 rajveer 20
def initialize(dbname='transaction', db_hostname="localhost", echoOn=True):
746 rajveer 21
    #metadata.bind = "sqlite:///Transactionsnew.sqlite"
1122 chandransh 22
    #metadata.bind = 'mysql://root:shop2020@localhost/transaction'
3187 rajveer 23
    engine = create_engine('mysql://root:shop2020@' + db_hostname + '/' + dbname, pool_recycle=7200)
1122 chandransh 24
    metadata.bind = engine
1911 chandransh 25
    metadata.bind.echo = echoOn
483 rajveer 26
    setup_all(True)
27
 
28
 
29
if __name__=="__main__":
30
    initialize()
2783 chandransh 31
 
32
class InvoiceIDGenerator(Entity):
5527 anupam.sin 33
    id = Field(Integer)
5528 anupam.sin 34
    orderType = Field(Integer, primary_key = True)
2783 chandransh 35
    using_options(shortnames=True)
36
    using_table_options(mysql_engine="InnoDB")   
483 rajveer 37
 
5508 rajveer 38
class RechargeVoucherTracker(Entity):
39
    order = ManyToOne("Order")
40
    voucherType = Field(Integer)
41
    amount = Field(Integer)
42
    voucherIssued = Field(Boolean)
43
    voucherCode = Field(String(30))
44
    issuedOn = Field(DateTime)
45
    using_options(shortnames=True)
46
    using_table_options(mysql_engine="InnoDB")
47
 
483 rajveer 48
class LineItem(Entity):
49
    id = Field(Integer, primary_key=True, autoincrement=True)
699 chandransh 50
    item_id = Field(Integer)
963 chandransh 51
    productGroup = Field(String(100))
52
    brand = Field(String(100))
53
    model_number = Field(String(50))
54
    model_name = Field(String(50))
669 chandransh 55
    color = Field(String(20))
483 rajveer 56
    extra_info = Field(String(100))
57
    quantity = Field(Float)
58
    unit_price = Field(Float)
59
    unit_weight = Field(Float)
60
    total_price = Field(Float)
996 varun.gupt 61
    transfer_price = Field(Float)
483 rajveer 62
    total_weight = Field(Float)
2783 chandransh 63
    item_number = Field(String(50))
4658 mandeep.dh 64
    serial_number = Field(String(50))
4172 rajveer 65
    dealText = Field(String(100))
4295 varun.gupt 66
    warranty_expiry_timestamp = Field(DateTime)
483 rajveer 67
    order = ManyToOne("Order")
6039 amit.gupta 68
    vatRate = Field(Float)
746 rajveer 69
    using_options(shortnames=True)
70
    using_table_options(mysql_engine="InnoDB")
71
 
1276 chandransh 72
    def __repr__(self):
73
        return "{0} {1} {2} {3}".format(self.brand or "", self.model_name or "", self.model_number or "", self.color or "")
74
 
483 rajveer 75
class Order(Entity):
76
    id = Field(Integer, primary_key=True, autoincrement=True)
77
    warehouse_id = Field(Integer)
78
    logistics_provider_id = Field(Integer)
79
    airwaybill_no = Field(String(50))
80
    tracking_id = Field(String(50))
81
    expected_delivery_time = Field(DateTime)
3986 chandransh 82
    promised_delivery_time = Field(DateTime)
4004 chandransh 83
    expected_shipping_time = Field(DateTime)
4102 chandransh 84
    promised_shipping_time = Field(DateTime)
6726 rajveer 85
    courier_delivery_time = Field(DateTime)
483 rajveer 86
    customer_id = Field(Integer)
87
    customer_name = Field(String(50))
88
    customer_mobilenumber = Field(String(20))
89
    customer_pincode = Field(String(10))
738 chandransh 90
    customer_address1 = Field(String(100))
91
    customer_address2 = Field(String(100))
669 chandransh 92
    customer_city = Field(String(100))
93
    customer_state = Field(String(100))
483 rajveer 94
    customer_email = Field(String(50))
95
    status = Field(Integer)
96
    statusDescription = Field(String(50))
97
    total_amount = Field(Float)
6318 rajveer 98
    gvAmount = Field(Float)
483 rajveer 99
    total_weight = Field(Float)
100
    invoice_number = Field(String(30))
101
    billed_by = Field(String(30))
102
    created_timestamp = Field(DateTime)
103
    accepted_timestamp = Field(DateTime)
104
    billing_timestamp = Field(DateTime)
105
    shipping_timestamp = Field(DateTime)
1113 chandransh 106
    pickup_timestamp = Field(DateTime)
483 rajveer 107
    delivery_timestamp = Field(DateTime)
1208 chandransh 108
    outofstock_timestamp = Field(DateTime)
483 rajveer 109
    lineitems = OneToMany("LineItem")
110
    transaction = ManyToOne("Transaction")
642 chandransh 111
    jacket_number = Field(Integer)
1132 chandransh 112
    receiver = Field(String(50))
1220 chandransh 113
    batchNo = Field(Integer)
114
    serialNo = Field(Integer)
2536 chandransh 115
    doaFlag = Field(Boolean)
116
    pickupRequestNo = Field(String(20))
2764 chandransh 117
    doa_auth_timestamp = Field(DateTime)
118
    doa_pickup_timestamp = Field(DateTime)
119
    received_return_timestamp = Field(DateTime)
120
    reship_timestamp = Field(DateTime)
121
    refund_timestamp = Field(DateTime)
2628 chandransh 122
    new_order_id = Field(Integer)
2819 chandransh 123
    purchase_order_id = Field(Integer)
3064 chandransh 124
    cod = Field(Boolean)
3226 chandransh 125
    refunded_by = Field(String(30))
5141 anupam.sin 126
    refund_reason = Field(String(256))
3064 chandransh 127
    verification_timestamp = Field(DateTime)
3581 chandransh 128
    delay_reason = Field(Enum('INVENTORY_LOW_PHASED_OUT', 'INVENTORY_LOW_COLOR_NOT_AVAILABLE',\
129
                              'INVENTORY_LOW_REVERSAL_NOT_ON_TIME', 'INVENTORY_LOW_PRODUCT_NOT_SEALED',\
130
                              'COURIER_DELAY_NOT_DELIVERED_TO_COURIER_ON_TIME', 'COURIER_DELAY_DID_NOT_CONNECT',\
131
                              'COURIER_DELAY_CUSTOMER_NOT_AVAILABLE', 'COURIER_DELAY_INCORRECT_ADDRESS',\
132
                              'COURIER_DELAY_OCTROI_DELAY', 'COURIER_DELAY_FORCES_OF_NATURE',\
133
                              'COD_VERIFICATION_DELAY', 'PAYMENT_FLAGGED', 'OTHERS'))
3956 chandransh 134
    cod_reconciliation_timestamp = Field(DateTime)
4247 rajveer 135
    previousStatus = Field(Integer)
4269 anupam.sin 136
    vendorId = Field(Integer)
5302 rajveer 137
    delayReasonText= Field(String(250))
4815 phani.kuma 138
    doa_logistics_provider_id = Field(Integer)
4910 phani.kuma 139
    local_connected_timestamp = Field(DateTime)
140
    reached_destination_timestamp = Field(DateTime)
141
    first_dlvyatmp_timestamp = Field(DateTime)
4303 rajveer 142
    orderInventory = OneToMany("OrderInventory")
5386 phani.kuma 143
    vendor_paid = Field(Boolean, default=0, server_default="0")
5062 varun.gupt 144
    originalOrderId = Field(Integer)
5110 mandeep.dh 145
    fulfilmentWarehouseId = Field(Integer)
5527 anupam.sin 146
    orderType = Field(Integer)
5720 rajveer 147
    pickupStoreId = Field(Integer, default=0, server_default="0")
6525 rajveer 148
    otg = Field(Boolean, default=0, server_default="0")
2628 chandransh 149
    using_options(shortnames=True)
150
    using_table_options(mysql_engine="InnoDB")
5348 anupam.sin 151
 
152
class CodVerificationAgent(Entity):
153
    orderId = Field(Integer, primary_key=True, autoincrement=True)
154
    verificationAgent = Field(String(200))
155
    using_options(shortnames=True)
156
    using_table_options(mysql_engine="InnoDB")
157
 
104 ashish 158
class Transaction(Entity):
483 rajveer 159
    id = Field(Integer, primary_key=True, autoincrement=True)
160
    createdOn = Field(DateTime)
161
    status = Field(Integer)
162
    status_message = Field(String(100))
163
    customer_id = Field(Integer)
164
    shopping_cart_id = Field(Integer)
2815 vikas 165
    session_source = Field(String(100))
166
    session_start_time = Field(DateTime)
3858 vikas 167
    first_source = Field(String(100))
168
    first_source_start_time = Field(DateTime)
483 rajveer 169
    orders = OneToMany("Order")
2219 varun.gupt 170
    coupon_code = Field(String(20))
746 rajveer 171
    using_options(shortnames=True)
172
    using_table_options(mysql_engine="InnoDB")
132 ashish 173
 
4394 rajveer 174
class Alert(Entity):
132 ashish 175
    id = Field(Integer, primary_key=True, autoincrement=True)
483 rajveer 176
    type = Field(Integer)
4394 rajveer 177
    status = Field(Integer)
178
    timestamp = Field(DateTime)
179
    description = Field(String(100))
4444 rajveer 180
    warehouseId = Field(Integer)
746 rajveer 181
    using_options(shortnames=True)
1225 chandransh 182
    using_table_options(mysql_engine="InnoDB")
183
 
184
class BatchNoGenerator(Entity):
185
    id=Field(Integer, primary_key=True)
186
    using_options(shortnames=True)
187
    using_table_options(mysql_engine="InnoDB")
4008 mandeep.dh 188
 
189
class TransactionRequiringExtraProcessing(Entity):
4015 mandeep.dh 190
    transaction_id = Field(Integer, primary_key=True, autoincrement=False)
6733 anupam.sin 191
    category = Field(Enum('COD_VERIFICATION', 'DELAYED_DELIVERY', 'PAYMENT_FLAGGED', 'RECHARGE_UNKNOWN'), primary_key=True, autoincrement=False)
4008 mandeep.dh 192
    using_options(shortnames=True)
193
    using_table_options(mysql_engine="InnoDB")
4303 rajveer 194
 
195
class OrderInventory(Entity):
196
    order = ManyToOne("Order", primary_key=True)
197
    itemId = Field(Integer)
198
    timestamp = Field(DateTime)
199
    hotspotAction = Field(Integer)
200
    estimate = Field(Integer)
201
    using_options(shortnames=True)
202
    using_table_options(mysql_engine="InnoDB")
4600 varun.gupt 203
 
204
class EBSSettlementSummary(Entity):
205
    settlementId = Field(Integer, primary_key = True)
206
    settlementDate = Field(DateTime)
207
    transactionDateFrom = Field(DateTime)
208
    transactionDateTo = Field(DateTime)
5389 phani.kuma 209
    amount = Field(Numeric(precision=11, scale=3, asdecimal=False))
4600 varun.gupt 210
    detailsUploaded = Field(Boolean)
211
    using_options(shortnames=True)
212
    using_table_options(mysql_engine="InnoDB")
4905 varun.gupt 213
 
4600 varun.gupt 214
class PaymentSettlement(Entity):
4905 varun.gupt 215
    referenceId = Field(Integer)    #PaymentID in case of prepaid & Order Id in case of COD
5386 phani.kuma 216
    originalOrderId = Field(Integer)    #originalOrderId in case of prepaid is NULL & Order Id of original Order or Order Id in case of COD
4600 varun.gupt 217
    paymentGatewayId = Field(Integer)
218
    settlementDate = Field(DateTime)
5389 phani.kuma 219
    serviceTax = Field(Numeric(precision=11, scale=3, asdecimal=False))
220
    otherCharges = Field(Numeric(precision=11, scale=3, asdecimal=False))
221
    netCollection = Field(Numeric(precision=11, scale=3, asdecimal=False))
4600 varun.gupt 222
    using_options(shortnames=True)
5527 anupam.sin 223
    using_table_options(mysql_engine="InnoDB")
224
 
225
class Attribute(Entity):
226
    orderId = Field(Integer)
227
    name = Field(String(100))
228
    value = Field(String(100))
229
    using_options(shortnames=True)
6389 rajveer 230
    using_table_options(mysql_engine="InnoDB")
231
 
232
 
233
class EmiScheme(Entity):
234
    id  = Field(Integer, primary_key=True)
235
    gatewayId  = Field(Integer)
236
    bankId = Field(Integer)
237
    tenure = Field(Integer)
6396 amit.gupta 238
    bankName = Field(String(256))
239
    tenureDescription = Field(String(256))
6389 rajveer 240
    minAmount = Field(Integer)
241
    chargeType = Field(Integer)
6409 rajveer 242
    chargeValue = Field(Float)
6389 rajveer 243
    using_options(shortnames=True)
244
    using_table_options(mysql_engine="InnoDB")
245
 
246
class MiscCharges(Entity):
247
    transaction = ManyToOne("Transaction", primary_key=True)
6396 amit.gupta 248
    chargeType = Field(Integer, primary_key=True, autoincrement=False)
6389 rajveer 249
    chargeAmount = Field(Float)
250
    using_options(shortnames=True)
6580 anupam.sin 251
    using_table_options(mysql_engine="InnoDB")
252
 
6591 anupam.sin 253
class BlockedIpRange(Entity):
6580 anupam.sin 254
    id = Field(Integer, primary_key=True, autoincrement=True)
6594 anupam.sin 255
    start = Field(BigInteger)
256
    end = Field(BigInteger)
6591 anupam.sin 257
    expiredOn = Field(DateTime)
6580 anupam.sin 258
    using_options(shortnames=True)
6591 anupam.sin 259
    using_table_options(mysql_engine="InnoDB")
260
 
261
class DeniedIpAddress(Entity):
262
    id = Field(Integer, primary_key=True, autoincrement=True)
263
    ip = Field(String(256))
264
    deniedOn = Field(DateTime)
265
    rechargeType = Field(Integer)
266
    deviceNumber = Field(String(128))
267
    using_options(shortnames=True)
4905 varun.gupt 268
    using_table_options(mysql_engine="InnoDB")