feat: filter status created and active treated as same
This commit is contained in:
parent
fa8e21166b
commit
af6d915106
6 changed files with 84 additions and 25 deletions
|
|
@ -117,20 +117,28 @@ export class CustomerBranchController extends Controller {
|
|||
@Query() page: number = 1,
|
||||
@Query() pageSize: number = 30,
|
||||
) {
|
||||
const filterStatus = (val?: Status) => {
|
||||
if (!val) return {};
|
||||
|
||||
return val !== Status.CREATED && val !== Status.ACTIVE
|
||||
? { status: val }
|
||||
: { OR: [{ status: Status.CREATED }, { status: Status.ACTIVE }] };
|
||||
};
|
||||
|
||||
const where = {
|
||||
OR: [
|
||||
{ nameEN: { contains: query }, zipCode, status },
|
||||
{ name: { contains: query }, zipCode, status },
|
||||
{ email: { contains: query }, zipCode, status },
|
||||
{ code: { contains: query }, zipCode, status },
|
||||
{ address: { contains: query }, zipCode, status },
|
||||
{ addressEN: { contains: query }, zipCode, status },
|
||||
{ province: { name: { contains: query } }, zipCode, status },
|
||||
{ province: { nameEN: { contains: query } }, zipCode, status },
|
||||
{ district: { name: { contains: query } }, zipCode, status },
|
||||
{ district: { nameEN: { contains: query } }, zipCode, status },
|
||||
{ subDistrict: { name: { contains: query } }, zipCode, status },
|
||||
{ subDistrict: { nameEN: { contains: query } }, zipCode, status },
|
||||
{ nameEN: { contains: query }, zipCode, ...filterStatus(status) },
|
||||
{ name: { contains: query }, zipCode, ...filterStatus(status) },
|
||||
{ email: { contains: query }, zipCode, ...filterStatus(status) },
|
||||
{ code: { contains: query }, zipCode, ...filterStatus(status) },
|
||||
{ address: { contains: query }, zipCode, ...filterStatus(status) },
|
||||
{ addressEN: { contains: query }, zipCode, ...filterStatus(status) },
|
||||
{ province: { name: { contains: query } }, zipCode, ...filterStatus(status) },
|
||||
{ province: { nameEN: { contains: query } }, zipCode, ...filterStatus(status) },
|
||||
{ district: { name: { contains: query } }, zipCode, ...filterStatus(status) },
|
||||
{ district: { nameEN: { contains: query } }, zipCode, ...filterStatus(status) },
|
||||
{ subDistrict: { name: { contains: query } }, zipCode, ...filterStatus(status) },
|
||||
{ subDistrict: { nameEN: { contains: query } }, zipCode, ...filterStatus(status) },
|
||||
{
|
||||
customer: {
|
||||
OR: [{ customerName: { contains: query } }, { customerNameEN: { contains: query } }],
|
||||
|
|
|
|||
|
|
@ -143,10 +143,17 @@ export class CustomerController extends Controller {
|
|||
@Query() pageSize: number = 30,
|
||||
@Query() includeBranch: boolean = false,
|
||||
) {
|
||||
const filterStatus = (val?: Status) => {
|
||||
if (!val) return {};
|
||||
|
||||
return val !== Status.CREATED && val !== Status.ACTIVE
|
||||
? { status: val }
|
||||
: { OR: [{ status: Status.CREATED }, { status: Status.ACTIVE }] };
|
||||
};
|
||||
const where = {
|
||||
OR: [
|
||||
{ customerName: { contains: query }, customerType, status },
|
||||
{ customerNameEN: { contains: query }, customerType, status },
|
||||
{ customerName: { contains: query }, customerType, status, ...filterStatus(status) },
|
||||
{ customerNameEN: { contains: query }, customerType, status, ...filterStatus(status) },
|
||||
],
|
||||
} satisfies Prisma.CustomerWhereInput;
|
||||
|
||||
|
|
|
|||
|
|
@ -234,12 +234,20 @@ export class EmployeeController extends Controller {
|
|||
@Query() page: number = 1,
|
||||
@Query() pageSize: number = 30,
|
||||
) {
|
||||
const filterStatus = (val?: Status) => {
|
||||
if (!val) return {};
|
||||
|
||||
return val !== Status.CREATED && val !== Status.ACTIVE
|
||||
? { status: val }
|
||||
: { OR: [{ status: Status.CREATED }, { status: Status.ACTIVE }] };
|
||||
};
|
||||
|
||||
const where = {
|
||||
OR: [
|
||||
{ firstName: { contains: query }, zipCode, gender, status },
|
||||
{ firstNameEN: { contains: query }, zipCode, gender, status },
|
||||
{ lastName: { contains: query }, zipCode, gender, status },
|
||||
{ lastNameEN: { contains: query }, zipCode, gender, status },
|
||||
{ firstName: { contains: query }, zipCode, gender, ...filterStatus(status) },
|
||||
{ firstNameEN: { contains: query }, zipCode, gender, ...filterStatus(status) },
|
||||
{ lastName: { contains: query }, zipCode, gender, ...filterStatus(status) },
|
||||
{ lastNameEN: { contains: query }, zipCode, gender, ...filterStatus(status) },
|
||||
],
|
||||
} satisfies Prisma.EmployeeWhereInput;
|
||||
|
||||
|
|
|
|||
|
|
@ -41,12 +41,22 @@ export class ProductGroup extends Controller {
|
|||
}
|
||||
|
||||
@Get()
|
||||
async getProductGroup(@Query() query: string = "") {
|
||||
async getProductGroup(@Query() query: string = "", @Query() status?: Status) {
|
||||
const filterStatus = (val?: Status) => {
|
||||
if (!val) return {};
|
||||
|
||||
return val !== Status.CREATED && val !== Status.ACTIVE
|
||||
? { status: val }
|
||||
: { OR: [{ status: Status.CREATED }, { status: Status.ACTIVE }] };
|
||||
};
|
||||
|
||||
const where = {
|
||||
OR: [{ name: { contains: query } }, { detail: { contains: query } }],
|
||||
OR: [
|
||||
{ name: { contains: query }, ...filterStatus(status) },
|
||||
{ detail: { contains: query }, ...filterStatus(status) },
|
||||
],
|
||||
} satisfies Prisma.ProductGroupWhereInput;
|
||||
const result = prisma.productGroup.findMany({ orderBy: { createdAt: "asc" }, where });
|
||||
return result;
|
||||
return prisma.productGroup.findMany({ orderBy: { createdAt: "asc" }, where });
|
||||
}
|
||||
|
||||
@Get("{groupId}")
|
||||
|
|
|
|||
|
|
@ -55,12 +55,24 @@ function imageLocation(id: string) {
|
|||
export class ProductController extends Controller {
|
||||
@Get()
|
||||
async getProduct(
|
||||
@Query() status?: Status,
|
||||
@Query() query: string = "",
|
||||
@Query() page: number = 1,
|
||||
@Query() pageSize: number = 30,
|
||||
) {
|
||||
const filterStatus = (val?: Status) => {
|
||||
if (!val) return {};
|
||||
|
||||
return val !== Status.CREATED && val !== Status.ACTIVE
|
||||
? { status: val }
|
||||
: { OR: [{ status: Status.CREATED }, { status: Status.ACTIVE }] };
|
||||
};
|
||||
|
||||
const where = {
|
||||
OR: [{ name: { contains: query } }, { detail: { contains: query } }],
|
||||
OR: [
|
||||
{ name: { contains: query }, ...filterStatus(status) },
|
||||
{ detail: { contains: query }, ...filterStatus(status) },
|
||||
],
|
||||
} satisfies Prisma.ProductWhereInput;
|
||||
|
||||
const [result, total] = await prisma.$transaction([
|
||||
|
|
|
|||
|
|
@ -43,10 +43,24 @@ export class ProductType extends Controller {
|
|||
}
|
||||
|
||||
@Get()
|
||||
async getProductType(@Query() query: string = "", @Query() productGroupId?: string) {
|
||||
async getProductType(
|
||||
@Query() query: string = "",
|
||||
@Query() productGroupId?: string,
|
||||
@Query() status?: Status,
|
||||
) {
|
||||
const filterStatus = (val?: Status) => {
|
||||
if (!val) return {};
|
||||
|
||||
return val !== Status.CREATED && val !== Status.ACTIVE
|
||||
? { status: val }
|
||||
: { OR: [{ status: Status.CREATED }, { status: Status.ACTIVE }] };
|
||||
};
|
||||
const where = {
|
||||
AND: { productGroupId },
|
||||
OR: [{ name: { contains: query } }, { detail: { contains: query } }],
|
||||
OR: [
|
||||
{ name: { contains: query }, ...filterStatus(status) },
|
||||
{ detail: { contains: query }, ...filterStatus(status) },
|
||||
],
|
||||
} satisfies Prisma.ProductTypeWhereInput;
|
||||
const result = prisma.productType.findMany({ orderBy: { createdAt: "asc" }, where });
|
||||
return result;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue