Exemple #1
0
 /**
  * Init virtual grid records for entity
  *
  * @return Mage_Sales_Model_Resource_Order_Invoice
  */
 protected function _initVirtualGridColumns()
 {
     parent::_initVirtualGridColumns();
     $adapter = $this->_getReadAdapter();
     $checkedFirstname = $adapter->getIfNullSql('{{table}}.firstname', $adapter->quote(''));
     $checkedLastname = $adapter->getIfNullSql('{{table}}.lastname', $adapter->quote(''));
     $this->addVirtualGridColumn('billing_name', 'sales_flat_order_address', array('billing_address_id' => 'entity_id'), $adapter->getConcatSql(array($checkedFirstname, $adapter->quote(' '), $checkedLastname)))->addVirtualGridColumn('order_increment_id', 'sales_flat_order', array('order_id' => 'entity_id'), 'increment_id')->addVirtualGridColumn('order_created_at', 'sales_flat_order', array('order_id' => 'entity_id'), 'created_at');
     return $this;
 }
Exemple #2
0
 /**
  * Init virtual grid records for entity
  *
  * @return Mage_Sales_Model_Resource_Order
  */
 protected function _initVirtualGridColumns()
 {
     parent::_initVirtualGridColumns();
     $adapter = $this->getReadConnection();
     $ifnullFirst = $adapter->getIfNullSql('{{table}}.firstname', $adapter->quote(''));
     $ifnullLast = $adapter->getIfNullSql('{{table}}.lastname', $adapter->quote(''));
     $concatAddress = $adapter->getConcatSql(array($ifnullFirst, $adapter->quote(' '), $ifnullLast));
     $this->addVirtualGridColumn('billing_name', 'sales_flat_order_address', array('billing_address_id' => 'entity_id'), $concatAddress)->addVirtualGridColumn('shipping_name', 'sales_flat_order_address', array('shipping_address_id' => 'entity_id'), $concatAddress);
     return $this;
 }
Exemple #3
0
 /**
  * Update related grid table after object save
  *
  * @param Varien_Object $object
  * @return Mage_Core_Model_Resource_Db_Abstract
  */
 protected function _afterSave(Mage_Core_Model_Abstract $object)
 {
     $resource = parent::_afterSave($object);
     if ($object->hasDataChanges() && $object->getOrder()) {
         $gridList = array('sales/order' => 'entity_id', 'sales/order_invoice' => 'order_id', 'sales/order_shipment' => 'order_id', 'sales/order_creditmemo' => 'order_id');
         // update grid table after grid update
         foreach ($gridList as $gridResource => $field) {
             Mage::getResourceModel($gridResource)->updateOnRelatedRecordChanged($field, $object->getParentId());
         }
     }
     return $resource;
 }
 /**
  * Lookup for parent_id in already saved transactions of this payment by the order_id
  * Also serialize additional information, if any
  *
  * @throws Mage_Core_Exception
  *
  * @param Mage_Sales_Model_Order_Payment_Transaction $transaction
  * @return Mage_Sales_Model_Resource_Order_Payment_Transaction
  */
 protected function _beforeSave(Mage_Core_Model_Abstract $transaction)
 {
     $parentTxnId = $transaction->getData('parent_txn_id');
     $txnId = $transaction->getData('txn_id');
     $orderId = $transaction->getData('order_id');
     $paymentId = $transaction->getData('payment_id');
     $idFieldName = $this->getIdFieldName();
     if ($parentTxnId) {
         if (!$txnId || !$orderId || !$paymentId) {
             Mage::throwException(Mage::helper('sales')->__('Not enough valid data to save the parent transaction ID.'));
         }
         $parentId = (int) $this->_lookupByTxnId($orderId, $paymentId, $parentTxnId, $idFieldName);
         if ($parentId) {
             $transaction->setData('parent_id', $parentId);
         }
     }
     // make sure unique key won't cause trouble
     if ($transaction->isFailsafe()) {
         $autoincrementId = (int) $this->_lookupByTxnId($orderId, $paymentId, $txnId, $idFieldName);
         if ($autoincrementId) {
             $transaction->setData($idFieldName, $autoincrementId)->isObjectNew(false);
         }
     }
     return parent::_beforeSave($transaction);
 }