diff --git a/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php b/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php index d1311c2a1..76b6d07d8 100644 --- a/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php +++ b/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php @@ -21,6 +21,7 @@ use Visiosoft\AdvsModule\Adv\Event\viewAd; use Visiosoft\AdvsModule\Adv\Form\AdvFormBuilder; use Visiosoft\AdvsModule\Option\Contract\OptionRepositoryInterface; use Visiosoft\AdvsModule\OptionConfiguration\Contract\OptionConfigurationRepositoryInterface; +use Visiosoft\AdvsModule\OptionConfiguration\OptionConfigurationModel; use Visiosoft\AdvsModule\Productoption\Contract\ProductoptionRepositoryInterface; use Visiosoft\AdvsModule\ProductoptionsValue\Contract\ProductoptionsValueRepositoryInterface; use Visiosoft\AlgoliaModule\Search\SearchModel; @@ -1241,10 +1242,15 @@ class AdvsController extends PublicController $quantity = $request->quantity; $id = $request->id; $type = $request->type; - $advmodel = new AdvModel(); - $adv = $advmodel->getAdv($id); - - $status = $advmodel->stockControl($id, $quantity); + if ($request->dataType === 'ad-configuration') { + $optionConf = new OptionConfigurationModel(); + $adv = $optionConf->newQuery()->find($id); + $status = $adv->stockControl($id, $quantity); + } else { + $advmodel = new AdvModel(); + $adv = $advmodel->getAdv($id); + $status = $advmodel->stockControl($id, $quantity); + } $response = array(); if ($status == 1) { diff --git a/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationModel.php b/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationModel.php index c7153d80d..9e54d6752 100644 --- a/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationModel.php +++ b/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationModel.php @@ -1,10 +1,8 @@ name . ' | ' . trim($option_group_value, ' '); } } + + public function stockControl($id, $quantity) + { + $conf = $this->newQuery()->find($id); + $stock = $conf->stock; + + if ($stock === NULL || $stock === 0) { + return 0; + } + + if ($stock < $quantity) { + return 0; + } + + return 1; + } }