mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-05-20 13:31:56 +00:00
Merge branch 'development' into 'production'
Development See merge request mbugroup/lti-api!374
This commit is contained in:
@@ -318,6 +318,7 @@ func (u *ProjectflockController) LookupProjectFlockKandang(c *fiber.Ctx) error {
|
||||
dtoResult.IsTransition = isTransition
|
||||
dtoResult.IsLaying = isLaying
|
||||
}
|
||||
applyCutOverLayingLookupOverride(&dtoResult)
|
||||
if withPopulation {
|
||||
population := dtoResult.AvailableQuantity
|
||||
dtoResult.Population = &population
|
||||
@@ -344,6 +345,20 @@ func (u *ProjectflockController) LookupProjectFlockKandang(c *fiber.Ctx) error {
|
||||
Data: dtoResult})
|
||||
}
|
||||
|
||||
func applyCutOverLayingLookupOverride(result *dto.ProjectFlockKandangDTO) {
|
||||
if result == nil || result.ProjectFlock == nil || result.IsLaying || result.ChickInDate == nil {
|
||||
return
|
||||
}
|
||||
|
||||
category := strings.ToUpper(strings.TrimSpace(result.ProjectFlock.Category))
|
||||
if category != strings.ToUpper(string(utils.ProjectFlockCategoryLaying)) {
|
||||
return
|
||||
}
|
||||
|
||||
result.IsTransition = false
|
||||
result.IsLaying = true
|
||||
}
|
||||
|
||||
func (u *ProjectflockController) Resubmit(c *fiber.Ctx) error {
|
||||
param := c.Params("id")
|
||||
req := new(validation.Resubmit)
|
||||
|
||||
+60
@@ -0,0 +1,60 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"gitlab.com/mbugroup/lti-api.git/internal/modules/production/project_flocks/dto"
|
||||
)
|
||||
|
||||
func TestApplyCutOverLayingLookupOverride(t *testing.T) {
|
||||
t.Run("marks direct cut-over laying flock as laying", func(t *testing.T) {
|
||||
chickinDate := time.Date(2025, time.August, 15, 0, 0, 0, 0, time.UTC)
|
||||
result := &dto.ProjectFlockKandangDTO{
|
||||
ChickInDate: &chickinDate,
|
||||
ProjectFlock: &dto.ProjectFlockWithPivotDTO{
|
||||
Category: "LAYING",
|
||||
},
|
||||
}
|
||||
|
||||
applyCutOverLayingLookupOverride(result)
|
||||
|
||||
if !result.IsLaying {
|
||||
t.Fatalf("expected cut-over laying flock to be exposed as laying")
|
||||
}
|
||||
if result.IsTransition {
|
||||
t.Fatalf("expected cut-over laying flock to stay out of transition")
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("keeps transfer-based state when chickin is absent", func(t *testing.T) {
|
||||
result := &dto.ProjectFlockKandangDTO{
|
||||
ProjectFlock: &dto.ProjectFlockWithPivotDTO{
|
||||
Category: "LAYING",
|
||||
},
|
||||
}
|
||||
|
||||
applyCutOverLayingLookupOverride(result)
|
||||
|
||||
if result.IsLaying {
|
||||
t.Fatalf("expected lookup override to skip non cut-over laying flocks")
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("does not change already laying lookup state", func(t *testing.T) {
|
||||
chickinDate := time.Date(2025, time.August, 15, 0, 0, 0, 0, time.UTC)
|
||||
result := &dto.ProjectFlockKandangDTO{
|
||||
IsLaying: true,
|
||||
ChickInDate: &chickinDate,
|
||||
ProjectFlock: &dto.ProjectFlockWithPivotDTO{
|
||||
Category: "LAYING",
|
||||
},
|
||||
}
|
||||
|
||||
applyCutOverLayingLookupOverride(result)
|
||||
|
||||
if !result.IsLaying {
|
||||
t.Fatalf("expected laying state to remain true")
|
||||
}
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user