merge with crm

This commit is contained in:
Yan
2017-06-13 15:19:01 +06:30
33 changed files with 286 additions and 364 deletions

View File

@@ -45,6 +45,7 @@ gem 'to_xls-rails'
# Use jquery as the JavaScript library
gem 'jquery-rails'
gem 'jquery-ui-rails'
# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
gem 'turbolinks', '~> 5'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
@@ -95,6 +96,6 @@ gem 'httparty', '~> 0.15.5'
# gem 'momentjs-rails', '>= 2.9.0'
# gem 'bootstrap-datepicker-rails'
# gem 'momentjs-rails', '>= 2.9.0'
# gem 'bootstrap3-datetimepicker-rails', '~> 4.17.47'
# # gem 'momentjs-rails', '>= 2.9.0'
# gem 'bootstrap3-datetimepicker-rails'z
gem 'bootstrap-datepicker-rails'

View File

@@ -80,13 +80,15 @@ GEM
httparty (0.15.5)
multi_xml (>= 0.5.2)
i18n (0.8.4)
jbuilder (2.6.4)
activesupport (>= 3.0.0)
jbuilder (2.7.0)
activesupport (>= 4.2.0)
multi_json (>= 1.2)
jquery-rails (4.3.1)
rails-dom-testing (>= 1, < 3)
railties (>= 4.2.0)
thor (>= 0.14, < 2.0)
jquery-ui-rails (6.0.1)
railties (>= 3.2.16)
kaminari (0.16.3)
actionpack (>= 3.0.0)
activesupport (>= 3.0.0)
@@ -95,20 +97,20 @@ GEM
rb-inotify (~> 0.9, >= 0.9.7)
loofah (2.0.3)
nokogiri (>= 1.5.9)
mail (2.6.5)
mail (2.6.6)
mime-types (>= 1.16, < 4)
method_source (0.8.2)
mime-types (3.1)
mime-types-data (~> 3.2015)
mime-types-data (3.2016.0521)
mini_portile2 (2.1.0)
mini_portile2 (2.2.0)
minitest (5.10.2)
multi_json (1.12.1)
multi_xml (0.6.0)
mysql2 (0.4.6)
nio4r (2.1.0)
nokogiri (1.7.2)
mini_portile2 (~> 2.1.0)
nokogiri (1.8.0)
mini_portile2 (~> 2.2.0)
pdf-core (0.7.0)
pg (0.20.0)
prawn (2.2.2)
@@ -180,7 +182,7 @@ GEM
activesupport (>= 3.2.1)
shoulda-matchers (3.1.1)
activesupport (>= 4.0.0)
sidekiq (5.0.0)
sidekiq (5.0.2)
concurrent-ruby (~> 1.0)
connection_pool (~> 2.2, >= 2.2.0)
rack-protection (>= 1.5.0)
@@ -244,6 +246,7 @@ DEPENDENCIES
httparty (~> 0.15.5)
jbuilder (~> 2.5)
jquery-rails
jquery-ui-rails
kaminari (~> 0.16.3)
listen (~> 3.0.5)
mysql2 (>= 0.3.18, < 0.5)

View File

@@ -14,4 +14,6 @@
//= require bootstrap
//= require jquery_ujs
//= require turbolinks
//= require cable
//= require cable
//= require jquery-ui
//= require bootstrap-datepicker

View File

@@ -17,9 +17,6 @@
//= require turbolinks
//= require cable
//= require settings/processing_items
//= require bootstrap-datepicker/core
//= require bootstrap-datepicker/locales/bootstrap-datepicker.es
$(document).on("focus", "[data-behaviour~='datepicker']", function(e){
$(this).datepicker({"format": "yyyy-M-dd", "weekStart": 1, "autoclose": true});

View File

@@ -15,6 +15,8 @@
//= require jquery_ujs
//= require turbolinks
//= require cable
//= require jquery-ui
//= require bootstrap-datepicker
$(document).ready(function(){
// Enable/Disable Button
@@ -209,13 +211,7 @@ $(document).ready(function(){
if(data["response_data"]["data"][i]["accountable_type"] == "RebateAccount"){
var balance = data["response_data"]["data"][i]["balance"];
console.log(balance);
if (balance == "0.0") {
$("#customer_amount").text('0.0');
}else{
$("#customer_amount").text(balance);
}
}
});
}

View File

@@ -0,0 +1,4 @@
$(document).on("focus", "[data-behaviour~='datepicker']", function(e){
$(this).datepicker({"format": "yyyy-M-dd", "weekStart": 1, "autoclose": true});
$('.dropdown-toggle').dropdown();
});

View File

@@ -1,6 +1,8 @@
@import "bootstrap";
@import "font-awesome";
@import "theme";
@import "jquery-ui";
@import "bootstrap-datepicker3";
/* Show it is fixed to the top */
// body {

View File

View File

@@ -2,7 +2,7 @@
@import "bootstrap";
@import "font-awesome";
@import "theme";
@import 'bootstrap-datepicker';
/* Show it is fixed to the top */
// body {

View File

@@ -1,6 +1,8 @@
@import "bootstrap";
@import "font-awesome";
@import "theme";
@import "jquery-ui";
@import "bootstrap-datepicker3";
/* Show it is fixed to the top */
// body {
@@ -33,6 +35,10 @@
// cursor:pointer;
}
.del_cashier_number{
opacity:0.6,
}
.pay{
width: 98%;
height:211px;

View File

@@ -5,18 +5,18 @@ class Crm::CustomersController < BaseCrmController
# GET /crm/customers.json
def index
filter = params[:filter]
if filter.nil?
@crm_customers = Customer.order("customer_id").page(params[:page])
#@products = Product.order("name").page(params[:page]).per(5)
else
@crm_customers = Customer.where("name LIKE ?", "%#{filter}%").order("name").page(params[:page])
end
@crm_customers = Customer.where("name LIKE ?", "%#{filter}%").order("name").page(params[:page]) end
#@crm_customers = Customer.all
@crm_customer = Customer.new
if @crm_customer.valid?
@crm_customer.errors.messages
end
if flash["errors"]
@crm_customer.valid?
end
# @membership = Customer.get_member_group
# if @membership["status"] == true
# @member_group = @membership["data"]
@@ -31,13 +31,19 @@ class Crm::CustomersController < BaseCrmController
# GET /crm/customers/1.json
def show
@orders = Order.where("customer_id=?", params[:id])
@sales = Sale.where("customer_id=?", params[:id])
if @orders
@order_items = []
@orders.each do |bo|
@order_items = @order_items + bo.order_items
@orders.each do |order|
@order_items = @order_items + order.order_items
end
end
if @sales
@sale_items = []
@sales.each do |sale|
@sale_items = @sale_items + sale.sale_items
end
end
end
@@ -57,8 +63,9 @@ class Crm::CustomersController < BaseCrmController
def create
@crm_customers = Customer.new(customer_params)
respond_to do |format|
puts @crm_customers.errors.to_json
if @crm_customers.save
name = customer_params[:name]
phone = customer_params[:contact_no]
@@ -72,9 +79,7 @@ class Crm::CustomersController < BaseCrmController
url = membership.gateway_url.to_s + memberaction.gateway_url.to_s
response = HTTParty.post(url, :body => { name: name,phone: phone,email: email,
dob: dob,
member_group_id: member_group_id,merchant_uid:merchant_uid}.to_json,
:headers => {
'Content-Type' => 'application/json',
@@ -83,18 +88,18 @@ class Crm::CustomersController < BaseCrmController
)
if response["status"] == true
customer = Customer.find(@crm_customers.customer_id)
status = customer.update_attributes(membership_id: response["customer_datas"]["id"])
if params[:sale_id]
format.html { redirect_to '/origami/'+params[:sale_id]+'/add_customer', notice: 'Customer was successfully created.' }
else
format.html { redirect_to crm_customers_path, notice: 'Customer was successfully created'}
end
end
# format.json { render :index, status: :created, location: @crm_customers }
else
@crm_customers.destroy
if params[:sale_id]
format.html { redirect_to '/origami/'+params[:sale_id]+'/add_customer'}
@@ -105,8 +110,11 @@ class Crm::CustomersController < BaseCrmController
else
if params[:sale_id]
format.html { redirect_to '/origami/'+params[:sale_id]+'/add_customer'}
flash[:errors] = @crm_customers.errors
format.html { redirect_to '/origami/'+params[:sale_id]+'/add_customer'}
format.json { render json: @crm_customers.errors, status: :unprocessable_entity }
else
flash[:errors] = @crm_customers.errors
format.html { redirect_to crm_customers_path}
format.json { render json: @crm_customers.errors, status: :unprocessable_entity }
end
@@ -133,7 +141,7 @@ end
memberaction = MembershipAction.find_by_membership_type("update_membership_customer")
merchant_uid = memberaction.merchant_account_id.to_s
url = membership.gateway_url.to_s + memberaction.gateway_url.to_s
response = HTTParty.post(url, :body => { name: name,phone: phone,email: email,
dob: dob,
id: id,member_group_id:member_group_id,merchant_uid:merchant_uid}.to_json,
@@ -148,7 +156,8 @@ end
else
format.html { render :index }
flash[:errors] = @crm_customers.errors
format.html { redirect_to crm_customers_path}
format.json { render json: @crm_customer.errors, status: :unprocessable_entity }
end

View File

@@ -43,18 +43,18 @@ class Crm::HomeController < BaseCrmController
end
def update_sale_by_customer
# def update_sale_by_customer
sale = Sale.find(params[:sale_id])
status = sale.update_attributes(customer_id: params[:customer_id])
# sale = Sale.find(params[:sale_id])
# status = sale.update_attributes(customer_id: params[:customer_id])
if status == true
render json: JSON.generate({:status => true})
else
render json: JSON.generate({:status => false, :error_message => "Record not found"})
# if status == true
# render json: JSON.generate({:status => true})
# else
# render json: JSON.generate({:status => false, :error_message => "Record not found"})
end
end
# end
# end
end

View File

@@ -24,12 +24,10 @@ class Origami::CustomersController < BaseOrigamiController
end
# @crm_customers = Kaminari.paginate_array(@crm_customers).page(params[:page]).per(2)
@crm_customer = Customer.new
# @membership = Customer.get_member_group
# if @membership["status"] == true
# @member_group = @membership["data"]
# end
# puts "Errrrrrrrrrrrrrrrrr"
# puts @crm_customer.valid?
if flash["errors"]
@crm_customer.valid?
end
respond_to do |format|

View File

@@ -20,6 +20,31 @@ class Origami::PaymentsController < BaseOrigamiController
@cash = 0.0
@other = 0.0
@sale_data = Sale.find_by_sale_id(sale_id)
#get customer amount
@customer = Customer.find(@sale_data.customer_id)
membership = MembershipSetting.find_by_membership_type("paypar_url")
memberaction = MembershipAction.find_by_membership_type("get_all_member_account")
merchant_uid = memberaction.merchant_account_id.to_s
url = membership.gateway_url.to_s + memberaction.gateway_url.to_s
response = HTTParty.get(url, :body => { membership_id: @customer.membership_id,merchant_uid:merchant_uid}.to_json,
:headers => {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
)
@balance = 0.00
response["data"].each do |res|
if res["accountable_type"] == "RebateAccount"
@balance = res["balance"]
end
end
#end customer amount
@sale_data.sale_payments.each do |spay|
if spay.payment_method == "cash"
@cash = spay.payment_amount

View File

@@ -4,6 +4,7 @@ class Origami::RedeemPaymentsController < BaseOrigamiController
payment_method = params[:payment_method]
@membership_rebate_balance=0
sale_data = Sale.find_by_sale_id(@sale_id)
@food_prices, @beverage_prices = SaleItem.calculate_food_beverage(sale_data.sale_items)
if sale_data
if sale_data.customer_id
customer_data= Customer.find_by_customer_id(sale_data.customer_id)
@@ -28,8 +29,8 @@ class Origami::RedeemPaymentsController < BaseOrigamiController
else
@out = false,0
end
else
@out = false, 0
end

View File

@@ -5,23 +5,13 @@ class Settings::SalesController < ApplicationController
receipt_no = params[:receipt_no]
today = Date.today
if receipt_no.nil? && search_date.nil?
@sales = Sale.where("NOT sale_status = 'void'" ).order("sale_id desc").limit(500)
if receipt_no.nil?
@sales = Sale.order("sale_id").page(params[:page])
#@products = Product.order("name").page(params[:page]).per(5)
else
if !search_date.blank? && receipt_no.blank?
sale = Sale.where("DATE_FORMAT(receipt_date,'%Y-%b-%d') = ?", search_date).order("sale_id desc").limit(500).page(params[:page])
elsif !search_date.blank? && !receipt_no.blank?
sale = Sale.where("receipt_no LIKE ? or DATE_FORMAT(receipt_date,'%Y-%b-%d') = ?", "%#{receipt_no}%", search_date).order("sale_id desc").limit(500).page(params[:page])
else
sale = Sale.where("receipt_no LIKE ?", receipt_no).order("sale_id desc").limit(500).page(params[:page])
end
if sale.count > 0
@sales = sale
else
@sales = Sale.where("NOT sale_status = 'void'").order("sale_id desc").limit(500)
end
@sales = Sale.where("receipt_no LIKE ?", "%#{receipt_no}%").order("receipt_no").page(params[:page])
end
@sales = Kaminari.paginate_array(@sales).page(params[:page]).per(50)
#@sales = Kaminari.paginate_array(@sales).page(params[:page]).per(50)
respond_to do |format|
format.html # index.html.erb
format.json { render json: @sales }

View File

@@ -243,7 +243,7 @@ class Order < ApplicationRecord
.joins("left join orders on orders.order_id = booking_orders.order_id")
.joins("left join sales on sales.sale_id = bookings.sale_id")
.where("sales.sale_status='completed'")
.group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.status,orders.order_id")
.group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.status,orders.order_id")
end
#Origami: Cashier : to view order type Room

View File

@@ -258,6 +258,14 @@ class Sale < ApplicationRecord
end
end
def self.search(search)
if search
find(:all, :conditions => ['receipt_no LIKE ?', "%#{search}%"])
else
find(:all)
end
end
private
def generate_custom_id

View File

@@ -84,17 +84,22 @@ class SalePayment < ApplicationRecord
url = paypar_url.to_s + membership_actions_data.gateway_url.to_s
merchant_uid = membership_actions_data.merchant_account_id
campaign_type_id = membership_actions_data.additional_parameter["campaign_type_id"]
response = HTTParty.post(url,
:body => { generic_customer_id:membership_id,redeem_amount:received_amount,receipet_no:sale_id,campaign_type_id:campaign_type_id,account_no:"",merchant_uid:merchant_uid}.to_json,
sale_data = Sale.find_by_sale_id(sale_id)
if sale_data
response = HTTParty.post(url,
:body => { generic_customer_id:membership_id,redeem_amount:received_amount,receipt_no:sale_data.receipt_no,campaign_type_id:campaign_type_id,account_no:"",merchant_uid:merchant_uid}.to_json,
:headers => {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
)
else
response = false;
end
else
response =false;
end
puts response.to_json
return response;
end
@@ -236,7 +241,7 @@ class SalePayment < ApplicationRecord
def rebat(sObj)
food_prices, beverage_prices = SaleItem.calculate_food_beverage(sObj.sale_items)
generic_customer_id = sObj.customer.membership_id
if generic_customer_id != nil || generic_customer_id != ""
if generic_customer_id != nil || generic_customer_id != "" || generic_customer_id != 0
paypar = sObj.sale_payments
payparcost = 0
paypar.each do |pp|
@@ -245,24 +250,22 @@ class SalePayment < ApplicationRecord
end
end
total_amount = food_prices - payparcost
puts "aaaa"
puts food_prices
puts payparcost
puts total_amount
receipt_no = sObj.receipt_no
membership = MembershipSetting.find_by_membership_type("paypar_url")
memberaction = MembershipAction.find_by_membership_type("rebate")
campaign_type_id = memberaction.additional_parameter["campaign_type_id"]
app_token = membership.auth_token.to_s
url = membership.gateway_url.to_s + memberaction.gateway_url.to_s
response = HTTParty.post(url, :body => { generic_customer_id:generic_customer_id ,total_amount: total_amount,campaign_type_id: campaign_type_id,
receipt_no: receipt_no}.to_json,
:headers => {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
})
if total_amount > 0
receipt_no = sObj.receipt_no
membership = MembershipSetting.find_by_membership_type("paypar_url")
memberaction = MembershipAction.find_by_membership_type("rebate")
campaign_type_id = memberaction.additional_parameter["campaign_type_id"]
app_token = membership.auth_token.to_s
url = membership.gateway_url.to_s + memberaction.gateway_url.to_s
response = HTTParty.post(url, :body => { generic_customer_id:generic_customer_id ,total_amount: total_amount,campaign_type_id: campaign_type_id,
receipt_no: receipt_no}.to_json,
:headers => {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
})
puts response.to_json
puts response.to_json
end
end
end

View File

@@ -66,45 +66,47 @@
</div>
</div>
<div class="col-lg-4">
<%= 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="form-group">
<%= f.input :name, :class => "form-control col-md-6 name" %>
</div>
<div class="form-group">
<%= f.input :company, :class => "form-control col-md-6 company" %>
</div>
<div class="form-group">
<%= f.input :contact_no, :class => "form-control col-md-6 contact_no" %>
</div>
<div class="form-group">
<%= f.input :email, :class => "form-control col-md-6 email" %>
<%= f.input :email, :class => "form-control col-md-6 email" %>
</div>
<div class="form-group">
<label>Date Of Birth</label>
<%= f.text_field :date_of_birth,:class => "form-control datepicker date_of_birth "%>
<label>Date Of Birth</label>
<%= f.text_field :date_of_birth,:class=>"form-control datepicker"%>
</div>
<div class="form-group">
<select class="selectpicker form-control col-md-12" name="member_group_id">
<div class="form-group">
<label>Select Member Group</label>
<select class="selectpicker form-control col-md-12" name="member_group_id" >
<option>Select Member Group</option>
<% Lookup.where("lookup_type = ?", "member_group_type" ).each do |member| %>
<option value="<%= member.value %>">
<%= member.name %></option>
<%end %>
</select>
</div>
</select>
</div>
<div class="form-group">
@@ -115,21 +117,17 @@
</div>
</div>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.2.0/jquery-confirm.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.2.0/jquery-confirm.min.js"></script>
<script type="text/javascript">
$(function () {
if (jQuery().datepicker) {
$('.datepicker').datepicker({
$(function() {
$('.datepicker').datepicker({
format : 'dd-mm-yyyy',
autoclose: true
});
$('.datepicker').attr('ReadOnly','true');
$('.datepicker').css('cursor','pointer');
}
});
});
$(document).on('click',".checkbox_check",function(){
if(this.checked){
@@ -158,7 +156,7 @@
$('#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');
// $('.selectpicker > option[value="'+data.membership_id+'"]').attr('selected','selected');
$('.membership_authentication_code').val(data.membership_authentication_code);
$('#update_customer').removeAttr('disabled').val('');

View File

@@ -41,7 +41,7 @@
</tbody>
</table>
<br>
<h3>Order Details</h3>
<h3>Order Items</h3>
<table class="table table-striped">
<thead>
@@ -70,6 +70,35 @@
<% end %>
</tbody>
</table>
<h3>Sale Items</h3>
<table class="table table-striped">
<thead>
<tr>
<th>Sale ID </th>
<th>Menu Item</th>
<th>QTY</th>
<th>Unit Price </th>
<th>Tax Price</th>
<th>Created At</th>
</tr>
</thead>
<tbody>
<% @sale_items.each do |sale_item| %>
<tr>
<td><%= sale_item.sale_id %></td>
<td><%= sale_item.product_name %></td>
<td><%= sale_item.qty %></td>
<td><%= sale_item.unit_price %></td>
<td><%= sale_item.taxable_price %></td>
<td><%= sale_item.created_at %></td>
</tr>
<% end %>
</tbody>
</table>
</div>
</div>

View File

@@ -113,9 +113,9 @@
<!-- Column Three--->
<div class="col-lg-1 col-md-1 col-sm-1">
<!-- OQS Buttons -->
<button id="crm_print" value="" disabled="disabled" data-type="assign" class="btn crm_print btn-primary btn-lg btn-block" >
<!-- <button id="crm_print" value="" disabled="disabled" data-type="assign" class="btn crm_print btn-primary btn-lg btn-block" >
Print
</button>
</button> -->
<!-- <button type="button" class="btn btn-primary btn-lg btn-block" disabled>Print <br/>Order<br/>Summary</button> -->
<button id="assign" value="" disabled="disabled" data-type="assign" class="btn assign btn-primary btn-lg btn-block">ASSIGN</button>
<button id="cancel" value="" disabled="disabled" data-type="cancel" class="btn btn-danger cancel btn-lg btn-block">CANCLE</button>

View File

@@ -19,7 +19,10 @@
<% flash.each do |type, message| %>
<div class="alert-danger fade in">
<button class="close" aria-hidden="true" data-dismiss="alert" type="button">×</button>
<%= message %>
<% if !flash["errors"]%>
<%=message%>
<% end %>
</div>
<% end %>
<%= yield %>

View File

@@ -18,6 +18,7 @@
<li><%= link_to "Cashier Terminals ", settings_cashier_terminals_path, :tabindex =>"-1" %></li>
<li><%= link_to "Employees", settings_employees_path, :tabindex =>"-1" %></li>
<li><%= link_to "Membership Setting",settings_membership_settings_path, :tabindex =>"-1" %></li>
<li><%= link_to "Membership Action",settings_membership_actions_path, :tabindex =>"-1" %></li>
<li><%= link_to "Payment Method", settings_payment_method_settings_path, :tabindex =>"-1" %></li>
<li><%= link_to "Tax Profile", settings_tax_profiles_path, :tabindex =>"-1" %></li>
<li><%= link_to "Print Setting", print_settings_path, :tabindex =>"-1" %></li>

View File

@@ -17,10 +17,13 @@
<%= render 'layouts/header_orgiami' %>
<div class="container-fluid">
<% flash.each do |type, message| %>
<div class="alert fade in">
<button class="close" aria-hidden="true" data-dismiss="alert" type="button">×</button>
<%= message %>
</div>
<% if !flash["errors"]%>
<div class="alert fade in">
<button class="close" aria-hidden="true" data-dismiss="alert" type="button">×</button>
<%=message%>
</div>
<% end %>
<% end %>
<%= yield %>

View File

@@ -38,6 +38,7 @@
<th>Company</th>
<th>Contact no</th>
<th>Email</th>
<th>Date of Birth</th>
</tr>
</thead>
@@ -47,11 +48,11 @@
<td>
<input type="radio" style="width:20px;" value="<%= crm_customer.customer_id %>" name="checkbox" class="checkbox_check" ></td>
<td><%= crm_customer.name %></td>
<td><%= crm_customer.company %></td>
<td><%= crm_customer.company rescue '-' %></td>
<td><%= crm_customer.contact_no %></td>
<td><%= crm_customer.email %></td>
<td>
<%= link_to 'Destroy', crm_customer_path(crm_customer), method: :delete, data: { confirm: 'Are you sure?' } %>
<%= crm_customer.date_of_birth rescue '-' %>
</td>
@@ -84,8 +85,6 @@
</div>
<div class="form-group">
<%= f.input :contact_no, :class => "form-control col-md-6 contact_no" %>
</div>
<div class="form-group">
@@ -93,11 +92,12 @@
</div>
<div class="form-group">
<label>Date Of Birth</label>
<%= f.text_field :date_of_birth,:class=>"form-control date_of_birth datepicker"%>
<label>Date Of Birth</label>
<%= f.text_field :date_of_birth,:class=>"form-control datepicker"%>
</div>
<div class="form-group">
<label>Select Member Group</label>
<select class="selectpicker form-control col-md-12" name="member_group_id">
<option>Select Member Group</option>
<% Lookup.where("lookup_type = ?", "member_group_type" ).each do |member| %>
@@ -105,21 +105,11 @@
<%= member.name %></option>
<%end %>
</select>
</div>
<!-- <div class="form-group">
<%= f.input :membership_type, :class => "form-control col-md-6 membership_type" %>
</div>
<div class="form-group">
<%= f.input :membership_authentication_code, :class => "form-control col-md-6 membership_authentication_code" %>
</div> -->
<div class="form-group">
<%= f.button :submit, "Submit",:class => 'btn btn-primary ', :id => 'submit_customer' %>
<%= f.button :submit, "Update",:class => 'btn btn-primary ', :disabled =>'', :id => 'update_customer' %>
<!-- <%= f.button :submit, "Update",:class => 'btn btn-primary ', :disabled =>'', :id => 'update_customer' %> -->
</div>
<%end%>
</div>
@@ -128,16 +118,13 @@
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.2.0/jquery-confirm.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.2.0/jquery-confirm.min.js"></script>
<script type="text/javascript">
$(function () {
if (jQuery().datepicker) {
$('.datepicker').datepicker({
format : 'dd-mm-yyyy',
autoclose: true
});
$('.datepicker').attr('ReadOnly','true');
$('.datepicker').css('cursor','pointer');
}
$(function() {
$('.datepicker').datepicker({
format : 'dd-mm-yyyy',
autoclose: true
});
$('.datepicker').attr('ReadOnly','true');
$('.datepicker').css('cursor','pointer');
});
$(document).on('click',".checkbox_check",function(){

View File

@@ -14,8 +14,8 @@
<td><strong>Sale Id</strong> </span><span id="sale_id"><% if @sale_data %><%=@sale_data.sale_id %><% end %></td>
</tr>
<tr>
<td><strong>Customer :</strong> Default Customer</td>
<td><strong>Points :</strong> 1234 </td>
<td><strong>Customer :</strong> <%= @sale_data.customer.name%></td>
<td><strong>Points :</strong> <%= @balance %> </td>
</tr>
</table>
</div>

View File

@@ -10,128 +10,4 @@
</div>
</div>
<div class="col-lg-7 col-md-7 col-sm-7">
<div class="rebate-form" hidden="true">
<div class="row">
<div class="form-group col-lg-12 col-md-12 col-sm-12">
<label class="col-lg-4 col-md-4 col-sm-4">Valid Amount</label>
<input type="text" name="valid_amount" id="valid_amount" class="form-control col-lg-7 col-md-7 col-sm-7" readonly="" value="<%= @membership_rebate_balance %>">
</div>
<hr>
</div>
<div class="row">
<div class="form-group col-lg-12 col-md-12 col-sm-12">
<label class="col-lg-4 col-md-4 col-sm-4">Used Amount</label>
<div id="used_amount" class="form-control col-lg-7 col-md-7 col-sm-7">0.0</div>
</div>
<hr>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="row">
<div class="col-md-7">
<div class="row">
<div class="col-md-3 cashier_number" data-value="1" data-type="num">1</div>
<div class="col-md-3 cashier_number" data-value="2" data-type="num">2</div>
<div class="col-md-3 cashier_number" data-value="3" data-type="num">3</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12 cashier_number long" data-value="1000" data-type="add">1000</div>
</div>
</div>
<div class="row">
<div class="col-md-7">
<div class="row">
<div class="col-md-3 cashier_number" data-value="4" data-type="num">4</div>
<div class="col-md-3 cashier_number" data-value="5" data-type="num">5</div>
<div class="col-md-3 cashier_number" data-value="6" data-type="num">6</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12 cashier_number long" data-value="5000" data-type="add">5000</div>
</div>
</div>
<div class="row">
<div class="col-md-7">
<div class="row">
<div class="col-md-3 cashier_number" data-value="7" data-type="num">7</div>
<div class="col-md-3 cashier_number" data-value="8" data-type="num">8</div>
<div class="col-md-3 cashier_number" data-value="9" data-type="num">9</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12 cashier_number long" data-value="10000" data-type="add">10000</div>
</div>
</div>
<div class="row">
<div class="col-md-7">
<div class="row">
<div class="col-md-3 cashier_number" data-value="0" data-type="num">0</div>
<div class="col-md-3 cashier_number" data-value="." data-type="num">.</div>
<div class="col-md-3 cashier_number" data-value="00" data-type="num">00</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12 cashier_number long" data-value="50000" data-type="add">50000</div>
</div>
</div>
<div class="row">
<div class="col-md-7">
<div class="row">
<div class="col-md-3 cashier_number"></div>
<div class="col-md-3 cashier_number">DEL</div>
<div class="col-md-3 cashier_number">CLR</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12 cashier_number long purple " id="pay">PAY</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
</div>
<script type="text/javascript">
$(document).on('click', '.cashier_number', function(event){
event.stopPropagation();
event.preventDefault();
if(event.handled !== true) {
var original_value;
original_value = $('#used_amount').text();
var input_value = $(this).attr("data-value");
var input_type = $(this).attr("data-type");
switch (input_type) {
case 'num':
if (original_value == "0.0"){
$('#used_amount').text(input_value);
}else{
$('#used_amount').append(input_value);
}
break;
case 'add':
var input_value = $(this).attr("data-value");
amount = parseInt(input_value) + parseInt(original_value);
$('#used_amount').html(amount);
break;
}
event.handled = true;
} else {
return false;
}
});
$("#redim").click(function(){
$('.rebate-form').removeAttr("hidden");
})
</script>
<div>

View File

@@ -5,7 +5,7 @@
<div class="rebate-form">
<div class="row">
<div class="form-group col-lg-12 col-md-12 col-sm-12">
<label class="col-lg-4 col-md-4 col-sm-4">Valid Amount</label>
<label class="col-lg-4 col-md-4 col-sm-4">Valid Redeem Amount</label>
<input type="text" name="valid_amount" id="valid_amount" class="form-control col-lg-7 col-md-7 col-sm-7" readonly="" value="<%=@membership_rebate_balance%>" data-value="<%=@sale_id %>" data-member-value="<%= @membership_id %>">
</div>
<hr>
@@ -18,75 +18,54 @@
<hr>
</div>
</div>
<p class="">You can rebate upto <span style="color:red;" id="food_prices"><%= @food_prices %></span></p>
</div>
</div>
<div class="col-lg-7 col-md-7 col-sm-7">
<div class="row" style="margin-top:10px;">
<div class="col-md-12">
<div class="row">
<div class="col-md-7">
<div class="row bottom">
<div class="col-md-3 cashier_number" data-value="1" data-type="num">1</div>
<div class="col-md-3 left cashier_number" data-value="2" data-type="num">2</div>
<div class="col-md-3 left cashier_number" data-value="3" data-type="num">3</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12 cashier_number long" data-value="1000" data-type="add">1000</div>
</div>
</div>
<div class="row">
<div class="col-md-7">
<div class="row bottom">
<div class="col-md-3 cashier_number" data-value="4" data-type="num">4</div>
<div class="col-md-3 left cashier_number" data-value="5" data-type="num">5</div>
<div class="col-md-3 left cashier_number" data-value="6" data-type="num">6</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12 cashier_number long" data-value="5000" data-type="add">5000</div>
</div>
</div>
<div class="row">
<div class="col-md-7">
<div class="row bottom">
<div class="col-md-3 cashier_number" data-value="7" data-type="num">7</div>
<div class="col-md-3 left cashier_number" data-value="8" data-type="num">8</div>
<div class="col-md-3 left cashier_number" data-value="9" data-type="num">9</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12 cashier_number long" data-value="10000" data-type="add">10000</div>
</div>
</div>
<div class="row">
<div class="col-md-7">
<div class="row bottom">
<div class="col-md-3 cashier_number" data-value="0" data-type="num">0</div>
<div class="col-md-3 left cashier_number" data-value="." data-type="num">.</div>
<div class="col-md-3 left cashier_number" data-value="00" data-type="num">00</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12 cashier_number long" data-value="50000" data-type="add">50000</div>
</div>
</div>
<div class="row">
<div class="col-md-7">
<div class="row bottom">
<div class="col-md-3 cashier_number"></div>
<div class="col-md-3 left cashier_number red" data-type="del">DEL</div>
<div class="col-md-3 left cashier_number green" data-type="clr">CLR</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12 cashier_number long purple" id="redeem" >PAY</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-6 col-md-1 col-sm-1">
<div class="row bottom">
<div class=" cashier_number " data-value="1" data-type="num">1</div>
<div class=" cashier_number left" data-value="2" data-type="num">2</div>
<div class=" cashier_number left" data-value="3" data-type="num">3</div>
</div>
<div class="row bottom">
<div class=" cashier_number " data-value="4" data-type="num">4</div>
<div class=" cashier_number left" data-value="5" data-type="num">5</div>
<div class=" cashier_number left" data-value="6" data-type="num">6</div>
</div>
<div class="row bottom">
<div class=" cashier_number " data-value="7" data-type="num">7</div>
<div class=" cashier_number left" data-value="8" data-type="num">8</div>
<div class=" cashier_number left" data-value="9" data-type="num">9</div>
</div>
<div class="row bottom">
<div class=" cashier_number " data-value="0" data-type="num">0</div>
<div class=" cashier_number left" data-value="." data-type="num">.</div>
<div class=" cashier_number left" data-value="00" data-type="num">00</div>
</div>
<div class="row bottom">
<div class=" cashier_number del_cashier_number" data-type="nett" disable>Nett</div>
<div class=" cashier_number red left" data-type="del">Del</div>
<div class=" cashier_number green left" data-type="clr">Clr</div>
</div>
</div>
<div class="col-lg-6 col-md-1 col-sm-1">
<div class="row bottom">
<div class="cashier_number long" data-value="1000" data-type="add">1000</div>
<div class="cashier_number long left" data-value="3000" data-type="add">3000</div>
</div>
<div class="row bottom">
<div class="cashier_number long" data-value="5000" data-type="add">5000</div>
<div class="cashier_number long left" data-value="10000" data-type="add">10000</div>
</div>
<div class="row bottom">
<div class="pay purple" id="redeem">Pay</div>
</div>
</div>
</div>
</div>
</div>
@@ -141,22 +120,26 @@ $("#redeem").click(function(){
redeem_amount = parseInt($("#used_amount").text());
if(redeem_amount<=0 ){
alert("Please type valid amount");
}else if(valid_amount< redeem_amount){
alert(" Insufficient Amount!")
}else{
$.ajax({
type: "POST",
url: "<%=origami_payment_paypar_path%>",
data: {redeem_amount:redeem_amount,membership_id:membership_id,sale_id:sale_id},
success: function(result){
if(result.status == true){
window.location.href = '/origami/sale/'+ sale_id + "/payment"
}else{
alert(result.message);
if(redeem_amount <= "<%= @food_prices %>"){
$.ajax({
type: "POST",
url: "<%=origami_payment_paypar_path%>",
data: {redeem_amount:redeem_amount,membership_id:membership_id,sale_id:sale_id},
success: function(result){
if(result.status == true){
window.location.href = '/origami/sale/'+ sale_id + "/payment"
}else{
alert(result.message);
}
}
}
})
})
}else {
alert("Redeem Amount is over!");
}
}
});
</script>

View File

@@ -20,9 +20,9 @@
<td colspan="8">
<%= form_tag settings_sales_path, :method => :get do %>
<div class="input-append form-group pull-right">
<input data-behaviour='datepicker' class="datepicker col-md-3 form-control" name="date" id="date" type="text" placeholder="Search by date" style="margin-right: 10px">
<!-- <input data-behaviour='datepicker' class="datepicker col-md-3 form-control" name="date" id="date" type="text" placeholder="Search by date" style="margin-right: 10px"> -->
<input type="text" name="receipt_no" class="col-md-4 form-control" placeholder="Receipt No" style="margin-right: 10px">
<input type="text" name="receipt_no" class="col-md-8 form-control" placeholder="Receipt No" style="margin-right: 10px">
<button type="submit" class="btn btn-primary btn">Search</button>
</div>
<% end %>
@@ -58,7 +58,6 @@
</table>
<br>
<%= paginate @sales %>
</div>
</div>
@@ -67,14 +66,14 @@
<script type="text/javascript">
$(function () {
if (jQuery().datepicker) {
$('.datepicker').datepicker({
format : 'dd-mm-yyyy',
autoclose: true
});
$('.datepicker').attr('ReadOnly','true');
$('.datepicker').css('cursor','pointer');
}
});
</script>

View File

@@ -95,7 +95,7 @@ Rails.application.routes.draw do
get 'sale/:sale_id/payment/others_payment/MPU' => "mpu#index"
post 'payment/mpu' => "mpu#create"
get 'sale/:sale_id/payment/others_payment/REDEEMREBATE' => "redeem_payments#index"
get 'sale/:sale_id/payment/others_payment/REDEEM' => "redeem_payments#index"
#---------Add Customer --------------#
#resources :customers

View File

@@ -51,9 +51,7 @@ menu_item_type = Lookup.create([{lookup_type:'menu_item_type', name: 'SIMPLE', v
{lookup_type:'menu_item_type', name: 'Set Menu', value: 'setMenu'},
{lookup_type:'menu_item_type', name: 'DIY', value: 'diy'}])
member_group_type = Lookup.create([{lookup_type:'member_group_type', name: 'Platinum', value: '1'},
{lookup_type:'member_group_type', name: 'Silver', value: '2'}
])
member_group_type = Lookup.create([{lookup_type:'member_group_type', name: 'Normal', value: '1'}])
#menu_item_attribute:[size|]
menu_item_attribute_type = Lookup.create([{lookup_type:'menu_item_attribute_type', name: 'Size', value: 'size'}])
@@ -158,7 +156,7 @@ member_actions= MembershipAction.create([{membership_type:"get_account_balance",
payment_methods = PaymentMethodSetting.create({payment_method:"MPU",gateway_url: "http//192.168.1.47:3006"})
payment_methods = PaymentMethodSetting.create({payment_method:"REDEEMREBATE",gateway_url: "http://192.168.1.47:3006",merchant_account_id:"vWSsseoZCzxd6xcNf_uS"})
payment_methods = PaymentMethodSetting.create({payment_method:"REDEEM",gateway_url: "http://192.168.1.47:3006",merchant_account_id:"vWSsseoZCzxd6xcNf_uS"})
# shop = Shop.create(

BIN
dump.rdb

Binary file not shown.