コード例 #1
0
 public function catalogProductImportFinishBefore($observer)
 {
     $productIds = array();
     $adapter = $observer->getEvent()->getAdapter();
     $resource = Mage::getResourceModel('bubble_stockmovements/stock_movement');
     if ($adapter instanceof Mage_Catalog_Model_Convert_Adapter_Product) {
         $productIds = $adapter->getAffectedEntityIds();
     } else {
         Mage_ImportExport_Model_Import::getDataSourceModel()->getIterator()->rewind();
         $skus = array();
         while ($bunch = $adapter->getNextBunch()) {
             foreach ($bunch as $rowData) {
                 if (null !== $rowData['sku']) {
                     $skus[] = $rowData['sku'];
                 }
             }
         }
         if (!empty($skus)) {
             $productIds = $resource->getProductsIdBySku($skus);
         }
     }
     if (!empty($productIds)) {
         $stock = Mage::getSingleton('cataloginventory/stock');
         $stocks = Mage::getResourceModel('cataloginventory/stock')->getProductsStock($stock, $productIds);
         $stocksMovements = array();
         $datetime = Varien_Date::formatDate(time());
         foreach ($stocks as $stockData) {
             $stocksMovements[] = array('item_id' => $stockData['item_id'], 'user' => $this->_getUsername(), 'user_id' => $this->_getUserId(), 'qty' => $stockData['qty'], 'is_in_stock' => (int) $stockData['is_in_stock'], 'message' => 'Product import', 'created_at' => $datetime);
         }
         if (!empty($stocksMovements)) {
             $resource->insertStocksMovements($stocksMovements);
         }
     }
 }
コード例 #2
0
ファイル: Collection.php プロジェクト: xiaoguizhidao/bb
 /**
  * Apply filter by card active state (based on last usage date)
  *
  * @return CLS_Paypal_Model_Resource_Customerstored_Collection
  */
 public function filterByActiveState()
 {
     $now = new Zend_Date(null);
     $now->addMonth(0 - CLS_Paypal_Model_Paypal_Config::STORED_CARD_TTL_MONTHS);
     $this->getSelect()->where('date >= ?', Varien_Date::formatDate($now, false));
     return $this;
 }
コード例 #3
0
 public function catalogProductImportFinishBefore($observer)
 {
     $adapter = $observer->getEvent()->getAdapter();
     Mage_ImportExport_Model_Import::getDataSourceModel()->getIterator()->rewind();
     $model = Mage::getModel('catalog/product');
     $skus = array();
     while ($bunch = $adapter->getNextBunch()) {
         foreach ($bunch as $rowData) {
             if (null !== $rowData['sku']) {
                 $skus[] = $rowData['sku'];
             }
         }
     }
     if (!empty($skus)) {
         $resource = Mage::getResourceModel('jr_stockhistory/stock_history');
         $productIds = $resource->getProductsIdBySku($skus);
         if (!empty($productIds)) {
             $stock = Mage::getSingleton('cataloginventory/stock');
             $stocks = Mage::getResourceModel('cataloginventory/stock')->getProductsStock($stock, $productIds);
             $stocksHistory = array();
             $datetime = Varien_Date::formatDate(time());
             foreach ($stocks as $stockData) {
                 $stocksHistory[] = array('item_id' => $stockData['item_id'], 'user' => $this->_getUsername(), 'user_id' => $this->_getUserId(), 'qty' => $stockData['qty'], 'is_in_stock' => (int) $stockData['is_in_stock'], 'message' => 'Product import', 'created_at' => $datetime);
             }
             if (!empty($stocksHistory)) {
                 $resource->insertStocksHistory($stocksHistory);
             }
         }
     }
 }
コード例 #4
0
 public function saveAction()
 {
     $installment = Mage::getModel('installment/master');
     $id = $this->getRequest()->getParam('id');
     if (!is_null($id)) {
         $installment->load($id);
     }
     try {
         $authPaid = $installment->getInstallmentMasterInstallmentAuthorized() || $installment->getInstallmentMasterInstallmentPaid();
         if ($authPaid && $this->getRequest()->getParam('suspend_installment')) {
             Mage::getSingleton('adminhtml/session')->addError(Mage::helper('installment')->__('The installment has been authorized and/or paid and can not be split.'));
             $order = Mage::getModel('sales/order')->loadByIncrementId($installment->getOrderId());
             $this->getResponse()->setRedirect($this->getUrl('*/sales_order/view', array('order_id' => $order->getId(), 'active_tab' => 'order_installment_payment')));
         }
         $reason = $this->getRequest()->getParam('suspend_installment') ? $this->getRequest()->getParam('suspended_reason') : '';
         $installment->setInstallmentMasterAmountDue($this->getRequest()->getParam('amount_due'))->setInstallmentMasterAmountDueDate(Varien_Date::formatDate($this->getRequest()->getParam('amount_due_date')))->setInstallmentMasterSuspendInstallment($this->getRequest()->getParam('suspend_installment'))->setInstallmentMasterSuspendedReason($reason)->save();
         Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('installment')->__('The installment payment has been saved.'));
         $id = Mage::getModel('sales/order')->loadByIncrementId($this->getRequest()->getParam('order_id'))->getId();
         $this->getResponse()->setRedirect($this->getUrl('*/sales_order/view', array('order_id' => $id, 'active_tab' => 'order_installment_payment')));
         return;
     } catch (Exception $e) {
         Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
         Mage::getSingleton('adminhtml/session')->setInstallmentPaymentData($installment->getData());
         $this->getResponse()->setRedirect($this->getUrl('*/sales_order_payment/edit', array('id' => $id)));
         return;
     }
 }
コード例 #5
0
ファイル: Queue.php プロジェクト: TomOhme/IP1-Webshop
 /**
  * Send all messages in a queue
  *
  * @return Mage_Core_Model_Email_Queue
  */
 public function send()
 {
     /** @var $collection Mage_Core_Model_Resource_Email_Queue_Collection */
     $collection = Mage::getModel('core/email_queue')->getCollection()->addOnlyForSendingFilter()->setPageSize(self::MESSAGES_LIMIT_PER_CRON_RUN)->setCurPage(1)->load();
     ini_set('SMTP', Mage::getStoreConfig('system/smtp/host'));
     ini_set('smtp_port', Mage::getStoreConfig('system/smtp/port'));
     /** @var $message Mage_Core_Model_Email_Queue */
     foreach ($collection as $message) {
         if ($message->getId()) {
             $parameters = new Varien_Object($message->getMessageParameters());
             if ($parameters->getReturnPathEmail() !== null) {
                 $mailTransport = new Zend_Mail_Transport_Sendmail("-f" . $parameters->getReturnPathEmail());
                 Zend_Mail::setDefaultTransport($mailTransport);
             }
             $mailer = new Zend_Mail('utf-8');
             foreach ($message->getRecipients() as $recipient) {
                 list($email, $name, $type) = $recipient;
                 switch ($type) {
                     case self::EMAIL_TYPE_BCC:
                         $mailer->addBcc($email, '=?utf-8?B?' . base64_encode($name) . '?=');
                         break;
                     case self::EMAIL_TYPE_TO:
                     case self::EMAIL_TYPE_CC:
                     default:
                         $mailer->addTo($email, '=?utf-8?B?' . base64_encode($name) . '?=');
                         break;
                 }
             }
             if ($parameters->getIsPlain()) {
                 $mailer->setBodyText($message->getMessageBody());
             } else {
                 $mailer->setBodyHTML($message->getMessageBody());
             }
             $mailer->setSubject('=?utf-8?B?' . base64_encode($parameters->getSubject()) . '?=');
             $mailer->setFrom($parameters->getFromEmail(), $parameters->getFromName());
             if ($parameters->getReplyTo() !== null) {
                 $mailer->setReplyTo($parameters->getReplyTo());
             }
             if ($parameters->getReturnTo() !== null) {
                 $mailer->setReturnPath($parameters->getReturnTo());
             }
             try {
                 //$mailer->send();
                 $mailer->send(Mage::helper('smtp')->getTransport());
                 unset($mailer);
                 $message->setProcessedAt(Varien_Date::formatDate(true));
                 $message->save();
             } catch (Exception $e) {
                 unset($mailer);
                 $oldDevMode = Mage::getIsDeveloperMode();
                 Mage::setIsDeveloperMode(true);
                 Mage::logException($e);
                 Mage::setIsDeveloperMode($oldDevMode);
                 return false;
             }
         }
     }
     return $this;
 }
コード例 #6
0
 /**
  * Clean the log table
  *
  * @param  int $keepDays Days to keep
  * @return int The number of deleted rows
  */
 public function cleanLogs($keepDays)
 {
     if (!$keepDays) {
         return 0;
     }
     $time = Mage::getModel('core/date')->gmtTimestamp() - 60 * 60 * 24 * $keepDays;
     $delete = Varien_Date::formatDate($time, false);
     return $this->_getWriteAdapter()->delete($this->getMainTable(), $this->_getWriteAdapter()->quoteInto('timestamp < ?', $delete));
 }
コード例 #7
0
ファイル: Token.php プロジェクト: nemphys/magento2
 /**
  * Delete old entries
  *
  * @param int $minutes
  * @return int
  */
 public function deleteOldEntries($minutes)
 {
     if ($minutes > 0) {
         $adapter = $this->_getWriteAdapter();
         return $adapter->delete($this->getMainTable(), $adapter->quoteInto('type = "' . Mage_Oauth_Model_Token::TYPE_REQUEST . '" AND created_at <= ?', Varien_Date::formatDate(time() - $minutes * 60)));
     } else {
         return 0;
     }
 }
コード例 #8
0
ファイル: Payflowlink.php プロジェクト: xiaoguizhidao/bb
 /**
  * Operate with order using information from silent post
  *
  * @param Mage_Sales_Model_Order $order
  */
 protected function _processOrder(Mage_Sales_Model_Order $order)
 {
     $response = $this->getResponse();
     $payment = $order->getPayment();
     $payment->setTransactionId($response->getPnref())->setIsTransactionClosed(0);
     $canSendNewOrderEmail = true;
     if ($response->getResult() == self::RESPONSE_CODE_FRAUDSERVICE_FILTER || $response->getResult() == self::RESPONSE_CODE_DECLINED_BY_FILTER) {
         $canSendNewOrderEmail = false;
         $fraudMessage = $this->_getFraudMessage() ? $response->getFraudMessage() : $response->getRespmsg();
         $payment->setIsTransactionPending(true)->setIsFraudDetected(true)->setAdditionalInformation('paypal_fraud_filters', $fraudMessage);
     }
     if ($response->getAvsdata() && strstr(substr($response->getAvsdata(), 0, 2), 'N')) {
         $payment->setAdditionalInformation('paypal_avs_code', substr($response->getAvsdata(), 0, 2));
     }
     if ($response->getCvv2match() && $response->getCvv2match() != 'Y') {
         $payment->setAdditionalInformation('paypal_cvv2_match', $response->getCvv2match());
     }
     switch ($response->getType()) {
         case self::TRXTYPE_AUTH_ONLY:
             $payment->registerAuthorizationNotification($payment->getBaseAmountAuthorized());
             break;
         case self::TRXTYPE_SALE:
             $payment->registerCaptureNotification($payment->getBaseAmountAuthorized());
             break;
     }
     $order->save();
     $customerId = $order->getCustomerId();
     if ($response->getResult() == self::RESPONSE_CODE_APPROVED && $response->getMethod() == 'CC' && $customerId && $payment->hasAdditionalInformation('cc_save_future') && $payment->getAdditionalInformation('cc_save_future') == 'Y') {
         // Obtain CC type
         $ccType = 'OT';
         $responseCcType = $response->getCardtype();
         if (!is_null($responseCcType)) {
             $payflowResponseCcTypesMap = array(0 => 'VI', 1 => 'MC', 2 => 'DI', 3 => 'AE', 4 => 'OT', 5 => 'JCB');
             if (isset($payflowResponseCcTypesMap[$responseCcType])) {
                 $ccType = $payflowResponseCcTypesMap[$responseCcType];
             }
         }
         $ccExpMonth = $response->getExpdate() ? substr($response->getExpdate(), 0, 2) : '';
         if ($ccExpMonth[0] == '0') {
             $ccExpMonth = $ccExpMonth[1];
         }
         // Create new stored card
         $customerstoredModel = Mage::getModel('cls_paypal/customerstored');
         $customerstoredModel->setData(array('transaction_id' => $response->getPnref(), 'customer_id' => $customerId, 'cc_type' => $ccType, 'cc_last4' => $response->getAcct() ? substr($response->getAcct(), -4) : '', 'cc_exp_month' => $ccExpMonth, 'cc_exp_year' => $response->getExpdate() ? '20' . substr($response->getExpdate(), 2) : '', 'date' => Varien_Date::formatDate(true, true), 'payment_method' => $payment->getMethod()));
         $customerstoredModel->save();
     }
     try {
         if ($canSendNewOrderEmail) {
             $order->sendNewOrderEmail();
         }
         Mage::getModel('sales/quote')->load($order->getQuoteId())->setIsActive(false)->save();
     } catch (Exception $e) {
         Mage::throwException(Mage::helper('paypal')->__('Can not send new order email.'));
     }
 }
コード例 #9
0
ファイル: Collection.php プロジェクト: jsiefer/mage-mock
 /**
  * Filter items that have not been changed since
  *
  * @param string|DateTime|Zend_Date $since
  * @return $this
  */
 public function addChangedSinceFilter($since)
 {
     if ($since instanceof DateTime) {
         $since = $since->format('Y-m-d H:i:s');
     }
     if ($since instanceof Zend_Date) {
         $since = Varien_Date::formatDate($since);
     }
     $this->addFieldToFilter('updated_at', array('gt' => $since));
     return $this;
 }
コード例 #10
0
ファイル: Queue.php プロジェクト: Tengisa/magento-hipchat
 /**
  * Send all queued Messages
  */
 public function sendQueuedMessages()
 {
     $collection = Mage::getModel('mhauri_hipchat/queue')->getCollection()->addOnlyForSendingFilter()->setPageSize(self::MESSAGES_LIMIT_PER_CRON_RUN)->setCurPage(1)->load();
     foreach ($collection as $message) {
         try {
             $this->sendMessage(unserialize($message->getMessageParams()));
             $message->setProcessedAt(Varien_Date::formatDate(true));
             $message->save();
         } catch (Exception $e) {
             Mage::log($e->getMessage(), Zend_Log::ERR, Mhauri_HipChat_Model_Abstract::LOG_FILE);
         }
         sleep(1);
     }
 }
コード例 #11
0
ファイル: Design.php プロジェクト: natxetee/magento2
 /**
  * Load custom design settings for specified store and date
  *
  * @param string $storeId
  * @param string|null $date
  * @return Mage_Core_Model_Design
  */
 public function loadChange($storeId, $date = null)
 {
     if (is_null($date)) {
         $date = Varien_Date::formatDate(Mage::app()->getLocale()->storeTimeStamp($storeId), false);
     }
     $changeCacheId = 'design_change_' . md5($storeId . $date);
     $result = Mage::app()->loadCache($changeCacheId);
     if ($result === false) {
         $result = $this->getResource()->loadChange($storeId, $date);
         if (!$result) {
             $result = array();
         }
         Mage::app()->saveCache(serialize($result), $changeCacheId, array(self::CACHE_TAG), 86400);
     } else {
         $result = unserialize($result);
     }
     if ($result) {
         $this->setData($result);
     }
     return $this;
 }
コード例 #12
0
 /**
  * Add products to changelog with price which depends on date
  *
  * @return void
  */
 public function refreshSpecialPrices()
 {
     $connection = $this->_connection;
     foreach (Mage::app()->getStores(true) as $store) {
         $timestamp = Mage::app()->getLocale()->storeTimeStamp($store);
         $currDate = Varien_Date::formatDate($timestamp, false);
         $currDateExpr = $connection->quote($currDate);
         // timestamp is locale based
         if (date(Zend_Date::HOUR_SHORT, $timestamp) == '00') {
             $format = '%Y-%m-%d %H:%i:%s';
             $this->_refreshSpecialPriceByStore($store->getId(), 'special_from_date', $connection->getDateFormatSql($currDateExpr, $format));
             $dateTo = $connection->getDateAddSql($currDateExpr, -1, Varien_Db_Adapter_Interface::INTERVAL_DAY);
             $this->_refreshSpecialPriceByStore($store->getId(), 'special_to_date', $connection->getDateFormatSql($dateTo, $format));
         }
     }
 }
コード例 #13
0
ファイル: UserTest.php プロジェクト: nemphys/magento2
 /**
  * @magentoDbIsolation enabled
  * @magentoAppIsolation enabled
  * @magentoConfigFixture default/admin/emails/password_reset_link_expiration_period 10
  */
 public function testIsResetPasswordLinkTokenExpired()
 {
     $this->_model->loadByUsername(Magento_Test_Bootstrap::ADMIN_NAME);
     $this->assertTrue($this->_model->isResetPasswordLinkTokenExpired());
     $this->_model->changeResetPasswordLinkToken('test');
     $this->_model->save();
     $this->_model->loadByUsername(Magento_Test_Bootstrap::ADMIN_NAME);
     $this->assertFalse($this->_model->isResetPasswordLinkTokenExpired());
     $this->_model->setRpTokenCreatedAt(Varien_Date::formatDate(time() - 60 * 60 * 24 * 10 + 10));
     $this->assertFalse($this->_model->isResetPasswordLinkTokenExpired());
     $this->_model->setRpTokenCreatedAt(Varien_Date::formatDate(time() - 60 * 60 * 24 * 10 - 10));
     $this->assertTrue($this->_model->isResetPasswordLinkTokenExpired());
 }
コード例 #14
0
 /**
  * @dataProvider formatDateDataProvider
  */
 public function testFormatDate($date, $includeTime, $expectedResult)
 {
     $actual = Varien_Date::formatDate($date, $includeTime);
     $this->assertEquals($expectedResult, $actual);
 }
コード例 #15
0
ファイル: Log.php プロジェクト: mgeoffray/mg_security
 /**
  * Format date to internal format
  *
  * @param string|Zend_Date $date
  * @param bool $includeTime
  *
  * @return string
  */
 protected function _formatDate($date, $includeTime = true)
 {
     return Varien_Date::formatDate($date, $includeTime);
 }
コード例 #16
0
ファイル: ApiSe.php プロジェクト: xiaoguizhidao/ecommerce
 /**
  * Format date using current locale options
  *
  * @param   timestamp|int
  * @param   string $format
  * @param   bool $showTime
  * @return  string
  */
 public static function formatDate($timestamp = null, $format = 'short', $showTime = false)
 {
     if (empty($timestamp)) {
         return '';
     }
     $date = Mage::app()->getLocale()->date($timestamp, null, null);
     return Varien_Date::formatDate($date, $format, $showTime);
 }
コード例 #17
0
ファイル: Mysql.php プロジェクト: z4kko/smartdevs-indexer
 /**
  * Format Date to internal database date format
  *
  * @param int|string|Zend_Date $date
  * @param boolean $includeTime
  * @return Zend_Db_Expr
  */
 public function formatDate($date, $includeTime = true)
 {
     $date = Varien_Date::formatDate($date, $includeTime);
     if ($date === null) {
         return new Zend_Db_Expr('NULL');
     }
     return new Zend_Db_Expr($this->quote($date));
 }
コード例 #18
0
 /**
  * @return null|string current date
  */
 public function getDate()
 {
     return Varien_Date::formatDate(time());
 }
コード例 #19
0
 /**
  * Format date to internal format
  *
  * @param  string|Zend_Date $date Date to format
  * @return string Formatted date
  */
 public function formatDate($date)
 {
     return Varien_Date::formatDate($date, false);
 }
コード例 #20
0
 /**
  * Retrieves the start and end date for the catalog rule that applies to the product.
  * If there's no rule, or if the rule doesn't have dates, it defaults 365 days
  *
  * @see self::hasPriceByCatalogRules() - you should first check if the product has catalog rules
  *
  * @param  Mage_Catalog_Model_Product $product
  * @param  null|string|Zend_Date $date day to use when looking up prices and start of interval, defaults to today
  * @return false|Zend_Date[] 'start','end'
  */
 protected function _getCatalogRuleEffectiveDates($product, $date = null)
 {
     $read = $this->getTools()->getConnRead();
     if ($date == null) {
         $date = Mage::app()->getLocale()->storeTimeStamp($this->getData('store_id'));
     }
     $date = new Zend_Date($date);
     $wId = Mage::app()->getStore($this->getData('store_id'))->getWebsiteId();
     $select = $read->select()->from(Mage::getResourceModel('catalogrule/rule')->getTable('catalogrule/rule_product_price'), array('latest_start_date', 'earliest_end_date'))->where('rule_date=?', Varien_Date::formatDate($date, false))->where('website_id=?', $wId)->where('product_id=?', $product->getId())->where('rule_price=?', $this->getPriceByCatalogRules($product))->where('customer_group_id=?', Mage_Customer_Model_Group::NOT_LOGGED_IN_ID);
     $rule = $read->fetchRow($select);
     $dates = array();
     if ($rule['latest_start_date']) {
         $dates['start'] = new Zend_Date($rule['latest_start_date'], 'yyyy-MM-dd');
     } else {
         $dates['start'] = clone $date;
         $dates['start']->setTime('00:00:00', 'HH:mm:ss');
     }
     if ($rule['earliest_end_date']) {
         $dates['end'] = new Zend_Date($rule['earliest_end_date'], 'yyyy-MM-dd');
     } else {
         $dates['end'] = new Zend_Date(null, null, Mage::app()->getLocale()->getDefaultLocale());
         $timezone = Mage::app()->getStore($this->getStoreId())->getConfig(Mage_Core_Model_Locale::XML_PATH_DEFAULT_TIMEZONE);
         if ($timezone) {
             $dates['end']->setTimezone($timezone);
         }
         $dates['end']->setDate($date->toString('yyyy-MM-dd'), 'yyyy-MM-dd');
         $dates['end']->setTime('23:59:59', 'HH:mm:ss');
         $dates['end']->add(365, Zend_Date::DAY);
     }
     return $dates;
 }
コード例 #21
0
ファイル: Observer.php プロジェクト: xiaoguizhidao/bb
 /**
  * Save stored card details
  *
  * @param Varien_Event_Observer $observer
  * @return void
  */
 public function checkoutSubmitAllAfter(Varien_Event_Observer $observer)
 {
     /** @var $order Mage_Sales_Model_Order */
     $order = $observer->getOrder();
     $customerId = $order->getData('customer_id');
     if (!$customerId) {
         // Save transaction details for registered customers only
         return;
     }
     $payment = $order->getPayment();
     $paymentMethod = $payment->getMethod();
     if (isset($paymentMethod) && $payment->getData('transaction_id')) {
         /** @var $helper CLS_Paypal_Helper_Data */
         $helper = Mage::helper('cls_paypal');
         if ($helper->isSdkPaymentMethod($paymentMethod)) {
             if ($payment->hasAdditionalInformation('cc_save_future') && $payment->getAdditionalInformation('cc_save_future') == 'Y') {
                 // Create new stored card
                 $customerstoredModel = Mage::getModel('cls_paypal/customerstored');
                 $customerstoredModel->setData(array('transaction_id' => $payment->getData('transaction_id'), 'customer_id' => $customerId, 'cc_type' => $payment->getData('cc_type'), 'cc_last4' => $payment->getData('cc_last4'), 'cc_exp_month' => $payment->getData('cc_exp_month'), 'cc_exp_year' => $payment->getData('cc_exp_year'), 'date' => Varien_Date::formatDate(true, true), 'payment_method' => $paymentMethod));
                 $customerstoredModel->save();
             }
         } elseif ($helper->isCustomerstoredPaymentMethod($paymentMethod)) {
             // Update existing stored card
             $customerstoredModel = Mage::getModel('cls_paypal/customerstored');
             if ($payment->hasAdditionalInformation('stored_card_id')) {
                 // Reference payment using existing customer's stored card
                 $storedCardId = $payment->getAdditionalInformation('stored_card_id');
                 $customerstoredModel->load($storedCardId);
                 if ($customerstoredModel->getId()) {
                     // Update stored card record with a new transaction ID
                     $customerstoredModel->setData('transaction_id', $payment->getData('transaction_id'))->setData('date', Varien_Date::formatDate(true, false));
                     $customerstoredModel->save();
                 }
             }
         }
     }
 }
コード例 #22
0
ファイル: Abstract.php プロジェクト: blazeriaz/youguess
 /**
  * Add information about product ids to visitor/customer
  *
  *
  * @param Mage_Reports_Model_Product_Index_Abstract $object
  * @param array $productIds
  * @return Mage_Reports_Model_Resource_Product_Index_Abstract
  */
 public function registerIds(Varien_Object $object, $productIds)
 {
     $row = array('visitor_id' => $object->getVisitorId(), 'customer_id' => $object->getCustomerId(), 'store_id' => $object->getStoreId());
     $addedAt = Varien_Date::toTimestamp(true);
     $data = array();
     foreach ($productIds as $productId) {
         $productId = (int) $productId;
         if ($productId) {
             $row['product_id'] = $productId;
             $row['added_at'] = Varien_Date::formatDate($addedAt);
             $data[] = $row;
         }
         $addedAt -= $addedAt > 0 ? 1 : 0;
     }
     $matchFields = array('product_id', 'store_id');
     foreach ($data as $row) {
         Mage::getResourceHelper('reports')->mergeVisitorProductIndex($this->getMainTable(), $row, $matchFields);
     }
     return $this;
 }
コード例 #23
0
ファイル: Abstract.php プロジェクト: Airmal/Magento-Em
 /**
  * Convert internal date to UNIX timestamp
  *
  * @param string $str
  * @return int
  */
 public function mktime($str)
 {
     return Varien_Date::formatDate($str);
 }
コード例 #24
0
ファイル: Abstract.php プロジェクト: okite11/frames21
 /**
  * Format date to internal format
  *
  * @param string|Zend_Date $date
  * @param bool $includeTime
  * @return string
  */
 public function formatDate($date, $includeTime = true)
 {
     return Varien_Date::formatDate($date, $includeTime);
 }
コード例 #25
0
 /**
  * Prepare website current dates table
  *
  * @return Enterprise_Catalog_Model_Index_Action_Product_Price_Abstract
  */
 protected function _prepareWebsiteDateTable()
 {
     $write = $this->_connection;
     $baseCurrency = Mage::app()->getBaseCurrencyCode();
     $select = $write->select()->from(array('cw' => $this->_getTable('core/website')), array('website_id'))->join(array('csg' => $this->_getTable('core/store_group')), 'cw.default_group_id = csg.group_id', array('store_id' => 'default_store_id'))->where('cw.website_id != 0');
     $data = array();
     foreach ($write->fetchAll($select) as $item) {
         /** @var $website Mage_Core_Model_Website */
         $website = Mage::app()->getWebsite($item['website_id']);
         if ($website->getBaseCurrencyCode() != $baseCurrency) {
             $rate = Mage::getModel('directory/currency')->load($baseCurrency)->getRate($website->getBaseCurrencyCode());
             if (!$rate) {
                 $rate = 1;
             }
         } else {
             $rate = 1;
         }
         /** @var $store Mage_Core_Model_Store */
         $store = Mage::app()->getStore($item['store_id']);
         if ($store) {
             $timestamp = Mage::app()->getLocale()->storeTimeStamp($store);
             $data[] = array('website_id' => $website->getId(), 'website_date' => Varien_Date::formatDate($timestamp, false), 'rate' => $rate);
         }
     }
     $table = $this->_getTable('catalog/product_index_website');
     $this->_emptyTable($table);
     if ($data) {
         $write->insertMultiple($table, $data);
     }
     return $this;
 }
コード例 #26
0
 public function testAddUpdatedDaysBeforeFilter()
 {
     $select = $this->getMock('Zend_Db_Select', array(), array(), '', false);
     $select->expects($this->any())->method('where')->with(self::TEST_WHERE_CONDITION);
     $collection = $this->_getCollection($select);
     /** @var $connection PHPUnit_Framework_MockObject_MockObject */
     $connection = $collection->getResource()->getReadConnection();
     $connection->expects($this->any())->method('prepareSqlCondition')->will($this->returnCallback(array($this, 'verifyPrepareSqlCondition')));
     // expected date without time
     $datetime = new DateTime();
     $storeInterval = new DateInterval('P' . self::TEST_DAYS_BEFORE . 'D');
     $datetime->sub($storeInterval);
     $expectedDate = Varien_Date::formatDate($datetime->getTimestamp());
     $this->_expectedConditions['data'][1][1]['lt'] = $expectedDate;
     $collection->addUpdatedDaysBeforeFilter(self::TEST_DAYS_BEFORE);
 }
コード例 #27
0
 public function send()
 {
     $_helper = Mage::helper('smtppro');
     // if we have a valid queue page size override, use it
     if (is_numeric($_helper->getQueuePerCron()) && intval($_helper->getQueuePerCron()) > 0) {
         $percron = $_helper->getQueuePerCron();
         $_helper->log('SMTP Pro using queue override page size: ' . $percron);
     } else {
         $percron = self::MESSAGES_LIMIT_PER_CRON_RUN;
     }
     $pauseMicros = 0;
     // if we have a valid pause, use it
     if (is_numeric($_helper->getQueuePause()) && intval($_helper->getQueuePause()) > 0) {
         $pauseMicros = $_helper->getQueuePause() * 1000;
         // * 1000 for millis => micros
         $_helper->log('SMTP Pro using queue override pause: ' . $pauseMicros);
     }
     /** @var $collection Mage_Core_Model_Resource_Email_Queue_Collection */
     $collection = Mage::getModel('core/email_queue')->getCollection()->addOnlyForSendingFilter()->setPageSize($percron)->setCurPage(1)->load();
     ini_set('SMTP', Mage::getStoreConfig('system/smtp/host'));
     ini_set('smtp_port', Mage::getStoreConfig('system/smtp/port'));
     /** @var $message Mage_Core_Model_Email_Queue */
     foreach ($collection as $message) {
         if ($message->getId()) {
             $parameters = new Varien_Object($message->getMessageParameters());
             if ($parameters->getReturnPathEmail() !== null) {
                 $mailTransport = new Zend_Mail_Transport_Sendmail("-f" . $parameters->getReturnPathEmail());
                 Zend_Mail::setDefaultTransport($mailTransport);
             }
             $mailer = new Zend_Mail('utf-8');
             foreach ($message->getRecipients() as $recipient) {
                 list($email, $name, $type) = $recipient;
                 switch ($type) {
                     case self::EMAIL_TYPE_BCC:
                         $mailer->addBcc($email, '=?utf-8?B?' . base64_encode($name) . '?=');
                         break;
                     case self::EMAIL_TYPE_TO:
                     case self::EMAIL_TYPE_CC:
                     default:
                         $mailer->addTo($email, '=?utf-8?B?' . base64_encode($name) . '?=');
                         break;
                 }
             }
             if ($parameters->getIsPlain()) {
                 $mailer->setBodyText($message->getMessageBody());
             } else {
                 $mailer->setBodyHTML($message->getMessageBody());
             }
             $mailer->setSubject('=?utf-8?B?' . base64_encode($parameters->getSubject()) . '?=');
             $mailer->setFrom($parameters->getFromEmail(), $parameters->getFromName());
             if ($parameters->getReplyTo() !== null) {
                 $mailer->setReplyTo($parameters->getReplyTo());
             }
             if ($parameters->getReturnTo() !== null) {
                 $mailer->setReturnPath($parameters->getReturnTo());
             }
             foreach (Mage::app()->getStores() as $store) {
                 if ($parameters->getFromEmail() == Mage::getStoreConfig('trans_email/ident_sales/email', $store->getStoreId())) {
                     $storeid = $store->getStoreId();
                 }
             }
             try {
                 $transport = new Varien_Object();
                 Mage::dispatchEvent('aschroder_smtppro_queue_before_send', array('mail' => $mailer, 'transport' => $transport, 'message' => $message, 'store_id' => isset($storeid) ? $storeid : null));
                 if ($transport->getTransport()) {
                     // if set by an observer, use it
                     $mailer->send($transport->getTransport());
                 } else {
                     $mailer->send();
                 }
                 unset($mailer);
                 $message->setProcessedAt(Varien_Date::formatDate(true));
                 $message->save();
                 // loop each email to fire an after send event
                 foreach ($message->getRecipients() as $recipient) {
                     list($email, $name, $type) = $recipient;
                     Mage::dispatchEvent('aschroder_smtppro_after_send', array('to' => $email, 'template' => "queued email", 'subject' => $parameters->getSubject(), 'html' => !$parameters->getIsPlain(), 'email_body' => $message->getMessageBody()));
                 }
             } catch (Exception $e) {
                 unset($mailer);
                 $oldDevMode = Mage::getIsDeveloperMode();
                 Mage::setIsDeveloperMode(true);
                 Mage::logException($e);
                 Mage::setIsDeveloperMode($oldDevMode);
                 return false;
             }
             // after each valid message has been sent - pause if required
             if ($pauseMicros > 0) {
                 $_helper->log('SMTP Pro pausing.');
                 usleep($pauseMicros);
             }
         }
     }
     return $this;
 }