From 02dcb409e2af21a23b9b8051c9a9e355bf6db7fa Mon Sep 17 00:00:00 2001 From: renaldybrada Date: Tue, 3 Mar 2026 09:02:52 +0700 Subject: [PATCH] fixing nomor urut konsisten pada kondisi filter/search --- internal/domain/antrian_operasi/repository.go | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/internal/domain/antrian_operasi/repository.go b/internal/domain/antrian_operasi/repository.go index 3424c06..bed9b9a 100644 --- a/internal/domain/antrian_operasi/repository.go +++ b/internal/domain/antrian_operasi/repository.go @@ -48,7 +48,7 @@ func NewRepository(dbService database.Service) IAntrianOperasiRepository { "\"Kode_diagnosa\"", "\"Diagnosa\"", "\"Jenis_diagnosa\"", "\"FK_pasien_operasi_diagnosa_pasien_operasi_ID\"", "FK_pasien_operasi_diagnosa_pasien_operasi_ID", "\"Kode_tindakan\"", "\"Tindakan\"", "\"Tindakan_tambahan\"", "\"FK_pasien_operasi_tindakan_pasien_operasi_ID\"", "FK_pasien_operasi_tindakan_pasien_operasi_ID", "\"data_pasien_operasi_id\"", "\"data_pegawai_id\"", "data_pasien_operasi_id", - "no_urut_spesialis", "no_urut_sub_spesialis", "no_ktp", "no_rekam_medis", "nama_pasien", "status_operasi", + "no_urut_spesialis", "no_urut_sub_spesialis", "no_ktp", "no_rekam_medis", "nama_pasien", "status_operasi", "id_kategori", "id_spesialis", "id_subspesialis", }). SetAllowedTables([]string{TBL_NAME, TBL_DIAGNOSA_OPERASI}) queryBuilder.SetSecurityOptions(false, 100) @@ -970,6 +970,9 @@ func (r antrianOperasiRepo) fixingListAntrian(c context.Context, dbconn *sqlx.DB Query: queryUtils.DynamicQuery{ Fields: []queryUtils.SelectField{ {Expression: "dpo.id", Alias: "id"}, + {Expression: "dko.id", Alias: "id_kategori"}, + {Expression: "ds.id", Alias: "id_spesialis"}, + {Expression: "dss.id", Alias: "id_subspesialis"}, {Expression: "dpo.Tanggal_daftar", Alias: "tanggal_daftar"}, {Expression: "dpo.No_KTP", Alias: "no_ktp"}, {Expression: "dpo.No_rekam_medis", Alias: "no_rekam_medis"}, @@ -1064,22 +1067,26 @@ func (r antrianOperasiRepo) fixingListAntrian(c context.Context, dbconn *sqlx.DB } typeIdColumn := "" + typeIdColumnAlias := "" // selecting windows functions by type switch q.Type { case "kategori": - typeIdColumn = "dko.id" + typeIdColumn = "dpo.Kategori_operasi" + typeIdColumnAlias = "id_kategori" query.CTEs[0].Query.WindowFunctions = append(query.CTEs[0].Query.WindowFunctions, wfKategori, wfSpesialis, wfSubSpesialis) query.Fields = append(query.Fields, queryUtils.SelectField{Expression: "no_urut_kategori"}) query.Sort = append(query.Sort, queryUtils.SortField{Column: "no_urut_kategori", Order: "ASC"}) case "spesialis": - typeIdColumn = "ds.id" + typeIdColumn = "dpo.Spesialis" + typeIdColumnAlias = "id_spesialis" query.CTEs[0].Query.WindowFunctions = append(query.CTEs[0].Query.WindowFunctions, wfSpesialis, wfSubSpesialis) query.Fields = append(query.Fields, queryUtils.SelectField{Expression: "no_urut_spesialis"}) query.Sort = append(query.Sort, queryUtils.SortField{Column: "no_urut_spesialis", Order: "ASC"}) case "sub-spesialis": - typeIdColumn = "dss.id" + typeIdColumn = "dpo.Sub_spesialis" + typeIdColumnAlias = "id_subspesialis" query.CTEs[0].Query.WindowFunctions = append(query.CTEs[0].Query.WindowFunctions, wfSubSpesialis) query.Fields = append(query.Fields, queryUtils.SelectField{Expression: "no_urut_sub_spesialis"}) query.Sort = append(query.Sort, queryUtils.SortField{Column: "no_urut_sub_spesialis", Order: "ASC"}) @@ -1100,7 +1107,7 @@ func (r antrianOperasiRepo) fixingListAntrian(c context.Context, dbconn *sqlx.DB var selectFilterCount []queryUtils.DynamicFilter if q.TypeID != 0 && q.Type != "all" { - selectFilter = append(selectFilter, queryUtils.DynamicFilter{Column: typeIdColumn, Operator: queryUtils.OpEqual, Value: q.TypeID}) + selectFilter = append(selectFilter, queryUtils.DynamicFilter{Column: typeIdColumnAlias, Operator: queryUtils.OpEqual, Value: q.TypeID}) selectFilterCount = append(selectFilterCount, queryUtils.DynamicFilter{Column: typeIdColumn, Operator: queryUtils.OpEqual, Value: q.TypeID}) }