class SelfCash

Public Instance Methods

layout() click to toggle source
# File Views/Self/Cash.rb, line 2
def layout
  set_data_class :Persons
  @update = true
  @cache_payments = {}
  @order = 20
  @functions_need = [:accounting]
  @visible = false

  gui_vbox do
      show_int_ro :account_total_due, :width => 100
      show_list_single :payments, :width => 500, :callback => true,
        :nopreselect => true, :flexheight => 1
      show_button :update
  end
end
list_payments( session, force = false ) click to toggle source
# File Views/Self/Cash.rb, line 25
def list_payments( session, force = false )
  dputs(3){"list_payments #{session.inspect}"}
  person = session.owner
  pid = person.person_id
  if not @cache_payments[pid] or force
    @cache_payments[pid] = if ad = person.account_due
      dputs(3){"account_due is here"}
      ad.movements.select{|m| m.value != 0}.collect{|m|
        dputs(4){"Collecting #{m.inspect}"}
        "#{m.date} :: #{( m.value * 1000 ).floor.to_s.rjust(6,'_')} " + 
            ":: #{m.desc}"
      }
    else
      ""
    end
  end
  dputs(3){"Found movements #{@cache_payments[pid].inspect}"}
  @cache_payments[pid]
end
rpc_button_update( session, data) click to toggle source
# File Views/Self/Cash.rb, line 63
def rpc_button_update( session, data)
  rpc_update( session )
end
rpc_list_choice( session, name, args ) click to toggle source
# File Views/Self/Cash.rb, line 45
def rpc_list_choice( session, name, args )
  if desc = args['payments']
    desc = desc[0]
    dputs( 2 ){ "New choice #{name} - #{args.inspect}" }
    if desc =~ /.*Gestion: internet_credit/
      login = desc.sub(/.*internet_credit pour -([^:]*).*/, '\1')
  
      reply( :parent, 
        reply( :init_values, [ :PersonTabs, { :search => login, :persons => [] } ] ) +
          reply( :switch_tab, :PersonTabs ) ) +
        reply( :switch_tab, :PersonModify )
    end
    #reply( :parent, reply( :update, :search => login) )
    #reply( :parent, View.PersonTabs.rpc_callback_search( session,
    #  "search" => login ) )
  end
end
rpc_update( session, client = nil ) click to toggle source
# File Views/Self/Cash.rb, line 18
def rpc_update( session, client = nil )
  person = session.owner
  reply( :empty_nonlists, %w( payments ) ) +
    reply( :update, { :account_total_due => person.account_total_due } ) +
    reply( :update, { :payments => list_payments( session, true ) } )
end