ig3tool 0.4.5 → 0.4.6

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.
@@ -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