diff --git a/Gemfile b/Gemfile
index 01a87af7..02dca6af 100644
--- a/Gemfile
+++ b/Gemfile
@@ -59,6 +59,8 @@ gem 'sidekiq'
# Pagination
gem 'kaminari', '~> 0.16.3'
+# Datatable
+gem 'filterrific'
# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development
diff --git a/Gemfile.lock b/Gemfile.lock
index 051e1595..4235d035 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -72,6 +72,7 @@ GEM
faker (1.7.3)
i18n (~> 0.5)
ffi (1.9.18)
+ filterrific (2.1.2)
font-awesome-rails (4.7.0.2)
railties (>= 3.2, < 5.2)
globalid (0.4.0)
@@ -238,6 +239,7 @@ DEPENDENCIES
database_cleaner
factory_girl_rails (~> 4.0)
faker
+ filterrific
font-awesome-rails
httparty (~> 0.15.5)
jbuilder (~> 2.5)
diff --git a/app/assets/javascripts/CRM.js b/app/assets/javascripts/CRM.js
new file mode 100644
index 00000000..66f161af
--- /dev/null
+++ b/app/assets/javascripts/CRM.js
@@ -0,0 +1,17 @@
+// This is a manifest file that'll be compiled into application.js, which will include all the files
+// listed below.
+//
+// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
+// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
+//
+// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
+// compiled file. JavaScript code in this file should be added after the last require_* statement.
+//
+// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
+// about supported directives.
+//
+//= require jquery
+//= require bootstrap
+//= require jquery_ujs
+//= require turbolinks
+//= require cable
\ No newline at end of file
diff --git a/app/assets/javascripts/OQS.js b/app/assets/javascripts/OQS.js
index 7df365ec..2cddf699 100644
--- a/app/assets/javascripts/OQS.js
+++ b/app/assets/javascripts/OQS.js
@@ -40,31 +40,36 @@ $(document).ready(function(){
// complete for queue item
$('.order-complete').on('click',function(){
- var _self= $(this);
+ var _self = $(this); // To know in ajax return
var assigned_item_id=$(this).attr('id').substr(15);
var params = { 'id':assigned_item_id };
- var station=$(this).parent().parent(".queue_station").parent().parent().attr('id');
$.ajax({
type: 'POST',
url: '/oqs/update_delivery',
data: params,
dataType: 'json',
- success: function(data){
- var queue_station=_self.parent().parent(".queue_station");
+ success: function(data){
+ for (i = 0; i < data.length; i++) {
+ var queue_station = $('#assigned_queue_' + data[i]).parent().parent(".queue_station");
+ var station = queue_station.parent().parent().attr('id');
- // Remove a queue card from current station
- queue_station.remove();
+ // Remove a queue card from current station
+ queue_station.remove();
- // Remove a queue card from current station
- queue_station.children('.card-footer').remove();
-
- // Add removed queue card from station to completed
- $("#completed").children('.card-columns').append(queue_station);
+ // Remove a queue card from current station
+ queue_station.children('.card-footer').remove();
+
+ // Add removed queue card from station to completed
+ $("#completed").children('.card-columns').append(queue_station);
- // update queue item count in station
- $("#"+station+"_count").text(parseInt($("#"+station+"_count").text())-1);
- $("#completed_count").text(parseInt($("#completed_count").text())+1);
+ // update queue item count in each station
+ var station_count=parseInt($("#"+station+"_count").text()) - 1;
+ $("#"+station+"_count").text(station_count);
+ }
+
+ // update queue item count in completed station
+ $("#completed_count").text(parseInt($("#completed_count").text()) + data.length);
alert("updated!");
}
diff --git a/app/assets/javascripts/crm/dining_queues.coffee b/app/assets/javascripts/crm/dining_queues.coffee
new file mode 100644
index 00000000..24f83d18
--- /dev/null
+++ b/app/assets/javascripts/crm/dining_queues.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/javascripts/origami.js b/app/assets/javascripts/origami.js
index 21ec1c92..14f9fbe9 100644
--- a/app/assets/javascripts/origami.js
+++ b/app/assets/javascripts/origami.js
@@ -17,10 +17,20 @@
//= require cable
$(document).ready(function(){
+ // Enable/Disable Button
+ control_button("disabled");
+
$(".orders").on('click', function(){
- var zone_name=$(this).find(".orders-table").text();
+ $("#order-sub-total").text('');
+ // $("#order-food").text('');
+ // $("#order-beverage").text('');
+ $("#order-discount").text('');
+ $("#order-Tax").text('');
+ $("#order-grand-total").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 unique_id = $(this).find(".orders-id").text();
var order_status=$(this).find(".orders-order-status").text().trim();
// Enable/Disable Button
@@ -33,6 +43,10 @@ $(document).ready(function(){
$("#customer").attr('disabled','disabled');
}
+ var customer_id=$(this).find(".customer-id").text();
+ show_customer_details(customer_id);
+
+
var cashier="";
var receipt_date="";
var sub_total=0;
@@ -46,10 +60,16 @@ $(document).ready(function(){
// AJAX call for order
$.ajax({
- type: "GET",
- url: "origami/" + unique_id,
- data: { 'id' : unique_id },
- success:function(result){
+ type: "POST",
+ url: "/origami/" + unique_id,
+ data: { 'booking_id' : unique_id },
+ success:function(result){
+// =======
+// type: "GET",
+// url: "origami/" + unique_id,
+// data: { 'id' : unique_id },
+// success:function(result){
+// >>>>>>> 5ee3ae257a59269b651dcc5c0232b95d7f41fb77
for (i = 0; i < result.length; i++) {
var data = JSON.stringify(result[i]);
var parse_data = JSON.parse(data);
@@ -60,19 +80,20 @@ $(document).ready(function(){
receipt_date = result[i].receipt_date;
$("#receipt_no").text(receipt_no);
- $("#cashier").text(cashier==null?"":cashier);
+ $("#cashier").text(cashier == null ? "" : cashier);
$("#receipt_date").text(receipt_date);
//Receipt Charges
sub_total += (parse_data.qty*parse_data.price);
- discount_amount = parse_data.discount_amount;
+
+ 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;
$("#order-sub-total").text(sub_total);
- $("#order-food").text('');
- $("#order-beverage").text('');
+ // $("#order-food").text('');
+ // $("#order-beverage").text('');
$("#order-discount").text(discount_amount);
$("#order-Tax").text(tax_amount);
$("#order-grand-total").text(grand_total_amount);
@@ -98,7 +119,7 @@ $(document).ready(function(){
$('#request_bills').click(function() {
var order_id=$(".selected-item").find(".orders-id").text();
if(order_id!=""){
- window.location.href = '/origami/request_bills/'+ order_id
+ window.location.href = '/origami/' + order_id + '/request_bills'
}
else {
alert("Please select an order!");
@@ -110,7 +131,7 @@ $(document).ready(function(){
$('#discount').click(function() {
var order_id=$(".selected-item").find(".orders-id").text();
if(order_id!=""){
- window.location.href = '/origami/discount/'+ order_id
+ window.location.href = '/origami/' + order_id + '/discount'
}
else {
alert("Please select an order!");
@@ -122,26 +143,33 @@ $(document).ready(function(){
// Pay Discount for Payment
$("#pay-discount").on('click', function(){
var sale_id = $('#sale-id').text();
+ var sale_item_id = $('.selected-item').attr('id');
var sub_total = $('#order-sub-total').text();
var grand_total = $('#order-grand-total').text();
var discount_type = $('#discount-type').val();
var discount_value = $('#discount-amount').val();
var discount_amount = discount_value;
+ if(sale_item_id == null){
+ alert('Please select item row to discount!');
+ return;
+ }
+
// For Percentage Discount
if(discount_type == 1){
discount_amount=(sub_total*discount_value)/100;
}
- var params = {'sale_id': sale_id, 'grand_total' : grand_total, 'discount_type':discount_type, 'discount_value':discount_value, 'discount_amount':discount_amount};
+ var params = {'sale_id': sale_id, 'sale_item_id': sale_item_id, 'grand_total' : grand_total, 'discount_type':discount_type, 'discount_value':discount_value, 'discount_amount':discount_amount};
$.ajax({
type: "POST",
- url: "/origami/discount",
+ url: "/origami/" + sale_item_id + "/discount",
data: params,
success:function(result){ }
});
});
+
// Payment for Bill
$('#pay-bill').click(function() {
var sale_id=$(".selected-item").find(".orders-id").text();
@@ -157,10 +185,27 @@ $(document).ready(function(){
$('#customer').click(function() {
var sale_id=$(".selected-item").find(".orders-id").text();
- window.location.href = '/crm/customers/'+ sale_id + "/assign_sale_id"
+ 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
+}
+
/* For Receipt - Calculate discount or tax */
$('.cashier_number').on('click', function(event){
if(event.handled !== true) {
@@ -184,8 +229,9 @@ $(document).ready(function(){
case 'add':
var input_value = $(this).attr("data-value");
- amount = parseInt(input_value) + parseInt(original_value);
+ amount = parseInt(input_value);
$('#discount-amount').val(amount);
+ $('#discount-type').val(1);
update_balance();
break;
@@ -207,6 +253,11 @@ $(document).ready(function(){
}
});
+ $('.discount-item-row').on('click',function(){
+ $('.discount-item-row').removeClass('selected-item');
+ $(this).addClass('selected-item');
+ });
+
});
/* Button Control by Status */
@@ -221,6 +272,11 @@ function control_button(order_status){
$("#discount").prop('disabled', true);
$("#pay-bill").prop('disabled', true);
}
+ else {
+ $("#request_bills").prop('disabled', true);
+ $("#discount").prop('disabled', true);
+ $("#pay-bill").prop('disabled', true);
+ }
}
/* For Receipt - Update Balance */
diff --git a/app/assets/stylesheets/CRM.scss b/app/assets/stylesheets/CRM.scss
index b0f802f1..f43cc3f9 100644
--- a/app/assets/stylesheets/CRM.scss
+++ b/app/assets/stylesheets/CRM.scss
@@ -7,3 +7,5 @@
// min-height: 75rem;
// padding-top: 4.5rem;
// }
+
+
diff --git a/app/assets/stylesheets/origami.scss b/app/assets/stylesheets/origami.scss
index c37f2678..5e361f7e 100644
--- a/app/assets/stylesheets/origami.scss
+++ b/app/assets/stylesheets/origami.scss
@@ -16,11 +16,14 @@
font-size:18px;
}
-.cashier_number{
- width: 30%;
- height:71px;
- line-height:71px;
+.orders-table {
+ cursor: pointer;
+}
+.cashier_number{
+ width: 33%;
+ height:70px;
+ line-height:70px;
text-align:center;
background:#54A5AF;
// float:left;
@@ -32,8 +35,8 @@
.pay{
width: 98%;
- height:210px;
- line-height:210px;
+ height:211px;
+ line-height:211px;
text-align:center;
font-size:20px;
color:white;
@@ -44,15 +47,20 @@
}
.long{
- width:49%
+ width:49%;
}
.sold {
background-color: red;
}
+.paid {
+ background-color: green;
+}
+
.selected-item {
- background-color: blue;
+ color: #fff !important;
+ background-color: blue !important;
}
/* Reciept Style */
@@ -101,3 +109,17 @@
select.form-control {
height: inherit !important;
}
+
+.form-horizontal .form-group {
+ margin-right: 0px !important;
+}
+
+/* Discount */
+
+.discount-item-row {
+ cursor: pointer;
+}
+
+tr.discount-item-row:hover {
+ background-color: #e3e3e3 !important;
+}
diff --git a/app/controllers/api/customers_controller.rb b/app/controllers/api/customers_controller.rb
index 8ce2041c..2adc7c8a 100644
--- a/app/controllers/api/customers_controller.rb
+++ b/app/controllers/api/customers_controller.rb
@@ -9,4 +9,9 @@ class Api::CustomersController < ActionController::API
def show
@customer = Customer.find_by(params[:id])
end
+
+ #Show customer detail by Order item
+ def get_customer_order
+ @customer = Customer.find(params[:id])
+ end
end
diff --git a/app/controllers/api/orders_controller.rb b/app/controllers/api/orders_controller.rb
index df9b1542..8bd348e2 100644
--- a/app/controllers/api/orders_controller.rb
+++ b/app/controllers/api/orders_controller.rb
@@ -38,9 +38,8 @@ class Api::OrdersController < Api::ApiController
#Create Table Booking or Room Booking
- if !params["booking_id"].nil? && params[:booking_id].to_i > 0
- #@order.new_booking = false
- @order.new_booking = true
+ if !params["booking_id"].nil?
+ @order.new_booking = false
@order.booking_id = params[:booking_id]
end
diff --git a/app/controllers/base_report_controller.rb b/app/controllers/base_report_controller.rb
new file mode 100644
index 00000000..77e38f2c
--- /dev/null
+++ b/app/controllers/base_report_controller.rb
@@ -0,0 +1,8 @@
+class BaseReportController < ActionController::Base
+ include LoginVerification
+
+ #before_action :check_installation
+ protect_from_forgery with: :exception
+
+
+end
diff --git a/app/controllers/crm/bookings_controller.rb b/app/controllers/crm/bookings_controller.rb
index eeb19f75..65511512 100644
--- a/app/controllers/crm/bookings_controller.rb
+++ b/app/controllers/crm/bookings_controller.rb
@@ -1,4 +1,4 @@
-class Crm::BookingsController < ApplicationController
+class Crm::BookingsController < BaseCrmController
def update_booking
booking = Booking.find(params[:booking_id])
diff --git a/app/controllers/crm/customers_controller.rb b/app/controllers/crm/customers_controller.rb
index e0168fb5..f6159cb7 100644
--- a/app/controllers/crm/customers_controller.rb
+++ b/app/controllers/crm/customers_controller.rb
@@ -1,16 +1,26 @@
-class Crm::CustomersController < ApplicationController
+class Crm::CustomersController < BaseCrmController
before_action :set_crm_customer, only: [:show, :edit, :update, :destroy]
# GET /crm/customers
# GET /crm/customers.json
def index
- @sale_id = 0
- @crm_customers = Customer.all
- @crm_customer = Customer.new
- @membership = Customer.get_member_group
- if @membership["status"] == true
- @member_group = @membership["data"]
+ filter = params[:filter]
+
+ if filter.nil?
+ @crm_customers = Customer.order("customer_id").page(params[:page])
+ #@products = Product.order("name").page(params[:page]).per(5)
+ else
+ @crm_customers = Customer.where("name LIKE ?", "%#{filter}%").order("name").page(params[:page])
end
+ #@crm_customers = Customer.all
+ @crm_customer = Customer.new
+ @crm_customer.valid?
+
+
+ # @membership = Customer.get_member_group
+ # if @membership["status"] == true
+ # @member_group = @membership["data"]
+ # end
respond_to do |format|
format.html # index.html.erb
format.json { render json: @crm_customers }
@@ -41,8 +51,6 @@ class Crm::CustomersController < ApplicationController
respond_to do |format|
if @crm_customers.save
-
-
name = customer_params[:name]
phone = customer_params[:contact_no]
email = customer_params[:email]
@@ -63,40 +71,37 @@ class Crm::CustomersController < ApplicationController
}
)
- 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] != 0
- format.html { redirect_to crm_customers_path, notice: 'Customer was successfully created.' }
+
+ 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/'+params[:sale_id]+'/assign_sale_id', notice: 'Customer was successfully created.' }
+ 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] != 0
- format.html { redirect_to crm_customers_path, notice: response["message"] }
-
+ if params[:sale_id].nil?
+ format.html { redirect_to '/origami/'+params[:sale_id]+'/add_customer'}
else
- format.html { redirect_to '/crm/customers/'+params[:sale_id]+'/assign_sale_id', notice: response["message"] }
+ 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] != 0
- format.html { redirect_to crm_customers_path}
- format.json { render json: @crm_customers.errors, status: :unprocessable_entity }
-
- else
- format.html { redirect_to '/crm/customers/'+params[:sale_id]+'/assign_sale_id', notice: response["message"] }
- end
-
+
+ if params[:sale_id].nil?
+
+ 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
@@ -133,7 +138,7 @@ class Crm::CustomersController < ApplicationController
else
- format.html { render :edit }
+ format.html { render :index }
format.json { render json: @crm_customer.errors, status: :unprocessable_entity }
end
@@ -153,7 +158,6 @@ class Crm::CustomersController < ApplicationController
# 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
@@ -176,6 +180,6 @@ class Crm::CustomersController < ApplicationController
# Never trust parameters from the scary internet, only allow the white list through.
def customer_params
- params.require(:customer).permit(:name, :company, :contact_no, :email, :date_of_birth, :membership_type, :membership_authentication_code)
+ params.require(:customer).permit(:name, :company, :contact_no, :email, :date_of_birth)
end
end
diff --git a/app/controllers/crm/dining_queues_controller.rb b/app/controllers/crm/dining_queues_controller.rb
new file mode 100644
index 00000000..9e8cd06c
--- /dev/null
+++ b/app/controllers/crm/dining_queues_controller.rb
@@ -0,0 +1,74 @@
+class Crm::DiningQueuesController < BaseCrmController
+ before_action :set_dining_queue, only: [:show, :edit, :update, :destroy]
+
+ # GET /crm/dining_queues
+ # GET /crm/dining_queues.json
+ def index
+ @dining_queues = DiningQueue.all
+ end
+
+ # GET /crm/dining_queues/1
+ # GET /crm/dining_queues/1.json
+ def show
+ end
+
+ # GET /crm/dining_queues/new
+ def new
+ @dining_queue = DiningQueue.new
+ end
+
+ # GET /crm/dining_queues/1/edit
+ def edit
+ end
+
+ # POST /crm/dining_queues
+ # POST /crm/dining_queues.json
+ def create
+ @dining_queue = DiningQueue.new(dining_queue_params)
+
+ respond_to do |format|
+ if @dining_queue.save
+ format.html { redirect_to crm_dining_queues_path, notice: 'Dining queue was successfully created.' }
+ format.json { render :show, status: :created, location: @dining_queue }
+ else
+ format.html { render :new }
+ format.json { render json: @dining_queue.errors, status: :unprocessable_entity }
+ end
+ end
+ end
+
+ # PATCH/PUT /crm/dining_queues/1
+ # PATCH/PUT /crm/dining_queues/1.json
+ def update
+ respond_to do |format|
+ if @dining_queue.update(dining_queue_params)
+ format.html { redirect_to crm_dining_queues_path, notice: 'Dining queue was successfully updated.' }
+ format.json { render :show, status: :ok, location: @dining_queue }
+ else
+ format.html { render :edit }
+ format.json { render json: @dining_queue.errors, status: :unprocessable_entity }
+ end
+ end
+ end
+
+ # DELETE /crm/dining_queues/1
+ # DELETE /crm/dining_queues/1.json
+ def destroy
+ @dining_queue.destroy
+ respond_to do |format|
+ format.html { redirect_to crm_dining_queues_path, notice: 'Dining queue was successfully destroyed.' }
+ format.json { head :no_content }
+ end
+ end
+
+ private
+ # Use callbacks to share common setup or constraints between actions.
+ def set_dining_queue
+ @dining_queue = DiningQueue.find(params[:id])
+ end
+
+ # Never trust parameters from the scary internet, only allow the white list through.
+ def dining_queue_params
+ params.require(:dining_queue).permit(:name, :contact_no, :queue_no)
+ end
+end
diff --git a/app/controllers/crm/home_controller.rb b/app/controllers/crm/home_controller.rb
index 9ae2b413..d1ee475b 100644
--- a/app/controllers/crm/home_controller.rb
+++ b/app/controllers/crm/home_controller.rb
@@ -1,8 +1,13 @@
class Crm::HomeController < BaseCrmController
def index
- @booking = Booking.all
+ @booking = Booking.all
@customer = Customer.all
+ from = Time.now.beginning_of_day.utc
+ to = Time.now.end_of_day.utc
+ @queue = DiningQueue.where('created_at BETWEEN ? AND ?', from, to).order('queue_no ASC')
+
+ # .where("dining_facilities.is_active=? and orders.date between ? and ?",true,from,to)
end
diff --git a/app/controllers/oqs/home_controller.rb b/app/controllers/oqs/home_controller.rb
index 2b676f21..7af42166 100644
--- a/app/controllers/oqs/home_controller.rb
+++ b/app/controllers/oqs/home_controller.rb
@@ -27,10 +27,18 @@ class Oqs::HomeController < BaseOqsController
# update delivery status when complete click
def update_delivery_status
+ removed_item = []
assigned_item_id = params[:id]
assigned_item=AssignedOrderItem.find(assigned_item_id)
- assigned_item.delivery_status=true
- assigned_item.save
+ assigned_items=AssignedOrderItem.where("item_code='" + assigned_item.item_code + "' AND " + "order_id='" + assigned_item.order_id + "'");
+
+ # update delivery status for completed same order items
+ assigned_items.each do |ai|
+ ai.delivery_status=true
+ ai.save
+ removed_item.push(ai.assigned_order_item_id)
+ end
+ render :json => removed_item.to_json
end
# Query for OQS with status
diff --git a/app/controllers/oqs/print_controller.rb b/app/controllers/oqs/print_controller.rb
index 8a12e439..1731f69c 100644
--- a/app/controllers/oqs/print_controller.rb
+++ b/app/controllers/oqs/print_controller.rb
@@ -1,31 +1,39 @@
class Oqs::PrintController < ApplicationController
+ # Print Order Item
def print
unique_code="OrderItemPdf"
assigned_item_id=params[:id]
- assigned_order_item=AssignedOrderItem.select("order_id, item_code").where("assigned_order_item_id='" + assigned_item_id + "'")
+ assigned_item=AssignedOrderItem.find(assigned_item_id)
+ assigned_items=AssignedOrderItem.where("item_code='" + assigned_item.item_code + "' AND " + "order_id='" + assigned_item.order_id + "'");
+ # print when complete click
print_settings=PrintSetting.find_by_unique_code(unique_code)
order_queue_printer= Printer::OrderQueuePrinter.new(print_settings)
- order_queue_printer.print_order_item(print_settings,assigned_order_item[0].order_id, assigned_order_item[0].item_code )
-
- # update print status when complete click
- assigned_item=AssignedOrderItem.find(assigned_item_id)
- assigned_item.print_status=true
- assigned_item.save
+ order_queue_printer.print_order_item(print_settings,assigned_item.order_id, assigned_item.item_code )
+
+ # update print status for completed same order items
+ assigned_items.each do |ai|
+ ai.print_status=true
+ ai.save
+ end
end
+ # Print Order Details
def print_order_summary
unique_code="OrderSummaryPdf"
assigned_item_id=params[:id]
- assigned_order_item=AssignedOrderItem.select("order_id").where('assigned_order_item_id='+assigned_item_id)
+ assigned_item=AssignedOrderItem.find(assigned_item_id)
+ assigned_items=AssignedOrderItem.where("item_code='" + assigned_item.item_code + "' AND " + "order_id='" + assigned_item.order_id + "'");
+ # print when complete click
print_settings=PrintSetting.find_by_unique_code(unique_code)
order_queue_printer= Printer::OrderQueuePrinter.new(print_settings)
- order_queue_printer.print_order_summary(print_settings,assigned_order_item[0].order_id)
+ order_queue_printer.print_order_summary(print_settings,assigned_item.order_id)
- # update print status when complete click
- assigned_item=AssignedOrderItem.find(assigned_item_id)
- assigned_item.print_status=true
- assigned_item.save
+ # update print status for completed same order items
+ assigned_items.each do |ai|
+ ai.print_status=true
+ ai.save
+ end
end
end
diff --git a/app/controllers/origami/customers_controller.rb b/app/controllers/origami/customers_controller.rb
index d9bfc39b..7917b03f 100644
--- a/app/controllers/origami/customers_controller.rb
+++ b/app/controllers/origami/customers_controller.rb
@@ -1,7 +1,38 @@
class Origami::CustomersController < BaseOrigamiController
#Form to add customer -
def index
+
+
end
- def create
+
+ # GET /crm/customers/1
+ # GET /crm/customers/1.json
+ def show
end
+
+
+
+ def add_customer
+
+ @sale_id = params[:sale_id]
+ filter = params[:filter]
+
+ if filter.nil?
+ @crm_customers = Customer.order("name").page(params[:page])
+ else
+ @crm_customers = Customer.where("name LIKE ?", "%#{filter}%").order("name").page(params[:page])
+ end
+ @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 :template => "crm/customers/index" }
+ format.html { render action: "index"}
+ format.json { render json: @crm_customers }
+ end
+ end
+
+
end
diff --git a/app/controllers/origami/discounts_controller.rb b/app/controllers/origami/discounts_controller.rb
index daf68918..e80ca348 100644
--- a/app/controllers/origami/discounts_controller.rb
+++ b/app/controllers/origami/discounts_controller.rb
@@ -2,7 +2,7 @@ class Origami::DiscountsController < BaseOrigamiController
#discount page show from origami index with selected order
def index
- sale_id = params[:id]
+ sale_id = params[:id]
if Sale.exists?(sale_id)
@sale_data = Sale.find(sale_id)
end
@@ -11,30 +11,32 @@ class Origami::DiscountsController < BaseOrigamiController
#discount for selected order
def create
sale_id = params[:sale_id]
+ sale_item_id = params[:sale_item_id]
discount_type = params[:discount_type]
- discount_value = params[:discount_value]
- discount_amount = params[:discount_amount]
- grand_total = params[:grand_total]
+ discount_value = params[:discount_value]
+ discount_amount = params[:discount_amount]
+ grand_total = params[:grand_total]
- if discount_type == 0
- remark="Discount " + discount_amount + " as net"
- else
- remark="Discount " + discount_amount + " as percentage"
- end
+ if discount_type == 0
+ remark="Discount " + discount_amount + " as net"
+ else
+ remark="Discount " + discount_amount + " as percentage"
+ end
- #update discount for sale
- sale = Sale.find(sale_id)
- sale.total_discount = discount_amount
- sale.grand_total = grand_total
- sale.save
+ #update discount for sale
+ sale = Sale.find(sale_id)
+ sale.total_discount = sale.total_discount + discount_amount.to_f
+ sale.grand_total = grand_total
+ sale.save
#save sale item for discount
+ origin_sale_item = SaleItem.find(sale_item_id)
sale_item = SaleItem.new
#pull
sale_item.sale_id = sale_id
- sale_item.product_code = 0
- sale_item.product_name = "Discount"
+ sale_item.product_code = origin_sale_item.product_code
+ sale_item.product_name = origin_sale_item.product_name + " Discount"
sale_item.remark = remark
sale_item.qty = 1
@@ -45,7 +47,7 @@ class Origami::DiscountsController < BaseOrigamiController
sale_item.price = sale_item.qty * sale_item.unit_price
sale_item.save
- redirect_to origami_root_path
+ redirect_to origami_path(sale_id)
end
end
diff --git a/app/controllers/origami/home_controller.rb b/app/controllers/origami/home_controller.rb
index 9733e488..669c8a7f 100644
--- a/app/controllers/origami/home_controller.rb
+++ b/app/controllers/origami/home_controller.rb
@@ -1,28 +1,67 @@
class Origami::HomeController < BaseOrigamiController
def index
+ if params[:booking_id] != nil
+ type=params[:booking_id].split('-')[0];
+ # Sale
+ if type == "SAL"
+ @selected_item = Sale.find(params[:booking_id])
+ @selected_item_type="Sale"
+ # Booking
+ else
+ @selected_item = Order.find(params[:booking_id])
+ @selected_item_type="Order"
+ end
+ end
+
+ @completed_orders = Order.get_completed_order()
@booking_orders = Order.get_booking_order_table()
@booking_rooms = Order.get_booking_order_rooms()
@orders = Order.get_orders()
- end
+ end
- def show
- str = []
- type=params[:id].split('-')[0];
+ def item_show
+ selection(params[:booking_id],1)
+ end
+ def selection(selected_id, is_ajax)
+ str = []
+ type=selected_id.split('-')[0];
# Sale
if type == "SAL"
- @order_details = SaleItem.get_order_items_details(params[:id])
+ @order_details = SaleItem.get_order_items_details(params[:booking_id])
@order_details.each do |ord_detail|
str.push(ord_detail)
end
- render :json => str.to_json
# Booking
else
- @order_details = OrderItem.get_order_items_details(params[:id])
+ @order_details = OrderItem.get_order_items_details(params[:booking_id])
@order_details.each do |ord_detail|
str.push(ord_detail)
- end
- render :json => str.to_json
+ end
end
+ if is_ajax == 1
+ render :json => str.to_json
+ else
+ str
+ end
+ end
+
+ def update_sale_by_customer
+
+ sale = Sale.find(params[:sale_id])
+ status = sale.update_attributes(customer_id: params[:customer_id])
+
+ if status == true
+ render json: JSON.generate({:status => true})
+ else
+ render json: JSON.generate({:status => false, :error_message => "Record not found"})
+
+ end
+ end
+
+ def get_customer
+ @customer = Customer.find(params[:customer_id])
+
+ render :json => @customer.to_json
end
end
diff --git a/app/controllers/origami/request_bills_controller.rb b/app/controllers/origami/request_bills_controller.rb
index d1aa9e61..4e884aaf 100644
--- a/app/controllers/origami/request_bills_controller.rb
+++ b/app/controllers/origami/request_bills_controller.rb
@@ -14,17 +14,23 @@ class Origami::RequestBillsController < BaseOrigamiController
@sale_items = SaleItem.where("sale_id=?",@sale_id)
else
@sale_data = Sale.find_by_sale_id(check_booking.sale_id)
- @sale_items = SaleItem.where("sale_id=?",@sale_id)
+ @sale_items = SaleItem.where("sale_id=?",@sale_data.sale_id)
end
unique_code = "ReceiptBillPdf"
- customer_name = Customer.select("name").where('customer_id=' + @sale_data.customer_id)
+ customer= Customer.where('customer_id=' + @sale_data.customer_id)
print_settings=PrintSetting.find_by_unique_code(unique_code)
+ # find order id by sale id
+ sale_order = SaleOrder.find_by_sale_id(@sale_data.sale_id)
+
+ # Calculate Food and Beverage Total
+ food_total, beverage_total = SaleItem.calculate_food_beverage(@sale_items)
+
printer = Printer::ReceiptPrinter.new(print_settings)
- printer.print_receipt_bill(print_settings,@sale_items,@sale_data,customer_name)
- redirect_to origami_root_path
+ printer.print_receipt_bill(print_settings,@sale_items,@sale_data,customer.name, food_total, beverage_total)
+ redirect_to origami_path(sale_order.sale_id)
end
end
diff --git a/app/controllers/reports/receipt_no_controller.rb b/app/controllers/reports/receipt_no_controller.rb
new file mode 100644
index 00000000..05065fee
--- /dev/null
+++ b/app/controllers/reports/receipt_no_controller.rb
@@ -0,0 +1,9 @@
+class Reports::ReceiptNoController < BaseReportController
+ def index
+ @hi = "hi"
+ end
+
+ def show
+
+ end
+end
\ No newline at end of file
diff --git a/app/helpers/crm/dining_queues_helper.rb b/app/helpers/crm/dining_queues_helper.rb
new file mode 100644
index 00000000..af60bd52
--- /dev/null
+++ b/app/helpers/crm/dining_queues_helper.rb
@@ -0,0 +1,2 @@
+module Crm::DiningQueuesHelper
+end
diff --git a/app/models/crm.rb b/app/models/crm.rb
new file mode 100644
index 00000000..3407e215
--- /dev/null
+++ b/app/models/crm.rb
@@ -0,0 +1,5 @@
+module Crm
+ def self.table_name_prefix
+ 'crm_'
+ end
+end
diff --git a/app/models/customer.rb b/app/models/customer.rb
index 9e980930..4f013678 100644
--- a/app/models/customer.rb
+++ b/app/models/customer.rb
@@ -9,7 +9,8 @@ class Customer < ApplicationRecord
validates_presence_of :name, :contact_no, :email
validates :contact_no, uniqueness: true
validates :email, uniqueness: true
-
+
+ paginates_per 50
def self.get_member_group
@@ -31,6 +32,14 @@ class Customer < ApplicationRecord
end
+ def self.search(search)
+ if search
+ find(:all, :conditions => ['name LIKE ?', "%#{search}%"])
+ else
+ find(:all)
+ end
+ end
+
def lastest_invoices
sales.where(:customer_id => self.id).order("created_at desc").limit(5)
end
diff --git a/app/models/dining_facility.rb b/app/models/dining_facility.rb
index 9a4f7a75..a3f8948f 100644
--- a/app/models/dining_facility.rb
+++ b/app/models/dining_facility.rb
@@ -9,10 +9,11 @@ class DiningFacility < ApplicationRecord
scope :active, -> {where(is_active: true)}
def get_current_booking
- booking = Booking.where("dining_facility_id = #{self.id} and booking_status ='occupied' and checkin_at between '#{DateTime.now.utc - 5.hours}' and '#{DateTime.now.utc}' and checkout_at is null").limit(1)
+ puts "enter booking"
+ booking = Booking.where("dining_facility_id = #{self.id} and booking_status ='assign' and checkin_at between '#{DateTime.now.utc - 5.hours}' and '#{DateTime.now.utc}' and checkout_at is null").limit(1)
if booking.count > 0 then
- return booking[0]
+ return booking[0].booking_id
else
return nil
end
diff --git a/app/models/dining_queue.rb b/app/models/dining_queue.rb
new file mode 100644
index 00000000..dfcc5b43
--- /dev/null
+++ b/app/models/dining_queue.rb
@@ -0,0 +1,3 @@
+class DiningQueue < ApplicationRecord
+
+end
diff --git a/app/models/order.rb b/app/models/order.rb
index 4817c3ce..a76159be 100644
--- a/app/models/order.rb
+++ b/app/models/order.rb
@@ -28,11 +28,13 @@ class Order < ApplicationRecord
booking = Booking.create({:dining_facility_id => self.table_id,:type => "TableBooking",
:checkin_at => Time.now.utc, :checkin_by => self.employee_name,
:booking_status => "assign" })
+ table = DiningFacility.find(self.table_id)
+ table.status = "occupied"
+ table.save
else
if (self.booking_id.to_i > 0 )
booking = Booking.find(self.booking_id)
end
-
end
booking.save!
@@ -220,13 +222,41 @@ class Order < ApplicationRecord
.group("orders.order_id, order_items.order_items_id,dining_facilities.name")
end
+ #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,
+ 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")
+
+ 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")
+ .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'")
+ .group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.status")
+
+
+ end
+
#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,
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 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")
@@ -235,15 +265,17 @@ class Order < ApplicationRecord
#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,
+ booking_rooms = Booking.select("sales.receipt_no,orders.status as order_status,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")
.joins("left join orders on orders.order_id = booking_orders.order_id")
.joins("left join sale_orders on sale_orders.order_id = orders.order_id")
.joins("left join sales on sales.sale_id = sale_orders.sale_id")
- .where("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")
+
+ .where("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
@@ -264,15 +296,15 @@ 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,
- bookings.booking_id,sales.sale_id as sale_id,dining_facilities.name as table_name")
+ orders.customer_id as 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
left join order_items on order_items.order_id = orders.order_id
left join sale_orders on sale_orders.order_id = orders.order_id
left join sales on sales.sale_id = sale_orders.sale_id")
- .where("dining_facilities.is_active=? and orders.date between ? and ?",true,from,to)
- .group("orders.order_id,order_items.order_items_id,dining_facilities.name,sales.receipt_no,bookings.booking_id,sales.sale_id")
+ .where("sales.sale_status<>'complete' and dining_facilities.is_active=? and orders.date between ? and ?",true,from,to)
+ .group("orders.order_id,order_items.order_items_id,dining_facilities.name,sales.receipt_no,bookings.booking_id,sales.sale_id,orders.customer_id")
end
diff --git a/app/models/printer/order_queue_printer.rb b/app/models/printer/order_queue_printer.rb
index 5a0eaf25..9c928593 100644
--- a/app/models/printer/order_queue_printer.rb
+++ b/app/models/printer/order_queue_printer.rb
@@ -40,7 +40,7 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
left join bookings AS b ON b.booking_id = bo.booking_id
left join dining_facilities AS df ON df.id = b.dining_facility_id
left join customers as cus ON cus.customer_id = orders.customer_id")
- .where("orders.order_id='" + code.to_s + "'")
+ .where("orders.order_id='" + code + "'")
.group("order_items.item_code")
end
diff --git a/app/models/printer/receipt_printer.rb b/app/models/printer/receipt_printer.rb
index d203568f..a8a27db3 100644
--- a/app/models/printer/receipt_printer.rb
+++ b/app/models/printer/receipt_printer.rb
@@ -63,12 +63,13 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker
self.print(filename)
end
-#Bill Receipt Print
- def print_receipt_bill(printer_settings,sale_items,sale_data, customer_name)
+
+ #Bill Receipt Print
+ def print_receipt_bill(printer_settings,sale_items,sale_data, customer_name, food_total, beverage_total)
#Use CUPS service
#Generate PDF
#Print
- pdf = ReceiptBillPdf.new(printer_settings, sale_items, sale_data, customer_name)
+ pdf = ReceiptBillPdf.new(printer_settings, sale_items, sale_data, customer_name, food_total, beverage_total)
pdf.render_file "tmp/receipt_bill.pdf"
self.print("tmp/receipt_bill.pdf")
end
diff --git a/app/models/sale_item.rb b/app/models/sale_item.rb
index 5d87ff13..0aed9a23 100644
--- a/app/models/sale_item.rb
+++ b/app/models/sale_item.rb
@@ -29,6 +29,32 @@ class SaleItem < ApplicationRecord
# return false
# end
end
+
+ def self.calculate_food_beverage(sale_items)
+ food_prices=0
+ beverage_prices=0
+
+ sale_items.each do |si|
+ food_price = self.get_food_price(si.sale_item_id)
+ beverage_price = self.get_beverage_price(si.sale_item_id)
+puts food_price
+ # food_prices = food_prices + food_price.price
+ # beverage_prices = beverage_prices + beverage_price.price
+ end
+ return food_prices, beverage_prices
+ end
+
+ def self.get_food_price(sale_item_id)
+ food_price=SaleItem.select("sale_items.price")
+ .joins("left join menu_items on menu_items.item_code = sale_items.product_code")
+ .where("sale_items.sale_item_id=? and menu_items.account_id=0", sale_item_id)
+ end
+
+ def self.get_beverage_price(sale_item_id)
+ beverage_price=SaleItem.select("sale_items.price")
+ .joins("left join menu_items on menu_items.item_code = sale_items.product_code")
+ .where("sale_items.sale_item_id=? and menu_items.account_id=1", sale_item_id)
+ end
private
def generate_custom_id
diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb
index ff43a11f..27ddafa6 100644
--- a/app/models/sale_payment.rb
+++ b/app/models/sale_payment.rb
@@ -106,7 +106,6 @@ class SalePayment < ApplicationRecord
self.outstanding_amount = self.sale.grand_total.to_f - self.received_amount.to_f
self.payment_status = "paid"
payment_method = self.save!
-
sale_update_payment_status(self.received_amount)
return payment_status
@@ -204,30 +203,28 @@ class SalePayment < ApplicationRecord
end
def sale_update_payment_status(paid_amount)
- puts "sale update"
#update amount_outstanding
self.sale.amount_received = self.sale.amount_received.to_f + paid_amount.to_f
-
self.sale.amount_changed = paid_amount.to_f - self.sale.amount_received.to_f
-
all_received_amount = 0.0
- sObj = self.sale
+ sObj = Sale.find(self.sale_id)
sObj.sale_payments.each do |spay|
- puts spay
- puts spay.payment_amount
all_received_amount += spay.payment_amount.to_f
end
- puts all_received_amount
- puts self.sale.grand_total
if (self.sale.grand_total <= all_received_amount)
- puts " sale update ......"
self.sale.payment_status = "paid"
self.sale.sale_status = "completed"
self.sale.save!
+ #TODO: table status
+ rebat()
end
end
+ def rebat
+
+ end
+
private
def generate_custom_id
self.sale_payment_id = SeedGenerator.generate_id(self.class.name, "SPI")
diff --git a/app/pdf/crm_order_pdf.rb b/app/pdf/crm_order_pdf.rb
index 94fc5503..55d08ecc 100644
--- a/app/pdf/crm_order_pdf.rb
+++ b/app/pdf/crm_order_pdf.rb
@@ -1,6 +1,6 @@
class CrmOrderPdf < Prawn::Document
attr_accessor :receipt_width,:price_column_width,:p_width, :page_height, :margin, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_column_width,:item_description_width
- def initialize(booking,order_items,print_settings)
+ def initialize(booking,order_items,printer_settings)
self.p_width = 200
self.page_height = 1450
self.margin = 10
@@ -18,20 +18,19 @@ class CrmOrderPdf < Prawn::Document
@half_qty = @qty_width / 2
#setting page margin and width
super(:margin => [self.margin, self.margin, self.margin, self.margin], :page_size => [self.p_width, self.page_height])
- self.header_font_size = 7
+ self.header_font_size = 10
self.item_font_size = 9
- header( booking.type, booking.dining_facility.name)
+ header( printer_settings.printer_name, printer_settings.name)
stroke_horizontal_rule
- order_detail(booking.checkin_by,booking.checkin_at,booking.dining_facility.name)
+ cashier_info(booking)
line_items(order_items)
- #all_total(order_items)
end
- def header (type, name)
- text "#{type}", :size => self.header_font_size,:align => :center
+ def header (printer_name, name)
+ text "#{printer_name}", :size => self.header_font_size,:align => :center
move_down 5
text "#{name}", :size => self.header_font_size,:align => :center
# move_down self.item_height
@@ -41,37 +40,37 @@ class CrmOrderPdf < Prawn::Document
end
- def order_detail(order_by,order_at,customer)
+ def cashier_info(booking)
move_down 5
move_down 2
y_position = cursor
- qty_column_width = self.p_width * 0.2
- item_description_width = self.p_width * 0.5
- price_column_width = self.p_width * 0.3
+ bounding_box([0,y_position], :width =>self.price_width, :height => self.item_height) do
+ text "Order By:", :size => self.item_font_size,:align => :left
+ end
-
-
- stroke_horizontal_rule
+ bounding_box([self.price_width, y_position], :width =>self.receipt_width) do
+ text "#{booking.checkin_by}" , :size => self.item_font_size, :align => :left
+ end
move_down 5
+
y_position = cursor
- pad_top(15) {
- # @item_width.to_i + @half_qty.to_i
- text_box "Order By", :at =>[0,y_position], :width => @item_width.to_i - @half_qty.to_i , :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size
- text_box "Order At", :at =>[@item_width.to_i - @half_qty.to_i,y_position], :width => @qty_width, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right
- text_box "Customer", :at =>[@item_width.to_i-@qty_width,y_position], :width => @half_qty, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right
-
- }
-
+ bounding_box([0,y_position], :width =>self.price_width, :height => self.item_height) do
+ text "Customer:", :size => self.item_font_size,:align => :left
+ end
+ bounding_box([self.price_width,y_position], :width =>self.price_width) do
+ text "#{booking.customer_id}" , :size => self.item_font_size,:align => :left
+ end
move_down 5
- stroke_horizontal_rule
-y_position = cursor
- pad_top(15) {
- text_box "#{order_by}", :at =>[@item_width.to_i - @half_qty.to_i,y_position], :width => @qty_width, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right
- text_box "#{order_at.to_i}", :at =>[@item_width.to_i-@qty_width,y_position], :width => @half_qty, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right
- text_box "#{customer}", :at =>[@item_width.to_i + @half_qty.to_i,y_position], :width => @double, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right
-
- }
+ y_position = cursor
+ bounding_box([0,y_position], :width =>self.price_width, :height => self.item_height) do
+ text "Date:", :size => self.item_font_size,:align => :left
+ end
+ bounding_box([self.price_width,y_position], :width =>self.price_width) do
+ text "#{booking.checkin_at.strftime('%Y %m %d %h:%m')}" , :size => self.item_font_size,:align => :left
+ end
+ # stroke_horizontal_rule
+ move_down 5
end
def line_items(order_items)
@@ -97,10 +96,41 @@ y_position = cursor
move_down 5
stroke_horizontal_rule
-
+ add_line_item_row(order_items)
+
end
-
+ def add_line_item_row(order_items)
+ y_position = cursor
+ move_down 5
+ sub_total = 0.0
+ order_items.each do |item|
+
+ sub_total += item.qty*item.price
+ qty = item.qty
+ total_price = item.qty*item.price
+ price = item.price
+ item_name = item.item_name
+
+
+ y_position = cursor
+
+ pad_top(15) {
+ # @item_width.to_i + @half_qty.to_i
+ text_box "#{item_name}", :at =>[0,y_position], :width => @item_width.to_i - @half_qty.to_i , :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size
+ text_box "#{price}", :at =>[@item_width.to_i - @half_qty.to_i,y_position], :width => @qty_width, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right
+ text_box "#{qty.to_i}", :at =>[@item_width.to_i-@qty_width,y_position], :width => @half_qty, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right
+ text_box "#{total_price}", :at =>[@item_width.to_i + @half_qty.to_i,y_position], :width => @double, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right
+
+ }
+ move_down 3
+ end
+ stroke_horizontal_rule
+ move_down 5
+ y_position = cursor
+
+ end
+
end
diff --git a/app/pdf/order_item_pdf.rb b/app/pdf/order_item_pdf.rb
index 3044c578..f322de64 100644
--- a/app/pdf/order_item_pdf.rb
+++ b/app/pdf/order_item_pdf.rb
@@ -1,29 +1,46 @@
class OrderItemPdf < Prawn::Document
-
+ attr_accessor :receipt_width,:price_column_width,:page_width, :page_height, :margin, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_width,:item_description_width
def initialize(order_item, print_settings)
- super(:margin => [10, 5, 30, 5], :page_size => [200,400])
+ self.page_width = 300
+ self.page_height = 400
+ self.margin = 10
+ self.price_width = 50
+ self.qty_width = 50
+ self.item_width = self.page_width - (self.price_width + self.qty_width)
+ self.item_height = 15
+ self.item_description_width = self.page_width - (self.price_width + self.qty_width)
+ self.receipt_width=130
+
+ super(:margin => [self.margin, self.margin, self.margin, self.margin], :page_size => [self.page_width, self.page_height])
+ # super(:margin => [10, 5, 30, 5], :page_size => [200,400])
# font "public/fonts/#{font_name}".to_s + ".ttf".to_s
# font "public/fonts/Zawgyi-One.ttf"
- # font "public/fonts/padauk.ttf"
- font_size 9
- text "#{order_item.dining}", :size => 15
+ # font "public/fonts/padauk.ttf"
+ self.header_font_size = 12
+ self.item_font_size = 10
+
+ text "#{order_item.dining}", :size => self.header_font_size,:align => :center
stroke_horizontal_rule
move_down 5
#order_info
- order_info(order_item.order_by,order_item.order_at, order_item.customer)
+ order_info(order_item.order_by,order_item.order_at)
# order items
order_items(order_item)
end
# Write Order Information to PDF
- def order_info(order_by, order_at, customer)
+ def order_info(order_by, order_at)
y_position = cursor
- bounding_box([0,y_position], :width => 200, :height => 15) do
- text "OrderBy:#{order_by} Customer:#{customer} Date:#{order_at.strftime("%Y-%m-%d")}", :size => 7,:align => :left
+ bounding_box([0,y_position], :width => self.item_width - 50, :height => self.item_height) do
+ text "OrderBy:#{order_by} ", :size => self.item_font_size,:align => :left
+ end
+
+ bounding_box([self.item_width - 50,y_position], :width => self.item_width + 50, :height => self.item_height) do
+ text "Date:#{order_at.strftime("%Y-%m-%d %I:%M %p")}", :size => self.item_font_size,:align => :left
end
stroke_horizontal_rule
@@ -35,12 +52,12 @@ class OrderItemPdf < Prawn::Document
def order_items(order_item)
y_position = cursor
- bounding_box([0,y_position], :width => 180, :height => 15) do
- text "Item", :size => 7,:align => :left
+ bounding_box([0,y_position], :width => self.item_width, :height => self.item_height) do
+ text "Item", :size => self.item_font_size,:align => :left
end
- bounding_box([160,y_position], :width => 20, :height => 15) do
- text "Qty", :size => 7,:align => :right
+ bounding_box([self.item_width,y_position], :width => self.qty_width, :height => self.item_height) do
+ text "Qty", :size => self.item_font_size,:align => :right
end
stroke_horizontal_rule
@@ -56,12 +73,12 @@ class OrderItemPdf < Prawn::Document
move_down 5
- bounding_box([0,y_position], :width => 180, :height => 20) do
- text "#{order_item.item_name}", :size => 7,:align => :left
+ bounding_box([0,y_position], :width => self.item_width, :height => self.item_height) do
+ text "#{order_item.item_name}", :size => self.item_font_size,:align => :left
end
- bounding_box([160,y_position], :width => 20, :height => 20) do
- text "#{order_item.qty}", :size => 7,:align => :right
+ bounding_box([self.item_width,y_position], :width => self.qty_width, :height => self.item_height) do
+ text "#{order_item.qty}", :size => self.item_font_size,:align => :right
end
move_down 5
diff --git a/app/pdf/order_summary_pdf.rb b/app/pdf/order_summary_pdf.rb
index 8a7a1ad9..63d75a78 100644
--- a/app/pdf/order_summary_pdf.rb
+++ b/app/pdf/order_summary_pdf.rb
@@ -1,19 +1,30 @@
class OrderSummaryPdf < Prawn::Document
-
+ attr_accessor :receipt_width,:price_column_width,:page_width, :page_height, :margin, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_width,:item_description_width
def initialize(order, print_settings)
- super(:margin => [10, 5, 30, 5], :page_size => [200,400])
+ self.page_width = 300
+ self.page_height = 400
+ self.margin = 10
+ self.price_width = 60
+ self.qty_width = 60
+ self.item_width = self.page_width - (self.price_width + self.qty_width)
+ self.item_height = 15
+ self.item_description_width = self.page_width - (self.price_width + self.qty_width)
+ self.receipt_width=130
+
+ super(:margin => [self.margin, self.margin, self.margin, self.margin], :page_size => [self.page_width, self.page_height])
# font "public/fonts/#{font_name}".to_s + ".ttf".to_s
# font "public/fonts/Zawgyi-One.ttf"
# font "public/fonts/padauk.ttf"
+ self.header_font_size = 12
+ self.item_font_size = 10
- font_size 9
- text "#{order[0].dining}", :size => 15
+ text "#{order[0].dining}", :size => self.header_font_size,:align => :center
stroke_horizontal_rule
move_down 5
#order_info
- order_info(order[0].order_by,order[0].order_at, order[0].customer)
+ order_info(order[0].order_by,order[0].order_at)
# order items
order_items(order)
@@ -21,11 +32,15 @@ class OrderSummaryPdf < Prawn::Document
end
# Write Order Information to PDF
- def order_info(order_by, order_at, customer)
+ def order_info(order_by, order_at)
y_position = cursor
- bounding_box([0,y_position], :width => 200, :height => 15) do
- text "OrderBy:#{order_by} Customer:#{customer} Date:#{order_at.strftime("%Y-%m-%d")}", :size => 7,:align => :left
+ bounding_box([0,y_position], :width => self.item_width - 20, :height => self.item_height) do
+ text "OrderBy:#{order_by} ", :size => self.item_font_size,:align => :left
+ end
+
+ bounding_box([self.item_width - 20,y_position], :width => self.item_width + 20, :height => self.item_height) do
+ text "Date:#{order_at.strftime("%Y-%m-%d %I:%M %p")}", :size => self.item_font_size,:align => :left
end
stroke_horizontal_rule
@@ -37,12 +52,12 @@ class OrderSummaryPdf < Prawn::Document
def order_items(order_item)
y_position = cursor
- bounding_box([0,y_position], :width => 180, :height => 15) do
- text "Item", :size => 7,:align => :left
+ bounding_box([0,y_position], :width => self.item_width, :height => self.item_height) do
+ text "Item", :size => self.item_font_size,:align => :left
end
- bounding_box([160,y_position], :width => 20, :height => 15) do
- text "Qty", :size => 7,:align => :right
+ bounding_box([self.item_width,y_position], :width => self.qty_width, :height => self.item_height) do
+ text "Qty", :size => self.item_font_size,:align => :right
end
stroke_horizontal_rule
@@ -59,13 +74,13 @@ class OrderSummaryPdf < Prawn::Document
move_down 5
order_item.each do|odi|
- bounding_box([0,y_position], :width => 180, :height => 20) do
- text "#{odi.item_name}", :size => 7,:align => :left
- end
+ bounding_box([0,y_position], :width => self.item_width, :height => self.item_height) do
+ text "#{odi.item_name}", :size => self.item_font_size,:align => :left
+ end
- bounding_box([160,y_position], :width => 20, :height => 20) do
- text "#{odi.qty}", :size => 7,:align => :right
- end
+ bounding_box([self.item_width,y_position], :width => self.qty_width, :height => self.item_height) do
+ text "#{odi.qty}", :size => self.item_font_size,:align => :right
+ end
end
move_down 5
diff --git a/app/pdf/receipt_bill_pdf.rb b/app/pdf/receipt_bill_pdf.rb
index 5853b946..f91aebe1 100644
--- a/app/pdf/receipt_bill_pdf.rb
+++ b/app/pdf/receipt_bill_pdf.rb
@@ -1,30 +1,36 @@
class ReceiptBillPdf < Prawn::Document
- attr_accessor :receipt_width,:price_column_width,:p_width, :page_height, :margin, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_column_width,:item_description_width
- def initialize(printer_settings, sale_items, sale_data, customer_name)
- self.p_width = 200
+ attr_accessor :receipt_width,:price_column_width,:page_width, :page_height, :margin, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_width,:total_width,:item_description_width
+ def initialize(printer_settings, sale_items, sale_data, customer_name, food_total, beverage_total)
+ self.page_width = 300
self.page_height = 1450
self.margin = 10
- # self.price_width = self.p_width / 2
- self.price_width=80
- self.item_width = self.p_width - self.price_width
- self.item_height = self.item_height
- self.qty_column_width = self.p_width / 2
- self.item_description_width=self.p_width - self.price_width
- self.receipt_width=130
+ self.price_width = 50
+ self.qty_width = 30
+ self.total_width = 50
+ self.item_width = self.page_width - (self.price_width + self.qty_width + self.total_width)
+ self.item_height = 15
+ self.item_description_width = self.page_width - (self.price_width + self.qty_width + self.total_width)
+ self.receipt_width=100
- @item_width = self.p_width.to_i / 2
- @qty_width = @item_width.to_i / 3
- @double = @qty_width * 1.3
- @half_qty = @qty_width / 2
+ # @item_width = self.page_width.to_i / 2
+ # @qty_width = @item_width.to_i / 3
+ # @double = @qty_width * 1.3
+ # @half_qty = @qty_width / 2
#setting page margin and width
- super(:margin => [self.margin, self.margin, self.margin, self.margin], :page_size => [self.p_width, self.page_height])
- self.header_font_size = 10
- self.item_font_size = 9
+ super(:margin => [self.margin, self.margin, self.margin, self.margin], :page_size => [self.page_width, self.page_height])
+
+ # font "public/fonts/#{font_name}".to_s + ".ttf".to_s
+ # font "public/fonts/Zawgyi-One.ttf"
+ # font "public/fonts/padauk.ttf"
+ self.header_font_size = 12
+ self.item_font_size = 10
header( printer_settings.printer_name, printer_settings.name)
- stroke_horizontal_rule
+
+ stroke_horizontal_rule
+
cashier_info(sale_data, customer_name)
- line_items(sale_items)
+ line_items(sale_items, food_total, beverage_total)
all_total(sale_data)
@@ -38,71 +44,66 @@ class ReceiptBillPdf < Prawn::Document
move_down 5
stroke_horizontal_rule
-
end
def cashier_info(sale_data, customer_name)
- move_down 5
- move_down 2
+ move_down 7
+ # move_down 2
y_position = cursor
- bounding_box([0,y_position], :width =>self.price_width, :height => self.item_height) do
+ bounding_box([0,y_position], :width =>self.receipt_width, :height => self.item_height) do
text "Receipt No:", :size => self.item_font_size,:align => :left
end
- bounding_box([self.price_width, y_position], :width =>self.receipt_width) do
- text "#{sale_data.receipt_no}" , :size => self.item_font_size, :align => :left
+ bounding_box([self.receipt_width, y_position], :width =>self.receipt_width) do
+ text "#{sale_data.receipt_no}" , :size => self.item_font_size, :align => :left
end
move_down 5
y_position = cursor
- bounding_box([0,y_position], :width =>self.price_width, :height => self.item_height) do
+ bounding_box([0,y_position], :width =>self.receipt_width, :height => self.item_height) do
text "Customer:", :size => self.item_font_size,:align => :left
end
- bounding_box([self.price_width,y_position], :width =>self.price_width) do
+ bounding_box([self.receipt_width,y_position], :width =>self.receipt_width) do
text "#{customer_name}" , :size => self.item_font_size,:align => :left
end
move_down 5
y_position = cursor
- bounding_box([0,y_position], :width =>self.price_width, :height => self.item_height) do
+ bounding_box([0,y_position], :width =>self.receipt_width, :height => self.item_height) do
text "Date:", :size => self.item_font_size,:align => :left
end
- bounding_box([self.price_width,y_position], :width =>self.price_width) do
+ bounding_box([self.receipt_width,y_position], :width =>self.receipt_width) do
text "#{sale_data.receipt_date.strftime('%Y %m %d %h:%m')}" , :size => self.item_font_size,:align => :left
end
# stroke_horizontal_rule
move_down 5
end
- def line_items(sale_items)
+ def line_items(sale_items, food_total, beverage_total)
y_position = cursor
- qty_column_width = self.p_width * 0.2
- item_description_width = self.p_width * 0.5
- price_column_width = self.p_width * 0.3
-
-
stroke_horizontal_rule
move_down 5
- y_position = cursor
+
pad_top(15) {
# @item_width.to_i + @half_qty.to_i
- text_box "Items", :at =>[0,y_position], :width => @item_width.to_i - @half_qty.to_i , :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size
- text_box "Price", :at =>[@item_width.to_i - @half_qty.to_i,y_position], :width => @qty_width, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right
- text_box "Qty", :at =>[@item_width.to_i-@qty_width,y_position], :width => @half_qty, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right
- text_box "Total", :at =>[@item_width.to_i + @half_qty.to_i,y_position], :width => @double, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right
+ text_box "Items", :at =>[0,y_position], :width => self.item_width - 20, :height =>self.item_height, :size => self.item_font_size
+ text_box "Price", :at =>[self.item_width-20,y_position], :width => self.price_width, :height =>self.item_height, :size => self.item_font_size, :align => :right
+ text_box "Qty", :at =>[self.item_width+self.price_width,y_position], :width => self.qty_width, :height =>self.item_height, :size => self.item_font_size, :align => :right
+ text_box "Total", :at =>[self.item_width+self.price_width+self.qty_width,y_position], :width => self.total_width, :height =>self.item_height, :size => self.item_font_size, :align => :right
}
move_down 5
stroke_horizontal_rule
- add_line_item_row(sale_items)
+ add_line_item_row(sale_items, food_total, beverage_total)
end
- def add_line_item_row(sale_items)
+ def add_line_item_row(sale_items, food_total, beverage_total)
+ item_name_width = self.item_width-20
y_position = cursor
move_down 5
sub_total = 0.0
@@ -119,53 +120,67 @@ class ReceiptBillPdf < Prawn::Document
pad_top(15) {
# @item_width.to_i + @half_qty.to_i
- text_box "#{product_name}", :at =>[0,y_position], :width => @item_width.to_i - @half_qty.to_i , :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size
- text_box "#{price}", :at =>[@item_width.to_i - @half_qty.to_i,y_position], :width => @qty_width, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right
- text_box "#{qty.to_i}", :at =>[@item_width.to_i-@qty_width,y_position], :width => @half_qty, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right
- text_box "#{total_price}", :at =>[@item_width.to_i + @half_qty.to_i,y_position], :width => @double, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right
+ text_box "#{product_name}", :at =>[0,y_position], :width => item_name_width, :height =>self.item_height, :overflow => :shrink_to_fix, :size => self.item_font_size
+ text_box "#{price}", :at =>[item_name_width,y_position], :width => self.price_width, :height =>self.item_height, :size => self.item_font_size, :align => :right
+ text_box "#{qty.to_i}", :at =>[item_name_width+self.price_width,y_position], :width => self.qty_width, :height =>self.item_height, :size => self.item_font_size, :align => :right
+ text_box "#{total_price}", :at =>[item_name_width+self.price_width+self.qty_width,y_position], :width =>self.total_width, :height =>self.item_height, :size => self.item_font_size, :align => :right
}
move_down 3
end
+
stroke_horizontal_rule
+
move_down 5
y_position = cursor
- bounding_box([0,y_position], :width =>self.price_width, :height => self.item_height) do
+ bounding_box([0,y_position], :width =>(item_name_width+self.price_width+self.qty_width), :height => self.item_height) do
text "Sub Total", :size => self.item_font_size,:align => :left
end
- bounding_box([self.price_width,y_position], :width =>self.price_width) do
+ bounding_box([(item_name_width+self.price_width+self.qty_width),y_position], :width =>self.total_width) do
text "#{sub_total}" , :size => self.item_font_size,:align => :right
end
+
+ # Food and Beverage
+ food_beverage_total = food_total.to_s + '/' + beverage_total.to_s
+ move_down 5
+ y_position = cursor
+ bounding_box([0,y_position], :width =>(item_name_width+self.price_width+self.qty_width), :height => self.item_height) do
+ text "Food/Beverage Total", :size => self.item_font_size,:align => :left
+ end
+ bounding_box([(item_name_width+self.price_width+self.qty_width),y_position], :width =>self.total_width) do
+ text "#{ food_beverage_total }" , :size => self.item_font_size,:align => :right
+ end
end
def all_total(sale_data)
+ item_name_width = self.item_width-20
move_down 5
- y_position =cursor
+ y_position = cursor
- bounding_box([0,y_position], :width =>self.price_width, :height => self.item_height) do
+ bounding_box([0,y_position], :width =>(item_name_width+self.price_width+self.qty_width), :height => self.item_height) do
text "Discount", :size => self.item_font_size,:align => :left
end
- bounding_box([self.price_width,y_position], :width =>self.price_width) do
+ bounding_box([(item_name_width+self.price_width+self.qty_width),y_position], :width =>self.total_width) do
text "( " +"#{sale_data.total_discount}" +" )" , :size => self.item_font_size,:align => :right
end
move_down 5
- y_position =cursor
+ y_position = cursor
- bounding_box([0,y_position], :width =>self.price_width, :height => self.item_height) do
+ bounding_box([0,y_position], :width =>(item_name_width+self.price_width+self.qty_width), :height => self.item_height) do
text "Total Tax", :size => self.item_font_size,:align => :left
end
- bounding_box([self.price_width,y_position], :width =>self.price_width) do
+ bounding_box([(item_name_width+self.price_width+self.qty_width),y_position], :width =>self.total_width) do
text "( " +"#{sale_data.total_tax}" +" )" , :size => self.item_font_size,:align => :right
end
move_down 5
y_position = cursor
move_down 5
- bounding_box([0,y_position], :width =>self.price_width, :height => self.item_height) do
+ bounding_box([0,y_position], :width =>(item_name_width+self.price_width+self.qty_width), :height => self.item_height) do
text "Grand Total", :size => self.item_font_size,:align => :left
end
- bounding_box([self.price_width,y_position], :width =>self.price_width) do
+ bounding_box([(item_name_width+self.price_width+self.qty_width),y_position], :width =>self.total_width) do
text "#{sale_data.grand_total}" , :size => self.item_font_size,:align => :right
end
move_down 5
diff --git a/app/views/api/customers/get_customer_order.json.jbuilder b/app/views/api/customers/get_customer_order.json.jbuilder
new file mode 100644
index 00000000..f00ce173
--- /dev/null
+++ b/app/views/api/customers/get_customer_order.json.jbuilder
@@ -0,0 +1,38 @@
+if (@customer)
+ json.id @customer.customer_id
+ json.name @customer.name
+ json.email @customer.email
+ json.contact_no @customer.contact_no
+ json.date_of_birth @customer.date_of_birth
+
+
+ @total_amount = 0.00
+ @total_tax = 0.00
+
+ if @customer.orders
+ order_items = []
+ @customer.orders.each do |bo|
+ order = Order.find(bo.order_id)
+ #if (order.status == "new")
+ order_items = order_items + order.order_items
+ #end
+ end
+
+ json.order_items order_items do |item|
+ json.item_instance_code item.item_code
+ json.item_name item.item_name
+ json.price item.price
+ json.qty item.qty
+ json.options item.options
+ json.remark item.remark
+ json.item_status item.order_item_status
+ @total_amount = @total_amount + (item.price * item.qty)
+ end
+
+ end
+
+ json.sub_total @total_amount
+ json.commerical_tax @total_amount * 0.05
+ json.total @total_amount + (@total_amount * 0.05)
+
+end
\ No newline at end of file
diff --git a/app/views/crm/customers/_form.html.erb b/app/views/crm/customers/_form.html.erb
index 758a52a2..c913651a 100644
--- a/app/views/crm/customers/_form.html.erb
+++ b/app/views/crm/customers/_form.html.erb
@@ -16,5 +16,5 @@
<%= f.button :submit %>
<% end %>
-
+
\ No newline at end of file
diff --git a/app/views/crm/customers/index.html.erb b/app/views/crm/customers/index.html.erb
index 86f267b0..e4f6d07d 100644
--- a/app/views/crm/customers/index.html.erb
+++ b/app/views/crm/customers/index.html.erb
@@ -11,7 +11,7 @@
-
+
|
+ <%= form_tag crm_customers_path, :method => :get do %>
+
+
+
+
+ <% end %>
+ |
+ |||||
| Select | Name | @@ -48,66 +59,63 @@ <% end %>||||
|---|---|---|---|---|---|
| Name | +Contact No | +Queue No | +Action | +
|---|---|---|---|
| <%= dining_queue.name %> | +<%= dining_queue.contact_no %> | +<%= dining_queue.queue_no %> | ++ <%= link_to 'Edit', edit_crm_dining_queue_path(dining_queue) %> | <%= link_to 'Destroy', crm_dining_queue_path(dining_queue), method: :delete, data: { confirm: 'Are you sure?' } %> | +
<%= notice %>
+ ++ Name: + <%= @crm_dining_queue.name %> +
+ ++ Contact: + <%= @crm_dining_queue.contact %> +
+ ++ Queue no: + <%= @crm_dining_queue.queue_no %> +
+ +<%= link_to 'Edit', edit_crm_dining_queue_path(@crm_dining_queue) %> | +<%= link_to 'Back', crm_dining_queues_path %> diff --git a/app/views/crm/dining_queues/show.json.jbuilder b/app/views/crm/dining_queues/show.json.jbuilder new file mode 100644 index 00000000..83c09bea --- /dev/null +++ b/app/views/crm/dining_queues/show.json.jbuilder @@ -0,0 +1 @@ +json.partial! "crm_dining_queues/crm_dining_queue", crm_dining_queue: @crm_dining_queue diff --git a/app/views/crm/home/_booking.html.erb b/app/views/crm/home/_booking.html.erb index 3a2a7684..fbe837a7 100644 --- a/app/views/crm/home/_booking.html.erb +++ b/app/views/crm/home/_booking.html.erb @@ -6,29 +6,29 @@ <% @booking.each do |booking| %> <% if booking.booking_status == "new" %><%= booking.id %>
-- - Order at <%= booking.checkin_at.strftime("%H,%m") %>, <%= booking.checkin_by %> - -
-