docs: def _assign_numbers(self):
          """
          Assign numbers in preparation for validating these receipts.
  
          WARNING: Don't call the method manually unless you know what you're
          doing!
          """
          first = self.select_related('point_of_sales', 'receipt_type').first()
  
          next_num = Receipt.objects.fetch_last_receipt_number(
              first.point_of_sales,
              first.receipt_type,
          ) + 1
  
          for receipt in self.filter(receipt_number__isnull=True):
              # Atomically update receipt number
              Receipt.objects.filter(
                  pk=receipt.id,
                  receipt_number__isnull=True,
              ).update(
                  receipt_number=next_num,
              )
              next_num += 1