From e99dbe9a18ceeaeb66e89439a58f43431617defb Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Wed, 20 Jan 2016 13:30:34 +0200 Subject: [PATCH 1/2] Story#105852786 - each time invoice is being sent to Directo, record is saved to DB --- app/models/directo.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/models/directo.rb b/app/models/directo.rb index 07b02e625..2b82ee289 100644 --- a/app/models/directo.rb +++ b/app/models/directo.rb @@ -22,10 +22,10 @@ class Directo < ActiveRecord::Base "CustomerCode"=> invoice.buyer.try(:directo_handle) ){ xml.line( - "ProductID"=> Setting.directo_receipt_product_name, - "Quantity" => 1, - "UnitPriceWoVAT" =>ActionController::Base.helpers.number_with_precision(invoice.sum_cache/(1+invoice.vat_prc), precision: 2, separator: "."), - "ProductName" => invoice.description + "ProductID" => Setting.directo_receipt_product_name, + "Quantity" => 1, + "UnitPriceWoVAT" => ActionController::Base.helpers.number_with_precision(invoice.sum_cache/(1+invoice.vat_prc), precision: 2, separator: "."), + "ProductName" => invoice.description ) } end @@ -41,7 +41,7 @@ class Directo < ActiveRecord::Base def self.dump_result_to_db mappers, xml Nokogiri::XML(xml).css("Result").each do |res| obj = mappers[res.attributes["docid"].value.to_i] - obj.directo_records.first_or_create!(response: res.as_json.to_h) + obj.directo_records.create!(response: res.as_json.to_h) obj.update_columns(in_directo: true) end end From f86453fa0b9ef79f192b610b9a68bfadc9684d22 Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Wed, 20 Jan 2016 13:49:44 +0200 Subject: [PATCH 2/2] Story#105852786 - skip cancelled invoices to be sent to directo --- 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 2b82ee289..83eaf1a29 100644 --- a/app/models/directo.rb +++ b/app/models/directo.rb @@ -2,7 +2,7 @@ class Directo < ActiveRecord::Base belongs_to :item, polymorphic: true def self.send_receipts - new_trans = Invoice.where(invoice_type: "DEB", in_directo: false) + new_trans = Invoice.where(invoice_type: "DEB", in_directo: false).where.not(cancelled_at: nil) new_trans.find_in_batches(batch_size: 10).each do |group| mappers = {} # need them as no direct connection between invoice builder = Nokogiri::XML::Builder.new(encoding: "UTF-8") do |xml|