Exemplo n.º 1
0
    def test_print(self, print_report):
        dialog = TillDailyMovementDialog(self.store)

        # Before doing any search, the print button should not be sensitive
        self.assertFalse(dialog.print_button.get_sensitive())

        # After clicking the button, the print dialog should be sensitive
        self.click(dialog.search_button)
        self.assertTrue(dialog.print_button.get_sensitive())

        self.click(dialog.print_button)

        date = dialog.get_daterange()
        print_report.assert_called_once_with(
            TillDailyMovementReport, self.store,
            api.get_current_branch(self.store), date, dialog)
Exemplo n.º 2
0
    def test_print(self, print_report):
        dialog = TillDailyMovementDialog(self.store)

        # Before doing any search, the print button should not be sensitive
        self.assertFalse(dialog.print_button.get_sensitive())

        # After clicking the button, the print dialog should be sensitive
        self.click(dialog.search_button)
        self.assertTrue(dialog.print_button.get_sensitive())

        self.click(dialog.print_button)

        date = dialog.get_daterange()
        print_report.assert_called_once_with(TillDailyMovementReport,
                                             api.get_current_branch(self.store),
                                             date, dialog)
Exemplo n.º 3
0
 def test_show(self):
     dialog = TillDailyMovementDialog(self.store)
     method = self.get_payment_method(u'credit')
     payment = self.create_payment(value=100,
                                   method=method,
                                   date=datetime.datetime.now())
     payment.identifier = 9941
     payment.set_pending()
     payment.pay()
     self.click(dialog.search_button)
     self.check_dialog(dialog, 'till-dailymovement-dialog-show')
Exemplo n.º 4
0
    def test_show_with_check_payments(self):
        dialog = TillDailyMovementDialog(self.store)

        # Sale with check
        sale = self.create_sale()
        sale.identifier = 1234
        self.add_product(sale)
        payments = self.add_payments(sale,
                                     method_type=u'check',
                                     installments=2)
        sale.order(self.current_user)
        sale.confirm(self.current_user)
        sale.group.pay()
        # Set the check data
        number = 0
        for payment in payments:
            number += 1
            payment.payment_number = str(number)
            bank = payment.check_data.bank_account
            bank.bank_number = 1
            bank.bank_branch = u'1234-23'
            bank.bank_account = u'12345-23'

        # New sale to use blank values in check data
        sale = self.create_sale()
        sale.identifier = 7894
        self.add_product(sale)
        payments = self.add_payments(sale,
                                     method_type=u'check',
                                     installments=3)
        sale.order(self.current_user)
        sale.confirm(self.current_user)
        sale.group.pay()
        # Set some blank values
        number = 0
        for payment in payments:
            number += 1
            payment.payment_number = str(number)
            bank = payment.check_data.bank_account
            bank.bank_number = None
            bank.bank_branch = u'4561-12'
            bank.bank_account = u'45678-89'
        # Remove the payment_number of the second installment
        payments[1].payment_number = u""

        self.click(dialog.search_button)
        self.check_dialog(dialog, 'till-dailymovement-dialog-check-payments')
Exemplo n.º 5
0
    def test_show(self):
        dialog = TillDailyMovementDialog(self.store)

        # Creating a sale to which a bill payment is attached.
        sale = self.create_sale(client=self.create_client(
            name=u'Fulano de Tal'))
        sale.identifier = 1234
        self.add_product(sale)
        self.add_payments(sale, method_type=u'bill')
        sale.order(self.current_user)
        sale.confirm(self.current_user)
        sale.group.pay()

        # Creating a purchase order to which a money payment is attached.
        purchase = self.create_purchase_order(branch=sale.branch)
        purchase.identifier = 4321
        self.create_purchase_order_item(order=purchase)
        payment = self.add_payments(purchase, method_type=u'money')[0]
        payment.identifier = 43210
        purchase.status = purchase.ORDER_PENDING
        purchase.confirm(self.current_user)
        purchase.group.pay()

        # We create two payments whose dates are corresponding to the day of the test,
        # s.t. the search returns both of them.
        payment = self.create_payment(
            value=100,
            method=self.get_payment_method(u'credit'),
            date=datetime.datetime.now())
        payment.identifier = 9941
        payment.set_pending()
        payment.pay()

        payment = self.create_payment(value=300,
                                      method=self.get_payment_method(u'money'),
                                      date=datetime.datetime.now())
        payment.identifier = 9942
        payment.set_pending()
        payment.pay()

        # The search should fetch the two payments created above as well as the sale's
        # and the purchase order's respective payment.
        self.click(dialog.search_button)
        self.check_dialog(dialog, 'till-dailymovement-dialog-show')
Exemplo n.º 6
0
    def test_till_daily_movement(self):
        branch = get_current_branch(self.store)
        branch2 = self.store.find(Branch, Branch.id != branch.id).any()

        # Data used to create the examples
        device = self.create_card_device(description=u'MAQ1')
        provider = self.create_credit_provider(u'PRO1')
        date = datetime.date(2013, 1, 1)

        # First, create one sale
        sale = self.create_sale(branch=branch)
        sellable = self.create_sellable()
        sale.add_sellable(sellable, price=100)
        sale.identifier = 1000
        sale.order()

        # With two card payments
        card_data1 = self.create_credit_card_data(
            device=device,
            provider=provider,
            payment_type=Payment.TYPE_IN,
            payment_value=sale.get_sale_subtotal())
        card_data1.auth = 1234
        card_data1.card_type = CreditCardData.TYPE_CREDIT
        card_data1.payment.group = sale.group
        card_data1.payment.branch = sale.branch
        card_data1.payment.identifier = 1010

        card_data2 = self.create_credit_card_data(
            device=device,
            provider=provider,
            payment_type=Payment.TYPE_IN,
            payment_value=sale.get_sale_subtotal())
        card_data2.auth = 1234
        card_data2.card_type = CreditCardData.TYPE_DEBIT

        card_data2.payment.group = sale.group
        card_data2.payment.branch = sale.branch
        card_data2.payment.identifier = 1011

        # Confirm the sale and pay the payments
        sale.confirm()
        sale.group.pay()

        sale.confirm_date = date

        # After calling sale.group.pay(), we need to fix the paid_date
        card_data1.payment.paid_date = date
        card_data2.payment.paid_date = date

        # create lonely input payment
        payer = self.create_client()
        address = self.create_address()
        address.person = payer.person

        method = PaymentMethod.get_by_name(self.store, u'money')
        group = self.create_payment_group()
        payment_lonely_input = method.create_payment(Payment.TYPE_IN, group, branch, Decimal(100))
        payment_lonely_input.description = u"Test receivable account"
        payment_lonely_input.group.payer = payer.person
        payment_lonely_input.set_pending()
        payment_lonely_input.pay()
        payment_lonely_input.identifier = 1001
        payment_lonely_input.paid_date = date

        # create purchase payment
        drawee = self.create_supplier()
        address = self.create_address()
        address.person = drawee.person

        method = PaymentMethod.get_by_name(self.store, u'money')
        purchase = self.create_purchase_order(branch=branch)
        purchase.identifier = 12345
        payment = method.create_payment(Payment.TYPE_OUT,
                                        purchase.group, branch, Decimal(100))
        payment.description = u"Test payable account"
        payment.group.recipient = drawee.person
        payment.set_pending()
        payment.pay()
        payment.identifier = 1002
        payment.paid_date = date

        # Create a returned sale
        sale = self.create_sale(branch=branch)
        self.add_product(sale)
        self.add_product(sale)
        payment = self.add_payments(sale, date=date)[0]
        sale.order()
        sale.confirm()
        sale.identifier = 23456
        returned_sale = sale.create_sale_return_adapter()
        returned_sale.return_()
        sale.return_date = date
        payment.paid_date = date

        payment = returned_sale.group.get_items()[1]
        payment.branch = branch
        payment.identifier = 1003
        payment.pay()
        payment.paid_date = date

        # create lonely output payment
        group = self.create_payment_group()
        method = PaymentMethod.get_by_name(self.store, u'money')
        payment = method.create_payment(Payment.TYPE_OUT, group, branch, Decimal(100))
        payment.branch = branch
        payment.identifier = 1004
        payment.paid_date = date
        payment.status = Payment.STATUS_PAID

        # create lonely input payment on a second branch
        payer = self.create_client()
        address = self.create_address()
        address.person = payer.person

        method = PaymentMethod.get_by_name(self.store, u'money')
        group = self.create_payment_group()
        payment_lonely_input = method.create_payment(Payment.TYPE_IN, group,
                                                     branch2, Decimal(100))
        payment_lonely_input.description = u"Other branch lonely payment"
        payment_lonely_input.group.payer = payer.person
        payment_lonely_input.set_pending()
        payment_lonely_input.pay()
        payment_lonely_input.identifier = 1005
        payment_lonely_input.paid_date = date

        # Run the dialog the precedes the report
        data = TillDailyMovementDialog(self.store)
        data.model.branch = branch
        data.set_daterange(date, date)
        data.search_button.clicked()

        daterange = (date, None)
        self._diff_expected(TillDailyMovementReport,
                            'till-daily-movement-report', self.store, branch,
                            daterange, data)

        end_date = datetime.date(2013, 6, 1)
        data.set_daterange(date, end_date)
        data.search_button.clicked()
        daterange = (date, end_date)
        self._diff_expected(TillDailyMovementReport,
                            'till-daily-movement-report-end', self.store,
                            branch, daterange, data)

        # Generate report for all branches
        data.model.branch = None
        data.search_button.clicked()
        self._diff_expected(TillDailyMovementReport,
                            'till-daily-movement-all-branches-report-end',
                            self.store, None, daterange, data)
Exemplo n.º 7
0
    def test_till_daily_movement(self):
        branch = get_current_branch(self.store)
        branch2 = self.store.find(Branch, Branch.id != branch.id).any()

        # Data used to create the examples
        device = self.create_card_device(description=u'MAQ1')
        provider = self.create_credit_provider(u'PRO1')
        date = datetime.date(2013, 1, 1)

        # First, create one sale
        sale = self.create_sale(branch=branch)
        sellable = self.create_sellable()
        sale.add_sellable(sellable, price=100)
        sale.identifier = 1000
        sale.order()

        # With two card payments
        card_data1 = self.create_credit_card_data(
            device=device,
            provider=provider,
            payment_type=Payment.TYPE_IN,
            payment_value=sale.get_sale_subtotal())
        card_data1.auth = 1234
        card_data1.card_type = CreditCardData.TYPE_CREDIT
        card_data1.payment.group = sale.group
        card_data1.payment.branch = sale.branch
        card_data1.payment.identifier = 1010

        card_data2 = self.create_credit_card_data(
            device=device,
            provider=provider,
            payment_type=Payment.TYPE_IN,
            payment_value=sale.get_sale_subtotal())
        card_data2.auth = 1234
        card_data2.card_type = CreditCardData.TYPE_DEBIT

        card_data2.payment.group = sale.group
        card_data2.payment.branch = sale.branch
        card_data2.payment.identifier = 1011

        # Confirm the sale and pay the payments
        sale.confirm()
        sale.group.pay()

        sale.confirm_date = date

        # After calling sale.group.pay(), we need to fix the paid_date
        card_data1.payment.paid_date = date
        card_data2.payment.paid_date = date

        # create lonely input payment
        payer = self.create_client()
        address = self.create_address()
        address.person = payer.person

        method = PaymentMethod.get_by_name(self.store, u'money')
        group = self.create_payment_group()
        payment_lonely_input = method.create_payment(Payment.TYPE_IN, group, branch, Decimal(100))
        payment_lonely_input.description = u"Test receivable account"
        payment_lonely_input.group.payer = payer.person
        payment_lonely_input.set_pending()
        payment_lonely_input.pay()
        payment_lonely_input.identifier = 1001
        payment_lonely_input.paid_date = date

        # create purchase payment
        drawee = self.create_supplier()
        address = self.create_address()
        address.person = drawee.person

        method = PaymentMethod.get_by_name(self.store, u'money')
        purchase = self.create_purchase_order(branch=branch)
        purchase.identifier = 12345
        payment = method.create_payment(Payment.TYPE_OUT,
                                        purchase.group, branch, Decimal(100))
        payment.description = u"Test payable account"
        payment.group.recipient = drawee.person
        payment.set_pending()
        payment.pay()
        payment.identifier = 1002
        payment.paid_date = date

        # Create a returned sale
        sale = self.create_sale(branch=branch)
        self.add_product(sale)
        self.add_product(sale)
        payment = self.add_payments(sale, date=date)[0]
        sale.order()
        sale.confirm()
        sale.identifier = 23456
        returned_sale = sale.create_sale_return_adapter()
        returned_sale.return_()
        sale.return_date = date
        payment.paid_date = date

        payment = returned_sale.group.get_items()[1]
        payment.branch = branch
        payment.identifier = 1003
        payment.pay()
        payment.paid_date = date

        # create lonely output payment
        group = self.create_payment_group()
        method = PaymentMethod.get_by_name(self.store, u'money')
        payment = method.create_payment(Payment.TYPE_OUT, group, branch, Decimal(100))
        payment.branch = branch
        payment.identifier = 1004
        payment.paid_date = date
        payment.status = Payment.STATUS_PAID

        # create lonely input payment on a second branch
        payer = self.create_client()
        address = self.create_address()
        address.person = payer.person

        method = PaymentMethod.get_by_name(self.store, u'money')
        group = self.create_payment_group()
        payment_lonely_input = method.create_payment(Payment.TYPE_IN, group,
                                                     branch2, Decimal(100))
        payment_lonely_input.description = u"Other branch lonely payment"
        payment_lonely_input.group.payer = payer.person
        payment_lonely_input.set_pending()
        payment_lonely_input.pay()
        payment_lonely_input.identifier = 1005
        payment_lonely_input.paid_date = date

        # Run the dialog the precedes the report
        data = TillDailyMovementDialog(self.store)
        data.model.branch = branch
        data.set_daterange(date, date)
        data.search_button.clicked()

        daterange = (date, None)
        self._diff_expected(TillDailyMovementReport,
                            'till-daily-movement-report', self.store, branch,
                            daterange, data)

        end_date = datetime.date(2013, 6, 1)
        data.set_daterange(date, end_date)
        data.search_button.clicked()
        daterange = (date, end_date)
        self._diff_expected(TillDailyMovementReport,
                            'till-daily-movement-report-end', self.store,
                            branch, daterange, data)

        # Generate report for all branches
        data.model.branch = None
        data.search_button.clicked()
        self._diff_expected(TillDailyMovementReport,
                            'till-daily-movement-all-branches-report-end',
                            self.store, None, daterange, data)
Exemplo n.º 8
0
 def test_show_synchronized(self):
     with self.sysparam(SYNCHRONIZED_MODE=True):
         dialog = TillDailyMovementDialog(self.store)
         self.check_dialog(dialog, 'till-dailymovement-dialog-show-sync')