Hi,
Unfortunately, there isnt a parameter that controls only the collection letters. However, there is a workaround that should do the job.
On your customer account. Go to Credit and collections and view details for the field Account status. This is just a marker to filter out customers when creating the collection letters.
Create a new record with a name and set Invoicing and delivery on hold to "No". Once done, select the record in the account status on the customer account, shown above.
Create your collection letters and make sure to use the filter.
In the filter you select all customers that have the account status NOT "CollLetterOnHold".
So basically, you are just filtering it out, but not restricting it. When you create a collection letter from the customer account, there is no filter for account status, hence, you could still create one.
Keep in mind that you can add this account status in different list pages like here, in order to be sure to filter them out - of course you need to use a filter like "does not contain.
Its not perfect, but in my opinion it should be enough or at least worth trying instead of going for the risk of a development. You never know how things change and may mess up your development.
If you really wanna go for a hard restriction. I would add "Collection letter" to this enum fields "Invoicing and delivery on hold". I d check how the "Invoice" enum works, code wise and adapt the newly created enum in a similar way. You will need to disable buttons for creating a new collection letter for that account and also filter out these customers that have the collection letter set on hold.
Hope it helps, Adis