Source code for Acquire.Accounting._lineitem


__all__ = ["LineItem"]


[docs]class LineItem: """This class holds the data for a line item in the account. This holds basic information about the item, e.g. its UID and authorisation """ def __init__(self, uid=None, authorisation=None): self._uid = uid if authorisation is not None: from Acquire.Identity import Authorisation as _Authorisation if not isinstance(authorisation, _Authorisation): raise TypeError("Authorisation must be of type Authorisation!") self._authorisation = authorisation def __str__(self): return "LineItem(uid=%s)" % self._uid def __eq__(self, other): if isinstance(other, self.__class__): return self._uid == other._uid else: return False def __ne__(self, other): return not self.__eq__(other)
[docs] def is_null(self): """Return whether or not this is a null line item""" return self._uid is None
[docs] def uid(self): """Return the UID of the TransactionRecord that provides more information about this line item in the ledger """ return self._uid
[docs] def authorisation(self): """Return the authorisation that was used to authorise this action""" return self._authorisation
[docs] def to_data(self): """Return this object as a dictionary that can be serialised to json""" data = {} if not self.is_null(): data["uid"] = self._uid if self._authorisation is not None: data["authorisation"] = self._authorisation.to_data() return data
[docs] @staticmethod def from_data(data): """Return a LineItem constructed from the json-decoded dictionary""" l = LineItem() if (data and len(data) > 0): l._uid = data["uid"] if "authorisation" in data: from Acquire.Identity import Authorisation as _Authorisation l._authorisation = _Authorisation.from_data( data["authorisation"]) else: l._authorisation = None return l