change receipt no generator

This commit is contained in:
phyusin
2018-11-01 17:47:44 +06:30
parent 84a5490394
commit 225d0ac7a8
2 changed files with 37 additions and 38 deletions

View File

@@ -3,7 +3,7 @@ class Sale < ApplicationRecord
#primary key - need to be unique generated for multiple shops #primary key - need to be unique generated for multiple shops
before_create :generate_custom_id before_create :generate_custom_id
#before_create :generate_receipt_no before_create :generate_receipt_no
belongs_to :cashier, :optional => true belongs_to :cashier, :optional => true
belongs_to :customer, :optional => true belongs_to :customer, :optional => true
belongs_to :employees belongs_to :employees
@@ -76,7 +76,7 @@ class Sale < ApplicationRecord
return false, "Invoice is void. Cannot be edited" return false, "Invoice is void. Cannot be edited"
else else
#if this is new sale generate_receipt_no #if this is new sale generate_receipt_no
generate_receipt_no # generate_receipt_no
order = Order.find(order_id) order = Order.find(order_id)
#Default Tax - Values #Default Tax - Values
@@ -698,19 +698,20 @@ class Sale < ApplicationRecord
def generate_receipt_no def generate_receipt_no
#shop_code and client_code #shop_code and client_code
shop_details = Shop.first shop_details = Shop.first
#Date-Shift- #Date-Shift-
if self.receipt_no.nil? if self.receipt_no.nil?
prefix = DateTime.now().utc prefix = DateTime.now().utc
#self.receipt_no = prefix.to_s + "/" + self.shit_id.to_s + "/" + SeedGenerator.new_receipt_no().to_s #self.receipt_no = prefix.to_s + "/" + self.shit_id.to_s + "/" + SeedGenerator.new_receipt_no().to_s
new_receipt_no = SeedGenerator.new_receipt_no().to_s
if !shop_details.nil? if !shop_details.nil?
if !shop_details.shop_code.nil? if !shop_details.shop_code.nil?
self.receipt_no = shop_details.shop_code + "-" + prefix.strftime("%Y%m%d") + "-" + SeedGenerator.new_receipt_no().to_s self.receipt_no = shop_details.shop_code + "-" + prefix.strftime("%Y%m%d") + "-" + new_receipt_no
else else
self.receipt_no = prefix.strftime("%Y%m%d") + "-" + SeedGenerator.new_receipt_no().to_s self.receipt_no = prefix.strftime("%Y%m%d") + "-" + new_receipt_no
end end
else else
self.receipt_no = prefix.strftime("%Y%m%d") + "-" + SeedGenerator.new_receipt_no().to_s self.receipt_no = prefix.strftime("%Y%m%d") + "-" + new_receipt_no
end end
self.receipt_date = prefix self.receipt_date = prefix

View File

@@ -21,45 +21,43 @@ class SeedGenerator < ApplicationRecord
seed.model = "Sale" seed.model = "Sale"
new_receipt_no = seed.next new_receipt_no = seed.next
seed.save seed.save
# else
else # current_no = seed.next
current_no = seed.next # seed.next = seed.next
seed.next = seed.next # seed.current = current_no
seed.current = current_no # seed.save
seed.save
end end
return seed.current return seed.current
end end
# Generate for 4 digit Code # Generate for 4 digit Code
def self.generate_code(model, prefix) # def self.generate_code(model, prefix)
seed = SeedGenerator.find_by_model(model) # seed = SeedGenerator.find_by_model(model)
new_code = 0 # new_code = 0
if (seed.nil?) # if (seed.nil?)
seed = SeedGenerator.new() # seed = SeedGenerator.new()
seed.model = model # seed.model = model
new_code = seed.next # new_code = seed.next
seed.save # seed.save
else # else
current_no = seed.next # current_no = seed.next
seed.next = seed.next + seed.increase_by # seed.next = seed.next + seed.increase_by
seed.current = current_no # seed.current = current_no
seed.save # seed.save
end # end
# if prefix.length == 1
if prefix.length == 1 # padding_len = 5 - prefix.length
padding_len = 5 - prefix.length # count = 4-prefix.length
count = 4-prefix.length # else prefix.length == 2
else prefix.length == 2 # padding_len = 6 - prefix.length
padding_len = 6 - prefix.length # count = 5-prefix.length
count = 5-prefix.length # end
end # 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
def self.execute_query(model) def self.execute_query(model)
current = 0 current = 0
@@ -85,7 +83,7 @@ class SeedGenerator < ApplicationRecord
current = 0 current = 0
nex = 0 nex = 0
update_sql = "UPDATE seed_generators set current = current + 1, next = next + 1 WHERE model='#{model}';" update_sql = "UPDATE seed_generators set current = next, next = next + 1 WHERE model='#{model}';"
select_sql = "select * from seed_generators where model='#{model}';" select_sql = "select * from seed_generators where model='#{model}';"
update_result = ActiveRecord::Base.connection.execute(update_sql); update_result = ActiveRecord::Base.connection.execute(update_sql);