class Public::DocumentsController < ApplicationController

  layout "public"

  before_filter :auth_customer
  before_filter :check_enabled
  before_filter :load_accepted_offer, except: [:download]


  def load_accepted_offer
    @accepted_offer = AcceptedOffer.find(params[:accepted_offer_id])
  end

  def index

    @documents = @accepted_offer.documents

  end


  def download
     @document = Document.find_by_download_token!(params[:download_token])

    if !params[:admin]
      if @document.state == 'document_available'
        @document.state = :document_downloaded
        @document.save

        admins = Admin.where.not(email: nil)
        admins.each do |admin|
          AdminMailer.customer_download_document(admin,   @document, current_customer).deliver
        end
      end
    end
    if @document.particulars

      send_data File.open(@document.get_particularized_document_file_path).read  , :filename =>"negos-document-#{@document.id}.pdf" , :type => 'application/pdf',:disposition => (params[:inline] ? 'inline' : "attachment")

      #render :inline => "j"
    else
      send_file @document.document.file.path
    end

  end

  def download_returned
    @document = @accepted_offer.documents.find(params[:id])
    send_file @document.returned_document.file.path

  end

  def destroy_returned
    @document = @accepted_offer.documents.find(params[:id])
    if @document.returned_document?
      @document.remove_returned_document!
    end
    @document.state = :document_downloaded
    if @document.save
      flash[:success] = "Document chargé"
    else
      flash[:success] = "Impossible de supprimer le document"
    end
    redirect_to :back

  end


  def upload_returned
    if !params[:returned_document]
      flash[:error] = "Vous devez sélectionner un fichier"
    else

      @document = @accepted_offer.documents.find(params[:id])
      @document.returned_document = params[:returned_document]
      if @document.save
        @document.state = :document_returned
        @document.save
        admins = Admin.where.not(email: nil)
        admins.each do |admin|
          AdminMailer.customer_upload_document(admin,   @document, current_customer).deliver
        end
        flash[:success] = "Document chargé"
      else
        flash[:error] = "Impossible de charger le document"
      end
    end
    redirect_to :back

  end


end