diff --git a/app/assets/javascripts/origami.js b/app/assets/javascripts/origami.js
index de92d994..3e11666d 100755
--- a/app/assets/javascripts/origami.js
+++ b/app/assets/javascripts/origami.js
@@ -63,10 +63,8 @@ $(document).on('turbolinks:load', function() {
' \n' +
'\n',
}
- });
-});
+ });
-$(document).on('turbolinks:load', function() {
$('.datetimepicker').bootstrapMaterialDatePicker({
format: 'DD-MM-YYYY - HH:mm',
clearButton: true,
@@ -228,6 +226,11 @@ $(document).on('turbolinks:load', function() {
return false;
}
});
+
+ $(document).on("click", ".credit_detail",function(){
+ var sale_payment_id = $(this).attr("data-id");
+ window.location.href = "/origami/cashier/credit_sales/"+sale_payment_id;
+ });
});
/* start check first bill or not funs: */
@@ -480,4 +483,90 @@ function getAllMenu(){
}
}
});
-}
\ No newline at end of file
+}
+
+/* String format */
+if (!String.prototype.formatUnicorn) {
+ String.prototype.formatUnicorn=function(){
+ var e=this.toString();
+ if(!arguments.length){
+ return e;
+ }
+ var t=typeof arguments[0],n="string"==t||"number"==t?Array.prototype.slice.call(arguments):arguments[0];
+ for(var i in n){
+ e=e.replace(new RegExp("\\{"+i+"\\}","gi"),n[i]==null?'':n[i]);
+ }
+ return e;
+ };
+}
+/* String format */
+
+//credit sales lists
+function timeFormat(date){
+ var isPM = date.getHours() >= 12;
+ var isMidday = date.getHours() == 12;
+ var time = [(date.getHours()>10? date.getHours() : '0'+date.getHours()) - (isPM && !isMidday ? 12 : 0),
+ (date.getMinutes()>10? date.getMinutes() : '0'+date.getMinutes()) || '00'].join(':') +
+ (isPM ? ' PM' : ' AM');
+ return time;
+}
+
+function getCreditData(){
+ var filter = $("#filter").val();
+ var customer = $("#sel_customer").val();
+
+ var receipt_no = "";
+ var customer_id = "";
+ if((filter!=undefined) && (filter!=null) && (filter!="")){
+ receipt_no = filter;
+ }
+ if((customer!=undefined) && (customer!=null) && (customer!="")){
+ customer_id = customer;
+ }
+ getCreditSales(receipt_no, customer_id);
+}
+
+function getCreditSales(filter, customer){
+ $(".tbd_credit_lists").empty();
+ var html_credit_items = $("#html_credit_items").html();
+ var receipt_no = "";
+ var customer_id = "";
+ if((filter!=undefined) && (filter!=null) && (filter!="")){
+ receipt_no = filter;
+ }
+ if((customer!=undefined) && (customer!=null) && (customer!="")){
+ customer_id = customer;
+ }
+ $.ajax({
+ type: "POST",
+ data: {receipt_no: receipt_no, customer_id: customer_id},
+ dataType: 'json',
+ url: "/origami/cashier/credit_sales",
+ success: function(data){
+ // console.log(data);
+ if(data.status){
+ var credit_sales = data.data;
+ // console.log(credit_sales);
+ if(credit_sales.length > 0){
+ for (var i = 0; i < credit_sales.length ; i++) {
+ var sale_date = new Date(credit_sales[i].sale_date);
+ var receipt_date = sale_date.getFullYear() +'-'+ (sale_date.getMonth() > 10 ? sale_date.getMonth() : '0' + sale_date.getMonth()) +'-'+ (sale_date.getDate() > 10 ? sale_date.getDate() : '0' + sale_date.getDate());
+ $('.tbd_credit_lists').append(html_credit_items.formatUnicorn({
+ 'key':i,
+ 'sale_payment_id':credit_sales[i].sale_payment_id,
+ 'receipt_date':receipt_date +" "+timeFormat(sale_date),
+ 'receipt_no':credit_sales[i].receipt_no,
+ 'cashier_name':credit_sales[i].cashier_name,
+ 'customer_name':credit_sales[i].customer_name,
+ 'credit_amount':credit_sales[i].payment_amount
+ }));
+ }
+ }
+ }else{
+ $(".credit_items").empty();
+ $(".tbd_credit_lists").html(data.message);
+ }
+ }
+ });
+}
+//End of credit sales function
\ No newline at end of file
diff --git a/app/controllers/origami/credit_sales_controller.rb b/app/controllers/origami/credit_sales_controller.rb
new file mode 100644
index 00000000..97f1d38c
--- /dev/null
+++ b/app/controllers/origami/credit_sales_controller.rb
@@ -0,0 +1,25 @@
+class Origami::CreditSalesController < BaseOrigamiController
+ def show
+ @webview = false
+ if check_mobile
+ @webview = true
+ end
+
+ @tables = Table.unscoped.all.active.order('status desc')
+ @rooms = Room.unscoped.all.active.order('status desc')
+ @complete = Sale.where("DATE_FORMAT(created_at,'%Y-%m-%d') = ? and sale_status != 'new'",DateTime.now.strftime('%Y-%m-%d'))
+ @orders = Order.includes("sale_orders").where("DATE_FORMAT(date,'%Y-%m-%d') = ? and status != 'billed' and source != 'quick_service'",DateTime.now.strftime('%Y-%m-%d')).order('date desc')
+ @customers = Customer.pluck("customer_id, name")
+
+ sale_payment = SalePayment.find_by_sale_payment_id(params[:sale_payment_id])
+ @sale = Sale.find_by_sale_id(sale_payment.sale_id)
+ @sale_taxes = []
+ sale_taxes = SaleTax.where("sale_id = ?", @sale.sale_id)
+ if !sale_taxes.empty?
+ sale_taxes.each do |sale_tax|
+ @sale_taxes.push(sale_tax)
+ end
+ end
+ end
+
+end
diff --git a/app/controllers/origami/dashboard_controller.rb b/app/controllers/origami/dashboard_controller.rb
index af182356..c2c77384 100644
--- a/app/controllers/origami/dashboard_controller.rb
+++ b/app/controllers/origami/dashboard_controller.rb
@@ -91,4 +91,15 @@ def get_all_menu
@menus = Menu.all
end
+def get_credit_sales
+ credit_sales = Sale.get_credit_sales(params)
+ if !credit_sales.nil?
+ result = {:status=> true, :data=> credit_sales }
+ else
+ result = {:status=> false, :message=>"There is no record." }
+ end
+
+ render :json => result.to_json
+end
+
end
diff --git a/app/controllers/origami/home_controller.rb b/app/controllers/origami/home_controller.rb
index 2d03d298..799d6c28 100755
--- a/app/controllers/origami/home_controller.rb
+++ b/app/controllers/origami/home_controller.rb
@@ -9,7 +9,7 @@ class Origami::HomeController < BaseOrigamiController
@complete = Sale.where("DATE_FORMAT(created_at,'%Y-%m-%d') = ? and sale_status != 'new'",DateTime.now.strftime('%Y-%m-%d'))
@orders = Order.includes("sale_orders").where("DATE_FORMAT(date,'%Y-%m-%d') = ? and status != 'billed' and source != 'quick_service'",DateTime.now.strftime('%Y-%m-%d')).order('date desc')
@shop = Shop.first
-
+ @customers = Customer.pluck("customer_id, name")
# @shift = ShiftSale.current_open_shift(current_user.id)
end
@@ -21,6 +21,7 @@ class Origami::HomeController < BaseOrigamiController
@rooms = Room.unscoped.all.active.order('status desc')
@complete = Sale.where("DATE_FORMAT(created_at,'%Y-%m-%d') = ? and sale_status != 'new'",DateTime.now.strftime('%Y-%m-%d'))
@orders = Order.includes("sale_orders").where("DATE_FORMAT(date,'%Y-%m-%d') = ? and status != 'billed' and source != 'quick_service'",DateTime.now.strftime('%Y-%m-%d')).order('date desc')
+ @customers = Customer.pluck("customer_id, name")
@status_order = ""
@status_sale = ""
diff --git a/app/controllers/origami/orders_controller.rb b/app/controllers/origami/orders_controller.rb
index c6048404..5f34d9a3 100755
--- a/app/controllers/origami/orders_controller.rb
+++ b/app/controllers/origami/orders_controller.rb
@@ -5,10 +5,10 @@ class Origami::OrdersController < BaseOrigamiController
@webview = true
end
- @tables = Table.all.active.order('status desc')
- @rooms = Room.all.active.order('status desc')
+ @tables = Table.unscoped.all.active.order('status desc')
+ @rooms = Room.unscoped.all.active.order('status desc')
@complete = Sale.where("DATE_FORMAT(created_at,'%Y-%m-%d') = ? and sale_status != 'new'",DateTime.now.strftime('%Y-%m-%d'))
- @orders = Order.where("DATE_FORMAT(date,'%Y-%m-%d') = ? and status != 'billed' and source != 'quick_service'",DateTime.now.strftime('%Y-%m-%d')).order('date desc')
+ @orders = Order.includes("sale_orders").where("DATE_FORMAT(date,'%Y-%m-%d') = ? and status != 'billed' and source != 'quick_service'",DateTime.now.strftime('%Y-%m-%d')).order('date desc')
@order = Order.find(params[:order_id])
booking = Booking.select('bookings.booking_id, bookings.dining_facility_id')
.joins(" JOIN booking_orders as bo on bo.booking_id = bookings.booking_id")
@@ -24,7 +24,7 @@ class Origami::OrdersController < BaseOrigamiController
end
end
-
+ @customers = Customer.pluck("customer_id, name")
#for split bill
lookup_spit_bill = Lookup.collection_of('split_bill')
@split_bill = 0
@@ -52,38 +52,38 @@ class Origami::OrdersController < BaseOrigamiController
@order.order_items[order_item_index].set_menu_items = arr_instance_item_sets
end
end
-
- bookings = Booking.all
- if !bookings.today.nil?
- @order_items_count = Hash.new
- bookings.each do |booking|
- if booking.sale_id.nil? && booking.booking_status != 'moved'
- if !booking.booking_orders.empty?
- booking.booking_orders.each do |booking_order|
- order = Order.find(booking_order.order_id)
- if !order.order_items.empty?
- if !@order_items_count.key?(booking.dining_facility_id)
- @order_items_count.store(booking.dining_facility_id, order.order_items.count)
- else
- @order_items_count[booking.dining_facility_id] += order.order_items.count
- end
- end
- end
- end
- else
- if !booking.sale_id.nil?
- sale = Sale.find(booking.sale_id)
- if sale.sale_status !='completed'
- if !@order_items_count.key?(booking.dining_facility_id)
- @order_items_count.store(booking.dining_facility_id, sale.sale_items.count)
- else
- @order_items_count[booking.dining_facility_id] = sale.sale_items.count
- end
- end
- end
- end
- end
- end
+
+ # bookings = Booking.all
+ # if !bookings.today.nil?
+ # @order_items_count = Hash.new
+ # bookings.each do |booking|
+ # if booking.sale_id.nil? && booking.booking_status != 'moved'
+ # if !booking.booking_orders.empty?
+ # booking.booking_orders.each do |booking_order|
+ # order = Order.find(booking_order.order_id)
+ # if !order.order_items.empty?
+ # if !@order_items_count.key?(booking.dining_facility_id)
+ # @order_items_count.store(booking.dining_facility_id, order.order_items.count)
+ # else
+ # @order_items_count[booking.dining_facility_id] += order.order_items.count
+ # end
+ # end
+ # end
+ # end
+ # else
+ # if !booking.sale_id.nil?
+ # sale = Sale.find(booking.sale_id)
+ # if sale.sale_status !='completed'
+ # if !@order_items_count.key?(booking.dining_facility_id)
+ # @order_items_count.store(booking.dining_facility_id, sale.sale_items.count)
+ # else
+ # @order_items_count[booking.dining_facility_id] = sale.sale_items.count
+ # end
+ # end
+ # end
+ # end
+ # end
+ # end
end
end
diff --git a/app/controllers/origami/rooms_controller.rb b/app/controllers/origami/rooms_controller.rb
index 49b7ce14..54c67776 100755
--- a/app/controllers/origami/rooms_controller.rb
+++ b/app/controllers/origami/rooms_controller.rb
@@ -21,7 +21,7 @@ class Origami::RoomsController < BaseOrigamiController
@rooms = Room.unscoped.all.active.order('status desc')
@complete = Sale.where("DATE_FORMAT(created_at,'%Y-%m-%d') = ? and sale_status != 'new'",DateTime.now.strftime('%Y-%m-%d'))
@orders = Order.includes("sale_orders").where("DATE_FORMAT(date,'%Y-%m-%d') = ? and status != 'billed' and source != 'quick_service'",DateTime.now.strftime('%Y-%m-%d')).order('date desc')
-
+ @customers = Customer.pluck("customer_id, name")
@room = DiningFacility.find(params[:room_id])
@status_order = ""
diff --git a/app/controllers/origami/sales_controller.rb b/app/controllers/origami/sales_controller.rb
index 63a7a34b..9cb28815 100755
--- a/app/controllers/origami/sales_controller.rb
+++ b/app/controllers/origami/sales_controller.rb
@@ -1,9 +1,15 @@
class Origami::SalesController < BaseOrigamiController
def show
- @tables = Table.all.active.order('status desc')
- @rooms = Room.all.active.order('status desc')
+ @webview = false
+ if check_mobile
+ @webview = true
+ end
+
+ @tables = Table.unscoped.all.active.order('status desc')
+ @rooms = Room.unscoped.all.active.order('status desc')
@complete = Sale.where("DATE_FORMAT(created_at,'%Y-%m-%d') = ? and sale_status != 'new'",DateTime.now.strftime('%Y-%m-%d'))
- @orders = Order.where("DATE_FORMAT(date,'%Y-%m-%d') = ? and status != 'billed' and source != 'quick_service'",DateTime.now.strftime('%Y-%m-%d')).order('date desc')
+ @orders = Order.includes("sale_orders").where("DATE_FORMAT(date,'%Y-%m-%d') = ? and status != 'billed' and source != 'quick_service'",DateTime.now.strftime('%Y-%m-%d')).order('date desc')
+ @customers = Customer.pluck("customer_id, name")
@sale = Sale.find(params[:sale_id])
@order = SaleOrder.find_by_sale_id(@sale.sale_id).order_id
@booking = BookingOrder.find_by_order_id(@order).booking_id
diff --git a/app/models/sale.rb b/app/models/sale.rb
index 33c7f1b6..f8c28351 100644
--- a/app/models/sale.rb
+++ b/app/models/sale.rb
@@ -2566,7 +2566,29 @@ def self.all_receipt_details
return query
end
- private
+def self.get_credit_sales(params)
+ receipt_no = ""
+ customer = ""
+ if !params["receipt_no"].blank?
+ receipt_no = " and s.receipt_no LIKE '%#{params["receipt_no"]}%'"
+ end
+
+ if !params["customer_id"].blank?
+ customer = " and s.customer_id = '#{params["customer_id"]}'"
+ end
+
+ query = SalePayment.select("s.receipt_no, sale_payments.sale_payment_id, sale_payments.payment_method, sale_payments.payment_amount,s.receipt_date as sale_date,
+ s.cashier_name as cashier_name, c.name as customer_name")
+ .joins("INNER JOIN sales s ON s.sale_id = sale_payments.sale_id")
+ .joins("INNER JOIN customers c ON c.customer_id = s.customer_id")
+
+ query = query.where("payment_method='creditnote' and s.sale_status = 'completed' #{receipt_no} #{customer}")
+ .order("s.receipt_date ASC, s.receipt_no ASC")
+
+ return query
+end
+
+private
def generate_custom_id
self.sale_id = SeedGenerator.generate_id(self.class.name, "SAL")
diff --git a/app/views/origami/credit_sales/show.html.erb b/app/views/origami/credit_sales/show.html.erb
new file mode 100755
index 00000000..c374e75d
--- /dev/null
+++ b/app/views/origami/credit_sales/show.html.erb
@@ -0,0 +1,360 @@
+
+
| <%= t :credit %> <%= t :sale %> <%= t("views.right_panel.detail.date") %> | +<%= t("views.right_panel.detail.receipt_no") %> | +<%= t :cashier %> <%= t("views.right_panel.detail.name") %> | +<%= t :customer %> <%= t("views.right_panel.detail.name") %> | +<%= t("views.right_panel.detail.credit_amount") %> | + + +
|---|
| Items | +QTY | +Price | +
|---|---|---|
| <%= sale_item.product_name %> | +<%= sale_item.qty %> | +<%= sale_item.price %> | +
| <%= t :credit %> <%= t :sale %> <%= t("views.right_panel.detail.date") %> | +<%= t("views.right_panel.detail.receipt_no") %> | +<%= t :cashier %> <%= t("views.right_panel.detail.name") %> | +<%= t :customer %> <%= t("views.right_panel.detail.name") %> | +<%= t("views.right_panel.detail.credit_amount") %> | + + +
|---|
<%= @sale_array[0].customer_id rescue '' %>
+ Customer : <%= @sale_array[0].customer.name rescue '' %> + <% elsif @status_order == 'order' + %> +<%= @customer.customer_id rescue "" %>
+ Customer : <%= @customer.name rescue "" %> + <% end %> + +| # | +Items | +QTY + | +Price + | +
|---|
| # | -Items | -QTY - | -Price - | -
|---|---|---|---|
| <%= count %> | +<%= sale_item.product_name %> | +<%= sale_item.qty %> | +<%= sale_item.price %> | +
| <%= count %> | -<%= sale_item.product_name %> | -<%= sale_item.qty %> | -<%= sale_item.price %> | -
+ <%= order_item.item_name %>
+ <% if !order_item.options.nil? && !order_item.options.empty? && order_item.options != "undefined" %>
+ <% JSON.parse(order_item.options).each do |option| %>
+ + <%= option %> + + <% end %> + <% end %> - <% - end - end - - if @status_order == 'order' && @status_sale != 'sale' - puts - unless @order_items.nil? || @order_items.empty? - count = 0 - @order_items.each do |order_item| - set_item_prices = 0 - count += 1 - sub_total = sub_total + (order_item.price * order_item.qty) - - # unless order_item.price == 0 %> - |
| <%= count %> | -
- <%= order_item.item_name %>
- <% if !order_item.options.nil? && !order_item.options.empty? && order_item.options != "undefined" %>
- <% JSON.parse(order_item.options).each do |option| %>
- - <%= option %> - - <% end %> - <% end %> - - <% if !order_item.set_menu_items.nil? && order_item.set_menu_items != '[]' - JSON.parse(order_item.set_menu_items).each do |item_instance| - set_item_prices += (item_instance["quantity"].to_f * item_instance["price"].to_f).to_f %> - - <%= item_instance["item_instance_name"] %> - <% if !item_instance["options"].nil? && !item_instance["options"].empty? %> - <% (item_instance["options"]).each do |set_item_option| %> - - <%= set_item_option %> - - <% end %> - <% end %> - - <% end - sub_total += set_item_prices - end %> - |
- <%= order_item.qty %> | -<%= (order_item.qty*order_item.price).to_f + set_item_prices %> | -<%= order_item.qty %> | +<%= (order_item.qty*order_item.price).to_f + set_item_prices %> | + + <% # end - end - end - end - %> - -
| <%= count %> - |
- <%= order_item.item_name %>
- <% if !order_item.options.nil? && !order_item.options.empty? && order_item.options != "undefined" %>
- <% JSON.parse(order_item.options).each do |option| %>
- - <%= option %> - - <% end %> - <% end %> - - <% if !order_item.set_menu_items.nil? - JSON.parse(order_item.set_menu_items).each do |item_instance| - set_item_prices += (item_instance["quantity"].to_f * item_instance["price"].to_f).to_f - %> - - <%= item_instance["item_instance_name"] %> - <% if !item_instance["options"].nil? && item_instance["options"] != "undefined" %> - <% (item_instance["options"]).each do |set_item_option| %> - - <%= set_item_option %> - - <% end %> - <% end %> - - <% end - sub_total += set_item_prices - end %> - |
- <%= order_item.qty %> | -<%= (order_item.qty*order_item.price).to_f + set_item_prices %> | -
| <%= count %> + |
+ <%= order_item.item_name %>
+ <% if !order_item.options.nil? && !order_item.options.empty? && order_item.options != "undefined" %>
+ <% JSON.parse(order_item.options).each do |option| %>
+ + <%= option %> + + <% end %> + <% end %> + + <% if !order_item.set_menu_items.nil? + JSON.parse(order_item.set_menu_items).each do |item_instance| + set_item_prices += (item_instance["quantity"].to_f * item_instance["price"].to_f).to_f + %> + + <%= item_instance["item_instance_name"] %> + <% if !item_instance["options"].nil? && item_instance["options"] != "undefined" %> + <% (item_instance["options"]).each do |set_item_option| %> + + <%= set_item_option %> + + <% end %> + <% end %> + + <% end + sub_total += set_item_prices + end %> + |
+ <%= order_item.qty %> | +<%= (order_item.qty*order_item.price).to_f + set_item_prices %> | +
| Receipt No - <%= sale.receipt_no %> | -- - | -
| Receipt No - <%= sale.receipt_no %> | ++ + | +