~georgeyk/stoq/print-barcode

« back to all changes in this revision

Viewing changes to stoq/gui/sales/sales.py

  • Committer: george
  • Date: 2009-07-07 17:57:10 UTC
  • Revision ID: vcs-imports@canonical.com-20090707175710-x21m3m0ovazcfygs
#3940: Nao ha opcao de insercao do numero da nota fiscal no gerenciador
de layout de notas fiscais. (stoq) r=romaia

Show diffs side-by-side

added added

removed removed

Lines of Context:
36
36
from kiwi.ui.objectlist import Column, SearchColumn
37
37
 
38
38
from stoqlib.database.runtime import (get_current_branch, get_current_station,
39
 
                                      new_transaction, rollback_and_begin,
40
 
                                      finish_transaction)
 
39
                                      new_transaction, finish_transaction)
41
40
from stoqlib.domain.inventory import Inventory
42
41
from stoqlib.domain.invoice import InvoicePrinter
43
42
from stoqlib.domain.sale import Sale, SaleView
 
43
from stoqlib.gui.editors.invoiceeditor import SaleInvoicePrinterDialog
44
44
from stoqlib.gui.dialogs.openinventorydialog import show_inventory_process_message
45
45
from stoqlib.gui.search.commissionsearch import CommissionSearch
46
46
from stoqlib.gui.search.personsearch import ClientSearch
49
49
from stoqlib.gui.search.servicesearch import ServiceSearch
50
50
from stoqlib.gui.slaves.saleslave import SaleListToolbar
51
51
from stoqlib.gui.wizards.salequotewizard import SaleQuoteWizard
52
 
from stoqlib.lib.invoice import SaleInvoice
 
52
from stoqlib.lib.invoice import SaleInvoice, print_sale_invoice
53
53
from stoqlib.lib.validators import format_quantity
54
54
from stoqlib.lib.message import info
55
55
 
164
164
 
165
165
    def _update_toolbar(self, *args):
166
166
        sale_view = self._klist.get_selected()
 
167
        #FIXME: Disable invoice printing if the sale was returned. Remove this
 
168
        #       when we add proper support for returned sales invoice.
167
169
        can_print_invoice = bool(sale_view and
168
 
                                 sale_view.client_name is not None)
 
170
                                 sale_view.client_name is not None and
 
171
                                 sale_view.status != Sale.STATUS_RETURNED)
169
172
        self.print_invoice.set_sensitive(can_print_invoice)
170
173
        self.cancel_menu.set_sensitive(self._can_cancel(sale_view))
171
174
 
186
189
            info(_("There are no invoice printer configured for this station"))
187
190
            return
188
191
        assert printer.layout
 
192
 
189
193
        invoice = SaleInvoice(sale, printer.layout)
190
 
        invoice.send_to_printer(printer.device_name)
 
194
        if not invoice.has_invoice_number() or sale.invoice_number:
 
195
            print_sale_invoice(invoice, printer)
 
196
        else:
 
197
            trans = new_transaction()
 
198
            retval = self.run_dialog(SaleInvoicePrinterDialog, trans,
 
199
                                     trans.get(sale), printer)
 
200
            finish_transaction(trans, retval)
 
201
            trans.close()
191
202
 
192
203
    def _setup_columns(self, sale_status=Sale.STATUS_CONFIRMED):
193
204
        self._status_col.visible = False