ig3tool 0.4.5 → 0.4.6
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/glade/protjes.glade +35 -11
- data/lib/glade/sales.glade +120 -119
- data/lib/lib/util.rb +6 -0
- data/lib/ui/bibliotheekwindow.rb +132 -52
- data/lib/ui/interne.rb +1 -1
- data/lib/ui/printingwindow.rb +29 -6
- data/lib/ui/protjes.rb +42 -14
- data/lib/ui/saleswindow.rb +15 -12
- metadata +2 -7
- data/lib/ui/OLD_bibwindow.rb +0 -537
- data/lib/ui/OLD_internewindow.rb +0 -129
- data/lib/ui/OLD_memberswindow.rb +0 -327
- data/lib/ui/OLD_printenwindow.rb +0 -329
- data/lib/ui/OLD_productswindow.rb +0 -193
@@ -1,193 +0,0 @@
|
|
1
|
-
module Ig3tool
|
2
|
-
|
3
|
-
class ProductsWindow < GladeHelper
|
4
|
-
MENU_PATH = ["Producten", "Producten"]
|
5
|
-
ICON = "doos_xsmall.png"
|
6
|
-
|
7
|
-
def initialize
|
8
|
-
super("products.glade")
|
9
|
-
|
10
|
-
@product_view = @glade.get_widget("producttree")
|
11
|
-
@barcode_entry = @glade.get_widget("barcode")
|
12
|
-
@name_entry = @glade.get_widget("name")
|
13
|
-
@category = @glade.get_widget("category")
|
14
|
-
@category_combo = @glade.get_widget("category_combo")
|
15
|
-
@dprice_entry = @glade.get_widget("dprice")
|
16
|
-
@lprice_entry = @glade.get_widget("lprice")
|
17
|
-
@nlprice_entry = @glade.get_widget("nlprice")
|
18
|
-
@stock_label = @glade.get_widget("stock")
|
19
|
-
@purchase_view = @glade.get_widget("purchaselist")
|
20
|
-
@date_entry = @glade.get_widget("date")
|
21
|
-
@new_price = @glade.get_widget("new_price")
|
22
|
-
@new_stock = @glade.get_widget("new_stock")
|
23
|
-
|
24
|
-
s1 = Gtk::SizeGroup.new(Gtk::SizeGroup::BOTH)
|
25
|
-
%w(slabel1 slabel2 slabel3 slabel4 slabel5).each do |w|
|
26
|
-
s1.add_widget(@glade.get_widget(w))
|
27
|
-
end
|
28
|
-
s2 = Gtk::SizeGroup.new(Gtk::SizeGroup::BOTH)
|
29
|
-
%w(update_button new_stock_button stock_correction_button return_button).each do |w|
|
30
|
-
s2.add_widget(@glade.get_widget(w))
|
31
|
-
end
|
32
|
-
|
33
|
-
@purchase_list = Gtk::ListStore.new(Object, String, String, String, Integer, Integer)
|
34
|
-
@purchase_view.model = @purchase_list
|
35
|
-
renderer = Gtk::CellRendererText.new
|
36
|
-
renderer.xalign = 1
|
37
|
-
@purchase_view.insert_column(-1, "Datum", renderer, :text => 1)
|
38
|
-
@purchase_view.insert_column(-1, "Totaalprijs", renderer, :text => 2)
|
39
|
-
@purchase_view.insert_column(-1, "Stukprijs", renderer, :text => 3)
|
40
|
-
@purchase_view.insert_column(-1, "Huidig", renderer, :text => 4)
|
41
|
-
@purchase_view.insert_column(-1, "Aantal", renderer, :text => 5)
|
42
|
-
|
43
|
-
renderer = Gtk::CellRendererText.new
|
44
|
-
@products = Gtk::ListStore.new(Object, String)
|
45
|
-
@product_view.model = @products
|
46
|
-
@product_view.insert_column(-1, "Product", renderer, :text => 1)
|
47
|
-
|
48
|
-
cat_model = Gtk::ListStore.new(String)
|
49
|
-
cat_model.prepend[0] = "Alle categorieën"
|
50
|
-
$client.product_categories.collect {|x| x.name}.sort.each do |cat|
|
51
|
-
r = cat_model.append
|
52
|
-
r[0] = cat
|
53
|
-
end
|
54
|
-
@category_combo.model = cat_model
|
55
|
-
@category_combo.active = 0
|
56
|
-
|
57
|
-
renderer = Gtk::CellRendererText.new
|
58
|
-
@category_combo.pack_start(renderer, true)
|
59
|
-
@category_combo.set_attributes(renderer, :text => 0)
|
60
|
-
|
61
|
-
@stock_label.text = "0"
|
62
|
-
@date_entry.text = Date.today.to_s
|
63
|
-
|
64
|
-
[@lprice_entry, @nlprice_entry, @new_price, @new_stock].each do |widget|
|
65
|
-
make_eval_widget widget
|
66
|
-
end
|
67
|
-
|
68
|
-
@window.show
|
69
|
-
@glade = nil
|
70
|
-
|
71
|
-
@selected_product = nil
|
72
|
-
@barcode_entry.editable = true
|
73
|
-
|
74
|
-
end
|
75
|
-
|
76
|
-
def barcode_ins(a,b,c,d)
|
77
|
-
_clear_most
|
78
|
-
end
|
79
|
-
|
80
|
-
def barcode_del(a,b,c)
|
81
|
-
_clear_most
|
82
|
-
end
|
83
|
-
|
84
|
-
def product_row_activated (widget, path, column)
|
85
|
-
prod = @product_view.selection.selected[0]
|
86
|
-
@selected_product = prod
|
87
|
-
#@barcode_entry.editable = false
|
88
|
-
@name_entry.text = prod.name
|
89
|
-
@barcode_entry.text = prod.barcode
|
90
|
-
@category.child.text = prod.category
|
91
|
-
@new_price.text = sprintf("%.2f", prod.dprice.to_i.from_c)
|
92
|
-
@dprice_entry.text = sprintf("%.2f", prod.dprice.to_i.from_c)
|
93
|
-
@lprice_entry.text = sprintf("%.2f", prod.mprice.to_i.from_c)
|
94
|
-
@nlprice_entry.text = sprintf("%.2f", prod.nmprice.to_i.from_c)
|
95
|
-
@stock_label.text = prod.stock.to_s
|
96
|
-
_fill_purchases
|
97
|
-
end
|
98
|
-
|
99
|
-
def btn_clear_clicked_cb
|
100
|
-
_clear
|
101
|
-
end
|
102
|
-
|
103
|
-
def btn_apply_clicked_cb
|
104
|
-
# todo
|
105
|
-
end
|
106
|
-
|
107
|
-
def add_button_clicked
|
108
|
-
return if @selected_product.nil?
|
109
|
-
amount = @new_stock.text.to_i
|
110
|
-
price = @new_price.text.to_f
|
111
|
-
|
112
|
-
args = { :debugger => $client.username,
|
113
|
-
:items => { @selected_product.barcode => [amount, amount * price.to_c] }
|
114
|
-
}
|
115
|
-
|
116
|
-
$client.product_purchase! args
|
117
|
-
p = $client.product_purchases(@selected_product.barcode).first
|
118
|
-
_add_purchase(p, false)
|
119
|
-
end
|
120
|
-
|
121
|
-
def category_combo_changed
|
122
|
-
active = @category_combo.active
|
123
|
-
products = $client.product_all
|
124
|
-
if active > 0
|
125
|
-
category = @category_combo.active_iter[0]
|
126
|
-
products = products.select {|p| p.category == category}
|
127
|
-
end
|
128
|
-
_fill_products products
|
129
|
-
end
|
130
|
-
|
131
|
-
private
|
132
|
-
def _clear
|
133
|
-
@selected_product = nil
|
134
|
-
@barcode_entry.text = ""
|
135
|
-
@name_entry.text = ""
|
136
|
-
@category.child.text = ""
|
137
|
-
@dprice_entry.text = ""
|
138
|
-
@lprice_entry.text = ""
|
139
|
-
@nlprice_entry.text = ""
|
140
|
-
@stock_label.text = "0"
|
141
|
-
@new_price.text = ""
|
142
|
-
@new_stock.text = ""
|
143
|
-
_fill_purchases
|
144
|
-
end
|
145
|
-
|
146
|
-
def _clear_most
|
147
|
-
@selected_product = nil
|
148
|
-
@name_entry.text = ""
|
149
|
-
@category.child.text = ""
|
150
|
-
@dprice_entry.text = ""
|
151
|
-
@lprice_entry.text = ""
|
152
|
-
@nlprice_entry.text = ""
|
153
|
-
@stock_label.text = "0"
|
154
|
-
@new_price.text = ""
|
155
|
-
@new_stock.text = ""
|
156
|
-
_fill_purchases
|
157
|
-
end
|
158
|
-
|
159
|
-
def _fill_products (products)
|
160
|
-
@product_view.model = nil
|
161
|
-
@products.clear
|
162
|
-
products.sort {|a,b| a.name.downcase <=> b.name.downcase}.each do |prod|
|
163
|
-
row = @products.append
|
164
|
-
row[0] = prod
|
165
|
-
row[1] = prod.name
|
166
|
-
end
|
167
|
-
@product_view.model = @products
|
168
|
-
end
|
169
|
-
|
170
|
-
def _fill_purchases
|
171
|
-
@purchase_list.clear
|
172
|
-
return if @selected_product.nil?
|
173
|
-
@selected_product.purchases.each do |p|
|
174
|
-
_add_purchase(p)
|
175
|
-
end
|
176
|
-
end
|
177
|
-
|
178
|
-
def _add_purchase(p, at_end = true)
|
179
|
-
row = at_end ? @purchase_list.append : @purchase_list.prepend
|
180
|
-
row[0] = p
|
181
|
-
row[1] = p.time.to_s
|
182
|
-
row[2] = sprintf("%.2f", p.cost.from_c)
|
183
|
-
row[3] = sprintf("%.2f", p.cost.from_c/p.count.to_i)
|
184
|
-
row[4] = p.current.to_i
|
185
|
-
row[5] = p.count.to_i
|
186
|
-
end
|
187
|
-
|
188
|
-
|
189
|
-
end
|
190
|
-
|
191
|
-
register_window(ProductsWindow)
|
192
|
-
|
193
|
-
end
|