calculate commission in sale_edit, void, foc

This commit is contained in:
Zin Lin Phyo
2017-09-04 12:09:04 +06:30
parent c2d86cb17c
commit 2330a1a33e
3 changed files with 110 additions and 95 deletions

171
.idea/workspace.xml generated
View File

@@ -2,13 +2,9 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="89ca96af-a0e4-4fe4-b9a3-9969f22d7079" name="Default" comment="">
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/dump.rdb" afterPath="$PROJECT_DIR$/dump.rdb" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/controllers/origami/sale_edit_controller.rb" afterPath="$PROJECT_DIR$/app/controllers/origami/sale_edit_controller.rb" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/models/product_commission.rb" afterPath="$PROJECT_DIR$/app/models/product_commission.rb" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/views/origami/product_commissions/load_commissioners.html.erb" afterPath="$PROJECT_DIR$/app/views/origami/product_commissions/load_commissioners.html.erb" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/views/reports/commission/index.html.erb" afterPath="$PROJECT_DIR$/app/views/reports/commission/index.html.erb" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/views/settings/commissions/_form.html.erb" afterPath="$PROJECT_DIR$/app/views/settings/commissions/_form.html.erb" />
</list>
<ignored path="$PROJECT_DIR$/.bundle/" />
<ignored path="$PROJECT_DIR$/components/" />
@@ -50,7 +46,7 @@
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="load_commissioners.html.erb" pinned="false" current-in-tab="true">
<file leaf-file-name="load_commissioners.html.erb" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/views/origami/product_commissions/load_commissioners.html.erb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="388">
@@ -63,18 +59,18 @@
<file leaf-file-name="sale_edit_controller.rb" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/controllers/origami/sale_edit_controller.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="553">
<caret line="118" column="9" lean-forward="true" selection-start-line="118" selection-start-column="9" selection-end-line="118" selection-end-column="9" />
<state relative-caret-position="293">
<caret line="123" column="49" lean-forward="false" selection-start-line="123" selection-start-column="24" selection-end-line="123" selection-end-column="49" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="product_commission.rb" pinned="false" current-in-tab="false">
<file leaf-file-name="product_commission.rb" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/app/models/product_commission.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="396">
<caret line="22" column="21" lean-forward="false" selection-start-line="22" selection-start-column="21" selection-end-line="22" selection-end-column="21" />
<state relative-caret-position="185">
<caret line="15" column="43" lean-forward="false" selection-start-line="15" selection-start-column="43" selection-end-line="15" selection-end-column="43" />
<folding />
</state>
</provider>
@@ -83,8 +79,8 @@
<file leaf-file-name="product_commissions_controller.rb" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/controllers/origami/product_commissions_controller.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1602">
<caret line="89" column="55" lean-forward="false" selection-start-line="89" selection-start-column="55" selection-end-line="89" selection-end-column="55" />
<state relative-caret-position="554">
<caret line="119" column="64" lean-forward="true" selection-start-line="119" selection-start-column="64" selection-end-line="119" selection-end-column="64" />
<folding />
</state>
</provider>
@@ -93,7 +89,7 @@
<file leaf-file-name="index.html.erb" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/views/reports/commission/index.html.erb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1134">
<state relative-caret-position="455">
<caret line="63" column="24" lean-forward="false" selection-start-line="63" selection-start-column="24" selection-end-line="63" selection-end-column="24" />
<folding />
</state>
@@ -103,23 +99,13 @@
<file leaf-file-name="commissions_controller.rb" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/controllers/settings/commissions_controller.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
<state relative-caret-position="-81">
<caret line="6" column="25" lean-forward="false" selection-start-line="6" selection-start-column="25" selection-end-line="6" selection-end-column="25" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="commission.rb" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/models/commission.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
<caret line="6" column="51" lean-forward="false" selection-start-line="6" selection-start-column="39" selection-end-line="6" selection-end-column="51" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="new.html.erb" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/views/settings/commissions/new.html.erb">
<provider selected="true" editor-type-id="text-editor">
@@ -143,8 +129,8 @@
<file leaf-file-name="_form.html.erb" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/views/settings/commissions/_form.html.erb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
<caret line="6" column="57" lean-forward="false" selection-start-line="6" selection-start-column="57" selection-end-line="6" selection-end-column="57" />
<state relative-caret-position="126">
<caret line="7" column="86" lean-forward="false" selection-start-line="7" selection-start-column="86" selection-end-line="7" selection-end-column="86" />
<folding />
</state>
</provider>
@@ -233,9 +219,9 @@
<option value="$PROJECT_DIR$/app/controllers/settings/commissions_controller.rb" />
<option value="$PROJECT_DIR$/app/views/origami/product_commissions/load_commissioners.html.erb" />
<option value="$PROJECT_DIR$/app/views/settings/commissions/_form.html.erb" />
<option value="$PROJECT_DIR$/app/models/product_commission.rb" />
<option value="$PROJECT_DIR$/app/views/reports/commission/index.html.erb" />
<option value="$PROJECT_DIR$/app/controllers/origami/sale_edit_controller.rb" />
<option value="$PROJECT_DIR$/app/models/product_commission.rb" />
</list>
</option>
</component>
@@ -797,12 +783,12 @@
<workItem from="1503843212665" duration="21267000" />
<workItem from="1503909487511" duration="81238000" />
<workItem from="1504495781883" duration="124000" />
<workItem from="1504496113282" duration="1032000" />
<workItem from="1504496113282" duration="6650000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="235012000" />
<option name="totallyTimeSpent" value="240630000" />
</component>
<component name="TodoView">
<todo-panel id="selected-file">
@@ -815,6 +801,7 @@
</component>
<component name="ToolWindowManager">
<frame x="1440" y="22" width="1920" height="1058" extended-state="6" />
<editor active="true" />
<layout>
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.19648562" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32917964" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
@@ -824,7 +811,7 @@
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.34890965" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.39252338" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.46313605" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.31152648" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
@@ -883,21 +870,16 @@
<breakpoints>
<line-breakpoint enabled="true" type="ruby-line">
<url>file://$PROJECT_DIR$/app/models/product_commission.rb</url>
<line>11</line>
<line>36</line>
<option name="timeStamp" value="44" />
</line-breakpoint>
<line-breakpoint enabled="true" type="ruby-line">
<url>file://$PROJECT_DIR$/app/models/product_commission.rb</url>
<line>29</line>
<option name="timeStamp" value="45" />
</line-breakpoint>
<line-breakpoint enabled="true" type="ruby-line">
<url>file://$PROJECT_DIR$/app/controllers/origami/sale_edit_controller.rb</url>
<line>11</line>
<option name="timeStamp" value="46" />
<line>8</line>
<option name="timeStamp" value="49" />
</line-breakpoint>
</breakpoints>
<option name="time" value="48" />
<option name="time" value="50" />
</breakpoint-manager>
<watches-manager />
</component>
@@ -1170,13 +1152,6 @@
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/actionpack-5.1.3/lib/action_controller/metal/basic_implicit_render.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="54">
<caret line="3" column="0" lean-forward="false" selection-start-line="3" selection-start-column="0" selection-end-line="3" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/controllers/reports/commission_controller.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="216">
@@ -1208,22 +1183,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/views/settings/commissions/_form.html.erb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
<caret line="6" column="57" lean-forward="false" selection-start-line="6" selection-start-column="57" selection-end-line="6" selection-end-column="57" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/controllers/settings/commissions_controller.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
<caret line="6" column="25" lean-forward="false" selection-start-line="6" selection-start-column="25" selection-end-line="6" selection-end-column="25" />
<folding />
</state>
</provider>
</entry>
<entry file="das://table:/844819c3/510618f2-4da0-40ca-b942-854be042c0eb/SXRestaurants_development.product_commissions">
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
<state>
@@ -1231,38 +1190,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/controllers/origami/product_commissions_controller.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1602">
<caret line="89" column="55" lean-forward="false" selection-start-line="89" selection-start-column="55" selection-end-line="89" selection-end-column="55" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/views/reports/commission/index.html.erb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1134">
<caret line="63" column="24" lean-forward="false" selection-start-line="63" selection-start-column="24" selection-end-line="63" selection-end-column="24" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/models/product_commission.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="396">
<caret line="22" column="21" lean-forward="false" selection-start-line="22" selection-start-column="21" selection-end-line="22" selection-end-column="21" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/controllers/origami/sale_edit_controller.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="553">
<caret line="118" column="9" lean-forward="true" selection-start-line="118" selection-start-column="9" selection-end-line="118" selection-end-column="9" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/views/origami/product_commissions/load_commissioners.html.erb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="388">
@@ -1271,5 +1198,61 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/views/settings/commissions/_form.html.erb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="126">
<caret line="7" column="86" lean-forward="false" selection-start-line="7" selection-start-column="86" selection-end-line="7" selection-end-column="86" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/controllers/settings/commissions_controller.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-81">
<caret line="6" column="25" lean-forward="false" selection-start-line="6" selection-start-column="25" selection-end-line="6" selection-end-column="25" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/views/reports/commission/index.html.erb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="455">
<caret line="63" column="24" lean-forward="false" selection-start-line="63" selection-start-column="24" selection-end-line="63" selection-end-column="24" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/controllers/origami/product_commissions_controller.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="554">
<caret line="119" column="64" lean-forward="true" selection-start-line="119" selection-start-column="64" selection-end-line="119" selection-end-column="64" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/controllers/origami/sale_edit_controller.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="293">
<caret line="123" column="49" lean-forward="false" selection-start-line="123" selection-start-column="24" selection-end-line="123" selection-end-column="49" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/actionpack-5.1.3/lib/action_controller/metal/basic_implicit_render.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="54">
<caret line="3" column="0" lean-forward="false" selection-start-line="3" selection-start-column="0" selection-end-line="3" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/models/product_commission.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="185">
<caret line="15" column="43" lean-forward="false" selection-start-line="15" selection-start-column="43" selection-end-line="15" selection-end-column="43" />
<folding />
</state>
</provider>
</entry>
</component>
</project>

View File

@@ -25,6 +25,7 @@ class Origami::SaleEditController < BaseOrigamiController
# re-calc tax
saleObj = Sale.find(saleitemObj.sale_id)
saleObj.compute_without_void
ProductCommission.create_product_commission(@newsaleitem, saleitemObj)
end
def item_foc
@@ -44,6 +45,7 @@ class Origami::SaleEditController < BaseOrigamiController
# re-calc tax
saleObj = Sale.find(saleitemObj.sale_id)
saleObj.compute_without_void
ProductCommission.create_product_commission(@newsaleitem, saleitemObj)
end
# def item_edit
@@ -105,6 +107,7 @@ class Origami::SaleEditController < BaseOrigamiController
# re-calc tax
saleObj = Sale.find(saleitemObj.sale_id)
saleObj.compute_without_void
ProductCommission.remove_product_commission(saleitemObj)
end
# remove all void items
@@ -118,6 +121,7 @@ class Origami::SaleEditController < BaseOrigamiController
item.remark = nil
end
item.save
ProductCommission.remove_product_commission(item)
end
# re-calc tax
@@ -128,5 +132,8 @@ class Origami::SaleEditController < BaseOrigamiController
sale_id = params[:sale_id]
saleObj = Sale.find(sale_id)
saleObj.compute_without_void
saleObj.sale_items.each do |item|
ProductCommission.remove_product_commission(item)
end
end
end

View File

@@ -5,7 +5,32 @@ class ProductCommission < ApplicationRecord
belongs_to :sale_item, foreign_key: 'sale_item_id'
belongs_to :sale, foreign_key: 'sale_id'
def self.create_product_commission(saleItemObj)
def self.create_product_commission(newSaleItem, oldSaleItem)
old_product_commission = ProductCommission.find_by_sale_item_id(oldSaleItem.id)
return if old_product_commission.nil?
menu_item = MenuItem.find_by_item_code(newSaleItem.product_code)
return if menu_item.nil?
product_commission = ProductCommission.new
commission = Commission.where('product_code = ? AND is_active = ?', menu_item.id, true).take
product_commission.product_code = menu_item.id
product_commission.product_type = 'menu_item' # use for dummy data ToDo::need to change product type
unless commission.nil?
product_commission.commission_id = commission.id
if commission.commission_type == 'Percentage'
product_commission.price = newSaleItem.unit_price * (commission.amount / 100.0)
product_commission.amount = product_commission.price * newSaleItem.qty
elsif commission.commission_type == 'Net Amount'
product_commission.price = commission.amount
product_commission.amount = product_commission.price * newSaleItem.qty
end
end
unless old_product_commission.nil?
product_commission.commissioner_id = old_product_commission.commissioner_id
end
product_commission.qty = newSaleItem.qty
product_commission.sale_id = newSaleItem.sale_id
product_commission.sale_item_id = newSaleItem.sale_item_id
product_commission.save
end
def self.edit_product_commission(saleItemObj)