ig3tool 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/ig3tool +17 -21
- data/lib/actions/bib.rb +295 -0
- data/lib/actions/bitching.rb +19 -0
- data/lib/actions/cultuur.rb +3 -0
- data/lib/actions/interne.rb +98 -0
- data/lib/actions/kaching.rb +90 -0
- data/lib/actions/people.rb +178 -0
- data/lib/actions/printing.rb +125 -0
- data/lib/actions/product.rb +154 -0
- data/lib/bib.rb +94 -0
- data/lib/billing.rb +112 -0
- data/lib/bitching.rb +49 -0
- data/lib/config.rb +19 -0
- data/lib/glade/cola_light_small.png +0 -0
- data/lib/glade/cola_light_xsmall.png +0 -0
- data/lib/glade/cola_small.png +0 -0
- data/lib/glade/cola_xsmall.png +0 -0
- data/lib/glade/doos_small.png +0 -0
- data/lib/glade/doos_xsmall.png +0 -0
- data/lib/glade/icons/cola_light_small.png +0 -0
- data/lib/glade/icons/cola_light_xsmall.png +0 -0
- data/lib/glade/icons/cola_small.png +0 -0
- data/lib/glade/icons/cola_xsmall.png +0 -0
- data/lib/glade/icons/doos_small.png +0 -0
- data/lib/glade/icons/doos_xsmall.png +0 -0
- data/lib/glade/icons/piggy_small.png +0 -0
- data/lib/glade/icons/piggy_xsmall.png +0 -0
- data/lib/glade/money_small.png +0 -0
- data/lib/glade/money_xsmall.png +0 -0
- data/lib/glade/newinterne.glade +504 -0
- data/lib/glade/piggy_small.png +0 -0
- data/lib/glade/piggy_xsmall.png +0 -0
- data/lib/glade/sales.glade +89 -87
- data/lib/horrible_hack.rb +15 -0
- data/lib/interne.rb +111 -0
- data/lib/ldap.rb +104 -0
- data/lib/log.rb +25 -0
- data/lib/membership.rb +32 -0
- data/lib/mymd5.rb +95 -0
- data/lib/people.rb +143 -0
- data/lib/printing.rb +238 -0
- data/lib/request.rb +14 -0
- data/lib/sales.rb +158 -0
- data/lib/ui/automaatwindow.rb +2 -2
- data/lib/ui/bibliotheekwindow.rb +16 -17
- data/lib/ui/bibwindow.rb +15 -15
- data/lib/ui/gladehelper.rb +20 -6
- data/lib/ui/internewindow.rb +12 -9
- data/lib/ui/loginwindow.rb +2 -4
- data/lib/ui/memberswindow.rb +9 -9
- data/lib/ui/newinterne.rb +258 -0
- data/lib/ui/peoplewindow.rb +14 -16
- data/lib/ui/printenwindow.rb +11 -11
- data/lib/ui/printingwindow.rb +19 -20
- data/lib/ui/productswindow.rb +27 -15
- data/lib/ui/saleswindow.rb +21 -8
- data/lib/ui/toolwindow.rb +5 -3
- data/lib/utils.rb +106 -0
- data/lib/web.rb +98 -0
- metadata +48 -3
data/lib/request.rb
ADDED
data/lib/sales.rb
ADDED
@@ -0,0 +1,158 @@
|
|
1
|
+
module Ig3tool
|
2
|
+
|
3
|
+
class Category < ActiveRecord::Base
|
4
|
+
|
5
|
+
set_table_name "categories"
|
6
|
+
|
7
|
+
set_nonauto_primary_key :name
|
8
|
+
|
9
|
+
validates_uniqueness_of :name
|
10
|
+
|
11
|
+
validates_presence_of :name
|
12
|
+
|
13
|
+
has_many :products,
|
14
|
+
:class_name => "Product",
|
15
|
+
:foreign_key => "category"
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
|
20
|
+
class Product < ActiveRecord::Base
|
21
|
+
|
22
|
+
set_table_name "products"
|
23
|
+
|
24
|
+
set_nonauto_primary_key :barcode
|
25
|
+
|
26
|
+
validates_uniqueness_of :barcode
|
27
|
+
|
28
|
+
validates_presence_of :barcode,
|
29
|
+
:stock,
|
30
|
+
:category,
|
31
|
+
:nmprice,
|
32
|
+
:mprice,
|
33
|
+
:dprice,
|
34
|
+
:name
|
35
|
+
|
36
|
+
# validates_inclusion_of :category, :in => Category.find(:all)
|
37
|
+
|
38
|
+
# attr_protected :stock
|
39
|
+
|
40
|
+
has_many :sales,
|
41
|
+
:class_name => "Sale",
|
42
|
+
:foreign_key => "product"
|
43
|
+
|
44
|
+
has_many :purchases,
|
45
|
+
:class_name => "Purchase",
|
46
|
+
:foreign_key => "product"
|
47
|
+
|
48
|
+
# has_one :category,
|
49
|
+
# :class_name => "Category",
|
50
|
+
# :foreign_key => "category"
|
51
|
+
|
52
|
+
validate :nmprice,
|
53
|
+
:mprice,
|
54
|
+
:dprice
|
55
|
+
# XXX dit borkt :(
|
56
|
+
#, { :nmprice < :mprice and :mprice < :dprice}
|
57
|
+
|
58
|
+
before_save do |obj|
|
59
|
+
m = obj.mprice
|
60
|
+
nm = obj.nmprice
|
61
|
+
d = obj.dprice
|
62
|
+
obj.mprice = m = [m, d].max
|
63
|
+
obj.nmprice = [m, nm].max
|
64
|
+
end
|
65
|
+
|
66
|
+
def price(status, count = 1)
|
67
|
+
count *
|
68
|
+
case status
|
69
|
+
when "member"
|
70
|
+
mprice
|
71
|
+
when "debugger"
|
72
|
+
dprice
|
73
|
+
when "plebs", "non-member", "non member"
|
74
|
+
nmprice
|
75
|
+
else
|
76
|
+
# XXX of willen we hier een exception gooien?
|
77
|
+
warn "Invalid status: '#{status}'"
|
78
|
+
nmprice
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
def decrement_stock(amount)
|
83
|
+
transaction do
|
84
|
+
if stock >= amount
|
85
|
+
update_attribute("stock", stock - amount)
|
86
|
+
save
|
87
|
+
else
|
88
|
+
# XXX handle this bitch
|
89
|
+
# we willen niet onder 0 gaan :)
|
90
|
+
update_attribute("stock", 0)
|
91
|
+
end
|
92
|
+
|
93
|
+
purchases = Purchase.find_all_by_product(barcode,
|
94
|
+
:conditions => [ "current > 0"],
|
95
|
+
:order => "time")
|
96
|
+
|
97
|
+
while amount > 0
|
98
|
+
if purchases.empty?
|
99
|
+
warn "stock corrupt: #{amount} items of #{barcode} - #{name} missing"
|
100
|
+
break
|
101
|
+
else
|
102
|
+
p = purchases.shift
|
103
|
+
|
104
|
+
amt = p.current - amount
|
105
|
+
if amt < 0
|
106
|
+
amount = amt.abs
|
107
|
+
amt = 0
|
108
|
+
else
|
109
|
+
amount = 0
|
110
|
+
end
|
111
|
+
|
112
|
+
p.current = amt
|
113
|
+
p.save
|
114
|
+
end
|
115
|
+
end
|
116
|
+
reload
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
def increase_stock(amount)
|
121
|
+
# XXX mag enkel gebruikt worden bij de purchases?
|
122
|
+
end
|
123
|
+
|
124
|
+
end
|
125
|
+
|
126
|
+
class Sale < ActiveRecord::Base
|
127
|
+
# een verkoop
|
128
|
+
|
129
|
+
set_table_name "sales"
|
130
|
+
|
131
|
+
end
|
132
|
+
|
133
|
+
class Purchase < ActiveRecord::Base
|
134
|
+
# een aankoop
|
135
|
+
|
136
|
+
set_table_name "purchases"
|
137
|
+
|
138
|
+
belongs_to :product, :class_name => "Product", :foreign_key => "product"
|
139
|
+
belongs_to :debugger, :class_name => "Person", :foreign_key => "debugger"
|
140
|
+
|
141
|
+
validates_presence_of :debugger, :product, :count, :cost
|
142
|
+
validates_numericality_of :count, :cost
|
143
|
+
|
144
|
+
before_save do |obj|
|
145
|
+
obj.current = [obj.count, 0].max if obj.current.nil?
|
146
|
+
obj.time = Time.now if obj.time.nil?
|
147
|
+
end
|
148
|
+
|
149
|
+
after_create do |obj|
|
150
|
+
p = obj.product
|
151
|
+
p.stock += current
|
152
|
+
p.save
|
153
|
+
# p.recalculate_price # XXX wishful thinking :)
|
154
|
+
end
|
155
|
+
|
156
|
+
end
|
157
|
+
|
158
|
+
end
|
data/lib/ui/automaatwindow.rb
CHANGED
@@ -2,7 +2,7 @@ module Ig3tool
|
|
2
2
|
|
3
3
|
class VendingMachineWindow < GladeHelper
|
4
4
|
MENU_PATH = ["Automaat"]
|
5
|
-
ICON = "
|
5
|
+
ICON = "cola_xsmall.png"
|
6
6
|
|
7
7
|
BLIKJES = [
|
8
8
|
[ "Coca Cola", "5449000000996" ],
|
@@ -83,7 +83,7 @@ module Ig3tool
|
|
83
83
|
end
|
84
84
|
|
85
85
|
begin
|
86
|
-
total = $
|
86
|
+
total = $client.product_restock!( :debugger => debugger.username,
|
87
87
|
:items => items)
|
88
88
|
rescue Exception => e
|
89
89
|
_print_msg "Fout: Verkopen: #{$!}"
|
data/lib/ui/bibliotheekwindow.rb
CHANGED
@@ -2,7 +2,7 @@ require 'time'
|
|
2
2
|
|
3
3
|
begin
|
4
4
|
require "amazon/search"
|
5
|
-
$
|
5
|
+
$amazon_loaded = 1
|
6
6
|
rescue Exception => e
|
7
7
|
STDERR.puts "Ruby/Amazon kon niet geladen worden: " + e.to_s
|
8
8
|
end
|
@@ -27,8 +27,7 @@ module Ig3tool
|
|
27
27
|
|
28
28
|
super("bibliotheek.glade")
|
29
29
|
|
30
|
-
#
|
31
|
-
@c = $global["client"]
|
30
|
+
# $client = Client.new("infogroep.be")
|
32
31
|
|
33
32
|
@tabs = @glade.get_widget("tabs")
|
34
33
|
|
@@ -124,7 +123,7 @@ module Ig3tool
|
|
124
123
|
# if @books_section.active_iter[0].nil?
|
125
124
|
# books = nil
|
126
125
|
# else
|
127
|
-
# books =
|
126
|
+
# books = $client.bib_lookup({"section" => @books_section.active_iter[0].name})
|
128
127
|
# end
|
129
128
|
# _update_books_list(books)
|
130
129
|
#end
|
@@ -152,7 +151,7 @@ module Ig3tool
|
|
152
151
|
def books_save(widget)
|
153
152
|
puts "-> books_save"
|
154
153
|
begin
|
155
|
-
|
154
|
+
$client.bib_add!(get_fields)
|
156
155
|
_update_books_list
|
157
156
|
#books_clear
|
158
157
|
@books_notification.text = "changes saved to book!"
|
@@ -165,7 +164,7 @@ module Ig3tool
|
|
165
164
|
def loan_extend(widget)
|
166
165
|
puts "-> loan_extend"
|
167
166
|
begin
|
168
|
-
|
167
|
+
$client.bib_extend!(get_loan_fields)
|
169
168
|
_update_loan_list
|
170
169
|
loan_clear(nil)
|
171
170
|
@loan_notification.text = "the ig3tool imps extend the book for 3 weeks..."
|
@@ -182,7 +181,7 @@ module Ig3tool
|
|
182
181
|
def loan_return(widget)
|
183
182
|
puts "-> loan_return"
|
184
183
|
begin
|
185
|
-
|
184
|
+
$client.bib_return!(get_loan_fields)
|
186
185
|
_update_loan_list
|
187
186
|
loan_clear(nil)
|
188
187
|
@loan_notification.text = "book returned to the ig3tool imps..."
|
@@ -195,7 +194,7 @@ module Ig3tool
|
|
195
194
|
def books_delete(widget)
|
196
195
|
puts "-> books_delete"
|
197
196
|
begin
|
198
|
-
|
197
|
+
$client.bib_remove!(get_fields)
|
199
198
|
_update_books_list
|
200
199
|
reset_books_fields
|
201
200
|
@books_notification.text = "the ig3tool imps trashed the book..."
|
@@ -244,7 +243,7 @@ module Ig3tool
|
|
244
243
|
def loan_isbn_set(widget)
|
245
244
|
puts "-> loan_isbn_set"
|
246
245
|
begin
|
247
|
-
book =
|
246
|
+
book = $client.bib_info(@loan_isbn.text)
|
248
247
|
raise Exception, "the ig3tool imps found no such book..." if book.nil?
|
249
248
|
_show(book)
|
250
249
|
#@loan_title.text = book.title
|
@@ -260,7 +259,7 @@ module Ig3tool
|
|
260
259
|
puts "start find"
|
261
260
|
Thread.new do
|
262
261
|
begin
|
263
|
-
books =
|
262
|
+
books = $client.bib_lookup(get_fields)
|
264
263
|
if books.size == 1
|
265
264
|
puts "find 1"
|
266
265
|
_show(books.first)
|
@@ -312,7 +311,7 @@ module Ig3tool
|
|
312
311
|
puts "-> loan_loan"
|
313
312
|
@loan_notification.text = ""
|
314
313
|
begin
|
315
|
-
|
314
|
+
$client.bib_loan!(get_loan_fields)
|
316
315
|
_update_loan_list
|
317
316
|
loan_clear(nil)
|
318
317
|
rescue Exception => e
|
@@ -334,7 +333,7 @@ module Ig3tool
|
|
334
333
|
|
335
334
|
|
336
335
|
def _lookup_amazon_isbn (isbn)
|
337
|
-
return false unless $
|
336
|
+
return false unless $amazon_loaded # Indien de amazon gem niet geladen is, return
|
338
337
|
return false unless _isbn?(true,isbn) # Indien strenge test faalt
|
339
338
|
|
340
339
|
if isbn.length == 13 # indien in de nieuwe vorm, maak er een oude van
|
@@ -351,7 +350,7 @@ module Ig3tool
|
|
351
350
|
|
352
351
|
# You need a amazon-dev-token in client.rb
|
353
352
|
token = CONFIG['amazon-dev-token']
|
354
|
-
return unless $
|
353
|
+
return unless $amazon_loaded and token.instance_of?(String) and not token.empty?
|
355
354
|
|
356
355
|
begin
|
357
356
|
req = Amazon::Search::Request.new(CONFIG["amazon-dev-token"],CONFIG["amazon-associates-id"])
|
@@ -382,7 +381,7 @@ module Ig3tool
|
|
382
381
|
@books_year.text = book["year"]
|
383
382
|
@books_copies.text = book["copies"]
|
384
383
|
_update_sections
|
385
|
-
sections =
|
384
|
+
sections = $client.bib_sections.collect{|b| b.name}
|
386
385
|
index = sections.index book.section
|
387
386
|
@books_section.active = index+1
|
388
387
|
end
|
@@ -392,7 +391,7 @@ module Ig3tool
|
|
392
391
|
@books_notification.text = "loading books..."
|
393
392
|
@books_list_store.clear if clear
|
394
393
|
Thread.new do
|
395
|
-
books =
|
394
|
+
books = $client.bib_books if books.nil?
|
396
395
|
unless books.empty?
|
397
396
|
books.each do |b|
|
398
397
|
@books_list_store.append[0] = b
|
@@ -411,7 +410,7 @@ module Ig3tool
|
|
411
410
|
puts "-> _update_loan_list"
|
412
411
|
@loan_list_store.clear if clear
|
413
412
|
Thread.new do
|
414
|
-
loans =
|
413
|
+
loans = $client.bib_loans
|
415
414
|
loans.each do |b|
|
416
415
|
@loan_list_store.append[0] = b
|
417
416
|
end
|
@@ -422,7 +421,7 @@ module Ig3tool
|
|
422
421
|
|
423
422
|
def _update_sections
|
424
423
|
puts "-> _update_sections"
|
425
|
-
sections =
|
424
|
+
sections = $client.bib_sections
|
426
425
|
sections_model = Gtk::ListStore.new(Object, String)
|
427
426
|
|
428
427
|
empty = sections_model.append
|
data/lib/ui/bibwindow.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
begin
|
2
2
|
require "amazon/search"
|
3
|
-
|
3
|
+
$amazon_loaded = 1
|
4
4
|
rescue Exception => e
|
5
5
|
STDERR.puts "Ruby/Amazon kon niet geladen worden: " + e.to_s
|
6
6
|
end
|
@@ -156,7 +156,7 @@ module Ig3tool
|
|
156
156
|
_fill_booklist
|
157
157
|
else
|
158
158
|
begin
|
159
|
-
books = $
|
159
|
+
books = $client.bib_lookup attrs
|
160
160
|
_set_booklist(books)
|
161
161
|
rescue Exception => e
|
162
162
|
_print_msg "Fout: Lookup Clicked: #{$!}"
|
@@ -186,7 +186,7 @@ module Ig3tool
|
|
186
186
|
end
|
187
187
|
|
188
188
|
begin
|
189
|
-
answer = $
|
189
|
+
answer = $client.bib_add! _get_book
|
190
190
|
rescue Exception => e
|
191
191
|
_print_msg "Fout: Toevoegen: #{$!}"
|
192
192
|
else
|
@@ -219,7 +219,7 @@ module Ig3tool
|
|
219
219
|
end
|
220
220
|
|
221
221
|
begin
|
222
|
-
answer = $
|
222
|
+
answer = $client.bib_loan!({:isbn => @loan_isbn_entry.text,
|
223
223
|
:member => @loan_memberid_entry.text,
|
224
224
|
:warranty => @loan_warranty_entry.text })
|
225
225
|
rescue Exception => e
|
@@ -303,7 +303,7 @@ module Ig3tool
|
|
303
303
|
end
|
304
304
|
|
305
305
|
def _lookup_amazon_isbn (isbn)
|
306
|
-
return false unless $
|
306
|
+
return false unless $amazon_loaded # Indien de amazon gem niet geladen is, return
|
307
307
|
return false unless _isbn?(true,isbn) # Indien strenge test faalt
|
308
308
|
|
309
309
|
if isbn.length == 13 # indien in de nieuwe vorm, maak er een oude van
|
@@ -320,7 +320,7 @@ module Ig3tool
|
|
320
320
|
|
321
321
|
# You need a amazon-dev-token in client.rb
|
322
322
|
token = CONFIG['amazon-dev-token']
|
323
|
-
return unless $
|
323
|
+
return unless $amazon_loaded and token.instance_of?(String) and not token.empty?
|
324
324
|
|
325
325
|
begin
|
326
326
|
req = Amazon::Search::Request.new(CONFIG["amazon-dev-token"],CONFIG["amazon-associates-id"])
|
@@ -340,7 +340,7 @@ module Ig3tool
|
|
340
340
|
|
341
341
|
def _lookup_database_isbn(isbn)
|
342
342
|
begin
|
343
|
-
answer = $
|
343
|
+
answer = $client.bib_books( [ isbn ] )
|
344
344
|
rescue Exception => e
|
345
345
|
_print_msg "Fout: Lookup: #{$!}", "ISBN: #{isbn}"
|
346
346
|
nil
|
@@ -425,7 +425,7 @@ module Ig3tool
|
|
425
425
|
|
426
426
|
# Haal de boeken op van de server
|
427
427
|
begin
|
428
|
-
answer = $
|
428
|
+
answer = $client.bib_books
|
429
429
|
_set_booklist(answer)
|
430
430
|
rescue Exception => e
|
431
431
|
_print_msg "Fout: Fill-Booklist: #{$!}"
|
@@ -455,9 +455,9 @@ module Ig3tool
|
|
455
455
|
# Haal de uitgeleende boeken op van de server
|
456
456
|
begin
|
457
457
|
if memberid
|
458
|
-
answer = $
|
458
|
+
answer = $client.bib_loans( [ memberid ] ) # Indien een memberid geselecteerd
|
459
459
|
else
|
460
|
-
answer = $
|
460
|
+
answer = $client.bib_loans # Alle loans weergeven indien niet
|
461
461
|
end
|
462
462
|
rescue Exception => e
|
463
463
|
_print_msg "Fout: Fill-Loan-Booklist: #{$!}", "Memberid: #{memberid}"
|
@@ -467,8 +467,8 @@ module Ig3tool
|
|
467
467
|
# Answer is een BookLoan
|
468
468
|
@books_loan_view.model = nil # Performance issues
|
469
469
|
for bookloan in answer
|
470
|
-
book = $
|
471
|
-
person = $
|
470
|
+
book = $client.bib_info( [bookloan.isbn] ) # Haal de info op over het boek
|
471
|
+
person = $client.person_member( [bookloan.member_id] ) # Haal de persoon op
|
472
472
|
if person.nil? or book.nil?
|
473
473
|
_print_msg "Fout: Fill-Loan-Booklist: #{$!}", "BookLoan: #{bookloan}, Book: #{book}, Person: #{person}"
|
474
474
|
return
|
@@ -492,7 +492,7 @@ module Ig3tool
|
|
492
492
|
def _delete_book(isbn)
|
493
493
|
return unless isbn.nil?
|
494
494
|
begin
|
495
|
-
answer = $
|
495
|
+
answer = $client.bib_remove!( { :isbn => @isbn } )
|
496
496
|
rescue Exception => e
|
497
497
|
_print_msg "Fout: Verwijderen: #{$!}"
|
498
498
|
else
|
@@ -504,7 +504,7 @@ module Ig3tool
|
|
504
504
|
|
505
505
|
def _loan_verlengen(isbn, memberid)
|
506
506
|
begin
|
507
|
-
answer = $
|
507
|
+
answer = $client.bib_extend!({ :isbn => isbn,
|
508
508
|
:member => memberid })
|
509
509
|
returndate = Time.at(answer.return_date).to_s
|
510
510
|
rescue Exception => e
|
@@ -516,7 +516,7 @@ module Ig3tool
|
|
516
516
|
|
517
517
|
def _loan_terugbrengen(isbn, memberid)
|
518
518
|
begin
|
519
|
-
answer = $
|
519
|
+
answer = $client.bib_return!( { :isbn => isbn,
|
520
520
|
:member => memberid })
|
521
521
|
rescue Exception => e
|
522
522
|
_print_msg "Fout: Return: #{$!}", "#{isbn},#{memberid}"
|
data/lib/ui/gladehelper.rb
CHANGED
@@ -31,7 +31,7 @@ module Ig3tool
|
|
31
31
|
|
32
32
|
# Debugger combobox invullen
|
33
33
|
def make_debugger_combo (combo, window = nil)
|
34
|
-
debuggers = $
|
34
|
+
debuggers = $client.person_debuggers
|
35
35
|
debuggers.sort! {|a,b| a.username <=> b.username }
|
36
36
|
|
37
37
|
debugger_model = Gtk::ListStore.new(Object, String)
|
@@ -42,7 +42,6 @@ module Ig3tool
|
|
42
42
|
end
|
43
43
|
|
44
44
|
combo.model = debugger_model
|
45
|
-
combo.active = 0
|
46
45
|
combo.clear
|
47
46
|
renderer = Gtk::CellRendererText.new
|
48
47
|
combo.pack_start(renderer, true)
|
@@ -50,12 +49,20 @@ module Ig3tool
|
|
50
49
|
|
51
50
|
# Indien het window gekleurd moet worden adhv zijn 'interne' status
|
52
51
|
add_window_colorer(combo, window) if window
|
52
|
+
|
53
|
+
username = $client.username
|
54
|
+
debugger_model.each do |m, p, i|
|
55
|
+
if i[1] == username
|
56
|
+
combo.active_iter = i
|
57
|
+
break
|
58
|
+
end
|
59
|
+
end
|
53
60
|
end
|
54
61
|
|
55
62
|
# Status combobox invullen
|
56
63
|
def make_status_combo (combo,statussen = nil)
|
57
64
|
begin
|
58
|
-
statussen = $
|
65
|
+
statussen = $client.person_statussen unless statussen
|
59
66
|
statussen_model = Gtk::ListStore.new(Object, String)
|
60
67
|
statussen.each do |key, value|
|
61
68
|
row = statussen_model.append
|
@@ -75,12 +82,19 @@ module Ig3tool
|
|
75
82
|
|
76
83
|
def add_window_colorer(combo, window)
|
77
84
|
combo.signal_connect("changed") do
|
85
|
+
saldo = 0
|
78
86
|
if combo.active_iter
|
79
87
|
debugger = combo.active_iter[1]
|
80
|
-
|
81
|
-
|
82
|
-
|
88
|
+
if debugger != "kas"
|
89
|
+
begin
|
90
|
+
saldo = $client.interne(debugger).saldo.to_i
|
91
|
+
rescue Exception => e
|
92
|
+
# ignore
|
93
|
+
puts e.to_s + " - " + e.message
|
94
|
+
end
|
95
|
+
end
|
83
96
|
end
|
97
|
+
|
84
98
|
if saldo < 0
|
85
99
|
shade = [65535, 0, 0]
|
86
100
|
ratio = (saldo < -7500) ? 1 : Rational(saldo,(-75 * 100)) # In cent + Need rational!
|