Files
sx-fc/app/models/seed_generator.rb
2017-10-24 15:55:24 +06:30

110 lines
2.9 KiB
Ruby
Executable File

class SeedGenerator < ApplicationRecord
# Generate ID for Tables
def self.generate_id(model, prefix)
seed = SeedGenerator.find_by_model(model)
new_receipt_no = 0
if (seed.nil?)
seed = SeedGenerator.new()
seed.model = model
new_receipt_no = seed.next
seed.save
else
next_no = seed.next
current_no = seed.next
seed.next = seed.next + seed.increase_by
seed.current = current_no
seed.save
# cur_val, next_val = self.update_seed(model, seed.next, seed.increase_by)
# if next_no == cur_val
# puts "SSS"
# puts next_val
# cur_val2, next_val2 = self.update_seed(model, next_val, seed.increase_by)
# puts next_val2
# padding_len = 15 - prefix.length
# saleOrderId = prefix +"-"+ cur_val2.to_s.to_s.rjust((14-prefix.length)+1,'0')
# puts saleOrderId
# return saleOrderId
# end
# padding_len = 15 - prefix.length
# saleOrderId = prefix +"-"+ cur_val.to_s.to_s.rjust((14-prefix.length)+1,'0')
# return saleOrderId
end
padding_len = 15 - prefix.length
saleOrderId = prefix +"-"+ seed.current.to_s.to_s.rjust((14-prefix.length)+1,'0')
return saleOrderId
end
# Generate Receipt No
def self.new_receipt_no
seed = SeedGenerator.find_by_model("sale")
new_receipt_no = 0
if (seed.nil?)
seed = SeedGenerator.new()
seed.model = "sale"
new_receipt_no = seed.next
seed.save
else
current_no = seed.next
seed.next = seed.next
seed.current = current_no
seed.save
end
return seed.current
end
# Generate for 4 digit Code
def self.generate_code(model, prefix)
seed = SeedGenerator.find_by_model(model)
new_code = 0
if (seed.nil?)
seed = SeedGenerator.new()
seed.model = model
new_code = seed.next
seed.save
else
current_no = seed.next
seed.next = seed.next + seed.increase_by
seed.current = current_no
seed.save
end
if prefix.length == 1
padding_len = 5 - prefix.length
count = 4-prefix.length
else prefix.length == 2
padding_len = 6 - prefix.length
count = 5-prefix.length
end
next_code = prefix + seed.current.to_s.to_s.rjust((count)+1,'0')
return next_code
end
def self.update_seed(model, current, inc)
cur_val = 0
next_val = 0
nex = current + inc
update_sql = "update seed_generators set current= #{current}, next= #{nex} where model='#{model}';";
select_sql = "select * from seed_generators where model='#{model}';"
update_result = ActiveRecord::Base.connection.execute(update_sql);
select_result = ActiveRecord::Base.connection.execute(select_sql);
select_result.each do |row|
cur_val = row [3]
next_val = row[4]
end
return cur_val, next_val
end
end