def __init__(self, aziendaStr, anagrafiche_modules, parametri_modules, anagrafiche_dirette_modules, frame_modules, permanent_frames): GladeWidget.__init__(self, root= 'main_window', path="main_window.glade") welcome_str = _("Benvenuto {0} ({1})!".format(Environment.params['usernameLoggedList'][1], aziendaStr)) welcome_str += "- Avvii:"+str(Environment.avvii) self.welcome_label.set_text(welcome_str) self.aziendaStr = aziendaStr self.statusBarHandler() if Environment.sublo ==True: self.main_window.set_title("SUBLIMA ERP") #self.logina_label.destroy() #self.logo_image.destroy() #for filename in glob.glob(Environment.promogestDir + \ #"temp" + \ #os.sep + \ #'*.cache'): #try: #os.remove(filename) #except: #pass Environment.windowGroup.append(self.getTopLevel()) self.anagrafiche_modules = anagrafiche_modules self.parametri_modules = parametri_modules self.anagrafiche_dirette_modules = anagrafiche_dirette_modules self.frame_modules = frame_modules self.permanent_frames = permanent_frames self.currentFrame = None self.alarmFrame = None self.creata = False if posso("SD"): self.sincro_db.destroy() elif posso("SD") and \ Environment.conf.SincroDB.tipo == "client": self.master_sincro_db.destroy() elif posso("SD") and \ Environment.conf.SincroDB.tipo == "server": self.client_sincro_db.destroy() if "VenditaDettaglio" in Environment.modulesList: self.test_promoshop_button.destroy() if "PromoWear" in Environment.modulesList: self.test_promowear_button.destroy() try: self.addNoteBookPage() except: print " QUALCOSA NELL'AGGIUNTA DEI TAB NON E? ANDATO A BUON FINE" self.updates()
def on_main_iconview_select(self, icon_view, model=None): selected = icon_view.get_selected_items() if len(selected) == 0: return i = selected[0] selection = self.iconview_listore[i][0] if selection == 3: if not hasAction(actionID=2): return from promogest.ui.anagDocumenti.AnagraficaDocumenti import AnagraficaDocumenti anag = AnagraficaDocumenti(aziendaStr=self.aziendaStr) showAnagrafica(self.getTopLevel(), anag, mainClass=self) icon_view.unselect_all() return elif selection == 4: if not hasAction(actionID=15): return from promogest.modules.PrimaNota.ui.AnagraficaPrimaNota import AnagraficaPrimaNota anag = AnagraficaPrimaNota(aziendaStr=self.aziendaStr) showAnagrafica(self.getTopLevel(), anag, mainClass=self) icon_view.unselect_all() return elif selection == 5: if posso("PR"): from promogest.ui.anagPromemoria.AnagraficaPromemoria import AnagraficaPromemoria anag = AnagraficaPromemoria(self.aziendaStr) showAnagrafica(self.getTopLevel(), anag, mainClass=self) icon_view.unselect_all() return else: fencemsg() elif selection == 10: #gestione commessa #if posso("GC"): from promogest.modules.GestioneCommesse.ui.AnagraficaCommesse import AnagraficaCommesse anag = AnagraficaCommesse(aziendaStr=self.aziendaStr) showAnagrafica(self.getTopLevel(), anag, mainClass=self) icon_view.unselect_all() return else: i = selected[0][0] selection = self.iconview_listore[i][0] module = self.iconview_listore[i][3] if self.currentFrame is not None: self.main_hbox.remove(self.currentFrame) self.currentFrame.destroy() self.currentFrame = None if module.VIEW_TYPE[0] == 'anagrafica_diretta': anag = module.getApplication() showAnagrafica(self.getTopLevel(), anag, mainClass=self) icon_view.unselect_all() return elif module.VIEW_TYPE[0] == 'frame': frame = module.getApplication() self.currentFrame = frame.getTopLevel() self.main_notebook.set_current_page(0) self._refresh()
def delete(self): """ Rimuove il cliente """ if hasattr(self, "TD") and len(self.TD) > 0: self.cancellato = True session.add(self) else: if self.id_user: utente = User().getRecord(id=self.id_user) if utente: utente.delete() if posso("IP"): from promogest.modules.InfoPeso.dao.TestataInfoPeso import\ TestataInfoPeso from promogest.modules.InfoPeso.dao.ClienteGeneralita import\ ClienteGeneralita cltip = TestataInfoPeso().select(idCliente=self.id, batchSize=None) if cltip: for l in cltip: l.delete() clcg = ClienteGeneralita().select(idCliente=self.id, batchSize=None) if clcg: for l in clcg: l.delete() session.delete(self) session.commit()
def delete(self): # se l'articolo e' presente tra le righe di un movimento o documento # si esegue la cancellazione logica from promogest.dao.ListinoArticolo import ListinoArticolo from promogest.dao.Inventario import Inventario from Riga import Riga res = Riga().select(id_articolo=self.id) inv = Inventario().select(idArticolo=self.id) sc = None if posso("VD"): from promogest.modules.VenditaDettaglio.dao.RigaScontrino \ import RigaScontrino sc = RigaScontrino().select(idArticolo=self.id) if res or inv: daoArticolo = Articolo().getRecord(id=self.id) daoArticolo.cancellato = True session.add(daoArticolo) elif sc: daoArticolo = Articolo().getRecord(id=self.id) daoArticolo.cancellato = True session.add(daoArticolo) else: if posso("PW") or modulo_sublima_pw: atc = ArticoloTagliaColore().getRecord(id=self.id) if atc: atc.delete() if posso('ADR'): if self.APADR: session.delete(self.APADR) session.delete(self) la = ListinoArticolo().select(idArticolo=self.id) if la: for l in la: l.delete() if posso("GN"): from promogest.modules.GestioneNoleggio.dao.\ ArticoloGestioneNoleggio import ArticoloGestioneNoleggio artGN = ArticoloGestioneNoleggio().select(idArticolo=self.id) if artGN: session.delete(artGN[0]) session.commit() try: pg2log.info("DELETE ARTICOLO") except: pass
def updates(self): """ Aggiornamenti e controlli da fare all'avvio del programma TODO: it needs some work and maybe threads """ return from promogest.dao.Promemoria import updateScadenzePromemoria if posso("PR"): glib.timeout_add_seconds(20, updateScadenzePromemoria)
def on_ruoli_azioni_button_toggled(self, toggleButton): if toggleButton.get_property('active') is False: return if not hasAction(actionID=6): toggleButton.set_active(False) return if posso("RA"): from promogest.modules.RuoliAzioni.ui.ManageRoleAction import ManageRuoloAzioni anag = ManageRuoloAzioni() showAnagrafica(self.getTopLevel(), anag, toggleButton, mainClass=self) else: fencemsg() toggleButton.set_property('active', False)
def on_agenti_button_clicked(self, toggleButton): if toggleButton.get_property('active') is False: return if not hasAction(actionID=6): toggleButton.set_active(False) return if posso("AG"): from promogest.ui.anagAgenti.AnagraficaAgenti import AnagraficaAgenti anag = AnagraficaAgenti(aziendaStr=self.aziendaStr) showAnagrafica(self.getTopLevel(), anag, toggleButton, mainClass=self) else: fencemsg() toggleButton.set_active(False)
def fillComboboxMultipli(combobox, idArticolo=None, noSottoMultipli=False, filter=False): """ Crea l'elenco dei multipli """ model = gtk.ListStore(object, int, str, float) # multipli legati all'articolo muls = Multiplo().select(denominazione=None, idArticolo=idArticolo, idUnitaBase=None, orderBy = None, offset = None, batchSize = None) if not filter: emptyRow = '' else: emptyRow = '< Tutti >' model.append((None, 0, emptyRow, 0)) if noSottoMultipli: muls = [ item for item in muls if item.moltiplicatore > 1 ] for m in muls: model.append((m, m.id, m.denominazione, m.moltiplicatore)) if posso("PW"): try: articolo = ArticoloTagliaColore().getRecord(id=idArticolo) if articolo.id_articolo_padre is not None: # multipli legati all'articolo padre muls = Multiplo().select(denominazione=None, idArticolo=articolo.id_articolo_padre, idUnitaBase=None, orderBy = None, offset = None, batchSize = None) if noSottoMultipli: muls = [ item for item in muls if item.moltiplicatore > 1 ] for m in muls: model.append((m, m.id, '<' + m.denominazione + '>', m.moltiplicatore)) except: pass combobox.clear() renderer = gtk.CellRendererText() combobox.pack_start(renderer, True) combobox.add_attribute(renderer, 'text', 2) combobox.set_model(model)
def leggiListino(idListino, idArticolo=None): """ Restituisce un dizionario con le informazioni sul listino letto """ _denominazione = '' _prezzoIngrosso = 0 _prezzoDettaglio = 0 if idListino is not None: try: daoListino = Listino().getRecord(id=idListino) if daoListino is not None: _denominazione = daoListino.denominazione except: pass try: if idArticolo is not None: daoListinoArticolo = ListinoArticolo().select(idListino=idListino, idArticolo= idArticolo, batchSize=None) if posso("PW"): try: articolo = ArticoloTagliaColore().getRecord(id=idArticolo) idArticoloPadre = articolo.id_articolo_padre if idArticoloPadre is not None: try: daoListinoArticolo = ListinoArticolo(idListino=idListino, idArticolo= idArticoloPadre, batchSize=None) except Exception: daoListinoArticolo = None except: pass if daoListinoArticolo is not None: _prezzoIngrosso = daoListinoArticolo.prezzo_ingrosso _prezzoDettaglio = daoListinoArticolo.prezzo_dettaglio except: pass return {"denominazione": _denominazione, "prezzoIngrosso": _prezzoIngrosso, "prezzoDettaglio": _prezzoDettaglio}
def fillComboboxListiniFiltrati(combobox, idArticolo=None, idMagazzino=None, idCliente=None, filter=False): """ Crea l'elenco dei listini """ model = gtk.ListStore(object, int, str) liss = Environment.connection.execStoredProcedure('ListinoCandidateSel', (None, idArticolo, idMagazzino, idCliente)) if not filter: emptyRow = '' else: emptyRow = '< Tutti >' model.append((None, 0, emptyRow)) for l in liss: model.append((l, l['id'], (l['denominazione'] or '')[0:20])) if posso("PW") and Environment.conf.PromoWear.taglia_colore=="yes": try: articolo = ArticoloTagliaColore(Environment.connection, idArticolo) if articolo is not None: if articolo.id_articolo_padre is not None: # listini legati all'articolo padre liss = Environment.connection.execStoredProcedure('ListinoCandidateSel', (None, articolo.id_articolo_padre, idMagazzino, idCliente)) for l in liss: model.append((l, l['id'], '<' + (l['denominazione'] or '')[0:20] + '>')) except: pass combobox.clear() renderer = gtk.CellRendererText() combobox.pack_start(renderer, True) combobox.add_attribute(renderer, 'text', 2) combobox.set_model(model)
def addTabs(self): self.documenti_setup_page = AnagraficaDocumentiSetup(self) self.setup_notebook.append_page(self.documenti_setup_page._anagrafica_documenti_setup_frame, self.documenti_setup_page.documenti_setup_page_label) self.articoli_setup_page = AnagraficaArticoliSetup(self) self.setup_notebook.append_page(self.articoli_setup_page._anagrafica_articoli_setup_frame, self.articoli_setup_page.articoli_setup_page_label) self.clienti_setup_page = AnagraficaClientiSetup(self) self.setup_notebook.append_page(self.clienti_setup_page._anagrafica_clienti_setup_frame, self.clienti_setup_page.clienti_setup_page_label) self.fornitori_setup_page = AnagraficaFornitoriSetup(self) self.setup_notebook.append_page(self.fornitori_setup_page._anagrafica_fornitori_setup_frame, self.fornitori_setup_page.fornitori_setup_page_label) self.primanota_setup_page = AnagraficaPrimaNotaSetup(self) self.setup_notebook.append_page(self.primanota_setup_page._anagrafica_primanota_setup_frame, self.primanota_setup_page.primanota_setup_page_label) self.label_setup_page = AnagraficaLabelSetup(self) self.setup_notebook.append_page(self.label_setup_page._anagrafica_label_setup_frame, self.label_setup_page.label_setup_page_label) if posso("VD"): from promogest.modules.VenditaDettaglio.ui.AnagraficaVenditadettaglioSetup import VenditadettaglioSetup self.vendita_dettaglio_setup_page = VenditadettaglioSetup(self) self.setup_notebook.append_page(self.vendita_dettaglio_setup_page._vendita_dettaglio_setup_frame, self.vendita_dettaglio_setup_page.venditadettaglio_setup_page_label) self._refresh()
from promogest.ui.ConfiguraWindow import ConfiguraWindow from promogest.ui.PanUi import PanUi, checkPan #from promogest.ui.AzioniVelociNotebookPage import AzioniVelociNotebookPage from promogest.ui.NewsNotebookPage import NewsNotebookPage from promogest.ui.CalendarNotebookPage import CalendarNotebookPage from promogest.ui.NotificaAllarmiNotebookPage import NotificaAllarmiNotebookPage from promogest.ui.ScadenzarioNotebookPage import ScadenzarioNotebookPage #inizializzano il customwidget from promogest.ui.widgets.ArticoloSearchWidget import ArticoloSearchWidget from promogest.ui.widgets.ClienteSearchWidget import ClienteSearchWidget from promogest.ui.widgets.FornitoreSearchWidget import FornitoreSearchWidget from promogest.ui.widgets.PersonaGiuridicaSearchWidget import PersonaGiuridicaSearchWidget from promogest.ui.UpdateDialog import UpdateDialog if posso("GN"): from promogest.modules.GestioneNoleggio.dao.TestataGestioneNoleggio \ import TestataGestioneNoleggio # from xhtml2pdf import pisa from promogest.dao.Setconf import SetConf class Main(GladeWidget): def __init__(self, aziendaStr, anagrafiche_modules, parametri_modules, anagrafiche_dirette_modules, frame_modules, permanent_frames): GladeWidget.__init__(self, root= 'main_window', path="main_window.glade") welcome_str = _("Benvenuto {0} ({1})!".format(Environment.params['usernameLoggedList'][1], aziendaStr)) welcome_str += "- Avvii:"+str(Environment.avvii)
from promogest.modules.GestioneKit.dao.ArticoloKit import ArticoloKit from promogest.dao.Imballaggio import Imballaggio from promogest.dao.AliquotaIva import AliquotaIva from promogest.dao.StatoArticolo import StatoArticolo #from Immagine import Immagine from promogest.dao.FamigliaArticolo import FamigliaArticolo from promogest.dao.CategoriaArticolo import CategoriaArticolo from promogest.dao.CodiceABarreArticolo import CodiceABarreArticolo from promogest.dao.Fornitura import Fornitura from promogest.dao.ScontoVenditaDettaglio import ScontoVenditaDettaglio from promogest.dao.ScontoVenditaIngrosso import ScontoVenditaIngrosso if (hasattr(conf, "PromoWear") and \ getattr(conf.PromoWear, 'mod_enable') == "yes") or posso("PW"): from promogest.modules.PromoWear.dao.Colore import Colore from promogest.modules.PromoWear.dao.Taglia import Taglia from promogest.modules.PromoWear.dao.ArticoloTagliaColore \ import ArticoloTagliaColore from promogest.modules.PromoWear.dao.AnnoAbbigliamento \ import AnnoAbbigliamento from promogest.modules.PromoWear.dao.GruppoTaglia import GruppoTaglia from promogest.modules.PromoWear.dao.StagioneAbbigliamento \ import StagioneAbbigliamento from promogest.modules.PromoWear.dao.GenereAbbigliamento \ import GenereAbbigliamento class Articolo(Base, Dao): try: __table__ = Table('articolo', params["metadata"],
def leggiArticoloPromoWear(id, full=False): # restituisce un dizionario con le informazioni sull'articolo letto articleDict = {} _id = None _denominazione = '' _codice = '' _denominazioneBreveAliquotaIva = '' _percentualeAliquotaIva = 0 _idAliquotaIva = None _idUnitaBase = None _unitaBase = '' _idGruppoTaglia = None _gruppoTaglia = '' _idTaglia = None _ordine = 1 _taglia = '' _idColore = None _colore = '' _idAnno = None _anno = '' _idStagione = None _stagione = '' _idGenere = None _genere = '' _quantita_minima = "" def numero_ordine(_idTaglia, _idGruppoTaglia): if _idGruppoTaglia and _idTaglia: gtt = GruppoTagliaTaglia().select(idGruppoTaglia = _idGruppoTaglia, idTaglia= _idTaglia) if gtt: return gtt[0].ordine else: return 1 if id is not None: daoArticolo = Articolo().getRecord(id=id) if daoArticolo is not None: _id = id _denominazione = daoArticolo.denominazione or '' _codice = daoArticolo.codice or '' _idUnitaBase = daoArticolo.id_unita_base if _idUnitaBase is not None: res = UnitaBase().select(batchSize=None) if res is not None: _unitaBase = res[0].denominazione if daoArticolo.id_aliquota_iva is not None: daoAliquotaIva = AliquotaIva().getRecord(id=daoArticolo.id_aliquota_iva) if daoAliquotaIva is not None: _denominazioneBreveAliquotaIva = daoAliquotaIva.denominazione_breve or '' _percentualeAliquotaIva = daoAliquotaIva.percentuale or 0 _idAliquotaIva = daoAliquotaIva.id or None if posso("PW"): daoArticoloTagliaColore = daoArticolo if daoArticoloTagliaColore is not None: _idGruppoTaglia = daoArticoloTagliaColore.id_gruppo_taglia _gruppoTaglia = daoArticoloTagliaColore.denominazione_gruppo_taglia or '-' _idTaglia = daoArticoloTagliaColore.id_taglia _taglia = daoArticoloTagliaColore.denominazione_taglia or '-' _idColore = daoArticoloTagliaColore.id_colore _colore = daoArticoloTagliaColore.denominazione_colore or '-' _ordine = numero_ordine(_idTaglia, _idGruppoTaglia) _idAnno = daoArticoloTagliaColore.id_anno _anno = daoArticoloTagliaColore.anno or '-' _idStagione = daoArticoloTagliaColore.id_stagione _stagione = daoArticoloTagliaColore.stagione or '-' _idGenere = daoArticoloTagliaColore.id_genere _genere = daoArticoloTagliaColore.genere or '-' try: _quantita_minima = daoArticolo.quantita_minima except: _quantita_minima = "" articleDict= {"id": _id, "denominazione": _denominazione, "codice": _codice, "denominazioneBreveAliquotaIva": _denominazioneBreveAliquotaIva, "percentualeAliquotaIva": _percentualeAliquotaIva, "idAliquotaIva":_idAliquotaIva, "idUnitaBase": _idUnitaBase, "unitaBase": _unitaBase, "idGruppoTaglia": _idGruppoTaglia, "gruppoTaglia": _gruppoTaglia, "idTaglia": _idTaglia, "ordine":_ordine, "taglia": _taglia, "idColore": _idColore, "colore": _colore, "idAnno": _idAnno, "anno": _anno, "idStagione": _idStagione, "stagione": _stagione, "idGenere": _idGenere, "genere": _genere, "quantita_minima": _quantita_minima, "daoArticolo":daoArticolo} return articleDict
def _refresh(self): try: self.zeri_in_riga_check.set_active(int(setconf("Stampa", "zeri_in_riga"))) except: self.zeri_in_riga_check.set_active(0) try: self.zeri_in_totali_check.set_active(int(setconf("Stampa", "zeri_in_totali"))) except: self.zeri_in_totali_check.set_active(0) try: self.feed_check.set_active(int(setconf("Feed", "feed"))) except: self.feed_check.set_active(1) try: findComboboxRowFromId(self.timer_combobox, str(setconf("General", "updates_timeout"))) except: findComboboxRowFromId(self.timer_combobox, '300') try: curr = setconf("Valuta", "valuta_curr") if curr =="€": self.euro_radio.set_active(1) elif curr =="$": self.dollaro_radio.set_active(1) elif curr =="£": self.sterlina_radio.set_active(1) elif curr =="CHF": self.francosvizzero_radio.set_active(1) except: self.euro_radio.set_active(1) try: self.mercatino_check.set_active(int(setconf("General", "gestione_totali_mercatino"))) except: self.mercatino_check.set_active(0) try: self.gestione_lotti_check.set_active(int(setconf("General", "gestione_lotti"))) except: self.gestione_lotti_check.set_active(0) try: self.vettore_codice_upper_check.set_active(int(setconf("Vettori", "vettore_codice_upper"))) except: self.vettore_codice_upper_check.set_active(1) self.vettore_struttura_codice_entry.set_text(str(setconf("Vettori", "vettore_struttura_codice"))) self.altezza_logo_entry.set_text(str(setconf("Documenti", "altezza_logo"))) self.larghezza_logo_entry.set_text(str(setconf("Documenti", "larghezza_logo"))) self.combo_column_entry.set_text(str(setconf("Numbers", "combo_column"))) self.decimals_entry.set_text(str(setconf("Numbers","decimals"))) self.separatore_entry.set_text(str(setconf("Documenti","separatore_numerazione") or "")) self.batch_size_entry.set_text(str(setconf("Numbers","batch_size"))) self.documenti_setup_page._refresh() self.articoli_setup_page._refresh() self.clienti_setup_page._refresh() self.fornitori_setup_page._refresh() self.primanota_setup_page._refresh() self.label_setup_page._refresh() if posso("VD"): self.vendita_dettaglio_setup_page._refresh()
from sqlalchemy import * from sqlalchemy.orm import * from promogest.Environment import * from promogest.dao.Dao import Dao, Base from promogest.dao.Articolo import Articolo from promogest.dao.Magazzino import Magazzino from promogest.dao.Fornitura import Fornitura from promogest.dao.Riga import Riga from promogest.dao.CodiceABarreArticolo import CodiceABarreArticolo from promogest.dao.DaoUtils import giacenzaDettaglio, giacenzaArticolo from promogest.lib.utils import posso if posso("PW"): from promogest.modules.PromoWear.dao.ArticoloTagliaColore import \ ArticoloTagliaColore class Stoccaggio(Base, Dao): """ User class provides to make a Users dao which include more used""" try: __table__ = Table('stoccaggio', params['metadata'], schema=params['schema'], autoload=True) except: from data.stoccaggio import t_stoccaggio __table__ = t_stoccaggio arti = relationship(Articolo,primaryjoin=__table__.c.id_articolo == Articolo.__table__.c.id, backref="stoccaggio") maga = relationship("Magazzino",backref="stoccaggio")
from promogest.dao.CategoriaArticolo import CategoriaArticolo from promogest.dao.CodiceABarreArticolo import CodiceABarreArticolo from promogest.dao.Fornitura import Fornitura from promogest.dao.ScontoVenditaDettaglio import ScontoVenditaDettaglio from promogest.dao.ScontoVenditaIngrosso import ScontoVenditaIngrosso # from promogest.dao.FileArticolo import FileArticolo modulo_sublima_pw = False try: from web_lib.webutils import * modulo_sublima_pw = hasModule("PW") except: pass if (hasattr(conf, "PromoWear") and \ getattr(conf.PromoWear, 'mod_enable') == "yes") or posso("PW") or modulo_sublima_pw: from promogest.modules.PromoWear.dao.Colore import Colore from promogest.modules.PromoWear.dao.Taglia import Taglia from promogest.modules.PromoWear.dao.ArticoloTagliaColore \ import ArticoloTagliaColore from promogest.modules.PromoWear.dao.AnnoAbbigliamento \ import AnnoAbbigliamento from promogest.modules.PromoWear.dao.GruppoTaglia import GruppoTaglia from promogest.modules.PromoWear.dao.StagioneAbbigliamento \ import StagioneAbbigliamento from promogest.modules.PromoWear.dao.GenereAbbigliamento \ import GenereAbbigliamento class Articolo(Base, Dao): try: __table__ = Table('articolo', params["metadata"],
def filter_values(self,k,v): if k == 'denominazione': dic= {k :t_inventario.c.anno == v} elif k == 'idMagazzino': dic = {k:t_inventario.c.id_magazzino == v} elif k == 'idArticolo': dic = {k:t_inventario.c.id_articolo == v} elif k == 'anno': dic = {k:t_inventario.c.anno == v} elif k == 'daDataAggiornamento': dic = {k:t_inventario.c.data_aggiornamento >= v} elif k == 'aDataAggiornamento': dic = {k:t_inventario.c.data_aggiornamento <= v} elif k == 'qa_zero': dic = {k:t_inventario.c.quantita == 0} elif k == 'quantita': dic = {k:t_inventario.c.quantita > 0} elif k == 'qa_negativa': dic = {k:t_inventario.c.quantita < 0} elif k == 'val_negativo': dic = {k:t_inventario.c.valore_unitario == None} elif k == 'inventariato': dic = {k:t_inventario.c.quantita >= 1} elif k == 'articolo': dic = {k:and_(t_inventario.c.id_articolo==Articolo.id, Articolo.denominazione.ilike("%"+v+"%"))} elif k == 'codice': dic = {k:and_(t_inventario.c.id_articolo==Articolo.id,Articolo.codice.ilike("%"+v+"%"))} elif k == 'codiceABarre': dic = {k:and_(t_inventario.c.id_articolo==Articolo.id,Articolo.id==CodiceABarreArticolo.id_articolo,CodiceABarreArticolo.codice.ilike("%"+v+"%"))} elif k == 'produttore': dic = {k:and_(t_inventario.c.id_articolo==Articolo.id,Articolo.produttore.ilike("%"+v+"%"))} elif k== 'codiceArticoloFornitoreEM': dic = {k:and_(t_inventario.c.id_articolo==Articolo.id,Articolo.id==Fornitura.id_articolo,Fornitura.codice_articolo_fornitore == v)} elif k=='idFamiglia': dic = {k:and_(t_inventario.c.id_articolo==Articolo.id,Articolo.id_famiglia_articolo ==v)} elif k == 'idCategoria': dic = {k:and_(t_inventario.c.id_articolo==Articolo.id,Articolo.id_categoria_articolo ==v)} elif k == 'idStato': dic= {k:and_(t_inventario.c.id_articolo==Articolo.id,Articolo.id_stato_articolo == v)} elif k == 'cancellato': dic = {k:or_(and_(t_inventario.c.id_articolo==Articolo.id,Articolo.cancellato != v))} elif posso("PW"): if k == 'figliTagliaColore': dic = {k:and_(t_inventario.c.id_articolo==Articolo.id,Articolo.id==ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_articolo_padre==None)} elif k == 'idTaglia': dic = {k:and_(t_inventario.c.id_articolo==Articolo.id,Articolo.id==ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_taglia==v)} elif k == 'idModello': dic = {k:and_(t_inventario.c.id_articolo==Articolo.id,Articolo.id==ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_modello==v)} elif k == 'idGruppoTaglia': dic = {k:and_(t_inventario.c.id_articolo==Articolo.id,Articolo.id==ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_gruppo_taglia ==v)} elif k == 'padriTagliaColore': dic = {k:and_(t_inventario.c.id_articolo==Articolo.id,Articolo.id==ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_articolo_padre!=None)} elif k == 'idColore': dic = {k:and_(t_inventario.c.id_articolo==Articolo.id,Articolo.id==ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_colore ==v)} elif k == 'idStagione': dic = {k:and_(t_inventario.c.id_articolo==Articolo.id,Articolo.id==ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_stagione ==v)} elif k == 'idAnno': dic = {k:and_(t_inventario.c.id_articolo==Articolo.id,Articolo.id==ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_anno == v)} elif k == 'idGenere': dic = {k:and_(t_inventario.c.id_articolo==Articolo.id,Articolo.id==ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_genere ==v)} return dic[k]
def filter_values(self, k, v): if k == 'idArticolo': dic = {k: Stoccaggio.__table__.c.id_articolo == v} elif k == "idArticoloList": dic = {k: Stoccaggio.__table__.c.id_articolo.in_(v)} elif k == 'idMagazzino': dic = {k: Stoccaggio.__table__.c.id_magazzino == v} elif k == 'articolo': dic = {k: and_(Stoccaggio.__table__.c.id_articolo == Articolo.id, Articolo.denominazione.ilike("%" + v + "%"))} elif k == 'codice': dic = {k: and_(Stoccaggio.__table__.c.id_articolo == Articolo.id, Articolo.codice.ilike("%" + v + "%"))} elif k == 'codiceABarre': dic = {k: and_(Stoccaggio.__table__.c.id_articolo == Articolo.id, Articolo.id == CodiceABarreArticolo.id_articolo, CodiceABarreArticolo.codice.ilike("%" + v + "%"))} elif k == 'produttore': dic = {k: and_(Stoccaggio.__table__.c.id_articolo == Articolo.id, Articolo.produttore.ilike("%" + v + "%"))} elif k == 'codiceArticoloFornitoreEM': dic = {k: and_(Stoccaggio.__table__.c.id_articolo == Articolo.id, Articolo.id == Fornitura.id_articolo, Fornitura.codice_articolo_fornitore == v)} elif k == 'codiceArticoloFornitore': dic = {k: and_(Stoccaggio.__table__.c.id_articolo == Articolo.id, Articolo.id == Fornitura.id_articolo, Fornitura.codice_articolo_fornitore.ilike("%" + v + "%"))} elif k == 'idFamiglia': dic = {k: and_(Stoccaggio.__table__.c.id_articolo == Articolo.id, Articolo.id_famiglia_articolo == v)} elif k == 'idCategoria': dic = {k: and_(Stoccaggio.__table__.c.id_articolo == Articolo.id, Articolo.id_categoria_articolo == v)} elif k == 'idStato': dic = {k: and_(Stoccaggio.__table__.c.id_articolo == Articolo.id, Articolo.id_stato_articolo == v)} elif k == 'cancellato': dic = {k: or_(and_(Stoccaggio.__table__.c.id_articolo == Articolo.id, Articolo.cancellato != v))} elif posso("PW"): if k == 'figliTagliaColore': dic = {k: and_(Stoccaggio.__table__.c.id_articolo == Articolo.id, Articolo.id == ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_articolo_padre == None)} elif k == 'idTaglia': dic = {k: and_(Stoccaggio.__table__.c.id_articolo == Articolo.id, Articolo.id == ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_taglia == v)} elif k == 'idModello': dic = {k: and_(Stoccaggio.__table__.c.id_articolo == Articolo.id, Articolo.id == ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_modello == v)} elif k == 'idGruppoTaglia': dic = {k: and_(Stoccaggio.__table__.c.id_articolo == Articolo.id, Articolo.id == ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_gruppo_taglia == v)} elif k == 'padriTagliaColore': dic = {k: and_(Stoccaggio.__table__.c.id_articolo == Articolo.id, Articolo.id == ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_articolo_padre != None)} elif k == 'idColore': dic = {k: and_(Stoccaggio.__table__.c.id_articolo == Articolo.id, Articolo.id == ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_colore == v)} elif k == 'idStagione': dic = {k: and_(Stoccaggio.__table__.c.id_articolo == Articolo.id, Articolo.id == ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_stagione == v)} elif k == 'idAnno': dic = {k: and_(Stoccaggio.__table__.c.id_articolo == Articolo.id, Articolo.id == ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_anno == v)} elif k == 'idGenere': dic = {k: and_(Stoccaggio.__table__.c.id_articolo == Articolo.id, Articolo.id == ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_genere == v)} return dic[k]
def on_client_sincro_db_activate(self, widget): if posso("SD") and Environment.conf.SincroDB.tipo == "client": from promogest.modules.SincroDB.ui.SincroDB import SincroDB anag = SincroDB() showAnagrafica(self.getTopLevel(), anag)
def filter_values(self, k, v): if k == "codice": dic = {k: t_articolo.c.codice.ilike("%" + v + "%")} elif k == "codicesatto" or k == "codiceEM": dic = {k: t_articolo.c.codice == v} elif k == 'denominazione': dic = {k: t_articolo.c.denominazione.ilike("%" + v + "%")} elif k == 'codiceABarre': dic = {k: and_(t_articolo.c.id == CodiceABarreArticolo.id_articolo, CodiceABarreArticolo.codice.ilike("%" + v + "%"))} elif k == 'codiceABarreEM': dic = {k: and_(t_articolo.c.id == CodiceABarreArticolo.id_articolo, CodiceABarreArticolo.codice == v)} elif k == 'codiceArticoloFornitore': dic = {k: and_(t_articolo.c.id == t_fornitura.c.id_articolo, t_fornitura.c.codice_articolo_fornitore.ilike("%" + v + "%"))} elif k == 'codiceArticoloFornitoreEM': dic = {k: and_(t_articolo.c.id == t_fornitura.c.id_articolo, t_fornitura.c.codice_articolo_fornitore == v)} elif k == 'produttore': dic = {k: t_articolo.c.produttore.ilike("%" + v + "%")} elif k == 'produttoreEM': dic = {k: t_articolo.c.produttore == v} elif k == 'idFamiglia': dic = {k: t_articolo.c.id_famiglia_articolo == v} elif k == 'idAliquotaIva': dic = {k: t_articolo.c.id_aliquota_iva == v} elif k == 'idCategoria': dic = {k: t_articolo.c.id_categoria_articolo == v} elif k == 'idCategoriaList': dic = {k: t_articolo.c.id_categoria_articolo.in_(v)} elif k == 'idStato': dic = {k: t_articolo.c.id_stato_articolo == v} elif k == 'cancellato': #if v is not True: dic = {k: or_(t_articolo.c.cancellato != v)} #else: #dic = {k:None} elif k == 'idArticolo': dic = {k: or_(t_articolo.c.id == v)} elif k == 'omni': dic = {k: or_(t_articolo.c.codice.ilike("%" + v + "%"),t_articolo.c.denominazione.ilike("%" + v + "%"))} elif k == "listinoFissato": from promogest.dao.ListinoArticolo import t_listino_articolo dic = {k: and_(t_listino_articolo.c.id_articolo == t_articolo.c.id, t_listino_articolo.c.id_listino == v)} elif posso("PW"): if k == 'figliTagliaColore': dic = {k: and_(t_articolo.c.id == ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_articolo_padre == None)} elif k == 'idTaglia': dic = {k: and_(t_articolo.c.id == ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_taglia == v)} elif k == 'idModello': dic = {k: and_(t_articolo.c.id == ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_modello == v)} elif k == 'idGruppoTaglia': dic = {k: and_(t_articolo.c.id == ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_gruppo_taglia == v)} elif k == 'padriTagliaColore': dic = {k: and_(t_articolo.c.id == ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_articolo_padre != None)} elif k == 'idColore': dic = {k: and_(t_articolo.c.id == ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_colore == v)} elif k == 'idStagione': dic = {k: and_(t_articolo.c.id == ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_stagione == v)} elif k == 'idAnno': dic = {k: and_(t_articolo.c.id == ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_anno == v)} elif k == 'idGenere': dic = {k: and_(t_articolo.c.id == ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_genere == v)} elif posso("SL"): if k == "node": dic = {k: and_(AssociazioneArticolo.id_padre == t_articolo.c.id, AssociazioneArticolo.id_figlio == t_articolo.c.id)} return dic[k]
def on_salva_button_clicked(self, button_salva): a = SetConf().select(key="feed", section="Feed") a[0].value= str(self.feed_check.get_active()) a[0].tipo = "bool" Environment.session.add(a[0]) b = SetConf().select(key="zeri_in_totali", section="Stampa") b[0].value = str(self.zeri_in_totali_check.get_active()) b[0].tipo = "bool" Environment.session.add(b[0]) cc = SetConf().select(key="turbo", section="General") if not cc: cc = SetConf() cc.key = "turbo" cc.section = "General" cc.tipo_section = "Generico" cc.description = "turbo per connessioni remote" cc.active = True cc.tipo = "bool" cc.date = datetime.datetime.now() else: cc = cc[0] cc.value = str(self.turbo_check.get_active()) Environment.session.add(cc) c = SetConf().select(key="zeri_in_riga", section="Stampa") c[0].value = str(self.zeri_in_riga_check.get_active()) c[0].tipo = "bool" Environment.session.add(c[0]) d = SetConf().select(key="altezza_logo", section="Documenti") d[0].value = str(self.altezza_logo_entry.get_text()) d[0].tipo = "float" Environment.session.add(d[0]) if Environment.tipo_eng =="postgresql": if not hasattr(Environment.conf, "Documenti"): Environment.conf.add_section("Documenti") Environment.conf.save() if hasattr(Environment.conf, "Documenti") and not hasattr(Environment.conf.Documenti, "cartella_predefinita"): setattr(Environment.conf.Documenti,"cartella_predefinita",Environment.documentsDir) Environment.conf.save() Environment.conf.Documenti.cartella_predefinita = str(self.path_label.get_text()+os.sep) Environment.conf.save() else: d = SetConf().select(key="cartella_predefinita", section="General") d[0].value = str(self.path_label.get_text()+os.sep) d[0].tipo = "str" Environment.session.add(d[0]) e = SetConf().select(key="larghezza_logo", section="Documenti") e[0].value = str(self.larghezza_logo_entry.get_text()) e[0].tipo = "float" Environment.session.add(e[0]) f = SetConf().select(key="combo_column", section="Numbers") f[0].value = str(self.combo_column_entry.get_text()) f[0].tipo = "int" Environment.session.add(f[0]) g = SetConf().select(key="decimals", section="Numbers") g[0].value = str(self.decimals_entry.get_text()) or "2" g[0].tipo = "int" Environment.session.add(g[0]) g = SetConf().select(key="separatore_numerazione", section="Documenti") g[0].value = str(self.separatore_entry.get_text()) or "" g[0].tipo = "str" Environment.session.add(g[0]) f = SetConf().select(key="batch_size", section="Numbers") f[0].value = str(self.batch_size_entry.get_text()) or "3" f[0].tipo = "int" Environment.session.add(f[0]) c = SetConf().select(key="vettore_codice_upper", section="Vettori") c[0].value = str(self.vettore_codice_upper_check.get_active()) c[0].tipo = "bool" Environment.session.add(c[0]) c = SetConf().select(key="gestione_totali_mercatino", section="General") c[0].value = str(self.mercatino_check.get_active()) c[0].tipo = "bool" Environment.session.add(c[0]) c = SetConf().select(key="gestione_lotti", section="General") c[0].value = str(self.gestione_lotti_check.get_active()) c[0].tipo = "bool" Environment.session.add(c[0]) g = SetConf().select(key="vettore_struttura_codice", section="Vettori") g[0].value = str(self.vettore_struttura_codice_entry.get_text()) g[0].tipo = "str" Environment.session.add(g[0]) g = SetConf().select(key="valuta_curr", section="Valuta") if self.euro_radio.get_active(): g[0].value = "€" elif self.dollaro_radio.get_active(): g[0].value = "$" elif self.sterlina_radio.get_active(): g[0].value = "£" elif self.francosvizzero_radio.get_active(): g[0].value = "CHF" g[0].tipo = "str" Environment.session.add(g[0]) # può bastare un bool su true su vert se è false allora sarà landscape # REPORT c = SetConf().select(key="report_ori", section="Stampa") if not c: c = SetConf() c.key = "report_ori" c.section = "Stampa" c.tipo_section = "Generico" c.description = " orientamento stampa report" c.active = True c.tipo = "str" c.date = datetime.datetime.now() else: c = c[0] if self.report_vert_radio.get_active(): c.value = "verticale" else: c.value = "orizzontale" Environment.session.add(c) c = SetConf().select(key="report_margine_alto", section="Stampa") if not c: c = SetConf() c.key = "report_margine_alto" c.section = "Stampa" c.tipo_section = "Generico" c.description = " margine report alto" c.active = True c.tipo = "str" c.date = datetime.datetime.now() else: c = c[0] c.value = str(self.report_margine_alto_entry.get_text()) Environment.session.add(c) c = SetConf().select(key="report_margine_basso", section="Stampa") if not c: c = SetConf() c.key = "report_margine_basso" c.section = "Stampa" c.tipo_section = "Generico" c.description = " margine report basso" c.active = True c.tipo = "str" c.date = datetime.datetime.now() else: c = c[0] c.value = str(self.report_margine_basso_entry.get_text()) Environment.session.add(c) c = SetConf().select(key="report_margine_destro", section="Stampa") if not c: c = SetConf() c.key = "report_margine_destro" c.section = "Stampa" c.tipo_section = "Generico" c.description = " margine report destro" c.active = True c.tipo = "str" c.date = datetime.datetime.now() else: c = c[0] c.value = str(self.report_margine_destro_entry.get_text()) Environment.session.add(c) c = SetConf().select(key="report_margine_sinistro", section="Stampa") if not c: c = SetConf() c.key = "report_margine_sinistro" c.section = "Stampa" c.tipo_section = "Generico" c.description = " margine report sinistro" c.active = True c.tipo = "str" c.date = datetime.datetime.now() else: c = c[0] c.value = str(self.report_margine_sinistro_entry.get_text()) Environment.session.add(c) # SINGOLO c = SetConf().select(key="singolo_ori", section="Stampa") if not c: c = SetConf() c.key = "singolo_ori" c.section = "Stampa" c.tipo_section = "Generico" c.description = " orientamento stampa singolo" c.active = True c.tipo = "str" c.date = datetime.datetime.now() else: c = c[0] if self.singolo_vert_radio.get_active(): c.value = "verticale" else: c.value = "orizzontale" Environment.session.add(c) c = SetConf().select(key="singolo_margine_alto", section="Stampa") if not c: c = SetConf() c.key = "singolo_margine_alto" c.section = "Stampa" c.tipo_section = "Generico" c.description = " margine singolo alto" c.active = True c.tipo = "str" c.date = datetime.datetime.now() else: c = c[0] c.value = str(self.singolo_margine_alto_entry.get_text()) Environment.session.add(c) c = SetConf().select(key="singolo_margine_basso", section="Stampa") if not c: c = SetConf() c.key = "singolo_margine_basso" c.section = "Stampa" c.tipo_section = "Generico" c.description = " margine singolo basso" c.active = True c.tipo = "str" c.date = datetime.datetime.now() else: c = c[0] c.value = str(self.singolo_margine_basso_entry.get_text()) Environment.session.add(c) c = SetConf().select(key="singolo_margine_destro", section="Stampa") if not c: c = SetConf() c.key = "singolo_margine_destro" c.section = "Stampa" c.tipo_section = "Generico" c.description = " margine singolo destro" c.active = True c.tipo = "str" c.date = datetime.datetime.now() else: c = c[0] c.value = str(self.singolo_margine_destro_entry.get_text()) Environment.session.add(c) c = SetConf().select(key="singolo_margine_sinistro", section="Stampa") if not c: c = SetConf() c.key = "singolo_margine_sinistro" c.section = "Stampa" c.tipo_section = "Generico" c.description = " margine singolo sinistro" c.active = True c.tipo = "str" c.date = datetime.datetime.now() else: c = c[0] c.value = str(self.singolo_margine_sinistro_entry.get_text()) Environment.session.add(c) self.documenti_setup_page._saveSetup() self.articoli_setup_page._saveSetup() self.clienti_setup_page._saveSetup() self.fornitori_setup_page._saveSetup() self.primanota_setup_page._saveSetup() self.label_setup_page._saveSetup() if posso("VD"): self.vendita_dettaglio_setup_page._saveSetup() Environment.session.commit() confList = SetConf().select(batchSize=None) for d in confList: Environment.confDict[(d.key,d.section)] = d self.destroy()
def persist(self): session.add(self) self.commit() #salvataggio , immagine ....per il momento viene gestita #una immagine per articolo ... #in seguito sarà l'immagine a comandare non l'articolo # TODO: RIVEDERE questa parte delle immagini una volta per tutte try: if self._url_immagine \ and Immagine().getRecord(id=self.id_immagine): img = Immagine().getRecord(id=self.id_immagine) img.filename = self._url_immagine img.id_famiglia = self.id_famiglia_articolo self.id_immagine = self.id session.add(img) self.commit() session.add(self) self.save_update() elif self._url_immagine: img = Immagine() img.id = self.id img.filename = self._url_immagine img.id_famiglia = self.id_famiglia_articolo self.id_immagine = self.id session.add(img) self.saveToAppLog(img) session.add(self) self.saveToAppLog(self) elif not self._url_immagine and Immagine().getRecord(id=self.id_immagine): img = Immagine().getRecord(id=self.id_immagine) self.id_immagine = None img.delete() except: pass if posso("GN"): if self.divisore_noleggio_value_set and self.id: div_nol = ArticoloGestioneNoleggio().getRecord(id=self.id) if div_nol: div_nol.divisore_noleggio_value = self.divisore_noleggio_value_set session.add(div_nol) else: div_nol = ArticoloGestioneNoleggio() div_nol.id_articolo = self.id div_nol.divisore_noleggio_value = self.divisore_noleggio_value_set session.add(div_nol) if posso("PW") or modulo_sublima_pw: # try: if self.__articoloTagliaColore: # isTc = ArticoloTagliaColore().getRecord(id=self.id) # if isTc: # isTc.delete() self.__articoloTagliaColore.id_articolo = self.id session.add(self.__articoloTagliaColore) self.commit() if self.isArticoloPadre(): for var in self.getArticoliTagliaColore(): var.id_genere = self.__articoloTagliaColore.id_genere var.id_anno = self.__articoloTagliaColore.id_anno var.id_stagione = self.__articoloTagliaColore.id_stagione var.id_modello = self.__articoloTagliaColore.id_modello session.add(var) #self.saveToAppLog(var) # except: # print("ARTICOLO NORMALE SENZA TAGLIE O COLORI") if posso("ADR"): if self.articolo_adr_dao and self.id: self.articolo_adr_dao.id_articolo = self.id self.APADR = self.articolo_adr_dao if posso("CSA"): if hasattr(self, "articolo_csa_dao") and self.articolo_csa_dao and self.id: self.articolo_csa_dao.id_articolo = self.id self.APCSA = self.articolo_csa_dao session.commit()
def _refresh(self): try: self.zeri_in_riga_check.set_active(int(setconf("Stampa", "zeri_in_riga"))) except: self.zeri_in_riga_check.set_active(0) try: self.turbo_check.set_active(int(setconf("General", "turbo"))) except: self.turbo_check.set_active(0) try: self.zeri_in_totali_check.set_active(int(setconf("Stampa", "zeri_in_totali"))) except: self.zeri_in_totali_check.set_active(0) try: self.feed_check.set_active(int(setconf("Feed", "feed"))) except: self.feed_check.set_active(1) try: curr = setconf("Valuta", "valuta_curr") if curr =="€": self.euro_radio.set_active(1) elif curr =="$": self.dollaro_radio.set_active(1) elif curr =="£": self.sterlina_radio.set_active(1) elif curr =="CHF": self.francosvizzero_radio.set_active(1) except: self.euro_radio.set_active(1) try: self.mercatino_check.set_active(int(setconf("General", "gestione_totali_mercatino"))) except: self.mercatino_check.set_active(0) try: self.gestione_lotti_check.set_active(int(setconf("General", "gestione_lotti"))) except: self.gestione_lotti_check.set_active(0) try: self.vettore_codice_upper_check.set_active(int(setconf("Vettori", "vettore_codice_upper"))) except: self.vettore_codice_upper_check.set_active(1) self.vettore_struttura_codice_entry.set_text(str(setconf("Vettori", "vettore_struttura_codice"))) self.altezza_logo_entry.set_text(str(setconf("Documenti", "altezza_logo"))) self.larghezza_logo_entry.set_text(str(setconf("Documenti", "larghezza_logo"))) self.combo_column_entry.set_text(str(setconf("Numbers", "combo_column"))) self.decimals_entry.set_text(str(setconf("Numbers","decimals"))) self.separatore_entry.set_text(str(setconf("Documenti","separatore_numerazione") or "")) self.batch_size_entry.set_text(str(setconf("Numbers","batch_size"))) self.documenti_setup_page._refresh() self.articoli_setup_page._refresh() self.clienti_setup_page._refresh() self.fornitori_setup_page._refresh() self.primanota_setup_page._refresh() self.label_setup_page._refresh() if posso("VD"): self.vendita_dettaglio_setup_page._refresh() if setconf("Stampa", "singolo_ori") == "orizzontale": self.singolo_land_radio.set_active(True) elif setconf("Stampa", "singolo_ori") == "verticale": self.singolo_vert_radio.set_active(True) else: self.singolo_vert_radio.set_active(True) self.singolo_margine_alto_entry.set_text( str(setconf("Stampa", "singolo_margine_alto") or "4.3")) self.singolo_margine_destro_entry.set_text( str(setconf("Stampa", "singolo_margine_destro") or "4.3")) self.singolo_margine_basso_entry.set_text( str(setconf("Stampa", "singolo_margine_basso") or "4.3")) self.singolo_margine_sinistro_entry.set_text( str(setconf("Stampa", "singolo_margine_sinistro") or "4.3")) if setconf("Stampa", "report_ori") == "orizzontale": self.report_land_radio.set_active(True) elif setconf("Stampa", "report_ori") == "verticale": self.report_vert_radio.set_active(True) else: self.report_land_radio.set_active(True) self.report_margine_alto_entry.set_text( str(setconf("Stampa", "report_margine_alto") or "4.3")) self.report_margine_destro_entry.set_text( str(setconf("Stampa", "report_margine_destro") or "4.3")) self.report_margine_basso_entry.set_text( str(setconf("Stampa", "report_margine_basso") or "4.3")) self.report_margine_sinistro_entry.set_text( str(setconf("Stampa", "report_margine_sinistro") or "4.3"))
def filter_values(self, k, v): if k == "codice": dic = {k: self.__table__.c.codice.ilike("%"+v+"%")} elif k == "codicesatto" or k == "codiceEM": dic = {k: self.__table__.c.codice == v} elif k == 'denominazione': dic = {k: self.__table__.c.denominazione.ilike("%"+v+"%")} elif k == 'codiceABarre': dic = {k: and_(self.__table__.c.id == CodiceABarreArticolo.id_articolo, CodiceABarreArticolo.codice.ilike("%"+v+"%"))} elif k == 'codiceABarreEM': dic = {k: and_(self.__table__.c.id == CodiceABarreArticolo.id_articolo, CodiceABarreArticolo.codice == v)} elif k == 'codiceArticoloFornitore': dic = {k: and_(self.__table__.c.id == Fornitura.__table__.c.id_articolo, Fornitura.__table__.c.codice_articolo_fornitore.ilike("%"+v+"%"))} elif k == 'codiceArticoloFornitoreEM': dic = {k: and_(self.__table__.c.id == Fornitura.__table__.c.id_articolo, Fornitura.__table__.c.codice_articolo_fornitore == v)} elif k == 'produttore': dic = {k: self.__table__.c.produttore.ilike("%"+v+"%")} elif k == 'produttoreEM': dic = {k: self.__table__.c.produttore == v} elif k == 'idFamiglia': dic = {k: self.__table__.c.id_famiglia_articolo == v} elif k == 'idAliquotaIva': dic = {k: self.__table__.c.id_aliquota_iva == v} elif k == 'idCategoria': dic = {k: self.__table__.c.id_categoria_articolo == v} elif k == 'idCategoriaList': dic = {k: self.__table__.c.id_categoria_articolo.in_(v)} elif k == 'idStato': dic = {k: self.__table__.c.id_stato_articolo == v} elif k == 'cancellato': dic = {k: or_(self.__table__.c.cancellato != v)} elif k == 'idArticolo': dic = {k: or_(self.__table__.c.id == v)} elif k == 'omni': dic = {k: or_(self.__table__.c.codice.ilike("%"+v+"%"), self.__table__.c.denominazione.ilike("%"+v+"%"))} elif k == "listinoFissato": from promogest.dao.ListinoArticolo import t_listino_articolo dic = {k: and_(t_listino_articolo.c.id_articolo == Articolo.__table__.c.id, t_listino_articolo.c.id_listino == v)} elif k == 'fullsearch': # TODO: TROVARE il modo di gestire anche il codice a barre dic = {k: or_(self.__table__.c.codice.ilike("%" + v + "%"), self.__table__.c.denominazione.ilike("%" + v + "%"), self.__table__.c.produttore.ilike("%" + v + "%"), self.__table__.c.note.ilike("%" + v + "%"), self.__table__.c.contenuto.ilike("%" + v + "%"), )} elif posso("PW"): if k == 'figliTagliaColore': dic = {k: and_(Articolo.__table__.c.id == ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_articolo_padre == None)} elif k == 'idTaglia': dic = {k: and_(self.__table__.c.id == ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_taglia == v)} elif k == 'idModello': dic = {k: and_(self.__table__.c.id == ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_modello == v)} elif k == 'idGruppoTaglia': dic = {k: and_(self.__table__.c.id == ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_gruppo_taglia == v)} elif k == 'padriTagliaColore': dic = {k: and_(self.__table__.c.id == ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_articolo_padre != None)} elif k == 'idColore': dic = {k: and_(self.__table__.c.id == ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_colore == v)} elif k == 'idStagione': dic = {k: and_(self.__table__.c.id == ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_stagione == v)} elif k == 'idAnno': dic = {k: and_(self.__table__.c.id == ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_anno == v)} elif k == 'idGenere': dic = {k: and_(self.__table__.c.id == ArticoloTagliaColore.id_articolo, ArticoloTagliaColore.id_genere == v)} elif posso("SL"): if k == "node": dic = {k: and_(AssociazioneArticolo.__table__.c.id_padre == self.__table__.c.id, AssociazioneArticolo.__table__.c.id_figlio == self.__table__.c.id)} return dic[k]
def on_salva_button_clicked(self, button_salva): a = SetConf().select(key="feed", section="Feed") a[0].value= str(self.feed_check.get_active()) a[0].tipo = "bool" Environment.session.add(a[0]) # a = SetConf().select(key="updates_timeout", section="General") # a[0].value = str(findIdFromCombobox(self.timer_combobox)) # Environment.session.add(a[0]) b = SetConf().select(key="zeri_in_totali", section="Stampa") b[0].value = str(self.zeri_in_totali_check.get_active()) b[0].tipo = "bool" Environment.session.add(b[0]) c = SetConf().select(key="zeri_in_riga", section="Stampa") c[0].value = str(self.zeri_in_riga_check.get_active()) c[0].tipo = "bool" Environment.session.add(c[0]) d = SetConf().select(key="altezza_logo", section="Documenti") d[0].value = str(self.altezza_logo_entry.get_text()) d[0].tipo = "float" Environment.session.add(d[0]) if Environment.tipo_eng =="postgresql": if not hasattr(Environment.conf, "Documenti"): Environment.conf.add_section("Documenti") Environment.conf.save() if hasattr(Environment.conf, "Documenti") and not hasattr(Environment.conf.Documenti, "cartella_predefinita"): setattr(Environment.conf.Documenti,"cartella_predefinita",Environment.documentsDir) Environment.conf.save() Environment.conf.Documenti.cartella_predefinita = str(self.path_label.get_text()+os.sep) Environment.conf.save() else: d = SetConf().select(key="cartella_predefinita", section="General") d[0].value = str(self.path_label.get_text()+os.sep) d[0].tipo = "str" Environment.session.add(d[0]) e = SetConf().select(key="larghezza_logo", section="Documenti") e[0].value = str(self.larghezza_logo_entry.get_text()) e[0].tipo = "float" Environment.session.add(e[0]) f = SetConf().select(key="combo_column", section="Numbers") f[0].value = str(self.combo_column_entry.get_text()) f[0].tipo = "int" Environment.session.add(f[0]) g = SetConf().select(key="decimals", section="Numbers") g[0].value = str(self.decimals_entry.get_text()) or "2" g[0].tipo = "int" Environment.session.add(g[0]) g = SetConf().select(key="separatore_numerazione", section="Documenti") g[0].value = str(self.separatore_entry.get_text()) or "" g[0].tipo = "str" Environment.session.add(g[0]) f = SetConf().select(key="batch_size", section="Numbers") f[0].value = str(self.batch_size_entry.get_text()) or "3" f[0].tipo = "int" Environment.session.add(f[0]) c = SetConf().select(key="vettore_codice_upper", section="Vettori") c[0].value = str(self.vettore_codice_upper_check.get_active()) c[0].tipo = "bool" Environment.session.add(c[0]) c = SetConf().select(key="gestione_totali_mercatino", section="General") c[0].value = str(self.mercatino_check.get_active()) c[0].tipo = "bool" Environment.session.add(c[0]) c = SetConf().select(key="gestione_lotti", section="General") c[0].value = str(self.gestione_lotti_check.get_active()) c[0].tipo = "bool" Environment.session.add(c[0]) g = SetConf().select(key="vettore_struttura_codice", section="Vettori") g[0].value = str(self.vettore_struttura_codice_entry.get_text()) g[0].tipo = "str" Environment.session.add(g[0]) g = SetConf().select(key="valuta_curr", section="Valuta") if self.euro_radio.get_active(): g[0].value = "€" elif self.dollaro_radio.get_active(): g[0].value = "$" elif self.sterlina_radio.get_active(): g[0].value = "£" elif self.francosvizzero_radio.get_active(): g[0].value = "CHF" g[0].tipo = "str" Environment.session.add(g[0]) self.documenti_setup_page._saveSetup() self.articoli_setup_page._saveSetup() self.clienti_setup_page._saveSetup() self.fornitori_setup_page._saveSetup() self.primanota_setup_page._saveSetup() self.label_setup_page._saveSetup() if posso("VD"): self.vendita_dettaglio_setup_page._saveSetup() Environment.session.commit() confList = SetConf().select(batchSize=None) for d in confList: Environment.confDict[(d.key,d.section)] = d self.destroy()