|
|
@@ -3,6 +3,7 @@ |
|
|
|
namespace Lc\ShopBundle\Services ; |
|
|
|
|
|
|
|
use Doctrine\ORM\EntityManagerInterface; |
|
|
|
use Lc\ShopBundle\Context\CreditHistoryInterface; |
|
|
|
use Lc\ShopBundle\Context\MerchantInterface; |
|
|
|
use Lc\ShopBundle\Context\MerchantUtilsInterface; |
|
|
|
use Lc\ShopBundle\Context\UserInterface; |
|
|
@@ -35,17 +36,55 @@ class CreditUtils |
|
|
|
{ |
|
|
|
$merchant = $this->getMerchant($merchant) ; |
|
|
|
$classUserMerchant = $this->em->getClassMetadata(UserMerchantInterface::class)->getName(); |
|
|
|
|
|
|
|
$userMerchant = new $classUserMerchant ; |
|
|
|
$userMerchant->setUser($user) ; |
|
|
|
$userMerchant->setMerchant($merchant) ; |
|
|
|
$userMerchant->setCredit(0) ; |
|
|
|
$userMerchant->setCreditActive(true) ; |
|
|
|
|
|
|
|
$this->em->persist($userMerchant) ; |
|
|
|
$this->em->flush() ; |
|
|
|
|
|
|
|
return $userMerchant ; |
|
|
|
} |
|
|
|
|
|
|
|
public function updateCreditActive($user, $merchant = null, $creditActive = true) |
|
|
|
{ |
|
|
|
$userMerchant = $this->getUserMerchant($user, $merchant) ; |
|
|
|
if(!$userMerchant) { |
|
|
|
$userMerchant = $this->createUserMerchant($user, $merchant) ; |
|
|
|
} |
|
|
|
|
|
|
|
$userMerchant->setCreditActive($creditActive) ; |
|
|
|
|
|
|
|
$this->em->persist($userMerchant) ; |
|
|
|
$this->em->flush() ; |
|
|
|
|
|
|
|
return $userMerchant ; |
|
|
|
} |
|
|
|
|
|
|
|
public function activeCredit($user, $merchant = null) |
|
|
|
{ |
|
|
|
return $this->updateCreditActive($user, $merchant, true) ; |
|
|
|
} |
|
|
|
|
|
|
|
public function unactiveCredit($user, $merchant = null) |
|
|
|
{ |
|
|
|
return $this->updateCreditActive($user, $merchant, false) ; |
|
|
|
} |
|
|
|
|
|
|
|
public function createCreditHistory($user, $amount, $meanPayment, $comment = null, $merchant = null) |
|
|
|
{ |
|
|
|
$merchant = $this->getMerchant($merchant) ; |
|
|
|
$userMerchant = $this->getUserMerchant($user, $merchant) ; |
|
|
|
|
|
|
|
if($userMerchant && $userMerchant->isCreditActive()) { |
|
|
|
$classCreditHistory = $this->em->getClassMetadata(CreditHistoryInterface::class)->getName(); |
|
|
|
|
|
|
|
$creditHistory = new $classCreditHistory ; |
|
|
|
} |
|
|
|
|
|
|
|
return $creditHistory ; |
|
|
|
} |
|
|
|
|
|
|
|
public function addCredit($user, $amount, $merchant = null) |