727 lines
32 KiB
Plaintext
727 lines
32 KiB
Plaintext
<!-- <div class="container-fluid">
|
|
<div class="page-header">
|
|
<ul class="breadcrumb">
|
|
<li class="breadcrumb-item"><a href="<%= root_path %>">Home</a></li>
|
|
<li class="breadcrumb-item active">CRM</li> -->
|
|
<!-- <li class="breadcrumb-item"><a href="<%= root_path %>">Home</a></li> -->
|
|
<!-- <span class="float-right">
|
|
<%= link_to 'Back', dashboard_path %>
|
|
</span>
|
|
</ul>
|
|
</div> -->
|
|
<div id="loading_wrapper" style="display:none;">
|
|
<div id="loading"></div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-lg-12 col-md-12 col-sm-12">
|
|
<div class="card">
|
|
<div class="body">
|
|
<div class="row p-t-20 p-l-20">
|
|
<div class="col-lg-10 col-md-10 col-sm-10 col-xs-10">
|
|
<!-- <% path ="/origami/#{@sale_id}/customers" %>
|
|
<%= form_tag path, :id => "filter_form", :method => :get do %>
|
|
<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="hidden" name="type" id="type" value="">
|
|
<button type="submit" class="btn btn-primary btn-sm">Search</button>
|
|
</div>
|
|
<% end %>
|
|
<button id="member_acc_no" class="btn btn-success btn-sm"><span class="fa fa-credit-card"></span> Member Card</button> -->
|
|
<% path ="/origami/#{@sale_id}/#{@cashier_type}/customers/#{@page}" %>
|
|
<%= form_tag path, :id => "filter_form", :method => :get do %>
|
|
<div class="row clearfix">
|
|
<div class="col-lg-5 col-md-5 col-sm-5 col-xs-12">
|
|
|
|
<input type="text" name="filter" style="margin-right:10px" id="search" placeholder="Search" class="form-control input-sm col-md-12">
|
|
|
|
</div>
|
|
<!-- <div class="col-lg-2 col-md-2 col-sm-2 col-xs-12"> -->
|
|
<button type="submit" class="btn bg-blue waves-effect waves-effect" style="height: 30%;margin-right: 10px;">Search</button>
|
|
<!-- </div> -->
|
|
|
|
<button type="button" id="member_acc_no" class="btn bg-green btn-sm waves-effect" style="height: 30%;margin-right: 10px;">Member Card</button>
|
|
|
|
<button type="button" id="qr_code" class="btn bg-green btn-sm waves-effect" style="height: 30%;margin-right: 10px;"><%= t("views.btn.qr_code") %></button>
|
|
|
|
</div>
|
|
<% end %>
|
|
</div>
|
|
<div class="col-lg-2 col-md-2 col-sm-2 col-xs-2">
|
|
<button type="button" class="btn btn-md btn-block btn-default waves-effect" id='back'>
|
|
<i class="material-icons">reply</i>Back
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-lg-8 col-md-8 col-sm-8 col-xs-8">
|
|
<%= paginate @crm_customers %>
|
|
<div class="main-box-body clearfix" id="order-detail-slimscroll" style="">
|
|
<div class="table-responsive">
|
|
<table id="origami-crm-table" class="table table-striped" style="width:100%">
|
|
<thead>
|
|
<tr>
|
|
<th></th>
|
|
<th><%= t("views.right_panel.detail.sr_no") %></th>
|
|
<th><%= t :customer %> <%= t("views.right_panel.detail.type") %></th>
|
|
<th><%= t("views.right_panel.detail.name") %></th>
|
|
<th><%= t("views.right_panel.detail.card_no") %></th>
|
|
<th><%= t("views.right_panel.detail.membership_type") %></th>
|
|
<th style="width:20%"><%= t("views.right_panel.detail.contact_no") %></th>
|
|
<th style="width:20%"><%= t("views.right_panel.detail.email") %></th>
|
|
<!-- <th>Paypar No</th> -->
|
|
</tr>
|
|
</thead>
|
|
|
|
<tbody>
|
|
<% if @crm_customers.count > 0 %>
|
|
<% @i = 0 %>
|
|
<% @crm_customers.each do |crm_customer| %>
|
|
|
|
<tr class="customer_tr" data-ref="<%= crm_customer.customer_id %>">
|
|
<td>
|
|
<input type="radio" style="width:20px;" name="checkbox" class="checkbox_check" ></td>
|
|
<td>
|
|
<% if crm_customer.customer_id != "" && crm_customer.customer_id != "" %>
|
|
<%= @i += 1 %>
|
|
<%else%>
|
|
-
|
|
<% end %>
|
|
</td>
|
|
<td><%= crm_customer.customer_type rescue '-' %></td>
|
|
<td><%= crm_customer.name %></td>
|
|
<td><%= crm_customer.card_no rescue '-' %></td>
|
|
<td>
|
|
<% if !@membership_types.nil? %>
|
|
<% @membership_types.each do |member_type| %>
|
|
<% if member_type[1] == crm_customer.membership_type %>
|
|
<%= member_type[0] %>
|
|
<% end %>
|
|
<% end %>
|
|
<% end %>
|
|
</td>
|
|
<td style="width:20%;word-break: break-all;"><%= crm_customer.contact_no %></td>
|
|
<td style="width:20%;word-break: break-all;"><%= crm_customer.email %></td>
|
|
<!-- <td><%= crm_customer.paypar_account_no %></td> -->
|
|
|
|
</tr>
|
|
<% end %>
|
|
<%else%>
|
|
<tr><td colspan="5"><p style="text-align:center"><strong>There are no record for your search</strong></p></td></tr>
|
|
<% end %>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div> <!-- .end-of-col-md-8 -->
|
|
<div class="col-sm-4 col-md-4 col-lg-4">
|
|
<input type="hidden" id="sale_id" name="sale_id" value="<%= @sale_id %>" />
|
|
<input type="hidden" id="type" name="type" value="<%= @cashier_type %>" />
|
|
<input type="hidden" id="page" name="page" value="<%= @page %>" />
|
|
<%if !@dining_facility.nil?%>
|
|
<input type="hidden" id="table_id" name="table_id" value="<%= @dining_facility.id %>" />
|
|
<input type="hidden" id="type" name="type" value="<%= @dining_facility.type %>" />
|
|
<input type="hidden" id="table_type" name="table_type" value="<%= @dining_facility.type %>" />
|
|
<% elsif @cashier_type == 'quick_service' || @cashier_type == "food_court" %>
|
|
<input type="hidden" id="sale_id" name="sale_id" value="<%= @sale_id %>" />
|
|
<input type="hidden" id="type" name="type" value="<%= @cashier_type %>" />
|
|
<input type="hidden" id="page" name="page" value="<%= @page %>" />
|
|
<%else%>
|
|
<input type="hidden" id="table_id" name="table_id" value="" />
|
|
<input type="hidden" id="type" name="type" value="" />
|
|
<input type="hidden" id="table_type" name="table_type" value="" />
|
|
<%end%>
|
|
|
|
<section>
|
|
<div class="wizard">
|
|
<div class="wizard-inner">
|
|
<div class="active-line"></div>
|
|
<ul class="nav nav-tabs" role="tablist">
|
|
<li role="presentation" class="nav-item">
|
|
<div class="connecting-line border-right"></div>
|
|
<a href="#step1" class="nav-link active" data-toggle="tab" aria-controls="step1" role="tab" title="Step 1">
|
|
<span class="round-tab">
|
|
1
|
|
</span>
|
|
</a>
|
|
</li>
|
|
<li role="presentation" class="nav-item disabled">
|
|
<div class="connecting-line"></div>
|
|
<a href="#complete" class="nav-link disable" data-toggle="tab" aria-controls="complete" role="tab" title="Complete">
|
|
<span class="round-tab">
|
|
2
|
|
</span>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<%= simple_form_for @crm_customer,:url => crm_customers_path, :method => :post do |f| %>
|
|
<span class="patch_method"></span>
|
|
<%= f.error_notification %>
|
|
<%= f.hidden_field :id, :class => "form-control col-md-6 " %>
|
|
<div class="tab-content">
|
|
<div class="tab-pane active" role="tabpanel" id="step1">
|
|
<div class="form-group">
|
|
<div class="col-sm-12 col-md-12 col-lg-12">
|
|
<label><%= t("views.right_panel.detail.sr_no") %></label>
|
|
<div class="form-line disabled">
|
|
<input type="text" name="" value="<%=@count_customer%>" class="form-control" disabled="" >
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<div class="col-sm-12 col-md-12 col-lg-12">
|
|
<label for="customer[salutation]" class="control-label"> <%= t("views.right_panel.detail.salutation") %> :</label><br>
|
|
<label class="font-12 radio-inline">
|
|
<%= f.radio_button :salutation,"Mr", :class => "salutation mr with-gap radio-col-indigo", :value=>"Mr"%><%= t("views.right_panel.detail.mr") %>
|
|
</label>
|
|
<label class="font-12 radio-inline">
|
|
<%= f.radio_button :salutation,"Mrs", :class => "salutation mrs with-gap radio-col-indigo", :value=>"Mrs"%><%= t("views.right_panel.detail.miss") %>
|
|
</label>
|
|
<label class="font-12 radio-inline">
|
|
<%= f.radio_button :salutation,"Miss", :class => "salutation miss with-gap radio-col-indigo", :value=>"Miss"%><%= t("views.right_panel.detail.mrs") %>
|
|
</label>
|
|
<label class="font-12 radio-inline">
|
|
<%= f.radio_button :salutation,"Mdm", :class => "salutation mdm with-gap radio-col-indigo", :value=>"Mdm"%><%= t("views.right_panel.detail.mdm") %>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="form-group <%= (flash["errors"]) ? "has-error" : "" %>">
|
|
<div class="col-sm-12 col-md-12 col-lg-12">
|
|
<%= f.input :name, :class => "form-control name", :required => true %>
|
|
|
|
<% flash.each do |name, msg| %>
|
|
<% str="[\"#{msg['name']}\"]"
|
|
str.gsub!('["', '')
|
|
str.gsub!('"]', '') %>
|
|
<span class="help-block"><%= str %></span>
|
|
<% end -%>
|
|
</div>
|
|
</div>
|
|
<div class="form-group <%= (flash["errors"]) ? "error" : "" %>">
|
|
<div class="col-sm-12 col-md-12 col-lg-12">
|
|
<%= f.input :contact_no, :class => "form-control contact_no" ,:required => true%>
|
|
|
|
<% flash.each do |name, msg| %>
|
|
<% str="[\"#{msg['contact_no']}\"]"
|
|
str.gsub!('["', '')
|
|
str.gsub!('"]', '') %>
|
|
<lable class="error col-red m-t-10" style="margin-top:-6px"><%= str %></lable>
|
|
<% end %>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group <%= (flash["errors"]) ? "error" : "" %>">
|
|
<div class="col-sm-12 col-md-12 col-lg-12">
|
|
<%= f.input :email, :class => "form-control email" ,:required => true%>
|
|
|
|
<% flash.each do |name, msg| %>
|
|
<% str="[\"#{msg['email']}\"]"
|
|
str.gsub!('["', '')
|
|
str.gsub!('"]', '') %>
|
|
<lable class="error col-red m-t-10" style="margin-top:-6px"><%= str %></lable>
|
|
<% end %>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<div class="col-sm-12 col-md-12 col-lg-12" align="right">
|
|
<button type="button" class="btn btn-md bg-blue btn-info-full next-step">Next</button>
|
|
</div>
|
|
</div>
|
|
</div> <!-- .end-of-step1 -->
|
|
<div class="tab-pane" role="tabpanel" id="complete">
|
|
<!-- <h4>Step 2</h4> -->
|
|
<div class="form-group">
|
|
<div class="col-sm-12 col-md-12 col-lg-12">
|
|
<label><%= t("views.right_panel.detail.customer_photo") %></label>
|
|
<div class="panel padding-10">
|
|
<div class="menu-item-img">
|
|
<% if f.object.image_path? %>
|
|
<p><%= f.object.name %></p>
|
|
<%= image_tag f.object.image_path.url, :class => "img-thumbnail" %>
|
|
<% else %>
|
|
<%= image_tag "/image/menu_images/default.png", :class => "img-thumbnail" %>
|
|
<% end %>
|
|
</div>
|
|
<%= f.file_field :image_path, :class => "img-thumbnail" %>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<div class="col-sm-12 col-md-12 col-lg-12">
|
|
<label for="customer[gender]" class="control-label"><%= t("views.right_panel.detail.gender") %> :</label><br>
|
|
<label class="font-12 radio-inline">
|
|
<%= f.radio_button :gender,"Male", :class => "gender male", :value=>"Male"%><%= t("views.right_panel.detail.male") %></label>
|
|
<label class="font-12 radio-inline">
|
|
<%= f.radio_button :gender,"Female", :class => "gender female", :value=>"Female"%><%= t("views.right_panel.detail.female") %></label>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<div class="col-sm-12 col-md-12 col-lg-12">
|
|
<%= f.input :nrc_no,:label => "NRC No", :class => "form-control nrc_no" %>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<div class="col-sm-12 col-md-12 col-lg-12">
|
|
<%= f.input :company, :class => "form-control col-md-6 company"%>
|
|
|
|
<% flash.each do |name, msg| %>
|
|
<% str="[\"#{msg['company']}\"]"
|
|
str.gsub!('["', '')
|
|
str.gsub!('"]', '') %>
|
|
<lable class="error col-red m-t-10" style="margin-top:-6px"><%= str %></lable>
|
|
<% end -%>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<div class="col-sm-12 col-md-12 col-lg-12">
|
|
<label class="control-label"><%= t("views.right_panel.detail.date_of_birth") %></label>
|
|
<%= f.text_field :date_of_birth, :value=>"01-01-1990",:class=>"datepicker form-control col-md-12"%>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<div class="col-sm-12 col-md-12 col-lg-12">
|
|
<%= f.input :address, :class => "form-control address" %>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<div class="col-sm-12 col-md-12 col-lg-12">
|
|
<label><%= t("views.right_panel.detail.select_customer_type") %></label>
|
|
<select class="form-control col-md-12 selectpicker show-tick" id="customer_type" name="customer[customer_type]" style="height: " >
|
|
<% Lookup.where("lookup_type = ?", "customer_type" ).each do |ct| %>
|
|
<option value="<%= ct.value %>">
|
|
<%= ct.name %></option>
|
|
<%end %>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<div class="col-sm-12 col-md-12 col-lg-12">
|
|
<%= f.input :tax_profiles, :collection => @taxes, :input_html => { :multiple => true }, :class => "form-control tax_profiles" %>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group <%= (flash["errors"]) ? "error" : "" %>">
|
|
<div class="col-sm-12 col-md-12 col-lg-12">
|
|
<%= f.input :card_no, :class => "form-control card_no"%>
|
|
<% flash.each do |name, msg| %>
|
|
<% str="[\"#{msg['card_no']}\"]"
|
|
str.gsub!('["', '')
|
|
str.gsub!('"]', '') %>
|
|
<lable class="error col-red m-t-10" style="margin-top:-6px"><%= str %></lable>
|
|
<% end %>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<div class="col-sm-12 col-md-12 col-lg-12">
|
|
<label class="control-label"><%= t("views.right_panel.detail.paypar_account_no") %>:</label>
|
|
<div class="-group">
|
|
<input type="text" class="form-control" id="paypar_account_no" name="customer[paypar_account_no]" readonly/>
|
|
<div class="input-group-addon"><span class="fa fa-credit-card"></span></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<div class="col-sm-12 col-md-12 col-lg-12">
|
|
<label class="control-label"><%= t("views.right_panel.detail.select_membership_group") %></label>
|
|
<select class="form-control col-md-12 selectpicker show-tick" name="member_group_id" style="height: " >
|
|
<option value=""><%= t("views.right_panel.detail.select_membership_group") %></option>
|
|
<% Lookup.where("lookup_type = ?", "member_group_type" ).each do |member| %>
|
|
<option value="<%= member.value %>">
|
|
<%= member.name %></option>
|
|
<%end %>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<div class="col-sm-12 col-md-12 col-lg-12" align="right">
|
|
<button type="button" class="btn btn-md bg-blue prev-step">Prev</button>
|
|
<%= f.submit t("views.btn.submit"),:class => 'btn bg-blue btn-md waves-effect', :id => 'submit_customer' %>
|
|
<!-- <%= f.button :submit, "Update",:class => 'btn bg-blue btn-block', :disabled =>'', :id => 'update_customer' %> -->
|
|
</div>
|
|
</div>
|
|
</div><!-- .end-of-step2 -->
|
|
</div> <!-- .end-of-tab-content -->
|
|
<% end %>
|
|
</div> <!-- .end-of-wizard -->
|
|
</section> <!-- .end-of-section -->
|
|
</div><!-- .end-of-col-md-4 -->
|
|
</div> <!-- .end-of-row -->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="sxModal">
|
|
<div id="sxModal-Content"><h3>Card Tap</h3></div>
|
|
<div class="m-r-20" align="right">
|
|
<button type="button" class="btn btn-lg btn-link bg-red waves-effect btn_cancel">Cancel</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
var cashier_type = "<%= @cashier_type %>";
|
|
var page = "<%= @page %>";
|
|
var paypar_account_no = [];
|
|
$(function() {
|
|
setHeaderBreadCrumb(_CUSTOMERS_);
|
|
|
|
paypar_account_no = JSON.parse('<%= @paypar_accountno.to_json.html_safe %>', function (key, value) {
|
|
var type;
|
|
if (value && typeof value === 'object') {
|
|
type = value.type;
|
|
if (typeof type === 'string' && typeof window[type] === 'function') {
|
|
return new(window[type])(value);
|
|
}
|
|
}
|
|
return value;
|
|
});
|
|
|
|
/* check webview loaded*/
|
|
var webview = <%= @webview %>;
|
|
showHideNavbar(webview);
|
|
|
|
localStorage.setItem("member_card",false);
|
|
/*$('.datepicker').datepicker({
|
|
setDate: '12-12-1999',
|
|
format : 'dd-mm-yyyy',
|
|
autoclose: true
|
|
});
|
|
$('.datepicker').attr('ReadOnly','true');
|
|
$('.datepicker').css('cursor','pointer');*/
|
|
|
|
// Read Card Reader
|
|
$("#paypar_account_no").on('focus', function(e){
|
|
if($(this).val() == ''){
|
|
$("#sxModal").show();
|
|
getCardNo();
|
|
}
|
|
});
|
|
|
|
// Read Card Reader
|
|
$("#member_acc_no").on('click', function(e){
|
|
localStorage.setItem("member_card",true);
|
|
$("#sxModal").show();
|
|
getCardNo();
|
|
});
|
|
|
|
/*new customer UI func:*/
|
|
//Initialize tooltips
|
|
$('.nav-tabs > li a[title]').tooltip();
|
|
|
|
//Wizard
|
|
$('a[data-toggle="tab"]').on('show.bs.tab', function (e) {
|
|
var $target = $(e.target);
|
|
|
|
if ($target.parent().hasClass('disabled')) {
|
|
return false;
|
|
}
|
|
});
|
|
|
|
$(".next-step").click(function (e) {
|
|
var $active = $('.wizard .nav-tabs li a.active');
|
|
$active.parent().next().removeClass('disabled');
|
|
nextTab($active);
|
|
$('.wizard .nav-tabs li.active .connecting-line').css({"border-bottom-left-radius": 0, "border-top-left-radius": 0});
|
|
});
|
|
|
|
$(".prev-step").click(function (e) {
|
|
|
|
var $active = $('.wizard .nav-tabs li a.active');
|
|
prevTab($active);
|
|
|
|
});
|
|
/*new customer UI func:*/
|
|
});
|
|
|
|
/*customer UI tab btn*/
|
|
function nextTab(elem) {
|
|
$(elem).parent().next().find('a[data-toggle="tab"]').click();
|
|
}
|
|
function prevTab(elem) {
|
|
$(elem).parent().prev().find('a[data-toggle="tab"]').click();
|
|
}
|
|
/*customer UI tab btn*/
|
|
|
|
|
|
// Read NFC card no from java
|
|
function getCardNo(){
|
|
if (typeof code2lab != 'undefined') {
|
|
code2lab.readNFC();
|
|
}
|
|
}
|
|
|
|
// get CardNo from Java
|
|
function setCardNo(cardNo){
|
|
check_member = localStorage.getItem("member_card");
|
|
if(cardNo.length == 16){
|
|
if(check_member == "true"){
|
|
$("#paypar_account_no").val(cardNo);
|
|
$("#search").val(cardNo);
|
|
$("#type").val("card");
|
|
get_customer();
|
|
}else{
|
|
if($.inArray(cardNo, paypar_account_no) !== -1){
|
|
swal({
|
|
title: 'Oops',
|
|
text: 'CardNo already registered, Please try another card!',
|
|
type: 'error',
|
|
html: true,
|
|
closeOnConfirm: false,
|
|
closeOnCancel: false,
|
|
allowOutsideClick: false
|
|
}, function () {
|
|
window.location.reload();
|
|
});
|
|
}else{
|
|
$("#paypar_account_no").val(cardNo);
|
|
$("#search").val(cardNo);
|
|
$("#type").val("card");
|
|
}
|
|
}
|
|
$("#sxModal").hide();
|
|
}
|
|
$("#sxModal").hide();
|
|
}
|
|
|
|
function get_customer() {
|
|
var cardNo = "";
|
|
var customer_id = '';
|
|
var customer_name = '';
|
|
var sale_id = $("#sale_id").val() || 0;
|
|
var customer_mamber_card_no = $("#search").val();
|
|
|
|
if(sale_id != 0 && customer_mamber_card_no != 0){
|
|
$('#loading_wrapper').show();
|
|
$.ajax({
|
|
type: "POST",
|
|
url: "/origami/"+sale_id+"/get_customer" ,
|
|
data: { filter : customer_mamber_card_no ,type :"card"},
|
|
dataType: "json",
|
|
success: function(data) {
|
|
if (data[0].customer_id == false) {
|
|
swal("Alert!", data[0].message, "error");
|
|
}else{
|
|
customer_id = data[0].customer_id;
|
|
customer_name = data[0].name;
|
|
update_sale(customer_id, customer_name,sale_id);
|
|
}
|
|
$('#loading_wrapper').hide();
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
// QR Code Reader
|
|
$("#qr_code").on('click', function(e){
|
|
var code = "";
|
|
var customer_id = '';
|
|
var customer_name = '';
|
|
var sale_id = $("#sale_id").val() || 0;
|
|
var customer_mamber_card_no = 0;
|
|
|
|
setTimeout(function(){
|
|
code=getQRCode();
|
|
setQRCode(code);
|
|
}, 100);
|
|
|
|
customer_mamber_card_no = $("#search").val();
|
|
|
|
if(sale_id != 0 && customer_mamber_card_no != 0){
|
|
$.ajax({
|
|
type: "POST",
|
|
url: "/origami/"+sale_id+"/get_customer" ,
|
|
data: { filter : customer_mamber_card_no ,type :"card"},
|
|
dataType: "json",
|
|
success: function(data) {
|
|
if (data[0].customer_id == false) {
|
|
swal("Alert!", data[0].message, "error");
|
|
// $.alert({
|
|
// 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);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
// Read qrcode from java
|
|
function getQRCode(){
|
|
return code2lab.readQRCode();
|
|
}
|
|
|
|
// get QRCode from Java
|
|
function setQRCode(code){
|
|
$("#qr_code").text(code);
|
|
$("#search").val(code);
|
|
}
|
|
|
|
$(document).on('click',".customer_tr",function(){
|
|
$(this).closest('tr').find('.checkbox_check').prop( "checked", true );
|
|
var sale_id = $("#sale_id").val() || 0;
|
|
var customer_id = $(this).attr('data-ref');
|
|
var customer_name = $(this).children("td:nth-child(3)").text();
|
|
|
|
if(sale_id != 0){
|
|
update_sale(customer_id, customer_name,sale_id);
|
|
}else{
|
|
var url = "customers/"+customer_id;
|
|
}
|
|
|
|
// Need To Clean?
|
|
$.ajax({
|
|
type: "GET",
|
|
url: url,
|
|
data: {},
|
|
dataType: "json",
|
|
success: function(data) {
|
|
var taxes = JSON.stringify(data.tax_profiles);
|
|
var parse_taxes = JSON.parse(taxes);
|
|
$.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);
|
|
$('#customer_contact_no').val(data.contact_no);
|
|
$('#customer_email').val(data.email);
|
|
$('#customer_date_of_birth').val(data.date_of_birth);
|
|
$('#customer_membership_type').val(data.membership_type);
|
|
$('.select > option[value="'+data.membership_id+'"]').attr('selected','selected');
|
|
$('.membership_authentication_code').val(data.membership_authentication_code);
|
|
$('#customer_card_no').val(data.card_no);
|
|
$('#customer_type').val(data.customer_type);
|
|
$('#customer_salutation').val(data.salutation);
|
|
$('#customer_nrc_no').val(data.nrc_no);
|
|
$('#paypar_account_no').val(data.paypar_account_no);
|
|
|
|
if (data.gender == 'Male') {
|
|
$('.male').prop( "checked", true )
|
|
}else{
|
|
$('.female').prop( "checked", true )
|
|
}
|
|
|
|
if (data.salutation == 'Mr') {
|
|
$('.mr').prop( "checked", true )
|
|
} else if(data.salutation == 'Miss') {
|
|
$('.miss').prop( "checked", true )
|
|
}else if(data.salutation == 'Mrs'){
|
|
$('.mrs').prop( "checked", true )
|
|
}else{
|
|
$('.mdm').prop( "checked", true )
|
|
}
|
|
|
|
$('#update_customer').removeAttr('disabled').val('');
|
|
$('#update_customer').attr('value', 'Update');
|
|
// $('#submit_customer').attr('disabled','disabled');
|
|
|
|
$("#new_customer").attr('class', 'simple_form edit_customer');
|
|
var id = "edit_customer_"+$('#customer_id').val();
|
|
$("#new_customer").attr('id', id);
|
|
$(".edit_customer").attr('action', '/crm/customers/' + $('#customer_id').val());
|
|
$(".edit_customer").attr('action', '/crm/customers/' + $('#customer_id').val());
|
|
$(".patch_method").append('<input type="hidden" name="_method" value="patch">');
|
|
//$(".edit_customer").attr('method', 'PATCH');
|
|
}
|
|
});
|
|
})
|
|
|
|
function update_sale(customer_id, customer_name, sale_id) {
|
|
var customer="";
|
|
if(customer_name != ""){
|
|
customer = '(' + customer_name + ')';
|
|
}
|
|
|
|
swal({
|
|
title: "Confirmation !",
|
|
text: 'Are you sure to assign this customer' + customer + '!',
|
|
showCancelButton: true,
|
|
confirmButtonColor: "green",
|
|
confirmButtonText: "Yes!",
|
|
cancelButtonClass: 'btn btn-danger',
|
|
closeOnConfirm: true,
|
|
}, function () {
|
|
$( "#loading_wrapper").show();
|
|
$.ajax({
|
|
type: "POST",
|
|
url: "/origami/"+sale_id+"/"+cashier_type+"/customers/update_sale" ,
|
|
data: {customer_id:customer_id,sale_id:sale_id},
|
|
dataType: "json",
|
|
success: function(data) {
|
|
if(data.status == true)
|
|
{
|
|
var id = $("#table_id").val();
|
|
var type = $("#table_type").val();
|
|
var booking_id = "";
|
|
<% if !@booking_order.nil? %>
|
|
booking_id = "<%= @booking_order.booking_id %>";
|
|
<% end %>
|
|
if (cashier_type == "quick_service" || cashier_type == "food_court") {
|
|
if(booking_id!= "" && page == "pending"){
|
|
window.location.href = '/origami/'+cashier_type+'/pending_order/'+booking_id;
|
|
}else{
|
|
window.location.href = '/origami/sale/'+sale_id+'/'+cashier_type+'/payment/';
|
|
}
|
|
}else{
|
|
if(page == "payment"){
|
|
window.location.href = '/origami/sale/'+sale_id+'/'+cashier_type+'/payment/';
|
|
}else{
|
|
if (type=="Table") {
|
|
window.location.href = '/origami/table/'+id
|
|
}else{
|
|
window.location.href = '/origami/room/'+id
|
|
}
|
|
}
|
|
}
|
|
}else{
|
|
swal("Alert!", "Record not found!", "error");
|
|
location.reload();
|
|
}
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
$('#back').on('click',function(){
|
|
var id = $("#table_id").val();
|
|
var type = $("#table_type").val();
|
|
var sale_id = $("#sale_id").val();
|
|
if (cashier_type == "quick_service" || cashier_type == "food_court") {
|
|
window.location.href = '/origami/sale/'+sale_id+'/'+cashier_type+'/payment/';
|
|
}else{
|
|
if(page == "pending"){
|
|
window.location.href = '/origami/sale/'+sale_id+'/'+cashier_type+'/pending/';
|
|
}
|
|
else if(page == "payment"){
|
|
window.location.href = '/origami/sale/'+sale_id+'/'+cashier_type+'/payment/';
|
|
}else{
|
|
if (type=="Table") {
|
|
window.location.href = '/origami/table/'+id;
|
|
}else{
|
|
window.location.href = '/origami/room/'+id;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
$("#sxModal .btn_cancel").on('click',function(){
|
|
$("#sxModal").hide();
|
|
});
|
|
|
|
</script>
|