docs: def clean_entries(self, source_invoice: Invoice or None, settled_invoice: Invoice or None, account: Account, **kw):
          """
          This needs to be called from a derived class clean().
          :param source_invoice:
          :param settled_invoice:
          :param account:
          :return: None
          """
          for form in self.forms:
              obj = form.instance
              assert isinstance(obj, AccountEntry)
              obj.account = account
              obj.source_invoice = source_invoice
              obj.settled_invoice = settled_invoice
              if obj.parent:
                  if obj.amount is None:
                      obj.amount = obj.parent.amount
                  if obj.type is None:
                      obj.type = obj.parent.type
                  if obj.amount > obj.parent.amount > Decimal(0) or obj.amount < obj.parent.amount < Decimal(0):
                      raise ValidationError(_('Derived account entry amount cannot be larger than original'))
              for k, v in kw.items():
                  setattr(obj, k, v)