Prevent UserError by checking if reconciliation is possible
Prevent UserError by checking if reconciliation is possible

* Do not wait for UserError instead do the reconciliation when possible
* Use get_singleton so it can work on test suite

[FP-5057]

fulfilio/trytond-invoice-payment-gateway,prakashpp/trytond-invoice-payment-gateway