mundipagg_sdk 1.0.2 → 1.0.3

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 (64) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +61 -61
  3. data/lib/gateway/Address/billing_address.rb +32 -32
  4. data/lib/gateway/Address/buyer_address.rb +36 -36
  5. data/lib/gateway/Address/delivery_address.rb +32 -32
  6. data/lib/gateway/AntiFraud/anti_fraud_analysis_result.rb +47 -47
  7. data/lib/gateway/AntiFraud/query_sale_anti_fraud_analysis_data.rb +51 -51
  8. data/lib/gateway/AntiFraud/query_sale_anti_fraud_analysis_history_data.rb +41 -41
  9. data/lib/gateway/BaseRequest.rb +10 -10
  10. data/lib/gateway/BaseResponse.rb +17 -17
  11. data/lib/gateway/BoletoTransaction/boleto_transaction.rb +43 -43
  12. data/lib/gateway/BoletoTransaction/boleto_transaction_data.rb +43 -43
  13. data/lib/gateway/BoletoTransaction/boleto_transaction_options.rb +14 -14
  14. data/lib/gateway/BoletoTransaction/boleto_transaction_report_file.rb +19 -19
  15. data/lib/gateway/BoletoTransaction/boleto_transaction_result.rb +34 -34
  16. data/lib/gateway/CreditCardTransaction/credit_card.rb +29 -29
  17. data/lib/gateway/CreditCardTransaction/credit_card_transaction.rb +31 -31
  18. data/lib/gateway/CreditCardTransaction/credit_card_transaction_data.rb +103 -103
  19. data/lib/gateway/CreditCardTransaction/credit_card_transaction_options.rb +26 -26
  20. data/lib/gateway/CreditCardTransaction/credit_card_transaction_report_file.rb +28 -28
  21. data/lib/gateway/CreditCardTransaction/manage_credit_card_transaction.rb +11 -11
  22. data/lib/gateway/CreditCardTransaction/retry_sale_credit_card_transaction.rb +12 -12
  23. data/lib/gateway/ErrorItem.rb +17 -17
  24. data/lib/gateway/ErrorReport.rb +18 -18
  25. data/lib/gateway/Gateway.rb +441 -444
  26. data/lib/gateway/InstantBuy/credit_card_data.rb +40 -40
  27. data/lib/gateway/InstantBuy/get_instant_buy_data_response.rb +17 -17
  28. data/lib/gateway/Merchant/merchant.rb +10 -10
  29. data/lib/gateway/OnlineDebit/online_debit_transaction_report_file.rb +17 -17
  30. data/lib/gateway/Order/order.rb +10 -10
  31. data/lib/gateway/Order/order_transaction_report_file.rb +5 -5
  32. data/lib/gateway/Parsers/boleto_transaction_parser.rb +30 -30
  33. data/lib/gateway/Parsers/credit_card_transaction_parser.rb +39 -39
  34. data/lib/gateway/Parsers/header_parser.rb +13 -13
  35. data/lib/gateway/Parsers/online_debit_transaction_parser.rb +29 -29
  36. data/lib/gateway/Parsers/trailer_parser.rb +14 -14
  37. data/lib/gateway/Person/buyer.rb +32 -32
  38. data/lib/gateway/Person/person.rb +46 -46
  39. data/lib/gateway/Recurrency/recurrency.rb +22 -22
  40. data/lib/gateway/Sale/create_sale_request.rb +35 -35
  41. data/lib/gateway/Sale/create_sale_response.rb +24 -24
  42. data/lib/gateway/Sale/manage_sale_request.rb +16 -16
  43. data/lib/gateway/Sale/manage_sale_response.rb +14 -14
  44. data/lib/gateway/Sale/query_sale_request.rb +35 -35
  45. data/lib/gateway/Sale/query_sale_response.rb +17 -17
  46. data/lib/gateway/Sale/request_data.rb +19 -19
  47. data/lib/gateway/Sale/retry_sale_options.rb +13 -13
  48. data/lib/gateway/Sale/retry_sale_request.rb +21 -21
  49. data/lib/gateway/Sale/retry_sale_response.rb +13 -13
  50. data/lib/gateway/Sale/sale_data.rb +32 -32
  51. data/lib/gateway/Sale/sale_order_data.rb +16 -16
  52. data/lib/gateway/SalesOption.rb +17 -17
  53. data/lib/gateway/ShoppingCart/shopping_cart.rb +25 -25
  54. data/lib/gateway/ShoppingCart/shopping_cart_item.rb +22 -22
  55. data/lib/gateway/Trailer.rb +5 -5
  56. data/lib/gateway/address.rb +24 -24
  57. data/lib/gateway/header.rb +4 -4
  58. data/lib/gateway/post_notification.rb +28 -28
  59. data/lib/gateway/transaction_report_file.rb +44 -44
  60. data/lib/mundipagg_sdk.rb +70 -70
  61. data/mundipagg_sdk.gemspec +18 -18
  62. data/spec/integration/gateway_spec.rb +733 -651
  63. data/spec/integration/test_helper.rb +68 -68
  64. metadata +2 -2
@@ -1,41 +1,41 @@
1
- class CreditCardData
2
- # N�mero mascardo do cart�o de cr�dito
3
- attr_accessor :MaskedCreditCardNumber
4
-
5
- # Bandeira do cart�o de cr�dito
6
- attr_accessor :CreditCardBrand
7
-
8
- @@CreditCardBrandEnum = {
9
- :Visa => '1',
10
- :MasterCard => '2',
11
- :HiperCard => '3',
12
- :Amex => '4',
13
- :Diners => '5',
14
- :Elo => '6',
15
- :Aura => '7',
16
- :Discover => '8',
17
- :CasaShow => '9',
18
- :Havan => '10',
19
- :HugCard => '11',
20
- :AndarAki => '12',
21
- :LeaderCard => '13',
22
- :Submarino => '14'
23
- }
24
-
25
- # Chave do cart�o de cr�dito. Utilizada para identificar um cart�o de cr�dito no gateway
26
- attr_accessor :InstantBuyerKey
27
-
28
- # Informa se o cart�o de cr�dito expirou
29
- attr_accessor :IsExpiredCreditCard
30
-
31
- def initialize
32
- @CreditCardBrand = self.CreditCardBrandEnum
33
- end
34
-
35
- def to_json
36
- hash = {}
37
- instance_variables.each {|var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
38
- hash
39
- end
40
-
1
+ class CreditCardData
2
+ # N�mero mascardo do cart�o de cr�dito
3
+ attr_accessor :MaskedCreditCardNumber
4
+
5
+ # Bandeira do cart�o de cr�dito
6
+ attr_accessor :CreditCardBrand
7
+
8
+ @@CreditCardBrandEnum = {
9
+ :Visa => '1',
10
+ :MasterCard => '2',
11
+ :HiperCard => '3',
12
+ :Amex => '4',
13
+ :Diners => '5',
14
+ :Elo => '6',
15
+ :Aura => '7',
16
+ :Discover => '8',
17
+ :CasaShow => '9',
18
+ :Havan => '10',
19
+ :HugCard => '11',
20
+ :AndarAki => '12',
21
+ :LeaderCard => '13',
22
+ :Submarino => '14'
23
+ }
24
+
25
+ # Chave do cart�o de cr�dito. Utilizada para identificar um cart�o de cr�dito no gateway
26
+ attr_accessor :InstantBuyerKey
27
+
28
+ # Informa se o cart�o de cr�dito expirou
29
+ attr_accessor :IsExpiredCreditCard
30
+
31
+ def initialize
32
+ @CreditCardBrand = self.CreditCardBrandEnum
33
+ end
34
+
35
+ def to_json
36
+ hash = {}
37
+ instance_variables.each {|var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
38
+ hash
39
+ end
40
+
41
41
  end
@@ -1,18 +1,18 @@
1
- class GetInstantBuyDataResponse
2
- # Lista de cart�es de cr�dito
3
- attr_accessor :CreditCardDataCollection
4
-
5
- # Total de cart�es de cr�dito retornados
6
- attr_accessor :CreditCardDataCount
7
-
8
- def initialize
9
- @CreditCardDataCollection = Array.new
10
- end
11
-
12
- def to_json
13
- hash = {}
14
- instance_variables.each {|var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
15
- hash
16
- end
17
-
1
+ class GetInstantBuyDataResponse
2
+ # Lista de cart�es de cr�dito
3
+ attr_accessor :CreditCardDataCollection
4
+
5
+ # Total de cart�es de cr�dito retornados
6
+ attr_accessor :CreditCardDataCount
7
+
8
+ def initialize
9
+ @CreditCardDataCollection = Array.new
10
+ end
11
+
12
+ def to_json
13
+ hash = {}
14
+ instance_variables.each {|var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
15
+ hash
16
+ end
17
+
18
18
  end
@@ -1,11 +1,11 @@
1
- class Merchant
2
- # Identificador da loja na plataforma
3
- attr_accessor :MerchantReference
4
-
5
- def to_json
6
- hash = {}
7
- instance_variables.each {|var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
8
- hash
9
- end
10
-
1
+ class Merchant
2
+ # Identificador da loja na plataforma
3
+ attr_accessor :MerchantReference
4
+
5
+ def to_json
6
+ hash = {}
7
+ instance_variables.each {|var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
8
+ hash
9
+ end
10
+
11
11
  end
@@ -1,18 +1,18 @@
1
- class OnlineDebitTransactionReportFile
2
- attr_accessor :Order
3
- attr_accessor :TransactionKey
4
- attr_accessor :TransactionReference
5
- attr_accessor :Bank
6
- attr_accessor :Status
7
- attr_accessor :AmountInCents
8
- attr_accessor :AmountPaidInCents
9
- attr_accessor :PaymentDate
10
- attr_accessor :BankReturnCode
11
- attr_accessor :BankPaymentDate
12
- attr_accessor :Signature
13
- attr_accessor :TransactionKeyToBank
14
-
15
- def initialize
16
- @Order = OrderTransactionReportFile.new
17
- end
1
+ class OnlineDebitTransactionReportFile
2
+ attr_accessor :Order
3
+ attr_accessor :TransactionKey
4
+ attr_accessor :TransactionReference
5
+ attr_accessor :Bank
6
+ attr_accessor :Status
7
+ attr_accessor :AmountInCents
8
+ attr_accessor :AmountPaidInCents
9
+ attr_accessor :PaymentDate
10
+ attr_accessor :BankReturnCode
11
+ attr_accessor :BankPaymentDate
12
+ attr_accessor :Signature
13
+ attr_accessor :TransactionKeyToBank
14
+
15
+ def initialize
16
+ @Order = OrderTransactionReportFile.new
17
+ end
18
18
  end
@@ -1,11 +1,11 @@
1
- class Order
2
- # Identificador do pedido no sistema da loja
3
- attr_accessor :OrderReference
4
-
5
- def to_json
6
- hash = {}
7
- instance_variables.each {|var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
8
- hash
9
- end
10
-
1
+ class Order
2
+ # Identificador do pedido no sistema da loja
3
+ attr_accessor :OrderReference
4
+
5
+ def to_json
6
+ hash = {}
7
+ instance_variables.each {|var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
8
+ hash
9
+ end
10
+
11
11
  end
@@ -1,6 +1,6 @@
1
- class OrderTransactionReportFile
2
- attr_accessor :OrderKey
3
- attr_accessor :OrderReference
4
- attr_accessor :MerchantKey
5
- attr_accessor :MerchantName
1
+ class OrderTransactionReportFile
2
+ attr_accessor :OrderKey
3
+ attr_accessor :OrderReference
4
+ attr_accessor :MerchantKey
5
+ attr_accessor :MerchantName
6
6
  end
@@ -1,31 +1,31 @@
1
- class BoletoTransactionParser
2
- def Parse(elements)
3
- @@DATETIME_FORMAT = '%Y-%m-%d %H:%M:%S'
4
-
5
- if elements.length < 18
6
- throw('The expected parameter count is 18')
7
- end
8
-
9
- boleto_transaction = BoletoTransactionReportFile.new
10
- boleto_transaction.Order.OrderKey = elements[1]
11
- boleto_transaction.Order.OrderReference = elements[2]
12
- boleto_transaction.Order.MerchantKey = elements[3]
13
- boleto_transaction.Order.MerchantName = elements[4]
14
-
15
- boleto_transaction.TransactionKey = elements[5]
16
- boleto_transaction.TransactionReference = elements[6]
17
- boleto_transaction.Status = elements[7]
18
- boleto_transaction.NossoNumero = elements[8]
19
- boleto_transaction.BankNumber = elements[9]
20
- boleto_transaction.Agency = elements[10]
21
- boleto_transaction.Account = elements[11]
22
- boleto_transaction.BarCode = elements[12]
23
- boleto_transaction.ExpirationDate = DateTime.strptime(elements[13],'%m/%d/%Y %H:%M:%S').strftime(@@DATETIME_FORMAT)
24
- boleto_transaction.AmountInCents = elements[14].to_i
25
- boleto_transaction.AmountPaidInCents = (elements[15].to_s == '') == false ? elements[15].to_i : 0
26
- boleto_transaction.PaymentDate = (elements[16].to_s == '') == false ? DateTime.strptime(elements[16], '%m/%d/%Y %H:%M:%S').strftime(@@DATETIME_FORMAT) : nil
27
- boleto_transaction.CreditDate = (elements[17].chomp.to_s == '') == false ? DateTime.strptime(elements[17], '%m/%d/%Y %H:%M:%S').strftime(@@DATETIME_FORMAT) : nil
28
-
29
- return boleto_transaction
30
- end
1
+ class BoletoTransactionParser
2
+ def Parse(elements)
3
+ @@DATETIME_FORMAT = '%Y-%m-%d %H:%M:%S'
4
+
5
+ if elements.length < 18
6
+ throw('The expected parameter count is 18')
7
+ end
8
+
9
+ boleto_transaction = BoletoTransactionReportFile.new
10
+ boleto_transaction.Order.OrderKey = elements[1]
11
+ boleto_transaction.Order.OrderReference = elements[2]
12
+ boleto_transaction.Order.MerchantKey = elements[3]
13
+ boleto_transaction.Order.MerchantName = elements[4]
14
+
15
+ boleto_transaction.TransactionKey = elements[5]
16
+ boleto_transaction.TransactionReference = elements[6]
17
+ boleto_transaction.Status = elements[7]
18
+ boleto_transaction.NossoNumero = elements[8]
19
+ boleto_transaction.BankNumber = elements[9]
20
+ boleto_transaction.Agency = elements[10]
21
+ boleto_transaction.Account = elements[11]
22
+ boleto_transaction.BarCode = elements[12]
23
+ boleto_transaction.ExpirationDate = DateTime.strptime(elements[13],'%m/%d/%Y %H:%M:%S').strftime(@@DATETIME_FORMAT)
24
+ boleto_transaction.AmountInCents = elements[14].to_i
25
+ boleto_transaction.AmountPaidInCents = (elements[15].to_s == '') == false ? elements[15].to_i : 0
26
+ boleto_transaction.PaymentDate = (elements[16].to_s == '') == false ? DateTime.strptime(elements[16], '%m/%d/%Y %H:%M:%S').strftime(@@DATETIME_FORMAT) : nil
27
+ boleto_transaction.CreditDate = (elements[17].chomp.to_s == '') == false ? DateTime.strptime(elements[17], '%m/%d/%Y %H:%M:%S').strftime(@@DATETIME_FORMAT) : nil
28
+
29
+ return boleto_transaction
30
+ end
31
31
  end
@@ -1,40 +1,40 @@
1
- class CreditCardTransactionParser
2
- def Parse(elements)
3
- @@DATETIME_FORMAT = '%Y-%m-%d %H:%M:%S'
4
-
5
- if elements.length < 27
6
- throw('The expected parameter count is 27')
7
- end
8
-
9
- credit_card_transaction = CreditCardTransactionReportFile.new
10
- credit_card_transaction.Order.OrderKey = elements[1]
11
- credit_card_transaction.Order.OrderReference = elements[2]
12
- credit_card_transaction.Order.MerchantKey = elements[3]
13
- credit_card_transaction.Order.MerchantName = elements[4]
14
-
15
- credit_card_transaction.TransactionKey = elements[5]
16
- credit_card_transaction.TransactionKeyToAcquirer = elements[6]
17
- credit_card_transaction.CreditCardTransactionReference = elements[7]
18
- credit_card_transaction.CreditCardBrand = elements[8]
19
- credit_card_transaction.CreditCardNumber = elements[9]
20
- credit_card_transaction.InstallmentCount = (elements[10].to_s == '') == false ? elements[10].to_i : 0
21
- credit_card_transaction.AcquirerName = elements[11]
22
- credit_card_transaction.Status = elements[12]
23
- credit_card_transaction.AmountInCents = (elements[13].to_s == '') == false ? elements[13].to_i : 0
24
- credit_card_transaction.IataAmountInCents = (elements[14].to_s == '') == false ? elements[14].to_i : 0
25
- credit_card_transaction.AuthorizationCode = elements[15]
26
- credit_card_transaction.TransactionIdentifier = elements[16]
27
- credit_card_transaction.UniqueSequentialNumber = elements[17]
28
- credit_card_transaction.AuthorizedAmountInCents = (elements[18].to_s == '') == false ? elements[18].to_i : 0
29
- credit_card_transaction.CapturedAmountInCents = (elements[19].to_s == '') == false ? elements[19].to_i : 0
30
- credit_card_transaction.VoidedAmountInCents = (elements[20].to_s == '') == false ? elements[20].to_i : 0
31
- credit_card_transaction.RefundedAmountInCents = (elements[21].to_s == '') == false ? elements[21].to_i : 0
32
- credit_card_transaction.AcquirerAuthorizationReturnCode = elements[22]
33
- credit_card_transaction.AuthorizedDate = (elements[23].to_s == '') == false ? DateTime.strptime(elements[23], '%Y-%m-%dT%H:%M:%S').strftime(@@DATETIME_FORMAT) : nil
34
- credit_card_transaction.CapturedDate = (elements[24].to_s == '') == false ? DateTime.strptime(elements[24], '%Y-%m-%dT%H:%M:%S').strftime(@@DATETIME_FORMAT) : nil
35
- credit_card_transaction.VoidedDate = (elements[25].to_s == '') == false ? DateTime.strptime(elements[25], '%Y-%m-%dT%H:%M:%S').strftime(@@DATETIME_FORMAT) : nil
36
- credit_card_transaction.LastProbeDate = (elements[26].chomp.to_s == '') == false ? DateTime.strptime(elements[26], '%Y-%m-%dT%H:%M:%S').strftime(@@DATETIME_FORMAT) : nil
37
-
38
- return credit_card_transaction
39
- end
1
+ class CreditCardTransactionParser
2
+ def Parse(elements)
3
+ @@DATETIME_FORMAT = '%Y-%m-%d %H:%M:%S'
4
+
5
+ if elements.length < 27
6
+ throw('The expected parameter count is 27')
7
+ end
8
+
9
+ credit_card_transaction = CreditCardTransactionReportFile.new
10
+ credit_card_transaction.Order.OrderKey = elements[1]
11
+ credit_card_transaction.Order.OrderReference = elements[2]
12
+ credit_card_transaction.Order.MerchantKey = elements[3]
13
+ credit_card_transaction.Order.MerchantName = elements[4]
14
+
15
+ credit_card_transaction.TransactionKey = elements[5]
16
+ credit_card_transaction.TransactionKeyToAcquirer = elements[6]
17
+ credit_card_transaction.CreditCardTransactionReference = elements[7]
18
+ credit_card_transaction.CreditCardBrand = elements[8]
19
+ credit_card_transaction.CreditCardNumber = elements[9]
20
+ credit_card_transaction.InstallmentCount = (elements[10].to_s == '') == false ? elements[10].to_i : 0
21
+ credit_card_transaction.AcquirerName = elements[11]
22
+ credit_card_transaction.Status = elements[12]
23
+ credit_card_transaction.AmountInCents = (elements[13].to_s == '') == false ? elements[13].to_i : 0
24
+ credit_card_transaction.IataAmountInCents = (elements[14].to_s == '') == false ? elements[14].to_i : 0
25
+ credit_card_transaction.AuthorizationCode = elements[15]
26
+ credit_card_transaction.TransactionIdentifier = elements[16]
27
+ credit_card_transaction.UniqueSequentialNumber = elements[17]
28
+ credit_card_transaction.AuthorizedAmountInCents = (elements[18].to_s == '') == false ? elements[18].to_i : 0
29
+ credit_card_transaction.CapturedAmountInCents = (elements[19].to_s == '') == false ? elements[19].to_i : 0
30
+ credit_card_transaction.VoidedAmountInCents = (elements[20].to_s == '') == false ? elements[20].to_i : 0
31
+ credit_card_transaction.RefundedAmountInCents = (elements[21].to_s == '') == false ? elements[21].to_i : 0
32
+ credit_card_transaction.AcquirerAuthorizationReturnCode = elements[22]
33
+ credit_card_transaction.AuthorizedDate = (elements[23].to_s == '') == false ? DateTime.strptime(elements[23], '%Y-%m-%dT%H:%M:%S').strftime(@@DATETIME_FORMAT) : nil
34
+ credit_card_transaction.CapturedDate = (elements[24].to_s == '') == false ? DateTime.strptime(elements[24], '%Y-%m-%dT%H:%M:%S').strftime(@@DATETIME_FORMAT) : nil
35
+ credit_card_transaction.VoidedDate = (elements[25].to_s == '') == false ? DateTime.strptime(elements[25], '%Y-%m-%dT%H:%M:%S').strftime(@@DATETIME_FORMAT) : nil
36
+ credit_card_transaction.LastProbeDate = (elements[26].chomp.to_s == '') == false ? DateTime.strptime(elements[26], '%Y-%m-%dT%H:%M:%S').strftime(@@DATETIME_FORMAT) : nil
37
+
38
+ return credit_card_transaction
39
+ end
40
40
  end
@@ -1,14 +1,14 @@
1
- class HeaderParser
2
- def Parse(elements)
3
- if elements.length < 4
4
- throw('The expected parameter count is 4')
5
- end
6
-
7
- header = Header.new
8
- header.TransactionProcessedDate = Date.parse(elements[1]).strftime('%Y%m%d')
9
- header.ReportFileCreateDate = Date.parse(elements[2]).strftime('%Y%m%d %H:%M:%S')
10
- header.Version = elements[3].chomp
11
-
12
- return header
13
- end
1
+ class HeaderParser
2
+ def Parse(elements)
3
+ if elements.length < 4
4
+ throw('The expected parameter count is 4')
5
+ end
6
+
7
+ header = Header.new
8
+ header.TransactionProcessedDate = Date.parse(elements[1]).strftime('%Y%m%d')
9
+ header.ReportFileCreateDate = Date.parse(elements[2]).strftime('%Y%m%d %H:%M:%S')
10
+ header.Version = elements[3].chomp
11
+
12
+ return header
13
+ end
14
14
  end
@@ -1,30 +1,30 @@
1
- class OnlineDebitTransactionParser
2
- def Parse(elements)
3
- @@DATETIME_FORMAT = '%Y-%m-%d %H:%M:%S'
4
-
5
- if elements.length < 16
6
- throw('The expected parameter count is 16')
7
- end
8
-
9
- online_debit_transaction = OnlineDebitTransactionReportFile.new
10
-
11
- online_debit_transaction.Order.OrderKey = elements[1]
12
- online_debit_transaction.Order.OrderReference = elements[2]
13
- online_debit_transaction.Order.MerchantKey = elements[3]
14
- online_debit_transaction.Order.MerchantName = elements[4]
15
-
16
- online_debit_transaction.TransactionKey = elements[5]
17
- online_debit_transaction.TransactionReference = elements[6]
18
- online_debit_transaction.Bank = elements[7]
19
- online_debit_transaction.Status = elements[8]
20
- online_debit_transaction.AmountInCents = elements[9].to_i
21
- online_debit_transaction.AmountPaidInCents = (elements[10].to_s == '') == false ? elements[10].to_i : 0
22
- online_debit_transaction.PaymentDate = (elements[11].to_s == '') == false ? DateTime.strptime(elements[11],'%m/%d/%Y %H:%M:%S').strftime(@@DATETIME_FORMAT) : nil
23
- online_debit_transaction.BankReturnCode = elements[12]
24
- online_debit_transaction.BankPaymentDate = elements[13]
25
- online_debit_transaction.Signature = elements[14]
26
- online_debit_transaction.TransactionKeyToBank = elements[15].chomp
27
-
28
- return online_debit_transaction
29
- end
1
+ class OnlineDebitTransactionParser
2
+ def Parse(elements)
3
+ @@DATETIME_FORMAT = '%Y-%m-%d %H:%M:%S'
4
+
5
+ if elements.length < 16
6
+ throw('The expected parameter count is 16')
7
+ end
8
+
9
+ online_debit_transaction = OnlineDebitTransactionReportFile.new
10
+
11
+ online_debit_transaction.Order.OrderKey = elements[1]
12
+ online_debit_transaction.Order.OrderReference = elements[2]
13
+ online_debit_transaction.Order.MerchantKey = elements[3]
14
+ online_debit_transaction.Order.MerchantName = elements[4]
15
+
16
+ online_debit_transaction.TransactionKey = elements[5]
17
+ online_debit_transaction.TransactionReference = elements[6]
18
+ online_debit_transaction.Bank = elements[7]
19
+ online_debit_transaction.Status = elements[8]
20
+ online_debit_transaction.AmountInCents = elements[9].to_i
21
+ online_debit_transaction.AmountPaidInCents = (elements[10].to_s == '') == false ? elements[10].to_i : 0
22
+ online_debit_transaction.PaymentDate = (elements[11].to_s == '') == false ? DateTime.strptime(elements[11],'%m/%d/%Y %H:%M:%S').strftime(@@DATETIME_FORMAT) : nil
23
+ online_debit_transaction.BankReturnCode = elements[12]
24
+ online_debit_transaction.BankPaymentDate = elements[13]
25
+ online_debit_transaction.Signature = elements[14]
26
+ online_debit_transaction.TransactionKeyToBank = elements[15].chomp
27
+
28
+ return online_debit_transaction
29
+ end
30
30
  end
@@ -1,15 +1,15 @@
1
- class TrailerParser
2
- def Parse(elements)
3
- if elements.length < 5
4
- throw('The expected parameter count is 5')
5
- end
6
-
7
- trailer = Trailer.new
8
- trailer.OrderDataCount = elements[1]
9
- trailer.CreditCardTransactionDataCount = elements[2]
10
- trailer.BoletoTransactionDataCount = elements[3]
11
- trailer.OnlineDebitTransactionDataCount = elements[4].chomp
12
-
13
- return trailer
14
- end
1
+ class TrailerParser
2
+ def Parse(elements)
3
+ if elements.length < 5
4
+ throw('The expected parameter count is 5')
5
+ end
6
+
7
+ trailer = Trailer.new
8
+ trailer.OrderDataCount = elements[1]
9
+ trailer.CreditCardTransactionDataCount = elements[2]
10
+ trailer.BoletoTransactionDataCount = elements[3]
11
+ trailer.OnlineDebitTransactionDataCount = elements[4].chomp
12
+
13
+ return trailer
14
+ end
15
15
  end