This commit is contained in:
Yan
2017-10-25 14:31:25 +06:30
parent 4441944a37
commit 2ae1b5ba3d

View File

@@ -1,42 +1,35 @@
class SeedGenerator < ApplicationRecord
# Generate ID for Tables
def self.generate_id(model, prefix)
seed = SeedGenerator.find_by_model(model)
new_receipt_no = 0
cur_val, next_val = self.update_seed(model)
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
if (cur_val == 0)
cur_val, next_val = self.execute_query(model)
end
padding_len = 15 - prefix.length
saleOrderId = prefix +"-"+ seed.current.to_s.to_s.rjust((14-prefix.length)+1,'0')
return saleOrderId
saleOrderId = prefix +"-"+ cur_val.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
@@ -68,23 +61,41 @@ class SeedGenerator < ApplicationRecord
return next_code
end
def self.update_seed(model, current, inc)
cur_val = 0
next_val = 0
nex = current + inc
def self.execute_query(model)
current = 0
nex = 0
sql = "INSERT INTO seed_generators (model, created_at, updated_at)
VALUES('#{ model }', NOW(), NOW())
ON DUPLICATE KEY UPDATE current = current + 1, next = next + 1;"
update_sql = "update seed_generators set current= #{current}, next= #{nex} where model='#{model}';";
select_sql = "select * from seed_generators where model='#{model}';"
ActiveRecord::Base.connection.execute(sql);
select_result = ActiveRecord::Base.connection.execute(select_sql);
select_result.each do |row|
current = row [3]
nex = row[4]
end
return current, nex
end
def self.update_seed(model)
current = 0
nex = 0
update_sql = "UPDATE seed_generators set current = current + 1, next = next + 1 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|
p row
cur_val = row [3]
next_val = row[4]
current = row [3]
nex = row[4]
end
return cur_val, next_val
return current, nex
end
end