def on_aggiorna_button_clicked(self, widget):
        # Alcuni controlli sull'input
        if self.periodo_checkbutton.get_active() and \
            (self.inizio_periodo_date.get_text() == '' or \
            self.fine_periodo_date.get_text() == ''):
                messageWarning('Inserire una data valida')
                return

        model = self.scadenzario_treeview.get_model()
        model.clear()

        if self.periodo_checkbutton.get_active():
            # Mostra le scadenze nel periodo
            tds = TestataDocumentoScadenza().select(orderBy=TestataDocumentoScadenza.data,
                    complexFilter=(and_(TestataDocumentoScadenza.data_pagamento==None,
                                        TestataDocumentoScadenza.data.between(stringToDateTime(self.inizio_periodo_date.get_text()),
                                                                              stringToDateTime(self.fine_periodo_date.get_text())))))
        else:
            # Mostra le prossime scadenze
            tds = TestataDocumentoScadenza().select(orderBy=TestataDocumentoScadenza.data,
                        complexFilter=(and_(TestataDocumentoScadenza.data_pagamento==None,
                                            TestataDocumentoScadenza.data>=datetime.now())))
        tipo_doc = ''
        for t in tds:
            doc = TestataDocumento().getRecord(id=t.id_testata_documento)
            if doc.operazione not in Environment.hapag:
                continue
            if doc.documento_saldato:
                continue
            if doc.id_fornitore and self.da_pagare:
                tipo_doc = 'A'
            if doc.id_cliente and self.da_incassare:
                tipo_doc = 'V'
            model.append([None, "%s" % dateToString(t.data),
                              "%s" % doc.intestatario,
                              tipo_doc,
                              "%s" % doc.numero, # numero documento
                              "€ %s" % mN(t.importo, 2), # importo
                              "", # descrizione
                              t.pagamento])
Ejemplo n.º 2
0
    def saveDao(self, tipo=None):
        denominazione = self.denominazione_entry.get_text()
        if denominazione == '':
            obligatoryField(self.dialogTopLevel, self.denominazione_entry)
        self.dao.denominazione = denominazione
        self.dao.id_azienda = env.azienda
        self.dao.indirizzo = self.indirizzo_entry.get_text()
        self.dao.preferito = self.preferito_checkbutton.get_active()
        self.dao.server_smtp = self.server_smtp_entry.get_text()
        self.dao.porta_smtp = int(self.porta_smtp_entry.get_text())
        self.dao.cripto_SSL = self.crypto_ssl_checkbutton.get_active()
        self.dao.username = self.username_entry.get_text()
        self.dao.oggetto = self.oggetto_entry.get_text()
        self.dao.firma = textview_get_text(self.firma_textview)
        self.dao.body = textview_get_text(self.body_textview)
        #self.dao.memo_password = self.memo_password_checkbutton.get_active()
        self.dao.persist()

        if keyring:
            password = self.password_entry.get_text()
            try:
                keyring.set_password('promogest2', self.dao.username, password)
            except Exception as ex:
                messageWarning('Impossibile salvare la password nel portachiavi di sistema:\n\n%s.' % str(ex))
Ejemplo n.º 3
0
from promogest.ui.AnagraficaComplessa import Anagrafica
from promogest.ui.AnagraficaComplessaEdit import AnagraficaEdit
from promogest.ui.AnagraficaComplessaReport import AnagraficaReport
from promogest.ui.AnagraficaComplessaHtml import AnagraficaHtml
from promogest.ui.AnagraficaComplessaFilter import AnagraficaFilter
from promogest.dao.AccountEmail import AccountEmail
from promogest.lib.utils import prepareFilterString, obligatoryField,\
    messageWarning, textview_get_text, textview_set_text

try:
    import keyring
except:
    keyring = None
    msg = """Attenzione: la libreria "keyring" necessaria per salvare la password
in modo sicuro non è installata."""
    messageWarning(msg)


class AnagraficaAccountMail(Anagrafica):
    """ Anagrafica account posta elettronica """

    def __init__(self, idAzienda=None, aziendaStr=None):
        self._aziendaFissata = (idAzienda != None)
        self._idAzienda = idAzienda
        Anagrafica.__init__(self,
                            windowTitle='Promogest - Anagrafica account di posta elettronica',
                            recordMenuLabel='_Account',
                            filterElement=AnagraficaAccountMailFilter(self),
                            htmlHandler=AnagraficaAccountMailHtml(self),
                            reportHandler=AnagraficaAccountMailReport(self),
                            editElement=AnagraficaAccountMailEdit(self),