示例#1
0
 def test_add_tab(self):
     rsale = self.create_returned_sale()
     rsale.sale.identifier = 336
     rsale.identifier = 60
     model = self.store.find(ReturnedSalesView).one()
     dialog = ReturnedSaleDialog(self.store, model)
     dialog.add_tab(_TestSlave(self.store, object()), u'Test Tab')
     self.check_dialog(dialog, 'dialog-returned-sale-add-tab')
 def test_add_tab(self):
     rsale = self.create_returned_sale()
     rsale.sale.identifier = 336
     rsale.identifier = 60
     model = self.store.find(ReturnedSalesView).one()
     dialog = ReturnedSaleDialog(self.store, model)
     dialog.add_tab(_TestSlave(self.store, object()), u'Test Tab')
     self.check_dialog(dialog, 'dialog-returned-sale-add-tab')
    def test_print_button(self, print_report):
        self.create_pending_returned_sale()
        model = self.store.find(PendingReturnedSalesView).one()
        dialog = ReturnedSaleDialog(self.store, model)

        self.click(dialog.print_button)
        print_report.assert_called_once_with(dialog.report_class, dialog.model)
示例#4
0
    def test_sale_buttons(self, run_dialog):
        # First create a sale
        sale = self.create_sale()
        self.add_product(sale)
        sale.order(self.current_user)
        self.add_payments(sale)
        sale.confirm(self.current_user)
        sale.group.pay()

        # A new sale and a trade
        returned_sale = sale.create_sale_return_adapter(self.current_branch, self.current_user,
                                                        self.current_station)
        new_sale = self.create_sale()
        returned_sale.new_sale = new_sale
        returned_sale.trade(self.current_user)

        model = self.store.find(ReturnedSalesView).one()
        dialog = ReturnedSaleDialog(self.store, model)
        self.click(dialog.sale_details_button)
        sale_view = self.store.find(SaleView, id=sale.id).one()
        run_dialog.assert_called_once_with(SaleDetailsDialog, dialog, self.store,
                                           sale_view)

        run_dialog.reset_mock()
        self.click(dialog.new_sale_details_button)
        sale_view = self.store.find(SaleView, id=new_sale.id).one()
        run_dialog.assert_called_once_with(SaleDetailsDialog, dialog, self.store,
                                           sale_view)
    def test_show_with_package_product(self):
        sale = self.create_sale()
        sale.identifier = 666
        package = self.create_product(description=u'Package', is_package=True)
        comp = self.create_product(description=u'Component 1', stock=5,
                                   storable=True)
        comp2 = self.create_product(description=u'Component 2', stock=5,
                                    storable=True)
        p_comp = self.create_product_component(product=package,
                                               component=comp,
                                               component_quantity=2,
                                               price=2)
        p_comp2 = self.create_product_component(product=package,
                                                component=comp2,
                                                component_quantity=2,
                                                price=5)
        item = sale.add_sellable(package.sellable, quantity=1, price=0)
        sale.add_sellable(comp.sellable,
                          quantity=item.quantity * p_comp.quantity,
                          price=p_comp.price,
                          parent=item)
        sale.add_sellable(comp2.sellable,
                          quantity=item.quantity * p_comp2.quantity,
                          price=p_comp2.price,
                          parent=item)

        self.add_payments(sale)
        sale.order()
        sale.confirm()
        r_sale = self.create_returned_sale(sale)
        r_sale.identifier = 666

        model = self.store.find(ReturnedSalesView).one()
        dialog = ReturnedSaleDialog(self.store, model)
        self.check_dialog(dialog, 'dialog-returned-sale-with-package')
 def test_show_pending(self):
     pending_return = self.create_pending_returned_sale()
     pending_return.sale.identifier = 336
     pending_return.identifier = 60
     pending_return.reason = u'Teste'
     model = self.store.find(PendingReturnedSalesView).one()
     dialog = ReturnedSaleDialog(self.store, model)
     self.check_dialog(dialog, 'dialog-receive-pending-returned-sale')
示例#7
0
    def test_trade_without_original_sale(self):
        returned_sale = self.create_trade()
        returned_sale.identifier = 1992
        returned_sale.new_sale.identifier = 14915
        returned_sale.trade(self.current_user)

        model = self.store.find(ReturnedSalesView).one()
        dialog = ReturnedSaleDialog(self.store, model)
        self.check_dialog(dialog, 'dialog-returned-sale-without-original')
示例#8
0
 def test_receive_pending_returned_sale(self, yesno):
     self.create_pending_returned_sale()
     model = self.store.find(PendingReturnedSalesView).one()
     dialog = ReturnedSaleDialog(self.store, model)
     self.assertEqual(dialog.receive_button.get_property('visible'), True)
     self.assertEqual(model.returned_sale.status, ReturnedSale.STATUS_PENDING)
     with mock.patch.object(self.store, 'commit'):
         self.click(dialog.receive_button)
         yesno.assert_called_once_with(u'Receive pending returned sale?',
                                       Gtk.ResponseType.NO,
                                       u'Receive', u"Don't receive")
         self.assertEqual(model.returned_sale.status, ReturnedSale.STATUS_CONFIRMED)
    def test_show_undone(self):
        rsale = self.create_returned_sale()
        rsale.sale.identifier = 336
        rsale.identifier = 60
        rsale.reason = u'Teste'
        rsale.undo_reason = u'Foo bar'
        rsale.status = ReturnedSale.STATUS_CANCELLED
        rsale.confirm_responsible = rsale.responsible
        rsale.confirm_date = rsale.return_date

        model = self.store.find(ReturnedSalesView).one()
        dialog = ReturnedSaleDialog(self.store, model)
        self.check_dialog(dialog, 'dialog-returned-sale-undone')
    def test_undo(self, new_store, run_dialog):
        new_store.return_value = self.store

        rsale = self.create_returned_sale()
        rsale.status = ReturnedSale.STATUS_CONFIRMED
        rsale.confirm_responsible = rsale.responsible
        rsale.confirm_date = rsale.return_date

        model = self.store.find(ReturnedSalesView).one()
        dialog = ReturnedSaleDialog(self.store, model)

        with mock.patch.object(self.store, 'commit'):
            with mock.patch.object(self.store, 'close'):
                self.click(dialog.undo_button)

        run_dialog.assert_called_once_with(ReturnedSaleUndoDialog, dialog,
                                           self.store, model.returned_sale)
示例#11
0
    def test_trade(self):
        # First create a sale
        sale = self.create_sale()
        sale.identifier = 14913
        self.add_product(sale)
        sale.order()
        self.add_payments(sale)
        sale.confirm()
        sale.group.pay()

        # A new sale and a trade
        returned_sale = sale.create_sale_return_adapter()
        returned_sale.identifier = 991
        new_sale = self.create_sale()
        new_sale.identifier = 14914
        returned_sale.new_sale = new_sale
        returned_sale.trade()

        model = self.store.find(ReturnedSalesView).one()
        dialog = ReturnedSaleDialog(self.store, model)
        self.check_dialog(dialog, 'dialog-returned-sale-with-trade')