Files
nemo_encoder/app/controllers/api/batch_line_items_controller.rb
2018-07-26 09:33:05 +06:30

268 lines
11 KiB
Ruby

class Api::BatchLineItemsController < ApplicationController
skip_before_filter :verify_authenticity_token
def register
batch_id=params[:batch_id]
session_token=params[:session_token]
manufacture_uid = params[:card_manufacture]
card_account_no=params[:card_account_no]
client_id=""
check_member= Member.authenticate_session_token(session_token)
if !check_member.nil?
encrypt_key=""
asset_identity=""
find_batch = Batch.find_by_id(batch_id)
if !find_batch.nil?
card_type=find_batch.adult_or_child.upcase
product_category_id=find_batch.product_category_id
find_product_category=ProductCategory.find_by_id(product_category_id)
if !find_product_category.nil?
product_type=find_product_category.product_type_id
find_user=Client.find_by_id(find_batch.client_id)
if !find_user.nil?
encrypt_key=find_user.secrect_key
location_code=find_user.location_code
client_id=find_user.id
if !encrypt_key.nil?
check_manufacture = BatchLineItem.find_by_manufacture_uid(manufacture_uid)
if check_manufacture.nil?
serial_no=BatchLineItem.generate_serial_no(client_id.to_s)
if product_type ==1 #CARD
asset_identity=BatchLineItem.generate_account_no(location_code)
@out=BatchLineItem.create_product(asset_identity,serial_no,batch_id,manufacture_uid,"")
elsif product_type==2 #TICKET
str="manufacture_uid="+manufacture_uid.to_s+"&serial_no="+serial_no.to_s
digest_data= Digest::MD5.hexdigest(str)
hex_data=digest_data.hex
hex_str=hex_data.to_s
asset_identity=hex_str[0..15]
check_asset=BatchLineItem.find_by_asset_identity(asset_identity)
if check_asset.nil?
@out=BatchLineItem.create_product(asset_identity,serial_no,batch_id,manufacture_uid,card_type)
else
@out=false,'Asset Identity is already registered!'
end
end
else
if check_manufacture.asset_identity !=card_account_no
@out=true,check_manufacture.serial_no,check_manufacture.asset_identity
else
@out=false,'Manufacture UID is already registered!'
end
end
else
@out=false,'Invalid User!'
end
else
@out=false,"Client doesn't exist!"
end
else
@out=false,"Product Category doesn't exist!"
end
else
@out=false,"Batch doesn't exist!"
end
else
@out=false,'Sorry!Unauthorized user!'
end
end
def generate_card_account_items
# Generate Code
batch_id=params[:id]
client_id=""
qty = params[:qty]
total_count=0
puts batch_id
puts 'ello'
puts params[:id]
# check_member= Member.authenticate_session_token(session_token)
# if !check_member.nil?
encrypt_key=""
asset_identity=""
find_batch = Batch.find_by_id(batch_id)
if !find_batch.nil?
find_batch.generated_qty = qty
find_batch.save
card_type=find_batch.adult_or_child.upcase
product_category_id=find_batch.product_category_id
find_product_category=ProductCategory.find_by_id(product_category_id)
if !find_product_category.nil?
product_type=find_product_category.product_type_id
find_user=Client.find_by_id(find_batch.client_id)
if !find_user.nil?
encrypt_key=find_user.secrect_key
location_code=find_user.location_code
client_id=find_user.id
if !encrypt_key.nil?
arr = Array.new
# Generate with qty
qty.to_i.times do |i|
serial_no=BatchLineItem.generate_serial_no(client_id.to_s)
asset_identity=BatchLineItem.generate_account_no(location_code)
security_code=BatchLineItem.generate_security_code
out=BatchLineItem.create_product(asset_identity,serial_no,batch_id,"","",security_code)
item = out[2]
total_count+=1
arr.push(item)
end
@out =true,'Success',arr
# Generate with qty
else
@out=false,'Invalid User!'
end
else
@out=false,"Client doesn't exist!"
end
else
@out=false,"Product Category doesn't exist!"
end
else
@out=false,"Batch doesn't exist!"
end
# else
# @out=false,'Sorry!Unauthorized user!'
# end
# Generate Code
end
def update_manufacture_uid
account_no = params[:account_no]
barcode = params[:barcode]
manufacture_uid = params[:manufacture_uid]
batch_line_item = BatchLineItem.find_by_asset_identity(account_no)
if !batch_line_item.nil?
batch_line_item.manufacture_uid = manufacture_uid
batch_line_item.barcode = barcode
batch_line_item.save
# update batch
batch = Batch.find_by_id(batch_line_item.batch_id)
card_qty=batch.qty_processing.to_i
success_qty=batch.qty_success
batch.qty_processing=card_qty+1
batch.qty_success=success_qty+1
batch.save
@out = true,"success"
else
@out = false,"error"
end
end
def get_item_by_batch
batch_id = params[:batch_id]
session_token = params[:session_token]
get_batch = BatchLineItem.where("batch_id=?",batch_id)
if !get_batch.nil?
@out = true,get_batch
else
@out = false,"no batch"
end
end
def code_activate
session_token = params[:session_token]
barcode =params[:barcode]
find_seller = Member.find_by_session_token(session_token)
if !find_seller.nil?
seller_id = find_seller.user_id
find_barcode = BatchLineItem.find_by_barcode(barcode)
if !find_barcode.nil?
find_batch = Batch.find_by_id(find_barcode.batch_id)
if find_batch.export_to_seller_id == seller_id
if find_barcode.is_activated == false
find_barcode.is_activated = true
find_barcode.activated_date = DateTime.now
find_barcode.save
@out = true,"Success"
else
@out = false,"This is already activated!"
end
else
@out = false,"Not Authorized Seller"
end
else
@out = false,"Fail"
end
else
@out = false, "Not Authorized"
end
end
# def check_ticket
# session_token = params[:session_token]
# barcode =params[:barcode]
# find_seller = Member.find_by_session_token(session_token)
# if !find_seller.nil?
# seller_id = find_seller.user_id
# find_barcode = BatchLineItem.find_by_barcode(barcode)
# if !find_barcode.nil?
# @out = true,"valid"
# end
# else
# @out = false, "Not Authorized"
# end
# end
def activated_list
session_token = params[:session_token]
find_seller = Member.find_by_session_token(session_token)
if !find_seller.nil?
total_page_count= 0
page_no = params[:page]
if !page_no.nil? && page_no != ""
offset = (page_no.to_i - 1 ) * 10
else
offset = 0
end
seller_id = find_seller.user_id
get_list = BatchLineItem.select("batch_line_items.id,batch_line_items.barcode,batch_line_items.activated_date").joins("join batches on batches.id=batch_line_items.batch_id").where("batch_line_items.is_activated=? and batches.export_to_seller_id=?",true,seller_id).limit(10).offset(offset)
if get_list.count%10 > 0
total_page_count = get_list.count/10 + 1
else
total_page_count = get_list.count/10
end
if !get_list.nil?
@out = true, get_list, total_page_count
else
@out = false, "No data"
end
else
@out = false, "Not Authorized"
end
end
def seller_info
session_token = params[:session_token]
find_seller = Member.find_by_session_token(session_token)
if !find_seller.nil?
seller_id = find_seller.user_id
total_export_qty = BatchLineItem.select("count(batch_line_items.id)as count").joins("join batches on batches.id=batch_line_items.batch_id").where("batches.export_to_seller_id=?",seller_id)
total_activated_qty = BatchLineItem.select("count(batch_line_items.id)as count").joins("join batches on batches.id=batch_line_items.batch_id").where("batches.export_to_seller_id=? and batch_line_items.is_activated=?",seller_id,true)
@out = true,total_export_qty[0]["count"],total_activated_qty[0]["count"]
else
@out = false,"Not Authorized"
end
end
end