listing data kelainan

This commit is contained in:
Hanan Askarim
2024-05-20 16:04:52 +07:00
parent 8a09719fe6
commit ef8a98e586
5 changed files with 329 additions and 10 deletions

View File

@@ -3,6 +3,10 @@ package dev_services
import (
"cpone/db"
"cpone/models"
dbx "cpone/package/database"
"fmt"
"math"
"strings"
)
func NewServicesMasterKelainan(uStore db.AppStore) *ServicesMasterKelainan {
@@ -71,3 +75,42 @@ func (su *ServicesMasterKelainan) GetListBreadCrumb(title string) (models.BreadC
return ret, nil
}
func (su *ServicesMasterKelainan) GetListMasterKelainan(search string, currentPage int, rowPerPage int) ([]models.Kelainan, int, error) {
var kelainanList []models.Kelainan
var totalData int
offset := (currentPage - 1) * rowPerPage
prm := "%" + strings.TrimSpace(search) + "%"
querytotal := `
SELECT COUNT(*)
FROM mcu_kelainangroup
WHERE Mcu_KelainanGroupIsActive = 'Y'
AND (Mcu_KelainanGroupName LIKE ?)
`
if err := dbx.Handlex.Get(&totalData, querytotal, prm); err != nil {
return nil, 0, fmt.Errorf("error query database: %v", err)
}
query := `
SELECT
ROW_NUMBER() OVER () AS nomor,
Mcu_KelainanGroupID,
Mcu_KelainanGroupName,
Mcu_KelainanGroupIsActive,
Mcu_KelainanGroupCreated,
Mcu_KelainanGroupLastUpdated
FROM mcu_kelainangroup
WHERE Mcu_KelainanGroupIsActive = 'Y'
AND (Mcu_KelainanGroupName LIKE ?)
order by Mcu_KelainanGroupID ASC
LIMIT ? OFFSET ?
`
if err := dbx.Handlex.Select(&kelainanList, query, prm, rowPerPage, offset); err != nil {
return nil, 0, fmt.Errorf("error query database: %v", err)
}
totalPage := int(math.Ceil(float64(totalData) / float64(rowPerPage)))
return kelainanList, totalPage, nil
}