 async getQuotations(req: Request, res: Response, next: NextFunction) {
    try {
      const query: any = req.query;
      const regionCodeOrCodes = await getRegionCodeOrCodes(req.user!);
      const regionalStatusFilter =
        getQuestionnaireRegionalStatusFilter(regionCodeOrCodes);
      const questionnaire = await prisma.questionnaire.findFirst({
        orderBy: [{ startDate: "desc" }],
        where: {
          designatedRole: rolesNum["DATA COLLECTOR"],
          approved: true,
          disabled: false,
          endDate: {
            gte: addDays(new Date(), -5),
          },
          startDate: {
            lte: new Date(),
          },
          isDraft: false,
        },
        include: {
          questionnaireItems: {
            where: {
              disabled: false,
            },
            include: {
              item: {
                include: {
                  translation: true,
                  itemMeasurements: true,
                },
              },
            },
          },
          questionnaireRegionStatus: {
            where: regionalStatusFilter,
          },
        },
      });
      const datacollectors = await prisma.user.findMany({
        where:
          req.user?.role === rolesNum.SUPERVISOR
            ? {
                supervisorId: req.user?.id,
              }
            : { marketplace: { branchCode: req.user?.branchCode } },
      });
      if (
        req.user?.role === rolesNum.SUPERVISOR &&
        (!datacollectors || datacollectors.length < 1)
      ) {
        return res
          .status(httpStatusCodes.NOT_FOUND)
          .json(
            new ResponseJSON(
              "Supervisor is not assigned any data collectors",
              true,
              httpStatusCodes.NOT_FOUND
            )
          );
      }
      if (!questionnaire) {
        return res
          .status(httpStatusCodes.NOT_FOUND)
          .json(
            new ResponseJSON(
              "Not Questionnaires active right now",
              true,
              httpStatusCodes.NOT_FOUND
            )
          );
      }
      const result = await prisma.quotation.findMany({
        where: {
          questionnaireId: questionnaire?.id,
          collectorId: {
            in: datacollectors.map((el) => el.id),
          },
          ...query,
        },
        include: {
          collector: {
            select: {
              fullName: true,
              id: true,
              marketplaceCode: true,
            },
          },
          quotes: {
            include: {
              quoteComments: true,
            },
          },
          unfoundQuotes: {
            include: {
              quoteComments: true,
            },
          },
        },
      });
      return res
        .status(httpStatusCodes.OK)
        .json(new ResponseJSON("Success", false, httpStatusCodes.OK, result));
    } catch (error: any) {
      console.log("Error --- ", error);
      next(
        apiErrorHandler(
          error,
          req,
          errorMessages.INTERNAL_SERVER,
          httpStatusCodes.INTERNAL_SERVER
        )
      );
    }
  } explain the above code