reports
This commit is contained in:
@@ -4,6 +4,7 @@ from app.models.charge import Charge
|
||||
from sqlalchemy.orm import relationship
|
||||
from sqlalchemy.sql import func
|
||||
from sqlalchemy.exc import IntegrityError
|
||||
from app.utils.logger import logger
|
||||
|
||||
class Payments(db.Model):
|
||||
__tablename__ = 'payments'
|
||||
@@ -68,6 +69,31 @@ class Payments(db.Model):
|
||||
return None
|
||||
return member_payments
|
||||
|
||||
@classmethod
|
||||
def get_all_payments(cls, option_name=None, member_id=None, page=1, limit=20):
|
||||
|
||||
query = cls.query
|
||||
logger.info(f"Get all payments back")
|
||||
|
||||
if member_id:
|
||||
query = query.filter(cls.member_id == member_id)
|
||||
|
||||
if option_name:
|
||||
query = query.filter(cls.option_name == option_name)
|
||||
|
||||
# Order by created_at descending (newest first)
|
||||
query = query.order_by(cls.added.desc())
|
||||
|
||||
# Get total count before pagination
|
||||
total_count = query.count()
|
||||
|
||||
# Apply pagination
|
||||
offset = (page - 1) * limit
|
||||
query = query.limit(limit).offset(offset)
|
||||
|
||||
return query.all(), total_count
|
||||
|
||||
|
||||
def to_dict(self):
|
||||
return {
|
||||
"id": self.id,
|
||||
|
||||
Reference in New Issue
Block a user