Пример #1
0
    def on_confirm(self):
        till = self.model.till
        removed = abs(self.model.value)
        if removed:
            # We need to do this inside a new transaction, because if the
            # till closing fails further on, this still needs to be recorded
            # in the database
            store = api.new_store()
            t_till = store.fetch(till)
            TillRemoveCashEvent.emit(till=t_till, value=removed)

            reason = _('Amount removed from Till by %s') % (
                api.get_current_user(self.store).get_description(), )
            till_entry = t_till.add_debit_entry(removed, reason)

            # Financial transaction
            _create_transaction(store, till_entry)
            # DB transaction
            store.confirm(True)
            store.close()

        if self._close_ecf:
            try:
                retval = TillCloseEvent.emit(till=till,
                                             previous_day=self._previous_day)
            except (TillError, DeviceError), e:
                warning(str(e))
                return None

            # If the event was captured and its return value is False, then we
            # should not close the till.
            if retval is False:
                return False
Пример #2
0
 def on_confirm(self):
     value = abs(self.model.value)
     till = self.model.till
     assert till
     try:
         TillRemoveCashEvent.emit(till=till, value=value)
     except (TillError, DeviceError, DriverError), e:
         warning(str(e))
         self.retval = False
         return
Пример #3
0
    def on_confirm(self):
        value = abs(self.model.value)
        till = self.model.till
        assert till
        try:
            TillRemoveCashEvent.emit(till=till, value=value)
        except (TillError, DeviceError, DriverError) as e:
            warning(str(e))
            self.retval = False
            return

        till_entry = till.add_debit_entry(value, (_(u"Cash out: %s") % (self.reason.get_text(),)))

        TillAddTillEntryEvent.emit(till_entry, self.store)
        _create_transaction(self.store, till_entry)
Пример #4
0
    def on_confirm(self):
        till = self.model.till
        value = abs(self.model.value)
        assert till
        try:
            TillRemoveCashEvent.emit(till=till, value=value)
        except (TillError, DeviceError, DriverError) as e:
            warning(str(e))
            self.retval = False
            return
        till_entry = till.add_debit_entry(
            value, (_(u'Cash advance paid to employee: %s') %
                    (self._get_employee_name(), )))

        TillAddTillEntryEvent.emit(till_entry, self.store)
        _create_transaction(self.store, till_entry)
Пример #5
0
    def on_confirm(self):
        till = self.model.till
        value = abs(self.model.value)
        assert till
        try:
            TillRemoveCashEvent.emit(till=till, value=value)
        except (TillError, DeviceError, DriverError) as e:
            warning(str(e))
            self.retval = False
            return
        till_entry = till.add_debit_entry(
            value, (_(u'Cash advance paid to employee: %s') % (
                    self._get_employee_name(), )))

        TillAddTillEntryEvent.emit(till_entry, self.store)
        _create_transaction(self.store, till_entry)
Пример #6
0
    def on_confirm(self):
        value = abs(self.model.value)
        till = self.model.till
        assert till
        try:
            TillRemoveCashEvent.emit(till=till, value=value)
        except (TillError, DeviceError, DriverError) as e:
            warning(str(e))
            self.retval = False
            return

        till_entry = till.add_debit_entry(
            value, (_(u'Cash out: %s') % (self.reason.get_text(), )))

        TillAddTillEntryEvent.emit(till_entry, self.store)
        _create_transaction(self.store, till_entry)
Пример #7
0
    def on_confirm(self):
        till = self.model.till
        removed = abs(self.model.value)
        if removed:
            # We need to do this inside a new transaction, because if the
            # till closing fails further on, this still needs to be recorded
            # in the database
            store = api.new_store()
            t_till = store.fetch(till)
            TillRemoveCashEvent.emit(till=t_till, value=removed)

            reason = _('Amount removed from Till by %s') % (
                api.get_current_user(self.store).get_description(), )
            till_entry = t_till.add_debit_entry(removed, reason)

            # Financial transaction
            _create_transaction(store, till_entry)

            # DB transaction
            store.confirm(True)
            store.close()

        if self._close_ecf:
            try:
                retval = TillCloseEvent.emit(till=till,
                                             previous_day=self._previous_day)
            except (TillError, DeviceError) as e:
                warning(str(e))
                return None

            # If the event was captured and its return value is False, then we
            # should not close the till.
            if retval is False:
                return False

        if self._close_db:
            try:
                till.close_till(user=api.get_current_user(self.store),
                                observations=self.model.observations)
            except ValueError as err:
                warning(str(err))
                return

        # The callsite is responsible for interacting with
        # the fiscal printer
        return self.model