diff --git a/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php b/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php index faf106f2f..2b73fceed 100644 --- a/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php +++ b/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php @@ -12,6 +12,7 @@ use Anomaly\Streams\Platform\Model\Advs\AdvsAdvsEntryModel; use Visiosoft\AdvsModule\OptionConfiguration\OptionConfigurationModel; use Visiosoft\AdvsModule\Support\Command\Currency; use Visiosoft\CatsModule\Category\Contract\CategoryRepositoryInterface; +use Visiosoft\CustomfieldsModule\CustomField\Contract\CustomFieldRepositoryInterface; use Visiosoft\LocationModule\City\CityModel; use Visiosoft\LocationModule\Country\CountryModel; use Visiosoft\CartsModule\Cart\Command\GetCart; @@ -383,7 +384,25 @@ class AdvModel extends AdvsAdvsEntryModel implements AdvInterface public function customfields() { - return $this->hasMany('Visiosoft\CustomfieldsModule\CustomFieldAdv\CustomFieldAdvModel', 'parent_adv_id', 'id'); + if ($cFs = (array) json_decode($this->cf_json)) { + $cFs = array_keys($cFs); + + $cFIDs = array_map(function ($cF) { + return ltrim($cF, 'cf'); + }, $cFs); + + return app(CustomFieldRepositoryInterface::class) + ->newQuery() + ->whereIn('id', $cFIDs) + ->get(); + } + + return []; + } + + public function cFJSON() + { + return (array) json_decode($this->cf_json); } // public function getCustomFieldEditId($id) { diff --git a/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvInterface.php b/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvInterface.php index 693d69980..105da9504 100644 --- a/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvInterface.php +++ b/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvInterface.php @@ -60,6 +60,8 @@ interface AdvInterface extends EntryInterface public function customfields(); + public function cFJSON(); + public function priceFormat($adv); public function AddAdsDefaultCoverImage($ad); diff --git a/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/AdvsController.php b/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/AdvsController.php index 139a74034..3f0bec60f 100644 --- a/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/AdvsController.php +++ b/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/AdvsController.php @@ -128,18 +128,6 @@ class AdvsController extends AdminController $newAdvOption->save(); } - // Replicate ad custom fields - $advCustomFields = $this->model->is_enabled('customfields'); - if ($advCustomFields) { - $advCustomFields = app('Visiosoft\CustomfieldsModule\CustomFieldAdv\Contract\CustomFieldAdvRepositoryInterface') - ->newQuery()->where('parent_adv_id', $advID)->get(); - foreach ($advCustomFields as $advCustomField) { - $newaAdvCustomField = $advCustomField->replicate(); - $newaAdvCustomField->parent_adv_id = $newAdv->id; - $newaAdvCustomField->save(); - } - } - $this->messages->success(trans('visiosoft.module.advs::message.replicated_success')); }