add tab keuangan table

This commit is contained in:
2024-06-24 16:34:56 +07:00
parent 2cb5ceac47
commit 322a70b582
10 changed files with 1221 additions and 52 deletions

View File

@@ -0,0 +1,124 @@
package mcu_corporate_handlers
import (
"cpone/component/pagination"
"cpone/models"
"cpone/utils"
corporate_mcudetail "cpone/views/corporate/mcu/mcutab"
"strconv"
"github.com/labstack/echo/v4"
"go.uber.org/zap"
)
type TabKeuanganServices interface {
GetTotalOrderKeuangan(mcuID string) (float64, error)
GetTotalCardData(mcuID string) (models.TotalBillCard, error)
GetListingDataKeuangan(mcuID string, currentpage int, rowperpage int) ([]models.KeuanganModel, int, error)
}
type TabKeuanganHandler struct {
TabKeuanganServices TabKeuanganServices
}
func NewTabKeuanganHandler(tk TabKeuanganServices) *TabKeuanganHandler {
return &TabKeuanganHandler{
TabKeuanganServices: tk,
}
}
func (tk *TabKeuanganHandler) HandleShowTabKeuangan(c echo.Context) error {
logger, _ := zap.NewProduction()
logger.Info("handler keuangan")
tableID := utils.GenerateRandomID("tableID")
paginationID := utils.GenerateRandomID("paginationID")
id := c.Param("id")
logger.Info("Params", zap.Any("id", id))
dataTable, totalPage, err := tk.TabKeuanganServices.GetListingDataKeuangan(id, 1, 10)
if err != nil {
defer logger.Sync()
logger.Info("error get list data keuangan", zap.Any("error", err))
return err
}
tablecompo := corporate_mcudetail.TableKeuangan(dataTable, tableID)
pagination := pagination.PaginationV3(
totalPage,
1,
"/corp/dashboard_pic/detail/"+id+"/tabkeuangan/changepage",
paginationID,
"#tableID, #paginationID, #loading-parent, #loading-child, #loading-spinner, #loadingcontent",
"#tabdanpagi",
"outerHTML", "", "",
corporate_mcudetail.BeforeRequestContent(),
corporate_mcudetail.AfterRequestContent(),
)
totalOrder, err := tk.TabKeuanganServices.GetTotalOrderKeuangan(id)
if err != nil {
defer logger.Sync()
logger.Info("error get total order keuangan", zap.Any("error", err))
return err
}
totalBill, err := tk.TabKeuanganServices.GetTotalCardData(id)
if err != nil {
defer logger.Sync()
logger.Info("error get total bill keuangan", zap.Any("error", err))
return err
}
content := corporate_mcudetail.TabKeuanganScreen(
tableID,
paginationID,
corporate_mcudetail.KeuanganCard(
strconv.FormatFloat(totalOrder, 'f', 0, 64),
strconv.FormatFloat(totalBill.TotalTagihan, 'f', 0, 64),
strconv.FormatFloat(totalBill.TotalPelunasan, 'f', 0, 64),
strconv.FormatFloat(totalBill.TotalHutang, 'f', 0, 64),
),
corporate_mcudetail.TableAndPagination(
tablecompo,
pagination,
),
)
return utils.View(c, content)
}
func (tk *TabKeuanganHandler) HandleChangePage(c echo.Context) error {
pageparam := c.QueryParam("page")
tableID := c.QueryParam("tableID")
paginationID := c.QueryParam("paginationID")
id := c.Param("id")
page, err := strconv.Atoi(pageparam)
if err != nil {
return err
}
tableData, totalPage, err := tk.TabKeuanganServices.GetListingDataKeuangan(id, page, 10)
if err != nil {
return err
}
tablecomp := corporate_mcudetail.TableKeuangan(tableData, tableID)
pagination := pagination.PaginationV3(
totalPage,
page,
"/corp/dashboard_pic/detail/"+id+"/tabkeuangan/changepage",
paginationID,
"#tableID, #paginationID, #loading-parent, #loading-child, #loading-spinner, #loadingcontent",
"#tabdanpagi",
"outerHTML", "", "",
corporate_mcudetail.BeforeRequestContent(),
corporate_mcudetail.AfterRequestContent(),
)
tabdanpagi := corporate_mcudetail.TableAndPagination(tablecomp, pagination)
return utils.View(c, tabdanpagi)
}

View File

@@ -131,6 +131,11 @@ func SetupRoutesCorporate(app *echo.Echo, appStore db.AppStore) {
corp.GET("/dashboard_pic/detail/:id/tabdaftarpeserta/changepage", daftarpesertaHandl.HandlePagination)
corp.GET("/dashboard_pic/detail/:id/tabdaftarpeserta/openreport", daftarpesertaHandl.HandleOpenReportDialog)
keuanganService := mcu_corporate_services.NewTabKeuanganServices(appStore)
keuanganHandler := mcu_corporate_handlers.NewTabKeuanganHandler(keuanganService)
corp.GET("/dashboard_pic/detail/:id/tabkeuangan", keuanganHandler.HandleShowTabKeuangan)
corp.GET("/dashboard_pic/detail/:id/tabkeuangan/changepage", keuanganHandler.HandleChangePage)
patienServices := corporate_services.NewPatientServices(appStore)
patientHandler := corporate_handlers.NewPatientHandler(patienServices)
corp.GET("/dashboard_pat", patientHandler.HandleShowPatient)