diff --git a/Gemfile b/Gemfile
index 02dca6af..b08df141 100644
--- a/Gemfile
+++ b/Gemfile
@@ -12,7 +12,7 @@ gem 'rails', '~> 5.1.0'
gem 'mysql2', '>= 0.3.18', '< 0.5'
#Use PosgreSQL
-gem 'pg'
+# gem 'pg'
# redis server for cable
# gem 'redis', '~> 3.0'
diff --git a/Gemfile.lock b/Gemfile.lock
index 4235d035..6a7c6340 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -110,7 +110,6 @@ GEM
nokogiri (1.7.2)
mini_portile2 (~> 2.1.0)
pdf-core (0.7.0)
- pg (0.20.0)
prawn (2.2.2)
pdf-core (~> 0.7.0)
ttfunk (~> 1.5)
@@ -247,7 +246,6 @@ DEPENDENCIES
kaminari (~> 0.16.3)
listen (~> 3.0.5)
mysql2 (>= 0.3.18, < 0.5)
- pg
prawn
prawn-table
puma (~> 3.0)
diff --git a/app/assets/javascripts/origami.js b/app/assets/javascripts/origami.js
index d3ac9e76..4af97d29 100644
--- a/app/assets/javascripts/origami.js
+++ b/app/assets/javascripts/origami.js
@@ -28,7 +28,7 @@ $(document).ready(function(){
$("#order-Tax").text('');
$("#order-grand-total").text('');
- var zone_name=$(this).find(".orders-table").text();
+ var zone_name=$(this).find(".orders-table").text();
var receipt_no=$(this).find(".orders-receipt-no").text();
var unique_id = $(this).find(".orders-id").text();
var order_status=$(this).find(".orders-order-status").text().trim();
@@ -37,15 +37,12 @@ $(document).ready(function(){
control_button(order_status);
//for customer button
- if(unique_id.charAt(0) == 'S'){
$("#customer").removeAttr('disabled');
- }else{
- $("#customer").attr('disabled','disabled');
- }
+
var customer_id=$(this).find(".customer-id").text();
show_customer_details(customer_id);
-
+
var cashier="";
var receipt_date="";
@@ -63,7 +60,7 @@ $(document).ready(function(){
type: "POST",
url: "/origami/" + unique_id,
data: { 'booking_id' : unique_id },
- success:function(result){
+ success:function(result){
for (i = 0; i < result.length; i++) {
var data = JSON.stringify(result[i]);
var parse_data = JSON.parse(data);
@@ -80,7 +77,7 @@ $(document).ready(function(){
//Receipt Charges
sub_total += (parse_data.qty*parse_data.price);
-
+
discount_amount = parse_data.discount_amount == null? '0.0' : parse_data.discount_amount;
tax_amount = parse_data.tax_amount;
grand_total_amount = parse_data.grand_total_amount;
@@ -178,26 +175,44 @@ $(document).ready(function(){
});
$('#customer').click(function() {
- var sale_id=$(".selected-item").find(".orders-id").text();
+ var sale = $(".selected-item").find(".orders-id").text();
+ if (sale.substring(0, 3)=="SAL") {
+ var sale_id = sale
+ }else{
+ var sale_id = $(".selected-item").find(".order-cid").text();
+ }
window.location.href = '/origami/'+ sale_id + "/add_customer"
return false;
});
- function show_customer_details(customer_id){
- $('.customer_detail').removeClass('hide');
- //Start Ajax
- $.ajax({
- type: "GET",
- url: "origami/"+customer_id+"/get_customer/",
- data: {},
- dataType: "json",
- success: function(data) {
- $("#customer_name").text(data.name);
- $("#customer_name").text(data.name);
- }
- });
- //End Ajax
+ function show_customer_details(customer_id){
+
+ $('.customer_detail').removeClass('hide');
+ //Start Ajax
+ $.ajax({
+ type: "GET",
+ url: "origami/"+customer_id+"/get_customer/",
+ data: {},
+ dataType: "json",
+ success: function(data) {
+ $("#customer_name").text(data["customer"].name);
+ $.each(data["response_data"]["data"], function (i) {
+ if(data["response_data"]["data"][i]["accountable_type"] == "RebateAccount"){
+ var balance = data["response_data"]["data"][i]["balance"];
+ console.log(balance);
+ if (balance) {
+ $("#customer_amount").text(balance);
+ }else{
+ $("#customer_amount").text('00');
+ }
+
+
+ }
+ });
+ }
+ });
+ //End Ajax
}
/* For Receipt - Calculate discount or tax */
diff --git a/app/assets/javascripts/settings/orders.coffee b/app/assets/javascripts/settings/orders.coffee
new file mode 100644
index 00000000..24f83d18
--- /dev/null
+++ b/app/assets/javascripts/settings/orders.coffee
@@ -0,0 +1,3 @@
+# Place all the behaviors and hooks related to the matching controller here.
+# All this logic will automatically be available in application.js.
+# You can use CoffeeScript in this file: http://coffeescript.org/
diff --git a/app/assets/stylesheets/settings/orders.scss b/app/assets/stylesheets/settings/orders.scss
new file mode 100644
index 00000000..436ceee1
--- /dev/null
+++ b/app/assets/stylesheets/settings/orders.scss
@@ -0,0 +1,3 @@
+// Place all the styles related to the settings/orders controller here.
+// They will automatically be included in application.css.
+// You can use Sass (SCSS) here: http://sass-lang.com/
diff --git a/app/controllers/crm/customers_controller.rb b/app/controllers/crm/customers_controller.rb
index f6159cb7..01acd441 100644
--- a/app/controllers/crm/customers_controller.rb
+++ b/app/controllers/crm/customers_controller.rb
@@ -14,9 +14,9 @@ class Crm::CustomersController < BaseCrmController
end
#@crm_customers = Customer.all
@crm_customer = Customer.new
- @crm_customer.valid?
-
-
+ if @crm_customer.valid?
+ @crm_customer.errors.messages
+ end
# @membership = Customer.get_member_group
# if @membership["status"] == true
# @member_group = @membership["data"]
@@ -30,6 +30,15 @@ class Crm::CustomersController < BaseCrmController
# GET /crm/customers/1
# GET /crm/customers/1.json
def show
+ @orders = Order.where("customer_id=?", params[:id])
+
+ if @orders
+ @order_items = []
+ @orders.each do |bo|
+ @order_items = @order_items + bo.order_items
+ end
+
+ end
end
# GET /crm/customers/new
@@ -45,66 +54,64 @@ class Crm::CustomersController < BaseCrmController
# POST /crm/customers
# POST /crm/customers.json
- def create
+ def create
@crm_customers = Customer.new(customer_params)
-
+
respond_to do |format|
if @crm_customers.save
name = customer_params[:name]
phone = customer_params[:contact_no]
email = customer_params[:email]
date_of_birth = customer_params[:date_of_birth]
- membership_id = params[:membership_id]
+ member_group_id = params[:member_group_id]
membership = MembershipSetting.find_by_membership_type("paypar_url")
memberaction = MembershipAction.find_by_membership_type("create_membership_customer")
- app_token = membership.auth_token.to_s
+ merchant_uid = memberaction.merchant_account_id.to_s
url = membership.gateway_url.to_s + memberaction.gateway_url.to_s
response = HTTParty.post(url, :body => { name: name,phone: phone,email: email,
date_of_birth: date_of_birth,
- membership_id: membership_id}.to_json,
+ member_group_id: member_group_id,merchant_uid:merchant_uid}.to_json,
:headers => {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
)
- if response["status"] == true
+ if response["status"] == true
+
customer = Customer.find(@crm_customers.customer_id)
status = customer.update_attributes(membership_id: response["customer_datas"]["id"])
- if params[:sale_id].nil?
-
- format.html { redirect_to '/origami/'+params[:sale_id]+'/add_customer', notice: 'Customer was successfully created.' }
- else
- format.html { redirect_to crm_customers_path, notice: 'Customer was successfully created.' }
- end
+ if params[:sale_id]
+ format.html { redirect_to '/origami/'+params[:sale_id]+'/add_customer', notice: 'Customer was successfully created.' }
+ else
+ format.html { redirect_to crm_customers_path, notice: 'Customer was successfully created'}
+ end
# format.json { render :index, status: :created, location: @crm_customers }
else
@crm_customers.destroy
- if params[:sale_id].nil?
+ if params[:sale_id]
format.html { redirect_to '/origami/'+params[:sale_id]+'/add_customer'}
else
format.html { redirect_to crm_customers_path, notice: response["message"] }
end
end
- # format.json { render :index, status: :created, location: @crm_customers }
else
-
- if params[:sale_id].nil?
-
+
+ if params[:sale_id]
format.html { redirect_to '/origami/'+params[:sale_id]+'/add_customer'}
else
-
format.html { redirect_to crm_customers_path}
format.json { render json: @crm_customers.errors, status: :unprocessable_entity }
end
end
- end
+
end
+end
# PATCH/PUT /crm/customers/1
# PATCH/PUT /crm/customers/1.json
@@ -118,15 +125,16 @@ class Crm::CustomersController < BaseCrmController
email = customer_params[:email]
date_of_birth = customer_params[:date_of_birth]
id = customer_params[:membership_id]
+ member_group_id = params[:member_group_id]
membership = MembershipSetting.find_by_membership_type("paypar_url")
memberaction = MembershipAction.find_by_membership_type("update_membership_customer")
- app_token = membership.auth_token.to_s
+ merchant_uid = memberaction.merchant_account_id.to_s
url = membership.gateway_url.to_s + memberaction.gateway_url.to_s
response = HTTParty.post(url, :body => { name: name,phone: phone,email: email,
date_of_birth: date_of_birth,
- id: id}.to_json,
+ id: id,member_group_id:member_group_id,merchant_uid:merchant_uid}.to_json,
:headers => {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
@@ -155,22 +163,6 @@ class Crm::CustomersController < BaseCrmController
end
end
- # DELETE /crm/customers/1
- # DELETE /crm/customers/1.json
- def get_sale_id
- @sale_id = params[:sale_id]
- @crm_customers = Customer.all
- @crm_customer = Customer.new
- @membership = Customer.get_member_group
- if @membership["status"] == true
- @member_group = @membership["data"]
- end
- respond_to do |format|
- format.html { render action: "index"}
- format.json { render json: @crm_customers }
- end
- end
-
private
# Use callbacks to share common setup or constraints between actions.
def set_crm_customer
diff --git a/app/controllers/origami/customers_controller.rb b/app/controllers/origami/customers_controller.rb
index 7917b03f..a1a067fe 100644
--- a/app/controllers/origami/customers_controller.rb
+++ b/app/controllers/origami/customers_controller.rb
@@ -18,15 +18,20 @@ class Origami::CustomersController < BaseOrigamiController
filter = params[:filter]
if filter.nil?
- @crm_customers = Customer.order("name").page(params[:page])
+ @crm_customers = Customer.order("name").page params[:page]
else
- @crm_customers = Customer.where("name LIKE ?", "%#{filter}%").order("name").page(params[:page])
+ @crm_customers = Customer.where("name LIKE ?", "%#{filter}%").order("name").page params[:page]
end
+ # @crm_customers = Kaminari.paginate_array(@crm_customers).page(params[:page]).per(2)
@crm_customer = Customer.new
- @membership = Customer.get_member_group
- if @membership["status"] == true
- @member_group = @membership["data"]
- end
+ # @membership = Customer.get_member_group
+ # if @membership["status"] == true
+ # @member_group = @membership["data"]
+ # end
+ puts "Errrrrrrrrrrrrrrrrr"
+ puts @crm_customer.new_record?
+
+
respond_to do |format|
# format.html { render :template => "crm/customers/index" }
format.html { render action: "index"}
diff --git a/app/controllers/origami/home_controller.rb b/app/controllers/origami/home_controller.rb
index ae2492d9..de526f81 100644
--- a/app/controllers/origami/home_controller.rb
+++ b/app/controllers/origami/home_controller.rb
@@ -49,20 +49,47 @@ class Origami::HomeController < BaseOrigamiController
def update_sale_by_customer
- sale = Sale.find(params[:sale_id])
- status = sale.update_attributes(customer_id: params[:customer_id])
-
- if status == true
+ id = params[:sale_id][0,3]
+ if(id == "SAL")
+ sale = Sale.find(params[:sale_id])
+ else
+ sale = Order.find(params[:sale_id])
+ end
+
+ status = sale.update_attributes(customer_id: params[:customer_id])
+
+ if status == true
render json: JSON.generate({:status => true})
- else
+ else
render json: JSON.generate({:status => false, :error_message => "Record not found"})
- end
+ end
end
def get_customer
- @customer = Customer.find(params[:customer_id])
- render :json => @customer.to_json
+ @customer = Customer.find(params[:customer_id])
+
+ membership = MembershipSetting.find_by_membership_type("paypar_url")
+
+ memberaction = MembershipAction.find_by_membership_type("get_all_member_account")
+ merchant_uid = memberaction.merchant_account_id.to_s
+ url = membership.gateway_url.to_s + memberaction.gateway_url.to_s
+
+ response = HTTParty.get(url, :body => { membership_id: @customer.membership_id,merchant_uid:merchant_uid}.to_json,
+ :headers => {
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json'
+ }
+ )
+
+ respond_to do |format|
+ format.js do
+ render :json => {
+ :response_data => response.as_json,
+ :customer => @customer}
+ end
+ end
end
+
end
diff --git a/app/controllers/origami/redeem_payments_controller.rb b/app/controllers/origami/redeem_payments_controller.rb
index 0821a2d8..5fd386e8 100644
--- a/app/controllers/origami/redeem_payments_controller.rb
+++ b/app/controllers/origami/redeem_payments_controller.rb
@@ -16,7 +16,8 @@ class Origami::RedeemPaymentsController < BaseOrigamiController
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
- membership_data = SalePayment.get_paypar_account(url,membership_setting.auth_token,@membership_id,@campaign_type_id)
+ merchant_uid= member_actions.merchant_account_id
+ membership_data = SalePayment.get_paypar_account(url,membership_setting.auth_token,@membership_id,@campaign_type_id,merchant_uid)
if membership_data["status"]==true
@membership_rebate_balance=membership_data["balance"]
@out = true, @membership_rebate_balance,@membership_id
diff --git a/app/controllers/settings/orders_controller.rb b/app/controllers/settings/orders_controller.rb
new file mode 100644
index 00000000..b5bbdc1c
--- /dev/null
+++ b/app/controllers/settings/orders_controller.rb
@@ -0,0 +1,32 @@
+class Settings::OrdersController < ApplicationController
+ def index
+
+ filter = params[:filter]
+ if filter.nil?
+ orders = Order.order("order_id desc").limit(1000)
+ else
+ order = Order.where("order_id LIKE ?", "%#{filter}%").order("order_id desc").limit(1000).page(params[:page])
+ if order.count > 0
+ orders = order
+ else
+ orders = Order.order("order_id desc").limit(1000)
+ flash[:notice] = "There is no data."
+ end
+ end
+ @orders = Kaminari.paginate_array(orders).page(params[:page]).per(50)
+ respond_to do |format|
+ format.html # index.html.erb
+ format.json { render json: @orders }
+ end
+ end
+ def show
+
+ @order = Order.find(params[:id])
+
+ respond_to do |format|
+ format.html # show.html.erb
+ format.json { render json: @order }
+ end
+ end
+
+end
diff --git a/app/controllers/settings/sales_controller.rb b/app/controllers/settings/sales_controller.rb
new file mode 100644
index 00000000..6bb58244
--- /dev/null
+++ b/app/controllers/settings/sales_controller.rb
@@ -0,0 +1,42 @@
+class Settings::SalesController < ApplicationController
+ def index
+
+ search_date = params[:date]
+ receipt_no = params[:receipt_no]
+ today = Date.today
+
+ if receipt_no.nil? && search_date.nil?
+ @sales = Sale.where("NOT sale_status = 'void'" ).order("sale_id desc").limit(500)
+ else
+ if !search_date.blank? && receipt_no.blank?
+ sale = Sale.where("DATE_FORMAT(receipt_date,'%Y-%b-%d') = ?", search_date).order("sale_id desc").limit(500).page(params[:page])
+ elsif !search_date.blank? && !receipt_no.blank?
+ sale = Sale.where("receipt_no LIKE ? or DATE_FORMAT(receipt_date,'%Y-%b-%d') = ?", "%#{receipt_no}%", search_date).order("sale_id desc").limit(500).page(params[:page])
+ else
+ sale = Sale.where("receipt_no LIKE ?", receipt_no).order("sale_id desc").limit(500).page(params[:page])
+ end
+ if sale.count > 0
+ @sales = sale
+ else
+ @sales = Sale.where("NOT sale_status = 'void'").order("sale_id desc").limit(500)
+ end
+ end
+ @sales = Kaminari.paginate_array(@sales).page(params[:page]).per(50)
+ respond_to do |format|
+ format.html # index.html.erb
+ format.json { render json: @sales }
+ end
+ end
+
+ def show
+
+ @sale = Sale.find(params[:id])
+ # @sale_receivables = SaleReceivable.where('sale_id = ?', @sale.id)
+ respond_to do |format|
+ format.html # show.html.erb
+ format.json { render json: @sale }
+ end
+ end
+
+
+end
\ No newline at end of file
diff --git a/app/helpers/settings/orders_helper.rb b/app/helpers/settings/orders_helper.rb
new file mode 100644
index 00000000..f5825365
--- /dev/null
+++ b/app/helpers/settings/orders_helper.rb
@@ -0,0 +1,2 @@
+module Settings::OrdersHelper
+end
diff --git a/app/models/customer.rb b/app/models/customer.rb
index 4f013678..b5e101cb 100644
--- a/app/models/customer.rb
+++ b/app/models/customer.rb
@@ -14,9 +14,9 @@ class Customer < ApplicationRecord
def self.get_member_group
- membership = MembershipSetting.find_by_membership_type("paypar_url")
+ membership = MembershipSetting.find_by_membership_type("paypar_url")
memberaction = MembershipAction.find_by_membership_type("get_all_member_group")
- app_token = membership.auth_token.to_s
+ app_token = membership.auth_token.to_s
url = membership.gateway_url.to_s + memberaction.gateway_url.to_s
response = HTTParty.get(url,
diff --git a/app/models/dining_queue.rb b/app/models/dining_queue.rb
index dfcc5b43..ea6a1381 100644
--- a/app/models/dining_queue.rb
+++ b/app/models/dining_queue.rb
@@ -1,3 +1,2 @@
class DiningQueue < ApplicationRecord
-
end
diff --git a/app/models/lookup.rb b/app/models/lookup.rb
index e1b141df..5434cedd 100644
--- a/app/models/lookup.rb
+++ b/app/models/lookup.rb
@@ -17,6 +17,10 @@ class Lookup < ApplicationRecord
"Gateway Communication Type" => "gateway_communication_type"}
end
+ # def self.get_by_type( lookup_type)
+ # Lookup.select("value, name").where("lookup_type = ?", lookup_type ).order("name asc").map { |r| [r.name, r.value] }
+ # end
+
def self.collection_of(type)
Lookup.select("name, value").where("lookup_type" => type ).map { |l| [l.name, l.value] }
diff --git a/app/models/order.rb b/app/models/order.rb
index ebb3b032..5a4d6e2d 100644
--- a/app/models/order.rb
+++ b/app/models/order.rb
@@ -33,10 +33,7 @@ class Order < ApplicationRecord
table.status = "occupied"
table.save
else
- puts "b"
-
- booking = Booking.find(self.booking_id)
-
+ booking = Booking.find(self.booking_id)
end
booking.save!
@@ -226,26 +223,28 @@ class Order < ApplicationRecord
#Origami: Cashier : to view booking order Table
def self.get_booking_order_table
- booking_orders = Booking.select("sales.receipt_no,orders.status as order_status,orders.customer_id as customer_id,
+ booking_orders = Booking.select("sales.receipt_no,orders.status as order_status,
+ orders.order_id as order_id,sales.customer_id as sale_customer_id,orders.customer_id as order_customer_id,
bookings.booking_id,sales.sale_id as sale_id,dining_facilities.name as table_name")
.joins("left join booking_orders on booking_orders.booking_id = bookings.booking_id")
.joins("left join dining_facilities on dining_facilities.id = bookings.dining_facility_id")
.joins("left join orders on orders.order_id = booking_orders.order_id")
.joins("left join sales on sales.sale_id = bookings.sale_id")
.where("booking_orders.order_id IS NOT NULL and dining_facilities.type=? and dining_facilities.is_active=?",DiningFacility::TABLE_TYPE,true)
- .group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.status")
+ .group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.status,orders.order_id")
end
#Origami: Cashier : to view booking order Table
def self.get_completed_order
- completed_orders = Booking.select("sales.receipt_no,orders.status as order_status,
- bookings.booking_id,sales.sale_id as sale_id,dining_facilities.name as table_name")
+ completed_orders = Booking.select("sales.receipt_no,orders.status as order_status,orders.order_id,
+ bookings.booking_id,sales.sale_id as sale_id,dining_facilities.name as table_name,sales.customer_id as sale_customer_id,orders.customer_id as order_customer_id")
.joins("left join booking_orders on booking_orders.booking_id = bookings.booking_id")
.joins("left join dining_facilities on dining_facilities.id = bookings.dining_facility_id")
.joins("left join orders on orders.order_id = booking_orders.order_id")
.joins("left join sales on sales.sale_id = bookings.sale_id")
.where("sales.sale_status='completed'")
+<<<<<<< HEAD
.group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.status")
end
@@ -257,14 +256,15 @@ class Order < ApplicationRecord
.joins("left join dining_facilities on dining_facilities.id = bookings.dining_facility_id")
.joins("left join orders on orders.order_id = booking_orders.order_id")
.joins("left join sales on sales.sale_id = bookings.sale_id")
- .where("sales.sale_status<>'completed' and booking_orders.order_id IS NOT NULL and dining_facilities.type=? and dining_facilities.is_active=?",DiningFacility::TABLE_TYPE,true)
- .group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.status")
-
+ .where("sales.sale_status<>'completed' and booking_orders.order_id IS NOT NULL and dining_facilities.type=? and dining_facilities.is_active=?",DiningFacility::TABLE_TYPE,true)
+ .group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.status,orders.customer_id,sales.customer_id,orders.order_id")
end
#Origami: Cashier : to view order type Room
def self.get_booking_order_rooms
- booking_rooms = Booking.select("sales.receipt_no,orders.status as order_status,bookings.booking_id,orders.customer_id as customer_id,
+ booking_rooms = Booking.select("sales.receipt_no,orders.status as order_status,
+ orders.order_id as order_id,sales.customer_id as sale_customer_id,orders.customer_id as order_customer_id,
+ bookings.booking_id,orders.customer_id as customer_id,
sales.sale_id as sale_id,dining_facilities.name as room_name")
.joins("left join booking_orders on booking_orders.booking_id = bookings.booking_id")
.joins("left join dining_facilities on dining_facilities.id = bookings.dining_facility_id")
@@ -273,7 +273,6 @@ class Order < ApplicationRecord
.joins("left join sales on sales.sale_id = sale_orders.sale_id")
.where("sales.sale_status<>'completed' and sales.sale_status<>'complete' and booking_orders.order_id IS NOT NULL and dining_facilities.type=? and dining_facilities.is_active=?",DiningFacility::ROOM_TYPE,true)
.group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.customer_id")
-
end
#Origami: Cashier : to view order type Room
@@ -294,7 +293,8 @@ class Order < ApplicationRecord
from = Time.now.beginning_of_day.utc
to = Time.now.end_of_day.utc
orders = Order.select("orders.order_id as order_id,sales.receipt_no,orders.status as order_status,
- orders.customer_id as customer_id,bookings.booking_id,sales.sale_id as sale_id,dining_facilities.name as table_name")
+ orders.order_id as order_id,sales.customer_id as sale_customer_id,orders.customer_id as order_customer_id
+ ,bookings.booking_id,sales.sale_id as sale_id,dining_facilities.name as table_name")
.joins("left join booking_orders on booking_orders.order_id = orders.order_id
left join bookings on bookings.booking_id = booking_orders.order_id
left join dining_facilities on dining_facilities.id = bookings.dining_facility_id
diff --git a/app/models/sale_item.rb b/app/models/sale_item.rb
index e98d3f7e..ef852bbd 100644
--- a/app/models/sale_item.rb
+++ b/app/models/sale_item.rb
@@ -1,6 +1,6 @@
class SaleItem < ApplicationRecord
self.primary_key = "sale_item_id"
-
+
#primary key - need to be unique generated for multiple shops
before_create :generate_custom_id
@@ -12,17 +12,17 @@ class SaleItem < ApplicationRecord
def self.get_order_items_details(sale_id)
- order_details = SaleItem.select("sales.total_tax as tax_amount, sales.grand_total as grand_total_amount , sales.total_discount as discount_amount,DATE_FORMAT(sales.receipt_date,'%Y-%m-%d %h:%m') as receipt_date,
+ order_details = SaleItem.select("sales.total_tax as tax_amount, sales.grand_total as grand_total_amount , sales.total_discount as discount_amount,sales.receipt_date as receipt_date,
sales.cashier_name,sales.receipt_no,sale_items.product_name as item_name,sale_items.qty,sale_items.price,sale_items.unit_price as total_price")
.joins("left join sales on sales.sale_id = sale_items.sale_id")
.where("sale_items.sale_id=?",sale_id)
# sale_orders = SaleOrder.where("sale_id=?",sale_id)
# if sale_orders
- # sale_orders.each do |sale_order|
+ # sale_orders.each do |sale_order|
# order_details = SaleItem.select("sales.total_discount as discount_amount,DATE_FORMAT(sales.receipt_date,'%Y-%m-%d %h:%m') as receipt_date,sales.cashier_name,sales.receipt_no,sale_items.product_name as item_name,sale_items.qty,sale_items.price,sale_items.unit_price as total_price")
# .joins("left join sales on sales.id = sale_items.sale_id")
- # .where("sale_items.sale_id=?",sale_order.sale_id)
+ # .where("sale_items.sale_id=?",sale_order.sale_id)
# return order_details
# end
# else
@@ -36,6 +36,7 @@ class SaleItem < ApplicationRecord
sale_items.each do |si|
food_price, beverage_price = self.get_price(si.sale_item_id)
+
food_prices = food_prices + food_price
beverage_prices = beverage_prices + beverage_price
end
@@ -57,7 +58,7 @@ class SaleItem < ApplicationRecord
return food_price, beverage_price
end
-
+
private
def generate_custom_id
self.sale_item_id = SeedGenerator.generate_id(self.class.name, "SLI")
diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb
index 27ddafa6..b8c527af 100644
--- a/app/models/sale_payment.rb
+++ b/app/models/sale_payment.rb
@@ -60,15 +60,15 @@ class SalePayment < ApplicationRecord
#record an payment in sale-audit
remark = "No outstanding Amount - Grand Total [#{invoice.grand_total}] | Due [#{amount_due}] | Paid [#{invoice.amount_received}]"
sale_audit = SaleAudit.record_payment(invoice.id, remark,action_by)
-
+
return false, "No outstanding Amount"
end
end
- def self.get_paypar_account(url,token,membership_id,campaign_type_id)
+ def self.get_paypar_account(url,token,membership_id,campaign_type_id,merchant_uid)
response = HTTParty.get(url,
- :body => { app_token: token,membership_id:membership_id,campaign_type_id:campaign_type_id}.to_json,
+ :body => { app_token: token,membership_id:membership_id,campaign_type_id:campaign_type_id,merchant_uid:merchant_uid}.to_json,
:headers => {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
@@ -82,9 +82,10 @@ class SalePayment < ApplicationRecord
membership_actions_data = MembershipAction.find_by_membership_type("redeem");
if !membership_actions_data.nil?
url = paypar_url.to_s + membership_actions_data.gateway_url.to_s
- campaign_type_id = membership_actions_data.additional_parameter["campaign_type_id"]
+ merchant_uid = membership_actions_data.merchant_account_id
+ campaign_type_id = membership_actions_data.additional_parameter["campaign_type_id"]
response = HTTParty.post(url,
- :body => { generic_customer_id:membership_id,total_amount:received_amount,receipet_no:sale_id,campaign_type_id:campaign_type_id,account_no:""}.to_json,
+ :body => { generic_customer_id:membership_id,redeem_amount:received_amount,receipet_no:sale_id,campaign_type_id:campaign_type_id,account_no:"",merchant_uid:merchant_uid}.to_json,
:headers => {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
@@ -215,12 +216,23 @@ class SalePayment < ApplicationRecord
self.sale.payment_status = "paid"
self.sale.sale_status = "completed"
self.sale.save!
- #TODO: table status
+ table_update_status(sObj)
rebat()
end
end
+ def table_update_status(sale_obj)
+ booking = Booking.find_by_sale_id(sale_obj.id)
+ if booking
+ table = DiningFacility.find(booking.dining_facility_id)
+ if table
+ table.status = "available"
+ table.save
+ end
+ end
+ end
+
def rebat
end
diff --git a/app/views/crm/customers/_error_messages.html.erb b/app/views/crm/customers/_error_messages.html.erb
new file mode 100644
index 00000000..bbff284b
--- /dev/null
+++ b/app/views/crm/customers/_error_messages.html.erb
@@ -0,0 +1,9 @@
+
+
+ Select Member Group
+ <% @member_group.each do |member| %>
+ ">
+ <%= member["name"] %>
+ <%end %>
+
+
diff --git a/app/views/crm/customers/index.html.erb b/app/views/crm/customers/index.html.erb
index e4f6d07d..9f62b55b 100644
--- a/app/views/crm/customers/index.html.erb
+++ b/app/views/crm/customers/index.html.erb
@@ -51,7 +51,7 @@
<%= crm_customer.contact_no %>
<%= crm_customer.email %>
- <%= link_to 'Destroy', crm_customer_path(crm_customer), method: :delete, data: { confirm: 'Are you sure?' } %>
+ <%= link_to 'Show', crm_customer_path(crm_customer) %>
@@ -71,7 +71,6 @@
<%= simple_form_for @crm_customer,:url => crm_customers_path, :method => :post do |f| %>
-
<%= f.error_notification %>
<%= f.hidden_field :id, :class => "form-control col-md-6 " %>
@@ -94,17 +93,20 @@
Date Of Birth
- <%= f.text_field :date_of_birth,:class=>"form-control date_of_birth datepicker"%>
+ <%= f.text_field :date_of_birth,:class => "form-control datepicker date_of_birth "%>
+
+
+ Select Member Group
+ <% Lookup.where("lookup_type = ?", "member_group_type" ).each do |member| %>
+
+ <%= member.name %>
+ <%end %>
+
+
+
-
+
+
+
-<%= link_to 'Edit', edit_crm_customer_path(@crm_customer) %> |
-<%= link_to 'Back', crm_customers_path %>
diff --git a/app/views/kaminari/_first_page.html.erb b/app/views/kaminari/_first_page.html.erb
new file mode 100644
index 00000000..2682d341
--- /dev/null
+++ b/app/views/kaminari/_first_page.html.erb
@@ -0,0 +1,11 @@
+<%# Link to the "First" page
+ - available local variables
+ url: url to the first page
+ current_page: a page object for the currently displayed page
+ total_pages: total number of pages
+ per_page: number of items to fetch per page
+ remote: data-remote
+-%>
+
+ <%= link_to_unless current_page.first?, t('views.pagination.first').html_safe, url, :remote => remote %>
+
diff --git a/app/views/kaminari/_gap.html.erb b/app/views/kaminari/_gap.html.erb
new file mode 100644
index 00000000..bbb0f983
--- /dev/null
+++ b/app/views/kaminari/_gap.html.erb
@@ -0,0 +1,8 @@
+<%# Non-link tag that stands for skipped pages...
+ - available local variables
+ current_page: a page object for the currently displayed page
+ total_pages: total number of pages
+ per_page: number of items to fetch per page
+ remote: data-remote
+-%>
+<%= t('views.pagination.truncate').html_safe %>
diff --git a/app/views/kaminari/_last_page.html.erb b/app/views/kaminari/_last_page.html.erb
new file mode 100644
index 00000000..53d61307
--- /dev/null
+++ b/app/views/kaminari/_last_page.html.erb
@@ -0,0 +1,11 @@
+<%# Link to the "Last" page
+ - available local variables
+ url: url to the last page
+ current_page: a page object for the currently displayed page
+ total_pages: total number of pages
+ per_page: number of items to fetch per page
+ remote: data-remote
+-%>
+
+ <%= link_to_unless current_page.last?, t('views.pagination.last').html_safe, url, :remote => remote %>
+
diff --git a/app/views/kaminari/_next_page.html.erb b/app/views/kaminari/_next_page.html.erb
new file mode 100644
index 00000000..4fc20712
--- /dev/null
+++ b/app/views/kaminari/_next_page.html.erb
@@ -0,0 +1,11 @@
+<%# Link to the "Next" page
+ - available local variables
+ url: url to the next page
+ current_page: a page object for the currently displayed page
+ total_pages: total number of pages
+ per_page: number of items to fetch per page
+ remote: data-remote
+-%>
+
+ <%= link_to_unless current_page.last?, t('views.pagination.next').html_safe, url, :rel => 'next', :remote => remote %>
+
diff --git a/app/views/kaminari/_page.html.erb b/app/views/kaminari/_page.html.erb
new file mode 100644
index 00000000..582af7bc
--- /dev/null
+++ b/app/views/kaminari/_page.html.erb
@@ -0,0 +1,12 @@
+<%# Link showing page number
+ - available local variables
+ page: a page object for "this" page
+ url: url to this page
+ current_page: a page object for the currently displayed page
+ total_pages: total number of pages
+ per_page: number of items to fetch per page
+ remote: data-remote
+-%>
+
+ <%= link_to_unless page.current?, page, url, {:remote => remote, :rel => page.next? ? 'next' : page.prev? ? 'prev' : nil} %>
+
diff --git a/app/views/kaminari/_paginator.html.erb b/app/views/kaminari/_paginator.html.erb
new file mode 100644
index 00000000..4fb445fd
--- /dev/null
+++ b/app/views/kaminari/_paginator.html.erb
@@ -0,0 +1,23 @@
+<%# The container tag
+ - available local variables
+ current_page: a page object for the currently displayed page
+ total_pages: total number of pages
+ per_page: number of items to fetch per page
+ remote: data-remote
+ paginator: the paginator that renders the pagination tags inside
+-%>
+<%= paginator.render do -%>
+
+<% end -%>
diff --git a/app/views/kaminari/_prev_page.html.erb b/app/views/kaminari/_prev_page.html.erb
new file mode 100644
index 00000000..9c4aff49
--- /dev/null
+++ b/app/views/kaminari/_prev_page.html.erb
@@ -0,0 +1,11 @@
+<%# Link to the "Previous" page
+ - available local variables
+ url: url to the previous page
+ current_page: a page object for the currently displayed page
+ total_pages: total number of pages
+ per_page: number of items to fetch per page
+ remote: data-remote
+-%>
+
+ <%= link_to_unless current_page.first?, t('views.pagination.previous').html_safe, url, :rel => 'prev', :remote => remote %>
+
diff --git a/app/views/origami/customers/index.html.erb b/app/views/origami/customers/index.html.erb
new file mode 100644
index 00000000..070d6d26
--- /dev/null
+++ b/app/views/origami/customers/index.html.erb
@@ -0,0 +1,233 @@
+
+
+
+
+
+
+
+
+
+
+
+ <%= paginate @crm_customers %>
+
+
+
+
+
+
+ <%= simple_form_for @crm_customer,:url => crm_customers_path, :method => :post do |f| %>
+
+
+
+ <%= f.error_notification %>
+ <%= f.hidden_field :id, :class => "form-control col-md-6 " %>
+
+
+ <%= f.input :name, :class => "form-control col-md-6 name" %>
+
+
+
+ <%= f.input :company, :class => "form-control col-md-6 company" %>
+
+
+ <%= f.input :contact_no, :class => "form-control col-md-6 contact_no" %>
+
+
+
+
+
+ <%= f.input :email, :class => "form-control col-md-6 email" %>
+
+
+
+ Date Of Birth
+ <%= f.text_field :date_of_birth,:class=>"form-control date_of_birth datepicker"%>
+
+
+
+
+ Select Member Group
+ <% Lookup.where("lookup_type = ?", "member_group_type" ).each do |member| %>
+
+ <%= member.name %>
+ <%end %>
+
+
+
+
+
+
+
+
+
+ <%= f.button :submit, "Submit",:class => 'btn btn-primary ', :id => 'submit_customer' %>
+ <%= f.button :submit, "Update",:class => 'btn btn-primary ', :disabled =>'', :id => 'update_customer' %>
+
+ <%end%>
+
+
+
+
+
+
+
+
+
+
diff --git a/app/views/origami/home/index.html.erb b/app/views/origami/home/index.html.erb
index 394d494b..0332fa12 100644
--- a/app/views/origami/home/index.html.erb
+++ b/app/views/origami/home/index.html.erb
@@ -23,37 +23,44 @@
- <%
- @completed_orders.each do |cpo|
+ <%
+ @completed_orders.each do |cpo|
# ToDo no need check new
# Assigned Id for new Order? Sale?
- unique_id=""
+ unique_id = ""
+ customer_id = ""
+
# For CSS- Class for Order? Sale?
sale_status=""
- if cpo.order_status == 'new'
+ if cpo.order_status == 'new'
unique_id=cpo.booking_id
- # check selected item and assign
- if @selected_item != nil
+
+ customer_id=cpo.order_customer_id
+ # check selected item and assign
+ if @selected_item != nil
if cpo.order_id == @selected_item.order_id
sale_status = sale_status + " selected-item"
end
end
- else
+ else
unique_id=cpo.sale_id
+ customer_id=cpo.sale_customer_id
sale_status="paid"
- # check selected item and assign
+ # check selected item and assign
if @selected_item != nil
if unique_id == @selected_item.sale_id
sale_status = sale_status + " selected-item"
end
end
- end
+ end
%>
-
<%= unique_id %>
-
<%= bko.customer_id %>
-
<%= cpo.table_name %>
+
+
<%= unique_id %>
+
<%= customer_id %>
+
<%= cpo.order_id %>
+
<%= cpo.table_name %>
Receipt No :
@@ -64,12 +71,12 @@
Order Status :
<%= cpo.order_status %>
-
+
-
-
-
- <%
+
+
+
+ <%
end
%>
@@ -78,34 +85,39 @@
- <%
- @booking_orders.each do |bko|
+ <%
+ @booking_orders.each do |bko|
# Assigned Id for new Order? Sale?
unique_id=""
+ customer_id=""
# For CSS- Class for Order? Sale?
sale_status=""
- if bko.order_status == 'new'
+ if bko.order_status == 'new'
unique_id=bko.booking_id
- # check selected item and assign
- if @selected_item != nil
+ customer_id=bko.order_customer_id
+ # check selected item and assign
+ if @selected_item != nil
if bko.order_id == @selected_item.order_id
sale_status = sale_status + " selected-item"
end
end
- else
+ else
unique_id=bko.sale_id
+ customer_id=bko.sale_customer_id
sale_status="sold"
- # check selected item and assign
+ # check selected item and assign
if @selected_item != nil
if unique_id == @selected_item.sale_id
sale_status = sale_status + " selected-item"
end
end
- end
+ end
%>
<%= unique_id %>
+
<%= customer_id %>
+
<%= bko.order_id %>
<%= bko.table_name %>
Receipt No :
@@ -135,34 +147,37 @@
@booking_rooms.each do |rmo|
# Assigned Id for new Order? Sale?
unique_id=""
+ customer_id=""
# For CSS- Class for Order? Sale?
sale_status=""
- if rmo.order_status == 'new'
+ if rmo.order_status == 'new'
unique_id=rmo.booking_id
- # check selected item and assign
- if @selected_item != nil
+ customer_id=rmo.order_customer_id
+ # check selected item and assign
+ if @selected_item != nil
if rmo.order_id == @selected_item.order_id
sale_status = sale_status + " selected-item"
- end
- end
- else
+ end
+ end
+ else
unique_id=rmo.sale_id
+ customer_id=rmo.sale_customer_id
sale_status="sold"
- # check selected item and assign
+ # check selected item and assign
if @selected_item != nil
if unique_id == @selected_item.sale_id
sale_status = sale_status + " selected-item"
end
end
- end
+ end
%>
<%= unique_id %>
-
<%= rmo.customer_id %>
-
<%= rmo.room_name %>
-
+
<%= customer_id %>
+
<%= rmo.order_id %>
+
<%= rmo.room_name %>
Receipt No :
@@ -186,40 +201,42 @@
-
- <%
- @orders.each do |odr|
+
+ <%
+ @orders.each do |odr|
# Assigned Id for new Order? Sale?
unique_id=""
+ customer_id=""
# For CSS- Class for Order? Sale?
- sale_status=""
+ sale_status=""
- if odr.order_status == 'new'
+ if odr.order_status == 'new'
unique_id=odr.booking_id
- # check selected item and assign
- if @selected_item != nil
+ customer_id = odr.order_customer_id
+ if @selected_item != nil
if odr.order_id == @selected_item.order_id
sale_status = sale_status + " selected-item"
end
end
- else
+ else
unique_id=odr.sale_id
- sale_status="sold"
- # check selected item and assign
- if @selected_item != nil
+ customer_id = odr.sale_customer_id
+ sale_status="sold"
+ # check selected item and assign
+ if @selected_item != nil
if unique_id == @selected_item.sale_id
sale_status = sale_status + " selected-item"
end
end
- end
+ end
%>
-
<%= unique_id %>
-
<%= odr.customer_id %>
-
<%= odr.table_name %>
-
-
+
<%= unique_id %>
+
<%= customer_id %>
+
<%= odr.order_id %>
+
<%= odr.table_name %>
Receipt No :
<%= odr.receipt_no %>
@@ -256,19 +273,19 @@
Receipt No: <%=@selected_item.receipt_no rescue ' '%>
-
+
Date: <%=@selected_item.receipt_date.strftime("%d/%m/%Y - %I:%M %p") rescue '-'%>
-
+
+
@@ -280,7 +297,7 @@
- <%
+ <%
# For Sale Items
sub_total = 0
if @selected_item_type == "Sale"
@@ -288,16 +305,16 @@
sub_total += sale_item.qty*sale_item.unit_price
%>
- <%= sale_item.product_name %>
+ <%= sale_item.product_name %>
<%= sale_item.qty %>
<%= sale_item.qty*sale_item.price %>
- <%
+ <%
end
end
%>
- <%
+ <%
# For Order Items
sub_total = 0
if @selected_item_type == "Order"
@@ -305,11 +322,11 @@
sub_total += order_item.qty*order_item.unit_price
%>
- <%= order_item.item_name %>
+ <%= order_item.item_name %>
<%= order_item.qty %>
<%= order_item.qty*order_item.price %>
- <%
+ <%
end
end
%>
@@ -354,7 +371,8 @@
Add Order
Edit
Move
- Customer
+ Customer
+ Req.Bill
Req.Bill
Discount
diff --git a/app/views/origami/mpu/index.html.erb b/app/views/origami/mpu/index.html.erb
index f082dc1a..7b483a75 100644
--- a/app/views/origami/mpu/index.html.erb
+++ b/app/views/origami/mpu/index.html.erb
@@ -13,7 +13,7 @@ Amount :
var sale_id = "<%= @sale_id %>";
$.ajax({type: "POST",
- url: "<%= origami_create_mpu_payment_path %>",
+ url: "<%= origami_payment_mpu_path %>",
data: "amount="+ amount + "&sale_id="+ sale_id,
success:function(result){
if(result){
diff --git a/app/views/origami/payments/show.html.erb b/app/views/origami/payments/show.html.erb
index e8d35206..f9ae06b7 100644
--- a/app/views/origami/payments/show.html.erb
+++ b/app/views/origami/payments/show.html.erb
@@ -6,8 +6,8 @@
- Receipt No : <%=@sale_data.receipt_no rescue ' '%>
- Receipt Date : <%=@sale_data.receipt_date.utc.getlocal.strftime("%d/%m/%Y - %I:%M %p") rescue '-'%>
+ Receipt No : <%=@sale_data.receipt_no rescue ' '%>
+ Receipt Date : <%=@sale_data.receipt_date.utc.getlocal.strftime("%d/%m/%Y - %I:%M %p") rescue '-'%>
Table No <% if @sale_data%>- <%=@sale_data.receipt_no%><% end %>
@@ -229,11 +229,16 @@ $( document ).ready(function() {
var card = $('#card').text();
var sale_id = $('#sale_id').text();
$.ajax({type: "POST",
- url: "<%= origami_payment_process_path %>",
+ url: "<%= origami_payment_cash_path %>",
data: "cash="+ cash + "&sale_id=" + sale_id,
success:function(result){
- alert("Thank you")
- // window.location.href = '/origami';
+ if($('#balance').text() < 0){
+ alert("Changed amount " + $('#balance').text() * (-1) )
+ }else{
+ alert("Thank you")
+ }
+
+ window.location.href = '/origami';
}
});
}
diff --git a/app/views/origami/redeem_payments/index.html.erb b/app/views/origami/redeem_payments/index.html.erb
index 72c09d4d..0ffa08e8 100644
--- a/app/views/origami/redeem_payments/index.html.erb
+++ b/app/views/origami/redeem_payments/index.html.erb
@@ -1,7 +1,7 @@