def stoccaggio_table(soup=None, op=None,dao=None, row=None, all=False): d = None if soup and not all: record = soup.stoccaggio.get(loads(row.object)) else: record = row if op =="DELETE": if all: d = Stoccaggio().getRecord(id=row.id) else: d = Stoccaggio().getRecord(id=loads(row.object)) if d: d.delete() return True elif op == "INSERT": if all: d = Stoccaggio() d.id = record.id else: d = Stoccaggio().getRecord(id=loads(row.object)) elif op == "UPDATE": if all: d = Stoccaggio().getRecord(id=row.id) else: d = Stoccaggio().getRecord(id=loads(row.object)) d.scorta_minima= record.scorta_minima d.livello_riordino = record.livello_riordino d.data_fine_scorte =record.data_fine_scorte d.data_prossimo_ordine = record.data_prossimo_ordine d.id_articolo = record.id_articolo d.id_magazzino = record.id_magazzino d.persist() return True
class AnagraficaStoccaggiEdit(AnagraficaEdit): """ Modifica un record dell'anagrafica dei stoccaggi """ def __init__(self, anagrafica): AnagraficaEdit.__init__( self, anagrafica, "Dati stoccaggi", root="anagrafica_stoccaggi_detail_table", path="_anagrafica_stoccaggi_articoli_elements.glade", ) self._widgetFirstFocus = self.id_magazzino_customcombobox if not posso("PW"): self.promowear_frame.destroy() def draw(self, cplx=False): self.id_articolo_customcombobox.setSingleValue() fillComboboxMagazzini(self.id_magazzino_customcombobox.combobox) self.id_magazzino_customcombobox.connect("clicked", on_id_magazzino_customcombobox_clicked) if self._anagrafica._articoloFissato: self.id_articolo_customcombobox.setId(self._anagrafica._idArticolo) self.id_articolo_customcombobox.set_sensitive(False) if self._anagrafica._magazzinoFissato: findComboboxRowFromId(self.id_magazzino_customcombobox.combobox, self._anagrafica._idMagazzino) self.id_magazzino_customcombobox.set_sensitive(False) def setDao(self, dao): if dao is None: # Crea un nuovo Dao vuoto self.dao = Stoccaggio() self.newDao = True else: # Ricrea il Dao con una connessione al DBMS SQL self.dao = Stoccaggio().getRecord(id=dao.id) self.newDao = False self._refresh() return self.dao def _refresh(self): self.id_articolo_customcombobox.refresh(clear=True, filter=False) self.id_articolo_customcombobox.set_sensitive(True) if self.dao.id_articolo is None: if self._anagrafica._articoloFissato: self.dao.id_articolo = self._anagrafica._idArticolo self.id_articolo_customcombobox.set_sensitive(False) else: self.id_articolo_customcombobox.set_sensitive(False) self.id_articolo_customcombobox.setId(self.dao.id_articolo) self.id_magazzino_customcombobox.combobox.set_active(-1) self.id_magazzino_customcombobox.set_sensitive(True) if self.dao.id_magazzino is None: if self._anagrafica._magazzinoFissato: self.dao.id_magazzino = self._anagrafica._idMagazzino self.id_magazzino_customcombobox.set_sensitive(False) else: self.id_magazzino_customcombobox.set_sensitive(False) findComboboxRowFromId(self.id_magazzino_customcombobox.combobox, self.dao.id_magazzino) self.scorta_minima_entry.set_text(str(self.dao.scorta_minima or 0)) self.livello_riordino_entry.set_text(str(self.dao.livello_riordino or 0)) self.data_fine_scorte_entry.set_text(dateToString(self.dao.data_fine_scorte)) self.data_prossimo_ordine_entry.set_text(dateToString(self.dao.data_prossimo_ordine)) if posso("PW"): self.colore_label.set_text(self.dao.denominazione_colore or "") self.stagione_label.set_text(self.dao.stagione or "") self.genere_label.set_text(self.dao.genere or "") try: tggruppotaglia = self.dao.denominazione_gruppo_taglia + " " + self.dao.denominazione_taglia except: tggruppotaglia = "" self.taglia_label.set_markup(tggruppotaglia) def saveDao(self, tipo=None): if findIdFromCombobox(self.id_magazzino_customcombobox.combobox) is None: obligatoryField(self.dialogTopLevel, self.id_magazzino_customcombobox.combobox) idMagazzino = findIdFromCombobox(self.id_magazzino_customcombobox.combobox) idArticolo = self.id_articolo_customcombobox.getId() if not idArticolo: obligatoryField(self.dialogTopLevel, self.id_articolo_customcombobox) elif idArticolo: a = Stoccaggio().select(idArticolo=idArticolo, idMagazzino=idMagazzino) if a: a[0].scorta_minima = int(self.scorta_minima_entry.get_text() or 0) a[0].livello_riordino = int(self.livello_riordino_entry.get_text() or 0) a[0].data_fine_scorte = stringToDate(self.data_fine_scorte_entry.get_text()) a[0].data_prossimo_ordine = stringToDate(self.data_prossimo_ordine_entry.get_text()) a[0].persist() return self.dao.id_magazzino = idMagazzino self.dao.id_articolo = idArticolo self.dao.scorta_minima = int(self.scorta_minima_entry.get_text() or 0) self.dao.livello_riordino = int(self.livello_riordino_entry.get_text() or 0) self.dao.data_fine_scorte = stringToDate(self.data_fine_scorte_entry.get_text()) self.dao.data_prossimo_ordine = stringToDate(self.data_prossimo_ordine_entry.get_text()) self.dao.persist()