Exemplo n.º 1
0
    def test_inventory_report(self):
        inventory = self.create_inventory()

        item = self.create_inventory_item(inventory=inventory)
        self.assertFalse(item.is_adjusted)
        item.counted_quantity = item.recorded_quantity - 1
        item.actual_quantity = item.recorded_quantity - 1
        item.cfop_data = self.create_cfop_data()
        item.reason = u"test adjust"
        item.adjust(self.current_user, 13)

        item2 = self.create_inventory_item(inventory=inventory)
        self.assertFalse(item2.is_adjusted)
        item2.counted_quantity = item.recorded_quantity - 1
        item2.actual_quantity = item.recorded_quantity - 1
        item2.cfop_data = self.create_cfop_data()
        item2.reason = u"test adjust2"
        item2.adjust(self.current_user, 13)
        inventory.close()

        from stoqlib.gui.dialogs.inventorydetails import InventoryDetailsDialog
        dialog = InventoryDetailsDialog(self.store, model=inventory)
        items = list(
            InventoryItemsView.find_by_inventory(self.store, inventory))
        self._diff_expected(InventoryReport, 'inventory-report',
                            dialog.items_list, items)
Exemplo n.º 2
0
    def test_inventory_report(self):
        inventory = self.create_inventory()

        item = self.create_inventory_item(inventory=inventory)
        self.assertFalse(item.is_adjusted)
        item.counted_quantity = item.recorded_quantity - 1
        item.actual_quantity = item.recorded_quantity - 1
        item.cfop_data = self.create_cfop_data()
        item.reason = u"test adjust"
        item.adjust(13)

        item2 = self.create_inventory_item(inventory=inventory)
        self.assertFalse(item2.is_adjusted)
        item2.counted_quantity = item.recorded_quantity - 1
        item2.actual_quantity = item.recorded_quantity - 1
        item2.cfop_data = self.create_cfop_data()
        item2.reason = u"test adjust2"
        item2.adjust(13)
        inventory.close()

        from stoqlib.gui.dialogs.inventorydetails import InventoryDetailsDialog

        dialog = InventoryDetailsDialog(self.store, model=inventory)
        items = list(InventoryItemsView.find_by_inventory(self.store, inventory))
        self._diff_expected(InventoryReport, "inventory-report", dialog.items_list, items)
Exemplo n.º 3
0
    def _setup_widgets(self):
        self.items_list.set_columns(self._get_items_columns())

        # Create a list to avoid the query being executed twice (object list
        # does a if objects somewhere)
        items = list(InventoryItemsView.find_by_inventory(self.store, self.model))
        self.items_list.add_list(items)
Exemplo n.º 4
0
    def test_find_by_inventory(self):
        inventory1 = self.create_inventory()
        inventory2 = self.create_inventory()
        item1 = self.create_inventory_item(inventory=inventory1)
        self.create_inventory_item(inventory=inventory2)

        views = InventoryItemsView.find_by_inventory(self.store, inventory1)
        self.assertEquals(views.count(), 1)
        self.assertEquals(views[0].id, item1.id)
Exemplo n.º 5
0
    def test_find_by_inventory(self):
        inventory1 = self.create_inventory()
        inventory2 = self.create_inventory()
        item1 = self.create_inventory_item(inventory=inventory1)
        self.create_inventory_item(inventory=inventory2)

        views = InventoryItemsView.find_by_inventory(self.store, inventory1)
        self.assertEquals(views.count(), 1)
        self.assertEquals(views[0].id, item1.id)
Exemplo n.º 6
0
    def _setup_widgets(self):
        self.info_button.set_sensitive(False)
        self.items_list.set_columns(self._get_items_columns())

        # Create a list to avoid the query being executed twice (object list
        # does a if objects somewhere)
        items = list(InventoryItemsView.find_by_inventory(self.store, self.model))
        self.items_list.add_list(items)
        self.print_button.set_sensitive(any(self._get_report_items()))
Exemplo n.º 7
0
    def test_find_by_product(self):
        p1 = self.create_product()
        p2 = self.create_product()

        inventory1 = self.create_inventory()
        item1 = self.create_inventory_item(inventory=inventory1, product=p1)
        item2 = self.create_inventory_item(inventory=inventory1, product=p2)

        inventory2 = self.create_inventory()
        item3 = self.create_inventory_item(inventory=inventory2, product=p1)
        item4 = self.create_inventory_item(inventory=inventory2, product=p2)

        results = InventoryItemsView.find_by_product(self.store, p1)
        self.assertEqual(set([(item1, inventory1), (item3, inventory2)]),
                         set((r.inventory_item, r.inventory) for r in results))

        results = InventoryItemsView.find_by_product(self.store, p2)
        self.assertEqual(set([(item2, inventory1), (item4, inventory2)]),
                         set((r.inventory_item, r.inventory) for r in results))
Exemplo n.º 8
0
    def test_find_by_product(self):
        p1 = self.create_product()
        p2 = self.create_product()

        inventory1 = self.create_inventory()
        item1 = self.create_inventory_item(inventory=inventory1, product=p1)
        item2 = self.create_inventory_item(inventory=inventory1, product=p2)

        inventory2 = self.create_inventory()
        item3 = self.create_inventory_item(inventory=inventory2, product=p1)
        item4 = self.create_inventory_item(inventory=inventory2, product=p2)

        results = InventoryItemsView.find_by_product(self.store, p1)
        self.assertEqual(set([(item1, inventory1), (item3, inventory2)]),
                         set((r.inventory_item, r.inventory) for r in results))

        results = InventoryItemsView.find_by_product(self.store, p2)
        self.assertEqual(set([(item2, inventory1), (item4, inventory2)]),
                         set((r.inventory_item, r.inventory) for r in results))
Exemplo n.º 9
0
    def _setup_widgets(self):
        if self._is_batch:
            self._add_batches_tab()

        self.receiving_list.set_columns(self._get_receiving_columns())
        self.sales_list.set_columns(self._get_sale_columns())
        self.transfer_list.set_columns(self._get_transfer_columns())
        self.loan_list.set_columns(self._get_loan_columns())
        self.decrease_list.set_columns(self._get_decrease_columns())
        self.inventory_list.set_columns(self._get_inventory_columns())
        self.returned_list.set_columns(self._get_returned_columns())

        current_branch = api.get_current_branch(self.store)
        items = self.store.find(ReceivingItemView, sellable_id=self.model.id)
        if api.sysparam.get_bool('SYNCHRONIZED_MODE'):
            items = items.find(Branch.id == current_branch.id)
        self.receiving_list.add_list(list(items))

        items = SaleItemsView.find_confirmed(self.store,
                                             sellable=self.model)
        if api.sysparam.get_bool('SYNCHRONIZED_MODE'):
            items = items.find(Branch.id == current_branch.id)
        self.sales_list.add_list(list(items))

        items = self.store.find(
            TransferOrderItem,
            And(Ne(TransferOrderItem.transfer_order_id, None),
                TransferOrderItem.sellable_id == self.model.id))
        self.transfer_list.add_list(list(items))

        items = self.store.find(LoanItemView, sellable_id=self.model.id)
        if api.sysparam.get_bool('SYNCHRONIZED_MODE'):
            items = items.find(Branch.id == current_branch.id)
        self.loan_list.add_list(list(items))

        items = self.store.find(StockDecreaseItemsView, sellable=self.model.id)
        if api.sysparam.get_bool('SYNCHRONIZED_MODE'):
            items = items.find(Branch.id == current_branch.id)
        self.decrease_list.add_list(list(items))

        items = InventoryItemsView.find_by_product(self.store, self.model.product)
        if api.sysparam.get_bool('SYNCHRONIZED_MODE'):
            items = items.find(Branch.id == current_branch.id)
        self.inventory_list.add_list(items)

        items = self.store.find(ReturnedSaleItemsView, sellable_id=self.model.id)
        if api.sysparam.get_bool('SYNCHRONIZED_MODE'):
            items = items.find(Branch.id == current_branch.id)
        self.returned_list.add_list(items)

        value_format = '<b>%s</b>'
        total_label = "<b>%s</b>" % api.escape(_("Total:"))
        receiving_summary_label = SummaryLabel(klist=self.receiving_list,
                                               column='quantity',
                                               label=total_label,
                                               value_format=value_format)
        receiving_summary_label.show()
        self.receiving_vbox.pack_start(receiving_summary_label, False)

        sales_summary_label = SummaryLabel(klist=self.sales_list,
                                           column='quantity',
                                           label=total_label,
                                           value_format=value_format)
        sales_summary_label.show()
        self.sales_vbox.pack_start(sales_summary_label, False)

        transfer_summary_label = SummaryLabel(klist=self.transfer_list,
                                              column='quantity',
                                              label=total_label,
                                              value_format=value_format)
        transfer_summary_label.show()
        self.transfer_vbox.pack_start(transfer_summary_label, False)

        loan_summary_label = SummaryLabel(klist=self.loan_list,
                                          column='quantity',
                                          label=total_label,
                                          value_format=value_format)
        self.loan_vbox.pack_start(loan_summary_label, False)

        decrease_summary_label = SummaryLabel(klist=self.decrease_list,
                                              column='quantity',
                                              label=total_label,
                                              value_format=value_format)
        decrease_summary_label.show()
        self.decrease_vbox.pack_start(decrease_summary_label, False)
Exemplo n.º 10
0
    def _setup_widgets(self):
        if self._is_batch:
            self._add_batches_tab()

        self.receiving_list.set_columns(self._get_receiving_columns())
        self.sales_list.set_columns(self._get_sale_columns())
        self.transfer_list.set_columns(self._get_transfer_columns())
        self.loan_list.set_columns(self._get_loan_columns())
        self.decrease_list.set_columns(self._get_decrease_columns())
        self.inventory_list.set_columns(self._get_inventory_columns())
        self.returned_list.set_columns(self._get_returned_columns())

        current_branch = api.get_current_branch(self.store)
        items = self.store.find(ReceivingItemView, sellable_id=self.model.id)
        if api.sysparam.get_bool('SYNCHRONIZED_MODE'):
            items = items.find(Branch.id == current_branch.id)
        self.receiving_list.add_list(list(items))

        items = SaleItemsView.find_confirmed(self.store, sellable=self.model)
        if api.sysparam.get_bool('SYNCHRONIZED_MODE'):
            items = items.find(Branch.id == current_branch.id)
        self.sales_list.add_list(list(items))

        items = TransferItemView.find_by_branch(self.store, self.model,
                                                current_branch)
        self.transfer_list.add_list(list(items))

        items = self.store.find(LoanItemView, sellable_id=self.model.id)
        if api.sysparam.get_bool('SYNCHRONIZED_MODE'):
            items = items.find(Branch.id == current_branch.id)
        self.loan_list.add_list(list(items))

        items = self.store.find(StockDecreaseItemsView, sellable=self.model.id)
        if api.sysparam.get_bool('SYNCHRONIZED_MODE'):
            items = items.find(Branch.id == current_branch.id)
        self.decrease_list.add_list(list(items))

        items = InventoryItemsView.find_by_product(self.store,
                                                   self.model.product)
        if api.sysparam.get_bool('SYNCHRONIZED_MODE'):
            items = items.find(Branch.id == current_branch.id)
        self.inventory_list.add_list(items)

        items = self.store.find(ReturnedSaleItemsView,
                                sellable_id=self.model.id)
        if api.sysparam.get_bool('SYNCHRONIZED_MODE'):
            items = items.find(Branch.id == current_branch.id)
        self.returned_list.add_list(items)

        value_format = '<b>%s</b>'
        total_label = "<b>%s</b>" % api.escape(_("Total:"))
        receiving_summary_label = SummaryLabel(klist=self.receiving_list,
                                               column='quantity',
                                               label=total_label,
                                               value_format=value_format)
        receiving_summary_label.show()
        self.receiving_vbox.pack_start(receiving_summary_label, False)

        sales_summary_label = SummaryLabel(klist=self.sales_list,
                                           column='quantity',
                                           label=total_label,
                                           value_format=value_format)
        sales_summary_label.show()
        self.sales_vbox.pack_start(sales_summary_label, False)

        transfer_summary_label = SummaryLabel(klist=self.transfer_list,
                                              column='item_quantity',
                                              label=total_label,
                                              value_format=value_format)
        transfer_summary_label.show()
        self.transfer_vbox.pack_start(transfer_summary_label, False)

        loan_summary_label = SummaryLabel(klist=self.loan_list,
                                          column='quantity',
                                          label=total_label,
                                          value_format=value_format)
        self.loan_vbox.pack_start(loan_summary_label, False)

        decrease_summary_label = SummaryLabel(klist=self.decrease_list,
                                              column='quantity',
                                              label=total_label,
                                              value_format=value_format)
        decrease_summary_label.show()
        self.decrease_vbox.pack_start(decrease_summary_label, False)
Exemplo n.º 11
0
    def _setup_widgets(self):
        self.receiving_list.set_columns(self._get_receiving_columns())
        self.sales_list.set_columns(self._get_sale_columns())
        self.transfer_list.set_columns(self._get_transfer_columns())
        self.loan_list.set_columns(self._get_loan_columns())
        self.decrease_list.set_columns(self._get_decrease_columns())
        self.inventory_list.set_columns(self._get_inventory_columns())
        self.returned_list.set_columns(self._get_returned_columns())

        items = self.store.find(ReceivingItemView, sellable_id=self.model.id)
        self.receiving_list.add_list(list(items))

        items = self.store.find(SaleItemsView, sellable_id=self.model.id)
        self.sales_list.add_list(list(items))

        items = self.store.find(TransferOrderItem, sellable_id=self.model.id)
        self.transfer_list.add_list(list(items))

        items = self.store.find(LoanItemView, sellable_id=self.model.id)
        self.loan_list.add_list(list(items))

        items = self.store.find(StockDecreaseItemsView, sellable=self.model.id)
        self.decrease_list.add_list(list(items))

        self.inventory_list.add_list(
            InventoryItemsView.find_by_product(self.store, self.model.product))

        self.returned_list.add_list(
            self.store.find(ReturnedSaleItemsView, sellable_id=self.model.id))

        value_format = '<b>%s</b>'
        total_label = "<b>%s</b>" % api.escape(_("Total:"))
        receiving_summary_label = SummaryLabel(klist=self.receiving_list,
                                               column='quantity',
                                               label=total_label,
                                               value_format=value_format)
        receiving_summary_label.show()
        self.receiving_vbox.pack_start(receiving_summary_label, False)

        sales_summary_label = SummaryLabel(klist=self.sales_list,
                                           column='quantity',
                                           label=total_label,
                                           value_format=value_format)
        sales_summary_label.show()
        self.sales_vbox.pack_start(sales_summary_label, False)

        transfer_summary_label = SummaryLabel(klist=self.transfer_list,
                                              column='quantity',
                                              label=total_label,
                                              value_format=value_format)
        transfer_summary_label.show()
        self.transfer_vbox.pack_start(transfer_summary_label, False)

        loan_summary_label = SummaryLabel(klist=self.loan_list,
                                          column='quantity',
                                          label=total_label,
                                          value_format=value_format)
        self.loan_vbox.pack_start(loan_summary_label, False)

        decrease_summary_label = SummaryLabel(klist=self.decrease_list,
                                              column='quantity',
                                              label=total_label,
                                              value_format=value_format)
        decrease_summary_label.show()
        self.decrease_vbox.pack_start(decrease_summary_label, False)