lib/tsubaiso_sdk.rb in tsubaiso-sdk-1.2.6 vs lib/tsubaiso_sdk.rb in tsubaiso-sdk-1.2.7
- old
+ new
@@ -1,21 +1,184 @@
class TsubaisoSDK
require 'net/http'
require 'json'
+ module UrlBuilder
+ def url(root, resource, method, year = nil, month = nil)
+ if year && month && method == "list"
+ return root + "/" + resource + "/list/" + year.to_s + "/" + month.to_s
+ else
+ return root + "/" + resource + "/" + method
+ end
+ end
+ end
+
def initialize(options = {})
@base_url = options[:base_url] || 'https://tsubaiso.net'
- @access_token = options[:access_token]
+ @access_token = options[:access_token] || "Fake_Token"
end
+ def list_bank_account_masters
+ params = { 'format' => 'json' }
+ uri = URI.parse(@base_url + '/bank_account_masters/list')
+ api_request(uri, 'GET', params)
+ end
+
+
+ def update_bank_account_master(options)
+ params = {}
+ candidate_keys = [
+ :name,
+ :account_type,
+ :account_number,
+ :nominee,
+ :memo,
+ :start_ymd,
+ :finish_ymd,
+ :zengin_bank_code,
+ :zengin_branch_code,
+ :zengin_client_code_sogo,
+ :currency_code,
+ :currency_rate_master_code
+ ]
+
+ params = create_parameters(candidate_keys,options)
+ params['format'] = 'json'
+ uri = URI.parse(@base_url + '/bank_account_masters/update/' + options[:id].to_s)
+ api_request(uri, 'POST', params)
+ end
+
+ def list_bank_account_transactions(bank_account_id)
+ params = {
+ 'format' => 'json',
+ 'bank_account_id' => bank_account_id.to_i
+ }
+ uri = URI.parse(@base_url + "/bank_account_transactions/list")
+ api_request(uri, 'GET', params)
+ end
+
+ def show_bank_account_transaction(id)
+ params = {
+ 'format' => 'json',
+ }
+ uri = URI.parse(@base_url + "/bank_account_transactions/show/#{id}")
+ api_request(uri, 'GET', params)
+ end
+
+ def create_bank_account_transaction(options)
+ params = {
+ 'bank_account_id' => options[:bank_account_id],
+ 'journal_timestamp' => options[:journal_timestamp],
+ 'price_value' => options[:price_value],
+ 'price_value_fc' => options[:price_value_fc],
+ 'exchange_rate' => options[:exchange_rate],
+ 'reason_code' => options[:reason_code],
+ 'dc' => options[:dc],
+ 'brief' => options[:brief],
+ 'memo' => options[:memo],
+ 'tag_list' => options[:tag_list],
+ 'dept_code' => options[:dept_code],
+ 'format' => 'json'
+ }
+ uri = URI.parse(@base_url + '/bank_account_transactions/create')
+ api_request(uri, 'POST', params)
+ end
+
+ def destroy_bank_account_transaction(id)
+ params = {
+ 'format' => 'json'
+ }
+ uri = URI.parse(@base_url + "/bank_account_transactions/destroy/#{id}")
+ api_request(uri, 'POST', params)
+ end
+
+ def update_bank_account_transaction(options)
+ params = {}
+ candidate_keys = [
+ :bank_account_id,
+ :journal_timestamp,
+ :price_value,
+ :price_value_fc,
+ :exchange_rate,
+ :reason_code,
+ :dc,
+ :brief,
+ :memo,
+ :tag_list,
+ :dept_code,
+ ]
+
+ params = create_parameters(candidate_keys,options)
+ params['format'] = 'json'
+ uri = URI.parse(@base_url + "/bank_account_transactions/update/#{options[:id]}")
+ api_request(uri, "POST",params)
+ end
+
+ def list_bank_account(options)
+ params = {
+ 'format' => 'json',
+ }
+ uri = URI.parse(@base_url + "/bank_accounts/list/#{options[:year]}/#{options[:month]}")
+ api_request(uri,'GET',params)
+ end
+
+ def create_bank_account(options)
+ params = {
+ 'bank_account_master_id' => options[:bank_account_master_id],
+ 'start_timestamp' => options[:start_timestamp],
+ 'finish_timestamp' => options[:finish_timestamp],
+ 'format' => 'json'
+ }
+
+ uri = URI.parse(@base_url + '/bank_accounts/create')
+ api_request(uri, 'POST', params)
+ end
+
+ def show_bank_account_master(master_id)
+ params = { 'format' => 'json' }
+ uri = URI.parse(@base_url + '/bank_account_masters/show/' + master_id.to_s)
+ api_request(uri, 'GET', params)
+ end
+
+ def destroy_bank_account_master(destroy_id)
+ params = { 'format' => 'json' }
+ uri = URI.parse(@base_url + '/bank_account_masters/destroy/' + destroy_id.to_s)
+ api_request(uri, 'POST', params)
+ end
+
+ def create_bank_account_master(options)
+ params = {
+ 'format' => 'json',
+ 'name' => options[:name],
+ 'account_type' => options[:account_type],
+ 'account_number' => options[:account_number],
+ 'nominee' => options[:nominee],
+ 'memo' => options[:memo],
+ 'start_ymd' => options[:start_ymd],
+ 'finish_ymd' => options[:finish_ymd],
+ 'zengin_bank_code' => options[:zengin_bank_code],
+ 'zengin_branch_code' => options[:zengin_branch_code],
+ 'zengin_client_code_sogo' => options[:zengin_client_code_sogo],
+ 'currency_code' => options[:currency_code],
+ 'currency_rate_master_code' => options[:currency_rate_master_code]
+ }
+
+ uri = URI.parse(@base_url + '/bank_account_masters/create')
+ api_request(uri, 'POST', params)
+ end
+
+ def index_api_history
+ params = { 'format' => 'json' }
+ uri = URI.parse(@base_url + '/api_histories/index')
+ api_request(uri, 'GET', params)
+ end
+
def list_sales(year, month)
params = {
- 'year' => year,
- 'month' => month,
'format' => 'json'
}
- uri = URI.parse(@base_url + '/ar/list/')
+ uri = URI.parse(@base_url + "/ar/list/#{year.to_i}/#{month.to_i}")
api_request(uri, 'GET', params)
end
def list_sales_and_account_balances(year, month, options = {})
params = {
@@ -23,21 +186,19 @@
'month' => month,
'customer_master_id' => options[:customer_master_id],
'ar_segment' => options[:ar_segment],
'format' => 'json'
}
- uri = URI.parse(@base_url + '/ar_receipts/balance/')
+ uri = URI.parse(@base_url + '/ar/balance')
api_request(uri, 'GET', params)
end
def list_purchases(year, month)
params = {
- 'year' => year,
- 'month' => month,
'format' => 'json'
}
- uri = URI.parse(@base_url + '/ap_payments/list/')
+ uri = URI.parse(@base_url + "/ap_payments/list/#{year.to_i}/#{month.to_i}")
api_request(uri, 'GET', params)
end
def list_purchases_and_account_balances(year, month, options = {})
params = {
@@ -45,124 +206,126 @@
'month' => month,
'customer_master_id' => options[:customer_master_id],
'ap_segment' => options[:ap_segment],
'format' => 'json'
}
- uri = URI.parse(@base_url + '/ap_payments/balance/')
+ uri = URI.parse(@base_url + '/ap_payments/balance')
api_request(uri, 'GET', params)
end
def list_customers
params = { 'format' => 'json' }
- uri = URI.parse(@base_url + '/customer_masters/list/')
+ uri = URI.parse(@base_url + '/customer_masters/list')
api_request(uri, 'GET', params)
end
def list_payrolls(year, month)
params = {
- 'format' => 'json',
- 'year' => year,
- 'month' => month
+ 'format' => 'json'
}
- uri = URI.parse(@base_url + '/payrolls/list/')
+ uri = URI.parse(@base_url + "/payrolls/list/#{year.to_s}/#{month.to_s}")
api_request(uri, 'GET', params)
end
def list_staff
params = { 'format' => 'json' }
- uri = URI.parse(@base_url + '/staffs/list/')
+ uri = URI.parse(@base_url + '/staffs/list')
api_request(uri, 'GET', params)
end
def list_staff_data(staff_id)
params = {
'format' => 'json',
'staff_id' => staff_id
}
- uri = URI.parse(@base_url + '/staff_data/list/')
+ uri = URI.parse(@base_url + '/staff_data/list')
api_request(uri, 'GET', params)
end
def list_staff_datum_masters
params = { 'format' => 'json' }
- uri = URI.parse(@base_url + '/staff_datum_masters/list/')
+ uri = URI.parse(@base_url + '/staff_datum_masters/list')
api_request(uri, 'GET', params)
end
def list_reimbursements(year, month)
params = {
'format' => 'json',
'year' => year,
'month' => month
}
- uri = URI.parse(@base_url + '/reimbursements/list/')
+ uri = URI.parse(@base_url + '/reimbursements/list')
api_request(uri, 'GET', params)
end
def list_reimbursement_transactions(reimbursement_id)
params = {
'format' => 'json',
'id' => reimbursement_id.to_i
}
- uri = URI.parse(@base_url + '/reimbursement_transactions/list/')
+ uri = URI.parse(@base_url + '/reimbursement_transactions/list')
api_request(uri, 'GET', params)
end
def list_reimbursement_reason_masters
params = { 'format' => 'json' }
- uri = URI.parse(@base_url + '/reimbursement_reason_masters/list/')
+ uri = URI.parse(@base_url + '/reimbursement_reason_masters/list')
api_request(uri, 'GET', params)
end
- def list_manual_journals(year = nil, month = nil)
- params = {
- 'year' => year,
- 'month' => month,
- 'format' => 'json'
- }
- uri = URI.parse(@base_url + '/manual_journals/list/')
+ def list_manual_journals(year, month)
+ params = { 'format' => 'json' }
+ uri = URI.parse(@base_url + "/manual_journals/list/#{year.to_i}/#{month.to_i}")
api_request(uri, 'GET', params)
end
def list_journals(options)
- params = {
- 'start_date' => options[:start_date],
- 'finish_date' => options[:finish_date],
- 'start_created_at' => options[:start_created_at],
- 'finish_created_at' => options[:finish_created_at],
- 'timestamp_order' => options[:timestamp_order],
- 'account_codes' => options[:account_codes],
- 'price' => options[:price],
- 'memo' => options[:memo],
- 'dept_code' => options[:dept_code],
- 'tag_list' => options[:tag_list],
- 'id' => options[:id],
- 'format' => 'json'
- }
- uri = URI.parse(@base_url + '/journals/list/')
+ params = {}
+ candidate_keys = [
+ :start_date,
+ :finish_date,
+ :start_created_at,
+ :finish_created_at,
+ :account_codes,
+ :price_min,
+ :price_max,
+ :memo,
+ :dept_code,
+ :id,
+ :tag_list,
+ ]
+ params = create_parameters(candidate_keys,options)
+ params['format'] = 'json'
+ uri = URI.parse(@base_url + '/journals/list')
api_request(uri, 'GET', params)
end
def list_depts
params = { 'format' => 'json' }
- uri = URI.parse(@base_url + '/depts/list/')
+ uri = URI.parse(@base_url + '/depts/list')
api_request(uri, 'GET', params)
end
+ def list_tax_masters
+ params = { 'format' => 'json' }
+ uri = URI.parse(@base_url + '/tax_masters/list')
+ api_request(uri, 'GET', params)
+ end
+
def list_tags
params = { 'format' => 'json' }
- uri = URI.parse(@base_url + '/tags/list/')
+ uri = URI.parse(@base_url + '/tags/list')
api_request(uri, 'GET', params)
end
def list_bonuses(bonus_no, target_year)
params = {
'format' => 'json',
'bonus_no' => bonus_no,
'target_year' => target_year
}
- uri = URI.parse(@base_url + '/bonuses/list/')
+ uri = URI.parse(@base_url + '/bonuses/list')
api_request(uri, 'GET', params)
end
def list_ap_reason_masters
params = { 'format' => 'json' }
@@ -170,28 +333,62 @@
api_request(uri, 'GET', params)
end
def list_ar_reason_masters
params = { 'format' => 'json' }
- uri = URI.parse(@base_url + '/ar_reason_masters/list/')
+ uri = URI.parse(@base_url + '/ar_reason_masters/list')
api_request(uri, 'GET', params)
end
+ def list_physical_inventory_masters
+ params = { 'format' => 'json' }
+ uri = URI.parse(@base_url + '/physical_inventory_masters/list')
+ api_request(uri, 'GET', params)
+ end
+
+ def list_bank_reason_masters
+ params = { 'format' => 'json' }
+ uri = URI.parse(@base_url + '/bank_reason_masters/list')
+ api_request(uri, 'GET', params)
+ end
+
# Alpha version now.
def list_fixed_assets
params = { 'format' => 'json' }
- uri = URI.parse(@base_url + '/fixed_assets/list/')
+ uri = URI.parse(@base_url + '/fixed_assets/list')
api_request(uri, 'GET', params)
end
+ def list_petty_cash_reason_masters
+ params = { 'format' => 'json' }
+ uri = URI.parse(@base_url + '/petty_cash_reason_masters/list')
+ api_request(uri, 'GET', params)
+ end
+
+ def list_api_history(options)
+ params = {
+ 'format' => 'json',
+ 'month' => options[:month],
+ 'year' => options[:year]
+ }
+ uri = URI.parse(@base_url + '/api_histories/list')
+ api_request(uri, 'GET', params)
+ end
+
def show_sale(voucher)
sale_id = voucher.scan(/\d/).join('')
params = { 'format' => 'json' }
uri = URI.parse(@base_url + "/ar/show/#{sale_id}")
api_request(uri, 'GET', params)
end
+ def show_tax_master(tax_master_id)
+ params = { 'format' => 'json' }
+ uri = URI.parse(@base_url + "/tax_masters/show/#{tax_master_id}")
+ api_request(uri, 'GET', params)
+ end
+
def show_purchase(voucher)
purchase_id = voucher.scan(/\d/).join('')
params = { 'format' => 'json' }
uri = URI.parse(@base_url + "/ap_payments/show/#{purchase_id}")
api_request(uri, 'GET', params)
@@ -202,10 +399,19 @@
params = { 'format' => 'json' }
uri = URI.parse(@base_url + "/customer_masters/show/#{customer_id}")
api_request(uri, 'GET', params)
end
+ def show_customer_by_code(code)
+ params = {
+ 'code' => code,
+ 'format' => 'json'
+ }
+ uri = URI.parse(@base_url + '/customer_masters/show')
+ api_request(uri, 'GET', params)
+ end
+
def show_staff(staff_id)
staff_id = staff_id.to_i
params = { 'format' => 'json' }
uri = URI.parse(@base_url + "/staffs/show/#{staff_id}")
api_request(uri, 'GET', params)
@@ -217,31 +423,30 @@
'staff_id' => options[:staff_id],
'code' => options[:code],
'time' => options[:time],
'format' => 'json'
}
- id = options[:id]
+ # id = options[:id]
else
params = { 'format' => 'json' }
- id = options
+ id = "/" + options.to_s
end
- uri = URI.parse(@base_url + "/staff_data/show/#{id}")
+ uri = URI.parse(@base_url + "/staff_data/show#{id}")
api_request(uri, 'GET', params)
end
def show_staff_datum_master(options)
if options.is_a?(Hash)
params = {
'code' => options[:code],
'format' => 'json'
}
- id = options[:id]
else
params = { 'format' => 'json' }
- id = options
+ id = '/' + options.to_s
end
- uri = URI.parse(@base_url + "/staff_datum_masters/show/#{id}")
+ uri = URI.parse(@base_url + "/staff_datum_masters/show#{id}")
api_request(uri, 'GET', params)
end
def show_manual_journal(manual_journal_id)
params = { 'format' => 'json' }
@@ -307,10 +512,39 @@
params = { 'format' => 'json' }
uri = URI.parse(@base_url + "/ap_reason_masters/show/#{ap_reason_master_id}")
api_request(uri, 'GET', params)
end
+ def show_physical_inventory_master(physical_inventory_master_id)
+ params = { 'format' => 'json' }
+ uri = URI.parse(@base_url + "/physical_inventory_masters/show/#{physical_inventory_master_id}")
+ api_request(uri, 'GET', params)
+ end
+
+ def show_bank_reason_master(bank_reason_master_id)
+ params = { 'format' => 'json' }
+ uri = URI.parse(@base_url + "/bank_reason_masters/show/#{bank_reason_master_id}")
+ api_request(uri, 'GET', params)
+ end
+
+ def show_petty_cash_reason_master(petty_cash_reason_master_id)
+ params = { 'format' => 'json' }
+ uri = URI.parse(@base_url + "/petty_cash_reason_masters/show/#{petty_cash_reason_master_id}")
+ api_request(uri, 'GET', params)
+ end
+
+ def show_corporate_master(corporate_master_id, options = {})
+ params = {
+ 'ccode' => options[:ccode],
+ 'format' => 'json'
+ }
+ corporate_master_id = '/' + corporate_master_id.to_s if corporate_master_id
+
+ uri = URI.parse(@base_url + "/corporate_masters/show#{corporate_master_id}")
+ api_request(uri, 'GET', params)
+ end
+
def create_customer(options)
available_keys = [
'accountant_email',
'address',
'administrator_name',
@@ -352,22 +586,37 @@
'used_in_ap',
'used_in_ar',
'withholding_tax_base',
'withholding_tax_segment',
'zip',
+ 'pay_date_if_holiday',
+ 'receive_date_if_holiday',
'data_partner'
]
params = {}
- available_keys.each do |key|
- params[key.to_s] = options[key.to_sym]
- end
+ params = create_parameters(available_keys.map{|x| x.to_sym},options)
params['format'] = 'json'
uri = URI.parse(@base_url + '/customer_masters/create')
api_request(uri, 'POST', params)
end
+ def create_bank_reason_masters(options)
+ params = {
+ 'sort_number' => options[:sort_number],
+ 'reason_code' => options[:reason_code],
+ 'reason_name' => options[:reason_name],
+ 'dc' => options[:dc],
+ 'is_valid' => options[:is_valid],
+ 'memo' => options[:memo],
+ 'account_code' => options[:account_code],
+ 'format' => 'json'
+ }
+ uri = URI.parse(@base_url + '/bank_reason_masters/create')
+ api_request(uri, 'POST', params)
+ end
+
def create_sale(options)
params = {
'price_including_tax' => options[:price_including_tax],
'realization_timestamp' => options[:realization_timestamp],
'customer_master_code' => options[:customer_master_code],
@@ -385,10 +634,34 @@
}
uri = URI.parse(@base_url + '/ar/create')
api_request(uri, 'POST', params)
end
+ def find_or_create_sale(options)
+ params = {}
+ available_keys = [
+ 'price_including_tax',
+ 'realization_timestamp',
+ 'customer_master_code',
+ 'dept_code',
+ 'reason_master_code',
+ 'dc',
+ 'memo',
+ 'tax_code',
+ 'sales_tax',
+ 'scheduled_memo',
+ 'scheduled_receive_timestamp',
+ 'tag_list',
+ 'data_partner',
+ 'key'
+ ]
+ params = create_parameters(available_keys.map{|x| x.to_sym},options)
+ params['format'] = 'json'
+ uri = URI.parse(@base_url + '/ar/find_or_create')
+ api_request(uri, 'POST', params)
+ end
+
def create_purchase(options)
params = {
'price_including_tax' => options[:price_including_tax],
'accrual_timestamp' => options[:accrual_timestamp],
'customer_master_code' => options[:customer_master_code],
@@ -404,10 +677,30 @@
}
uri = URI.parse(@base_url + '/ap_payments/create')
api_request(uri, 'POST', params)
end
+ def find_or_create_purchase(options)
+ params = {
+ 'price_including_tax' => options[:price_including_tax],
+ 'accrual_timestamp' => options[:accrual_timestamp],
+ 'customer_master_code' => options[:customer_master_code],
+ 'dept_code' => options[:dept_code],
+ 'reason_master_code' => options[:reason_master_code],
+ 'dc' => options[:dc],
+ 'memo' => options[:memo],
+ 'tax_code' => options[:tax_code],
+ 'port_type' => options[:port_type],
+ 'tag_list' => options[:tag_list],
+ 'data_partner' => options[:data_partner],
+ 'key' => options[:key],
+ 'format' => 'json'
+ }
+ uri = URI.parse(@base_url + '/ap_payments/find_or_create')
+ api_request(uri, 'POST', params)
+ end
+
def create_staff_data(options)
params = {
'staff_id' => options[:staff_id],
'code' => options[:code],
'memo' => options[:memo],
@@ -445,11 +738,11 @@
'application_term' => options[:application_term],
'staff_code' => options[:staff_code],
'dept_code' => options[:dept_code],
'memo' => options[:memo]
}
- uri = URI.parse(@base_url + '/reimbursements/create/')
+ uri = URI.parse(@base_url + '/reimbursements/create')
api_request(uri, 'POST', params)
end
def create_reimbursement_transaction(options)
params = {
@@ -464,11 +757,11 @@
'memo' => options[:memo],
'tag_list' => options[:tag_list],
'tax_type' => options[:tax_type],
'data_partner' => options[:data_partner]
}
- uri = URI.parse(@base_url + '/reimbursement_transactions/create/')
+ uri = URI.parse(@base_url + '/reimbursement_transactions/create')
api_request(uri, 'POST', params)
end
def create_dept(options)
params = {
@@ -480,11 +773,11 @@
'color' => options[:color],
'memo' => options[:memo],
'start_date' => options[:start_date],
'finish_date' => options[:finish_date]
}
- uri = URI.parse(@base_url + '/depts/create/')
+ uri = URI.parse(@base_url + '/depts/create')
api_request(uri, 'POST', params)
end
def create_tag(options)
params = {
@@ -494,11 +787,11 @@
'sort_no' => options[:sort_no],
'tag_group_code' => options[:tag_group_code],
'start_ymd' => options[:start_ymd],
'finish_ymd' => options[:finish_ymd]
}
- uri = URI.parse(@base_url + '/tags/create/')
+ uri = URI.parse(@base_url + '/tags/create')
api_request(uri, 'POST', params)
end
def create_journal_distribution(options)
params = {
@@ -514,16 +807,60 @@
'target_timestamp' => options[:target_timestamp],
'memo' => options[:memo],
'criteria' => options[:criteria],
'distribution_conditions' => options[:distribution_conditions]
}
- uri = URI.parse(@base_url + '/journal_distributions/create/')
+ uri = URI.parse(@base_url + '/journal_distributions/create')
api_request(uri, 'POST', params)
end
+ def create_petty_cash_reason_master(options)
+ params = {
+ 'format' => 'json',
+ 'reason_code' => options[:reason_code],
+ 'reason_name' => options[:reason_name],
+ 'dc' => options[:dc],
+ 'account_code' => options[:account_code],
+ 'is_valid' => options[:is_valid],
+ 'memo' => options[:memo],
+ 'port_type' => options[:port_type],
+ 'sort_number' => options[:sort_number]
+ }
+ uri = URI.parse(@base_url + '/petty_cash_reason_masters/create')
+ api_request(uri, 'POST', params)
+ end
+
+ def create_physical_inventory_masters(options)
+ params = {}
+ candidate_keys = [:name, :start_ymd, :finish_ymd, :memo, :tag_list, :dept_code]
+ params = create_parameters(candidate_keys,options)
+ params['format'] = 'json'
+
+ uri = URI.parse(@base_url + '/physical_inventory_masters/create')
+ api_request(uri, 'POST', params)
+ end
+
def update_sale(options)
- params = options.merge({ 'format' => 'json' })
+ available_keys = [
+ 'id',
+ 'price_including_tax',
+ 'realization_timestamp',
+ 'customer_master_code',
+ 'dept_code',
+ 'reason_master_code',
+ 'dc',
+ 'memo',
+ 'tax_code',
+ 'sales_tax',
+ 'scheduled_memo',
+ 'scheduled_receive_timestamp',
+ 'tag_list',
+ 'data_partner'
+ ]
+ params = {}
+ params = create_parameters(available_keys.map{|x| x.to_sym},options)
+ params['format'] = 'json'
uri = URI.parse(@base_url + "/ar/update/#{options[:id]}")
api_request(uri, 'POST', params)
end
def update_purchase(options)
@@ -576,22 +913,40 @@
'used_in_ap',
'used_in_ar',
'withholding_tax_base',
'withholding_tax_segment',
'zip',
+ 'pay_date_if_holiday',
+ 'receive_date_if_holiday',
'data_partner'
]
params = {}
- available_keys.each do |key|
- params[key.to_s] = options[key.to_sym]
- end
+ params = create_parameters(available_keys.map{|x| x.to_sym},options)
params['format'] = 'json'
uri = URI.parse(@base_url + "/customer_masters/update/#{options[:id]}")
api_request(uri, 'POST', params)
end
+ def update_bank_reason_masters(options)
+ params = {}
+ candidate_keys = [
+ :sort_number,
+ :reason_code,
+ :reason_name,
+ :dc,
+ :is_valid,
+ :memo,
+ :account_code
+ ]
+
+ params = create_parameters(candidate_keys,options)
+ params['format'] = 'json'
+ uri = URI.parse(@base_url + '/bank_reason_masters/update/' + options[:id].to_s)
+ api_request(uri, "POST",params)
+ end
+
def update_staff_data(options)
params = {
'memo' => options[:memo],
'value' => options[:value],
'start_timestamp' => options[:start_timestamp],
@@ -602,11 +957,11 @@
params[:finish_timestamp] = options[:finish_timestamp]
elsif options[:no_finish_timestamp]
params[:no_finish_timestamp] = options[:no_finish_timestamp]
end
- uri = URI.parse(@base_url + "/staff_data/update/#{options[:id]}")
+ uri = URI.parse(@base_url + "/staff_data/update/#{options[:staff_id]}")
api_request(uri, 'POST', params)
end
def update_manual_journal(options)
params = {
@@ -619,77 +974,120 @@
uri = URI.parse(@base_url + "/manual_journals/update/#{options[:id]}")
api_request(uri, 'POST', params)
end
def update_reimbursement(reimbursement_id, options)
- params = {
- 'format' => 'json',
- 'applicant' => options[:applicant],
- 'application_term' => options[:application_term],
- 'staff_code' => options[:staff_code],
- 'dept_code' => options[:dept_code],
- 'memo' => options[:memo]
- }
+ params = {}
+ candidate_keys = [
+ :applicant,
+ :application_term,
+ :staff_code,
+ :dept_code,
+ :memo,
+ ]
+ params = create_parameters(candidate_keys,options)
+ params['format'] = 'json'
uri = URI.parse(@base_url + "/reimbursements/update/#{reimbursement_id}")
api_request(uri, 'POST', params)
end
def update_reimbursement_transaction(options)
- params = {
- 'format' => 'json',
- 'port_type' => options[:port_type],
- 'transaction_timestamp' => options[:transaction_timestamp],
- 'price_value' => options[:price_value],
- 'dc' => options[:dc],
- 'reason_code' => options[:reason_code],
- 'brief' => options[:brief],
- 'memo' => options[:memo],
- 'tag_list' => options[:tag_list],
- 'tax_type' => options[:tax_type],
- 'data_partner' => options[:data_partner]
- }
+ params = {}
+ candidate_keys = [
+ :port_type,
+ :transaction_timestamp,
+ :price_value,
+ :bc,
+ :reason_code,
+ :brief,
+ :memo,
+ :tag_list,
+ :tax_type,
+ :data_partner
+ ]
+ params = create_parameters(candidate_keys,options)
+ params['format'] = 'json'
+
uri = URI.parse(@base_url + "/reimbursement_transactions/update/#{options[:id]}")
api_request(uri, 'POST', params)
end
def update_dept(dept_id, options)
- params = {
- 'format' => 'json',
- 'sort_no' => options[:sort_no],
- 'code' => options[:code],
- 'name' => options[:name],
- 'name_abbr' => options[:name_abbr],
- 'color' => options[:color],
- 'memo' => options[:memo],
- 'start_date' => options[:start_date],
- 'finish_date' => options[:finish_date]
- }
+ params = {}
+ candidate_keys = [
+ :sort_no,
+ :code,
+ :name,
+ :memo,
+ :name_abbr,
+ :color,
+ :start_date,
+ :finish_date
+ ]
+ params = create_parameters(candidate_keys,options)
+ params['format'] = 'json'
uri = URI.parse(@base_url + "/depts/update/#{dept_id}")
api_request(uri, 'POST', params)
end
def update_tag(tag_id, options)
- params = {
- 'format' => 'json',
- 'code' => options[:code],
- 'name' => options[:name],
- 'sort_no' => options[:sort_no],
- 'tag_group_code' => options[:tag_group_code],
- 'start_ymd' => options[:start_ymd],
- 'finish_ymd' => options[:finish_ymd]
- }
+ params = {}
+ candidate_keys = [
+ :code,
+ :name,
+ :sort_no,
+ :tagg_group_code,
+ :start_ymd,
+ :finish_ymd
+ ]
+ params = create_parameters(candidate_keys,options)
+ params['format'] = 'json'
uri = URI.parse(@base_url + "/tags/update/#{tag_id}")
api_request(uri, 'POST', params)
end
+ def update_petty_cash_reason_master(petty_cash_reason_master_id, options)
+ params = {}
+ candidate_keys = [
+ :reason_code,
+ :reason_name,
+ :dc,
+ :account_code,
+ :is_valid,
+ :memo,
+ :port_type,
+ :sort_number
+ ]
+ params = create_parameters(candidate_keys,options)
+ params['format'] = 'json'
+ uri = URI.parse(@base_url + "/petty_cash_reason_masters/update/#{petty_cash_reason_master_id}")
+ api_request(uri, 'POST', params)
+ end
+
+ def update_physical_inventory_masters(options)
+ params = {}
+ candidate_keys = [:name, :start_ymd, :finish_ymd, :memo]
+ params = create_parameters(candidate_keys,options)
+ params['format'] = 'json'
+
+ uri = URI.parse(@base_url + "/physical_inventory_masters/update/#{options[:id]}")
+ api_request(uri, 'POST', params)
+ end
+
def destroy_sale(voucher)
sale_id = voucher.scan(/\d/).join('')
params = { 'format' => 'json' }
uri = URI.parse(@base_url + "/ar/destroy/#{sale_id}")
api_request(uri, 'POST', params)
end
+ def destroy_bank_reason_masters(destroy_id)
+ params = {'format' => 'json'}
+ uri = URI.parse(@base_url + '/bank_reason_masters/destroy/' + destroy_id.to_s)
+ api_request(uri,"POST",params)
+ end
+
def destroy_purchase(voucher)
purchase_id = voucher.scan(/\d/).join('')
params = { 'format' => 'json' }
uri = URI.parse(@base_url + "/ap/destroy/#{purchase_id}")
api_request(uri, 'POST', params)
@@ -748,12 +1146,47 @@
params = { 'format' => 'json' }
uri = URI.parse(@base_url + "/fixed_assets/destroy/#{fixed_asset_id}")
api_request(uri, 'POST', params)
end
+ def scheduled_date(target_date, sight, closing_day, shift = 'before')
+ params = { 'format' => 'json', target_date: target_date, sight: sight, closing_day: closing_day, shift: shift }
+ uri = URI.parse(@base_url + '/scheduled_dates/calc')
+ api_request(uri, 'GET', params)
+ end
+
+ def destroy_petty_cash_reason_master(petty_cash_reason_master_id)
+ params = { 'format' => 'json' }
+ uri = URI.parse(@base_url + "/petty_cash_reason_masters/destroy/#{petty_cash_reason_master_id}")
+ api_request(uri, 'POST', params)
+ end
+
+ def destroy_physical_inventory_masters(physical_inventory_masters_id)
+ params = { 'format' => 'json' }
+ uri = URI.parse(@base_url + "/physical_inventory_masters/destroy/#{physical_inventory_masters_id}")
+ api_request(uri, 'POST', params)
+ end
+
+ def next_customer_code
+ params = {
+ 'format' => 'json'
+ }
+ uri = URI.parse(@base_url + '/customer_masters/next_code')
+ api_request(uri, 'GET', params)
+ end
+
private
+
+ def create_parameters(keys,options)
+ # Add new keys and value if options has keys, even if value in options is nil.
+ # This code avoid updateing attributes witch is not specified by the users.
+ (keys & options.keys).inject({ 'format' => 'json' }) do |params, key|
+ params.merge(key.to_s => options[key]) # Hash#slice can be replace this code if your ruby is =< 2.5.0
+ end
+ end
+
def api_request(uri, http_verb, params)
http = Net::HTTP.new(uri.host, uri.port)
initheader = { 'Content-Type' => 'application/json' }
http.use_ssl = true if @base_url =~ /^https/
if http_verb == 'GET'
@@ -790,31 +1223,30 @@
end
end
def make_journal_dcs(journal_dcs)
return nil if journal_dcs.nil?
+
journal_dcs.map { |journal_dc| make_journal_dc(journal_dc) }
end
def make_journal_dc(journal_dc)
- { 'debit' => make_journal_dc_oneside(journal_dc[:debit]),
+ {
+ 'debit' => make_journal_dc_oneside(journal_dc[:debit]),
'credit' => make_journal_dc_oneside(journal_dc[:credit]),
'dept_code' => journal_dc[:dept_code],
- 'memo' => journal_dc[:memo] }
+ 'memo' => journal_dc[:memo],
+ 'tag_list' => journal_dc[:tag_list]
+ }
end
def make_journal_dc_oneside(side)
return nil if side.nil?
- { 'account_code' => side[:account_code].to_s,
+
+ {
+ 'account_code' => side[:account_code].to_s,
'price_including_tax' => side[:price_including_tax],
'tax_type' => side[:tax_type],
- 'sales_tax' => side[:sales_tax] }
- end
-
- def next_customer_code
- params = {
- 'format' => 'json'
+ 'sales_tax' => side[:sales_tax]
}
- uri = URI.parse(@base_url + '/customer_masters/next_code')
- api_request(uri, 'GET', params)
end
end