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