mirror of
https://github.com/internetee/registry.git
synced 2025-07-30 22:46:22 +02:00
42 lines
1.1 KiB
Ruby
42 lines
1.1 KiB
Ruby
class Registrar
|
|
class InvoicesController < BaseController
|
|
load_and_authorize_resource
|
|
|
|
def index
|
|
params[:q] ||= {}
|
|
invoices = current_registrar_user.registrar.invoices.includes(:items, :account_activity)
|
|
|
|
normalize_search_parameters do
|
|
@q = invoices.ransack(params[:q])
|
|
@q.sorts = 'id desc' if @q.sorts.empty?
|
|
@invoices = @q.result.page(params[:page])
|
|
end
|
|
end
|
|
|
|
def show
|
|
invoice = Invoice.find(params[:id])
|
|
link_handler = EisBilling::GetInvoiceLink.new(invoice.number)
|
|
response = link_handler.send_request
|
|
|
|
@everypay_link = JSON.parse(response.body)['payment_link']
|
|
end
|
|
|
|
def cancel
|
|
@invoice.cancel
|
|
redirect_to [:registrar, @invoice], notice: t('.cancelled')
|
|
end
|
|
|
|
def download
|
|
filename = "invoice-#{@invoice.number}.pdf"
|
|
send_data @invoice.as_pdf, filename: filename
|
|
end
|
|
|
|
private
|
|
|
|
def normalize_search_parameters
|
|
params[:q][:total_gteq].gsub!(',', '.') if params[:q][:total_gteq]
|
|
params[:q][:total_lteq].gsub!(',', '.') if params[:q][:total_lteq]
|
|
yield
|
|
end
|
|
end
|
|
end
|