(20250225)

This commit is contained in:
2025-02-25 16:13:33 +05:30
parent a584624852
commit e8cb43247b
3 changed files with 27 additions and 5 deletions
+20 -1
View File
@@ -343,7 +343,7 @@ class PaymentsController(CoreAuthTokenController, ABC):
payment.metadata.inAccount, # ................................... p_in_account payment.metadata.inAccount, # ................................... p_in_account
payment.metadata.idUser, # ...................................... p_user_id payment.metadata.idUser, # ...................................... p_user_id
payment.metadata.documentUrl, # ................................. p_document_url payment.metadata.documentUrl, # ................................. p_document_url
payment.metadata.againstReference # ............................. p_notes json.to_string(payment.metadata.againstReference) # ............. p_notes
), ),
retry_count = 1, retry_count = 1,
backoff_seconds = 0.5, backoff_seconds = 0.5,
@@ -356,6 +356,25 @@ class PaymentsController(CoreAuthTokenController, ABC):
if sql_json["status"] == 1: return True if sql_json["status"] == 1: return True
else: return False else: return False
async def add_sales_transaction(
self,
sql_conn: AsyncMySQL,
mongo_data_conn: AsyncMongo,
payment: CorePaymentModel,
session_token: str = None
) -> bool:
"""
???
: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.
:param session_token: The session token of the user to identify whose request caused this receipt update.
:return: True is the receipt was added, else False.
"""
pass
async def add_event_by_payment_id( async def add_event_by_payment_id(
self, self,
mongo_data_conn: AsyncMongo, mongo_data_conn: AsyncMongo,
+4 -2
View File
@@ -40,6 +40,7 @@ from pydantic import BaseModel, Field, field_validator, PastDatetime
from typing import Optional, Literal, Union, List, Any from typing import Optional, Literal, Union, List, Any
# My utils: # My utils:
from utils_v2.string import json
from utils_v2.string import regex from utils_v2.string import regex
# To work with MongoDB: # To work with MongoDB:
@@ -117,7 +118,7 @@ class PaymentRequestMetadata(BaseModel):
idClient: int = Field(frozen = True) idClient: int = Field(frozen = True)
inAccount: int = Field(frozen = True) inAccount: int = Field(frozen = True)
reference: str | None = Field(frozen = True, default = None, validate_default = True) reference: str | None = Field(frozen = True, default = None, validate_default = True)
againstReference: str | None = Field(frozen = True, default = None, validate_default = True) againstReference: dict | None = Field(frozen = True, default = None, validate_default = True)
documentUrl: str | None = Field(frozen = False, default = None, validate_default = True) documentUrl: str | None = Field(frozen = False, default = None, validate_default = True)
# ┏┓ ┏• # ┏┓ ┏•
@@ -137,9 +138,10 @@ class PaymentRequestMetadata(BaseModel):
if not value: value = "On Account" if not value: value = "On Account"
return value return value
@field_validator("againstReference") @field_validator("againstReference", mode = "before")
def validate_against_reference(cls, value): def validate_against_reference(cls, value):
if not value: value = None if not value: value = None
if isinstance(value, str): value = json.from_string(value)
return value return value
@field_validator("documentUrl") @field_validator("documentUrl")
+3 -2
View File
@@ -147,7 +147,7 @@ class PaymentMetadata(BaseModel):
idClient: int | None = Field(frozen = True, default = None, validate_default = True) idClient: int | None = Field(frozen = True, default = None, validate_default = True)
inAccount: int | 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) reference: str | None = Field(frozen = True, default = None, validate_default = True)
againstReference: str | None = Field(frozen = True, default = None, validate_default = True) againstReference: dict | None = Field(frozen = True, default = None, validate_default = True)
documentUrl: str | None = Field(frozen = False, default = None, validate_default = True) documentUrl: str | None = Field(frozen = False, default = None, validate_default = True)
# ┏┓ ┏• # ┏┓ ┏•
@@ -167,9 +167,10 @@ class PaymentMetadata(BaseModel):
if not value: value = "On Account" if not value: value = "On Account"
return value return value
@field_validator("againstReference") @field_validator("againstReference", mode = "before")
def validate_against_reference(cls, value): def validate_against_reference(cls, value):
if not value: value = None if not value: value = None
if isinstance(value, str): value = json.from_string(value)
return value return value
@field_validator("documentUrl") @field_validator("documentUrl")