Module: SuperGood::SolidusTaxjar::ApiParams
- Defined in:
- lib/super_good/solidus_taxjar/api_params.rb
Constant Summary collapse
- UNTAXABLE_INVENTORY_UNIT_STATES =
["returned", "canceled"]
Class Method Summary collapse
- .address_params(address) ⇒ Object
- .order_params(order) ⇒ Object
- .refund_params(reimbursement) ⇒ Object
- .refund_transaction_params(spree_order, taxjar_order) ⇒ Object
- .tax_rate_address_params(address) ⇒ Object
- .transaction_params(order, transaction_id = order.number) ⇒ Object
- .validate_address_params(spree_address) ⇒ Object
Class Method Details
.address_params(address) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/super_good/solidus_taxjar/api_params.rb', line 16 def address_params(address) [ address.zipcode, { street: address.address1, city: address.city, state: address&.state&.abbr || address.state_name, country: address.country.iso } ] end |
.order_params(order) ⇒ Object
7 8 9 10 11 12 13 14 |
# File 'lib/super_good/solidus_taxjar/api_params.rb', line 7 def order_params(order) {} .merge(customer_params(order)) .merge(order_address_params(order.tax_address)) .merge(line_items_params(order.line_items)) .merge(shipping: shipping(order)) .merge(SuperGood::SolidusTaxjar.custom_order_params.call(order)) end |
.refund_params(reimbursement) ⇒ Object
73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/super_good/solidus_taxjar/api_params.rb', line 73 def refund_params(reimbursement) additional_taxes = reimbursement.return_items.sum(&:additional_tax_total) {} .merge(order_address_params(reimbursement.order.tax_address)) .merge( transaction_id: reimbursement.number, transaction_reference_id: reimbursement.order.number, transaction_date: reimbursement.order.completed_at.to_formatted_s(:iso8601), amount: reimbursement.total - additional_taxes, shipping: 0, sales_tax: additional_taxes ) end |
.refund_transaction_params(spree_order, taxjar_order) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/super_good/solidus_taxjar/api_params.rb', line 51 def refund_transaction_params(spree_order, taxjar_order) {} .merge(order_address_params(spree_order.tax_address)) .merge( { transaction_id: TransactionIdGenerator.refund_transaction_id(taxjar_order.transaction_id), transaction_reference_id: taxjar_order.transaction_id, transaction_date: spree_order.completed_at.to_formatted_s(:iso8601), amount: -1 * taxjar_order.amount, sales_tax: -1 * taxjar_order.sales_tax, shipping: -1 * taxjar_order.shipping, line_items: taxjar_order.line_items.map { |line_item| line_item.to_h.merge({ unit_price: line_item.unit_price * -1, discount: line_item.discount * -1, sales_tax: line_item.sales_tax * -1 }) } } ) end |
.tax_rate_address_params(address) ⇒ Object
28 29 30 31 32 33 |
# File 'lib/super_good/solidus_taxjar/api_params.rb', line 28 def tax_rate_address_params(address) { amount: 100, shipping: 0 }.merge(order_address_params(address)) end |
.transaction_params(order, transaction_id = order.number) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/super_good/solidus_taxjar/api_params.rb', line 35 def transaction_params(order, transaction_id = order.number) {} .merge(customer_params(order)) .merge(order_address_params(order.tax_address)) .merge(transaction_line_items_params(order.line_items)) .merge( transaction_id: transaction_id, transaction_date: order.completed_at.to_formatted_s(:iso8601), # We use `payment_total` to reflect the total liablity # transferred. amount: [order.payments.completed.sum(&:amount) - refund_total_without_tax(order) - order.additional_tax_total, 0].max, shipping: shipping(order), sales_tax: sales_tax(order) ) end |
.validate_address_params(spree_address) ⇒ Object
88 89 90 91 92 93 94 95 96 |
# File 'lib/super_good/solidus_taxjar/api_params.rb', line 88 def validate_address_params(spree_address) { country: spree_address.country&.iso, state: spree_address.state&.abbr || spree_address.state_name, zip: spree_address.zipcode, city: spree_address.city, street: [spree_address.address1, spree_address.address2].compact.join(' ') } end |