update dining charge down and up

This commit is contained in:
Aung Myo
2018-07-13 16:29:40 +06:30
parent 6ae0959602
commit 63d0c18db9

View File

@@ -30,31 +30,43 @@ class DiningCharge < ApplicationRecord
# dining charges calculate
def self.charges(chargesObj, dining_minutes, type)
solid_price = 0
charge_block = DiningCharge.convert_to_minutes(chargesObj.charge_block.utc.strftime('%H:%M'))
result = dining_minutes / charge_block
if result.to_i < 1
# for dining minute is under charge_block
return 1, result.to_i,chargesObj.unit_price
elsif result.to_i >= 1
solid_price = result * chargesObj.unit_price
remain_value = dining_minutes % charge_block
rounding_time = DiningCharge.convert_to_minutes(chargesObj.time_rounding_block.utc.strftime('%H:%M'))
roundingblock = remain_value / rounding_time
extra_minutes = remain_value % rounding_time
if roundingblock.to_i < 1
# no time rounding block
return result.to_i, DiningCharge.check_rounding(chargesObj, solid_price, roundingblock)
return result.to_i, DiningCharge.check_rounding(chargesObj, solid_price, extra_minutes)
else
solid_price += (roundingblock * chargesObj.time_rounding_block_price)
return result.to_i, DiningCharge.check_rounding(chargesObj, solid_price, roundingblock)
return result.to_i, DiningCharge.check_rounding(chargesObj, solid_price, extra_minutes)
end
end
end
# check for rounding and calculate with rounding price
def self.check_rounding(chargesObj,solid_price, roundingblock)
rounding_block_remain = roundingblock % 1
def self.check_rounding(chargesObj,solid_price, extra_minutes)
# rounding_block_remain = roundingblock / 1
free_time = DiningCharge.convert_to_minutes(chargesObj.minimum_free_time.utc.strftime('%H:%M'))
rounding_block_remain = extra_minutes - free_time
if chargesObj.time_rounding == "down"
return solid_price
else