Exemplo n.º 1
0
    def on_confirm_button_clicked(self, button=None):

        if (self.data_movimento_entry.get_text() == ''):
            obligatoryField(self.getTopLevel(), self.data_movimento_entry)

        if (findIdFromCombobox(self.id_operazione_combobox) is None):
            obligatoryField(self.getTopLevel(), self.id_operazione_combobox)

        note = "Rif. " + self.dao.operazione + " n. " + str(self.dao.numero) + " del " + dateToString(self.dao.data_movimento)

        newDao = TestataMovimento()
        newDao.data_movimento = stringToDate(self.data_movimento_entry.get_text())
#        newDao.numero = self.dao.numero
        newDao.parte = self.dao.parte
        newDao.registro_numerazione = self.dao.registro_numerazione
        newDao.operazione = findIdFromCombobox(self.id_operazione_combobox)
        newDao.note_interne = self.dao.note_interne
        newDao.note_pie_pagina = self.dao.note_pie_pagina
        newDao.id_testata_documento = self.dao.id_testata_documento
        if  self.personaGiuridicaCambiata:
            if not self.id_persona_giuridica_customcombobox.getId():
                obligatoryField(self.getTopLevel(), self.id_persona_giuridica_customcombobox)
            if self.id_persona_giuridica_customcombobox.getType() == "cliente":
                newDao.id_cliente = self.id_persona_giuridica_customcombobox.getId()
                newDao.id_fornitore = None
            else:
                newDao.id_fornitore = self.id_persona_giuridica_customcombobox.getId()
                newDao.id_cliente = None
        elif not self.persona_giuridica_sensitive:
            newDao.id_fornitore = None
            newDao.id_cliente = None
        else:
            newDao.id_fornitore = self.dao.id_fornitore
            newDao.id_cliente = self.dao.id_cliente
        righe = []
        righeMovimento = []
        rig = self.dao.righe
        for r in rig:
            daoRiga = RigaMovimento()
            daoRiga.id_testata_movimento = newDao.id
            daoRiga.id_articolo = r.id_articolo
            if self.id_magazzino_combobox.get_active() != -1:
                iddi = findIdFromCombobox(self.id_magazzino_combobox)
                daoRiga.id_magazzino = iddi
            else:
                daoRiga.id_magazzino = r.id_magazzino
            daoRiga.descrizione = r.descrizione
            daoRiga.id_listino = r.id_listino
            daoRiga.percentuale_iva = r.percentuale_iva
            daoRiga.applicazione_sconti = r.applicazione_sconti
            daoRiga.quantita = r.quantita
            daoRiga.id_multiplo = r.id_multiplo
            daoRiga.moltiplicatore = r.moltiplicatore
            #ricalcola prezzi
            listino = self.id_prezzo_combobox.get_model()[self.id_prezzo_combobox.get_active()][0]
            if  listino is None:
                daoRiga.id_listino = r.id_listino
                daoRiga.valore_unitario_lordo = r.valore_unitario_lordo
                daoRiga.valore_unitario_netto = r.valore_unitario_netto
            else:
                #ricalcola prezzi
                listinoArticolo = Environment.params['session'].query(ListinoArticolo).filter(ListinoArticolo.id_listino == listino.id and r.id_articolo == ListinoArticolo.id_articolo).all()
                if len(listinoArticolo) > 0:
                    daoRiga.id_listino = listinoArticolo[0].id_listino
                    daoRiga.valore_unitario_lordo = listinoArticolo[0].prezzo_dettaglio
                    daoRiga.valore_unitario_netto = listinoArticolo[0].prezzo_ingrosso
                else:
                    daoRiga.id_listino = r.id_listino
                    daoRiga.valore_unitario_lordo = r.valore_unitario_lordo
                    daoRiga.valore_unitario_netto = r.valore_unitario_netto
            sconti = []
            scontiRigaMovimento = []
            sco = r.sconti
            if self.mantieni_sconti_checkbutton.get_active() :
                for s in sco:
                    daoSconto = ScontoRigaMovimento()
                    daoSconto.valore = s.valore
                    daoSconto.tipo_sconto = s.tipo_sconto
                    scontiRigaMovimento.append(daoSconto)
            daoRiga.scontiRigheMovimento = scontiRigaMovimento
            righeMovimento.append(daoRiga)

        newDao.righeMovimento = righeMovimento
        newDao.persist()

#        res = TestataMovimento(newDao.id)

        msg = "Nuovo movimento creato !\n\nIl nuovo movimento e' il n. " + str(newDao.numero) + " del " + dateToString(newDao.data_movimento) + " (" + newDao.operazione + ")"
        messageInfo(msg=msg, transient=self.getTopLevel())
        self.destroy()