diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js
index f2ee34ba..8ff96589 100644
--- a/app/assets/javascripts/application.js
+++ b/app/assets/javascripts/application.js
@@ -18,3 +18,4 @@
//= require cable
//= require settings/processing_items
//= require bootstrap-datepicker
+
diff --git a/app/controllers/crm/customers_controller.rb b/app/controllers/crm/customers_controller.rb
index 15657a98..d8cb1f69 100644
--- a/app/controllers/crm/customers_controller.rb
+++ b/app/controllers/crm/customers_controller.rb
@@ -4,8 +4,8 @@ class Crm::CustomersController < ApplicationController
# GET /crm/customers
# GET /crm/customers.json
def index
- @crm_customers = Customer.all
- @crm_customer = Customer.new
+ @crm_customers = Customer.all
+ @crm_customer = Customer.new
@membership = Customer.get_member_group
if @membership["status"] == true
@member_group = @membership["data"]
@@ -35,12 +35,11 @@ class Crm::CustomersController < ApplicationController
# POST /crm/customers
# POST /crm/customers.json
def create
- puts "Hello"
- puts customer_params.to_json
@crm_customers = Customer.new(customer_params)
respond_to do |format|
if @crm_customers.save
+
name = customer_params[:name]
phone = customer_params[:contact_no]
@@ -52,23 +51,33 @@ class Crm::CustomersController < ApplicationController
app_token = membership.auth_token.to_s
url = membership.gateway_url.to_s + "/api/create_membership_customer".to_s
- response = HTTParty.post(url,
- :body => { name: name,phone: phone,email: email,date_of_birth: date_of_birth,membership_id: membership_id}.to_json,
- :headers => {
- 'Content-Type' => 'application/json',
- 'Accept' => 'application/json'
- }
- )
+ response = HTTParty.post(url, :body => { name: name,phone: phone,email: email,
+ date_of_birth: date_of_birth,
+ membership_id: membership_id}.to_json,
+ :headers => {
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json'
+ }
+ )
- puts "rrrrrrrrrrrrrr"
- puts response.to_json
+ if response["status"] == true
+
+ customer = Customer.find(@crm_customers.customer_id)
+ status = customer.update_attributes(membership_id: response["customer_datas"]["id"])
- format.html { redirect_to crm_customers_path, notice: 'Customer was successfully created.' }
- format.json { render :index, status: :created, location: @crm_customers }
+ format.html { redirect_to crm_customers_path, notice: 'Customer was successfully created.' }
+ # format.json { render :index, status: :created, location: @crm_customers }
+ else
+ @crm_customers.destroy
+ format.html { redirect_to crm_customers_path, notice: 'Customer was not successfully created.' }
+ end
+
+
+ # format.json { render :index, status: :created, location: @crm_customers }
else
- format.html { render :index }
- format.json { render json: @crm_customer.errors, status: :unprocessable_entity }
+ format.html { redirect_to crm_customers_path}
+ format.json { render json: @crm_customers.errors, status: :unprocessable_entity }
end
end
end
@@ -76,9 +85,30 @@ class Crm::CustomersController < ApplicationController
# PATCH/PUT /crm/customers/1
# PATCH/PUT /crm/customers/1.json
def update
+
respond_to do |format|
if @crm_customer.update(customer_params)
- format.html { redirect_to @crm_customer, notice: 'Customer was successfully updated.' }
+
+ name = customer_params[:name]
+ phone = customer_params[:contact_no]
+ email = customer_params[:email]
+ date_of_birth = customer_params[:date_of_birth]
+ id = customer_params[:membership_id]
+
+ membership = MembershipSetting.find_by_membership_type("smartpay_url")
+ app_token = membership.auth_token.to_s
+ url = membership.gateway_url.to_s + "/api/update_membership_customer".to_s
+
+ response = HTTParty.post(url, :body => { name: name,phone: phone,email: email,
+ date_of_birth: date_of_birth,
+ id: id}.to_json,
+ :headers => {
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json'
+ }
+ )
+ puts response.to_json
+ format.html { redirect_to crm_customers_path, notice: 'Customer was successfully updated.' }
format.json { render :show, status: :ok, location: @crm_customer }
else
format.html { render :edit }
diff --git a/app/controllers/crm/home_controller.rb b/app/controllers/crm/home_controller.rb
index 083f2bf7..7b565ba5 100644
--- a/app/controllers/crm/home_controller.rb
+++ b/app/controllers/crm/home_controller.rb
@@ -3,22 +3,24 @@ class Crm::HomeController < BaseCrmController
@booking = Booking.all
@customer = Customer.all
-
- #@booking = Booking.select("bookings.id as booking_id,
- # bookings.checkin_at,
- # bookings.checkin_by,
- # bookings.dining_facility_id,
- # od.customer_id as customer,
- # od.id as order_id,
- # od.item_count as count,
- # odt.id as order_item_id,
- # odt.item_name as item_name")
- # .joins("join booking_orders as bko ON bko.booking_id = bookings.id")
- # .joins("right join orders as od ON od.id = bko.order_id")
- # .joins("right join order_items as odt ON odt.order_id=od.id")
- # .order("bookings.id DESC")
end
+
def show
end
+
+ #print for crm
+ def print
+
+ @booking = Booking.find(params[:id])
+
+ unique_code="CrmOrderPdf"
+
+ #print_settings = PrintSetting.find_by_unique_code(unique_code)
+
+ printer = Printer::ReceiptPrinter.new()
+
+ printer.print_crm_order(@booking)
+
+ end
end
diff --git a/app/models/customer.rb b/app/models/customer.rb
index 206c2ada..6d2bd561 100644
--- a/app/models/customer.rb
+++ b/app/models/customer.rb
@@ -10,8 +10,6 @@ class Customer < ApplicationRecord
validates :contact_no, uniqueness: true
validates :email, uniqueness: true
- # attr_accessor :name, :company, :contact_no, :email, :date_of_birth, :membership_id, :membership_type, :membership_authentication_code
-
def self.get_member_group
@@ -32,26 +30,6 @@ class Customer < ApplicationRecord
end
-
-# http://192.168.1.47:3006/api/create_membership_customer
-#get_all_member_group
-
- def self.generate(params)
- puts "Hello "
- puts params.to_json
- customer = Customer.new
- customer.name= params[:name]
- customer.company= params[:company]
- customer.contact_no= params[:contact_no]
- customer.email= params[:email]
- customer.date_of_birth= params[:date_of_birth]
- customer.membership_id= params[:membership_id]
- customer.membership_type= params[:membership_type]
- customer.membership_authentication_code= params[:membership_authentication_code]
- customer.save!
- return customer
- end
-
def lastest_invoices
sales.where(:customer_id => self.id).order("created_at desc").limit(5)
end
diff --git a/app/models/printer/receipt_printer.rb b/app/models/printer/receipt_printer.rb
index 86d43190..b60d08ae 100644
--- a/app/models/printer/receipt_printer.rb
+++ b/app/models/printer/receipt_printer.rb
@@ -72,4 +72,14 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker
pdf.render_file "tmp/receipt_bill.pdf"
self.print("tmp/receipt_bill.pdf")
end
+
+ #Bill Receipt Print
+ def print_crm_order(booking)
+ #Use CUPS service
+ #Generate PDF
+ #Print
+ pdf = CrmOrderPdf.new(booking)
+ pdf.render_file "tmp/print_crm_order.pdf"
+ self.print("tmp/print_crm_order.pdf")
+ end
end
diff --git a/app/pdf/crm_order_pdf.rb b/app/pdf/crm_order_pdf.rb
new file mode 100644
index 00000000..f9d641b3
--- /dev/null
+++ b/app/pdf/crm_order_pdf.rb
@@ -0,0 +1,38 @@
+class OrderItemPdf < Prawn::Document
+
+ def initialize(order_item)
+ super(:margin => [10, 5, 30, 5], :page_size => [200,400])
+
+ # font "public/fonts/#{font_name}".to_s + ".ttf".to_s
+ # font "public/fonts/Zawgyi-One.ttf"
+ # font "public/fonts/padauk.ttf"
+ font_size 9
+ text "#{order_item.dining}", :size => 15
+ stroke_horizontal_rule
+ move_down 5
+
+ #order_info
+ order_info(order_item.order_by,order_item.order_at, order_item.customer)
+
+ # order items
+ # order_items(order_item)
+ end
+
+ # Write Order Information to PDF
+ def order_info(order_by, order_at, customer)
+ y_position = cursor
+
+ bounding_box([0,y_position], :width => 200, :height => 15) do
+ text "OrderBy:#{order_by} Customer:#{customer} Date:#{order_at.strftime("%Y-%m-%d")}", :size => 7,:align => :left
+ end
+
+ stroke_horizontal_rule
+
+ move_down 20
+ end
+
+
+
+ end
+
+end
diff --git a/app/views/crm/customers/_form.html.erb b/app/views/crm/customers/_form.html.erb
index 533710a9..6de6d686 100644
--- a/app/views/crm/customers/_form.html.erb
+++ b/app/views/crm/customers/_form.html.erb
@@ -8,7 +8,6 @@
<%= f.input :contact_no %>
<%= f.input :email %>
<%= f.input :date_of_birth %>
- <%= f.input :membership_id, :collection => @membership %>
<%= f.input :membership_type %>
<%= f.input :membership_authentication_code %>
diff --git a/app/views/crm/customers/index.html.erb b/app/views/crm/customers/index.html.erb
index ce4c3826..167dccc4 100644
--- a/app/views/crm/customers/index.html.erb
+++ b/app/views/crm/customers/index.html.erb
@@ -1,20 +1,20 @@
-
+
@@ -22,6 +22,7 @@
+ | Select |
Name |
Company |
Contact no |
@@ -32,10 +33,16 @@
<% @crm_customers.each do |crm_customer| %>
+ |
+ |
<%= crm_customer.name %> |
<%= crm_customer.company %> |
<%= crm_customer.contact_no %> |
<%= crm_customer.email %> |
+
+ <%= link_to 'Destroy', crm_customer_path(crm_customer), method: :delete, data: { confirm: 'Are you sure?' } %>
+
+ |
<% end %>
@@ -46,31 +53,36 @@
-
- <%= simple_form_for @crm_customer, :url => crm_customers_path, :method => :post do |f| %>
-
+
+ <%= 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 :name, :class => "form-control col-md-6" %>
+ <%= f.input :name, :class => "form-control col-md-6 name" %>
+
- <%= f.input :company, :class => "form-control col-md-6" %>
+ <%= f.input :company, :class => "form-control col-md-6 company" %>
- <%= f.input :contact_no, :class => "form-control col-md-6" %>
+ <%= f.input :contact_no, :class => "form-control col-md-6 contact_no" %>
+
+
+
- <%= f.input :email, :class => "form-control col-md-6" %>
+ <%= f.input :email, :class => "form-control col-md-6 email" %>
-
-
+
+
+
+
diff --git a/app/views/crm/customers/show.html.erb b/app/views/crm/customers/show.html.erb
index 30341a00..da88e887 100644
--- a/app/views/crm/customers/show.html.erb
+++ b/app/views/crm/customers/show.html.erb
@@ -25,10 +25,6 @@
<%= @crm_customer.date_of_birth %>
-
- Membership:
- <%= @crm_customer.membership %>
-
Membership type:
diff --git a/app/views/crm/customers/show.json.jbuilder b/app/views/crm/customers/show.json.jbuilder
index 24d20eca..bd9680de 100644
--- a/app/views/crm/customers/show.json.jbuilder
+++ b/app/views/crm/customers/show.json.jbuilder
@@ -1 +1,2 @@
-json.partial! "crm_customers/crm_customer", crm_customer: @crm_customer
+json.extract! @crm_customer, :id, :name, :company, :contact_no, :email, :date_of_birth, :membership_id, :membership_type, :membership_authentication_code, :created_at, :updated_at
+json.url crm_customer_url(@crm_customer, format: :json)
diff --git a/app/views/crm/home/_booking.html.erb b/app/views/crm/home/_booking.html.erb
index f69f5fe0..afacb52e 100644
--- a/app/views/crm/home/_booking.html.erb
+++ b/app/views/crm/home/_booking.html.erb
@@ -4,9 +4,9 @@
<% @i = 0 %>
<% @booking.each do |booking| %>
- <% if booking.booking_status == "assign" %>
+ <% if booking.booking_status == "new" %>
-
+
<%= @i += 1 %> . <%= booking.dining_facility.name %>
- <%= booking.id %>
@@ -36,14 +36,20 @@
diff --git a/app/views/layouts/CRM.html.erb b/app/views/layouts/CRM.html.erb
index 4bd98526..41de0ca2 100644
--- a/app/views/layouts/CRM.html.erb
+++ b/app/views/layouts/CRM.html.erb
@@ -17,7 +17,7 @@
<%= render 'layouts/header_crm' %>
<% flash.each do |type, message| %>
-
+
<%= message %>
diff --git a/config/routes.rb b/config/routes.rb
index df652e6b..b5267114 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -86,12 +86,9 @@ Rails.application.routes.draw do
#--------- Customer Relationship Management ------------#
namespace :crm do
root "home#index" #queue number
- #customers
resources :customers
- #membership
- #bookings
post "update_booking" , to: "bookings#update_booking", as: "update_booking"
- #queue
+ get 'print/:id', to: "home#print"
end
#--------- Order Queue Station ------------#