Guest User

Untitled

a guest
Jun 3rd, 2021
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const where = whereOrdersQuery(filters);
  2.  
  3. const [genericOrders, count] = await this.prisma.$transaction([
  4.     this.prisma.genericOrder.findMany({
  5.         where,
  6.         take,
  7.         skip: (page - 1) * (take ?? constants.PAGE_COUNT)
  8.     }),
  9.     this.prisma.genericOrder.count({ where })
  10. ]);
  11.  
  12. const whereOrdersQuery = (data: Partial<FiltersDto>): Prisma.GenericOrderWhereInput => {
  13.     const { customerName, reference, corlidoReference, draft, dateFrom, dateTo } = data;
  14.  
  15.     let newDateTo: Date | undefined;
  16.     if (dateTo) {
  17.         // Add 1 day and subtract 1 ms so that the dateTo filter will be applied correctly.
  18.         newDateTo = addUnitToDate({ value: 1, unit: 'd', date: new Date(dateTo) });
  19.         newDateTo = subtractUnitFromDate({ value: 1, unit: 'ms', date: newDateTo });
  20.     }
  21.  
  22.     return {
  23.         AND: hasObjectValues(data)
  24.             ? [
  25.                     {
  26.                         buyer:
  27.                             typeof customerName !== 'undefined'
  28.                                 ? {
  29.                                         OR: [
  30.                                             {
  31.                                                 firstName: {
  32.                                                     contains: customerName,
  33.                                                     mode: 'insensitive'
  34.                                                 }
  35.                                             },
  36.                                             {
  37.                                                 lastName: {
  38.                                                     contains: customerName,
  39.                                                     mode: 'insensitive'
  40.                                                 }
  41.                                             }
  42.                                         ]
  43.                                   }
  44.                                 : undefined
  45.                     },
  46.                     {
  47.                         order:
  48.                             typeof corlidoReference !== 'undefined'
  49.                                 ? {
  50.                                         corlidoReference: {
  51.                                             contains: corlidoReference,
  52.                                             mode: 'insensitive'
  53.                                         }
  54.                                   }
  55.                                 : undefined
  56.                     },
  57.                     {
  58.                         draft: {
  59.                             equals: boolOrUndef(draft)
  60.                         }
  61.                     },
  62.                     {
  63.                         reference:
  64.                             typeof reference !== 'undefined'
  65.                                 ? {
  66.                                         contains: reference,
  67.                                         mode: 'insensitive'
  68.                                   }
  69.                                 : undefined
  70.                     },
  71.                     {
  72.                         createdAt:
  73.                             typeof dateFrom !== 'undefined'
  74.                                 ? {
  75.                                         gte: new Date(dateFrom)
  76.                                   }
  77.                                 : undefined
  78.                     },
  79.                     {
  80.                         createdAt:
  81.                             typeof newDateTo !== 'undefined'
  82.                                 ? {
  83.                                         lte: newDateTo
  84.                                   }
  85.                                 : undefined
  86.                     }
  87.               ]
  88.             : undefined
  89.     };
  90. };
  91.  
  92. function boolOrUndef(value: boolean | undefined) {
  93.     if (typeof value === 'boolean') {
  94.         return value;
  95.     }
  96. }
Advertisement
Add Comment
Please, Sign In to add comment