diff --git a/app/Http/Controllers/SettingBillingChargeController.php b/app/Http/Controllers/SettingBillingChargeController.php new file mode 100644 index 00000000..85dd119e --- /dev/null +++ b/app/Http/Controllers/SettingBillingChargeController.php @@ -0,0 +1,25 @@ +first(); + return response()->json($billing_charge_setting, 201); + } + + public function update(Request $request) + { + if($billing_charge_setting = SettingBillingCharge::latest()->first()) + $billing_charge_setting->update($request->all()); + else + $billing_charge_setting = SettingBillingCharge::create($request->all()); + + return response()->json($billing_charge_setting, 200); + } +} diff --git a/app/Http/Controllers/SettingTaxRateController.php b/app/Http/Controllers/SettingTaxRateController.php new file mode 100644 index 00000000..354e7689 --- /dev/null +++ b/app/Http/Controllers/SettingTaxRateController.php @@ -0,0 +1,25 @@ +first(); + return response()->json($setting_tax, 201); + } + + public function update(Request $request) + { + if($setting_tax = SettingTaxRate::latest()->first()) + $setting_tax->update($request->all()); + else + $setting_tax = SettingTaxRate::create($request->all()); + + return response()->json($setting_tax, 200); + } +} diff --git a/app/SettingBillingCharge.php b/app/SettingBillingCharge.php new file mode 100644 index 00000000..32e5f9ab --- /dev/null +++ b/app/SettingBillingCharge.php @@ -0,0 +1,10 @@ +increments('id'); + $table->double('billing_charge_rate',8,2); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('setting_billing_charges'); + } +} diff --git a/database/migrations/2018_07_20_183325_create_setting_tax_rate_table.php b/database/migrations/2018_07_20_183325_create_setting_tax_rate_table.php new file mode 100644 index 00000000..e1ffd6ff --- /dev/null +++ b/database/migrations/2018_07_20_183325_create_setting_tax_rate_table.php @@ -0,0 +1,32 @@ +increments('id'); + $table->double('tax_rate',8,2); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('setting_tax_rates'); + } +} diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php index 2c2e3c17..ebc04e05 100644 --- a/database/seeds/DatabaseSeeder.php +++ b/database/seeds/DatabaseSeeder.php @@ -26,6 +26,8 @@ class DatabaseSeeder extends Seeder $this->call(SettingMalaysiaBankSeeder::class); $this->call(SettingBeneficiarySeeder::class); $this->call(SettingActiveBankSeeder::class); + $this->call(SettingTaxRateSeeder::class); + $this->call(SettingBillingChargeSeeder::class); DB::statement('SET FOREIGN_KEY_CHECKS=1;'); } } diff --git a/database/seeds/SettingBillingChargeSeeder.php b/database/seeds/SettingBillingChargeSeeder.php new file mode 100644 index 00000000..5b53433f --- /dev/null +++ b/database/seeds/SettingBillingChargeSeeder.php @@ -0,0 +1,18 @@ +insert([ + 'billing_charge_rate' => '1.2', + ]); + } +} diff --git a/database/seeds/SettingTaxRateSeeder.php b/database/seeds/SettingTaxRateSeeder.php new file mode 100644 index 00000000..9ecff163 --- /dev/null +++ b/database/seeds/SettingTaxRateSeeder.php @@ -0,0 +1,18 @@ +insert([ + 'tax_rate' => '1.1', + ]); + } +} diff --git a/resources/assets/js/pages/settings/admin-billing-charge-setting.vue b/resources/assets/js/pages/settings/admin-billing-charge-setting.vue new file mode 100644 index 00000000..1a3c2ecd --- /dev/null +++ b/resources/assets/js/pages/settings/admin-billing-charge-setting.vue @@ -0,0 +1,65 @@ + + + \ No newline at end of file diff --git a/resources/assets/js/pages/settings/admin-tax-setting.vue b/resources/assets/js/pages/settings/admin-tax-setting.vue new file mode 100644 index 00000000..726c7793 --- /dev/null +++ b/resources/assets/js/pages/settings/admin-tax-setting.vue @@ -0,0 +1,66 @@ + + + \ No newline at end of file diff --git a/resources/assets/js/pages/settings/index.vue b/resources/assets/js/pages/settings/index.vue index 878e7c8f..782a8077 100644 --- a/resources/assets/js/pages/settings/index.vue +++ b/resources/assets/js/pages/settings/index.vue @@ -80,6 +80,18 @@ route: 'settings.admin-marking-setting', role: 'admin' }, + { + icon: 'building', + name: this.$t('Tax Setting'), + route: 'settings.admin-tax-setting', + role: 'admin' + }, + { + icon: 'building', + name: this.$t('Billing Charge Setting'), + route: 'settings.admin-billing-charge-setting', + role: 'admin' + }, ] } } diff --git a/resources/assets/js/router/routes.js b/resources/assets/js/router/routes.js index 3bec3b2b..40d28b09 100644 --- a/resources/assets/js/router/routes.js +++ b/resources/assets/js/router/routes.js @@ -15,6 +15,8 @@ const SettingsAdminChinaBank = () => import('~/pages/settings/admin-china-bank') const SettingsAdminMalaysiaBank = () => import('~/pages/settings/admin-malaysia-bank').then(m => m.default || m) const SettingsAdminBankSetting = () => import('~/pages/settings/admin-bank-setting').then(m => m.default || m) const SettingsAdminMarkingSetting = () => import('~/pages/settings/admin-marking-setting').then(m => m.default || m) +const SettingsAdminTaxSetting = () => import('~/pages/settings/admin-tax-setting').then(m => m.default || m) +const SettingsAdminBillingChargeSetting = () => import('~/pages/settings/admin-billing-charge-setting').then(m => m.default || m) // Booking const Upload = () => import('~/pages/booking/uploadUserBankSlip').then(m => m.default || m) @@ -60,7 +62,9 @@ export default [ { path: 'admin-china-bank', name: 'settings.admin-china-bank', component: SettingsAdminChinaBank }, { path: 'admin-malaysia-bank', name: 'settings.admin-malaysia-bank', component: SettingsAdminMalaysiaBank }, { path: 'admin-bank-setting', name: 'settings.admin-bank-setting', component: SettingsAdminBankSetting }, - { path: 'admin-marking-setting', name: 'settings.admin-marking-setting', component: SettingsAdminMarkingSetting } + { path: 'admin-marking-setting', name: 'settings.admin-marking-setting', component: SettingsAdminMarkingSetting }, + { path: 'admin-tax-setting', name: 'settings.admin-tax-setting', component: SettingsAdminTaxSetting }, + { path: 'admin-billing-charge-setting', name: 'settings.admin-billing-charge-setting', component: SettingsAdminBillingChargeSetting }, ] }, // Booking diff --git a/routes/api.php b/routes/api.php index 81c8d2ab..76e76b70 100644 --- a/routes/api.php +++ b/routes/api.php @@ -49,6 +49,8 @@ Route::group(['middleware' => 'auth:api'], function () { // for both user and admin Route::get('active-bank', 'SettingActiveBankController@index'); + Route::put('setting-tax', 'SettingActiveBankController@index'); + Route::put('setting-billing-charge', 'SettingBillingChargeController@index'); Route::get('malaysia-bank/{malaysiaBank}', 'SettingMalaysiaBankController@show'); }); @@ -74,6 +76,10 @@ Route::group(['middleware' => ['role:admin']], function() { Route::put('setting-active-bank', 'SettingActiveBankController@update'); + Route::put('setting-tax', 'SettingTaxRateController@update'); + + Route::put('setting-billing-charge', 'SettingBillingChargeController@update'); + Route::get('setting-supplier', 'SettingSupplierController@index'); Route::get('setting-supplier/{supplier}', 'SettingSupplierController@show'); Route::post('setting-supplier', 'SettingSupplierController@store'); @@ -111,6 +117,8 @@ Route::group(['middleware' => ['role:admin']], function() { // for both user and admin Route::get('setting-active-bank', 'SettingActiveBankController@index'); + Route::get('setting-tax', 'SettingTaxRateController@index'); + Route::get('setting-billing-charge', 'SettingBillingChargeController@index'); Route::get('setting-malaysia-bank/{malaysiaBank}', 'SettingMalaysiaBankController@show'); }); \ No newline at end of file