Subversion Repositories SmartDukaan

Rev

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