From fe4ac6a8f33c81260176920b1d1c1b76c0cfbf3b Mon Sep 17 00:00:00 2001 From: phyusin Date: Mon, 11 Jun 2018 11:29:49 +0630 Subject: [PATCH 01/10] add set item price --- app/controllers/origami/sales_controller.rb | 5 +- app/views/origami/home/show.html.erb | 8 +- .../origami/moveroom/move_dining.html.erb | 92 ++++++++++++++++--- .../origami/movetable/move_dining.html.erb | 66 ++++++++++++- app/views/origami/rooms/show.html.erb | 8 +- 5 files changed, 156 insertions(+), 23 deletions(-) diff --git a/app/controllers/origami/sales_controller.rb b/app/controllers/origami/sales_controller.rb index 6f4980cc..56e6fbc8 100755 --- a/app/controllers/origami/sales_controller.rb +++ b/app/controllers/origami/sales_controller.rb @@ -37,7 +37,10 @@ class Origami::SalesController < BaseOrigamiController # create sale item saleobj = Sale.find(sale_id) order.order_items.each do |orer_item| - saleobj.add_item (orer_item) + saleobj.add_item (orer_item) + if !orer_item.set_menu_items.nil? + saleobj.add_sub_item(orer_item.set_menu_items) + end end # Re-compute for add diff --git a/app/views/origami/home/show.html.erb b/app/views/origami/home/show.html.erb index 59351a85..93f7d236 100755 --- a/app/views/origami/home/show.html.erb +++ b/app/views/origami/home/show.html.erb @@ -383,6 +383,7 @@ <% count = 0 @order_items.each do |order_item| + set_item_prices = 0 count += 1 %> @@ -398,7 +399,9 @@ <% end %> <% if !order_item.set_menu_items.nil? - JSON.parse(order_item.set_menu_items).each do |item_instance| %> + JSON.parse(order_item.set_menu_items).each do |item_instance| + set_item_prices += (item_instance["quantity"].to_f * item_instance["price"].to_f).to_f + %>
<%= item_instance["item_instance_name"] %> <% if !item_instance["options"].nil? && item_instance["options"] != "undefined" %> @@ -410,10 +413,11 @@ <% end %> <% end + sub_total += set_item_prices end %> <%= order_item.qty %> - <%= order_item.qty*order_item.price %> + <%= (order_item.qty*order_item.price).to_f + set_item_prices %> <% end diff --git a/app/views/origami/moveroom/move_dining.html.erb b/app/views/origami/moveroom/move_dining.html.erb index 543e33d0..84ad9da9 100755 --- a/app/views/origami/moveroom/move_dining.html.erb +++ b/app/views/origami/moveroom/move_dining.html.erb @@ -203,15 +203,43 @@ unless @order_items.nil? || @order_items.empty? count = 0 @order_items.each do |order_item | + set_item_prices = 0 count += 1 sub_total = sub_total + (order_item.price * order_item.qty) #unless order_item.price <= 0 %> - <%= count %> - <%= order_item.item_name %> + <%= count %> + + <%= order_item.item_name %> + <% if !order_item.options.nil? && !order_item.options.empty? && order_item.options != "undefined" %> + <% JSON.parse(order_item.options).each do |option| %> +
+ <%= option %> + + <% end %> + <% end %> + + <% if !order_item.set_menu_items.nil? + JSON.parse(order_item.set_menu_items).each do |item_instance| + set_item_prices += (item_instance["quantity"].to_f * item_instance["price"].to_f).to_f + %> +
+ <%= item_instance["item_instance_name"] %> + <% if !item_instance["options"].nil? && item_instance["options"] != "undefined" %> + <% (item_instance["options"]).each do |set_item_option| %> +
+ <%= set_item_option %> + + <% end %> + <% end %> +
+ <% end + sub_total += set_item_prices + end %> + <%= order_item.qty %> - <%= order_item.qty*order_item.price %> + <%= (order_item.qty*order_item.price).to_f + set_item_prices %> <% #end @@ -231,12 +259,40 @@ if @status_sale == 'sale' <% @order_items.each do |order_item | + set_item_prices = 0 %> - - - + + + <% @@ -327,18 +383,28 @@ end change_to = $('#change_table_value').val(); change_from = "<%= @dining.id %>"; if (change_to == ""){ - alert("Please Select Room") + swal({ + title: "Alert!!", + text: 'Please Select Table !', + type: 'warning', + }); }else{ $.ajax({type: "POST", url: "<%= origami_moving_path %>", data: "change_from="+ change_from + "&change_to=" + change_to, success:function(result){ - alert("Moving Success") - if (result.get_type == 'Table'){ - window.location.href = '/origami/table/' + change_to; - }else{ - window.location.href = '/origami/room/' + change_to; - } + // alert("Moving Success") + swal({ + title: "Information!", + text: 'Moving Success', + type: 'success', + }, function (){ + if (result.get_type == 'Table'){ + window.location.href = '/origami/table/' + change_to; + }else{ + window.location.href = '/origami/room/' + change_to; + } + }); } }); } diff --git a/app/views/origami/movetable/move_dining.html.erb b/app/views/origami/movetable/move_dining.html.erb index 64102211..c15aeea8 100755 --- a/app/views/origami/movetable/move_dining.html.erb +++ b/app/views/origami/movetable/move_dining.html.erb @@ -204,15 +204,43 @@ unless @order_items.nil? || @order_items.empty? count = 0 @order_items.each do |order_item | + set_item_prices = 0 count += 1 sub_total = sub_total + (order_item.price * order_item.qty) #unless order_item.price <= 0 %> - - + + - + <% #end @@ -232,12 +260,40 @@ if @status_sale == 'sale'
<%= order_item.item_name %><%= order_item.qty %><%= order_item.qty*order_item.price %> + <%= order_item.item_name %> + <% if !order_item.options.nil? && !order_item.options.empty? && order_item.options != "undefined" %> + <% JSON.parse(order_item.options).each do |option| %> +
+ <%= option %> + + <% end %> + <% end %> + + <% if !order_item.set_menu_items.nil? + JSON.parse(order_item.set_menu_items).each do |item_instance| + set_item_prices += (item_instance["quantity"].to_f * item_instance["price"].to_f).to_f + %> +
+ <%= item_instance["item_instance_name"] %> + <% if !item_instance["options"].nil? && item_instance["options"] != "undefined" %> + <% (item_instance["options"]).each do |set_item_option| %> +
+ <%= set_item_option %> + + <% end %> + <% end %> +
+ <% end + sub_total += set_item_prices + end %> +
<%= order_item.qty %><%= (order_item.qty*order_item.price).to_f + set_item_prices %>
<%= count %><%= order_item.item_name %><%= count %> + <%= order_item.item_name %> + <% if !order_item.options.nil? && !order_item.options.empty? && order_item.options != "undefined" %> + <% JSON.parse(order_item.options).each do |option| %> +
+ <%= option %> + + <% end %> + <% end %> + + <% if !order_item.set_menu_items.nil? + JSON.parse(order_item.set_menu_items).each do |item_instance| + set_item_prices += (item_instance["quantity"].to_f * item_instance["price"].to_f).to_f + %> +
+ <%= item_instance["item_instance_name"] %> + <% if !item_instance["options"].nil? && item_instance["options"] != "undefined" %> + <% (item_instance["options"]).each do |set_item_option| %> +
+ <%= set_item_option %> + + <% end %> + <% end %> +
+ <% end + sub_total += set_item_prices + end %> +
<%= order_item.qty %><%= order_item.qty*order_item.price %><%= (order_item.qty*order_item.price).to_f + set_item_prices %>
<% @order_items.each do |order_item | + set_item_prices = 0 %> - + - + <% diff --git a/app/views/origami/rooms/show.html.erb b/app/views/origami/rooms/show.html.erb index 4a77a743..6ce32cad 100755 --- a/app/views/origami/rooms/show.html.erb +++ b/app/views/origami/rooms/show.html.erb @@ -367,6 +367,7 @@ <% count = 0 @order_items.each do |order_item | + set_item_prices = 0 count += 1 %> @@ -382,7 +383,9 @@ <% end %> <% if !order_item.set_menu_items.nil? && order_item.set_menu_items != '[]' - JSON.parse(order_item.set_menu_items).each do |item_instance| %> + JSON.parse(order_item.set_menu_items).each do |item_instance| + set_item_prices += (item_instance["quantity"].to_f * item_instance["price"].to_f).to_f + %>
<%= item_instance["item_instance_name"] %> <% if !item_instance["options"].nil? && item_instance["options"] != "undefined" %> @@ -394,10 +397,11 @@ <% end %> <% end + sub_total += set_item_prices end %> - + <% From 8c5fce8516908f4fd8bae0e6cdec072a18b15135 Mon Sep 17 00:00:00 2001 From: Aung Myo Date: Mon, 11 Jun 2018 12:02:06 +0630 Subject: [PATCH 02/10] update bill js --- app/assets/javascripts/channels/bill.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/app/assets/javascripts/channels/bill.js b/app/assets/javascripts/channels/bill.js index 7fa2b77e..278e3d41 100755 --- a/app/assets/javascripts/channels/bill.js +++ b/app/assets/javascripts/channels/bill.js @@ -10,12 +10,13 @@ App.order = App.cable.subscriptions.create('BillChannel', { if(data.from == "" || hostname == data.from) { if($('.table_'+data.table.id).hasClass('blue')){ - $('.table_'+data.table.id).removeClass('blue'); - $('.table_'+data.table.id).addClass('red'); - }else{ - $('.table_'+data.table.id).removeClass('orange'); - $('.table_'+data.table.id).addClass('red'); - } + $('.table_'+data.table.id).removeClass('blue'); + $('.table_'+data.table.id).removeClass('green'); + $('.table_'+data.table.id).addClass('red'); + }else{ + $('.table_'+data.table.id).removeClass('orange'); + $('.table_'+data.table.id).addClass('red'); + } $('.new_text_'+data.table.id).removeClass('hide'); $('.new_text_'+data.table.id).text('billed'); } From 13c2c0026324a918c472dfb6a757d9deb751adbb Mon Sep 17 00:00:00 2001 From: phyusin Date: Mon, 11 Jun 2018 13:49:21 +0630 Subject: [PATCH 03/10] add tax cal for Edit --- app/controllers/origami/sale_edit_controller.rb | 12 ++++++++---- app/views/origami/sale_edit/edit.html.erb | 6 +++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/app/controllers/origami/sale_edit_controller.rb b/app/controllers/origami/sale_edit_controller.rb index b9b2c5d4..b59aeb78 100755 --- a/app/controllers/origami/sale_edit_controller.rb +++ b/app/controllers/origami/sale_edit_controller.rb @@ -20,6 +20,7 @@ class Origami::SaleEditController < BaseOrigamiController saleitemId = params[:sale_item_id] remark = params[:remark] access_code = params[:access_code] + order_source = params[:type] saleitemObj = SaleItem.find(saleitemId) saleitemObj.status = 'void' saleitemObj.remark = remark @@ -58,7 +59,7 @@ class Origami::SaleEditController < BaseOrigamiController remark = "Void Sale Item ID #{saleitemObj.sale_item_id} | Receipt No #{saleObj.receipt_no} | Item Name ->#{saleitemObj.product_name}-Product Code ->#{saleitemObj.product_code}-Instance Code ->#{saleitemObj.item_instance_code}" sale_audit = SaleAudit.record_audit_for_edit(saleitemObj.sale_id,saleObj.cashier_id, action_by,remark,"SALEITEMVOID" ) - saleObj.compute_by_sale_items(saleObj.sale_id, saleObj.sale_items, saleObj.total_discount) + saleObj.compute_by_sale_items(saleObj.sale_id, saleObj.sale_items, saleObj.total_discount,order_source) ProductCommission.create_product_commission(@newsaleitem, saleitemObj) end @@ -66,6 +67,7 @@ class Origami::SaleEditController < BaseOrigamiController saleitemId = params[:sale_item_id] remark = params[:remark] access_code = params[:access_code] + order_source = params[:type] saleitemObj = SaleItem.find(saleitemId) saleitemObj.status = 'foc' saleitemObj.remark = remark @@ -94,7 +96,7 @@ class Origami::SaleEditController < BaseOrigamiController remark = "FOC Sale Item ID #{saleitemObj.sale_item_id} | Receipt No #{saleObj.receipt_no} | Item Name ->#{saleitemObj.product_name}-Product Code ->#{saleitemObj.product_code}-Instance Code ->#{saleitemObj.item_instance_code}Receipt No #{saleObj.receipt_no}" sale_audit = SaleAudit.record_audit_for_edit(saleitemObj.sale_id,saleObj.cashier_id, action_by,remark,"SALEITEMFOC" ) - saleObj.compute_by_sale_items(saleObj.sale_id, saleObj.sale_items, saleObj.total_discount,order.source) + saleObj.compute_by_sale_items(saleObj.sale_id, saleObj.sale_items, saleObj.total_discount,order_source) ProductCommission.create_product_commission(@newsaleitem, saleitemObj) end @@ -123,6 +125,7 @@ class Origami::SaleEditController < BaseOrigamiController update_qty = params[:update_qty] update_price = params[:update_price] access_code = params[:access_code] + order_source = params[:type] saleitemObj = SaleItem.find(saleitemId) sale = Sale.find(saleitemObj.sale_id) @@ -159,7 +162,7 @@ class Origami::SaleEditController < BaseOrigamiController end end - saleObj.compute_by_sale_items(saleObj.sale_id, saleObj.sale_items, saleObj.total_discount,order.source) + saleObj.compute_by_sale_items(saleObj.sale_id, saleObj.sale_items, saleObj.total_discount,order_source) ProductCommission.edit_product_commission(saleitemObj) end @@ -168,6 +171,7 @@ class Origami::SaleEditController < BaseOrigamiController def item_void_cancel saleitemId = params[:sale_item_id] access_code = params[:access_code] + order_source = params[:type] saleitemObj = SaleItem.find(saleitemId) both = SaleItem.where('product_code=?', saleitemObj.product_code) both.each do |item| @@ -191,7 +195,7 @@ class Origami::SaleEditController < BaseOrigamiController remark = "Cancle Void Sale Item ID #{saleitemObj.sale_item_id} | Item Name ->#{saleitemObj.product_name}-Product Code ->#{saleitemObj.product_code}-Instance Code ->#{saleitemObj.item_instance_code}|Receipt No #{saleObj.receipt_no}" sale_audit = SaleAudit.record_audit_for_edit(saleitemObj.sale_id,saleObj.cashier_id, action_by,remark,"ITEMCANCELVOID" ) - saleObj.compute_by_sale_items(saleObj.sale_id, saleObj.sale_items, saleObj.total_discount, order.source) + saleObj.compute_by_sale_items(saleObj.sale_id, saleObj.sale_items, saleObj.total_discount, order_source) ProductCommission.remove_product_commission(saleitemObj) end diff --git a/app/views/origami/sale_edit/edit.html.erb b/app/views/origami/sale_edit/edit.html.erb index 293e928a..08613715 100755 --- a/app/views/origami/sale_edit/edit.html.erb +++ b/app/views/origami/sale_edit/edit.html.erb @@ -240,7 +240,7 @@ var access_code = localStorage.getItem("access_code"); $.ajax({ type: "POST", url: ajax_url, - data: 'sale_item_id=' + sale_item_id + "&update_qty=" + qty + "&update_price=" + price+ "&access_code=" + access_code, + data: 'sale_item_id=' + sale_item_id + "&update_qty=" + qty + "&update_price=" + price+ "&access_code=" + access_code + "&type=" + cashier_type, success: function (result) { swal({ title: "Information!", @@ -294,7 +294,7 @@ var access_code = localStorage.getItem("access_code"); $.ajax({ type: "POST", url: ajax_url, - data: 'sale_item_id=' + sale_item_id + "&remark=" + remark+ "&access_code=" + access_code, + data: 'sale_item_id=' + sale_item_id + "&remark=" + remark+ "&access_code=" + access_code + "&type=" + cashier_type, success: function (result) { location.reload(); } @@ -307,7 +307,7 @@ var access_code = localStorage.getItem("access_code"); $.ajax({ type: "POST", url: ajax_url, - data: 'sale_item_id=' + sale_item_id + '&access_code=' + access_code, + data: 'sale_item_id=' + sale_item_id + '&access_code=' + access_code + "&type=" + cashier_type, success: function (result) { location.reload(); } From 5b8b471b30d3e94b926bbc9e8693685e631fd19a Mon Sep 17 00:00:00 2001 From: phyusin Date: Mon, 11 Jun 2018 14:37:04 +0630 Subject: [PATCH 04/10] change seed --- lib/tasks/clear_data.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/tasks/clear_data.rake b/lib/tasks/clear_data.rake index 2f293832..989e9f85 100755 --- a/lib/tasks/clear_data.rake +++ b/lib/tasks/clear_data.rake @@ -18,7 +18,7 @@ namespace :clear do ProductCommission.delete_all DiningFacility.update_all(status:'available') CashierTerminal.update_all(is_currently_login: 0) - SeedGenerator.where("id > 1").update(:current => 0, :next => 0) + SeedGenerator.where("id > 1").update(:current => 0, :next => 1) # Receipt.delete_all # ReceiptDetail.delete_all OrderReservation.delete_all From 425e72afe732fab3716bba7d8291f1938c3d1827 Mon Sep 17 00:00:00 2001 From: phyusin Date: Mon, 11 Jun 2018 16:19:59 +0630 Subject: [PATCH 05/10] add payment type in order reservation --- app/assets/javascripts/order_reservation.js | 5 +++++ app/models/order_reservation.rb | 5 ++--- .../origami/order_reservation/index.html.erb | 6 +++++- .../order_reservations/index.html.erb | 2 +- .../order_reservations/show.html.erb | 18 +++++++++++------- 5 files changed, 24 insertions(+), 12 deletions(-) diff --git a/app/assets/javascripts/order_reservation.js b/app/assets/javascripts/order_reservation.js index 71e6b25a..2513ab30 100644 --- a/app/assets/javascripts/order_reservation.js +++ b/app/assets/javascripts/order_reservation.js @@ -7,6 +7,7 @@ $(function() { $('#cancel').hide(); $(".tbl_customer").hide(); $(".order_close_cashier").hide(); + $(".order_payment_type").hide(); $(function() { $('.first-1').click(); }); @@ -253,6 +254,8 @@ function refreshDetailData(){ $('#grand_total').text("0.00"); $(".tbl_customer").hide(); $(".order_close_cashier").hide(); + $(".order_payment_type").hide(); + $("#payment_type").text(""); } //show order list @@ -355,6 +358,8 @@ function show_order_detail(url,sr_no){ $('#phone').text(data.phone); $('#address').text(address); + $(".order_payment_type").show(); + $("#payment_type").text(data.payment_type); $('#ref_no').text(data.transaction_ref); $('#callback_url').text(data.callback_url); $('#order_id').text(data.order_reservation_id); diff --git a/app/models/order_reservation.rb b/app/models/order_reservation.rb index a8f1f4ec..ecad6da5 100644 --- a/app/models/order_reservation.rb +++ b/app/models/order_reservation.rb @@ -173,7 +173,6 @@ class OrderReservation < ApplicationRecord end def self.send_status_to_ordering(url,ref_no,status,waiting_time=nil,min_type=nil,reason=nil) - puts "send status to ordering" base_url = 'https://api.doemal.com' token = '3T-tnlYtFJ-5Z1vY6XQqxQ' order_reservation = Lookup.collection_of("order_reservation") @@ -400,7 +399,7 @@ class OrderReservation < ApplicationRecord if filter.blank? keyword = '' else - keyword = "status LIKE '%#{filter}%'" + keyword = "status LIKE '%#{filter}%' OR payment_type LIKE '%#{filter}%'" end if from.present? && to.present? @@ -411,7 +410,7 @@ class OrderReservation < ApplicationRecord else select("order_reservations.*, deliveries.provider, deliveries.delivery_fee") .joins(" JOIN deliveries on deliveries.order_reservation_id = order_reservations.order_reservation_id") - .where("status LIKE '%#{filter}%'") + .where("status LIKE '%#{filter}%' OR payment_type LIKE '%#{filter}%'") end end diff --git a/app/views/origami/order_reservation/index.html.erb b/app/views/origami/order_reservation/index.html.erb index 2192fbfd..b0cd2e9e 100644 --- a/app/views/origami/order_reservation/index.html.erb +++ b/app/views/origami/order_reservation/index.html.erb @@ -398,10 +398,14 @@
<%= order_item.item_name %> + <%= order_item.item_name %> + <% if !order_item.options.nil? && !order_item.options.empty? && order_item.options != "undefined" %> + <% JSON.parse(order_item.options).each do |option| %> +
+ <%= option %> + + <% end %> + <% end %> + + <% if !order_item.set_menu_items.nil? + JSON.parse(order_item.set_menu_items).each do |item_instance| + set_item_prices += (item_instance["quantity"].to_f * item_instance["price"].to_f).to_f + %> +
+ <%= item_instance["item_instance_name"] %> + <% if !item_instance["options"].nil? && item_instance["options"] != "undefined" %> + <% (item_instance["options"]).each do |set_item_option| %> +
+ <%= set_item_option %> + + <% end %> + <% end %> +
+ <% end + sub_total += set_item_prices + end %> +
<%= order_item.qty %><%= order_item.qty*order_item.price %><%= (order_item.qty*order_item.price).to_f + set_item_prices %>
<%= order_item.qty %><%= order_item.qty*order_item.price %><%= (order_item.qty*order_item.price).to_f + set_item_prices %>
- + + @@ -58,6 +59,7 @@ + @@ -67,6 +69,7 @@ + <% @order_reservation.order_reservation_items.each do |item| %> @@ -76,6 +79,7 @@ + <% end %> <% @@ -123,27 +127,27 @@ - + <% if total_discount_amount > 0 %> - + <% end %> <% if total_delivery_fee > 0 %> - + <% end %> <% if total_convenience_charge > 0 %> - + <% end %>
- + <% if current_user.role != "waiter" %> <% if @sale.sale_status != 'void' && @sale.sale_status != 'waste' && @sale.sale_status != 'spoile' %> <% if current_user.role == "cashier" %> Void + Void + <% else %>
+ REF.
+ PAYMENT
+ +
diff --git a/app/views/transactions/order_reservations/index.html.erb b/app/views/transactions/order_reservations/index.html.erb index 180ab03a..0bd1c014 100644 --- a/app/views/transactions/order_reservations/index.html.erb +++ b/app/views/transactions/order_reservations/index.html.erb @@ -19,7 +19,7 @@
- +
diff --git a/app/views/transactions/order_reservations/show.html.erb b/app/views/transactions/order_reservations/show.html.erb index aa2c7e58..ed6d2da8 100755 --- a/app/views/transactions/order_reservations/show.html.erb +++ b/app/views/transactions/order_reservations/show.html.erb @@ -48,6 +48,7 @@
<%= t("views.right_panel.detail.requested_time") %> <%= t("views.right_panel.detail.cooking_time") %> <%= t("views.right_panel.detail.status") %><%= t :payment %> <%= t("views.right_panel.detail.type") %> <%= t("views.right_panel.detail.remark") %>
<%= @order_reservation.requested_time.utc.getlocal.strftime("%Y-%m-%d %I:%M %p") %> <%= @order_reservation.expected_waiting_time rescue '-' %> <%= @order_reservation.status %><%= @order_reservation.payment_type %> <%= @order_reservation.order_remark ? @order_reservation.order_remark : @order_reservation.reservation_remark %>
<%= t("views.right_panel.detail.total_price") %> <%= t("views.right_panel.detail.created_at") %>
<%= number_with_precision(item.price > 0 ? item.qty * item.price : item.qty * item.unit_price, precision:precision.to_i, delimiter:delimiter) rescue ' '%> <%=l item.created_at.utc.getlocal , :format => :short rescue ' ' %>
<%= t("views.right_panel.detail.sub_total") %><%= number_with_precision(total_amount, precision:precision.to_i, delimiter:delimiter) rescue ' '%><%= number_with_precision(total_amount, precision:precision.to_i, delimiter:delimiter) rescue ' '%>
<%= t("views.right_panel.detail.discount_amount") %><%= number_with_precision(total_discount_amount, precision:precision.to_i, delimiter:delimiter) rescue ' '%><%= number_with_precision(total_discount_amount, precision:precision.to_i, delimiter:delimiter) rescue ' '%>
<%= t("views.right_panel.detail.delivery_fee") %><%= number_with_precision(total_delivery_fee, precision:precision.to_i, delimiter:delimiter) rescue ' '%><%= number_with_precision(total_delivery_fee, precision:precision.to_i, delimiter:delimiter) rescue ' '%>
<%= t("views.right_panel.detail.convenience_charge") %><%= number_with_precision(total_convenience_charge, precision:precision.to_i, delimiter:delimiter) rescue ' '%><%= number_with_precision(total_convenience_charge, precision:precision.to_i, delimiter:delimiter) rescue ' '%>