From 0dce6e4329eee130ecffc4f215a8c08eb4a0f32d Mon Sep 17 00:00:00 2001 From: Aung Myo Date: Mon, 11 Dec 2017 10:39:19 +0630 Subject: [PATCH 1/3] udate add order controller --- app/controllers/origami/addorders_controller.rb | 1 + app/controllers/origami/discounts_controller.rb | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/app/controllers/origami/addorders_controller.rb b/app/controllers/origami/addorders_controller.rb index 8098dfe9..20b098dc 100755 --- a/app/controllers/origami/addorders_controller.rb +++ b/app/controllers/origami/addorders_controller.rb @@ -10,6 +10,7 @@ class Origami::AddordersController < ApplicationController#BaseOrigamiController def detail @menu = MenuCategory.all.active + #@menu = MenuCategory.where("menu_category_id is NULL").active @table_id = params[:id] @table = DiningFacility.find(@table_id) @booking = @table.get_booking diff --git a/app/controllers/origami/discounts_controller.rb b/app/controllers/origami/discounts_controller.rb index 59de9f6d..e0739e88 100755 --- a/app/controllers/origami/discounts_controller.rb +++ b/app/controllers/origami/discounts_controller.rb @@ -29,8 +29,6 @@ class Origami::DiscountsController < BaseOrigamiController # sale.grand_total = (sub_total.to_f - overall_discount.to_f) + sale.total_tax; # sale.save if discount_items.length > 0 - puts discount_items.to_json - puts "dddddddddddd" #save sale item for discount discount_items.each do |di| From 66964a6926fb54430a78845bd532bd7eb111a489 Mon Sep 17 00:00:00 2001 From: Aung Myo Date: Mon, 11 Dec 2017 18:01:19 +0630 Subject: [PATCH 2/3] update crm addore --- app/controllers/crm/customers_controller.rb | 2 +- app/controllers/origami/addorders_controller.rb | 12 +++++++++++- app/pdf/receipt_bill_pdf.rb | 15 +++++++++------ .../addorders/get_menu_sub_category.json.jbuilder | 9 +++++++++ config/routes.rb | 1 + 5 files changed, 31 insertions(+), 8 deletions(-) create mode 100644 app/views/origami/addorders/get_menu_sub_category.json.jbuilder diff --git a/app/controllers/crm/customers_controller.rb b/app/controllers/crm/customers_controller.rb index fdeb6fe1..51ddc9eb 100755 --- a/app/controllers/crm/customers_controller.rb +++ b/app/controllers/crm/customers_controller.rb @@ -74,7 +74,7 @@ class Crm::CustomersController < BaseCrmController @response = Customer.get_membership_transactions(@customer) Rails.logger.debug "get membership transactions response" - Rails.logger.debug response.to_json + Rails.logger.debug @response.to_json # @response = "" #end customer amount diff --git a/app/controllers/origami/addorders_controller.rb b/app/controllers/origami/addorders_controller.rb index 20b098dc..d283b06e 100755 --- a/app/controllers/origami/addorders_controller.rb +++ b/app/controllers/origami/addorders_controller.rb @@ -10,7 +10,6 @@ class Origami::AddordersController < ApplicationController#BaseOrigamiController def detail @menu = MenuCategory.all.active - #@menu = MenuCategory.where("menu_category_id is NULL").active @table_id = params[:id] @table = DiningFacility.find(@table_id) @booking = @table.get_booking @@ -44,6 +43,17 @@ class Origami::AddordersController < ApplicationController#BaseOrigamiController MenuCategory.current_menu end end + + + def get_menu_sub_category () + id = params[:id] + if (id) + #Pull this menu + @sub_menu = MenuCategory.where("menu_category_id = #{id}").active + # puts @menu.menu_items[1].item_attributes.to_json + return @sub_menu + end + end def get_all_product() @product = Product.all diff --git a/app/pdf/receipt_bill_pdf.rb b/app/pdf/receipt_bill_pdf.rb index a62e7b90..c48dfa7f 100755 --- a/app/pdf/receipt_bill_pdf.rb +++ b/app/pdf/receipt_bill_pdf.rb @@ -294,6 +294,7 @@ class ReceiptBillPdf < Prawn::Document balance = 0 rebate_balance =0 redeem = 0 + redeem_count = 0 rebate_amount["data"].each do |res| total = total + res["balance"] #total redeem amount @@ -318,7 +319,7 @@ class ReceiptBillPdf < Prawn::Document end # Total Rebate Amount if birthday - if res["receipt_no"]== sale_data.receipt_no && res["account_status"]== "RebateBonusAccount" && res["status"]== "Rebate" + if res["receipt_no"]== sale_data.receipt_no && res["account_status"]== "RebatebonusAccount" && res["status"]== "Rebate" rebate_balance = rebate_balance + res["deposit"] move_down 5 y_position = cursor @@ -332,20 +333,22 @@ class ReceiptBillPdf < Prawn::Document #end Total rebate if birthday end - move_down 5 + move_down 5 y_position = cursor - bounding_box([0,y_position], :width =>self.item_description_width, :height => self.item_height) do + bounding_box([0,y_position], :width =>self.item_description_width, :height => self.item_height) do text "Redeem Amount", :size => self.item_font_size,:align => :left - end + end bounding_box([self.item_description_width,y_position], :width =>self.label_width) do text "#{number_with_precision(redeem, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size,:align => :right - end + end if redeem == 0 old = total - rebate_balance else - old = balance + redeem + # if redeem_count == 0 + old = balance + redeem + # end end move_down 5 diff --git a/app/views/origami/addorders/get_menu_sub_category.json.jbuilder b/app/views/origami/addorders/get_menu_sub_category.json.jbuilder new file mode 100644 index 00000000..d391e4c5 --- /dev/null +++ b/app/views/origami/addorders/get_menu_sub_category.json.jbuilder @@ -0,0 +1,9 @@ +if @sub_menu + json.sub_category @sub_menu.each do |sub_cat| + json.id sub_cat.id + json.code sub_cat.code + json.name sub_cat.name + json.menu_id sub_cat.menu_id + json.menu_category_id sub_cat.menu_category_id + end +end diff --git a/config/routes.rb b/config/routes.rb index 93fe22e2..4c302b94 100755 --- a/config/routes.rb +++ b/config/routes.rb @@ -189,6 +189,7 @@ scope "(:locale)", locale: /en|mm/ do post '/:id/create_survey' => "surveys#create", :as => "create_surveys" get '/addorders/get_menu_category/:id' => "addorders#get_menu_category",:as => "get_menu_category", :defaults => { :format => 'json' } + get '/addorders/get_menu_sub_category/:id' => "addorders#get_menu_sub_category",:as => "get_menu_sub_category", :defaults => { :format => 'json' } get '/addorders/products/list' => "addorders#get_all_product",:as => "get_all_product", :defaults => { :format => 'json' } get '/:addorders/:id' => "addorders#detail" From f11145cbd127aeaa35e6f72d6c41a09a473a8221 Mon Sep 17 00:00:00 2001 From: Yan Date: Tue, 12 Dec 2017 10:35:26 +0630 Subject: [PATCH 3/3] disable no rebate if credit note --- app/models/sale_payment.rb | 149 +++++++++++++++++++------------------ 1 file changed, 76 insertions(+), 73 deletions(-) diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb index 9fb4e9ae..6e48e716 100755 --- a/app/models/sale_payment.rb +++ b/app/models/sale_payment.rb @@ -323,7 +323,7 @@ class SalePayment < ApplicationRecord self.sale.sale_status = "completed" - if MembershipSetting.find_by_rebate(1) && is_foc == 0 + if MembershipSetting.find_by_rebate(1) && is_foc == 0 && is_credit == 0 response = rebat(sObj) #record an payment in sale-audit @@ -410,6 +410,7 @@ class SalePayment < ApplicationRecord # overall_dis = SaleItem.get_overall_discount(sObj.id) overall_dis = sObj.total_discount + if credit != 1 membership = MembershipSetting.find_by_membership_type("paypar_url") memberaction = MembershipAction.find_by_membership_type("get_member_campaign") merchant_uid = memberaction.merchant_account_id.to_s @@ -438,87 +439,89 @@ class SalePayment < ApplicationRecord rescue SocketError response = { "status": false, "message": "Can't connect server"} end - redeem_amount = payparcost + overall_dis - total_percentage = 0 + redeem_amount = payparcost + overall_dis - type_arr = [] - Rails.logger.debug "Get Member Campaign" - Rails.logger.debug response.to_json - # Check for present response fields - if response["membership_campaign_data"].present? - response["membership_campaign_data"].each do |a| - data = {:type => a["rules_type"], :percentage => a["change_unit"].to_i * a["base_unit"].to_i} - total_percentage = total_percentage + a["change_unit"].to_i * a["base_unit"].to_i - - type_arr.push(data) - end - end + total_percentage = 0 - rebate_arr =[] - campaign_method.each do |a| - data = {:type => a[:type], :amount => a[:amount]} - type_arr.each do |si| - if si[:type] == a[:type] - if credit == 1 - data[:amount] = 0 - else - amount = (redeem_amount / total_percentage)*si[:percentage] - actual = a[:amount] - amount - data[:amount] = actual - end - + type_arr = [] + Rails.logger.debug "Get Member Campaign" + Rails.logger.debug response.to_json + # Check for present response fields + if response["membership_campaign_data"].present? + response["membership_campaign_data"].each do |a| + data = {:type => a["rules_type"], :percentage => a["change_unit"].to_i * a["base_unit"].to_i} + total_percentage = total_percentage + a["change_unit"].to_i * a["base_unit"].to_i + + type_arr.push(data) end end - rebate_arr.push(data) - end - total_amount = rebate_prices - payparcost - overall_dis - - if credit == 1 - total_amount = 0 - end - if total_amount >= 0 - receipt_no = sObj.receipt_no - membership = MembershipSetting.find_by_membership_type("paypar_url") - memberaction = MembershipAction.find_by_membership_type("rebate") - merchant_uid = memberaction.merchant_account_id.to_s - campaign_type_id = memberaction.additional_parameter["campaign_type_id"] - auth_token = memberaction.auth_token.to_s - url = membership.gateway_url.to_s + memberaction.gateway_url.to_s - - # Control for Paypar Cloud - begin - response = HTTParty.post(url, - :body => { - generic_customer_id:generic_customer_id , - total_sale_transaction_amount: sObj.grand_total, - merchant_uid:merchant_uid, - total_amount: total_amount, - campaign_type_id: campaign_type_id, - receipt_no: receipt_no, - campaign_method: rebate_arr.to_json, - auth_token:auth_token - }.to_json, - :headers => { - 'Content-Type' => 'application/json', - 'Accept' => 'application/json; version=2' - }, :timeout => 10) - rescue Net::OpenTimeout - response = { "status": false , "message": "Connect To" } - rescue OpenURI::HTTPError - response = { "status": false, "message": "Can't connect server"} - - rescue SocketError - response = { "status": false, "message": "Can't connect server"} + rebate_arr =[] + campaign_method.each do |a| + data = {:type => a[:type], :amount => a[:amount]} + type_arr.each do |si| + if si[:type] == a[:type] + if credit == 1 + data[:amount] = 0 + else + amount = (redeem_amount / total_percentage)*si[:percentage] + actual = a[:amount] - amount + data[:amount] = actual + end + + end + end + rebate_arr.push(data) + end + + total_amount = rebate_prices - payparcost - overall_dis + + if credit == 1 + total_amount = 0 + end + + if total_amount >= 0 + receipt_no = sObj.receipt_no + membership = MembershipSetting.find_by_membership_type("paypar_url") + memberaction = MembershipAction.find_by_membership_type("rebate") + merchant_uid = memberaction.merchant_account_id.to_s + campaign_type_id = memberaction.additional_parameter["campaign_type_id"] + auth_token = memberaction.auth_token.to_s + url = membership.gateway_url.to_s + memberaction.gateway_url.to_s + + # Control for Paypar Cloud + begin + response = HTTParty.post(url, + :body => { + generic_customer_id:generic_customer_id , + total_sale_transaction_amount: sObj.grand_total, + merchant_uid:merchant_uid, + total_amount: total_amount, + campaign_type_id: campaign_type_id, + receipt_no: receipt_no, + campaign_method: rebate_arr.to_json, + auth_token:auth_token + }.to_json, + :headers => { + 'Content-Type' => 'application/json', + 'Accept' => 'application/json; version=2' + }, :timeout => 10) + rescue Net::OpenTimeout + response = { "status": false , "message": "Connect To" } + rescue OpenURI::HTTPError + response = { "status": false, "message": "Can't connect server"} + + rescue SocketError + response = { "status": false, "message": "Can't connect server"} + end + Rails.logger.debug "Rebage Response" + Rails.logger.debug response.to_json + return response end - Rails.logger.debug "Rebage Response" - Rails.logger.debug response.to_json - return response end else - response = { "status": "no_member", "message": "Not membership"} - + response = { "status": "no_member", "message": "Not membership"} end end