diff --git a/handlers/dev/groupresult.handlers.go b/handlers/dev/groupresult.handlers.go index b1602a2..e3d26b5 100644 --- a/handlers/dev/groupresult.handlers.go +++ b/handlers/dev/groupresult.handlers.go @@ -11,6 +11,7 @@ import ( globalservices "cpone/services" "cpone/utils" groupresult "cpone/views/dev/groupresult" + mastermenuusergroup "cpone/views/dev/mastermenuusergroup" "fmt" "strconv" "strings" @@ -21,14 +22,10 @@ import ( ) type GroupResultService interface { - // GetUserGroup() ([]models.UserGroup, error) GetGroupResultByIDV1(id string) (models.GroupResult, error) - // try - // GetListMasterUserGroup() ([]models.UserGroupV1, error) GetListBreadCrumb(title string) (models.BreadCrumbV1, error) - // AddUserGroup(code string, name string) (models.UserGroupV1, error) EditGroupResult(id string, groupresultname string, groupresultflagpertest string, groupresultflagnonlab string, groupresultresumemcu string) (models.GroupResult, error) - // DeleteUserGroup(id string) (models.UserGroupV1, error) + DeleteGroupResult(id string) (models.GroupResult, error) GetListGroupResult(search string, currentPage int, rowPerPage int) ([]models.GroupResult, int, error) GetGroupResultResumeMcu() ([]models.GroupResultResumeMcu, error) AddGroupResult(groupresultname string, groupresultflagpertest string, groupresultflagnonlab string, groupresultresumemcu string) (models.GroupResult, error) @@ -83,7 +80,7 @@ func (lh *GroupResultHandler) HandlerShowGroupResultPaginationV1(c echo.Context) "#"+dialogEditBodyID, "outerHTML", "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", - "/dev/usergroupshowdeleteform", + "/dev/groupresultshowdeleteform", "#"+dialogDeleteBodyID, "outerHTML", "#dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #dialogEditID") @@ -406,7 +403,26 @@ func (lh *GroupResultHandler) HandlerShowGroupResultV1(c echo.Context) error { }) //Component modal delete usergroup - modalDeletecomponent := groupresult.EmptyDiv1() + // modalDeletecomponent := groupresult.EmptyDiv1() + //Component modal delete usergroup + modalDeletecomponent := groupresult.GroupResultForm(models.GroupResultFormComponent{ + IDComponent: "formgroupresultdelete", + Link: "/dev/groupresult/delete", + HxTarget: "#" + dialogdeleteBodyID, + HxSwap: "outerHTML", + HxInclude: "#tableID, #paginationID, #searchID,#dialogDeleteBodyID, #dialogDeleteID, #" + searchID + ", #currpage" + paginationID, + ModalID: dialogdeleteID, + ModalTitle: "Delete-User Group", + DialogBody: groupresult.DeleteConfirmationBody( + models.CustomTextFieldv2Prm{Type: "hidden", Value: "0", Name: "groupresultid"}, + dialogdeleteBodyID, "Apakah anda yakin menghapus user group berikut ?", + []string{"GROUP RESULT NAME", "RESULT FLAG PER TEST", "RESULT FLAG NON LAB", "RESULT RESUME MCU"}, + []string{"", "", "", ""}, + groupresult.HandleJSModalAddGR(""), + ), + DialogAction: groupresult.DialogNewActionV1("/dev/usergrouphandlecloseformdelete", "#"+dialogdeleteBodyID, "outerHTML", "#"+dialogdeleteID), + ButtonCLose: groupresult.BtnCloseNewV1("/dev/usergrouphandlecloseformdelete", "#"+dialogdeleteBodyID, "outerHTML", "#"+dialogdeleteID), + }) //table listing user group component contentUserGroupComponent := groupresult.TableGroupResult( @@ -415,7 +431,7 @@ func (lh *GroupResultHandler) HandlerShowGroupResultV1(c echo.Context) error { "#"+dialogEditBodyID, "outerHTML", "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", - "/dev/usergroupshowdeleteform", + "/dev/groupresultshowdeleteform", "#"+dialogdeleteBodyID, "outerHTML", "#dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #dialogEditID") @@ -754,7 +770,7 @@ func (lh *GroupResultHandler) AddGroupResult(c echo.Context) error { "#"+dialogEditBodyID, "outerHTML", "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", - "/dev/usergroupshowdeleteform", + "/dev/groupresultshowdeleteform", "#"+dialogDeleteBodyID, "outerHTML", "#dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #dialogEditID") @@ -804,7 +820,7 @@ func (lh *GroupResultHandler) HandlerShowGroupResultSearchV1(c echo.Context) err "#"+dialogEditBodyID, "outerHTML", "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", - "/dev/usergroupshowdeleteform", + "/dev/groupresultshowdeleteform", "#"+dialogDeleteBodyID, "outerHTML", "#dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #dialogEditID") @@ -1207,7 +1223,7 @@ func (lh *GroupResultHandler) EditGroupResult(c echo.Context) error { "#"+dialogEditBodyID, "outerHTML", "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", - "/dev/usergroupshowdeleteform", + "/dev/groupresultshowdeleteform", "#"+dialogDeleteBodyID, "outerHTML", "#dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #dialogEditID") @@ -1224,3 +1240,135 @@ func (lh *GroupResultHandler) EditGroupResult(c echo.Context) error { // time.Sleep(20 * time.Second) return utils.ViewMulti(c, retval) } + +// FORM DELETE SHOW +func (lh *GroupResultHandler) HandleDeleteForm(c echo.Context) error { + id := c.QueryParam("id") + dialogDeleteID := c.QueryParam("dialogDeleteID") + dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID") + dataGroupList, err := lh.GroupResultService.GetGroupResultByIDV1(id) + if err != nil { + // test := mastermenuusergrouptryandy.DialogNewBody(code, name, "", "Name cannot empty") + test := groupresult.DeleteConfirmationBody( + models.CustomTextFieldv2Prm{Type: "hidden", Value: "0", Name: "groupresultid"}, + dialogDeleteBodyID, "Apakah anda yakin menghapus user group berikut ?", + []string{"GROUP RESULT NAME", "RESULT FLAG PER TEST", "RESULT FLAG NON LAB", "RESULT RESUME MCU"}, + []string{"", "", "", ""}, + groupresult.HandleJSModalAddGR(""), + ) + coba := utils.ViewMulti(c, []templ.Component{ + customtoastv2.CustomToastV2Show("Error", err.Error(), "danger"), + test}) + return coba + + } + + form := groupresult.DeleteConfirmationBody( + models.CustomTextFieldv2Prm{Type: "hidden", Value: strconv.Itoa(dataGroupList.Group_ResultID), Name: "groupresultid"}, + dialogDeleteBodyID, "Apakah anda yakin menghapus user group berikut ?", + []string{"GROUP RESULT NAME", "RESULT FLAG PER TEST", "RESULT FLAG NON LAB", "RESULT RESUME MCU"}, + []string{dataGroupList.Group_ResultName, dataGroupList.Group_ResultFlagPerTest, dataGroupList.Group_ResultFlagNonLab, dataGroupList.Group_ResultResumeMcu}, + groupresult.HandleJSModalAddGRShow("#"+dialogDeleteID), + ) + coba := utils.ViewMulti(c, []templ.Component{form}) + return coba +} + +// CLOSE FORM DELETE +func (lh *GroupResultHandler) HandleCloseFormDelete(c echo.Context) error { + dialogDeleteID := c.FormValue("dialogDeleteID") + dialogDeleteBodyID := c.FormValue("dialogDeleteBodyID") + form := groupresult.DeleteConfirmationBody( + models.CustomTextFieldv2Prm{Type: "hidden", Value: "0", Name: "groupresultid"}, + dialogDeleteBodyID, "Apakah anda yakin menghapus user group berikut ?", + []string{"GROUP RESULT NAME", "RESULT FLAG PER TEST", "RESULT FLAG NON LAB", "RESULT RESUME MCU"}, + []string{"", "", "", ""}, + groupresult.HandleJSModalAddGR("#"+dialogDeleteID)) + return utils.View(c, form) +} + +// PROSES DELETE +func (lh *GroupResultHandler) DeleteGroupResult(c echo.Context) error { + + logger, _ := zap.NewProduction() + defer logger.Sync() + + id := c.FormValue("groupresultid") + tableID := c.FormValue("tableID") + paginationID := c.FormValue("paginationID") + searchID := c.FormValue("searchID") + search := c.FormValue("search") + currPagePrm := c.FormValue("currpage" + paginationID) + dialogDeleteID := c.FormValue("dialogDeleteID") + dialogDeleteBodyID := c.FormValue("dialogDeleteBodyID") + // dialogEditID := c.FormValue("dialogEditID") + dialogEditBodyID := c.FormValue("dialogEditBodyID") + + currPage, err := strconv.Atoi(currPagePrm) + + if err != nil { + return err + } + + dataGrupResult, err := lh.GroupResultService.DeleteGroupResult(id) + + if err != nil { + logger.Info("Error", + zap.Any("Error", err), + zap.Any("prm", id), + ) + return err + } + logger.Info("DELETE USER GROUP handler", + zap.Any("return", dataGrupResult), + zap.Any("prm", id), + ) + dataGroupList, totalpage, err := lh.GroupResultService.GetListGroupResult(search, currPage, 5) + if err != nil { + defer logger.Sync() + logger.Info("ERROR GET USER GROUP", + zap.Any("error", err), + ) + return err + } + newForm := mastermenuusergroup.DeleteConfirmationBody( + models.CustomTextFieldv2Prm{Type: "hidden", Value: "0", Name: "usergroupid"}, + dialogDeleteBodyID, "Apakah anda yakin menghapus user group berikut ?", + []string{"Kode", "User Group"}, + []string{"", ""}, + mastermenuusergroup.HandleJSModalAddUG("#"+dialogDeleteID), + ) + if len(dataGroupList) == 0 && totalpage > 1 { + currPage = currPage - 1 + dataGroupList, _, err = lh.GroupResultService.GetListGroupResult(search, currPage, 5) + if err != nil { + defer logger.Sync() + logger.Info("ERROR GET GROUP RESULT", + zap.Any("error", err), + ) + return err + } + } + contentUserGroupComponent := groupresult.TableGroupResult( + dataGroupList, tableID, + "/dev/groupresultshoweditform", + "#"+dialogEditBodyID, + "outerHTML", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "/dev/groupresultshowdeleteform", + "#"+dialogDeleteBodyID, + "outerHTML", + "#dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #dialogEditID") + + groupResultPaginationComponent := pagination.PaginationV2(totalpage, + currPage, + "/dev/groupresultv1pagination", + paginationID, + "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "#"+paginationID, "outerHTML", "", "true") + + toastSuccess := customtoastv2.CustomToastV2Show("Success", "Success delete group result ", "success") + retval := []templ.Component{toastSuccess, contentUserGroupComponent, groupResultPaginationComponent, newForm} + // time.Sleep(20 * time.Second) + return utils.ViewMulti(c, retval) +} diff --git a/handlers/routes.go b/handlers/routes.go index b1ece5f..314b928 100644 --- a/handlers/routes.go +++ b/handlers/routes.go @@ -241,8 +241,11 @@ func SetupRoutesDev(app *echo.Echo, appStore db.AppStore) { dev.POST("/groupresulthandlecloseform", devGRhandlers.HandleCloseForm) dev.POST("/groupresulthandlecloseformedit", devGRhandlers.HandleCloseFormEdit) dev.GET("/groupresultshoweditform", devGRhandlers.HandleEditForm) + dev.GET("/groupresultshowdeleteform", devGRhandlers.HandleDeleteForm) + // dev.GET("/groupresultshowdeleteform", devGRhandlers.HandleDeleteForm) // form add dev.POST("/groupresult/add", devGRhandlers.AddGroupResult) dev.POST("/groupresult/edit", devGRhandlers.EditGroupResult) + dev.POST("/groupresult/delete", devGRhandlers.DeleteGroupResult) } diff --git a/services/dev/groupresult.services.go b/services/dev/groupresult.services.go index 9dc7fbc..51b5ae1 100644 --- a/services/dev/groupresult.services.go +++ b/services/dev/groupresult.services.go @@ -847,3 +847,32 @@ func (ug *ServicesGroupResult) EditGroupResult(id string, groupresultname string } return data, nil } + +// DELETE DATA +func (ug *ServicesGroupResult) DeleteGroupResult(id string) (models.GroupResult, error) { + logger, _ := zap.NewProduction() + var data models.GroupResult + qry := `UPDATE group_result + SET Group_ResultIsActive = 'N' + WHERE Group_ResultID = ?;` + // time.Sleep(5 * time.Second) + rst := dbx.Handlex.MustExec(qry, id) + _, err := rst.RowsAffected() + if err != nil { + defer logger.Sync() + logger.Error("Error delete group result", + zap.String("id", id), + ) + return data, fmt.Errorf("QUERY_FAILED") + } + + data, err = ug.GetGroupResultByIDV1(id) + if err != nil { + defer logger.Sync() + logger.Error("Error get group result by id", + zap.String("id", id), + ) + return data, fmt.Errorf("QUERY_FAILED") + } + return data, nil +}