1#![allow(non_camel_case_types)]
2
3#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy, Hash)]
4pub enum Payment {
5 InstrumentNotDefined,
7 AutomatedClearingHouseCredit,
9 AutomatedClearingHouseDebit,
11 AchDemandDebitReversal,
13 AchDemandCreditReversal,
15 AchDemandCredit,
17 AchDemandDebit,
19 Hold,
21 NationalOrRegionalClearing,
23 InCash,
25 AchSavingsCreditReversal,
27 AchSavingsDebitReversal,
29 AchSavingsCredit,
31 AchSavingsDebit,
33 BookentryCredit,
35 BookentryDebit,
37 AchDemandCashConcentrationDisbursementCcdCredit,
39 AchDemandCashConcentrationDisbursementCcdDebit,
41 AchDemandCorporateTradePaymentCtpCredit,
43 Cheque,
45 BankersDraft,
47 CertifiedBankersDraft,
49 BankChequeIssuedByABankingOrSimilarEstablishment,
51 BillExchangeAwaitingAcceptance,
53 CertifiedCheque,
55 LocalCheque,
57 AchDemandCorporateTradePaymentCtpDebit,
59 AchDemandCorporateTradeExchangeCtxCredit,
61 AchDemandCorporateTradeExchangeCtxDebit,
63 CreditTransfer,
67 DebitTransfer,
71 AchDemandCashConcentrationDisbursementPlusCcd,
73 AchDemandCashConcentrationDisbursementPlusCcd_Dup,
75 AchPrearrangedPaymentAndDepositPpd,
77 AchSavingsCashConcentrationDisbursementCcdCredit,
79 AchSavingsCashConcentrationDisbursementCcdDebit,
81 AchSavingsCorporateTradePaymentCtpCredit,
83 AchSavingsCorporateTradePaymentCtpDebit,
85 AchSavingsCorporateTradeExchangeCtxCredit,
87 AchSavingsCorporateTradeExchangeCtxDebit,
89 AchSavingsCashConcentrationDisbursementPlusCcd,
91 PaymentToBankAccount,
93 AchSavingsCashConcentrationDisbursementPlusCcd_Dup,
95 AcceptedBillExchange,
97 ReferencedHomeBankingCreditTransfer,
99 InterbankDebitTransfer,
101 HomeBankingDebitTransfer,
103 BankCard,
107 DirectDebit,
109 PaymentByPostgiro,
111 FrNorme697TelereglementCfonbFrenchOrganisationFor,
113 UrgentCommercialPayment,
115 UrgentTreasuryPayment,
117 CreditCard,
119 DebitCard,
121 Bankgiro,
123 StandingAgreement,
127 SepaCreditTransfer,
131 SepaDirectDebit,
135 PromissoryNote,
137 PromissoryNoteSignedByDebtor,
139 PromissoryNoteSignedByDebtorAndEndorsedByABank,
141 PromissoryNoteSignedByDebtorAndEndorsedByA,
143 PromissoryNoteSignedByABank,
145 PromissoryNoteSignedByABankAndEndorsedByAnother,
147 PromissoryNoteSignedByAThirdParty,
149 PromissoryNoteSignedByAThirdPartyAndEndorsedByA,
151 OnlinePaymentService,
153 TransferAdvice,
155 BillDrawnByCreditorOnDebtor,
157 BillDrawnByCreditorOnABank,
159 BillDrawnByCreditorEndorsedByAnotherBank,
161 BillDrawnByCreditorOnABankAndEndorsedByA,
163 BillDrawnByCreditorOnAThirdParty,
165 BillDrawnByCreditorOnThirdPartyAcceptedAnd,
167 NotTransferableBankersDraft,
169 NotTransferableLocalCheque,
171 ReferenceGiro,
173 UrgentGiro,
175 FreeFormatGiro,
177 RequestedMethodForPaymentWasNotUsed,
179 ClearingBetweenPartners,
181 JpElectronicallyRecordedMonetaryClaims,
183 MutuallyDefined,
185}
186
187impl crate::Code for Payment {
188 fn code(&self) -> &str {
189 match self {
190 Payment::InstrumentNotDefined => "1",
191 Payment::AutomatedClearingHouseCredit => "2",
192 Payment::AutomatedClearingHouseDebit => "3",
193 Payment::AchDemandDebitReversal => "4",
194 Payment::AchDemandCreditReversal => "5",
195 Payment::AchDemandCredit => "6",
196 Payment::AchDemandDebit => "7",
197 Payment::Hold => "8",
198 Payment::NationalOrRegionalClearing => "9",
199 Payment::InCash => "10",
200 Payment::AchSavingsCreditReversal => "11",
201 Payment::AchSavingsDebitReversal => "12",
202 Payment::AchSavingsCredit => "13",
203 Payment::AchSavingsDebit => "14",
204 Payment::BookentryCredit => "15",
205 Payment::BookentryDebit => "16",
206 Payment::AchDemandCashConcentrationDisbursementCcdCredit => "17",
207 Payment::AchDemandCashConcentrationDisbursementCcdDebit => "18",
208 Payment::AchDemandCorporateTradePaymentCtpCredit => "19",
209 Payment::Cheque => "20",
210 Payment::BankersDraft => "21",
211 Payment::CertifiedBankersDraft => "22",
212 Payment::BankChequeIssuedByABankingOrSimilarEstablishment => "23",
213 Payment::BillExchangeAwaitingAcceptance => "24",
214 Payment::CertifiedCheque => "25",
215 Payment::LocalCheque => "26",
216 Payment::AchDemandCorporateTradePaymentCtpDebit => "27",
217 Payment::AchDemandCorporateTradeExchangeCtxCredit => "28",
218 Payment::AchDemandCorporateTradeExchangeCtxDebit => "29",
219 Payment::CreditTransfer => "30",
220 Payment::DebitTransfer => "31",
221 Payment::AchDemandCashConcentrationDisbursementPlusCcd => "32",
222 Payment::AchDemandCashConcentrationDisbursementPlusCcd_Dup => "33",
223 Payment::AchPrearrangedPaymentAndDepositPpd => "34",
224 Payment::AchSavingsCashConcentrationDisbursementCcdCredit => "35",
225 Payment::AchSavingsCashConcentrationDisbursementCcdDebit => "36",
226 Payment::AchSavingsCorporateTradePaymentCtpCredit => "37",
227 Payment::AchSavingsCorporateTradePaymentCtpDebit => "38",
228 Payment::AchSavingsCorporateTradeExchangeCtxCredit => "39",
229 Payment::AchSavingsCorporateTradeExchangeCtxDebit => "40",
230 Payment::AchSavingsCashConcentrationDisbursementPlusCcd => "41",
231 Payment::PaymentToBankAccount => "42",
232 Payment::AchSavingsCashConcentrationDisbursementPlusCcd_Dup => "43",
233 Payment::AcceptedBillExchange => "44",
234 Payment::ReferencedHomeBankingCreditTransfer => "45",
235 Payment::InterbankDebitTransfer => "46",
236 Payment::HomeBankingDebitTransfer => "47",
237 Payment::BankCard => "48",
238 Payment::DirectDebit => "49",
239 Payment::PaymentByPostgiro => "50",
240 Payment::FrNorme697TelereglementCfonbFrenchOrganisationFor => "51",
241 Payment::UrgentCommercialPayment => "52",
242 Payment::UrgentTreasuryPayment => "53",
243 Payment::CreditCard => "54",
244 Payment::DebitCard => "55",
245 Payment::Bankgiro => "56",
246 Payment::StandingAgreement => "57",
247 Payment::SepaCreditTransfer => "58",
248 Payment::SepaDirectDebit => "59",
249 Payment::PromissoryNote => "60",
250 Payment::PromissoryNoteSignedByDebtor => "61",
251 Payment::PromissoryNoteSignedByDebtorAndEndorsedByABank => "62",
252 Payment::PromissoryNoteSignedByDebtorAndEndorsedByA => "63",
253 Payment::PromissoryNoteSignedByABank => "64",
254 Payment::PromissoryNoteSignedByABankAndEndorsedByAnother => "65",
255 Payment::PromissoryNoteSignedByAThirdParty => "66",
256 Payment::PromissoryNoteSignedByAThirdPartyAndEndorsedByA => "67",
257 Payment::OnlinePaymentService => "68",
258 Payment::TransferAdvice => "69",
259 Payment::BillDrawnByCreditorOnDebtor => "70",
260 Payment::BillDrawnByCreditorOnABank => "74",
261 Payment::BillDrawnByCreditorEndorsedByAnotherBank => "75",
262 Payment::BillDrawnByCreditorOnABankAndEndorsedByA => "76",
263 Payment::BillDrawnByCreditorOnAThirdParty => "77",
264 Payment::BillDrawnByCreditorOnThirdPartyAcceptedAnd => "78",
265 Payment::NotTransferableBankersDraft => "91",
266 Payment::NotTransferableLocalCheque => "92",
267 Payment::ReferenceGiro => "93",
268 Payment::UrgentGiro => "94",
269 Payment::FreeFormatGiro => "95",
270 Payment::RequestedMethodForPaymentWasNotUsed => "96",
271 Payment::ClearingBetweenPartners => "97",
272 Payment::JpElectronicallyRecordedMonetaryClaims => "98",
273 Payment::MutuallyDefined => "ZZZ",
274 }
275 }
276}
277
278impl crate::Description for Payment {
279 fn description(&self) -> &str {
280 match self {
281 Payment::InstrumentNotDefined => "Instrument not defined",
282 Payment::AutomatedClearingHouseCredit => "Automated clearing house credit",
283 Payment::AutomatedClearingHouseDebit => "Automated clearing house debit",
284 Payment::AchDemandDebitReversal => "ACH demand debit reversal",
285 Payment::AchDemandCreditReversal => "ACH demand credit reversal",
286 Payment::AchDemandCredit => "ACH demand credit",
287 Payment::AchDemandDebit => "ACH demand debit",
288 Payment::Hold => "Hold",
289 Payment::NationalOrRegionalClearing => "National or regional clearing",
290 Payment::InCash => "In cash",
291 Payment::AchSavingsCreditReversal => "ACH savings credit reversal",
292 Payment::AchSavingsDebitReversal => "ACH savings debit reversal",
293 Payment::AchSavingsCredit => "ACH savings credit",
294 Payment::AchSavingsDebit => "ACH savings debit",
295 Payment::BookentryCredit => "Bookentry credit",
296 Payment::BookentryDebit => "Bookentry debit",
297 Payment::AchDemandCashConcentrationDisbursementCcdCredit => {
298 "ACH demand cash concentration/disbursement (CCD) credit"
299 }
300 Payment::AchDemandCashConcentrationDisbursementCcdDebit => {
301 "ACH demand cash concentration/disbursement (CCD) debit"
302 }
303 Payment::AchDemandCorporateTradePaymentCtpCredit => {
304 "ACH demand corporate trade payment (CTP) credit"
305 }
306 Payment::Cheque => "Cheque",
307 Payment::BankersDraft => "Banker's draft",
308 Payment::CertifiedBankersDraft => "Certified banker's draft",
309 Payment::BankChequeIssuedByABankingOrSimilarEstablishment => {
310 "Bank cheque (issued by a banking or similar establishment)"
311 }
312 Payment::BillExchangeAwaitingAcceptance => "Bill of exchange awaiting acceptance",
313 Payment::CertifiedCheque => "Certified cheque",
314 Payment::LocalCheque => "Local cheque",
315 Payment::AchDemandCorporateTradePaymentCtpDebit => {
316 "ACH demand corporate trade payment (CTP) debit"
317 }
318 Payment::AchDemandCorporateTradeExchangeCtxCredit => {
319 "ACH demand corporate trade exchange (CTX) credit"
320 }
321 Payment::AchDemandCorporateTradeExchangeCtxDebit => {
322 "ACH demand corporate trade exchange (CTX) debit"
323 }
324 Payment::CreditTransfer => "Credit transfer",
325 Payment::DebitTransfer => "Debit transfer",
326 Payment::AchDemandCashConcentrationDisbursementPlusCcd => {
327 "ACH demand cash concentration/disbursement plus (CCD+)"
328 }
329 Payment::AchDemandCashConcentrationDisbursementPlusCcd_Dup => {
330 "ACH demand cash concentration/disbursement plus (CCD+)"
331 }
332 Payment::AchPrearrangedPaymentAndDepositPpd => {
333 "ACH prearranged payment and deposit (PPD)"
334 }
335 Payment::AchSavingsCashConcentrationDisbursementCcdCredit => {
336 "ACH savings cash concentration/disbursement (CCD) credit"
337 }
338 Payment::AchSavingsCashConcentrationDisbursementCcdDebit => {
339 "ACH savings cash concentration/disbursement (CCD) debit"
340 }
341 Payment::AchSavingsCorporateTradePaymentCtpCredit => {
342 "ACH savings corporate trade payment (CTP) credit"
343 }
344 Payment::AchSavingsCorporateTradePaymentCtpDebit => {
345 "ACH savings corporate trade payment (CTP) debit"
346 }
347 Payment::AchSavingsCorporateTradeExchangeCtxCredit => {
348 "ACH savings corporate trade exchange (CTX) credit"
349 }
350 Payment::AchSavingsCorporateTradeExchangeCtxDebit => {
351 "ACH savings corporate trade exchange (CTX) debit"
352 }
353 Payment::AchSavingsCashConcentrationDisbursementPlusCcd => {
354 "ACH savings cash concentration/disbursement plus (CCD+)"
355 }
356 Payment::PaymentToBankAccount => "Payment to bank account",
357 Payment::AchSavingsCashConcentrationDisbursementPlusCcd_Dup => {
358 "ACH savings cash concentration/disbursement plus (CCD+)"
359 }
360 Payment::AcceptedBillExchange => "Accepted bill of exchange",
361 Payment::ReferencedHomeBankingCreditTransfer => {
362 "Referenced home-banking credit transfer"
363 }
364 Payment::InterbankDebitTransfer => "Interbank debit transfer",
365 Payment::HomeBankingDebitTransfer => "Home-banking debit transfer",
366 Payment::BankCard => "Bank card",
367 Payment::DirectDebit => "Direct debit",
368 Payment::PaymentByPostgiro => "Payment by postgiro",
369 Payment::FrNorme697TelereglementCfonbFrenchOrganisationFor => {
370 "FR, norme 6 97-Telereglement CFONB (French Organisation for"
371 }
372 Payment::UrgentCommercialPayment => "Urgent commercial payment",
373 Payment::UrgentTreasuryPayment => "Urgent Treasury Payment",
374 Payment::CreditCard => "Credit card",
375 Payment::DebitCard => "Debit card",
376 Payment::Bankgiro => "Bankgiro",
377 Payment::StandingAgreement => "Standing agreement",
378 Payment::SepaCreditTransfer => "SEPA credit transfer",
379 Payment::SepaDirectDebit => "SEPA direct debit",
380 Payment::PromissoryNote => "Promissory note",
381 Payment::PromissoryNoteSignedByDebtor => "Promissory note signed by the debtor",
382 Payment::PromissoryNoteSignedByDebtorAndEndorsedByABank => {
383 "Promissory note signed by the debtor and endorsed by a bank"
384 }
385 Payment::PromissoryNoteSignedByDebtorAndEndorsedByA => {
386 "Promissory note signed by the debtor and endorsed by a"
387 }
388 Payment::PromissoryNoteSignedByABank => "Promissory note signed by a bank",
389 Payment::PromissoryNoteSignedByABankAndEndorsedByAnother => {
390 "Promissory note signed by a bank and endorsed by another"
391 }
392 Payment::PromissoryNoteSignedByAThirdParty => "Promissory note signed by a third party",
393 Payment::PromissoryNoteSignedByAThirdPartyAndEndorsedByA => {
394 "Promissory note signed by a third party and endorsed by a"
395 }
396 Payment::OnlinePaymentService => "Online payment service",
397 Payment::TransferAdvice => "Transfer Advice",
398 Payment::BillDrawnByCreditorOnDebtor => "Bill drawn by the creditor on the debtor",
399 Payment::BillDrawnByCreditorOnABank => "Bill drawn by the creditor on a bank",
400 Payment::BillDrawnByCreditorEndorsedByAnotherBank => {
401 "Bill drawn by the creditor, endorsed by another bank"
402 }
403 Payment::BillDrawnByCreditorOnABankAndEndorsedByA => {
404 "Bill drawn by the creditor on a bank and endorsed by a"
405 }
406 Payment::BillDrawnByCreditorOnAThirdParty => {
407 "Bill drawn by the creditor on a third party"
408 }
409 Payment::BillDrawnByCreditorOnThirdPartyAcceptedAnd => {
410 "Bill drawn by creditor on third party, accepted and"
411 }
412 Payment::NotTransferableBankersDraft => "Not transferable banker's draft",
413 Payment::NotTransferableLocalCheque => "Not transferable local cheque",
414 Payment::ReferenceGiro => "Reference giro",
415 Payment::UrgentGiro => "Urgent giro",
416 Payment::FreeFormatGiro => "Free format giro",
417 Payment::RequestedMethodForPaymentWasNotUsed => {
418 "Requested method for payment was not used"
419 }
420 Payment::ClearingBetweenPartners => "Clearing between partners",
421 Payment::JpElectronicallyRecordedMonetaryClaims => {
422 "JP, Electronically Recorded Monetary Claims"
423 }
424 Payment::MutuallyDefined => "Mutually defined",
425 }
426 }
427}
428
429impl crate::FromCode for Payment {
430 fn from_code(code: &str) -> Option<Self>
431 where
432 Self: Sized,
433 {
434 match code {
435 "1" => Some(Payment::InstrumentNotDefined),
436 "2" => Some(Payment::AutomatedClearingHouseCredit),
437 "3" => Some(Payment::AutomatedClearingHouseDebit),
438 "4" => Some(Payment::AchDemandDebitReversal),
439 "5" => Some(Payment::AchDemandCreditReversal),
440 "6" => Some(Payment::AchDemandCredit),
441 "7" => Some(Payment::AchDemandDebit),
442 "8" => Some(Payment::Hold),
443 "9" => Some(Payment::NationalOrRegionalClearing),
444 "10" => Some(Payment::InCash),
445 "11" => Some(Payment::AchSavingsCreditReversal),
446 "12" => Some(Payment::AchSavingsDebitReversal),
447 "13" => Some(Payment::AchSavingsCredit),
448 "14" => Some(Payment::AchSavingsDebit),
449 "15" => Some(Payment::BookentryCredit),
450 "16" => Some(Payment::BookentryDebit),
451 "17" => Some(Payment::AchDemandCashConcentrationDisbursementCcdCredit),
452 "18" => Some(Payment::AchDemandCashConcentrationDisbursementCcdDebit),
453 "19" => Some(Payment::AchDemandCorporateTradePaymentCtpCredit),
454 "20" => Some(Payment::Cheque),
455 "21" => Some(Payment::BankersDraft),
456 "22" => Some(Payment::CertifiedBankersDraft),
457 "23" => Some(Payment::BankChequeIssuedByABankingOrSimilarEstablishment),
458 "24" => Some(Payment::BillExchangeAwaitingAcceptance),
459 "25" => Some(Payment::CertifiedCheque),
460 "26" => Some(Payment::LocalCheque),
461 "27" => Some(Payment::AchDemandCorporateTradePaymentCtpDebit),
462 "28" => Some(Payment::AchDemandCorporateTradeExchangeCtxCredit),
463 "29" => Some(Payment::AchDemandCorporateTradeExchangeCtxDebit),
464 "30" => Some(Payment::CreditTransfer),
465 "31" => Some(Payment::DebitTransfer),
466 "32" => Some(Payment::AchDemandCashConcentrationDisbursementPlusCcd),
467 "33" => Some(Payment::AchDemandCashConcentrationDisbursementPlusCcd_Dup),
468 "34" => Some(Payment::AchPrearrangedPaymentAndDepositPpd),
469 "35" => Some(Payment::AchSavingsCashConcentrationDisbursementCcdCredit),
470 "36" => Some(Payment::AchSavingsCashConcentrationDisbursementCcdDebit),
471 "37" => Some(Payment::AchSavingsCorporateTradePaymentCtpCredit),
472 "38" => Some(Payment::AchSavingsCorporateTradePaymentCtpDebit),
473 "39" => Some(Payment::AchSavingsCorporateTradeExchangeCtxCredit),
474 "40" => Some(Payment::AchSavingsCorporateTradeExchangeCtxDebit),
475 "41" => Some(Payment::AchSavingsCashConcentrationDisbursementPlusCcd),
476 "42" => Some(Payment::PaymentToBankAccount),
477 "43" => Some(Payment::AchSavingsCashConcentrationDisbursementPlusCcd_Dup),
478 "44" => Some(Payment::AcceptedBillExchange),
479 "45" => Some(Payment::ReferencedHomeBankingCreditTransfer),
480 "46" => Some(Payment::InterbankDebitTransfer),
481 "47" => Some(Payment::HomeBankingDebitTransfer),
482 "48" => Some(Payment::BankCard),
483 "49" => Some(Payment::DirectDebit),
484 "50" => Some(Payment::PaymentByPostgiro),
485 "51" => Some(Payment::FrNorme697TelereglementCfonbFrenchOrganisationFor),
486 "52" => Some(Payment::UrgentCommercialPayment),
487 "53" => Some(Payment::UrgentTreasuryPayment),
488 "54" => Some(Payment::CreditCard),
489 "55" => Some(Payment::DebitCard),
490 "56" => Some(Payment::Bankgiro),
491 "57" => Some(Payment::StandingAgreement),
492 "58" => Some(Payment::SepaCreditTransfer),
493 "59" => Some(Payment::SepaDirectDebit),
494 "60" => Some(Payment::PromissoryNote),
495 "61" => Some(Payment::PromissoryNoteSignedByDebtor),
496 "62" => Some(Payment::PromissoryNoteSignedByDebtorAndEndorsedByABank),
497 "63" => Some(Payment::PromissoryNoteSignedByDebtorAndEndorsedByA),
498 "64" => Some(Payment::PromissoryNoteSignedByABank),
499 "65" => Some(Payment::PromissoryNoteSignedByABankAndEndorsedByAnother),
500 "66" => Some(Payment::PromissoryNoteSignedByAThirdParty),
501 "67" => Some(Payment::PromissoryNoteSignedByAThirdPartyAndEndorsedByA),
502 "68" => Some(Payment::OnlinePaymentService),
503 "69" => Some(Payment::TransferAdvice),
504 "70" => Some(Payment::BillDrawnByCreditorOnDebtor),
505 "74" => Some(Payment::BillDrawnByCreditorOnABank),
506 "75" => Some(Payment::BillDrawnByCreditorEndorsedByAnotherBank),
507 "76" => Some(Payment::BillDrawnByCreditorOnABankAndEndorsedByA),
508 "77" => Some(Payment::BillDrawnByCreditorOnAThirdParty),
509 "78" => Some(Payment::BillDrawnByCreditorOnThirdPartyAcceptedAnd),
510 "91" => Some(Payment::NotTransferableBankersDraft),
511 "92" => Some(Payment::NotTransferableLocalCheque),
512 "93" => Some(Payment::ReferenceGiro),
513 "94" => Some(Payment::UrgentGiro),
514 "95" => Some(Payment::FreeFormatGiro),
515 "96" => Some(Payment::RequestedMethodForPaymentWasNotUsed),
516 "97" => Some(Payment::ClearingBetweenPartners),
517 "98" => Some(Payment::JpElectronicallyRecordedMonetaryClaims),
518 "ZZZ" => Some(Payment::MutuallyDefined),
519 _ => None,
520 }
521 }
522}