change receipt no generator
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user