From dd3544bdff9ae0dbb9a4bf7b98684d08339a2c15 Mon Sep 17 00:00:00 2001 From: Aung Myo Date: Mon, 9 Apr 2018 09:40:58 +0630 Subject: [PATCH 01/31] fixed conflix readme --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index bbbd539a..ad112488 100755 --- a/README.md +++ b/README.md @@ -158,7 +158,6 @@ For CloseCashierCustomisePdf in lookups 1) settings/print_settings 2) settings/lookups => { type:print_settings, name: CloseCashierCustomisePdf, value:1 } -<<<<<<< HEAD <---- Extra Fields Script -----> For MoveTablePdf in lookups *** Both Table and Room Moving *** @@ -170,13 +169,12 @@ For MoveTablePdf in print settings ii) Unique Code: MoveTablePdf iii)Template: ... iv) Font: Zawgyi-One v) Printer: #printer name -======= + /* Tax Profile Group Types in lookups */ 1) settings/lookups => { type:tax_profiles, name: Cashier, value:cashier } 2) settings/lookups => { type:tax_profiles, name: Quick Service, value: quick_service } 3) settings/lookups => { type:tax_profiles, name: Doemal, value: doemal } /* Tax Profile Group Types in lookups */ ->>>>>>> 1c13b0469758fb968c0dfcc1f0a876ed2c5e395a Add Kitchen Role of Employee => 1) settings/lookups => { type:employee_roles, name: Kitchen, value:kitchen } From 83aeb2eb90dcb48ceb5b7f6d7abc70a1ff1a0224 Mon Sep 17 00:00:00 2001 From: Aung Myo Date: Mon, 9 Apr 2018 10:53:16 +0630 Subject: [PATCH 02/31] update api authenticate --- app/controllers/api/bookings_controller.rb | 2 +- app/controllers/api/check_in_process_controller.rb | 2 +- app/controllers/api/orders_controller.rb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/controllers/api/bookings_controller.rb b/app/controllers/api/bookings_controller.rb index 24973d63..797583f0 100755 --- a/app/controllers/api/bookings_controller.rb +++ b/app/controllers/api/bookings_controller.rb @@ -1,5 +1,5 @@ class Api::BookingsController < Api::ApiController - skip_before_action :authenticate + # skip_before_action :authenticate #Show customer by ID def index @customer = Customer.find_by(params[:id]) diff --git a/app/controllers/api/check_in_process_controller.rb b/app/controllers/api/check_in_process_controller.rb index 6f32c613..3d375eee 100644 --- a/app/controllers/api/check_in_process_controller.rb +++ b/app/controllers/api/check_in_process_controller.rb @@ -1,5 +1,5 @@ class Api::CheckInProcessController < Api::ApiController - + # before_action :authenticate def check_in_time if params[:dining_id] dining_facility = DiningFacility.find(params[:dining_id]) diff --git a/app/controllers/api/orders_controller.rb b/app/controllers/api/orders_controller.rb index 383a6606..d937c6c3 100755 --- a/app/controllers/api/orders_controller.rb +++ b/app/controllers/api/orders_controller.rb @@ -1,5 +1,5 @@ class Api::OrdersController < Api::ApiController - skip_before_action :authenticate + # skip_before_action :authenticate #Description # This API show current order details # Input Params - order_id From 66df760323c56c4b60408438595a2c6655fc0cb1 Mon Sep 17 00:00:00 2001 From: Aung Myo Date: Mon, 9 Apr 2018 11:51:39 +0630 Subject: [PATCH 03/31] update order & reservation --- .../origami/order_reservation_controller.rb | 12 ++++ app/views/origami/dashboard/index.html.erb | 15 ++++- .../origami/order_reservation/index.html.erb | 61 +++++++++++++++++++ config/locales/en.yml | 1 + config/locales/mm.yml | 1 + config/routes.rb | 2 + 6 files changed, 90 insertions(+), 2 deletions(-) create mode 100644 app/controllers/origami/order_reservation_controller.rb create mode 100644 app/views/origami/order_reservation/index.html.erb diff --git a/app/controllers/origami/order_reservation_controller.rb b/app/controllers/origami/order_reservation_controller.rb new file mode 100644 index 00000000..db56d882 --- /dev/null +++ b/app/controllers/origami/order_reservation_controller.rb @@ -0,0 +1,12 @@ +class Origami::OrderReservationController < BaseOrigamiController + + def index + @webview = check_mobile + @shop = Shop::ShopDetail + + end + + + + +end diff --git a/app/views/origami/dashboard/index.html.erb b/app/views/origami/dashboard/index.html.erb index 68b09437..1b6a554e 100644 --- a/app/views/origami/dashboard/index.html.erb +++ b/app/views/origami/dashboard/index.html.erb @@ -34,6 +34,14 @@
<%= t :dine_in_cashier %>
+
+
+
+ arrow_forward +
+
<%= t :order_reservation %>
+
+
<% if !@current_user.nil? && @current_user.role != 'waiter' %> @@ -199,8 +207,11 @@ $(".qs_view").on('click', function() { document.getElementById('second_view').click(); - window.location.href = '/origami/quick_service'; - + window.location.href = '/origami/quick_service'; + }); + + $(".order_reservation").on('click', function() { + window.location.href = '/origami/order_reservation'; }); $("#second_view").on('click', function () { diff --git a/app/views/origami/order_reservation/index.html.erb b/app/views/origami/order_reservation/index.html.erb new file mode 100644 index 00000000..e1e7c57e --- /dev/null +++ b/app/views/origami/order_reservation/index.html.erb @@ -0,0 +1,61 @@ +
+
+
+ +
+
+
+ <% @complete.each do |sale| %> +
+
+ <%= sale.receipt_no %> + <%= sale.sale_status %> +
+
+ <% end %> +
+
+ + +
+
+ <% @orders.each do |order| %> +
+
+ <%= order.order_id %> +
+
+ <% end %> +
+
+ +
+ +
+
+
+
+
+ + diff --git a/config/locales/en.yml b/config/locales/en.yml index 0e787751..e73771e5 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -74,6 +74,7 @@ en: date_time: "DateTime" dine_in_cashier: "Dine-in Cashier" quick_service: "Quick Service" + order_reservation: "Order & Reservation" views: btn: diff --git a/config/locales/mm.yml b/config/locales/mm.yml index 406bcaf4..8a7b424a 100644 --- a/config/locales/mm.yml +++ b/config/locales/mm.yml @@ -69,6 +69,7 @@ mm: date_time: "ရက်စွဲအချိန်" dine_in_cashier: "Dine-in Cashier" quick_service: "Quick Service" + order_reservation: "Order & Reservation" views: btn: diff --git a/config/routes.rb b/config/routes.rb index 2c25db97..148af0ba 100755 --- a/config/routes.rb +++ b/config/routes.rb @@ -257,6 +257,8 @@ scope "(:locale)", locale: /en|mm/ do post '/customer_view' => "second_display#customer_view",:as => "customer_view", :defaults => { :format => 'json' } + #order and reservation + resources :order_reservation end #--------- Waiter/Ordering Station ------------# From 46a20dc0069ba4dae80cf6a9d970aca166d7fa7d Mon Sep 17 00:00:00 2001 From: Aung Myo Date: Mon, 9 Apr 2018 13:19:47 +0630 Subject: [PATCH 04/31] update order & reservation --- .../origami/order_reservation/index.html.erb | 66 ++++++++++--------- 1 file changed, 35 insertions(+), 31 deletions(-) diff --git a/app/views/origami/order_reservation/index.html.erb b/app/views/origami/order_reservation/index.html.erb index e1e7c57e..22052479 100644 --- a/app/views/origami/order_reservation/index.html.erb +++ b/app/views/origami/order_reservation/index.html.erb @@ -1,6 +1,6 @@
-
+
-
-
-
- <% @complete.each do |sale| %> -
-
- <%= sale.receipt_no %> - <%= sale.sale_status %> -
-
- <% end %> -
+ +
+
+
+
rrrrr
+
+ RRRRRR + SSSSSSSSSSS +
+
-
- <% @orders.each do |order| %> -
-
- <%= order.order_id %> -
-
- <% end %> +
+
+
+ oOOOOOOOOOOOOO +
+
- -
-
+ +
+
+
+
+ +
+
+
+ +
+
+
+
+ +
+
From 308ecf949170f7307bca16f646be4a0233eaaa44 Mon Sep 17 00:00:00 2001 From: Aung Myo Date: Mon, 9 Apr 2018 13:49:42 +0630 Subject: [PATCH 05/31] update ordersummarysetPdf and slim for print setting to printer_setting --- app/pdf/order_summary_set_pdf.rb | 4 ++-- app/pdf/order_summary_slim_pdf.rb | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/pdf/order_summary_set_pdf.rb b/app/pdf/order_summary_set_pdf.rb index b9723a5c..316bbe44 100755 --- a/app/pdf/order_summary_set_pdf.rb +++ b/app/pdf/order_summary_set_pdf.rb @@ -4,8 +4,8 @@ class OrderSummarySetPdf < Prawn::Document def initialize(print_settings,order, print_status, order_items = nil,alt_name,before_updated_qty) self.page_width = print_settings.page_width self.page_height = print_settings.page_height - self.header_font_size = printer_settings.header_font_size.to_i - self.item_font_size = printer_settings.item_font_size.to_i + self.header_font_size = print_settings.header_font_size.to_i + self.item_font_size = print_settings.item_font_size.to_i self.margin = 0 self.price_width = 40 # No Need for item self.qty_width = 40 diff --git a/app/pdf/order_summary_slim_pdf.rb b/app/pdf/order_summary_slim_pdf.rb index 77aafc60..1e93fc0d 100755 --- a/app/pdf/order_summary_slim_pdf.rb +++ b/app/pdf/order_summary_slim_pdf.rb @@ -4,8 +4,8 @@ class OrderSummarySlimPdf < Prawn::Document def initialize(print_settings,order, print_status, order_items = nil,alt_name,before_updated_qty) self.page_width = print_settings.page_width self.page_height = print_settings.page_height - self.header_font_size = printer_settings.header_font_size.to_i - self.item_font_size = printer_settings.item_font_size.to_i + self.header_font_size = print_settings.header_font_size.to_i + self.item_font_size = print_settings.item_font_size.to_i self.margin = 0 self.price_width = 40 # No Need for item self.qty_width = 40 From f6ba7403c57154803d314c6216614a8937966d66 Mon Sep 17 00:00:00 2001 From: phyusin Date: Mon, 9 Apr 2018 13:55:54 +0630 Subject: [PATCH 06/31] add customer api for order reservation --- .../api/order_reservation_controller.rb | 34 +++++++++++++++++++ config/routes.rb | 5 ++- 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 app/controllers/api/order_reservation_controller.rb diff --git a/app/controllers/api/order_reservation_controller.rb b/app/controllers/api/order_reservation_controller.rb new file mode 100644 index 00000000..97c07669 --- /dev/null +++ b/app/controllers/api/order_reservation_controller.rb @@ -0,0 +1,34 @@ +class Api::OrderReservationController < Api::ApiController + skip_before_action :authenticate + + def check_customer + customer_name = params[:name] + customer_email = params[:email] + customer_contact_no = params[:contact_no] + customer_gender = params[:gender] + customer_addr = params[:address] + customer_membership_id = params[:membership_id] + customer_membership_type = params[:membership_type] + customer_date_of_birth = params[:date_of_birth] + customer_id = 0 + + check_customer = Customer.find_by_email_and_contact_no_and_membership_id_and_membership_type(customer_email,customer_contact_no,customer_membership_id,customer_membership_type) + if !check_customer.nil? + customer_id = check_customer.customer_id + else + customer = Customer.new + customer.name = customer_name + customer.email = customer_email + customer.contact_no = customer_contact_no + customer.gender = customer_gender + customer.address = customer_addr + customer.date_of_birth = Time.parse(customer_date_of_birth).strftime("%Y-%m-%d") + customer.membership_id = customer_membership_id + customer.membership_type = customer_membership_type + customer.save! + customer_id = customer.id + end + + render :json => { :status => true, :data => { customer_id : customer_id} } + end +end diff --git a/config/routes.rb b/config/routes.rb index 365d5a79..7c224dfa 100755 --- a/config/routes.rb +++ b/config/routes.rb @@ -82,7 +82,10 @@ scope "(:locale)", locale: /en|mm/ do post "survey/:id" => "survey#create" end - + #order and reservation api + namespace :order_reservation do + post "customer" => "order_reservation#check_customer" + end end #--------- Cashier ------------# From c2ea0e25158a7f46cdf9a293b9947d641a8ddc86 Mon Sep 17 00:00:00 2001 From: Yan Date: Mon, 9 Apr 2018 15:51:23 +0630 Subject: [PATCH 07/31] remove validate brand name and check jade mobile --- app/models/print_setting.rb | 2 +- app/views/origami/home/index.html.erb | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/app/models/print_setting.rb b/app/models/print_setting.rb index 0760b59f..9b883726 100755 --- a/app/models/print_setting.rb +++ b/app/models/print_setting.rb @@ -1,6 +1,6 @@ class PrintSetting < ApplicationRecord # validations - validates_presence_of :name, :unique_code, :printer_name, :brand_name, :api_settings, :page_width, :page_height, :print_copies, :header_font_size, :item_font_size + validates_presence_of :name, :unique_code, :printer_name, :api_settings, :page_width, :page_height, :print_copies, :header_font_size, :item_font_size def self.get_precision_delimiter PrintSetting.find_by_unique_code("ReceiptBillPdf") diff --git a/app/views/origami/home/index.html.erb b/app/views/origami/home/index.html.erb index 5e280697..8c67a36d 100755 --- a/app/views/origami/home/index.html.erb +++ b/app/views/origami/home/index.html.erb @@ -140,9 +140,7 @@ + \ No newline at end of file From 4bc56a31b80c47a2835c40feb8044e70418395f6 Mon Sep 17 00:00:00 2001 From: phyusin Date: Mon, 9 Apr 2018 16:23:16 +0630 Subject: [PATCH 09/31] check time --- .../api/check_in_process_controller.rb | 2 +- .../order_reservation_controller.rb | 15 ++++++++------- app/models/customer.rb | 4 ++-- .../api/order_reservation/index.json.jbuilder | 0 4 files changed, 11 insertions(+), 10 deletions(-) rename app/controllers/api/{ => order_reservation}/order_reservation_controller.rb (70%) create mode 100644 app/views/api/order_reservation/index.json.jbuilder diff --git a/app/controllers/api/check_in_process_controller.rb b/app/controllers/api/check_in_process_controller.rb index 3d375eee..4bd9434d 100644 --- a/app/controllers/api/check_in_process_controller.rb +++ b/app/controllers/api/check_in_process_controller.rb @@ -49,7 +49,7 @@ class Api::CheckInProcessController < Api::ApiController arr_time = checkout_time[0].split("-") start_time = Time.parse(arr_time[0].strip).utc.getlocal.strftime("%H:%M%p") end_time = Time.parse(arr_time[1].strip).utc.getlocal.strftime("%H:%M%p") - if start_time <= checkout_at.strftime("%H:%M%p") && checkout_at.strftime("%H:%M%p") <= end_time + if start_time <= today.strftime("%H:%M%p") && today.strftime("%H:%M%p") <= end_time checkout_at = checkout_at + (checkout_time[1]).to_i.minutes end end diff --git a/app/controllers/api/order_reservation_controller.rb b/app/controllers/api/order_reservation/order_reservation_controller.rb similarity index 70% rename from app/controllers/api/order_reservation_controller.rb rename to app/controllers/api/order_reservation/order_reservation_controller.rb index 97c07669..aa01ec39 100644 --- a/app/controllers/api/order_reservation_controller.rb +++ b/app/controllers/api/order_reservation/order_reservation_controller.rb @@ -1,5 +1,5 @@ -class Api::OrderReservationController < Api::ApiController - skip_before_action :authenticate +class Api::OrderReservation::OrderReservationController < Api::ApiController + # skip_before_action :authenticate def check_customer customer_name = params[:name] @@ -8,11 +8,10 @@ class Api::OrderReservationController < Api::ApiController customer_gender = params[:gender] customer_addr = params[:address] customer_membership_id = params[:membership_id] - customer_membership_type = params[:membership_type] customer_date_of_birth = params[:date_of_birth] customer_id = 0 - check_customer = Customer.find_by_email_and_contact_no_and_membership_id_and_membership_type(customer_email,customer_contact_no,customer_membership_id,customer_membership_type) + check_customer = Customer.find_by_email_and_contact_no_and_membership_id(customer_email,customer_contact_no,customer_membership_id) if !check_customer.nil? customer_id = check_customer.customer_id else @@ -24,11 +23,13 @@ class Api::OrderReservationController < Api::ApiController customer.address = customer_addr customer.date_of_birth = Time.parse(customer_date_of_birth).strftime("%Y-%m-%d") customer.membership_id = customer_membership_id - customer.membership_type = customer_membership_type - customer.save! + customer.customer_type = "Doemal" + customer.tax_profiles = ["2"] + customer.save + customer_id = customer.id end - render :json => { :status => true, :data => { customer_id : customer_id} } + render :json => { :status => true, :data => { :customer_id => customer_id} } end end diff --git a/app/models/customer.rb b/app/models/customer.rb index 934d371f..b05caaf6 100755 --- a/app/models/customer.rb +++ b/app/models/customer.rb @@ -9,10 +9,10 @@ class Customer < ApplicationRecord has_many :orders has_many :sales - validates_presence_of :name, :contact_no, :email,:card_no + validates_presence_of :name, :contact_no, :email #,:card_no validates :contact_no, uniqueness: true, numericality: true validates :email, uniqueness: true,format: { with: /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i, on: :create } - validates :card_no, uniqueness: true + # validates :card_no, uniqueness: true # validates :paypar_account_no, uniqueness: true paginates_per 50 diff --git a/app/views/api/order_reservation/index.json.jbuilder b/app/views/api/order_reservation/index.json.jbuilder new file mode 100644 index 00000000..e69de29b From 57be26be77aa555550a0c90b4b66cc8d0694dfe5 Mon Sep 17 00:00:00 2001 From: phyusin Date: Mon, 9 Apr 2018 16:59:59 +0630 Subject: [PATCH 10/31] check customer --- .../order_reservation_controller.rb | 22 ++----------------- app/models/customer.rb | 17 ++++++++++++++ 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/app/controllers/api/order_reservation/order_reservation_controller.rb b/app/controllers/api/order_reservation/order_reservation_controller.rb index aa01ec39..43b9c597 100644 --- a/app/controllers/api/order_reservation/order_reservation_controller.rb +++ b/app/controllers/api/order_reservation/order_reservation_controller.rb @@ -2,31 +2,13 @@ class Api::OrderReservation::OrderReservationController < Api::ApiController # skip_before_action :authenticate def check_customer - customer_name = params[:name] - customer_email = params[:email] - customer_contact_no = params[:contact_no] - customer_gender = params[:gender] - customer_addr = params[:address] - customer_membership_id = params[:membership_id] - customer_date_of_birth = params[:date_of_birth] customer_id = 0 - check_customer = Customer.find_by_email_and_contact_no_and_membership_id(customer_email,customer_contact_no,customer_membership_id) + check_customer = Customer.find_by_email_and_contact_no_and_membership_id(params[:email],params[:contact_no],params[:membership_id]) if !check_customer.nil? customer_id = check_customer.customer_id else - customer = Customer.new - customer.name = customer_name - customer.email = customer_email - customer.contact_no = customer_contact_no - customer.gender = customer_gender - customer.address = customer_addr - customer.date_of_birth = Time.parse(customer_date_of_birth).strftime("%Y-%m-%d") - customer.membership_id = customer_membership_id - customer.customer_type = "Doemal" - customer.tax_profiles = ["2"] - customer.save - + customer = Customer.addCustomer(params) customer_id = customer.id end diff --git a/app/models/customer.rb b/app/models/customer.rb index b05caaf6..2ece4330 100755 --- a/app/models/customer.rb +++ b/app/models/customer.rb @@ -352,6 +352,23 @@ class Customer < ApplicationRecord end + #new customer for doemal + def self.addCustomer(params) + customer = Customer.new + customer.name = params[:name] + customer.email = params[:email] + customer.contact_no = params[:contact_no] + customer.gender = params[:gender] + customer.address = params[:address] + customer.date_of_birth = Time.parse(params[:date_of_birth]).strftime("%Y-%m-%d") + customer.membership_id = params[:membership_id] + customer.customer_type = "Takeaway" + customer.tax_profiles = ["2"] + customer.save + + return customer + end + WALKIN = "CUS-000000000001" TAKEAWAY = "CUS-000000000002" From 4810628930fdc48184709ed92debff2bb07a6369 Mon Sep 17 00:00:00 2001 From: Aung Myo Date: Tue, 10 Apr 2018 09:56:31 +0630 Subject: [PATCH 11/31] udate ui --- .../origami/order_reservation/index.html.erb | 261 +++++++++++++++--- 1 file changed, 225 insertions(+), 36 deletions(-) diff --git a/app/views/origami/order_reservation/index.html.erb b/app/views/origami/order_reservation/index.html.erb index fe23f40e..f22d5f09 100644 --- a/app/views/origami/order_reservation/index.html.erb +++ b/app/views/origami/order_reservation/index.html.erb @@ -2,39 +2,94 @@
-
+
-
-
rrrrr
-
- RRRRRR - SSSSSSSSSSS -
-
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +
aaaaaaaassss
aaaaaaaassss
aaaaaaaassss
aaaaaaaassss
+
+
+
-
-
-
- oOOOOOOOOOOOOO -
-
+
+
+ + + + + +
No.11 (DELIVERY)0065 4321 0012
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +
aaaaaaaassss
aaaaaaaassss
aaaaaaaassss
aaaaaaaassss
+
+
+
@@ -42,11 +97,84 @@
-
-
- +
+ + + + + +
No.11 + (DELIVERY) + 0065 4321
+
+
+ + + + + + + + + + + + + + + + + + + +
+ MENU ITEM 01 +
2 X700 +
1400.00
+ MENU ITEM 01 +
2 X700 +
1400.00
+ MENU ITEM 01 +
2 X700 +
1400.00
+ MENU ITEM 01 +
2 X700 +
1400.00
-
+ +
@@ -59,16 +187,77 @@
- - \ No newline at end of file From 0e39e4577f1e407eed2b86d7b7a8ba057f3e28bf Mon Sep 17 00:00:00 2001 From: Aung Myo Date: Tue, 10 Apr 2018 10:51:33 +0630 Subject: [PATCH 12/31] update request bill check from quick service --- app/views/origami/pending_order/show.html.erb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/origami/pending_order/show.html.erb b/app/views/origami/pending_order/show.html.erb index de208374..0cc6f949 100644 --- a/app/views/origami/pending_order/show.html.erb +++ b/app/views/origami/pending_order/show.html.erb @@ -202,13 +202,13 @@ $(document).ready(function(){ // Bill Request $('#request_bills').click(function () { var order_id = $('#save_order_id').val(); - var ajax_url = "/origami/" + order_id + "/request_bills"; + var ajax_url = "../../../origami/" +order_id+ "/request_bills"; + console.log(ajax_url) $.ajax({ type: "GET", url: ajax_url, // data: 'order_id='+ order_id, success: function (result) { - console.log(result) if (!result.status) { swal("Information!", result.error_message); } From 77adad241791c0172e70ec1f41bd439fbedaf1e3 Mon Sep 17 00:00:00 2001 From: Aung Myo Date: Tue, 10 Apr 2018 15:19:46 +0630 Subject: [PATCH 13/31] update order_reservaiotn ui fishe --- .../origami/order_reservation/index.html.erb | 470 +++++++++++++----- 1 file changed, 339 insertions(+), 131 deletions(-) diff --git a/app/views/origami/order_reservation/index.html.erb b/app/views/origami/order_reservation/index.html.erb index f22d5f09..42628dd9 100644 --- a/app/views/origami/order_reservation/index.html.erb +++ b/app/views/origami/order_reservation/index.html.erb @@ -1,101 +1,228 @@
-
-
+
+
-
-
-
-
-
- +
+
+
+
- - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + +
aaaaaaaassss
aaaaaaaassss
aaaaaaaassss
aaaaaaaassss
+ 1 + + 3:30 PM + + 13000 + + STATUS +
+ 2 + + 3:30 PM + + 13000 + + STATUS +
+ 3 + + 3:30 PM + + 13000 + + STATUS +
+ 4 + + 3:30 PM + + 13000 + + STATUS +
-
-
+
-
-
-
- - - - - -
No.11 (DELIVERY)0065 4321 0012
-
-
-
- +
+
+
- - - - - - - - - - - - - - - - - - - + + + + + + + + + + + +
aaaaaaaassss
aaaaaaaassss
aaaaaaaassss
aaaaaaaassss
+ 1 + + 3:30 PM + + 13000 + + STATUS +
+ 2 + + 3:30 PM + + 13000 + + STATUS +
-
-
+
+
+ +
+
+ +
+
+ +
+
+ +
-
+
@@ -108,68 +235,101 @@
- - - - - - - - - - - - - - - - - - - -
- MENU ITEM 01 -
2 X700 -
1400.00
- MENU ITEM 01 -
2 X700 -
1400.00
- MENU ITEM 01 -
2 X700 -
1400.00
- MENU ITEM 01 -
2 X700 -
1400.00
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ MENU ITEM 01 +
2 X700 +
1400.00
+ MENU ITEM 01 +
2 X700 +
1400.00
+ MENU ITEM 01 +
2 X700 +
1400.00
+ MENU ITEM 01 +
2 X700 +
1400.00
+ MENU ITEM 01 +
2 X700 +
1400.00
+ MENU ITEM 01 +
2 X700 +
1400.00
+
+
-
-
-
+
+
+
+ + + + +
CUSTOMER & DELIVERY INFORMATION +
+
- + + + + + + + + + + + + + + + +
+ NAME
+ DAW AYE AYE +
+ PHONE
+ 09 8765 4321 098 +
+ ADDRESS
+ No. (12), 3rd floor, zay kyee Street, kyi myin dine + infront of Nya Zay Main Entrance +
+ DELEVER TO
+ HOME +
@@ -196,7 +391,7 @@ } .nav-tabs .nav-link { - padding: 0.9286em .35em; + padding: 0.5286em .33em; } .nav-tabs li a.active { color: #111 !important; @@ -218,7 +413,8 @@ .nav-tabs.tab-col-teal > li > a:before { border-bottom: 0px solid #009688; } -.nav-item .a .nav-link { +.nav-tabs .nav-item{ + margin-bottom: 2px ; } .num{ color:#fff; @@ -234,30 +430,42 @@ .table .header-td{ border-top:0px solid !important; border-bottom: 0px solid !important; - padding:0px 7px !important; + padding:3px 7px !important; border-top:0px solid !important; border-bottom: 0px solid !important; } -.card-block .table td:first-child, -.card-block .table td:nth-child(2), -.card-footer .table td:first-child, -.card-footer .table td:nth-child(2){ +.custom-card-block .table td:first-child, +.custom-card-block .table td:nth-child(2), +.custom-card-footer .table td:first-child, +.custom-card-footer .table td:nth-child(2){ border-top:0px solid !important; } -/*.card-block .table .body-td:last-child, -.card-footer .table .body-td:last-child{ +.custom-card-footer .footer-td , +.grand-card-footer .footer-td { + border-top:0px solid !important; border-bottom:0px solid !important; -}*/ + font-weight: bold; + padding:5px 10px; +} .custom-card-header{ border-bottom: 1px solid #F8BBD0 !important; + padding:13px 5px !important; } .custom-card-footer{ border-top: 1px solid #F8BBD0 !important; } -.custom-card-header, .custom-card-block, +.grand-card-footer, .custom-card-footer{ padding :5px !important; } +.custom-table{ + background-color:#F3E5F5; +} +.custom-table tbody tr td, +.custom-table tbody tr th{ + border-top: 1px solid #FFEBEE; + border-bottom: 1px solid #FFEBEE; +} \ No newline at end of file From c7e5ae8ab0ce7b8bd7bc23442c6f7eb5651f7346 Mon Sep 17 00:00:00 2001 From: phyusin Date: Tue, 10 Apr 2018 15:21:49 +0630 Subject: [PATCH 14/31] order reservation api --- .../order_reservation_controller.rb | 17 ------ .../order_reservation_controller.rb | 52 +++++++++++++++++++ app/models/delivery.rb | 16 ++++++ app/models/order_reservation.rb | 47 +++++++++++++++++ app/models/order_reservation_item.rb | 32 ++++++++++++ .../api/order_reservation/index.json.jbuilder | 0 config/routes.rb | 3 +- 7 files changed, 149 insertions(+), 18 deletions(-) delete mode 100644 app/controllers/api/order_reservation/order_reservation_controller.rb create mode 100644 app/controllers/api/order_reserve/order_reservation_controller.rb create mode 100644 app/models/delivery.rb create mode 100644 app/models/order_reservation.rb create mode 100644 app/models/order_reservation_item.rb delete mode 100644 app/views/api/order_reservation/index.json.jbuilder diff --git a/app/controllers/api/order_reservation/order_reservation_controller.rb b/app/controllers/api/order_reservation/order_reservation_controller.rb deleted file mode 100644 index 43b9c597..00000000 --- a/app/controllers/api/order_reservation/order_reservation_controller.rb +++ /dev/null @@ -1,17 +0,0 @@ -class Api::OrderReservation::OrderReservationController < Api::ApiController - # skip_before_action :authenticate - - def check_customer - customer_id = 0 - - check_customer = Customer.find_by_email_and_contact_no_and_membership_id(params[:email],params[:contact_no],params[:membership_id]) - if !check_customer.nil? - customer_id = check_customer.customer_id - else - customer = Customer.addCustomer(params) - customer_id = customer.id - end - - render :json => { :status => true, :data => { :customer_id => customer_id} } - end -end diff --git a/app/controllers/api/order_reserve/order_reservation_controller.rb b/app/controllers/api/order_reserve/order_reservation_controller.rb new file mode 100644 index 00000000..0093409c --- /dev/null +++ b/app/controllers/api/order_reserve/order_reservation_controller.rb @@ -0,0 +1,52 @@ +class Api::OrderReserve::OrderReservationController < Api::ApiController + # skip_before_action :authenticate + ORDER = "order" + RESERVATION = "reservation" + ORDER_RESERVATION = "order and reservation" + + def check_customer + customer_id = 0 + + check_customer = Customer.find_by_email_and_contact_no_and_membership_id(params[:email],params[:contact_no],params[:membership_id]) + if !check_customer.nil? + customer_id = check_customer.customer_id + else + customer = Customer.addCustomer(params) + customer_id = customer.id + end + + render :json => { :status => true, :data => { :customer_id => customer_id} } + end + + def create + status = false + if !params[:cus_info] + render :json => { :status => false, :message => "cus_info is required!" } + elsif !params[:requested_time] + render :json => { :status => false, :message => "requested_time is required!" } + elsif !params[:order_type] + render :json => { :status => false, :message => "order_type is required!" } + elsif params[:order_type] == ORDER || params[:order_type] == ORDER_RESERVATION + if !params[:order_info] + render :json => { :status => false, :message => "order_info is required!" } + else + status = true + end + elsif !params[:payment_info] + render :json => { :status => false, :message => "payment_info is required!" } + elsif !params[:delivery_info] + render :json => { :status => false, :message => "delivery_info is required!" } + elsif params[:order_type] == RESERVATION || params[:order_type] == ORDER_RESERVATION + if !params[:reservation_info] + render :json => { :status => false, :message => "reservation_info is required!" } + else + status = true + end + end + + if status == true + OrderReservation.addOrderReservationInfo(params) + render :json => { :status => true, :message => "Order reservation is successfully created!" } + end + end +end diff --git a/app/models/delivery.rb b/app/models/delivery.rb new file mode 100644 index 00000000..d2273d8d --- /dev/null +++ b/app/models/delivery.rb @@ -0,0 +1,16 @@ +class Delivery < ApplicationRecord + belongs_to :order_reservation + + def self.addDeliveryInfo(params,order_reservation_id) + delivery = Delivery.new + delivery.order_reservation_id = order_reservation_id + delivery.provider = params[:provider] + delivery.delivery_type = params[:delivery_type] + delivery.township = params[:township] + delivery.address = params[:address] + delivery.direction_address = params[:address_direction] + delivery.delivery_fee = params[:delivery_fee] + delivery.remark = params[:delivery_note] + delivery.save! + end +end diff --git a/app/models/order_reservation.rb b/app/models/order_reservation.rb new file mode 100644 index 00000000..0be5e4c8 --- /dev/null +++ b/app/models/order_reservation.rb @@ -0,0 +1,47 @@ +class OrderReservation < ApplicationRecord + self.primary_key = "order_reservation_id" + + #primary key - need to be unique generated for multiple shops + before_create :generate_custom_id + + has_many :order_reservation_items + belongs_to :delivery + + def self.addOrderReservationInfo(params) + order_reservation = OrderReservation.new + order_reservation.order_reservation_type = params[:order_type] + order_reservation.customer_id = params[:cus_info] + order_reservation.requested_time = Time.parse(params[:requested_time]).utc.strftime("%Y-%m-%d %H:%M:%S") + if params[:order_info] + order_reservation.item_count = params[:order_info][:items].count + order_reservation.payment_type = params[:payment_info][:payment_type] + order_reservation.payment_status = params[:payment_info][:payment_status] + order_reservation.payment_ref = params[:payment_info][:payment_ref] + order_reservation.total_amount = params[:payment_info][:sub_total] + order_reservation.total_tax = params[:payment_info][:total_tax] + order_reservation.discount_amount = params[:payment_info][:discount_amount] + order_reservation.grand_total = params[:payment_info][:grand_total] + order_reservation.order_remark = params[:payment_info][:order_remark] + end + if params[:reservation_info] + order_reservation.total_customer = params[:reservation_info][:total_user] + order_reservation.reservation_remark = params[:reservation_info][:reservation_note] + end + order_reservation.save! + if params[:order_info][:items] + params[:order_info][:items].each do |oritem| + OrderReservationItem.process_order_reservation_item(oritem[:product_code],oritem[:item_instance_code],oritem[:product_name],oritem[:product_alt_name], + oritem[:account_id],oritem[:qty],oritem[:price],oritem[:unit_price], + oritem[:options],nil,order_reservation.id) + end + end + if params[:delivery_info] + Delivery.addDeliveryInfo(params[:delivery_info],order_reservation.id) + end + end + + private + def generate_custom_id + self.order_reservation_id = SeedGenerator.generate_id(self.class.name, "ODRS") + end +end diff --git a/app/models/order_reservation_item.rb b/app/models/order_reservation_item.rb new file mode 100644 index 00000000..0d932f92 --- /dev/null +++ b/app/models/order_reservation_item.rb @@ -0,0 +1,32 @@ +class OrderReservationItem < ApplicationRecord + self.primary_key = "order_reservation_items_id" + + #primary key - need to be unique + before_create :generate_custom_id + + belongs_to :order_reservation, autosave: true + + def self.process_order_reservation_item (item_code, instance_code, menu_name, alt_name, account_id, qty, price, unit_price, options, set_menu_items, order_reservation_id) + orderreservationitem = OrderReservationItem.create do |oitem| + oitem.order_reservation_id = order_reservation_id + oitem.item_code = item_code + oitem.item_instance_code = instance_code + oitem.item_name = menu_name + oitem.alt_name = alt_name ? alt_name : "" + oitem.account_id = account_id + oitem.qty = qty + oitem.unit_price = unit_price + oitem.price = price + oitem.options = options + oitem.set_menu_items = set_menu_items + end + + #logger.debug orderitem.to_yml + orderreservationitem.save! + end + + private + def generate_custom_id + self.order_reservation_items_id = SeedGenerator.generate_id(self.class.name, "ODRSI") + end +end diff --git a/app/views/api/order_reservation/index.json.jbuilder b/app/views/api/order_reservation/index.json.jbuilder deleted file mode 100644 index e69de29b..00000000 diff --git a/config/routes.rb b/config/routes.rb index 7c224dfa..cec8057f 100755 --- a/config/routes.rb +++ b/config/routes.rb @@ -83,8 +83,9 @@ scope "(:locale)", locale: /en|mm/ do end #order and reservation api - namespace :order_reservation do + namespace :order_reserve do post "customer" => "order_reservation#check_customer" + post "order" => "order_reservation#create" end end From e8c0899a9d086c02db6c1d4cba03c52a27270991 Mon Sep 17 00:00:00 2001 From: Yan Date: Tue, 10 Apr 2018 16:21:43 +0630 Subject: [PATCH 15/31] menu import export update --- app/controllers/settings/menus_controller.rb | 6 +++--- app/models/menu.rb | 15 ++++++--------- app/views/settings/menus/index.html.erb | 6 +++--- 3 files changed, 12 insertions(+), 15 deletions(-) diff --git a/app/controllers/settings/menus_controller.rb b/app/controllers/settings/menus_controller.rb index c7de4df8..0264084c 100755 --- a/app/controllers/settings/menus_controller.rb +++ b/app/controllers/settings/menus_controller.rb @@ -72,7 +72,7 @@ class Settings::MenusController < ApplicationController # end end - def export + def export @settings_menus = Menu.all.page(params[:page]).per(10) menu = Menu.find(params[:id]) @@ -99,11 +99,11 @@ class Settings::MenusController < ApplicationController sheet.add_row ["Name",menu.name], :style=>title sheet.add_row - sheet.add_row ["Category Code", "Category Name", "Item Code", "Item Name", "Item AltName", "Taxable", "Instance Code", "Instance Name", "Price"], :style=>header_text + sheet.add_row ["Category Code", "Category Name", "Item Code", "Item Name", "Account", "Item AltName", "Taxable", "Instance Code", "Instance Name", "Price"], :style=>header_text menu.menu_categories.each do |mc| mc.menu_items.each do |mi| mi.menu_item_instances.each do |mii| - sheet.add_row [ mc.code, mc.name, mi.item_code, mi.name, mi.alt_name, mi.taxable, mii.item_instance_code, mii.item_instance_name, mii.price], :style=>wrap_text + sheet.add_row [ mc.code, mc.name, mi.item_code, mi.name, mi.account.title, mi.alt_name, mi.taxable, mii.item_instance_code, mii.item_instance_name, mii.price], :style=>wrap_text end end end diff --git a/app/models/menu.rb b/app/models/menu.rb index d81079bd..8bf616c9 100755 --- a/app/models/menu.rb +++ b/app/models/menu.rb @@ -140,14 +140,6 @@ class Menu < ApplicationRecord end else # Menu by Menu Import - accs = Account.all - account_id = 1 - if accs.length > 0 - account_id = accs[0].id - else - status = "No Account Created." - end - sheet = spreadsheet.sheet(0) menu = sheet.row(1)[1] imported_menu = Menu.create({name: menu, is_active: true, valid_days: "1,2,3,4,5,6,7",valid_time_from: "00:00:00", valid_time_to: "23:59:59", created_by: created_by}) @@ -163,7 +155,12 @@ class Menu < ApplicationRecord menu_itm = MenuItem.find_by_item_code(row["Item Code"]) if !menu_itm - menu_itm = MenuItem.create(item_code: row["Item Code"], name: row["Item Name"], alt_name: row["Item AltName"], image_path: "", description: '', information: '', unit: '', type: "SimpleMenuItem", menu_category_id: menu_cat.id, item_attributes: "[]", item_options: "[]", account_id: account_id, is_sub_item: 0, is_available: 1, created_by: created_by) + account = Account.find_by_title(row["Account"]) + if account.nil? + account = Account.create({title: row["Account"], account_type: "0"}) + end + + menu_itm = MenuItem.create(item_code: row["Item Code"], name: row["Item Name"], account_id: account.id, alt_name: row["Item AltName"], image_path: "", description: '', information: '', unit: '', type: "SimpleMenuItem", menu_category_id: menu_cat.id, item_attributes: "[]", item_options: "[]", account_id: account_id, is_sub_item: 0, is_available: 1, created_by: created_by) # else # status = status + "Item Code already exists for " + row["Item Name"] + "." end diff --git a/app/views/settings/menus/index.html.erb b/app/views/settings/menus/index.html.erb index 42eca334..d8e37899 100755 --- a/app/views/settings/menus/index.html.erb +++ b/app/views/settings/menus/index.html.erb @@ -62,7 +62,7 @@ <%= link_to t("views.btn.edit"), edit_settings_menu_path(settings_menu),:class => 'btn btn-info btn-sm waves-effect' %> - + backup @@ -107,9 +107,9 @@ diff --git a/config/initializers/action_controller.rb b/config/initializers/action_controller.rb index 26255b59..b063f28e 100644 --- a/config/initializers/action_controller.rb +++ b/config/initializers/action_controller.rb @@ -20,11 +20,11 @@ class ActionController::Base end else #check for license file - if check_license - current_license(ENV["SX_PROVISION_URL"]) - else - redirect_to activate_path - end + # if check_license + # current_license(ENV["SX_PROVISION_URL"]) + # else + # redirect_to activate_path + # end end end diff --git a/db/migrate/20180406080240_create_order_reservations.rb b/db/migrate/20180406080240_create_order_reservations.rb index 4a53aaf0..cde96ac0 100644 --- a/db/migrate/20180406080240_create_order_reservations.rb +++ b/db/migrate/20180406080240_create_order_reservations.rb @@ -6,6 +6,7 @@ class CreateOrderReservations < ActiveRecord::Migration[5.1] t.string :customer_id, :null => false t.datetime :requested_time, :null => false t.string :callback_url, :null => false + t.string :transaction_ref, :null => false t.integer :item_count, :null => false, :default => 0 t.integer :total_customer t.string :payment_type @@ -18,6 +19,7 @@ class CreateOrderReservations < ActiveRecord::Migration[5.1] t.string :status, :null => false, :default => "new" t.string :order_remark t.string :reservation_remark + t.timestamps end end diff --git a/db/migrate/20180406080359_create_order_reservation_items.rb b/db/migrate/20180406080359_create_order_reservation_items.rb index 9d320f77..c74900dd 100644 --- a/db/migrate/20180406080359_create_order_reservation_items.rb +++ b/db/migrate/20180406080359_create_order_reservation_items.rb @@ -16,6 +16,7 @@ class CreateOrderReservationItems < ActiveRecord::Migration[5.1] t.string :remark t.string :options t.boolean :taxable, :null => false, :default => true + t.timestamps end end diff --git a/db/migrate/20180406080436_create_deliveries.rb b/db/migrate/20180406080436_create_deliveries.rb index 6b4e6487..4c66ada0 100644 --- a/db/migrate/20180406080436_create_deliveries.rb +++ b/db/migrate/20180406080436_create_deliveries.rb @@ -9,6 +9,7 @@ class CreateDeliveries < ActiveRecord::Migration[5.1] t.string :direction_address t.string :delivery_fee t.string :remark + t.timestamps end end From 8261a3453a5508f6d33a73abe5dab3c9d9c95105 Mon Sep 17 00:00:00 2001 From: phyusin Date: Wed, 11 Apr 2018 14:40:28 +0630 Subject: [PATCH 29/31] remove # in action controller --- config/initializers/action_controller.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/config/initializers/action_controller.rb b/config/initializers/action_controller.rb index b063f28e..26255b59 100644 --- a/config/initializers/action_controller.rb +++ b/config/initializers/action_controller.rb @@ -20,11 +20,11 @@ class ActionController::Base end else #check for license file - # if check_license - # current_license(ENV["SX_PROVISION_URL"]) - # else - # redirect_to activate_path - # end + if check_license + current_license(ENV["SX_PROVISION_URL"]) + else + redirect_to activate_path + end end end From 0413d56a83a77a0987d4c2e1e2b980ac53e2ac9c Mon Sep 17 00:00:00 2001 From: phyusin Date: Wed, 11 Apr 2018 16:18:42 +0630 Subject: [PATCH 30/31] add paymal and dinga with account no --- app/assets/stylesheets/origami.scss | 8 + .../origami/customers_controller.rb | 29 +- app/controllers/origami/dinga_controller.rb | 177 ++++++----- app/controllers/origami/paymal_controller.rb | 154 +++++----- app/models/sale_payment.rb | 34 +- app/views/origami/dinga/index.html.erb | 290 ++++++++++++++++-- app/views/origami/paymal/index.html.erb | 180 ++++++----- config/routes.rb | 1 + 8 files changed, 585 insertions(+), 288 deletions(-) diff --git a/app/assets/stylesheets/origami.scss b/app/assets/stylesheets/origami.scss index 601b8f89..1de250a3 100755 --- a/app/assets/stylesheets/origami.scss +++ b/app/assets/stylesheets/origami.scss @@ -417,6 +417,14 @@ i.logout_icon{ #is_memberModal .btn { width: 80%; } + +#is_paymemberModal .modal-body { + height: 150px !important; +} + +#is_paymemberModal .btn { + width: 80%; +} /* End Is Member Modal */ /* Start iframe */ diff --git a/app/controllers/origami/customers_controller.rb b/app/controllers/origami/customers_controller.rb index 70e5260f..fefb973e 100755 --- a/app/controllers/origami/customers_controller.rb +++ b/app/controllers/origami/customers_controller.rb @@ -144,5 +144,32 @@ class Origami::CustomersController < BaseOrigamiController render json: JSON.generate({:status => false, :error_message => "Record not found"}) end end - + + def send_account + amount = params[:amount] + account_no = params[:account_no] + receipt_no = params[:receipt_no] + sale = Sale.find_by_receipt_no(receipt_no) + @out = [] + action_by = current_user.id + membership_setting = MembershipSetting.find_by_membership_type("paypar_url") + if membership_setting.gateway_url + member_actions =MembershipAction.find_by_membership_type("get_account_balance") + if member_actions.gateway_url + @campaign_type_id = nil + url = membership_setting.gateway_url.to_s + member_actions.gateway_url.to_s + merchant_uid= member_actions.merchant_account_id + auth_token = member_actions.auth_token.to_s + membership_data = SalePayment.get_paypar_account_data(url,membership_setting.auth_token,merchant_uid,auth_token,account_no,amount,receipt_no) + if membership_data["status"]==true + remark = "Payment by account no Receipt No #{sale.receipt_no} | Sale ID #{sale.sale_id} | Transaction ref: #{membership_data[:transaction_ref]} | Reload amount #{membership_data[:reload_amount]} | Old Balance Amount #{membership_data[:old_balance_amount]} | DateTime : #{membership_data[:date]}" + sale_audit = SaleAudit.record_audit_for_edit(sale.sale_id,sale.cashier_id, action_by,remark,"PAYBYACCOUNT" ) + else + remark = "Payment by account no Receipt No #{sale.receipt_no} | Sale ID #{sale.sale_id} | Remark : #{membership_data[:message]}" + sale_audit = SaleAudit.record_audit_for_edit(sale.sale_id,sale.cashier_id, action_by,remark,"PAYBYACCOUNT" ) + end + @out = membership_data + end + end + end end diff --git a/app/controllers/origami/dinga_controller.rb b/app/controllers/origami/dinga_controller.rb index 1b3c9ca2..448b39dd 100644 --- a/app/controllers/origami/dinga_controller.rb +++ b/app/controllers/origami/dinga_controller.rb @@ -1,102 +1,97 @@ class Origami::DingaController < BaseOrigamiController - def index - @sale_id = params[:sale_id] - payment_method = params[:payment_method] - @cashier_type = params[:type] - @membership_rebate_balance=0 - sale_data = Sale.find_by_sale_id(@sale_id) + def index + @sale_id = params[:sale_id] + payment_method = params[:payment_method] + @cashier_type = params[:type] + @membership_rebate_balance=0 + sale_data = Sale.find_by_sale_id(@sale_id) + @receipt_no = sale_data.receipt_no + @shop = Shop.first + # if @shop.is_rounding_adj + # new_total = Sale.get_rounding_adjustment(sale_data.grand_total) + # else + # new_total = sale_data.grand_total + # end + # @rounding_adj = new_total-sale_data.grand_total + @rounding_adj = sale_data.rounding_adjustment - @shop = Shop.first - # if @shop.is_rounding_adj - # new_total = Sale.get_rounding_adjustment(sale_data.grand_total) - # else - # new_total = sale_data.grand_total - # end - # @rounding_adj = new_total-sale_data.grand_total - @rounding_adj = sale_data.rounding_adjustment - - @dingacount = 0 - others = 0 - sale_data.sale_payments.each do |sale_payment| + @payparcount = 0 + others = 0 + sale_data.sale_payments.each do |sale_payment| if sale_payment.payment_method == "dinga" - @dingacount = @dingacount + sale_payment.payment_amount + @payparcount = @payparcount + sale_payment.payment_amount else others = others + sale_payment.payment_amount end - end - @redeem_prices = sale_data.grand_total - @dingacount -others + end + @payment_prices = sale_data.grand_total - @payparcount -others - if sale_data - if sale_data.customer_id - customer_data= Customer.find_by_customer_id(sale_data.customer_id) - if customer_data - @membership_id = customer_data.membership_id - if !@membership_id.nil? - membership_setting = MembershipSetting.find_by_membership_type("dinga_url") - if membership_setting.gateway_url - member_actions =MembershipAction.find_by_membership_type("get_account_balance") - if member_actions.gateway_url - @campaign_type_id = member_actions.additional_parameter["campaign_type_id"] - url = membership_setting.gateway_url.to_s + member_actions.gateway_url.to_s - merchant_uid= member_actions.merchant_account_id - auth_token = member_actions.auth_token.to_s - membership_data = SalePayment.get_dinga_account(url,membership_setting.auth_token,@membership_id,@campaign_type_id,merchant_uid,auth_token) - if membership_data["status"]==true - @membership_rebate_balance=membership_data["balance"] - @out = true, @membership_rebate_balance,@membership_id - end - else - @out =false,0 - end - else - @out = false,0 - end + if sale_data + if sale_data.customer_id + customer_data= Customer.find_by_customer_id(sale_data.customer_id) + if customer_data + @membership_id = customer_data.membership_id + if !@membership_id.nil? + membership_setting = MembershipSetting.find_by_membership_type("paypar_url") + if membership_setting.gateway_url + member_actions =MembershipAction.find_by_membership_type("get_account_balance") + if member_actions.gateway_url + @campaign_type_id = nil + url = membership_setting.gateway_url.to_s + member_actions.gateway_url.to_s + merchant_uid= member_actions.merchant_account_id + auth_token = member_actions.auth_token.to_s + membership_data = SalePayment.get_paypar_account(url,membership_setting.auth_token,@membership_id,@campaign_type_id,merchant_uid,auth_token) + if membership_data["status"]==true + @membership_rebate_balance=membership_data["balance"] + @out = true, @membership_rebate_balance,@membership_id + end + else + @out =false,0 + end + else + @out = false,0 + end - else - @out = false, 0 - end - else - @out = false, 0 - end - else - @out = false, 0 - end - else - @out = false, 0 - end - @out = false, 0 - end - - def create - sale_id = params[:sale_id] - @cashier_type = params[:type] - redeem_amount = params[:redeem_amount] - membership_id = params[:membership_id] - payment_method = "dinga" - if(Sale.exists?(sale_id)) - saleObj = Sale.find(sale_id) - shop_details = Shop.first - - # rounding adjustment - if shop_details.is_rounding_adj - new_total = Sale.get_rounding_adjustment(saleObj.grand_total) - rounding_adj = new_total-saleObj.grand_total - saleObj.update_attributes(grand_total: new_total,old_grand_total: saleObj.grand_total,rounding_adjustment:rounding_adj) - end - - sale_payment = SalePayment.new - status,msg =sale_payment.process_payment(saleObj, @user, redeem_amount,payment_method) - if status == true - @out = true, "Success!" - else - @out =false, "Please try again payment!" - end - else - @out = false, "There has no sale record!" - end - - end - + else + @out = false, 0 + end + else + @out = false, 0 + end + else + @out = false, 0 + end + else + @out = false, 0 + end + @out = false, 0 +end + +def create + cash = params[:payment_amount] + sale_id = params[:sale_id] + transaction_ref = params[:transaction_ref] + if(Sale.exists?(sale_id)) + saleObj = Sale.find(sale_id) + shop_details = Shop.first + # rounding adjustment + # if shop_details.is_rounding_adj + # new_total = Sale.get_rounding_adjustment(saleObj.grand_total) + # rounding_adj = new_total-saleObj.grand_total + # saleObj.update_attributes(grand_total: new_total,old_grand_total: saleObj.grand_total,rounding_adjustment:rounding_adj) + # end + + # saleObj = Sale.find(sale_id) + sale_payment = SalePayment.new + status, @sale = sale_payment.process_payment(saleObj, @user, cash, "dinga",transaction_ref) + if status == true + @out = true, "Success!" + else + @out =false, "Please try again payment!" + end + end + end + end diff --git a/app/controllers/origami/paymal_controller.rb b/app/controllers/origami/paymal_controller.rb index a72a28ec..65af0c3b 100644 --- a/app/controllers/origami/paymal_controller.rb +++ b/app/controllers/origami/paymal_controller.rb @@ -1,80 +1,82 @@ class Origami::PaymalController < BaseOrigamiController - def index - @sale_id = params[:sale_id] - payment_method = params[:payment_method] - @cashier_type = params[:type] - @membership_rebate_balance=0 - sale_data = Sale.find_by_sale_id(@sale_id) + def index + @sale_id = params[:sale_id] + payment_method = params[:payment_method] + @cashier_type = params[:type] + @membership_rebate_balance=0 + sale_data = Sale.find_by_sale_id(@sale_id) + @receipt_no = sale_data.receipt_no + @shop = Shop.first + # if @shop.is_rounding_adj + # new_total = Sale.get_rounding_adjustment(sale_data.grand_total) + # else + # new_total = sale_data.grand_total + # end + # @rounding_adj = new_total-sale_data.grand_total + @rounding_adj = sale_data.rounding_adjustment - @shop = Shop.first - # if @shop.is_rounding_adj - # new_total = Sale.get_rounding_adjustment(sale_data.grand_total) - # else - # new_total = sale_data.grand_total - # end - # @rounding_adj = new_total-sale_data.grand_total - @rounding_adj = sale_data.rounding_adjustment - - @payparcount = 0 - others = 0 - sale_data.sale_payments.each do |sale_payment| + @payparcount = 0 + others = 0 + sale_data.sale_payments.each do |sale_payment| if sale_payment.payment_method == "paypar" @payparcount = @payparcount + sale_payment.payment_amount else others = others + sale_payment.payment_amount end - end - @payment_prices = sale_data.grand_total - @payparcount -others + end + @payment_prices = sale_data.grand_total - @payparcount -others - if sale_data - if sale_data.customer_id - customer_data= Customer.find_by_customer_id(sale_data.customer_id) - if customer_data - @membership_id = customer_data.membership_id - if !@membership_id.nil? - membership_setting = MembershipSetting.find_by_membership_type("paypar_url") - if membership_setting.gateway_url - member_actions =MembershipAction.find_by_membership_type("get_account_balance") - if member_actions.gateway_url - @campaign_type_id = nil - url = membership_setting.gateway_url.to_s + member_actions.gateway_url.to_s - merchant_uid= member_actions.merchant_account_id - auth_token = member_actions.auth_token.to_s - membership_data = SalePayment.get_paypar_account(url,membership_setting.auth_token,@membership_id,@campaign_type_id,merchant_uid,auth_token) - if membership_data["status"]==true - @membership_rebate_balance=membership_data["balance"] - @out = true, @membership_rebate_balance,@membership_id - end - else - @out =false,0 - end - else - @out = false,0 - end + if sale_data + if sale_data.customer_id + customer_data= Customer.find_by_customer_id(sale_data.customer_id) + if customer_data + @membership_id = customer_data.membership_id + if !@membership_id.nil? + membership_setting = MembershipSetting.find_by_membership_type("paypar_url") + if membership_setting.gateway_url + member_actions =MembershipAction.find_by_membership_type("get_account_balance") + if member_actions.gateway_url + @campaign_type_id = nil + url = membership_setting.gateway_url.to_s + member_actions.gateway_url.to_s + merchant_uid= member_actions.merchant_account_id + auth_token = member_actions.auth_token.to_s + membership_data = SalePayment.get_paypar_account(url,membership_setting.auth_token,@membership_id,@campaign_type_id,merchant_uid,auth_token) + if membership_data["status"]==true + @membership_rebate_balance=membership_data["balance"] + @out = true, @membership_rebate_balance,@membership_id + end + else + @out =false,0 + end + else + @out = false,0 + end - else - @out = false, 0 - end - else - @out = false, 0 - end - else - @out = false, 0 - end - else - @out = false, 0 - end - @out = false, 0 + else + @out = false, 0 + end + else + @out = false, 0 end - def create - cash = params[:payment_amount] - sale_id = params[:sale_id] - if(Sale.exists?(sale_id)) - saleObj = Sale.find(sale_id) - shop_details = Shop.first - + else + @out = false, 0 + end + else + @out = false, 0 + end + @out = false, 0 +end + +def create + cash = params[:payment_amount] + sale_id = params[:sale_id] + transaction_ref = params[:transaction_ref] + if(Sale.exists?(sale_id)) + saleObj = Sale.find(sale_id) + shop_details = Shop.first + # rounding adjustment # if shop_details.is_rounding_adj # new_total = Sale.get_rounding_adjustment(saleObj.grand_total) @@ -84,18 +86,12 @@ class Origami::PaymalController < BaseOrigamiController # saleObj = Sale.find(sale_id) sale_payment = SalePayment.new - status, @sale = sale_payment.process_payment(saleObj, @user, cash, "paymal") - if status == true - @out = true, "Success!" - else - @out =false, "Please try again payment!" - end - end - end - - #Shop Name in Navbor - helper_method :shop_detail - def shop_detail - @shop = Shop.first - end + status, @sale = sale_payment.process_payment(saleObj, @user, cash, "paymal",transaction_ref) + if status == true + @out = true, "Success!" + else + @out =false, "Please try again payment!" + end + end + end end diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb index 035bb792..201a1b57 100755 --- a/app/models/sale_payment.rb +++ b/app/models/sale_payment.rb @@ -103,6 +103,31 @@ class SalePayment < ApplicationRecord rescue OpenURI::HTTPError response = { status: false} + rescue SocketError + response = { status: false} + end + Rails.logger.debug "Get Paypar Account " + Rails.logger.debug response.to_json + return response + end + + def self.get_paypar_account_data(url,token,merchant_uid,auth_token,account_no,amount,receipt_no) + # Control for Paypar Cloud + begin + response = HTTParty.get(url, + :body => { merchant_uid:merchant_uid,auth_token:auth_token,receipt_no: receipt_no, + account_no: account_no, amount: amount}.to_json, + :headers => { + 'Content-Type' => 'application/json', + 'Accept' => 'application/json; version=3' + }, :timeout => 10 + ) + rescue Net::OpenTimeout + response = { status: false } + + rescue OpenURI::HTTPError + response = { status: false} + rescue SocketError response = { status: false} end @@ -378,7 +403,7 @@ class SalePayment < ApplicationRecord self.payment_amount = self.received_amount self.payment_reference = self.voucher_no self.outstanding_amount = self.sale.grand_total.to_f - self.received_amount.to_f - self.payment_status = "pending" + self.payment_status = "paid" payment_method = self.save! SalePayment.where(:sale_payment_id => self.sale_payment_id).update_all(:payment_status => 'paid') sale_update_payment_status(self.received_amount.to_f) @@ -410,10 +435,10 @@ class SalePayment < ApplicationRecord #Next time - validate if the vochure number is valid - within customer_data = Customer.find_by_customer_id(self.sale.customer_id) membership_setting = MembershipSetting.find_by_membership_type("paypar_url") - membership_data = SalePayment.redeem(membership_setting.gateway_url,membership_setting.auth_token,customer_data.membership_id,self.received_amount,self.sale.sale_id) + membership_data = SalePayment.create_payment(membership_setting.gateway_url,membership_setting.auth_token,customer_data.membership_id,self.received_amount,self.sale.sale_id) #record an payment in sale-audit - remark = "#{membership_data} Redeem- for Customer #{self.sale.customer_id} Sale Id [#{self.sale.sale_id}]| pay amount -> #{self.received_amount} " + remark = "#{membership_data} Dinga Payment- for Customer #{self.sale.customer_id} Sale Id [#{self.sale.sale_id}]| pay amount -> #{self.received_amount} " sale_audit = SaleAudit.record_paymal(self.sale.sale_id, remark, 1) if membership_data["status"]==true @@ -421,7 +446,7 @@ class SalePayment < ApplicationRecord self.payment_amount = self.received_amount self.payment_reference = self.voucher_no self.outstanding_amount = self.sale.grand_total.to_f - self.received_amount.to_f - self.payment_status = "pending" + self.payment_status = "paid" payment_method = self.save! SalePayment.where(:sale_payment_id => self.sale_payment_id).update_all(:payment_status => 'paid') sale_update_payment_status(self.received_amount.to_f) @@ -429,6 +454,7 @@ class SalePayment < ApplicationRecord else sale_update_payment_status(0) end + return payment_status end diff --git a/app/views/origami/dinga/index.html.erb b/app/views/origami/dinga/index.html.erb index 1b35710f..6a4fc12b 100644 --- a/app/views/origami/dinga/index.html.erb +++ b/app/views/origami/dinga/index.html.erb @@ -15,41 +15,41 @@
- - <%@redeem_prices = @redeem_prices +@rounding_adj%> - + + <%@payment_prices = @payment_prices +@rounding_adj%> +

- <% if @dingacount > 0 %> + <% if @payparcount > 0 %>
- - + +

<% end %>
- +

- +
0.0

- +

You can rebate upto <%= @payment_prices %>

-->
@@ -92,7 +92,7 @@
10000
-
Pay
+
Pay
@@ -106,15 +106,43 @@
+ + + + diff --git a/app/views/origami/paymal/index.html.erb b/app/views/origami/paymal/index.html.erb index bbbbbafa..d92f162a 100644 --- a/app/views/origami/paymal/index.html.erb +++ b/app/views/origami/paymal/index.html.erb @@ -13,6 +13,7 @@
+
@@ -108,11 +109,12 @@
-