fix duplicate key in seed
This commit is contained in:
@@ -2,6 +2,7 @@ class SeedGenerator < ApplicationRecord
|
|||||||
# Generate ID for Tables
|
# Generate ID for Tables
|
||||||
def self.generate_id(model, prefix)
|
def self.generate_id(model, prefix)
|
||||||
seed = SeedGenerator.find_by_model(model)
|
seed = SeedGenerator.find_by_model(model)
|
||||||
|
currentNo = seed.current
|
||||||
new_receipt_no = 0
|
new_receipt_no = 0
|
||||||
|
|
||||||
if (seed.nil?)
|
if (seed.nil?)
|
||||||
@@ -9,16 +10,17 @@ class SeedGenerator < ApplicationRecord
|
|||||||
seed.model = model
|
seed.model = model
|
||||||
new_receipt_no = seed.next
|
new_receipt_no = seed.next
|
||||||
seed.save
|
seed.save
|
||||||
|
|
||||||
else
|
else
|
||||||
current_no = seed.next
|
next_current = self.update_seed(model, seed.next, seed.increase_by)
|
||||||
seed.next = seed.next + seed.increase_by
|
currentNo = next_current
|
||||||
seed.current = current_no
|
|
||||||
seed.save
|
|
||||||
end
|
|
||||||
|
|
||||||
|
# current_no = seed.next
|
||||||
|
# seed.next = seed.next + seed.increase_by
|
||||||
|
# seed.current = current_no
|
||||||
|
# seed.save
|
||||||
|
end
|
||||||
padding_len = 15 - prefix.length
|
padding_len = 15 - prefix.length
|
||||||
saleOrderId = prefix +"-"+ seed.current.to_s.to_s.rjust((14-prefix.length)+1,'0')
|
saleOrderId = prefix +"-"+ currentNo.to_s.to_s.rjust((14-prefix.length)+1,'0')
|
||||||
return saleOrderId
|
return saleOrderId
|
||||||
|
|
||||||
end
|
end
|
||||||
@@ -71,4 +73,22 @@ class SeedGenerator < ApplicationRecord
|
|||||||
next_code = prefix + seed.current.to_s.to_s.rjust((count)+1,'0')
|
next_code = prefix + seed.current.to_s.to_s.rjust((count)+1,'0')
|
||||||
return next_code
|
return next_code
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
def self.update_seed(model, current, inc)
|
||||||
|
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);
|
||||||
|
Rails.logger.debug "SeedGenerator -> " + update_result.to_s
|
||||||
|
|
||||||
|
select_result = ActiveRecord::Base.connection.execute(select_sql);
|
||||||
|
select_result.each do |row|
|
||||||
|
p row[3]
|
||||||
|
next_val = row[3]
|
||||||
|
end
|
||||||
|
|
||||||
|
return next_val
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user