wells_fargo 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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