From 1685713ff5ea4eab99adb2c7de231bf54c9214b1 Mon Sep 17 00:00:00 2001 From: Yan Date: Tue, 8 Aug 2017 18:02:05 +0630 Subject: [PATCH 1/2] add customer tax --- app/controllers/crm/customers_controller.rb | 11 +++- app/views/crm/customers/_new_form.html.erb | 60 ++++++++++++------- app/views/crm/customers/index.html.erb | 2 +- db/migrate/20170622050926_create_customers.rb | 2 +- db/seeds.rb | 7 +-- 5 files changed, 52 insertions(+), 30 deletions(-) diff --git a/app/controllers/crm/customers_controller.rb b/app/controllers/crm/customers_controller.rb index 49c64e52..cb2c6dd2 100644 --- a/app/controllers/crm/customers_controller.rb +++ b/app/controllers/crm/customers_controller.rb @@ -17,6 +17,8 @@ class Crm::CustomersController < BaseCrmController @crm_customer = Customer.new @count_customer = Customer.count_customer + @taxes = TaxProfile.all.order("order_by asc") + # if flash["errors"] # @crm_customer.valid? # end @@ -67,11 +69,14 @@ class Crm::CustomersController < BaseCrmController # POST /crm/customers # POST /crm/customers.json - def create + def create @crm_customers = Customer.new(customer_params) respond_to do |format| if @crm_customers.save + # update tax profile + customer = Customer.find(@crm_customers.customer_id) + customer.update_attributes(tax_profiles: params[:customer][:tax_profiles].to_json) name = customer_params[:name] phone = customer_params[:contact_no] email = customer_params[:email] @@ -346,7 +351,7 @@ end # Never trust parameters from the scary internet, only allow the white list through. def customer_params - params.require(:customer).permit(:name, :company, :contact_no, :email, - :date_of_birth,:salutation,:gender,:nrc_no,:address,:card_no, :paypar_account_no) + params.require(:customer).permit(:id, :name, :company, :contact_no, :email, + :date_of_birth,:salutation,:gender,:nrc_no,:address,:card_no, :paypar_account_no, :customer_type) end end diff --git a/app/views/crm/customers/_new_form.html.erb b/app/views/crm/customers/_new_form.html.erb index 1eda0bec..13896e85 100644 --- a/app/views/crm/customers/_new_form.html.erb +++ b/app/views/crm/customers/_new_form.html.erb @@ -1,25 +1,7 @@
<%= simple_form_for @crm_customer,:url => crm_customers_path, :method => :post do |f| %> - <%= f.hidden_field :id, :class => "form-control col-md-6 " %> - -
"> - <%= f.input :card_no, :class => "form-control col-md-6 card_no"%> - <% flash.each do |name, msg| %> - <% str="[\"#{msg['card_no']}\"]" - str.gsub!('["', '') - str.gsub!('"]', '') %> - <%= str %> - <% end %> -
- -
- -
- -
-
-
+ <%= f.hidden_field :id, :class => "form-control col-md-6 " %>

@@ -102,6 +84,38 @@ <%= f.text_field :date_of_birth,:value=>"01-01-1990",:class=>"form-control datepicker"%>
+
"> + <%= f.input :card_no, :class => "form-control col-md-6 card_no"%> + <% flash.each do |name, msg| %> + <% str="[\"#{msg['card_no']}\"]" + str.gsub!('["', '') + str.gsub!('"]', '') %> + <%= str %> + <% end %> +
+ +
+ + +
+ +
+ <%= f.input :tax_profiles, :collection => @taxes, :input_html => { :multiple => true }, :class => "form-control col-md-6 tax_profiles" %> +
+ +
+ +
+ +
+
+
+
- +
@@ -138,6 +151,11 @@ },100); } }); + + // $("#customer_card_no").click(function(){ + // var ab=$("#customer_tax_profiles").val(); + // console.log(JSON.stringify(ab)); + // }); }); diff --git a/app/views/crm/customers/index.html.erb b/app/views/crm/customers/index.html.erb index 6f336158..f2d28b19 100644 --- a/app/views/crm/customers/index.html.erb +++ b/app/views/crm/customers/index.html.erb @@ -76,7 +76,7 @@
- <%= render 'new_form', crm_customer: @crm_customer %> + <%= render 'new_form', crm_customer: @crm_customer, taxes: @taxes %>

diff --git a/db/migrate/20170622050926_create_customers.rb b/db/migrate/20170622050926_create_customers.rb index 28f38e15..cb370bc1 100644 --- a/db/migrate/20170622050926_create_customers.rb +++ b/db/migrate/20170622050926_create_customers.rb @@ -16,7 +16,7 @@ class CreateCustomers < ActiveRecord::Migration[5.1] t.string :membership_id t.string :membership_type t.string :membership_authentication_code - t.string :customer_type, default => "Dinein" + t.string :customer_type, :default => "Dinein" t.json :tax_profiles end end diff --git a/db/seeds.rb b/db/seeds.rb index 4e39275d..1b63bcb0 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -94,10 +94,9 @@ float_value = Lookup.create([{lookup_type:'float_value', name: '500', value: '50 {lookup_type:'float_value', name: '10000', value: '10000'}]) # customer type -customer_type = Lookup.create([{lookup_type:'float_value', name: '500', value: '500'}, - {lookup_type:'float_value', name: '1000', value: '1000'}, - {lookup_type:'float_value', name: '5000', value: '5000'}, - {lookup_type:'float_value', name: '10000', value: '10000'}]) +customer_type = Lookup.create([{lookup_type:'customer_type', name: 'Dinein', value: 'Dinein'}, + {lookup_type:'customer_type', name: 'Takeaway', value: 'Takeaway'}, + {lookup_type:'customer_type', name: 'Delivery', value: 'Delivery'}]) #WALK CUSTOMER - Default CUSTOMER (take key 1) customer = Customer.create({name:"WALK-IN", email: "cus1@customer.com", contact_no:"000000000",card_no:"000"}) From cc6e422c8b933f0aadc29af29771d99f59919d6e Mon Sep 17 00:00:00 2001 From: Yan Date: Wed, 9 Aug 2017 10:51:13 +0630 Subject: [PATCH 2/2] add customer type and tax profile in customer --- app/controllers/crm/customers_controller.rb | 4 +++- app/views/crm/customers/_new_form.html.erb | 7 +++---- app/views/crm/customers/index.html.erb | 10 +++++++++- app/views/crm/customers/show.json.jbuilder | 2 +- 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/app/controllers/crm/customers_controller.rb b/app/controllers/crm/customers_controller.rb index cb2c6dd2..180901ad 100644 --- a/app/controllers/crm/customers_controller.rb +++ b/app/controllers/crm/customers_controller.rb @@ -69,7 +69,9 @@ class Crm::CustomersController < BaseCrmController # POST /crm/customers # POST /crm/customers.json - def create + def create + # Remove "" default first + params[:customer][:tax_profiles].delete_at(0) @crm_customers = Customer.new(customer_params) respond_to do |format| diff --git a/app/views/crm/customers/_new_form.html.erb b/app/views/crm/customers/_new_form.html.erb index 13896e85..5f1d1b46 100644 --- a/app/views/crm/customers/_new_form.html.erb +++ b/app/views/crm/customers/_new_form.html.erb @@ -95,15 +95,14 @@
- - <% Lookup.where("lookup_type = ?", "customer_type" ).each do |ct| %> <%end %> -
- +
<%= f.input :tax_profiles, :collection => @taxes, :input_html => { :multiple => true }, :class => "form-control col-md-6 tax_profiles" %>
diff --git a/app/views/crm/customers/index.html.erb b/app/views/crm/customers/index.html.erb index f2d28b19..b1b1272b 100644 --- a/app/views/crm/customers/index.html.erb +++ b/app/views/crm/customers/index.html.erb @@ -129,7 +129,14 @@ $(document).on('click',".customer_tr",function(){ url: url, data: {}, dataType: "json", - success: function(data) { + success: function(data) { + // Selected for Taxes + //var taxes = JSON.stringify(data.tax_profiles); + var parse_taxes = JSON.parse(data.tax_profiles); + $.each(parse_taxes, function(i, value){ + $("#customer_tax_profiles option[value='" + value + "']").attr("selected","selected"); + }); + $('#customer_id').val(data.id); $('#customer_name').val(data.name); $('#customer_company').val(data.company); @@ -138,6 +145,7 @@ $(document).on('click',".customer_tr",function(){ $('#customer_salutation').val(data.salutation); $('#customer_nrc_no').val(data.nrc_no); $('#customer_card_no').val(data.card_no); + $('#customer_type').val(data.customer_type); $('#paypar_account_no').val(data.paypar_account_no); $('#customer_address').val(data.address); $('#customer_date_of_birth').val(data.date_of_birth); diff --git a/app/views/crm/customers/show.json.jbuilder b/app/views/crm/customers/show.json.jbuilder index 5fd0410a..ffc312a2 100644 --- a/app/views/crm/customers/show.json.jbuilder +++ b/app/views/crm/customers/show.json.jbuilder @@ -1,4 +1,4 @@ json.extract! @crm_customer, :id, :name, :company, :contact_no, :email, :date_of_birth, :membership_id, :membership_type, :membership_authentication_code, - :salutation, :gender,:nrc_no,:address,:card_no, :paypar_account_no + :salutation, :gender,:nrc_no,:address,:card_no, :paypar_account_no, :customer_type, :tax_profiles json.url crm_customer_url(@crm_customer, format: :json)