From 0abad2b3052887104dc8d086cf31754c5c402ec4 Mon Sep 17 00:00:00 2001 From: San Wai Lwin Date: Fri, 3 Aug 2018 16:01:22 +0630 Subject: [PATCH 01/11] Add CB payment in transactions and reports --- .../reports/card_sale_tran_controller.rb | 138 ++++++++++++ .../card_sale_trans_controller.rb | 105 +++++++++ app/models/card_sale_tran.rb | 84 ++++++- app/models/sale.rb | 1 + app/views/layouts/_left_sidebar.html.erb | 13 ++ ...hift_card_sale_tran_report_filter.html.erb | 144 ++++++++++++ .../reports/card_sale_tran/index.html.erb | 186 +++++++++++++++ .../reports/card_sale_tran/index.xls.erb | 74 ++++++ .../_shift_sale_report_filter.html.erb | 4 +- .../card_sale_trans/index.html.erb | 211 ++++++++++++++++++ .../card_sale_trans/show.json.jbuilder | 1 + config/initializers/action_controller.rb | 14 +- config/routes.rb | 2 + 13 files changed, 967 insertions(+), 10 deletions(-) create mode 100644 app/controllers/reports/card_sale_tran_controller.rb create mode 100644 app/controllers/transactions/card_sale_trans_controller.rb create mode 100644 app/views/reports/card_sale_tran/_shift_card_sale_tran_report_filter.html.erb create mode 100644 app/views/reports/card_sale_tran/index.html.erb create mode 100644 app/views/reports/card_sale_tran/index.xls.erb create mode 100644 app/views/transactions/card_sale_trans/index.html.erb create mode 100644 app/views/transactions/card_sale_trans/show.json.jbuilder diff --git a/app/controllers/reports/card_sale_tran_controller.rb b/app/controllers/reports/card_sale_tran_controller.rb new file mode 100644 index 00000000..ff0b3231 --- /dev/null +++ b/app/controllers/reports/card_sale_tran_controller.rb @@ -0,0 +1,138 @@ +class Reports::CardSaleTranController < BaseReportController + authorize_resource :class => false + + # GET /transactions/sales + # GET /transactions/sales.json + def index + @payment_method = [["All Payments",''],["MPU Payment","mpu"], ["Visa Payment","visa"], + ["Master Payment","master"], ["JCB Payment","jcb"],["UnionPay Payment","unionpay"], + ["Alipay Payment","alipay"]] + @sales = Sale.all + # byebug + payment_type = params[:payment_type] + + # from = params[:from] + # to = params[:to] + from, to = get_date_range_from_params + status = 'Approved' + @shift_sale_range = '' + @shift = '' + + if params[:shift_name].to_i != 0 + + @shift_sale_range = CardSaleTran.get_by_shift_sale_by_card(from,to,status) + + @shift_sale = ShiftSale.find(params[:shift_name]) + if to.blank? + @shift = ShiftSale.where('shift_started_at = ? and shift_closed_at is NULL ',@shift_sale.shift_started_at) + else + if @shift_sale.shift_closed_at.blank? + @shift = ShiftSale.where('shift_started_at = ? and shift_closed_at is NULL',@shift_sale.shift_started_at) + else + @shift = ShiftSale.where('shift_started_at = ? and shift_closed_at = ? ',@shift_sale.shift_started_at, @shift_sale.shift_closed_at) + end + end + end + + if from.nil? && to.nil? && payment_method.nil? && @shift.nil? + + @cardSales = CardSaleTran.where("status = 'Approved'").order("sale_id desc") + + @cardSales = Kaminari.paginate_array(@cardSales).page(params[:page]).per(20) + else + cardSale = CardSaleTran.searchReport(from,to,payment_type,@shift_sale_range,@shift) + if cardSale.count > 0 + @cardSales = cardSale + @cardSales = Kaminari.paginate_array(@cardSales).page(params[:page]).per(20) + else + @cardSales = 0 + end + end + + @from = from + @to = to + # get printer info + @print_settings = PrintSetting.get_precision_delimiter() + if @shift.present? + @shift.each do |sh| + @shift_from = sh.shift_started_at.nil? ? '-' : sh.shift_started_at.utc.getlocal.strftime("%e %b %I:%M%p") + @shift_to = sh.shift_closed_at.nil? ? '-' : sh.shift_closed_at.utc.getlocal.strftime("%e %b %I:%M%p") + @shift_data = sh + end + end + + respond_to do |format| + format.html + format.xls + end + + end + + # date range + PERIOD = { + "today" => 0, + "yesterday" => 1, + "this_week" => 2, + "last_week" => 3, + "last_7" => 4, + "this_month" => 5, + "last_month" => 6, + "last_30" => 7, + "this_year" => 8, + "last_year" => 9 + } + + def get_date_range_from_params + period_type = params[:period_type] + period = params[:period] + from = params[:from] + to = params[:to] + day_ref = Time.now.utc.getlocal + if from.present? && to.present? + f_date = DateTime.parse(from) + t_date = DateTime.parse(to) + f_time = Time.mktime(f_date.year,f_date.month,f_date.day,f_date.hour,f_date.min,f_date.sec) + t_time = Time.mktime(t_date.year,t_date.month,t_date.day,t_date.hour,t_date.min,t_date.sec) + from = f_time.beginning_of_day.utc.getlocal + to = t_time.end_of_day.utc.getlocal + else + case period.to_i + when PERIOD["today"] + from = day_ref.beginning_of_day.utc + to = day_ref.end_of_day.utc + + when PERIOD["yesterday"] + from = (day_ref - 1.day).beginning_of_day.utc + to = (day_ref - 1.day).end_of_day.utc + + when PERIOD["this_week"] + from = Time.now.beginning_of_week.utc + to = Time.now.utc + when PERIOD["last_week"] + from = (day_ref - 7.day).beginning_of_week.utc + to = (day_ref - 7.day).end_of_week.utc + when PERIOD["last_7"] + from = (day_ref - 7.day).utc + to = Time.now.utc + when PERIOD["this_month"] + from = Time.now.beginning_of_month.utc + to = Time.now.utc + when PERIOD["last_month"] + from = (day_ref - 1.month).beginning_of_month.utc + to = (day_ref - 1.month).end_of_month.utc + when PERIOD["last_30"] + from = (day_ref - 30.day).utc + to = Time.now.utc + when PERIOD["this_year"] + from = Time.now.beginning_of_year.utc + to = Time.now.utc + when PERIOD["last_year"] + from = (day_ref - 1.year).beginning_of_year.utc + to = (day_ref - 1.year).end_of_year.utc + end + end + + return from, to + end + +end diff --git a/app/controllers/transactions/card_sale_trans_controller.rb b/app/controllers/transactions/card_sale_trans_controller.rb new file mode 100644 index 00000000..b17fc608 --- /dev/null +++ b/app/controllers/transactions/card_sale_trans_controller.rb @@ -0,0 +1,105 @@ +class Transactions::CardSaleTransController < ApplicationController + authorize_resource :class => false + + # GET /transactions/sales + # GET /transactions/sales.json + def index + @status = [["All Status",''], ["Approved","Approved"], ["Declined","Declined"]] + @payment_method = [["All Payments",''],["MPU Payment","mpu"], ["Visa Payment","visa"], + ["Master Payment","master"], ["JCB Payment","jcb"],["UnionPay Payment","unionpay"], + ["Alipay Payment","alipay"]] + @sales = Sale.all + # byebug + payment_type = params[:payment_type] + sale_id = params[:sale_id] + status_type = params[:status_type] + + # from = params[:from] + # to = params[:to] + from, to = get_date_range_from_params + + if sale_id.nil? && from.nil? && to.nil? && payment_method.nil? && status_type.nil? + + @cardSales = CardSaleTran.where("status IS NOT NULL").order("sale_id desc") + + @cardSales = Kaminari.paginate_array(@cardSales).page(params[:page]).per(20) + else + cardSale = CardSaleTran.search(sale_id,from,to,payment_type,status_type) + if cardSale.count > 0 + @cardSales = cardSale + @cardSales = Kaminari.paginate_array(@cardSales).page(params[:page]).per(20) + else + @cardSales = 0 + end + end + + end + + # date range + PERIOD = { + "today" => 0, + "yesterday" => 1, + "this_week" => 2, + "last_week" => 3, + "last_7" => 4, + "this_month" => 5, + "last_month" => 6, + "last_30" => 7, + "this_year" => 8, + "last_year" => 9 + } + + def get_date_range_from_params + period_type = params[:period_type] + period = params[:period] + from = params[:from] + to = params[:to] + day_ref = Time.now.utc.getlocal + if from.present? && to.present? + f_date = DateTime.parse(from) + t_date = DateTime.parse(to) + f_time = Time.mktime(f_date.year,f_date.month,f_date.day,f_date.hour,f_date.min,f_date.sec) + t_time = Time.mktime(t_date.year,t_date.month,t_date.day,t_date.hour,t_date.min,t_date.sec) + from = f_time.beginning_of_day.utc.getlocal + to = t_time.end_of_day.utc.getlocal + else + case period.to_i + when PERIOD["today"] + from = day_ref.beginning_of_day.utc + to = day_ref.end_of_day.utc + + when PERIOD["yesterday"] + from = (day_ref - 1.day).beginning_of_day.utc + to = (day_ref - 1.day).end_of_day.utc + + when PERIOD["this_week"] + from = Time.now.beginning_of_week.utc + to = Time.now.utc + when PERIOD["last_week"] + from = (day_ref - 7.day).beginning_of_week.utc + to = (day_ref - 7.day).end_of_week.utc + when PERIOD["last_7"] + from = (day_ref - 7.day).utc + to = Time.now.utc + when PERIOD["this_month"] + from = Time.now.beginning_of_month.utc + to = Time.now.utc + when PERIOD["last_month"] + from = (day_ref - 1.month).beginning_of_month.utc + to = (day_ref - 1.month).end_of_month.utc + when PERIOD["last_30"] + from = (day_ref - 30.day).utc + to = Time.now.utc + when PERIOD["this_year"] + from = Time.now.beginning_of_year.utc + to = Time.now.utc + when PERIOD["last_year"] + from = (day_ref - 1.year).beginning_of_year.utc + to = (day_ref - 1.year).end_of_year.utc + end + end + + return from, to + end + +end diff --git a/app/models/card_sale_tran.rb b/app/models/card_sale_tran.rb index 7c496b56..0aef0952 100644 --- a/app/models/card_sale_tran.rb +++ b/app/models/card_sale_tran.rb @@ -1,2 +1,84 @@ class CardSaleTran < ApplicationRecord -end + + belongs_to :sale + + def self.search(filter,from,to,payment_type,status_type) + if filter.blank? + keyword = '' + else + keyword = " s.cashier_name LIKE ? OR c.name LIKE ? OR s.sale_id LIKE ?","%#{filter}%","%#{filter}%","%#{filter}%" + end + + if payment_type.blank? + payment = '' + else + if payment_type == 'unionpay' + payment = " app LIKE 'cup'" + else + payment = " app LIKE '#{payment_type}'" + end + end + + if status_type.blank? + status = '' + else + status = " status = '#{status_type}'" + end + + if from.present? && to.present? + + # cardSale = CardSaleTran.where("DATE_FORMAT(req_date,'%Y-%m-%d') >= ?" + " AND DATE_FORMAT(req_date,'%Y-%m-%d') <= ? and status IS NULL ", from,to) + from_date = from.strftime("%Y-%m-%d") + to_date = to.strftime("%Y-%m-%d") + query = CardSaleTran.joins("Join sales s ON s.sale_id = card_sale_trans.sale_id"+ + " JOIN customers c ON c.customer_id = s.customer_id") + cardSale = query.where("req_date >= ? and req_date <= ? and status is not null",from_date,to_date) + query1 = cardSale.where(keyword) + query2 = query1.where(payment) + query3 = query2.where(status) + + end + end + + def self.searchReport(from,to,payment_type,shift_sale_range,shift) + + if payment_type.blank? + payment = '' + else + if payment_type == 'unionpay' + payment = " app LIKE 'cup'" + else + payment = " app LIKE '#{payment_type}'" + end + end + + if from.present? && to.present? + + # cardSale = CardSaleTran.where("DATE_FORMAT(req_date,'%Y-%m-%d') >= ?" + " AND DATE_FORMAT(req_date,'%Y-%m-%d') <= ? and status IS NULL ", from,to) + from_date = from.strftime("%Y-%m-%d") + to_date = to.strftime("%Y-%m-%d") + query = CardSaleTran.joins("Join sales s ON s.sale_id = card_sale_trans.sale_id"+ + " JOIN customers c ON c.customer_id = s.customer_id") + cardSale = query.where("req_date >= ? and req_date <= ? and status = 'Approved'",from_date,to_date) + + if shift.present? + query1 = cardSale.where("s.shift_sale_id in (?)", shift.to_a) + elsif shift_sale_range.present? + query1 = cardSale.where("s.shift_sale_id in (?)",shift_sale_range.to_a) + else + query1 = cardSale.where("s.receipt_date between ? and ?",from,to) + end + query2 = query1.where(payment) + + end + end + + def self.get_by_shift_sale_by_card(from,to,status) + query = ShiftSale.select("shift_sales.id ,shift_started_at AS opening_date, + shift_closed_at As closing_date,") + .order("shift_sales.id DESC") + return query = query.where("shift_sales.shift_started_at >= ?" , from) + byebug + end + +end \ No newline at end of file diff --git a/app/models/sale.rb b/app/models/sale.rb index ccd25fc5..e504bb3d 100644 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -6,6 +6,7 @@ class Sale < ApplicationRecord #before_create :generate_receipt_no belongs_to :cashier, :optional => true belongs_to :customer, :optional => true + belongs_to :employees has_many :sale_items has_many :sale_discount_items has_many :sale_discounts diff --git a/app/views/layouts/_left_sidebar.html.erb b/app/views/layouts/_left_sidebar.html.erb index a4340f0e..4052ed56 100644 --- a/app/views/layouts/_left_sidebar.html.erb +++ b/app/views/layouts/_left_sidebar.html.erb @@ -123,6 +123,16 @@ <%= t("views.right_panel.detail.order_reservation") %> <% end %> + <% if can? :menage, Sale %> +
  • + <%= t :cb_payments %> +
  • + <% end %> + <% if can? :menage, Sale %> +
  • + <%= t :cb_settlement %> +
  • + <% end %> <% if can? :index, :dailysale %> @@ -174,6 +184,9 @@
  • Stock Check
  • +
  • + CB Payments +
  • <%end%> diff --git a/app/views/reports/card_sale_tran/_shift_card_sale_tran_report_filter.html.erb b/app/views/reports/card_sale_tran/_shift_card_sale_tran_report_filter.html.erb new file mode 100644 index 00000000..0d70fe4f --- /dev/null +++ b/app/views/reports/card_sale_tran/_shift_card_sale_tran_report_filter.html.erb @@ -0,0 +1,144 @@ +
    + <%= form_tag report_path, :method => :get, :id=>"frm_report", :class => "form" do %> + <% if period_type != false %> +
    + + <% if defined? @payment_method %> +
    + + <%= select_tag "payment_type", options_for_select(@payment_method, :selected => params[:payment_type]), :class => "form-control" %> +
    + <% end %> +
    + + +
    + <% if not defined? payments %> + +
    + + + +
    + <% end %> +
    + + + +
    +
    + + +
    +
    + + +
    +
    +
    + +
    +
    + <% end %> + + <% end %> +
    + + diff --git a/app/views/reports/card_sale_tran/index.html.erb b/app/views/reports/card_sale_tran/index.html.erb new file mode 100644 index 00000000..673da3ae --- /dev/null +++ b/app/views/reports/card_sale_tran/index.html.erb @@ -0,0 +1,186 @@ + +
    +
    + + <%= render :partial=>'shift_card_sale_tran_report_filter', + :locals=>{ :period_type => true, :shift_name => true,:payments => true, :report_path =>reports_card_sale_tran_index_path} %> +
    + + + +
    +
    + + + + + + + <% if @shift_from %> + + <% if @shift_data.employee %> + <% cashier_name = !@shift_data.nil? ? @shift_data.employee.name : '-' %> + <% end %> + + + <% end %> + + + + + + + + + + + + + + + + + <% if @cardSales != 0 %> + <% @cardSales.each do |cardSale| %> + + + + + + + + + + + + + + <% end %> + <% else %> + + <% end %> + +
    <%= t("views.right_panel.detail.from_date") %> : <%= @from.utc.getlocal.strftime("%Y-%b-%d") rescue '-' %> - <%= t("views.right_panel.detail.to_date") %> : <%= @to.utc.getlocal.strftime("%Y-%b-%d") rescue '-'%>
    <%= t("views.right_panel.detail.shift_name") %> = <%= @shift_from %> - <%= @shift_to %> ( <%= cashier_name %> )
    <%= t("views.right_panel.detail.req_date") %><%= t("views.right_panel.detail.req_no") %><%= t("views.right_panel.detail.req_amount") %><%= t("views.right_panel.detail.res_date") %><%= t("views.right_panel.detail.ref_no") %><%= t("views.right_panel.detail.res_amount") %><%= t("views.right_panel.detail.payment_type") %><%= t("views.right_panel.detail.Customer_name") %><%= t("views.right_panel.detail.Cashier_name") %><%= t("views.right_panel.detail.detail") %><%= t("views.right_panel.detail.status") %>
    <%= cardSale.req_date %> <%= cardSale.req_time.utc.getlocal.strftime("%I:%M %p") %><%= cardSale.req_inv_no %><%= cardSale.req_amt %><%= cardSale.res_date %> <%= cardSale.res_time.utc.getlocal.strftime("%I:%M %p") %><%= cardSale.ref_no %><%= cardSale.res_amt %><%= cardSale.app %><%= cardSale.sale.customer.name rescue '-' %><%= cardSale.sale.cashier_name rescue '-' %>TID : <%= cardSale.terminal_id %> +
    + MID : <%= cardSale.trace %> +
    + Batch : <%= cardSale.batch_no %> +
    + Trace : <%= cardSale.merchant_id %> +
    <%= cardSale.status %>

    There is no data for search....

    +
    +
    +
    +
    + + \ No newline at end of file diff --git a/app/views/reports/card_sale_tran/index.xls.erb b/app/views/reports/card_sale_tran/index.xls.erb new file mode 100644 index 00000000..145dce33 --- /dev/null +++ b/app/views/reports/card_sale_tran/index.xls.erb @@ -0,0 +1,74 @@ + + + + + + + +
    +
    +
    +
    + + + + + + <% if @shift_from %> + + <% if @shift_data.employee %> + <% cashier_name = !@shift_data.nil? ? @shift_data.employee.name : '-' %> + <% end %> + + + <% end %> + + + + + + + + + + + + + + + + + <% if @cardSales != 0 %> + <% @cardSales.each do |cardSale| %> + + + + + + + + + + + + + + <% end %> + <% else %> + + <% end %> + +
    <%= t("views.right_panel.detail.from_date") %> : <%= @from.utc.getlocal.strftime("%Y-%b-%d") rescue '-' %> - <%= t("views.right_panel.detail.to_date") %> : <%= @to ? @to.utc.getlocal.strftime("%Y-%b-%d") : '-'%>
    <%= t("views.right_panel.detail.shift_name") %> = <%= @shift_from %> - <%= @shift_to %> ( <%= cashier_name %> )
    <%= t("views.right_panel.detail.req_date") %><%= t("views.right_panel.detail.req_no") %><%= t("views.right_panel.detail.req_amount") %><%= t("views.right_panel.detail.res_date") %><%= t("views.right_panel.detail.ref_no") %><%= t("views.right_panel.detail.res_amount") %><%= t("views.right_panel.detail.payment_type") %><%= t("views.right_panel.detail.Customer_name") %><%= t("views.right_panel.detail.Cashier_name") %><%= t("views.right_panel.detail.detail") %><%= t("views.right_panel.detail.status") %>
    <%= cardSale.req_date %> <%= cardSale.req_time.utc.getlocal.strftime("%I:%M %p") %><%= cardSale.req_inv_no %><%= cardSale.req_amt %><%= cardSale.res_date %> <%= cardSale.res_time.utc.getlocal.strftime("%I:%M %p") %><%= cardSale.ref_no %><%= cardSale.res_amt %><%= cardSale.app %><%= cardSale.sale.customer.name rescue '-' %><%= cardSale.sale.cashier_name rescue '-' %>TID : <%= cardSale.terminal_id %> +
    + MID : <%= cardSale.trace %> +
    + Batch : <%= cardSale.batch_no %> +
    + Trace : <%= cardSale.merchant_id %> +
    <%= cardSale.status %>

    There is no data for search....

    +
    +
    +
    +
    + + \ No newline at end of file diff --git a/app/views/reports/receipt_no/_shift_sale_report_filter.html.erb b/app/views/reports/receipt_no/_shift_sale_report_filter.html.erb index 1d7c2a94..6cf8ce02 100755 --- a/app/views/reports/receipt_no/_shift_sale_report_filter.html.erb +++ b/app/views/reports/receipt_no/_shift_sale_report_filter.html.erb @@ -18,7 +18,7 @@ - <% if defined? payments %> + <% if not defined? payments %>
    @@ -47,7 +47,7 @@
    -
    +

    diff --git a/app/views/transactions/card_sale_trans/index.html.erb b/app/views/transactions/card_sale_trans/index.html.erb new file mode 100644 index 00000000..a3d2a88a --- /dev/null +++ b/app/views/transactions/card_sale_trans/index.html.erb @@ -0,0 +1,211 @@ + +
    +
    +
    +
    + + + + + + + + + +
    + <%= form_tag transactions_card_sale_trans_path, :method => :get do %> +
    +
    + + +
    + + <% if defined? @payment_method %> +
    + + <%= select_tag "payment_type", options_for_select(@payment_method, :selected => params[:payment_type]), :class => "form-control" %> +
    + <% end %> + + <% if not defined? status %> + +
    + + + +
    + <% end %> +
    + + +
    +
    + + +
    + +
    + +
    +
    +
    + <% end %> +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + <% if @cardSales != 0 %> + <% @cardSales.each do |cardSale| %> + + + + + + + + + + + + + + + + <% end %> + <% else %> + + <% end %> + +
    <%= t("views.right_panel.detail.sale_id") %><%= t("views.right_panel.detail.req_date") %><%= t("views.right_panel.detail.req_no") %><%= t("views.right_panel.detail.req_amount") %><%= t("views.right_panel.detail.res_date") %><%= t("views.right_panel.detail.ref_no") %><%= t("views.right_panel.detail.res_amount") %><%= t("views.right_panel.detail.payment_type") %><%= t("views.right_panel.detail.Customer_name") %><%= t("views.right_panel.detail.Cashier_name") %><%= t("views.right_panel.detail.detail") %><%= t("views.right_panel.detail.status") %>
    <%= link_to cardSale.sale_id, transactions_sale_path(cardSale.sale_id) rescue '-' %><%= cardSale.req_date %> <%= cardSale.req_time.utc.getlocal.strftime("%I:%M %p") %><%= cardSale.req_inv_no %><%= cardSale.req_amt %><%= cardSale.res_date %> <%= cardSale.res_time.utc.getlocal.strftime("%I:%M %p") %><%= cardSale.ref_no %><%= cardSale.res_amt %><%= cardSale.app %><%= cardSale.sale.customer.name rescue '-' %><%= cardSale.sale.cashier_name rescue '-' %>TID : <%= cardSale.terminal_id %> +
    + MID : <%= cardSale.trace %> +
    + Batch : <%= cardSale.batch_no %> +
    + Trace : <%= cardSale.merchant_id %> +
    <%= cardSale.status %>

    There is no data for search....

    +
    + <% if @cardSales != 0 %> + <%= paginate @cardSales %> + <% end %> +
    +
    +
    + +
    +
    + + + + + + + + + diff --git a/app/views/transactions/card_sale_trans/show.json.jbuilder b/app/views/transactions/card_sale_trans/show.json.jbuilder new file mode 100644 index 00000000..48c70528 --- /dev/null +++ b/app/views/transactions/card_sale_trans/show.json.jbuilder @@ -0,0 +1 @@ +json.partial! "transactions_sales/transactions_sale", transactions_sale: @transactions_sale diff --git a/config/initializers/action_controller.rb b/config/initializers/action_controller.rb index fb212f13..04204a73 100644 --- a/config/initializers/action_controller.rb +++ b/config/initializers/action_controller.rb @@ -18,13 +18,13 @@ class ActionController::Base # redirect_to root_url(:host => request.domain) + "store_error" render :json => [{ status: false, message: 'Invalid Access!'}] end - else - # check for license file - if check_license - current_license(ENV["SX_PROVISION_URL"]) - else - redirect_to activate_path - end + # else + # # check for license file + # if check_license + # current_license(ENV["SX_PROVISION_URL"]) + # else + # redirect_to activate_path + # end end end diff --git a/config/routes.rb b/config/routes.rb index cb5f742b..5fee5f28 100755 --- a/config/routes.rb +++ b/config/routes.rb @@ -464,6 +464,7 @@ scope "(:locale)", locale: /en|mm/ do resources :shift_sales resources :surveys resources :order_reservations + resources :card_sale_trans get "/sales/:sale_id/manual_complete_sale" => "manual_sales#manual_complete_sale", :as => "manual_complete_sale" get "/sales/:sale_id/void" => "manual_sales#void", :as => "void" @@ -487,6 +488,7 @@ scope "(:locale)", locale: /en|mm/ do resources :product_sale, :only => [:index, :show] resources :order_reservation, :only => [:index, :show] resources :induty, :only => [:index, :show] + resources :card_sale_tran get "saleitem/get_shift_by_date", to: "saleitem#show", as: "get_shift_by_sale_item" get "receipt_no/get_shift_by_date", to: "receipt_no#get_shift_by_date", as: "get_shift_by_date" From 41dc66c7045c3b08816cc1e9778626eeda9c2355 Mon Sep 17 00:00:00 2001 From: San Wai Lwin Date: Fri, 3 Aug 2018 16:03:17 +0630 Subject: [PATCH 02/11] Edit im config/initializer --- config/initializers/action_controller.rb | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/config/initializers/action_controller.rb b/config/initializers/action_controller.rb index 04204a73..fb212f13 100644 --- a/config/initializers/action_controller.rb +++ b/config/initializers/action_controller.rb @@ -18,13 +18,13 @@ class ActionController::Base # redirect_to root_url(:host => request.domain) + "store_error" render :json => [{ status: false, message: 'Invalid Access!'}] end - # else - # # check for license file - # if check_license - # current_license(ENV["SX_PROVISION_URL"]) - # else - # redirect_to activate_path - # end + else + # check for license file + if check_license + current_license(ENV["SX_PROVISION_URL"]) + else + redirect_to activate_path + end end end From af6aae5cb67abab56484097cf4b221ce0a8f0eed Mon Sep 17 00:00:00 2001 From: San Wai Lwin Date: Mon, 6 Aug 2018 13:27:11 +0630 Subject: [PATCH 03/11] Add CB settlement report and transaction --- .../reports/card_settle_tran_controller.rb | 135 ++++++++++ .../card_settle_trans_controller.rb | 105 ++++++++ app/models/card_settle_tran.rb | 79 ++++++ app/views/layouts/_left_sidebar.html.erb | 5 +- .../reports/card_sale_tran/index.html.erb | 8 +- .../reports/card_sale_tran/index.xls.erb | 8 +- ...ft_card_settle_tran_report_filter.html.erb | 144 +++++++++++ .../reports/card_settle_tran/index.html.erb | 191 ++++++++++++++ .../reports/card_settle_tran/index.xls.erb | 79 ++++++ .../card_sale_trans/index.html.erb | 53 +++- .../card_sale_trans/show.json.jbuilder | 1 - .../card_settle_trans/index.html.erb | 233 ++++++++++++++++++ config/locales/en.yml | 2 + config/locales/mm.yml | 2 + config/routes.rb | 2 + 15 files changed, 1040 insertions(+), 7 deletions(-) create mode 100644 app/controllers/reports/card_settle_tran_controller.rb create mode 100644 app/controllers/transactions/card_settle_trans_controller.rb create mode 100644 app/views/reports/card_settle_tran/_shift_card_settle_tran_report_filter.html.erb create mode 100644 app/views/reports/card_settle_tran/index.html.erb create mode 100644 app/views/reports/card_settle_tran/index.xls.erb delete mode 100644 app/views/transactions/card_sale_trans/show.json.jbuilder create mode 100644 app/views/transactions/card_settle_trans/index.html.erb diff --git a/app/controllers/reports/card_settle_tran_controller.rb b/app/controllers/reports/card_settle_tran_controller.rb new file mode 100644 index 00000000..ac10d48b --- /dev/null +++ b/app/controllers/reports/card_settle_tran_controller.rb @@ -0,0 +1,135 @@ +class Reports::CardSettleTranController < BaseReportController + authorize_resource :class => false + + # GET /transactions/sales + # GET /transactions/sales.json + def index + @payment_method = [["All Payments",''],["MPU Payment","mpu"], ["Visa Payment","visa"], + ["Master Payment","master"], ["JCB Payment","jcb"],["UnionPay Payment","unionpay"], + ["Alipay Payment","alipay"]] + @sales = Sale.all + payment_type = params[:payment_type] + + from, to = get_date_range_from_params + status = 'Approved' + @shift_sale_range = '' + @shift = '' + + if params[:shift_name].to_i != 0 + + @shift_sale_range = CardSettleTran.get_by_shift_sale_by_card(from,to,status) + + @shift_sale = ShiftSale.find(params[:shift_name]) + if to.blank? + @shift = ShiftSale.where('shift_started_at = ? and shift_closed_at is NULL ',@shift_sale.shift_started_at) + else + if @shift_sale.shift_closed_at.blank? + @shift = ShiftSale.where('shift_started_at = ? and shift_closed_at is NULL',@shift_sale.shift_started_at) + else + @shift = ShiftSale.where('shift_started_at = ? and shift_closed_at = ? ',@shift_sale.shift_started_at, @shift_sale.shift_closed_at) + end + end + end + + if from.nil? && to.nil? && payment_method.nil? && @shift.nil? + + @cardSettles = CardSettleTran.order("sale_id desc") + + @cardSettles = Kaminari.paginate_array(@cardSettles).page(params[:page]).per(20) + else + cardSettle = CardSettleTran.searchReport(from,to,payment_type,@shift_sale_range,@shift) + if cardSettle.count > 0 + @cardSettles = cardSettle + @cardSettles = Kaminari.paginate_array(@cardSettles).page(params[:page]).per(20) + else + @cardSettles = 0 + end + end + + @from = from + @to = to + # get printer info + @print_settings = PrintSetting.get_precision_delimiter() + if @shift.present? + @shift.each do |sh| + @shift_from = sh.shift_started_at.nil? ? '-' : sh.shift_started_at.utc.getlocal.strftime("%e %b %I:%M%p") + @shift_to = sh.shift_closed_at.nil? ? '-' : sh.shift_closed_at.utc.getlocal.strftime("%e %b %I:%M%p") + @shift_data = sh + end + end + + respond_to do |format| + format.html + format.xls + end + + end + + # date range + PERIOD = { + "today" => 0, + "yesterday" => 1, + "this_week" => 2, + "last_week" => 3, + "last_7" => 4, + "this_month" => 5, + "last_month" => 6, + "last_30" => 7, + "this_year" => 8, + "last_year" => 9 + } + + def get_date_range_from_params + period_type = params[:period_type] + period = params[:period] + from = params[:from] + to = params[:to] + day_ref = Time.now.utc.getlocal + if from.present? && to.present? + f_date = DateTime.parse(from) + t_date = DateTime.parse(to) + f_time = Time.mktime(f_date.year,f_date.month,f_date.day,f_date.hour,f_date.min,f_date.sec) + t_time = Time.mktime(t_date.year,t_date.month,t_date.day,t_date.hour,t_date.min,t_date.sec) + from = f_time.beginning_of_day.utc.getlocal + to = t_time.end_of_day.utc.getlocal + else + case period.to_i + when PERIOD["today"] + from = day_ref.beginning_of_day.utc + to = day_ref.end_of_day.utc + + when PERIOD["yesterday"] + from = (day_ref - 1.day).beginning_of_day.utc + to = (day_ref - 1.day).end_of_day.utc + + when PERIOD["this_week"] + from = Time.now.beginning_of_week.utc + to = Time.now.utc + when PERIOD["last_week"] + from = (day_ref - 7.day).beginning_of_week.utc + to = (day_ref - 7.day).end_of_week.utc + when PERIOD["last_7"] + from = (day_ref - 7.day).utc + to = Time.now.utc + when PERIOD["this_month"] + from = Time.now.beginning_of_month.utc + to = Time.now.utc + when PERIOD["last_month"] + from = (day_ref - 1.month).beginning_of_month.utc + to = (day_ref - 1.month).end_of_month.utc + when PERIOD["last_30"] + from = (day_ref - 30.day).utc + to = Time.now.utc + when PERIOD["this_year"] + from = Time.now.beginning_of_year.utc + to = Time.now.utc + when PERIOD["last_year"] + from = (day_ref - 1.year).beginning_of_year.utc + to = (day_ref - 1.year).end_of_year.utc + end + end + + return from, to + end + +end diff --git a/app/controllers/transactions/card_settle_trans_controller.rb b/app/controllers/transactions/card_settle_trans_controller.rb new file mode 100644 index 00000000..8c071509 --- /dev/null +++ b/app/controllers/transactions/card_settle_trans_controller.rb @@ -0,0 +1,105 @@ +class Transactions::CardSettleTransController < ApplicationController + authorize_resource :class => false + + # GET /transactions/sales + # GET /transactions/sales.json + def index + @status = [["All Status",''], ["Approved","Approved"], ["Declined","Declined"]] + @payment_method = [["All Payments",''],["MPU Payment","mpu"], ["Visa Payment","visa"], + ["Master Payment","master"], ["JCB Payment","jcb"],["UnionPay Payment","unionpay"], + ["Alipay Payment","alipay"]] + @sales = Sale.all + # byebug + payment_type = params[:payment_type] + sale_id = params[:sale_id] + status_type = params[:status_type] + + # from = params[:from] + # to = params[:to] + from, to = get_date_range_from_params + + if sale_id.nil? && from.nil? && to.nil? && payment_method.nil? && status_type.nil? + + @cardSettles = CardSettleTran.order("sale_id desc") + + @cardSettles = Kaminari.paginate_array(@cardSettles).page(params[:page]).per(20) + else + cardSettle = CardSettleTran.search(sale_id,from,to,payment_type,status_type) + if cardSettle.count > 0 + @cardSettles = cardSettle + @cardSettles = Kaminari.paginate_array(@cardSettles).page(params[:page]).per(20) + else + @cardSettles = 0 + end + end + + end + + # date range + PERIOD = { + "today" => 0, + "yesterday" => 1, + "this_week" => 2, + "last_week" => 3, + "last_7" => 4, + "this_month" => 5, + "last_month" => 6, + "last_30" => 7, + "this_year" => 8, + "last_year" => 9 + } + + def get_date_range_from_params + period_type = params[:period_type] + period = params[:period] + from = params[:from] + to = params[:to] + day_ref = Time.now.utc.getlocal + if from.present? && to.present? + f_date = DateTime.parse(from) + t_date = DateTime.parse(to) + f_time = Time.mktime(f_date.year,f_date.month,f_date.day,f_date.hour,f_date.min,f_date.sec) + t_time = Time.mktime(t_date.year,t_date.month,t_date.day,t_date.hour,t_date.min,t_date.sec) + from = f_time.beginning_of_day.utc.getlocal + to = t_time.end_of_day.utc.getlocal + else + case period.to_i + when PERIOD["today"] + from = day_ref.beginning_of_day.utc + to = day_ref.end_of_day.utc + + when PERIOD["yesterday"] + from = (day_ref - 1.day).beginning_of_day.utc + to = (day_ref - 1.day).end_of_day.utc + + when PERIOD["this_week"] + from = Time.now.beginning_of_week.utc + to = Time.now.utc + when PERIOD["last_week"] + from = (day_ref - 7.day).beginning_of_week.utc + to = (day_ref - 7.day).end_of_week.utc + when PERIOD["last_7"] + from = (day_ref - 7.day).utc + to = Time.now.utc + when PERIOD["this_month"] + from = Time.now.beginning_of_month.utc + to = Time.now.utc + when PERIOD["last_month"] + from = (day_ref - 1.month).beginning_of_month.utc + to = (day_ref - 1.month).end_of_month.utc + when PERIOD["last_30"] + from = (day_ref - 30.day).utc + to = Time.now.utc + when PERIOD["this_year"] + from = Time.now.beginning_of_year.utc + to = Time.now.utc + when PERIOD["last_year"] + from = (day_ref - 1.year).beginning_of_year.utc + to = (day_ref - 1.year).end_of_year.utc + end + end + + return from, to + end + +end diff --git a/app/models/card_settle_tran.rb b/app/models/card_settle_tran.rb index 29670946..a3166e91 100644 --- a/app/models/card_settle_tran.rb +++ b/app/models/card_settle_tran.rb @@ -1,2 +1,81 @@ class CardSettleTran < ApplicationRecord + + belongs_to :shift_sale + + def self.search(filter,from,to,payment_type,status_type) + if filter.blank? + keyword = '' + else + keyword = " e.name LIKE ?","%#{filter}%" + end + + if payment_type.blank? + payment = '' + else + if payment_type == 'unionpay' + payment = " req_type LIKE 'cup'" + else + payment = " req_type LIKE '#{payment_type}'" + end + end + + if status_type.blank? + status = '' + else + status = " status = '#{status_type}'" + end + + if from.present? && to.present? + + from_date = from.strftime("%Y-%m-%d") + to_date = to.strftime("%Y-%m-%d") + query = CardSettleTran.joins("Join shift_sales ss ON ss.id = card_settle_trans.shift_sale_id"+ + " JOIN employees e ON e.id = ss.employee_id") + cardSettle = query.where("req_date >= ? and req_date <= ?",from_date,to_date) + query1 = cardSettle.where(keyword) + query2 = query1.where(payment) + query3 = query2.where(status) + + end + end + + def self.searchReport(from,to,payment_type,shift_sale_range,shift) + + if payment_type.blank? + payment = '' + else + if payment_type == 'unionpay' + payment = " req_type LIKE 'cup'" + else + payment = " req_type LIKE '#{payment_type}'" + end + end + + if from.present? && to.present? + + from_date = from.strftime("%Y-%m-%d") + to_date = to.strftime("%Y-%m-%d") + query = CardSettleTran.joins("Join shift_sales ss ON ss.id = card_settle_trans.shift_sale_id"+ + " JOIN employees e ON e.id = ss.employee_id") + cardSettle = query.where("req_date >= ? and req_date <= ? and status = 'Approved'",from_date,to_date) + + if shift.present? + query1 = cardSettle.where("ss.id in (?)", shift.to_a) + elsif shift_sale_range.present? + query1 = cardSettle.where("ss.id in (?)",shift_sale_range.to_a) + else + query1 = cardSettle.where("req_date between ? and ?",from,to) + end + query2 = query1.where(payment) + + end + end + + def self.get_by_shift_sale_by_card(from,to,status) + query = ShiftSale.select("shift_sales.id ,shift_started_at AS opening_date, + shift_closed_at As closing_date,") + .order("shift_sales.id DESC") + return query = query.where("shift_sales.shift_started_at >= ?" , from) + byebug + end end diff --git a/app/views/layouts/_left_sidebar.html.erb b/app/views/layouts/_left_sidebar.html.erb index 4052ed56..1e081e92 100644 --- a/app/views/layouts/_left_sidebar.html.erb +++ b/app/views/layouts/_left_sidebar.html.erb @@ -130,7 +130,7 @@ <% end %> <% if can? :menage, Sale %>
  • - <%= t :cb_settlement %> + <%= t :cb_settlement %>
  • <% end %> @@ -187,6 +187,9 @@
  • CB Payments
  • +
  • + CB Settlement +
  • <%end%> diff --git a/app/views/reports/card_sale_tran/index.html.erb b/app/views/reports/card_sale_tran/index.html.erb index 673da3ae..3f66daf9 100644 --- a/app/views/reports/card_sale_tran/index.html.erb +++ b/app/views/reports/card_sale_tran/index.html.erb @@ -59,7 +59,13 @@ <%= cardSale.res_date %> <%= cardSale.res_time.utc.getlocal.strftime("%I:%M %p") %> <%= cardSale.ref_no %> <%= cardSale.res_amt %> - <%= cardSale.app %> + + <% if cardSale.app == 'cup' %> + UNION + <% else %> + <%= cardSale.app %> + <% end %> + <%= cardSale.sale.customer.name rescue '-' %> <%= cardSale.sale.cashier_name rescue '-' %> TID : <%= cardSale.terminal_id %> diff --git a/app/views/reports/card_sale_tran/index.xls.erb b/app/views/reports/card_sale_tran/index.xls.erb index 145dce33..59f32939 100644 --- a/app/views/reports/card_sale_tran/index.xls.erb +++ b/app/views/reports/card_sale_tran/index.xls.erb @@ -47,7 +47,13 @@ <%= cardSale.res_date %> <%= cardSale.res_time.utc.getlocal.strftime("%I:%M %p") %> <%= cardSale.ref_no %> <%= cardSale.res_amt %> - <%= cardSale.app %> + + <% if cardSale.app == 'cup' %> + UNION + <% else %> + <%= cardSale.app %> + <% end %> + <%= cardSale.sale.customer.name rescue '-' %> <%= cardSale.sale.cashier_name rescue '-' %> TID : <%= cardSale.terminal_id %> diff --git a/app/views/reports/card_settle_tran/_shift_card_settle_tran_report_filter.html.erb b/app/views/reports/card_settle_tran/_shift_card_settle_tran_report_filter.html.erb new file mode 100644 index 00000000..0d70fe4f --- /dev/null +++ b/app/views/reports/card_settle_tran/_shift_card_settle_tran_report_filter.html.erb @@ -0,0 +1,144 @@ +
    + <%= form_tag report_path, :method => :get, :id=>"frm_report", :class => "form" do %> + <% if period_type != false %> +
    + + <% if defined? @payment_method %> +
    + + <%= select_tag "payment_type", options_for_select(@payment_method, :selected => params[:payment_type]), :class => "form-control" %> +
    + <% end %> +
    + + +
    + <% if not defined? payments %> + +
    + + + +
    + <% end %> +
    + + + +
    +
    + + +
    +
    + + +
    +
    +
    + +
    +
    + <% end %> + + <% end %> +
    + + diff --git a/app/views/reports/card_settle_tran/index.html.erb b/app/views/reports/card_settle_tran/index.html.erb new file mode 100644 index 00000000..9d11fbc8 --- /dev/null +++ b/app/views/reports/card_settle_tran/index.html.erb @@ -0,0 +1,191 @@ + +
    +
    + + <%= render :partial=>'shift_card_settle_tran_report_filter', + :locals=>{ :period_type => true, :shift_name => true,:payments => true, :report_path =>reports_card_settle_tran_index_path} %> +
    + + + +
    +
    + + + + + + + <% if @shift_from %> + + <% if @shift_data.employee %> + <% cashier_name = !@shift_data.nil? ? @shift_data.employee.name : '-' %> + <% end %> + + + <% end %> + + + + + + + + + + + + + + + + + <% if @cardSettles != 0 %> + <% @cardSettles.each do |cardSettle| %> + + + + + + + + + + + + + + <% end %> + <% else %> + + <% end %> + +
    <%= t("views.right_panel.detail.from_date") %> : <%= @from.utc.getlocal.strftime("%Y-%b-%d") rescue '-' %> - <%= t("views.right_panel.detail.to_date") %> : <%= @to.utc.getlocal.strftime("%Y-%b-%d") rescue '-'%>
    <%= t("views.right_panel.detail.shift_name") %> = <%= @shift_from %> - <%= @shift_to %> ( <%= cashier_name %> )
    <%= t("views.right_panel.detail.shift_sale_id") %><%= t("views.right_panel.detail.req_date") %><%= t("views.right_panel.detail.req_type") %><%= t("views.right_panel.detail.res_date") %><%= t("views.right_panel.detail.res_type") %><%= t("views.right_panel.detail.employee_name") %><%= t("views.right_panel.detail.sale_cnt") %><%= t("views.right_panel.detail.sale_amount") %><%= t("views.right_panel.detail.void_cnt") %><%= t("views.right_panel.detail.void_amount") %><%= t("views.right_panel.detail.status") %>
    <%= cardSettle.shift_sale.shift_started_at.strftime("%e %b %I:%M%p") rescue '-' %> - <%= cardSettle.shift_sale.shift_closed_at ? cardSettle.shift_sale.shift_closed_at.strftime("%e %b %I:%M%p") : '-' %><%= cardSettle.req_date %> <%= cardSettle.req_time.utc.getlocal.strftime("%I:%M %p") %> + <% if cardSettle.req_type == 'CUP' %> + UNION + <% else %> + <%= cardSettle.req_type %> + <% end %> + <%= cardSettle.res_date %> <%= cardSettle.res_time.utc.getlocal.strftime("%I:%M %p") %> + <% if cardSettle.res_type == 'CUP' %> + UNION + <% else %> + <%= cardSettle.res_type %> + <% end %> + <%= cardSettle.shift_sale.employee.name %><%= cardSettle.sale_cnt %><%= cardSettle.sale_amt %><%= cardSettle.void_cnt %><%= cardSettle.void_amt %><%= cardSettle.status %>

    There is no data for search....

    +
    +
    +
    +
    + + \ No newline at end of file diff --git a/app/views/reports/card_settle_tran/index.xls.erb b/app/views/reports/card_settle_tran/index.xls.erb new file mode 100644 index 00000000..38d3b115 --- /dev/null +++ b/app/views/reports/card_settle_tran/index.xls.erb @@ -0,0 +1,79 @@ + + + + + + + +
    +
    +
    +
    + + + + + + <% if @shift_from %> + + <% if @shift_data.employee %> + <% cashier_name = !@shift_data.nil? ? @shift_data.employee.name : '-' %> + <% end %> + + + <% end %> + + + + + + + + + + + + + + + + + <% if @cardSettles != 0 %> + <% @cardSettles.each do |cardSettle| %> + + + + + + + + + + + + + + <% end %> + <% else %> + + <% end %> + +
    <%= t("views.right_panel.detail.from_date") %> : <%= @from.utc.getlocal.strftime("%Y-%b-%d") rescue '-' %> - <%= t("views.right_panel.detail.to_date") %> : <%= @to ? @to.utc.getlocal.strftime("%Y-%b-%d") : '-'%>
    <%= t("views.right_panel.detail.shift_name") %> = <%= @shift_from %> - <%= @shift_to %> ( <%= cashier_name %> )
    <%= t("views.right_panel.detail.shift_sale_id") %><%= t("views.right_panel.detail.req_date") %><%= t("views.right_panel.detail.req_type") %><%= t("views.right_panel.detail.res_date") %><%= t("views.right_panel.detail.res_type") %><%= t("views.right_panel.detail.employee_name") %><%= t("views.right_panel.detail.sale_cnt") %><%= t("views.right_panel.detail.sale_amount") %><%= t("views.right_panel.detail.void_cnt") %><%= t("views.right_panel.detail.void_amount") %><%= t("views.right_panel.detail.status") %>
    <%= cardSettle.shift_sale.shift_started_at.strftime("%e %b %I:%M%p") rescue '-' %> - <%= cardSettle.shift_sale.shift_closed_at ? cardSettle.shift_sale.shift_closed_at.strftime("%e %b %I:%M%p") : '-' %><%= cardSettle.req_date %> <%= cardSettle.req_time.utc.getlocal.strftime("%I:%M %p") %> + <% if cardSettle.req_type == 'CUP' %> + UNION + <% else %> + <%= cardSettle.req_type %> + <% end %> + <%= cardSettle.res_date %> <%= cardSettle.res_time.utc.getlocal.strftime("%I:%M %p") %> + <% if cardSettle.res_type == 'CUP' %> + UNION + <% else %> + <%= cardSettle.res_type %> + <% end %> + <%= cardSettle.shift_sale.employee.name %><%= cardSettle.sale_cnt %><%= cardSettle.sale_amt %><%= cardSettle.void_cnt %><%= cardSettle.void_amt %><%= cardSettle.status %>

    There is no data for search....

    +
    +
    +
    +
    + + \ No newline at end of file diff --git a/app/views/transactions/card_sale_trans/index.html.erb b/app/views/transactions/card_sale_trans/index.html.erb index a3d2a88a..8ad6ded0 100644 --- a/app/views/transactions/card_sale_trans/index.html.erb +++ b/app/views/transactions/card_sale_trans/index.html.erb @@ -96,7 +96,13 @@ <%= cardSale.res_date %> <%= cardSale.res_time.utc.getlocal.strftime("%I:%M %p") %> <%= cardSale.ref_no %> <%= cardSale.res_amt %> - <%= cardSale.app %> + + <% if cardSale.app == 'cup' %> + UNION + <% else %> + <%= cardSale.app %> + <% end %> + <%= cardSale.sale.customer.name rescue '-' %> <%= cardSale.sale.cashier_name rescue '-' %> @@ -176,7 +182,7 @@ search_by_date(); }); - function search_by_date(){ + function search_by_date(){ from = $("#from").val(); to = $("#to").val(); @@ -196,9 +202,50 @@ if(check_arr.length == 3){ check_arr = []; } - } + } } + function show_shift_name(period,period_type,from,to,shift_item){ + var shift = $('#shift_name'); + if (from == '' && to == '') { + from = $("#from").val(); + to = $("#to").val(); + } + shift.empty(); + + var str = ''; + var param_shift = ''; + var param_shift = '<%= params[:shift_name] rescue '-'%>'; + + url = '<%= reports_get_shift_by_date_path %>'; + + $.get(url, {period :period, period_type :period_type, from :from, to :to, report_type :shift_item} , function(data){ + + str = ''; + $(data.message).each(function(index){ + + var local_date = data.message[index].local_opening_date + ' - ' + data.message[index].local_closing_date; + var sh_date = data.message[index].opening_date + ' - ' + data.message[index].closing_date; + var shift_id = data.message[index].shift_id ; + if(param_shift != ''){ + if(shift_id == param_shift){ + selected = 'selected = "selected"'; + } + else{ + selected = ''; + } + }else{ + selected = ''; + } + str += ''; + + // console.log(sh_date) + }) + shift.append(str); + }); + } + }); + }); diff --git a/app/views/transactions/card_sale_trans/show.json.jbuilder b/app/views/transactions/card_sale_trans/show.json.jbuilder deleted file mode 100644 index 48c70528..00000000 --- a/app/views/transactions/card_sale_trans/show.json.jbuilder +++ /dev/null @@ -1 +0,0 @@ -json.partial! "transactions_sales/transactions_sale", transactions_sale: @transactions_sale diff --git a/app/views/transactions/card_settle_trans/index.html.erb b/app/views/transactions/card_settle_trans/index.html.erb new file mode 100644 index 00000000..d01cdb5a --- /dev/null +++ b/app/views/transactions/card_settle_trans/index.html.erb @@ -0,0 +1,233 @@ + +
    +
    +
    +
    + + + + + + + + + +
    + <%= form_tag transactions_card_settle_trans_path, :method => :get do %> +
    +
    + + +
    + + <% if defined? @payment_method %> +
    + + <%= select_tag "payment_type", options_for_select(@payment_method, :selected => params[:payment_type]), :class => "form-control" %> +
    + <% end %> + + <% if not defined? status %> + +
    + + + +
    + <% end %> +
    + + +
    +
    + + +
    + +
    + +
    +
    +
    + <% end %> +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + <% if @cardSettles != 0 %> + <% @cardSettles.each do |cardSettle| %> + + + + + + + + + + + + + + <% end %> + <% else %> + + <% end %> + +
    <%= t("views.right_panel.detail.shift_sale_id") %><%= t("views.right_panel.detail.req_date") %><%= t("views.right_panel.detail.req_type") %><%= t("views.right_panel.detail.res_date") %><%= t("views.right_panel.detail.res_type") %><%= t("views.right_panel.detail.employee_name") %><%= t("views.right_panel.detail.sale_cnt") %><%= t("views.right_panel.detail.sale_amount") %><%= t("views.right_panel.detail.void_cnt") %><%= t("views.right_panel.detail.void_amount") %><%= t("views.right_panel.detail.status") %>
    <%= cardSettle.shift_sale.shift_started_at.strftime("%e %b %I:%M%p") rescue '-' %> - <%= cardSettle.shift_sale.shift_closed_at ? cardSettle.shift_sale.shift_closed_at.strftime("%e %b %I:%M%p") : '-' %><%= cardSettle.req_date %> <%= cardSettle.req_time.utc.getlocal.strftime("%I:%M %p") %> + <% if cardSettle.req_type == 'CUP' %> + UNION + <% else %> + <%= cardSettle.req_type %> + <% end %> + <%= cardSettle.res_date %> <%= cardSettle.res_time.utc.getlocal.strftime("%I:%M %p") %> + <% if cardSettle.res_type == 'CUP' %> + UNION + <% else %> + <%= cardSettle.res_type %> + <% end %> + <%= cardSettle.shift_sale.employee.name %><%= cardSettle.sale_cnt %><%= cardSettle.sale_amt %><%= cardSettle.void_cnt %><%= cardSettle.void_amt %><%= cardSettle.status %>

    There is no data for search....

    +
    + <% if @cardSettles != 0 %> + <%= paginate @cardSettles %> + <% end %> +
    +
    +
    + +
    +
    + + \ No newline at end of file diff --git a/config/locales/en.yml b/config/locales/en.yml index 66e35892..038da651 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -29,6 +29,8 @@ en: top: "Top" orders: "Orders" shiftsale: "ShiftSale" + cb_payments: "CB Payments" + cb_settlement: "CB Settlement" credit: "Credit" bookings: "Booking" home: "Home" diff --git a/config/locales/mm.yml b/config/locales/mm.yml index 3aa5cb09..e728f844 100644 --- a/config/locales/mm.yml +++ b/config/locales/mm.yml @@ -26,6 +26,8 @@ mm: top: "အရောင်းရဆုံး" orders: "အော်ဒါများ" credit: "အကြွေး" + cb_payments: "CB Payments" + cb_settlement: "CB Settlement" bookings: "ကြိုတင်စာရင်းသွင်းခြင်း" home: "မူလစာမျက်နှာ" simple_menu_item: "ဟင်းလျာများ" diff --git a/config/routes.rb b/config/routes.rb index 5fee5f28..f1d0da0b 100755 --- a/config/routes.rb +++ b/config/routes.rb @@ -465,6 +465,7 @@ scope "(:locale)", locale: /en|mm/ do resources :surveys resources :order_reservations resources :card_sale_trans + resources :card_settle_trans get "/sales/:sale_id/manual_complete_sale" => "manual_sales#manual_complete_sale", :as => "manual_complete_sale" get "/sales/:sale_id/void" => "manual_sales#void", :as => "void" @@ -489,6 +490,7 @@ scope "(:locale)", locale: /en|mm/ do resources :order_reservation, :only => [:index, :show] resources :induty, :only => [:index, :show] resources :card_sale_tran + resources :card_settle_tran get "saleitem/get_shift_by_date", to: "saleitem#show", as: "get_shift_by_sale_item" get "receipt_no/get_shift_by_date", to: "receipt_no#get_shift_by_date", as: "get_shift_by_date" From 10d93a658cca44928e77af82e1a7852b43656377 Mon Sep 17 00:00:00 2001 From: San Wai Lwin Date: Mon, 6 Aug 2018 13:52:47 +0630 Subject: [PATCH 04/11] Edit filter --- .../reports/card_sale_tran_controller.rb | 4 +- .../card_sale_trans_controller.rb | 4 +- .../card_settle_trans_controller.rb | 11 ++- .../card_sale_trans/index.html.erb | 67 +++++++------------ .../card_settle_trans/index.html.erb | 7 +- app/views/transactions/sales/index.html.erb | 9 +-- 6 files changed, 40 insertions(+), 62 deletions(-) diff --git a/app/controllers/reports/card_sale_tran_controller.rb b/app/controllers/reports/card_sale_tran_controller.rb index ff0b3231..01baa21f 100644 --- a/app/controllers/reports/card_sale_tran_controller.rb +++ b/app/controllers/reports/card_sale_tran_controller.rb @@ -8,11 +8,9 @@ class Reports::CardSaleTranController < BaseReportController ["Master Payment","master"], ["JCB Payment","jcb"],["UnionPay Payment","unionpay"], ["Alipay Payment","alipay"]] @sales = Sale.all - # byebug + payment_type = params[:payment_type] - # from = params[:from] - # to = params[:to] from, to = get_date_range_from_params status = 'Approved' @shift_sale_range = '' diff --git a/app/controllers/transactions/card_sale_trans_controller.rb b/app/controllers/transactions/card_sale_trans_controller.rb index b17fc608..63a87059 100644 --- a/app/controllers/transactions/card_sale_trans_controller.rb +++ b/app/controllers/transactions/card_sale_trans_controller.rb @@ -9,13 +9,11 @@ class Transactions::CardSaleTransController < ApplicationController ["Master Payment","master"], ["JCB Payment","jcb"],["UnionPay Payment","unionpay"], ["Alipay Payment","alipay"]] @sales = Sale.all - # byebug + payment_type = params[:payment_type] sale_id = params[:sale_id] status_type = params[:status_type] - # from = params[:from] - # to = params[:to] from, to = get_date_range_from_params if sale_id.nil? && from.nil? && to.nil? && payment_method.nil? && status_type.nil? diff --git a/app/controllers/transactions/card_settle_trans_controller.rb b/app/controllers/transactions/card_settle_trans_controller.rb index 8c071509..d08ca786 100644 --- a/app/controllers/transactions/card_settle_trans_controller.rb +++ b/app/controllers/transactions/card_settle_trans_controller.rb @@ -9,22 +9,21 @@ class Transactions::CardSettleTransController < ApplicationController ["Master Payment","master"], ["JCB Payment","jcb"],["UnionPay Payment","unionpay"], ["Alipay Payment","alipay"]] @sales = Sale.all - # byebug + payment_type = params[:payment_type] - sale_id = params[:sale_id] + cashier_name = params[:cashier_name] status_type = params[:status_type] - # from = params[:from] - # to = params[:to] + from, to = get_date_range_from_params - if sale_id.nil? && from.nil? && to.nil? && payment_method.nil? && status_type.nil? + if cashier_name.nil? && from.nil? && to.nil? && payment_method.nil? && status_type.nil? @cardSettles = CardSettleTran.order("sale_id desc") @cardSettles = Kaminari.paginate_array(@cardSettles).page(params[:page]).per(20) else - cardSettle = CardSettleTran.search(sale_id,from,to,payment_type,status_type) + cardSettle = CardSettleTran.search(cashier_name,from,to,payment_type,status_type) if cardSettle.count > 0 @cardSettles = cardSettle @cardSettles = Kaminari.paginate_array(@cardSettles).page(params[:page]).per(20) diff --git a/app/views/transactions/card_sale_trans/index.html.erb b/app/views/transactions/card_sale_trans/index.html.erb index 8ad6ded0..50948bdb 100644 --- a/app/views/transactions/card_sale_trans/index.html.erb +++ b/app/views/transactions/card_sale_trans/index.html.erb @@ -134,37 +134,30 @@
    - - - - - - - + \ No newline at end of file diff --git a/app/views/transactions/card_settle_trans/index.html.erb b/app/views/transactions/card_settle_trans/index.html.erb index d01cdb5a..248a76c3 100644 --- a/app/views/transactions/card_settle_trans/index.html.erb +++ b/app/views/transactions/card_settle_trans/index.html.erb @@ -19,7 +19,7 @@
    - +
    <% if defined? @payment_method %> @@ -132,6 +132,11 @@ - - - - - - - + \ No newline at end of file From 7b74de9b3a188ab0ba2aed9042e038f35d207495 Mon Sep 17 00:00:00 2001 From: San Wai Lwin Date: Mon, 6 Aug 2018 14:44:26 +0630 Subject: [PATCH 05/11] Edit in report --- .../reports/card_sale_tran_controller.rb | 2 +- .../reports/card_settle_tran_controller.rb | 4 +- .../card_sale_trans_controller.rb | 4 +- .../card_settle_trans_controller.rb | 4 +- app/models/card_sale_tran.rb | 12 +--- app/models/card_settle_tran.rb | 12 +--- .../reports/card_sale_tran/index.html.erb | 8 +-- .../reports/card_sale_tran/index.xls.erb | 8 +-- .../reports/card_settle_tran/index.html.erb | 19 +----- .../reports/card_settle_tran/index.xls.erb | 52 ++++++--------- .../card_sale_trans/index.html.erb | 64 ++++++++----------- .../card_settle_trans/index.html.erb | 16 +---- 12 files changed, 66 insertions(+), 139 deletions(-) diff --git a/app/controllers/reports/card_sale_tran_controller.rb b/app/controllers/reports/card_sale_tran_controller.rb index 01baa21f..f0e1053f 100644 --- a/app/controllers/reports/card_sale_tran_controller.rb +++ b/app/controllers/reports/card_sale_tran_controller.rb @@ -5,7 +5,7 @@ class Reports::CardSaleTranController < BaseReportController # GET /transactions/sales.json def index @payment_method = [["All Payments",''],["MPU Payment","mpu"], ["Visa Payment","visa"], - ["Master Payment","master"], ["JCB Payment","jcb"],["UnionPay Payment","unionpay"], + ["Master Payment","master"], ["JCB Payment","jcb"],["UnionPay Payment","cup"], ["Alipay Payment","alipay"]] @sales = Sale.all diff --git a/app/controllers/reports/card_settle_tran_controller.rb b/app/controllers/reports/card_settle_tran_controller.rb index ac10d48b..e775e578 100644 --- a/app/controllers/reports/card_settle_tran_controller.rb +++ b/app/controllers/reports/card_settle_tran_controller.rb @@ -4,8 +4,8 @@ class Reports::CardSettleTranController < BaseReportController # GET /transactions/sales # GET /transactions/sales.json def index - @payment_method = [["All Payments",''],["MPU Payment","mpu"], ["Visa Payment","visa"], - ["Master Payment","master"], ["JCB Payment","jcb"],["UnionPay Payment","unionpay"], + @payment_method = [["All Payments",''],["MPU Payment","mpu"], ["Visa & Master Payment","vmj"], + ["JCB Payment","jcb"],["UnionPay Payment","cup"], ["Alipay Payment","alipay"]] @sales = Sale.all payment_type = params[:payment_type] diff --git a/app/controllers/transactions/card_sale_trans_controller.rb b/app/controllers/transactions/card_sale_trans_controller.rb index 63a87059..352e4f30 100644 --- a/app/controllers/transactions/card_sale_trans_controller.rb +++ b/app/controllers/transactions/card_sale_trans_controller.rb @@ -5,8 +5,8 @@ class Transactions::CardSaleTransController < ApplicationController # GET /transactions/sales.json def index @status = [["All Status",''], ["Approved","Approved"], ["Declined","Declined"]] - @payment_method = [["All Payments",''],["MPU Payment","mpu"], ["Visa Payment","visa"], - ["Master Payment","master"], ["JCB Payment","jcb"],["UnionPay Payment","unionpay"], + @payment_method =[["All Payments",''],["MPU Payment","mpu"], ["Visa Payment","visa"], + ["Master Payment","master"], ["JCB Payment","jcb"],["UnionPay Payment","cup"], ["Alipay Payment","alipay"]] @sales = Sale.all diff --git a/app/controllers/transactions/card_settle_trans_controller.rb b/app/controllers/transactions/card_settle_trans_controller.rb index d08ca786..e2b70c7e 100644 --- a/app/controllers/transactions/card_settle_trans_controller.rb +++ b/app/controllers/transactions/card_settle_trans_controller.rb @@ -5,8 +5,8 @@ class Transactions::CardSettleTransController < ApplicationController # GET /transactions/sales.json def index @status = [["All Status",''], ["Approved","Approved"], ["Declined","Declined"]] - @payment_method = [["All Payments",''],["MPU Payment","mpu"], ["Visa Payment","visa"], - ["Master Payment","master"], ["JCB Payment","jcb"],["UnionPay Payment","unionpay"], + @payment_method = [["All Payments",''],["MPU Payment","mpu"], ["Visa & Master Payment","vmj"], + ["JCB Payment","jcb"],["UnionPay Payment","cup"], ["Alipay Payment","alipay"]] @sales = Sale.all diff --git a/app/models/card_sale_tran.rb b/app/models/card_sale_tran.rb index 0aef0952..04ec5155 100644 --- a/app/models/card_sale_tran.rb +++ b/app/models/card_sale_tran.rb @@ -12,11 +12,7 @@ class CardSaleTran < ApplicationRecord if payment_type.blank? payment = '' else - if payment_type == 'unionpay' - payment = " app LIKE 'cup'" - else - payment = " app LIKE '#{payment_type}'" - end + payment = " app LIKE '#{payment_type}'" end if status_type.blank? @@ -45,11 +41,7 @@ class CardSaleTran < ApplicationRecord if payment_type.blank? payment = '' else - if payment_type == 'unionpay' - payment = " app LIKE 'cup'" - else - payment = " app LIKE '#{payment_type}'" - end + payment = " app LIKE '#{payment_type}'" end if from.present? && to.present? diff --git a/app/models/card_settle_tran.rb b/app/models/card_settle_tran.rb index a3166e91..8e2cafb8 100644 --- a/app/models/card_settle_tran.rb +++ b/app/models/card_settle_tran.rb @@ -12,11 +12,7 @@ class CardSettleTran < ApplicationRecord if payment_type.blank? payment = '' else - if payment_type == 'unionpay' - payment = " req_type LIKE 'cup'" - else - payment = " req_type LIKE '#{payment_type}'" - end + payment = " req_type LIKE '#{payment_type}'" end if status_type.blank? @@ -44,11 +40,7 @@ class CardSettleTran < ApplicationRecord if payment_type.blank? payment = '' else - if payment_type == 'unionpay' - payment = " req_type LIKE 'cup'" - else - payment = " req_type LIKE '#{payment_type}'" - end + payment = " req_type LIKE '#{payment_type}'" end if from.present? && to.present? diff --git a/app/views/reports/card_sale_tran/index.html.erb b/app/views/reports/card_sale_tran/index.html.erb index 3f66daf9..673da3ae 100644 --- a/app/views/reports/card_sale_tran/index.html.erb +++ b/app/views/reports/card_sale_tran/index.html.erb @@ -59,13 +59,7 @@ <%= cardSale.res_date %> <%= cardSale.res_time.utc.getlocal.strftime("%I:%M %p") %> <%= cardSale.ref_no %> <%= cardSale.res_amt %> - - <% if cardSale.app == 'cup' %> - UNION - <% else %> - <%= cardSale.app %> - <% end %> - + <%= cardSale.app %> <%= cardSale.sale.customer.name rescue '-' %> <%= cardSale.sale.cashier_name rescue '-' %> TID : <%= cardSale.terminal_id %> diff --git a/app/views/reports/card_sale_tran/index.xls.erb b/app/views/reports/card_sale_tran/index.xls.erb index 59f32939..145dce33 100644 --- a/app/views/reports/card_sale_tran/index.xls.erb +++ b/app/views/reports/card_sale_tran/index.xls.erb @@ -47,13 +47,7 @@ <%= cardSale.res_date %> <%= cardSale.res_time.utc.getlocal.strftime("%I:%M %p") %> <%= cardSale.ref_no %> <%= cardSale.res_amt %> - - <% if cardSale.app == 'cup' %> - UNION - <% else %> - <%= cardSale.app %> - <% end %> - + <%= cardSale.app %> <%= cardSale.sale.customer.name rescue '-' %> <%= cardSale.sale.cashier_name rescue '-' %> TID : <%= cardSale.terminal_id %> diff --git a/app/views/reports/card_settle_tran/index.html.erb b/app/views/reports/card_settle_tran/index.html.erb index 9d11fbc8..0272db0a 100644 --- a/app/views/reports/card_settle_tran/index.html.erb +++ b/app/views/reports/card_settle_tran/index.html.erb @@ -19,7 +19,7 @@
    -
    +
    @@ -46,7 +46,6 @@ - @@ -55,27 +54,15 @@ - - + - <% end %> <% else %> diff --git a/app/views/reports/card_settle_tran/index.xls.erb b/app/views/reports/card_settle_tran/index.xls.erb index 38d3b115..26151cef 100644 --- a/app/views/reports/card_settle_tran/index.xls.erb +++ b/app/views/reports/card_settle_tran/index.xls.erb @@ -37,38 +37,26 @@ - - <% if @cardSettles != 0 %> - <% @cardSettles.each do |cardSettle| %> - - - - - - - - - - - - - - <% end %> - <% else %> - - <% end %> + + <% if @cardSettles != 0 %> + <% @cardSettles.each do |cardSettle| %> + + + + + + + + + + + + + + <% end %> + <% else %> + + <% end %>
    <%= t("views.right_panel.detail.sale_amount") %> <%= t("views.right_panel.detail.void_cnt") %> <%= t("views.right_panel.detail.void_amount") %><%= t("views.right_panel.detail.status") %>
    <%= cardSettle.shift_sale.shift_started_at.strftime("%e %b %I:%M%p") rescue '-' %> - <%= cardSettle.shift_sale.shift_closed_at ? cardSettle.shift_sale.shift_closed_at.strftime("%e %b %I:%M%p") : '-' %> <%= cardSettle.req_date %> <%= cardSettle.req_time.utc.getlocal.strftime("%I:%M %p") %> - <% if cardSettle.req_type == 'CUP' %> - UNION - <% else %> - <%= cardSettle.req_type %> - <% end %> + <%= cardSettle.req_type %> <%= cardSettle.res_date %> <%= cardSettle.res_time.utc.getlocal.strftime("%I:%M %p") %> - <% if cardSettle.res_type == 'CUP' %> - UNION - <% else %> - <%= cardSettle.res_type %> - <% end %> - <%= cardSettle.res_type %> <%= cardSettle.shift_sale.employee.name %> <%= cardSettle.sale_cnt %> <%= cardSettle.sale_amt %> <%= cardSettle.void_cnt %> <%= cardSettle.void_amt %><%= cardSettle.status %>
    <%= t("views.right_panel.detail.status") %>
    <%= cardSettle.shift_sale.shift_started_at.strftime("%e %b %I:%M%p") rescue '-' %> - <%= cardSettle.shift_sale.shift_closed_at ? cardSettle.shift_sale.shift_closed_at.strftime("%e %b %I:%M%p") : '-' %><%= cardSettle.req_date %> <%= cardSettle.req_time.utc.getlocal.strftime("%I:%M %p") %> - <% if cardSettle.req_type == 'CUP' %> - UNION - <% else %> - <%= cardSettle.req_type %> - <% end %> - <%= cardSettle.res_date %> <%= cardSettle.res_time.utc.getlocal.strftime("%I:%M %p") %> - <% if cardSettle.res_type == 'CUP' %> - UNION - <% else %> - <%= cardSettle.res_type %> - <% end %> - <%= cardSettle.shift_sale.employee.name %><%= cardSettle.sale_cnt %><%= cardSettle.sale_amt %><%= cardSettle.void_cnt %><%= cardSettle.void_amt %><%= cardSettle.status %>

    There is no data for search....

    <%= cardSettle.shift_sale.shift_started_at.strftime("%e %b %I:%M%p") rescue '-' %> - <%= cardSettle.shift_sale.shift_closed_at ? cardSettle.shift_sale.shift_closed_at.strftime("%e %b %I:%M%p") : '-' %><%= cardSettle.req_date %> <%= cardSettle.req_time.utc.getlocal.strftime("%I:%M %p") %><%= cardSettle.req_type %><%= cardSettle.res_date %> <%= cardSettle.res_time.utc.getlocal.strftime("%I:%M %p") %><%= cardSettle.res_type %><%= cardSettle.shift_sale.employee.name %><%= cardSettle.sale_cnt %><%= cardSettle.sale_amt %><%= cardSettle.void_cnt %><%= cardSettle.void_amt %><%= cardSettle.status %>

    There is no data for search....

    diff --git a/app/views/transactions/card_sale_trans/index.html.erb b/app/views/transactions/card_sale_trans/index.html.erb index 50948bdb..ce72f578 100644 --- a/app/views/transactions/card_sale_trans/index.html.erb +++ b/app/views/transactions/card_sale_trans/index.html.erb @@ -86,42 +86,34 @@ - <% if @cardSales != 0 %> - <% @cardSales.each do |cardSale| %> - - <%= link_to cardSale.sale_id, transactions_sale_path(cardSale.sale_id) rescue '-' %> - <%= cardSale.req_date %> <%= cardSale.req_time.utc.getlocal.strftime("%I:%M %p") %> - <%= cardSale.req_inv_no %> - <%= cardSale.req_amt %> - <%= cardSale.res_date %> <%= cardSale.res_time.utc.getlocal.strftime("%I:%M %p") %> - <%= cardSale.ref_no %> - <%= cardSale.res_amt %> - - <% if cardSale.app == 'cup' %> - UNION - <% else %> - <%= cardSale.app %> - <% end %> - - <%= cardSale.sale.customer.name rescue '-' %> - <%= cardSale.sale.cashier_name rescue '-' %> - - TID : <%= cardSale.terminal_id %> -
    - MID : <%= cardSale.trace %> -
    - Batch : <%= cardSale.batch_no %> -
    - Trace : <%= cardSale.merchant_id %> - - <%= cardSale.status %> - - <% end %> - <% else %> -

    There is no data for search....

    - <% end %> - - + <% if @cardSales != 0 %> + <% @cardSales.each do |cardSale| %> + + <%= cardSale.req_date %> <%= cardSale.req_time.utc.getlocal.strftime("%I:%M %p") %> + <%= cardSale.req_inv_no %> + <%= cardSale.req_amt %> + <%= cardSale.res_date %> <%= cardSale.res_time.utc.getlocal.strftime("%I:%M %p") %> + <%= cardSale.ref_no %> + <%= cardSale.res_amt %> + <%= cardSale.app %> + <%= cardSale.sale.customer.name rescue '-' %> + <%= cardSale.sale.cashier_name rescue '-' %> + TID : <%= cardSale.terminal_id %> +
    + MID : <%= cardSale.trace %> +
    + Batch : <%= cardSale.batch_no %> +
    + Trace : <%= cardSale.merchant_id %> + + <%= cardSale.status %> + + <% end %> + <% else %> +

    There is no data for search....

    + <% end %> + +
    <% if @cardSales != 0 %> <%= paginate @cardSales %> diff --git a/app/views/transactions/card_settle_trans/index.html.erb b/app/views/transactions/card_settle_trans/index.html.erb index 248a76c3..7cbc3573 100644 --- a/app/views/transactions/card_settle_trans/index.html.erb +++ b/app/views/transactions/card_settle_trans/index.html.erb @@ -90,21 +90,9 @@ <%= cardSettle.shift_sale.shift_started_at.strftime("%e %b %I:%M%p") rescue '-' %> - <%= cardSettle.shift_sale.shift_closed_at ? cardSettle.shift_sale.shift_closed_at.strftime("%e %b %I:%M%p") : '-' %> <%= cardSettle.req_date %> <%= cardSettle.req_time.utc.getlocal.strftime("%I:%M %p") %> - - <% if cardSettle.req_type == 'CUP' %> - UNION - <% else %> - <%= cardSettle.req_type %> - <% end %> - + <%= cardSettle.req_type %> <%= cardSettle.res_date %> <%= cardSettle.res_time.utc.getlocal.strftime("%I:%M %p") %> - - <% if cardSettle.res_type == 'CUP' %> - UNION - <% else %> - <%= cardSettle.res_type %> - <% end %> - + <%= cardSettle.res_type %> <%= cardSettle.shift_sale.employee.name %> <%= cardSettle.sale_cnt %> <%= cardSettle.sale_amt %> From 0f14a02f2d80cfb569b058d2e3424471266fd5bd Mon Sep 17 00:00:00 2001 From: San Wai Lwin Date: Mon, 6 Aug 2018 15:14:28 +0630 Subject: [PATCH 06/11] Edit Report --- .../reports/card_sale_tran/index.html.erb | 37 +++++++++++++------ .../reports/card_sale_tran/index.xls.erb | 36 ++++++++++++------ .../card_sale_trans/index.html.erb | 27 ++++++++++---- 3 files changed, 69 insertions(+), 31 deletions(-) diff --git a/app/views/reports/card_sale_tran/index.html.erb b/app/views/reports/card_sale_tran/index.html.erb index 673da3ae..9ac8550e 100644 --- a/app/views/reports/card_sale_tran/index.html.erb +++ b/app/views/reports/card_sale_tran/index.html.erb @@ -19,7 +19,7 @@
    -
    +
    @@ -46,7 +46,6 @@ - @@ -59,18 +58,32 @@ - + - - + <% end %> <% else %> diff --git a/app/views/reports/card_sale_tran/index.xls.erb b/app/views/reports/card_sale_tran/index.xls.erb index 145dce33..decc2c43 100644 --- a/app/views/reports/card_sale_tran/index.xls.erb +++ b/app/views/reports/card_sale_tran/index.xls.erb @@ -47,25 +47,39 @@ - + - - + <% end %> <% else %> <% end %> -
    <%= t("views.right_panel.detail.Customer_name") %> <%= t("views.right_panel.detail.Cashier_name") %> <%= t("views.right_panel.detail.detail") %><%= t("views.right_panel.detail.status") %>
    <%= cardSale.res_date %> <%= cardSale.res_time.utc.getlocal.strftime("%I:%M %p") %> <%= cardSale.ref_no %> <%= cardSale.res_amt %><%= cardSale.app %> + <% if cardSale.app == 'cup' %> + UNION + <% else %> + <%= cardSale.app %> + <% end %> + <%= cardSale.sale.customer.name rescue '-' %> <%= cardSale.sale.cashier_name rescue '-' %>TID : <%= cardSale.terminal_id %> -
    - MID : <%= cardSale.trace %> -
    - Batch : <%= cardSale.batch_no %> -
    - Trace : <%= cardSale.merchant_id %> -
    <%= cardSale.status %> + <% if cardSale.terminal_id != '' %> + TID : <%= cardSale.terminal_id %> +
    + <% end %> + <% if cardSale.merchant_id != '' %> + MID : <%= cardSale.merchant_id %> +
    + <% end %> + <% if cardSale.batch_no != '' %> + Batch : <%= cardSale.batch_no %> +
    + <% end %> + <% if cardSale.trace != '' %> + Trace : <%= cardSale.trace %> + <% end %> +
    <%= cardSale.res_date %> <%= cardSale.res_time.utc.getlocal.strftime("%I:%M %p") %> <%= cardSale.ref_no %> <%= cardSale.res_amt %><%= cardSale.app %> + <% if cardSale.app == 'cup' %> + UNION + <% else %> + <%= cardSale.app %> + <% end %> + <%= cardSale.sale.customer.name rescue '-' %> <%= cardSale.sale.cashier_name rescue '-' %>TID : <%= cardSale.terminal_id %> -
    - MID : <%= cardSale.trace %> -
    - Batch : <%= cardSale.batch_no %> -
    - Trace : <%= cardSale.merchant_id %> -
    <%= cardSale.status %> + <% if cardSale.terminal_id != '' %> + TID : <%= cardSale.terminal_id %> +
    + <% end %> + <% if cardSale.merchant_id != '' %> + MID : <%= cardSale.merchant_id %> +
    + <% end %> + <% if cardSale.batch_no != '' %> + Batch : <%= cardSale.batch_no %> +
    + <% end %> + <% if cardSale.trace != '' %> + Trace : <%= cardSale.trace %> + <% end %> +

    There is no data for search....

    +
    diff --git a/app/views/transactions/card_sale_trans/index.html.erb b/app/views/transactions/card_sale_trans/index.html.erb index ce72f578..d7b24af5 100644 --- a/app/views/transactions/card_sale_trans/index.html.erb +++ b/app/views/transactions/card_sale_trans/index.html.erb @@ -89,6 +89,8 @@ <% if @cardSales != 0 %> <% @cardSales.each do |cardSale| %> + + <%= link_to cardSale.sale_id, transactions_sale_path(cardSale.sale_id) rescue '-' %> <%= cardSale.req_date %> <%= cardSale.req_time.utc.getlocal.strftime("%I:%M %p") %> <%= cardSale.req_inv_no %> <%= cardSale.req_amt %> @@ -98,14 +100,23 @@ <%= cardSale.app %> <%= cardSale.sale.customer.name rescue '-' %> <%= cardSale.sale.cashier_name rescue '-' %> - TID : <%= cardSale.terminal_id %> -
    - MID : <%= cardSale.trace %> -
    - Batch : <%= cardSale.batch_no %> -
    - Trace : <%= cardSale.merchant_id %> - + + <% if cardSale.terminal_id != '' %> + TID : <%= cardSale.terminal_id %> +
    + <% end %> + <% if cardSale.merchant_id != '' %> + MID : <%= cardSale.merchant_id %> +
    + <% end %> + <% if cardSale.batch_no != '' %> + Batch : <%= cardSale.batch_no %> +
    + <% end %> + <% if cardSale.trace != '' %> + Trace : <%= cardSale.trace %> + <% end %> + <%= cardSale.status %> <% end %> From 436392550dd3ec41324bdc323a8988b6feca705e Mon Sep 17 00:00:00 2001 From: San Wai Lwin Date: Mon, 6 Aug 2018 15:59:14 +0630 Subject: [PATCH 07/11] Edit Report --- app/views/reports/card_sale_tran/index.html.erb | 2 +- app/views/reports/card_sale_tran/index.xls.erb | 2 +- app/views/transactions/card_sale_trans/index.html.erb | 8 +++++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/views/reports/card_sale_tran/index.html.erb b/app/views/reports/card_sale_tran/index.html.erb index 9ac8550e..9fc4cb91 100644 --- a/app/views/reports/card_sale_tran/index.html.erb +++ b/app/views/reports/card_sale_tran/index.html.erb @@ -60,7 +60,7 @@ <%= cardSale.res_amt %> <% if cardSale.app == 'cup' %> - UNION + UNION Pay <% else %> <%= cardSale.app %> <% end %> diff --git a/app/views/reports/card_sale_tran/index.xls.erb b/app/views/reports/card_sale_tran/index.xls.erb index decc2c43..1e9ee03d 100644 --- a/app/views/reports/card_sale_tran/index.xls.erb +++ b/app/views/reports/card_sale_tran/index.xls.erb @@ -49,7 +49,7 @@ <%= cardSale.res_amt %> <% if cardSale.app == 'cup' %> - UNION + UNION Pay <% else %> <%= cardSale.app %> <% end %> diff --git a/app/views/transactions/card_sale_trans/index.html.erb b/app/views/transactions/card_sale_trans/index.html.erb index d7b24af5..2bf507ee 100644 --- a/app/views/transactions/card_sale_trans/index.html.erb +++ b/app/views/transactions/card_sale_trans/index.html.erb @@ -97,7 +97,13 @@ <%= cardSale.res_date %> <%= cardSale.res_time.utc.getlocal.strftime("%I:%M %p") %> <%= cardSale.ref_no %> <%= cardSale.res_amt %> - <%= cardSale.app %> + + <% if cardSale.app == 'cup' %> + UNION Pay + <% else %> + <%= cardSale.app %> + <% end %> + <%= cardSale.sale.customer.name rescue '-' %> <%= cardSale.sale.cashier_name rescue '-' %> From 35ac07b0a62fa7ca3644d5dc6db222032b63d4ac Mon Sep 17 00:00:00 2001 From: San Wai Lwin Date: Mon, 6 Aug 2018 16:37:52 +0630 Subject: [PATCH 08/11] Edit --- app/views/reports/card_sale_tran/index.html.erb | 2 +- app/views/reports/card_sale_tran/index.xls.erb | 3 +-- app/views/reports/card_settle_tran/index.xls.erb | 2 -- app/views/transactions/card_sale_trans/index.html.erb | 2 +- 4 files changed, 3 insertions(+), 6 deletions(-) diff --git a/app/views/reports/card_sale_tran/index.html.erb b/app/views/reports/card_sale_tran/index.html.erb index 9fc4cb91..218b0b7d 100644 --- a/app/views/reports/card_sale_tran/index.html.erb +++ b/app/views/reports/card_sale_tran/index.html.erb @@ -60,7 +60,7 @@ <%= cardSale.res_amt %> <% if cardSale.app == 'cup' %> - UNION Pay + UnionPay <% else %> <%= cardSale.app %> <% end %> diff --git a/app/views/reports/card_sale_tran/index.xls.erb b/app/views/reports/card_sale_tran/index.xls.erb index 1e9ee03d..83eea675 100644 --- a/app/views/reports/card_sale_tran/index.xls.erb +++ b/app/views/reports/card_sale_tran/index.xls.erb @@ -34,7 +34,6 @@ <%= t("views.right_panel.detail.Customer_name") %> <%= t("views.right_panel.detail.Cashier_name") %> <%= t("views.right_panel.detail.detail") %> - <%= t("views.right_panel.detail.status") %> @@ -49,7 +48,7 @@ <%= cardSale.res_amt %> <% if cardSale.app == 'cup' %> - UNION Pay + UnionPay <% else %> <%= cardSale.app %> <% end %> diff --git a/app/views/reports/card_settle_tran/index.xls.erb b/app/views/reports/card_settle_tran/index.xls.erb index 26151cef..0f6e84c0 100644 --- a/app/views/reports/card_settle_tran/index.xls.erb +++ b/app/views/reports/card_settle_tran/index.xls.erb @@ -34,7 +34,6 @@ <%= t("views.right_panel.detail.sale_amount") %> <%= t("views.right_panel.detail.void_cnt") %> <%= t("views.right_panel.detail.void_amount") %> - <%= t("views.right_panel.detail.status") %> @@ -51,7 +50,6 @@ <%= cardSettle.sale_amt %> <%= cardSettle.void_cnt %> <%= cardSettle.void_amt %> - <%= cardSettle.status %> <% end %> <% else %> diff --git a/app/views/transactions/card_sale_trans/index.html.erb b/app/views/transactions/card_sale_trans/index.html.erb index 2bf507ee..d35ef116 100644 --- a/app/views/transactions/card_sale_trans/index.html.erb +++ b/app/views/transactions/card_sale_trans/index.html.erb @@ -99,7 +99,7 @@ <%= cardSale.res_amt %> <% if cardSale.app == 'cup' %> - UNION Pay + UnionPay <% else %> <%= cardSale.app %> <% end %> From e99e907bc4603106002758c7c8794f42557af5b9 Mon Sep 17 00:00:00 2001 From: San Wai Lwin Date: Mon, 6 Aug 2018 17:52:03 +0630 Subject: [PATCH 09/11] Pull from master --- README.md | 3 + .../origami/bank_integration.coffee | 3 - app/assets/javascripts/application.js | 1 + app/assets/javascripts/channels/order.js | 4 +- .../javascripts/channels/sound_effect.js | 36 +++ app/channels/sound_effect_channel.rb | 10 + app/controllers/api/bill_controller.rb | 30 ++- .../api/sound_effect_controller.rb | 30 +++ app/controllers/crm/customers_controller.rb | 4 +- app/controllers/home_controller.rb | 7 +- .../origami/customers_controller.rb | 4 +- app/controllers/origami/home_controller.rb | 13 + .../origami/payments_controller.rb | 16 +- app/controllers/origami/rooms_controller.rb | 13 + app/controllers/origami/sales_controller.rb | 3 +- .../settings/tax_profiles_controller.rb | 12 +- app/models/order_reservation.rb | 1 + app/models/sale.rb | 242 ++++++++++++++---- app/models/sale_payment.rb | 21 +- app/views/home/show.html.erb | 4 +- app/views/origami/home/show.html.erb | 5 +- app/views/origami/payments/show.html.erb | 2 +- app/views/origami/rooms/show.html.erb | 5 +- .../reports/order_reservation/index.html.erb | 23 +- .../reports/order_reservation/index.xls.erb | 19 +- .../order_reservations/index.html.erb | 34 +-- .../order_reservations/show.html.erb | 25 +- config/initializers/assets.rb | 4 +- config/locales/en.yml | 1 + config/locales/mm.yml | 1 + config/routes.rb | 2 + .../20170403161857_create_sale_items.rb | 2 +- ...0180406080240_create_order_reservations.rb | 1 + 33 files changed, 455 insertions(+), 126 deletions(-) delete mode 100644 app/assets/javascripts/app/controllers/origami/bank_integration.coffee create mode 100644 app/assets/javascripts/channels/sound_effect.js create mode 100644 app/channels/sound_effect_channel.rb create mode 100644 app/controllers/api/sound_effect_controller.rb diff --git a/README.md b/README.md index bdc4c76b..bdaec79e 100755 --- a/README.md +++ b/README.md @@ -251,6 +251,9 @@ For Dashboard Settings for supervisor and cashier For Customer Settings On/Off 1) settings/lookups => {type:customer_settings, name:create, value: {1 or 0}} +For TaxProfiles On/Off + 1) settings/lookups => {type:changable_tax, name:change, value: {1 or 0}} + * ToDo list 1. Migration diff --git a/app/assets/javascripts/app/controllers/origami/bank_integration.coffee b/app/assets/javascripts/app/controllers/origami/bank_integration.coffee deleted file mode 100644 index 24f83d18..00000000 --- a/app/assets/javascripts/app/controllers/origami/bank_integration.coffee +++ /dev/null @@ -1,3 +0,0 @@ -# Place all the behaviors and hooks related to the matching controller here. -# All this logic will automatically be available in application.js. -# You can use CoffeeScript in this file: http://coffeescript.org/ diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index c6247962..54b1996e 100755 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -28,6 +28,7 @@ //= require raphael/raphael.min //= require Chart.bundle //= require chartkick +//= require cable //= require fileinput.min.js //= require settings/processing_items //= require BSBMaterial/admin.js diff --git a/app/assets/javascripts/channels/order.js b/app/assets/javascripts/channels/order.js index 9326b2cc..4a9e8a95 100755 --- a/app/assets/javascripts/channels/order.js +++ b/app/assets/javascripts/channels/order.js @@ -5,8 +5,8 @@ App.order = App.cable.subscriptions.create('OrderChannel', { received: function(data) { var hostname = location.hostname.trim(); - console.log(hostname) - console.log(data.from) + // console.log(hostname) + // console.log(data.from) if(data.from == "" || hostname == data.from) { if (data.type == 'order') { diff --git a/app/assets/javascripts/channels/sound_effect.js b/app/assets/javascripts/channels/sound_effect.js new file mode 100644 index 00000000..4b988dda --- /dev/null +++ b/app/assets/javascripts/channels/sound_effect.js @@ -0,0 +1,36 @@ +App.sound_effect = App.cable.subscriptions.create('SoundEffectChannel', { + connected: function() {}, + + disconnected: function() {}, + + received: function(data) { + var hostname = location.hostname.trim(); + if(data.from == "" || hostname == data.from){ + var shop_code = data.shop_code; + var audio = data.audio; + var data = data.data; + + if(data.status){ + var audio = new Audio('/'+audio); // define your audio + audio.play(); + } + + if(data.status && ((data.message != undefined) && (data.message!=""))){ + swal({ + title: 'Information', + text: data.message, + type: 'success', + html: true, + closeOnConfirm: false, + closeOnCancel: false, + allowOutsideClick: false + }, function (isConfirm) { + if(isConfirm){ + swal.close(); + } + }); + } + } + } +}); + diff --git a/app/channels/sound_effect_channel.rb b/app/channels/sound_effect_channel.rb new file mode 100644 index 00000000..2b3f3ee6 --- /dev/null +++ b/app/channels/sound_effect_channel.rb @@ -0,0 +1,10 @@ +class SoundEffectChannel < ApplicationCable::Channel + def subscribed + stream_from "sound_effect_channel" + end + + def unsubscribed + stop_all_streams + # Any cleanup needed when channel is unsubscribed + end +end \ No newline at end of file diff --git a/app/controllers/api/bill_controller.rb b/app/controllers/api/bill_controller.rb index d5eb77b1..b71d3460 100755 --- a/app/controllers/api/bill_controller.rb +++ b/app/controllers/api/bill_controller.rb @@ -14,10 +14,35 @@ class Api::BillController < Api::ApiController # for Multiple Cashier by Zone table = DiningFacility.find(booking.dining_facility_id) + bk_order = BookingOrder.find_by_booking_id(booking.booking_id) + order = Order.find(bk_order.order_id) + + cashier_zone = CashierTerminalByZone.find_by_zone_id(table.zone_id) + puts cashier_zone.to_json + puts "cashier_zone" + shift = ShiftSale.where("shift_started_at is not null and shift_closed_at is null and cashier_terminal_id = #{cashier_zone.cashier_terminal_id}").first + if !shift.nil? + cashier = Employee.find(shift.employee_id) + else + multiple_zone = CashierTerminalByZone.where('zone_id = #{cashier_zone.zone_id}') + puts cashier_zone.to_json + puts "cashier_zone" + multiple_zone.each do |zone| + shift = ShiftSale.where("shift_started_at is not null and shift_closed_at is null and cashier_terminal_id = #{zone.cashier_terminal_id}").first + puts shift.to_json + puts "shift" + if !shift.nil? then + cashier = Employee.find(shift.employee_id) + break + end + + end + end + if booking if booking.sale_id.nil? @sale = Sale.new - @status, @sale_id = @sale.generate_invoice_from_booking(params[:booking_id], current_login_employee, current_login_employee, "cashier") + @status, @sale_id = @sale.generate_invoice_from_booking(params[:booking_id], current_login_employee, cashier, order.source) @sale_data = Sale.find_by_sale_id(@sale_id) else @status = true @@ -41,8 +66,9 @@ class Api::BillController < Api::ApiController end elsif (params[:order_id]) + order = Order.find(params[:order_id]) @sale = Sale.new - @status, @sale_id = @sale.generate_invoice_from_order(params[:order_id], current_login_employee, get_cashier, "cashier") + @status, @sale_id = @sale.generate_invoice_from_order(params[:order_id], current_login_employee, get_cashier, order.source) # for Job booking = Booking.find_by_sale_id(@sale_id) diff --git a/app/controllers/api/sound_effect_controller.rb b/app/controllers/api/sound_effect_controller.rb new file mode 100644 index 00000000..e53e69b9 --- /dev/null +++ b/app/controllers/api/sound_effect_controller.rb @@ -0,0 +1,30 @@ +class Api::SoundEffectController < Api::ApiController + + #sound effect / alarm api for doemal side calling + def sound_effect + shop = Shop.find_by_id(1) + if !shop.nil? + shop_code = shop.shop_code + order_audio = DisplayImage.find_by_shop_id_and_name(shop.id, "order_audio") + if !order_audio.nil? + audio = order_audio.image + end + else + shop_code = nil + audio = nil + end + + if !shop_code.nil? && !audio.nil? + if ENV["SERVER_MODE"] == 'cloud' + from = request.subdomain + "." + request.domain + else + from = "" + end + ActionCable.server.broadcast "sound_effect_channel",data: {status: params[:status], message: params[:message]},shop_code: shop_code,from:from,audio:audio + else + render :json => { :status => true, :message => "Something wrongs!" } + end + end + #sound effect / alarm api for doemal side calling + +end diff --git a/app/controllers/crm/customers_controller.rb b/app/controllers/crm/customers_controller.rb index 70f5a617..a64d7af4 100644 --- a/app/controllers/crm/customers_controller.rb +++ b/app/controllers/crm/customers_controller.rb @@ -39,7 +39,9 @@ class Crm::CustomersController < BaseCrmController @membership_types = Lookup.collection_of("member_group_type") - @taxes = TaxProfile.where(:group_type => 'cashier') + # @taxes = TaxProfile.where(:group_type => 'cashier') + @taxes = TaxProfile.unscoped.select("id, (CONCAT(name,'(',(SELECT name FROM lookups WHERE lookup_type='tax_profiles' AND value=group_type),')')) as name") + .order("group_type ASC,order_by ASC") @filter = filter diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb index 7d87ea8f..0d155b9e 100755 --- a/app/controllers/home_controller.rb +++ b/app/controllers/home_controller.rb @@ -126,8 +126,11 @@ class HomeController < ApplicationController if !employee_sales.nil? employee_sales.each do |emp| emp_data = [] - emp_data.push([emp.e_name, emp.payment_amount]) - @employee_sales.push({'name' => emp.payment_method, 'data' => emp_data}) + if emp.payment_amount > 0 + emp_data.push([emp.e_name, emp.payment_amount]) + + @employee_sales.push({'name' => emp.payment_method, 'data' => emp_data}) + end end end @inventories = StockJournal.inventory_balances(today,@from,@to,@from_time,@to_time).sum(:balance) diff --git a/app/controllers/origami/customers_controller.rb b/app/controllers/origami/customers_controller.rb index 8e002532..0eee0400 100644 --- a/app/controllers/origami/customers_controller.rb +++ b/app/controllers/origami/customers_controller.rb @@ -87,7 +87,9 @@ class Origami::CustomersController < BaseOrigamiController @crm_customer = Customer.new @count_customer = Customer.count_customer - @taxes = TaxProfile.where(:group_type => 'cashier') + # @taxes = TaxProfile.where(:group_type => 'cashier') + @taxes = TaxProfile.unscoped.select("id, (CONCAT(name,'(',(SELECT name FROM lookups WHERE lookup_type='tax_profiles' AND value=group_type),')')) as name") + .order("group_type ASC,order_by ASC") # if flash["errors"] # @crm_customer.valid? # end diff --git a/app/controllers/origami/home_controller.rb b/app/controllers/origami/home_controller.rb index 46c7e236..44b3e1e3 100755 --- a/app/controllers/origami/home_controller.rb +++ b/app/controllers/origami/home_controller.rb @@ -130,6 +130,19 @@ class Origami::HomeController < BaseOrigamiController end end end + + #for changable on/off + @changable_tax = true + lookup_changable_tax = Lookup.collection_of('changable_tax') + if !lookup_changable_tax.empty? + lookup_changable_tax.each do |changable_tax| + if changable_tax[0].downcase == "change" + if changable_tax[1] == '0' + @changable_tax = false + end + end + end + end end def check_emp_access_code diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index 6447858b..4db5e225 100755 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -241,7 +241,7 @@ class Origami::PaymentsController < BaseOrigamiController sale_id = params[:sale_id] @cashier_type = params[:type] if path.include? ("credit_payment") - @sale_payment = SalePayment.get_credit_total_left(sale_id) + @sale_payment = SalePayment.get_credit_amount_due_left(sale_id) end @member_discount = MembershipSetting.find_by_discount(1) @@ -271,6 +271,20 @@ class Origami::PaymentsController < BaseOrigamiController if !@lookup_pdf.nil? @pdf_view = @lookup_pdf.value end + + #for changable on/off + @changable_tax = true + lookup_changable_tax = Lookup.collection_of('changable_tax') + if !lookup_changable_tax.empty? + lookup_changable_tax.each do |changable_tax| + if changable_tax[0].downcase == "change" + if changable_tax[1] == '0' + @changable_tax = false + end + end + end + end + @shop = shop_detail #show shop info @customer_lists = Customer.where("customer_id = 'CUS-000000000001' or customer_id = 'CUS-000000000002'") diff --git a/app/controllers/origami/rooms_controller.rb b/app/controllers/origami/rooms_controller.rb index c833c7dd..abdd8842 100755 --- a/app/controllers/origami/rooms_controller.rb +++ b/app/controllers/origami/rooms_controller.rb @@ -154,6 +154,19 @@ class Origami::RoomsController < BaseOrigamiController end end end + + #for changable on/off + @changable_tax = true + lookup_changable_tax = Lookup.collection_of('changable_tax') + if !lookup_changable_tax.empty? + lookup_changable_tax.each do |changable_tax| + if changable_tax[0].downcase == "change" + if changable_tax[1] == '0' + @changable_tax = false + end + end + end + end end end diff --git a/app/controllers/origami/sales_controller.rb b/app/controllers/origami/sales_controller.rb index 876a8ed3..b9cc40ec 100755 --- a/app/controllers/origami/sales_controller.rb +++ b/app/controllers/origami/sales_controller.rb @@ -25,6 +25,7 @@ class Origami::SalesController < BaseOrigamiController def add_to_existing_invoice dining = params[:dining_id] sale_id = params[:sale_id] + tax_type = params[:tax_type] table = DiningFacility.find(dining) existing_booking = Booking.find_by_sale_id(sale_id) table.bookings.each do |booking| @@ -51,7 +52,7 @@ class Origami::SalesController < BaseOrigamiController end # Re-compute for add - saleobj.compute(order.source) + saleobj.compute(order.source,tax_type) saleobj.save order.save booking.save diff --git a/app/controllers/settings/tax_profiles_controller.rb b/app/controllers/settings/tax_profiles_controller.rb index 75e4343e..7357e21d 100755 --- a/app/controllers/settings/tax_profiles_controller.rb +++ b/app/controllers/settings/tax_profiles_controller.rb @@ -76,9 +76,15 @@ class Settings::TaxProfilesController < ApplicationController # DELETE /settings/tax_profiles/1 # DELETE /settings/tax_profiles/1.json def destroy - @settings_tax_profile.destroy - flash[:notice] = 'Tax profile was successfully destroyed.' - render :json => {:status=> "Success", :url => settings_tax_profiles_url }.to_json + customers = Customer.where("tax_profiles LIKE '%#{@settings_tax_profile.id}%'") + if customers.nil? || customers.empty? + @settings_tax_profile.destroy + flash[:notice] = 'Tax profile was successfully destroyed.' + render :json => {:status=> "Success", :url => settings_tax_profiles_url }.to_json + else + flash[:error] = 'Tax profile could not destroy! This record is using in somewhere.' + render :json => {:status=> "Error", :url => settings_tax_profiles_url }.to_json + end # respond_to do |format| # format.html { redirect_to settings_tax_profiles_url, notice: 'Tax profile was successfully destroyed.' } # format.json { head :no_content } diff --git a/app/models/order_reservation.rb b/app/models/order_reservation.rb index a1450444..9fbc7e4d 100644 --- a/app/models/order_reservation.rb +++ b/app/models/order_reservation.rb @@ -70,6 +70,7 @@ class OrderReservation < ApplicationRecord order_reservation.discount_amount = order_reserve[:payment_info][:discount_amount] order_reservation.convenience_charge = order_reserve[:payment_info][:convenience_charge] order_reservation.grand_total = order_reserve[:payment_info][:grand_total] + order_reservation.transaction_fee = order_reserve[:payment_info][:transaction_fee] order_reservation.order_remark = order_reserve[:order_info][:order_remark] end if order_reserve[:reservation_info] diff --git a/app/models/sale.rb b/app/models/sale.rb index e504bb3d..26ed6e43 100644 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -83,10 +83,15 @@ class Sale < ApplicationRecord self.tax_type = "exclusive" # set cashier - open_cashier = Employee.where("role = 'cashier' AND token_session <> ''") - current_shift = ShiftSale.current_shift - shift = ShiftSale.current_open_shift(cashier.id) - + if order_source.downcase == "emenu" + table = DiningFacility.find(booking.dining_facility_id) + cashier_zone = CashierTerminalByZone.find_by_zone_id(table.zone_id) + shift = ShiftSale.where("shift_started_at is not null and shift_closed_at is null and cashier_terminal_id = #{cashier_zone.cashier_terminal_id}").first + else + open_cashier = Employee.where("role = 'cashier' AND token_session <> ''") + current_shift = ShiftSale.current_shift + shift = ShiftSale.current_open_shift(cashier.id) + end # set cashier if shift != nil self.cashier_id = cashier.id @@ -318,7 +323,7 @@ class Sale < ApplicationRecord end #compute - invoice total - def compute(order_source = nil) + def compute(order_source = nil, tax_type = nil) sales_items = self.sale_items #Computation Fields @@ -337,7 +342,7 @@ class Sale < ApplicationRecord # total_taxable = total_taxable + (item.taxable_price * item.qty) end - apply_tax(total_taxable, order_source) + apply_tax(total_taxable, order_source, tax_type) self.total_amount = subtotal_price self.total_discount = total_discount @@ -430,8 +435,21 @@ class Sale < ApplicationRecord total_tax_amount = 0 tax_incl_exec = "exclusive" #tax_profile - list by order_by - tax_profiles = TaxProfile.all.order("order_by asc") - customer = Customer.find(sale.customer_id) + # tax_profiles = TaxProfile.all.order("order_by asc") + # customer = Customer.find(sale.customer_id) + arr_tax = [] + arr_tax = unique_tax_profiles(order_source, self.customer_id) + + if !arr_tax.empty? + if tax_type.nil? + tax_profiles = TaxProfile.unscoped.where(:id => arr_tax) + else + tax_profiles = TaxProfile.unscoped.where("group_type=?",order_source) + end + else + tax_profiles = TaxProfile.unscoped.where("group_type=?",order_source) + end + # #Creat new tax records if order_source.to_s == "emenu" order_source = "cashier" @@ -501,7 +519,7 @@ class Sale < ApplicationRecord end # Tax Calculate - def apply_tax(total_taxable, order_source = nil) + def apply_tax(total_taxable, order_source = nil, tax_type = nil) shop = Shop.first #if tax is not apply create new record @@ -513,24 +531,37 @@ class Sale < ApplicationRecord total_tax_amount = 0 tax_incl_exec = "exclusive" #tax_profile - list by order_by - tax_profiles = TaxProfile.all.order("order_by asc") - - customer = Customer.find(self.customer_id) + # tax_profiles = TaxProfile.all.order("order_by asc") if order_source.to_s == "emenu" order_source = "cashier" end + # tax_data = TaxProfile.unscoped.where("group_type=?",order_source).pluck(:id) + # customer = Customer.find(self.customer_id).tax_profiles + + arr_tax = [] + arr_tax = unique_tax_profiles(order_source, self.customer_id) + + if !arr_tax.empty? + if tax_type.nil? + tax_profiles = TaxProfile.unscoped.where(:id => arr_tax) + else + tax_profiles = TaxProfile.unscoped.where("group_type=?",order_source) + end + else + tax_profiles = TaxProfile.unscoped.where("group_type=?",order_source) + end #Create new tax records tax_profiles.each do |tax| if tax.group_type.to_s == order_source.to_s - # customer.tax_profiles.each do |cus_tax| - # if cus_tax.to_i == tax.id + if tax_type + if tax_type.to_s == tax.name.to_s || tax_type == 'all' sale_tax = SaleTax.new(:sale => self) sale_tax.tax_name = tax.name sale_tax.tax_rate = tax.rate # substract , to give after discount - total_tax = total_taxable - self.total_discount + total_tax = total_taxable - total_discount #include or execulive if tax.inclusive tax_incl_exec = "inclusive" @@ -541,20 +572,47 @@ class Sale < ApplicationRecord sale_tax.tax_payable_amount = total_tax * tax.rate / 100 total_tax_amount = total_tax_amount + sale_tax.tax_payable_amount end - #new taxable amount is standard rule for step by step if shop.calc_tax_order total_taxable = total_taxable + sale_tax.tax_payable_amount end - sale_tax.inclusive = tax.inclusive sale_tax.save - # end - # end + end + else + # customer.tax_profiles.each do |cus_tax| + # if cus_tax.to_i == tax.id + sale_tax = SaleTax.new(:sale => self) + sale_tax.tax_name = tax.name + sale_tax.tax_rate = tax.rate + + # substract , to give after discount + total_tax = total_taxable - self.total_discount + #include or execulive + if tax.inclusive + tax_incl_exec = "inclusive" + rate = tax.rate + divided_value = (100 + rate)/rate + sale_tax.tax_payable_amount = total_tax / divided_value + else + sale_tax.tax_payable_amount = total_tax * tax.rate / 100 + total_tax_amount = total_tax_amount + sale_tax.tax_payable_amount + end + + #new taxable amount is standard rule for step by step + if shop.calc_tax_order + total_taxable = total_taxable + sale_tax.tax_payable_amount + end + + sale_tax.inclusive = tax.inclusive + sale_tax.save + # end + # end + end end end - self.tax_type = tax_incl_exec - self.total_tax = total_tax_amount + self.tax_type = tax_incl_exec + self.total_tax = total_tax_amount end def product_get_unit_price(item_code) @@ -726,12 +784,13 @@ class Sale < ApplicationRecord def self.daily_sales_list(from,to) - sub_query = "SELECT (CASE WHEN SUM(sale_payments.payment_amount) > 0 THEN SUM(sale_payments.payment_amount) ELSE 0 END) - FROM sale_payments - INNER JOIN sale_audits sa - ON SUBSTRING_INDEX(sa.remark,'||',1)=sale_payments.sale_payment_id - INNER JOIN sales ON sa.sale_id = sales.sale_id - WHERE sales.sale_status='completed' AND sales.receipt_date between '#{from}' and '#{to}'" + sub_query = "SELECT (CASE WHEN SUM(sale_payments.payment_amount) > 0 THEN + (SUM(sale_payments.payment_amount) + SUM(sale_payments.outstanding_amount)) ELSE 0 END) + FROM sale_payments + INNER JOIN sale_audits sa ON SUBSTRING_INDEX(sa.remark,'||',1)=sale_payments.sale_payment_id + INNER JOIN sales s ON s.sale_id=sa.sale_id + WHERE s.sale_status='completed' + AND DATE_FORMAT(CONVERT_TZ(s.receipt_date,'+00:00','+06:30'),'%Y-%m-%d') = DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%Y-%m-%d')" payments_total = Sale.select("CAST((CONVERT_TZ(sales.receipt_date,'+00:00','+06:30')) AS DATE) as sale_date, SUM(case when (sale_payments.payment_method='mpu') then sale_payments.payment_amount else 0 end) as mpu_amount, @@ -748,7 +807,7 @@ def self.daily_sales_list(from,to) (CASE WHEN (SUM(case when (sale_payments.payment_method='creditnote') then sale_payments.payment_amount else 0 end)) > 0 THEN (SUM(case when (sale_payments.payment_method='creditnote') then sale_payments.payment_amount else 0 end) - (#{sub_query})) ELSE 0 END) as credit_amount, SUM(case when (sale_payments.payment_method='giftvoucher') then sale_payments.payment_amount else 0 end) as giftvoucher_amount, SUM(case when (sale_payments.payment_method='foc') then sale_payments.payment_amount else 0 end) as foc_amount") - .joins(" left join sale_payments on sale_payments.sale_id = sales.sale_id") + .joins(" join sale_payments on sale_payments.sale_id = sales.sale_id") .where("sale_status = ? AND sales.receipt_date between ? and ? ", 'completed', from, to) .group("DATE_FORMAT((CONVERT_TZ(sales.receipt_date,'+00:00','+06:30')),'%Y-%m-%d')") @@ -1114,7 +1173,8 @@ def self.get_by_shift_sale_credit_payment(shift_sale_range,shift,from,to,filter) INNER JOIN sale_audits ON SUBSTRING_INDEX(sale_audits.remark,'||',1)=sale_payments.sale_payment_id WHERE sale_audits.sale_id = s.sale_id" - sub_query1 = "SELECT (CASE WHEN SUM(payment_amount) > 0 THEN SUM(payment_amount) ELSE 0 END) + sub_query1 = "SELECT (CASE WHEN SUM(payment_amount) > 0 THEN SUM(payment_amount) - + (SUM(payment_amount) - (SELECT SUM(payment_amount) FROM sale_payments WHERE payment_method='creditnote' AND sale_id=s.sale_id)) ELSE 0 END) FROM `sale_payments` INNER JOIN sale_audits ON SUBSTRING_INDEX(sale_audits.remark,'||',1)=sale_payments.sale_payment_id WHERE sale_audits.sale_id = s.sale_id" @@ -1499,7 +1559,7 @@ end else query = query.where('sale_status = "completed" and DATE_FORMAT(CONVERT_TZ(receipt_date,"+00:00","+06:30"),"%Y-%m-%d") between ? and ?',from,to) end - query = query.group("date_format(CONVERT_TZ(receipt_date,'+00:00', 'SYSTEM'), '%I %p')") + query = query.group("date_format(CONVERT_TZ(receipt_date,'+00:00', '+06:30'), '%I %p')") .order('receipt_date') else if current_user.role == 'administrator' || current_user.role == 'manager' || current_user.role == 'account' || current_user.role == 'supervisor' @@ -1509,7 +1569,7 @@ end else query = query.where('sale_status = "completed" and DATE_FORMAT(CONVERT_TZ(receipt_date,"+00:00","+06:30"),"%Y-%m-%d") between ? and ?',from,to) end - query = query.group("date_format(CONVERT_TZ(receipt_date,'+00:00', 'SYSTEM'), '%I %p')") + query = query.group("date_format(CONVERT_TZ(receipt_date,'+00:00', '+06:30'), '%I %p')") .order('receipt_date') else shift = ShiftSale.current_open_shift(current_user.id) @@ -1552,16 +1612,33 @@ end def self.employee_sales(today,current_user,from,to,from_time,to_time) #sub query for credit payment - sub_query = "SELECT (CASE WHEN SUM(sale_payments.payment_amount) > 0 THEN SUM(sale_payments.payment_amount) ELSE 0 END) AS payment_amount - FROM sale_payments - INNER JOIN sale_audits ON SUBSTRING_INDEX(sale_audits.remark,'||',1)=sale_payments.sale_payment_id - INNER JOIN sales ON sale_audits.sale_id = sales.sale_id - WHERE sales.sale_status='completed'" + outstanding_query = "SELECT CASE WHEN SUM(sale_payments.outstanding_amount) < 0 THEN SUM(sale_payments.outstanding_amount) ELSE 0 END + FROM sale_payments + JOIN sale_audits ON SUBSTRING_INDEX(sale_audits.remark,'||',1)=sale_payments.sale_payment_id + JOIN sales ON sale_audits.sale_id = sales.sale_id + WHERE sale_payments.outstanding_amount LIKE '%-%' AND sales.sale_status='completed'" + if !from.nil? && !to.nil? if !from_time.nil? && !to_time.nil? - sub_query += " AND DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%Y-%m-%d') between '#{from}' and '#{to}' and DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%H:%i') between '#{from_time}' and '#{to_time}'" + outstanding_query += " AND DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%Y-%m-%d') between '#{from}' and '#{to}' and DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%H:%i') between '#{from_time}' and '#{to_time}'" else - sub_query += " AND DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%Y-%m-%d') between '#{from}' and '#{to}'" + outstanding_query += " AND DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%Y-%m-%d') between '#{from}' and '#{to}'" + end + else + outstanding_query += " AND DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%Y-%m-%d') = '#{today}'" + end + + sub_query = "SELECT (CASE WHEN SUM(sale_payments.payment_amount) > 0 THEN SUM(sale_payments.payment_amount) + (#{outstanding_query}) ELSE 0 END) + FROM sale_payments + INNER JOIN sale_audits ON SUBSTRING_INDEX(sale_audits.remark,'||',1)=sale_payments.sale_payment_id + INNER JOIN sales ON sale_audits.sale_id = sales.sale_id + WHERE sales.sale_status='completed'" + + if !from.nil? && !to.nil? + if !from_time.nil? && !to_time.nil? + sub_query += " AND DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%Y-%m-%d') between '#{from}' AND '#{to}' AND DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%H:%i') between '#{from_time}' and '#{to_time}'" + else + sub_query += " AND DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%Y-%m-%d') between '#{from}' AND '#{to}'" end else sub_query += " AND DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%Y-%m-%d') = '#{today}'" @@ -1742,16 +1819,40 @@ end end def self.credit_payment(today,current_user=nil,from=nil,to=nil,from_time=nil,to_time=nil) - sub_query = SalePayment.select("(CASE WHEN SUM(sale_payments.payment_amount) > 0 THEN SUM(sale_payments.payment_amount) ELSE 0 END) as total_credit_payment") + outstanding_query = "SELECT CASE WHEN SUM(sale_payments.outstanding_amount) < 0 THEN SUM(sale_payments.outstanding_amount) ELSE 0 END + FROM sale_payments + JOIN sale_audits ON SUBSTRING_INDEX(sale_audits.remark,'||',1)=sale_payments.sale_payment_id + JOIN sales ON sale_audits.sale_id = sales.sale_id + WHERE sale_payments.outstanding_amount LIKE '%-%' AND sales.sale_status='completed'" + + if !from.nil? && !to.nil? + if !from_time.nil? && !to_time.nil? + outstanding_query += " AND DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%Y-%m-%d') between '#{from}' and '#{to}' and DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%H:%i') between '#{from_time}' and '#{to_time}'" + else + outstanding_query += " AND DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%Y-%m-%d') between '#{from}' and '#{to}'" + end + else + outstanding_query += " AND DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%Y-%m-%d') = '#{today}'" + end + + sub_query = SalePayment.select("(CASE WHEN SUM(sale_payments.payment_amount) > 0 THEN SUM(sale_payments.payment_amount) + (#{outstanding_query}) ELSE 0 END) as total_credit_payment") .joins(" JOIN sale_audits ON SUBSTRING_INDEX(sale_audits.remark,'||',1)=sale_payments.sale_payment_id") .joins(" JOIN sales ON sale_audits.sale_id = sales.sale_id") .where("sales.sale_status='completed'") + if !from.nil? && !to.nil? + if !from_time.nil? && !to_time.nil? + sub_query = sub_query.where("DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%Y-%m-%d') between '#{from}' AND '#{to}' AND DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%H:%i') between '#{from_time}' and '#{to_time}'") + else + sub_query = sub_query.where("DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%Y-%m-%d') between '#{from}' AND '#{to}'") + end + else + sub_query = sub_query.where("DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%Y-%m-%d') = '#{today}'") + end + if !from.nil? && !to.nil? if current_user.nil? if !from_time.nil? && !to_time.nil? - sub_query = sub_query.where("DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%Y-%m-%d') between '#{from}' AND '#{to}' AND DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%H:%i') between '#{from_time}' and '#{to_time}'") - query = SalePayment.where('s.sale_status = "completed" and payment_method="creditnote" and DATE_FORMAT(CONVERT_TZ(s.receipt_date,"+00:00","+06:30"),"%Y-%m-%d") between ? and ? and DATE_FORMAT(CONVERT_TZ(s.receipt_date,"+00:00","+06:30"),"%H:%i") between ? and ?',from,to,from_time,to_time) .joins("INNER JOIN sales s ON s.sale_id = sale_payments.sale_id") .sum("payment_amount") @@ -1759,7 +1860,6 @@ end query = query.to_f - (sub_query[0].total_credit_payment.to_f > 0 ? sub_query[0].total_credit_payment.to_f : 0) end else - sub_query = sub_query.where("DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%Y-%m-%d') between '#{from}' AND '#{to}'") query = SalePayment.where('s.sale_status = "completed" and payment_method="creditnote" and DATE_FORMAT(CONVERT_TZ(s.receipt_date,"+00:00","+06:30"),"%Y-%m-%d") between ? and ?',from,to) .joins("INNER JOIN sales s ON s.sale_id = sale_payments.sale_id") .sum("payment_amount") @@ -1770,8 +1870,6 @@ end else if current_user.role == 'administrator' || current_user.role == 'manager' || current_user.role == 'account' || current_user.role == 'supervisor' if !from_time.nil? && !to_time.nil? - sub_query = sub_query.where("DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%Y-%m-%d') between '#{from}' AND '#{to}' AND DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%H:%i') between '#{from_time}' and '#{to_time}'") - query = SalePayment.where('s.sale_status = "completed" and payment_method="creditnote" and DATE_FORMAT(CONVERT_TZ(s.receipt_date,"+00:00","+06:30"),"%Y-%m-%d") between ? and ? and DATE_FORMAT(CONVERT_TZ(s.receipt_date,"+00:00","+06:30"),"%H:%i") between ? and ?',from,to,from_time,to_time) .joins("INNER JOIN sales s ON s.sale_id = sale_payments.sale_id") .sum("payment_amount") @@ -1779,7 +1877,6 @@ end query = query.to_f - (sub_query[0].total_credit_payment.to_f > 0 ? sub_query[0].total_credit_payment.to_f : 0) end else - sub_query = sub_query.where("DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%Y-%m-%d') between '#{from}' AND '#{to}'") query = SalePayment.where('s.sale_status = "completed" and payment_method="creditnote" and DATE_FORMAT(CONVERT_TZ(s.receipt_date,"+00:00","+06:30"),"%Y-%m-%d") between ? and ?',from,to) .joins("INNER JOIN sales s ON s.sale_id = sale_payments.sale_id") .sum("payment_amount") @@ -1791,7 +1888,6 @@ end shift = ShiftSale.current_open_shift(current_user.id) if !shift.nil? if !from_time.nil? && !to_time.nil? - sub_query = sub_query.where("DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%Y-%m-%d') between '#{from}' AND '#{to}' AND DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%H:%i') between '#{from_time}' and '#{to_time}'") query = SalePayment.where('s.sale_status = "completed" and payment_method="creditnote" and DATE_FORMAT(CONVERT_TZ(s.receipt_date,"+00:00","+06:30"),"%Y-%m-%d") between ? and ? and DATE_FORMAT(CONVERT_TZ(s.receipt_date,"+00:00","+06:30"),"%H:%i") between ? and ? and s.shift_sale_id=?',from,to,from_time,to_time,shift.id) .joins("INNER JOIN sales s ON s.sale_id = sale_payments.sale_id") .sum("payment_amount") @@ -1799,7 +1895,6 @@ end query = query.to_f - (sub_query[0].total_credit_payment.to_f > 0 ? sub_query[0].total_credit_payment.to_f : 0) end else - sub_query = sub_query.where("DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%Y-%m-%d') between '#{from}' AND '#{to}'") query = SalePayment.where('s.sale_status = "completed" and payment_method="creditnote" and DATE_FORMAT(CONVERT_TZ(s.receipt_date,"+00:00","+06:30"),"%Y-%m-%d") between ? and ? and s.shift_sale_id=?',from,to,shift.id) .joins("INNER JOIN sales s ON s.sale_id = sale_payments.sale_id") .sum("payment_amount") @@ -1811,7 +1906,6 @@ end end end else - sub_query = sub_query.where("DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%Y-%m-%d') between '#{today}' AND '#{today}'") if current_user.nil? query = SalePayment.where('s.sale_status = "completed" and payment_method="creditnote" and DATE_FORMAT(CONVERT_TZ(s.receipt_date,"+00:00","+06:30"),"%Y-%m-%d") between ? and ?',today,today) .joins("INNER JOIN sales s ON s.sale_id = sale_payments.sale_id") @@ -1970,16 +2064,41 @@ end time_query = " and DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%H:%i') between '#{from_time}' and '#{to_time}'" end - sub_query = "SELECT (CASE WHEN SUM(sale_payments.payment_amount) > 0 THEN SUM(sale_payments.payment_amount) ELSE 0 END) + outstanding_query = "SELECT CASE WHEN SUM(sale_payments.outstanding_amount) < 0 THEN SUM(sale_payments.outstanding_amount) ELSE 0 END + FROM sale_payments + JOIN sale_audits ON SUBSTRING_INDEX(sale_audits.remark,'||',1)=sale_payments.sale_payment_id + JOIN sales ON sale_audits.sale_id = sales.sale_id + WHERE sale_payments.outstanding_amount LIKE '%-%' AND sales.sale_status='completed'" + + if !from.nil? && !to.nil? + if !from_time.nil? && !to_time.nil? + outstanding_query += " AND DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%Y-%m-%d') between '#{from}' and '#{to}' and DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%H:%i') between '#{from_time}' and '#{to_time}'" + else + outstanding_query += " AND DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%Y-%m-%d') between '#{from}' and '#{to}'" + end + else + outstanding_query += " AND DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%Y-%m-%d') = '#{today}'" + end + + sub_query = "SELECT (CASE WHEN SUM(sale_payments.payment_amount) > 0 THEN SUM(sale_payments.payment_amount) + (#{outstanding_query}) ELSE 0 END) FROM sale_payments INNER JOIN sale_audits ON SUBSTRING_INDEX(sale_audits.remark,'||',1)=sale_payments.sale_payment_id INNER JOIN sales ON sale_audits.sale_id = sales.sale_id WHERE sales.sale_status='completed'" + if !from.nil? && !to.nil? + if !from_time.nil? && !to_time.nil? + sub_query += " AND DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%Y-%m-%d') between '#{from}' AND '#{to}' AND DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%H:%i') between '#{from_time}' and '#{to_time}'" + else + sub_query += " AND DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%Y-%m-%d') between '#{from}' AND '#{to}'" + end + else + sub_query += " AND DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%Y-%m-%d') = '#{today}'" + end + if !from.nil? && !to.nil? if current_user.nil? if !from_time.nil? && !to_time.nil? - sub_query += " AND DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%Y-%m-%d') between '#{from}' and '#{to}' and DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%H:%i') between '#{from_time}' and '#{to_time}'" query = Sale.joins("JOIN sale_payments as sp ON sp.sale_id = sales.sale_id") if payment_method == 'card' query = query.where('sales.sale_status = "completed" and DATE_FORMAT(CONVERT_TZ(sales.receipt_date, "+00:00", "+06:30"),"%Y-%m-%d") between ? and ? and DATE_FORMAT(CONVERT_TZ(sales.receipt_date, "+00:00", "+06:30"),"%H:%i") between ? and ? and (sp.payment_method = "mpu" or sp.payment_method = "visa" or sp.payment_method = "master" or sp.payment_method = "jcb" or sp.payment_method = "unionpay" or sp.payment_method="alipay" or sp.payment_method="paymal" or sp.payment_method="dinga" or sp.payment_method="JunctionPay" or sp.payment_method = "giftvoucher")',from,to,from_time,to_time) @@ -1988,7 +2107,6 @@ end end query.select("(CASE WHEN sp.payment_method='cash' THEN (SUM(sp.payment_amount) - SUM(sales.amount_changed)) WHEN sp.payment_method='creditnote' THEN SUM(sp.payment_amount) - (#{sub_query}) ELSE SUM(sp.payment_amount) END) as payment_amount").first() else - sub_query += " AND DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%Y-%m-%d') between '#{from}' and '#{to}'" query = Sale.joins("JOIN sale_payments as sp ON sp.sale_id = sales.sale_id") if payment_method == 'card' query = query.where('sales.sale_status = "completed" and DATE_FORMAT(CONVERT_TZ(sales.receipt_date, "+00:00", "+06:30"),"%Y-%m-%d") between ? and ? and (sp.payment_method = "mpu" or sp.payment_method = "visa" or sp.payment_method = "master" or sp.payment_method = "jcb" or sp.payment_method = "unionpay" or sp.payment_method = "alipay" or sp.payment_method = "paymal" or sp.payment_method = "dinga" or sp.payment_method = "JunctionPay" or sp.payment_method = "giftvoucher")',from,to) @@ -2000,7 +2118,6 @@ end else if current_user.role == 'administrator' || current_user.role == 'manager' || current_user.role == 'account' || current_user.role == 'supervisor' if !from_time.nil? && !to_time.nil? - sub_query += " AND DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%Y-%m-%d') between '#{from}' and '#{to}' and DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%H:%i') between '#{from_time}' and '#{to_time}'" query = Sale.joins("JOIN sale_payments as sp ON sp.sale_id = sales.sale_id") if payment_method == 'card' query = query.where('sales.sale_status = "completed" and DATE_FORMAT(CONVERT_TZ(sales.receipt_date, "+00:00", "+06:30"),"%Y-%m-%d") between ? and ? and DATE_FORMAT(CONVERT_TZ(sales.receipt_date, "+00:00", "+06:30"),"%H:%i") between ? and ? and (sp.payment_method = "mpu" or sp.payment_method = "visa" or sp.payment_method = "master" or sp.payment_method = "jcb" or sp.payment_method = "unionpay" or sp.payment_method = "alipay" or sp.payment_method = "paymal" or sp.payment_method = "dinga" or sp.payment_method = "JunctionPay" or sp.payment_method = "giftvoucher")',from,to,from_time,to_time) @@ -2009,7 +2126,6 @@ end end query.select("(CASE WHEN sp.payment_method='cash' THEN (SUM(sp.payment_amount) - SUM(sales.amount_changed)) WHEN sp.payment_method='creditnote' THEN SUM(sp.payment_amount) - (#{sub_query}) ELSE SUM(sp.payment_amount) END) as payment_amount").first() else - sub_query += " AND DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%Y-%m-%d') between '#{from}' and '#{to}'" query = Sale.joins("JOIN sale_payments as sp ON sp.sale_id = sales.sale_id") if payment_method == 'card' query = query.where('sales.sale_status = "completed" and DATE_FORMAT(CONVERT_TZ(sales.receipt_date, "+00:00", "+06:30"),"%Y-%m-%d") between ? and ? and (sp.payment_method = "mpu" or sp.payment_method = "visa" or sp.payment_method = "master" or sp.payment_method = "jcb" or sp.payment_method = "unionpay" or sp.payment_method = "alipay" or sp.payment_method = "paymal" or sp.payment_method = "dinga" or sp.payment_method = "JunctionPay" or sp.payment_method = "giftvoucher")',from,to) @@ -2022,7 +2138,6 @@ end shift = ShiftSale.current_open_shift(current_user.id) if !shift.nil? if !from_time.nil? && !to_time.nil? - sub_query += " AND DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%Y-%m-%d') between '#{from}' and '#{to}' and DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%H:%i') between '#{from_time}' and '#{to_time}'" query = Sale.joins("JOIN sale_payments as sp ON sp.sale_id = sales.sale_id") if payment_method == 'card' query = query.where('sales.sale_status = "completed" and DATE_FORMAT(CONVERT_TZ(sales.receipt_date, "+00:00", "+06:30"),"%Y-%m-%d") between ? and ? and DATE_FORMAT(CONVERT_TZ(sales.receipt_date, "+00:00", "+06:30"),"%H:%i") between ? and ? and (sp.payment_method = "mpu" or sp.payment_method = "visa" or sp.payment_method = "master" or sp.payment_method = "jcb" or sp.payment_method = "unionpay" or sp.payment_method = "alipay" or sp.payment_method = "paymal" or sp.payment_method = "dinga" or sp.payment_method = "JunctionPay" or sp.payment_method = "giftvoucher") and sales.shift_sale_id=?',from,to,from_time,to_time,shift.id) @@ -2031,7 +2146,6 @@ end end query.select("(CASE WHEN sp.payment_method='cash' THEN (SUM(sp.payment_amount) - SUM(sales.amount_changed)) WHEN sp.payment_method='creditnote' THEN SUM(sp.payment_amount) - (#{sub_query}) ELSE SUM(sp.payment_amount) END) as payment_amount").first() else - sub_query += " AND DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%Y-%m-%d') between '#{from}' and '#{to}'" query = Sale.joins("JOIN sale_payments as sp ON sp.sale_id = sales.sale_id") if payment_method == 'card' query = query.where('sales.sale_status = "completed" and DATE_FORMAT(CONVERT_TZ(sales.receipt_date, "+00:00", "+06:30"),"%Y-%m-%d") between ? and ? and (sp.payment_method = "mpu" or sp.payment_method = "visa" or sp.payment_method = "master" or sp.payment_method = "jcb" or sp.payment_method = "unionpay" or sp.payment_method = "alipay" or sp.payment_method = "paymal" or sp.payment_method = "dinga" or sp.payment_method = "JunctionPay" or sp.payment_method = "giftvoucher") and sales.shift_sale_id=?',from,to,shift.id) @@ -2044,7 +2158,6 @@ end end end else - sub_query += " AND DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%Y-%m-%d') = '#{today}'" if current_user.nil? query = Sale.joins("JOIN sale_payments as sp ON sp.sale_id = sales.sale_id") if payment_method == 'card' @@ -2775,6 +2888,23 @@ def self.get_sale_data_for_other_payment_credit(sale_id) return query end +def unique_tax_profiles(order_source, customer_id) + tax_data = TaxProfile.unscoped.where("group_type='#{order_source}'").pluck(:id) + customer_tax_profiles = Customer.find(customer_id).tax_profiles + + arr_data = [] + if !customer_tax_profiles.empty? + customer_tax_profiles.each do |value1| + if tax_data.include? value1.to_i + arr_data.push(value1.to_i) + end + end + return arr_data + else + return tax_data + end +end + private def generate_custom_id diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb index 93395250..36f88638 100755 --- a/app/models/sale_payment.rb +++ b/app/models/sale_payment.rb @@ -16,12 +16,12 @@ class SalePayment < ApplicationRecord #get all payment for this invoices if payment_for invoice_sale_payments = SalePayment.get_sale_payment_for_credit(invoice) - amount_due = SalePayment.get_credit_total_left(self.sale_id)[0] ? SalePayment.get_credit_total_left(self.sale_id)[0].payment_amount.to_f : 0 + amount_due = SalePayment.get_credit_amount_due_left(self.sale_id)[0] ? SalePayment.get_credit_amount_due_left(self.sale_id)[0].payment_amount.to_f : 0 else invoice_sale_payments = invoice.sale_payments amount_due = invoice.grand_total end - + invoice_sale_payments.each do |payment| if (payment.payment_status == "paid" ) amount_due = amount_due - payment.payment_amount @@ -866,22 +866,31 @@ class SalePayment < ApplicationRecord .joins("INNER JOIN orders o ON o.order_id = so.order_id") if params[:type] == "cashier" - query = query.where("(CASE WHEN (s.grand_total + s.amount_changed)=(select SUM(payment_amount) FROM sale_payments WHERE sale_id=s.sale_id AND payment_method!='creditnote') THEN NULL ELSE payment_method='creditnote' END) and s.sale_status = 'completed' AND o.source='#{params[:type]}' OR o.source='emenu' #{receipt_no} #{customer}") + query = query.where("(CASE WHEN (s.grand_total + s.amount_changed)=(select SUM(payment_amount) FROM sale_payments WHERE sale_id=s.sale_id AND payment_method!='creditnote') THEN NULL ELSE payment_method='creditnote' AND o.source='#{params[:type]}' OR o.source='emenu' END) and s.sale_status = 'completed' #{receipt_no} #{customer}") else - query = query.where("(CASE WHEN (s.grand_total + s.amount_changed)=(select SUM(payment_amount) FROM sale_payments WHERE sale_id=s.sale_id AND payment_method!='creditnote') THEN NULL ELSE payment_method='creditnote' END) and s.sale_status = 'completed' AND o.source='#{params[:type]}' #{receipt_no} #{customer}") + query = query.where("(CASE WHEN (s.grand_total + s.amount_changed)=(select SUM(payment_amount) FROM sale_payments WHERE sale_id=s.sale_id AND payment_method!='creditnote') THEN NULL ELSE payment_method='creditnote' AND o.source='#{params[:type]}' END) and s.sale_status = 'completed' #{receipt_no} #{customer}") end query = query.group("s.receipt_no") .order("s.receipt_date ASC, s.receipt_no ASC") return query end - def self.get_credit_total_left(sale_id) + def self.get_credit_amount_due_left(sale_id) query = SalePayment.select("(SUM(sale_payments.payment_amount) - (CASE WHEN SUBSTRING_INDEX(sa.remark,'||',1)=sale_payments.sale_payment_id THEN SUM(sale_payments.payment_amount) ELSE 0 END)) as payment_amount") .joins(" LEFT JOIN sale_audits sa on SUBSTRING_INDEX(sa.remark,'||',1)=sale_payments.sale_payment_id") .where("sale_payments.payment_method = 'creditnote' AND sale_payments.sale_id = '#{sale_id}'") - .group("sale_payments.sale_id") + return query + end + + def self.get_credit_total_left(sale_id) + query = SalePayment.select("(SUM(sale_payments.payment_amount) - + (SELECT (CASE WHEN SUM(sale_payments.payment_amount) > 0 THEN SUM(sale_payments.payment_amount) ELSE 0 END) AS payment_amount + FROM sale_payments + INNER JOIN sale_audits ON SUBSTRING_INDEX(sale_audits.remark,'||',1)=sale_payments.sale_payment_id + WHERE sale_payments.sale_id = '#{sale_id}')) as payment_amount") + .where("sale_payments.payment_method = 'creditnote' AND sale_payments.sale_id = '#{sale_id}'") return query end diff --git a/app/views/home/show.html.erb b/app/views/home/show.html.erb index 4d1096c8..c8fc81a8 100755 --- a/app/views/home/show.html.erb +++ b/app/views/home/show.html.erb @@ -44,8 +44,8 @@ event.preventDefault(); var old_value = $("#login_form_password").val(); var value = $(this).data("value"); - console.log(old_value); - console.log(value); + // console.log(old_value); + // console.log(value); if (value == "CLR") { $("#login_form_password").val(""); } else if (value == "ENT") { diff --git a/app/views/origami/home/show.html.erb b/app/views/origami/home/show.html.erb index eed3d8ce..aef82ecf 100755 --- a/app/views/origami/home/show.html.erb +++ b/app/views/origami/home/show.html.erb @@ -370,7 +370,7 @@ <% else %> No Tax <% end %>
    - <%if !@webview %> + <%if !@webview && @changable_tax %> <% end %> @@ -1103,10 +1103,11 @@ var dining_id = "<%= @dining.id %>"; var sale_id = $("#sale_id").val(); //<%= @obj_sale.sale_id rescue "" %> var ajax_url = "/origami/sale/append_order"; + var tax_type = localStorage.getItem("tax_type"); $.ajax({ type: "POST", url: ajax_url, - data: 'dining_id=' + dining_id + "&sale_id=" + sale_id, + data: 'dining_id=' + dining_id + "&sale_id=" + sale_id + "&tax_type=" + tax_type, success: function (result) { swal({ title: "Information!", diff --git a/app/views/origami/payments/show.html.erb b/app/views/origami/payments/show.html.erb index 195719bd..245467f9 100755 --- a/app/views/origami/payments/show.html.erb +++ b/app/views/origami/payments/show.html.erb @@ -118,7 +118,7 @@ <% else %> No Tax <% end %>
    - <%if @sale_payment.nil? %> + <%if @sale_payment.nil? && @changable_tax %> <% end %> diff --git a/app/views/origami/rooms/show.html.erb b/app/views/origami/rooms/show.html.erb index 155e1e07..59546349 100755 --- a/app/views/origami/rooms/show.html.erb +++ b/app/views/origami/rooms/show.html.erb @@ -404,7 +404,7 @@ <% else %> No Tax <% end %>
    - <%if !@webview %> + <%if !@webview && @changable_tax %> <% end %> @@ -1167,10 +1167,11 @@ $('#add_invoice').on('click',function(){ var dining_id = "<%= @room.id %>" var sale_id = $("#sale_id").val(); //<%= @obj_sale.sale_id rescue "" %> var ajax_url = "/origami/sale/append_order"; + var tax_type = localStorage.getItem("tax_type"); $.ajax({ type: "POST", url: ajax_url, - data: 'dining_id='+ dining_id + "&sale_id=" + sale_id, + data: 'dining_id='+ dining_id + "&sale_id=" + sale_id + "&tax_type=" + tax_type, success:function(result){ swal({ title: "Information!", diff --git a/app/views/reports/order_reservation/index.html.erb b/app/views/reports/order_reservation/index.html.erb index b59dc3db..0ccaef5b 100755 --- a/app/views/reports/order_reservation/index.html.erb +++ b/app/views/reports/order_reservation/index.html.erb @@ -52,11 +52,12 @@ <%= t("views.right_panel.detail.discount_amount") %> <%= t("views.right_panel.detail.delivery_fee") %> <%= t("views.right_panel.detail.convenience_charge") %> - <%= t("views.right_panel.detail.delivery_tax") %> + <%= t("views.right_panel.detail.total") %> <%= t("views.right_panel.detail.tax") %> <%= t("views.right_panel.detail.grand_total") %> + <%= t("views.right_panel.detail.transaction_fee") %> @@ -88,6 +89,7 @@ total_tax = 0.0 total_amount = 0.0 grand_total = 0.0 + total_transaction_fee = 0.0 %> <% unless @order_reservation_data.blank? %> <% @order_reservation_data.each do |order_reservation| %> @@ -116,8 +118,9 @@ total_tax += order_reservation.total_tax.to_f total_amount += order_reservation.total_amount.to_f grand_total += order_reservation.grand_total.to_f - %> - <% + + total_transaction_fee += order_reservation.transaction_fee.to_f + if order_reservation.provider == 'pick_up' provider = "Pick-Up" elsif order_reservation.provider == 'direct_delivery' @@ -144,11 +147,12 @@ <%= number_with_precision(discount_amount , precision:precision.to_i, delimiter:delimiter) rescue '0.0'%> <%= number_with_precision(delivery_fee , precision:precision.to_i, delimiter:delimiter) rescue '0.0'%> <%= number_with_precision(convenience_charge , precision:precision.to_i, delimiter:delimiter) rescue '0.0'%> - <%= number_with_precision(delivery_tax , precision:precision.to_i, delimiter:delimiter) rescue '0.0'%> + <%= number_with_precision(order_reservation.total_tax , precision:precision.to_i, delimiter:delimiter) rescue '0.0'%> <%= number_with_precision(order_reservation.grand_total , precision:precision.to_i, delimiter:delimiter) rescue '0.0' %> + <%= number_with_precision(order_reservation.transaction_fee , precision:precision.to_i, delimiter:delimiter) rescue '0.0' %> <% end end %> @@ -159,11 +163,12 @@ <%= number_with_precision(total_discount_amount , precision:precision.to_i, delimiter:delimiter) rescue '0.0'%> <%= number_with_precision(total_delivery_fee , precision:precision.to_i, delimiter:delimiter) rescue '0.0'%> <%= number_with_precision(total_convenience_charge , precision:precision.to_i, delimiter:delimiter) rescue '0.0'%> - <%= number_with_precision(total_delivery_tax , precision:precision.to_i, delimiter:delimiter) rescue '0.0'%> + + <%= number_with_precision(total_tax , precision:precision.to_i, delimiter:delimiter) rescue '0.0'%> <%= number_with_precision(grand_total , precision:precision.to_i, delimiter:delimiter) rescue '0.0'%> + <%= number_with_precision(total_transaction_fee , precision:precision.to_i, delimiter:delimiter) rescue '0.0'%> diff --git a/app/views/reports/order_reservation/index.xls.erb b/app/views/reports/order_reservation/index.xls.erb index d5617225..08f2c5e9 100755 --- a/app/views/reports/order_reservation/index.xls.erb +++ b/app/views/reports/order_reservation/index.xls.erb @@ -35,11 +35,12 @@ <%= t("views.right_panel.detail.discount_amount") %> <%= t("views.right_panel.detail.delivery_fee") %> <%= t("views.right_panel.detail.convenience_charge") %> - <%= t("views.right_panel.detail.delivery_tax") %> + <%= t("views.right_panel.detail.total") %> <%= t("views.right_panel.detail.tax") %> <%= t("views.right_panel.detail.grand_total") %> + <%= t("views.right_panel.detail.transaction_fee") %> @@ -61,6 +62,7 @@ total_tax = 0.0 total_amount = 0.0 grand_total = 0.0 + transaction_fee = 0.0 %> <% unless @order_reservation_data.blank? %> <% @order_reservation_data.each do |order_reservation| %> @@ -91,6 +93,9 @@ total_amount += order_reservation.total_amount.to_f grand_total += order_reservation.grand_total.to_f %> + <% if order_reservation.transaction_fee && order_reservation.transaction_fee > 0 + transaction_fee += order_reservation.transaction_fee.to_f + end %> <% if order_reservation.provider == 'pick_up' provider = "Pick-Up" @@ -118,11 +123,12 @@ <%= discount_amount rescue '0.0'%> <%= delivery_fee rescue '0.0'%> <%= convenience_charge rescue '0.0'%> - <%= delivery_tax rescue '0.0'%> + <%= order_reservation.total_tax rescue '0.0'%> <%= order_reservation.grand_total rescue '0.0' %> + <%= order_reservation.transaction_fee rescue '0.0' %> <% end end %> @@ -133,11 +139,12 @@ <%= total_discount_amount rescue '0.0'%> <%= total_delivery_fee rescue '0.0'%> <%= total_convenience_charge rescue '0.0'%> - <%= total_delivery_tax rescue '0.0'%> + <%= total_tax rescue '0.0'%> <%= grand_total rescue '0.0'%> + <%= transaction_fee rescue '0.0'%> diff --git a/app/views/transactions/order_reservations/index.html.erb b/app/views/transactions/order_reservations/index.html.erb index 7709e402..3766f092 100644 --- a/app/views/transactions/order_reservations/index.html.erb +++ b/app/views/transactions/order_reservations/index.html.erb @@ -11,10 +11,10 @@
    - +
    - @@ -185,6 +189,13 @@ <% end %> + <% if total_transaction_fee > 0 %> + + + + + + <% end %>
    + <%= form_tag transactions_order_reservations_path, :method => :get do %>
    @@ -65,7 +65,7 @@
    - +
    @@ -81,11 +81,12 @@ - + + @@ -116,13 +117,15 @@ discount_amount = order_reservation.discount_amount delivery_fee = order_reservation.delivery_fee ? order_reservation.delivery_fee : 0.0 convenience_charge = order_reservation.convenience_charge - JSON.parse(order_reservation.taxes).each do |tax_data| - if tax_data[0] == "delivery_tax" - delivery_tax = tax_data[1] - elsif tax_data[0] == "convenience_tax" - convenience_tax = tax_data[1] - elsif tax_data[0] == "commercial_tax" - commercial_tax = tax_data[1] + if !JSON.parse(order_reservation.taxes).empty? + JSON.parse(order_reservation.taxes).each do |tax_data| + if tax_data[0] == "delivery_tax" + delivery_tax = tax_data[1] + elsif tax_data[0] == "convenience_tax" + convenience_tax = tax_data[1] + elsif tax_data[0] == "commercial_tax" + commercial_tax = tax_data[1] + end end end %> @@ -150,16 +153,17 @@ - + + <% end %> <% else %> - + <% end %>
    <%= t("views.right_panel.detail.discount_amount") %> <%= t("views.right_panel.detail.delivery_fee") %> <%= t("views.right_panel.detail.convenience_charge") %><%= t("views.right_panel.detail.delivery_tax") %> <%= t("views.right_panel.detail.total") %> <%= t("views.right_panel.detail.tax") %> <%= t("views.right_panel.detail.grand_total") %><%= t("views.right_panel.detail.transaction_fee") %>
    <%= number_with_precision(discount_amount , precision:precision.to_i, delimiter:delimiter) rescue '0.0'%> <%= number_with_precision(delivery_fee , precision:precision.to_i, delimiter:delimiter) rescue '0.0'%> <%= number_with_precision(convenience_charge , precision:precision.to_i, delimiter:delimiter) rescue '0.0'%><%= number_with_precision(delivery_tax , precision:precision.to_i, delimiter:delimiter) rescue '0.0'%> <%= number_with_precision(order_reservation.total_tax , precision:precision.to_i, delimiter:delimiter) rescue '0.0'%> <%= number_with_precision(order_reservation.grand_total , precision:precision.to_i, delimiter:delimiter) rescue '0.0' %><%= number_with_precision(order_reservation.transaction_fee , precision:precision.to_i, delimiter:delimiter) rescue '0.0' %>

    There is no data for search....

    There is no data for search....

    diff --git a/app/views/transactions/order_reservations/show.html.erb b/app/views/transactions/order_reservations/show.html.erb index ed6d2da8..a0c59af5 100755 --- a/app/views/transactions/order_reservations/show.html.erb +++ b/app/views/transactions/order_reservations/show.html.erb @@ -99,18 +99,21 @@ total_tax = 0.0 total_amount = 0.0 grand_total = 0.0 + total_transaction_fee = 0.0 %> <% discount_amount = @order_reservation.discount_amount delivery_fee = @order_reservation.delivery_fee ? @order_reservation.delivery_fee : 0.0 convenience_charge = @order_reservation.convenience_charge - JSON.parse(@order_reservation.taxes).each do |tax_data| - if tax_data[0] == "delivery_tax" - delivery_tax = tax_data[1] - elsif tax_data[0] == "convenience_tax" - convenience_tax = tax_data[1] - elsif tax_data[0] == "commercial_tax" - commercial_tax = tax_data[1] + if !JSON.parse(@order_reservation.taxes).empty? + JSON.parse(@order_reservation.taxes).each do |tax_data| + if tax_data[0] == "delivery_tax" + delivery_tax = tax_data[1] + elsif tax_data[0] == "convenience_tax" + convenience_tax = tax_data[1] + elsif tax_data[0] == "commercial_tax" + commercial_tax = tax_data[1] + end end end total_discount_amount += discount_amount.to_f @@ -122,6 +125,7 @@ total_tax += @order_reservation.total_tax.to_f total_amount += @order_reservation.total_amount.to_f grand_total += @order_reservation.grand_total.to_f + total_transaction_fee += @order_reservation.transaction_fee.to_f %>
    <%= number_with_precision(grand_total, precision:precision.to_i, delimiter:delimiter) rescue ' '%>
    <%= t("views.right_panel.detail.total") %> <%= t("views.right_panel.detail.transaction_fee") %><%= number_with_precision(total_transaction_fee, precision:precision.to_i, delimiter:delimiter) rescue ' '%>
    diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb index bd889f51..cede4a18 100755 --- a/config/initializers/assets.rb +++ b/config/initializers/assets.rb @@ -53,9 +53,7 @@ Rails.application.config.assets.precompile += %w( sx-sidebar.css ) Rails.application.config.assets.precompile += %w( inventory_definitions.css ) Rails.application.config.assets.precompile += %w( inventory.js ) -# --- Customer/ Customer - Crm ---- +# --- Order Reservation/ Order ---- Rails.application.config.assets.precompile += %w( order_reservation.css ) Rails.application.config.assets.precompile += %w( order_reservation.js ) - - diff --git a/config/locales/en.yml b/config/locales/en.yml index 038da651..3d99a17d 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -493,6 +493,7 @@ en: induty_report: "Induty Report" in_time: "In Time" out_time: "Out Time" + transaction_fee: "Transaction Fee" code_txt: "code " charge_txt: "charge" diff --git a/config/locales/mm.yml b/config/locales/mm.yml index e728f844..10e105d1 100644 --- a/config/locales/mm.yml +++ b/config/locales/mm.yml @@ -487,6 +487,7 @@ mm: induty_report: "Induty Report" in_time: "In Time" out_time: "Out Time" + transaction_fee: "Transaction Fee" code_txt: "ကုတ်ဒ် " charge_txt: "ကောက်ခံသည်" diff --git a/config/routes.rb b/config/routes.rb index f1d0da0b..4d4585eb 100755 --- a/config/routes.rb +++ b/config/routes.rb @@ -91,6 +91,8 @@ scope "(:locale)", locale: /en|mm/ do post "callback/:id" => "order_reservation#update_status" get "get_tax_profile" => "order_reservation#get_tax_profile" end + + post "sound_effect" => "sound_effect#sound_effect" end #--------- Cashier ------------# diff --git a/db/migrate/20170403161857_create_sale_items.rb b/db/migrate/20170403161857_create_sale_items.rb index 14882cbc..66a32f14 100755 --- a/db/migrate/20170403161857_create_sale_items.rb +++ b/db/migrate/20170403161857_create_sale_items.rb @@ -6,7 +6,7 @@ class CreateSaleItems < ActiveRecord::Migration[5.1] t.string :product_code, :null => false t.string :item_instance_code t.string :product_name, :null => false - t.string :product_alt_name, :null => false + t.string :product_alt_name t.integer :account_id, :index => true, :limit => 8, :null => false, :default => 1 t.string :status, :index => true t.string :remark, :index => true diff --git a/db/migrate/20180406080240_create_order_reservations.rb b/db/migrate/20180406080240_create_order_reservations.rb index a343958f..f5a46dd2 100644 --- a/db/migrate/20180406080240_create_order_reservations.rb +++ b/db/migrate/20180406080240_create_order_reservations.rb @@ -19,6 +19,7 @@ class CreateOrderReservations < ActiveRecord::Migration[5.1] t.decimal :discount_amount, :precision => 10, :scale => 2, :null => false, :default => 0.00 t.decimal :convenience_charge, :precision => 10, :scale => 2, :null => false, :default => 0.00 t.decimal :grand_total, :precision => 10, :scale => 2, :null => false, :default => 0.00 + t.decimal :transaction_fee, :precision => 10, :scale => 2, :null => false, :default => 0.00 t.string :status, :null => false, :default => "new" t.string :order_remark t.string :remark From e0d330ef496c63fb20d5b46cc6487ef17162d3e4 Mon Sep 17 00:00:00 2001 From: San Wai Lwin Date: Tue, 7 Aug 2018 13:50:18 +0630 Subject: [PATCH 10/11] Remove common function --- .../reports/card_sale_tran_controller.rb | 67 ------------------- .../reports/card_settle_tran_controller.rb | 67 ------------------- 2 files changed, 134 deletions(-) diff --git a/app/controllers/reports/card_sale_tran_controller.rb b/app/controllers/reports/card_sale_tran_controller.rb index f0e1053f..44caf53b 100644 --- a/app/controllers/reports/card_sale_tran_controller.rb +++ b/app/controllers/reports/card_sale_tran_controller.rb @@ -66,71 +66,4 @@ class Reports::CardSaleTranController < BaseReportController end - # date range - PERIOD = { - "today" => 0, - "yesterday" => 1, - "this_week" => 2, - "last_week" => 3, - "last_7" => 4, - "this_month" => 5, - "last_month" => 6, - "last_30" => 7, - "this_year" => 8, - "last_year" => 9 - } - - def get_date_range_from_params - period_type = params[:period_type] - period = params[:period] - from = params[:from] - to = params[:to] - day_ref = Time.now.utc.getlocal - if from.present? && to.present? - f_date = DateTime.parse(from) - t_date = DateTime.parse(to) - f_time = Time.mktime(f_date.year,f_date.month,f_date.day,f_date.hour,f_date.min,f_date.sec) - t_time = Time.mktime(t_date.year,t_date.month,t_date.day,t_date.hour,t_date.min,t_date.sec) - from = f_time.beginning_of_day.utc.getlocal - to = t_time.end_of_day.utc.getlocal - else - case period.to_i - when PERIOD["today"] - from = day_ref.beginning_of_day.utc - to = day_ref.end_of_day.utc - - when PERIOD["yesterday"] - from = (day_ref - 1.day).beginning_of_day.utc - to = (day_ref - 1.day).end_of_day.utc - - when PERIOD["this_week"] - from = Time.now.beginning_of_week.utc - to = Time.now.utc - when PERIOD["last_week"] - from = (day_ref - 7.day).beginning_of_week.utc - to = (day_ref - 7.day).end_of_week.utc - when PERIOD["last_7"] - from = (day_ref - 7.day).utc - to = Time.now.utc - when PERIOD["this_month"] - from = Time.now.beginning_of_month.utc - to = Time.now.utc - when PERIOD["last_month"] - from = (day_ref - 1.month).beginning_of_month.utc - to = (day_ref - 1.month).end_of_month.utc - when PERIOD["last_30"] - from = (day_ref - 30.day).utc - to = Time.now.utc - when PERIOD["this_year"] - from = Time.now.beginning_of_year.utc - to = Time.now.utc - when PERIOD["last_year"] - from = (day_ref - 1.year).beginning_of_year.utc - to = (day_ref - 1.year).end_of_year.utc - end - end - - return from, to - end - end diff --git a/app/controllers/reports/card_settle_tran_controller.rb b/app/controllers/reports/card_settle_tran_controller.rb index e775e578..1d71d4d8 100644 --- a/app/controllers/reports/card_settle_tran_controller.rb +++ b/app/controllers/reports/card_settle_tran_controller.rb @@ -65,71 +65,4 @@ class Reports::CardSettleTranController < BaseReportController end - # date range - PERIOD = { - "today" => 0, - "yesterday" => 1, - "this_week" => 2, - "last_week" => 3, - "last_7" => 4, - "this_month" => 5, - "last_month" => 6, - "last_30" => 7, - "this_year" => 8, - "last_year" => 9 - } - - def get_date_range_from_params - period_type = params[:period_type] - period = params[:period] - from = params[:from] - to = params[:to] - day_ref = Time.now.utc.getlocal - if from.present? && to.present? - f_date = DateTime.parse(from) - t_date = DateTime.parse(to) - f_time = Time.mktime(f_date.year,f_date.month,f_date.day,f_date.hour,f_date.min,f_date.sec) - t_time = Time.mktime(t_date.year,t_date.month,t_date.day,t_date.hour,t_date.min,t_date.sec) - from = f_time.beginning_of_day.utc.getlocal - to = t_time.end_of_day.utc.getlocal - else - case period.to_i - when PERIOD["today"] - from = day_ref.beginning_of_day.utc - to = day_ref.end_of_day.utc - - when PERIOD["yesterday"] - from = (day_ref - 1.day).beginning_of_day.utc - to = (day_ref - 1.day).end_of_day.utc - - when PERIOD["this_week"] - from = Time.now.beginning_of_week.utc - to = Time.now.utc - when PERIOD["last_week"] - from = (day_ref - 7.day).beginning_of_week.utc - to = (day_ref - 7.day).end_of_week.utc - when PERIOD["last_7"] - from = (day_ref - 7.day).utc - to = Time.now.utc - when PERIOD["this_month"] - from = Time.now.beginning_of_month.utc - to = Time.now.utc - when PERIOD["last_month"] - from = (day_ref - 1.month).beginning_of_month.utc - to = (day_ref - 1.month).end_of_month.utc - when PERIOD["last_30"] - from = (day_ref - 30.day).utc - to = Time.now.utc - when PERIOD["this_year"] - from = Time.now.beginning_of_year.utc - to = Time.now.utc - when PERIOD["last_year"] - from = (day_ref - 1.year).beginning_of_year.utc - to = (day_ref - 1.year).end_of_year.utc - end - end - - return from, to - end - end From e9b26f1684b3d454ebeba2a412bea0e07e825f30 Mon Sep 17 00:00:00 2001 From: San Wai Lwin Date: Tue, 7 Aug 2018 14:41:18 +0630 Subject: [PATCH 11/11] Edit in bill and request bill controller --- app/controllers/api/bill_controller.rb | 26 +++++++------- app/controllers/application_controller.rb | 30 ---------------- .../concerns/login_verification.rb | 34 ++++++++++++++++++- .../origami/request_bills_controller.rb | 9 +++-- 4 files changed, 50 insertions(+), 49 deletions(-) diff --git a/app/controllers/api/bill_controller.rb b/app/controllers/api/bill_controller.rb index 9ad9c5ee..d98e25e0 100755 --- a/app/controllers/api/bill_controller.rb +++ b/app/controllers/api/bill_controller.rb @@ -45,21 +45,21 @@ class Api::BillController < Api::ApiController @sale_id = booking.sale_id @sale_data = Sale.find_by_sale_id(@sale_id) end + + if ENV["SERVER_MODE"] != "cloud" #no print in cloud server + + unique_code = "CheckInOutPdf" + printer = PrintSetting.find_by_unique_code(unique_code) + + # print when complete click + order_queue_printer = Printer::OrderQueuePrinter.new(printer) + + if !printer.nil? + order_queue_printer.print_check_in_out(printer, booking, table) + end + end end - if ENV["SERVER_MODE"] != "cloud" #no print in cloud server - - printer = PrintSetting.find_by_unique_code("CheckInOutPdf") - unique_code = "CheckInOutPdf" - booking = Booking.find_by_booking_id(booking.booking_id) - - # print when complete click - order_queue_printer = Printer::OrderQueuePrinter.new(printer) - - if !printer.nil? - order_queue_printer.print_check_in_out(printer, booking, table) - end - end elsif (params[:order_id]) order = Order.find(params[:order_id]) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 4ad0c42a..13de03e6 100755 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -21,36 +21,6 @@ class ApplicationController < ActionController::Base def shop_detail @shop = Shop.first end - - def order_reservation - order_reserve = Lookup.collection_of('order_reservation') - status = false - if !order_reserve.empty? - order_reserve.each do |order| - if order[0] == 'OrderReservation' - if order[1] == '1' - status = true - end - end - end - end - return status - end - - def bank_integration - bank_integration = Lookup.collection_of('bank_integration') - status = false - if !bank_integration.empty? - bank_integration.each do |bank| - if bank[0] == 'Bank Integration' - if bank[1] == '1' - status = true - end - end - end - end - return status - end end diff --git a/app/controllers/concerns/login_verification.rb b/app/controllers/concerns/login_verification.rb index 590fdcbc..78864e34 100755 --- a/app/controllers/concerns/login_verification.rb +++ b/app/controllers/concerns/login_verification.rb @@ -3,7 +3,7 @@ module LoginVerification included do before_action :authenticate_session_token - helper_method :current_company, :current_login_employee, :current_user, :get_cashier + helper_method :current_company, :current_login_employee, :current_user, :get_cashier, :order_reservation, :bank_integration end #this is base api base controller to need to inherit. @@ -30,6 +30,38 @@ module LoginVerification @cashier = Employee.where("role = 'cashier' AND token_session <> ''") end + #check order reservation used + def order_reservation + order_reserve = Lookup.collection_of('order_reservation') + status = false + if !order_reserve.empty? + order_reserve.each do |order| + if order[0] == 'OrderReservation' + if order[1] == '1' + status = true + end + end + end + end + return status + end + + #check bank integration used + def bank_integration + bank_integration = Lookup.collection_of('bank_integration') + status = false + if !bank_integration.empty? + bank_integration.each do |bank| + if bank[0] == 'Bank Integration' + if bank[1] == '1' + status = true + end + end + end + end + return status + end + protected # Authenticate the user with token based authentication def authenticate diff --git a/app/controllers/origami/request_bills_controller.rb b/app/controllers/origami/request_bills_controller.rb index 961fc855..8cf0b07b 100755 --- a/app/controllers/origami/request_bills_controller.rb +++ b/app/controllers/origami/request_bills_controller.rb @@ -69,16 +69,15 @@ class Origami::RequestBillsController < ApplicationController else if ENV["SERVER_MODE"] != "cloud" #no print in cloud server - - printer = PrintSetting.find_by_unique_code("CheckInOutPdf") - unique_code = "CheckInOutPdf" - booking = Booking.find_by_booking_id(bk_order.booking_id) + + unique_code = "CheckInOutPdf" + printer = PrintSetting.find_by_unique_code(unique_code) # print when complete click order_queue_printer = Printer::OrderQueuePrinter.new(printer) if !printer.nil? - order_queue_printer.print_check_in_out(printer, booking, table) + order_queue_printer.print_check_in_out(printer, check_booking, table) end end end