Subversion Repositories SmartDukaan

Rev

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

Rev 19412 Rev 19414
Line 9... Line 9...
9
'''
9
'''
10
from optparse import OptionParser
10
from optparse import OptionParser
11
from shop2020.clients.InventoryClient import InventoryClient
11
from shop2020.clients.InventoryClient import InventoryClient
12
from shop2020.clients.LogisticsClient import LogisticsClient
12
from shop2020.clients.LogisticsClient import LogisticsClient
13
from shop2020.clients.TransactionClient import TransactionClient
13
from shop2020.clients.TransactionClient import TransactionClient
-
 
14
from shop2020.model.v1.order.impl import DataService
-
 
15
from shop2020.model.v1.order.impl.DataService import Order
-
 
16
from shop2020.model.v1.order.impl.DataAccessors import get_slipped_sipping_date_orders, get_cancelled_orders, \
-
 
17
    get_orders_not_met_expected_delivery_date
14
from shop2020.thriftpy.model.v1.order.ttypes import Order, DelayReason, OrderStatus
18
from shop2020.thriftpy.model.v1.order.ttypes import DelayReason, OrderStatus
15
from shop2020.utils.EmailAttachmentSender import get_attachment_part, mail_html
19
from shop2020.utils.EmailAttachmentSender import get_attachment_part, mail_html
16
from shop2020.utils.Utils import to_py_date, to_java_date
20
from shop2020.utils.Utils import to_py_date, to_java_date
17
import datetime
21
import datetime
18
import xlwt
22
import xlwt
-
 
23
from elixir import *
19
 
24
 
20
 
25
 
21
 
26
 
-
 
27
DataService.initialize(dbname='transaction', db_hostname='192.168.190.114')
-
 
28
 
22
if __name__ == '__main__' and __package__ is None:
29
if __name__ == '__main__' and __package__ is None:
23
    import sys
30
    import sys
24
    import os
31
    import os
25
    sys.path.insert(0, os.getcwd())
32
    sys.path.insert(0, os.getcwd())
26
#to = ["amar.kumar@shop2020.in"]
33
#to = ["manish.sharma@shop2020.in"]
27
to = ["anikendra.das@saholic.com","sandeep.sachdeva@shop2020.in","amit.sirohi@shop2020.in", "chaitnaya.vats@shop2020.in", "khushal.bhatia@shop2020.in", "rajneesh.arora@shop2020.in", "chandan.kumar@shop2020.in","manoj.kumar@shop2020.in", "manoj.pal@saholic.com", "yukti.jain@saholic.com", "ankush.dhingra@saholic.com"]
34
to = ["manish.sharma@shop2020.in","amit.gupta@shop2020.in","sandeep.sachdeva@shop2020.in","amit.sirohi@shop2020.in", "chaitnaya.vats@shop2020.in", "khushal.bhatia@shop2020.in", "rajneesh.arora@shop2020.in", "manoj.kumar@shop2020.in", "yatin.singh@saholic.com"]
28
 
35
 
29
def generate_delayed_orders_file():
36
def generate_delayed_orders_file():
30
    txn_client = TransactionClient().get_client()
-
 
31
    slipped_orders = txn_client.getSlippedSippingDateOrders()
37
    slipped_orders = get_slipped_sipping_date_orders()
32
    
38
    
33
    wbk = xlwt.Workbook()
39
    wbk = xlwt.Workbook()
34
    sheet = wbk.add_sheet('main')
40
    sheet = wbk.add_sheet('main')
35
 
41
 
36
    heading_xf = xlwt.easyxf('font: bold on; align: wrap on, vert centre, horiz center')
42
    heading_xf = xlwt.easyxf('font: bold on; align: wrap on, vert centre, horiz center')
Line 86... Line 92...
86
                    <th>Delay Reason</th>
92
                    <th>Delay Reason</th>
87
                    <th>Detailed Reason Text</th>
93
                    <th>Detailed Reason Text</th>
88
                </tr>
94
                </tr>
89
    """  
95
    """  
90
    
96
    
91
    order = Order()
-
 
92
    mode = {}
97
    mode = {}
93
    mode[0] = 'Prepaid'
98
    mode[0] = 'Prepaid'
94
    mode[1] = 'COD'
99
    mode[1] = 'COD'
95
    source = {}
100
    source = {}
96
    source[1] = 'WEBSITE'
101
    source[1] = 'WEBSITE'
Line 126... Line 131...
126
        html +="<td>" + str(lineitem.model_number) + "</td>"
131
        html +="<td>" + str(lineitem.model_number) + "</td>"
127
        sheet.write(i, 7, lineitem.color)
132
        sheet.write(i, 7, lineitem.color)
128
        html +="<td>" + str(lineitem.color) + "</td>"
133
        html +="<td>" + str(lineitem.color) + "</td>"
129
        sheet.write(i, 8, lineitem.quantity)
134
        sheet.write(i, 8, lineitem.quantity)
130
        html +="<td>" + str(lineitem.quantity) + "</td>"
135
        html +="<td>" + str(lineitem.quantity) + "</td>"
131
        sheet.write(i, 9, to_py_date(order.created_timestamp), date_style)
136
        sheet.write(i, 9, order.created_timestamp, date_style)
132
        html +="<td>" + str(to_py_date(order.created_timestamp)) + "</td>"
137
        html +="<td>" + str(order.created_timestamp) + "</td>"
133
        sheet.write(i, 10, to_py_date(order.promised_shipping_time), date_style)
138
        sheet.write(i, 10, order.promised_shipping_time, date_style)
134
        html +="<td>" + str(to_py_date(order.promised_shipping_time)) + "</td>"
139
        html +="<td>" + str(order.promised_shipping_time) + "</td>"
135
        sheet.write(i, 11, to_py_date(order.expected_shipping_time), date_style)
140
        sheet.write(i, 11, order.expected_shipping_time, date_style)
136
        html +="<td>" + str(to_py_date(order.expected_shipping_time)) + "</td>"
141
        html +="<td>" + str(order.expected_shipping_time) + "</td>"
137
        if order.delayReason:
142
        if order.delay_reason:
138
            sheet.write(i, 12, DelayReason._VALUES_TO_NAMES[order.delayReason])
143
            sheet.write(i, 12, order.delay_reason)
139
            html +="<td>" + str(DelayReason._VALUES_TO_NAMES[order.delayReason]) + "</td>"
144
            html +="<td>" + str(order.delay_reason) + "</td>"
140
        sheet.write(i, 13, order.delayReasonText)
145
        sheet.write(i, 13, order.delayReasonText)
141
        html +="<td>" + str(order.delayReasonText) + "</td>"
146
        html +="<td>" + str(order.delayReasonText) + "</td>"
142
        html +="</tr>"
147
        html +="</tr>"
143
        i= i+1
148
        i= i+1
144
    
149
    
Line 152... Line 157...
152
        mail_html("cnc.center@shop2020.in", "5h0p2o2o", to, "Slipped Orders as on: " + datestr, html, [part])
157
        mail_html("cnc.center@shop2020.in", "5h0p2o2o", to, "Slipped Orders as on: " + datestr, html, [part])
153
    finally:
158
    finally:
154
        os.remove(filename)
159
        os.remove(filename)
155
 
160
 
156
def generate_cancelled_orders_file():
161
def generate_cancelled_orders_file():
157
    txn_client = TransactionClient().get_client()
-
 
158
    #cancelled_orders = txn_client.getAllOrders(OrderStatus.CANCELLED_DUE_TO_LOW_INVENTORY, to_java_date(datetime.datetime.now() - datetime.timedelta(hours = 24)), to_java_date(datetime.datetime.now()), -1)
162
    #cancelled_orders = txn_client.getAllOrders(OrderStatus.CANCELLED_DUE_TO_LOW_INVENTORY, to_java_date(datetime.datetime.now() - datetime.timedelta(hours = 24)), to_java_date(datetime.datetime.now()), -1)
159
    cancelled_orders = txn_client.getCancelledOrders(to_java_date(datetime.datetime.now() - datetime.timedelta(hours = 24)), to_java_date(datetime.datetime.now()))
163
    cancelled_orders = get_cancelled_orders(datetime.datetime.now() - datetime.timedelta(hours = 24), datetime.datetime.now())
160
    
164
    
161
    wbk = xlwt.Workbook()
165
    wbk = xlwt.Workbook()
162
    sheet = wbk.add_sheet('main')
166
    sheet = wbk.add_sheet('main')
163
 
167
 
164
    heading_xf = xlwt.easyxf('font: bold on; align: wrap on, vert centre, horiz center')
168
    heading_xf = xlwt.easyxf('font: bold on; align: wrap on, vert centre, horiz center')
Line 211... Line 215...
211
                    <th>Cancellation Date</th>
215
                    <th>Cancellation Date</th>
212
                </tr>
216
                </tr>
213
    """
217
    """
214
 
218
 
215
 
219
 
216
    order = Order()
-
 
217
    mode = {}
220
    mode = {}
218
    mode[0] = 'Prepaid'
221
    mode[0] = 'Prepaid'
219
    mode[1] = 'COD'
222
    mode[1] = 'COD'
220
    source = {}
223
    source = {}
221
    source[1] = 'WEBSITE'
224
    source[1] = 'WEBSITE'
Line 246... Line 249...
246
        sheet.write(i, 5, lineitem.model_number)
249
        sheet.write(i, 5, lineitem.model_number)
247
        html +="<td>" + str(lineitem.model_number) + "</td>"
250
        html +="<td>" + str(lineitem.model_number) + "</td>"
248
        sheet.write(i, 6, lineitem.color)
251
        sheet.write(i, 6, lineitem.color)
249
        html +="<td>" + str(lineitem.color) + "</td>"
252
        html +="<td>" + str(lineitem.color) + "</td>"
250
        
253
        
251
        sheet.write(i, 7, to_py_date(order.created_timestamp), date_style)
254
        sheet.write(i, 7, order.created_timestamp, date_style)
252
        html +="<td>" + str(to_py_date(order.created_timestamp)) + "</td>"
255
        html +="<td>" + str(order.created_timestamp) + "</td>"
253
        sheet.write(i, 8, to_py_date(order.promised_shipping_time), date_style)
256
        sheet.write(i, 8, order.promised_shipping_time, date_style)
254
        html +="<td>" + str(to_py_date(order.promised_shipping_time)) + "</td>"
257
        html +="<td>" + str(order.promised_shipping_time) + "</td>"
255
        sheet.write(i, 9, to_py_date(order.expected_shipping_time), date_style)
258
        sheet.write(i, 9, order.expected_shipping_time, date_style)
256
        html +="<td>" + str(to_py_date(order.expected_shipping_time)) + "</td>"
259
        html +="<td>" + str(order.expected_shipping_time) + "</td>"
257
        sheet.write(i, 10, order.refundReason)
260
        sheet.write(i, 10, order.refundReason)
258
        html +="<td>" + str(order.refundReason) + "</td>"
261
        html +="<td>" + str(order.refundReason) + "</td>"
259
        sheet.write(i, 11, to_py_date(order.refund_timestamp), date_style)
262
        sheet.write(i, 11, order.refund_timestamp, date_style)
260
        html +="<td>" + str(to_py_date(order.refund_timestamp)) + "</td>"
263
        html +="<td>" + str(order.refund_timestamp) + "</td>"
261
        html +="<td>" + str(order.delayReasonText) + "</td>"
264
        html +="<td>" + str(order.delayReasonText) + "</td>"
262
        html +="</tr>"
265
        html +="</tr>"
263
        
266
        
264
        i= i+1
267
        i= i+1
265
    
268
    
Line 275... Line 278...
275
    finally:
278
    finally:
276
        os.remove(filename)
279
        os.remove(filename)
277
 
280
 
278
def generate_expected_delivery_missed_orders_file():
281
def generate_expected_delivery_missed_orders_file():
279
    
282
    
280
    txn_client = TransactionClient().get_client()
-
 
281
    orders_not_delivered = txn_client.getUndeliveredOrdersExpectedDeliveryDateNotMet()
283
    orders_not_delivered = get_orders_not_met_expected_delivery_date()
282
    
284
    
283
    print "orders_not_delivered"
285
    print "orders_not_delivered"
284
    print orders_not_delivered
286
    print orders_not_delivered
285
    
287
    
286
    logistics_client = LogisticsClient().get_client()
288
    logistics_client = LogisticsClient().get_client()
Line 353... Line 355...
353
                    <th>Customer State</th>
355
                    <th>Customer State</th>
354
                    <th>Customer Pincode</th>
356
                    <th>Customer Pincode</th>
355
                </tr>
357
                </tr>
356
    """  
358
    """  
357
 
359
 
358
    order = Order()
-
 
359
    mode = {}
360
    mode = {}
360
    mode[0] = 'Prepaid'
361
    mode[0] = 'Prepaid'
361
    mode[1] = 'COD'
362
    mode[1] = 'COD'
362
    
363
    
363
    source = {}
364
    source = {}
Line 383... Line 384...
383
        html +="<td>" + str(source[order.source]) + "</td>"
384
        html +="<td>" + str(source[order.source]) + "</td>"
384
        sheet.write(i, 3, order.airwaybill_no)
385
        sheet.write(i, 3, order.airwaybill_no)
385
        html +="<td>" + str(order.airwaybill_no) + "</td>"
386
        html +="<td>" + str(order.airwaybill_no) + "</td>"
386
        sheet.write(i, 4, order.statusDescription)
387
        sheet.write(i, 4, order.statusDescription)
387
        html +="<td>" + order.statusDescription + "</td>"
388
        html +="<td>" + order.statusDescription + "</td>"
388
        sheet.write(i, 5, to_py_date(order.shipping_timestamp), date_style)
389
        sheet.write(i, 5, order.shipping_timestamp, date_style)
389
        html +="<td>" + str(to_py_date(order.shipping_timestamp)) + "</td>"
390
        html +="<td>" + str(order.shipping_timestamp) + "</td>"
390
        sheet.write(i, 6, to_py_date(order.pickup_timestamp), date_style)
391
        sheet.write(i, 6, order.pickup_timestamp, date_style)
391
        html +="<td>" + str(to_py_date(order.pickup_timestamp)) + "</td>"
392
        html +="<td>" + str(order.pickup_timestamp) + "</td>"
392
        sheet.write(i, 7, to_py_date(order.expected_delivery_time), date_style)
393
        sheet.write(i, 7, order.expected_delivery_time, date_style)
393
        html +="<td>" + str(to_py_date(order.expected_delivery_time)) + "</td>"
394
        html +="<td>" + str(order.expected_delivery_time) + "</td>"
394
        sheet.write(i, 8, warehouses_map.get(order.warehouse_id))
395
        sheet.write(i, 8, warehouses_map.get(order.warehouse_id))
395
        html +="<td>" + str(warehouses_map.get(order.warehouse_id)) + "</td>"
396
        html +="<td>" + str(warehouses_map.get(order.warehouse_id)) + "</td>"
396
        sheet.write(i, 9, order.warehouse_id)
397
        sheet.write(i, 9, order.warehouse_id)
397
        html +="<td>" + str(order.warehouse_id) + "</td>"
398
        html +="<td>" + str(order.warehouse_id) + "</td>"
398
        sheet.write(i, 10, providers_map.get(order.logistics_provider_id))
399
        sheet.write(i, 10, providers_map.get(order.logistics_provider_id))
Line 441... Line 442...
441
    if options.undelivered:
442
    if options.undelivered:
442
        generate_expected_delivery_missed_orders_file()
443
        generate_expected_delivery_missed_orders_file()
443
 
444
 
444
if __name__ == '__main__':
445
if __name__ == '__main__':
445
    main()
446
    main()
-
 
447
    try:
-
 
448
        session.close()
-
 
449
    except:
-
 
450
        pass