wms-be/modules/inventory_transaction/query/inventory_transaction_query.go

43 lines
1.2 KiB
Go

package query
import (
"gorm.io/gorm"
)
type InventoryTransactionFilter struct {
TransactionType string `form:"transaction_type"`
ProductID string `form:"product_id"`
AisleID string `form:"aisle_id"`
ClientID string `form:"client_id"`
InvReceiptID string `form:"inv_receipt_id"`
InvIssueID string `form:"inv_issue_id"`
InvMoveID string `form:"inv_move_id"`
PerPage int `form:"per_page"`
Page int `form:"page"`
}
func ApplyInventoryTransactionFilters(db *gorm.DB, filter InventoryTransactionFilter) *gorm.DB {
if filter.TransactionType != "" {
db = db.Where("transaction_type = ?", filter.TransactionType)
}
if filter.ProductID != "" {
db = db.Where("product_id = ?", filter.ProductID)
}
if filter.AisleID != "" {
db = db.Where("aisle_id = ?", filter.AisleID)
}
if filter.ClientID != "" {
db = db.Where("client_id = ?", filter.ClientID)
}
if filter.InvReceiptID != "" {
db = db.Where("inv_receipt_id = ?", filter.InvReceiptID)
}
if filter.InvIssueID != "" {
db = db.Where("inv_issue_id = ?", filter.InvIssueID)
}
if filter.InvMoveID != "" {
db = db.Where("inv_move_id = ?", filter.InvMoveID)
}
return db
}