feat/BE/US-284/TASK-,299-Create API (GET ONE in tab Perhitungan Sapronak)

This commit is contained in:
ragilap
2025-12-08 11:28:32 +07:00
parent 9f239b1840
commit a8434a5246
9 changed files with 1258 additions and 7 deletions
@@ -13,12 +13,16 @@ import (
)
type ClosingController struct {
ClosingService service.ClosingService
ClosingService service.ClosingService
SapronakService service.SapronakService
SapronakFormatter service.SapronakFormatter
}
func NewClosingController(closingService service.ClosingService) *ClosingController {
func NewClosingController(closingService service.ClosingService, sapronakService service.SapronakService, sapronakFormatter service.SapronakFormatter) *ClosingController {
return &ClosingController{
ClosingService: closingService,
ClosingService: closingService,
SapronakService: sapronakService,
SapronakFormatter: sapronakFormatter,
}
}
@@ -123,3 +127,56 @@ func (u *ClosingController) GetPenjualan(c *fiber.Ctx) error {
Data: dto.ToPenjualanRealisasiResponseDTO(projectFlock.Category, uint(projectFlockID), result),
})
}
func (u *ClosingController) GetSapronakByProject(c *fiber.Ctx) error {
param := c.Params("project_flock_id")
projectID, err := strconv.Atoi(param)
if err != nil || projectID <= 0 {
return fiber.NewError(fiber.StatusBadRequest, "Invalid project_flock_id")
}
result, err := u.SapronakService.GetSapronakByProject(c, uint(projectID))
if err != nil {
return err
}
payload := u.SapronakFormatter.ProjectPayload(result)
return c.Status(fiber.StatusOK).
JSON(response.Success{
Code: fiber.StatusOK,
Status: "success",
Message: "Get perhitungan sapronak per project successfully",
Data: payload,
})
}
func (u *ClosingController) GetSapronakByKandang(c *fiber.Ctx) error {
projectParam := c.Params("project_flock_id")
kandangParam := c.Params("project_flock_kandang_id")
projectID, err := strconv.Atoi(projectParam)
if err != nil || projectID <= 0 {
return fiber.NewError(fiber.StatusBadRequest, "Invalid project_flock_id")
}
pfkID, err := strconv.Atoi(kandangParam)
if err != nil || pfkID <= 0 {
return fiber.NewError(fiber.StatusBadRequest, "Invalid project_flock_kandang_id")
}
result, err := u.SapronakService.GetSapronakByKandang(c, uint(projectID), uint(pfkID))
if err != nil {
return err
}
payload := u.SapronakFormatter.KandangPayload(result)
return c.Status(fiber.StatusOK).
JSON(response.Success{
Code: fiber.StatusOK,
Status: "success",
Message: "Get perhitungan sapronak per kandang successfully",
Data: payload,
})
}