From dbd2ab3db63621fa47cc21c3e7b0ffb5e62d1630 Mon Sep 17 00:00:00 2001 From: Muammer Top Date: Thu, 8 Oct 2020 13:18:04 +0300 Subject: [PATCH 01/10] =?UTF-8?q?#1767=20[users]=20Admin=20listelemede=20m?= =?UTF-8?q?=C3=BC=C5=9Fteri=20ad=C4=B1=20yazm=C4=B1yor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../defaultadmin-theme/src/Listener/AddGsmFilter.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/addons/default/visiosoft/defaultadmin-theme/src/Listener/AddGsmFilter.php b/addons/default/visiosoft/defaultadmin-theme/src/Listener/AddGsmFilter.php index ffbb8ca40..4a28db2fb 100644 --- a/addons/default/visiosoft/defaultadmin-theme/src/Listener/AddGsmFilter.php +++ b/addons/default/visiosoft/defaultadmin-theme/src/Listener/AddGsmFilter.php @@ -51,6 +51,8 @@ class AddGsmFilter $builder->getTable()->addFilter($filter); $builder->setColumns([ + 'first_name', + 'last_name', 'email', 'gsm_phone', 'created_at' => [ @@ -68,7 +70,11 @@ class AddGsmFilter ]); $collection = new Collection(); - $header_email = new Header(); + $header_firstname = new Header(); + $header_firstname = $header_firstname->setBuilder($builder)->setHeading('anomaly.module.users::field.first_name.name'); + $header_lastname = new Header(); + $header_lastname = $header_lastname->setBuilder($builder)->setHeading('anomaly.module.users::field.last_name.name'); + $header_email = new Header(); $header_email = $header_email->setBuilder($builder)->setHeading('anomaly.module.users::field.email.name')->setSortable(true)->setSortColumn('email'); $header_phone = new Header(); $header_gsm_phone = $header_phone->setBuilder($builder)->setHeading('visiosoft.module.profile::field.gsm_phone.name'); @@ -77,6 +83,8 @@ class AddGsmFilter $header_status = new Header(); $header_status = $header_status->setBuilder($builder)->setHeading('anomaly.module.users::field.status.name'); + $collection = $collection->add($header_firstname); + $collection = $collection->add($header_lastname); $collection = $collection->add($header_email); $collection = $collection->add($header_gsm_phone); $collection = $collection->add($header_created_at); From 0a48d09668c1bd205b73b8c9bce87a376d0e7f7b Mon Sep 17 00:00:00 2001 From: Muammer Top Date: Mon, 19 Oct 2020 18:34:53 +0300 Subject: [PATCH 02/10] product options created - first commit --- .../factories/OptionConfigurationFactory.php | 10 +++ .../factories/OptionsConfigurationFactory.php | 10 +++ .../factories/ProductoptionFactory.php | 10 +++ .../factories/ProductoptionsValueFactory.php | 10 +++ ...ule.advs__create_productoptions_stream.php | 47 +++++++++++++ ...vs__create_productoptions_value_stream.php | 56 +++++++++++++++ ...osoft.module.advs__added_options_field.php | 48 +++++++++++++ ...vs__create_option_configuration_stream.php | 58 ++++++++++++++++ .../resources/config/permissions.php | 25 +++++++ .../advs-module/resources/lang/en/button.php | 7 +- .../advs-module/resources/lang/en/field.php | 6 ++ .../resources/lang/en/permission.php | 40 +++++++++++ .../advs-module/resources/lang/en/section.php | 15 ++++ .../advs-module/resources/lang/en/stream.php | 15 ++++ .../resources/views/new-ad/new-create.twig | 9 +++ .../advs-module/src/Adv/AdvModel.php | 5 ++ .../src/Adv/Contract/AdvInterface.php | 2 + .../src/Adv/Form/AdvFormBuilder.php | 3 +- .../visiosoft/advs-module/src/AdvsModule.php | 17 ++++- .../src/AdvsModuleServiceProvider.php | 19 ++++++ .../Http/Controller/Admin/AdvsController.php | 4 ++ .../Admin/OptionConfigurationController.php | 32 +++++++++ .../Admin/ProductoptionsController.php | 43 ++++++++++++ .../Admin/ProductoptionsValueController.php | 43 ++++++++++++ .../Contract/OptionConfigurationInterface.php | 8 +++ ...OptionConfigurationRepositoryInterface.php | 8 +++ .../Form/OptionConfigurationFormBuilder.php | 7 ++ .../Form/OptionConfigurationFormFields.php | 40 +++++++++++ .../Form/OptionConfigurationFormHandler.php | 35 ++++++++++ .../OptionConfigurationCollection.php | 8 +++ .../OptionConfigurationCriteria.php | 8 +++ .../OptionConfigurationModel.php | 9 +++ .../OptionConfigurationObserver.php | 8 +++ .../OptionConfigurationPresenter.php | 8 +++ .../OptionConfigurationRepository.php | 36 ++++++++++ .../OptionConfigurationRouter.php | 8 +++ .../OptionConfigurationSeeder.php | 15 ++++ .../Table/OptionConfigurationTableBuilder.php | 10 +++ .../Table/OptionConfigurationTableColumns.php | 49 +++++++++++++ .../Contract/ProductoptionInterface.php | 8 +++ .../ProductoptionRepositoryInterface.php | 8 +++ .../Form/ProductoptionFormBuilder.php | 68 +++++++++++++++++++ .../Productoption/ProductoptionCollection.php | 8 +++ .../Productoption/ProductoptionCriteria.php | 8 +++ .../src/Productoption/ProductoptionModel.php | 12 ++++ .../Productoption/ProductoptionObserver.php | 8 +++ .../Productoption/ProductoptionPresenter.php | 8 +++ .../Productoption/ProductoptionRepository.php | 25 +++++++ .../src/Productoption/ProductoptionRouter.php | 8 +++ .../src/Productoption/ProductoptionSeeder.php | 15 ++++ .../Table/ProductoptionTableBuilder.php | 61 +++++++++++++++++ .../Contract/ProductoptionsValueInterface.php | 8 +++ ...ProductoptionsValueRepositoryInterface.php | 8 +++ .../Form/ProductoptionsValueFormBuilder.php | 68 +++++++++++++++++++ .../ProductoptionsValueCollection.php | 8 +++ .../ProductoptionsValueCriteria.php | 8 +++ .../ProductoptionsValueModel.php | 9 +++ .../ProductoptionsValueObserver.php | 8 +++ .../ProductoptionsValuePresenter.php | 8 +++ .../ProductoptionsValueRepository.php | 25 +++++++ .../ProductoptionsValueRouter.php | 8 +++ .../ProductoptionsValueSeeder.php | 15 ++++ .../MultipleFieldType/LookupTableBuilder.php | 25 +++++++ .../SelectedTableBuilder.php | 21 ++++++ .../MultipleFieldType/ValueTableBuilder.php | 21 ++++++ .../Table/ProductoptionsValueTableBuilder.php | 68 +++++++++++++++++++ .../OptionConfigurationFormBuilderTest.php | 8 +++ .../OptionConfigurationCollectionTest.php | 8 +++ .../OptionConfigurationCriteriaTest.php | 8 +++ .../OptionConfigurationModelTest.php | 8 +++ .../OptionConfigurationObserverTest.php | 8 +++ .../OptionConfigurationPresenterTest.php | 8 +++ .../OptionConfigurationRepositoryTest.php | 8 +++ .../OptionConfigurationRouterTest.php | 8 +++ .../OptionConfigurationSeederTest.php | 8 +++ .../OptionConfigurationTableBuilderTest.php | 8 +++ .../OptionsConfigurationFormBuilderTest.php | 8 +++ .../OptionsConfigurationCollectionTest.php | 8 +++ .../OptionsConfigurationCriteriaTest.php | 8 +++ .../OptionsConfigurationModelTest.php | 8 +++ .../OptionsConfigurationObserverTest.php | 8 +++ .../OptionsConfigurationPresenterTest.php | 8 +++ .../OptionsConfigurationRepositoryTest.php | 8 +++ .../OptionsConfigurationRouterTest.php | 8 +++ .../OptionsConfigurationSeederTest.php | 8 +++ .../OptionsConfigurationTableBuilderTest.php | 8 +++ .../Form/ProductoptionFormBuilderTest.php | 8 +++ .../ProductoptionCollectionTest.php | 8 +++ .../ProductoptionCriteriaTest.php | 8 +++ .../Productoption/ProductoptionModelTest.php | 8 +++ .../ProductoptionObserverTest.php | 8 +++ .../ProductoptionPresenterTest.php | 8 +++ .../ProductoptionRepositoryTest.php | 8 +++ .../Productoption/ProductoptionRouterTest.php | 8 +++ .../Productoption/ProductoptionSeederTest.php | 8 +++ .../Table/ProductoptionTableBuilderTest.php | 8 +++ .../ProductoptionsValueFormBuilderTest.php | 8 +++ .../ProductoptionsValueCollectionTest.php | 8 +++ .../ProductoptionsValueCriteriaTest.php | 8 +++ .../ProductoptionsValueModelTest.php | 8 +++ .../ProductoptionsValueObserverTest.php | 8 +++ .../ProductoptionsValuePresenterTest.php | 8 +++ .../ProductoptionsValueRepositoryTest.php | 8 +++ .../ProductoptionsValueRouterTest.php | 8 +++ .../ProductoptionsValueSeederTest.php | 8 +++ .../ProductoptionsValueTableBuilderTest.php | 8 +++ 106 files changed, 1652 insertions(+), 4 deletions(-) create mode 100644 addons/default/visiosoft/advs-module/factories/OptionConfigurationFactory.php create mode 100644 addons/default/visiosoft/advs-module/factories/OptionsConfigurationFactory.php create mode 100644 addons/default/visiosoft/advs-module/factories/ProductoptionFactory.php create mode 100644 addons/default/visiosoft/advs-module/factories/ProductoptionsValueFactory.php create mode 100644 addons/default/visiosoft/advs-module/migrations/2020_10_15_130044_visiosoft.module.advs__create_productoptions_stream.php create mode 100644 addons/default/visiosoft/advs-module/migrations/2020_10_15_131614_visiosoft.module.advs__create_productoptions_value_stream.php create mode 100644 addons/default/visiosoft/advs-module/migrations/2020_10_16_082339_visiosoft.module.advs__added_options_field.php create mode 100644 addons/default/visiosoft/advs-module/migrations/2020_10_16_124151_visiosoft.module.advs__create_option_configuration_stream.php create mode 100644 addons/default/visiosoft/advs-module/src/Http/Controller/Admin/OptionConfigurationController.php create mode 100644 addons/default/visiosoft/advs-module/src/Http/Controller/Admin/ProductoptionsController.php create mode 100644 addons/default/visiosoft/advs-module/src/Http/Controller/Admin/ProductoptionsValueController.php create mode 100644 addons/default/visiosoft/advs-module/src/OptionConfiguration/Contract/OptionConfigurationInterface.php create mode 100644 addons/default/visiosoft/advs-module/src/OptionConfiguration/Contract/OptionConfigurationRepositoryInterface.php create mode 100644 addons/default/visiosoft/advs-module/src/OptionConfiguration/Form/OptionConfigurationFormBuilder.php create mode 100644 addons/default/visiosoft/advs-module/src/OptionConfiguration/Form/OptionConfigurationFormFields.php create mode 100644 addons/default/visiosoft/advs-module/src/OptionConfiguration/Form/OptionConfigurationFormHandler.php create mode 100644 addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationCollection.php create mode 100644 addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationCriteria.php create mode 100644 addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationModel.php create mode 100644 addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationObserver.php create mode 100644 addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationPresenter.php create mode 100644 addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationRepository.php create mode 100644 addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationRouter.php create mode 100644 addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationSeeder.php create mode 100644 addons/default/visiosoft/advs-module/src/OptionConfiguration/Table/OptionConfigurationTableBuilder.php create mode 100644 addons/default/visiosoft/advs-module/src/OptionConfiguration/Table/OptionConfigurationTableColumns.php create mode 100644 addons/default/visiosoft/advs-module/src/Productoption/Contract/ProductoptionInterface.php create mode 100644 addons/default/visiosoft/advs-module/src/Productoption/Contract/ProductoptionRepositoryInterface.php create mode 100644 addons/default/visiosoft/advs-module/src/Productoption/Form/ProductoptionFormBuilder.php create mode 100644 addons/default/visiosoft/advs-module/src/Productoption/ProductoptionCollection.php create mode 100644 addons/default/visiosoft/advs-module/src/Productoption/ProductoptionCriteria.php create mode 100644 addons/default/visiosoft/advs-module/src/Productoption/ProductoptionModel.php create mode 100644 addons/default/visiosoft/advs-module/src/Productoption/ProductoptionObserver.php create mode 100644 addons/default/visiosoft/advs-module/src/Productoption/ProductoptionPresenter.php create mode 100644 addons/default/visiosoft/advs-module/src/Productoption/ProductoptionRepository.php create mode 100644 addons/default/visiosoft/advs-module/src/Productoption/ProductoptionRouter.php create mode 100644 addons/default/visiosoft/advs-module/src/Productoption/ProductoptionSeeder.php create mode 100644 addons/default/visiosoft/advs-module/src/Productoption/Table/ProductoptionTableBuilder.php create mode 100644 addons/default/visiosoft/advs-module/src/ProductoptionsValue/Contract/ProductoptionsValueInterface.php create mode 100644 addons/default/visiosoft/advs-module/src/ProductoptionsValue/Contract/ProductoptionsValueRepositoryInterface.php create mode 100644 addons/default/visiosoft/advs-module/src/ProductoptionsValue/Form/ProductoptionsValueFormBuilder.php create mode 100644 addons/default/visiosoft/advs-module/src/ProductoptionsValue/ProductoptionsValueCollection.php create mode 100644 addons/default/visiosoft/advs-module/src/ProductoptionsValue/ProductoptionsValueCriteria.php create mode 100644 addons/default/visiosoft/advs-module/src/ProductoptionsValue/ProductoptionsValueModel.php create mode 100644 addons/default/visiosoft/advs-module/src/ProductoptionsValue/ProductoptionsValueObserver.php create mode 100644 addons/default/visiosoft/advs-module/src/ProductoptionsValue/ProductoptionsValuePresenter.php create mode 100644 addons/default/visiosoft/advs-module/src/ProductoptionsValue/ProductoptionsValueRepository.php create mode 100644 addons/default/visiosoft/advs-module/src/ProductoptionsValue/ProductoptionsValueRouter.php create mode 100644 addons/default/visiosoft/advs-module/src/ProductoptionsValue/ProductoptionsValueSeeder.php create mode 100644 addons/default/visiosoft/advs-module/src/ProductoptionsValue/Support/MultipleFieldType/LookupTableBuilder.php create mode 100644 addons/default/visiosoft/advs-module/src/ProductoptionsValue/Support/MultipleFieldType/SelectedTableBuilder.php create mode 100644 addons/default/visiosoft/advs-module/src/ProductoptionsValue/Support/MultipleFieldType/ValueTableBuilder.php create mode 100644 addons/default/visiosoft/advs-module/src/ProductoptionsValue/Table/ProductoptionsValueTableBuilder.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionConfiguration/Form/OptionConfigurationFormBuilderTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionConfiguration/OptionConfigurationCollectionTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionConfiguration/OptionConfigurationCriteriaTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionConfiguration/OptionConfigurationModelTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionConfiguration/OptionConfigurationObserverTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionConfiguration/OptionConfigurationPresenterTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionConfiguration/OptionConfigurationRepositoryTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionConfiguration/OptionConfigurationRouterTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionConfiguration/OptionConfigurationSeederTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionConfiguration/Table/OptionConfigurationTableBuilderTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionsConfiguration/Form/OptionsConfigurationFormBuilderTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionsConfiguration/OptionsConfigurationCollectionTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionsConfiguration/OptionsConfigurationCriteriaTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionsConfiguration/OptionsConfigurationModelTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionsConfiguration/OptionsConfigurationObserverTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionsConfiguration/OptionsConfigurationPresenterTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionsConfiguration/OptionsConfigurationRepositoryTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionsConfiguration/OptionsConfigurationRouterTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionsConfiguration/OptionsConfigurationSeederTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionsConfiguration/Table/OptionsConfigurationTableBuilderTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/Productoption/Form/ProductoptionFormBuilderTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/Productoption/ProductoptionCollectionTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/Productoption/ProductoptionCriteriaTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/Productoption/ProductoptionModelTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/Productoption/ProductoptionObserverTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/Productoption/ProductoptionPresenterTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/Productoption/ProductoptionRepositoryTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/Productoption/ProductoptionRouterTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/Productoption/ProductoptionSeederTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/Productoption/Table/ProductoptionTableBuilderTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/ProductoptionsValue/Form/ProductoptionsValueFormBuilderTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/ProductoptionsValue/ProductoptionsValueCollectionTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/ProductoptionsValue/ProductoptionsValueCriteriaTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/ProductoptionsValue/ProductoptionsValueModelTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/ProductoptionsValue/ProductoptionsValueObserverTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/ProductoptionsValue/ProductoptionsValuePresenterTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/ProductoptionsValue/ProductoptionsValueRepositoryTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/ProductoptionsValue/ProductoptionsValueRouterTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/ProductoptionsValue/ProductoptionsValueSeederTest.php create mode 100644 addons/default/visiosoft/advs-module/tests/Unit/ProductoptionsValue/Table/ProductoptionsValueTableBuilderTest.php diff --git a/addons/default/visiosoft/advs-module/factories/OptionConfigurationFactory.php b/addons/default/visiosoft/advs-module/factories/OptionConfigurationFactory.php new file mode 100644 index 000000000..86a320aa0 --- /dev/null +++ b/addons/default/visiosoft/advs-module/factories/OptionConfigurationFactory.php @@ -0,0 +1,10 @@ +define( + Visiosoft\AdvsModule\OptionConfiguration\OptionConfigurationModel::class, + function (Faker\Generator $faker) { + return [ + //'title' => $faker->words(2), + ]; + } +); diff --git a/addons/default/visiosoft/advs-module/factories/OptionsConfigurationFactory.php b/addons/default/visiosoft/advs-module/factories/OptionsConfigurationFactory.php new file mode 100644 index 000000000..b6bbb136f --- /dev/null +++ b/addons/default/visiosoft/advs-module/factories/OptionsConfigurationFactory.php @@ -0,0 +1,10 @@ +define( + Visiosoft\AdvsModule\OptionsConfiguration\OptionsConfigurationModel::class, + function (Faker\Generator $faker) { + return [ + //'title' => $faker->words(2), + ]; + } +); diff --git a/addons/default/visiosoft/advs-module/factories/ProductoptionFactory.php b/addons/default/visiosoft/advs-module/factories/ProductoptionFactory.php new file mode 100644 index 000000000..7a1bc3379 --- /dev/null +++ b/addons/default/visiosoft/advs-module/factories/ProductoptionFactory.php @@ -0,0 +1,10 @@ +define( + Visiosoft\AdvsModule\Productoption\ProductoptionModel::class, + function (Faker\Generator $faker) { + return [ + //'title' => $faker->words(2), + ]; + } +); diff --git a/addons/default/visiosoft/advs-module/factories/ProductoptionsValueFactory.php b/addons/default/visiosoft/advs-module/factories/ProductoptionsValueFactory.php new file mode 100644 index 000000000..bdfb8e393 --- /dev/null +++ b/addons/default/visiosoft/advs-module/factories/ProductoptionsValueFactory.php @@ -0,0 +1,10 @@ +define( + Visiosoft\AdvsModule\ProductoptionsValue\ProductoptionsValueModel::class, + function (Faker\Generator $faker) { + return [ + //'title' => $faker->words(2), + ]; + } +); diff --git a/addons/default/visiosoft/advs-module/migrations/2020_10_15_130044_visiosoft.module.advs__create_productoptions_stream.php b/addons/default/visiosoft/advs-module/migrations/2020_10_15_130044_visiosoft.module.advs__create_productoptions_stream.php new file mode 100644 index 000000000..a8bdf8a7f --- /dev/null +++ b/addons/default/visiosoft/advs-module/migrations/2020_10_15_130044_visiosoft.module.advs__create_productoptions_stream.php @@ -0,0 +1,47 @@ + 'anomaly.field_type.select', + ]; + /** + * The stream definition. + * + * @var array + */ + protected $stream = [ + 'slug' => 'productoptions', + 'title_column' => 'name', + 'translatable' => true, + 'versionable' => false, + 'trashable' => true, + 'searchable' => false, + 'sortable' => false, + ]; + + /** + * The stream assignments. + * + * @var array + */ + protected $assignments = [ + 'categories', + 'name' => [ + 'translatable' => true, + 'required' => true, + ], + ]; +} diff --git a/addons/default/visiosoft/advs-module/migrations/2020_10_15_131614_visiosoft.module.advs__create_productoptions_value_stream.php b/addons/default/visiosoft/advs-module/migrations/2020_10_15_131614_visiosoft.module.advs__create_productoptions_value_stream.php new file mode 100644 index 000000000..47fff9601 --- /dev/null +++ b/addons/default/visiosoft/advs-module/migrations/2020_10_15_131614_visiosoft.module.advs__create_productoptions_value_stream.php @@ -0,0 +1,56 @@ + [ + 'type' => 'anomaly.field_type.relationship', + 'config' => [ + 'related' => ProductoptionModel::class, + ], + ] + ]; + + /** + * The stream definition. + * + * @var array + */ + protected $stream = [ + 'slug' => 'productoptions_value', + 'title_column' => 'name', + 'translatable' => true, + 'versionable' => false, + 'trashable' => true, + 'searchable' => false, + 'sortable' => false, + ]; + + /** + * The stream assignments. + * + * @var array + */ + protected $assignments = [ + 'name' => [ + 'translatable' => true, + 'required' => true, + ], + 'product_option' => [ + 'required' => true, + ], + ]; +} diff --git a/addons/default/visiosoft/advs-module/migrations/2020_10_16_082339_visiosoft.module.advs__added_options_field.php b/addons/default/visiosoft/advs-module/migrations/2020_10_16_082339_visiosoft.module.advs__added_options_field.php new file mode 100644 index 000000000..d00e201c7 --- /dev/null +++ b/addons/default/visiosoft/advs-module/migrations/2020_10_16_082339_visiosoft.module.advs__added_options_field.php @@ -0,0 +1,48 @@ + 'advs', + ]; + + /** + * The addon fields. + * + * @var array + */ + protected $fields = [ + 'product_options_value' => [ + 'type' => 'anomaly.field_type.multiple', + 'config' => [ + 'mode' => 'lookup', + 'related' => \Visiosoft\AdvsModule\ProductoptionsValue\ProductoptionsValueModel::class, + ], + ] + ]; + + /** + * The field's assignment. + * + * @var array + */ + protected $assignments = [ + 'product_options_value', + ]; +} diff --git a/addons/default/visiosoft/advs-module/migrations/2020_10_16_124151_visiosoft.module.advs__create_option_configuration_stream.php b/addons/default/visiosoft/advs-module/migrations/2020_10_16_124151_visiosoft.module.advs__create_option_configuration_stream.php new file mode 100644 index 000000000..b42c31acf --- /dev/null +++ b/addons/default/visiosoft/advs-module/migrations/2020_10_16_124151_visiosoft.module.advs__create_option_configuration_stream.php @@ -0,0 +1,58 @@ + 'visiosoft.field_type.json', + ]; + + /** + * The stream definition. + * + * @var array + */ + protected $stream = [ + 'slug' => 'option_configuration', + 'title_column' => 'option_json', + 'translatable' => false, + 'versionable' => false, + 'trashable' => false, + 'searchable' => false, + 'sortable' => false, + ]; + + /** + * The stream assignments. + * + * @var array + */ + protected $assignments = [ + 'parent_adv' => [ + 'required' => true, + ], + 'price' => [ + 'required' => true, + ], + 'currency' => [ + 'required' => true, + ], + 'stock' => [ + 'required' => true, + ], + 'option_json' => [ + 'required' => true, + ], + ]; + +} diff --git a/addons/default/visiosoft/advs-module/resources/config/permissions.php b/addons/default/visiosoft/advs-module/resources/config/permissions.php index eae0b67cd..cead467e5 100644 --- a/addons/default/visiosoft/advs-module/resources/config/permissions.php +++ b/addons/default/visiosoft/advs-module/resources/config/permissions.php @@ -21,4 +21,29 @@ return [ 'write', 'delete', ], + 'productoptions' => [ + 'read', + 'write', + 'delete', + ], + 'productoptions_value' => [ + 'read', + 'write', + 'delete', + ], + 'options_configuration' => [ + 'read', + 'write', + 'delete', + ], + 'option_configuration' => [ + 'read', + 'write', + 'delete', + ], + 'option_configuration' => [ + 'read', + 'write', + 'delete', + ], ]; diff --git a/addons/default/visiosoft/advs-module/resources/lang/en/button.php b/addons/default/visiosoft/advs-module/resources/lang/en/button.php index ab988e7b0..c3ff863ad 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/en/button.php +++ b/addons/default/visiosoft/advs-module/resources/lang/en/button.php @@ -32,5 +32,10 @@ return [ 'name' => 'Update Category' ], 'new_option' => 'New Option', - 'export' => 'Export' + 'export' => 'Export', + 'new_productoption' => 'New Productoption', + 'new_productoptions_value' => 'New Productoptions value', + 'new_options_configuration' => 'New Options configuration', + 'new_option_configuration' => 'New Option configuration', + 'new_option_configuration' => 'New Option configuration', ]; diff --git a/addons/default/visiosoft/advs-module/resources/lang/en/field.php b/addons/default/visiosoft/advs-module/resources/lang/en/field.php index 7ebc16101..493583f1f 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/en/field.php +++ b/addons/default/visiosoft/advs-module/resources/lang/en/field.php @@ -313,4 +313,10 @@ return [ 'site' => 'Site', 'subscription' => 'Subscription', 'created' => 'Created', + 'product_option' => [ + 'name' => 'Product Option' + ], + 'option_json' => [ + 'name' => 'Option' + ] ]; diff --git a/addons/default/visiosoft/advs-module/resources/lang/en/permission.php b/addons/default/visiosoft/advs-module/resources/lang/en/permission.php index a75575d96..0a094c9f1 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/en/permission.php +++ b/addons/default/visiosoft/advs-module/resources/lang/en/permission.php @@ -57,4 +57,44 @@ return [ 'delete' => 'Can delete options?', ], ], + 'productoptions' => [ + 'name' => 'Productoptions', + 'option' => [ + 'read' => 'Can read productoptions?', + 'write' => 'Can create/edit productoptions?', + 'delete' => 'Can delete productoptions?', + ], + ], + 'productoptions_value' => [ + 'name' => 'Productoptions value', + 'option' => [ + 'read' => 'Can read productoptions value?', + 'write' => 'Can create/edit productoptions value?', + 'delete' => 'Can delete productoptions value?', + ], + ], + 'options_configuration' => [ + 'name' => 'Options configuration', + 'option' => [ + 'read' => 'Can read options configuration?', + 'write' => 'Can create/edit options configuration?', + 'delete' => 'Can delete options configuration?', + ], + ], + 'option_configuration' => [ + 'name' => 'Option configuration', + 'option' => [ + 'read' => 'Can read option configuration?', + 'write' => 'Can create/edit option configuration?', + 'delete' => 'Can delete option configuration?', + ], + ], + 'option_configuration' => [ + 'name' => 'Option configuration', + 'option' => [ + 'read' => 'Can read option configuration?', + 'write' => 'Can create/edit option configuration?', + 'delete' => 'Can delete option configuration?', + ], + ], ]; diff --git a/addons/default/visiosoft/advs-module/resources/lang/en/section.php b/addons/default/visiosoft/advs-module/resources/lang/en/section.php index b3ebe1995..fa686c524 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/en/section.php +++ b/addons/default/visiosoft/advs-module/resources/lang/en/section.php @@ -45,4 +45,19 @@ return [ 'title' => 'Options', ], 'ads_image' => 'Ads Image', + 'product_options' => [ + 'title' => 'Product Options', + ], + 'productoptions_value' => [ + 'title' => 'Productoptions value', + ], + 'options_configuration' => [ + 'title' => 'Options configuration', + ], + 'option_configuration' => [ + 'title' => 'Option configuration', + ], + 'option_configuration' => [ + 'title' => 'Option configuration', + ], ]; diff --git a/addons/default/visiosoft/advs-module/resources/lang/en/stream.php b/addons/default/visiosoft/advs-module/resources/lang/en/stream.php index 29e720836..bd46a1466 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/en/stream.php +++ b/addons/default/visiosoft/advs-module/resources/lang/en/stream.php @@ -22,4 +22,19 @@ return [ 'options' => [ 'name' => 'Options', ], + 'product_options' => [ + 'name' => 'Produc Options', + ], + 'productoptions_value' => [ + 'name' => 'Productoptions value', + ], + 'options_configuration' => [ + 'name' => 'Options configuration', + ], + 'option_configuration' => [ + 'name' => 'Option configuration', + ], + 'option_configuration' => [ + 'name' => 'Option configuration', + ], ]; diff --git a/addons/default/visiosoft/advs-module/resources/views/new-ad/new-create.twig b/addons/default/visiosoft/advs-module/resources/views/new-ad/new-create.twig index 4ccfbcfda..94d172535 100644 --- a/addons/default/visiosoft/advs-module/resources/views/new-ad/new-create.twig +++ b/addons/default/visiosoft/advs-module/resources/views/new-ad/new-create.twig @@ -138,6 +138,15 @@ +
+ +
+ {{ form.fields.product_options_value.input|raw }} +
+
+
diff --git a/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php b/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php index bf879d2ad..4438cff88 100644 --- a/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php +++ b/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php @@ -377,4 +377,9 @@ class AdvModel extends AdvsAdvsEntryModel implements AdvInterface { return $this->finish_at ? $this->finish_at < Carbon::now() : true; } + + public function getProductOptionsValues() + { + return $this->product_options_value; + } } 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 a9cb314fd..ba2de06d3 100644 --- a/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvInterface.php +++ b/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvInterface.php @@ -5,4 +5,6 @@ use Anomaly\Streams\Platform\Entry\Contract\EntryInterface; interface AdvInterface extends EntryInterface { public function expired(); + + public function getProductOptionsValues(); } diff --git a/addons/default/visiosoft/advs-module/src/Adv/Form/AdvFormBuilder.php b/addons/default/visiosoft/advs-module/src/Adv/Form/AdvFormBuilder.php index 0623c5ca6..8f58892f5 100644 --- a/addons/default/visiosoft/advs-module/src/Adv/Form/AdvFormBuilder.php +++ b/addons/default/visiosoft/advs-module/src/Adv/Form/AdvFormBuilder.php @@ -60,7 +60,8 @@ class AdvFormBuilder extends FormBuilder ], 'files', 'popular_adv', - 'adv_day' + 'adv_day', + 'product_options_value' ]; protected $category = null; diff --git a/addons/default/visiosoft/advs-module/src/AdvsModule.php b/addons/default/visiosoft/advs-module/src/AdvsModule.php index 0eda5defc..e7835c641 100644 --- a/addons/default/visiosoft/advs-module/src/AdvsModule.php +++ b/addons/default/visiosoft/advs-module/src/AdvsModule.php @@ -37,9 +37,22 @@ class AdvsModule extends Module ], ], ], + 'product_options' => [ + 'title' => 'visiosoft.module.advs::section.product_options.title', + 'buttons' => [ + 'new_productoption', + ], + ], + 'productoptions_value' => [ + 'title' => 'visiosoft.module.advs::section.productoptions_value.title', + 'buttons' => [ + 'new_productoptions_value', + ], + ], + 'option_configuration', 'assets_clear' => [ - 'title' => 'visiosoft.module.advs::section.assets_clear.name', - 'href' => '/admin/assets/clear', + 'title' => 'visiosoft.module.advs::section.assets_clear.name', + 'href' => '/admin/assets/clear', ] // 'custom_fields' => [ // 'buttons' => [ diff --git a/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php b/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php index ec32d05a9..e6a622850 100644 --- a/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php +++ b/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php @@ -15,6 +15,12 @@ use Visiosoft\AdvsModule\Http\Middleware\SetLang; use Visiosoft\AdvsModule\Listener\AddAdvsSettingsScript; use Visiosoft\AdvsModule\Option\Contract\OptionRepositoryInterface; use Visiosoft\AdvsModule\Option\OptionRepository; +use Visiosoft\AdvsModule\OptionConfiguration\Contract\OptionConfigurationRepositoryInterface; +use Visiosoft\AdvsModule\OptionConfiguration\OptionConfigurationRepository; +use Visiosoft\AdvsModule\Productoption\Contract\ProductoptionRepositoryInterface; +use Visiosoft\AdvsModule\Productoption\ProductoptionRepository; +use Visiosoft\AdvsModule\ProductoptionsValue\Contract\ProductoptionsValueRepositoryInterface; +use Visiosoft\AdvsModule\ProductoptionsValue\ProductoptionsValueRepository; use Visiosoft\LocationModule\Village\Contract\VillageRepositoryInterface; use Visiosoft\LocationModule\Village\VillageRepository; use Visiosoft\LocationModule\Village\VillageModel; @@ -214,6 +220,16 @@ class AdvsModuleServiceProvider extends AddonServiceProvider // Others 'advs/ttr/{id}' => 'Visiosoft\PackagesModule\Http\Controller\packageFEController@advsStatusbyUser', + + //Configrations Admin Controller + 'admin/advs/option_configuration/create' => [ + 'as' => 'visiosoft.module.advs::configrations.create', + 'uses' => 'Visiosoft\AdvsModule\Http\Controller\Admin\OptionConfigurationController@create', + ], + 'admin/advs/option_configuration' => [ + 'as' => 'visiosoft.module.advs::configrations.index', + 'uses' => 'Visiosoft\AdvsModule\Http\Controller\Admin\OptionConfigurationController@index', + ], ]; /** @@ -294,6 +310,9 @@ class AdvsModuleServiceProvider extends AddonServiceProvider CategoryRepositoryInterface::class => CategoryRepository::class, CountryRepositoryInterface::class => CountryRepository::class, OptionRepositoryInterface::class => OptionRepository::class, + ProductoptionRepositoryInterface::class => ProductoptionRepository::class, + OptionConfigurationRepositoryInterface::class => OptionConfigurationRepository::class, + ProductoptionsValueRepositoryInterface::class => ProductoptionsValueRepository::class, ]; /** 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 47032280d..44f95278e 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 @@ -108,6 +108,10 @@ class AdvsController extends AdminController 'replicate' => [ 'text' => 'Replicate', ], + 'create_configration' => [ + 'text' => 'Create Configrations', + 'href' => route('visiosoft.module.advs::configrations.create')."?ad={entry.id}" + ], ], ], ]); diff --git a/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/OptionConfigurationController.php b/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/OptionConfigurationController.php new file mode 100644 index 000000000..2115f408f --- /dev/null +++ b/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/OptionConfigurationController.php @@ -0,0 +1,32 @@ +render(); + } + + /** + * Create a new entry. + * + * @param OptionConfigurationFormBuilder $form + * @return \Symfony\Component\HttpFoundation\Response + */ + public function create(OptionConfigurationFormBuilder $form) + { + $form->setOption('redirect', route('visiosoft.module.advs::configrations.index')); + return $form->render(); + } +} diff --git a/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/ProductoptionsController.php b/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/ProductoptionsController.php new file mode 100644 index 000000000..c4e57e82d --- /dev/null +++ b/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/ProductoptionsController.php @@ -0,0 +1,43 @@ +render(); + } + + /** + * Create a new entry. + * + * @param ProductoptionFormBuilder $form + * @return \Symfony\Component\HttpFoundation\Response + */ + public function create(ProductoptionFormBuilder $form) + { + return $form->render(); + } + + /** + * Edit an existing entry. + * + * @param ProductoptionFormBuilder $form + * @param $id + * @return \Symfony\Component\HttpFoundation\Response + */ + public function edit(ProductoptionFormBuilder $form, $id) + { + return $form->render($id); + } +} diff --git a/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/ProductoptionsValueController.php b/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/ProductoptionsValueController.php new file mode 100644 index 000000000..2a5acfb58 --- /dev/null +++ b/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/ProductoptionsValueController.php @@ -0,0 +1,43 @@ +render(); + } + + /** + * Create a new entry. + * + * @param ProductoptionsValueFormBuilder $form + * @return \Symfony\Component\HttpFoundation\Response + */ + public function create(ProductoptionsValueFormBuilder $form) + { + return $form->render(); + } + + /** + * Edit an existing entry. + * + * @param ProductoptionsValueFormBuilder $form + * @param $id + * @return \Symfony\Component\HttpFoundation\Response + */ + public function edit(ProductoptionsValueFormBuilder $form, $id) + { + return $form->render($id); + } +} diff --git a/addons/default/visiosoft/advs-module/src/OptionConfiguration/Contract/OptionConfigurationInterface.php b/addons/default/visiosoft/advs-module/src/OptionConfiguration/Contract/OptionConfigurationInterface.php new file mode 100644 index 000000000..4d26c2bf8 --- /dev/null +++ b/addons/default/visiosoft/advs-module/src/OptionConfiguration/Contract/OptionConfigurationInterface.php @@ -0,0 +1,8 @@ +has('ad')) + { + $ad = $advRepository->find(request('ad')); + + $options = $ad->getProductOptionsValues()->groupBy('product_option_id'); + + $options_fields = array(); + + foreach ($options as $option_id => $option_values) + { + if($option = $productOptionRepository->find($option_id)) + { + $options_fields['option-'.$option->getId()] = [ + 'type' => 'anomaly.field_type.select', + 'label' => $option->getName(), + 'required' => true, + 'config' => [ + 'options' => $option_values->pluck('name','id')->all(), + ] + ]; + } + } + $fields = array_merge($options_fields, ['price', 'currency', 'stock']); + + $builder->setFields($fields); + } + } +} diff --git a/addons/default/visiosoft/advs-module/src/OptionConfiguration/Form/OptionConfigurationFormHandler.php b/addons/default/visiosoft/advs-module/src/OptionConfiguration/Form/OptionConfigurationFormHandler.php new file mode 100644 index 000000000..da93db1c2 --- /dev/null +++ b/addons/default/visiosoft/advs-module/src/OptionConfiguration/Form/OptionConfigurationFormHandler.php @@ -0,0 +1,35 @@ +canSave()) { + return; + } + + $parameters = $builder->getPostData(); + $parameters['parent_adv_id'] = request()->get('ad'); + + $option_json = array(); + + foreach ($parameters as $key => $parameter_value) { + if (substr($key, 0, 7) === "option-") { + $option_id = substr($key, 7); + $option_json[$option_id] = $parameter_value; + unset($parameters[$key]); + } + } + $option_json = ['option_json' => json_encode($option_json)]; + $configration = array_merge($parameters, $option_json); + + + $entry = $repository->create($configration); + $builder->setFormEntry($entry); + } +} diff --git a/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationCollection.php b/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationCollection.php new file mode 100644 index 000000000..64c3e2d1d --- /dev/null +++ b/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationCollection.php @@ -0,0 +1,8 @@ +model = $model; + } + + public function createConfigration($ad_id,$price,$currency,$stock,$option_json) + { + return $this->create([ + 'parent_adv_id' => $ad_id, + 'price' => $price, + 'currency' => $currency, + 'stock' => $stock, + 'option_json' => $option_json, + ]); + } +} diff --git a/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationRouter.php b/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationRouter.php new file mode 100644 index 000000000..87fe2c59c --- /dev/null +++ b/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationRouter.php @@ -0,0 +1,8 @@ +setColumns([ + 'name' => [ + 'value' => function (EntryModel $entry, + AdvRepositoryInterface $advRepository) { + + $adv = $advRepository->findById($entry->parent_adv_id); + return "parent_adv_id]) ."'>$adv->name"; + } + ], + 'option_json' => [ + 'value' => function (EntryModel $entry, + ProductoptionRepositoryInterface $productOptionRepository, + ProductoptionsValueRepositoryInterface $productOptionsValueRepository) { + + $values = json_decode($entry->option_json); + $text = ""; + + foreach ($values as $key => $value) { + $productOption = $productOptionRepository->findBy('entry_id', $key); + $productOptionsValue = $productOptionsValueRepository->findBy('entry_id', $value); + + $text .= + ''. + $productOption->name . ': ' . $productOptionsValue->name. + ''; + + } + + return $text; + } + ], + ]); + } +} diff --git a/addons/default/visiosoft/advs-module/src/Productoption/Contract/ProductoptionInterface.php b/addons/default/visiosoft/advs-module/src/Productoption/Contract/ProductoptionInterface.php new file mode 100644 index 000000000..66e68c2dc --- /dev/null +++ b/addons/default/visiosoft/advs-module/src/Productoption/Contract/ProductoptionInterface.php @@ -0,0 +1,8 @@ +name; + } +} diff --git a/addons/default/visiosoft/advs-module/src/Productoption/ProductoptionObserver.php b/addons/default/visiosoft/advs-module/src/Productoption/ProductoptionObserver.php new file mode 100644 index 000000000..e1a582328 --- /dev/null +++ b/addons/default/visiosoft/advs-module/src/Productoption/ProductoptionObserver.php @@ -0,0 +1,8 @@ +model = $model; + } +} diff --git a/addons/default/visiosoft/advs-module/src/Productoption/ProductoptionRouter.php b/addons/default/visiosoft/advs-module/src/Productoption/ProductoptionRouter.php new file mode 100644 index 000000000..8067574e6 --- /dev/null +++ b/addons/default/visiosoft/advs-module/src/Productoption/ProductoptionRouter.php @@ -0,0 +1,8 @@ +model = $model; + } +} diff --git a/addons/default/visiosoft/advs-module/src/ProductoptionsValue/ProductoptionsValueRouter.php b/addons/default/visiosoft/advs-module/src/ProductoptionsValue/ProductoptionsValueRouter.php new file mode 100644 index 000000000..e912ae9bf --- /dev/null +++ b/addons/default/visiosoft/advs-module/src/ProductoptionsValue/ProductoptionsValueRouter.php @@ -0,0 +1,8 @@ + + * @author Ryan Thompson + */ +class LookupTableBuilder extends \Anomaly\MultipleFieldType\Table\LookupTableBuilder +{ + + protected $filters = [ + 'product_option' + ]; + + /** + * The table columns. + * + * @var array + */ + protected $columns = [ + 'name', 'product_option' + ]; +} diff --git a/addons/default/visiosoft/advs-module/src/ProductoptionsValue/Support/MultipleFieldType/SelectedTableBuilder.php b/addons/default/visiosoft/advs-module/src/ProductoptionsValue/Support/MultipleFieldType/SelectedTableBuilder.php new file mode 100644 index 000000000..dccc81c96 --- /dev/null +++ b/addons/default/visiosoft/advs-module/src/ProductoptionsValue/Support/MultipleFieldType/SelectedTableBuilder.php @@ -0,0 +1,21 @@ + + * @author Ryan Thompson + */ +class SelectedTableBuilder extends \Anomaly\MultipleFieldType\Table\SelectedTableBuilder +{ + + /** + * The table columns. + * + * @var array + */ + protected $columns = [ + 'name', 'product_option' + ]; +} diff --git a/addons/default/visiosoft/advs-module/src/ProductoptionsValue/Support/MultipleFieldType/ValueTableBuilder.php b/addons/default/visiosoft/advs-module/src/ProductoptionsValue/Support/MultipleFieldType/ValueTableBuilder.php new file mode 100644 index 000000000..b9a42c19b --- /dev/null +++ b/addons/default/visiosoft/advs-module/src/ProductoptionsValue/Support/MultipleFieldType/ValueTableBuilder.php @@ -0,0 +1,21 @@ + + * @author Ryan Thompson + */ +class ValueTableBuilder extends \Anomaly\MultipleFieldType\Table\ValueTableBuilder +{ + + /** + * The table columns. + * + * @var array + */ + protected $columns = [ + 'name', 'product_option' + ]; +} diff --git a/addons/default/visiosoft/advs-module/src/ProductoptionsValue/Table/ProductoptionsValueTableBuilder.php b/addons/default/visiosoft/advs-module/src/ProductoptionsValue/Table/ProductoptionsValueTableBuilder.php new file mode 100644 index 000000000..8c331821d --- /dev/null +++ b/addons/default/visiosoft/advs-module/src/ProductoptionsValue/Table/ProductoptionsValueTableBuilder.php @@ -0,0 +1,68 @@ + [ + 'value' => 'entry.name' + ], + 'product_option', + ]; + + /** + * The table buttons. + * + * @var array|string + */ + protected $buttons = [ + 'edit' + ]; + + /** + * The table actions. + * + * @var array|string + */ + protected $actions = [ + 'delete' + ]; + + /** + * The table options. + * + * @var array + */ + protected $options = []; + + /** + * The table assets. + * + * @var array + */ + protected $assets = []; + +} diff --git a/addons/default/visiosoft/advs-module/tests/Unit/OptionConfiguration/Form/OptionConfigurationFormBuilderTest.php b/addons/default/visiosoft/advs-module/tests/Unit/OptionConfiguration/Form/OptionConfigurationFormBuilderTest.php new file mode 100644 index 000000000..ae86aaf37 --- /dev/null +++ b/addons/default/visiosoft/advs-module/tests/Unit/OptionConfiguration/Form/OptionConfigurationFormBuilderTest.php @@ -0,0 +1,8 @@ + Date: Thu, 22 Oct 2020 17:23:58 +0300 Subject: [PATCH 03/10] fixed message --- .../profile-module/src/Profile/Profile/ProfileFormHandler.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/default/visiosoft/profile-module/src/Profile/Profile/ProfileFormHandler.php b/addons/default/visiosoft/profile-module/src/Profile/Profile/ProfileFormHandler.php index f98368903..aae2f88f6 100644 --- a/addons/default/visiosoft/profile-module/src/Profile/Profile/ProfileFormHandler.php +++ b/addons/default/visiosoft/profile-module/src/Profile/Profile/ProfileFormHandler.php @@ -36,7 +36,7 @@ class ProfileFormHandler // Prevent removing already filled fields foreach ($parameters as $field => $value) { if ($user->$field && !$value) { - $messages->error('visiosoft.module.profile::message.can_not_changed_filled_fields'); + $messages->error('visiosoft.module.profile::message.can_not_remove_filled_fields'); return; } } From 6981ac09f0e455e320ade6d239cfe6d2d34f8918 Mon Sep 17 00:00:00 2001 From: Muammer Top Date: Fri, 23 Oct 2020 12:05:55 +0300 Subject: [PATCH 04/10] product options add cart --- .../factories/OptionConfigurationFactory.php | 10 -- .../factories/OptionsConfigurationFactory.php | 10 -- .../factories/ProductoptionFactory.php | 10 -- .../factories/ProductoptionsValueFactory.php | 10 -- ...ule.advs__create_productoptions_stream.php | 7 +- ...vs__create_option_configuration_stream.php | 1 + .../views/ad-detail/partials/detail.twig | 39 +++++- .../views/new-ad/preview/preview.twig | 8 ++ .../advs-module/src/Adv/AdvRepository.php | 4 + .../Adv/Contract/AdvRepositoryInterface.php | 2 + .../src/AdvsModuleServiceProvider.php | 14 +- .../OptionConfigurationController.php | 59 +++++++++ .../src/Http/Controller/advsController.php | 24 +++- ...OptionConfigurationRepositoryInterface.php | 2 + .../OptionConfigurationModel.php | 8 +- .../OptionConfigurationRepository.php | 122 ++++++++++++++---- .../Table/OptionConfigurationTableColumns.php | 6 +- .../src/OptionHandler/CategoriesOptions.php | 21 +++ .../Contract/ProductoptionsValueInterface.php | 2 +- .../ProductoptionsValueModel.php | 5 +- .../OptionConfigurationFormBuilderTest.php | 8 -- .../OptionConfigurationCollectionTest.php | 8 -- .../OptionConfigurationCriteriaTest.php | 8 -- .../OptionConfigurationModelTest.php | 8 -- .../OptionConfigurationObserverTest.php | 8 -- .../OptionConfigurationPresenterTest.php | 8 -- .../OptionConfigurationRepositoryTest.php | 8 -- .../OptionConfigurationRouterTest.php | 8 -- .../OptionConfigurationSeederTest.php | 8 -- .../OptionConfigurationTableBuilderTest.php | 8 -- .../OptionsConfigurationFormBuilderTest.php | 8 -- .../OptionsConfigurationCollectionTest.php | 8 -- .../OptionsConfigurationCriteriaTest.php | 8 -- .../OptionsConfigurationModelTest.php | 8 -- .../OptionsConfigurationObserverTest.php | 8 -- .../OptionsConfigurationPresenterTest.php | 8 -- .../OptionsConfigurationRepositoryTest.php | 8 -- .../OptionsConfigurationRouterTest.php | 8 -- .../OptionsConfigurationSeederTest.php | 8 -- .../OptionsConfigurationTableBuilderTest.php | 8 -- .../Form/ProductoptionFormBuilderTest.php | 8 -- .../ProductoptionCollectionTest.php | 8 -- .../ProductoptionCriteriaTest.php | 8 -- .../Productoption/ProductoptionModelTest.php | 8 -- .../ProductoptionObserverTest.php | 8 -- .../ProductoptionPresenterTest.php | 8 -- .../ProductoptionRepositoryTest.php | 8 -- .../Productoption/ProductoptionRouterTest.php | 8 -- .../Productoption/ProductoptionSeederTest.php | 8 -- .../Table/ProductoptionTableBuilderTest.php | 8 -- .../ProductoptionsValueFormBuilderTest.php | 8 -- .../ProductoptionsValueCollectionTest.php | 8 -- .../ProductoptionsValueCriteriaTest.php | 8 -- .../ProductoptionsValueModelTest.php | 8 -- .../ProductoptionsValueObserverTest.php | 8 -- .../ProductoptionsValuePresenterTest.php | 8 -- .../ProductoptionsValueRepositoryTest.php | 8 -- .../ProductoptionsValueRouterTest.php | 8 -- .../ProductoptionsValueSeederTest.php | 8 -- .../ProductoptionsValueTableBuilderTest.php | 8 -- 60 files changed, 284 insertions(+), 400 deletions(-) delete mode 100644 addons/default/visiosoft/advs-module/factories/OptionConfigurationFactory.php delete mode 100644 addons/default/visiosoft/advs-module/factories/OptionsConfigurationFactory.php delete mode 100644 addons/default/visiosoft/advs-module/factories/ProductoptionFactory.php delete mode 100644 addons/default/visiosoft/advs-module/factories/ProductoptionsValueFactory.php create mode 100644 addons/default/visiosoft/advs-module/src/Http/Controller/OptionConfigurationController.php create mode 100644 addons/default/visiosoft/advs-module/src/OptionHandler/CategoriesOptions.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionConfiguration/Form/OptionConfigurationFormBuilderTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionConfiguration/OptionConfigurationCollectionTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionConfiguration/OptionConfigurationCriteriaTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionConfiguration/OptionConfigurationModelTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionConfiguration/OptionConfigurationObserverTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionConfiguration/OptionConfigurationPresenterTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionConfiguration/OptionConfigurationRepositoryTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionConfiguration/OptionConfigurationRouterTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionConfiguration/OptionConfigurationSeederTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionConfiguration/Table/OptionConfigurationTableBuilderTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionsConfiguration/Form/OptionsConfigurationFormBuilderTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionsConfiguration/OptionsConfigurationCollectionTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionsConfiguration/OptionsConfigurationCriteriaTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionsConfiguration/OptionsConfigurationModelTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionsConfiguration/OptionsConfigurationObserverTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionsConfiguration/OptionsConfigurationPresenterTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionsConfiguration/OptionsConfigurationRepositoryTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionsConfiguration/OptionsConfigurationRouterTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionsConfiguration/OptionsConfigurationSeederTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/OptionsConfiguration/Table/OptionsConfigurationTableBuilderTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/Productoption/Form/ProductoptionFormBuilderTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/Productoption/ProductoptionCollectionTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/Productoption/ProductoptionCriteriaTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/Productoption/ProductoptionModelTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/Productoption/ProductoptionObserverTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/Productoption/ProductoptionPresenterTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/Productoption/ProductoptionRepositoryTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/Productoption/ProductoptionRouterTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/Productoption/ProductoptionSeederTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/Productoption/Table/ProductoptionTableBuilderTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/ProductoptionsValue/Form/ProductoptionsValueFormBuilderTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/ProductoptionsValue/ProductoptionsValueCollectionTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/ProductoptionsValue/ProductoptionsValueCriteriaTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/ProductoptionsValue/ProductoptionsValueModelTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/ProductoptionsValue/ProductoptionsValueObserverTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/ProductoptionsValue/ProductoptionsValuePresenterTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/ProductoptionsValue/ProductoptionsValueRepositoryTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/ProductoptionsValue/ProductoptionsValueRouterTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/ProductoptionsValue/ProductoptionsValueSeederTest.php delete mode 100644 addons/default/visiosoft/advs-module/tests/Unit/ProductoptionsValue/Table/ProductoptionsValueTableBuilderTest.php diff --git a/addons/default/visiosoft/advs-module/factories/OptionConfigurationFactory.php b/addons/default/visiosoft/advs-module/factories/OptionConfigurationFactory.php deleted file mode 100644 index 86a320aa0..000000000 --- a/addons/default/visiosoft/advs-module/factories/OptionConfigurationFactory.php +++ /dev/null @@ -1,10 +0,0 @@ -define( - Visiosoft\AdvsModule\OptionConfiguration\OptionConfigurationModel::class, - function (Faker\Generator $faker) { - return [ - //'title' => $faker->words(2), - ]; - } -); diff --git a/addons/default/visiosoft/advs-module/factories/OptionsConfigurationFactory.php b/addons/default/visiosoft/advs-module/factories/OptionsConfigurationFactory.php deleted file mode 100644 index b6bbb136f..000000000 --- a/addons/default/visiosoft/advs-module/factories/OptionsConfigurationFactory.php +++ /dev/null @@ -1,10 +0,0 @@ -define( - Visiosoft\AdvsModule\OptionsConfiguration\OptionsConfigurationModel::class, - function (Faker\Generator $faker) { - return [ - //'title' => $faker->words(2), - ]; - } -); diff --git a/addons/default/visiosoft/advs-module/factories/ProductoptionFactory.php b/addons/default/visiosoft/advs-module/factories/ProductoptionFactory.php deleted file mode 100644 index 7a1bc3379..000000000 --- a/addons/default/visiosoft/advs-module/factories/ProductoptionFactory.php +++ /dev/null @@ -1,10 +0,0 @@ -define( - Visiosoft\AdvsModule\Productoption\ProductoptionModel::class, - function (Faker\Generator $faker) { - return [ - //'title' => $faker->words(2), - ]; - } -); diff --git a/addons/default/visiosoft/advs-module/factories/ProductoptionsValueFactory.php b/addons/default/visiosoft/advs-module/factories/ProductoptionsValueFactory.php deleted file mode 100644 index bdfb8e393..000000000 --- a/addons/default/visiosoft/advs-module/factories/ProductoptionsValueFactory.php +++ /dev/null @@ -1,10 +0,0 @@ -define( - Visiosoft\AdvsModule\ProductoptionsValue\ProductoptionsValueModel::class, - function (Faker\Generator $faker) { - return [ - //'title' => $faker->words(2), - ]; - } -); diff --git a/addons/default/visiosoft/advs-module/migrations/2020_10_15_130044_visiosoft.module.advs__create_productoptions_stream.php b/addons/default/visiosoft/advs-module/migrations/2020_10_15_130044_visiosoft.module.advs__create_productoptions_stream.php index a8bdf8a7f..0f1e87a29 100644 --- a/addons/default/visiosoft/advs-module/migrations/2020_10_15_130044_visiosoft.module.advs__create_productoptions_stream.php +++ b/addons/default/visiosoft/advs-module/migrations/2020_10_15_130044_visiosoft.module.advs__create_productoptions_stream.php @@ -15,7 +15,12 @@ class VisiosoftModuleAdvsCreateProductoptionsStream extends Migration protected $delete = true; protected $fields = [ - 'categories' => 'anomaly.field_type.select', + 'categories' => [ + 'type' => 'anomaly.field_type.select', + 'config' => [ + 'handler' => 'Visiosoft\AdvsModule\OptionHandler\CategoriesOptions@handle' + ] + ], ]; /** * The stream definition. diff --git a/addons/default/visiosoft/advs-module/migrations/2020_10_16_124151_visiosoft.module.advs__create_option_configuration_stream.php b/addons/default/visiosoft/advs-module/migrations/2020_10_16_124151_visiosoft.module.advs__create_option_configuration_stream.php index b42c31acf..456ec6a8c 100644 --- a/addons/default/visiosoft/advs-module/migrations/2020_10_16_124151_visiosoft.module.advs__create_option_configuration_stream.php +++ b/addons/default/visiosoft/advs-module/migrations/2020_10_16_124151_visiosoft.module.advs__create_option_configuration_stream.php @@ -52,6 +52,7 @@ class VisiosoftModuleAdvsCreateOptionConfigurationStream extends Migration ], 'option_json' => [ 'required' => true, + 'unique' => true, ], ]; diff --git a/addons/default/visiosoft/advs-module/resources/views/ad-detail/partials/detail.twig b/addons/default/visiosoft/advs-module/resources/views/ad-detail/partials/detail.twig index efd963ad9..6d48e678c 100644 --- a/addons/default/visiosoft/advs-module/resources/views/ad-detail/partials/detail.twig +++ b/addons/default/visiosoft/advs-module/resources/views/ad-detail/partials/detail.twig @@ -44,10 +44,41 @@ {{ adv.created_at|date('d/m/Y') }}
- - {{ addBlock('ad-detail/details',{'adv':adv, 'options':options})|raw }} - {{ addBlock('ad-detail/widget-details',{'adv':adv})|raw }} - + +{# {{ dd(configurations) }}#} + {% if configurations != null %} +
+
+
+
+ +
+
+
+
+ +
+
+ +
+
+
+
+ {% else %} + + {{ addBlock('ad-detail/details',{'adv':adv, 'options':options})|raw }} + {{ addBlock('ad-detail/widget-details',{'adv':adv})|raw }} + + {% endif %} {% if adv.isCorporate == 2 %}
diff --git a/addons/default/visiosoft/advs-module/resources/views/new-ad/preview/preview.twig b/addons/default/visiosoft/advs-module/resources/views/new-ad/preview/preview.twig index 1c52f2e32..243164093 100644 --- a/addons/default/visiosoft/advs-module/resources/views/new-ad/preview/preview.twig +++ b/addons/default/visiosoft/advs-module/resources/views/new-ad/preview/preview.twig @@ -14,6 +14,10 @@ {% else %} {% set continueLink = url_route('adv_detail_seo', [adv.slug, adv.id]) %} {% endif %} + + Konfigürasyon Oluştur + {{ trans('visiosoft.module.advs::field.edit') }} @@ -27,6 +31,10 @@
+ + Konfigürasyon Oluştur + {{ trans('visiosoft.module.advs::field.edit') }} diff --git a/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php b/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php index e39e5580a..226494a47 100644 --- a/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php +++ b/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php @@ -447,4 +447,8 @@ class AdvRepository extends EntryRepository implements AdvRepositoryInterface ->orderBy('count_show_ad', 'desc') ->paginate(setting_value('visiosoft.module.advs::popular_ads_limit', setting_value('streams::per_page'))); } + + public function getName($id){ + return $this->find($id)->name; + } } diff --git a/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvRepositoryInterface.php b/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvRepositoryInterface.php index 4118d90a4..bb2504338 100644 --- a/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvRepositoryInterface.php +++ b/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvRepositoryInterface.php @@ -44,4 +44,6 @@ interface AdvRepositoryInterface extends EntryRepositoryInterface public function getByUsersIDs($usersIDs); public function getPopular(); + + public function getName($id); } diff --git a/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php b/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php index e6a622850..1070f7bb7 100644 --- a/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php +++ b/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php @@ -221,7 +221,7 @@ class AdvsModuleServiceProvider extends AddonServiceProvider // Others 'advs/ttr/{id}' => 'Visiosoft\PackagesModule\Http\Controller\packageFEController@advsStatusbyUser', - //Configrations Admin Controller + //Configurations Admin Controller 'admin/advs/option_configuration/create' => [ 'as' => 'visiosoft.module.advs::configrations.create', 'uses' => 'Visiosoft\AdvsModule\Http\Controller\Admin\OptionConfigurationController@create', @@ -230,6 +230,18 @@ class AdvsModuleServiceProvider extends AddonServiceProvider 'as' => 'visiosoft.module.advs::configrations.index', 'uses' => 'Visiosoft\AdvsModule\Http\Controller\Admin\OptionConfigurationController@index', ], + + //Configuration Controller + 'advs/option_configuration/create' => [ + 'as' => 'visiosoft.module.advs::user.configrations.create', + 'uses' => 'Visiosoft\AdvsModule\Http\Controller\OptionConfigurationController@create', + ], + 'conf/addCart' => [ + 'as' => 'configuration::add_cart', + 'uses' => 'Visiosoft\AdvsModule\Http\Controller\OptionConfigurationController@confAddCart', + ], + + ]; /** diff --git a/addons/default/visiosoft/advs-module/src/Http/Controller/OptionConfigurationController.php b/addons/default/visiosoft/advs-module/src/Http/Controller/OptionConfigurationController.php new file mode 100644 index 000000000..5c63a842c --- /dev/null +++ b/addons/default/visiosoft/advs-module/src/Http/Controller/OptionConfigurationController.php @@ -0,0 +1,59 @@ +advRepository = $advRepository; + $this->adv_model = $advModel; + $this->optionConfigurationModel = $optionConfigurationModel; + $this->optionConfigurationRepository = $optionConfigurationRepository; + parent::__construct(); + } + + public function create(OptionConfigurationFormBuilder $form) + { + $form->setOption('redirect', route('advs_preview', [request('ad')])); + return $form->render(); + } + + public function confAddCart() + { + $conf = $this->optionConfigurationRepository->find($this->request->configuration); + + $conf->name = $this->optionConfigurationRepository->getName($this->request->configuration); + + $this->adv_model->authControl(); + + if ($conf->stock < $this->request->quantity){ + return redirect()->back()->with('warning', [trans('visiosoft.module.carts::message.error1in2')]); + }else{ + $cart = $this->dispatch(new GetCart()); + $cart->add($conf, $this->request->quantity); + return $this->redirect->to(route('visiosoft.module.carts::cart')); + } + } +} 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 bea56a763..43cc8df16 100644 --- a/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php +++ b/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php @@ -19,6 +19,10 @@ use Visiosoft\AdvsModule\Adv\Event\showAdPhone; 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; use Visiosoft\CatsModule\Category\CategoryModel; use Visiosoft\CatsModule\Category\Contract\CategoryRepositoryInterface; @@ -40,6 +44,10 @@ class AdvsController extends PublicController private $adv_model; private $adv_repository; + private $optionConfigurationRepository; + private $productOptionRepository; + private $productOptionsValueRepository; + private $country_repository; private $city_model; @@ -66,6 +74,10 @@ class AdvsController extends PublicController AdvModel $advModel, AdvRepositoryInterface $advRepository, + OptionConfigurationRepositoryInterface $optionConfigurationRepository, + ProductoptionRepositoryInterface $productOptionRepository, + ProductoptionsValueRepositoryInterface $productOptionsValueRepository, + CountryRepositoryInterface $country_repository, CityModel $city_model, @@ -94,6 +106,10 @@ class AdvsController extends PublicController $this->adv_model = $advModel; $this->adv_repository = $advRepository; + $this->optionConfigurationRepository = $optionConfigurationRepository; + $this->productOptionRepository = $productOptionRepository; + $this->productOptionsValueRepository = $productOptionsValueRepository; + $this->country_repository = $country_repository; $this->city_model = $city_model; @@ -502,9 +518,11 @@ class AdvsController extends PublicController } $this->template->set('meta_image', $coverPhoto); - if ($adv->created_by_id == isset(auth()->user()->id) or $adv->status == "approved") { + $configurations = $this->optionConfigurationRepository->getConf($adv->id); + + if ($adv->created_by_id == isset(auth()->user()->id) or $adv->status == "approved") { return $this->view->make('visiosoft.module.advs::ad-detail/detail', compact('adv', 'complaints', - 'recommended_advs', 'categories', 'features', 'comments', 'qrSRC', 'options')); + 'recommended_advs', 'categories', 'features', 'comments', 'qrSRC', 'options', 'configurations')); } else { return back(); } @@ -545,7 +563,7 @@ class AdvsController extends PublicController $isActiveDopings = $this->adv_model->is_enabled('dopings'); return $this->view->make('visiosoft.module.advs::new-ad/preview/preview', - compact('adv', 'categories', 'features', 'isActiveDopings', 'options')); + compact('adv', 'categories', 'features', 'isActiveDopings', 'configurations')); } public function getLocations() diff --git a/addons/default/visiosoft/advs-module/src/OptionConfiguration/Contract/OptionConfigurationRepositoryInterface.php b/addons/default/visiosoft/advs-module/src/OptionConfiguration/Contract/OptionConfigurationRepositoryInterface.php index 9d4654747..d483bd89c 100644 --- a/addons/default/visiosoft/advs-module/src/OptionConfiguration/Contract/OptionConfigurationRepositoryInterface.php +++ b/addons/default/visiosoft/advs-module/src/OptionConfiguration/Contract/OptionConfigurationRepositoryInterface.php @@ -5,4 +5,6 @@ use Anomaly\Streams\Platform\Entry\Contract\EntryRepositoryInterface; interface OptionConfigurationRepositoryInterface extends EntryRepositoryInterface { public function createConfigration($ad_id,$price,$currency,$stock,$option_json); + + public function getConf($ad_id); } diff --git a/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationModel.php b/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationModel.php index 3550a3bf9..c81b0405e 100644 --- a/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationModel.php +++ b/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationModel.php @@ -1,9 +1,15 @@ find($id); + $adv = $this->adv_model->find($configuration->parent_adv_id); + dd($adv); + } } diff --git a/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationRepository.php b/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationRepository.php index 48a4863fc..ca2ba2820 100644 --- a/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationRepository.php +++ b/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationRepository.php @@ -1,36 +1,108 @@ model = $model; - } + /** + * Create a new OptionConfigurationRepository instance. + * + * @param OptionConfigurationModel $model + */ + public function __construct( + OptionConfigurationModel $model, + AdvRepositoryInterface $advRepository, + ProductoptionsValueRepositoryInterface $productoptionsValueRepository + ) + { + $this->model = $model; + $this->advRepository = $advRepository; + $this->productOptionsValueRepository = $productoptionsValueRepository; + } - public function createConfigration($ad_id,$price,$currency,$stock,$option_json) - { - return $this->create([ - 'parent_adv_id' => $ad_id, - 'price' => $price, - 'currency' => $currency, - 'stock' => $stock, - 'option_json' => $option_json, - ]); - } + public function createConfigration($ad_id, $price, $currency, $stock, $option_json) + { + return $this->create([ + 'parent_adv_id' => $ad_id, + 'price' => $price, + 'currency' => $currency, + 'stock' => $stock, + 'option_json' => $option_json, + ]); + } + + public function getConf($ad_id, $conf_id = null) + { + $adv = $this->advRepository->find($ad_id); + $configurations = array(); + + if ($conf_id == null) { + $product_configurations = $this->model->where('stock', '>', '0')->where('parent_adv_id', $ad_id)->get(); + + foreach ($product_configurations as $product_configuration) { + $configurations_item = json_decode($product_configuration->option_json, true); + $option_group_value = ""; + foreach ($configurations_item as $option_id => $value) { + $value_entry = $this->productOptionsValueRepository->find($value); + $option_group_value .= " " . $value_entry->getName(); + } + $configurations[$product_configuration->getId()] = [ + 'name' => $option_group_value, + 'price' => $product_configuration->price, + 'currency' => $product_configuration->currency, + 'stock' => $product_configuration->stock, + 'adv' => $adv->name . ' (' . trim($option_group_value, ' ') . ')', + ]; + } + } else { + $product_configuration = $this->model->find($conf_id); + $configurations_item = json_decode($product_configuration->option_json, true); + $option_group_value = ""; + + foreach ($configurations_item as $option_id => $value) { + $value_entry = $this->productOptionsValueRepository->find($value); + $option_group_value .= " " . $value_entry->getName(); + } + + $configurations = [ + 'name' => trim($option_group_value), + 'price' => $product_configuration->price, + 'currency' => $product_configuration->currency, + 'stock' => $product_configuration->stock, + 'adv' => $adv->name . ' (' . trim($option_group_value, ' ') . ')', + ]; + + } + + return $configurations; + } + + public function getName($id){ + $configuration = $this->find($id); + $adv = $this->advRepository->getName($configuration->parent_adv_id); + + $configurations_item = json_decode($configuration->option_json, true); + $option_group_value = ""; + + foreach ($configurations_item as $option_id => $value) { + $value_entry = $this->productOptionsValueRepository->find($value); + $option_group_value .= " " . $value_entry->getName(); + } + + return $adv . ' | ' . trim($option_group_value, ' '); + } } diff --git a/addons/default/visiosoft/advs-module/src/OptionConfiguration/Table/OptionConfigurationTableColumns.php b/addons/default/visiosoft/advs-module/src/OptionConfiguration/Table/OptionConfigurationTableColumns.php index 0690ea2a4..1b8f11618 100644 --- a/addons/default/visiosoft/advs-module/src/OptionConfiguration/Table/OptionConfigurationTableColumns.php +++ b/addons/default/visiosoft/advs-module/src/OptionConfiguration/Table/OptionConfigurationTableColumns.php @@ -19,7 +19,7 @@ class OptionConfigurationTableColumns AdvRepositoryInterface $advRepository) { $adv = $advRepository->findById($entry->parent_adv_id); - return "parent_adv_id]) ."'>$adv->name"; + return "parent_adv_id]) . "'>$adv->name"; } ], 'option_json' => [ @@ -35,8 +35,8 @@ class OptionConfigurationTableColumns $productOptionsValue = $productOptionsValueRepository->findBy('entry_id', $value); $text .= - ''. - $productOption->name . ': ' . $productOptionsValue->name. + '' . + $productOption->name . ': ' . $productOptionsValue->name . ''; } diff --git a/addons/default/visiosoft/advs-module/src/OptionHandler/CategoriesOptions.php b/addons/default/visiosoft/advs-module/src/OptionHandler/CategoriesOptions.php new file mode 100644 index 000000000..4083e31f0 --- /dev/null +++ b/addons/default/visiosoft/advs-module/src/OptionHandler/CategoriesOptions.php @@ -0,0 +1,21 @@ +categoryRepository = $categoryRepository; + } + + public function handle(SelectFieldType $fieldType) + { + $categories = $this->categoryRepository->mainCats(); + $options[] = $categories->pluck('name', 'id'); + $fieldType->setOptions($options); + } +} \ No newline at end of file diff --git a/addons/default/visiosoft/advs-module/src/ProductoptionsValue/Contract/ProductoptionsValueInterface.php b/addons/default/visiosoft/advs-module/src/ProductoptionsValue/Contract/ProductoptionsValueInterface.php index 3d64e4091..82fbb4f25 100644 --- a/addons/default/visiosoft/advs-module/src/ProductoptionsValue/Contract/ProductoptionsValueInterface.php +++ b/addons/default/visiosoft/advs-module/src/ProductoptionsValue/Contract/ProductoptionsValueInterface.php @@ -4,5 +4,5 @@ use Anomaly\Streams\Platform\Entry\Contract\EntryInterface; interface ProductoptionsValueInterface extends EntryInterface { - + public function getName(); } diff --git a/addons/default/visiosoft/advs-module/src/ProductoptionsValue/ProductoptionsValueModel.php b/addons/default/visiosoft/advs-module/src/ProductoptionsValue/ProductoptionsValueModel.php index 7358887d0..184b0c482 100644 --- a/addons/default/visiosoft/advs-module/src/ProductoptionsValue/ProductoptionsValueModel.php +++ b/addons/default/visiosoft/advs-module/src/ProductoptionsValue/ProductoptionsValueModel.php @@ -5,5 +5,8 @@ use Anomaly\Streams\Platform\Model\Advs\AdvsProductoptionsValueEntryModel; class ProductoptionsValueModel extends AdvsProductoptionsValueEntryModel implements ProductoptionsValueInterface { - + public function getName() + { + return $this->name; + } } diff --git a/addons/default/visiosoft/advs-module/tests/Unit/OptionConfiguration/Form/OptionConfigurationFormBuilderTest.php b/addons/default/visiosoft/advs-module/tests/Unit/OptionConfiguration/Form/OptionConfigurationFormBuilderTest.php deleted file mode 100644 index ae86aaf37..000000000 --- a/addons/default/visiosoft/advs-module/tests/Unit/OptionConfiguration/Form/OptionConfigurationFormBuilderTest.php +++ /dev/null @@ -1,8 +0,0 @@ - Date: Fri, 23 Oct 2020 12:18:48 +0300 Subject: [PATCH 05/10] product options add cart --- .../views/ad-detail/partials/detail.twig | 39 ++----------------- 1 file changed, 4 insertions(+), 35 deletions(-) diff --git a/addons/default/visiosoft/advs-module/resources/views/ad-detail/partials/detail.twig b/addons/default/visiosoft/advs-module/resources/views/ad-detail/partials/detail.twig index 6d48e678c..5d44a8108 100644 --- a/addons/default/visiosoft/advs-module/resources/views/ad-detail/partials/detail.twig +++ b/addons/default/visiosoft/advs-module/resources/views/ad-detail/partials/detail.twig @@ -44,41 +44,10 @@ {{ adv.created_at|date('d/m/Y') }}
- -{# {{ dd(configurations) }}#} - {% if configurations != null %} -
-
-
-
- -
-
-
-
- -
-
- -
-
-
-
- {% else %} - - {{ addBlock('ad-detail/details',{'adv':adv, 'options':options})|raw }} - {{ addBlock('ad-detail/widget-details',{'adv':adv})|raw }} - - {% endif %} + + {{ addBlock('ad-detail/details',{'adv':adv, 'options':options, 'configurations':configurations})|raw }} + {{ addBlock('ad-detail/widget-details',{'adv':adv})|raw }} + {% if adv.isCorporate == 2 %}
From e04870fcd23051660b4c1b51d4d756367160b603 Mon Sep 17 00:00:00 2001 From: Muammer Top Date: Fri, 23 Oct 2020 12:38:28 +0300 Subject: [PATCH 06/10] product options add cart --- .../advs-module/resources/lang/en/button.php | 1 + .../views/new-ad/preview/preview.twig | 4 +-- .../Http/Controller/Admin/AdvsController.php | 2 +- ...OptionConfigurationRepositoryInterface.php | 2 ++ .../OptionConfigurationModel.php | 7 +---- .../OptionConfigurationRepository.php | 30 ++++--------------- 6 files changed, 12 insertions(+), 34 deletions(-) diff --git a/addons/default/visiosoft/advs-module/resources/lang/en/button.php b/addons/default/visiosoft/advs-module/resources/lang/en/button.php index c3ff863ad..1b49391ae 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/en/button.php +++ b/addons/default/visiosoft/advs-module/resources/lang/en/button.php @@ -38,4 +38,5 @@ return [ 'new_options_configuration' => 'New Options configuration', 'new_option_configuration' => 'New Option configuration', 'new_option_configuration' => 'New Option configuration', + 'create_configurations' => 'Create Configurations', ]; diff --git a/addons/default/visiosoft/advs-module/resources/views/new-ad/preview/preview.twig b/addons/default/visiosoft/advs-module/resources/views/new-ad/preview/preview.twig index 243164093..f016f7040 100644 --- a/addons/default/visiosoft/advs-module/resources/views/new-ad/preview/preview.twig +++ b/addons/default/visiosoft/advs-module/resources/views/new-ad/preview/preview.twig @@ -16,7 +16,7 @@ {% endif %} - Konfigürasyon Oluştur + {{trans('visiosoft.module.advs::button.create_configurations')}} @@ -33,7 +33,7 @@
- Konfigürasyon Oluştur + {{trans('visiosoft.module.advs::button.create_configurations')}} {{ trans('visiosoft.module.advs::field.edit') }} 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 44f95278e..2321df840 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 @@ -109,7 +109,7 @@ class AdvsController extends AdminController 'text' => 'Replicate', ], 'create_configration' => [ - 'text' => 'Create Configrations', + 'text' => trans('visiosoft.module.advs::button.create_configurations'), 'href' => route('visiosoft.module.advs::configrations.create')."?ad={entry.id}" ], ], diff --git a/addons/default/visiosoft/advs-module/src/OptionConfiguration/Contract/OptionConfigurationRepositoryInterface.php b/addons/default/visiosoft/advs-module/src/OptionConfiguration/Contract/OptionConfigurationRepositoryInterface.php index d483bd89c..a72308585 100644 --- a/addons/default/visiosoft/advs-module/src/OptionConfiguration/Contract/OptionConfigurationRepositoryInterface.php +++ b/addons/default/visiosoft/advs-module/src/OptionConfiguration/Contract/OptionConfigurationRepositoryInterface.php @@ -7,4 +7,6 @@ interface OptionConfigurationRepositoryInterface extends EntryRepositoryInterfac public function createConfigration($ad_id,$price,$currency,$stock,$option_json); public function getConf($ad_id); + + public function getName($id); } diff --git a/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationModel.php b/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationModel.php index c81b0405e..8b862fe54 100644 --- a/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationModel.php +++ b/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationModel.php @@ -6,10 +6,5 @@ use Anomaly\Streams\Platform\Model\Advs\AdvsOptionConfigurationEntryModel; class OptionConfigurationModel extends AdvsOptionConfigurationEntryModel implements OptionConfigurationInterface { - public function getName($id) - { - $configuration = $this->find($id); - $adv = $this->adv_model->find($configuration->parent_adv_id); - dd($adv); - } + } diff --git a/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationRepository.php b/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationRepository.php index ca2ba2820..1ed025ce3 100644 --- a/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationRepository.php +++ b/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationRepository.php @@ -45,47 +45,27 @@ class OptionConfigurationRepository extends EntryRepository implements OptionCon ]); } - public function getConf($ad_id, $conf_id = null) + public function getConf($ad_id) { $adv = $this->advRepository->find($ad_id); $configurations = array(); - if ($conf_id == null) { - $product_configurations = $this->model->where('stock', '>', '0')->where('parent_adv_id', $ad_id)->get(); + $product_configurations = $this->model->where('stock', '>', '0')->where('parent_adv_id', $ad_id)->get(); - foreach ($product_configurations as $product_configuration) { - $configurations_item = json_decode($product_configuration->option_json, true); - $option_group_value = ""; - foreach ($configurations_item as $option_id => $value) { - $value_entry = $this->productOptionsValueRepository->find($value); - $option_group_value .= " " . $value_entry->getName(); - } - $configurations[$product_configuration->getId()] = [ - 'name' => $option_group_value, - 'price' => $product_configuration->price, - 'currency' => $product_configuration->currency, - 'stock' => $product_configuration->stock, - 'adv' => $adv->name . ' (' . trim($option_group_value, ' ') . ')', - ]; - } - } else { - $product_configuration = $this->model->find($conf_id); + foreach ($product_configurations as $product_configuration) { $configurations_item = json_decode($product_configuration->option_json, true); $option_group_value = ""; - foreach ($configurations_item as $option_id => $value) { $value_entry = $this->productOptionsValueRepository->find($value); $option_group_value .= " " . $value_entry->getName(); } - - $configurations = [ - 'name' => trim($option_group_value), + $configurations[$product_configuration->getId()] = [ + 'name' => $option_group_value, 'price' => $product_configuration->price, 'currency' => $product_configuration->currency, 'stock' => $product_configuration->stock, 'adv' => $adv->name . ' (' . trim($option_group_value, ' ') . ')', ]; - } return $configurations; From c764f6f5ea9d64416b3b626b65fa40cde580d24f Mon Sep 17 00:00:00 2001 From: Muammer Top Date: Fri, 23 Oct 2020 18:24:49 +0300 Subject: [PATCH 07/10] =?UTF-8?q?#1879=20=C3=9Cr=C3=BCn=20se=C3=A7enekleri?= =?UTF-8?q?=20ve=20GET=20se=C3=A7enekleri?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ule.advs__create_productoptions_stream.php | 4 +-- .../advs-module/resources/lang/en/field.php | 4 ++- .../advs-module/resources/lang/en/section.php | 12 ++----- .../advs-module/resources/lang/en/stream.php | 12 ++----- .../src/OptionHandler/CategoriesOptions.php | 2 +- .../ProductoptionRepositoryInterface.php | 2 +- .../Productoption/ProductoptionRepository.php | 5 +++ .../Table/ProductoptionTableBuilder.php | 12 +++++++ ...ProductoptionsValueRepositoryInterface.php | 2 +- .../ProductoptionsValueRepository.php | 35 +++++++++++-------- .../MultipleFieldType/LookupTableBuilder.php | 14 ++++++++ 11 files changed, 65 insertions(+), 39 deletions(-) diff --git a/addons/default/visiosoft/advs-module/migrations/2020_10_15_130044_visiosoft.module.advs__create_productoptions_stream.php b/addons/default/visiosoft/advs-module/migrations/2020_10_15_130044_visiosoft.module.advs__create_productoptions_stream.php index 0f1e87a29..2961bbc3c 100644 --- a/addons/default/visiosoft/advs-module/migrations/2020_10_15_130044_visiosoft.module.advs__create_productoptions_stream.php +++ b/addons/default/visiosoft/advs-module/migrations/2020_10_15_130044_visiosoft.module.advs__create_productoptions_stream.php @@ -15,7 +15,7 @@ class VisiosoftModuleAdvsCreateProductoptionsStream extends Migration protected $delete = true; protected $fields = [ - 'categories' => [ + 'category' => [ 'type' => 'anomaly.field_type.select', 'config' => [ 'handler' => 'Visiosoft\AdvsModule\OptionHandler\CategoriesOptions@handle' @@ -43,7 +43,7 @@ class VisiosoftModuleAdvsCreateProductoptionsStream extends Migration * @var array */ protected $assignments = [ - 'categories', + 'category', 'name' => [ 'translatable' => true, 'required' => true, diff --git a/addons/default/visiosoft/advs-module/resources/lang/en/field.php b/addons/default/visiosoft/advs-module/resources/lang/en/field.php index f650cb5a0..6fd4f4005 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/en/field.php +++ b/addons/default/visiosoft/advs-module/resources/lang/en/field.php @@ -137,7 +137,9 @@ return [ 'oldest' => 'Oldest', 'address_a_z' => 'Address (A to Z)', 'address_z_a' => 'Address (Z to A)', - 'categories' => 'Categories', + 'categories' => [ + 'name' => 'Categories' + ], 'all_categories' => 'All Categories', 'location' => 'Location', 'send_message' => 'Send Message', diff --git a/addons/default/visiosoft/advs-module/resources/lang/en/section.php b/addons/default/visiosoft/advs-module/resources/lang/en/section.php index fa686c524..cdd4948d1 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/en/section.php +++ b/addons/default/visiosoft/advs-module/resources/lang/en/section.php @@ -46,18 +46,12 @@ return [ ], 'ads_image' => 'Ads Image', 'product_options' => [ - 'title' => 'Product Options', + 'title' => 'Options', ], 'productoptions_value' => [ - 'title' => 'Productoptions value', - ], - 'options_configuration' => [ - 'title' => 'Options configuration', + 'title' => 'Options Value', ], 'option_configuration' => [ - 'title' => 'Option configuration', - ], - 'option_configuration' => [ - 'title' => 'Option configuration', + 'title' => 'Configuration', ], ]; diff --git a/addons/default/visiosoft/advs-module/resources/lang/en/stream.php b/addons/default/visiosoft/advs-module/resources/lang/en/stream.php index bd46a1466..761fa569d 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/en/stream.php +++ b/addons/default/visiosoft/advs-module/resources/lang/en/stream.php @@ -23,18 +23,12 @@ return [ 'name' => 'Options', ], 'product_options' => [ - 'name' => 'Produc Options', + 'name' => 'Product Options', ], 'productoptions_value' => [ - 'name' => 'Productoptions value', - ], - 'options_configuration' => [ - 'name' => 'Options configuration', + 'name' => 'Options value', ], 'option_configuration' => [ - 'name' => 'Option configuration', - ], - 'option_configuration' => [ - 'name' => 'Option configuration', + 'name' => 'Configuration', ], ]; diff --git a/addons/default/visiosoft/advs-module/src/OptionHandler/CategoriesOptions.php b/addons/default/visiosoft/advs-module/src/OptionHandler/CategoriesOptions.php index 4083e31f0..ce3958242 100644 --- a/addons/default/visiosoft/advs-module/src/OptionHandler/CategoriesOptions.php +++ b/addons/default/visiosoft/advs-module/src/OptionHandler/CategoriesOptions.php @@ -15,7 +15,7 @@ class CategoriesOptions public function handle(SelectFieldType $fieldType) { $categories = $this->categoryRepository->mainCats(); - $options[] = $categories->pluck('name', 'id'); + $options = $categories->pluck('name', 'id')->all(); $fieldType->setOptions($options); } } \ No newline at end of file diff --git a/addons/default/visiosoft/advs-module/src/Productoption/Contract/ProductoptionRepositoryInterface.php b/addons/default/visiosoft/advs-module/src/Productoption/Contract/ProductoptionRepositoryInterface.php index 3f79de073..419fe12d1 100644 --- a/addons/default/visiosoft/advs-module/src/Productoption/Contract/ProductoptionRepositoryInterface.php +++ b/addons/default/visiosoft/advs-module/src/Productoption/Contract/ProductoptionRepositoryInterface.php @@ -4,5 +4,5 @@ use Anomaly\Streams\Platform\Entry\Contract\EntryRepositoryInterface; interface ProductoptionRepositoryInterface extends EntryRepositoryInterface { - + public function getWithCategoryId($id); } diff --git a/addons/default/visiosoft/advs-module/src/Productoption/ProductoptionRepository.php b/addons/default/visiosoft/advs-module/src/Productoption/ProductoptionRepository.php index 3bb583b27..639d328c8 100644 --- a/addons/default/visiosoft/advs-module/src/Productoption/ProductoptionRepository.php +++ b/addons/default/visiosoft/advs-module/src/Productoption/ProductoptionRepository.php @@ -22,4 +22,9 @@ class ProductoptionRepository extends EntryRepository implements ProductoptionRe { $this->model = $model; } + + public function getWithCategoryId($id) + { + return $this->findAllBy('category',$id); + } } diff --git a/addons/default/visiosoft/advs-module/src/Productoption/Table/ProductoptionTableBuilder.php b/addons/default/visiosoft/advs-module/src/Productoption/Table/ProductoptionTableBuilder.php index 50dbe3713..36dc31d43 100644 --- a/addons/default/visiosoft/advs-module/src/Productoption/Table/ProductoptionTableBuilder.php +++ b/addons/default/visiosoft/advs-module/src/Productoption/Table/ProductoptionTableBuilder.php @@ -1,10 +1,22 @@ getWithCategoryId(7)->pluck('id')->all(); + + $values = $value_repository->getWithOptionsId($options_id); + return parent::setTableEntries($values); + } /** * The table views. * diff --git a/addons/default/visiosoft/advs-module/src/ProductoptionsValue/Contract/ProductoptionsValueRepositoryInterface.php b/addons/default/visiosoft/advs-module/src/ProductoptionsValue/Contract/ProductoptionsValueRepositoryInterface.php index 80d519f08..8ad968cc2 100644 --- a/addons/default/visiosoft/advs-module/src/ProductoptionsValue/Contract/ProductoptionsValueRepositoryInterface.php +++ b/addons/default/visiosoft/advs-module/src/ProductoptionsValue/Contract/ProductoptionsValueRepositoryInterface.php @@ -4,5 +4,5 @@ use Anomaly\Streams\Platform\Entry\Contract\EntryRepositoryInterface; interface ProductoptionsValueRepositoryInterface extends EntryRepositoryInterface { - + public function getWithOptionsId(array $ids); } diff --git a/addons/default/visiosoft/advs-module/src/ProductoptionsValue/ProductoptionsValueRepository.php b/addons/default/visiosoft/advs-module/src/ProductoptionsValue/ProductoptionsValueRepository.php index 7dbc8e29e..0f68a0aec 100644 --- a/addons/default/visiosoft/advs-module/src/ProductoptionsValue/ProductoptionsValueRepository.php +++ b/addons/default/visiosoft/advs-module/src/ProductoptionsValue/ProductoptionsValueRepository.php @@ -6,20 +6,25 @@ use Anomaly\Streams\Platform\Entry\EntryRepository; class ProductoptionsValueRepository extends EntryRepository implements ProductoptionsValueRepositoryInterface { - /** - * The entry model. - * - * @var ProductoptionsValueModel - */ - protected $model; + /** + * The entry model. + * + * @var ProductoptionsValueModel + */ + protected $model; - /** - * Create a new ProductoptionsValueRepository instance. - * - * @param ProductoptionsValueModel $model - */ - public function __construct(ProductoptionsValueModel $model) - { - $this->model = $model; - } + /** + * Create a new ProductoptionsValueRepository instance. + * + * @param ProductoptionsValueModel $model + */ + public function __construct(ProductoptionsValueModel $model) + { + $this->model = $model; + } + + public function getWithOptionsId(array $ids) + { + return $this->newQuery()->whereIn('product_option_id', $ids)->get(); + } } diff --git a/addons/default/visiosoft/advs-module/src/ProductoptionsValue/Support/MultipleFieldType/LookupTableBuilder.php b/addons/default/visiosoft/advs-module/src/ProductoptionsValue/Support/MultipleFieldType/LookupTableBuilder.php index 07d441e94..da83a178c 100644 --- a/addons/default/visiosoft/advs-module/src/ProductoptionsValue/Support/MultipleFieldType/LookupTableBuilder.php +++ b/addons/default/visiosoft/advs-module/src/ProductoptionsValue/Support/MultipleFieldType/LookupTableBuilder.php @@ -1,5 +1,9 @@ getWithCategoryId(7)->pluck('id')->all(); + + $values = $value_repository->getWithOptionsId($options_id); + return parent::setTableEntries($values); + } protected $filters = [ 'product_option' From 047a21b2d40bfad9f4be264c2915b626ebbc89cd Mon Sep 17 00:00:00 2001 From: Muammer Top Date: Fri, 23 Oct 2020 19:02:57 +0300 Subject: [PATCH 08/10] =?UTF-8?q?#1879=20=C3=9Cr=C3=BCn=20se=C3=A7enekleri?= =?UTF-8?q?=20ve=20GET=20se=C3=A7enekleri?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OptionConfigurationController.php | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/addons/default/visiosoft/advs-module/src/Http/Controller/OptionConfigurationController.php b/addons/default/visiosoft/advs-module/src/Http/Controller/OptionConfigurationController.php index 5c63a842c..b3f4ce198 100644 --- a/addons/default/visiosoft/advs-module/src/Http/Controller/OptionConfigurationController.php +++ b/addons/default/visiosoft/advs-module/src/Http/Controller/OptionConfigurationController.php @@ -42,18 +42,20 @@ class OptionConfigurationController extends PublicController public function confAddCart() { - $conf = $this->optionConfigurationRepository->find($this->request->configuration); - $conf->name = $this->optionConfigurationRepository->getName($this->request->configuration); + if($conf = $this->optionConfigurationRepository->find($this->request->configuration)) + { + $conf->name = $conf->getName(); - $this->adv_model->authControl(); + $this->adv_model->authControl(); - if ($conf->stock < $this->request->quantity){ - return redirect()->back()->with('warning', [trans('visiosoft.module.carts::message.error1in2')]); - }else{ - $cart = $this->dispatch(new GetCart()); - $cart->add($conf, $this->request->quantity); - return $this->redirect->to(route('visiosoft.module.carts::cart')); + if ($conf->stock < $this->request->quantity){ + return redirect()->back()->with('warning', [trans('visiosoft.module.carts::message.error1in2')]); + }else{ + $cart = $this->dispatch(new GetCart()); + $cart->add($conf, $this->request->quantity); + return $this->redirect->to(route('visiosoft.module.carts::cart')); + } } } } From 48b6791ed7ceb8b89f2a752ae818900358ac3aba Mon Sep 17 00:00:00 2001 From: Muammer Top Date: Fri, 23 Oct 2020 19:03:02 +0300 Subject: [PATCH 09/10] =?UTF-8?q?#1879=20=C3=9Cr=C3=BCn=20se=C3=A7enekleri?= =?UTF-8?q?=20ve=20GET=20se=C3=A7enekleri?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Contract/OptionConfigurationInterface.php | 2 +- .../OptionConfigurationRepositoryInterface.php | 2 -- .../OptionConfigurationModel.php | 17 +++++++++++++++++ .../OptionConfigurationRepository.php | 15 --------------- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/addons/default/visiosoft/advs-module/src/OptionConfiguration/Contract/OptionConfigurationInterface.php b/addons/default/visiosoft/advs-module/src/OptionConfiguration/Contract/OptionConfigurationInterface.php index 4d26c2bf8..99be0f686 100644 --- a/addons/default/visiosoft/advs-module/src/OptionConfiguration/Contract/OptionConfigurationInterface.php +++ b/addons/default/visiosoft/advs-module/src/OptionConfiguration/Contract/OptionConfigurationInterface.php @@ -4,5 +4,5 @@ use Anomaly\Streams\Platform\Entry\Contract\EntryInterface; interface OptionConfigurationInterface extends EntryInterface { - + public function getName(); } diff --git a/addons/default/visiosoft/advs-module/src/OptionConfiguration/Contract/OptionConfigurationRepositoryInterface.php b/addons/default/visiosoft/advs-module/src/OptionConfiguration/Contract/OptionConfigurationRepositoryInterface.php index a72308585..d483bd89c 100644 --- a/addons/default/visiosoft/advs-module/src/OptionConfiguration/Contract/OptionConfigurationRepositoryInterface.php +++ b/addons/default/visiosoft/advs-module/src/OptionConfiguration/Contract/OptionConfigurationRepositoryInterface.php @@ -7,6 +7,4 @@ interface OptionConfigurationRepositoryInterface extends EntryRepositoryInterfac public function createConfigration($ad_id,$price,$currency,$stock,$option_json); public function getConf($ad_id); - - public function getName($id); } diff --git a/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationModel.php b/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationModel.php index 8b862fe54..c7153d80d 100644 --- a/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationModel.php +++ b/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationModel.php @@ -1,10 +1,27 @@ find($this->parent_adv_id)) + { + $configurations_item = json_decode($this->option_json, true); + $option_group_value = ""; + foreach ($configurations_item as $option_id => $value) { + $value_entry = app(ProductoptionsValueRepositoryInterface::class)->find($value); + $option_group_value .= " " . $value_entry->getName(); + } + + return $adv->name . ' | ' . trim($option_group_value, ' '); + } + } } diff --git a/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationRepository.php b/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationRepository.php index 1ed025ce3..a471830d6 100644 --- a/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationRepository.php +++ b/addons/default/visiosoft/advs-module/src/OptionConfiguration/OptionConfigurationRepository.php @@ -70,19 +70,4 @@ class OptionConfigurationRepository extends EntryRepository implements OptionCon return $configurations; } - - public function getName($id){ - $configuration = $this->find($id); - $adv = $this->advRepository->getName($configuration->parent_adv_id); - - $configurations_item = json_decode($configuration->option_json, true); - $option_group_value = ""; - - foreach ($configurations_item as $option_id => $value) { - $value_entry = $this->productOptionsValueRepository->find($value); - $option_group_value .= " " . $value_entry->getName(); - } - - return $adv . ' | ' . trim($option_group_value, ' '); - } } From 3b226fc6d4ff328ab9b97c654692353cb13a6f87 Mon Sep 17 00:00:00 2001 From: Muammer Top Date: Mon, 26 Oct 2020 15:03:11 +0300 Subject: [PATCH 10/10] #2469 oc product options error fixed --- ...visiosoft.module.advs__create_option_configuration_stream.php | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/default/visiosoft/advs-module/migrations/2020_10_16_124151_visiosoft.module.advs__create_option_configuration_stream.php b/addons/default/visiosoft/advs-module/migrations/2020_10_16_124151_visiosoft.module.advs__create_option_configuration_stream.php index 456ec6a8c..b42c31acf 100644 --- a/addons/default/visiosoft/advs-module/migrations/2020_10_16_124151_visiosoft.module.advs__create_option_configuration_stream.php +++ b/addons/default/visiosoft/advs-module/migrations/2020_10_16_124151_visiosoft.module.advs__create_option_configuration_stream.php @@ -52,7 +52,6 @@ class VisiosoftModuleAdvsCreateOptionConfigurationStream extends Migration ], 'option_json' => [ 'required' => true, - 'unique' => true, ], ];