def METHOD_NAME(
     patron, patron_type, start_date, end_date, dbcommit=None, reindex=None,
     delete_pid=None):
    """Create a subscription patron transaction for a patron.
    :param patron: the patron linked to the subscription
    :param patron_type: the patron_type for which we need to create the
                        subscription
    :param start_date: As `datetime`, the starting date of the subscription
    :param end_date: As `datetime`, the ending date of the subscription
    :param dbcommit: is the database must be directly committed.
    :param reindex: is the indexes must be directly updated.
    :param delete_pid: is the database should be cleaned from deleted pids.
    """
    record = {}
    if patron_type.is_subscription_required:
        data = {
            'patron': {
                '$ref': get_ref_for_pid('ptrn', patron.pid)
            },
            'organisation': {
                '$ref': get_ref_for_pid('org', patron.organisation_pid)
            },
            'total_amount': patron_type.get('subscription_amount'),
            'creation_date': datetime.now(timezone.utc).isoformat(),
            'type': 'subscription',
            'status': 'open',
            'note': _("Subscription for '{name}' from {start} to {end}")
            .format(
                name=patron_type.get('name'),
                start=start_date.strftime('%Y-%m-%d'),
                end=end_date.strftime('%Y-%m-%d')
            )
        }
        record = PatronTransaction.create(
            data,
            dbcommit=dbcommit,
            reindex=reindex,
            delete_pid=delete_pid
        )
    return record