# -*- coding: utf-8 -*-
class Login < ActiveRecord::Base
  class << self
    def instance_method_already_implemented?(method_name)
      return true if method_name == 'connection'
      super
    end
  end
  alias_attribute :name, :ulogin
  #establish_connection :request
  set_table_name "requestbase"
  has_one :corpspec, :foreign_key => "id"
  belongs_to :loginroot, :class_name => "LoginRoot", :foreign_key => "loginroot"
  belongs_to :organization, :foreign_key => "org"

  
  def inn
    if corpspec && corpspec.agent
      corpspec.agent.inn0.to_s
    else
      ""
    end
  end

  def org_shortname
    organization.shortname if organization
  end
  

  def full_address    
    "г. Москва, " + Street.find_street(self.alias).to_s + " д." + house.to_s+" "+ building.to_s
  end

  def self.address_for_multiple_logins(login_ids, login_names)
    login_names.compact.each(&:strip!) 
    Login.find_by_sql(["(SELECT id,  
                                   CONCAT_WS(' ', 
                                  'г. Москва,', 
                    IF(s.pre IS NULL or s.pre ='', NULL, s.pre), 
IF(s.npre IS NULL or s.npre='', NULL, s.npre), 
IF(s.name is null or s.name = '', NULL, s.name), 
IF(s.post is null or s.post='', NULL, s.post),  
CONCAT_WS('', IF(l.house is null or l.house = '', NULL, l.house), 
IF(l.fraction is null or l.fraction = '', NULL, CONCAT('/', l.fraction))),
IF(l.block is null or l.block = '', NULL, CONCAT('кор. ', l.block)),
IF(l.building is null or l.building = '', NULL, CONCAT('стр. ', l.building))
) adr, 
l.loginroot ulogin FROM request.object l LEFT JOIN request.street s ON s.alias = l.alias WHERE l.loginroot IN (?) OR l.id IN (?) GROUP BY l.loginroot) 
UNION (SELECT id, 
                                  CONCAT_WS(' ', 
'г. Москва,', 
IF(ss.pre is null or ss.pre = '', NULL, ss.pre), 
IF(ss.npre is null or ss.npre  = '', NULL, ss.npre), 
IF(ss.name is null or ss.name = '', NULL, ss.name), 
IF(ss.post is null or ss.post = '', NULL, ss.post), 
IF(ll.house is null or ll.house = '', NULL, ll.house), 
IF(ll.block is null or ll.block = '', NULL, CONCAT('кор.', ll.block)),
IF(ll.building is null or ll.building = '', NULL, CONCAT('стр.', ll.building))
), 
ll.ulogin FROM request.requestbase ll LEFT JOIN request.street ss ON ss.alias = ll.alias WHERE ll.ulogin IN (?) GROUP BY ll.ulogin)", login_names, login_ids, login_names])

  end


 end


