Subversion Repositories SmartDukaan

Rev

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

Rev 17167 Rev 17168
Line 234... Line 234...
234
    wb.save(XLS_F_FILENAME)
234
    wb.save(XLS_F_FILENAME)
235
def generateSnapDealReco():
235
def generateSnapDealReco():
236
    global i
236
    global i
237
    curs = getOrdersAfterDate(datetime.now() - timedelta(days=30), 3)
237
    curs = getOrdersAfterDate(datetime.now() - timedelta(days=30), 3)
238
    db = client.Dtr
238
    db = client.Dtr
239
    notReconciled = {}
-
 
240
    matchedList = []
239
    matchedList = []
-
 
240
 
241
    workbook = xlwt.Workbook()
241
    workbook = xlwt.Workbook()
242
    worksheet = workbook.add_sheet("Snapdeal Reconciled")
242
    worksheet = workbook.add_sheet("Snapdeal Reconciled")
243
    worksheet1 = workbook.add_sheet("Snapdeal Reconciled All")
-
 
244
    worksheet2 = workbook.add_sheet("Snapdeal Orders not reconciled")
243
    worksheet2 = workbook.add_sheet("Snapdeal Orders not reconciled")
245
    worksheet3 = workbook.add_sheet("DateWise Sale Summary")
-
 
246
    affNotReconciledSheet = workbook.add_sheet("Snapdeal Aff not reconciled")
244
    affNotReconciledSheet = workbook.add_sheet("Snapdeal Aff not reconciled")
-
 
245
    worksheet3 = workbook.add_sheet("DateWise Sale Summary")
-
 
246
    worksheet1 = workbook.add_sheet("Snapdeal Reconciled All")
247
    setHeaders(worksheet, worksheet1, worksheet2, affNotReconciledSheet, worksheet3)
247
    setHeaders(worksheet, worksheet1, worksheet2, affNotReconciledSheet, worksheet3)
248
    row = 0
248
    row = 0
249
    anotherrow = 0
-
 
250
    row5=0
249
    row5=0
251
    for row1 in curs:
250
    for row1 in curs:
252
        orderId = row1[0]
251
        orderId = row1[0]
253
        order = db.merchantOrder.find_one({"orderId":orderId})
252
        order = db.merchantOrder.find_one({"orderId":orderId})
254
        if order is None:
253
        if order is None:
Line 265... Line 264...
265
        except:
264
        except:
266
            timestamp1 = int(time.mktime(row1[-4].timetuple()))
265
            timestamp1 = int(time.mktime(row1[-4].timetuple()))
267
            formattedTimestamp = datetime.strftime(utils.fromTimeStamp(timestamp1), "%b %d, %Y, %I:%M %p")
266
            formattedTimestamp = datetime.strftime(utils.fromTimeStamp(timestamp1), "%b %d, %Y, %I:%M %p")
268
 
267
 
269
        affs = list(db.snapdealOrderAffiliateInfo1.find({"orderId":order["merchantOrderId"]}))
268
        affs = list(db.snapdealOrderAffiliateInfo1.find({"orderId":order["merchantOrderId"]}))
270
        anotherrow += 1
-
 
271
        if len(affs) > 0:
269
        if len(affs) > 0:
-
 
270
            for aff in affs:
-
 
271
                if aff.get("missingOrder"):
-
 
272
                    aff["missingOrder"] = False
-
 
273
                    db.snapdealOrderAffiliateInfo1.save(aff)
272
            matchedList.append(order["merchantOrderId"])
274
            matchedList.append(order["merchantOrderId"])
273
            order['reconciled'] = True
275
            order['reconciled'] = True
274
            db.merchantOrder.save(order)
276
            db.merchantOrder.save(order)
275
            row += 1
277
            row += 1
276
            i=-1 
278
            i=-1 
Line 284... Line 286...
284
            worksheet.write(row, inc(), order['placedOn'])
286
            worksheet.write(row, inc(), order['placedOn'])
285
            worksheet.write(row, inc(), formattedTimestamp)
287
            worksheet.write(row, inc(), formattedTimestamp)
286
            worksheet.write(row, inc(), int(order['paidAmount']))
288
            worksheet.write(row, inc(), int(order['paidAmount']))
287
            k = i
289
            k = i
288
            row -= 1
290
            row -= 1
289
            anotherrow -= 1
-
 
290
            for subOrder in order['subOrders']:
291
            for subOrder in order['subOrders']:
291
                i = k
292
                i = k
-
 
293
                matched=False
292
                row += 1
294
                row += 1
293
                anotherrow += 1
-
 
294
                for aff in affs:
295
                for aff in affs:
295
                    if subOrder['title']==aff['productCode']:
296
                    if subOrder['productTitle']==aff['productCode']:
296
                        worksheet.write(row, inc(), aff[0]['saleDate'])
297
                        worksheet.write(row, inc(), utils.fromTimeStamp(aff['saleDate']),datetime_format)
297
                        worksheet.write(row, inc(), aff[0]['saleAmount'])
298
                        worksheet.write(row, inc(), aff['unitPrice'])
298
                        worksheet.write(row, inc(), aff[0]['payOut'])
299
                        worksheet.write(row, inc(), 0 if not aff.get('payOut') else aff['payOut']/aff.get('quantity'))
-
 
300
                        matched=True
-
 
301
                        break
-
 
302
                if not matched:
-
 
303
                    inc()
-
 
304
                    inc()
-
 
305
                    inc()
299
                        worksheet.write(row, inc(), subOrder['productTitle'])
306
                worksheet.write(row, inc(), subOrder['productTitle'])
300
                        worksheet.write(row, inc(), subOrder['amountPaid'])
307
                worksheet.write(row, inc(), subOrder['amountPaid'])
301
                        worksheet.write(row, inc(), subOrder['quantity'])
308
                worksheet.write(row, inc(), subOrder['quantity'])
302
                        worksheet.write(row, inc(), subOrder['status'])
309
                worksheet.write(row, inc(), subOrder['status'])
303
                        worksheet.write(row, inc(), subOrder['cashBackStatus'])
310
                worksheet.write(row, inc(), subOrder['cashBackStatus'])
304
                        worksheet.write(row, inc(), subOrder['cashBackAmount'])
311
                worksheet.write(row, inc(), subOrder['cashBackAmount']) 
305
 
312
 
306
        else:
313
        else:
307
            row5 += 1
314
            row5 += 1
308
            i=-1
315
            i=-1
309
            worksheet2.write(row5, inc(), order["orderId"])
316
            worksheet2.write(row5, inc(), order["orderId"])
Line 329... Line 336...
329
                worksheet2.write(row5, inc(), subOrder['cashBackAmount'])
336
                worksheet2.write(row5, inc(), subOrder['cashBackAmount'])
330
                
337
                
331
    last30Days =  date.today() - timedelta(days=30)
338
    last30Days =  date.today() - timedelta(days=30)
332
    int(time.mktime(last30Days.timetuple()))
339
    int(time.mktime(last30Days.timetuple()))
333
    row = 0
340
    row = 0
334
    for offer in db.snapdealOrderAffiliateInfo.find({"reconciled":{"$exists":False}, 
341
    for offer in db.snapdealOrderAffiliateInfo1.find({"missingOrder":True, 
335
                                                     "saleTime":{"$gt":int(time.mktime(last30Days.timetuple())),
-
 
336
                                                                 "$lt":int(time.mktime(date.today().timetuple()))}}, timeout=False ):
-
 
337
        subTagId = offer.get("subTagId")
-
 
338
        saleTime = offer.get("saleTime")
-
 
339
        orders = getOrdersByTag(subTagId, 3)
-
 
340
        for order in orders:
-
 
341
            if notReconciled.has_key(order[0]):
-
 
342
                (roww, column, paidAmount, timestamp1, oSubTagId) = notReconciled[order[0]]
-
 
343
                if paidAmount==int(offer.get("saleAmount")) and timestamp1 <= saleTime and timestamp1 + 120 >= saleTime:
-
 
344
                    i = column
-
 
345
                    worksheet1.write(roww, inc(), offer.get("saleDate"))        
-
 
346
                    worksheet1.write(roww, inc(), offer.get("saleAmount"))        
-
 
347
                    worksheet1.write(roww, inc(), offer.get("payOut"))
-
 
348
                    del notReconciled[order[0]]
-
 
349
                    print "found match for user", order[1]
-
 
350
                    db.snapdealOrderAffiliateInfo.update({"adId":offer.get("adId")}, {"$set":{"reconciled":True, "orderId":order[0]}}, multi=True)
-
 
351
                    db.merchantOrder.update({"orderId":order[0]}, {"$set":{"reconciled":True, "adId":offer.get("adId")}}, multi=True)
-
 
352
                    break
-
 
353
            
-
 
354
    
-
 
355
    
-
 
356
    for offer in db.snapdealOrderAffiliateInfo.find({"reconciled":{"$exists":False}, 
-
 
357
                                                     "saleTime":{"$gt":int(time.mktime(last30Days.timetuple())),
342
                                                     "saleDate":{"$gte":int(time.mktime(last30Days.timetuple())),
358
                                                                 "$lt":int(time.mktime(date.today().timetuple()))}} ):
343
                                                                 "$lt":int(time.mktime(date.today().timetuple()))}} ):
359
        row += 1
344
        row += 1
360
        i=-1
345
        i=-1
361
        affNotReconciledSheet.write(row, inc(), offer.get("adId")) 
-
 
362
        affNotReconciledSheet.write(row, inc(), offer.get("subTagId")) 
346
        affNotReconciledSheet.write(row, inc(), offer.get("subTagId")) 
363
        affNotReconciledSheet.write(row, inc(), offer.get("saleDate")) 
347
        affNotReconciledSheet.write(row, inc(), offer.get("orderId")) 
-
 
348
        affNotReconciledSheet.write(row, inc(), utils.fromTimeStamp(offer.get("saleDate")), datetime_format) 
364
        affNotReconciledSheet.write(row, inc(), offer.get("saleAmount")) 
349
        affNotReconciledSheet.write(row, inc(), offer.get("saleAmount")) 
-
 
350
        affNotReconciledSheet.write(row, inc(), offer.get("productCode")) 
-
 
351
        affNotReconciledSheet.write(row, inc(), offer.get("quantity")) 
365
        affNotReconciledSheet.write(row, inc(), offer.get("payOut")) 
352
        affNotReconciledSheet.write(row, inc(), offer.get("payOut")) 
366
        affNotReconciledSheet.write(row, inc(), offer.get("conversionStatus"))
-
 
367
        affNotReconciledSheet.write(row, inc(), offer.get("ip"))
-
 
368
    
353
    
369
    mailBodyTemplate="""
354
    mailBodyTemplate="""
370
        <html>
355
        <html>
371
            <body>
356
            <body>
372
            <table cellspacing="0" border="1" style="text-align:right">
357
            <table cellspacing="0" border="1" style="text-align:right">
Line 815... Line 800...
815
    worksheet.write(row, inc(), 'Dtr Sale Date', boldStyle)
800
    worksheet.write(row, inc(), 'Dtr Sale Date', boldStyle)
816
    worksheet.write(row, inc(), 'Sale Amount', boldStyle)
801
    worksheet.write(row, inc(), 'Sale Amount', boldStyle)
817
    worksheet.write(row, inc(), 'Aff Sale Date', boldStyle)
802
    worksheet.write(row, inc(), 'Aff Sale Date', boldStyle)
818
    worksheet.write(row, inc(), 'Aff Sale Amt', boldStyle)
803
    worksheet.write(row, inc(), 'Aff Sale Amt', boldStyle)
819
    worksheet.write(row, inc(), 'Aff PayOut', boldStyle)
804
    worksheet.write(row, inc(), 'Aff PayOut', boldStyle)
820
    worksheet.write(row, inc(), 'IP', boldStyle)
-
 
821
    worksheet.write(row, inc(), 'Aff Status', boldStyle)
-
 
822
    worksheet.write(row, inc(), 'Product Title', boldStyle)
805
    worksheet.write(row, inc(), 'Product Title', boldStyle)
823
    worksheet.write(row, inc(), 'Price', boldStyle)
806
    worksheet.write(row, inc(), 'Price', boldStyle)
824
    worksheet.write(row, inc(), 'Quantity', boldStyle)
807
    worksheet.write(row, inc(), 'Quantity', boldStyle)
825
    worksheet.write(row, inc(), 'Status', boldStyle)
808
    worksheet.write(row, inc(), 'Status', boldStyle)
826
    worksheet.write(row, inc(), 'Cashback Status', boldStyle)
809
    worksheet.write(row, inc(), 'Cashback Status', boldStyle)
827
    worksheet.write(row, inc(), 'CashBack', boldStyle)
810
    worksheet.write(row, inc(), 'CashBack', boldStyle)
828
 
811
 
829
    i = -1
-
 
830
    worksheet1.write(row, inc(), 'Order Id', boldStyle)
-
 
831
    worksheet1.write(row, inc(), 'User Id', boldStyle)
-
 
832
    worksheet1.write(row, inc(), 'Username', boldStyle)
-
 
833
    worksheet1.write(row, inc(), 'Version Code', boldStyle)
-
 
834
    worksheet1.write(row, inc(), 'Device', boldStyle)
-
 
835
    worksheet1.write(row, inc(), 'Merchant Order Id', boldStyle)
-
 
836
    worksheet1.write(row, inc(), 'SubtagId', boldStyle)
-
 
837
    worksheet1.write(row, inc(), 'Sale Date', boldStyle)
-
 
838
    worksheet1.write(row, inc(), 'Dtr Sale Date', boldStyle)
-
 
839
    worksheet1.write(row, inc(), 'Sale Amount', boldStyle)
-
 
840
    worksheet1.write(row, inc(), 'Aff Sale Date', boldStyle)
-
 
841
    worksheet1.write(row, inc(), 'Aff Sale Amt', boldStyle)
-
 
842
    worksheet1.write(row, inc(), 'Aff PayOut', boldStyle)
-
 
843
    worksheet1.write(row, inc(), 'IP', boldStyle)
-
 
844
    worksheet1.write(row, inc(), 'Aff Status', boldStyle)
-
 
845
    worksheet1.write(row, inc(), 'Product Title', boldStyle)
-
 
846
    worksheet1.write(row, inc(), 'Price', boldStyle)
-
 
847
    worksheet1.write(row, inc(), 'Quantity', boldStyle)
-
 
848
    worksheet1.write(row, inc(), 'Status', boldStyle)
-
 
849
    worksheet1.write(row, inc(), 'Cashback Status', boldStyle)
-
 
850
    worksheet1.write(row, inc(), 'CashBack', boldStyle) 
-
 
851
 
812
 
852
    i = -1
813
    i = -1
853
    worksheet2.write(row, inc(), 'Order Id', boldStyle)
814
    worksheet2.write(row, inc(), 'Order Id', boldStyle)
854
    worksheet2.write(row, inc(), 'User Id', boldStyle)
815
    worksheet2.write(row, inc(), 'User Id', boldStyle)
855
    worksheet2.write(row, inc(), 'Username', boldStyle)
816
    worksheet2.write(row, inc(), 'Username', boldStyle)
Line 866... Line 827...
866
    worksheet2.write(row, inc(), 'Status', boldStyle)
827
    worksheet2.write(row, inc(), 'Status', boldStyle)
867
    worksheet2.write(row, inc(), 'Cashback Status', boldStyle)
828
    worksheet2.write(row, inc(), 'Cashback Status', boldStyle)
868
    worksheet2.write(row, inc(), 'CashBack', boldStyle)
829
    worksheet2.write(row, inc(), 'CashBack', boldStyle)
869
    
830
    
870
    i =-1
831
    i =-1
871
    affNotReconciledSheet.write(row, inc(), 'AdId', boldStyle) 
832
    affNotReconciledSheet.write(row, inc(), 'Sub Tag Id', boldStyle) 
872
    affNotReconciledSheet.write(row, inc(), 'subTagId', boldStyle) 
833
    affNotReconciledSheet.write(row, inc(), 'Order Id', boldStyle) 
873
    affNotReconciledSheet.write(row, inc(), 'Sale Date', boldStyle) 
834
    affNotReconciledSheet.write(row, inc(), 'Sale Date', boldStyle) 
874
    affNotReconciledSheet.write(row, inc(), 'Sale Amount', boldStyle) 
835
    affNotReconciledSheet.write(row, inc(), 'Sale Amount', boldStyle) 
-
 
836
    affNotReconciledSheet.write(row, inc(), 'Product', boldStyle) 
-
 
837
    affNotReconciledSheet.write(row, inc(), 'Quantity', boldStyle) 
875
    affNotReconciledSheet.write(row, inc(), 'Pay Out', boldStyle) 
838
    affNotReconciledSheet.write(row, inc(), 'Pay Out', boldStyle) 
876
    affNotReconciledSheet.write(row, inc(), 'Status', boldStyle) 
-
 
877
    affNotReconciledSheet.write(row, inc(), 'IP', boldStyle)
-
 
878
 
839
 
879
    if worksheet3:
840
    if worksheet3:
880
        i =-1
841
        i =-1
881
        worksheet3.write(row, inc(), 'Date', boldStyle) 
842
        worksheet3.write(row, inc(), 'Date', boldStyle) 
882
        worksheet3.write(row, inc(), 'Sale Amount', boldStyle) 
843
        worksheet3.write(row, inc(), 'Sale Amount', boldStyle) 
Line 1072... Line 1033...
1072
    global i
1033
    global i
1073
    i = 0
1034
    i = 0
1074
    sheet.write(0, inc(), )
1035
    sheet.write(0, inc(), )
1075
def main():
1036
def main():
1076
    message = generateSnapDealReco()
1037
    message = generateSnapDealReco()
1077
    generateFlipkartReco()
1038
    #generateFlipkartReco()
1078
    generateShopcluesReco()
1039
    #generateShopcluesReco()
1079
    generateAmazonReco(XLS_A_FILENAME)
1040
    #generateAmazonReco(XLS_A_FILENAME)
1080
    message1 = getdata.summaryByBrandAndStore()
1041
    #message1 = getdata.summaryByBrandAndStore()
1081
    getUserOrders()
1042
    #getUserOrders()
1082
    #getdata.sendmail(["naman.kumar@shop2020.in"], message1, "Summary by brand and store")
1043
    sendmail(["amit.gupta@shop2020.in"], message, "Affiliate Reco", XLS_FILENAME)
1083
    #sendmail(["naman.kumar@shop2020.in"], message, "Affiliate Reco", XLS_FILENAME, XLS_F_FILENAME, XLS_A_FILENAME, XLS_SC_FILENAME)
-
 
1084
    #sendmail(["naman.kumar@shop2020.in"], message1, "All DTR Orders", XLS_O_FILENAME)
1044
    #sendmail(["naman.kumar@shop2020.in"], message1, "All DTR Orders", XLS_O_FILENAME)
1085
    sendmail(["amit.gupta@shop2020.in", "rajneesh.arora@saholic.com", "chaitnaya.vats@saholic.com", "manoj.kumar@saholic.com", "manish.sharma@shop2020.in"], message1, "All DTR Orders", XLS_O_FILENAME)
1045
    #sendmail(["amit.gupta@shop2020.in", "rajneesh.arora@saholic.com", "chaitnaya.vats@saholic.com", "manoj.kumar@saholic.com", "manish.sharma@shop2020.in"], message1, "All DTR Orders", XLS_O_FILENAME)
1086
    sendmail(["amit.gupta@shop2020.in","rajneesh.arora@saholic.com","manish.sharma@shop2020.in"], message, "Affiliate Reco", XLS_FILENAME, XLS_F_FILENAME, XLS_A_FILENAME, XLS_SC_FILENAME)
1046
    #sendmail(["amit.gupta@shop2020.in","rajneesh.arora@saholic.com","manish.sharma@shop2020.in"], message, "Affiliate Reco", XLS_FILENAME, XLS_F_FILENAME, XLS_A_FILENAME, XLS_SC_FILENAME)
1087
    #sendmail(["amit.gupta@shop2020.in"], "", "Affiliate Reco", XLS_FILENAME, XLS_F_FILENAME, XLS_A_FILENAME, XLS_SC_FILENAME)
1047
    #sendmail(["amit.gupta@shop2020.in"], "", "Affiliate Reco", XLS_FILENAME, XLS_F_FILENAME, XLS_A_FILENAME, XLS_SC_FILENAME)
1088
    
1048
    
1089
def main3():
1049
def main3():
1090
    db = client.Dtr
1050
    db = client.Dtr
1091
    #main()
1051
    #main()
Line 1164... Line 1124...
1164
    for key,valmap in  datemap.iteritems():
1124
    for key,valmap in  datemap.iteritems():
1165
        valmap['_id'] = key
1125
        valmap['_id'] = key
1166
        db.flSaleSnapshot.save(valmap)
1126
        db.flSaleSnapshot.save(valmap)
1167
 
1127
 
1168
if __name__ == '__main__':
1128
if __name__ == '__main__':
1169
    getdata.addToAllOrders(date.today()-timedelta(days=30))
1129
    #getdata.addToAllOrders(date.today()-timedelta(days=30))
1170
    main2()
1130
    #main2()
1171
    main()
1131
    main()