From 70046370273b8838396776cc6e1c373caf821ff4 Mon Sep 17 00:00:00 2001 From: yamin Date: Thu, 24 Aug 2017 18:24:57 +0630 Subject: [PATCH 1/2] In_juties --- .../origami/in_juties_controller.rb | 39 +++++++++++- app/models/promotion.rb | 2 +- app/views/origami/home/show.html.erb | 6 ++ .../in_juties/_assign_in_juty.html.erb | 58 ++++++++++++++++++ .../origami/in_juties/_edit_form.html.erb | 59 +++++++++++++++++++ .../origami/in_juties/assign_in_juty.html.erb | 3 + .../origami/in_juties/edit_in_juty.html.erb | 10 ++++ .../origami/in_juties/index_in_juty.html.erb | 37 ++++++++++++ config/routes.rb | 9 +++ 9 files changed, 221 insertions(+), 2 deletions(-) create mode 100644 app/views/origami/in_juties/_assign_in_juty.html.erb create mode 100644 app/views/origami/in_juties/_edit_form.html.erb create mode 100644 app/views/origami/in_juties/assign_in_juty.html.erb create mode 100644 app/views/origami/in_juties/edit_in_juty.html.erb create mode 100644 app/views/origami/in_juties/index_in_juty.html.erb diff --git a/app/controllers/origami/in_juties_controller.rb b/app/controllers/origami/in_juties_controller.rb index 2f7ff21f..f13c6fb6 100644 --- a/app/controllers/origami/in_juties_controller.rb +++ b/app/controllers/origami/in_juties_controller.rb @@ -1,5 +1,5 @@ class Origami::InJutiesController < BaseOrigamiController - before_action :set_in_juty, only: [:show, :edit, :update, :destroy] + before_action :set_in_juty, only: [:show, :edit, :update,:edit_in_juty, :update_for_in_juty , :destroy ,:destroy_in_juty] # GET /in_juties # GET /in_juties.json @@ -7,6 +7,9 @@ class Origami::InJutiesController < BaseOrigamiController @in_juties = InJuty.all end + def index_in_juty + @juties_in= InJuty.where("dinning_id=?",params[:table_id]) + end # GET /in_juties/1 # GET /in_juties/1.json def show @@ -21,6 +24,14 @@ class Origami::InJutiesController < BaseOrigamiController def edit end + def edit_in_juty + @table = DiningFacility.find(params[:table_id]) + end + + def assign_in_juty + @in_juty = InJuty.new + @table = DiningFacility.find(params[:table_id]) + end # POST /in_juties # POST /in_juties.json def create @@ -37,6 +48,15 @@ class Origami::InJutiesController < BaseOrigamiController end end + def create_for_in_juty + + @in_juty.dinning_id = params[:dining_id] + @in_juty.commissioner_ids = params[:commissioner_ids] + @in_juty.in_time = params[:in_time] + @in_juty.out_time = params[:out_time] + @in_juty.save + end + # PATCH/PUT /in_juties/1 # PATCH/PUT /in_juties/1.json def update @@ -51,6 +71,15 @@ class Origami::InJutiesController < BaseOrigamiController end end + + def update_for_in_juty + @in_juty.dinning_id = params[:dining_id] + @in_juty.commissioner_ids = params[:commissioner_ids] + @in_juty.in_time = params[:in_time] + @in_juty.out_time = params[:out_time] + @in_juty.update + end + # DELETE /in_juties/1 # DELETE /in_juties/1.json def destroy @@ -61,6 +90,14 @@ class Origami::InJutiesController < BaseOrigamiController end end + def destroy_in_juty + @in_juty.destroy + respond_to do |format| + format.html { redirect_to origami_in_juties_path, notice: 'In juty was successfully destroyed.' } + format.json { head :no_content } + end + end + private # Use callbacks to share common setup or constraints between actions. def set_in_juty diff --git a/app/models/promotion.rb b/app/models/promotion.rb index ed727038..77e282b4 100644 --- a/app/models/promotion.rb +++ b/app/models/promotion.rb @@ -204,6 +204,6 @@ class Promotion < ApplicationRecord end def self.calculate_discount(total, discount) - self (total.to_i * discount.to_i) / 100 + return (total.to_i * discount.to_i) / 100 end end diff --git a/app/views/origami/home/show.html.erb b/app/views/origami/home/show.html.erb index e08f5d3d..680894ff 100644 --- a/app/views/origami/home/show.html.erb +++ b/app/views/origami/home/show.html.erb @@ -333,6 +333,7 @@ + @@ -579,6 +580,11 @@ window.location.href = '/origami/table/' + dining_id + "/sale/" + sale_id + "/load_commissioners"; }); + $('#in_juties').on('click', function () { + var dining_id = "<%= @dining.id %>" + window.location.href = '/origami/assign_in_juty/'+ dining_id; + }); + $('#void').on('click', function () { var sure = confirm("Are you sure want to Void"); if (sure == true) { diff --git a/app/views/origami/in_juties/_assign_in_juty.html.erb b/app/views/origami/in_juties/_assign_in_juty.html.erb new file mode 100644 index 00000000..14469fde --- /dev/null +++ b/app/views/origami/in_juties/_assign_in_juty.html.erb @@ -0,0 +1,58 @@ +
+<%= simple_form_for([:origami,@in_juty]) do |f| %> + <%= f.error_notification %> + +
+ <%= f.label :dinning_id %> +
+ <%= @table.name %> +
+ + <%= f.label :commissioner_ids %> + <%= f.collection_select :commissioner_ids, Commissioner.all, :id, :name, {prompt: 'Select Commissioner'}, {class: 'form-control'} %>
+ + <%= f.text_field :in_time, :value=>DateTime.now.strftime("%Y-%m-%d / %I:%M %p"),:class=>"form-control datepicker"%>
+ + <%= f.text_field :out_time, :value=>DateTime.now.strftime("%Y-%m-%d / %I:%M %p"),:class=>"form-control datepicker"%> +

+
+
+
+ <%= link_to 'Back', origami_path(@table.id), class: 'btn btn-success' %> +
+
+ +
+
+
+<% end %> +
+ + \ No newline at end of file diff --git a/app/views/origami/in_juties/_edit_form.html.erb b/app/views/origami/in_juties/_edit_form.html.erb new file mode 100644 index 00000000..61f6512f --- /dev/null +++ b/app/views/origami/in_juties/_edit_form.html.erb @@ -0,0 +1,59 @@ +
+<%= simple_form_for([:origami,@in_juty]) do |f| %> + <%= f.error_notification %> + +
+ <%= f.label :dinning_id %> +
+ <%= @table.name %> +
+ + <%= f.label :commissioner_ids %> + <%= f.collection_select :commissioner_ids, Commissioner.all, :id, :name, {prompt: 'Select Commissioner'}, {class: 'form-control'} ,:value => @in_juty.commissioner.name %>
+ + <%= f.text_field :in_time, :value=>DateTime.now.strftime("%Y-%m-%d / %I:%M %p"),:class=>"form-control datepicker" ,:value => @in_juty.in_time %>
+ + <%= f.text_field :out_time, :value=>DateTime.now.strftime("%Y-%m-%d / %I:%M %p"),:class=>"form-control datepicker" ,:value => @in_juty.out_time %> +

+
+
+
+ <%= link_to 'Back', origami_index_in_juty_path, class: 'btn btn-success' %> +
+
+ +
+
+
+<% end %> +
+ + \ No newline at end of file diff --git a/app/views/origami/in_juties/assign_in_juty.html.erb b/app/views/origami/in_juties/assign_in_juty.html.erb new file mode 100644 index 00000000..09dd646a --- /dev/null +++ b/app/views/origami/in_juties/assign_in_juty.html.erb @@ -0,0 +1,3 @@ +
+ <%= render 'assign_in_juty', in_juty: @in_juty %> +
\ No newline at end of file diff --git a/app/views/origami/in_juties/edit_in_juty.html.erb b/app/views/origami/in_juties/edit_in_juty.html.erb new file mode 100644 index 00000000..3a6fc774 --- /dev/null +++ b/app/views/origami/in_juties/edit_in_juty.html.erb @@ -0,0 +1,10 @@ +
+ + <%= render 'form', in_juty: @in_juty %> +
\ No newline at end of file diff --git a/app/views/origami/in_juties/index_in_juty.html.erb b/app/views/origami/in_juties/index_in_juty.html.erb new file mode 100644 index 00000000..29e4ebab --- /dev/null +++ b/app/views/origami/in_juties/index_in_juty.html.erb @@ -0,0 +1,37 @@ + + +
+
+ + + + + + + + + + + + + <% @juties_in.each do |in_juty| %> + + + + + + + + + <% end %> + +
Dining Facility NameCommissioner IdsIn timeOut time
<%= in_juty.dining_facility.name rescue '-' %><%= in_juty.commissioner.name rescue '-' %><%= in_juty.in_time.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") rescue '-' %><%= in_juty.out_time.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") rescue '-' %><%= link_to 'Edit', origami_edit_in_juty_path(in_juty) %><%= link_to 'Destroy', origami_destroy_in_juty_path(in_juty), method: :delete, data: {confirm: 'Are you sure?'} %>
+
diff --git a/config/routes.rb b/config/routes.rb index b5af4fe2..a4693c12 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -89,6 +89,15 @@ Rails.application.routes.draw do # commissions get '/table/:table_id/sale/:sale_id/load_commissioners' => 'commissions#load_commissioners', as: 'load_commissioners' post 'select_sale_item' => 'commissions#select_sale_item' + # in_juties + get '/table/:table_id/assign_in_juty' => 'in_juties#assign_in_juty', as: 'assign_in_juty' + post 'assign_in_juty' => 'in_juties#create_for_in_juty', as: 'create_for_in_juty' + get 'assign_in_juty/:table_id' => 'in_juties#index_in_juty', as: 'index_in_juty' + get '/in_juty/:in_juty_id/edit' => 'in_juties#edit_in_juty' ,as: 'edit_in_juty' + put '/edit_in_juty/:in_juty_id' => 'in_juties#update_for_in_juty', as: 'update_for_in_juty' + delete '/destroy_in_juty/:in_juty_id' => 'in_juties#destroy_in_juty', as: 'destroy_in_juty' + + get 'table/:dining_id/movetable' => "movetable#move_dining" get 'table/:dining_id/moveroom' => "moveroom#move_dining" From 8b33a94d930e0e54e3e13f60448a2c202534d018 Mon Sep 17 00:00:00 2001 From: Phyo Date: Thu, 24 Aug 2017 18:31:53 +0630 Subject: [PATCH 2/2] Promotion Tax bug fix --- app/models/promotion.rb | 10 ++++++++-- app/models/sale.rb | 4 +++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/app/models/promotion.rb b/app/models/promotion.rb index 87b90613..282d6798 100644 --- a/app/models/promotion.rb +++ b/app/models/promotion.rb @@ -120,6 +120,10 @@ class Promotion < ApplicationRecord def self.give_promotion_second_product(orderitem_count, foc_min_qty, promo_product, orderitem, sale_id) puts "..... orderitem_count: " + orderitem_count.to_s + " / foc_min_qty: " + foc_min_qty.to_s + " /promo_product: " + promo_product + " orderitem: " + orderitem.to_s promotion_qty = orderitem_count.to_i / foc_min_qty.to_i # get foc item qty + foc_qty = find_second_item_qty(sale_id, promo_product) + if (foc_qty < promotion_qty) + promotion_qty = foc_qty + end item = OrderItem.find_by_item_code(promo_product) update_existing_item(promotion_qty, item, sale_id, "promotion", item.price) end @@ -135,13 +139,15 @@ class Promotion < ApplicationRecord sale_item.qty = foc_qty * (-1) sale_item.unit_price = item_price * (-1) - sale_item.taxable_price = item_price + sale_item.taxable_price = item_price * (-1) sale_item.price = foc_qty * item_price * (-1) - sale_item.is_taxable = item.taxable + sale_item.is_taxable = false sale_item.sale_id = sale_id sale_item.save + sale = Sale.find(sale_id). + sale.compute_by_sale_items(sale.id, sale.sale_items, sale.total_discount) end diff --git a/app/models/sale.rb b/app/models/sale.rb index 9927251d..500e28ef 100644 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -183,6 +183,7 @@ class Sale < ApplicationRecord sale_item.sale_id = self.id sale_item.price = diningprice sale_item.save + self.compute end def update_item (item) @@ -214,10 +215,11 @@ class Sale < ApplicationRecord sales_items.each do |item| #compute each item and added to total + puts "item.sales_item_id ddd" + puts item.sale_item_id subtotal_price = subtotal_price + item.price total_taxable = total_taxable + (item.taxable_price * item.qty) end - apply_tax (total_taxable) self.total_amount = subtotal_price self.total_discount = total_discount