Subversion Repositories SmartDukaan

Rev

Rev 14452 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

'''
Created on Mar 13, 2015

@author: amit
'''
from datetime import date, datetime, timedelta
from dtr.storage.Mysql import getOrdersAfterDate
from email import encoders
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from pymongo.mongo_client import MongoClient
import MySQLdb
import smtplib
import time
import xlwt

client = MongoClient('mongodb://localhost:27017/')

SENDER = "cnc.center@shop2020.in"
PASSWORD = "5h0p2o2o"
SUBJECT = "DTR User Segmentation report for " + date.today().isoformat()
SMTP_SERVER = "smtp.gmail.com"
SMTP_PORT = 587    

def generateFlipkartReco():
    pass
def generateSnapDealReco():
    curs = getOrdersAfterDate(datetime.now() - timedelta(days=10), 3)
    db = client.Dtr
    
    workbook = xlwt.Workbook()
    worksheet = workbook.add_sheet("Snapdeal Reco")
    boldStyle = xlwt.XFStyle()
    f = xlwt.Font()
    f.bold = True
    boldStyle.font = f
    column = 0
    row = 0
        
    worksheet.write(row, 0, 'Order Id', boldStyle)
    worksheet.write(row, 1, 'Merchant Order Id', boldStyle)
    worksheet.write(row, 2, 'Product Title', boldStyle)
    worksheet.write(row, 3, 'Price', boldStyle)
    worksheet.write(row, 4, 'Quantity', boldStyle)
    worksheet.write(row, 5, 'Status', boldStyle)
    worksheet.write(row, 6, 'Cashback Status', boldStyle)
    worksheet.write(row, 7, 'Our CashBack', boldStyle)
    worksheet.write(row, 8, 'Sale Date', boldStyle)
    worksheet.write(row, 9, 'SubtagId', boldStyle)
    worksheet.write(row, 10, 'Ad Id', boldStyle)
    worksheet.write(row, 11, 'Affiliate PayOut', boldStyle)
    worksheet.write(row, 12, 'Affiliate Sale Amount', boldStyle)
    worksheet.write(row, 13, 'Affiliate Sale Date', boldStyle)
    
    for row1 in curs:
        orderId = row1[0]
        order = db.merchantOrder.find_one({"orderId":orderId})
        if order is None:
            continue
        print order["subTagId"]
        print order
        saleTime = int(time.mktime(datetime.strptime(order['placedOn'], "%b %d, %Y, %I:%M %p").timetuple()))
        saleTime1 = int(time.mktime((datetime.strptime(order['placedOn'], "%b %d, %Y, %I:%M %p") + timedelta(seconds=-60)).timetuple()))
        aff = list(db.snapdealOrderAffiliateInfo.find({"subTagId":order["subTagId"]}))

        for subOrder in order['subOrders']: 
            row += 1
            worksheet.write(row, 0, orderId)
            worksheet.write(row, 1, order['merchantOrderId'])
            worksheet.write(row, 2, subOrder['productTitle'])
            worksheet.write(row, 3, subOrder['amountPaid'])
            worksheet.write(row, 4, subOrder['quantity'])
            worksheet.write(row, 5, subOrder['status'])
            worksheet.write(row, 6, subOrder['cashBackStatus'])
            worksheet.write(row, 7, subOrder['cashBackAmount'])
            worksheet.write(row, 8, subOrder['placedOn'])
            worksheet.write(row, 9, order['subTagId'])
            if len(aff)>0:
                worksheet.write(row, 10, aff[0]['adId'])
                worksheet.write(row, 11, aff[0]['payOut'])
                worksheet.write(row, 12, aff[0]['saleAmount'])
                worksheet.write(row, 13, aff[0]['saleDate'])
        workbook.save("snapdealreco.xls")
            
def sendmail(email, message, title):
    if email == "":
        return
    mailServer = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
    mailServer.ehlo()
    mailServer.starttls()
    mailServer.ehlo()
    
    # Create the container (outer) email message.
    msg = MIMEMultipart()
    msg['Subject'] = title
    msg.preamble = title
    html_msg = MIMEText(message, 'html')
    msg.attach(html_msg)
    
    #snapdeal more to be added here
    snapdeal = MIMEBase('application', 'vnd.ms-excel')
    snapdeal.set_payload(file("snapdealreco.xls").read())
    encoders.encode_base64(snapdeal)
    snapdeal.add_header('Content-Disposition', 'attachment;filename=snapdealreco.xls')
    msg.attach(snapdeal)


    email.append('amit.gupta@shop2020.in')
    MAILTO = email 
    mailServer.login(SENDER, PASSWORD)
    mailServer.sendmail(PASSWORD, MAILTO, msg.as_string())

    
def main():
    generateSnapDealReco()
    sendmail(["amit.gupta@shop2020.in"],"Reco")

if __name__ == '__main__':
    main()