Class: ComplyanceSDK::Models::LogicalDocTypeMapper

Inherits:
Object
  • Object
show all
Defined in:
lib/complyance_sdk/models/logical_doc_type_mapper.rb

Class Method Summary collapse

Class Method Details

.to_gets_document_type_v2(logical_type) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/complyance_sdk/models/logical_doc_type_mapper.rb', line 7

def to_gets_document_type_v2(logical_type)
  name = logical_type.to_s.upcase

  base = GetsDocumentBase::TAX_INVOICE
  if name.include?('CREDIT_NOTE')
    base = GetsDocumentBase::CREDIT_NOTE
  elsif name.include?('DEBIT_NOTE')
    base = GetsDocumentBase::DEBIT_NOTE
  elsif name.start_with?('SIMPLIFIED')
    base = GetsDocumentBase::SIMPLIFIED_INVOICE
  end

  modifiers = []
  modifiers << GetsDocumentModifier::B2C if name.start_with?('SIMPLIFIED')
  modifiers << GetsDocumentModifier::EXPORT if name.include?('EXPORT')
  modifiers << GetsDocumentModifier::SELF_BILLED if name.include?('SELF_BILLED')
  modifiers << GetsDocumentModifier::THIRD_PARTY if name.include?('THIRD_PARTY')
  modifiers << GetsDocumentModifier::NOMINAL_SUPPLY if name.include?('NOMINAL_SUPPLY')
  modifiers << GetsDocumentModifier::SUMMARY if name.include?('SUMMARY')
  modifiers << GetsDocumentModifier::B2G if name.include?('B2G')

  GetsDocumentTypeV2
    .builder
    .base(base)
    .modifiers(modifiers)
    .build
end