Esempio n. 1
0
    def setInfoTemp(self, info):

        if info is None:
            self.infoTemp = deepc(self.infoModel)
        else:
            self.infoTemp = deepc(info)
        return self.infoTemp
Esempio n. 2
0
    def initStatDb(self, database={}):
        if database is None or len(database) == 0:
            database = deepc(self.database)

        def formatStuff(li):
            form = {k: 0 for k in li}
            return Od(form)

        statG = deepc(database)
        stat = deepc(database)
        listaKeysStat = [
            '3 Notti', '2 Notti', '1 Notte', 'Tasse finora', 'Netto finora',
            'Spese finora'
        ]
        for anno in stat.keys():
            for mese in stat[anno].keys():
                stat[anno][mese] = {k: 0 for k in listaKeysStat}
        for anno in database.keys():
            for mese in database[anno].keys():
                for giorno in database[anno][mese].keys():
                    chiave = deepc(database[anno][mese][giorno]['checkIn'])
                    numeroNotti = int(chiave['totale notti'])
                    stat[anno][mese]['Spese finora'] = int(chiave['spese'])
                    if numeroNotti >= 3:
                        stat[anno][mese]['3 Notti'] += 1
                    elif numeroNotti == 2:
                        stat[anno][mese]['2 Notti'] += 1
                    elif numeroNotti == 1:
                        stat[anno][mese]['1 Notte'] += 1
                    tasse = int(chiave['tasse'])
                    stat[anno][mese]['Tasse finora'] += tasse
                    netto = int(chiave['netto'])
                    stat[anno][mese]['Netto finora'] += netto
        return stat
Esempio n. 3
0
 def riempiTabellaStat(self, info=None):
     if info is None:
         info = deepc(self.infoSta)
     # data = self.calendario.selectedDate()
     # print('mese mostrato dal calendario:',self.calendario.currentMonth)
     data = self.calendario.currentDate
     a, m, g = self.amg(data)
     m = self.calendario.currentMonth
     dbStat = deepc(info)
     try:
         self.tableWidget_stat.setRowCount(0)
         row = 0
         for c0, c1 in dbStat[a][m].items():
             self.tableWidget_stat.insertRow(row)
             item0 = QtWidgets.QTableWidgetItem()
             item0.setText(c0)
             item1 = QtWidgets.QTableWidgetItem()
             item1.setText(str(c1))
             self.tableWidget_stat.setItem(row, 0, item0)
             self.tableWidget_stat.setItem(row, 1, item1)
             row += 1
         self.tableWidget_stat.update()
     except KeyError:
         print('riempi stat key err ')
         print(dbStat.keys())
Esempio n. 4
0
    def freethem(self):
        """
        cancella di fatto la prenotazione posta in info
        :return:
        """
        try:
            self.controlloNome()
            data = self.getData()
            if data is None:
                print("fornire un info model - freethem")
                return
            flag = True
            while flag:
                checkIn, checkOut, nome, cognome = self.findDate(
                    self.DataBase, data)
                if (checkIn['nome'] == self._nome
                        or checkIn['cognome'] == self._cognome
                    ) and checkIn['data arrivo'] == self._dataIn:
                    spese = checkIn['spese']
                    note = checkIn['note']
                    checkIn = deepc(DBM.INFOMODEL)
                    checkIn['spese'] = spese
                    checkIn['note'] = note
                    checkOut = deepc(DBM.INFOMODELREDUX)
                    a, m, g = self.amg(data)
                    self.DataBase[a][m][g]['checkIn'] = checkIn
                    # if self.DataBase[a][m][g]['checkOut']['data partenza'] != '':
                    #     self.DataBase[a][m][g]['checkOut'] = checkOut
                    print("checkin copiato")
                    data = data.addDays(1)
                    a, m, g = self.amg(data)
                    if self.DataBase[a][m][g]['checkOut'][
                            'data partenza'] != '':
                        self.DataBase[a][m][g]['checkOut'] = checkOut
                    else:
                        print(
                            self.DataBase[a][m][g]['checkOut']['data partenza']
                            + ' ', g)
                else:
                    flag = False
                    break

            self.salvaDatabase(self.DataBase)
        except:
            import traceback
            print(traceback.format_exc())
Esempio n. 5
0
 def getInfoFromDate(self, data):
     # self.cleardisplay()
     # print("controllo ", inspect.stack()[0][3])
     self.get_date(data)
     # print("data ",self.current_date)
     a, m, g = self.amg(data)
     info = self.getInfo(a, m, g)
     if info is None:
         info = deepc(self.infoModel)
     return info
Esempio n. 6
0
    def addSpese(self):
        try:
            data = self.calendario.currentDate
            a, m, g = self.amg(data)
            finale = self.gestisciSpese(data)
            spese = self.database[a][m][g]['checkIn']['spese']
            if spese != finale:
                copia = deepc(self.database[a][m][g]['checkIn'])
                copia['spese'] = finale
                for giorno in self.database[a][m].keys():
                    note = self.database[a][m][giorno]['checkIn']['note']
                    copia['note'] = note
                    self.database[a][m][giorno]['checkIn'] = deepc(copia)
                    # self.database[a][m][giorno]['checkIn']['spese'] = finale

                dbm.salvaDatabase(self.database)
                # self.updateInfoStat()

        except:
            print(fex())
Esempio n. 7
0
    def getInfo(self, a, m, g):
        try:
            database = self.getDatabase()
            # print("getinfo database keys:\n", database.keys())
            info = deepc(database[a][m][g]["checkIn"])
            print("info['note'] from getInfo", info['note'])
            # print('getInfo', info)
        except KeyError:
            print("keyerr getInfo evinterf")

            info = None
        return info
Esempio n. 8
0
    def setThem(self, out=False):
        """
        crea una prenotazione e la salva su disco
        :return:
        """
        database = deepc(self.getDb())

        data = self.getData()
        data1 = self.getData()
        if data is None:
            print("fornire un info model - setThem")
            return
        notedict = deepc(self._info)
        note = notedict['note']
        self._info['note'] = ''
        a1, m1, g1 = data1.year(), data1.month(), data1.day()
        while data < self._dataOut:
            a2, m2, g2 = self.amg(data)
            #     if a != annoIn:
            #         database = databaseOut
            database[a2][m2][g2]['checkIn'] = deepc(self._info)
            data = data.addDays(1)
            if data == self._dataOut:
                # print("giorno stabilito")
                infoRedux = self.buildInfoRed()
                a3, m3, g3 = self.amg(data)
                database[a3][m3][g3]['checkOut'] = deepc(infoRedux)
                break
        database[a1][m1][g1]['checkIn'] = deepc(notedict)
        # database[a1][m1][m1]['checkIn']['note'] = note
        self.DataBase = deepc(database)
        self.salvaDatabase(database)
Esempio n. 9
0
 def addNote(self):
     try:
         # dialog = DialogInfo('Spese',table=True)
         # data = self.calendario.selectedDate()
         data = self.calendario.currentDate
         a, m, g = self.amg(data)
         database = self.getDatabase(a)
         # text = self.database[a][m][g]['checkIn']['note']
         text = database[a][m][g]['checkIn']['note']
         dialog = DialogInfo(testo=text, showBool=True)
         icona = QtGui.QIcon('./Icons/iconaNote.ico')
         dialog.setWindowIcon(icona)
         # tempDict = deepc(self.database[a][m][g]['checkIn'])
         tempDict = deepc(database[a][m][g]['checkIn'])
         dialog.guiText.textBrowser_dialog_info.setText(text)
         if dialog.exec_():
             nuovoTesto = dialog.guiText.textBrowser_dialog_info.toPlainText(
             )
             if nuovoTesto != text:
                 tempDict['note'] = nuovoTesto
                 # self.database[a][m][g]['checkIn'] = tempDict
                 database[a][m][g]['checkIn'] = tempDict
                 dbm.salvaDatabase(database)
                 self.database = deepc(database)
                 self.bot_note.setState(True)
                 if nuovoTesto == '':
                     self.bot_note.setState(False)
                     if self.calendario.currentDate in self.calendario.dateNote:
                         self.calendario.dateNote.remove(
                             self.calendario.currentDate)
                 else:
                     if self.calendario.currentDate not in self.calendario.dateNote:
                         self.calendario.dateNote.append(
                             self.calendario.currentDate)
                 self.calendario.updateIconsAndBooked()
                 # info = self.getInfo(a,m,g)
                 # self.setInfoTemp(info)
     except:
         print(fex())
Esempio n. 10
0
    def __init__(self, info=None, shortcut=0):

        # self._dataIn = dataIn
        # self._domani = dataIn.addDays(1)
        # self._nome = nome
        # self._cognome = cognome

        # opzione per correggere il percorso durante i tests
        self.shortcut = shortcut
        self._info = info
        # if self._info is not None:
        manageErr = False
        try:
            self.info = self.getInfo
            self._dataIn = self.info['data arrivo']
            self._dataOut = self.info['data partenza']
            self._domani = self._dataIn.addDays(1)
            self._nome = self.info['nome']
            self._cognome = self.info['cognome']
        except AttributeError:
            manageErr = True
        except TypeError:
            manageErr = True
        if manageErr:
            self._dataIn = QtCore.QDate().currentDate()
            self._domani = self._dataIn.addDays(1)
            self._dataOut = self._domani
            self._nome = None
            self._cognome = None
        self.occupate = []
        # old
        # self.DataBase = deepc(self.getDb(self._dataIn))
        self.DataBase = deepc(self.getDb())
        self.counter = 0
        # self.DataBase = Od()
        datePren = {'platforms': {}}
        self.datePrenotazioni = Od(datePren)
        self.dateBooking = []
        self.dateAirbb = []
        self.datePrivati = []
        self.datePulizie = []
        self.dateSpese = []
        self.dateNote = []
        self.platformDict = {
            'Booking': self.dateBooking,
            'AirB&B': self.dateAirbb,
            'Privati': self.datePrivati,
            'pulizie': self.datePulizie
        }
Esempio n. 11
0
 def loadConfig(self):
     numeroOspiti = self.config['numero letti']
     self.spinBox_ospiti.setMaximum(numeroOspiti)
     self.spinBox_bambini.setMaximum(numeroOspiti - 1)
     self.buildListeIPT()
     self.colors = deepc(self.config['colori settati'])
     # database = self.getDatabase()
     # self.leggiDatabase(database)
     # self.infoModel
     plats = self.config['platforms']
     self.combo_platformPrenotazioni.clear()
     for platform in plats.keys():
         if platform != '' and self.combo_platformPrenotazioni.findText(
                 platform, QtCore.Qt.MatchExactly) == -1:
             self.combo_platformPrenotazioni.addItem(platform)
     self.lineEdit_tax.setText(str(self.config['tasse']))
Esempio n. 12
0
 def __init__(self, spese: dict, parent=None):
     print('dialog spese')
     super(DialogInfoSpese, self).__init__(parent)
     self.setupUi(self)
     # self.setModal(True)
     self.listaTipi = []
     self.spese = spese
     self.vecchieSpese = deepc(self.spese)
     self.tableWidget.setRowCount(0)
     self.riempiTable()
     # self.setWindowModality(QtCore.Qt.WindowModal)
     self.tableWidget.itemChanged.connect(lambda x: self.gotoLine(x.row()))
     self.bot_addLine.clicked.connect(self.addNewLine)
     self.bot_removeLine.clicked.connect(self.cancellaSpesa)
     self.bot_ok.clicked.connect(self.accept)
     self.bot_esci.clicked.connect(self.close)
     self.tableWidget.EDITFINISHED.connect(self.returnPressed)
Esempio n. 13
0
    def gestisciSpese(self, datat):
        try:
            # dialog = DialogInfo('Spese',table=True)
            a, m, g = self.amg(datat)
            spesetot = deepc(self.spese)
            spese = spesetot[a][m].get(datat, {})
            dialog = DialogSpese(spese)
            dialog.setWindowIcon(QtGui.QIcon('./Icons/iconaSpese.png'))

            dialog.SPESEPRONTE.connect(lambda x: print('spese pronte', x))
            # dialog.setModal(True)
            if dialog.exec_():
                spese = dialog.ottieniSpese()
                if len(spese) != 0:
                    self.spese[a][m][datat] = spese
                    self.bot_spese.setState(True)
                    tot = self.totaleSpeseG(datat)
                    print('totale spese giornaliere: ', tot)
                    self.calendario.dateSpese.append(datat)
                    self.calendario.datesIndicatorsChanged.emit()
                else:
                    if datat in self.spese[a][m].keys():
                        del self.spese[a][m][datat]
                    if datat in self.calendario.dateSpese:
                        self.calendario.dateSpese.remove(datat)
                        self.calendario.datesIndicatorsChanged.emit()

                    self.bot_spese.setState(False)
                    tot = 0

            self.calendario.datesIndicatorsChanged.emit()
            self.calendario.updateIconsAndBooked()
            totSpeseMensili = 0
            try:
                for giornoData in self.spese[a][m].keys():
                    for spesaperitem in self.spese[a][m][giornoData].values():
                        totSpeseMensili += spesaperitem
                finale = float(totSpeseMensili)
            except TypeError:
                print(' TYPEERR *****************', self.spese[a][m].values())
            dbm.salvaDatabase(self.spese, tipodatabase='spese')
            return finale
        except:
            print(fex())
Esempio n. 14
0
 def setDatesIndicators(self, prenotazioni, pulizie, colors, spese, note):
     """sets the object datePrenotazioni, datePulizie and colors"""
     if len(colors) != 0:
         self.colors = colors
     self.datePrenotazioni = deepc(prenotazioni)
     # if len(prenotazioni) != 0:
     #     self.datePrenotazioni = deepc(prenotazioni)
     # print('prenotazioni setted')
     if len(pulizie) != 0:
         self.datePulizie = pulizie
         # print('pulizie setted')
     if len(spese) > 0:
         # print('spese setted ')
         self.dateSpese = spese
         # self.dateSpese = deepc(spese)
         # print('spese setted ')
     if len(note) > 0:
         # print('note setted')
         self.dateNote = list(set(note))
     self.datesIndicatorsChanged.emit()
Esempio n. 15
0
 def ottieniSpese(self):
     rows = self.tableWidget.rowCount()
     spese = {}
     for row in range(rows):
         itemR = self.tableWidget.cellWidget(row, 1)
         valore = itemR.text()
         try:
             valRow = float(valore)
         except ValueError:
             if ',' in itemR.text():
                 valore = valore.replace(',','.')
             valRow = float(valore)
         if valRow == 0:
             continue
         itemC = self.tableWidget.item(row, 0)
         chiaveCol = itemC.text()
         spese[chiaveCol] = spese.get(chiaveCol, 0.0) + valRow
         # spese[chiaveCol] = valRow
     self.spese = deepc(spese)
     self.SPESEPRONTE.emit(self.spese)
     return self.spese
Esempio n. 16
0
 def setDatesIndicators(self, prenotazioni, pulizie, colors, spese, note):
     """sets the object datePrenotazioni, datePulizie and colors"""
     if len(colors) != 0:
         self.colors = colors
     if len(prenotazioni) != 0:
         self.datePrenotazioni = deepc(prenotazioni)
         # print('prenotazioni setted')
     if len(pulizie) != 0:
         self.datePulizie = pulizie
         # print('pulizie setted')
     if len(spese) > 0:
         # print('spese setted ')
         for anno in spese.keys():
             for mese in spese[anno].keys():
                 for data in spese[anno][mese].keys():
                     self.dateSpese.append(data)
         # self.dateSpese = deepc(spese)
         # print('spese setted ')
     if len(note) > 0:
         # print('note setted')
         self.dateNote = note
     self.datesIndicatorsChanged.emit()
Esempio n. 17
0
def run(alg,
        alg_kwargs,
        task,
        task_kwargs,
        wrappers_kwargs,
        expl_params,
        rollout,
        num_trials,
        folder,
        n_thrds,
        n_lstm,
        rerun=False,
        test_kwargs={},
        num_retrains=10,
        seed=0,
        train_mode=None,
        sl_kwargs=None):
    train_mode = train_mode or 'RL'
    env = test_env(task, kwargs=task_kwargs, num_steps=1000)
    num_timesteps = int(1000 * num_trials / (env.num_tr))
    files = glob.glob(folder + '/*model*')
    vars_ = {
        'alg': alg,
        'alg_kwargs': alg_kwargs,
        'task': task,
        'task_kwargs': task_kwargs,
        'wrappers_kwargs': wrappers_kwargs,
        'expl_params': expl_params,
        'rollout': rollout,
        'folder': folder,
        'num_trials': num_trials,
        'n_thrds': n_thrds,
        'n_lstm': n_lstm
    }
    np.savez(folder + '/params.npz', **vars_)
    if len(files) == 0 or rerun:
        if train_mode == 'RL':
            if alg == "A2C":
                from stable_baselines import A2C as algo
            elif alg == "ACER":
                from stable_baselines import ACER as algo
            elif alg == "ACKTR":
                from stable_baselines import ACKTR as algo
            elif alg == "PPO2":
                from stable_baselines import PPO2 as algo
            env = SubprocVecEnv([
                make_env(env_id=task,
                         rank=i,
                         seed=seed,
                         wrapps=wrappers_kwargs,
                         **task_kwargs) for i in range(n_thrds)
            ])
            model = algo(LstmPolicy,
                         env,
                         verbose=0,
                         n_steps=rollout,
                         n_cpu_tf_sess=n_thrds,
                         tensorboard_log=None,
                         policy_kwargs={
                             "feature_extraction": "mlp",
                             "n_lstm": n_lstm
                         },
                         **alg_kwargs)
            # this assumes 1 trial ~ 10 steps
            sv_freq = 5 * wrappers_kwargs['MonitorExtended-v0']['sv_per']
            chckpnt_cllbck = CheckpointCallback(save_freq=sv_freq,
                                                save_path=folder,
                                                name_prefix='model')
            model.learn(total_timesteps=num_timesteps, callback=chckpnt_cllbck)
            model.save(f"{folder}/model_{num_timesteps}_steps.zip")
            plotting.plot_rew_across_training(folder=folder)
        elif train_mode == 'SL':
            stps_ep = sl_kwargs['steps_per_epoch']
            wraps_sl = deepc(wrappers_kwargs)
            del wraps_sl['PassAction-v0']
            del wraps_sl['PassReward-v0']
            del wraps_sl['MonitorExtended-v0']
            env = make_env(env_id=task,
                           rank=0,
                           seed=seed,
                           wrapps=wraps_sl,
                           **task_kwargs)()
            dataset = ngym.Dataset(env,
                                   batch_size=sl_kwargs['btch_s'],
                                   seq_len=rollout,
                                   batch_first=True)
            obs_size = env.observation_space.shape[0]
            act_size = env.action_space.n
            model = define_model(seq_len=rollout,
                                 num_h=n_lstm,
                                 obs_size=obs_size,
                                 act_size=act_size,
                                 batch_size=sl_kwargs['btch_s'],
                                 stateful=sl_kwargs['stateful'],
                                 loss=sl_kwargs['loss'])
            # Train network
            data_generator = (dataset() for i in range(stps_ep))
            model.fit(data_generator, verbose=1, steps_per_epoch=stps_ep)
            model.save(f"{folder}/model_{stps_ep}_steps")

    if len(test_kwargs) != 0:
        for key in test_kwargs.keys():
            sv_folder = folder + key
            test_kwargs[key]['seed'] = seed
            if train_mode == 'RL':
                if '_all' not in key:
                    ga.get_activity(folder, alg, sv_folder, **test_kwargs[key])
                else:
                    files = glob.glob(folder + '/model_*_steps.zip')
                    for f in files:
                        model_name = os.path.basename(f)
                        sv_f = folder + key + '_' + model_name[:-4]
                        ga.get_activity(folder,
                                        alg,
                                        sv_folder=sv_f,
                                        model_name=model_name,
                                        **test_kwargs[key])

            elif train_mode == 'SL':
                stps_ep = sl_kwargs['steps_per_epoch']
                wraps_sl = deepc(wrappers_kwargs)
                wraps_sl.update(test_kwargs[key]['wrappers'])
                del wraps_sl['PassAction-v0']
                del wraps_sl['PassReward-v0']
                env = make_env(env_id=task,
                               rank=0,
                               seed=seed,
                               wrapps=wraps_sl,
                               **task_kwargs)()
                obs_size = env.observation_space.shape[0]
                act_size = env.action_space.n
                model_test = define_model(seq_len=1,
                                          batch_size=1,
                                          obs_size=obs_size,
                                          act_size=act_size,
                                          stateful=sl_kwargs['stateful'],
                                          num_h=n_lstm,
                                          loss=sl_kwargs['loss'])
                ld_f = folder + 'model_' + str(stps_ep) + '_steps'.replace(
                    '//', '/')
                model_test.load_weights(ld_f)
                env.reset()
                for ind_stp in range(sl_kwargs['test_steps']):
                    obs = env.ob_now
                    obs = obs[np.newaxis]
                    obs = obs[np.newaxis]
                    action = model_test.predict(obs)
                    action = np.argmax(action, axis=-1)[0]
                    _, _, _, _ = env.step(action)
Esempio n. 18
0
    def checkAval(self, dal, al, nomePassato='', cognomePassato=''):
        # todo aggiungere  (self,INFO, dal, al) per verificare che il nome sia lo stesso
        # todo invece che semplicemente vuoto ( serve per fare il controllo nelle modifiche)
        """
        controlla la disponibilità delle prenotazioni
        nell'intervallo delle date fornite
        :param dal:
        :param al:
        :param nomePassato:str
        :param cognomePassato:str
        :return: list
        """
        giorniPermanenza = dal.daysTo(al)
        print("giorni di permanenza: ", giorniPermanenza)
        arrivo = dal
        partenza = al
        database = deepc(self.DataBase)
        aval = True
        listaDisponibili = []
        oggi = arrivo
        while oggi < partenza:
            a, m, g = self.amg(oggi)
            try:
                nome = database[a][m][g]['checkIn']['nome']
                cognome = database[a][m][g]['checkIn']['cognome']
            except KeyError:
                database = self.getDb()
                nome = database[a][m][g]['checkIn']['nome']
                cognome = database[a][m][g]['checkIn']['cognome']
            print('nome CheckAval ', nome, ' nomepassato: ', nomePassato)
            if nome != nomePassato or cognome != cognomePassato:
                if nome != '' and cognome != '':
                    aval = False
                    print(
                        "spiacente, casa non disponibile in questa data",
                        oggi.toString("dd MMM yyyy"),
                    )
                else:
                    listaDisponibili.append(oggi)
            else:
                listaDisponibili.append(oggi)
            oggi = oggi.addDays(1)

        if giorniPermanenza == len(listaDisponibili):
            print("casa libera  tutti i giorni disponibili")
        else:
            print(" casa libera nei giorni:")
            # todo ripristinare la funzionalità qui sotto
            # if len(listaDisponibili) > 0:
            #     self.dateEdit_dal.setDate(listaDisponibili[0])
            #     self.dateEdit_dal.update()
            #     for d in listaDisponibili:
            #         print(d)
            # cancellare quella qui sotto
            if len(listaDisponibili) > 0:
                for d in listaDisponibili:
                    print(d.toString("dd MMM yyyy"))
            else:
                print("nessuna data disponibile")

        return listaDisponibili
Esempio n. 19
0
 def riempi_campi_prenotazioni(self):
     """ prende le info da inserire nei campi
         della prenotazione a partire dalle info
         nel box nella pagina
         del calendario"""
     # todo aggiungere segnale alle mylineEdit perché si sblocchi il tasto salva o modifica
     try:
         info = deepc(self.infoTemp)
         print('infoTemp in riempi_campi_prenotazioni', self.infoTemp)
         if (info['nome'] and info['cognome'] and info['telefono']) == '':
             self.modificaOsalva()
         else:
             self.modificaOsalva(modifica=True)
         self.lineEdit_nome.setText(info['nome'])
         self.lineEdit_cognome.setText(info['cognome'])
         self.lineEdit_telefono.setText(info['telefono'])
         self.lineEdit_email.setText(info['email'])
         self.spinBox_ospiti.setValue(int(info['numero ospiti']))
         self.spinBox_bambini.setValue(int(info['bambini']))
         platform = info['platform']
         if platform != '':
             indiceCombo = self.combo_platformPrenotazioni.findText(
                 platform)
         else:
             indiceCombo = 0
         self.combo_platformPrenotazioni.setCurrentIndex(indiceCombo)
         print('indice Combo: ', indiceCombo)
         print('platform: ', platform)
         # try:
         #
         # except:
         #     print(fex())
         self.plainTextEdit_note.clear()
         try:
             infoNote = self.getInfoFromDate(info['data arrivo'])
         except AttributeError:
             infoNote = info
         self.plainTextEdit_note.insertPlainText(infoNote['note'])
         self.radio_colazione.setChecked(info['colazione'] == 'Si')
         # self.importAdj(self.spinBox_bambini.value() + self.spinBox_ospiti.value())
         stagione = info['stagione']
         indiceComboStagione = self.combo_stagionePrenotazioni.findText(
             stagione)
         if indiceComboStagione == -1:
             indiceComboStagione = self.combo_stagionePrenotazioni.findText(
                 self.config['stagione preferita'])
         self.combo_stagionePrenotazioni.setCurrentIndex(
             indiceComboStagione)
         self.importAdj()
         dataArrivo = info['data arrivo']
         dataPartenza = info['data partenza']
         if (dataArrivo or dataPartenza) is not None:
             self.dateEdit_dal.blockSignals(True)
             self.dateEdit_al.blockSignals(True)
             self.dateEdit_dal.setDate(dataArrivo)
             self.dateEdit_al.setMinimumDate(dataArrivo.addDays(1))
             self.dateEdit_al.setDate(dataPartenza)
             self.dateEdit_dal.blockSignals(False)
             self.dateEdit_al.blockSignals(False)
             self.lineEdit_numeroGiorni.setText(info['totale notti'])
         else:
             # print("else: setDateEdit_dal")
             self.setDateEdit_dal()
             # self.dateEdit_al.setDate(dataPartenza)
     except:
         print(fex())