From afb2c202d6ea8f172ce5ea8be3e9185c47a45a78 Mon Sep 17 00:00:00 2001 From: Sampanna Rimal Date: Wed, 11 Sep 2024 12:32:15 +0545 Subject: [PATCH] changes --- .../app/Http/Controllers/OrderController.php | 3 +- .../Controllers/PaymentModeController.php | 84 +++++++ .../app/Models/PaymentMode.php | 5 +- .../app/Repositories/PaymentModeInterface.php | 15 ++ .../Repositories/PaymentModeRepository.php | 46 ++++ .../views/order/clone-product.blade.php | 2 +- .../views/paymentmode/create.blade.php} | 0 .../views/paymentmode/edit.blade.php} | 0 .../views/paymentmode/index.blade.php} | 0 .../paymentmode/partials/action.blade.php} | 0 .../views/paymentmode/show.blade.php} | 0 .../Controllers/FabricCategoryController.php | 111 +++++++++ .../Http/Controllers/ProductController.php | 21 ++ Modules/Product/app/Models/FabricCategory.php | 16 ++ Modules/Product/app/Models/Product.php | 7 + .../app/Providers/ProductServiceProvider.php | 7 + .../Repositories/FabricCategoryInterface.php | 15 ++ .../Repositories/FabricCategoryRepository.php | 46 ++++ .../app/Repositories/ProductRepository.php | 1 + ...024_05_06_151439_create_products_table.php | 7 +- ...1854_create_tbl_fabriccategories_table.php | 6 +- ...03_161929_create_tbl_masterunits_table.php | 6 +- ...4_09_03_162203_create_tbl_stocks_table.php | 13 +- ...3_164741_create_tbl_paymentmodes_table.php | 6 +- ...123611_create_tbl_stocklocations_table.php | 39 ++++ .../views/fabric_category/create.blade.php | 16 ++ .../views/fabric_category/edit.blade.php | 23 ++ .../views/fabric_category/index.blade.php | 72 ++++++ .../fabric_category/partials/action.blade.php | 60 +++++ .../views/fabric_category/show.blade.php | 45 ++++ .../resources/views/product/index.blade.php | 19 +- .../views/product/partials/action.blade.php | 36 ++- .../resources/views/product/show.blade.php | 22 +- Modules/Product/routes/web.php | 3 + .../app/Http/Controllers}/.gitkeep | 0 .../Http/Controllers/SalesEntryController.php | 135 +++++++++++ .../app/Http/Requests}/.gitkeep | 0 .../app/Models}/.gitkeep | 0 Modules/SalesEntry/app/Models/SalesEntry.php | 33 +++ .../app/Models/SalesEntryDetail.php | 25 ++ .../app/Observers}/.gitkeep | 0 .../app/Providers}/.gitkeep | 0 .../app/Providers/EventServiceProvider.php | 32 +++ .../app/Providers/RouteServiceProvider.php | 49 ++++ .../Providers/SalesEntryServiceProvider.php | 123 ++++++++++ .../app/Repositories}/.gitkeep | 0 .../app/Repositories/SalesEntryInterface.php | 17 ++ .../app/Repositories/SalesEntryRepository.php | 119 ++++++++++ Modules/SalesEntry/composer.json | 30 +++ .../views => SalesEntry/config}/.gitkeep | 0 Modules/SalesEntry/config/config.php | 5 + .../database/factories}/.gitkeep | 0 .../database/migrations}/.gitkeep | 0 ...09_09_130433_create_salesentries_table.php | 47 ++++ ..._130316_create_salesentrydetails_table.php | 44 ++++ .../database/seeders}/.gitkeep | 0 .../seeders/SalesEntryDatabaseSeeder.php | 16 ++ Modules/SalesEntry/module.json | 11 + Modules/{Settings => SalesEntry}/package.json | 0 .../resources/assets}/.gitkeep | 0 .../resources/assets/js/app.js | 0 .../resources/assets/sass/app.scss | 0 .../resources/views}/.gitkeep | 0 .../resources/views/index.blade.php | 7 + .../resources/views/layouts/master.blade.php | 29 +++ .../views/salesEntry/clone-product.blade.php | 46 ++++ .../views/salesEntry/create.blade.php | 27 +++ .../resources/views/salesEntry/edit.blade.php | 47 ++++ .../views/salesEntry/index.blade.php | 68 ++++++ .../salesEntry/partials/action.blade.php | 219 ++++++++++++++++++ .../views/salesEntry/partials/view.blade.php | 16 ++ .../views/salesEntry/show.blade.php} | 0 .../routes}/.gitkeep | 0 Modules/SalesEntry/routes/api.php | 19 ++ .../{Settings => SalesEntry}/routes/web.php | 5 +- Modules/SalesEntry/vite.config.js | 26 +++ .../app/Http/Controllers}/.gitkeep | 0 .../Http/Controllers/SettingController.php | 106 +++++++++ .../app/Http/Requests}/.gitkeep | 0 .../app/Models}/.gitkeep | 0 .../app/Models/Setting.php | 2 +- .../app/Observers}/.gitkeep | 0 .../assets => Setting/app/Providers}/.gitkeep | 0 .../app/Providers/EventServiceProvider.php | 2 +- .../app/Providers/RouteServiceProvider.php | 6 +- .../app/Providers/SettingServiceProvider.php} | 8 +- .../app/Repositories}/.gitkeep | 0 .../app/Repositories/SettingInterface.php | 15 ++ .../app/Repositories/SettingRepository.php | 46 ++++ Modules/{Settings => Setting}/composer.json | 10 +- .../routes => Setting/config}/.gitkeep | 0 Modules/Setting/config/config.php | 5 + .../database/factories/.gitkeep} | 0 .../database/migrations/.gitkeep} | 0 Modules/Setting/database/seeders/.gitkeep | 0 .../seeders/SettingDatabaseSeeder.php} | 4 +- Modules/Setting/module.json | 11 + Modules/{Stocks => Setting}/package.json | 0 Modules/Setting/resources/assets/.gitkeep | 0 Modules/Setting/resources/assets/js/app.js | 0 .../Setting/resources/assets/sass/app.scss | 0 Modules/Setting/resources/views/.gitkeep | 0 .../resources/views/Setting/edit.blade.php | 23 ++ .../views/Setting/partials/action.blade.php | 164 +++++++++++++ .../Setting/resources/views/index.blade.php | 7 + .../resources/views/layouts/master.blade.php | 6 +- Modules/Setting/routes/.gitkeep | 0 Modules/{Settings => Setting}/routes/api.php | 4 +- Modules/{Stocks => Setting}/routes/web.php | 4 +- Modules/{Settings => Setting}/vite.config.js | 8 +- .../Http/Controllers/SettingsController.php | 67 ------ Modules/Settings/config/config.php | 5 - Modules/Settings/module.json | 11 - .../Settings/resources/views/index.blade.php | 7 - Modules/Stock/app/Http/Controllers/.gitkeep | 0 .../app/Http/Controllers/StockController.php | 97 ++++++++ .../Controllers/StockLocationController.php | 84 +++++++ Modules/Stock/app/Http/Requests/.gitkeep | 0 Modules/Stock/app/Models/.gitkeep | 0 Modules/Stock/app/Models/Stock.php | 27 +++ .../app/Models/StockLocation.php} | 11 +- Modules/Stock/app/Observers/.gitkeep | 0 Modules/Stock/app/Providers/.gitkeep | 0 .../app/Providers/EventServiceProvider.php | 2 +- .../app/Providers/RouteServiceProvider.php | 6 +- .../app/Providers/StockServiceProvider.php} | 11 +- Modules/Stock/app/Repositories/.gitkeep | 0 .../Stock/app/Repositories/StockInterface.php | 15 ++ .../Repositories/StockLocationInterface.php | 15 ++ .../Repositories/StockLocationRepository.php | 46 ++++ .../app/Repositories/StockRepository.php | 46 ++++ Modules/{Stocks => Stock}/composer.json | 10 +- Modules/Stock/config/.gitkeep | 0 Modules/Stock/config/config.php | 5 + Modules/Stock/database/factories/.gitkeep | 0 Modules/Stock/database/migrations/.gitkeep | 0 Modules/Stock/database/seeders/.gitkeep | 0 .../database/seeders/StockDatabaseSeeder.php} | 4 +- Modules/{Stocks => Stock}/module.json | 6 +- Modules/Stock/package.json | 15 ++ Modules/Stock/resources/assets/.gitkeep | 0 Modules/Stock/resources/assets/js/app.js | 0 Modules/Stock/resources/assets/sass/app.scss | 0 Modules/Stock/resources/views/.gitkeep | 0 .../resources/views/Stock/create.blade.php | 19 ++ .../resources/views/Stock/edit.blade.php | 23 ++ .../resources/views/Stock/index.blade.php | 83 +++++++ .../views/Stock/partials/action.blade.php | 83 +++++++ .../resources/views/Stock/show.blade.php | 82 +++++++ .../views/StockLocation/create.blade.php | 16 ++ .../views/StockLocation/edit.blade.php | 23 ++ .../views/StockLocation/index.blade.php | 70 ++++++ .../StockLocation/partials/action.blade.php | 54 +++++ .../views/StockLocation/show.blade.php | 45 ++++ Modules/Stock/resources/views/index.blade.php | 7 + .../resources/views/layouts/master.blade.php | 6 +- Modules/Stock/routes/.gitkeep | 0 Modules/{Stocks => Stock}/routes/api.php | 4 +- Modules/Stock/routes/web.php | 23 ++ Modules/{Stocks => Stock}/vite.config.js | 8 +- .../app/Http/Controllers/StocksController.php | 67 ------ Modules/Stocks/config/config.php | 5 - .../Stocks/resources/views/index.blade.php | 7 - app/Helpers/BIBStocks.php | 2 +- ...09_03_161257_create_tbl_settings_table.php | 4 +- modules_statuses.json | 5 +- .../views/layouts/partials/sidebar.blade.php | 23 ++ vendor/composer/autoload_classmap.php | 50 ++-- vendor/composer/autoload_psr4.php | 20 +- vendor/composer/autoload_static.php | 118 +++++++--- 170 files changed, 3352 insertions(+), 363 deletions(-) create mode 100644 Modules/Order/app/Http/Controllers/PaymentModeController.php rename Modules/{Stocks => Order}/app/Models/PaymentMode.php (80%) create mode 100644 Modules/Order/app/Repositories/PaymentModeInterface.php create mode 100644 Modules/Order/app/Repositories/PaymentModeRepository.php rename Modules/{Settings/app/Http/Controllers/.gitkeep => Order/resources/views/paymentmode/create.blade.php} (100%) rename Modules/{Settings/app/Http/Requests/.gitkeep => Order/resources/views/paymentmode/edit.blade.php} (100%) rename Modules/{Settings/app/Models/.gitkeep => Order/resources/views/paymentmode/index.blade.php} (100%) rename Modules/{Settings/app/Observers/.gitkeep => Order/resources/views/paymentmode/partials/action.blade.php} (100%) rename Modules/{Settings/app/Providers/.gitkeep => Order/resources/views/paymentmode/show.blade.php} (100%) create mode 100644 Modules/Product/app/Http/Controllers/FabricCategoryController.php create mode 100644 Modules/Product/app/Models/FabricCategory.php create mode 100644 Modules/Product/app/Repositories/FabricCategoryInterface.php create mode 100644 Modules/Product/app/Repositories/FabricCategoryRepository.php rename {database => Modules/Product/database}/migrations/2024_09_03_161854_create_tbl_fabriccategories_table.php (87%) rename {database => Modules/Product/database}/migrations/2024_09_03_161929_create_tbl_masterunits_table.php (87%) rename {database => Modules/Product/database}/migrations/2024_09_03_162203_create_tbl_stocks_table.php (82%) rename {database => Modules/Product/database}/migrations/2024_09_03_164741_create_tbl_paymentmodes_table.php (87%) create mode 100644 Modules/Product/database/migrations/2024_09_04_123611_create_tbl_stocklocations_table.php create mode 100644 Modules/Product/resources/views/fabric_category/create.blade.php create mode 100644 Modules/Product/resources/views/fabric_category/edit.blade.php create mode 100644 Modules/Product/resources/views/fabric_category/index.blade.php create mode 100644 Modules/Product/resources/views/fabric_category/partials/action.blade.php create mode 100644 Modules/Product/resources/views/fabric_category/show.blade.php rename Modules/{Settings/app/Repositories => SalesEntry/app/Http/Controllers}/.gitkeep (100%) create mode 100644 Modules/SalesEntry/app/Http/Controllers/SalesEntryController.php rename Modules/{Settings/config => SalesEntry/app/Http/Requests}/.gitkeep (100%) rename Modules/{Settings/database/factories => SalesEntry/app/Models}/.gitkeep (100%) create mode 100644 Modules/SalesEntry/app/Models/SalesEntry.php create mode 100644 Modules/SalesEntry/app/Models/SalesEntryDetail.php rename Modules/{Settings/database/migrations => SalesEntry/app/Observers}/.gitkeep (100%) rename Modules/{Settings/database/seeders => SalesEntry/app/Providers}/.gitkeep (100%) create mode 100644 Modules/SalesEntry/app/Providers/EventServiceProvider.php create mode 100644 Modules/SalesEntry/app/Providers/RouteServiceProvider.php create mode 100644 Modules/SalesEntry/app/Providers/SalesEntryServiceProvider.php rename Modules/{Settings/resources/assets => SalesEntry/app/Repositories}/.gitkeep (100%) create mode 100644 Modules/SalesEntry/app/Repositories/SalesEntryInterface.php create mode 100644 Modules/SalesEntry/app/Repositories/SalesEntryRepository.php create mode 100644 Modules/SalesEntry/composer.json rename Modules/{Settings/resources/views => SalesEntry/config}/.gitkeep (100%) create mode 100644 Modules/SalesEntry/config/config.php rename Modules/{Settings/routes => SalesEntry/database/factories}/.gitkeep (100%) rename Modules/{Stocks/app/Http/Controllers => SalesEntry/database/migrations}/.gitkeep (100%) create mode 100644 Modules/SalesEntry/database/migrations/2024_09_09_130433_create_salesentries_table.php create mode 100644 Modules/SalesEntry/database/migrations/2024_09_10_130316_create_salesentrydetails_table.php rename Modules/{Stocks/app/Http/Requests => SalesEntry/database/seeders}/.gitkeep (100%) create mode 100644 Modules/SalesEntry/database/seeders/SalesEntryDatabaseSeeder.php create mode 100644 Modules/SalesEntry/module.json rename Modules/{Settings => SalesEntry}/package.json (100%) rename Modules/{Stocks/app/Models => SalesEntry/resources/assets}/.gitkeep (100%) rename Modules/{Settings => SalesEntry}/resources/assets/js/app.js (100%) rename Modules/{Settings => SalesEntry}/resources/assets/sass/app.scss (100%) rename Modules/{Stocks/app/Observers => SalesEntry/resources/views}/.gitkeep (100%) create mode 100644 Modules/SalesEntry/resources/views/index.blade.php create mode 100644 Modules/SalesEntry/resources/views/layouts/master.blade.php create mode 100644 Modules/SalesEntry/resources/views/salesEntry/clone-product.blade.php create mode 100644 Modules/SalesEntry/resources/views/salesEntry/create.blade.php create mode 100644 Modules/SalesEntry/resources/views/salesEntry/edit.blade.php create mode 100644 Modules/SalesEntry/resources/views/salesEntry/index.blade.php create mode 100644 Modules/SalesEntry/resources/views/salesEntry/partials/action.blade.php create mode 100644 Modules/SalesEntry/resources/views/salesEntry/partials/view.blade.php rename Modules/{Stocks/app/Providers/.gitkeep => SalesEntry/resources/views/salesEntry/show.blade.php} (100%) rename Modules/{Stocks/app/Repositories => SalesEntry/routes}/.gitkeep (100%) create mode 100644 Modules/SalesEntry/routes/api.php rename Modules/{Settings => SalesEntry}/routes/web.php (62%) create mode 100644 Modules/SalesEntry/vite.config.js rename Modules/{Stocks/config => Setting/app/Http/Controllers}/.gitkeep (100%) create mode 100644 Modules/Setting/app/Http/Controllers/SettingController.php rename Modules/{Stocks/database/factories => Setting/app/Http/Requests}/.gitkeep (100%) rename Modules/{Stocks/database/migrations => Setting/app/Models}/.gitkeep (100%) rename Modules/{Settings => Setting}/app/Models/Setting.php (86%) rename Modules/{Stocks/database/seeders => Setting/app/Observers}/.gitkeep (100%) rename Modules/{Stocks/resources/assets => Setting/app/Providers}/.gitkeep (100%) rename Modules/{Settings => Setting}/app/Providers/EventServiceProvider.php (94%) rename Modules/{Settings => Setting}/app/Providers/RouteServiceProvider.php (85%) rename Modules/{Stocks/app/Providers/StocksServiceProvider.php => Setting/app/Providers/SettingServiceProvider.php} (94%) rename Modules/{Stocks/resources/views => Setting/app/Repositories}/.gitkeep (100%) create mode 100644 Modules/Setting/app/Repositories/SettingInterface.php create mode 100644 Modules/Setting/app/Repositories/SettingRepository.php rename Modules/{Settings => Setting}/composer.json (57%) rename Modules/{Stocks/routes => Setting/config}/.gitkeep (100%) create mode 100644 Modules/Setting/config/config.php rename Modules/{Stocks/resources/assets/js/app.js => Setting/database/factories/.gitkeep} (100%) rename Modules/{Stocks/resources/assets/sass/app.scss => Setting/database/migrations/.gitkeep} (100%) create mode 100644 Modules/Setting/database/seeders/.gitkeep rename Modules/{Settings/database/seeders/SettingsDatabaseSeeder.php => Setting/database/seeders/SettingDatabaseSeeder.php} (64%) create mode 100644 Modules/Setting/module.json rename Modules/{Stocks => Setting}/package.json (100%) create mode 100644 Modules/Setting/resources/assets/.gitkeep create mode 100644 Modules/Setting/resources/assets/js/app.js create mode 100644 Modules/Setting/resources/assets/sass/app.scss create mode 100644 Modules/Setting/resources/views/.gitkeep create mode 100644 Modules/Setting/resources/views/Setting/edit.blade.php create mode 100644 Modules/Setting/resources/views/Setting/partials/action.blade.php create mode 100644 Modules/Setting/resources/views/index.blade.php rename Modules/{Settings => Setting}/resources/views/layouts/master.blade.php (76%) create mode 100644 Modules/Setting/routes/.gitkeep rename Modules/{Settings => Setting}/routes/api.php (78%) rename Modules/{Stocks => Setting}/routes/web.php (77%) rename Modules/{Settings => Setting}/vite.config.js (70%) delete mode 100644 Modules/Settings/app/Http/Controllers/SettingsController.php delete mode 100644 Modules/Settings/config/config.php delete mode 100644 Modules/Settings/module.json delete mode 100644 Modules/Settings/resources/views/index.blade.php create mode 100644 Modules/Stock/app/Http/Controllers/.gitkeep create mode 100644 Modules/Stock/app/Http/Controllers/StockController.php create mode 100644 Modules/Stock/app/Http/Controllers/StockLocationController.php create mode 100644 Modules/Stock/app/Http/Requests/.gitkeep create mode 100644 Modules/Stock/app/Models/.gitkeep create mode 100644 Modules/Stock/app/Models/Stock.php rename Modules/{Stocks/app/Models/Stock.php => Stock/app/Models/StockLocation.php} (52%) create mode 100644 Modules/Stock/app/Observers/.gitkeep create mode 100644 Modules/Stock/app/Providers/.gitkeep rename Modules/{Stocks => Stock}/app/Providers/EventServiceProvider.php (94%) rename Modules/{Stocks => Stock}/app/Providers/RouteServiceProvider.php (85%) rename Modules/{Settings/app/Providers/SettingsServiceProvider.php => Stock/app/Providers/StockServiceProvider.php} (90%) create mode 100644 Modules/Stock/app/Repositories/.gitkeep create mode 100644 Modules/Stock/app/Repositories/StockInterface.php create mode 100644 Modules/Stock/app/Repositories/StockLocationInterface.php create mode 100644 Modules/Stock/app/Repositories/StockLocationRepository.php create mode 100644 Modules/Stock/app/Repositories/StockRepository.php rename Modules/{Stocks => Stock}/composer.json (58%) create mode 100644 Modules/Stock/config/.gitkeep create mode 100644 Modules/Stock/config/config.php create mode 100644 Modules/Stock/database/factories/.gitkeep create mode 100644 Modules/Stock/database/migrations/.gitkeep create mode 100644 Modules/Stock/database/seeders/.gitkeep rename Modules/{Stocks/database/seeders/StocksDatabaseSeeder.php => Stock/database/seeders/StockDatabaseSeeder.php} (65%) rename Modules/{Stocks => Stock}/module.json (50%) create mode 100644 Modules/Stock/package.json create mode 100644 Modules/Stock/resources/assets/.gitkeep create mode 100644 Modules/Stock/resources/assets/js/app.js create mode 100644 Modules/Stock/resources/assets/sass/app.scss create mode 100644 Modules/Stock/resources/views/.gitkeep create mode 100644 Modules/Stock/resources/views/Stock/create.blade.php create mode 100644 Modules/Stock/resources/views/Stock/edit.blade.php create mode 100644 Modules/Stock/resources/views/Stock/index.blade.php create mode 100644 Modules/Stock/resources/views/Stock/partials/action.blade.php create mode 100644 Modules/Stock/resources/views/Stock/show.blade.php create mode 100644 Modules/Stock/resources/views/StockLocation/create.blade.php create mode 100644 Modules/Stock/resources/views/StockLocation/edit.blade.php create mode 100644 Modules/Stock/resources/views/StockLocation/index.blade.php create mode 100644 Modules/Stock/resources/views/StockLocation/partials/action.blade.php create mode 100644 Modules/Stock/resources/views/StockLocation/show.blade.php create mode 100644 Modules/Stock/resources/views/index.blade.php rename Modules/{Stocks => Stock}/resources/views/layouts/master.blade.php (76%) create mode 100644 Modules/Stock/routes/.gitkeep rename Modules/{Stocks => Stock}/routes/api.php (79%) create mode 100644 Modules/Stock/routes/web.php rename Modules/{Stocks => Stock}/vite.config.js (71%) delete mode 100644 Modules/Stocks/app/Http/Controllers/StocksController.php delete mode 100644 Modules/Stocks/config/config.php delete mode 100644 Modules/Stocks/resources/views/index.blade.php diff --git a/Modules/Order/app/Http/Controllers/OrderController.php b/Modules/Order/app/Http/Controllers/OrderController.php index 5aee5f5..8dc5a0e 100644 --- a/Modules/Order/app/Http/Controllers/OrderController.php +++ b/Modules/Order/app/Http/Controllers/OrderController.php @@ -96,7 +96,8 @@ class OrderController extends Controller $data = []; $numInc = $request->numberInc; $script = true; - $productList= $this->productRepository->pluck(); + $productList= $this->productRepository->pluck('id'); + dd($productList); return response()->json([ 'view' => view('order::order.clone-product', compact('data', 'numInc', 'script', 'productList'))->render(), diff --git a/Modules/Order/app/Http/Controllers/PaymentModeController.php b/Modules/Order/app/Http/Controllers/PaymentModeController.php new file mode 100644 index 0000000..27c955e --- /dev/null +++ b/Modules/Order/app/Http/Controllers/PaymentModeController.php @@ -0,0 +1,84 @@ +paymentModeRepository = $paymentModeRepository; + } + + public function index() + { + $data['title'] = 'Payment Modes'; + $data['paymentModes'] = $this->paymentModeRepository->findAll(); + return view('order::paymentMode.index', $data); + } + + public function create() + { + $data['title'] = 'Create Payment Mode'; + $data['status'] = PaymentMode::STATUS; + + return view('order::paymentMode.create', $data); + } + + public function store(Request $request): RedirectResponse + { + $request->request->add(['slug' => slugify($request->title)]); + $inputData = $request->all(); + $this->paymentModeRepository->create($inputData); + toastr()->success('Payment Mode Created Successfully'); + + return redirect()->route('paymentMode.index'); + } + + public function show($id) + { + $data['title'] = 'Show Payment Mode'; + $data['status'] = PaymentMode::STATUS; + $data['paymentMode'] = $this->paymentModeRepository->getPaymentModeById($id); + + return view('order::paymentMode.show', $data); + } + + public function edit($id) + { + $data['title'] = 'Edit Payment Mode'; + $data['status'] = PaymentMode::STATUS; + $data['paymentMode'] = $this->paymentModeRepository->getPaymentModeById($id); + + return view('order::paymentMode.edit', $data); + } + + public function update(Request $request, $id): RedirectResponse + { + $inputData = $request->except(['_method', '_token']); + $this->paymentModeRepository->update($id, $inputData); + + return redirect()->route('paymentMode.index'); + } + + public function destroy($id) + { + try { + $stock = $this->paymentModeRepository->getPaymentModeById($id); + $stock->delete(); + + toastr()->success('Payment Mode Deleted Successfully'); + } catch (\Throwable $th) { + toastr()->error($th->getMessage()); + } + + return response()->json(['status' => true, 'message' => 'Payment Mode Deleted Successfully']); + } +} diff --git a/Modules/Stocks/app/Models/PaymentMode.php b/Modules/Order/app/Models/PaymentMode.php similarity index 80% rename from Modules/Stocks/app/Models/PaymentMode.php rename to Modules/Order/app/Models/PaymentMode.php index 7807968..4ffd235 100644 --- a/Modules/Stocks/app/Models/PaymentMode.php +++ b/Modules/Order/app/Models/PaymentMode.php @@ -1,15 +1,16 @@ paginate(20); + } + + public function getPaymentModeById($PaymentModeId) + { + return PaymentMode::findOrFail($PaymentModeId); + } + + public function getPaymentModeByEmail($email) + { + return PaymentMode::where('email', $email)->first(); + } + + public function delete($PaymentModeId) + { + PaymentMode::destroy($PaymentModeId); + } + + public function create($PaymentModeDetails) + { + return PaymentMode::create($PaymentModeDetails); + } + + public function update($PaymentModeId, array $newDetails) + { + return PaymentMode::whereId($PaymentModeId)->update($newDetails); + } + + public function pluck() + { + return PaymentMode::pluck('name', 'id'); + } + +} diff --git a/Modules/Order/resources/views/order/clone-product.blade.php b/Modules/Order/resources/views/order/clone-product.blade.php index 339e241..61d934d 100644 --- a/Modules/Order/resources/views/order/clone-product.blade.php +++ b/Modules/Order/resources/views/order/clone-product.blade.php @@ -2,7 +2,7 @@
{{ html()->label('Product')->class('form-label') }} - {{ html()->select('product_id', $productList)->class('form-control')->placeholder('Enter Product Name')->required() }} + {{ html()->select('product_id[]', $productList)->class('form-control')->placeholder('Enter Product Name')->required() }}
diff --git a/Modules/Settings/app/Http/Controllers/.gitkeep b/Modules/Order/resources/views/paymentmode/create.blade.php similarity index 100% rename from Modules/Settings/app/Http/Controllers/.gitkeep rename to Modules/Order/resources/views/paymentmode/create.blade.php diff --git a/Modules/Settings/app/Http/Requests/.gitkeep b/Modules/Order/resources/views/paymentmode/edit.blade.php similarity index 100% rename from Modules/Settings/app/Http/Requests/.gitkeep rename to Modules/Order/resources/views/paymentmode/edit.blade.php diff --git a/Modules/Settings/app/Models/.gitkeep b/Modules/Order/resources/views/paymentmode/index.blade.php similarity index 100% rename from Modules/Settings/app/Models/.gitkeep rename to Modules/Order/resources/views/paymentmode/index.blade.php diff --git a/Modules/Settings/app/Observers/.gitkeep b/Modules/Order/resources/views/paymentmode/partials/action.blade.php similarity index 100% rename from Modules/Settings/app/Observers/.gitkeep rename to Modules/Order/resources/views/paymentmode/partials/action.blade.php diff --git a/Modules/Settings/app/Providers/.gitkeep b/Modules/Order/resources/views/paymentmode/show.blade.php similarity index 100% rename from Modules/Settings/app/Providers/.gitkeep rename to Modules/Order/resources/views/paymentmode/show.blade.php diff --git a/Modules/Product/app/Http/Controllers/FabricCategoryController.php b/Modules/Product/app/Http/Controllers/FabricCategoryController.php new file mode 100644 index 0000000..18466d9 --- /dev/null +++ b/Modules/Product/app/Http/Controllers/FabricCategoryController.php @@ -0,0 +1,111 @@ +fabricCategoryRepository = $fabricCategoryRepository; + } + + public function index() + { + $data['title'] = 'Fabric Categories List'; + $data['fabric_categories'] = $this->fabricCategoryRepository->findAll(); + + return view('product::fabric_category.index', $data); + } + + /** + * Show the form for creating a new resource. + */ + public function create() + { + $data['title'] = 'Create Fabric Categories'; + $data['status'] = FabricCategory::STATUS; + + return view('product::fabric_category.create', $data); + } + + /** + * Store a newly created resource in storage. + */ + public function store(Request $request): RedirectResponse + { + + $request->request->add(['slug' => slugify($request->title)]); + $inputData = $request->all(); + $this->fabricCategoryRepository->create($inputData); + toastr()->success('Category Created Succesfully'); + + return redirect()->route('fabricCategory.index'); + } + + /** + * Show the specified resource. + */ + public function show($id) + { + $data['title'] = 'Show Fabric Category'; + $data['status'] = FabricCategory::STATUS; + $data['fabric_category'] = $this->fabricCategoryRepository->getFabricCategoryById($id); + + return view('product::fabric_category.show', $data); + } + + /** + * Show the form for editing the specified resource. + */ + public function edit($id) + { + $data['title'] = 'Edit Fabric Category'; + $data['status'] = FabricCategory::STATUS; + $data['fabric_category'] = $this->fabricCategoryRepository->getFabricCategoryById($id); + + return view('product::fabric_category.edit', $data); + } + + /** + * Update the specified resource in storage. + */ + public function update(Request $request, $id): RedirectResponse + { + $inputData = $request->except(['_method', '_token']); + $this->fabricCategoryRepository->update($id, $inputData); + + return redirect()->route('fabricCategory.index'); + } + + /** + * Remove the specified resource from storage. + */ + public function destroy($id) + { + try { + $FabricCategoryModel = $this->fabricCategoryRepository->getFabricCategoryById($id); + $FabricCategoryModel->delete(); + + toastr()->success('Fabric Category Delete Succesfully'); + } catch (\Throwable $th) { + toastr()->error($th->getMessage()); + } + + return response()->json(['status' => true, 'message' => 'Fabric Category Delete Succesfully']); + } + +} + + diff --git a/Modules/Product/app/Http/Controllers/ProductController.php b/Modules/Product/app/Http/Controllers/ProductController.php index 611f731..a82713d 100644 --- a/Modules/Product/app/Http/Controllers/ProductController.php +++ b/Modules/Product/app/Http/Controllers/ProductController.php @@ -5,8 +5,10 @@ namespace Modules\Product\Http\Controllers; use App\Http\Controllers\Controller; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; +use Modules\Product\Models\FabricCategory; use Modules\Product\Models\Product; use Modules\Product\Repositories\CategoryRepository; +use Modules\Product\Repositories\FabricCategoryRepository; use Modules\Product\Repositories\ProductInterface; use Modules\Product\Repositories\ProductRepository; use Modules\Product\Repositories\SubCategoryRepository; @@ -19,6 +21,7 @@ class ProductController extends Controller private $productRepository; private $categoryRepository; private $subCategoryRepository; + private $fabricCategoryRepository; private $warehouseRepository; private $supplierRepository; @@ -29,11 +32,13 @@ class ProductController extends Controller CategoryRepository $categoryRepository, SubCategoryRepository $subCategoryRepository, SupplierRepository $supplierRepository, + FabricCategoryRepository $fabricCategoryRepository, WarehouseRepository $warehouseRepository) { $this->productRepository = $productRepository; $this->categoryRepository = $categoryRepository; $this->subCategoryRepository = $subCategoryRepository; + $this->fabricCategoryRepository = $fabricCategoryRepository; $this->supplierRepository = $supplierRepository; $this->warehouseRepository = $warehouseRepository; } @@ -52,6 +57,7 @@ class ProductController extends Controller { $data['title'] = 'Create Product'; $data['category'] = $this->categoryRepository->pluck(); + $data['fabricCategory'] = $this->fabricCategoryRepository->pluck(); $data['subCategory'] = $this->subCategoryRepository->pluck(); $data['supplier'] = $this->supplierRepository->pluck(); $data['warehouse'] = $this->warehouseRepository->pluck(); @@ -92,6 +98,7 @@ class ProductController extends Controller $data['title'] = 'Show Product'; $data['category'] = $this->categoryRepository->pluck(); $data['subCategory'] = $this->subCategoryRepository->pluck(); + $data['fabricCategory'] = $this->fabricCategoryRepository->pluck(); $data['supplier'] = $this->supplierRepository->pluck(); $data['warehouse'] = $this->warehouseRepository->pluck(); $data['product'] = $this->productRepository->getProductById($id); @@ -127,4 +134,18 @@ class ProductController extends Controller return response()->json(['status' => true, 'message' => 'Product Delete Succesfully']); } + + public function getProductDetail(Request $request) + { + try { + $productModel = $this->productRepository->getProductById($request->id); + } catch (\Throwable $th) { + toastr()->error($th->getMessage()); + + } + return response()->json([ + 'status' => true, + 'data' => $productModel, + ]); + } } diff --git a/Modules/Product/app/Models/FabricCategory.php b/Modules/Product/app/Models/FabricCategory.php new file mode 100644 index 0000000..2740e0b --- /dev/null +++ b/Modules/Product/app/Models/FabricCategory.php @@ -0,0 +1,16 @@ +belongsTo(SubCategory::class, 'sub_category_id'); } + public function fabricCategory() + { + return $this->belongsTo(FabricCategory::class, 'fabriccategory_id'); + } + public function warehouse() { return $this->belongsTo(Warehouse::class, 'warehouse_id'); } + public function supplier() { return $this->belongsTo(Supplier::class, 'supplier_id'); diff --git a/Modules/Product/app/Providers/ProductServiceProvider.php b/Modules/Product/app/Providers/ProductServiceProvider.php index c9b33b0..b240d92 100644 --- a/Modules/Product/app/Providers/ProductServiceProvider.php +++ b/Modules/Product/app/Providers/ProductServiceProvider.php @@ -4,6 +4,10 @@ namespace Modules\Product\Providers; use Illuminate\Support\Facades\Blade; use Illuminate\Support\ServiceProvider; +use Modules\Product\Repositories\CategoryInterface; +use Modules\Product\Repositories\CategoryRepository; +use Modules\Product\Repositories\FabricCategoryInterface; +use Modules\Product\Repositories\FabricCategoryRepository; use Modules\Product\Repositories\ProductInterface; use Modules\Product\Repositories\ProductRepository; @@ -33,6 +37,9 @@ class ProductServiceProvider extends ServiceProvider { $this->app->bind(ProductInterface::class,ProductRepository::class); $this->app->register(RouteServiceProvider::class); + $this->app->bind(CategoryInterface::class,CategoryRepository::class); + $this->app->bind(FabricCategoryInterface::class,FabricCategoryRepository::class); + } /** diff --git a/Modules/Product/app/Repositories/FabricCategoryInterface.php b/Modules/Product/app/Repositories/FabricCategoryInterface.php new file mode 100644 index 0000000..4a12aae --- /dev/null +++ b/Modules/Product/app/Repositories/FabricCategoryInterface.php @@ -0,0 +1,15 @@ +paginate(20); + } + + public function getFabricCategoryById($FabricCategoryId) + { + return FabricCategory::findOrFail($FabricCategoryId); + } + + public function getFabricCategoryByEmail($email) + { + return FabricCategory::where('email', $email)->first(); + } + + public function delete($FabricCategoryId) + { + FabricCategory::destroy($FabricCategoryId); + } + + public function create($FabricCategoryDetails) + { + return FabricCategory::create($FabricCategoryDetails); + } + + public function update($FabricCategoryId, array $newDetails) + { + return FabricCategory::whereId($FabricCategoryId)->update($newDetails); + } + + public function pluck() + { + return FabricCategory::pluck('title', 'id'); + } + +} diff --git a/Modules/Product/app/Repositories/ProductRepository.php b/Modules/Product/app/Repositories/ProductRepository.php index 6c2b182..6639459 100644 --- a/Modules/Product/app/Repositories/ProductRepository.php +++ b/Modules/Product/app/Repositories/ProductRepository.php @@ -44,3 +44,4 @@ class ProductRepository implements ProductInterface } } + \ No newline at end of file diff --git a/Modules/Product/database/migrations/2024_05_06_151439_create_products_table.php b/Modules/Product/database/migrations/2024_05_06_151439_create_products_table.php index b009b6a..03e6f2d 100644 --- a/Modules/Product/database/migrations/2024_05_06_151439_create_products_table.php +++ b/Modules/Product/database/migrations/2024_05_06_151439_create_products_table.php @@ -14,9 +14,12 @@ return new class extends Migration Schema::create('tbl_products', function (Blueprint $table) { $table->id(); $table->string('name'); + $table->string('code'); $table->longText('desc')->nullable(); - $table->decimal('price', 10, 2); - $table->integer('qty'); + $table->longText('remarks')->nullable(); + $table->decimal('price', 10, 2)->nullable(); + $table->integer('qty')->nullable(); + $table->unsignedBigInteger('fabriccategory_id')->nullable(); $table->unsignedBigInteger('category_id')->nullable(); $table->unsignedBigInteger('sub_category_id')->nullable(); $table->unsignedBigInteger('supplier_id')->nullable(); diff --git a/database/migrations/2024_09_03_161854_create_tbl_fabriccategories_table.php b/Modules/Product/database/migrations/2024_09_03_161854_create_tbl_fabriccategories_table.php similarity index 87% rename from database/migrations/2024_09_03_161854_create_tbl_fabriccategories_table.php rename to Modules/Product/database/migrations/2024_09_03_161854_create_tbl_fabriccategories_table.php index c649a17..813925c 100644 --- a/database/migrations/2024_09_03_161854_create_tbl_fabriccategories_table.php +++ b/Modules/Product/database/migrations/2024_09_03_161854_create_tbl_fabriccategories_table.php @@ -14,14 +14,14 @@ class CreateTblFabriccategoriesTable extends Migration public function up() { Schema::create('tbl_fabriccategories', function (Blueprint $table) { - $table->id('febriccategory_id'); + $table->id(); $table->string('title')->nullable(); - $table->string('alias')->nullable(); + $table->string('slug')->nullable(); $table->text('description')->nullable(); $table->string('color')->nullable(); $table->integer('display_order')->nullable(); - $table->integer('status')->nullable(); $table->text('remarks')->nullable(); + $table->integer('status')->default(11); $table->dateTime('created_at')->nullable(); $table->integer('createdby')->nullable(); $table->dateTime('updated_at')->nullable(); diff --git a/database/migrations/2024_09_03_161929_create_tbl_masterunits_table.php b/Modules/Product/database/migrations/2024_09_03_161929_create_tbl_masterunits_table.php similarity index 87% rename from database/migrations/2024_09_03_161929_create_tbl_masterunits_table.php rename to Modules/Product/database/migrations/2024_09_03_161929_create_tbl_masterunits_table.php index 0dd6571..c496e49 100644 --- a/database/migrations/2024_09_03_161929_create_tbl_masterunits_table.php +++ b/Modules/Product/database/migrations/2024_09_03_161929_create_tbl_masterunits_table.php @@ -13,12 +13,12 @@ class CreateTblMasterunitsTable extends Migration public function up() { Schema::create('tbl_masterunits', function (Blueprint $table) { - $table->id('masterunit_id'); + $table->id(); $table->string('title')->nullable(); - $table->string('alias')->nullable(); + $table->string('slug')->nullable(); $table->text('description')->nullable(); $table->integer('display_order')->nullable(); - $table->integer('status')->nullable(); + $table->integer('status')->default(11); $table->text('remarks')->nullable(); $table->dateTime('created_at')->nullable(); $table->integer('createdby')->nullable(); diff --git a/database/migrations/2024_09_03_162203_create_tbl_stocks_table.php b/Modules/Product/database/migrations/2024_09_03_162203_create_tbl_stocks_table.php similarity index 82% rename from database/migrations/2024_09_03_162203_create_tbl_stocks_table.php rename to Modules/Product/database/migrations/2024_09_03_162203_create_tbl_stocks_table.php index b4596c9..5a86a53 100644 --- a/database/migrations/2024_09_03_162203_create_tbl_stocks_table.php +++ b/Modules/Product/database/migrations/2024_09_03_162203_create_tbl_stocks_table.php @@ -14,11 +14,11 @@ class CreateTblStocksTable extends Migration public function up() { Schema::create('tbl_stocks', function (Blueprint $table) { - $table->id('stock_id'); - $table->integer('stocklocations_id')->nullable(); + $table->id(); + $table->integer('stocklocation_id')->nullable(); $table->string('title')->nullable(); - $table->string('alias')->nullable(); - $table->integer('products_id')->nullable(); + $table->string('slug')->nullable(); + $table->integer('product_id')->nullable(); $table->string('s')->nullable(); $table->string('m')->nullable(); $table->string('l')->nullable(); @@ -27,7 +27,7 @@ class CreateTblStocksTable extends Migration $table->string('xxxl')->nullable(); $table->string('fs')->nullable(); $table->integer('display_order')->nullable(); - $table->integer('status')->nullable(); + $table->integer('status')->default(11); $table->text('remarks')->nullable(); $table->dateTime('created_at')->nullable(); $table->integer('createdby')->nullable(); @@ -45,4 +45,5 @@ class CreateTblStocksTable extends Migration { Schema::dropIfExists('tbl_stocks'); } -} \ No newline at end of file +} + diff --git a/database/migrations/2024_09_03_164741_create_tbl_paymentmodes_table.php b/Modules/Product/database/migrations/2024_09_03_164741_create_tbl_paymentmodes_table.php similarity index 87% rename from database/migrations/2024_09_03_164741_create_tbl_paymentmodes_table.php rename to Modules/Product/database/migrations/2024_09_03_164741_create_tbl_paymentmodes_table.php index ac149f1..98bc5d2 100644 --- a/database/migrations/2024_09_03_164741_create_tbl_paymentmodes_table.php +++ b/Modules/Product/database/migrations/2024_09_03_164741_create_tbl_paymentmodes_table.php @@ -14,12 +14,12 @@ class CreateTblPaymentmodesTable extends Migration public function up() { Schema::create('tbl_paymentmodes', function (Blueprint $table) { - $table->id('paymentmode_id'); + $table->id(); $table->string('title')->nullable(); - $table->string('alias')->nullable(); + $table->string('slug')->nullable(); $table->text('description')->nullable(); $table->integer('display_order')->nullable(); - $table->integer('status')->nullable(); + $table->integer('status')->default(11); $table->text('remarks')->nullable(); $table->dateTime('created_at')->nullable(); $table->integer('createdby')->nullable(); diff --git a/Modules/Product/database/migrations/2024_09_04_123611_create_tbl_stocklocations_table.php b/Modules/Product/database/migrations/2024_09_04_123611_create_tbl_stocklocations_table.php new file mode 100644 index 0000000..ae9e0ae --- /dev/null +++ b/Modules/Product/database/migrations/2024_09_04_123611_create_tbl_stocklocations_table.php @@ -0,0 +1,39 @@ +id(); + $table->string('title')->nullable(); + $table->string('slug')->nullable(); + $table->text('description')->nullable(); + $table->integer('display_order')->nullable(); + $table->integer('status')->default(11); + $table->text('remarks')->nullable(); + $table->timestamps(); + $table->integer('createdby')->nullable(); + $table->integer('updatedby')->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('tbl_stocklocations'); + } +} diff --git a/Modules/Product/resources/views/fabric_category/create.blade.php b/Modules/Product/resources/views/fabric_category/create.blade.php new file mode 100644 index 0000000..632aeae --- /dev/null +++ b/Modules/Product/resources/views/fabric_category/create.blade.php @@ -0,0 +1,16 @@ +@extends('layouts.app') + +@section('content') +
+
+ @include('layouts.partials.breadcrumb', ['title' => $title]) + {{ html()->form('POST')->route('fabricCategory.store')->class(['needs-validation'])->attributes(['novalidate', 'enctype' => 'multipart/form-data'])->open() }} + @include('product::fabric_category.partials.action') + {{ html()->form()->close() }} +
+
+@endsection + +@push('js') + +@endpush diff --git a/Modules/Product/resources/views/fabric_category/edit.blade.php b/Modules/Product/resources/views/fabric_category/edit.blade.php new file mode 100644 index 0000000..974ae53 --- /dev/null +++ b/Modules/Product/resources/views/fabric_category/edit.blade.php @@ -0,0 +1,23 @@ +@extends('layouts.app') + +@section('content') +
+
+ + @include('layouts.partials.breadcrumb', ['title' => $title]) + + + {{ html()->modelForm($fabric_category, 'PUT')->route('fabricCategory.update', $fabric_category->id)->class(['needs-validation'])->attributes(['novalidate', 'enctype' => 'multipart/form-data'])->open() }} + + @include('product::fabric_category.partials.action') + + {{ html()->closeModelForm() }} + +
+ +
+@endsection + +@push('js') + +@endpush diff --git a/Modules/Product/resources/views/fabric_category/index.blade.php b/Modules/Product/resources/views/fabric_category/index.blade.php new file mode 100644 index 0000000..43b6bd9 --- /dev/null +++ b/Modules/Product/resources/views/fabric_category/index.blade.php @@ -0,0 +1,72 @@ +@extends('layouts.app') + +@section('content') +
+
+ @include('layouts.partials.breadcrumb', ['title' => $title]) + + +
+ @can('fabricCategory.create') + Add + @endcan +
+ +
+
+
+
+
+ + + + + + + + + + + + + @forelse ($fabric_categories as $key => $fabricCategory) + + + + + + + + + @empty + @endforelse + +
S.NTitleSlugColorStatusAction
{{ $key + 1 }}{{ $fabricCategory->title }}{{ $fabricCategory->slug }}{{ $fabricCategory->color }}{!! $fabricCategory->status_name !!} +
+ @can('fabricCategory.show') + + + + @endcan + @can('fabricCategory.edit') + + @endcan + @can('fabricCategory.destroy') + + @endcan +
+
+
+
+
+
+
+ +
+
+@endsection diff --git a/Modules/Product/resources/views/fabric_category/partials/action.blade.php b/Modules/Product/resources/views/fabric_category/partials/action.blade.php new file mode 100644 index 0000000..170a21b --- /dev/null +++ b/Modules/Product/resources/views/fabric_category/partials/action.blade.php @@ -0,0 +1,60 @@ +
+
+
+
+
+ +
+ {{ html()->label('Title')->class('form-label') }} + {{ html()->text('title')->class('form-control')->placeholder('Enter Title')->required() }} +
+ +
+ {{ html()->label('Color')->class('form-label') }} + {{ html()->text('color')->class('form-control')->placeholder('Enter Color')->required() }} +
+ + +
+ {{ html()->label('Description')->class('form-label') }} + {{ html()->text('description')->class('form-control')->placeholder('Enter Description') }} +
+ +
+ {{ html()->label('Remarks')->class('form-label') }} + {{ html()->text('remarks')->class('form-control')->placeholder('Enter Remarks') }} +
+ + +
+
+
+ +
+ Cancel + + +
+
+ +
+
+
+
Publish
+
+
+
+
+ {{ html()->label('Status')->class('form-label') }} + {{-- {{ html()->select('status', '11')->class('form-control')->placeholder('Select Status') }} + --}} + {{ html()->select('status', $status)->class('form-control')->placeholder('Select Status')->required() }} + +
+
+
+ +
+ +
+
diff --git a/Modules/Product/resources/views/fabric_category/show.blade.php b/Modules/Product/resources/views/fabric_category/show.blade.php new file mode 100644 index 0000000..ed6826f --- /dev/null +++ b/Modules/Product/resources/views/fabric_category/show.blade.php @@ -0,0 +1,45 @@ +@extends('layouts.app') + +@section('content') +
+
+ @include('layouts.partials.breadcrumb', ['title' => $title]) + +
+
+
+
+
+ + + + + + + + + + + + + + + +
Title{{ $fabric_category->title }}
Description{{ $fabric_category->description }}
Remarks{{ $fabric_category->remarks }}
+
+
+
+
+ Back + +
+
+
+ +
+
+@endsection + +@push('js') + +@endpush diff --git a/Modules/Product/resources/views/product/index.blade.php b/Modules/Product/resources/views/product/index.blade.php index a2e8605..8d9efba 100644 --- a/Modules/Product/resources/views/product/index.blade.php +++ b/Modules/Product/resources/views/product/index.blade.php @@ -22,28 +22,23 @@ S.N - Name - Price - Quantity - Category - Sub Category - Supplier - Warehouse + Title + Fabric Category + Product Category + Product Code Status Action @forelse ($products as $key => $product) + {{-- @dd($product->fabricCategory) --}} {{ $key + 1 }} {{ $product->name }} - {{ $product->price }} - {{ $product->qty }} + {{ optional($product->fabricCategory)->title }} {{ optional($product->category)->title }} - {{ optional($product->subCategory)->title }} - {{ optional($product->supplier)->supplier_name }} - {{ optional($product->warehouse)->title }} + {{ $product->code }} {!! $product->status_name !!}
diff --git a/Modules/Product/resources/views/product/partials/action.blade.php b/Modules/Product/resources/views/product/partials/action.blade.php index 815d1a1..99f017d 100644 --- a/Modules/Product/resources/views/product/partials/action.blade.php +++ b/Modules/Product/resources/views/product/partials/action.blade.php @@ -9,40 +9,30 @@
- {{ html()->label('Price')->class('form-label') }} - {{ html()->text('price')->class('form-control')->placeholder('Enter Price')->required() }} + {{ html()->label('Product Code')->class('form-label') }} + {{ html()->text('code')->class('form-control')->placeholder('Enter Product Code')->required() }}
- {{ html()->label('Quantity')->class('form-label') }} - {{ html()->text('qty')->class('form-control')->placeholder('Enter Quantity')->required() }} + {{ html()->label('Fabric Category')->class('form-label') }} + {{ html()->select('fabriccategory_id', $fabricCategory)->class('form-select select2')->placeholder('Select Fabric Category')->id('fabric_category_id') }}
-
+
{{ html()->label('Category')->class('form-label') }} {{ html()->select('category_id', $category)->class('form-select select2')->placeholder('Select Category')->id('category_id') }}
-
- {{ html()->label('Sub Category')->class('form-label') }} - {{ html()->select('sub_category_id', $subCategory)->class('form-select select2')->placeholder('Select Sub Category')->id('sub_category_id') }} -
- -
- {{ html()->label('Supplier')->class('form-label') }} - {{ html()->select('supplier_id', $supplier)->class('form-select select2')->placeholder('Select Supplier') }} -
- -
- {{ html()->label('Warehouse')->class('form-label') }} - {{ html()->select('warehouse_id', $warehouse)->class('form-select select2')->placeholder('Select Warehouse') }} -
-
{{ html()->label('Description')->class('form-label') }} {{ html()->textarea('desc')->class('form-control')->placeholder('Enter Description')->required() }}
+
+ {{ html()->label('Remarks')->class('form-label') }} + {{ html()->textarea('remarks')->class('form-control')->placeholder('Enter Remarks')->required() }} +
+
@@ -73,14 +63,14 @@
@push('js') - + --}} @endpush \ No newline at end of file diff --git a/Modules/Product/resources/views/product/show.blade.php b/Modules/Product/resources/views/product/show.blade.php index 5c5b52e..9a351c7 100644 --- a/Modules/Product/resources/views/product/show.blade.php +++ b/Modules/Product/resources/views/product/show.blade.php @@ -17,31 +17,23 @@ {{ $product->name }} - Price - {{ $product->price }} - - - Quantity - {{ $product->qty }} + Product Code + {{ $product->code }} Category {{ optional($product->category)->title }} - Sub Category - {{ optional($product->subCategory)->title }} + Fabric Category + {{ optional($product->fabricCategory)->title }} - Supplier - {{ optional($product->supplier)->supplier_name }} + Description + {{ optional($product->desc) }} - Warehouse - {{ optional($product->warehouse)->title }} - - - Status + Status {{ $product->status }} diff --git a/Modules/Product/routes/web.php b/Modules/Product/routes/web.php index 2f42951..12a76b0 100644 --- a/Modules/Product/routes/web.php +++ b/Modules/Product/routes/web.php @@ -2,6 +2,7 @@ use Illuminate\Support\Facades\Route; use Modules\Product\Http\Controllers\CategoryController; +use Modules\Product\Http\Controllers\FabricCategoryController; use Modules\Product\Http\Controllers\ProductController; use Modules\Product\Http\Controllers\SubCategoryController; use Modules\Product\Http\Controllers\WarehouseController; @@ -22,7 +23,9 @@ Route::group([], function () { Route::resource('category', CategoryController::class)->names('category'); Route::resource('sub-category', SubCategoryController::class)->names('subCategory'); Route::resource('warehouse', WarehouseController::class)->names('warehouse'); + Route::resource('fabricCategory', FabricCategoryController::class)->names('fabricCategory'); Route::get('get-sub-categories', [SubCategoryController::class, 'getSubCategories'])->name('getSubCategories'); + Route::get('product-details', [ProductController::class, 'getProductDetail'])->name('get-product-detail'); }); diff --git a/Modules/Settings/app/Repositories/.gitkeep b/Modules/SalesEntry/app/Http/Controllers/.gitkeep similarity index 100% rename from Modules/Settings/app/Repositories/.gitkeep rename to Modules/SalesEntry/app/Http/Controllers/.gitkeep diff --git a/Modules/SalesEntry/app/Http/Controllers/SalesEntryController.php b/Modules/SalesEntry/app/Http/Controllers/SalesEntryController.php new file mode 100644 index 0000000..c7f0f27 --- /dev/null +++ b/Modules/SalesEntry/app/Http/Controllers/SalesEntryController.php @@ -0,0 +1,135 @@ +productRepository = $productRepository; + $this->customerRepository = $customerRepository; + $this->salesEntryRepository = $salesEntryRepository; + $this->categoryRepository = $categoryRepository; + $this->stockRepository = $stockRepository; + $this->fieldRepository = $fieldRepository; + + + } + /** + * Display a listing of the resource. + */ + public function index() + { + $data['title'] = 'Sales Entries'; + $data['salesEntries'] = SalesEntry::all(); + return view('salesEntry::salesEntry.index', $data); + } + + /** + * Show the form for creating a new resource. + */ + public function create() + { + $data['title'] = 'New Sales Entry'; + $data['categoryList'] = $this->categoryRepository->pluck(); + $data['stockList'] = $this->stockRepository->pluck(); + $data['productList'] = $this->productRepository->pluck(); + $data['customerList'] = $this->customerRepository->pluck(); + $data['sizes'] = $this->fieldRepository->getDropdownByAlias('size'); + $data['paymentModes'] = $this->fieldRepository->getDropdownByAlias('payment-mode'); + $data['editable'] = false; + + return view('salesEntry::salesEntry.create', $data); + } + + /** + * Store a newly created resource in storage. + */ + public function store(Request $request): RedirectResponse + { + $this->salesEntryRepository->create($request); + + return redirect()->route('salesEntry.index'); + } + + /** + * Show the specified resource. + */ + public function show($id) + { + return view('salesEntry::salesEntry.show'); + } + + /** + * Show the form for editing the specified resource. + */ + public function edit($id) + { + $data['customerList'] = $this->customerRepository->pluck(); + $data['categoryList'] = $this->categoryRepository->pluck(); + $data['stockList'] = $this->stockRepository->pluck(); + $data['productList'] = $this->productRepository->pluck(); + $data['sizes'] = $this->fieldRepository->getDropdownByAlias('size'); + $data['paymentModes'] = $this->fieldRepository->getDropdownByAlias('payment-mode'); + $data['order'] = SalesEntry::with('orderDetails')->find($id); + $data['id'] = $id; + $data['editable'] = true; + $data['title'] = "Edit Sales Entry"; + return view('salesEntry::salesEntry.edit'); + } + + /** + * Update the specified resource in storage. + */ + public function update(Request $request, $id): RedirectResponse + { + $this->salesEntryRepository->update($id,$request); + return redirect()->route('salesEntry.index'); + } + + /** + * Remove the specified resource from storage. + */ + public function destroy($id) + { + return $this->salesEntryRepository->delete($id); + } + + public function cloneSalesProduct(Request $request) + { + $data = []; + $numInc = $request->numberInc; + $script = true; + $productList= $this->productRepository->pluck('id'); + $stockList= $this->stockRepository->pluck('id'); + $categoryList= $this->categoryRepository->pluck('id'); + + return response()->json([ + 'view' => view('salesEntry::salesEntry.clone-product', compact('data', 'numInc', 'script', 'productList'))->render(), + ]); + } +} diff --git a/Modules/Settings/config/.gitkeep b/Modules/SalesEntry/app/Http/Requests/.gitkeep similarity index 100% rename from Modules/Settings/config/.gitkeep rename to Modules/SalesEntry/app/Http/Requests/.gitkeep diff --git a/Modules/Settings/database/factories/.gitkeep b/Modules/SalesEntry/app/Models/.gitkeep similarity index 100% rename from Modules/Settings/database/factories/.gitkeep rename to Modules/SalesEntry/app/Models/.gitkeep diff --git a/Modules/SalesEntry/app/Models/SalesEntry.php b/Modules/SalesEntry/app/Models/SalesEntry.php new file mode 100644 index 0000000..51f88fa --- /dev/null +++ b/Modules/SalesEntry/app/Models/SalesEntry.php @@ -0,0 +1,33 @@ +hasMany(SalesEntryDetail::class,'salesentry_id'); + } + + public function customer():BelongsTo{ + return $this->belongsTo(Customer::class); + } + + public static function getFillableField(){ + return (new self())->fillable; + } +} diff --git a/Modules/SalesEntry/app/Models/SalesEntryDetail.php b/Modules/SalesEntry/app/Models/SalesEntryDetail.php new file mode 100644 index 0000000..732a39c --- /dev/null +++ b/Modules/SalesEntry/app/Models/SalesEntryDetail.php @@ -0,0 +1,25 @@ +belongsTo(SalesEntry::class); + } +} diff --git a/Modules/Settings/database/migrations/.gitkeep b/Modules/SalesEntry/app/Observers/.gitkeep similarity index 100% rename from Modules/Settings/database/migrations/.gitkeep rename to Modules/SalesEntry/app/Observers/.gitkeep diff --git a/Modules/Settings/database/seeders/.gitkeep b/Modules/SalesEntry/app/Providers/.gitkeep similarity index 100% rename from Modules/Settings/database/seeders/.gitkeep rename to Modules/SalesEntry/app/Providers/.gitkeep diff --git a/Modules/SalesEntry/app/Providers/EventServiceProvider.php b/Modules/SalesEntry/app/Providers/EventServiceProvider.php new file mode 100644 index 0000000..9f6fadc --- /dev/null +++ b/Modules/SalesEntry/app/Providers/EventServiceProvider.php @@ -0,0 +1,32 @@ +> + */ + protected $listen = []; + + /** + * Indicates if events should be discovered. + * + * @var bool + */ + protected static $shouldDiscoverEvents = true; + + /** + * Configure the proper event listeners for email verification. + * + * @return void + */ + protected function configureEmailVerification(): void + { + + } +} diff --git a/Modules/SalesEntry/app/Providers/RouteServiceProvider.php b/Modules/SalesEntry/app/Providers/RouteServiceProvider.php new file mode 100644 index 0000000..075a842 --- /dev/null +++ b/Modules/SalesEntry/app/Providers/RouteServiceProvider.php @@ -0,0 +1,49 @@ +mapApiRoutes(); + + $this->mapWebRoutes(); + } + + /** + * Define the "web" routes for the application. + * + * These routes all receive session state, CSRF protection, etc. + */ + protected function mapWebRoutes(): void + { + Route::middleware('web')->group(module_path('SalesEntry', '/routes/web.php')); + } + + /** + * Define the "api" routes for the application. + * + * These routes are typically stateless. + */ + protected function mapApiRoutes(): void + { + Route::middleware('api')->prefix('api')->name('api.')->group(module_path('SalesEntry', '/routes/api.php')); + } +} diff --git a/Modules/SalesEntry/app/Providers/SalesEntryServiceProvider.php b/Modules/SalesEntry/app/Providers/SalesEntryServiceProvider.php new file mode 100644 index 0000000..a19b1ef --- /dev/null +++ b/Modules/SalesEntry/app/Providers/SalesEntryServiceProvider.php @@ -0,0 +1,123 @@ +registerCommands(); + $this->registerCommandSchedules(); + $this->registerTranslations(); + $this->registerConfig(); + $this->registerViews(); + $this->loadMigrationsFrom(module_path($this->moduleName, 'database/migrations')); + } + + /** + * Register the service provider. + */ + public function register(): void + { + $this->app->register(EventServiceProvider::class); + $this->app->register(RouteServiceProvider::class); + $this->app->bind(SalesEntryInterface::class, SalesEntryRepository::class); + } + + /** + * Register commands in the format of Command::class + */ + protected function registerCommands(): void + { + // $this->commands([]); + } + + /** + * Register command Schedules. + */ + protected function registerCommandSchedules(): void + { + // $this->app->booted(function () { + // $schedule = $this->app->make(Schedule::class); + // $schedule->command('inspire')->hourly(); + // }); + } + + /** + * Register translations. + */ + public function registerTranslations(): void + { + $langPath = resource_path('lang/modules/'.$this->moduleNameLower); + + if (is_dir($langPath)) { + $this->loadTranslationsFrom($langPath, $this->moduleNameLower); + $this->loadJsonTranslationsFrom($langPath); + } else { + $this->loadTranslationsFrom(module_path($this->moduleName, 'lang'), $this->moduleNameLower); + $this->loadJsonTranslationsFrom(module_path($this->moduleName, 'lang')); + } + } + + /** + * Register config. + */ + protected function registerConfig(): void + { + $this->publishes([module_path($this->moduleName, 'config/config.php') => config_path($this->moduleNameLower.'.php')], 'config'); + $this->mergeConfigFrom(module_path($this->moduleName, 'config/config.php'), $this->moduleNameLower); + } + + /** + * Register views. + */ + public function registerViews(): void + { + $viewPath = resource_path('views/modules/'.$this->moduleNameLower); + $sourcePath = module_path($this->moduleName, 'resources/views'); + + $this->publishes([$sourcePath => $viewPath], ['views', $this->moduleNameLower.'-module-views']); + + $this->loadViewsFrom(array_merge($this->getPublishableViewPaths(), [$sourcePath]), $this->moduleNameLower); + + $componentNamespace = str_replace('/', '\\', config('modules.namespace').'\\'.$this->moduleName.'\\'.ltrim(config('modules.paths.generator.component-class.path'), config('modules.paths.app_folder', ''))); + Blade::componentNamespace($componentNamespace, $this->moduleNameLower); + } + + /** + * Get the services provided by the provider. + * + * @return array + */ + public function provides(): array + { + return []; + } + + /** + * @return array + */ + private function getPublishableViewPaths(): array + { + $paths = []; + foreach (config('view.paths') as $path) { + if (is_dir($path.'/modules/'.$this->moduleNameLower)) { + $paths[] = $path.'/modules/'.$this->moduleNameLower; + } + } + + return $paths; + } +} diff --git a/Modules/Settings/resources/assets/.gitkeep b/Modules/SalesEntry/app/Repositories/.gitkeep similarity index 100% rename from Modules/Settings/resources/assets/.gitkeep rename to Modules/SalesEntry/app/Repositories/.gitkeep diff --git a/Modules/SalesEntry/app/Repositories/SalesEntryInterface.php b/Modules/SalesEntry/app/Repositories/SalesEntryInterface.php new file mode 100644 index 0000000..e251dda --- /dev/null +++ b/Modules/SalesEntry/app/Repositories/SalesEntryInterface.php @@ -0,0 +1,17 @@ +paginate(20); + } + + public function getSalesEntryById($SalesEntryId) + { + return SalesEntry::findOrFail($SalesEntryId); + } + + public function getSalesEntryByEmail($email) + { + return SalesEntry::where('email', $email)->first(); + } + + public function delete($SalesEntryId) + { + DB::transaction(function() use ($SalesEntryId) { + SalesEntryDetail::where('salesentry_id', $SalesEntryId)->delete(); + + SalesEntry::destroy($SalesEntryId); + }); + } + + + public function create($request) + { + $salesEntryDetails = $request->except(SalesEntry::getFillableField()); + + $salesEntry = $request->only(SalesEntry::getFillableField()); + $salesEntryData = SalesEntry::create($salesEntry); + + $request->merge(['salesentry_id' => $salesEntryData->id]); + + foreach ($salesEntryDetails['product_id'] as $key => $productId) { + $data = [ + 'salesentry_id' => $request->input('salesentry_id'), + 'product_id' => $productId, + 'unit' => $salesEntryDetails['unit'][$key], + 'rate' => $salesEntryDetails['rate'][$key], + 'quantity' => $salesEntryDetails['qty'][$key], + 'amount' => $salesEntryDetails['amt'][$key], + 'desc' => $salesEntryDetails['desc'][$key], + ]; + SalesEntryDetail::create($data); + } + } + + + public function update($SalesEntryId, $request) + { + $fillableFields = SalesEntry::getFillableField(); + $salesEntryData = $request->only($fillableFields); + + $salesEntry = SalesEntry::find($SalesEntryId); + $salesEntry->update($salesEntryData); + + + $additionalExcludes = ['_method', '_token']; + $excludeFields = array_merge($fillableFields, $additionalExcludes); + + $data = $request->except($excludeFields); + + $updatedCombinations = []; + + if (isset($data['product_id'])) { + foreach ($data['product_id'] as $key => $productId) { + $obj = [ + 'salesentry_id' => $SalesEntryId, + 'product_id' => $productId, + 'unit' => $data['unit'][$key], + 'rate' => $data['rate'][$key], + 'quantity' => $data['qty'][$key], + 'amount' => $data['amt'][$key], + 'desc' => $data['desc'][$key], + ]; + + $combinationKey = "{$SalesEntryId}_{$productId}_{$data['unit'][$key]}"; + + $salesEntryDetail = $salesEntry->salesEntryDetails()->where('product_id', $productId)->where('unit', $data['unit'][$key])->first(); + if ($salesEntryDetail) { + $salesEntryDetail->update($obj); + } else { + SalesEntryDetail::create($obj); + } + + $updatedCombinations[] = $combinationKey; + } + } + + $salesEntry->salesEntryDetails()->each(function ($salesEntryDetail) use ($updatedCombinations) { + $combinationKey = "{$salesEntryDetail->salesEntry_id}_{$salesEntryDetail->product_id}_{$salesEntryDetail->unit}"; + if (!in_array($combinationKey, $updatedCombinations)) { + $salesEntryDetail->delete(); + } + }); + + return $salesEntry; + } + + + + public function pluck() + { + return SalesEntry::pluck('name', 'id'); + } +} diff --git a/Modules/SalesEntry/composer.json b/Modules/SalesEntry/composer.json new file mode 100644 index 0000000..6f94efe --- /dev/null +++ b/Modules/SalesEntry/composer.json @@ -0,0 +1,30 @@ +{ + "name": "nwidart/salesentry", + "description": "", + "authors": [ + { + "name": "Nicolas Widart", + "email": "n.widart@gmail.com" + } + ], + "extra": { + "laravel": { + "providers": [], + "aliases": { + + } + } + }, + "autoload": { + "psr-4": { + "Modules\\SalesEntry\\": "app/", + "Modules\\SalesEntry\\Database\\Factories\\": "database/factories/", + "Modules\\SalesEntry\\Database\\Seeders\\": "database/seeders/" + } + }, + "autoload-dev": { + "psr-4": { + "Modules\\SalesEntry\\Tests\\": "tests/" + } + } +} diff --git a/Modules/Settings/resources/views/.gitkeep b/Modules/SalesEntry/config/.gitkeep similarity index 100% rename from Modules/Settings/resources/views/.gitkeep rename to Modules/SalesEntry/config/.gitkeep diff --git a/Modules/SalesEntry/config/config.php b/Modules/SalesEntry/config/config.php new file mode 100644 index 0000000..a699e2e --- /dev/null +++ b/Modules/SalesEntry/config/config.php @@ -0,0 +1,5 @@ + 'SalesEntry', +]; diff --git a/Modules/Settings/routes/.gitkeep b/Modules/SalesEntry/database/factories/.gitkeep similarity index 100% rename from Modules/Settings/routes/.gitkeep rename to Modules/SalesEntry/database/factories/.gitkeep diff --git a/Modules/Stocks/app/Http/Controllers/.gitkeep b/Modules/SalesEntry/database/migrations/.gitkeep similarity index 100% rename from Modules/Stocks/app/Http/Controllers/.gitkeep rename to Modules/SalesEntry/database/migrations/.gitkeep diff --git a/Modules/SalesEntry/database/migrations/2024_09_09_130433_create_salesentries_table.php b/Modules/SalesEntry/database/migrations/2024_09_09_130433_create_salesentries_table.php new file mode 100644 index 0000000..39fa000 --- /dev/null +++ b/Modules/SalesEntry/database/migrations/2024_09_09_130433_create_salesentries_table.php @@ -0,0 +1,47 @@ +id(); + $table->string('title')->nullable(); + $table->string('slug')->nullable(); + $table->date('sales_date')->nullable(); + $table->unsignedBigInteger('customer_id')->nullable(); + $table->unsignedBigInteger('product_id')->nullable(); + $table->unsignedBigInteger('category_id')->nullable(); + $table->unsignedBigInteger('stock_id')->nullable(); + $table->unsignedBigInteger('size_id')->nullable(); + $table->string('payment')->nullable(); + $table->unsignedBigInteger('paymentmode_id')->nullable(); + $table->string('paymentref')->nullable(); + $table->decimal('sub_total', 10, 2)->nullable(); + $table->decimal('tax', 10, 2)->nullable(); + $table->decimal('discount_amt', 10, 2)->nullable(); + $table->decimal('total_amt', 10, 2)->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('tbl_salesentries'); + } +}; + diff --git a/Modules/SalesEntry/database/migrations/2024_09_10_130316_create_salesentrydetails_table.php b/Modules/SalesEntry/database/migrations/2024_09_10_130316_create_salesentrydetails_table.php new file mode 100644 index 0000000..2cc039d --- /dev/null +++ b/Modules/SalesEntry/database/migrations/2024_09_10_130316_create_salesentrydetails_table.php @@ -0,0 +1,44 @@ +id(); + $table->unsignedBigInteger('salesentry_id')->nullable(); + $table->unsignedBigInteger('product_id')->nullable(); + $table->unsignedBigInteger('category_id')->nullable(); + $table->unsignedBigInteger('stock_id')->nullable(); + $table->unsignedBigInteger('size_id')->nullable(); + $table->string('unit')->nullable(); + $table->integer('rate')->nullable(); + $table->integer('quantity')->nullable(); + $table->decimal('amount', 6); + $table->text('desc')->nullable(); + $table->integer('status')->nullable(); + $table->text('remarks')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('tbl_salesentrydetails'); + } +}; + diff --git a/Modules/Stocks/app/Http/Requests/.gitkeep b/Modules/SalesEntry/database/seeders/.gitkeep similarity index 100% rename from Modules/Stocks/app/Http/Requests/.gitkeep rename to Modules/SalesEntry/database/seeders/.gitkeep diff --git a/Modules/SalesEntry/database/seeders/SalesEntryDatabaseSeeder.php b/Modules/SalesEntry/database/seeders/SalesEntryDatabaseSeeder.php new file mode 100644 index 0000000..cd745a7 --- /dev/null +++ b/Modules/SalesEntry/database/seeders/SalesEntryDatabaseSeeder.php @@ -0,0 +1,16 @@ +call([]); + } +} diff --git a/Modules/SalesEntry/module.json b/Modules/SalesEntry/module.json new file mode 100644 index 0000000..c7ca2a9 --- /dev/null +++ b/Modules/SalesEntry/module.json @@ -0,0 +1,11 @@ +{ + "name": "SalesEntry", + "alias": "salesentry", + "description": "", + "keywords": [], + "priority": 0, + "providers": [ + "Modules\\SalesEntry\\Providers\\SalesEntryServiceProvider" + ], + "files": [] +} diff --git a/Modules/Settings/package.json b/Modules/SalesEntry/package.json similarity index 100% rename from Modules/Settings/package.json rename to Modules/SalesEntry/package.json diff --git a/Modules/Stocks/app/Models/.gitkeep b/Modules/SalesEntry/resources/assets/.gitkeep similarity index 100% rename from Modules/Stocks/app/Models/.gitkeep rename to Modules/SalesEntry/resources/assets/.gitkeep diff --git a/Modules/Settings/resources/assets/js/app.js b/Modules/SalesEntry/resources/assets/js/app.js similarity index 100% rename from Modules/Settings/resources/assets/js/app.js rename to Modules/SalesEntry/resources/assets/js/app.js diff --git a/Modules/Settings/resources/assets/sass/app.scss b/Modules/SalesEntry/resources/assets/sass/app.scss similarity index 100% rename from Modules/Settings/resources/assets/sass/app.scss rename to Modules/SalesEntry/resources/assets/sass/app.scss diff --git a/Modules/Stocks/app/Observers/.gitkeep b/Modules/SalesEntry/resources/views/.gitkeep similarity index 100% rename from Modules/Stocks/app/Observers/.gitkeep rename to Modules/SalesEntry/resources/views/.gitkeep diff --git a/Modules/SalesEntry/resources/views/index.blade.php b/Modules/SalesEntry/resources/views/index.blade.php new file mode 100644 index 0000000..17b0df2 --- /dev/null +++ b/Modules/SalesEntry/resources/views/index.blade.php @@ -0,0 +1,7 @@ +@extends('salesentry::layouts.master') + +@section('content') +

Hello World

+ +

Module: {!! config('salesentry.name') !!}

+@endsection diff --git a/Modules/SalesEntry/resources/views/layouts/master.blade.php b/Modules/SalesEntry/resources/views/layouts/master.blade.php new file mode 100644 index 0000000..7368c25 --- /dev/null +++ b/Modules/SalesEntry/resources/views/layouts/master.blade.php @@ -0,0 +1,29 @@ + + + + + + + + + + SalesEntry Module - {{ config('app.name', 'Laravel') }} + + + + + + + + + + {{-- Vite CSS --}} + {{-- {{ module_vite('build-salesentry', 'resources/assets/sass/app.scss') }} --}} + + + + @yield('content') + + {{-- Vite JS --}} + {{-- {{ module_vite('build-salesentry', 'resources/assets/js/app.js') }} --}} + diff --git a/Modules/SalesEntry/resources/views/salesEntry/clone-product.blade.php b/Modules/SalesEntry/resources/views/salesEntry/clone-product.blade.php new file mode 100644 index 0000000..735b87f --- /dev/null +++ b/Modules/SalesEntry/resources/views/salesEntry/clone-product.blade.php @@ -0,0 +1,46 @@ +
+
+
+ {{ html()->label('Product')->class('form-label') }} + @if (isset($editable) && $editable) + {{ html()->select('product_id[]', $productList, $item->product_id)->class('form-select product_id')->attributes(['id' => 'product_id'])->placeholder('Enter Product Name')->required() }} + @else + @endif + {{ html()->select('product_id[]', $productList)->class('form-select product_id')->attributes(['id' => 'product_id'])->placeholder('Enter Product Name')->required() }} + + +
+ +
+ {{ html()->label('Unit')->class('form-label') }} + {{ html()->text('unit[]', isset($editable) && $editable ? $item->unit : null)->class('form-control unit')->placeholder('Enter Unit')->required()->attributes(['id' => 'unit']) }} + +
+ +
+ {{ html()->label('Rate')->class('form-label') }} + {{ html()->text('rate[]', isset($editable) && $editable ? $item->rate : null)->class('form-control product-price cleave-numeral rate~~')->placeholder('Enter Rate')->attributes(['id' => 'rate']) }} +
+ +
+ {{ html()->label('Quantity')->class('form-label') }} + {{ html()->text('qty[]', isset($editable) && $editable ? $item->quantity : null)->class('form-control product-quantity cleave-numeral qty')->placeholder('Enter QTY')->attributes(['id' => 'qty']) }} +
+ +
+ {{ html()->label('Amount')->class('form-label') }} + {{ html()->text('amt[]', isset($editable) && $editable ? $item->amount : null)->class('form-control product-line-price bg-light')->placeholder('Enter Amount')->isReadOnly() }} +
+ +
+ {{ html()->label('Description')->class('form-label') }} + {{ html()->text('desc[]', isset($editable) && $editable ? $item->desc : null)->class('form-control')->placeholder('Enter Description') }} +
+ +
+ +
+ +
+
diff --git a/Modules/SalesEntry/resources/views/salesEntry/create.blade.php b/Modules/SalesEntry/resources/views/salesEntry/create.blade.php new file mode 100644 index 0000000..29e79af --- /dev/null +++ b/Modules/SalesEntry/resources/views/salesEntry/create.blade.php @@ -0,0 +1,27 @@ +@extends('layouts.app') + +@section('content') +
+
+ + @include('layouts.partials.breadcrumb', ['title' => $title]) + + +
+
+
+ @csrf + @include('salesEntry::salesEntry.partials.action') +
+
+
+ + +
+ +
+@endsection + +@push('js') + +@endpush diff --git a/Modules/SalesEntry/resources/views/salesEntry/edit.blade.php b/Modules/SalesEntry/resources/views/salesEntry/edit.blade.php new file mode 100644 index 0000000..63c621c --- /dev/null +++ b/Modules/SalesEntry/resources/views/salesEntry/edit.blade.php @@ -0,0 +1,47 @@ +@extends('layouts.app') + +@section('content') +
+
+ +
+
+
+

{{ $title }}

+ +
+ +
+ +
+
+
+ +
+
+
+
+ + {{ html()->modelForm($order, 'PUT')->route('order.update', $id)->class(['needs-validation'])->attributes(['novalidate'])->open() }} + + @include('order::order.partials.action') + + {{ html()->closeModelForm() }} + +
+
+
+
+ + +
+ +
+@endsection + +@push('js') + +@endpush diff --git a/Modules/SalesEntry/resources/views/salesEntry/index.blade.php b/Modules/SalesEntry/resources/views/salesEntry/index.blade.php new file mode 100644 index 0000000..0ab2539 --- /dev/null +++ b/Modules/SalesEntry/resources/views/salesEntry/index.blade.php @@ -0,0 +1,68 @@ +@extends('layouts.app') + +@section('content') +
+
+
+
+
+
+
{{ $title }}
+
+ Add +
+
+ +
+
+ + + + + + + + + + + + @forelse ($salesEntries as $key => $item) + + + + + + + + @empty + @endforelse + +
S.NCustomerSales DateTotal AmountAction
{{ $key + 1 }}{{ $item->customer->customer_name }}{{ $item->sales_date }}{{ $item->total_amt }} +
+ + + + + + + +
+
+
+
+
+
+
+ +
+
+@endsection diff --git a/Modules/SalesEntry/resources/views/salesEntry/partials/action.blade.php b/Modules/SalesEntry/resources/views/salesEntry/partials/action.blade.php new file mode 100644 index 0000000..b00839a --- /dev/null +++ b/Modules/SalesEntry/resources/views/salesEntry/partials/action.blade.php @@ -0,0 +1,219 @@ +
+
Order Details
+
+
+ {{ html()->label('Sales Date')->class('form-label') }} + {{ html()->date('sales_date')->class('form-control')->placeholder('Choose Sales Date')->required() }} + {{ html()->div('Please choose Sales date')->class('invalid-feedback') }} +
+
+ {{ html()->label('Customer')->class('form-label') }} + {{ html()->select('customer_id', $customerList)->class('form-control')->placeholder('Select Customer')->required() }} + {{ html()->div('Please select customer')->class('invalid-feedback') }} +
+ +
+ + + +{{--
+

Shipping Details

+
+
+ {{ html()->label('Address')->class('form-label') }} + {{ html()->text('address')->class('form-control')->placeholder('Enter Address') }} +
+ +
+ {{ html()->label('Shipping Date')->class('form-label') }} + {{ html()->date('shiiping_date')->class('form-control')->placeholder('Enter Temporary Address') }} +
+
--}} + +
+
+ +
+ @if ($editable && $salesEntry->salesEntryDetail->isNotEmpty()) + @foreach ($salesEntry->salesEntryDetail as $item) + @include('salesEntry::salesEntry.clone-product') + @endforeach + @else + @include('salesEntry::salesEntry.clone-product') + @endif +
+
+ +
+ + + {{-- + + + + + + + + + + + --}} + + + + + +
Sub Total + +
Estimated Tax (11%) + +
Discount + +
Total Amount + +
+ +
+ +
+
Payment Details
+
+ +
+ {{ html()->label('Payment')->class('form-label') }} + {{ html()->text('payment')->class('form-control')->placeholder('Enter Payment') }} +
+ +
+ {{ html()->label('Mode of Payment')->class('form-label') }} + {{ html()->select('paymentmode_id', $paymentModes)->class('form-select select2')->placeholder('Select Payment Mode') }} +
+ +
+ {{ html()->label('Payment Reference')->class('form-label') }} + {{ html()->text('paymentref')->class('form-control')->placeholder('Enter Payment Reference') }} +
+ + +
+ +
+ +
+ + +@push('js') + + + + +@endpush diff --git a/Modules/SalesEntry/resources/views/salesEntry/partials/view.blade.php b/Modules/SalesEntry/resources/views/salesEntry/partials/view.blade.php new file mode 100644 index 0000000..67a8c0e --- /dev/null +++ b/Modules/SalesEntry/resources/views/salesEntry/partials/view.blade.php @@ -0,0 +1,16 @@ + diff --git a/Modules/Stocks/app/Providers/.gitkeep b/Modules/SalesEntry/resources/views/salesEntry/show.blade.php similarity index 100% rename from Modules/Stocks/app/Providers/.gitkeep rename to Modules/SalesEntry/resources/views/salesEntry/show.blade.php diff --git a/Modules/Stocks/app/Repositories/.gitkeep b/Modules/SalesEntry/routes/.gitkeep similarity index 100% rename from Modules/Stocks/app/Repositories/.gitkeep rename to Modules/SalesEntry/routes/.gitkeep diff --git a/Modules/SalesEntry/routes/api.php b/Modules/SalesEntry/routes/api.php new file mode 100644 index 0000000..5ec6ac1 --- /dev/null +++ b/Modules/SalesEntry/routes/api.php @@ -0,0 +1,19 @@ +prefix('v1')->group(function () { + Route::apiResource('salesentry', SalesEntryController::class)->names('salesentry'); +}); diff --git a/Modules/Settings/routes/web.php b/Modules/SalesEntry/routes/web.php similarity index 62% rename from Modules/Settings/routes/web.php rename to Modules/SalesEntry/routes/web.php index c4e878d..c414f5b 100644 --- a/Modules/Settings/routes/web.php +++ b/Modules/SalesEntry/routes/web.php @@ -1,7 +1,7 @@ names('settings'); + Route::resource('salesEntry', SalesEntryController::class)->names('salesEntry'); + Route::get('clone-sales-product', [SalesEntryController::class, 'cloneSalesProduct'])->name('salesEntry.cloneSalesProduct'); }); diff --git a/Modules/SalesEntry/vite.config.js b/Modules/SalesEntry/vite.config.js new file mode 100644 index 0000000..6fba290 --- /dev/null +++ b/Modules/SalesEntry/vite.config.js @@ -0,0 +1,26 @@ +import { defineConfig } from 'vite'; +import laravel from 'laravel-vite-plugin'; + +export default defineConfig({ + build: { + outDir: '../../public/build-salesentry', + emptyOutDir: true, + manifest: true, + }, + plugins: [ + laravel({ + publicDirectory: '../../public', + buildDirectory: 'build-salesentry', + input: [ + __dirname + '/resources/assets/sass/app.scss', + __dirname + '/resources/assets/js/app.js' + ], + refresh: true, + }), + ], +}); + +//export const paths = [ +// 'Modules/SalesEntry/resources/assets/sass/app.scss', +// 'Modules/SalesEntry/resources/assets/js/app.js', +//]; \ No newline at end of file diff --git a/Modules/Stocks/config/.gitkeep b/Modules/Setting/app/Http/Controllers/.gitkeep similarity index 100% rename from Modules/Stocks/config/.gitkeep rename to Modules/Setting/app/Http/Controllers/.gitkeep diff --git a/Modules/Setting/app/Http/Controllers/SettingController.php b/Modules/Setting/app/Http/Controllers/SettingController.php new file mode 100644 index 0000000..b19725d --- /dev/null +++ b/Modules/Setting/app/Http/Controllers/SettingController.php @@ -0,0 +1,106 @@ +settingRepository = $settingRepository; + } + + public function index() + { + $data['title'] = 'Categories List'; + $data['categories'] = $this->settingRepository->findAll(); + return view('setting::setting.edit', $data); + } + + /** + * Show the form for creating a new resource. + */ + public function create() + { + $data['title'] = 'Create Setting'; + $data['status'] = Setting::STATUS; + + return view('setting::setting.edit', $data); + } + + /** + * Store a newly created resource in storage. + */ + public function store(Request $request): RedirectResponse + { + $inputData = $request->all(); + $this->settingRepository->create($inputData); + toastr()->success('Setting Created Succesfully'); + $data['setting'] = $this->settingRepository->getSettingById($request->id); + + return redirect()->route('setting.edit'); + } + + /** + * Show the specified resource. + */ + public function show($id) + { + $data['title'] = 'Show Setting'; + $data['status'] = Setting::STATUS; + $data['setting'] = $this->settingRepository->getSettingById($id); + + return view('setting::setting.edit', $data); + } + + /** + * Show the form for editing the specified resource. + */ + public function edit($id) + { + $data['title'] = 'Edit Setting'; + $data['status'] = Setting::STATUS; + + $data['setting'] = $this->settingRepository->getSettingById($id); + + return view('setting::setting.edit', $data); + } + + /** + * Update the specified resource in storage. + */ + public function update(Request $request, $id): RedirectResponse + { + $inputData = $request->except(['_method', '_token']); + $this->settingRepository->update($id, $inputData); + $data['setting'] = $this->settingRepository->getSettingById($id); + + return redirect()->route('setting.edit',$data); + } + + /** + * Remove the specified resource from storage. + */ + public function destroy($id) + { + try { + $SettingModel = $this->settingRepository->getSettingById($id); + $SettingModel->delete(); + + toastr()->success('Product Delete Succesfully'); + } catch (\Throwable $th) { + toastr()->error($th->getMessage()); + } + + return response()->json(['status' => true, 'message' => 'Setting Delete Succesfully']); + } +} diff --git a/Modules/Stocks/database/factories/.gitkeep b/Modules/Setting/app/Http/Requests/.gitkeep similarity index 100% rename from Modules/Stocks/database/factories/.gitkeep rename to Modules/Setting/app/Http/Requests/.gitkeep diff --git a/Modules/Stocks/database/migrations/.gitkeep b/Modules/Setting/app/Models/.gitkeep similarity index 100% rename from Modules/Stocks/database/migrations/.gitkeep rename to Modules/Setting/app/Models/.gitkeep diff --git a/Modules/Settings/app/Models/Setting.php b/Modules/Setting/app/Models/Setting.php similarity index 86% rename from Modules/Settings/app/Models/Setting.php rename to Modules/Setting/app/Models/Setting.php index 1f4f1b5..8f810da 100644 --- a/Modules/Settings/app/Models/Setting.php +++ b/Modules/Setting/app/Models/Setting.php @@ -1,6 +1,6 @@ group(module_path('Settings', '/routes/web.php')); + Route::middleware('web')->group(module_path('Setting', '/routes/web.php')); } /** @@ -44,6 +44,6 @@ class RouteServiceProvider extends ServiceProvider */ protected function mapApiRoutes(): void { - Route::middleware('api')->prefix('api')->name('api.')->group(module_path('Settings', '/routes/api.php')); + Route::middleware('api')->prefix('api')->name('api.')->group(module_path('Setting', '/routes/api.php')); } } diff --git a/Modules/Stocks/app/Providers/StocksServiceProvider.php b/Modules/Setting/app/Providers/SettingServiceProvider.php similarity index 94% rename from Modules/Stocks/app/Providers/StocksServiceProvider.php rename to Modules/Setting/app/Providers/SettingServiceProvider.php index 78b0f5e..3d51576 100644 --- a/Modules/Stocks/app/Providers/StocksServiceProvider.php +++ b/Modules/Setting/app/Providers/SettingServiceProvider.php @@ -1,15 +1,15 @@ paginate(20); + } + + public function getSettingById($SettingId) + { + return Setting::findOrFail($SettingId); + } + + public function getSettingByEmail($email) + { + return Setting::where('email', $email)->first(); + } + + public function delete($SettingId) + { + Setting::destroy($SettingId); + } + + public function create($SettingDetails) + { + return Setting::create($SettingDetails); + } + + public function update($SettingId, array $newDetails) + { + return Setting::whereId($SettingId)->update($newDetails); + } + + public function pluck() + { + return Setting::pluck('title', 'id'); + } + +} diff --git a/Modules/Settings/composer.json b/Modules/Setting/composer.json similarity index 57% rename from Modules/Settings/composer.json rename to Modules/Setting/composer.json index fdda8d8..e39a83b 100644 --- a/Modules/Settings/composer.json +++ b/Modules/Setting/composer.json @@ -1,5 +1,5 @@ { - "name": "nwidart/settings", + "name": "nwidart/setting", "description": "", "authors": [ { @@ -17,14 +17,14 @@ }, "autoload": { "psr-4": { - "Modules\\Settings\\": "app/", - "Modules\\Settings\\Database\\Factories\\": "database/factories/", - "Modules\\Settings\\Database\\Seeders\\": "database/seeders/" + "Modules\\Setting\\": "app/", + "Modules\\Setting\\Database\\Factories\\": "database/factories/", + "Modules\\Setting\\Database\\Seeders\\": "database/seeders/" } }, "autoload-dev": { "psr-4": { - "Modules\\Settings\\Tests\\": "tests/" + "Modules\\Setting\\Tests\\": "tests/" } } } diff --git a/Modules/Stocks/routes/.gitkeep b/Modules/Setting/config/.gitkeep similarity index 100% rename from Modules/Stocks/routes/.gitkeep rename to Modules/Setting/config/.gitkeep diff --git a/Modules/Setting/config/config.php b/Modules/Setting/config/config.php new file mode 100644 index 0000000..52d4a8e --- /dev/null +++ b/Modules/Setting/config/config.php @@ -0,0 +1,5 @@ + 'Setting', +]; diff --git a/Modules/Stocks/resources/assets/js/app.js b/Modules/Setting/database/factories/.gitkeep similarity index 100% rename from Modules/Stocks/resources/assets/js/app.js rename to Modules/Setting/database/factories/.gitkeep diff --git a/Modules/Stocks/resources/assets/sass/app.scss b/Modules/Setting/database/migrations/.gitkeep similarity index 100% rename from Modules/Stocks/resources/assets/sass/app.scss rename to Modules/Setting/database/migrations/.gitkeep diff --git a/Modules/Setting/database/seeders/.gitkeep b/Modules/Setting/database/seeders/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/Settings/database/seeders/SettingsDatabaseSeeder.php b/Modules/Setting/database/seeders/SettingDatabaseSeeder.php similarity index 64% rename from Modules/Settings/database/seeders/SettingsDatabaseSeeder.php rename to Modules/Setting/database/seeders/SettingDatabaseSeeder.php index 4d6e058..3a5799a 100644 --- a/Modules/Settings/database/seeders/SettingsDatabaseSeeder.php +++ b/Modules/Setting/database/seeders/SettingDatabaseSeeder.php @@ -1,10 +1,10 @@ +
+ + @include('layouts.partials.breadcrumb', ['title' => $title]) + + + {{ html()->modelForm($setting, 'PUT')->route('setting.update', $setting->id)->class(['needs-validation'])->attributes(['novalidate', 'enctype' => 'multipart/form-data'])->open() }} + + @include('setting::setting.partials.action') + + {{ html()->closeModelForm() }} + +
+ + +@endsection + +@push('js') + +@endpush diff --git a/Modules/Setting/resources/views/Setting/partials/action.blade.php b/Modules/Setting/resources/views/Setting/partials/action.blade.php new file mode 100644 index 0000000..bc5e473 --- /dev/null +++ b/Modules/Setting/resources/views/Setting/partials/action.blade.php @@ -0,0 +1,164 @@ +
+
+
+
+
+
+ {{ html()->label('Title')->class('form-label') }} + {{ html()->text('title')->class('form-control')->placeholder('Enter Title')->required() }} +
+ +
+ {{ html()->label('Description')->class('form-label') }} + {{ html()->textarea('description')->class('form-control')->placeholder('Enter Description')->required() }} +
+ +
+ {{ html()->label('url1')->class('form-label') }} + {{ html()->text('url1')->class('form-control')->placeholder('Enter url1') }} +
+ +
+ {{ html()->label('url2')->class('form-label') }} + {{ html()->text('url2')->class('form-control')->placeholder('Enter url2') }} +
+ +
+ {{ html()->label('email')->class('form-label') }} + {{ html()->text('email')->class('form-control')->placeholder('Enter email') }} +
+ +
+ {{ html()->label('phone')->class('form-label') }} + {{ html()->text('phone')->class('form-control')->placeholder('Enter phone') }} +
+ +
+ {{ html()->label('secondary_phone')->class('form-label') }} + {{ html()->text('secondary_phone')->class('form-control')->placeholder('Enter secondary_phone') }} +
+ +
+ {{ html()->label('google_map')->class('form-label') }} + {{ html()->text('google_map')->class('form-control')->placeholder('Enter google_map') }} +
+ +
+ {{ html()->label('fb')->class('form-label') }} + {{ html()->text('fb')->class('form-control')->placeholder('Enter fb') }} +
+ +
+ {{ html()->label('insta')->class('form-label') }} + {{ html()->text('insta')->class('form-control')->placeholder('Enter insta') }} +
+ +
+ {{ html()->label('twitter')->class('form-label') }} + {{ html()->text('twitter')->class('form-control')->placeholder('Enter twitter') }} +
+ +
+ {{ html()->label('tiktok')->class('form-label') }} + {{ html()->text('tiktok')->class('form-control')->placeholder('Enter tiktok') }} +
+ +
+ {{ html()->label('copyright_text')->class('form-label') }} + {{ html()->text('copyright_text')->class('form-control')->placeholder('Enter copyright_text') }} +
+ +
+ {{ html()->label('content1')->class('form-label') }} + {{ html()->text('content1')->class('form-control')->placeholder('Enter content1') }} +
+ +
+ {{ html()->label('content2')->class('form-label') }} + {{ html()->text('content2')->class('form-control')->placeholder('Enter content2') }} +
+ +
+ {{ html()->label('content3')->class('form-label') }} + {{ html()->text('content3')->class('form-control')->placeholder('Enter content3') }} +
+ +
+ {{ html()->label('seo_title')->class('form-label') }} + {{ html()->text('seo_title')->class('form-control')->placeholder('Enter seo_title') }} +
+ +
+ {{ html()->label('seo_description')->class('form-label') }} + {{ html()->textarea('seo_description')->class('form-control')->placeholder('Enter seo_description')->required() }} +
+ +
+ {{ html()->label('seo_keywords')->class('form-label') }} + {{ html()->textarea('seo_keywords')->class('form-control')->placeholder('Enter seo_keywords')->required() }} +
+ +
+ {{ html()->label('og_tags')->class('form-label') }} + {{ html()->textarea('og_tags')->class('form-control')->placeholder('Enter og_tags')->required() }} +
+ + +
+ +
+ + +
+
+ Cancel + +
+
+ +
+
+
+
+
+
+

Images

+
+
+
+ {{ html()->label('primary_logo')->class('form-label') }} + {{ html()->file('primary_logo')->class('form-control') }} +
+ +
+ {{ html()->label('secondary_logo')->class('form-label') }} + {{ html()->file('secondary_logo')->class('form-control') }} +
+ +
+ {{ html()->label('thumb')->class('form-label') }} + {{ html()->file('thumb')->class('form-control') }} +
+ +
+ {{ html()->label('icon')->class('form-label') }} + {{ html()->file('icon')->class('form-control') }} +
+ +
+ {{ html()->label('og_image')->class('form-label') }} + {{ html()->file('og_image')->class('form-control') }} +
+ +
+ {{ html()->label('no_image')->class('form-label') }} + {{ html()->file('no_image')->class('form-control') }} +
+
+ Cancel + +
+
+
+
+
\ No newline at end of file diff --git a/Modules/Setting/resources/views/index.blade.php b/Modules/Setting/resources/views/index.blade.php new file mode 100644 index 0000000..8f3043f --- /dev/null +++ b/Modules/Setting/resources/views/index.blade.php @@ -0,0 +1,7 @@ +@extends('setting::layouts.master') + +@section('content') +

Hello World

+ +

Module: {!! config('setting.name') !!}

+@endsection diff --git a/Modules/Settings/resources/views/layouts/master.blade.php b/Modules/Setting/resources/views/layouts/master.blade.php similarity index 76% rename from Modules/Settings/resources/views/layouts/master.blade.php rename to Modules/Setting/resources/views/layouts/master.blade.php index cf6bb7e..6c5ee6b 100644 --- a/Modules/Settings/resources/views/layouts/master.blade.php +++ b/Modules/Setting/resources/views/layouts/master.blade.php @@ -7,7 +7,7 @@ - Settings Module - {{ config('app.name', 'Laravel') }} + Setting Module - {{ config('app.name', 'Laravel') }} @@ -18,12 +18,12 @@ {{-- Vite CSS --}} - {{-- {{ module_vite('build-settings', 'resources/assets/sass/app.scss') }} --}} + {{-- {{ module_vite('build-setting', 'resources/assets/sass/app.scss') }} --}} @yield('content') {{-- Vite JS --}} - {{-- {{ module_vite('build-settings', 'resources/assets/js/app.js') }} --}} + {{-- {{ module_vite('build-setting', 'resources/assets/js/app.js') }} --}} diff --git a/Modules/Setting/routes/.gitkeep b/Modules/Setting/routes/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/Settings/routes/api.php b/Modules/Setting/routes/api.php similarity index 78% rename from Modules/Settings/routes/api.php rename to Modules/Setting/routes/api.php index 27956d4..9926781 100644 --- a/Modules/Settings/routes/api.php +++ b/Modules/Setting/routes/api.php @@ -1,7 +1,7 @@ prefix('v1')->group(function () { - Route::apiResource('settings', SettingsController::class)->names('settings'); + Route::apiResource('setting', SettingController::class)->names('setting'); }); diff --git a/Modules/Stocks/routes/web.php b/Modules/Setting/routes/web.php similarity index 77% rename from Modules/Stocks/routes/web.php rename to Modules/Setting/routes/web.php index 00e17f8..5e54412 100644 --- a/Modules/Stocks/routes/web.php +++ b/Modules/Setting/routes/web.php @@ -1,7 +1,7 @@ names('stocks'); + Route::resource('setting', SettingController::class)->names('setting'); }); diff --git a/Modules/Settings/vite.config.js b/Modules/Setting/vite.config.js similarity index 70% rename from Modules/Settings/vite.config.js rename to Modules/Setting/vite.config.js index 6d947b7..69f4ca7 100644 --- a/Modules/Settings/vite.config.js +++ b/Modules/Setting/vite.config.js @@ -3,14 +3,14 @@ import laravel from 'laravel-vite-plugin'; export default defineConfig({ build: { - outDir: '../../public/build-settings', + outDir: '../../public/build-setting', emptyOutDir: true, manifest: true, }, plugins: [ laravel({ publicDirectory: '../../public', - buildDirectory: 'build-settings', + buildDirectory: 'build-setting', input: [ __dirname + '/resources/assets/sass/app.scss', __dirname + '/resources/assets/js/app.js' @@ -21,6 +21,6 @@ export default defineConfig({ }); //export const paths = [ -// 'Modules/Settings/resources/assets/sass/app.scss', -// 'Modules/Settings/resources/assets/js/app.js', +// 'Modules/Setting/resources/assets/sass/app.scss', +// 'Modules/Setting/resources/assets/js/app.js', //]; \ No newline at end of file diff --git a/Modules/Settings/app/Http/Controllers/SettingsController.php b/Modules/Settings/app/Http/Controllers/SettingsController.php deleted file mode 100644 index 94f239d..0000000 --- a/Modules/Settings/app/Http/Controllers/SettingsController.php +++ /dev/null @@ -1,67 +0,0 @@ - 'Settings', -]; diff --git a/Modules/Settings/module.json b/Modules/Settings/module.json deleted file mode 100644 index c5dbc13..0000000 --- a/Modules/Settings/module.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "Settings", - "alias": "settings", - "description": "", - "keywords": [], - "priority": 0, - "providers": [ - "Modules\\Settings\\Providers\\SettingsServiceProvider" - ], - "files": [] -} diff --git a/Modules/Settings/resources/views/index.blade.php b/Modules/Settings/resources/views/index.blade.php deleted file mode 100644 index d794cc8..0000000 --- a/Modules/Settings/resources/views/index.blade.php +++ /dev/null @@ -1,7 +0,0 @@ -@extends('settings::layouts.master') - -@section('content') -

Hello World

- -

Module: {!! config('settings.name') !!}

-@endsection diff --git a/Modules/Stock/app/Http/Controllers/.gitkeep b/Modules/Stock/app/Http/Controllers/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/Stock/app/Http/Controllers/StockController.php b/Modules/Stock/app/Http/Controllers/StockController.php new file mode 100644 index 0000000..44c7101 --- /dev/null +++ b/Modules/Stock/app/Http/Controllers/StockController.php @@ -0,0 +1,97 @@ +stockRepository = $stockRepository; + $this->productRepository = $productRepository; + $this->stockLocationRepository = $stockLocationRepository; + + } + + public function index() + { + $data['title'] = 'Stocks List'; + $data['stocks'] = $this->stockRepository->findAll(); + return view('stock::stock.index', $data); + } + + public function create() + { + $data['title'] = 'Create Stock'; + $data['stockLocation'] = $this->stockLocationRepository->pluck(); + $data['product'] = $this->productRepository->pluck(); + $data['status'] = Stock::STATUS; + + return view('stock::stock.create', $data); + } + + public function store(Request $request): RedirectResponse + { + $request->request->add(['slug' => slugify($request->title)]); + $inputData = $request->all(); + $this->stockRepository->create($inputData); + toastr()->success('Stock Created Successfully'); + + return redirect()->route('stock.index'); + } + + public function show($id) + { + $data['title'] = 'Show Stock'; + $data['status'] = Stock::STATUS; + $data['stock'] = $this->stockRepository->getStockById($id); + + return view('stock::stock.show', $data); + } + + public function edit($id) + { + $data['title'] = 'Edit Stock'; + $data['stockLocation'] = $this->stockLocationRepository->pluck(); + $data['product'] = $this->productRepository->pluck(); + $data['status'] = Stock::STATUS; + $data['stock'] = $this->stockRepository->getStockById($id); + + return view('stock::stock.edit', $data); + } + + public function update(Request $request, $id): RedirectResponse + { + $inputData = $request->except(['_method', '_token']); + $this->stockRepository->update($id, $inputData); + + return redirect()->route('stock.index'); + } + + public function destroy($id) + { + try { + $stock = $this->stockRepository->getStockById($id); + $stock->delete(); + + toastr()->success('Stock Deleted Successfully'); + } catch (\Throwable $th) { + toastr()->error($th->getMessage()); + } + + return response()->json(['status' => true, 'message' => 'Stock Deleted Successfully']); + } +} diff --git a/Modules/Stock/app/Http/Controllers/StockLocationController.php b/Modules/Stock/app/Http/Controllers/StockLocationController.php new file mode 100644 index 0000000..71469be --- /dev/null +++ b/Modules/Stock/app/Http/Controllers/StockLocationController.php @@ -0,0 +1,84 @@ +stockLocationRepository = $stockLocationRepository; + } + + public function index() + { + $data['title'] = 'Stocks List'; + $data['stockLocations'] = $this->stockLocationRepository->findAll(); + return view('stock::stockLocation.index', $data); + } + + public function create() + { + $data['title'] = 'Create StockLocation'; + $data['status'] = StockLocation::STATUS; + + return view('stock::stockLocation.create', $data); + } + + public function store(Request $request): RedirectResponse + { + $request->request->add(['slug' => slugify($request->title)]); + $inputData = $request->all(); + $this->stockLocationRepository->create($inputData); + toastr()->success('StockLocation Created Successfully'); + + return redirect()->route('stockLocation.index'); + } + + public function show($id) + { + $data['title'] = 'Show StockLocation'; + $data['status'] = StockLocation::STATUS; + $data['stockLocation'] = $this->stockLocationRepository->getStockLocationById($id); + + return view('stock::stockLocation.show', $data); + } + + public function edit($id) + { + $data['title'] = 'Edit StockLocation'; + $data['status'] = StockLocation::STATUS; + $data['stockLocation'] = $this->stockLocationRepository->getStockLocationById($id); + + return view('stock::stockLocation.edit', $data); + } + + public function update(Request $request, $id): RedirectResponse + { + $inputData = $request->except(['_method', '_token']); + $this->stockLocationRepository->update($id, $inputData); + + return redirect()->route('stockLocation.index'); + } + + public function destroy($id) + { + try { + $stock = $this->stockLocationRepository->getStockLocationById($id); + $stock->delete(); + + toastr()->success('Stock Location Deleted Successfully'); + } catch (\Throwable $th) { + toastr()->error($th->getMessage()); + } + + return response()->json(['status' => true, 'message' => 'Stock Location Deleted Successfully']); + } +} diff --git a/Modules/Stock/app/Http/Requests/.gitkeep b/Modules/Stock/app/Http/Requests/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/Stock/app/Models/.gitkeep b/Modules/Stock/app/Models/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/Stock/app/Models/Stock.php b/Modules/Stock/app/Models/Stock.php new file mode 100644 index 0000000..6b0373d --- /dev/null +++ b/Modules/Stock/app/Models/Stock.php @@ -0,0 +1,27 @@ +belongsTo(StockLocation::class, 'stocklocation_id'); + } + + public function product() + { + return $this->belongsTo(Product::class, 'product_id'); + } +} + diff --git a/Modules/Stocks/app/Models/Stock.php b/Modules/Stock/app/Models/StockLocation.php similarity index 52% rename from Modules/Stocks/app/Models/Stock.php rename to Modules/Stock/app/Models/StockLocation.php index 09025a7..62167f7 100644 --- a/Modules/Stocks/app/Models/Stock.php +++ b/Modules/Stock/app/Models/StockLocation.php @@ -1,15 +1,16 @@ group(module_path('Stocks', '/routes/web.php')); + Route::middleware('web')->group(module_path('Stock', '/routes/web.php')); } /** @@ -44,6 +44,6 @@ class RouteServiceProvider extends ServiceProvider */ protected function mapApiRoutes(): void { - Route::middleware('api')->prefix('api')->name('api.')->group(module_path('Stocks', '/routes/api.php')); + Route::middleware('api')->prefix('api')->name('api.')->group(module_path('Stock', '/routes/api.php')); } } diff --git a/Modules/Settings/app/Providers/SettingsServiceProvider.php b/Modules/Stock/app/Providers/StockServiceProvider.php similarity index 90% rename from Modules/Settings/app/Providers/SettingsServiceProvider.php rename to Modules/Stock/app/Providers/StockServiceProvider.php index 2c3dc36..9cf7f12 100644 --- a/Modules/Settings/app/Providers/SettingsServiceProvider.php +++ b/Modules/Stock/app/Providers/StockServiceProvider.php @@ -1,15 +1,17 @@ app->register(EventServiceProvider::class); $this->app->register(RouteServiceProvider::class); + $this->app->bind(StockInterface::class, StockRepository::class); } /** diff --git a/Modules/Stock/app/Repositories/.gitkeep b/Modules/Stock/app/Repositories/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/Stock/app/Repositories/StockInterface.php b/Modules/Stock/app/Repositories/StockInterface.php new file mode 100644 index 0000000..5b87f54 --- /dev/null +++ b/Modules/Stock/app/Repositories/StockInterface.php @@ -0,0 +1,15 @@ +paginate(20); + } + + public function getStockLocationById($StockLocationId) + { + return StockLocation::findOrFail($StockLocationId); + } + + public function getStockLocationByEmail($email) + { + return StockLocation::where('email', $email)->first(); + } + + public function delete($StockLocationId) + { + StockLocation::destroy($StockLocationId); + } + + public function create($StockLocationDetails) + { + return StockLocation::create($StockLocationDetails); + } + + public function update($StockLocationId, array $newDetails) + { + return StockLocation::whereId($StockLocationId)->update($newDetails); + } + + public function pluck() + { + return StockLocation::pluck('title', 'id'); + } + +} diff --git a/Modules/Stock/app/Repositories/StockRepository.php b/Modules/Stock/app/Repositories/StockRepository.php new file mode 100644 index 0000000..e4f91ce --- /dev/null +++ b/Modules/Stock/app/Repositories/StockRepository.php @@ -0,0 +1,46 @@ +paginate(20); + } + + public function getStockById($StockId) + { + return Stock::findOrFail($StockId); + } + + public function getStockByEmail($email) + { + return Stock::where('email', $email)->first(); + } + + public function delete($StockId) + { + Stock::destroy($StockId); + } + + public function create($StockDetails) + { + return Stock::create($StockDetails); + } + + public function update($StockId, array $newDetails) + { + return Stock::whereId($StockId)->update($newDetails); + } + + public function pluck() + { + return Stock::pluck('title', 'id'); + } + +} diff --git a/Modules/Stocks/composer.json b/Modules/Stock/composer.json similarity index 58% rename from Modules/Stocks/composer.json rename to Modules/Stock/composer.json index 56f1583..c67f774 100644 --- a/Modules/Stocks/composer.json +++ b/Modules/Stock/composer.json @@ -1,5 +1,5 @@ { - "name": "nwidart/stocks", + "name": "nwidart/stock", "description": "", "authors": [ { @@ -17,14 +17,14 @@ }, "autoload": { "psr-4": { - "Modules\\Stocks\\": "app/", - "Modules\\Stocks\\Database\\Factories\\": "database/factories/", - "Modules\\Stocks\\Database\\Seeders\\": "database/seeders/" + "Modules\\Stock\\": "app/", + "Modules\\Stock\\Database\\Factories\\": "database/factories/", + "Modules\\Stock\\Database\\Seeders\\": "database/seeders/" } }, "autoload-dev": { "psr-4": { - "Modules\\Stocks\\Tests\\": "tests/" + "Modules\\Stock\\Tests\\": "tests/" } } } diff --git a/Modules/Stock/config/.gitkeep b/Modules/Stock/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/Stock/config/config.php b/Modules/Stock/config/config.php new file mode 100644 index 0000000..d6986d7 --- /dev/null +++ b/Modules/Stock/config/config.php @@ -0,0 +1,5 @@ + 'Stock', +]; diff --git a/Modules/Stock/database/factories/.gitkeep b/Modules/Stock/database/factories/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/Stock/database/migrations/.gitkeep b/Modules/Stock/database/migrations/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/Stock/database/seeders/.gitkeep b/Modules/Stock/database/seeders/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/Stocks/database/seeders/StocksDatabaseSeeder.php b/Modules/Stock/database/seeders/StockDatabaseSeeder.php similarity index 65% rename from Modules/Stocks/database/seeders/StocksDatabaseSeeder.php rename to Modules/Stock/database/seeders/StockDatabaseSeeder.php index 366f235..dbcf13a 100644 --- a/Modules/Stocks/database/seeders/StocksDatabaseSeeder.php +++ b/Modules/Stock/database/seeders/StockDatabaseSeeder.php @@ -1,10 +1,10 @@ +
+ @include('layouts.partials.breadcrumb', ['title' => $title]) + + {{ html()->form('POST')->route('stock.store')->class(['needs-validation'])->attributes(['novalidate', 'enctype' => 'multipart/form-data'])->open() }} + + @include('stock::stock.partials.action') + + {{ html()->form()->close() }} +
+
+@endsection + +@push('js') + +@endpush diff --git a/Modules/Stock/resources/views/Stock/edit.blade.php b/Modules/Stock/resources/views/Stock/edit.blade.php new file mode 100644 index 0000000..98f12c2 --- /dev/null +++ b/Modules/Stock/resources/views/Stock/edit.blade.php @@ -0,0 +1,23 @@ +@extends('layouts.app') + +@section('content') +
+
+ + @include('layouts.partials.breadcrumb', ['title' => $title]) + + + {{ html()->modelForm($stock, 'PUT')->route('stock.update', $stock->id)->class(['needs-validation'])->attributes(['novalidate', 'enctype' => 'multipart/form-data'])->open() }} + + @include('stock::stock.partials.action') + + {{ html()->closeModelForm() }} + +
+ +
+@endsection + +@push('js') + +@endpush diff --git a/Modules/Stock/resources/views/Stock/index.blade.php b/Modules/Stock/resources/views/Stock/index.blade.php new file mode 100644 index 0000000..dfbe8b3 --- /dev/null +++ b/Modules/Stock/resources/views/Stock/index.blade.php @@ -0,0 +1,83 @@ +@extends('layouts.app') + +@section('content') +
+
+ @include('layouts.partials.breadcrumb', ['title' => $title]) + + +
+ @can('stock.create') + Add + @endcan +
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + @forelse ($stocks as $key => $stock) + + + + + + + + + + + + + + + @empty + @endforelse + +
S.NStock LocationProductProduct CodeSMLXLXXLXXXLFSAction
{{ $key + 1 }}{{ ($stock->stockLocation)->title }}{{ ($stock->product)->name }}{{ ($stock->product)->code }}{{ $stock->s }}{{ $stock->m }}{{ $stock->l }}{{ $stock->xl }}{{ $stock->xxl }}{{ $stock->xxxl }}{{ $stock->fs }} +
+ @can('stock.show') + + + + @endcan + @can('stock.edit') + + @endcan + @can('stock.destroy') + + @endcan +
+
+
+
+
+
+
+ +
+
+@endsection diff --git a/Modules/Stock/resources/views/Stock/partials/action.blade.php b/Modules/Stock/resources/views/Stock/partials/action.blade.php new file mode 100644 index 0000000..f65ece1 --- /dev/null +++ b/Modules/Stock/resources/views/Stock/partials/action.blade.php @@ -0,0 +1,83 @@ +
+
+
+
+
+
+ {{ html()->label('Title')->class('form-label') }} + {{ html()->text('title')->class('form-control')->placeholder('Enter Title')->required() }} +
+ +
+ {{ html()->label('Stock Location')->class('form-label') }} + {{ html()->select('stocklocation_id', $stockLocation)->class('form-select select2')->placeholder('Select Stock Location')->id('stockLocation_id')->required() }} +
+ +
+ {{ html()->label('Product')->class('form-label') }} + {{ html()->select('product_id', $product)->class('form-select select2')->placeholder('Select Product')->id('product_id')->required() }} +
+ +
+ {{ html()->label('S')->class('form-label') }} + {{ html()->text('s')->class('form-control')->placeholder('Enter S') }} +
+ +
+ {{ html()->label('M')->class('form-label') }} + {{ html()->text('m')->class('form-control')->placeholder('Enter M') }} +
+ +
+ {{ html()->label('L')->class('form-label') }} + {{ html()->text('l')->class('form-control')->placeholder('Enter L') }} +
+ +
+ {{ html()->label('xl')->class('form-label') }} + {{ html()->text('xl')->class('form-control')->placeholder('Enter xl') }} +
+ +
+ {{ html()->label('xxl')->class('form-label') }} + {{ html()->text('xxl')->class('form-control')->placeholder('Enter xxl') }} +
+ +
+ {{ html()->label('xxxl')->class('form-label') }} + {{ html()->text('xxxl')->class('form-control')->placeholder('Enter xxxl') }} +
+ +
+ {{ html()->label('fs')->class('form-label') }} + {{ html()->text('fs')->class('form-control')->placeholder('Enter fs') }} +
+ +
+ +
+ + +
+
+ Cancel + +
+
+ +
+
+
+
Publish
+
+
+
+
+ {{ html()->label('Status')->class('form-label') }} + {{ html()->select('status', $status)->class('form-control')->placeholder('Select Status')->required() }} +
+
+ +
+ +
diff --git a/Modules/Stock/resources/views/Stock/show.blade.php b/Modules/Stock/resources/views/Stock/show.blade.php new file mode 100644 index 0000000..c3c736d --- /dev/null +++ b/Modules/Stock/resources/views/Stock/show.blade.php @@ -0,0 +1,82 @@ +@extends('layouts.app') + +@section('content') +
+
+ @include('layouts.partials.breadcrumb', ['title' => $title]) + +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Stock Name{{ $stock->title }}
Stock Location{{ ($stock->stockLocation)->title }}
Product{{ ($stock->product)->title }}
Product Code{{ ($stock->product)->code }}
S{{ $stock->s }}
M{{ $stock->m }}
L{{ $stock->l }}
XL{{ $stock->xl }}
XXL{{ $stock->xxl }}
XXXL{{ $stock->xxxl }}
FS{{ $stock->fs }}
Status{{ $stock->status }}
+
+
+
+
+ Back + +
+
+
+ +
+
+@endsection + +@push('js') + +@endpush diff --git a/Modules/Stock/resources/views/StockLocation/create.blade.php b/Modules/Stock/resources/views/StockLocation/create.blade.php new file mode 100644 index 0000000..80f10d2 --- /dev/null +++ b/Modules/Stock/resources/views/StockLocation/create.blade.php @@ -0,0 +1,16 @@ +@extends('layouts.app') + +@section('content') +
+
+ @include('layouts.partials.breadcrumb', ['title' => $title]) + {{ html()->form('POST')->route('stockLocation.store')->class(['needs-validation'])->attributes(['novalidate', 'enctype' => 'multipart/form-data'])->open() }} + @include('stock::stocklocation.partials.action') + {{ html()->form()->close() }} +
+
+@endsection + +@push('js') + +@endpush diff --git a/Modules/Stock/resources/views/StockLocation/edit.blade.php b/Modules/Stock/resources/views/StockLocation/edit.blade.php new file mode 100644 index 0000000..4da4769 --- /dev/null +++ b/Modules/Stock/resources/views/StockLocation/edit.blade.php @@ -0,0 +1,23 @@ +@extends('layouts.app') + +@section('content') +
+
+ + @include('layouts.partials.breadcrumb', ['title' => $title]) + + + {{ html()->modelForm($stockLocation, 'PUT')->route('stockLocation.update', $stockLocation->id)->class(['needs-validation'])->attributes(['novalidate', 'enctype' => 'multipart/form-data'])->open() }} + + @include('stock::stockLocation.partials.action') + + {{ html()->closeModelForm() }} + +
+ +
+@endsection + +@push('js') + +@endpush diff --git a/Modules/Stock/resources/views/StockLocation/index.blade.php b/Modules/Stock/resources/views/StockLocation/index.blade.php new file mode 100644 index 0000000..38ba715 --- /dev/null +++ b/Modules/Stock/resources/views/StockLocation/index.blade.php @@ -0,0 +1,70 @@ +@extends('layouts.app') + +@section('content') +
+
+ @include('layouts.partials.breadcrumb', ['title' => $title]) + + +
+ @can('stockLocation.create') + Add + @endcan +
+ +
+
+
+
+
+ + + + + + + + + + + + @forelse ($stockLocations as $key => $stockLocation) + + + + + + + + @empty + @endforelse + +
S.NTitleSlugStatusAction
{{ $key + 1 }}{{ $stockLocation->title }}{{ $stockLocation->slug }}{!! $stockLocation->status_name !!} +
+ @can('stockLocation.show') + + + + @endcan + @can('stockLocation.edit') + + @endcan + @can('stockLocation.destroy') + + @endcan +
+
+
+
+
+
+
+ +
+
+@endsection diff --git a/Modules/Stock/resources/views/StockLocation/partials/action.blade.php b/Modules/Stock/resources/views/StockLocation/partials/action.blade.php new file mode 100644 index 0000000..0390e66 --- /dev/null +++ b/Modules/Stock/resources/views/StockLocation/partials/action.blade.php @@ -0,0 +1,54 @@ +
+
+
+
+
+ +
+ {{ html()->label('Title')->class('form-label') }} + {{ html()->text('title')->class('form-control')->placeholder('Enter Title')->required() }} +
+ +
+ {{ html()->label('Description')->class('form-label') }} + {{ html()->text('description')->class('form-control')->placeholder('Enter Description') }} +
+ +
+ {{ html()->label('Remarks')->class('form-label') }} + {{ html()->text('remarks')->class('form-control')->placeholder('Enter Remarks') }} +
+ + +
+
+
+ +
+ Cancel + + +
+
+ +
+
+
+
Publish
+
+
+
+
+ {{ html()->label('Status')->class('form-label') }} + {{-- {{ html()->select('status', '11')->class('form-control')->placeholder('Select Status') }} + --}} + {{ html()->select('status', $status)->class('form-control')->placeholder('Select Status')->required() }} + +
+
+
+ +
+ +
+
diff --git a/Modules/Stock/resources/views/StockLocation/show.blade.php b/Modules/Stock/resources/views/StockLocation/show.blade.php new file mode 100644 index 0000000..f7f6a19 --- /dev/null +++ b/Modules/Stock/resources/views/StockLocation/show.blade.php @@ -0,0 +1,45 @@ +@extends('layouts.app') + +@section('content') +
+
+ @include('layouts.partials.breadcrumb', ['title' => $title]) + +
+
+
+
+
+ + + + + + + + + + + + + + + +
Title{{ $stockLocation->title }}
Description{{ $stockLocation->description }}
Remarks{{ $stockLocation->remarks }}
+
+
+
+
+ Back + +
+
+
+ +
+
+@endsection + +@push('js') + +@endpush diff --git a/Modules/Stock/resources/views/index.blade.php b/Modules/Stock/resources/views/index.blade.php new file mode 100644 index 0000000..7d14d18 --- /dev/null +++ b/Modules/Stock/resources/views/index.blade.php @@ -0,0 +1,7 @@ +@extends('stock::layouts.master') + +@section('content') +

Hello World

+ +

Module: {!! config('stock.name') !!}

+@endsection diff --git a/Modules/Stocks/resources/views/layouts/master.blade.php b/Modules/Stock/resources/views/layouts/master.blade.php similarity index 76% rename from Modules/Stocks/resources/views/layouts/master.blade.php rename to Modules/Stock/resources/views/layouts/master.blade.php index eb26d9a..ec0e8b3 100644 --- a/Modules/Stocks/resources/views/layouts/master.blade.php +++ b/Modules/Stock/resources/views/layouts/master.blade.php @@ -7,7 +7,7 @@ - Stocks Module - {{ config('app.name', 'Laravel') }} + Stock Module - {{ config('app.name', 'Laravel') }} @@ -18,12 +18,12 @@ {{-- Vite CSS --}} - {{-- {{ module_vite('build-stocks', 'resources/assets/sass/app.scss') }} --}} + {{-- {{ module_vite('build-stock', 'resources/assets/sass/app.scss') }} --}} @yield('content') {{-- Vite JS --}} - {{-- {{ module_vite('build-stocks', 'resources/assets/js/app.js') }} --}} + {{-- {{ module_vite('build-stock', 'resources/assets/js/app.js') }} --}} diff --git a/Modules/Stock/routes/.gitkeep b/Modules/Stock/routes/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/Stocks/routes/api.php b/Modules/Stock/routes/api.php similarity index 79% rename from Modules/Stocks/routes/api.php rename to Modules/Stock/routes/api.php index 0948629..da3f299 100644 --- a/Modules/Stocks/routes/api.php +++ b/Modules/Stock/routes/api.php @@ -1,7 +1,7 @@ prefix('v1')->group(function () { - Route::apiResource('stocks', StocksController::class)->names('stocks'); + Route::apiResource('stock', StockController::class)->names('stock'); }); diff --git a/Modules/Stock/routes/web.php b/Modules/Stock/routes/web.php new file mode 100644 index 0000000..d5c03ae --- /dev/null +++ b/Modules/Stock/routes/web.php @@ -0,0 +1,23 @@ +names('stock'); + Route::resource('stockLocation', StockLocationController::class)->names('stockLocation'); + +}); diff --git a/Modules/Stocks/vite.config.js b/Modules/Stock/vite.config.js similarity index 71% rename from Modules/Stocks/vite.config.js rename to Modules/Stock/vite.config.js index 52cf6f1..17be4d7 100644 --- a/Modules/Stocks/vite.config.js +++ b/Modules/Stock/vite.config.js @@ -3,14 +3,14 @@ import laravel from 'laravel-vite-plugin'; export default defineConfig({ build: { - outDir: '../../public/build-stocks', + outDir: '../../public/build-stock', emptyOutDir: true, manifest: true, }, plugins: [ laravel({ publicDirectory: '../../public', - buildDirectory: 'build-stocks', + buildDirectory: 'build-stock', input: [ __dirname + '/resources/assets/sass/app.scss', __dirname + '/resources/assets/js/app.js' @@ -21,6 +21,6 @@ export default defineConfig({ }); //export const paths = [ -// 'Modules/Stocks/resources/assets/sass/app.scss', -// 'Modules/Stocks/resources/assets/js/app.js', +// 'Modules/Stock/resources/assets/sass/app.scss', +// 'Modules/Stock/resources/assets/js/app.js', //]; \ No newline at end of file diff --git a/Modules/Stocks/app/Http/Controllers/StocksController.php b/Modules/Stocks/app/Http/Controllers/StocksController.php deleted file mode 100644 index 150255e..0000000 --- a/Modules/Stocks/app/Http/Controllers/StocksController.php +++ /dev/null @@ -1,67 +0,0 @@ - 'Stocks', -]; diff --git a/Modules/Stocks/resources/views/index.blade.php b/Modules/Stocks/resources/views/index.blade.php deleted file mode 100644 index 94157c7..0000000 --- a/Modules/Stocks/resources/views/index.blade.php +++ /dev/null @@ -1,7 +0,0 @@ -@extends('stocks::layouts.master') - -@section('content') -

Hello World

- -

Module: {!! config('stocks.name') !!}

-@endsection diff --git a/app/Helpers/BIBStocks.php b/app/Helpers/BIBStocks.php index e19da51..b7c87e7 100644 --- a/app/Helpers/BIBStocks.php +++ b/app/Helpers/BIBStocks.php @@ -124,7 +124,7 @@ class BIBStocks $modelsDirectory = app_path('Models'); $files = scandir($modelsDirectory); $models = []; - + foreach ($files as $file) { if (pathinfo($file, PATHINFO_EXTENSION) == 'php') { $modelName = pathinfo($file, PATHINFO_FILENAME); diff --git a/database/migrations/2024_09_03_161257_create_tbl_settings_table.php b/database/migrations/2024_09_03_161257_create_tbl_settings_table.php index 972ff9b..e4492e6 100644 --- a/database/migrations/2024_09_03_161257_create_tbl_settings_table.php +++ b/database/migrations/2024_09_03_161257_create_tbl_settings_table.php @@ -14,7 +14,7 @@ class CreateTblSettingsTable extends Migration public function up() { Schema::create('tbl_settings', function (Blueprint $table) { - $table->id('setting_id'); + $table->id(); $table->string('title')->nullable(); $table->text('description')->nullable(); $table->string('url1')->nullable(); @@ -42,7 +42,7 @@ class CreateTblSettingsTable extends Migration $table->text('seo_keywords')->nullable(); $table->text('og_tags')->nullable(); $table->integer('display_order')->default(0); - $table->integer('status')->default(0); + $table->integer('status')->default(11); $table->timestamps(); $table->integer('createdby'); $table->integer('updatedby'); diff --git a/modules_statuses.json b/modules_statuses.json index 2b056c3..0a1d677 100644 --- a/modules_statuses.json +++ b/modules_statuses.json @@ -17,5 +17,8 @@ "Product": true, "Supplier": true, "Settings": true, - "Stocks": true + "Stocks": true, + "Stock": true, + "Setting": true, + "SalesEntry": true } \ No newline at end of file diff --git a/resources/views/layouts/partials/sidebar.blade.php b/resources/views/layouts/partials/sidebar.blade.php index 959796f..41eace5 100644 --- a/resources/views/layouts/partials/sidebar.blade.php +++ b/resources/views/layouts/partials/sidebar.blade.php @@ -135,6 +135,19 @@ Sub Category + + + + + + + + {{--