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
before_create :generate_custom_id
#before_create :generate_receipt_no
before_create :generate_receipt_no
belongs_to :cashier, :optional => true
belongs_to :customer, :optional => true
belongs_to :employees
@@ -76,7 +76,7 @@ class Sale < ApplicationRecord
return false, "Invoice is void. Cannot be edited"
else
#if this is new sale generate_receipt_no
generate_receipt_no
# generate_receipt_no
order = Order.find(order_id)
#Default Tax - Values
@@ -698,19 +698,20 @@ class Sale < ApplicationRecord
def generate_receipt_no
#shop_code and client_code
shop_details = Shop.first
#Date-Shift-
if self.receipt_no.nil?
prefix = DateTime.now().utc
#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.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
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
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
self.receipt_date = prefix

View File

@@ -21,45 +21,43 @@ class SeedGenerator < ApplicationRecord
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
# 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
# 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 (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
# 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.execute_query(model)
current = 0
@@ -85,7 +83,7 @@ class SeedGenerator < ApplicationRecord
current = 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}';"
update_result = ActiveRecord::Base.connection.execute(update_sql);