Subversion Repositories SmartDukaan

Rev

Rev 7251 | Rev 7293 | 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, \
6903 anupam.sin 14
    Numeric, BigInteger, LargeBinary
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)
6751 amar.kumar 62
    nlc = Field(Float)
483 rajveer 63
    total_weight = Field(Float)
2783 chandransh 64
    item_number = Field(String(50))
4658 mandeep.dh 65
    serial_number = Field(String(50))
4172 rajveer 66
    dealText = Field(String(100))
4295 varun.gupt 67
    warranty_expiry_timestamp = Field(DateTime)
483 rajveer 68
    order = ManyToOne("Order")
6039 amit.gupta 69
    vatRate = Field(Float)
746 rajveer 70
    using_options(shortnames=True)
71
    using_table_options(mysql_engine="InnoDB")
72
 
1276 chandransh 73
    def __repr__(self):
74
        return "{0} {1} {2} {3}".format(self.brand or "", self.model_name or "", self.model_number or "", self.color or "")
75
 
483 rajveer 76
class Order(Entity):
77
    id = Field(Integer, primary_key=True, autoincrement=True)
78
    warehouse_id = Field(Integer)
79
    logistics_provider_id = Field(Integer)
80
    airwaybill_no = Field(String(50))
81
    tracking_id = Field(String(50))
82
    expected_delivery_time = Field(DateTime)
3986 chandransh 83
    promised_delivery_time = Field(DateTime)
4004 chandransh 84
    expected_shipping_time = Field(DateTime)
4102 chandransh 85
    promised_shipping_time = Field(DateTime)
6726 rajveer 86
    courier_delivery_time = Field(DateTime)
483 rajveer 87
    customer_id = Field(Integer)
88
    customer_name = Field(String(50))
89
    customer_mobilenumber = Field(String(20))
90
    customer_pincode = Field(String(10))
738 chandransh 91
    customer_address1 = Field(String(100))
92
    customer_address2 = Field(String(100))
669 chandransh 93
    customer_city = Field(String(100))
94
    customer_state = Field(String(100))
483 rajveer 95
    customer_email = Field(String(50))
96
    status = Field(Integer)
97
    statusDescription = Field(String(50))
98
    total_amount = Field(Float)
6318 rajveer 99
    gvAmount = Field(Float)
483 rajveer 100
    total_weight = Field(Float)
101
    invoice_number = Field(String(30))
102
    billed_by = Field(String(30))
103
    created_timestamp = Field(DateTime)
104
    accepted_timestamp = Field(DateTime)
105
    billing_timestamp = Field(DateTime)
106
    shipping_timestamp = Field(DateTime)
1113 chandransh 107
    pickup_timestamp = Field(DateTime)
483 rajveer 108
    delivery_timestamp = Field(DateTime)
1208 chandransh 109
    outofstock_timestamp = Field(DateTime)
483 rajveer 110
    lineitems = OneToMany("LineItem")
111
    transaction = ManyToOne("Transaction")
6903 anupam.sin 112
    insuranceDetails = OneToMany("InsuranceDetailForOrder")
642 chandransh 113
    jacket_number = Field(Integer)
1132 chandransh 114
    receiver = Field(String(50))
1220 chandransh 115
    batchNo = Field(Integer)
116
    serialNo = Field(Integer)
2536 chandransh 117
    doaFlag = Field(Boolean)
118
    pickupRequestNo = Field(String(20))
2764 chandransh 119
    doa_auth_timestamp = Field(DateTime)
120
    doa_pickup_timestamp = Field(DateTime)
121
    received_return_timestamp = Field(DateTime)
122
    reship_timestamp = Field(DateTime)
123
    refund_timestamp = Field(DateTime)
2628 chandransh 124
    new_order_id = Field(Integer)
2819 chandransh 125
    purchase_order_id = Field(Integer)
3064 chandransh 126
    cod = Field(Boolean)
3226 chandransh 127
    refunded_by = Field(String(30))
5141 anupam.sin 128
    refund_reason = Field(String(256))
3064 chandransh 129
    verification_timestamp = Field(DateTime)
3581 chandransh 130
    delay_reason = Field(Enum('INVENTORY_LOW_PHASED_OUT', 'INVENTORY_LOW_COLOR_NOT_AVAILABLE',\
131
                              'INVENTORY_LOW_REVERSAL_NOT_ON_TIME', 'INVENTORY_LOW_PRODUCT_NOT_SEALED',\
132
                              'COURIER_DELAY_NOT_DELIVERED_TO_COURIER_ON_TIME', 'COURIER_DELAY_DID_NOT_CONNECT',\
133
                              'COURIER_DELAY_CUSTOMER_NOT_AVAILABLE', 'COURIER_DELAY_INCORRECT_ADDRESS',\
134
                              'COURIER_DELAY_OCTROI_DELAY', 'COURIER_DELAY_FORCES_OF_NATURE',\
135
                              'COD_VERIFICATION_DELAY', 'PAYMENT_FLAGGED', 'OTHERS'))
3956 chandransh 136
    cod_reconciliation_timestamp = Field(DateTime)
4247 rajveer 137
    previousStatus = Field(Integer)
4269 anupam.sin 138
    vendorId = Field(Integer)
5302 rajveer 139
    delayReasonText= Field(String(250))
4815 phani.kuma 140
    doa_logistics_provider_id = Field(Integer)
4910 phani.kuma 141
    local_connected_timestamp = Field(DateTime)
142
    reached_destination_timestamp = Field(DateTime)
143
    first_dlvyatmp_timestamp = Field(DateTime)
4303 rajveer 144
    orderInventory = OneToMany("OrderInventory")
5386 phani.kuma 145
    vendor_paid = Field(Boolean, default=0, server_default="0")
5062 varun.gupt 146
    originalOrderId = Field(Integer)
5110 mandeep.dh 147
    fulfilmentWarehouseId = Field(Integer)
5527 anupam.sin 148
    orderType = Field(Integer)
5720 rajveer 149
    pickupStoreId = Field(Integer, default=0, server_default="0")
6525 rajveer 150
    otg = Field(Boolean, default=0, server_default="0")
7033 anupam.sin 151
    insurer = Field(Integer, default=0, server_default="0")
152
    insuranceAmount = Field(Float, default=0, server_default="0")
7190 amar.kumar 153
    freebieItemId = Field(Integer, default=0, server_default="0")
2628 chandransh 154
    using_options(shortnames=True)
155
    using_table_options(mysql_engine="InnoDB")
5348 anupam.sin 156
 
157
class CodVerificationAgent(Entity):
158
    orderId = Field(Integer, primary_key=True, autoincrement=True)
159
    verificationAgent = Field(String(200))
160
    using_options(shortnames=True)
161
    using_table_options(mysql_engine="InnoDB")
162
 
104 ashish 163
class Transaction(Entity):
483 rajveer 164
    id = Field(Integer, primary_key=True, autoincrement=True)
165
    createdOn = Field(DateTime)
166
    status = Field(Integer)
167
    status_message = Field(String(100))
168
    customer_id = Field(Integer)
169
    shopping_cart_id = Field(Integer)
2815 vikas 170
    session_source = Field(String(100))
171
    session_start_time = Field(DateTime)
3858 vikas 172
    first_source = Field(String(100))
173
    first_source_start_time = Field(DateTime)
483 rajveer 174
    orders = OneToMany("Order")
2219 varun.gupt 175
    coupon_code = Field(String(20))
746 rajveer 176
    using_options(shortnames=True)
177
    using_table_options(mysql_engine="InnoDB")
132 ashish 178
 
4394 rajveer 179
class Alert(Entity):
132 ashish 180
    id = Field(Integer, primary_key=True, autoincrement=True)
483 rajveer 181
    type = Field(Integer)
4394 rajveer 182
    status = Field(Integer)
183
    timestamp = Field(DateTime)
184
    description = Field(String(100))
4444 rajveer 185
    warehouseId = Field(Integer)
746 rajveer 186
    using_options(shortnames=True)
1225 chandransh 187
    using_table_options(mysql_engine="InnoDB")
188
 
189
class BatchNoGenerator(Entity):
190
    id=Field(Integer, primary_key=True)
191
    using_options(shortnames=True)
192
    using_table_options(mysql_engine="InnoDB")
4008 mandeep.dh 193
 
194
class TransactionRequiringExtraProcessing(Entity):
4015 mandeep.dh 195
    transaction_id = Field(Integer, primary_key=True, autoincrement=False)
6733 anupam.sin 196
    category = Field(Enum('COD_VERIFICATION', 'DELAYED_DELIVERY', 'PAYMENT_FLAGGED', 'RECHARGE_UNKNOWN'), primary_key=True, autoincrement=False)
4008 mandeep.dh 197
    using_options(shortnames=True)
198
    using_table_options(mysql_engine="InnoDB")
4303 rajveer 199
 
200
class OrderInventory(Entity):
201
    order = ManyToOne("Order", primary_key=True)
202
    itemId = Field(Integer)
203
    timestamp = Field(DateTime)
204
    hotspotAction = Field(Integer)
205
    estimate = Field(Integer)
206
    using_options(shortnames=True)
207
    using_table_options(mysql_engine="InnoDB")
4600 varun.gupt 208
 
209
class EBSSettlementSummary(Entity):
210
    settlementId = Field(Integer, primary_key = True)
211
    settlementDate = Field(DateTime)
212
    transactionDateFrom = Field(DateTime)
213
    transactionDateTo = Field(DateTime)
5389 phani.kuma 214
    amount = Field(Numeric(precision=11, scale=3, asdecimal=False))
4600 varun.gupt 215
    detailsUploaded = Field(Boolean)
216
    using_options(shortnames=True)
217
    using_table_options(mysql_engine="InnoDB")
4905 varun.gupt 218
 
4600 varun.gupt 219
class PaymentSettlement(Entity):
4905 varun.gupt 220
    referenceId = Field(Integer)    #PaymentID in case of prepaid & Order Id in case of COD
5386 phani.kuma 221
    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 222
    paymentGatewayId = Field(Integer)
223
    settlementDate = Field(DateTime)
5389 phani.kuma 224
    serviceTax = Field(Numeric(precision=11, scale=3, asdecimal=False))
225
    otherCharges = Field(Numeric(precision=11, scale=3, asdecimal=False))
226
    netCollection = Field(Numeric(precision=11, scale=3, asdecimal=False))
4600 varun.gupt 227
    using_options(shortnames=True)
5527 anupam.sin 228
    using_table_options(mysql_engine="InnoDB")
229
 
230
class Attribute(Entity):
231
    orderId = Field(Integer)
232
    name = Field(String(100))
233
    value = Field(String(100))
234
    using_options(shortnames=True)
6389 rajveer 235
    using_table_options(mysql_engine="InnoDB")
236
 
237
 
238
class EmiScheme(Entity):
239
    id  = Field(Integer, primary_key=True)
240
    gatewayId  = Field(Integer)
241
    bankId = Field(Integer)
242
    tenure = Field(Integer)
6396 amit.gupta 243
    bankName = Field(String(256))
244
    tenureDescription = Field(String(256))
6389 rajveer 245
    minAmount = Field(Integer)
246
    chargeType = Field(Integer)
6409 rajveer 247
    chargeValue = Field(Float)
6389 rajveer 248
    using_options(shortnames=True)
249
    using_table_options(mysql_engine="InnoDB")
250
 
251
class MiscCharges(Entity):
252
    transaction = ManyToOne("Transaction", primary_key=True)
6396 amit.gupta 253
    chargeType = Field(Integer, primary_key=True, autoincrement=False)
6389 rajveer 254
    chargeAmount = Field(Float)
255
    using_options(shortnames=True)
6580 anupam.sin 256
    using_table_options(mysql_engine="InnoDB")
257
 
6591 anupam.sin 258
class BlockedIpRange(Entity):
6580 anupam.sin 259
    id = Field(Integer, primary_key=True, autoincrement=True)
6594 anupam.sin 260
    start = Field(BigInteger)
261
    end = Field(BigInteger)
6591 anupam.sin 262
    expiredOn = Field(DateTime)
6580 anupam.sin 263
    using_options(shortnames=True)
6591 anupam.sin 264
    using_table_options(mysql_engine="InnoDB")
265
 
266
class DeniedIpAddress(Entity):
267
    id = Field(Integer, primary_key=True, autoincrement=True)
268
    ip = Field(String(256))
269
    deniedOn = Field(DateTime)
270
    rechargeType = Field(Integer)
271
    deviceNumber = Field(String(128))
272
    using_options(shortnames=True)
6903 anupam.sin 273
    using_table_options(mysql_engine="InnoDB")
274
 
275
class InsuranceDetailForOrder(Entity):
276
    id = Field(Integer, primary_key=True, autoincrement=True)
277
    dob = Field(String(64))
278
    guardianName = Field(String(255))
279
    startDate = Field(DateTime)
280
    expiryDate = Field(DateTime)
6915 anupam.sin 281
    isDeclared = Field(Boolean, default=0)
6903 anupam.sin 282
    order = ManyToOne("Order")
283
    using_options(shortnames=True)
6906 rajveer 284
    using_table_options(mysql_engine="InnoDB")
285
 
6915 anupam.sin 286
    def __init__(self):
287
        self.isDeclared = 0
288
 
6906 rajveer 289
class DocumentStore(Entity):
290
    docType = Field(Integer, primary_key=True, autoincrement=False)
291
    docSource = Field(Integer, primary_key=True, autoincrement=False)
292
    document  = Field(LargeBinary)
293
    using_options(shortnames=True)
7073 anupam.sin 294
    using_table_options(mysql_engine="InnoDB")
295
 
296
class Company(Entity):
297
    id = Field(Integer, primary_key=True, autoincrement=True)
298
    name = Field(String(255))
299
    Address = Field(String(255))
300
    using_options(shortnames=True)
301
    using_table_options(mysql_engine="InnoDB")
302
 
303
class WalletForCompany(Entity):
304
    id = Field(Integer, primary_key=True, autoincrement=True)
305
    companyId = Field(Integer)
7102 rajveer 306
    amount = Field(Integer)
7073 anupam.sin 307
    using_options(shortnames=True)
308
    using_table_options(mysql_engine="InnoDB")
309
 
310
class WalletHistoryForCompany(Entity):
311
    id = Field(Integer, primary_key=True, autoincrement=True)
312
    walletId = Field(Integer)
7102 rajveer 313
    amount = Field(Integer)
7073 anupam.sin 314
    transactionTime = Field(DateTime)
7102 rajveer 315
    openingBal = Field(Integer)
316
    closingBal = Field(Integer)
7073 anupam.sin 317
    referenceNumber = Field(Integer)
318
    description = Field(String(255))
319
    using_options(shortnames=True)
320
    using_table_options(mysql_engine="InnoDB")
321
 
322
class RechargeTransaction(Entity):
323
    id = Field(Integer, primary_key=True, autoincrement=True)
324
    storeId = Field(Integer)
7102 rajveer 325
    amount = Field(Integer)
7073 anupam.sin 326
    transactionTime = Field(DateTime)
7075 rajveer 327
    responseTime = Field(DateTime)
328
    description = Field(String(255))
329
    spiceTID = Field(String(255))
330
    plan = Field(String(255))
7073 anupam.sin 331
    deviceNum = Field(String(64))
332
    deviceType = Field(Integer)
333
    isFrc = Field(Boolean)
334
    email = Field(String(255))
7102 rajveer 335
    discount = Field(Integer)
336
    paymentAmount = Field(Integer)
7145 rajveer 337
    payMethod = Field(Integer, default=0, server_default="0")
7073 anupam.sin 338
    status = Field(Integer)
339
    invoiceNumber = Field(Integer)
340
    circleId = Field(Integer)
7075 rajveer 341
    operatorId = Field(Integer)
7073 anupam.sin 342
    name = Field(String(255))
343
    simNum = Field(String(255))
344
    cafNum = Field(String(255))
7080 anupam.sin 345
    ipAddress = Field(String(255))
346
    alternateNumber = Field(String(255))
7073 anupam.sin 347
    using_options(shortnames=True)
7075 rajveer 348
    using_table_options(mysql_engine="InnoDB")
7076 rajveer 349
 
7120 rajveer 350
class OperatorSeries(Entity):
351
    series = Field(Integer, primary_key=True, autoincrement=False)
352
    operatorId = Field(Integer)
353
    circleId = Field(Integer)
354
    using_options(shortnames=True)
355
    using_table_options(mysql_engine="InnoDB")
356
 
7076 rajveer 357
class FRC(Entity):
358
    id = Field(Integer, primary_key=True)
359
    operatorId = Field(Integer)
360
    circleId = Field(Integer)
361
    denomination = Field(Integer)
362
    maxDiscount = Field(Integer)
363
    using_options(shortnames=True)
364
    using_table_options(mysql_engine="InnoDB")
7120 rajveer 365
 
7075 rajveer 366
class HotspotStore(Entity):
367
    id = Field(Integer, primary_key=True)
368
    hotspotId = Field(String(3))
369
    companyId = Field(Integer)
370
    name = Field(String(100))
371
    city = Field(String(100))
7076 rajveer 372
    collectedAmount = Field(Integer)
7075 rajveer 373
    availableLimit = Field(Integer)
374
    creditLimit = Field(Integer)
375
    salt = Field(String(100))
376
    password = Field(String(100))
377
    isActive = Field(Boolean)
7096 anupam.sin 378
    circleId = Field(Integer)
7169 anupam.sin 379
    email = Field(String(100))
7075 rajveer 380
    using_options(shortnames=True)
7251 rajveer 381
    using_table_options(mysql_engine="InnoDB")
382
 
383
class RechargeCollection(Entity):
384
    hotspotId = Field(String(3), primary_key=True, autoincrement=False)
385
    reconDate = Field(Integer, primary_key=True, autoincrement=False)
386
    cash = Field(Integer)
387
    hdfc = Field(Integer)
388
    grossAmount = Field(Integer)
389
    discount = Field(Integer)
390
    netCollection = Field(Integer)
391
    addedAt = Field(DateTime)
392
    pushedAt = Field(DateTime)
393
    pushedToOcr = Field(Boolean)
394
    using_options(shortnames=True)
395
    using_table_options(mysql_engine="InnoDB")
7263 anupam.sin 396
 
397
class SourceDetail(Entity):
398
    id = Field(Integer, primary_key=True, autoincrement=False)
399
    name = Field(String(255))
400
    email = Field(String(255))
401
    using_options(shortnames=True)
402
    using_table_options(mysql_engine="InnoDB")