From 16d2d537009c95deb68d7bf6bd37575a6155b33c Mon Sep 17 00:00:00 2001 From: khushal Date: Tue, 25 Feb 2025 17:07:56 +0530 Subject: [PATCH] (20250225) FML :') --- controllers_v2/finstitutions/payments/base.py | 39 ++++++++++++------- .../payments/safaricom_mpesa_express.py | 6 +++ 2 files changed, 31 insertions(+), 14 deletions(-) diff --git a/controllers_v2/finstitutions/payments/base.py b/controllers_v2/finstitutions/payments/base.py index 0e61efa..ee75663 100644 --- a/controllers_v2/finstitutions/payments/base.py +++ b/controllers_v2/finstitutions/payments/base.py @@ -377,27 +377,38 @@ class PaymentsController(CoreAuthTokenController, ABC): """ # If this is not an against-sale kind of transaction: - if not payment.metadata.reference.strip().lower().find("against sale"): + if not payment.metadata.againstReference.get("against", "MKC").strip().lower().find("against sale") >= 0: return True # If this is against some sale: + success = False + api_input_json = { + "transactionDate": date_time.get_current_ist_date_time().strftime("%Y-%m-%d"), + "clientId": payment.metadata.idClient, + "clientName": payment.metadata.clientName, + "clientAddress": None, + "deliveryAddress": None, + "total": payment.amount, + "documentUrl": None, + "invoiceNo": None, + "deliveryBoyId": None, + "deliveryBoyName": None, + "lineItems": payment.metadata.againstReference["salesItems"] + } + print("ADD SALES TXN INPUT JSON:", json.to_string(api_input_json)) api_response = await current_app.http_client.post( url = "https://api.thecaoffice.com/account/sales/transaction/add", headers = {"X-Session-Token": session_token}, - json = { - "transactionDate": date_time.get_current_ist_date_time().strftime("%Y-%m-%d"), - "clientId": payment.metadata.idClient, - "clientName": payment.metadata.clientName, - "clientAddress": None, - "deliveryAddress": None, - "total": payment.amount, - "documentUrl": None, - "invoiceNo": None, - "deliveryBoyId": None, - "deliveryBoyName": None, - "lineItems": payment.metadata.againstReference - } + json = api_input_json ) + try: api_json = api_response.json() + except: api_json = {} + print(f"ADD SALES TXN ({api_response.status_code}):", api_response.content) + print("ADD SALES TXN:", json.to_string(api_json)) + if api_response.is_success: success = True + + # Done here: + return success async def add_event_by_payment_id( self, diff --git a/controllers_v2/finstitutions/payments/safaricom_mpesa_express.py b/controllers_v2/finstitutions/payments/safaricom_mpesa_express.py index 21b6460..1119e3f 100644 --- a/controllers_v2/finstitutions/payments/safaricom_mpesa_express.py +++ b/controllers_v2/finstitutions/payments/safaricom_mpesa_express.py @@ -383,6 +383,12 @@ class SafaricomMPesaExpressPaymentsController(PaymentsController): payment = payment, session_token = None ) + sales_transaction_added = await self.add_sales_transaction( + sql_conn = sql_conn, + mongo_data_conn = mongo_data_conn, + payment = payment, + session_token = None + ) # Done here: if event_note_success: