diff --git a/handlers/dev/md.natunit.handlers.go b/handlers/dev/md.natunit.handlers.go index e6a245b..4df537b 100644 --- a/handlers/dev/md.natunit.handlers.go +++ b/handlers/dev/md.natunit.handlers.go @@ -26,6 +26,7 @@ type MdNatUnitServices interface { AddMdNatUnit(code string, name string) (models.NatUnit, error) GetMdNatUnitByID(id string) (models.NatUnit, error) EditMdNatUnit(id string, code string, name string) (models.NatUnit, error) + DeleteMdNatUnit(id string) (models.NatUnit, error) } func NeWMdNatUnitHandler(nu MdNatUnitServices) *MdNatUnitHandler { @@ -48,6 +49,8 @@ func (nh *MdNatUnitHandler) HandleShowMdNatUnitScreen(c echo.Context) error { dialogAddBodyID := utils.GenerateRandomID("dialogaddbodyID") dialogEditID := utils.GenerateRandomID("dialogEditID") dialogEditBodyID := utils.GenerateRandomID("dialogEditbodyID") + dialogDeleteID := utils.GenerateRandomID("dialogDeleteID") + dialogDeleteBodyID := utils.GenerateRandomID("dialogDeletebodyID") dataMenu, err := services.GetMenu() fmt.Println(dataMenu) fmt.Println(err) @@ -114,7 +117,11 @@ func (nh *MdNatUnitHandler) HandleShowMdNatUnitScreen(c echo.Context) error { "/dev/md/natunit/openedit", "#"+dialogEditBodyID, "outerHTML", - "#dialogEditBodyID, #dialogEditID", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "/dev/md/natunit/opendelete", + "#"+dialogDeleteBodyID, + "outerHTML", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", ) //filter nat unit component @@ -124,7 +131,7 @@ func (nh *MdNatUnitHandler) HandleShowMdNatUnitScreen(c echo.Context) error { "text", "/dev/md/natunit/filter", "input changed delay:500ms, search", - "#"+paginationID, "#loadingcontent", "", "outerHTML", "#tableID, #paginationID, #searchID", + "#"+paginationID, "#loadingcontent", "", "outerHTML", "#tableID, #paginationID, #searchID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", dev_mdnatunitview.BeforeRequestContent(), dev_mdnatunitview.AfterRequestContent()) @@ -134,7 +141,7 @@ func (nh *MdNatUnitHandler) HandleShowMdNatUnitScreen(c echo.Context) error { 1, "/dev/md/natunit/changepage", paginationID, - "#tableID, #searchID, #"+searchID+", #paginationID", + "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", "#"+paginationID, "outerHTML", "", "", dev_mdnatunitview.BeforeRequestContent(), @@ -181,7 +188,7 @@ func (nh *MdNatUnitHandler) HandleShowMdNatUnitScreen(c echo.Context) error { Link: "/dev/md/natunit/add", HxTarget: "#" + dialogAddBodyID, HxSwap: "outerHTML", - HxInclude: "#tableID, #paginationID, #searchID, #dialogAddBodyID, #dialogAddID, #" + searchID + ", #currpage" + paginationID, + HxInclude: "#tableID, #paginationID, #searchID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogEditBodyID, #" + searchID + ", #currpage" + paginationID, ModalID: dialogAddID, ModalTitle: "New - Unit", DialogBody: dialogAddBodyCmp, @@ -230,7 +237,7 @@ func (nh *MdNatUnitHandler) HandleShowMdNatUnitScreen(c echo.Context) error { Link: "dev/md/natunit/edit", HxTarget: "#" + dialogEditBodyID, HxSwap: "outerHTML", - HxInclude: "#tableID, #paginationID, #searchID, #dialogEditBodyID, #dialogEditID, #" + searchID + ", #currpage" + paginationID, + HxInclude: "#tableID, #paginationID, #searchID, #dialogDeleteBodyID, #dialogEditBodyID, #dialogEditID, #" + searchID + ", #currpage" + paginationID, ModalID: dialogEditID, ModalTitle: "New - Unit", DialogBody: dialogEditBodyCmp, @@ -239,6 +246,49 @@ func (nh *MdNatUnitHandler) HandleShowMdNatUnitScreen(c echo.Context) error { }, ) + // modal delete form + dialogDeleteBodyCmp := dev_mdnatunitview.BodyFormNatUnit( + models.CustomTextFieldv2Prm{ + Label: "Kode Unit", + Name: "natunitcode", + Placeholder: "Kode Unit", + Type: "text", ID: "natunitinputname"}, + models.CustomTextFieldv2Prm{ + Label: "Nama Unit", + Name: "natunitname", + Placeholder: "Nama Unit", + Type: "text", ID: "natunitinputname"}, + models.CustomTextFieldv2Prm{ + Label: "Kode Unit", + Name: "natunitid", + Placeholder: "Kode Unit", + Type: "hidden", ID: "natunitinputid"}, + dialogDeleteBodyID, dev_mdnatunitview.JsHideModal("")) + modalActionDeleteCmp := dev_mdnatunitview.ActionFormNatUnit( + "/dev/md/natunit/closedeleteform", + "#"+dialogDeleteBodyID, + "outerHTML", + "#"+dialogDeleteID) + btnCloaseModalDelete := dev_mdnatunitview.BtnCloseFormNatUnit( + "/dev/md/natunit/closedeleteform", + "#"+dialogDeleteBodyID, + "outerHTML", + "#"+dialogDeleteID) + modalDeleteFormComponent := dev_mdnatunitview.NatUnitForm( + models.NatUnitFormComponent{ + IDComponent: "formnatunit", + Link: "/dev/md/natunit/delete", + HxTarget: "#" + dialogDeleteBodyID, + HxSwap: "outerHTML", + HxInclude: "#tableID, #paginationID, #searchID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #" + searchID + ", #currpage" + paginationID, + ModalID: dialogDeleteID, + ModalTitle: "New - Unit", + DialogBody: dialogDeleteBodyCmp, + DialogAction: modalActionDeleteCmp, + ButtonCLose: btnCloaseModalDelete, + }, + ) + // content, css, js content := dev_mdnatunitview.MdNatUnitScreen( tableID, @@ -248,12 +298,15 @@ func (nh *MdNatUnitHandler) HandleShowMdNatUnitScreen(c echo.Context) error { dialogAddBodyID, dialogEditID, dialogEditBodyID, + dialogDeleteID, + dialogDeleteBodyID, breadcrumbComponent, tableComponent, natUnitFilterComponent, natUnitPaginationComponent, modalAddFormComponent, modalEditFormComponent, + modalDeleteFormComponent, ) css := dev_mdnatunitview.CssMdNatUnit() js := dev_mdnatunitview.JsMdNatUnit() @@ -277,6 +330,7 @@ func (nh *MdNatUnitHandler) HandleFilterMdNatUnit(c echo.Context) error { tableID := c.QueryParam("tableID") paginationID := c.QueryParam("paginationID") dialogEditBodyID := c.QueryParam("dialogEditBodyID") + dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID") var retval []templ.Component logger, _ := zap.NewProduction() @@ -294,13 +348,17 @@ func (nh *MdNatUnitHandler) HandleFilterMdNatUnit(c echo.Context) error { "/dev/md/natunit/openedit", "#"+dialogEditBodyID, "outerHTML", - "#dialogEditBodyID, #dialogEditID") + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "/dev/md/natunit/opendelete", + "#"+dialogDeleteBodyID, + "outerHTML", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID") natUnitPaginationComponent := pagination.PaginationV3( totalpage, 1, "/dev/md/natunit/changepage", paginationID, - "#tableID, #searchID, #"+searchID+", #paginationID", + "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", "#"+paginationID, "outerHTML", "", "", dev_mdnatunitview.BeforeRequestContent(), @@ -318,6 +376,7 @@ func (nh *MdNatUnitHandler) HandlerChangePageMdNatUnit(c echo.Context) error { searchID := c.QueryParam("searchID") paginationID := c.QueryParam("paginationID") dialogEditBodyID := c.QueryParam("dialogEditBodyID") + dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID") var retval []templ.Component logger, _ := zap.NewProduction() @@ -345,14 +404,18 @@ func (nh *MdNatUnitHandler) HandlerChangePageMdNatUnit(c echo.Context) error { "/dev/md/natunit/openedit", "#"+dialogEditBodyID, "outerHTML", - "#dialogEditBodyID, #dialogEditID", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "/dev/md/natunit/opendelete", + "#"+dialogDeleteBodyID, + "outerHTML", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", ) natUnitPaginationComponent := pagination.PaginationV3( totalpage, page, "/dev/md/natunit/changepage", paginationID, - "#tableID, #searchID, #"+searchID+", #paginationID", + "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", "#"+paginationID, "outerHTML", "", "", dev_mdnatunitview.BeforeRequestContent(), @@ -400,6 +463,7 @@ func (nh *MdNatUnitHandler) HandlerAddNatUnit(c echo.Context) error { dialogAddBodyID := c.FormValue("dialogAddBodyID") dialogAddID := c.FormValue("dialogAddID") dialogEditBodyID := c.FormValue("dialogEditBodyID") + dialogDeleteBodyID := c.FormValue("dialogDeleteBodyID") currPage, err := strconv.Atoi(currPagePrm) if err != nil { @@ -515,7 +579,11 @@ func (nh *MdNatUnitHandler) HandlerAddNatUnit(c echo.Context) error { "/dev/md/natunit/openedit", "#"+dialogEditBodyID, "outerHTML", - "#dialogEditBodyID, #dialogEditID", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "/dev/md/natunit/opendelete", + "#"+dialogDeleteBodyID, + "outerHTML", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", ) // pagination component @@ -524,7 +592,7 @@ func (nh *MdNatUnitHandler) HandlerAddNatUnit(c echo.Context) error { currPage, "/dev/md/natunit/changepage", paginationID, - "#tableID, #searchID, #"+searchID+", #paginationID", + "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", "#"+paginationID, "outerHTML", "", "true", dev_mdnatunitview.BeforeRequestContent(), @@ -652,7 +720,7 @@ func (nh *MdNatUnitHandler) HandlerEditNatUnit(c echo.Context) error { // dialogAddBodyID := c.FormValue("dialogAddBodyID") dialogEditID := c.FormValue("dialogEditID") dialogEditBodyID := c.FormValue("dialogEditBodyID") - // dialogDeleteBodyID := c.FormValue("dialogDeleteBodyID") + dialogDeleteBodyID := c.FormValue("dialogDeleteBodyID") currPage, err := strconv.Atoi(currPagePrm) if err != nil { @@ -768,7 +836,11 @@ func (nh *MdNatUnitHandler) HandlerEditNatUnit(c echo.Context) error { "/dev/md/natunit/openedit", "#"+dialogEditBodyID, "outerHTML", - "#dialogEditBodyID, #dialogEditID", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "/dev/md/natunit/opendelete", + "#"+dialogDeleteBodyID, + "outerHTML", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", ) // pagination component @@ -777,7 +849,7 @@ func (nh *MdNatUnitHandler) HandlerEditNatUnit(c echo.Context) error { currPage, "/dev/md/natunit/changepage", paginationID, - "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID", + "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", "#"+paginationID, "outerHTML", "", "true", dev_mdnatunitview.BeforeRequestContent(), @@ -811,3 +883,154 @@ func (nh *MdNatUnitHandler) HandlerEditNatUnit(c echo.Context) error { retVal = append(retVal, newForm) return utils.ViewMulti(c, retVal) } + +func (nh *MdNatUnitHandler) HandlerOpenDeleteForm(c echo.Context) error { + id := c.QueryParam("id") + dialogDeleteID := c.QueryParam("dialogDeleteID") + dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID") + + dataNatUnit, err := nh.MdNatUnitServices.GetMdNatUnitByID(id) + if err != nil { + newForm := dev_mdnatunitview.DeleteConfirmationBody( + models.CustomTextFieldv2Prm{Name: "natunitid", Type: "hidden", Value: strconv.Itoa(dataNatUnit.Nat_UnitID)}, + dialogDeleteBodyID, + "Apakah anda yakin menghapus unit berikut ?", + []string{"Kode", "Unit"}, + []string{"", ""}, + dev_mdnatunitview.JsShowModal("")) + return utils.ViewMulti(c, []templ.Component{customtoastv2.CustomToastV2Show("Error", "Get unit error", "danger"), newForm}) + } + newForm := dev_mdnatunitview.DeleteConfirmationBody( + models.CustomTextFieldv2Prm{Name: "natunitid", Type: "hidden", Value: strconv.Itoa(dataNatUnit.Nat_UnitID)}, + dialogDeleteBodyID, + "Apakah anda yakin menghapus unit berikut ?", + []string{"Kode", "Unit"}, + []string{dataNatUnit.Nat_UnitCode, dataNatUnit.Nat_UnitName}, + dev_mdnatunitview.JsShowModal("#"+dialogDeleteID)) + return utils.View(c, newForm) +} + +func (nh *MdNatUnitHandler) HandlerCloseFormDelete(c echo.Context) error { + dialogDeleteBodyID := c.FormValue("dialogDeleteBodyID") + newForm := dev_mdnatunitview.DeleteConfirmationBody( + models.CustomTextFieldv2Prm{Name: "natunitid", Type: "hidden", Value: ""}, + dialogDeleteBodyID, + "Apakah anda yakin menghapus unit berikut ?", + []string{"Kode", "Unit"}, + []string{"", ""}, + dev_mdnatunitview.JsShowModal("")) + return utils.View(c, newForm) +} + +func (nh *MdNatUnitHandler) HandlerDeleteNatUnit(c echo.Context) error { + logger, _ := zap.NewProduction() + defer logger.Sync() + + // prm form addnatunit + id := c.FormValue("natunitid") + tableID := c.FormValue("tableID") + paginationID := c.FormValue("paginationID") + searchID := c.FormValue("searchID") + search := c.FormValue("search") + currPagePrm := c.FormValue("currpage" + paginationID) + // dialogAddBodyID := c.FormValue("dialogAddBodyID") + dialogDeleteID := c.FormValue("dialogDeleteID") + dialogEditBodyID := c.FormValue("dialogEditBodyID") + dialogDeleteBodyID := c.FormValue("dialogDeleteBodyID") + + currPage, err := strconv.Atoi(currPagePrm) + if err != nil { + return err + } + logger.Info("ADD NAT UNIT PARAM", + + zap.Any("tableid", tableID), + zap.Any("search", search), + zap.Any("currpage", currPage), + ) + + // edit nat unit service + dataNatUnit, err := nh.MdNatUnitServices.DeleteMdNatUnit(id) + if err != nil { + logger.Info("Error", + zap.Any("Error", err), + ) + newForm := dev_mdnatunitview.DeleteConfirmationBody( + models.CustomTextFieldv2Prm{Name: "natunitid", Type: "hidden", Value: ""}, + dialogDeleteBodyID, + "Apakah anda yakin menghapus unit berikut ?", + []string{"Kode", "Unit"}, + []string{"", ""}, + dev_mdnatunitview.JsShowModal("")) + return utils.ViewMulti(c, []templ.Component{ + customtoastv2.CustomToastV2Show("Error", err.Error(), "danger"), + newForm}) + } + logger.Info("ADD Unit", + zap.Any("return", dataNatUnit), + ) + + // get list nat unit fo table + dataNatUnitList, totalPage, err := nh.MdNatUnitServices.GetListMdNatUnit(search, currPage, 5) + if err != nil { + defer logger.Sync() + logger.Info("ERROR GET Unit", + zap.Any("error", err), + ) + fmt.Println(dataNatUnit) + return err + } + if len(dataNatUnitList) == 0 && totalPage > 1 { + currPage = currPage - 1 + dataNatUnitList, _, err = nh.MdNatUnitServices.GetListMdNatUnit(search, currPage, 5) + if err != nil { + defer logger.Sync() + logger.Info("ERROR GET UNIT", + zap.Any("error", err), + ) + return err + } + } + + // table component + tableComponent := dev_mdnatunitview.TableNatUnit( + dataNatUnitList, + tableID, + "/dev/md/natunit/openedit", + "#"+dialogEditBodyID, + "outerHTML", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "/dev/md/natunit/opendelete", + "#"+dialogDeleteBodyID, + "outerHTML", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + ) + + // pagination component + natUnitPaginationComponent := pagination.PaginationV3( + totalPage, + currPage, + "/dev/md/natunit/changepage", + paginationID, + "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "#"+paginationID, + "outerHTML", "", "true", + dev_mdnatunitview.BeforeRequestContent(), + dev_mdnatunitview.AfterRequestContent(), + ) + + var retVal []templ.Component + newForm := dev_mdnatunitview.DeleteConfirmationBody( + models.CustomTextFieldv2Prm{Name: "natunitid", Type: "hidden", Value: ""}, + dialogDeleteBodyID, + "Apakah anda yakin menghapus unit berikut ?", + []string{"Kode", "Unit"}, + []string{"", ""}, + dev_mdnatunitview.JsHideModal("#"+dialogDeleteID)) + toastSuccess := customtoastv2.CustomToastV2Show("Success", "Berhasil delete Unit ", "success") + retVal = append(retVal, toastSuccess) + retVal = append(retVal, tableComponent) + retVal = append(retVal, natUnitPaginationComponent) + retVal = append(retVal, newForm) + return utils.ViewMulti(c, retVal) +} diff --git a/handlers/routes.go b/handlers/routes.go index d4929b0..7b37a85 100644 --- a/handlers/routes.go +++ b/handlers/routes.go @@ -258,4 +258,7 @@ func SetupRoutesDev(app *echo.Echo, appStore db.AppStore) { dev.GET("/md/natunit/openedit", devMdNatUnitHandlers.HandlerOpenEditForm) dev.POST("/md/natunit/closeeditform", devMdNatUnitHandlers.HandlerCloseFormEdit) dev.POST("/md/natunit/edit", devMdNatUnitHandlers.HandlerEditNatUnit) + dev.GET("/md/natunit/opendelete", devMdNatUnitHandlers.HandlerOpenDeleteForm) + dev.POST("/md/natunit/closedeleteform", devMdNatUnitHandlers.HandlerCloseFormDelete) + dev.POST("/md/natunit/delete", devMdNatUnitHandlers.HandlerDeleteNatUnit) } diff --git a/services/dev/md.natunit.services.go b/services/dev/md.natunit.services.go index 2ccdb79..94fc76d 100644 --- a/services/dev/md.natunit.services.go +++ b/services/dev/md.natunit.services.go @@ -232,3 +232,31 @@ func (nu *MdNatUnitServices) EditMdNatUnit(id string, code string, name string) } return data, nil } + +func (nu *MdNatUnitServices) DeleteMdNatUnit(id string) (models.NatUnit, error) { + logger, _ := zap.NewProduction() + var data models.NatUnit + qry := `UPDATE nat_unit + SET Nat_UnitLastUpdated = NOW(), + Nat_UnitIsActive = 'N' + WHERE Nat_UnitID = ?` + rst := dbx.Handlex.MustExec(qry, id) + _, err := rst.RowsAffected() + if err != nil { + defer logger.Sync() + logger.Error("Error delete nat unit", + zap.String("id", id), + ) + return data, fmt.Errorf("QUERY_FAILED") + } + + data, err = nu.GetMdNatUnitByID(id) + if err != nil { + defer logger.Sync() + logger.Error("Error get nat unit by id", + zap.String("id", id), + ) + return data, fmt.Errorf("QUERY_FAILED") + } + return data, nil +} diff --git a/views/dev/mdnatunit/mdnatunit.templ b/views/dev/mdnatunit/mdnatunit.templ index ea20950..8553193 100644 --- a/views/dev/mdnatunit/mdnatunit.templ +++ b/views/dev/mdnatunit/mdnatunit.templ @@ -14,12 +14,15 @@ templ MdNatUnitScreen( dialogAddBodyID string, dialogEditID string, dialogEditBodyID string, + dialogDeleteID string, + dialogDeleteBodyID string, breadcrumb templ.Component, tablecontent templ.Component, filterComponent templ.Component, paginationComponent templ.Component, modalAddForm templ.Component, - modalEditForm templ.Component) { + modalEditForm templ.Component, + modalDeleteForm templ.Component) {
{ message }
+") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var25 string + templ_7745c5c3_Var25, templ_7745c5c3_Err = templ.JoinStringErrs(message) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnatunit\mdnatunitformmodal.templ`, Line: 143, Col: 14} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var25)) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("