Subversion Repositories SmartDukaan

Rev

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