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{
|
||||
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;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -106,6 +106,32 @@
|
||||
</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">
|
||||
var cashier_type = "<%= @cashier_type %>";
|
||||
$(document).ready(function() {
|
||||
@@ -170,33 +196,168 @@
|
||||
}else if(valid_amount< payment_amount){
|
||||
swal ( "Oops" , "Insufficient Amount!" , "warning" );
|
||||
}else{
|
||||
if(payment_amount <= "<%= @payment_prices %>"){
|
||||
$(this).off("click");
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "<%=origami_payment_paymal_path%>",
|
||||
data: {payment_amount:payment_amount,membership_id:membership_id,sale_id:sale_id},
|
||||
success: function(result){
|
||||
if(result.status == true){
|
||||
swal({
|
||||
title: "Information!",
|
||||
text: result.message,
|
||||
html: true,
|
||||
closeOnConfirm: false,
|
||||
closeOnCancel: false,
|
||||
allowOutsideClick: false
|
||||
}, function () {
|
||||
window.location.href = '/origami/sale/'+ sale_id + "/"+cashier_type+"/payment"
|
||||
});
|
||||
if((membership_id!=undefined) && (membership_id!="") && (membership_id > 0)){
|
||||
if(payment_amount <= "<%= @payment_prices %>"){
|
||||
$(this).off("click");
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "<%=origami_payment_paymal_path%>",
|
||||
data: {payment_amount:payment_amount,membership_id:membership_id,sale_id:sale_id},
|
||||
success: function(result){
|
||||
if(result.status == true){
|
||||
swal({
|
||||
title: "Information!",
|
||||
text: result.message,
|
||||
html: true,
|
||||
closeOnConfirm: false,
|
||||
closeOnCancel: false,
|
||||
allowOutsideClick: false
|
||||
}, function () {
|
||||
window.location.href = '/origami/sale/'+ sale_id + "/"+cashier_type+"/payment"
|
||||
});
|
||||
|
||||
}else{
|
||||
swal ( "Information" , result.message);
|
||||
}else{
|
||||
swal ( "Information" , result.message);
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}else {
|
||||
swal ( "Oops" , "Payment Amount is over!" , "warning" );
|
||||
})
|
||||
}else {
|
||||
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>
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user