Enhance division filtering in sales pages for better data retrieval
- Updated the division filter logic in CustomerManagementPage, SalesOrderPage, and SalesItemPage to use 'contains' operator for multi-value matching. - This change allows for more flexible filtering of sales items based on the division, improving the accuracy of displayed data. - The division filter now consistently uses the same value across different components, ensuring uniformity in data handling. This commit enhances the functionality of the sales management pages by refining the filtering process, leading to a better user experience in managing sales data.
This commit is contained in:
parent
b1d82a2384
commit
a9e496ce0b
|
|
@ -457,6 +457,8 @@ export default function CustomerManagementPage() {
|
|||
try {
|
||||
const filters: any[] = [];
|
||||
if (itemSearchKeyword) filters.push({ columnName: "item_name", operator: "contains", value: itemSearchKeyword });
|
||||
// 영업관리/판매품 division 필터 (다중값 contains 매칭)
|
||||
filters.push({ columnName: "division", operator: "contains", value: "CAT_ML8ZFVEL_1TOR" });
|
||||
const res = await apiClient.post(`/table-management/tables/item_info/data`, {
|
||||
page: 1, size: 50,
|
||||
dataFilter: filters.length > 0 ? { enabled: true, filters } : undefined,
|
||||
|
|
|
|||
|
|
@ -474,16 +474,9 @@ export default function SalesOrderPage() {
|
|||
if (itemSearchKeyword) {
|
||||
filters.push({ columnName: "item_name", operator: "contains", value: itemSearchKeyword });
|
||||
}
|
||||
// division 필터는 다중값(쉼표 구분)이므로 contains로 부분 매칭
|
||||
if (itemSearchDivision !== "all") {
|
||||
filters.push({ columnName: "division", operator: "equals", value: itemSearchDivision });
|
||||
} else {
|
||||
// 기본: 영업관련 division만 (판매품, 제품, 영업관리 등)
|
||||
const salesDivCodes = (categoryOptions["item_division"] || [])
|
||||
.filter((o) => ["판매품", "제품", "영업관리"].some((label) => o.label.includes(label)))
|
||||
.map((o) => o.code);
|
||||
if (salesDivCodes.length > 0) {
|
||||
filters.push({ columnName: "division", operator: "in", value: salesDivCodes });
|
||||
}
|
||||
filters.push({ columnName: "division", operator: "contains", value: itemSearchDivision });
|
||||
}
|
||||
const res = await apiClient.post(`/table-management/tables/item_info/data`, {
|
||||
page: p, size: s,
|
||||
|
|
|
|||
|
|
@ -166,8 +166,8 @@ export default function SalesItemPage() {
|
|||
try {
|
||||
const filters: { columnName: string; operator: string; value: any }[] = searchFilters.map((f) => ({ columnName: f.columnName, operator: f.operator, value: f.value }));
|
||||
|
||||
// 판매품목 division 필터 (다중값 컬럼이므로 contains로 매칭)
|
||||
filters.push({ columnName: "division", operator: "contains", value: "CAT_DIV_SALES" });
|
||||
// 판매품목/영업관리 division 필터 (다중값 컬럼이므로 contains로 매칭)
|
||||
filters.push({ columnName: "division", operator: "contains", value: "CAT_ML8ZFVEL_1TOR" });
|
||||
|
||||
const res = await apiClient.post(`/table-management/tables/${ITEM_TABLE}/data`, {
|
||||
page: 1, size: 500,
|
||||
|
|
|
|||
|
|
@ -457,6 +457,8 @@ export default function CustomerManagementPage() {
|
|||
try {
|
||||
const filters: any[] = [];
|
||||
if (itemSearchKeyword) filters.push({ columnName: "item_name", operator: "contains", value: itemSearchKeyword });
|
||||
// 영업관리/판매품 division 필터 (다중값 contains 매칭)
|
||||
filters.push({ columnName: "division", operator: "contains", value: "CAT_ML8ZFVEL_1TOR" });
|
||||
const res = await apiClient.post(`/table-management/tables/item_info/data`, {
|
||||
page: 1, size: 50,
|
||||
dataFilter: filters.length > 0 ? { enabled: true, filters } : undefined,
|
||||
|
|
|
|||
|
|
@ -474,16 +474,9 @@ export default function SalesOrderPage() {
|
|||
if (itemSearchKeyword) {
|
||||
filters.push({ columnName: "item_name", operator: "contains", value: itemSearchKeyword });
|
||||
}
|
||||
// division 필터는 다중값(쉼표 구분)이므로 contains로 부분 매칭
|
||||
if (itemSearchDivision !== "all") {
|
||||
filters.push({ columnName: "division", operator: "equals", value: itemSearchDivision });
|
||||
} else {
|
||||
// 기본: 영업관련 division만 (판매품, 제품, 영업관리 등)
|
||||
const salesDivCodes = (categoryOptions["item_division"] || [])
|
||||
.filter((o) => ["판매품", "제품", "영업관리"].some((label) => o.label.includes(label)))
|
||||
.map((o) => o.code);
|
||||
if (salesDivCodes.length > 0) {
|
||||
filters.push({ columnName: "division", operator: "in", value: salesDivCodes });
|
||||
}
|
||||
filters.push({ columnName: "division", operator: "contains", value: itemSearchDivision });
|
||||
}
|
||||
const res = await apiClient.post(`/table-management/tables/item_info/data`, {
|
||||
page: p, size: s,
|
||||
|
|
|
|||
|
|
@ -166,8 +166,8 @@ export default function SalesItemPage() {
|
|||
try {
|
||||
const filters: { columnName: string; operator: string; value: any }[] = searchFilters.map((f) => ({ columnName: f.columnName, operator: f.operator, value: f.value }));
|
||||
|
||||
// 판매품목 division 필터 (다중값 컬럼이므로 contains로 매칭)
|
||||
filters.push({ columnName: "division", operator: "contains", value: "CAT_DIV_SALES" });
|
||||
// 판매품목/영업관리 division 필터 (다중값 컬럼이므로 contains로 매칭)
|
||||
filters.push({ columnName: "division", operator: "contains", value: "CAT_ML8ZFVEL_1TOR" });
|
||||
|
||||
const res = await apiClient.post(`/table-management/tables/${ITEM_TABLE}/data`, {
|
||||
page: 1, size: 500,
|
||||
|
|
|
|||
Loading…
Reference in New Issue