Subversion Repositories SmartDukaan

Rev

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

Rev 15446 Rev 15540
Line 5... Line 5...
5
'''
5
'''
6
from datetime import date, datetime, timedelta
6
from datetime import date, datetime, timedelta
7
from dtr.main import Store, sourceMap
7
from dtr.main import Store, sourceMap
8
from dtr.reports.amazonreco import generateAmazonReco
8
from dtr.reports.amazonreco import generateAmazonReco
9
from dtr.storage import Mysql, DataService
9
from dtr.storage import Mysql, DataService
10
from dtr.storage.DataService import Users, Clicks
10
from dtr.storage.DataService import Users, Clicks, FlipkartOrders
11
from dtr.storage.Mysql import getOrdersAfterDate, getOrdersByTag
11
from dtr.storage.Mysql import getOrdersAfterDate, getOrdersByTag
12
from dtr.utils.utils import fromTimeStamp
12
from dtr.utils.utils import fromTimeStamp
13
from elixir import *
13
from elixir import *
14
from sqlalchemy.sql.expression import func, func, or_
14
from sqlalchemy.sql.expression import func, func, or_
15
from email import encoders
15
from email import encoders
Line 45... Line 45...
45
boldStyle.font = f
45
boldStyle.font = f
46
i = -1
46
i = -1
47
 
47
 
48
datetime_format = xlwt.XFStyle()
48
datetime_format = xlwt.XFStyle()
49
datetime_format.num_format_str = 'dd/mm/yyyy HH:MM AM/PM'
49
datetime_format.num_format_str = 'dd/mm/yyyy HH:MM AM/PM'
50
 
-
 
-
 
50
categoryMap = {3:"Mobiles", 5:"Tablets"}
51
def generateFlipkartReco():
51
def generateFlipkartReco():
52
    global i
52
    global i
53
    i = -1
53
    i = -1
54
    curs = getOrdersAfterDate(datetime.now() - timedelta(days=30), 2)
54
    curs = getOrdersAfterDate(datetime.now() - timedelta(days=30), 2)
55
    db = client.Dtr
55
    db = client.Dtr
Line 404... Line 404...
404
        affNotReconciledSheet.write(row, inc(), offer.get("saleAmount")) 
404
        affNotReconciledSheet.write(row, inc(), offer.get("saleAmount")) 
405
        affNotReconciledSheet.write(row, inc(), offer.get("payOut")) 
405
        affNotReconciledSheet.write(row, inc(), offer.get("payOut")) 
406
        affNotReconciledSheet.write(row, inc(), offer.get("conversionStatus"))
406
        affNotReconciledSheet.write(row, inc(), offer.get("conversionStatus"))
407
        affNotReconciledSheet.write(row, inc(), offer.get("ip"))
407
        affNotReconciledSheet.write(row, inc(), offer.get("ip"))
408
 
408
 
409
        workbook.save(XLS_FILENAME)
409
    workbook.save(XLS_FILENAME)
410
            
410
            
411
def sendmail(email, message, title, *varargs):
411
def sendmail(email, message, title, *varargs):
412
    if email == "":
412
    if email == "":
413
        return
413
        return
414
    mailServer = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
414
    mailServer = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
Line 667... Line 667...
667
                            try:
667
                            try:
668
                                worksheet1.write(row2, inc(), db.snapdealOrderAffiliateInfo.find_one({"adId":morder.get("adId"), "reconciled":True}).get("ip"))
668
                                worksheet1.write(row2, inc(), db.snapdealOrderAffiliateInfo.find_one({"adId":morder.get("adId"), "reconciled":True}).get("ip"))
669
                            except:
669
                            except:
670
                                print "Could not find", morder.get("adId"), "that is reconcired for order", morder.get("orderId")
670
                                print "Could not find", morder.get("adId"), "that is reconcired for order", morder.get("orderId")
671
                                
671
                                
672
    info = reversed(list(db.flipkartOrderAffiliateInfo.find()))
672
    flipkartOrders = session.query(FlipkartOrders).all()
-
 
673
    flipkartOrders.reverse()
673
    row3=0
674
    row3=0
674
    #try:
675
    #try:
675
    for order in info:
676
    for order in flipkartOrders:
676
        userId = None
-
 
677
        subTagId = None
-
 
678
        email = None
-
 
679
        subTagId = order.get("subTagId")
-
 
680
        if subTagId:
-
 
681
            click = session.query(Clicks).filter_by(tag = subTagId).first()
-
 
682
            if click is not None:
-
 
683
                userId= click.user_id 
-
 
684
                user = session.query(Users.email).filter_by(id = userId).first()
-
 
685
                if user is not None:
-
 
686
                    email = user.email
-
 
687
        
-
 
688
        row3 += 1
677
        row3 += 1
689
        i=-1
678
        i=-1
690
        sh2.write(row3, inc(), userId)
679
        sh2.write(row3, inc(), order.user_id)
691
        sh2.write(row3, inc(), email)
680
        sh2.write(row3, inc(), order.email)
692
        sh2.write(row3, inc(), datetime.strptime(order.get("saleDate"), "%Y-%m-%d"), datetime_format)
681
        sh2.write(row3, inc(), order.created, datetime_format)
693
        sh2.write(row3, inc(), "Flipkart")
682
        sh2.write(row3, inc(), "Flipkart")
694
        sh2.write(row3, inc(), order.get("conversionStatus"))
683
        sh2.write(row3, inc(), order.status)
695
        sh2.write(row3, inc(), order.get("productTitle"))
684
        sh2.write(row3, inc(), order.title)
696
        sh2.write(row3, inc(), order.get("price"))
685
        sh2.write(row3, inc(), order.price)
697
        sh2.write(row3, inc(), order.get("quantity"))
686
        sh2.write(row3, inc(), order.quantity)
698
        skuData = getSkuData(2, order.get("productCode"))
-
 
699
        if skuData is not None:
-
 
700
            sh2.write(row3, inc(), skuData.get("skuBundleId"))
687
        sh2.write(row3, inc(), order.catalogId)
701
            sh2.write(row3, inc(), skuData.get("brand"))
688
        sh2.write(row3, inc(), order.brand)
702
            sh2.write(row3, inc(), skuData.get("model_name"))
689
        sh2.write(row3, inc(), order.model)
703
            sh2.write(row3, inc(), skuData.get("category"))
690
        sh2.write(row3, inc(), order.category)
704
                    
691
                    
705
                                    
-
 
706
    wb.save(XLS_FILENAME)
692
    wb.save(XLS_FILENAME)
707
    workbook.save(XLS_O_FILENAME)
693
    workbook.save(XLS_O_FILENAME)
708
    
694
    
709
def getSkuData(storeId, identifier):
695
def getSkuData(storeId, identifier):
710
    if storeId in (1,2,4,5):
696
    if storeId in (1,2,4,5):
Line 715... Line 701...
715
        
701
        
716
def inc():
702
def inc():
717
    global i
703
    global i
718
    i+=1
704
    i+=1
719
    return i
705
    return i
-
 
706
 
-
 
707
def migrateFlipkartOrders():
-
 
708
    db = client.Dtr
-
 
709
    info = reversed(list(db.flipkartOrderAffiliateInfo.find()))
-
 
710
    #try:
-
 
711
    for order in info:
-
 
712
        userId = None
-
 
713
        subTagId = None
-
 
714
        email = None
-
 
715
        subTagId = order.get("subTagId")
-
 
716
        if subTagId:
-
 
717
            click = session.query(Clicks).filter_by(tag = subTagId).first()
-
 
718
            if click is not None:
-
 
719
                userId= click.user_id 
-
 
720
                user = session.query(Users.email).filter_by(id = userId).first()
-
 
721
                if user is not None:
-
 
722
                    email = user.email
720
    
723
        
-
 
724
        flipkartOrder = FlipkartOrders()
-
 
725
        flipkartOrder.user_id = userId
-
 
726
        flipkartOrder.identifier = order.get("identifier")
-
 
727
        flipkartOrder.email = email
-
 
728
        flipkartOrder.subtagId = order.get("subTagId")
-
 
729
        flipkartOrder.created = datetime.strptime(order.get("saleDate"), "%Y-%m-%d")
-
 
730
        flipkartOrder.status = order.get("conversionStatus")
-
 
731
        flipkartOrder.title = order.get("productTitle")
-
 
732
        flipkartOrder.price = order.get("price")
-
 
733
        flipkartOrder.quantity = order.get("quantity")
-
 
734
        flipkartOrder.productCode = order.get("productCode")
-
 
735
        skuData = getSkuData(2, order.get("productCode"))
-
 
736
        if skuData is not None:
-
 
737
            flipkartOrder.catalogId = skuData.get("skuBundleId")
-
 
738
            flipkartOrder.brand = skuData.get("brand")
-
 
739
            flipkartOrder.model = skuData.get("model_name")
-
 
740
            flipkartOrder.category =categoryMap.get(skuData.get("category_id"))
-
 
741
            flipkartOrder.title =skuData.get("source_product_name")
-
 
742
                    
-
 
743
    session.commit()
721
def addHeaders(sheet):
744
def addHeaders(sheet):
722
    global i
745
    global i
723
    i = 0
746
    i = 0
724
    sheet.write(0, inc(), )
747
    sheet.write(0, inc(), )
725
def main():
748
def main():
726
    
749
    
727
    generateSnapDealReco()
750
    generateSnapDealReco()
728
    generateFlipkartReco()
751
    generateFlipkartReco()
729
    generateAmazonReco(XLS_A_FILENAME)
752
    generateAmazonReco(XLS_A_FILENAME)
730
    getUserOrders()
753
    getUserOrders()
731
    sendmail(["amit.gupta@shop2020.in","rajneesh.arora@saholic.com"], "", "Affiliate Reco", XLS_FILENAME, XLS_F_FILENAME, XLS_A_FILENAME)
754
    #sendmail(["amit.gupta@shop2020.in","rajneesh.arora@saholic.com"], "", "Affiliate Reco", XLS_FILENAME, XLS_F_FILENAME, XLS_A_FILENAME)
732
    sendmail(["amit.gupta@shop2020.in", "rajneesh.arora@saholic.com", "chaitnaya.vats@saholic.com", "manoj.kumar@saholic.com"], "", "All DTR Orders", XLS_O_FILENAME)
755
    #sendmail(["amit.gupta@shop2020.in", "rajneesh.arora@saholic.com", "chaitnaya.vats@saholic.com", "manoj.kumar@saholic.com"], "", "All DTR Orders", XLS_O_FILENAME)
733
 
756
 
734
if __name__ == '__main__':
757
if __name__ == '__main__':
735
    #info = client.Dtr.flipkartOrderAffiliateInfo.find()
758
    #info = client.Dtr.flipkartOrderAffiliateInfo.find()
736
    #print info
759
    #print info
737
    main()
760
    main()