Subversion Repositories SmartDukaan

Rev

Rev 14452 | Go to most recent revision | Details | 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
7
from dtr.storage.Mysql import getOrdersAfterDate
8
from email import encoders
9
from email.mime.base import MIMEBase
10
from email.mime.multipart import MIMEMultipart
11
from email.mime.text import MIMEText
12
from pymongo.mongo_client import MongoClient
13
import MySQLdb
14
import smtplib
15
import time
16
import xlwt
17
 
18
client = MongoClient('mongodb://localhost:27017/')
19
 
20
SENDER = "cnc.center@shop2020.in"
21
PASSWORD = "5h0p2o2o"
22
SUBJECT = "DTR User Segmentation report for " + date.today().isoformat()
23
SMTP_SERVER = "smtp.gmail.com"
24
SMTP_PORT = 587    
25
 
26
def generateFlipkartReco():
27
    pass
28
def generateSnapDealReco():
29
    curs = getOrdersAfterDate(datetime.now() - timedelta(days=10), 3)
30
    db = client.Dtr
31
 
32
    workbook = xlwt.Workbook()
33
    worksheet = workbook.add_sheet("Snapdeal Reco")
34
    boldStyle = xlwt.XFStyle()
35
    f = xlwt.Font()
36
    f.bold = True
37
    boldStyle.font = f
38
    column = 0
39
    row = 0
40
 
41
    worksheet.write(row, 0, 'Order Id', boldStyle)
42
    worksheet.write(row, 1, 'Merchant Order Id', boldStyle)
43
    worksheet.write(row, 2, 'Product Title', boldStyle)
44
    worksheet.write(row, 3, 'Price', boldStyle)
45
    worksheet.write(row, 4, 'Quantity', boldStyle)
46
    worksheet.write(row, 5, 'Status', boldStyle)
47
    worksheet.write(row, 6, 'Cashback Status', boldStyle)
48
    worksheet.write(row, 7, 'Our CashBack', boldStyle)
49
    worksheet.write(row, 8, 'Sale Date', boldStyle)
50
    worksheet.write(row, 9, 'SubtagId', boldStyle)
51
    worksheet.write(row, 10, 'Ad Id', boldStyle)
52
    worksheet.write(row, 11, 'Affiliate PayOut', boldStyle)
53
    worksheet.write(row, 12, 'Affiliate Sale Amount', boldStyle)
54
    worksheet.write(row, 13, 'Affiliate Sale Date', boldStyle)
55
 
56
    for row1 in curs:
57
        orderId = row1[0]
58
        order = db.merchantOrder.find_one({"orderId":orderId})
59
        if order is None:
60
            continue
61
        print order["subTagId"]
62
        print order
63
        saleTime = int(time.mktime(datetime.strptime(order['placedOn'], "%b %d, %Y, %I:%M %p").timetuple()))
64
        saleTime1 = int(time.mktime((datetime.strptime(order['placedOn'], "%b %d, %Y, %I:%M %p") + timedelta(seconds=-60)).timetuple()))
65
        aff = list(db.snapdealOrderAffiliateInfo.find({"subTagId":order["subTagId"]}))
66
 
67
        for subOrder in order['subOrders']: 
68
            row += 1
69
            worksheet.write(row, 0, orderId)
70
            worksheet.write(row, 1, order['merchantOrderId'])
71
            worksheet.write(row, 2, subOrder['productTitle'])
72
            worksheet.write(row, 3, subOrder['amountPaid'])
73
            worksheet.write(row, 4, subOrder['quantity'])
74
            worksheet.write(row, 5, subOrder['status'])
75
            worksheet.write(row, 6, subOrder['cashBackStatus'])
76
            worksheet.write(row, 7, subOrder['cashBackAmount'])
77
            worksheet.write(row, 8, subOrder['placedOn'])
78
            worksheet.write(row, 9, order['subTagId'])
79
            if len(aff)>0:
80
                worksheet.write(row, 10, aff[0]['adId'])
81
                worksheet.write(row, 11, aff[0]['payOut'])
82
                worksheet.write(row, 12, aff[0]['saleAmount'])
83
                worksheet.write(row, 13, aff[0]['saleDate'])
84
        workbook.save("snapdealreco.xls")
85
 
86
def sendmail(email, message, title):
87
    if email == "":
88
        return
89
    mailServer = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
90
    mailServer.ehlo()
91
    mailServer.starttls()
92
    mailServer.ehlo()
93
 
94
    # Create the container (outer) email message.
95
    msg = MIMEMultipart()
96
    msg['Subject'] = title
97
    msg.preamble = title
98
    html_msg = MIMEText(message, 'html')
99
    msg.attach(html_msg)
100
 
101
    #snapdeal more to be added here
102
    snapdeal = MIMEBase('application', 'vnd.ms-excel')
103
    snapdeal.set_payload(file("snapdealreco.xls").read())
104
    encoders.encode_base64(snapdeal)
105
    snapdeal.add_header('Content-Disposition', 'attachment;filename=snapdealreco.xls')
106
    msg.attach(snapdeal)
107
 
108
 
109
    email.append('amit.gupta@shop2020.in')
110
    MAILTO = email 
111
    mailServer.login(SENDER, PASSWORD)
112
    mailServer.sendmail(PASSWORD, MAILTO, msg.as_string())
113
 
114
 
115
def main():
116
    generateSnapDealReco()
117
    sendmail(["amit.gupta@shop2020.in"],"Reco")
118
 
119
if __name__ == '__main__':
120
    main()