fix id changes every fetch because of delete is_actual = 0

main
MrWaradana 6 days ago
parent f0abadf932
commit a9304328d4

@ -213,25 +213,31 @@ def main():
v = param_map.get(name, default) v = param_map.get(name, default)
return float(v) if v is not None else float(default) return float(v) if v is not None else float(default)
# 0-1 Generate New data Projection (is_actual=0) if not exist # 0-1 Sync Projection data (is_actual=0)
# Hapus data projection lama (is_actual = 0) # Check Total Rows
cur.execute(f"""
DELETE
FROM {table_tr_data}
WHERE is_actual = 0 {get_filter_and()}
""")
# Hitung kebutuhan jumlah baris projection baru agar total (actual + projection)
# sama dengan parameter umur_teknis
cur.execute(f""" cur.execute(f"""
SELECT COALESCE(COUNT(*), 0) SELECT COALESCE(COUNT(*), 0)
FROM {table_tr_data} FROM {table_tr_data}
WHERE is_actual = 1 {get_filter_and()} {get_filter_where()}
""") """)
count_actual = cur.fetchone()[0] if cur.rowcount != -1 else 0 count_total = cur.fetchone()[0] if cur.rowcount != -1 else 0
umur_teknis = int(get_param("umur_teknis")) umur_teknis = int(get_param("umur_teknis"))
proj_needed = max(0, umur_teknis - int(count_actual)) proj_needed = umur_teknis - int(count_total)
if proj_needed < 0:
excess = abs(proj_needed)
delete_sql = f"""
DELETE FROM {table_tr_data}
WHERE id IN (
SELECT id FROM {table_tr_data}
WHERE is_actual = 0 {get_filter_and()}
ORDER BY seq DESC
LIMIT {excess}
)
"""
cur.execute(delete_sql)
proj_needed = 0
# Ambil seq dan tahun terakhir sebagai titik awal penomoran berikutnya # Ambil seq dan tahun terakhir sebagai titik awal penomoran berikutnya
cur.execute(f"SELECT COALESCE(MAX(seq), 0) FROM {table_tr_data} {get_filter_where()}") cur.execute(f"SELECT COALESCE(MAX(seq), 0) FROM {table_tr_data} {get_filter_where()}")

@ -76,20 +76,3 @@ class PlantTransactionData(Base, DefaultMixin, IdentityMixin):
chart_capex_biaya_investasi_tambahan = Column(Float, nullable=True) chart_capex_biaya_investasi_tambahan = Column(Float, nullable=True)
chart_capex_acquisition_cost = Column(Float, nullable=True) chart_capex_acquisition_cost = Column(Float, nullable=True)
chart_capex_annualized = Column(Float, nullable=True) chart_capex_annualized = Column(Float, nullable=True)
# fs_chart_total_revenue = Column(Float, nullable=True)
# fs_chart_revenue_a = Column(Float, nullable=True)
# fs_chart_revenue_b = Column(Float, nullable=True)
# fs_chart_revenue_c = Column(Float, nullable=True)
# fs_chart_revenue_d = Column(Float, nullable=True)
# fs_chart_revenue_annualized = Column(Float, nullable=True)
# fs_chart_fuel_cost_component_c = Column(Float, nullable=True)
# fs_chart_fuel_cost = Column(Float, nullable=True)
# fs_chart_fuel_cost_annualized = Column(Float, nullable=True)
# fs_chart_oem_component_bd = Column(Float, nullable=True)
# fs_chart_oem_bd_cost = Column(Float, nullable=True)
# fs_chart_oem_periodic_maintenance_cost = Column(Float, nullable=True)
# fs_chart_oem_annualized = Column(Float, nullable=True)
# fs_chart_capex_component_a = Column(Float, nullable=True)
# fs_chart_capex_biaya_investasi_tambahan = Column(Float, nullable=True)
# fs_chart_capex_acquisition_cost = Column(Float, nullable=True)
# fs_chart_capex_annualized = Column(Float, nullable=True)

@ -171,6 +171,9 @@ async def update_transaction_data(
db_session=db_session, transaction_data_id=transaction_data_id db_session=db_session, transaction_data_id=transaction_data_id
) )
print(transaction_data)
print(transaction_data_id)
if not transaction_data: if not transaction_data:
raise HTTPException( raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND, status_code=status.HTTP_404_NOT_FOUND,

Loading…
Cancel
Save