Code Duplication    Length = 20-27 lines in 3 locations

plugin/buycourses/src/buy_course_plugin.class.php 3 locations

@@ 853-872 (lines=20) @@
850
     * @param int $paymentType The payment type to filter (default : Paypal)
851
     * @return array The sale list. Otherwise return false
852
     */
853
    public function getSaleListByPaymentType($paymentType = self::PAYMENT_TYPE_PAYPAL)
854
    {
855
        $saleTable = Database::get_main_table(BuyCoursesPlugin::TABLE_SALE);
856
        $currencyTable = Database::get_main_table(BuyCoursesPlugin::TABLE_CURRENCY);
857
        $userTable = Database::get_main_table(TABLE_MAIN_USER);
858
859
        $innerJoins = "
860
            INNER JOIN $currencyTable c ON s.currency_id = c.id
861
            INNER JOIN $userTable u ON s.user_id = u.id
862
        ";
863
864
        return Database::select(
865
            ['c.iso_code', 'u.firstname', 'u.lastname', 's.*'],
866
            "$saleTable s $innerJoins",
867
            [
868
                'where' => ['s.payment_type = ? AND s.status = ?' => [intval($paymentType), self::SALE_STATUS_COMPLETED]],
869
                'order' => 'id DESC'
870
            ]
871
        );
872
    }
873
874
    /**
875
     * Get currency data by ID
@@ 975-994 (lines=20) @@
972
     * @param int $status The status to filter
973
     * @return array The sale list. Otherwise return false
974
     */
975
    public function getSaleListByStatus($status = self::SALE_STATUS_PENDING)
976
    {
977
        $saleTable = Database::get_main_table(BuyCoursesPlugin::TABLE_SALE);
978
        $currencyTable = Database::get_main_table(BuyCoursesPlugin::TABLE_CURRENCY);
979
        $userTable = Database::get_main_table(TABLE_MAIN_USER);
980
981
        $innerJoins = "
982
            INNER JOIN $currencyTable c ON s.currency_id = c.id
983
            INNER JOIN $userTable u ON s.user_id = u.id
984
        ";
985
986
        return Database::select(
987
            ['c.iso_code', 'u.firstname', 'u.lastname', 's.*'],
988
            "$saleTable s $innerJoins",
989
            [
990
                'where' => ['s.status = ?' => intval($status)],
991
                'order' => 'id DESC'
992
            ]
993
        );
994
    }
995
996
    /**
997
     * Get the statuses for sales
@@ 1236-1262 (lines=27) @@
1233
     * @param int $id The user id
1234
     * @return array The sale list. Otherwise return false
1235
     */
1236
    public function getSaleListByUserId($id)
1237
    {
1238
1239
        if (empty($id)) {
1240
            return [];
1241
        }
1242
1243
        $saleTable = Database::get_main_table(BuyCoursesPlugin::TABLE_SALE);
1244
        $currencyTable = Database::get_main_table(BuyCoursesPlugin::TABLE_CURRENCY);
1245
        $userTable = Database::get_main_table(TABLE_MAIN_USER);
1246
1247
        $innerJoins = "
1248
            INNER JOIN $currencyTable c ON s.currency_id = c.id
1249
            INNER JOIN $userTable u ON s.user_id = u.id
1250
        ";
1251
1252
        return Database::select(
1253
            ['c.iso_code', 'u.firstname', 'u.lastname', 's.*'],
1254
            "$saleTable s $innerJoins",
1255
            [
1256
                'where' => [
1257
                    'u.id = ? AND s.status = ?' => [intval($id), BuyCoursesPlugin::SALE_STATUS_COMPLETED]
1258
                ],
1259
                'order' => 'id DESC'
1260
            ]
1261
        );
1262
    }
1263
1264
    /**
1265
     * Convert the course info to array with necessary course data for save item