<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 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