Fix deletion of a thirdparty must not delete the stripe account.

This commit is contained in:
Laurent Destailleur 2020-06-22 11:32:58 +02:00
parent 4cfb9dc7c5
commit 194a094d23

View File

@ -204,16 +204,19 @@ class InterfaceStripe extends DolibarrTriggers
if ($action == 'COMPANY_DELETE') {
dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
$stripeacc = $stripe->getStripeAccount($service); // No need of network access for this. May return '' if no Oauth defined.
if (! empty($conf->global->STRIPE_DELETE_STRIPE_ACCIUNT_WHEN_DELETING_THIRPARTY)) {
// By default, we do not delete the stripe account. We may need to reuse it with its payment_intent, for example if delete is for a merge of thirdparties.
$stripeacc = $stripe->getStripeAccount($service); // No need of network access for this. May return '' if no Oauth defined.
$customer = $stripe->customerStripe($object, $stripeacc, $servicestatus);
if ($customer)
{
try {
$customer->delete();
} catch (Exception $e)
$customer = $stripe->customerStripe($object, $stripeacc, $servicestatus);
if ($customer)
{
dol_syslog("Failed to delete Stripe customer ".$e->getMessage(), LOG_WARNING);
try {
$customer->delete();
} catch (Exception $e)
{
dol_syslog("Failed to delete Stripe customer ".$e->getMessage(), LOG_WARNING);
}
}
}