Class: Kaui::Overdue
- Inherits:
-
KillBillClient::Model::Overdue
- Object
- KillBillClient::Model::Overdue
- Kaui::Overdue
- Defined in:
- app/models/kaui/overdue.rb
Class Method Summary collapse
- .format_tag_condition(control_tag) ⇒ Object
- .from_overdue_form_model(view_form_model) ⇒ Object
- .get_overdue_json(options) ⇒ Object
- .get_tenant_overdue_config(options) ⇒ Object
Class Method Details
.format_tag_condition(control_tag) ⇒ Object
81 82 83 84 85 |
# File 'app/models/kaui/overdue.rb', line 81 def format_tag_condition(control_tag) return nil if control_tag.blank? || control_tag == :NONE.to_s control_tag end |
.from_overdue_form_model(view_form_model) ⇒ Object
6 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 34 35 36 37 38 39 40 41 42 43 44 |
# File 'app/models/kaui/overdue.rb', line 6 def from_overdue_form_model(view_form_model) result = KillBillClient::Model::Overdue.new result.initial_reevaluation_interval = nil # TODO result.overdue_states = [] view_form_model['states'].each do |state_model| state = KillBillClient::Model::OverdueStateConfig.new state.name = state_model['name'] state.auto_reevaluation_interval_days = nil state. = state_model['external_message'] state.is_clear_state = state_model['is_clear_state'].nil? ? false : state_model['is_clear_state'] state.is_block_changes = state_model['is_block_changes'] if state_model['subscription_cancellation_policy'] == :NONE.to_s state.is_disable_entitlement = false state.subscription_cancellation_policy = nil else state.is_disable_entitlement = true state.subscription_cancellation_policy = state_model['subscription_cancellation_policy'].blank? ? :NONE : state_model['subscription_cancellation_policy'].to_s.gsub!(/POLICY_/, '') end if state_model['condition'] state.condition = KillBillClient::Model::OverdueCondition.new if state_model['condition']['time_since_earliest_unpaid_invoice_equals_or_exceeds'] state.condition.time_since_earliest_unpaid_invoice_equals_or_exceeds = KillBillClient::Model::DurationAttributes.new state.condition.time_since_earliest_unpaid_invoice_equals_or_exceeds.unit = 'DAYS' state.condition.time_since_earliest_unpaid_invoice_equals_or_exceeds.number = state_model['condition']['time_since_earliest_unpaid_invoice_equals_or_exceeds'] end state.condition.number_of_unpaid_invoices_equals_or_exceeds = state_model['condition']['number_of_unpaid_invoices_equals_or_exceeds'] state.condition.total_unpaid_invoice_balance_equals_or_exceeds = state_model['condition']['total_unpaid_invoice_balance_equals_or_exceeds'] state.condition.control_tag_inclusion = format_tag_condition(state_model['condition']['control_tag_inclusion']) state.condition.control_tag_exclusion = format_tag_condition(state_model['condition']['control_tag_exclusion']) end result.overdue_states << state end # We reversed them to display on the form , so we have to reverse them back before uploading new config result.overdue_states.reverse! result end |
.get_overdue_json(options) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'app/models/kaui/overdue.rb', line 51 def get_overdue_json() result = KillBillClient::Model::Overdue.get_tenant_overdue_config_json() class << result attr_accessor :has_states end result.has_states = result.overdue_states.size.positive? && result.overdue_states[0].is_clear_state result.overdue_states.each do |state| class << state attr_accessor :subscription_cancellation end state.subscription_cancellation = if state.is_disable_entitlement state.subscription_cancellation_policy ? "POLICY_#{state.subscription_cancellation_policy}".to_sym : :NONE else :NONE end next unless state.condition.nil? state.condition = KillBillClient::Model::OverdueCondition.new state.condition.time_since_earliest_unpaid_invoice_equals_or_exceeds = KillBillClient::Model::DurationAttributes.new state.condition.time_since_earliest_unpaid_invoice_equals_or_exceeds.unit = 'DAYS' state.condition.time_since_earliest_unpaid_invoice_equals_or_exceeds.number = 0 state.condition.number_of_unpaid_invoices_equals_or_exceeds = 0 state.condition.total_unpaid_invoice_balance_equals_or_exceeds = 0 state.condition.control_tag_inclusion = :NONE state.condition.control_tag_exclusion = :NONE end result end |
.get_tenant_overdue_config(options) ⇒ Object
46 47 48 49 |
# File 'app/models/kaui/overdue.rb', line 46 def get_tenant_overdue_config() overdue_xml = KillBillClient::Model::Overdue.get_tenant_overdue_config_xml() Nokogiri::XML(overdue_xml, &:noblanks) end |