From 4fc511d531b4df0fc8abe03a6ea5356b3ce3f01a Mon Sep 17 00:00:00 2001 From: Min Zeya Phyo Date: Sun, 4 Jun 2017 16:27:14 +0630 Subject: [PATCH] custom primary key for transaction --- app/models/assigned_order_item.rb | 7 +++++++ app/models/booking.rb | 9 +++++++-- app/models/cashier_login_log.rb | 7 +++++++ app/models/crm.rb | 5 ----- app/models/customer.rb | 6 ++++++ app/models/login_form.rb | 16 ---------------- app/models/order.rb | 22 ++++++++++++---------- app/models/order_item.rb | 8 +++++++- app/models/room_booking.rb | 3 ++- app/models/sale.rb | 8 ++++++-- app/models/sale_audit.rb | 9 +++++++-- app/models/sale_item.rb | 8 +++++++- app/models/sale_order.rb | 6 ++++++ app/models/sale_payment.rb | 7 ++++++- app/models/sale_tax.rb | 7 ++++++- app/models/seed_generator.rb | 3 ++- app/models/test.rb | 2 -- app/models/transactions.rb | 5 ----- spec/models/test_spec.rb | 5 ----- 19 files changed, 88 insertions(+), 55 deletions(-) delete mode 100644 app/models/crm.rb delete mode 100644 app/models/login_form.rb delete mode 100644 app/models/test.rb delete mode 100644 app/models/transactions.rb delete mode 100644 spec/models/test_spec.rb diff --git a/app/models/assigned_order_item.rb b/app/models/assigned_order_item.rb index c2d2e8b0..ed8b0c82 100644 --- a/app/models/assigned_order_item.rb +++ b/app/models/assigned_order_item.rb @@ -1,4 +1,6 @@ class AssignedOrderItem < ApplicationRecord + before_create :generate_custom_id + belongs_to :order belongs_to :order_queue_station @@ -11,4 +13,9 @@ class AssignedOrderItem < ApplicationRecord assigned_order_item.delivery_status = false assigned_order_item.save end + + private + def generate_custom_id + self.assigned_order_item_id = SeedGenerator.generate_id(self.class.name, "AOI") + end end diff --git a/app/models/booking.rb b/app/models/booking.rb index c34ecf42..64eefbad 100644 --- a/app/models/booking.rb +++ b/app/models/booking.rb @@ -1,9 +1,14 @@ class Booking < ApplicationRecord + before_create :generate_custom_id #primary key - need to be unique - + belongs_to :dining_facility, :optional => true belongs_to :sale, :optional => true has_many :booking_orders + has_many :orders, :through => :booking_orders - + private + def generate_custom_id + self.booking_id = SeedGenerator.generate_id(self.class.name, "BKI") + end end diff --git a/app/models/cashier_login_log.rb b/app/models/cashier_login_log.rb index d64860ce..353e9c90 100644 --- a/app/models/cashier_login_log.rb +++ b/app/models/cashier_login_log.rb @@ -1,4 +1,11 @@ class CashierLoginLog < ApplicationRecord + before_create :generate_custom_id + belongs_to :cashier_station belongs_to :employee + + private + def generate_custom_id + self.cashier_login_log_id = SeedGenerator.generate_id(self.class.name, "CLO") + end end diff --git a/app/models/crm.rb b/app/models/crm.rb deleted file mode 100644 index 3407e215..00000000 --- a/app/models/crm.rb +++ /dev/null @@ -1,5 +0,0 @@ -module Crm - def self.table_name_prefix - 'crm_' - end -end diff --git a/app/models/customer.rb b/app/models/customer.rb index 42247791..a9ffbfc5 100644 --- a/app/models/customer.rb +++ b/app/models/customer.rb @@ -1,4 +1,5 @@ class Customer < ApplicationRecord + before_create :generate_custom_id has_many :orders has_many :sales @@ -8,4 +9,9 @@ class Customer < ApplicationRecord def lastest_invoices sales.where(:customer_id => self.id).order("created_at desc").limit(5) end + + private + def generate_custom_id + self.customer_id = SeedGenerator.generate_id(self.class.name, "CUS") + end end diff --git a/app/models/login_form.rb b/app/models/login_form.rb deleted file mode 100644 index 66bef3f3..00000000 --- a/app/models/login_form.rb +++ /dev/null @@ -1,16 +0,0 @@ -class LoginForm - include ActiveModel::Model - include ActiveModel::Validations - - attr_accessor :emp_id, :password - validates_presence_of :emp_id, :password - - def persisted? - false - end - - def initialize(attributes={}) - super - end - -end diff --git a/app/models/order.rb b/app/models/order.rb index 65232f40..0b50b878 100644 --- a/app/models/order.rb +++ b/app/models/order.rb @@ -1,6 +1,6 @@ class Order < ApplicationRecord #primary key - need to be unique - + before_create :generate_custom_id before_create :set_order_date belongs_to :customer @@ -18,7 +18,7 @@ class Order < ApplicationRecord # option_values : [], # sub_order_items : [], # } - + def generate booking = nil @@ -182,14 +182,6 @@ class Order < ApplicationRecord return new_items_list end - private - def validate_api_inputs - - end - - def set_order_date - self.date = Time.now.utc - end #Update Items Count and Quantity changes whenever there is changes def update_products_and_quantity_count @@ -249,4 +241,14 @@ class Order < ApplicationRecord .where("dining_facilities.is_active=? and orders.date between ? and ?",true,from,to) .group("orders.id") end + + + private + def generate_custom_id + self.order_id = SeedGenerator.generate_id(self.class.name, "ODR") + end + + def set_order_date + self.date = Time.now.utc + end end diff --git a/app/models/order_item.rb b/app/models/order_item.rb index 6e06404c..ef228fde 100644 --- a/app/models/order_item.rb +++ b/app/models/order_item.rb @@ -1,5 +1,6 @@ class OrderItem < ApplicationRecord #primary key - need to be unique + before_create :generate_custom_id #Associations belongs_to :order, autosave: true @@ -39,6 +40,11 @@ class OrderItem < ApplicationRecord def self.get_order_items_details(order_id) order_details = OrderItem.select("order_items.item_name,order_items.qty,order_items.price,(order_items.qty*order_items.price) as total_price") .joins("left join orders on orders.id = order_items.order_id") - .where("order_items.order_id=?",order_id) + .where("order_items.order_id=?",order_id) + end + + private + def generate_custom_id + self.order_item_id = SeedGenerator.generate_id(self.class.name, "ODI") end end diff --git a/app/models/room_booking.rb b/app/models/room_booking.rb index fb7c0dac..7efa52cb 100644 --- a/app/models/room_booking.rb +++ b/app/models/room_booking.rb @@ -1,3 +1,4 @@ class RoomBooking < Booking - + has_many :orders + end diff --git a/app/models/sale.rb b/app/models/sale.rb index ca3bd631..ed3e4c96 100644 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -1,6 +1,6 @@ -#primary key - need to be unique generated for multiple shops - class Sale < ApplicationRecord + #primary key - need to be unique generated for multiple shops + #before_create :generate_receipt_no belongs_to :cashier, :optional => true belongs_to :customer, :optional => true @@ -242,4 +242,8 @@ class Sale < ApplicationRecord end end + private + def generate_custom_id + self.sale_id = SeedGenerator.generate_id(self.class.name, "SAL") + end end diff --git a/app/models/sale_audit.rb b/app/models/sale_audit.rb index cce6982d..4ace962d 100644 --- a/app/models/sale_audit.rb +++ b/app/models/sale_audit.rb @@ -1,6 +1,6 @@ class SaleAudit < ApplicationRecord -#primary key - need to be unique generated for multiple shops - + #primary key - need to be unique generated for multiple shops + belongs_to :sale def record_audit_void(sale_id, void_by, approved_by, reason) @@ -50,4 +50,9 @@ class SaleAudit < ApplicationRecord sale_audit.remark = remark sale_audit.save! end + + private + def generate_custom_id + self.sale_audit_id = SeedGenerator.generate_id(self.class.name, "SAI") + end end diff --git a/app/models/sale_item.rb b/app/models/sale_item.rb index c92ed48f..622057ec 100644 --- a/app/models/sale_item.rb +++ b/app/models/sale_item.rb @@ -1,9 +1,15 @@ class SaleItem < ApplicationRecord -#primary key - need to be unique generated for multiple shops + #primary key - need to be unique generated for multiple shops + before_create :generate_custom_id belongs_to :sale #compute items - discount, tax, price_change def compute_item end + + private + def generate_custom_id + self.sale_item_id = SeedGenerator.generate_id(self.class.name, "SLI") + end end diff --git a/app/models/sale_order.rb b/app/models/sale_order.rb index 23fd39bd..ba39234b 100644 --- a/app/models/sale_order.rb +++ b/app/models/sale_order.rb @@ -1,6 +1,12 @@ class SaleOrder < ApplicationRecord #primary key - need to be unique generated for multiple shops + before_create :generate_custom_id belongs_to :sale belongs_to :order + + private + def generate_custom_id + self.sale_order_id = SeedGenerator.generate_id(self.class.name, "SOI") + end end diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb index 2f7b72ea..76d2869a 100644 --- a/app/models/sale_payment.rb +++ b/app/models/sale_payment.rb @@ -1,5 +1,6 @@ class SalePayment < ApplicationRecord -#primary key - need to be unique generated for multiple shops + #primary key - need to be unique generated for multiple shops + before_create :generate_custom_id belongs_to :sale @@ -156,4 +157,8 @@ class SalePayment < ApplicationRecord end + private + def generate_custom_id + self.sale_payment_id = SeedGenerator.generate_id(self.class.name, "SPI") + end end diff --git a/app/models/sale_tax.rb b/app/models/sale_tax.rb index 6e0a2d47..2eb24312 100644 --- a/app/models/sale_tax.rb +++ b/app/models/sale_tax.rb @@ -1,5 +1,10 @@ class SaleTax < ApplicationRecord #primary key - need to be unique generated for multiple shops - + before_create :generate_custom_id belongs_to :sale + + private + def generate_custom_id + self.sale_tax_id = SeedGenerator.generate_id(self.class.name, "STI") + end end diff --git a/app/models/seed_generator.rb b/app/models/seed_generator.rb index 4351e74b..02a9fb64 100644 --- a/app/models/seed_generator.rb +++ b/app/models/seed_generator.rb @@ -14,8 +14,9 @@ class SeedGenerator < ApplicationRecord seed.current = current_no seed.save end + padding_len = 16 - prefix.len - return prefix + "-" + seed.current.to_s + return prefix +"-"+ seed.current.to_s.to_s.rjust((16-prefix.length)+1,'0') end def self.new_receipt_no diff --git a/app/models/test.rb b/app/models/test.rb deleted file mode 100644 index fe0afa77..00000000 --- a/app/models/test.rb +++ /dev/null @@ -1,2 +0,0 @@ -class Test < ApplicationRecord -end diff --git a/app/models/transactions.rb b/app/models/transactions.rb deleted file mode 100644 index 9cffb0d1..00000000 --- a/app/models/transactions.rb +++ /dev/null @@ -1,5 +0,0 @@ -module Transactions - def self.table_name_prefix - 'transactions_' - end -end diff --git a/spec/models/test_spec.rb b/spec/models/test_spec.rb deleted file mode 100644 index 2b626b06..00000000 --- a/spec/models/test_spec.rb +++ /dev/null @@ -1,5 +0,0 @@ -require 'rails_helper' - -RSpec.describe Test, type: :model do - pending "add some examples to (or delete) #{__FILE__}" -end