PageRenderTime 26ms CodeModel.GetById 15ms RepoModel.GetById 1ms app.codeStats 0ms

/core/promogest/modules/PromoWear/ui/AnagraficaArticoliPromoWearExpand.py

http://promogest.googlecode.com/
Python | 344 lines | 308 code | 17 blank | 19 comment | 10 complexity | 9fc397866cefebeb69bbe8a4aa19382c MD5 | raw file
Possible License(s): GPL-2.0
  1. # -*- coding: utf-8 -*-
  2. # Copyright (C) 2005, 2006, 2007 2008, 2009, 2010, 2011 by Promotux
  3. # di Francesco Meloni snc - http://www.promotux.it/
  4. # Author: Francesco Meloni <francesco@promotux.it>
  5. # Author: Francesco Marella <francesco.marella@gmail.com>
  6. # This file is part of Promogest.
  7. # Promogest is free software: you can redistribute it and/or modify
  8. # it under the terms of the GNU General Public License as published by
  9. # the Free Software Foundation, either version 2 of the License, or
  10. # (at your option) any later version.
  11. # Promogest is distributed in the hope that it will be useful,
  12. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. # GNU General Public License for more details.
  15. # You should have received a copy of the GNU General Public License
  16. # along with Promogest. If not, see <http://www.gnu.org/licenses/>.
  17. from promogest import Environment
  18. from promogest.ui.utils import *
  19. from promogest.ui.gtk_compat import *
  20. from promogest.modules.PromoWear.ui.PromowearUtils import *
  21. from promogest.modules.PromoWear.dao.ArticoloTagliaColore import ArticoloTagliaColore
  22. from promogest.dao.Articolo import Articolo
  23. def treeViewExpand(gtkgui, treeview, renderer):
  24. """ Expand the normal article treeview """
  25. if posso("PW"):
  26. column = gtk.TreeViewColumn('Gruppo taglia', renderer, text=9, background=1)
  27. column.set_sizing(GTK_COLUMN_GROWN_ONLY)
  28. column.set_clickable(False)
  29. column.connect("clicked", gtkgui._changeOrderBy, (ArticoloTagliaColore, ArticoloTagliaColore.id_gruppo_taglia))
  30. column.set_resizable(True)
  31. column.set_expand(False)
  32. column.set_min_width(100)
  33. treeview.append_column(column)
  34. column = gtk.TreeViewColumn('Modello', renderer, text=10, background=1)
  35. column.set_sizing(GTK_COLUMN_GROWN_ONLY)
  36. column.set_clickable(False)
  37. column.connect("clicked", gtkgui._changeOrderBy, (None, Articolo.denominazione_modello))
  38. column.set_resizable(True)
  39. column.set_expand(False)
  40. column.set_min_width(100)
  41. treeview.append_column(column)
  42. column = gtk.TreeViewColumn('Taglia', renderer, text=11, background=1)
  43. column.set_sizing(GTK_COLUMN_GROWN_ONLY)
  44. column.set_clickable(False)
  45. column.connect("clicked", gtkgui._changeOrderBy, (None,Articolo.denominazione_taglia))
  46. column.set_resizable(True)
  47. column.set_expand(False)
  48. column.set_min_width(100)
  49. treeview.append_column(column)
  50. column = gtk.TreeViewColumn('Colore', renderer, text=12, background=1)
  51. column.set_sizing(GTK_COLUMN_GROWN_ONLY)
  52. column.set_clickable(False)
  53. column.connect("clicked", gtkgui._changeOrderBy, 'denominazione_colore')
  54. column.set_resizable(True)
  55. column.set_expand(False)
  56. column.set_min_width(100)
  57. treeview.append_column(column)
  58. column = gtk.TreeViewColumn('Anno', renderer, text=13, background=1)
  59. column.set_sizing(GTK_COLUMN_GROWN_ONLY)
  60. column.set_clickable(True)
  61. column.connect("clicked", gtkgui._changeOrderBy, 'anno')
  62. column.set_resizable(True)
  63. column.set_expand(False)
  64. column.set_min_width(100)
  65. treeview.append_column(column)
  66. column = gtk.TreeViewColumn('Stagione', renderer, text=14, background=1)
  67. column.set_sizing(GTK_COLUMN_GROWN_ONLY)
  68. column.set_clickable(False)
  69. column.connect("clicked", gtkgui._changeOrderBy, 'stagione')
  70. column.set_resizable(True)
  71. column.set_expand(False)
  72. column.set_min_width(100)
  73. treeview.append_column(column)
  74. column = gtk.TreeViewColumn('Genere', renderer, text=15, background=1)
  75. column.set_sizing(GTK_COLUMN_GROWN_ONLY)
  76. column.set_clickable(False)
  77. column.connect("clicked", gtkgui._changeOrderBy, 'genere')
  78. column.set_resizable(True)
  79. column.set_expand(False)
  80. column.set_min_width(100)
  81. treeview.append_column(column)
  82. gtkgui._treeViewModel = gtk.ListStore(object, str, str, str, str, str, str, str, str, str, str, str, str, str, str, str)
  83. else:
  84. pass
  85. def articleTypeGuiManage(anagrafica, dao, new):
  86. """ complex manage the new aticles type: plus, father son """
  87. gtkgui = anagrafica
  88. if articleType(dao) == "son":
  89. gtkgui.memo_wear.set_text("""ARTICOLO VARIANTE TAGLIA E COLORE""")
  90. # niente possibilita' di variare gruppo taglie, genere, anno e stagione
  91. gtkgui.con_taglie_colori_radiobutton.set_active(True)
  92. gtkgui.con_taglie_colori_radiobutton.set_sensitive(True)
  93. #gtkgui.on_con_taglie_colori_radiobutton_toggled(gtk.RadioButton())
  94. gtkgui.codici_a_barre_togglebutton.set_sensitive(True)
  95. gtkgui.taglie_colori_togglebutton.set_sensitive(False)
  96. gtkgui.varianti_taglia_colore_label.set_sensitive(False)
  97. findComboboxRowFromId(gtkgui.id_gruppo_taglia_customcombobox.combobox, gtkgui.dao.id_gruppo_taglia)
  98. gtkgui.id_gruppo_taglia_customcombobox.set_property('visible', False)
  99. gtkgui.denominazione_gruppo_taglia_label.set_markup(
  100. '<span weight="bold">%s</span>' % (dao.denominazione_gruppo_taglia,))
  101. gtkgui.denominazione_gruppo_taglia_label.set_property('visible', True)
  102. findComboboxRowFromId(gtkgui.id_genere_combobox, dao.id_genere)
  103. gtkgui.id_genere_combobox.set_property('visible', False)
  104. gtkgui.denominazione_genere_label.set_markup(
  105. '<span weight="bold">%s</span>' % (dao.genere,))
  106. gtkgui.denominazione_genere_label.set_property('visible', True)
  107. findComboboxRowFromId(gtkgui.id_modello_customcombobox.combobox, gtkgui.dao.id_modello)
  108. gtkgui.id_modello_customcombobox.set_property('visible', False)
  109. gtkgui.denominazione_modello_label.set_markup(
  110. '<span weight="bold">%s</span>' % (dao.denominazione_modello,))
  111. gtkgui.denominazione_modello_label.set_property('visible', True)
  112. findComboboxRowFromId(gtkgui.id_stagione_combobox, dao.id_stagione)
  113. gtkgui.id_stagione_combobox.set_property('visible', False)
  114. gtkgui.denominazione_stagione_anno_label.set_markup(
  115. '<span weight="bold">%s - %s</span>' % (dao.stagione,dao.anno))
  116. gtkgui.denominazione_stagione_anno_label.set_property('visible', True)
  117. findComboboxRowFromId(gtkgui.id_anno_combobox, dao.id_anno)
  118. gtkgui.id_anno_combobox.set_property('visible', False)
  119. gtkgui.denominazione_stagione_anno_label.set_markup(
  120. '<span weight="bold">%s - %s</span>' % (dao.stagione,dao.anno))
  121. gtkgui.denominazione_stagione_anno_label.set_property('visible', True)
  122. # possibilita' di variare taglia e colore solo nella misura in cui non ci sia gi?  una variante
  123. articoliTagliaColore = dao.articoliTagliaColore
  124. idTaglie = set(a.id_taglia for a in articoliTagliaColore)
  125. idTaglie.remove(dao.id_taglia)
  126. fillComboboxTaglie(gtkgui.id_taglia_customcombobox.combobox,
  127. idGruppoTaglia=dao.id_gruppo_taglia,
  128. ignore=list(idTaglie))
  129. findComboboxRowFromId(gtkgui.id_taglia_customcombobox.combobox,
  130. dao.id_taglia)
  131. gtkgui.id_taglia_customcombobox.combobox.set_property('visible', True)
  132. gtkgui.id_taglia_customcombobox.set_sensitive(True)
  133. gtkgui.denominazione_taglia_label.set_markup('-')
  134. gtkgui.denominazione_taglia_label.set_property('visible', False)
  135. idColori = set(a.id_colore for a in articoliTagliaColore)
  136. idColori.remove(dao.id_colore)
  137. fillComboboxColori(gtkgui.id_colore_customcombobox.combobox, ignore=list(idColori))
  138. findComboboxRowFromId(gtkgui.id_colore_customcombobox.combobox, dao.id_colore)
  139. gtkgui.id_colore_customcombobox.combobox.set_property('visible', True)
  140. gtkgui.id_colore_customcombobox.set_sensitive(True)
  141. gtkgui.denominazione_colore_label.set_markup('-')
  142. gtkgui.denominazione_colore_label.set_property('visible', False)
  143. findComboboxRowFromId(gtkgui.id_colore_customcombobox.combobox, dao.id_colore)
  144. findComboboxRowFromId(gtkgui.id_taglia_customcombobox.combobox, dao.id_taglia)
  145. gtkgui.id_aliquota_iva_customcombobox.set_sensitive(False)
  146. gtkgui.denominazione_entry.set_sensitive(True)
  147. #gtkgui.id_famiglia_articolo_customcombobox.set_sensitive(False)
  148. #gtkgui.id_categoria_articolo_customcombobox.set_sensitive(False)
  149. gtkgui.id_unita_base_combobox.set_sensitive(False)
  150. gtkgui.produttore_comboboxentry.set_sensitive(False)
  151. elif articleType(dao) == "father":
  152. """ Articolo principale in quando id_articolo_padre ?¨ vuoto
  153. possibilita' di inserire gruppo taglia, genere, anno, stagione """
  154. gtkgui.con_taglie_colori_radiobutton.set_sensitive(True)
  155. gtkgui.on_con_taglie_colori_radiobutton_toggled(gtk.RadioButton())
  156. varianti = str(len(dao.articoliTagliaColore))
  157. testo= """ARTICOLO PRINCIPALE CON %s VARIANTI""" %varianti
  158. gtkgui.memo_wear.set_text(testo)
  159. findComboboxRowFromId(gtkgui.id_gruppo_taglia_customcombobox.combobox, dao.id_gruppo_taglia)
  160. findComboboxRowFromId(gtkgui.id_genere_combobox, dao.id_genere)
  161. gtkgui.id_genere_combobox.set_property('visible', True)
  162. findComboboxRowFromId(gtkgui.id_modello_customcombobox.combobox, dao.id_modello)
  163. gtkgui.id_modello_customcombobox.set_property('visible', True)
  164. findComboboxRowFromId(gtkgui.id_stagione_combobox, dao.id_stagione)
  165. gtkgui.id_stagione_combobox.set_property('visible', True)
  166. findComboboxRowFromId(gtkgui.id_anno_combobox, dao.id_anno)
  167. gtkgui.id_anno_combobox.set_property('visible', True)
  168. gtkgui.id_taglia_customcombobox.combobox.set_active(-1)
  169. gtkgui.id_colore_customcombobox.combobox.set_active(-1)
  170. gtkgui.denominazione_genere_label.set_property('visible', False)
  171. gtkgui.denominazione_taglia_label.set_property('visible', False)
  172. gtkgui.denominazione_colore_label.set_property('visible', False)
  173. gtkgui.denominazione_modello_label.set_property('visible', False)
  174. gtkgui.denominazione_gruppo_taglia_label.set_property('visible', False)
  175. gtkgui.denominazione_stagione_anno_label.set_property('visible', False)
  176. gtkgui.produttore_comboboxentry.set_sensitive(True)
  177. elif articleType(dao) == "normal":
  178. gtkgui.normale_radiobutton.set_sensitive(True)
  179. gtkgui.on_normale_radiobutton_toggled(gtk.RadioButton())
  180. gtkgui.id_anno_combobox.set_active(-1)
  181. gtkgui.id_genere_combobox.set_active(-1)
  182. gtkgui.id_modello_customcombobox.combobox.set_active(-1)
  183. gtkgui.id_stagione_combobox.set_active(-1)
  184. gtkgui.id_gruppo_taglia_customcombobox.combobox.set_active(-1)
  185. gtkgui.id_taglia_customcombobox.combobox.set_active(-1)
  186. gtkgui.id_colore_customcombobox.combobox.set_active(-1)
  187. gtkgui.denominazione_genere_label.set_property('visible', False)
  188. gtkgui.denominazione_taglia_label.set_property('visible', False)
  189. gtkgui.denominazione_colore_label.set_property('visible', False)
  190. gtkgui.denominazione_modello_label.set_property('visible', False)
  191. gtkgui.denominazione_gruppo_taglia_label.set_property('visible', False)
  192. gtkgui.denominazione_stagione_anno_label.set_property('visible', False)
  193. gtkgui.memo_wear.set_text("""ARTICOLO NORMALE""")
  194. print "ARTICOLO SEMPLICE"
  195. elif articleType(dao) == "plus":
  196. gtkgui.frame_promowear.set_sensitive(True)
  197. gtkgui.plus_radiobutton.set_sensitive(True)
  198. gtkgui.on_plus_radiobutton_toggled(gtk.RadioButton())
  199. findComboboxRowFromId(gtkgui.id_colore_customcombobox.combobox, dao.id_colore)
  200. findComboboxRowFromId(gtkgui.id_taglia_customcombobox.combobox, dao.id_taglia)
  201. findComboboxRowFromId(gtkgui.id_modello_customcombobox.combobox, dao.id_modello)
  202. findComboboxRowFromId(gtkgui.id_anno_combobox,dao.id_anno)
  203. findComboboxRowFromId(gtkgui.id_stagione_combobox,dao.id_stagione)
  204. findComboboxRowFromId(gtkgui.id_genere_combobox,dao.id_genere)
  205. findComboboxRowFromId(gtkgui.id_gruppo_taglia_customcombobox.combobox,dao.id_gruppo_taglia)
  206. #gtkgui.denominazione_genere_label.set_markup('-')
  207. gtkgui.denominazione_genere_label.set_property('visible', False)
  208. gtkgui.denominazione_taglia_label.set_property('visible', False)
  209. gtkgui.denominazione_modello_label.set_property('visible', False)
  210. gtkgui.denominazione_colore_label.set_property('visible', False)
  211. gtkgui.denominazione_gruppo_taglia_label.set_property('visible', False)
  212. gtkgui.denominazione_stagione_anno_label.set_property('visible', False)
  213. gtkgui.memo_wear.set_text("""ARTICOLO PLUS""")
  214. print "ARTICOLO PLUS"
  215. elif articleType(dao) == "new":
  216. gtkgui.normale_radiobutton.set_sensitive(True)
  217. gtkgui.on_normale_radiobutton_toggled(gtk.RadioButton())
  218. gtkgui.id_anno_combobox.set_active(-1)
  219. gtkgui.id_genere_combobox.set_active(-1)
  220. gtkgui.id_stagione_combobox.set_active(-1)
  221. gtkgui.id_gruppo_taglia_customcombobox.combobox.set_active(-1)
  222. gtkgui.id_taglia_customcombobox.combobox.set_active(-1)
  223. gtkgui.id_modello_customcombobox.combobox.set_active(-1)
  224. gtkgui.id_colore_customcombobox.combobox.set_active(-1)
  225. gtkgui.denominazione_genere_label.set_property('visible', False)
  226. gtkgui.denominazione_taglia_label.set_property('visible', False)
  227. gtkgui.denominazione_modello_label.set_property('visible', False)
  228. gtkgui.denominazione_colore_label.set_property('visible', False)
  229. gtkgui.denominazione_gruppo_taglia_label.set_property('visible', False)
  230. gtkgui.denominazione_stagione_anno_label.set_property('visible', False)
  231. gtkgui.memo_wear.set_text("""ARTICOLO NUOVO""")
  232. print "ARTICOLO NEW"
  233. else:
  234. messageError(msg="ATTENZIONE LA TIPOLOGIA DI ARTICOLO NON E' CONTEMPLATA",
  235. transient=None)
  236. return
  237. def clear(anaarti):
  238. fillComboboxGruppiTaglia(anaarti.id_gruppo_taglia_articolo_filter_combobox, True)
  239. fillComboboxTaglie(anaarti.id_taglia_articolo_filter_combobox, True)
  240. fillComboboxColori(anaarti.id_colore_articolo_filter_combobox, True)
  241. fillComboboxModelli(anaarti.id_modello_filter_combobox, True)
  242. fillComboboxAnniAbbigliamento(anaarti.id_anno_articolo_filter_combobox, True)
  243. fillComboboxStagioniAbbigliamento(anaarti.id_stagione_articolo_filter_combobox, True)
  244. fillComboboxGeneriAbbigliamento(anaarti.id_genere_articolo_filter_combobox, True)
  245. anaarti.id_modello_filter_combobox.set_active(0)
  246. anaarti.id_categoria_articolo_filter_combobox.set_active(0)
  247. anaarti.id_gruppo_taglia_articolo_filter_combobox.set_active(0)
  248. anaarti.id_taglia_articolo_filter_combobox.set_active(0)
  249. anaarti.id_colore_articolo_filter_combobox.set_active(0)
  250. #gestione anno abbigliamento con prelievo del dato di default dal configure
  251. anaarti.id_anno_articolo_filter_combobox.set_active(0)
  252. anno = getattr(Environment.conf.PromoWear,'anno_default', None)
  253. if anno is not None:
  254. try:
  255. idAnno = AnnoAbbigliamento().select(denominazione = anno)[0].id
  256. findComboboxRowFromId(anaarti.id_anno_articolo_filter_combobox, idAnno)
  257. except:
  258. pass
  259. #gestione stagione abbigliamento con prelievo del dato di default dal configure ( nb da usare l'id)
  260. anaarti.id_stagione_articolo_filter_combobox.set_active(0)
  261. stagione = getattr(Environment.conf.PromoWear,'stagione_default', 0)
  262. if stagione:
  263. findComboboxRowFromId(anaarti.id_stagione_articolo_filter_combobox, int(stagione))
  264. anaarti.id_genere_articolo_filter_combobox.set_active(0)
  265. anaarti.taglie_colori_filter_combobox.set_active(0)
  266. def refresh(anaarti):
  267. padriTagliaColore = ((anaarti.taglie_colori_filter_combobox.get_active() == 0) or
  268. (anaarti.taglie_colori_filter_combobox.get_active() == 1))
  269. if padriTagliaColore:
  270. padriTagliaColore = None
  271. else:
  272. padriTagliaColore = True
  273. figliTagliaColore = ((anaarti.taglie_colori_filter_combobox.get_active() == 0) or
  274. (anaarti.taglie_colori_filter_combobox.get_active() == 2))
  275. if figliTagliaColore:
  276. figliTagliaColore = None
  277. else:
  278. figliTagliaColore = True
  279. idGruppoTaglia = findIdFromCombobox(anaarti.id_gruppo_taglia_articolo_filter_combobox)
  280. idModello = findIdFromCombobox(anaarti.id_modello_filter_combobox)
  281. idTaglia = findIdFromCombobox(anaarti.id_taglia_articolo_filter_combobox)
  282. idColore = findIdFromCombobox(anaarti.id_colore_articolo_filter_combobox)
  283. idAnno = findIdFromCombobox(anaarti.id_anno_articolo_filter_combobox)
  284. idStagione = findIdFromCombobox(anaarti.id_stagione_articolo_filter_combobox)
  285. idGenere = findIdFromCombobox(anaarti.id_genere_articolo_filter_combobox)
  286. anaarti.filterDict.update(idGruppoTaglia=idGruppoTaglia,
  287. idTaglia=idTaglia,
  288. idColore=idColore,
  289. idAnno=idAnno,
  290. idStagione=idStagione,
  291. idGenere=idGenere,
  292. idModello=idModello,
  293. padriTagliaColore=padriTagliaColore,
  294. figliTagliaColore=figliTagliaColore)
  295. def on_taglie_colori_filter_combobox_changed(anaarti, combobox):
  296. selected = anaarti.taglie_colori_filter_combobox.get_active()
  297. if selected == 1:
  298. # solo principali
  299. anaarti.id_taglia_articolo_filter_combo.set_active(0)
  300. anaarti.id_taglia_articolo_filter_combo.set_sensitive(False)
  301. anaarti.id_colore_articolo_filter_combobox.set_active(0)
  302. anaarti.id_colore_articolo_filter_combobox.set_sensitive(False)
  303. else:
  304. anaarti.id_taglia_articolo_filter_combo.set_sensitive(True)
  305. anaarti.id_colore_articolo_filter_combobox.set_sensitive(True)