diff --git a/app/models/directo.rb b/app/models/directo.rb index 5f73a3f16..789db64b2 100644 --- a/app/models/directo.rb +++ b/app/models/directo.rb @@ -22,14 +22,16 @@ class Directo < ApplicationRecord counter += 1 num = invoice.number + paid_at = invoice.account_activity.bank_transaction&.paid_at&.strftime("%Y-%m-%d") mappers[num] = invoice xml.invoice( - "SalesAgent" => Setting.directo_sales_agent, - "Number" => num, - "InvoiceDate" => invoice.issue_date.strftime("%Y-%m-%d"), - "PaymentTerm" => Setting.directo_receipt_payment_term, - "Currency" => invoice.currency, - "CustomerCode"=> invoice.buyer.accounting_customer_code + "SalesAgent" => Setting.directo_sales_agent, + "Number" => num, + "InvoiceDate" => invoice.issue_date.strftime("%Y-%m-%d"), + 'TransactionDate' => paid_at, + "PaymentTerm" => Setting.directo_receipt_payment_term, + "Currency" => invoice.currency, + "CustomerCode"=> invoice.buyer.accounting_customer_code ){ xml.line( "ProductID" => Setting.directo_receipt_product_name, diff --git a/test/models/directo_test.rb b/test/models/directo_test.rb new file mode 100644 index 000000000..9dbbf64d4 --- /dev/null +++ b/test/models/directo_test.rb @@ -0,0 +1,20 @@ +require 'test_helper' + +class DirectoTest < ActiveSupport::TestCase + setup do + @invoice = invoices(:one) + end + + def test_xml_is_include_transaction_date + @invoice.update(total: @invoice.account_activity.bank_transaction.sum) + @invoice.account_activity.bank_transaction.update(paid_at: Time.zone.now) + + stub_request(:post, ENV['directo_invoice_url']).with do |request| + request.body.include? 'TransactionDate' + end + + assert_nothing_raised do + Directo.send_receipts + end + end +end