Subversion Repositories SmartDukaan

Rev

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

'''
Created on Jan 16, 2015

@author: amit
'''
from datetime import datetime
from dtr.utils.utils import ORDER_PLACED
import time
class AffiliateInfo():
    
    
    subTagId = None
    adId = None
    adDate = None
    payOut = None
    offerName = None
    storeId = None
    saleAmount = None
    saleDate = None
    saleTime = None
    conversionStatus = None
    ip = None
    orderId = None
    missingOrder = None
    productCode = None
    unitPrice = None
    quantity = None
    def __init__(self,subTagId, storeId, conversionStatus, adId, saleDate, payOut, offerName, ip, saleAmount):
        self.subTagId = subTagId
        self.conversionStatus = conversionStatus
        self.adId = adId
        self.payOut = payOut
        self.offerName = offerName
        self.ip = ip
        self.saleAmount = saleAmount
        self.storeId = storeId
        self.saleDate = saleDate
        self.missingOrder = True
        
    def __repr__(self):
        return None

class FlipkartAffiliateInfo():
    
    
    subTagId = None
    productCode = None
    price = None
    quantity = None
    category = None
    payOut = None
    saleAmount = None
    storeId = None
    saleDate = None
    conversionStatus = None
    missingOrder = None
    saleDateInt = None

    def __init__(self,subTagId, saleDate, productCode, price, quantity, saleAmount, payOut, conversionStatus, category):
        self.subTagId = subTagId
        self.conversionStatus = conversionStatus
        self.payOut = payOut
        self.saleAmount = saleAmount
        self.productCode = productCode
        self.storeId = 2
        self.saleDate = saleDate
        self.price = price
        self.quantity = quantity
        self.missingOrder = True
        self.category = category
        self.saleDateInt = int(time.mktime(datetime.strptime(saleDate, "%Y-%m-%d").timetuple()))
        
    def __repr__(self):
        return None
    
class AmazonAffiliateInfo():
    productLine = None
    dateOrdered = None
    time = None
    linkType = None
    trackingId= None
    directConversion = None
    directClicks = None
    directOrderedQuantity = None
    indirectOrderedQuantity = None
    totalOrderedQuantity = None
    subTagId = None
    def __init__(self,productLine, dateOrdered, linkType, trackingId, directConversion, directClicks, directOrderedQuantity, indirectOrderedQuantity, totalOrderedQuantity, subTagId):
        self.productLine = productLine
        self.dateOrdered = dateOrdered
        self.linkType = linkType
        self.trackingId = trackingId
        self.directConversion = directConversion
        self.directClicks = directClicks
        self.directOrderedQuantity= directOrderedQuantity
        self.indirectOrderedQuantity = indirectOrderedQuantity
        self.totalOrderedQuantity = totalOrderedQuantity
        self.subTagId = subTagId
        self.time = int(time.mktime(datetime.strptime(dateOrdered, "%B %d, %Y").timetuple()))

class AmazonAffiliateConversionInfo():
    productLine = None
    seller = None
    trackingId = None
    dateShipped = None
    price = None
    referralFeeRate = None
    quantity = None
    revenue = None
    earnings = None
    subTag = None

    subTag = None
    def __init__(self,productLine, seller, trackingId, dateShipped, price, referralFeeRate, quantity,revenue, earnings, subTag):
        self.productLine = productLine
        self.seller = seller
        self.trackingId = trackingId
        self.dateShipped = dateShipped
        self.price = price
        self.referralFeeRate = referralFeeRate
        self.quantity = quantity
        self.revenue= revenue
        self.earnings = earnings
        self.subTag = subTag

class ShopCluesAffiliateInfo():
    subTagId = None
    transactionTime = None
    transactionId = None
    orderRef = None
    merchantOrderId = None
    merchantName= None
    productCode = None
    productName = None
    payOut = None
    transactionValue = None
    uniqueKey = None
    clickTime = None
    status = None
    
    def __init__(self,subTagId, transactionTime, transactionId, orderRef, merchantOrderId, merchantName, productCode, productName,payOut, transactionValue, uniqueKey, clickTime, status):
        self.subTagId = subTagId
        self.transactionTime = int(time.mktime(datetime.strptime(transactionTime,"%Y-%m-%dT%H:%M:%S").timetuple()))
        self.transactionId = transactionId
        self.orderRef = orderRef
        self.merchantOrderId = merchantOrderId
        self.merchantName= merchantName
        self.productCode = productCode
        self.productName = productName
        self.payOut = payOut
        self.transactionValue = transactionValue
        self.uniqueKey = uniqueKey
        self.clickTime = int(time.mktime(datetime.strptime(clickTime,"%Y-%m-%dT%H:%M:%S").timetuple()))
        self.status = status

        
class HomeShopAffiliateInfo():
    subTagId = None
    transactionTime = None
    transactionId = None
    orderRef = None
    merchantOrderId = None
    merchantName= None
    productCode = None
    productName = None
    payOut = None
    transactionValue = None
    uniqueKey = None
    clickTime = None
    status = None

    
    def __init__(self,subTagId, transactionTime, transactionId, orderRef, merchantOrderId, merchantName, productCode, productName,payOut, transactionValue, uniqueKey, clickTime, status):
        self.subTagId = subTagId
        self.transactionTime = int(time.mktime(datetime.strptime(transactionTime,"%Y-%m-%dT%H:%M:%S").timetuple()))
        self.transactionId = transactionId
        self.orderRef = orderRef
        self.merchantOrderId = merchantOrderId
        self.merchantName= merchantName
        self.productCode = productCode
        self.productName = productName
        self.payOut = payOut
        self.transactionValue = transactionValue
        self.uniqueKey = uniqueKey
        self.clickTime = int(time.mktime(datetime.strptime(clickTime,"%Y-%m-%dT%H:%M:%S").timetuple()))
        self.status = status   

class Order():
    orderId = None
    subOrders = None
    deliveryCharges = None
    userId = None
    merchantOrderId = None
    storeId = None
    discountApplied = None
    subTagId = None
    closed = None
    placedOn = None
    totalAmount = None
    paidAmount = None
    orderSuccessUrl = None
    orderTrackingUrl = None
    createdOn = None
    createdOnInt = None
    requireDetail = None
    def __init__(self, orderId, userId, subTagId, storeId, orderSuccessUrl, new = True):
        self.orderId = orderId
        self.userId = userId
        self.subTagId = subTagId
        self.closed = False
        self.storeId = storeId
        self.orderSuccessUrl = orderSuccessUrl
        self.requireDetail = False
        if new:
            created = datetime.now()
            self.createdOn = str(created)
            self.createdOnInt = int(time.mktime(created.timetuple()))
        
class SubOrder():
    status = None
    productTitle = None
    estimatedDeliveryDate  = None
    estimatedShippingDate  = None
    productCode  = None
    detailedStatus  = None
    merchantSubOrderId  = None
    productUrl  = None
    courierName  = None
    unitPrice  = None
    amountPaid  = None 
    offerDiscount  = None
    deliveryCharges  = None
    tracingkUrl  = None
    orderDetailUrl = None
    placedOn  = None
    trackingNumber  = None
    quantity  = None
    cashBackStatus = None
    cashBackAmount = None
    cashBackPercentage = None
    imgUrl = None
    closed = None
    missingAff = None
    
    def __init__(self, productTitle, productUrl, placedOn, amountPaid, status=ORDER_PLACED, quantity = 1):
        self.productTitle = productTitle
        self.productUrl = productUrl
        self.placedOn = placedOn
        self.amountPaid = amountPaid
        self.status = status
        self.quantity = quantity
        self.closed = False
        self.missingAff = True
        
class FeaturedDeals():
    
    def __init__(self, skuBundleId, thresholdPrice, rank):
        self.skuBundleId = skuBundleId
        self.thresholdPrice = thresholdPrice
        self.rank = rank


class obj(object):
    def __init__(self, d):
        for a, b in d.items():
            if isinstance(b, (list, tuple)):
                setattr(self, a, [obj(x) if isinstance(x, dict) else x for x in b])
            else:
                setattr(self, a, obj(b) if isinstance(b, dict) else b)

class AppTransactions():
    def __init__(self, app_id, retailer_id, transaction_time, redirect_url, payout_status, payout_description, cashback_status, cash_back_description, payout_amount, payout_time, offer_price, overridenCashBack ,isCashBackOverriden, user_payout, final_user_payout):
        self.app_id = app_id
        self.retailer_id = retailer_id
        self.transaction_time = transaction_time
        self.redirect_url = redirect_url
        self.payout_status = payout_status
        self.payout_description = payout_description
        self.cashback_status = cashback_status
        self.cash_back_description = cash_back_description
        self.payout_amount = payout_amount
        self.payout_time = payout_time
        self.offer_price = offer_price
        self.overridenCashBack = overridenCashBack
        self.isCashBackOverriden = isCashBackOverriden
        self.user_payout = user_payout
        self.final_user_payout = final_user_payout
        
class AppOfferObj():
    def __init__(self, app_id, appmaster_id, app_name, affiliate_offer_id, image_url, downloads, link, offer_price, offerCategory, package_name, promoImage, ratings, user_payout, shortDescription, longDescription, customerOneLiner, retailerOneLiner, priority, offerCondition, location):
        self.app_id = app_id
        self.appmaster_id= appmaster_id
        self.app_name = app_name
        self.affiliate_offer_id = affiliate_offer_id
        self.image_url = image_url
        self.downloads = downloads
        self.link = link
        self.offer_price = offer_price 
        self.offerCategory = offerCategory
        self.package_name = package_name
        self.promoImage = promoImage
        self.ratings = ratings
        self.user_payout = user_payout
        self.shortDescription = shortDescription
        self.longDescription = longDescription
        self.customerOneLiner = customerOneLiner
        self.retailerOneLiner = retailerOneLiner
        self.priority = priority
        self.offerCondition = offerCondition
        self.location = location
        
class UserAppBatchDrillDown():
    def __init__(self, dateVal, downloads, amount):
        self.dateVal = dateVal
        self.downloads = downloads
        self.amount = amount
        
class UserAppBatchDateDrillDown():
    def __init__(self, appName, downloads, amount):
        self.appName = appName
        self.downloads = downloads
        self.amount = amount
        
class ProductInfo:
     
    def __init__(self, _id, skuBundleId, sourceProductId, sourceCategoryId, source_url ,source, source_id, category, category_id ,\
                 offer, cashback, available_price, mrp, thumbnail, brand, model_name, product_name, source_product_name, \
                 url, stock_status, in_stock, rank, identifier,addedOn,updatedOn,secondaryIdentifier,marketPlaceUrl,status, \
                 priceUpdatedOn, tagline, is_shortage, brand_id,maxPrice,buyBoxFlag,coupon,codAvailable,gross_price,ignorePricing,quantity, \
                 videoLink,showVideo,subCategoryId,subCategory,showMrp,shippingCost, showNetPrice):
        self. _id = _id
        self.addedOn =       addedOn
        self.available_price =       available_price
        self.brand   =       brand
        self.cashback=       cashback
        self.category=       category
        self.category_id     =       category_id
        self.identifier      =       identifier
        self.in_stock=       in_stock
        self.marketPlaceUrl  =       marketPlaceUrl
        self.model_name      =       model_name
        self.mrp     =       mrp
        self.product_name    =       product_name
        self.rank    =       rank
        self.secondaryIdentifier     =       secondaryIdentifier
        self.skuBundleId     =       skuBundleId
        self.source  =       source
        self.sourceCategoryId=sourceCategoryId
        self.sourceProductId=sourceProductId
        self.source_id=source_id
        self.source_product_name     =       source_product_name
        self.source_url      =       source_url
        self.status  =       status
        self.stock_status    =       stock_status
        self.thumbnail       =       thumbnail
        self.updatedOn       =       updatedOn
        self.url     =       url
        self.priceUpdatedOn  =       priceUpdatedOn
        self.offer   =       offer
        self.tagline =       tagline
        self.is_shortage     =       is_shortage
        self.brand_id=       brand_id
        self.maxPrice=       maxPrice
        self.buyBoxFlag      =       buyBoxFlag
        self.coupon  =       coupon
        self.codAvailable    =       codAvailable
        self.gross_price     =       gross_price
        self.ignorePricing   =       ignorePricing
        self.quantity=       quantity
        self.videoLink       =       videoLink
        self.showVideo       =       showVideo
        self.subCategoryId   =       subCategoryId
        self.subCategory     =       subCategory
        self.showMrp =       showMrp
        self.shippingCost    =       shippingCost
        self.showNetPrice = showNetPrice 

class Promotion:
    def __init__(self, offer_id,offer_name,offer_description , categories_applicable, sub_categories_not_applicable,
                     startDate, endDate, target1, target1_cash_back_percetage, target2, target2_cash_back_percetage, maxCashBack, url,
                     pending_order_value, delivered_order_value, last_run_timestamp):
            self.offer_id = offer_id
            self.offer_name = offer_name
            self.offer_description = offer_description
            self.categories_applicable = categories_applicable
            self.sub_categories_not_applicable = sub_categories_not_applicable
            self.startDate = startDate
            self.endDate = endDate 
            self.target1 = target1
            self.target1_cash_back_percetage = target1_cash_back_percetage
            self.target2 = target2
            self.target2_cash_back_percetage = target2_cash_back_percetage
            self.maxCashBack = maxCashBack
            self.url = url
            self.pending_order_value = pending_order_value
            self.delivered_order_value = delivered_order_value
            self.last_run_timestamp = last_run_timestamp

class NotificationCampaign:
    def __init__(self, campaignId, name, title, message, sql, url, created, expiresat, type, status, sendsms, messagetext, smsprocessed, notification_processed, notification_type):
        self._id = campaignId
        self.name = name
        self.title = title
        self.message = message
        self.sql = sql
        self.url = url
        self.created = created
        self.expiresat = expiresat
        self.type = type
        self.status = status
        self.sendsms = sendsms
        self.messagetext = messagetext 
        self.smsprocessed = smsprocessed
        self.notification_processed = notification_processed
        self.notification_type = notification_type 
        self.notification_long_text = None
            
class CrmRefundWallet:
    def __init__(self, user_id,email_id,mobile,amount,type,store,reference_no,reference_desc,status,created):
        self.user_id = user_id
        self.email_id = email_id
        self.mobile = mobile
        self.amount = amount
        self.type = type
        self.store = store
        self.reference_no = reference_no
        self.reference_desc = reference_desc
        self.status = status
        self.created_timestamp = created
        self.batchId = None
        self.update_timestamp = None
        self.approved_by = None