# -*- coding: utf-8 -*-
class RepLogin < ActiveRecord::Base
  def self.table_name() 
    db_name = Rails.configuration.database_configuration[Rails.env]["database"]
    db_name+".rep_logins" 
  end

  belongs_to :report
  belongs_to :material
  belongs_to :login_from, :class_name =>"LoginRoot", :foreign_key => 'from_id'
  belongs_to :login_to, :class_name =>"LoginRoot", :foreign_key => 'to_id'
  belongs_to :done_material, :dependent => :destroy
  attr_accessor :from, :to

#  after_create :add_done_material
#  before_destroy :destroy_from_store

  def from_name
    if login_from
      login_from.loginroot
    else
      ''
    end
  end

  def to_name
    if login_to
      login_to.loginroot
    else
      ''
    end
  end

  def from_address
    if login_from
      login_from.full_address
    else
      ''
    end
  end
  def to_address
    if login_to
      login_to.full_address
    else
      ''
    end
  end


  def material_name
    if done_material
      done_material.material_name
    else
      ''
    end
  end

  private

  def add_done_material
    if material_id
    dm = DoneMaterial.new
    dm.material_name =  Remote::Store.find(:first, :from => "/sdelka/asset/#{material_id.to_s}.xml").name
    dm.material_id = material_id
    dm.count = cable_length
    dm.report = report
    dm.store_employee_id =  Remote::Store.find(:first, :from => "/sdelka/identify_person/Narbelet.xml").id
    dm.employee_name = "Narbelet"
    dm.employee_id = (Employee.find_by_login 'Narbelet').id
    dm.save
    self.update_attributes(:done_material_id => dm.id)
    end
  end

  def destroy_from_store
    if done_material && done_material.store_id && cable_length.to_i > 0
        begin
          result =  Remote::Store.find(:first, :from => "/sdelka/destroy_report/#{report_id.to_s}/#{report.department}/#{done_material.store_id.to_s}.xml")
        rescue ActiveResource::ResourceNotFound, ActiveResource::ResourceConflict, ActiveResource::ResourceInvalid
          errors.add_to_base "Не возможно проведение по складу!"
          return false
        end
    end
  end


end
