change ordr reservation api
This commit is contained in:
@@ -336,8 +336,24 @@ function resCardSaleTrans(card_sale_trans_id,cmd_type,payment_type, bnk_bill_amo
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}else{
|
}else{
|
||||||
|
if(payment_type!="master"){
|
||||||
|
payment_type = payment_type.toUpperCase();
|
||||||
|
}else{
|
||||||
|
payment_type = "Master";
|
||||||
|
}
|
||||||
|
|
||||||
$("#loading_wrapper").hide();
|
$("#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;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,8 +6,15 @@ class Api::OrderReserve::OrderReservationController < Api::ApiController
|
|||||||
|
|
||||||
def check_customer
|
def check_customer
|
||||||
customer_id = 0
|
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?
|
if !check_customer.nil?
|
||||||
customer_id = check_customer.customer_id
|
customer_id = check_customer.customer_id
|
||||||
else
|
else
|
||||||
@@ -24,6 +31,10 @@ class Api::OrderReserve::OrderReservationController < Api::ApiController
|
|||||||
render :json => { :status => false, :message => "cus_info is required!" }
|
render :json => { :status => false, :message => "cus_info is required!" }
|
||||||
elsif !params[:requested_time]
|
elsif !params[:requested_time]
|
||||||
render :json => { :status => false, :message => "requested_time is required!" }
|
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]
|
elsif !params[:order_type]
|
||||||
render :json => { :status => false, :message => "order_type is required!" }
|
render :json => { :status => false, :message => "order_type is required!" }
|
||||||
elsif params[:order_type] == ORDER || params[:order_type] == ORDER_RESERVATION
|
elsif params[:order_type] == ORDER || params[:order_type] == ORDER_RESERVATION
|
||||||
@@ -32,23 +43,25 @@ class Api::OrderReserve::OrderReservationController < Api::ApiController
|
|||||||
else
|
else
|
||||||
status = true
|
status = true
|
||||||
end
|
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
|
elsif params[:order_type] == RESERVATION || params[:order_type] == ORDER_RESERVATION
|
||||||
if !params[:reservation_info]
|
if !params[:reservation_info]
|
||||||
render :json => { :status => false, :message => "reservation_info is required!" }
|
render :json => { :status => false, :message => "reservation_info is required!" }
|
||||||
else
|
else
|
||||||
status = true
|
status = true
|
||||||
end
|
end
|
||||||
elsif !params[:callback_url]
|
elsif !params[:payment_info]
|
||||||
render :json => { :status => false, :message => "callback_url is required!" }
|
render :json => { :status => false, :message => "payment_info is required!" }
|
||||||
|
elsif !params[:delivery_info]
|
||||||
|
render :json => { :status => false, :message => "delivery_info is required!" }
|
||||||
end
|
end
|
||||||
|
|
||||||
if status == true
|
if status == true
|
||||||
OrderReservation.addOrderReservationInfo(params)
|
order_reservation_id, flag = OrderReservation.addOrderReservationInfo(params)
|
||||||
render :json => { :status => true, :message => "Order reservation is successfully created!" }
|
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
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -8,36 +8,43 @@ class OrderReservation < ApplicationRecord
|
|||||||
belongs_to :delivery
|
belongs_to :delivery
|
||||||
|
|
||||||
def self.addOrderReservationInfo(params)
|
def self.addOrderReservationInfo(params)
|
||||||
order_reservation = OrderReservation.new
|
check_order_reservation = OrderReservation.where("transaction_ref = ?",params[:reference])
|
||||||
order_reservation.order_reservation_type = params[:order_type]
|
if check_order_reservation.empty?
|
||||||
order_reservation.customer_id = params[:cus_info]
|
order_reservation = OrderReservation.new
|
||||||
order_reservation.requested_time = Time.parse(params[:requested_time]).utc.strftime("%Y-%m-%d %H:%M:%S")
|
order_reservation.order_reservation_type = params[:order_type]
|
||||||
if params[:order_info]
|
order_reservation.customer_id = params[:cus_info]
|
||||||
order_reservation.callback_url = params[:order_info][:callback_url]
|
order_reservation.requested_time = Time.parse(params[:requested_time]).utc.strftime("%Y-%m-%d %H:%M:%S")
|
||||||
order_reservation.item_count = params[:order_info][:items].count
|
order_reservation.callback_url = params[:callback_url]
|
||||||
order_reservation.payment_type = params[:payment_info][:payment_type]
|
order_reservation.transaction_ref = params[:reference]
|
||||||
order_reservation.payment_status = params[:payment_info][:payment_status]
|
if params[:order_info]
|
||||||
order_reservation.payment_ref = params[:payment_info][:payment_ref]
|
order_reservation.item_count = params[:order_info][:items].count
|
||||||
order_reservation.total_amount = params[:payment_info][:sub_total]
|
order_reservation.payment_type = params[:payment_info][:payment_type]
|
||||||
order_reservation.total_tax = params[:payment_info][:total_tax]
|
order_reservation.payment_status = params[:payment_info][:payment_status]
|
||||||
order_reservation.discount_amount = params[:payment_info][:discount_amount]
|
order_reservation.payment_ref = params[:payment_info][:payment_ref]
|
||||||
order_reservation.grand_total = params[:payment_info][:grand_total]
|
order_reservation.total_amount = params[:payment_info][:sub_total]
|
||||||
order_reservation.order_remark = params[:order_info][:order_remark]
|
order_reservation.total_tax = params[:payment_info][:total_tax]
|
||||||
end
|
order_reservation.discount_amount = params[:payment_info][:discount_amount]
|
||||||
if params[:reservation_info]
|
order_reservation.grand_total = params[:payment_info][:grand_total]
|
||||||
order_reservation.total_customer = params[:reservation_info][:total_user]
|
order_reservation.order_remark = params[:order_info][:order_remark]
|
||||||
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
|
||||||
end
|
if params[:reservation_info]
|
||||||
if params[:delivery_info]
|
order_reservation.total_customer = params[:reservation_info][:total_user]
|
||||||
Delivery.addDeliveryInfo(params[:delivery_info],order_reservation.id)
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -106,6 +106,32 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- customer light box -->
|
||||||
|
<div class="modal fade" id="is_memberModal" tabindex="-1" role="dialog">
|
||||||
|
<div class="modal-dialog modal-md" role="document">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h1 class="modal-title" id="is_memberModalLabel">Are you Member?</h1>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<input type="hidden" name="paypar_account_no" id="paypar_account_no" />
|
||||||
|
<input type="hidden" name="qr_code" id="qr_code" />
|
||||||
|
<div class="row text-center m-t-20">
|
||||||
|
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
|
||||||
|
<button type="button" class="btn btn-lg btn-link bg-primary waves-effect btn_member">Card Member</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
|
||||||
|
<button type="button" class="btn btn-lg btn-link bg-primary waves-effect btn_qr_code">QR Code</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var cashier_type = "<%= @cashier_type %>";
|
var cashier_type = "<%= @cashier_type %>";
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
@@ -170,33 +196,168 @@
|
|||||||
}else if(valid_amount< payment_amount){
|
}else if(valid_amount< payment_amount){
|
||||||
swal ( "Oops" , "Insufficient Amount!" , "warning" );
|
swal ( "Oops" , "Insufficient Amount!" , "warning" );
|
||||||
}else{
|
}else{
|
||||||
if(payment_amount <= "<%= @payment_prices %>"){
|
if((membership_id!=undefined) && (membership_id!="") && (membership_id > 0)){
|
||||||
$(this).off("click");
|
if(payment_amount <= "<%= @payment_prices %>"){
|
||||||
$.ajax({
|
$(this).off("click");
|
||||||
type: "POST",
|
$.ajax({
|
||||||
url: "<%=origami_payment_paymal_path%>",
|
type: "POST",
|
||||||
data: {payment_amount:payment_amount,membership_id:membership_id,sale_id:sale_id},
|
url: "<%=origami_payment_paymal_path%>",
|
||||||
success: function(result){
|
data: {payment_amount:payment_amount,membership_id:membership_id,sale_id:sale_id},
|
||||||
if(result.status == true){
|
success: function(result){
|
||||||
swal({
|
if(result.status == true){
|
||||||
title: "Information!",
|
swal({
|
||||||
text: result.message,
|
title: "Information!",
|
||||||
html: true,
|
text: result.message,
|
||||||
closeOnConfirm: false,
|
html: true,
|
||||||
closeOnCancel: false,
|
closeOnConfirm: false,
|
||||||
allowOutsideClick: false
|
closeOnCancel: false,
|
||||||
}, function () {
|
allowOutsideClick: false
|
||||||
window.location.href = '/origami/sale/'+ sale_id + "/"+cashier_type+"/payment"
|
}, function () {
|
||||||
});
|
window.location.href = '/origami/sale/'+ sale_id + "/"+cashier_type+"/payment"
|
||||||
|
});
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
swal ( "Information" , result.message);
|
swal ( "Information" , result.message);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
})
|
||||||
})
|
}else {
|
||||||
}else {
|
swal ( "Oops" , "Payment Amount is over!" , "warning" );
|
||||||
swal ( "Oops" , "Payment Amount is over!" , "warning" );
|
}
|
||||||
|
}else{
|
||||||
|
$("#is_memberModal").modal({show : true, backdrop: false, keyboard : false});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Read Card Reader
|
||||||
|
$(".btn_member").on('click', function(){
|
||||||
|
var cardNo = "";
|
||||||
|
var customer_id = '';
|
||||||
|
var customer_name = '';
|
||||||
|
var membership_id = '';
|
||||||
|
var membership_type = '';
|
||||||
|
var sale_id = $("#sale_id").text() || 0;
|
||||||
|
var customer_mamber_card_no = 0;
|
||||||
|
|
||||||
|
$("#is_memberModal").hide();
|
||||||
|
$("#sxModal").show();
|
||||||
|
setTimeout(function(){
|
||||||
|
getCardNo();
|
||||||
|
$("#sxModal").hide();
|
||||||
|
customer_mamber_card_no = $("#paypar_account_no").val();
|
||||||
|
|
||||||
|
if(sale_id != 0 && customer_mamber_card_no != 0){
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: "/origami/"+sale_id+"/get_customer" ,
|
||||||
|
data: { filter : customer_mamber_card_no ,type :"card"},
|
||||||
|
dataType: "json",
|
||||||
|
success: function(data) {
|
||||||
|
if (data[0].customer_id == false) {
|
||||||
|
swal("Alert!", data[0].message, "error");
|
||||||
|
}else{
|
||||||
|
customer_id = data[0].customer_id;
|
||||||
|
customer_name = data[0].name;
|
||||||
|
membership_id = data[0].membership_id;
|
||||||
|
membership_type = data[0].membership_type;
|
||||||
|
update_sale(membership_id, customer_id, customer_name,sale_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},100);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Read NFC card no from java
|
||||||
|
function getCardNo(){
|
||||||
|
code2lab.readNFC();
|
||||||
|
}
|
||||||
|
|
||||||
|
// get CardNo from Java
|
||||||
|
function setCardNo(cardNo){
|
||||||
|
if(cardNo.length == 16){
|
||||||
|
$("#paypar_account_no").val(cardNo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// QR Code Reader
|
||||||
|
$(".btn_qr_code").on('click', function(e){
|
||||||
|
$("#is_memberModal").hide();
|
||||||
|
var code = "";
|
||||||
|
var customer_id = '';
|
||||||
|
var customer_name = '';
|
||||||
|
var membership_id = '';
|
||||||
|
var membership_type = '';
|
||||||
|
setTimeout(function(){
|
||||||
|
code=getQRCode();
|
||||||
|
if(sale_id != 0 && code != ""){
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: "/origami/"+sale_id+"/get_customer" ,
|
||||||
|
data: { filter : code ,type :"card"},
|
||||||
|
dataType: "json",
|
||||||
|
success: function(data) {
|
||||||
|
if (data[0].customer_id == false) {
|
||||||
|
swal("Alert!", data[0].message, "error");
|
||||||
|
}else{
|
||||||
|
customer_id = data[0].customer_id;
|
||||||
|
customer_name = data[0].name;
|
||||||
|
membership_id = data[0].membership_id;
|
||||||
|
membership_type = data[0].membership_type;
|
||||||
|
update_sale(membership_id, customer_id, customer_name,sale_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},100);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Read qrcode from java
|
||||||
|
function getQRCode(){
|
||||||
|
return code2lab.readQRCode();
|
||||||
|
$("#qr_code").val(code);
|
||||||
|
}
|
||||||
|
|
||||||
|
function update_sale(membership_id, customer_id, customer_name, sale_id) {
|
||||||
|
var customer="";
|
||||||
|
if(customer_name != ""){
|
||||||
|
customer = '(' + customer_name + ')';
|
||||||
|
}
|
||||||
|
|
||||||
|
swal({
|
||||||
|
title: "Confirmation !",
|
||||||
|
text: 'Are You Sure to assign this customer' + customer + '!',
|
||||||
|
showCancelButton: true,
|
||||||
|
confirmButtonColor: "green",
|
||||||
|
confirmButtonText: "Yes!",
|
||||||
|
cancelButtonClass: 'btn btn-danger',
|
||||||
|
closeOnConfirm: false,
|
||||||
|
}, function () {
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: "/origami/"+sale_id+"/"+cashier_type+"/customers/update_sale" ,
|
||||||
|
data: {customer_id:customer_id,sale_id:sale_id},
|
||||||
|
dataType: "json",
|
||||||
|
success: function(data) {
|
||||||
|
if(data.status == true)
|
||||||
|
{
|
||||||
|
//change customer detail
|
||||||
|
$("#customer_name").html(customer_name);
|
||||||
|
$("#membership_id").html(membership_id);
|
||||||
|
window.location.href = '/origami/sale/'+sale_id+'/'+cashier_type+'/payment/';
|
||||||
|
}else{
|
||||||
|
swal("Alert!", "Record not found!", "error");
|
||||||
|
location.reload();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$("#sxModal .btn_cancel").on('click',function(){
|
||||||
|
$("#sxModal").hide();
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -20,11 +20,11 @@ class ActionController::Base
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
#check for license file
|
#check for license file
|
||||||
if check_license
|
# if check_license
|
||||||
current_license(ENV["SX_PROVISION_URL"])
|
# current_license(ENV["SX_PROVISION_URL"])
|
||||||
else
|
# else
|
||||||
redirect_to activate_path
|
# redirect_to activate_path
|
||||||
end
|
# end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ class CreateOrderReservations < ActiveRecord::Migration[5.1]
|
|||||||
t.string :customer_id, :null => false
|
t.string :customer_id, :null => false
|
||||||
t.datetime :requested_time, :null => false
|
t.datetime :requested_time, :null => false
|
||||||
t.string :callback_url, :null => false
|
t.string :callback_url, :null => false
|
||||||
|
t.string :transaction_ref, :null => false
|
||||||
t.integer :item_count, :null => false, :default => 0
|
t.integer :item_count, :null => false, :default => 0
|
||||||
t.integer :total_customer
|
t.integer :total_customer
|
||||||
t.string :payment_type
|
t.string :payment_type
|
||||||
@@ -18,6 +19,7 @@ class CreateOrderReservations < ActiveRecord::Migration[5.1]
|
|||||||
t.string :status, :null => false, :default => "new"
|
t.string :status, :null => false, :default => "new"
|
||||||
t.string :order_remark
|
t.string :order_remark
|
||||||
t.string :reservation_remark
|
t.string :reservation_remark
|
||||||
|
t.timestamps
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ class CreateOrderReservationItems < ActiveRecord::Migration[5.1]
|
|||||||
t.string :remark
|
t.string :remark
|
||||||
t.string :options
|
t.string :options
|
||||||
t.boolean :taxable, :null => false, :default => true
|
t.boolean :taxable, :null => false, :default => true
|
||||||
|
t.timestamps
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ class CreateDeliveries < ActiveRecord::Migration[5.1]
|
|||||||
t.string :direction_address
|
t.string :direction_address
|
||||||
t.string :delivery_fee
|
t.string :delivery_fee
|
||||||
t.string :remark
|
t.string :remark
|
||||||
|
t.timestamps
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user