# -*- coding: utf-8 -*-
class TopologyFile < ActiveRecord::Base
 # attr_accessor :gen_bill
 # before_save :generate_bill
  belongs_to :report
  belongs_to :employee

  has_attached_file :doc,  :path => ":rails_root/public/docs/topology/:login_name/:basename.:extension", :url => "/docs/topology/:login_name/:basename.:extension"
  before_save :set_vars
 
 Paperclip.interpolates :login_name do |attachment, style|
    attachment.instance.login_name
  end




  def set_vars
    self.created_at = Time.now
    self.employee = Employee.current_user

    if report && report.name
      self.login_name = report.name

      if (login = Login.find_by_ulogin login_name)
        self.login_id = login.id
        self.login_type = "Login"
      else
        loginroot = LoginRoot.find_by_loginroot login_name
        if loginroot
          self.login_id = loginroot.id
          self.login_type = "LoginRoot"
        end
      end

    if self.doc_file_name
      name = self.doc_file_name.split('.')      
      first_name = Digest::MD5.hexdigest(report.name+created_at.to_i.to_s)
      self.doc.instance_write(:file_name, first_name + "." + name.last)
    end

   
      
    end
  end

  private

  validate :file_length
  validate :check_content_type
     
       def check_content_type
        if !['image/jpeg', 'image/gif','image/png'].include?(self.doc_content_type)
        #  errors.add("", "Неверный тип файла. Файл должен иметь расширение jpeg, gif, png") # or errors.add
        end
       end

       def file_length         
         errors.add_to_base "Файл не должен превышать 20 МБ" if doc_file_size > 20.megabytes
       end





end
