Details
Description
Per CRM-16737 CiviCRM is expected to complete transactions when payment_status_id is 1
I thought this was fixed through 4.6 but it turned out to have been tested with IATS which actually hacks this to work using a hook
https://github.com/iATSPayments/com.iatspayments.civicrm/blob/master/iats.php#L370
However, the correct fix - in 4.7 breaks IATS because of this hack. The trick has to be to make it do the same thing in both but be tolerant of payment processors having done an intervention - not only because of the need to grandfather in the change with the processors - but also because things like IPNs could cause 'offline payment completion'