wells_fargo 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. data/.gitignore +5 -0
  2. data/Gemfile +4 -0
  3. data/PM XML Sample.xml +5260 -0
  4. data/PM XML Schema.xml +539 -0
  5. data/Rakefile +17 -0
  6. data/lib/schema.xml +539 -0
  7. data/lib/wells_fargo/element.rb +77 -0
  8. data/lib/wells_fargo/elements/account_reporting.rb +14 -0
  9. data/lib/wells_fargo/elements/additional_details.rb +10 -0
  10. data/lib/wells_fargo/elements/amt_group.rb +11 -0
  11. data/lib/wells_fargo/elements/bank_id.rb +9 -0
  12. data/lib/wells_fargo/elements/bank_info.rb +14 -0
  13. data/lib/wells_fargo/elements/check.rb +14 -0
  14. data/lib/wells_fargo/elements/contact_info.rb +11 -0
  15. data/lib/wells_fargo/elements/cur_amt.rb +9 -0
  16. data/lib/wells_fargo/elements/date_info.rb +9 -0
  17. data/lib/wells_fargo/elements/deductions.rb +9 -0
  18. data/lib/wells_fargo/elements/deductions_total.rb +9 -0
  19. data/lib/wells_fargo/elements/delivery.rb +28 -0
  20. data/lib/wells_fargo/elements/delivery_party.rb +12 -0
  21. data/lib/wells_fargo/elements/dep_acct_id.rb +11 -0
  22. data/lib/wells_fargo/elements/doc_delivery.rb +10 -0
  23. data/lib/wells_fargo/elements/earnings.rb +10 -0
  24. data/lib/wells_fargo/elements/earnings_total.rb +10 -0
  25. data/lib/wells_fargo/elements/edd_biller_id.rb +9 -0
  26. data/lib/wells_fargo/elements/eff_dt.rb +9 -0
  27. data/lib/wells_fargo/elements/exemptions.rb +12 -0
  28. data/lib/wells_fargo/elements/file.rb +14 -0
  29. data/lib/wells_fargo/elements/file_info_grp.rb +12 -0
  30. data/lib/wells_fargo/elements/file_out.rb +11 -0
  31. data/lib/wells_fargo/elements/id_info.rb +9 -0
  32. data/lib/wells_fargo/elements/intermediary_dep_acct_id.rb +9 -0
  33. data/lib/wells_fargo/elements/invoice_adj.rb +15 -0
  34. data/lib/wells_fargo/elements/invoice_info.rb +20 -0
  35. data/lib/wells_fargo/elements/invoice_mgr.rb +9 -0
  36. data/lib/wells_fargo/elements/message.rb +9 -0
  37. data/lib/wells_fargo/elements/name.rb +11 -0
  38. data/lib/wells_fargo/elements/name_map.rb +25 -0
  39. data/lib/wells_fargo/elements/note.rb +9 -0
  40. data/lib/wells_fargo/elements/orgnr_dep_acct_id.rb +9 -0
  41. data/lib/wells_fargo/elements/orgnr_party.rb +12 -0
  42. data/lib/wells_fargo/elements/payroll.rb +18 -0
  43. data/lib/wells_fargo/elements/phone_num.rb +10 -0
  44. data/lib/wells_fargo/elements/pmt_detail.rb +10 -0
  45. data/lib/wells_fargo/elements/pmt_rec.rb +41 -0
  46. data/lib/wells_fargo/elements/pmt_supp_ccr.rb +13 -0
  47. data/lib/wells_fargo/elements/pmt_supp_fdm.rb +12 -0
  48. data/lib/wells_fargo/elements/pmt_supp_pob.rb +9 -0
  49. data/lib/wells_fargo/elements/pmt_supp_wtx.rb +22 -0
  50. data/lib/wells_fargo/elements/po_info.rb +10 -0
  51. data/lib/wells_fargo/elements/post_addr.rb +16 -0
  52. data/lib/wells_fargo/elements/ra_info.rb +11 -0
  53. data/lib/wells_fargo/elements/rcvr_dep_acct_id.rb +9 -0
  54. data/lib/wells_fargo/elements/rcvr_party.rb +12 -0
  55. data/lib/wells_fargo/elements/ref_info.rb +10 -0
  56. data/lib/wells_fargo/elements/return_party.rb +12 -0
  57. data/lib/wells_fargo/elements/tax_info.rb +11 -0
  58. data/lib/wells_fargo/elements/vendor_party.rb +12 -0
  59. data/lib/wells_fargo/payment_manager.rb +27 -0
  60. data/lib/wells_fargo/schema.rb +84 -0
  61. data/lib/wells_fargo/version.rb +3 -0
  62. data/lib/wells_fargo.rb +26 -0
  63. data/test/element_test.rb +123 -0
  64. data/test/payment_manager_test.rb +31 -0
  65. data/test/test_helper.rb +3 -0
  66. data/wells_fargo.gemspec +24 -0
  67. metadata +162 -0
data/lib/schema.xml ADDED
@@ -0,0 +1,539 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3
+ <!--ECS Payment Manager Payment XML Schema version 2010.06.02-->
4
+ <xsd:element name="File">
5
+ <xsd:complexType>
6
+ <xsd:sequence>
7
+ <xsd:element minOccurs="0" maxOccurs="unbounded" ref="PmtRec"/>
8
+ <xsd:element minOccurs="0" ref="FileInfoGrp"/>
9
+ </xsd:sequence>
10
+ <xsd:attribute name="CompanyID" use="optional"/>
11
+ <xsd:attribute name="ProcessID" use="optional"/>
12
+ <xsd:attribute name="DocumentType" use="optional"/>
13
+ <xsd:attribute name="PmtRecCount" use="optional"/>
14
+ <xsd:attribute name="PmtRecTotal" use="optional"/>
15
+ </xsd:complexType>
16
+ </xsd:element>
17
+ <xsd:element name="PmtRec">
18
+ <xsd:complexType>
19
+ <xsd:sequence>
20
+ <xsd:element minOccurs="0" maxOccurs="unbounded" ref="RefInfo"/>
21
+ <xsd:element minOccurs="0" maxOccurs="unbounded" ref="IDInfo"/>
22
+ <xsd:element minOccurs="0" maxOccurs="unbounded" ref="DateInfo"/>
23
+ <xsd:element minOccurs="0" maxOccurs="unbounded" ref="Message"/>
24
+ <xsd:element minOccurs="0" ref="Check"/>
25
+ <xsd:element minOccurs="0" ref="OrgnrParty"/>
26
+ <xsd:element minOccurs="0" ref="RcvrParty"/>
27
+ <xsd:element minOccurs="0" ref="DeliveryParty"/>
28
+ <xsd:element minOccurs="0" ref="ReturnParty"/>
29
+ <xsd:element minOccurs="0" ref="OrgnrDepAcctID"/>
30
+ <xsd:element minOccurs="0" ref="RcvrDepAcctID"/>
31
+ <xsd:element minOccurs="0" maxOccurs="2" ref="IntermediaryDepAcctID"/>
32
+ <xsd:element minOccurs="0" ref="VendorParty"/>
33
+ <xsd:element minOccurs="0" ref="PmtDetail"/>
34
+ <xsd:element minOccurs="0" ref="DocDelivery"/>
35
+ <xsd:element minOccurs="0" name="PDPHandlingCode"/>
36
+ <xsd:element minOccurs="0" name="PmtID"/>
37
+ <xsd:element minOccurs="0" ref="PmtSuppWTX"/>
38
+ <xsd:element minOccurs="0" ref="PmtSuppFDM"/>
39
+ <xsd:element minOccurs="0" ref="PmtSuppPOB"/>
40
+ <xsd:element minOccurs="0" ref="PmtSuppCCR"/>
41
+ <xsd:element minOccurs="0" ref="CurAmt"/>
42
+ <xsd:element minOccurs="0" name="CurCode"/>
43
+ <xsd:element minOccurs="0" name="PrcDate"/>
44
+ <xsd:element minOccurs="0" name="ValueDate"/>
45
+ <xsd:element minOccurs="0" name="RlsDate"/>
46
+ <xsd:element minOccurs="0" ref="InvoiceMgr"/>
47
+ </xsd:sequence>
48
+ <xsd:attribute name="PmtFormat"/>
49
+ <xsd:attribute name="PmtFormatIntl"/>
50
+ <xsd:attribute name="PmtMethod" use="required"/>
51
+ <xsd:attribute name="DeliveryMethod"/>
52
+ <xsd:attribute name="TranHandlingCode"/>
53
+ <xsd:attribute name="InvoiceMgrFlag"/>
54
+ <xsd:attribute name="PmtCrDr" use="optional"/>
55
+ </xsd:complexType>
56
+ </xsd:element>
57
+ <xsd:element name="RefInfo">
58
+ <xsd:complexType>
59
+ <xsd:sequence>
60
+ <xsd:element name="RefID"/>
61
+ <xsd:element minOccurs="0" name="RefDesc"/>
62
+ </xsd:sequence>
63
+ <xsd:attribute name="RefType" use="optional"/>
64
+ </xsd:complexType>
65
+ </xsd:element>
66
+ <xsd:element name="IDInfo">
67
+ <xsd:complexType>
68
+ <xsd:sequence>
69
+ <xsd:element name="ID"/>
70
+ </xsd:sequence>
71
+ <xsd:attribute name="IDType" use="optional"/>
72
+ </xsd:complexType>
73
+ </xsd:element>
74
+ <xsd:element name="DateInfo">
75
+ <xsd:complexType>
76
+ <xsd:sequence>
77
+ <xsd:element name="Date"/>
78
+ </xsd:sequence>
79
+ <xsd:attribute name="DateType" use="optional"/>
80
+ </xsd:complexType>
81
+ </xsd:element>
82
+ <xsd:element name="Message">
83
+ <xsd:complexType>
84
+ <xsd:sequence>
85
+ <xsd:element name="MsgText"/>
86
+ </xsd:sequence>
87
+ <xsd:attribute name="MsgType" use="optional"/>
88
+ </xsd:complexType>
89
+ </xsd:element>
90
+ <xsd:element name="Check">
91
+ <xsd:complexType>
92
+ <xsd:all>
93
+ <xsd:element minOccurs="0" maxOccurs="1" name="ChkNum"/>
94
+ <xsd:element minOccurs="0" maxOccurs="1" name="ChkDocNum"/>
95
+ <xsd:element minOccurs="0" maxOccurs="1" name="ChkCtrlNum"/>
96
+ <xsd:element minOccurs="0" maxOccurs="1" name="CourierName"/>
97
+ <xsd:element minOccurs="0" maxOccurs="1" name="CourierAccount"/>
98
+ <xsd:element minOccurs="0" maxOccurs="1" name="DeliveryCode"/>
99
+ </xsd:all>
100
+ </xsd:complexType>
101
+ </xsd:element>
102
+ <xsd:element name="OrgnrParty">
103
+ <xsd:complexType>
104
+ <xsd:sequence>
105
+ <xsd:element minOccurs="0" ref="Name"/>
106
+ <xsd:element minOccurs="0" maxOccurs="unbounded" ref="RefInfo"/>
107
+ <xsd:element minOccurs="0" ref="PostAddr"/>
108
+ <xsd:element minOccurs="0" ref="ContactInfo"/>
109
+ </xsd:sequence>
110
+ </xsd:complexType>
111
+ </xsd:element>
112
+ <xsd:element name="DeliveryParty">
113
+ <xsd:complexType>
114
+ <xsd:sequence>
115
+ <xsd:element minOccurs="0" ref="Name"/>
116
+ <xsd:element minOccurs="0" maxOccurs="unbounded" ref="RefInfo"/>
117
+ <xsd:element minOccurs="0" ref="PostAddr"/>
118
+ <xsd:element minOccurs="0" ref="ContactInfo"/>
119
+ </xsd:sequence>
120
+ </xsd:complexType>
121
+ </xsd:element>
122
+ <xsd:element name="ReturnParty">
123
+ <xsd:complexType>
124
+ <xsd:sequence>
125
+ <xsd:element minOccurs="0" ref="Name"/>
126
+ <xsd:element minOccurs="0" maxOccurs="unbounded" ref="RefInfo"/>
127
+ <xsd:element minOccurs="0" ref="PostAddr"/>
128
+ <xsd:element minOccurs="0" ref="ContactInfo"/>
129
+ </xsd:sequence>
130
+ </xsd:complexType>
131
+ </xsd:element>
132
+ <xsd:element name="BankID"/>
133
+ <xsd:element name="Name">
134
+ <xsd:complexType>
135
+ <xsd:all>
136
+ <xsd:element minOccurs="0" maxOccurs="1" name="Name1"/>
137
+ <xsd:element minOccurs="0" maxOccurs="1" name="Name2"/>
138
+ <xsd:element minOccurs="0" maxOccurs="1" name="Name3"/>
139
+ </xsd:all>
140
+ </xsd:complexType>
141
+ </xsd:element>
142
+ <xsd:element name="PostAddr">
143
+ <xsd:complexType>
144
+ <xsd:sequence>
145
+ <xsd:element minOccurs="0" maxOccurs="1" name="Addr1"/>
146
+ <xsd:element minOccurs="0" maxOccurs="1" name="Addr2"/>
147
+ <xsd:element minOccurs="0" maxOccurs="1" name="Addr3"/>
148
+ <xsd:element minOccurs="0" maxOccurs="1" name="City"/>
149
+ <xsd:element minOccurs="0" maxOccurs="1" name="StateProv"/>
150
+ <xsd:element minOccurs="0" maxOccurs="1" name="PostalCode"/>
151
+ <xsd:element minOccurs="0" maxOccurs="1" name="Country"/>
152
+ <xsd:element minOccurs="0" maxOccurs="1" name="CountryName"/>
153
+ </xsd:sequence>
154
+ </xsd:complexType>
155
+ </xsd:element>
156
+ <xsd:element name="DepAcctID">
157
+ <xsd:complexType>
158
+ <xsd:sequence>
159
+ <xsd:element minOccurs="0" ref="BankInfo"/>
160
+ </xsd:sequence>
161
+ <xsd:attribute name="AcctID"/>
162
+ <xsd:attribute name="AcctType"/>
163
+ <xsd:attribute name="AcctCur"/>
164
+ </xsd:complexType>
165
+ </xsd:element>
166
+ <xsd:element name="BankInfo">
167
+ <xsd:complexType>
168
+ <xsd:sequence>
169
+ <xsd:element minOccurs="0" maxOccurs="unbounded" ref="RefInfo"/>
170
+ <xsd:element minOccurs="0" ref="PostAddr"/>
171
+ <xsd:element minOccurs="0" ref="BankID"/>
172
+ </xsd:sequence>
173
+ <xsd:attribute name="Name"/>
174
+ <xsd:attribute name="BranchID"/>
175
+ <xsd:attribute name="BranchName"/>
176
+ <xsd:attribute name="BankIDType"/>
177
+ </xsd:complexType>
178
+ </xsd:element>
179
+ <xsd:element name="RcvrParty">
180
+ <xsd:complexType>
181
+ <xsd:sequence>
182
+ <xsd:element minOccurs="0" ref="Name"/>
183
+ <xsd:element minOccurs="0" maxOccurs="unbounded" ref="RefInfo"/>
184
+ <xsd:element minOccurs="0" ref="PostAddr"/>
185
+ <xsd:element minOccurs="0" ref="ContactInfo"/>
186
+ </xsd:sequence>
187
+ </xsd:complexType>
188
+ </xsd:element>
189
+ <xsd:element name="ContactInfo">
190
+ <xsd:complexType>
191
+ <xsd:all>
192
+ <xsd:element minOccurs="0" maxOccurs="1" ref="PhoneNum"/>
193
+ <xsd:element minOccurs="0" maxOccurs="1" name="EmailAddr"/>
194
+ <xsd:element minOccurs="0" maxOccurs="1" name="URL"/>
195
+ </xsd:all>
196
+ <xsd:attribute name="Name"/>
197
+ </xsd:complexType>
198
+ </xsd:element>
199
+ <xsd:element name="PhoneNum">
200
+ <xsd:complexType>
201
+ <xsd:attribute name="PhoneType"/>
202
+ <xsd:attribute name="Phone"/>
203
+ </xsd:complexType>
204
+ </xsd:element>
205
+ <xsd:element name="PmtDetail">
206
+ <xsd:complexType>
207
+ <xsd:sequence>
208
+ <xsd:element minOccurs="0" maxOccurs="unbounded" ref="InvoiceInfo"/>
209
+ <xsd:element minOccurs="0" ref="Payroll"/>
210
+ </xsd:sequence>
211
+ </xsd:complexType>
212
+ </xsd:element>
213
+ <xsd:element name="InvoiceInfo">
214
+ <xsd:complexType>
215
+ <xsd:sequence>
216
+ <xsd:element minOccurs="0" maxOccurs="unbounded" ref="RefInfo"/>
217
+ <xsd:element minOccurs="0" maxOccurs="unbounded" ref="Note"/>
218
+ <xsd:element minOccurs="0" maxOccurs="unbounded" ref="TaxInfo"/>
219
+ <xsd:element minOccurs="0" maxOccurs="unbounded" ref="InvoiceAdj"/>
220
+ <xsd:element minOccurs="0" maxOccurs="unbounded" ref="POInfo"/>
221
+ </xsd:sequence>
222
+ <xsd:attribute name="PmtActionCode"/>
223
+ <xsd:attribute name="DiscountCurAmt"/>
224
+ <xsd:attribute name="TotalCurAmt"/>
225
+ <xsd:attribute name="NetCurAmt"/>
226
+ <xsd:attribute name="WithdAmt"/>
227
+ <xsd:attribute name="EffDt"/>
228
+ <xsd:attribute name="InvoiceType"/>
229
+ <xsd:attribute name="InvoiceNum"/>
230
+ </xsd:complexType>
231
+ </xsd:element>
232
+ <xsd:element name="CurAmt"/>
233
+ <xsd:element name="TaxInfo">
234
+ <xsd:complexType>
235
+ <xsd:all>
236
+ <xsd:element minOccurs="0" maxOccurs="1" name="OrgID"/>
237
+ <xsd:element minOccurs="0" maxOccurs="1" ref="CurAmt"/>
238
+ <xsd:element minOccurs="0" maxOccurs="1" name="Rate"/>
239
+ </xsd:all>
240
+ <xsd:attribute name="TaxType"/>
241
+ </xsd:complexType>
242
+ </xsd:element>
243
+ <xsd:element name="InvoiceAdj">
244
+ <xsd:complexType>
245
+ <xsd:sequence>
246
+ <xsd:element minOccurs="0" name="InvoiceAdjNum"/>
247
+ <xsd:element minOccurs="0" maxOccurs="unbounded" ref="Note"/>
248
+ <xsd:element minOccurs="0" ref="CurAmt"/>
249
+ <xsd:element minOccurs="0" ref="EffDt"/>
250
+ <xsd:element minOccurs="0" name="Desc"/>
251
+ <xsd:element minOccurs="0" maxOccurs="unbounded" ref="RAInfo"/>
252
+ </xsd:sequence>
253
+ <xsd:attribute name="AdjType"/>
254
+ <xsd:attribute name="AdjNumType"/>
255
+ </xsd:complexType>
256
+ </xsd:element>
257
+ <xsd:element name="Payroll">
258
+ <xsd:complexType>
259
+ <xsd:sequence>
260
+ <xsd:element minOccurs="0" ref="Exemptions"/>
261
+ <xsd:element minOccurs="0" maxOccurs="unbounded" ref="Message"/>
262
+ <xsd:element minOccurs="0" maxOccurs="unbounded" ref="AdditionalDetails"/>
263
+ <xsd:element minOccurs="0" maxOccurs="unbounded" ref="Earnings"/>
264
+ <xsd:element minOccurs="0" maxOccurs="unbounded" ref="EarningsTotal"/>
265
+ <xsd:element minOccurs="0" maxOccurs="unbounded" ref="Deductions"/>
266
+ <xsd:element minOccurs="0" maxOccurs="unbounded" ref="DeductionsTotal"/>
267
+ <xsd:element minOccurs="0" maxOccurs="unbounded" ref="AccountReporting"/>
268
+ <xsd:element minOccurs="0" maxOccurs="unbounded" ref="RefInfo"/>
269
+ </xsd:sequence>
270
+ <xsd:attribute name="PrdEndDate"/>
271
+ <xsd:attribute name="PrdBeginDate"/>
272
+ </xsd:complexType>
273
+ </xsd:element>
274
+ <xsd:element name="Exemptions">
275
+ <xsd:complexType>
276
+ <xsd:all>
277
+ <xsd:element minOccurs="0" maxOccurs="1" name="StateExmpt"/>
278
+ <xsd:element minOccurs="0" maxOccurs="1" name="FedExmpt"/>
279
+ <xsd:element minOccurs="0" maxOccurs="1" name="WithholdStatus"/>
280
+ <xsd:element minOccurs="0" maxOccurs="1" name="WithholdAmt"/>
281
+ </xsd:all>
282
+ </xsd:complexType>
283
+ </xsd:element>
284
+ <xsd:element name="AdditionalDetails">
285
+ <xsd:complexType>
286
+ <xsd:all>
287
+ <xsd:element minOccurs="0" maxOccurs="1" name="Desc"/>
288
+ <xsd:element minOccurs="0" maxOccurs="1" name="Details"/>
289
+ </xsd:all>
290
+ </xsd:complexType>
291
+ </xsd:element>
292
+ <xsd:element name="Earnings">
293
+ <xsd:complexType>
294
+ <xsd:all>
295
+ <xsd:element minOccurs="0" maxOccurs="1" name="Hours"/>
296
+ <xsd:element minOccurs="0" maxOccurs="1" ref="AmtGroup"/>
297
+ </xsd:all>
298
+ </xsd:complexType>
299
+ </xsd:element>
300
+ <xsd:element name="EarningsTotal">
301
+ <xsd:complexType>
302
+ <xsd:all>
303
+ <xsd:element minOccurs="0" maxOccurs="1" name="Hours"/>
304
+ <xsd:element minOccurs="0" maxOccurs="1" ref="AmtGroup"/>
305
+ </xsd:all>
306
+ </xsd:complexType>
307
+ </xsd:element>
308
+ <xsd:element name="Deductions">
309
+ <xsd:complexType>
310
+ <xsd:sequence>
311
+ <xsd:element minOccurs="0" ref="AmtGroup"/>
312
+ </xsd:sequence>
313
+ </xsd:complexType>
314
+ </xsd:element>
315
+ <xsd:element name="DeductionsTotal">
316
+ <xsd:complexType>
317
+ <xsd:sequence>
318
+ <xsd:element minOccurs="0" ref="AmtGroup"/>
319
+ </xsd:sequence>
320
+ </xsd:complexType>
321
+ </xsd:element>
322
+ <xsd:element name="AccountReporting">
323
+ <xsd:complexType>
324
+ <xsd:all>
325
+ <xsd:element minOccurs="0" maxOccurs="1" name="CurrAmt"/>
326
+ <xsd:element minOccurs="0" maxOccurs="1" name="CurCode"/>
327
+ <xsd:element minOccurs="0" maxOccurs="1" name="ReasonCode"/>
328
+ <xsd:element minOccurs="0" maxOccurs="1" name="AcctID"/>
329
+ <xsd:element minOccurs="0" maxOccurs="1" name="BankIDType"/>
330
+ <xsd:element minOccurs="0" maxOccurs="1" ref="BankID"/>
331
+ </xsd:all>
332
+ </xsd:complexType>
333
+ </xsd:element>
334
+ <xsd:element name="AmtGroup">
335
+ <xsd:complexType>
336
+ <xsd:all>
337
+ <xsd:element minOccurs="0" maxOccurs="1" name="Desc"/>
338
+ <xsd:element minOccurs="0" maxOccurs="1" name="CurrAmt"/>
339
+ <xsd:element minOccurs="0" maxOccurs="1" name="YTDAmt"/>
340
+ </xsd:all>
341
+ </xsd:complexType>
342
+ </xsd:element>
343
+ <xsd:element name="FileInfoGrp">
344
+ <xsd:complexType>
345
+ <xsd:attribute name="FileDate" use="optional"/>
346
+ <xsd:attribute name="FileTime"/>
347
+ <xsd:attribute name="FileControlNumber" use="optional"/>
348
+ <xsd:attribute name="GroupControlNumber" use="optional" />
349
+ </xsd:complexType>
350
+ </xsd:element>
351
+ <xsd:element name="OrgnrDepAcctID">
352
+ <xsd:complexType>
353
+ <xsd:sequence>
354
+ <xsd:element minOccurs="0" ref="DepAcctID"/>
355
+ </xsd:sequence>
356
+ </xsd:complexType>
357
+ </xsd:element>
358
+ <xsd:element name="RcvrDepAcctID">
359
+ <xsd:complexType>
360
+ <xsd:sequence>
361
+ <xsd:element minOccurs="0" ref="DepAcctID"/>
362
+ </xsd:sequence>
363
+ </xsd:complexType>
364
+ </xsd:element>
365
+ <xsd:element name="IntermediaryDepAcctID">
366
+ <xsd:complexType>
367
+ <xsd:sequence>
368
+ <xsd:element minOccurs="0" ref="DepAcctID"/>
369
+ </xsd:sequence>
370
+ </xsd:complexType>
371
+ </xsd:element>
372
+ <xsd:element name="VendorParty">
373
+ <xsd:complexType>
374
+ <xsd:sequence>
375
+ <xsd:element minOccurs="0" ref="Name"/>
376
+ <xsd:element minOccurs="0" maxOccurs="unbounded" ref="RefInfo"/>
377
+ <xsd:element minOccurs="0" ref="PostAddr"/>
378
+ <xsd:element minOccurs="0" ref="ContactInfo"/>
379
+ </xsd:sequence>
380
+ </xsd:complexType>
381
+ </xsd:element>
382
+ <xsd:element name="POInfo">
383
+ <xsd:complexType>
384
+ <xsd:all>
385
+ <xsd:element minOccurs="0" maxOccurs="1" name="PONum"/>
386
+ <xsd:element minOccurs="0" maxOccurs="1" name="Desc"/>
387
+ </xsd:all>
388
+ <xsd:attribute name="POType"/>
389
+ </xsd:complexType>
390
+ </xsd:element>
391
+ <xsd:element name="Note">
392
+ <xsd:complexType>
393
+ <xsd:sequence>
394
+ <xsd:element name="NoteText"/>
395
+ </xsd:sequence>
396
+ <xsd:attribute name="NoteType" use="optional"/>
397
+ </xsd:complexType>
398
+ </xsd:element>
399
+ <xsd:element name="RAInfo">
400
+ <xsd:complexType>
401
+ <xsd:all>
402
+ <xsd:element minOccurs="0" maxOccurs="1" name="RANum"/>
403
+ <xsd:element minOccurs="0" maxOccurs="1" name="RADate"/>
404
+ <xsd:element minOccurs="0" maxOccurs="1" name="Desc"/>
405
+ </xsd:all>
406
+ <xsd:attribute name="RANumType"/>
407
+ </xsd:complexType>
408
+ </xsd:element>
409
+ <xsd:element name="DocDelivery">
410
+ <xsd:complexType>
411
+ <xsd:sequence>
412
+ <xsd:element minOccurs="0" ref="EDDBillerID"/>
413
+ <xsd:element minOccurs="0" maxOccurs="unbounded" ref="FileOut"/>
414
+ </xsd:sequence>
415
+ </xsd:complexType>
416
+ </xsd:element>
417
+ <xsd:element name="EDDBillerID"/>
418
+ <xsd:element name="FileOut">
419
+ <xsd:complexType>
420
+ <xsd:sequence>
421
+ <xsd:element minOccurs="0" name="FileType"/>
422
+ <xsd:element minOccurs="0" name="FileFormat"/>
423
+ <xsd:element maxOccurs="unbounded" ref="Delivery"/>
424
+ </xsd:sequence>
425
+ </xsd:complexType>
426
+ </xsd:element>
427
+ <xsd:element name="Delivery">
428
+ <xsd:complexType>
429
+ <xsd:all>
430
+ <xsd:element minOccurs="0" maxOccurs="1" name="DeliveryType"/>
431
+ <xsd:element minOccurs="0" maxOccurs="1" name="DeliveryContactName"/>
432
+ <xsd:element minOccurs="0" maxOccurs="1" name="DeliveryFaxNumber"/>
433
+ <xsd:element minOccurs="0" maxOccurs="1" name="DeliveryEmailAddress"/>
434
+ <xsd:element minOccurs="0" maxOccurs="1" name="DeliveryUserID"/>
435
+ <xsd:element minOccurs="0" maxOccurs="1" name="DeliveryCompanyID"/>
436
+ <xsd:element minOccurs="0" maxOccurs="1" name="SecureType"/>
437
+ <xsd:element minOccurs="0" maxOccurs="1" name="SecureQuestion01"/>
438
+ <xsd:element minOccurs="0" maxOccurs="1" name="SecurePassword01"/>
439
+ <xsd:element minOccurs="0" maxOccurs="1" name="SecureQuestion02"/>
440
+ <xsd:element minOccurs="0" maxOccurs="1" name="SecurePassword02"/>
441
+ <xsd:element minOccurs="0" maxOccurs="1" name="ReceivingAddress1"/>
442
+ <xsd:element minOccurs="0" maxOccurs="1" name="ReceivingAddress2"/>
443
+ <xsd:element minOccurs="0" maxOccurs="1" name="ReceivingCity"/>
444
+ <xsd:element minOccurs="0" maxOccurs="1" name="ReceivingState"/>
445
+ <xsd:element minOccurs="0" maxOccurs="1" name="ReceivingZip"/>
446
+ <xsd:element minOccurs="0" maxOccurs="1" name="ReceivingCountry"/>
447
+ <xsd:element minOccurs="0" maxOccurs="1" name="ReceivingCountryCode"/>
448
+ <xsd:element minOccurs="0" maxOccurs="1" name=" DeliveryCode" />
449
+ <xsd:element minOccurs="0" maxOccurs="1" name=" CourierAccount" />
450
+ </xsd:all>
451
+ </xsd:complexType>
452
+ </xsd:element>
453
+ <xsd:element name="EffDt"/>
454
+ <xsd:element name="PmtSuppWTX">
455
+ <xsd:complexType>
456
+ <xsd:all>
457
+ <xsd:element minOccurs="0" maxOccurs="1" name="LiabilityDate"/>
458
+ <xsd:element minOccurs="0" maxOccurs="1" name="AccessCode"/>
459
+ <xsd:element minOccurs="0" maxOccurs="1" name="Pin"/>
460
+ <xsd:element minOccurs="0" maxOccurs="1" name="StateFedCode"/>
461
+ <xsd:element minOccurs="0" maxOccurs="1" name="TaxAuthorityCode"/>
462
+ <xsd:element minOccurs="0" maxOccurs="1" name="TaxTypeCode"/>
463
+ <xsd:element minOccurs="0" maxOccurs="1" name="Amount1"/>
464
+ <xsd:element minOccurs="0" maxOccurs="1" name="AmountType1"/>
465
+ <xsd:element minOccurs="0" maxOccurs="1" name="Amount2"/>
466
+ <xsd:element minOccurs="0" maxOccurs="1" name="AmountType2"/>
467
+ <xsd:element minOccurs="0" maxOccurs="1" name="Amount3"/>
468
+ <xsd:element minOccurs="0" maxOccurs="1" name="AmountType3"/>
469
+ <xsd:element minOccurs="0" maxOccurs="1" name="Amount4"/>
470
+ <xsd:element minOccurs="0" maxOccurs="1" name="AmountType4"/>
471
+ </xsd:all>
472
+ </xsd:complexType>
473
+ </xsd:element>
474
+ <xsd:element name="PmtSuppFDM">
475
+ <xsd:complexType>
476
+ <xsd:all>
477
+ <xsd:element minOccurs="0" maxOccurs="1" name="CardType"/>
478
+ <xsd:element minOccurs="0" maxOccurs="1" name="ExpDate"/>
479
+ <xsd:element minOccurs="0" maxOccurs="1" name="OrderFlag"/>
480
+ <xsd:element minOccurs="0" maxOccurs="1" name="EC"/>
481
+ </xsd:all>
482
+ </xsd:complexType>
483
+ </xsd:element>
484
+ <xsd:element name="PmtSuppPOB">
485
+ <xsd:complexType>
486
+ <xsd:sequence>
487
+ <xsd:element minOccurs="0" name="OrigInvDate"/>
488
+ </xsd:sequence>
489
+ </xsd:complexType>
490
+ </xsd:element>
491
+ <xsd:element name="PmtSuppCCR">
492
+ <xsd:complexType>
493
+ <xsd:all>
494
+ <xsd:element minOccurs="0" maxOccurs="1" name="PayeeType"/>
495
+ <xsd:element minOccurs="0" maxOccurs="1" name="ExpDate"/>
496
+ <xsd:element minOccurs="0" maxOccurs="1" name="MerchantID"/>
497
+ <xsd:element minOccurs="0" maxOccurs="1" name="MCCCode"/>
498
+ <xsd:element minOccurs="0" maxOccurs="1" name="Division"/>
499
+ </xsd:all>
500
+ </xsd:complexType>
501
+ </xsd:element>
502
+ <xsd:element name="InvoiceMgr">
503
+ <xsd:complexType>
504
+ <xsd:sequence>
505
+ <xsd:element minOccurs="0" name="InvoiceMgrFlag"/>
506
+ </xsd:sequence>
507
+ </xsd:complexType>
508
+ </xsd:element>
509
+ </xsd:schema>
510
+
511
+
512
+
513
+
514
+
515
+
516
+
517
+
518
+
519
+
520
+
521
+
522
+
523
+
524
+
525
+
526
+
527
+
528
+
529
+
530
+
531
+
532
+
533
+
534
+
535
+
536
+
537
+
538
+
539
+
@@ -0,0 +1,77 @@
1
+ module WellsFargo
2
+ class Element
3
+
4
+ attr_accessor :xml, :attributes
5
+
6
+ NameMap = Schema.NameMap
7
+
8
+ def initialize xml, attributes
9
+ @xml = xml
10
+ @attributes = attributes
11
+ end
12
+
13
+ def add_child name, attributes = {}, &block
14
+
15
+ child_class_name = NameMap[name.to_s]
16
+ begin
17
+ child_class = Element.const_get(child_class_name)
18
+ rescue
19
+ Element.const_set(child_class_name, Class.new(Element))
20
+ child_class = Element.const_get(child_class_name)
21
+ end
22
+
23
+ child = child_class.new(xml, attributes)
24
+ capture = proc do |x|
25
+ if block_given?
26
+ content = yield child
27
+ content.to_s
28
+ elsif !attributes.is_a?(Hash)
29
+ attributes.to_s
30
+ end
31
+ end
32
+
33
+ if child.attributes.is_a?(Hash)
34
+ xml.tag! child.element_name, child.attributes, &capture
35
+ else
36
+ xml.tag! child.element_name, child.attributes
37
+ end
38
+ end
39
+
40
+ def element_name
41
+ self.class.name.split('::').last
42
+ end
43
+
44
+ protected
45
+
46
+ def method_missing method, *args, &block
47
+ if self.class.children.any? {|c| method.to_sym == c[:name] }
48
+ add_child method, *args, &block
49
+ else
50
+ super
51
+ end
52
+ end
53
+ end
54
+
55
+ class << Element
56
+ attr_accessor :attributes, :required, :children
57
+ def attribute name
58
+ @attributes ||= []
59
+ @attributes << name
60
+ end
61
+
62
+ def required_attribute name
63
+ @required ||= []
64
+ @required << name
65
+ attribute name
66
+ end
67
+
68
+ def child name, limit = nil
69
+ @children ||= []
70
+ @children << {:name => name, :limit => limit}
71
+ end
72
+ end
73
+ end
74
+
75
+ Dir.glob(File.join(File.dirname(__FILE__), 'elements', '*')).each do |element|
76
+ require element
77
+ end
@@ -0,0 +1,14 @@
1
+ module WellsFargo
2
+ class Element
3
+ class AccountReporting < WellsFargo::Element
4
+
5
+
6
+ child :curr_amt, :limit => 1
7
+ child :cur_code, :limit => 1
8
+ child :reason_code, :limit => 1
9
+ child :acct_id, :limit => 1
10
+ child :bank_id_type, :limit => 1
11
+ child :bank_id, :limit => 1
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,10 @@
1
+ module WellsFargo
2
+ class Element
3
+ class AdditionalDetails < WellsFargo::Element
4
+
5
+
6
+ child :desc, :limit => 1
7
+ child :details, :limit => 1
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,11 @@
1
+ module WellsFargo
2
+ class Element
3
+ class AmtGroup < WellsFargo::Element
4
+
5
+
6
+ child :desc, :limit => 1
7
+ child :curr_amt, :limit => 1
8
+ child :ytd_amt, :limit => 1
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,9 @@
1
+ module WellsFargo
2
+ class Element
3
+ class BankID < WellsFargo::Element
4
+
5
+
6
+
7
+ end
8
+ end
9
+ end