Changeset 1038

Show
Ignore:
Timestamp:
07/28/10 03:03:32 (6 weeks ago)
Author:
francesco
Message:

Migliorata la cancellzione di categorie e famiglie con l'opzione di un passaggio articoli verso un'altra esistente

Location:
trunk/core/promogest
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • trunk/core/promogest/Environment.py

    r1010 r1038  
    336336    mainSchema = "promogest2" 
    337337    #azienda=conf.Database.azienda 
    338     engine = create_engine('postgres:'+'//' 
     338    try: 
     339        engine = create_engine('postgresql+pg8000:'+'//' 
    339340                    +user+':' 
    340341                    + password+ '@' 
     
    344345                    encoding='utf-8', 
    345346                    convert_unicode=True ) 
    346  
     347        print "PG8000" 
     348    except: 
     349        engine = create_engine('postgres:'+'//' 
     350                        +user+':' 
     351                        + password+ '@' 
     352                        + host + ':' 
     353                        + port + '/' 
     354                        + database, 
     355                        encoding='utf-8', 
     356                        convert_unicode=True ) 
     357        print "PSYCOPG2" 
    347358tipo_eng = engine.name 
    348359engine.echo = False 
  • trunk/core/promogest/dao/CategoriaArticolo.py

    r90 r1038  
    1818 
    1919    def filter_values(self,k,v): 
    20         dic= {  'denominazione' : categoria_articolo.c.denominazione.ilike("%"+v+"%")} 
     20        if k == 'denominazione': 
     21            dic= {k : categoria_articolo.c.denominazione.ilike("%"+v+"%")} 
     22        elif k == "denominazioneBreve": 
     23            dic= {k : categoria_articolo.c.denominazione_breve.ilike("%"+v+"%")} 
     24        elif k == "denominazioneBreveEM": 
     25            dic= {k : categoria_articolo.c.denominazione_breve == v} 
    2126        return  dic[k] 
    2227 
  • trunk/core/promogest/ui/AnagraficaCategorieArticoli.py

    r843 r1038  
    1010 
    1111import gtk 
    12 import gobject 
    13  
    1412from AnagraficaSemplice import Anagrafica, AnagraficaDetail, AnagraficaFilter 
    15  
    16 from promogest import Environment 
    17 from promogest.dao.Dao import Dao 
    1813from promogest.dao.CategoriaArticolo import CategoriaArticolo 
    19  
     14from promogest.dao.Articolo import Articolo 
    2015from utils import * 
    2116 
     
    161156 
    162157    def deleteDao(self): 
    163         self.dao.delete() 
     158        usata = Articolo().select(idCategoria=self.dao.id, batchSize=None) 
     159        if usata: 
     160            msg = """NON Ú possibile cancellare questa CATEGORIA ARTICOLO 
     161perchÚ abbinata ad uno o più articoli 
     162 
     163ATTENZIONE ATTENZIONE!! 
     164 
     165E' però possibile "passare" tutti gli articoli della categoria che 
     166si vuole cancellare ad un'altra ancora presente. 
     167Inserite la descrizione breve ( Esattamente come Ú scritta) della categoria di destinazione 
     168qui sotto e premete SI 
     169L'operazione Ú irreversibile,retroattiva e potrebbe impiegare qualche minuto 
     170""" 
     171            dialog = gtk.MessageDialog(None, 
     172                                   gtk.DIALOG_MODAL 
     173                                   | gtk.DIALOG_DESTROY_WITH_PARENT, 
     174                                   gtk.MESSAGE_QUESTION, gtk.BUTTONS_YES_NO, 
     175                                   msg) 
     176            __entry_codi = gtk.Entry() 
     177            dialog.vbox.pack_start(__entry_codi) 
     178            __entry_codi.show() 
     179            response = dialog.run() 
     180 
     181            if response !=  gtk.RESPONSE_YES: 
     182                dialog.destroy() 
     183                return 
     184            else: 
     185                cate = CategoriaArticolo().select(denominazioneBreveEM = __entry_codi.get_text()) 
     186                if cate: 
     187                    idcat = cate[0].id 
     188                else: 
     189                    messageInfo(msg = "NON Ú stato possibile trovare la categoria\n di passaggio, non faccio niente") 
     190                    dialog.destroy() 
     191                    return 
     192                for u in usata: 
     193                    u.id_categoria_articolo = idcat 
     194                    u.persist() 
     195                dialog.destroy() 
     196                self.dao.delete() 
     197        else: 
     198            self.dao.delete() 
  • trunk/core/promogest/ui/AnagraficaFamiglieArticoli.py

    r947 r1038  
    1010 
    1111import gtk 
    12  
    1312from AnagraficaComplessa import Anagrafica, AnagraficaFilter, AnagraficaHtml, AnagraficaReport, AnagraficaEdit 
    14  
    1513from promogest.dao.FamigliaArticolo import FamigliaArticolo 
    16  
     14from promogest.dao.Articolo import Articolo 
    1715from utils import * 
    1816from utilsCombobox import * 
     
    3129                            editElement=AnagraficaFamiglieArticoliEdit(self)) 
    3230        self.hideNavigator() 
     31 
     32    def on_record_delete_activate(self, widget): 
     33        dialog = gtk.MessageDialog(self.getTopLevel(), 
     34                                   gtk.DIALOG_MODAL 
     35                                   | gtk.DIALOG_DESTROY_WITH_PARENT, 
     36                                   gtk.MESSAGE_QUESTION, gtk.BUTTONS_YES_NO, 
     37                                   'Confermi l\'eliminazione ?') 
     38        response = dialog.run() 
     39        dialog.destroy() 
     40        if response !=  gtk.RESPONSE_YES: 
     41            return 
     42 
     43        dao = self.filter.getSelectedDao() 
     44        usata = Articolo().select(idFamiglia=dao.id, batchSize=None) 
     45        print "USATAAAAAAAAAAAAAAAAAAAAAAAA", usata 
     46        if usata: 
     47            msg = """NON Ú possibile cancellare questa FAMIGLIA ARTICOLO 
     48perchÚ abbinata ad uno o più articoli 
     49 
     50ATTENZIONE ATTENZIONE!! 
     51 
     52E' però possibile "passare" tutti gli articoli della famiglia che 
     53si vuole cancellare ad un'altra ancora presente. 
     54Inserite il codice ( Esattamente come Ú scritto) della famiglia di destinazione 
     55qui sotto e premete SI 
     56L'operazione Ú irreversibile, retroattiva e potrebbe impiegare qualche minuto. 
     57""" 
     58            dialog = gtk.MessageDialog(self.getTopLevel(), 
     59                                   gtk.DIALOG_MODAL 
     60                                   | gtk.DIALOG_DESTROY_WITH_PARENT, 
     61                                   gtk.MESSAGE_QUESTION, gtk.BUTTONS_YES_NO, 
     62                                   msg) 
     63            __entry_codi = gtk.Entry() 
     64            dialog.vbox.pack_start(__entry_codi) 
     65            __entry_codi.show() 
     66            response = dialog.run() 
     67 
     68            if response !=  gtk.RESPONSE_YES: 
     69                dialog.destroy() 
     70                return 
     71            else: 
     72#                print "WBUMMMMM", __entry_codi.get_text() 
     73                famm = FamigliaArticolo().select(codice = __entry_codi.get_text()) 
     74                if famm: 
     75                    idfam = famm[0].id 
     76                    isfather = FamigliaArticolo().select(idPadre =idfam) 
     77                    if isfather: 
     78                        messageInfo(msg = "Cancellare prima i figli,\n questa Ú una famiglia padre non vuota ") 
     79                        dialog.destroy() 
     80                        return 
     81                else: 
     82                    messageInfo(msg = "NON Ú stato possibile trovare la famiglia\n di passaggio, non faccio niente") 
     83                    dialog.destroy() 
     84                    return 
     85                for u in usata: 
     86                    u.id_famiglia_articolo = idfam 
     87                    u.persist() 
     88                dialog.destroy() 
     89                dao.delete() 
     90                self.htmlHandler.setDao(None) 
     91        else: 
     92            dao.delete() 
     93            self.htmlHandler.setDao(None) 
     94        self.filter.refresh() 
     95        self.setFocus() 
    3396 
    3497