Subversion Repositories SmartDukaan

Rev

Rev 15577 | Rev 15791 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
14450 amit.gupta 1
'''
2
Created on Mar 13, 2015
3
 
4
@author: amit
5
'''
6
from datetime import date, datetime, timedelta
14632 amit.gupta 7
from dtr.main import Store, sourceMap
14650 amit.gupta 8
from dtr.reports.amazonreco import generateAmazonReco
15445 amit.gupta 9
from dtr.storage import Mysql, DataService
15540 amit.gupta 10
from dtr.storage.DataService import Users, Clicks, FlipkartOrders
14613 amit.gupta 11
from dtr.storage.Mysql import getOrdersAfterDate, getOrdersByTag
15423 amit.gupta 12
from dtr.utils.utils import fromTimeStamp
13
from elixir import *
15440 amit.gupta 14
from sqlalchemy.sql.expression import func, func, or_
14450 amit.gupta 15
from email import encoders
16
from email.mime.base import MIMEBase
17
from email.mime.multipart import MIMEMultipart
18
from email.mime.text import MIMEText
19
from pymongo.mongo_client import MongoClient
14460 amit.gupta 20
from xlrd import open_workbook
14524 amit.gupta 21
from xlutils.copy import copy
14460 amit.gupta 22
from xlwt.Workbook import Workbook
14450 amit.gupta 23
import MySQLdb
24
import smtplib
25
import time
26
import xlwt
14460 amit.gupta 27
#from xlwt import 
14450 amit.gupta 28
 
15445 amit.gupta 29
DataService.initialize()
14450 amit.gupta 30
client = MongoClient('mongodb://localhost:27017/')
31
 
32
SENDER = "cnc.center@shop2020.in"
33
PASSWORD = "5h0p2o2o"
34
SUBJECT = "DTR User Segmentation report for " + date.today().isoformat()
35
SMTP_SERVER = "smtp.gmail.com"
36
SMTP_PORT = 587    
37
 
14647 amit.gupta 38
XLS_FILENAME = "snapdealaffiliatereco.xls"
14632 amit.gupta 39
XLS_O_FILENAME = "allorders.xls"
14647 amit.gupta 40
XLS_F_FILENAME = "flipkartaffiliatereco.xls"
14650 amit.gupta 41
XLS_A_FILENAME = "amazonaffiliatereco.xls"
14460 amit.gupta 42
boldStyle = xlwt.XFStyle()
43
f = xlwt.Font()
44
f.bold = True
45
boldStyle.font = f
46
i = -1
14616 amit.gupta 47
 
48
datetime_format = xlwt.XFStyle()
49
datetime_format.num_format_str = 'dd/mm/yyyy HH:MM AM/PM'
15540 amit.gupta 50
categoryMap = {3:"Mobiles", 5:"Tablets"}
14450 amit.gupta 51
def generateFlipkartReco():
14508 amit.gupta 52
    global i
53
    i = -1
14460 amit.gupta 54
    curs = getOrdersAfterDate(datetime.now() - timedelta(days=30), 2)
55
    db = client.Dtr
14647 amit.gupta 56
    wb = xlwt.Workbook()
57
    #rb = open_workbook(XLS_F_FILENAME)
58
    #wb = copy(rb)
14460 amit.gupta 59
    #wb = xlwt.Workbook()
60
    row = 0
14647 amit.gupta 61
    row2 = 0
62
    row3 = 0
63
    row4 = 0
64
    worksheet = wb.add_sheet("All Orders")
65
    worksheet1 = wb.add_sheet("Orders Reconciled")
66
    worksheet2 = wb.add_sheet("Orders not Reconciled")
67
    worksheet3 = wb.add_sheet("Aff not Reconciled")
14460 amit.gupta 68
    worksheet.write(row, inc(), 'Order Id', boldStyle)
14647 amit.gupta 69
    worksheet1.write(row, i, 'Order Id', boldStyle)
70
    worksheet2.write(row, i, 'Order Id', boldStyle)
14460 amit.gupta 71
    worksheet.write(row, inc(), 'User Id', boldStyle)
14647 amit.gupta 72
    worksheet1.write(row, i, 'User Id', boldStyle)
73
    worksheet2.write(row, i, 'User Id', boldStyle)
14474 amit.gupta 74
    worksheet.write(row, inc(), 'Username', boldStyle)
14647 amit.gupta 75
    worksheet1.write(row, i, 'Username', boldStyle)
76
    worksheet2.write(row, i, 'Username', boldStyle)
14771 amit.gupta 77
    worksheet.write(row, inc(), 'Version code', boldStyle)
78
    worksheet1.write(row, i, 'Version code', boldStyle)
79
    worksheet2.write(row, i, 'Version code', boldStyle)
80
    worksheet.write(row, inc(), 'Device', boldStyle)
81
    worksheet1.write(row, i, 'Device', boldStyle)
82
    worksheet2.write(row, i, 'Device', boldStyle)
14460 amit.gupta 83
    worksheet.write(row, inc(), 'Merchant Order Id', boldStyle)
14647 amit.gupta 84
    worksheet1.write(row, i, 'Merchant Order Id', boldStyle)
85
    worksheet2.write(row, i, 'Merchant Order Id', boldStyle)
14460 amit.gupta 86
    worksheet.write(row, inc(), 'Product Title', boldStyle)
14647 amit.gupta 87
    worksheet1.write(row, i, 'Product Title', boldStyle)
88
    worksheet2.write(row, i, 'Product Title', boldStyle)
14460 amit.gupta 89
    worksheet.write(row, inc(), 'Price', boldStyle)
14647 amit.gupta 90
    worksheet1.write(row, i, 'Price', boldStyle)
91
    worksheet2.write(row, i, 'Price', boldStyle)
14460 amit.gupta 92
    worksheet.write(row, inc(), 'Quantity', boldStyle)
14647 amit.gupta 93
    worksheet1.write(row, i, 'Quantity', boldStyle)
94
    worksheet2.write(row, i, 'Quantity', boldStyle)
14460 amit.gupta 95
    worksheet.write(row, inc(), 'Status', boldStyle)
14647 amit.gupta 96
    worksheet1.write(row, i, 'Status', boldStyle)
97
    worksheet2.write(row, i, 'Status', boldStyle)
14460 amit.gupta 98
    worksheet.write(row, inc(), 'Detailed Status', boldStyle)
14647 amit.gupta 99
    worksheet1.write(row, i, 'Detailed Status', boldStyle)
100
    worksheet2.write(row, i, 'Detailed Status', boldStyle)
14460 amit.gupta 101
    worksheet.write(row, inc(), 'Cashback Status', boldStyle)
14647 amit.gupta 102
    worksheet1.write(row, i, 'Cashback Status', boldStyle)
103
    worksheet2.write(row, i, 'Cashback Status', boldStyle)
14460 amit.gupta 104
    worksheet.write(row, inc(), 'Our CashBack', boldStyle)
14647 amit.gupta 105
    worksheet1.write(row, i, 'Our CashBack', boldStyle)
106
    worksheet2.write(row, i, 'Our CashBack', boldStyle)
107
    worksheet.write(row, inc(), 'Sale Date', boldStyle) 
108
    worksheet1.write(row, i, 'Sale Date', boldStyle)
109
    worksheet2.write(row, i, 'Sale Date', boldStyle)
14460 amit.gupta 110
    worksheet.write(row, inc(), 'SubtagId', boldStyle)
14647 amit.gupta 111
    worksheet1.write(row, i, 'SubtagId', boldStyle)
112
    worksheet2.write(row, i, 'SubtagId', boldStyle)
14460 amit.gupta 113
    worksheet.write(row, inc(), 'Category', boldStyle)
14647 amit.gupta 114
    worksheet1.write(row, i, 'Category', boldStyle)
14460 amit.gupta 115
    worksheet.write(row, inc(), 'Aff PayOut', boldStyle)
14647 amit.gupta 116
    worksheet1.write(row, i, 'Aff PayOut', boldStyle)
14460 amit.gupta 117
    worksheet.write(row, inc(), 'Aff Sale Amount', boldStyle)
14647 amit.gupta 118
    worksheet1.write(row, i, 'Aff Sale Amount', boldStyle)
14460 amit.gupta 119
    worksheet.write(row, inc(), 'Aff Sale Date', boldStyle)
14647 amit.gupta 120
    worksheet1.write(row, i, 'Aff Sale Date', boldStyle)
14460 amit.gupta 121
    for row1 in curs:
122
        orderId = row1[0]
123
        order = db.merchantOrder.find_one({"orderId":orderId})
124
        if order is None:
125
            continue
126
        saleTime = int(time.mktime(datetime.strptime(order['placedOn'], "%d %B, %Y %I:%M %p").replace(hour=0, minute=0, second=0, microsecond=0).timetuple()))
127
        #saleTime1 = int(time.mktime((datetime.strptime(order['placedOn'], "%b %d, %Y %I:%M %p") + timedelta(seconds=-60)).timetuple()))
14647 amit.gupta 128
        reconciled_affiliates = []
14460 amit.gupta 129
        for subOrder in order['subOrders']: 
14647 amit.gupta 130
            affs = list(db.flipkartOrderAffiliateInfo.find({"productCode":subOrder.get("productCode"), "saleDateInt":saleTime}))
14460 amit.gupta 131
            row += 1
132
            i=-1
133
            worksheet.write(row, inc(), orderId)
134
            worksheet.write(row, inc(), row1[1])
14474 amit.gupta 135
            worksheet.write(row, inc(), row1[-1])
14771 amit.gupta 136
            worksheet.write(row, inc(), row1[-2])
137
            worksheet.write(row, inc(), row1[-3])
14460 amit.gupta 138
            worksheet.write(row, inc(), order['merchantOrderId'])
139
            worksheet.write(row, inc(), subOrder['productTitle'])
140
            worksheet.write(row, inc(), subOrder['amountPaid'])
141
            worksheet.write(row, inc(), subOrder['quantity'])
142
            worksheet.write(row, inc(), subOrder['status'])
143
            worksheet.write(row, inc(), subOrder['detailedStatus'])
144
            worksheet.write(row, inc(), subOrder['cashBackStatus'])
145
            worksheet.write(row, inc(), subOrder['cashBackAmount'])
146
            worksheet.write(row, inc(), subOrder['placedOn'])
147
            worksheet.write(row, inc(), order['subTagId'])
148
            for aff in affs:
14647 amit.gupta 149
                if aff["_id"] not in reconciled_affiliates and aff['subTagId']== order['subTagId']:
150
                    reconciled_affiliates.append(aff["_id"])
151
                    row2 += 1
152
                    i = -1 
153
                    worksheet1.write(row2, inc(), orderId)
154
                    worksheet1.write(row2, inc(), row1[1])
155
                    worksheet1.write(row2, inc(), row1[-1])
14771 amit.gupta 156
                    worksheet1.write(row2, inc(), row1[-2])
157
                    worksheet1.write(row2, inc(), row1[-3])
14647 amit.gupta 158
                    worksheet1.write(row2, inc(), order['merchantOrderId'])
159
                    worksheet1.write(row2, inc(), subOrder['productTitle'])
160
                    worksheet1.write(row2, inc(), subOrder['amountPaid'])
161
                    worksheet1.write(row2, inc(), subOrder['quantity'])
162
                    worksheet1.write(row2, inc(), subOrder['status'])
163
                    worksheet1.write(row2, inc(), subOrder['detailedStatus'])
164
                    worksheet1.write(row2, inc(), subOrder['cashBackStatus'])
165
                    worksheet1.write(row2, inc(), subOrder['cashBackAmount'])
166
                    worksheet1.write(row2, inc(), subOrder['placedOn'])
167
                    worksheet1.write(row2, inc(), order['subTagId'])
168
                    db.flipkartOrderAffiliateInfo.update(
169
                        {"productCode":subOrder.get("productCode"), "saleDateInt":saleTime, "subTagId":aff['subTagId']}, 
170
                        {"$set":{"reconciled":True}})
171
                    db.merchantOrder.update({"merchantOrderId":order["merchantOrderId"]}, 
172
                                            {"$set":{"reconciled":True}})
14460 amit.gupta 173
                    worksheet.write(row, inc(), aff['category'])
14647 amit.gupta 174
                    worksheet1.write(row2, i, aff['category'])
14460 amit.gupta 175
                    worksheet.write(row, inc(), aff['payOut'])
14647 amit.gupta 176
                    worksheet1.write(row2, i, aff['payOut'])
14460 amit.gupta 177
                    worksheet.write(row, inc(), aff['saleAmount'])
14647 amit.gupta 178
                    worksheet1.write(row2, i, aff['saleAmount'])
14460 amit.gupta 179
                    worksheet.write(row, inc(), aff['saleDate'])
14647 amit.gupta 180
                    worksheet1.write(row2, i, aff['saleDate'])
14460 amit.gupta 181
                    break
14647 amit.gupta 182
            row3 += 1
183
            i=-1
184
            worksheet2.write(row3, inc(), orderId)
185
            worksheet2.write(row3, inc(), row1[1])
186
            worksheet2.write(row3, inc(), row1[-1])
14771 amit.gupta 187
            worksheet2.write(row3, inc(), row1[-2])
188
            worksheet2.write(row3, inc(), row1[-3])
14647 amit.gupta 189
            worksheet2.write(row3, inc(), order['merchantOrderId'])
190
            worksheet2.write(row3, inc(), subOrder['productTitle'])
191
            worksheet2.write(row3, inc(), subOrder['amountPaid'])
192
            worksheet2.write(row3, inc(), subOrder['quantity'])
193
            worksheet2.write(row3, inc(), subOrder['status'])
194
            worksheet2.write(row3, inc(), subOrder['detailedStatus'])
195
            worksheet2.write(row3, inc(), subOrder['cashBackStatus'])
196
            worksheet2.write(row3, inc(), subOrder['cashBackAmount'])
197
            worksheet2.write(row3, inc(), subOrder['placedOn'])
198
            worksheet2.write(row3, inc(), order['subTagId'])
199
 
200
    i=-1
201
    worksheet3.write(0, inc(), "category",boldStyle)    
202
    worksheet3.write(0, inc(), "conversionStatus",boldStyle)    
203
    worksheet3.write(0, inc(), "Product Title",boldStyle)    
204
    worksheet3.write(0, inc(), "price",boldStyle)    
205
    worksheet3.write(0, inc(), "quantity",boldStyle)    
206
    worksheet3.write(0, inc(), "payOut",boldStyle)    
207
    worksheet3.write(0, inc(), "saleDate",boldStyle)    
208
    worksheet3.write(0, inc(), "subTagId",boldStyle)
209
    for aff in db.flipkartOrderAffiliateInfo.find({"reconciled":{"$exists":False}}):
210
        row4 += 1
211
        i =-1
212
        worksheet3.write(row4, inc(), aff["category"])    
213
        worksheet3.write(row4, inc(), aff["conversionStatus"])    
214
        skuData = getSkuData(2, aff["productCode"])
215
        if skuData is None:    
216
            worksheet3.write(row4, inc(), aff["productTitle"])
217
        else:
218
            worksheet3.write(row4, inc(), skuData["product_name"])
219
        worksheet3.write(row4, inc(), aff['price'])    
220
        worksheet3.write(row4, inc(), aff['quantity'])    
221
        worksheet3.write(row4, inc(), aff['payOut'])    
222
        worksheet3.write(row4, inc(), aff['saleDate'])    
223
        worksheet3.write(row4, inc(), aff['subTagId'])    
224
 
225
 
226
 
227
    wb.save(XLS_F_FILENAME)
14450 amit.gupta 228
def generateSnapDealReco():
14524 amit.gupta 229
    global i
14460 amit.gupta 230
    curs = getOrdersAfterDate(datetime.now() - timedelta(days=30), 3)
14450 amit.gupta 231
    db = client.Dtr
14524 amit.gupta 232
    notReconciled = {}
14487 amit.gupta 233
    matchedList = []
14450 amit.gupta 234
    workbook = xlwt.Workbook()
14501 amit.gupta 235
    worksheet = workbook.add_sheet("Snapdeal Reconciled")
236
    worksheet1 = workbook.add_sheet("Snapdeal Reconciled All")
14508 amit.gupta 237
    worksheet2 = workbook.add_sheet("Snapdeal Orders not reconciled")
238
    affNotReconciledSheet = workbook.add_sheet("Snapdeal Aff not reconciled")
239
    setHeaders(worksheet, worksheet1, worksheet2, affNotReconciledSheet)
14450 amit.gupta 240
    row = 0
14501 amit.gupta 241
    anotherrow = 0
14508 amit.gupta 242
    row2 = 0
15577 amit.gupta 243
    row5=0
14450 amit.gupta 244
    for row1 in curs:
245
        orderId = row1[0]
246
        order = db.merchantOrder.find_one({"orderId":orderId})
247
        if order is None:
248
            continue
14496 amit.gupta 249
        #saleTime = int(time.mktime(datetime.strptime(order['placedOn'], "%b %d, %Y, %I:%M %p").timetuple()))
14450 amit.gupta 250
        aff = list(db.snapdealOrderAffiliateInfo.find({"subTagId":order["subTagId"]}))
14501 amit.gupta 251
        anotherrow += 1
14988 amit.gupta 252
        try:
253
            formattedTimestamp = order['placedOn']
254
            timestamp1 = int(time.mktime(datetime.strptime(order['placedOn'], "%b %d, %Y, %I:%M %p").timetuple()))
255
        except:
256
            timestamp1 = int(time.mktime(row1[-4].timetuple()))
257
            formattedTimestamp = datetime.strftime(fromTimeStamp(timestamp1), "%b %d, %Y, %I:%M %p")
14524 amit.gupta 258
        if len(aff) > 0 and order["subTagId"] not in matchedList and int(order["paidAmount"])==int(aff[0]["saleAmount"]): 
14501 amit.gupta 259
            matchedList.append(order["subTagId"])
14610 amit.gupta 260
            db.snapdealOrderAffiliateInfo.update({"adId":aff[0].get("adId")}, {"$set":{"reconciled":True, "orderId":orderId}}, multi=True)
14501 amit.gupta 261
            order['reconciled'] = True
14610 amit.gupta 262
            order['adId'] = aff[0].get("adId")
14501 amit.gupta 263
            db.merchantOrder.save(order)
264
            row += 1
265
            i=-1 
266
            worksheet.write(row, inc(), orderId)
267
            worksheet1.write(anotherrow, i, orderId)
268
            worksheet.write(row, inc(), row1[1])
269
            worksheet1.write(anotherrow, i, row1[1])
14850 amit.gupta 270
            worksheet.write(row, inc(), row1[-1])
271
            worksheet1.write(anotherrow, i, row1[-1])
272
            worksheet.write(row, inc(), row1[-2])
273
            worksheet1.write(anotherrow, i, row1[-2])
14771 amit.gupta 274
            worksheet.write(row, inc(), row1[-3])
275
            worksheet1.write(anotherrow, i, row1[-3])
14501 amit.gupta 276
            worksheet.write(row, inc(), order['merchantOrderId'])
277
            worksheet1.write(anotherrow, i, order['merchantOrderId'])
278
            worksheet.write(row, inc(), order['subTagId'])
279
            worksheet1.write(anotherrow, i, order['subTagId'])
280
            worksheet.write(row, inc(), order['placedOn'])
281
            worksheet1.write(anotherrow, i, order['placedOn'])
14988 amit.gupta 282
            worksheet.write(row, inc(), formattedTimestamp)
283
            worksheet1.write(anotherrow, i, formattedTimestamp)
14501 amit.gupta 284
            worksheet.write(row, inc(), int(order['paidAmount']))
285
            worksheet1.write(anotherrow, i, int(order['paidAmount']))
14524 amit.gupta 286
            worksheet.write(row, inc(), aff[0]['saleDate'])
287
            worksheet1.write(anotherrow, i, aff[0]['saleDate'])
288
            worksheet.write(row, inc(), aff[0]['saleAmount'])
289
            worksheet1.write(anotherrow, i, aff[0]['saleAmount'])
290
            worksheet.write(row, inc(), aff[0]['payOut'])
291
            worksheet1.write(anotherrow, i, aff[0]['payOut'])
14601 amit.gupta 292
            worksheet.write(row, inc(), aff[0]['ip'])
293
            worksheet1.write(anotherrow, i, aff[0]['ip'])
14501 amit.gupta 294
            k = i
14504 amit.gupta 295
            row -= 1
296
            anotherrow -= 1
14501 amit.gupta 297
            for subOrder in order['subOrders']:
298
                i = k
14503 amit.gupta 299
                row += 1
300
                anotherrow += 1
14501 amit.gupta 301
                worksheet.write(row, inc(), subOrder['productTitle'])
302
                worksheet1.write(anotherrow, i, subOrder['productTitle'])
303
                worksheet.write(row, inc(), subOrder['amountPaid'])
304
                worksheet1.write(anotherrow, i, subOrder['amountPaid'])
305
                worksheet.write(row, inc(), subOrder['quantity'])
306
                worksheet1.write(anotherrow, i, subOrder['quantity'])
307
                worksheet.write(row, inc(), subOrder['status'])
308
                worksheet1.write(anotherrow, i, subOrder['status'])
309
                worksheet.write(row, inc(), subOrder['cashBackStatus'])
310
                worksheet1.write(anotherrow, i, subOrder['cashBackStatus'])
311
                worksheet.write(row, inc(), subOrder['cashBackAmount'])
312
                worksheet1.write(anotherrow, i, subOrder['cashBackAmount'])
14504 amit.gupta 313
 
14501 amit.gupta 314
        else:
14524 amit.gupta 315
            i=-1
14501 amit.gupta 316
            worksheet1.write(anotherrow, inc(), orderId)
317
            worksheet1.write(anotherrow, inc(), row1[1])
14850 amit.gupta 318
            worksheet1.write(anotherrow, inc(), row1[-1])
319
            worksheet1.write(anotherrow, inc(), row1[-2])
14771 amit.gupta 320
            worksheet1.write(anotherrow, inc(), row1[-3])
14501 amit.gupta 321
            worksheet1.write(anotherrow, inc(), order['merchantOrderId'])
322
            worksheet1.write(anotherrow, inc(), order['subTagId'])
323
            worksheet1.write(anotherrow, inc(), order['placedOn'])
15576 amit.gupta 324
            worksheet1.write(anotherrow, inc(), formattedTimestamp)
14501 amit.gupta 325
            worksheet1.write(anotherrow, inc(), int(order['paidAmount']))
14873 amit.gupta 326
 
14524 amit.gupta 327
            notReconciled[orderId] = (anotherrow, i, int(order['paidAmount']), timestamp1, order["subTagId"]) 
328
            inc()
329
            inc()
330
            inc()
14771 amit.gupta 331
            inc()
14501 amit.gupta 332
            k = i
14504 amit.gupta 333
            anotherrow -= 1
14501 amit.gupta 334
            for subOrder in order['subOrders']:
14503 amit.gupta 335
                anotherrow += 1
14501 amit.gupta 336
                i = k
14505 amit.gupta 337
                worksheet1.write(anotherrow, inc(), subOrder['productTitle'])
338
                worksheet1.write(anotherrow, inc(), subOrder['amountPaid'])
339
                worksheet1.write(anotherrow, inc(), subOrder['quantity'])
340
                worksheet1.write(anotherrow, inc(), subOrder['status'])
341
                worksheet1.write(anotherrow, inc(), subOrder['cashBackStatus'])
342
                worksheet1.write(anotherrow, inc(), subOrder['cashBackAmount'])
15577 amit.gupta 343
            row5 += 1
344
            i=-1
345
            worksheet2.write(row5, inc(), order["orderId"])
346
            worksheet2.write(row5, inc(), row1[1])
347
            worksheet2.write(row5, inc(), row1[-1])
348
            worksheet2.write(row5, inc(), row1[-2])
349
            worksheet2.write(row5, inc(), row1[-3])
350
            worksheet2.write(row5, inc(), order['merchantOrderId'])
351
            worksheet2.write(row5, inc(), order['subTagId'])
352
            worksheet2.write(row5, inc(), order['placedOn'])
353
            worksheet2.write(row5, inc(), formattedTimestamp)
354
            worksheet2.write(row5, inc(), int(order['paidAmount']))
355
            row5 -=1
356
            k=i
357
            for subOrder in order['subOrders']:
358
                i = k
15578 amit.gupta 359
                row5 += 1
15577 amit.gupta 360
                worksheet2.write(row5, inc(), subOrder['productTitle'])
361
                worksheet2.write(row5, inc(), subOrder['amountPaid'])
362
                worksheet2.write(row5, inc(), subOrder['quantity'])
363
                worksheet2.write(row5, inc(), subOrder['status'])
364
                worksheet2.write(row5, inc(), subOrder['cashBackStatus'])
15578 amit.gupta 365
                worksheet2.write(row5, inc(), subOrder['cashBackAmount'])
14524 amit.gupta 366
 
367
    last30Days =  date.today() - timedelta(days=30)
368
    int(time.mktime(last30Days.timetuple()))
369
    row = 0
370
    for offer in db.snapdealOrderAffiliateInfo.find({"reconciled":{"$exists":False}, 
371
                                                     "saleTime":{"$gt":int(time.mktime(last30Days.timetuple())),
372
                                                                 "$lt":int(time.mktime(date.today().timetuple()))}} ):
373
        subTagId = offer.get("subTagId")
374
        saleTime = offer.get("saleTime")
375
        orders = getOrdersByTag(subTagId, 3)
376
        for order in orders:
377
            if notReconciled.has_key(order[0]):
378
                (roww, column, paidAmount, timestamp1, oSubTagId) = notReconciled[order[0]]
379
                if paidAmount==int(offer.get("saleAmount")) and timestamp1 <= saleTime and timestamp1 + 120 >= saleTime:
380
                    i = column
14570 amit.gupta 381
                    worksheet1.write(roww, inc(), offer.get("saleDate"))        
14527 amit.gupta 382
                    worksheet1.write(roww, inc(), offer.get("saleAmount"))        
383
                    worksheet1.write(roww, inc(), offer.get("payOut"))
384
                    del notReconciled[order[0]]
14530 amit.gupta 385
                    print "found match for user", order[1]
14610 amit.gupta 386
                    db.snapdealOrderAffiliateInfo.update({"adId":offer.get("adId")}, {"$set":{"reconciled":True, "orderId":order[0]}}, multi=True)
387
                    db.merchantOrder.update({"orderId":order[0]}, {"$set":{"reconciled":True, "adId":offer.get("adId")}}, multi=True)
14570 amit.gupta 388
                    break
14530 amit.gupta 389
 
14570 amit.gupta 390
    unreconciledOrders = notReconciled.keys()
15577 amit.gupta 391
 
14570 amit.gupta 392
 
393
 
394
    for offer in db.snapdealOrderAffiliateInfo.find({"reconciled":{"$exists":False}, 
395
                                                     "saleTime":{"$gt":int(time.mktime(last30Days.timetuple())),
396
                                                                 "$lt":int(time.mktime(date.today().timetuple()))}} ):
397
        row += 1
398
        i=-1
399
        affNotReconciledSheet.write(row, inc(), offer.get("adId")) 
400
        affNotReconciledSheet.write(row, inc(), offer.get("subTagId")) 
401
        affNotReconciledSheet.write(row, inc(), offer.get("saleDate")) 
402
        affNotReconciledSheet.write(row, inc(), offer.get("saleAmount")) 
403
        affNotReconciledSheet.write(row, inc(), offer.get("payOut")) 
404
        affNotReconciledSheet.write(row, inc(), offer.get("conversionStatus"))
14601 amit.gupta 405
        affNotReconciledSheet.write(row, inc(), offer.get("ip"))
14570 amit.gupta 406
 
15540 amit.gupta 407
    workbook.save(XLS_FILENAME)
14450 amit.gupta 408
 
14647 amit.gupta 409
def sendmail(email, message, title, *varargs):
14450 amit.gupta 410
    if email == "":
411
        return
412
    mailServer = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
413
    mailServer.ehlo()
414
    mailServer.starttls()
415
    mailServer.ehlo()
416
 
417
    # Create the container (outer) email message.
418
    msg = MIMEMultipart()
419
    msg['Subject'] = title
420
    msg.preamble = title
421
    html_msg = MIMEText(message, 'html')
422
    msg.attach(html_msg)
423
 
424
    #snapdeal more to be added here
14647 amit.gupta 425
    for fileName in varargs:
426
        snapdeal = MIMEBase('application', 'vnd.ms-excel')
427
        snapdeal.set_payload(file(fileName).read())
428
        encoders.encode_base64(snapdeal)
429
        snapdeal.add_header('Content-Disposition', 'attachment;filename=' + fileName)
430
        msg.attach(snapdeal)
14450 amit.gupta 431
 
432
 
433
    email.append('amit.gupta@shop2020.in')
434
    MAILTO = email 
435
    mailServer.login(SENDER, PASSWORD)
436
    mailServer.sendmail(PASSWORD, MAILTO, msg.as_string())
437
 
14508 amit.gupta 438
def setHeaders(worksheet, worksheet1, worksheet2, affNotReconciledSheet):
14505 amit.gupta 439
    boldStyle = xlwt.XFStyle()
440
    f = xlwt.Font()
441
    f.bold = True
442
    boldStyle.font = f
14501 amit.gupta 443
    row = 0
444
    global i
445
    i=-1    
446
    worksheet.write(row, inc(), 'Order Id', boldStyle)
447
    worksheet.write(row, inc(), 'User Id', boldStyle)
14850 amit.gupta 448
    worksheet.write(row, inc(), 'Username', boldStyle)
14601 amit.gupta 449
    worksheet.write(row, inc(), 'Version Code', boldStyle)
14771 amit.gupta 450
    worksheet.write(row, inc(), 'Device', boldStyle)
14501 amit.gupta 451
    worksheet.write(row, inc(), 'Merchant Order Id', boldStyle)
452
    worksheet.write(row, inc(), 'SubtagId', boldStyle)
453
    worksheet.write(row, inc(), 'Sale Date', boldStyle)
14988 amit.gupta 454
    worksheet.write(row, inc(), 'Dtr Sale Date', boldStyle)
14501 amit.gupta 455
    worksheet.write(row, inc(), 'Sale Amount', boldStyle)
456
    worksheet.write(row, inc(), 'Aff Sale Date', boldStyle)
457
    worksheet.write(row, inc(), 'Aff Sale Amt', boldStyle)
458
    worksheet.write(row, inc(), 'Aff PayOut', boldStyle)
14601 amit.gupta 459
    worksheet.write(row, inc(), 'IP', boldStyle)
14501 amit.gupta 460
    worksheet.write(row, inc(), 'Product Title', boldStyle)
461
    worksheet.write(row, inc(), 'Price', boldStyle)
462
    worksheet.write(row, inc(), 'Quantity', boldStyle)
463
    worksheet.write(row, inc(), 'Status', boldStyle)
464
    worksheet.write(row, inc(), 'Cashback Status', boldStyle)
465
    worksheet.write(row, inc(), 'CashBack', boldStyle)
466
 
14505 amit.gupta 467
    i = -1
14501 amit.gupta 468
    worksheet1.write(row, inc(), 'Order Id', boldStyle)
469
    worksheet1.write(row, inc(), 'User Id', boldStyle)
14850 amit.gupta 470
    worksheet1.write(row, inc(), 'Username', boldStyle)
14601 amit.gupta 471
    worksheet1.write(row, inc(), 'Version Code', boldStyle)
14771 amit.gupta 472
    worksheet1.write(row, inc(), 'Device', boldStyle)
14501 amit.gupta 473
    worksheet1.write(row, inc(), 'Merchant Order Id', boldStyle)
474
    worksheet1.write(row, inc(), 'SubtagId', boldStyle)
475
    worksheet1.write(row, inc(), 'Sale Date', boldStyle)
14988 amit.gupta 476
    worksheet1.write(row, inc(), 'Dtr Sale Date', boldStyle)
14501 amit.gupta 477
    worksheet1.write(row, inc(), 'Sale Amount', boldStyle)
478
    worksheet1.write(row, inc(), 'Aff Sale Date', boldStyle)
479
    worksheet1.write(row, inc(), 'Aff Sale Amt', boldStyle)
480
    worksheet1.write(row, inc(), 'Aff PayOut', boldStyle)
14601 amit.gupta 481
    worksheet1.write(row, inc(), 'IP', boldStyle)
14501 amit.gupta 482
    worksheet1.write(row, inc(), 'Product Title', boldStyle)
483
    worksheet1.write(row, inc(), 'Price', boldStyle)
484
    worksheet1.write(row, inc(), 'Quantity', boldStyle)
485
    worksheet1.write(row, inc(), 'Status', boldStyle)
486
    worksheet1.write(row, inc(), 'Cashback Status', boldStyle)
487
    worksheet1.write(row, inc(), 'CashBack', boldStyle) 
14508 amit.gupta 488
 
489
    i = -1
490
    worksheet2.write(row, inc(), 'Order Id', boldStyle)
491
    worksheet2.write(row, inc(), 'User Id', boldStyle)
14850 amit.gupta 492
    worksheet2.write(row, inc(), 'Username', boldStyle)
14605 amit.gupta 493
    worksheet2.write(row, inc(), 'Version Code', boldStyle)
14771 amit.gupta 494
    worksheet2.write(row, inc(), 'Device', boldStyle)
14508 amit.gupta 495
    worksheet2.write(row, inc(), 'Merchant Order Id', boldStyle)
496
    worksheet2.write(row, inc(), 'SubtagId', boldStyle)
497
    worksheet2.write(row, inc(), 'Sale Date', boldStyle)
14988 amit.gupta 498
    worksheet2.write(row, inc(), 'Dtr Sale Date', boldStyle)
14508 amit.gupta 499
    worksheet2.write(row, inc(), 'Sale Amount', boldStyle)
500
    worksheet2.write(row, inc(), 'Product Title', boldStyle)
501
    worksheet2.write(row, inc(), 'Price', boldStyle)
502
    worksheet2.write(row, inc(), 'Quantity', boldStyle)
503
    worksheet2.write(row, inc(), 'Status', boldStyle)
504
    worksheet2.write(row, inc(), 'Cashback Status', boldStyle)
505
    worksheet2.write(row, inc(), 'CashBack', boldStyle)
14450 amit.gupta 506
 
14508 amit.gupta 507
    i =-1
508
    affNotReconciledSheet.write(row, inc(), 'AdId', boldStyle) 
509
    affNotReconciledSheet.write(row, inc(), 'subTagId', boldStyle) 
510
    affNotReconciledSheet.write(row, inc(), 'Sale Date', boldStyle) 
511
    affNotReconciledSheet.write(row, inc(), 'Sale Amount', boldStyle) 
512
    affNotReconciledSheet.write(row, inc(), 'Pay Out', boldStyle) 
513
    affNotReconciledSheet.write(row, inc(), 'Status', boldStyle) 
14601 amit.gupta 514
    affNotReconciledSheet.write(row, inc(), 'IP', boldStyle)
14524 amit.gupta 515
 
516
def getUserAmountReconciled():
517
    pass
518
 
14613 amit.gupta 519
def getUserOrders():
520
    global i
521
    rb = open_workbook(XLS_FILENAME,formatting_info=True)
522
    wb = copy(rb)
523
    worksheet = wb.add_sheet("All Users")
524
    worksheet1 = wb.add_sheet("Suspected Users")
14632 amit.gupta 525
    workbook = xlwt.Workbook()
526
    sh1 = workbook.add_sheet("All Orders")
15423 amit.gupta 527
    sh2 = workbook.add_sheet("Flipkart Orders")
14632 amit.gupta 528
 
14613 amit.gupta 529
    db=client.Dtr
530
    results = Mysql.fetchResult('''
14771 amit.gupta 531
        select ow.*, u.username, crm1.order_count, u.referrer from order_view ow left join users u on u.id = ow.user_id left join (select user_id, count(*) as order_count from order_view where status = 'ORDER_CREATED'  group by user_id) as crm1 on ow.user_id = crm1.user_id where lower(u.referrer) not like 'emp%' or u.referrer is null; 
14613 amit.gupta 532
        ''',)
533
    row = 0
534
    i=-1
535
    worksheet.write(row, inc(), 'User Id', boldStyle)
536
    worksheet1.write(row, i, 'User Id', boldStyle)
537
    worksheet.write(row, inc(), 'User name', boldStyle)
538
    worksheet1.write(row, i, 'User name', boldStyle)
539
    worksheet.write(row, inc(), 'Order Id', boldStyle)
540
    worksheet1.write(row, i, 'Order Id', boldStyle)
541
    worksheet.write(row, inc(), 'Created On', boldStyle)
542
    worksheet1.write(row, i, 'Created On', boldStyle)
543
    worksheet.write(row, inc(), 'Store Id', boldStyle)
544
    worksheet1.write(row, i, 'Store Id', boldStyle)
545
    worksheet.write(row, inc(), 'Merchant Order Id', boldStyle)
546
    worksheet1.write(row, i, 'Merchant Order Id', boldStyle)
14616 amit.gupta 547
    worksheet.write(row, inc(), 'Product title', boldStyle)
548
    worksheet1.write(row, i, 'Product title', boldStyle)
14613 amit.gupta 549
    worksheet.write(row, inc(), 'Amount Paid', boldStyle)
550
    worksheet1.write(row, i, 'Amount Paid', boldStyle)
551
    worksheet.write(row, inc(), 'Cashback', boldStyle)
552
    worksheet1.write(row, i, 'Cashback', boldStyle)
553
    worksheet.write(row, inc(), 'Order Status', boldStyle)
554
    worksheet1.write(row, i, 'Order Status', boldStyle)
555
    worksheet.write(row, inc(), 'Detailed Status', boldStyle)
556
    worksheet1.write(row, i, 'Detailed Status', boldStyle)
557
    worksheet.write(row, inc(), 'Cashback Status', boldStyle)
558
    worksheet1.write(row, i, 'Cashback Status', boldStyle)
559
    worksheet.write(row, inc(), 'Reconciled', boldStyle)
560
    worksheet1.write(row, i, 'Reconciled', boldStyle)
561
    worksheet.write(row, inc(), 'IP', boldStyle)
562
    worksheet1.write(row, i, 'IP', boldStyle)
14693 amit.gupta 563
    i=-1
564
    sh1.write(row, inc(), 'User Id', boldStyle)
565
    sh1.write(row, inc(), 'User name', boldStyle)
566
    sh1.write(row, inc(), 'Order Id', boldStyle)
567
    sh1.write(row, inc(), 'Created On', boldStyle)
568
    sh1.write(row, inc(), 'Store Id', boldStyle)
569
    sh1.write(row, inc(), 'Merchant Order Id', boldStyle)
14771 amit.gupta 570
    sh1.write(row, inc(), 'Status', boldStyle)
14693 amit.gupta 571
    sh1.write(row, inc(), 'Product title', boldStyle)
572
    sh1.write(row, inc(), 'Referrer', boldStyle)
573
    sh1.write(row, inc(), 'Amount Paid', boldStyle)
14771 amit.gupta 574
    sh1.write(row, inc(), 'Catalog Id', boldStyle)
14693 amit.gupta 575
    sh1.write(row, inc(), 'Brand', boldStyle)
576
    sh1.write(row, inc(), 'Model', boldStyle)
577
    sh1.write(row, inc(), 'Category', boldStyle)
15423 amit.gupta 578
    i =-1
579
    sh2.write(row, inc(), 'User Id', boldStyle)
580
    sh2.write(row, inc(), 'User name', boldStyle)
581
    sh2.write(row, inc(), 'Created On', boldStyle)
582
    sh2.write(row, inc(), 'Store', boldStyle)
583
    sh2.write(row, inc(), 'Status', boldStyle)
584
    sh2.write(row, inc(), 'Product title', boldStyle)
585
    sh2.write(row, inc(), 'Price', boldStyle)
586
    sh2.write(row, inc(), 'Quantity', boldStyle)
587
    sh2.write(row, inc(), 'Catalog Id', boldStyle)
588
    sh2.write(row, inc(), 'Brand', boldStyle)
589
    sh2.write(row, inc(), 'Model', boldStyle)
590
    sh2.write(row, inc(), 'Category', boldStyle)
14613 amit.gupta 591
 
592
    row=0
593
    row2=0
14632 amit.gupta 594
    row3=0
595
    db1 = client.Catalog
14613 amit.gupta 596
    for result in results:
597
        morder = db.merchantOrder.find_one({"orderId":result[0]})
598
        if morder is not None:
599
            subOrders = morder.get("subOrders")
600
            if subOrders is not None:
601
                for  subOrder in subOrders:
14632 amit.gupta 602
                    row3+=1
603
                    i=-1
14699 amit.gupta 604
                    sh1.write(row3, inc(), result[1])
605
                    sh1.write(row3, inc(), result[-3])
14632 amit.gupta 606
                    sh1.write(row3, inc(), result[0])
607
                    sh1.write(row3, inc(), result[-4], datetime_format)
608
                    sh1.write(row3, inc(), sourceMap.get(result[2]))
609
                    sh1.write(row3, inc(), morder.get("merchantOrderId"))
14771 amit.gupta 610
                    sh1.write(row3, inc(), subOrder.get("status"))
14632 amit.gupta 611
                    sh1.write(row3, inc(), subOrder.get("productTitle"))
14693 amit.gupta 612
                    sh1.write(row3, inc(), result[-1])
14632 amit.gupta 613
                    inc()
614
                    if int(subOrder.get("quantity")) > 0:
615
                        sh1.write(row3, i, int(subOrder.get("amountPaid"))/int(subOrder.get("quantity")))
14647 amit.gupta 616
                    skuData = getSkuData(morder.get("storeId"), subOrder.get("productCode"))
617
                    if morder.get("storeId") in (1,2,4,5):
618
                        skuData = db1.MasterData.find_one({'identifier':subOrder.get("productCode").strip(), 'source_id':morder.get("storeId")})
619
                    elif morder.get("storeId") == 3:
620
                        skuData = db1.MasterData.find_one({'secondaryIdentifier':subOrder.get("productCode").strip(), 'source_id':morder.get("storeId")})
14634 amit.gupta 621
                    if skuData is not None:
14771 amit.gupta 622
                        sh1.write(row3, inc(), skuData.get("skuBundleId"))
14634 amit.gupta 623
                        sh1.write(row3, inc(), skuData.get("brand"))
624
                        sh1.write(row3, inc(), skuData.get("model_name"))
625
                        sh1.write(row3, inc(), skuData.get("category"))
14881 amit.gupta 626
                    #removed filter as requested by Rajneesh
627
                    #if subOrder.get("cashBackStatus") == Store.CB_APPROVED or subOrder.get("cashBackStatus") == Store.CB_PENDING:
628
                    row +=1
629
                    i=-1
630
                    worksheet.write(row, inc(), result[0])
631
                    worksheet.write(row, inc(), result[-3])
632
                    worksheet.write(row, inc(), result[1])
633
                    worksheet.write(row, inc(), result[-4], datetime_format)
634
                    worksheet.write(row, inc(), result[2])
635
                    worksheet.write(row, inc(), morder.get("merchantOrderId"))
636
                    worksheet.write(row, inc(), subOrder.get("productTitle"))
637
                    worksheet.write(row, inc(), subOrder.get("amountPaid"))
638
                    worksheet.write(row, inc(), subOrder.get("cashBackAmount"))
639
                    worksheet.write(row, inc(), subOrder.get("status"))
640
                    worksheet.write(row, inc(), subOrder.get("detailedStatus"))
641
                    worksheet.write(row, inc(), subOrder.get("cashBackStatus"))
642
                    worksheet.write(row, inc(), False if morder.get("reconciled") is None else True)
643
                    if morder.get("reconciled") and morder.get("storeId")==3:
644
                        try:
645
                            worksheet.write(row, inc(), db.snapdealOrderAffiliateInfo.find_one({"adId":morder.get("adId"), "reconciled":True}).get("ip"))
646
                        except:
647
                            print "Could not find", morder.get("adId"), "that is reconcired for order", morder.get("orderId")
648
                    if result[-2] >= 10:
649
                        row2 +=1 
14613 amit.gupta 650
                        i=-1
14881 amit.gupta 651
                        worksheet1.write(row2, inc(), result[0])
652
                        worksheet1.write(row2, inc(), result[-3])
653
                        worksheet1.write(row2, inc(), result[1])
654
                        worksheet1.write(row2, inc(), result[-4], datetime_format)
655
                        worksheet1.write(row2, inc(), result[2])
656
                        worksheet1.write(row2, inc(), morder.get("merchantOrderId"))
657
                        worksheet1.write(row2, inc(), subOrder.get("productTitle"))
658
                        worksheet1.write(row2, inc(), subOrder.get("amountPaid"))
659
                        worksheet1.write(row2, inc(), subOrder.get("cashBackAmount"))
660
                        worksheet1.write(row2, inc(), subOrder.get("status"))
661
                        worksheet1.write(row2, inc(), subOrder.get("detailedStatus"))
662
                        worksheet1.write(row2, inc(), subOrder.get("cashBackStatus"))
663
                        worksheet1.write(row2, inc(), False if morder.get("reconciled") is None else True)
14613 amit.gupta 664
                        if morder.get("reconciled") and morder.get("storeId")==3:
665
                            try:
14881 amit.gupta 666
                                worksheet1.write(row2, inc(), db.snapdealOrderAffiliateInfo.find_one({"adId":morder.get("adId"), "reconciled":True}).get("ip"))
14613 amit.gupta 667
                            except:
668
                                print "Could not find", morder.get("adId"), "that is reconcired for order", morder.get("orderId")
15423 amit.gupta 669
 
15542 amit.gupta 670
    flipkartOrders = session.query(FlipkartOrders).order_by(FlipkartOrders.created.desc()).all()
15540 amit.gupta 671
    flipkartOrders.reverse()
15423 amit.gupta 672
    row3=0
15430 amit.gupta 673
    #try:
15540 amit.gupta 674
    for order in flipkartOrders:
15423 amit.gupta 675
        row3 += 1
676
        i=-1
15540 amit.gupta 677
        sh2.write(row3, inc(), order.user_id)
678
        sh2.write(row3, inc(), order.email)
679
        sh2.write(row3, inc(), order.created, datetime_format)
15423 amit.gupta 680
        sh2.write(row3, inc(), "Flipkart")
15540 amit.gupta 681
        sh2.write(row3, inc(), order.status)
682
        sh2.write(row3, inc(), order.title)
683
        sh2.write(row3, inc(), order.price)
684
        sh2.write(row3, inc(), order.quantity)
685
        sh2.write(row3, inc(), order.catalogId)
686
        sh2.write(row3, inc(), order.brand)
687
        sh2.write(row3, inc(), order.model)
688
        sh2.write(row3, inc(), order.category)
14632 amit.gupta 689
 
14613 amit.gupta 690
    wb.save(XLS_FILENAME)
14632 amit.gupta 691
    workbook.save(XLS_O_FILENAME)
14647 amit.gupta 692
 
693
def getSkuData(storeId, identifier):
694
    if storeId in (1,2,4,5):
695
        skuData = client.Catalog.MasterData.find_one({'identifier':identifier, 'source_id':storeId})
696
    elif storeId == 3:
697
        skuData = client.Catalog.MasterData.find_one({'secondaryIdentifier':identifier, 'source_id':storeId})
698
    return skuData
699
 
14460 amit.gupta 700
def inc():
701
    global i
702
    i+=1
703
    return i
15540 amit.gupta 704
 
705
def migrateFlipkartOrders():
706
    db = client.Dtr
707
    info = reversed(list(db.flipkartOrderAffiliateInfo.find()))
708
    #try:
709
    for order in info:
710
        userId = None
711
        subTagId = None
712
        email = None
713
        subTagId = order.get("subTagId")
714
        if subTagId:
715
            click = session.query(Clicks).filter_by(tag = subTagId).first()
716
            if click is not None:
717
                userId= click.user_id 
718
                user = session.query(Users.email).filter_by(id = userId).first()
719
                if user is not None:
720
                    email = user.email
721
 
722
        flipkartOrder = FlipkartOrders()
723
        flipkartOrder.user_id = userId
724
        flipkartOrder.identifier = order.get("identifier")
725
        flipkartOrder.email = email
726
        flipkartOrder.subtagId = order.get("subTagId")
727
        flipkartOrder.created = datetime.strptime(order.get("saleDate"), "%Y-%m-%d")
728
        flipkartOrder.status = order.get("conversionStatus")
729
        flipkartOrder.title = order.get("productTitle")
730
        flipkartOrder.price = order.get("price")
731
        flipkartOrder.quantity = order.get("quantity")
732
        flipkartOrder.productCode = order.get("productCode")
733
        skuData = getSkuData(2, order.get("productCode"))
734
        if skuData is not None:
735
            flipkartOrder.catalogId = skuData.get("skuBundleId")
736
            flipkartOrder.brand = skuData.get("brand")
737
            flipkartOrder.model = skuData.get("model_name")
738
            flipkartOrder.category =categoryMap.get(skuData.get("category_id"))
739
            flipkartOrder.title =skuData.get("source_product_name")
740
 
741
    session.commit()
14632 amit.gupta 742
def addHeaders(sheet):
743
    global i
744
    i = 0
745
    sheet.write(0, inc(), )
14450 amit.gupta 746
def main():
14647 amit.gupta 747
 
14450 amit.gupta 748
    generateSnapDealReco()
14647 amit.gupta 749
    generateFlipkartReco()
14650 amit.gupta 750
    generateAmazonReco(XLS_A_FILENAME)
14613 amit.gupta 751
    getUserOrders()
15541 amit.gupta 752
    sendmail(["amit.gupta@shop2020.in","rajneesh.arora@saholic.com"], "", "Affiliate Reco", XLS_FILENAME, XLS_F_FILENAME, XLS_A_FILENAME)
15578 amit.gupta 753
    #sendmail(["amit.gupta@shop2020.in"], "", "Affiliate Reco", XLS_FILENAME, XLS_F_FILENAME, XLS_A_FILENAME)
15541 amit.gupta 754
    sendmail(["amit.gupta@shop2020.in", "rajneesh.arora@saholic.com", "chaitnaya.vats@saholic.com", "manoj.kumar@saholic.com"], "", "All DTR Orders", XLS_O_FILENAME)
14450 amit.gupta 755
 
756
if __name__ == '__main__':
15440 amit.gupta 757
    #info = client.Dtr.flipkartOrderAffiliateInfo.find()
758
    #print info
759
    main()
14460 amit.gupta 760