From 9b2312d3ba07b49c52e1d2a312638694c970767b Mon Sep 17 00:00:00 2001 From: phyusin Date: Wed, 11 Apr 2018 14:38:16 +0630 Subject: [PATCH] change ordr reservation api --- app/assets/javascripts/origami.js | 18 +- .../order_reservation_controller.rb | 31 ++- app/models/order_reservation.rb | 65 +++--- app/views/origami/paymal/index.html.erb | 209 ++++++++++++++++-- config/initializers/action_controller.rb | 10 +- ...0180406080240_create_order_reservations.rb | 2 + ...06080359_create_order_reservation_items.rb | 1 + .../20180406080436_create_deliveries.rb | 1 + 8 files changed, 269 insertions(+), 68 deletions(-) diff --git a/app/assets/javascripts/origami.js b/app/assets/javascripts/origami.js index fb3f966b..ca021430 100755 --- a/app/assets/javascripts/origami.js +++ b/app/assets/javascripts/origami.js @@ -336,8 +336,24 @@ function resCardSaleTrans(card_sale_trans_id,cmd_type,payment_type, bnk_bill_amo } }); }else{ + if(payment_type!="master"){ + payment_type = payment_type.toUpperCase(); + }else{ + payment_type = "Master"; + } + $("#loading_wrapper").hide(); - swal ( "Oops" , resMsg.toString() , "error" ); + swal({ + title: 'Oops', + text: resMsg.toString(), + type: 'error', + html: true, + closeOnConfirm: false, + closeOnCancel: false, + allowOutsideClick: false + }, function () { + window.location.href = '/origami/sale/'+ sale_id +"/"+cashier_type + "/payment/others_payment/"+payment_type; + }); } } diff --git a/app/controllers/api/order_reserve/order_reservation_controller.rb b/app/controllers/api/order_reserve/order_reservation_controller.rb index 957b84a9..2dfc29aa 100644 --- a/app/controllers/api/order_reserve/order_reservation_controller.rb +++ b/app/controllers/api/order_reserve/order_reservation_controller.rb @@ -6,8 +6,15 @@ class Api::OrderReserve::OrderReservationController < Api::ApiController def check_customer customer_id = 0 + if !params[:name] + render :json => { :status => false, :message => "name is required!" } + elsif !params[:email] + render :json => { :status => false, :message => "email is required!" } + elsif !params[:membership_id] + render :json => { :status => false, :message => "membership_id is required!" } + end - check_customer = Customer.find_by_email_and_contact_no_and_membership_id(params[:email],params[:contact_no],params[:membership_id]) + check_customer = Customer.find_by_email_and_membership_id(params[:email],params[:membership_id]) if !check_customer.nil? customer_id = check_customer.customer_id else @@ -24,6 +31,10 @@ class Api::OrderReserve::OrderReservationController < Api::ApiController render :json => { :status => false, :message => "cus_info is required!" } elsif !params[:requested_time] render :json => { :status => false, :message => "requested_time is required!" } + elsif !params[:callback_url] + render :json => { :status => false, :message => "callback_url is required!" } + elsif !params[:reference] + render :json => { :status => false, :message => "reference 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 @@ -32,23 +43,25 @@ class Api::OrderReserve::OrderReservationController < Api::ApiController 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 - elsif !params[:callback_url] - render :json => { :status => false, :message => "callback_url is required!" } + 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!" } end if status == true - OrderReservation.addOrderReservationInfo(params) - render :json => { :status => true, :message => "Order reservation is successfully created!" } + order_reservation_id, flag = OrderReservation.addOrderReservationInfo(params) + if flag + render :json => { :status => true, :order_reservation_id => order_reservation_id, :message => "Order reservation is successfully created!" } + else + render :json => { :status => true, :order_reservation_id => order_reservation_id, :message => "Order reservation is already existed!" } + end end end end diff --git a/app/models/order_reservation.rb b/app/models/order_reservation.rb index 84821314..62342b0c 100644 --- a/app/models/order_reservation.rb +++ b/app/models/order_reservation.rb @@ -8,36 +8,43 @@ class OrderReservation < ApplicationRecord 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.callback_url = params[:order_info][:callback_url] - 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[:order_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) + check_order_reservation = OrderReservation.where("transaction_ref = ?",params[:reference]) + if check_order_reservation.empty? + 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") + order_reservation.callback_url = params[:callback_url] + order_reservation.transaction_ref = params[:reference] + 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[:order_info][:order_remark] end - end - if params[:delivery_info] - Delivery.addDeliveryInfo(params[:delivery_info],order_reservation.id) + 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 + return order_reservation.id, true + else + return check_order_reservation[0].id, false end end diff --git a/app/views/origami/paymal/index.html.erb b/app/views/origami/paymal/index.html.erb index 627f9085..bbbbbafa 100644 --- a/app/views/origami/paymal/index.html.erb +++ b/app/views/origami/paymal/index.html.erb @@ -106,6 +106,32 @@ + + + + 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