mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-05-20 13:31:56 +00:00
feat: add more filters
This commit is contained in:
@@ -25,9 +25,10 @@ func NewProductStockController(productStockService service.ProductStockService)
|
|||||||
|
|
||||||
func (u *ProductStockController) GetAll(c *fiber.Ctx) error {
|
func (u *ProductStockController) GetAll(c *fiber.Ctx) error {
|
||||||
query := &validation.Query{
|
query := &validation.Query{
|
||||||
Page: c.QueryInt("page", 1),
|
Page: c.QueryInt("page", 1),
|
||||||
Limit: c.QueryInt("limit", 10),
|
Limit: c.QueryInt("limit", 10),
|
||||||
Search: c.Query("search", ""),
|
Search: c.Query("search", ""),
|
||||||
|
ProductCategoryID: uint(c.QueryInt("product_category_id", 0)),
|
||||||
}
|
}
|
||||||
|
|
||||||
if query.Page < 1 || query.Limit < 1 {
|
if query.Page < 1 || query.Limit < 1 {
|
||||||
|
|||||||
@@ -129,6 +129,9 @@ func (s productStockService) GetAll(c *fiber.Ctx, params *validation.Query) ([]e
|
|||||||
if params.Search != "" {
|
if params.Search != "" {
|
||||||
db = db.Where("products.name ILIKE ?", "%"+params.Search+"%")
|
db = db.Where("products.name ILIKE ?", "%"+params.Search+"%")
|
||||||
}
|
}
|
||||||
|
if params.ProductCategoryID > 0 {
|
||||||
|
db = db.Where("products.product_category_id = ?", params.ProductCategoryID)
|
||||||
|
}
|
||||||
return db.Order("products.created_at DESC").Order("products.updated_at DESC")
|
return db.Order("products.created_at DESC").Order("products.updated_at DESC")
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,8 @@ type Update struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type Query struct {
|
type Query struct {
|
||||||
Page int `query:"page" validate:"omitempty,number,min=1,gt=0"`
|
Page int `query:"page" validate:"omitempty,number,min=1,gt=0"`
|
||||||
Limit int `query:"limit" validate:"omitempty,number,min=1,max=100,gt=0"`
|
Limit int `query:"limit" validate:"omitempty,number,min=1,max=100,gt=0"`
|
||||||
Search string `query:"search" validate:"omitempty,max=50"`
|
Search string `query:"search" validate:"omitempty,max=50"`
|
||||||
|
ProductCategoryID uint `query:"product_category_id" validate:"omitempty"`
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,9 +25,11 @@ func NewTransferController(transferService service.TransferService) *TransferCon
|
|||||||
|
|
||||||
func (u *TransferController) GetAll(c *fiber.Ctx) error {
|
func (u *TransferController) GetAll(c *fiber.Ctx) error {
|
||||||
query := &validation.Query{
|
query := &validation.Query{
|
||||||
Page: c.QueryInt("page", 1),
|
Page: c.QueryInt("page", 1),
|
||||||
Limit: c.QueryInt("limit", 10),
|
Limit: c.QueryInt("limit", 10),
|
||||||
Search: c.Query("search", ""),
|
Search: c.Query("search", ""),
|
||||||
|
ProductID: uint(c.QueryInt("product_id", 0)),
|
||||||
|
WarehouseID: uint(c.QueryInt("warehouse_id", 0)),
|
||||||
}
|
}
|
||||||
|
|
||||||
result, totalResults, err := u.TransferService.GetAll(c, query)
|
result, totalResults, err := u.TransferService.GetAll(c, query)
|
||||||
|
|||||||
@@ -157,6 +157,12 @@ func (s transferService) GetAll(c *fiber.Ctx, params *validation.Query) ([]entit
|
|||||||
Where("movement_number ILIKE ? OR from_warehouses.name ILIKE ? OR to_warehouses.name ILIKE ?",
|
Where("movement_number ILIKE ? OR from_warehouses.name ILIKE ? OR to_warehouses.name ILIKE ?",
|
||||||
searchTerm, searchTerm, searchTerm)
|
searchTerm, searchTerm, searchTerm)
|
||||||
}
|
}
|
||||||
|
if params.ProductID > 0 {
|
||||||
|
db = db.Joins("JOIN stock_transfer_details AS filter_std ON filter_std.stock_transfer_id = stock_transfers.id AND filter_std.deleted_at IS NULL AND filter_std.product_id = ?", params.ProductID)
|
||||||
|
}
|
||||||
|
if params.WarehouseID > 0 {
|
||||||
|
db = db.Where("stock_transfers.from_warehouse_id = ? OR stock_transfers.to_warehouse_id = ?", params.WarehouseID, params.WarehouseID)
|
||||||
|
}
|
||||||
return db.Order("created_at DESC").Order("updated_at DESC")
|
return db.Order("created_at DESC").Order("updated_at DESC")
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -5,9 +5,11 @@ type Create struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type Query struct {
|
type Query struct {
|
||||||
Page int `query:"page" validate:"omitempty,number,min=1"`
|
Page int `query:"page" validate:"omitempty,number,min=1"`
|
||||||
Limit int `query:"limit" validate:"omitempty,number,min=1,max=100"`
|
Limit int `query:"limit" validate:"omitempty,number,min=1,max=100"`
|
||||||
Search string `query:"search" validate:"omitempty,max=50"`
|
Search string `query:"search" validate:"omitempty,max=50"`
|
||||||
|
ProductID uint `query:"product_id" validate:"omitempty"`
|
||||||
|
WarehouseID uint `query:"warehouse_id" validate:"omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type TransferProduct struct {
|
type TransferProduct struct {
|
||||||
|
|||||||
Reference in New Issue
Block a user