Subversion Repositories SmartDukaan

Rev

Rev 13753 | Blame | Compare with Previous | Last modification | View Log | RSS feed

#!/usr/bin/python

import optparse
import sys
import datetime
from datetime import timedelta
from elixir import *
from sqlalchemy.sql import func
import urllib
import httplib
from shop2020.utils.EmailAttachmentSender import mail, mail_html
from shop2020.model.v1.order.impl.model.UserWalletHistory import UserWalletHistory
from shop2020.model.v1.order.impl.model.UserWallet import UserWallet
from shop2020.utils.Utils import to_java_date, to_py_date
from shop2020.clients.PaymentClient import PaymentClient



if __name__ == '__main__' and __package__ is None:
    import os
    sys.path.insert(0, os.getcwd())
from datetime import date, timedelta
from shop2020.clients.HelperClient import HelperClient
from shop2020.clients.TransactionClient import TransactionClient
from shop2020.thriftpy.model.v1.order.ttypes import RechargeOrderStatus,\
    OrderType
from shop2020.model.v1.order.impl.DataAccessors import get_recharge_orders_for_status, update_recharge_order_status,\
    update_recharge_transaction_status, get_next_invoice_number
from shop2020.model.v1.order.impl import DataService
from shop2020.model.v1.order.impl.DataService import RechargeTransaction, HotspotStore,\
    WalletForCompany, WalletHistoryForCompany, RechargeCollection, Company, HotspotServiceMatrix,\
    RechargeVoucherTracker
from shop2020.model.v1.order.impl.model.RechargeOrder import RechargeOrder
from shop2020.model.v1.order.impl.RechargeService import checkTransactionStatus, getRefunds, getBalance 
from sqlalchemy.sql.expression import and_, or_, desc, not_, distinct, cast, between

def main():
    paymentrecon()
    
def paymentrecon():
    today = datetime.datetime.now()
    dateTo = datetime.datetime(today.year, today.month, today.day)
    dateFrom = dateTo - datetime.timedelta(days = 7)
    pc = PaymentClient().get_client()
    hdfcPayments = pc.getPayments(to_java_date(dateFrom), to_java_date(dateTo), 0, 1) + pc.getPayments(to_java_date(dateFrom), to_java_date(dateTo), 3, 1)
    mail_data = "Problem\tPaymentId\tTransactionId\tAmount\tDateTime\tIsDigital\tPaymentGateway"
    for payment in hdfcPayments:
        if payment.isDigital:
            gstatus = pc.getPaymentStatusAtGateway(payment.merchantTxnId, payment.amount, payment.isDigital)
            if gstatus in(0,3):
                continue
            else:
                print "Problem", str(payment.paymentId), str(payment.merchantTxnId), str(payment.amount), str(payment.isDigital)
                mail_data += "\nProblem\t" + str(payment.paymentId) + "\t" + str(payment.merchantTxnId) + "\t" + str(payment.amount)  + "\t" + str(to_py_date(payment.initTimestamp)) + "\t" + str(payment.isDigital)+"\tHDFC"
            #pc.refundPayment(payment.merchantTxnId, payment.amount, payment.isDigital)
    
    payuPayments = pc.getPayments(to_java_date(dateFrom), to_java_date(dateTo), 0, 20) + pc.getPayments(to_java_date(dateFrom), to_java_date(dateTo), 3, 20)
    for payment in payuPayments:
        if payment.isDigital:
            gstatus = pc.getPaymentStatusAtGateway(payment.merchantTxnId, payment.amount, payment.isDigital)
            if gstatus in(0,3):
                continue
            else:
                print "Problem", str(payment.paymentId), str(payment.merchantTxnId), str(payment.amount), str(payment.isDigital)
                mail_data += "\nProblem\t" + str(payment.paymentId) + "\t" + str(payment.merchantTxnId) + "\t" + str(payment.amount)  + "\t" + str(to_py_date(payment.initTimestamp)) + "\t" + str(payment.isDigital)+"\tPayU"
            #pc.refundPayment(payment.merchantTxnId, payment.amount, payment.isDigital)


    mail("adwords@shop2020.in", "adwords_shop2020", ["amit.sirohi@shop2020.in","amit.gupta@shop2020.in","manish.sharma@shop2020.in"], "HDFC-PayU Payment Status Mismatch", mail_data, [], [], [])
if __name__ == '__main__':
    main()