243 lines
10 KiB
Ruby
243 lines
10 KiB
Ruby
namespace :consolidate do
|
|
desc "Receipt"
|
|
task :receipt => :environment do
|
|
Receipt.delete_all
|
|
sales = Sale.all_receipts
|
|
|
|
shop = Shop.find(1)
|
|
sales.each do |sale|
|
|
puts sale.to_json
|
|
shift = ShiftSale.find(sale.shift_sale_id)
|
|
receipt = Receipt.new
|
|
receipt.client_code = shop.client_code
|
|
receipt.client_name = shop.client_name
|
|
receipt.shop_code = shop.shop_code
|
|
receipt.shop_name = shop.name
|
|
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.shift_id = sale.shift_sale_id
|
|
receipt.shift_open_time = shift.shift_started_at
|
|
receipt.shift_close_time = shift.shift_closed_at
|
|
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.client_code
|
|
receipt.client_name = shop.client_name
|
|
receipt.shop_code = shop.shop_code
|
|
receipt.shop_name = shop.name
|
|
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.client_code
|
|
receipt.client_name = shop.client_name
|
|
receipt.shop_code = shop.shop_code
|
|
receipt.shop_name = shop.name
|
|
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.client_code
|
|
receipt.client_name = shop.client_name
|
|
receipt.shop_code = shop.shop_code
|
|
receipt.shop_name = shop.name
|
|
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 |