Module: UU::Finman::FinancialTransaction::FastPayment

Extended by:
FastPayment
Included in:
FastPayment
Defined in:
lib/uu/finman/fast_payment.rb

Overview

Module of Payment

Constant Summary

PATH =

Service path

'uu/finman/financialtransaction/FinancialTransaction'
TYPE_OF_FINANCIAL_TRANSACTION =

Type of financial transaction

'FAST_PAYMENT'

Instance Method Summary (collapse)

Instance Method Details

- (UU::OS::UESURI) create(control_business_case_uri, fast_payment)

Creates a new Fast Payment. The command creates a new Fast Payment for specified business case with passed DTO parameters.

Required attributes:

control_business_case_uri, counterparty_business_case_uri, name, amount_without_vat, vat_rate or amount_with_vat, financial_transaction_type,
realization_probability, expected_pay_date, due_date, transaction_currency, (credit_account_number and credit_side_currrency) or credit_account_uri,
(debit_account_number and debit_side_currency) or debit_account_uri

Exactly one of attributes credit_account_number and credit_account_uri has to be set. Exactly one of attributes debit_account_number and debit_account_uri has to be set. Exactly one of attributes vat_rate and amount_with_vat has to be set. Both attributes can be set simultaneously only if following statement is true : amount_without_vat * vat_rate = amount_with_rate. Attribute credit_side_currency and debit_side_currency must be set if respective account is set by number. Attribute transaction_currency must be set and must be one from credit_side_currency and debit_side_currency, with exception if both credit_side_currency and debit_side_currency are equal. Attribute related_links must be valid JSON string with specific array structure with attributes UESURI of financial transaction and label. Both attributes are required. See example.

Examples:

# Prepare Business Case URI, which we want to use to create Fast payment.
control_business_case_uri = UU::OS::UESURI.new('ues:TERRITORY:BUSINESS_CASE');

# Create fast payment
  UU::Finman::FinancialTransaction::FastPayment.create(control_business_case_uri,
    :name => "Fast Platba ",
    :credit_description => "Kreditní popis",
    :debit_description => "Debetní popis",
    :credit_financial_category_uri => UU::OS::UESURI.new("ues:TERRITORY:APPS.UU.FINMAN/CONFIGURATION:SYS.FIN.CONFIG/TX_TYPE/CR.TXWER"),
    :debit_financial_category_uri => UU::OS::UESURI.new("ues:TERRITORY:APPS.UU.FINMAN/CONFIGURATION:SYS.FIN.CONFIG/TX_TYPE/DR.TXOTR"),
    :realization_probability => 50,
    :financial_transaction_type => "NONCASH",
    :amount_without_vat => 100,
    :amount_with_vat =>  120,
    :vat_rate => 20,
    :is_ready_for_acceptance => true,
    :invoice_number => "Číslo faktury ",
    :for_acceptance_date => "2014-11-02",
    :due_date => "2014-11-02",
    :expected_pay_date => "2014-11-02",
    :counterparty_business_case_uri =>  UU::OS::UESURI.new("ues:TERRITORY:CP_BC"),
    :credit_account_uri =>  UU::OS::UESURI.new("ues:TERRITORY:ACCOUNT"),
    :credit_business_case_from_opposite_territory => UU::OS::UESURI.new("ues:TERRITORY:ITA_BC"),
    :debit_business_case_from_opposite_territory => UU::OS::UESURI.new("ues:TERRITORY:ITA_BC"),
    :credit_side_currency => "CZK",
    :debit_side_currency => "EUR",
    :transaction_currency => "EUR",
  :related_links => "[["ues:[TERRITORY_OID]:[FIN_TR_OID]:","label 1"],["ues:[TERRITORY_OID]:[FIN_TR_OID]:","label 2"]]"
 )

Parameters:

Returns:

  • (UU::OS::UESURI)

    UESURI of the new Fast Payment. In case of setting dry_run parameter to true, UU::OS::UESURI::NIL_URI is returned instead.



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# File 'lib/uu/finman/fast_payment.rb', line 73

def create(control_business_case_uri, fast_payment)
  svc = UU::OS::REST::RemoteClient.new(FastPayment)
  payment_dto = UU::Finman::FinancialTransaction::FastPaymentCreate.new(fast_payment)
  # adjust given payment dto to match expected format of financial transaction command
  transaction = transform_create_fast_payment_to_transaction_dto(payment_dto)
  financial_transaction_create = transaction.to_json

  UU::OS::QoS::QoSHandler.auto_retry do
    res = svc.post('create', control_business_case_uri, financial_transaction_create)
    if res.nil?
      return res
    else
      return UU::OS::UESURI.new(res)
    end
  end
end

- (FastPaymentAttributes) get_attributes(fast_payment_uri)

Obtains Fast Payment attributes from service and returns them

Examples:

# Prepare Fast payment location which we want get attributes.
fast_payment_uri = UU::OS::UESURI.new('ues:TERRITORY:FAST_PAYMENT');

# Get Fast payment
UU::Finman::FinancialTransaction::FastPayment.get_attributes(fast_payment_uri);

Parameters:

  • fast_payment_uri (String, UU::OS::UESURI)

    UESURI of the Fast Payment

Returns:



103
104
105
106
107
108
109
110
111
# File 'lib/uu/finman/fast_payment.rb', line 103

def get_attributes(fast_payment_uri)
  svc = UU::OS::REST::RemoteClient.new(FastPayment)
  UU::OS::QoS::QoSHandler.auto_retry do
    attrs_string = svc.get('getAttributes', fast_payment_uri)
    attrs = JSON.parse(attrs_string, :symbolize_names => true)
    attrs = remove_invalid_keys(attrs)
    return UU::Finman::FinancialTransaction::FastPaymentAttributes.new(attrs)
  end
end

- (UU::OS::UESURI) set_attributes(fast_payment_uri, fast_payment_set_attributes)

Sets attributes of Fast Payment.

Examples:

# Prepare Fast payment location which we want set attributes.
fast_payment_uri = UU::OS::UESURI.new('ues:TERRITORY:FAST_PAYMENT');

# Create Fast payment
UU::Finman::FinancialTransaction::FastPayment.set_attributes(fast_payment_uri,
  :name => "Fast payment set");

Parameters:

  • fast_payment_uri (String, UU::OS::UESURI)

    UESURI of modified Fast Payment

  • fast_payment_set_attributes (FastPaymentSetAttributes)

    DTO containing modified attributes of the Fast Payment

Returns:

  • (UU::OS::UESURI)

    UESURI of modified Fast Payment



128
129
130
131
132
133
134
135
136
137
138
139
# File 'lib/uu/finman/fast_payment.rb', line 128

def set_attributes(fast_payment_uri, fast_payment_set_attributes)
  svc = UU::OS::REST::RemoteClient.new(FastPayment)
  fast_payment_dto = UU::Finman::FinancialTransaction::PaymentSetAttributes.new(fast_payment_set_attributes)
  # adjust given payment dto to match expected format of financial transaction command
  transaction = transform_modify_fast_payment_to_transaction_dto(fast_payment_dto)
  financial_transaction_dto = transaction.to_json

  UU::OS::QoS::QoSHandler.auto_retry do
    res = svc.post('setAttributes', fast_payment_uri, financial_transaction_dto)
    return UU::OS::UESURI.new(res)
  end
end