add pic tab daftar peserta + pagination

This commit is contained in:
2024-06-14 16:51:16 +07:00
parent b279a942dd
commit 3bc13d64bc
9 changed files with 433 additions and 73 deletions

View File

@@ -1,6 +1,14 @@
package mcu_corporate_services
import "cpone/db"
import (
"cpone/db"
"cpone/models"
dbx "cpone/package/database"
"fmt"
"math"
"go.uber.org/zap"
)
type TabDaftarPesertaServices struct {
TabDaftarPesertaStore db.AppStore
@@ -11,3 +19,56 @@ func NewTabDaftarPesertaServices(uStore db.AppStore) *TabDaftarPesertaServices {
TabDaftarPesertaStore: uStore,
}
}
func (tdps *TabDaftarPesertaServices) GetListMcuDaftarPeserta(id string, currentpage int, rowperpage int) ([]models.ModelMcuDaftarPeserta, int, error) {
logger, _ := zap.NewProduction()
var listDaftarPeserta []models.ModelMcuDaftarPeserta
var totalData int
offset := (currentpage - 1) * rowperpage
querytotal := `SELECT COUNT(*)
FROM t_orderheader
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
AND M_PatientIsActive = 'Y'
WHERE T_OrderHeaderIsActive = 'Y' AND T_OrderHeaderMgm_McuID = ?`
if err := dbx.Handlex.Get(&totalData, querytotal, id); err != nil {
return nil, 0, fmt.Errorf("error querying database: %v", err)
}
query := `SELECT T_OrderHeaderID,
T_OrderHeaderDate,
T_OrderHeaderLabNumber,
T_OrderHeaderM_PatientAge,
M_PatientID,
M_PatientNoReg,
M_PatientName,
M_PatientGender,
CASE
WHEN M_PatientGender = 'male' THEN 'Laki - Laki'
WHEN M_PatientGender = 'female' THEN 'Perempuan'
ELSE ' '
END AS jenisKelamin,
M_PatientDOB,
FLOOR(DATEDIFF(CURDATE(), M_PatientDOB)/ 365.25) AS age
FROM t_orderheader
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
AND M_PatientIsActive = 'Y'
WHERE T_OrderHeaderIsActive = 'Y' AND T_OrderHeaderMgm_McuID = ?
ORDER BY M_PatientName ASC
LIMIT ? OFFSET ?`
if err := dbx.Handlex.Select(&listDaftarPeserta, query, id, rowperpage, offset); err != nil {
return nil, 0, fmt.Errorf("error querying database: %v", err)
}
totalPage := int(math.Ceil(float64(totalData) / float64(rowperpage)))
defer logger.Sync()
logger.Info("GET DATA PESERTA",
zap.Any("id", id),
zap.Any("total data", totalData),
zap.Any("peserta", listDaftarPeserta),
)
return listDaftarPeserta, totalPage, nil
}