Пример #1
0
 def _refresh(self):
     findComboboxRowFromId(self.id_banca_ccb.combobox, self.dao.id_banca)
     self.numero_conto_entry.set_text(self.dao.numero_conto or '')
     self.data_widget.set_text(dateToString(self.dao.data_riporto) or '')
     self.valore_smentry.set_text(str(self.dao.valore_riporto or Decimal(0)))
     self.codice_sia_entry.set_text(self.dao.codice_sia or '')
     self.banca_pref_check.set_active(self.dao.banca_predefinita or False)
Пример #2
0
    def refresh(self):
        # Aggiornamento TreeView
        idArticolo = self.id_articolo_filter_customcombobox1.getId()
        if idArticolo is None:
            self._treeViewModel.clear()
            messageInfo(transient=self._visualizzazione.getTopLevel(), msg='Selezionare un articolo !')
            return

        idListino = findIdFromCombobox(self.id_listino_filter_combobox1)
        daDataListino = stringToDate(self.da_data_listino_filter_entry.get_text())
        aDataListino = stringToDate(self.a_data_listino_filter_entry.get_text())

        self.numRecords = ListinoArticolo().count(idArticolo=idArticolo,
                                                            idListino=idListino,
                                                            listinoAttuale=None,
#                                                            daDataListino =daDataListino,
#                                                            aDataListino=aDataListino
                                                            )

        self._refreshPageCount()

        liss = ListinoArticolo().select(orderBy=self.orderBy,
                                                    idArticolo=idArticolo,
                                                    idListino=idListino,
                                                    listinoAttuale=None,
#                                                    daDataListino=daDataListino,
#                                                    aDataListino=aDataListino,
                                                    offset = self.offset,
                                                    batchSize = self.batchSize)


        self._treeViewModel.clear()

        for l in liss:
            przDet = mN(l.prezzo_dettaglio or 0)
            przIngr = mN(l.prezzo_ingrosso or 0)
            ricDett = '%-6.3f' % calcolaRicarico(float(l.ultimo_costo or 0),
                                                 float(l.prezzo_dettaglio or 0),
                                                 float(l.percentuale_iva or 0))
            margDett = '%-6.3f' % calcolaMargine(float(l.ultimo_costo or 0),
                                                 float(l.prezzo_dettaglio or 0),
                                                 float(l.percentuale_iva or 0))
            ricIngr = '%-6.3f' % calcolaRicarico(float(l.ultimo_costo or 0),
                                                 float(l.prezzo_ingrosso or 0))
            margIngr = '%-6.3f' % calcolaMargine(float(l.ultimo_costo or 0),
                                                 float(l.prezzo_ingrosso or 0))

            self._treeViewModel.append((l,
                                        (l.denominazione or ''),
                                        dateToString(l.data_listino),
                                        przDet, ricDett, margDett,
                                        przIngr, ricIngr, margIngr,
                                        (l.ultimo_costo or 0)))
    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])
Пример #4
0
    def refresh(self):
        # Aggiornamento TreeView
        idAzienda = self._anagrafica._idAzienda
        numero_conto = prepareFilterString(
                self.numero_conto_filter_entry.get_text())

        def filterCountClosure():
            return BancheAzienda().count(idAzienda=idAzienda,
                                           numeroConto=numero_conto)

        self._filterCountClosure = filterCountClosure

        self.numRecords = self.countFilterResults()

        self._refreshPageCount()

        # Let's save the current search as a closure
        def filterClosure(offset, batchSize):
            return BancheAzienda().select(orderBy=self.orderBy,
                                          idAzienda=idAzienda,
                                          numeroConto=numero_conto,
                                          offset=offset,
                                          batchSize=batchSize)

        self._filterClosure = filterClosure

        daos = self.runFilter()

        self._treeViewModel.clear()

        for dao in daos:
            self._treeViewModel.append((dao,
                                        (dao.denominazione_banca),
                                        (dao.numero_conto or ''),
                                        (dateToString(dao.data_riporto) or ''),
                                        (str(dao.valore_riporto) or ''),
                                        (dao.codice_sia or ''),
                                        (dao.banca_predefinita or False)))
Пример #5
0
    def analizza(self, data_inizio=None, data_fine=None, pageData=None):
        if not data_inizio:
            messageError(msg='Inserire una data d\'inizio periodo.')
            return 0
        if not data_fine:
            data_inizio_, data_fine = dataInizioFineMese(data_inizio)

        documenti = TestataDocumento().select(complexFilter=(and_(or_(TestataDocumento.operazione=='Fattura differita vendita', TestataDocumento.operazione=='Fattura accompagnatoria'), TestataDocumento.data_documento.between(data_inizio, data_fine))), batchSize=None)

        if not documenti:
            messageInfo(msg="Nessun risultato.")
            return 0

        righe = []

        buff = self.recordIB()

        i = 0
        totale_importi = Decimal(0)

        for documento in documenti:

            if self.progressbar:
                pbar(self.progressbar, parziale=i, totale=len(documenti))

            ope = leggiOperazione(documento.operazione)
            if ope:
                if ope['tipoPersonaGiuridica'] != 'cliente':
                    continue

            banca = None
            if documento.id_banca:
                banca = leggiBanca(documento.id_banca)
            else:
                continue

            cli = leggiCliente(documento.id_cliente)
            cli_ente = Cliente().getRecord(id=documento.id_cliente)
            cod_fisc_piva = ''
            if cli_ente:
                cod_fisc_piva = cli_ente.codice_fiscale or cli_ente.partita_iva
            else:
                cod_fisc_piva = documento.codice_fiscale_cliente
            debitore = Debitore(cod_fisc_piva, banca['abi'], banca['cab'])
            debitore.descrizione[0] = ''
            if cli['ragioneSociale']:
                debitore.descrizione[0] = cli['ragioneSociale']
            else:
                debitore.descrizione[0] = cli['cognome'] + ' ' + cli['nome']
            debitore.indirizzo = documento.indirizzo_cliente
            debitore.CAP = documento.cap_cliente
            debitore.provincia = documento.provincia_cliente
            debitore.comune = documento.localita_cliente

            for scadenza in documento.scadenze:
                if pagamentoLookup(scadenza.pagamento):

                    row = "%s N. %s a %s del %s \nImporto: %s data scadenza: %s" % (documento.operazione,
                                                     documento.numero,
                                                     documento.intestatario,
                                                     dateToString(documento.data_documento),
                                                     # scadenza.pagamento,
                                                     mN(scadenza.importo, 2),
                                                     dateToString(scadenza.data)
                                                     )

                    progressivo = i + 1
                    totale_importi += scadenza.importo
                    buff += self.record14(progressivo, scadenza.data, scadenza.importo, debitore)
                    buff += self.record20(progressivo)
                    buff += self.record30(progressivo, debitore)
                    buff += self.record40(progressivo, debitore)
                    buff += self.record50(progressivo, debitore, row.replace('\n', ''))
                    buff += self.record51(progressivo, progressivo)
                    buff += self.record70(progressivo)

                    riga = {
                        'destinatario': debitore.descrizione[0],
                        'indirizzo': debitore.indirizzo,
                        'CAP': debitore.CAP,
                        'comune': debitore.comune,
                        'provincia': debitore.provincia,
                        'cod_fisc_piva': cod_fisc_piva,
                        'banca_abi': banca['abi'],
                        'banca_cab': banca['cab'],
                        'importo': scadenza.importo,
                        'data_scadenza': scadenza.data,
                        'rif_debito': row
                    }
                    righe.append(riga)

                    i = i + 1

        buff += self.recordEF(i, totale_importi)

        pageData['righe'] = righe
        pageData['totale_importi'] = totale_importi
        pageData['disposizioni'] = i

        if self.progressbar:
            pbar(self.progressbar, stop=True)

        self._buffer = buff