New reports

This commit is contained in:
CHIEFSOFT\ameye
2025-07-25 12:18:51 -04:00
parent dc9d18fc54
commit a452e3589f
6 changed files with 58 additions and 3 deletions
+17
View File
@@ -94,6 +94,23 @@ CREATE TABLE products (
ALTER TABLE ONLY products_details
ADD CONSTRAINT products_details_id_key UNIQUE (id);
CREATE TABLE member_product_refresh(
id SERIAL,
uid uuid DEFAULT uuid_generate_v4(),
member_id INT REFERENCES members(id),
product_id VARCHAR(25) NOT NULL,
subscription_uid VARCHAR(100) UNIQUE NOT NULL,
status INT DEFAULT 0,
added timestamp without time zone DEFAULT now(),
updated timestamp without time zone DEFAULT now()
);
ALTER TABLE ONLY member_product_refresh
ADD CONSTRAINT member_product_refresh_id_key UNIQUE (id);
ALTER TABLE products_details OWNER TO merms_panel;
--- ALTER TABLE products_details ADD sale_text TEXT;
+9
View File
@@ -234,6 +234,15 @@ def get_dashboard():
# Call the dashboard service
result = OfficeDashboardService.get_dashboard_data()
return jsonify(result)
@api.route('/office/transaction', methods=['GET'])
# @token_required
def get_subscription_office():
# Call the dashboard service
result = OfficeDashboardService.get_subscriptions_data()
return jsonify(result)
#=====================================================
# # EligibilityCheck Endpoint
+4
View File
@@ -8,6 +8,10 @@ from app.models import MembersProducts, Products, Members, ProductsDetails, Prod
class OfficeDashboardService(BaseService):
@staticmethod
def get_subscriptions_data():
pass
@staticmethod
def get_dashboard_data():
try:
+24 -1
View File
@@ -8,7 +8,7 @@ from marshmallow import ValidationError
# from app.api.enums import TransactionType
# from app.api.integrations import SimbrellaIntegration
from app.extensions import db
from app.models import MembersProducts, Products, Members
from app.models import MembersProducts, Products, Members, MembersProductsRefresh
# from app.api.services.offer_analysis import OfferAnalysis
from app.api.helpers.response_helper import ResponseHelper
@@ -143,6 +143,29 @@ class ProductsService(BaseService):
member_data = Members.get_member_by_uid(uid)
member_id = member_data.id
subscription_uid = validated_data.get('subscription_uid')
product_id = validated_data.get('product_id')
memberSubscription = MembersProducts.get_member_product_by_product_member_id(member_id, product_id)
logger.info(f"memberSubscription UID ****** *****: {memberSubscription.uid} , subscription_uid == {subscription_uid}")
if memberSubscription is None :
response_data = {
"error": "Product not found",
"member_id": member_id,
"uid": member_data.uid,
}
return ResponseHelper.success(data=response_data)
if str(memberSubscription.uid) != subscription_uid :
response_data = {
"error": "Invalid product call",
"member_id": member_id,
"uid": member_data.uid,
}
return ResponseHelper.success(data=response_data)
MembersProductsRefresh.create_subscription_refresh(member_id,product_id, subscription_uid)
# if memberSubscription.uid != subscription_uid :
#products = MembersProducts.get_member_productlist_by_member_id(member_id)
+3 -1
View File
@@ -19,9 +19,11 @@ from .members_pending import MembersPending
from .products_details import ProductsDetails
from .provision_actions import ProvisionActions
from .password_reset import PasswordReset
from .member_product_refresh import MembersProductsRefresh
__all__ = ['Members','Customer', 'Account', 'Products',
'MembersProducts', 'MembersActions', 'MembersPending', 'ProductsDetails', 'ProvisionActions', 'PasswordReset','Loan', 'Transaction', 'Repayment',
'MembersProducts', 'MembersActions', 'MembersPending', 'ProductsDetails', 'ProvisionActions', 'MembersProductsRefresh',
'PasswordReset','Loan', 'Transaction', 'Repayment',
'LoanCharge', 'Offer', 'Charge', 'RACCheck', 'LoanRepaymentSchedule',
'TransactionOffer', 'RepaymentsData', 'Salary']
+1 -1
View File
@@ -37,7 +37,7 @@ class MembersActions(db.Model):
@classmethod
def get_recent_member_actions(cls, member_id):
# member_actions = cls.query.limit(4).all()
member_actions = cls.query.filter_by(member_id=member_id).limit(4).all()
member_actions = cls.query.filter_by(member_id=member_id).order_by(cls.id.desc()).limit(4).all()
if not member_actions:
raise ValueError(f"No Member Actions")