mirror of
https://github.com/internetee/registry.git
synced 2025-07-24 03:30:33 +02:00
Merge branch 'master' of github.com:domify/registry
This commit is contained in:
commit
9f2d87606d
8 changed files with 138 additions and 17 deletions
|
@ -1,6 +1,8 @@
|
|||
class Admin::InvoicesController < AdminController
|
||||
load_and_authorize_resource
|
||||
|
||||
before_action :set_invoice, only: [:forward, :download_pdf]
|
||||
|
||||
def new
|
||||
@deposit = Deposit.new
|
||||
end
|
||||
|
@ -39,9 +41,33 @@ class Admin::InvoicesController < AdminController
|
|||
end
|
||||
end
|
||||
|
||||
def forward
|
||||
@invoice.billing_email = @invoice.buyer.billing_email
|
||||
|
||||
return unless request.post?
|
||||
|
||||
@invoice.billing_email = params[:invoice][:billing_email]
|
||||
|
||||
if @invoice.forward(render_to_string('registrar/invoices/pdf', layout: false))
|
||||
flash[:notice] = t(:invoice_forwared)
|
||||
redirect_to([:admin, @invoice])
|
||||
else
|
||||
flash.now[:alert] = t(:failed_to_forward_invoice)
|
||||
end
|
||||
end
|
||||
|
||||
def download_pdf
|
||||
pdf = @invoice.pdf(render_to_string('registrar/invoices/pdf', layout: false))
|
||||
send_data pdf, filename: @invoice.pdf_name
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def deposit_params
|
||||
params.require(:deposit).permit(:amount, :description, :registrar_id)
|
||||
end
|
||||
|
||||
def set_invoice
|
||||
@invoice = Invoice.find(params[:invoice_id])
|
||||
end
|
||||
end
|
||||
|
|
|
@ -7,7 +7,9 @@ class Invoice < ActiveRecord::Base
|
|||
|
||||
accepts_nested_attributes_for :invoice_items
|
||||
|
||||
scope :unbinded, -> { where('id NOT IN (SELECT invoice_id FROM account_activities)') }
|
||||
scope :unbinded, lambda {
|
||||
where('id NOT IN (SELECT invoice_id FROM account_activities where invoice_id IS NOT NULL)')
|
||||
}
|
||||
|
||||
attr_accessor :billing_email
|
||||
validates :billing_email, format: { with: /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i }, allow_blank: true
|
||||
|
@ -36,7 +38,7 @@ class Invoice < ActiveRecord::Base
|
|||
|
||||
class << self
|
||||
def cancel_overdue_invoices
|
||||
logger.info "#{Time.zone.now.utc} - Cancelling overdue invoices\n"
|
||||
STDOUT << "#{Time.zone.now.utc} - Cancelling overdue invoices\n" unless Rails.env.test?
|
||||
|
||||
cr_at = Time.zone.now - Setting.days_to_keep_overdue_invoices_active.days
|
||||
invoices = Invoice.unbinded.where(
|
||||
|
@ -45,7 +47,7 @@ class Invoice < ActiveRecord::Base
|
|||
|
||||
count = invoices.update_all(cancelled_at: Time.zone.now)
|
||||
|
||||
logger.info "#{Time.zone.now.utc} - Successfully cancelled #{count} overdue invoices\n"
|
||||
STDOUT << "#{Time.zone.now.utc} - Successfully cancelled #{count} overdue invoices\n" unless Rails.env.test?
|
||||
end
|
||||
end
|
||||
|
||||
|
|
15
app/views/admin/invoices/forward.haml
Normal file
15
app/views/admin/invoices/forward.haml
Normal file
|
@ -0,0 +1,15 @@
|
|||
- content_for :actions do
|
||||
= link_to(t(:back_to_invoice), admin_invoice_path(@invoice), class: 'btn btn-default')
|
||||
= render 'shared/title', name: t(:forward_invoice)
|
||||
|
||||
= form_for([:admin, @invoice], url: { action: :forward }, method: :post) do |f|
|
||||
.row
|
||||
.col-md-4.col-md-offset-4
|
||||
= render 'shared/full_errors', object: @invoice
|
||||
.form-group
|
||||
= f.label :billing_email
|
||||
= f.text_field :billing_email, class: 'form-control', autocomplete: 'off'
|
||||
|
||||
.row
|
||||
.col-md-12.text-right
|
||||
= button_tag(t(:forward), class: 'btn btn-warning')
|
|
@ -4,6 +4,8 @@
|
|||
= @invoice
|
||||
.col-sm-6
|
||||
%h1.text-right.text-center-xs
|
||||
= link_to(t(:download), admin_invoice_download_pdf_path(@invoice), class: 'btn btn-default')
|
||||
= link_to(t(:forward), admin_invoice_forward_path(@invoice), class: 'btn btn-default')
|
||||
- if !@invoice.cancelled? && !@invoice.binded?
|
||||
= link_to(t(:cancel), cancel_admin_invoice_path(@invoice), method: :patch, class: 'btn btn-warning')
|
||||
= link_to(t(:back), admin_invoices_path, class: 'btn btn-default')
|
||||
|
|
|
@ -176,7 +176,9 @@ Rails.application.routes.draw do
|
|||
end
|
||||
|
||||
resources :invoices do
|
||||
get 'download_pdf'
|
||||
patch 'cancel', on: :member
|
||||
match 'forward', via: [:post, :get]
|
||||
end
|
||||
|
||||
resources :domains do
|
||||
|
|
|
@ -936,14 +936,14 @@ ActiveRecord::Schema.define(version: 20150713113436) do
|
|||
end
|
||||
|
||||
create_table "que_jobs", id: false, force: :cascade do |t|
|
||||
t.integer "priority", limit: 2, default: 100, null: false
|
||||
t.datetime "run_at", default: '2015-06-30 14:16:50', null: false
|
||||
t.integer "job_id", limit: 8, default: 0, null: false
|
||||
t.text "job_class", null: false
|
||||
t.json "args", default: [], null: false
|
||||
t.integer "error_count", default: 0, null: false
|
||||
t.integer "priority", limit: 2, default: 100, null: false
|
||||
t.datetime "run_at", default: "now()", null: false
|
||||
t.integer "job_id", limit: 8, default: "nextval('que_jobs_job_id_seq'::regclass)", null: false
|
||||
t.text "job_class", null: false
|
||||
t.json "args", default: [], null: false
|
||||
t.integer "error_count", default: 0, null: false
|
||||
t.text "last_error"
|
||||
t.text "queue", default: "", null: false
|
||||
t.text "queue", default: "", null: false
|
||||
end
|
||||
|
||||
create_table "registrant_verifications", force: :cascade do |t|
|
||||
|
|
|
@ -2421,8 +2421,8 @@ ALTER SEQUENCE pricelists_id_seq OWNED BY pricelists.id;
|
|||
|
||||
CREATE TABLE que_jobs (
|
||||
priority smallint DEFAULT 100 NOT NULL,
|
||||
run_at timestamp without time zone DEFAULT '2015-06-30 14:16:50.905537'::timestamp without time zone NOT NULL,
|
||||
job_id bigint DEFAULT 0 NOT NULL,
|
||||
run_at timestamp with time zone DEFAULT now() NOT NULL,
|
||||
job_id bigint NOT NULL,
|
||||
job_class text NOT NULL,
|
||||
args json DEFAULT '[]'::json NOT NULL,
|
||||
error_count integer DEFAULT 0 NOT NULL,
|
||||
|
@ -2431,6 +2431,32 @@ CREATE TABLE que_jobs (
|
|||
);
|
||||
|
||||
|
||||
--
|
||||
-- Name: TABLE que_jobs; Type: COMMENT; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
COMMENT ON TABLE que_jobs IS '3';
|
||||
|
||||
|
||||
--
|
||||
-- Name: que_jobs_job_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
CREATE SEQUENCE que_jobs_job_id_seq
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
NO MINVALUE
|
||||
NO MAXVALUE
|
||||
CACHE 1;
|
||||
|
||||
|
||||
--
|
||||
-- Name: que_jobs_job_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
ALTER SEQUENCE que_jobs_job_id_seq OWNED BY que_jobs.job_id;
|
||||
|
||||
|
||||
--
|
||||
-- Name: registrant_verifications; Type: TABLE; Schema: public; Owner: -; Tablespace:
|
||||
--
|
||||
|
@ -3186,6 +3212,13 @@ ALTER TABLE ONLY people ALTER COLUMN id SET DEFAULT nextval('people_id_seq'::reg
|
|||
ALTER TABLE ONLY pricelists ALTER COLUMN id SET DEFAULT nextval('pricelists_id_seq'::regclass);
|
||||
|
||||
|
||||
--
|
||||
-- Name: job_id; Type: DEFAULT; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY que_jobs ALTER COLUMN job_id SET DEFAULT nextval('que_jobs_job_id_seq'::regclass);
|
||||
|
||||
|
||||
--
|
||||
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
|
||||
--
|
||||
|
@ -3705,6 +3738,14 @@ ALTER TABLE ONLY pricelists
|
|||
ADD CONSTRAINT pricelists_pkey PRIMARY KEY (id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: que_jobs_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY que_jobs
|
||||
ADD CONSTRAINT que_jobs_pkey PRIMARY KEY (queue, priority, run_at, job_id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
|
||||
--
|
||||
|
@ -4809,14 +4850,26 @@ INSERT INTO schema_migrations (version) VALUES ('20150520164507');
|
|||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20150521120145');
|
||||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20150522164020');
|
||||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20150525075550');
|
||||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20150601083516');
|
||||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20150601083800');
|
||||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20150603141549');
|
||||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20150603211318');
|
||||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20150603212659');
|
||||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20150609093515');
|
||||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20150609103333');
|
||||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20150610111019');
|
||||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20150610112238');
|
||||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20150610144547');
|
||||
|
@ -4825,8 +4878,12 @@ INSERT INTO schema_migrations (version) VALUES ('20150611124920');
|
|||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20150612123111');
|
||||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20150612125720');
|
||||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20150701074344');
|
||||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20150703084206');
|
||||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20150703084632');
|
||||
|
||||
INSERT INTO schema_migrations (version) VALUES ('20150706091724');
|
||||
|
|
|
@ -3,7 +3,7 @@ require 'rails_helper'
|
|||
feature 'Invoice', type: :feature do
|
||||
before :all do
|
||||
@user = Fabricate(:admin_user)
|
||||
Fabricate(:invoice)
|
||||
@invoice = Fabricate(:invoice)
|
||||
end
|
||||
|
||||
before do
|
||||
|
@ -12,15 +12,13 @@ feature 'Invoice', type: :feature do
|
|||
|
||||
it 'should show index of invoices' do
|
||||
visit admin_invoices_url
|
||||
i = Invoice.first
|
||||
page.should have_link("Invoice no. #{i.id}")
|
||||
page.should have_link("Invoice no. #{@invoice.id}")
|
||||
end
|
||||
|
||||
it 'should show invoice' do
|
||||
visit admin_invoices_url
|
||||
i = Invoice.first
|
||||
|
||||
click_link("Invoice no. #{i.id}")
|
||||
click_link("Invoice no. #{@invoice.id}")
|
||||
page.should have_content("Seller")
|
||||
page.should have_content("Details")
|
||||
page.should have_content("Paldiski mnt. 123")
|
||||
|
@ -42,4 +40,23 @@ feature 'Invoice', type: :feature do
|
|||
page.should have_content('120.0')
|
||||
page.should have_content(r.name)
|
||||
end
|
||||
|
||||
it 'should forward invoice' do
|
||||
visit '/admin/invoices'
|
||||
click_link @invoice.to_s
|
||||
click_link 'Forward'
|
||||
click_button 'Forward'
|
||||
page.should have_text('Failed to forward invoice')
|
||||
fill_in 'Billing email', with: 'test@test.ee'
|
||||
click_button 'Forward'
|
||||
page.should have_text('Invoice forwarded')
|
||||
end
|
||||
|
||||
it 'should download invoice' do
|
||||
visit '/admin/invoices'
|
||||
click_link @invoice.to_s
|
||||
click_link 'Download'
|
||||
response_headers['Content-Type'].should == 'application/pdf'
|
||||
response_headers['Content-Disposition'].should == "attachment; filename=\"#{@invoice.pdf_name}\""
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue