diff --git a/component/sidebar_user_profile/sidebar_user_profile.templ b/component/sidebar_user_profile/sidebar_user_profile.templ index 53fee87..11714f3 100644 --- a/component/sidebar_user_profile/sidebar_user_profile.templ +++ b/component/sidebar_user_profile/sidebar_user_profile.templ @@ -36,8 +36,10 @@ templ Navbaruserprofile(dataUser models.User) { + Sign Out diff --git a/component/sidebar_user_profile/sidebar_user_profile_templ.go b/component/sidebar_user_profile/sidebar_user_profile_templ.go index 53ea029..94128c2 100644 --- a/component/sidebar_user_profile/sidebar_user_profile_templ.go +++ b/component/sidebar_user_profile/sidebar_user_profile_templ.go @@ -33,7 +33,7 @@ func Navbaruserprofile(dataUser models.User) templ.Component { if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } @@ -68,7 +68,7 @@ func ProfileHeader(dataUser models.User) templ.Component { var templ_7745c5c3_Var3 string templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(dataUser.UserFullName) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\sidebar_user_profile\sidebar_user_profile.templ`, Line: 59, Col: 27} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\sidebar_user_profile\sidebar_user_profile.templ`, Line: 61, Col: 27} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3)) if templ_7745c5c3_Err != nil { @@ -81,7 +81,7 @@ func ProfileHeader(dataUser models.User) templ.Component { var templ_7745c5c3_Var4 string templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(dataUser.UserPosition) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\sidebar_user_profile\sidebar_user_profile.templ`, Line: 62, Col: 27} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\sidebar_user_profile\sidebar_user_profile.templ`, Line: 64, Col: 27} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4)) if templ_7745c5c3_Err != nil { diff --git a/handlers/corporate/mcudetail/tabdaftarpeserta.handlers.go b/handlers/corporate/mcudetail/tabdaftarpeserta.handlers.go index d6c0da4..40c6c6d 100644 --- a/handlers/corporate/mcudetail/tabdaftarpeserta.handlers.go +++ b/handlers/corporate/mcudetail/tabdaftarpeserta.handlers.go @@ -20,6 +20,8 @@ type TabDaftarPesertaServices interface { GenerataPasswordMCU(mgmMCUID string, host string) (models.GeneratePasswordResponse, error) GetAkunPeserta(patientID string) (models.AuthPatient, error) GetListReportPesertaV4(orderheaderID string, staffname string) ([]models.TabViewReportMcu, error) + ResetPasswordPeserta(token string, newPassword string, email string, authuserid string) (models.ResponseStatus, error) + DetailTestdanPaket(orderheaderID string) ([]models.TableTestPaket, error) } type TabDaftarPesertaHandlers struct { @@ -47,6 +49,9 @@ func (tdp *TabDaftarPesertaHandlers) HandleShowTabDaftarPeserta(c echo.Context) dialogAkunID := utils.GenerateRandomID("dialogakunID") dialogAkunBodyID := utils.GenerateRandomID("dialogakunbodyID") + dialogDetailID := utils.GenerateRandomID("dialogdetailID") + dialogDetailBodyID := utils.GenerateRandomID("dialogdetailBodyID") + id := c.Param("id") logger.Info("Params", zap.Any("id", id)) @@ -66,6 +71,10 @@ func (tdp *TabDaftarPesertaHandlers) HandleShowTabDaftarPeserta(c echo.Context) "#"+dialogAkunBodyID, "#tableID, #paginationID, #dialogReportID, #dialogReportBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogAkunID, #dialogAkunBodyID", "outerHTML", + "/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/opendetail", + "#"+dialogDetailBodyID, + "#tableID, #paginationID, #dialogReportID, #dialogReportBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogAkunID, #dialogAkunBodyID, #dialogDetailID, #dialogDetailBodyID", + "outerHTML", ) pagination := pagination.PaginationV3( @@ -165,13 +174,13 @@ func (tdp *TabDaftarPesertaHandlers) HandleShowTabDaftarPeserta(c echo.Context) ID: "akunpesertaemailid", }, models.CustomTextFieldv2Prm{ - Label: "Password", - Name: "akunpesertapass", + Label: "Password baru", + Name: "akunpesertapassnew", Type: "password", - ID: "akunpesertapassid", + ID: "akunpesertapassnewid", }, models.CustomTextFieldv2Prm{ - Label: "Ketik ulang password", + Label: "Ulangi password baru", Name: "akunpesertapasscek", Type: "password", ID: "akunpesertapasscekid", @@ -200,12 +209,46 @@ func (tdp *TabDaftarPesertaHandlers) HandleShowTabDaftarPeserta(c echo.Context) "outerHTML", "#tableID, #paginationID, #dialogAkunID, #contentlayout, #dialogAkunBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogReportID, #dialogReportBodyID, #currpage"+paginationID, dialogAkunID, - "Ubah Password Akun Peserta", + "Reset Password Akun Peserta", dialogAkunBody, dialogAkunClose, dialogAkunAction, ) + // dialog detali pemeriksaan + + detailData, err := tdp.TabDaftarPesertaServices.DetailTestdanPaket("") + if err != nil { + return err + } + + detailTable := corporate_mcudetail.TableDetailMCU(detailData) + + dialodDetailBody := corporate_mcudetail.ModalRptBody( + dialogDetailBodyID, + detailTable, + corporate_mcudetail.JsShowModal(""), + ) + + closeDetail := corporate_mcudetail.ModalClose( + "/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/closedetail", + "#"+dialogDetailBodyID, + "outerHTML", + "#"+dialogDetailID, + ) + + modalDetail := corporate_mcudetail.DialogReport( + "detailmcu", + "/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/dialogdetail", + "#"+dialogDetailBodyID, + "outerHTML", + "#tableID, #paginationID, #dialogAkunID, #dialogAkunBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogReportID, #dialogReportBodyID"+paginationID, + dialogDetailID, + "Detail Pemeriksaan", + dialodDetailBody, + closeDetail, + ) + content := corporate_mcudetail.TabDaftarPesertaScreen( tableID, paginationID, @@ -215,10 +258,13 @@ func (tdp *TabDaftarPesertaHandlers) HandleShowTabDaftarPeserta(c echo.Context) dialogGeneratePassBodyID, dialogAkunID, dialogAkunBodyID, + dialogDetailID, + dialogDetailBodyID, clayout, modaldialog, modalGenPass, dialogAkunView, + modalDetail, ) return utils.View(c, content) @@ -231,6 +277,7 @@ func (tdp *TabDaftarPesertaHandlers) HandlePagination(c echo.Context) error { dialogReportBodyID := c.QueryParam("dialogReportBodyID") dialogAkunBodyID := c.QueryParam("dialogAkunBodyID") + dialogDetailBodyID := c.QueryParam("dialogDetailBodyID") id := c.Param("id") @@ -255,6 +302,10 @@ func (tdp *TabDaftarPesertaHandlers) HandlePagination(c echo.Context) error { "#"+dialogAkunBodyID, "#tableID, #paginationID, #dialogReportID, #dialogReportBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogAkunID, #dialogAkunBodyID", "outerHTML", + "/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/opendetail", + "#"+dialogDetailBodyID, + "#tableID, #paginationID, #dialogReportID, #dialogReportBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogAkunID, #dialogAkunBodyID, #dialogDetailID, #dialogDetailBodyID", + "outerHTML", ) pagination := pagination.PaginationV3( @@ -262,7 +313,7 @@ func (tdp *TabDaftarPesertaHandlers) HandlePagination(c echo.Context) error { page, "/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/changepage", paginationID, - "#tableID, #paginationID, #loading-parent, #loading-child, #loading-spinner, #loadingcontent, #dialogGenPassID, #dialogGenPassBodyID, #dialogAkunID, #dialogAkunBodyID, #dialogReportID, #dialogReportBodyID, #currPage"+paginationID, + "#tableID, #paginationID, #loading-parent, #loading-child, #loading-spinner, #loadingcontent, #dialogDetailID, #dialogDetailBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogAkunID, #dialogAkunBodyID, #dialogReportID, #dialogReportBodyID, #currPage"+paginationID, "#contentlayout", "outerHTML", "", "", corporate_mcudetail.BeforeRequestContent(), @@ -419,13 +470,13 @@ func (tdp *TabDaftarPesertaHandlers) HandleOpenViewAkun(c echo.Context) error { ID: "akunpesertaemailid", }, models.CustomTextFieldv2Prm{ - Label: "Password Akun", - Name: "akunpesertapass", + Label: "Password baru", + Name: "akunpesertapassnew", Type: "password", - ID: "akunpesertapassid", + ID: "akunpesertapassnewid", }, models.CustomTextFieldv2Prm{ - Label: "Ketik ulang password", + Label: "Ulangi password baru", Name: "akunpesertapasscek", Type: "password", ID: "akunpesertapasscekid", @@ -455,16 +506,18 @@ func (tdp *TabDaftarPesertaHandlers) HandleOpenViewAkun(c echo.Context) error { Value: akun.AuthPatientEmail, }, models.CustomTextFieldv2Prm{ - Label: "Password Akun", - Name: "akunpesertapass", - Type: "password", - ID: "akunpesertapassid", + Label: "Password baru", + Name: "akunpesertapassnew", + Type: "password", + ID: "akunpesertapassnewid", + Placeholder: "Masukan password baru", }, models.CustomTextFieldv2Prm{ - Label: "Ketik ulang password", - Name: "akunpesertapasscek", - Type: "password", - ID: "akunpesertapasscekid", + Label: "Ulangi password baru", + Name: "akunpesertapasscek", + Type: "password", + ID: "akunpesertapasscekid", + Placeholder: "Masukan ulang password baru", }, corporate_mcudetail.JsShowModal("#"+dialogAkunID), ) @@ -495,13 +548,13 @@ func (tdp *TabDaftarPesertaHandlers) HandleCloseViewAkun(c echo.Context) error { ID: "akunpesertaemailid", }, models.CustomTextFieldv2Prm{ - Label: "Password Akun", - Name: "akunpesertapass", + Label: "Password baru", + Name: "akunpesertapassnew", Type: "password", - ID: "akunpesertapassid", + ID: "akunpesertapassnewid", }, models.CustomTextFieldv2Prm{ - Label: "Ketik ulang password", + Label: "Ulangi password baru", Name: "akunpesertapasscek", Type: "password", ID: "akunpesertapasscekid", @@ -514,6 +567,9 @@ func (tdp *TabDaftarPesertaHandlers) HandleCloseViewAkun(c echo.Context) error { func (tdp *TabDaftarPesertaHandlers) HandleAkun(c echo.Context) error { logger, _ := zap.NewProduction() + userToken := c.Get("user").(*jwt.Token) + token := userToken.Raw + patientID := c.FormValue("akunpesertaid") dialogAkunID := c.FormValue("dialogAkunID") dialogAkunBodyID := c.FormValue("dialogAkunBodyID") @@ -521,39 +577,34 @@ func (tdp *TabDaftarPesertaHandlers) HandleAkun(c echo.Context) error { akunID := c.FormValue("akunpesertaid") akunEmail := c.FormValue("akunpesertaemail") - akunPass := c.FormValue("akunpesertapass") - akunPasscek := c.FormValue("akunpesertapasscek") + oldPass := c.FormValue("akunpesertapassold") + newPass := c.FormValue("akunpesertapassnew") + newPasscek := c.FormValue("akunpesertapasscek") formValidation := "" - emailValidation := "" - passValidation := "" - pass2Validation := "" + newValidation := "" + cekValidation := "" - if strings.TrimSpace(akunEmail) == "" { - formValidation = "Email tidak boleh kosong" - emailValidation = "Email tidak boleh kosong" - } - if strings.TrimSpace(akunPass) == "" { + if strings.TrimSpace(newPass) == "" { formValidation = "Password tidak boleh kosong" - passValidation = "Password tidak boleh kosong" + newValidation = "Password tidak boleh kosong" } - if strings.TrimSpace(akunPasscek) == "" { + if strings.TrimSpace(newPasscek) == "" { formValidation = "Password tidak boleh kosong" - pass2Validation = "Password tidak boleh kosong" + cekValidation = "Password tidak boleh kosong" } - if strings.TrimSpace(akunEmail) == "" && strings.TrimSpace(akunPass) == "" && strings.TrimSpace(akunPasscek) == "" { - formValidation = "Email dan Password tidak boleh kosong" - emailValidation = "Email tidak boleh kosong" - passValidation = "Password tidak boleh kosong" - pass2Validation = "Password tidak boleh kosong" + if strings.TrimSpace(oldPass) == "" && strings.TrimSpace(newPass) == "" && strings.TrimSpace(newPasscek) == "" { + formValidation = "Password lama dan baru tidak boleh kosong" + newValidation = "Password baru tidak boleh kosong" + cekValidation = "Password baru tidak boleh kosong" } - if strings.TrimSpace(akunPass) != strings.TrimSpace(akunPasscek) { + if strings.TrimSpace(newPass) != strings.TrimSpace(newPasscek) { formValidation = "Password tidak sama" - passValidation = "Password tidak sama" - pass2Validation = "Password tidak sama" + newValidation = "Password tidak sama" + cekValidation = "Password tidak sama" } - if formValidation != "" || emailValidation != "" || passValidation != "" || pass2Validation != "" { + if formValidation != "" || newValidation != "" || cekValidation != "" { dialogAkunBody := corporate_mcudetail.ModalViewAkunBody( dialogAkunBodyID, models.CustomTextFieldv2Prm{ @@ -565,28 +616,27 @@ func (tdp *TabDaftarPesertaHandlers) HandleAkun(c echo.Context) error { Value: akunID, }, models.CustomTextFieldv2Prm{ - Label: "Email Akun", - Name: "akunpesertaemail", - Type: "text", - ID: "akunpesertaemailid", - Value: akunEmail, - ErrorMsg: emailValidation, + Label: "Email Akun", + Name: "akunpesertaemail", + Type: "text", + ID: "akunpesertaemailid", + Value: akunEmail, }, models.CustomTextFieldv2Prm{ - Label: "Password Akun", - Name: "akunpesertapass", - Type: "password", - ID: "akunpesertapassid", - Value: akunPass, - ErrorMsg: passValidation, + Label: "Password baru", + Name: "akunpesertapassnew", + Type: "password", + ID: "akunpesertapassnewid", + Placeholder: "Masukan password baru", + ErrorMsg: newValidation, }, models.CustomTextFieldv2Prm{ - Label: "Ketik ulang password", - Name: "akunpesertapasscek", - Type: "password", - ID: "akunpesertapasscekid", - Value: akunPasscek, - ErrorMsg: pass2Validation, + Label: "Ulangi password baru", + Name: "akunpesertapasscek", + Type: "password", + ID: "akunpesertapasscekid", + Placeholder: "Masukan ulang password baru", + ErrorMsg: cekValidation, }, corporate_mcudetail.JsShowModal(""), ) @@ -595,6 +645,51 @@ func (tdp *TabDaftarPesertaHandlers) HandleAkun(c echo.Context) error { return utils.ViewMulti(c, retVal) } + resp, err := tdp.TabDaftarPesertaServices.ResetPasswordPeserta(token, newPass, akunEmail, akunID) + dialogAkunErr := corporate_mcudetail.ModalViewAkunBody( + dialogAkunBodyID, + models.CustomTextFieldv2Prm{ + Label: "ID Akun Peserta", + Name: "akunpesertaid", + Placeholder: "ID Akun Peserta", + Type: "hidden", + ID: "akunpesertaidid", + Value: akunID, + }, + models.CustomTextFieldv2Prm{ + Label: "Email Akun", + Name: "akunpesertaemail", + Type: "text", + ID: "akunpesertaemailid", + Value: akunEmail, + }, + models.CustomTextFieldv2Prm{ + Label: "Password baru", + Name: "akunpesertapassnew", + Type: "password", + ID: "akunpesertapassnewid", + Placeholder: "Masukan password baru", + }, + models.CustomTextFieldv2Prm{ + Label: "Ulangi password baru", + Name: "akunpesertapasscek", + Type: "password", + ID: "akunpesertapasscekid", + Placeholder: "Masukan ulang password baru", + }, + corporate_mcudetail.JsHideModal(""), + ) + + if err != nil { + toastwarning := customtoastv2.CustomToastV2Show("Warning", err.Error(), "warning") + return utils.ViewMulti(c, []templ.Component{toastwarning, dialogAkunErr}) + } + + if resp.Status == "ERR" { + toastwarning := customtoastv2.CustomToastV2Show("Warning", resp.Message, "warning") + return utils.ViewMulti(c, []templ.Component{toastwarning, dialogAkunErr}) + } + dialogAkunBody := corporate_mcudetail.ModalViewAkunBody( dialogAkunBodyID, models.CustomTextFieldv2Prm{ @@ -611,26 +706,31 @@ func (tdp *TabDaftarPesertaHandlers) HandleAkun(c echo.Context) error { ID: "akunpesertaemailid", }, models.CustomTextFieldv2Prm{ - Label: "Password Akun", - Name: "akunpesertapass", - Type: "password", - ID: "akunpesertapassid", + Label: "Password baru", + Name: "akunpesertapassnew", + Type: "password", + ID: "akunpesertapassnewid", + Placeholder: "Masukan password baru", }, models.CustomTextFieldv2Prm{ - Label: "Ketik ulang password", - Name: "akunpesertapasscek", - Type: "password", - ID: "akunpesertapasscekid", + Label: "Ulangi password baru", + Name: "akunpesertapasscek", + Type: "password", + ID: "akunpesertapasscekid", + Placeholder: "Masukan ulang password baru", }, corporate_mcudetail.JsHideModal("#"+dialogAkunID), ) - return utils.View(c, dialogAkunBody) + toastwarning := customtoastv2.CustomToastV2Show("Success", "Berhasil reset password peserta: "+akunEmail, "success") + retVal := []templ.Component{toastwarning, dialogAkunBody} + return utils.ViewMulti(c, retVal) } func (tdp *TabDaftarPesertaHandlers) HandleContentReload(c echo.Context) error { id := c.Param("id") dialogReportBodyID := c.FormValue("dialogReportBodyID") dialogAkunBodyID := c.FormValue("dialogAkunBodyID") + dialogDetailBodyID := c.FormValue("dialogDetailBodyID") tableID := c.FormValue("tableID") paginationID := c.FormValue("paginationID") @@ -656,6 +756,10 @@ func (tdp *TabDaftarPesertaHandlers) HandleContentReload(c echo.Context) error { "#"+dialogAkunBodyID, "#tableID, #paginationID, #dialogReportID, #dialogReportBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogAkunID, #dialogAkunBodyID", "outerHTML", + "/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/opendetail", + "#"+dialogDetailBodyID, + "#tableID, #paginationID, #dialogReportID, #dialogReportBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogAkunID, #dialogAkunBodyID, #dialogDetailID, #dialogDetailBodyID", + "outerHTML", ) pagination := pagination.PaginationV3( @@ -663,7 +767,7 @@ func (tdp *TabDaftarPesertaHandlers) HandleContentReload(c echo.Context) error { currpage, "/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/changepage", paginationID, - "#tableID, #paginationID, #loading-parent, #loading-child, #loading-spinner, #loadingcontent, #dialogGenPassID, #dialogGenPassBodyID, #dialogAkunID, #dialogAkunBodyID, #dialogReportID, #dialogReportBodyID, #currPage"+paginationID, + "#tableID, #paginationID, #loading-parent, #loading-child, #loading-spinner, #loadingcontent, #dialogGenPassID, #dialogGenPassBodyID, #dialogAkunID, #dialogAkunBodyID, #dialogReportID, #dialogReportBodyID, #dialogDetailID, #dialogDetailBodyID, #currPage"+paginationID, "#contentlayout", "outerHTML", "", "", corporate_mcudetail.BeforeRequestContent(), @@ -673,3 +777,29 @@ func (tdp *TabDaftarPesertaHandlers) HandleContentReload(c echo.Context) error { clayout := corporate_mcudetail.ContentLayout(table, pagination) return utils.View(c, clayout) } + +func (tdp *TabDaftarPesertaHandlers) HandleOpenDetail(c echo.Context) error { + idx := c.QueryParam("idx") + dialogDetailID := c.QueryParam("dialogDetailID") + dialogDetailBodyID := c.QueryParam("dialogDetailBodyID") + + detailData, err := tdp.TabDaftarPesertaServices.DetailTestdanPaket(idx) + if err != nil { + tab := corporate_mcudetail.TableDetailMCU([]models.TableTestPaket{}) + mod := corporate_mcudetail.ModalRptBody( + dialogDetailBodyID, + tab, + corporate_mcudetail.JsShowModal("#"+dialogDetailID), + ) + return utils.View(c, mod) + } + + tablecomponent := corporate_mcudetail.TableDetailMCU(detailData) + detailBody := corporate_mcudetail.ModalRptBody( + dialogDetailBodyID, + tablecomponent, + corporate_mcudetail.JsShowModal("#"+dialogDetailID), + ) + + return utils.View(c, detailBody) +} diff --git a/handlers/routes.go b/handlers/routes.go index f5ffe2a..b1a077a 100644 --- a/handlers/routes.go +++ b/handlers/routes.go @@ -170,6 +170,7 @@ func SetupRoutesCorporate(app *echo.Echo, appStore db.AppStore) { corp.POST("/dashboard_pic/detail/:id/tabdaftarpeserta/closeviewakun", daftarpesertaHandl.HandleCloseViewAkun) corp.POST("/dashboard_pic/detail/:id/tabdaftarpeserta/viewakun", daftarpesertaHandl.HandleAkun) corp.POST("/dashboard_pic/detail/:id/tabdaftarpeserta/reload", daftarpesertaHandl.HandleContentReload) + corp.GET("/dashboard_pic/detail/:id/tabdaftarpeserta/opendetail", daftarpesertaHandl.HandleOpenDetail) // tab keuangan keuanganService := mcu_corporate_services.NewTabKeuanganServices(appStore) diff --git a/models/mcudaftarpeserta.models.go b/models/mcudaftarpeserta.models.go index 67d608b..b525f6a 100644 --- a/models/mcudaftarpeserta.models.go +++ b/models/mcudaftarpeserta.models.go @@ -14,7 +14,8 @@ type ModelMcuDaftarPeserta struct { Age string `db:"age"` AuthPatientEmail string `db:"authPatientEmail"` AuthPatientIsActive string `db:"authPatientIsActive"` - Nama_Paket string `db:"nama_paket"` + Test_Paket string `db:"test_paket"` + List_Paket string `db:"list_paket"` } type SoResultEntryReportModel struct { @@ -84,3 +85,20 @@ type ResumeMCU struct { Mcu_ResumeID string `db:"Mcu_ResumeID"` Datetime string `db:"Datetime"` } + +type DetailPaketMCU struct { + T_OrderDetailOrderT_PacketID string `db:"T_OrderDetailOrderT_PacketID"` + T_OrderDetailOrderT_PacketName string `db:"T_OrderDetailOrderT_PacketName"` + T_TestName string `db:"T_TestName"` +} + +type DetailTestMCU struct { + T_OrderDetailOrderT_TestID string `db:"T_OrderDetailOrderT_TestID"` + T_OrderDetailOrderT_TestName string `db:"T_OrderDetailOrderT_TestName"` +} + +type TableTestPaket struct { + Nomor int + NamaTest string + NamaPaket string +} diff --git a/services/corporate/mcudetail/tabdaftarpeserta.services.go b/services/corporate/mcudetail/tabdaftarpeserta.services.go index 0d033e5..edda287 100644 --- a/services/corporate/mcudetail/tabdaftarpeserta.services.go +++ b/services/corporate/mcudetail/tabdaftarpeserta.services.go @@ -11,6 +11,7 @@ import ( "io" "math" "net/http" + "net/url" "strconv" "go.uber.org/zap" @@ -42,34 +43,39 @@ func (tdps *TabDaftarPesertaServices) GetListDaftarPesertaMCU(id string, current } query := ` - SELECT - T_OrderHeaderID, - T_OrderHeaderDate, - IFNULL(T_OrderHeaderLabNumber, 0) AS T_OrderHeaderLabNumber, - T_OrderHeaderM_PatientAge, - M_PatientID, - M_PatientNoReg, - M_PatientName, - M_PatientGender, - CASE - WHEN M_PatientGender = 'male' THEN 'Laki - Laki' - WHEN M_PatientGender = 'female' THEN 'Perempuan' + SELECT *, + GROUP_CONCAT(test_paket) as list_paket + FROM ( + SELECT + T_OrderHeaderID, + T_OrderHeaderDate, + IFNULL(T_OrderHeaderLabNumber, 0) AS T_OrderHeaderLabNumber, + T_OrderHeaderM_PatientAge, + M_PatientID, + M_PatientNoReg, + M_PatientName, + M_PatientGender, + CASE + WHEN M_PatientGender = 'male' THEN 'Laki - Laki' + WHEN M_PatientGender = 'female' THEN 'Perempuan' ELSE ' ' - END AS jenisKelamin, - M_PatientDOB, - FLOOR(DATEDIFF(CURDATE(), M_PatientDOB)/ 365.25) AS age, - IFNULL(authPatientEmail, "none") AS authPatientEmail, - IFNULL(authPatientIsActive, "N") AS authPatientIsActive, - CASE - WHEN T_OrderDetailOrderIsPacket = 'Y' THEN T_OrderDetailOrderT_PacketName - ELSE T_OrderDetailOrderT_TestName - END AS nama_paket - FROM t_orderheader - JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' - JOIN t_orderdetailorder ON T_OrderDetailOrderT_OrderHeaderID = T_OrderHeaderID - AND T_OrderDetailOrderIsActive = 'Y' - LEFT JOIN auth_patient ON M_PatientID = authPatientM_PatientID AND authPatientIsActive = 'Y' - WHERE T_OrderHeaderIsActive = 'Y' AND T_OrderHeaderMgm_McuID = ? + END AS jenisKelamin, + M_PatientDOB, + FLOOR(DATEDIFF(CURDATE(), M_PatientDOB)/ 365.25) AS age, + IFNULL(authPatientEmail, "none") AS authPatientEmail, + IFNULL(authPatientIsActive, "N") AS authPatientIsActive, + CASE + WHEN T_OrderDetailOrderIsPacket = 'Y' THEN T_OrderDetailOrderT_PacketName + ELSE T_OrderDetailOrderT_TestName + END AS test_paket + FROM t_orderheader + JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' + JOIN t_orderdetailorder ON T_OrderDetailOrderT_OrderHeaderID = T_OrderHeaderID + AND T_OrderDetailOrderIsActive = 'Y' + LEFT JOIN auth_patient ON M_PatientID = authPatientM_PatientID AND authPatientIsActive = 'Y' + WHERE T_OrderHeaderIsActive = 'Y' AND T_OrderHeaderMgm_McuID = ? + ) x + GROUP BY T_OrderHeaderID ORDER BY T_OrderHeaderLabNumber ASC LIMIT ? OFFSET ? ` @@ -82,6 +88,62 @@ func (tdps *TabDaftarPesertaServices) GetListDaftarPesertaMCU(id string, current return listDaftarPeserta, totalPage, nil } +func (tdps *TabDaftarPesertaServices) DetailTestdanPaket(orderheaderID string) ([]models.TableTestPaket, error) { + var listPaket []models.DetailPaketMCU + var listTest []models.DetailTestMCU + var ret []models.TableTestPaket + + // get list test name + qr := ` + SELECT + T_OrderDetailOrderT_TestID, + T_OrderDetailOrderT_TestName + FROM t_orderdetailorder + WHERE T_OrderDetailOrderT_OrderHeaderID = ? + AND T_OrderDetailOrderIsActive = 'Y' + AND T_OrderDetailOrderIsPacket = 'N' + ` + if err := dbx.Handlex.Select(&listTest, qr, orderheaderID); err != nil { + return ret, err + } + + // get detail paket + q := ` + SELECT + T_OrderDetailOrderT_PacketID, + T_OrderDetailOrderT_PacketName, + T_TestName + FROM t_orderdetailorder + JOIN t_packetdetail ON T_PacketDetailT_PacketID = T_OrderDetailOrderT_PacketID AND T_PacketDetailIsActive = 'Y' + JOIN t_test ON T_TestName = T_PacketDetailT_TestID AND T_TestIsActive = 'Y' + WHERE T_OrderDetailOrderT_OrderHeaderID = ? AND T_OrderDetailOrderIsActive = 'Y' + ` + if err := dbx.Handlex.Select(&listPaket, q, orderheaderID); err != nil { + return ret, err + } + + nomor := 1 + for _, d := range listTest { + ret = append(ret, models.TableTestPaket{ + Nomor: nomor, + NamaTest: d.T_OrderDetailOrderT_TestName, + NamaPaket: d.T_OrderDetailOrderT_TestName, + }) + nomor++ + } + + for _, d := range listPaket { + ret = append(ret, models.TableTestPaket{ + Nomor: nomor, + NamaTest: d.T_TestName, + NamaPaket: d.T_OrderDetailOrderT_PacketName, + }) + nomor++ + } + + return ret, nil +} + func (tdps *TabDaftarPesertaServices) GenerataPasswordMCU(mgmMCUID string, host string) (models.GeneratePasswordResponse, error) { logger, _ := zap.NewProduction() var ret models.GeneratePasswordResponse @@ -109,7 +171,7 @@ func (tdps *TabDaftarPesertaServices) GenerataPasswordMCU(mgmMCUID string, host } func (tdps *TabDaftarPesertaServices) GetAkunPeserta(patientID string) (models.AuthPatient, error) { - logger, _ := zap.NewProduction() + // logger, _ := zap.NewProduction() var ret models.AuthPatient q := ` @@ -126,7 +188,49 @@ func (tdps *TabDaftarPesertaServices) GetAkunPeserta(patientID string) (models.A if err := dbx.Handlex.Get(&ret, q, patientID); err != nil { return ret, fmt.Errorf("error get akun peserta") } - logger.Info("response", zap.Any("data", ret)) + // logger.Info("response", zap.Any("data", ret)) + + return ret, nil +} + +func (tdps *TabDaftarPesertaServices) ResetPasswordPeserta(token string, newPassword string, email string, authuserid string) (models.ResponseStatus, error) { + var ret models.ResponseStatus + + uri := "https://" + config.Data.Get("servername") + "/one-api/mockup/system/menu/reset_password_pat" + + params := url.Values{} + params.Add("new", newPassword) + params.Add("email", email) + params.Add("authuserid", authuserid) + params.Add("token", token) + + req, err := http.PostForm(uri, params) + if err != nil { + ret = models.ResponseStatus{ + Status: "ERR", + Message: "error request change password", + } + return ret, err + } + defer req.Body.Close() + + resp, err := io.ReadAll(req.Body) + if err != nil { + ret = models.ResponseStatus{ + Status: "ERR", + Message: "error read response", + } + return ret, err + } + + err = json.Unmarshal(resp, &ret) + if err != nil { + ret = models.ResponseStatus{ + Status: "ERR", + Message: "error unmarshal response", + } + return ret, err + } return ret, nil } diff --git a/views/corporate/mcu/mcutab/modalgeneratepass.templ b/views/corporate/mcu/mcutab/modalgeneratepass.templ index 0427a1a..3997592 100644 --- a/views/corporate/mcu/mcutab/modalgeneratepass.templ +++ b/views/corporate/mcu/mcutab/modalgeneratepass.templ @@ -104,14 +104,14 @@ templ ModalViewAkunBody( IDComponent string, akunID models.CustomTextFieldv2Prm, akunEmail models.CustomTextFieldv2Prm, - akunPass models.CustomTextFieldv2Prm, - akunPassCek models.CustomTextFieldv2Prm, + newPass models.CustomTextFieldv2Prm, + newPassCek models.CustomTextFieldv2Prm, hxOnLoad templ.ComponentScript, ) {