class AnagraficaClientiEdit(AnagraficaEdit, AnagraficaPGEdit): """ Modifica un record dell'anagrafica dei clienti """ def __init__(self, anagrafica): AnagraficaEdit.__init__(self, anagrafica, 'Dati cliente', root='anagrafica_clienti_detail_notebook', path='_anagrafica_clienti_elements.glade') AnagraficaPGEdit.__init__(self, "cliente") self._widgetFirstFocus = self.codice_entry self.anagrafica_clienti_detail_notebook.set_current_page(0) def draw(self, cplx=False): """ Popola la finestra dei clienti""" fillComboboxCategorieClienti( self.id_categoria_cliente_customcombobox.combobox) self.id_categoria_cliente_customcombobox.connect('clicked', on_id_categoria_cliente_customcombobox_clicked) #Elenco categorie fillComboBoxNazione(self.nazione_combobox, default="Italia") fillComboboxPagamenti(self.id_pagamento_customcombobox.combobox) self.id_pagamento_customcombobox.connect('clicked', on_id_pagamento_customcombobox_clicked) fillComboboxMagazzini(self.id_magazzino_customcombobox.combobox) self.id_magazzino_customcombobox.connect('clicked', on_id_magazzino_customcombobox_clicked) fillComboboxListini(self.id_listino_customcombobox.combobox) self.id_listino_customcombobox.connect('clicked', on_id_listino_customcombobox_clicked) fillComboboxBanche(self.id_banca_customcombobox.combobox) self.id_banca_customcombobox.connect('clicked', on_id_banca_customcombobox_clicked) fillComboboxAliquoteIva(self.id_aliquota_iva_customcombobox.combobox) self.id_aliquota_iva_customcombobox.connect('clicked', on_id_aliquota_iva_customcombobox_clicked) self.cliente_insegna = setconf("Clienti", "cliente_insegna") if not self.cliente_insegna: self.insegna_entry.destroy() self.insegna_label.destroy() self.on_pg_radio_toggled() #self.cliente_nome = setconf("Clienti", "cliente_nome") or False #if not self.cliente_nome: #self.nome_entry.destroy() #self.nome_label.destroy() # #self.cliente_cognome = setconf("Clienti", "cliente_cognome") or False #if not self.cliente_cognome: #self.cognome_entry.destroy() #self.cognome_label.destroy() # if not setconf(key="INFOPESO", section="General"): if posso("IP"): self.infopeso_page = InfoPesoNotebookPage(self, "") self.anagrafica_clienti_detail_notebook.append_page( self.infopeso_page.infopeso_frame, self.infopeso_page.infopeso_page_label) def on_anag_variazioni_listini_togglebutton_toggled(self, toggleButton): if toggleButton.get_active(): from promogest.ui.AnagraficaVariazioniListini import AnagraficaVariazioniListini anag = AnagraficaVariazioniListini() anagWindow = anag.getTopLevel() showAnagraficaRichiamata(self.dialogTopLevel, anagWindow, toggleButton) else: toggleButton.set_active(False) self._refresh_variazioni_listini() self.anagrafica_clienti_detail_notebook.set_current_page(2) def on_variazioni_listini_toggle_toggled(self, cell, path): self.variazioni_tv_liststore[path][2] = not self.variazioni_tv_liststore[path][2] if self.variazioni_tv_liststore[path][2] == 0: self.dao.vl.remove(self.variazioni_tv_liststore[path][0]) else: self.dao.vl.append(self.variazioni_tv_liststore[path][0]) def on_pf_radio_toggled(self, button=None): if self.pf_radio: self.ragione_sociale_entry.set_sensitive(False) self.cognome_entry.set_sensitive(True) self.nome_entry.set_sensitive(True) def on_pg_radio_toggled(self, button=None): if self.pg_radio: self.ragione_sociale_entry.set_sensitive(True) self.cognome_entry.set_sensitive(False) self.nome_entry.set_sensitive(False) def on_categorie_clienti_add_row_button_clicked(self, widget): """ Aggiunge una categoria cliente al dao selezionato """ id = findIdFromCombobox( self.id_categoria_cliente_customcombobox.combobox) if id is not None: categoria = findStrFromCombobox( self.id_categoria_cliente_customcombobox.combobox, 2) model = self.categorie_treeview.get_model() for c in model: if c[0] == id: return if Environment.pg3: ah = self.marcatore_add.get_stock() anagPixbuf = self.marcatore_add.render_icon(ah[0], ah[1], None) else: image = gtk.Image() anagPixbuf = image.render_icon(gtk.STOCK_ADD, GTK_ICON_SIZE_BUTTON) model.append((id, categoria, anagPixbuf, 'added')) self.categorie_treeview.get_selection().unselect_all() def on_categorie_clienti_delete_row_button_clicked(self, widget): """ Rimuove una categoria al dao selezionato """ id = findIdFromCombobox( self.id_categoria_cliente_customcombobox.combobox) if id is not None: if Environment.pg3: ah = self.marcatore_remove.get_stock() anagPixbuf = self.marcatore_remove.render_icon( ah[0], ah[1], None) else: image = gtk.Image() anagPixbuf = image.render_icon(gtk.STOCK_REMOVE, GTK_ICON_SIZE_BUTTON) model = self.categorie_treeview.get_model() for c in model: if c[0] == id: if c[2] is None: c[2] = anagPixbuf c[3] = 'deleted' else: model.remove(c.iter) self.categorie_treeview.get_selection().unselect_all() def on_categorie_clienti_undelete_row_button_clicked(self, widget): id = findIdFromCombobox( self.id_categoria_cliente_customcombobox.combobox) if id is not None: model = self.categorie_treeview.get_model() for c in model: if c[0] == id: if c[3] == 'deleted': c[2] = None c[3] = None self.categorie_treeview.get_selection().unselect_all() def on_categorie_treeview_cursor_changed(self, treeview=None): """ quando si clicca su una riga della treeview """ sel = treeview.get_selection() (model, iterator) = sel.get_selected() if iterator is not None: idCategoriaCliente = model.get_value(iterator, 0) findComboboxRowFromId( self.id_categoria_cliente_customcombobox.combobox, idCategoriaCliente) status = model.get_value(iterator, 3) self.categorie_clienti_delete_row_button.set_sensitive( status != 'deleted') self.categorie_clienti_undelete_row_button.set_sensitive( status == 'deleted') def setDao(self, dao): self.dao = dao if dao is None: # Crea un nuovo Dao vuoto self.dao = Cliente() self.dao.cancellato = False self.dao.codice = promogest.dao.Cliente.getNuovoCodiceCliente() if posso("IP"): self.infopeso_page.infoPesoSetDao(self.dao) self.infopeso_page.nome_cognome_label.set_text( str(self.dao.ragione_sociale) or\ "" + "\n" + \ str(self.dao.cognome) or \ "" + " " + \ str(self.dao.nome) or "") # if posso("Provvigione"): # self.provv_page.provvSetDao(self.dao) if dao is None: self.dao_contatto = ContattoCliente() else: self.dao_contatto = ContattoCliente().select(idCliente=self.dao.id) if self.dao_contatto: self.dao_contatto = self.dao_contatto[0] else: self.dao_contatto = ContattoCliente() self._refresh() return self.dao def _refresh_variazioni_listini(self): from promogest.dao.VariazioneListino import VariazioneListino from promogest.lib.utils import fill_treeview_with_data diff = lambda l1,l2: [x for x in l1 if x not in l2] tutti = VariazioneListino().select(batchSize=None) if not self.dao.id: fill_treeview_with_data(self.variazioni_treeview, tutti) else: fill_treeview_with_data(self.variazioni_treeview, self.dao.vl, flag=True) fill_treeview_with_data(self.variazioni_treeview, diff(tutti, self.dao.vl), clear=False) def _refresh(self): self.codice_entry.set_text(self.dao.codice or '') if self.dao.ragione_sociale: rag_soc = self.dao.ragione_sociale elif self.dao.cognome or self.dao.nome: rag_soc = str(self.dao.cognome) + " " + str(self.dao.nome) elif self.dao.insegna: rag_soc = self.dao.insegna else: rag_soc = "" self.ragione_sociale_entry.set_text(rag_soc) if self.cliente_insegna: self.insegna_entry.set_text(self.dao.insegna or '') self.cognome_entry.set_text(self.dao.cognome or '') self.nome_entry.set_text(self.dao.nome or '') if self.dao.tipo == "PG": self.pg_radio.set_active(True) self.ragione_sociale_entry.set_sensitive(True) self.cognome_entry.set_sensitive(False) self.nome_entry.set_sensitive(False) if self.dao.tipo == "PF": self.pf_radio.set_active(True) self.ragione_sociale_entry.set_sensitive(False) self.cognome_entry.set_sensitive(True) self.nome_entry.set_sensitive(True) self.indirizzo_sede_operativa_entry.set_text( self.dao.sede_operativa_indirizzo or '') self.cap_sede_operativa_entry.set_text( self.dao.sede_operativa_cap or '') self.localita_sede_operativa_entry.set_text( self.dao.sede_operativa_localita or '') self.provincia_sede_operativa_entry.set_text( self.dao.sede_operativa_provincia or '') self.indirizzo_sede_legale_entry.set_text( self.dao.sede_legale_indirizzo or '') self.cap_sede_legale_entry.set_text(self.dao.sede_legale_cap or '') self.localita_sede_legale_entry.set_text( self.dao.sede_legale_localita or '') self.provincia_sede_legale_entry.set_text( self.dao.sede_legale_provincia or '') self.codice_fiscale_entry.set_text(self.dao.codice_fiscale or '') self.partita_iva_entry.set_text(self.dao.partita_iva or '') text_buffer = self.note_textview.get_buffer() text_buffer.set_text(self.dao.note or '') self.id_categoria_cliente_customcombobox.combobox.set_active(-1) self._refreshCategorie() findComboboxRowFromId(self.id_pagamento_customcombobox.combobox, self.dao.id_pagamento) findComboboxRowFromId(self.id_magazzino_customcombobox.combobox, self.dao.id_magazzino) findComboboxRowFromId(self.id_listino_customcombobox.combobox, self.dao.id_listino) findComboboxRowFromId(self.id_banca_customcombobox.combobox, self.dao.id_banca) findComboboxRowFromId(self.id_aliquota_iva_customcombobox.combobox, self.dao.id_aliquota_iva) findComboboxRowFromStr(self.nazione_combobox, self.dao.nazione, 0) #finComboBoxNazione(self.nazione_combobox, default="Italia") #if Environment.conf.hasPagamenti == True: if posso("IP"): self.infopeso_page.infoPeso_refresh() # if posso("Provvigione"): # self.provv_page.provvRefresh() self.showTotaliDareAvere() self.cellulare_principale_entry.set_text( self.dao.cellulare_principale or "") self.telefono_principale_entry.set_text( self.dao.telefono_principale or "") self.email_principale_entry.set_text(self.dao.email_principale or "") self.fax_principale_entry.set_text(self.dao.fax_principale or "") self.sito_web_principale_entry.set_text(self.dao.sito_principale or "") self.spese_checkbox.set_active(self.dao.pagante or False ) self._refresh_variazioni_listini() def showTotaliDareAvere(self): if self.dao.id: totaleDareAnnuale = TotaleAnnualeCliente(id_cliente=self.dao.id) self.totale_annuale_dare_entry.set_text( str(mN(totaleDareAnnuale, 2))) # Calcoliamo il totale sospeso: totaleDareAperto = TotaleClienteAperto(id_cliente=self.dao.id) self.totale_dare_entry.set_text(str(mN(totaleDareAperto, 2))) self.anagrafica_clienti_detail_notebook.set_current_page(0) def _refreshCategorie(self, widget=None, orderBy=None): model = self.categorie_treeview.get_model() model.clear() if not self.dao.id: return categorie = self.dao.categorieCliente for c in categorie: model.append([c.id_categoria_cliente, c.categoria_cliente.denominazione, None, None]) def on_icon_press_primary(self, entry, position, event): if position.value_nick == "primary": codice = promogest.dao.Cliente.getNuovoCodiceCliente() self.codice_entry.set_text(codice) def saveDao(self, tipo=None): if self.pg_radio.get_active(): if (self.ragione_sociale_entry.get_text() == ''): obligatoryField(self.dialogTopLevel, self.ragione_sociale_entry, msg='Campo obbligatorio !\n\nRagione sociale') if self.pf_radio.get_active(): if (self.cognome_entry.get_text() == ''): obligatoryField(self.dialogTopLevel, self.cognome_entry, msg='Campo obbligatorio !\n\nCognome') if (self.nome_entry.get_text() == ''): obligatoryField(self.dialogTopLevel, self.nome_entry, msg='Campo obbligatorio !\n\nNome') self.dao.pagante = self.spese_checkbox.get_active() cod = Cliente().select(codicesatto=self.codice_entry.get_text().upper().strip()) if len(cod) >1 or (cod and cod[0].id != self.dao.id): obligatoryField(self.dialogTopLevel, self.ragione_sociale_entry, msg='CODICE GIÀ PRESENTE') self.dao.codice = self.codice_entry.get_text().upper() self.dao.codice = omogeneousCode(section="Clienti", string=self.dao.codice) self.dao.ragione_sociale = self.ragione_sociale_entry.get_text() self.dao.nome = self.nome_entry.get_text() self.dao.cognome = self.cognome_entry.get_text() if self.cliente_insegna: self.dao.insegna = self.insegna_entry.get_text() if self.pf_radio.get_active(): self.dao.ragione_sociale = self.cognome_entry.get_text()\ + " " + self.nome_entry.get_text() self.dao.tipo = "PF" if (self.dao.codice and\ (self.dao.ragione_sociale or \ self.dao.insegna or \ self.dao.cognome or \ self.dao.nome)) == '': msg = """Il codice è obbligatorio. Inserire anche ragione sociale / cognome e nome """ messageInfo(msg=msg) raise Exception,\ 'Operation aborted Campo minimo cliente non inserito' self.dao.sede_operativa_indirizzo = \ self.indirizzo_sede_operativa_entry.get_text() self.dao.sede_operativa_cap = self.cap_sede_operativa_entry.get_text() self.dao.sede_operativa_localita = \ self.localita_sede_operativa_entry.get_text() self.dao.sede_operativa_provincia = \ self.provincia_sede_operativa_entry.get_text() self.dao.sede_legale_indirizzo = \ self.indirizzo_sede_legale_entry.get_text() self.dao.sede_legale_cap = self.cap_sede_legale_entry.get_text() self.dao.sede_legale_localita = \ self.localita_sede_legale_entry.get_text() self.dao.sede_legale_provincia = \ self.provincia_sede_legale_entry.get_text() self.dao.codice_fiscale = self.codice_fiscale_entry.get_text() self.dao.partita_iva = self.partita_iva_entry.get_text() text_buffer = self.note_textview.get_buffer() self.dao.note = text_buffer.get_text(text_buffer.get_start_iter(), text_buffer.get_end_iter(), True) #if self.dao.partita_iva != '': #partiva = checkPartIva(self.dao.partita_iva) #if not partiva: #raise Exception, 'Operation aborted: Partita iva non corretta' #old_pagamento = self.dao.id_pagamento self.dao.id_pagamento = findIdFromCombobox( self.id_pagamento_customcombobox.combobox) #if old_pagamento != self.dao.id_pagamento and self.dao.id: #if YesNoDialog('Modificare il tipo di pagamento per i documenti già registrati per il cliente?'): #docs = TestataDocumento().select(idCliente=self.dao.id, daData=datetime.datetime(int(Environment.workingYear), 1, 1)) #for doc in docs: #if not doc.documento_saldato: #doc.id_pagamento = self.dao.id_pagamento #doc.persist() self.dao.id_magazzino = findIdFromCombobox( self.id_magazzino_customcombobox.combobox) self.dao.id_listino = findIdFromCombobox( self.id_listino_customcombobox.combobox) self.dao.id_banca = findIdFromCombobox( self.id_banca_customcombobox.combobox) self.dao.id_aliquota_iva = findIdFromCombobox( self.id_aliquota_iva_customcombobox.combobox) self.dao.nazione = findStrFromCombobox(self.nazione_combobox, 0) self.dao.persist() if posso("IP"): (dao_testata_infopeso, dao_generalita_infopeso) = \ self.infopeso_page.infoPesoSaveDao() dao_testata_infopeso.id_cliente = self.dao.id dao_testata_infopeso.persist() dao_generalita_infopeso.id_cliente = self.dao.id dao_generalita_infopeso.persist() #if posso("Provvigione"): #self.provv_page.provvSaveDao() model = self.categorie_treeview.get_model() cleanClienteCategoriaCliente = ClienteCategoriaCliente()\ .select(idCliente=self.dao.id, batchSize=None) for cli in cleanClienteCategoriaCliente: cli.delete() for c in model: if c[3] == 'deleted': pass else: daoClienteCategoriaCliente = ClienteCategoriaCliente() daoClienteCategoriaCliente.id_cliente = self.dao.id daoClienteCategoriaCliente.id_categoria_cliente = c[0] daoClienteCategoriaCliente.persist() #self.dao.categorieCliente = categorie self._refreshCategorie() #SEzione dedicata ai contatti/recapiti principali self.aggiungi_contatto_pg(self, "cliente") self.save_contatto_cellulare_principale(self, self.dao_contatto) self.save_contatto_telefono_principale(self, self.dao_contatto) self.save_contatto_fax_principale(self, self.dao_contatto) self.save_contatto_email_principale(self, self.dao_contatto) self.save_contatto_sito_principale(self, self.dao_contatto) def on_scheda_contabile_togglebutton_clicked(self, toggleButton): """ Apre la finestra di registrazione documenti, ricercando solo i documenti del cliente """ if not(toggleButton.get_active()): toggleButton.set_active(False) return if self.dao.id is None: msg = 'Prima di poter visualizzare la registrazione documenti occorre salvare il cliente.\n Salvare? ' if YesNoDialog(msg=msg, transient=self.dialogTopLevel): self.on_anagrafica_complessa_detail_dialog_response( self.dialogTopLevel, GTK_RESPONSE_APPLY) else: toggleButton.set_active(False) return from promogest.ui.anagDocumenti.AnagraficaDocumenti import \ AnagraficaDocumenti anag = AnagraficaDocumenti() anagWindow = anag.getTopLevel() showAnagraficaRichiamata(self.dialogTopLevel, anagWindow, toggleButton) anag.filter.id_cliente_filter_customcombobox.setId(self.dao.id) anag.filter.da_data_filter_entry.set_text('') anag.filter.solo_contabili_check.set_active(True) anag.filter.refresh() def on_abbina_pg_toggle_clicked(self, toggleButton): if not(toggleButton.get_active()): toggleButton.set_active(False) return if self.dao.id is None: msg = 'Prima di poter inserire gli abbinamenti persona giuridica occorre salvare il cliente.\n Salvare ?' if YesNoDialog(msg=msg, transient=self.dialogTopLevel): self.on_anagrafica_complessa_detail_dialog_response( self.dialogTopLevel, GTK_RESPONSE_APPLY) else: toggleButton.set_active(False) return from promogest.ui.AbbinamentoPersonaGiuridica import AbbinamentoPersonaGiuridica anag = AbbinamentoPersonaGiuridica(self.dao.id) anagWindow = anag.getTopLevel() showAnagraficaRichiamata(self.dialogTopLevel, anagWindow, toggleButton) def on_abbinamento_utente_togglebutton_toggled(self, toggleButton): if not(toggleButton.get_active()): toggleButton.set_active(False) return if self.dao.id is None: msg = 'Prima di poter abbinare un utente occorre salvare il cliente.\n Salvare ?' if YesNoDialog(msg=msg, transient=self.dialogTopLevel): self.on_anagrafica_complessa_detail_dialog_response( self.dialogTopLevel, GTK_RESPONSE_APPLY) else: toggleButton.set_active(False) return from promogest.modules.RuoliAzioni.ui.AnagraficaUtenti import \ AnagraficaUtenti from promogest.dao.User import User a = AnagraficaUtenti() if self.dao.id_user: art = User().getRecord(id=self.dao.id_user) a.on_record_edit_activate(a, dao=art) else: a.on_record_new_activate(a, from_other_dao=self.dao) a.editElement.username_entry.set_text( self.dao.ragione_sociale.strip().replace(" ", "").lower() or\ (self.dao.cognome + self.dao.nome).strip().replace(" ", "").lower()) a.editElement.password_entry.set_text( self.dao.partita_iva.lower()[0:6] or \ self.dao.codice_fiscale.lower()[0:6]) a.editElement.confirm_password_entry.set_text( self.dao.partita_iva.lower()[0:6] or\ self.dao.codice_fiscale.lower()[0:6]) findComboboxRowFromStr(a.editElement.azienda_combobox, Environment.azienda, 0) a.editElement.active_user_checkbutton.set_active(True) a.editElement.email_entry.set_text(self.dao.email_principale or "") def on_destinazioni_merce_togglebutton_clicked(self, toggleButton): if not(toggleButton.get_active()): toggleButton.set_active(False) return if self.dao.id is None: msg = 'Prima di poter inserire le destinazioni merce occorre salvare il cliente.\n Salvare ?' if YesNoDialog(msg=msg, transient=self.dialogTopLevel): self.on_anagrafica_complessa_detail_dialog_response( self.dialogTopLevel, GTK_RESPONSE_APPLY) else: toggleButton.set_active(False) return from promogest.ui.AnagraficaDestinazioniMerce import AnagraficaDestinazioniMerce anag = AnagraficaDestinazioniMerce(self.dao.id) anagWindow = anag.getTopLevel() showAnagraficaRichiamata(self.dialogTopLevel, anagWindow, toggleButton) def on_label_togglebutton_clicked(self, toggleButton): if not(toggleButton.get_active()): toggleButton.set_active(False) return if self.dao.id is None: msg = 'Prima di poter stampare una label occorre salvare l\' il cliente.\n Salvare ?' if YesNoDialog(msg=msg, transient=self.dialogTopLevel): self.on_anagrafica_complessa_detail_dialog_response( self.dialogTopLevel, GTK_RESPONSE_APPLY) else: toggleButton.set_active(False) return if posso("LA"): from promogest.modules.Label.ui.ManageLabelsToPrintCliente import\ ManageLabelsToPrintCliente a = ManageLabelsToPrintCliente(mainWindow=self, daos=[], cliente=self.dao) anagWindow = a.getTopLevel() returnWindow = self.getTopLevel().get_toplevel() anagWindow.set_transient_for(returnWindow) anagWindow.show_all() else: fencemsg() toggleButton.set_active(False) def on_provv_togglebutton_clicked(self, toggleButton): if not(toggleButton.get_active()): toggleButton.set_active(False) return if self.dao.id is None: msg = 'Prima di poter abbinare una provvigione occorre salvare l\' il cliente.\n Salvare ?' if YesNoDialog(msg=msg, transient=self.dialogTopLevel): self.on_anagrafica_complessa_detail_dialog_response( self.dialogTopLevel, GTK_RESPONSE_APPLY) else: toggleButton.set_active(False) return if posso("Provvigione"): from promogest.modules.Provvigione.ui.AnagraficaProvv import\ AnagraficaProvv a = AnagraficaProvv(mainWindow=self, daos=[], daoFrom=self.dao, tipo = "Cliente") anagWindow = a.getTopLevel() returnWindow = self.getTopLevel().get_toplevel() anagWindow.set_transient_for(returnWindow) anagWindow.show_all() else: fencemsg() toggleButton.set_active(False) def on_filechooserbutton_file_set(self, filechooser): #import StringIO #output = StringIO.StringIO() #image.save(output) #contents = output.getvalue() #output.close() print "LA FOTO SELEZIONATA", filechooser.get_file().get_path(), \ filechooser.get_file() self.photo_src = filechooser.get_filename() self.userlogo_image.set_from_file(self.photo_src) #im1 = Image.fromstring(self.photo_src) f = open(self.photo_src, "r") g = f.read() #im = Image.open(g) #im.thumbnail(size, Image.ANTIALIAS) #im.tostring(self.photo_src + ".thumbnail) self.imgblob = base64.b64encode(str(g)) f.close() def on_rimuovi_foto_button_clicked(self, button): self.imgblob = "RIMUOVO" self.userlogo_image.set_from_file("") def on_email_send_button_clicked(self, button): body = Environment.conf.body if self.dao.email_principale: arghi = "xdg-email --subject '%s' --body '%s' '%s'" %("[PromoGest]",body,self.dao.email_principale) else: arghi = "xdg-email --subject '%s' --body '%s'" %("[PromoGest]",body) subprocess.Popen(arghi, shell=True)
def on_duplica_in_cliente_activate_item(self, widget): dao = self.filter.getSelectedDao() if not dao: messageInfo(msg="SELEZIONARE UN FORNITORE") return import promogest.dao.Cliente from promogest.dao.Cliente import Cliente from promogest.dao.daoContatti.ContattoCliente import ContattoCliente from promogest.dao.daoContatti.RecapitoContatto import RecapitoContatto from promogest.dao.daoContatti.Contatto import Contatto d = Cliente() d.codice = promogest.dao.Cliente.getNuovoCodiceCliente() d.ragione_sociale = dao.ragione_sociale d.insegna = dao.insegna d.cognome = dao.cognome d.nome = dao.nome d.sede_operativa_indirizzo= dao.sede_operativa_indirizzo d.sede_operativa_cap = dao.sede_operativa_cap d.sede_operativa_localita = dao.sede_operativa_localita d.sede_operativa_provincia = dao.sede_operativa_provincia d.sede_legale_indirizzo = dao.sede_legale_indirizzo d.sede_legale_cap = dao.sede_legale_cap d.sede_legale_localita = dao.sede_legale_localita d.sede_legale_provincia = dao.sede_legale_provincia d.codice_fiscale = dao.codice_fiscale d.note = dao.note d.partita_iva = dao.partita_iva #dao.id_categoria_fornitore d.id_pagamento = dao.id_pagamento d.id_magazzino = dao.id_magazzino d.nazione = dao.nazione d.persist() #SEzione dedicata ai contatti/recapiti principali dao_contatto = ContattoCliente() if Environment.tipo_eng =="sqlite": forMaxId = Contatto().select(batchSize=None) if not forMaxId: dao_contatto.id = 1 else: idss = [] for l in forMaxId: idss.append(l.id) dao_contatto.id = (max(idss)) +1 appa = "" if d.ragione_sociale: appa = appa +" "+d.ragione_sociale if d.cognome: appa = appa+" " +d.cognome dao_contatto.cognome = appa if d.nome: dao_contatto.nome = d.nome dao_contatto.tipo_contatto ="cliente" dao_contatto.id_cliente =d.id dao_contatto.persist() from promogest.dao.DaoUtils import getRecapitiFornitore contatti = getRecapitiFornitore(dao.id) for c in contatti: reco = RecapitoContatto() reco.id_contatto = dao_contatto.id reco.tipo_recapito = c.tipo_recapito reco.recapito = c.recapito reco.persist() messageInfo(msg="FORNITORE DUPLICATO IN CLIENTE")