From 0a20f567c24457d50218fa6abdb6b6f45151c420 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergei=20Ts=C3=B5ganov?= Date: Tue, 30 Aug 2022 17:35:25 +0300 Subject: [PATCH] Added monthly invoice name attribute --- Gemfile.lock | 4 +-- app/models/invoice/e_invoice_generator.rb | 35 +++++++++-------------- 2 files changed, 15 insertions(+), 24 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 44290fffd..fb51d2bf1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -18,10 +18,10 @@ GIT GIT remote: https://github.com/internetee/e_invoice.git - revision: 590dcd3b769ea57edd4c4626547b37120a02b127 + revision: 9f850465697a2448a31ebddb83c1be5a5a9be3d2 branch: master specs: - e_invoice (0.1.2) + e_invoice (0.1.3) builder (~> 3.2) nokogiri savon diff --git a/app/models/invoice/e_invoice_generator.rb b/app/models/invoice/e_invoice_generator.rb index 326984476..8d9675475 100644 --- a/app/models/invoice/e_invoice_generator.rb +++ b/app/models/invoice/e_invoice_generator.rb @@ -41,17 +41,16 @@ class Invoice e_invoice_invoice_items = [] invoice.each do |invoice_item| - if invoice.monthly_invoice - e_invoice_invoice_item = generate_monthly_invoice_item(invoice, invoice_item) - else - e_invoice_invoice_item = generate_normal_invoice_item(invoice_item) - end + e_invoice_invoice_item = generate_invoice_item(invoice, invoice_item) e_invoice_invoice_items << e_invoice_invoice_item end + e_invoice_name_item = e_invoice_invoice_items.shift if invoice.monthly_invoice + e_invoice_invoice = EInvoice::Invoice.new.tap do |i| i.seller = seller i.buyer = buyer + i.name = e_invoice_name_item&.description i.items = e_invoice_invoice_items i.number = invoice.number i.date = invoice.issue_date @@ -75,31 +74,23 @@ class Invoice private - def generate_normal_invoice_item(item) + def generate_invoice_item(invoice, item) EInvoice::InvoiceItem.new.tap do |i| i.description = item.description i.unit = item.unit i.price = item.price i.quantity = item.quantity - i.subtotal = item.subtotal - i.vat_rate = item.vat_rate - i.vat_amount = item.vat_amount - i.total = item.total - end - end - - def generate_monthly_invoice_item(invoice, item) - EInvoice::InvoiceItem.new.tap do |i| - i.description = item.description - i.product_id = item.product_id - i.unit = item.unit - i.price = item.price - i.quantity = item.quantity - i.vat_rate = invoice.vat_rate - if item.price && item.quantity + if invoice.monthly_invoice && item.price && item.quantity + i.product_id = item.product_id + i.vat_rate = invoice.vat_rate i.subtotal = (item.price * item.quantity).round(3) i.vat_amount = i.subtotal * (i.vat_rate / 100) i.total = i.subtotal + i.vat_amount + else + i.subtotal = item.subtotal + i.vat_rate = item.vat_rate + i.vat_amount = item.vat_amount + i.total = item.total end end end