Esempio n. 1
0
    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()
Esempio n. 2
0
    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()
Esempio n. 3
0
    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()
Esempio n. 4
0
 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
Esempio n. 5
0
    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)
Esempio n. 6
0
 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)
Esempio n. 7
0
 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)
Esempio n. 8
0
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)
Esempio n. 9
0
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}
Esempio n. 10
0
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)
Esempio n. 11
0
    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()
Esempio n. 12
0
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)
Esempio n. 13
0
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"],
Esempio n. 14
0
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
Esempio n. 15
0
    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()
Esempio n. 16
0

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")
Esempio n. 17
0
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"],
Esempio n. 18
0
 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]
Esempio n. 19
0
 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]
Esempio n. 20
0
 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)
Esempio n. 21
0
 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]
Esempio n. 22
0
    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()
Esempio n. 23
0
    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()
Esempio n. 24
0
    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"))
Esempio n. 25
0
    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]
Esempio n. 26
0
    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()