def listino_table(soup=None, op=None, dao=None, row=None, all=False): d = None if soup and not all: record = soup.listino.get(loads(row.object)) else: record = row if op =="DELETE": if all: d = Listino().getRecord(id=[row.denominazione,row.data_listino]) else: d = Listino().getRecord(id=loads(row.object)) if d: d.delete() return True elif op == "INSERT": if all: d = Listino() d.id = record.id else: d = Listino().getRecord(id=loads(row.object)) elif op == "UPDATE": if all: d = Listino().select(id=row.id) if d: d = d[0] else: d = Listino().getRecord(id=loads(row.object)) d.denominazione = record.denominazione d.descrizione = record.descrizione d.data_listino= record.data_listino d.listino_attuale = record.listino_attuale d.visible= record.visible d.persist() return True
def on_confirms_button_clicked(self, button): if self.data_listino_duplicato_entry.get_text() == '': obligatoryField(self.getTopLevel(), self.data_listino_duplicato_entry) if (self.nome_listino_entry.get_text() == ''): obligatoryField(self.getTopLevel(), self.nome_listino_entry) if (self.descrizione_listino_entry.get_text() == ''): obligatoryField(self.getTopLevel(), self.descrizione_listino_entry) tutto = self.tutto_duplicato_check.get_active() tieni_data = self.tieni_data_check.get_active() sconto = self.duplica_listini_scontowidget.get_text() tiposconto = self.duplica_listini_scontowidget.tipoSconto plus = self.plus_radio.get_active() # Controllo eventuali listini con stessa coppia denominazione e data _denominazione = self.nome_listino_entry.get_text() _data = stringToDate(self.data_listino_duplicato_entry.get_text()) _dataOra = stringToDateTime(self.data_listino_duplicato_entry.get_text()) if _denominazione and _data: check = Listino().select(denominazione=_denominazione, dataListino=_dataOra, batchSize=None) if check: if len(check) > 0: messageWarning(msg='Il listino è già presente.') return newDao = Listino() newDao.data_listino = _data newDao.denominazione = _denominazione newDao.descrizione = self.descrizione_listino_entry.get_text() if tutto: newDao.listino_attuale = True newDao.visible = True newDao.visible = True newDao.persist() lcc = ListinoCategoriaCliente().select(idListino=self.dao.id, batchSize=None) if lcc: for l in lcc: lccdao = ListinoCategoriaCliente() lccdao.id_listino = newDao.id lccdao.id_categoria_cliente = l.id_categoria_cliente lccdao.persist() lcl = ListinoComplessoListino().select(idListino=self.dao.id, batchSize=None) if lcl: for l in lcl: lcldao = ListinoComplessoListino() lcldao.id_listino = newDao.id lcldao.id_listino_complesso = l.id_listino_complesso lcldao.persist() lm = ListinoMagazzino().select(idListino=self.dao.id, batchSize=None) if lm: for l in lm: lmdao = ListinoMagazzino() lmdao.id_listino = newDao.id lmdao.id_magazzino = l.id_magazzino lmdao.persist() la = ListinoArticolo().select(idListino= self.dao.id, batchSize=None) if la: for l in la: ladao = ListinoArticolo() ladao.id_listino = newDao.id ladao.id_articolo = l.id_articolo if not l.prezzo_dettaglio: l.prezzo_dettaglio = Decimal('0.00') if not l.prezzo_ingrosso: l.prezzo_ingrosso = Decimal('0.00') if sconto: if tiposconto == "percentuale": if plus: ladao.prezzo_dettaglio = l.prezzo_dettaglio + (l.prezzo_dettaglio * Decimal(sconto) / 100) ladao.prezzo_ingrosso = l.prezzo_ingrosso +(l.prezzo_ingrosso * Decimal(sconto) / 100) # ladao.ultimo_costo = l.ultimo_costo + (l.ultimo_costo * Decimal(sconto) / 100) else: ladao.prezzo_dettaglio = l.prezzo_dettaglio - (l.prezzo_dettaglio * Decimal(sconto) / 100) ladao.prezzo_ingrosso = l.prezzo_ingrosso -(l.prezzo_ingrosso * Decimal(sconto) / 100) # ladao.ultimo_costo = l.ultimo_costo -(l.ultimo_costo * Decimal(sconto) / 100) else: if plus: ladao.prezzo_dettaglio = l.prezzo_dettaglio + Decimal(sconto) ladao.prezzo_ingrosso = l.prezzo_ingrosso + Decimal(sconto) # ladao.ultimo_costo = l.ultimo_costo + Decimal(sconto) else: ladao.prezzo_dettaglio = l.prezzo_dettaglio - Decimal(sconto) ladao.prezzo_ingrosso = l.prezzo_ingrosso - Decimal(sconto) # ladao.ultimo_costo = l.ultimo_costo - Decimal(sconto) else: ladao.prezzo_dettaglio = l.prezzo_dettaglio ladao.prezzo_ingrosso = l.prezzo_ingrosso ladao.ultimo_costo = l.ultimo_costo if tieni_data: ladao.data_listino_articolo = l.data_listino_articolo else: ladao.data_listino_articolo = datetime.datetime.now() ladao.listino_attuale = True ladao.visible = True Environment.session.add(ladao) Environment.session.commit() messageInfo(msg="Nuovo Listino creato") self.destroy()