class IncomingsController < ApplicationController before_filter :check_authentication # Creates a new Incoming from the passed form parameters and redirects to the # Asset page. #-- # POST /incomings def create asset = Asset.find(session[:asset_id]) incoming = Incoming.create incoming.asset_id = asset.id incoming.category_id = params[:incoming][:category_id] incoming.transaction_date = get_date( params[:incoming]['transaction_date(1i)'], params[:incoming]['transaction_date(2i)'], params[:incoming]['transaction_date(3i)']) incoming.amount = params[:incoming][:amount] incoming.balance = Balance.create(:asset_id => asset.id, :incoming_id => incoming.id, :transaction_date => incoming.transaction_date, :amount => asset.balance + incoming.amount) if incoming.save redirect_to asset_path(session[:username], asset.id) else flash[:notice] = "Amount #{incoming.errors.on(:amount)}" redirect_to :back end rescue ArgumentError => exception case exception.to_s when 'invalid date' flash[:notice] = 'Please select a real date.' else flash[:notice] = 'Please enter a numeric amount.' end incoming.destroy redirect_to :back end # Finds the Incoming with the specified ID, destroys it and redirects back to # the Asset page. #-- # DELETE /incomings/1 def destroy incoming = Incoming.find(params[:id]) incoming.destroy redirect_to :back end end