md bahan listing search pagination
This commit is contained in:
109
services/dev/md.bahan.services.go
Normal file
109
services/dev/md.bahan.services.go
Normal file
@@ -0,0 +1,109 @@
|
||||
package dev_services
|
||||
|
||||
import (
|
||||
"cpone/db"
|
||||
"cpone/models"
|
||||
dbx "cpone/package/database"
|
||||
"fmt"
|
||||
"math"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func NewMdBahanServices(uStore db.AppStore) *MdBahanServices {
|
||||
|
||||
return &MdBahanServices{
|
||||
|
||||
MdBahanStore: uStore,
|
||||
}
|
||||
}
|
||||
|
||||
type MdBahanServices struct {
|
||||
MdBahanStore db.AppStore
|
||||
}
|
||||
|
||||
func (su *MdBahanServices) GetListMdBahan(
|
||||
search string,
|
||||
stationID string,
|
||||
currentPage int,
|
||||
rowPerPage int) ([]models.Bahan, int, error) {
|
||||
var bahanList []models.Bahan
|
||||
var totalData int
|
||||
offset := (currentPage - 1) * rowPerPage
|
||||
prm := "%" + strings.TrimSpace(search) + "%"
|
||||
querytotal := `
|
||||
SELECT COUNT(*) FROM
|
||||
t_bahan
|
||||
JOIN
|
||||
t_samplestation
|
||||
ON T_BahanT_SampleStationID = T_SampleStationID
|
||||
AND T_BahanIsActive = 'Y'
|
||||
AND T_SampleStationIsActive = 'Y'
|
||||
WHERE (T_BahanName LIKE ? OR T_BahanCode LIKE ? )
|
||||
AND T_BahanT_SampleStationID = ?
|
||||
`
|
||||
if err := dbx.Handlex.Get(&totalData, querytotal, prm, prm, stationID); err != nil {
|
||||
return nil, 0, fmt.Errorf("error querying database: %v", err)
|
||||
}
|
||||
query := `
|
||||
SELECT t_bahan.*,
|
||||
T_SampleStationName,
|
||||
T_SampleStationID FROM
|
||||
t_bahan
|
||||
JOIN
|
||||
t_samplestation
|
||||
ON T_BahanT_SampleStationID = T_SampleStationID
|
||||
AND T_BahanIsActive = 'Y'
|
||||
AND T_SampleStationIsActive = 'Y'
|
||||
WHERE (T_BahanName LIKE ? OR T_BahanCode LIKE ? )
|
||||
AND T_BahanT_SampleStationID = ?
|
||||
LIMIT ? OFFSET ?
|
||||
`
|
||||
|
||||
if err := dbx.Handlex.Select(&bahanList, query, prm, prm, stationID, rowPerPage, offset); err != nil {
|
||||
return nil, 0, fmt.Errorf("error querying database: %v", err)
|
||||
}
|
||||
totalPage := int(math.Ceil(float64(totalData) / float64(rowPerPage)))
|
||||
|
||||
return bahanList, totalPage, nil
|
||||
|
||||
}
|
||||
|
||||
func (su *MdBahanServices) GetMdBahanBreadCrumb(title string) (models.BreadCrumbV1, error) {
|
||||
|
||||
ret := models.BreadCrumbV1{
|
||||
Title: "Master Bahan",
|
||||
Item: []models.ItemBreadCrumbV1{
|
||||
{
|
||||
Item: "Dashboard",
|
||||
Url: "/dev/dashboard",
|
||||
},
|
||||
{
|
||||
Item: "Master",
|
||||
Url: "/dev/master",
|
||||
},
|
||||
{
|
||||
Item: "Bahan",
|
||||
Url: "",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
return ret, nil
|
||||
}
|
||||
func (su *MdBahanServices) GetListSampleStation() ([]models.TmpSampleStation, error) {
|
||||
var stationList []models.TmpSampleStation
|
||||
query := `
|
||||
SELECT
|
||||
T_SampleStationID,
|
||||
T_SampleStationName
|
||||
FROM
|
||||
t_samplestation
|
||||
WHERE T_SampleStationIsActive = 'Y'
|
||||
`
|
||||
|
||||
if err := dbx.Handlex.Select(&stationList, query); err != nil {
|
||||
return nil, fmt.Errorf("error querying database: %v", err)
|
||||
}
|
||||
|
||||
return stationList, nil
|
||||
}
|
||||
Reference in New Issue
Block a user