update receipt ranke file
This commit is contained in:
@@ -760,8 +760,8 @@ $(function() {
|
||||
$("#oqs_loading_wrapper").show();
|
||||
|
||||
type = window.location.href.indexOf("quick_service");
|
||||
|
||||
if (type != 'true') {
|
||||
console.log(type)
|
||||
if (type != -1) {
|
||||
type = 'quick_service'
|
||||
var table_type = $('#table_type').text();
|
||||
var table_id = $('#table_id').val();
|
||||
|
||||
2
app/models/receipt.rb
Normal file
2
app/models/receipt.rb
Normal file
@@ -0,0 +1,2 @@
|
||||
class Receipt < ApplicationRecord
|
||||
end
|
||||
2
app/models/receipt_detail.rb
Normal file
2
app/models/receipt_detail.rb
Normal file
@@ -0,0 +1,2 @@
|
||||
class ReceiptDetail < ApplicationRecord
|
||||
end
|
||||
@@ -2009,6 +2009,44 @@ end
|
||||
.group("bookings.booking_id")
|
||||
end
|
||||
|
||||
def self.all_receipts
|
||||
query = Sale.select("sales.*, sale_payments.created_at as receipt_close_time,
|
||||
case when (sale_audits.action='SALEPAYMENT') then sale_audits.remark else 0 end as remark,
|
||||
case when (sale_taxes.tax_name='Service Charges') then sale_taxes.tax_payable_amount else 0 end as service_charges,
|
||||
SUM(case when (sale_payments.payment_method='mpu') then sale_payments.payment_amount else 0 end) as mpu_amount,
|
||||
SUM(case when (sale_payments.payment_method='master') then sale_payments.payment_amount else 0 end) as master_amount,
|
||||
SUM(case when (sale_payments.payment_method='visa') then sale_payments.payment_amount else 0 end) as visa_amount,
|
||||
SUM(case when (sale_payments.payment_method='jcb') then sale_payments.payment_amount else 0 end) as jcb_amount,
|
||||
SUM(case when (sale_payments.payment_method='unionpay') then sale_payments.payment_amount else 0 end) as unionpay_amount,
|
||||
SUM(case when (sale_payments.payment_method='creditnote') then sale_payments.payment_amount else 0 end) as credit_amount,
|
||||
SUM(case when (sale_payments.payment_method='foc') then sale_payments.payment_amount else 0 end) as foc_amount,
|
||||
SUM(case when (sale_items.status='foc') then sale_items.price else 0 end) as item_foc,
|
||||
SUM(case when (sale_items.status='Discount') then sale_items.price else 0 end) as item_discount,
|
||||
SUM(sale_items.qty) as qty,
|
||||
sales.cashier_name as cashier_name,
|
||||
surveys.child as child,
|
||||
surveys.adult as adult")
|
||||
.joins("join sale_payments on sale_payments.sale_id = sales.sale_id")
|
||||
.joins("join sale_taxes on sale_taxes.sale_id = sales.sale_id")
|
||||
.joins("join sale_items on sale_items.sale_id = sales.sale_id")
|
||||
.joins("join sale_audits on sale_audits.sale_id = sales.sale_id")
|
||||
.joins("left join surveys on surveys.receipt_no = sales.receipt_no")
|
||||
|
||||
query = query.where("sale_status != 'new' && sale_payments.payment_amount > 0")
|
||||
.group("sale_id")
|
||||
return query
|
||||
end
|
||||
|
||||
def self.all_receipt_details
|
||||
query = SaleItem.select("sale_items.*, sale_payments.created_at as receipt_close_time,
|
||||
sales.requested_at as requested_at, sales.receipt_no as receipt_no,sales.sale_id as s_id")
|
||||
.joins("join sale_payments on sale_payments.sale_id = sale_items.sale_id")
|
||||
.joins("join sales on sales.sale_id = sale_items.sale_id")
|
||||
.group("sale_items.sale_item_id")
|
||||
query = query.where("qty > 0 and sales.sale_status !='new'")
|
||||
return query
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def generate_custom_id
|
||||
|
||||
42
db/migrate/20180306044939_create_receipts.rb
Normal file
42
db/migrate/20180306044939_create_receipts.rb
Normal file
@@ -0,0 +1,42 @@
|
||||
class CreateReceipts < ActiveRecord::Migration[5.1]
|
||||
def change
|
||||
create_table :receipts do |t|
|
||||
t.string :client_code, :limit => 16, :null => false
|
||||
t.string :client_name, :null => false
|
||||
t.string :shop_code, :limit => 16, :null => false
|
||||
t.string :shop_name, :null => false
|
||||
t.integer :receipt_no, :limit => 8, :null => false
|
||||
t.datetime :transaction_time, :null => false
|
||||
t.datetime :receipt_open_time, :null => false
|
||||
t.datetime :receipt_close_time, :null => false
|
||||
t.decimal :gross_sales, :null => false, :default => 0
|
||||
t.decimal :discount_amount, :null => false, :default => 0
|
||||
t.decimal :sales, :null => false, :default => 0
|
||||
t.decimal :tax_amount, :null => false, :default => 0
|
||||
t.decimal :service_charges, :null => false, :default => 0
|
||||
t.decimal :net_sales, :null => false, :default => 0
|
||||
t.decimal :credit_card_sales, :null => false, :default => 0
|
||||
t.decimal :voucher_sales, :null => false, :default => 0
|
||||
t.decimal :foc_amount, :null => false, :default => 0
|
||||
t.decimal :staff_meal_amount, :null => false, :default => 0
|
||||
t.decimal :rounding_amount, :null => false, :default => 0
|
||||
t.decimal :raw_wastage_amount, :null => false, :default => 0
|
||||
t.decimal :semi_wastage_amount, :null => false, :default => 0
|
||||
t.decimal :wastage_amount, :null => false, :default => 0
|
||||
t.decimal :spoilage_amount, :null => false, :default => 0
|
||||
t.decimal :sampling_amount, :null => false, :default => 0
|
||||
t.integer :qty, :null => false, :default => 0
|
||||
t.integer :no_of_pax, :null => false, :default => 0
|
||||
t.integer :no_of_adult, :null => false, :default => 0
|
||||
t.integer :no_of_child, :null => false, :default => 0
|
||||
t.string :terminal_id, :null => false
|
||||
t.string :employee_code, :limit => 4, :null => false
|
||||
t.string :employee_name, :null => false
|
||||
t.boolean :is_valid, :null => false, :default => false
|
||||
t.boolean :overing, :null => false, :default => false
|
||||
t.boolean :cancle, :null => false, :default => false
|
||||
t.text :remarks
|
||||
t.timestamps
|
||||
end
|
||||
end
|
||||
end
|
||||
43
db/migrate/20180306045018_create_receipt_details.rb
Normal file
43
db/migrate/20180306045018_create_receipt_details.rb
Normal file
@@ -0,0 +1,43 @@
|
||||
class CreateReceiptDetails < ActiveRecord::Migration[5.1]
|
||||
def change
|
||||
create_table :receipt_details do |t|
|
||||
t.string :client_code, :null => false
|
||||
t.string :client_name, :null => false
|
||||
t.string :shop_code, :null => false
|
||||
t.string :shop_name, :null => false
|
||||
t.string :receipt_no, :null => false
|
||||
t.datetime :receipt_date, :null => false
|
||||
t.datetime :transaction_date, :null => false
|
||||
t.integer :item_sequence, :null => false
|
||||
t.string :category_code, :null => false
|
||||
t.string :category_name, :null => false
|
||||
t.string :sub_category_code, :null => false
|
||||
t.string :sub_category_name, :null => false
|
||||
t.string :report_group_code, :null => false
|
||||
t.string :report_group_name, :null => false
|
||||
t.string :item_code, :null => false
|
||||
t.string :item_name, :null => false
|
||||
t.integer :qty, :null => false, :default => 0
|
||||
t.string :transaction_type, :null => false
|
||||
t.decimal :gross_sales, :null => false, :default => 0
|
||||
t.string :discount_code, :null => false
|
||||
t.decimal :discount_amount, :null => false, :default => 0
|
||||
t.decimal :sales, :null => false, :default => 0
|
||||
t.decimal :tax_amount, :null => false, :default => 0
|
||||
t.decimal :service_charges, :null => false, :default => 0
|
||||
t.decimal :net_sales, :null => false, :default => 0
|
||||
t.boolean :is_foc, :null => false, :default => false
|
||||
t.boolean :is_set_item, :null => false, :default => false
|
||||
t.boolean :is_staff_meal, :null => false, :default => false
|
||||
t.boolean :is_raw_wastage, :null => false, :default => false
|
||||
t.boolean :is_semi_wastage, :null => false, :default => false
|
||||
t.boolean :is_wastage, :null => false, :default => false
|
||||
t.boolean :is_spoilage, :null => false, :default => false
|
||||
t.boolean :is_sampling, :null => false, :default => false
|
||||
t.boolean :tax_able, :null => false, :default => false
|
||||
t.boolean :is_void, :null => false, :default => false
|
||||
t.text :remarks
|
||||
t.timestamps
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -89,6 +89,10 @@ delete from sym_node;
|
||||
|
||||
# Create Trigger for Setting Channel
|
||||
|
||||
insert into sym_trigger
|
||||
(trigger_id,source_table_name,channel_id,last_update_time,create_time)
|
||||
values('seed_generators','seed_generators','setting',current_timestamp,current_timestamp);
|
||||
|
||||
insert into sym_trigger
|
||||
(trigger_id,source_table_name,channel_id,last_update_time,create_time)
|
||||
values('lookups','lookups','setting',current_timestamp,current_timestamp);
|
||||
@@ -339,6 +343,11 @@ delete from sym_node;
|
||||
# Add triggers for tables with router
|
||||
|
||||
# Setting Channel # From cloud to Master
|
||||
|
||||
insert into sym_trigger_router
|
||||
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
|
||||
values('seed_generators','cloud_2_sx', 100, current_timestamp, current_timestamp);
|
||||
|
||||
insert into sym_trigger_router
|
||||
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
|
||||
values('lookups','cloud_2_sx', 100, current_timestamp, current_timestamp);
|
||||
@@ -376,6 +385,11 @@ delete from sym_node;
|
||||
values('display_images','cloud_2_sx', 100, current_timestamp, current_timestamp);
|
||||
|
||||
# Setting Channel # From Master to cloud
|
||||
|
||||
insert into sym_trigger_router
|
||||
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
|
||||
values('seed_generators','sx_2_cloud', 100, current_timestamp, current_timestamp);
|
||||
|
||||
insert into sym_trigger_router
|
||||
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
|
||||
values('lookups','sx_2_cloud', 100, current_timestamp, current_timestamp);
|
||||
|
||||
238
lib/tasks/receipt.rake
Normal file
238
lib/tasks/receipt.rake
Normal file
@@ -0,0 +1,238 @@
|
||||
namespace :consolidate do
|
||||
desc "Receipt"
|
||||
task :receipt => :environment do
|
||||
Receipt.delete_all
|
||||
sales = Sale.all_receipts
|
||||
|
||||
shop = Shop.find(1)
|
||||
sales.each do |sale|
|
||||
receipt = Receipt.new
|
||||
receipt.client_code = shop.id
|
||||
receipt.client_name = shop.id
|
||||
receipt.shop_code = shop.id
|
||||
receipt.shop_name = shop.id
|
||||
receipt.receipt_no = sale.receipt_no
|
||||
receipt.transaction_time = sale.requested_at #requet-at
|
||||
receipt.receipt_open_time = sale.requested_at #before disco/after tax /after/ser_char
|
||||
receipt.receipt_close_time = sale.receipt_close_time
|
||||
receipt.gross_sales = sale.total_amount + sale.total_tax #before disco/after tax /after/ser_char
|
||||
receipt.discount_amount = sale.total_discount + sale.item_discount
|
||||
receipt.sales = sale.grand_total #after disco/after tax /after/ser_char /no roundingadn
|
||||
receipt.tax_amount = sale.total_tax
|
||||
receipt.service_charges = sale.service_charges
|
||||
receipt.net_sales = sale.total_amount + sale.total_discount #after disco/before tax / no rounding
|
||||
receipt.credit_card_sales = sale.mpu_amount + sale.master_amount + sale.visa_amount + sale.jcb_amount + sale.unionpay_amount + sale.credit_amount #
|
||||
receipt.voucher_sales = 0
|
||||
receipt.foc_amount = sale.foc_amount + sale.item_foc
|
||||
receipt.staff_meal_amount = 0
|
||||
receipt.rounding_amount = sale.rounding_adjustment
|
||||
receipt.raw_wastage_amount = 0
|
||||
receipt.semi_wastage_amount = 0
|
||||
receipt.wastage_amount = 0
|
||||
receipt.spoilage_amount = 0
|
||||
receipt.sampling_amount = 0
|
||||
receipt.qty = sale.qty
|
||||
receipt.no_of_pax = 0
|
||||
receipt.no_of_adult = (sale.adult) ? sale.adult : 0
|
||||
receipt.no_of_child = (sale.child) ? sale.child : 0
|
||||
receipt.terminal_id = ShiftSale.find(sale.shift_sale_id).cashier_terminal_id
|
||||
receipt.employee_code = Employee.find(sale.cashier_id).emp_id
|
||||
receipt.employee_name = sale.cashier_name
|
||||
receipt.is_valid = (sale.payment_status=="void") ? false : true #void is false
|
||||
receipt.overing =false
|
||||
receipt.cancle = (sale.payment_status=="void") ? false : true # void is cancel
|
||||
receipt.remarks = sale.remark
|
||||
receipt.save
|
||||
end
|
||||
end
|
||||
|
||||
desc "Receipt Detail"
|
||||
task :receipt_detail => :environment do
|
||||
ReceiptDetail.delete_all
|
||||
sales = Sale.all_receipt_details
|
||||
|
||||
shop = Shop.find(1)
|
||||
|
||||
sale_id = ''
|
||||
count = 0
|
||||
@total_qty = 0
|
||||
@total_gross_sales = 0
|
||||
@total_sales = 0
|
||||
@total_net_sales = 0
|
||||
@z =1
|
||||
@item_sequence = 1
|
||||
sale_count = sales.to_a.count
|
||||
sales.each do |sale|
|
||||
|
||||
if sale.qty > 0
|
||||
|
||||
if sale.item_instance_code !=nil
|
||||
menu_category = MenuCategory.find(MenuItem.find_by_item_code(sale.product_code).menu_category_id)
|
||||
name = menu_category.name
|
||||
code = menu_category.code
|
||||
menu_item = MenuItem.find_by_item_code(sale.product_code)
|
||||
menu_name = menu_item.name
|
||||
menu_code = menu_item.item_code
|
||||
menu_type = menu_item.type
|
||||
end
|
||||
if sale.product_code == "Other Charges" && sale.status == "Other Charges"
|
||||
code = sale.product_code
|
||||
name = sale.product_code
|
||||
menu_name = sale.product_code
|
||||
menu_code = sale.product_code
|
||||
menu_type = sale.product_code
|
||||
end
|
||||
|
||||
@receipt_no = sale.receipt_no
|
||||
@requested_at = sale.requested_at
|
||||
|
||||
if sale_id == sale.sale_id || count == 0 || @z =0
|
||||
@total_qty += sale.qty
|
||||
@total_gross_sales += sale.price
|
||||
@total_sales += sale.price
|
||||
@total_net_sales += sale.taxable_price
|
||||
end
|
||||
|
||||
if sale_id != sale.sale_id && count !=0
|
||||
|
||||
receipt = ReceiptDetail.new
|
||||
receipt.client_code = shop.id
|
||||
receipt.client_name = shop.id
|
||||
receipt.shop_code = shop.id
|
||||
receipt.shop_name = shop.id
|
||||
receipt.receipt_no = @receipt_no
|
||||
receipt.receipt_date = @requested_at #requet-at
|
||||
receipt.transaction_date = @requested_at #before disco/after tax /after/ser_char
|
||||
receipt.item_sequence = @item_sequence
|
||||
receipt.category_code = ''
|
||||
receipt.category_name = ''
|
||||
receipt.sub_category_code = 0
|
||||
receipt.sub_category_name = 0
|
||||
receipt.report_group_code = 0
|
||||
receipt.report_group_name = 0
|
||||
receipt.item_code = ''
|
||||
receipt.item_name = ''
|
||||
receipt.qty = @total_qty
|
||||
receipt.transaction_type = "Tender"
|
||||
receipt.gross_sales = @total_gross_sales
|
||||
receipt.discount_code = ''
|
||||
receipt.discount_amount = 0
|
||||
receipt.sales = @total_sales
|
||||
receipt.tax_amount = 0
|
||||
receipt.service_charges = 0
|
||||
receipt.net_sales = @total_net_sales
|
||||
receipt.is_set_item = false
|
||||
receipt.is_foc = false
|
||||
receipt.is_staff_meal = false
|
||||
receipt.is_raw_wastage = false
|
||||
receipt.is_semi_wastage = false
|
||||
receipt.is_wastage = false
|
||||
receipt.is_spoilage = false
|
||||
receipt.is_sampling = false
|
||||
receipt.tax_able = false
|
||||
receipt.is_void = false
|
||||
receipt.remarks = ""
|
||||
receipt.save
|
||||
@type = "Tender"
|
||||
@item_sequence = 1
|
||||
@total_qty = 0
|
||||
@total_gross_sales = 0
|
||||
@total_sales = 0
|
||||
@total_net_sales = 0
|
||||
@z = 0
|
||||
end
|
||||
|
||||
|
||||
discount_amount = (sale.status=="Discount") ? sale.price : 0
|
||||
receipt = ReceiptDetail.new
|
||||
receipt.client_code = shop.id
|
||||
receipt.client_name = shop.id
|
||||
receipt.shop_code = shop.id
|
||||
receipt.shop_name = shop.id
|
||||
receipt.receipt_no = sale.receipt_no
|
||||
receipt.receipt_date = sale.requested_at #requet-at
|
||||
receipt.transaction_date = sale.requested_at #before disco/after tax /after/ser_char
|
||||
receipt.item_sequence = @item_sequence
|
||||
receipt.category_code = name
|
||||
receipt.category_name = code
|
||||
receipt.sub_category_code = 0
|
||||
receipt.sub_category_name = 0
|
||||
receipt.report_group_code = 0
|
||||
receipt.report_group_name = 0
|
||||
receipt.item_code = menu_name
|
||||
receipt.item_name = menu_code
|
||||
receipt.qty = sale.qty
|
||||
receipt.transaction_type = (sale.status==nil) ? "Sales" : sale.status
|
||||
receipt.gross_sales = sale.price
|
||||
receipt.discount_code = sale.sale_item_id
|
||||
receipt.discount_amount = discount_amount
|
||||
receipt.sales = sale.price
|
||||
receipt.tax_amount = 0
|
||||
receipt.service_charges = 0
|
||||
receipt.net_sales = sale.taxable_price
|
||||
receipt.is_set_item = (menu_type=="SetMenuItem")? true : false
|
||||
receipt.is_foc = (sale.status=="foc") ? true : false
|
||||
receipt.is_staff_meal = false
|
||||
receipt.is_raw_wastage = false
|
||||
receipt.is_semi_wastage = false
|
||||
receipt.is_wastage = false
|
||||
receipt.is_spoilage = false
|
||||
receipt.is_sampling = false
|
||||
receipt.tax_able = sale.is_taxable
|
||||
receipt.is_void = (sale.status=="void")? true : false
|
||||
receipt.remarks = sale.remark
|
||||
receipt.save
|
||||
|
||||
end
|
||||
|
||||
@z += 1
|
||||
|
||||
|
||||
count += 1
|
||||
@item_sequence += 1
|
||||
sale_id = sale.sale_id
|
||||
end
|
||||
|
||||
if count == sale_count
|
||||
receipt = ReceiptDetail.new
|
||||
receipt.client_code = shop.id
|
||||
receipt.client_name = shop.id
|
||||
receipt.shop_code = shop.id
|
||||
receipt.shop_name = shop.id
|
||||
receipt.receipt_no = @receipt_no
|
||||
receipt.receipt_date = @requested_at #requet-at
|
||||
receipt.transaction_date = @requested_at #before disco/after tax /after/ser_char
|
||||
receipt.item_sequence = @item_sequence
|
||||
receipt.category_code = ''
|
||||
receipt.category_name = ''
|
||||
receipt.sub_category_code = 0
|
||||
receipt.sub_category_name = 0
|
||||
receipt.report_group_code = 0
|
||||
receipt.report_group_name = 0
|
||||
receipt.item_code = ''
|
||||
receipt.item_name = ''
|
||||
receipt.qty = @total_qty
|
||||
receipt.transaction_type = "Tender"
|
||||
receipt.gross_sales = @total_gross_sales
|
||||
receipt.discount_code = ''
|
||||
receipt.discount_amount = 0
|
||||
receipt.sales = @total_sales
|
||||
receipt.tax_amount = 0
|
||||
receipt.service_charges = 0
|
||||
receipt.net_sales = @total_net_sales
|
||||
receipt.is_set_item = false
|
||||
receipt.is_foc = false
|
||||
receipt.is_staff_meal = false
|
||||
receipt.is_raw_wastage = false
|
||||
receipt.is_semi_wastage = false
|
||||
receipt.is_wastage = false
|
||||
receipt.is_spoilage = false
|
||||
receipt.is_sampling = false
|
||||
receipt.tax_able = false
|
||||
receipt.is_void = false
|
||||
receipt.remarks = ""
|
||||
receipt.save
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
5
spec/models/receipt_detail_spec.rb
Normal file
5
spec/models/receipt_detail_spec.rb
Normal file
@@ -0,0 +1,5 @@
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe ReceiptDetail, type: :model do
|
||||
pending "add some examples to (or delete) #{__FILE__}"
|
||||
end
|
||||
5
spec/models/receipt_spec.rb
Normal file
5
spec/models/receipt_spec.rb
Normal file
@@ -0,0 +1,5 @@
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe Receipt, type: :model do
|
||||
pending "add some examples to (or delete) #{__FILE__}"
|
||||
end
|
||||
Reference in New Issue
Block a user