Changeset 878

Show
Ignore:
Timestamp:
03/17/10 09:49:43 (6 months ago)
Author:
francesco
Message:

rifatto chiusura fine giornata con una gui migliorata, più flessibile e gestione punto vendita e punto cassa

Location:
trunk/core/promogest/modules/VenditaDettaglio
Files:
1 added
3 modified

Legend:

Unmodified
Added
Removed
  • trunk/core/promogest/modules/VenditaDettaglio/ui/AnagraficaVenditaDettaglio.py

    r850 r878  
    935935    def on_chiusura_fiscale_activate(self, widget): 
    936936#        if DRIVER=="D": 
    937         GestioneChiusuraFiscale(self).chiusuraDialog(widget, self.id_magazzino) 
     937        GestioneChiusuraFiscale(self) #.chiusuraDialog(widget, self.id_magazzino) 
    938938 
    939939    def on_stampa_del_giornale_breve_activate(self, widget): 
  • trunk/core/promogest/modules/VenditaDettaglio/ui/GestioneChiusuraFiscale.py

    r844 r878  
    1010from datetime import datetime 
    1111from promogest import Environment 
     12from promogest.ui.GladeWidget import GladeWidget 
    1213from promogest.dao.TestataMovimento import TestataMovimento 
    1314from promogest.dao.RigaMovimento import RigaMovimento 
     
    2021from promogest.modules.VenditaDettaglio.dao.ChiusuraFiscale import ChiusuraFiscale 
    2122from promogest.ui.utils import * 
    22  
    23 class GestioneChiusuraFiscale(object): 
     23from promogest.modules.VenditaDettaglio.ui.VenditaDettaglioUtils import fillComboboxPos 
     24 
     25class GestioneChiusuraFiscale(GladeWidget): 
    2426    """ Classe per la gestione degli scontrini emessi """ 
    2527    def __init__(self,gladeobj): 
     28        GladeWidget.__init__(self, 'chiusura_dialog', 
     29                fileName='VenditaDettaglio/gui/chiusura_fine_giornata.glade', 
     30                isModule=True) 
     31        self.draw() 
     32#        self.run() 
    2633        self.gladeobj = gladeobj 
    2734 
    28     def chiusuraDialog(self, widget, idMagazzino): 
    29         print "MAGAZZINOOOOOOOOOOOOOOOOOOOOOOOOOOO", idMagazzino 
    30         dialog = gtk.MessageDialog(self.gladeobj.getTopLevel(), 
    31                                    gtk.DIALOG_MODAL 
    32                                    | gtk.DIALOG_DESTROY_WITH_PARENT, 
    33                                    gtk.MESSAGE_QUESTION, gtk.BUTTONS_YES_NO) 
    34         dialog.set_markup("""<b>ATTENZIONE</b>: Chiusura fiscale! 
    35     Confermi la data? 
    36     Se non sai cosa stai facendo lascia la data odierna impostata 
    37     e contatta la Promotux""") 
    38         hbox = gtk.HBox() 
    39         entry = self.gladeobj.data_chiusura 
    40         entry.setNow() 
    41         hbox.pack_start(entry, False, False, 0) 
    42         dialog.vbox.pack_start(hbox, False, False, 0) 
    43         entry.show() 
    44         dialog.show_all() 
    45         response = dialog.run() 
    46         dialog.destroy() 
    47         if response ==  gtk.RESPONSE_YES: 
    48             # controllo se vi e` gia` stata una chiusura 
    49             data = stringToDate(entry.get_text()) 
    50             chiusure = ChiusuraFiscale().select( dataChiusura = data, 
    51                                                 offset = None, 
    52                                                 idMagazzino = self.gladeobj.idMagazzino, 
    53                                                 idPuntoCassa = self.gladeobj.idPuntoCassa, 
    54                                                 batchSize = None) 
    55             if len(chiusure) != 0: 
    56                 dialog = gtk.MessageDialog(self.gladeobj.getTopLevel(), 
    57                                            gtk.DIALOG_MODAL 
    58                                            | gtk.DIALOG_DESTROY_WITH_PARENT, 
    59                                            gtk.MESSAGE_ERROR, gtk.BUTTONS_OK) 
    60                 dialog.set_markup("<b>ATTENZIONE:\n La chiusura odierna e` gia' stata effettuata</b>") 
    61                 response = dialog.run() 
    62                 dialog.destroy() 
    63                 return 
    64             self.close_day(idMagazzino, data) 
    65         else: 
     35    def draw(self): 
     36        fillComboboxMagazzini(self.chiusura_id_magazzino_combobox) 
     37        if hasattr(Environment.conf.VenditaDettaglio, "magazzino"): 
     38            findComboboxRowFromStr(self.chiusura_id_magazzino_combobox, Environment.conf.VenditaDettaglio.magazzino,2) 
     39        fillComboboxPos(self.chiusura_id_pos_combobox) 
     40        if hasattr(Environment.conf.VenditaDettaglio, "puntocassa"): 
     41            findComboboxRowFromStr(self.chiusura_id_pos_combobox, Environment.conf.VenditaDettaglio.puntocassa,2) 
     42        self.chiusura_datetime.show_all() 
     43        self.chiusura_datetime.setNow() 
     44 
     45    def on_ok_chiusura_button_clicked(self, button): 
     46        # controllo se vi e` gia` stata una chiusura 
     47        data = stringToDate(self.chiusura_datetime.get_text()) 
     48        self.idPuntoCassa = findIdFromCombobox(self.chiusura_id_pos_combobox) 
     49        self.idMagazzino = findIdFromCombobox(self.chiusura_id_magazzino_combobox) 
     50        chiusure = ChiusuraFiscale().select( dataChiusura = data, 
     51                                            offset = None, 
     52                                            idMagazzino = self.idMagazzino, 
     53                                            idPuntoCassa = self.idPuntoCassa, 
     54                                            batchSize = None) 
     55        if len(chiusure) != 0: 
     56            dialog = gtk.MessageDialog(self.getTopLevel(), 
     57                                       gtk.DIALOG_MODAL 
     58                                       | gtk.DIALOG_DESTROY_WITH_PARENT, 
     59                                       gtk.MESSAGE_ERROR, gtk.BUTTONS_OK) 
     60            dialog.set_markup("<b>ATTENZIONE:\n La chiusura odierna e` gia' stata effettuata</b>") 
     61            response = dialog.run() 
     62            dialog.destroy() 
    6663            return 
     64        self.close_day(idMagazzino, data) 
     65 
     66    def on_no_chiusura_button_clicked(self, button): 
     67        self.chiusura_dialog.hide() 
     68 
     69#    def chiusuraDialog(self, widget, idMagazzino): 
     70 
     71#            # controllo se vi e` gia` stata una chiusura 
     72#            data = stringToDate(entry.get_text()) 
     73#            chiusure = ChiusuraFiscale().select( dataChiusura = data, 
     74#                                                offset = None, 
     75#                                                idMagazzino = self.gladeobj.idMagazzino, 
     76#                                                idPuntoCassa = self.gladeobj.idPuntoCassa, 
     77#                                                batchSize = None) 
     78#            if len(chiusure) != 0: 
     79#                dialog = gtk.MessageDialog(self.gladeobj.getTopLevel(), 
     80#                                           gtk.DIALOG_MODAL 
     81#                                           | gtk.DIALOG_DESTROY_WITH_PARENT, 
     82#                                           gtk.MESSAGE_ERROR, gtk.BUTTONS_OK) 
     83#                dialog.set_markup("<b>ATTENZIONE:\n La chiusura odierna e` gia' stata effettuata</b>") 
     84#                response = dialog.run() 
     85#                dialog.destroy() 
     86#                return 
     87#            self.close_day(idMagazzino, data) 
     88#        else: 
     89#            return 
    6790 
    6891    def close_day(self, idMagazzino, data): 
     
    7497        scontrini = TestataScontrino().select(daData = datefirst, 
    7598                                            aData = aData,  # Scontrini prodotti nella giornata odierna 
    76                                             idMagazzino = self.gladeobj.idMagazzino, 
    77                                             idPuntoCassa = self.gladeobj.idPuntoCassa, 
     99                                            idMagazzino = self.idMagazzino, 
     100                                            idPuntoCassa = self.idPuntoCassa, 
    78101                                            offset = None, 
    79102                                            batchSize = None) 
     
    123146        daoChiusura.id_pos = self.gladeobj.idPuntoCassa 
    124147        daoChiusura.persist() 
    125         #daoChiusura.update() 
    126148 
    127149        # Creo il file 
  • trunk/core/promogest/modules/VenditaDettaglio/ui/GestioneScontrini.py

    r874 r878  
    208208        scos_no_batchSize = TestataScontrino().select( orderBy=self.filterss.orderBy, 
    209209                                                     idArticolo=idArticolo, 
     210                                                     idMagazzino = idMagazzino, 
     211                                                     idPuntoCassa = idPuntoCassa, 
    210212                                                     daData=daData, 
    211213                                                     aData=aData, 
     
    238240            totcont += m.totale_contanti 
    239241            totnum += 1 
    240         self.filterss.label1.set_text("T scontrini:") 
    241         stringa = """<b><span foreground="black" size="20000">%s</span></b> - Resto da contante:<b>%s</b> - T Carta:<b>%s</b> - T Assegni:<b>%s</b> - T Sconti:<b>%s</b> - N°:<b><span foreground="black" size="18000">%s</span></b>""" %(mN(tot),mN(totcont), mN(totccr), mN(totass),mN(tot_sconti), totnum ) 
     242        self.filterss.label1.set_text("") 
     243        stringa = """GENERALE:<b><span foreground="black" size="20000">%s</span></b> - NUM. SCONTRINI:<b><span foreground="black" size="18000">%s</span></b> 
     244TOT CARTA:<b>%s</b> - TOT ASSEGNI:<b>%s</b> - TOT CONT.:<b>%s</b> - TOT SCONTI:<b>%s</b> - """ %(mN(tot), totnum, mN(totccr), mN(totass), mN(totcont), mN(tot_sconti) ) 
    242245        self.filterss.info_label.set_markup(str(stringa)) 
    243246 
     
    389392                print "IL MODULO INVENTARIO NON e' ATTIVO " 
    390393 
    391     def on_sposta_scontrini_activate(self, item): 
    392         msg = """ ATTENZIONE!!!! 
    393             QUESTA OPERAZIONE È PERICOLOSSIMA!!!! 
    394             Ú stata aggiunta per corprire una casistica specifica 
    395             di "spostamento scontrini da un database ad un altro 
    396             sei sicuro di volerlo fare??""" 
    397         dialog = gtk.MessageDialog(self.getTopLevel(), 
    398                                gtk.DIALOG_MODAL 
    399                                | gtk.DIALOG_DESTROY_WITH_PARENT, 
    400                                gtk.MESSAGE_QUESTION, gtk.BUTTONS_YES_NO, 
    401                                msg) 
    402         response = dialog.run() 
    403         dialog.destroy() 
    404         if response ==  gtk.RESPONSE_YES: 
    405             print "ok ok " 
    406             print self.scontrini 
    407             Environment.params["metadata"] = Environment.meta2 
    408             from promogest.modules.VenditaDettaglio.dao.TestataScontrino import TestataScontrino 
    409             test= Environment.session2.query(TestataScontrino.id).all() 
    410             print "TESSSST",test 
    411             Environment.params["metadata"] = Environment.meta 
    412 #            dao = TestataScontrino() 
    413 #            dao.data_inserimento = datetime.now() 
    414 #            dao.totale_scontrino = mN(self.label_totale.get_text()) 
    415 #            dao.totale_sconto = mN(self.sconto_totale_entry.get_text()) 
    416 #            dao.totale_subtotale = mN(self.label_subtotale.get_text()) 
    417 #            dao.tipo_sconto_scontrino = self.tipo_sconto_scontrino 
    418 #            dao.id_magazzino = int(self.idMagazzino) 
    419 #            if self.idPuntoCassa: 
    420 #                dao.id_pos = int(self.idPuntoCassa) 
    421 #            dao.id_ccardtype = findIdFromCombobox(self.card_type_combobox) 
    422 #            dao.id_user = Environment.params["usernameLoggedList"][0] 
    423  
    424 #            #print "TOTALI",totale_scontrino,  totale_sconto, totale_subtotale 
    425  
    426 #            if dao.totale_scontrino < 0: 
    427 #                msg = 'Attenzione!\n\nIl totale non puo\' essere negativo !' 
    428 #                dialog = gtk.MessageDialog(self.getTopLevel(), 
    429 #                                           gtk.DIALOG_MODAL 
    430 #                                           | gtk.DIALOG_DESTROY_WITH_PARENT, 
    431 #                                           gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, 
    432 #                                           msg) 
    433 #                response = dialog.run() 
    434 #                dialog.destroy() 
    435 #                return 
    436  
    437 #            # Creo dao testata_scontrino 
    438 #            scontiSuTotale = [] 
    439 #            #res = self.sconti_testata_widget.getSconti() 
    440 #            if dao.totale_sconto: 
    441 #                daoSconto = ScontoTestataScontrino() 
    442 #                daoSconto.valore = dao.totale_sconto 
    443 #                daoSconto.tipo_sconto = dao.tipo_sconto_scontrino 
    444 #                scontiSuTotale.append(daoSconto) 
    445 #            dao.scontiSuTotale = scontiSuTotale 
    446  
    447 #            #dao.totale_scontrino = totale_scontrino 
    448 #            totale_contanti = 0 
    449 #            totale_assegni = 0 
    450 #            totale_carta_di_credito = 0 
    451  
    452 #            if self.contanti_entry.get_text() != '': 
    453 #                totale_contanti = mN(self.contanti_entry.get_text()) 
    454 #                resto = totale_contanti - dao.totale_scontrino 
    455 #                self.label_resto.set_markup('<b><span foreground="black" size="24000">' + str(resto) +'</span></b>') 
    456 #            if self.non_contanti_entry.get_text() != '': 
    457 #                if self.assegni_radio_button.get_active(): 
    458 #                    totale_assegni = mN(self.non_contanti_entry.get_text()) 
    459 #                else: 
    460 #                    totale_carta_di_credito = mN(self.non_contanti_entry.get_text()) 
    461  
    462 #            dao.totale_contanti = totale_contanti 
    463 #            dao.totale_assegni = totale_assegni 
    464 #            dao.totale_carta_credito = totale_carta_di_credito 
    465  
    466 #            # Creo righe 
    467 #            righe = [] 
    468 #            model = self.scontrino_treeview.get_model() 
    469 #            for row in model: 
    470 #                idArticolo = row[0] 
    471 #                descrizione = row[4] 
    472 #                prezzo = mN(row[5]) 
    473 #                valoreSconto = mN(row[6]) 
    474 #                tipoSconto = row[7] 
    475 #                prezzoScontato = mN(row[8]) 
    476 #                quantita = Decimal(row[9]) 
    477  
    478 #                # Nuova riga 
    479 #                daoRiga = RigaScontrino() 
    480 #                daoRiga.id_testata_scontrino = dao.id 
    481 #                daoRiga.id_articolo = idArticolo 
    482 #                daoRiga.descrizione = descrizione 
    483 #                daoRiga.prezzo = prezzo 
    484 #                daoRiga.prezzo_scontato = prezzoScontato 
    485 #                daoRiga.quantita = quantita 
    486 #                listarighesconto = [] 
    487  
    488 #                if valoreSconto > 0: 
    489 #                    daoScontoRigaScontrino = ScontoRigaScontrino() 
    490 #                    daoScontoRigaScontrino.valore = valoreSconto 
    491 #                    if tipoSconto == self._simboloPercentuale: 
    492 #                        daoScontoRigaScontrino.tipo_sconto = 'percentuale' 
    493 #                    else: 
    494 #                        daoScontoRigaScontrino.tipo_sconto = 'valore' 
    495 #                    listarighesconto.append(daoScontoRigaScontrino) 
    496 #                daoRiga.sconti=listarighesconto 
    497 #                righe.append(daoRiga) 
    498  
    499 #            # Aggiungo righe e salvo dao 
    500 #            dao.righe = righe 
    501 #            dao.persist() 
    502  
    503  
    504394    def on_distinta_button_clicked(self, button): 
    505395        gest = Distinta(righe = self.scontrini)