update export invoices task and add request for update invoice status when invoice is cancelled

This commit is contained in:
olegphenomenon 2022-04-11 11:53:39 +03:00
parent 363dd8370f
commit 5c306accc3
4 changed files with 41 additions and 2 deletions

View file

@ -49,6 +49,8 @@ module Admin
def cancel def cancel
@invoice.cancel @invoice.cancel
EisBilling::SendInvoiceStatus.send_info(invoice_number: @invoice.number, status: 'cancelled')
redirect_to [:admin, @invoice], notice: t('.cancelled') redirect_to [:admin, @invoice], notice: t('.cancelled')
end end

View file

@ -17,6 +17,8 @@ class Registrar
def cancel def cancel
@invoice.cancel @invoice.cancel
EisBilling::SendInvoiceStatus.send_info(invoice_number: @invoice.number, status: 'cancelled')
redirect_to [:registrar, @invoice], notice: t('.cancelled') redirect_to [:registrar, @invoice], notice: t('.cancelled')
end end

View file

@ -0,0 +1,21 @@
module EisBilling
class SendInvoiceStatus < EisBilling::Base
def self.send_info(invoice_number:, status:)
send_request(invoice_number: invoice_number, status: status)
end
def self.send_request(invoice_number:, status:)
json_obj = {
invoice_number: invoice_number,
status: status,
}
http = EisBilling::Base.base_request(url: invoice_status_url)
http.post(invoice_status_url, json_obj.to_json, EisBilling::Base.headers)
end
def self.invoice_status_url
"#{BASE_URL}/api/v1/invoice_generator/invoice_status"
end
end
end

View file

@ -3,13 +3,27 @@ INITIATOR = 'registry'.freeze
namespace :eis_billing do namespace :eis_billing do
desc 'One time task to export invoice data to billing system' desc 'One time task to export invoice data to billing system'
task import_invoices: :environment do task export_invoices: :environment do
parsed_data = [] parsed_data = []
status = 'unpaid'
Invoice.all.each do |invoice| Invoice.all.each do |invoice|
if invoice.cancelled?
status = 'cancelled'
else
status = invoice.paid? ? 'paid' : 'unpaid'
end
transaction_time = invoice.receipt_date if invoice.paid?
parsed_data << { parsed_data << {
invoice_number: invoice.number, invoice_number: invoice.number,
initiator: 'registry', initiator: 'registry',
transaction_amount: invoice.total, transaction_amount: invoice.total,
status: status,
in_directo: invoice.in_directo,
e_invoice_sent_at: invoice.e_invoice_sent_at,
transaction_time: transaction_time
} }
end end
@ -17,7 +31,7 @@ namespace :eis_billing do
end end
desc 'One time task to export reference number of registrars to billing system' desc 'One time task to export reference number of registrars to billing system'
task import_references: :environment do task export_references: :environment do
parsed_data = [] parsed_data = []
Registrar.all.each do |registrar| Registrar.all.each do |registrar|
parsed_data << { parsed_data << {