2013-02-01 19:58:53 +00:00
|
|
|
module Import
|
|
|
|
end
|
2013-01-07 08:46:38 +00:00
|
|
|
module Import::OTRS
|
|
|
|
def self.request(part)
|
2013-01-07 09:30:07 +00:00
|
|
|
url = Setting.get('import_otrs_endpoint') + '/' + part + ';Key=' + Setting.get('import_otrs_endpoint_key')
|
2015-05-05 08:11:31 +00:00
|
|
|
Rails.logger.info 'GET: ' + url
|
2013-09-19 14:17:25 +00:00
|
|
|
response = UserAgent.request(
|
|
|
|
url,
|
|
|
|
{
|
2015-04-27 13:42:53 +00:00
|
|
|
user: Setting.get('import_otrs_user'),
|
|
|
|
password: Setting.get('import_otrs_password'),
|
2013-09-19 14:17:25 +00:00
|
|
|
},
|
|
|
|
)
|
|
|
|
if !response.success?
|
2015-05-05 08:11:31 +00:00
|
|
|
Rails.logger.info "ERROR: #{response.error}"
|
2013-01-25 22:17:50 +00:00
|
|
|
return
|
|
|
|
end
|
2015-04-30 17:20:27 +00:00
|
|
|
response
|
2013-01-07 08:46:38 +00:00
|
|
|
end
|
2013-01-23 23:53:39 +00:00
|
|
|
def self.post(base, data)
|
|
|
|
url = Setting.get('import_otrs_endpoint') + '/' + base
|
|
|
|
data['Key'] = Setting.get('import_otrs_endpoint_key')
|
2015-05-05 08:11:31 +00:00
|
|
|
Rails.logger.info 'POST: ' + url
|
2013-09-19 14:17:25 +00:00
|
|
|
response = UserAgent.request(
|
|
|
|
url,
|
|
|
|
{
|
2015-04-27 13:42:53 +00:00
|
|
|
method: 'post',
|
|
|
|
data: data,
|
|
|
|
user: Setting.get('import_otrs_user'),
|
|
|
|
password: Setting.get('import_otrs_password'),
|
2013-09-19 14:17:25 +00:00
|
|
|
},
|
|
|
|
)
|
|
|
|
if !response.success?
|
2015-05-05 08:11:31 +00:00
|
|
|
Rails.logger.info "ERROR: #{response.error}"
|
2013-09-19 14:17:25 +00:00
|
|
|
return
|
2013-04-15 21:33:11 +00:00
|
|
|
end
|
2015-04-30 17:20:27 +00:00
|
|
|
response
|
2013-01-23 23:53:39 +00:00
|
|
|
end
|
2013-01-07 08:46:38 +00:00
|
|
|
|
|
|
|
def self.json(response)
|
|
|
|
data = Encode.conv( 'utf8', response.body.to_s )
|
|
|
|
JSON.parse( data )
|
|
|
|
end
|
|
|
|
|
2013-01-23 23:53:39 +00:00
|
|
|
def self.auth(username, password)
|
2015-04-27 13:42:53 +00:00
|
|
|
response = post( 'public.pl', { Action: 'Export', Type: 'Auth', User: username, Pw: password } )
|
2013-01-25 22:17:50 +00:00
|
|
|
return if !response
|
2013-09-19 14:17:25 +00:00
|
|
|
return if !response.success?
|
2013-01-23 23:53:39 +00:00
|
|
|
|
|
|
|
result = json(response)
|
2015-04-30 17:20:27 +00:00
|
|
|
result
|
2013-01-23 23:53:39 +00:00
|
|
|
end
|
|
|
|
|
2013-02-17 18:28:32 +00:00
|
|
|
def self.session(session_id)
|
2015-04-27 13:42:53 +00:00
|
|
|
response = post( 'public.pl', { Action: 'Export', Type: 'SessionCheck', SessionID: session_id } )
|
2013-02-17 18:28:32 +00:00
|
|
|
return if !response
|
2013-09-19 14:17:25 +00:00
|
|
|
return if !response.success?
|
2013-02-17 18:28:32 +00:00
|
|
|
|
|
|
|
result = json(response)
|
2015-04-30 17:20:27 +00:00
|
|
|
result
|
2013-02-17 18:28:32 +00:00
|
|
|
end
|
|
|
|
|
2014-03-11 09:23:56 +00:00
|
|
|
def self.permission_sync(user, result, config)
|
|
|
|
|
|
|
|
# check if required OTRS group exists
|
|
|
|
types = {
|
2015-04-27 13:42:53 +00:00
|
|
|
required_group_ro: 'groups_ro',
|
|
|
|
required_group_rw: 'groups_rw',
|
2014-03-11 09:23:56 +00:00
|
|
|
}
|
2015-04-27 14:53:29 +00:00
|
|
|
types.each {|config_key, result_key|
|
2014-03-11 09:23:56 +00:00
|
|
|
if config[config_key]
|
2015-04-30 17:34:33 +00:00
|
|
|
return false if !result[result_key].value?( config[config_key] )
|
2014-03-11 09:23:56 +00:00
|
|
|
end
|
|
|
|
}
|
|
|
|
|
|
|
|
# sync roles / groups
|
|
|
|
if config[:group_ro_role_map] || config[:group_rw_role_map]
|
|
|
|
user.role_ids = []
|
|
|
|
user.save
|
|
|
|
end
|
|
|
|
types = {
|
2015-04-27 13:42:53 +00:00
|
|
|
group_ro_role_map: 'groups_ro',
|
|
|
|
group_rw_role_map: 'groups_rw',
|
2014-03-11 09:23:56 +00:00
|
|
|
}
|
2015-04-27 14:53:29 +00:00
|
|
|
types.each {|config_key, result_key|
|
2014-03-11 09:23:56 +00:00
|
|
|
next if !config[config_key]
|
|
|
|
config[config_key].each {|otrs_group, role|
|
2015-04-30 17:34:33 +00:00
|
|
|
next if !result[result_key].value?( otrs_group )
|
2014-03-11 09:23:56 +00:00
|
|
|
role_ids = user.role_ids
|
2015-04-27 13:42:53 +00:00
|
|
|
role = Role.where( name: role ).first
|
2014-03-11 09:23:56 +00:00
|
|
|
next if !role
|
|
|
|
role_ids.push role.id
|
|
|
|
user.role_ids = role_ids
|
|
|
|
user.save
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if config[:always_role]
|
|
|
|
config[:always_role].each {|role, active|
|
|
|
|
next if !active
|
|
|
|
role_ids = user.role_ids
|
2015-04-27 13:42:53 +00:00
|
|
|
role = Role.where( name: role ).first
|
2014-03-11 09:23:56 +00:00
|
|
|
next if !role
|
|
|
|
role_ids.push role.id
|
|
|
|
user.role_ids = role_ids
|
|
|
|
user.save
|
|
|
|
}
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
2013-01-07 08:46:38 +00:00
|
|
|
def self.start
|
2015-05-05 08:11:31 +00:00
|
|
|
Rails.logger.info 'Start import...'
|
2013-01-07 08:46:38 +00:00
|
|
|
|
2013-01-07 09:30:07 +00:00
|
|
|
# # set system in import mode
|
|
|
|
# Setting.set('import_mode', true)
|
2013-01-07 08:46:38 +00:00
|
|
|
|
|
|
|
# check if system is in import mode
|
|
|
|
if !Setting.get('import_mode')
|
2015-04-30 17:14:51 +00:00
|
|
|
raise 'System is not in import mode!'
|
2013-01-07 08:46:38 +00:00
|
|
|
end
|
|
|
|
|
2015-04-27 13:20:16 +00:00
|
|
|
response = request('public.pl?Action=Export')
|
2013-01-25 22:17:50 +00:00
|
|
|
return if !response
|
2013-09-19 14:17:25 +00:00
|
|
|
return if !response.success?
|
2013-01-07 08:46:38 +00:00
|
|
|
|
|
|
|
#self.ticket('156115')
|
|
|
|
#return
|
|
|
|
# create states
|
2014-06-08 22:01:20 +00:00
|
|
|
state
|
2013-01-07 08:46:38 +00:00
|
|
|
|
|
|
|
# create priorities
|
2014-06-08 22:01:20 +00:00
|
|
|
priority
|
2013-01-07 08:46:38 +00:00
|
|
|
|
|
|
|
# create groups
|
|
|
|
ticket_group
|
|
|
|
|
|
|
|
# create agents
|
|
|
|
user
|
|
|
|
|
|
|
|
# create customers
|
|
|
|
# customer
|
|
|
|
|
|
|
|
result = JSON.parse( response.body )
|
2013-01-25 23:06:21 +00:00
|
|
|
result = result.reverse
|
|
|
|
|
2013-02-01 19:58:53 +00:00
|
|
|
Thread.abort_on_exception = true
|
2013-02-17 20:59:57 +00:00
|
|
|
thread_count = 4
|
2013-01-25 23:06:21 +00:00
|
|
|
threads = {}
|
|
|
|
(1..thread_count).each {|thread|
|
|
|
|
threads[thread] = Thread.new {
|
|
|
|
sleep thread * 3
|
2015-05-05 08:11:31 +00:00
|
|
|
Rails.logger.info "Started import thread# #{thread} ..."
|
2013-02-17 20:59:57 +00:00
|
|
|
run = true
|
|
|
|
while run
|
2013-01-25 23:06:21 +00:00
|
|
|
ticket_ids = result.pop(20)
|
2013-02-17 20:59:57 +00:00
|
|
|
if !ticket_ids.empty?
|
|
|
|
self.ticket(ticket_ids)
|
|
|
|
else
|
2015-05-05 08:11:31 +00:00
|
|
|
Rails.logger.info "... thread# #{thread}, no more work."
|
2013-02-17 20:59:57 +00:00
|
|
|
run = false
|
|
|
|
end
|
2013-01-25 23:06:21 +00:00
|
|
|
end
|
|
|
|
}
|
|
|
|
}
|
|
|
|
(1..thread_count).each {|thread|
|
|
|
|
threads[thread].join
|
|
|
|
}
|
|
|
|
|
2015-05-04 14:21:13 +00:00
|
|
|
end
|
2013-01-07 08:46:38 +00:00
|
|
|
|
2013-05-07 20:45:00 +00:00
|
|
|
def self.diff_worker
|
2013-03-05 06:45:14 +00:00
|
|
|
return if !Setting.get('import_mode')
|
2013-03-10 16:45:48 +00:00
|
|
|
return if Setting.get('import_otrs_endpoint') == 'http://otrs_host/otrs'
|
2013-05-07 20:45:00 +00:00
|
|
|
self.diff
|
2013-02-19 19:04:35 +00:00
|
|
|
end
|
|
|
|
|
2013-02-17 20:59:57 +00:00
|
|
|
def self.diff
|
2015-05-05 08:11:31 +00:00
|
|
|
Rails.logger.info 'Start diff...'
|
2013-02-17 20:59:57 +00:00
|
|
|
|
|
|
|
# check if system is in import mode
|
|
|
|
if !Setting.get('import_mode')
|
2015-04-30 17:14:51 +00:00
|
|
|
raise 'System is not in import mode!'
|
2013-02-17 20:59:57 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
# create states
|
2014-06-08 22:01:20 +00:00
|
|
|
state
|
2013-02-17 20:59:57 +00:00
|
|
|
|
|
|
|
# create priorities
|
2014-06-08 22:01:20 +00:00
|
|
|
priority
|
2013-02-17 20:59:57 +00:00
|
|
|
|
|
|
|
# create groups
|
|
|
|
ticket_group
|
|
|
|
|
|
|
|
# create agents
|
|
|
|
user
|
|
|
|
|
|
|
|
self.ticket_diff()
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.ticket_diff()
|
2015-04-27 13:20:16 +00:00
|
|
|
url = 'public.pl?Action=Export;Type=TicketDiff;Limit=30'
|
2013-02-17 20:59:57 +00:00
|
|
|
response = request( url )
|
|
|
|
return if !response
|
2013-09-19 14:17:25 +00:00
|
|
|
return if !response.success?
|
2013-02-17 20:59:57 +00:00
|
|
|
result = json(response)
|
|
|
|
self._ticket_result(result)
|
|
|
|
end
|
|
|
|
|
2013-01-07 08:46:38 +00:00
|
|
|
def self.ticket(ticket_ids)
|
2015-04-27 13:20:16 +00:00
|
|
|
url = 'public.pl?Action=Export;Type=Ticket;'
|
2013-01-07 08:46:38 +00:00
|
|
|
ticket_ids.each {|ticket_id|
|
|
|
|
url = url + "TicketID=#{CGI::escape ticket_id};"
|
|
|
|
}
|
|
|
|
response = request( url )
|
2013-01-25 22:17:50 +00:00
|
|
|
return if !response
|
2013-09-19 14:17:25 +00:00
|
|
|
return if !response.success?
|
2013-01-07 08:46:38 +00:00
|
|
|
|
|
|
|
result = json(response)
|
2013-02-17 20:59:57 +00:00
|
|
|
self._ticket_result(result)
|
|
|
|
end
|
2013-06-04 12:52:56 +00:00
|
|
|
|
2013-02-17 20:59:57 +00:00
|
|
|
def self._ticket_result(result)
|
2015-05-05 08:11:31 +00:00
|
|
|
# Rails.logger.info result.inspect
|
2013-01-07 08:46:38 +00:00
|
|
|
map = {
|
2015-04-27 13:42:53 +00:00
|
|
|
Ticket: {
|
|
|
|
Changed: :updated_at,
|
|
|
|
Created: :created_at,
|
|
|
|
CreateBy: :created_by_id,
|
|
|
|
TicketNumber: :number,
|
|
|
|
QueueID: :group_id,
|
|
|
|
StateID: :state_id,
|
|
|
|
PriorityID: :priority_id,
|
|
|
|
Owner: :owner,
|
|
|
|
CustomerUserID: :customer,
|
|
|
|
Title: :title,
|
|
|
|
TicketID: :id,
|
|
|
|
FirstResponse: :first_response,
|
2013-04-02 13:03:21 +00:00
|
|
|
# :FirstResponseTimeDestinationDate => :first_response_escal_date,
|
|
|
|
# :FirstResponseInMin => :first_response_in_min,
|
|
|
|
# :FirstResponseDiffInMin => :first_response_diff_in_min,
|
2015-04-27 13:42:53 +00:00
|
|
|
Closed: :close_time,
|
2013-04-02 13:03:21 +00:00
|
|
|
# :SoltutionTimeDestinationDate => :close_time_escal_date,
|
|
|
|
# :CloseTimeInMin => :close_time_in_min,
|
|
|
|
# :CloseTimeDiffInMin => :close_time_diff_in_min,
|
2013-01-07 08:46:38 +00:00
|
|
|
},
|
2015-04-27 13:42:53 +00:00
|
|
|
Article: {
|
|
|
|
SenderType: :sender,
|
|
|
|
ArticleType: :type,
|
|
|
|
TicketID: :ticket_id,
|
|
|
|
ArticleID: :id,
|
|
|
|
Body: :body,
|
|
|
|
From: :from,
|
|
|
|
To: :to,
|
|
|
|
Cc: :cc,
|
|
|
|
Subject: :subject,
|
|
|
|
InReplyTo: :in_reply_to,
|
|
|
|
MessageID: :message_id,
|
2013-01-07 08:46:38 +00:00
|
|
|
# :ReplyTo => :reply_to,
|
2015-04-27 13:42:53 +00:00
|
|
|
References: :references,
|
|
|
|
Changed: :updated_at,
|
|
|
|
Created: :created_at,
|
|
|
|
ChangedBy: :updated_by_id,
|
|
|
|
CreatedBy: :created_by_id,
|
2013-01-07 08:46:38 +00:00
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
result.each {|record|
|
2013-02-01 19:58:53 +00:00
|
|
|
|
|
|
|
# use transaction
|
|
|
|
ActiveRecord::Base.transaction do
|
|
|
|
|
2013-01-07 08:46:38 +00:00
|
|
|
ticket_new = {
|
2015-04-27 13:42:53 +00:00
|
|
|
title: '',
|
|
|
|
created_by_id: 1,
|
|
|
|
updated_by_id: 1,
|
2013-01-07 08:46:38 +00:00
|
|
|
}
|
2015-04-27 14:53:29 +00:00
|
|
|
map[:Ticket].each { |key, value|
|
2013-02-19 07:26:04 +00:00
|
|
|
if record['Ticket'][key.to_s] && record['Ticket'][key.to_s].class == String
|
2013-01-07 08:46:38 +00:00
|
|
|
ticket_new[value] = Encode.conv( 'utf8', record['Ticket'][key.to_s] )
|
2013-02-19 07:26:04 +00:00
|
|
|
else
|
|
|
|
ticket_new[value] = record['Ticket'][key.to_s]
|
2013-01-07 08:46:38 +00:00
|
|
|
end
|
|
|
|
}
|
2015-05-05 08:11:31 +00:00
|
|
|
# Rails.logger.info key.to_s
|
|
|
|
# Rails.logger.info value.to_s
|
|
|
|
#Rails.logger.info 'new ticket data ' + ticket_new.inspect
|
2013-01-07 08:46:38 +00:00
|
|
|
# check if state already exists
|
2015-04-27 13:42:53 +00:00
|
|
|
ticket_old = Ticket.where( id: ticket_new[:id] ).first
|
2015-05-05 08:11:31 +00:00
|
|
|
#Rails.logger.info 'TICKET OLD ' + ticket_old.inspect
|
2013-01-07 08:46:38 +00:00
|
|
|
# find user
|
|
|
|
if ticket_new[:owner]
|
2015-04-27 13:42:53 +00:00
|
|
|
user = User.lookup( login: ticket_new[:owner] )
|
2013-01-07 08:46:38 +00:00
|
|
|
if user
|
|
|
|
ticket_new[:owner_id] = user.id
|
|
|
|
else
|
|
|
|
ticket_new[:owner_id] = 1
|
|
|
|
end
|
|
|
|
ticket_new.delete(:owner)
|
|
|
|
end
|
2013-02-01 19:58:53 +00:00
|
|
|
if ticket_new[:customer]
|
2015-04-27 13:42:53 +00:00
|
|
|
user = User.lookup( login: ticket_new[:customer] )
|
2013-02-01 19:58:53 +00:00
|
|
|
if user
|
|
|
|
ticket_new[:customer_id] = user.id
|
|
|
|
else
|
|
|
|
ticket_new[:customer_id] = 1
|
2013-01-07 08:46:38 +00:00
|
|
|
end
|
2013-02-01 19:58:53 +00:00
|
|
|
ticket_new.delete(:customer)
|
|
|
|
else
|
|
|
|
ticket_new[:customer_id] = 1
|
2013-01-07 08:46:38 +00:00
|
|
|
end
|
2015-05-05 08:11:31 +00:00
|
|
|
# Rails.logger.info 'ttt' + ticket_new.inspect
|
2013-02-01 19:58:53 +00:00
|
|
|
# set state types
|
|
|
|
if ticket_old
|
2015-05-05 08:11:31 +00:00
|
|
|
Rails.logger.info "update Ticket.find(#{ticket_new[:id]})"
|
2013-02-01 19:58:53 +00:00
|
|
|
ticket_old.update_attributes(ticket_new)
|
|
|
|
else
|
2015-05-05 08:11:31 +00:00
|
|
|
Rails.logger.info "add Ticket.find(#{ticket_new[:id]})"
|
2013-02-01 19:58:53 +00:00
|
|
|
ticket = Ticket.new(ticket_new)
|
|
|
|
ticket.id = ticket_new[:id]
|
|
|
|
ticket.save
|
2013-01-07 08:46:38 +00:00
|
|
|
end
|
|
|
|
|
2013-02-01 19:58:53 +00:00
|
|
|
record['Articles'].each { |article|
|
2013-06-04 12:52:56 +00:00
|
|
|
|
2013-02-01 19:58:53 +00:00
|
|
|
# get article values
|
|
|
|
article_new = {
|
2015-04-27 13:42:53 +00:00
|
|
|
created_by_id: 1,
|
|
|
|
updated_by_id: 1,
|
2013-02-01 19:58:53 +00:00
|
|
|
}
|
2015-04-27 14:53:29 +00:00
|
|
|
map[:Article].each { |key, value|
|
2013-02-01 19:58:53 +00:00
|
|
|
if article[key.to_s]
|
|
|
|
article_new[value] = Encode.conv( 'utf8', article[key.to_s] )
|
|
|
|
end
|
|
|
|
}
|
|
|
|
# create customer/sender if needed
|
2014-06-08 22:01:20 +00:00
|
|
|
if article_new[:sender] == 'customer' && article_new[:created_by_id].to_i == 1 && !article_new[:from].empty?
|
2013-02-01 19:58:53 +00:00
|
|
|
# set extra headers
|
|
|
|
begin
|
|
|
|
email = Mail::Address.new( article_new[:from] ).address
|
|
|
|
rescue
|
|
|
|
email = article_new[:from]
|
|
|
|
if article_new[:from] =~ /<(.+?)>/
|
|
|
|
email = $1
|
|
|
|
end
|
|
|
|
end
|
2015-04-27 13:42:53 +00:00
|
|
|
user = User.where( email: email ).first
|
2013-04-18 12:42:28 +00:00
|
|
|
if !user
|
2015-04-27 13:42:53 +00:00
|
|
|
user = User.where( login: email ).first
|
2013-04-18 12:42:28 +00:00
|
|
|
end
|
2013-02-01 19:58:53 +00:00
|
|
|
if !user
|
|
|
|
begin
|
|
|
|
display_name = Mail::Address.new( article_new[:from] ).display_name ||
|
2015-05-01 12:27:57 +00:00
|
|
|
( Mail::Address.new( article_new[:from] ).comments && Mail::Address.new( article_new[:from] ).comments[0] )
|
2013-02-01 19:58:53 +00:00
|
|
|
rescue
|
|
|
|
display_name = article_new[:from]
|
|
|
|
end
|
2013-06-04 12:52:56 +00:00
|
|
|
|
2013-02-01 19:58:53 +00:00
|
|
|
# do extra decoding because we needed to use field.value
|
|
|
|
display_name = Mail::Field.new( 'X-From', display_name ).to_s
|
2013-06-04 12:52:56 +00:00
|
|
|
|
2015-04-27 13:42:53 +00:00
|
|
|
roles = Role.lookup( name: 'Customer' )
|
2013-02-01 19:58:53 +00:00
|
|
|
user = User.create(
|
2015-04-27 13:42:53 +00:00
|
|
|
login: email,
|
|
|
|
firstname: display_name,
|
|
|
|
lastname: '',
|
|
|
|
email: email,
|
|
|
|
password: '',
|
|
|
|
active: true,
|
|
|
|
role_ids: [roles.id],
|
|
|
|
updated_by_id: 1,
|
|
|
|
created_by_id: 1,
|
2013-02-01 19:58:53 +00:00
|
|
|
)
|
|
|
|
end
|
|
|
|
article_new[:created_by_id] = user.id
|
2013-01-07 22:27:32 +00:00
|
|
|
end
|
2013-06-04 12:52:56 +00:00
|
|
|
|
2014-06-08 22:01:20 +00:00
|
|
|
if article_new[:sender] == 'customer'
|
2015-04-27 13:42:53 +00:00
|
|
|
article_new[:sender_id] = Ticket::Article::Sender.lookup( name: 'Customer' ).id
|
2014-06-08 22:01:20 +00:00
|
|
|
article_new.delete( :sender )
|
2013-01-07 22:27:32 +00:00
|
|
|
end
|
2014-06-08 22:01:20 +00:00
|
|
|
if article_new[:sender] == 'agent'
|
2015-04-27 13:42:53 +00:00
|
|
|
article_new[:sender_id] = Ticket::Article::Sender.lookup( name: 'Agent' ).id
|
2014-06-08 22:01:20 +00:00
|
|
|
article_new.delete( :sender )
|
2013-02-01 19:58:53 +00:00
|
|
|
end
|
2014-06-08 22:01:20 +00:00
|
|
|
if article_new[:sender] == 'system'
|
2015-04-27 13:42:53 +00:00
|
|
|
article_new[:sender_id] = Ticket::Article::Sender.lookup( name: 'System' ).id
|
2014-06-08 22:01:20 +00:00
|
|
|
article_new.delete( :sender )
|
2013-02-01 19:58:53 +00:00
|
|
|
end
|
2013-06-04 12:52:56 +00:00
|
|
|
|
2014-06-08 22:01:20 +00:00
|
|
|
if article_new[:type] == 'email-external'
|
2015-04-27 13:42:53 +00:00
|
|
|
article_new[:type_id] = Ticket::Article::Type.lookup( name: 'email' ).id
|
2013-02-01 19:58:53 +00:00
|
|
|
article_new[:internal] = false
|
2014-06-08 22:01:20 +00:00
|
|
|
elsif article_new[:type] == 'email-internal'
|
2015-04-27 13:42:53 +00:00
|
|
|
article_new[:type_id] = Ticket::Article::Type.lookup( name: 'email' ).id
|
2013-02-01 19:58:53 +00:00
|
|
|
article_new[:internal] = true
|
2014-06-08 22:01:20 +00:00
|
|
|
elsif article_new[:type] == 'note-external'
|
2015-04-27 13:42:53 +00:00
|
|
|
article_new[:type_id] = Ticket::Article::Type.lookup( name: 'note' ).id
|
2013-02-01 19:58:53 +00:00
|
|
|
article_new[:internal] = false
|
2014-06-08 22:01:20 +00:00
|
|
|
elsif article_new[:type] == 'note-internal'
|
2015-04-27 13:42:53 +00:00
|
|
|
article_new[:type_id] = Ticket::Article::Type.lookup( name: 'note' ).id
|
2013-02-01 19:58:53 +00:00
|
|
|
article_new[:internal] = true
|
2014-06-08 22:01:20 +00:00
|
|
|
elsif article_new[:type] == 'phone'
|
2015-04-27 13:42:53 +00:00
|
|
|
article_new[:type_id] = Ticket::Article::Type.lookup( name: 'phone' ).id
|
2013-02-01 19:58:53 +00:00
|
|
|
article_new[:internal] = false
|
2014-06-08 22:01:20 +00:00
|
|
|
elsif article_new[:type] == 'webrequest'
|
2015-04-27 13:42:53 +00:00
|
|
|
article_new[:type_id] = Ticket::Article::Type.lookup( name: 'web' ).id
|
2013-02-01 19:58:53 +00:00
|
|
|
article_new[:internal] = false
|
|
|
|
else
|
2014-06-08 22:01:20 +00:00
|
|
|
article_new[:type_id] = 9
|
2013-02-01 19:58:53 +00:00
|
|
|
end
|
2014-06-08 22:01:20 +00:00
|
|
|
article_new.delete( :type )
|
2015-04-27 13:42:53 +00:00
|
|
|
article_old = Ticket::Article.where( id: article_new[:id] ).first
|
2015-05-05 08:11:31 +00:00
|
|
|
#Rails.logger.info 'ARTICLE OLD ' + article_old.inspect
|
2013-02-01 19:58:53 +00:00
|
|
|
# set state types
|
|
|
|
if article_old
|
2015-05-05 08:11:31 +00:00
|
|
|
Rails.logger.info "update Ticket::Article.find(#{article_new[:id]})"
|
|
|
|
# Rails.logger.info article_new.inspect
|
2013-02-01 19:58:53 +00:00
|
|
|
article_old.update_attributes(article_new)
|
|
|
|
else
|
2015-05-05 08:11:31 +00:00
|
|
|
Rails.logger.info "add Ticket::Article.find(#{article_new[:id]})"
|
2013-02-01 19:58:53 +00:00
|
|
|
article = Ticket::Article.new(article_new)
|
|
|
|
article.id = article_new[:id]
|
|
|
|
article.save
|
|
|
|
end
|
2013-06-04 12:52:56 +00:00
|
|
|
|
2013-02-01 19:58:53 +00:00
|
|
|
}
|
2013-06-04 12:52:56 +00:00
|
|
|
|
2013-02-01 19:58:53 +00:00
|
|
|
record['History'].each { |history|
|
2015-05-05 08:11:31 +00:00
|
|
|
# Rails.logger.info '-------'
|
|
|
|
# Rails.logger.info history.inspect
|
2013-02-01 19:58:53 +00:00
|
|
|
if history['HistoryType'] == 'NewTicket'
|
2013-06-04 12:52:56 +00:00
|
|
|
History.add(
|
2015-04-27 13:42:53 +00:00
|
|
|
id: history['HistoryID'],
|
|
|
|
o_id: history['TicketID'],
|
|
|
|
history_type: 'created',
|
|
|
|
history_object: 'Ticket',
|
|
|
|
created_at: history['CreateTime'],
|
|
|
|
created_by_id: history['CreateBy']
|
2013-02-01 19:58:53 +00:00
|
|
|
)
|
|
|
|
end
|
|
|
|
if history['HistoryType'] == 'StateUpdate'
|
|
|
|
data = history['Name']
|
|
|
|
# "%%new%%open%%"
|
|
|
|
from = nil
|
|
|
|
to = nil
|
|
|
|
if data =~ /%%(.+?)%%(.+?)%%/
|
|
|
|
from = $1
|
|
|
|
to = $2
|
2015-04-27 13:42:53 +00:00
|
|
|
state_from = Ticket::State.lookup( name: from )
|
|
|
|
state_to = Ticket::State.lookup( name: to )
|
2013-02-01 19:58:53 +00:00
|
|
|
if state_from
|
|
|
|
from_id = state_from.id
|
|
|
|
end
|
|
|
|
if state_to
|
|
|
|
to_id = state_to.id
|
|
|
|
end
|
|
|
|
end
|
2015-05-05 08:11:31 +00:00
|
|
|
# Rails.logger.info "STATE UPDATE (#{history['HistoryID']}): -> #{from}->#{to}"
|
2013-06-04 12:52:56 +00:00
|
|
|
History.add(
|
2015-04-27 13:42:53 +00:00
|
|
|
id: history['HistoryID'],
|
|
|
|
o_id: history['TicketID'],
|
|
|
|
history_type: 'updated',
|
|
|
|
history_object: 'Ticket',
|
|
|
|
history_attribute: 'state',
|
|
|
|
value_from: from,
|
|
|
|
id_from: from_id,
|
|
|
|
value_to: to,
|
|
|
|
id_to: to_id,
|
|
|
|
created_at: history['CreateTime'],
|
|
|
|
created_by_id: history['CreateBy']
|
2013-02-01 19:58:53 +00:00
|
|
|
)
|
|
|
|
end
|
|
|
|
if history['HistoryType'] == 'Move'
|
|
|
|
data = history['Name']
|
|
|
|
# "%%Queue1%%5%%Postmaster%%1"
|
|
|
|
from = nil
|
|
|
|
to = nil
|
|
|
|
if data =~ /%%(.+?)%%(.+?)%%(.+?)%%(.+?)$/
|
|
|
|
from = $1
|
|
|
|
from_id = $2
|
|
|
|
to = $3
|
|
|
|
to_id = $4
|
|
|
|
end
|
2013-06-04 12:52:56 +00:00
|
|
|
History.add(
|
2015-04-27 13:42:53 +00:00
|
|
|
id: history['HistoryID'],
|
|
|
|
o_id: history['TicketID'],
|
|
|
|
history_type: 'updated',
|
|
|
|
history_object: 'Ticket',
|
|
|
|
history_attribute: 'group',
|
|
|
|
value_from: from,
|
|
|
|
value_to: to,
|
|
|
|
id_from: from_id,
|
|
|
|
id_to: to_id,
|
|
|
|
created_at: history['CreateTime'],
|
|
|
|
created_by_id: history['CreateBy']
|
2013-02-01 19:58:53 +00:00
|
|
|
)
|
|
|
|
end
|
|
|
|
if history['HistoryType'] == 'PriorityUpdate'
|
|
|
|
data = history['Name']
|
|
|
|
# "%%3 normal%%3%%5 very high%%5"
|
|
|
|
from = nil
|
|
|
|
to = nil
|
|
|
|
if data =~ /%%(.+?)%%(.+?)%%(.+?)%%(.+?)$/
|
|
|
|
from = $1
|
|
|
|
from_id = $2
|
|
|
|
to = $3
|
|
|
|
to_id = $4
|
|
|
|
end
|
2013-06-04 12:52:56 +00:00
|
|
|
History.add(
|
2015-04-27 13:42:53 +00:00
|
|
|
id: history['HistoryID'],
|
|
|
|
o_id: history['TicketID'],
|
|
|
|
history_type: 'updated',
|
|
|
|
history_object: 'Ticket',
|
|
|
|
history_attribute: 'priority',
|
|
|
|
value_from: from,
|
|
|
|
value_to: to,
|
|
|
|
id_from: from_id,
|
|
|
|
id_to: to_id,
|
|
|
|
created_at: history['CreateTime'],
|
|
|
|
created_by_id: history['CreateBy']
|
2013-02-01 19:58:53 +00:00
|
|
|
)
|
|
|
|
end
|
|
|
|
if history['ArticleID'] && history['ArticleID'] != 0
|
2013-06-04 12:52:56 +00:00
|
|
|
History.add(
|
2015-04-27 13:42:53 +00:00
|
|
|
id: history['HistoryID'],
|
|
|
|
o_id: history['ArticleID'],
|
|
|
|
history_type: 'created',
|
|
|
|
history_object: 'Ticket::Article',
|
|
|
|
related_o_id: history['TicketID'],
|
|
|
|
related_history_object: 'Ticket',
|
|
|
|
created_at: history['CreateTime'],
|
|
|
|
created_by_id: history['CreateBy']
|
2013-02-01 19:58:53 +00:00
|
|
|
)
|
|
|
|
end
|
|
|
|
}
|
2013-01-07 08:46:38 +00:00
|
|
|
end
|
|
|
|
}
|
|
|
|
end
|
|
|
|
|
2014-06-08 22:01:20 +00:00
|
|
|
def self.state
|
2015-04-27 13:20:16 +00:00
|
|
|
response = request( 'public.pl?Action=Export;Type=State' )
|
2013-01-25 22:17:50 +00:00
|
|
|
return if !response
|
2013-09-19 14:17:25 +00:00
|
|
|
return if !response.success?
|
2013-01-07 08:46:38 +00:00
|
|
|
|
|
|
|
result = json(response)
|
2015-05-05 08:11:31 +00:00
|
|
|
# Rails.logger.info result.inspect
|
2013-01-07 08:46:38 +00:00
|
|
|
map = {
|
2015-04-27 13:42:53 +00:00
|
|
|
ChangeTime: :updated_at,
|
|
|
|
CreateTime: :created_at,
|
|
|
|
CreateBy: :created_by_id,
|
|
|
|
ChangeBy: :updated_by_id,
|
|
|
|
Name: :name,
|
|
|
|
ID: :id,
|
|
|
|
ValidID: :active,
|
|
|
|
Comment: :note,
|
2015-04-30 17:54:08 +00:00
|
|
|
}
|
2013-01-07 08:46:38 +00:00
|
|
|
|
|
|
|
Ticket::State.all.each {|state|
|
|
|
|
state.name = state.name + '_tmp'
|
|
|
|
state.save
|
|
|
|
}
|
|
|
|
|
|
|
|
result.each { |state|
|
|
|
|
_set_valid(state)
|
|
|
|
|
|
|
|
# get new attributes
|
|
|
|
state_new = {
|
2015-04-27 13:42:53 +00:00
|
|
|
created_by_id: 1,
|
|
|
|
updated_by_id: 1,
|
2013-01-07 08:46:38 +00:00
|
|
|
}
|
2015-04-27 14:53:29 +00:00
|
|
|
map.each { |key, value|
|
2013-01-07 08:46:38 +00:00
|
|
|
if state[key.to_s]
|
|
|
|
state_new[value] = state[key.to_s]
|
|
|
|
end
|
|
|
|
}
|
|
|
|
|
|
|
|
# check if state already exists
|
2015-04-27 13:42:53 +00:00
|
|
|
state_old = Ticket::State.where( id: state_new[:id] ).first
|
2015-05-05 08:11:31 +00:00
|
|
|
# Rails.logger.info 'st: ' + state['TypeName']
|
2013-01-07 08:46:38 +00:00
|
|
|
|
|
|
|
# set state types
|
|
|
|
if state['TypeName'] == 'pending auto'
|
|
|
|
state['TypeName'] = 'pending action'
|
|
|
|
end
|
2015-04-27 13:42:53 +00:00
|
|
|
state_type = Ticket::StateType.where( name: state['TypeName'] ).first
|
2014-06-08 22:01:20 +00:00
|
|
|
state_new[:state_type_id] = state_type.id
|
2013-01-07 08:46:38 +00:00
|
|
|
if state_old
|
2015-05-05 08:11:31 +00:00
|
|
|
# Rails.logger.info 'TS: ' + state_new.inspect
|
2013-01-07 08:46:38 +00:00
|
|
|
state_old.update_attributes(state_new)
|
|
|
|
else
|
|
|
|
state = Ticket::State.new(state_new)
|
|
|
|
state.id = state_new[:id]
|
|
|
|
state.save
|
|
|
|
end
|
|
|
|
}
|
|
|
|
end
|
2014-06-08 22:01:20 +00:00
|
|
|
def self.priority
|
2015-04-27 13:20:16 +00:00
|
|
|
response = request( 'public.pl?Action=Export;Type=Priority' )
|
2013-01-25 22:17:50 +00:00
|
|
|
return if !response
|
2013-09-19 14:17:25 +00:00
|
|
|
return if !response.success?
|
2013-01-07 08:46:38 +00:00
|
|
|
|
|
|
|
result = json(response)
|
|
|
|
map = {
|
2015-04-27 13:42:53 +00:00
|
|
|
ChangeTime: :updated_at,
|
|
|
|
CreateTime: :created_at,
|
|
|
|
CreateBy: :created_by_id,
|
|
|
|
ChangeBy: :updated_by_id,
|
|
|
|
Name: :name,
|
|
|
|
ID: :id,
|
|
|
|
ValidID: :active,
|
|
|
|
Comment: :note,
|
2015-04-30 17:54:08 +00:00
|
|
|
}
|
2013-01-07 08:46:38 +00:00
|
|
|
|
|
|
|
result.each { |priority|
|
|
|
|
_set_valid(priority)
|
|
|
|
|
|
|
|
# get new attributes
|
|
|
|
priority_new = {
|
2015-04-27 13:42:53 +00:00
|
|
|
created_by_id: 1,
|
|
|
|
updated_by_id: 1,
|
2013-01-07 08:46:38 +00:00
|
|
|
}
|
2015-04-27 14:53:29 +00:00
|
|
|
map.each { |key, value|
|
2013-01-07 08:46:38 +00:00
|
|
|
if priority[key.to_s]
|
|
|
|
priority_new[value] = priority[key.to_s]
|
|
|
|
end
|
|
|
|
}
|
|
|
|
|
|
|
|
# check if state already exists
|
2015-04-27 13:42:53 +00:00
|
|
|
priority_old = Ticket::Priority.where( id: priority_new[:id] ).first
|
2013-01-07 08:46:38 +00:00
|
|
|
|
|
|
|
# set state types
|
|
|
|
if priority_old
|
|
|
|
priority_old.update_attributes(priority_new)
|
|
|
|
else
|
|
|
|
priority = Ticket::Priority.new(priority_new)
|
|
|
|
priority.id = priority_new[:id]
|
|
|
|
priority.save
|
|
|
|
end
|
|
|
|
}
|
|
|
|
end
|
|
|
|
def self.ticket_group
|
2015-04-27 13:20:16 +00:00
|
|
|
response = request( 'public.pl?Action=Export;Type=Queue' )
|
2013-01-25 22:17:50 +00:00
|
|
|
return if !response
|
2013-09-19 14:17:25 +00:00
|
|
|
return if !response.success?
|
2013-01-07 08:46:38 +00:00
|
|
|
|
|
|
|
result = json(response)
|
|
|
|
map = {
|
2015-04-27 13:42:53 +00:00
|
|
|
ChangeTime: :updated_at,
|
|
|
|
CreateTime: :created_at,
|
|
|
|
CreateBy: :created_by_id,
|
|
|
|
ChangeBy: :updated_by_id,
|
|
|
|
Name: :name,
|
|
|
|
QueueID: :id,
|
|
|
|
ValidID: :active,
|
|
|
|
Comment: :note,
|
2015-04-30 17:54:08 +00:00
|
|
|
}
|
2013-01-07 08:46:38 +00:00
|
|
|
|
|
|
|
result.each { |group|
|
|
|
|
_set_valid(group)
|
|
|
|
|
|
|
|
# get new attributes
|
|
|
|
group_new = {
|
2015-04-27 13:42:53 +00:00
|
|
|
created_by_id: 1,
|
|
|
|
updated_by_id: 1,
|
2013-01-07 08:46:38 +00:00
|
|
|
}
|
2015-04-27 14:53:29 +00:00
|
|
|
map.each { |key, value|
|
2013-01-07 08:46:38 +00:00
|
|
|
if group[key.to_s]
|
|
|
|
group_new[value] = group[key.to_s]
|
|
|
|
end
|
|
|
|
}
|
|
|
|
|
|
|
|
# check if state already exists
|
2015-04-27 13:42:53 +00:00
|
|
|
group_old = Group.where( id: group_new[:id] ).first
|
2013-01-07 08:46:38 +00:00
|
|
|
|
|
|
|
# set state types
|
|
|
|
if group_old
|
|
|
|
group_old.update_attributes(group_new)
|
|
|
|
else
|
|
|
|
group = Group.new(group_new)
|
|
|
|
group.id = group_new[:id]
|
|
|
|
group.save
|
|
|
|
end
|
|
|
|
}
|
|
|
|
end
|
|
|
|
def self.user
|
2015-04-27 13:20:16 +00:00
|
|
|
response = request( 'public.pl?Action=Export;Type=User' )
|
2013-01-25 22:17:50 +00:00
|
|
|
return if !response
|
2013-09-19 14:17:25 +00:00
|
|
|
return if !response.success?
|
2013-01-07 08:46:38 +00:00
|
|
|
result = json(response)
|
|
|
|
map = {
|
2015-04-27 13:42:53 +00:00
|
|
|
ChangeTime: :updated_at,
|
|
|
|
CreateTime: :created_at,
|
|
|
|
CreateBy: :created_by_id,
|
|
|
|
ChangeBy: :updated_by_id,
|
|
|
|
UserID: :id,
|
|
|
|
ValidID: :active,
|
|
|
|
Comment: :note,
|
|
|
|
UserEmail: :email,
|
|
|
|
UserFirstname: :firstname,
|
|
|
|
UserLastname: :lastname,
|
|
|
|
UserLogin: :login,
|
|
|
|
UserPw: :password,
|
2015-04-30 17:54:08 +00:00
|
|
|
}
|
2013-01-07 08:46:38 +00:00
|
|
|
|
|
|
|
result.each { |user|
|
2015-05-05 08:11:31 +00:00
|
|
|
# Rails.logger.info 'USER: ' + user.inspect
|
2015-04-30 17:14:51 +00:00
|
|
|
_set_valid(user)
|
2013-01-07 08:46:38 +00:00
|
|
|
|
2015-04-30 17:14:51 +00:00
|
|
|
role = Role.lookup( name: 'Agent' )
|
|
|
|
# get new attributes
|
|
|
|
user_new = {
|
|
|
|
created_by_id: 1,
|
|
|
|
updated_by_id: 1,
|
|
|
|
source: 'OTRS Import',
|
|
|
|
role_ids: [ role.id ],
|
|
|
|
}
|
|
|
|
map.each { |key, value|
|
|
|
|
if user[key.to_s]
|
|
|
|
user_new[value] = user[key.to_s]
|
|
|
|
end
|
|
|
|
}
|
2013-01-07 08:46:38 +00:00
|
|
|
|
2015-04-30 17:14:51 +00:00
|
|
|
# check if state already exists
|
|
|
|
user_old = User.where( id: user_new[:id] ).first
|
2013-01-07 08:46:38 +00:00
|
|
|
|
|
|
|
# set state types
|
2015-04-30 17:14:51 +00:00
|
|
|
if user_old
|
2015-05-05 08:11:31 +00:00
|
|
|
Rails.logger.info "update User.find(#{user_new[:id]})"
|
|
|
|
# Rails.logger.info 'Update User' + user_new.inspect
|
2015-04-30 17:14:51 +00:00
|
|
|
user_new.delete( :role_ids )
|
|
|
|
user_old.update_attributes(user_new)
|
|
|
|
else
|
2015-05-05 08:11:31 +00:00
|
|
|
Rails.logger.info "add User.find(#{user_new[:id]})"
|
|
|
|
# Rails.logger.info 'Add User' + user_new.inspect
|
2015-04-30 17:14:51 +00:00
|
|
|
user = User.new(user_new)
|
|
|
|
user.id = user_new[:id]
|
|
|
|
user.save
|
|
|
|
end
|
2013-01-07 08:46:38 +00:00
|
|
|
}
|
|
|
|
end
|
|
|
|
def self.customer
|
|
|
|
done = false
|
|
|
|
count = 0
|
|
|
|
while done == false
|
|
|
|
sleep 2
|
2015-05-05 08:11:31 +00:00
|
|
|
Rails.logger.info "Count=#{count};Offset=#{count}"
|
2013-01-07 09:30:07 +00:00
|
|
|
response = request( "public.pl?Action=Export;Type=Customer;Count=100;Offset=#{count}" )
|
2013-01-25 22:17:50 +00:00
|
|
|
return if !response
|
2013-01-07 08:46:38 +00:00
|
|
|
count = count + 3000
|
2013-09-19 14:17:25 +00:00
|
|
|
return if !response.success?
|
2013-01-07 08:46:38 +00:00
|
|
|
result = json(response)
|
|
|
|
map = {
|
2015-04-27 13:42:53 +00:00
|
|
|
ChangeTime: :updated_at,
|
|
|
|
CreateTime: :created_at,
|
|
|
|
CreateBy: :created_by_id,
|
|
|
|
ChangeBy: :updated_by_id,
|
|
|
|
ValidID: :active,
|
|
|
|
UserComment: :note,
|
|
|
|
UserEmail: :email,
|
|
|
|
UserFirstname: :firstname,
|
|
|
|
UserLastname: :lastname,
|
|
|
|
UserLogin: :login,
|
|
|
|
UserPassword: :password,
|
|
|
|
UserPhone: :phone,
|
|
|
|
UserFax: :fax,
|
|
|
|
UserMobile: :mobile,
|
|
|
|
UserStreet: :street,
|
|
|
|
UserZip: :zip,
|
|
|
|
UserCity: :city,
|
|
|
|
UserCountry: :country,
|
2015-04-30 17:54:08 +00:00
|
|
|
}
|
2013-01-07 08:46:38 +00:00
|
|
|
|
|
|
|
done = true
|
|
|
|
result.each { |user|
|
|
|
|
done = false
|
|
|
|
_set_valid(user)
|
|
|
|
|
2015-04-27 13:42:53 +00:00
|
|
|
role = Role.lookup( name: 'Customer' )
|
2013-01-25 23:06:21 +00:00
|
|
|
|
2013-01-07 08:46:38 +00:00
|
|
|
# get new attributes
|
|
|
|
user_new = {
|
2015-04-27 13:42:53 +00:00
|
|
|
created_by_id: 1,
|
|
|
|
updated_by_id: 1,
|
|
|
|
source: 'OTRS Import',
|
|
|
|
role_ids: [role.id],
|
2013-01-07 08:46:38 +00:00
|
|
|
}
|
2015-04-27 14:53:29 +00:00
|
|
|
map.each { |key, value|
|
2013-01-07 08:46:38 +00:00
|
|
|
if user[key.to_s]
|
|
|
|
user_new[value] = user[key.to_s]
|
|
|
|
end
|
|
|
|
}
|
|
|
|
|
|
|
|
# check if state already exists
|
2015-04-30 17:14:51 +00:00
|
|
|
# user_old = User.where( :login => user_new[:login] ).first
|
2015-04-27 13:42:53 +00:00
|
|
|
user_old = User.where( login: user_new[:login] ).first
|
2013-01-07 08:46:38 +00:00
|
|
|
|
|
|
|
# set state types
|
|
|
|
if user_old
|
2015-05-05 08:11:31 +00:00
|
|
|
Rails.logger.info "update User.find(#{user_new[:id]})"
|
|
|
|
# Rails.logger.info 'Update User' + user_new.inspect
|
2013-01-07 08:46:38 +00:00
|
|
|
user_old.update_attributes(user_new)
|
|
|
|
else
|
2015-05-05 08:11:31 +00:00
|
|
|
# Rails.logger.info 'Add User' + user_new.inspect
|
|
|
|
Rails.logger.info "add User.find(#{user_new[:id]})"
|
2013-01-07 08:46:38 +00:00
|
|
|
user = User.new(user_new)
|
|
|
|
user.save
|
|
|
|
end
|
|
|
|
}
|
|
|
|
end
|
|
|
|
end
|
|
|
|
def self._set_valid(record)
|
|
|
|
# map
|
2015-04-30 17:14:51 +00:00
|
|
|
if record['ValidID'] == '3'
|
|
|
|
record['ValidID'] = '2'
|
|
|
|
end
|
|
|
|
if record['ValidID'] == '2'
|
|
|
|
record['ValidID'] = false
|
|
|
|
end
|
|
|
|
if record['ValidID'] == '1'
|
|
|
|
record['ValidID'] = true
|
|
|
|
end
|
|
|
|
if record['ValidID'] == '0'
|
|
|
|
record['ValidID'] = false
|
|
|
|
end
|
2013-01-07 08:46:38 +00:00
|
|
|
end
|
|
|
|
end
|