negos_app/app/controllers/admin/documents_controller.rb
Nicolas Bally c978bbfc37 pdfs
2016-09-20 22:33:03 +02:00

160 lines
4.2 KiB
Ruby
Executable File

class Admin::DocumentsController < ApplicationController
layout "admin"
before_filter :auth_admin
before_filter :load_offer, :except => [:edit, :update]
def edit
@document = Document.find(params[:id])
end
def update
@document = Document.find(params[:id])
if @document.update_attributes(params.require(:document).permit!)
else
render :action => "edit"
end
end
def create
@accepted_offer.documents.create({title: params[:document][:title]})
if @accepted_offer.save
flash[:success] = "Document créé"
else
flash[:error] = "Impossible de créer le document"
end
redirect_to :back
end
def upload_document
if !params[:document]
flash[:error] = "Vous devez sélectionner un fichier"
else
@document = @accepted_offer.documents.find(params[:document_id])
@document.document = params[:document]
if @document.save
@document.state = :document_available
CustomerMailer.document_available(@accepted_offer.customer, @document).deliver
if @document.returned_document?
@document.remove_returned_document!
end
@document.save
flash[:success] = "Document chargé"
else
flash[:error] = "Impossible de charger le document"
end
end
redirect_to :back
end
def upload_returned_document
if !params[:returned_document]
flash[:error] = "Vous devez sélectionner un fichier"
else
@document = @accepted_offer.documents.find(params[:document_id])
@document.returned_document = params[:returned_document]
if @document.save
@document.state = :document_returned
@document.save
flash[:success] = "Document chargé"
else
flash[:error] = "Impossible de charger le document"
end
end
redirect_to :back
end
def load_offer
@offer = Offer.find(params[:offer_id])
@accepted_offer = @offer.accepted_offers.find(params[:accepted_offer_id])
end
def download
@document = @accepted_offer.documents.find(params[:document_id])
send_file @document.document.file.path
end
def download_returned
@document = @accepted_offer.documents.find(params[:document_id])
send_file @document.returned_document.file.path
end
def delete
@document = @accepted_offer.documents.find(params[:document_id])
if @document.document? && @document.state != :document_verified
@document.remove_document!
if @document.returned_document?
@document.remove_returned_document!
end
@document.state = :not_available
@document.save
flash[:success] = "Fichier supprimé"
else
flash[:error] = "Impossible de supprimer le fichier"
end
redirect_to :back
end
def destroy
@document = @accepted_offer.documents.find(params[:document_id])
if @document.destroy
flash[:success] = "Document Supprimé"
else
flash[:error] = "Impossible de supprimer le document"
end
redirect_to :back
end
def delete_returned
@document = @accepted_offer.documents.find(params[:document_id])
if @document.returned_document? && @document.state != :document_verified
@document.remove_returned_document!
@document.state = :document_available
@document.save
flash[:success] = "Fichier supprimé"
else
flash[:error] = "Impossible de supprimer le fichier"
end
redirect_to :back
end
def force_verified
@document = @accepted_offer.documents.find(params[:document_id])
@document.state = :document_verified
if @document.save
flash[:success] = "Document vérifié"
else
flash[:error] = "Impossible vérifier le document"
end
redirect_to :back
end
def verify_returned
@document = @accepted_offer.documents.find(params[:document_id])
@document.state = :document_verified
if @document.save
CustomerMailer.document_verified(@accepted_offer.customer, @document).deliver
flash[:success] = "Document vérifié"
else
flash[:error] = "Impossible vérifier le document"
end
redirect_to :back
end
end