Subversion Repositories SmartDukaan

Rev

Rev 5791 | Rev 5870 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5791 Rev 5869
Line 12... Line 12...
12
from optparse import OptionParser
12
from optparse import OptionParser
13
from textwrap import dedent
13
from textwrap import dedent
14
import traceback
14
import traceback
15
from shop2020.clients.TransactionClient import TransactionClient
15
from shop2020.clients.TransactionClient import TransactionClient
16
from mx.DateTime.DateTime import TimeDelta
16
from mx.DateTime.DateTime import TimeDelta
-
 
17
from elixir import session
17
 
18
 
18
if __name__ == '__main__' and __package__ is None:
19
if __name__ == '__main__' and __package__ is None:
19
    import sys
20
    import sys
20
    import os
21
    import os
21
    sys.path.insert(0, os.getcwd())
22
    sys.path.insert(0, os.getcwd())
Line 93... Line 94...
93
        traceback.print_exc()
94
        traceback.print_exc()
94
 
95
 
95
 
96
 
96
def process_pickup_store_returns():
97
def process_pickup_store_returns():
97
    DataService.initialize(db_hostname="192.168.190.114", echoOn=True)
98
    DataService.initialize(db_hostname="192.168.190.114", echoOn=True)
98
    DataService.initialize(db_hostname="localhost", echoOn=True)
-
 
99
    to_date = datetime.datetime.today() + datetime.timedelta(days = -3)
99
    to_date = datetime.datetime.today() + datetime.timedelta(days = -3)
100
    orders = Order.query.filter(Order.pickupStoreId > 0).filter(Order.status == OrderStatus.RECEIVED_AT_STORE).filter(Order.delivery_timestamp <= to_date).all()
100
    orders = Order.query.filter(Order.pickupStoreId > 0).filter(Order.status == OrderStatus.RECEIVED_AT_STORE).filter(Order.delivery_timestamp <= to_date).all()
101
    for order in orders:
101
    for order in orders:
102
        createCrmTicket(order)
102
        createCrmTicket(order)
103
    
103
    
104
    to_date = datetime.datetime.today() + datetime.timedelta(days = -5)
104
    to_date = datetime.datetime.today() + datetime.timedelta(days = -5)
105
    logistics_store_order_mapping = {}
105
    logistics_store_order_mapping = {}
106
    orders = Order.query.filter(Order.pickupStoreId > 0).filter(Order.status == OrderStatus.RECEIVED_AT_STORE).filter(Order.delivery_timestamp <= to_date).order_by(Order.pickupStoreId).order_by(Order.logistics_provider_id).order_by(Order.warehouse_id).all()
106
    orders = Order.query.filter(Order.pickupStoreId > 0).filter(Order.status == OrderStatus.RECEIVED_AT_STORE).filter(Order.delivery_timestamp <= to_date).order_by(Order.pickupStoreId).order_by(Order.logistics_provider_id).order_by(Order.warehouse_id).all()
107
    for order in orders:
107
    for order in orders:
108
        attribute = Attribute.query.filter(Attribute.orderId == order.id).filter(Attribute.name == "pickupExtension").first()
108
        attribute = Attribute.query.filter(Attribute.orderId == order.id).filter(Attribute.name == "pickupExtension").first()
109
        expiry = order.delivery_timestamp + datetime.timedelta(days = 5) + datetime.timedelta(days = int(attribute.value)) 
109
        expiry = order.delivery_timestamp + datetime.timedelta(days = 5)  
-
 
110
        if attribute:
-
 
111
            expiry = expiry + datetime.timedelta(days = int(attribute.value))
110
        if expiry > datetime.datetime.today() :
112
        if expiry > datetime.datetime.today() :
111
            continue        
113
            continue        
112
        if logistics_store_order_mapping.has_key(order.pickupStoreId, order.logistics_provider_id, order.warehouse_id):
114
        if logistics_store_order_mapping.has_key((order.pickupStoreId, order.logistics_provider_id, order.warehouse_id)):
113
            logistics_store_order_mapping.get(order.pickupStoreId, order.logistics_provider_id, order.warehouse_id).append(order.id)
115
            logistics_store_order_mapping.get((order.pickupStoreId, order.logistics_provider_id, order.warehouse_id)).append(order.id)
114
        else:
116
        else:
115
            logistics_store_order_mapping[order.pickupStoreId, order.logistics_provider_id, order.warehouse_id] = [order.id]
117
            logistics_store_order_mapping[order.pickupStoreId, order.logistics_provider_id, order.warehouse_id] = [order.id]
116
        order.status = OrderStatus.RET_PICKUP_REQUEST_RAISED
118
        order.status = OrderStatus.RET_PICKUP_REQUEST_RAISED
117
        order.statusDescription = "Return request raised"
119
        order.statusDescription = "Return request raised"
118
    session.commit()
120
    session.commit()
Line 128... Line 130...
128
        raw_message = '''
130
        raw_message = '''
129
        Dear Sir/Madam,
131
        Dear Sir/Madam,
130
        
132
        
131
        Kindly arrange a pickup today from %(customer_city)s. Pickup and delivery addresses are mentioned below.
133
        Kindly arrange a pickup today from %(customer_city)s. Pickup and delivery addresses are mentioned below.
132
 
134
 
133
        Pickup Order Ids: %(order_ids)
135
        Pickup Order Ids: %(order_ids)s
134
        
136
        
135
        Pickup CODE: %(provider_code)s
137
        Pickup CODE: %(provider_code)s
136
        
138
        
137
        Pickup Address:
139
        Pickup Address:
138
 
140
 
Line 159... Line 161...
159
        address = address + pickupStore.city + "\n"
161
        address = address + pickupStore.city + "\n"
160
        address = address + pickupStore.state + "\n"
162
        address = address + pickupStore.state + "\n"
161
        address = address + "PIN " + pickupStore.pin + "\n"
163
        address = address + "PIN " + pickupStore.pin + "\n"
162
        address = address + "Phone: " + pickupStore.phone
164
        address = address + "Phone: " + pickupStore.phone
163
        
165
        
164
        order_ids = ""
166
        order_ids= ""
165
        order_ids.join(logistics_store_order_mapping.get(key))
167
        for order_id in logistics_store_order_mapping.get(key):
-
 
168
            order_ids = order_ids + '    ' + str(order_id)
166
        
169
        
167
        message = dedent(raw_message) % { 'customer_city' : pickupStore.city,
170
        message = dedent(raw_message) % { 'customer_city' : pickupStore.city,
168
                                          'provider_code' : provider.details[DeliveryType.PREPAID].accountNo,
171
                                          'provider_code' : provider.details[DeliveryType.PREPAID].accountNo,
169
                                          'order_weight' : str(0.5),
172
                                          'order_weight' : str(0.5),
170
                                          'customer_address' : address,
173
                                          'customer_address' : address,