def save(self): """ Salvataggio nuovo articolo """ try: self.daoArticolo.codice = self.codice_entry.get_text() self.daoArticolo.denominazione = self.denominazione_entry.get_text() self.daoArticolo.id_aliquota_iva = findIdFromCombobox(self.id_aliquota_iva_customcombobox.combobox) self.daoArticolo.id_famiglia_articolo = findIdFromCombobox(self.id_famiglia_articolo_customcombobox.combobox) self.daoArticolo.id_categoria_articolo = findIdFromCombobox(self.id_categoria_articolo_customcombobox.combobox) self.daoArticolo.id_unita_base = findIdFromCombobox(self.id_unita_base_combobox) self.daoArticolo.produttore = self.produttore_entry.get_text() self.daoArticolo.cancellato = False self.daoArticolo.sospeso = False self.daoArticolo.url_immagine=None self.daoArticolo.id_immagine=None self.daoArticolo.persist() if self.codice_a_barre_entry.get_text() != '': self.daoCodiceABarreArticolo = CodiceABarreArticolo() self.daoCodiceABarreArticolo.codice = self.codice_a_barre_entry.get_text() self.daoCodiceABarreArticolo.id_articolo = self.daoArticolo.id self.daoCodiceABarreArticolo.primario = True self.daoCodiceABarreArticolo.persist() if findIdFromCombobox(self.id_listino_customcombobox.combobox) is not None: try: prezzoDettaglio = float(self.prezzo_dettaglio_entry.get_text()) except: self.prezzo_dettaglio_entry.set_text('') prezzoDettaglio = float(0) try: prezzoIngrosso = float(self.prezzo_ingrosso_entry.get_text()) except: self.prezzo_ingrosso_entry.set_text('') prezzoIngrosso = float(0) if prezzoDettaglio > 0 or prezzoIngrosso > 0: self.daoListinoArticolo = ListinoArticolo() self.daoListinoArticolo.id_listino = findIdFromCombobox(self.id_listino_customcombobox.combobox) self.daoListinoArticolo.id_articolo = self.daoArticolo.id self.daoListinoArticolo.prezzo_dettaglio = prezzoDettaglio self.daoListinoArticolo.prezzo_ingrosso = prezzoIngrosso self.daoListinoArticolo.ultimo_costo = float(0) self.daoListinoArticolo.data_listino_articolo = datetime.datetime.today() self.daoListinoArticolo.listino_attuale = True self.daoListinoArticolo.persist() except: raise
class AnagraficaArticoliSemplice(GladeWidget): def __init__(self): GladeWidget.__init__(self, root='anagrafica_articoli_semplice_dialog', path='anagrafica_articoli_semplice_dialog.glade') self.placeWindow(self.getTopLevel()) self._loading = False self._codiceByFamiglia = promogest.dao.Articolo.isNuovoCodiceByFamiglia() # Crea un nuovo Dao vuoto self.daoArticolo = Articolo() self.daoCodiceABarreArticolo = None self.daoListinoArticolo = None # Assegna il codice se ne e' prevista la crazione automatica, ma non per famiglia if not self._codiceByFamiglia: self.daoArticolo.codice = promogest.dao.Articolo.getNuovoCodiceArticolo() self.draw() def draw(self): #Popola combobox aliquote iva fillComboboxAliquoteIva(self.id_aliquota_iva_customcombobox.combobox) self.id_aliquota_iva_customcombobox.connect('clicked', on_id_aliquota_iva_customcombobox_clicked) #Popola combobox categorie articolo fillComboboxCategorieArticoli(self.id_categoria_articolo_customcombobox.combobox) self.id_categoria_articolo_customcombobox.connect('clicked', on_id_categoria_articolo_customcombobox_clicked) #Popola combobox famiglie articolo fillComboboxFamiglieArticoli(self.id_famiglia_articolo_customcombobox.combobox) self.id_famiglia_articolo_customcombobox.connect('clicked', on_id_famiglia_articolo_customcombobox_clicked) if self._codiceByFamiglia: #Collega la creazione di un nuovo codice articolo al cambiamento della famiglia self.id_famiglia_articolo_customcombobox.combobox.connect('changed', self.on_id_famiglia_articolo_customcombobox_changed) #Popola combobox listini fillComboboxListini(self.id_listino_customcombobox.combobox) self.id_listino_customcombobox.connect('clicked', on_id_listino_customcombobox_clicked) self.id_listino_customcombobox.combobox.connect('changed', self.on_id_listino_customcombobox_changed) #Popola combobox unita base fillComboboxUnitaBase(self.id_unita_base_combobox) # Seleziona Pezzi come unita' di default findComboboxRowFromId(self.id_unita_base_combobox, 1) # Seleziona il listino di default try: findComboboxRowFromStr(self.id_listino_customcombobox.combobox, Environment.conf.Dettaglio.listino, 2) except: pass if self._codiceByFamiglia: self.codice_a_barre_entry.grab_focus() else: self.codice_entry.set_text(self.daoArticolo.codice or '') if emptyStringToNone(self.daoArticolo.codice) is None: self.codice_entry.grab_focus() else: self.codice_a_barre_entry.grab_focus() self.getTopLevel().show_all() def on_confirm_button_clicked(self, button=None): if (self.codice_entry.get_text() == ''): obligatoryField(self.getTopLevel(), self.codice_entry) if (self.denominazione_entry.get_text() == ''): obligatoryField(self.getTopLevel(), self.denominazione_entry) if (self.produttore_entry.get_text() == ''): obligatoryField(self.getTopLevel(), self.produttore_entry) if findIdFromCombobox(self.id_famiglia_articolo_customcombobox.combobox) is None: obligatoryField(self.getTopLevel(), self.id_famiglia_articolo_customcombobox.combobox) if findIdFromCombobox(self.id_categoria_articolo_customcombobox.combobox) is None: obligatoryField(self.getTopLevel(), self.id_categoria_articolo_customcombobox.combobox) if findIdFromCombobox(self.id_aliquota_iva_customcombobox.combobox) is None: obligatoryField(self.getTopLevel(), self.id_aliquota_iva_customcombobox.combobox) if findIdFromCombobox(self.id_unita_base_combobox) is None: obligatoryField(self.getTopLevel(), self.id_unita_base_combobox) # controllo esistenza codice articolo arts = Articolo().select(codice = self.codice_entry.get_text(), offset = None, batchSize = None) if len(arts) > 0: messageInfo(msg="Codice articolo gia' assegnato: !") self.codice_entry.grab_focus() raise Exception, 'Operation aborted' # controllo esistenza codice a barre su altro articolo bars = CodiceABarreArticolo().select(idArticolo=None, codice=self.codice_a_barre_entry.get_text(), offset=None, batchSize=None) if len(bars) > 0: articolo = leggiArticolo(bars[0].id_articolo) msg = "Codice a barre gia' assegnato all'articolo: \n\nCod. " + articolo["codice"] + " (" + articolo["denominazione"] + ")" messageInfo(msg=msg) self.codice_a_barre_entry.grab_focus() raise Exception, 'Operation aborted' self.save() self.quit() def save(self): """ Salvataggio nuovo articolo """ try: self.daoArticolo.codice = self.codice_entry.get_text() self.daoArticolo.denominazione = self.denominazione_entry.get_text() self.daoArticolo.id_aliquota_iva = findIdFromCombobox(self.id_aliquota_iva_customcombobox.combobox) self.daoArticolo.id_famiglia_articolo = findIdFromCombobox(self.id_famiglia_articolo_customcombobox.combobox) self.daoArticolo.id_categoria_articolo = findIdFromCombobox(self.id_categoria_articolo_customcombobox.combobox) self.daoArticolo.id_unita_base = findIdFromCombobox(self.id_unita_base_combobox) self.daoArticolo.produttore = self.produttore_entry.get_text() self.daoArticolo.cancellato = False self.daoArticolo.sospeso = False self.daoArticolo.url_immagine=None self.daoArticolo.id_immagine=None self.daoArticolo.persist() if self.codice_a_barre_entry.get_text() != '': self.daoCodiceABarreArticolo = CodiceABarreArticolo() self.daoCodiceABarreArticolo.codice = self.codice_a_barre_entry.get_text() self.daoCodiceABarreArticolo.id_articolo = self.daoArticolo.id self.daoCodiceABarreArticolo.primario = True self.daoCodiceABarreArticolo.persist() if findIdFromCombobox(self.id_listino_customcombobox.combobox) is not None: try: prezzoDettaglio = float(self.prezzo_dettaglio_entry.get_text()) except: self.prezzo_dettaglio_entry.set_text('') prezzoDettaglio = float(0) try: prezzoIngrosso = float(self.prezzo_ingrosso_entry.get_text()) except: self.prezzo_ingrosso_entry.set_text('') prezzoIngrosso = float(0) if prezzoDettaglio > 0 or prezzoIngrosso > 0: self.daoListinoArticolo = ListinoArticolo() self.daoListinoArticolo.id_listino = findIdFromCombobox(self.id_listino_customcombobox.combobox) self.daoListinoArticolo.id_articolo = self.daoArticolo.id self.daoListinoArticolo.prezzo_dettaglio = prezzoDettaglio self.daoListinoArticolo.prezzo_ingrosso = prezzoIngrosso self.daoListinoArticolo.ultimo_costo = float(0) self.daoListinoArticolo.data_listino_articolo = datetime.datetime.today() self.daoListinoArticolo.listino_attuale = True self.daoListinoArticolo.persist() except: raise def on_id_famiglia_articolo_customcombobox_changed(self, combobox): """ Restituisce un nuovo codice articolo al cambiamento della famiglia """ if self._loading: return if not self._codiceByFamiglia: return idFamiglia = findIdFromCombobox(self.id_famiglia_articolo_customcombobox.combobox) if idFamiglia is not None: self.daoArticolo.codice = promogest.dao.Articolo.getNuovoCodiceArticolo(idFamiglia) self.codice_entry.set_text(self.daoArticolo.codice) def on_id_listino_customcombobox_changed(self, combobox): """ Abilita/disabilita i campi prezzo """ idListino = findIdFromCombobox(self.id_listino_customcombobox.combobox) self.prezzo_dettaglio_entry.set_sensitive(idListino is not None) self.prezzo_ingrosso_entry.set_sensitive(idListino is not None) def on_anagrafica_articoli_semplice_dialog_close(self, widget, event=None): self.quit() def quit(self): self.destroy() return None