diff --git a/internal/modules/production/project_flocks/services/projectflock.service.go b/internal/modules/production/project_flocks/services/projectflock.service.go index e01d3385..7224a691 100644 --- a/internal/modules/production/project_flocks/services/projectflock.service.go +++ b/internal/modules/production/project_flocks/services/projectflock.service.go @@ -52,8 +52,8 @@ type projectflockService struct { } type FlockPeriodSummary struct { - Flock entity.Flock - NextPeriod int + Flock entity.Flock + NextPeriod int } func NewProjectflockService( @@ -720,56 +720,56 @@ func (s projectflockService) GetAvailableDocQuantity(ctx *fiber.Ctx, kandangID u } func (s projectflockService) GetFlockPeriodSummary(c *fiber.Ctx, projectFlockKandangID uint) (*FlockPeriodSummary, error) { - if projectFlockKandangID == 0 { - return nil, fiber.NewError(fiber.StatusBadRequest, "project_flock_kandang_id is required") - } + if projectFlockKandangID == 0 { + return nil, fiber.NewError(fiber.StatusBadRequest, "project_flock_kandang_id is required") + } - pivot, err := s.pivotRepo().GetByID(c.Context(), projectFlockKandangID) - if errors.Is(err, gorm.ErrRecordNotFound) { - return nil, fiber.NewError(fiber.StatusNotFound, "Project flock kandang not found") - } - if err != nil { - s.Log.Errorf("Failed to fetch project_flock_kandang %d: %+v", projectFlockKandangID, err) - return nil, fiber.NewError(fiber.StatusInternalServerError, "Failed to fetch project flock kandang") - } + pivot, err := s.pivotRepo().GetByID(c.Context(), projectFlockKandangID) + if errors.Is(err, gorm.ErrRecordNotFound) { + return nil, fiber.NewError(fiber.StatusNotFound, "Project flock kandang not found") + } + if err != nil { + s.Log.Errorf("Failed to fetch project_flock_kandang %d: %+v", projectFlockKandangID, err) + return nil, fiber.NewError(fiber.StatusInternalServerError, "Failed to fetch project flock kandang") + } - var baseName string - var referenceFlock *entity.Flock - if pivot.ProjectFlock.Id != 0 { - baseName = pfutils.DeriveBaseName(pivot.ProjectFlock.FlockName) - } + var baseName string + var referenceFlock *entity.Flock + if pivot.ProjectFlock.Id != 0 { + baseName = pfutils.DeriveBaseName(pivot.ProjectFlock.FlockName) + } - if strings.TrimSpace(baseName) != "" { - referenceFlock, err = s.FlockRepo.GetByName(c.Context(), baseName) - if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) { - s.Log.Errorf("Failed to fetch flock %q: %+v", baseName, err) - return nil, fiber.NewError(fiber.StatusInternalServerError, "Failed to fetch flock") - } - } + if strings.TrimSpace(baseName) != "" { + referenceFlock, err = s.FlockRepo.GetByName(c.Context(), baseName) + if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) { + s.Log.Errorf("Failed to fetch flock %q: %+v", baseName, err) + return nil, fiber.NewError(fiber.StatusInternalServerError, "Failed to fetch flock") + } + } - if referenceFlock == nil { - referenceFlock = &entity.Flock{Name: pivot.ProjectFlock.FlockName} - } + if referenceFlock == nil { + referenceFlock = &entity.Flock{Name: pivot.ProjectFlock.FlockName} + } - maxPeriod := pivot.ProjectFlock.Period - if strings.TrimSpace(baseName) != "" { - if headerMax, err := s.Repository.GetMaxPeriodByBaseName(c.Context(), baseName); err != nil { - s.Log.Warnf("Unable to compute header period for base %q: %+v", baseName, err) - } else if headerMax > maxPeriod { - maxPeriod = headerMax - } + maxPeriod := pivot.ProjectFlock.Period + if strings.TrimSpace(baseName) != "" { + if headerMax, err := s.Repository.GetMaxPeriodByBaseName(c.Context(), baseName); err != nil { + s.Log.Warnf("Unable to compute header period for base %q: %+v", baseName, err) + } else if headerMax > maxPeriod { + maxPeriod = headerMax + } - if pivotMax, err := s.pivotRepo().MaxPeriodByBaseName(c.Context(), baseName); err != nil { - s.Log.Warnf("Unable to compute pivot period for base %q: %+v", baseName, err) - } else if pivotMax > maxPeriod { - maxPeriod = pivotMax - } - } + if pivotMax, err := s.pivotRepo().MaxPeriodByBaseName(c.Context(), baseName); err != nil { + s.Log.Warnf("Unable to compute pivot period for base %q: %+v", baseName, err) + } else if pivotMax > maxPeriod { + maxPeriod = pivotMax + } + } - return &FlockPeriodSummary{ - Flock: *referenceFlock, - NextPeriod: maxPeriod + 1, - }, nil + return &FlockPeriodSummary{ + Flock: *referenceFlock, + NextPeriod: maxPeriod + 1, + }, nil } func uniqueUintSlice(values []uint) []uint {