From 67fb02d7c498e653634d0cc5e8ed88fdc73efcf3 Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Tue, 19 Jan 2016 14:50:08 +0200 Subject: [PATCH 1/5] Story#105852786 - Directo skip if bank_transaction is not set --- app/models/directo.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/models/directo.rb b/app/models/directo.rb index 4116e2985..502dfe089 100644 --- a/app/models/directo.rb +++ b/app/models/directo.rb @@ -8,12 +8,14 @@ class Directo < ActiveRecord::Base builder = Nokogiri::XML::Builder.new(encoding: "UTF-8") do |xml| xml.invoices { group.each do |invoice| + next if invoice.account_activity.nil? || invoice.account_activity.bank_transaction.nil? + num = invoice.number mappers[num] = invoice xml.invoice( "SalesAgent" => Setting.directo_sales_agent, "Number" => num, - "InvoiceDate" => (invoice.account_activity.try(:bank_transaction).try(:paid_at) || invoice.updated_at).strftime("%Y-%m-%dT%H:%M:%S"), + "InvoiceDate" => invoice.created_at.strftime("%Y-%m-%dT%H:%M:%S"), "PaymentTerm" => Setting.directo_receipt_payment_term, "Currency" => invoice.currency, "CustomerCode"=> invoice.buyer.try(:directo_handle) From 6c8bab56bf08d0853810c4edb97ff28155257448 Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Tue, 19 Jan 2016 15:02:29 +0200 Subject: [PATCH 2/5] Story#105852786 - add Directo.send_receipts into whenever to generate cron jobs --- config/schedule.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/config/schedule.rb b/config/schedule.rb index 5524f10ab..f3bbad764 100644 --- a/config/schedule.rb +++ b/config/schedule.rb @@ -53,6 +53,10 @@ if @cron_group == 'registry' every 52.minutes do runner 'Domain.start_redemption_grace_period' end + + every :day, at: '19:00pm' do + runner 'Directo.send_receipts' + end if @environment == 'production' end every 10.minutes do From 63fcbd9515684e7f5e39a925cbaf482041b99f6f Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Tue, 19 Jan 2016 15:17:33 +0200 Subject: [PATCH 3/5] Story#105852786 - Invoice' bank transaction should have sum in order to mean that invoice payment finished --- app/models/directo.rb | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/models/directo.rb b/app/models/directo.rb index 502dfe089..bf5bc9043 100644 --- a/app/models/directo.rb +++ b/app/models/directo.rb @@ -8,7 +8,7 @@ class Directo < ActiveRecord::Base builder = Nokogiri::XML::Builder.new(encoding: "UTF-8") do |xml| xml.invoices { group.each do |invoice| - next if invoice.account_activity.nil? || invoice.account_activity.bank_transaction.nil? + next if invoice.account_activity.nil? || invoice.account_activity.bank_transaction.nil? || invoice.account_activity.bank_transaction.sum.nil? num = invoice.number mappers[num] = invoice @@ -32,8 +32,9 @@ class Directo < ActiveRecord::Base end data = builder.to_xml.gsub("\n",'') - response = RestClient::Request.execute(url: ENV['directo_invoice_url'], method: :post, payload: {put: "1", what: "invoice", xmldata: data}, verify_ssl: false).to_s - dump_result_to_db(mappers, response) + # response = RestClient::Request.execute(url: ENV['directo_invoice_url'], method: :post, payload: {put: "1", what: "invoice", xmldata: data}, verify_ssl: false).to_s + # dump_result_to_db(mappers, response) + binding.pry end end From c3db50b5cdd2f650cc495684b1276ab5a08ef253 Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Tue, 19 Jan 2016 15:27:17 +0200 Subject: [PATCH 4/5] Story#105852786 - Invoice' bank transaction should have sum in order to mean that invoice payment finished --- app/models/directo.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/models/directo.rb b/app/models/directo.rb index bf5bc9043..ae8c2b48c 100644 --- a/app/models/directo.rb +++ b/app/models/directo.rb @@ -8,7 +8,8 @@ class Directo < ActiveRecord::Base builder = Nokogiri::XML::Builder.new(encoding: "UTF-8") do |xml| xml.invoices { group.each do |invoice| - next if invoice.account_activity.nil? || invoice.account_activity.bank_transaction.nil? || invoice.account_activity.bank_transaction.sum.nil? + next if invoice.account_activity.nil? || invoice.account_activity.bank_transaction.nil? + next if invoice.account_activity.bank_transaction.sum.nil? num = invoice.number mappers[num] = invoice @@ -32,9 +33,8 @@ class Directo < ActiveRecord::Base end data = builder.to_xml.gsub("\n",'') - # response = RestClient::Request.execute(url: ENV['directo_invoice_url'], method: :post, payload: {put: "1", what: "invoice", xmldata: data}, verify_ssl: false).to_s - # dump_result_to_db(mappers, response) - binding.pry + response = RestClient::Request.execute(url: ENV['directo_invoice_url'], method: :post, payload: {put: "1", what: "invoice", xmldata: data}, verify_ssl: false).to_s + dump_result_to_db(mappers, response) end end From 66bdc5146b9f1d94e8378697395aa81c4f0ca9bc Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Tue, 19 Jan 2016 15:36:50 +0200 Subject: [PATCH 5/5] Story#105852786 - Do not send invoice to directo if sum is not matching with bank transaction --- app/models/directo.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/directo.rb b/app/models/directo.rb index ae8c2b48c..af62d21a2 100644 --- a/app/models/directo.rb +++ b/app/models/directo.rb @@ -9,7 +9,7 @@ class Directo < ActiveRecord::Base xml.invoices { group.each do |invoice| next if invoice.account_activity.nil? || invoice.account_activity.bank_transaction.nil? - next if invoice.account_activity.bank_transaction.sum.nil? + next if invoice.account_activity.bank_transaction.sum.nil? || invoice.account_activity.bank_transaction.sum != invoice.sum_cache num = invoice.number mappers[num] = invoice