Subversion Repositories SmartDukaan

Rev

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

Rev 8788 Rev 8790
Line 107... Line 107...
107
    X3 - Net difference in wallet amount between this time window.
107
    X3 - Net difference in wallet amount between this time window.
108
    X4 - Payment received through gateway from all customer in this time window.
108
    X4 - Payment received through gateway from all customer in this time window.
109
    X5 - Payment refunded through gateway by all customer in this time window.
109
    X5 - Payment refunded through gateway by all customer in this time window.
110
    '''
110
    '''
111
    
111
    
112
    A = 0
112
    A1 = 0
113
    B = 0
113
    B1 = 0
114
    C = 0
114
    C1 = 0
-
 
115
    A2 = 0
-
 
116
    B2 = 0
-
 
117
    C2 = 0
-
 
118
    R = 0
-
 
119
    P = 0
115
    X1 = 0
120
    X1 = 0
116
    X2 = 0
121
    X2 = 0
117
    X3 = 0
122
    X3 = 0
118
    X4 = 0
123
    X4 = 0
119
    X5 = 0
124
    X5 = 0
-
 
125
    X6 = 0
120
    D = 0
126
    D = 0
121
    
127
    
122
    sorder = session.query(func.sum(RechargeOrder.totalAmount - RechargeOrder.couponAmount), func.sum(RechargeOrder.totalAmount), func.sum(RechargeOrder.couponAmount)).filter(RechargeOrder.status.in_([RechargeOrderStatus.RECHARGE_SUCCESSFUL, RechargeOrderStatus.PAYMENT_SUCCESSFUL])).filter(RechargeOrder.creationTimestamp.between(startTime,endTime)).first()    
128
    sorder = session.query(func.sum(RechargeOrder.totalAmount), func.sum(RechargeOrder.couponAmount)).filter(RechargeOrder.status.in_([RechargeOrderStatus.RECHARGE_SUCCESSFUL, RechargeOrderStatus.PAYMENT_SUCCESSFUL])).filter(RechargeOrder.creationTimestamp.between(startTime,endTime)).first()    
123
    if sorder and sorder[0]:
129
    if sorder and sorder[0]:
124
        A = int(sorder[0])
130
        A1 = int(sorder[0])
-
 
131
        A2 = int(sorder[1])
125
    
132
    
126
    forder = session.query(func.sum(RechargeOrder.totalAmount - RechargeOrder.couponAmount), func.sum(RechargeOrder.totalAmount), func.sum(RechargeOrder.couponAmount)).filter(RechargeOrder.status.in_([RechargeOrderStatus.RECHARGE_FAILED, RechargeOrderStatus.RECHARGE_FAILED_REFUNDED, RechargeOrderStatus.REFUNDED, RechargeOrderStatus.PARTIALLY_REFUNDED])).filter(RechargeOrder.creationTimestamp.between(startTime,endTime)).filter(not_(RechargeOrder.responseTimestamp.between(startTime,endTime))).first()
133
    forder = session.query(func.sum(RechargeOrder.totalAmount), func.sum(RechargeOrder.couponAmount)).filter(RechargeOrder.status.in_([RechargeOrderStatus.RECHARGE_FAILED, RechargeOrderStatus.RECHARGE_FAILED_REFUNDED, RechargeOrderStatus.REFUNDED, RechargeOrderStatus.PARTIALLY_REFUNDED])).filter(RechargeOrder.creationTimestamp.between(startTime,endTime)).filter(not_(RechargeOrder.responseTimestamp.between(startTime,endTime))).first()
127
    if forder and forder[0]:
134
    if forder and forder[0]:
128
        B = int(forder[0])
135
        B1 = int(forder[0])
-
 
136
        B2 = int(forder[1])
129
    
137
    
130
    rorder = session.query(func.sum(RechargeOrder.totalAmount - RechargeOrder.couponAmount), func.sum(RechargeOrder.totalAmount), func.sum(RechargeOrder.couponAmount)).filter(RechargeOrder.status.in_([RechargeOrderStatus.RECHARGE_FAILED, RechargeOrderStatus.RECHARGE_FAILED_REFUNDED, RechargeOrderStatus.REFUNDED, RechargeOrderStatus.PARTIALLY_REFUNDED])).filter(RechargeOrder.responseTimestamp.between(startTime,endTime)).filter(not_(RechargeOrder.creationTimestamp.between(startTime,endTime))).first()
138
    rorder = session.query(func.sum(RechargeOrder.totalAmount), func.sum(RechargeOrder.couponAmount)).filter(RechargeOrder.status.in_([RechargeOrderStatus.RECHARGE_FAILED, RechargeOrderStatus.RECHARGE_FAILED_REFUNDED, RechargeOrderStatus.REFUNDED, RechargeOrderStatus.PARTIALLY_REFUNDED])).filter(RechargeOrder.responseTimestamp.between(startTime,endTime)).filter(not_(RechargeOrder.creationTimestamp.between(startTime,endTime))).first()
131
    if rorder and rorder[0]:
139
    if rorder and rorder[0]:
132
        C = int(rorder[0])
140
        C1 = int(rorder[0])
-
 
141
        C2 = int(rorder[1])
133
 
142
 
-
 
143
    R = R + A1 + B1 - C1
134
    X1 = X1 + A + B - C
144
    X2 = X2 + A2 + B2 - C2
135
    
145
    
136
    rv = session.query(func.sum(RechargeVoucherTracker.amount)).filter(RechargeVoucherTracker.issuedOn.between(startTime,endTime)).first()
146
    rv = session.query(func.sum(RechargeVoucherTracker.amount)).filter(RechargeVoucherTracker.issuedOn.between(startTime,endTime)).first()
137
    if rv and rv[0]:
147
    if rv and rv[0]:
138
        X2 = int(rv[0])
148
        X3 = int(rv[0])
139
        
149
        
140
    uw = session.query(func.sum(UserWalletHistory.amount)).filter(UserWalletHistory.timestamp.between(startTime,endTime)).first()
150
    uw = session.query(func.sum(UserWalletHistory.amount)).filter(UserWalletHistory.timestamp.between(startTime,endTime)).first()
141
    if uw and uw[0]:
151
    if uw and uw[0]:
142
        X3 = int(uw[0])
152
        X4 = int(uw[0])
143
    
153
    
144
    
154
    
145
    
155
    
146
    pc = PaymentClient().get_client()
156
    pc = PaymentClient().get_client()
147
    payments = pc.getPayments(to_java_date(startTime - datetime.timedelta(minutes = 30)), to_java_date(endTime + datetime.timedelta(minutes = 30)), 2, 1) + pc.getPayments(to_java_date(startTime - datetime.timedelta(minutes = 30)), to_java_date(endTime + datetime.timedelta(minutes = 30)), 2, 2) + pc.getPayments(to_java_date(startTime - datetime.timedelta(minutes = 30)), to_java_date(endTime + datetime.timedelta(minutes = 30)), 8, 1) + pc.getPayments(to_java_date(startTime - datetime.timedelta(minutes = 30)), to_java_date(endTime + datetime.timedelta(minutes = 30)), 8, 2)
157
    payments = pc.getPayments(to_java_date(startTime - datetime.timedelta(minutes = 30)), to_java_date(endTime + datetime.timedelta(minutes = 30)), 2, 1) + pc.getPayments(to_java_date(startTime - datetime.timedelta(minutes = 30)), to_java_date(endTime + datetime.timedelta(minutes = 30)), 2, 2) + pc.getPayments(to_java_date(startTime - datetime.timedelta(minutes = 30)), to_java_date(endTime + datetime.timedelta(minutes = 30)), 8, 1) + pc.getPayments(to_java_date(startTime - datetime.timedelta(minutes = 30)), to_java_date(endTime + datetime.timedelta(minutes = 30)), 8, 2)
148
    for payment in payments:
158
    for payment in payments:
149
        if payment.isDigital and to_py_date(payment.successTimestamp) >= startTime and to_py_date(payment.successTimestamp) <= endTime:  
159
        if payment.isDigital and to_py_date(payment.successTimestamp) >= startTime and to_py_date(payment.successTimestamp) <= endTime:  
150
            X4 = X4 + payment.amount
160
            X5 = X5 + payment.amount
151
 
161
 
152
    
162
    
153
    
163
    
154
    refunds = RechargeOrder.query.filter(RechargeOrder.status.in_([RechargeOrderStatus.PARTIALLY_REFUNDED, RechargeOrderStatus.REFUNDED])).filter(RechargeOrder.refundTimestamp.between(startTime, endTime)).all()
164
    refunds = RechargeOrder.query.filter(RechargeOrder.status.in_([RechargeOrderStatus.PARTIALLY_REFUNDED, RechargeOrderStatus.REFUNDED])).filter(RechargeOrder.refundTimestamp.between(startTime, endTime)).all()
155
    pc = PaymentClient().get_client()
165
    pc = PaymentClient().get_client()
156
    for refund in refunds:
166
    for refund in refunds:
157
        payments = pc.getPaymentForRechargeTxnId(refund.transaction_id)
167
        payments = pc.getPaymentForRechargeTxnId(refund.transaction_id)
158
        for payment in payments:
168
        for payment in payments:
159
            if payment.gatewayId in (1,2) and payment.status == 8 and payment.isDigital:
169
            if payment.gatewayId in (1,2) and payment.status == 8 and payment.isDigital:
160
                X5 = X5 + payment.refundAmount
170
                X6 = X6 + payment.refundAmount
161
    
171
    
162
    D = X1+X3+X5-X2-X4
172
    P = X2+X3+X5-X4-X6
-
 
173
    D = R - P
163
    
174
    
164
    maildata = "<html><body><table border='1'><thead><th>Symbol</th><th>Type</th><th>Amount</th></thead><tbody>"
175
    maildata = "<html><body><table border='1'><thead><th>Symbol</th><th>Type</th><th>Amount</th></thead><tbody>"
165
    maildata += "<tr><td>A</td><td>Recharge Amount</td><td>" + str(A) + "</td></tr>"
176
    maildata += "<tr><td>A</td><td>Recharge Amount</td><td>" + str(A1) + "</td></tr>"
166
    maildata += "<tr><td>B</td><td>Recharge Amount (Refunded in Future)</td><td>" + str(B) + "</td></tr>"
177
    maildata += "<tr><td>B</td><td>Recharge Amount (Refunded in Future)</td><td>" + str(B1) + "</td></tr>"
167
    maildata += "<tr><td>C</td><td>Recharge Refund Amount</td><td>" + str(C) + "</td></tr>"
178
    maildata += "<tr><td>C</td><td>Recharge Refund Amount</td><td>" + str(C1) + "</td></tr>"
168
    maildata += "<tr><td>X1=A+B-C</td><td>Net Recharge Amount</td><td>" + str(X1) + "</td></tr>"
179
    maildata += "<tr><td>R=A1+B1-C1</td><td>Net Recharge Amount</td><td>" + str(R) + "</td></tr>"
-
 
180
    maildata += "<tr><td></td><td></td><td></td></tr>"
-
 
181
 
-
 
182
    maildata += "<tr><td>A</td><td>Recharge Coupon Amount</td><td>" + str(A2) + "</td></tr>"
-
 
183
    maildata += "<tr><td>B</td><td>Recharge Coupon Amount (Refunded in Future)</td><td>" + str(B2) + "</td></tr>"
-
 
184
    maildata += "<tr><td>C</td><td>Recharge Coupon Refund Amount</td><td>" + str(C2) + "</td></tr>"    
-
 
185
    maildata += "<tr><td>X2=A2+B2-C2</td><td>Net Coupon Amount</td><td>" + str(X2) + "</td></tr>"
-
 
186
    
169
    maildata += "<tr><td>X2</td><td>Gift Amount</td><td>" + str(X2) + "</td></tr>"
187
    maildata += "<tr><td>X3</td><td>Gift Amount</td><td>" + str(X3) + "</td></tr>"
170
    maildata += "<tr><td>X3</td><td>Wallet Difference</td><td>" + str(X3) + "</td></tr>"
188
    maildata += "<tr><td>X4</td><td>Wallet Difference</td><td>" + str(X4) + "</td></tr>"
171
    maildata += "<tr><td>X4</td><td>Payment Amount</td><td>" + str(X4) + "</td></tr>"
189
    maildata += "<tr><td>X5</td><td>Payment Amount</td><td>" + str(X5) + "</td></tr>"
172
    maildata += "<tr><td>X5</td><td>Payment Refund Amount</td><td>" + str(X5) + "</td></tr>"
190
    maildata += "<tr><td>X6</td><td>Payment Refund Amount</td><td>" + str(X6) + "</td></tr>"
-
 
191
    maildata += "<tr><td>P=X2+X3+X5-X4-X6</td><td>Net Payments</td><td>" + str(P) + "</td></tr>"
-
 
192
    maildata += "<tr><td></td><td></td><td></td></tr>"
-
 
193
    
173
    maildata += "<tr><td>D=X1+X3+X5-X2-X4</td><td>Net Reconciliation Difference</td><td>" + str(D) + "</td></tr>"
194
    maildata += "<tr><td>D=R-P</td><td>Net Reconciliation Difference</td><td>" + str(D) + "</td></tr>"
174
    maildata += "</tbody></table>"
195
    maildata += "</tbody></table>"
175
 
196
 
176
    if D != 0:
197
    if D != 0:
177
        mismatches = RechargeOrder.query.filter(RechargeOrder.status.in_([RechargeOrderStatus.RECHARGE_SUCCESSFUL, RechargeOrderStatus.PAYMENT_SUCCESSFUL])).filter(RechargeOrder.creationTimestamp.between(startTime, endTime)).filter(RechargeOrder.responseTimestamp.between(endTime, endTime + timedelta(minutes = 10))).all()
198
        mismatches = RechargeOrder.query.filter(RechargeOrder.status.in_([RechargeOrderStatus.RECHARGE_SUCCESSFUL, RechargeOrderStatus.PAYMENT_SUCCESSFUL])).filter(RechargeOrder.creationTimestamp.between(startTime, endTime)).filter(RechargeOrder.responseTimestamp.between(endTime, endTime + timedelta(minutes = 10))).all()
178
        if mismatches and len(mismatches) > 0:
199
        if mismatches and len(mismatches) > 0:
Line 180... Line 201...
180
            for mismatch in mismatches:
201
            for mismatch in mismatches:
181
                maildata += "<tr><td>" + str(mismatch.id) + "</td><td>" + str(mismatch.totalAmount) + "</td><td>" + str(mismatch.walletAmount) + "</td><td>" + str(mismatch.couponAmount) + "</td><td>" + str(mismatch.creationTimestamp) + "</td><td>" + str(mismatch.responseTimestamp) + "</td></tr>"        
202
                maildata += "<tr><td>" + str(mismatch.id) + "</td><td>" + str(mismatch.totalAmount) + "</td><td>" + str(mismatch.walletAmount) + "</td><td>" + str(mismatch.couponAmount) + "</td><td>" + str(mismatch.creationTimestamp) + "</td><td>" + str(mismatch.responseTimestamp) + "</td></tr>"        
182
            maildata += "</tbody></table>"
203
            maildata += "</tbody></table>"
183
    
204
    
184
    maildata += "</body></html>"
205
    maildata += "</body></html>"
185
    mail_html("cnc.center@shop2020.in", "5h0p2o2o", ["rajveer.singh@shop2020.in", "anupam.singh@shop2020.in", "rajneesh.arora@shop2020.in"], "Customer Recharge Reconciliation for Date:- " + startTime.strftime("%d-%m-%Y"), maildata, [])
206
    mail_html("cnc.center@shop2020.in", "5h0p2o2o", ["rajveer.singh@shop2020.in"], "Customer Recharge Reconciliation for Date:- " + startTime.strftime("%d-%m-%Y"), maildata, [])
186
        
207
    
-
 
208
    #, "anupam.singh@shop2020.in", "rajneesh.arora@shop2020.in"
187
 
209
 
188
def processRefunds():
210
def processRefunds():
189
    todate = datetime.datetime.now()
211
    todate = datetime.datetime.now()
190
    for i in range(10):
212
    for i in range(10):
191
        orderDate = todate + datetime.timedelta(days= -i)
213
        orderDate = todate + datetime.timedelta(days= -i)