def setDao(self, dao, codice=None): self.dao = dao if dao is None: self.dao = CodiceABarreArticolo() self.dao.id_articolo = self._anagrafica._idArticolo if codice: self.dao.codice = codice self._anagrafica._newRow((self.dao, codice, False)) else: self._anagrafica._newRow((self.dao, '', False)) #self._refresh() return self.dao
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 updateDao(self): if self.dao: self.dao = CodiceABarreArticolo().getRecord(id=self.dao.id) self._refresh()
class AnagraficaCodiciABarreArticoliDetail(AnagraficaDetail): """ Dettaglio dell'anagrafica dei codici a barre """ def __init__(self, anagrafica): AnagraficaDetail.__init__(self, anagrafica, path='_anagrafica_codici_a_barre_articoli_elements.glade') def setDao(self, dao, codice=None): self.dao = dao if dao is None: self.dao = CodiceABarreArticolo() self.dao.id_articolo = self._anagrafica._idArticolo if codice: self.dao.codice = codice self._anagrafica._newRow((self.dao, codice, False)) else: self._anagrafica._newRow((self.dao, '', False)) #self._refresh() return self.dao def updateDao(self): if self.dao: self.dao = CodiceABarreArticolo().getRecord(id=self.dao.id) self._refresh() def _refresh(self): sel = self._anagrafica.anagrafica_treeview.get_selection() (model, iterator) = sel.get_selected() if iterator and self.dao: model.set_value(iterator, 0, self.dao) model.set_value(iterator, 1, self.dao.codice) model.set_value(iterator, 2, self.dao.primario or False) def saveDao(self): sel = self._anagrafica.anagrafica_treeview.get_selection() (model, iterator) = sel.get_selected() codice = model.get_value(iterator, 1) or '' if (codice == ''): obligatoryField(self._anagrafica.getTopLevel(), self._anagrafica.anagrafica_treeview) self.verifica(codice) primario = model.get_value(iterator, 2) self.dao.id_articolo = self._anagrafica._idArticolo self.dao.codice = codice self.dao.primario = primario self.dao.persist() def deleteDao(self): self.dao.delete() def verifica(self, codice): bars = CodiceABarreArticolo().select(idArticolo=None, codice=codice, offset=None, batchSize=None) if len(bars) > 0: # FIXME: la select non esegue una ricerca esatta !! if bars[0].codice != codice: return if bars[0].id_articolo != self._anagrafica._idArticolo: articolo = leggiArticolo(bars[0].id_articolo) msg = "Codice gia' assegnato all'articolo: \n\nCod. " \ + articolo["codice"] + " (" + articolo["denominazione"] + ")" messageInfo(msg=msg, transient=self._anagrafica.getTopLevel()) raise Exception('Operation aborted: Cod Barre già assegnato')
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
def fillDaos(self): """fillDaos method fills all Dao related to daoArticolo """ if posso("PW") and self.tipoArticolo == "SON": self.daoArticolo.codice = self.articoloPadre.codice + self.gruppo_taglia[0:3] + self.taglia + self.colore self.daoArticolo.denominazione = self.articoloPadre.denominazione + ' ' + self.taglia + ' ' + self.colore self.codice_articolo = self.articoloPadre else: if self.codice_articolo is None or self.codice_articolo == "None": self.codice_articolo = promogest.dao.Articolo.getNuovoCodiceArticolo() self.daoArticolo.codice = str(self.codice_articolo) if self.denominazione_articolo: self.daoArticolo.denominazione = str(self.denominazione_articolo) else: if not self.daoArticolo.denominazione: messageInfo(msg= "ATTENZIONE DESCRIZIONE MANCANTE\nIN INSERIMENTO NUOVO ARTICOLO %s" %str(self.codice_barre_articolo)) # raise NameError("ERRORE DESCRIZIONE MANCANTE") return # print "STO PER SALVARE ", self.daoArticolo.denominazione #families id_famiglia = None if self.famiglia_articolo is None: self.famiglia_articolo_id = int(self.defaults['Famiglia']) self.famiglia_articolo = FamigliaArticolo().getRecord(id=self.famiglia_articolo_id) id_famiglia = self.famiglia_articolo.id else: self._families = FamigliaArticolo().select(batchSize=None) code_list = [] for f in self._families: code_list.append(f.codice) if self.famiglia_articolo in (f.denominazione_breve, f.denominazione, f.codice, f.id): id_famiglia = f.id break if id_famiglia is None: family_code = self.famiglia_articolo[:4] if len(self._families) > 0: ind = 0 for code in code_list: if family_code == code[:4]: ind +=1 family_code = family_code+'/'+str(ind) daoFamiglia = FamigliaArticolo() daoFamiglia.codice = family_code daoFamiglia.denominazione_breve = self.famiglia_articolo[:10] daoFamiglia.denominazione = self.famiglia_articolo daoFamiglia.id_padre = None daoFamiglia.persist() id_famiglia = daoFamiglia.id self._families.append(daoFamiglia) self.daoArticolo.id_famiglia_articolo = id_famiglia #categories id_categoria = None if self.categoria_articolo is None: self.categoria_articolo_id = self.defaults['Categoria'] self.categoria_articolo = CategoriaArticolo().getRecord(id=self.categoria_articolo_id) id_categoria = self.categoria_articolo.id else: self._categories = CategoriaArticolo().select(batchSize=None) category_list = [] for c in self._categories: category_list.append(c.denominazione_breve) if self.categoria_articolo in (c.denominazione, c.denominazione_breve): id_categoria = c.id break if id_categoria == None: category_short_name = self.categoria_articolo[:7] if len(self._categories) > 0: ind = 0 for category in category_list: if category_short_name == category[:7]: ind +=1 category_short_name = category_short_name+'/'+str(ind) daoCategoria = CategoriaArticolo() daoCategoria.denominazione_breve = category_short_name daoCategoria.denominazione = self.categoria_articolo daoCategoria.persist() id_categoria = daoCategoria.id self._categories.append(daoCategoria) self.daoArticolo.id_categoria_articolo = id_categoria #IVA id_aliquota_iva = None if self.aliquota_iva is None: self.aliquota_iva_id = self.defaults['Aliquota iva'] self.aliquota_iva = AliquotaIva().getRecord(id=self.aliquota_iva_id) id_aliquota_iva = self.aliquota_iva.id else: self._vats = AliquotaIva().select(batchSize=None) for v in self._vats: if self.aliquota_iva.lower() in (v.denominazione_breve.lower(), v.denominazione.lower()) or\ int(str(self.aliquota_iva).replace('%', '') or 20) == int(v.percentuale): id_aliquota_iva = v.id break if id_aliquota_iva is None: self.aliquota_iva = str(self.aliquota_iva).replace('%', '') daoAliquotaIva = AliquotaIva() daoAliquotaIva.denominazione = 'ALIQUOTA '+ self.aliquota_iva +'%' daoAliquotaIva.denominazione_breve = self.aliquota_iva + '%' daoAliquotaIva.id_tipo = 1 daoAliquotaIva.percentuale = Decimal(self.aliquota_iva) daoAliquotaIva.persist() id_aliquota_iva = daoAliquotaIva.id self._vats.append(daoAliquotaIva) self.daoArticolo.id_aliquota_iva = id_aliquota_iva #UNITA BASE id_unita_base = None if self.unita_base is None: self.unita_base_id = self.defaults['Unita base'] #FIXME: promogest2 ----proviamo # La storedProcedure UnitaBaseGet NON esiste e la chiamta Dao #qui sotto fallisce con un errore!!! self.unita_base = UnitaBase().getRecord(id=self.unita_base_id) id_unita_base = self.unita_base_id else: unis = UnitaBase().select(batchSize=None) for u in unis: if self.unita_base.lower() in (u.denominazione.lower(), u.denominazione_breve.lower()): id_unita_base = u.id break if id_unita_base is None: self.unita_base = UnitaBase().select(denominazione='Pezzi', batchSize=None)[0] id_unita_base = self.unita_base.id self.daoArticolo.id_unita_base = id_unita_base self.daoArticolo.produttore = self.produttore or '' self.daoArticolo.cancellato = False self.daoArticolo.sospeso = False # print "PTIMA DEL PERSIT", self.daoArticolo.__dict__ self.daoArticolo.persist() product_id = self.daoArticolo.id #barcode if self.codice_barre_articolo is not None: self.codice_barre_articolo = str(self.codice_barre_articolo).strip() try: oldCodeBar= CodiceABarreArticolo().select(idArticolo=product_id) if oldCodeBar: for codes in oldCodeBar: codes.primario = False codes.persist() except: pass barCode = CodiceABarreArticolo().\ select(codiceEM=self.codice_barre_articolo, batchSize=None) if len(barCode) > 0: daoBarCode = CodiceABarreArticolo().getRecord(id=barCode[0].id) daoBarCode.id_articolo = product_id daoBarCode.primario = True daoBarCode.persist() else: daoBarCode = CodiceABarreArticolo() daoBarCode.id_articolo = product_id daoBarCode.codice = self.codice_barre_articolo daoBarCode.primario = True daoBarCode.persist() #price-list--> product decimalSymbol = self.PLModel._decimalSymbol if (self.prezzo_vendita_non_ivato is not None or \ self.prezzo_acquisto_non_ivato is not None or \ self.prezzo_acquisto_ivato is not None or \ self.prezzo_vendita_ivato is not None): try: daoPriceListProduct = ListinoArticolo().\ select(idListino=self.price_list_id, idArticolo=product_id, batchSize=None)[0] except: daoPriceListProduct = ListinoArticolo() daoPriceListProduct.id_articolo = product_id daoPriceListProduct.id_listino = self.price_list_id daoPriceListProduct.data_listino_articolo = self.dataListino daoPriceListProduct.listino_attuale = True if self.prezzo_vendita_ivato is not None: prezzo = self.sanitizer(self.prezzo_vendita_ivato) daoPriceListProduct.prezzo_dettaglio = mN(prezzo) else: daoPriceListProduct.prezzo_dettaglio = 0 if self.prezzo_vendita_non_ivato is not None: prezzo = self.sanitizer(self.prezzo_vendita_non_ivato) daoPriceListProduct.prezzo_ingrosso = mN(prezzo) else: daoPriceListProduct.prezzo_ingrosso = 0 sconti_ingrosso = [ScontoVenditaIngrosso(), ] sconti_dettaglio = [ScontoVenditaDettaglio(), ] if self.sconto_vendita_ingrosso is not None \ and str(self.sconto_vendita_ingrosso).strip() != "0" \ and str(self.sconto_vendita_ingrosso).strip() !="": self.sconto_vendita_ingrosso = self.sanitizer(self.sconto_vendita_ingrosso) sconti_ingrosso[0].valore = mN(self.sconto_vendita_ingrosso) sconti_ingrosso[0].tipo_sconto = 'percentuale' daoPriceListProduct.sconto_vendita_ingrosso = sconti_ingrosso if self.sconto_vendita_dettaglio and \ str(self.sconto_vendita_dettaglio).strip() != "0" and \ str(self.sconto_vendita_dettaglio).strip() !="": self.sconto_vendita_dettaglio = self.sanitizer(self.sconto_vendita_dettaglio) sconti_dettaglio[0].valore = mN(self.sconto_vendita_dettaglio) sconti_dettaglio[0].tipo_sconto = 'percentuale' daoPriceListProduct.sconto_vendita_dettaglio = sconti_dettaglio if self.prezzo_acquisto_non_ivato is not None and \ str(self.prezzo_acquisto_non_ivato).strip() != "0" and \ str(self.prezzo_acquisto_non_ivato).strip() !="": prezzo = self.sanitizer(self.prezzo_acquisto_non_ivato) daoPriceListProduct.ultimo_costo = mN(prezzo) elif self.prezzo_acquisto_ivato is not None and \ str(self.prezzo_acquisto_ivato).strip() != "0" and \ str(self.prezzo_acquisto_ivato).strip() !="": prezzo = self.sanitizer(self.prezzo_acquisto_ivato) self.aliquota_iva.percentuale = self.sanitizer(self.aliquota_iva.percentuale) daoPriceListProduct.ultimo_costo = mN(calcolaPrezzoIva(mN(prezzo), -1 * (mN(self.aliquota_iva.percentuale)))) else: daoPriceListProduct.ultimo_costo = 0 # print " QUSTNO NON VA BEEN ", daoPriceListProduct.__dict__ daoPriceListProduct.persist() # Fornitura daoFornitura = Fornitura().select(idFornitore=self.fornitore, idArticolo=self.daoArticolo.id, daDataPrezzo=self.dataListino, aDataPrezzo=self.dataListino, batchSize=None) if len(daoFornitura) == 0: daoFornitura = Fornitura() daoFornitura.prezzo_netto = prezzo or 0 daoFornitura.prezzo_lordo = prezzo or 0 daoFornitura.id_fornitore = self.fornitore daoFornitura.id_articolo = self.daoArticolo.id try: daoFornitura.percentuale_iva = Decimal(str(self.aliquota_iva.percentuale)) except: daoFornitura.percentuale_iva = Decimal(str(self.aliquota_iva)) daoFornitura.data_prezzo = self.dataListino daoFornitura.codice_articolo_fornitore = self.codice_fornitore daoFornitura.fornitore_preferenziale = True daoFornitura.persist() self.product = None
def on_ok_button_clicked(self, button): for dat in self.datas: codici = None articoloPadre = dat[0] if dat[1].__module__ =="promogest.modules.PromoWear.dao.Taglia": daoTaglia = dat[1] daoColore = dat[2] else: daoColore = dat[1] daoTaglia = dat[2] codiceabarre = dat[3] articoloFiglio = dat[4] if codiceabarre: if articoloFiglio: #verifico la correttezza del codice a barre della variante già esistente # in precedenza if codiceabarre != articoloFiglio.codice_a_barre: codici = CodiceABarreArticolo().select(codiceEM=codiceabarre, offset=None, batchSize=None) else: codici = CodiceABarreArticolo().select(codiceEM=codiceabarre, offset=None, batchSize=None) if codici: msg = """Attenzione ! Il codice a barre %s è gia' presente nel Database, ricontrolla!""" % codiceabarre dialog = gtk.MessageDialog(self.getTopLevel(), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_DIALOG_MESSAGE_QUESTION, GTK_BUTTON_OK, msg) response = dialog.run() dialog.destroy() return if articoloFiglio: #aggiorno articoloesistenze può essere cambiato solo il codice a barre if codiceabarre and codiceabarre != articoloFiglio.codice_a_barre: codici = CodiceABarreArticolo().select(codiceEM=codiceabarre, offset=None, batchSize=None) if not codici: cba = CodiceABarreArticolo() cba.codice = codiceabarre cba.id_articolo = articoloFiglio.id cba.primario = True cba.persist() else: #inserisco la nuova variazione articolo ed il relativo codice a barre articolo = Articolo() articolo.codice = articoloPadre.codice + articoloPadre.denominazione_gruppo_taglia[0:3] + daoTaglia.denominazione_breve + daoColore.denominazione_breve articolo.denominazione = articoloPadre.denominazione + ' ' + daoTaglia.denominazione_breve + ' ' + daoColore.denominazione articolo.id_aliquota_iva = articoloPadre.id_aliquota_iva articolo.id_famiglia_articolo = articoloPadre.id_famiglia_articolo articolo.id_categoria_articolo = articoloPadre.id_categoria_articolo articolo.id_unita_base = articoloPadre.id_unita_base articolo.id_stato_articolo = articoloPadre.id_stato_articolo articolo.id_imballaggio = articoloPadre.id_imballaggio articolo.produttore = articoloPadre.produttore articolo.unita_dimensioni = articoloPadre.unita_dimensioni articolo.unita_volume = articoloPadre.unita_volume articolo.unita_peso = articoloPadre.unita_peso articolo.lunghezza = articoloPadre.lunghezza articolo.larghezza = articoloPadre.larghezza articolo.altezza = articoloPadre.altezza articolo.volume = articoloPadre.volume articolo.peso_lordo = articoloPadre.peso_lordo articolo.peso_imballaggio = articoloPadre.peso_imballaggio articolo.stampa_etichetta = articoloPadre.stampa_etichetta articolo.codice_etichetta = articoloPadre.codice_etichetta articolo.descrizione_etichetta = articoloPadre.descrizione_etichetta articolo.stampa_listino = articoloPadre.stampa_listino articolo.descrizione_listino = articoloPadre.descrizione_listino articolo.note = articoloPadre.note articolo.sospeso = articoloPadre.sospeso articolo.cancellato = articoloPadre.cancellato articolo.aggiornamento_listino_auto = articoloPadre.aggiornamento_listino_auto articolo.persist() articoloTagliaColore = ArticoloTagliaColore() articoloTagliaColore.id_articolo = articolo.id articoloTagliaColore.id_articolo_padre = articoloPadre.id articoloTagliaColore.id_gruppo_taglia = articoloPadre.id_gruppo_taglia articoloTagliaColore.id_taglia = daoTaglia.id articoloTagliaColore.id_colore = daoColore.id if articoloPadre.id_anno == "": articoloTagliaColore.id_anno = None else: articoloTagliaColore.id_anno = articoloPadre.id_anno if articoloPadre.id_stagione == "": articoloTagliaColore.id_stagione = None else: articoloTagliaColore.id_stagione = articoloPadre.id_stagione if articoloPadre.id_genere == "": articoloTagliaColore.id_genere = None else: articoloTagliaColore.id_genere = articoloPadre.id_genere articoloTagliaColore.persist() if codiceabarre: codici = CodiceABarreArticolo().select(codiceEM=codiceabarre, offset=None, batchSize=None) if not codici: cba = CodiceABarreArticolo() cba.codice = codiceabarre cba.id_articolo = articolo.id cba.primario = True cba.persist() self.destroy()
def codice_a_barre_articolo_table(soup=None, op=None, dao=None, row=None, all=False): d = None if soup and not all: record = soup.codice_a_barre_articolo.get(loads(row.object)) else: record = row if op =="DELETE": if all: d = CodiceABarreArticolo().getRecord(id=row.id) else: d = CodiceABarreArticolo().getRecord(id=loads(row.object)) if d: d.delete() return True elif op == "INSERT": if all: d = CodiceABarreArticolo() d.id = record.id else: d = CodiceABarreArticolo().getRecord(id=loads(row.object)) elif op == "UPDATE": if all: d = CodiceABarreArticolo().getRecord(id=row.id) else: d = CodiceABarreArticolo().getRecord(id=loads(row.object)) if not d: d = CodiceABarreArticolo() d.id = record.id d.codice = record.codice d.id_articolo = record.id_articolo d.primario = record.primario d.persist() return True