Skip to content

Instantly share code, notes, and snippets.

@Big-Shark
Created December 15, 2015 18:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Big-Shark/999aee1848a5850c1315 to your computer and use it in GitHub Desktop.
Save Big-Shark/999aee1848a5850c1315 to your computer and use it in GitHub Desktop.
$bookings = BookingQuery::create()
            ->leftJoinWithOrder()
            ->useOrderQuery()
                ->leftJoinWithClient()
            ->endUse()
            ->leftJoinWithTransaction()
            ->leftJoinWithUser()
            ->useUserQuery()
                ->joinWithProfile()
            ->endUse()
            ->innerjoinWithProperty()
            ->usePropertyQuery()
                ->leftJoinPropertyManager()
                ->filterByUser($user)
                ->_or()
                ->usePropertyManagerQuery(null, Criteria::LEFT_JOIN)
                    ->filterByUser($user)
                ->endUse()
            ->endUse()
            ->filterByType(Booking::TYPE_SYSTEM, Criteria::NOT_EQUAL)
            ->filterByStatus([
                Booking::STATUS_CLOSED,
                Booking::STATUS_CANCELLED,
                Booking::STATUS_DEPOSIT,
                Booking::STATUS_RECEIPTED
            ])
            ->withColumn(
                'CASE '.BookingTableMap::COL_STATUS.
                ' WHEN \''.Booking::STATUS_RECEIPTED.'\' THEN 1'.
                ' WHEN \''.Booking::STATUS_DEPOSIT.'\' THEN 1'.
                ' ELSE 2'.
                ' END'
                , 'sort1'
            )
            ->withColumn(
                'CASE '.BookingTableMap::COL_STATUS.
                ' WHEN \''.Booking::STATUS_RECEIPTED.'\' THEN '.BookingTableMap::COL_START_DATE.
                ' WHEN \''.Booking::STATUS_DEPOSIT.'\' THEN '.BookingTableMap::COL_START_DATE.
                ' ELSE NOW() - '.BookingTableMap::COL_START_DATE.
                ' END'
                , 'sort2'
            )
            ->orderBy('sort1')
            ->orderBy('sort2')
        ;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment