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
@invoice.cancel
EisBilling::SendInvoiceStatus.send_info(invoice_number: @invoice.number, status: 'cancelled')
redirect_to [:admin, @invoice], notice: t('.cancelled')
end

View file

@ -17,6 +17,8 @@ class Registrar
def cancel
@invoice.cancel
EisBilling::SendInvoiceStatus.send_info(invoice_number: @invoice.number, status: 'cancelled')
redirect_to [:registrar, @invoice], notice: t('.cancelled')
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
desc 'One time task to export invoice data to billing system'
task import_invoices: :environment do
task export_invoices: :environment do
parsed_data = []
status = 'unpaid'
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 << {
invoice_number: invoice.number,
initiator: 'registry',
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
@ -17,7 +31,7 @@ namespace :eis_billing do
end
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 = []
Registrar.all.each do |registrar|
parsed_data << {