/**
  * Transfer constructor.
  *
  * @param float             $amount
  * @param VendorInterface $vendorInterface
  * @param string          $privateLabel
  * @param string          $publicLabel
  */
 public function __construct($amount, VendorInterface $vendorInterface, $privateLabel, $publicLabel)
 {
     $this->amount = $amount;
     $this->recipientUserId = $vendorInterface->getHiPayId();
     $this->recipientUsername = $vendorInterface->getEmail();
     $this->privateLabel = $privateLabel;
     $this->publicLabel = $publicLabel;
 }
 protected function getVendor($hipayId)
 {
     if ($hipayId == $this->operator->getHipayId()) {
         return $this->operator;
     }
     if ($hipayId == $this->technical->getHipayId()) {
         return $this->technical;
     }
     return $this->vendorManager->findByHipayId($hipayId);
 }
 /**
  * Create the vendor operation
  * dispatch <b>after.operation.create</b>.
  *
  * @param int $amount
  * @param DateTime $cycleDate
  * @param string $paymentVoucher
  * @param bool|int $miraklId false if it an operator operation
  *
  * @return OperationInterface|null
  */
 public function createOperation($amount, DateTime $cycleDate, $paymentVoucher, $miraklId = null)
 {
     if ($amount <= 0) {
         $this->logger->notice("Operation wasn't created du to null amount");
         return null;
     }
     //Call implementation function
     $operation = $this->operationManager->create($amount, $cycleDate, $paymentVoucher, $miraklId);
     //Set hipay id
     $hipayId = null;
     if ($miraklId) {
         $vendor = $this->vendorManager->findByMiraklId($miraklId);
         if ($vendor) {
             $hipayId = $vendor->getHiPayId();
         }
     } else {
         $hipayId = $this->operator->getHiPayId();
     }
     $operation->setHiPayId($hipayId);
     //Sets mandatory values
     $operation->setMiraklId($miraklId);
     $operation->setStatus(new Status(Status::CREATED));
     $operation->setUpdatedAt(new DateTime());
     $operation->setAmount($amount);
     $operation->setCycleDate($cycleDate);
     $operation->setPaymentVoucher($paymentVoucher);
     return $operation;
 }
 /**
  * Add sub account informations.
  *
  * @param array           $parameters the parameters array to add the info to
  * @param VendorInterface $vendor     the vendor from which subAccount info is fetched from
  *
  * @return array
  */
 protected function mergeSubAccountParameters(VendorInterface $vendor, $parameters = array())
 {
     $parameters += array('wsSubAccountLogin' => $vendor->getEmail(), 'wsSubAccountId' => $vendor->getHiPayId());
     return $parameters;
 }
 /**
  * TransactionException constructor.
  *
  * @param VendorInterface $vendor
  * @param string          $message
  * @param int             $code
  * @param $previousException
  */
 public function __construct($vendor, $message = '', $code = 0, $previousException = null)
 {
     $this->vendor = $vendor;
     parent::__construct($message ?: "The HiPay Wallet account {$vendor->getHiPayId()} is unidentified. Please upload identification documents for Mirakl shop " . $vendor->getMiraklId() . " if you didn't already do so.", $code, $previousException);
 }
 /**
  * NoWalletFoundException constructor.
  *
  * @param VendorInterface $vendor
  * @param string          $message
  * @param int             $code
  * @param Exception       $previous
  */
 public function __construct(VendorInterface $vendor = null, $message = '', $code = 0, Exception $previous = null)
 {
     $this->vendor = $vendor;
     $defaultMessage = $vendor ? "The wallet for {$vendor->getHiPayId()} is not found" : "The vendor is not found in the storage";
     parent::__construct($message ?: $defaultMessage, $code, $previous);
 }
 /**
  * NoWalletFoundException constructor.
  *
  * @param VendorInterface $vendor
  * @param string          $message
  * @param int             $code
  * @param Exception       $previous
  */
 public function __construct(VendorInterface $vendor, $message = '', $code = 0, Exception $previous = null)
 {
     $this->vendor = $vendor;
     parent::__construct($message ?: "The vendor {$vendor->getMiraklId()} can't be saved", $code, $previous);
 }
 /**
  * InvalidBankInfoException constructor.
  *
  * @param VendorInterface $vendor
  * @param BankInfo        $bankInfo
  * @param string          $message
  * @param int             $code
  * @param Exception       $previous
  */
 public function __construct(VendorInterface $vendor, BankInfo $bankInfo, $message = '', $code = 0, Exception $previous = null)
 {
     $this->vendor = $vendor;
     $this->bankInfo = $bankInfo;
     parent::__construct($message ?: "The creation of the bank account for hipay Wallet\n            {$vendor->getHiPayId()} failed", $code, $previous);
 }
 /**
  * Return the values who should't
  * change after the registration of the hipay wallet.
  *
  * @param VendorInterface $vendor
  */
 protected function getImmutableValues(VendorInterface $vendor)
 {
     $previousValues['email'] = $vendor->getEmail();
     $previousValues['hipayId'] = $vendor->getHiPayId();
     $previousValues['miraklId'] = $vendor->getMiraklId();
     return $previousValues;
 }
 /**
  * InvalidBankInfoException constructor.
  *
  * @param VendorInterface $vendor
  * @param BankInfo        $bankInfo
  * @param string          $message
  * @param int             $code
  * @param Exception       $previous
  */
 public function __construct(VendorInterface $vendor, BankInfo $bankInfo, $message = '', $code = 0, Exception $previous = null)
 {
     $this->vendor = $vendor;
     $this->bankInfo = $bankInfo;
     parent::__construct($message ?: "The Bank info for shop {$vendor->getMiraklId()} are not synchronized with HiPay Wallet (which means that bank info have been updated in Mirakl though they were already registered into HiPay Wallet). Please contact HiPay in order to update the bank info for this shop.", $code, $previous);
 }