import { Repository } from "typeorm"; import { IPropsLocalReserve } from "../interfaces"; export async function getLocalReservesInformation( repository: Repository, { globalFilter, date, status, zone, local }: IPropsLocalReserve ) { try { const queryBuilder = repository.createQueryBuilder("local_reserves"); if (globalFilter) { const globalValue = `%${globalFilter.toLowerCase()}%`; queryBuilder.andWhere( "(LOWER(local_reserves.code) LIKE :globalValue OR local_reserves.user_document LIKE :globalValue OR LOWER(local_reserves.user_name) LIKE :globalValue OR local_reserves.user_phone LIKE :globalValue OR LOWER(local_reserves.user_email) LIKE :globalValue)", { globalValue } ); } if (date) { queryBuilder.andWhere("local_reserves.date = :date", { date }); } if (status) { queryBuilder.andWhere("local_reserves.status = :status", { status }); } if (local) { queryBuilder.andWhere("local_reserves.local_table_zone_local = :local", { local, }); } if (zone) { queryBuilder.andWhere("local_reserves.zone = :zone", { zone }); } // DOC: Ejecutar la consulta const [discountsCodeUser, totalRecords] = await queryBuilder.getManyAndCount(); return { data: discountsCodeUser, totalRecords, }; } catch (error) { console.log(error, "error getLocalReservesInformation"); return { data: [], totalRecords: 0, }; } }