diff --git a/app/controllers/inventory/inventory_controller.rb b/app/controllers/inventory/inventory_controller.rb index d512a2dc..966872a4 100755 --- a/app/controllers/inventory/inventory_controller.rb +++ b/app/controllers/inventory/inventory_controller.rb @@ -1,8 +1,27 @@ class Inventory::InventoryController < BaseInventoryController - load_and_authorize_resource - def index - @products = InventoryDefinition.all.active.order('created_at desc') - end + load_and_authorize_resource + def index + @inventory_definitions = InventoryDefinition.select("inventory_definitions.*, + (CASE WHEN sj.credit IS NULL THEN '-' ELSE sj.credit END) as credit, + (CASE WHEN sj.debit IS NULL THEN '-' ELSE sj.debit END) as debit, + (CASE WHEN sj.balance IS NULL THEN '-' ELSE sj.balance END) as balance") + .joins(" LEFT JOIN stock_journals sj ON sj.inventory_definition_id=inventory_definitions.id") + .where("(CASE WHEN sj.balance > 0 THEN sj.balance=(SELECT MIN(balance) FROM stock_journals WHERE stock_journals.item_code = inventory_definitions.item_code ORDER BY created_at DESC) ELSE 1 END)") + .group("inventory_definitions.item_code") + .order("(CASE WHEN sj.balance > 0 THEN MIN(sj.balance) ELSE NULL END )") + + end + + def show + inventory_definition_id = params[:inventory_definition_id] + inventory = InventoryDefinition.find(inventory_definition_id) + + @stock_journals = StockJournal.where(item_code: inventory.item_code) + respond_to do |format| + format.html + format.xls + end + end #Shop Name in Navbor helper_method :shop_detail diff --git a/app/controllers/inventory/inventory_definitions_controller.rb b/app/controllers/inventory/inventory_definitions_controller.rb index accb90b4..1b0e072e 100755 --- a/app/controllers/inventory/inventory_definitions_controller.rb +++ b/app/controllers/inventory/inventory_definitions_controller.rb @@ -24,7 +24,14 @@ class Inventory::InventoryDefinitionsController < BaseInventoryController # POST /inventory_definitions # POST /inventory_definitions.json def create - @inventory_definition = InventoryDefinition.new(inventory_definition_params) + inventory = InventoryDefinition.find_by_item_code(inventory_definition_params[:item_code]) + if inventory.nil? + @inventory_definition = InventoryDefinition.new(inventory_definition_params) + else + @inventory_definition = InventoryDefinition.find(inventory.id) + @inventory_definition.min_order_level = inventory_definition_params[:min_order_level] + @inventory_definition.max_stock_level = inventory.max_stock_level.to_i + inventory_definition_params[:max_stock_level].to_i + end @inventory_definition.created_by = current_user.id respond_to do |format| if @inventory_definition.save diff --git a/app/controllers/origami/sales_controller.rb b/app/controllers/origami/sales_controller.rb index b9cc40ec..2662bb16 100755 --- a/app/controllers/origami/sales_controller.rb +++ b/app/controllers/origami/sales_controller.rb @@ -26,15 +26,16 @@ class Origami::SalesController < BaseOrigamiController dining = params[:dining_id] sale_id = params[:sale_id] tax_type = params[:tax_type] + sale_data = [] table = DiningFacility.find(dining) existing_booking = Booking.find_by_sale_id(sale_id) table.bookings.each do |booking| # if !booking.checkout_at.nil? # existing_booking.update_attributes(checkout_at: checkout_at) # end - if booking.sale_id.nil? - order_array = [] - booking.booking_orders.each do |booking_order| + if booking.sale_id.nil? + order_array = [] + booking.booking_orders.each do |booking_order| booking.booking_status = 'moved' order = Order.find(booking_order.order_id) @@ -49,6 +50,7 @@ class Origami::SalesController < BaseOrigamiController if !orer_item.set_menu_items.nil? saleobj.add_sub_item(orer_item.set_menu_items) end + sale_data.push(orer_item) end # Re-compute for add @@ -58,7 +60,7 @@ class Origami::SalesController < BaseOrigamiController booking.save order_array.push(order.order_id) - + end receipt_no = Sale.find(sale_id).receipt_no @@ -75,6 +77,10 @@ class Origami::SalesController < BaseOrigamiController end end end + if !sale_data.empty? + # InventoryJob.perform_now(self.id) + InventoryDefinition.calculate_product_count(nil,sale_data) + end end end diff --git a/app/models/inventory_definition.rb b/app/models/inventory_definition.rb index 4634ff73..6b197bfc 100755 --- a/app/models/inventory_definition.rb +++ b/app/models/inventory_definition.rb @@ -2,11 +2,20 @@ class InventoryDefinition < ApplicationRecord scope :active, -> {where(:is_active => true)} - def self.calculate_product_count(saleObj) - saleObj.sale_items.each do |item| - found, inventory_definition = find_product_in_inventory(item) - if found - check_balance(item,inventory_definition) + def self.calculate_product_count(saleObj=nil,saleobj_after_req_bill=nil) + if !saleObj.nil? + saleObj.sale_items.each do |item| + found, inventory_definition = find_product_in_inventory(item) + if found + check_balance(item,inventory_definition) + end + end + else + saleobj_after_req_bill.each do |item| + found, inventory_definition = find_product_in_inventory(item) + if found + check_balance(item,inventory_definition) + end end end end @@ -16,7 +25,12 @@ class InventoryDefinition < ApplicationRecord if product.nil? return false, nil else - return true, product + stock_check_item = StockCheckItem.find_by_item_code(item.item_instance_code) + if stock_check_item.nil? + return false, nil + else + return true, product + end end end diff --git a/app/models/sale.rb b/app/models/sale.rb index 848245a7..ea8c3263 100644 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -2125,7 +2125,7 @@ end else query = query.where("sales.sale_status = 'completed' and sp.payment_method = '#{payment_method}' and DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%Y-%m-%d') between ? and ? and and DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%H:%i') between ? and ?",from,to,from_time,to_time) end - query.select("(CASE WHEN sp.payment_method='cash' THEN (SUM(sp.payment_amount) - SUM(sales.amount_changed)) WHEN sp.payment_method='creditnote' THEN SUM(sp.payment_amount) - (#{sub_query}) ELSE SUM(sp.payment_amount) END) as payment_amount").first() + query.select("(CASE WHEN sp.payment_method='cash' THEN (SUM(sp.payment_amount) + (#{outstanding_query})) WHEN sp.payment_method='creditnote' THEN SUM(sp.payment_amount) - (#{sub_query}) ELSE SUM(sp.payment_amount) END) as payment_amount").first() else query = Sale.joins("JOIN sale_payments as sp ON sp.sale_id = sales.sale_id") if payment_method == 'card' @@ -2133,7 +2133,7 @@ end else query = query.where("sales.sale_status = 'completed' and sp.payment_method = '#{payment_method}' and DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%Y-%m-%d') between ? and ?",from,to) end - query.select("(CASE WHEN sp.payment_method='cash' THEN (SUM(sp.payment_amount) - SUM(sales.amount_changed)) WHEN sp.payment_method='creditnote' THEN SUM(sp.payment_amount) - (#{sub_query}) ELSE SUM(sp.payment_amount) END) as payment_amount").first() + query.select("(CASE WHEN sp.payment_method='cash' THEN (SUM(sp.payment_amount) + (#{outstanding_query})) WHEN sp.payment_method='creditnote' THEN SUM(sp.payment_amount) - (#{sub_query}) ELSE SUM(sp.payment_amount) END) as payment_amount").first() end else if current_user.role == 'administrator' || current_user.role == 'manager' || current_user.role == 'account' || current_user.role == 'supervisor' @@ -2144,7 +2144,7 @@ end else query = query.where("sales.sale_status = 'completed' and sp.payment_method = '#{payment_method}' and DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%Y-%m-%d') between ? and ? and DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%H:%i') between ? and ?",from,to,from_time,to_time) end - query.select("(CASE WHEN sp.payment_method='cash' THEN (SUM(sp.payment_amount) - SUM(sales.amount_changed)) WHEN sp.payment_method='creditnote' THEN SUM(sp.payment_amount) - (#{sub_query}) ELSE SUM(sp.payment_amount) END) as payment_amount").first() + query.select("(CASE WHEN sp.payment_method='cash' THEN (SUM(sp.payment_amount) + (#{outstanding_query})) WHEN sp.payment_method='creditnote' THEN SUM(sp.payment_amount) - (#{sub_query}) ELSE SUM(sp.payment_amount) END) as payment_amount").first() else query = Sale.joins("JOIN sale_payments as sp ON sp.sale_id = sales.sale_id") if payment_method == 'card' @@ -2152,7 +2152,7 @@ end else query = query.where("sales.sale_status = 'completed' and sp.payment_method = '#{payment_method}' and DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%Y-%m-%d') between ? and ?",from,to) end - query.select("(CASE WHEN sp.payment_method='cash' THEN (SUM(sp.payment_amount) - SUM(sales.amount_changed)) WHEN sp.payment_method='creditnote' THEN SUM(sp.payment_amount) - (#{sub_query}) ELSE SUM(sp.payment_amount) END) as payment_amount").first() + query.select("(CASE WHEN sp.payment_method='cash' THEN (SUM(sp.payment_amount) + (#{outstanding_query})) WHEN sp.payment_method='creditnote' THEN SUM(sp.payment_amount) - (#{sub_query}) ELSE SUM(sp.payment_amount) END) as payment_amount").first() end else shift = ShiftSale.current_open_shift(current_user.id) @@ -2164,7 +2164,7 @@ end else query = query.where("sales.sale_status = 'completed' and sp.payment_method = '#{payment_method}' and DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%Y-%m-%d') between ? and ? and DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%H:%i') between ? and ? and sales.shift_sale_id=?",from,to,from_time,to_time,shift.id) end - query.select("(CASE WHEN sp.payment_method='cash' THEN (SUM(sp.payment_amount) - SUM(sales.amount_changed)) WHEN sp.payment_method='creditnote' THEN SUM(sp.payment_amount) - (#{sub_query}) ELSE SUM(sp.payment_amount) END) as payment_amount").first() + query.select("(CASE WHEN sp.payment_method='cash' THEN (SUM(sp.payment_amount) + (#{outstanding_query})) WHEN sp.payment_method='creditnote' THEN SUM(sp.payment_amount) - (#{sub_query}) ELSE SUM(sp.payment_amount) END) as payment_amount").first() else query = Sale.joins("JOIN sale_payments as sp ON sp.sale_id = sales.sale_id") if payment_method == 'card' @@ -2172,7 +2172,7 @@ end else query = query.where("sales.sale_status = 'completed' and sp.payment_method = '#{payment_method}' and DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%Y-%m-%d') between ? and ? and sales.shift_sale_id=?",from,to,shift.id) end - query.select("(CASE WHEN sp.payment_method='cash' THEN (SUM(sp.payment_amount) - SUM(sales.amount_changed)) WHEN sp.payment_method='creditnote' THEN SUM(sp.payment_amount) - (#{sub_query}) ELSE SUM(sp.payment_amount) END) as payment_amount").first() + query.select("(CASE WHEN sp.payment_method='cash' THEN (SUM(sp.payment_amount) + (#{outstanding_query})) WHEN sp.payment_method='creditnote' THEN SUM(sp.payment_amount) - (#{sub_query}) ELSE SUM(sp.payment_amount) END) as payment_amount").first() end end end @@ -2185,7 +2185,7 @@ end else query = query.where("sales.sale_status = 'completed' and sp.payment_method = '#{payment_method}' and DATE_FORMAT(sales.receipt_date,'%Y-%m-%d') = ?",today) end - query.select("(CASE WHEN sp.payment_method='cash' THEN (SUM(sp.payment_amount) - SUM(sales.amount_changed)) WHEN sp.payment_method='creditnote' THEN SUM(sp.payment_amount) - (#{sub_query}) ELSE SUM(sp.payment_amount) END) as payment_amount").first() + query.select("(CASE WHEN sp.payment_method='cash' THEN (SUM(sp.payment_amount) + (#{outstanding_query})) WHEN sp.payment_method='creditnote' THEN SUM(sp.payment_amount) - (#{sub_query}) ELSE SUM(sp.payment_amount) END) as payment_amount").first() else if current_user.role == 'administrator' || current_user.role == 'manager' || current_user.role == 'account' || current_user.role == 'supervisor' query = Sale.joins("JOIN sale_payments as sp ON sp.sale_id = sales.sale_id") @@ -2194,7 +2194,7 @@ end else query = query.where("sales.sale_status = 'completed' and sp.payment_method = '#{payment_method}' and DATE_FORMAT(sales.receipt_date,'%Y-%m-%d') = ?",today) end - query.select("(CASE WHEN sp.payment_method='cash' THEN (SUM(sp.payment_amount) - SUM(sales.amount_changed)) WHEN sp.payment_method='creditnote' THEN SUM(sp.payment_amount) - (#{sub_query}) ELSE SUM(sp.payment_amount) END) as payment_amount").first() + query.select("(CASE WHEN sp.payment_method='cash' THEN (SUM(sp.payment_amount) + (#{outstanding_query})) WHEN sp.payment_method='creditnote' THEN SUM(sp.payment_amount) - (#{sub_query}) ELSE SUM(sp.payment_amount) END) as payment_amount").first() else shift = ShiftSale.current_open_shift(current_user.id) if !shift.nil? @@ -2204,7 +2204,7 @@ end else query = query.where("sales.sale_status = 'completed' and sp.payment_method = '#{payment_method}' and DATE_FORMAT(sales.receipt_date,'%Y-%m-%d') = ? and sales.shift_sale_id=?",today,shift.id) end - query.select("(CASE WHEN sp.payment_method='cash' THEN (SUM(sp.payment_amount) - SUM(sales.amount_changed)) WHEN sp.payment_method='creditnote' THEN SUM(sp.payment_amount) - (#{sub_query}) ELSE SUM(sp.payment_amount) END) as payment_amount").first() + query.select("(CASE WHEN sp.payment_method='cash' THEN (SUM(sp.payment_amount) + (#{outstanding_query})) WHEN sp.payment_method='creditnote' THEN SUM(sp.payment_amount) - (#{sub_query}) ELSE SUM(sp.payment_amount) END) as payment_amount").first() end end end diff --git a/app/models/stock_check_item.rb b/app/models/stock_check_item.rb index 8653837c..9db680d2 100755 --- a/app/models/stock_check_item.rb +++ b/app/models/stock_check_item.rb @@ -36,10 +36,10 @@ class StockCheckItem < ApplicationRecord def self.get_transaction(from, to, item_code) transaction = all if !from.nil? && !to.nil? - transaction = transaction.where('created_at between ? and ?', from, to) + transaction = transaction.where('created_at between ? and ?', from, to).order("item_code asc, different desc") end if item_code.present? - transaction = transaction.where(item_code: item_code) + transaction = transaction.where(item_code: item_code).order("item_code asc, different desc") end transaction end diff --git a/app/models/stock_journal.rb b/app/models/stock_journal.rb index fa4bd285..9a30d3b0 100755 --- a/app/models/stock_journal.rb +++ b/app/models/stock_journal.rb @@ -4,10 +4,11 @@ class StockJournal < ApplicationRecord STOCK_CHECK_TRANS = "stock_check" def self.add_to_journal(item, balance, stock_message, inventory_definition) # item => saleObj | balance => Stock journal + journal = StockJournal.new + journal.credit = balance balance = calculate_balance(balance, item.qty) - - journal = StockJournal.new + journal.item_code = item.item_instance_code journal.inventory_definition_id = inventory_definition.id journal.debit = item.qty diff --git a/app/views/inventory/inventory/_inventory_list.html.erb b/app/views/inventory/inventory/_inventory_list.html.erb index ff6ccd5d..921c382a 100755 --- a/app/views/inventory/inventory/_inventory_list.html.erb +++ b/app/views/inventory/inventory/_inventory_list.html.erb @@ -5,12 +5,14 @@
- 1) <%= t("views.btn.new") + " " + (t :inventory) %> - <%= t("views.right_panel.detail.create_btn_txt") %> <%= t("views.right_panel.detail.inventory") %>
+ 1) <%= (t :track) +" "+ t("views.btn.new") + " " + (t :inventory) %> - <%= t("views.right_panel.detail.create_btn_txt") %> <%= t("views.right_panel.detail.inventory") %>
- 2) <%= t("views.btn.new") + " " + t("views.right_panel.detail.stock_taking") %> - <%= t("views.right_panel.detail.create_btn_txt") %> <%= t("views.right_panel.detail.stock_taking_txt") %>
+ 2) <%= t("views.right_panel.detail.stock_taking") %> - <%= t("views.right_panel.detail.create_btn_txt") %> <%= t("views.right_panel.detail.stock_taking_txt") %>
+
1) <%= t("views.right_panel.button.home") %> - <%= t("views.right_panel.detail.home_txt") %>
@@ -51,12 +51,12 @@
window.location.href = '<%= inventory_stock_checks_path %>';
});
- $('#stock_check_report').on('click', function () {
- window.location.href = '<%= reports_stock_check_index_path %>';
- });
+ // $('#stock_check_report').on('click', function () {
+ // window.location.href = '<%= reports_stock_check_index_path %>';
+ // });
$('#new_inventory_product').on('click',function(){
window.location.href = '/inventory/inventory_definitions/new';
-})
+ });
diff --git a/app/views/inventory/inventory/show.html.erb b/app/views/inventory/inventory/show.html.erb
new file mode 100644
index 00000000..0176928b
--- /dev/null
+++ b/app/views/inventory/inventory/show.html.erb
@@ -0,0 +1,70 @@
+
| <%= t("views.right_panel.detail.date") %> | +<%= t("views.right_panel.detail.type") %> | +<%= t("views.right_panel.detail.item") %> <%= t("views.right_panel.detail.name") %> | +<%= t :credit %> | +<%= t :debit %> | +<%= t("views.right_panel.detail.balance") %> | +<%= t("views.right_panel.detail.remark") %> | +|
|---|---|---|---|---|---|---|---|
| <%= result.created_at.strftime('%e %b %Y %I:%M %p') rescue '-' %> | +<%= result.trans_type rescue '-' %> | ++ <% menu_item = MenuItemInstance.find_by_item_instance_code(result.item_code)%> + <% if menu_item.nil? %> + <%= Product.find_by_item_code(result.item_code).name rescue "-" %> + <% else %> + <%= menu_item.menu_item.name rescue "-" %> + - <%= menu_item.item_instance_name rescue "-" %> + <% end %> + | +<%= result.credit rescue '-' %> | +<%= result.debit rescue '-' %> | +<%= result.balance rescue '-' %> | +<%= result.remark rescue '-' %> | +|
| There is no record... | +|||||||