Skip to content

Commit

Permalink
Bpoint / Ledger Payment audit history
Browse files Browse the repository at this point in the history
  • Loading branch information
Jason Moore committed Mar 5, 2021
1 parent fda2907 commit 04a963a
Show file tree
Hide file tree
Showing 2 changed files with 75 additions and 0 deletions.
@@ -0,0 +1,58 @@
from django.core.management.base import BaseCommand
from django.utils import timezone
from ledger.payments.bpoint.models import BpointTransaction, BpointToken
#from ledger.payments.models import Invoice,OracleInterface,CashTransaction
#from oscar.apps.order.models import Order
#from ledger.basket.models import Basket
from django.conf import settings
from datetime import timedelta, datetime
from ledger.payments.bpoint.facade import Facade
from ledger.emails.emails import sendHtmlEmail

class Command(BaseCommand):
help = 'Check for payment which have been completed but are missing a booking.'

def add_arguments(self, parser):
yesterday = datetime.today() - timedelta(days=1)
settlement_date_search = yesterday.strftime("%Y%m%d")
parser.add_argument('settlement_date', nargs='?', default=settlement_date_search)

def handle(self, *args, **options):
rows = []
#system = settings.PS_PAYMENT_SYSTEM_ID
#system = system.replace('S','0')
#rows = bpoint_integrity_checks(system,100,2)
SYSTEM_ID = ''
if settings.PS_PAYMENT_SYSTEM_ID:
SYSTEM_ID = settings.PS_PAYMENT_SYSTEM_ID.replace("S","0")

yesterday = datetime.today() - timedelta(days=1)
settlement_date_search = yesterday.strftime("%Y%m%d")
if options['settlement_date']:
settlement_date_search = options['settlement_date']
print ("Checking :"+settlement_date_search)
bpoint_facade = Facade()
b = bpoint_facade.fetch_transaction_by_settlement_date(settlement_date_search)
ledger_payment_amount = 0
bpoint_amount = 0
for c in b:
if c.bank_response_code == '00':

amount = str(c.amount)[:-2]+'.'+str(c.amount)[-2:]
bpoint_amount = bpoint_amount + c.amount
bp = BpointTransaction.objects.filter(crn1=c.crn1)
if bp.count() > 0:
ledger_payment_amount = ledger_payment_amount + bp[0].amount
rows.append({'txn_number': c.txn_number,'crn1': c.crn1,'processed_date_time': c.processed_date_time, 'settlement_date': c.settlement_date, 'action': c.action+str(":"+amount), 'amount': amount, 'bpoint_amount': bpoint_amount, 'ledger_payment_amount': ledger_payment_amount })

if (len(rows)) > 0:
print ("Sending Report")
context = {
'settlement_date' : settlement_date_search,
'rows' : rows
}
email_list = []
for email_to in settings.NOTIFICATION_EMAIL.split(","):
email_list.append(email_to)
sendHtmlEmail(tuple(email_list),"[LEDGER] Bpoint Ledger Payment Audit Report "+SYSTEM_ID,context,'email/bpoint_ledger_payment_audit.html',None,None,settings.EMAIL_FROM,'system-oim',attachments=None)

17 changes: 17 additions & 0 deletions ledger/templates/email/bpoint_ledger_payment_audit.html
@@ -0,0 +1,17 @@
Hello,<br>
<br>
Below is a list of payments that do not exist in ledger:<br>
<br>
Please investigate.<br>
<br>
<b>Report Date: {{ settlement_date }}
<br>
<table>
<tr><th>Txn Number</th><th>Invoice No</th><th>Settlement Date</th><th>Processed Date Time</th><th>Action</th><th>Amount</th><th>Bpoint Audit Amount</th><th>Ledger Audit Amount</th></tr>
{% for r in rows %}
<tr><td>{{ r.txn_number }}</td><td>{{ r.crn1 }}</td><td>{{ r.settlement_date }}</td><td>{{ r.processed_date_time }}</td><td>{{ r.action }}</td><td>${{ r.amount }}</td><td>${{ r.bpoint_amount }}</td><td>${{ r.ledger_payment_amount }}</td></tr>
{% endfor %}
</table>
<br><br>
Kind Regards<br>
Auto Generated<br>

0 comments on commit 04a963a

Please sign in to comment.