mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-05-25 07:45:44 +00:00
[FIX/BE-US] add transfer to laying filter location and area
This commit is contained in:
+21
@@ -52,6 +52,8 @@ type GetAllFilterParams struct {
|
||||
FlockSource []uint
|
||||
FlockDestination []uint
|
||||
Status []string
|
||||
LocationIDs []uint
|
||||
LocationRestrict bool
|
||||
}
|
||||
|
||||
func (r *TransferLayingRepositoryImpl) GetAllWithFilters(ctx context.Context, offset int, limit int, params *GetAllFilterParams) ([]entity.LayingTransfer, int64, error) {
|
||||
@@ -110,6 +112,25 @@ func (r *TransferLayingRepositoryImpl) GetAllWithFilters(ctx context.Context, of
|
||||
}
|
||||
}
|
||||
|
||||
if params.LocationRestrict {
|
||||
if len(params.LocationIDs) == 0 {
|
||||
q = q.Where("1 = 0")
|
||||
} else {
|
||||
q = q.Where(
|
||||
`EXISTS (
|
||||
SELECT 1 FROM project_flocks pf
|
||||
WHERE pf.id = laying_transfers.from_project_flock_id
|
||||
AND pf.location_id IN ?
|
||||
) OR EXISTS (
|
||||
SELECT 1 FROM project_flocks pf
|
||||
WHERE pf.id = laying_transfers.to_project_flock_id
|
||||
AND pf.location_id IN ?
|
||||
)`,
|
||||
params.LocationIDs, params.LocationIDs,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
if err := q.Count(&total).Error; err != nil {
|
||||
return nil, 0, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user