Guest User

Untitled

a guest
Apr 25th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.94 KB | None | 0 0
  1.  
  2. class InvoicesController < ApplicationController
  3. before_filter :authorize, :load_invoice
  4. layout "main", :except => 'print'
  5.  
  6.  
  7. require 'params_filter'
  8. include ParamsFilter
  9.  
  10.  
  11. verify :method => :post, :only => [ :destroy, :create, :update ],
  12. :redirect_to => { :action => :list }
  13.  
  14. private
  15. def load_invoice
  16. @invoice = Invoice.find( params[:id] ) if params[:id]
  17.  
  18. rescue ActiveRecord::RecordNotFound
  19. flash[:notice] = "Invoice not found"
  20. redirect_to :action => :index
  21. end
  22.  
  23. public
  24.  
  25.  
  26. def index
  27. list
  28. render :action => 'list'
  29. end
  30.  
  31.  
  32. def list
  33. @invoices = Invoice.paginate(:per_page => 10, :page => params[:page] || 1, :order => 'created_at DESC')
  34. params[:search] ||= {}
  35.  
  36. end
  37.  
  38. def search
  39. prepare_search_dates if params[:search]
  40. params[:search] ||= {}
  41. @invoices = Invoice.search(params[:search])
  42. render :partial => '/invoices/list'
  43. end
  44.  
  45. def print
  46. @invoice = Invoice.find(params[:id])
  47. send_data InvoiceDrawer.draw(@invoice), :filename => 'invoice.pdf', :type => 'application/pdf', :disposition => 'inline'
  48. end
  49. def show
  50. assert_params_must_have :id
  51. end
  52.  
  53. def new
  54. @invoice = Invoice.new
  55. end
  56.  
  57.  
  58. def create
  59. @invoice = Invoice.new(params[:invoice])
  60. @invoice.user_id = @current_user.id
  61. @invoice.created_at = Time.now
  62. if @invoice.save
  63. flash[:notice] = 'Invoice was successfully created.'
  64. redirect_to :action => 'list'
  65. else
  66. render :action => 'new'
  67. end
  68. end
  69.  
  70.  
  71. def edit
  72. assert_params_must_have :id
  73. end
  74.  
  75.  
  76. def update
  77. assert_params_must_have :id
  78.  
  79. @invoice.issued_at = Time.now if !params[:invoice].nil? && params[:invoice][:is_issued]
  80. @invoice.user_id = @current_user.id
  81.  
  82. if @invoice.update_attributes(params[:invoice])
  83. flash[:notice] = 'Invoice was successfully updated.'
  84. redirect_to :action => 'show', :id => @invoice
  85. else
  86. render :action => 'edit'
  87. end
  88.  
  89. end
  90.  
  91.  
  92. def issue
  93. assert_params_must_have :id
  94.  
  95. unless @invoice.activities.empty?
  96. if @invoice.update_attributes({'is_issued' => 1, 'issued_at' => Time.now})
  97. flash[:notice] = 'Invoice has been issued.'
  98. else
  99. flash[:notice] = 'Error with issuing invoice.'
  100. end
  101. else
  102. flash[:notice] = 'No activities on this invoice! Cannot be issued!'
  103. end
  104.  
  105. redirect_to :action => :show, :id => @invoice
  106. end
  107.  
  108.  
  109. def add_activities
  110. @activities = Activity.find(:all, :conditions => ["invoice_id IS NULL AND id IN (?)",params[:activity_id]])
  111. @success = true
  112. @activities.each do |activity|
  113. @success = activity.update_attribute('invoice_id',params[:invoice_id])
  114. end
  115. if @success
  116. flash[:notice] = 'Activities has been added to invoice.'
  117. else
  118. flash[:notice] = 'Error with adding activities to an invoice.'
  119. end
  120. redirect_to :action => 'show', :id => params[:invoice_id]
  121. end
  122.  
  123.  
  124. def remove_activities
  125. assert_params_must_have :id
  126.  
  127. @activities = Activity.find(:all, :conditions => ["id IN (?)",params[:activity_id]])
  128. @success = true
  129. @activities.each do |activity|
  130. @success = activity.update_attribute('invoice_id', nil)
  131. end
  132. if @success
  133. flash[:notice] = 'Activities has been removed from invoice.'
  134. else
  135. flash[:notice] = 'Error with removing activities from invoice.'
  136. end
  137.  
  138. redirect_to :action => 'show', :id => params[:id]
  139. end
  140.  
  141.  
  142. def add_new
  143. @invoice = Invoice.new
  144. @invoice.client_id = params[:client_id]
  145. render :partial => '/invoices/add_new'
  146. end
  147.  
  148.  
  149. def create_new
  150. @invoice = Invoice.new(params[:invoice])
  151. @invoice.user_id = @current_user.id
  152. @success = false
  153. if @invoice.save
  154. @success = true
  155. end
  156. @invoices = Invoice.find(:all, :conditions => ["client_id = ? AND is_issued=0", @invoice.client_id])
  157. end
  158.  
  159. end
Add Comment
Please, Sign In to add comment