diff --git a/handlers/dev/masterkelainan.handlers.go b/handlers/dev/masterkelainan.handlers.go index 5728ece..c174ad2 100644 --- a/handlers/dev/masterkelainan.handlers.go +++ b/handlers/dev/masterkelainan.handlers.go @@ -27,6 +27,7 @@ type MasterKelainanService interface { AddKelainan(name string) (models.Kelainan, error) EditKelainan(id string, name string) (models.Kelainan, error) DeleteKelainan(id string) (models.Kelainan, error) + GetListMasterKelainanDetail(id string, searchdetail string, currentPage int, rowPerPage int) ([]models.KelainanDetail, int, error) } func NewMasterKelainanHandler(us MasterKelainanService) *MasterKelainanHandler { @@ -49,6 +50,12 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error logger, _ := zap.NewProduction() //get sidebarmenu + id := c.QueryParam("id") + tableDetailID := utils.GenerateRandomID("tablebodydetail") + paginationDetailID := utils.GenerateRandomID("paginationdetailid") + searchDetailID := utils.GenerateRandomID("searchdetailid") + + // println("cek id param", id) dataMenu, err := globalservices.GetMenu() fmt.Println(dataMenu) @@ -82,6 +89,20 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error zap.Any("data", dataKelainan), ) + dataKelainanDetail, totalPageDetail, err := lh.MasterKelainanService.GetListMasterKelainanDetail(id, "", 1, 5) + if err != nil { + defer logger.Sync() + logger.Info("ERROR GET KELAINAN DETAIL", + zap.Any("error", err), + ) + return err + } + + defer logger.Sync() + logger.Info("LOAD KELAINAN DETAIL", + zap.Any("data detail", dataKelainanDetail), + ) + tableID := utils.GenerateRandomID("tablebody") paginationID := utils.GenerateRandomID("paginationid") searchID := utils.GenerateRandomID("searchid") @@ -92,7 +113,7 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error dialogDeleteID := utils.GenerateRandomID("dialogDeleteID") dialogDeleteBodyID := utils.GenerateRandomID("dialogDeletebodyID") - title := "Master Kelainan" + title := "Master Pola Kelainan" dataBreadCrumb, err := lh.MasterKelainanService.GetListBreadCrumb(title) fmt.Println(dataBreadCrumb) @@ -165,12 +186,13 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error "/dev/kelainan/openedit", "#"+dialogEditBodyID, "outerHTML", - "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID, #tableDetailID", "/dev/kelainan/opendelete", "#"+dialogDeleteBodyID, "outerHTML", - "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID, #tableDetailID", "/dev/kelainan/selected", + "#"+tableDetailID, ) // filter kelainan component @@ -188,7 +210,7 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error 1, "/dev/kelainanpagination", paginationID, - "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID, #tableDetailID", "#"+paginationID, "outerHTML", "", "", ) @@ -269,6 +291,31 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error }, ) + // component listing table listing kelainan detail + contentKelainanDetailCmp := masterkelainan.TableKelainanDetail( + dataKelainanDetail, tableDetailID, + ) + + // filter kelainan detail component + kelainanDetailFilterCmp := customtextfieldsearch.MainCustomTextFieldSearchV2(searchDetailID, + "searchdetail", + "Cari Kelainan/Klasifikasi", + "text", + "/dev/searchkelainandetail", + "input changed delay:500ms, searchdetail", + "#"+paginationDetailID, "", "", "none", "#tableDetailID, #paginationDetailID, #searchDetailID, #selectedID") + + // pagination kelainan detail component + kelainanDetailPaginationCmp := pagination.PaginationV2( + totalPageDetail, + 1, + "/dev/kelainandetailpagination", + paginationDetailID, + "#tableDetailID, #searchDetailID, #"+searchDetailID+", #paginationDetailID", + "#"+paginationDetailID, + "outerHTML", "", "", + ) + // content, css, js content := masterkelainan.ContentMasterKelainan( tableID, paginationID, searchID, dialogAddID, dialogAddBodyID, @@ -276,13 +323,19 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error dialogEditBodyID, dialogDeleteID, dialogDeleteBodyID, + tableDetailID, + paginationDetailID, + searchDetailID, breadcrumbComponent, contentKelainanComponent, kelainanFilterComponent, kelainanPaginationComponent, modaladdcomponent, modalEditFormComponent, - modalDeleteFormComponent) + modalDeleteFormComponent, + contentKelainanDetailCmp, + kelainanDetailFilterCmp, + kelainanDetailPaginationCmp) css := masterkelainan.CssKelainan() js := masterkelainan.JsMdKelainan() @@ -303,6 +356,7 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainanSearch(c echo.Context) search := c.QueryParam("search") searchID := c.QueryParam("searchID") tableID := c.QueryParam("tableID") + tableDetailID := c.QueryParam("tableDetailID") paginationID := c.QueryParam("paginationID") dialogEditBodyID := c.QueryParam("dialogEditBodyID") dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID") @@ -323,19 +377,20 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainanSearch(c echo.Context) "/dev/kelainan/openedit", "#"+dialogEditBodyID, "outerHTML", - "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID, #tableDetailID", "/dev/kelainan/opendelete", "#"+dialogDeleteBodyID, "outerHTML", - "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID, #tableDetailID", "/dev/kelainan/selected", + "#"+tableDetailID, ) kelainanPaginationComponent := pagination.PaginationV2(totalpage, 1, "/dev/kelainanpagination", paginationID, - "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID, #tableDetailID", "#"+paginationID, "outerHTML", "", "") retval := []templ.Component{contentKelainanComponent, kelainanPaginationComponent} @@ -349,6 +404,7 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainanPagination(c echo.Cont search := c.QueryParam("search") pageparam := c.QueryParam("page") tableID := c.QueryParam("tableID") + tableDetailID := c.QueryParam("tableDetailID") searchID := c.QueryParam("searchID") paginationID := c.QueryParam("paginationID") dialogEditBodyID := c.QueryParam("dialogEditBodyID") @@ -378,19 +434,20 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainanPagination(c echo.Cont "/dev/kelainan/openedit", "#"+dialogEditBodyID, "outerHTML", - "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID, #tableDetailID", "/dev/kelainan/opendelete", "#"+dialogDeleteBodyID, "outerHTML", - "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID, #tableDetailID", "/dev/kelainan/selected", + "#"+tableDetailID, ) kelainanPaginationComponent := pagination.PaginationV2(totalpage, page, "/dev/kelainanpagination", paginationID, - "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID, #tableDetailID", "#"+paginationID, "outerHTML", "", "") retval := []templ.Component{contentKelainanComponent, kelainanPaginationComponent} @@ -404,6 +461,7 @@ func (lh *MasterKelainanHandler) AddKelainan(c echo.Context) error { name := c.FormValue("kelainanname") tableID := c.FormValue("tableID") + tableDetailID := c.FormValue("tableDetailID") paginationID := c.FormValue("paginationID") searchID := c.FormValue("searchID") search := c.FormValue("search") @@ -517,12 +575,13 @@ func (lh *MasterKelainanHandler) AddKelainan(c echo.Context) error { "/dev/kelainan/openedit", "#"+dialogEditBodyID, "outerHTML", - "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID, #tableDetailID", "/dev/kelainan/opendelete", "#"+dialogDeleteBodyID, "outerHTML", - "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID, #tableDetailID", "/dev/kelainan/selected", + "#"+tableDetailID, ) // New pagination @@ -530,7 +589,7 @@ func (lh *MasterKelainanHandler) AddKelainan(c echo.Context) error { currPage, "/dev/kelainanpagination", paginationID, - "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID, #tableDetailID", "#"+paginationID, "outerHTML", "", "true") toastSuccess := customtoastv2.CustomToastV2Show("Success", "Success add kelainan "+name, "success") @@ -625,6 +684,7 @@ func (lh *MasterKelainanHandler) HandleEditKelainan(c echo.Context) error { name := c.FormValue("kelainanname") id := c.FormValue("kelainanid") tableID := c.FormValue("tableID") + tableDetailID := c.FormValue("tableDetailID") paginationID := c.FormValue("paginationID") searchID := c.FormValue("searchID") search := c.FormValue("search") @@ -721,12 +781,13 @@ func (lh *MasterKelainanHandler) HandleEditKelainan(c echo.Context) error { "/dev/kelainan/openedit", "#"+dialogEditBodyID, "outerHTML", - "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID, #tableDetailID", "/dev/kelainan/opendelete", "#"+dialogDeleteBodyID, "outerHTML", - "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID, #tableDetailID", "/dev/kelainan/selected", + "#"+tableDetailID, ) // pagination component @@ -735,7 +796,7 @@ func (lh *MasterKelainanHandler) HandleEditKelainan(c echo.Context) error { currPage, "/dev/kelainanpagination", paginationID, - "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID, #tableDetailID", "#"+paginationID, "outerHTML", "", "true", ) @@ -806,6 +867,7 @@ func (lh *MasterKelainanHandler) HandleDeleteKelainan(c echo.Context) error { //prm form kelainan id := c.FormValue("kelainanid") tableID := c.FormValue("tableID") + tableDetailID := c.FormValue("tableDetailID") paginationID := c.FormValue("paginationID") searchID := c.FormValue("searchID") search := c.FormValue("search") @@ -873,12 +935,13 @@ func (lh *MasterKelainanHandler) HandleDeleteKelainan(c echo.Context) error { "/dev/kelainan/openedit", "#"+dialogEditBodyID, "outerHTML", - "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID, #tableDetailID", "/dev/kelainan/opendelete", "#"+dialogDeleteBodyID, "outerHTML", - "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID, #tableDetailID", "/dev/kelainan/selected", + "#"+tableDetailID, ) //pagination component @@ -887,7 +950,7 @@ func (lh *MasterKelainanHandler) HandleDeleteKelainan(c echo.Context) error { currPage, "/dev/kelainanpagination", paginationID, - "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID, #tableDetailID", "#"+paginationID, "outerHTML", "", "true", ) @@ -906,55 +969,145 @@ func (lh *MasterKelainanHandler) HandleDeleteKelainan(c echo.Context) error { return utils.ViewMulti(c, retVal) } -func (lh *MasterKelainanHandler) HandleSelected(c echo.Context) error { - id := c.QueryParam("id") - search := c.QueryParam("search") - searchID := c.QueryParam("searchID") - tableID := c.QueryParam("tableID") + "1ppp" - paginationID := c.QueryParam("paginationID") - dialogEditBodyID := c.QueryParam("dialogEditBodyID") - dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID") +// master kelainan detail +func (lh *MasterKelainanHandler) HandlerShowMasterKelainanDetail(c echo.Context) error { logger, _ := zap.NewProduction() + id := c.QueryParam("id") - println("id selected", id) - - dataKelainan, totalpage, err := lh.MasterKelainanService.GetListMasterKelainan(search, 1, 5) + dataKelainanDetail, totalPageDetail, err := lh.MasterKelainanService.GetListMasterKelainanDetail(id, "", 1, 5) if err != nil { defer logger.Sync() - logger.Info("ERROR GET KELAINAN", + logger.Info("ERROR GET KELAINAN DETAIL", zap.Any("error", err), ) - fmt.Println(dataKelainan) return err } defer logger.Sync() - logger.Info("LOAD KELAINAN", - zap.Any("data", dataKelainan), + logger.Info("LOAD KELAINAN DETAIL", + zap.Any("data detail", dataKelainanDetail), ) - contentKelainanComponent := masterkelainan.TableKelainan( - dataKelainan, - tableID, - "/dev/kelainan/openedit", - "#"+dialogEditBodyID, - "outerHTML", - "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", - "/dev/kelainan/opendelete", - "#"+dialogDeleteBodyID, - "outerHTML", - "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", - "/dev/kelainan/selected", + tableDetailID := c.QueryParam("tableDetailID") + paginationDetailID := c.QueryParam("paginationDetailID") + searchDetailID := c.QueryParam("searchDetailID") + + logger.Info("tabel paginationDetailID", + zap.Any("tabel paginationDetailID", paginationDetailID)) + + // component selected id + selectid := masterkelainan.CustomTextFieldSelected( + models.CustomTextFieldSelected{ + Name: "selectedID", + Type: "hidden", + Value: id, + ID: "selectedID", + }, ) - kelainanPaginationComponent := pagination.PaginationV2(totalpage, + // component listing table listing kelainan detail + contentKelainanDetailCmp := masterkelainan.TableKelainanDetail( + dataKelainanDetail, tableDetailID, + ) + + // pagination kelainan detail component + kelainanDetailPaginationCmp := pagination.PaginationV2( + totalPageDetail, 1, - "/dev/kelainanpagination", - paginationID, - "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", - "#"+paginationID, "outerHTML", "", "") + "/dev/kelainandetailpagination", + paginationDetailID, + "#selectedID, #tableDetailID, #searchDetailID, #"+searchDetailID+", #paginationDetailID", + "#"+paginationDetailID, + "outerHTML", "", "true", + ) - retval := []templ.Component{contentKelainanComponent, kelainanPaginationComponent} + return utils.ViewMulti(c, []templ.Component{selectid, contentKelainanDetailCmp, kelainanDetailPaginationCmp}) +} + +func (lh *MasterKelainanHandler) HandlerShowMdKelainanDetailSearch(c echo.Context) error { + logger, _ := zap.NewProduction() + + selectedID := c.QueryParam("selectedID") + searchdetail := c.QueryParam("searchdetail") + searchDetailID := c.QueryParam("searchDetailID") + tableDetailID := c.QueryParam("tableDetailID") + paginationDetailID := c.QueryParam("paginationDetailID") + + dataKelainanDetail, totalpagedetail, err := lh.MasterKelainanService.GetListMasterKelainanDetail(selectedID, searchdetail, 1, 5) + if err != nil { + defer logger.Sync() + logger.Info("ERROR GET KELAINAN DETAIL", + zap.Any("error", err), + ) + return err + } + + logger.Info("dataKelainanDetail", + zap.Any("cek id", selectedID), + zap.Any("dataKelainanDetail", dataKelainanDetail)) + + contentKelainanDetailCmp := masterkelainan.TableKelainanDetail( + dataKelainanDetail, + tableDetailID, + ) + + kelainanDetailPaginationCmp := pagination.PaginationV2( + totalpagedetail, + 1, + "/dev/kelainandetailpagination", + paginationDetailID, + "#selectedID, #tableDetailID, #searchDetailID, #"+searchDetailID+", #paginationDetailID", + "#"+paginationDetailID, "outerHTML", "", "true", + ) + + retVal := []templ.Component{contentKelainanDetailCmp, kelainanDetailPaginationCmp} + + return utils.ViewMulti(c, retVal) +} + +func (lh *MasterKelainanHandler) HandlerShowMdKelainanDetailPagination(c echo.Context) error { + logger, _ := zap.NewProduction() + + selectedID := c.QueryParam("selectedID") + searchdetail := c.QueryParam("searchdetail") + pageparamdetail := c.QueryParam("page") + searchDetailID := c.QueryParam("searchDetailID") + tableDetailID := c.QueryParam("tableDetailID") + paginationDetailID := c.QueryParam("paginationDetailID") + + page, err := strconv.Atoi(pageparamdetail) + if err != nil { + defer logger.Sync() + logger.Info("ERROR CONVERT PAGE PARAM DETAIL", + zap.Any("page", page), + zap.Any("error", err), + ) + return err + } + + dataKelainanDetail, totalpgaedetail, err := lh.MasterKelainanService.GetListMasterKelainanDetail(selectedID, searchdetail, page, 5) + if err != nil { + defer logger.Sync() + logger.Info("ERROR GET KELAINAN DETAIL", + zap.Any("error", err), + ) + return err + } + + contentKelainanDetailCmp := masterkelainan.TableKelainanDetail( + dataKelainanDetail, + tableDetailID, + ) + + kelainanPaginationCmp := pagination.PaginationV2(totalpgaedetail, + page, + "/dev/kelainandetailpagination", + paginationDetailID, + "#selectedID, #tableDetailID, #searchDetailID, #"+searchDetailID+", #paginationDetailID", + "#"+paginationDetailID, "outerHTML", "", "", + ) + + retval := []templ.Component{contentKelainanDetailCmp, kelainanPaginationCmp} return utils.ViewMulti(c, retval) } diff --git a/handlers/routes.go b/handlers/routes.go index 93f1dda..27d89e5 100644 --- a/handlers/routes.go +++ b/handlers/routes.go @@ -226,5 +226,7 @@ func SetupRoutesDev(app *echo.Echo, appStore db.AppStore) { dev.GET("/kelainan/opendelete", devKLhandlers.HandleOpenDeleteForm) dev.POST("/kelainan/closedeleteform", devKLhandlers.HandleCloseFormDelete) dev.POST("/kelainan/delete", devKLhandlers.HandleDeleteKelainan) - dev.GET("/kelainan/selected", devKLhandlers.HandleSelected) + dev.GET("/kelainan/selected", devKLhandlers.HandlerShowMasterKelainanDetail) + dev.GET("/searchkelainandetail", devKLhandlers.HandlerShowMdKelainanDetailSearch) + dev.GET("/kelainandetailpagination", devKLhandlers.HandlerShowMdKelainanDetailPagination) } diff --git a/models/kelainan.models.go b/models/kelainan.models.go index cb89e55..b9b2b71 100644 --- a/models/kelainan.models.go +++ b/models/kelainan.models.go @@ -31,3 +31,31 @@ type KelainanFormComponent struct { DialogAction templ.Component ButtonCLose templ.Component } + +type KelainanDetail struct { + Nomor string `db:"nomor"` + Mcu_KelainanID int `db:"Mcu_KelainanID"` + Mcu_KelainanName string `db:"Mcu_KelainanName"` + Mcu_KelainanClasification string `db:"Mcu_KelainanClasification"` + Mcu_KelainanMcu_KelainanGroupID string `db:"Mcu_KelainanMcu_KelainanGroupID"` + Mcu_KelainanFlagActive string `db:"Mcu_KelainanFlagActive"` + Mcu_KelainanIsActive string `db:"Mcu_KelainanIsActive"` + Mcu_KelainanUserID string `db:"Mcu_KelainanUserID"` + Mcu_KelainanCreated string `db:"Mcu_KelainanCreated"` + Mcu_KelainanCreatedUserID string `db:"Mcu_KelainanCreatedUserID"` + Mcu_KelainanLastUpdated string `db:"Mcu_KelainanLastUpdated"` + Mcu_KelainanLastUpdatedUserID string `db:"Mcu_KelainanLastUpdatedUserID"` + Mcu_KelainanDeleted string `db:"Mcu_KelainanDeleted"` + Mcu_KelainanDeletedUserID string `db:"Mcu_KelainanDeletedUserID"` +} + +type CustomTextFieldSelected struct { + SwapOob string `default:"swapOob"` + Label string `default:"Label"` + Name string `default:"name"` + Placeholder string `default:"Placeholder"` + Type string `default:"text"` + Value string `default:""` + ErrorMsg string `default:""` + ID string +} diff --git a/services/dev/masterkelainan.services.go b/services/dev/masterkelainan.services.go index 945b387..90b73eb 100644 --- a/services/dev/masterkelainan.services.go +++ b/services/dev/masterkelainan.services.go @@ -29,7 +29,7 @@ func (su *ServicesMasterKelainan) GetListBreadCrumb(title string) (models.BreadC dummyBreadcrumb := []models.BreadCrumbV1{ { - Title: "Master Kelainan", + Title: "Master Pola Kelainan", Item: []models.ItemBreadCrumbV1{ { Item: "Dashboard", @@ -40,7 +40,7 @@ func (su *ServicesMasterKelainan) GetListBreadCrumb(title string) (models.BreadC Url: "/dev/master", }, { - Item: "Kelainan", + Item: "Pola Kelainan", Url: "", }, }, @@ -79,6 +79,7 @@ func (su *ServicesMasterKelainan) GetListBreadCrumb(title string) (models.BreadC return ret, nil } +// master group kelainan func (su *ServicesMasterKelainan) GetListMasterKelainan(search string, currentPage int, rowPerPage int) ([]models.Kelainan, int, error) { var kelainanList []models.Kelainan var totalData int @@ -269,3 +270,47 @@ func (su *ServicesMasterKelainan) DeleteKelainan(id string) (models.Kelainan, er return data, nil } + +// end master group kelainan + +// master kelainan detail +func (su *ServicesMasterKelainan) GetListMasterKelainanDetail(id string, searchdetail string, currentPage int, rowPerPage int) ([]models.KelainanDetail, int, error) { + var KelainanDetailList []models.KelainanDetail + var totalData int + offset := (currentPage - 1) * rowPerPage + prm := "%" + strings.TrimSpace(searchdetail) + "%" + + querytotal := `SELECT COUNT(*) + FROM mcu_kelainan + WHERE Mcu_KelainanIsActive = 'Y' + AND Mcu_KelainanMcu_KelainanGroupID = ? + AND (Mcu_KelainanName LIKE ? OR Mcu_KelainanClasification LIKE ?)` + + if err := dbx.Handlex.Get(&totalData, querytotal, id, prm, prm); err != nil { + return nil, 0, fmt.Errorf("error query database: %v", err) + } + + query := `SELECT + ROW_NUMBER() OVER (ORDER BY Mcu_KelainanID DESC) AS nomor, + Mcu_KelainanID, + Mcu_KelainanName, + Mcu_KelainanClasification, + Mcu_KelainanMcu_KelainanGroupID, + Mcu_KelainanFlagActive, + Mcu_KelainanUserID, + Mcu_KelainanCreated, + Mcu_KelainanLastUpdated + FROM mcu_kelainan + WHERE Mcu_KelainanIsActive = 'Y' + AND Mcu_KelainanMcu_KelainanGroupID = ? + AND (Mcu_KelainanName LIKE ? OR Mcu_KelainanClasification LIKE ?) + ORDER BY Mcu_KelainanID DESC + LIMIT ? OFFSET ?` + + if err := dbx.Handlex.Select(&KelainanDetailList, query, id, prm, prm, rowPerPage, offset); err != nil { + return nil, 0, fmt.Errorf("error query database: %v", err) + } + totalPage := int(math.Ceil(float64(totalData) / float64(rowPerPage))) + + return KelainanDetailList, totalPage, nil +} diff --git a/views/dev/masterkelainan/custometextfieldselected.templ b/views/dev/masterkelainan/custometextfieldselected.templ new file mode 100644 index 0000000..9668eec --- /dev/null +++ b/views/dev/masterkelainan/custometextfieldselected.templ @@ -0,0 +1,32 @@ +package masterkelainan + +import "cpone/models" + +templ CustomTextFieldSelected(inp models.CustomTextFieldSelected) { +
{ v.Mcu_KelainanClasification }
+ } +") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var6 string + templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(v.Mcu_KelainanClasification) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\masterkelainan\mdkelainandetailtable.templ`, Line: 28, Col: 54} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6)) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("