diff --git a/app/models/seed_generator.rb b/app/models/seed_generator.rb index 3a35bfac..1451b11e 100644 --- a/app/models/seed_generator.rb +++ b/app/models/seed_generator.rb @@ -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