Module: Cetustek::ResultCode
- Defined in:
- lib/cetustek/errors.rb
Constant Summary collapse
- COMMON =
Rows that are identical across the spec's result tables (7/10/17/19).
{ 'M:' => '欄位未填或格式錯誤', 'M0' => 'XML 格式錯誤', 'M1' => 'XML 格式錯誤', 'Invalid' => '無效 IP,請通知系統商' }.freeze
- DETAILS =
Detail-line rows, identical between Table 7 (發票) and Table 17 (折讓).
{ 'D0' => '沒有產品明細', 'D0_' => '產品編號格式錯誤', 'D1_' => '品名未填或格式錯誤', 'D2_' => '數量未填或格式錯誤', 'D3_' => '單價未填或格式錯誤', 'D4_' => '單位格式錯誤', 'D5_' => '數量*單價,其小計整數位大於 13 位', 'D999' => '明細筆數最多 9999 筆' }.freeze
Class Method Summary collapse
-
.check!(code, messages, success:) ⇒ Object
Returns the code on success, otherwise raises ResultError.
-
.describe(code, messages) ⇒ Object
Codes may carry a suffix naming the offending field or detail row ("M:AllowanceDate", "D2_3"), so an exact miss falls back to the table key without the suffix.
- .raise!(code, messages) ⇒ Object
Class Method Details
.check!(code, messages, success:) ⇒ Object
Returns the code on success, otherwise raises ResultError.
45 46 47 48 49 |
# File 'lib/cetustek/errors.rb', line 45 def self.check!(code, , success:) return code if code == success raise!(code, ) end |
.describe(code, messages) ⇒ Object
Codes may carry a suffix naming the offending field or detail row ("M:AllowanceDate", "D2_3"), so an exact miss falls back to the table key without the suffix.
40 41 42 |
# File 'lib/cetustek/errors.rb', line 40 def self.describe(code, ) [code] || [code.to_s.sub(/(?<=[:_]).*\z/, '')] end |
.raise!(code, messages) ⇒ Object
51 52 53 |
# File 'lib/cetustek/errors.rb', line 51 def self.raise!(code, ) raise ResultError.new(code, describe(code, )) end |