From b70b40c4b2a3dcefe0adc86725ad612ec31f3363 Mon Sep 17 00:00:00 2001 From: khushal Date: Tue, 25 Feb 2025 16:59:00 +0530 Subject: [PATCH] (20250225) fml --- controllers_v2/finstitutions/payments/base.py | 28 +++++++++++++++++-- models/api/finstitutions/payments/request.py | 1 + models/core/payment.py | 1 + 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/controllers_v2/finstitutions/payments/base.py b/controllers_v2/finstitutions/payments/base.py index fb3ee47..130a34a 100644 --- a/controllers_v2/finstitutions/payments/base.py +++ b/controllers_v2/finstitutions/payments/base.py @@ -35,6 +35,9 @@ import sys sys.path.append(".") sys.path.append("..") +# For Quart: +from quart import current_app + # My async utils: from utils_v2.string import json from utils_v2.date_time import date_time @@ -365,7 +368,7 @@ class PaymentsController(CoreAuthTokenController, ABC): ) -> bool: """ - ??? + ??? Fuck it. Not worth breaking your head over. :param sql_conn: The database connection to use to perform this activity. :param mongo_data_conn: The database connection to use to perform this activity. :param payment: The record of the payment whose details need to be added as a receipt. @@ -373,7 +376,28 @@ class PaymentsController(CoreAuthTokenController, ABC): :return: True is the receipt was added, else False. """ - pass + # If this is not an against-sale kind of transaction: + if not payment.metadata.reference.strip().lower().find("against sale"): + return True + + # If this is against some sale: + 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_date_time().strftime("%Y-%m-%d"), + "clientId": payment.metadata.idClient, + "clientName": payment.metadata., + "clientAddress": None, + "deliveryAddress": None, + "total": payment.amount, + "documentUrl": None, + "invoiceNo": None, + "deliveryBoyId": None, + "deliveryBoyName": None, + "lineItems": payment.metadata.againstReference + } + ) async def add_event_by_payment_id( self, diff --git a/models/api/finstitutions/payments/request.py b/models/api/finstitutions/payments/request.py index 62f3f16..83d0ec0 100644 --- a/models/api/finstitutions/payments/request.py +++ b/models/api/finstitutions/payments/request.py @@ -116,6 +116,7 @@ class PaymentRequestMetadata(BaseModel): idUser: int | None = Field(frozen = False, default = None, validate_default = True) idClient: int = Field(frozen = True) + clientName: str | None = Field(frozen = True, default = None, validate_default = True) inAccount: int = Field(frozen = True) reference: str | None = Field(frozen = True, default = None, validate_default = True) againstReference: dict | None = Field(frozen = True, default = None, validate_default = True) diff --git a/models/core/payment.py b/models/core/payment.py index 22f8467..b547611 100644 --- a/models/core/payment.py +++ b/models/core/payment.py @@ -145,6 +145,7 @@ class PaymentMetadata(BaseModel): idUser: int | None = Field(frozen = True, default = None, validate_default = True) idClient: int | None = Field(frozen = True, default = None, validate_default = True) + clientName: str | None = Field(frozen = True, default = None, validate_default = True) inAccount: int | None = Field(frozen = True, default = None, validate_default = True) reference: str | None = Field(frozen = True, default = None, validate_default = True) againstReference: dict | None = Field(frozen = True, default = None, validate_default = True)