def duplicaListini(self): """ Duplica i listini relativi ad un articolo scelto su un nuovo articolo """ if self._duplicatedDaoId is None: return from promogest.dao.ListinoArticolo import ListinoArticolo listini = ListinoArticolo().select(idArticolo = self._duplicatedDaoId) for listino in listini: daoLA = ListinoArticolo() daoLA.id_listino = listino.id_listino daoLA.id_articolo = self.dao.id daoLA.prezzo_dettaglio = listino.prezzo_dettaglio daoLA.prezzo_ingrosso = listino.prezzo_ingrosso daoLA.ultimo_costo = listino.ultimo_costo daoLA.data_listino_articolo = listino.data_listino_articolo sconti_ingrosso = [] sconti_dettaglio = [] if listino.sconto_vendita_dettaglio: daoLA.applicazione_sconti = "scalare" for s in listino.sconto_vendita_dettaglio: daoScontod = ScontoVenditaDettaglio() daoScontod.valore = s.valore daoScontod.tipo_sconto = s.tipo_sconto sconti_dettaglio.append(daoScontod) if listino.sconto_vendita_dettaglio: daoLA.applicazione_sconti = "scalare" for s in listino.sconto_vendita_ingrosso: daoScontoi = ScontoVenditaIngrosso() daoScontoi.valore = s.valore daoScontoi.tipo_sconto = s.tipo_sconto sconti_ingrosso.append(daoScontoi) daoLA.persist(sconti={"dettaglio":sconti_dettaglio,"ingrosso":sconti_ingrosso}) self._duplicatedDaoId = None
def on_ok_ml_button_clicked(self, button): daos = self._filterClosure(None, None) valore = Decimal(self.valore_ml_entry.get_text() or 0) #if not valore: #return if self.aggiungi_ml_radio.get_active(): segno = "+" else: segno = "-" if self.valore_ml_radio.get_active(): tipo_sconto = "valore" else: tipo_sconto = "percentuale" if self.aggiungi_sconto_dettaglio: for d in daos: sconti_ingrosso = [] sconti_dettaglio = [] if valore > 0: g = ScontoVenditaDettaglio() g.valore = valore g.tipo_sconto = tipo_sconto sconti_dettaglio.append(g) if d.sconto_vendita_ingrosso: h = ScontoVenditaIngrosso() h.valore = d.sconto_vendita_ingrosso[0].valore h.tipo_sconto = d.sconto_vendita_ingrosso[0].tipo_sconto sconti_ingrosso.append(h) d.persist(sconti={"dettaglio":sconti_dettaglio,"ingrosso":sconti_ingrosso}) elif self.aggiungi_sconto_ingrosso: for d in daos: sconti_ingrosso = [] sconti_dettaglio = [] if valore > 0: g = ScontoVenditaIngrosso() g.valore = valore g.tipo_sconto = tipo_sconto sconti_ingrosso.append(g) if d.sconto_vendita_dettaglio: h = ScontoVenditaDettaglio() h.valore = d.sconto_vendita_dettaglio[0].valore h.tipo_sconto = d.sconto_vendita_dettaglio[0].tipo_sconto sconti_ingrosso.append(h) d.persist(sconti={"dettaglio":sconti_dettaglio,"ingrosso":sconti_ingrosso}) elif self.variazione_dettaglio: if not valore: return for d in daos: if d.prezzo_dettaglio is None: d.prezzo_dettaglio = Decimal(0) if segno == "+" and tipo_sconto == "valore": d.prezzo_dettaglio = d.prezzo_dettaglio + valore elif segno == "-" and tipo_sconto == "valore": d.prezzo_dettaglio = d.prezzo_dettaglio - valore elif segno == "+" and tipo_sconto == "percentuale": d.prezzo_dettaglio = d.prezzo_dettaglio * (1 + valore / 100) elif segno == "-" and tipo_sconto == "percentuale": d.prezzo_dettaglio = d.prezzo_dettaglio * ( 1 - valore / 100) Environment.session.add(d) elif self.variazione_ingrosso: if not valore: return for d in daos: if d.prezzo_ingrosso is None: d.prezzo_ingrosso = Decimal(0) if segno == "+" and tipo_sconto == "valore": d.prezzo_ingrosso = d.prezzo_ingrosso + valore elif segno == "-" and tipo_sconto == "valore": d.prezzo_ingrosso = d.prezzo_ingrosso - valore elif segno == "+" and tipo_sconto == "percentuale": d.prezzo_ingrosso = d.prezzo_ingrosso * (1 + valore / 100) elif segno == "-" and tipo_sconto == "percentuale": d.prezzo_ingrosso = d.prezzo_ingrosso * (1 - valore / 100) Environment.session.add(d) Environment.session.commit() messageInfo(msg="Operazione effettuata") self.modifiche_listino.hide() self.refresh()
def sconti_vendita_ingrosso_table(soup=None, op=None, dao=None, row=None, all=False): d = None if soup and not all: record = soup.sconti_vendita_ingrosso.get(loads(row.object)) else: record = row if op == "DELETE": if all: d = ScontoVenditaIngrosso().getRecord(id=row.id) else: d = ScontoVenditaIngrosso().getRecord(id=loads(row.object)) if d: d.delete() return True elif op == "INSERT": if all: d = ScontoVenditaIngrosso() d.id = record.id else: d = ScontoVenditaIngrosso().getRecord(id=loads(row.object)) elif op == "UPDATE": if all: d = ScontoVenditaIngrosso().getRecord(id=row.id) else: d = ScontoVenditaIngrosso().getRecord(id=loads(row.object)) if not d: d = ScontoVenditaIngrosso() d.id = record.id d.id_listino = record.id_listino d.id_articolo = record.id_articolo d.data_listino_articolo = record.data_listino_articolo d.persist() return True