| 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)
|