add tax profiles api
This commit is contained in:
@@ -8,6 +8,10 @@ class Api::ApiController < ActionController::API
|
|||||||
# before_action :lookup_domain
|
# before_action :lookup_domain
|
||||||
helper_method :current_token, :current_login_employee, :get_cashier
|
helper_method :current_token, :current_login_employee, :get_cashier
|
||||||
|
|
||||||
|
def get_tax_profiles
|
||||||
|
@inclusive_tax, @exclusive_tax = TaxProfile.calculate_tax("online_order")
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
# ActionView::Rendering override render_to_body breaks render :json,
|
# ActionView::Rendering override render_to_body breaks render :json,
|
||||||
# resulting in an ActionView::MissingTemplate error.
|
# resulting in an ActionView::MissingTemplate error.
|
||||||
|
|||||||
@@ -4,4 +4,22 @@ class TaxProfile < ApplicationRecord
|
|||||||
default_scope { order('order_by asc') }
|
default_scope { order('order_by asc') }
|
||||||
# validations
|
# validations
|
||||||
validates_presence_of :name, :rate, :group_type
|
validates_presence_of :name, :rate, :group_type
|
||||||
|
|
||||||
|
def self.calculate_tax(group_type)
|
||||||
|
divided_value =0.0
|
||||||
|
exclusive =0.0
|
||||||
|
tax_profiles = TaxProfile.where(group_type: group_type, tax_type: 'Percentage')
|
||||||
|
if !tax_profiles.empty?
|
||||||
|
tax_profiles.each do |tax|
|
||||||
|
#include or execulive
|
||||||
|
if tax.inclusive
|
||||||
|
rate = tax.rate.to_f
|
||||||
|
divided_value += (100 + rate)/rate
|
||||||
|
else
|
||||||
|
exclusive += tax.rate.to_f / 100
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return divided_value,exclusive
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
3
app/views/api/api/get_tax_profiles.json.jbuilder
Normal file
3
app/views/api/api/get_tax_profiles.json.jbuilder
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
json.status true
|
||||||
|
json.inclusive_tax @inclusive_tax
|
||||||
|
json.exclusive_tax @exclusive_tax
|
||||||
@@ -14,4 +14,3 @@ menu_json = json.array! @menus do |menu|
|
|||||||
# end
|
# end
|
||||||
# end
|
# end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ scope "(:locale)", locale: /en|mm/ do
|
|||||||
post 'authenticate' => "authenticate#create"
|
post 'authenticate' => "authenticate#create"
|
||||||
delete 'authenticate' => "authenticate#destroy"
|
delete 'authenticate' => "authenticate#destroy"
|
||||||
get "menu_item_groups" => "menu_item_groups#index"
|
get "menu_item_groups" => "menu_item_groups#index"
|
||||||
|
get 'get_tax_profiles' => 'api#get_tax_profiles'
|
||||||
namespace :restaurant do
|
namespace :restaurant do
|
||||||
get 'zones' => "zones#index"
|
get 'zones' => "zones#index"
|
||||||
resources :menu, only: [:index, :show]
|
resources :menu, only: [:index, :show]
|
||||||
|
|||||||
Reference in New Issue
Block a user