add tax profiles api
This commit is contained in:
@@ -8,6 +8,10 @@ class Api::ApiController < ActionController::API
|
||||
# before_action :lookup_domain
|
||||
helper_method :current_token, :current_login_employee, :get_cashier
|
||||
|
||||
def get_tax_profiles
|
||||
@inclusive_tax, @exclusive_tax = TaxProfile.calculate_tax("online_order")
|
||||
end
|
||||
|
||||
private
|
||||
# ActionView::Rendering override render_to_body breaks render :json,
|
||||
# resulting in an ActionView::MissingTemplate error.
|
||||
|
||||
@@ -4,4 +4,22 @@ class TaxProfile < ApplicationRecord
|
||||
default_scope { order('order_by asc') }
|
||||
# validations
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
|
||||
@@ -50,6 +50,7 @@ scope "(:locale)", locale: /en|mm/ do
|
||||
post 'authenticate' => "authenticate#create"
|
||||
delete 'authenticate' => "authenticate#destroy"
|
||||
get "menu_item_groups" => "menu_item_groups#index"
|
||||
get 'get_tax_profiles' => 'api#get_tax_profiles'
|
||||
namespace :restaurant do
|
||||
get 'zones' => "zones#index"
|
||||
resources :menu, only: [:index, :show]
|
||||
|
||||
Reference in New Issue
Block a user