コード例 #1
0
 def create_filters(self):
     self.set_text_field_columns(["name", "cpf", "rg_number", "phone_number", "mobile_number"])
     statuses = [(v, k) for k, v in Client.statuses.items()]
     statuses.insert(0, (_("Any"), None))
     status_filter = ComboSearchFilter(_("Show clients with status"), statuses)
     status_filter.select(None)
     self.add_filter(status_filter, SearchFilterPosition.TOP, ["status"])
コード例 #2
0
class ProductionItemsSearch(ProductSearch):
    title = _(u"Production Items")
    search_spec = ProductionItemView
    report_class = ProductionItemReport
    csv_data = None
    has_print_price_button = False

    def __init__(self, store, hide_footer=True, hide_toolbar=True):
        ProductSearch.__init__(self, store, hide_footer=hide_footer, hide_toolbar=hide_toolbar)

    #
    # SearchDialog
    #

    def create_filters(self):
        self.set_text_field_columns(["description", "order_identifier_str"])

        statuses = [(desc, i) for i, desc in ProductionOrder.statuses.items()]
        statuses.insert(0, (_(u"Any"), None))
        self.status_filter = ComboSearchFilter(_("order status:"), statuses)
        self.status_filter.select(ProductionOrder.ORDER_PRODUCING)
        self.add_filter(self.status_filter, columns=["order_status"], position=SearchFilterPosition.TOP)

    def get_columns(self):
        return [
            IdentifierColumn("order_identifier", title=_(u"Order #"), sorted=True),
            SearchColumn("category_description", title=_(u"Category"), data_type=str),
            SearchColumn("description", title=_(u"Description"), data_type=str, expand=True),
            SearchColumn("unit_description", title=_(u"Unit"), data_type=str),
            SearchColumn("quantity", title=_(u"To Produce"), data_type=Decimal),
            SearchColumn("produced", title=_(u"Produced"), data_type=Decimal),
            SearchColumn("lost", title=_(u"Lost"), data_type=Decimal, visible=False),
        ]
コード例 #3
0
ファイル: stock.py プロジェクト: rosalin/stoq
 def create_filters(self):
     self.search.set_query(self._query)
     self.set_text_field_columns(['description'])
     self.branch_filter = ComboSearchFilter(_('Show by:'),
                                            self._get_branches())
     self.branch_filter.select(api.get_current_branch(self.store))
     self.add_filter(self.branch_filter, position=SearchFilterPosition.TOP)
コード例 #4
0
 def create_filters(self):
     statuses = [(v, k) for k, v in Client.statuses.items()]
     statuses.insert(0, (_('Any'), None))
     status_filter = ComboSearchFilter(_('Show clients with status'),
                                       statuses)
     status_filter.select(None)
     self.add_filter(status_filter, SearchFilterPosition.TOP, ['status'])
コード例 #5
0
ファイル: personsearch.py プロジェクト: coletivoEITA/stoq
    def create_filters(self):
        items = [(_("Active"), True), (_("Inactive"), False)]
        items.insert(0, (_("Any"), None))

        status_filter = ComboSearchFilter(_("Show transporters with status"), items)
        status_filter.select(None)
        self.add_filter(status_filter, SearchFilterPosition.TOP, ["is_active"])
コード例 #6
0
ファイル: deliverysearch.py プロジェクト: 5l1v3r1/stoq-1
class DeliverySearch(SearchEditor):
    """Delivery search implementation"""

    title = _('Delivery Search')
    search_spec = DeliveryView
    editor_class = DeliveryEditor
    has_new_button = False
    size = (750, 450)

    #
    #  Private
    #

    def _get_status_values(self):
        items = [(value, key) for key, value in Delivery.statuses.items()]
        items.insert(0, (_('Any'), None))
        return items

    #
    #  SearchEditor
    #

    def create_filters(self):
        self.set_text_field_columns(['tracking_code', 'transporter_name',
                                     'recipient_name', 'identifier_str'])

        # Status
        statuses = [(desc, st) for st, desc in Delivery.statuses.items()]
        statuses.insert(0, (_('Any'), None))
        self.status_filter = ComboSearchFilter(_('With status:'), statuses)
        self.status_filter.select(None)
        self.add_filter(self.status_filter, columns=['status'],
                        position=SearchFilterPosition.TOP)

    def get_editor_model(self, viewable):
        return viewable.delivery

    def get_columns(self):
        return [IdentifierColumn('identifier', title=_('Sale #'),
                                 order=Gtk.SortType.DESCENDING,
                                 sorted=True),
                SearchColumn('status_str', title=_('Status'), data_type=str,
                             search_attribute='status',
                             valid_values=self._get_status_values()),
                Column('address_str', title=_('Address'), data_type=str,
                       expand=True, ellipsize=Pango.EllipsizeMode.END),
                SearchColumn('tracking_code', title=_('Tracking code'),
                             data_type=str),
                SearchColumn('transporter_name', title=_('Transporter'),
                             data_type=str),
                SearchColumn('recipient_name', title=_('Recipient'),
                             data_type=str),
                SearchColumn('open_date', title=_('Open date'),
                             data_type=datetime.date, visible=False),
                SearchColumn('send_date', title=_('Sent date'),
                             data_type=datetime.date, visible=False),
                SearchColumn('receive_date', title=_('Received date'),
                             data_type=datetime.date, visible=False),
                ]
コード例 #7
0
    def create_filters(self):
        self.set_text_field_columns(["name", "phone_number"])
        items = [(_("Active"), True), (_("Inactive"), False)]
        items.insert(0, (_("Any"), None))

        status_filter = ComboSearchFilter(_("Show transporters with status"), items)
        status_filter.select(None)
        self.add_filter(status_filter, SearchFilterPosition.TOP, ["is_active"])
コード例 #8
0
 def create_filters(self):
     self.set_text_field_columns(['supplier_name', 'identifier_str'])
     self.status_filter = ComboSearchFilter(_('Show orders'),
                                            self._get_status_values())
     self.add_filter(self.status_filter, SearchFilterPosition.TOP,
                     ['status'])
     self.branch_filter = self.create_branch_filter(
         column=PurchaseOrderView.branch_id)
コード例 #9
0
ファイル: personsearch.py プロジェクト: coletivoEITA/stoq
 def create_filters(self):
     statuses = [(value, key) for key, value in Branch.statuses.items()]
     statuses.insert(0, (_("Any"), None))
     status_filter = ComboSearchFilter(_("Show branches with status"), statuses)
     status_filter.select(None)
     executer = self.search.get_query_executer()
     executer.add_filter_query_callback(status_filter, self._get_status_query)
     self.search.add_filter(status_filter, SearchFilterPosition.TOP)
コード例 #10
0
    def create_filters(self):
        items = [(_('Active'), True), (_('Inactive'), False)]
        items.insert(0, (_('Any'), None))

        status_filter = ComboSearchFilter(_('Show transporters with status'),
                                          items)
        status_filter.select(None)
        self.add_filter(status_filter, SearchFilterPosition.TOP, ['is_active'])
コード例 #11
0
ファイル: loansearch.py プロジェクト: hackedbellini/stoq
 def create_filters(self):
     # status filter
     statuses = [(desc, i) for i, desc in Loan.statuses.items()]
     statuses.insert(0, (_(u'Any'), None))
     status_filter = ComboSearchFilter(_(u'with status:'), statuses)
     status_filter.select(None)
     self.add_filter(status_filter, columns=['loan_status'],
                     position=SearchFilterPosition.TOP)
コード例 #12
0
ファイル: productionsearch.py プロジェクト: 5l1v3r1/stoq-1
 def create_filters(self):
     statuses = [(desc, i) for i, desc in ProductionOrder.statuses.items()]
     statuses.insert(0, (_(u'Any'), None))
     self.status_filter = ComboSearchFilter(_('order status:'), statuses)
     self.status_filter.select(ProductionOrder.ORDER_PRODUCING)
     self.add_filter(self.status_filter,
                     columns=['order_status'],
                     position=SearchFilterPosition.TOP)
コード例 #13
0
    def create_filters(self):
        self.set_text_field_columns(['name', 'phone_number'])
        items = [(_('Active'), True), (_('Inactive'), False)]
        items.insert(0, (_('Any'), None))

        status_filter = ComboSearchFilter(_('Show transporters with status'),
                                          items)
        status_filter.select(None)
        self.add_filter(status_filter, SearchFilterPosition.TOP, ['is_active'])
コード例 #14
0
 def create_filters(self):
     self.set_text_field_columns(['description', 'barcode'])
     items = [(v, k) for k, v in Sellable.statuses.items()]
     items.insert(0, (_('Any'), None))
     service_filter = ComboSearchFilter(_('Show services'), items)
     service_filter.select(None)
     executer = self.search.get_query_executer()
     executer.add_query_callback(self._get_query)
     self.add_filter(service_filter, SearchFilterPosition.TOP, ['status'])
コード例 #15
0
 def create_filters(self):
     self.set_text_field_columns(['description', 'identifier_str'])
     # status filter
     statuses = [(desc, i) for i, desc in Loan.statuses.items()]
     statuses.insert(0, (_(u'Any'), None))
     status_filter = ComboSearchFilter(_(u'with status:'), statuses)
     status_filter.select(None)
     self.add_filter(status_filter, columns=['loan_status'],
                     position=SearchFilterPosition.TOP)
コード例 #16
0
ファイル: personsearch.py プロジェクト: rosalin/stoq
 def create_filters(self):
     self.set_text_field_columns(['name', 'cpf', 'rg_number',
                                  'phone_number', 'mobile_number'])
     statuses = [(v, k) for k, v in Client.statuses.items()]
     statuses.insert(0, (_('Any'), None))
     status_filter = ComboSearchFilter(_('Show clients with status'),
                                       statuses)
     status_filter.select(None)
     self.add_filter(status_filter, SearchFilterPosition.TOP, ['status'])
コード例 #17
0
ファイル: till.py プロジェクト: tmaxter/stoq
 def create_filters(self):
     self.executer.set_query(self._query_executer)
     self.set_text_field_columns(['client_name', 'salesperson_name'])
     self.status_filter = ComboSearchFilter(_(u"Show orders"),
                                            self._get_status_values())
     self.status_filter.select(Sale.STATUS_CONFIRMED)
     self.add_filter(self.status_filter,
                     position=SearchFilterPosition.TOP,
                     columns=['status'])
コード例 #18
0
    def create_filters(self):
        self.set_text_field_columns(['recipient_name', 'identifier_str'])

        self.main_filter = ComboSearchFilter(_('Show'), [])
        self.add_filter(self.main_filter, SearchFilterPosition.TOP,
                        callback=self._get_main_query)

        self.create_branch_filter(column=[Invoice.branch_id])
        self._update_filters()
コード例 #19
0
 def create_filters(self):
     self.search.set_query(self._query)
     self.set_text_field_columns(['description', 'code', 'barcode',
                                  'category_description', 'manufacturer'])
     branches = Branch.get_active_branches(self.store)
     self.branch_filter = ComboSearchFilter(
         _('Show by:'), api.for_combo(branches, empty=_("All branches")))
     self.branch_filter.select(api.get_current_branch(self.store))
     self.add_filter(self.branch_filter, position=SearchFilterPosition.TOP)
コード例 #20
0
ファイル: servicesearch.py プロジェクト: tmaxter/stoq
 def create_filters(self):
     self.set_text_field_columns(['description', 'barcode'])
     items = [(v, k) for k, v in Sellable.statuses.items()]
     items.insert(0, (_('Any'), None))
     service_filter = ComboSearchFilter(_('Show services'),
                                        items)
     service_filter.select(None)
     self.executer.add_query_callback(self._get_query)
     self.add_filter(service_filter, SearchFilterPosition.TOP, ['status'])
コード例 #21
0
 def create_filters(self):
     # status filter
     statuses = [(desc, i) for i, desc in Loan.statuses.items()]
     statuses.insert(0, (_(u'Any'), None))
     status_filter = ComboSearchFilter(_(u'with status:'), statuses)
     status_filter.select(None)
     self.add_filter(status_filter,
                     columns=['loan_status'],
                     position=SearchFilterPosition.TOP)
コード例 #22
0
ファイル: personsearch.py プロジェクト: LeonamSilva/stoq
    def create_filters(self):
        self.set_text_field_columns(['name', 'phone_number'])
        items = [(_('Active'), True),
                 (_('Inactive'), False)]
        items.insert(0, (_('Any'), None))

        status_filter = ComboSearchFilter(_('Show transporters with status'),
                                          items)
        status_filter.select(None)
        self.add_filter(status_filter, SearchFilterPosition.TOP, ['is_active'])
コード例 #23
0
 def create_filters(self):
     statuses = [(value, key) for key, value in Branch.statuses.items()]
     statuses.insert(0, (_('Any'), None))
     status_filter = ComboSearchFilter(_('Show branches with status'),
                                       statuses)
     status_filter.select(None)
     executer = self.search.get_query_executer()
     executer.add_filter_query_callback(status_filter,
                                        self._get_status_query)
     self.search.add_filter(status_filter, SearchFilterPosition.TOP)
コード例 #24
0
ファイル: accounts.py プロジェクト: tmaxter/stoq
    def create_main_filter(self):
        self.main_filter = ComboSearchFilter(_('Show'), [])

        combo = self.main_filter.combo
        combo.color_attribute = 'color'
        combo.set_row_separator_func(self._on_main_filter__row_separator_func)
        self._update_filter_items()
        self.executer.add_filter_query_callback(
            self.main_filter, self._on_main_filter__query_callback)
        self.add_filter(self.main_filter, SearchFilterPosition.TOP)
コード例 #25
0
ファイル: deliverysearch.py プロジェクト: Guillon88/stoq
class DeliverySearch(SearchEditor):
    """Delivery search implementation"""

    title = _('Delivery Search')
    search_spec = DeliveryView
    editor_class = DeliveryEditor
    has_new_button = False
    size = (750, 450)

    #
    #  SearchEditor hooks
    #

    def _get_status_values(self):
        items = [(value, key) for key, value in Delivery.statuses.items()]
        items.insert(0, (_('Any'), None))
        return items

    def create_filters(self):
        self.set_text_field_columns(['tracking_code', 'transporter_name',
                                     'client_name', 'identifier_str'])

        # Status
        statuses = [(desc, st) for st, desc in Delivery.statuses.items()]
        statuses.insert(0, (_('Any'), None))
        self.status_filter = ComboSearchFilter(_('With status:'), statuses)
        self.status_filter.select(None)
        self.add_filter(self.status_filter, columns=['status'],
                        position=SearchFilterPosition.TOP)

    def get_editor_model(self, viewable):
        return viewable.delivery

    def get_columns(self):
        return [IdentifierColumn('sale_identifier', title=_('Sale #'),
                                 order=gtk.SORT_DESCENDING),
                SearchColumn('status_str', title=_('Status'), data_type=str,
                             search_attribute='status',
                             valid_values=self._get_status_values()),
                Column('address_str', title=_('Address'), data_type=str,
                       expand=True, ellipsize=pango.ELLIPSIZE_END),
                SearchColumn('tracking_code', title=_('Tracking code'),
                             data_type=str),
                SearchColumn('transporter_name', title=_('Transporter'),
                             data_type=str),
                SearchColumn('client_name', title=_('Client'),
                             data_type=str),
                SearchColumn('open_date', title=_('Open date'),
                             data_type=datetime.date, visible=False),
                SearchColumn('deliver_date', title=_('Sent date'),
                             data_type=datetime.date, visible=False),
                SearchColumn('receive_date', title=_('Received date'),
                             data_type=datetime.date, visible=False),
                ]
コード例 #26
0
 def create_filters(self):
     self.set_text_field_columns(['name', 'acronym', 'phone_number'])
     statuses = [(value, key)
                 for key, value in Branch.statuses.items()]
     statuses.insert(0, (_('Any'), None))
     status_filter = ComboSearchFilter(_('Show branches with status'),
                                       statuses)
     status_filter.select(None)
     self.executer.add_filter_query_callback(
         status_filter, self._get_status_query)
     self.search.add_filter(status_filter, SearchFilterPosition.TOP)
コード例 #27
0
ファイル: deliverysearch.py プロジェクト: rosalin/stoq
    def create_filters(self):
        self.set_text_field_columns(['tracking_code', 'transporter_name',
                                     'client_name', 'identifier_str'])

        # Status
        statuses = [(desc, st) for st, desc in Delivery.statuses.items()]
        statuses.insert(0, (_('Any'), None))
        self.status_filter = ComboSearchFilter(_('With status:'), statuses)
        self.status_filter.select(None)
        self.add_filter(self.status_filter, columns=['status'],
                        position=SearchFilterPosition.TOP)
コード例 #28
0
ファイル: searchdialog.py プロジェクト: Guillon88/stoq
    def create_sellable_filter(self, label=None):
        from stoqlib.domain.sellable import Sellable
        items = [(desc, status) for status, desc in Sellable.statuses.items()]
        items.insert(0, (_(u"Any"), None))

        if label is None:
            label = _('With status:')
        sellable_filter = ComboSearchFilter(label, items)
        # Select status available by default
        sellable_filter.select(Sellable.STATUS_AVAILABLE)

        return sellable_filter
コード例 #29
0
ファイル: inventory.py プロジェクト: rosalin/stoq
    def create_filters(self):
        # Disable string search right now, until we use a proper Viewable
        # for this application
        self.search.disable_search_entry()
        self.branch_filter = ComboSearchFilter(_('Show inventories at:'),
                                               self._get_branches_for_filter())

        current = api.get_current_branch(self.store)
        self.branch_filter.select(current.id)

        self.add_filter(self.branch_filter, SearchFilterPosition.TOP,
                        columns=["branch_id"])
コード例 #30
0
    def create_sellable_filter(self, label=None):
        from stoqlib.domain.sellable import Sellable
        items = [(desc, status) for status, desc in Sellable.statuses.items()]
        items.insert(0, (_(u"Any"), None))

        if label is None:
            label = _('With status:')
        sellable_filter = ComboSearchFilter(label, items)
        # Select status available by default
        sellable_filter.select(Sellable.STATUS_AVAILABLE)

        return sellable_filter
コード例 #31
0
class ProductionItemsSearch(SearchDialog):
    title = _(u'Production Items')
    search_spec = ProductionItemView
    size = (750, 450)

    #
    # SearchDialog
    #

    def create_filters(self):
        self.set_text_field_columns(['description', 'order_identifier_str'])

        statuses = [(desc, i) for i, desc in ProductionOrder.statuses.items()]
        statuses.insert(0, (_(u'Any'), None))
        self.status_filter = ComboSearchFilter(_('order status:'), statuses)
        self.status_filter.select(ProductionOrder.ORDER_PRODUCING)
        self.add_filter(self.status_filter,
                        columns=['order_status'],
                        position=SearchFilterPosition.TOP)

    def get_columns(self):
        return [
            IdentifierColumn('order_identifier',
                             title=_(u"Order #"),
                             sorted=True),
            SearchColumn('category_description',
                         title=_(u'Category'),
                         data_type=str),
            SearchColumn('description',
                         title=_(u'Description'),
                         data_type=str,
                         expand=True),
            SearchColumn('unit_description', title=_(u'Unit'), data_type=str),
            SearchColumn('quantity', title=_(u'To Produce'),
                         data_type=Decimal),
            SearchColumn('produced', title=_(u'Produced'), data_type=Decimal),
            SearchColumn('lost',
                         title=_(u'Lost'),
                         data_type=Decimal,
                         visible=False)
        ]

    #
    # Callbacks
    #

    def on_print_button_clicked(self, widget):
        print_report(
            ProductionItemReport,
            self.results,
            list(self.results),
            filters=self.search.get_search_filters(),
        )
コード例 #32
0
    def create_filters(self):
        self.set_text_field_columns(['description'])
        self.executer.add_query_callback(self._get_query)

        # Status
        items = [(v, k) for k, v in Till.statuses.items()
                 if k != Till.STATUS_PENDING]
        items.insert(0, (_(u'Any'), None))
        status_filter = ComboSearchFilter(_(u'Show entries of type'), items)
        status_filter.select(Till.STATUS_OPEN)
        self.add_filter(status_filter,
                        position=SearchFilterPosition.TOP,
                        columns=['status'])
コード例 #33
0
ファイル: tillsearch.py プロジェクト: tmaxter/stoq
    def create_filters(self):
        self.set_text_field_columns(['description'])
        self.executer.add_query_callback(self._get_query)

        # Status
        items = [(v, k) for k, v in Till.statuses.items()
                 if k != Till.STATUS_PENDING]
        items.insert(0, (_(u'Any'), None))
        status_filter = ComboSearchFilter(_(u'Show entries of type'), items)
        status_filter.select(Till.STATUS_OPEN)
        self.add_filter(status_filter,
                        position=SearchFilterPosition.TOP,
                        columns=['status'])
コード例 #34
0
    def create_filters(self):
        self.set_text_field_columns(['equipment', 'client_name'])

        self.main_filter = ComboSearchFilter(_('Show'), [])
        combo = self.main_filter.combo
        combo.color_attribute = 'color'
        combo.set_row_separator_func(self._on_main_filter__row_separator_func)

        self.executer.add_filter_query_callback(
            self.main_filter, self._on_main_filter__query_callback)
        self.add_filter(self.main_filter, SearchFilterPosition.TOP)

        self._update_filters()
コード例 #35
0
ファイル: accounts.py プロジェクト: 5l1v3r1/stoq-1
    def create_main_filter(self):
        self.main_filter = ComboSearchFilter(_('Show'), [])

        combo = self.main_filter.combo
        combo.color_attribute = 'color'
        combo.set_row_separator_func(self._on_main_filter__row_separator_func)
        self._update_filter_items()
        executer = self.search.get_query_executer()
        executer.add_filter_query_callback(self.main_filter,
                                           self._create_main_query)
        self.add_filter(self.main_filter, SearchFilterPosition.TOP)

        self.create_branch_filter(column=self.search_spec.branch_id)
コード例 #36
0
ファイル: productionsearch.py プロジェクト: 5l1v3r1/stoq-1
class ProductionItemsSearch(ProductSearch):
    title = _(u'Production Items')
    search_spec = ProductionItemView
    report_class = ProductionItemReport
    csv_data = None
    has_print_price_button = False
    text_field_columns = [
        ProductionItemView.description, ProductionItemView.order_identifier_str
    ]

    def __init__(self, store, hide_footer=True, hide_toolbar=True):
        ProductSearch.__init__(self,
                               store,
                               hide_footer=hide_footer,
                               hide_toolbar=hide_toolbar)

    #
    # SearchDialog
    #

    def create_filters(self):
        statuses = [(desc, i) for i, desc in ProductionOrder.statuses.items()]
        statuses.insert(0, (_(u'Any'), None))
        self.status_filter = ComboSearchFilter(_('order status:'), statuses)
        self.status_filter.select(ProductionOrder.ORDER_PRODUCING)
        self.add_filter(self.status_filter,
                        columns=['order_status'],
                        position=SearchFilterPosition.TOP)

    def get_columns(self):
        return [
            IdentifierColumn('order_identifier',
                             title=_(u"Order #"),
                             sorted=True),
            SearchColumn('category_description',
                         title=_(u'Category'),
                         data_type=str),
            SearchColumn('description',
                         title=_(u'Description'),
                         data_type=str,
                         expand=True),
            SearchColumn('unit_description', title=_(u'Unit'), data_type=str),
            SearchColumn('quantity', title=_(u'To Produce'),
                         data_type=Decimal),
            SearchColumn('produced', title=_(u'Produced'), data_type=Decimal),
            SearchColumn('lost',
                         title=_(u'Lost'),
                         data_type=Decimal,
                         visible=False)
        ]
コード例 #37
0
ファイル: searchdialog.py プロジェクト: rg3915/stoq
    def create_branch_filter(self, label=None):
        from stoqlib.domain.person import Branch

        branches = Branch.get_active_branches(self.store)
        items = [(b.get_description(), b.id) for b in branches]
        items.insert(0, (_("Any"), None))

        if not label:
            label = _("Branch:")
        branch_filter = ComboSearchFilter(label, items)
        current = api.get_current_branch(self.store)
        if current:
            branch_filter.select(current.id)

        return branch_filter
コード例 #38
0
ファイル: searchdialog.py プロジェクト: leandrorchaves/stoq
    def create_payment_filter(self, label=None):
        from stoqlib.domain.payment.method import PaymentMethod
        methods = PaymentMethod.get_active_methods(self.store)
        items = [(_('Any'), None)]
        for method in methods:
            if method.method_name == 'multiple':
                continue
            items.append((method.description, method))

        if not label:
            label = _('Method:')
        payment_filter = ComboSearchFilter(label, items)
        payment_filter.select(None)

        return payment_filter
コード例 #39
0
    def create_payment_filter(self, label=None):
        from stoqlib.domain.payment.method import PaymentMethod
        methods = PaymentMethod.get_active_methods(self.store)
        items = [(_('Any'), None)]
        for method in methods:
            if method.method_name == 'multiple':
                continue
            items.append((method.description, method))

        if not label:
            label = _('Method:')
        payment_filter = ComboSearchFilter(label, items)
        payment_filter.select(None)

        return payment_filter
コード例 #40
0
ファイル: purchase.py プロジェクト: hackedbellini/stoq
 def create_filters(self):
     self.set_text_field_columns(['supplier_name', 'identifier_str',
                                  'invoice_numbers'])
     self.status_filter = ComboSearchFilter(_('Show orders'),
                                            self._get_status_values())
     self.add_filter(self.status_filter, SearchFilterPosition.TOP, ['status'])
     self.branch_filter = self.create_branch_filter(column=PurchaseOrderView.branch_id)
コード例 #41
0
    def add_filter_by_attribute(self,
                                attr,
                                title,
                                data_type,
                                valid_values=None,
                                callback=None,
                                use_having=False):
        """Add a filter accordingly to the attributes specified

        :param attr: attribute that will be filtered. This can be either the
          name of the attribute or the attribute itself.
        :param title: the title of the filter that will be visible in the
                      interface
        :param data_type: the attribute type (str, bool, decimal, etc)
        :param callback: the callback function that will be triggered
        :param use_having: use having expression in the query
        """
        if data_type is not bool:
            title += ':'

        if data_type == datetime.date:
            filter = DateSearchFilter(title)
            if valid_values:
                filter.clear_options()
                filter.add_custom_options()
                for opt in valid_values:
                    filter.add_option(opt)
                filter.select(valid_values[0])

        elif (data_type == decimal.Decimal or data_type == int
              or data_type == currency):
            filter = NumberSearchFilter(title)
            if data_type != int:
                filter.set_digits(2)
        elif data_type == str:
            if valid_values:
                filter = ComboSearchFilter(title, valid_values)
            else:
                filter = StringSearchFilter(title)
            filter.enable_advanced()
        elif data_type == bool:
            filter = BoolSearchFilter(title)
        else:
            raise NotImplementedError(title, data_type)

        filter.set_removable()
        self.add_filter(filter,
                        columns=[attr],
                        callback=callback,
                        use_having=use_having)

        if data_type is not bool:
            label = filter.get_title_label()
            label.set_alignment(1.0, 0.5)
            self.label_group.add_widget(label)
        combo = filter.get_mode_combo()
        if combo:
            self.combo_group.add_widget(combo)

        return filter
コード例 #42
0
ファイル: stock.py プロジェクト: tmaxter/stoq
 def create_filters(self):
     self.executer.set_query(self._query)
     self.set_text_field_columns(['description'])
     self.branch_filter = ComboSearchFilter(
         _('Show by:'), self._get_branches())
     self.branch_filter.select(api.get_current_branch(self.store))
     self.add_filter(self.branch_filter, position=SearchFilterPosition.TOP)
コード例 #43
0
 def create_filters(self):
     statuses = [(desc, i) for i, desc in ProductionOrder.statuses.items()]
     statuses.insert(0, (_(u'Any'), None))
     self.status_filter = ComboSearchFilter(_('order status:'), statuses)
     self.status_filter.select(ProductionOrder.ORDER_PRODUCING)
     self.add_filter(self.status_filter, columns=['order_status'],
                     position=SearchFilterPosition.TOP)
コード例 #44
0
    def create_filters(self):
        self.set_text_field_columns(['client_name', 'salesperson_name'])
        items = [(value, key) for key, value in Sale.statuses.items()]
        items.insert(0, (_('Any'), None))

        status_filter = ComboSearchFilter(_('Show sales with status'), items)
        self.add_filter(status_filter, SearchFilterPosition.TOP, ['status'])
コード例 #45
0
ファイル: stock.py プロジェクト: coletivoEITA/stoq
 def create_filters(self):
     self.search.set_query(self._query)
     self.set_text_field_columns(["description", "code", "barcode", "category_description", "manufacturer"])
     branches = Branch.get_active_branches(self.store)
     self.branch_filter = ComboSearchFilter(_("Show by:"), api.for_combo(branches, empty=_("All branches")))
     self.branch_filter.select(api.get_current_branch(self.store))
     self.add_filter(self.branch_filter, position=SearchFilterPosition.TOP)
コード例 #46
0
    def create_filters(self):
        self.set_text_field_columns(['sellable', 'description',
                                     'client_name', 'identifier_str',
                                     'sale_identifier_str'])

        self.main_filter = ComboSearchFilter(_('Show'), [])
        combo = self.main_filter.combo
        combo.color_attribute = 'color'
        combo.set_row_separator_func(self._on_main_filter__row_separator_func)

        self.add_filter(self.main_filter, SearchFilterPosition.TOP,
                        callback=self._get_main_query)

        self.create_branch_filter(column=[WorkOrder.branch_id,
                                          WorkOrder.current_branch_id])
        self._update_filters()
コード例 #47
0
 def create_filters(self):
     # Category
     categories = self.store.find(SellableCategory)
     items = api.for_combo(categories, attr='full_description')
     items.insert(0, (_('Any'), None))
     category_filter = ComboSearchFilter(_('Category'), items)
     self.add_filter(category_filter, columns=[Sellable.category])
コード例 #48
0
ファイル: searchdialog.py プロジェクト: pkaislan/stoq
    def create_branch_filter(self, label=None):
        from stoqlib.domain.person import Branch
        current = api.get_current_branch(self.store)
        if api.sysparam.get_bool('SYNCHRONIZED_MODE'):
            items = [(current.get_description(), current.id)]
        else:
            branches = Branch.get_active_branches(self.store)
            items = [(b.get_description(), b.id) for b in branches]
            items.insert(0, (_("Any"), None))

        if not label:
            label = _('Branch:')
        branch_filter = ComboSearchFilter(label, items)
        if current:
            branch_filter.select(current.id)

        return branch_filter
コード例 #49
0
    def create_filters(self):
        self.set_text_field_columns(["description", "order_identifier_str"])

        statuses = [(desc, i) for i, desc in ProductionOrder.statuses.items()]
        statuses.insert(0, (_(u"Any"), None))
        self.status_filter = ComboSearchFilter(_("order status:"), statuses)
        self.status_filter.select(ProductionOrder.ORDER_PRODUCING)
        self.add_filter(self.status_filter, columns=["order_status"], position=SearchFilterPosition.TOP)
コード例 #50
0
ファイル: stock.py プロジェクト: LeonamSilva/stoq
 def create_filters(self):
     self.search.set_query(self._query)
     self.set_text_field_columns(['description'])
     branches = Branch.get_active_branches(self.store)
     self.branch_filter = ComboSearchFilter(
         _('Show by:'), api.for_combo(branches, empty=_("All branches")))
     self.branch_filter.select(api.get_current_branch(self.store))
     self.add_filter(self.branch_filter, position=SearchFilterPosition.TOP)
コード例 #51
0
ファイル: searchdialog.py プロジェクト: leandrorchaves/stoq
    def create_branch_filter(self, label=None):
        from stoqlib.domain.person import Branch
        branches = Branch.get_active_branches(self.store)
        items = [(b.person.name, b.id) for b in branches]
        # if not items:
        #    raise ValueError('You should have at least one branch at '
        #                      'this point')
        items.insert(0, (_("Any"), None))

        if not label:
            label = _('Branch:')
        branch_filter = ComboSearchFilter(label, items)
        current = api.get_current_branch(self.store)
        if current:
            branch_filter.select(current.id)

        return branch_filter
コード例 #52
0
ファイル: till.py プロジェクト: marianaanselmo/stoq
 def create_filters(self):
     self.search.set_query(self._query_executer)
     self.set_text_field_columns(['client_name', 'salesperson_name'])
     self.status_filter = ComboSearchFilter(_(u"Show orders"),
                                            self._get_status_values())
     self.status_filter.select(Sale.STATUS_CONFIRMED)
     self.add_filter(self.status_filter, position=SearchFilterPosition.TOP,
                     columns=['status'])
コード例 #53
0
    def create_filters(self):
        statuses = [(v, k) for k, v in Client.statuses.items()]
        statuses.insert(0, (_('Any'), None))
        status_filter = ComboSearchFilter(_('Show clients with status'),
                                          statuses)
        status_filter.select(None)
        self.add_filter(status_filter, SearchFilterPosition.TOP, ['status'])

        if self._birth_date:
            birthday_filter = self.search.add_filter_by_attribute(
                'birth_date', _('Birthday'), datetime.date,
                callback=self.birthday_search)
            # FIXME: The fifth position is a search by day. This is done
            # elsewhere too but we should not hardcode it. Try to
            # find a better solution in the future and fix everything
            birthday_filter.mode.select_item_by_position(5)
            birthday_filter.start_date.set_date(self._birth_date)
            self.search.refresh()
コード例 #54
0
ファイル: productsearch.py プロジェクト: leandrorchaves/stoq
    def create_filters(self):
        self.set_text_field_columns(['description', 'barcode',
                                     'category_description'])
        self.search.set_query(self.executer_query)

        # Branch
        branch_filter = self.create_branch_filter(_('In branch:'))
        self.add_filter(branch_filter, columns=[])
        self.branch_filter = branch_filter

        # Status
        statuses = [(desc, id) for id, desc in Sellable.statuses.items()]
        statuses.insert(0, (_('Any'), None))
        status_filter = ComboSearchFilter(_('with status:'), statuses)
        status_filter.select(None)
        self.add_filter(status_filter, columns=['status'],
                        position=SearchFilterPosition.TOP)
        self.status_filter = status_filter
コード例 #55
0
ファイル: productionsearch.py プロジェクト: tmaxter/stoq
class ProductionItemsSearch(SearchDialog):
    title = _(u'Production Items')
    search_table = ProductionItemView
    size = (750, 450)

    #
    # SearchDialog
    #

    def create_filters(self):
        self.set_text_field_columns(['description'])

        statuses = [(desc, i) for i, desc in ProductionOrder.statuses.items()]
        statuses.insert(0, (_(u'Any'), None))
        self.status_filter = ComboSearchFilter(_('order status:'), statuses)
        self.status_filter.select(ProductionOrder.ORDER_PRODUCING)
        self.add_filter(self.status_filter, columns=['order_status'],
                        position=SearchFilterPosition.TOP)

    def get_columns(self):
        return [IdentifierColumn('order_identifier', title=_(u"Order #"),
                                 sorted=True),
                SearchColumn('category_description', title=_(u'Category'),
                             data_type=str),
                SearchColumn('description', title=_(u'Description'),
                             data_type=str, expand=True),
                SearchColumn('unit_description', title=_(u'Unit'),
                             data_type=str),
                SearchColumn('quantity', title=_(u'To Produce'),
                             data_type=Decimal),
                SearchColumn('produced', title=_(u'Produced'),
                             data_type=Decimal),
                SearchColumn('lost', title=_(u'Lost'), data_type=Decimal,
                             visible=False)]

    #
    # Callbacks
    #

    def on_print_button_clicked(self, widget):
        print_report(ProductionItemReport, self.results, list(self.results),
                     filters=self.search.get_search_filters(), )
コード例 #56
0
ファイル: accounts.py プロジェクト: tmaxter/stoq
    def create_main_filter(self):
        self.main_filter = ComboSearchFilter(_('Show'), [])

        combo = self.main_filter.combo
        combo.color_attribute = 'color'
        combo.set_row_separator_func(self._on_main_filter__row_separator_func)
        self._update_filter_items()
        self.executer.add_filter_query_callback(
            self.main_filter,
            self._on_main_filter__query_callback)
        self.add_filter(self.main_filter, SearchFilterPosition.TOP)
コード例 #57
0
    def create_filters(self):
        self.set_text_field_columns(['tracking_code', 'transporter_name',
                                     'client_name', 'identifier_str'])

        # Status
        statuses = [(desc, st) for st, desc in Delivery.statuses.items()]
        statuses.insert(0, (_('Any'), None))
        self.status_filter = ComboSearchFilter(_('With status:'), statuses)
        self.status_filter.select(None)
        self.add_filter(self.status_filter, columns=['status'],
                        position=SearchFilterPosition.TOP)