/** * Make prepaid credit card payloads for any payments * remaining in the list * @param Mage_Sales_Model_Order $order * @param IPaymentContainer $paymentContainer * @param SplObjectStorage $processedPayments */ public function addPaymentsToPayload(Mage_Sales_Model_Order $order, IPaymentContainer $paymentContainer, SplObjectStorage $processedPayments) { foreach ($order->getAllPayments() as $payment) { if ($this->_shouldIgnorePayment($payment, $processedPayments)) { continue; } $iterable = $paymentContainer->getPayments(); $payload = $iterable->getEmptyCreditCardPayment(); $additionalInfo = new Varien_Object($payment->getAdditionalInformation()); $payload->setOrderId($order->getIncrementId())->setTenderType($additionalInfo->getTenderType())->setAccountUniqueId($this->_getAccountUniqueId($payment))->setPanIsToken($additionalInfo->getPanIsToken())->setPaymentRequestId($additionalInfo->getRequestId())->setCreateTimestamp($this->_getAsDateTime($payment->getCreatedAt()))->setAmount($payment->getAmountAuthorized())->setBankAuthorizationCode($additionalInfo->getBankAuthorizationCode())->setResponseCode($additionalInfo->getResponseCode())->setCVV2ResponseCode($additionalInfo->getCvv2ResponseCode())->setAVSResponseCode($additionalInfo->getAvsResponseCode())->setPhoneResponseCode($additionalInfo->getPhoneResponseCode())->setNameResponseCode($additionalInfo->getNameResponseCode())->setEmailResponseCode($additionalInfo->getEmailResponseCode())->setAmountAuthorized($additionalInfo->getAmountAuthorized())->setExpirationDate($this->_getExpirationDateTime($payment))->setExtendedAuthDescription($additionalInfo->getExtendedAuthDescription())->setExtendedAuthReasonCode($additionalInfo->getExtendedAuthReasonCode())->setIssueNumber($additionalInfo->getIssueNumber())->setAuthenticationAvailable($additionalInfo->getAuthenticationAvailable())->setAuthenticationStatus($additionalInfo->getAuthenticationStatus())->setCavvUcaf($additionalInfo->getCavvUcaf())->setTransactionId($additionalInfo->getTransactionId())->setECI($additionalInfo->getECI())->setPayerAuthenticationResponse($additionalInfo->getPayerAuthenticationResponse())->setPurchasePlanCode($additionalInfo->getPurchasePlanCode())->setPurchasePlanDescription($additionalInfo->getPurchasePlanDescription()); if ($additionalInfo->getStartDate()) { // prevent death by type error if getStartDate returns null $payload->setStartDate($this->_getAsDateTime($additionalInfo->getStartDate())); } // add the new payload $iterable->OffsetSet($payload, $payload); // put the payment in the processed payments set $processedPayments->attach($payment); } }
protected function _prepareDates(Varien_Object $request) { if (null !== $request->getStartDate()) { $request->setStartDate(Mage::getSingleton('core/date')->gmtDate(null, $request->getStartDate())); } if (null !== $request->getEndDate()) { $request->setEndDate(Mage::getSingleton('core/date')->gmtDate(null, $request->getEndDate())); } return $this; }
/** * @param $product * @param $quoteItem * @param $source * @param $startDate * @param $endDate * * @return array */ public static function getTurnoverFromQuoteItemOrBuyRequest($product, $quoteItemOrBuyRequest = null, $startDate = null, $endDate = null, $type = 'date') { $shippingMethod = null; $postcode = null; $buyRequest = new Varien_Object(); if (!is_null($quoteItemOrBuyRequest)) { if (is_object($quoteItemOrBuyRequest) && is_object($quoteItemOrBuyRequest->getShippingAddress())) { if ($quoteItemOrBuyRequest->getShippingAddress()->getShippingMethod()) { $shippingMethod = $quoteItemOrBuyRequest->getShippingAddress()->getShippingMethod(); } if ($quoteItemOrBuyRequest->getShippingAddress()->getPostcode()) { $postcode = $quoteItemOrBuyRequest->getShippingAddress()->getPostcode(); } } else { if (is_array($quoteItemOrBuyRequest)) { $option = $quoteItemOrBuyRequest; $buyRequest = new Varien_Object($option); } else { if (is_object($quoteItemOrBuyRequest) && is_object($quoteItemOrBuyRequest->getOptionByCode('info_buyRequest'))) { $option = $quoteItemOrBuyRequest->getOptionByCode('info_buyRequest'); $buyRequest = new Varien_Object(unserialize($option->getValue())); } else { $option = $quoteItemOrBuyRequest->getProductOptions(); $buyRequest = new Varien_Object($option['info_buyRequest']); } } } } if (is_null($startDate)) { if ($buyRequest->getStartDate()) { $startDate = $buyRequest->getStartDate(); } } if (is_null($endDate)) { if ($buyRequest->getEndDate()) { $endDate = $buyRequest->getEndDate(); } } if (is_object($product)) { $productId = $product->getId(); } else { $productId = $product; } if ($buyRequest->getShippingMethod()) { $shippingMethod = $buyRequest->getShippingMethod(); } else { if (is_object($quoteItemOrBuyRequest) && is_object($quoteItemOrBuyRequest->getQuote()) && is_object($quoteItemOrBuyRequest->getQuote()->getShippingAddress()) && $quoteItemOrBuyRequest->getQuote()->getShippingAddress()->getShippingMethod()) { $shippingMethod = $quoteItemOrBuyRequest->getQuote()->getShippingAddress()->getShippingMethod(); } else { if (Mage::app()->getRequest()->getParam('shipping_method')) { $shippingMethod = Mage::app()->getRequest()->getParam('shipping_method'); } } } if ($buyRequest->getZipCode()) { $postcode = $buyRequest->getZipCode(); } else { if (is_object($quoteItemOrBuyRequest) && is_object($quoteItemOrBuyRequest->getQuote()) && is_object($quoteItemOrBuyRequest->getQuote()->getShippingAddress()) && $quoteItemOrBuyRequest->getQuote()->getShippingAddress()->getPostcode()) { $postcode = $quoteItemOrBuyRequest->getQuote()->getShippingAddress()->getPostcode(); } else { if (Mage::app()->getRequest()->getParam('zip_code')) { $postcode = Mage::app()->getRequest()->getParam('zip_code'); } } } $endOrderDateTimestamp = strtotime($endDate); $startOrderDateTimestamp = strtotime($startDate); if (date('H:i:s', $endOrderDateTimestamp) == '00:00:00' && !Mage::helper('payperrentals/config')->isHotelMode(Mage::app()->getStore()->getId())) { $endOrderDateTimestamp = strtotime(date('Y-m-d', $endOrderDateTimestamp) . ' 23:59:00'); } else { $endOrderDateTimestamp -= 60; } $turnoverTimeBefore = Mage::helper('payperrentals/config')->getTurnoverTimeBefore($productId); $turnoverTimeAfter = Mage::helper('payperrentals/config')->getTurnoverTimeAfter($productId); Mage::dispatchEvent('ppr_get_turnover_dates_for_order_item', array('turnover_time_before' => &$turnoverTimeBefore, 'turnover_time_after' => &$turnoverTimeAfter, 'order_item_before_turnover_timestamp' => &$startOrderDateTimestamp, 'order_item_after_turnover_timestamp' => &$endOrderDateTimestamp, 'product' => $productId, 'shipping_method' => $shippingMethod, 'postcode' => $postcode)); $collectionExcludedTurnover = ITwebexperts_Payperrentals_Helper_Data::getCollectionExcludedTurnoverDates(); if (Mage::helper('payperrentals/config')->excludeDisabledDaysOfWeekFromTurnover()) { $turnoverTimeBeforeCurr = $turnoverTimeBefore; if (!$startOrderDateTimestamp) { $startOrderDateTimestamp = Mage::getSingleton('core/date')->timestamp(date('Y-m-d')); } $startOrderDateTimestampCurr = $startOrderDateTimestamp - $turnoverTimeBeforeCurr; $endOrderDateTimestampCurr = $startOrderDateTimestamp; $disabledDays = self::getDisabledDays(null, true, false, true); while ($startOrderDateTimestampCurr <= $endOrderDateTimestampCurr) { $currDateofWeek = date('w', $startOrderDateTimestampCurr); $currDate = date('Y-m-d', $startOrderDateTimestampCurr); if (in_array($currDateofWeek, $disabledDays) || in_array($currDate, $collectionExcludedTurnover)) { $turnoverTimeBefore += 86400; } $startOrderDateTimestampCurr += 86400; } $turnoverTimeAfterCurr = $turnoverTimeAfter; if ($endOrderDateTimestamp) { $endOrderDateTimestampCurr = $endOrderDateTimestamp + $turnoverTimeAfterCurr; $startOrderDateTimestampCurr = $endOrderDateTimestamp; $disabledDays = self::getDisabledDays(null, true, false, true); while ($startOrderDateTimestampCurr <= $endOrderDateTimestampCurr) { $currDateofWeek = date('w', $startOrderDateTimestampCurr); $currDate = date('Y-m-d', $startOrderDateTimestampCurr); if (in_array($currDateofWeek, $disabledDays) || in_array($currDate, $collectionExcludedTurnover)) { $turnoverTimeAfter += 86400; } $startOrderDateTimestampCurr += 86400; } } } if ($type == 'date') { $orderBeforeTurnoverTimestamp = $startOrderDateTimestamp - $turnoverTimeBefore; $orderAfterTurnoverTimestamp = $endOrderDateTimestamp + $turnoverTimeAfter; return array('before' => date('Y-m-d H:i:s', $orderBeforeTurnoverTimestamp), 'after' => date('Y-m-d H:i:s', $orderAfterTurnoverTimestamp)); } elseif ($type == 'days') { return array('before' => intval($turnoverTimeBefore / 86400), 'after' => intval($turnoverTimeAfter / 86400)); } }