Refactor qry_sum methods to extend columns before querying and improve readability

1 parent 094125ab
......@@ -82,10 +82,12 @@ class PaymentPBB(PCBase, DefaultModel):
@classmethod
def qry_sum(cls, columns=[]):
qry = PCDBSession.query(
columns.extend(
func.sum(cls.jml_sppt_yg_dibayar).label('bayar'),
func.sum(cls.denda_sppt).label('denda'),
func.count(cls.id).label('trx')).select_from(cls)
func.count(cls.id).label('trx')
)
qry = PCDBSession.query().select_from(cls)
for col in columns:
qry=qry.add_columns(col)
return qry
......@@ -123,10 +125,13 @@ class PaymentBPHTB(PCBase, models.CommonModel):
@classmethod
def qry_sum(cls, columns=[]):
qry = PCDBSession.query(
columns.extend([
func.sum(cls.nilai_bphtb).label('bayar'),
literal_column("0").label('denda'),
func.count(cls.id).label('trx')).select_from(cls)
func.count(cls.id).label('trx')]
)
qry = PCDBSession.query().select_from(cls)
for col in columns:
qry = qry.add_columns(col)
return qry
......@@ -178,10 +183,10 @@ class PaymentPAD(PCBase, models.CommonModel):
@classmethod
def qry_sum(cls, columns=[]):
qry = PCDBSession.query(
func.sum(cls.jml_bayar).label('bayar'),
func.sum(cls.denda+cls.bunga).label('denda'),
func.count(cls.id).label('trx')).select_from(cls)
columns.extend([func.sum(cls.jml_bayar).label('bayar'),
func.sum(cls.denda+cls.bunga).label('denda'),
func.count(cls.id).label('trx')])
qry = PCDBSession.query().select_from(cls)
for col in columns:
qry = qry.add_columns(col)
return qry
......@@ -219,10 +224,12 @@ class PaymentWEBR(PCBase, models.CommonModel):
@classmethod
def qry_sum(cls, columns=[]):
qry = PCDBSession.query(
columns.extend([
func.sum(cls.jml_bayar).label('bayar'),
func.sum(cls.denda).label('denda'),
func.count(cls.id).label('trx')).select_from(cls)
func.count(cls.id).label('trx')
])
qry = PCDBSession.query().select_from(cls)
for col in columns:
qry = qry.add_columns(col)
return qry
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!