fix conflit
This commit is contained in:
110
.idea/workspace.xml
generated
110
.idea/workspace.xml
generated
@@ -2,23 +2,32 @@
|
|||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="89ca96af-a0e4-4fe4-b9a3-9969f22d7079" name="Default" comment="">
|
<list default="true" id="89ca96af-a0e4-4fe4-b9a3-9969f22d7079" name="Default" comment="">
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/sxrestaurant.iml" afterPath="$PROJECT_DIR$/.idea/sxrestaurant.iml" />
|
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/Gemfile" afterPath="$PROJECT_DIR$/Gemfile" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/README.md" afterPath="$PROJECT_DIR$/README.md" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/Gemfile.lock" afterPath="$PROJECT_DIR$/Gemfile.lock" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/controllers/api/restaurant/menu_controller.rb" afterPath="$PROJECT_DIR$/app/controllers/api/restaurant/menu_controller.rb" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/assets/javascripts/application.js" afterPath="$PROJECT_DIR$/app/assets/javascripts/application.js" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/controllers/crm/customers_controller.rb" afterPath="$PROJECT_DIR$/app/controllers/crm/customers_controller.rb" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/assets/stylesheets/application.scss" afterPath="$PROJECT_DIR$/app/assets/stylesheets/application.scss" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/controllers/origami/customers_controller.rb" afterPath="$PROJECT_DIR$/app/controllers/origami/customers_controller.rb" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/controllers/settings/commissioners_controller.rb" afterPath="$PROJECT_DIR$/app/controllers/settings/commissioners_controller.rb" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/controllers/origami/in_juties_controller.rb" afterPath="$PROJECT_DIR$/app/controllers/origami/in_juties_controller.rb" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/models/commission.rb" afterPath="$PROJECT_DIR$/app/models/commission.rb" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/controllers/settings/simple_menu_items_controller.rb" afterPath="$PROJECT_DIR$/app/controllers/settings/simple_menu_items_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/models/customer.rb" afterPath="$PROJECT_DIR$/app/models/customer.rb" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/views/settings/commissioners/_form.html.erb" afterPath="$PROJECT_DIR$/app/views/settings/commissioners/_form.html.erb" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/models/menu_item_attribute.rb" afterPath="$PROJECT_DIR$/app/models/menu_item_attribute.rb" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/views/settings/commissioners/index.html.erb" afterPath="$PROJECT_DIR$/app/views/settings/commissioners/index.html.erb" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/models/order.rb" afterPath="$PROJECT_DIR$/app/models/order.rb" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/views/settings/commissioners/show.html.erb" afterPath="$PROJECT_DIR$/app/views/settings/commissioners/show.html.erb" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/models/order_item.rb" afterPath="$PROJECT_DIR$/app/models/order_item.rb" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/views/settings/commissions/index.html.erb" afterPath="$PROJECT_DIR$/app/views/settings/commissions/index.html.erb" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/models/promotion.rb" afterPath="$PROJECT_DIR$/app/models/promotion.rb" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/models/sale_payment.rb" afterPath="$PROJECT_DIR$/app/models/sale_payment.rb" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/views/api/restaurant/menu/_menu.json.jbuilder" afterPath="$PROJECT_DIR$/app/views/api/restaurant/menu/_menu.json.jbuilder" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/views/api/restaurant/menu/_menu_item.json.jbuilder" afterPath="$PROJECT_DIR$/app/views/api/restaurant/menu/_menu_item.json.jbuilder" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/views/api/restaurant/menu/index.json.jbuilder" afterPath="$PROJECT_DIR$/app/views/api/restaurant/menu/index.json.jbuilder" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/views/crm/customers/_new_form.html.erb" afterPath="$PROJECT_DIR$/app/views/crm/customers/_new_form.html.erb" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/views/crm/customers/index.html.erb" afterPath="$PROJECT_DIR$/app/views/crm/customers/index.html.erb" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/views/origami/addorders/show.html.erb" afterPath="$PROJECT_DIR$/app/views/origami/addorders/show.html.erb" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/views/origami/customers/index.html.erb" afterPath="$PROJECT_DIR$/app/views/origami/customers/index.html.erb" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/views/origami/in_juties/_assign_in_juty.html.erb" afterPath="$PROJECT_DIR$/app/views/origami/in_juties/_assign_in_juty.html.erb" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/views/origami/in_juties/_edit_in_juty.html.erb" afterPath="$PROJECT_DIR$/app/views/origami/in_juties/_edit_in_juty.html.erb" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/views/origami/in_juties/index_in_juty.html.erb" afterPath="$PROJECT_DIR$/app/views/origami/in_juties/index_in_juty.html.erb" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/config/routes.rb" afterPath="$PROJECT_DIR$/config/routes.rb" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/config/routes.rb" afterPath="$PROJECT_DIR$/config/routes.rb" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/db/migrate/20170825034141_create_product_commissions.rb" afterPath="$PROJECT_DIR$/db/migrate/20170825034141_create_product_commissions.rb" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/db/migrate/20170403140820_create_order_items.rb" afterPath="$PROJECT_DIR$/db/migrate/20170403140820_create_order_items.rb" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/db/migrate/20170825090115_create_commissioners.rb" afterPath="$PROJECT_DIR$/db/migrate/20170825090115_create_commissioners.rb" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/db/seeds.rb" afterPath="$PROJECT_DIR$/db/seeds.rb" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/db/migrate/20170825093252_create_commissions.rb" afterPath="$PROJECT_DIR$/db/migrate/20170825093252_create_commissions.rb" />
|
|
||||||
</list>
|
</list>
|
||||||
<ignored path="$PROJECT_DIR$/.bundle/" />
|
<ignored path="$PROJECT_DIR$/.bundle/" />
|
||||||
<ignored path="$PROJECT_DIR$/components/" />
|
<ignored path="$PROJECT_DIR$/components/" />
|
||||||
@@ -80,7 +89,7 @@
|
|||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="show.html.erb" pinned="false" current-in-tab="true">
|
<file leaf-file-name="show.html.erb" pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/app/views/settings/commissioners/show.html.erb">
|
<entry file="file://$PROJECT_DIR$/app/views/settings/commissioners/show.html.erb">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="65">
|
<state relative-caret-position="65">
|
||||||
@@ -94,7 +103,7 @@
|
|||||||
<entry file="file://$PROJECT_DIR$/Gemfile">
|
<entry file="file://$PROJECT_DIR$/Gemfile">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="152">
|
<state relative-caret-position="152">
|
||||||
<caret line="104" column="34" lean-forward="true" selection-start-line="104" selection-start-column="34" selection-end-line="104" selection-end-column="34" />
|
<caret line="104" column="34" lean-forward="false" selection-start-line="104" selection-start-column="34" selection-end-line="104" selection-end-column="34" />
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
@@ -104,7 +113,7 @@
|
|||||||
<entry file="file://$PROJECT_DIR$/app/controllers/settings/commissioners_controller.rb">
|
<entry file="file://$PROJECT_DIR$/app/controllers/settings/commissioners_controller.rb">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="151">
|
<state relative-caret-position="151">
|
||||||
<caret line="75" column="27" lean-forward="true" selection-start-line="75" selection-start-column="27" selection-end-line="75" selection-end-column="27" />
|
<caret line="75" column="27" lean-forward="false" selection-start-line="75" selection-start-column="27" selection-end-line="75" selection-end-column="27" />
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
@@ -120,11 +129,21 @@
|
|||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="routes.rb" pinned="false" current-in-tab="false">
|
<file leaf-file-name="routes.rb" pinned="false" current-in-tab="true">
|
||||||
<entry file="file://$PROJECT_DIR$/config/routes.rb">
|
<entry file="file://$PROJECT_DIR$/config/routes.rb">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="5184">
|
<state relative-caret-position="381">
|
||||||
<caret line="288" column="0" lean-forward="false" selection-start-line="288" selection-start-column="0" selection-end-line="288" selection-end-column="0" />
|
<caret line="96" column="32" lean-forward="true" selection-start-line="96" selection-start-column="32" selection-end-line="96" selection-end-column="32" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="index_in_juty.html.erb" pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/app/views/origami/in_juties/index_in_juty.html.erb">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="130">
|
||||||
|
<caret line="50" column="46" lean-forward="false" selection-start-line="50" selection-start-column="32" selection-end-line="50" selection-end-column="46" />
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
@@ -209,10 +228,10 @@
|
|||||||
<option value="$PROJECT_DIR$/app/assets/javascripts/application.js" />
|
<option value="$PROJECT_DIR$/app/assets/javascripts/application.js" />
|
||||||
<option value="$PROJECT_DIR$/app/assets/stylesheets/application.scss" />
|
<option value="$PROJECT_DIR$/app/assets/stylesheets/application.scss" />
|
||||||
<option value="$PROJECT_DIR$/app/models/product_commission.rb" />
|
<option value="$PROJECT_DIR$/app/models/product_commission.rb" />
|
||||||
<option value="$PROJECT_DIR$/config/routes.rb" />
|
|
||||||
<option value="$PROJECT_DIR$/Gemfile" />
|
<option value="$PROJECT_DIR$/Gemfile" />
|
||||||
<option value="$PROJECT_DIR$/app/controllers/settings/commissioners_controller.rb" />
|
<option value="$PROJECT_DIR$/app/controllers/settings/commissioners_controller.rb" />
|
||||||
<option value="$PROJECT_DIR$/app/views/settings/commissioners/show.html.erb" />
|
<option value="$PROJECT_DIR$/app/views/settings/commissioners/show.html.erb" />
|
||||||
|
<option value="$PROJECT_DIR$/config/routes.rb" />
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
@@ -410,6 +429,14 @@
|
|||||||
<item name="origami" type="462c0819:PsiDirectoryNode" />
|
<item name="origami" type="462c0819:PsiDirectoryNode" />
|
||||||
<item name="home" type="462c0819:PsiDirectoryNode" />
|
<item name="home" type="462c0819:PsiDirectoryNode" />
|
||||||
</path>
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="sxrestaurant" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="sxrestaurant" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="app" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="views" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="origami" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="in_juties" type="462c0819:PsiDirectoryNode" />
|
||||||
|
</path>
|
||||||
<path>
|
<path>
|
||||||
<item name="sxrestaurant" type="b2602c69:ProjectViewProjectNode" />
|
<item name="sxrestaurant" type="b2602c69:ProjectViewProjectNode" />
|
||||||
<item name="sxrestaurant" type="462c0819:PsiDirectoryNode" />
|
<item name="sxrestaurant" type="462c0819:PsiDirectoryNode" />
|
||||||
@@ -895,12 +922,12 @@
|
|||||||
<workItem from="1503457057830" duration="7166000" />
|
<workItem from="1503457057830" duration="7166000" />
|
||||||
<workItem from="1503472116907" duration="50209000" />
|
<workItem from="1503472116907" duration="50209000" />
|
||||||
<workItem from="1503843212665" duration="21267000" />
|
<workItem from="1503843212665" duration="21267000" />
|
||||||
<workItem from="1503909487511" duration="6539000" />
|
<workItem from="1503909487511" duration="6884000" />
|
||||||
</task>
|
</task>
|
||||||
<servers />
|
<servers />
|
||||||
</component>
|
</component>
|
||||||
<component name="TimeTrackingManager">
|
<component name="TimeTrackingManager">
|
||||||
<option name="totallyTimeSpent" value="159157000" />
|
<option name="totallyTimeSpent" value="159502000" />
|
||||||
</component>
|
</component>
|
||||||
<component name="TodoView">
|
<component name="TodoView">
|
||||||
<todo-panel id="selected-file">
|
<todo-panel id="selected-file">
|
||||||
@@ -947,13 +974,6 @@
|
|||||||
<watches-manager />
|
<watches-manager />
|
||||||
</component>
|
</component>
|
||||||
<component name="editorHistoryManager">
|
<component name="editorHistoryManager">
|
||||||
<entry file="file://$PROJECT_DIR$/app/views/settings/commissions/edit.html.erb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="72">
|
|
||||||
<caret line="4" column="48" lean-forward="false" selection-start-line="4" selection-start-column="48" selection-end-line="4" selection-end-column="48" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/views/settings/commissions/new.html.erb">
|
<entry file="file://$PROJECT_DIR$/app/views/settings/commissions/new.html.erb">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="72">
|
<state relative-caret-position="72">
|
||||||
@@ -1278,14 +1298,6 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/config/routes.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="5184">
|
|
||||||
<caret line="288" column="0" lean-forward="false" selection-start-line="288" selection-start-column="0" selection-end-line="288" selection-end-column="0" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$USER_HOME$/.rbenv/shims/bundle">
|
<entry file="file://$USER_HOME$/.rbenv/shims/bundle">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="0">
|
<state relative-caret-position="0">
|
||||||
@@ -1305,7 +1317,7 @@
|
|||||||
<entry file="file://$PROJECT_DIR$/Gemfile">
|
<entry file="file://$PROJECT_DIR$/Gemfile">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="152">
|
<state relative-caret-position="152">
|
||||||
<caret line="104" column="34" lean-forward="true" selection-start-line="104" selection-start-column="34" selection-end-line="104" selection-end-column="34" />
|
<caret line="104" column="34" lean-forward="false" selection-start-line="104" selection-start-column="34" selection-end-line="104" selection-end-column="34" />
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
@@ -1313,7 +1325,7 @@
|
|||||||
<entry file="file://$PROJECT_DIR$/app/controllers/settings/commissioners_controller.rb">
|
<entry file="file://$PROJECT_DIR$/app/controllers/settings/commissioners_controller.rb">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="151">
|
<state relative-caret-position="151">
|
||||||
<caret line="75" column="27" lean-forward="true" selection-start-line="75" selection-start-column="27" selection-end-line="75" selection-end-column="27" />
|
<caret line="75" column="27" lean-forward="false" selection-start-line="75" selection-start-column="27" selection-end-line="75" selection-end-column="27" />
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
@@ -1334,5 +1346,21 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/app/views/origami/in_juties/index_in_juty.html.erb">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="130">
|
||||||
|
<caret line="50" column="46" lean-forward="false" selection-start-line="50" selection-start-column="32" selection-end-line="50" selection-end-column="46" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/config/routes.rb">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="381">
|
||||||
|
<caret line="96" column="32" lean-forward="true" selection-start-line="96" selection-start-column="32" selection-end-line="96" selection-end-column="32" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
62
README.md
62
README.md
@@ -1,14 +1,19 @@
|
|||||||
# README
|
# README
|
||||||
|
|
||||||
SXRestuarant is a new Dedicate project for SmartSales Restaurant. It is improvement from v1.2 with upgrade to latest Bootstrap and Rails 5. The API is better define and route are refactor.
|
SXRestuarant is a new Dedicate project for SmartSales Restaurant. It is improvement from v1.2 with upgrade to latest Bootstrap and Rails 5.2. The API is better define and route are refactor.
|
||||||
|
|
||||||
Things you may want to cover:
|
Things you may want to cover:
|
||||||
|
|
||||||
* Ruby version
|
* Ruby version
|
||||||
ruby 2.3.2p217
|
ruby 2.4.1p111
|
||||||
|
|
||||||
* ToDo list
|
* ToDo list
|
||||||
|
|
||||||
|
1. Cloud Sync
|
||||||
|
2. Action Cable
|
||||||
|
3. Shop Setup
|
||||||
|
4. Payment Integation
|
||||||
|
|
||||||
* System dependencies
|
* System dependencies
|
||||||
|
|
||||||
* Configuration
|
* Configuration
|
||||||
@@ -23,4 +28,55 @@ ruby 2.3.2p217
|
|||||||
|
|
||||||
* Deployment instructions
|
* Deployment instructions
|
||||||
|
|
||||||
* ...
|
|
||||||
|
* Features
|
||||||
|
|
||||||
|
1. OQS
|
||||||
|
|
||||||
|
1. Filter
|
||||||
|
2. Order Item to each Stations
|
||||||
|
3. Edit Order Item
|
||||||
|
|
||||||
|
2. Origami(Sale)
|
||||||
|
|
||||||
|
1. Sale
|
||||||
|
2. Add Customer for membership
|
||||||
|
3. Discount and Member Discount for Sale
|
||||||
|
4. Assign Commissioner
|
||||||
|
5. Add other charges to Sale
|
||||||
|
|
||||||
|
3. CRM
|
||||||
|
|
||||||
|
1. Customer Management
|
||||||
|
|
||||||
|
2. Queue Management
|
||||||
|
|
||||||
|
4. Backend
|
||||||
|
|
||||||
|
1. Dining Setup
|
||||||
|
|
||||||
|
2. Queue Station Setup
|
||||||
|
|
||||||
|
3. Menu Setup
|
||||||
|
|
||||||
|
4. Cashier Terminal Setup
|
||||||
|
|
||||||
|
5. Tax Profile Setup
|
||||||
|
|
||||||
|
6. Printer Setup
|
||||||
|
|
||||||
|
7. Payment Integration
|
||||||
|
|
||||||
|
8. Employee Management
|
||||||
|
|
||||||
|
9. Promotion Setup
|
||||||
|
|
||||||
|
10. Commissioner Setup
|
||||||
|
|
||||||
|
11. Membership Integration
|
||||||
|
|
||||||
|
|
||||||
|
5. Inventory
|
||||||
|
|
||||||
|
|
||||||
|
6. Report
|
||||||
|
|||||||
@@ -4,7 +4,24 @@ class Api::Restaurant::MenuController < Api::ApiController
|
|||||||
# Pull the default menu details and also other available (active) menus
|
# Pull the default menu details and also other available (active) menus
|
||||||
# Input Params - order_id
|
# Input Params - order_id
|
||||||
def index
|
def index
|
||||||
@menus = Menu.all
|
param_checksum = params[:checksum]
|
||||||
|
# checksum = File.readlines("public/checksums/menu_json.txt").pop.chomp
|
||||||
|
|
||||||
|
all_menu = Menu.all
|
||||||
|
|
||||||
|
# to hash
|
||||||
|
menu_array = []
|
||||||
|
all_menu.each do |m|
|
||||||
|
menu_array.push(m.to_json(:include => {:menu_categories => { :include => { :menu_items => { :include => [:menu_item_sets, :menu_item_instances => {:include => :menu_instance_item_sets}]} } }}))
|
||||||
|
end
|
||||||
|
|
||||||
|
#export Checksum file generate by md5
|
||||||
|
menu_checksum = Digest::MD5.hexdigest(menu_array.to_json)
|
||||||
|
|
||||||
|
if menu_checksum != param_checksum
|
||||||
|
response.headers['CHECKSUM'] = menu_checksum
|
||||||
|
@menus = all_menu
|
||||||
|
end
|
||||||
# @current_menu = Menu.current_menu
|
# @current_menu = Menu.current_menu
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -6,13 +6,33 @@ class Crm::CustomersController < BaseCrmController
|
|||||||
# GET /crm/customers.json
|
# GET /crm/customers.json
|
||||||
def index
|
def index
|
||||||
filter = params[:filter]
|
filter = params[:filter]
|
||||||
|
type = params[:type]
|
||||||
if filter.nil?
|
if filter.nil?
|
||||||
@crm_customers = Customer.all
|
@crm_customers = Customer.all
|
||||||
else
|
else
|
||||||
@crm_customers = Customer.search(filter)
|
@crm_customers = Customer.search(filter)
|
||||||
|
# search account no from paypar
|
||||||
|
if !@crm_customers.present? && type == "card"
|
||||||
|
response = Customer.search_paypar_account_no(filter)
|
||||||
|
if response["status"] == true
|
||||||
|
@crm_customers = Customer.new
|
||||||
|
@crm_customers.name = response["customer_data"]["name"]
|
||||||
|
@crm_customers.contact_no = response["customer_data"]["phone"]
|
||||||
|
@crm_customers.email = response["customer_data"]["email"]
|
||||||
|
@crm_customers.date_of_birth = response["customer_data"]["DOB"]
|
||||||
|
@crm_customers.nrc_no = response["customer_data"]["NRC"]
|
||||||
|
@crm_customers.address = response["customer_data"]["address"]
|
||||||
|
@crm_customers.card_no = response["customer_data"]["customer_card_no"]
|
||||||
|
@crm_customers.paypar_account_no = filter
|
||||||
|
@crm_customers.membership_id = response["customer_data"]["id"]
|
||||||
|
@crm_customers.membership_type = response["customer_data"]["member_group_id"]
|
||||||
|
@crm_customers.customer_type = "Dinein"
|
||||||
|
@crm_customers.tax_profiles = ["1", "2"]
|
||||||
|
@crm_customers.save
|
||||||
|
@crm_customers = Customer.search(filter)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
#@crm_customers = Customer.all
|
|
||||||
@crm_customers = Kaminari.paginate_array(@crm_customers).page(params[:page]).per(50)
|
@crm_customers = Kaminari.paginate_array(@crm_customers).page(params[:page]).per(50)
|
||||||
@crm_customer = Customer.new
|
@crm_customer = Customer.new
|
||||||
@count_customer = Customer.count_customer
|
@count_customer = Customer.count_customer
|
||||||
|
|||||||
@@ -9,13 +9,40 @@ class Origami::CustomersController < BaseOrigamiController
|
|||||||
end
|
end
|
||||||
|
|
||||||
def get_customer
|
def get_customer
|
||||||
|
|
||||||
filter = params[:filter]
|
filter = params[:filter]
|
||||||
|
type = params[:type]
|
||||||
|
|
||||||
if filter.nil?
|
if filter.nil?
|
||||||
@crm_customers = Customer.order("customer_id").page(params[:page])
|
@crm_customers = Customer.order("customer_id").page(params[:page])
|
||||||
#@products = Product.order("name").page(params[:page]).per(5)
|
#@products = Product.order("name").page(params[:page]).per(5)
|
||||||
else
|
else
|
||||||
@crm_customers = Customer.search(filter)
|
@crm_customers = Customer.search(filter)
|
||||||
|
# search account no from paypar
|
||||||
|
if !@crm_customers.present? && type == "card"
|
||||||
|
response = Customer.search_paypar_account_no(filter)
|
||||||
|
if response["status"] == true
|
||||||
|
@crm_customers = Customer.new
|
||||||
|
@crm_customers.name = response["customer_data"]["name"]
|
||||||
|
@crm_customers.contact_no = response["customer_data"]["phone"]
|
||||||
|
@crm_customers.email = response["customer_data"]["email"]
|
||||||
|
@crm_customers.date_of_birth = response["customer_data"]["DOB"]
|
||||||
|
@crm_customers.nrc_no = response["customer_data"]["NRC"]
|
||||||
|
@crm_customers.address = response["customer_data"]["address"]
|
||||||
|
@crm_customers.card_no = response["customer_data"]["customer_card_no"]
|
||||||
|
@crm_customers.paypar_account_no = filter
|
||||||
|
@crm_customers.membership_id = response["customer_data"]["id"]
|
||||||
|
@crm_customers.membership_type = response["customer_data"]["member_group_id"]
|
||||||
|
@crm_customers.customer_type = "Dinein"
|
||||||
|
@crm_customers.tax_profiles = ["1", "2"]
|
||||||
|
@crm_customers.save
|
||||||
|
@crm_customers = Customer.search(filter)
|
||||||
|
else
|
||||||
|
@crm_customers = [{"customer_id": response["status"],"message": response["message"] }]
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
render :json => @crm_customers.to_json
|
render :json => @crm_customers.to_json
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -8,9 +8,10 @@ class Origami::InJutiesController < BaseOrigamiController
|
|||||||
end
|
end
|
||||||
|
|
||||||
def index_in_juty
|
def index_in_juty
|
||||||
@juties_in= InJuty.where("dinning_id=?",params[:table_id])
|
@juty_in= InJuty.where("dinning_id=?",params[:table_id])
|
||||||
@table = DiningFacility.find(params[:table_id])
|
@table = DiningFacility.find(params[:table_id])
|
||||||
@in_juty = InJuty.new
|
@in_juty = InJuty.new
|
||||||
|
@juties_in = Kaminari.paginate_array(@juty_in).page(params[:page]).per(10)
|
||||||
|
|
||||||
end
|
end
|
||||||
# GET /in_juties/1
|
# GET /in_juties/1
|
||||||
@@ -31,6 +32,9 @@ class Origami::InJutiesController < BaseOrigamiController
|
|||||||
def edit_in_juty
|
def edit_in_juty
|
||||||
@in_juty = InJuty.find(params[:id])
|
@in_juty = InJuty.find(params[:id])
|
||||||
@table = DiningFacility.find(params[:table_id])
|
@table = DiningFacility.find(params[:table_id])
|
||||||
|
@commissioner = @in_juty.commissioner
|
||||||
|
|
||||||
|
render json: {in_juty: @in_juty, commissioner: @commissioner}
|
||||||
end
|
end
|
||||||
|
|
||||||
def assign_in_juty
|
def assign_in_juty
|
||||||
@@ -90,11 +94,18 @@ class Origami::InJutiesController < BaseOrigamiController
|
|||||||
|
|
||||||
|
|
||||||
def update_for_in_juty
|
def update_for_in_juty
|
||||||
@in_juty.dinning_id = params[:dining_id]
|
@in_juty.commissioner_ids = in_juty_params[:commissioner_ids]
|
||||||
@in_juty.commissioner_ids = params[:commissioner_ids]
|
@in_juty.in_time = in_juty_params[:in_time]
|
||||||
@in_juty.in_time = params[:in_time]
|
@in_juty.out_time = in_juty_params[:out_time]
|
||||||
@in_juty.out_time = params[:out_time]
|
respond_to do |format|
|
||||||
@in_juty.save
|
if @in_juty.save
|
||||||
|
format.html { redirect_to origami_index_in_juty_path(in_juty_params[:dinning_id]), notice: 'In juty was successfully updated.' }
|
||||||
|
format.json { render :show, status: :ok, location: @in_juty }
|
||||||
|
else
|
||||||
|
format.html { render :edit }
|
||||||
|
format.json { render json: @in_juty.errors, status: :unprocessable_entity }
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# DELETE /in_juties/1
|
# DELETE /in_juties/1
|
||||||
@@ -125,6 +136,6 @@ class Origami::InJutiesController < BaseOrigamiController
|
|||||||
|
|
||||||
# Never trust parameters from the scary internet, only allow the white list through.
|
# Never trust parameters from the scary internet, only allow the white list through.
|
||||||
def in_juty_params
|
def in_juty_params
|
||||||
params.require(:in_juty).permit(:dinning_id,:commissioner_ids,:in_time,:out_time)
|
params.require(:in_juty).permit(:id,:dinning_id,:commissioner_ids,:in_time,:out_time)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ class Settings::SimpleMenuItemsController < ApplicationController
|
|||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
if @settings_menu_item.save
|
if @settings_menu_item.save
|
||||||
menu_item = MenuItem.find(@settings_menu_item.id)
|
menu_item = MenuItem.find(@settings_menu_item.id)
|
||||||
menu_item.update_attributes(item_options: params[:simple_menu_item][:item_options])
|
menu_item.update_attributes(item_attributes: params[:simple_menu_item][:item_attributes], item_options: params[:simple_menu_item][:item_options])
|
||||||
|
|
||||||
format.html { redirect_to settings_menu_category_simple_menu_items_path, notice: 'Menu item was successfully created.' }
|
format.html { redirect_to settings_menu_category_simple_menu_items_path, notice: 'Menu item was successfully created.' }
|
||||||
format.json { render :show, status: :created, location: @settings_menu_item }
|
format.json { render :show, status: :created, location: @settings_menu_item }
|
||||||
|
|||||||
@@ -94,43 +94,51 @@ class Customer < ApplicationRecord
|
|||||||
@customers = Customer.where("membership_type IS NOT NULL AND membership_id IS NULL")
|
@customers = Customer.where("membership_type IS NOT NULL AND membership_id IS NULL")
|
||||||
|
|
||||||
@customers.each do |customer|
|
@customers.each do |customer|
|
||||||
begin
|
member_params = { name: customer.name,phone: customer.contact_no,
|
||||||
response = HTTParty.post(url,
|
email: customer.email,dob: customer.date_of_birth,
|
||||||
:body =>
|
address: customer.address,nrc:customer.nrc_no,
|
||||||
{ name: customer.name,phone: customer.contact_no,
|
card_no:customer.card_no,member_group_id: customer.membership_type,
|
||||||
email: customer.email,dob: customer.date_of_birth,
|
merchant_uid:merchant_uid,auth_token:auth_token}.to_json
|
||||||
address: customer.address,nrc:customer.nrc_no,
|
|
||||||
card_no:customer.card_no,member_group_id: customer.membership_type,
|
|
||||||
merchant_uid:merchant_uid,auth_token:auth_token
|
|
||||||
}.to_json,
|
|
||||||
:headers => {
|
|
||||||
'Content-Type' => 'application/json',
|
|
||||||
'Accept' => 'application/json'
|
|
||||||
})
|
|
||||||
rescue Net::OpenTimeout
|
|
||||||
response = { status: false, message: "Server Time out" }
|
|
||||||
|
|
||||||
rescue OpenURI::HTTPError
|
# Check for paypar account exists
|
||||||
response = { status: false, message: "Can't connect server"}
|
# if paypar_account_no != nil || paypar_account_no != ''
|
||||||
|
if paypar_account_no.present?
|
||||||
|
member_params = { name: customer.name,phone: customer.contact_no,
|
||||||
|
email: customer.email,dob: customer.date_of_birth,
|
||||||
|
address: customer.address,nrc:customer.nrc_no,
|
||||||
|
paypar_account_no: customer.paypar_account_no,
|
||||||
|
card_no:customer.card_no,member_group_id: customer.membership_type,
|
||||||
|
merchant_uid:merchant_uid,auth_token:auth_token}.to_json
|
||||||
|
end
|
||||||
|
|
||||||
rescue SocketError
|
begin
|
||||||
response = { status: false, message: "Can't connect server"}
|
response = HTTParty.post(url,
|
||||||
end
|
:body => member_params,
|
||||||
|
:headers => {
|
||||||
|
'Content-Type' => 'application/json',
|
||||||
|
'Accept' => 'application/json'
|
||||||
|
})
|
||||||
|
rescue Net::OpenTimeout
|
||||||
|
response = { status: false, message: "Server Time out" }
|
||||||
|
|
||||||
if response["status"] == true
|
rescue OpenURI::HTTPError
|
||||||
status = customer.update_attributes(membership_id: response["customer_datas"]["id"])
|
response = { status: false, message: "Can't connect server"}
|
||||||
end
|
|
||||||
|
|
||||||
|
rescue SocketError
|
||||||
|
response = { status: false, message: "Can't connect server"}
|
||||||
|
end
|
||||||
|
|
||||||
|
if response["status"] == true
|
||||||
|
status = customer.update_attributes(membership_id: response["customer_datas"]["id"])
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.update_rebate
|
def self.update_rebate
|
||||||
|
|
||||||
sales = Sale.where("rebate_status = 'false'")
|
sales = Sale.where("rebate_status = 'false'")
|
||||||
sales.each do |sale|
|
sales.each do |sale|
|
||||||
if sale.customer.membership_id
|
if sale.customer.membership_id
|
||||||
response = self.rebat(Sale.find(sale.sale_id))
|
response = self.rebat(Sale.find(sale.sale_id))
|
||||||
puts response.to_json
|
|
||||||
if response["status"] == true
|
if response["status"] == true
|
||||||
status = sale.update_attributes(rebate_status: "true")
|
status = sale.update_attributes(rebate_status: "true")
|
||||||
end
|
end
|
||||||
@@ -189,11 +197,43 @@ class Customer < ApplicationRecord
|
|||||||
|
|
||||||
end
|
end
|
||||||
return response
|
return response
|
||||||
puts response.to_json
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.search_paypar_account_no(account_no)
|
||||||
|
membership = MembershipSetting.find_by_membership_type("paypar_url")
|
||||||
|
memberaction = MembershipAction.find_by_membership_type("search_paypar_account_no")
|
||||||
|
merchant_uid = memberaction.merchant_account_id.to_s
|
||||||
|
auth_token = memberaction.auth_token.to_s
|
||||||
|
url = membership.gateway_url.to_s + memberaction.gateway_url.to_s
|
||||||
|
begin
|
||||||
|
response = HTTParty.get(url,
|
||||||
|
:body => { paypar_account_no:account_no,
|
||||||
|
merchant_uid:merchant_uid,
|
||||||
|
auth_token:auth_token
|
||||||
|
}.to_json,
|
||||||
|
:headers => {
|
||||||
|
'Content-Type' => 'application/json',
|
||||||
|
'Accept' => 'application/json'
|
||||||
|
},
|
||||||
|
:timeout => 10
|
||||||
|
)
|
||||||
|
rescue HTTParty::Error
|
||||||
|
response = {status: false, message: "Server Error"}
|
||||||
|
|
||||||
|
rescue Net::OpenTimeout
|
||||||
|
response = { status: false , message: "Server Time out"}
|
||||||
|
|
||||||
|
rescue OpenURI::HTTPError
|
||||||
|
response = { status: false, message: "Can't connect server"}
|
||||||
|
|
||||||
|
rescue SocketError
|
||||||
|
response = { status: false, message: "Can't connect server"}
|
||||||
|
end
|
||||||
|
return response
|
||||||
|
end
|
||||||
|
|
||||||
def self.search(search)
|
def self.search(search)
|
||||||
if search
|
if search
|
||||||
# find(:all, :conditions => ['name LIKE ? OR contact_no LIKE ?', "%#{search}%", "%#{search}%"])
|
# find(:all, :conditions => ['name LIKE ? OR contact_no LIKE ?', "%#{search}%", "%#{search}%"])
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
class MenuItemAttribute < ApplicationRecord
|
class MenuItemAttribute < ApplicationRecord
|
||||||
validates_presence_of :attribute_type, :name, :value
|
validates_presence_of :attribute_type, :name, :value
|
||||||
def self.collection
|
def self.collection
|
||||||
MenuItemAttribute.select("name, value").map { |e| [e.name, e.value] }
|
MenuItemAttribute.select("name").map { |e| [e.name, e.name] }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ class Order < ApplicationRecord
|
|||||||
# self.employee_name)
|
# self.employee_name)
|
||||||
# end
|
# end
|
||||||
|
|
||||||
OrderItem.processs_item(menu_item[:item_code], menu_item[:name], menu_item[:alt_name], menu_item[:account_id],
|
OrderItem.processs_item(menu_item[:item_code], item[:item_instance_code], menu_item[:name], menu_item[:alt_name], menu_item[:account_id],
|
||||||
item[:quantity],menu_item[:price], item[:options], set_order_items, self.id,
|
item[:quantity],menu_item[:price], item[:options], set_order_items, self.id,
|
||||||
self.employee_name)
|
self.employee_name)
|
||||||
|
|
||||||
|
|||||||
@@ -20,11 +20,12 @@ class OrderItem < ApplicationRecord
|
|||||||
# option_values : [],
|
# option_values : [],
|
||||||
# sub_order_items : [],
|
# sub_order_items : [],
|
||||||
# }
|
# }
|
||||||
def self.processs_item (item_code, menu_name, alt_name, account_id, qty,price, options, set_menu_items, order_id, item_order_by)
|
def self.processs_item (item_code, instance_code, menu_name, alt_name, account_id, qty,price, options, set_menu_items, order_id, item_order_by)
|
||||||
|
|
||||||
orderitem = OrderItem.create do |oitem|
|
orderitem = OrderItem.create do |oitem|
|
||||||
oitem.order_id = order_id
|
oitem.order_id = order_id
|
||||||
oitem.item_code = item_code
|
oitem.item_code = item_code
|
||||||
|
oitem.item_instance_code = instance_code
|
||||||
oitem.item_name = menu_name
|
oitem.item_name = menu_name
|
||||||
oitem.alt_name = alt_name
|
oitem.alt_name = alt_name
|
||||||
oitem.account_id = account_id
|
oitem.account_id = account_id
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ class Promotion < ApplicationRecord
|
|||||||
give_promotion_nett_price(same,promo_product,promo.min_qty, orderitem, sale_id)
|
give_promotion_nett_price(same,promo_product,promo.min_qty, orderitem, sale_id)
|
||||||
|
|
||||||
elsif promo.promo_type == Promotion::PROMO_TYPE4
|
elsif promo.promo_type == Promotion::PROMO_TYPE4
|
||||||
give_promotion_nett_price(same,promo_product,promo.min_qty, orderitem, sale_id)
|
give_promotion_discount(same,promo_product,promo.min_qty, orderitem, sale_id)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -138,8 +138,8 @@ class Promotion < ApplicationRecord
|
|||||||
sale_item.remark = type
|
sale_item.remark = type
|
||||||
sale_item.qty = foc_qty * (-1)
|
sale_item.qty = foc_qty * (-1)
|
||||||
|
|
||||||
sale_item.unit_price = item_price * (-1)
|
sale_item.unit_price = item_price # * (-1)
|
||||||
sale_item.taxable_price = item_price * (-1)
|
sale_item.taxable_price = item_price # * (-1)
|
||||||
sale_item.price = foc_qty * item_price * (-1)
|
sale_item.price = foc_qty * item_price * (-1)
|
||||||
|
|
||||||
sale_item.is_taxable = false
|
sale_item.is_taxable = false
|
||||||
@@ -170,8 +170,8 @@ class Promotion < ApplicationRecord
|
|||||||
|
|
||||||
if same
|
if same
|
||||||
foc_qty = orderitem[1].to_i / foc_min_qty
|
foc_qty = orderitem[1].to_i / foc_min_qty
|
||||||
item = OrderItem.find_by_item_code(orderitem[0])
|
item = OrderItem.find_by_item_code(orderitem[0]) # need to specify with menu item instance
|
||||||
price = item.price - promo_product.net_price
|
price = item.price.to_i - promo_product.net_price.to_i
|
||||||
update_existing_item(foc_qty, item, sale_id, "promotion nett price", price)
|
update_existing_item(foc_qty, item, sale_id, "promotion nett price", price)
|
||||||
else
|
else
|
||||||
foc_qty = find_second_item_qty(sale_id, promo_product.item_code)
|
foc_qty = find_second_item_qty(sale_id, promo_product.item_code)
|
||||||
@@ -187,13 +187,15 @@ class Promotion < ApplicationRecord
|
|||||||
if same
|
if same
|
||||||
foc_qty = orderitem[1].to_i / foc_min_qty
|
foc_qty = orderitem[1].to_i / foc_min_qty
|
||||||
item = OrderItem.find_by_item_code(orderitem[0])
|
item = OrderItem.find_by_item_code(orderitem[0])
|
||||||
total = orderitem[1].to_i * item.price
|
# total = orderitem[1].to_i * item.price
|
||||||
|
total = item.price
|
||||||
price = calculate_discount(total, promo_product.percentage)
|
price = calculate_discount(total, promo_product.percentage)
|
||||||
update_existing_item(foc_qty, item, sale_id, "promotion discount", price)
|
update_existing_item(foc_qty, item, sale_id, "promotion discount", price)
|
||||||
else
|
else
|
||||||
foc_qty = find_second_item_qty(sale_id, promo_product.item_code)
|
foc_qty = find_second_item_qty(sale_id, promo_product.item_code)
|
||||||
item = OrderItem.find_by_item_code(promo_product.item_code)
|
item = OrderItem.find_by_item_code(promo_product.item_code)
|
||||||
total = item.price * foc_qty
|
# total = item.price * foc_qty
|
||||||
|
total = item.price
|
||||||
price = calculate_discount(total, promo_product.percentage)
|
price = calculate_discount(total, promo_product.percentage)
|
||||||
update_existing_item(foc_qty, item, sale_id, "promotion discount", price)
|
update_existing_item(foc_qty, item, sale_id, "promotion discount", price)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -324,7 +324,6 @@ class SalePayment < ApplicationRecord
|
|||||||
update_shift
|
update_shift
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# update for cashier shift
|
# update for cashier shift
|
||||||
|
|||||||
@@ -17,5 +17,4 @@ if (menu.menu_categories)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,44 +1,82 @@
|
|||||||
# Format for attributes json
|
# Format for attributes json
|
||||||
attr_format = []
|
attr_format = []
|
||||||
param_count = item.item_attributes.count
|
|
||||||
# Format for attributes json
|
# Format for attributes json
|
||||||
item.item_attributes.each do|attr_id|
|
if item.item_attributes.count > 0
|
||||||
menu_attr = MenuItemAttribute.find(attr_id)
|
item.item_attributes.each do|attr_id|
|
||||||
if attr_format.count == 0
|
menu_attr = MenuItemAttribute.find(attr_id)
|
||||||
attr_format.push({ type: menu_attr.attribute_type, value: [] })
|
if attr_format.count == 0
|
||||||
end
|
attr_format.push({ type: menu_attr.attribute_type, values: [menu_attr.name] })
|
||||||
|
next
|
||||||
attr_format.each do |af|
|
|
||||||
if menu_attr.attribute_type == af[:type]
|
|
||||||
af[:value].push(menu_attr.value)
|
|
||||||
else
|
|
||||||
new_attr = {type: menu_attr.attribute_type, value: [ menu_attr.value ] }
|
|
||||||
attr_format.push(new_attr)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
break if attr_format.count > param_count
|
attr_format.each do |af|
|
||||||
|
if menu_attr.attribute_type.in? attr_format.map {|k| k[:type]}
|
||||||
|
if menu_attr.attribute_type == af[:type]
|
||||||
|
af[:values].push(menu_attr.name)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
new_attr = {type: menu_attr.attribute_type, values: [ menu_attr.name ] }
|
||||||
|
attr_format.push(new_attr)
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
param_count -= 1
|
# Format for option json
|
||||||
|
opt_format = []
|
||||||
|
# Format for attributes json
|
||||||
|
if item.item_options.count > 0
|
||||||
|
item.item_options.each do|opt|
|
||||||
|
menu_opt = MenuItemOption.find(opt)
|
||||||
|
if opt_format.count == 0
|
||||||
|
opt_format.push({ type: menu_opt.option_type, values: [menu_opt.name] })
|
||||||
|
next
|
||||||
|
end
|
||||||
|
|
||||||
|
opt_format.each do |of|
|
||||||
|
if menu_opt.option_type.in? opt_format.map {|k| k[:type]}
|
||||||
|
if menu_opt.option_type == of[:type]
|
||||||
|
of[:values].push(menu_opt.name)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
new_opt = {type: menu_opt.option_type, values: [ menu_opt.name ] }
|
||||||
|
opt_format.push(new_opt)
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
#Menu Item Information
|
#Menu Item Information
|
||||||
json.id item.id
|
json.id item.id
|
||||||
json.item_code item.item_code
|
json.code item.item_code
|
||||||
json.name item.name
|
json.name item.name
|
||||||
json.alt_name item.alt_name
|
json.alt_name item.alt_name
|
||||||
json.image item.image_path.url
|
json.image item.image_path.url
|
||||||
json.description item.description
|
json.description item.description
|
||||||
json.Information item.information
|
json.information item.information
|
||||||
json.type item.type
|
json.type item.type
|
||||||
json.account_id item.account_id
|
json.account_id item.account_id
|
||||||
json.min_qty item.min_qty
|
json.min_qty item.min_qty
|
||||||
json.is_available item.is_available
|
json.is_available item.is_available
|
||||||
json.is_sub_item item.is_sub_item
|
json.is_sub_item item.is_sub_item
|
||||||
json.unit item.unit
|
json.unit item.unit
|
||||||
json.item_sets item.item_sets
|
|
||||||
|
# Item Sets of Menu Item
|
||||||
|
json.item_sets item.item_sets do |its|
|
||||||
|
json.id its.id
|
||||||
|
json.name its.name
|
||||||
|
json.alt_name its.alt_name
|
||||||
|
json.min_selectable_qty its.min_selectable_qty
|
||||||
|
json.max_selectable_qty its.max_selectable_qty
|
||||||
|
json.instances its.menu_item_instances do |i|
|
||||||
|
json.id i.id
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
json.attributes attr_format
|
json.attributes attr_format
|
||||||
json.options item.item_options
|
json.options opt_format
|
||||||
# json.min_selectable_item item.min_selectable_item
|
# json.min_selectable_item item.min_selectable_item
|
||||||
# json.max_selectable_item item.max_selectable_item
|
# json.max_selectable_item item.max_selectable_item
|
||||||
|
|
||||||
@@ -52,6 +90,7 @@ json.options item.item_options
|
|||||||
# json.item_attributes = item_instance.item_attributes
|
# json.item_attributes = item_instance.item_attributes
|
||||||
|
|
||||||
json.instances item.menu_item_instances do |is|
|
json.instances item.menu_item_instances do |is|
|
||||||
|
json.id is.id
|
||||||
json.code is.item_instance_code
|
json.code is.item_instance_code
|
||||||
json.name is.item_instance_name
|
json.name is.item_instance_name
|
||||||
json.price is.price
|
json.price is.price
|
||||||
@@ -59,8 +98,8 @@ json.options item.item_options
|
|||||||
json.is_default is.is_default
|
json.is_default is.is_default
|
||||||
json.is_on_promotion is.is_on_promotion
|
json.is_on_promotion is.is_on_promotion
|
||||||
json.promotion_price is.promotion_price
|
json.promotion_price is.promotion_price
|
||||||
json.item_attributes is.item_attributes
|
json.values is.item_attributes
|
||||||
json.item_sets is.item_sets
|
# json.item_sets is.item_sets
|
||||||
end
|
end
|
||||||
|
|
||||||
#Child Menu items
|
#Child Menu items
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
json.array! @menus do |menu|
|
menu_json = json.array! @menus do |menu|
|
||||||
json.id menu.id
|
json.id menu.id
|
||||||
json.name menu.name
|
json.name menu.name
|
||||||
json.valid_days menu.valid_days
|
json.valid_days menu.valid_days
|
||||||
@@ -12,3 +12,4 @@ json.array! @menus do |menu|
|
|||||||
# end
|
# end
|
||||||
# end
|
# end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -169,6 +169,7 @@
|
|||||||
if(cardNo.length == 16){
|
if(cardNo.length == 16){
|
||||||
$("#paypar_account_no").val(cardNo);
|
$("#paypar_account_no").val(cardNo);
|
||||||
$("#search").val(cardNo);
|
$("#search").val(cardNo);
|
||||||
|
$("#type").val("card");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@@ -25,6 +25,7 @@
|
|||||||
<%= form_tag crm_customers_path, :id => "filter_form", :method => :get do %>
|
<%= form_tag crm_customers_path, :id => "filter_form", :method => :get do %>
|
||||||
<div class="input-append col-md-7 form-group pull-left">
|
<div class="input-append col-md-7 form-group pull-left">
|
||||||
<input type="text" name="filter" style="margin-right:10px" placeholder="Search" id="search" class="form-control input-xs col-md-9">
|
<input type="text" name="filter" style="margin-right:10px" placeholder="Search" id="search" class="form-control input-xs col-md-9">
|
||||||
|
<input type="hidden" name="type" id="type" value="">
|
||||||
<button type="submit" class="btn btn-primary btn-md">Search</button>
|
<button type="submit" class="btn btn-primary btn-md">Search</button>
|
||||||
<!-- <a href="modal-window" data-toggle= "modal" data-target="#modal-window" class="btn btn-primary btn-md" id="card_read" >Read Card</a> -->
|
<!-- <a href="modal-window" data-toggle= "modal" data-target="#modal-window" class="btn btn-primary btn-md" id="card_read" >Read Card</a> -->
|
||||||
|
|
||||||
|
|||||||
@@ -50,48 +50,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Large modal -->
|
|
||||||
<button class="btn btn-primary" data-toggle="modal" data-target=".sx_item_detailModal">Large modal</button>
|
|
||||||
|
|
||||||
<div class="modal fade sx_item_detailModal" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
|
|
||||||
<div class="modal-dialog modal-lg">
|
|
||||||
<div class="modal-content">
|
|
||||||
<div class="modal-header" style="background-color: #54A5AF;">
|
|
||||||
<h4 class="modal-title" style="color:#fff;" id="title_name"></h4>
|
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true" style="font-size: 20px;color:#fff;">×</button>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="modal-body">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-5">
|
|
||||||
<%= image_tag "logo.png" ,width: '', height: '', :style => '' %>
|
|
||||||
<br><br>
|
|
||||||
<div class="form-group">
|
|
||||||
<h4 class="col-md-12">Quantity</h4>
|
|
||||||
<input type="number" name="qty" class="form-control col-md-12 input-number" id="modal-qty" value="" min="1" max="100">
|
|
||||||
</div>
|
|
||||||
<div class="form-group row">
|
|
||||||
<h4 class="col-md-6">Total</h4>
|
|
||||||
<h4 class="col-md-6" id="total_price"> 2500 Ks</h4>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-7">
|
|
||||||
<h4>Options</h4>
|
|
||||||
|
|
||||||
<h4>Attributes</h4>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
|
|
||||||
<button type="button" class="btn btn-primary" data-dismiss="modal" id="close">Close</button>
|
|
||||||
<button type="button" class="btn btn-success" data-dismiss="modal" id="save_order">Add Order</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Modal -->
|
<!-- Modal -->
|
||||||
<div class="modal fade" id="sx_itemModal" tabindex="-1" role="dialog" aria-labelledby="sx_itemModalLabel" aria-hidden="true">
|
<div class="modal fade" id="sx_itemModal" tabindex="-1" role="dialog" aria-labelledby="sx_itemModalLabel" aria-hidden="true">
|
||||||
<div class="modal-dialog" role="document">
|
<div class="modal-dialog" role="document">
|
||||||
@@ -130,6 +88,51 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- Large modal -->
|
||||||
|
|
||||||
|
<div class="modal fade sx_item_detailModal" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-lg">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header" style="background-color: #54A5AF;">
|
||||||
|
<h4 class="modal-title" style="color:#fff;" id="title_name"></h4>
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true" style="font-size: 20px;color:#fff;">×</button>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-5">
|
||||||
|
<%= image_tag "logo.png" ,width: '', height: '', :style => '' %>
|
||||||
|
<br><br>
|
||||||
|
<div class="form-group">
|
||||||
|
<h4 class="col-md-12">Quantity</h4>
|
||||||
|
<input type="number" name="qty" class="form-control col-md-12 input-number change_qty" id="change_qty" value="" min="1" max="100">
|
||||||
|
</div>
|
||||||
|
<div class="form-group row">
|
||||||
|
<h4 class="col-md-6">Total</h4>
|
||||||
|
<h4 class="col-md-6" id="total_price"></h4>
|
||||||
|
<p class="hidden" id="unit_price"></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-7 item-detail">
|
||||||
|
<div class="hide attr-alert alert-danger" role="alert">
|
||||||
|
<strong>Oh !</strong>Have not attribute for this item Please select another attribute .
|
||||||
|
</div>
|
||||||
|
<div class="attributes-list">
|
||||||
|
</div>
|
||||||
|
<div class="option-list">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
|
||||||
|
<button type="button" class="btn btn-primary" data-dismiss="modal" id="close">Close</button>
|
||||||
|
<button type="button" class="btn btn-success add_to_order" data-dismiss="modal" id="add_to_order">Add to Order</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
$(function(){
|
$(function(){
|
||||||
@@ -142,6 +145,13 @@ $(function(){
|
|||||||
});
|
});
|
||||||
//End menu category Click
|
//End menu category Click
|
||||||
|
|
||||||
|
$(".change_qty").change(function(){
|
||||||
|
qty = $(this).val();
|
||||||
|
price = $("#unit_price").text();
|
||||||
|
$("#total_price").text(qty*price);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
//show menu item list when click menu category
|
//show menu item list when click menu category
|
||||||
function show_menu_item_list(url_item){
|
function show_menu_item_list(url_item){
|
||||||
var menu_list = $('.menu_items_list');
|
var menu_list = $('.menu_items_list');
|
||||||
@@ -154,43 +164,36 @@ $(function(){
|
|||||||
data: {},
|
data: {},
|
||||||
dataType: "json",
|
dataType: "json",
|
||||||
success: function(data) {
|
success: function(data) {
|
||||||
console.log(data);
|
|
||||||
var menu_items_list = $('.menu_items_list');
|
var menu_items_list = $('.menu_items_list');
|
||||||
menu_items_list.empty();
|
menu_items_list.empty();
|
||||||
menu_items = data.menu_items;
|
menu_items = data.menu_items;
|
||||||
console.log(data);
|
|
||||||
for(var field in menu_items) {
|
for(var field in menu_items) {
|
||||||
|
instances = menu_items[field].instances ;
|
||||||
|
$(instances).each(function(i){
|
||||||
|
if (instances[i].is_default === true) {
|
||||||
|
code = instances[i].code;
|
||||||
|
name = instances[i].name;
|
||||||
|
price = parseFloat(instances[i].price).toFixed(2);
|
||||||
|
is_available = instances[i].is_available ;
|
||||||
|
is_on_promotion = instances[i].is_on_promotion;
|
||||||
|
item_attributes = instances[i].values;
|
||||||
|
promotion_price = instances[i].promotion_price;
|
||||||
|
code = instances[i].code;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
var code = menu_items[field].instances[0].code
|
row = '<div class="card">'
|
||||||
var name = menu_items[field].instances[0].name
|
|
||||||
var price = parseFloat(menu_items[field].instances[0].price).toFixed(2);
|
|
||||||
var is_available = menu_items[field].instances[0].is_available
|
|
||||||
var is_on_promotion = menu_items[field].instances[0].is_on_promotion
|
|
||||||
var item_attributes = menu_items[field].instances[0].item_attributes
|
|
||||||
var promotion_price = menu_items[field].instances[0].promotion_price
|
|
||||||
|
|
||||||
|
|
||||||
row = '<div class="card">'
|
|
||||||
+'<div class="card-head" style="line-height:14px;">'
|
+'<div class="card-head" style="line-height:14px;">'
|
||||||
+'<small class="col-md-9">'+ menu_items[field].name +'</small>'
|
+'<small class="col-md-9">'+ menu_items[field].name +'</small>'
|
||||||
+'<div class="col-md-3 add_icon"'
|
+"<div class='col-md-3 add_icon' data-item-code='"+ menu_items[field].code +"' data-name='"+ menu_items[field].name +"' data-price = '"+ price +"' data-instance-code = '"+ code +"' data-instance = '"+ name +"' data-promotion-price = '"+ promotion_price +"' data-attributes = '"+ JSON.stringify(item_attributes) +"'>"
|
||||||
+'data-id="'+ menu_items[field].name +'"'
|
|
||||||
+'data-item-code="'+ menu_items[field].item_code +'"'
|
|
||||||
+'data-name="'+ menu_items[field].name +'"'
|
|
||||||
+'data-price="'+ price +'"'
|
|
||||||
+'data-available="'+ is_available +'"'
|
|
||||||
+'data-promotion="'+ is_on_promotion +'"'
|
|
||||||
+'data-attributes="'+ item_attributes +'"'
|
|
||||||
+'data-instance-code="'+ code +'"'
|
|
||||||
+'data-instance="'+ name +'"'
|
|
||||||
+'data-promotion-price="'+ promotion_price +'"'
|
|
||||||
+'>'
|
|
||||||
+'<i class="fa fa-plus "'
|
+'<i class="fa fa-plus "'
|
||||||
+ 'style="margin-top:4px;">'
|
+ 'style="margin-top:4px;">'
|
||||||
+'</i></div>'
|
+'</i></div>'
|
||||||
+'</div>'
|
+'</div>'
|
||||||
|
|
||||||
+'<div class="menu_item_box" data-toggle="modal" data-target=".sx_item_detailModal">'
|
+"<div class='menu_item_box' data-instance = '"+JSON.stringify(menu_items[field].instances)+"' data-id = '"+JSON.stringify(menu_items[field].attributes)+"' data-item = '"+JSON.stringify(item_attributes)+"' data-toggle='modal' data-target='.sx_item_detailModal'>"
|
||||||
|
|
||||||
+'<div class="card-block">'
|
+'<div class="card-block">'
|
||||||
+'<%= image_tag "logo.png" ,width: '75', height: '75', :style => '' %>'
|
+'<%= image_tag "logo.png" ,width: '75', height: '75', :style => '' %>'
|
||||||
+'</div>'
|
+'</div>'
|
||||||
@@ -206,7 +209,115 @@ $(function(){
|
|||||||
});
|
});
|
||||||
//end Ajax
|
//end Ajax
|
||||||
}
|
}
|
||||||
//end show detail function
|
//end show list function
|
||||||
|
|
||||||
|
//click item row for add order
|
||||||
|
$(document).on('click', '.menu_item_box', function(event){
|
||||||
|
$('.attributes-list').empty();
|
||||||
|
$('.attr-alert').addClass('hide');
|
||||||
|
|
||||||
|
data = $(this).parent().children().children('.add_icon');
|
||||||
|
attributes = $(this).data('id');
|
||||||
|
selected_item = $(this).data('item');
|
||||||
|
instances = $(this).data('instance');
|
||||||
|
|
||||||
|
for(var field in attributes) {
|
||||||
|
value = attributes[field]["values"];
|
||||||
|
type = attributes[field]["type"]
|
||||||
|
row = "<h4>"+attributes[field]["type"]+"</h4>"
|
||||||
|
|
||||||
|
$(value).each(function(i){
|
||||||
|
status ="";
|
||||||
|
if(parseInt(jQuery.inArray(value[i], selected_item))!== -1){
|
||||||
|
status = "selected-option";
|
||||||
|
}
|
||||||
|
row +="<button id='selected-option' data-instances='"+JSON.stringify(instances)+"' data-type='"+type+"' data-value='"+value[i]+"' class='btn btn-default attribute_btn "+ status +" "+ type +" '>"+value[i]+"</button>";
|
||||||
|
});
|
||||||
|
$(".attributes-list").append(row);
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#change_qty').val(1);
|
||||||
|
$('#title_name').text(data.attr('data-name'));
|
||||||
|
$('#item_code').text(data.attr('data-item-code'));
|
||||||
|
$('#total_price').text(data.attr('data-price'));
|
||||||
|
$('#unit_price').text(data.attr('data-price'));
|
||||||
|
});
|
||||||
|
|
||||||
|
// click select option icon for add
|
||||||
|
$(document).on('click', '.attribute_btn', function(event){
|
||||||
|
|
||||||
|
value = $(this).data('value');
|
||||||
|
type = $(this).data('type');
|
||||||
|
instances = $(this).data('instances');
|
||||||
|
console.log(instances);
|
||||||
|
if ($(".attribute_btn").attr("data-type")==type){
|
||||||
|
$('.'+type).removeClass("selected-option");
|
||||||
|
}
|
||||||
|
$(this).addClass('selected-option');
|
||||||
|
selected_item = $('.selected-option').text();
|
||||||
|
qty = $('#change_qty').val();
|
||||||
|
total_price = 0;
|
||||||
|
|
||||||
|
for(var field in instances) {
|
||||||
|
item_attr = instances[field].values;
|
||||||
|
if(parseInt(jQuery.inArray(selected_item, item_attr))!== -1){
|
||||||
|
unit_price = instances[field].price
|
||||||
|
total_price = qty * unit_price
|
||||||
|
$('#instance_name').text(instances[field].name);
|
||||||
|
$('#instance_code').text(instances[field].code);
|
||||||
|
$('#promotion_price').text(instances[field].promotion_price);
|
||||||
|
$('#total_price').text(total_price);
|
||||||
|
$('#unit_price').text(unit_price);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (total_price == 0) {
|
||||||
|
$('.attr-alert').removeClass('hide');
|
||||||
|
$('#total_price').text(total_price);
|
||||||
|
}else{
|
||||||
|
$('.attr-alert').addClass('hide');
|
||||||
|
$('#total_price').text(total_price);
|
||||||
|
}
|
||||||
|
}); //End selecct attribute buttom
|
||||||
|
|
||||||
|
// click add order
|
||||||
|
$(document).on('click', '.add_to_order', function(event){
|
||||||
|
total_price = $('#total_price').text();
|
||||||
|
unit_price = $('#unit_price').text();
|
||||||
|
qty = $('#change_qty').val();
|
||||||
|
var item_row = $('.selected-option');
|
||||||
|
var arr = [];
|
||||||
|
|
||||||
|
var attribute_arr = [];
|
||||||
|
$(item_row).each(function(i){
|
||||||
|
value = $(item_row[i]).attr('data-value');
|
||||||
|
arr = {value};
|
||||||
|
|
||||||
|
});
|
||||||
|
console.log(arr);
|
||||||
|
if(total_price > 0){
|
||||||
|
|
||||||
|
$('.add_to_order').attr('data-item-code',$('#item_code').text());
|
||||||
|
$('.add_to_order').attr('data-name',$('#title_name').text());
|
||||||
|
$('.add_to_order').attr('data-price',unit_price);
|
||||||
|
$('.add_to_order').attr('data-instance-code',$('#instance_code').text());
|
||||||
|
$('.add_to_order').attr('data-instance',$('#instance_name').text());
|
||||||
|
$('.add_to_order').attr('data-promotion-price',$('#promotion_price').text());
|
||||||
|
$('.add_to_order').attr('data-attributes',$('#instance_name').text());
|
||||||
|
|
||||||
|
var item_data = $(this);
|
||||||
|
show_item_detail(item_data);
|
||||||
|
calculate_sub_total();
|
||||||
|
}else{
|
||||||
|
$.alert({
|
||||||
|
title: 'Alert!',
|
||||||
|
content: 'Please select another item',
|
||||||
|
type: 'red',
|
||||||
|
typeAnimated: true,
|
||||||
|
btnClass: 'btn-danger',
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}); //End Add Icon Click
|
||||||
|
|
||||||
// click plus icon for add
|
// click plus icon for add
|
||||||
$(document).on('click', '.add_icon', function(event){
|
$(document).on('click', '.add_icon', function(event){
|
||||||
@@ -219,9 +330,9 @@ $(function(){
|
|||||||
qty = 1;
|
qty = 1;
|
||||||
append = 0;
|
append = 0;
|
||||||
price = parseFloat(data.attr('data-price')).toFixed(2);
|
price = parseFloat(data.attr('data-price')).toFixed(2);
|
||||||
instance_code = data.attr('data-instance');
|
instance_name = data.attr('data-instance');
|
||||||
|
|
||||||
if (instance_code == "undefined"){
|
if (instance_name == "undefined"){
|
||||||
instance = '';
|
instance = '';
|
||||||
}else{
|
}else{
|
||||||
instance = "("+data.attr('data-instance')+")";
|
instance = "("+data.attr('data-instance')+")";
|
||||||
@@ -231,11 +342,13 @@ $(function(){
|
|||||||
var item_row = $('.summary-items tbody tr');
|
var item_row = $('.summary-items tbody tr');
|
||||||
|
|
||||||
$(item_row).each(function(i){
|
$(item_row).each(function(i){
|
||||||
if ($(item_row[i]).attr('data-code') == data.attr('data-item-code')) {
|
item_code = $(item_row[i]).attr('data-code');
|
||||||
|
instance_code = $(item_row[i]).attr('data-instance-code');
|
||||||
|
|
||||||
|
if (item_code == data.attr('data-item-code') && instance_code == data.attr('data-instance-code')) {
|
||||||
qty = parseInt($(item_row[i]).children('#item_qty').text()) +1;
|
qty = parseInt($(item_row[i]).children('#item_qty').text()) +1;
|
||||||
$(item_row[i]).children('#item_qty').text(qty);
|
$(item_row[i]).children('#item_qty').text(qty);
|
||||||
parseFloat($(item_row[i]).children('#item_price').text(price*qty)).toFixed(2);
|
parseFloat($(item_row[i]).children('#item_price').text(price*qty)).toFixed(2);
|
||||||
|
|
||||||
append = 1;
|
append = 1;
|
||||||
}else{
|
}else{
|
||||||
qty = 1;
|
qty = 1;
|
||||||
@@ -243,9 +356,9 @@ $(function(){
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (append===0) {
|
if (append===0) {
|
||||||
row ="<tr class='item_box' data-price ='"+price+ "'data-toggle='modal' data-target='#sx_itemModal' 'data-instance ='"+instance+ "'data-code='"+data.attr('data-item-code')+"'>"
|
row ="<tr class='item_box' data-price ='"+price+ "'data-toggle='modal' data-target='#sx_itemModal' 'data-instance ='"+instance+ "' data-code='"+data.attr('data-item-code')+"' data-instance-code='"+data.attr('data-instance-code')+"' data-attributes='"+data.attr('data-attributes')+"'>"
|
||||||
+'<td class="item-cell-no">'+rowCount+'</td>'
|
+'<td class="item-cell-no">'+rowCount+'</td>'
|
||||||
+'<td class="item-cell-name" id="item_name" >' + data.attr('data-name')+ ' ' + instance + '</td>'
|
+'<td class="item-cell-name" id="item_name" >' + data.attr('data-name')+ ' ' + instance +'</td>'
|
||||||
+'<td class="item-cell-qty" id="item_qty">' + qty + '</td>'
|
+'<td class="item-cell-qty" id="item_qty">' + qty + '</td>'
|
||||||
+'<td class="item-cell-price" id="item_price">'
|
+'<td class="item-cell-price" id="item_price">'
|
||||||
+ parseFloat(price).toFixed(2)
|
+ parseFloat(price).toFixed(2)
|
||||||
@@ -253,7 +366,6 @@ $(function(){
|
|||||||
+'</tr>';
|
+'</tr>';
|
||||||
$(".summary-items tbody").append(row);
|
$(".summary-items tbody").append(row);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//click item row for update qty
|
//click item row for update qty
|
||||||
@@ -265,14 +377,6 @@ $(function(){
|
|||||||
$('#modal-qty').val(qty);
|
$('#modal-qty').val(qty);
|
||||||
});
|
});
|
||||||
|
|
||||||
//click item row for update qty
|
|
||||||
$(document).on('click', '.menu_item_box', function(event){
|
|
||||||
|
|
||||||
data = $(this).parent().children().children('.add_icon');
|
|
||||||
$('#title_name').text(data.attr('data-name'));
|
|
||||||
console.log(data);
|
|
||||||
});
|
|
||||||
|
|
||||||
//click remove buttom in modal box
|
//click remove buttom in modal box
|
||||||
$('#sx_itemModal').on('click','#remove', function(){
|
$('#sx_itemModal').on('click','#remove', function(){
|
||||||
$('.summary-items tr').filter(function(){
|
$('.summary-items tr').filter(function(){
|
||||||
@@ -321,7 +425,6 @@ $(function(){
|
|||||||
|
|
||||||
function summary_items_filter(){
|
function summary_items_filter(){
|
||||||
$('.summary-items tr').filter(function(){
|
$('.summary-items tr').filter(function(){
|
||||||
|
|
||||||
if ($(this).attr('data-active') == 'true'){
|
if ($(this).attr('data-active') == 'true'){
|
||||||
qty = $('#modal-qty').val();
|
qty = $('#modal-qty').val();
|
||||||
price = parseFloat($(this).attr('data-price'));
|
price = parseFloat($(this).attr('data-price'));
|
||||||
@@ -406,6 +509,17 @@ $(function(){
|
|||||||
padding-top: 100px;
|
padding-top: 100px;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
.selected-option {
|
||||||
|
color: #fff !important;
|
||||||
|
background-color: green !important;
|
||||||
|
}
|
||||||
|
.attribute_btn {
|
||||||
|
white-space: normal !important;
|
||||||
|
height: 60px;
|
||||||
|
width: 90px;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
<%= form_tag path, :id => "filter_form", :method => :get do %>
|
<%= form_tag path, :id => "filter_form", :method => :get do %>
|
||||||
<div class="input-append col-md-7 form-group pull-left">
|
<div class="input-append col-md-7 form-group pull-left">
|
||||||
<input type="text" name="filter" style="margin-right:10px" id="search" placeholder="Search" class="form-control input-sm col-md-9">
|
<input type="text" name="filter" style="margin-right:10px" id="search" placeholder="Search" class="form-control input-sm col-md-9">
|
||||||
|
<input type="hidden" name="type" id="type" value="">
|
||||||
<button type="submit" class="btn btn-primary btn-sm">Search</button>
|
<button type="submit" class="btn btn-primary btn-sm">Search</button>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
@@ -258,12 +259,23 @@
|
|||||||
$.ajax({
|
$.ajax({
|
||||||
type: "POST",
|
type: "POST",
|
||||||
url: "get_customer" ,
|
url: "get_customer" ,
|
||||||
data: { filter : customer_mamber_card_no },
|
data: { filter : customer_mamber_card_no ,type :"card"},
|
||||||
dataType: "json",
|
dataType: "json",
|
||||||
success: function(data) {
|
success: function(data) {
|
||||||
customer_id = data[0].customer_id;
|
if (data[0].customer_id == false) {
|
||||||
customer_name = data[0].name;
|
$.alert({
|
||||||
update_sale(customer_id, customer_name,sale_id);
|
title: 'Alert!',
|
||||||
|
content: data[0].message,
|
||||||
|
type: 'red',
|
||||||
|
typeAnimated: true,
|
||||||
|
btnClass: 'btn-danger',
|
||||||
|
});
|
||||||
|
}else{
|
||||||
|
customer_id = data[0].customer_id;
|
||||||
|
customer_name = data[0].name;
|
||||||
|
update_sale(customer_id, customer_name,sale_id);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -282,6 +294,7 @@
|
|||||||
if(cardNo.length == 16){
|
if(cardNo.length == 16){
|
||||||
$("#paypar_account_no").val(cardNo);
|
$("#paypar_account_no").val(cardNo);
|
||||||
$("#search").val(cardNo);
|
$("#search").val(cardNo);
|
||||||
|
$("#type").val("card")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
<%= simple_form_for @in_juty,:url => origami_create_for_in_juty_path, :method => :post do |f| %>
|
<%= simple_form_for @in_juty,:url => origami_index_in_juty_path(@table.id), :method => :post do |f| %>
|
||||||
<span class="patch_method"></span>
|
<span class="patch_method"></span>
|
||||||
<%= f.error_notification %>
|
<%= f.error_notification %>
|
||||||
|
<%= f.hidden_field :id, :class => "form-control col-md-6 " %>
|
||||||
|
|
||||||
<div class="form-inputs">
|
<div class="form-inputs">
|
||||||
|
|
||||||
<%= f.hidden_field :dinning_id,:value => @table.id, :class => "form-control col-md-6 " %>
|
<%= f.hidden_field :dinning_id,:value => @table.id, :class => "form-control col-md-6 " %>
|
||||||
|
|
||||||
<label>Dining Name:</label>
|
<label>Dining Name:</label>
|
||||||
<%= @table.name %>
|
<%= @table.name %>
|
||||||
<br/>
|
<br/>
|
||||||
@@ -12,14 +15,14 @@
|
|||||||
<label>Commissioner Name:</label>
|
<label>Commissioner Name:</label>
|
||||||
<%= f.collection_select :commissioner_ids, Commissioner.all, :id, :name, {prompt: 'Select Commissioner'}, {class: 'form-control'} %><br/><br/>
|
<%= f.collection_select :commissioner_ids, Commissioner.all, :id, :name, {prompt: 'Select Commissioner'}, {class: 'form-control'} %><br/><br/>
|
||||||
<label>In time</label>
|
<label>In time</label>
|
||||||
<%= f.text_field :in_time, :value=>DateTime.now.strftime("%Y-%m-%d / %I:%M %p"),:class=>"form-control datepicker"%><br/>
|
<%= f.text_field :in_time, :value=>'',:class=>"form-control datepicker"%><br/>
|
||||||
<label>Out time</label>
|
<label>Out time</label>
|
||||||
<%= f.text_field :out_time, :value=>DateTime.now.strftime("%Y-%m-%d / %I:%M %p"),:class=>"form-control datepicker"%>
|
<%= f.text_field :out_time, :value=>'',:class=>"form-control datepicker"%>
|
||||||
</div><br>
|
</div><br>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<%= f.button :submit, "Create",:class => 'btn btn-primary ', :id => 'create' %>
|
<%= f.button :submit, "Create",:class => 'btn btn-primary ', :id => 'create' %>
|
||||||
<%= f.button :submit, "Update",:class => 'btn btn-primary ', :disabled =>'disabled', :id => 'update' %>
|
<%= f.button :submit, "Update",:class => 'btn btn-primary ', :disabled =>'', :id => 'update' %>
|
||||||
<%= f.button :button, "Reset",:class => 'btn btn-danger ', :id => 'reset' %>
|
<%= f.button :button, "Reset",:class => 'btn btn-danger ', :id => 'reset' %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -30,11 +33,18 @@
|
|||||||
|
|
||||||
$(function() {
|
$(function() {
|
||||||
$('.datepicker').datepicker({
|
$('.datepicker').datepicker({
|
||||||
format : 'dd-mm-yyyy',
|
format : 'yyyy-mm-dd',
|
||||||
autoclose: true
|
autoclose: true
|
||||||
});
|
});
|
||||||
$('.datepicker').attr('ReadOnly','true');
|
$('.datepicker').attr('ReadOnly','true');
|
||||||
$('.datepicker').css('cursor','pointer');
|
$('.datepicker').css('cursor','pointer');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$('#reset').click(function() {
|
||||||
|
|
||||||
|
// window.location.href = '/origami/assign_in_juty/'+ table_id;
|
||||||
|
location.reload();
|
||||||
|
|
||||||
|
return false;
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
@@ -2,8 +2,7 @@
|
|||||||
<%= f.error_notification %>
|
<%= f.error_notification %>
|
||||||
|
|
||||||
<div class="form-inputs">
|
<div class="form-inputs">
|
||||||
<%= f.input :dinning_id %>
|
<%= f.collection_select :commissioner_ids, Commissioner.all, :id, :name, {prompt: 'Select Commissioner'}, {class: 'form-control'} %><br/><br/>
|
||||||
<%= f.input :commissioner_ids %>
|
|
||||||
<%= f.input :in_time %>
|
<%= f.input :in_time %>
|
||||||
<%= f.input :out_time %>
|
<%= f.input :out_time %>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
<table class="table table-striped">
|
<table class="table table-striped">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
<th>Select</th>
|
||||||
<th>Dining Facility Name</th>
|
<th>Dining Facility Name</th>
|
||||||
<th>Commissioner Ids</th>
|
<th>Commissioner Ids</th>
|
||||||
<th>In time</th>
|
<th>In time</th>
|
||||||
@@ -21,13 +22,12 @@
|
|||||||
<td><%= in_juty.commissioner.name rescue '-' %></td>
|
<td><%= in_juty.commissioner.name rescue '-' %></td>
|
||||||
<td><%= in_juty.in_time.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") rescue '-' %></td>
|
<td><%= in_juty.in_time.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") rescue '-' %></td>
|
||||||
<td><%= in_juty.out_time.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") rescue '-' %></td>
|
<td><%= in_juty.out_time.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") rescue '-' %></td>
|
||||||
<td><%= link_to 'Back', origami_path(in_juty.dining_facility.id) %></td>
|
|
||||||
<td><%= link_to 'Edit', origami_edit_in_juty_path(in_juty.dining_facility.id,in_juty) %></td>
|
|
||||||
<td><%= link_to 'Destroy', origami_destroy_in_juty_path(in_juty.dining_facility.id,in_juty),method: :delete, data: {confirm: 'Are you sure?'} %></td>
|
<td><%= link_to 'Destroy', origami_destroy_in_juty_path(in_juty.dining_facility.id,in_juty),method: :delete, data: {confirm: 'Are you sure?'} %></td>
|
||||||
</tr>
|
</tr>
|
||||||
<% end %>
|
<% end %>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
<%= paginate @juties_in %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
@@ -35,40 +35,45 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-1">
|
||||||
|
<button type="button" class="btn btn-primary btn-block" id='back'>Back</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$(document).on('click',".injuty_tr",function(){
|
$(document).on('click',".injuty_tr",function(){
|
||||||
debugger;
|
|
||||||
// if(this.checked){
|
// if(this.checked){
|
||||||
$(this).closest('tr').find('.checkbox_check').prop( "checked", true );
|
$(this).closest('tr').find('.checkbox_check').prop( "checked", true );
|
||||||
//$( "#checkbox_check" ).prop( "checked", true );
|
//$( "#checkbox_check" ).prop( "checked", true );
|
||||||
|
|
||||||
var in_juty_id = $(this).attr('data-ref');
|
var in_juty_id = $(this).attr('data-ref');
|
||||||
var table_id = "<%= @table.id %>";
|
var table_id = "<%= @table.id %>";
|
||||||
var url = "/origami/table/" + table_id + "/in_juty/" + in_juty_id + "/edit";
|
var url = "/origami/assign_in_juty/table/" + table_id + "/in_juty/" + in_juty_id + "/edit";
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: "GET",
|
type: "GET",
|
||||||
url: url,
|
url: url,
|
||||||
data: {},
|
data: {},
|
||||||
dataType: "json",
|
|
||||||
success: function(data) {
|
success: function(data) {
|
||||||
// Selected for Taxes
|
// Selected for Taxes
|
||||||
$('#in_juty_commissioner_ids').val(data.commissioner.name);
|
|
||||||
$('#in_juty_in_time').val(data.in_time);
|
|
||||||
$('#in_juty_out_time').val(data.out_time);
|
|
||||||
|
|
||||||
$('#update').removeAttr('disabled');
|
$('#in_juty_id').val(data.in_juty.id);
|
||||||
|
$('#in_juty_commissioner_ids').val(data.commissioner.id);
|
||||||
|
$('#in_juty_in_time').val(data.in_juty.in_time.split('T')[0]);
|
||||||
|
$('#in_juty_out_time').val(data.in_juty.out_time.split('T')[0]);
|
||||||
|
|
||||||
|
$('#update').removeAttr('disabled').val('');
|
||||||
$('#update').attr('value', 'Update');
|
$('#update').attr('value', 'Update');
|
||||||
$('#create').attr('disabled','disabled');
|
$('#create').attr('disabled','disabled');
|
||||||
|
|
||||||
$("#new_in_juty").attr('class', 'simple_form new_in_juty');
|
$("#new_in_juty").attr('class', 'simple_form edit_in_juty');
|
||||||
var id = customer_id;
|
var id = "edit_in_juty_" + in_juty_id;
|
||||||
$("#new_customer").attr('id', id);
|
$("#new_in_juty").attr('id', id);
|
||||||
|
|
||||||
$(".edit_customer").attr('id', id);
|
$(".edit_in_juty").attr('id', id);
|
||||||
$(".edit_customer").attr('action', '/crm/customers/' + $('#customer_id').val());
|
$(".edit_in_juty").attr('action', '/origami/edit_in_juty/' + $('#in_juty_id').val());
|
||||||
$(".edit_customer").attr('action', '/crm/customers/' + $('#customer_id').val());
|
$(".edit_in_juty").attr('action', '/origami/edit_in_juty/' + $('#in_juty_id').val());
|
||||||
$(".patch_method").html('<input type="hidden" name="_method" value="patch">');
|
$(".patch_method").html('<input type="hidden" name="_method" value="patch">');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -76,4 +81,9 @@ $(document).on('click',".injuty_tr",function(){
|
|||||||
|
|
||||||
// }
|
// }
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
$('#back').on('click', function () {
|
||||||
|
window.location.href = '/origami/table/'+ "<%= @table.id %>";
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
@@ -89,10 +89,11 @@ Rails.application.routes.draw do
|
|||||||
post 'apply_void' => 'sale_edit#apply_void'
|
post 'apply_void' => 'sale_edit#apply_void'
|
||||||
# in_juties
|
# in_juties
|
||||||
get '/table/:table_id/assign_in_juty' => 'in_juties#assign_in_juty', as: 'assign_in_juty'
|
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 'assign_in_juty/:table_id' => 'in_juties#index_in_juty', as: 'index_in_juty'
|
||||||
get 'table/:table_id/in_juty/:id/edit' => 'in_juties#edit_in_juty', as: 'edit_in_juty'
|
post 'assign_in_juty/:table_id' => 'in_juties#create_for_in_juty'
|
||||||
put '/edit_in_juty/:id' => 'in_juties#update_for_in_juty', as: 'update_for_in_juty'
|
|
||||||
|
get 'assign_in_juty/table/:table_id/in_juty/:id/edit' => 'in_juties#edit_in_juty' ,as: 'edit_in_juty'
|
||||||
|
patch 'edit_in_juty/:id' => 'in_juties#update_for_in_juty', as: 'update_for_in_juty'
|
||||||
delete 'table/:table_id/destroy_in_juty/:id' => 'in_juties#destroy_in_juty', as: 'destroy_in_juty'
|
delete 'table/:table_id/destroy_in_juty/:id' => 'in_juties#destroy_in_juty', as: 'destroy_in_juty'
|
||||||
|
|
||||||
get 'table/:dining_id/movetable' => "movetable#move_dining"
|
get 'table/:dining_id/movetable' => "movetable#move_dining"
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ class CreateOrderItems < ActiveRecord::Migration[5.1]
|
|||||||
t.string :order_item_status, :null => false, :default => "new"
|
t.string :order_item_status, :null => false, :default => "new"
|
||||||
t.string :item_order_by #person who order this
|
t.string :item_order_by #person who order this
|
||||||
t.string :item_code, :null => false
|
t.string :item_code, :null => false
|
||||||
|
t.string :item_instance_code
|
||||||
t.string :item_name, :null => false
|
t.string :item_name, :null => false
|
||||||
t.string :alt_name, :null => false
|
t.string :alt_name, :null => false
|
||||||
t.integer :account_id, :limit => 8, :null => false, :default => 1
|
t.integer :account_id, :limit => 8, :null => false, :default => 1
|
||||||
|
|||||||
25
db/seeds.rb
25
db/seeds.rb
@@ -218,25 +218,26 @@ zone3 = Zone.create({id:3, name: "H3", is_active:true, created_by: "SYSTEM DEFAU
|
|||||||
table = Table.create({name:"77", zone: zone3, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
|
table = Table.create({name:"77", zone: zone3, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
|
||||||
table = Table.create({name:"78", zone: zone3, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
|
table = Table.create({name:"78", zone: zone3, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
|
||||||
|
|
||||||
member_setting = MembershipSetting.create({membership_type:"paypar_url",gateway_url: "http://staging.membership.paypar.ws",merchant_account_id:"vWSsseoZCzxd6xcNf_uS"})
|
member_setting = MembershipSetting.create({membership_type:"paypar_url",gateway_url: "http://staging.membership.paypar.ws",merchant_account_id:"RxzaYyAGzm7VqAZ4hKnv"})
|
||||||
|
|
||||||
member_actions= MembershipAction.create([{membership_type:"get_account_balance",gateway_url:"/api/membership_campaigns/get_correspond_account_data",additional_parameter:{campaign_type_id:1},merchant_account_id:"vWSsseoZCzxd6xcNf_uS",auth_token:"code2lab"},
|
member_actions= MembershipAction.create([{membership_type:"get_account_balance",gateway_url:"/api/membership_campaigns/get_correspond_account_data",additional_parameter:{campaign_type_id:1},merchant_account_id:"RxzaYyAGzm7VqAZ4hKnv",auth_token:"code2lab"},
|
||||||
{membership_type:"redeem",gateway_url:"/api/membership_campaigns/redeem",additional_parameter:{campaign_type_id:1},merchant_account_id:"vWSsseoZCzxd6xcNf_uS",auth_token:"code2lab"},
|
{membership_type:"redeem",gateway_url:"/api/membership_campaigns/redeem",additional_parameter:{campaign_type_id:1},merchant_account_id:"RxzaYyAGzm7VqAZ4hKnv",auth_token:"code2lab"},
|
||||||
{membership_type:"create_membership_customer",gateway_url:"/api/generic_customer/create_membership_customer",merchant_account_id:"vWSsseoZCzxd6xcNf_uS",auth_token:"code2lab"},
|
{membership_type:"create_membership_customer",gateway_url:"/api/generic_customer/create_membership_customer",merchant_account_id:"RxzaYyAGzm7VqAZ4hKnv",auth_token:"code2lab"},
|
||||||
{membership_type:"update_membership_customer",gateway_url:"/api/generic_customer/update_membership_customer",merchant_account_id:"vWSsseoZCzxd6xcNf_uS",auth_token:"code2lab"},
|
{membership_type:"update_membership_customer",gateway_url:"/api/generic_customer/update_membership_customer",merchant_account_id:"RxzaYyAGzm7VqAZ4hKnv",auth_token:"code2lab"},
|
||||||
{membership_type:"get_all_member_group",gateway_url:"/api/member_group/get_all_member_group",merchant_account_id:"vWSsseoZCzxd6xcNf_uS",auth_token:"code2lab"},
|
{membership_type:"get_all_member_group",gateway_url:"/api/member_group/get_all_member_group",merchant_account_id:"RxzaYyAGzm7VqAZ4hKnv",auth_token:"code2lab"},
|
||||||
{membership_type:"rebate",gateway_url:"/api/membership_campaigns/rebate",additional_parameter:{campaign_type_id:1},merchant_account_id:"vWSsseoZCzxd6xcNf_uS",auth_token:"code2lab"},
|
{membership_type:"rebate",gateway_url:"/api/membership_campaigns/rebate",additional_parameter:{campaign_type_id:1},merchant_account_id:"RxzaYyAGzm7VqAZ4hKnv",auth_token:"code2lab"},
|
||||||
{membership_type:"get_all_member_account",gateway_url:"/api/generic_customer/get_membership_data",merchant_account_id:"vWSsseoZCzxd6xcNf_uS",auth_token:"code2lab"},
|
{membership_type:"get_all_member_account",gateway_url:"/api/generic_customer/get_membership_data",merchant_account_id:"RxzaYyAGzm7VqAZ4hKnv",auth_token:"code2lab"},
|
||||||
{membership_type:"get_member_transactions",gateway_url:"/api/generic_customer/get_membership_transactions",merchant_account_id:"vWSsseoZCzxd6xcNf_uS",auth_token:"code2lab"},
|
{membership_type:"get_member_transactions",gateway_url:"/api/generic_customer/get_membership_transactions",merchant_account_id:"RxzaYyAGzm7VqAZ4hKnv",auth_token:"code2lab"},
|
||||||
{membership_type:"member_discount",gateway_url:"/api/membership_campaigns/discount",additional_parameter:{campaign_type_id:6},merchant_account_id:"vWSsseoZCzxd6xcNf_uS",auth_token:"code2lab"},
|
{membership_type:"member_discount",gateway_url:"/api/membership_campaigns/discount",additional_parameter:{campaign_type_id:6},merchant_account_id:"RxzaYyAGzm7VqAZ4hKnv",auth_token:"code2lab"},
|
||||||
{membership_type:"get_member_campaign",gateway_url:"/api/membership_campaigns/get_member_campaign",additional_parameter:{campaign_type_id:6},merchant_account_id:"vWSsseoZCzxd6xcNf_uS",auth_token:"code2lab"},
|
{membership_type:"get_member_campaign",gateway_url:"/api/membership_campaigns/get_member_campaign",additional_parameter:{campaign_type_id:6},merchant_account_id:"RxzaYyAGzm7VqAZ4hKnv",auth_token:"code2lab"},
|
||||||
|
{membership_type:"search_paypar_account_no",gateway_url:"/api/generic_customer/get_membership_customer_data",merchant_account_id:"RxzaYyAGzm7VqAZ4hKnv",auth_token:"code2lab"}
|
||||||
])
|
])
|
||||||
|
|
||||||
payment_methods = PaymentMethodSetting.create({payment_method:"MPU",gateway_url: "http://membership.paypar.ws"})
|
payment_methods = PaymentMethodSetting.create({payment_method:"MPU",gateway_url: "http://membership.paypar.ws"})
|
||||||
payment_methods = PaymentMethodSetting.create({payment_method:"VISA",gateway_url: "http://membership.paypar.ws"})
|
payment_methods = PaymentMethodSetting.create({payment_method:"VISA",gateway_url: "http://membership.paypar.ws"})
|
||||||
payment_methods = PaymentMethodSetting.create({payment_method:"JCB",gateway_url: "http://membership.paypar.ws"})
|
payment_methods = PaymentMethodSetting.create({payment_method:"JCB",gateway_url: "http://membership.paypar.ws"})
|
||||||
payment_methods = PaymentMethodSetting.create({payment_method:"Master",gateway_url: "http://membership.paypar.ws"})
|
payment_methods = PaymentMethodSetting.create({payment_method:"Master",gateway_url: "http://membership.paypar.ws"})
|
||||||
payment_methods = PaymentMethodSetting.create({payment_method:"Redeem",gateway_url: "http://membership.paypar.ws",merchant_account_id:"vWSsseoZCzxd6xcNf_uS"})
|
payment_methods = PaymentMethodSetting.create({payment_method:"Redeem",gateway_url: "http://membership.paypar.ws",merchant_account_id:"RxzaYyAGzm7VqAZ4hKnv"})
|
||||||
|
|
||||||
#Default Order Queue stations
|
#Default Order Queue stations
|
||||||
order_queue_station1 = OrderQueueStation.create({station_name: "K1", is_active: true,printer_name: "Cashier", processing_items: JSON.generate(['01001','01002','01003','01004']), print_copy:true, cut_per_item: false, use_alternate_name: false, created_by: "SYSTEM DEFAULT"})
|
order_queue_station1 = OrderQueueStation.create({station_name: "K1", is_active: true,printer_name: "Cashier", processing_items: JSON.generate(['01001','01002','01003','01004']), print_copy:true, cut_per_item: false, use_alternate_name: false, created_by: "SYSTEM DEFAULT"})
|
||||||
|
|||||||
Reference in New Issue
Block a user