Class: FdxV660Api::Form1042SAgent

Inherits:
BaseModel
  • Object
show all
Defined in:
lib/fdx_v660_api/models/form1042_s_agent.rb

Overview

One of various persons or businesses involved in Form 1042-S reporting. Use

  • tin for * Box 12a, Withholding Agent EIN, * Box 13i, Recipient U.S. TIN, * Box 14b, Primary Withholding Agent EIN, * Box 15a, Intermediary or flow-through entity EIN, * Box 16b, Payer TIN * individualName or businessName for * Box 12d, Withholding Agent name, * Box 13a, Recipient name, * Box 14a, Primary Withholding Agent name, * Box 15d, Intermediary or flow-through entity name, * Box 16a, Payer name * address.country for * Box 12l, Withholding Agent address country, * Box 13g, Recipient address country, * Box 15l, Intermediary or flow-through entity address country (use specific boxes 12f, 13b, 15f for corresponding Country codes) * address for * Boxes 12h-i, Withholding Agent Address, * Boxes 13c-d, Recipient Address, * Boxes 15h-i, Intermediary or flow-through entity Address

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from BaseModel

#check_for_conflict, #process_additional_properties, #process_array, #process_basic_value, #process_hash, #to_hash, #to_json

Constructor Details

#initialize(tin: SKIP, party_type: SKIP, individual_name: SKIP, business_name: SKIP, address: SKIP, phone: SKIP, email: SKIP, ch3_status_code: SKIP, ch4_status_code: SKIP, giin: SKIP, foreign_tin: SKIP, additional_properties: nil) ⇒ Form1042SAgent

Returns a new instance of Form1042SAgent.



127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# File 'lib/fdx_v660_api/models/form1042_s_agent.rb', line 127

def initialize(tin: SKIP, party_type: SKIP, individual_name: SKIP,
               business_name: SKIP, address: SKIP, phone: SKIP, email: SKIP,
               ch3_status_code: SKIP, ch4_status_code: SKIP, giin: SKIP,
               foreign_tin: SKIP, additional_properties: nil)
  # Add additional model properties to the instance
  additional_properties = {} if additional_properties.nil?

  @tin = tin unless tin == SKIP
  @party_type = party_type unless party_type == SKIP
  @individual_name = individual_name unless individual_name == SKIP
  @business_name = business_name unless business_name == SKIP
  @address = address unless address == SKIP
  @phone = phone unless phone == SKIP
  @email = email unless email == SKIP
  @ch3_status_code = ch3_status_code unless ch3_status_code == SKIP
  @ch4_status_code = ch4_status_code unless ch4_status_code == SKIP
  @giin = giin unless giin == SKIP
  @foreign_tin = foreign_tin unless foreign_tin == SKIP
  @additional_properties = additional_properties
end

Instance Attribute Details

#addressTaxFormAddress5

Issuer or recipient address

Returns:



46
47
48
# File 'lib/fdx_v660_api/models/form1042_s_agent.rb', line 46

def address
  @address
end

#business_nameBusinessName4

Business issuer or recipient name

Returns:



42
43
44
# File 'lib/fdx_v660_api/models/form1042_s_agent.rb', line 42

def business_name
  @business_name
end

#ch3_status_codeString

Ch. 3 status code,

  • Box 12b, Withholding Agent,
  • Box 13j, Recipient,
  • Box 15b, Intermediary or flow-through entity,
  • Box 16d, Payer

Returns:

  • (String)


63
64
65
# File 'lib/fdx_v660_api/models/form1042_s_agent.rb', line 63

def ch3_status_code
  @ch3_status_code
end

#ch4_status_codeString

Ch. 4 status code,

  • Box 12c, Withholding Agent,
  • Box 13k, Recipient,
  • Box 15c, Intermediary or flow-through entity,
  • Box 16e, Payer

Returns:

  • (String)


71
72
73
# File 'lib/fdx_v660_api/models/form1042_s_agent.rb', line 71

def ch4_status_code
  @ch4_status_code
end

#emailString

Issuer or recipient email address. (Additional information, not part of IRS forms)

Returns:

  • (String)


55
56
57
# File 'lib/fdx_v660_api/models/form1042_s_agent.rb', line 55

def email
  @email
end

#foreign_tinString

Foreign tax identification number, if any,

  • Box 12g, Withholding Agent,
  • Box 13m, Recipient,
  • Box 15g, Intermediary or flow-through entity

Returns:

  • (String)


86
87
88
# File 'lib/fdx_v660_api/models/form1042_s_agent.rb', line 86

def foreign_tin
  @foreign_tin
end

#giinString

Agent's Global Intermediary Identification Number (GIIN),

  • Box 12e, Withholding Agent,
  • Box 13l, Recipient,
  • Box 15e, Intermediary or flow-through entity,
  • Box 16c, Payer

Returns:

  • (String)


79
80
81
# File 'lib/fdx_v660_api/models/form1042_s_agent.rb', line 79

def giin
  @giin
end

#individual_nameIndividualName4

Individual issuer or recipient name

Returns:



38
39
40
# File 'lib/fdx_v660_api/models/form1042_s_agent.rb', line 38

def individual_name
  @individual_name
end

#party_typeTaxPartyType2

Type of issuer or recipient legal entity, as "BUSINESS" or "INDIVIDUAL". Commonly BUSINESS for issuer and INDIVIDUAL for recipient

Returns:



34
35
36
# File 'lib/fdx_v660_api/models/form1042_s_agent.rb', line 34

def party_type
  @party_type
end

#phoneTelephoneNumberPlusExtension1

Issuer or recipient telephone number



50
51
52
# File 'lib/fdx_v660_api/models/form1042_s_agent.rb', line 50

def phone
  @phone
end

#tinString

Issuer or recipient Tax Identification Number. The issuer TIN should normally not be truncated or masked. The recipient TIN may be truncated or masked on this recipient copy (though the full TIN will be filed on IRS copy). Usually EIN for issuer and SSN for recipient

Returns:

  • (String)


29
30
31
# File 'lib/fdx_v660_api/models/form1042_s_agent.rb', line 29

def tin
  @tin
end

Class Method Details

.from_hash(hash) ⇒ Object

Creates an instance of the object from a hash.



149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
# File 'lib/fdx_v660_api/models/form1042_s_agent.rb', line 149

def self.from_hash(hash)
  return nil unless hash

  # Extract variables from the hash.
  tin = hash.key?('tin') ? hash['tin'] : SKIP
  party_type = hash.key?('partyType') ? hash['partyType'] : SKIP
  individual_name = IndividualName4.from_hash(hash['individualName']) if
    hash['individualName']
  business_name = BusinessName4.from_hash(hash['businessName']) if hash['businessName']
  address = TaxFormAddress5.from_hash(hash['address']) if hash['address']
  phone = TelephoneNumberPlusExtension1.from_hash(hash['phone']) if hash['phone']
  email = hash.key?('email') ? hash['email'] : SKIP
  ch3_status_code =
    hash.key?('ch3StatusCode') ? hash['ch3StatusCode'] : SKIP
  ch4_status_code =
    hash.key?('ch4StatusCode') ? hash['ch4StatusCode'] : SKIP
  giin = hash.key?('giin') ? hash['giin'] : SKIP
  foreign_tin = hash.key?('foreignTin') ? hash['foreignTin'] : SKIP

  # Create a new hash for additional properties, removing known properties.
  new_hash = hash.reject { |k, _| names.value?(k) }

  additional_properties = APIHelper.get_additional_properties(
    new_hash, proc { |value| value }
  )

  # Create object from extracted values.
  Form1042SAgent.new(tin: tin,
                     party_type: party_type,
                     individual_name: individual_name,
                     business_name: business_name,
                     address: address,
                     phone: phone,
                     email: email,
                     ch3_status_code: ch3_status_code,
                     ch4_status_code: ch4_status_code,
                     giin: giin,
                     foreign_tin: foreign_tin,
                     additional_properties: additional_properties)
end

.namesObject

A mapping from model property names to API property names.



89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/fdx_v660_api/models/form1042_s_agent.rb', line 89

def self.names
  @_hash = {} if @_hash.nil?
  @_hash['tin'] = 'tin'
  @_hash['party_type'] = 'partyType'
  @_hash['individual_name'] = 'individualName'
  @_hash['business_name'] = 'businessName'
  @_hash['address'] = 'address'
  @_hash['phone'] = 'phone'
  @_hash['email'] = 'email'
  @_hash['ch3_status_code'] = 'ch3StatusCode'
  @_hash['ch4_status_code'] = 'ch4StatusCode'
  @_hash['giin'] = 'giin'
  @_hash['foreign_tin'] = 'foreignTin'
  @_hash
end

.nullablesObject

An array for nullable fields



123
124
125
# File 'lib/fdx_v660_api/models/form1042_s_agent.rb', line 123

def self.nullables
  []
end

.optionalsObject

An array for optional fields



106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# File 'lib/fdx_v660_api/models/form1042_s_agent.rb', line 106

def self.optionals
  %w[
    tin
    party_type
    individual_name
    business_name
    address
    phone
    email
    ch3_status_code
    ch4_status_code
    giin
    foreign_tin
  ]
end

Instance Method Details

#inspectObject

Provides a debugging-friendly string with detailed object information.



201
202
203
204
205
206
207
208
209
# File 'lib/fdx_v660_api/models/form1042_s_agent.rb', line 201

def inspect
  class_name = self.class.name.split('::').last
  "<#{class_name} tin: #{@tin.inspect}, party_type: #{@party_type.inspect}, individual_name:"\
  " #{@individual_name.inspect}, business_name: #{@business_name.inspect}, address:"\
  " #{@address.inspect}, phone: #{@phone.inspect}, email: #{@email.inspect}, ch3_status_code:"\
  " #{@ch3_status_code.inspect}, ch4_status_code: #{@ch4_status_code.inspect}, giin:"\
  " #{@giin.inspect}, foreign_tin: #{@foreign_tin.inspect}, additional_properties:"\
  " #{@additional_properties}>"
end

#to_sObject

Provides a human-readable string representation of the object.



191
192
193
194
195
196
197
198
# File 'lib/fdx_v660_api/models/form1042_s_agent.rb', line 191

def to_s
  class_name = self.class.name.split('::').last
  "<#{class_name} tin: #{@tin}, party_type: #{@party_type}, individual_name:"\
  " #{@individual_name}, business_name: #{@business_name}, address: #{@address}, phone:"\
  " #{@phone}, email: #{@email}, ch3_status_code: #{@ch3_status_code}, ch4_status_code:"\
  " #{@ch4_status_code}, giin: #{@giin}, foreign_tin: #{@foreign_tin}, additional_properties:"\
  " #{@additional_properties}>"
end