docs: def validate(self, ticket=None):
          """
          Validates all receipts matching this queryset.
  
          Note that, due to how AFIP implements its numbering, this method is not
          thread-safe, or even multiprocess-safe.
  
          Because of this, it is possible that not all instances matching this
          queryset are validated properly. Obviously, only successfully validated
          receipts will be updated.
  
          Returns a list of errors as returned from AFIP's webservices. An
          exception is not raised because partial failures are possible.
  
          Receipts that succesfully validate will have a
          :class:`~.ReceiptValidation` object attatched to them with a validation
          date and CAE information.
  
          Already-validated receipts are ignored.
  
          Attempting to validate an empty queryset will simply return an empty
          list.
          """
          # Skip any already-validated ones:
          qs = self.filter(validation__isnull=True).check_groupable()
          if qs.count() == 0:
              return []
          qs.order_by('issued_date', 'id')._assign_numbers()
  
          return qs._validate(ticket)