From 74b15465f7eff2cf87793018769c79ea52dcac33 Mon Sep 17 00:00:00 2001 From: Zin Lin Phyo Date: Tue, 15 Aug 2017 15:13:44 +0630 Subject: [PATCH] item foc in sale edit --- .gitignore | 2 +- .idea/workspace.xml | 660 ++++-------------- .../origami/sale_edit_controller.rb | 159 +++-- app/models/sale.rb | 2 +- app/views/origami/sale_edit/edit.html.erb | 415 +++++------ config/routes.rb | 1 + 6 files changed, 430 insertions(+), 809 deletions(-) diff --git a/.gitignore b/.gitignore index 3d6c48d5..42a48b40 100644 --- a/.gitignore +++ b/.gitignore @@ -53,4 +53,4 @@ dump.rdb public/fonts/* # Ruby-Mine IDE folder -.idea +/.idea diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 4cdbe61f..f494bdeb 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,27 +2,11 @@ - + - - - - - - - - - - - - - - - - - - - + + + @@ -39,45 +23,41 @@ - - + + - - + + - - - - - - - - - - - - - - - + - - + + - - + + - - + + + + + + + + + + + + @@ -86,54 +66,8 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -147,6 +81,7 @@ table_invoice sale_id oqs + void @@ -155,7 +90,6 @@ @@ -183,8 +121,8 @@ @@ -205,6 +143,21 @@ + + + + + + + + + + + @@ -217,46 +170,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -676,21 +556,22 @@ + - - + - + - + - + @@ -717,279 +598,42 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1004,112 +648,50 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - - + + - + - - - - - - - + + + + + + + + + + + - - - - - - - - - - + + diff --git a/app/controllers/origami/sale_edit_controller.rb b/app/controllers/origami/sale_edit_controller.rb index 209ec4c0..900b0431 100644 --- a/app/controllers/origami/sale_edit_controller.rb +++ b/app/controllers/origami/sale_edit_controller.rb @@ -1,31 +1,50 @@ class Origami::SaleEditController < BaseOrigamiController authorize_resource :class => false - # Index for sale item void OR edit - def edit - sale_id = params[:sale_id] - @table_id = params[:table_id] - @saleobj = Sale.find(sale_id) - end + # Index for sale item void OR edit + def edit + sale_id = params[:sale_id] + @table_id = params[:table_id] + @saleobj = Sale.find(sale_id) + end - # create item void. make duplicate old record and update qty and price - def item_void - saleitemId = params[:sale_item_id] - saleitemObj = SaleItem.find(saleitemId) - saleitemObj.remark = 'void' - saleitemObj.save - @newsaleitem = SaleItem.new - @newsaleitem = saleitemObj.dup - @newsaleitem.save - @newsaleitem.qty = saleitemObj.qty * -1 - @newsaleitem.price = saleitemObj.price * -1 - @newsaleitem.is_taxable = 1 - @newsaleitem.product_name = saleitemObj.product_name + " - void" - @newsaleitem.save + # create item void. make duplicate old record and update qty and price + def item_void + saleitemId = params[:sale_item_id] + saleitemObj = SaleItem.find(saleitemId) + saleitemObj.remark = 'void' + saleitemObj.save + @newsaleitem = SaleItem.new + @newsaleitem = saleitemObj.dup + @newsaleitem.save + @newsaleitem.qty = saleitemObj.qty * -1 + @newsaleitem.price = saleitemObj.price * -1 + @newsaleitem.is_taxable = 1 + @newsaleitem.product_name = saleitemObj.product_name + " - void" + @newsaleitem.save - # re-calc tax - saleObj = Sale.find(saleitemObj.sale_id) - saleObj.compute_without_void - end + # re-calc tax + saleObj = Sale.find(saleitemObj.sale_id) + saleObj.compute_without_void + end + + def item_foc + saleitemId = params[:sale_item_id] + saleitemObj = SaleItem.find(saleitemId) + saleitemObj.remark = 'foc' + saleitemObj.save + @newsaleitem = SaleItem.new + @newsaleitem = saleitemObj.dup + @newsaleitem.save + @newsaleitem.qty = saleitemObj.qty * -1 + @newsaleitem.price = saleitemObj.price * -1 + @newsaleitem.is_taxable = 1 + @newsaleitem.product_name = saleitemObj.product_name + ' foc' + @newsaleitem.save + + # re-calc tax + saleObj = Sale.find(saleitemObj.sale_id) + saleObj.compute_without_void + end # def item_edit # saleitemId = params[:sale_item_id] @@ -48,63 +67,63 @@ class Origami::SaleEditController < BaseOrigamiController # end def item_edit - saleitemId = params[:sale_item_id] - update_qty = params[:update_qty] + saleitemId = params[:sale_item_id] + update_qty = params[:update_qty] update_price = params[:update_price] - saleitemObj = SaleItem.find(saleitemId) + saleitemObj = SaleItem.find(saleitemId) - saleitemObj.qty = update_qty - saleitemObj.price = update_qty.to_f * update_price.to_f - saleitemObj.unit_price = update_price + saleitemObj.qty = update_qty + saleitemObj.price = update_qty.to_f * update_price.to_f + saleitemObj.unit_price = update_price saleitemObj.taxable_price = update_qty.to_f * update_price.to_f # saleitemObj.remark = 'edit' - saleitemObj.product_name = saleitemObj.product_name + " - updated" + saleitemObj.product_name = saleitemObj.product_name + " - updated" saleitemObj.save - # re-calc tax - saleObj = Sale.find(saleitemObj.sale_id) - saleObj.compute_without_void + # re-calc tax + saleObj = Sale.find(saleitemObj.sale_id) + saleObj.compute_without_void end - # make cancel void item - def item_void_cancel - saleitemId = params[:sale_item_id] - saleitemObj = SaleItem.find(saleitemId) - both = SaleItem.where('product_code=?',saleitemObj.product_code) - both.each do |item| - if item.qty.to_i > 0 - item.remark = nil - item.save - end - end - saleitemObj.destroy + # make cancel void item + def item_void_cancel + saleitemId = params[:sale_item_id] + saleitemObj = SaleItem.find(saleitemId) + both = SaleItem.where('product_code=?', saleitemObj.product_code) + both.each do |item| + if item.qty.to_i > 0 + item.remark = nil + item.save + end + end + saleitemObj.destroy - # re-calc tax - saleObj = Sale.find(saleitemObj.sale_id) - saleObj.compute_without_void - end + # re-calc tax + saleObj = Sale.find(saleitemObj.sale_id) + saleObj.compute_without_void + end - # remove all void items - def cancel_all_void - sale_id = params[:sale_id] - saleObj = Sale.find(sale_id) - saleObj.sale_items.each do |item| - if item.qty.to_i < 0 - item.destroy - else - item.remark = nil - end - item.save - end + # remove all void items + def cancel_all_void + sale_id = params[:sale_id] + saleObj = Sale.find(sale_id) + saleObj.sale_items.each do |item| + if item.qty.to_i < 0 + item.destroy + else + item.remark = nil + end + item.save + end - # re-calc tax - saleObj.compute_without_void - end + # re-calc tax + saleObj.compute_without_void + end - def apply_void - sale_id = params[:sale_id] - saleObj = Sale.find(sale_id) - saleObj.compute_without_void - end + def apply_void + sale_id = params[:sale_id] + saleObj = Sale.find(sale_id) + saleObj.compute_without_void + end end diff --git a/app/models/sale.rb b/app/models/sale.rb index 133b2dfe..b19aef3d 100644 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -267,7 +267,7 @@ class Sale < ApplicationRecord rounding_adjustment = 0 sales_items.each do |item| - if item.remark != 'void' + if item.remark != 'void' && item.remark != 'foc' #compute each item and added to total subtotal_price = subtotal_price + item.price total_taxable = total_taxable + item.price diff --git a/app/views/origami/sale_edit/edit.html.erb b/app/views/origami/sale_edit/edit.html.erb index 6ba861a8..bdcf2069 100644 --- a/app/views/origami/sale_edit/edit.html.erb +++ b/app/views/origami/sale_edit/edit.html.erb @@ -1,216 +1,235 @@
- +
-
-
-
INVOICE DETAILS
-
-
-
-
-

Receipt No: +

+
+
INVOICE DETAILS
+
+
+
+
+

Receipt No: <%= @saleobj.receipt_no rescue '' %>

-
-
-

Date: <%= @saleobj.created_at.utc.getlocal.strftime("%d/%m/%Y - %I:%M %p") rescue '-'%>

-
-
-
-
-

Customer :

-
+
+
+

Date: + <%= @saleobj.created_at.utc.getlocal.strftime("%d/%m/%Y - %I:%M %p") rescue '-' %> +

+
+
+
+
+

Customer :

+
-
-
- - - - - - - - - - <% - count = 0 - sub_total = 0 - @saleobj.sale_items.each do |sale_item| - count += 1 - sub_total = sub_total + sale_item.price - %> - - <% - # Can't check for discount - unless sale_item.price == 0 + +
+
#ItemsQTY - Price - - Action
+ + + + + + + + + <% + count = 0 + sub_total = 0 + @saleobj.sale_items.each do |sale_item| + count += 1 + sub_total = sub_total + sale_item.price + %> + + <% + # Can't check for discount + unless sale_item.price == 0 %> - - - - <% if sale_item.remark != 'void' && sale_item.remark != 'edit' %> - - - - + - <% elsif sale_item.qty.to_i < 0 || sale_item.remark == 'edit' %> - - - - - <% else %> - - - - <% end %> - - <% - end - end - %> - -
#ItemsQTY + + Price + + + Action
<%= count %> - <%= sale_item.product_name %> - - - - - - - - + + + + - - - - - - - - - -
-
- -
-
+ + + + <% else %> + + + + + + + + <% end %> + + <% + end + end + %> + + +
+ +
+
- -
- - - - -
+ +
+ + + + +
diff --git a/config/routes.rb b/config/routes.rb index 9e62023c..35cd6233 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -80,6 +80,7 @@ Rails.application.routes.draw do post 'moving' => "movetable#moving" get "/table/:table_id/sale/:sale_id/edit" => "sale_edit#edit" post 'item_void' => "sale_edit#item_void" + post 'item_foc' => "sale_edit#item_foc" post 'item_edit' => "sale_edit#item_edit" post 'item_void_cancel' => "sale_edit#item_void_cancel" post 'cancel_all_void' => 'sale_edit#cancel_all_void'