Changeset 865
- Timestamp:
- 03/09/10 12:53:27 (5 months ago)
- Location:
- trunk/core/promogest
- Files:
-
- 5 modified
-
Environment.py (modified) (2 diffs)
-
dao/Inventario.py (modified) (1 diff)
-
modules/Inventario/gui/_inventario_select.glade (modified) (7 diffs)
-
modules/Inventario/ui/GestioneInventario.py (modified) (4 diffs)
-
modules/VenditaDettaglio/ui/GestioneScontrini.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/core/promogest/Environment.py
r843 r865 374 374 375 375 376 376 377 class SetTextFactory(PoolListener): 377 378 def connect(self, dbapi_con, con_record): … … 395 396 encoding='utf-8', 396 397 convert_unicode=True ) 398 399 if hasattr(conf,'Database2'): 400 print "HO LA CONFIGURAZIONE PER IL SECONDO DATABASE" 401 # try: 402 database2 = conf.Database2.database2 403 port2 = conf.Database2.port2 404 user2 = conf.Database2.user2 405 password2 = conf.Database2.password2 406 host2 = conf.Database2.host2 407 engine2 = create_engine('postgres:'+'//' 408 +user2+':' 409 + password2+ '@' 410 + host2 + ':' 411 + port2 + '/' 412 + database2, 413 encoding='utf-8', 414 convert_unicode=True ) 415 engine2.echo = False 416 Session2 = scoped_session(sessionmaker(bind=engine, autoflush=True)) 417 session2 = Session2() 418 meta2 = MetaData(engine2) 419 print "IL SECONDO DB E' A POSTO" 420 # except: 421 # print "MESSO IN UN TRY IL SECONDO DB" 422 397 423 tipo_eng = engine.name 398 424 engine.echo = False 399 425 meta = MetaData(engine) 400 #Session = sessionmaker(bind=engine)426 #Session = sessionmaker(bind=engine) 401 427 Session = scoped_session(sessionmaker(bind=engine, autoflush=True)) 402 428 -
trunk/core/promogest/dao/Inventario.py
r860 r865 80 80 dic = {k:inventario.c.anno == v} 81 81 elif k == 'daDataAggiornamento': 82 dic = {k:inventario.c.data_aggiornamen o >= v}82 dic = {k:inventario.c.data_aggiornamento >= v} 83 83 elif k == 'aDataAggiornamento': 84 dic = {k:inventario.c.data_aggiornamen o >= v}84 dic = {k:inventario.c.data_aggiornamento <= v} 85 85 elif k == 'qa_zero': 86 86 dic = {k:inventario.c.quantita == 0} -
trunk/core/promogest/modules/Inventario/gui/_inventario_select.glade
r816 r865 227 227 <object class="GtkAlignment" id="alignment1"> 228 228 <property name="visible">True</property> 229 <property name="left_padding">12</property>230 229 <child> 231 230 <object class="GtkHBox" id="hbox1"> … … 264 263 </packing> 265 264 </child> 265 <child> 266 <object class="GtkButton" id="azzera_selected_button"> 267 <property name="label" translatable="yes">Azzera selez</property> 268 <property name="visible">True</property> 269 <property name="can_focus">True</property> 270 <property name="can_default">True</property> 271 <property name="receives_default">True</property> 272 <property name="tooltip_text" translatable="yes">Azzera le voci di inventario selezionate</property> 273 <signal name="clicked" handler="on_azzera_selected_button_clicked"/> 274 </object> 275 <packing> 276 <property name="expand">False</property> 277 <property name="fill">False</property> 278 <property name="position">2</property> 279 </packing> 280 </child> 266 281 </object> 267 282 </child> … … 289 304 <object class="GtkAlignment" id="alignment2"> 290 305 <property name="visible">True</property> 291 <property name="left_padding">12</property>292 306 <child> 293 307 <object class="GtkHBox" id="hbox2"> … … 346 360 <object class="GtkAlignment" id="alignment3"> 347 361 <property name="visible">True</property> 348 <property name="left_padding">12</property>349 362 <child> 350 363 <object class="GtkHBox" id="hbox3"> … … 368 381 <child> 369 382 <object class="GtkButton" id="esporta_button"> 370 <property name="label" translatable="yes">Esporta </property>383 <property name="label" translatable="yes">Esporta tutto</property> 371 384 <property name="visible">True</property> 372 385 <property name="can_focus">True</property> … … 380 393 <property name="fill">False</property> 381 394 <property name="position">1</property> 395 </packing> 396 </child> 397 <child> 398 <object class="GtkButton" id="esporta_buoni_button"> 399 <property name="label" translatable="yes">Esporta >1</property> 400 <property name="visible">True</property> 401 <property name="can_focus">True</property> 402 <property name="can_default">True</property> 403 <property name="receives_default">True</property> 404 <signal name="clicked" handler="on_esporta_buoni_button_clicked"/> 405 </object> 406 <packing> 407 <property name="expand">False</property> 408 <property name="fill">False</property> 409 <property name="position">2</property> 382 410 </packing> 383 411 </child> … … 406 434 <object class="GtkAlignment" id="alignment4"> 407 435 <property name="visible">True</property> 408 <property name="left_padding">12</property>409 436 <child> 410 437 <object class="GtkHBox" id="hbox4"> -
trunk/core/promogest/modules/Inventario/ui/GestioneInventario.py
r863 r865 76 76 77 77 self._modifica.azzera_button.connect('clicked', self.on_azzera_button_clicked) 78 self._modifica.azzera_selected_button.connect('clicked', self.on_azzera_selected_button_clicked) 78 79 self._modifica.ricrea_button.connect('clicked', self.on_ricrea_button_clicked) 79 80 self._modifica.aggiorna_button.connect('clicked', self.on_aggiorna_button_clicked) … … 319 320 offset=self.filter.offset, 320 321 filterDict=self.filterDict) 321 322 self.inventariati_filtrati_tutti = Inventario().select(orderBy=self.filter.orderBy, 323 anno=self.annoScorso, 324 idMagazzino=self.idMagazzino, 325 daDataAggiornamento=self.daData, 326 aDataAggiornamento=self.aData, 327 qa_zero=self.qa_zero, 328 qa_negativa=self.qa_negativa, 329 val_negativo =self.val_negativo, 330 batchSize =None, 331 filterDict=self.filterDict) 322 332 model.clear() 323 333 … … 397 407 def on_filter_field_changed(self, widget=None, event=None): 398 408 """ Aggiorna il testo del riepilogo perche' almeno uno dei filtri propri e' cambiato """ 399 self.setRiepilogo() 409 # self.setRiepilogo() 410 return 400 411 401 412 # def setRiepilogo(self): … … 479 490 # treeview.scroll_to_cell(path) 480 491 # self.on_filter_treeview_cursor_changed(treeview) 492 493 def on_azzera_selected_button_clicked(self, button): 494 msg = """ATTENZIONE!!! 495 Stai per cancellare le informazioni 496 relative alle voci di inventario filtrate e selezionate. 497 Confermi la cancellazione ? 498 """ 499 dialog = gtk.MessageDialog(self.getTopLevel(), 500 gtk.DIALOG_MODAL 501 | gtk.DIALOG_DESTROY_WITH_PARENT, 502 gtk.MESSAGE_QUESTION, gtk.BUTTONS_YES_NO, 503 msg) 504 505 response = dialog.run() 506 dialog.destroy() 507 if response == gtk.RESPONSE_YES: 508 for i in self.inventariati_filtrati_tutti: 509 i.quantita = 0 510 Environment.session.add(i) 511 Environment.session.commit() 512 self.fineElaborazione() 513 514 515 516 481 517 482 518 def on_azzera_button_clicked(self, button): -
trunk/core/promogest/modules/VenditaDettaglio/ui/GestioneScontrini.py
r863 r865 328 328 """ Questa funzione serve a ricalibrare le giacenze di inventario con 329 329 gli articoli venduti al dettaglio """ 330 331 if "Inventario" in Environment.modulesList: 332 idMagazzinosel = Magazzino().select(denominazione = Environment.conf.VenditaDettaglio.magazzino) 333 if Environment.conf.VenditaDettaglio.jolly: 334 idArticoloGenericoSel = Articolo().select(codiceEM = Environment.conf.VenditaDettaglio.jolly) 335 if idArticoloGenericoSel: 336 idArticoloGenerico = idArticoloGenericoSel[0].id 330 msg = """ ATTENZIONE!!!! 331 QUESTA OPERAZIONE à PERICOLOSSIMA!!!! 332 Ú stata aggiunta per corprire una casistica specifica 333 di "aggiornamento della tabella inventario 334 rispetto al venduto al dettaglio vuoi farlo??""" 335 dialog = gtk.MessageDialog(self.getTopLevel(), 336 gtk.DIALOG_MODAL 337 | gtk.DIALOG_DESTROY_WITH_PARENT, 338 gtk.MESSAGE_QUESTION, gtk.BUTTONS_YES_NO, 339 msg) 340 response = dialog.run() 341 dialog.destroy() 342 if response == gtk.RESPONSE_YES: 343 if "Inventario" in Environment.modulesList: 344 idMagazzinosel = Magazzino().select(denominazione = Environment.conf.VenditaDettaglio.magazzino) 345 if Environment.conf.VenditaDettaglio.jolly: 346 idArticoloGenericoSel = Articolo().select(codiceEM = Environment.conf.VenditaDettaglio.jolly) 347 if idArticoloGenericoSel: 348 idArticoloGenerico = idArticoloGenericoSel[0].id 349 else: 350 idArticoloGenerico = None 351 if idMagazzinosel: 352 idMagazzino = idMagazzinosel[0].id 337 353 else: 338 idArticoloGenerico = None 339 if idMagazzinosel: 340 idMagazzino = idMagazzinosel[0].id 354 print "ERRORE NELLA DEFINIZIONE DEL MAGAZZINO" 355 return 356 for scontrino in self.scontrini: 357 for riga in scontrino.righe: 358 # print "RIGAAAAAAAAAAAAAAAA", riga.id_articolo 359 daoInv = Inventario().select(idArticolo=riga.id_articolo, idMagazzino = idMagazzino) 360 if daoInv and idArticoloGenerico!=riga.id_articolo: 361 if daoInv[0].data_aggiornamento is None or scontrino.data_inserimento < daoInv[0].data_aggiornamento: 362 quantitaprecedente = daoInv[0].quantita or 0 363 quantitavenduta = riga.quantita 364 nuovaquantita = quantitaprecedente+quantitavenduta 365 print "OPERAZIONE DA EFFETTUARE", quantitaprecedente,quantitavenduta, nuovaquantita 366 daoInv[0].quantita= nuovaquantita 367 daoInv[0].persist() 341 368 else: 342 print "ERRORE NELLA DEFINIZIONE DEL MAGAZZINO" 343 return 344 for scontrino in self.scontrini: 345 for riga in scontrino.righe: 346 # print "RIGAAAAAAAAAAAAAAAA", riga.id_articolo 347 daoInv = Inventario().select(idArticolo=riga.id_articolo, idMagazzino = idMagazzino) 348 if daoInv and idArticoloGenerico!=riga.id_articolo: 349 if daoInv[0].data_aggiornamento is None or scontrino.data_inserimento < daoInv[0].data_aggiornamento: 350 quantitaprecedente = daoInv[0].quantita or 0 351 quantitavenduta = riga.quantita 352 nuovaquantita = quantitaprecedente+quantitavenduta 353 print "OPERAZIONE DA EFFETTUARE", quantitaprecedente,quantitavenduta, nuovaquantita 354 daoInv[0].quantita= nuovaquantita 355 daoInv[0].persist() 356 else: 357 print "IL MODULO INVENTARIO NON e' ATTIVO " 369 print "IL MODULO INVENTARIO NON e' ATTIVO " 370 371 def on_sposta_scontrini_activate(self, item): 372 msg = """ ATTENZIONE!!!! 373 QUESTA OPERAZIONE à PERICOLOSSIMA!!!! 374 Ú stata aggiunta per corprire una casistica specifica 375 di "spostamento scontrini da un database ad un altro 376 sei sicuro di volerlo fare??""" 377 dialog = gtk.MessageDialog(self.getTopLevel(), 378 gtk.DIALOG_MODAL 379 | gtk.DIALOG_DESTROY_WITH_PARENT, 380 gtk.MESSAGE_QUESTION, gtk.BUTTONS_YES_NO, 381 msg) 382 response = dialog.run() 383 dialog.destroy() 384 if response == gtk.RESPONSE_YES: 385 print "ok ok " 386 print self.scontrini 387 Environment.params["metadata"] = Environment.meta2 388 from promogest.modules.VenditaDettaglio.dao.TestataScontrino import TestataScontrino 389 test= Environment.session2.query(TestataScontrino.id).all() 390 print "TESSSST",test 391 Environment.params["metadata"] = Environment.meta 392 # dao = TestataScontrino() 393 # dao.data_inserimento = datetime.now() 394 # dao.totale_scontrino = mN(self.label_totale.get_text()) 395 # dao.totale_sconto = mN(self.sconto_totale_entry.get_text()) 396 # dao.totale_subtotale = mN(self.label_subtotale.get_text()) 397 # dao.tipo_sconto_scontrino = self.tipo_sconto_scontrino 398 # dao.id_magazzino = int(self.idMagazzino) 399 # if self.idPuntoCassa: 400 # dao.id_pos = int(self.idPuntoCassa) 401 # dao.id_ccardtype = findIdFromCombobox(self.card_type_combobox) 402 # dao.id_user = Environment.params["usernameLoggedList"][0] 403 404 # #print "TOTALI",totale_scontrino, totale_sconto, totale_subtotale 405 406 # if dao.totale_scontrino < 0: 407 # msg = 'Attenzione!\n\nIl totale non puo\' essere negativo !' 408 # dialog = gtk.MessageDialog(self.getTopLevel(), 409 # gtk.DIALOG_MODAL 410 # | gtk.DIALOG_DESTROY_WITH_PARENT, 411 # gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, 412 # msg) 413 # response = dialog.run() 414 # dialog.destroy() 415 # return 416 417 # # Creo dao testata_scontrino 418 # scontiSuTotale = [] 419 # #res = self.sconti_testata_widget.getSconti() 420 # if dao.totale_sconto: 421 # daoSconto = ScontoTestataScontrino() 422 # daoSconto.valore = dao.totale_sconto 423 # daoSconto.tipo_sconto = dao.tipo_sconto_scontrino 424 # scontiSuTotale.append(daoSconto) 425 # dao.scontiSuTotale = scontiSuTotale 426 427 # #dao.totale_scontrino = totale_scontrino 428 # totale_contanti = 0 429 # totale_assegni = 0 430 # totale_carta_di_credito = 0 431 432 # if self.contanti_entry.get_text() != '': 433 # totale_contanti = mN(self.contanti_entry.get_text()) 434 # resto = totale_contanti - dao.totale_scontrino 435 # self.label_resto.set_markup('<b><span foreground="black" size="24000">' + str(resto) +'</span></b>') 436 # if self.non_contanti_entry.get_text() != '': 437 # if self.assegni_radio_button.get_active(): 438 # totale_assegni = mN(self.non_contanti_entry.get_text()) 439 # else: 440 # totale_carta_di_credito = mN(self.non_contanti_entry.get_text()) 441 442 # dao.totale_contanti = totale_contanti 443 # dao.totale_assegni = totale_assegni 444 # dao.totale_carta_credito = totale_carta_di_credito 445 446 # # Creo righe 447 # righe = [] 448 # model = self.scontrino_treeview.get_model() 449 # for row in model: 450 # idArticolo = row[0] 451 # descrizione = row[4] 452 # prezzo = mN(row[5]) 453 # valoreSconto = mN(row[6]) 454 # tipoSconto = row[7] 455 # prezzoScontato = mN(row[8]) 456 # quantita = Decimal(row[9]) 457 458 # # Nuova riga 459 # daoRiga = RigaScontrino() 460 # daoRiga.id_testata_scontrino = dao.id 461 # daoRiga.id_articolo = idArticolo 462 # daoRiga.descrizione = descrizione 463 # daoRiga.prezzo = prezzo 464 # daoRiga.prezzo_scontato = prezzoScontato 465 # daoRiga.quantita = quantita 466 # listarighesconto = [] 467 468 # if valoreSconto > 0: 469 # daoScontoRigaScontrino = ScontoRigaScontrino() 470 # daoScontoRigaScontrino.valore = valoreSconto 471 # if tipoSconto == self._simboloPercentuale: 472 # daoScontoRigaScontrino.tipo_sconto = 'percentuale' 473 # else: 474 # daoScontoRigaScontrino.tipo_sconto = 'valore' 475 # listarighesconto.append(daoScontoRigaScontrino) 476 # daoRiga.sconti=listarighesconto 477 # righe.append(daoRiga) 478 479 # # Aggiungo righe e salvo dao 480 # dao.righe = righe 481 # dao.persist() 482 358 483 359 484 def on_distinta_button_clicked(self, button):
