class Suretax::Api::RequestItem

Attributes

aux_revenue[RW]
aux_revenue_type[RW]
bill_to_number[RW]
common_carrier[RW]
customer_number[RW]
dest_country_code[RW]
freight_on_board[RW]
geocode[RW]
invoice_number[RW]
line_number[RW]
mail_order[RW]
order_approval_plus_four[RW]
order_approval_zipcode[RW]
order_placement_plus_four[RW]
order_placement_zipcode[RW]
orig_number[RW]
origin_country_code[RW]
p_to_p_plus_four[RW]
p_to_p_zipcode[RW]
plus_four[RW]
regulatory_code[RW]
revenue[RW]
sales_type_code[RW]
seconds[RW]
ship_from_plus_four[RW]
ship_from_pob[RW]
ship_from_zipcode[RW]
tax_exemption_codes[RW]
tax_included_code[RW]
tax_situs_rule[RW]
term_number[RW]
trans_date[RW]
trans_type_code[RW]
unit_type[RW]
units[RW]
user_defined_field[RW]
zipcode[RW]

Public Class Methods

new(args = {}) click to toggle source
# File lib/suretax/api/request_item.rb, line 56
def initialize(args = {})
  args.each_pair do |key, value|
    send("#{key}=", value.to_s)
  end

  @tax_exemption_codes = []
  args[:tax_exemption_codes]&.each do |code|
    @tax_exemption_codes << code.to_s
  end

  validate!
end

Public Instance Methods

blank(value) click to toggle source
# File lib/suretax/api/request_item.rb, line 115
def blank(value)
  value.respond_to?(:empty?) ? !!value.empty? : !value
end
params() click to toggle source
# File lib/suretax/api/request_item.rb, line 69
def params
  {
    "LineNumber"           => line_number,
    "InvoiceNumber"        => invoice_number,
    "CustomerNumber"       => customer_number,
    "OrigNumber"           => orig_number      || "",
    "TermNumber"           => term_number      || "",
    "BillToNumber"         => bill_to_number   || "",
    "Zipcode"              => zipcode,
    "Plus4"                => plus_four,
    "P2PZipcode"           => p_to_p_zipcode   || "",
    "P2PPlus4"             => p_to_p_plus_four || "",
    "TransDate"            => trans_date       || Date.today.strftime("%m-%d-%Y"),
    "Revenue"              => revenue.to_f,
    "Units"                => units.to_i,
    "UnitType"             => presence(unit_type) || "00",
    "Seconds"              => seconds.to_i,
    "TaxIncludedCode"      => tax_included_code,
    "TaxSitusRule"         => tax_situs_rule,
    "TransTypeCode"        => trans_type_code,
    "SalesTypeCode"        => sales_type_code,
    "RegulatoryCode"       => regulatory_code,
    "TaxExemptionCodeList" => tax_exemption_codes,
    "UDF"                   => user_defined_field || "",
    "ShipFromZipCode"       => ship_from_zipcode || "",
    "ShipFromPlus4"         => ship_from_plus_four || "",
    "OrderPlacementZipcode" => order_placement_zipcode || "",
    "OrderPlacementPlus4"   => order_approval_plus_four || "",
    "OrderApprovalZipcode"  => order_approval_zipcode || "",
    "OrderApprovalPlus4"    => order_approval_plus_four || "",
    "Geocode"               => geocode || "",
    "AuxRevenue"            => presence(aux_revenue) || "0.00",
    "AuxRevenueType"        => presence(aux_revenue_type) || "01",
    "FreightOnBoard"        => freight_on_board || "",
    "ShipFromPOB"           => presence(ship_from_pob) || "1",
    "MailOrder"             => presence(mail_order) || "1",
    "CommonCarrier"         => presence(common_carrier) || "1",
    "OriginCountryCode"     => origin_country_code || "",
    "DestCountryCode"       => dest_country_code || ""
  }
end
presence(value) click to toggle source
# File lib/suretax/api/request_item.rb, line 111
def presence(value)
  value unless blank(value)
end